第十章輸入輸出(I/O)系統(第二講)_第1頁
第十章輸入輸出(I/O)系統(第二講)_第2頁
第十章輸入輸出(I/O)系統(第二講)_第3頁
第十章輸入輸出(I/O)系統(第二講)_第4頁
第十章輸入輸出(I/O)系統(第二講)_第5頁
已閱讀5頁,還剩36頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第十章輸入輸出(I/O)系統第二講10.2.3程序中斷設備接口的組成和工作原理(1)

程序中斷設備接口:

設備選擇器、中斷控制和工作狀態邏輯、中斷排隊控制邏輯、設備碼回送邏輯、數據緩沖寄存器等組成。接口標準化,通過總線與主機相連。看書上的圖10.6。10.2.3程序中斷設備接口的組成和工作原理(2)

(1)設備選擇器

每一臺外圍設備接口都設置一個設備選擇器,連接在系統上的每一臺設備都有一個設備號。當CPU需使用某外設時,通過I/O指令或其他訪問I/O設備地址的指令,將設備碼通過地址線送往所有外圍設備接口,但僅僅具有該設備號的設備選擇器才產生選中信號(SEL)。于是,該外圍設備及其接口才能響應主機的控制并進行數據傳送。10.2.3程序中斷設備接口的組成和工作原理(3)

(2)中斷控制和工作狀態邏輯中斷控制邏輯:

中斷請求控制:中斷請求觸發器(INTR),1表示有中斷請求,0表示沒有中斷請求。中斷屏蔽控制:中斷屏蔽觸發器(MASK),1表示允許中斷,0表示不允許中斷。工作狀態邏輯:設備忙狀態,設備忙觸發器(BUSY),1表示設備正在操作,0表示設備空閑。設備完成狀態,設備完成觸發器(DONE),1表示設備完成操作,0表示設備沒有完成操作。10.2.3程序中斷設備接口的組成和工作原理(4)

只有當該設備被選中,選中信號(SEL)為高電平時才能訪問這4個觸發器。當CPU置“1”忙觸發器(BUSY),啟動設備,同時使完成觸發器(DONE)置“0”。當設備完成輸入輸出動作,需請求中斷時,由完成信號置“1”DONE觸發器。在CPU送來的指令結束信號RQENB的作用下,使中斷請求觸發器置位(由完成觸發器(DONE)決定置0或置1)。中斷屏蔽觸發器是由I/O指令利用MSKO的上升邊來置位或復位的。圖中的IORST是CPU送來的復位(I/O總清)信號,使各寄存器設置為初始狀態。

10.2.3程序中斷設備接口的組成和工作原理(5)

(3)中斷排隊和設備碼回送邏輯CPU接到外圍設備的中斷請求后,如可以響應中斷,則需了解是哪臺設備要求服務。因此,需要將請求中斷的設備碼送給CPU。當多個外設有中斷請求時,必須先為優先級高的外設服務。這個任務是通過排隊線路和設備碼回送邏輯來完成的,其邏輯線路如圖10.4所示。(4)數據緩沖寄存器每個外設的接口都設有數據緩沖寄存器,其長度為一個字節或一個字長。在CPU送來的信號控制下分別完成相應緩沖寄存器的接收或發送工作。8259A中斷控制器(1)

8259A中斷控制器

可編程中斷控制器,介紹工作原理、工作方式、編程原理。

1片8259A可以管理8級中斷,不增加電路,9片8259A可以構成64級中斷。

8259A是可編程的,可以通過編程改變8259A的工作方式。8259A中斷控制器(2)

8259A中斷控制器的引腳信號

12345678910111213142827262524232221201918171615CS#WR#RD#D7D6D5D4D3D2D1D0CAS0CAS1GNDVccA0INTA#IR7IR6IR5IR4IR3IR2IR1IR0INTSP#/EN#CAS28259A中斷控制器(3)

8259A中斷控制器引腳

D7-D0:8根數據線。INT:連接CPU,向CPU發中斷請求。INTA#:來自CPU的中斷響應信號,用于CPU從8259A上讀取中斷類型碼。RD#:讀出信號,讀取8259A的內部寄存器。WR#:寫入信號,將數據寫入8259A的內部寄存器。CS#:芯片選擇信號。A0:用來指出8259A的哪個寄存器被訪問。8259A中斷控制器(4)

8259A中斷控制器引腳

IR7-IR0:8根中斷線請求線,來自外部設備。級聯條件下主8259A的INT連接從8259A的IRi端。CAS2-CAS0:用于指出級聯條件下從片。SP#/EN#:雙向,有2個用處。作為輸入,來確定是主片或從片;作為輸出,在數據向8259A傳送時,啟動數據總線驅動。緩沖工作方式,作輸入使用;非緩沖工作方式,作輸出使用。8259A中斷控制器(5)

8259A中斷控制器的內部寄存器地址

8086系統中,數據線是16位,8259A數據線是8位。為了使所有的數據傳輸都利用總線的低8位,必須把地址總線的A1和8259A的A0連接。

CPU作16位數據傳送,總是送到以偶地址開頭的2個相鄰的單元或者相鄰的端口。低字節放在地址較低的單元,高字節放在地址較高的單元。低8位傳送到偶數地址,而高8位傳送到奇數地址。8259A中斷控制器(6)

8259A中斷控制器

由八個部分組成:中斷請求寄存器、中斷狀態寄存器、優先級判斷器、中斷屏蔽寄存器、中斷控制邏輯、數據緩沖器、級聯緩沖器/比較器和讀/寫邏輯。見書圖10.7。8259A中斷控制器(7)

1)中斷請求寄存器

中斷請求寄存器IRR接受外設來的中斷請求(IR0~IR7),每一位表示一個外部設備的中斷請求,當有請求,就鎖存該中斷請求信號。邏輯電路根據中斷屏蔽寄存器IMR的中對應的位決定是否允許該中斷通過。

8259A中斷控制器(8)

2)優先級判別器

中斷優先級判別電路把新進入的中斷請求和當前正在處理的中斷比較,從而決定哪一個中斷優先級別更高。

中斷請求寄存器的各位送入優先級判斷器,根據中斷屏蔽寄存器和中斷狀態寄存器ISR的狀態決定最高優先級的中斷請求,并將判優結果送入中斷狀態寄存器,如果中斷請求被接受,則由控制邏輯向CPU發中斷請求INT。8259A中斷控制器(9)中斷類型碼

在8259A中,為每一個外設的中斷請求(IR0~IR7)設置一個中斷類型碼(8位),當其中一個外設的中斷請求被CPU響應后,8259A送出與該中斷所對應的中斷類型碼,作為尋找中斷服務程序入口的依據。中斷類型碼(8位)由兩部分組成,其高5位是由計算機初始化程序設置的,保存在8259A中以后不再改變;低3位由被響應的中斷請求序號提供。例如,IR0的中斷請求被響應,中斷類型碼的低3位即為011。在同一個8259A中,高5位為8個中斷請求共用。假設與IR0對應的中斷類型碼為40H,那么與IR1~IR7對應的中斷類型碼為41H~47H。8259A中斷控制器(10)中斷級聯

每個8259A最多能控制8個外部中斷信號,但可將多個8259A級聯以處理多達64個中斷請求。它允許有一個主單元和多個(不超過8個)從單元,稱為主從系統。主從單元的級聯是通過以下方式實現的:①聯接主從單元的級聯總線CAS0,CAS1和CAS2:將所有單元的CAS0、CAS1和CAS2各自聯接在一起。主單元的CAS為輸出,從單元的CAS為輸入。②將從單元的中斷請求INT連到主單元的一個IR端,并在從單元中記錄下這個IR端的序號。8259A中斷控制器(11)中斷級聯

這樣,當有從單元的中斷請求得到響應時,主單元將被選中的IR序號通過CAS0~CAS2送到從單元的CAS0~CAS2,在從單元中進行比較,只有一個從單元保存有相同的序號,說明該從單元的中斷請求被CPU響應,以后由其將中斷類型碼送到數據總線,從而可確定請求中斷的外設及其中斷服務程序的入口。同時也說明了當對主從系統中的多個8259A進行初始化時,要為每臺外設分配不同的中斷類型碼,使其保持惟一性,以免引起混亂。

SP#為輸入輸出雙向線。當作為輸入線時,主單元的SP#接“1”,從單元的SP#接地(0)。但是如果系統中從單元較多,而需要接數據總線驅動器時,則主單元的SP#用作輸出線,其輸出信號用來啟動數據總線驅動器,從單元的SP#仍接地。SP#/EN#CAS0CAS1CAS2主片8259AIR0IR1:INTIR7SP#/EN#CAS0CAS1CAS2主片8259AIR0IR1:INTIR7SP#/EN#CAS0CAS1CAS2主片8259AIR0IR1:INTIR764個中斷源D7-D0總線驅動到CPU8259A中斷控制器(12)中斷優先級選擇方式完全嵌套方式:IR0的外圍設備優先權最高,而連至IR7的優先權最低。輪換優先級A:每個級別的中斷保證有機會被處理。它把給定的中斷級別處理完后,立即把它放到最低級別的位置上去。輪換優先級B:CPU可在任何時間規定最低優先級,然后順序地規定其他IR線上的優先級。8259A中斷控制器(13)中斷屏蔽方式

8259A單元提供了兩種屏蔽方式,簡單屏蔽方式和特殊屏蔽方式。簡單屏蔽方式:提供了8位的屏蔽字,每位對應著各自的IR線,被置位的任何一位禁止了相應IR線上的中斷。特殊屏蔽方式:允許CPU讓來自低優先級外設的中斷去中斷高優先級的服務程序。當8位屏蔽位的某一位被置“0”時,則對應此位的IR線上的外設中斷可中斷比它高優先級別的服務程序。例如,若屏蔽字為11101111,說明IR4線上的中斷可中斷任何高級別的中斷服務程序。8259A中斷控制器(14)數據緩沖和讀寫邏輯

D0~D7:為雙向數據線,數據緩沖器暫時保存在內部總線和系統數據總線間進行傳送的數據。讀/寫邏輯:將決定數據的傳送方向。RD為讀命令,而WR為寫命令。CS為8259A芯片的選擇信號,A0與8259A中被選的寄存器地址有關。

8259A單元的不同工作方式是通過編程來進行選擇的。CPU送出一系列的始化控制字和操作控制字來執行選定的操作。CPU將8259A當作兩個I/O端口或兩個存儲單元來尋址,由A0端確定這些控制字存入讀/寫邏輯中哪個控制字寄存器。10.3DMA輸入輸出方式

DMA是I/O設備與主存儲器之間由硬件組成的直接數據通路,用于高速I/O設備與主存之間的成組數據傳送。數據傳送是在DMA控制器控制下進行的,由DMA控制器給出當前正在傳送的數據字的主存地址,并統計傳送數據的個數以確定一組數據的傳送是否已結束。在主存中要開辟連續地址的專用緩沖器,用來提供或接收傳送的數據。在數據傳送前和結束后要通過程序或中斷方式對緩沖器和DMA控制器進行預處理和后處理。10.3DMA輸入輸出方式

DMA優點:數據一次性讀寫,不需要IO->Reg,Reg->RAM這樣兩次操作;DMA控制器連續控制讀寫,不需要CPU取值、譯碼、執行等這樣執行,在數據傳送過程中,沒有保存現場、恢復現場之類的工作。內存地址修改、傳送字個數的計數等等,也不是由軟件實現,而是用硬件線路直接實現的;數據傳送和CPU計算可能同時進行。10.3.1DMA三種工作方式

1.CPU暫停方式主機響應DMA請求后,讓出存儲總線,直到一組數據傳送完畢后,DMA控制器才把總線控制權交還給CPU。DMA控制、訪問主存CPU控制、訪問主存主存工作時間DMA不工作DMA工作DMA不工作CPU停止訪問主存10.3.1DMA三種工作方式

2.CPU周期竊取方式

DMA控制器與主存儲器之間傳送一個數據,占用(竊取)一個或幾個CPU周期,即CPU暫停工作一個或幾個周期,然后繼續執行程序。DMA控制、訪問主存CPU控制、訪問主存主存工作時間10.3.1DMA三種工作方式

與停止CPU訪內的DMA方法比較,周期挪用的方法既實現了I/O傳送,又較好地發揮了內存和CPU的效率,是一種廣泛采用的方法。但是I/O設備每一次周期挪用都有申請總線控制權、建立總線控制權和歸還總線控制權的過程,所以傳送一個字對內存來說要占用一個周期,但對DMA控制器來說一般要2—5個內存周期(視邏輯線路的延遲而定)。因此,周期挪用的方法適用于I/O設備讀寫周期大于內存存儲周期的情況。10.3.1DMA三種工作方式

3.CPU和DMA交替工作方式當CPU的工作周期比主存訪問時間長時,使用這種方式。這種方式不需要總線使用權的申請、建立和歸還過程。將CPU周期分成C1和C2兩個周期,其中C1專門用于給DMA訪問主存,C2提供給CPU訪問主存。總線使用權通過C1和C2分別控制。CPU和DMA各自有自己的訪問地址寄存器、數據寄存器和讀寫信號。DMA控制、訪問主存CPU控制、訪問主存主存工作時間10.3.1DMA三種工作方式

DMA與CPU交替訪問內存這種方式效率高,又稱為“透明的DMA”方式,其來由是這種DMA傳送對CPU來說,如同透明的玻璃一般。但相應的硬件邏輯也就更加復雜。10.3.2DMA控制器組成

1.設備寄存器(1)主存地址寄存器(MAR)

寄存器初始值為主存緩沖區的首地址。

(2)外圍設備地址寄存器(ADR)該寄存器存放I/O設備的設備碼,具體內容取決于I/O設備的數據格式和地址字編址方式。

(3)字數計數器(WC)

該計數器對傳送數據的總字數進行統計。(4)控制與狀態寄存器(CSR)

該寄存器用來存放控制字和狀態字。

(5)數據緩沖寄存器(DBR)

該寄存器用來暫存I/O設備與主存傳送的數據。

10.3.3DMA的數據傳送過程(1)

DMA的數據傳送過程可分為三個階段:

1)DMA傳送前預處理;2)數據傳送;3)傳送后處理。內存起始地址→DMA主存地址寄存器(MAR)設備地址→外圍設備地址寄存器(ADR)傳送數據個數→字數計數器(WC)啟動設備繼續執行主程序DMA控制器控制數據傳送直到WC為零執行中斷服務程序處理DMA結束操作如需要,停止外設,否則進行下一次DMA預處理數據傳送后處理10.3.3DMA的數據傳送過程(2)

1.DMA預處理在進行DMA數據傳送之前要用程序做一些必要的準備工作。先由CPU執行幾條輸入輸出指令,測試設備狀態,向DMA控制器的設備地址寄存器中送入設備地址并啟動設備,在主存地址寄存器中送入交換數據的主存起始地址,在數據字數寄存器中送入交換的數據個數。在這些工作完成之后,CPU繼續執行原來的程序。10.3.3DMA的數據傳送過程(3)

第二個階段數據傳送過程:允許傳送?主存地址送總線數據送I/O設備(或主存)主存地址加1WC內容(傳送個數)減1數據塊傳送結束?向CPU申請中斷DMA請求NYYN10.3.3DMA的數據傳送過程(4)

2.DMA控制I/O設備與主存之間的數據交換

I/O設備啟動后,若為輸入數據,則要進行以下操作:(1)從輸入介質讀入一個字到數據緩沖寄存器DBR中。(2)向CPU發DMA請求,在取得總線控制權后,將DBR中的數據送人主存的數據寄存器。(3)將DMA中的MAR內容送主存的地址寄存器,啟動寫操作,將數據寫入主存。(4)將WC內容減1,將MAR的內容加1,給出下一個字的地址。(5)判斷WC是否為“0”,若不是,說明還有數據需要傳送,檢查無錯后準備下一字的輸入。若WC為0,表明一組數據已傳送完畢,此時應置結束標志,向CPU發中斷請求。

10.3.3DMA的數據傳送過程(5)

I/O設備啟動后,若為輸出數據,應進行以下操作:(1)將MAR的內容送主存的地址寄存器。(2)啟動主存讀操作,將對應單元的內容讀入主存的數據寄存器。(3)將主存數據寄存器的內容送到DMA的DBR中。(4)將DBR的內容送到輸出設備,若為字符設備,則需將DBR內容拆成字符輸出。(5)將WC內容減1,MAR內容加1,為下一個字的輸出做好準備。(6)判斷WC的內容是否為0。如不為0,說明還需繼續傳送,輸出設備處理完數據后,發DMA請求。如WC為0或檢驗有錯,則停止傳送,向CPU發結束中斷請求或出錯中斷請求。

10.3.3DMA的數據傳送過程(6)

3.CPU中斷原程序進行后處理若需繼續交換數據,則又要對DMA控制器進行初始化;若不需交換數據,則停止外設;若為出錯,則轉錯誤診斷及處理程序。10.3.4軟盤接口邏輯電路舉例(1)

為了實現CPU和軟盤驅動器之間的快速數據傳送,在CPU和軟盤驅動器之間需設置軟盤控制器。

DMA控制器電路Intel8257就是DMA控制器電路。軟盤控制器接口邏輯電路中采用了8257DMA控制器。在CPU和軟盤控制器之間的接口電路中包括總線控制線路和DMA控制線路。

8257DMA控制器提供四個獨立的DMA通道(CH0,CH1,CH2,CH3)。軟盤接口使用了其中一個通道。每個通道包含兩個十六位的寄存器:一個DMA地址寄存器和一個字節計數寄存器。DMA地址寄存器存放被尋址的第一個主存單元的地址。字節計數寄存器存放本次DMA傳送的字節數。此外,還包含工作方式(讀、寫、校驗)和狀態寄存器。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論