用于帶有PCIe的嵌入式系統(tǒng)的散/聚式DMA
新一代的互聯(lián)需求持續(xù)不斷地向軟硬件設(shè)計(jì)施加壓力。不斷提高的服務(wù)質(zhì)量(QoS),數(shù)據(jù)信道隔離,數(shù)據(jù)平滑恢復(fù)和完整性等,都是值得考慮的一些指標(biāo)要求。PCIe就是能夠滿足上述要求的一種互聯(lián)技術(shù)。
本文引用地址:http://m.butianyuan.cn/article/191787.htm在FPGA中實(shí)現(xiàn)一個(gè)PCIe接口時(shí),為了確保系統(tǒng)效率,系統(tǒng)抖動(dòng),數(shù)據(jù)時(shí)鐘開銷以及必須滿足的端到端總帶寬需求,設(shè)計(jì)師必須考慮數(shù)據(jù)傳輸?shù)姆绞?。將一個(gè)散/聚DMA(SGDMA)與一個(gè)PCIe接口結(jié)合起來,通過從本地處理器上卸載一些數(shù)據(jù)傳輸負(fù)擔(dān),以及均攤多通道間的硬件延遲,非常有助于軟硬件設(shè)計(jì)師滿足他們的設(shè)計(jì)需求。本文將討論采用基于FPGA的SGDMA與PCIe相結(jié)合的一些優(yōu)點(diǎn)。
絕大部分的新型DMA控制器都支持散/聚功能,這里,硬件負(fù)責(zé)數(shù)據(jù)的轉(zhuǎn)移,駐留在不連續(xù)的物理存儲(chǔ)器中,不需要主處理器來處理模塊間的數(shù)據(jù)轉(zhuǎn)移。這是通過將DMA緩沖器描述符“鏈接”到一起來實(shí)現(xiàn)的,每個(gè)描述符中都含有使SGDMA自動(dòng)執(zhí)行數(shù)據(jù)轉(zhuǎn)移所需的所有信息。當(dāng)處理支持虛擬存儲(chǔ)器的操作系統(tǒng)時(shí),SGDMA得到最普遍的采用。
直接存儲(chǔ)器訪問實(shí)現(xiàn)方案
衡量DMA控制器的收益有以下幾種方法:通過定量分析究竟重新獲取了多少時(shí)鐘周期?相關(guān)設(shè)備驅(qū)動(dòng)的復(fù)雜度減少了多少?或者由于“隱藏”數(shù)據(jù)分發(fā)的開銷使DMA引擎增加了多少系統(tǒng)總吞吐量?增強(qiáng)型DMA引擎支持的一些功能包括:
* 在線分組緩沖存儲(chǔ)
* 本地和前端總線的同時(shí)傳輸
* 延時(shí)處理
* 終端事物處理搶斷
* 為DMA控制器連接的每條總線提供獨(dú)立仲裁
當(dāng)前端和本地總線處于超高負(fù)載條件下且傳輸數(shù)據(jù)前DMA控制器必須競(jìng)用并獲取總線占有權(quán)時(shí),可以采用在線數(shù)據(jù)緩沖器。
圖1:虛擬存儲(chǔ)器環(huán)境中的SGDMA控制器。
在FPGA中使用塊存儲(chǔ)始終是下面幾方面的折中,即由于總線占用究竟需要多少臨時(shí)緩沖器?FPGA中的功能是否需要存儲(chǔ)器?使用中間數(shù)據(jù)存儲(chǔ)所導(dǎo)致的附加延遲的代價(jià)如何?如果可能的話,在線分組緩沖器可以減少一些系統(tǒng)延遲,即用一條總線去讀取數(shù)據(jù),而“存儲(chǔ)”總線不轉(zhuǎn)送數(shù)據(jù)。
評(píng)論