[发明专利]一种CRC计算方法及装置有效
| 申请号: | 201710512493.0 | 申请日: | 2017-06-29 |
| 公开(公告)号: | CN107451008B | 公开(公告)日: | 2020-05-08 |
| 发明(设计)人: | 刘军;池沐聪;刘芳;齐勇刚 | 申请(专利权)人: | 北京邮电大学 |
| 主分类号: | G06F11/10 | 分类号: | G06F11/10 |
| 代理公司: | 北京柏杉松知识产权代理事务所(普通合伙) 11413 | 代理人: | 孙翠贤;项京 |
| 地址: | 100876 *** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 crc 计算方法 装置 | ||
本发明实施例提供了一种CRC计算方法及装置,所述方法包括:获取目标输入数据;将所述目标输入数据依次划分成n个序列长度相同的目标数据序列;利用n个处理器对n个目标数据序列进行并行循环冗余校验CRC计算,得到对应的n个第一CRC值;获取各第一CRC值对应的目标序列影响系数;分别将各第一CRC值与对应的目标序列影响系数进行迦罗瓦域乘法运算,得到n个第二CRC值;对n个第二CRC值进行异或运算,得到目标CRC值,以实现对所述目标输入数据的CRC计算。本发明实施例能够减少在CRC计算过程中的异或运算的次数,提高了计算速率;另外,本发明实施例减少了线程同步的次数,进一步提高了计算速率。
技术领域
本发明涉及数据校验技术领域,特别是涉及一种CRC计算方法及装置。
背景技术
循环冗余校验(Cyclic Redundancy Check,CRC)方法是一种常用的数据校验方式,其主要用来检测输入数据在网络传输中或在存储保存后可能出现的错误。
图1为现有的CRC计算方法的示意图,在输入数据A的CRC计算过程中,可将输入数据A看成多个数据序列(A1、A2…An…),每个数据序列是由一个固定长度序列以及后续的零序列组成,相邻的数据序列间相差一个固定长度序列,分别对每个数据序列进行CRC计算得到对应的计算结果,然后对所有的计算结果进行异或运算得到整个输入数据A的CRC值。
在现有的CRC计算方法中:首先采用n个处理器对前n个数据序列(A1、A2…An)进行并行CRC计算,得到相应的CRC值C1~Cn;之后,再对后面的数据序列按照前n个数据序列相同的方式计算相应的CRC值;最后将所有的CRC值进行异或运算得到整个输入数据A的CRC值。其中,对于任一数据序列的CRC值,可以结合CRC计算和查表方式确定,举例而言,在对第一个数据序列进行CRC计算时,需要先对该数据序列中的固定长度序列进行CRC计算得到计算结果,然后利用查表的方式查出该计算结果带有后续的零序列的该数据序列的CRC值C1。
现有的CRC计算方法中,将输入数据看成多组(设为P组)数据序列,每组数据序列包括n个数据序列,在对各个数据序列进行CRC计算得到CRC值后,需要对P*n个CRC值的进行异或运算,导致整计算过程中异或运算的次数较多,导致计算速率较低。
发明内容
本发明实施例的目的在于提供一种CRC计算方法及装置,以减少在CRC计算过程中的异或运算的次数。
为达到上述目的,本发明实施例提供了一种CRC计算方法,所述方法包括:
获取目标输入数据;
将所述目标输入数据依次划分成n个序列长度相同的目标数据序列;
利用n个处理器对n个目标数据序列进行并行循环冗余校验CRC计算,得到对应的n个第一CRC值;
获取各第一CRC值对应的目标序列影响系数;
分别将各第一CRC值与对应的目标序列影响系数进行迦罗瓦域乘法运算,得到n个第二CRC值;
对n个第二CRC值进行异或运算,得到目标CRC值,以实现对所述目标输入数据的CRC计算。
在本发明实施例提供的实现方式中,所述将所述目标输入数据依次划分成n个序列长度相同的目标数据序列的步骤,包括:
通过预定公式,将所述目标输入数据依次划分成n个序列长度相同的目标数据序列;
其中,所述预定公式为:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京邮电大学,未经北京邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710512493.0/2.html,转载请声明来源钻瓜专利网。





