[发明专利]计算循环冗余校验CRC编码的方法及装置有效
申请号: | 201810433230.5 | 申请日: | 2018-05-08 |
公开(公告)号: | CN108574490B | 公开(公告)日: | 2022-05-10 |
发明(设计)人: | 林宪正;张进毅;王工艺;沈建强 | 申请(专利权)人: | 华为技术有限公司;中国科学技术大学 |
主分类号: | H03M13/09 | 分类号: | H03M13/09 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 计算 循环 冗余 校验 crc 编码 方法 装置 | ||
一种计算循环冗余校验CRC编码方案,在本方案中,基于本源多项式的倍式对信息序列进行处理,将处理后的信息序列基于本源多项式计算CRC编码。
技术领域
本发明涉及信息技术领域,更具体地,涉及一种计算循环冗余校验CRC编码的方法及装置。
背景技术
在存储系统中,循环冗余校验(Cyclic Redundancy Check,CRC)编码是一种循环码,在存储系统中的CRC编码通常使用基于伽罗华域GF(2)的本源多项式设计CRC编码方案。CRC编码原理:假设一个L比特的信息序列(信息取值为0或1),aL-1,aL-2,…,a0,其中信息序列可以为待处理的数据,比如待存储或发送的数据,L-比特的信息序列表示成一个多项式:
C(x)=aL-1x^(L-1)+aL-2x^(L-2)+aL-3x^(L-3)+…+a0。其中al-1是信息序列的最高有效位(Most Significant Bit,MSB),a0是信息序列的最低有效位(Least SignificantBit,LSB),x^(L-1)表示X的L-1次幂或X的L-1次方。
另外,m阶本原多项式G(m)为:
G(x)=gmx^m+gm-1x^(m-1)+gm-2x^(m-2)+…+g0
则,
计算C(x)的编码可以表示为:CRC(C(x))=C(x)*x^m mod G(x)
从上面的式子可以看出,CRC编码表示的是C(x)*x^m除以另一个固定的数G(x)之后的余数,其中表示数学运算符号中的“乘”。
在存储系统中,为了对有效数据进行检错,存储系统会对数据进行CRC编码,从而数据在存储或传输过程中发生错误后,存储系统能快速的进行数据一致性校验,因此CRC编码是存储系统中的常用特性。
现有技术中采用流水线(pipeline)的方式结合查表法对数据进行CRC编码,如图1所示:
a)把数据分成若干个段(segment),如segment0至SegmentN,其中N为不小于1的自然数。
b)对每个段单独进行CRC编码,分别得到crc0至crcN。
c)将每个段编码得到的crc和特定的常量系数(Constant)进行无进位乘法(Carry-less Multiplication,CLMUL)。如将crc0与Constant0进行CLMUL,将crc1与Constant1进行CLMUL,……,将crcN与ConstantN进行CLMUL。
d)将每个段的CLMUL结果进行CRC编码,分别得到C0,C1,C2,……,CN。
e)将C0,C1,C2,……,CN进行异或(Exclusive OR,XOR),得到最终的CRC编码CRCF。
然而,现有技术CRC编码方式的步骤b和d中的CRC编码操作需要大量的移位和异或运行,增加了计算的复杂度,需要消耗大量的计算资源,从而影响了CRC编码的效率与性能。
发明内容
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司;中国科学技术大学,未经华为技术有限公司;中国科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810433230.5/2.html,转载请声明来源钻瓜专利网。
- 同类专利
- 专利分类