原理:允許不同硬體裝置溝通,而不需要依賴cpu的大量中斷負載
對於cpu來說:需要從**吧每一片斷的資料複製到暫存器,然後把他們寫到新的地方,期間,cpu對於其它的工作就無法使用.
對於dma傳輸:將資料從乙個位址空間複製到另乙個位址空間。而cpu只需初始化這個傳輸動作.
在實現dma傳輸時,是由dma控制器直接掌管匯流排,所以存在乙個匯流排控制權轉移的問題,dma傳輸結束後,dma控制器立即把匯流排控制權還給cpu.
傳輸步驟
dma請求
cpu對dma控制器初始化,並向i/o介面發出操作命令,i/o介面提出dma請求
dma響應
dma控制器對dma請求判別優先順序及遮蔽,向匯流排裁決邏輯提出匯流排請求。當cpu執行完當前匯流排週期即可釋放匯流排控制權。此時,匯流排裁決邏輯輸出匯流排應答,表示dma已經響應,通過dma控制器通知i/o介面開始dma傳輸。
dma傳輸
dma控制器獲得匯流排控制權後,cpu即刻掛起或只執行內部操作,由dma控制器輸出讀寫命令,直接控制ram與i/o介面進行dma傳輸。
在dma控制器的控制下,在儲存器和外部裝置之間直接進行資料傳送,在傳送過程中不需要**處理器的參與。開始時需提供要傳送的資料的起始位置和資料長度。
dma結束
當完成規定的成批資料傳送後,dma控制器即釋放匯流排控制權,並向i/o介面發出結束訊號。當i/o介面收到結束訊號後,一方面停 止i/o裝置的工作,另一方面向cpu提出中斷請求,使cpu從不介入的狀態解脫,並執行一段檢查本次dma傳輸操作正確性的**。最後,帶著本次操作結 果及狀態繼續執行原來的程式。
DMA 直接儲存器訪問
dma 全稱是direct memory access,即直接儲存器訪問。dma傳輸將資料從乙個位址空間複製到另乙個位址空間,尤其適合解決批量資料的輸入 輸出問題。dma的出現主要是為了解決程式程式傳輸方式和中斷傳輸方式效率低下的問題,提高cpu的執行效率。下面分別聊一聊什麼是程式傳輸方式 中斷傳輸...
STM32Cube 直接儲存器訪問(DMA)
在usart章節講解了串列埠的輪詢和中斷模式,這一章介紹一下通過dma模式控制串列埠傳輸。直接儲存器訪問 dma 用於在外設與儲存器之間以及儲存器與儲存器之間提供高速資料傳輸。可以在無需任何 cpu 操作的情況下通過 dma 快速移動資料。這樣節省的 cpu 資源可供其它操作使用。說白了dma就是乙...
直接記憶體訪問(DMA)初探
1.dma簡介 dma direct memory access 直譯為直接記憶體訪問,是一種無需cpu的參與就可以讓外設與系統記憶體之間進行雙向資料傳輸的硬體機制。使用dma可以使系統cpu從實際的i o資料傳輸過程中擺脫出來,從而大大提高系統的吞吐率。2.dma工作過程 dma方式的資料傳輸由d...