摘要:基于網(wǎng)絡(luò)處理器的系統(tǒng)是一種復(fù)雜的嵌入式系統(tǒng),具有實(shí)時(shí)#65380;資源受限和異構(gòu)的特點(diǎn)。組件技術(shù)可以實(shí)現(xiàn)有效的軟件開發(fā),但是通用的組件技術(shù)不適合基于網(wǎng)絡(luò)處理器的系統(tǒng)。研究將組件技術(shù)應(yīng)用于基于網(wǎng)絡(luò)處理器的系統(tǒng)的問題,分析了硬件系統(tǒng)結(jié)構(gòu)和目標(biāo)應(yīng)用的特點(diǎn),提出了組件模式,定義了框架服務(wù),并討論了軟件性能工程。其組件技術(shù)也適用于其他類似的多核系統(tǒng)。
關(guān)鍵詞:組件模式; 組件框架; 網(wǎng)絡(luò)處理器; 軟件性能工程
中圖分類號(hào):TP311.5文獻(xiàn)標(biāo)志碼:A
文章編號(hào):1001-3695(2008)02-0432-04
0引言
網(wǎng)絡(luò)處理器是一種SOC多核系統(tǒng),由多個(gè)異構(gòu)的處理和存儲(chǔ)單元構(gòu)成,用來完成網(wǎng)絡(luò)設(shè)備(路由器#65380;防火墻等)數(shù)據(jù)層面功能,工作在性能要求嚴(yán)格的網(wǎng)絡(luò)環(huán)境中。網(wǎng)絡(luò)處理器用來克服通用處理器在性能上的不足和ASIC方案的不靈活性。除了靈活地支持各種協(xié)議和服務(wù),網(wǎng)絡(luò)處理器提供幾十Gbps的網(wǎng)絡(luò)處理性能。嵌入的RISC處理核提供了靈活性,而高性能是通過仔細(xì)設(shè)計(jì)的體系結(jié)構(gòu)來達(dá)到的,支持多處理和多線程。由于硬件體系結(jié)構(gòu)的復(fù)雜性和經(jīng)常變化,網(wǎng)絡(luò)處理器上的軟件開發(fā)是十分困難的。不過,基于RISC的硬件為開放的軟件體系結(jié)構(gòu)提供了基礎(chǔ)。
組件技術(shù)可以實(shí)現(xiàn)有效的軟件開發(fā),使用組件技術(shù)不僅使軟件有很好的結(jié)構(gòu),還可以實(shí)現(xiàn)軟件復(fù)用。組件技術(shù)已經(jīng)被用來解決多種領(lǐng)域的需求,最通用的組件技術(shù)包括Sun Enterprise Java Beans和Java Beans, Microsoft的COM和.NET以及OMG的CORBA標(biāo)準(zhǔn)實(shí)現(xiàn)。這些技術(shù)用于桌面和分布式的企業(yè)應(yīng)用。但是,基于網(wǎng)絡(luò)處理器的系統(tǒng)是一種復(fù)雜的嵌入式系統(tǒng):異構(gòu)的處理單元需要不同的軟件體系結(jié)構(gòu)。
本文以一種典型的網(wǎng)絡(luò)處理器——IXP2400為例,說明基于網(wǎng)絡(luò)處理器的系統(tǒng)對(duì)組件技術(shù)的要求,改進(jìn)現(xiàn)有的軟件結(jié)構(gòu)和中間件,使軟件性能工程得以實(shí)施。
1相關(guān)研究
PECT(prediction-enabled component technology)包括一個(gè)結(jié)構(gòu)框架和推理框架,推理框架用來分析運(yùn)行時(shí)行為。PECT是一種抽象的技術(shù),需要一種實(shí)際的組件技術(shù)為基礎(chǔ)。Koala組件技術(shù)是為消費(fèi)者而設(shè)計(jì)的,適用于小的資源受限的嵌入式系統(tǒng)。Robocop的目標(biāo)是為大量的嵌入式應(yīng)用的中間件定義一個(gè)開放的基于組件的框架,支持多個(gè)非功能屬性,包括時(shí)間#65380;性能#65380;可靠性#65380;可用性和安全性。Robocop還提供了一系列的工具和方法來實(shí)現(xiàn)組合時(shí)對(duì)非功能屬性的計(jì)算。Rubus組件模式也是為小的#65380;實(shí)時(shí)的資源受限的系統(tǒng)而定義的,它與Rubus OS緊密結(jié)合在一起。PBO使用端口自動(dòng)機(jī)理論,適合于控制系統(tǒng),系統(tǒng)由主動(dòng)和獨(dú)立的對(duì)象以pipes-and-filters模式連接而成。PBO實(shí)現(xiàn)了時(shí)間線和行為模式的分析并保證了可預(yù)測(cè)的行為。PECOS是為響應(yīng)嵌入式設(shè)備設(shè)計(jì)的,通過感應(yīng)器收集和分析數(shù)據(jù),并通過控制器響應(yīng)。
這些研究中多數(shù)都是針對(duì)小型嵌入式系統(tǒng)的。在這些系統(tǒng)中,資源限制和實(shí)時(shí)性能是首要考慮的問題;另外,均考慮到了組件的非功能屬性,并期望系統(tǒng)具有確定性的行為。但是,基于網(wǎng)絡(luò)處理器的系統(tǒng)是大型的#65380;復(fù)雜的嵌入式系統(tǒng),互操作性和復(fù)雜性是更加需要考慮的問題。
2基于網(wǎng)絡(luò)處理器的系統(tǒng)
2.1一種典型的網(wǎng)絡(luò)處理器
IXP2400是Intel公司設(shè)計(jì)的一種典型的網(wǎng)絡(luò)處理器,由一個(gè)控制處理器和多個(gè)包處理引擎組成。這是一種典型的多核結(jié)構(gòu),即一個(gè)控制處理核和多個(gè)數(shù)據(jù)處理核。不同的處理核有不同的指令集,對(duì)特定的任務(wù)進(jìn)行優(yōu)化。網(wǎng)絡(luò)處理器的應(yīng)用空間通常被劃分為兩個(gè)部分,即控制部分和數(shù)據(jù)處理部分(通常是不停頓的)。不同的應(yīng)用空間有不同的編程模式#65380;語言和OS支持。例如,在控制核上通常運(yùn)行著一個(gè)嵌入式的OS,而在數(shù)據(jù)處理核上沒有OS,因?yàn)榭刂乒ぷ鞑蝗鐢?shù)據(jù)處理工作那么緊急,在數(shù)據(jù)處理核上使用OS會(huì)帶來額外的開銷。
在IXP2400中,一個(gè)包處理引擎相關(guān)的資源由硬件線程進(jìn)行劃分,每個(gè)硬件線程一次接收和處理一個(gè)數(shù)據(jù)包。硬件線程用來隱藏內(nèi)存訪問的延遲。當(dāng)一個(gè)線程必須等待一個(gè)先前的內(nèi)存操作完成后才能繼續(xù)運(yùn)行時(shí),這個(gè)內(nèi)存操作被稱為是依賴的內(nèi)存操作。在單線程環(huán)境中,處理器必須等待依賴的內(nèi)存操作完成,等待使處理器處于空閑狀態(tài)。在多線程環(huán)境中,一個(gè)線程將它的內(nèi)存操作的延遲隱藏在其他線程的計(jì)算時(shí)間中。對(duì)一個(gè)定義好的任務(wù),性能與這個(gè)任務(wù)使用的硬件線程的數(shù)目密切相關(guān)。
2.2網(wǎng)絡(luò)應(yīng)用
網(wǎng)絡(luò)處理器處理數(shù)據(jù)層面的數(shù)據(jù)包,包括一些邏輯上獨(dú)立的功能模塊,如IPv4/v6 forward#65380;Meter#65380;Shaper等。應(yīng)用模式可以由以下幾個(gè)元素來定義:a)功能模塊是施加在數(shù)據(jù)包上的邏輯上獨(dú)立的操作;b)拓?fù)浔硎灸男┠K以何種方式連接在一起實(shí)現(xiàn)邏輯上有意義的功能;c)能力指模塊的性能限制;d)配置參數(shù)用來對(duì)模塊進(jìn)行配置;e)元數(shù)據(jù)包括關(guān)于數(shù)據(jù)包的信息,在模塊之間進(jìn)行交換和修改。圖1表示了數(shù)據(jù)在模塊之間傳輸?shù)倪^程。
通常,功能模塊被映射到一個(gè)或幾個(gè)包處理引擎的一個(gè)或多個(gè)硬件線程上,以流水線的方式組織。圖2表示了流水線和并發(fā)線程。
3基于組件的軟件體系結(jié)構(gòu)
對(duì)一個(gè)特定的網(wǎng)絡(luò)處理器系列,一個(gè)統(tǒng)一的組件技術(shù)是必要的:a)組件技術(shù)提供了軟件復(fù)用;b)一些硬件方面的特征可以包含在組件模式中,這有利于軟件最大限度地使用硬件提供的能力;3)統(tǒng)一的組件技術(shù)對(duì)評(píng)價(jià)硬件體系結(jié)構(gòu)的設(shè)計(jì)是有益的。組件技術(shù)包括組件模式和組件框架。組件框架為組件組合和運(yùn)行提供服務(wù),組件框架和OS(如果有的話)構(gòu)成了系統(tǒng)中間件。
圖3表示了在網(wǎng)絡(luò)處理器的環(huán)境中,基于組件的軟件體系結(jié)構(gòu)。從組件技術(shù)的角度來看,包括運(yùn)行時(shí)環(huán)境#65380;組件和應(yīng)用。從功能的角度來看,控制組件和數(shù)據(jù)組件組成了功能對(duì)來完成邏輯上獨(dú)立的數(shù)據(jù)層面功能。控制組件對(duì)數(shù)據(jù)組件進(jìn)行控制和配置。在控制處理核上OS提供了部分服務(wù),包括管理系統(tǒng)中的部分內(nèi)存資源,并為控制組件和數(shù)據(jù)組件分配資源;完成配置和重配置;執(zhí)行控制;QoS管理(如為數(shù)據(jù)處理產(chǎn)生統(tǒng)計(jì)數(shù)據(jù),監(jiān)視數(shù)據(jù)處理的狀態(tài)等);維護(hù)共享信息;與外部應(yīng)用互操作。組件需要的其他服務(wù)由組件框架完成。
4組件模式
一個(gè)組件模式包含接口和屬性。組件接口表示如圖4所示。數(shù)據(jù)端口用來連接組件到包處理路徑中。組件通過配置/控制接口和資源接口與框架交互。本文把數(shù)據(jù)處理核上的組件定義為軟件模塊和相關(guān)的硬件線程。組件有名字和ID#65380;功能和非功能屬性。ID包含表明組件類型的信息,例如是數(shù)據(jù)處理組件或控制組件。非功能屬性描述了時(shí)間#65380;資源消耗#65380;可靠性和硬件依賴,用來預(yù)測(cè)最終系統(tǒng)的性能和行為。
線程相關(guān)的屬性是非功能屬性,描述了組件需要的計(jì)算資源。線程屬性中兩個(gè)關(guān)鍵的元素是組件封裝的線程數(shù)目和線程切換的時(shí)機(jī)。一般來說,有兩個(gè)原因可能會(huì)導(dǎo)致線程切換:一個(gè)是當(dāng)線程遇到一個(gè)長的內(nèi)存操作時(shí);另一個(gè)是當(dāng)不同的線程處理的數(shù)據(jù)包需要維持順序時(shí)。包處理延遲與組件封裝的線程數(shù)目有關(guān),當(dāng)一個(gè)組件封裝了線程以后,它就不再是靜態(tài)的代碼,靜態(tài)的代碼表明了在包上施加的操作和包處理路徑。因?yàn)槎鄠€(gè)包是并行處理的,在一個(gè)包處理完之前,組件代碼已經(jīng)執(zhí)行了多次。根據(jù)代碼執(zhí)行的路徑(不同于包處理路徑),可以得到一個(gè)包在某個(gè)階段到底耗費(fèi)了多長時(shí)間。因此一個(gè)組件有它的執(zhí)行周期,組件的執(zhí)行周期開始于它的第一個(gè)線程接收到第一個(gè)數(shù)據(jù)包時(shí),結(jié)束于第一個(gè)線程開始接收下一個(gè)數(shù)據(jù)包時(shí)。組件有WCET(worst case execution time)和CCET(common case execution time),分別表示在最壞情況和通常情況下組件的執(zhí)行周期時(shí)間。設(shè)計(jì)組件的目標(biāo)是選擇合適數(shù)目的線程來使處理器的利用率達(dá)到最大,并使WCET和CCET最小。
在數(shù)據(jù)處理核上,一個(gè)理想的線程應(yīng)封裝m個(gè)線程,使組件的吞吐率達(dá)到最大。組件的吞吐率=1/(組件的CCET/m)。其中:組件的CCET=所有m個(gè)線程的計(jì)算時(shí)間+所有m個(gè)線程的空閑時(shí)間。線程數(shù)目m的值由組件代碼中計(jì)算和內(nèi)存操作的分布來決定。如果組件代碼主要由長的計(jì)算分片組成,則當(dāng)某個(gè)線程的內(nèi)存操作完成時(shí),線程無法繼續(xù),因?yàn)樘幚砥鬟€在處理其他線程的計(jì)算部分。在這種情況下,一個(gè)包處理任務(wù)花費(fèi)在計(jì)算上的時(shí)間更多,組件應(yīng)封裝較少的線程來減少組件的CCET。如果組件代碼主要由短的計(jì)算分片組成,則當(dāng)所有的線程完成了它們的計(jì)算任務(wù)后,某個(gè)線程的內(nèi)存操作尚未返回。如果線程還需要維持包處理的順序,則處理器在內(nèi)存操作返回之前處于空閑狀態(tài)。在這種情況下,組件要封裝較多的線程來提高處理器的利用率。組件包含的非功能屬性包括:
a)組件代碼大小;b)組件代碼中包含的包處理路徑以及各條路徑包含的指令數(shù);c)計(jì)算分片和依賴的內(nèi)存操作的分布情況;d)組件封裝的線程數(shù)目;e)WCET和CCET;f)共享的內(nèi)存資源,即帶寬和容量#65380;讀/寫操作的統(tǒng)計(jì)等;g)硬件依賴,編譯器和平臺(tái)。
5框架和服務(wù)
框架提供靜態(tài)和動(dòng)態(tài)的服務(wù):框架提供的靜態(tài)服務(wù)主要是組件組合,相應(yīng)的框架稱為組合框架,用來建立系統(tǒng)。運(yùn)行時(shí)框架提供動(dòng)態(tài)服務(wù),包括系統(tǒng)的動(dòng)態(tài)重配置#65380;內(nèi)存管理和通信等。組合框架和運(yùn)行時(shí)框架可以是獨(dú)立的或合并的,為了使運(yùn)行時(shí)框架占用盡量少的資源,運(yùn)行時(shí)框架包含較少的組合功能來支持動(dòng)態(tài)重配置。對(duì)網(wǎng)絡(luò)處理器這樣的多核系統(tǒng),需要兩種不同的框架,一個(gè)是控制處理核框架;另一個(gè)是數(shù)據(jù)處理核框架,多個(gè)數(shù)據(jù)處理核共用同一個(gè)框架。
5.1建立系統(tǒng)
應(yīng)用是通過對(duì)組件的組合(圖5)來建立的,組件在多個(gè)方面進(jìn)行組合,包括功能#65380;時(shí)間和數(shù)據(jù)結(jié)構(gòu)。系統(tǒng)建立的過程如下:
a)用戶產(chǎn)生配置文件。配置文件列出了系統(tǒng)建立需要的組件和組件配置信息,說明組件連接的拓?fù)洌约罢麄€(gè)系統(tǒng)的配置信息。
b)組合框架對(duì)配置文件進(jìn)行分析,得到關(guān)于資源和服務(wù)的需求,如相互連接的組件共享的緩沖區(qū)。
c)框架為應(yīng)用選擇合適的組件,檢查組件的非功能屬性組合后的結(jié)果是否滿足應(yīng)用的需要,并分配資源。
d)產(chǎn)生組件實(shí)例,配置和初始化組件。
e)初始化系統(tǒng)參數(shù)。
f)為最終系統(tǒng)產(chǎn)生glue code。
配置文件
//components
type=\"uint32\" value=\"2048\"/> …… …… //component binding resource=\"Ring buffer ID=5\"> …… //resources and environment …… …… //execution and schedule …… …… …… //performance …… …… 配置文件處理器 配置文件處理器是對(duì)配置文件進(jìn)行處理的子系統(tǒng),通常是框架提供的靜態(tài)服務(wù),為了支持動(dòng)態(tài)重配置,運(yùn)行時(shí)框架也需要對(duì)新的配置進(jìn)行處理。其代碼類似于如下形式: Check configuration file If there is a new binding Then Create a shared memory segment (e.g. a ring buffer) S Set ipv4_output port to S Set tunnel_input port to S End if 參數(shù)化運(yùn)行時(shí)框架 運(yùn)行時(shí)系統(tǒng)包括通過系統(tǒng)建立形成的組件組合和運(yùn)行時(shí)框架。運(yùn)行時(shí)框架維護(hù)一些組件間共享的信息。例如框架定義和維護(hù)基本的元數(shù)據(jù)結(jié)構(gòu)。對(duì)于不同的應(yīng)用,元數(shù)據(jù)結(jié)構(gòu)可能不同,可以將元數(shù)據(jù)作為運(yùn)行時(shí)框架的參數(shù),并在配置文件中進(jìn)行說明,系統(tǒng)啟動(dòng)時(shí)使用配置文件中的參數(shù)建立運(yùn)行時(shí)框架。 運(yùn)行時(shí)框架中維護(hù)的共享信息包括緩沖區(qū)大小#65380;運(yùn)行時(shí)組件名字和ID等。框架負(fù)責(zé)對(duì)共享信息的存儲(chǔ)#65380;增加#65380;修改#65380;刪除等操作,并在不同的框架間交換信息。框架還定義了在框架間實(shí)現(xiàn)通信的消息的格式和語義。 5.2內(nèi)存管理 由于存在多種不同類型的存儲(chǔ)單元,而且對(duì)各種內(nèi)存單元有不同的使用方式,對(duì)內(nèi)存進(jìn)行管理是一件十分復(fù)雜的任務(wù)。 內(nèi)存可以用于存儲(chǔ)數(shù)據(jù)包的控制部分或負(fù)載部分。具體來說,包頭數(shù)據(jù)多用于控制目的,而包負(fù)載是純的數(shù)據(jù)部分,通常不作任何修改。控制數(shù)據(jù)在包處理的過程中通常要讀寫多次,而包負(fù)載只在接收和轉(zhuǎn)發(fā)時(shí)各讀寫一次。靜態(tài)內(nèi)存管理可以避免動(dòng)態(tài)管理的開銷,如內(nèi)存分配延遲的不確定性,但是,在網(wǎng)絡(luò)應(yīng)用中動(dòng)態(tài)內(nèi)存管理是必要的。例如:當(dāng)一個(gè)新的網(wǎng)絡(luò)連接建立時(shí),連接相關(guān)的信息保存起來,而當(dāng)數(shù)據(jù)傳輸完畢要取消連接,并釋放連接信息占用的內(nèi)存空間。另外,由于不同的處理核使用不同的地址空間,當(dāng)它們共享內(nèi)存時(shí),需要交換信息來達(dá)到相同的語義。為了達(dá)到內(nèi)存分配性能(確定性和延遲),需要設(shè)計(jì)專門的內(nèi)存管理器對(duì)系統(tǒng)中存在的多種不同類型的內(nèi)存單元進(jìn)行管理,根據(jù)系統(tǒng)中各種數(shù)據(jù)結(jié)構(gòu)對(duì)內(nèi)存空間的需求,實(shí)現(xiàn)對(duì)內(nèi)存塊的分配#65380;釋放#65380;回收和合并等操作。 圖6表示了物理內(nèi)存在OS和專門的內(nèi)存管理器之間的劃分。對(duì)內(nèi)存空間的管理要根據(jù)應(yīng)用數(shù)據(jù)的類型和數(shù)據(jù)對(duì)性能的需求來決定。其中:應(yīng)用數(shù)據(jù)的類型包括數(shù)據(jù)結(jié)構(gòu)#65380;結(jié)構(gòu)的大小和施加在結(jié)構(gòu)上的操作等;數(shù)據(jù)對(duì)性能的要求包括分配的確定性和分配的延遲等。根據(jù)這兩個(gè)方面的信息為應(yīng)用程序數(shù)據(jù)分配內(nèi)存段,在一個(gè)大的內(nèi)存段內(nèi)部,使用專門的內(nèi)存管理器進(jìn)行進(jìn)一步的管理。 控制處理核使用虛擬的地址空間,而數(shù)據(jù)處理核使用物理地址空間。當(dāng)控制處理核分配了共享的內(nèi)存空間后,需要通知數(shù)據(jù)處理核。使用專門的內(nèi)存管理器可以用非常簡單的消息進(jìn)行通知,并且避免地址變換的過程。 5.3通信 組件ID可以用來標(biāo)志通信的端點(diǎn)。一個(gè)運(yùn)行時(shí)系統(tǒng)有名字空間,一個(gè)組件在這個(gè)空間中有惟一的ID。一個(gè)簡單的方法是將整個(gè)名字空間劃分為兩個(gè)部分,每部分包含有限個(gè)ID來標(biāo)志數(shù)據(jù)處理組件或控制組件。多個(gè)組件可以完成相同的功能,為了表示各個(gè)不同的組件,長的ID是需要的,在運(yùn)行時(shí)系統(tǒng)中,需要將長的ID映射到短的ID來減少通信開銷。 運(yùn)行在不同的框架中的組件需要進(jìn)行通信,框架提供相應(yīng)的通信機(jī)制。采用消息機(jī)制來完成框架間通信,因?yàn)橄C(jī)制比網(wǎng)絡(luò)協(xié)議占用較少的資源。所有需要傳送給另一個(gè)框架的消息均被收集起來集中路由,根據(jù)消息中提供的ID,框架將消息路由到正確的目的。在控制處理核上,消息與單個(gè)的組件聯(lián)系,每個(gè)組件有一個(gè)或多個(gè)與它聯(lián)系的消息隊(duì)列;而在數(shù)據(jù)處理核上,為了降低隊(duì)列帶來的資源和處理開銷,所有的處理核共用一個(gè)隊(duì)列來接收從控制處理核發(fā)送的消息。 6結(jié)束語 本文描述了將組件技術(shù)應(yīng)用于網(wǎng)絡(luò)處理器環(huán)境的相關(guān)問題,包括硬件體系結(jié)構(gòu)和應(yīng)用的特點(diǎn)。與小型的資源受限的嵌入式系統(tǒng)不同,組件技術(shù)用來克服硬件的復(fù)雜性。為了支持軟件性能工程,組件模式應(yīng)支持非功能屬性,在網(wǎng)絡(luò)處理器的環(huán)境中,線程屬性是一種重要的非功能屬性,它一方面描述了組件對(duì)計(jì)算資源的調(diào)度屬性;另一方面體現(xiàn)了組件執(zhí)行的性能屬性。在網(wǎng)絡(luò)處理器這樣的多核系統(tǒng)中,兩種不同的處理單元分別用來完成控制和數(shù)據(jù)處理的任務(wù),這些任務(wù)對(duì)性能有不同的要求,需要不同的框架服務(wù)。框架包括組合框架和運(yùn)行時(shí)框架,為了支持動(dòng)態(tài)重配置,運(yùn)行時(shí)框架也提供一定的組合功能。系統(tǒng)建立通過解釋和處理配置文件完成,簡化了系統(tǒng)開發(fā)的過程,框架內(nèi)置的性能模型也使軟件性能工程得以實(shí)施。內(nèi)存管理使用了專門的內(nèi)存管理器來實(shí)現(xiàn)確定性的內(nèi)存分配,方便不同的處理單元對(duì)共享內(nèi)存的使用。另外,不同的框架之間需要進(jìn)行通信,集中路由降低了通信的復(fù)雜性。組件技術(shù)是一種很好的解決復(fù)雜多核系統(tǒng)開發(fā)問題的方法,筆者還需要更進(jìn)一步研究計(jì)算模式和性能模型,并評(píng)估框架開銷。 參考文獻(xiàn): [1]ROBOCOP: robust open component based software architecture for configurable devices project-framework concepts[EB/OL].[2002-05].http://www.extra.research.philips.com/-euprojects/robocop/. [2]JONGE M De, MUSKENS J, CHAUDRON M. Scenario-based prediction of run-time resource consumption in component-based software systems[C]//Proc of the 6th ICSE Workshop on Component-based Software Engineering. Portland, Oregon:[s.n.], 2003. [3]LUNDBCK K L, LUNDBCK J, LINDBERG M. Component-based development of dependable real-time applications[EB/OL]. http://www.arcticus.se. [4]STEWART D B. Designing software components for real-time applications[C]//Proc of Embedded Systems Conference. San Francisco, CA:[s.n.], 2001. [5]NIERSTRASZ O, ARVALO G, DUCASSE S. A component model for field devices[C]//Proc of IFIP/ACM Working Conference on Component Deployment table of contents. London: Springer-Verlag, 2002:200-209. [6]WALLNAU K C. A component technology for predictable assembly from certifiable components. technical report, v3[EB/OL].[2003-04].http://www.sei.cmu.edu/publications/documents/03.reports/03tr009.html. [7]Intel Corpration. Intel IXP2400 network processor hardware reference manual[M].[S.l.]: Intel Press, 2003. [8]ERIK J JOHNSON, AARON R KUNZE. IXP2400/2800 programming[M].[S.l.]: Intel Press, 2003:302-305. “本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文”