基于網(wǎng)絡(luò)處理器的可編程路由器技術(shù)研究
摘要:網(wǎng)絡(luò)處理器是一種可編程處理器,用于高效的處理網(wǎng)絡(luò)中的數(shù)據(jù)流。網(wǎng)絡(luò)處理器具有廣泛的用途,基于網(wǎng)絡(luò)處理器的路由器同使用通用處理器的路由器和使用專用集成電路的路由器相比,既具有快速的特點又具有靈活性的特點。
1 前言
網(wǎng)絡(luò)處理器是現(xiàn)代綜合業(yè)務(wù)數(shù)據(jù)網(wǎng)絡(luò)不斷發(fā)展更新的產(chǎn)物,是一種基于可編程 ASIC 結(jié) 構(gòu)的新一代SoC 芯片。它是為了適應(yīng)下一代高速網(wǎng)絡(luò)特點,即為了能夠提供Qos,能夠不斷 適應(yīng)新的網(wǎng)絡(luò)應(yīng)用,能夠發(fā)展新的網(wǎng)絡(luò)管理模式以及能夠快速響應(yīng)市場對新的網(wǎng)絡(luò)功能的需 求而推出的一種新的芯片產(chǎn)品。網(wǎng)絡(luò)處理器同時具有GPP 和ASIC 兩方面的優(yōu)點,即具有專用 集成芯片線速轉(zhuǎn)發(fā)報文的高速度特性同時又具有通用芯片的可編程性。近來對于網(wǎng)絡(luò)處理器 的研究非常活躍,國際各知名計算機(jī)芯片生產(chǎn)公司也紛紛推出自己的產(chǎn)品和標(biāo)準(zhǔn)。Intel IXA(Intel Internet Exchange Architecture,互聯(lián)網(wǎng)交換架構(gòu)) 作為一種網(wǎng)絡(luò)處理架構(gòu), 是Intel 公司網(wǎng)絡(luò)處理器的技術(shù)基礎(chǔ)。
在互聯(lián)網(wǎng)中,路由器具有核心的地位?;ヂ?lián)網(wǎng)一直在不斷向融合語音、數(shù)據(jù)等多種業(yè)務(wù) 的綜合開放結(jié)構(gòu)發(fā)展。因此,路由器必須提供更高的吞吐量、服務(wù)質(zhì)量保證、可靠性和更多 的網(wǎng)絡(luò)管理功能。為了適應(yīng)互聯(lián)網(wǎng)的發(fā)展變化,路由器的結(jié)構(gòu)也一直在發(fā)展變化之中。 最初的路由器通常采用單一的通用CPU 來負(fù)責(zé)分組的處理和轉(zhuǎn)發(fā)。這種結(jié)構(gòu)是在單一 CPU 中通過軟件來實現(xiàn)分組處理和轉(zhuǎn)發(fā),它的特點是實現(xiàn)簡單,可以通過修改軟件來提供新 的業(yè)務(wù),缺點是單一CPU 處理能力有限,全軟件實現(xiàn)也難于實現(xiàn)高速分組轉(zhuǎn)發(fā)。因此,在高速 路由器中普遍采用了專用集成電路來負(fù)責(zé)數(shù)據(jù)的處理和轉(zhuǎn)發(fā),采用通用CPU 來負(fù)責(zé)路由器 的管理。
高速的專用集成電路,可以滿足日益增長的帶寬需求。但是由于專用集成電路的開 發(fā)時間長,并且在靈活性方面受到極大的限制,而不斷出現(xiàn)的新的業(yè)務(wù)卻期望廠商能夠在最短 時間內(nèi)更新路由器的功能。網(wǎng)絡(luò)處理器集中了專用集成電路的高速處理能力,同時還具有可 編程,擴(kuò)展性強(qiáng)的特點,能夠很快適應(yīng)業(yè)務(wù)的發(fā)展變化。因此基于網(wǎng)絡(luò)處理器的路由器得到了 許多網(wǎng)絡(luò)設(shè)備生產(chǎn)商和研究機(jī)構(gòu)的重視,目前已有一些基于網(wǎng)絡(luò)處理器的路由器產(chǎn)品問世。
2 網(wǎng)絡(luò)處理器簡介
網(wǎng)絡(luò)處理器是一個被集成在一個半導(dǎo)體設(shè)備上的可編程器件。它主要用于優(yōu)化網(wǎng)絡(luò)處 理任務(wù),這些任務(wù)是:接收包,處理包和轉(zhuǎn)發(fā)包。典型的網(wǎng)絡(luò)處理器由一個核心處理器和許 多包處理引擎組成。它利用并行分布式和流水線架構(gòu),并把高速度、靈活性的良好特性和可 擴(kuò)充性相結(jié)合來提供更好的性能。 網(wǎng)絡(luò)處理器由兩類硬件功能單元組成,即網(wǎng)絡(luò)處理器單元和專用的智能協(xié)處理器/加 速器。網(wǎng)絡(luò)處理器運(yùn)行的軟件是經(jīng)過優(yōu)化的,支持系統(tǒng)級應(yīng)用和網(wǎng)絡(luò)專有功能。網(wǎng)絡(luò)處理器 單元是網(wǎng)絡(luò)處理器核心,它提供高速、大容量智能處理數(shù)據(jù)包功能,包括數(shù)據(jù)解析、分類和轉(zhuǎn) 發(fā)等等,因此網(wǎng)絡(luò)處理器單元常常被稱為數(shù)據(jù)包處理引擎。不同的協(xié)處理器則實現(xiàn)包分段/ 重組、加速查表、隊列/緩沖區(qū)管理、順序管理、存儲器控制和多播支持等功能。
為了保證關(guān)鍵數(shù)據(jù)包的實時處理, 網(wǎng)絡(luò)處理器一般將網(wǎng)絡(luò)處理任務(wù)劃分為數(shù)據(jù)層和控 制層兩個層面, 控制層面專門負(fù)責(zé)非實時性的管理和策略控制等,數(shù)據(jù)層面承載高速易變的 數(shù)據(jù)實時處理。網(wǎng)絡(luò)處理器位于數(shù)據(jù)通路物理接口處理器和背板之間, 它的典型功能包括: 分段和重組、協(xié)議識別和分類、排隊和存取控制、流量整形和流量工程、服務(wù)質(zhì)量。網(wǎng)絡(luò)處 理器的主要特征是其可編程特性和ASIC 處理性能的結(jié)合。
這一特征引發(fā)了通信系統(tǒng)設(shè)計的 革新,它使系統(tǒng)設(shè)計者擺脫了原先復(fù)雜、零散的設(shè)計,將注意力放在高層服務(wù)上,縮短產(chǎn)品推 向市場的時間,延長產(chǎn)品的生命周期,這也是生產(chǎn)商在激烈競爭中得以生存和發(fā)展的關(guān)鍵。表 1 中列出了網(wǎng)絡(luò)處理器七個關(guān)鍵的特性,它們來源于下一代網(wǎng)絡(luò)對網(wǎng)絡(luò)處理器編程能力、性 能和開放性的需求。
表 1:網(wǎng)絡(luò)處理器的七大特性
總之,網(wǎng)絡(luò)處理器技術(shù)是網(wǎng)絡(luò)發(fā)展的趨向,它不僅可以減少開發(fā)商的開發(fā)成本,縮短開發(fā) 時間,加快產(chǎn)品升級換代的能力,同時也保護(hù)用戶的利益,減少用戶在網(wǎng)絡(luò)新功能需要的投資 和升級換代的費用,所以無論在技術(shù)上還是在經(jīng)濟(jì)上都具有重要意義。
3 IXP1200 網(wǎng)絡(luò)處理器架構(gòu) IXP1200 由六個可編程的微引擎和一個協(xié)調(diào)系統(tǒng)行為的工作在200MHz 的StrongARM 內(nèi) 核組成。每個微引擎有四個硬件線程,在IXP1200 芯片上一共有24 個線程。除了微引擎, IXP1200 還用一些別的特殊的硬件設(shè)備來輔助進(jìn)行包處理。 微引擎和StrongARM 還共享有 一個可編程的HASH 引擎和專門的隊列,IXP1200 網(wǎng)絡(luò)處理器的架構(gòu)圖如圖1 所示。
下面我們將對 IXP1200 中的微引擎和StrongARM 做一個詳細(xì)的介紹。微引擎有一個特 別適用于處理網(wǎng)絡(luò)數(shù)據(jù)的指令集。微引擎除了可以在單個指令里執(zhí)行位、字節(jié)、和長字操作外,還有帶有移位和循環(huán)移位的算術(shù)和邏輯操作。但是微引擎沒有整數(shù)乘或除、也沒有浮點 數(shù)操作。微引擎的乘法是通過反復(fù)進(jìn)行加運(yùn)算來完成的。在微引擎中每個指令占用一個長字 (32 位)的存儲空間。每個微引擎有一個獨立的可容納1024 條指令的4KB 的指令存儲器。 在微引擎開始運(yùn)行之前,StrongARM 內(nèi)核上的代碼負(fù)責(zé)給這個指令存儲器裝入代碼。一旦微 引擎運(yùn)行時,指令以一個五階段的流水線來運(yùn)行,并且當(dāng)流水線充滿時,平均只需用一個周 期去執(zhí)行一條指令。當(dāng)指令阻塞在存儲器或設(shè)備存取操作完成時,或當(dāng)跳轉(zhuǎn)指令迫使在流水 線中的某些指令退出執(zhí)行,平均的指令執(zhí)行時間就會長于一個周期。
在IXP1200 系列處理器上的StrongARM 內(nèi)核是基于INTEL 的SA-1 內(nèi)核。這個內(nèi)核實現(xiàn) 由ARM 公司定義的32 位的ARM V4 架構(gòu)。StrongARM 內(nèi)核在計算能力和功耗上是一種折衷的 選擇。編程StrongARM 內(nèi)核和編程嵌入式通用處理器沒有太大的差別。
圖 1:IXP1200 網(wǎng)絡(luò)處理器架構(gòu)
在一個微引擎的線程之間以輪轉(zhuǎn)方式實行非搶占式的硬件線程仲裁交換,而且只有準(zhǔn)備 好運(yùn)行的線程才能夠被交換到運(yùn)行狀態(tài)。調(diào)度器保存有已準(zhǔn)備運(yùn)行的線程號,當(dāng)有線程準(zhǔn)備 放棄微引擎的控制權(quán)時,調(diào)度器在微引擎中以線程標(biāo)志號的順序次序搜尋一個準(zhǔn)備運(yùn)行的線 程。對于有搶占式調(diào)度的操作系統(tǒng),開發(fā)者不能控制也不能預(yù)測什么時候為了讓另一個代碼 塊運(yùn)行而中斷一個指定的代碼塊。而在微引擎中,在另一個代碼被運(yùn)行之前,當(dāng)前代碼必須 明確放棄微引擎的控制權(quán)。這使得開發(fā)者可以控制代碼的實際運(yùn)行情況。因為代碼訪問存儲 器是一個會消耗數(shù)十個周期的操作。所以一般情況下,當(dāng)線程等待存儲器或別的硬件操作時, 線程會自動放棄對微引擎的控制權(quán)。當(dāng)線程等待存儲器操作完成時,線程可以交換出去并允 許別的線程去運(yùn)行。這種策略最大化了微引擎正在執(zhí)行的工作量。非搶占式線程調(diào)度使微引 擎能夠異步的處理存儲器。一個微引擎能明確選擇釋放微引擎的控制權(quán),它也能選擇不釋放 控制權(quán),等待一個存儲器操作。如,一個微引擎線程發(fā)出一個存儲器讀請求操作,然后又繼 續(xù)執(zhí)行其它指令。存儲器讀請求操作的完成信號然后能被異步的反饋給微引擎線程。異步存 儲器讀操作是微引擎和大多數(shù)通用處理器的一個重要的區(qū)分。
4、基于網(wǎng)絡(luò)處理器的路由器
在網(wǎng)絡(luò)發(fā)展初期,網(wǎng)絡(luò)傳輸?shù)乃俾瘦^低,沒有必要用專用的處理器處理分組,用原有的通 用處理器就可以滿足分組轉(zhuǎn)發(fā)的速率要求,但隨著網(wǎng)絡(luò)速度的提高,通用處理器已經(jīng)不能適 應(yīng)網(wǎng)絡(luò)高速發(fā)展的需要。因此,需要想辦法提高路由器的性能,利用硬件處理分組的轉(zhuǎn)發(fā)是很 自然能想到的方法,所以就出現(xiàn)了基于ASIC 的路由器。基于ASIC 的路由器仍是當(dāng)前提高網(wǎng) 絡(luò)設(shè)備速率的主流,它的最大缺點是缺乏靈活性,一旦把特性嵌入到硅片上,就很難來增加新 的特性和改善性能。設(shè)計和制造一個復(fù)雜的ASIC 要花費12 個月到兩年的時間,這對路由器 廠商來說,需要在發(fā)展周期中提前預(yù)測出市場可能最需要的特性和協(xié)議。它以失去靈活性和 快速響應(yīng)市場的能力作為代價來獲取速度。隨著網(wǎng)絡(luò)應(yīng)用領(lǐng)域的迅速擴(kuò)大,新的特性(虛擬局 域網(wǎng)VLAN、虛擬專用網(wǎng)VPN 等)和用戶的新需求(多媒體、視頻點播、視頻會議等)不斷出現(xiàn) 和變化,這樣,由于ASIC 固有的不靈活性,導(dǎo)致廠商不能快速地對用戶要求的功能做出響應(yīng), 使廠商失去了快速響應(yīng)市場的能力,于是人們在研究一種既能滿足性能要求又能滿足靈活的 處理器,這就是網(wǎng)絡(luò)處理器。除此之外,ASIC 還有引腳太多(200~400 個引腳),價格昂貴等缺 點。另外,局域網(wǎng)流量的分布變化促進(jìn)了網(wǎng)絡(luò)處理器的發(fā)展。由Internet 規(guī)模和應(yīng)用的發(fā)展, 以往大部分的通信限于局域網(wǎng)內(nèi)部,而現(xiàn)在有相當(dāng)一部分的信息是和局域網(wǎng)外部網(wǎng)絡(luò)進(jìn)行交 換的。而且這種趨勢還會不斷地增加,這使得分組將傳輸在更復(fù)雜的,多種多樣的網(wǎng)絡(luò)體系上, 相應(yīng)地,安全問題(如加密、授權(quán)與鑒定、高級監(jiān)控和入侵監(jiān)測等)也成為重點考慮的對象, 為了提供不同服務(wù)質(zhì)量(如IP 廣播、高級的服務(wù)質(zhì)量Qos),網(wǎng)絡(luò)控制也將復(fù)雜得多,所有這 些要求路由器變得更加智能,同時要以線速處理7 層網(wǎng)絡(luò)協(xié)議(OSI)的高層內(nèi)容,以滿足用戶 要求的不同服務(wù),由于ASIC 是用硬件來實現(xiàn)這些性能的,不能進(jìn)行編程,所以就不能快速滿 足用戶的這些新要求,于是,基于網(wǎng)絡(luò)處理器的路由器應(yīng)運(yùn)而生。
從功能分,路由器可分為通用路由器與專用路由器。一般所說的路由器為通用路由器。 專用路由器通常為實現(xiàn)某種特定功能對路由器接口、硬件等作專門優(yōu)化。例如接入服務(wù)器用 作接入撥號用戶,增強(qiáng)PSTN 接口以及信令能力;VPN 路由器增強(qiáng)隧道處理能力以及硬件加 密;寬帶接入路由器強(qiáng)調(diào)寬帶接口數(shù)量及種類。
目前路由器有以下三種實現(xiàn)方法:基于通用處理器的軟件路由器、基于ASIC 的路由器、 基于網(wǎng)絡(luò)處理器的路由器。第一種路由器的優(yōu)點是:可靈活的升級系統(tǒng);易于支持增加的接 口;可以更快的開發(fā)新產(chǎn)品并縮短產(chǎn)品的進(jìn)入市場時間。核心處理器執(zhí)行所有的路由功能。 缺點是不能升級到高帶寬。第二種路由器的優(yōu)點是:能提供線速性能;ASIC 被用于包或幀 的轉(zhuǎn)發(fā)、CPU 被用于控制功能的架構(gòu)提供了速度和靈活性。確定是缺乏靈活性。而第三種路 由器則綜合了前兩種路由器的優(yōu)點:可同時提供性能和靈活性;多個包處理元素(微引擎) 支持了多個線程;通過流水線化和并行處理能獲得更高的性能;軟件編程會更容易的增加服 務(wù)并可帶來靈活性。
5、結(jié)束語
網(wǎng)絡(luò)處理器結(jié)合了 ASIC 的硬件高速與智能處理器可編程的特點,為下一代網(wǎng)絡(luò)設(shè)備的 開發(fā)設(shè)計提供了全新的硬件平臺。合理利用IXP1200 網(wǎng)絡(luò)處理器的可編程性、高速數(shù)據(jù)處 理、并行處理和可擴(kuò)展性等特性可構(gòu)建出設(shè)計合理、實現(xiàn)簡單、性能良好、經(jīng)濟(jì)實用的路由器。
來源:星夢居0次