1. 程式人生 > >DMA傳輸資料過程簡介

DMA傳輸資料過程簡介


  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控制方式廣。