專利名稱:一種網(wǎng)絡(luò)處理器中內(nèi)核與微引擎間的通信方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)處理器,尤其涉及一種網(wǎng)絡(luò)處理器中內(nèi)核與微引擎間的通信方法。
二、Core通過uE發(fā)送報文到網(wǎng)絡(luò)上,步驟如圖2所示b1、Core發(fā)送中斷信號給uE,通知uE分配BD;b2、uE分配BD后,把BD指針寫入用于從uE至Core傳送BD指針的單元Mailbox3中;b3、uE發(fā)送中斷信號給Core,通知Core取BD指針;b4、Core從Mailbox3中取出BD指針;b5、Core根據(jù)BD指針把報文寫入對應(yīng)的SDRAM地址中;b6、Core把發(fā)送報文的信息寫入BD中;b7、Core把發(fā)送報文的BD指針寫入用于從Core至uE傳送BD指針的單元Mailbox2中;b8、Core發(fā)送中斷信號給uE,通知uE有報文發(fā)送;b9、uE從Maibox2中取出發(fā)送報文的BD指針;b10、uE根據(jù)BD指針讀取BD的信息;b11、uE根據(jù)BD把報文從SDRAM中發(fā)送到網(wǎng)絡(luò)接口上,然后釋放BDb12、網(wǎng)絡(luò)接口把報文發(fā)到網(wǎng)絡(luò)上。
該方法中uE和Core之間采用發(fā)送中斷信號的通信機制,步驟比較復(fù)雜,通過測試,64字節(jié)報文的轉(zhuǎn)發(fā)速率只有5000pps(數(shù)據(jù)包每秒)左右;其次由于Core也直接參與BD的管理,需要專門的隊列來管理接收報文的BD和發(fā)送報文時申請的BD,滿負(fù)荷時容易導(dǎo)致BD丟失,從而導(dǎo)致相應(yīng)內(nèi)存空間無法使用的泄漏情況。
為達(dá)到上述目的,本發(fā)明采用的技術(shù)方案是一種網(wǎng)絡(luò)處理器中內(nèi)核與微引擎間的通信方法,方法包括微引擎uE從網(wǎng)絡(luò)上轉(zhuǎn)發(fā)報文給內(nèi)核Core的過程和Core通過uE發(fā)送報文到網(wǎng)絡(luò)上的過程,其中,為uE從網(wǎng)絡(luò)上轉(zhuǎn)發(fā)報文給Core的過程在網(wǎng)絡(luò)處理器內(nèi)部存儲單元scratch_pad中設(shè)置用于存放指向報文的指針BD的單元,該單元中的BD由uE分配并寫入,由Core啟動任務(wù)查詢和讀?。粸镃ore通過uE發(fā)送報文到網(wǎng)絡(luò)上的過程在網(wǎng)絡(luò)處理器內(nèi)部存儲單元scratch_pad中也設(shè)置用于存放指向報文的指針BD的單元,該BD由uE在初始化時分配一定數(shù)量,Core把發(fā)送報文的信息寫入BD,uE讀取該BD后再將新分配的BD指針寫入存放BD指針的單元。
由于采用以上技術(shù)方案,uE與Core之間的報文轉(zhuǎn)發(fā)步驟得到簡化,速率有了明顯提高,通過測試,64字節(jié)報文的轉(zhuǎn)發(fā)速率達(dá)到9300pps左右,幾乎提高了近一倍,而且BD都是由uE統(tǒng)一管理,Core不用設(shè)置隊列來存放申請的和需要釋放的BD,克服了BD丟失而導(dǎo)致相應(yīng)內(nèi)存空間泄漏的情況,提高了BD操作的安全性和可靠性。
本發(fā)明方法為uE從網(wǎng)絡(luò)上轉(zhuǎn)發(fā)報文給Core的過程在網(wǎng)絡(luò)處理器內(nèi)部存儲單元scratch_pad中設(shè)置用于存放指向報文的指針BD的單元,該單元中的BD由uE分配并寫入,由Core啟動任務(wù)查詢和讀??;為Core通過uE發(fā)送報文到網(wǎng)絡(luò)上的過程在scratch_pad中也設(shè)置用于存放指向報文的指針BD的單元,該BD由uE在初始化時分配一定數(shù)量,Core把發(fā)送報文的信息寫入BD,uE讀取該BD后再將新分配的BD指針寫入存放BD指針的單元。參照圖3、圖4,具體實施中uE從網(wǎng)絡(luò)上轉(zhuǎn)發(fā)報文給Core的過程中uE側(cè)的執(zhí)行步驟為c1、網(wǎng)絡(luò)數(shù)據(jù)報文進(jìn)入網(wǎng)絡(luò)處理器的網(wǎng)絡(luò)接口;c2、uE從網(wǎng)絡(luò)接口接收報文,處理;c3、uE分配BD,把報文存放到BD對應(yīng)的報文存儲器SDRAM中的地址;c4、uE把報文的相關(guān)信息寫入BD;c5、uE讀取存放BD指針的單元,其中有BD指針則釋放BD,沒有BD指針則繼續(xù)步驟c6;c6、uE把當(dāng)前接收報文的BD指針寫入存放BD指針的單元;Core側(cè)的執(zhí)行步驟為c7、Core查詢存放BD指針的單元,如有BD指針則讀??;c8、Core讀取BD內(nèi)的報文信息;c9、Core根據(jù)BD的信息把報文從SDRAM中取走;c10、Core把BD指針放回存放BD指針的單元中。
在Core通過uE發(fā)送報文到網(wǎng)絡(luò)上的過程中,首先經(jīng)初始化步驟d1將uE給Core分配的一定個數(shù)BD指針寫入存放BD指針的單元中,Core側(cè)的執(zhí)行步驟為d2、Core從存放BD指針的單元中取BD指針;d3、Core根據(jù)BD指針把報文寫入對應(yīng)的報文存儲器SDRAM地址中;d4、Core把發(fā)送報文的信息寫入BD中;d5、Core發(fā)送信號給uE,通知uE有報文發(fā)送;uE側(cè)的執(zhí)行步驟為d6、uE從存放BD指針的單元中取出發(fā)送報文的BD指針;d7、uE再分配一個BD,把BD指針寫入存放BD指針的單元中;d8、uE讀取BD的信息;d9、uE根據(jù)BD把報文從SDRAM中發(fā)送到網(wǎng)絡(luò)接口上,并釋放BD;d10、網(wǎng)絡(luò)接口把報文發(fā)到網(wǎng)絡(luò)上作為本發(fā)明的具體事實例,在uE從網(wǎng)絡(luò)上轉(zhuǎn)發(fā)報文給Core的過程中,可于存放BD指針的單元中設(shè)置用于標(biāo)識有無BD指針的標(biāo)志位,執(zhí)行所述uE把當(dāng)前接收報文的BD指針寫入存放BD指針的單元的步驟c6后,對該標(biāo)志位進(jìn)行設(shè)置,執(zhí)行所述Core把BD指針放回存放BD指針的單元中的步驟c10后,對該標(biāo)志位進(jìn)行清除。
權(quán)利要求
1.一種網(wǎng)絡(luò)處理器中內(nèi)核與微引擎間的通信方法,包括微引擎uE從網(wǎng)絡(luò)上轉(zhuǎn)發(fā)報文給內(nèi)核Core的過程和Core通過uE發(fā)送報文到網(wǎng)絡(luò)上的過程,其特征在于為uE從網(wǎng)絡(luò)上轉(zhuǎn)發(fā)報文給Core的過程在網(wǎng)絡(luò)處理器內(nèi)部存儲單元scratch pad中設(shè)置用于存放指向報文的指針BD的單元,該單元中的BD由uE分配并寫入,由Core啟動任務(wù)查詢和讀取;為Core通過uE發(fā)送報文到網(wǎng)絡(luò)上的過程在網(wǎng)絡(luò)處理器內(nèi)部存儲單元scratch_pad中也設(shè)置用于存放指向報文的指針BD的單元,該BD由uE在初始化時分配一定數(shù)量,Core把發(fā)送報文的信息寫入BD,uE讀取該BD后再將新分配的BD指針寫入存放BD指針的單元。
2.如權(quán)利要求1所述的網(wǎng)絡(luò)處理器中內(nèi)核與微引擎間的通信方法,其特征在于uE從網(wǎng)絡(luò)上轉(zhuǎn)發(fā)報文給Core的過程中uE側(cè)的執(zhí)行步驟為(1)網(wǎng)絡(luò)數(shù)據(jù)報文進(jìn)入網(wǎng)絡(luò)處理器的網(wǎng)絡(luò)接口;(2)uE從網(wǎng)絡(luò)接口接收報文,處理;(3)uE分配BD,把報文存放到BD對應(yīng)的報文存儲器SDRAM中的地址;(4)uE把報文的相關(guān)信息寫入BD;(5)uE讀取存放BD指針的單元,其中有BD指針則釋放BD,沒有BD指針則繼續(xù)步驟(6);(6)uE把當(dāng)前接收報文的BD指針寫入存放BD指針的單元;Core側(cè)的執(zhí)行步驟為(7)Core查詢存放BD指針的單元,如有BD指針則讀??;(8)Core讀取BD內(nèi)的報文信息;(9)Core根據(jù)BD的信息把報文從SDRAM中取走;(10)Core把BD指針放回存放BD指針的單元中。
3.如權(quán)利要求2所述的網(wǎng)絡(luò)處理器中內(nèi)核與微引擎間的通信方法,其特征在于在存放BD指針的單元中設(shè)置用于標(biāo)識有無BD指針的標(biāo)志位,執(zhí)行所述uE把當(dāng)前接收報文的BD指針寫入存放BD指針的單元的步驟(6)后,對該標(biāo)志位進(jìn)行設(shè)置,執(zhí)行所述Core把BD指針放回存放BD指針的單元中的步驟(10)后,對該標(biāo)志位進(jìn)行清除。
4.如權(quán)利要求1所述的網(wǎng)絡(luò)處理器中內(nèi)核與微引擎間的通信方法,其特征在于首先經(jīng)初始化步驟(1)將uE給Core分配的一定個數(shù)BD指針寫入存放BD指針的單元中,在Core通過uE發(fā)送報文到網(wǎng)絡(luò)上的過程中Core側(cè)的執(zhí)行步驟為(2)Core從存放BD指針的單元中取BD指針;(3)Core根據(jù)BD指針把報文寫入對應(yīng)的報文存儲器SDRAM地址中;(4)Core把發(fā)送報文的信息寫入BD中;(5)Core發(fā)送信號給uE,通知uE有報文發(fā)送;uE側(cè)的執(zhí)行步驟為(6)uE從存放BD指針的單元中取出發(fā)送報文的BD指針;(7)uE再分配一個BD,把BD指針寫入存放BD指針的單元中;(8)uE讀取BD的信息;(9)uE根據(jù)BD把報文從SDRAM中發(fā)送到網(wǎng)絡(luò)接口上,并釋放BD;(10)網(wǎng)絡(luò)接口把報文發(fā)到網(wǎng)絡(luò)上
全文摘要
本發(fā)明公開了一種網(wǎng)絡(luò)處理器中內(nèi)核與微引擎間的通信方法,其中,為微引擎uE從網(wǎng)絡(luò)上轉(zhuǎn)發(fā)報文給內(nèi)核Core的過程在網(wǎng)絡(luò)處理器內(nèi)部存儲單元scratch_pad中設(shè)置用于存放指向報文的指針BD的單元,該單元中的BD由uE分配并寫入,由Core啟動任務(wù)查詢和讀??;為Core通過uE發(fā)送報文到網(wǎng)絡(luò)上的過程在scratch_pad中也設(shè)置用于存放BD的單元,該BD由uE在初始化時分配一定數(shù)量,Core把發(fā)送報文的信息寫入BD,uE讀取該BD后再將新分配的BD指針寫入存放BD指針的單元,使轉(zhuǎn)發(fā)速率有了明顯提高,且BD由uE統(tǒng)一管理,避免了內(nèi)存空間泄漏的情況。
文檔編號H04L29/10GK1437327SQ02103659
公開日2003年8月20日 申請日期2002年2月4日 優(yōu)先權(quán)日2002年2月4日
發(fā)明者曹定波 申請人:華為技術(shù)有限公司