Zynq-7000系列DMA控制器框圖簡介
掃描二維碼
隨時隨地手機看文章
傳送門:Zynq-7000系列DMA控制器簡介 ,本文將詳細介紹DMA控制器內部結構,指令操作等等。
框圖
DMA 控制器的框圖如圖所示。
DMA 指令執(zhí)行引擎
DMAC 包含一個指令處理塊,使其能夠處理控制 DMA 傳輸的程序代碼。DMAC 為每個線程維護一個單獨的狀態(tài)機。
-
通道仲裁
- 為活動 DMA 通道提供服務的循環(huán)方案
- 在為下一個 DMA 通道提供服務之前為 DMA 管理器提供服務
- 不支持更改仲裁過程
-
渠道優(yōu)先級
- 以相同的優(yōu)先級響應所有活動的 DMA 通道
- 不支持更改 DMA 通道相對于任何其他 DMA 通道的優(yōu)先級
指令緩存
控制器將指令臨時存儲在緩存中,當線程從地址請求指令時,緩存執(zhí)行查找。如果發(fā)生高速緩存命中,則高速緩存立即提供數據,否則當控制器使用 AXI 接口從系統內存執(zhí)行高速緩存行填充時,線程將停止;如果指令大于四個字節(jié),或跨越高速緩存行的末尾,則它執(zhí)行多次高速緩存訪問以獲取指令。
注意:
當緩存行填充正在進行時,控制器允許其他線程訪問緩存,但如果發(fā)生另一個緩存未命中,管道將停止,直到第一個行填充完成。
填充操作的指令緩存延遲取決于寫入 DMA 引擎指令的系統內存的讀取延遲, DMAC 的性能高度依賴于 64 位 AXI 主接口(CPU_2x 時鐘)的帶寬。
讀/寫指令隊列
當通道線程執(zhí)行加載或存儲指令時,控制器將指令添加到相關的讀取隊列或寫入隊列,在 AXI 互連上發(fā)出事務之前,控制器將這些隊列用作指令存儲緩沖區(qū)。
多通道數據FIFO
DMAC 使用多通道先進先出 (MFIFO) 數據緩沖區(qū)來存儲它在 DMA 傳輸期間讀取或寫入的數據。
用于指令獲取和 DMA 傳輸的 AXI 主接口
程序代碼存儲在控制器使用 64 位 AXI 主接口訪問的系統內存區(qū)域中, AXI 主接口還使 DMA 能夠將數據從源 AXI 從設備傳輸到目標 AXI 從設備。
用于寄存器訪問的 APB 從接口
控制器響應軟件使用的兩個地址范圍,通過 32 位 APB 從接口讀寫控制和狀態(tài)寄存器。
-
非安全寄存器訪問
-
安全寄存器訪問
中斷接口
中斷接口可實現與中斷控制器的有效事件通信。
PL 外設 DMA 請求接口
PL 外設請求接口支持連接駐留在 PL 中的具有 DMA 功能的外設。每個 PL 外設請求接口彼此異步并且與 DMA 本身異步。
重置初始化接口
該接口使軟件能夠在 DMAC 從復位退出時初始化它的操作狀態(tài)。





