摘要:網絡處理器是一種可編程處理器,用于高效的處理網絡中的數據流。網絡處理器具有廣泛的用途,基于網絡處理器的路由器同使用通用處理器的路由器和使用專用集成電路的路由器相比,既具有快速的特點又具有靈活性的特點。
1 前言
網絡處理器是現代綜合業(yè)務數據網絡不斷發(fā)展更新的產物,是一種基于可編程 ASIC 結 構的新一代SoC 芯片。它是為了適應下一代高速網絡特點,即為了能夠提供Qos,能夠不斷 適應新的網絡應用,能夠發(fā)展新的網絡管理模式以及能夠快速響應市場對新的網絡功能的需 求而推出的一種新的芯片產品。網絡處理器同時具有GPP 和ASIC 兩方面的優(yōu)點,即具有專用 集成芯片線速轉發(fā)報文的高速度特性同時又具有通用芯片的可編程性。近來對于網絡處理器 的研究非;钴S,國際各知名計算機芯片生產公司也紛紛推出自己的產品和標準。INTEL IXA(INTEL Internet Exchange Architecture,互聯網交換架構) 作為一種網絡處理架構, 是INTEL 公司網絡處理器的技術基礎。
在互聯網中,路由器具有核心的地位;ヂ摼W一直在不斷向融合語音、數據等多種業(yè)務 的綜合開放結構發(fā)展。因此,路由器必須提供更高的吞吐量、服務質量保證、可靠性和更多 的網絡管理功能。為了適應互聯網的發(fā)展變化,路由器的結構也一直在發(fā)展變化之中。 最初的路由器通常采用單一的通用CPU 來負責分組的處理和轉發(fā)。這種結構是在單一 CPU 中通過軟件來實現分組處理和轉發(fā),它的特點是實現簡單,可以通過修改軟件來提供新 的業(yè)務,缺點是單一CPU 處理能力有限,全軟件實現也難于實現高速分組轉發(fā)。因此,在高速 路由器中普遍采用了專用集成電路來負責數據的處理和轉發(fā),采用通用CPU 來負責路由器 的管理。
高速的專用集成電路,可以滿足日益增長的帶寬需求。但是由于專用集成電路的開 發(fā)時間長,并且在靈活性方面受到極大的限制,而不斷出現的新的業(yè)務卻期望廠商能夠在最短 時間內更新路由器的功能。網絡處理器集中了專用集成電路的高速處理能力,同時還具有可 編程,擴展性強的特點,能夠很快適應業(yè)務的發(fā)展變化。因此基于網絡處理器的路由器得到了 許多網絡設備生產商和研究機構的重視,目前已有一些基于網絡處理器的路由器產品問世。
2 網絡處理器簡介
網絡處理器是一個被集成在一個半導體設備上的可編程器件。它主要用于優(yōu)化網絡處 理任務,這些任務是:接收包,處理包和轉發(fā)包。典型的網絡處理器由一個核心處理器和許 多包處理引擎組成。它利用并行分布式和流水線架構,并把高速度、靈活性的良好特性和可 擴充性相結合來提供更好的性能。 網絡處理器由兩類硬件功能單元組成,即網絡處理器單元和專用的智能協處理器/加 速器。網絡處理器運行的軟件是經過優(yōu)化的,支持系統級應用和網絡專有功能。網絡處理器 單元是網絡處理器核心,它提供高速、大容量智能處理數據包功能,包括數據解析、分類和轉 發(fā)等等,因此網絡處理器單元常常被稱為數據包處理引擎。不同的協處理器則實現包分段/ 重組、加速查表、隊列/緩沖區(qū)管理、順序管理、存儲器控制和多播支持等功能。
為了保證關鍵數據包的實時處理, 網絡處理器一般將網絡處理任務劃分為數據層和控 制層兩個層面, 控制層面專門負責非實時性的管理和策略控制等,數據層面承載高速易變的 數據實時處理。網絡處理器位于數據通路物理接口處理器和背板之間, 它的典型功能包括: 分段和重組、協議識別和分類、排隊和存取控制、流量整形和流量工程、服務質量。網絡處 理器的主要特征是其可編程特性和ASIC 處理性能的結合。
這一特征引發(fā)了通信系統設計的 革新,它使系統設計者擺脫了原先復雜、零散的設計,將注意力放在高層服務上,縮短產品推 向市場的時間,延長產品的生命周期,這也是生產商在激烈競爭中得以生存和發(fā)展的關鍵。表 1 中列出了網絡處理器七個關鍵的特性,它們來源于下一代網絡對網絡處理器編程能力、性 能和開放性的需求。
表 1:網絡處理器的七大特性
總之,網絡處理器技術是網絡發(fā)展的趨向,它不僅可以減少開發(fā)商的開發(fā)成本,縮短開發(fā) 時間,加快產品升級換代的能力,同時也保護用戶的利益,減少用戶在網絡新功能需要的投資 和升級換代的費用,所以無論在技術上還是在經濟上都具有重要意義。
3 IXP1200 網絡處理器架構 IXP1200 由六個可編程的微引擎和一個協調系統行為的工作在200MHz 的StrongARM 內 核組成。每個微引擎有四個硬件線程,在IXP1200 芯片上一共有24 個線程。除了微引擎, IXP1200 還用一些別的特殊的硬件設備來輔助進行包處理。 微引擎和StrongARM 還共享有 一個可編程的HASH 引擎和專門的隊列,IXP1200 網絡處理器的架構圖如圖1 所示。
下面我們將對 IXP1200 中的微引擎和StrongARM 做一個詳細的介紹。微引擎有一個特 別適用于處理網絡數據的指令集。微引擎除了可以在單個指令里執(zhí)行位、字節(jié)、和長字操作外,還有帶有移位和循環(huán)移位的算術和邏輯操作。但是微引擎沒有整數乘或除、也沒有浮點 數操作。微引擎的乘法是通過反復進行加運算來完成的。在微引擎中每個指令占用一個長字 (32 位)的存儲空間。每個微引擎有一個獨立的可容納1024 條指令的4KB 的指令存儲器。 在微引擎開始運行之前,StrongARM 內核上的代碼負責給這個指令存儲器裝入代碼。一旦微 引擎運行時,指令以一個五階段的流水線來運行,并且當流水線充滿時,平均只需用一個周 期去執(zhí)行一條指令。當指令阻塞在存儲器或設備存取操作完成時,或當跳轉指令迫使在流水 線中的某些指令退出執(zhí)行,平均的指令執(zhí)行時間就會長于一個周期。