CN100388630C - 具有矩阵转换技术的循环冗余码计算方法及系统 - Google Patents

具有矩阵转换技术的循环冗余码计算方法及系统 Download PDF

Info

Publication number
CN100388630C
CN100388630C CNB2004100703056A CN200410070305A CN100388630C CN 100388630 C CN100388630 C CN 100388630C CN B2004100703056 A CNB2004100703056 A CN B2004100703056A CN 200410070305 A CN200410070305 A CN 200410070305A CN 100388630 C CN100388630 C CN 100388630C
Authority
CN
China
Prior art keywords
matrix
message
crc
generator matrix
kenel
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.)
Expired - Fee Related
Application number
CNB2004100703056A
Other languages
English (en)
Other versions
CN1630204A (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.)
Macronix International Co Ltd
Original Assignee
Macronix International 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 Macronix International Co Ltd filed Critical Macronix International Co Ltd
Publication of CN1630204A publication Critical patent/CN1630204A/zh
Application granted granted Critical
Publication of CN100388630C publication Critical patent/CN100388630C/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

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)

Abstract

一种循环冗余码计算方法及系统被提供,以从一讯息产生循环冗余码,其增加处理时间且易于实施。一线性映像矩阵被使用于一线性反馈位移缓存器的运算,以产生该循环冗余码,而且在该映像矩阵中由在映像该输入讯息到该循环冗余码的计算的前实施一或多列运算该线性映像矩阵减少该非零字段的最大值。正反器被同时地插入在该产生器矩阵之前,以得到一管线结构以便进一步增加该运算速度。

Description

具有矩阵转换技术的循环冗余码计算方法及系统
技术领域
本发明有关一种平行化循环冗余码(Cyclic Redundancy Code;CRC)计算,特别是关于一种具有一矩阵转换技术的高效能CRC计算方法及系统。
背景技术
在储存及传送系统中,CRC被使用一段很长的时间,以保护正确的数字资料,特别是在使用于传送及数据处理的应用中,CRC是一种重大错误侦测的工具。因为CRC的架构容易使用及侦测大等级的错误,因此通常使用于检查正确的资料。CRC为一种加总值,在一传输媒介之上,加总值随资料被传送在一来源节点及一目标节点之间,该来源节点利用一预先决定的多项式计算被传送资料的CRC及当时传送资料与CRC一起到目标节点,在目标节点被接收资料的CRC是利用预先决定的产生器多项式独立地产生及从来源节点被接收的CRC被比较以检查是否错误发生在传送期间。目标的资料或讯息同样为二进制的多项式,其CRC相当于一特定的产生器多项式由先提升讯息多项式至一适合的次方被产生及当时由产生器多项式除以讯息多项式获得其余数。为了CRC的产生,资料位典型地是串行式输入至一CRC产生器按顺序产生适当的CRC码以与资料一起传送。传统地CRC码是由线性反馈位移缓存器(Linear Feedback Shift Register;LFSR)电路产生。一LFSR得到输入资料及位移穿过一正反器的序列在连续时脉周期。该位移缓存器的装置输出及资料输入经由互斥或门反馈至正反器。一LFSR可能被定义在一产生器多项式方面,其是关于经由一多项式表示的输入资料及CRC码以及产生器多项式方面的″+″系一互斥或门动作。正反器的状态在位移程序完成后为CRC码。
例如,ATM利用一FCS字段得到CRC错误侦测码以作错误检查。在一ATM系统中确保正确的传送或处理讯息是由附加在FCS讯息的末端传送此讯息,因此此讯息能在接收端被检查以正确的传送。FCS码已被标准化以正确检查资料就像在ANSI X3.139-1987的文件第28及29页所述。所有的CRC码组成一有限的杰罗斯场域(Galois Field;GF),以及属于GF的CRC 32码由下列产生器多项式的32阶所产生:
g(x)=x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1.
这个32阶数的产生器多项式是被选择当作一标准以在以太网络作错误检查而且当时由ATM标准选择当作AAL5的错误检查。在电路中为了计算FCS或检查讯息,在GF中一LFSR执行一位一位的乘法运算,即,在取多项式的模数上产生GF,以及在最高位(MSB)先输入的方式中由每个讯息的位被输入至LFSR并由反馈执行除法。在FCS程序结束时有某些讯息是在位移缓存器内,即,除法的余数。
在大型数字系统中,因为硬件的速度快,其当作CRC产生器有更好的效率。CRCs硬件的缺点是许多硬件需要增加成本、尺寸及复杂度以及减少可靠度。利用软件执行CRCs是大家所熟悉的,由于其速度不可避免的变慢因此使用并不普遍。那些熟习该项技术的人士选择一高阶的多项式将导致较大的错误被发现。然而,由于电路应用在大尺寸系统,所需执行的硬件变得相当复杂以及昂贵地而且所要求的软件需要大量的计算。数种CRC产生器改善的方法被使用,例如,由利用CRC程序产生由选择多项式所结合所有可能构成的表格,其加总值的产生变成一表格来查询。这CRC程序被认为是最快速有效完成的软件,但是其需花费大量的专用内存。早期的CRC利用LFSR的构想来实现,在LFSR中多项式的分割为一次处理一位。然而,CRC所产生串行式的处理相当地慢,当技术演进时,单一位的CRC产生不能够运算高速数据处理及传送,因此发展平行的CRC算法以符合这些需求。现行的CRC算法被限制在平行的程度,其关键的理由是根植于LFSRs的观念。所有现行的算法都尝试解决相同的问题,即,如何平行化一位一位LFSRs的运算,结果,在平行的程度从未超过LFSRs的尺度。
因此,一种平行化CRC计算的方法及系统乃为所冀,以减少CRC码产生的步骤。
发明内容
本发明被应用于一简化CRC计算的方法,由加速CRC产生的处理并简化系统的电路。
在一方法及系统中简化CRC的计算,根据本发明,一线性映像矩阵被使用于LFSR的运算以产生该CRC,而且在该映像矩阵中由在映像该输入讯息到该循环冗余码的计算的前实施一或多列运算该线性映像矩阵减少该非零字段的最大值。在该映像矩阵中各种的转换矩阵被提供使得该非零字段的最大值的减少。另外,在双字符型式CRC 32的例子方面,根据该输入讯息长度的类型,在该传送端上,该输入讯息被垫入特定的哑位,或在该接收端上,该CRC的输出被比较特定的态样(Pattern)。
本发明的目的是这样实现的:一种具有矩阵转换技术的循环冗余码计算的方法,其特征在于,包括下列步骤:
定义一产生器矩阵具有一非零字段的最大值以作为一线性反馈位移缓存器符合一线性地格式映像一输入向量至一余数向量;
转换该产生器矩阵至一相似矩阵以减少该非零字段的最大值;
将该讯息以该格式安排输入到该输入向量中;以及
由该相似矩阵与该输入向量相乘转换该讯息成一循环冗余码。
一种具有矩阵转换技术的循环冗余码计算系统,其特征在于,包括:
将该讯息以该格式安排输入到一输入向量中的装置;
一产生器矩阵具有一非零字段的最大值以作为一线性反馈位移缓存器符合一线性地格式映像一输入向量至一余数向量;
转换该产生器矩阵至一相似矩阵的装置,以减少该非零字段的最大值;以及
该相似矩阵与该输入向量相乘的装置。
附图说明
图1显示一多项式产生器的两个架构中分别从MSB及LSB端位移进入LFSR的讯息;
图2显示图1线性映像的两个架构;
图3显示单位元型式CRC 32产生的映像矩阵及其反矩阵;
图4显示字节型式CRC 32产生的电路图;
图5显示字节型式CRC 32产生的映像矩阵及其反矩阵;
图6显示应用于图四的架构1中,符合具有一矩阵转换的CRC计算电路;
图7显示具有一管线结构的CRC产生器,其是由在图6中显示电路的S转换的输出额外插入一32位型态正反器;
图8显示具有一管线结构的CRC检查器符合在图7中所显示的电路;
图9显示一用于双字符型式CRC 32的矩阵U的良好解;
图10显示一矩阵S的良好解符合图9的矩阵U;
图11显示一用于传送字节型式CRC 32产生器的矩阵U的良好解;
图12显示一矩阵S的良好解符合图11的矩阵U;
图13显示一用于传送字节型式CRC 32产生器的电路符合图11的矩阵U及图12的矩阵S;
图14显示一用于接收字节型式CRC 32检查器的矩阵U的良好解;
图15显示一矩阵S的良好解符合图14的矩阵U;以及
图16显示一用于接收字节型式CRC 32检查器的电路符合图14的矩阵U及图15的矩阵S。
具体实施方式
系统化格式中的循环码
一个(n,k)线性码C被称为一循环码,若在C中每一循环码向量的位移亦是在C中的一个码向量,是众所周知的。在传送端上算出一循环码在一系统的形成,让讯息被译码为
M=(mk-1...m1m0)T,    (EQ-1)
以及对应的讯息多项式为
m(x)=m0xk-1+m1xk-2+...+mk-2x+mk-1,    (EQ-2)
之后m(x)乘上xn-k,数学式EQ-2成
xn-km(x)=m0xn-1+m1xn-2+...+mk-2xn-k+1+mk-1xn-k,    (EQ-3)
然后,xn-km(x)除上产生器多项式g(x),数学式EQ-3变成
xn-km(x)=q(x)g(x)+r(x),    (EQ-4)
由重新整理数学式EQ-4及将余数的符号反转以取代原本的余数,将得到一码字多项式
xn-km(x)+r(x)=q(x)g(x),    (EQ-5)
显然地,这一码字多项式可被产生器多项式g(x)整除。
由上所述,可以归纳在一系统化格式中的循环码包括:
步骤1.讯息m(x)乘上xn-k
步骤2.xn-km(x)除上产生器多项式g(x)得到余数r(x);以及
步骤3.结合r(x)及xn-km(x)以得到码字多项式xn-km(x)+r(x)。
同样地,在接收端上为了检查被接收码字的完整性,由被接收的序列被产生器多项式g(x)整除来验证。
缩短的循环码
给一个(n,k)循环码C,若码向量的集合最高1个位的信息数字都是0,那将变成2k-1的码向量以及形成一线性C的子码。若1个0的信息数字被删除,将得到一2k-1向量的集合,其长度为n-1。这些缩短的向量形成一(n-1,k-1)线性码,这个码被称为一缩短的循环码且不是循环的。
除法器的实现
不管一循环码是进行编码或译码,杰罗斯场域GF(2)的除法器是必要的。例如,一简单的线性反馈位移缓存器(Linear Feedback Shift Register;LFSR)系用以实现除法器。再者,依照被除数序列由MSB端或LSB端位移进入LFSR,有两个架构用以达到一除法器的实现,即
架构1:讯息从MSB端被位移进入LFSR,其数学等式为
m(x)xn-kmodg(x),    (EQ-6)
架构2:讯息从LSB端被位移进入LFSR,其数学等式为
m(x)modg(x),    (EQ-7)
如图所示,图1所显示的两个电路为产生器多项式g(x)=x3+x2+1的两个架构。
线性映像
再者,在图1所显示的线性反馈位移缓存器可以被当作一数学地线性映像,如图2所示。由于相同的产生器多项式g(x)=x3+x2+1,可以得到G映像:
g0(2)=gi(2)  gi(1),    (EQ-8a)
g0(1)=gi(0),以及       (EQ-8b)
g0(0)=gi(2),           (EQ-8c)
这个线性映像可以被表示在一矩阵中,例如
g 0 ( 2 ) g 0 ( 1 ) g 0 ( 0 ) = G g i ( 2 ) g i ( 1 ) g i ( 0 ) - - - ( EQ - 9 )
其中
G = 1 1 0 0 0 1 1 0 0 - - - ( EQ - 10 )
一般来说,矩阵G为可逆的而且其反矩阵
G - 1 = 0 0 1 1 0 1 0 1 0 - - - ( EQ - 11 )
根据架构1及2,所存在的递归数学式系介于多项式产生器g(x)的D型正反器的输出及编码讯息的输入之间,如
架构1:
R(k)=G(R(k-1)+M(k-1)),以及           (EQ-12)
架构2:
R(k)=GR(k-1)+M(k-1),                 (EQ-13)
进一步追踪D型正反器的输出,即,在架构1中,除法的余数结果为
R(0)=I,                              (EQ-14a)
R(1)=G(R(0)+M(0))=GI+GM,            (EQ-14b)
R(2)=G(R(1)+M(1))
=G2I+G2M(0)+GM(1),                   (EQ-14c)
R(k)=G(R(k-1)+M(k-1))
=GkI+GkM(0)+Gk-1M(1)+...+GM(k-1)。    (EQ-14d)
FCS的产生
在802.3所制订的标准中,使用CRC 32以产生FCS以及产生器多项式系
g(x)=x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1,
(EQ-15)
在数学上,由下列的程序来定义CRC的值符合一给予的讯框:
a.)前32位的讯框被互补;
b.)k位的讯框被当作是多项式m(x)阶数k-1的系数;
c.)m(x)与x32相乘以及与g(x)相除,以提出一余数r(x)的阶数小于或等于31;
d.)r(x)的系数被当作是一32位序列;以及
e.)互补该位序列并得到FCS f(x)。
在程序a中,揭露两种实施的方法:
方法1:直接地互补讯息的前32位;以及
方法2:把D型正反器初始化为一特定值,例如,架构1的0xffffffff及架构2的0x46af6449。
映像矩阵G及其反矩阵G-1被显示在图3中。
在接收端上,当讯框的整体被得到,架构1CRC检查器的输出与0xc704dd7b的值作比较以检查被接收的讯框的完整性。其理由在此处被解释。
使传送讯息(除了FCS之外)使用一多项式的形式来表现
m(x)=m0xk-1+m1xk-2+...+mk-2x+mk-1,    (EQ-16)
以及定义一多项式c(x)的31阶数所有的系数
c(x)=1x31+1x30+...+1x2+1x+1,    (EQ-17)
然后由程序c产生余数r(x)
r(x)=(m(x)+c(x)xk-32)x32modg(x),    (EQ-18)
之后实施程序d到e,其将产生FCS及传送序列
f(x)=r(x),以及        (EQ-19)
n(x)=m(x)x32+f(x),    (EQ-20)
在接收端上,若这个讯框序列的完整被维持,其除法的余数将是
s(x)=(n(x)+c(x)xk)x32modg(x)
=(m(x)x32+f(x)+c(x)xk)x32modg(x)
=(m(x)x32+c(x)xk+f(x))x32modg(x)。    (EQ-21)
由数学式EQ-18,数学式EQ-21可以进一步被修改为
s(x)=(q(x)g(x)+r(x)+f(x))x32modg(x)
=(r(x)+f(x))x32modg(x)
=c(x)x32modg(x)
=[0xc704dd7b][x31...x11]T。    (EQ-22)
基于相似的推导,若架构2被使用,其检查态样是0xffffffff的值,能够进一步被得到。
平行化CRC计算
到目前为止编码讯息每次一个位被连续地输入到CRC计算,然而,在高速应用时,CRC计算被要求在每次具有多个讯息位同时输出的能力以增加处理能力,例如,字节型式。因此,前述的主要结构提出维持两个架构以及在映像矩阵具有仅仅些微的差异。
使输入讯息及正反器的状态分别被表示成一向量形式,如
M(k)=[mk0...0]T,以及       (EQ-23)
R(k)=[rk 31rk 30...rk 0]T,    (EQ-24)
追踪R(k)受到M(k)值的影响,
首先,R(0)=0,                          (EQ-25a)
然后,R(1)=G(R(0)+M(0))=GM(0),以及    (EQ-25b)
R(2)=G(R(1)+M(1))=G2M(0)+GM(1),       (EQ-25c)
可以进一步证实
G2M(0)=m0×G2矩阵的第一行,以及         (EQ-26a)
GM(1)=m1×G矩阵的第一行。               (EQ-26b)
定义一个具有非零字段1(32)的新向量,如
M1(k)=[mk 1-1mk 1-2...mk 00...0]T          (EQ-27a)
=[mk*1mk*1+1...mk*1+1-10...0]T,       (EQ-27b)
当1=2及k=0时,成为
M2(0)=[m0m1...0...0]T,                 (EQ-28)
以及进一步得到
G2M2(0)=m0×G2矩阵的第一行+m1×G2矩阵的第二行,    (EQ-29)
检查G矩阵的内容,可以发现
G矩阵的第一行=G2矩阵的第二行,                     (EQ-30)
因此,可得到
G2M2(0)=G2M(0)+GM(1),                             (EQ-31)
以及其更包括
G1M1(0)=G1M(0)+G1-1M(1)+...+GM(1-1),当1 32时。    (EQ-32)
当每次讯息被输入到字节型式的格式中,输入讯息及计算的余数向量被表示为
M 8 ( k ) = m 7 k m 6 k . . . m 0 k 0 . . . 0 T 1 × 32 , - - - ( EQ - 33 )
R ( k ) = r 31 k r 30 k . . . r 0 k T 1 × 32 , - - - ( EQ - 34 )
若架构1被使用,递归输入讯息的数学式及计算的余数为
R(k+1)=T(R(k)+M8(k)),    (EQ-35)
而且其电路被显示在图4中。
同样地,若架构2被使用,递归数学式将为
R(k+1)=TR(k)+M8(k),      (EQ-36)
而且其电路亦被显示在图4中。
关于数学式EQ-35及36,映像矩阵T及其反矩阵被显示在图5中,以及矩阵T中在每一列右边的数字表示各列具有几个非零字段。例如,在矩阵T中,第1列具有四个非零字段以及这些列中具有最大值的非零字段系第5、12及13列,值为7。在图5的矩阵T,对于一特定列,非零字段的数目-1等于GF(2)加法器(模数2)所需的数目。若在矩阵T中非零字段的最大值减少,由于在矩阵乘法或递归程序中计算的大幅度减少,CRC电路的运算速度可以进一步被提升。
类似性矩阵的定义:
若有两个矩阵T及U,其关系为
U=STS-1,    (EQ-37)
其中S为一可逆矩阵,矩阵U与矩阵T称为具有类似性。基于具有类似性的矩阵可以得到两个特点
a.)Tk=S-1UkS,以及
b.)若T是可反逆的,则U亦是可反逆的。
将以上的特点代入数学式EQ-12及以T取代G将得到
R(k)=S-1US(R(k-1)+M(k-1)),    (EQ-38a)
SR(k)=U(SR(k-1)+SM(k-1))。     (EQ-38b)
R ^ ( k ) = SR ( k ) , 以及    (EQ-39a)
M ^ ( k ) = SM ( k ) , (EQ-39b)
然后
R ^ ( k ) = U ( R ^ ( k - 1 ) + M ^ ( k - 1 ) ) , (EQ-40)
在图6显示符合数学式EQ-40的电路。
再者,为了形成在图7显示的管线结构,在图6显示的电路中S转换的输出额外地插入一32位型式正反器,不会影响数学式。
另一方面,若CRC计算被应用于接收端,为了与Pi作比较而提出一种替代的方法以忽略实际上
Figure C20041007030500154
的硬件操作,即,比较正反器的输出与SPi的值,如前述所言其可以被达成。前述结果的电路被显示在图8。
为了方便,令Ψ(T)代表非零字段的最大值在矩阵T的所有列。分析图7的电路,若Ψ(U)及Ψ(S)均小于Ψ(T),将可得到一优点是CRC计算可以操作在一更高的时脉速率。为了寻找这类的矩阵U及S,提出一个策略由乘上一些基本列运算矩阵R(i,j)使矩阵S被产生,这种作用是为了第i列与第j列相加以从而产生一新的第j列。关于一3×3的矩阵T,例如,产生另一矩阵U,其第0及1列系与矩阵T的第0及1列相同而且矩阵U的第2列系矩阵T第0及2列的总和,矩阵U可以由在矩阵T的左边乘上一列运算矩阵被得到
R ( 0,2 ) = 1 0 0 0 1 0 1 0 1 , - - - ( EQ - 41 )
此外,R(0,2)的反矩阵将等于R(0,2),即
R ( 0,2 ) * R ( 0,2 ) = 1 0 0 0 1 0 0 0 1 = I , 以及    (EQ-42)
因此
R - 1 ( 0,2 ) = R ( 0,2 ) . - - - ( EQ - 43 )
矩阵S及U的搜寻算法
步骤1:令S(0)=I,S-1(0)=I,U(0)=T以及k=0。
步骤2:若存在一列运算矩阵R(i,j),使得
Ψ(R(i,j)U(k)R(i,j))<Ψ(U(k))及
Ψ(R(i,j)S(k))Ψ(T)两数学式成立,则进行步骤3,反之则进行
步骤4。
步骤3:S(k+1)=R(i,j)S(k),S-1(k+1)=S-1(k)R(i,j),
U(k+1)=R(i,j)U(k)R(i,j),以及k=k+1,然后进行步骤2。
步骤4:令S=S(k),S-1=S-1(k),以及U=U(k),
于是STS-1=U,Ψ(U)<Ψ(T),以及Ψ(S)Ψ(T)。
双字符型式CRC 32
藉由执行程序以实现上述的步骤搜寻后,矩阵S及U总共具有242个解,以满足在双字符型式CRC 32例子中的尺寸,其良好解被显示在图9及图10中。
然而,在字节型式的格式中除了讯息输入的例子,媒体存取控制(MAC)讯框以八位格式为基础,而且处理讯息的长度并未永远被4整除。因此,当双字符型式CRC的计算被使用时,为了具有双字符型式的格式而在讯息上垫入某些哑位。哑位垫上的两个策略被进一步的提出:
策略1:在传送端处理讯息的前缀前面垫上某些具有0值的8位元素;以及
策略2:在接收端处理讯息的字尾后面垫上某些具有0值的8位元素。
当每次讯息被输入到双字符型式的格式中,输入讯息及计算的余数向量为
M 32 ( k ) = m 31 k m 30 k . . . m 0 k T 1 × 32 , 以及    (EQ-44a)
R ( k ) = r 31 k r 30 k . . . r 0 k T 1 × 32 . - - - ( EQ - 44 b )
类似于字节型式的状态,架构1及2的递归数学式R(k)为
R(k+1)=T(R(k)+M32(k)),以及    (EQ-45a)
R(k+1)=T R(k)+M32(k),    (EQ-45b)
在双字符型式的例子中,不论一个讯框的长度是多少,根据其长度可以被分成四种型态:4n、4n+1、4n+2及4n+3。若策略1被使用,正反器的初始值将随讯框的长度型态而改变,如下表所列
表1
    长度型态     垫入数量     C(0)     C(1)
    4n+3     1     00 ff ff ff     ff 00 00 00
    4n+2     2     00 00 ff ff     ff ff 00 00
    4n+1     3     00 00 00 ff     ff ff ff 00
    4n     4     00 00 00 00     ff ff ff ff
其递归数学式为
R(1)=TC(0),以及                     (EQ-46a)
R(2)=T(R(1)+C(1))=T2C(0)+TC(1),    (EQ-46b)
令正反器的初始值为R(0),使得
T2R(0)=T2C(0)+TC(1),或              (EQ-47a)
R(0)=C(0)+T-1C(1),                  (EQ-47b)
而R(0)被列表如下
表2
    长度型态     R(0)的初始值
    4n+3     0x9bf1a90f
    4n+2     0x09b93859
    4n+1     0x816474c5
    4n     0x46af6449
在策略2中,正反器的输出结果将随程序讯框的长度变化以检查一接收讯框的完整性,其暗示为输出Pi将与一特定的态样比较以下列的规则决定长度型态i
在i=1、2、3及4时,Pi=G8i[0xc704dd7b]T,    (EQ-48)
其态样如下
表3
    长度型态     垫入数量     态样(Pi)
    4n+3     1     0x4710bb9c
    4n+2     2     0x3a7abc72
    4n+1     3     0x8104c946
    4n     4     0x69044bb59
若方法1被使用,从表2及 R ^ ( k ) = SR ( k ) 的关系,在这个转换类型的CRC计算可得到正反器的初始值,如
表4
    长度型态     R(0)的初始值
    4n+3     0x9bf1a10b
    4n+2     0x09b9385d
    4n+1     0x816474c5
    4n     0x46af744d
同样地,基于转换及表3,若方法2被使用,其检查态样将是
表5
    长度型态     垫入数量     态样
    4n+3     1     0x4710a398
    4n+2     2     0x3a7abc72
    4n+1     3     0x8104d146
    4n     4     0x6904b35d
正常及转换类型CRC计算的比较被总结如下
表6
 Ψ(T)/ Ψ(S) 在T/U需要2XOR   在S需要2XOR   在S<sup>-1</sup>需要2XOR
   Ψ(U)
正常    17   NA     420     NA     NA
转换    15   3     394     4     4
字节型式CRC 32
由执行程序搜寻之后,矩阵S及U具有大于一亿个解,以满足在字节型式CRC 32例子中的尺寸,其两组良好解被提供,一组在传送端而另一组在接收端。关于传送CRC产生器的良好解,图11及12显示矩阵Utx-08及Stx-08,而且图13叙述对应的电路。关于接收CRC检查器的良好解,图14及图15显示矩阵Urx-08及Srx-08,而且图16叙述对应的电路。
正反器的初始值可以由数学式EQ-40被计算出。令
R ^ ( 4 ) = ( U 4 + U 3 + U 2 + U ) M ^ ( 0 ) , - - - ( EQ - 49 )
假设
R ^ ( 4 ) = U 4 R ^ ( 0 ) , - - - ( EQ - 50 )
那么
R ^ ( 0 ) = ( I + U - 1 + U - 2 + U - 3 ) M ^ ( 0 ) , - - - ( EQ - 51 )
正常及转换类型CRC计算的比较被总结如下
表7
  Ψ(T)/Ψ(U) Ψ(S) 2XOR needed in T/U    2XOR neededin S    2XOR neededin S<sup>-1</sup>
 正常   7 NA 106     NA    NA
 Tx转换   5 3 80     0    11
 Rx转换   5 4 78     0    0

Claims (22)

1.一种具有矩阵转换技术的循环冗余码计算的方法,其特征在于,包括下列步骤:
定义一产生器矩阵,所述产生器矩阵具有一非零字段的最大值;
将所述产生器矩阵作为一线性反馈位移缓存器,并以符合一线性地格式映像一输入向量至一余数向量;
转换该产生器矩阵至一相似矩阵以减少该非零字段的最大值;
将讯息以该格式安排输入到该输入向量中;以及
由该相似矩阵与该输入向量相乘转换该讯息成一循环冗余码。
2.如权利要求1所述的方法,其特征在于,该格式为一字节型式的格式。
3.如权利要求1所述的方法,其特征在于,该格式为一双字符型式的格式。
4.如权利要求3所述的方法,其特征在于,该将该讯息安排到该输入向量中的步骤包括垫入具有一个或多个哑位的该讯息。
5.如权利要求3所述的方法,其特征在于,更包括初始化具有特定值的该线性反馈位移缓存器。
6.如权利要求5所述的方法,其特征在于,更包括确认该讯息的长度型态以及根据该长度型态决定该特定值。
7.如权利要求3所述的方法,其特征在于,更包括比较具有一特定态样的循环冗余码。
8.如权利要求7所述的方法,其特征在于,更包括确认该讯息的长度型态以及根据该长度型态决定该特定态样。
9.如权利要求1所述的方法,其特征在于,该转换该讯息成一循环冗余码的步骤包括实施一重复的程序在该余数向量及该输入向量之间。
10.如权利要求1所述的方法,其特征在于,该转换该产生器矩阵至一相似矩阵的步骤,包括下列步骤:
选择一可逆的矩阵;
产生该可逆的矩阵的反矩阵;以及
将该可逆的矩阵、产生器矩阵及反矩阵相乘。
11.如权利要求10所述的方法,其特征在于,更包括插入一正反器的程序在相乘的该可逆的矩阵及产生器矩阵之间,以形成一管线结构。
12.一种具有矩阵转换技术的循环冗余码计算系统,其特征在于,包括:
将讯息以一格式安排输入到一输入向量中的装置;
一产生器矩阵,所述产生器矩阵具有一非零字段的最大值,所述产生器矩阵作为一线性反馈位移缓存器,并以符合一线性地格式映像一输入向量至一余数向量;
转换该产生器矩阵至一相似矩阵的装置,以减少该非零字段的最大值;以及
该相似矩阵与该输入向量相乘的装置。
13.如权利要求12所述的系统,其特征在于,该格式为一字节型式的格式。
14.如权利要求12所述的系统,其特征在于,该格式为一双字符型式的格式。
15.如权利要求14所述的系统,其特征在于,更包括一个或多个哑位,以垫入该讯息。
16.如权利要求14所述的系统,其特征在于,更包括一特定值,以初始化该线性反馈位移缓存器。
17.如权利要求16所述的系统,其特征在于,更包括确认该讯息的长度型态以及根据该长度型态决定该特定值的装置。
18.如权利要求14所述的系统,其特征在于,更包括比较具有一特定态样的循环冗余码结果的装置。
19.如权利要求18所述的系统,其特征在于,更包括确认该讯息的长度型态以及根据该长度型态决定该特定态样的装置。
20.如权利要求12所述的系统,其特征在于,该转换该产生器矩阵至一相似矩阵的装置包括相乘该产生器矩阵及一可逆的矩阵的装置。
21.如权利要求20所述的系统,其特征在于,该转换该产生器矩阵至一相似矩阵的装置包括相乘该可逆矩阵的反矩阵及该产生器矩阵的装置。
22.如权利要求12所述的系统,其特征在于,更包括形成一管线结构的装置在该讯息及循环冗余码结果。
CNB2004100703056A 2003-12-17 2004-07-26 具有矩阵转换技术的循环冗余码计算方法及系统 Expired - Fee Related CN100388630C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/736,548 US7219293B2 (en) 2003-12-17 2003-12-17 High performance CRC calculation method and system with a matrix transformation strategy
US10/736,548 2003-12-17

Publications (2)

Publication Number Publication Date
CN1630204A CN1630204A (zh) 2005-06-22
CN100388630C true CN100388630C (zh) 2008-05-14

Family

ID=34710468

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100703056A Expired - Fee Related CN100388630C (zh) 2003-12-17 2004-07-26 具有矩阵转换技术的循环冗余码计算方法及系统

Country Status (3)

Country Link
US (1) US7219293B2 (zh)
CN (1) CN100388630C (zh)
TW (1) TWI262657B (zh)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7356030B2 (en) * 2000-11-17 2008-04-08 Foundry Networks, Inc. Network switch cross point
US7596139B2 (en) 2000-11-17 2009-09-29 Foundry Networks, Inc. Backplane interface adapter with error control and redundant fabric
US7236490B2 (en) 2000-11-17 2007-06-26 Foundry Networks, Inc. Backplane interface adapter
US20120155466A1 (en) 2002-05-06 2012-06-21 Ian Edward Davis Method and apparatus for efficiently processing data packets in a computer network
US7468975B1 (en) 2002-05-06 2008-12-23 Foundry Networks, Inc. Flexible method for processing data packets in a network routing system for enhanced efficiency and monitoring capability
US7187687B1 (en) 2002-05-06 2007-03-06 Foundry Networks, Inc. Pipeline method and system for switching packets
US6901072B1 (en) 2003-05-15 2005-05-31 Foundry Networks, Inc. System and method for high speed packet transmission implementing dual transmit and receive pipelines
US7613991B1 (en) 2003-08-19 2009-11-03 Altera Corporation Method and apparatus for concurrent calculation of cyclic redundancy checks
US7320101B1 (en) * 2003-08-19 2008-01-15 Altera Corporation Fast parallel calculation of cyclic redundancy checks
US7817659B2 (en) 2004-03-26 2010-10-19 Foundry Networks, Llc Method and apparatus for aggregating input data streams
US8730961B1 (en) 2004-04-26 2014-05-20 Foundry Networks, Llc System and method for optimizing router lookup
US7657703B1 (en) 2004-10-29 2010-02-02 Foundry Networks, Inc. Double density content addressable memory (CAM) lookup scheme
US20070019805A1 (en) * 2005-06-28 2007-01-25 Trustees Of Boston University System employing systematic robust error detection coding to protect system element against errors with unknown probability distributions
US7624333B2 (en) * 2005-09-29 2009-11-24 Agere Systems Inc. Method and apparatus for N+1 packet level mesh protection
US8448162B2 (en) 2005-12-28 2013-05-21 Foundry Networks, Llc Hitless software upgrades
US7903654B2 (en) 2006-08-22 2011-03-08 Foundry Networks, Llc System and method for ECMP load sharing
US8238255B2 (en) 2006-11-22 2012-08-07 Foundry Networks, Llc Recovering from failures without impact on data traffic in a shared bus architecture
US7978614B2 (en) 2007-01-11 2011-07-12 Foundry Network, LLC Techniques for detecting non-receipt of fault detection protocol packets
US8069387B2 (en) * 2007-07-16 2011-11-29 Broadcom Corporation Turbo coding having combined turbo de-padding and rate matching de-padding
US8037399B2 (en) 2007-07-18 2011-10-11 Foundry Networks, Llc Techniques for segmented CRC design in high speed networks
US8271859B2 (en) * 2007-07-18 2012-09-18 Foundry Networks Llc Segmented CRC design in high speed networks
US8509236B2 (en) 2007-09-26 2013-08-13 Foundry Networks, Llc Techniques for selecting paths and/or trunk ports for forwarding traffic flows
US8090901B2 (en) 2009-05-14 2012-01-03 Brocade Communications Systems, Inc. TCAM management approach that minimize movements
US8599850B2 (en) 2009-09-21 2013-12-03 Brocade Communications Systems, Inc. Provisioning single or multistage networks using ethernet service instances (ESIs)
CN101795175B (zh) * 2010-02-23 2014-03-19 中兴通讯股份有限公司 数据的校验处理方法及装置
US8683291B2 (en) * 2011-06-16 2014-03-25 Lsi Corporation High throughput frame check sequence module architecture
KR101990972B1 (ko) 2012-10-04 2019-06-19 삼성전자 주식회사 메모리 시스템에서의 순환 중복 검사 동작 수행 방법 및 이를 이용한 메모리 컨트롤러
US9424125B2 (en) * 2013-01-16 2016-08-23 Google Inc. Consistent, disk-backed arrays
CN107667475A (zh) * 2015-05-20 2018-02-06 雅科贝思私人有限公司 一种用于循环冗余校验的排列演算方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6219817B1 (en) * 1998-04-20 2001-04-17 Intel Corporation Error correction and detection for faults on time multiplexed data lines
CN1324517A (zh) * 1998-08-26 2001-11-28 艾利森电话股份有限公司 用于生成循环冗余校验代码的并行循环冗余校验生成电路
US6519738B1 (en) * 2000-03-07 2003-02-11 International Business Machines Corporation Method and apparatus for high-speed CRC computation based on state-variable transformation
US20030126542A1 (en) * 2001-12-21 2003-07-03 Cox Darrell K. Method and apparatus for computing reed-solomon error magnitudes

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7181671B2 (en) * 2003-09-23 2007-02-20 Macronix International Co., Ltd. Parallelized CRC calculation method and system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6219817B1 (en) * 1998-04-20 2001-04-17 Intel Corporation Error correction and detection for faults on time multiplexed data lines
CN1324517A (zh) * 1998-08-26 2001-11-28 艾利森电话股份有限公司 用于生成循环冗余校验代码的并行循环冗余校验生成电路
US6519738B1 (en) * 2000-03-07 2003-02-11 International Business Machines Corporation Method and apparatus for high-speed CRC computation based on state-variable transformation
US20030126542A1 (en) * 2001-12-21 2003-07-03 Cox Darrell K. Method and apparatus for computing reed-solomon error magnitudes

Also Published As

Publication number Publication date
US20050149818A1 (en) 2005-07-07
CN1630204A (zh) 2005-06-22
US7219293B2 (en) 2007-05-15
TWI262657B (en) 2006-09-21
TW200522531A (en) 2005-07-01

Similar Documents

Publication Publication Date Title
CN100388630C (zh) 具有矩阵转换技术的循环冗余码计算方法及系统
Okada et al. Implementation of Elliptic Curve Cryptographic Coprocessor over GF (2 m) on an FPGA
US4745568A (en) Computational method and apparatus for finite field multiplication
CN102084335A (zh) 任意伽罗瓦域算术在可编程处理器上的实施
KR100309724B1 (ko) 리드 솔로몬 부호화 장치 및 방법
EP2426822A1 (en) Method and device for fast cyclic redundancy check coding
US5227992A (en) Operational method and apparatus over GF(2m) using a subfield GF(2.sup.
CN101854222B (zh) 一种数据处理的方法、通信装置和系统
CN1601913B (zh) 平行化循环冗余码计算方法及系统
KR100322739B1 (ko) 유한체연산방법및그장치
Premkumar A formal framework for conversion from binary to residue numbers
CN102184088A (zh) 一种基于串并结合实现有限域乘法的方法及装置
JPH11296347A (ja) ガロワ体乗算器及びガロワ体乗算の方法
JP2000004169A (ja) Crc演算方法及びcrc演算回路
CN108809323B (zh) 循环冗余校验码的生成方法和装置
Fuertes et al. Absolute-type shaft encoding using LFSR sequences with a prescribed length
CN112953878B (zh) n维时幅调制信号置换阵列星座图的构建方法及调制器
US6138134A (en) Computational method and apparatus for finite field multiplication
US20080154998A1 (en) Method and apparatus for dividing information bit string
CN115268839A (zh) 一种以2为基的蒙哥马利模乘方法及装置
RU2693190C1 (ru) Способ диагностики недвоичных блоковых кодов
US6484192B1 (en) Root finding method and root finding circuit of quadratic polynomial over finite field
US4875180A (en) Multi-function scaler for normalization of numbers
Sheidaeian et al. Parallel Computation of CRC Using Special Generator Polynomials
JP4105803B2 (ja) 楕円曲線演算装置

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: 20080514

Termination date: 20190726

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