CN111431541B - 一种获得crc码的方法及装置 - Google Patents
一种获得crc码的方法及装置 Download PDFInfo
- Publication number
- CN111431541B CN111431541B CN201910019439.1A CN201910019439A CN111431541B CN 111431541 B CN111431541 B CN 111431541B CN 201910019439 A CN201910019439 A CN 201910019439A CN 111431541 B CN111431541 B CN 111431541B
- Authority
- CN
- China
- Prior art keywords
- data
- exclusive
- slices
- crc
- operation result
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
- H03M13/091—Parallel or block-wise CRC computation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
Landscapes
- Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本申请提供一种获得CRC码的方法及装置,用于减少并行计算多比特数据的CRC码过程中占用的内存空间。该方法包括:按照目标比特数量,将待处理数据依次分成N个数据切片;将第i数据切片与CRC寄存器中的当前值进行异或运算,得到第i异或运算结果;对第i异或运算结果进行处理,获得满足第一条件的H个子切片;根据预存的余式表,获得第i异或运算结果的H个CRC余式;若N为1,则根据第i异或运算结果的H个子切片进行异或运算,获得待处理数据的CRC码;若N大于1,则根据第i异或运算结果的H个CRC余式,以及N个数据切片中除了第i数据切片之外的数据切片,获得待处理数据的CRC码。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种获得CRC码的方法及装置。
背景技术
循环冗余校验(cyclic redundancy check,CRC)是一种常用的数据校验方法。CRC校验的基本思想是利用线性码原理,源端对需要进行传输的待处理数据按照一定的规则处理,获得CRC码,并将CRC码附加在待处理数据后面,形成包括CRC码的待处理数据,最后将该包括CRC码的待处理数据发送给宿端。宿端收到包括CRC码的待处理数据后,可以根据CRC码校验待处理数据在传送过程中是否发生错误。现有计算CRC码的方式包括查表法。
查表法的思路是:提前将各种可能的数据对应的CRC余式存储在余式表中。先将待处理数据的高M比特(bit)存入寄存器,从余式表中获得对应的CRC余式(M表示并行处理的目标比特数量),将寄存器中的高M个bit移出更新为低M个bit,CRC余式和更新后的寄存器进行异或,异或结果存入寄存器的高Mbit,依次类推,一直到待处理数据处理完成,从而获得待处理数据的CRC码。
查表法可以相对快速地获得待处理数据对应的CRC码,但是如果需要计算k个bit的待处理数据的CRC码,需要将k位二进制序列数从0~2M-1的CRC余式全部计算出来,则对应需要存储2M个余式表。如果M取值较大时,则需要存储的余式表较多,占用的内存空间较大。
发明内容
本申请提供一种获得CRC码的方法及装置,用于减少并行计算多比特数据的CRC码过程中占用的内存空间。
第一方面,提供一种获得循环冗余校验CRC码的方法,应用于获得CRC的装置中,所述获得CRC的装置包括CRC寄存器,所述方法包括:
按照目标比特数量,将待处理数据依次分成N个数据切片;其中,所述N个数据切片中的每个数据切片的比特数量与所述目标比特数量均为M,N为正整数;
将第i数据切片与所述CRC寄存器中的当前值进行异或运算,得到第i异或运算结果,所述N个数据切片包括第i数据切片,i为大于或等于1且小于N的正整数;
对所述第i异或运算结果进行划分以及补0操作,获得满足第一条件的H个子切片;其中,M能被H整除,所述第一条件为H个子切片的比特数量依次递减M/H个比特,且H个子切片中所有子切片的有效净荷比特数量均相同,有效净荷比特数量是指所述每个子切片中补0之前的比特数量,H大于或等于2;
根据预存的余式表,获得所述第i异或运算结果的H个子切片中的每个子切片对应的CRC余式,从而获得所述第i异或运算结果的H个CRC余式;
若N为1,则根据所述第i异或运算结果的H个子切片进行异或运算,获得所述待处理数据的CRC码;
若N大于1,则根据所述第i异或运算结果的H个CRC余式,以及所述N个数据切片中除了所述第i数据切片之外的数据切片,获得所述待处理数据的CRC码。
在上述方案中,将第一异或运算结果进行再划分,每个子切片的有效净荷比特数量均比第一异或运算结果的比特数量少,从而在对每个子切片进行查表时,只需存储每个子切片的有效净荷比特数据对应的余式表,即只需要存2^(M/H)个余式表,相对于现有技术中,直接存储目标比特对应的余式表,即需要存2^M个余式表,因此,上述方案能相对减少了余式表的个数,从而减少了余式表所占用的存储空间,也就减少并行计算多比特数据的CRC码过程中占用的内存空间。且,本申请实施例在减少存储的余式表的个数的同时,实现了并行处理目标比特,也就是说,在减少并行计算多比特数据的CRC码过程中占用的内存空间的同时,还保证了计算CRC码的效率。
在一种可能的设计中,根据所述第i异或运算结果的H个CRC余式,以及所述N个数据切片中除了所述第i数据切片之外的数据切片,获得所述待处理数据的CRC码,包括:
将所述CRC寄存器中的当前值更新为所述第i异或运算结果;
对所述第i异或运算结果的H个CRC余式,以及所述第i+1数据切片进行异或运算,获得第i+1异或运算结果,所述第i+1数据切片为位于所述N个数据切片中的第i+1个数据切片;
将i依次从1取到N-1,当i取到N-1时,则所述第i+1个异或运算结果为所述待处理数据的CRC码。
在上述方案中,当待处理数据的比特数量较多时,对待处理数据中的数据切片依次进行处理,也就是说,即使待处理数据的比特数量较多,也能实现计算待处理数据的CRC码。且,在上述方案中,即使待处理数据的比特数据量较多,异或运算的次数较少,计算CRC码的复杂程度低。
在一种可能的设计中,根据所述第i异或运算结果的H个CRC余式,以及所述N个数据切片中除了所述第i数据切片之外的数据切片,获得所述待处理数据的CRC码,包括:
将所述CRC寄存器中的当前值更新为所述第i异或运算结果;
对所述第i异或运算结果的H个CRC余式与第i+2数据切片进行异或运算,得到第i+2异或运算结果,并同时根据所述余式表,获得第i+1异或运算结果的H个子切片的H个CRC余式;其中,所述第i+1异或运算结果的H个子切片满足所述第一条件,所述第i+1异或运算结果为所述第i+1数据切片与所述CRC寄存器中的当前值的异或运算的结果,所述N个数据切片包括所述第i+2数据切片和所述第i+1数据切片;
将i依次从1取到N-2,当i取到N-2时,则对所述第i+1异或运算结果的H个CRC余式和第i+2异或运算结果进行异或运算,获得所述待处理数据的CRC码。
在上述方案中,在进行异或运算的同时,就对某些数据切片进行查表,从进一步提高了计算待处理数据的CRC码的效率。
在一种可能的设计中,对所述第i异或运算结果进行划分以及补0操作,获得满足第一条件的H个子切片,包括:
将所述第i异或运算结果划分为H个有效净荷子切片,所述H个有效净荷子切片中每个有效净荷子切片的比特数量均相同;
将所述每个有效净荷子切片中的有效净荷数据移位到高位,并将所述每个有效净荷子切片的低位补0,从而获得所述第i异或运算结果的H个子切片。
在上述方案中,对H个子切片进行补0操作,保持了H个子切片中的有效净荷数据的比特位,方便后期获得待处理数据的CRC码。
在一种可能的设计中,按照目标比特数量,将待处理数据依次分成N个数据切片,包括:
确定所述待处理数据的比特数量能否被所述目标比特数量整除;
若所述待处理数据的比特数量不能被所述目标比特数量整除,则对所述待处理数据进行移位补0操作;
将移位补0操作后的所述待处理数据划分为比特数量均为M的N个数据切片。
在上述方案中,由于待处理数据的比特数量可能并不能被目标比特数量整除,对待处理数据进行补0操作,使得补0之后的待处理数据的比特数量能够被目标比特数量整除,从而便于后期对待处理数据进行划分。
第二方面,提供一种获得循环冗余校验CRC码的装置,包括:
存储器,用于存储计算机指令;
处理器,包括CRC寄存器,处理器与存储器通信连接,用于执行存储器中的计算机指令,以在执行计算机指令时执行如下操作:
按照目标比特数量,将待处理数据依次分成N个数据切片;其中,N个数据切片中的每个数据切片的比特数量与目标比特数量均为M,N为正整数;
将第i数据切片与CRC寄存器中的当前值进行异或运算,得到第i异或运算结果,N个数据切片包括第i数据切片,i为大于或等于1且小于N的正整数;
对第i异或运算结果进行划分以及补0操作,获得满足第一条件的H个子切片;其中,M能被H整除,第一条件为H个子切片的比特数量依次递减M/H个比特,且H个子切片中所有子切片的有效净荷比特数量均相同,有效净荷比特数量是指每个子切片中补0之前的比特数量,H大于或等于2;
根据预存的余式表,获得第i异或运算结果的H个子切片中的每个子切片对应的CRC余式,从而获得第i异或运算结果的H个CRC余式;
若N为1,则根据第i异或运算结果的H个子切片进行异或运算,获得待处理数据的CRC码;
若N大于1,则根据第i异或运算结果的H个CRC余式,以及N个数据切片中除了第i数据切片之外的数据切片,获得待处理数据的CRC码。
在一种可能的设计中,所述处理器具体用于:
将CRC寄存器中的当前值更新为第i异或运算结果;
对第i异或运算结果的H个CRC余式,以及第i+1数据切片进行异或运算,获得第i+1异或运算结果,N个数据切片包括第i+1个数据切片;
将i依次从1取到N-1,当i取到N-1时,则第i+1个异或运算结果为待处理数据的CRC码。
在一种可能的设计中,所述处理器具体用于:
将CRC寄存器中的当前值更新为第i异或运算结果;
对第i异或运算结果的H个CRC余式与第i+2数据切片进行异或运算,得到第i+2异或运算结果,并同时根据余式表,获得第i+1异或运算结果的H个子切片的H个CRC余式;其中,第i+1异或运算结果的H个子切片满足第一条件,第i+1异或运算结果为第i+1数据切片与CRC寄存器中的当前值的异或运算的结果,N个数据切片包括第i+2数据切片和第i+1数据切片;
将i依次从1取到N-2,当i取到N-2时,则对第i+1异或运算结果的H个CRC余式和第i+2异或运算结果进行异或运算,获得待处理数据的CRC码。
在一种可能的设计中,所述处理器具体用于:
将第i异或运算结果划分为H个有效净荷子切片,H个有效净荷子切片中每个有效净荷子切片的比特数量均相同;
将每个有效净荷子切片中的有效净荷数据移位到高位,并将每个有效净荷子切片的低位补0,从而获得第i异或运算结果的H个子切片。
在一种可能的设计中,所述处理器具体用于:
确定待处理数据的比特数量能否被目标比特数量整除;
若待处理数据的比特数量不能被目标比特数量整除,则对待处理数据进行移位补0操作;
将移位补0操作后的待处理数据划分为比特数量均为M的N个数据切片。
第三方面,提供一种获得循环冗余校验CRC码的装置,包括:
收发模块,用于接收待处理数据;
处理模块,用于按照目标比特数量,将待处理数据依次分成N个数据切片;其中,所述N个数据切片中的每个数据切片的比特数量与所述目标比特数量均为M,N为正整数;
所述处理模块,还用于将第i数据切片与所述CRC寄存器中的当前值进行异或运算,得到第i异或运算结果,所述N个数据切片包括第i数据切片,i为大于或等于1且小于N的正整数;
所述处理模块,还用于对所述第i异或运算结果进行划分以及补0操作,获得满足第一条件的H个子切片;其中,M能被H整除,所述第一条件为H个子切片的比特数量依次递减M/H个比特,且H个子切片中所有子切片的有效净荷比特数量均相同,有效净荷比特数量是指所述每个子切片中补0之前的比特数量,H大于或等于2;
所述处理模块,还用于获得所述第i异或运算结果的H个子切片中的每个子切片对应的CRC余式,从而获得所述第i异或运算结果的H个CRC余式;
所述处理模块,还用于若N为1,则根据所述第i异或运算结果的H个子切片进行异或运算,获得所述待处理数据的CRC码;
所述处理模块,还用于若N大于1,则根据所述第i异或运算结果的H个CRC余式,以及所述N个数据切片中除了所述第i数据切片之外的数据切片,获得所述待处理数据的CRC码。
第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如第一方面中任一项所述的方法。
附图说明
图1为现有技术中的并行计算待处理数据的CRC码的过程示意图;
图2为本申请实施例提供的一种获得CRC码的方法的流程图;
图3为本申请实施例提供的一种划分数据的示意图;
图4为本申请实施例提供的一种获得CRC码的过程示意图;
图5为本申请实施例提供的一种获得CRC码的过程示意图;
图6为本申请实施例提供的一种获得CRC码的装置的结构图;
图7为本申请实施例提供的一种获得CRC码的装置的结构图。
具体实施方式
为了更好的理解本申请实施例提供的技术方案,下面将结合说明书附图以及具体的实施方式进行详细的说明。
为了便于本领域技术人员更好地理解本申请的技术方案,下面对本申请涉及到的专业名词进行介绍。
1)循环冗余校验(cyclic redundancy check,CRC),CRC的主要思路是根据生成多项式(generator polynomial),获得待处理数据的CRC码。待处理数据可以是二进制序列(binary sequence),二进制序列可以是报文。CRC应用于数据传输过程中,包括但不限于移动通信系统、光通信系统、网络通信系统等。
2)余式表,提前将各种可能的数据对应的CRC余式存储在余式表中。k个bit的待处理数据的CRC码,需要将k位二进制序列数从0~2M-1的CRC余式全部计算出来,则对应需要存储2M个余式表。以并行处理的目标比特数量为4为例,4bit的余式表如下:
crc_tab4=[0 0 0 0 0 0 0 0;...%0000
1 0 0 1 1 0 1 1;...%0001
1 0 1 0 1 1 0 1;...%0010
0 0 1 1 0 1 1 0;...%0011
1 1 0 0 0 0 0 1;...%0100
0 1 0 1 1 0 1 0;...%0101
0 1 1 0 1 1 0 0;...%0110
1 1 1 1 0 1 1 1;...%0111
0 0 0 1 1 0 0 1;...%1000
1 0 0 0 0 0 1 0;...%1001
1 0 1 1 0 1 0 0;...%1010
0 0 1 0 1 1 1 1;...%1011
1 1 0 1 1 0 0 0;...%1100
0 1 0 0 0 0 1 1;...%1101
0 1 1 1 0 1 0 1;...%1110
1 1 1 0 1 1 1 0];...%1111]
3)寄存器,寄存器是处理器的组成部分。寄存器是有限存贮容量的高速存贮部件,可用来暂存指令、数据和地址等。
下面对CRC的基本原理进行简要说明。
CRC校验的基本思想是利用线性码原理,对需要进行传输的待处理数据(以k位二进制数为例)按照一定的规则处理,产生一个r位的校验码并附加在待处理数据后面,形成一个k+r位的二进制数据,最后一起发送。假设CRC生成多项式为g(x),待处理数据为t(x)=tk-1xk-1+tk-2xk-2+…+t0x0,对应的CRC码的计算公式如下:
上式中的b(x)则为CRC码。
下面对现有技术中利用查表法并行计算待处理数据的CRC码的过程进行说明。
请参照图1,先将待处理数据中的高M个bit存入寄存器,从余式表中获得对应的CRC余式,再将寄存器中的高M个bit移除,更新为待处理数据中的低M个bit,CRC余式和更新后的寄存器中的低M个bit进行异或,将异或结果存为寄存器中的高M个bit,一直到待处理数据完成,从而获得待处理数据的CRC码。
但是现有查表法在计算CRC的过程中,需要存储2^M个对应的余式表,当并行处理的目标比特数量M比较大时,则对应的余式表会占用较多的内存。
例如,需要并行处理32比特时,则需要存储2^32个对应的余式表,占用的内存较大。
鉴于此,本申请实施例提供一种获得CRC码的方法,该方法可以由获得CRC码的装置来执行。获得CRC码的装置可以通过现场可编程门阵列(field programmable gatearray,FPGA)实现,也可以通过专用集成电路(application specific integratedcircuit,ASIC)实现,也可以通过一个或多个微处理器(digital signal processor,DSP)实现。获得CRC码的装置例如,发送器、以太网设备或系统芯片等。该获得CRC码的装置包括CRC寄存器,CRC寄存器用于存储计算CRC码过程中的数据。
下面对本申请实施例中的获得CRC码方法的过程进行介绍。请参照图2,该方法包括:
步骤201,按照目标比特数量,将待处理数据依次分成N个数据切片;其中,所述N个数据切片中的每个数据切片的比特数量与所述目标比特数量均为M,N为正整数;
步骤202,将第i数据切片与所述CRC寄存器中的当前值进行异或运算,得到第i异或运算结果,所述N个数据切片包括第i数据切片,i为大于或等于1且小于N的正整数;
步骤203,对所述第i异或运算结果进行划分以及补0操作,获得满足第一条件的H个子切片;其中,M能被H整除,所述第一条件为H个子切片的比特数量依次递减M/H个比特,且H个子切片中所有子切片的有效净荷比特数量均相同,有效净荷比特数量是指所述每个子切片中补0之前的比特数量,H大于或等于2;
步骤204,根据预存的余式表,获得所述第i异或运算结果的H个子切片中的每个子切片对应的CRC余式,从而获得所述第i异或运算结果的H个CRC余式;
步骤205,若N为1,则根据所述第i异或运算结果的H个子切片进行异或运算,获得所述待处理数据的CRC码,若N大于1,则根据所述第i异或运算结果的H个CRC余式,以及所述N个数据切片中除了所述第i数据切片之外的数据切片,获得所述待处理数据的CRC码。
获得CRC码的装置先接收到待处理数据。该待处理数据可以是源端中准备发送的数据。源端是指通信系统中的具有传输数据功能的设备,源端例如终端设备、基站等。获得CRC码的装置可以是源端的一部分。待处理数据可以是二进制序列,例如10110000000011111 00101110 10110011。
在源端将待处理数据发送到获得CRC码的装置之后,由于获得CRC码的装置并行处理的目标比特数量一般是固定的,目标比特数量可以理解为获得CRC码的装置能够同时处理的比特数量,例如32bit,64bit。因此,当待处理数据的比特数量超过目标比特数量时,则需要先对待处理数据进行切分处理。获得CRC码的装置先执行步骤201,即按照目标比特数量,将待处理数据分成N个数据切片。下面执行步骤201的方式进行示例说明。
一种按照目标比特数量M,将待处理数据分成N个数据切片的方式为:
确定待处理数据的比特数量能否被目标比特数量整除;
若待处理数据的比特数量不能被目标比特数量整除,则对待处理数据进行移位补0操作;
将移位补0操作后的待处理数据划分为比特数量均为M的N个数据切片。
具体来说,获得CRC码的装置先判断待处理数据的比特数量能够被目标比特数量整除。如果待处理数据的比特数量能够被目标比特数量整除,则直接将待处理数据按照目标比特数据M进行等比划分,从而获得N个数据切片。如果待处理数据的比特数量不能被目标比特数量整除,则对待处理数据进行移位补0操作,再将移位补0之后的待处理数据,按照目标比特数据M进行等比划分,从而获得N个数据切片。补0的个数可以是(目标比特数量-待处理数据的比特数量%目标比特数量)个。%表示相除之后的余数。
例如,待处理数据为k个比特数量,如果k能被M整除,则N=k/M。例如,待处理数据为32bit,目标比特数量为32bit,则对应的N为1。如果k不能被M整除,则可以在待处理数据前补充(M-k%M)个0,对应的N=[(M-k%M)+k]/M。例如,待处理数据为66bit,目标比特数量为32bit,则需要在待处理数据前补充30个0,对应N为3。
N个数据切片中,每个数据切片的比特数量均等于目标比特数量。为了便于后续对N个数据切片进行处理,N个数据切片按照待处理数据的顺序依次划分为N个数据切片。
例如,请参照图3,将待处理数据移位补0之后,依次分为第一数据切片、第二数据切片、第三数据切片、第四数据切片等。第一数据切片为待处理数据中的最高M比特,第二数据切片为相对第一数据切片的低M比特,第三数据切片为相对第二数据切片的低M比特,第四数据切片为相对第三数据切片的低M比特。
获得CRC码的装置在执行步骤201之后,执行步骤202,即将第i数据切片与所述CRC寄存器中的当前值进行异或运算,得到第i异或运算结果。
其中,当前值可以理解为处理第i数据切片时,寄存器此刻存储的值。应当说明的是,CRC寄存器中的当前值一般初始值为0,后随着对待处理数据处理过程,会不断地更新CRC寄存器中的当前值。
当i取值为1的时候,则CRC寄存器中的当前值一般均为0,那么第一数据切片与该寄存器中的当前值进行异或运算的结果实际上与第一数据切片相同。
当i取值为大于1的数的时候,则CRC寄存器中的当前值为上次计算结束后的异或运算的结果。然后第i数据切片与该CRC寄存器中的当前值进行异或运算,从而得到第i异或运算结果。
获得CRC码的装置在执行步骤202之后,执行步骤203,即对第i异或运算结果进行划分以及补0操作,获得满足第一条件的H个子切片。
其中,第一条件是指H个子切片的比特数量依次递减M/H个比特,且H个子切片中所有子切片的有效净荷比特数量均相同。M能被H整除。有效净荷比特数量是指每个子切片中补0之前的比特数量。下面对执行步骤203的方式进行示例说明。
一种执行步骤203的方式为:
将第i异或运算结果划分为H个有效净荷子切片;
将每个有效净荷子切片中的有效净荷数据移位到高位,并将每个有效净荷子切片的低位补0,从而获得第i异或运算结果的H个子切片。
具体来说,获得CRC码的装置将第i异或运算结果划分为H个有效净荷子切片,每个有效净荷子切片的比特数量为M/H。为了保证第i异或运算结果中的数据比特位,因此,需要对每个有效净荷子切片进行补0,但是每个有效净荷子切片补0的个数不同,对第一个有效净荷子切片补(M-M/H)个0,对第二个有效净荷子切片补(M-2M/H)个0,依次类推,从而获得比特数量按照M/H依次递减的H个子切片。
例如,请继续参照图3,在获得第一数据切片之后,将第一数据切片与CRC寄存器中的当前值(这里是以寄存器中的当前值的初始值为0)进行异或运算,然后获得第一异或运算结果,将第一异或运算结果划分为4个有效净荷子切片,再对4个有效净荷子切片进行分别补0,从而获得4个子切片,4个子切片包括第一子切片、第二子切片、第三子切片以及第四子切片。
例如,以第一数据切片为101100000 00011111 00101110 10110011例,CRC寄存器的初始值为0,则第一异或运算结果为101100000 00011111 0010111010110011,将第一异或运算结果划分为4个有效净荷子切片。4个有效净荷子切片依次为:101100000;00011111;00101110;10110011,对4个有效净荷子切片中的有效净荷数据移位到高位,将每个有效净荷子切片的低位补0,从而获得第一子切片为“101100000 00000000 00000000 00000000”,第二子切片为“00011111 00000000 00000000”,第三子切片为“00101110 00000000”,第四子切片为“10110011”。
在获得CRC码的装置执行步骤203之后,可以执行步骤204,即根据预存的余式表,获得第i异或运算结果的H个子切片中的每个子切片对应的CRC余式,从而获得第i异或运算结果的H个CRC余式。
具体来说,第i异或运算结果中有H个子切片,根据余式表,获得H个子切片中每个子切片对应的CRC余式,从而获得第i异或运算结果的H个CRC余式。CRC余式可以理解为每个子切片对应的CRC码。由于将第i异或运算结果拆分成了H个子切片,因此,余式表就只需要存储2^(M/H)个,相较于现有技术的方式,减少了存储余式表所需要的存储空间。
在执行步骤204之后,获得CRC码的装置就执行步骤205,即若N为1,则根据第i异或运算结果的H个子切片进行异或运算,获得待处理数据的CRC码;若N大于1,则根据第i异或运算结果的H个CRC余式,以及N个数据切片中除了第i数据切片之外的数据切片,获得待处理数据的CRC码。
具体来说,待处理数据对应的数据切片的数量不一样,对应根据H个CRC余式获得待处理数据的CRC码的具体方式有所不同。下面对N取不同值的时候,获得待处理数据的CRC码的方式进行详细说明。
当N为1时,i只能取1,也就是说,目标比特数量与待处理数据的比特数量相同,待处理数据只包括一个数据切片。获得待处理数据的CRC码的具体方式如下:
对第i异或运算结果的H个CRC余式进行异或运算,H个CRC余式异或运算的结果就是待处理数据的CRC码。
例如,以第i异或运算结果为101100000 00011111 00101110 10110011例,将第i异或运算结果划分为4个子切片,第一子切片为“101100000 000000000000000000000000”,第二子切片为“00011111 00000000 00000000”,第三子切片为“0010111000000000”,第四子切片为“10110011”。根据余式表从而获得第一子切片对应的CRC余式为11110110,第二子切片对应的CRC余式为11100110,第三子切片对应的CRC余式为10101001,第四子切片对应的CRC余式为01101011。对4个CRC余式进行异或运算,从而获得待处理数据的CRC码为11010010。
当N大于或等于2时,也就是说,待处理数据包括至少两个数据切片,但是CRC寄存器的长度不一样,获得待处理数据的CRC码的方式又有所区别,下面进行分情况说明。
第一种情况,N大于或等于2,且CRC寄存器的长度等于目标比特数量,执行步骤205的具体方式如下:
将CRC寄存器中的当前值更新为第i异或运算结果;
对第i异或运算结果的H个CRC余式,以及第i+1数据切片进行异或运算,获得第i+1异或运算结果;
将i依次从1取到N-1时,当i取到N-1时,则第i+1个异或运算结果为待处理数据的CRC码。
具体来说,将CRC寄存器中的当前值更新为第i异或运算结果,将待处理数据的第i+1数据切片与第i异或运算结果的H个CRC余式进行异或运算。i再依次从1取到N-1,当i取到N-1时,也就是说,直到数据处理完成时,第i+1个异或运算结果即为待处理数据的CRC码。
例如,当N取值为2时,也就是说,待处理数据包括第一数据切片和第二数据切片。第一异或运算结果的H个CRC余式与第二数据切片进行异或运算,获得第二异或运算结果,则该第二异或运算结果则为待处理数据的CRC码。或者例如,当N取值为3时,也就是说,待处理数据包括第一数据切片、第二数据切片、第三数据切片。在获得第二异或运算之后,将第二异或运算结果拆分成满足第一条件的H个子切片。根据余式表,获得第二异或运算结果的H个子切片,再将第二异或运算结果的H个子切片与第三数据切片进行异或运算,得到第三异或运算结果,则该第三异或运算结果则为待处理数据的CRC码。将第二异或运算结果切分为满足第一条件的H个子切片,切分过程可以参照前文论述的切分第一数据切片的内容,此处不再赘述。第一条件可以为前文论述的内容,此处不再赘述。
其中,确定i取到N-1的方式有很多种,下面进行示例说明。一种确定i取到N-1的方式为:
获得CRC码的装置通过计数确定i是否取到N-1。
具体来说,当获取待处理数据的N个数据切片时,获得CRC码的装置就可以开始计数,每当寄存器更新一次,计数加1,一直加到N,则表示i取到N-1,也就表示待处理数据已处理完成。
例如,以目标比特数量M为32bit,寄存器的长度为32bit为例,将待处理数据进行补0操作,再划分为数据切片,再将第一数据切片分为4个子切片。
请参照图4,获得CRC码的装置将CRC寄存器的当前值更新为第一异或运算结果,通过余式表,获得第一异或运算结果对应的4个子切片的4个CRC余式。将第二数据切片与第一异或运算结果进行异或,得到第二异或运算结果,将寄存器中的当前值更新为第二异或运算结果。依次类推,直到待处理数据处理完毕为止,CRC寄存器中的当前值就是待处理数据的CRC码。
第二种情况,N大于或等于2,且CRC寄存器的长度大于目标比特数量,那么执行步骤205的具体方式如下:
将CRC寄存器中的当前值更新为第i异或运算结果;
对第i异或运算结果的H个CRC余式与第i+2数据切片进行异或运算,得到第i+2异或运算结果,并同时根据余式表,获得第i+1异或运算结果的H个子切片的H个CRC余式;其中,第i+1异或运算结果的H个子切片满足第一条件,第i+1异或运算结果为第i+1数据切片与CRC寄存器中的当前值的异或运算的结果,N个数据切片包括第i+2数据切片和第i+1数据切片;
将i依次从1取到N-2,当i取到N-2时,则对第i+1异或运算结果的H个CRC余式和第i+2异或运算结果进行异或运算,获得待处理数据的CRC码。
关于第一条件可以参照前文论述内容,此处不再赘述。
具体来说,当CRC寄存器的长度大于目标比特数量,也就是说,CRC寄存器中存储的比特数量是大于获得CRC码的装置的并行处理的比特数量。因此,获得CRC码的装置可以先将第i异或运算结果的H个CRC余式与第i+2数据切片进行异或运算,并同时对第i+1异或运算结果的H个子切片进行查表,从而可以同时获得第i+2异或运算结果,以及第i+1异或运算结果的H个子切片对应的H个CRC余式。
依次类推,直到i取到N-2时,也就是说,直到待处理数据处理完成,对第i+1异或运算结果的H个CRC余式和第i+2异或运算结果进行异或运算,获得待处理数据的CRC码。
应当说明的是,由CRC寄存器的长度大于目标并行处理比特数量,因此可以将CRC寄存器中的当前值更新为第一异或运算结果的同时,也可以将第二异或运算结果写入CRC寄存器中。
本申请实施例中,由于CRC寄存器的长度大于目标比特数量时,可以在一个数据切片进行异或运算的同时,另外一个数据切片进行异或运算,从而相对节省获得CRC码的装置的处理时间,提高获得CRC码的装置的处理效率。
例如,请参照图5,以CRC寄存器的长度(64bit)为目标比特数量(32bit)的两倍为例,将待处理数据划分为3个数据切片,先将第一数据切片(第一Mbit)与寄存器的初始值(一般为0)进行异或运算,获得第一异或运算结果。根据余式表,查表获得第一异或运算结果的H个CRC余式,同时对第二数据切片(第二Mbit)与寄存器的初始值(一般全为0)进行异或运算,获得第二异或运算结果。
由CRC寄存器的长度大于目标并行处理比特数量,因此可以将CRC寄存器中的当前值更新为第一异或运算结果以及第二异或运算结果。
获得CRC码的装置可以先将第一异或运算结果的H个CRC余式与第三数据切片(第三Mbit)进行异或运算,并同时对第二异或运算结果的H个子切片进行查表,从而可以同时获得第三异或运算结果,以及第二异或运算结果的H个子切片对应的H个CRC余式。
最后,第三异或运算结果与第二异或运算结果的H个子切片进行异或运算,从而获得待处理数据的CRC码。
获得CRC码的装置执行步骤205之后,即在获得CRC码之后,可以将CRC码附加在待处理数据后面,将附有CRC码的待处理数据向宿端发送,从而完成数据传输过程。
在前文论述的一种获得CRC码的方法的基础上,本申请实施例还提供一种获得CRC码的装置,请参照图6,该CRC码装置包括存储器601和处理器602。
存储器601,用于存储计算机指令;
处理器602,包括CRC寄存器,所述处理器与所述存储器通信连接,用于执行所述存储器中的计算机指令,以在执行所述计算机指令时执行如下操作:
照目标比特数量,将待处理数据依次分成N个数据切片;其中,N个数据切片中的每个数据切片的比特数量与目标比特数量均为M,N为正整数;
将第i数据切片与CRC寄存器中的当前值进行异或运算,得到第i异或运算结果,N个数据切片包括第i数据切片,i为大于或等于1且小于N的正整数;
对第i异或运算结果进行划分以及补0操作,获得满足第一条件的H个子切片;其中,M能被H整除,第一条件为H个子切片的比特数量依次递减M/H个比特,且H个子切片中所有子切片的有效净荷比特数量均相同,有效净荷比特数量是指每个子切片中补0之前的比特数量,H大于或等于2;
根据预存的余式表,获得第i异或运算结果的H个子切片中的每个子切片对应的CRC余式,从而获得第i异或运算结果的H个CRC余式;
若N为1,则根据第i异或运算结果的H个子切片进行异或运算,获得待处理数据的CRC码;
若N大于1,则根据第i异或运算结果的H个CRC余式,以及N个数据切片中除了第i数据切片之外的数据切片,获得待处理数据的CRC码。
在一种可能的设计中,处理器602具体用于:
将CRC寄存器中的当前值更新为第i异或运算结果;
对第i异或运算结果的H个CRC余式,以及第i+1数据切片进行异或运算,获得第i+1异或运算结果,N个数据切片包括第i+1个数据切片;
将i依次从1取到N-1,当i取到N-1时,则第i+1个异或运算结果为待处理数据的CRC码。
在一种可能的设计中,处理器602具体用于:
将CRC寄存器中的当前值更新为第i异或运算结果;
对第i异或运算结果的H个CRC余式与第i+2数据切片进行异或运算,得到第i+2异或运算结果,并同时根据余式表,获得第i+1异或运算结果的H个子切片的H个CRC余式;其中,第i+1异或运算结果的H个子切片满足第一条件,第i+1异或运算结果为第i+1数据切片与CRC寄存器中的当前值的异或运算的结果,N个数据切片包括第i+2数据切片和第i+1数据切片;
将i依次从1取到N-2,当i取到N-2时,则对第i+1异或运算结果的H个CRC余式和第i+2异或运算结果进行异或运算,获得待处理数据的CRC码。
在一种可能的设计中,处理器602具体用于:
将第i异或运算结果划分为H个有效净荷子切片,H个有效净荷子切片中每个有效净荷子切片的比特数量均相同;
将每个有效净荷子切片中的有效净荷数据移位到高位,并将每个有效净荷子切片的低位补0,从而获得第i异或运算结果的H个子切片。
在一种可能的设计中,处理器602具体用于:
确定待处理数据的比特数量能否被目标比特数量整除;
若待处理数据的比特数量不能被目标比特数量整除,则对待处理数据进行移位补0操作;
将移位补0操作后的待处理数据划分为比特数量均为M的N个数据切片。
图6中是以一个处理器602为例,但是实际上不限制处理器602的个数。作为一种实施例,处理器602包括前文中的论述的CRC寄存器。
在前文论述的一种获得CRC码的方法的基础上,本申请实施例还提供一种获得CRC码的装置,请参照图7,该CRC码装置包括收发模块701和处理模块702,其中:
收发模块701,用于接收待处理数据;
处理模块702,用于按照目标比特数量,将待处理数据依次分成N个数据切片;其中,所述N个数据切片中的每个数据切片的比特数量与所述目标比特数量均为M,N为正整数;
处理模块702,还用于将第i数据切片与所述CRC寄存器中的当前值进行异或运算,得到第i异或运算结果,所述N个数据切片包括第i数据切片,i为大于或等于1且小于N的正整数;
处理模块702,还用于对所述第i异或运算结果进行划分以及补0操作,获得满足第一条件的H个子切片;其中,M能被H整除,所述第一条件为H个子切片的比特数量依次递减M/H个比特,且H个子切片中所有子切片的有效净荷比特数量均相同,有效净荷比特数量是指所述每个子切片中补0之前的比特数量,H大于或等于2;
处理模块702,还用于获得所述第i异或运算结果的H个子切片中的每个子切片对应的CRC余式,从而获得所述第i异或运算结果的H个CRC余式;
处理模块702,还用于若N为1,则根据所述第i异或运算结果的H个子切片进行异或运算,获得所述待处理数据的CRC码;
所述处理模块,还用于若N大于1,则根据所述第i异或运算结果的H个CRC余式,以及所述N个数据切片中除了所述第i数据切片之外的数据切片,获得所述待处理数据的CRC码。
在一种可能的设计中,处理模块702具体用于:
将CRC寄存器中的当前值更新为第i异或运算结果;
对第i异或运算结果的H个CRC余式,以及第i+1数据切片进行异或运算,获得第i+1异或运算结果,N个数据切片包括第i+1个数据切片;
将i依次从1取到N-1,当i取到N-1时,则第i+1个异或运算结果为待处理数据的CRC码。
在一种可能的设计中,处理模块702具体用于:
将CRC寄存器中的当前值更新为第i异或运算结果;
对第i异或运算结果的H个CRC余式与第i+2数据切片进行异或运算,得到第i+2异或运算结果,并同时根据余式表,获得第i+1异或运算结果的H个子切片的H个CRC余式;其中,第i+1异或运算结果的H个子切片满足第一条件,第i+1异或运算结果为第i+1数据切片与CRC寄存器中的当前值的异或运算的结果,N个数据切片包括第i+2数据切片和第i+1数据切片;
将i依次从1取到N-2,当i取到N-2时,则对第i+1异或运算结果的H个CRC余式和第i+2异或运算结果进行异或运算,获得待处理数据的CRC码。在一种可能的设计中,处理模块702具体用于:
将第i异或运算结果划分为H个有效净荷子切片,H个有效净荷子切片中每个有效净荷子切片的比特数量均相同;
将每个有效净荷子切片中的有效净荷数据移位到高位,并将每个有效净荷子切片的低位补0,从而获得第i异或运算结果的H个子切片。
在一种可能的设计中,处理模块702具体用于:
确定待处理数据的比特数量能否被目标比特数量整除;
若待处理数据的比特数量不能被目标比特数量整除,则对待处理数据进行移位补0操作;
将移位补0操作后的待处理数据划分为比特数量均为M的N个数据切片。
作为一种实施例,本申请实施例中的处理模块702可以通过图6中的处理器602来实现。
在前文论述的一种获得CRC码的方法的基础上,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如图2所述的方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (12)
1.一种获得循环冗余校验CRC码的方法,其特征在于,应用于获得CRC的装置中,所述获得CRC的装置包括CRC寄存器,所述方法包括:
按照目标比特数量,将待处理数据依次分成N个数据切片;其中,所述N个数据切片中的每个数据切片的比特数量与所述目标比特数量均为M,N为正整数;
将第i数据切片与所述CRC寄存器中的当前值进行异或运算,得到第i异或运算结果,所述N个数据切片包括第i数据切片,i为大于或等于1且小于N的正整数;
对所述第i异或运算结果进行划分以及补0操作,获得满足第一条件的H个子切片;其中,M能被H整除,所述第一条件为H个子切片的比特数量依次递减M/H个比特,且H个子切片中所有子切片的有效净荷比特数量均相同,有效净荷比特数量是指所述每个子切片中补0之前的比特数量,H大于或等于2;
根据预存的余式表,获得所述第i异或运算结果的H个子切片中的每个子切片对应的CRC余式,从而获得所述第i异或运算结果的H个CRC余式;
若N为1,则根据所述第i异或运算结果的H个子切片进行异或运算,获得所述待处理数据的CRC码;
若N大于1,则根据所述第i异或运算结果的H个CRC余式,以及所述N个数据切片中除了所述第i数据切片之外的数据切片,获得所述待处理数据的CRC码。
2.如权利要求1所述的方法,其特征在于,根据所述第i异或运算结果的H个CRC余式,以及所述N个数据切片中除了所述第i数据切片之外的数据切片,获得所述待处理数据的CRC码,包括:
将所述CRC寄存器中的当前值更新为所述第i异或运算结果;
对所述第i异或运算结果的H个CRC余式,以及第i+1数据切片进行异或运算,获得第i+1异或运算结果,所述N个数据切片包括所述第i+1个数据切片;
将i依次从1取到N-1,当i取到N-1时,则所述第i+1个异或运算结果为所述待处理数据的CRC码。
3.如权利要求1所述的方法,其特征在于,根据所述第i异或运算结果的H个CRC余式,以及所述N个数据切片中除了所述第i数据切片之外的数据切片,获得所述待处理数据的CRC码,包括:
将所述CRC寄存器中的当前值更新为所述第i异或运算结果;
对所述第i异或运算结果的H个CRC余式与第i+2数据切片进行异或运算,得到第i+2异或运算结果,并同时根据所述余式表,获得第i+1异或运算结果的H个子切片的H个CRC余式;其中,所述第i+1异或运算结果的H个子切片满足所述第一条件,所述第i+1异或运算结果为第i+1数据切片与所述CRC寄存器中的当前值的异或运算的结果,所述N个数据切片包括所述第i+2数据切片和所述第i+1数据切片;
将i依次从1取到N-2,当i取到N-2时,则对所述第i+1异或运算结果的H个CRC余式和第i+2异或运算结果进行异或运算,获得所述待处理数据的CRC码。
4.如权利要求1-3任一所述的方法,其特征在于,对所述第i异或运算结果进行划分以及补0操作,获得满足第一条件的H个子切片,包括:
将所述第i异或运算结果划分为H个有效净荷子切片,所述H个有效净荷子切片中每个有效净荷子切片的比特数量均相同;
将所述每个有效净荷子切片中的有效净荷数据移位到高位,并将所述每个有效净荷子切片的低位补0,从而获得所述第i异或运算结果的H个子切片。
5.如权利要求4所述的方法,其特征在于,按照目标比特数量,将待处理数据依次分成N个数据切片,包括:
确定所述待处理数据的比特数量能否被所述目标比特数量整除;
若所述待处理数据的比特数量不能被所述目标比特数量整除,则对所述待处理数据进行移位补0操作;
将移位补0操作后的所述待处理数据划分为比特数量均为M的N个数据切片。
6.一种获得循环冗余校验CRC码的装置,其特征在于,包括:
存储器,用于存储计算机指令;
处理器,包括CRC寄存器,所述处理器与所述存储器通信连接,用于执行所述存储器中的计算机指令,以在执行所述计算机指令时执行如下操作:
按照目标比特数量,将待处理数据依次分成N个数据切片;其中,所述N个数据切片中的每个数据切片的比特数量与所述目标比特数量均为M,N为正整数;
将第i数据切片与所述CRC寄存器中的当前值进行异或运算,得到第i异或运算结果,所述N个数据切片包括第i数据切片,i为大于或等于1且小于N的正整数;
对所述第i异或运算结果进行划分以及补0操作,获得满足第一条件的H个子切片;其中,M能被H整除,所述第一条件为H个子切片的比特数量依次递减M/H个比特,且H个子切片中所有子切片的有效净荷比特数量均相同,有效净荷比特数量是指所述每个子切片中补0之前的比特数量,H大于或等于2;
根据预存的余式表,获得所述第i异或运算结果的H个子切片中的每个子切片对应的CRC余式,从而获得所述第i异或运算结果的H个CRC余式;
若N为1,则根据所述第i异或运算结果的H个子切片进行异或运算,获得所述待处理数据的CRC码;
若N大于1,则根据所述第i异或运算结果的H个CRC余式,以及所述N个数据切片中除了所述第i数据切片之外的数据切片,获得所述待处理数据的CRC码。
7.如权利要求6所述的装置,其特征在于,所述处理器具体用于:
将所述CRC寄存器中的当前值更新为所述第i异或运算结果;
对所述第i异或运算结果的H个CRC余式,以及第i+1数据切片进行异或运算,获得第i+1异或运算结果,所述N个数据切片包括所述第i+1个数据切片;
将i依次从1取到N-1,当i取到N-1时,则所述第i+1个异或运算结果为所述待处理数据的CRC码。
8.如权利要求6所述的装置,其特征在于,所述处理器具体用于:
将所述CRC寄存器中的当前值更新为所述第i异或运算结果;
对所述第i异或运算结果的H个CRC余式与第i+2数据切片进行异或运算,得到第i+2异或运算结果,并同时根据所述余式表,获得第i+1异或运算结果的H个子切片的H个CRC余式;其中,所述第i+1异或运算结果的H个子切片满足所述第一条件,所述第i+1异或运算结果为第i+1数据切片与所述CRC寄存器中的当前值的异或运算的结果,所述N个数据切片包括所述第i+2数据切片和所述第i+1数据切片;
将i依次从1取到N-2,当i取到N-2时,则对所述第i+1异或运算结果的H个CRC余式和第i+2异或运算结果进行异或运算,获得所述待处理数据的CRC码。
9.如权利要求6-8任一所述的装置,其特征在于,所述处理器具体用于:
将所述第i异或运算结果划分为H个有效净荷子切片,所述H个有效净荷子切片中每个有效净荷子切片的比特数量均相同;
将所述每个有效净荷子切片中的有效净荷数据移位到高位,并将所述每个有效净荷子切片的低位补0,从而获得所述第i异或运算结果的H个子切片。
10.如权利要求6-8任一所述的装置,其特征在于,所述处理器具体用于:
确定所述待处理数据的比特数量能否被所述目标比特数量整除;
若所述待处理数据的比特数量不能被所述目标比特数量整除,则对所述待处理数据进行移位补0操作;
将移位补0操作后的所述待处理数据划分为比特数量均为M的N个数据切片。
11.一种获得循环冗余校验CRC码的装置,其特征在于,包括:
收发模块,用于接收待处理数据;
处理模块,用于按照目标比特数量,将待处理数据依次分成N个数据切片;其中,所述N个数据切片中的每个数据切片的比特数量与所述目标比特数量均为M,N为正整数;
所述处理模块,还用于将第i数据切片与CRC寄存器中的当前值进行异或运算,得到第i异或运算结果,所述N个数据切片包括第i数据切片,i为大于或等于1且小于N的正整数;
所述处理模块,还用于对所述第i异或运算结果进行划分以及补0操作,获得满足第一条件的H个子切片;其中,M能被H整除,所述第一条件为H个子切片的比特数量依次递减M/H个比特,且H个子切片中所有子切片的有效净荷比特数量均相同,有效净荷比特数量是指所述每个子切片中补0之前的比特数量,H大于或等于2;
所述处理模块,还用于获得所述第i异或运算结果的H个子切片中的每个子切片对应的CRC余式,从而获得所述第i异或运算结果的H个CRC余式;
所述处理模块,还用于若N为1,则根据所述第i异或运算结果的H个子切片进行异或运算,获得所述待处理数据的CRC码;
所述处理模块,还用于若N大于1,则根据所述第i异或运算结果的H个CRC余式,以及所述N个数据切片中除了所述第i数据切片之外的数据切片,获得所述待处理数据的CRC码。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910019439.1A CN111431541B (zh) | 2019-01-09 | 2019-01-09 | 一种获得crc码的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910019439.1A CN111431541B (zh) | 2019-01-09 | 2019-01-09 | 一种获得crc码的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111431541A CN111431541A (zh) | 2020-07-17 |
CN111431541B true CN111431541B (zh) | 2023-05-12 |
Family
ID=71546037
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910019439.1A Active CN111431541B (zh) | 2019-01-09 | 2019-01-09 | 一种获得crc码的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111431541B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112596674B (zh) * | 2020-12-21 | 2023-10-13 | 成都储迅科技有限责任公司 | 一种用于固态硬盘主控缓存数据双重保护的方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101527615A (zh) * | 2009-04-07 | 2009-09-09 | 华为技术有限公司 | 一种循环冗余校验crc码的实现方法和装置 |
CN102546089A (zh) * | 2011-01-04 | 2012-07-04 | 中兴通讯股份有限公司 | 循环冗余校验crc码的实现方法及装置 |
CN102761394A (zh) * | 2012-07-05 | 2012-10-31 | 中兴通讯股份有限公司 | 数据的处理方法及装置 |
CN105119694A (zh) * | 2015-09-11 | 2015-12-02 | 烽火通信科技股份有限公司 | 一种计算高速网络中crc值的方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8738990B2 (en) * | 2012-07-19 | 2014-05-27 | Nvidia Corporation | Cyclic redundancy check generation via distributed time multiplexed linear feedback shift registers |
-
2019
- 2019-01-09 CN CN201910019439.1A patent/CN111431541B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101527615A (zh) * | 2009-04-07 | 2009-09-09 | 华为技术有限公司 | 一种循环冗余校验crc码的实现方法和装置 |
CN102546089A (zh) * | 2011-01-04 | 2012-07-04 | 中兴通讯股份有限公司 | 循环冗余校验crc码的实现方法及装置 |
CN102761394A (zh) * | 2012-07-05 | 2012-10-31 | 中兴通讯股份有限公司 | 数据的处理方法及装置 |
CN105119694A (zh) * | 2015-09-11 | 2015-12-02 | 烽火通信科技股份有限公司 | 一种计算高速网络中crc值的方法及系统 |
Non-Patent Citations (1)
Title |
---|
Nokia, Alcatel-Lucent Shanghai Bell.R1-1708833 "Design details of distributed CRC".3GPP tsg_ran\WG1_RL1.2017,(第TSGR1_89期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111431541A (zh) | 2020-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9071275B2 (en) | Method and device for implementing cyclic redundancy check codes | |
JP6797281B2 (ja) | 符号化方法およびデバイスならびに装置 | |
EP1474873B1 (en) | Obtaining cyclic redundancy code | |
KR20080040706A (ko) | 데이터 스트림에 주기적 덧붙임 검사(crc)를 수행하기위한 crc 생성 회로를 구성하는 방법 및 장치 | |
JP2020532927A (ja) | ポーラー符号のためのブロック並列凍結ビット生成 | |
CN101207467B (zh) | 循环冗余校验码的生成和数据序列发送、校验方法及装置 | |
CN111431541B (zh) | 一种获得crc码的方法及装置 | |
CN116861493A (zh) | 一种校验码生成方法、处理器及电子设备 | |
KR20160116980A (ko) | Ldpc 복호기의 vss 알고리즘을 위한 h 행렬의 스케줄링 장치 및 그 방법 | |
CN109756231B (zh) | 循环移位处理装置及方法 | |
CN110457008B (zh) | m序列生成方法、装置及存储介质 | |
CN108574490B (zh) | 计算循环冗余校验crc编码的方法及装置 | |
CN107301017B (zh) | 一种数据存储方法及装置 | |
JP6875661B2 (ja) | 誤り検出用冗長ビットの生成方法および装置 | |
CN113485751B (zh) | 执行伽罗瓦域乘法的方法、运算单元和电子装置 | |
CN116048868A (zh) | 代码生成方法、装置、设备和存储介质 | |
US7225391B1 (en) | Method and apparatus for parallel computation of linear block codes | |
CN111224674B (zh) | 多进制ldpc码的解码方法、装置及解码器 | |
JP2015142343A (ja) | 通信装置および巡回冗長検査プログラム | |
CN106603085B (zh) | 生成多项式的生成方法、生成装置、编码器、控制器及电子设备 | |
CN116073952B (zh) | 一种基于MaPU架构的快速并行卷积编译码方法、系统、设备及介质 | |
CN111384976A (zh) | 稀疏校验矩阵的存储方法和读取方法 | |
CN111030709A (zh) | 基于bch译码器的译码方法、bch译码器及应用其的电路 | |
CN116781214B (zh) | 一种解码模块生成方法、设备以及可读存储介质 | |
US8381080B2 (en) | Reducing a degree of a polynomial in a polynomial division calculation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |