了解DMA技術

2021-07-09 05:20:18 字數 1389 閱讀 2724

direct memory access

直接儲存器訪問

dma是指外部裝置不通過cpu而直接與系統記憶體交換資料的接**術。

要把外設的資料讀入記憶體或把記憶體的資料傳送到外設,一般都要通過cpu控制完成,如cpu程式查詢或中斷方式。利用中斷進行資料傳送,可以大大提高cpu的利用率。

但是採用中斷傳送有它的缺點

,對於乙個高速i/o裝置,以及批量交換資料的情況,只能採用dma方式,才能解決效率和速度問題。dma在外設與記憶體間直接進行資料交換,而不通過cpu,這樣資料傳送的速度就取決於儲存器和外設的工作速度。

通常系統的匯流排

是由cpu管理的。在dma方式時,就希望cpu把這些匯流排讓出來,即cpu連到這些匯流排上的線處於第三態--高阻狀態,而由dma控制器

接管,控制傳送的位元組數,判斷dma是否結束,以及發出dma結束訊號。dma控制器必須有以下功能:

1. 能向cpu發出系統保持(hold)訊號,提出匯流排接管請求;

2. 當cpu發出允許接管訊號後,負責對匯流排的控制,進入dma方式;

3. 能對儲存器定址及能修改位址指標,實現對記憶體的讀寫操作;

4. 能決定本次dma傳送的位元組數,判斷dma傳送是否結束

5. 發出dma結束訊號,使cpu恢復正常工作狀態。

如圖是dma控制器硬體結構示意圖。

dma的可能引腳說明:

資料匯流排:用於傳送資料。

資料傳送訊號:memr為儲存器讀操作訊號,memw為儲存器寫操作訊號,ior為外設讀操作訊號,iow為外設寫操作訊號。

drq:dma請求訊號。是外設向dma控制器提出要求dma操作的申請訊號。

dack:dma響應訊號。是dma控制器向提出dma請求的外設表示已收到請求和正進行處理的訊號。

hold:匯流排請求訊號。是dma控制器向cpu要求讓出匯流排的請求訊號。

hlda:匯流排響應訊號,是cpu向dma控制器表示允許匯流排請求的應答訊號。

1、單位元組傳輸方式:每次dma傳送時僅傳送乙個位元組的資料,效率略低。在資料的傳送過程中,cpu有機會重新獲得對匯流排的控制權。 

2、資料塊傳輸方式:資料以資料塊的方式進行傳輸。只要dreq啟動就會連續地傳送資料塊。一次請求傳送乙個資料塊,效率高。在資料的傳送期間,cpu長時間無法控制匯流排。 

3、請求傳輸方式:dreq訊號有效就連續傳輸資料,否則不能進行資料的傳輸。 

4、級聯傳輸方式:用於通過多個intel 8237、8257級聯以擴充套件通道。第一級只起優先權網路的作用,實際的操作由第二級晶元完成。還可由第二級到第**等。

DMA技術介紹

dma方式是一種完全由硬體進行成組資訊傳送的控制方式。具有程式中斷方式的優點,即在資料準備階段,cpu與外設並行工作。dma方式在外設與記憶體之間開闢一條 直接資料通路 資訊傳送不再經過cpu,也就不需要保護 恢復cpu現場等繁瑣操作。這種方式適用於磁碟機 磁帶機等高速裝置大批量資料的傳送,它的硬體...

記憶體直讀技術DMA

dma direct memory access 即直接儲存器訪問,是一種快速傳送資料的機制。dma是指外部裝置不通過cpu而直接與系統記憶體交換資料的接 術。要把外設的資料讀入記憶體或把記憶體的資料傳送到外設,一般都要通過cpu控制完成,如cpu程式查詢或中斷方式。利用中斷進行資料傳送,可以大大提...

DMA 二 DMA介面函式

流式dma對映,使用這個函式前需要事先分配連續物理記憶體,這個函式只是物理位址對映到虛擬位址 dma map single dma unmap single dma池 dma如果使用cache,那麼一定要考慮cache的一致性。解決dma導致的一致性的方法最簡單的就是禁止dma目標位址範圍內的cac...