專利名稱:信元傳輸方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,具體而言,涉及一種信元傳輸方法及裝置。
背景技術(shù):
在路由器芯片設(shè)計中,對系統(tǒng)的穩(wěn)定性要求非常高,這就要求數(shù)據(jù)在內(nèi)部處理和傳輸過程中不能出現(xiàn)數(shù)據(jù)錯誤導(dǎo)致系統(tǒng)癱瘓。交換芯片的接口通常都是采用高速接口,如 SerDes接口等,且通常芯片的內(nèi)部處理時鐘和接口 IP上使用的時鐘會不同,這就涉及到數(shù)據(jù)的跨時鐘域處理問題。而交換的數(shù)據(jù)中通常是以信元為單位來進行操作,如何確保數(shù)據(jù)的正確傳輸,以及發(fā)生錯誤的情況下怎么消除該錯誤對系統(tǒng)層面的影響顯得尤為重要。先入先出(FirstIn First Out,簡稱為 FIFO)或隨機存取器(Random Access Memory,簡稱為RAM)被大量運用在路由器芯片中。RAM本身在讀寫的過程中存在出錯概率。 雖然出錯的概率非常小,而且同時出現(xiàn)多比特(bit)錯誤的概率更小,但是對于路由器的設(shè)備來說,由于要求系統(tǒng)工作非常穩(wěn)定,從而要求出現(xiàn)異常的概率也要極低。為此,就不能不考慮RAM發(fā)生bit錯誤而對系統(tǒng)造成的影響。通過采用錯誤校驗碼(Error Correction Code,簡稱為ECC) RAM方式來糾正少量的bit錯誤,或者用奇偶校驗來監(jiān)測bit錯誤的發(fā)生 (ECC方式也可以作為一種監(jiān)控手段來運用),通過對監(jiān)測結(jié)果的處理,來避免因數(shù)據(jù)錯誤而導(dǎo)致對系統(tǒng)的影響。從芯片的設(shè)計層面來講,更多是從設(shè)計層面來規(guī)避問題。圖1為根據(jù)相關(guān)技術(shù)的包或信元的常見格式的示意圖,如圖1所示,對于以信元 (不局限于信元,對包同樣適用)的形式來傳輸?shù)穆酚善黝愋酒?,通常都會涉及到信元頭來攜帶信元的信息,而通常信元都會有多種類型存在,他們的信息都在信元頭中體現(xiàn)。因此, 正確的信元頭是正確對信元處理的關(guān)鍵。在信元數(shù)據(jù)在RAM中存取的時候,如果在信元頭位置發(fā)送bit錯誤(承載payload 發(fā)送錯誤的影響比較有限,可以不關(guān)注),導(dǎo)致對信元的信息判斷錯誤,這個將對系統(tǒng)產(chǎn)生不可預(yù)計的影響。該影響小到多個信元丟棄,大到流量突變甚至斷流。正如前面所說的,在芯片的出口側(cè)通常都會涉及到跨時鐘域問題,于是必然的引入了一個異步FIFO。在異步FIFO的讀寫控制上,通常會面臨一些問題異步FIFO內(nèi)地址格雷碼轉(zhuǎn)換后在跨時鐘域過程中有可能因為時序問題導(dǎo)致采樣異常,從而導(dǎo)致異步FIFO的空、滿或者將空、將滿指示不能及時準確的反應(yīng)FIFO狀態(tài),這個也是設(shè)計中通常都只用將空、將滿來設(shè)計電路。而如果要將FIFO讀空,如果用空標志來判斷,則設(shè)計上可靠性太差。由于數(shù)據(jù)都是以包或者信元為一個整體來傳輸,因為數(shù)據(jù)總線帶寬問題,通常需要多拍才能傳遞完一個包或者信元。這就意味著一個包或信元分成幾組存儲在RAM中。怎么樣能準確的將一個RAM的完整包或信元讀出,通常采用的方法是讀出信元的頭之后,根據(jù)信元頭中信息來判斷該包或者信元有多大,從而在讀側(cè)計數(shù),等待計數(shù)完之后即認為一個完整包讀出,從而判斷后面是否繼續(xù)一個新的包或信元的讀操作。發(fā)明人發(fā)現(xiàn),如果信元傳輸錯誤,將導(dǎo)致傳輸該信元的異步FIFO通道內(nèi)的傳輸?shù)刂分羔榿y序,無法恢復(fù),進而將導(dǎo)致后續(xù)通過該異步FIFO通道傳輸?shù)乃行旁紓鬏斿e誤。
發(fā)明內(nèi)容
本發(fā)明的主要目的在于提供一種信元傳輸方法及裝置,以解決上述的信元傳輸錯誤導(dǎo)致的后續(xù)通過異步FIFO通道傳輸?shù)乃行旁紓鬏斿e誤的問題。為了實現(xiàn)上述目的,根據(jù)本發(fā)明的一個方面,提供了一種信元傳輸方法。根據(jù)本發(fā)明的信元傳輸方法包括獲取待傳輸?shù)男旁械牡谝划惓P畔?;在通過異步先入先出FIFO通道對信元進行傳輸?shù)倪^程中,獲取信元的第二異常信息;根據(jù)第一異常信息和第二異常信息,確定是否對信元進行丟棄。進一步地,第一異常信息和第二異常信息均為高電平有效,根據(jù)第一異常信息和第二異常信息,對信元進行丟棄包括對第一異常信息和第二異常信息進行或計算,得到第三異常信息;根據(jù)第三異常信息,對信元進行丟棄。進一步地,根據(jù)第三異常信息,對信元進行丟棄包括生成信元的第一校驗信息; 根據(jù)第三異常信息對第一校驗信息進行加擾;判斷加擾后的第一校驗信息是否正確,如果判斷結(jié)果為否,則對信元進行丟棄。進一步地,根據(jù)第三異常信息對第一校驗信息進行加擾包括根據(jù)第三異常信息對第一校驗信息取反。進一步地,獲取待傳輸?shù)男旁牡谝划惓P畔ǐ@取與待傳輸?shù)男旁瑫r輸入的第二校驗信息,判斷第二校驗信息是否正確,如果判斷結(jié)果為否,則根據(jù)第二校驗信息,得到第一異常信息;如果判斷結(jié)果為是,則判斷待傳輸?shù)男旁念愋褪欠裾_,如果判斷結(jié)果為否,則得到第一異常信息;如果判斷結(jié)果為是,則判斷待傳輸?shù)男旁母袷绞欠衽c預(yù)先設(shè)置的類型的格式相同,如果判斷結(jié)果為否,則得到第一異常信息。進一步地,獲取信元的第二異常信息包括判斷隨機存取器RAM是否存在位錯誤; 如果判斷結(jié)果為是,則根據(jù)位錯誤,獲取第二異常信息。進一步地,上述方法還包括使用信元,控制異步FIFO通道的開啟或關(guān)閉。進一步地,其特征在于,在獲取待傳輸?shù)男旁牡谝划惓P畔⒅?,上述方法還包括將第一異常信息與信元共同通過異步FIFO通道進行傳輸。進一步地,在獲取待傳輸?shù)男旁牡谝划惓P畔⒅?,上述方法還包括獲取信元的頭部標識和尾部標識;將頭部標識和尾部標識與信元共同通過異步FIFO通道進行傳輸。進一步地,將尾部標識置于從信元的最高位開始的第二位,并與信元共同通過異步FIFO通道進行傳輸。為了實現(xiàn)上述目的,根據(jù)本發(fā)明的另一個方面,提供了一種信元傳輸裝置。根據(jù)本發(fā)明的信元傳輸裝置包括預(yù)處理模塊,用于獲取待傳輸?shù)男旁械牡谝划惓P畔?;異步先入先出FIFO模塊,用于在通過異步FIFO通道對信元進行傳輸?shù)倪^程中, 獲取信元的第二異常信息;處理模塊,用于根據(jù)第一異常信息和第二異常信息,對信元進行丟棄。通過本發(fā)明,采用根據(jù)信元及其傳輸過程中的異常信息,對其進行丟棄,解決了信元傳輸錯誤導(dǎo)致的后續(xù)通過異步FIFO通道傳輸?shù)乃行旁紓鬏斿e誤的問題,進而實現(xiàn)穩(wěn)定可靠異步FIFO傳輸。
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當限定。在附圖中圖1是根據(jù)相關(guān)技術(shù)的包或信元的常見格式的示意圖;圖2是根據(jù)本發(fā)明實施例的信元傳輸方法的流程圖;圖3為根據(jù)本發(fā)明實施例的頭部信息(SOC),尾部信息(eoc)和異常信息(err)與信元的位置關(guān)系的示意圖;圖4是根據(jù)本發(fā)明實施例的信元傳輸裝置的結(jié)構(gòu)框圖;圖5是根據(jù)本發(fā)明優(yōu)選實施例的信元傳輸裝置的結(jié)構(gòu)框圖;圖6是根據(jù)本發(fā)明優(yōu)選實施例的輸入信元的時序的示意圖;圖7是根據(jù)本發(fā)明優(yōu)選實施例的總線位寬轉(zhuǎn)換的示意圖;圖8是根據(jù)本發(fā)明優(yōu)選實施例的異常信元生成校驗信息的時序的示意圖;圖9是根據(jù)本發(fā)明優(yōu)選實施例的校驗信息生成模塊的數(shù)據(jù)輸出的示意圖。
具體實施例方式下文中將參考附圖并結(jié)合實施例來詳細說明本發(fā)明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。本發(fā)明的目的是為了克服包或者信元在異步時鐘域傳輸過程中因RAM讀寫發(fā)生數(shù)據(jù)錯誤而導(dǎo)致交換系統(tǒng)癱瘓,提供了一種穩(wěn)定可靠的實現(xiàn)對異步FIFO讀寫控制方法,同時還提供了一種簡單有效對異常包或信元的丟棄處理的實現(xiàn)方案。根據(jù)本發(fā)明的實施例,提供了一種信元傳輸方法。圖2是根據(jù)本發(fā)明實施例的信元傳輸方法的流程圖,如圖2所示,該方法包括如下的步驟S202至步驟S206。步驟S202,獲取待傳輸?shù)男旁械牡谝划惓P畔?。步驟S204,在通過異步FIFO通道對信元進行傳輸?shù)倪^程中,獲取信元的第二異常 fn息ο步驟S206,根據(jù)第一異常信息和第二異常信息,確定是否對信元進行丟棄。相關(guān)技術(shù)中,如果信元傳輸錯誤,將導(dǎo)致傳輸該信元的異步FIFO通道內(nèi)的傳輸?shù)刂分羔榿y序,進而將導(dǎo)致后續(xù)通過該異步FIFO通道傳輸?shù)乃行旁紓鬏斿e誤。本發(fā)明實施例中,第一異常信息可以用于判斷該信元在上游模塊的數(shù)據(jù)處理中是否存在錯誤,第二異常信息可以用于判斷該信元在通過異步FIFO通道的過程中是否存在錯誤,然后對信元進行丟棄,可以避免該信元對后續(xù)通過該異步FIFO通道傳輸?shù)乃行旁挠绊?,進而實現(xiàn)穩(wěn)定可靠異步FIFO傳輸。優(yōu)選地,第一異常信息和第二異常信息均為高電平有效,根據(jù)第一異常信息和第二異常信息,對信元進行丟棄包括對第一異常信息和第二異常信息進行或計算,得到第三異常信息;根據(jù)第三異常信息,對信元進行丟棄。本優(yōu)選實施例中,由于第一異常信息和第二異常信息均為高電平有效,因此對第一異常信息和第二異常信息進行或計算得到的第三異常信息,可以簡單、方便的體現(xiàn)出第一異常信息和第二異常信息中的信息。需要說明的是,上述設(shè)置第一異常信息和第二異常信息以及得到第三異常信息還可以采用其它的方法,例如設(shè)置第一異常信息和第二異常信息均為低電平有效,同時相應(yīng)的,對第一異常信息和第二異常信息進行與計算得到的第三異常信息。因此,實際應(yīng)用中, 任何能體現(xiàn)出本發(fā)明設(shè)計思想的實現(xiàn)異常信息處理的方法,都應(yīng)當納入本發(fā)明的保護范圍。優(yōu)選地,根據(jù)第三異常信息,對信元進行丟棄包括生成信元的第一校驗信息;根據(jù)第三異常信息對第一校驗信息進行加擾;判斷加擾后的第一校驗信息是否正確,如果判斷結(jié)果為否,則對信元進行丟棄。第一校驗信息可以用于下游設(shè)備接收到信元之后,判斷該信元是否正確。本優(yōu)選實施例中,通過對第一校驗信息進行加擾,可以將信元的異常信息體現(xiàn)在該第一校驗信息中,這樣,下游設(shè)備進行信元第一校驗信息的校驗會得到校驗結(jié)果不正確,這樣該信元會在下游丟棄。這種在出口側(cè)統(tǒng)一丟棄異常信元的方法幾乎不會浪費資源,簡單有效。優(yōu)選地,根據(jù)第三異常信息對第一校驗信息進行加擾包括根據(jù)第三異常信息對校驗信息取反。本優(yōu)選實施例中,在生成信元的第一校驗信息之后,將該第一校驗信息取反。這種實現(xiàn)方式簡單、可靠。優(yōu)選地,獲取待傳輸?shù)男旁牡谝划惓P畔ǐ@取與待傳輸?shù)男旁瑫r輸入的第二校驗信息,判斷第二校驗信息是否正確,如果判斷結(jié)果為否,則根據(jù)第二校驗信息, 得到第一異常信息;如果判斷結(jié)果為是,則判斷待傳輸?shù)男旁念愋褪欠裾_,如果判斷結(jié)果為否,則得到第一異常信息;如果判斷結(jié)果為是,則判斷待傳輸?shù)男旁母袷绞欠衽c預(yù)先設(shè)置的類型的格式相同,如果判斷結(jié)果為否,則得到第一異常信息。本優(yōu)選實施例中描述了獲取第一異常信息的過程。與待傳輸?shù)男旁瑫r輸入的第二校驗信息中包括用于判斷該信元在上游模塊的數(shù)據(jù)處理中是否存在錯誤的信息,因此根據(jù)第二校驗信息得到第一異常信息,充分考慮到了上游模塊對信元傳輸?shù)挠绊?。同時,本地預(yù)先保存了信元的類型以及該類型的格式,通過判斷待傳輸?shù)男旁念愋图捌涓袷绞欠裾_,從而在各個傳輸環(huán)節(jié)上保證了信元異步FIFO傳輸?shù)恼_性與可靠性。優(yōu)選的,獲取信元的第二異常信息包括判斷RAM是否存在位錯誤;如果判斷結(jié)果為是,則根據(jù)位錯誤,獲取第二異常信息。本優(yōu)選實施例描述了在通過異步FIFO通道對所述信元進行傳輸?shù)倪^程中,獲取第二異常信息的過程。如果RAM存在位錯誤,則根據(jù)位錯誤獲取第二異常信息,可以保證及時獲取信元的傳輸錯誤,從而保證信元的正確傳輸。優(yōu)選地,上述方法還包括使用該信元控制異步FIFO通道的開啟或關(guān)閉。本優(yōu)選實施例中,通過控制異步FIFO通道的開啟或關(guān)閉,可以控制異步FIFO通道的讀取,從而解決了該異步FIFO通道讀空的問題。優(yōu)選地,在獲取待傳輸?shù)男旁牡谝划惓P畔⒅?,將第一異常信息與信元共同通過異步FIFO通道進行傳輸。優(yōu)選地,在獲取待傳輸?shù)男旁牡谝划惓P畔⒅螅@取信元的頭部標識和尾部標識;將頭部標識、尾部標識、第一異常信息與信元共同通過異步FIFO通道進行傳輸。
本優(yōu)選實施例中,生成信元的頭部標識(SOC)和尾部標識(eoc),然后將該頭部標識(SOC)、尾部標識(e0C)和第一異常信息(err)伴隨數(shù)據(jù)一起寫入FIFO。這樣,異步FIFO 的讀側(cè)可以通過判斷該頭部標識(SOC)判斷是否開始對信元進行讀取,以及通過判斷該尾部標識(eoc)判斷信元是否已經(jīng)讀取完畢,從而保證信元的正確傳輸。需要說明的是,為了傳輸上述頭部標識(SOC)、尾部標識(eoc)和第一異常信息 (err),可以在信元的位寬上增加!3bit。同時,優(yōu)選地,將上述頭部標識(soc)、尾部標識 (eoc)和第一異常信息(err)作為信元數(shù)據(jù)的一部分一同計算奇偶校驗位或者ECC。優(yōu)選地,將尾部標識置于從信元的最高位開始的第二位,并與信元共同通過異步 FIFO通道進行傳輸。由于讀數(shù)據(jù)較讀使能晚一節(jié)拍,等到讀出尾部標識(eoc)之后下一次讀數(shù)據(jù)的讀使能已經(jīng)給出。本優(yōu)選實施例中,將尾部標識(eoc)放在信元的倒數(shù)第二個位置上,可以避免上述讀數(shù)據(jù)較讀使能晚的問題。圖3為根據(jù)本發(fā)明實施例的頭部信息(soc),尾部信息(eoc)和異常信息(err)與信元的位置關(guān)系的示意圖,如圖3所示,就描述了尾部標識 (eoc)放在信元的倒數(shù)第二個位置上的情況。優(yōu)選地,基于本優(yōu)選實施例的設(shè)計思想,還可以將eoc標志放在信元的倒數(shù)第三個位置或者倒數(shù)第四個位置上。相關(guān)技術(shù)中,用empty或者通過信元頭類型獲取信元長度,從而數(shù)節(jié)拍帶來判斷包是否已經(jīng)完整讀出。本優(yōu)選實施例中,通過eoc標志可以準確的判斷包是否完整讀出,擺脫了格雷碼因時序問題導(dǎo)致的empty生成滯后以及信元頭本身讀出的時候發(fā)生錯誤導(dǎo)致誤判從而導(dǎo)致FIFO指針亂序的問題。本發(fā)明實施例提供了一種信元傳輸裝置,該信元傳輸裝置可以用于實現(xiàn)上述信元傳輸方法。圖4是根據(jù)本發(fā)明實施例的信元傳輸裝置的結(jié)構(gòu)框圖,包括預(yù)處理模塊42,異步 FIFO模塊44和處理模塊46。下面對其結(jié)構(gòu)進行詳細描述。預(yù)處理模塊42,用于獲取待傳輸?shù)男旁械牡谝划惓P畔?;異步FIFO模塊44,用于在通過異步FIFO通道對信元進行傳輸?shù)倪^程中,獲取信元的第二異常信息;處理模塊 46,連接至預(yù)處理模塊42和異步FIFO模塊44,用于根據(jù)預(yù)處理模塊42獲取的第一異常信息和異步FIFO模塊44獲取的第二異常信息,對信元進行丟棄。相關(guān)技術(shù)中,如果信元傳輸錯誤,將導(dǎo)致傳輸該信元的異步FIFO通道內(nèi)的傳輸?shù)刂分羔榿y序,進而將導(dǎo)致后續(xù)通過該異步FIFO通道傳輸?shù)乃行旁紓鬏斿e誤。本發(fā)明實施例中,第一異常信息可以用于判斷該信元在上游模塊的數(shù)據(jù)處理中是否存在錯誤,第二異常信息可以用于判斷該信元在通過異步FIFO通道的過程中是否存在錯誤,然后對信元進行丟棄,可以避免該信元對后續(xù)通過該異步FIFO通道傳輸?shù)乃行旁挠绊?,進而實現(xiàn)穩(wěn)定可靠異步FIFO傳輸。需要說明的是,裝置實施例中描述的信元傳輸裝置對應(yīng)于上述的方法實施例,其具體的實現(xiàn)過程在方法實施例中已經(jīng)進行過詳細說明,在此不再贅述。為了幫助理解上述實施例,下面進一步描述本發(fā)明的其它多個優(yōu)選實施例。本發(fā)明的信元傳輸裝置由六部分組成,分別是預(yù)處理模塊(pre_pr0CeSS)、異步 FIFO模塊(aSynC_fif0)、FIF0控制模塊(fifo_ctrl)、校驗信息生產(chǎn)模塊(check_gen)、鏈路格式生成模塊(f0rmat_gen)及編碼模塊(encode)。其中前面四個部分是本發(fā)明裝置的關(guān)鍵部分。各個模塊的功能描述如下1,預(yù)處理模塊實現(xiàn)了對控制信息的提取,生成S0C、e0C和err信號,為信元數(shù)據(jù)寫 Λ async_fifo 做準備。所謂的對控制信息的提取,包括前面關(guān)于信元的異常信息的提取,以及內(nèi)部對信元的整體進行檢測判斷,保證寫入的信元無非法信元。2,異步FIFO模塊即實現(xiàn)跨時鐘域的轉(zhuǎn)換功能。3,F(xiàn)IFO控制模塊實現(xiàn)了對FIFO的控制,并對輸出的數(shù)據(jù)進行處理,根據(jù)讀出數(shù)據(jù)的信息來控制讀使能的打開和關(guān)閉,是整個發(fā)明裝置的重要部分。4,校驗信息生產(chǎn)模塊實現(xiàn)了對輸出信元的校驗信息的生成,同時根據(jù)前級模塊給出的異常信元標志對完成校驗的信元的校驗信息進行加擾,使得異常信元在下游因為校驗錯誤而實現(xiàn)對異常信元的間接丟棄。5,鏈路格式生成模塊實現(xiàn)了發(fā)送信元的鏈路格式的生成。主要是根據(jù)前面模塊給出的控制信號,實現(xiàn)鏈路格式的轉(zhuǎn)換。6,編碼模塊實現(xiàn)對發(fā)送數(shù)據(jù)的編碼,可以是一個通用標準模塊。通過編碼使得 SerDes鏈路上發(fā)送的數(shù)據(jù)的直流電平達到平衡。由于時鐘頻率,數(shù)據(jù)總線寬帶以及傳輸信元的特征不一樣,所使用的異步FIFO的大小和各種門限設(shè)置會不同,本實施例旨在介紹SOC、eoc在設(shè)計中的運用,以及如何實現(xiàn)鏈路上信元個數(shù)的動態(tài)配置。鑒于異步FIFO的設(shè)計根據(jù)頻率和帶寬有很大關(guān)系,它們直接關(guān)系到FIFO的深度和門限設(shè)置等關(guān)鍵技術(shù)點。下面結(jié)合優(yōu)選實施例和附圖對上述實施例的實現(xiàn)過程進行詳細說明。優(yōu)選實施例一由于時鐘頻率,數(shù)據(jù)總線寬帶以及傳輸信元或者包的特征不一樣,所使用的異步 FIFO的大小和各種門限設(shè)置會不同,本優(yōu)選實施例一旨在介紹soc、eoc在設(shè)計中的運用, 以及如何實現(xiàn)鏈路上信元個數(shù)的動態(tài)配置。本實施例以信元的發(fā)送來描述,其中信元涉及到多種類型,在信元的長度上不是等長的。aSynC_fif0的寫側(cè)的時鐘記為sys_clk,頻率是250MHz,總線寬帶是32bit,一個信元寫入都需要多個時鐘周期才能完成。在這里,假設(shè)信元分數(shù)據(jù)信元和控制信元兩種,大小分別是144字節(jié)和M字節(jié),即分別需要36個時鐘周期和6個時鐘周期完成。假定當沒有需要發(fā)送的有效信元情況下會發(fā)送一種特殊信元來傳遞有效信息,從而填充鏈路上的信元,即對于asynC_fif0來說輸入的數(shù)據(jù)是不間斷的。asynC_fif0的讀側(cè)的時鐘記為ref_ clk,頻率是312. 5MHz,fifo_ctrl模塊的輸出總線寬帶是16bit。所涉及的標準異步FIFO 大小為6 ^ ,調(diào)用了一個帶奇偶校驗功能的RAM (RAM的大小6#x36b,其中有Ibit是奇偶校驗位)。FIFO的將空(almost_empty)門限為4,將滿(almost_ful)門限是16。FIFO 的寫溢出規(guī)避是通過FIFO的將滿信號來反壓前級模塊,使其停止輸出信元。前級模塊響應(yīng)反壓的方式是按信元來反壓,即在信元寫一部分的情況下受到反壓時,等信元寫完之后才響應(yīng)反壓。下面就各個部分的實現(xiàn)步驟進行描述1.待傳輸數(shù)據(jù)經(jīng)過處理,送到本裝置入口。因為本裝置的上游模塊在數(shù)據(jù)處理時可能也有使用RAM等資源,會存在RAM產(chǎn)生bit錯誤的問題,當然,還可以包括其他處理過程中的狀態(tài)信息,來標識該信元是否異常。圖6是根據(jù)本發(fā)明優(yōu)選實施例的輸入信元的時序的示意圖,在收到這樣的信元及其相關(guān)信息后,通過對圖6所示的dat_vld信號進行提取上升沿脈沖和下降沿脈沖,再通過寄存器對脈沖和數(shù)據(jù)進行適當延時,即可得到S0C、e0C標志以及期望的相位關(guān)系(soc與信元頭對齊,eoc與信元的倒數(shù)第二個數(shù)據(jù)對齊)。在信元頭位置,對信元頭信息進行判斷,將判斷結(jié)果合并信元攜帶的異常信息一起,生成err標志。2.前面生成的soc、eoc和err放在數(shù)據(jù)的高3bit位置,作為wr_data —同寫入異步FIFO。在異步FIFO內(nèi)部,調(diào)用一個帶奇偶校驗的RAM,根據(jù)寫數(shù)據(jù)生成相應(yīng)的校驗位, 與數(shù)據(jù)一同寫入RAM;同時對RAM輸出的數(shù)據(jù)進行奇偶校驗,產(chǎn)生校驗結(jié)果指示。3.在異步FIFO的讀側(cè),首先根據(jù)FIFO的將空信元alm0St_empty來作為讀側(cè)的啟動信號。在當前實施例下該信號只觸發(fā)一次,由于讀空帶寬小于寫口帶寬,所以對于讀口來說永遠不會出現(xiàn)FIFO讀空的情況(因為前級模塊會產(chǎn)生特殊信元來填充鏈路上發(fā)送的信元)。啟動信號觸發(fā)FIFO控制模塊開始工作。4. FIFO控制模塊產(chǎn)生FIFO的讀使能rd_en。由于總線位寬由原來的32bit變成 16bit,所以讀操作是讀一拍之后隔一拍才讀下一次。5.在讀使能給出后的下一個時鐘周期,F(xiàn)IFO數(shù)據(jù)被讀出??紤]到FIFO數(shù)據(jù)出來延時比較大,故用讀使能的延時信號(rd_en_dlyl)作為觸發(fā)來將FIFO數(shù)據(jù)用寄存器打一拍,然后根據(jù)FIFO寫側(cè)的排序順序?qū)oc、eoc、err和信元數(shù)據(jù)分離出來。在ref_clk時鐘域,分離出來的信用數(shù)據(jù)記為cell_data_dly,分離出來的soc和eoc分別記為soc_rd和 eoc_rd,這兩個標志均處理成脈沖信號。6.圖7是根據(jù)本發(fā)明優(yōu)選實施例的總線位寬轉(zhuǎn)換的示意圖,將數(shù)據(jù)Cell_data_ dly經(jīng)過圖7所示的處理,將總線32bit的數(shù)據(jù)轉(zhuǎn)換成總線16bit,得到cf0_data的數(shù)據(jù)輸 [ti cfo—圖8是根據(jù)本發(fā)明優(yōu)選實施例的異常信元生成校驗信息的時序的示意圖,RAM奇偶校驗結(jié)果與FIFO讀出的err標志相或,生成一個新的錯誤標志,與數(shù)據(jù)走相同路徑,伴隨數(shù)據(jù)輸出作為標識當前數(shù)據(jù)是否有異常(如圖8中的dat_err)。soc、eoc標志經(jīng)過處理, 作為輸出信元的真正的頭和尾的指示信號伴隨cf0_data—起輸出,分別記為cell_hd和 cell_tailο7.假定校驗信息生產(chǎn)模塊的校驗方式是通過生成CRC位來校驗,其中CRC的bit 數(shù)是16bit。校驗信息生成模塊依據(jù)cell_hd和cell_tail對信元進行定界,完成crc生成, 并填充到信元的crc位置。其中信元頭信息cell_hd控制CRC的清零,信元尾信息cell_ tail控制CRC的在信元中的插入。在校驗信息生成模塊輸出數(shù)據(jù)的時候,如果檢測到dat_ err有效,則將數(shù)據(jù)進行所有比特位進行翻轉(zhuǎn)作為輸出給后級模塊,這樣在下游模塊接收到信元進行crc校驗時就會得出crc校驗錯誤的結(jié)果,信元會被丟棄,從而實現(xiàn)了間接信元丟棄,不會額外浪費資源。圖8是根據(jù)本發(fā)明優(yōu)選實施例的異常信元生成校驗信息的時序的示意圖,圖9是根據(jù)本發(fā)明優(yōu)選實施例的校驗信息生成模塊的數(shù)據(jù)輸出的示意圖,該圖8、圖9就示出了上述信元丟棄的過程。cell_vld,cell_hd和cell_tail等控制信息繼續(xù)隨數(shù)據(jù)往后傳遞,給其他邏輯的控制帶來方便。8.信元經(jīng)過鏈路格式生產(chǎn)和編碼模塊的處理之后,信元通過接口發(fā)送出去。上述實施例中,由于異步FIFO的讀出數(shù)據(jù)需要進行32bit轉(zhuǎn)16bit,使得讀使能是間歇性的給出,即讀一拍停一拍,然后再讀一拍。在響應(yīng)eoc信號時處理時間非常的寬裕。 對于讀使能是連續(xù)給出的情況,為了回避eoc滯后于讀使能的情況,也可以在異步FIFO的寫側(cè),將eoc這個標簽打在信元或包的倒數(shù)第三或者倒數(shù)第四個數(shù)據(jù)上,設(shè)計的思想是一樣的。當奇偶校驗發(fā)生錯誤的位置在SOC或者eoc比特上時,導(dǎo)致soc或者eoc丟失,這種情況下本裝置會發(fā)生信元異常,相鄰的兩個信元都會因為crc校驗失敗而丟棄,但是再往后面的正確信元不會受到影響。這樣依靠soc和eoc及err等信息位進行控制實現(xiàn)的方式,具有良好的糾錯能力。優(yōu)選實施例二在優(yōu)選實施例一的基礎(chǔ)上調(diào)整相關(guān)參數(shù)如下異步FIFO的寫測沒有特殊信元來填充鏈路,即寫端口存在長時間無信元寫入的情況,此時會出現(xiàn)FIFO讀空。具體實現(xiàn)步驟只需在實施例1的步驟3 (FIFO控制模塊處理邏輯)做如下調(diào)整即可完成實施例2.在FIFO控制模塊中設(shè)計一個標志位(ready),該標志位初始化為O在FIFO的將空(alm0St_empty)從有效變成無效的時候,ready變成有效(即為高電平),開始啟動讀操作;在alm0St_empty有效的時候,檢測到eoc之后,將ready拉低,停止讀操作。這樣確保 FIFO被讀空。在下一個信元寫入之后,ready拉高,繼續(xù)新的讀操作。其它實現(xiàn)步驟跟優(yōu)選實施例一相同。在優(yōu)選實施例二中,F(xiàn)IFO讀空不依賴FIFO的空標志empty來判斷,而是利用將空標志alm0St_empty和eoc標志來完成讀操作的控制,確保信元完整讀出FIFO。由于eoc放在信元的倒數(shù)第二個數(shù)據(jù)上,留出了時間余量,這樣確保了 FIFO不會產(chǎn)生誤讀的操作。利用將空、將滿和soc、eoc的信息組合來實現(xiàn)FIFO的控制,很好的規(guī)避了異步 FIFO內(nèi)格地址在雷碼轉(zhuǎn)換后因為時序原因?qū)е翭IFO的狀態(tài)信息不準確的問題,為數(shù)據(jù)傳輸?shù)姆€(wěn)定可靠提供了保障。需要說明的是,上述本發(fā)明的設(shè)計思想,不局限于對信元的處理,對包的處理同樣適用。綜上所述,根據(jù)本發(fā)明的上述實施例,采用根據(jù)信元及其傳輸過程中的異常信息, 對其進行丟棄,解決了信元傳輸錯誤導(dǎo)致的后續(xù)通過異步FIFO通道傳輸?shù)乃行旁紓鬏斿e誤的問題,進而實現(xiàn)穩(wěn)定可靠異步FIFO傳輸。顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種信元傳輸方法,其特征在于,包括 獲取待傳輸?shù)男旁械牡谝划惓P畔?;在通過異步先入先出FIFO通道對所述信元進行傳輸?shù)倪^程中,獲取所述信元的第二異常信息;根據(jù)所述第一異常信息和所述第二異常信息,確定是否對所述信元進行丟棄。
2.根據(jù)權(quán)利要求1所述的信元傳輸方法,其特征在于,所述第一異常信息和所述第二異常信息均為高電平有效,根據(jù)所述第一異常信息和所述第二異常信息,對所述信元進行丟棄包括對所述第一異常信息和所述第二異常信息進行或計算,得到第三異常信息; 根據(jù)所述第三異常信息,對所述信元進行丟棄。
3.根據(jù)權(quán)利要求2所述的信元傳輸方法,其特征在于,根據(jù)所述第三異常信息,對所述信元進行丟棄包括生成所述信元的第一校驗信息;根據(jù)所述第三異常信息對所述第一校驗信息進行加擾;判斷所述加擾后的第一校驗信息是否正確,如果判斷結(jié)果為否,則對所述信元進行丟棄。
4.根據(jù)權(quán)利要求3所述的信元傳輸方法,其特征在于,根據(jù)所述第三異常信息對所述第一校驗信息進行加擾包括根據(jù)所述第三異常信息對所述第一校驗信息取反。
5.根據(jù)權(quán)利要求1所述的信元傳輸方法,其特征在于,獲取所述待傳輸?shù)男旁牡谝划惓P畔ǐ@取與所述待傳輸?shù)男旁瑫r輸入的第二校驗信息,判斷所述第二校驗信息是否正確,如果判斷結(jié)果為否,則根據(jù)所述第二校驗信息,得到所述第一異常信息;如果判斷結(jié)果為是,則判斷所述待傳輸?shù)男旁念愋褪欠裾_,如果判斷結(jié)果為否,則得到所述第一異常信息;如果判斷結(jié)果為是,則判斷所述待傳輸?shù)男旁母袷绞欠衽c預(yù)先設(shè)置的所述類型的格式相同,如果判斷結(jié)果為否,則得到所述第一異常信息。
6.根據(jù)權(quán)利要求1所述的信元傳輸方法,其特征在于,獲取所述信元的第二異常信息包括判斷隨機存取器MM是否存在位錯誤;如果判斷結(jié)果為是,則根據(jù)所述位錯誤,獲取所述第二異常信息。
7.根據(jù)權(quán)利要求1所述的信元傳輸方法,其特征在于,還包括 使用所述信元,控制所述異步FIFO通道的開啟或關(guān)閉。
8.根據(jù)權(quán)利要求1至7中任一項所述的信元傳輸方法,其特征在于,在獲取所述待傳輸?shù)男旁乃龅谝划惓P畔⒅?,所述方法還包括將所述第一異常信息與所述信元共同通過所述異步FIFO通道進行傳輸。
9.根據(jù)權(quán)利要求8所述的信元傳輸方法,其特征在于,在獲取所述待傳輸?shù)男旁乃龅谝划惓P畔⒅?,所述方法還包括獲取所述信元的頭部標識和尾部標識;將所述頭部標識和所述尾部標識與所述信元共同通過所述異步FIFO通道進行傳輸。
10.根據(jù)權(quán)利要求9所述的信元傳輸方法,其特征在于,將所述尾部標識置于從所述信元的最高位開始的第二位,并與所述信元共同通過所述異步FIFO通道進行傳輸。
11.一種信元傳輸裝置,其特征在于,包括預(yù)處理模塊,用于獲取待傳輸?shù)男旁械牡谝划惓P畔ⅲ划惒较热胂瘸鯢IFO模塊,用于在通過異步FIFO通道對所述信元進行傳輸?shù)倪^程中,獲取所述信元的第二異常信息;處理模塊,用于根據(jù)所述第一異常信息和所述第二異常信息,對所述信元進行丟棄。
全文摘要
本發(fā)明公開了一種信元傳輸方法及裝置,該方法包括獲取待傳輸?shù)男旁械牡谝划惓P畔?;在通過異步先入先出FIFO通道對信元進行傳輸?shù)倪^程中,獲取信元的第二異常信息;根據(jù)第一異常信息和第二異常信息,確定是否對信元進行丟棄。本發(fā)明實現(xiàn)了穩(wěn)定可靠異步FIFO傳輸。
文檔編號H04L1/00GK102377660SQ20101026043
公開日2012年3月14日 申請日期2010年8月20日 優(yōu)先權(quán)日2010年8月20日
發(fā)明者廖智勇 申請人:中興通訊股份有限公司