Global Sources
電子工程專輯
 
電子工程專輯 > EDA/IP
 
 
EDA/IP  

基於FPGA的網路處理技術的性能和靈活性分析

上網時間: 2004年02月15日     打印版  Bookmark and Share  字型大小:  

關鍵字:FPGA  Network Processing  網路處理  Xilinx  MAN/LAN 

網路處理是指對在通訊和網路設備中傳送的數據包進行的處理,網路處理不僅出現在網路核心,還出現在MAN/LAN(圖1)中。網路處理可通過幾類半導體元件實現,因而網路OEM能根據特定需求選擇適當的元件組合。那麼究竟由誰決定需求呢?這些需求是由通訊營運商和網際網路業務提供商(ISP)決定的。業務提供商要求網路設備的架構和增值功能不僅能為客戶提供不同類型的業務,而且還能增加收入。業務提供商與商業用戶簽署了數百萬美元的服務等級協議(SLA),以確保特定的業務類型和品質。因此業務提供商在開發構成網路設備的半導體元件中,為獲得適當的特性和靈活性,需要投入大量資金。

揭開網路處理的面紗

網路處理最基本的概念是建立在預定義分類和規則上的網路數據包智慧分組處理分析、流程和實現準則。需要注意的是,分類和規則必須可定製,以滿足不同業務提供商的需求。本文將重點討論線路卡。每個線路卡的入口和出口通道上均帶有數據通路和控制通路,數據通路負責以線速率處理和傳送分組數據而不產生較大的延遲,而控制通路則負責提供處理智慧、強化規則、處理意外情況並監控統計數位。

圖2顯示了線路卡網路處理的核心功能,其中虛線包圍的3個模組提供了主要的網路處理功能。儘管網路處理限制在線路卡以內,但也足以影響整個系統的架構。例如,某些路由器專用於一組獨立的線路卡,以獲取專項功能(如安全處理)。根據網路處理所需的設備,系統可以(或不必)需要這些線路卡。

選擇適當的半導體元件

網路處理可採用多種半導體解決方案,但可廣義地歸為ASIC和可程式元件兩類。那麼這兩類元件是如何實現網路系統設計的呢?應用於網路處理的ASIC和可程式元件的主要原理與任何其他應用並無區別。從高階角度看,ASIC可為固定功能提供較高性能,但靈活度很有限。雖然ASIC的投片費用(NRE)較高並且產品的上市時間較長,但其高產量還是頗具成本效益。

另一方面,可程式解決方案可提供較高的系統速率,包括複雜功能(特殊和異常處理)、靈活性和最短的產品上市時間。可程式元件無需投片費用,價格比相應的ASIC略為昂貴。因為可程式解決方案靈活度較高並可升級,因而具有比ASIC更長的產品壽命,由此降低了整體系統的成本。

儘管上面對ASIC和可程式解決方案進行了區分,但目前還沒有能綜合兩種半導體優勢並滿足各種需求的完美解決方案。元件的最終選擇取決於特定需求,首先考慮應用於網路處理的可程式解決方案。

1. 可程式解決方案

可程式解決方案主要有兩類:網路處理器(NPU)和FPGA,兩者都是可程式的。NPU可提供以處理器為中心(即以軟體為中心)的可程式特性,而FPGA則提供以硬體為中心的可程式特性。設計人員很快就能認識到以軟體為中心的方法的性能將低於以硬體為中心的方法。理解網路處理和網路處理器之間的差異相當重要:網路處理是一種功能,而網路處理器則是一類可程式元件。

2. 實現網路處理器

網路處理器最初被用於設計網路設備中的現成元件,這些元件在各方面提供靈活性和擴展性的同時,還提供了充分的性能。幾家大型和小型半導體公司參與了競爭,並推出帶有極高靈活性和超短產品上市時間的線速網路處理器。大多數NPU均帶有多種編程特性經過最佳化的嵌入式RISC CPU以及適用於通用分組處理功能的類ASIC硬體電路(圖3)。每個RISC引擎經過最佳化以執行特定任務。該思想有利於在硬體電路中處理常規層2/層3功能,而RISC引擎則處理複雜和特殊情形。當然,所需的任何定製均可委托給RISC引擎。NPU通常採用匯編╱微代碼,有時也採用定製的C語言實現可程式特性。

3. FPGA

FPGA是對數據進行高速平行處理的理想元件,具有極強的靈活性和擴展性。FPGA總是通過增添簡單實用的網路設備,解決由NPU引發的問題並緊跟市場。例如,Virtex-II Pro FPGA包含高性能的可程式架構、嵌入式PowerPC處理器和3.125Gbps收發器,從而成為網路處理的理想選擇。FPGA是OEM跨接層2/層3不同傳輸流並實現高速功能(如安全協處理器)的最佳選擇。通過增強網路特性,FPGA可提供高性能的數據和控制處理功能。但與NPU不同,FPGA不帶有內建的網路處理功能,因而必須通過編程以進行網路處理。對於NPU,OEM必須開發匯編代碼(或某種層次的C代碼)以實現網路處理功能;而對於FPGA,OEM必須採用硬體描述語言(HDL)、具有知識產權的內核和C語言實現FPGA中的數據通路和控制通路。

目前,網路處理內核和分組處理參考設計均適合於採用FPGA平台設計。此外,Virtex-II Pro FPGA還支援所有的通用平行(單端和差動)和串列系統介面標準,以使其輕鬆地與任何協議進行介面並與線路卡上的任何元件相連。

可程式解決方案如何解決網路處理問題?

首先考慮那些能從可程式解決方案(NPU或FPGA)中獲得巨大利益的特定網路處理功能。

1. 深度分組處理

儘管層2和層3處理在ASIC中很容易實現,但為了在類似的傳輸流中區分不同的優先級,還需要在層4和層5中進行更深層的分組處理。可程式解決方案可更深入地處理這些分組。與需要多個NPU進行深層分組處理的NPU解決方案不同,FPGA解決方案只需一塊FPGA,這是因為FPGA中的硬體平行處理完全可以同NPU中基於RISC的處理方法相媲美。多個NPU不僅為硬體和軟體分區帶來新挑戰並增加了軟體的複雜度,而且還增大了系統延遲和功耗。一般而言,如果採用NPU或FPGA進行更深層處理,則完全不需要ASIC。2. 軟體可升級性

採用集中處理器設計的主要優勢在於軟體。控制層軟體是諸多OEM的關鍵增值業務,並能使他們與競爭對手的業務彼此區分。因此,代碼再使用功能對於產品的上市時間以及支援原有產品至關重要。C代碼的開發相對較快並能輕鬆地升級╱介面到新處理器。DSP設計人員和架構設計人員對此有深刻的理解,並當代碼再使用比性能更重要時採用DSP處理器。

然而NPU不具備代碼再使用,因為NPU的軟體大多是不可移植的,即這些軟體是專有的匯編代碼或因定製程度過高而喪失移植性的C代碼。匯編代碼是處理器專用開發工具,通常開發周期較長,從而加大了設計商的開發風險。事實上,一家公司為NPU設計的代碼甚至難以移植到該公司後續開發的NPU中。NPU業界清醒地認識到這一點,因而正致力於產業的標準化,以使設計人員重拾信心。另一方面,雖然FPGA具有較強的軟體升級功能,但在利用HDL或C代碼開發數據層處理以及利用C代碼開發控制層處理時,仍將面對諸多難題。採用專用的匯編代碼修改特性比採用業界標準的HDL和C代碼風險更高,也更困難。某些FPGA製造商提供了基於平台和工具集方法的工具,以實現軟體在各代FPGA中的無縫移植。

3. 硬體可升級性

硬體的可升級特性確保了較長的產品壽命,因而成為可程式解決方案的一個關鍵特性。此外,可升級性還有助於網路設備追蹤標準和協議的持續變化。否則,該設備將很快落伍。NPU只在處理器中提供可程式特性,其類似ASIC的定製硬體並不能直接進行編程。因此,NPU在硬體升級上的劣勢與ASIC非常相似。FPGA顧名思義就是現場可程式,因而能輕鬆升級,以很好地滿足需求變化。

4. 複雜分類查詢

像VPN(虛擬專用網)和IPSec這樣的業務需要複雜查詢功能。查詢和分類可通過複雜的迴圈演算法實現,但迴圈演算法抑制了NPU中RISC引擎的效能,進而影響系統的整體性能。為此,NPU可採用兩種策略:(a)增加NPU的時脈頻率以獲取淨空範圍。(b)增加多個NPU解決問題。過高的時脈頻率將引發信號完整性問題並增加主板的複雜度,而多個NPU則將引發類似上述深層分組處理的問題。NPU的查詢需要成本較高的記憶體子系統,而FPGA能在邏輯電路的狀態機內實現查詢,但這也並非總是有效的。或許查詢協處理器和SDRAM正是不可或缺的。

5. 記賬

記賬方法將隨營運商拓展的新業務而產生改變。這些記賬方法因提供商而異,因而不能以固定功能加以實現。可程式解決方案可通過保持和解釋數據統計而迅速提供記賬架構,其目標是使支援外設的數目達到最小。NPU和FPGA都提供了必要的記賬靈活性。

6. 更少的元件

假定一個設備(如路由器)帶有多個線路卡,那麼線路卡上較少的元件就能帶來累積效益。元件數目和期望性能之間總存在一個平衡點,因而將所有元件堆積在一個設備中將破壞整體性能。例如,如果能在主分組處理元件上實現安全處理功能,不僅能減少元件數目,還可從增加的性能中受益。NPU最初承諾能以較少的元件執行所有功能,但最終沒能實現。基於網路處理的解決方案需要多個專用協處理器以達到性能要求。令FPGA受限的並非性能,而是規格效率。某些需要查詢和密集控制的應用可通過採用協處理器╱嵌入式處理器來更好地實現,因此FPGA邏輯電路也適用於高速數據處理。

7. 產品上市時間

產品上市時間是推動網路處理可程式解決方案發展的主要動力之一。NPU利用以處理器為中心的模式,保証了較短的產品上市時間。然而,匯編代碼開發、多個NPU的系統分區、協處理器的數據相關性延緩了產品上市時間。但必須指出的是,與ASIC相比,這樣的產品上市時間已經大大縮短。FPGA不僅可以通過縮短開發周期,還能通過縮短除錯周期以加快產品上市時間。兩者之間最大的區別在於軟體:NPU採用匯編代碼,而FPGA則採用HDL。

NPU需要對諸多功能進行維護,FPGA則是任何可程式設計的最佳選擇方案。利用網路處理解決該問題無需借助多個協處理器,因為這並不是當初引入NPU的初衷。適當的解決方案是有選擇地合理利用FPGA、NPU及一至兩個協處理器。

FPGA實現的網路處理實例

本文提出了一種基於新型FPGA的解決方案:Virtex-II Pro FPGA實現了數據通路和控制功能,而協處理器則負責數據包分類和查詢。下面以2.5Gbps(OC-48)線路卡為例進行說明。

1. 利用VPN和管理規則設計2.5Gbps線路卡

2.5Gbps(OC-48)線速率正日益受到廣泛關注,因為OC-48能有效地對頻寬和成本進行折衷。採用IPSec的加密VPN正是業務提供商探尋的高優先級業務。路由器製造商在下一代線路卡開發中,一直希望應用系統能具備以下大部份或全部功能(圖4):

(1) VPN支援多個局部路由表和IPSec加密╱解密;


(2) 支援基於SONET的分組傳輸的全雙工OC-48;


(3) 支援基於MPLS的VPN;


(4) 成千上萬個VPN組,多項管理規則/VPN組;


(5) 數百萬個詞頭;


(7) 支援DiffSERV;


(8) 採用VPN組的QoS級別分類。ToS域和TCP/UDP源和目的埠數目。每個VPN組中均可建立數千條QoS準則。

2. 方案選擇

設計選擇通常與所需的規則數目、性能(每秒處理的分組數據包╱信元)、元件數目和功耗相關。本文重點關注分類和流量管理。為實現上述功能,線路卡通常採用的元件包括:

(1) 網路處理器和協處理器

分類佔用的計算量最大。NPU需要許多專用記憶體(如外置ZBT SRAM),因而功耗很大。IPSec通常用於VPN中的網路安全功能,因而既需要支援控制路徑,也需要支援數據路徑。由於NP耗盡了所有能量,因而需要能同時進行IPSec安全處理和流量管理的協處理器。

(2) FPGA和備用協處理器

FPGA確保了線速率IPSec的安全性,並提供比NPU更快的分類和查詢功能。對IPSec而言,Virtex-II Pro在嵌入式PowerPC處理器軟體中實現了控制路徑╱密碼交換,還在FPGA邏輯電路中以Gbps級的線速率實現了數據路徑AES/3-DES加密╱解密。如果QoS規則需要經常改變,外置VLIW協處理器就能實現分類(FSM密集)功能。嵌入式PowerPC處理器可用於執行全部的控制和管理層功能。

(3) 記憶體子系統

CAM查詢子系統可提供很高的查詢速率,並支援很大的表項結構。但CAM的功耗(每元件消耗20W)很大,而且為了支援較大的表項,通常需要大量的CAM和SRAM元件。昂貴的ZBT SRAM可提供較高的速率,並在層2和層3數據包分類中支援NPU,但也需要消耗較大的功率。

SDRAM是最經濟的元件,因而應用於大多數系統中。低功率的SDRAM通過採用管道和多線程架構實現了較高的性能以及較大的表項。但如果設計業務只是為了通過提高處理器速率而補償性能的話,那麼就明顯不適合了。FPGA、VLIW/RISC處理器和SDRAM的結合為帶有VPN和IPSec的2.5Gbps線路卡提供了最佳解決方案。

作者:Anil Telikepalli


Virtex解決方案市場行銷經理


Xilinx公司

Anil Telikepalli於印度的Osmania大學獲得電子工程學士學位,並於美國的University of Kentucky獲得電子工程(VLSI設計)碩士學位。他曾從事多項設計和開發工作,並擁有一項可程式元件複雜乘法架構專利。




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


EE人生人氣排行
 
返回頁首