什麼是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訊號以請求使用匯流排。然後重複相同的過程,直到最後一次傳輸。
- 當傳輸計數用盡時,將生成終端計數以指示傳輸結束。
廣告