<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 網(wǎng)絡(luò )處理器軟件開(kāi)發(fā)模型的研究

網(wǎng)絡(luò )處理器軟件開(kāi)發(fā)模型的研究

作者: 時(shí)間:2005-04-04 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要:的高速處理和靈活的可編程性,使它成為當今中數據處理的有效解決方案。本文深入探討。首先,介紹Intel IXP2400網(wǎng)絡(luò )硬件結構和平臺,然后給出基于網(wǎng)絡(luò )處理器的路由轉發(fā)系統的設計實(shí)例,闡述網(wǎng)絡(luò )處理器開(kāi)發(fā)的關(guān)鍵環(huán)節,最后提出網(wǎng)絡(luò )處理器所面臨的主要問(wèn)題和挑戰。

關(guān)鍵詞:網(wǎng)絡(luò )處理器 軟件開(kāi)發(fā) 微引擎 微模塊 核心組件

引言

隨著(zhù)當今網(wǎng)絡(luò )規模和性能迅速增長(cháng),Internet主干網(wǎng)絡(luò )流量的指數性增長(cháng)及新業(yè)務(wù)接連的出現,這就要求網(wǎng)絡(luò )設備具有線(xiàn)速和智能的處理能力。網(wǎng)絡(luò )處理器NP(Network Processor)便是一種新興、有效的統一解決方案。它適用于各層網(wǎng)絡(luò )處理,具有ASIC高速處理性能和可編程特性,既能保證系統靈活性,又能完成線(xiàn)速處理數據包所要求的高性能硬件功能。目前,網(wǎng)絡(luò )處理器已經(jīng)涌現出了一些成功的應用范例。這些應用主要包括:基于網(wǎng)絡(luò )處理器的路由交換設備、智能安全設備和入侵檢測設備等。比如,北京聯(lián)想使用IBM的PowerNP構成了電信級的防火墻設備。與此同時(shí),圍繞著(zhù)網(wǎng)絡(luò )處理器應用展開(kāi)的相關(guān)也得到了飛速發(fā)展,一些企業(yè)和科研機構也給予了足夠重視。例如,Intel專(zhuān)門(mén)投資支持全球100所大學(xué)進(jìn)行網(wǎng)絡(luò )處理器及其相關(guān)應用的。

由于網(wǎng)絡(luò )處理器特殊的體系結構,它的軟件編程與傳統網(wǎng)絡(luò )應用/嵌入式應用開(kāi)發(fā)有較大不同,更為復雜。本文將以Intel IXP2400網(wǎng)絡(luò )處理器為例,對網(wǎng)絡(luò )處理器軟件開(kāi)發(fā)模型進(jìn)行較為詳細地探討。

1 網(wǎng)絡(luò )處理器硬件架構

在一般程序設計中,可以不考慮操作系統和編譯程序、線(xiàn)程調度的細節、寄存器的數量和容量,而在網(wǎng)絡(luò )處理器的程序設計中,忽略這些因素就不能編寫(xiě)出優(yōu)化的程序。在對網(wǎng)絡(luò )處理器,尤其是微引擎編程之前,需要仔細了解網(wǎng)絡(luò )處理器的系統結構和硬件平臺。下面以Intel的IXP2400為例來(lái)說(shuō)明。

IXP2400網(wǎng)絡(luò )處理器是Intel在2002年推出的第二代互聯(lián)網(wǎng)交換架構(IXA)網(wǎng)絡(luò )處理器。其中,IXP2400是面向中高端應用的網(wǎng)絡(luò )處理器,可用于實(shí)現OC-48的網(wǎng)絡(luò )路由交換設備。

Intel的IXP2400網(wǎng)絡(luò )處理器結構允分體現了SoC(System on Chip)的思想。如圖1所示,它的內部主要包括8個(gè)完全可編程的4線(xiàn)程微引擎(Mev2)和1個(gè)XScale核。此外,還有用于連接外部MAC設備的MSF單元、連接各種存儲器和總線(xiàn)的接口單元等。這些單元通過(guò)內部的高速數據總線(xiàn)和控制總線(xiàn)彼些協(xié)作。

XScale核(core)是ARM系列處理器的一種,它在IXP2400中起控制和管理作用。具體包括:對系統初始化;提供系統的時(shí)鐘;建立并管理路由表;提供一個(gè)對應于IXP2400各寄存器、存儲器和外部存儲器的地址映射表等。XScale核在系統啟動(dòng)時(shí),從BootROM開(kāi)始執行引導程序,對整個(gè)IXP2400系統進(jìn)行初始化。

IXP2400中的每一個(gè)微引擎其它就是一個(gè)32位RISC處理器,可以由4個(gè)并行硬件線(xiàn)程共享。數據包的接收、處理和發(fā)送等任務(wù),均由微引擎中的各線(xiàn)程并行執行微引擎指令存儲區中的微代碼程序來(lái)完成。網(wǎng)絡(luò )處理器數據的高速轉發(fā)正是因為充分利用了硬件的并行性,來(lái)彌補線(xiàn)速轉發(fā)中的內存訪(fǎng)問(wèn)的延遲。

IXP2400嵌在開(kāi)發(fā)板的中心,周?chē)ㄟ^(guò)數據線(xiàn)連接著(zhù)各種設備,如SRAM,SDRAM等。SDRMA主要用來(lái)存放需要處理和轉發(fā)的數據包等,也作為XScale核的內存;SRAM主要存放對數據包包頭進(jìn)行處理所需的重要信息和數據包的隊列描述等內容。通過(guò)IXP2400的數據單元是一個(gè)64字節的MAC包(MPKT),在每收到一個(gè)包的時(shí)候,MAC將一個(gè)數據分成若干個(gè)MPKT,MPKT就是網(wǎng)絡(luò )處理器處理數據的單位。

綜上所述,IXP2400擁有網(wǎng)絡(luò )處理的一般特點(diǎn),從系統角度看,IXP2400屬于一個(gè)并行式的多算是器共享總線(xiàn)的計算機系統。對于網(wǎng)絡(luò )處理器的程序設計和一般計算機的程序設計有很大不同。

2 網(wǎng)絡(luò )處理器軟件開(kāi)發(fā)模型

網(wǎng)絡(luò )設備性能和可編程能力最終由運行在網(wǎng)絡(luò )處理器平臺上的軟件決定,其中,選擇何種編程模式是關(guān)鍵。評價(jià)網(wǎng)絡(luò )處理器編程模式有兩個(gè)基本準則:一個(gè)是編程模式所能涉及的層,即哪些功能能夠編程以及編程能達到的層;另一個(gè)重要方面就是處理器襯淫的編程模型。由于網(wǎng)絡(luò )處理器平臺服務(wù)于軟件功能需要,所以編程方法的關(guān)鍵是在不犧牲設備性能的前提下,使用成熟技術(shù)和現有軟件模式,保證產(chǎn)品的可靠性,加快開(kāi)發(fā)速度。

基于運行在核心處理器和協(xié)處理器的不同硬件之上,網(wǎng)絡(luò )處理器可分成數據平面與控制平臺。

數據平面主要運行在微引擎處理之上,是實(shí)現輸入端口和輸出端口間高速轉發(fā)數據包的處理功能,具有線(xiàn)速執行特點(diǎn),并充分利用數據包的無(wú)關(guān)性,采取并行處理方式??刂破矫嬉话氵\行在網(wǎng)絡(luò )處理器核上,處理路由表更新、管理數據平面任務(wù)與狀態(tài)、完成高層的QoS控制等。這些操作的性能要求低于數據層面,因此通常采用高性能通用處理器硬件平臺。為了有效支持網(wǎng)絡(luò )處理功能,控制平面與數據平面之間存在復雜的信息交互與依賴(lài)關(guān)系。

IXP2400的軟件開(kāi)發(fā)也分為內核程序和微代碼兩部分。XScale內核的開(kāi)發(fā)通??梢允褂没贏(yíng)RM平臺嵌入式操作系統開(kāi)發(fā)工具鏈,如WindRiver公司的Tornado或基于GNU的Linux工具鏈等;另一部分是對微引擎的編程,這部分使用Intel公司提供的Developer Workbench開(kāi)發(fā)環(huán)境,主要使用微代碼來(lái)進(jìn)行編程。Developer Workbench提供了完善的編譯、鏈接、仿真和調試功能。為了方便開(kāi)發(fā)人員開(kāi)發(fā),消除平面之間通信等一些細節,Intel提供了它的網(wǎng)絡(luò )處理器開(kāi)發(fā)模型,稱(chēng)為IXA可移植框架(portability framework)如圖2所示。

Intel IXA可移植框架中最重要的組成部分就是在微引擎上和XScale核上開(kāi)發(fā)的代碼模型?;诓煌布祥_(kāi)發(fā)的代碼模塊分別為微模塊(microblock)和核心組件(core component)。每一個(gè)模塊都代表了一個(gè)進(jìn)行包處理的代碼單元。這里實(shí)際上引入了構件的思想,開(kāi)發(fā)人員將各種模塊以一定的順序組織在一起,組成一個(gè)特定的應用。下面分別對框架中的各個(gè)層次進(jìn)行討論。

(1)微模塊

數據平面的微引擎在邏輯上分成一個(gè)或多個(gè)微模塊(microblock)。每一個(gè)微模塊都是一個(gè)宏或者一個(gè)微引擎或由Intel提供的一些底層庫寫(xiě)成的函數。微模塊之間彼此獨立,這些就提高了代碼的可重用性,同時(shí)也簡(jiǎn)化了微引擎手代碼的編寫(xiě)。微引擎與Intel XScale核共享一部分內存,大部分網(wǎng)絡(luò )包的處理都通過(guò)微引擎來(lái)進(jìn)行,一些例外的包將傳遞給Intel XScale核心組件來(lái)處理。微模塊從功能上一般包括與一些高層協(xié)議相關(guān)包的處理微模塊和與硬件緊密相關(guān)的微模塊。前者包括IPv4轉發(fā)、網(wǎng)橋、網(wǎng)絡(luò )地址轉換(NAT)等;后者包括包的接收和發(fā)送模塊及分組隊列管理模塊等。

(2)核心組件

核心組件(Core Component)運行在XScale核上,實(shí)現了相關(guān)微模塊的配置、管理和例外處理等工作。一個(gè)核心組件可能管理著(zhù)多于一個(gè)微模塊。具體來(lái)講,核心組件主要完成以下一些功能:配置微模塊(通過(guò)引入變量的靜態(tài)配置和控制模塊的動(dòng)態(tài)配置);初始化維護一些可能被其它應用程序修改的數據結構;提供了一個(gè)例外處理和控制消息處理機制來(lái)處理微模塊發(fā)送過(guò)來(lái)的包和消息。

(3)微引擎數據平面優(yōu)化庫

微引擎數據平面優(yōu)化庫(optimized microengine data plane library)包括一些底層的微引擎宏指令和用微引擎的特殊C語(yǔ)言寫(xiě)的函數庫,用來(lái)編寫(xiě)微模塊和一些微引擎的代碼。這些為是經(jīng)過(guò)Intel優(yōu)化的,非常高效,代碼的占用小,同時(shí)也是非常底層的。庫主要包含三信方面:對處理器硬件單元的操作,比如對微引擎內部的本地內存(local memory)、臨界區(critical sections)操作等;協(xié)議頭的解析函數,如IPv4、IPv6協(xié)議等;哈希單元的查找,CRC等。

(4)微模塊基本設施庫

微模塊基本設施庫(microblocks infrastructure library)提供了訪(fǎng)問(wèn)暫存包描述符的API,Dispatch Loop的實(shí)現是通過(guò)它來(lái)完成的。一個(gè)Dispatch Loop將運行在一個(gè)微引擎內部線(xiàn)程之間的多個(gè)微模塊組成一個(gè)microblock組。關(guān)鍵的地方是,Dispatch Loop提供了一種多個(gè)微模塊之間高效共享包的描述符、包頭信息等重要數據結構的方式,實(shí)現了多個(gè)微模塊間的數據傳遞。Dispatch Loop也提供了向其它Dispatch Loop也提供了向其它Dispatch Loop和XScale核之間發(fā)送和接收包的接口。

(5)資源管理庫

資源管理庫(resource management library)是XScale核的一個(gè)軟件組件,它向內核提供了微引擎的API,比如硬件的資源管理接口,大大簡(jiǎn)化了硬件初始化的任務(wù),配置和資源的共享;微模塊與核心組件之間的通信API,開(kāi)發(fā)者屏蔽了微引擎與XScale核之間通道的一些細節。

(6)核心組件基本設施庫

核心組件基本設施庫(core components infrastructurelibrary)為XScale核心組件設計和構造提供了一些底層的API,同時(shí)也提供了組件之間傳遞包和消息的機制。其于核心組件基本設施庫的一個(gè)核心組件一般都要包含以下函數:1個(gè)初始化函數;1個(gè)結束函數;1個(gè)或多個(gè)包的處理名句柄;1個(gè)或多個(gè)消息處理句柄。

(7)操作系統服務(wù)層

操作系統服務(wù)層(operating system services layer)對運行在XScale核上的代碼提供了一個(gè)抽象層。開(kāi)發(fā)人員編寫(xiě)的XScale核心運行代碼包括資源管理庫。應該利用這一層,而不是直接去利用操作系統提供的API,從而提高系統的可移植性。OSSL主要提供了以下幾類(lèi)接口:線(xiàn)程管理、同步原語(yǔ)、互斥操作、定時(shí)器、內存管理和消息日志。

(8)控制平面平臺開(kāi)發(fā)工具包

控制平面的PDK(Platform Development Kit)為XScale核心組件與運行控制平面的軟件之間提供了接口。它所提供的API編程接口現在是符合國際網(wǎng)絡(luò )處理器論壇(NPF)提出的標準的,各種控制平面的網(wǎng)絡(luò )協(xié)議棧和用它可以很方便的集成進(jìn)來(lái)。

3 網(wǎng)絡(luò )處理器應用實(shí)例

利用Intel IXA可移植框架來(lái)實(shí)現Intel IXP2400的一個(gè)簡(jiǎn)單路由轉發(fā)系統。數據分組在IXP2400中的流動(dòng)過(guò)程如下:以太網(wǎng)MAC器件接收數據,放入MSD單元的接收緩存當中,向微引擎發(fā)出信號,表示數據已經(jīng)收到,微引擎將接收緩存中數據傳輸到SDRAM,微引擎通過(guò)對MSF總線(xiàn)單元的訪(fǎng)問(wèn)命令將前幾個(gè)字節(分組頭)傳送到傳輸寄存器中,微引擎對分組的以太網(wǎng)頭進(jìn)行修改,而將數據分組寫(xiě)入發(fā)送隊列,然后通知MSF單元將數據分組傳送給適當的MAC器件。圖3所示為典型路由器應用系統中的數據流。

在圖3所示的處理轉發(fā)結構中,每一個(gè)模塊代表一個(gè)微模塊。發(fā)送和接收模塊和MSF硬件緊密相關(guān)。處理器芯片的MSF總線(xiàn)接口單元中有一對BUFFER,即輸入BUFFER和輸出BUFFER,分別用作接收和發(fā)送的緩沖區。開(kāi)發(fā)者通過(guò)用這些相應的硬件寄存器,硬件設備可自動(dòng)進(jìn)行相應的轉發(fā)處理。

圖3

接收線(xiàn)程將自己的信息寫(xiě)入MSF的FREELIST單元控制豁口,其中包括了線(xiàn)程號、微引擎號與存放接收控制字(RSW)的寄存器地址,等待MSF的信號將數據從RBUFFER中移入SDRAM。發(fā)送微模塊要選擇并等待一個(gè)有效的TBUFFER,再將數據從SDRAM中移入TBUFFER,并寫(xiě)入相應的控制寄存器,標識分組要發(fā)送的端口,分組的發(fā)送由TSM硬件自動(dòng)完成。

在中間處理包的各個(gè)模塊中,代碼首先從便存儲器(SCRATCHPAD MEMORY)中將接收線(xiàn)程放入的包信息取出,進(jìn)行以太網(wǎng)頭的有效性驗證,根據IP頭的信息查找路由表,將以太網(wǎng)頭更新。其中每一個(gè)處理都是由一個(gè)微模塊來(lái)實(shí)現的。各個(gè)模塊合在一起構成了一個(gè)Dispatch Loop,各個(gè)模塊在便存儲器中共享包描述符信息,其中dlNextBlock全局變量為下一個(gè)處理微模塊的標識。Dispatch Loop的部分代碼如下(簡(jiǎn)略)。

while(1){

dl_source(); //從接收線(xiàn)程取下包描述符

if(dlBufHandle= =0){ //dlBufHandle是Dispatch

//Loop維護的一個(gè)全局變量

continue;

}

Ethernet_validate();//驗證這個(gè)包是一個(gè)有效的以太網(wǎng)頭

Ethernet_strip_header();//去掉以太網(wǎng)頭

Ipv4_five_tuple_class();//進(jìn)行IPv4 classifier的轉發(fā)

If(dlNextBlock= =IX_DROP){//clNextBlock也是全局變量,表示下一個(gè)

Goto drop; //跳轉到丟棄包的處理模塊

}

Ethernet_add_header();//添加新的以太網(wǎng)頭

D1_sink(); //將處理后的包描述符放入發(fā)送緩沖區中

Drop:

Dl_BufDrop(dlBufHandle); //丟棄包的處理

}

Intel IXP2400開(kāi)發(fā)平臺中,微代碼的源文件是*.uc格式的,經(jīng)過(guò)預處理生成*.ucp的中間文件,進(jìn)而進(jìn)行匯編生成*.list匯編文件。微引擎程序的連接器將匯編程序的多個(gè)輸出文件轉變成一個(gè)可下載的微程序映像(image)。缺省情況下,連接器生成的微代碼映像文件的擴展名為uof。連接器也可以生成C結構的程序格式,這樣的輸出文件與內核程序一起進(jìn)行編譯和連接。

Intel提供的資源管理庫中,對微引擎部分的函數提供了接口,可以將uof文件當作Flash文件系統的一個(gè)普通文件進(jìn)行處理。在內核代碼初始化時(shí),將uof文件讀入內存,然后加載。但是如果要作成最終產(chǎn)品時(shí),Intel推薦采用.c格式的文件,并直接鏈入到所開(kāi)發(fā)的內核工程中。

4 網(wǎng)絡(luò )處理器軟件開(kāi)發(fā)的關(guān)鍵環(huán)節

基于網(wǎng)絡(luò )處理器開(kāi)發(fā)工作的重點(diǎn)是對數據平面代碼的開(kāi)發(fā),開(kāi)發(fā)者要在以下三個(gè)方面進(jìn)行設計和代碼優(yōu)化:多線(xiàn)程的任務(wù)分配和調度策略;數據結構的定義和存儲分配;分組隊列的管理和調度。

(1)多線(xiàn)程的分配和調度策略

對微引擎和線(xiàn)程分配任務(wù)是否合理,是影響系統性能的一個(gè)很重要因素。開(kāi)發(fā)人員需要根據具體的網(wǎng)絡(luò )應用和硬件平臺的特點(diǎn)來(lái)科學(xué)合理的分配任務(wù)。比如,對一個(gè)一般的網(wǎng)絡(luò )應用來(lái)說(shuō),可以分為包的接收、處理、發(fā)送幾個(gè)階段。對于包的處理階段來(lái)說(shuō),又可以分成多個(gè)階段來(lái)執行,每一個(gè)階段可以由一個(gè)微模塊來(lái)執行。這多個(gè)微模塊是如何在每個(gè)微引擎中分配,就是一個(gè)任務(wù)分配的問(wèn)題。如果分配才能使負載盡可能的達到平衡,處理器的資源得到最大效率的利用,這些都要進(jìn)行、分析和實(shí)驗。

網(wǎng)絡(luò )處理器微引擎基于硬件的靜態(tài)多線(xiàn)程調度基礎上,即在一個(gè)微引擎內部中的線(xiàn)程調度是由硬件來(lái)實(shí)現的,通常采用輪詢(xún)的策略。不同策引擎的線(xiàn)程間存在多種通信方法,線(xiàn)程之間在數據包處理過(guò)程中的同步方式也有多種。因此,開(kāi)發(fā)者根據具體不同應用功能特點(diǎn),不同數據處理相關(guān)功能需求,對圍繞處理器的多個(gè)微引擎的并行調度算法進(jìn)行選擇,以盡可能達到系統負載的平衡。

Intel IXP2400提出了三種網(wǎng)絡(luò )處理器數據平面的多線(xiàn)程編程模型:流水模型(context pipeline)、并行處理模型的順序模式(ordered mode)和亂序的模式(unordered mode)。在任務(wù)的分配方面,Intel正在考慮對現有的微引擎編程語(yǔ)言進(jìn)行擴展,提出了新的微引擎自動(dòng)分配任務(wù)的編程模型,以加快網(wǎng)絡(luò )處理器軟件開(kāi)發(fā)的效率。

(2)數據結構的這義和存儲分配

影響網(wǎng)絡(luò )處理器線(xiàn)速轉發(fā)的一個(gè)最關(guān)鍵問(wèn)題是存儲器的訪(fǎng)問(wèn)延遲。網(wǎng)絡(luò )處理器中往往有多層不同的存儲體(在IXP2400中,就存在寄存器、Local Memory、Scratchpad Memory、SRAM、SDRAM等不同級別的存儲器,它們的速度差別很大),不同層次的內存用于滿(mǎn)足不 同數據結構的需要。另一方面,定義在網(wǎng)絡(luò )處理器中的數據結構是非常精密的,比如,一個(gè)包頭的描述符(packet descriptor metadata)。但同時(shí)也是非常龐大和復雜,比如包體的信息、路由表和隊列管理的數據結構。舉例來(lái)說(shuō),開(kāi)發(fā)者在微引擎中定義多個(gè)線(xiàn)程共享的變量時(shí),應最先考慮使用全局寄存器,但有時(shí)全局寄存器的容量有限,可以考慮Local Memory。多微引擎共享的變量存放在SRAM中,而Dispatch Loop變量存放在便(Scartch pad)中。不同數據結構定義和分配的不同策略都會(huì )對系統性能產(chǎn)生較大的影響。

(3)分組調度

網(wǎng)絡(luò )處理器是典型的RISC內核的并行實(shí)時(shí)處理結構,同時(shí)存在著(zhù)大量共享資源,比如內存、總線(xiàn)、SHAC等一些特殊硬件單元,這就必然需要系統對這些共享資源進(jìn)行調度和仲裁。未來(lái)計算機網(wǎng)絡(luò )的趨勢是能夠提供多種不同服務(wù),支持多種不同應用需求。提高網(wǎng)絡(luò )集成服務(wù)支持能力的一個(gè)很重要問(wèn)題就是分組調度算法問(wèn)題,分組隊列的管理還是實(shí)現QoS的基礎。

分組調度及處理算法的核心是鏈路層調度器的算法設計。在一般分組處理的存儲-轉發(fā)過(guò)程中,設計調度器必然要對分組處理時(shí)間進(jìn)行預測,但處理器在調度器中要精確的獲取并更新這些虛擬時(shí)間是十分困難的。這就要根據具體的應用,通過(guò)研究數據包的長(cháng)度、數據類(lèi)型、處理方式與處理時(shí)間之間的關(guān)系,提出合理的數據包處理時(shí)間預測方案,選擇適當的分組調度算法,達到比較好的系統性能。

5 網(wǎng)絡(luò )處理器面臨的挑戰

當今的網(wǎng)絡(luò )處理咕嘟仍面臨著(zhù)許多挑戰,例如采用什么技術(shù)擴展,如何簡(jiǎn)化編程模式等問(wèn)題都需要進(jìn)一步研究。數據平面上運行的軟件開(kāi)發(fā)通常僅提供微代碼匯編和低通讀C語(yǔ)言技術(shù),這大大限制了網(wǎng)絡(luò )處理器技術(shù)的發(fā)展和應用。因為缺乏高效的軟件開(kāi)發(fā)支持,軟件問(wèn)題已經(jīng)成為網(wǎng)絡(luò )處理器應用的一大障礙,必須研究面向網(wǎng)絡(luò )處理器系統的高效系統軟件平臺。

網(wǎng)絡(luò )處理器微引擎指令的提供非常有限,僅有不足40條,這遠遠不能滿(mǎn)足開(kāi)發(fā)人員的需求,僅用它去構造一些復雜的網(wǎng)絡(luò )處理任務(wù)不太現實(shí)。在Intel提出的網(wǎng)絡(luò )處理器開(kāi)發(fā)框架中,給出了一些非常底層的數據平面的函數庫,還給開(kāi)發(fā)者提供了一些面向特定應用的更優(yōu)化的接口和宏指令集。

目前,開(kāi)發(fā)環(huán)境主要由各NP生產(chǎn)廠(chǎng)商提供,微引擎上運行的數據平面只提供微代碼匯編和C語(yǔ)言編譯器支持,有代表性的產(chǎn)品是Intel Workbench??刂破矫嫔系奶幚砥鲀群?,普遍采用Linux或VxWorks作為操作系統。兩個(gè)平面的開(kāi)發(fā)相對獨立,沒(méi)有一種統一的開(kāi)發(fā)手段,這給開(kāi)發(fā)者帶來(lái)了很大的不便。目前,也沒(méi)有特別針對網(wǎng)絡(luò )處理特點(diǎn)的操作系統,常見(jiàn)的RTOS由于并不是特別針對網(wǎng)絡(luò )處理器的操作系統,因此并不能充分發(fā)揮網(wǎng)絡(luò )處理器的潛能。

為了滿(mǎn)足下一代Internet服務(wù)需求,網(wǎng)絡(luò )處理器除了要滿(mǎn)足局域網(wǎng)和廣域網(wǎng)對帶寬的需求增長(cháng)外,還要能夠以線(xiàn)速對數據、語(yǔ)音以及視頻信號進(jìn)行排序和處理。網(wǎng)絡(luò )處理器官方論壇(Network Processing Forum)的成立,加快了網(wǎng)絡(luò )處理器接口標準的制定和軟件發(fā)展的步伐。

結語(yǔ)

網(wǎng)絡(luò )處理器通過(guò)十分靈活的體系結構和強大的處理能力,將可編程能力和ASIC的處理能力有機的結合在一起,它的出現是網(wǎng)絡(luò )設備開(kāi)發(fā)的一次革命,它的發(fā)展必須對傳統ASIC和MPU造成前所未有的沖擊。在今后幾年里,網(wǎng)絡(luò )處理器將有著(zhù)非常巨大的發(fā)展空間。本文以Intel IXP2400網(wǎng)絡(luò )處理器為例,全面討論了網(wǎng)絡(luò )處理器軟件開(kāi)發(fā)技術(shù),并提出網(wǎng)絡(luò )處理器軟件開(kāi)發(fā)中的關(guān)鍵環(huán)節及面臨的主要問(wèn)題和挑戰。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>