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

評論