CN105356966B - 循环冗余校验实现方法、装置和网络设备 - Google Patents

循环冗余校验实现方法、装置和网络设备 Download PDF

Info

Publication number
CN105356966B
CN105356966B CN201410418113.3A CN201410418113A CN105356966B CN 105356966 B CN105356966 B CN 105356966B CN 201410418113 A CN201410418113 A CN 201410418113A CN 105356966 B CN105356966 B CN 105356966B
Authority
CN
China
Prior art keywords
crc
data
input data
result
realization device
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
Application number
CN201410418113.3A
Other languages
English (en)
Other versions
CN105356966A (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.)
China Ordnance Equipment Group Ordnance Equipment Research Institute
Original Assignee
Huawei 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201410418113.3A priority Critical patent/CN105356966B/zh
Publication of CN105356966A publication Critical patent/CN105356966A/zh
Application granted granted Critical
Publication of CN105356966B publication Critical patent/CN105356966B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Error Detection And Correction (AREA)

Abstract

本发明实施例公开了一种CRC实现方法和装置,通过对输入数据进行修正,得到修正数据,对所述修正数据进行CRC计算,得到中间CRC结果,再对所述中间CRC结果进行逆向修正,得到所述输入数据对应的最终CRC结果。可以减少计算CRC时所需计算模块数,从而节省CRC计算中所占用资源,提高计算效率和资源利用率。

Description

循环冗余校验实现方法、装置和网络设备
技术领域
本发明涉及网络通信领域,尤其涉及循环冗余校验(cyclic redundancy check,简称CRC)实现方法、装置和网络设备。
背景技术
在数据报文传输过程中,通常采用循环冗余校验(cyclic redundancy check,简称CRC)算法计算得到帧校验序列(frame check sequence,简称FCS)字段的校验位,将该校验位添加在报文尾部以验证报文传输的正确性。
随着芯片处理性能的提高,负责CRC计算的处理器,一拍时序的数据位宽越来越大。例如,目前数据位宽可达到256比特(英文:bit)。但是,由于数据报文的长度不确定,导致最后一拍时序的模(modulus,符号:MOD)指示不确定,存在N种可能性(N=数据位宽/8bit)。为了保证处理效率,最后一拍通常采用并行计算所有可能性再通过选择器根据MOD指示选择的处理方式。这样,占用的计算资源随着数据位宽的增大会成几何级数增长。例如,数据位宽为256bit的处理器,CRC计算所需的计算模块数为:256bit/8bit,即32,而数据位宽为128bit的处理器,CRC计算所需的计算模块数为:128bit/8bit,即16。数据位宽为256bit的处理器所需的计算模块数是数据位宽为128bit的处理器的两倍。同时,数据位宽为256bit的处理器的每个计算模块所占用的资源规模(256bit)又是数据位宽为128bit的处理器的每个计算模块所占用的资源规模(128bit)的两倍。再加上其他一些可能的逻辑扩充,虽然位宽是两倍的关系,但是整体资源占用是四倍以上,规模过于巨大甚至超出一些主要功能所需资源。
以现场可编程门阵列(field-programmable gate array,简称FPGA)作为负责CRC计算的处理器为例,图1示出了现有技术中所需的四输入(4-input)查找表(lookup table,简称LUT)数量与数据位宽的关系,其中横坐标为数据位宽,纵坐标为LUT数量。LUT数量反映了占用资源的大小,从图1中可以看出,所需的LUT数量不是随着数据位宽线性增加,而是几何级增长。
发明内容
本发明实施例提供了一种CRC实现方法和装置,根据MOD修正待计算报文,节省计算CRC时所需计算模块数,从而节省CRC计算中所占用资源,提高计算效率和资源利用率。
第一方面,提供了一种CRC实现方法,包括:
CRC实现装置根据所述CRC实现装置的数据位宽对输入数据进行修正,得到修正数据,所述修正数据的长度为所述数据位宽的整数倍;
所述CRC实现装置将所述修正数据作为被除数,CRC多项式作为除数,进行CRC计算得到中间CRC结果;
所述CRC实现装置对所述中间CRC结果进行逆向修正,得到所述输入数据对应的最终CRC结果。
在第一方面的第一种可能的实现方式中,所述CRC实现装置根据所述CRC实现装置的数据位宽对输入数据进行修正,得到修正数据包括:
在所述输入数据的长度不是所述CRC实现装置的数据位宽整数倍的情况下,根据所述CRC实现装置的数据位宽,在所述输入数据的尾部填充0得到所述修正数据。
根据第一方面或第一方面的第一种可能实现方式,在第一方面的第二种可能的实现方式中,所述对所述中间CRC结果进行逆向修正,得到所述输入数据对应的最终CRC结果包括:
将所述中间CRC结果的高低位翻转后作为被除数,将所述CRC多项式的高低位翻转后作为除数,进行CRC计算得到计算结果,再将所述计算结果的高低位翻转后得到所述最终CRC结果。
第二方面,提供了一种CRC实现装置,包括数据修正模块,CRC计算模块和结果修正模块;
所述数据修正模块,用于根据所述CRC实现装置的数据位宽对输入数据进行修正,得到修正数据,所述修正数据的长度为所述数据位宽的整数倍;
所述CRC计算模块,用于将所述修正数据作为被除数,CRC多项式作为除数,进行CRC计算得到中间CRC结果;
所述结果修正模块,用于对所述中间CRC结果进行逆向修正,得到所述输入数据对应的最终CRC结果。
在第二方面的第一种可能实现方式中,所述数据修正模块,具体用于在所述输入数据的长度不是所述CRC实现装置的数据位宽整数倍的情况下,根据所述CRC实现装置的数据位宽,在所述输入数据的尾部填充0得到所述修正数据。
根据第二方面或第二方面的第一种可能实现方式,在第二方面的第二种可能实现方式中,所述结果修正模块,具体用于将所述中间CRC结果的高低位翻转后作为被除数,将所述CRC多项式的高低位翻转后作为除数,进行CRC计算得到计算结果,再将所述计算结果的高低位翻转后得到所述最终CRC结果。
第三方面,提供了一种网络设备,包括转发芯片和通信接口;所述转发芯片包括上述第二方面所述的CRC实现装置;
所述转发芯片,用于接收从所述通信接口收到的第一数据报文,从所述第一数据报文中获取净荷作为第一输入数据,从所述第一数据报文的前向校验序列FCS字段获取第一校验值;将所述第一输入数据提供给所述CRC实现装置,并从所述CRC装置获取所述第一输入数据对应的最终CRC结果;根据所述第一校验值和所述第一输入数据对应的最终CRC结果对所述第一数据报文进行校验。
在第三方面的第一种可能实现方式中,所述转发芯片,还用于从第二数据报文中获取净荷作为第二输入数据,将所述第二输入数据提供给所述CRC实现装置,并从所述CRC装置获取所述第二输入数据对应的最终CRC结果;将所述第二输入数据对应的最终CRC结果作为校验值插入所述第二数据报文的FCS字段中,并从所述通信接口发送所述插入了校验值的数据报文。
本发明实施例提供的CRC实现方法、装置及网络设备,根据所述CRC实现装置的数据位宽对输入数据进行修正,得到修正数据,所述修正数据的长度为所述数据位宽的整数倍;这样,可以保证MOD指示是固定的而不存在多种可能性,计算模块的数量不会随着数据位宽增加而增加,可以减少计算CRC时所需计算模块数。然后,将所述修正数据作为被除数,CRC多项式作为除数,进行CRC计算得到中间CRC结果;再对所述中间CRC结果进行逆向修正,得到所述输入数据对应的最终CRC结果;从而可以得到所述输入数据对应的正确的CRC计算结果。本发明提供的技术方案,CRC计算所需的计算资源基本上随数据位宽线性增加,相比于现有技术中所需的计算资源随着数据位宽成几何级增长,可以显著地减少CRC计算所占用的资源,提高计算效率和资源利用率,从而提高设备性能。
附图说明
图1是现有技术中CRC计算消耗资源的示意图;
图2是本发明实施例提供的一种CRC实现方法流程图;
图3是本发明实施例提供的对修正数据进行CRC计算的过程示意图;
图4是本发明实施例提供的对中间CRC结果进行逆向修正的过程示意图;
图5是本发明实施例提供的一种CRC实现装置结构示意图;
图6是本发明实施例提供的一种网络设备结构示意图。
具体实施方式
为使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明实施例作进一步详细的说明。
本发明实施例提供了一种CRC实现方法,如图2所示,包括:
201、对输入数据进行修正,得到修正数据;
本发明实施例中,所述CRC实现方法可以由CRC实现装置执行。所述CRC实现装置可以是处理器,包括网络处理器(network processor,简称NP),专用集成电路(application-specific integrated circuit,简称ASIC)芯片,或可编程逻辑器件,例如FPGA。
CRC实现装置根据所述CRC实现装置的数据位宽,对输入数据进行修正。在所述输入数据的长度不是所述CRC实现装置的数据位宽整数倍的情况下,根据所述CRC实现装置的数据位宽,在所述输入数据的尾部填充0得到所述修正数据;所述修正数据的长度为所述数据位宽的整数倍。这样,进行CRC计算的数据长度固定,可以保证MOD指示是固定的而不存在多种可能性,从而可以减少计算模块的数量。
举例来说,所述数据位宽为256bit,若所述数据的长度为248bit,则在所述输入数据的尾部填充8bit的0,所得到的修正数据的长度为256bit,为所述数据位宽的整数倍。若所述输入数据的长度为376bit,则在所述输入数据的尾部填充136bit的0,得到修正数据的长度为2*256bit,为所述数据位宽的整数倍。
202、对所述修正数据进行CRC计算,得到中间CRC结果;
所述CRC实现装置将所述修正数据作为被除数,CRC多项式作为除数,进行CRC计算得到该中间CRC结果;即,用除数除尽被除数的所有比特位,得到的余数即为该中间CRC结果。这里的除法用的是异或算法而不是算术除法。其中,所述CRC多项式是预先设置或配置在所述CRC实现装置上,例如可以为CRC8多项式x8+x6+1,或者也可以为CRC16多项式x16+x12+x5+1。
以所述CRC实现装置的数据位宽为16bit,CRC8多项式x8+x6+1,即,二进制数101000001为例。假设输入数据为0x12,则根据步骤201对所述数据进行修正,得到的修正数据为0x1200。进一步地,对该修正数据0x1200进行CRC计算,即,以该修正数据为0x1200为被除数,以该多项式x8+x6+1(二进制数101000001)为除数,得到的中间CRC结果为0xC6,具体可参见图3所示。
203、对所述中间CRC结果进行逆向修正,得到所述输入数据对应的最终CRC结果。
CRC算法是可逆的,CRC计算过程也可逆。因此,可以将上述对修正数据计算出的中间CRC结果,通过逆向修正,得到该输入数据对应的最终CRC结果。形象的来说,将对该修正数据进行CRC计算得到上述中间CRC结果的过程翻转(这样所有数据的高低位均发生翻转),回退步骤201中对输入数据进行修正时所填充0的比特位数,例如将图2翻转,回退8位得到一个计算结果;由于所有数据的高低位,包括计算结果的高低位,均发生了翻转,因此还需要将该计算结果的高低位再翻转回来,得到该输入数据0x12的最终计算结果。
具体地,对上述中间CRC结果进行逆向修正,得到该输入数据对应的最终CRC结果包括:所述CRC实现装置将该中间CRC结果的高低位翻转后作为被除数;将该CRC多项式,例如x8+x6+1(二进制数101000001)的高低位翻转后作为除数,然后进行CRC计算得到计算结果,再将该计算结果的高低位翻转后得到该最终CRC结果。
继续步骤202中的例子,所述CRC实现装置对所述中间CRC结果0xC6进行逆向修正,可以将图3过程翻转180度来看。具体可参见图4所示,将所述中间CRC结果0xC6(二进制:00110110)的高低位翻转得到0x63(二进制:01100011)作为被除数,将CRC8多项式x8+x6+1(二进制数101000001)高低位翻转得到x8+x2+1(二进制数100000101)作为除数,进行CRC计算后得到0xEA(二进制:11101010),再将0xEA进行高低位翻转,得到最终CRC结果0x57(二进制01010111)。
采用本发明实施例提供的CRC实现方法,通过对输入数据进行修正,可以保证MOD指示是固定的而不存在多种可能性,这样计算模块的数量不会随着数据位宽增加而增加。相比于现有技术中整体所需的计算资源随着数据位宽成几何级增长,采用本发明实施例提供的CRC实现方法,整体所需的计算资源基本上随数据位宽线性增加,显著降低了大数据位宽处理器消耗的计算资源,从而提高处理器计算效率和性能。
图5为本发明实施例提供的一种CRC实现装置的结构示意图,所述CRC实现装置50包括数据修正模块501,CRC计算模块502和结果修正模块503,用于实现图2所示的CRC实现方法。
所述数据修正模块501,用于对输入数据进行修正,得到修正数据;
所述CRC计算模块502,用于对所述修正数据进行CRC计算,得到中间CRC结果;
所述结果修正模块503,用于对所述中间CRC结果进行逆向修正,得到所述输入数据对应的最终CRC结果。
所述数据修正模块501,具体用于根据所述CRC实现装置的数据位宽,对输入数据进行修正,得到所述修正数据。具体地,在所述输入数据的长度不是所述CRC实现装置的数据位宽整数倍的情况下,所述数据修正模块501根据所述CRC实现装置的数据位宽,在所述输入数据的尾部填充0得到所述修正数据,所述修正数据的长度为所述数据位宽的整数倍。具体示例可见上文,此处不再赘述。这样,进行CRC计算的数据长度固定,可以保证MOD指示是固定的而不存在多种可能性,从而可以减少计算模块的数量。
所述CRC计算模块502,具体用于将所述修正数据作为被除数,CRC多项式作为除数,进行CRC计算得到该中间CRC结果;即,用除数除尽被除数的所有比特位,得到的余数即为该中间CRC结果。这里的除法用的是异或算法而不是算术除法。其中,所述CRC多项式是预先设置或配置在所述CRC实现装置上,例如可以为CRC8多项式x8+x6+1,或者也可以为CRC16多项式x16+x12+x5+1。
CRC算法是可逆的,CRC计算过程也可逆。因此,可以将上述对修正数据计算出的中间CRC结果,通过逆向修正,得到该输入数据对应的最终CRC结果。形象的来说,将对该修正数据进行CRC计算得到上述中间CRC结果的过程翻转(这样所有数据的高低位均发生翻转),回退所述数据修正模块501对输入数据进行修正时所填充0的比特位数,例如将图3翻转,回退8位得到一个计算结果;由于所有数据的高低位,包括计算结果的高低位,均发生了翻转,因此还需要将该计算结果的高低位再翻转回来,得到该输入数据0x12的最终计算结果。
所述结果修正模块503具体用于将被该中间CRC结果的高低位翻转后作为被除数;将该CRC多项式,例如x8+x6+1(二进制数101000001)的高低位翻转后作为除数,然后进行CRC计算得到计算结果,再将该计算结果的高低位翻转后得到该最终CRC结果。
举例来说,所述CRC实现装置的数据位宽为16bit,输入数据为0x12,得到的修正数据为0x1200;以CRC8多项式x8+x6+1,即,二进制数101000001为例,所述CRC计算模块502根据该多项式对该修正数据0x1200进行CRC计算,得到的中间CRC结果为0xC6,具体计可参见图3所示。所述CRC实现装置对所述中间CRC结果0xC6进行逆向修正,可以将图3过程翻转180度来看。具体可参见图4所示,将所述中间CRC结果0xC6(二进制:00110110)的高低位翻转后得到0x63(二进制:01100011)作为被除数,将CRC8多项式x8+x6+1(二进制数101000001)高低位翻转后得到x8+x2+1(二进制数100000101)作为除数,进行CRC计算后得到0xEA(二进制:11101010),再将0xEA进行高低位翻转,得到最终CRC结果0x57(二进制01010111)。
本实施例中其他未尽细节可参考本发明图2所示实施例中所述。
所述CRC实现装置50可以由处理器实现,所述处理器包括NP,ASIC芯片,或可编程逻辑器件,例如FPGA。
本发明实施例提供的CRC实现装置,通过对输入数据进行修正,可以保证MOD指示是固定的而不存在多种可能性,这样计算模块的数量不会随着数据位宽增加而增加,可以减少计算CRC时所需计算模块数。相比于现有技术中整体所需的计算资源随着数据位宽成几何级增长,本发明实施例提供的CRC实现装置,整体所需的计算资源基本上随数据位宽线性增加,可以显著地减少CRC计算所占用的资源,提高计算效率和资源利用率,从而提高所述CRC实现装置的性能。
参见图6,为本发明实施例提供的网络设备结构示意图,所述网络设备60包括转发芯片601和通信接口602;
所述转发芯片601和所述通信接口602通过总线或其他方式相互连接;
所述转发芯片601包括如CRC实现装置6011;所述CRC实现装置6011的结构和实现原理可以参加图5所示的实施例。所述转发芯片601,用于接收从所述通信接口602收到的第一数据报文,从所述第一数据报文中获取净荷作为第一输入数据,从所述第一数据报文的FCS字段获取第一校验值;将所述第一输入数据提供给所述CRC实现装置6011,并从所述CRC装置6011获取所述第一输入数据对应的最终CRC结果;根据所述第一校验值和所述第一输入数据对应的最终CRC结果对所述第一数据报文进行校验。具体地,所述转发芯片601通过比较所述第一校验值与所述第一输入数据对应的最终CRC结果相同是否相同来验证所述第一数据报文传输的正确性。若所述第一校验值与所述第一输入数据对应的最终CRC结果相同,校验通过,表示所述第一数据报文传输正确;否则,校验不通过,表示所述第一数据报文传输出错。
具体地,所述CRC实现装置如6011,包括:数据修正模块,用于对所述输入数据进行修正,得到修正数据;CRC计算模块,用于对所述修正数据进行CRC计算,得到中间CRC结果;结果修正模块,用于对所述中间CRC结果进行逆向修正,得到所述输入数据对应的最终CRC结果。
所述数据修正模块,具体用于根据所述CRC实现装置6011的数据位宽,对所述输入数据进行修正,得到所述修正数据。具体地,在所述输入数据的长度不是所述CRC实现装置的数据位宽整数倍的情况下,所述数据修正模块根据所述CRC实现装置6011的数据位宽,在所述输入数据的尾部填充0得到所述修正数据,所述修正数据的长度为所述数据位宽的整数倍。具体示例可见上文,此处不再赘述。这样,进行CRC计算的数据长度固定,可以保证MOD指示是固定的而不存在多种可能性,从而可以减少计算模块的数量。
所述转发芯片601还用于从第二数据报文中获取净荷作为第二输入数据,将所述第二输入数据提供给所述CRC实现装置6011,并从所述CRC装置6011获取所述第二输入数据对应的最终CRC结果;将所述第二输入数据对应的最终CRC结果作为校验值插入所述第二数据报文的FCS字段中,用于验证所述第二数据报文传输的正确性;并从所述通信接口602发送所述插入了校验值的数据报文。
所述转发芯片601可以仅包括一个CRC实现装置6011,也可以包括多个CRC实现装置6011。具体地,所述转发芯片601包含的CRC实现装置6011的数量,由所述转发芯片601所支持的通信协议以及该通信协议使用的CRC多项式确定。例如,所述转发芯片601支持以太网(IEEE 802.3)和点对点协议(point-to-point protocol,简称PPP),其中,以太网使用CRC32多项式:x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1,而PPP使用CRC16多项式:x16+x12+x5+1,则所述转发芯片601包括两个CRC实现装置6011,一个使用上述CRC32多项式实现以太网报文的CRC计算,另一个使用上述CRC16多项式实现PPP报文的CRC计算。或者,又例如,所述转发芯片601支持PPP和蓝牙(Bluetooth),其中PPP和蓝牙(Bluetooth)均使用CRC16多项式:x16+x12+x5+1,则所述转发芯片601可以只包括一个CRC实现装置6011。
本发明实施例中以所述网络设备包括一个所述转发芯片601为例,如图6所示,当然所述网络设备也可以包括多个所述转发芯片601,对此本发明实施例不做限定。本发明实施例提供的网络设备,在对收到的第一数据报文进行CRC计算,以便验证报文传输的正确性,或者对待发送的第二数据报文进行CRC计算,得到校验值以便插入FCS字段,使得对端验证报文传输的正确性时,通过对输入数据,即,第一数据报文或第二数据报文的净荷进行修正,可以保证MOD指示是固定的而不存在多种可能性,这样计算模块的数量不会随着数据位宽增加而增加,可以减少计算CRC时所需计算模块数。相比于现有技术中整体所需的计算资源随着数据位宽成几何级增长,本发明实施例提供的网络设备,整体所需的CRC计算资源基本上随数据位宽线性增加,可以大大减少CRC计算所占用的资源,提高计算效率和资源利用率,从而提高所述网络设备的性能。
本领域技术人员可以理解的是,本发明实施例中仅示出了网络设备中与本发明相关的部分结构,还可以包括比图示更多的部件,或者不同的部件布置。
本领域普通技术人员可以理解,实现上述各方法实施例中的全部或部分步骤是可以通过程序来指令相关的硬件完成,相应的程序可以存储于计算机可读存储介质中,上述存储介质可以是随机存取存储器,只读存储器,快闪存储器,硬盘,固态硬盘或光盘等。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (7)

1.一种循环冗余校验CRC实现方法,其特征在于,包括:
CRC实现装置根据所述CRC实现装置的数据位宽对输入数据进行修正,得到修正数据,所述修正数据的长度为所述数据位宽的整数倍;
所述CRC实现装置将所述修正数据作为被除数,CRC多项式作为除数,进行CRC计算得到中间CRC结果;
所述CRC实现装置对所述中间CRC结果进行逆向修正,得到所述输入数据对应的最终CRC结果;
所述对所述中间CRC结果进行逆向修正,得到所述输入数据对应的最终CRC结果包括:
将所述中间CRC结果的高低位翻转后作为被除数,将所述CRC多项式的高低位翻转后作为除数,进行CRC计算得到计算结果,再将所述计算结果的高低位翻转后得到所述最终CRC结果。
2.根据权利要求1所述的方法,其特征在于,所述CRC实现装置根据所述CRC实现装置的数据位宽对输入数据进行修正,得到修正数据包括:
在所述输入数据的长度不是所述CRC实现装置的数据位宽的整数倍的情况下,根据所述CRC实现装置的数据位宽,在所述输入数据的尾部填充0得到所述修正数据。
3.一种循环冗余校验CRC实现装置,其特征在于,包括数据修正模块,CRC计算模块和结果修正模块;
所述数据修正模块,用于根据所述CRC实现装置的数据位宽对输入数据进行修正,得到修正数据,所述修正数据的长度为所述数据位宽的整数倍;
所述CRC计算模块,用于将所述修正数据作为被除数,CRC多项式作为除数,进行CRC计算得到中间CRC结果;
所述结果修正模块,用于对所述中间CRC结果进行逆向修正,得到所述输入数据对应的最终CRC结果;
所述结果修正模块,具体用于将所述中间CRC结果的高低位翻转后作为被除数,将所述CRC多项式的高低位翻转后作为除数,进行CRC计算得到计算结果,再将所述计算结果的高低位翻转后得到所述最终CRC结果。
4.根据权利要求3所述的装置,其特征在于,所述数据修正模块,具体用于在所述输入数据的长度不是所述CRC实现装置的数据位宽整数倍的情况下,根据所述CRC实现装置的数据位宽,在所述输入数据的尾部填充0得到所述修正数据。
5.一种网络设备,其特征在于,包括转发芯片和通信接口;所述转发芯片包括CRC实现装置;
所述转发芯片,用于接收从所述通信接口收到的第一数据报文,从所述第一数据报文中获取净荷作为第一输入数据,从所述第一数据报文的前向校验序列FCS字段获取第一校验值;将所述第一输入数据提供给所述CRC实现装置,并从所述CRC实现装置获取所述第一输入数据对应的最终CRC结果;根据所述第一校验值和所述第一输入数据对应的最终CRC结果对所述第一数据报文进行校验;所述CRC实现装置包括:
数据修正模块,用于根据所述CRC实现装置的数据位宽对所述第一输入数据进行修正,得到修正数据,所述修正数据的长度为所述数据位宽的整数倍;
CRC计算模块,用于将所述修正数据作为被除数,CRC多项式作为除数,进行CRC计算得到中间CRC结果;
结果修正模块,用于对所述中间CRC结果进行逆向修正,得到所述第一输入数据对应的所述最终CRC结果;
所述结果修正模块,具体用于将所述中间CRC结果的高低位翻转后作为被除数,将所述CRC多项式的高低位翻转后作为除数,进行CRC计算得到计算结果,再将所述计算结果的高低位翻转后得到所述最终CRC结果。
6.根据权利要求5所述的网络设备,其特征在于,所述数据修正模块,具体用于在所述第一输入数据的长度不是所述CRC实现装置的数据位宽整数倍的情况下,根据所述CRC实现装置的数据位宽,在所述第一输入数据的尾部填充0得到所述修正数据。
7.根据权利要求5所述的网络设备,其特征在于,所述转发芯片,还用于从第二数据报文中获取净荷作为第二输入数据,将所述第二输入数据提供给所述CRC实现装置,并从所述CRC实现装置获取所述第二输入数据对应的最终CRC结果;将所述第二输入数据对应的最终CRC结果作为校验值插入所述第二数据报文的FCS字段中,并从所述通信接口发送所述插入了校验值的数据报文。
CN201410418113.3A 2014-08-22 2014-08-22 循环冗余校验实现方法、装置和网络设备 Active CN105356966B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410418113.3A CN105356966B (zh) 2014-08-22 2014-08-22 循环冗余校验实现方法、装置和网络设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410418113.3A CN105356966B (zh) 2014-08-22 2014-08-22 循环冗余校验实现方法、装置和网络设备

Publications (2)

Publication Number Publication Date
CN105356966A CN105356966A (zh) 2016-02-24
CN105356966B true CN105356966B (zh) 2019-07-23

Family

ID=55332855

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410418113.3A Active CN105356966B (zh) 2014-08-22 2014-08-22 循环冗余校验实现方法、装置和网络设备

Country Status (1)

Country Link
CN (1) CN105356966B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108270508B (zh) * 2016-12-30 2021-07-16 华为技术有限公司 一种循环冗余校验crc实现方法、装置及网络设备
CN114124291A (zh) * 2020-08-25 2022-03-01 北京百卓网络技术有限公司 一种循环冗余校验方法和装置
CN112214349B (zh) * 2020-12-09 2021-03-05 上海灵动微电子股份有限公司 一种数据循环冗余校验装置和方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1472934A (zh) * 2002-07-29 2004-02-04 华为技术有限公司 一种实现同步数字体系链路接入处理协议的方法
CN1728714A (zh) * 2004-07-27 2006-02-01 邓里文 一种用于IPv4网络和IPv6网络互通的方法
CN1728713A (zh) * 2004-07-27 2006-02-01 邓里文 一种数字视频传送方法
CN101150481A (zh) * 2007-11-08 2008-03-26 杭州华三通信技术有限公司 Wlan和lan互通的方法和装置
CN101572112A (zh) * 2008-04-30 2009-11-04 株式会社东芝 数据变换器、信息记录器和差错检测器
CN101854648A (zh) * 2010-04-14 2010-10-06 华为技术有限公司 通信设备单板的测试方法、设备和测试系统
CN102055555A (zh) * 2010-12-17 2011-05-11 天津曙光计算机产业有限公司 一种基于fpga的万兆以太网数据帧的填充校验方法
CN102833036A (zh) * 2011-06-15 2012-12-19 株式会社电装 编码设备、编码方法、数据通信设备和数据通信方法
CN103841009A (zh) * 2014-03-13 2014-06-04 武汉虹信通信技术有限责任公司 一种以太网数据和e1数据的转换与级联的fpga实现方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1472934A (zh) * 2002-07-29 2004-02-04 华为技术有限公司 一种实现同步数字体系链路接入处理协议的方法
CN1728714A (zh) * 2004-07-27 2006-02-01 邓里文 一种用于IPv4网络和IPv6网络互通的方法
CN1728713A (zh) * 2004-07-27 2006-02-01 邓里文 一种数字视频传送方法
CN101150481A (zh) * 2007-11-08 2008-03-26 杭州华三通信技术有限公司 Wlan和lan互通的方法和装置
CN101572112A (zh) * 2008-04-30 2009-11-04 株式会社东芝 数据变换器、信息记录器和差错检测器
CN101854648A (zh) * 2010-04-14 2010-10-06 华为技术有限公司 通信设备单板的测试方法、设备和测试系统
CN102055555A (zh) * 2010-12-17 2011-05-11 天津曙光计算机产业有限公司 一种基于fpga的万兆以太网数据帧的填充校验方法
CN102833036A (zh) * 2011-06-15 2012-12-19 株式会社电装 编码设备、编码方法、数据通信设备和数据通信方法
CN103841009A (zh) * 2014-03-13 2014-06-04 武汉虹信通信技术有限责任公司 一种以太网数据和e1数据的转换与级联的fpga实现方法

Also Published As

Publication number Publication date
CN105356966A (zh) 2016-02-24

Similar Documents

Publication Publication Date Title
KR101221915B1 (ko) 데이터 전송방법
US20180212624A1 (en) Method and apparatus for processing data
JP6220045B2 (ja) モジュール式および拡張可能な巡回冗長検査計算回路
US8468439B2 (en) Speed-optimized computation of cyclic redundancy check codes
US8908535B2 (en) Methods, traffic simulators, and computer readable media for validating long term evolution (LTE) code blocks and transport blocks
BR112019019532B1 (pt) Método e aparelho de codificação, método e aparelho de decodificação, mídia de armazenamento legível por computador
CN105356966B (zh) 循环冗余校验实现方法、装置和网络设备
BR112019012985A2 (pt) dispositivos e métodos para construção de código polar
US11403166B2 (en) Cyclic redundancy check circuit and method and apparatus thereof, chip and electronic device
CN110663189B (zh) 用于极化编码的方法和装置
CN112702065B (zh) Fpga码流数据校验方法及装置
US11342940B2 (en) Data processing method and apparatus
CN111446969B (zh) 一种级联crc码的极化码编码方法及装置
CN109802713B (zh) 信道状态信息csi编码方法及装置、存储介质和处理器
CN108270508B (zh) 一种循环冗余校验crc实现方法、装置及网络设备
WO2014015516A1 (en) Method and apparatus for performing pipelined operations on parallel input data with feedback
WO2019214265A1 (zh) 计算循环冗余校验crc编码的方法及装置
CN105790887A (zh) 用于为分组生成并行crc值的方法和设备
El-Medany FPGA implementation of CRC with error correction
US8312363B2 (en) Residue generation
El-Medany Reconfigurable CRC IP core design on xilinx spartan 3AN FPGA
Lie et al. Design of HDLC controller based on Xilinx FPGA
CN109217982A (zh) 传输数据的方法、装置、发送设备和接收设备
CN116861493B (zh) 一种校验码生成方法、处理器及电子设备
Juan et al. Using DSP Algorithms for CRC in a CAN Controller

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
TR01 Transfer of patent right

Effective date of registration: 20211126

Address after: 215010 room 704, building 5, No. 556, Changjiang Road, high tech Zone, Suzhou, Jiangsu

Patentee after: SUZHOU YUDESHUI ELECTRICAL TECHNOLOGY Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20221226

Address after: No. 8, Xingbo 7th Road, Boxing Economic Development Zone, Boxing County, Binzhou City, Shandong Province, 256599

Patentee after: Shandong Rongzhi Industry Guidance Fund Co.,Ltd.

Address before: 215010 room 704, building 5, No. 556, Changjiang Road, high tech Zone, Suzhou, Jiangsu

Patentee before: SUZHOU YUDESHUI ELECTRICAL TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230908

Address after: No. 57 Maxing Road, Changping District, Beijing 102200

Patentee after: CHINA ORDNANCE EQUIPMENT GROUP ORDNANCE EQUIPMENT Research Institute

Address before: No. 8, Xingbo 7th Road, Boxing Economic Development Zone, Boxing County, Binzhou City, Shandong Province, 256599

Patentee before: Shandong Rongzhi Industry Guidance Fund Co.,Ltd.

TR01 Transfer of patent right