網絡處理是指對在通信和網絡設備中傳送的數(shù)據包進行的處理,網絡處理不僅出現(xiàn)在網絡核心,還出現(xiàn)在MAN/LAN(圖1)中。
網絡處理可通過幾類半導體器件實現(xiàn),因而網絡OEM能根據特定需求選擇適當?shù)钠骷M合。那么究竟由誰決定需求呢?這些需求是由通信運營商和互聯(lián)網業(yè)務提供商(ISP)決定的。業(yè)務提供商要求網絡設備的架構和增值功能不僅能為客戶提供不同類型的業(yè)務,而且還能增加收入。業(yè)務提供商與商業(yè)用戶簽署了數(shù)百萬美元的業(yè)務品質協(xié)議(SLA),以確保特定的業(yè)務類型和品質。因此業(yè)務提供商在開發(fā)構成網絡設備的半導體器件中,為獲得適當?shù)奶匦院挽`活性,需要投入大量資金。
揭開網絡處理的面紗
網絡處理最基本的概念是建立在預定義分類和規(guī)則上的網絡數(shù)據包智能分組處理分析、流程和實現(xiàn)準則。需要注意的是,分類和規(guī)則必須可定制,以滿足不同業(yè)務提供商的需求。本文將重點討論線路卡。每個線路卡的入口和出口信道上均帶有數(shù)據通路和控制通路,數(shù)據通路負責以線速率處理和傳送分組數(shù)據而不產生較大的延遲,而控制通路則負責提供處理智能、強化規(guī)則、處理意外情況并監(jiān)控統(tǒng)計數(shù)字。
圖2顯示了線路卡網絡處理的核心功能,其中虛線包圍的3個模塊給出了主要的網絡處理功能。盡管網絡處理限制在線路卡以內,但也足以影響整個系統(tǒng)的架構。例如,某些路由器專用于一組獨立的線路卡,以獲取專項功能(如安全處理)。根據網絡處理所需的設備,系統(tǒng)可以(或不必)需要這些線路卡。
選擇適當?shù)陌雽w器件
網絡處理可采用多種半導體解決方案,但可廣義地歸為ASIC和可編程器件兩類。那么這兩類器件是如何實現(xiàn)網絡系統(tǒng)設計的呢?應用于網絡處理的ASIC和可編程器件的主要原理與任何其他應用并無區(qū)別。從高端角度看,ASIC可為固定功能提供較高性能,但靈活度很有限。雖然ASIC的流片費用(NRE)較高并且產品的上市時間較長,但其高產量還是頗具成本效益。
另一方面,可編程解決方案可提供較高的系統(tǒng)速率,包括復雜功能(特殊和異常處理)、靈活性和最短的產品上市時間??删幊唐骷o需流片費用,價格比相應的ASIC略為昂貴。因為可編程解決方案靈活度較高并可升級,因而具有比ASIC更長的產品壽命,由此降低了整體系統(tǒng)的成本。
盡管上面對ASIC和可編程解決方案進行了區(qū)分,但目前還沒有能綜合兩種半導體優(yōu)勢并滿足各種需求的完美解決方案。器件的最終選擇取決于特定需求,首先考慮應用于網絡處理的可編程解決方案。 [!--empirenews.page--]
1.可編程解決方案
可編程解決方案主要有兩類:網絡處理器(NPU)和FPGA,兩者都是可編程的。NPU可提供以處理器為中心(即以軟件為中心)的可編程特性,而FPGA則提供以硬件為中心的可編程特性。設計人員很快就能認識到以軟件為中心的方法的性能將低于以硬件為中心的方法。理解網絡處理和網絡處理器之間的差異相當重要:網絡處理是一種功能,而網絡處理器則是一類可編程器件。
2.實現(xiàn)網絡處理器
網絡處理器最初被用于設計網絡設備中的現(xiàn)成器件,這些器件在各方面提供靈活性和擴展性的同時,還提供了充分的性能。幾家大型和小型半導體公司參與了競爭,并推出帶有極高靈活性和超短產品上市時間的線速網絡處理器。大多數(shù)NPU均帶有多種編程特性經過優(yōu)化的嵌入式RISCCPU以及適用于通用分組處理功能的類ASIC硬件電路(圖3)。每個RISC引擎經過優(yōu)化以執(zhí)行特定任務。該思想有利于在硬件電路中處理常規(guī)層2/層3功能,而RISC引擎則處理復雜和特殊情形。當然,所需的任何定制均可委托給RISC引擎。NPU通常采用匯編/微代碼,有時也采用定制的C語言實現(xiàn)可編程特性。
3.FPGA
FPGA是對數(shù)據進行高速并行處理的理想器件,具有極強的靈活性和擴展性。FPGA總是通過增添簡單實用的網絡設備,解決由NPU引發(fā)的問題并緊跟市場。例如,Virtex-IIProFPGA包含高性能的可編程架構、嵌入式PowerPC處理器和3.125Gbps收發(fā)器,從而成為網絡處理的理想選擇。FPGA是OEM跨接層2/層3不同傳輸流并實現(xiàn)高速功能(如安全協(xié)處理器)的最佳選擇。通過增強網絡特性,F(xiàn)PGA可提供高性能的數(shù)據和控制處理功能。但與NPU不同,F(xiàn)PGA不帶有內置的網絡處理功能,因而必須通過編程以進行網絡處理。對于NPU,OEM必須開發(fā)匯編代碼(或某種層次的C代碼)以實現(xiàn)網絡處理功能;而對于FPGA,OEM必須采用硬件描述語言(HDL)、具有知識產權的內核和C語言實現(xiàn)FPGA中的數(shù)據通路和控制通路。
可編程解決方案如何解決網絡處理問題?
首先考慮那些能從可編程解決方案(NPU或FPGA)中獲得巨大利益的特定網絡處理功能。
1.深度分組處理
盡管層2和層3處理在ASIC中很容易實現(xiàn),但為了在類似的傳輸流中區(qū)分不同的優(yōu)先級,還需要在層4和層5中進行更深層的分組處理。可編程解決方案可更深入地處理這些分組。與需要多個NPU進行深層分組處理的NPU解決方案不同,F(xiàn)PGA解決方案只需一塊FPGA,這是因為FPGA中的硬件并行處理完全可以同NPU中基于RISC的處理方法相媲美。多個NPU不僅為硬件和軟件分區(qū)帶來新挑戰(zhàn)并增加了軟件的復雜度,而且還增大了系統(tǒng)延遲和功耗。一般而言,如果采用NPU或FPGA進行更深層處理,則完全不需要ASIC。
2.軟件可升級性
采用集中處理器設計的主要優(yōu)勢在于軟件??刂茖榆浖侵T多OEM的關鍵增值業(yè)務,并能使他們與競爭對手的業(yè)務彼此區(qū)分。因此,代碼復用功能對于產品的上市時間以及支持原有產品至關重要。C代碼的開發(fā)相對較快并能輕松地升級/接口到新處理器。DSP設計人員和架構設計人員對此有深刻的理解,并當代碼復用比性能更重要時采用DSP處理器。 [!--empirenews.page--]
然而NPU不具備代碼復用,因為NPU的軟件大多是不可移植的,即這些軟件是專有的匯編代碼或因定制程度過高而喪失移植性的C代碼。匯編代碼是處理器專用開發(fā)工具,通常開發(fā)周期較長,從而加大了設計商的開發(fā)風險。事實上,一家公司為NPU設計的代碼甚至難以移植到該公司后續(xù)開發(fā)的NPU中。NPU業(yè)界清醒地認識到這一點,因而正致力于行業(yè)的標準化,以使設計人員重拾信心。另一方面,雖然FPGA具有較強的軟件升級功能,但在利用HDL或C代碼開發(fā)數(shù)據層處理以及利用C代碼開發(fā)控制層處理時,仍將面對諸多難題。采用專用的匯編代碼修改特性比采用業(yè)界標準的HDL和C代碼風險更高,也更困難。某些FPGA制造商提供了基于平臺和工具集方法的工具,以實現(xiàn)軟件在各代FPGA中的無縫移植。
3.硬件可升級性
硬件的可升級特性確保了較長的產品壽命,因而成為可編程解決方案的一個關鍵特性。此外,可升級性還有助于網絡設備跟蹤標準和協(xié)議的持續(xù)變化。否則,該設備將很快落伍。NPU只在處理器中提供可編程特性,其類似ASIC的定制硬件并不能直接進行編程。因此,NPU在硬件升級上的劣勢與ASIC非常相似。FPGA顧名思義就是現(xiàn)場可編程,因而能輕松升級,以很好地滿足需求變化。
4.復雜分類查詢
像VPN(虛擬專用網)和IPSec這樣的業(yè)務需要復雜查詢功能。查詢和分類可通過復雜的迭代算法實現(xiàn),但迭代算法抑制了NPU中RISC引擎的效能,進而影響系統(tǒng)的整體性能。為此,NPU可采用兩種策略:(a)增加NPU的時鐘頻率以獲取凈空范圍。(b)增加多個NPU解決問題。過高的時鐘頻率將引發(fā)信號完整性問題并增加主板的復雜度,而多個NPU則將引發(fā)類似上述深層分組處理的問題。NPU的查詢需要成本較高的內存子系統(tǒng),而FPGA能在邏輯電路的狀態(tài)機內實現(xiàn)查詢,但這也并非總是有效的?;蛟S查詢協(xié)處理器和SDRAM正是不可或缺的。
5.記賬
記賬方法將隨運營商拓展的新業(yè)務而發(fā)生改變。這些記賬方法因提供商而異,因而不能以固定功能加以實現(xiàn)。可編程解決方案可通過保持和解釋數(shù)據統(tǒng)計而迅速提供記賬架構,其目標是使支持外設的數(shù)目達到最小。NPU和FPGA都提供了必要的記賬靈活性。
6.更少的器件
假定一個設備(如路由器)帶有多個線路卡,那么線路卡上較少的器件就能帶來累積效益。器件數(shù)目和期望性能之間總存在一個平衡點,因而將所有器件堆積在一個設備中將破壞整體性能。例如,如果能在主分組處理器件上實現(xiàn)安全處理功能,不僅能減少器件數(shù)目,還可從增加的性能中受益。NPU最初承諾能以較少的器件執(zhí)行所有功能,但最終沒能實現(xiàn)?;诰W絡處理的解決方案需要多個專用協(xié)處理器以達到性能要求。令FPGA受限的并非性能,而是規(guī)格效率。某些需要查詢和密集控制的應用可通過采用協(xié)處理器/嵌入式處理器來更好地實現(xiàn),因此FPGA邏輯電路也適用于高速數(shù)據處理。
7.產品上市時間
產品上市時間是推動網絡處理可編程解決方案發(fā)展的主要動力之一。NPU利用以處理器為中心的模式,保證了較短的產品上市時間。然而,匯編代碼開發(fā)、多個NPU的系統(tǒng)分區(qū)、協(xié)處理器的數(shù)據相關性延緩了產品上市時間。但必須指出的是,與ASIC相比,這樣的產品上市時間已經大大縮短。FPGA不僅可以通過縮短開發(fā)周期,還能通過縮短調試周期以加快產品上市時間。兩者之間最大的區(qū)別在于軟件:NPU采用匯編代碼,而FPGA則采用HDL。
NPU需要對諸多功能進行維護,F(xiàn)PGA則是任何可編程設計的最佳選擇方案。利用網絡處理解決該問題無需借助多個協(xié)處理器,因為這并不是當初引入NPU的初衷。適當?shù)慕鉀Q方案是有選擇地合理利用FPGA、NPU及一至兩個協(xié)處理器。
FPGA實現(xiàn)的網絡處理實例
本文提出了一種基于新型FPGA的解決方案:Virtex-IIProFPGA實現(xiàn)了數(shù)據通路和控制功能,而協(xié)處理器則負責數(shù)據包分類和查詢。下面以2.5Gbps(OC-48)線路卡為例進行說明。
[!--empirenews.page--]
1.利用VPN和管理規(guī)則設計2.5Gbps線路卡
2.5Gbps(OC-48)線速率正日益受到廣泛關注,因為OC-48能有效地對帶寬和成本進行折衷。采用IPSec的加密VPN正是業(yè)務提供商探尋的高優(yōu)先級業(yè)務。路由器制造商在下一代線路卡開發(fā)中,一直希望應用系統(tǒng)能具備以下大部分或全部功能(圖4):VPN支持多個局部路由表和IPSec加密/解密;支持基于SONET的分組傳輸?shù)娜p工OC-48;支持基于MPLS的VPN;成千上萬個VPN組,多項管理規(guī)則/VPN組;數(shù)百萬個詞頭;支持DiffSERV;采用VPN組的QoS級別分類。ToS域和TCP/UDP源和目的端口數(shù)目。每個VPN組中均可建立數(shù)千條QoS準則。
2.方案選擇
設計選擇通常與所需的規(guī)則數(shù)目、性能(每秒處理的分組數(shù)據包/信元)、器件數(shù)目和功耗相關。本文重點關注分類和流量管理。為實現(xiàn)上述功能,線路卡通常采用的器件包括:
(1)網絡處理器和協(xié)處理器分類占用的計算量最大。NPU需要許多專用存儲器(如外置ZBTSRAM),因而功耗很大。IPSec通常用于VPN中的網絡安全功能,因而既需要支持控制路徑,也需要支持數(shù)據路徑。由于NP耗盡了所有能量,因而需要能同時進行IPSec安全處理和流量管理的協(xié)處理器。
(2)FPGA和備用協(xié)處理器
FPGA確保了線速率IPSec的安全性,并提供比NPU更快的分類和查詢功能。對IPSec而言,Virtex-IIPro在嵌入式PowerPC處理器軟件中實現(xiàn)了控制路徑/密碼交換,還在FPGA邏輯電路中以Gbps級的線速率實現(xiàn)了數(shù)據路徑AES/3-DES加密/解密。如果QoS規(guī)則需要經常改變,外置VLIW協(xié)處理器就能實現(xiàn)分類(FSM密集)功能。嵌入式PowerPC處理器可用于執(zhí)行全部的控制和管理層功能。
(3)存儲器子系統(tǒng)
CAM查詢子系統(tǒng)可提供很高的查詢速率,并支持很大的表項結構。但CAM的功耗(每器件消耗20W)很大,而且為了支持較大的表項,通常需要大量的CAM和SRAM器件。昂貴的ZBTSRAM可提供較高的速率,并在層2和層3數(shù)據包分類中支持NPU,但也需要消耗較大的功率。
SDRAM是最經濟的器件,因而應用于大多數(shù)系統(tǒng)中。低功率的SDRAM通過采用管道和多線程架構實現(xiàn)了較高的性能以及較大的表項。但如果設計業(yè)務只是為了通過提高處理器速率而補償性能的話,那么就明顯不適合了。FPGA、VLIW/RISC處理器和SDRAM的結合為帶有VPN和IPSec的2.5Gbps線路卡提供了最佳解決方案。
目前,網絡處理內核和分組處理參考設計均適合于采用FPGA平臺設計。此外,Virtex-IIProFPGA還支持所有的通用并行(單端和差動)和串行系統(tǒng)接口標準,以使其輕松地與任何協(xié)議進行接口并與線路卡上的任何器件相連。