999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

面向網絡處理器的軟件組件技術研究

2008-01-01 00:00:00
計算機應用研究 2008年2期

摘要:基于網絡處理器的系統是一種復雜的嵌入式系統,具有實時#65380;資源受限和異構的特點。組件技術可以實現有效的軟件開發,但是通用的組件技術不適合基于網絡處理器的系統。研究將組件技術應用于基于網絡處理器的系統的問題,分析了硬件系統結構和目標應用的特點,提出了組件模式,定義了框架服務,并討論了軟件性能工程。其組件技術也適用于其他類似的多核系統。

關鍵詞:組件模式; 組件框架; 網絡處理器; 軟件性能工程

中圖分類號:TP311.5文獻標志碼:A

文章編號:1001-3695(2008)02-0432-04

0引言

網絡處理器是一種SOC多核系統,由多個異構的處理和存儲單元構成,用來完成網絡設備(路由器#65380;防火墻等)數據層面功能,工作在性能要求嚴格的網絡環境中。網絡處理器用來克服通用處理器在性能上的不足和ASIC方案的不靈活性。除了靈活地支持各種協議和服務,網絡處理器提供幾十Gbps的網絡處理性能。嵌入的RISC處理核提供了靈活性,而高性能是通過仔細設計的體系結構來達到的,支持多處理和多線程。由于硬件體系結構的復雜性和經常變化,網絡處理器上的軟件開發是十分困難的。不過,基于RISC的硬件為開放的軟件體系結構提供了基礎。

組件技術可以實現有效的軟件開發,使用組件技術不僅使軟件有很好的結構,還可以實現軟件復用。組件技術已經被用來解決多種領域的需求,最通用的組件技術包括Sun Enterprise Java Beans和Java Beans, Microsoft的COM和.NET以及OMG的CORBA標準實現。這些技術用于桌面和分布式的企業應用。但是,基于網絡處理器的系統是一種復雜的嵌入式系統:異構的處理單元需要不同的軟件體系結構。

本文以一種典型的網絡處理器——IXP2400為例,說明基于網絡處理器的系統對組件技術的要求,改進現有的軟件結構和中間件,使軟件性能工程得以實施。

1相關研究

PECT(prediction-enabled component technology)包括一個結構框架和推理框架,推理框架用來分析運行時行為。PECT是一種抽象的技術,需要一種實際的組件技術為基礎。Koala組件技術是為消費者而設計的,適用于小的資源受限的嵌入式系統。Robocop的目標是為大量的嵌入式應用的中間件定義一個開放的基于組件的框架,支持多個非功能屬性,包括時間#65380;性能#65380;可靠性#65380;可用性和安全性。Robocop還提供了一系列的工具和方法來實現組合時對非功能屬性的計算。Rubus組件模式也是為小的#65380;實時的資源受限的系統而定義的,它與Rubus OS緊密結合在一起。PBO使用端口自動機理論,適合于控制系統,系統由主動和獨立的對象以pipes-and-filters模式連接而成。PBO實現了時間線和行為模式的分析并保證了可預測的行為。PECOS是為響應嵌入式設備設計的,通過感應器收集和分析數據,并通過控制器響應。

這些研究中多數都是針對小型嵌入式系統的。在這些系統中,資源限制和實時性能是首要考慮的問題;另外,均考慮到了組件的非功能屬性,并期望系統具有確定性的行為。但是,基于網絡處理器的系統是大型的#65380;復雜的嵌入式系統,互操作性和復雜性是更加需要考慮的問題。

2基于網絡處理器的系統

2.1一種典型的網絡處理器

IXP2400是Intel公司設計的一種典型的網絡處理器,由一個控制處理器和多個包處理引擎組成。這是一種典型的多核結構,即一個控制處理核和多個數據處理核。不同的處理核有不同的指令集,對特定的任務進行優化。網絡處理器的應用空間通常被劃分為兩個部分,即控制部分和數據處理部分(通常是不停頓的)。不同的應用空間有不同的編程模式#65380;語言和OS支持。例如,在控制核上通常運行著一個嵌入式的OS,而在數據處理核上沒有OS,因為控制工作不如數據處理工作那么緊急,在數據處理核上使用OS會帶來額外的開銷。

在IXP2400中,一個包處理引擎相關的資源由硬件線程進行劃分,每個硬件線程一次接收和處理一個數據包。硬件線程用來隱藏內存訪問的延遲。當一個線程必須等待一個先前的內存操作完成后才能繼續運行時,這個內存操作被稱為是依賴的內存操作。在單線程環境中,處理器必須等待依賴的內存操作完成,等待使處理器處于空閑狀態。在多線程環境中,一個線程將它的內存操作的延遲隱藏在其他線程的計算時間中。對一個定義好的任務,性能與這個任務使用的硬件線程的數目密切相關。

2.2網絡應用

網絡處理器處理數據層面的數據包,包括一些邏輯上獨立的功能模塊,如IPv4/v6 forward#65380;Meter#65380;Shaper等。應用模式可以由以下幾個元素來定義:a)功能模塊是施加在數據包上的邏輯上獨立的操作;b)拓撲表示哪些模塊以何種方式連接在一起實現邏輯上有意義的功能;c)能力指模塊的性能限制;d)配置參數用來對模塊進行配置;e)元數據包括關于數據包的信息,在模塊之間進行交換和修改。圖1表示了數據在模塊之間傳輸的過程。

通常,功能模塊被映射到一個或幾個包處理引擎的一個或多個硬件線程上,以流水線的方式組織。圖2表示了流水線和并發線程。

3基于組件的軟件體系結構

對一個特定的網絡處理器系列,一個統一的組件技術是必要的:a)組件技術提供了軟件復用;b)一些硬件方面的特征可以包含在組件模式中,這有利于軟件最大限度地使用硬件提供的能力;3)統一的組件技術對評價硬件體系結構的設計是有益的。組件技術包括組件模式和組件框架。組件框架為組件組合和運行提供服務,組件框架和OS(如果有的話)構成了系統中間件。

圖3表示了在網絡處理器的環境中,基于組件的軟件體系結構。從組件技術的角度來看,包括運行時環境#65380;組件和應用。從功能的角度來看,控制組件和數據組件組成了功能對來完成邏輯上獨立的數據層面功能??刂平M件對數據組件進行控制和配置。在控制處理核上OS提供了部分服務,包括管理系統中的部分內存資源,并為控制組件和數據組件分配資源;完成配置和重配置;執行控制;QoS管理(如為數據處理產生統計數據,監視數據處理的狀態等);維護共享信息;與外部應用互操作。組件需要的其他服務由組件框架完成。

4組件模式

一個組件模式包含接口和屬性。組件接口表示如圖4所示。數據端口用來連接組件到包處理路徑中。組件通過配置/控制接口和資源接口與框架交互。本文把數據處理核上的組件定義為軟件模塊和相關的硬件線程。組件有名字和ID#65380;功能和非功能屬性。ID包含表明組件類型的信息,例如是數據處理組件或控制組件。非功能屬性描述了時間#65380;資源消耗#65380;可靠性和硬件依賴,用來預測最終系統的性能和行為。

線程相關的屬性是非功能屬性,描述了組件需要的計算資源。線程屬性中兩個關鍵的元素是組件封裝的線程數目和線程切換的時機。一般來說,有兩個原因可能會導致線程切換:一個是當線程遇到一個長的內存操作時;另一個是當不同的線程處理的數據包需要維持順序時。包處理延遲與組件封裝的線程數目有關,當一個組件封裝了線程以后,它就不再是靜態的代碼,靜態的代碼表明了在包上施加的操作和包處理路徑。因為多個包是并行處理的,在一個包處理完之前,組件代碼已經執行了多次。根據代碼執行的路徑(不同于包處理路徑),可以得到一個包在某個階段到底耗費了多長時間。因此一個組件有它的執行周期,組件的執行周期開始于它的第一個線程接收到第一個數據包時,結束于第一個線程開始接收下一個數據包時。組件有WCET(worst case execution time)和CCET(common case execution time),分別表示在最壞情況和通常情況下組件的執行周期時間。設計組件的目標是選擇合適數目的線程來使處理器的利用率達到最大,并使WCET和CCET最小。

在數據處理核上,一個理想的線程應封裝m個線程,使組件的吞吐率達到最大。組件的吞吐率=1/(組件的CCET/m)。其中:組件的CCET=所有m個線程的計算時間+所有m個線程的空閑時間。線程數目m的值由組件代碼中計算和內存操作的分布來決定。如果組件代碼主要由長的計算分片組成,則當某個線程的內存操作完成時,線程無法繼續,因為處理器還在處理其他線程的計算部分。在這種情況下,一個包處理任務花費在計算上的時間更多,組件應封裝較少的線程來減少組件的CCET。如果組件代碼主要由短的計算分片組成,則當所有的線程完成了它們的計算任務后,某個線程的內存操作尚未返回。如果線程還需要維持包處理的順序,則處理器在內存操作返回之前處于空閑狀態。在這種情況下,組件要封裝較多的線程來提高處理器的利用率。組件包含的非功能屬性包括:

a)組件代碼大小;b)組件代碼中包含的包處理路徑以及各條路徑包含的指令數;c)計算分片和依賴的內存操作的分布情況;d)組件封裝的線程數目;e)WCET和CCET;f)共享的內存資源,即帶寬和容量#65380;讀/寫操作的統計等;g)硬件依賴,編譯器和平臺。

5框架和服務

框架提供靜態和動態的服務:框架提供的靜態服務主要是組件組合,相應的框架稱為組合框架,用來建立系統。運行時框架提供動態服務,包括系統的動態重配置#65380;內存管理和通信等。組合框架和運行時框架可以是獨立的或合并的,為了使運行時框架占用盡量少的資源,運行時框架包含較少的組合功能來支持動態重配置。對網絡處理器這樣的多核系統,需要兩種不同的框架,一個是控制處理核框架;另一個是數據處理核框架,多個數據處理核共用同一個框架。

5.1建立系統

應用是通過對組件的組合(圖5)來建立的,組件在多個方面進行組合,包括功能#65380;時間和數據結構。系統建立的過程如下:

a)用戶產生配置文件。配置文件列出了系統建立需要的組件和組件配置信息,說明組件連接的拓撲,以及整個系統的配置信息。

b)組合框架對配置文件進行分析,得到關于資源和服務的需求,如相互連接的組件共享的緩沖區。

c)框架為應用選擇合適的組件,檢查組件的非功能屬性組合后的結果是否滿足應用的需要,并分配資源。

d)產生組件實例,配置和初始化組件。

e)初始化系統參數。

f)為最終系統產生glue code。

配置文件

//components

IPv4

type=\"uint32\" value=\"2048\"/>

……

……

//component binding

resource=\"Ring buffer ID=5\">

……

//resources and environment

……

……

//execution and schedule

……

……

……

//performance

……

……

配置文件處理器

配置文件處理器是對配置文件進行處理的子系統,通常是框架提供的靜態服務,為了支持動態重配置,運行時框架也需要對新的配置進行處理。其代碼類似于如下形式:

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

參數化運行時框架

運行時系統包括通過系統建立形成的組件組合和運行時框架。運行時框架維護一些組件間共享的信息。例如框架定義和維護基本的元數據結構。對于不同的應用,元數據結構可能不同,可以將元數據作為運行時框架的參數,并在配置文件中進行說明,系統啟動時使用配置文件中的參數建立運行時框架。

運行時框架中維護的共享信息包括緩沖區大小#65380;運行時組件名字和ID等??蚣茇撠煂蚕硇畔⒌拇鎯?65380;增加#65380;修改#65380;刪除等操作,并在不同的框架間交換信息。框架還定義了在框架間實現通信的消息的格式和語義。

5.2內存管理

由于存在多種不同類型的存儲單元,而且對各種內存單元有不同的使用方式,對內存進行管理是一件十分復雜的任務。

內存可以用于存儲數據包的控制部分或負載部分。具體來說,包頭數據多用于控制目的,而包負載是純的數據部分,通常不作任何修改。控制數據在包處理的過程中通常要讀寫多次,而包負載只在接收和轉發時各讀寫一次。靜態內存管理可以避免動態管理的開銷,如內存分配延遲的不確定性,但是,在網絡應用中動態內存管理是必要的。例如:當一個新的網絡連接建立時,連接相關的信息保存起來,而當數據傳輸完畢要取消連接,并釋放連接信息占用的內存空間。另外,由于不同的處理核使用不同的地址空間,當它們共享內存時,需要交換信息來達到相同的語義。為了達到內存分配性能(確定性和延遲),需要設計專門的內存管理器對系統中存在的多種不同類型的內存單元進行管理,根據系統中各種數據結構對內存空間的需求,實現對內存塊的分配#65380;釋放#65380;回收和合并等操作。

圖6表示了物理內存在OS和專門的內存管理器之間的劃分。對內存空間的管理要根據應用數據的類型和數據對性能的需求來決定。其中:應用數據的類型包括數據結構#65380;結構的大小和施加在結構上的操作等;數據對性能的要求包括分配的確定性和分配的延遲等。根據這兩個方面的信息為應用程序數據分配內存段,在一個大的內存段內部,使用專門的內存管理器進行進一步的管理。

控制處理核使用虛擬的地址空間,而數據處理核使用物理地址空間。當控制處理核分配了共享的內存空間后,需要通知數據處理核。使用專門的內存管理器可以用非常簡單的消息進行通知,并且避免地址變換的過程。

5.3通信

組件ID可以用來標志通信的端點。一個運行時系統有名字空間,一個組件在這個空間中有惟一的ID。一個簡單的方法是將整個名字空間劃分為兩個部分,每部分包含有限個ID來標志數據處理組件或控制組件。多個組件可以完成相同的功能,為了表示各個不同的組件,長的ID是需要的,在運行時系統中,需要將長的ID映射到短的ID來減少通信開銷。

運行在不同的框架中的組件需要進行通信,框架提供相應的通信機制。采用消息機制來完成框架間通信,因為消息機制比網絡協議占用較少的資源。所有需要傳送給另一個框架的消息均被收集起來集中路由,根據消息中提供的ID,框架將消息路由到正確的目的。在控制處理核上,消息與單個的組件聯系,每個組件有一個或多個與它聯系的消息隊列;而在數據處理核上,為了降低隊列帶來的資源和處理開銷,所有的處理核共用一個隊列來接收從控制處理核發送的消息。

6結束語

本文描述了將組件技術應用于網絡處理器環境的相關問題,包括硬件體系結構和應用的特點。與小型的資源受限的嵌入式系統不同,組件技術用來克服硬件的復雜性。為了支持軟件性能工程,組件模式應支持非功能屬性,在網絡處理器的環境中,線程屬性是一種重要的非功能屬性,它一方面描述了組件對計算資源的調度屬性;另一方面體現了組件執行的性能屬性。在網絡處理器這樣的多核系統中,兩種不同的處理單元分別用來完成控制和數據處理的任務,這些任務對性能有不同的要求,需要不同的框架服務??蚣馨ńM合框架和運行時框架,為了支持動態重配置,運行時框架也提供一定的組合功能。系統建立通過解釋和處理配置文件完成,簡化了系統開發的過程,框架內置的性能模型也使軟件性能工程得以實施。內存管理使用了專門的內存管理器來實現確定性的內存分配,方便不同的處理單元對共享內存的使用。另外,不同的框架之間需要進行通信,集中路由降低了通信的復雜性。組件技術是一種很好的解決復雜多核系統開發問題的方法,筆者還需要更進一步研究計算模式和性能模型,并評估框架開銷。

參考文獻:

[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]LUNDBCK K L, LUNDBCK 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, ARVALO 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.

“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”

主站蜘蛛池模板: 亚洲三级网站| 国产精品无码AV片在线观看播放| аⅴ资源中文在线天堂| 国产亚洲日韩av在线| 免费a在线观看播放| 日本黄色不卡视频| 欧美午夜性视频| 97se亚洲综合在线天天| 欧美一级在线播放| 国产精品久久久久鬼色| 国产高清毛片| 亚洲男人的天堂久久香蕉网| 亚洲美女高潮久久久久久久| 福利一区在线| 国产极品美女在线| 一级做a爰片久久毛片毛片| 国产精品成人一区二区不卡| 亚洲精品va| 91色在线观看| 亚洲一区第一页| 亚洲妓女综合网995久久| 国产丝袜丝视频在线观看| 亚洲日韩精品无码专区97| 国产黄在线观看| 四虎影视无码永久免费观看| 97在线公开视频| 亚洲AV无码久久精品色欲| 99久久国产综合精品2020| 国产亚洲美日韩AV中文字幕无码成人| 国产成人精品一区二区| 无码国产偷倩在线播放老年人 | 亚洲天堂首页| …亚洲 欧洲 另类 春色| 成年人久久黄色网站| 亚洲一区二区日韩欧美gif| 久久国产高潮流白浆免费观看| 好紧太爽了视频免费无码| 亚洲精品不卡午夜精品| 在线日韩日本国产亚洲| 91在线无码精品秘九色APP| 日韩欧美国产精品| 日韩欧美91| 亚洲日韩国产精品无码专区| 丁香婷婷激情网| 亚洲精品无码AⅤ片青青在线观看| 亚洲欧美日韩中文字幕在线一区| 福利姬国产精品一区在线| 无码AV日韩一二三区| 91精品国产自产91精品资源| AV在线麻免费观看网站| 精品国产Av电影无码久久久| 欧美天堂在线| 91青青草视频在线观看的| 亚洲午夜天堂| h视频在线播放| 精品国产Ⅴ无码大片在线观看81| 亚洲欧美另类中文字幕| 久久精品人人做人人综合试看| 亚洲嫩模喷白浆| 亚洲日韩精品欧美中文字幕| 激情無極限的亚洲一区免费| 强乱中文字幕在线播放不卡| 91精品啪在线观看国产60岁| 在线观看亚洲成人| 免费看a级毛片| 尤物在线观看乱码| 亚洲人成影视在线观看| 国产成人成人一区二区| 尤物在线观看乱码| 99热这里只有精品久久免费| 成人毛片免费观看| 久久综合九色综合97网| 91亚洲免费| 国产亚洲视频中文字幕视频| 波多野结衣的av一区二区三区| 国产一区二区三区免费观看| 一级毛片在线播放免费| AV无码无在线观看免费| 欧美a在线视频| 亚洲成人高清无码| 精品少妇人妻av无码久久| 国产精品极品美女自在线网站|