DMA技術(shù)
AXI直接數(shù)值存?。―rect Memory Access,DMA)IP核在AXI4內(nèi)存映射和AXI4流IP接口之間提供高帶寬的直接內(nèi)存訪問(wèn)。DMA可以選擇分散收集(Scatter Gather,SG)功能還可以將數(shù)據(jù)移動(dòng)任務(wù)從位于于處理器系統(tǒng)中的中央處理器(CPU)中卸載出來(lái)。可以通過(guò)一個(gè)AXI4-Lite從接口訪問(wèn)初始化、狀態(tài)和管理寄存器。如圖4. 8展現(xiàn)了DMA IP的功能構(gòu)成核心。
系統(tǒng)內(nèi)存和傳輸?shù)哪繕?biāo)之間的主要通過(guò)高速DMA數(shù)據(jù)傳輸,數(shù)據(jù)之間的流向是AXI4讀數(shù)據(jù)的主端口到AXI4內(nèi)存映射流(Memory-Mapped To Stream,MM2S),和通過(guò)數(shù)據(jù)流到內(nèi)存映射(Stream To Memory-Mapped,S2MM)從外設(shè)寫入到內(nèi)存中。AXI DMA還支持在分散/聚集模式下,MM2S和S2MM路徑上最多16個(gè)多通道的數(shù)據(jù)傳輸[67]。
Fig4. 8 Core functions of AXI DMA
圖4.8 AXI DMA 核心功能
DMA傳輸數(shù)據(jù)是不需要CPU進(jìn)行控制,而是有一個(gè)專門的DMA控制器來(lái)控制著存儲(chǔ)器之間的數(shù)據(jù)傳送或者外部設(shè)備與存儲(chǔ)器之間的數(shù)據(jù)交換流程。DMA控制器使用64-bit的AXI主接口,操作以兩倍的CPU的時(shí)鐘速率執(zhí)行系統(tǒng)內(nèi)存和PL外圍設(shè)備之間的DMA數(shù)據(jù)傳輸。軟件通過(guò)控制器的32位APB從接口訪問(wèn)這些寄存器。DMA控制器的基本工作流程如圖4. 9所示。
圖4.9 DMAC基本工作流程
Fig4. 9 DMAC basic workflow
源存儲(chǔ)設(shè)備向DMAC發(fā)送任務(wù)請(qǐng)求,DMAC在接收到請(qǐng)求后向CPU發(fā)出接管總線的權(quán)限,CPU把總線控制權(quán)釋放給DMAC并且開(kāi)始傳輸數(shù)據(jù),使用FIFO作為一個(gè)中介,分別在源端口和目標(biāo)端口進(jìn)行讀寫操作。當(dāng)數(shù)據(jù)傳輸完畢之后產(chǎn)生完成中斷信號(hào)給CPU,把總線控制權(quán)限交還給CPU。
分散/收集(SG)模式下DMA傳輸
AXI DMA收集和發(fā)散模式下使用描述符進(jìn)行控制數(shù)據(jù)傳輸,描述符由8個(gè)32-bit基本字和0或5個(gè)用戶應(yīng)用程序字組成。描述符將會(huì)支持64-bit地址和用戶應(yīng)用程序數(shù)據(jù)。每個(gè)數(shù)據(jù)幀的開(kāi)頭和結(jié)尾的標(biāo)簽都支持多個(gè)描述符。完成狀態(tài)和完成時(shí)的中斷狀態(tài)也包括在內(nèi)。
在開(kāi)始DMA操作之前,軟件應(yīng)用程序必須設(shè)置一個(gè)描述符鏈表。AXI DMA通過(guò)獲取、處理并更新處理描述符。通過(guò)分析描述符,軟件應(yīng)用程序可以讀取相關(guān)DMA傳輸?shù)臓顟B(tài),通過(guò)在接收(S2MM)通道上獲取用戶信息來(lái)確定傳輸完成。有了這些信息,軟件應(yīng)用程序可以管理描述符和數(shù)據(jù)緩沖區(qū)。
描述符SOF/EOF設(shè)置和AXI控制流之間的關(guān)系如圖4. 10所示。SOF=1的描述符是數(shù)據(jù)包的開(kāi)始,并為MM2S方向重置方向。圖4. 11顯示了描述符用戶應(yīng)用程序字段如何在AXI控制流上顯示的示例。AXI DMA向目標(biāo)設(shè)備插入一個(gè)標(biāo)志來(lái)指示數(shù)據(jù)類型。
圖4.10描述符與MM2S流和控制流的關(guān)系
Fig4. 10 Detail of Descriptor Relationship to MM2S Stream and Control Stream
圖4.11 MM2S控制流的用戶應(yīng)用字段和時(shí)間
Fig4. 11 Example user application field / timing for MM2S control stream
表4.3 MM2S描述符表內(nèi)容具體解釋
Table 4.3 MM2S descriptor content specific explanation
地址空間偏移 | 名字 | 描述 |
00h 04h 08h 0Ch 10h 14h 18h 1Ch 20h 24h 28h 2Ch |
MM2S下一個(gè)地址 (地址)保留 MM2S緩沖區(qū)地址 (數(shù)據(jù)地址)保留 保留 保留 控制 狀態(tài) MM2S應(yīng)用0 MM2S應(yīng)用1 MM2S應(yīng)用2 MM2S應(yīng)用3 |
MM2S指向下一描述符表的地址 前面32-bit作為描述符表的地址保留 MM2S中指向傳輸數(shù)據(jù)的地址 前32-bit保留指向傳輸數(shù)據(jù)的地址 保留 保留 控制 狀態(tài) MM2S應(yīng)用程序0 MM2S應(yīng)用程序1 MM2S應(yīng)用程序2 MM2S應(yīng)用程序3 |
-
接口
+關(guān)注
關(guān)注
33文章
8971瀏覽量
153448 -
內(nèi)存
+關(guān)注
關(guān)注
8文章
3117瀏覽量
75112 -
dma
+關(guān)注
關(guān)注
3文章
576瀏覽量
102862 -
IP核
+關(guān)注
關(guān)注
4文章
338瀏覽量
50628 -
AXI
+關(guān)注
關(guān)注
1文章
136瀏覽量
17172
原文標(biāo)題:DMA技術(shù)和及其SG模式
文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
AXI DMA詳解與應(yīng)用篇

一文詳解MPSoC芯片
AXI接口協(xié)議詳解
Adam Taylor玩轉(zhuǎn)MicroZed系列68:AXI DMA Ⅲ,軟件部分

Adam Taylor玩轉(zhuǎn)MicroZed系列67:AXI DMA II
一文詳解ZYNQ中的DMA與AXI4總線

你必須了解的AXI總線詳解

ZYNQ中DMA與AXI4總線

Petalinux加速axi-dma內(nèi)核驅(qū)動(dòng)緩沖區(qū)讀過(guò)程

評(píng)論