[發明專利]計算循環冗余校驗碼的方法和裝置有效
| 申請號: | 201110073462.2 | 申請日: | 2011-03-25 |
| 公開(公告)號: | CN102130744A | 公開(公告)日: | 2011-07-20 |
| 發明(設計)人: | 姜愛鵬;繆眾林;袁春 | 申請(專利權)人: | 中興通訊股份有限公司 |
| 主分類號: | H04L1/00 | 分類號: | H04L1/00;H03M13/09 |
| 代理公司: | 深圳市世紀恒程知識產權代理事務所 44287 | 代理人: | 胡海國 |
| 地址: | 518057 廣東省深圳市南山*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 計算 循環 冗余 校驗碼 方法 裝置 | ||
技術領域
本發明涉及通信技術領域,具體是計算循環冗余(Cyclic?Redundancy?Check,CRC)校驗碼的方法和裝置。
背景技術
在數據通信系統內部,由于數據幀較大,往往分成多拍并行傳輸。除最后一拍以外,其他節拍都傳輸最大數據寬度。最后一拍的有效數據寬度在1字節到最大字節間變化。如果數據幀只有一個節拍,等同于多拍數據的最后一拍。由于數據幀最后一拍的數據長度不固定,使得計算數據幀CRC碼的過程中,數據幀最后一拍的CRC計算存在多種可能,CRC校驗碼的計算往往成為高速以太網電路設計中的頻率瓶頸。數據幀的傳輸如圖1所示,最大數據寬度為M字節,最后一拍有效數據寬度為N字節。同時,在數據通信系統中,數據幀的數據傳輸往往伴隨著其他數據幀信息一起傳輸。
常用的CRC值的算法有串行法和并行法兩種。串行方法每個時鐘周期只能處理1比特數據,無法滿足大數據量,高頻率電路的計算要求。
通常采用并行的CRC算法來提高CRC值校驗碼的計算的速度。大部分并行CRC值校驗碼的算法的推導是從串行編碼電路出發,推出編碼器前一個狀態與下一個狀態的矩陣運算關系,通過遞推可以得到第N個狀態和第零個狀態的矩陣運算關系,用異或門實現此矩陣,即可在一個時鐘周期算出N位數據的CRC值。
如果數據的寬度很寬,即使采用并行算法,芯片或者FPGA(Field-Programmable?Gate?Array,現場可編程門陣列)也無法達到要求的頻率。此時可采用流水線式的CRC算法:設r=32,即要計算CRC32;設m=64,為每次并行計算的數據寬度;設C為前一級CRC32的輸入;設{A,B}為現在要并行計算的數據,A、B的位寬都是64??梢圆捎?4位CRC32并行計算電路,計算出A,B的CRC32的值;采用32位CRC32并行計算電路,計算C的CRC32的值;將所得結果異或即可獲得{A,B,C}的CRC32的值。
數據幀最后一拍數據的CRC計算:在高速以太網100Gbps應用環境下,數據寬度往往要采用較寬的256bit,512bit或者1024bit才能達到數據處理的速度要求。此時計算數據幀CRC值,由于數據位寬較大,即使整拍數據的CRC計算也經常要采用流水線算法才能達到頻率要求;最關鍵的是,數據幀的最后一拍,有效數據的位寬可能從1byte到最大位寬,有多種情況,數據幀最后一拍CRC計算需要用掉很多資源,而且難以達到頻率要求。
考慮需要計算的數據幀數據寬度為256bit,則對于最后一拍數據的CRC計算,可能處理的情況達到32種??紤]這最后一拍數據的CRC計算在一個時鐘周期內完成,現有技術中,需要實現32個CRC運算模塊,消耗較多的資源,而且由于輸入信號的負載較大,該方式無法達到較高的頻率。
較大的數據寬度和最后一拍數據的CRC值處理難題,使得CRC運算模塊計算往往成為高速以太網電路設計中的頻率瓶頸。
發明內容
本發明的主要目的是提供一種計算循環冗余校驗碼的方法和裝置,可以獲得較高的工作頻率數據幀的計算,占用資源較少,而且可以推廣到任意位寬的數據。
本發明解決其技術問題所采用的技術方案是:
一種計算循環冗余校驗碼的方法,其包括:
通過一級流水或者多級流水計算整拍數據的循環冗余值;
通過多級流水的分布計算方式計算出最后一拍數據的循環冗余值;
根據所述整拍數據的循環冗余值和最后一拍數據的循環冗余值得到所述數據幀的循環冗余值。
優選地,所述通過一級流水或者多級流水計算所述整拍數據的循環冗余值后,進一步包括:保存所述整拍數據的循環冗余值。
優選地,所述通過多級流水的分布計算方式計算出最后一拍數據的循環冗余值,具體包括:
每一級流水只計算輸入數據固定寬度的循環冗余值,如果輸入數據的有效寬度小于要計算的寬度,則將所述數據透傳至下一級流水。
優選地,在多級流水計算過程中,根據輸入數據的寬度確定所述流水的級數。
本發明還提供一種計算循環冗余校驗碼的裝置,包括:
整拍數據計算單元,用于通過一級流水或者多級流水計算整拍數據的循環冗余值;
最后一拍數據計算單元,用于通過多級流水的分布計算方式計算出最后一拍數據的循環冗余值;
循環冗余計算單元,用于根據所述整拍數據的循環冗余值和最后一拍數據的循環冗余值得到所述數據幀的循環冗余值。
優選地,所述整拍數據計算單元,還用于保存所述整拍數據的循環冗余值。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中興通訊股份有限公司,未經中興通訊股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110073462.2/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種風冷固體激光泵浦用半導體激光水平陣列
- 下一篇:一種電池箱鎖定機構





