DMA傳輸資料過程簡介
阿新 • • 發佈:2019-01-06
DMA傳送操作分三個階段:準備階段、DMA傳送階段和傳送結束階段。
1.準備階段:在這個階段中,CPU通過指令向DMA控制器傳送必要的傳送引數。
①控制字送DMA控制器指出資料傳送方向。
②預置MBAP,即資料塊在主存緩衝區的首址。
③置DAR外設的地址,如外設為磁碟機,其地址包括:磁碟機號、盤面號、柱面號和扇區號。
④給WBC預置,指出資料傳送位元組/字數。
2.DMA傳送階段
DMA介面上傳送的一批資料是一個個傳送的,在週期挪用控制方式下DMA控制器主要完成以下五個操作。
①外設準備好一次資料傳送後,介面向主機發DMA請求。
②CPU響應DMA請求,把匯流排使用權讓給DMA控制器。DMA控制器控制源、目的埠準備傳送資料。
③DMA週期挪用一次,交換一個數據信息。
④歸還匯流排使用權,修改主存地址指標和傳送計數值。
⑤判斷這批資料是否傳送完畢:是,結束該工作階段;沒有,又開始傳送下一個資料。DMA中資訊傳送過程.
3.結束階段
DMA在兩種情況下都會進入結束階段,一種情況是一批資料傳送完畢,這是正常結束。另一種情況是DMA發生故障,也要進入結束階段,這是非正常結束。不論是哪一種情況進入結束階段,DMA都向主機發出中斷請求,CPU執行服務程式查詢DMA介面狀態,根據狀態進行不同的處理。
DMA是程式中斷傳送技術的發展。它在硬體邏輯機構的支援下,以更快的速度、更簡便的形式傳送資料。程式中斷與DMA相比有以下幾個不同。
①中斷方式通過程式實現資料傳送,而DMA方式不使用程式直接靠硬體來實現,資訊傳送速度快。
②CPU對中斷的響應是在執行完一條指令之後,而對DMA的響應則可以在指令執行過程中的任何兩個儲存週期之間,請求響應快。
③中斷方式必須切換程式,要進行CPU現場的保護和恢復操作。DMA僅挪用了一個儲存週期,不改變CPU現場,額外化銷小。
④DMA請求的優先權比中斷請求高。CPU優先響應DMA請求,是為了避免DMA所連線的高速外設丟失資料。
⑤中斷方式不僅具有I/O資料傳送能力,而且還能處理異常事件,DMA只能進行I/O資料傳送。
總而言之,在進行I/O控制時,DMA控制方式比程式中斷控制方式速度快,但程式中斷控制方式的應用範圍比DMA控制方式廣。