最新免费av在线观看,亚洲综合一区成人在线,中文字幕精品无码一区二区三区,中文人妻av高清一区二区,中文字幕乱偷无码av先锋

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

出處:中國(guó)服務(wù)器網(wǎng) 發(fā)布于:2009-07-31 09:51:47

  新一代的互聯(lián)需求持續(xù)不斷地向軟硬件設(shè)計(jì)施加壓力。不斷提高的服務(wù)質(zhì)量(QoS),數(shù)據(jù)信道隔離,數(shù)據(jù)平滑恢復(fù)和完整性等,都是值得考慮的一些指標(biāo)要求。PCIe就是能夠滿足上述要求的一種互聯(lián)技術(shù)。

  在FPGA中實(shí)現(xiàn)一個(gè)PCIe接口時(shí),為了確保系統(tǒng)效率,系統(tǒng)抖動(dòng),數(shù)據(jù)時(shí)鐘開(kāi)銷(xiāo)以及必須滿足的端到端總帶寬需求,設(shè)計(jì)師必須考慮數(shù)據(jù)傳輸?shù)姆绞?。將一個(gè)散/聚DMA(SGDMA)與一個(gè)PCIe接口結(jié)合起來(lái),通過(guò)從本地處理器上卸載一些數(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ǔ)器中,不需要主處理器來(lái)處理模塊間的數(shù)據(jù)轉(zhuǎn)移。這是通過(guò)將DMA緩沖器描述符“鏈接”到一起來(lái)實(shí)現(xiàn)的,每個(gè)描述符中都含有使SGDMA自動(dòng)執(zhí)行數(shù)據(jù)轉(zhuǎn)移所需的所有信息。當(dāng)處理支持虛擬存儲(chǔ)器的操作系統(tǒng)時(shí),SGDMA得到普遍的采用。

  直接存儲(chǔ)器訪問(wèn)實(shí)現(xiàn)方案

  衡量DMA控制器的收益有以下幾種方法:通過(guò)定量分析究竟重新獲取了多少時(shí)鐘周期?相關(guān)設(shè)備驅(qū)動(dòng)的復(fù)雜度減少了多少?或者由于“隱藏”數(shù)據(jù)分發(fā)的開(kāi)銷(xiāo)使DMA引擎增加了多少系統(tǒng)總吞吐量?增強(qiáng)型DMA引擎支持的一些功能包括:

  * 在線分組緩沖存儲(chǔ)

  * 本地和前端總線的同時(shí)傳輸

  * 延時(shí)處理

  * 終端事物處理?yè)寯?/P>

  * 為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ù)。

  例如,當(dāng)PCIe接收和發(fā)送虛擬通道(VC)緩沖器比較小時(shí),允許DMA控制器的一側(cè)轉(zhuǎn)移數(shù)據(jù)到VC緩沖器,或者將出自VC緩沖器的數(shù)據(jù)送到本地分組存儲(chǔ)器中,這樣能夠改善流控制信用(Flow Control Credit)等級(jí),從而降低PCIe鏈路與本地存儲(chǔ)器利用的相互依賴。此外,當(dāng)DMA控制器的I/O總線側(cè)正在與PCIe核通信時(shí),前端總線接口就可以同時(shí)將隨后PCIe核傳送的數(shù)據(jù)轉(zhuǎn)移到分組緩沖器中。這固然會(huì)增加一些延遲,但卻好過(guò)于由于總線競(jìng)用所導(dǎo)致的DMA控制器停擺,而且DMA控制器上的并發(fā)工作可以改善數(shù)據(jù)轉(zhuǎn)移的總延遲。

  在PCIe中,通過(guò)分割處理來(lái)支持讀操作,當(dāng)讀請(qǐng)求發(fā)出時(shí),PCIe鏈路上將要傳輸?shù)臄?shù)據(jù)不會(huì)立即得到。在這種情況下,支持延遲處理的DMA控制器將自動(dòng)放棄總線控制,并允許DMA中任何其他被激活的通道來(lái)競(jìng)用總線控制。

  圖2:具有DMA高層架構(gòu)的PCIe。

  實(shí)時(shí)處理方面獲得的好處

  PCIe串行協(xié)議的一些苛刻的應(yīng)用是那些要求實(shí)時(shí)或準(zhǔn)實(shí)時(shí)的數(shù)據(jù)傳遞。在這類系統(tǒng)中,像語(yǔ)音和視頻處理,需要采用運(yùn)算增強(qiáng)引擎來(lái)滿足數(shù)據(jù)塊嚴(yán)格的處理時(shí)間要求。這些硬限制不僅增加了運(yùn)算增強(qiáng)芯片內(nèi)部的軟件工作的數(shù)據(jù)處理和減小延遲的負(fù)擔(dān),而且也增加了流處理硬件的負(fù)擔(dān)。一種提供較小的數(shù)據(jù)包延遲和較高的系統(tǒng)吞吐率的方法是在數(shù)據(jù)進(jìn)入系統(tǒng)背板上傳輸之前,將數(shù)據(jù)塊分成較小的數(shù)據(jù)包。這樣,可以采用較小的接收緩沖器,并確保不會(huì)出現(xiàn)哪個(gè)數(shù)據(jù)引擎的負(fù)荷過(guò)重的問(wèn)題。

  采用較小數(shù)據(jù)包時(shí)必須處理好以下幾個(gè)問(wèn)題:

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

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

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

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

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

  圖3:帶有DMA的PCIe讀/寫(xiě)處理。

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

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

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

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

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

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

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

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

  本文小結(jié)

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


  
關(guān)鍵詞:用于帶有PCIe的嵌入式系統(tǒng)的散/聚式DMA嵌入式系統(tǒng)

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://www.udpf.com.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號(hào)碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買(mǎi)家服務(wù):
賣(mài)家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時(shí)間周一至周五
9:00-17:30

關(guān)注官方微信號(hào),
第一時(shí)間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫(kù)提出的寶貴意見(jiàn),您的參與是維庫(kù)提升服務(wù)的動(dòng)力!意見(jiàn)一經(jīng)采納,將有感恩紅包奉上哦!