反射內(nèi)存 RFM5565 分散/集聚的 DMA 操作示例
發(fā)布時間:2019-07-08 瀏覽次數(shù):56
返回列表
反射內(nèi)存RFM5565分散/集聚的DMA 操作示例 |
注:scatter/gather 方式是與block dma 方式相對應(yīng)的一種dma 方 |
連續(xù)的。但在有的計算機體系中,如IA,連續(xù)的存儲器地址在物理 |
在dma 傳輸數(shù)據(jù)的過程中,要求源物理地址和目標物理地址必須是 |
上不一定是連續(xù)的,則dma 傳輸要分成多次完成。 |
如果傳輸完一塊物理連續(xù)的數(shù)據(jù)后發(fā)起一次中斷,同時主機進行下一 |
塊物理連續(xù)的傳輸,則這種方式即為block dma 方式。 |
scatter/gather 方式則不同,他是用一個鏈表描述物理不連續(xù)的存儲器, |
然后把鏈表首地址告訴dma master。dma master 傳輸完一塊物理連續(xù) |
的數(shù)據(jù)后,就不用再發(fā)中斷了,而是根據(jù)鏈表傳輸下一塊物理連續(xù)的 |
數(shù)據(jù),**發(fā)起一次中斷。 |
很顯然scatter/gather 方式比block dma 方式效率高。 |
分散/集聚DMA 傳輸是一種用于執(zhí)行分割成不同小塊的大型數(shù) |
據(jù)的傳輸?shù)哪J健W⒁猓涸谝粋€數(shù)據(jù)頁不能跨越4 GB 的地址邊界。 |
每個頁面描述符定義一個地址和數(shù)據(jù)塊大小加上下一個描述符 |
塊的指針。當數(shù)據(jù)被讀取/寫入到相應(yīng)的頁面,自動獲取描述符。描 |
述鏈處理直到數(shù)據(jù)傳輸完成或達到的描述鏈的末端,以先到者為準。 |
頁面描述符塊不能被映射在64 位尋址空間。**個描述符必須 |
是一個16 字節(jié)的邊界上。為了獲得*性能,每個描述符塊應(yīng)該被 |
一個16 字節(jié)或8 字節(jié)邊界對齊。 |
頁面描述鏈必須建立在PCI 32bit 的內(nèi)存空間,才開始一個分散/ |
集聚DMA。鏈中的每個描述符格式如下: 第二個DWORD:高 32 位PCI 數(shù)據(jù)地址,0 為32 位尋址)($ |
**DWORD:低 32 位PCI 數(shù)據(jù)地址(每個頁面都要一個8 字 |
第三DWORD:要傳輸?shù)淖止?jié)數(shù)到/從 PCI 地址(每個頁面大小 |
第四DWORD:下一描述符(寫$1 表示鏈結(jié)束) |
同時,所有數(shù)據(jù)塊的大小總長度值必須被寫入DMA 傳輸大小寄 |
1?;芳拇嫫?nbsp;0 存儲本地控制和配置寄存器,其中包括DMA |
控制寄存器的起始地址。該寄存器中的值是PCIBAR0。 |
2。為配置一個DMA 周期有6 個DMA 寄存器必須被設(shè)置。DMA |
|