[发明专利]计算CRC编码的方法和装置有效
申请号: | 201810433108.8 | 申请日: | 2018-05-08 |
公开(公告)号: | CN108628698B | 公开(公告)日: | 2019-11-05 |
发明(设计)人: | 林宪正;张进毅;王工艺;沈建强 | 申请(专利权)人: | 华为技术有限公司;中国科学技术大学 |
主分类号: | G06F11/10 | 分类号: | G06F11/10;H03M13/09 |
代理公司: | 北京龙双利达知识产权代理有限公司 11329 | 代理人: | 时林;毛威 |
地址: | 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 Significant Bit,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编码可以表示为CRC(C(x))=C(x)*x^m mod G(x)
从上面的式子可以看出,CRC编码表示的是C(x)*x^m除以另一个固定的数G(x)之后的余数,其中“*”表示乘。
在存储系统中,为了对有效数据进行检错,存储系统会对数据进行CRC编码,从而数据在存储或传输过程中发生错误后,存储系统能快速的进行数据一致性校验,因此CRC编码是存储系统中的必备特性。
已知一种现有的CRC编码方法,该方法在进行CRC编码操作时需要大量的移位操作和异或运算,增加了计算的复杂度,需要消耗大量的计算资原,从而影响了CRC编码的效率与性能。
发明内容
本申请提供一种计算CRC编码的方法,能够降低计算CRC编码的复杂度,提高CRC编码的效率和性能。
第一方面,提供了一种计算CRC编码的方法,包括:获取待编码的第一序列;使用至少一个多项式对所述待编码的第一序列进行编码,生成第二序列;使用本原多项式对所述第二序列进行编码,生成针对第一序列的校验序列,所述至少一个多项中每个多项式为所述本原多项式的倍式,所述至少一个多项式中每个多项式的项数少于所述本原多项式的项数。
在使用本原多项式计算待编码的数据(例如,第一序列)的CRC编码之前,通过本原多项式的至少一个倍式计算待编码的数据的CRC编码,获得中间序列(例如,第二序列),再对该中间序列使用本原多项式计算该中间序列的CRC编码,从而避免仅使用本原多项式计算待编码的数据的CRC编码时,由于循环移位操作与异或运算的次数较多导致的CRC编码的计算复杂度较高的问题。
作为一种可选的实现方式,所述至少一个多项式包括第一多项式,所述第一多项式Q1(x)满足:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司;中国科学技术大学,未经华为技术有限公司;中国科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810433108.8/2.html,转载请声明来源钻瓜专利网。