CN1633749A - 获得循环冗余码 - Google Patents

获得循环冗余码 Download PDF

Info

Publication number
CN1633749A
CN1633749A CNA038039613A CN03803961A CN1633749A CN 1633749 A CN1633749 A CN 1633749A CN A038039613 A CNA038039613 A CN A038039613A CN 03803961 A CN03803961 A CN 03803961A CN 1633749 A CN1633749 A CN 1633749A
Authority
CN
China
Prior art keywords
message
fragment
remainder
cyclic redundancy
delivery
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
CNA038039613A
Other languages
English (en)
Other versions
CN100442671C (zh
Inventor
S·维辛格
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN1633749A publication Critical patent/CN1633749A/zh
Application granted granted Critical
Publication of CN100442671C publication Critical patent/CN100442671C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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
    • H03M13/091Parallel or block-wise CRC computation
    • 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
    • H03M13/093CRC update after modification of the information word

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Detection And Correction Of Errors (AREA)
  • Vessels, Lead-In Wires, Accessory Apparatuses For Cathode-Ray Tubes (AREA)
  • Details Of Television Scanning (AREA)

Abstract

获得循环冗余码来验证发送器和接收器之间传输的消息的完整性。一种用于获得循环冗余码的方法包括将消息分成片段。基于生成多项式获得这些片段的余项。这些片段的余项乘以片段常数以获得每个片段的片段余项。片段余项被累加成累加余项。通过生成多项式将累加余项取模计算以获得累加余项的余项。该累加余项的余项就是消息的循环冗余码。

Description

获得循环冗余码
技术领域
本申请涉及验证数据传输的完整性,尤其涉及验证使用循环冗余码的数字数据传输的完整性。
背景
数据传输10(图1)包括发送器12和接收器14之间通常称作数据的信息的传输。通常,数据传输10包括作为1和0的数字位发送的信息,这里由mn-1到m0表示,并被称为消息M。
在理想环境中,消息M发送无差错。不幸地,常通过媒体16引入差错,其中消息M通过媒体16从发送器12传递到接收器14(例如,媒体16可以是线路、电缆、光纤、空气或链路层装置的任何组合)。一种用于检测消息M中存在差错的方法采用循环冗余码。
循环冗余码将类似消息M的数字位的分组处理成多项式,其中分组中的每个位表示多项式Xn-1+Xn-2+X0中的系数。例如,8个位11001101的一个组可以由多项式X7+X6+X3+X2+1表示(即,1*X7+1*X6+0*X5+0*X4+1*X3+1*X2+0*X1+1*X0)。
这些多项式形成具有以Z/p为系数的被称为可换环的代数对象,其中Z是整数而p是质数,这里是2,也被称作以2为模的{0,1}。如果(R+)是可交换群,(R*)是半群组且遵守分配律(即,a*(b+c)=a*b+a*b),则非空集R与两个二进制运算{+*}一起被称作一环。
在多项式环中,不存在将一个系数携带或借用到下一个。在算术模2的情况下,加法和减法是一致的并可以用异或实现。例如:
由位的组表示的多项式的除法是以与二进制除法类似的方式完成的,区别在于以模2进行减法。如果被除数多项式与除数多项式的次数相同,则除数将‘进入’被除数(即,除数和被除数分享至少相同的最高位)。
可以通过计算消息M除以生成多项式P的余项来获得循环冗余码。该余项被称作循环冗余码(“CRC”)。
为了获得消息M的CRC,除以生成多项式P的位组可以包括附加的零位17。零位17在数量上等于生成多项式P的次数。因此,基于次数3的生成多项式P=X3+1=1001(即X3是多项式P的最高位)的具有三个附加零位17的消息M=10111000的CRC可以如下计算:
Figure A0380396100081
示作CRC18的最终余项可以被附加到消息M上,取代零位17,以便产生消息M’。发送器12将经由媒体16将消息M’发送到接收器14作为数据传输10。
在接收时,接收器14将消息M’除以相同的生成多项式P以获得M’的CRC,并检查数据传输10的正确性。如果得出的余项是零(即,CRC=M’(modulo)P=0),则确认数据传输10的完整性。例如,
如果消息M’除以多项式P的余项不是零(即,CRC=M’(modulo)P≠0),则数据传输10包含一个或多个差错。例如:
附图概述
图1示出采用循环冗余码的数据传输的现有技术的框图。
图2示出用于获得CRC的过程,其中消息M被分成多个片段。
图3示出根据图2过程获得消息的CRC的CRC生成器。
图4示出被分成四个片段的图3的CRC生成器。
图5示出根据图2过程获得消息M的CRC的CRC生成器。
图6示出使用生成多项式的倒数近似的获得消息的余项的取模计算单元。
图7示出使用图6所示取模计算单元的图3中的CRC生成器。
图8示出用于更新消息M的CRC的CRC生成器,其中已调整了部分消息M。
图9示出在消息M的被调整片段上操作的图8所示的CRC生成器。
图10是用于实现本发明实施例的计算机硬件的示图。
在各图中相同的标号表示相同的元件。
具体实施方式
过程20(图2)获得基于发生多项式P的消息M的CRC。
过程20包括将消息M分成多个消息片段Ms(201);如需要,通过生成多项式P对消息片段取模计算(以下限定)(203),以便获得每个片段的余项R;将每个片段的余项R乘以合适的片段常数C,以获得每个片段Ms的片段余项SR(205);累加每个片段Ms的片段余项SR,以获得消息M的累加余项AR(207);以及如需要,由生成多项式P对累加余项取模计算(209),以获得消息M的CRC。
将消息M分成多个消息片段Ms(201)包括分解消息M,从而:
M=Ms-1*Xn*(s-1)+Ms-2*Xn*(s-2)...+M1*Xn(1)+M0*Xn(0)
其中s是消息M被分成的片段的数量,n是每个片段中位的数量,X是消息M中每个片段的位置,而Ms是消息M的单个片段。如果位的数量是n,则X是X=[1000...0]的形式,其中有n个零,n+1个元素且X是n次。M乘以X将把消息向左移动n位。M乘以X2将把消息移动2n位(等等)。
如果片段Ms的最高位的次数等于或大于多项式P的最高位的次数,取模计算(203)包括通过将片段Ms除以生成多项式P来获得每个消息片段Ms的余项R。如果片段Ms的次数小于多项式P的次数(即Ms的最高位小于多项式P的最高位),则由于消息片段Ms的余项等于片段Ms自身,所以不需要取模计算(203)。在可选实施例中,可以通过将消息片段Ms乘以多项式P的倒数近似来实现取模计算(203),而不是将片段Ms除以多项式P,以获得消息片段Ms的余项R。下面结合图6讨论乘倒数近似来获得余数R的操作。
乘以步骤(205)包括获得每个消息片段Ms的片段常数C(以下限定)并将每个片段常数C乘以其余项R以获得每个消息片段的片段余项SR。可以根据以生成多项式P或P的域扩展(field extension)为模的消息M中消息片段Ms的位置X获得片段常数C。
累加(207)包括将每个消息片段Ms的片段余项SR相加以获得消息M的累加余项AR。
取模计算(209)包括将累加余项AR除以生成多项式P,或者将AR乘以生成多项式P的倒数近似,以获得消息M的CRC。但是,如果累加余项AR的次数小于多项式P的次数,则由于消息M的余项(即,CRC)是累加余项AR,所以无需取模计算(209)。
图3示出根据生成多项式P计算消息M的CRC的过程20的实现。例如:
    如果M=10111000,(消息10111加3个附加的零位)
    且
        s=2,
        n=4,以及
        P=1001=(Deg(P)=3);
则M可以被分成
         Ms-1   =M1=1011=片段33,
         Xn*(s-1)=X4=10000,
         Ms-2    =M0=1000=片段35,
         Xn*(s-2)=X0=00001;
    其中
         M=1011*10000+1000*00001=
    10111000
CRC生成器30根据生成多项式P获得消息M的CRC,其中消息M的CRC是消息M除以P的余项(即,CRC=M(modulo)P=MOD(M,P)。
通常,因为是不可约的(即它们没有因子),所以选择生成多项式P。已知的生成多项式的几个实例包括:
      LRCC8     =X8+1
                =100000001;
      CRC16     =x16+x15+X2+1
                =11000000000000101;
      SDLC      =x16+x12+X5+1
                =10001000000100001;
      LRCC      =x16+1
                =10000000000000001;
      CRC12     =x12+x11+X3+X2+X+1
                =1100000001111;以及
      ETHERNET  =x32+x26+X23+X22+x16+
                x11+X10+X8+x7+X5+X4+
                X2+X+1
                =100000100110000010000110110110111;
其中LRCC代表最后定位控制通道(Last Registration Control Channel)。
CRC生成器30包括取模计算单元32、乘法器34、累加器36和取模计算单元38。这里,取模计算单元32具有在硬件中实现的取模计算单元32a和32b。
取模计算单元32a将消息片段33除以生成多项式P以获得余项Ri+1(即Ri+1=Ms-1(modulo)P=MOD(Ms-1,P))。取模计算单元32b将消息片段35除以生成多项式P以获得余项Ri(即Ri=Ms-2(modulo)P=MOD(Ms-2,P))。例如,
    如果
          M=10111000,
          Ms-1=M1=1011=片段33,
          Ms-2=M0=1000=片段35,且
          P=1001;
    随后
         Ri+1=R1=Ms-1(modulo)P=MOD(Ms-1,P)
              =1011(modulo)1001=010,且
         Ri  =R0=Ms-2(modulo)P=MOD(Ms-2,P)
              =1000(modulo)1001=001;
其中
Figure A0380396100121
乘法器34将余项Ri+1和Ri乘以片段常数Ci+1和Ci以获得片段余项SRi+1和SRi。这里,通过生成多项式P将消息M中的片段33和35的位置X取模计算来获得片段常数Ci+1和Ci(即,Ci+1=xn*(i+1)(modulo)P和Ci=xn*i(modulo)P)。例如
    如果
           ,M=10111000,
             P=1001,
             s=2,且
             n=4;
    随后
           SRi+1=SR1
           Ci+1 =C1=X4*1(modulo)P
                 =10000(modulo)1001=010,且
           SRi  =SR0
           Ci   =C0=X4*0(modulo)P
                 =0001(modulo)1001=001;
其中
根据消息M的已知片段可以预先获得片段常数Ci+1和Ci,且它们可以被存储在存储单元39中,并可由CRC生成器30访问。在其它实施例中,可以在接收到消息M时在CRC生成器30内‘即时(on the fly)’获得片段常数Ci+1和Ci
乘法器34包括乘法器34a和34b。乘法器34a将余项Ri+1乘以片段常数Ci+1以获得片段余项SRi+1。乘法器34b将余项Ri乘以片段常数Ci以获得片段余项SRi。例如:
    如果
           Ri+1 =010,Ci+1=010且(从上)
           Ri   =001,Ci  =001;
    随后
           SRi+1=Ri+1*Ci+1=010*010=00100,且
           SRi  =Ri*Ci    =001*001=00001;
    其中
Figure A0380396100131
乘法器36将片段余项SRi+1和SRi相加以获得累加余项AR。例如:
    如果
           SRi+1=SR1=00100,(从上)
           SRi  =SR0=00001;
    随后
           AR    =00100+00001=00101,
    其中
Figure A0380396100132
取模计算单元38通过由生成多项式P将累加余项AR取模计算来获得消息M的CRC(即,CRC=AR(modulo)P=MOD(AR,P))。例如:
    如果
           AR=00101,且(从上)
           P =1001;
    随后
           CRC=AR(modulo)P=MOD(AR,P)
              =00101(modulo)1001=101,
    其中
Figure A0380396100133
因此,CRC生成器30上实现的过程20获得消息M的相同CRC,这里是10111000。在该实例中,由于AR的次数小于P的次数,因此不需要通过多项式P将AR取模计算。
CRC生成器30可以被扩展成包括足够的分量来获得被分成N个片段的消息M的CRC。图4示出能对被分成四个(4)片段43、45、47和49的消息M进行操作的CRC生成器40。例如:
如果
        M=M′=10111101,(例如,以上图3中的实例中的
                          消息M将获得的CRC附加其上)
        s=4,
        n=2,且
        p=2;
则M可以被分成
        Ms-1    =M3=10=片段43,
        Xn*(s-1)=X6=1000000,
        Ms-2    =M2=11=片段45,
        Xn*(s-2)=X4=10000,
        Ms-3    =M1=11=片段47,
        Xn*(s-3)=X2=100,
        Ms-4    =M0=01=片段49,
        Xn*(s-4)=X0=001;
    其中
        M=10*1000000+11*10000+
           11*100+01*001=10111101
CRC生成器40包括取模计算单元42、乘法器44、累加器46和取模计算单元48。取模计算单元42包括取模计算单元42a、42b、42c和42d。取模计算单元42a、42b、42c和42d的每一个都用于将消息片段43、45、47和49除以生成多项式P以获得余项R3、R2、R1和R0。例如:
    如果
        M=10111101=M′,(从上)
        Ms-1=M3=10=segment 43,
        Ms-2=M2=11=segment 45,
        Ms-3=M1=11=segment 47,
        Ms-4=m0=01=segment 49,
        P    =1001;
随后
         Ri+3=R3=Ms-1(modulo)P=
    10(modulo)1001
             =10,
         Ri+2=R2=Ms-2(modulo)P=
             11(modulo)1001
             =11,
         Ri+1=R1=Ms-3(modulo)P=
    11(modulo)1001
             =11,且
         Ri  =R0=Ms-4(modulo)P=
             01(modulo)1001
             =01
乘法器44将余项R3到R0乘以片段常数C3到C0以获得片段余项SR3到SR0。片段常数C3到C0对应于每个特定片段43、45、47和49并可以通过由多项式P对消息M中的片段的位置取模计算来获得。(即,C3=Xn*(3)(modulo)P,C2=Xn*2(modulo)P,C1=Xn*1(modulo)P,C0=Xn*0(modulo)P)。例如:
    如果
            M=10111101,(从上)
            P=1001,
            s=4,且
            n=2;
    随后
            SR3=SRi+3
            C3 =Ci+3=X2*3(modulo)P
                =1000000(modulo)1001=001;
            SR2=SR0
            C2 =Ci+2=X2*2(modulo)P
                =10000(modulo)1001=010;
            SR1=SR1
            C1 =Ci+1=X2*1(modulo)P
                =100(modulo)1001=100;且
            SR0=SRi
            C0 =Ci+0=X4*0(modulo)P
                =001(modulo)1001=001。
可以根据消息M的分段预先获得片段常数C3到C0,并将其存储在可由CRC生成器40访问的存储单元39中(图3)。在其它实施例中,可以在接收到消息M时在CRC生成器40内即时(即,实时)获得C3到C0
乘法器44将R3乘以C3,R2乘以C2,R1乘以C1,且R0乘以C0以获得片段余项SR3到SR0。例如,
    如果
           Ri+3=R3=10,Ci+3=C3=001;(从上)
           Ri+2=R2=11,Ci+2=C2=010;
           Ri+1=R1=11,Ci+1=C1=100;且
           Ri  =R0=01,Ci  =Ci0=001;
    随后
           SR3=R3*C3=10*001=0010;
           SR2=R2*C2=11*010=0110;
           SR1=R1*C1=11*100=1100;且
           SR0=R0*C0=01*001=0001
累加器46将片段余项SR3到SR0相加以获得累加余项AR。这里,累加器46包括累加器46a、46b和46c,其中累加器46a和46b计算临时累加T1和T0而累加器46c组合临时累加T1和T0以获得累加余项AR。例如
    如果
           SRi+3=SR3=0010,(从上)
           SRi+2=SR2=0110,
           SRi+1=SR1=1100,且
           SRi  =SR0=0001;
    随后
           T1=0010+0110=0100,
           T0=1100+0001=1101,且
           AR=0100+1101=1001。
最终,取模计算单元48获得消息M的CRC,这里,通过由多项式P将累加余项AR取模计算,消息M’具有如上图3所示获得的CRC(即,CRC=AR(modulo)P=MOD(AR,P))。例如,
如果
    AR=1001,且(从上)
    P =1001;
随后
    CRC=AR(modulo)P=
       1001(modulo)1001
       ’=0
其中
因此,CRC生成器40通过图3中的实例验证消息M的完整性,其中附加消息M的CRC以形成M’并将其发送到接收器14,它用CRC生成器40确认该传输(图4)。
根据过程20,在消息片段Ms的次数小于生成多项式P的次数的情况下(即,Deg(Ms)<Deg(P)),可以进一步地简化CRC生成器30和40。如以上图4的实例所示,当Ms的次数小于P的次数时,Ms(modulo)P的余项R等于Ms。因此,CRC生成器50(图5)不需要用于获得消息片段Ms的余项Ri的初始取模计算单元(例如,32或42),其中消息片段Ms的次数小于生成多项式P的次数。对于片段次数等于P的次数的情况(即,Deg(Ms)=Deg(P)),取模计算单元32或42可以由异或(xor)代替,因为Ms(modulo)P等于Ms-P。
这里,CRC生成器50包括乘法器54、累加器56和取模计算单元58,它们用于获得被分成次数小于生成多项式P的次数(即,Deg(Ms)<Deg(P))的四个片段53、55、57和59的消息M的CRC。例如:
如果
   M=10111000,(如同以上的图3,M包括三个附加的零位)
      s=4,
      n=2,且
      P=1001;
随后
      Ms-1    =M3=10=片段53,
      Xn*(s-1)=X6=1000000,
      Ms-2    =M2=11=片段55,
      Xn*(s-2)=X4=10000,
      Ms-3    =M1=10=片段57,
      Xn*(s-3)=X2=100,
      Ms-4    =M0=00=片段59,
      Xn*(s-4)=X0=001;
      M=10*1000000+11*10000+
         10*100+00*001=10111000乘法器54将片段53到59乘以片段常数C3到C0以获得片段余项SR3到SR0。可以如上所述地预先获得或者‘即时’计算片段常数C3到C0。例如:
  如果
        M=10111000,(从上)
        P=1001,
        s=4,且
        n=2;
  随后
        SR3=SRi+3
        C3 =Ci+3=X2*3(modulo)P
            =1000000(modulo)1001=001;
        SR2=SRi+2
        C2 =Ci+2=X2*2(modulo)P
            =10000(modulo)1001=010;
        SR1=SRi+1
        C1 =Ci+1=X2*1(modulo)P
            =100(modulo)1001=100;且
        SR0=SRi
        C0 =Ci+0=X4*0(modulo)P
            =001(modulo)1001=001
由于每个消息片段Ms等于其余项R,乘法器54将M3乘以C3,M2乘以C2,M1乘以C1,且M0乘以C0以获得片段余项SR3到SR0。例如:
如果
        Ms-1=M3=10,Ci+3=C3=001,
        Ms-2=M2=11,Ci+2=C2=010,
        Ms-3=M1=10,Ci+1=C1=100,且
        Ms-4=M0=00,Ci  =Ci0=001;
随后
        SR3=M3*C3    =10*001=0010,
        SR2=M2*C2    =11*010=0110,
        SR1=M1*C1    =10*100=1000,且
        SR0=M0*C0    =00*001=0000。
累加器56将片段余项SR3到SR0相加以获得累加余项AR。这里,累加器56包括累加器56a、56b和56c,其中累加器56a和56b计算临时累加T1和T0而累加器56c组合临时累加T1和T0以获得累加余项AR。例如
如果
        SRi+3=SR3=0010,(从上)
        SRi+2=SR2=0110,
        SRi+1=SR1=1000,
        SRi  =SR0=0000;
随后
        T1   =0010+0110=0100;
        T0   =1000+0000=1000;且
        AR    =0100+1000=1100。
最终,取模计算单元58通过由多项式P将累加余项AR取模计算而获得消息M的CRC。例如,
如果
        AR=1100,且(从上)
        P=1001;
随后
      CRC=AR(modulo)P=
         1100(modulo)1001
         =101;
其中
因此,CRC生成器50获得与以上图3实例中所计算的相同的消息M的CRC,而不需要图3和4的取模计算单元32或42。
还可以通过将消息M(或消息片段Ms)乘以生成多项式P的倒数近似D并将该结果从消息M(或消息片段Ms)中减去来获得余项R来进行取模计算(例如,(203)和(209))。根据以下关系可以获得通过乘以倒数近似RA进行的取模计算:
RA=Xp+d/P;
M/P=M*RA*1/Xp+ra(对于0<=Deg(M)<=p+ra);
M=(M/P)*P+M(modulo)P;
R=M(modulo)P=M-(M/P)*P;
R=M(modulo)P=M-(M*D/Xp+ra)*P
其中Xp+ra是具有次数为p+ra的最高位的多项式(即,Deg(Xp+ra)=p+ra);p是生成多项式P的次数(即,Deg(P)=p);ra是倒数近似RA的次数(即,Deg(RA)=ra);以及余项R所需的消息M的次数大于零且小于或等于p+ra(即,0<Deg(M)<=p+ra)。例如:
如果
    M=10111000(即,Deg(M)=7)
    P=1001(即,Deg(P)=3)
随后,倒数近似RA将具有至少四(4)的次数以使p+ra大于或等于M的次数,这里是(7)因此:
如果
    M=10111000(即,Deg(M)=7)
    P=1001    (即,Deg(P)=3)
    ra=4;
随后
    Xp+ra=10000000(i.e.,Deg(Xp+ra)=7),且
    D=Xp+ra/P=X3+4/1001
     =10000000/1001=10010;
其中
Figure A0380396100201
取模计算单元60可以在接收到消息M之前计算倒数近似RA并将RA存储在存储器69中,因为在接收消息M之前生成多项式P和消息M的次数是已知的。在另一个实施例中,倒数近似RA可以包含在取模单元60中,或者可以在接收到消息M后通过取模计算单元60构建或“即时”获得。一旦多项式的形式被固定,就可以显著地简化相应硬件的实现。
为了获得消息M的余项R,取模计算单元60包括乘法单元62、舍位单元64、乘法单元66和减法单元68,其中:
T0=M*RA由单元62执行,
T1=T0/Xp+ra由单元64执行,
T2=T1*P由单元66执行,以及
R=M-T2由单元68执行。
乘法单元62接收消息M并将M乘以倒数近似RA以获得临时结果T0。例如:
如果
     M=10111000,(从以上的图3)
     P=1001,且
     RA=10010;
随后
      T0=M*RA=10111000*10010
    =101011110000;
其中
乘法单元62将临时结果T0提供给舍位单元64,它将T0除以Xp+ra,这里是10000000,以获得舍位后的结果T1。在其它实施例中,舍位单元64可以除去临时结果T0的p+ra个最低位而不除以Xp+ra以便获得被舍位的结果T1。例如:
如果
    p =3,
    ra=4,且
    T0=101011110000;
随后
    p+ra=7,且
    T1  =10101
因此,对于p+ra等于七(7)的情况,从T0中除去七(7)个最低位(这里是1110000)以获得T1
舍位单元64将被舍位的结果T1提供给乘法单元66,它将T1乘以生成多项式P以获得临时结果T2。例如:
如果
    P=1001,
    T1=10101;
随后
    T2=T1*P=10101*1001
    =10111101
其中
乘法单元66将临时结果T2提供给减法单元68,它使消息M减去T2以获得余项R。例如:
如果
    M=10111000,且(从上)
随后
    T2=10111101;
其中
    R=M-T2=101
Figure A0380396100222
因此,取模计算单元60利用通过倒数近似的乘法获得消息M的余项R。因此,取模计算单元60可以独自计算整个消息M的CRC,或者可以被结合入CRC发生器30和40以获得消息片段Ms的余项R。
例如,图7示出采用图6的取模计算单元60的图3CRC发生器的实例。这里,取模计算单元60示作MH(M,RA,P)。例如:
如果
    M=10111000,(与以上图3一样)
    s=2,
    n=4,且
    P=1001;
则M可以被分为
    Ms-1    =M1=1011=片段73
    Xn*(s-1)=X4=10000,
    Ms-2    =M0=1000=片段75
    Xn*(s-2)=X0=00001;
其中
    M=1011*10000+1000*00001=
10111000。
CRC发生器70基于生成多项式P获得消息M的CRC,其中消息M的CRC是消息M除以多项式P的余项。
CRC发生器70包括取模计算单元72、乘法器74、累加器76和取模计算单元78。这里,取模计算单元72包括取模计算单元72a和72b,它们将消息片段73和75乘以生成多项式P的倒数近似以获得余项Ri+1和Ri
取模计算单元72a将消息片段73乘以生成多项式P的倒数近似RA以获得如图6所示的余项R。例如:
如果
    M=10111000,
    Ms-1=M1=1011=片段73,
    Ms-2=M0=1000=片段75,
    Deg(Ms-1)=3
    Deg(Ms-2)=3
    P=1001,
RA=Xp+ra/P=X3+1/P,从而p+ra大于或等于每个消息片段Ms-1和Ms-2的次数;
RA=X3+1/P=10000/1001=10;
其中
Figure A0380396100241
    T0(i+1)=Ms-1*RA=1011*10=10110,
    T0(i)  =Ms-2*RA=1000*10=10000,
    T1(i+1)=T0(i+1)/X3+1=10110/10000=1,
    T1(i)  =T0(i)/X3+1=10000/10000=1,
    T2(i+1)=T1(i+1)*P=1*1001=1001,
    T2(i)  =T1(i)*P=1*1001=1001,
    Ri+1   =Ms-1-T2(i+1)=1011-1001=
010
    Ri     =Ms-2-T2(i)=1000-1001=
001。
因此,取模计算单元72a和72b获得与以上图3所示的取模计算单元32a和32b相同的余项Ri+1′和Ri
乘法器34将Ri+1和Ri乘以片段常数Ci+1和Ci以获得片段余项SRi+1和SRi。这里,使用图6所示的取模计算单元60通过生成多项式P对消息M中片段33和35的位置X取模计算来‘即时’获得片段常数Ci+1和Ci(即,Ci+1=Xn*(i+1)(modulo)P以及Ci=Xn*i(modulo)P)。例如:
如果
    Xn*(i+1)=X4*(1)=M1=10000,
    Xn*i=X4*(0)=M0=00001,
    Deg(X4*(1))=4,
    Deg(X4*(0))=0,
    P=1001,
RA=Xp+ra/P=X3+1/P,从而p+ra大于或等于每个消息片段X4*(1)和X4*(0)的次数;
随后
    RA=10000/1001=10;
    T0(i+1)=M1*RA=10000*10=100000,
    T0(i)  =M0*RA=00001*10=000010,
    T1(i+1)=T0(i+1)/X3+1=100000/10000=
10,
    T1(i)  =T0(i)/X3+1=000010/10000=
0,
    T2(i+1)=T1(i+1)*P=10*1001=10010,
    T2(i)  =T1(i)*P=0*1001=00000,
    Ci+1   =M1-T2(i+1)=10000-10010=
010,
    Ci     =M0-T2(i)=00001-00000=
001。
在其它实施例中,可以预先获得片段常数Ci+1和Ci并将其存储在存储单元(例如39)中。
乘法器74包括乘法器74a和74b。乘法器74a将余项Ri+1乘以片段常数Ci+1以获得片段余项SRi+1。乘法器74b将余项Ri乘以片段常数Ci以获得片段余项SRi。例如:
如果
    Ri+1=010,Ci+1=010且(从上)
    Ri  =001,Ci  =001;
随后
    SRi+1=Ri+1*Ci+1=010*010=00100,且
    SRi  =Ri*Ci    =001*001=00001;
累加器76将片段余项SRi+1和SRi相加以获得累加余项AR。例如
如果
    SRi+1=SR1=00100,
    SRi  =SR0=00001;
随后
    AR    =00100+00001=00101
取模计算单元78通过由生成多项式P将累加余项AR取模计算来获得消息M的CRC。这里,取模计算单元78通过使用图6所示的倒数近似进行的乘法来获得CRC。例如:
如果
    AR=M=00101,
    Deg(AR)=2
    P=1001,
RA=Xp+ra/P=X3+1/P,从而p+ra大于或等于需要余项(这里是AR)的消息的次数;
随后
    RA=10000/1001=10;
    T0=M*RA=00101*10=1010,
    T1=T0/X3+1=1010/10000=0,
    T2=T1*P=0*1001=0,
    R  =CRC=M-T2=00101-0=101
因此,CRC生成器70获得与CRC生成器30的实例相同的CRC。同样,CRC生成器70可以被扩展成包括足够的部分以获得被分成N个片段的消息M的CRC。
CRC发生器80(图8)包括减法单元82、取模计算单元84以及累加器86,用于在传输期间更新被调整的消息M的CRC。减法单元82将新消息85减去旧消息83以获得差值D。例如
如果
随后
    D=Mnew-Mold=00110000
在其中
Figure A0380396100262
取模计算单元84通过生成多项式P将差值D取模计算以获得差值余项DR。例如:
如果
    P=1001,且
    D=00110000;
随后
    DR=D(modulo)P=MOD(D,P)=
在其中
Figure A0380396100271
在其它实施例中,可以采用通过倒数近似RA的乘法获得差值余项DR(即,MH(D,RA,P))。
累加器86将差值余项DR和CRCold相加以获得CRCnew。例如:
    如果
        CRCold=101且
        DR     =110;
    随后
        CRCnew=CRCo1d+DR=101+110
               =011;
    其中
通过用CRCnew替换被调整的消息Mnew中的CRCold并确定Mnew(modulo)CRCnew是否等于零来确认该CRCnew的准确性。例如:
    如果
Figure A0380396100273
    随后
        Mnew(modulo)CRCnew=O
在其中
CRC生成器90(图9)包括减法单元92、取模计算单元94、乘法器96、取模计算单元98以及累加器99,用于在传输期间更新被调整的消息M的CRC。CRC发生器90与发生器80不同之处在于,它根据消息的本调整的片段调整消息M的CRC。
减法单元92将新消息片段95减去旧消息片段93以获得差值片段DS。例如
    如果
        P   =1001,
        n   =2
        ’s =4
Figure A0380396100282
        Mnew=10001|101
        Ms-1=10
        Ms-2=00=片段95
        Ms-3=11
        Ms-4=01
    随后
        DS=Ms-2(new)-Ms-2(old)=00-11=11
取模计算单元94通过生成多项式P将差值片段DS取模计算以获得差值片段余项DSR。例如:
如果
        P =1001,
        DS=11;
随后
        DSR=DS(modulo)P=MOD(DS,P)=11
在其中
这里,如上所述,如果差值片段DS的次数小于多项式P的次数,由于DS的模等于DS因此无需取模计算单元94。
乘法器96将差值片段余项DSR乘以合适的片段常数Ci以获得扩展的片段余项ESR。该实例的片段常数C3到C0可以如上所述地获得。例如:
    如果
        DSR=(M2new-M2old)(modulo)P=11
    且
        Ci =C2=X2*2(modulo)P
            =10000(modulo)1001=010;
    随后
        EDR=DSR*Ci=11*010=110
取模计算单元98通过由生成多项式P将扩展的差值余项取模计算来获得消息差值余项DR。例如:
    如果
        P  =1001且
        EDR=110;
    随后
        DR =110
再次,对于扩展差值余项的次数小于多项式P的次数的情况中,DR是EDR。
最后,累加器99将消息差值余项DR和CRCold相加以获得CRCnew。例如:
    如果
        CRCold=101且
        DR     =110;
    随后
        CRCnew=CRCold+DR=101+110
               =011;
    在其中
所有上述算法都可以由较大环中嵌入的生成多项式P影响。例如,使得
      F=P*Q;
其中,F是P的域扩展,Q是扩展因子(extender),且P和Q之间的最大公分母(greatest common denominator)是一(1)。现在使用域扩展F代替p计算以及尺寸(按位)增加的消息片段Ms可以计算片段常数C,而不需要图3和4的附加模42和42。相反,可以需要如图5所示的通过P的模。
图10示出通用计算机100,它用于采用过程20或者上述CRC生成单元30、40、50、60、70、80和90的任何操作获得CRC。计算机100包括处理器102(例如,CPU)、存储介质104(例如,随机存取存储器)以及具有发送和接收数据传输的一个或多个外部连接06a、106b和106c的通信接口106(例如,网卡)。存储介质104存储用于通过过程20或者上述CRC生成单元的操作获得CRC的计算机指令108。在一个实施例中,计算机100基于倒数近似的乘法获得消息M的CRC。
但是,过程20和上述CRC生成器的操作不限于与任何特殊硬件或软件配置一起使用;它们可以在任何计算或处理环境中找到兼容性。过程20可以在硬件、软件或这两者的任何组合中实现。同样,CRC生成单元30、40、50、60、70、80和90的操作也是如此。
上述过程20和CRC生成器可以在可编程计算机上执行的计算机程序中实现,该可编程计算机包括处理器、可由处理器读取的存储介质(例如,易失性存储器、非易失性存储器等等)、一个或多个输入装置以及一个或多个输出装置。可以将程序代码应用到用输入装置输入的数据上以执行过程20或者上述CRC生成器的任何操作。输出信息可以被应用到一个或多个输出装置上,诸如屏幕110。
可以以高级程序或面向对象的编程语言来实现每个这种程序以便与计算机系统通信。但是,程序也可以采用汇编语言或机器语言实现。语言可以是编译或解释语言。
每个计算机程序都可以存储在一制品中,诸如CD-ROM、硬盘或磁盘,它们可以由计算机100读取以便以上述方式获得消息M的CRC。过程20和用于实现上述CRC生成器的操作也可以被实现为机器可读存储介质,由一个或多个计算机程序配置,其中,在执行时,计算机程序中的指令使得处理器102如上操作。
已描述了本发明的大量实施例。然而,可以理解,可以进行各种修改而不背离本发明的精神和范围。例如,消息M可以被分成奇数个片段或者片段大小或域扩展F可以代替生成多项式P。因此,其它实施例也在以下权利要求书的范围内。

Claims (45)

1.一种用于获得消息的循环冗余码的方法,其特征在于,包括:
将消息分成多个片段;
基于生成多项式将每个片段的余项乘以片段常数以获得多个片段余项;
将片段余项累加以获得累加余项;以及
通过生成多项式将累加余项取模计算以获得消息的循环冗余码。
2.如权利要求1所述的方法,其特征在于,还包括,通过生成多项式将片段取模计算以获得每个片段的余项。
3.如权利要求1所述的方法,其特征在于,还包括将消息分成三个或更多的片段。
4.如权利要求1所述的方法,其特征在于,将所述循环冗余码附加到消息上且附加后的消息被发送到接收器。
5.如权利要求1所述的方法,其特征在于,循环冗余码表明消息中存在差错。
6.如权利要求5所述的方法,其特征在于,如果循环冗余码是零,则验证了消息的完整性。
7.如权利要求5所述的方法,其特征在于,如果循环冗余码是非零,则消息的完整性无效。
8.如权利要求1所述的方法,其特征在于,取模计算包括除以生成多项式。
9.如权利要求1所述的方法,其特征在于,取模计算包括乘以生成多项式的倒数近似。
10.如权利要求1所述的方法,其特征在于,通过由生成多项式将消息中的片段位置取模计算来获得每个片段的片段常数。
11.一种用于获得消息的循环冗余码的装置,该消息被分成多个片段,其特征在于,包括:
乘法器,它基于生成多项式将每个片段的余项乘以片段常数以获得多个片段余项;
累加器,它累加片段余项以获得累加余项;以及
取模计算单元,它通过生成多项式将累加余项取模计算以获得消息的循环冗余码。
12.如权利要求11所述的装置,其特征在于,所述装置是网络卡且取模计算单元包括多个取模计算单元以便通过生成多项式将消息的每个片段取模计算以获得每个片段的余项。
13.如权利要求11所述的装置,其特征在于,还包括存储器,它用于存储多个片段常数。
14.如权利要求11所述的装置,其特征在于,在接收到消息时获得片段常数。
15.如权利要求11所述的装置,其特征在于,取模计算单元将累加余项除以生成多项式以获得循环冗余码。
16.如权利要求11所述的装置,其特征在于,取模计算单元将累加余项乘以生成多项式的倒数近似以获得循环冗余码。
17.一种用于确定循环冗余码的方法,其特征在于,包括:
将消息分成多个片段;
基于生成多项式将每个片段乘以片段常数以获得多个片段余项;
将片段余项累加以获得累加余项;以及
通过生成多项式将累加余项取模计算以获得消息的循环冗余码。
18.如权利要求17所述的方法,其特征在于,生成多项式的最高位的次数大于每个片段的最高位的次数。
19.如权利要求17所述的方法,其特征在于,包括将消息分成三个或更多个片段。
20.如权利要求17所述的方法,其特征在于,生成多项式包括域扩展因子。
21.如权利要求17所述的方法,其特征在于,循环冗余码表明消息中差错的可能性。
22.如权利要求17所述的方法,其特征在于,多个片段常数中的每一个都基于生成多项式和消息中片段的位置。
23.一种获得消息的循环冗余码的装置,该消息被分成多个片段,其特征在于,包括:
乘法器,它将每个片段乘以片段常数以获得多个片段余项;
累加器,它将片段余项累加以获得消息的累加余项;以及
取模计算单元,它通过生成多项式将累加余项取模计算以获得消息的循环冗余码。
24.如权利要求23所述的装置,其特征在于,还包括存储器,它用于存储多个片段常数。
25.如权利要求23所述的装置,其特征在于,取模计算单元将累加余项除以生成多项式以获得循环冗余码。
26.如权利要求23所述的装置,其特征在于,取模计算单元将累加余项乘以生成多项式的倒数近似以获得循环冗余码。
27.一种用于增加地更新循环冗余码的方法,其特征在于,包括:
将更新后的消息减去在先消息以获得差值;
通过生成多项式将该差值取模计算以获得余项;以及
将该余项与在先消息的循环冗余码相加以获得更新后的消息的更新循环冗余码。
28.如权利要求27所述的方法,其特征在于,取模计算包括将累加余项乘以生成多项式的倒数近似以获得余项。
29.一种增加地更新循环冗余码的装置,其特征在于,包括:
减法单元,它将更新后的消息减去在先消息以获得差值;
取模计算单元,它通过生成多项式将该差值取模计算以获得余项;以及
累加器,它将余项与在先消息的循环冗余码相加以获得更新后的消息的更新循环冗余码。
30.如权利要求29所述的装置,其特征在于,减法单元包括异或逻辑门电路。
31.一种用于增加地更新消息的循环冗余码的方法,其特征在于,包括:
将更新后的消息片段减去在先消息片段以获得差值片段;
通过生成多项式将差值片段取模计算以获得差值片段余项;
将差值片段余项乘以片段常数以获得扩展的片段余项;
通过生成多项式将扩展的片段余项取模计算以获得更新后的消息余项;以及
将更新后的消息余项与在先消息的循环冗余码相加以获得更新后的消息的更新循环冗余码。
32.如权利要求31所述的方法,其特征在于,取模计算包括除以生成多项式。
33.一种增加地更新消息的循环冗余码的装置,其特征在于,包括:
减法单元,它将更新后的消息片段减去在先消息片段以获得差值片段;
取模计算单元,它通过多项式将差值片段取模计算以获得差值片段余项;
乘法器,它将差值片段余项乘以片段常数以获得扩展的片段余项;
取模计算单元,它通过多项式将扩展的片段余项取模计算以获得差值余项;以及
累加器,它将差值余项与在先消息的在先循环冗余码相加以获得更新后的消息的更新循环冗余码。
34.如权利要求29所述的装置,其特征在于,累加器包括异或逻辑门电路。
35.一种包括机器可读介质的制品,其中该机器可读介质存储了指令以获得消息的循环冗余码,所述指令使得机器:
将消息分成多个片段;
基于生成多项式将每个片段的余项乘以片段常数以获得多个片段余项;
将片段余项累加以获得累加余项;以及
通过生成多项式将累加余项取模计算以获得消息的循环冗余码。
36.如权利要求35所述的制品,其特征在于,还包括指令,该指令使得机器通过生成多项式将片段取模计算以获得每个片段的余项。
37.如权利要求35所述的制品,其特征在于,还包括指令,如果循环冗余码是零,它使得机器验证消息的完整性。
38.如权利要求35所述的制品,其特征在于,还包括指令,如果循环冗余码是非零,它使得机器无效消息的完整性。
39.一种包括机器可读介质的制品,其中该机器可读介质存储了指令以获得消息的循环冗余码,所述指令使得机器:
将消息分成多个片段;
基于生成多项式将每个片段乘以片段常数以获得多个片段余项;
将片段余项累加以获得累加余项;以及
通过生成多项式将累加余项取模计算以获得消息的循环冗余码。
40.如权利要求39所述的制品,其特征在于,还包括指令,它使得机器将域扩展因子应用于生成多项式。
41.一种包括机器可读介质的制品,其中该机器可读介质存储了指令以获得消息的循环冗余码,所述指令使得机器:
将更新后的消息减去在先消息以获得差值;以及
通过生成多项式将差值取模计算以获得余项;以及
将该余项与在先消息的循环冗余代码相加以获得更新后的消息的更新循环冗余码。
42.如权利要求41所述的制品,其特征在于,还包括指令,它使得机器通过将累加余项乘以生成多项式的倒数近似来获得余项。
43.一种包括机器可读介质的制品,其中该机器可读介质存储了指令以获得消息的循环冗余码,所述指令使得机器:
将更新后的消息片段减去在先消息片段以获得差值片段;
通过生成多项式将差值片段取模计算以获得差值片段余项;
将差值片段余项乘以片段常数以获得扩展的片段余项;
通过生成多项式将扩展的片段余项取模计算以获得更新的消息余项;以及
将更新的消息余项与在先消息的循环冗余码相加以获得更新后的消息的更新循环冗余码。
44.如权利要求43所述的制品,其特征在于,还包括指令,它使得机器通过除法取模计算。
45.如权利要求43所述的制品,其特征在于,还包括指令,它使得机器通过倒数近似取模计算。
CNB038039613A 2002-02-15 2003-01-24 用于获得消息的循环冗余码的方法和装置 Expired - Fee Related CN100442671C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/076,975 US7174498B2 (en) 2002-02-15 2002-02-15 Obtaining cyclic redundancy code
US10/076,975 2002-02-15

Publications (2)

Publication Number Publication Date
CN1633749A true CN1633749A (zh) 2005-06-29
CN100442671C CN100442671C (zh) 2008-12-10

Family

ID=27752680

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB038039613A Expired - Fee Related CN100442671C (zh) 2002-02-15 2003-01-24 用于获得消息的循环冗余码的方法和装置

Country Status (9)

Country Link
US (1) US7174498B2 (zh)
EP (1) EP1474873B1 (zh)
CN (1) CN100442671C (zh)
AT (1) ATE427587T1 (zh)
AU (1) AU2003216112A1 (zh)
CA (1) CA2466080C (zh)
DE (1) DE60326935D1 (zh)
TW (1) TWI283972B (zh)
WO (1) WO2003071688A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112073148A (zh) * 2019-06-10 2020-12-11 慧与发展有限责任合伙企业 快速循环冗余校验码生成

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7320101B1 (en) * 2003-08-19 2008-01-15 Altera Corporation Fast parallel calculation of cyclic redundancy checks
US7613991B1 (en) 2003-08-19 2009-11-03 Altera Corporation Method and apparatus for concurrent calculation of cyclic redundancy checks
US7543214B2 (en) * 2004-02-13 2009-06-02 Marvell International Ltd. Method and system for performing CRC
JP4271602B2 (ja) * 2004-03-04 2009-06-03 富士通株式会社 転送データの正当性を判定する装置および方法
US7516393B2 (en) * 2005-03-01 2009-04-07 International Business Machines Corporation System and method of error detection for unordered data delivery
US7707483B2 (en) 2005-05-25 2010-04-27 Intel Corporation Technique for performing cyclic redundancy code error detection
JP4708291B2 (ja) * 2006-01-16 2011-06-22 三菱電機株式会社 通信システム
JP4787732B2 (ja) * 2006-12-26 2011-10-05 富士通株式会社 情報ビット列の除算方法及びその装置
US7865808B2 (en) * 2007-05-09 2011-01-04 Harris Corporation Fast error detection system and related methods
KR100902051B1 (ko) * 2007-07-12 2009-06-15 주식회사 하이닉스반도체 오류 검사 코드 생성장치 및 방법
US8689078B2 (en) * 2007-07-13 2014-04-01 Intel Corporation Determining a message residue
KR20100008849A (ko) * 2008-07-17 2010-01-27 삼성전자주식회사 통신 시스템에서 순환중복검사 방법 및 장치
KR101069725B1 (ko) * 2009-12-24 2011-10-04 주식회사 하이닉스반도체 반도체 메모리 장치와 이를 위한 고장번지 제어 회로 및 방법
CN101795175B (zh) * 2010-02-23 2014-03-19 中兴通讯股份有限公司 数据的校验处理方法及装置
US8479082B2 (en) 2010-04-07 2013-07-02 Indian Institute Of Technology Delhi Packet error correction in networks
US20130111303A1 (en) * 2011-10-27 2013-05-02 Oracle International Corporation Single error correction & device failure detection for x8 sdram devices in bl8 memory operation
US10148285B1 (en) 2012-07-25 2018-12-04 Erich Schmitt Abstraction and de-abstraction of a digital data stream
JP6162429B2 (ja) * 2013-02-28 2017-07-12 株式会社メガチップス 階層構造の演算回路
US10795858B1 (en) 2014-02-18 2020-10-06 Erich Schmitt Universal abstraction and de-abstraction of a digital data stream

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2129236C (en) * 1992-12-29 1998-12-22 Shiping Li Efficient crc remainder coefficient generation and checking device and method
DE69320321T2 (de) 1993-02-05 1998-12-24 Hewlett-Packard Co., Palo Alto, Calif. Verfahren und Gerät zum Nachprüfen von CRC-Koden, wobei CRC Teilkode kombiniert werden
CN1189018A (zh) * 1996-11-21 1998-07-29 松下电器产业株式会社 纠错装置
US5951707A (en) * 1997-06-27 1999-09-14 International Business Machines Corporation Method of partitioning CRC calculation for a low-cost ATM adapter
US6052815A (en) 1997-11-14 2000-04-18 Cirrus Logic, Inc. ECC system for generating a CRC syndrome over randomized data in a computer storage device
DE19838865C2 (de) * 1998-08-26 2001-03-01 Ericsson Telefon Ab L M Parallele CRC Erzeugungsschaltung zum Erzeugen eines CRC Codes und Verfahren zum Generieren einer derartigen Schaltung
US6438724B1 (en) * 1999-03-16 2002-08-20 International Business Machines Corporation Method and apparatus for deterministically altering cyclic redundancy check information for data storage
CN1112778C (zh) * 2000-08-08 2003-06-25 深圳市中兴通讯股份有限公司 一种数字通信系统中的信道循环冗余码校验的方法
KR100659265B1 (ko) * 2000-11-10 2006-12-20 삼성전자주식회사 패리티비트가 역순으로 부가된 씨.알.씨. 코드의에러검출장치 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112073148A (zh) * 2019-06-10 2020-12-11 慧与发展有限责任合伙企业 快速循环冗余校验码生成

Also Published As

Publication number Publication date
EP1474873B1 (en) 2009-04-01
DE60326935D1 (de) 2009-05-14
WO2003071688A3 (en) 2004-03-18
EP1474873A2 (en) 2004-11-10
CA2466080A1 (en) 2003-08-28
AU2003216112A1 (en) 2003-09-09
CN100442671C (zh) 2008-12-10
TWI283972B (en) 2007-07-11
US7174498B2 (en) 2007-02-06
WO2003071688A2 (en) 2003-08-28
ATE427587T1 (de) 2009-04-15
TW200308148A (en) 2003-12-16
US20030200500A1 (en) 2003-10-23
CA2466080C (en) 2008-03-25

Similar Documents

Publication Publication Date Title
CN1633749A (zh) 获得循环冗余码
CN1186714C (zh) 高基除法器及方法
CN101047390A (zh) 解码设备、控制方法及程序
CN101040306A (zh) 伪随机数生成装置
CN1199177C (zh) 可抑制电路规模能进行高速纠错的纠错装置和解码装置
CN1960190A (zh) Ldpc码校验矩阵构造方法及利用该方法的编码解码装置
CN101069356A (zh) 解码装置以及通信装置
CN1708017A (zh) 协议仿真器
CN1647139A (zh) 数据变换装置和数据变换方法
CN1856036A (zh) 字幕产生设备和方法
CN1751516A (zh) 用于发送和接收映象数据的强势系统
CN1860441A (zh) 用于可重新配置环境中的高效高性能数据操作元件
CN1126053C (zh) 文件检索方法、文件检索发送方法及装置
CN1681046A (zh) 快闪存储器
CN1208920C (zh) 数据传输方法,数据传输系统,发射装置和接收装置
CN1930838A (zh) 信息处理装置、服务器、通信系统、地址决定方法、地址变更方法及程序
CN1922643A (zh) 加密系统、加密装置、解密装置、程序和集成电路
CN101030138A (zh) 应用构架
CN1200571C (zh) 正交变换、逆正交变换方法及装置、编码、解码方法及装置
CN1726669A (zh) 数据分割方法和使用异或运算的装置
CN1653447A (zh) 报告NxM离散余弦变换的方法
CN1269052C (zh) 支持缩小代码长度的常量还原型处理器
CN1507202A (zh) 设备管理系统、设备管理终端、网络设备、终端程序、设备程序以及设备管理方法
CN1599445A (zh) 数据处理方法、数据处理装置
CN1484376A (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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20081210

Termination date: 20180124

CF01 Termination of patent right due to non-payment of annual fee