CN105119694A - 一种计算高速网络中crc值的方法及系统 - Google Patents

一种计算高速网络中crc值的方法及系统 Download PDF

Info

Publication number
CN105119694A
CN105119694A CN201510575502.1A CN201510575502A CN105119694A CN 105119694 A CN105119694 A CN 105119694A CN 201510575502 A CN201510575502 A CN 201510575502A CN 105119694 A CN105119694 A CN 105119694A
Authority
CN
China
Prior art keywords
crc
data
value
calculated
data block
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.)
Granted
Application number
CN201510575502.1A
Other languages
English (en)
Other versions
CN105119694B (zh
Inventor
李剑峰
李光瑜
胡峰
海增强
冯波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fiberhome Telecommunication Technologies Co Ltd
Original Assignee
Fiberhome Telecommunication Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fiberhome Telecommunication Technologies Co Ltd filed Critical Fiberhome Telecommunication Technologies Co Ltd
Priority to CN201510575502.1A priority Critical patent/CN105119694B/zh
Publication of CN105119694A publication Critical patent/CN105119694A/zh
Application granted granted Critical
Publication of CN105119694B publication Critical patent/CN105119694B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

本发明公开了一种计算高速网络中CRC值的方法及系统,涉及数字通信系统的循环冗余校验技术领域。该方法包括以下步骤:判断待计算数据块中,有效净荷的长度是否小于待计算数据块的长度,若是,对待计算数据块进行数据的移位和补0操作;按照均等的位宽,将待计算数据块分成N个数据切片;采用并行计算CRC算法,同时计算N个数据切片的CRC值;将计算得到的N个数据切片的CRC值分别输入对应的相对位置系数矩阵,得到N个输出值;将N个输出值做按位异或运算,合并得到待计算数据块的CRC终值。本发明能够快速、实时地计算出当前数据的CRC值,满足高速网络线路上数据传输速率要求。

Description

一种计算高速网络中CRC值的方法及系统
技术领域
本发明涉及数字通信系统的循环冗余校验技术领域,具体来讲是一种计算高速网络中CRC(CyclicRedundancyCheck,循环冗余校验)值的方法及系统。
背景技术
在通信系统的传输过程中,传输信道会受到诸多的外界干扰,进而造成系统的接收端收到的信息与发送端发出的信息不一致(即误码)。为了降低通信系统中的误码率,保证信息传输过程中的正确性,通常不一致的信息进行差错控制处理。
在通信系统中,例如以太网数据包的差错监测系统、GFP(GenericFramingProcedure,通用成帧规程)协议的数据封装系统等,一般常用的差错控制处理方式为循环冗余校验(CRC)方法,循环冗余校验(CRC)方法具有实现比较简单,检错能力较强等优点。目前,在速率较低的通信网络中,通常使用并行计算CRC值的方法来实现通信系统的循环冗余校验,例如在10Gbps以太网中使用的是64bit位宽的并行计算CRC值的算法。
现有的CRC值计算方法虽然可以满足低速率线路上的数据传输速率要求,但是在高速的网络中(如100Gbps以太网),由于数据传输速率的要求较高,而大规模数据的并行计算效率又太低,因此并行计算CRC值的方法根本无法满足高速网络中要求实时计算出当前数据的CRC值的要求。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种计算高速网络中CRC值的方法及系统,本发明能够快速、实时地计算出当前数据的CRC值,满足高速网络线路上数据传输速率要求。
为达到以上目的,本发明提供一种计算高速网络中CRC值的方法,包括以下步骤:
A、判断待计算数据块中,有效净荷的长度是否小于待计算数据块的长度Y,若是,对待计算数据块进行数据的移位和补0操作后转入步骤B;否则直接转入步骤B;
B、按照均等的位宽L,将待计算数据块分成N个数据切片,N为正整数,转入步骤C;
C、采用并行计算CRC算法,同时计算N个数据切片的CRC值,转入步骤D;
D、根据CRC编码器的状态公式计算出与所有数据切片对应的相对位置系数矩阵,每个数据切片对应一个相对位置系数矩阵;将步骤C中的N个数据切片的CRC值分别输入对应的相对位置系数矩阵,得到N个输出值;将N个输出值做按位异或运算,合并得到待计算数据块的CRC终值。
在上述技术方案的基础上,在步骤D之后还包括步骤E:判断CRC终值是否为正确值,若是,无需进行补偿修正,结束;否则对CRC终值进行补偿修正计算,结束。
在上述技术方案的基础上,所述步骤E具体包括以下步骤:判断步骤C中计算数据切片的CRC值时CRC的初始值是否全部为0,若是,表明步骤D中合并得到的待计算数据块的CRC终值为正确值,无需进行补偿修正,结束;否则,将CRC终值与相对位置系数矩阵的逆矩阵的M次幂做异或运算,M为步骤A中补0的个数,得到待计算数据块的CRC终值的修正值,结束。
在上述技术方案的基础上,步骤A中所述进行数据的移位和补0操作,具体包括以下步骤:将有效净荷数据移位到待计算数据块的低位;在待计算数据块的高位补0。
在上述技术方案的基础上,步骤D中所述根据CRC编码器的状态公式计算出与数据切片对应的N个相对位置系数矩阵,具体包括以下步骤:
根据1个时钟周期的CRC编码器状态公式D1=TD+Pin,D为CRC编码器的状态初值,T和P为常数矩阵,in为第n个待计算的输入数据,n为正整数,可知:
n个时钟周期的CRC编码器状态公式为Dn=TnD+T(n-1)Pi(n-1)+T(n-2)Pi(n-2)+…+TPi1+Pi0
设待计算的输入数据位宽为L,则代入上述公式可得:
DL=TLD+TL-1PiL-1+TL-2PiL-2+TL-3PiL-3+…+TPi1+Pi0(1)
若待计算的输入数据位宽为2L,则有:
D2L=T2LD+T2L-1Pi2L-1+T2L-2Pi2L-2+T2L-3Pi2L-3+…+TLPiL+TL-1PiL-1+TL-2PiL-2+TL-3PiL-3+…+TPi1+Pi0(2)
在CRC初值为0时,(1)式可以化简为:
DL=TL-1PiL-1+TL-2PiL-2+TL-3PiL-3+…+TPi1+Pi0(3)
将(3)式带入(2)式得到:
D2L=T2LD+T2L-1Pi2L-1+T2L-2Pi2L-2+T2L-3Pi2L-3+…+TLPiL+TLDL(4)
依次类推,若输入数据的位宽为NL,N为切片个数,则:
DNL=TNLD+TNL-1PiNL-1+TNL-2PiNL-2+TNL-3PiNL-3+…TLPiNL+T(N-1)LD(N-1)L(5)
在式(3)类推到式(5)的过程中,得到的TNL、T(N-1)L、T(N-2)L…T3L、T2L、TL,即为与数据切片对应的N个相对位置系数矩阵。
在上述技术方案的基础上,所述常数矩阵T是由CRC标准算法生成多项式输入数据为0时得到的单位系数矩阵。
在上述技术方案的基础上,所述常数矩阵T是由CRC-32生成多项式输入数据为0时得到的单位系数矩阵;其中,CRC-32生成多项式为G(x)=x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1,则单位系数矩阵T为:
T = 0 ... ... ... 0 1 1 0 ... ... ... ... 0 1 0 1 0 ... ... ... ... 0 1 0 0 1 0 ... ... ... ... 0 0 0 0 1 0 ... ... ... 0 0 ... ... ... ... ... ... ... ... ... ... 0 ... ... ... ... 1 0 .
本发明还提供一种实现上述方法的计算高速网络中CRC值的系统,包括数据移位单元、数据分片单元、数据切片CRC值计算单元、数据合并单元;
所述数据移位单元用于:判断待计算数据块中,有效净荷的长度是否小于待计算数据块的长度Y,若是,对待计算数据块进行数据的移位和补0操作后,向数据分片单元发送分片信号;否则直接向数据分片单元发送分片信号;
所述数据分片单元用于:收到分片信号后,按照均等的位宽L,将待计算数据块分成N个数据切片,N为正整数,并向数据切片CRC值计算单元发送计算信号;
所述数据切片CRC值计算单元用于:收到计算信号后,采用并行计算CRC算法同时计算N个数据切片的CRC值,向数据合并单元发送合并信号;
所述数据合并单元用于:收到合并信号后,根据CRC编码器的状态公式,类推计算出与所有数据切片对应的相对位置系数矩阵,每个数据切片对应一个相对位置系数矩阵;将数据切片CRC值计算单元计算得到的N个数据切片的CRC值分别输入相对位置系数矩阵,得到N个输出值;将N个输出值做按位异或运算,合并得到待计算数据块的CRC终值。
在上述技术方案的基础上,该系统还包括后补偿计算单元,所述后补偿计算单元用于:判断CRC终值是否为正确值,若是,无需进行补偿修正;否则对CRC终值进行补偿修正计算。
在上述技术方案的基础上,所述后补偿计算单元包括补偿判断子单元和补偿修正子单元;
所述补偿判断子单元用于:判断数据切片CRC值计算单元在计算数据切片的CRC值时,CRC的初始值是否全部为0,若是,表明CRC终值为正确值,无需进行补偿修正;否则,向补偿修正子单元发送补偿修正信号;
所述补偿修正子单元用于:收到补偿修正信号后,将CRC终值与相对位置系数矩阵的逆矩阵的M次幂做异或运算,得到待计算数据块的CRC终值的修正值。
本发明的有益效果在于:
(1)本发明提供的CRC值计算方法,将整块的待计算数据块按照均等的位宽分成了若干数据切片,对划分的若干数据切片采用并行计算CRC算法同时计算数据切片的CRC值,最后将各数据切片的CRC值进行合并,得到整块的待计算数据块CRC终值。与现有的CRC值计算方法相比,本发明不是对整块大数据一次性进行并行计算,而是分成了若干均等位宽的数据切片进行计算,不但能够快速、实时地计算出当前数据的CRC值,满足高速网络线路上数据传输速率要求,而且还能减小CRC计算的电路延迟,减小用于计算CRC的电路逻辑规模。
(2)本发明在进行分片数据计算之前,会对待计算数据块进行数据的移位和补0操作,使得CRC计算过程统一,解决了由于待计算数据的有效净荷的字节数不同而带来的多种计算情况。
(3)本发明在进行完待计算数据块的CRC终值计算后,还进行了补偿修正操作,能对计算结果出错的情况(当计算时CRC初始值不全为0,则计算的结果有可能会出现错误)进行及时地补偿修正,有效保证了高速网络中CRC值的计算准确性。
(4)本发明不但可以解决网络系统、高速芯片设计中的CRC值计算,还可以广泛地应用到数字通信的各个领域(只要是需要进行CRC校验的数据处理都适用),适用范围广,复用性高。
附图说明
图1为本发明实施例中计算高速网络中CRC值的方法的流程图;
图2为本发明实施例中进行数据的移位、补0、分片操作的状态示意图;
图3为本发明实施例中计算高速网络中CRC值的系统的结构框图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步的详细描述。
参见图1所示,本发明实施例提供一种计算高速网络中CRC值的方法,包括以下步骤:
S1:判断待计算数据块中,有效净荷的长度是否小于待计算数据块的长度Y,若是,对待计算数据块进行数据的移位和补0操作后转入S2;否则直接转入S2。
S1中进行数据的移位和补0操作,具体包括以下步骤:将有效净荷数据移位到待计算数据块的低位;在待计算数据块的高位补0(如图2所示)。
S2:按照均等的位宽L,将待计算数据块分成N个数据切片(如图2所示),N为正整数,转入S3。
S3:采用并行计算CRC算法,同时计算N个数据切片的CRC值,转入S4。
S3中,因为数据切片的位宽较小,所以用于计算数据切片的CRC值的CRC电路规模也会相对比较小,可以减小CRC计算的电路延迟,减小用于计算CRC的电路逻辑规模,同时还能满足集成电路的高时序要求,使得计算效率高、实时性强。
S4:根据CRC编码器的状态公式计算出与所有数据切片对应的相对位置系数矩阵,每个数据切片对应一个相对位置系数矩阵;将S3中的N个数据切片的CRC值分别输入对应的相对位置系数矩阵,得到N个输出值;将N个输出值做按位异或运算,合并得到待计算数据块的CRC终值,转入S5。
S5:判断CRC终值是否为正确值,若是,无需进行补偿修正,结束;否则对CRC终值进行补偿修正计算,结束。
S5具体包括以下步骤:判断S3中计算数据切片的CRC值时CRC的初始值是否全部为0,若是,表明步骤S4中合并得到的待计算数据块的CRC终值为正确值,无需进行补偿修正,结束;否则,将CRC终值与相对位置系数矩阵的逆矩阵的M次幂做异或运算,M为S1中补0的个数,得到待计算数据块的CRC终值的修正值,结束。
S4中根据CRC编码器的状态公式计算出与数据切片对应的N个相对位置系数矩阵,具体包括以下步骤:
根据1个时钟周期的CRC编码器状态公式D1=TD+Pin,D为CRC编码器的状态初值,T和P为常数矩阵,in为第n个待计算的输入数据,n为正整数,可知:
n个时钟周期的CRC编码器状态公式为Dn=TnD+T(n-1)Pi(n-1)+T(n-2)Pi(n-2)+…+TPi1+Pi0
设待计算的输入数据位宽为L(即切片的位宽),则代入上述公式可得:
DL=TLD+TL-1PiL-1+TL-2PiL-2+TL-3PiL-3+…+TPi1+Pi0(1)
若待计算的输入数据位宽为2L,则有:
D2L=T2LD+T2L-1Pi2L-1+T2L-2Pi2L-2+T2L-3Pi2L-3+…+TLPiL+TL-1PiL-1+TL-2PiL-2+TL-3PiL-3+…+TPi1+Pi0(2)
在CRC初值为0时,(1)式可以化简为:
DL=TL-1PiL-1+TL-2PiL-2+TL-3PiL-3+…+TPi1+Pi0(3)
将(3)式带入(2)式得到:
D2L=T2LD+T2L-1Pi2L-1+T2L-2Pi2L-2+T2L-3Pi2L-3+…+TLPiL+TLDL(4)
依次类推,若输入数据的位宽为NL,N为切片个数,则:
DNL=TNLD+TNL-1PiNL-1+TNL-2PiNL-2+TNL-3PiNL-3+…TLPiNL+T(N-1)LD(N-1)L(5)
由(1)式,即简化式(3)式可得到TL矩阵,由(4)式可得到T2L矩阵,依次类推,由(5)式可得到TNL矩阵。在(3)式类推到(5)式的过程中,得到的TNL、T(N-1)L、T(N-2)L…T3L、T2L、TL,即为与数据切片对应的N个相对位置系数矩阵。
其中,常数矩阵T是由CRC标准算法生成多项式输入数据为0时得到的单位系数矩阵,比如标准算法CRC-32生成多项式为:G(x)=x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x1+,那么单位系数矩阵为:
T = 0 ... ... ... 0 1 1 0 ... ... ... ... 0 1 0 1 0 ... ... ... ... 0 1 0 0 1 0 ... ... ... ... 0 0 0 0 1 0 ... ... ... 0 0 ... ... ... ... ... ... ... ... ... ... 0 ... ... ... ... 1 0 .
则相对位置系数矩阵为根据单位系数矩阵T乘方运算得到的矩阵。
本发明中,在进行完S4的CRC终值计算后,还加入了补偿修正操作,其原因在于:在S1中进行的高位补0操作,会使参与计算的数据引入M个0(M为补0的个数),这对于计算初始值为全0的CRC并无影响,但当初始值不等于全0的情况就会使计算结果出错,所以要采用后补偿机制修正错误的CRC终值。
其中,后补偿修正机制的原理如下:
由t时刻CRC编码器状态方程D(t)可推导出t+1时刻CRC编码器状态方程D(t+1)=T×[I(t)+D(t)](6)
式中,I为输入的数据,t为正整数。
根据(6)式可以推导出t+H时刻CRC编码器状态方程D(t+H)=TH×[I(t)+D(t)](7)
(7)式中,H为正整数,由于此时输入的数据为M个0(M为正整数),因此(7)式可以化简为:
D(t+M)=TM×[D(t)](8)
设待计算数据块中带有额外补充的M个0运算后的CRC编码器状态为D(t+M),期望计算得到的CRC编码器状态为D(t),则由(8)式推导出的关系式为:
D(t)=(T-1)M×[D(t+M)](9)
根据(9)式可以推导得出:将得到的CRC终值乘以(T-1)M矩阵(即相对位置系数矩阵的逆矩阵的M次幂),即可实现对CRC终值的补偿修正。
参见图3所示,本发明还提供一种实现上述方法的计算高速网络中CRC值的系统,包括数据移位单元、数据分片单元、数据切片CRC值计算单元、数据合并单元;
数据移位单元用于:判断待计算数据块中,有效净荷的长度是否小于待计算数据块的长度Y,若是,对待计算数据块进行数据的移位和补0操作后,向数据分片单元发送分片信号;否则直接向数据分片单元发送分片信号;
数据分片单元用于:收到分片信号后,按照均等的位宽L,将待计算数据块分成N个数据切片,N为正整数,并向数据切片CRC值计算单元发送计算信号;
数据切片CRC值计算单元用于:收到计算信号后,采用并行计算CRC算法同时计算N个数据切片的CRC值,向数据合并单元发送合并信号;
数据合并单元用于:收到合并信号后,根据CRC编码器的状态公式,类推计算出与所有数据切片对应的相对位置系数矩阵,每个数据切片对应一个相对位置系数矩阵;将数据切片CRC值计算单元计算得到的N个数据切片的CRC值分别输入相对位置系数矩阵,得到N个输出值;将N个输出值做按位异或运算,合并得到待计算数据块的CRC终值。
为了提高计算CRC值的正确率,使得在计算CRC时初始值不为全0的情况下,依然能够保证所计算的CRC值为正确值,本系统还包括后补偿计算单元,该后补偿计算单元用于:判断CRC终值是否为正确值,若是,无需进行补偿修正;否则对CRC终值进行补偿修正计算。
其中,后补偿计算单元包括补偿判断子单元和补偿修正子单元;
补偿判断子单元用于:判断数据切片CRC值计算单元在计算数据切片的CRC值时,CRC的初始值是否全部为0,若是,表明CRC终值为正确值,无需进行补偿修正;否则,向补偿修正子单元发送补偿修正信号;
补偿修正子单元用于:收到补偿修正信号后,将CRC终值与相对位置系数矩阵的逆矩阵的M次幂做异或运算,得到待计算数据块的CRC终值的修正值。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

Claims (10)

1.一种计算高速网络中CRC值的方法,其特征在于,包括以下步骤:
A、判断待计算数据块中,有效净荷的长度是否小于待计算数据块的长度Y,若是,对待计算数据块进行数据的移位和补0操作后转入步骤B;否则直接转入步骤B;
B、按照均等的位宽L,将待计算数据块分成N个数据切片,N为正整数,转入步骤C;
C、采用并行计算CRC算法,同时计算N个数据切片的CRC值,转入步骤D;
D、根据CRC编码器的状态公式计算出与所有数据切片对应的相对位置系数矩阵,每个数据切片对应一个相对位置系数矩阵;将步骤C中的N个数据切片的CRC值分别输入对应的相对位置系数矩阵,得到N个输出值;将N个输出值做按位异或运算,合并得到待计算数据块的CRC终值。
2.如权利要求1所述的计算高速网络中CRC值的方法,其特征在于:在步骤D之后还包括步骤E:判断CRC终值是否为正确值,若是,无需进行补偿修正,结束;否则对CRC终值进行补偿修正计算,结束。
3.如权利要求2所述的计算高速网络中CRC值的方法,其特征在于:所述步骤E具体包括以下步骤:判断步骤C中计算数据切片的CRC值时CRC的初始值是否全部为0,若是,表明步骤D中合并得到的待计算数据块的CRC终值为正确值,无需进行补偿修正,结束;否则,将CRC终值与相对位置系数矩阵的逆矩阵的M次幂做异或运算,M为步骤A中补0的个数,得到待计算数据块的CRC终值的修正值,结束。
4.如权利要求1所述的计算高速网络中CRC值的方法,其特征在于:步骤A中所述进行数据的移位和补0操作,具体包括以下步骤:将有效净荷数据移位到待计算数据块的低位;在待计算数据块的高位补0。
5.如权利要求1所述的计算高速网络中CRC值的方法,其特征在于:步骤D中所述根据CRC编码器的状态公式计算出与数据切片对应的N个相对位置系数矩阵,具体包括以下步骤:
根据1个时钟周期的CRC编码器状态公式D1=TD+Pin,D为CRC编码器的状态初值,T和P为常数矩阵,in为第n个待计算的输入数据,n为正整数,可知:
n个时钟周期的CRC编码器状态公式为Dn=TnD+T(n-1)Pi(n-1)+T(n-2)Pi(n-2)+…+TPi1+Pi0
设待计算的输入数据位宽为L,则代入上述公式可得:
DL=TLD+TL-1PiL-1+TL-2PiL-2+TL-3PiL-3+…+TPi1+Pi0(1)
若待计算的输入数据位宽为2L,则有:
D2L=T2LD+T2L-1Pi2L-1+T2L-2Pi2L-2+T2L-3Pi2L-3+…+TLPiL+TL-1PiL-1+TL-2PiL-2+TL-3PiL-3+…+TPi1+Pi0(2)
在CRC初值为0时,(1)式可以化简为:
DL=TL-1PiL-1+TL-2PiL-2+TL-3PiL-3+…+TPi1+Pi0(3)
将(3)式带入(2)式得到:
D2L=T2LD+T2L-1Pi2L-1+T2L-2Pi2L-2+T2L-3Pi2L-3+…+TLPiL+TLDL(4)
依次类推,若输入数据的位宽为NL,N为切片个数,则:
DNL=TNLD+TNL-1PiNL-1+TNL-2PiNL-2+TNL-3PiNL-3+…TLPiNL+T(N-1)LD(N-1)L(5)
在式(3)类推到式(5)的过程中,得到的TNL、T(N-1)L、T(N-2)L…T3L、T2L、TL,即为与数据切片对应的N个相对位置系数矩阵。
6.如权利要求5所述的计算高速网络中CRC值的方法,其特征在于:所述常数矩阵T是由CRC标准算法生成多项式输入数据为0时得到的单位系数矩阵。
7.如权利要求6所述的计算高速网络中CRC值的方法,其特征在于:所述常数矩阵T是由CRC-32生成多项式输入数据为0时得到的单位系数矩阵;其中,CRC-32生成多项式为G(x)=x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1,则单位系数矩阵T为:
T = 0 ... ... ... 0 1 1 0 ... ... ... ... 0 1 0 1 0 ... ... ... ... 0 1 0 0 1 0 ... ... ... ... 0 0 0 0 1 0 ... ... ... 0 0 ... ... ... ... ... ... ... ... ... ... 0 ... ... ... ... 1 0 .
8.一种实现权利要求1至7任一项所述方法的计算高速网络中CRC值的系统,其特征在于:包括数据移位单元、数据分片单元、数据切片CRC值计算单元、数据合并单元;
所述数据移位单元用于:判断待计算数据块中,有效净荷的长度是否小于待计算数据块的长度Y,若是,对待计算数据块进行数据的移位和补0操作后,向数据分片单元发送分片信号;否则直接向数据分片单元发送分片信号;
所述数据分片单元用于:收到分片信号后,按照均等的位宽L,将待计算数据块分成N个数据切片,N为正整数,并向数据切片CRC值计算单元发送计算信号;
所述数据切片CRC值计算单元用于:收到计算信号后,采用并行计算CRC算法同时计算N个数据切片的CRC值,向数据合并单元发送合并信号;
所述数据合并单元用于:收到合并信号后,根据CRC编码器的状态公式,类推计算出与所有数据切片对应的相对位置系数矩阵,每个数据切片对应一个相对位置系数矩阵;将数据切片CRC值计算单元计算得到的N个数据切片的CRC值分别输入相对位置系数矩阵,得到N个输出值;将N个输出值做按位异或运算,合并得到待计算数据块的CRC终值。
9.如权利要求8所述的计算高速网络中CRC值的系统,其特征在于:该系统还包括后补偿计算单元,所述后补偿计算单元用于:判断CRC终值是否为正确值,若是,无需进行补偿修正;否则对CRC终值进行补偿修正计算。
10.如权利要求9所述的计算高速网络中CRC值的系统,其特征在于:所述后补偿计算单元包括补偿判断子单元和补偿修正子单元;
所述补偿判断子单元用于:判断数据切片CRC值计算单元在计算数据切片的CRC值时,CRC的初始值是否全部为0,若是,表明CRC终值为正确值,无需进行补偿修正;否则,向补偿修正子单元发送补偿修正信号;
所述补偿修正子单元用于:收到补偿修正信号后,将CRC终值与相对位置系数矩阵的逆矩阵的M次幂做异或运算,得到待计算数据块的CRC终值的修正值。
CN201510575502.1A 2015-09-11 2015-09-11 一种计算高速网络中crc值的方法及系统 Active CN105119694B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510575502.1A CN105119694B (zh) 2015-09-11 2015-09-11 一种计算高速网络中crc值的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510575502.1A CN105119694B (zh) 2015-09-11 2015-09-11 一种计算高速网络中crc值的方法及系统

Publications (2)

Publication Number Publication Date
CN105119694A true CN105119694A (zh) 2015-12-02
CN105119694B CN105119694B (zh) 2018-06-12

Family

ID=54667599

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510575502.1A Active CN105119694B (zh) 2015-09-11 2015-09-11 一种计算高速网络中crc值的方法及系统

Country Status (1)

Country Link
CN (1) CN105119694B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017148096A1 (zh) * 2016-02-29 2017-09-08 中兴通讯股份有限公司 循环冗余校验码的生成方法和装置
CN107451008A (zh) * 2017-06-29 2017-12-08 北京邮电大学 一种crc计算方法及装置
WO2018090860A1 (en) * 2016-11-21 2018-05-24 Huawei Technologies Co., Ltd. Cyclic redundancy check calculation for multiple blocks of a message
CN108270508A (zh) * 2016-12-30 2018-07-10 华为技术有限公司 一种循环冗余校验crc实现方法、装置及网络设备
WO2019223427A1 (zh) * 2018-05-25 2019-11-28 大唐移动通信设备有限公司 一种数据块的编译码方法及装置
CN111431541A (zh) * 2019-01-09 2020-07-17 电信科学技术研究院有限公司 一种获得crc码的方法及装置
CN114679239A (zh) * 2022-04-02 2022-06-28 北京诺芮集成电路设计有限公司 一种高速网络中crc分段计算方法及装置
WO2022237217A1 (zh) * 2021-05-08 2022-11-17 华为技术有限公司 链路检测的方法、装置和设备
CN117097440A (zh) * 2023-10-18 2023-11-21 苏州联讯仪器股份有限公司 一种以太网包crc校验方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101478369A (zh) * 2009-01-05 2009-07-08 深圳华为通信技术有限公司 一种crc校验的方法和系统及crc初值影响矩阵
CN102752081A (zh) * 2012-07-03 2012-10-24 Ut斯达康通讯有限公司 一种高速以太网中并行循环冗余校验方法及装置
CN103731239A (zh) * 2013-12-31 2014-04-16 中国科学院自动化研究所 一种适用于向量处理器的通用crc并行计算部件及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101478369A (zh) * 2009-01-05 2009-07-08 深圳华为通信技术有限公司 一种crc校验的方法和系统及crc初值影响矩阵
CN102752081A (zh) * 2012-07-03 2012-10-24 Ut斯达康通讯有限公司 一种高速以太网中并行循环冗余校验方法及装置
CN103731239A (zh) * 2013-12-31 2014-04-16 中国科学院自动化研究所 一种适用于向量处理器的通用crc并行计算部件及方法

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017148096A1 (zh) * 2016-02-29 2017-09-08 中兴通讯股份有限公司 循环冗余校验码的生成方法和装置
WO2018090860A1 (en) * 2016-11-21 2018-05-24 Huawei Technologies Co., Ltd. Cyclic redundancy check calculation for multiple blocks of a message
US10248498B2 (en) 2016-11-21 2019-04-02 Futurewei Technologies, Inc. Cyclic redundancy check calculation for multiple blocks of a message
CN108270508B (zh) * 2016-12-30 2021-07-16 华为技术有限公司 一种循环冗余校验crc实现方法、装置及网络设备
CN108270508A (zh) * 2016-12-30 2018-07-10 华为技术有限公司 一种循环冗余校验crc实现方法、装置及网络设备
CN107451008A (zh) * 2017-06-29 2017-12-08 北京邮电大学 一种crc计算方法及装置
CN107451008B (zh) * 2017-06-29 2020-05-08 北京邮电大学 一种crc计算方法及装置
WO2019223427A1 (zh) * 2018-05-25 2019-11-28 大唐移动通信设备有限公司 一种数据块的编译码方法及装置
CN110535554A (zh) * 2018-05-25 2019-12-03 大唐移动通信设备有限公司 一种数据块的编译码方法及装置
CN110535554B (zh) * 2018-05-25 2020-11-06 大唐移动通信设备有限公司 一种数据块的编译码方法及装置
CN111431541A (zh) * 2019-01-09 2020-07-17 电信科学技术研究院有限公司 一种获得crc码的方法及装置
CN111431541B (zh) * 2019-01-09 2023-05-12 电信科学技术研究院有限公司 一种获得crc码的方法及装置
WO2022237217A1 (zh) * 2021-05-08 2022-11-17 华为技术有限公司 链路检测的方法、装置和设备
CN114679239A (zh) * 2022-04-02 2022-06-28 北京诺芮集成电路设计有限公司 一种高速网络中crc分段计算方法及装置
CN114679239B (zh) * 2022-04-02 2024-04-23 北京诺芮集成电路设计有限公司 一种高速网络中crc分段计算方法及装置
CN117097440A (zh) * 2023-10-18 2023-11-21 苏州联讯仪器股份有限公司 一种以太网包crc校验方法
CN117097440B (zh) * 2023-10-18 2024-03-15 苏州联讯仪器股份有限公司 一种以太网包crc校验方法

Also Published As

Publication number Publication date
CN105119694B (zh) 2018-06-12

Similar Documents

Publication Publication Date Title
CN105119694A (zh) 一种计算高速网络中crc值的方法及系统
CN107154836B (zh) 一种基于fpga的并行循环冗余crc校验方法
US20140053031A1 (en) Novel combination of error correction and error detection for transmitting digital data
CN101951266B (zh) Turbo并行译码的方法及译码器
US8661308B2 (en) Method and device for fast cyclic redundancy check coding
CN109936376B (zh) 按字节运算循环码crc16-ccitt校验的方法
CN102546089B (zh) 循环冗余校验crc码的实现方法及装置
CN103873071A (zh) 一种前向纠错编码、译码方法和装置、通信设备及系统
CN103731239A (zh) 一种适用于向量处理器的通用crc并行计算部件及方法
CN105634506A (zh) 基于移位搜索算法的平方剩余码的软判决译码方法
EP2903167B1 (en) Method and apparatus for forward error correction (fec) coding based on time-division duplex (tdd)
CN106788878B (zh) 一种具有单比特纠错功能的并行crc纠错方法
CN107231213A (zh) Crc‑32算法在usb3.0数据包中的实现方法
CN103297196B (zh) 一种非整字节数据的循环冗余校验方法
CN101296053A (zh) 计算循环冗余校验码之方法及系统
CN105721107B (zh) 一种分块计算crc以提高时钟频率的装置和方法
CN100384090C (zh) 一种用于纠正数据帧中错误比特的快速循环crc校验方法
CN109286471B (zh) 面向srio控制器的crc校验方法及装置
CN103763064A (zh) 适用于超高速通讯系统的循环冗余校验码生成方法与电路
CN108270508B (zh) 一种循环冗余校验crc实现方法、装置及网络设备
Engdahl et al. Fast parallel CRC implementation in software
CN101848055A (zh) 一种数据修正方法和装置
CN105356966A (zh) 循环冗余校验实现方法、装置和网络设备
Saleh et al. Design and simulation of CRC encoder and decoder using VHDL
CN103532666B (zh) 提高分布式传输中数据传输效率和lt码性能的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant