循环冗余校验加速方法、装置和接入网设备与流程

文档序号:18938674发布日期:2019-10-23 00:58阅读:307来源:国知局
循环冗余校验加速方法、装置和接入网设备与流程

本申请涉及无线通信技术领域,特别是涉及一种循环冗余校验加速方法、装置和接入网设备。



背景技术:

在现代数字通信系统中,层与层之间、装置与装置之间的数据传输不可避免地会产生错误。为了检测出该错误,不让其在网络中扩散开,3gpp(3rdgenerationpartnershipproject)对于数字通信系统中的每一级传输都规定了相应的循环冗余校验。

传统循环冗余校验技术,一般是使用软件来对循环冗余校验进行实施;在实现过程中,发明人发现传统技术中至少存在如下问题:系统对大数据量的实时性要求高,然而传统方法需要占用cpu(centralprocessingunit,中央处理器)较大的运算资源和内存资源,易导致cpu逻辑处理负荷高,效率低,时间长。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种循环冗余校验加速方法、装置和接入网设备。

为了实现上述目的,一方面,本发明实施例提供了一种从物理层角度实施的循环冗余校验加速方法,包括步骤:

物理层发送端,对来自媒体接入控制层的mac层数据包进行解析,得到第一解析信息;mac层数据包为媒体接入控制层构建的符合mac帧结构的数据包;

物理层发送端,基于第一解析信息完成对mac层数据包的crc计算,并为mac层数据包附加经crc计算得到的第一循环冗余校验位,且将附加第一循环冗余校验位的mac层数据包发送给物理层接收端;

物理层接收端,对附加第一循环冗余校验位的mac层数据包进行解析,得到第二解析信息;并基于第二解析信息完成对附加第一循环冗余校验位的mac层数据包的crc计算,得到第二循环冗余校验位;

物理层接收端比对第一循环冗余校验位与第二循环冗余校验位,并根据比对的结果完成数据上报。

在其中一个实施例中,第一解析信息包括帧头和帧体长度;

物理层发送端,对来自媒体接入控制层的mac层数据包进行解析,得到第一解析信息的步骤包括:

物理层发送端对mac层数据包进行缓存,并根据通信协议检测缓存内的mac层数据包,得到帧头;

物理层发送端根据通信协议和帧头,读取缓存内的mac层数据包,得到帧体长度。

在其中一个实施例中,mac层数据包包含媒体接入控制层根据通信协议选取出的循环冗余校验参数;循环冗余校验参数包括多项式长度和并行度;

物理层发送端,基于第一解析信息完成对mac层数据包的crc计算的步骤包括:

物理层发送端根据循环冗余校验参数,按照先进先出规则,以传输速率为基准取出缓存内的mac层数据包、进行第一循环冗余校验位的计算,并将计算后待下发的mac层数据包填入缓存中;

其中,以传输速率为基准取出缓存内的mac层数据包、进行第一循环冗余校验位的计算的步骤中:

物理层发送端根据数据包长度确认是否完成对mac层数据包的crc计算处理;数据包长度为根据mac层数据包开销和帧体长度得到;mac层数据包开销为基于通信协议确定。

在其中一个实施例中,第二解析信息包括帧头和帧体长度;

物理层接收端,对附加第一循环冗余校验位的mac层数据包进行解析,得到第二解析信息的步骤包括:

物理层接收端对附加第一循环冗余校验位的mac层数据包进行缓存,并根据通信协议检测缓存内的附加第一循环冗余校验位的mac层数据包,得到帧头;

物理层接收端根据通信协议和帧头,读取缓存内的附加第一循环冗余校验位的mac层数据包,得到帧体长度。

在其中一个实施例中,mac层数据包包含媒体接入控制层根据通信协议选取出的循环冗余校验参数;循环冗余校验参数包括多项式长度和并行度;

物理层接收端,基于第二解析信息完成对附加第一循环冗余校验位的mac层数据包的crc计算,得到第二循环冗余校验位的步骤包括:

物理层接收端根据循环冗余校验参数,按照先进先出规则,以传输速率为基准取出缓存内的附加第一循环冗余校验位的mac层数据包、进行第二循环冗余校验位的计算,并将计算后待下发的mac层数据包填入缓存中;

其中,以传输速率为基准取出缓存内的附加第一循环冗余校验位的mac层数据包、进行第二循环冗余校验位的计算的步骤中:

物理层接收端根据数据包长度确认是否完成对附加第一循环冗余校验位的mac层数据包的crc计算处理;数据包长度为根据mac层数据包开销、第一循环冗余校验位的长度和帧体长度得到;mac层数据包开销为基于通信协议确定。

另一方面,本发明实施例还提供了一种从媒体接入控制层角度实施的循环冗余校验加速方法,包括步骤:

媒体接入控制层构建符合mac帧结构的mac层数据包;

媒体接入控制层将mac层数据包下发给物理层发送端;

mac层数据包用于指示物理层发送端将附加第一循环冗余校验位的mac层数据包发送给物理层接收端;附加第一循环冗余校验位的mac层数据包由mac层数据包经物理层发送端附加第一循环冗余校验位得到;第一循环冗余校验位由mac层数据包、经物理层发送端基于第一解析信息完成crc计算得到;第一解析信息由mac层数据包经物理层发送端解析得到;

附加第一循环冗余校验位的mac层数据包用于指示物理层接收端比对第二循环冗余校验位与第一循环冗余校验位,并根据比对的结果完成数据上报;第二循环冗余校验位由附加第一循环冗余校验位的mac层数据包、经物理层接收端基于第二解析信息完成crc计算得到;第二解析信息由附加第一循环冗余校验位的mac层数据包经物理层接收端解析得到。

在其中一个实施例中,媒体接入控制层为基于arm架构实现;媒体接入控制层通过pcie或并口,将mac层数据包下发给物理层发送端。

在其中一个实施例中,媒体接入控制层,构建符合mac帧结构的mac层数据包的步骤包括:

媒体接入控制层根据通信协议选取循环冗余校验参数,并根据循环冗余校验参数构建符合mac帧结构、且空出相应循环冗余校验位位置的mac层数据包;

其中,循环冗余校验参数包括多项式长度和并行度。

一种从物理层角度实施的循环冗余校验加速装置,包括:

发送端循环冗余校验模块,用于对来自媒体接入控制层的mac层数据包进行解析,得到第一解析信息;mac层数据包为媒体接入控制层构建的符合mac帧结构的数据包;以及基于第一解析信息完成对mac层数据包的crc计算,并为mac层数据包附加经crc计算得到的第一循环冗余校验位,且将附加第一循环冗余校验位的mac层数据包发送给物理层接收端;

接收端循环冗余校验模块,用于对物理层接收端接收到的附加第一循环冗余校验位的mac层数据包进行解析,得到第二解析信息;并基于第二解析信息完成对附加第一循环冗余校验位的mac层数据包的crc计算,得到第二循环冗余校验位;以及比对第一循环冗余校验位与第二循环冗余校验位,并根据比对的结果完成数据上报。

一种从媒体接入控制层角度实施的循环冗余校验加速装置,包括:

mac层构建数据包模块,用于构建符合mac帧结构的mac层数据包;

mac层数据发送模块,用于将mac层数据包下发给物理层发送端;

mac层数据包用于指示物理层发送端将附加第一循环冗余校验位的mac层数据包发送给物理层接收端;附加第一循环冗余校验位的mac层数据包由mac层数据包经物理层发送端附加第一循环冗余校验位得到;第一循环冗余校验位由mac层数据包、经物理层发送端基于第一解析信息完成crc计算得到;第一解析信息由mac层数据包经物理层发送端解析得到;

附加第一循环冗余校验位的mac层数据包用于指示物理层接收端比对第二循环冗余校验位与第一循环冗余校验位,并根据比对的结果完成数据上报;第二循环冗余校验位由附加第一循环冗余校验位的mac层数据包、经物理层接收端基于第二解析信息完成crc计算得到;第二解析信息由附加第一循环冗余校验位的mac层数据包经物理层接收端解析得到。

一种接入网设备,接入网设备包括cpu和连接cpu的fpga(field-programmablegatearray,现场可编程门阵列);

cpu用于执行上述任一项从媒体接入控制层角度实施的循环冗余校验加速方法的步骤;

fpga用于执行上述任一项从物理层角度实施的循环冗余校验加速方法的步骤。

在其中一个实施例中,接入网设备为基站;基站包括宏基站、微基站、微微基站和皮基站。

在其中一个实施例中,cpu通过pcie或并口连接fpga。

一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一项的方法的步骤。

上述技术方案中的一个技术方案具有如下优点和有益效果:

本申请mac(mediaaccesscontrol,媒体接入控制)层根据通信协议,构建符合mac帧结构的数据包,并将数据包下发到物理层;然后,物理层通过解析mac层数据包的内容,对数据的循环冗余校验位进行实时计算;使得物理层与mac进行协同,让物理层理解mac的通信协议;本申请将mac层计算循环冗余校验的功能下沉到物理层计算,利用物理层丰富的逻辑资源减轻mac的计算负担,降低了mac层的计算复杂度,能实现对数据的循环冗余校验位的实时计算;本申请合理选取循环冗余校验参数,提高了数据中循环冗余校验位计算的实时性和有效性。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1为一个实施例中从物理层角度实施的循环冗余校验加速方法的示意性流程图;

图2为一个实施例中从mac层角度实施的循环冗余校验加速方法的示意性流程图;

图3为一个实施例中从基站角度实施的循环冗余校验加速方法的示意性流程图;

图4为一个实施例中从物理层角度实施的循环冗余校验加速装置的结构框图;

图5为一个实施例中从mac层角度实施的循环冗余校验加速装置的结构框图;

图6为一个实施例中从基站角度实施的循环冗余校验加速装置的结构框图;

图7为一个实施例中应用于接入网设备的循环冗余校验加速流程示意图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

传统循环冗余校验技术,主要包含两个关键技术点:1、循环冗余校验参数的选取;2、循环冗余校验的具体实施方法。针对关键技术点1:所需选取的循环冗余校验参数有两个,循环冗余校验位数和生成多项式。前者在总体上基本确定了循环冗余校验的性能和实施复杂度,一般来说,循环冗余校验位数越长,性能越好,实施复杂度越大。后者则是保证了循环冗余校验的随机性,在一定程度上也保证了其性能。针对关键技术点2:传统方法是使用软件来进行对循环冗余校验进行实施,该方法需要维护一个较大的查找表,这样需要占用cpu用较大的运算资源和内存资源,同时时延较大,容易成为系统性能的瓶颈,导致系统性能下降。

而本申请将循环冗余校验的功能下放到物理层,减轻了mac层的计算负担,从而提高了mac层的计算性能;本申请利用基于fpga芯片的物理层来实施循环冗余校验,能够有效降低计算循环冗余校验位的时延,从而提高系统的整体时延性能。

本申请提供的循环冗余校验加速方法,可以应用于无线通信系统中,尤其适用于微波通信系统中的循环冗余校验。具体的,可适用于5g(5thgenerationmobilenetworks)中的毫米波系统,应用前景广阔。

在一个实施例中,如图1所示,提供了一种循环冗余校验加速方法,以该方法应用于物理层为例进行说明,包括以下步骤:

步骤s102,物理层发送端,对来自媒体接入控制层的mac层数据包进行解析,得到第一解析信息;

其中,mac层数据包为媒体接入控制层构建的符合mac帧结构的数据包。

具体地,物理层发送端在接收到媒体接入控制层传输的mac层数据包后,需要进行解析,例如根据通信协议,对mac层下发的数据包进行解析;在一个具体的示例中,需要解析的变量(即第一解析信息)可以包括:mac层数据包的帧头和mac层数据包的帧体长度。需要说明的是,本申请中的通信协议与具体应用的通信系统相关。本申请可结合具体通信系统协议实现,需要mac层与物理层两个专业相互配合。

其中,mac数据包的帧头表示每个mac层数据包的起始位置,也是每个mac层数据包的分隔点;mac层数据包的帧体长度表示每个mac层数据包除了开销外的数据长度。

例如:mac层数据包的帧头可以用16个特殊的比特位来表示,如果用十六进制的数字来表示帧头,那么可以用0x4859来表示帧头;而mac层数据包的帧体长度可以用12个比特位来表示,因此帧体长度最大为8192个字节。

进一步的,在一个具体的实施例中,物理层发送端,对来自媒体接入控制层的mac层数据包进行解析,得到第一解析信息的步骤可以包括:

物理层发送端对mac层数据包进行缓存,并根据通信协议检测缓存内的mac层数据包,得到帧头;

物理层发送端根据通信协议和帧头,读取缓存内的mac层数据包,得到帧体长度。

具体而言,物理层发送端对mac层下发的数据包进行缓存,并检测mac层数据包的帧头和相应的帧体长度;在一个具体的示例中,物理层发送端先识别mac层数据包中的分隔符(即帧头),然后根据mac层数据包的结构,对mac层数据包的帧体长度进行解析。

需要说明的是,在实际应用中,数据是一点点发送的,而数据包的帧头有一定的长度。例如,数据发送的时候每次发1bit(比特),而帧头有10bit;对此本申请提出,对mac层下发的数据包进行缓存,例如必须缓存10bit数据,进而判断出,该10bit是不是帧头,而不是接收到1bit就进行判断,从而提高解析效率。

其中,mac层数据包的帧头和指示帧体长度的信息位置都可根据通信协议确定的。例如:通信协议中规定帧头为0x4859,物理层在检测到某16个连续比特位与0x4859相等,则认为此处为一个mac层数据包的起始位置。同时依据通信协议的规定,从帧头开始的第5个和第6个字节指示帧体的长度,因此物理层可以在相应位置读取当前mac层数据包的帧体长度。

步骤s104,物理层发送端,基于第一解析信息完成对mac层数据包的crc计算,并为mac层数据包附加经crc计算得到的第一循环冗余校验位,且将附加第一循环冗余校验位的mac层数据包发送给物理层接收端。

具体而言,物理层发送端在得到该mac包的长度后,对其进行相应的crc运算。物理层发送端在检测到mac层数据包的帧头和得到其数据包长度后,根据mac层数据包包含的循环冗余校验参数(该参数是由媒体接入控制层,即mac层根据通信协议选取得到的),实现在mac层数据包下发的同时进行循环冗余校验位的逐步计算;其中,本申请合理选取循环冗余校验参数,提高了数据中循环冗余校验位计算的实时性和有效性。

在一个具体的实施例中,mac层数据包包含媒体接入控制层根据通信协议选取出的循环冗余校验参数;循环冗余校验参数包括多项式长度和并行度;

物理层发送端,基于第一解析信息完成对mac层数据包的crc计算的步骤包括:

物理层发送端根据循环冗余校验参数,按照先进先出规则,以传输速率为基准取出缓存内的mac层数据包、进行第一循环冗余校验位的计算,并将计算后待下发的mac层数据包填入缓存中;

其中,以传输速率为基准取出缓存内的mac层数据包、进行第一循环冗余校验位的计算的步骤中:

物理层发送端根据数据包长度确认是否完成对mac层数据包的crc计算处理;数据包长度为根据mac层数据包开销和帧体长度得到;mac层数据包开销为基于通信协议确定。

具体而言,物理层发送端在检测到mac层数据包的帧头和得到其数据包长度后,可根据之前所得到的循环冗余校验参数,按照先进先出的原则,以传输速率为基准将缓存内的数据取出,进行循环冗余校验位的计算,同时将下发的数据填入缓存中,保持缓存中数据的进出平衡,实现在mac层数据包下发的同时进行循环冗余校验位的逐步计算。其中,并行度指的是单个时钟周期内处理的数据长度。

进一步的,物理层发送端可根据mac层数据包的数据包长度判断是否处理完当前的mac层数据包,若是,则为mac层数据包附加经crc(循环冗余校验,cyclicredundancycheck)计算得到的第一循环冗余校验位,否则执行循环冗余校验位逐步计算。其中,数据包的长度可根据帧体长度和mac层数据包开销确定,而后者则可根据系统通信协议确定。

例如:数据包指示帧体长度为4000个字节,根据通信协议,mac层数据包开销固定为11个字节,那么物理层发送端就能确定该数据包长度为4011个字节,从而判断是否处理完当前mac层数据包。若判断已处理完,则将循环冗余校验位附在mac层数据包的数据后面进行发送。

步骤s106,物理层接收端,对附加第一循环冗余校验位的mac层数据包进行解析,得到第二解析信息;并基于第二解析信息完成对附加第一循环冗余校验位的mac层数据包的crc计算,得到第二循环冗余校验位。

具体而言,物理层接收端可根据通信协议计算数据包循环冗余校验位。进一步的,物理层接收端在得到该附加第一循环冗余校验位的mac层数据包的长度后,对其进行相应的crc运算。

一方面,在一个具体的实施例中,第二解析信息包括帧头和帧体长度;

物理层接收端,对附加第一循环冗余校验位的mac层数据包进行解析,得到第二解析信息的步骤包括:

物理层接收端对附加第一循环冗余校验位的mac层数据包进行缓存,并根据通信协议检测缓存内的附加第一循环冗余校验位的mac层数据包,得到帧头;

物理层接收端根据通信协议和帧头,读取缓存内的附加第一循环冗余校验位的mac层数据包,得到帧体长度。

具体地,物理层接收端对从物理层发送端接收到的数据包进行缓存,并检测mac层数据包的帧头和相应的数据包长度;

其中,mac层数据包的帧头和指示数据包长度的信息位置都是根据通信协议确定的。例如:通信协议中规定帧头为0x4859,物理层在检测都某16个连续比特位与0x4859相等,则认为此处为一个mac层数据包的起始位置。同时通信协议规定,从帧头开始的第5个和第6个字节指示帧体的长度,因此物理层可以在相应位置读取当前mac层数据包的帧体长度。

另一方面,在一个具体的实施例中,mac层数据包包含媒体接入控制层根据通信协议选取出的循环冗余校验参数;循环冗余校验参数包括多项式长度和并行度;

物理层接收端,基于第二解析信息完成对附加第一循环冗余校验位的mac层数据包的crc计算,得到第二循环冗余校验位的步骤包括:

物理层接收端根据循环冗余校验参数,按照先进先出规则,以传输速率为基准取出缓存内的附加第一循环冗余校验位的mac层数据包、进行第二循环冗余校验位的计算,并将计算后待下发的mac层数据包填入缓存中;

其中,以传输速率为基准取出缓存内的附加第一循环冗余校验位的mac层数据包、进行第二循环冗余校验位的计算的步骤中:

物理层接收端根据数据包长度确认是否完成对附加第一循环冗余校验位的mac层数据包的crc计算处理;数据包长度为根据mac层数据包开销、第一循环冗余校验位的长度和帧体长度得到;mac层数据包开销为基于通信协议确定。

具体来说,物理层接收端在检测到mac层数据包的帧头和得到其数据包长度后,根据之前所得到的循环冗余校验参数,按照先进先出的原则,以传输速率为基准将缓存内的数据取出,进行循环冗余校验位的计算,同时将下发的数据填入缓存中,保持缓存中数据的进出平衡,实现在mac层数据包下发的同时进行循环冗余校验位的逐步计算。其中,本申请合理选取循环冗余校验参数,提高了数据中循环冗余校验位计算的实时性和有效性。

且物理层接收端可根据mac层数据包的长度判断是否处理完当前的mac层数据包,若是,则执行步骤s108,否则执行第二循环冗余校验位的逐步计算;

其中,附加第一循环冗余校验位的mac层数据包的数据包长度可根据第一循环冗余校验位、帧体长度和mac层数据包开销确定,而后者则是根据系统通信协议确定的。例如:数据包指示帧体长度为4000个字节,根据通信协议,mac层数据包开销固定为11个字节,那么物理层就能确定该数据包长度为4011个字节。假设添加的循环冗余校验位长度为4个字节,那么所需要处理数据包长度应该为4007个字节,从而判断是否处理完当前mac层数据包。

步骤s108,物理层接收端比对第一循环冗余校验位与第二循环冗余校验位,并根据比对的结果完成数据上报。

具体而言,物理层接收端比对计算所得的循环冗余校验位与接收得到的循环冗余校验位是否一致,完成比对结果和数据的上报。

需要说明的是,循环冗余校验的主要思想是先确定所需要的循环冗余校验成功的概率,进而确定所需添加的循环冗余校验位数及其相应的生成多项式。发送端根据生成多项式和输入的数据,计算出固定长度的循环冗余校验位,将其附加在数据后面一同传输。而接收端在接收到数据后,同样根据生成多项式和接收数据进行相同的计算,如果计算得到的循环冗余校验位与接收到的循环冗余校验位一致,则认为在之前所确定的概率下,所传输的数据没有发生错误,可以对其进行进一步处理;否则认为数据传输发生错误,需要将其丢弃。

而本申请将原先在mac层实施的循环冗余校验下沉到物理层来实施,充分利用了物理层逻辑电路资源,降低了mac层的计算复杂度,能实现对数据的循环冗余校验位的实时计算。进一步的,本申请合理选取循环冗余校验参数,提高了数据中循环冗余校验位计算的实时性和有效性。

此外,不同于传统技术重于描述如何在fpga中灵活实现不同位宽的循环冗余校验位的计算,或在循环冗余校验计算本身采用何种计算架构而加速;本申请致力于解决如何使得物理层(例如,fpga)与mac进行协同,让物理层理解mac的通信协议,从而将mac层(即媒体接入控制层)的循环冗余校验的功能下放到物理层中,对mac层的循环冗余校验进行加速。关于具体应用场景,本申请中提及的通信协议,可以指5g的毫米波通信协议。

在一个实施例中,如图2所示,提供了一种循环冗余校验加速方法,以该方法应用于mac层(即媒体接入控制层)为例进行说明,包括以下步骤:

步骤s202,媒体接入控制层构建符合mac帧结构的mac层数据包;

具体而言,mac层可根据通信协议,构建符合mac层帧结构的数据包。

进一步的,在一个具体的实施例中,媒体接入控制层,构建符合mac帧结构的mac层数据包的步骤可以包括:

媒体接入控制层根据通信协议选取循环冗余校验参数,并根据循环冗余校验参数构建符合mac帧结构、且空出相应循环冗余校验位位置的mac层数据包;其中,循环冗余校验参数包括多项式长度和并行度。

具体地,mac层根据通信协议,构建符合mac帧结构的数据包,同时空出相应的循环冗余校验位的位置。

进一步的,mac层根据传输协议通信协议中的时延、传输速率和误码率等要求,选择循环冗余校验的参数,例如多项式的长度,计算的并行度(单个时钟周期内处理的数据长度),构建符合mac帧结构的数据包,同时空出相应的循环冗余校验位的位置。

需要说明的是,本申请中通信协议的时延要求越高,传输速率要求越高,循环冗余校验的计算速度要求也就越高;而误码率要求越严格,对循环冗余校验多项式的长度要求也就越长。

步骤s204,媒体接入控制层将mac层数据包下发给物理层发送端;其中,mac层数据包用于指示物理层发送端将附加第一循环冗余校验位的mac层数据包发送给物理层接收端;附加第一循环冗余校验位的mac层数据包由mac层数据包经物理层发送端附加第一循环冗余校验位得到;第一循环冗余校验位由mac层数据包、经物理层发送端基于第一解析信息完成crc计算得到;第一解析信息由mac层数据包经物理层发送端解析得到;

而附加第一循环冗余校验位的mac层数据包用于指示物理层接收端比对第二循环冗余校验位与第一循环冗余校验位,并根据比对的结果完成数据上报;第二循环冗余校验位由附加第一循环冗余校验位的mac层数据包、经物理层接收端基于第二解析信息完成crc计算得到;第二解析信息由附加第一循环冗余校验位的mac层数据包经物理层接收端解析得到。

具体而言,mac层根据通信协议,构建符合mac帧结构的数据包,同时空出相应的循环冗余校验位的位置,将其通过pcie(pci-express,peripheralcomponentinterconnectexpress,高速串行计算机扩展总线标准)或者并口等装置下发到物理层;进而由物理层执行相应的循环冗余校验的流程,其中,物理层执行crc计算的具体流程,可参见前述于物理层执行的循环冗余校验加速方法,此处不再赘述。

在一个具体的实施例中,媒体接入控制层为基于arm架构实现;媒体接入控制层通过pcie或并口,将mac层数据包下发给物理层发送端。

以上,通信系统中的mac层大部分是基于arm架构的cpu进行实施,循环冗余校验位的计算对其负担较大,影响系统性能。本申请提出将循环冗余校验的功能下放到物理层,减轻了mac层的计算负担,从而提高了mac层的计算性能;同时,本申请利用物理层来实施循环冗余校验,能够有效降低计算循环冗余校验位的时延,从而提高系统的整体时延性能。

其中,本申请主要致力于解决如何使得物理层(例如,fpga)与mac进行协同,进而让物理层理解mac的通信协议,从而将mac层的循环冗余校验的功能下放到物理层中,利用物理层中丰富的电路逻辑资源,对数据的循环冗余校验位进行实时计算,加速了数据中循环冗余校验位的计算。

下面结合一个具体实例,对本申请进行详细说明,如图3所示,提供了一种循环冗余校验加速方法,以该方法应用于基站,具体应用于基站中的mac层(即媒体接入控制层)以及物理层为例进行说明,包括以下步骤:

步骤301,基站中的mac层根据通信协议,构建符合mac层帧结构的数据包,同时空出相应的循环冗余校验位的位置,将其通过pcie或者并口等装置下发到物理层。

具体地,为了使fpga(物理层)与mac进行协同,mac层根据通信协议中的时延、传输速率和误码率等要求,选择循环冗余校验的参数,例如多项式的长度,计算的并行度(单个时钟周期内处理的数据长度),构建符合mac帧结构的数据包,同时空出相应的循环冗余校验位的位置。

步骤302,基站中的物理层发送端根据通信协议,先对mac层下发的数据包进行解析。

步骤302中需要解析的变量分别包括:mac层数据包的帧头和mac层数据包的帧体长度;

其中,mac层数据包的帧头表示每个mac层数据包的起始位置,也是每个mac层数据包的分隔点;mac层数据包的帧体长度表示每个mac层数据包除了开销外的数据长度;

例如:mac层数据包的帧头可以用16个特殊的比特位来表示,如果用十六进制的数字来表示帧头,那么可以用0x4859来表示帧头;

mac层数据包的帧体长度可以用12个比特位来表示,因此帧体长度最大为8192个字节,如果mac层数据包的开销固定为11个字节(包括帧头和其他开销),那么整个mac层数据包的最大长度为8203个字节;

步骤302中物理层发送端根据通信协议计算数据包循环冗余校验位的方法可以为:

1)对mac层下发的数据包进行缓存,并检测mac层数据包的帧头和相应的数据包长度;

步骤1)中,mac层数据包的帧头和指示数据包长度的信息位置都是根据通信协议确定的。

例如:通信协议中规定帧头为0x4859,物理层在检测都某16个连续比特位与0x4859相等,则认为此处为一个mac层数据包的起始位置。同时通信协议规定,从帧头开始的第5个和第6个字节指示帧体的长度,因此物理层可以在相应位置读取当前mac层数据包的帧体长度。

2)在检测到mac层数据包的帧头和得到其数据包长度后,根据之前所得到的循环冗余校验参数,按照先进先出的原则,以传输速率为基准将缓存内的数据取出,进行循环冗余校验位的计算,同时将下发的数据填入缓存中,保持缓存中数据的进出平衡,实现在mac层数据包下发的同时进行循环冗余校验位的逐步计算;

3)根据mac层数据包的长度判断是否处理完当前的mac层数据包,若是,则执行步骤4),否则执行步骤2);

所述步骤3)中,数据包的长度要根据帧体长度和mac层数据包开销确定,而后者则是根据系统通信协议确定的。

例如:数据包指示帧体长度为4000个字节,根据通信协议,mac层数据包开销固定为11个字节,那么物理层就能确定该数据包长度为4011个字节,从而判断是否处理完当前mac层数据包。

4)将循环冗余校验位附在数据后面进行发送,执行步骤5)。

步骤303,物理层接收端根据通信协议计算数据包循环冗余校验位并进行比对。

具体的,物理层接收端根据通信协议计算数据包循环冗余校验位并进行比对的过程可以包括:

5)对从物理层发送端接收到的数据包进行缓存,并检测mac层数据包的帧头和相应的数据包长度;

步骤5)中,mac层数据包的帧头和指示数据包长度的信息位置都是根据通信协议确定的。

例如:通信协议中规定帧头为0x4859,物理层在检测都某16个连续比特位与0x4859相等,则认为此处为一个mac层数据包的起始位置。同时通信协议规定,从帧头开始的第5个和第6个字节指示帧体的长度,因此物理层可以在相应位置读取当前mac层数据包的帧体长度。

6)在检测到mac层数据包的帧头和得到其数据包长度后,根据之前所得到的循环冗余校验参数,按照先进先出的原则,以传输速率为基准将缓存内的数据取出,进行循环冗余校验位的计算,同时将下发的数据填入缓存中,保持缓存中数据的进出平衡,实现在mac层数据包下发的同时进行循环冗余校验位的逐步计算;

7)根据mac层数据包的长度判断是否处理完当前的mac层数据包,若是,则执行步骤8),否则执行步骤6);

其中,步骤7)中,数据包的长度可根据添加的循环冗余校验位长度、帧体长度和mac层数据包开销确定,而后者则是根据系统通信协议确定的。例如:数据包指示帧体长度为4000个字节,根据通信协议,mac层数据包开销固定为11个字节,那么物理层就能确定该数据包长度为4011个字节。假设添加的循环冗余校验位长度为4个字节,那么所需要处理数据包长度应该为4007个字节,从而判断是否处理完当前mac层数据包。

8)比对计算所得的循环冗余校验位与接收得到的循环冗余校验位是否一致,完成比对结果和数据的上报。

本申请mac层根据通信协议,构建符合mac帧结构的数据包,并将数据包下发到物理层;然后,物理层通过解析mac层数据包的内容,对数据的循环冗余校验位进行实时计算。本申请将mac层计算循环冗余校验的功能下沉到物理层计算,利用物理层丰富的逻辑资源减轻mac的计算负担,降低了mac层的计算复杂度,能实现对数据的循环冗余校验位的实时计算;本申请合理选取循环冗余校验参数,提高了数据中循环冗余校验位计算的实时性和有效性。

应该理解的是,虽然图1-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图4所示,提供了一种从物理层角度实施的循环冗余校验加速装置,包括:

发送端循环冗余校验模块410,用于对来自媒体接入控制层的mac层数据包进行解析,得到第一解析信息;mac层数据包为媒体接入控制层构建的符合mac帧结构的数据包;以及基于第一解析信息完成对mac层数据包的crc计算,并为mac层数据包附加经crc计算得到的第一循环冗余校验位,且将附加第一循环冗余校验位的mac层数据包发送给物理层接收端;

接收端循环冗余校验模块420,用于对物理层接收端接收到的附加第一循环冗余校验位的mac层数据包进行解析,得到第二解析信息;并基于第二解析信息完成对附加第一循环冗余校验位的mac层数据包的crc计算,得到第二循环冗余校验位;以及比对第一循环冗余校验位与第二循环冗余校验位,并根据比对的结果完成数据上报。

关于从物理层角度实施的循环冗余校验加速装置的具体限定可以参见上文中对于从物理层角度实施的循环冗余校验加速方法的限定,在此不再赘述。上述从物理层角度实施的循环冗余校验加速装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,如图5所示,提供了一种从媒体接入控制层角度实施的循环冗余校验加速装置,包括:

mac层构建数据包模块510,用于构建符合mac帧结构的mac层数据包;

mac层数据发送模块520,用于将mac层数据包下发给物理层发送端;

mac层数据包用于指示物理层发送端将附加第一循环冗余校验位的mac层数据包发送给物理层接收端;附加第一循环冗余校验位的mac层数据包由mac层数据包经物理层发送端附加第一循环冗余校验位得到;第一循环冗余校验位由mac层数据包、经物理层发送端基于第一解析信息完成crc计算得到;第一解析信息由mac层数据包经物理层发送端解析得到;

附加第一循环冗余校验位的mac层数据包用于指示物理层接收端比对第二循环冗余校验位与第一循环冗余校验位,并根据比对的结果完成数据上报;第二循环冗余校验位由附加第一循环冗余校验位的mac层数据包、经物理层接收端基于第二解析信息完成crc计算得到;第二解析信息由附加第一循环冗余校验位的mac层数据包经物理层接收端解析得到。

关于从mac层角度实施的循环冗余校验加速装置的具体限定可以参见上文中对于从mac层角度实施的循环冗余校验加速方法的限定,在此不再赘述。上述从mac层角度实施的循环冗余校验加速装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,如图6所示,提供了一种从基站角度实施的循环冗余校验加速装置,包括mac层构建数据包模块601,发送端循环冗余校验模块602,接收端循环冗余校验模块603;

mac层构建数据包模块601,用于mac层根据通信协议,构建符合mac层帧结构的数据包并下发至物理层;

发送端循环冗余校验模块602,用于物理层发送端计算并添加mac层数据包的循环冗余校验位,将其发送出去;

接收端循环冗余校验模块603,用于物理层接收端计算并比对mac层数据包的循环冗余校验位,完成比对结果和数据的上报。

关于从基站角度实施的循环冗余校验加速装置的具体限定可以参见上文中对于从基站角度实施的循环冗余校验加速方法的限定,在此不再赘述。上述从基站角度实施的循环冗余校验加速装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种接入网设备,接入网设备包括cpu和连接cpu的fpga;

cpu用于执行上述任一项从媒体接入控制层角度实施的循环冗余校验加速方法的步骤;

fpga用于执行上述任一项从物理层角度实施的循环冗余校验加速方法的步骤。

在一个具体的实施例中,接入网设备为基站;基站包括宏基站、微基站、微微基站和皮基站。

在一个具体的实施例中,cpu通过pcie或并口连接fpga。

具体而言,如图7所示,本申请能够加速mac层数据包处理,传统系统对大数据量的实时性要求高,cpu逻辑处理负荷高,效率低,时间长;而本申请提出将部分功能下沉;具体地,mac层下发mac包到fpga芯片,fpga芯片先识别mac包中的分隔符,然后根据mac包的结构,对mac的长度得到解析。在得到该mac包的长度后,对其进行相应的crc运算。

需要说明的是,mac层位于上层结构cpu中,fpga属于cpu的下层服务;本申请提出将mac层运算下放入到fpga,实现fpga与mac层协同,在fpga理解mac层的通信协议的基础上,对mac层的循环冗余校验进行加速。能明显降低mac层的计算压力,显著提高了循环冗余校验位的实时计算能力。

本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一项的方法的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1