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

文档序号:9399059阅读:237来源:国知局
一种计算高速网络中crc值的方法及系统的制作方法
【技术领域】
[0001] 本发明涉及数字通信系统的循环冗余校验技术领域,具体来讲是一种计算高速网 络中CRC(Cyclic Redundancy Check,循环冗余校验)值的方法及系统。
【背景技术】
[0002] 在通信系统的传输过程中,传输信道会受到诸多的外界干扰,进而造成系统的接 收端收到的信息与发送端发出的信息不一致(即误码)。为了降低通信系统中的误码率,保 证信息传输过程中的正确性,通常不一致的信息进行差错控制处理。
[0003] 在通信系统中,例如以太网数据包的差错监测系统、GFP (Generic Framing Procedure,通用成帧规程)协议的数据封装系统等,一般常用的差错控制处理方式为循环 冗余校验(CRC)方法,循环冗余校验(CRC)方法具有实现比较简单,检错能力较强等优点。 目前,在速率较低的通信网络中,通常使用并行计算CRC值的方法来实现通信系统的循环 冗余校验,例如在IOGbps以太网中使用的是64bit位宽的并行计算CRC值的算法。
[0004] 现有的CRC值计算方法虽然可以满足低速率线路上的数据传输速率要求,但是在 高速的网络中(如IOOGbps以太网),由于数据传输速率的要求较高,而大规模数据的并行 计算效率又太低,因此并行计算CRC值的方法根本无法满足高速网络中要求实时计算出当 前数据的CRC值的要求。

【发明内容】

[0005] 本发明的目的是为了克服上述【背景技术】的不足,提供一种计算高速网络中CRC值 的方法及系统,本发明能够快速、实时地计算出当前数据的CRC值,满足高速网络线路上数 据传输速率要求。
[0006] 为达到以上目的,本发明提供一种计算高速网络中CRC值的方法,包括以下步骤:
[0007] A、判断待计算数据块中,有效净荷的长度是否小于待计算数据块的长度Y,若是, 对待计算数据块进行数据的移位和补〇操作后转入步骤B ;否则直接转入步骤B ;
[0008] B、按照均等的位宽L,将待计算数据块分成N个数据切片, N为正整数, 转入步骤C ;
[0009] C、采用并行计算CRC算法,同时计算N个数据切片的CRC值,转入步骤D ;
[0010] D、根据CRC编码器的状态公式计算出与所有数据切片对应的相对位置系数矩阵, 每个数据切片对应一个相对位置系数矩阵;将步骤C中的N个数据切片的CRC值分别输入 对应的相对位置系数矩阵,得到N个输出值;将N个输出值做按位异或运算,合并得到待计 算数据块的CRC终值。
[0011] 在上述技术方案的基础上,在步骤D之后还包括步骤E :判断CRC终值是否为正确 值,若是,无需进行补偿修正,结束;否则对CRC终值进行补偿修正计算,结束。
[0012] 在上述技术方案的基础上,所述步骤E具体包括以下步骤:判断步骤C中计算数据 切片的CRC值时CRC的初始值是否全部为0,若是,表明步骤D中合并得到的待计算数据块 的CRC终值为正确值,无需进行补偿修正,结束;否则,将CRC终值与相对位置系数矩阵的逆 矩阵的M次幂做异或运算,M为步骤A中补0的个数,得到待计算数据块的CRC终值的修正 值,结束。
[0013] 在上述技术方案的基础上,步骤A中所述进行数据的移位和补0操作,具体包括以 下步骤:将有效净荷数据移位到待计算数据块的低位;在待计算数据块的高位补0。
[0014] 在上述技术方案的基础上,步骤D中所述根据CRC编码器的状态公式计算出与数 据切片对应的N个相对位置系数矩阵,具体包括以下步骤:
[0015] 根据1个时钟周期的CRC编码器状态公式Dl = TD+Pin,D为CRC编码器的状态初 值,T和P为常数矩阵,in为第η个待计算的输入数据,η为正整数,可知:
[0016] η个时钟周期的CRC编码器状态公式为Dn= T nD+T(n liPk 1}+T(n 2)Pi(n 2)+… +TPifPi0;
[0017] 设待计算的输入数据位宽为L,则代入上述公式可得:
[0018] Dl= TLD+TL 1PiL !+Tl 2PiL 2+TL 3PiL 3+…+TPiJPi0 (I)
[0019] 若待计算的输入数据位宽为2L,则有:
[0020] D2l= T 2LD+T2L 1Pi2L !+T2l 2Pi2L 2+T2L 3Pi2L 3+…+TLPiL+TL 1PiL !+Tl 2Pi L 2+TL 3PiL 3+… +TPi^Pi0 (2)
[0021] 在CRC初值为0时,(I)式可以化简为:
[0022] Dl= T L 1PiL !+Tl 2PiL 2+TL 3PiL 3+…+TPifPi0 (3)
[0023] 将⑶式带入⑵式得到:
[0024] D2l= T 2LD+T2L 1Pi2L !+T2l 2Pi2L 2+T2L 3Pi2L 3+…+TLPiL+TLDL (4)
[0025] 依次类推,若输入数据的位宽为NL,N为切片个数,则:
[0026] Dnl= T NLD+TNL 1Pii !+Tnl 2PiNL 2+TNL 3PiNL 3+…TLPiNL+T(N 1)LD(N 1)L (5)
[0027] 在式(3)类推到式(5)的过程中,得到的T' T(N 1)L、T(N 2)、··Τ' Τ?即为与数 据切片对应的N个相对位置系数矩阵。
[0028] 在上述技术方案的基础上,所述常数矩阵T是由CRC标准算法生成多项式输入数 据为〇时得到的单位系数矩阵。
[0029] 在上述技术方案的基础上,所述常数矩阵T是由CRC-32生成多项式输入数据为0 时得到的单位系数矩阵;其中,CRC-32生成多项式为G(x) = x32+x26+x23+x22+x16+x 12+xn+x1Q+ xs+x7+x5+x4+x2+x+l,则单位系数矩阵T为:
[0030]
[0031] 本发明还提供一种实现上述方法的计算高速网络中CRC值的系统,包括数据移位 单元、数据分片单元、数据切片CRC值计算单元、数据合并单元;
[0032] 所述数据移位单元用于:判断待计算数据块中,有效净荷的长度是否小于待计算 数据块的长度Y,若是,对待计算数据块进行数据的移位和补〇操作后,向数据分片单元发 送分片信号;否则直接向数据分片单元发送分片信号;
[0033] 所述数据分片单元用于:收到分片信号后,按照均等的位宽L,将待计算数据块分 成N个数据切片,
N为正整数,并向数据切片CRC值计算单元发送计算信号;
[0034] 所述数据切片CRC值计算单元用于:收到计算信号后,采用并行计算CRC算法同时 计算N个数据切片的CRC值,向数据合并单元发送合并信号;
[0035] 所述数据合并单元用于:收到合并信号后,根据CRC编码器的状态公式,类推计算 出与所有数据切片对应的相对位置系数矩阵,每个数据切片对应一个相对位置系数矩阵; 将数据切片CRC值计算单元计算得到的N个数据切片的CRC值分别输入相对位置系数矩 阵,得到N个输出值;将N个输出值做按位异或运算,合并得到待计算数据块的CRC终值。
[0036] 在上述技术方案的基础上,该系统还包括后补偿计算单元,所述后补偿计算单元 用于:判断CRC终值是否为正确值,若是,无需进行补偿修正;否则对CRC终值进行补偿修 正计算。
[0037] 在上述技术方案的基础上,所述后补偿计算单元包括补偿判断子单元和补偿修正 子单元;
[0038] 所述补偿判断子单元用于:判断数据切片CRC值计算单元在计算数据切片的CRC 值时,CRC的初始值是否全部为0,若是,表明CRC终值为正确值,无需进行补偿修正;否则, 向补偿修正子单元发送补偿修正信号;
[0039] 所述补偿修正子单元用于:收到补偿修正信号后,将CRC终值与相对位置系数矩 阵的逆矩阵的M次幂做异或运算,得到待计算数据块的CRC终值的修正值。
[0040] 本发明的有益效果在于:
[0041] (1)本发明提供的CRC值计算方法,将整块的待计算数据块按照均等的位宽分成 了若干数据切片,对划分的若干数据切片采用并行计
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1