專利名稱:校驗(yàn)方法及校驗(yàn)裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,特別是涉及一種校驗(yàn)方法及校驗(yàn)裝置。
背景技術(shù):
CRC (Cyclic Redundancy Check,循環(huán)冗余校驗(yàn))技術(shù)廣泛應(yīng)用于數(shù)據(jù)通信領(lǐng)域。CRC可以通過軟件查表或者硬件實(shí)現(xiàn)。對(duì)高速數(shù)據(jù)進(jìn)行CRC,一般通過硬件實(shí)現(xiàn)。 現(xiàn)有技術(shù)中,通過硬件對(duì)位寬為多個(gè)字節(jié)的并行數(shù)據(jù)進(jìn)行CRC時(shí),需要多個(gè)CRC電路。舉例來說,對(duì)于位寬為4個(gè)字節(jié)的并行數(shù)據(jù)進(jìn)行CRC,需要I個(gè)字節(jié)對(duì)應(yīng)的CRC電路、2個(gè)字節(jié)對(duì)應(yīng)的CRC電路、3個(gè)字節(jié)對(duì)應(yīng)的CRC電路以及4個(gè)字節(jié)對(duì)應(yīng)的CRC電路?,F(xiàn)有技術(shù)對(duì)位寬為多個(gè)字節(jié)的并行數(shù)據(jù)進(jìn)行CRC需要的硬件資源較多。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例中提供了一種CRC校驗(yàn)方法及裝置,能夠減少所需的硬件資源。為了解決上述技術(shù)問題,本發(fā)明實(shí)施例公開了如下技術(shù)方案第一方面,提供一種校驗(yàn)方法,包括接收并行數(shù)據(jù),所述并行數(shù)據(jù)的字節(jié)數(shù)為X,所述并行數(shù)據(jù)的位寬為Y個(gè)字節(jié),X為正整數(shù),Y為正整數(shù);采用CRC電路對(duì)所述并行數(shù)據(jù)進(jìn)行運(yùn)算,獲得第一 CRC值;比較所述第一 CRC值與第二 CRC值是否相同,所述第二 CRC值為對(duì)第一數(shù)據(jù)執(zhí)行CRC獲得的CRC值,所述第一數(shù)據(jù)為在第二數(shù)據(jù)的尾部添加M個(gè)字節(jié)的數(shù)據(jù)得到的數(shù)據(jù),所述第二數(shù)據(jù)為在第三數(shù)據(jù)的尾部添加第三CRC值得到的數(shù)據(jù),所述第三CRC值為所述第三數(shù)據(jù)的CRC值,M等于Y減去X除以Y的余數(shù);若所述第一 CRC值與所述第二 CRC值相同,則確定所述并行數(shù)據(jù)通過CRC。結(jié)合所述第一方面,在所述第一方面的第一種可能的實(shí)現(xiàn)方式中,所述采用所述CRC電路對(duì)所述并行數(shù)據(jù)進(jìn)行運(yùn)算包括如果X除以Y的余數(shù)不等于0,則在所述并行數(shù)據(jù)的尾部添加第四數(shù)據(jù),所述第四數(shù)據(jù)的長(zhǎng)度為M個(gè)字節(jié),得到新的并行數(shù)據(jù);采用所述CRC電路對(duì)所述新的并行數(shù)據(jù)進(jìn)行運(yùn)算。結(jié)合所述第一方面,或所述第一方面的第一種可能的實(shí)現(xiàn)方式,在所述第一方面的第二種可能的實(shí)現(xiàn)方式中,所述采用所述CRC電路對(duì)所述并行數(shù)據(jù)進(jìn)行運(yùn)算包括如果X除以Y的余數(shù)等于0,則不在所述并行數(shù)據(jù)的尾部添加數(shù)據(jù),采用所述CRC電路對(duì)所述并行數(shù)據(jù)進(jìn)行運(yùn)算。結(jié)合所述第一方面,或所述第一方面的第一種可能的實(shí)現(xiàn)方式,或所述第一方面提供的第二種可能的實(shí)現(xiàn)方式,在所述第一方面提供的第三種可能的實(shí)現(xiàn)方式中,比較所述第一 CRC值與所述第二 CRC值是否相同之前,所述方法還包括分別在所述第二數(shù)據(jù)的尾部添加I至Y個(gè)字節(jié)的數(shù)據(jù),得到Y(jié)個(gè)數(shù)據(jù);
分別對(duì)所述Y個(gè)數(shù)據(jù)執(zhí)行CRC,得到Y(jié)個(gè)CRC值;確定所述Y個(gè)CRC值中與所述Y個(gè)數(shù)據(jù)中通過在所述第二數(shù)據(jù)的尾部添加所述M個(gè)字節(jié)的數(shù)據(jù)得到的數(shù)據(jù)對(duì)應(yīng)的CRC值為所述第二 CRC值。
第二方面,提供一種校驗(yàn)裝置,包括接收單元,用于接收并行數(shù)據(jù),所述并行數(shù)據(jù)的字節(jié)數(shù)為X,所述并行數(shù)據(jù)的位寬為Y個(gè)字節(jié),X為正整數(shù),Y為正整數(shù);CRC電路,用于對(duì)所述接收單元接收的所述并行數(shù)據(jù)進(jìn)行運(yùn)算,獲得第一 CRC值;比較單元,用于比較所述CRC電路生成的所述第一 CRC值與第二 CRC值是否相同,所述第二 CRC值為對(duì)第一數(shù)據(jù)執(zhí)行CRC獲得的CRC值,所述第一數(shù)據(jù)為在第二數(shù)據(jù)的尾部添加M個(gè)字節(jié)的數(shù)據(jù)得到的數(shù)據(jù),所述第二數(shù)據(jù)為在第三數(shù)據(jù)的尾部添加第三CRC值得到的數(shù)據(jù),所述第三CRC值為所述第三數(shù)據(jù)的CRC值,M等于Y減去X除以Y的余數(shù);第一確定單元,用于若所述比較單元的比較結(jié)果為所述第一 CRC值與所述第二CRC值相同,則確定所述并行數(shù)據(jù)通過CRC。結(jié)合所述第二方面,在所述第二方面的第一種可能的實(shí)現(xiàn)方式中,所述CRC電路具體用于如果X除以Y的余數(shù)不等于0,則在所述并行數(shù)據(jù)的尾部添加第四數(shù)據(jù),所述第四數(shù)據(jù)的長(zhǎng)度為M個(gè)字節(jié),得到新的并行數(shù)據(jù);對(duì)所述新的并行數(shù)據(jù)進(jìn)行運(yùn)算。結(jié)合所述第二方面,或所述第二方面的第一種可能的實(shí)現(xiàn)方式,在所述第二方面的第二種可能的實(shí)現(xiàn)方式中,所述CRC電路具體用于如果X除以Y的余數(shù)等于0,則不在所述并行數(shù)據(jù)的尾部添加數(shù)據(jù),對(duì)所述并行數(shù)據(jù)進(jìn)行運(yùn)算。結(jié)合所述第二方面,或所述第二方面的第一種可能的實(shí)現(xiàn)方式,或所述第二方面的第二種可能的實(shí)現(xiàn)方式,在所述第二方面的第三種可能的實(shí)現(xiàn)方式中,所述校驗(yàn)裝置還包括添加單元,用于分別在所述第二數(shù)據(jù)的尾部添加I至Y個(gè)字節(jié)的數(shù)據(jù),得到Y(jié)個(gè)數(shù)據(jù);計(jì)算單元,用于分別對(duì)所述添加單元生成的所述Y個(gè)數(shù)據(jù)執(zhí)行CRC,得到Y(jié)個(gè)CRC值;第二確定單元,用于在所述比較單元比較所述第一 CRC值與所述第二 CRC值是否相同之前確定所述計(jì)算單元得到的所述Y個(gè)CRC值中與所述添加單元得到的所述Y個(gè)數(shù)據(jù)中通過在所述第二數(shù)據(jù)的尾部添加所述M個(gè)字節(jié)的數(shù)據(jù)得到的數(shù)據(jù)對(duì)應(yīng)的CRC值為所述第
二CRC 值。第三方面,提供一種網(wǎng)絡(luò)設(shè)備,所述網(wǎng)絡(luò)設(shè)備包括所述第二方面,或所述第二方面的第一種可能的實(shí)現(xiàn)方式,或所述第二方面的第二種可能的實(shí)現(xiàn)方式,或所述第二方面的第三種可能的實(shí)現(xiàn)方式提供的校驗(yàn)裝置。上述技術(shù)方案中,通過比較所述并行數(shù)據(jù)的位寬對(duì)應(yīng)的所述CRC電路生成的所述第一 CRC值與所述第二 CRC值是否相同,即可確定所述并行數(shù)據(jù)是否通過CRC。也就是說,上述技術(shù)方案只需要一個(gè)CRC電路。相對(duì)于現(xiàn)有技術(shù)中,對(duì)位寬為多個(gè)字節(jié)的并行數(shù)據(jù)進(jìn)行CRC校驗(yàn)需要的多個(gè)CRC電路的技術(shù)方案,上述技術(shù)方案所需的硬件資源較少。
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,對(duì)于本領(lǐng)域普通技術(shù)人員而言,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I本發(fā)明實(shí)施例提供的一種校驗(yàn)方法流程圖;圖2本發(fā)明實(shí)施例提供的一種對(duì)第二數(shù)據(jù)進(jìn)行處理獲得Y個(gè)數(shù)據(jù)的方法流程圖;圖3為本發(fā)明實(shí)施例提供的一種校驗(yàn)裝置的結(jié)構(gòu)示意圖;圖4為本發(fā)明實(shí)施例提供的一種校驗(yàn)裝置的結(jié)構(gòu)示意圖。
具體實(shí)施例方式為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明實(shí)施例中的技術(shù)方案,并使本發(fā)明實(shí)施例的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例中技術(shù)方案作進(jìn)一步詳細(xì)的說明。圖I為本發(fā)明實(shí)施例提供的一種校驗(yàn)方法的流程圖。參見圖1,所述方法包括101,接收并行數(shù)據(jù)。舉例來說,101的執(zhí)行主體可以是接收器。舉例來說,所述并行數(shù)據(jù)可以通過如下方式得到串并轉(zhuǎn)換器對(duì)接收到的串行數(shù)據(jù)進(jìn)行處理,轉(zhuǎn)化為所述并行數(shù)據(jù)。所述并行數(shù)據(jù)的字節(jié)數(shù)為X,并行數(shù)據(jù)的位寬為Y個(gè)字節(jié),其中,X為正整數(shù),Y為正整數(shù)。舉例來說,Y的取值可以是1、2或者3。102,采用CRC電路對(duì)所述并行數(shù)據(jù)進(jìn)行運(yùn)算,獲得第一 CRC值。舉例來說,102的執(zhí)行主體可以是硬件電路,例如ASIC (ApplicationSpecificIntegrated Circuit,專用集成電路)或者 FPGA (Field — Programmable GateArray,現(xiàn)場(chǎng)可編程門陣列)。本領(lǐng)域的技術(shù)人員可以理解,所述CRC電路是與所述并行數(shù)據(jù)的位寬相對(duì)應(yīng)的電路。103,比較所述第一 CRC值與第二 CRC值是否相同。所述第二 CRC值為對(duì)第一數(shù)據(jù)執(zhí)行CRC獲得的CRC值,所述第一數(shù)據(jù)為在第二數(shù)據(jù)的尾部添加M個(gè)字節(jié)的數(shù)據(jù)得到的數(shù)據(jù),所述第二數(shù)據(jù)為在第三數(shù)據(jù)的尾部添加第三CRC值得到的數(shù)據(jù),所述第三CRC值為所述第三數(shù)據(jù)的CRC值,M等于Y減去X除以Y的余數(shù),即M=Y-MOD (X,Y)。MOD (X, Y)等于X除以Y的余數(shù)。所述M個(gè)字節(jié)的數(shù)據(jù)可以是常數(shù),例如可以是M個(gè)字節(jié)的O或者M(jìn)個(gè)字節(jié)的I。舉例來說,103的執(zhí)行主體可以是比較器。104,若所述第一 CRC值與所述第二 CRC值相同,則確定所述并行數(shù)據(jù)通過CRC。104的執(zhí)行主體可以是中央處理器(central processing unit, CPU),也可以是網(wǎng)絡(luò)處理器(network processor,NP)。例如,104的執(zhí)行主體可以是所述NP的轉(zhuǎn)發(fā)單元。舉例來說,如果所述轉(zhuǎn)發(fā)單元確定所述并行數(shù)據(jù)通過CRC,所述轉(zhuǎn)發(fā)單元可以對(duì)所述并行數(shù)據(jù)進(jìn)行轉(zhuǎn)發(fā)。如果所述轉(zhuǎn)發(fā)單元確定所述并行數(shù)據(jù)沒有通過CRC,所述轉(zhuǎn)發(fā)單元可以對(duì)所述并行數(shù)據(jù)進(jìn)行丟棄。本領(lǐng)域的技術(shù)人員可以理解,上述技術(shù)方案中,如果所述第三數(shù)據(jù)取不同的值,所述第二數(shù)據(jù)也必然取不同的值,所述第一數(shù)據(jù)也必然取不同的值,但是所述第二 CRC值取相同的值。例如,若第三數(shù)據(jù)為0x55,采用以太CRC32對(duì)該第三數(shù)據(jù)進(jìn)行運(yùn)算得到的所述第三CRC值為0xfb4a03c9,則在所述第三數(shù)據(jù)的尾部添加所述第三CRC值得到的數(shù)據(jù)為0x55fb4a03c9,也即所述第二數(shù)據(jù)為0x55fb4a03c9。在該第二數(shù)據(jù)尾部添加N個(gè)字節(jié)的數(shù)據(jù)得到所述第一數(shù)據(jù)。所述第一數(shù)據(jù)為0X55fb4a03c900。所述N個(gè)字節(jié)的數(shù)據(jù)為0x00。其中,N為I。則對(duì)該第一數(shù)據(jù)進(jìn)行CRC計(jì)算,例如采用以太CRC32,獲得的所述第一數(shù)據(jù)的CRC 值為 0xldf722c6。因此,所述第二 CRC 值為 0xldf722c6。 若第三數(shù)據(jù)為0x55aa,采用以太CRC32對(duì)該第三數(shù)據(jù)進(jìn)行運(yùn)算得到的所述第三CRC值為0xl8fll6b0,則在所述第三數(shù)據(jù)的尾部添加所述第三CRC值得到的數(shù)據(jù)為0x55aal8fll6b0,也即所述第二數(shù)據(jù)為0x55aal8f 116b0。在該第二數(shù)據(jù)尾部也添加N個(gè)字節(jié)的數(shù)據(jù)得到所述第一數(shù)據(jù)。所述第一數(shù)據(jù)為0x55aal8ni6b000,所述N個(gè)字節(jié)的數(shù)據(jù)為0x00。其中,N為I。則對(duì)該第一數(shù)據(jù)進(jìn)行CRC計(jì)算,例如采用以太CRC32,獲得的所述第一數(shù)據(jù)的CRC值也為0xldf722c6。因此,所述第二 CRC值為0xldf722c6。若第三數(shù)據(jù)為0x55aa55,采用以太CRC32對(duì)該第三數(shù)據(jù)進(jìn)行運(yùn)算得到的所述第三CRC值為0X51c4dfda,則在所述第三數(shù)據(jù)的尾部添加所述第三CRC值得到的數(shù)據(jù)為0x55aa5551c4dfda,也即所述第二數(shù)據(jù)為0x55aa5551c4dfda。在該第二數(shù)據(jù)尾部也添加N個(gè)字節(jié)的數(shù)據(jù)得到所述第一數(shù)據(jù)。所述第一數(shù)據(jù)為0x55aa5551c4dfda00,所述N個(gè)字節(jié)的數(shù)據(jù)為0x00。其中,N為I。則對(duì)該第一數(shù)據(jù)進(jìn)行CRC計(jì)算,例如采用以太CRC32,獲得的所述第一數(shù)據(jù)的CRC值也為0xldf722c6。因此,所述第二 CRC值為0xldf722c6。根據(jù)上述描述可以看出,所述第二 CRC值與M有關(guān),與所述第三數(shù)據(jù)無關(guān),與所述第二數(shù)據(jù)無關(guān),與所述M個(gè)字節(jié)的取值無關(guān)。M的取值確定后,所述第二 CRC值也確定。根據(jù)上述規(guī)律,在獲得所述并行數(shù)據(jù)的第一 CRC值后,若第一 CRC值與所述第二 CRC值相同,則可確定所述并行數(shù)據(jù)通過CRC。 上述技術(shù)方案中,通過比較所述并行數(shù)據(jù)的位寬對(duì)應(yīng)的所述CRC電路生成的所述第一 CRC值與所述第二 CRC值是否相同,即可確定所述并行數(shù)據(jù)是否通過CRC。也就是說,上述技術(shù)方案只需要一個(gè)CRC電路。相對(duì)于現(xiàn)有技術(shù)中,對(duì)位寬為多個(gè)字節(jié)的并行數(shù)據(jù)進(jìn)行CRC校驗(yàn)需要的多個(gè)CRC電路的技術(shù)方案,上述技術(shù)方案所需的硬件資源較少??蛇x的,圖I所示的方法中,采用所述CRC電路對(duì)所述并行數(shù)據(jù)進(jìn)行運(yùn)算可以包括如果X除以Y的余數(shù)不等于0,則在所述并行數(shù)據(jù)的尾部添加第四數(shù)據(jù),所述第四數(shù)據(jù)的長(zhǎng)度為M個(gè)字節(jié),得到新的并行數(shù)據(jù);該第四數(shù)據(jù)可以是常數(shù),例如可以是M個(gè)字節(jié)的O或者M(jìn)個(gè)字節(jié)的I等。該第四數(shù)據(jù)的字節(jié)長(zhǎng)度與第二數(shù)據(jù)尾部添加的數(shù)據(jù)的字節(jié)長(zhǎng)度均為M個(gè)。采用所述CRC電路對(duì)所述新的并行數(shù)據(jù)進(jìn)行運(yùn)算??蛇x的,圖I所示的方法中,采用所述CRC電路對(duì)所述并行數(shù)據(jù)進(jìn)行運(yùn)算可以包括如果X除以Y的余數(shù)等于0,則不在所述并行數(shù)據(jù)的尾部添加數(shù)據(jù),采用所述CRC電路對(duì)所述并行數(shù)據(jù)進(jìn)行運(yùn)算??蛇x的,圖I所示的方法中,比較所述第一 CRC值與所述第二 CRC值是否相同之前,該方法還可以包括201,分別在所述第二數(shù)據(jù)的尾部添加I至Y個(gè)字節(jié)的數(shù)據(jù),得到Y(jié)個(gè)數(shù)據(jù)。
例如,若所述并行數(shù)據(jù)的位寬為8個(gè)字節(jié),則在所述第二數(shù)據(jù)的尾部分別添加I至8個(gè)字節(jié)的數(shù)據(jù),得到8個(gè)數(shù)據(jù)。在所述第二數(shù)據(jù)的尾部添加4個(gè)字節(jié)的數(shù)據(jù)得到的數(shù)據(jù)是所述8個(gè)數(shù)據(jù)中的一個(gè)數(shù)據(jù)。202,分別對(duì)所述Y個(gè)數(shù)據(jù)執(zhí)行CRC,得到Y(jié)個(gè)CRC值。舉例來說,在獲得所述Y個(gè)CRC值后,可以將所述Y個(gè)CRC值進(jìn)行存儲(chǔ),具體的,可以將添加的字節(jié)數(shù)及其對(duì)應(yīng)的CRC值以列表的形式進(jìn)行存儲(chǔ)。203,確定所述Y個(gè)CRC值中與所述Y個(gè)數(shù)據(jù)中通過在所述第二數(shù)據(jù)的尾部添加所述M個(gè)字節(jié)的數(shù)據(jù)得到的數(shù)據(jù)為對(duì)應(yīng)的CRC值為所述第二 CRC值。舉例來說,若所述并行數(shù)據(jù)的字節(jié)數(shù)為36,所述并行數(shù)據(jù)的位寬為8個(gè)字節(jié),則根據(jù)公式M=Y-MOD (X,Y)可以確定M為4,則將所述8個(gè)數(shù)據(jù)中在所述第二數(shù)據(jù)尾部添加所述4個(gè)字節(jié)的數(shù)據(jù)得到的數(shù)據(jù)作為所述第一數(shù)據(jù)。所述第一數(shù)據(jù)對(duì)應(yīng)的CRC值即為所述第二CRC 值。關(guān)于201、202以及203,具體請(qǐng)參見圖2。圖3為本發(fā)明實(shí)施例提供的一種校驗(yàn)裝置的結(jié)構(gòu)示意圖。所述校驗(yàn)裝置可以執(zhí)行圖I所示的方法。參見圖3,所述校驗(yàn)裝置包括接收單元301,用于接收并行數(shù)據(jù),所述并行數(shù)據(jù)的字節(jié)數(shù)為X,所述并行數(shù)據(jù)的位寬為Y個(gè)字節(jié),X為正整數(shù),Y為正整數(shù)。舉例來說,所述接收單元301可以是接收器。舉例來說,所述并行數(shù)據(jù)可以通過如下方式得到串并轉(zhuǎn)換器對(duì)接收到的串行數(shù)據(jù)進(jìn)行處理,轉(zhuǎn)化為所述并行數(shù)據(jù)。所述并行數(shù)據(jù)的字節(jié)數(shù)為X,并行數(shù)據(jù)的位寬為Y個(gè)字節(jié),其中,X為正整數(shù),Y為正整數(shù)。舉例來說,Y的取值可以是1、2或者3。CRC電路302,用于對(duì)所述接收單元301接收的所述并行數(shù)據(jù)進(jìn)行運(yùn)算,獲得第一CRC 值。舉例來說,所述CRC電路302可以是硬件電路。所述硬件電路可以是ASIC或者FPGA。本領(lǐng)域的技術(shù)人員可以理解,所述CRC電路是與所述并行數(shù)據(jù)的位寬相對(duì)應(yīng)的電路。比較單元303,用于比較所述循環(huán)冗余校驗(yàn)電路302生成的所述第一 CRC值與第二CRC值是否相同,所述第二 CRC值為對(duì)第一數(shù)據(jù)執(zhí)行CRC獲得的CRC值,所述第一數(shù)據(jù)為在第二數(shù)據(jù)的尾部添加M個(gè)字節(jié)的數(shù)據(jù)得到的數(shù)據(jù),所述第二數(shù)據(jù)為在第三數(shù)據(jù)的尾部添加第三CRC值得到的數(shù)據(jù),所述第三CRC值為所述第三數(shù)據(jù)的CRC值,M等于Y減去X除以Y的余數(shù)。
所述第二 CRC值為對(duì)第一數(shù)據(jù)執(zhí)行CRC獲得的CRC值,所述第一數(shù)據(jù)為在第二數(shù)據(jù)的尾部添加M個(gè)字節(jié)的數(shù)據(jù)得到的數(shù)據(jù),所述第二數(shù)據(jù)為在第三數(shù)據(jù)的尾部添加第三CRC值得到的數(shù)據(jù),所述第三CRC值為所述第三數(shù)據(jù)的CRC值,M等于Y減去X除以Y的余數(shù),即M=Y-MOD (X,Y)。MOD (X, Y)等于X除以Y的余數(shù)。所述M個(gè)字節(jié)的數(shù)據(jù)可以是常數(shù),例如可以是M個(gè)字節(jié)的O或者M(jìn)個(gè)字節(jié)的I。舉例來說,所述比較單元303可以是比較器。第一確定單元304,用于若所述比較單元303的比較結(jié)果為所述第一 CRC值與所述第二 CRC值相同,則確定所述并行數(shù)據(jù)通過CRC。所述第一確定單元304可以是CPU,也可以是NP。例如,所述第一確定單元304可以是所述NP的轉(zhuǎn)發(fā)單元。舉例來說,如果所述轉(zhuǎn)發(fā)單元確定所述并行數(shù)據(jù)通過CRC,所述轉(zhuǎn)發(fā)單元可以對(duì)所述并行數(shù)據(jù)進(jìn)行轉(zhuǎn)發(fā)。如果所述轉(zhuǎn)發(fā)單元確定所述并行數(shù)據(jù)沒有通過CRC, 所述轉(zhuǎn)發(fā)單元可以對(duì)所述并行數(shù)據(jù)進(jìn)行丟棄。上述校驗(yàn)裝置通過比較所述并行數(shù)據(jù)的位寬對(duì)應(yīng)的所述CRC電路生成的所述第一 CRC值與所述第二 CRC值是否相同,即可確定所述并行數(shù)據(jù)是否通過CRC。也就是說,上述校驗(yàn)裝置只需要一個(gè)CRC電路。相對(duì)于現(xiàn)有技術(shù)中,對(duì)位寬為多個(gè)字節(jié)的并行數(shù)據(jù)進(jìn)行CRC校驗(yàn)需要的多個(gè)CRC電路的裝置,上述校驗(yàn)裝置所需的硬件資源較少。可選的,圖3所示的校驗(yàn)裝置中,所述CRC電路具體可以用于如果X除以Y的余數(shù)不等于0,則在所述并行數(shù)據(jù)的尾部添加第四數(shù)據(jù),所述第四數(shù)據(jù)的長(zhǎng)度為M個(gè)字節(jié),得到新的并行數(shù)據(jù);對(duì)所述新的并行數(shù)據(jù)進(jìn)行運(yùn)算??蛇x的,圖3所示的校驗(yàn)裝置中,所述CRC電路具體可以用于如果X除以Y的余數(shù)等于O,則不在所述并行數(shù)據(jù)的尾部添加數(shù)據(jù),對(duì)所述并行數(shù)據(jù)進(jìn)行運(yùn)算。可選的,圖3所示的校驗(yàn)裝置中,還可以包括添加單元405,用于分別在所述第二數(shù)據(jù)的尾部添加I至Y個(gè)字節(jié)的數(shù)據(jù),得到Y(jié)個(gè)數(shù)據(jù);計(jì)算單元406,用于分別對(duì)所述添加單元405生成的所述Y個(gè)數(shù)據(jù)執(zhí)行CRC,得到Y(jié)個(gè)CRC值;第二確定單元407,用于在所述比較單元303比較所述第一 CRC值與所述第二 CRC值是否相同之前確定所述計(jì)算單元406得到的所述Y個(gè)CRC值中與所述添加單元405得到的所述Y個(gè)數(shù)據(jù)中通過在所述第二數(shù)據(jù)的尾部添加所述M個(gè)字節(jié)的數(shù)據(jù)得到的數(shù)據(jù)對(duì)應(yīng)的CRC值為所述第二 CRC值。舉例來說,所述比較單元303可以根據(jù)所述第二確定單元407確定的所述第二 CRC值比較所述第一 CRC值與所述第二 CRC值是否相同。關(guān)于所述添加單元405、所述計(jì)算單元406以及所述第二確定單元407,具體請(qǐng)參見圖4。本發(fā)明實(shí)施例還提供了一種網(wǎng)絡(luò)設(shè)備,該網(wǎng)絡(luò)設(shè)備包括圖3所示的校驗(yàn)裝置或者圖4所示的校驗(yàn)裝置。舉例來說,所述網(wǎng)絡(luò)設(shè)備可以是路由器、交換機(jī)、寬帶遠(yuǎn)程接入服務(wù)器(broadbandremote access server, BRAS)、防火墻或者負(fù)載均衡器。本領(lǐng)域普通技術(shù)人員可以意識(shí)到,結(jié)合本文中所公開的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計(jì)算機(jī)軟件和電子硬件的結(jié)合來實(shí)現(xiàn)。這些功能究竟以硬件還 是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來使用不同方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,上述描述的系統(tǒng)、裝置和單元的具體工作過程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過程,在此不再贅述。在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng)、裝置和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。所述功能如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或處理器(processor)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括U盤、移動(dòng)硬盤、只讀存儲(chǔ)器(R0M,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM, Random Access Memory)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。以上所述,僅為本發(fā)明的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種校驗(yàn)方法,其特征在于,包括 接收并行數(shù)據(jù),所述并行數(shù)據(jù)的字節(jié)數(shù)為X,所述并行數(shù)據(jù)的位寬為Y個(gè)字節(jié),X為正整數(shù),Y為正整數(shù); 采用循環(huán)冗余校驗(yàn)CRC電路對(duì)所述并行數(shù)據(jù)進(jìn)行運(yùn)算,獲得第一 CRC值; 比較所述第一 CRC值與第二 CRC值是否相同,所述第二 CRC值為對(duì)第一數(shù)據(jù)執(zhí)行CRC獲得的CRC值,所述第一數(shù)據(jù)為在第二數(shù)據(jù)的尾部添加M個(gè)字節(jié)的數(shù)據(jù)得到的數(shù)據(jù),所述第二數(shù)據(jù)為在第三數(shù)據(jù)的尾部添加第三CRC值得到的數(shù)據(jù),所述第三CRC值為所述第三數(shù)據(jù)的CRC值,M等于Y減去X除以Y的余數(shù); 若所述第一 CRC值與所述第二 CRC值相同,則確定所述并行數(shù)據(jù)通過CRC。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述采用所述CRC電路對(duì)所述并行數(shù)據(jù)進(jìn)行運(yùn)算包括 如果X除以Y的余數(shù)不等于O,則在所述并行數(shù)據(jù)的尾部添加第四數(shù)據(jù),所述第四數(shù)據(jù)的長(zhǎng)度為M個(gè)字節(jié),得到新的并行數(shù)據(jù); 采用所述CRC電路對(duì)所述新的并行數(shù)據(jù)進(jìn)行運(yùn)算。
3.根據(jù)權(quán)利要求I或2所述的方法,其特征在于,所述采用所述CRC電路對(duì)所述并行數(shù)據(jù)進(jìn)行運(yùn)算包括 如果X除以Y的余數(shù)等于O,則不在所述并行數(shù)據(jù)的尾部添加數(shù)據(jù),采用所述CRC電路對(duì)所述并行數(shù)據(jù)進(jìn)行運(yùn)算。
4.根據(jù)權(quán)利要求I至3中任一所述的方法,其特征在于,比較所述第一CRC值與所述第二 CRC值是否相同之前,所述方法還包括 分別在所述第二數(shù)據(jù)的尾部添加I至Y個(gè)字節(jié)的數(shù)據(jù),得到Y(jié)個(gè)數(shù)據(jù); 分別對(duì)所述Y個(gè)數(shù)據(jù)執(zhí)行CRC,得到Y(jié)個(gè)CRC值; 確定所述Y個(gè)CRC值中與所述Y個(gè)數(shù)據(jù)中通過在所述第二數(shù)據(jù)的尾部添加所述M個(gè)字節(jié)的數(shù)據(jù)得到的數(shù)據(jù)對(duì)應(yīng)的CRC值為所述第二 CRC值。
5.一種校驗(yàn)裝置,其特征在于,包括 接收單元,用于接收并行數(shù)據(jù),所述并行數(shù)據(jù)的字節(jié)數(shù)為X,所述并行數(shù)據(jù)的位寬為Y個(gè)字節(jié),X為正整數(shù),Y為正整數(shù); 循環(huán)冗余校驗(yàn)CRC電路,用于對(duì)所述接收單元接收的所述并行數(shù)據(jù)進(jìn)行運(yùn)算,獲得第一CRC 值; 比較單元,用于比較所述CRC電路生成的所述第一 CRC值與第二 CRC值是否相同,所述第二 CRC值為對(duì)第一數(shù)據(jù)執(zhí)行CRC獲得的CRC值,所述第一數(shù)據(jù)為在第二數(shù)據(jù)的尾部添加M個(gè)字節(jié)的數(shù)據(jù)得到的數(shù)據(jù),所述第二數(shù)據(jù)為在第三數(shù)據(jù)的尾部添加第三CRC值得到的數(shù)據(jù),所述第三CRC值為所述第三數(shù)據(jù)的CRC值,M等于Y減去X除以Y的余數(shù); 第一確定單元,用于若所述比較單元的比較結(jié)果為所述第一 CRC值與所述第二 CRC值相同,則確定所述并行數(shù)據(jù)通過CRC。
6.根據(jù)權(quán)利要求5所述的校驗(yàn)裝置,其特征在于,所述CRC電路具體用于 如果X除以Y的余數(shù)不等于O,則在所述并行數(shù)據(jù)的尾部添加第四數(shù)據(jù),所述第四數(shù)據(jù)的長(zhǎng)度為M個(gè)字節(jié),得到新的并行數(shù)據(jù); 對(duì)所述新的并行數(shù)據(jù)進(jìn)行運(yùn)算。
7.根據(jù)權(quán)利要求5或6所述的校驗(yàn)裝置,其特征在于,所述CRC電路具體用于 如果X除以Y的余數(shù)等于O,則不在所述并行數(shù)據(jù)的尾部添加數(shù)據(jù),對(duì)所述并行數(shù)據(jù)進(jìn)行運(yùn)算。
8.根據(jù)權(quán)利要求5至7中任一所述的校驗(yàn)裝置,其特征在于,所述校驗(yàn)裝置還包括 添加單元,用于分別在所述第二數(shù)據(jù)的尾部添加I至Y個(gè)字節(jié)的數(shù)據(jù),得到Y(jié)個(gè)數(shù)據(jù); 計(jì)算單元,用于分別對(duì)所述添加單元生成的所述Y個(gè)數(shù)據(jù)執(zhí)行CRC,得到Y(jié)個(gè)CRC值; 第二確定單元,用于在所述比較單元比較所述第一 CRC值與所述第二 CRC值是否相同之前確定所述計(jì)算單元得到的所述Y個(gè)CRC值中與所述添加單元得到的所述Y個(gè)數(shù)據(jù)中通過在所述第二數(shù)據(jù)的尾部添加所述M個(gè)字節(jié)的數(shù)據(jù)得到的數(shù)據(jù)對(duì)應(yīng)的CRC值為所述第二CRC 值。
9.一種網(wǎng)絡(luò)設(shè)備,其特征在于,所述網(wǎng)絡(luò)設(shè)備包括如權(quán)利要求5至8中任一所述的校驗(yàn) 裝直。
全文摘要
本發(fā)明實(shí)施例公開了一種校驗(yàn)方法及校驗(yàn)裝置。該校驗(yàn)方法包括接收并行數(shù)據(jù),所述并行數(shù)據(jù)的字節(jié)數(shù)為X,所述并行數(shù)據(jù)的位寬為Y個(gè)字節(jié),X為正整數(shù),Y為正整數(shù);采用循環(huán)冗余校驗(yàn)CRC電路對(duì)所述并行數(shù)據(jù)進(jìn)行運(yùn)算,獲得第一CRC值;比較所述第一CRC值與第二CRC值是否相同,所述第二CRC值為對(duì)第一數(shù)據(jù)執(zhí)行CRC獲得的CRC值,所述第一數(shù)據(jù)為在第二數(shù)據(jù)的尾部添加M個(gè)字節(jié)的數(shù)據(jù)得到的數(shù)據(jù),所述第二數(shù)據(jù)為在第三數(shù)據(jù)的尾部添加第三CRC值得到的數(shù)據(jù),所述第三CRC值為所述第三數(shù)據(jù)的CRC值,M等于Y減去X除以Y的余數(shù);若所述第一CRC值與所述第二CRC值相同,則確定所述并行數(shù)據(jù)通過CRC。該技術(shù)方案只需要一個(gè)CRC電路。相對(duì)于現(xiàn)有技術(shù)該技術(shù)方案所需的硬件資源較少。
文檔編號(hào)H04L1/00GK102916781SQ20121042794
公開日2013年2月6日 申請(qǐng)日期2012年10月31日 優(yōu)先權(quán)日2012年10月31日
發(fā)明者趙文江, 羅俊, 劉永峰, 雷浩, 魯珣 申請(qǐng)人:華為技術(shù)有限公司