回覆列表
  • 1 # 使用者5703491554512

    外設程式語言問題。直接記憶體存取(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的效率大為提高。

  • 中秋節和大豐收的關聯?
  • 用雞蛋炒饅頭怎麼炒?