專利名稱::一種用于鏈路層的數(shù)據(jù)轉(zhuǎn)換方法和裝置的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及數(shù)據(jù)通信領(lǐng)域,尤其涉及一種用于鏈路層的數(shù)據(jù)轉(zhuǎn)換方法和裝置,以實現(xiàn)靈活的物理層和鏈路層之間的接口及鏈路層數(shù)據(jù)轉(zhuǎn)換。
背景技術(shù):
:數(shù)字網(wǎng)絡(luò)系統(tǒng)在與同步光纖網(wǎng)的接口上,目前通常的選擇是使用SPI-3接口(SystemPacketInterfaceLevel-3,系統(tǒng)包接口-3),SPI-3接口是OIF(OpticalInternetworkingForum,光互聯(lián)論壇)推薦的用于網(wǎng)絡(luò)物理層(第一層)器件與鏈路層(第二層)器件互連的接口形式。在數(shù)據(jù)網(wǎng)絡(luò)的傳統(tǒng)設(shè)計方案中,通常有兩種方式來實現(xiàn)鏈路層的數(shù)據(jù)處理第一種,是在系統(tǒng)之外增加個單獨的鏈路層處理芯片,采用一個外部處理器來實現(xiàn)鏈路層處理和流量管理任務(wù),這樣一方面會增加設(shè)計成本,另一方面,也會增加設(shè)計難度;第二種,是使用支持SPI-3接口和鏈路層處理的通用器件,但是使用此方式將在很大程度上限制設(shè)計人員對功能器件的選擇。隨著現(xiàn)代網(wǎng)絡(luò)技術(shù)和IPv6技術(shù)的發(fā)展,對于路由設(shè)備的性能要求越來越高,這使得在高端的路由器中更多的使用ASIC(ApplicationSpecificIntegratedCircuit,專用集成電路)器件而不是網(wǎng)絡(luò)處理器。在實現(xiàn)高端數(shù)據(jù)產(chǎn)品方面ASIC有著自己得天獨厚的優(yōu)勢,但是由于其開發(fā)維護難度上的劣勢,導(dǎo)致在實際研發(fā)和應(yīng)用中可行性會大大降低。而FPGA(FieldProgrammableGateArmy,現(xiàn)場可編程門陣列)具有可再編程的特點,因此在新功能維護上比ASIC有較大優(yōu)勢,而性能上又沒有太大的差別,近年來高端路由器在使用FPGA方面進行了嘗試。雖然有FPGAJ'家提供了SPI-3接口的內(nèi)核,但是使用時缺乏足夠的靈活性,功能也不夠完善,尤其是在可控制能力上還有許多缺陷,給FPGA在網(wǎng)絡(luò)設(shè)備中的應(yīng)用帶來很多不便。
發(fā)明內(nèi)容針對上述的缺陷,本發(fā)明的目的在于提供一種用于鏈路層的數(shù)據(jù)轉(zhuǎn)換方法和裝置,以實現(xiàn)靈活的物理層與鏈路層互聯(lián)的接口及鏈路層數(shù)據(jù)轉(zhuǎn)換。為了實現(xiàn)上述目的,本發(fā)明提供一種用于鏈路層的數(shù)據(jù)轉(zhuǎn)換方法,包括對物理層處理單元發(fā)來的幀數(shù)據(jù)進行數(shù)據(jù)轉(zhuǎn)換;和/或?qū)W(wǎng)絡(luò)層處理單元發(fā)來的數(shù)據(jù)進行數(shù)據(jù)轉(zhuǎn)換;其中,所述對物理層處理單元發(fā)來的幀數(shù)據(jù)進行數(shù)據(jù)轉(zhuǎn)換的步驟包括將物理層處理單元發(fā)來的幀數(shù)據(jù)緩存到具有回寫機制的異步緩沖接口,并對所述幀數(shù)據(jù)進行轉(zhuǎn)換處理之后發(fā)送給網(wǎng)絡(luò)層處理單元;所述對網(wǎng)絡(luò)層處理單元發(fā)來的數(shù)據(jù)進行數(shù)據(jù)轉(zhuǎn)換的步驟包括將網(wǎng)絡(luò)層處理單元發(fā)來的數(shù)據(jù)進行轉(zhuǎn)換處理,并將經(jīng)轉(zhuǎn)換處理所得的幀數(shù)據(jù)緩存到具有回寫機制的異步緩沖接口之后發(fā)送給物理層處理單元。根據(jù)本發(fā)明的方法,所述具有回寫機制的異步緩沖接口作為物理層和鏈路層之間的SPI-3接口。根據(jù)本發(fā)明的方法,所述具有回寫機制的異步緩沖接口由雙口RAM在外層加入讀地址控制電路和寫地址控制電路來實現(xiàn)。根據(jù)本發(fā)明的方法,所述對物理層處理單元發(fā)來的幀數(shù)據(jù)進行數(shù)據(jù)轉(zhuǎn)換的步驟進一步包括A、所述異步緩沖接口將從物理層處理單元接收來的幀數(shù)據(jù)進行數(shù)據(jù)緩沖和時鐘隔離;B、對緩存的幀數(shù)據(jù)進行幀分析及選擇處理;C、對于需要CPU處理的幀數(shù)據(jù)封裝上信息頭后發(fā)送給CPU;D、對于需要送網(wǎng)絡(luò)層處理單元處理的幀數(shù)據(jù)進行解幀,生成網(wǎng)絡(luò)層報文發(fā)送給網(wǎng)絡(luò)層處理單元。根據(jù)本發(fā)明的方法,所述步驟A中僅用一個所述異步緩沖接口作數(shù)據(jù)緩沖和時鐘隔離處理。根據(jù)本發(fā)明的方法,所述歩驟A進一歩包括Al、根據(jù)所述異步緩沖接口的總空間值和已使用空間值來計算異步緩沖接口的剩余空間值;A2、將步驟Al中得到的異步緩沖接口的剩余空間值與預(yù)存的若干狀態(tài)指示信號的代表值進行比較以得到當(dāng)前狀態(tài)指示信號,所述狀態(tài)指示信號包括固定配置的空、將空、滿、將滿以及用戶配置的預(yù)定義空、預(yù)定義滿;A3、將作為當(dāng)前狀態(tài)指示信號的滿、將滿或預(yù)定義滿送到所述寫地址控制電路以實現(xiàn)寫控制;A4、將作為當(dāng)前狀態(tài)指示信號的空、將空或預(yù)定義空送到所述讀地址控制電路以實現(xiàn)讀控制。根據(jù)本發(fā)明的方法,所述對網(wǎng)絡(luò)層處理單元發(fā)來的數(shù)據(jù)進行數(shù)據(jù)轉(zhuǎn)換的步驟進一步包括E、對于來自網(wǎng)絡(luò)層處理單元的數(shù)據(jù)進行成幀處理,得到幀數(shù)據(jù)后發(fā)送給所述異步緩沖接口處理;F、對于來自CPU的數(shù)據(jù)進行成幀處理,得到幀數(shù)據(jù)后發(fā)送給所述異步緩沖接口處理;G、所述異步緩沖接口將經(jīng)過步驟E和/或步驟F所得到的幀數(shù)據(jù)進行數(shù)據(jù)緩沖和時鐘隔離后,再發(fā)送給物理層處理單元進行處理。根據(jù)本發(fā)明的方法,所述歩驟E中對來自網(wǎng)絡(luò)層處理單元的數(shù)據(jù)的處理進一步包括El、所述網(wǎng)絡(luò)層處理單元向網(wǎng)絡(luò)層接口請求發(fā)送數(shù)據(jù);E2、判斷該網(wǎng)絡(luò)層接口是否已滿,若是則執(zhí)行步驟E3,否則執(zhí)行步驟E4;E3、進行數(shù)據(jù)丟棄處理,并返回等待狀態(tài);E4、將所述網(wǎng)絡(luò)層處理單元發(fā)送過來的數(shù)據(jù)寫入網(wǎng)絡(luò)層接口。根據(jù)本發(fā)明的方法,所述歩驟F中對來自CPU的數(shù)據(jù)的處理進一步包括:Fl、所述CPU向CPU接口請求發(fā)送數(shù)據(jù);F2、判斷該CPU接口是否已滿;若是則執(zhí)行步驟F3,否則執(zhí)行步驟F4;F3、進行數(shù)據(jù)丟棄處理,并返回等待狀態(tài);F4、將所述CPU發(fā)送過來的數(shù)據(jù)寫入CPU接口。根據(jù)本發(fā)明的方法,所述步驟G中異步緩沖接口向物理層處理單元發(fā)送幀數(shù)據(jù)的步驟進一步包括Gl、所述異步緩沖接口向?qū)?yīng)物理層接收端口請求發(fā)送幀數(shù)據(jù);G2、持續(xù)判斷所述對應(yīng)物理層接收端口是否有效;若是則執(zhí)行步驟G3,否則執(zhí)行步驟G4;G3、所述異歩緩沖接口向?qū)?yīng)物理層接收端口發(fā)送幀數(shù)據(jù);G4、由等待計數(shù)器進行計數(shù),并將所得計數(shù)值與預(yù)置的閥值進行比較;G5、判斷該計數(shù)值是否超過閥值,若是,執(zhí)行步驟G6,否則返回步驟G2;G6、進行數(shù)據(jù)丟棄處理,,本發(fā)明還提供一種用于鏈路層的數(shù)據(jù)轉(zhuǎn)換裝置,包括具有回寫機制的異歩緩沖接口,用于在物理層處理單元和鏈路層處理單元之間的數(shù)據(jù)緩沖;幀接收處理單元用于對從物理層處理單元發(fā)來并緩存在所述異步緩沖接口的幀數(shù)據(jù)進行轉(zhuǎn)換處理,并將轉(zhuǎn)換處理所得的數(shù)據(jù)發(fā)送給網(wǎng)絡(luò)層處理單元;幀發(fā)送處理單元用于對網(wǎng)絡(luò)層處理單元發(fā)送來的數(shù)據(jù)進行轉(zhuǎn)換處理,并將經(jīng)轉(zhuǎn)換處理所得的幀數(shù)據(jù)緩存到所述異步緩沖接口后發(fā)送給物理層處理單元。根據(jù)本發(fā)明的裝置,所述異步緩沖接口作為物理層和鏈路層之間的SPI-3接口。根據(jù)本發(fā)明的裝置,所述異步緩沖接口包括雙口RAM以及其外層加入的讀地址控制電路和寫地址控制電路。根據(jù)本發(fā)明的裝置,所述異步緩沖接口進一步包括減法器,用于根據(jù)異步緩沖接口的已用空間值和總空間值來計算異步緩沖接口的剩余空間值;比較器,用于存儲固定配置和用戶配置的若干狀態(tài)指示信號及其代表值,并將所述異步緩沖接口的剩余空間值與所述代表值進行比較,得出當(dāng)前狀態(tài)指示信號,將該當(dāng)前狀態(tài)指示信號發(fā)送給所述寫地址控制電路以實現(xiàn)寫控制,或者發(fā)送給所述讀地址控制電路以實現(xiàn)讀控制。根據(jù)本發(fā)明的裝置,所述比較器中預(yù)存的狀態(tài)指示信號包括固定配置的空、將空、滿、將滿以及用戶配置的預(yù)定義空、預(yù)定義滿;并且將作為當(dāng)前指示信號的信號滿、將滿或預(yù)定義滿送到所述寫地址控制電路,而信號空、將空或預(yù)定義空送到所述讀地址控制電路。根據(jù)本發(fā)明的裝置,所述幀接收處理單元進一步包括幀分析單元用于對緩存在所述異步緩沖接口的幀數(shù)據(jù)進行分析與選擇處信息頭處理單元用于對從所述幀分析單元接收的需要送交CPU處理的幀數(shù)據(jù)封裝上信息頭,并發(fā)送給所述CPU;解幀處理單元用于對從所述幀分析單元接收的需要送交網(wǎng)絡(luò)層處理單元處理的幀數(shù)據(jù)進行解幀,以生成網(wǎng)絡(luò)層報文發(fā)送至網(wǎng)絡(luò)層處理單元。根據(jù)本發(fā)明的裝置,所述幀發(fā)送處理單元進一步包括成幀處理單元用于將網(wǎng)絡(luò)層處理單元和/或CPU送來的數(shù)據(jù)封裝成為幀數(shù)據(jù),緩存到所述具有回寫機制的異步緩沖單元后發(fā)送給物理層處理單元;等待計數(shù)器,其受所述成幀處理單元的控制并配置有閥值;當(dāng)所述異步緩沖接口向物理層處理單元發(fā)送幀數(shù)據(jù)而對應(yīng)的物理層接收端口停止接收時,成幀處理單元觸發(fā)等待計數(shù)器計數(shù),當(dāng)計數(shù)值超出所述閥值,所述成幀處理單元根據(jù)預(yù)置的丟棄機制進行幀數(shù)據(jù)的丟棄處理。本發(fā)明在鏈路層數(shù)據(jù)轉(zhuǎn)換中采用具有回寫機制的FIFO作為異步緩沖接口,不僅實現(xiàn)物理層處理與鏈路層處理的數(shù)據(jù)緩沖和時鐘隔離,而且能對已寫入的幀數(shù)據(jù)進行刪除,從而實現(xiàn)了更為靈活的物理層和鏈路層互聯(lián)的接口以及鏈路層數(shù)據(jù)轉(zhuǎn)換。另外,本發(fā)明可在異步緩沖接口中加入了更多的狀態(tài)信號,使得對于異步緩沖接口的控制更加完善,可增加對鏈路層幀的預(yù)處理能力,使得產(chǎn)品的實現(xiàn)更為簡化。圖1是本發(fā)明的鏈路層數(shù)據(jù)轉(zhuǎn)換裝置在系統(tǒng)中的結(jié)構(gòu)示意圖。圖2是本發(fā)明的鏈路層數(shù)據(jù)轉(zhuǎn)換裝置在接收方向的結(jié)構(gòu)圖。圖3是本發(fā)明的鏈路層數(shù)據(jù)轉(zhuǎn)換裝置在發(fā)送方向的結(jié)構(gòu)圖。圖4是本發(fā)明在發(fā)送方向的調(diào)度機制流程圖。圖5是本發(fā)明在發(fā)送方向的丟包機制示意圖。圖6是本發(fā)明的異步緩沖接口的結(jié)構(gòu)示意圖。具體實施方式下面結(jié)合圖1對本發(fā)明進行描述,圖1為鏈路層數(shù)據(jù)轉(zhuǎn)換裝置在系統(tǒng)中的結(jié)構(gòu)示意圖,包括光纖網(wǎng)絡(luò)101:物理層數(shù)據(jù)可以在光纖網(wǎng)絡(luò)101中傳輸。物理層處理單元102:其通過SPI-3接口110與鏈路層數(shù)據(jù)轉(zhuǎn)換裝置103連接,完成光信號與電信號之間的轉(zhuǎn)換在接收方向,將光信號轉(zhuǎn)換為電信號;在發(fā)送方向,將電信號轉(zhuǎn)換為光信號。網(wǎng)絡(luò)層處理單元104:進行網(wǎng)絡(luò)層報文的轉(zhuǎn)發(fā)處理,不是本發(fā)明的重點。Facility接口109:光纖網(wǎng)絡(luò)101與物理層處理單元102的接口。SPI-3接口110:物理層處理單元102與鏈路層數(shù)據(jù)轉(zhuǎn)換裝置103的接口,由于下行的物理層接口有多個端口,因此和它連接的SPI-3接口110采用multi-port(多端口)模式工作。本發(fā)明的所述SPI-3接口110由異步緩沖接口107和/或108實現(xiàn)。當(dāng)然,SPI-3接口110并不是唯一的物理層與鏈路層之間的接口,也可以由SPI-4接口或SPI-5接口來代替。數(shù)據(jù)緩沖111:鏈路層數(shù)據(jù)轉(zhuǎn)換裝置103與網(wǎng)絡(luò)層處理單元104的接口,用于對所收發(fā)的IP包進行緩沖處理。鏈路層信息表(接口屬性)112:存儲物理層的接口信息和和基于接口的業(yè)務(wù)信息,與本發(fā)明的關(guān)系不大。鏈路層數(shù)據(jù)轉(zhuǎn)換裝置103:是本發(fā)明的重點,所述鏈路層數(shù)據(jù)轉(zhuǎn)換裝置103進一步包括有異步緩沖接口107和108,幀接收處理單元105以及幀發(fā)送處理單元106,其中異步緩沖接口107:接收方向上的物理層處理單元102與鏈路層數(shù)據(jù)轉(zhuǎn)換裝置103的接口,所述異步緩沖接口107由具有回寫機制的FIFO實現(xiàn),具體參見圖6及其說明,其不僅可實現(xiàn)物理層處理與鏈路層處理的數(shù)據(jù)緩沖和時鐘隔離,從而可避免由于異步時鐘導(dǎo)致的亞穩(wěn)態(tài)出現(xiàn),而且有能力將已寫入的幀數(shù)據(jù)進行刪除,所述已寫入的幀數(shù)據(jù)可以是錯誤幀或無效幀等無用幀。異步緩沖接口108:發(fā)送方向上的鏈路層數(shù)據(jù)轉(zhuǎn)換裝置103與物理層處理單元102的接口,所述異步緩沖接口108在結(jié)構(gòu)上與異步緩沖接口107完全一樣,但增加了些其它功能,例如后文所述的等待計數(shù)器。幀接收處理單元105:用于對從物理層處理單元102發(fā)來并緩存在所述異步緩沖接口107的幀數(shù)據(jù)進行轉(zhuǎn)換處理,并將經(jīng)轉(zhuǎn)換處理所得的數(shù)據(jù)發(fā)送給網(wǎng)絡(luò)層處理單元104。幀發(fā)送處理單元106:用于對網(wǎng)絡(luò)層處理單元104發(fā)送來的數(shù)據(jù)進行轉(zhuǎn)換處理,并將經(jīng)轉(zhuǎn)換處理所得的幀數(shù)據(jù)緩存到所述異步緩沖接口108,再發(fā)送給物理層處理單元102。其中,在接收方向上,鏈路層數(shù)據(jù)轉(zhuǎn)換裝置103將從SPI-3接口IIO收到的由物理層處理單元102發(fā)來的幀數(shù)據(jù)放入異步緩沖接口107中緩存;在發(fā)送方向上,鏈路層數(shù)據(jù)轉(zhuǎn)換裝置103將網(wǎng)絡(luò)層處理單元104送來的網(wǎng)絡(luò)層報文處理成幀數(shù)據(jù)后緩沖在異步緩沖接口108,再通過SPI-3接口IIO發(fā)送給物理層處理單元102。值得一提的是,對物理層處理單元102送來的數(shù)據(jù)提取幀后,鏈路層數(shù)據(jù)轉(zhuǎn)換裝置103在SPI-3接口110接收方向僅通過-"個異步FIFO作時鐘隔離和數(shù)據(jù)緩沖處理(異步緩沖接口107),只要HFO狀態(tài)允許,就可以接收物理層處理單元102發(fā)過來的數(shù)據(jù),從而使得接口操作最大程度的簡化。同時由于SPI-3接口110只對異步緩沖接口107進行寫操作,而鏈路層數(shù)據(jù)轉(zhuǎn)換裝置103只對異步緩沖接口107作讀操作并且對幀的處理將在異步緩沖接口107緩沖處理之后完成,從而將兩個時鐘域完全隔離開來,避免了異步時鐘所造成的亞穩(wěn)態(tài)現(xiàn)象。另夕卜,為了避免對異步緩沖接口107或108中寫入混亂的數(shù)據(jù),因此要進行過濾,只有當(dāng)控制信號依次為"數(shù)據(jù)有效并且傳輸開始"一>"數(shù)據(jù)有效并且報文開始"—>"數(shù)據(jù)有效并且報文結(jié)束"時,才認(rèn)為是幀數(shù)據(jù)而被寫到內(nèi)部FIFO中,否則作為無用幀(例如無效幀或錯誤幀)丟掉,如果已經(jīng)寫了部分?jǐn)?shù)據(jù)到異步緩沖接口107或108中,由于該異步緩沖接口107或108具有回寫機制,可以對已寫入的幀數(shù)據(jù)進行刪除。對于需要丟棄的數(shù)據(jù),只需要將指針指向下^個幀的起始位置即可清除剛才的寫入數(shù)據(jù)。由于異步緩沖接口107和108均是36位寬,而SPI-3接口110需要讀寫的數(shù)據(jù)包括"RDAT[31:0],RMOD[l:O],RSOP,REOP,RERR,RSX"共有38位,所以要在輸入端對標(biāo)志位(高4位)進行編碼,在輸出端再解碼。異步緩沖接口107和108針對SPI-3接口110的編碼規(guī)則參見表1所示。SOP:數(shù)據(jù)起始(StartOfPacket);EOP:數(shù)據(jù)結(jié)束(EndOfPacket);RSX:傳輸起始(ReceiveStartofTransfer);ERR:數(shù)據(jù)錯誤。<table>tableseeoriginaldocumentpage13</column></row><table>表l本發(fā)明中的各個接口一般采用packet-levd(包級)方式實現(xiàn)接口,當(dāng)然也可以采用byte-level(位級)方式來實現(xiàn)接口,這樣可以更有效的利用帶寬。本發(fā)明在鏈路層數(shù)據(jù)轉(zhuǎn)換中采用具有回寫機制的FIFO作為異步緩沖接口,不僅實現(xiàn)物理層處理與鏈路層處理的數(shù)據(jù)緩沖和時鐘隔離,而且能對已寫入的幀數(shù)據(jù)進行刪除,從而實現(xiàn)了更為靈活的物理層和鏈路層互聯(lián)的接口以及鏈路層數(shù)據(jù)轉(zhuǎn)換。本發(fā)明可以應(yīng)用于基于FPGA或ASIC的網(wǎng)絡(luò)設(shè)備。另外,本發(fā)明作為FPGA的實現(xiàn)~可以成為ASIC的前期驗證,作為嵌入式的POS畫PHYLevel3(PacketOverSONETPHYsicalLevel3,SONET物理層上的包-3)接口,應(yīng)用在芯片化的通信產(chǎn)品中。圖2是本發(fā)明的鏈路層數(shù)據(jù)轉(zhuǎn)換裝置在接收方向結(jié)構(gòu)圖,圖1中的幀接收處理單元105進歩包括幀分析單元113:用于對從物理層處理單元102發(fā)來的緩存在異步緩沖接口107的幀數(shù)據(jù)進行分析與選擇處理,在流向分析上通過提取到的幀頭和輸入端口號等幀信息來決定幀的流向。對于IPv6(InternetProtocolVersion6,因特網(wǎng)協(xié)議版本6)、IPv4(InternetProtocolVersion4,因特網(wǎng)協(xié)議版本4)、MPLS(MultiprotocolLabelSwitch,多協(xié)議標(biāo)記交換)和協(xié)議幀等,分別送給網(wǎng)絡(luò)層處理單元104或CPU118;對于錯誤幀、無效幀等無用幀可直接丟棄。信息頭處理單元114:對于從所述幀分析單元113接收的需要送交CPU118處理的幀數(shù)據(jù)封裝信息頭,并將這些信息頭貼在上送數(shù)據(jù)的前面通過CPU接口116上送CPU118。例如需要CPU118處理的協(xié)議幀或者特殊處理的幀,在幀數(shù)據(jù)前面打上CPU118需要的報文頭,其中報文頭包含了報文的幀類型、IP包類型、報文長度、端口號等信息再—匕送給CPU118。解幀處理單元115:用于對鏈路層幀的解幀工作。在接收方向,對從異步緩沖接口107收到的幀進行分析后,對需要送網(wǎng)絡(luò)層處理單元104處理的幀數(shù)據(jù),如IPv6、IPv4、和MPLS幀等,進行剝離幀頭以提取網(wǎng)絡(luò)層報文,并將該網(wǎng)絡(luò)層報文通過網(wǎng)絡(luò)層接口U7送給網(wǎng)絡(luò)層處理單元104。本發(fā)明的鏈路層數(shù)據(jù)轉(zhuǎn)換裝置103進--步包括有CPU接口116:主要由雙口RAM構(gòu)成,用于實現(xiàn)鏈路層數(shù)據(jù)轉(zhuǎn)換裝置103與CPU118的數(shù)據(jù)傳送。網(wǎng)絡(luò)層接口117:主要由雙口RAM構(gòu)成,用于實現(xiàn)鏈路層數(shù)據(jù)轉(zhuǎn)換裝置103與網(wǎng)絡(luò)層處理單元104的數(shù)據(jù)傳送。圖3是鏈路層數(shù)據(jù)轉(zhuǎn)換裝置在發(fā)送方向的結(jié)構(gòu)圖,圖1中的幀發(fā)送處理單元106包括成幀處理單元119和等待計數(shù)器120,其中成幀處理單元U9:用于將網(wǎng)絡(luò)層處理單元104和/或CPU118送來的數(shù)據(jù)封裝成為幀數(shù)據(jù),緩存到所述異步緩沖單元108后發(fā)送給物理層處理單元102。成幀處理單元119用于控制幀數(shù)據(jù)發(fā)送的時序,查找鏈路層信息,構(gòu)造鏈路層幀。本實施例中,成幀處理單元119有2個部分,分別對應(yīng)2個IPFIFO一一CPU接口116和網(wǎng)絡(luò)層接口117,這兩部分根據(jù)從IPFIFO取出IP包數(shù)據(jù)和對應(yīng)的地址信息將IP包封裝成鏈路層幀,再緩存在異步緩沖接口108中,并經(jīng)過SPI-3接口110發(fā)送給物理層處理單元102。等待計數(shù)器120:其受所述成幀處理單元119的控制并配置有閥值。當(dāng)所述異步緩沖接口108向物理層處理單元102發(fā)送幀數(shù)據(jù)而對應(yīng)的物理層接收端口由于阻塞等原因?qū)е峦V菇邮諘r,成幀處理單元119觸發(fā)等待計數(shù)器120計數(shù),當(dāng)計數(shù)值超出所述閥值,等待計數(shù)器120用來實現(xiàn)丟棄處理的時序控制,所述成幀處理單元119根據(jù)預(yù)置的丟棄機制進行幀數(shù)據(jù)的丟棄處理,以防止隊列的擁塞。另外,等待計數(shù)器120的閥值是可以由用戶來通過寄存器或計數(shù)器來設(shè)置,具體閥值可以依據(jù)對流量的預(yù)判斷和限制來設(shè)定。閥值設(shè)置的大一些,會減少丟包率,但是會使端口堵塞的機會更大。這樣可以更方便的調(diào)節(jié)對SPI-3接口110緩沖的控制進而實現(xiàn)對流量的控制。圖4是本發(fā)明在發(fā)送方向的調(diào)度機制流程圖。由于本發(fā)明在接收方向只有一路數(shù)據(jù)等待發(fā)送,而在發(fā)送方向上,由于有兩路數(shù)據(jù)等待發(fā)送,因此發(fā)送方向應(yīng)當(dāng)有-個調(diào)度機制。步驟S401,處于等待狀態(tài);步驟S402,當(dāng)CPU有數(shù)據(jù)要發(fā)送時,通過CPU接口向鏈路層數(shù)據(jù)轉(zhuǎn)換裝置發(fā)送-個請求;步驟S403,判斷CPU接口是否已滿,若是則執(zhí)行步驟S408,否則執(zhí)行歩驟S404;歩驟S404,進行雙口RAM的寫操作,將CPU發(fā)送過來的數(shù)據(jù)(IP包數(shù)據(jù))寫入CPU接口的雙口RAM中;步驟S405,當(dāng)網(wǎng)絡(luò)層處理單元有數(shù)據(jù)要發(fā)送時,通過網(wǎng)絡(luò)層接口向鏈路層數(shù)據(jù)轉(zhuǎn)換裝置發(fā)送一個請求;步驟S406,判斷該網(wǎng)絡(luò)層接口的雙口RAM是否己滿,若是則執(zhí)行步驟S407,否則執(zhí)行步驟S408;步驟S407,進行雙口RAM的寫操作,將網(wǎng)絡(luò)層處理單元發(fā)送過來的數(shù)據(jù)寫入網(wǎng)絡(luò)層接口中的雙口RAM中;步驟S408:當(dāng)CPU接口或網(wǎng)絡(luò)層接口中的雙口RAM己滿時,進行丟棄包處理,以免造成鏈路的堵塞,丟包之后返回到歩驟S401。圖5是本發(fā)明在發(fā)送方向丟包機制的示意圖。其中,在發(fā)送方向上,鏈路層轉(zhuǎn)換裝置將封裝好的幀數(shù)據(jù)發(fā)送到對應(yīng)的物理層端口,如果在一個幀的發(fā)送過程中,對應(yīng)端口始終處于可接收狀態(tài),則此幀會連續(xù)的發(fā)送到相應(yīng)端口。如果在發(fā)送的時候該端口停止接收,則進入等待狀態(tài),并在等待一定時間之后強行丟包處理。步驟S501,在發(fā)送方向上,異步緩沖接口中如果有數(shù)據(jù),就會發(fā)出一個請求到對應(yīng)的物理層端口,并開始對相應(yīng)端口狀態(tài)的檢査。如果對應(yīng)端口有效,則執(zhí)行步驟S502,如果對應(yīng)端口無效,執(zhí)行步驟S503。步驟S502,異步緩沖接口生成數(shù)據(jù)接口的時序,將異步緩沖單元中的數(shù)據(jù)發(fā)送到物理層處理單元。如果對應(yīng)端口始終有效,則一直執(zhí)行本步驟直至數(shù)據(jù)發(fā)送完畢,否則一旦端口無效,則執(zhí)行步驟S503。步驟S503,由等待計數(shù)器306進行計數(shù),如果在計數(shù)的過程中超出計數(shù)閥值,執(zhí)行步驟S504;如果計數(shù)沒有超過閥值且端口恢復(fù)有效,則繼續(xù)執(zhí)行步驟S502;如果沒有超過閥值,但是端口持續(xù)無效,則繼續(xù)執(zhí)行本步驟,直至端口有效或超出閥值。步驟S504,當(dāng)?shù)却嫈?shù)器的計數(shù)值超過閥值,刪除無用的數(shù)據(jù)。其中,所述端口有效是指端口接收數(shù)據(jù)使能;端口無效是指端口接收數(shù)據(jù)不存在、關(guān)閉或者數(shù)據(jù)堵塞;所述超出閥值是指當(dāng)?shù)却嫈?shù)器當(dāng)前的計數(shù)值大于闊值;所述未超出闊值,是指當(dāng)?shù)却嫈?shù)器當(dāng)前的計數(shù)值小于閥值。圖6是本發(fā)明的異歩緩沖接口的結(jié)構(gòu)示意圖,其中異步緩沖接口是本發(fā)明的最主要的特征之一,其還提供了空、滿、將空、將滿、預(yù)定義空、滿等多種狀態(tài)指示信號,其中,預(yù)定義空和預(yù)定義滿是本發(fā)明新改進的部分,由一個可以配置的比較器來實現(xiàn)。本發(fā)明的具有回寫機制的異步緩沖接口601(同異步緩沖單元107和108)由雙口RAM605在外層加入''f地址控制電路和讀地址控制電路構(gòu)成的FIFO,雙口RAM605作為異步緩沖接口103的內(nèi)核,用戶在外部只需要提供讀寫信號,而不需要直接操作地址,所以,在使用層面上看起來相當(dāng)于一個FIFO。所述寫地址控制電路包括有FIFO寫入控制單元602,用于完成異步緩沖接口601的寫操作邏輯。寫地址控制606:用于根據(jù)外部的控制信號(寫信號)完成對雙口RAM605的寫操作,直接控制地址的增加,如果需要刪除當(dāng)前幀數(shù)據(jù),直接將地址指向下一個幀起始處。所述讀地址控制電路包括有FIFO讀取控制單元604::用于完異步緩沖接口601的讀操作邏輯。讀地址控制607:用于根據(jù)外部的控制信號(讀信號)完成對雙口RAM605的讀操作,直接控制地址的增加。本發(fā)明的異步緩沖接口601還包括有減法器608:用于根據(jù)所述異步緩沖接口601的FIFO已用空間值和FIFO總空間值來計算FIFO剩余空間值。接著,減法器608將所述FIFO剩余空間值發(fā)送給比較器609。其中F[FO總空間值由異步緩沖接口通知給減法器608,而所述FIFO己用空間值由目前雙口RAM605的總深度可知。比較器609:用于存儲固定配置和用戶配置的若干狀態(tài)指示信號及其代表值,并將所述減法器608計算的FIFO剩余空間值與所述狀態(tài)指示信號的代表值進行比較,得出當(dāng)前狀態(tài)指示信號。其中,固定配置的狀態(tài)指示信號包括空、將空、滿、將滿。對于滿、將滿、空、將空的狀態(tài),是當(dāng)FIFO剩余空間值分別為0、1、總深度、總深度一1的情況,即相當(dāng)于控制寄存器的數(shù)值是固定的情況。而用戶配置的狀態(tài)指示信號包括預(yù)定義空和預(yù)定義滿。其由用戶將預(yù)定義滿和預(yù)定義空的數(shù)值以控制寄存器的方式寫到比較器609,比較器609將減法器608得到的雙口RAM605的FIFO剩余空間值與此寄存器進行比較,如果大于預(yù)定義空的數(shù)值,那么就認(rèn)為異步緩沖接口601已經(jīng)進入了需要空告警的狀態(tài),將預(yù)定義空信號拉起;如果小于預(yù)定義滿的數(shù)值,那么就認(rèn)為異步緩沖接口601已經(jīng)進入了需要滿告警的狀態(tài),將預(yù)定義滿信號拉起。并且,將作為當(dāng)前指示信號的信號滿、將滿或預(yù)定義滿送到所述寫地址控制電路以實現(xiàn)寫控制,而作為當(dāng)前指示信號的信號空、將空或預(yù)定義空送到所述讀地址控制電路以實現(xiàn)讀控制。采用上述用戶配置的預(yù)定義空和預(yù)定義滿等預(yù)處理選項,克服了普通FIFO單元狀態(tài)過少的缺點,并在數(shù)據(jù)緩沖過程中提供了更多的表示狀態(tài)的信號,使得對于異步緩沖接口的控制更加完善;進一步,使得系統(tǒng)可以提前對FIFO的空滿狀態(tài)進行判斷,從而提高系統(tǒng)的預(yù)處理能力,使用戶可以只關(guān)心交換網(wǎng)絡(luò)數(shù)據(jù)的處理,簡化了數(shù)據(jù)產(chǎn)品的實現(xiàn)。所述異步緩沖接口601與幀處理單元610連接,該幀處理單元610進行幀數(shù)據(jù)的分析和分類,其包括4級移位寄存器611:將得到的鏈路層幀頭部拼裝成一個4到14字節(jié)的數(shù)據(jù),每級寄存器是32位,最多需要4級寄存器;優(yōu)先級選擇器612:生成對于當(dāng)前幀的處理方式,控制信號就是幀類型等鏈路層信息。綜上,本發(fā)明描述了一種基于FPGA的鏈路層數(shù)據(jù)轉(zhuǎn)換方法和裝置,以一種很簡單的方法實現(xiàn)了-、二層網(wǎng)絡(luò)接口、二層數(shù)據(jù)傳送和二、三層網(wǎng)絡(luò)接口。由于本發(fā)明的接口簡單容易實現(xiàn),可以廣泛的應(yīng)用在基于FPGA或ASIC的硬件轉(zhuǎn)發(fā)系統(tǒng)中。當(dāng)然,本發(fā)明還可有其它多種實施例,在不背離本發(fā)明精神及其實質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護范圍。權(quán)利要求1、一種用于鏈路層的數(shù)據(jù)轉(zhuǎn)換方法,包括對物理層處理單元發(fā)來的幀數(shù)據(jù)進行數(shù)據(jù)轉(zhuǎn)換;和/或?qū)W(wǎng)絡(luò)層處理單元發(fā)來的數(shù)據(jù)進行數(shù)據(jù)轉(zhuǎn)換;其特征在于,所述對物理層處理單元發(fā)來的幀數(shù)據(jù)進行數(shù)據(jù)轉(zhuǎn)換的步驟包括將物理層處理單元發(fā)來的幀數(shù)據(jù)緩存到具有回寫機制的異步緩沖接口,并對所述幀數(shù)據(jù)進行轉(zhuǎn)換處理之后發(fā)送給網(wǎng)絡(luò)層處理單元;所述對網(wǎng)絡(luò)層處理單元發(fā)來的數(shù)據(jù)進行數(shù)據(jù)轉(zhuǎn)換的步驟包括將網(wǎng)絡(luò)層處理單元發(fā)來的數(shù)據(jù)進行轉(zhuǎn)換處理,并將經(jīng)轉(zhuǎn)換處理所得的幀數(shù)據(jù)緩存到具有回寫機制的異步緩沖接口之后發(fā)送給物理層處理單元。2、根據(jù)權(quán)利要求1所述的方法,其特征在于,所述具有回寫機制的異步緩沖接口作為物理層和鏈路層之間的SPI-3接口。3、根據(jù)權(quán)利要求1所述的方法,其特征在于,所述具有回寫機制的異步緩沖接口由雙口RAM在外層加入讀地址控制電路和寫地址控制電路來實現(xiàn)。4、根據(jù)權(quán)利要求13任一項所述的方法,其特征在于,所述對物理層處理單元發(fā)來的幀數(shù)據(jù)進行數(shù)據(jù)轉(zhuǎn)換的步驟進-一歩包括A、所述異步緩沖接口將從物理層處理單元接收來的幀數(shù)據(jù)進行數(shù)據(jù)緩沖和時鐘隔離-,B、對緩存的幀數(shù)據(jù)進行幀分析及選擇處理;C、對于需要CPU處理的幀數(shù)據(jù)封裝上信息頭后發(fā)送給CPU;D、對于需要送網(wǎng)絡(luò)層處理單元處理的幀數(shù)據(jù)進行解幀,生成網(wǎng)絡(luò)層報文發(fā)送給網(wǎng)絡(luò)層處理單元。5、根據(jù)權(quán)利要求4所述的方法,其特征在于,所述步驟A中僅用一個所述異步緩沖接口作數(shù)據(jù)緩沖和時鐘隔離處理。6、根據(jù)權(quán)利要求4所述的方法,其特征在于,所述步驟A進一步包括Al、根據(jù)所述異步緩沖接口的總空間值和己使用空間值來計算異步緩沖接口的剩余空間值;A2、將步驟A1中得到的異步緩沖接口的剩余空間值與預(yù)存的若干狀態(tài)指示信號的代表值進行比較以得到當(dāng)前狀態(tài)指示信號,所述狀態(tài)指示信號包括固定配置的空、將空、滿、將滿以及用戶配置的預(yù)定義空、預(yù)定義滿;A3、將作為當(dāng)前狀態(tài)指示信號的滿、將滿或預(yù)定義滿送到所述寫地址控制電路以實現(xiàn)寫控制;A4、將作為當(dāng)前狀態(tài)指示信號的空、將空或預(yù)定義空送到所述讀地址控制電路以實現(xiàn)讀控制。7、根據(jù)權(quán)利要求13任一項所述的方法,其特征在于,所述對網(wǎng)絡(luò)層處理單元發(fā)來的數(shù)據(jù)進行數(shù)據(jù)轉(zhuǎn)換的步驟進一步包括E、對于來自網(wǎng)絡(luò)層處理單元的數(shù)據(jù)進行成幀處理,得到幀數(shù)據(jù)后發(fā)送給所述異步緩沖接口處理;F、對于來自CPU的數(shù)據(jù)進行成幀處理,得到幀數(shù)據(jù)后發(fā)送給所述異步緩沖接口處理;G、所述異步緩沖接口將經(jīng)過步驟E和/或步驟F所得到的幀數(shù)據(jù)進行數(shù)據(jù)緩沖和時鐘隔離后,再發(fā)送給物理層處理單元進行處理。8、根據(jù)權(quán)利要求7所述的方法,其特征在于,所述步驟E中對來自網(wǎng)絡(luò)層處理單元的數(shù)據(jù)的處理進一步包括El、所述網(wǎng)絡(luò)層處理單元向網(wǎng)絡(luò)層接口請求發(fā)送數(shù)據(jù);E2、判斷該網(wǎng)絡(luò)層接口是否已滿,若是則執(zhí)行步驟E3,否則執(zhí)行步驟E4;E3、進行數(shù)據(jù)丟棄處理,并返回等待狀態(tài);E4、將所述網(wǎng)絡(luò)層處理單元發(fā)送過來的數(shù)據(jù)寫入網(wǎng)絡(luò)層接口。9、根據(jù)權(quán)利要求7所述的方法,其特征在于,所述步驟F中對來自CPU的數(shù)據(jù)的處理進一步包括F1、所述CPU向CPU接口請求發(fā)送數(shù)據(jù);F2、判斷該CPU接口是否已滿;若是則執(zhí)行步驟F3,否則執(zhí)行步驟F4;F3、進行數(shù)據(jù)丟棄處理,并返回等待狀態(tài);F4、將所述CPU發(fā)送過來的數(shù)據(jù)寫入CPU接口。10、根據(jù)權(quán)利要求7所述的方法,其特征在于,所述步驟G中異步緩沖接口向物理層處理單元發(fā)送幀數(shù)據(jù)的步驟進一步包括Gl、所述異步緩沖接口向?qū)?yīng)物理層接收端口請求發(fā)送幀數(shù)據(jù);G2、持續(xù)判斷所述對應(yīng)物理層接收端口是否有效;若是則執(zhí)行步驟G3,否則執(zhí)行步驟G4;G3、所述異步緩沖接口向?qū)?yīng)物理層接收端口發(fā)送幀數(shù)據(jù);G4、由等待計數(shù)器進行計數(shù),并將所得計數(shù)值與預(yù)置的閥值進行比較;G5、判斷該計數(shù)值是否超過閥值,若是,執(zhí)行步驟G6,否則返回步驟G2;G6、進行數(shù)據(jù)丟棄處理。11、一種用于鏈路層的數(shù)據(jù)轉(zhuǎn)換裝置,其特征在于,包括具有回寫機制的異步緩沖接口,用于在物理層處理單元和鏈路層處理單元之間的數(shù)據(jù)緩沖;幀接收處理單元用于對從物理層處理單元發(fā)來并緩存在所述異步緩沖接口的幀數(shù)據(jù)進行轉(zhuǎn)換處理,并將轉(zhuǎn)換處理所得的數(shù)據(jù)發(fā)送給網(wǎng)絡(luò)層處理單元;幀發(fā)送處理單元用于對網(wǎng)絡(luò)層處理單元發(fā)送來的數(shù)據(jù)進行轉(zhuǎn)換處理,并將經(jīng)轉(zhuǎn)換處理所得的幀數(shù)據(jù)緩存到所述異步緩沖接口后發(fā)送給物理層處理單元。12、根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述異步緩沖接口作為物理層和鏈路層之間的SPI-3接口。13、根據(jù)權(quán)利要求ll所述的裝置,其特征在于,所述異步緩沖接口包招雙口RAM以及其外層加入的讀地址控制電路和寫地址控制電路。14、根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述異步緩沖接口進一步包括減法器,用于根據(jù)異步緩沖接口的已用空間值和總空間值來計算異步緩沖接口的剩余空間值;比較器,用于存儲固定配置和用戶配置的若干狀態(tài)指示信號及其代表值,并將所述異步緩沖接口的剩余空間值與所述代表值進行比較,得出當(dāng)前狀態(tài)指示信號,將該當(dāng)前狀態(tài)指示信號發(fā)送給所述寫地址控制電路以實現(xiàn)寫控制,或者發(fā)送給所述讀地址控制電路以實現(xiàn)讀控制。15、根據(jù)權(quán)利要求14所述的裝置,其特征在于,所述比較器中預(yù)存的狀態(tài)指示信號包括固定配置的空、將空、滿、將滿以及用戶配置的預(yù)定義空、預(yù)定義滿;并且將作為當(dāng)前指示信號的信號滿、將滿或預(yù)定義滿送到所述寫地址控制電路,而信號空、將空或預(yù)定義空送到所述讀地址控制電路。16、根據(jù)權(quán)利要求1115任一項所述的裝置,其特征在于,所述幀接收處理單元進一步包括幀分析單元用于對緩存在所述異步緩沖接口的幀數(shù)據(jù)進行分析與選擇處理;信息頭處理單元用于對從所述幀分析單元接收的需要送交CPU處理的幀數(shù)據(jù)封裝上信息頭,并發(fā)送給所述CPU;解幀處理單元用于對從所述幀分析單元接收的需要送交網(wǎng)絡(luò)層處理單元處理的幀數(shù)據(jù)進行解幀,以生成網(wǎng)絡(luò)層報文發(fā)送至網(wǎng)絡(luò)層處理單元。17、根據(jù)權(quán)利要求1115任一項所述的裝置,其特征在于,所述幀發(fā)送處理單元進一步包括成幀處理單元用于將網(wǎng)絡(luò)層處理單元和/或CPU送來的數(shù)據(jù)封裝成為幀數(shù)據(jù),緩存到所述具有回寫機制的異步緩沖單元后發(fā)送給物理層處理單元;等待計數(shù)器,其受所述成幀處理單元的控制并配置有閥值;當(dāng)所述異步緩沖接口向物理層處理單元發(fā)送幀數(shù)據(jù)而對應(yīng)的物理層接收端口停止接收時,成幀處理單元觸發(fā)等待計數(shù)器計數(shù),當(dāng)計數(shù)值超出所述閥值,所述成幀處理單元根據(jù)預(yù)置的丟棄機制進行幀數(shù)據(jù)的丟棄處理。全文摘要本發(fā)明公開了一種用于鏈路層的數(shù)據(jù)轉(zhuǎn)換方法和裝置,該方法包括步驟A.對物理層處理單元發(fā)來的幀數(shù)據(jù)進行數(shù)據(jù)轉(zhuǎn)換;和/或步驟B.對網(wǎng)絡(luò)層處理單元發(fā)來的數(shù)據(jù)進行數(shù)據(jù)轉(zhuǎn)換;步驟A包括將物理層處理單元發(fā)來的幀數(shù)據(jù)緩存到具有回寫機制的異步緩沖接口,并對所述幀數(shù)據(jù)進行轉(zhuǎn)換處理之后發(fā)送給網(wǎng)絡(luò)層處理單元;步驟B包括將網(wǎng)絡(luò)層處理單元發(fā)來的數(shù)據(jù)進行轉(zhuǎn)換處理,并將經(jīng)轉(zhuǎn)換處理所得的幀數(shù)據(jù)緩存到具有回寫機制的異步緩沖接口之后發(fā)送給物理層處理單元。本發(fā)明不僅實現(xiàn)物理層處理與鏈路層處理的數(shù)據(jù)緩沖和時鐘隔離,并且實現(xiàn)了更為靈活的物理層和鏈路層互聯(lián)的接口以及鏈路層數(shù)據(jù)轉(zhuǎn)換。本發(fā)明可廣泛應(yīng)用在基于FPGA或ASIC的轉(zhuǎn)發(fā)系統(tǒng)中。文檔編號H04L29/08GK101150589SQ20061011328公開日2008年3月26日申請日期2006年9月21日優(yōu)先權(quán)日2006年9月21日發(fā)明者原曲,李艷花,焱楊申請人:中興通訊股份有限公司