平行化循环冗余码计算方法及系统的制作方法

文档序号:7506944阅读:247来源:国知局
专利名称:平行化循环冗余码计算方法及系统的制作方法
技术领域
本发明是有关一种平行化循环冗余码(Cyclic Redundancy Code;CRC)计算方法及系统,特别是关于一种应用于产生及检查CRC 32的方法及系统,尤其是在讯框检查序列(Frame Check Sequence;FCS)系统。
背景技术
在储存及传送系统中,CRC被使用一段很长的时间,以保护正确的数字数据,特别是在使用于传送及数据处理的应用中,CRC是一种重大错误侦测的工具。因为CRC的架构容易使用及侦测大等级的错误,因此通常使用于检查正确的数据。CRC是一种加总值,在一传输媒介之上,加总值随数据被传送在一来源节点及一目标节点之间,该来源节点利用一预先决定的多项式计算被传送数据的CRC及当时传送数据与CRC一起到目标节点,在目标节点被接收数据的CRC是利用预先决定的产生器多项式独立地产生及从来源节点被接收的CRC被比较以检查是否错误发生在传送期间。目标的数据或信息同样是二进制的多项式,其CRC相当于一特定的产生器多项式借由先提升信息多项式至一适合的次方被产生及当时借由产生器多项式除以信息多项式获得其余数。为了CRC的产生,数据位元典型地是串行式输入至一CRC产生器按顺序产生适当的CRC码以与数据一起传送。传统地CRC码是由线性回授位移缓存器(Linear FeedbackShift 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,因此LFSR为了CRC的产生对输入信息的计算成一简化的矩阵乘法。提供各种线性的映射矩阵以处理信息输入在字节式、字符型式及双字符型式。另外,在字符型式及双字符型式CRC32的例子方面,根据该输入信息长度的类型,在该传送端上,该输入信息被垫入特定的哑位元,或在该接收端上,该CRC的输出被比较特定的态样(Pattern)。
本发明是这样实现的一种对于一信息平行化循环冗余码计算的方法,包括下列步骤准备一产生器矩阵作为一线性回授位移缓存器,以符合一线性地格式映射一输入向量到一余数向量;将该信息以该格式安排输入到该输入向量中;该产生器矩阵与该输入向量相乘以得到该信息;以及产生一循环冗余码。
一种平行化循环冗余码计算的系统,以查证一信息,其特征在于所述平行化循环冗余码计算的系统包括将该信息以该格式安排输入到一输入向量中的功能手段;一产生器矩阵作为一线性回授位移缓存器,以符合该线性地格式映射该输入向量到一余数向量;以及产生一循环冗余码的功能手段。


图1是显示一产生器多项式的两个架构中分别从MSB及LSB端位移进入LFSR的信息;图2是显示图1线性映射的两个架构;图3是显示单位元型式CRC 32产生的映射矩阵及其反矩阵;图4是显示字节型式CRC 32产生的电路图;图5是显示字节型式CRC 32产生的映射矩阵及其反矩阵;图6是显示字符型式CRC 32产生的映射矩阵及其反矩阵;图7是显示字符型式CRC 32产生的电路图;图8是显示双字符型式CRC 32产生的映射矩阵及其反矩阵;以及图9是显示双字符型式CRC 32产生的电路图。
具体实施例方式
系统化格式中的循环码一个(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)这个线性映射可以被表示在一矩阵中,例如g0(2)g0(1)g0(0)=Ggi(2)gi(1)gi(0)...(EQ-9)]]>其中G=110001100...(EQ-10)]]>一般来说,矩阵G是可逆的而且其反矩阵是G-1=001101010...(EQ-11)]]>根据架构1及2,所存在的递归数学式是介于多项式产生器g(x)的D型正反器的输出及编码信息的输入之间,如架构1
R(k)=G(R(k-1)+M(k-1)),以及 (EQ-12)架构2R(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)=
[x31…x11]T。 (EQ-22)基于相似的推导,若架构2被使用,其检查态样是0xffffffff的值,能够进一步被得到。
平行化CRC计算到目前为止编码信息每次一个位元被连续地输入到CRC计算,然而,在高速应用时,CRC计算被要求在每次具有多个信息位元同时输出的能力以增加处理能力,例如,字节型式。因此,前述的主要结构提出维持两个架构以及在映射矩阵具有仅仅些微的差异。
使输入信息及正反器的状态分别被表示成一向量形式,如M(k)=[mk0…0]T,以及(EQ-23)R(k)=[rk31rk30…rk0]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)=[mk1-1mk1-2…mk00…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)
字节型式CRC 32当每次信息被输入到字节型式的格式中,输入信息及计算的余数向量被表示为M8(k)=mk7mk6...mk00...01×32T,---(EQ-33)]]>R(k)=rk31rk30...rk01×32T,---(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。
字符型式CRC 32当每次信息被输入到字符型式的格式中,输入信息及计算的余数向量为M16(k)=mk15mk14...mk00...01×32T---(EQ-37)]]>R(k)=rk31rk30...rk01×32T---(EQ-38)]]>类似于字节型式格式的状态,架构1及2的递归数学式为在架构1中,R(k+1)=T(R(k)+M16(k)),以及(EQ-39)在架构2中,R(k+1)=TR(k)+M16(k)(EQ-40)由于数学式EQ-39及40,矩阵T及其反矩阵T-1被显示在图6中,而且其电路被显示在图7中。
然而,媒体存取控制(MAC)讯框以8位元格式为基础,而且处理信息的长度并未永远被2整除。因此,当字符型式CRC计算被使用时,在信息上被垫上某些哑位元是为了具有字符型式的格式。哑位元垫上的两个策略被进一步的提出策略1在传送端处理信息的字首前面垫上某些具有0值的8位元素;以及策略2在接收端处理信息的字尾后面垫上某些具有0值的8位元素。
在字符型式的例子中,不论一个讯框的长度是多少,根据其长度可以被分成两种型态2n及2n+1。若策略1被使用,正反器的初始值将随讯框的长度型态而改变,如下表所列表1

为了互补程序化信息的前32位元,在表1中的C(0)、C(1)及C(2)向量被加到前3个信息区块,而且在计算上R(x)随C(i)的影响为R(1)=TC(0), (EQ-41a)R(2)=T(R(1)+C(1))=T2C(0)+TC(1),以及(EQ-41b)R(3)=T(R(2)+C(2))=T3C(0)T2C(1)+TC(2), (EQ-41c)R(x)的初始值在经过3次的递归后相当于C(i)的影响,即T3R(0)=T3C(0)+T2C(1)+TC(2),或 (EQ-42a)R(0)=C(0)+T-1C(1)+T-2C(2), (EQ-42b)其总结为表2

关于策略2,正反器的输出结果将随程序讯框的长度变化以检查一接收讯框的完整性,其暗示为输出Pi将与一特定的态样比较以决定长度的型态i,如在i=1及2时,Pi=G8i
T, (EQ-43)其列表如下表3

双字符型式CRC32当每次信息被输入到双字符型式的格式中,输入信息及计算的余数向量为M32(k)=mk31mk30...mk01×32T,]]>以及(EQ-44a)R(k)=rk31rk30...rk01×32T,---(EQ-44b)]]>类似于字节型式的状态,架构1及2的递归数学式R(k)为R(k+1)=T(R(k)+M32(k)),以及(EQ-45a)R(k+1)=T R(k)+M32(k), (EQ-45b)矩阵T被定义在图8中,而且其对应的电路被显示在图9中。
上述说明中在架构2中正反器的初始值,可以由下列推导得到G32R(0)=
T,(EQ-46a)R(0)=(G32)-1
T=
T。
(EQ-46b)再者,不论一个讯框的长度是多少,根据其长度可以被分成4种型态4n、4n+1、4n+2及4n+3。
当策略1被使用,正反器的初始值将随讯框的长度型态而改变,如下表

利用聚碳酸酯树脂作为保持件6的基片。对于构成红外线截止滤光器20的材料,使用氧化钛作为高折射率的材料,和利用氧化硅作为低折射率的材料。
在红外线截止滤光器20的有效工作面的中心部分上的最大光束入射角θi1为2°;而在最外面的周边部分上的最大光束入射角θi2为10°。这里,光束入射角定义为入射光与入射面的法线的夹角。
红外线截止滤光器20的有效工作面的中心部分(入射角为0°~2°)的半功率波长(half-power wavelength)λ1为630~629nm,而最外面的周边部分(最大入射角为10°)的半功率波长λ2为625nm。从这里可知,中心部分和最外面的周边部分的半功率波长的差别为4~5nm,相当小。
半功率波长的定义为在图8的图形中,透射率为最大透射率T1的一半T1/2的波长。图8中,垂直坐标表示透射率(%)。水平坐标表示波长(nm)。
在图8的图形中,中心部分的波长λ1用P1所示位置处的波长表示,而最外面的周边部分的波长λ2用P2所示位置处的波长表示。
权利要求
1.一种对于一信息平行化循环冗余码计算的方法,包括下列步骤准备一产生器矩阵作为一线性回授位移缓存器,以符合一线性地格式映射一输入向量到一余数向量;将该信息以该格式安排输入到该输入向量中;该产生器矩阵与该输入向量相乘以得到该信息;以及产生一循环冗余码。
2.根据权利要求1所述的平行化循环冗余码计算的方法,其中该线性回授位移缓存器被配置,以使该信息从一最高位元端被位移至其中。
3.根据权利要求1所述的平行化循环冗余码计算的方法,其中该线性回授位移缓存器被配置,以使该信息从一最低位元端被位移至其中。
4.根据权利要求1所述的平行化循环冗余码计算的方法,其中格式是一字节型式的格式。
5.根据权利要求1所述的平行化循环冗余码计算的方法,其中该格式是一字符型式的格式。
6.根据权利要求1所述的平行化循环冗余码计算的方法,其中该格式是一双字符型式的格式。
7.根据权利要求5所述的平行化循环冗余码计算的方法,其中该将该信息安排到该输入向量的步骤包括垫入具有一个或多个哑位元的该信息。
8.根据权利要求5所述的平行化循环冗余码计算的方法,更包括初始化具有特定值的该线性回授位移缓存器。
9.根据权利要求8所述的平行化循环冗余码计算的方法,更包括确认该信息的长度型态以及根据该长度型态决定该特定值。
10.根据权利要求5所述的平行化循环冗余码计算的方法,更包括比较该具有一特定态样的循环冗余码。
11.根据权利要求10所述的平行化循环冗余码计算的方法,更包括确认该信息的长度型态以及根据该长度型态决定该特定态样。
12.根据权利要求6所述的平行化循环冗余码计算的方法,其中该将该信息安排到该输入向量的步骤包括垫入具有一个或多个哑位元的该信息。
13.根据权利要求6所述的平行化循环冗余码计算的方法,更包括初始化具有特定值的该线性回授位移缓存器。
14.根据权利要求13所述的平行化循环冗余码计算的方法,更包括确认该信息的长度型态以及根据该长度型态决定该特定值。
15.根据权利要求6所述的平行化循环冗余码计算的方法,更包括比较该具有一特定态样的循环冗余码。
16.根据权利要求15所述的平行化循环冗余码计算的方法,更包括确认该信息的长度型态以及根据该长度型态决定该特定态样。
17.根据权利要求1所述的平行化循环冗余码计算的方法,其中该产生器矩阵与该输入向量相乘的步骤包括实施一重复的程序在该余数向量及该输入向量之间。
18.一种平行化循环冗余码计算的系统,以查证一信息,其特征在于所述平行化循环冗余码计算的系统包括将该信息以该格式安排输入到一输入向量中的功能手段;一产生器矩阵作为一线性回授位移缓存器,以符合该线性地格式映射该输入向量到一余数向量;以及产生一循环冗余码的功能手段。
19.根据权利要求18所述的平行化循环冗余码计算的系统,其特征在于该线性回授位移缓存器被配置,以使该信息从一最高位元端被位移至其中。
20.根据权利要求18所述的平行化循环冗余码计算的系统,其特征在于该线性回授位移缓存器被配置,以使该信息从一最低位元端被位移至其中。
21.根据权利要求18所述的平行化循环冗余码计算的系统,其特征在于格式是一字节型式的格式。
22.根据权利要求18所述的平行化循环冗余码计算的系统,其特征在于该格式是一字符型式的格式。
23.根据权利要求18所述的平行化循环冗余码计算的系统,其特征在于该格式是一双字符型式的格式。
24.根据权利要求22所述的平行化循环冗余码计算的系统,其特征在于更包括一个或多个哑位元,以垫入该信息。
25.根据权利要求22所述的平行化循环冗余码计算的系统,其特征在于更包括一特定值,以初始化该线性回授位移缓存器。
26.根据权利要求25所述的平行化循环冗余码计算的系统,其特征在于更包括确认该信息的长度型态以及根据该长度型态决定该特定值的功能手段。
27.根据权利要求22所述的平行化循环冗余码计算的系统,其特征在于更包括比较该具有一特定态样的循环冗余码的功能手段。
28.根据权利要求27所述的平行化循环冗余码计算的系统,其特征在于更包括确认该信息的长度型态以及根据该长度型态决定该特定态样的功能手段。
29.根据权利要求23所述的平行化循环冗余码计算的系统,其特征在于更包括一个或多个哑位元,以垫入该信息。
30.根据权利要求23所述的平行化循环冗余码计算的系统,其特征在于更包括一特定值,以初始化该线性回授位移缓存器。
31.根据权利要求30所述的平行化循环冗余码计算的系统,其特征在于确认该信息的长度型态以及根据该长度型态决定该特定值的功能手段。
32.根据权利要求23所述的平行化循环冗余码计算的系统,其特征在于更包括比较该具有一特定态样的循环冗余码的功能手段。
33.根据权利要求32所述的平行化循环冗余码计算的系统,其特征在于更包括确认该信息的长度型态以及根据该长度型态决定该特定态样的功能手段。
全文摘要
本发明是一种平行化循环冗余码计算的方法及系统,以提供一输入信息同时改善处理时间及简单的装置。设计一线性的映射矩阵符合线性回授位移缓存器以产生该循环冗余码,而该线性回授位移缓存器为了循环冗余码的产生对输入信息的计算成一简化的矩阵乘法。在字符型式及双字符型式CRC 32的例子,在该传送端上依照输入信息长度的类型,使该输入信息被垫上特定的哑位元在输入信息字首的前面,或在该接收端上依照从接收信息衍生的循环冗余码的输出长度类型,使该循环冗余码的输出被比较特定的态样。
文档编号H03M13/00GK1601913SQ20041007081
公开日2005年3月30日 申请日期2004年7月20日 优先权日2003年9月23日
发明者蔡典儒, 张家勋 申请人:旺宏电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1