一种多通道多位并行计算CRC码的方法技术

技术编号:2876829 阅读:378 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种利用多通道多位并行计算循环冗余校验(CRC)码的方法。该方法直接将整个待计算CRC码数据按每个长度为L#-[S]位分割成多个数据块,并将各数据块按顺序依次放入第(1,2,3,…,N-1,N)个通道,由该N个通道同时对各自通道中的数据块进行CRC计算,得到第(1,2,3,…,N-1,N)个通道中数据块的CRC子码(r#-[1],r#-[2],…,r#-[N-1],r#-[N]);再通过构建除法余数变换表,对第1到第N-1个通道的CRC子码(r#-[1],r#-[2],…,r#-[N-1])进行除法余数变换查表,得到变换后的CRC子码(R#-[1],R#-[2],…,R#-[N-1]);最后对变换后的CRC子码(R#-[1],R#-[2],…,R#-[N-1])逐一进行异或计算后,再与r#-[N]进行异或计算,得到整个待计算数据CRC码。该方法具有计算速度快、易于实现、成本低之优点,可用于10G以太网和40GbpsSDH等未来高速网络中的CRC计算。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及数据传输
,具体地说是一种用多通道多位并行计算循环冗余校验(CRC)码计算的方法。
技术介绍
在各种各样的传输系统和网络中,为保证数据在对等端点间正确传递,需要一定的纠检错编码。通常发送端要将需传送的数据用CRC进行校验码计算,并将校验码附在传送的数据后一起发送。接收端要用相同的方法进行校验码计算,将所得的CRC码与接收的CRC码进行比较,如果一致说明数据传送无误,反之数据传送有差错。如果出现差错,可采用编码原理进行差错纠正或用各种自动重发请求(ARQ)技术让发送端重新传送该数据副本。现有技术中,CRC编码产生和解码校验计算均可由软件或硬件完成。软件计算和硬件计算均分为串行与并行两种方式。其中,硬件串行计算可用已有芯片或由除法电路完成,如高级数据链路控制(HDLC)实现芯片等。硬件并行计算由异或逻辑电路和余数缓存器及相关控制电路组成,并采用可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)等器件实现。由于硬件或软件采用并行运算均可有效地提高计算速度,故已有文献多为研究特定位数的并行计算原理与性能。例如,达雷尔K·考克斯和芒索A·基希泰专利技术的“用于循环冗余校验的有效计算方法及装置”(申请号00132908),就是“在一个使用流水线处理器上,通过将输入数据分为若干独立的数据流,对每个独立的数据流进行一个循环冗余校验计算,同时执行对循环冗余校验查询表的访问。因为该循环兀余校验处理独立的数据流,从查询表读出循环冗余校验的等待时间被有效地减少”,如图4所示。该方法由于采用交替取出数据放入每个队列,每一个队列用软件查表法计算CRC码。因而存在以下缺点1)交替取出数据控制复杂,而且降低了计算速度。假定待计算数据分为3个队列,计算数据表示为d1d2d3d4d5d6…(d1为每次计算数据,i=1,2,…),它将数据分为(d1d4…),(d2d5…),(d3d6…)三个队列,每个队列依次交替取数。这种方法比将数据直接分为三块控制复杂,直接分为三个队列的数据可表示为(d1,d2,…,dN-1,dN),(dN+1,dN+2,…,dN+N-1,dN+N),(d2N+1,d2N+2,…,d2N+N-1,d2N+N);2)每一个队列采用软件查表法计算CRC码,无法满足10G以太网(1G=109)、40Gbps同步数字序列SDH所需超高速CRC计算(bps=bit per second,比特(位)/秒);3)该专利申请中输入数据与循环冗余校验进行异或,只适用于输入数据宽度与循环冗余校验码宽度相等,而不能用于输入数据宽度大于或小于循环冗余校验码宽度,如图5所示。又如,G·梅斯贝格专利技术的“用于生成循环冗余校验代码的并行循环冗余校验生成电路”(国际申请号标PCT/EP99/06207,国际申请日990824),主要涉及一个并行CRC生成电路,通过输入T位并行数据和前一次的CRC码值,求得当前的CRC码值。其主要贡献是将某一位CRC码与并行数据、前一次的CRC码值的相关项数,最大限度地减少。但删除并行数据和的一次的CRC码值的相关项数中重复项需要软件计算,而且没有考虑数据的对齐处理,即如果按某一特定位数(如16)完成CRC码计算,但如果最后一次计算时的数据位数小于特定位数,则该电路无法工作。在已有的CRC码计算方法中,一般仅有一个计算器,这对于10G以太网和40Gbps SDH传输中所需超高速计算来说是非常困难的。如morethanip公司提供的10G以太网CRC计算集成电路中间产品(IP),采用64位并行计算,需要156MHz的工作时钟。由于该计算的工作时钟频率高,因而存在着抗干扰能力差和可靠性差,及成本高的缺陷。
技术实现思路
本专利技术的目的在于克服上述已有技术的不足,提出了一种用多通道多位并行计算CRC码的方法。实现本专利技术目的技术方案是将计算数据直接分成多块,由多个计算器同时运行计算CRC码,每一块数据在每个计算器中独立计算,且每个计算器采用多位并行CRC码硬件计算法,还考虑对齐处理而适用于任意数据长度,通过对所有单个通道的CRC码进行相关合并计算,得到整个待计算数据的CRC码。其过程如下(1)直接将整个待计算CRC码的数据按每个长度为LS位分割成多个数据块,并设最后一个数据块的长度为LF位(1≤LF≤LS);(2)将各数据块按顺序依次放入第(1,2,3,…,N-1,N)个(队列)通道,由该N个通道同时对各自通道中的数据块进行CRC计算,得到第(1、2、…N)个通道中数据块的CRC子码(r1,r2,…,rN-1,rN);(3)构建除法余数变换表,用该表对第1到第N-1个通道的CRC子码(r1,r2,…,rN-1)进行除法余数查表,得到变换后的(N-1)个CRC子码(R1,R2,…,RN-1);(4)对变换后的(N-1)个CRC子码(R1,R2,…,RN-1)逐一进行异或计算,再将其结果与rN进行异或计算,得到整个待计算数据的CRC码。上述用多通道实现多位并行计算CRC码方法,对每个通道中数据的并行计算,是通过普通数据余数表,根据除法器的输入位数W与CRC码的位数R的不同关系进行,即当初始W>R时,其工作过程为(1)给余数r置初值(一般为全0或全1),设指针p指向待计算数据开始处,令计数器c的初值等于(Kj-W),Kj是第j(1≤j≤N)个通道数据块总位数;(2)从p处取W位到b。如果W>R,将b的高R位b与r对应位异或(即模2加,用+表示),结果送入W位除法器,除法器的输出送入r,作为计算数据块的CRC码;否则根据W=R或W<R从图3b或3c的步骤(2)处进行最后一次计算。(3)如果c=0,结束计算,r为数据块的CRC码;否则,令p=p+W,执行{若c≥W,则c=c-W;否则令W=c,c=0},转步(2)。当W=R时,其工作过程为(1)给余数r置初值(一般为全0或全1),设指针p指向待计算数据开始处,令计数器c的初值等于(Kj-W),Kj是第j(1≤j≤N)个通道数据块总位数;(2)从p处取W比特到b,如果W=R,将b与r对应位异或,结果送入W位除法器,除法器的输出送入r,做为计算数据块的CRC码;否则,根据W<R从3c的步骤(2)处进行最后一次计算;(3)如果c=0,结束计算,r为数据块的CRC码;否则,令p=p+W,执行{若c>W,则c=c-W;否则令W=c,c=0},转步(2)。当W<R时,其工作过程为(1)给余数r置初值(一般为全0或全1),设指针p指向待计算数据开始处,令计数器c的初值等于(Kj-W),Kj是第j(1≤j≤N)个通道数据块总位数;(2)从p处取W比特到b。将r的最高W位r与待计算数据b异或,结果作为W位除法器的输入;除法器输出t的高(R-W)位t需要与r对应位异或,结果送入r,而t直接送入r;(3)如果c=0,结束计算,r为数据块的CRC码;否则,令p=p+W,执行{若c≥W,则c=c-W;否则W=c,c=0},转步(2)。上述多通道多位实现并行计算CRC码方法,其除法余数变换表按如下过程进行相关计算与列表(1)设待计算CRC码的数据比特序列为{mK-1,mK-2,...,mi,...,m2,m1,m0},其多项式为m(x)=mK-1xK-1+mK-2xK-2+...+mixi+本文档来自技高网
...

【技术保护点】
一种多通道多位并行计算CRC码的方法,按如下过程进行:(1)直接将整个待计算CRC码数据按每个长度为L↓[S]位分割成多个数据块,并设最后一个数据块的长度为L↓[F]位(1≤L↓[F]≤L↓[S]);(2)将各数据块按顺序依次放入第 (1,2,3,…,N-1,N)通道,由该N个通道同时对各自通道中的数据块进行CRC计算,得到第(1,2,3,…,N-1,N)个通道中数据块的CRC子码(r↓[1],r↓[2],…,r↓[N-1],r↓[N]);(3)构建除法余数变换表, 用该表对第1到第N-1个通道的CRC子码(r↓[1],r↓[2],…,r↓[N-1])进行除法余数输出查表得到变换后的CRC子码(R↓[1],R↓[2],…,R↓[N-1]);(4)对变换后的多个CRC子码(R↓[1],R↓[2],…, R↓[N-1])逐一进行异或计算,再将其结果与r↓[N]进行异或计算,得到整个待计算数据的CRC码。

【技术特征摘要】

【专利技术属性】
技术研发人员:徐展琦
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:87[中国|西安]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1