新聞中心

EEPW首頁 > EDA/PCB > 設計應用 > 用于帶有PCIe的嵌入式系統(tǒng)的散/聚式DMA

用于帶有PCIe的嵌入式系統(tǒng)的散/聚式DMA

作者: 時間:2010-02-26 來源:網(wǎng)絡 收藏
采用較小數(shù)據(jù)包時必須處理好以下幾個問題:

本文引用地址:http://m.butianyuan.cn/article/191787.htm

  1. 用在所有的事務層分組(TLPs)方面的開銷相對固定;較多的數(shù)據(jù)包則需要較多的處理開銷

  2. 較小的數(shù)據(jù)包通常需要的處理時間也少,于是就增加了由數(shù)據(jù)引擎和接口發(fā)起的并發(fā)中斷的次數(shù)

  3. 為了維持適當?shù)呢撦d均衡,較小的數(shù)據(jù)包會增加本地處理器的負荷

  4. 本地主處理器必須花費較多的時間來生成協(xié)議所用的數(shù)據(jù)轉(zhuǎn)移TLP

  上面的幾點意味著本地主處理器將會損失更多的原本用于其他功能的時鐘周期。因此,較小的數(shù)據(jù)包有助于減小物理接口的處理延遲,但代價是增加了終端系統(tǒng)的負荷,這有可能降低總的系統(tǒng)性能。雖然PCIe TLP開銷處理延遲無法完全消除,但通過采用一個多通道散/聚引擎,基于靈活的仲裁機制,將數(shù)據(jù)塊請求分成較小單元的可變大小的數(shù)據(jù)包,以及在控制器自身中設計事務分割支持能力,可以攤薄每隔通道上與每個流等級(TC)相關(guān)的延遲。此外,設計一個較小的TLP事務IP核,通過生成/終接PCIe TLP,有助于提高軟件的效率。


  圖3:帶有的PCIe讀/寫處理。

  對于PCIe,存儲器讀取(MRd)不是優(yōu)先的,是作為一個分割事務執(zhí)行的,而存儲器寫(MWr)則是優(yōu)先的。對于讀取,請求者先發(fā)送一個MRd TLP來請求completor算法發(fā)送大量的數(shù)據(jù)(通常最大的讀取請求為512字節(jié)),然后專門等待發(fā)送過來的數(shù)據(jù)。PCIe MWr TLP中包含將被寫入(通常最大為128字節(jié))的滿載荷。因此,MLRd TLP在發(fā)送方向上,就像MWr TLP那樣,也需要一段帶寬。通過向MW通道分配更多的資源,在發(fā)送(Tx)方向上管道將保持在滿狀態(tài),而接收(Rx)管道則用響應MRd請求的數(shù)據(jù)TLP來填滿,見圖2。

  軟件執(zhí)行時間方面獲得的好處

  一個功能豐富的散/聚DMA控制器通過實現(xiàn)其他方案中需要復雜的算法和/或大量中斷的功能,還能夠減少軟件開發(fā)的工作量和CPU的執(zhí)行時間:

  * 所有最先進的處理器和操作系統(tǒng),包括實時性能最好的操作系統(tǒng)(RTOS),都采用MMU和虛擬存儲器。乃至內(nèi)核都采用虛擬地址。這意味著DMA不能線形地訪問系統(tǒng)存儲器中的緩沖器。當該緩沖器接近處理時,事實上它被散布到PAGE_SIZE模塊中的各個物理存儲器中。一個散/聚DMA通過允許每個緩沖器描述符被映射到存儲器的物理頁中,來幫助處理器和軟件驅(qū)動器。在本地緩沖器描述符中沒有散/聚列表,驅(qū)動器一次只能移動一頁的數(shù)據(jù),然后才能重新啟動DMA進行下一頁的移動,這樣將很大程度上影響系統(tǒng)性能。

  * 通常,一個系統(tǒng)由多個執(zhí)行線程組成。這些線程可能都要轉(zhuǎn)移數(shù)據(jù)。如果一個DMA由多個通道,并為每個通道都分配一個線程,就能通過這些更多的并行處理來改善系統(tǒng)性能。

  * 如果CPU工作在little-endian模式并轉(zhuǎn)移TCP/IP數(shù)據(jù)包到MAC,通常被迫利用軟件例程來與網(wǎng)絡order(big-endian)交換字節(jié)。一個能夠在硬件中以即時模式實現(xiàn)這種轉(zhuǎn)換的DMA,能夠降低軟件的復雜度并縮短系統(tǒng)設計時間。

  * 為了提高效率,PCIe總線接口應該盡可能寬(64位),不過許多外設卻只具有窄帶寬(16或32位)。如果用DMA進行總線重新適配,則對PCIe接口的性能沒有影響,在構(gòu)建高帶寬轉(zhuǎn)移到PCIe接口邏輯之前,DMA可以對較小的外設進行2重或4重訪問。

  * 它提供了一個適配層,將基于分組的TLP數(shù)據(jù)流轉(zhuǎn)換成對線形存儲器的并行總線訪問。這對于復用已經(jīng)帶有存儲器接口(地址總線,數(shù)據(jù)總線,控制線)的IP模塊的設計師來說將帶來巨大的收益。他們能夠非常容易地將IP模塊配置到DMA服務的總線上。

  本文小結(jié)

  利用像散/聚DMA控制器這類先進的載荷存儲數(shù)據(jù)引擎控制器,F(xiàn)PGA系統(tǒng)設計師能夠改進與基于PCIe的系統(tǒng)設計相關(guān)的軟硬件中普遍存在的吞吐率和延遲方面的缺陷。


上一頁 1 2 3 下一頁

關(guān)鍵詞: PCIe DMA 嵌入式系統(tǒng) 聚式

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉