高速通信系统中并行CRC计算及电路实现.pdf
《高速通信系统中并行CRC计算及电路实现.pdf》由会员分享,可在线阅读,更多相关《高速通信系统中并行CRC计算及电路实现.pdf(10页珍藏版)》请在咨信网上搜索。
1、第2 9 卷第1 期2024年1 月doi:10.13682/j.issn.2095-6533.2024.01.008高速通信系统中并行CRC计算及电路实现西安邮电大学学报JOURNAL OF XIAN UNIVERSITY OF POSTS AND TELECOMMUNICATIONSVol.29No.1Jan,2024张丽果1,张毅,曾泽沧,肖杉,曹亚莉,王睿?(1.西安邮电大学电子工程学院,陕西西安7 1 0 1 2 1;2.中国信息通信科技集团烽火通信科技股份有限公司,湖北武汉430 0 7 3摘要:针对高位宽数据情况下的循环穴余校验码(Cyclic RedundancyCode,C
2、RC)电路计算工作频率较低以及资源占用过多的问题,设计并实现了一种并行CRC计算方法。该方法将CRC计算拆分为数据 CRC计算和余数 CRC计算两个部分,余数CRC计算由多个余数CRC计算模块级联完成,数据CRC计算模块由固定逻辑表达式实现,对二者计算结果做模二加法即得到CRC计算结果。根据数据长度选择相应的数据CRC计算模块和余数CRC计算模块的组合,以适应高位宽可变数据长度的CRC计算。以1 0 o Gbps远程直接数据存取(RemoteDirectMemoryAccess,RD-MA)通信系统中的1 0 2 4bits数据位宽CRC-32的计算为例,在VCU118开发板上实现了该算法的硬
3、件电路。实验结果表明,所提设计仅使用47 6 0 个查找表和2 6 58 个触发器,整个系统带宽最高可达9 7.8 5Gbps,最高工作频率可达32 6 MHz。与其他相关方法相比,提出的方法具有较高的工作频率且资源占用较少。关键词:高速通信系统;循环穴余校验码;并行CRC计算;高位宽数据;远程直接数据存取中图分类号:TP399Parallel CRC calculation and circuit implementation inhigh speed communication systems文献标识码:A文章编号:2 0 9 5-6 533(2 0 2 4)0 1-0 0 7 1-1 0
4、ZHANG Liguo,ZHANG Yil,ZENG Zecang,XIAO Shan?,CAO Yali?,WANG Rui?(1.School of Electronic Engineering,Xian University of Posts and Telecommunications,Xian 710121,China;2.Fiberhome Communication Technology Company Limited,China Information CommunicationTechnologies Group Corporation,Wuhan 430073,China)
5、Abstract:A parallel cyclic redundancy code(CRC)calculation method is designed and implementedfor the CRC calculation circuits in case of high bit-width data,which has the problems of low calcu-lation working frequency and excessive resource consumption.The method splits the CRC calcula-tion into two
6、 parts:the data CRC calculation and the remainder CRC calculation.The remainderCRC calculation is accomplished by multiple remainder CRC calculation modules connected in cas-cade,and the data CRC calculation module is realized by a fixed logic expression,and the results ofthe two calculations are ob
7、tained by doing the modulo-two addition.The combination of data CRCcalculation module and residue CRC calculation module can be selected by data length to adapt tothe CRC calculation of variable data length with high bit width.Taking the CRC-32 calculation of1 024 bits data in 100 Gbps remote direct
8、 memory access(RDMA)communication system as an ex-ample,the hardware circuit of the algorithm is realized on the VCU118 development board.The ex-perimental results show that the proposed design uses only 4 760 lookup tables and 2 658 flip-flops,收稿日期:2 0 2 3-1 2-0 5基金项目:国家重点研发计划一“宽带通信和新型网络”专项项目(2 0 1
9、 9 YFB1803600)引文格式:张丽果,张毅,曾泽沧,等.高速通信系统中并行CRC计算及电路实现J.西安邮电大学学报,2 0 2 4,2 9(1):7 1-8 0.ZHANG L G,ZHANG Y,ZENG Z C,et al.Parallel CRC calculation and circuit implementation in high speed communication systemsJJ.Journal of Xian University of Posts and Telecommunications,2024,29(1):71-80.72and the whole
10、system bandwidth can reach up to 97.85 Gbps,and the maximum operating frequen-cy can reach up to 326 MHz.Compared with other related methods,the proposed method has ahigher operating frequency and less resource consumption.Keywords:high speed communication system;cyclic redundancy check code;paralle
11、l CRC splittingcalculation;high bit width;RDMA在数字通信领域中,循环穴余校验码(CyclicRedundancy Code,CRC)是一种被经常用于校验通信过程中数据传输准确性的计算方法,CRC由分组线性码的分支演变而来,该方法可以根据计算机的通信数据,通过特定的数学运算生成简短而又具有检错和纠错能力的校验码1。例如,在以太网通信过程中,每个传输中数据包的最后部分都包含有一组4个字节长度的帧检验序列(Frame Check Se-quence,FCS),用于存人该数据包的CRC计算结果2 。CRC编码不仅简单而且具有很好的纠错能力,在通信系统中得到
12、了广泛的应用1,然而由于CRC的校验范围是整个数据包,数据量较大且运算频繁,因此,一般使用硬件方法来实现CRC计算,以提高系统的性能3-5。采用线性反馈移位寄存器组(LinearFeedbackShift Register,LFSR)是CRC计算实现的经典方式之一6 。虽然LFSR方法简单且易于实现,但是该方法在每个时钟周期内只能处理一位二进制数据,效率较低,难以满足高速通信系统的数据处理要求,必须使用并行计算的方式来提高通信系统运行速度7-8 。实现并行CRC计算的常用方式有几种,例如,基于查找表(Look-Up Table,LUT)结构的计算方式9-1 0 ,但是,该类方法通常都需要存储大
13、量的CRC余数表项,表项的数目与并行计算数据位宽之间呈二次幂关系,因此,在高位宽数据的情况下,硬件实现需要大量的存储单元。文献1 1 提出了一种并行逻辑门的CRC算法,随着并行计算数据位宽的逐步变大,逻辑门的级数会逐渐增多从而限制系统的工作频率,虽然可以通过添加流水线1 2 或分段运算-拼接1 3 的方式进行优化,但是,该方法仍然存在资源占用较高的问题。文献1 4通过构建两种矩阵推导出了一种生成并行CRC计算逻辑表达式的方法,也是目前在通信系统并行CRC计算中经常采西安邮电大学学报用的方法之一3,该方法适合于对固定位宽的计算,然而,在通信系统中,数据包头/尾的数据长度通常是不固定的,该方法无法
14、适应可变数据位宽的计算方式C15,并行CRC计算需要能够灵活地改变计算的位宽。针对通信系统中长度不定的数据包头/尾的CRC计算问题,经典的CRC计算实现方式1 5-1 6 需要实现所有可能长度的CRC计算,随着数据位宽的逐步增大,导致所需要的CRC计算电路中的计算模块随之增多,资源的消耗较严重。文献1 7-1 8 使用了一种级联结构的CRC计算方式,不需要实现所有长度的计算模块,减少了资源消耗。但是,随着输人数据位宽的变大,该方法需要计算模块的级联级数相应增多,会导致系统工作频率的降低。文献1 9 利用回滚算法将CRC运算转变为矩阵线性运算,大规模的矩阵运算需要消耗大量的逻辑资源和存储单元。文
15、献2 0 分别提出步长5算法和流水线回溯算法,相较之前的方法,对资源开销及吞吐性能进行了优化,但由于该方法设置的流水级过多,仍存在资源消耗较大的问题。为了提高在数据位宽较大情况下的并行CRC计算电路的工作频率并减小资源占用,在并行CRC计算逻辑表达式生成方法1 4的基础上,拟提出一种适合应用于高速通信系统中的并行CRC计算方法,并进行电路实现。该方法对并行CRC计算进行拆分计算,将并行CRC计算拆分成数据 CRC计算和余数CRC计算这两个部分。其中,数据CRC计算由固定逻辑表达式完成,使用6 个计算模块实现6 4种不同长度的余数CRC计算,以减少资源消耗。另外,为了提高系统的工作频率,采用两级
16、流水线结构,设计并实现一种1 0 2 4 bits位宽的并行CRC拆分计算电路。1CRC校验原理循环几余校验码的工作原理为,在系统的2024年1 月第2 9 卷第1 期发送端,按照某种处理规则,对将要传输的原始n位二进制数据生成一个k位的校验码并附加在原始数据后面,最终形成一个n十k位的二进制数据串,然后将该数据串发送至系统的接收端。接收端按照与发送端采用的相同规则,对接收到的二进制数据串进行计算,并将计算结果与接收到的校验码进行对比,如果两者相同,则认为在传输过程中没有出现错误;否则,即代表发生了传输错误2 在CRC计算过程中使用的是模二运算方法。对于模运算而言,模二的加法和模二减法的结果是
17、相同的,都可以使用逻辑运算“异或”来实现。模二乘法可以使用逻辑运算“与”实现,模二除法运算只有在除数为1 且结果保持不变的情况下才有效,也可以认为是逻辑“异或 运算1 。例如,对一组发送端待发送的n位二进制数据序列D=dn-1,dn-,,d i,d o,其被预先约定为一组k+1位的二进制序列G=gh,g k-1,g 1,g o,对D使用模二除法3 进行运算,得到一个k位的余数二进制序列R=rk-1,r r-2,,r 1,r o,该序列即为CRC校验码,最后,将R附加到D之后,在发送端形成新的n十k位二进制数据序列M=d,-1,dn-2,di,do,r.-,r.-2,.,ri,ro,并将其发送至
18、接收端。根据循环穴余校验码的校验原理1,k位CRC校验码的生成方式可以表示为Da)=Q(a)+R()G()G()式中:D()表示以二进制序列D为系数的n一1 次多项式,即D()=dn-1-1+dn-2-2+.+do;G()表示以二进制序列G为系数的k次多项式,即G()=gu+gk-1ak-1+.+go;R()表示以二进制序列R为系数的k一1 次多项式,即R()=r-1 at-1+rt-2 ak-+.+ro;Q()表示D()乘以 后对G()使用多项式模二除法运算所得的商。式(1)中使用乘D()实质上是将D()的幂次提高至n十k一1 次,表现为在其对应的二进制序列D末尾后附加了k个O,为简单计,还
19、可以将式(1)重新表示为R()=ReG()张丽果,等:高速通信系统中并行CRC计算及电路实现这个过程可以表示为R()=ReG()式中,M(a)代表以二进制序列M为系数的n十k一1次多项式,即 M(a)=d.-1 an+k-1+d,-2 a+k-+.+d*+r.-ak-1+r-2a-2+ro若式(3)中R()的计算结果为零,则M()=D()十R(),代表数据传输正确;反之,则认为数据传输发生了错误。经典的CRC校验码计算电路采用线性反馈移位寄存器组实现6 ,图1 为经典LFSR串行CRC计算电路结构示意图。从图中可以看出,输人端输人串行二进制数据,图中的gk,g k-1,g 1,g。对应二进制序
20、列G中的值;r,r k-1,r i,r。对应二进制序列R中的值。模二除法使用异或门来实现。当数据串行输人结束后,寄存器组当前的输出即为最终的CRC校验码。这种实现方式虽然便于硬件实现,但由于每个周期只能输入1 bit数据,因此效率较低。数据输入(1)图1 经典LFSR串行CRC计算电路结构示意图对于并行CRC计算的实现而言,在实现过程中,存在数据包头/尾计算的问题2 1。以位宽为6 4 bits的并行CRC计算为例,一个长度为1 30 Bytes数据包的计算完成需要1 7 个周期。前1 6 个周期CRC计算的数据长度均为6 4bits,最后一个周期数据长度为1 6 bits,因此,CRC计算长
21、度也需要相应地调整为 1 6 bits。一次数据位宽为n的并行CRC运算结果与LFSR寄存器组移位n次所得的结果相当,这个输出结果与n位输人以及k位寄存器初始状态的逻辑运算关系是固定的1 4。设R。表示当前周期k位D()(2)73式中,Re代表对括号内的分式进行取余运算。接收端在收到n十k位二进制序列M后,需要使用与接收端同样的规则对M进行模二除法运算。(3)CRC输出CRC计算的结果,则可以将输出结果与初始状态的74逻辑运算关系表示为R。=CRC_G e n R,D 式中:R,表示k位寄存器初始状态的二进制序列;D表示当前周期n位二进制序列;CRC_Gen为CRC固定的逻辑表达函数,其输人为
22、R,和D。根据如式(4)所示的逻辑关系,在每个周期内可以计算 n位数据的 CRC,计算结果R。要作为下一个周期数据计算寄存器的初始值。这种计算方式有效地改善了串行计算效率较低的问题,但是,该方法无法有效处理通信系统中数据包头/尾不定数据长度的CRC计算问题。为应对数据包头/尾不定数据长度的CRC计算问题,经典的设计实现方式为,采用分块并行CRC计算的思路1 5-1 6 。图2 为分块并行CRC计算经典结构示意图。图中,MUX(Multiplexer)为多路选择器,CRCD8、C RC D 1 6、和CRC D64分别表示计算长度为8、1 6、和6 4bits的CRC计算块,data7:0、d
23、a t a 1 5:0 、和data63:0分别表示输人数据的低8 位、低1 6 位、和低6 4位。数据长度data63:0CRCD64data23:0CRCD24data15:0CRCD16data7:0CRCD8图2 分块并行CRC计算经典结构示意图如图2 所示,以输入数据位宽为6 4的40 Gb/s以太网通信系统为例,6 4 bits的输入数据中可能包含8、1 6、和6 4bits这8 种数据长度,将这8 种长度的数据分别并行输人至CRCD8、C RC D 1 6、和CRC D64这8 个CRC计算模块中,然后进行相应的CRC计算,并根据当前的数据长度输出相应的CRC计算结果。随着现代对
24、通信系统高速率需求的快速增长,为了满足对高速通信系统性能的要求,并行CRC计算的输人数据位宽也在不断增长。随着输人数据位宽的不断增长,计算模块的个数也会呈线性增长。例如,当输人数据位宽变为51 2 bits时,就需要西安邮电大学学报64个不同长度的CRC计算模块,另外,大位宽CRC(4)计算块的逻辑链通常较长1 9 ,会出现工作频率较低以及资源占用过多等问题,不能满足高速、实时通信的要求。2并行CRC拆分计算原理为了适应大位宽数据条件下,数据包头/尾不定数据长度的并行CRC计算,同时为了减少CRC计算电路的资源占用,提出一种并行CRC拆分的计算思路。将传统的并行计算拆分为余数CRC计算和数据C
25、RC计算两个部分,并将余数CRC计算拆分为不同长度的级联计算模块,以适应不同有效数据长度的CRC计算问题。对于总线位宽为n的输人数据,并行CRC计算结果由当前寄存器的初始值以及输人数据共同决定。在计算的第一个周期内,根据CRC算法的不同,寄存器初始值为不同的定值,其余计算周期的寄存器初始值为上一周期CRC计算结果。可以将n位输入数据的k位CRC计算结果序列表示为e(rR,(a)+aD()R;+i()=ReG()式中:R,()表示以R,为系数的k次多项式,其中,MUXCRC输出2024年1 月(5)R,表示第i周期k位寄存器的初始值,即第i一1 周期的CRC计算结果;R;+1()表示以R;+1为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高速 通信 系统 并行 CRC 计算 电路 实现
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【自信****多点】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【自信****多点】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。