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...