Global Sources
電子工程專輯
 
電子工程專輯 > 介面技術
 
 
介面技術  

用於帶PCIe嵌入式系統的分散/收集DMA

上網時間: 2008年10月09日     打印版  Bookmark and Share  字型大小:  

關鍵字:PCIe  DMA  嵌入式系統 

即時處理方面獲得的好處

PCIe串列協議的一些最苛刻應用是那些要求即時或準即時的數據傳遞。在這類系統中,像語音和視訊處理,需要採用運算增強引擎來滿足數據區塊嚴格的處理時間要求。這些硬限制不僅增加了運算增強晶片內軟體工作的數據處理和減少延遲的負擔,同時也增加了串流處理硬體的負擔。一種提供較小數據封包延遲和較高系統吞吐率的方法,是在數據進入系統背板上傳輸之前,將數據區塊分成較小的數據封包。這樣,可以採用較小的接收緩衝器,並確保不會出現哪個數據引擎負載過重的問題。

採用較小數據封包時必須處理好以下幾個問題:

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

2. 較小的數據封包通常需要的處理時間也少,於是就增加了由數據引擎和PCIe介面發起的並發中斷次數;

3. 為了維持適當的負載均衡,較小的數據封包會增加本地處理器的負載;

4. 本地主處理器必須花費較多的時間來產生PCIe協議所用的數據轉移TLP。

上面幾點意味著本地主處理器將會損失更多原本用於其他功能的時脈週期。因此,較小的數據封包有助於減少實體介面的處理延遲,但代價是增加了終端系統的負載,這有可能降低整體系統性能。雖然PCIe TLP開銷處理延遲無法完全消除,但透過採用一個多通道分散/收集DMA引擎,基於靈活的仲裁機制,將數據區塊請求分成較小單元的可變大小數據封包,以及在DMA控制器自身中設計事務分割支援能力,可緩和每通道上與每個串流等級(TC)的相關延遲。此外,設計一個較小的TLP事務IP核心,透過產生/終接PCIe TLP,也有助於提高軟體效率。

對於PCIe,記憶體讀取(MRd)不是優先的,是作為一個分割事務執行的,而記憶體寫入(MWr)則是優先的。對於讀取,請求者先發送一個MRd TLP來請求completor演算法發送大量的數據(通常最大的讀取請求為512位元組),然後專門等待發送過來的數據。PCIe MWr TLP中包含將被寫入(通常最大為128位元組)的滿載荷。因此,MLRd TLP在發送方向上,就像MWr TLP那樣,也需要一段頻寬。透過向MW通道分配更多的資源,在發送(Tx)方向上管道將保持在滿狀態,而接收(Rx)管道則用響應MRd請求的數據TLP來填滿,見圖2。

圖2:具有DMA高層架構的PCIe。
圖2:具有DMA高層架構的PCIe。

軟體執行時間方面獲得的好處

一個功能豐富的分散/收集DMA控制器透過實現其他方案中需要複雜的演算法和/或大量中斷的功能,還能夠減少軟體開發的工作量和CPU的執行時間:

* 所有最先進的處理器和作業系統,包括即時性能最好的作業系統(RTOS),都採用MMU和虛擬記憶體。乃至核心都採用虛擬地址。這意味著DMA不能線形地存取系統記憶體中的緩衝器。當該緩衝器接近處理時,事實上它被散佈到PAGE_SIZE模組中的各個實體記憶體中。一個分散/收集DMA透過允許每個緩衝器描述符被映射到記憶體的實體頁中,來幫助處理器和軟體驅動器。在本地緩衝器描述符中沒有分散/收集列表,驅動器一次只能移動一頁的數據,然後才能重新啟動DMA進行下一頁的移動,這將很大幅影響系統性能。

* 通常,一個系統由多個執行執行緒組成。這些執行緒可能都要轉移數據。如果一個DMA由多個通道,並為每個通道都分配一個執行緒,就能透過這些更多的平行處理來改善系統性能。

* 如果CPU工作在little-endian模式並轉移TCP/IP數據封包到MAC,通常被迫利用軟體例程來與網路order(big-endian)交換位元組。一個能夠在硬體中以即時模式實現這種轉換的DMA,能夠降低軟體的複雜度並縮短系統設計時間。

* 為了提高效率,PCIe匯流排介面應該盡可能寬(64位元),不過許多週邊卻只具有窄頻寬(16或32位元)。如果用DMA進行匯流排重新適配,則對PCIe介面的性能沒有影響,在建構高頻寬轉移到PCIe介面邏輯之前,DMA可以對較小的週邊進行2重或4重存取。

* 它提供了一個適配層,將基於封包的TLP數據串流轉換成對線形記憶體的平行匯流排存取。這對於再使用已經具有記憶體介面(地址匯流排、數據匯流排、控制線)的IP模組的設計師來說將帶來巨大的收益。他們能夠非常容易地將IP模組配置到DMA服務的匯流排上。

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

本文小結

利用像分散/收集DMA控制器這類先進的載荷儲存數據引擎控制器,FPGA系統設計師能夠改進與基於PCIe系統設計相關軟硬體中普遍存在的吞吐率和延遲等缺陷。

作者:Cort Lansenderfer

Lattice公司


 First Page Previous Page 1 • 2



投票數:   加入我的最愛
我來評論 - 用於帶PCIe嵌入式系統的分散/收集DMA
評論:  
*  您還能輸入[0]個字
*驗證碼:
 
論壇熱門主題 熱門下載
 •   將邁入40歲的你...存款多少了  •  深入電容觸控技術就從這個問題開始
 •  我有一個數位電源的專利...  •  磷酸鋰鐵電池一問
 •   關於設備商公司的工程師(廠商)薪資前景  •  計算諧振轉換器的同步整流MOSFET功耗損失
 •   Touch sensor & MEMS controller  •  針對智慧電表PLC通訊應用的線路驅動器
 •   下週 深圳 llC 2012 關於PCB免費工具的研討會  •  邏輯閘的應用


EE人生人氣排行
 
返回頁首