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





