DMA的工作過程
DMA的工作過程
DMA是Direct Memory Access的縮寫,意為儲存器直接訪問。可以不通過CPU而在DMA控制器的控制下,高速地與I/O裝置和儲存器之間交換資料。CPU除了在資料傳輸開始和結束時做一些處理外,在傳輸過程中,CPU可以進行其他工作。這樣,在大部分時間裡,CPU和輸入/輸出都處於並行操作狀態。所以,使整個計算機系統的效率大提高。DMA控制器是實現DMA輸入/輸出方式的具體執行操作。
ARM9的S3C2440擁有4通道的DMA控制器,與系統匯流排的外圍匯流排相連。DMA控制器的每一個通道可以在系統匯流排上的儲存器與外圍匯流排之間、系統匯流排上的裝置之間以及外圍匯流排之間運算元據傳輸而不被限制。
S3C2440的DMA在以下四種情況可執行:
1. 源裝置和目標都在系統匯流排AHB上;
2. 源裝置和目標都在外圍匯流排APB上;
3. 源裝置在系統匯流排,而目標裝置位於外圍匯流排;
4. 源裝置在外圍匯流排,而目標裝置位於系統匯流排;
DMA的主要優點是:可以不通過CPU的中斷來實現資料的傳輸,DMA的執行可以通過軟體或者通過外圍裝置的中斷和請求來初始化。
DMA的工作過程(如圖):
DMA的工作過程
1) 外設向DMAC發出請求;
2) DMAC通過HOLD向CPU發出匯流排請求;
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
相關文章
- OAuth 2.0以及它的工作過程工作過程OAuth
- [譯] Redux 的工作過程Redux
- 讓DMA66 硬碟工作在DMA33 模式 (轉)硬碟模式
- oracle的undo的工作過程Oracle
- 編譯器的工作過程編譯
- FreeBSD DHCP的工作過程(轉)
- CDN基本工作過程 (轉)
- 編譯器的工作過程和原理編譯
- Hadoop之 MapReducer工作過程Hadoop
- python中try語句的工作過程Python
- 【Android原始碼】BroadcastReceiver的工作過程Android原始碼AST
- AIX 使用者工作環境建立的過程AI
- 從巨集觀的角度看 Gradle 的工作過程Gradle
- 談談 ajax 工作過程那點事
- Activiti配置工作流結束過程
- oracle資料庫服務的工作過程與原理Oracle資料庫
- 流式dma和一致性dma的區別
- 從Spring的幾個階段理解其工作過程Spring
- 分享工作中一次優化程式的過程優化
- 簡要介紹編譯器工作過程的11步編譯
- 流處理器與其他部件協同工作的過程
- 計算機工作兩年,我決定考研的思考過程計算機
- 區塊鏈面試工作招聘過程中的40個問題區塊鏈面試
- 測試過程中的評審工作及關注事項
- 套接字socket 的地址族和型別、工作原理、建立過程型別
- DMA-BUF
- 詳解NTP網路時間協議工作過程協議
- pt-online-schema-change工作過程介紹
- WiFi基礎(四):WiFi工作原理及WiFi接入過程WiFi
- 前端工程化:圍繞Jenkins打造工作流的過程前端Jenkins
- iOS main()執行前的過程 + weak 置 nil的過程iOSAI
- 在工作過程中,逐步搭建的前後端分離方案和工具後端
- 一種3位sar adc工作過程推導(二)
- TiCDC 原始碼閱讀(三)TiCDC 叢集工作過程解析原始碼
- 記錄工作過程中一次業務最佳化
- 實戰儲存過程排程過程儲存過程
- MySQL的session過程MySqlSession
- SQL 解析的過程SQL