什麼是DMA?


DMA 代表直接記憶體訪問。它是一種硬體控制的資料傳輸技術。使用外部裝置來控制資料傳輸。外部裝置生成控制資料傳輸所需的地址和控制訊號。外部裝置還允許外圍裝置直接訪問記憶體。控制資料傳輸的外部裝置稱為DMA控制器。

DMA空閒週期

當系統開啟時,開關處於A位置。處理器開始執行程式,直到它需要從磁碟讀取資訊塊。磁碟處理器將一系列命令傳輸到磁碟控制器,以搜尋並從磁碟讀取所需的資訊塊。

當磁碟控制器準備好從磁碟傳輸資訊時,它會將DMA請求(DRQ)訊號傳輸到DMA控制器。因此,DMA控制器向處理器HOLD輸入傳送HOLD訊號。

處理器透過暫停匯流排並傳輸HLDA確認訊號來響應此訊號。當DMA控制器獲得HLDA訊號時,它會傳輸控制訊號以將開關位置從A修改為B。

DMA活動週期

當DMA控制器接收匯流排的控制權時,它會傳輸磁碟第一個資訊位元組要寫入的記憶體地址。它還會向磁碟控制器裝置傳輸DMA確認(DACK)訊號,指示它準備好傳輸輸出位元組。

迴圈竊取模式

在這種資料傳輸模式下,裝置只能進行一次傳輸(位元組或字)。每次傳輸後,DMAC都將所有匯流排的控制權交還給處理器。這是一種單次傳輸模式,過程如下:

  • I/O裝置在其準備好傳輸資料時啟用DRQ線路。
  • DMAC啟用HLDA線路以請求處理器使用匯流排。
  • 處理器啟用HLDA,授予DMAC對匯流排的控制權。
  • DMAC向請求I/O裝置啟用DACK,並執行DMA匯流排週期,從而導致資料傳輸。
  • I/O裝置在傳輸一個位元組或字的資料後,取消啟用其DRQ。
  • DMA取消啟用DACK線路。
  • 字/位元組傳輸計數遞減,記憶體地址遞增。
  • HOLD線路被取消啟用,將所有匯流排的控制權交還給處理器。
  • 當I/O裝置準備好傳輸另一個位元組或字時,重新啟用HOLD訊號以請求使用匯流排。然後重複相同的過程,直到最後一次傳輸。
  • 當傳輸計數用盡時,將生成終端計數以指示傳輸結束。

更新於: 2021年7月27日

15K+ 瀏覽量

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告