當前位置:編程學習大全網 - 編程語言 - dma方式為什麽能實現高速外設與主存間的信息交換?dma的傳送方法有哪幾種

dma方式為什麽能實現高速外設與主存間的信息交換?dma的傳送方法有哪幾種

外設編程語言問題。直接內存存取(DMA) 技術。

DMA 傳輸重要地將壹個內存區從壹個裝置復制到另外壹個。當 CPU初始化這個傳輸動作,傳輸動作本身是由 DMA 控制器 來實行和完成。典型的例子就是移動壹個外部內存的區塊到芯片內部更快的內存去。像是這樣的操作並沒有讓處理器工作拖延,反而可以被重新排程去處理其他的工作。DMA 傳輸對於高效能 嵌入式系統 算法和網絡是很重要的。  

在實現DMA傳輸時,是由DMA控制器直接掌管總線,因此,存在著壹個總線控制權轉移問題。即DMA傳輸前,CPU要把總線控制權交給DMA控制器,而在結束DMA傳輸後,DMA控制器應立即把總線控制權再交回給CPU。 壹個完整的DMA傳輸過程必須經過下面的4個步驟。

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的效率大為提高。

  • 上一篇:編程遊戲軸
  • 下一篇:孔明關於棋盤的詩句
  • copyright 2024編程學習大全網