Global Sources
電子工程專輯
 
電子工程專輯 > 網路技術
 
 
網路技術  

可減少90%封包處理器週期的統計引擎

上網時間: 2006年06月19日     打印版  Bookmark and Share  字型大小:  

關鍵字:收集  統計  引擎  流量  記憶體 

隨著統計運算處理和記憶體需求的爆炸性成長,網路設備設計師將面臨運算危機。用依賴於外部記憶體緩衝器的傳統架構來解決這個問題將最終導致性能瓶頸。在高性能的網路環境裡,許多設計師將發現使用專用的、為統計功能而最佳化的現成的協處理器將為滿足整體性能的需求提供一個簡單而方便的設計選擇。

過去幾年裡,服務供應商推出了大量差異化服務創造新收入來源,並滿足網路應用日益成長的服務和用戶需求。這些服務等級包含了VoIP到VPN,服務供應商必須滿足較過去更嚴苛的性能要求。為了支援這些新應用,服務供應商已經快速轉變到使用服務水準協議(SLA)來定義各方合約關係,規定提供的流量類別和發送給每個流量類別的數據總數,並保證網路的性能水準。

這種趨勢對網路設備設計有相當大的影響。為了支援越來越多的服務分類和驗證協議,現在的服務供應商必須計算數據封包,並擴展在網路性能和應用方面不斷增加的統計量。在IP網路中,通常是對TCP、UDP、ICMP、IPSec、IPv4、IPv6及所有連網電腦或蘋果電腦乙太網路介面的追蹤統計,只要在命令提示符中鍵入‘netstat-s’就很容易顯示出來。儘管用來執行該類統計收集的電腦系統資源可以被忽略,但是匯聚了大量用戶的網路設備的開銷就非常不同了(表1)。隨著線速率從OC-48(2.5Gbps)增加到10Gbps的匯聚速率和OC-192,超量開通(oversubscription)技術和網路的使用在快速增加,而且任務的大小已經開始超出核心數據封包處理器的能力範圍。

表1:簡化的統計收集情況。

除了滿足流量和流量參數運算方面計數器數量的要求,還要考慮對總數據率和計數器更新率的流量類型的影響。使用相同的設定,計數器更新率是可以計算的。

假設快速過渡到10Gbps數據率,伴隨著從簡單文件下載過渡到基於會話層的數據串流,網路設備開發商需要一種新方法來執行計算。長期以來,統計功能的大小和範圍限制了線卡核心數據封包處理器處理數據封包和維持網路傳輸率的能力。網路設備設計師的挑戰就是找到一種新的、更為有效的方法,來追蹤增量的數據,而不影響數據封包驅動作業。透過從主要數據封包處理器卸載這項主要任務,網路設備設計師可釋放用來執行深層數據封包分類的這些處理器週期,以支援更高等級的封包和更長關鍵字檢索的下一代網路應用需求。

設計選擇

傳統來說,網路設備設計師都是選擇用軟體來完成統計運算。這個任務常常由通用CPU或NPU核心數據封包處理器來管理,並由外部SRAM支援。

圖1:IDT統計引擎

只要數據率保持相對慢一些,該方法就可很好地執行。但是,隨著網路線速率的提高,傳統的加載/儲存架構的侷限性也顯著增加了。在這個拓樸結構中,核心數據封包處理器必須從外部記憶體找取數據,執行包括增量、減量或添加一個計數器等適當的算術運算,然後將數據回寫到外部記憶體。這個複雜的過程佔用了數據封包處理器週期,並使CPU和外部記憶體之間的整個記憶體匯流排頻寬緊張。隨著線速率的增加,統計運算的數量和記憶體匯流排的使用可能超過關聯或數據處理器核心的負載,導致處理器停止執行並降低線卡性能。

網路設備設計師試圖透過從核心數據封包處理器卸載所有或部份統計任務來解決這個問題。例如,一些設計師把統計功能轉移到FPGA的專用邏輯中,或將該功能整合在ASIC中。但是,這兩種解決方案都帶來了許多不利影響。FPGA不能滿足目前的線速率下高速統計運算所需的晶片上記憶體密度。而且,設計師還必須用一個外部SRAM支援FPGA,同時也面臨與傳統尋址和SRAM配置相關的讀取/變更/寫入延遲的問題。專用ASIC雖然可以提供高性能,並增加大量晶片上記憶體容量,但是,由於ASIC平均NRE費用超過百萬美元,對專門完成統計運算的ASIC進行設計、驗證和確認的任務昂貴得令人難以接受。

網路設備設計師所面臨的問題已經成為:如何以一種具有成本效益的方式解決這個問題?如何‘釋放’核心數據封包處理器,不論是NPU、ASIC還是FPGA,使其專注於解決最初設計時想解決的數據封包分類功能問題?理想情況是該解決方案由現成的低成本協處理器組成,這種協處理器特別為此功能最佳化,可消除上面提到的阻塞問題。這種解決方案還需具有高性能和產業標準介面,以簡化線卡的設計和支援不斷增加的NPU陣列以及目前流行的專用數據封包處理器。最後,任何解決方案都應具有高度的軟體可配置性,以滿足各種不同的應用需求。

會話邊界控制器

一種可說明統計引擎是如何幫助解決統計運算卸載的方法就是觀察它在一個SBC裡的實現方法。隨著VoIP部署的不斷增加,當數據穿過網路和網路段之間的邊界時,透過訊號層、呼叫控制層和數據封包層裡的即時會話,SBC在這些網路中扮演非常重要的角色。這些設備通常設置在可信任私有網路(像私營公司LAN)與非信任公共網路(像網際網路)之間,或者兩個服務供應商網路之間。這些設備可提供對發送到網路核心之VoIP訊號資訊的存取,並透過控制到網路媒體數據封包的存取以支援不同媒體串流的差異化服務,如計費和服務品質。用來保護網路邊界的SBC在穿越網路之間的防火牆方面扮演了至關重要的角色,而且有助於實施對數據封包化語音進行合法偵聽這類的常規命令。

SBC開發者面對的主要挑戰之一就是簡單且有效地升級網路來緩解廠商間VoIP流量的巨大壓力。目前大部份的設備都支援1Gbps線速率,但許多網路都在升級,以支援10Gbps乙太網路線速率。隨著線速率的提高,與計費、負載平衡、防火牆保護和其它服務需要的統計運算相關開銷將呈指數成長。

一個SBC設計以高達5Gbps的速率、3微秒的延遲來過濾數據封包,可支援多達32,000個同時會話。安裝在一個緊密的1U板上的控制器可支援多種安全和地址保存特性,包括具有只為授權的媒體串流而製作的防火牆針孔,以及經過雙重網路地址和埠轉換而隱藏在3層和5層下的網路拓樸結構的網路存取控制。在SLA性能方面,控制器可支援設立在存取或轉接鏈路上可用的即時頻寬上的會話許可控制。訊號媒體的2層和3層服務品質數據封包標記可最佳化網路內的流量段和優先權,並可防止服務品質的盜取。SBC也為SLA報告、問題警告、隔離及會話許可控制提供每個會話的服務品質統計。

隨著線速率的增加,統計運算將從核心SBC數據封包處理器中‘竊取’更多的處理週期百分比。設計師可以解決這個問題,並透過把統計運算卸載到一個統計引擎協處理器的方式來延長目前設計生命週期。

圖2:線卡的硬體可以是現有設計或包括ATCA載波卡的基於模組的現成板卡。

統計引擎介面是經過一個NPF(產業標準網路處理器論壇)LA-1介面(相容QDR-II)接取到核心數據封包處理器的。這個基於標準的匯流排縮短了開發時間,並透過與各種NPU、FPGA和ASIC的無縫連接簡化了線卡設計。目前LA-1標準的規定速率為167MHz,但是介面統計引擎可支援超過200MHz的時脈速率。

與支援標準QDR-II介面的其它晶片一樣,統計引擎也使用獨立的埠進行讀寫數據存取。匯流排是單向的,而且是以高匯流排速度為訊號完整性而最佳化的,並可利用具有多讀寫地址的單DDR地址匯流排。讀取地址可在時脈週期的前半期接收,寫入地址則在時脈週期的後半期接收。當位元組寫入訊號與其在數據輸入匯流排上所控制的數據在時脈週期的兩個半期同時接收時,讀寫使能在時脈週期的前半期進行接收。

回聲時脈輸出可作為數據的下行時脈輸出。HSTL外部介面可支援高於SRAM使用的傳統TTL介面的速度。統計處理器可同時保持輸入和輸出埠的全頻寬。所有的數據都是具有突發級尋址能力的兩字脈衝格式。

不同的是,地址線不是用來支援平面地址映射的,而是作為統計引擎的控制輸入,把算術運算程式碼(OPCODES)和指針完整轉移到統計引擎的計數器中。

作為從頭設計電路板的一種替代方法,線卡使用的硬體可以是現有的設計或基於模組的、現成的板卡,如ATCA板卡(見圖2)。

統計引擎快速執行統計運算的大部份能力可歸因於其‘即發即丟’(Fire and Forget)模式。該功能允許設備以一個命令在多達4個計數器上執行自動的讀取-變更-寫入作業,並以QDR-II速度維持更新。該性能增強的關鍵在於它能同時傳輸32位元的數據和地址,以及在ALU的36位元匯流排上傳輸4行作業程式碼的能力。

圖3:在接收50%的最小長度數據封包及每個數據串流有4個計數器的情況下,用於計數器更新的NPU利用百分比。

作業程式碼可以包括一個增量、添加一個補償或指令集中的任何一個指令。例如,對典型的計費應用來說,一組4位元OPCODES可能包括:

1. Set Register(設置暫存器);

2. INC/SUM(運算元:+1/32位元輸入);

3. SUM/SUM(運算元:16位元輸入/16位元輸入);

4. SUM/SUM缺省(運算元:32位元輸入/32位元缺省);

5. DEC/SUB(運算元:-1/32位元輸入);

6. SUB/SUB缺省(運算元:32位元輸入/32位元缺省);

7. NOP/SUB(運算元:0/32位元輸入);

8. SUB/NOP(運算元:32位元輸入/0)。

當設備接收一個伴隨有統計使能(STEN)位元啟動和適當的統計OPCODE以及數據的寫入命令時,統計運算開始執行。對於一個通用數據封包處理器/SRAM配置,必須先從SRAM讀取數據,完成一次運算後,再用一個傳統的讀取-變更-寫入週期將數據回寫到SRAM中,這就需要4次QDR-II作業。而‘即發即丟’功能則允許處理器向統計引擎發送一個命令,僅在一個週期裡就能對全部4個計數器完成更新。

透過把這些所有的作業壓縮為一個命令,‘即發即丟’模式可釋放QDR-II頻寬並顯著改善SBC的性能。圖3顯示了前面所討論的計數器更新範例在經過統計引擎卸載後所用的處理器週期(表示為線速率的函數)。在這個簡單的例子中,接收到的50%數據封包是64位元組長度的最小乙太網路數據封包,50%的數據封包長度為1,518位元組。NPU使用的計數器可同時追蹤所有接收到的數據封包和位元組。在這個例子中,接收到的位元組最初由NPU分成每組256位元組,並由計數器更新運算SUM,並把這個值加到位元組計數器的儲存值上。當NPU接收到一個完整的數據封包時,就可以遞增相關數據封包計數器的數值。

這種用於統計引擎中的技術可使QDR-II頻寬提高87%,使線卡數據封包處理器週期縮短90%。在SBC應用中,專用統計引擎的增加可使數據通道處理器比其它架構的統計收集更為有效。效率的提高使得可用處理能力可被重新配置,因而提供額外的網路特性,如更高的總吞吐量,或者更多的會話。這些額外的收益,可有效地為更多用戶提供更豐富的服務,因而增加服務供應商的收入。

作者:Jeremy Bicknell

流量控制管理部門產品經理

IDT公司




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


EE人生人氣排行
 
返回頁首