DMA(Direct Memory Access,直接存儲器訪問)是一種允許數據直接在記憶體和外設之間傳輸的技術,而無需CPU的持續干預。當CPU回響DMA請求時,系統將控制權交給DMA控制器,DMA控制器負責傳送存儲器地址、決定數據塊長度並執行數據傳輸,傳輸完成後,DMA控制器會重新控制權交還給CPU。
DMA支持四種傳輸模式,包括外設到記憶體、記憶體到外設、記憶體到記憶體、外設到外設。在某一時刻,如果多個DMA請求同時到達,DMA控制器會通過一個稱為仲裁器的機制來決定先回響哪個請求。
DMA的兩種主要傳輸模式是正常模式和循環模式。在正常模式下,DMA傳輸會在設定數量的數據傳輸完成後停止;而在循環模式下,數據會持續不斷地在記憶體和外設之間傳輸,直到被顯式地停止。
使用DMA的好處在於它可以顯著減輕CPU的負擔,特別是在處理大量數據時。例如,在傳統的數據傳輸中,CPU需要管理數據的移動,而在DMA傳輸中,CPU可以被釋放去執行其他更重要或更複雜的任務。