DMA的工作過程

woodcol發表於2017-11-03
    

DMA的工作過程

DMADirect Memory Access的縮寫,意為儲存器直接訪問。可以不通過CPU而在DMA控制器的控制下,高速地與I/O裝置和儲存器之間交換資料。CPU除了在資料傳輸開始和結束時做一些處理外,在傳輸過程中,CPU可以進行其他工作。這樣,在大部分時間裡,CPU和輸入/輸出都處於並行操作狀態。所以,使整個計算機系統的效率大提高。DMA控制器是實現DMA輸入/輸出方式的具體執行操作。

ARM9S3C2440擁有4通道的DMA控制器,與系統匯流排的外圍匯流排相連。DMA控制器的每一個通道可以在系統匯流排上的儲存器與外圍匯流排之間、系統匯流排上的裝置之間以及外圍匯流排之間運算元據傳輸而不被限制。

S3C2440DMA在以下四種情況可執行:

1.  源裝置和目標都在系統匯流排AHB上;

2.  源裝置和目標都在外圍匯流排APB上;

3.  源裝置在系統匯流排,而目標裝置位於外圍匯流排;

4.  源裝置在外圍匯流排,而目標裝置位於系統匯流排;

DMA的主要優點是:可以不通過CPU的中斷來實現資料的傳輸,DMA的執行可以通過軟體或者通過外圍裝置的中斷和請求來初始化。

DMA的工作過程(如圖):

DMA的工作過程 - ♂蘋果 - 眼睛想旅行

 

DMA的工作過程

1)  外設向DMAC發出請求;

2)  DMAC通過HOLDCPU發出匯流排請求;

3)  CPU響應釋放三匯流排,並且發應答HLDA

4)  DMAC向外設發DMA應答;

5)  DMAC發出地址、控制訊號,為外設傳送資料;

6)  傳送完規定的資料後,DMAC撤銷HOLD訊號,CPU也撤銷HLDA訊號,並且恢復對三匯流排的控制。

 

加個廣告,我自已寫的一個關於54/74和4000系列的積體電路資料手冊應用,我是積體電路硬體工程師出身,所以寫了這個應用:https://itunes.apple.com/us/app/logic-circuits/id578183596?ls=1&mt=8

相關文章