當前位置:首頁 > EDA > 電子設計自動化
[導讀] 隨著通信協(xié)議的發(fā)展及多樣化,協(xié)議處理部分PE在硬件轉(zhuǎn)發(fā)實現(xiàn)方面,普遍采用現(xiàn)有的商用芯片NP(Network Processor,網(wǎng)絡處理器)來完成,流量管理部分需要根據(jù)系統(tǒng)的需要進行定制或采用商用芯片來完成。在很多情況下NP

 隨著通信協(xié)議的發(fā)展及多樣化,協(xié)議處理部分PE在硬件轉(zhuǎn)發(fā)實現(xiàn)方面,普遍采用現(xiàn)有的商用芯片NP(Network Processor,網(wǎng)絡處理器)來完成,流量管理部分需要根據(jù)系統(tǒng)的需要進行定制或采用商用芯片來完成。在很多情況下NP芯片、TM芯片、交換網(wǎng)芯片無法選用同一家廠商的芯片,這時定制TM成為了成本最低、系統(tǒng)最優(yōu)化的方案,一般采用FPGA來實現(xiàn),TM的常規(guī)結構如圖1所示。


圖1 TM的常規(guī)結構圖

  目前主流的TM接口均為SPI4-P2接口形式,SPI4-P2接口信號速率高,TCCS(Chan nel-to-channel skew,數(shù)據(jù)通道的抖動,包含時鐘的抖動)難以控制,在常規(guī)情況下很難做到很高的速率。SPI4-P2接口為達到高速率同時避免TCCS問題在很多情況下都對接收端提出了DPA(動態(tài)相位調(diào)整)的要求。對于SPI4-P2接口形式可直接采用Altera公司的IP Core實現(xiàn)。Altera的主流FPGA均實現(xiàn)了硬件DPA功能,以Stratix II器件為例,在使能DPA的情況下使用SPI4-P2 IP Core可實現(xiàn)16Gb/s的接口數(shù)據(jù)速率。

  SEG模塊為數(shù)據(jù)切分塊,根據(jù)交換網(wǎng)的數(shù)據(jù)結構要求,在上交換網(wǎng)的方向上負責把IP包或數(shù)據(jù)包切分為固定大小的數(shù)據(jù)塊,方便后期的存儲調(diào)度以及交換網(wǎng)的操作處理,SEG模塊可配合使用SPI4-P2 IP Core來實現(xiàn)。與SEG模塊對應的是RSM模塊,RSM模塊將從交換網(wǎng)下來的數(shù)據(jù)塊重新組合成完整的IP包或數(shù)據(jù)包。

  BM(Buffer Management)模塊為緩沖管理模塊,管理TM的緩沖單元,完成DRAM的存取操作。外部DRAM的控制部分可使用使用DDR SDRAM IP Core實現(xiàn)。

  QM模塊為隊列管理模塊,負責完成端口的數(shù)據(jù)隊列管理功能,接收BM模塊讀寫DRAM時的數(shù)據(jù)入隊、出隊請求,TM所能支持的數(shù)據(jù)流的數(shù)目、業(yè)務類型數(shù)目、端口的數(shù)目等性能指標在QM模塊處體現(xiàn)出來。

  Scheduler模塊為調(diào)度模塊,根據(jù)數(shù)據(jù)包類型及優(yōu)先級和端口分配的帶寬進行調(diào)度,TM流量整形、QOS等功能通過調(diào)度模塊實現(xiàn)。

  CELL_EDIT模塊完成輸出數(shù)據(jù)的封裝,把由DRAM中讀出的數(shù)據(jù)封裝后發(fā)送出去。

  在TM中需要基于數(shù)據(jù)服務策略對于不同服務等級的數(shù)據(jù)包進行不同的管理策略,同時要保證流媒體的數(shù)據(jù)包不能亂序,數(shù)據(jù)包有大有小,經(jīng)過SEG模塊所分割成的數(shù)據(jù)塊的數(shù)目也有多有少,這樣就必須有一套行之有效的數(shù)據(jù)結構基于鏈表的方法管理這些數(shù)據(jù)。QM模塊基于業(yè)務、數(shù)據(jù)流的方式管理隊列,包的管理便由BM模塊完成。

  BM模塊中基于包的數(shù)據(jù)結構方面由兩部分構成:BRAM和PRAM。BRAM為數(shù)據(jù)緩沖區(qū),對應片外的DRAM。BRAM負責存儲數(shù)據(jù)單元,相對于SEG模塊切分的數(shù)據(jù)單元,BRAM內(nèi)有相應大小的存儲單元BCELL與之對應,BCELL在BRAM內(nèi)以地址空間劃分,每個BCELL相同大小,BCELL為BRAM的最小存取單元。在實際系統(tǒng)中基于SEG模塊切分的數(shù)據(jù)單元大小,BCELL一般為64~512B。

  PRAM為指針緩沖區(qū),PRAM對應片外的SSRAM。PRAM內(nèi)部同樣以地址空間分為PCELL,PCELL與BCELL一一對應,每一個PCELL對應于一個BCELL,對應的PCELL與BCELL地址相同。

  PCELL的地址對應的代表相應單元的BCELL的地址,PCELL中的基本信息是下一跳指針。PRAM與BRAM關系如圖2所示。


圖2 PRAM與BRAM關系圖

  在PRAM中存在兩種鏈表形式,PQ List代表已經(jīng)存儲的數(shù)據(jù)包鏈表。為方便數(shù)據(jù)讀出,PQ List需要記錄數(shù)據(jù)包的第一個數(shù)據(jù)塊地址,即首指針Pq_Hptr,為方便新的數(shù)據(jù)寫入,PQ List需要記錄數(shù)據(jù)包的最后一個數(shù)據(jù)塊地址,即尾指針Pq_Tptr。PQ List同時需要記錄該鏈表的長度作為調(diào)度模塊進行調(diào)度的權值計算使用。

  Free List代表空閑的地址隊列。為方便地辨識、管理空閑的地址,避免地址沖突,在BM中將所有空閑的地址使用一個鏈表進行管理。這個鏈表就是空閑地址隊列。空閑地址隊列依據(jù)系統(tǒng)需求的不同有著不同的形式,一般空閑地址隊列的構成和PQ List相似,由空閑地址首指針Free_Hptr和空閑地址尾指針Free_Tptr構成。BM模塊的所有操作都圍繞著空閑的地址隊列Free List進行。

  基于BM模塊的數(shù)據(jù)流結構,BM模塊一般分為Write CONtrol模塊、Free List control模塊、Read Control模塊、PRAM Control模塊、BRAM Control模塊。BM的結構如圖3所示。


圖3 BM結構圖

  Write Control模塊從Free List模塊處得到空閑地址,向BRAM Control模塊提出寫請求,同時更新PRAM中的內(nèi)容。Free List control模塊負責管理空閑地址列表,提供Write Control模塊的寫B(tài)RAM地址及PRAM地址,回收經(jīng)Read Control模塊讀出數(shù)據(jù)塊后釋放的地址。Read Control模塊根據(jù)調(diào)度器的調(diào)度結果,通過BRAM Control模塊讀出需要發(fā)送的數(shù)據(jù)單元,同時將釋放的緩沖單元地址寫入空閑地址列表。PRAM Control模塊為外部SSRAM的控制模塊,可直接使用參考設計完成。BRAM Control模塊為外部DRAM控制模塊,一般分為Datapath與Controler兩個子模塊。Datapath模塊專門負責數(shù)據(jù)接口部分,完成DRAM接口的DQ、DQS處理以及相應的延時調(diào)整,Controler模塊負責完成DRAM的控制需求。

  在BM模塊中,BRAM的帶寬與PRAM的帶寬一般為TM的瓶頸。PRAM的帶寬主要受限于訪問的次數(shù),而BRAM的帶寬受限于接口帶寬。例如對于一個10G的TM,BRAM的有效帶寬必須保證20G,以接口利用率最差只能達到65%計算(考慮SEG模塊切分信元出現(xiàn)的N+1問題),需要保證接口帶寬達到30G。使用64位的DRAM接口,接口速率不能低于500MB/s,這樣對Datapath模塊的設計提出了更高的要求。在實際系統(tǒng)中,BRAM主要使用DDR SDRAM、DDR II SDRAM。

  當使用Stratix II FPGA,BRAM使用DDR II SDRAM時,測試表明DDR II SDRAM接口速率可達到800MB/s。在常規(guī)使用的情況下,DDR II SDRAM接口速率可保證達到667MB/s。對于一個64位的DRAM接口,接口速率可達到42.7GB/s,完全可以滿足一個10G的TM系統(tǒng)。

  BM模塊作為緩沖管理模塊,緩沖的基本單元為BCELL,基于對BCELL的管理,對于BM的操作都牽涉到空閑地址隊列的操作以及鏈表的操作。最基本的操作就是寫入操作和讀出操作。BM模塊的寫入操作由Write Control模塊發(fā)起。

  對于Write Control模塊,有數(shù)據(jù)單元需要寫入,首先向Free List模塊申請空閑地址,F(xiàn)ree List將首指針a給Write Control模塊,作為該數(shù)據(jù)塊的寫地址,同時讀出首指針a對應在PRAM中的內(nèi)容,得到下一跳地址b,將下一跳地址b作為新的空閑地址首指針。

  PQ List將尾指針n更新為新寫入的地址a,同時更新PRAM中n地址的內(nèi)容,將a作為下一跳添入n地址?;诠?jié)省操作周期,NULL的內(nèi)容保留原值,不再更新。這樣,一次BRAM的寫入操作需要一次PRAM的讀取操作及一次PRAM的寫入操作。

  QM模塊接收調(diào)度模塊的出隊信息,將出隊的PQ鏈表信息傳送給BM模塊進行讀取操作。


圖4 BM模塊的寫入操作


圖5 讀出操作的Free List堆棧結構

  BM模塊的讀取操作由Read Control模塊發(fā)起完成,當有數(shù)據(jù)單元需要讀出,相應的數(shù)據(jù)單元地址則需要回收進入空閑地址隊列Free List。對于不同的系統(tǒng)需求,空閑地址隊列Free List有不同的形式。比較簡單的操作是將Free List作為堆棧形式使用。

  Read Control模塊由PQ List的首地址0讀出相應的BRAM中的內(nèi)容,同時讀出PRAM中對應的下一跳地址1,更新地址1為新的首地址。Free List將首指針a更新為剛釋放的地址0,同時地址0中寫入下一跳指針a。這樣一次BRAM的讀出操作需要一次PRAM的讀取操作及一次PRAM的寫入操作。

  作為堆棧形式的空閑地址隊列在實際操作中會把一部分空閑地址隊列放入片內(nèi)緩沖中。這樣在讀BRAM釋放地址進入空閑地址隊列時可以節(jié)省PRAM的一次寫入操作,在寫B(tài)RAM時申請空閑地址時可以節(jié)省PRAM的一拍讀取操作。PRAM堆棧結構下內(nèi)置空閑地址隊列表如圖6所示。


圖6 PRAM堆棧結構下內(nèi)置空閑地址隊列表

  以圖5的讀出操作為例,當Read Control模塊由PQ List的首地址0讀出相應的BRAM中的內(nèi)容,同時讀出PRAM中對應的下一跳地址1,更新地址1為新的首地址。這時,地址0為已經(jīng)釋放的地址,按空閑隊列的操作要求,地址0需要進入空閑地址隊列中,在寫操作時再將地址0讀出提供給Write Control模塊用于寫B(tài)RAM。而基于圖6的結構,地址0在被釋放后不再進行更新PRAM中的空閑地址隊列Free List的操作,直接寫入片內(nèi)緩沖中,在Write Control模塊申請地址時由片內(nèi)緩沖中讀出提供給Write Control模塊 。僅在片內(nèi)Free List緩沖幾乎滿時,進行PRAM中的空閑地址隊列Free List的更新操作,或在片內(nèi)Free List緩沖空時進行PRAM中的空閑地址隊列Free List的讀取操作?;趫D6的結構,在一個讀寫周期內(nèi),可以節(jié)省兩次PRAM的操作,在最壞情況下也可節(jié)省一次PRAM的操作。但基于堆棧的結構,棧頂?shù)牡刂繁桓哳l率的反復的調(diào)用,棧底的地址很難被使用,DRAM的工作壽命會因此受到影響。為保證DRAM的工作壽命,在有些系統(tǒng)中將空閑地址隊列Free List做成鏈表形式,從而保證每個DRAM的存儲空間都能被平均的使用。讀出操作的Free Lis鏈表結構如圖7所示。


圖7 讀出操作的Free Lis鏈表結構

  Read Control模塊由PQ List的首地址0讀出相應的BRAM中的內(nèi)容,同時讀出PRAM中對應的下一跳地址1,更新地址1為新的首地址。

  Free List相對于堆棧模式增加尾指針d。Free List在回收地址時維持首指針a不變,將尾指針d更新為剛釋放的地址0,同時地址d中寫入下一跳指針0。這樣一次BRAM的讀出操作同樣需要一次PRAM的讀取操作及一次PRAM的寫入操作。對于鏈表方式的空閑地址隊列Free List,在每個讀、寫周期必須進行兩次PRAM的寫入操作及兩次PRAM的讀取操作,PRAM的效率不高。

  針對兩種空閑地址隊列的效率及對DRAM的影響,在很多系統(tǒng)中采用了折中的方法,即在PRAM中使用鏈表方法管理空閑地址隊列Free List,在片內(nèi)采用堆棧模式另建一個空閑地址隊列Free List,在這種情況下,每個讀、寫周期需要三次PRAM的操作。

  在實際系統(tǒng)中,BRAM的帶寬與PRAM的帶寬一般為TM的瓶頸,PRAM主要受限于訪問的次數(shù),而BRAM受限于接口帶寬。

  在10G的TM系統(tǒng)中,片內(nèi)數(shù)據(jù)總線的位寬定為128位,系統(tǒng)時鐘定為150MHz,BCELL的大小定為64B。在這種情況下,讀取操作和寫入操作均為4個時鐘周期。在滿足10G系統(tǒng)的需求下,讀取、寫入操作周期為7個時鐘周期。在前面曾計算過,在滿足10G TM系統(tǒng)的情況下,BRAM采用64位 DDR II SDRAM,接口時鐘使用250MHz即可滿足數(shù)據(jù)接口的需求。PRAM采用32位ZBT SRAM ,接口時鐘使用系統(tǒng)時鐘,每個PCELL為64位,每個讀、寫周期需要6個時鐘周期完成。在實際系統(tǒng)中采用Altera FPGA,BM的設計可以滿足10G的TM線速工作的需求。

  在40G核心網(wǎng)的TM系統(tǒng)中,片內(nèi)數(shù)據(jù)總線的位寬為256位,系統(tǒng)時鐘采用250MHz(在40GE的系統(tǒng)中可選用200MHz)。采用DDR II SDRAM,接口時鐘使用333MHz,則192位的BRAM可以滿足40G的TM需求。此時,BCELL可為96B、192B、384B,在這里選用1

  92B。當BCELL選用192B時,讀取操作和寫入操作同樣均為6個時鐘周期。在滿足40G系統(tǒng)的需求下,讀取、寫入操作周期為9個時鐘周期。PRAM采用48位QDR SRAM,接口時鐘使用150MHz,每個PCELL為96位,在每個讀、寫時鐘周期內(nèi),PRAM最多可被操作5次。在采用Altera FPGA的情況下,BRAM采用192位 DDR II SDRAM,PRAM采用48位QDR SRAM,BM的設計可以滿足40G的TM線速工作的需求。

 

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉