I/O設備——DMA方式


DMA方式:設備需要進行數據傳送時,通過DMA控制器(DMA接口)向CPU提出DMA傳送請求,CPU響應之后將讓出系統總線,由DMA控制器接管總線進行數據傳送。
主存和DMA接口之間有一條數據通露,因此主存和設備交換信息時,不通過CPU,也不需要CPU暫停現行程序為設備服務,省去了保護現場和恢復現場,因此工作速度比程序屮斷方式的工作速度高。這一特點特別適合於高速I/O或輔存與主存之間的信息交換。因為高速IO設備若每次申請與主機交換信息時,都要等待CPU做出中斷響應后再進行,很可能因此使數據丟失。值得注意的是,若出現高速IO設備(通過DMA接口)和CPU同時訪問主存,CPU必須將總線(如地址線、數據線)占有權讓給DMA接口使用,即DMA采用周期竊取的方式占用一個存取周期。

主要功能有:
傳送前:
1.接受外設發出的DMA請求,並向CPU發出總線請求。
2.CPU響應此總線請求,發出總線響應信號,接管總制權,進入DMA操作周期。
傳送時:
3.確定傳送數據的主存單元地址及長度,並能自動修改主存地址計數和傳送長度計數。
4.規定數據在主存和外設間的傳送方向,發出讀寫等控制信號,執行數據傳送操作。
傳送后:
5.向CPU報告DMA操作的結束。

組成:
1.主存地址計數器AR:存放要交換數據的主存地址
2.傳送長度計數器WC:記錄傳送數據的長度,計數溢出時,數據即傳送完畢,自動發中斷請求信號。
3.數據緩沖寄存器:暫存每次傳送的數據
4.DMA請求觸發器:每當設備准備好數據后給出一個控制信號,使DMA請求觸發器置位。
5.控制/狀態邏輯:由控制和時序電路及狀態標志組成,用於指定傳送萬向,修改傳送參數,並對DMA請求信號和CPU響應信號進行協調和同步
6.中斷機構:當一個數據塊傳送完畢后觸發中斷機構,向CPU提出中斷請求。
注:在DMA傳送過程中,DMA控制器將接管CPU的地址總線、數據總線和控制總線,CPU的主存控制信號被禁止使用。而當DMA傳送結束后,將恢復CPU的一切權利並開始執行其操作。

DMA方式中CPU的工作:
1.預處理:
主存起始地址→AR
I/O設備地址→DAR
傳送數據個數→WC
啟動I/O設備
2.數據傳送:
繼續執行主程序同時完成一批數據的傳送
3.后處理:
中斷服務程序做DMA結束處理

DMA的數據傳送階段:
1.預處理:DMA請求
2.數據傳送:主存起始地址送總線;數據送I/O設備(或主存);修改主存地址;修改字計數器
3.后處理:向CPU申請程序中斷

以數據輸人為例,具體操作如下。
1.當設備准備好一個字時,發出選通信號,將該字讀到DMA的數據緩沖寄存器(BR)中,表示數據緩沖寄存器“滿"
2.與此同時設備向DMA接囗發請求(DREQ)。
3.DMA接囗向CPU申請總線控制權(HRQ)。
4.CPU發回HLDA信號,表示允許將總線控制權交給DMA接囗。
5.將DMA主存地址寄存器中的主存地址送地址總線,並命令存儲器寫。
6.通知設備已被授予一個DMA周期(DACK),並為交換下一個字做准備。
7.將DMA數據緩沖寄存器的內容送數據總線。
8.主存將數據總線上的信息寫至地址總線指定的存儲單元中。
9.修改主存地址和字計數值。
10.判斷數據塊是否傳送結束,若未結,則繼續傳送;若已結,(字計數器溢出),則向CPU申請程序中斷,標志數據塊傳送結束。

若為輸出數據,則應完成以下操作:
1.當DMA數據緩沖寄存器已將輸出數據送至IO設備后,表示數據緩沖寄存器已“空"
2.設備向DMA接冂發請求(DREQ)。
3.DMA接口向CPU申請總線控制權(HRQ)。
4.CPU發回HLDA信號表示允許將總線控制權交給DMA接口使用。
5.將DMA主存地址寄存器中的主存地址送地址總線,並命令存儲器讀。
6.通知設備已被授予一個DMA周期(DACK),並為交換下一個字做准備。
7.主存將相應地址單元的內容過數據總線讀入到DMA的數據緩沖寄存器中。
8.將DMA數據緩沖寄存器的內容送到輸出設備
9.修改主存地址和字數值。
10.判斷數據塊是否已傳送完畢,若未完畢,繼續傳送;若已傳送完畢,則向CPU申請程序中斷。

DMA的傳送方式:
主存和DMA控制器之間有一條數據通路,因此主存和設備之間交換信息時,不通過CPU。但當設備和CPU同時訪問主存時,可能發生沖突,為了有效地使用主存,DMA控制器與CPU通常采用以下3種方法使用主存。
1.停止CPU訪問主存:控制簡單,CPU處於不工作狀態或保持狀態,未充分發揮CPU對主存的利用率
2.DMA與CPU交替訪存:一個CPU周期分為兩個周期,分別共二者使用,不需要總線使用權的申請、建立和歸還過程,硬件邏輯更為復雜
3.周期竊取(存儲周期):DMA訪問主存有三種可能:
CPU此時不訪存(不沖突)
CPU正在訪存(存取周期結束讓出總線)
CPU與DMA同時請求訪存(I/0訪存優先)

DMA特點:
主存和DMA接口之間有一條直接數據通路。由於DMA方式傳送數據不需要經過CPU,因此不必中斷現行程序,IO與主機並行工作,程序和傳送並行工作。
DMA方式具有下列特點:
1.它使主存與CPU的固定聯系脫鈎,主存既可被CPU問,又可被外設訪問。
2.在數據塊傳送時,主存地址的確定、傳送數據的計數等都由硬件電路直接實現。
3.主存中要開辟專用緩沖區,及時供給和接收外設的數據。
4.DMA傳送速度快,CPU和外設並行工作,提高了系統效率。
5.DMA在傳送開始前要通過程序進行預處理,結束后要通過中斷方式進行后處理。












免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM