日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
網(wǎng)絡(luò)處理器軟件開發(fā)模型的研究
網(wǎng)絡(luò)處理器軟件開發(fā)模型的研究
 更新時(shí)間:2008-8-17 16:11:18  點(diǎn)擊數(shù):24
【字體: 字體顏色

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

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

引言

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

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

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

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

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

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

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

IXP2400中的每一個(gè)微引擎其它就是一個(gè)32位RISC處理器,可以由4個(gè)并行硬件線程共享。數(shù)據(jù)包的接收、處理和發(fā)送等任務(wù),均由微引擎中的各線程并行執(zhí)行微引擎指令存儲(chǔ)區(qū)中的微代碼程序來完成。網(wǎng)絡(luò)處理器數(shù)據(jù)的高速轉(zhuǎn)發(fā)正是因?yàn)槌浞掷昧擞布牟⑿行?來彌補(bǔ)線速轉(zhuǎn)發(fā)中的內(nèi)存訪問的延遲。

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

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

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

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

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

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

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

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

(1)微模塊

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

(2)核心組件

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

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

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

(4)微模塊基本設(shè)施庫

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

(5)資源管理庫

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

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

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

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

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

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

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

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

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

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

[1] [2] [3] [4]  下一頁
  • 上一篇: IA4420在雙向無線防盜系統(tǒng)中的應(yīng)用
  • 下一篇: 用于家庭電源線調(diào)制解調(diào)器的大電流驅(qū)動(dòng)器
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1