dma 全稱是direct memory access,即直接儲存器訪問。dma傳輸將資料從乙個位址空間複製到另乙個位址空間,尤其適合解決批量資料的輸入/輸出問題。dma的出現主要是為了解決程式程式傳輸方式和中斷傳輸方式效率低下的問題,提高cpu的執行效率。
下面分別聊一聊什麼是程式傳輸方式、中斷傳輸方式和dma,以及各自的優缺點。
1.程式傳輸方式
程式傳送方式是指直接在程式控制下進行資料的輸入/輸出操作。也就是說cpu需要輪詢各個外設的狀態,然後在需要的時候執行資料傳輸,執行效率較低。
2.中斷傳輸方式
在該方式中,外設需要向cpu傳送請求訊號,cpu收到訊號後暫停正在執行的任務,先去執行資料的輸入和輸出,等資料傳送完成後,再回到中斷位置繼續執行暫停的任務。這種方式浪費了cpu的處理時間,適合很少量的資料傳送。
3.dma
在需要進行資料傳輸時,i/o裝置會向dma控制器傳送請求,然後dma控制器向cpu傳送中斷控制請求,請求接管匯流排(位址匯流排、資料匯流排和控制匯流排),之後就是開始進行資料傳輸,傳輸過程完全由dma控制器進行控制。資料傳輸結束後,dma向cpu傳送中斷請求,將匯流排的控制權交還給cpu。dma通過硬體為ram和io裝置開闢一條直接傳輸資料的通道,極大提高了cpu的效率。
直接儲存器訪問DMA
原理 允許不同硬體裝置溝通,而不需要依賴cpu的大量中斷負載 對於cpu來說 需要從 吧每一片斷的資料複製到暫存器,然後把他們寫到新的地方,期間,cpu對於其它的工作就無法使用.對於dma傳輸 將資料從乙個位址空間複製到另乙個位址空間。而cpu只需初始化這個傳輸動作.在實現dma傳輸時,是由dma控...
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...