日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看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
【字體: 字體顏色


圖3

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

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

while(1){

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

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

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

continue;

}

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

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

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

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

Goto drop; //跳轉(zhuǎn)到丟棄包的處理模塊

}

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

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

Drop:

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

}

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

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

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

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

(1)多線程的分配和調(diào)度策略

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

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

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

(2)數(shù)據(jù)結(jié)構(gòu)的這義和存儲(chǔ)分配

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

(3)分組調(diào)度

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

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

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

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

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

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

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

結(jié)語

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


 

  • 上一篇: 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ì)
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

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