两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

計算循環(huán)冗余校驗碼的方法和裝置的制作方法

文檔序號:7620225閱讀:243來源:國知局
專利名稱:計算循環(huán)冗余校驗碼的方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及通信技術(shù)領(lǐng)域,具體是計算循環(huán)冗余(Cyclic Redundancy Check, CRC)校驗碼的方法和裝置。
背景技術(shù)
在數(shù)據(jù)通信系統(tǒng)內(nèi)部,由于數(shù)據(jù)幀較大,往往分成多拍并行傳輸。除最后一拍以 外,其他節(jié)拍都傳輸最大數(shù)據(jù)寬度。最后一拍的有效數(shù)據(jù)寬度在1字節(jié)到最大字節(jié)間變化。 如果數(shù)據(jù)幀只有一個節(jié)拍,等同于多拍數(shù)據(jù)的最后一拍。由于數(shù)據(jù)幀最后一拍的數(shù)據(jù)長度 不固定,使得計算數(shù)據(jù)幀CRC碼的過程中,數(shù)據(jù)幀最后一拍的CRC計算存在多種可能,CRC校 驗碼的計算往往成為高速以太網(wǎng)電路設(shè)計中的頻率瓶頸。數(shù)據(jù)幀的傳輸如圖1所示,最大 數(shù)據(jù)寬度為M字節(jié),最后一拍有效數(shù)據(jù)寬度為N字節(jié)。同時,在數(shù)據(jù)通信系統(tǒng)中,數(shù)據(jù)幀的 數(shù)據(jù)傳輸往往伴隨著其他數(shù)據(jù)幀信息一起傳輸。常用的CRC值的算法有串行法和并行法兩種。串行方法每個時鐘周期只能處理1 比特數(shù)據(jù),無法滿足大數(shù)據(jù)量,高頻率電路的計算要求。通常采用并行的CRC算法來提高CRC值校驗碼的計算的速度。大部分并行CRC值 校驗碼的算法的推導(dǎo)是從串行編碼電路出發(fā),推出編碼器前一個狀態(tài)與下一個狀態(tài)的矩陣 運算關(guān)系,通過遞推可以得到第N個狀態(tài)和第零個狀態(tài)的矩陣運算關(guān)系,用異或門實現(xiàn)此 矩陣,即可在一個時鐘周期算出N位數(shù)據(jù)的CRC值。如果數(shù)據(jù)的寬度很寬,即使采用并行算法,芯片或者FPGA (Field-Programmab 1 e Gate Array,現(xiàn)場可編程門陣列)也無法達(dá)到要求的頻率。此時可采用流水線式的CRC算 法設(shè)r = 32,即要計算CRC32 ;設(shè)m = 64,為每次并行計算的數(shù)據(jù)寬度;設(shè)C為前一級CRC32 的輸入;設(shè){A,B}為現(xiàn)在要并行計算的數(shù)據(jù),A、B的位寬都是64??梢圆捎?4位CRC32并 行計算電路,計算出A,B的CRC32的值;采用32位CRC32并行計算電路,計算C的CRC32的 值;將所得結(jié)果異或即可獲得{A,B, C}的CRC32的值。數(shù)據(jù)幀最后一拍數(shù)據(jù)的CRC計算在高速以太網(wǎng)100(ibpS應(yīng)用環(huán)境下,數(shù)據(jù)寬度往 往要采用較寬的256bit,512bit或者1024bit才能達(dá)到數(shù)據(jù)處理的速度要求。此時計算數(shù) 據(jù)幀CRC值,由于數(shù)據(jù)位寬較大,即使整拍數(shù)據(jù)的CRC計算也經(jīng)常要采用流水線算法才能達(dá) 到頻率要求;最關(guān)鍵的是,數(shù)據(jù)幀的最后一拍,有效數(shù)據(jù)的位寬可能從Ibyte到最大位寬, 有多種情況,數(shù)據(jù)幀最后一拍CRC計算需要用掉很多資源,而且難以達(dá)到頻率要求。考慮需要計算的數(shù)據(jù)幀數(shù)據(jù)寬度為256bit,則對于最后一拍數(shù)據(jù)的CRC計算,可 能處理的情況達(dá)到32種。考慮這最后一拍數(shù)據(jù)的CRC計算在一個時鐘周期內(nèi)完成,現(xiàn)有技 術(shù)中,需要實現(xiàn)32個CRC運算模塊,消耗較多的資源,而且由于輸入信號的負(fù)載較大,該方 式無法達(dá)到較高的頻率。較大的數(shù)據(jù)寬度和最后一拍數(shù)據(jù)的CRC值處理難題,使得CRC運算模塊計算往往 成為高速以太網(wǎng)電路設(shè)計中的頻率瓶頸。

發(fā)明內(nèi)容
本發(fā)明的主要目的是提供一種計算循環(huán)冗余校驗碼的方法和裝置,可以獲得較高 的工作頻率數(shù)據(jù)幀的計算,占用資源較少,而且可以推廣到任意位寬的數(shù)據(jù)。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是一種計算循環(huán)冗余校驗碼的方法,其包括通過一級流水或者多級流水計算整拍數(shù)據(jù)的循環(huán)冗余值;通過多級流水的分布計算方式計算出最后一拍數(shù)據(jù)的循環(huán)冗余值;根據(jù)所述整拍數(shù)據(jù)的循環(huán)冗余值和最后一拍數(shù)據(jù)的循環(huán)冗余值得到所述數(shù)據(jù)幀 的循環(huán)冗余值。優(yōu)選地,所述通過一級流水或者多級流水計算所述整拍數(shù)據(jù)的循環(huán)冗余值后,進(jìn) 一步包括保存所述整拍數(shù)據(jù)的循環(huán)冗余值。優(yōu)選地,所述通過多級流水的分布計算方式計算出最后一拍數(shù)據(jù)的循環(huán)冗余值, 具體包括每一級流水只計算輸入數(shù)據(jù)固定寬度的循環(huán)冗余值,如果輸入數(shù)據(jù)的有效寬度小 于要計算的寬度,則將所述數(shù)據(jù)透傳至下一級流水。優(yōu)選地,在多級流水計算過程中,根據(jù)輸入數(shù)據(jù)的寬度確定所述流水的級數(shù)。本發(fā)明還提供一種計算循環(huán)冗余校驗碼的裝置,包括整拍數(shù)據(jù)計算單元,用于通過一級流水或者多級流水計算整拍數(shù)據(jù)的循環(huán)冗余 值;最后一拍數(shù)據(jù)計算單元,用于通過多級流水的分布計算方式計算出最后一拍數(shù)據(jù) 的循環(huán)冗余值;循環(huán)冗余計算單元,用于根據(jù)所述整拍數(shù)據(jù)的循環(huán)冗余值和最后一拍數(shù)據(jù)的循環(huán) 冗余值得到所述數(shù)據(jù)幀的循環(huán)冗余值。優(yōu)選地,所述整拍數(shù)據(jù)計算單元,還用于保存所述整拍數(shù)據(jù)的循環(huán)冗余值。優(yōu)選地,所述最后一拍數(shù)據(jù)計算單元,還用于在計算過程中,每一級流水只計算輸 入數(shù)據(jù)固定寬度的循環(huán)冗余值,如果輸入數(shù)據(jù)的有效寬度小于要計算的寬度,則將所述數(shù) 據(jù)透傳至下一級流水。優(yōu)選地,所述最后一拍數(shù)據(jù)計算單元或整拍數(shù)據(jù)計算單元,還用于在多級流水計 算過程中,根據(jù)輸入數(shù)據(jù)的寬度確定所述流水的級數(shù)。實施本發(fā)明的技術(shù)方案,具有以下有益效果本發(fā)明提供的方法和裝置即使在數(shù) 據(jù)位寬較大的情況下計算數(shù)據(jù)幀的CRC值,也可以實現(xiàn)較高頻率的數(shù)據(jù)幀的CRC值的計算, 突破了高速以太網(wǎng)應(yīng)用中CRC值計算的頻率瓶頸。占用資源較少,而且可以推廣到任意位 寬的數(shù)據(jù)。


圖1為本發(fā)明實施例提供的方法流程圖;圖2為圖1的步驟SllO采用一級流水的步驟SllO的流程圖;圖3為圖1的步驟SllO采用一級流水時的第一級流水的實現(xiàn)結(jié)構(gòu)圖;圖4為圖1的步驟SllO采用一級流水時的第二級流水的實現(xiàn)結(jié)構(gòu)圖5為圖1的步驟SllO采用多級流水時的步驟SllO的流程圖;圖6為圖1的步驟SllO采用多級流水時的步驟S120的流程7為圖1的步驟SllO采用多級流水時的第一級流水的實現(xiàn)結(jié)構(gòu)8為圖1的步驟SllO采用多級流水時的第二級流水的實現(xiàn)結(jié)構(gòu)圖;圖9為本發(fā)明實施例提供的裝置的結(jié)構(gòu)示意圖。本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參照附圖做進(jìn)一步說明。
具體實施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對 本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并 不用于限定本發(fā)明。本發(fā)明實施例提供一種計算循環(huán)冗余校驗碼的方法,如圖1所示,該方法包括步 驟S110、通過一級流水或者多級流水計算所述整拍數(shù)據(jù)的循環(huán)冗余(CRC)值;該步驟SllO中,如果滿足頻率要求,可以采用一級流水計算整拍數(shù)據(jù)的CRC值;如 果頻率不滿足要求,也可以采用多級流水算法,分幾級計算整拍數(shù)據(jù)的CRC值。整拍數(shù)據(jù)的 實現(xiàn)方式靈活,可以根據(jù)器件性能進(jìn)行選擇。另外,在其他的實施例中,更進(jìn)一步的,如果采 用多級流水計算過程,則根據(jù)輸入數(shù)據(jù)的寬度確定所述流水的級數(shù)。如果采用多級流水算 法,分幾級流水計算整拍數(shù)據(jù)的CRC值,則最后一拍數(shù)據(jù)在該步驟SllO中,也會有部分的最 后一拍數(shù)據(jù)被計算。該步驟SllO輸出至步驟SllO中的數(shù)據(jù)的寬度也將減少,這樣可以減 少步驟S120中流水的級數(shù)。在此情況下,該步驟SllO的最后一級流水不僅需要保存并計 算整拍數(shù)據(jù)的CRC值,還需要在最后一拍數(shù)據(jù)到達(dá)時,把最后一拍數(shù)據(jù)在該步驟110中參與 計算的數(shù)據(jù)的CRC值與之前整拍數(shù)據(jù)的CRC值一起計算,算出新的CRC值,并連同最后一拍 未計算的數(shù)據(jù)一起輸出至步驟S120中。在其他的實施例中,進(jìn)一步的,該步驟SllO還包括保存所述整拍數(shù)據(jù)的循環(huán)冗 余值。對于該步驟,需要保留上一拍整拍數(shù)據(jù)的CRC值,用于與當(dāng)前輸入的整拍數(shù)據(jù)一起計 算出新的CRC值。直至數(shù)據(jù)幀的最后一拍數(shù)據(jù)到達(dá),把之前的CRC值與最后一拍數(shù)據(jù)都送 入步驟S120中。如果數(shù)據(jù)幀的最后一拍數(shù)據(jù)為整拍數(shù)據(jù),則在步驟SllO就可以完成整個 數(shù)據(jù)幀的CRC值的計算,步驟S120的各級流水把輸入的CRC值直接輸出即可。S120、通過多級流水的分布計算方式計算出最后一拍數(shù)據(jù)的循環(huán)冗余值;在步驟S120的每級流水(最后一級除外),輸入數(shù)據(jù)的寬度可以表示成
bit,只取輸入數(shù)據(jù)高位的2114位數(shù)據(jù)與輸入的CRC值計算出新的CRC值,把輸入數(shù)據(jù)低位的 (2-^-8)位數(shù)據(jù)和新的CRC值輸出至下一級流水;如果輸入數(shù)據(jù)的有效數(shù)據(jù)寬度小于2"-1, 則本級流水不計算,把輸入數(shù)據(jù)高位的Olri-S)位數(shù)據(jù)和輸入的CRC值直接輸出至下一級 流水。在步驟S120中,輸入數(shù)據(jù)每經(jīng)過一級流水,數(shù)據(jù)位寬就會減少。數(shù)據(jù)輸入至最后 一級只有Ibyte數(shù)據(jù)位寬,此Ibyte數(shù)據(jù)若無效,則最后一級將輸入的CRC值直接輸出,得 到數(shù)據(jù)幀的CRC值;此Ibyte數(shù)據(jù)若有效,則與輸入的CRC值一起計算出數(shù)據(jù)幀的CRC值。S130、根據(jù)所述整拍數(shù)據(jù)的循環(huán)冗余值和最后一拍數(shù)據(jù)的循環(huán)冗余值得到所述數(shù)據(jù)幀的循環(huán)冗余值。每一級流水只計算輸入數(shù)據(jù)固定寬度的循環(huán)冗余值,如果輸入數(shù)據(jù)的 有效寬度小于要計算的寬度,則將所述數(shù)據(jù)透傳至下一級流水,直至計算出該最后一拍數(shù) 據(jù)的循環(huán)冗余值。上述實施例提供的方法在數(shù)據(jù)位寬較大的情況下計算數(shù)據(jù)幀的CRC值,可以實現(xiàn) 較高的頻率數(shù)據(jù)幀的CRC值的計算,突破了高速以太網(wǎng)應(yīng)用中CRC值計算的頻率瓶頸。占 用資源較少,而且可以推廣到任意位寬的數(shù)據(jù)。下面提供上述方法的具體應(yīng)用的實施例如圖2所示,步驟SllO采用一級流水計算出整拍數(shù)據(jù)的CRC值,則數(shù)據(jù)幀的CRC值 計算電路實現(xiàn)如圖2所示,包括第一級流水處理(輸入256bit數(shù)據(jù))、第二級流水處理(輸 入MSbit數(shù)據(jù)和CRC值)、第三級流水處理(輸入120bit數(shù)據(jù)和CRC值)、第四級流水處 理(輸入56bit數(shù)據(jù)和CRC值)、第五級流水處理(輸入24bit數(shù)據(jù)和CRC值)、第六級流水 處理(輸入8bit數(shù)據(jù)和CRC值)。圖2中,第一個虛框表示上述實施例提供的步驟S120, 計算數(shù)據(jù)幀整拍數(shù)據(jù);第二個虛框表示上述實施例提供的步驟S130,計算數(shù)據(jù)幀最后一拍 數(shù)據(jù)。步驟SllO的第一級流水處理256bit的實現(xiàn)過程如圖3所示。圖3中,ena表示 數(shù)據(jù)幀數(shù)據(jù)有效,SOP表示數(shù)據(jù)幀的開始,eop表示數(shù)據(jù)幀的結(jié)束,Vldbyte表示數(shù)據(jù)幀最后 一拍數(shù)據(jù)的有效數(shù)據(jù)數(shù)目,后綴in,out表示相應(yīng)信號是模塊的輸入或者輸出;crc_pre表 示數(shù)據(jù)幀已經(jīng)參與CRC計算的若干拍數(shù)據(jù)計算出的CRC值,crcjnit表示數(shù)據(jù)幀第一拍數(shù) 據(jù)開始計算CRC值時,輸入CRC計算電路的初始值,crc256并行運算電路301表示256位 CRC并行運算電路。對于數(shù)據(jù)幀的第一拍數(shù)據(jù),CRC值的計算取初值32,hffff_ffff ;對于 數(shù)據(jù)幀的其他整拍,則取上一拍計算得到的CRC值crc_pre ;對于數(shù)據(jù)幀的最后一拍,如果 有效數(shù)據(jù)寬度為256bit,則在此部分crc256并行運算電路301和寄存器303即可完成對數(shù) 據(jù)幀CRC值的計算;如果最后一拍有效數(shù)據(jù)寬度小于256bit,則將最后一拍數(shù)據(jù)和此前得 到的CRC值crc_pre直接輸出至下一級流水(選擇器304),因此步驟SllO對步驟S120輸 出數(shù)據(jù)的位寬,為MSbit即可。如果數(shù)據(jù)幀為單拍(即sopin與eopin在同一周期出現(xiàn)), 且有效數(shù)據(jù)寬度小于25m3it,則本級流水輸出的CRC值(CRC_0UT)為32,hffff_ffff。圖4中,ena表示數(shù)據(jù)幀數(shù)據(jù)有效,sop表示數(shù)據(jù)幀的開始,eop表示數(shù)據(jù)幀的結(jié)束, vldbyte表示數(shù)據(jù)幀最后一拍數(shù)據(jù)的有效數(shù)據(jù)數(shù)目,后綴iruout表示相應(yīng)信號是模塊的輸 入或者輸出;CRC_IN表示上一級流水計算出的CRC值,CRC_0UT表示本級流水計算出的CRC 值輸出至下一級,crcl28并行運算電路401表示1 位CRC并行運算電路。在步驟S120 中,第二級流水“處理128bit”的實現(xiàn)過程如圖4所示。如果輸入數(shù)據(jù)的有效位寬大于等于 U8bit,則輸入數(shù)據(jù)的高128bit數(shù)據(jù)到并行運算電路401參與CRC值計算,把輸入 數(shù)據(jù)的低120bit和算出的CRC值輸出至下一級流水(選擇器40 ;否則把輸入數(shù)據(jù)的高 120bit和輸入的CRC值直接輸出至下一級流水(選擇器40;3)。圖2中的步驟S120中,每 級流水的實現(xiàn)都與圖4的實現(xiàn)方式一致,即輸入數(shù)據(jù)的寬度為(2n-8)bit,如果輸入數(shù)據(jù)的 有效寬度大于21^1,則高位的2114位數(shù)據(jù)參與CRC運算,把算出的CRC值和低位的Qlri-S)位 數(shù)據(jù)輸出;如果輸入數(shù)據(jù)的有效寬度小于2"-1,則把輸入的CRC值和輸入數(shù)據(jù)的高Qlri-S) 位數(shù)據(jù)直接輸出。如果步驟SllO采用多級流水方式實現(xiàn)數(shù)據(jù)幀的整拍數(shù)據(jù)的CRC值計算,則步驟SllO的實現(xiàn)過程如圖5所示,此時最后一拍會有部分?jǐn)?shù)據(jù)在步驟SllO就算出了 CRC值,所 以步驟S120的實現(xiàn)過程如圖6所示。圖5中,步驟S120的第一級流水的實現(xiàn)如圖7所示。圖7中,ena表示數(shù)據(jù)幀數(shù) 據(jù)有效,sop表示數(shù)據(jù)幀的開始,eop表示數(shù)據(jù)幀的結(jié)束,Vldbyte表示數(shù)據(jù)幀最后一拍數(shù)據(jù) 的有效數(shù)據(jù)數(shù)目,后綴in,out表示相應(yīng)信號是模塊的輸入或者輸出;crcU8并行運算電路 701表示1 位CRC并行計算電路。第一級流水(選擇器70 只計算輸入數(shù)據(jù)中高1 位 的CRC值。如果輸入數(shù)據(jù)的有效數(shù)據(jù)寬度小于U8bit,則選擇器703將輸入數(shù)據(jù)的高1 位直接輸出,同時輸出的CRC值為0。最后一拍數(shù)據(jù)經(jīng)過此級流水,如果輸入數(shù)據(jù)的有效數(shù) 據(jù)寬度大于U8bit,則高128bit的數(shù)據(jù)也會被計算CRC值。圖5中,步驟SllO的第二級流水要完成整拍數(shù)據(jù)的CRC值的計算,其實現(xiàn)方式如 圖8所示。圖8中,ena表示數(shù)據(jù)幀數(shù)據(jù)有效,sop表示數(shù)據(jù)幀的開始,eop表示數(shù)據(jù)幀的結(jié) 束,vldbyte表示數(shù)據(jù)幀最后一拍數(shù)據(jù)的有效數(shù)據(jù)數(shù)目,后綴in,out表示相應(yīng)信號是模塊 的輸入或者輸出;CRC_IN表示上一級流水計算出的CRC值,CRC_0UT表示本級流水計算出 的CRC值輸出至下一級,crcl28并行運算電路801表示128位CRC并行計算電路,crc256 并行運算電路805表示256位CRC并行計算電路;crc_pre表示數(shù)據(jù)幀已經(jīng)參與CRC計算 的若干拍數(shù)據(jù)計算出的CRC值,crc_data表示1 位輸入數(shù)據(jù)與CRC_IN通過并行 計算電路(即運算電路80 計算出的CRC值,crc_prel28表示crc_pre經(jīng)過crcU8并 行運算電路801計算出的CRC值,crc_pre256表示crc_pre經(jīng)過crc256并行運算電路805 計算出的CRC值。由流水線算法可知,對于數(shù)據(jù)幀的第一拍數(shù)據(jù)(假設(shè)數(shù)據(jù)幀有多拍數(shù)據(jù) 組成),用上級流水輸入的數(shù)據(jù)和CRC_IN (CRC的輸入值)算出這拍數(shù)據(jù)的CRC值,先通過選 擇器808選擇crc_pre的值為32,hffff_ffff,然后用crc_pre,CRC_IN和輸入數(shù)據(jù)算出第 一拍數(shù)據(jù)的CRC_0UT (選擇器806中對應(yīng)的“其他情況”),并存于寄存器807 ;對于之后的每 個整拍數(shù)據(jù),crc_pre即為上一拍數(shù)據(jù)算出的CRC_0UT (通過選擇器808選擇),先算出數(shù)據(jù) 的CRC值crc_data (運算電路803),同時算出crc_pre的計算結(jié)果crc_pre256 (通過運算 電路805運算),然后兩者異或(通過運算電路804異或),即可得到新的CRC_0UT (通過選 擇器806中對應(yīng)的“其他情況”得到的),存于寄存器807。當(dāng)最后一拍數(shù)據(jù)到達(dá)本級流水 時,如果最后一拍數(shù)據(jù)也為整拍數(shù)據(jù),則處理方式與其他整拍數(shù)據(jù)相同;如果最后一拍數(shù)據(jù) 有效寬度小于U8bit,則最后一拍數(shù)據(jù)在第一級流水中未做處理,直接輸出crc_pre至寄 存器807(對應(yīng)選擇器806中的“3’ bllO”情況)即可;如果最后一拍數(shù)據(jù)的有效寬度大于 等于128bit且小于256bit,則最后一拍數(shù)據(jù)有128bit在第一級流水中被計算過CRC值,此 時要先把crc_pre通過crcU8并行運算電路801得到crc_prel28,然后把crc_preU8與 CRC_IN異或(通過運算電路802進(jìn)行異或),才能得到新的CRC值(對應(yīng)選擇器806中的 “3,blOl”情況),存于寄存器807。圖6中各級流水的實現(xiàn)方式與圖4中描述的實現(xiàn)方式類似。本發(fā)明實施例還提供一種計算循環(huán)冗余校驗碼的裝置,如圖9所示,該裝置包括整拍數(shù)據(jù)計算單元210,用于通過一級流水或者多級流水計算所述整拍數(shù)據(jù)的循 環(huán)冗余值;最后一拍數(shù)據(jù)計算單元220,用于通過多級流水的分布計算方式計算出最后一拍 數(shù)據(jù)的循環(huán)冗余值;
循環(huán)冗余計算單元230,用于根據(jù)所述整拍數(shù)據(jù)的循環(huán)冗余值和最后一拍數(shù)據(jù)的 循環(huán)冗余值得到所述數(shù)據(jù)幀的循環(huán)冗余值。在其他的實施例中,進(jìn)一步的,所述整拍數(shù)據(jù)計算單元210,還用于保存所述整拍 數(shù)據(jù)的循環(huán)冗余值。在其他的實施例中,進(jìn)一步的,所述最后一拍數(shù)據(jù)計算單元220,還用于在計算過 程中,每一級流水只計算輸入數(shù)據(jù)固定寬度的循環(huán)冗余值,如果輸入數(shù)據(jù)的有效寬度小于 要計算的寬度,則將所述數(shù)據(jù)透傳至下一級流水。在其他的實施例中,進(jìn)一步的,所述最后一拍數(shù)據(jù)計算單元220或整拍數(shù)據(jù)計算 單元210,還用于在多級流水計算過程中,根據(jù)輸入數(shù)據(jù)的寬度確定所述流水的級數(shù)。上述實施例提供的裝置在數(shù)據(jù)位寬較大的情況下計算數(shù)據(jù)幀的CRC值,可以實現(xiàn) 較高的頻率數(shù)據(jù)幀的CRC值的計算,突破了高速以太網(wǎng)應(yīng)用中CRC值計算的頻率瓶頸。占 用資源較少,而且可以推廣到任意位寬的數(shù)據(jù)。以上僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和 原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種計算循環(huán)冗余校驗碼的方法,其特征在于,包括 通過一級流水或者多級流水計算整拍數(shù)據(jù)的循環(huán)冗余值;通過多級流水的分布計算方式計算出最后一拍數(shù)據(jù)的循環(huán)冗余值; 根據(jù)所述整拍數(shù)據(jù)的循環(huán)冗余值和最后一拍數(shù)據(jù)的循環(huán)冗余值得到所述數(shù)據(jù)幀的循 環(huán)冗余值。
2.如權(quán)利要求1所述方法,其特征在于,所述通過一級流水或者多級流水計算整拍數(shù) 據(jù)的循環(huán)冗余值后,進(jìn)一步包括保存所述整拍數(shù)據(jù)的循環(huán)冗余值。
3.如權(quán)利要求1或2所述方法,其特征在于,所述通過多級流水的分布計算方式計算出 最后一拍數(shù)據(jù)的循環(huán)冗余值,具體包括每一級流水只計算輸入數(shù)據(jù)固定寬度的循環(huán)冗余值,如果輸入數(shù)據(jù)的有效寬度小于要 計算的寬度,則將所述數(shù)據(jù)透傳至下一級流水。
4.如權(quán)利要求1所述方法,其特征在于,在多級流水計算過程中,根據(jù)輸入數(shù)據(jù)的寬度 確定所述流水的級數(shù)。
5.一種計算循環(huán)冗余校驗碼的裝置,其特征在于,包括整拍數(shù)據(jù)計算單元,用于通過一級流水或者多級流水計算所述整拍數(shù)據(jù)的循環(huán)冗余值;最后一拍數(shù)據(jù)計算單元,用于通過多級流水的分布計算方式計算出最后一拍數(shù)據(jù)的循 環(huán)冗余值;循環(huán)冗余計算單元,用于根據(jù)所述整拍數(shù)據(jù)的循環(huán)冗余值和最后一拍數(shù)據(jù)的循環(huán)冗余 值得到所述數(shù)據(jù)幀的循環(huán)冗余值。
6.如權(quán)利要求5所述裝置,其特征在于,所述整拍數(shù)據(jù)計算單元,還用于保存所述整拍 數(shù)據(jù)的循環(huán)冗余值。
7.如權(quán)利要求5或6所述裝置,其特征在于,所述最后一拍數(shù)據(jù)計算單元,還用于在計 算過程中,每一級流水只計算輸入數(shù)據(jù)固定寬度的循環(huán)冗余值,如果輸入數(shù)據(jù)的有效寬度 小于要計算的寬度,則將所述數(shù)據(jù)透傳至下一級流水。
8.如權(quán)利要求5所述裝置,其特征在于,所述最后一拍數(shù)據(jù)計算單元或整拍數(shù)據(jù)計算 單元,還用于在多級流水計算過程中,根據(jù)輸入數(shù)據(jù)的寬度確定所述流水的級數(shù)。
全文摘要
本發(fā)明涉及一種計算循環(huán)冗余校驗碼的方法和裝置,該方法包括通過一級流水或者多級流水計算整拍數(shù)據(jù)的循環(huán)冗余值;通過多級流水的分布計算方式計算出最后一拍數(shù)據(jù)的循環(huán)冗余值;根據(jù)所述整拍數(shù)據(jù)的循環(huán)冗余值和最后一拍數(shù)據(jù)的循環(huán)冗余值得到所述數(shù)據(jù)幀的循環(huán)冗余值。本發(fā)明提供的方法和裝置即使在數(shù)據(jù)位寬較大的情況下計算數(shù)據(jù)幀的CRC值,也可以實現(xiàn)較高的頻率數(shù)據(jù)幀的CRC值的計算,突破了高速以太網(wǎng)應(yīng)用中CRC值計算的頻率瓶頸。占用資源較少,而且可以推廣到任意位寬的數(shù)據(jù)。
文檔編號H04L1/00GK102130744SQ20111007346
公開日2011年7月20日 申請日期2011年3月25日 優(yōu)先權(quán)日2011年3月25日
發(fā)明者姜愛鵬, 繆眾林, 袁春 申請人:中興通訊股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
泾阳县| 始兴县| 拉孜县| 和平县| 溧水县| 临澧县| 沙河市| 什邡市| 抚远县| 东源县| 伊宁县| 汶上县| 洛南县| 新源县| 满洲里市| 分宜县| 南充市| 夏河县| 综艺| 阜城县| 葫芦岛市| 永定县| 中山市| 错那县| 霍林郭勒市| 永城市| 原阳县| 荆门市| 大埔县| 衡南县| 霍邱县| 夏津县| 金华市| 双峰县| 云梦县| 马鞍山市| 黄山市| 阿巴嘎旗| 招远市| 正镶白旗| 榆树市|