DMA 工作原理
?
1.DMA請求
CPU對DMA控制器初始化,并向I/O接口發出操作命令,I/O接口提出DMA請求。
2.DMA響應
DMA控制器對DMA請求判別優先級及屏蔽,向總線裁決邏輯提出總線請求。當CPU執行完當前總線周期即可釋放總線控制權。此時,總線裁決邏輯輸出總線應答,表示DMA已經響應,通過DMA控制器通知I/O接口開始DMA傳輸。
3.DMA傳輸
DMA控制器獲得總線控制權后,CPU即刻掛起或只執行內部操作,由DMA控制器輸出讀寫命令,直接控制RAM與I/O接口進行DMA傳輸。
在DMA控制器的控制下,在存儲器和外部設備之間直接進行數據傳送,在傳送過中不需要中央處理器的參與。開始時需提供要傳送的數據的起始位置和數據長度。
4.DMA結束
當完成規定的成批數據傳送后,DMA控制器即釋放總線控制權,并向I/O接口發出結束信號。當I/O接口收到結束信號后,一方面停 止I/O設備的工作,另一方面向CPU提出中斷請求,使CPU從不介入的狀態解脫,并執行一段檢查本次DMA傳輸操作正確性的代碼。最后,帶著本次操作結果及狀態繼續執行原來的程序。
由此可見,DMA傳輸方式無需CPU直接控制傳輸,也沒有中斷處理方式那樣保留現場和恢復現場的過程,通過硬件為RAM與I/O設備開辟一條直接傳送數據的通路,使CPU的效率大為提高。
總結
- 上一篇: H5 实现拨打电话
- 下一篇: 1! 5!(7月3日)