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