反射內存RFM5565分散/集聚的DMA 操作示例
注:scatter/gather 方式是與block dma 方式相對應的一種dma 方
式。
連續的。但在有的計算機體系中,如IA,連續的存儲器地址在物理
在dma 傳輸數據的過程中,要求源物理地址和目標物理地址必須是
上不一定是連續的,則dma 傳輸要分成多次完成。
如果傳輸完一塊物理連續的數據后發起一次中斷,同時主機進行下一
塊物理連續的傳輸,則這種方式即為block dma 方式。
scatter/gather 方式則不同,他是用一個鏈表描述物理不連續的存儲器,
然后把鏈表首地址告訴dma master。dma master 傳輸完一塊物理連續
的數據后,就不用再發中斷了,而是根據鏈表傳輸下一塊物理連續的
數據,最后發起一次中斷。
很顯然scatter/gather 方式比block dma 方式效率高。
分散/集聚DMA 傳輸是一種用于執行分割成不同小塊的大型數
據的傳輸的模式。注意:在一個數據頁不能跨越4 GB 的地址邊界。
該DMA 描述符指針是鏈表頁描述地址。
每個頁面描述符定義一個地址和數據塊大小加上下一個描述符
塊的指針。當數據被讀取/寫入到相應的頁面,自動獲取描述符。描
述鏈處理直到數據傳輸完成或達到的描述鏈的末端,以先到者為準。
頁面描述符塊不能被映射在64 位尋址空間。第一個描述符必須
是一個16 字節的邊界上。為了獲得最佳性能,每個描述符塊應該被
一個16 字節或8 字節邊界對齊。
頁面描述鏈必須建立在PCI 32bit 的內存空間,才開始一個分散/
集聚DMA。鏈中的每個描述符格式如下:
第二個DWORD:高 32 位PCI 數據地址,0 為32 位尋址)($
第一DWORD:低 32 位PCI 數據地址(每個頁面都要一個8 字
第三DWORD:要傳輸的字節數到/從 PCI 地址(每個頁面大小
必須是8 字節的倍數)
第四DWORD:下一描述符(寫$1 表示鏈結束)
同時,所有數據塊的大小總長度值必須被寫入DMA 傳輸大小寄
存器。
1;芳拇嫫 0 存儲本地控制和配置寄存器,其中包括DMA
控制寄存器的起始地址。該寄存器中的值是PCIBAR0。
2。為配置一個DMA 周期有6 個DMA 寄存器必須被設置。DMA
周期后這些寄存器將保持不變。
狀 態: 離線 公司簡介 產品目錄 供應信息
經營許可證編號:粵B2-20130035
粵公網安備 :44030502000203號