專利名稱:一種從包模式總線到cell模式總線的數(shù)據(jù)轉(zhuǎn)發(fā)裝置和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)在包模式總線到CELL模式總線的轉(zhuǎn)發(fā)裝置和方法,實現(xiàn)不同模式總線的數(shù)據(jù)傳輸。
背景技術(shù):
不同的網(wǎng)絡(luò)處理器有著不同的數(shù)據(jù)傳輸總線,同時不同的接口芯片也有自己獨特的數(shù)據(jù)總線。但是總的來說最常用的就只有兩種一種是基于包模式的傳輸,另外一種是基于CELL模式的傳輸。這兩種模式最大的區(qū)別在于包模式(如圖1所示)是采用專用的信號線來指示包的開始SOP(start of package)、包結(jié)束EOP(end of package)、數(shù)據(jù)有效等信息,而CELL模式將完整的包拆分成為更小的單位(CELL)并將相關(guān)信息加入CELL的頭部(Cell header)和數(shù)據(jù)一同傳輸。CELL模式的數(shù)據(jù)結(jié)構(gòu)如圖2所示,一個CELL由數(shù)據(jù)部分(Data)和Cell header組成。在Cell Header中有兩個重要的字段Type、Length。Length字段表示的是該CELL數(shù)據(jù)部分的長度,而Type表示該CELL針對完整的數(shù)據(jù)包的位置如包的開始、包的結(jié)束、包的中間、包的開始和結(jié)束等信息。通過這些信息接受測可以將分離的CELL重新組合成為一個完整的包。實現(xiàn)數(shù)據(jù)從包模式總線到CELL模式總線轉(zhuǎn)換的關(guān)鍵在于Cell header信息的生成,現(xiàn)有技術(shù)中還沒有一種比較有效的方法實現(xiàn)這種數(shù)據(jù)轉(zhuǎn)發(fā)。
發(fā)明內(nèi)容
本發(fā)明解決的技術(shù)問題提供了一種使用獨立的Cell header fifo(first-infirst-out)來實現(xiàn)從包模式總線到CELL模式總線的轉(zhuǎn)發(fā)的方法。
本發(fā)明所述的從包模式總線到CELL模式總線的數(shù)據(jù)轉(zhuǎn)發(fā)裝置,如圖3所示,包括Cell頭產(chǎn)生模塊301、數(shù)據(jù)緩沖單元302(Data FIFO)、Cell頭緩沖單元303(Cell header FIFO)和Cell生成模塊304;Cell頭產(chǎn)生模塊301和數(shù)據(jù)緩沖單元302(Data FIFO)的輸入端與包模式輸出總線的數(shù)據(jù)輸出端相連,Cell頭產(chǎn)生模塊301生成的Cell頭輸入到Cell頭緩沖單元303,Cell生成模塊304的輸入端分別與Cell頭緩沖單元303和數(shù)據(jù)緩沖單元302(Data FIFO)的輸出端相連,將輸入的信息組合成一個完整的Cell。
本發(fā)明所述的從包模式總線到CELL模式總線的數(shù)據(jù)轉(zhuǎn)發(fā)方法,包括以下處理步驟第一步,包模式總線的數(shù)據(jù)分別輸入Cell頭產(chǎn)生模塊301和數(shù)據(jù)緩沖單元302;
第二步,Cell頭產(chǎn)生模塊301將輸入的數(shù)據(jù)生成Cell頭,并發(fā)送到Cell頭緩沖單元303;第三步,Cell生成模塊304先從Cell頭緩沖單元303中讀取Cell頭,再從數(shù)據(jù)緩沖單元302中讀取數(shù)據(jù)部分,然后組合成為一個完整的Cell。
本發(fā)明所述的從包模式總線到CELL模式總線的數(shù)據(jù)轉(zhuǎn)發(fā)裝置和方法,由于模式轉(zhuǎn)換的工作在包進(jìn)入FIFO的時候完成,在Cell模式總線端只需要簡單的從FIFO中讀取Cell header和包數(shù)據(jù)合成一個Cell。所以,整個模式轉(zhuǎn)換系統(tǒng)的總線帶寬利用率能夠達(dá)到很高。在實際應(yīng)用中,Cell模式的總線為16位、100Mhz的總線,數(shù)據(jù)流量可達(dá)1.58Gbit/s,總線利用率達(dá)到98.75%。
圖1是包模式傳輸?shù)臅r序圖;圖2是Cell模式的數(shù)據(jù)結(jié)構(gòu);圖3是實現(xiàn)包模式到Cell模式轉(zhuǎn)換的結(jié)構(gòu)示意圖;圖4是Cell頭中的type、Length域生成的流程圖;圖5是使用FPGA具體實現(xiàn)。
具體實施例方式其中最為重要的是Cell頭產(chǎn)生模塊301(Cell header generator)。下面詳細(xì)介紹Cell header中TYPE、LENGTH域的生成過程。如圖4所示步驟401,包開始寫入FIFO,同時由計數(shù)器LENGTH_COUNTER對寫入的包長度進(jìn)行計數(shù),SOP_PTR信號當(dāng)包頭信號(SOP)傳入的時候設(shè)置為1;步驟402,當(dāng)SOP_PTR為1時EOP來到,這時執(zhí)行步驟403,TYPE=“包的開始和結(jié)束”表示該Cell包含有一個完整的包,LENGTH=LENGTH_COUNTER計數(shù)得到的值,然后結(jié)束改次轉(zhuǎn)換;否則,執(zhí)行步驟404,如果EOP到來,但是SOP_PTR不為1時,轉(zhuǎn)步驟405,TYPE=“包的結(jié)束”表示該Cell屬于一個包的結(jié)尾部分,LENGTH=LENGTH_COUNTER,同時結(jié)束改次轉(zhuǎn)換;否則,執(zhí)行步驟406,如果LENGTH=LENGTH_SET(LENGTH_SET表示為預(yù)先設(shè)置的一個Cell的長度限制)同時SOP_PTR為1,那么TYPE=“包的中間”表示該Cell屬于一個完整包的中間部分,LENGTH=LENGTH_SET,同時設(shè)置SOP_PTR為0;否則轉(zhuǎn)407,如果LENGTH=LENGTH_SET,同時SOP_PTR為0,那么TYPE=“包的中間”,LENGTH=LENGTH_SET,跳轉(zhuǎn)到步驟404,直到有EOP來到的時候結(jié)束。
本發(fā)明的具體實現(xiàn)可以采用FPGA和內(nèi)部RAM(隨機存貯器)構(gòu)成的FIFO。如圖5所示,PPP(Peer-Peer Protocal)的包使用包傳輸模式進(jìn)入模塊501。在501中完成Cell header中的Type、Length域的生成并存入503 Cell Header FIFO中。同時501完成數(shù)據(jù)存入502數(shù)據(jù)FIFO的操作。Cell Header FIFO的深度同DataFIFO的深度、Cell長度的設(shè)置(圖4中的LENGTH_SET)和PPP的最小包長度有關(guān)系。計算方面如下1.如果Cell的長度小于PPP的最小包長度,那么Cell Header FIFO的深度=Data FIFO的深度/Cell的長度。
2.PPP的最小包長度小于Cell的長度,那么Cell Header FIFO的深度=DataFIFO的深度/PPP的最小包長度。
最后在504中,首先從Cell header FIFO中讀取Cell header,然后再從Data FIFO中讀取固定長度的數(shù)據(jù)組成一個完整的Cell從總線輸出。
權(quán)利要求
1.一種從包模式總線到CELL模式總線的數(shù)據(jù)轉(zhuǎn)發(fā)裝置,其特征在于,所述的裝置包括包括Cell頭產(chǎn)生模塊(301)、數(shù)據(jù)緩沖單元(302)、Cell頭緩沖單元(303)(Cell header FIFO)和Cell生成模塊(304);Cell頭產(chǎn)生模塊(301)和數(shù)據(jù)緩沖單元(302)的輸入端與包模式輸出總線的數(shù)據(jù)輸出端相連,Cell頭產(chǎn)生模塊(301)生成的Cell頭輸入到Cell頭緩沖單元(303),Cell生成模塊(304)的輸入端分別與Cell頭緩沖單元(303)和數(shù)據(jù)緩沖單元(302)的輸出端相連,將輸入的信息組合成一個完整的Cell。
2.一種從包模式總線到CELL模式總線的數(shù)據(jù)轉(zhuǎn)發(fā)方法,其特征在于,包括以下處理步驟第一步,包模式總線的數(shù)據(jù)分別輸入Cell頭產(chǎn)生模塊(301)和數(shù)據(jù)緩沖單元(302);第二步,Cell頭產(chǎn)生模塊(301)將輸入的數(shù)據(jù)生成Cell頭,并發(fā)送到Cell頭緩沖單元(303);第三步,Cell生成模塊(304)先從Cell頭緩沖單元(303)中讀取Cell頭,再從數(shù)據(jù)緩沖單元(302)中讀取數(shù)據(jù)部分,然后組合成為一個完整的Cell。
3.根據(jù)權(quán)利要求2所述的從包模式總線到CELL模式總線的數(shù)據(jù)轉(zhuǎn)發(fā)方法,其特征在于,所屬步驟二還包括以下處理步驟步驟401,包開始寫入FIFO,同時由計數(shù)器LENGTH_COUNTER對寫入的包長度進(jìn)行計數(shù),SOP_PTR信號當(dāng)包頭信號傳入的時候設(shè)置為1;步驟402,當(dāng)SOP_PTR為1時EOP來到,這時執(zhí)行步驟403,TYPE=“包的開始和結(jié)束”表示該Cell包含有一個完整的包,LENGTH=LENGTH_COUNTER計數(shù)得到的值,然后結(jié)束改次轉(zhuǎn)換;否則,執(zhí)行步驟404,如果EOP到來,但是SOP_PTR不為1時,轉(zhuǎn)步驟405,TYPE=“包的結(jié)束”表示該Cell屬于一個包的結(jié)尾部分,LENGTH=LENGTH_COUNTER,同時結(jié)束改次轉(zhuǎn)換;否則,執(zhí)行步驟406,如果LENGTH=LENGTH_SET同時SOP_PTR為1,那么TYPE=“包的中間”表示該Cell屬于一個完整包的中間部分,LENGTH=LENGTH_SET,同時設(shè)置SOP_PTR為0;否則轉(zhuǎn)407,如果LENGTH=LENGTH_SET,同時SOP_PTR為0,那么TYPE=“包的中間”,LENGTH=LENGTH_SET,跳轉(zhuǎn)到步驟404,直到有EOP來到的時候結(jié)束。
全文摘要
本發(fā)明涉及數(shù)據(jù)在包模式總線到CELL模式總線的轉(zhuǎn)發(fā)裝置和方法,所述的數(shù)據(jù)轉(zhuǎn)發(fā)裝置包括Cell頭產(chǎn)生模塊301、數(shù)據(jù)緩沖單元302、Cell頭緩沖單元303和Cell生成模塊304;Cell頭產(chǎn)生模塊301和數(shù)據(jù)緩沖單元302的輸入端與包模式輸出總線的數(shù)據(jù)輸出端相連,Cell頭產(chǎn)生模塊301生成的Cell頭輸入到Cell頭緩沖單元303,Cell生成模塊304將輸入的信息組合成一個完整的Cell。由于模式轉(zhuǎn)換的工作在包進(jìn)入FIFO的時候完成,在Cell模式總線端只需要簡單的從FIFO中讀取Cell header和包數(shù)據(jù)合成一個Cell,整個模式轉(zhuǎn)換系統(tǒng)的總線帶寬利用率比較高。
文檔編號H04L12/40GK1527546SQ0311292
公開日2004年9月8日 申請日期2003年3月6日 優(yōu)先權(quán)日2003年3月6日
發(fā)明者高峻, 俞嘉, 何寧, 高 峻 申請人:中興通訊股份有限公司