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