亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

微引擎與StrongArm核的通信方法

文檔序號(hào):7595178閱讀:340來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):微引擎與StrongArm核的通信方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種網(wǎng)絡(luò)處理器中微引擎與StrongArm核進(jìn)行數(shù)據(jù)通信的方法。
背景技術(shù)
在過(guò)去10年中,網(wǎng)絡(luò)設(shè)備的研制開(kāi)發(fā)和互連網(wǎng)的發(fā)展相互促進(jìn)。早期的網(wǎng)絡(luò)設(shè)備(例如網(wǎng)橋和路由器)主要由通用CPU和專(zhuān)用標(biāo)準(zhǔn)設(shè)備組成,功能依賴(lài)于軟件設(shè)計(jì),因此容易擴(kuò)展,便于適應(yīng)網(wǎng)絡(luò)中出現(xiàn)的新協(xié)議和新業(yè)務(wù)。這種設(shè)計(jì)的缺點(diǎn)是處理能力低,無(wú)法適應(yīng)網(wǎng)絡(luò)傳輸技術(shù)的發(fā)展和滿足附加性能的需求。隨著網(wǎng)絡(luò)規(guī)模和接口速度的增加,通用CPU對(duì)某些網(wǎng)絡(luò)處理任務(wù)尤其是數(shù)據(jù)接收、交換轉(zhuǎn)發(fā)等方面的處理性能難以滿足要求,這就促使網(wǎng)絡(luò)設(shè)備廠家開(kāi)發(fā)出了基于內(nèi)嵌專(zhuān)用集成電路(ASIC)的簡(jiǎn)單且具有固定功能的設(shè)備,例如第二層以太網(wǎng)交換機(jī)。這種ASIC設(shè)計(jì)方案能有效提高網(wǎng)絡(luò)設(shè)備處理性能和速度,卻降低了靈活性。后來(lái)在ASIC基礎(chǔ)上又出現(xiàn)了交換套片構(gòu)建方案,如第二層以太網(wǎng)“單片交換”設(shè)備。這種方案優(yōu)化了硬件間的連接,提高了指令執(zhí)行效率,但仍沒(méi)有克服ASIC缺乏靈活性的固有缺點(diǎn)。當(dāng)今網(wǎng)絡(luò)規(guī)模和性能迅速增長(zhǎng),新業(yè)務(wù)接連出現(xiàn),要求網(wǎng)絡(luò)設(shè)備具有線速和智能的處理能力。網(wǎng)絡(luò)處理器便是一種新興、有效的統(tǒng)一解決方案,它適用于各層網(wǎng)絡(luò)處理,具有ASIC高速處理性能和可編程特性,既能保證系統(tǒng)靈活性,又能完成線速處理數(shù)據(jù)包所要求的高性能硬件功能。
INTEL公司是網(wǎng)絡(luò)處理和以太網(wǎng)互連領(lǐng)域的領(lǐng)導(dǎo)者和革新者。IXP1200是公司INTEL網(wǎng)絡(luò)處理器產(chǎn)品,它具有強(qiáng)大的并行處理能力和良好的應(yīng)用靈活性可以完成的分組交換處理功能,峰值帶寬可達(dá)6。26GBPS被業(yè)界認(rèn)為是第一個(gè)真正的網(wǎng)絡(luò)處理器。IXP1200網(wǎng)絡(luò)處理器具有高性能的并行處理能力以及靈活的通信協(xié)議處理能力。IXP1200網(wǎng)絡(luò)處理器由一個(gè)ARM V4結(jié)構(gòu)的StrongArm核和六個(gè)獨(dú)立的32比特可編程的RISC微引擎組成。StrongArm核主要用來(lái)進(jìn)行管理控制一些復(fù)雜的任務(wù),像地址學(xué)習(xí)、建立和維護(hù)路由表以及網(wǎng)絡(luò)管理等操作。每個(gè)微引擎在硬件上可以支持四個(gè)線程,可用來(lái)高速轉(zhuǎn)發(fā)數(shù)據(jù)包。IXP1200提供了IX BUS總線接口,通過(guò)IX BUS接口可以和以太網(wǎng)MAC芯片相連。MAC芯片接收來(lái)的數(shù)據(jù)包要送到微引擎,通過(guò)微引擎對(duì)數(shù)據(jù)包的處理來(lái)決定數(shù)據(jù)包是轉(zhuǎn)發(fā)到其他以太網(wǎng)端口還是送給StrongArm核來(lái)處理目前微引擎與StrongArm核的通信方式主要采用PETH偽驅(qū)動(dòng)的方式進(jìn)行PETH驅(qū)動(dòng)用于和IXP1200的微引擎交互來(lái)進(jìn)行收發(fā)數(shù)據(jù)包PETH驅(qū)動(dòng)使得每個(gè)IXP1200 IXB U S以太網(wǎng)端口(10/100和吉比特端口)對(duì)于VxWorks核來(lái)說(shuō)就像一個(gè)實(shí)實(shí)在在的以太網(wǎng)設(shè)備。微引擎接收到數(shù)據(jù)包進(jìn)行協(xié)議分析處理后,發(fā)送到一個(gè)專(zhuān)門(mén)的端口(18)排隊(duì),PETH驅(qū)動(dòng)把隊(duì)列中的數(shù)據(jù)包取出,并且將它送到VxWorks核。對(duì)于發(fā)送數(shù)據(jù)包,當(dāng)應(yīng)用程序或VxWorks核產(chǎn)生數(shù)據(jù)包后就會(huì)被發(fā)送到PETH驅(qū)動(dòng),PETH驅(qū)動(dòng)收到數(shù)據(jù)包后,就會(huì)把這些數(shù)據(jù)包送到相應(yīng)微引擎的發(fā)送隊(duì)列中去。這樣做的優(yōu)點(diǎn)是實(shí)現(xiàn)簡(jiǎn)單,微引擎只需要按照正常的包流程對(duì)給核的包進(jìn)行處理,中間的傳遞過(guò)程由協(xié)議棧自動(dòng)完成,包的傳遞細(xì)節(jié)對(duì)業(yè)務(wù)完全透明,這樣做的缺點(diǎn)是缺乏靈活性,無(wú)法滿足對(duì)包進(jìn)行的針對(duì)業(yè)務(wù)的特殊處理。由于VXWORKS協(xié)議棧沒(méi)有提供源代碼,因此無(wú)法在TCP層以下取到完整的數(shù)據(jù)包來(lái)進(jìn)行鏈路層的修改。同時(shí)由于給核的包需要協(xié)議棧層層解碼,無(wú)法靈活的根據(jù)其具體情況提高協(xié)議棧的處理效率發(fā)明內(nèi)容本發(fā)明的目的在于提供一種新的微引擎與StrongArm核的通信方法,使用該方法能使StrongArm核不通過(guò)協(xié)議棧直接取到微引擎提供的原始MAC幀,增加包處理的靈活性和效率。
技術(shù)方案本發(fā)明提出的微引擎與StrongArm核的通信方法,包括以下步驟a。系統(tǒng)初始化時(shí)開(kāi)辟新的SDRAM緩沖區(qū),該緩沖區(qū)在VXWORKS所管理的地址空間之外,由VXWORKS協(xié)議棧通過(guò)絕對(duì)地址訪問(wèn);將共享緩沖區(qū)分塊;取SRAM的固定單元用作傳遞數(shù)據(jù)包的計(jì)數(shù)索引,選取SRAM可以直接用指令進(jìn)行鎖操作,保證互斥;b。微引擎收到包的第一片64字節(jié)(SOP)后,經(jīng)過(guò)判斷該包需要交給StrongArm核處理后,讀取計(jì)數(shù)索引單元的值,決定該包的起始地址,將該片拷貝到相應(yīng)的SDRAM單元;c中間分片(MOP)按照正常的處理流程,將分片放在包描述符所分配的SDRAM緩沖區(qū)中;d尾部分片(EOP)處理時(shí),此時(shí)該包除了第一分片(SOP)已到共享緩沖區(qū)其余分片都在包描述符所分配的緩沖區(qū)中,進(jìn)行內(nèi)存拷貝,將該包其余部分拷貝到共享緩沖區(qū);同時(shí)在每個(gè)包的頭部,添加標(biāo)識(shí)位和StrongArm核要用到的附加信息;e在協(xié)議棧上啟動(dòng)一個(gè)收包任務(wù),查詢(xún)包計(jì)數(shù)索引,發(fā)現(xiàn)有新的交給核的包就計(jì)算出對(duì)應(yīng)的地址,到共享緩沖區(qū)去取出該包進(jìn)行處理。如上所述的微引擎與StrongArm核的通信方法,其特征在于共享緩沖區(qū)每一塊2048個(gè)字節(jié),可以保證容納最長(zhǎng)的以太網(wǎng)幀。
有益效果本發(fā)明的有益效果是a。StrongArm核可以直接得到完整的MAC幀;b。給StrongArm核的包不需要協(xié)議棧進(jìn)行層層解碼,直接由我們的收包任務(wù)根據(jù)業(yè)務(wù)的需要處理;C。如果我們的收包任務(wù)發(fā)現(xiàn)該包需要交給協(xié)議棧處理可以通過(guò)消息的形式傳遞給協(xié)議棧處理,否則自己處理,增加了靈活性;d.減少了PETH驅(qū)動(dòng)的加載,降低系統(tǒng)的復(fù)雜型,增強(qiáng)系統(tǒng)的穩(wěn)定性。


圖1是網(wǎng)絡(luò)處理器的結(jié)構(gòu)圖。
圖2是現(xiàn)階段利用PETH驅(qū)動(dòng)處理的軟件結(jié)構(gòu)圖。
圖3包處理的流程圖。
具體的實(shí)施方式數(shù)據(jù)包需要交給StrongArm核處理時(shí),微引擎和核分別進(jìn)行如下的處理。
微引擎的處理工作如下1.檢測(cè)接收狀態(tài)機(jī)收到的MPACKET的類(lèi)型,分成SOP和非SOP的包分別處理。
2.對(duì)SOP的包經(jīng)過(guò)對(duì)包的業(yè)務(wù)流程,如果業(yè)務(wù)流程不需要交給StrongArm核處理,按照正常的業(yè)務(wù)流程進(jìn)行存儲(chǔ)轉(zhuǎn)發(fā),否則進(jìn)入我們所設(shè)計(jì)的微引擎與StrongArm核通信流程。
1>得到用讀鎖指令獲得的索引號(hào),該索引號(hào)表示該包放到共享緩沖區(qū)的第幾塊,通過(guò)計(jì)算得到該包的起始放置地址。使用讀鎖指令保證了該索引號(hào)的正確性;2>將該SOP包從FIFO中拷貝到該包在共享緩沖區(qū)所分配的區(qū)塊中,在該區(qū)塊的頭部加入部分附加信息以提供給StrongArm核上的收包任務(wù)使用,至此SOP包處理完畢。
3.對(duì)于非SOP也非EOP的包處理因?yàn)榇朔NMPACKET沒(méi)有包頭信息,因此無(wú)法決定該分片的流向,為了實(shí)現(xiàn)的簡(jiǎn)便可以將其按正常的存儲(chǔ)轉(zhuǎn)發(fā)處理過(guò)程放入存儲(chǔ)轉(zhuǎn)發(fā)緩沖區(qū)。
4對(duì)于EOP的處理當(dāng)微引擎獲得的MPACKET為EOP時(shí),就到系統(tǒng)的外部郵箱去獲得指定的輸出端口號(hào)以及處理SOP時(shí)獲得的索引號(hào),根據(jù)這些信息,可以決定該分片是否應(yīng)交給StrongArm核,如果不是,就進(jìn)行入隊(duì)操作進(jìn)行存儲(chǔ)轉(zhuǎn)發(fā),如果是,將其拷貝到共享緩沖區(qū)中該包所分配的區(qū)塊中,然后進(jìn)行逆向拷貝,將前面存儲(chǔ)的中間分片也拷貝到共享緩沖區(qū)中。因?yàn)榘慕M織結(jié)構(gòu)完全相同,因此兩個(gè)緩沖區(qū)的相對(duì)偏移也是一樣的,可以很方便的實(shí)現(xiàn)拷貝。
5至此整個(gè)包就完全拷貝到共享緩沖區(qū)中為該包分配的區(qū)塊中,然后在該區(qū)塊頭部預(yù)留的16個(gè)字節(jié)的最高位置位表明有包,后面的字節(jié)可以填上其他附加信息,視具體情況而定。
StrongArm核的工作如下1啟動(dòng)一個(gè)收包任務(wù),該任務(wù)輪詢(xún)共享緩沖區(qū)中每個(gè)區(qū)塊的第一個(gè)字節(jié),如果置位表明有包等待處理;2開(kāi)始處理該包,將首位清掉,表明開(kāi)始處理;3進(jìn)行字節(jié)序倒換,MAC過(guò)濾等基本操作后,按業(yè)務(wù)流程處理該包決定該包的流向;
權(quán)利要求
1.微引擎與StrongArm核的通信方法,其特征在于包括以下步驟a、系統(tǒng)初始化時(shí)開(kāi)辟新的SDRAM緩沖區(qū),該緩沖區(qū)在VXWORKS所管理的地址空間之外,由VXWORKS協(xié)議棧通過(guò)絕對(duì)地址訪問(wèn),該緩沖區(qū)稱(chēng)為共享緩沖區(qū);將共享緩沖區(qū)分塊;取SRAM的固定單元用作傳遞數(shù)據(jù)包的計(jì)數(shù)索引,選取SRAM可以直接用指令進(jìn)行鎖操作,保證互斥;b、微引擎收到包的第一片64字節(jié)(SOP)后,經(jīng)過(guò)判斷該包需要交給StrongArm核處理后,讀取計(jì)數(shù)索引單元的值,決定該包的起始地址,將該片拷貝到相應(yīng)的SDRAM單元;c、中間分片(MOP)按照正常的處理流程,將分片放在包描述符所分配的SDRAM緩沖區(qū)中;d、尾部分片(EOP)進(jìn)行內(nèi)存拷貝,將其拷貝到共享緩沖區(qū);同時(shí)在每個(gè)包的頭部,添加標(biāo)識(shí)位和StrongArm核要用到的附加信息;e、在協(xié)議棧上啟動(dòng)一個(gè)收包任務(wù),查詢(xún)包計(jì)數(shù)索引,發(fā)現(xiàn)有新的交給核的包就計(jì)算出對(duì)應(yīng)的地址,到共享緩沖區(qū)去取出該包進(jìn)行處理。
2.如權(quán)利要求1所述的微引擎與StrongArm核的通信方法,其特征在于共享緩沖區(qū)每一塊2048個(gè)字節(jié)。
全文摘要
微引擎與StrongArm核的通信方法,在VXWORKS所管理的地址空間中開(kāi)辟一個(gè)共享緩沖區(qū),將共享緩沖區(qū)分成多塊;取SRAM的固定單元用作傳遞數(shù)據(jù)包的計(jì)數(shù)索引,選取SRAM可以直接用指令進(jìn)行鎖操作;微引擎讀取計(jì)數(shù)索引單元的值,決定包的起始地址,將第一分片(SOP)拷貝到相應(yīng)的SDRAM單元;中間分片(MOP)按照正常的處理流程;尾部分片(EOP)拷貝到共享緩沖區(qū);同時(shí)在每個(gè)包的頭部,添加標(biāo)識(shí)位和StrongArm核要用到的附加信息;在協(xié)議棧上啟動(dòng)一個(gè)收包任務(wù),查詢(xún)包計(jì)數(shù)索引,發(fā)現(xiàn)有新的交給核的包就計(jì)算出對(duì)應(yīng)的地址,到共享緩沖區(qū)去取出該包進(jìn)行處理。該方法能使StrongArm核不通過(guò)協(xié)議棧直接取到微引擎提供的原始MAC幀,增加包處理的靈活性和效率。
文檔編號(hào)H04L29/06GK1614955SQ200410061108
公開(kāi)日2005年5月11日 申請(qǐng)日期2004年11月16日 優(yōu)先權(quán)日2004年11月16日
發(fā)明者彭凱, 劉勝超, 徐波 申請(qǐng)人:北京北方烽火科技有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1