CN102946297A - 一种用于数据传输差错控制的嵌套crc码生成方法及装置 - Google Patents

一种用于数据传输差错控制的嵌套crc码生成方法及装置 Download PDF

Info

Publication number
CN102946297A
CN102946297A CN2012104466054A CN201210446605A CN102946297A CN 102946297 A CN102946297 A CN 102946297A CN 2012104466054 A CN2012104466054 A CN 2012104466054A CN 201210446605 A CN201210446605 A CN 201210446605A CN 102946297 A CN102946297 A CN 102946297A
Authority
CN
China
Prior art keywords
data
crc
channel
calculated
passage
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
CN2012104466054A
Other languages
English (en)
Other versions
CN102946297B (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.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
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 Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201210446605.4A priority Critical patent/CN102946297B/zh
Priority to US14/117,680 priority patent/US9143276B2/en
Priority to PCT/CN2012/085163 priority patent/WO2014071658A1/zh
Publication of CN102946297A publication Critical patent/CN102946297A/zh
Application granted granted Critical
Publication of CN102946297B publication Critical patent/CN102946297B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

本发明公开了一种用于数据传输差错控制的嵌套CRC码生成方法,包括:对待计算数据进行分段,根据数据类型为各数据段分配所需CRC码计算通道,各计算通道进行CRC码计算,对计算得到的各CRC子码进行排序。根据实际需要,排序后的CRC子码可直接送入最终的CRC码计算通道,也可作为新的待计算数据,多次重复上述CRC子码计算再送入最终的CRC码计算通道生成嵌套CRC码。本发明还公开了一种嵌套CRC码生成装置,包括数据分段模块、计算通道选择模块、多通道CRC码计算模块、数据排序模块、寄存器、计数器、数据分配器、单通道CRC码计算模块。本发明的装置计算速度快,灵活性好,并且采用本发明的方法,因此所需存储容量小、纠错能力强,适用的范围广。

Description

一种用于数据传输差错控制的嵌套CRC码生成方法及装置
技术领域
本发明属于通信及计算机数据传输差错控制技术领域,更具体地,涉及一种用于数据传输差错控制的嵌套CRC码生成方法及装置。
背景技术
在各种各样的数据通信中,一般都是将数据分组后进行传输,在分组数据后附加数据帧校验序列(Frame Check Sequence,简称FCS)进行差错控制,以保证传输的正确性。在帧校验序列的实现中,循环冗余校验码(Cyclic Redundancy Code,简称CRC)以其高效率、高性能获得了广泛应用,是目前数据传输过程中普遍采用的一种提高数据通信可靠性的办法。
数据发送过程中,发送端将需要传送的数据进行CRC校验码计算,并将校验码附在传送数据后一起发送。接收端需要用同样的计算方法对接收到的数据进行校验码计算,然后将计算得到的CRC码与接收到的CRC码进行比较,如果一致则说明数据传送无误,反之数据传送有差错。如果数据传送有误,可以采用各种自动重发请求(Automatic Repeat-request,简称ARQ)技术让发送端重新传送该数据。
在现有的技术中,CRC编码的计算可以由软件和硬件完成。软件和硬件均分为串行与并行两种方式。在实时高速数据通信中,为了达到实时高速的要求,多采用并行CRC编码计算来提高运算速度。目前通用的并行计算主要有两种,一种是通过异或逻辑和余数缓存器及相关控制电路组成,可采用可编程逻辑器件(programmable logic device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等器件实现。另一种是通过查找余数表实现,该方法可以通过预先计算好余数表,并储存余数表,由软、硬件查找余数表来实现并行计算。在第一种实现方式中,随着并行计算的位数增加,所需要的逻辑资源也大量增加,而且随着级联的逻辑门越来越多,会导致寄存器之间的延时不断增加,成为提升计算速度的瓶颈。在第二种并行计算方法中,对于R位的CRC并行计算,需要保存的余数表容量为(2R·R)bit,因此,随着并行计算位数R的增加,存储的容量也会呈指数上升,成为提升计算速度的瓶颈。
在并行计算的基础之上,为了进一步提升CRC编码计算的速度,可以通过对数据块进行预先分段,利用多个并行CRC计算通道对各数据块同时进行计算,从而进一步提升CRC计算速度。
公布号为CN1431594A的中国发明专利申请公开了一种多通道多位并行计算CRC码的方法。该方法直接将整个待计算CRC码数据按每个长度为Ls位分割成多个数据块,最后一个通道的数据长度为LF,并将各数据块按顺序依次放入N个通道,由该N个通道同时对各自通道中的数据块进行CRC计算,得到N个通道中数据块的CRC子码;再通过构建除法余数变换表,对前N-1个通道的CRC子码进行除法余数变换查表(最后一个通道不需要进行余数变换),得到变换后的CRC子码;最后对变换后的CRC子码逐一进行异或计算后,得到整个待计算数据CRC码。但是,该方法需要对N-1个通道计算的CRC子码依次进行余数转后才能得到各通道需要的CRC计算码,因而存在以下缺点:
1)按照该专利的说明,前N-1个通道中计算得到的CRC子码,需要再通过构建除法余数变换表,对N个通道的CRC子码进行除法余数变换查表,才能得到需要的CRC子码。其中第i(i为小于N的正整数)个通道的余数转换表中的表项,是通过对典型数据余数表中每一个表项进行[(N-i)·Q+P]次连续查表得到的,其中Ls为所计算的CRC码位数R的Q倍,最后一个通道的数据长度LF为计算CRC位数R的P倍。因此,随着待计算数据的长度变化,会导致N、P两个变量发生变化,单个通道对应的余数表则随着这两个参数而发生变化,从而无法为每个通道分配固定的余数变换表。
2)按照该专利的说明,需要为前N-1个通道的每一个通道分配一个余数转换表,这使得计算器需要的存储容量大大增加。如建立一个N通道的运算器,余数转换表需要的存储容量为[(N-1)·2R·R]bit。因此,随着所计算CRC码位数R的增加,整个计算器需要分配给余数转换表的存储容量将急剧上升。例如在32位CRC计算中,单个通道需要的余数转换表的存储容量为16GB的容量。
发明内容
针对现有技术的缺陷,本发明的目的在于提供一种用于数据传输差错控制的嵌套CRC码生成方法,旨在解决现有多通道多位并行CRC码生成方法中存储容量耗费大、通用性较差的问题,并且嵌套CRC码的纠错能力优于传统的CRC码。
为实现上述目的,本发明提供了一种用于数据传输差错控制的嵌套CRC码生成方法,包括以下步骤:
(1)数据分割器对待计算数据进行分段,具体包括以下子步骤:
(1-1)将数据分割器中的数据初始化为0,并根据计算通道的数量N确定数据分割器的最大分段数为N;
(1-2)为整个数据分割器生成N+1个指针(P0,P1,…,Pi,…,PN)和N个指针(p1,p2,…,pi,…,pN),其中i为小于等于N的正整数,(P0,P0,…,Pi,…,PN)将整个数据分割器分成N个长为Ls的数据段,按照N个数据段的顺序,为每个数据段分配一个指针分别为(p1,p2,…,pi,…,pN),其中Ls为任意正整数;
(1-3)为指针(P0,P1,…Pi,…,PN)分配固定值,其中Pi=Pi-1+Ls,P0的值可以取任意值,整个计算过程中,Pi指针的值固定不变;
(1-4)为N个数据区域的指针(p1,p2,…,pi,…,pN)分配初始值,并令(p1,p2,…,pi,…,pN)指针的初始值分别与(P0,P1,…,Pi-1,…,PN-1)相等;
(1-5)将待计算数据填充至数据分割器中,根据数据的填充情况,改变(p1,p2,…,pi,…,pN)指针的值;
(1-6)数据分割器将待计算数据分为m段,并将m的值传递给通道选择器和反向通道选择器;
(1-7)利用(p1,p2,p3…pm)的值,以及计算通道的并行计算位数W,在每一个时钟周期,向m个计算通道分别传送W位数据,并将(p1,p2,p3…pm)的值均减去W;
(1-8)判断(p1,p2,p3…pm)是否与(P0,P1,P2…Pm-1)的值相等,若相等,则进入步骤(2),否则返回步骤(1-7);
(2)为分割后的各待计算数据段分配所需的CRC码计算通道,具体包括以下子步骤:
(2-1)针对不同类型数据的Q次嵌套CRC码的生成,为通道选择器生成一张通道选择表用于在不同类型数据的各次嵌套计算中,为数据输入通道分配相应的计算通道,其中Q为正整数;
(2-2)利用数据分割器传递的数据段总数m,通道选择器选通用于连接数据分割器的m个序号为(1,2,3,…,m)的输出与通道选择器的开关;
(2-3)根据开关选择表,将选通的m个数据输入分别连接至相应的计算通道之上;
(3)各计算通道对各待计算数据段进行CRC子码计算,具体包括以下子步骤:
(3-1)为N个计算通道分别分配相应的生成多项式为(g1(x),g2(x),…,gi(x),…,gN(x)),其中i为1到N之间的任意值,各通道之间可以采用同样的生成多项式;
(3-2)根据相应的生成多项式,利用逻辑电路或者查找余数表的方法来实现W位并行计算的各计算通道;
(3-3)根据各计算通道所采用的生成多项式,为各通道设置初始值,通常可以为各计算通道赋初始值为全零或者全一;
(3-4)对各通道的输入数据完成CRC子码计算,得到m个CRC子码;
(4)对各通道计算所得到的CRC子码进行排序,具体包括以下子步骤:
(4-1)反向通道选择器与通道选择器共用一张通道选择表;
(4-2)依据数据分割器传递的待计算数据的分段总数m,反向通道选择器选通序号为(1,2,3,…,m)的CRC子码暂存器与反向通道选择器的连接开关。
(4-3)根据开关选择表,将选通的m个数据输出分别连接至相应的计算通道的输出之上;
(4-4)各计算通道按照反向通道选择器的选择结果,将各计算通道计算所得的CRC子码存入相应的CRC子码暂存器,得到一串新的数据为(CRC1,CRC2,…,CRCi,…,CRCm),其中i为1到m之间的任意值,CRCi对应第i个数据段计算所得到的CRC子码;
(5)判断是否需要再次进行多通道计算,如果需要,则将步骤(4)得到的CRC子码作为新的待计算数据,返回步骤(1);如果不需要,则进入步骤(6),具体包括以下子步骤:
(5-1)将CRC码的嵌套次数Q的值减去1;
(5-2)判断Q的值是否为0,若Q的值为0,则进入步骤(6);若Q的值不为零,则以(4)步骤中排序好的CRC子码数据作为新的待计算数据,并返回步骤(1)进行计算;
(6)第N+1个计算通道计算出最终的Q次嵌套CRC码,具体包括以下子步骤:
(6-1)为第N+1个CRC计算通道分配生成多项式gN+1(x);
(6-2)根据生成多项式,利用逻辑电路或者查找余数表的方法来实现W位并行计算的计算通道;
(6-3)为该计算通道设置初始值,通常可以为该计算通道赋初始值为全零或者全一;
(6-4)对多通道第Q次计算并经过排序所得到的CRC子码数据进行最后一次CRC码计算,得到最终的Q次嵌套CRC码。
步骤(1-5)中,(p1,p2,…,pi,…,pN)的赋值情况为:
a)若第i个数据区域中填充了长度为Ls的待计算数据,则将pi的值赋为Pi
b)若第i个数据区域未填充数据段,则保持pi的值不变;
c)对于第m个填充区域,由于待计算数据并不保证以Ls对齐,为了保证计算的同步性,若第m个数据区域的填充长度Lf大于0且小于Ls,则将pm的值赋为Pm,即将长度为Lf数据段的长度通过补零扩展至Ls,其中m为待计算数据的长度除以Ls后上取整得到的值,Lf为待计算数据的长度除以Ls后得到的余数。
步骤(2-1)具体包括以下子步骤:
(2-1-1)对于N个计算通道和数据分割器的N个数据输出通道,分别对其进行顺序编号(1,2,3,…i,…,N),其中i为1到N之间的任意值;
(2-1-2)为通道选择表的每一个表项分配一个长为N·「log2N]位的矢量S(x),矢量多项式为:
Figure BDA00002383877200061
其中mi=1或0(其中i=0,1,2,…,
Figure BDA00002383877200062
(2-1-3)将S(x)分成N段长为
Figure BDA00002383877200063
的矢量(s1(x),s2(x),…,si(x),…,sN(x)),其中i为1到N之间的任意值,(s1(x),s2(x),…,si(x),…,sN(x))对应数据分割器的N个数据输出(1,2,3,…,i,…,N),其中si(x)为分配给第i个数据输入的计算通道的序号;
(2-1-4)固定待计算数据的数据类型,针对每一次嵌套CRC码的生成,生成Q个相应的S(x),作为一行表项保存在开关选择表中;
(2-1-5)针对待计算数据的每一种数据类型,重复步骤(2-1-4),以构成完整的通道选择表。
本发明的另一目的在于提供一种用于数据传输差错控制的嵌套CRC码生成装置,该装置一方面采用多通道多位并行计算CRC码,另一方面可以自动根据待计算数据的类型,为待计算数据选择不同的计算通道组合,因此该装置具有计算速度快,灵活性高等特点。
为实现上述目的,本发明提供了一种用于数据传输差错控制的嵌套CRC码生成装置,包括:数据分段模块、计算通道选择模块、多通道CRC码计算模块、数据排序模块、寄存器、计数器、数据分配器、单通道CRC码计算模块。数据分段模块用于将待计算数据按照一定的数据长度自动分段并通过补零的方法使各数据段长度对齐,并在时钟的控制下,将各数据段按照一定的位数依次传送出去;计算通道选择模块用于将各输入数据通道连接至所需要的计算通道之上;多通道CRC码计算模块用于同时对多个数据段计算CRC码;数据排序模块用于将各输入数据通道连接至所需要的寄存器之上;寄存器用于存储CRC码;计数器用于记录CRC码的计算次数,并控制数据分配器的数据输出;数据分配器用于对输入数据进行分配,数据的分配受到计数器的控制;单通道CRC码计算模块用于计算出最终的CRC码。
通过本发明所构思的以上技术方案,与现有技术相比,本发明具有以下的有益效果:
1、通用性好:在本发明中,由于采用了步骤(1),因此对于长度小于等于N·Ls的任意长度的待计算数据都可以通过本发明来生成嵌套CRC码。
2、使用的存储资源少:在本发明中,由于采用了步骤(7),各计算通道计算得到的CRC子码再一次通过CRC计算通道计算即可得到嵌套CRC码,因此无需余数转换表,可以节省大量的存储资源。
3、处理速度快:在本发明中,由于采用了步骤(3)和步骤(6),因此能够实现对待计算数据的各数据块同时进行多位并行CRC码计算,从而在传统的并行CRC码计算的基础上,进一步加快了处理的速度,可以适用于一些实时高速的数据传输网络,例如10GB以太网。
4、用途广泛:在本发明中,由于采用了步骤(2)和步骤(4),因此对于不同类型的待计算数据都可以通过本发明来生成嵌套CRC码,比较适合于一些融合型网络的应用,例如架构在10GB以太网上的FCoE网络。
5、差错控制能力强:在本发明中,由于采用了步骤(3)、(5)、(6)和步骤(7),因此在计算过程中,可以为待计算数据的各数据段分配不同的CRC码计算生成多项式,同时根据嵌套CRC码的差错控制原理,单个R位的CRC码检测的数据量减小,因此嵌套CRC码的差错控制能力优于传统的CRC码。
附图说明
图1是本发明嵌套CRC码生成方法的流程图。
图2是本发明嵌套CRC码生成方法的原理框图。
图3是本发明中数据分割器原理框图。
图4是本发明中通道选择器的原理框图。
图5是本发明中反向通道选择器的原理框图。
图6是本发明嵌套CRC码生成装置的示意框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
以下首先就本发明的技术术语进行解释和说明:
嵌套CRC码:将传统的CRC码计算器计算得到的CRC码作为新的待计算数据,并利用传统的CRC码计算器对其进行CRC码计算,得到的CRC码即为单层嵌套CRC码。若将得到的CRC码依次继续进行Q次CRC码计算后,最终得到的CRC码即为Q次嵌套CRC码,其中Q为正整数。
计算通道:本发明中所提及的计算通道均为传统的W位并行CRC码计算器,其中W为各计算器单个时钟周期所能处理的数据位数。各计算通道之间相互独立,不存在关联,均能够独立地对数据进行传统的CRC码计算。本发明一共采用N+1个计算通道,其中N为任意正整数。
生成多项式g(x):生成多项式g(x)用于CRC码计算中,是数据接收方和发送方约定好的一个二进制数,在数据传送过程中,这个二进制数保持不变。g(x)的位数决定了CRC码的位数R。
如图1和图2所示,本发明用于差错控制的高速嵌套CRC码生成方法包括以下步骤:
(1)数据分割器对待计算数据进行分段;具体而言,本步骤包括以下子步骤:
(1-1)将数据分割器中的数据初始化为0,并根据计算通道的数量N确定数据分割器的最大分段数为N;
(1-2)参照图3,为整个数据分割器生成N+1个指针(P0,P1,…,Pi,…,PN)和N个指针(p1,p2,…,pi,…,pN),其中i为小于等于N的正整数,(P0,P1,…,Pi,…,PN)将整个数据分割器分成N个长为Ls的数据段,按照N个数据段的顺序,为每个数据段分配一个指针分别为(p1,p2,…,pi,…,pN),其中Ls为任意正整数;
(1-3)为指针(P0,P1,…Pi,…,PN)分配固定值,其中Pi=Pi-1+Ls,P0的值可以取任意值,整个计算过程中,Pi指针的值固定不变;
(1-4)为N个数据区域的指针(p1,p2,…,pi,…,pN)分配初始值,并令(p1,p2,…,pi,…,pN)指针的初始值分别与(P0,P1,…,Pi-1,…,PN-1)相等;
(1-5)将待计算数据填充至数据分割器中,根据数据的填充情况,改变(p1,p2,…,pi,…,pN)指针的值;
a)若第i个数据区域中填充了长度为Ls的待计算数据,则将pi的值赋为Pi
b)若第i个数据区域未填充数据段,则保持pi的值不变;
c)对于第m个填充区域(其中m为待计算数据的长度除以Ls后上取整得到的值),由于待计算数据并不保证以Ls对齐,为了保证计算的同步性,若第m个数据区域的填充长度Lf(其中Lf为待计算数据的长度除以Ls后得到的余数)大于0且小于Ls,则将pm的值赋为Pm,即将长度为Lf数据段的长度通过补零扩展至Ls,从而解决待计算数据长度不对齐的问题。
(1-6)数据分割器将待计算数据分为m段,并将m的值传递给通道选择器和反向通道选择器;
(1-7)利用(p1,p2,p3…pm)的值,以及计算通道的并行计算位数W,在每一个时钟周期,向m个计算通道分别传送W位数据,并将(p1,p2,p3…pm)的值均减去W;
(1-8)判断(p1,p2,p3…pm)是否与(P0,P1,P2…Pm-1)的值相等,若相等,则进入步骤(2),否则返回步骤(1-7);
举例而言,在本步骤中,设待计算数据的长度为[(m-1)·Ls+Lf],数据分割器的指针(P0,P1,…,Pi-1,…,PN-1)值预先分配好,将待计算数据放入数据分割器后,数据分割器自动将待计算数据分割成m段,序号为(1,2,3,…,m),并为m段数据各分配一个指针(p1,p2,p3,…,pm),(p1,p2,p3,…,pm)的初始值设置为(P0,P1,P2,P3,…,Pm-1)。待计算数据填充后,(p1,p2,p3,…,pm)的值被赋值为(P1,P2,P3,…,Pm),其中第m个数据块的长度为Lf(1≤Lf≤Ls),数据分割器初始值为0,将pm的值由初始值Pm-1改变为Pm,等效于pm-1的值由Pm-1+Lf扩展为Pm,从而实现第m个数据块的长度通过补零扩展为Ls。在计算过程中,通过(p1,p2,p3,…,pm)来将待计算数据送入各计算通道,计算通道为W位并行计算,数据分割器每次向计算通道送入W位数据,并将(p1,p2,p3,…,pm)的值分别减去W,若(p1,p2,p3,…,pm)与(P0,P1,P2,…,Pm-1)值相等时,则指示数据分割其中的数据计算完成。
(2)为分割后的各待计算数据段分配所需的计算通道,具体包括以下子步骤:
(2-1)针对不同类型数据的Q次嵌套CRC码的生成(其中Q为正整数),为通道选择器生成一张通道选择表用于在不同类型数据的各次嵌套计算中,为数据输入通道分配相应的计算通道,具体包括以下子步骤:
(2-1-1)对于N个计算通道和数据分割器的N个数据输出通道,分别对其进行顺序编号(1,2,3,…,i,…,N),其中i为1到N之间的任意值;
(2-1-2)为通道选择表的每一个表项分配一个长为
Figure BDA00002383877200111
位的矢量S(x),矢量多项式为:
Figure BDA00002383877200112
其中mi=1或0(其中i=0,1,2,…,
Figure BDA00002383877200113
(2-1-3)将S(x)分成N段长为的矢量(s1(x),s2(x),…,si(x),…,sN(x)),其中i为1到N之间的任意值,(s1(x),s2(x),…,si(x),…,sN(x))对应数据分割器的N个数据输出(1,2,3,…,i,…,N),其中si(x)为分配给第i个数据输入的计算通道的序号;
(2-1-4)固定待计算数据的数据类型,针对每一次嵌套CRC码的生成,生成Q个相应的S(x),作为一行表项保存在开关选择表中;
(2-1-5)针对待计算数据的每一种数据类型,重复步骤(2-1-4),以构成完整的通道选择表。
举例而言,在本子步骤中,假设待计算数据的类型一共有F种(其中,F的值为正整数),生成的通道选择表如表1所示:
表1不同数据类型的计算通道选择表
Figure BDA00002383877200121
(2-2)通过数据分割器传递的数据段总数m,通道选择器选通用于连接数据分割器的m个输出(1,2,3,…,m)与通道选择器的开关,如图4所示;
(2-3)根据开关选择表,将选通的m个数据输入分别连接至相应的计算通道之上。
举例而言,在本步骤中,当待计算的数据类型为类型1,待计算数据被数据分割器分成m个数据块,则通道选择器将连接前m个数据输入通道与通道选择器之间的开关选通。若待计算数据是第一次计算,则利用通道选择表中的
Figure BDA00002383877200122
来完成通道分配,其中其中i为1到N之间的任意值,
Figure BDA00002383877200124
的长度为位。由于输入数据段总数为m,因此只需通过
Figure BDA00002383877200126
的值(在该情况下,i为1到m之间的任意值)来完成m个计算通道的分配。设
Figure BDA00002383877200127
对应的十进制数为k(其中,0<k≤N),则将第i个数据输入通道连接至第k个计算通道之上,使第i个数据块由第k个计算通道完成CRC码计算。
(3)各计算通道对各待计算数据段进行CRC子码计算,具体包括以下子步骤:
(3-1)为N个计算通道分别分配相应的生成多项式为(g1(x),g2(x),…,gi(x),…,gN(x)),其中i为1到N之间的任意值,各通道之间可以采用同样的生成多项式;
(3-2)根据相应的生成多项式,利用逻辑电路或者查找余数表的方法来实现W位并行计算的各计算通道;
(3-3)根据各计算通道所采用的生成多项式,为各通道设置初始值,通常可以为各计算通道赋初始值为全零或者全一;
(3-4)对各通道的输入数据完成CRC子码计算,得到m个CRC子码;
(4)对各通道计算所得到的CRC子码进行排序,具体包括以下子步骤:
(4-1)反向通道选择器与通道选择器共用一张通道选择表;
(4-2)依据数据分割器传递的待计算数据的分段总数m,反向通道选择器选通序号为(1,2,3,…,m)的CRC子码暂存器与反向通道选择器的连接开关。如图5所示;
(4-3)根据开关选择表,将选通的m个数据输出分别连接至相应的计算通道的输出之上;
(4-4)各计算通道按照反向通道选择器的选择结果,将各计算通道计算所得的CRC子码存入相应的CRC子码暂存器,得到一串新的数据为(CRC1,CRC2,…,CRCi,…,CRCm),其中i为1到m之间的任意值,CRCi对应第i个数据段计算所得到的CRC子码;
举例而言,在本步骤中,当待计算的数据类型为流量1,待计算数据被数据分割器分成m个数据块,则反向通道选择器将连接前m个CRC子码暂存器与反向通道选择器之间的连接开关选通。若待计算数据是第一次计算,则利用通道选择表中
Figure BDA00002383877200131
来为m个CRC子码暂存器分配计算通道,其中其中i为1到N之间的任意值,
Figure BDA00002383877200142
的长度为
Figure BDA00002383877200143
位。由于输入数据段总数为m,因此只需通过
Figure BDA00002383877200144
的值(在该情况下,i为1到m之间的任意值)来完成m个CRC子码的排序。设
Figure BDA00002383877200145
对应的十进制数为k(其中,0<k≤N),则将第k个计算通道的输出连接至第i个CRC子码暂存器之上,从而使第i个数据块经过第k个计算通道计算后得到的结果保存在第i个CRC子码暂存器中,从而使CRC子码的排列顺序与原数据块的顺序一致。
(5)判断是否需要再次进行多通道计算,如果需要,则将步骤(4)得到的CRC子码作为新的待计算数据,返回步骤(1);如果不需要,则进入步骤(6),具体包括以下子步骤:
(5-1)将CRC码的嵌套次数Q的值减去1;
(5-2)判断Q的值是否为0,若Q的值为0,则进入步骤(6);若Q的值不为零,则以(4)步骤中排序好的CRC子码数据作为新的待计算数据,并返回步骤(1)进行计算;
(6)第N+1个计算通道计算出最终的Q次嵌套CRC码,具体包括以下子步骤:
(6-1)为第N+1个CRC计算通道分配生成多项式gN+1(x);
(6-2)根据生成多项式,利用逻辑电路或者查找余数表的方法来实现W位并行计算的计算通道;
(6-3)为该计算通道设置初始值,通常可以为该计算通道赋初始值为全零或者全一;
(6-4)对多通道第Q次计算并经过排序所得到的CRC子码数据进行最后一次CRC码计算,得到最终的Q次嵌套CRC码。
本发明中,由以上步骤计算得到的嵌套CRC码来实现数据传送过程中的差错控制,嵌套CRC码在不改变传统CRC码位数的情况下实现差错控制的原理如下:
(1)设待计算CRC码的数据比特序列为{mk-1,mk-2,mk-3,…,mi,…,m2,m1,m0},其多项式为
m(x)=mk-1xk-1+mk-2xk-2+…+mixi+…+m2x2+m1x1+m0x0    ①
其中mi=1或0(其中i=0,1,2,…,k-1);
(2)将待计算数据分成m-1个长度为Ls位的数据段(Dm,Dm-2,…D2)和一个长度为Lf位(1<Lf≤Ls)的数据段D1。m段数据的多项式为:
D m ( x ) = m k - 1 x L s - 1 + m k - 2 x L s - 2 + · · · m i x i + · · · + m k - L s + 2 x 2 + m k - L s + 1 x 1 + m k - L s x 0 D m - 1 ( x ) = m k - L s - 1 x L s - 1 + m k - L s - 2 x L s - 2 + · · · m i x i + · · · + m k - 2 L s + 2 x 2 + m k - 2 L s + 1 x 1 + m k - 2 L s x 0 · · · D 2 ( x ) = m k - ( m - 2 ) L s - 1 x L s - 1 + m k - ( m - 2 ) L s - 2 x L s - 2 + · · · m i x i + · · · + m k - ( m - 1 ) L s + 1 x 1 + m k - ( m - 1 ) L s x 0 D 1 ( x ) = m k - ( m - 1 ) L s - 1 x L f - 1 + m k - ( m - 1 ) L s - 2 x L f - 1 + · · · m i x i + · · · + m 2 x 2 + m 1 x 1 + m 0 x 0
其中mi=1或0(其中i=0,1,2,…,k-1);
(3)对最后一个长度为Lf数据段D1进行补零,将其长度扩展为Ls,得到扩展以后的m段数据的多项式为:
D m ( x ) = m k - 1 x L s - 1 + m k - 2 x L s - 2 + · · · m i x i + · · · + m k - L s + 2 x 2 + m k - L s + 1 x 1 + m k - L s x 0 D m - 1 ( x ) = m k - L s - 1 x L s - 1 + m k - L s - 2 x L s - 2 + · · · m i x i + · · · + m k - 2 L s + 2 x 2 + m k - 2 L s + 1 x 1 + m k - 2 L s x 0 · · · D 2 ( x ) = m k - ( m - 2 ) L s - 1 x L s - 1 + m k - ( m - 2 ) L s - 2 x L s - 2 + · · · m i x i + · · · + m k - ( m - 1 ) L s + 1 x 1 + m k - ( m - 1 ) L s x 0 D 1 ( x ) = m k - ( m - 1 ) L s - 1 x L s - 1 + m k - ( m - 1 ) L s - 2 x L s - 2 + · · · m i x i + · · · + m 1 x L s - L f + 1 + m 0 x L s - L f
其中mi=1或0(其中i=0,1,2,…,k-1);
(4)对于每一个数据段,数据位数均为Ls,传统CRC校验码的位数为R,两者组成的码字一般记为(Ls+R,Ls),每个数据段采用独立的生成多项式,根据CRC原理有:
x R D m ( x ) = Q m ( x ) g m ( x ) + r m ( x ) x R D m - 1 ( x ) = Q m - 1 ( x ) g m - 1 ( x ) + r m - 1 ( x ) . . . x R D i = Q i ( x ) g i ( x ) + r i ( x ) . . . x R D 2 ( x ) = Q 2 ( x ) g 2 ( x ) + r 2 ( x ) x R D 1 ( x ) = Q 1 ( x ) g 1 ( x ) + r 1 ( x )
其中i为1到m之间的任意值,Qi(x)为xRDi(x)除以gi(x)所得的商多项式,ri(x)为余数多项式,各数据段可采用同样的生成多项式。
(5)m个余数多项式为(r1(x),r2(x),…,rm-1(x),rm(x)),根据CRC原理,利用这m个余数多项式,可以分别对待计算数据的各数据块实现差错控制,因此(r1(x),r2(x),…,rm-1(x),rm(x))可以对整个待计算数据实现差错控制。
(6)(r1(x),r2(x),…,rm-1(x),rm(x))的位宽是原CRC码位数的m倍,为了提高信道的编码率,并保持传统数据帧FCS域的长度不改变,本发明通过采用嵌套CRC码来实现差错控制,即将(r1(x),r2(x),…,rm-1(x),rm(x))作为新的待计算数据,进行一次CRC码嵌套计算。令CRC嵌套层数为Q。
(7)当(r1(x),r2(x),…,rm-1(x),rm(x))的长度不是很大的时候,一般情况下,令Q=1,则由(r1(x),r2(x),…,rm-1(x),rm(x))组成数据的多项式为:
m(x)1=mmR-1xmR-1+mmR-2xmR-2+…+mixi+…+m2x2+m1x1+m0x0    ⑤
其中mi=1或0(其中i=0,1,2,…,mR-1,其中m为待计算数据的分段数);
(8)新的数据长度为mR,传统CRC校验码位数为R,两者组成的码字为((m+1)R,mR),该组数据采用的生成多项式为gN+1(x),根据CRC原理有:
xRm(x)1=Q(x)1gN+1(x)+r(x)1    ⑥
其中Q(x)1为xRm(x)1除以gN+1(x)所得的商多项式,r(x)1为余数多项式。
(9)在数据的传送过程中,可以由r(x)1对数据(r1(x),r2(x),…,Lm-1(x),rm(x))实现进行差错控制,而(r1(x),r2(x),…,rm-1(x),rm(x))可以对原待计算数据进行差错控制,因此通过r(x)1可以对原待计算数据实现差错控制。在数据发送时,可以将r(x)1附在数据尾进行发送,在接收端通过使用本发明的嵌套CRC码生成方法对接收数据实施同样的计算过程,从而利用接收到的嵌套CRC码r(x)1实现差错控制。
(10)若多通道计算得到的(r1(x),r2(x),…,rm-1(x),rm(x))长度较长,为了解决第N+1个计算通道计算CRC码计算通道使用时间过多的问题,可以在此基础上,使用多次嵌套,嵌套次数为Q,即将第i次多通道计算并排序以后的CRC子码重新作为待计算数据送回多通道进行CRC计算,多通道计算得到第i+1组CRC子码(其中,i为1到Q-1之间的任意值),通过Q次多通道计算后,可以得到第Q组CRC子码,将排序好的第Q组CRC子码送入第N+1个CRC计算通道,最后可计算出r(x)Q
(11)在数据传送过程中,第i+1次计算得到的CRC子码可以实现对第i次计算得到的CRC子码实现差错控制(其中,i为1到Q-1之间的任意值),由第N+1个通道对第Q次多通道计算得到的CRC子码进行最终的CRC计算得到r(x)Q,r(x)Q可以对第Q次多通道计算得到的CRC子码实现差错控制,并且第一次多通道计算得到的CRC子码可以对待计算数据实现差错控制,因此可以通过Q次嵌套计算所得到的嵌套CRC码r(x)Q实现对原数据的差错控制。在数据发送时,可以将r(x)Q附在数据尾进行发送,在接收端通过使用本发明的嵌套CRC码生成方法对接收数据实施同样的计算过程,从而利用接收到的嵌套CRC码r(x)Q来实现差错控制。
如图6所示,本发明一种用于数据传输差错控制的嵌套CRC码生成装置包括:数据分段模块1、计算通道选择模块2、多通道CRC码计算模块3、数据排序模块4、寄存器5、计数器6、数据分配器7、单通道CRC码计算模块8。
数据分段模块1用于将待计算数据按照一定的数据长度自动分段并通过补零的方法使各数据段长度对齐,并在时钟的控制下,将各数据段按照一定的位数依次传送出去。
计算通道选择模块2用于将各输入数据通道连接至所需要的计算通道之上。
多通道CRC码计算模块3用于同时对多个数据段计算CRC码。
数据排序模块4用于将各输入数据通道连接至所需要的寄存器之上。
寄存器5用于存储CRC码。
计数器6用于记录CRC码的计算次数,并控制数据分配器7的数据输出。
数据分配器7用于对输入数据进行分配,数据的分配受到计数器6的控制。
单通道CRC码计算模块8用于计算最终的CRC码。
应用实例
以下举例说明整个嵌套CRC码的生成方法。假设待计算数据为[0,1,2,…,255;0,1,2,…,255;0,1,2,…,255;…;0,1,2,…,63]共832字节,左边为高字节,右边为低字节。待计算数据的类型记为类型T,采用单层32位嵌套CRC码。待计算数据的分段长度Ls为128个字节,待计算数据的各数据段以及最终的CRC计算均采用以下生成多项式:
g(x)=x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1
多通道中的各通道以及最终的CRC计算通道均由硬件逻辑电路实现32位的并行CRC码计算,N+1个通道均采用以上生成多项式来实现,各通道的初始值均为0xFFFFFFFF。按照以上假设,数据开关选择表中,对于T类数据,只有一层嵌套,分配的开关矢量也只有一个,N个计算通道采用的生成多项式均为g(x),因此令 S ( x ) 1 T = ( s 1 ( x ) 1 T , s 2 ( x ) 1 T · · · s N ( x ) 1 T ) = ( 1,2,3 , · · · , N ) .
具体计算过程为:数据分割器根据Ls将待计算数据分成长为(128,128,128,128,128,128,64)字节的七个数据块,对于长度为64字节的数据块,通过低位补64字节的0将长度扩展为128字节。通道选择器将连接数据分割器的前七个数据输出通道与通道选择器的开关选通,然后根据通道选择表中的
Figure BDA00002383877200191
将(1,2,3,…,7)个数据输入通道分别连接到第(1,2,3,…,7)个计算通道之上。七个数据通道通过指针(p1,p2,…,p7),将待计算数据依次送入各自对应的计算通道。各计算通道计算得到七个CRC子码分别是(0x2F18B043,0x4A68D5AC,0x2F18B043,0x4A68D5AC,0x2F18B043,0x4A68D5AC,0x4C54F7D8)。反向通道根据
Figure BDA00002383877200192
将计算的七个结果整理好顺序,在本例中,计算所的结果已经按顺序排好,按照
Figure BDA00002383877200193
排序后的情况与计算通道顺序一致。在本实施例中,T类数据采用单层嵌套,因此直接将(0x2F18B043,0x4A68D5AC,0x2F18B043,0x4A68D5AC,0x2F18B043,0x4A68D5AC,0x4C54F7D8)送入最后一个CRC码计算通道,得到计算结果为0x3EC09838。0x3EC09838即为待计算数据的单层嵌套CRC码。
在以上实例中,嵌套CRC码生成方法通过多通道多位并行计算实现,七个计算通道在单个时钟周期内可以处理32*7=224位待计算数据,对于七个通道计算的结果,通过七个时钟完成最终的CRC计算得到单层嵌套的CRC码,因此,对于长度为832个字节的待计算数据,单层嵌套下,本发明的计算方法只需32+7=39(其中,七个计算通道一共需要32个时钟,最终的CRC码计算通道需要7个时钟)个时钟即可计算完成,约是传统串行CRC计算器速度的170倍,约是传统32位并行CRC码计算器速度的7倍,因此本发明大大提升了计算的速度。数据传送过程中,单层嵌套CRC码只需要对32*7=224位上层CRC子码数据进行差错控制,同时,7个CRC子码分别对长度为128字节的数据块实现差错控制,相比于传统的CRC码,单个CRC码所控制的数据量降低,因此嵌套CRC码的纠错能力优于传统CRC码。同时,还可以通过改变七个数据块的CRC码计算生成多项式组合,进一步改进CRC码的纠错能力,并且使本发明能够支持多种数据类型的嵌套CRC码的生成,因此本发明的嵌套CRC码生成方法,可较好地应用于一些高速融合网络所需的数据差错控制,例如现今架构在10GB以太网上的FCoE网络。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (4)

1.一种用于数据传输差错控制的嵌套CRC码生成方法,其特征在于,包括以下步骤:
(1)数据分割器对待计算数据进行分段,具体包括以下子步骤:
(1-1)将数据分割器中的数据初始化为0,并根据计算通道的数量N确定数据分割器的最大分段数为N;
(1-2)为整个数据分割器生成N+1个指针(P0,P1,…,Pi,…,PN)和N个指针(p1,p2,…,pi,…,pN),其中i为小于等于N的正整数,(P0,P1,…,Pi,…,PN)将整个数据分割器分成N个长为Ls的数据段,按照N个数据段的顺序,为每个数据段分配一个指针分别为(p1,p2,…,pi,…,pN),其中Ls为任意正整数;
(1-3)为指针(P0,P1,…Pi,…,PN)分配固定值,其中Pi=Pi-1+Ls,P0的值可以取任意值,整个计算过程中,Pi指针的值固定不变;
(1-4)为N个数据区域的指针(p1,p2,…,pi,…,pN)分配初始值,并令(p1,p2,…,pi,…,pN)指针的初始值分别与(P0,P1,…,Pi-1,…,PN-1)相等;
(1-5)将待计算数据填充至数据分割器中,根据数据的填充情况,改变(p1,p2,…,pi,…,pN)指针的值;
(1-6)数据分割器将待计算数据分为m段,并将m的值传递给通道选择器和反向通道选择器;
(1-7)利用(p1,p2,p3…pm)的值,以及计算通道的并行计算位数W,在每一个时钟周期,向m个计算通道分别传送W位数据,并将(p1,p2,p3…pm)的值均减去W;
(1-8)判断(p1,p2,p3…pm)是否与(P0,P1,P2…Pm-1)的值相等,若相等,则进入步骤(2),否则返回步骤(1-7);
(2)为分割后的各待计算数据段分配所需的CRC码计算通道,具体包括以下子步骤:
(2-1)针对不同类型数据的Q次嵌套CRC码的生成,为通道选择器生成一张通道选择表用于在不同类型数据的各次嵌套计算中,为数据输入通道分配相应的计算通道,其中Q为正整数;
(2-2)利用数据分割器传递的数据段总数m,通道选择器选通用于连接数据分割器的m个序号为(1,2,3,…,m)的输出与通道选择器的开关;
(2-3)根据开关选择表,将选通的m个数据输入分别连接至相应的计算通道之上;
(3)各计算通道对各待计算数据段进行CRC子码计算,具体包括以下子步骤:
(3-1)为N个计算通道分别分配相应的生成多项式为(g1(x),g2(x),…,gi(x),…,gN(x)),其中i为1到N之间的任意值,各通道之间可以采用同样的生成多项式;
(3-2)根据相应的生成多项式,利用逻辑电路或者查找余数表的方法来实现W位并行计算的各计算通道;
(3-3)根据各计算通道所采用的生成多项式,为各通道设置初始值,通常可以为各计算通道赋初始值为全零或者全一;
(3-4)对各通道的输入数据完成CRC子码计算,得到m个CRC子码;
(4)对各通道计算所得到的CRC子码进行排序,具体包括以下子步骤:
(4-1)反向通道选择器与通道选择器共用一张通道选择表;
(4-2)依据数据分割器传递的待计算数据的分段总数m,反向通道选择器选通序号为(1,2,3,…,m)的CRC子码暂存器与反向通道选择器的连接开关。
(4-3)根据开关选择表,将选通的m个数据输出分别连接至相应的计算通道的输出之上;
(4-4)各计算通道按照反向通道选择器的选择结果,将各计算通道计算所得的CRC子码存入相应的CRC子码暂存器,得到一串新的数据为(CRC1,CRC2,…,CRCi,…,CRCm),其中i为1到m之间的任意值,CRCi对应第i个数据段计算所得到的CRC子码;
(5)判断是否需要再次进行多通道计算,如果需要,则将步骤(4)得到的CRC子码作为新的待计算数据,返回步骤(1);如果不需要,则进入步骤(6),具体包括以下子步骤:
(5-1)将CRC码的嵌套次数Q的值减去1;
(5-2)判断Q的值是否为0,若Q的值为0,则进入步骤(6);若Q的值不为零,则以(4)步骤中排序好的CRC子码数据作为新的待计算数据,并返回步骤(1);
(6)第N+1个计算通道计算出最终的Q次嵌套CRC码,具体包括以下子步骤:
(6-1)为第N+1个CRC计算通道分配生成多项式gN+1(x);
(6-2)根据生成多项式,利用逻辑电路或者查找余数表的方法来实现W位并行计算的计算通道;
(6-3)为该计算通道设置初始值,通常可以为该计算通道赋初始值为全零或者全一;
(6-4)对多计算通道第Q次计算并经过排序所得到的CRC子码数据进行最后一次CRC码计算,得到最终的Q次嵌套CRC码。
2.根据权利要求1所述的高速嵌套CRC码生成方法,其特征在于,步骤(1-5)中,(p1,p2,…,pi,…,pN)的赋值情况为:
a)若第i个数据区域中填充了长度为Ls的待计算数据,则将pi的值赋为Pi
b)若第i个数据区域未填充数据段,则保持pi的值不变;
c)对于第m个填充区域,由于待计算数据并不保证以Ls对齐,为了保证计算的同步性,若第m个数据区域的填充长度Lf大于0且小于Ls,则将pm的值赋为Pm,即将长度为Lf数据段的长度通过补零扩展至Ls,其中m为待计算数据的长度除以Ls后上取整得到的值,Lf为待计算数据的长度除以Ls后得到的余数。
3.根据权利要求1所述的高速嵌套CRC码生成方法,其特征在于,步骤(2-1)具体包括以下子步骤:
(2-1-1)对于N个计算通道和数据分割器的N个数据输出通道,分别对其进行顺序编号(1,2,3,…,i,…,N),其中i为1到N之间的任意值;
(2-1-2)为通道选择表的每一个表项分配一个长为
Figure FDA00002383877100041
位的矢量S(x),矢量多项式为:
Figure FDA00002383877100042
其中mi=1或0(其中i=0,1,2,…,
Figure FDA00002383877100043
);
(2-1-3)将S(x)分成N段长为
Figure FDA00002383877100044
的矢量(s1(x),s2(x),…,si(x),…,sN(x)),其中i为1到N之间的任意值,(s1(x),s2(x),…,si(x),…,sN(x))对应数据分割器的N个数据输出(1,2,3,…i,…,N),其中si(x)为分配给第i个数据输入的计算通道的序号;
(2-1-4)固定待计算数据的数据类型,针对每一次嵌套CRC码的生成,生成Q个相应的S(x),作为一行表项保存在开关选择表中;
(2-1-5)针对待计算数据的每一种数据类型,重复步骤(2-1-4),以构成完整的通道选择表。
4.一种用于数据传输差错控制的嵌套CRC码生成装置,包括数据分段模块、计算通道选择模块、多通道CRC码计算模块、数据排序模块、寄存器、计数器、数据分配器、单通道CRC码计算模块,其特征在于,
数据分段模块用于将待计算数据按照一定的数据长度自动分段并通过补零的方法使各数据段长度对齐,并在时钟的控制下,将各数据段按照一定的位数依次传送出去;
计算通道选择模块用于将各输入数据通道连接至所需要的计算通道之上;
多通道CRC码计算模块用于同时对多个数据段计算CRC码;
数据排序模块用于将各输入数据通道连接至所需要的寄存器之上;
寄存器用于存储CRC码;
计数器用于记录CRC码的计算次数,并控制数据分配器的数据输出;
数据分配器用于对输入数据进行分配,数据的分配受到计数器的控制;
单通道CRC码计算模块用于计算最终的CRC码。
CN201210446605.4A 2012-11-10 2012-11-10 一种用于数据传输差错控制的嵌套crc码生成方法及装置 Active CN102946297B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201210446605.4A CN102946297B (zh) 2012-11-10 2012-11-10 一种用于数据传输差错控制的嵌套crc码生成方法及装置
US14/117,680 US9143276B2 (en) 2012-11-10 2012-11-23 Nested CRC (cyclic redundancy check) code generation method and device for data transmission error control
PCT/CN2012/085163 WO2014071658A1 (zh) 2012-11-10 2012-11-23 一种用于数据传输差错控制的嵌套crc码生成方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210446605.4A CN102946297B (zh) 2012-11-10 2012-11-10 一种用于数据传输差错控制的嵌套crc码生成方法及装置

Publications (2)

Publication Number Publication Date
CN102946297A true CN102946297A (zh) 2013-02-27
CN102946297B CN102946297B (zh) 2015-06-17

Family

ID=47729209

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210446605.4A Active CN102946297B (zh) 2012-11-10 2012-11-10 一种用于数据传输差错控制的嵌套crc码生成方法及装置

Country Status (3)

Country Link
US (1) US9143276B2 (zh)
CN (1) CN102946297B (zh)
WO (1) WO2014071658A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103795502A (zh) * 2014-02-28 2014-05-14 杭州华三通信技术有限公司 一种数据帧校验码生成方法和装置
CN106354581A (zh) * 2016-08-22 2017-01-25 华为技术有限公司 一种循环冗余校验方法以及多核处理器
CN109274636A (zh) * 2017-07-18 2019-01-25 比亚迪股份有限公司 数据安全传输方法及其装置、系统、列车

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10171430B2 (en) * 2015-07-27 2019-01-01 Forrest L. Pierson Making a secure connection over insecure lines more secure
WO2018177427A1 (en) * 2017-04-01 2018-10-04 Qualcomm Incorporated Communication system and method having polar coding with two concatenated cyclic redundancy check codes
WO2018176478A1 (en) 2017-04-01 2018-10-04 Qualcomm Incorporated Communication system and method having polar coding with two concatenated cyclic redundancy check codes
KR102609758B1 (ko) 2018-03-27 2023-12-04 삼성전자주식회사 데이터 통신 오류를 검출하는 순환 중복 검사 유닛 데이터 통신 장치 및 검출 방법
US11128742B2 (en) 2019-03-08 2021-09-21 Microsemi Storage Solutions, Inc. Method for adapting a constant bit rate client signal into the path layer of a telecom signal
US11108895B2 (en) * 2019-08-23 2021-08-31 Microchip Technology Inc. Method for providing path signal overhead in the 64B/66B character stream of an itu-t metro transport network using micro-packets
JP2021039672A (ja) * 2019-09-05 2021-03-11 キオクシア株式会社 メモリシステム、パケット保護回路およびcrc計算方法
US11916662B2 (en) 2021-06-30 2024-02-27 Microchip Technology Inc. System and method for performing rate adaptation of constant bit rate (CBR) client data with a fixed number of idle blocks for transmission over a metro transport network (MTN)
US11838111B2 (en) 2021-06-30 2023-12-05 Microchip Technology Inc. System and method for performing rate adaptation of constant bit rate (CBR) client data with a variable number of idle blocks for transmission over a metro transport network (MTN)
US11736065B2 (en) 2021-10-07 2023-08-22 Microchip Technology Inc. Method and apparatus for conveying clock-related information from a timing device
US11799626B2 (en) 2021-11-23 2023-10-24 Microchip Technology Inc. Method and apparatus for carrying constant bit rate (CBR) client signals

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1324517A (zh) * 1998-08-26 2001-11-28 艾利森电话股份有限公司 用于生成循环冗余校验代码的并行循环冗余校验生成电路
US20040071091A1 (en) * 2002-09-27 2004-04-15 International Business Machines Corporation Method and systems for improving test of data transmission in multi-channel systems
CN1604515A (zh) * 2003-09-30 2005-04-06 国际商业机器公司 为具有n块数据的消息产生循环冗余检验的方法和装置
CN102082577A (zh) * 2010-12-31 2011-06-01 杭州华三通信技术有限公司 一种高速循环冗余校验crc装置及其实现方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6101624A (en) * 1998-01-21 2000-08-08 International Business Machines Corporation Method and apparatus for detecting and correcting anomalies in field-programmable gate arrays using CRCs for anomaly detection and parity for anomaly correction
CN1193294C (zh) 2003-01-27 2005-03-16 西安电子科技大学 一种多通道多位并行计算crc码的方法
US8572289B1 (en) * 2003-12-19 2013-10-29 Nvidia Corporation System, method and computer program product for stateless offloading of upper level network protocol operations
US7349537B2 (en) * 2004-03-11 2008-03-25 Teknovus, Inc. Method for data encryption in an ethernet passive optical network
US8381067B2 (en) 2010-01-29 2013-02-19 International Business Machines Corporation Apparatus, system, and method for specifying intermediate CRC locations in a data stream
US8739012B2 (en) * 2011-06-15 2014-05-27 Texas Instruments Incorporated Co-hosted cyclical redundancy check calculation
US8683291B2 (en) * 2011-06-16 2014-03-25 Lsi Corporation High throughput frame check sequence module architecture

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1324517A (zh) * 1998-08-26 2001-11-28 艾利森电话股份有限公司 用于生成循环冗余校验代码的并行循环冗余校验生成电路
US20040071091A1 (en) * 2002-09-27 2004-04-15 International Business Machines Corporation Method and systems for improving test of data transmission in multi-channel systems
CN1604515A (zh) * 2003-09-30 2005-04-06 国际商业机器公司 为具有n块数据的消息产生循环冗余检验的方法和装置
CN102082577A (zh) * 2010-12-31 2011-06-01 杭州华三通信技术有限公司 一种高速循环冗余校验crc装置及其实现方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
吕晓敏: "《嵌套循环冗余码(CRC)的优化与检验》", 《中国优秀硕士学位论文全文数据库 信息科技辑》, 15 June 2012 (2012-06-15) *
徐展琦 等: "《一种通用多通道并行CRC计算及其实现》", 《南京邮电大学学报(自然科学版)》, 30 April 2008 (2008-04-30), pages 2 - 1 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103795502A (zh) * 2014-02-28 2014-05-14 杭州华三通信技术有限公司 一种数据帧校验码生成方法和装置
CN103795502B (zh) * 2014-02-28 2017-04-12 杭州华三通信技术有限公司 一种数据帧校验码生成方法和装置
CN106354581A (zh) * 2016-08-22 2017-01-25 华为技术有限公司 一种循环冗余校验方法以及多核处理器
CN106354581B (zh) * 2016-08-22 2019-08-23 华为技术有限公司 一种循环冗余校验方法以及多核处理器
CN109274636A (zh) * 2017-07-18 2019-01-25 比亚迪股份有限公司 数据安全传输方法及其装置、系统、列车
CN109274636B (zh) * 2017-07-18 2020-11-06 比亚迪股份有限公司 数据安全传输方法及其装置、系统、列车

Also Published As

Publication number Publication date
US20140149821A1 (en) 2014-05-29
US9143276B2 (en) 2015-09-22
CN102946297B (zh) 2015-06-17
WO2014071658A1 (zh) 2014-05-15

Similar Documents

Publication Publication Date Title
CN102946297B (zh) 一种用于数据传输差错控制的嵌套crc码生成方法及装置
KR101221915B1 (ko) 데이터 전송방법
CN109936377B (zh) 一种分段crc辅助的极化码编码和译码方法
CN103684666B (zh) 在ngb-w通信系统中实现时间交织和解时间交织的方法
CN108650057A (zh) 一种编译码的方法、装置及系统
CN101553990A (zh) Turbo码交织器尺寸的确定
CN101753455B (zh) 转发方法及装置
CN106301683B (zh) 一种基于scma系统的dmpa译码方法及译码器
CN106817192A (zh) 一种错误估计的方法、基站及终端
CN102546089A (zh) 循环冗余校验crc码的实现方法及装置
CN109802713B (zh) 信道状态信息csi编码方法及装置、存储介质和处理器
CN105009540A (zh) 一种加扰方法及加扰装置
CN103731239A (zh) 一种适用于向量处理器的通用crc并行计算部件及方法
CN101540778B (zh) 一种数据传输的方法、装置和系统
CN113055021A (zh) 译码方法、装置、网络设备及存储介质
KR20090017384A (ko) 오류검출부호의 부가를 고려한 코드블록 분할 방법
CN101159510B (zh) 一种提高信息比特传输可靠性的方法
CN103986557A (zh) 低路径延迟的LTE Turbo码并行分块译码方法
CN108270508A (zh) 一种循环冗余校验crc实现方法、装置及网络设备
CN104467913B (zh) 一种时分星间测量通信网络多址长码的生成方法
CN101547040A (zh) 初始化伪随机序列发生器的方法
CN104486033A (zh) 一种基于c-ran平台的下行多模信道编码系统及方法
CN100433614C (zh) 一种数据包恢复方法
CN103763064A (zh) 适用于超高速通讯系统的循环冗余校验码生成方法与电路
CN105245454A (zh) 交换系统的流量转发方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant