發布日期:2022-07-15 點擊率:32
產品經理
流量控制管理部門
IDT公司
How to free up NPU for statistics gathering in the era of guaranteed bandwidth
Content: With the explosive increase of the workload for statistics and calculation, the designers of network equipments will face the crisis for the capability of the calculation. The performance bottleneck will arise if use traditional structure based on outside memory to address the issue. In the network environment with high performance, the designers find that dedicate coprocessor optimized for statistics function will be a simple and convenient choice to meet the whole performance of the network.
在不遠的將來,隨著統計運算處理和存儲需求的爆炸性增長,網絡設備設計師將面臨計算危機。用依賴于外部存儲緩沖器的傳統架構來解決這個問題將最終導致性能瓶頸。在高性能的網絡環境里,許多設計師將發現使用專用的、為統計功能而優化的現成的協處理器將為滿足整體性能的需求提供一個簡單而方便的設計選擇。
隨著統計運算處理和存儲需求的爆炸性增長,網絡設備設計師將面臨計算危機。用依賴于外部存儲緩沖器的傳統架構來解決這個問題將最終導致性能瓶頸。在高性能的網絡環境里,許多設計師將發現使用專用的、為統計功能而優化的現成的協處理器將為滿足整體性能的需求提供一個簡單而方便的設計選擇。
過去幾年里,業務提供商推出了廣泛的差異化業務來創造新的收入來源,并滿足網絡應用日益增長的業務和用戶需求。這些業務的級別從VoIP到VPN,常常需要業務提供商能滿足比過去更為苛刻的性能要求。為了支持這些新的應用,業務提供商已經快速轉變到使用服務水平協議(SLA)來定義各方之間的合同關系,規定提供的流量類別和發送給每個流量類別的數據總數,并保證網絡的性能水平。
圖1:IDT統計引擎
這種趨勢對網絡設備設計有相當大的影響。為了支持越來越多的業務分類和驗證協議,業務提供商現在必須計算數據包,并擴展有關網絡性能和使用方面不斷增加的統計量。在IP網絡中,通常是對TCP、UDP、ICMP、IPSec、IPv4、IPv6及所有聯網電腦或蘋果計算機的以太網接口的跟蹤統計,只要在命令提示符中鍵入“netstat-s”就很容易顯示出來。盡管用來執行該類統計收集的電腦系統資源可以被忽略,但是匯聚了大量用戶的網絡設備的開銷就非常不同了(見表1)。
表1:簡化的統計收集情況
隨著線速率從OC-48()增加到10Gbps的匯聚速率和OC-192,超量開通(oversubscription)技術和網絡的使用在快速增加,而且任務的大小已經開始超出核心數據包處理器的能力范圍。
除了滿足流量和流量參數計算方面計數器數量的要求,還要考慮對總數據率和計數器更新率的流量類型的影響。使用相同的設定,計數器更新率可以計算(見表1)。
假設快速過渡到10Gbps數據率,伴隨著從簡單文件下載過渡到基于會話層的數據流,網絡設備開發商就需要一種新的方法來執行統計運算。長期以來,統計功能的大小和范圍限制了線卡核心數據包處理器處理數據包和維持網絡傳輸率的能力。
網絡設備設計師的挑戰就是找到一種新的、更為有效的方法,來跟蹤增量的數據,而不影響數據包驅動操作。通過從主要數據包處理器卸載這項主要任務,網絡設備設計師可釋放用來執行深層數據包分類的這些處理器周期,以支持更高級別的封包和更長關鍵字檢索的下一代網絡應用需求。
設計選擇
傳統來說,網絡設備設計師都是選擇用軟件來完成統計運算。這個任務常常由通用CPU或NPU核心數據包處理器來管理,并由外部SRAM支持。
只要數據率保持相對慢一些,該方法就可很好地執行。但是,隨著網絡線速率的提高,傳統的加載/儲存架構的局限性也顯著增加了。在這個拓撲結構中,核心數據包處理器必須從片外存儲器找取數據,執行包括增量、減量或添加一個計數器等適當的算術運算,然后將數據回寫到外部存儲器。這個復雜的過程占用了數據包處理器周期,并使CPU和外部存儲器之間的整個存儲器總線帶寬緊張。隨著線速率的增加,統計運算的數量和存儲器總線的使用可能超過上下文或數據處理器核心的負荷,導致處理器停止運行并降低線卡性能。
網絡設備設計師試圖通過從核心數據包處理器卸載所有或部分統計任務來解決這個問題。例如,一些設計師把統計功能轉移到FPGA的專用邏輯中,或將該功能集成到ASIC中。但是,這兩種解決方案都帶來了許多不利影響。FPGA不能滿足當今的線速率下高速統計運算所需的片上存儲密度。而且,設計師還必須用一個外部SRAM支持FPGA,同時也面臨與傳統尋址和SRAM配置相關的讀/改/寫延遲的問題。專用ASIC雖然可以提供高性能,并增加大量片上存儲能力,但是,由于ASIC平均NRE費用超過百萬美元,對專門完成統計計算的ASIC進行設計、驗證和確認的任務昂貴得令人難以接受。
網絡設備設計師所面臨的問題已經成為:如何以一種具有成本效益的方式解決這個問題?如何“解放”核心數據包處理器,不論是NPU、ASIC還是FPGA,使其專注于解決最初設計時打算解決的數據包分類功能的問題?
理想的情況是,該解決方案由現成的低成本協處理器組成,這種協處理器是特別為此功能而優化的,可消除上面提到的阻塞問題。作為一個解決方案,還要求具有高性能和行業標準的接口,以簡化線卡的設計和支持不斷增加的NPU陣列以及目前流行的專用數據包處理器。最后,任何解決方案都應具有高度的軟件可配置性,以滿足各種不同的應用需求。
會話邊界控制器(SBC)
一種可說明統計引擎是如何幫助解決統計運算卸載的方法就是觀察它在一個SBC里的實現方法。隨著VoIP部署的不斷增加,當數據穿過網絡和網絡段之間的邊界時,通過信令層、呼叫控制層和數據包層里的實時會話,SBC在這些網絡中扮演非常重要的角色。這些設備通常設置在可信任私有網絡(像私營公司LAN)與非信任公共網絡(像互聯網)之間,或者兩個業務提供商網絡之間。這些設備可提供對發送到網絡核心的VoIP信令信息的訪問,并通過控制到網絡的媒體數據包的存取,支持不同媒體流的差異化業務,例如計費和服務質量。用來保護網絡邊界的SBC在穿越網絡之間的防火墻方面扮演了至關重要的角色,而且有助于實施對數據包化語音進行合法偵聽這類的常規命令。
SBC開發者面對的主要挑戰之一就是簡單且有效地升級網絡來緩解快速攀升的運營商之間VoIP流量的巨大壓力。目前大部分的設備都設計支持1Gbps的線速率,但許多網絡都在升級,以支持10Gbps的以太網線速率。隨著線速率的提高,與計費、負載平衡、防火墻保護和其它業務需要的統計運算相關的處理開銷將呈指數增長。
一個SBC設計以高達5Gbps的速率、3微秒的延遲來過濾數據包,可支持多達32,000個同時會話。安裝在一個緊湊的1U板上的控制器可支持多種安全和地址保存特性,包括具有只為授權的媒體流而創建的防火墻針孔,以及經過雙重網絡地址和端口轉換而隱藏在3層和5層下的網絡拓撲結構的網絡存取控制。
在SLA性能方面,控制器可支持建立在存取或轉接鏈路上可用的實時帶寬上的會話許可控制。信號媒體的2層和3層服務質量數據包標記可優化網絡內的流量段和優先權,并可防止服務質量的盜取。SBC也為SLA報告、問題警告、隔離及會話許可控制提供每個會話的服務質量統計。
隨著線速率的增加,統計運算將從核心SBC數據包處理器中“竊取”更多的處理周期百分比。設計師可以解決這個問題,并通過把統計運算卸載到一個統計引擎協處理器的方式來延長目前設計的生命周期。
統計引擎接口是經過一個行業標準網絡處理器論壇(NPF)LA-1接口(兼容QDR-II)接入到核心數據包處理器的。這個基于標準的總線縮短了開發時間,并通過與各種NPU、FPGA和ASIC的無縫連接簡化了線卡設計。目前LA-1標準的規定速率為167MHz,但是接口統計引擎可支持超過200MHz的時鐘速率。
與支持標準QDR-II接口的其它芯片一樣,統計引擎也使用獨立的端口進行讀寫數據存取。總線是單向的,而且是以高總線速度為信號完整性而優化的,并可利用具有多讀寫地址的單DDR地址總線。讀取地址可在時鐘周期的前半期接收,寫入地址則在時鐘周期的后半期接收。當字節寫入信號與其在數據輸入總線上所控制的數據在時鐘周期的兩個半期同時接收時,讀寫使能在時鐘周期的前半期進行接收。
回聲時鐘輸出可作為數據的下行時鐘輸出。HSTL外部接口可支持高于SRAM使用的傳統TTL接口的速度。統計處理器可同時保持輸入和輸出端口的全帶寬。所有的數據都是具有突發級尋址能力的兩字脈沖格式。
不同的是,地址線不是用來支持平面地址映射的,而是用作統計引擎的控制輸入,把算術運算代碼(OPCODES)和指針轉移到位于統計引擎的計數器中。
作為從頭設計電路板的一種替代方法,線卡使用的硬件可以是現有的設計或基于模塊的、現成的板卡,如ATCA板卡(見圖2)。
圖2:線卡的硬件可以是現有設計或包括ATCA載波卡的基于模塊的現成板卡
統計引擎快速執行統計運算的大部分能力可歸因于其“即發即棄”(Fire and Forget)模式。該功能允許設備以一個命令在多達4個計數器上執行自動的讀-改-寫操作,并以QDR-II速度維持更新。該性能增強的關鍵在于它能同時傳輸32位的數據和地址,以及在ALU的36位總線上傳輸4行操作代碼的能力。
操作代碼可以包括一個增量、添加一個補償或指令集中的任何一個指令。例如,對典型的計費應用來說,一組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顯示了前面所討論的計數器更新例子在經過統計引擎卸載后所用的處理器周期(表示為線速率的函數)。
圖3:在接收50%的最小長度數據包及每個數據流有4個計數器的情況下,用于計數器更新的NPU利用百分比
在這個簡單的例子中,接收到的50%的數據包是64字節長度的最小以太網數據包,50%的數據包長度為1,518字節。NPU使用的計數器可同時跟蹤所有接收到的數據包和字節。在這個例子中,接收到的字節最初由NPU分成256字節一組,并由計數器更新運算SUM把這個值加到一個字節計數器的當前存儲值上。當NPU接收到一個完整的數據包時,就可以遞增相關數據包計數器的數值。
這種用于統計引擎中的技術可使QDR-II帶寬提高87%,使線卡數據包處理器周期縮短90%。在SBC應用中,專用統計引擎的增加可使數據通道處理器比其它架構的統計收集更為有效。效率的提高使得可用處理能力可被重新配置,從而提供額外的網絡特性(如更高的總吞吐量或更多的會話)。這些額外的收益,可有效地為更多用戶提供更豐富的業務,從而增加業務提供商的收入。