以太网帧间距均值调节方法、装置、智能终端及存储介质与流程

文档序号:25809596发布日期:2021-07-09 13:22阅读:1025来源:国知局
以太网帧间距均值调节方法、装置、智能终端及存储介质与流程

1.本发明涉及网络通信技术领域,尤其涉及的是一种以太网帧间距均值调节方法、装置、智能终端及存储介质。


背景技术:

2.随着科学技术的迅速发展,网络通信技术也得到迅速发展,万兆以太网(xge)得到越来越多的关注。万兆以太网(xge)的发射侧媒体接入控制(mac)与物理译码子(pcs)层采用10gb独立于媒体的接口(xgmii接口)连接,根据802.3协议,xgmii可分为4通道(lane0至lane3)32bit数据位宽采样模式和8通道(lane0至lane7)64bit数据位宽采样模式。对于32bit的xgmii接口,协议规定报文的传输必须对齐到lane0传输,对于64bit的xgmii接口,报文必须对齐到lane0或lane4传输。正因为如此,xge发送的报文的长度不是4的整数倍数时,需要在报文发送结尾位置通过插入或删除/i/码来进行数据对齐。
3.现有技术中,ieee std 802.3协议规定了一种空闲字符计数(dic,deficit idle count)算法,该算法以ieee 802.3协议中规定的最小帧间距(ipg=12byte)为参考(收敛均值),用一个dic变量来记录当前的以太网帧间距(ipg,inter packet gap)的/i/码数与最小帧间距(12byte)之间的差异,从而基于报文的实际长度和当前的dic变量的值获得需要插入的/i/码的数目。现有技术的问题在于,在对以太网帧间距进行调节时,只能进行逐4byte的调节,影响以太网帧间距均值的调节精度。
4.因此,现有技术还有待改进和发展。


技术实现要素:

5.本发明的主要目的在于提供一种以太网帧间距均值调节方法、装置、智能终端及存储介质,旨在解决现有技术中通过现有的dic算法,以12byte为收敛均值,基于报文的实际长度和当前的dic变量的值获得需要插入的/i/码的数目的方案的基础上,在对以太网帧间距进行调节时,只能进行逐4byte的调节,不利于提高以太网帧间距均值的调节精度的问题。
6.为了实现上述目的,本发明第一方面提供一种以太网帧间距均值调节方法,其中,上述方法包括:
7.获取以太网间距的收敛均值区间,其中,上述收敛均值区间属于大于或等于8的整数区间;
8.获取目标报文,并获取上述目标报文的报文长度;
9.获取目标均值,其中,上述目标均值是大于或等于8的整数;
10.获取dic变量的值,基于上述收敛均值区间、上述报文长度、上述目标均值和上述dic变量的值获得目标插入idle码数目;
11.基于上述目标插入idle码数目调节上述以太网帧间距均值。
12.可选的,上述获取目标报文,并获取上述目标报文的报文长度,包括:
13.接收目标报文;
14.判断上述目标报文是否接收完毕;
15.当上述目标报文接收完毕时,获取上述目标报文的报文长度。
16.可选的,上述dic变量用于累计增加或减少的idle码的个数。
17.可选的,上述基于上述收敛均值区间、上述报文长度、上述目标均值和上述dic变量的值获得目标插入idle码数目,包括:
18.对上述目标均值进行模为4的取模运算,获得上述目标均值的模余数;
19.基于上述目标均值的模余数、上述收敛均值区间、上述报文长度和上述dic变量,通过dic算法计算获得上述目标插入idle码数目。
20.可选的,上述基于上述目标均值的模余数、上述收敛均值区间、上述报文长度和上述dic变量,通过dic算法计算获得上述目标插入idle码数目,包括:
21.基于上述模余数的值和上述收敛均值区间,获得对应的目标收敛均值;
22.将上述目标收敛均值作为dic算法的收敛均值,通过dic算法计算上述报文长度和上述dic变量对应的目标插入idle码数目;
23.其中,上述目标收敛均值等于上述模余数的值加上上述收敛均值区间内的最小值。
24.可选的,上述基于上述目标插入idle码数目调节上述以太网帧间距均值,包括:
25.基于上述目标插入idle码数目在上述目标报文中插入对应的idle码,从而将上述以太网帧间距均值调节为上述目标均值。
26.本发明第二方面提供一种以太网帧间距均值调节装置,其中,上述装置包括:
27.收敛均值区间获取模块,用于获取以太网间距的收敛均值区间,其中,上述收敛均值区间属于大于或等于8的整数区间;
28.报文长度获取模块,用于获取目标报文,并获取上述目标报文的报文长度;
29.目标均值获取模块,用于获取目标均值,其中,上述目标均值是大于或等于8的整数;
30.目标插入idle码数目获取模块,用于获取dic变量的值,基于上述收敛均值区间、上述报文长度、上述目标均值和上述dic变量的值获得目标插入idle码数目;
31.调节模块,用于基于上述目标插入idle码数目调节上述以太网帧间距均值。
32.可选的,上述报文长度获取模块包括:
33.目标报文接收单元,用于接收目标报文;
34.接收判断单元,用于判断上述目标报文是否接收完毕;
35.报文长度获取单元,用于当上述目标报文接收完毕时,获取上述目标报文的报文长度。
36.本发明第三方面提供一种智能终端,上述智能终端包括存储器、处理器以及存储在上述存储器上并可在上述处理器上运行的以太网帧间距均值调节程序,上述以太网帧间距均值调节程序被上述处理器执行时实现任意一项上述以太网帧间距均值调节方法的步骤。
37.本发明第四方面提供一种计算机可读存储介质,上述计算机可读存储介质上存储有以太网帧间距均值调节程序,上述以太网帧间距均值调节程序被处理器执行时实现任意
一项上述以太网帧间距均值调节方法的步骤。
38.由上可见,本发明方案获取以太网间距的收敛均值区间,其中,上述收敛均值区间属于大于或等于8的整数区间;获取目标报文,并获取上述目标报文的报文长度;获取目标均值,其中,上述目标均值是大于或等于8的整数;获取dic变量的值,基于上述收敛均值区间、上述报文长度、上述目标均值和上述dic变量的值获得目标插入idle码数目;基于上述目标插入idle码数目调节上述以太网帧间距均值。由于本发明方案中将太网间距的收敛均值扩展到大于或等于8的整数区间,因此获取的目标均值可以为大于或等于8的任意整数,对应的帧间距可以收敛到大于或等于8的任意整数,因此可以实现对以太网间距均值的逐1byte的调节,有利于提高以太网间距均值的调节精度。
附图说明
39.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
40.图1是本发明实施例提供的一种以太网帧间距均值调节方法的流程示意图;
41.图2是本发明实施例图1中步骤s200的具体流程示意图;
42.图3是本发明实施例图1中步骤s400的具体流程示意图;
43.图4是本发明实施例提供的现有技术中dic算法的示意图;
44.图5是本发明实施例提供的对现有dic算法进行扩展后的示意图;
45.图6是本发明实施例提供的64bit xgmii接口对应的等价dic算法示意图;
46.图7是本发明实施例提供的32bit xgmii接口对应的等价dic算法示意图;
47.图8是本发明实施例提供的一种64bit xgmii接口ipg计算流程图;
48.图9是本发明实施例提供的一种以太网帧间距均值调节装置的结构示意图;
49.图10是本发明实施例图9中报文长度获取模块620的具体结构示意图;
50.图11是本发明实施例提供的一种智能终端的内部结构原理框图。
具体实施方式
51.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况下,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
52.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
53.还应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
54.还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是
指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
55.如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当

时”或“一旦”或“响应于确定”或“响应于检测到”。类似的,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述的条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0056]
下面结合本发明实施例的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0057]
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其它不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
[0058]
随着科学技术的迅速发展,网络通信技术也得到迅速发展,万兆以太网(xge)得到越来越多的关注。万兆以太网(xge)的发射侧媒体接入控制(mac)与物理译码子(pcs)层采用10gb独立于媒体的接口(xgmii接口)连接,根据802.3协议,xgmii可分为4通道(lane0至lane3)32bit数据位宽采样模式和8通道(lane0至lane7)64bit数据位宽采样模式。对于32bit的xgmii接口,协议规定报文的传输必须对齐到lane0传输,对于64bit的xgmii接口,报文必须对齐到lane0或lane4传输。正因为如此,xge发送的报文的长度不是4的整数倍数时,需要在报文发送结尾位置通过插入或删除/i/码来进行数据对齐。
[0059]
ieee std 802.3协议规定了两种xge的ipg实现方式,第一中为插入idle码至lane0或lane4对齐,其实际上只向/i/码(空闲码)增加的方向调控,报文的帧间距大于或等于12byte的最小帧间距要求,例如,可能为12byte、13byte、14byte或15byte(还可以继续往上增加,但其相对于4的模余数与上述示例数值对应的模余数相同,因此实际效果相同)。平均帧间距则取决于传输的报文的长度,当报文长度处于完全随机的情况下,该方法实现的ipg均值为13.5byte。在此基础上,如果需要对ipg均值进行调节,只能实现相对于13.5byte的逐4byte调节,ipg均值调节精度有限。
[0060]
现有技术中,ieee std 802.3协议还规定了一种空闲字符计数(dic,deficit idle count)算法,该算法以ieee 802.3协议中规定的最小帧间距(即ipg=12byte)为参考,用一个dic变量(可记为dic_cnt)来记录当前的以太网帧间距(ipg,inter packet gap)的/i/码数与最小帧间距(12byte)之间的差异,从而基于报文的实际长度和当前的dic变量的值获得需要插入的/i/码的数目。dic算法提供了插入/i/码和删除/i/码两种操作,用一个变量dic_cnt来记录当前ipg的/i/码数与12byte最小帧间距之间的欠缺,若当前传输插入n个/i/码,则dic_cnt减n,若当前传输删除n个/i/码,则dic_cnt加n,n为大于或等于0且小于或等于3的整数。基于该方法实现的ipg均值为12byte,如果需要对ipg均值进行调节,只能实现相对于12byte的逐4byte调节,ipg均值调节精度有限。因此,现有技术的问题在于,在对以太网帧间距进行调节时,只能进行逐4byte的调节,影响以太网帧间距均值的调节精度。
[0061]
而在实际的网络应用过程中,存在基于ipg来进行接口流量调节的控制方式。在不改变接口形态的情况下,如果想要xgmii获得较大的传输能力,可将ipg均值调小,通常
xgmii接口的phy可以支持最小5byte帧间距(相比于802.3协议规定的ipg=12byte的最小帧间距,此时xgmii接口实际处于“过载”状态)。反之,想要降低xgmii接口的流量,则可以调大ipg配置值。显然,ipg的调节粒度越精细,则接口的流量调节越精确。因此,需要提供一种更好的以太网帧间距均值调节方案,从而提高接口流量的调节精度。
[0062]
为了解决现有技术的问题,本发明提供一种以太网帧间距均值调节方法,在本发明实施例中,获取以太网间距的收敛均值区间,其中,上述收敛均值区间属于大于或等于8的整数区间;获取目标报文,并获取上述目标报文的报文长度;获取目标均值,其中,上述目标均值是大于或等于8的整数;获取dic变量的值,基于上述收敛均值区间、上述报文长度、上述目标均值和上述dic变量的值获得目标插入idle码数目;基于上述目标插入idle码数目调节上述以太网帧间距均值。由于本发明方案中将太网间距的收敛均值扩展到大于或等于8的整数区间,因此获取的目标均值可以为大于或等于8的任意整数,对应的帧间距可以收敛到大于或等于8的任意整数,因此可以实现对以太网间距均值的逐1byte的调节,有利于提高以太网间距均值的调节精度。
[0063]
示例性方法
[0064]
如图1所示,本发明实施例提供一种以太网帧间距均值调节方法,具体的,上述方法包括如下步骤:
[0065]
步骤s100,获取以太网间距的收敛均值区间,其中,上述收敛均值区间属于大于或等于8的整数区间。
[0066]
其中,上述以太网间距的收敛值为使用dic算法时的ipg收敛均值,现有的dic算法中ipg收敛均值为12byte,本发明实施例中将收敛均值扩展到大于或等于8的整数区间。可选的,本实施例中,以上述收敛均值区间为12到15的整数区间为例进行具体说明,但不作为具体限定,当对应的收敛均值区间为8到11的整数区间时,可以将12到15的均值收敛区间的条件下对应的ipg length对应减4并做
±
4n byte的平移,从而覆盖对应的大于或等于8的整数区间。具体的,本实施例中,上述收敛均值区间可以为12到15的整数区间,即对应的收敛均值包括12byte,13byte,14byte和15byte,以降低计算复杂度。
[0067]
步骤s200,获取目标报文,并获取上述目标报文的报文长度。
[0068]
其中,上述目标报文为万兆以太网中xgmii接口传输的报文,也即需要进行ipg均值调节的报文。
[0069]
步骤s300,获取目标均值,其中,上述目标均值是大于或等于8的整数。
[0070]
其中,上述目标均值为预期要获得的ipg均值(以太网帧间距均值),可以根据实际需求进行调整和设置,在此不做具体限定。具体的,上述目标均值是大于或等于8的整数,例如,可以为8,9,10等,最大值不受限制,根据实际需求和具体的数据位数确定。例如,以ipg_cfg代表上述目标均值时,目标均值的最大值取决于ipg_cfg的位宽定义,ipg_cfg[15:0]表明最大值为2
16

1=65535。
[0071]
步骤s400,获取dic变量的值,基于上述收敛均值区间、上述报文长度、上述目标均值和上述dic变量的值获得目标插入idle码数目。
[0072]
其中,上述idle码为空闲码,用于插入以太网的数据包中,以对以太网传输的报文数据进行调整。如现有技术中,根据802.3协议,xgmii可分为4通道(lane0至lane3)32bit数据位宽采样模式和8通道(lane0至lane7)64bit数据位宽采样模式。xgmii可分为4通道
(lane0至lane3)32bit数据位宽采样模式和8通道(lane0至lane7)64bit数据位宽采样模式。对于32bit的xgmii接口,协议规定报文的传输必须对齐到lane0传输,对于64bit的xgmii接口,报文必须对齐到lane0或lane4传输。当xge发送的报文的长度不是4的倍数时,可以在报文中插入idle码来调整报文长度,使其可以进行数据对齐。步骤s500,基于上述目标插入idle码数目调节上述以太网帧间距均值。
[0073]
由上可见,本发明实施例提供的以太网帧间距均值调节方法获取以太网间距的收敛均值区间,其中,上述收敛均值区间属于大于或等于8的整数区间;获取目标报文,并获取上述目标报文的报文长度;获取目标均值,其中,上述目标均值是大于或等于8的整数;获取dic变量的值,基于上述收敛均值区间、上述报文长度、上述目标均值和上述dic变量的值获得目标插入idle码数目;基于上述目标插入idle码数目调节上述以太网帧间距均值。由于本发明方案中将太网间距的收敛均值扩展到大于或等于8的整数区间,因此获取的目标均值可以为大于或等于8的任意整数,对应的帧间距可以收敛到大于或等于8的任意整数,因此可以实现对以太网间距均值的逐1byte的调节,有利于提高以太网间距均值的调节精度。
[0074]
具体的,本实施例中,如图2所示,上述步骤s200包括:
[0075]
步骤s201,接收目标报文。
[0076]
步骤s202,判断上述目标报文是否接收完毕。
[0077]
步骤s203,当上述目标报文接收完毕时,获取上述目标报文的报文长度。
[0078]
具体的,可以通过xgmii接口接收上述目标报文。xge在发送完payload(有效数据)之后会在报文尾添加4byte的crc(循环冗余校验码)和一个/t/码,xgmii中/t/码也按idle码等效计入ipg,可按/i/码等效。其中,上述crc可简称循环码,是一种常用的具有检错、纠错能力的校验码。因此,本发明实施例中,可以基于目标报文中的crc来判断目标报文是否接收完毕,当目标报文未接收完毕时持续接收目标报文,当上述目标报文接收完毕时,获取对应的目标报文的长度。可选的,还可以有其它的判断目标报文是否接收完毕的方式,在此不做具体限定。
[0079]
进一步的,本实施例中,为了便于计算,可以标记出当前目标报文传输的最后一个crc所处的lane通道的位置,将该节点标记为eop_site。本实施例中,上述目标报文的报文长度是不包含crc的长度。当然,实际计算中,若令目标报文的报文长度包含crc的长度,也可以在计算时再减去对应的crc长度,在此不做具体限定。
[0080]
具体的,本实施例中,上述dic变量用于累计增加或减少的idle码的个数。其中,上述dic变量可包括当前dic变量和新dic变量,本实施例中,分别用current_dic_cnt和new_dic_cnt代表上述当前dic变量和新dic变量。dic变量是个累计值,每传完一个报文就更新一次,当次更新前的累计值即为当前累计值(current_dic_cnt),更新后的累计值即为新累计值(new_dic_cnt)。可选的,有new_dic_cnt=current_dic_cnt+(ipg length

12),其中,ipg length是ipg的实际数值(帧间距的实际数值),即帧间距长度。
[0081]
具体的,本实施例中,如图3所示,上述步骤s400包括:
[0082]
步骤s401,对上述目标均值进行模为4的取模运算,获得上述目标均值的模余数。
[0083]
步骤s402,基于上述目标均值的模余数、上述收敛均值区间、上述报文长度和上述dic变量,通过dic算法计算获得上述目标插入idle码数目。
[0084]
具体的,上述目标均值可以是大于或等于8的任意整数,但xge中xgmii接口为多
lane接口,且存在帧首需对齐lane0或lane4的限制,因此可以对目标均值进行模为4的取模运算,获取对应的模余数,根据模余数来进行计算,可以降低计算的复杂程度。例如,当目标均值为12byte或16byte时,对应的模余数都为0,只进行一次模余数为0的计算便可获得对应的调节方案。
[0085]
具体的,本实施例中,上述步骤s402包括:
[0086]
基于上述模余数的值和上述收敛均值区间,获得对应的目标收敛均值;将上述目标收敛均值作为dic算法的收敛均值,通过dic算法计算上述报文长度和上述dic变量对应的目标插入idle码数目;其中,上述目标收敛均值等于上述模余数的值加上上述收敛均值区间内的最小值。
[0087]
具体的,本实施例中,将现有技术中dic算法的ipg均值的收敛值从12byte扩展到12byte到15byte的整数区间(模余数的值为0到3的任意整数,因此模余数的值加上12对应的值为12到15之间的整数),实现多点收敛。如此,可以将现有技术中的dic算法的12byte单点收敛扩展到12

15byte的多点整数区间收敛,且通过上述目标均值的模余数自动导向收敛点,然后在对计算结果叠加
±
4n byte偏置进行反向重映射,通过该方式可覆盖整个整数区间的ipg均值连续可调。
[0088]
可选的,上述步骤s500包括:基于上述目标插入idle码数目在上述目标报文中插入对应的idle码,从而将上述以太网帧间距均值调节为上述目标均值。
[0089]
进一步的,还可以计算插入对应的idle码后的ipg报文长度,并将插入对应的idle码后ipg报文的帧首与lane0或lane4对齐(具体取决于xgmii接口是32bit还是64bit)。
[0090]
本实施中,还基于一种具体应用场景对上述以太网帧间距均值调节方法进行说明。图4是本发明实施例提供的现有技术中dic算法对应的示意图,其中,packet length modulo 4为报文的长度对4求模后的余数的值,ipg length是ipg的实际数值(帧间距),可以将packet length和ipg length对照理解,一个为报文有效长度,一个为帧间距长度。current_dic_cnt和new_dic_cnt的定义与上文的描述相同,在此不再赘述。每发完一个报文都需要在current_dic_cnt的基础上进行一轮计算,得到一个新的new_dic_cnt。在发下一个报文的时候前一个报文算得的这个new_dic_cnt就变成了current_dic_cnt,在此基础上算出一个新的new_dic_cnt,这是一个不停迭代运算的过程。现有的dic算法中,以ipg=12byte为参考,可动态控制插入的idle码的个数。该算法定义了一个变量dic_cnt来累计增加或减少的idle码个数,若增加n个idle码,则变量dic_cnt的值减n;反之,若减少n个idle则变量dic_cnt的值加n(0≤n≤3)。算法同时规定变量dic_cnt的最小值为0,最大值为3,也即允许最多累计增加3个或减少3个idle码。这样当多帧连续发送时,实际帧间距在9到15个idle码之间变化。
[0091]
图5是本发明实施例提供的对现有dic算法进行扩展后的示意图,其中,ipg_cfg为目标均值,ipg_cfg modulo 4表示目标均值对4进行取模运算后的余数,即上述目标均值的模余数。如图5所示,本发明实施例提供的以太网帧间距均值调节方法将现有的标准dic算法进行扩展,新加入目标均值(或目标均值的模余数),将原来dic算法从二维关联计算(根据dic变量的值和报文长度进行计算)扩展为三维关联计算(根据报文长度、目标均值和dic变量)的均值进行计算。具体的,将原来的dic算法作为本发明实施例中以太网帧间距均值调节方法的一个子集(对应目标均值的模余数为0的情况),而目标均值的模余数为1,2或3
的情况,将对应的ipg均值的收敛值扩展到了13byte,14byte和15byte,即本发明实施例将ipg均值的收敛值扩展到12byte到15byte的整数区间,如此,可以基于对应的收敛值实现对于ipg均值的逐1byte调节。例如,现有技术中行,ipg均值的收敛值只能为12byte,且要对齐lane0或lane4,因此增加ipg均值时最小增加的值为4byte。而基于本发明实施例提供的方法,要将ipg均值增加一个最小值时,可以将ipg均值的收敛值调整为13byte,从而使ipg最小增加的值为1byte。如此,对于更大(大于12)或更小(8

11byte)的目标均值,都可以通过重映射的方式,平移到12

15byte的区间进行计算处理,然后再将计算结果反向映射回对应的配置值。
[0092]
其中,上述12

15byte的区间是本实施例提供的一种具体区间,实际使用过程中,收敛均值区间还可以是其它区间,如8

11byte的整数区间。当均值收敛区间为8

11byte的整数区间时,对应的可以将12到15的均值收敛区间的条件下对应的ipg length对应减4并做
±
4n byte的平移,从而实现对大于或等于8的整数区间的覆盖。
[0093]
下面基于具体应用场景对上述以太网帧间距均值调节方法进行描述,为了便于说明整个计算和实现过程,对各数据进行定义。报文的长度:pkt_len(不包含crc);报文尾拍数据包含idle码的数目:pkt_be[2:0]=8

(pkt_len mod 8)或pkt_be[1:0]=4

(pkt_len mod 4),分别对应64bit xgmii接口和32bit xgmii接口,其中[2:0]代表对应的数据的位宽,后面相似的表述都表示数据位宽,本领域技术人员可以理解,且可以根据实际需求进行调整,在此不做具体限定;pkt_be低2bit与常量4的差值:pkt_be_delta4[2:0]=3'd4

pkt_be[1:0],pkt_be低2bit的反码:pkt_be_complement4[1:0]=

pkt_be[1:0]。其中,3'd4代表3bit位宽的数字4,下文相似表达方式都表达相似概念;pkt_be低2bit与常量4的差值指的是报文尾拍数据包含的/i/码数目与4的差值。对于64bit xgmii接口来说,尾拍有效数据可能是1到8的任意byte。当尾拍有效数据为3byte时,则pkt_be=8

3=5。对于64bit xgmii接口,pkt_be为3bit(最大值为7,最小值为0);对于32bit xgmii接口,pkt_be为2bit(最大值为3,最小值为0)。
[0094]
基于上述定义,可以获得dic增量(dic_inc)的计算过程。对于64bit xgmii接口:dic_inc[1:0]=pkt_be_delta4[1:0]+ipg_cfg[1:0];对于32bit xgmii接口dic_inc[1:0]=pkt_be_complement4[1:0]+ipg_cfg[1:0]。其中,上述dic增量表示对dic变量(dic_int)进行更新时,new_dic_cnt相比current_dic_cnt的增量,因为是2bit的逻辑运算,dic_inc[1:0]隐含仅取计算结果的后两位的意义,舍掉进位。
[0095]
由于dic变量(dic_int)的最大值为3,所以需要考虑两种情况的处理。当cur_dic[1:0]+dic_inc[1:0]>3时,new_dic[1:0]=cur_dic[1:0]

(4

dic_inc[1:0])=cur_dic[1:0]+dic_inc[1:0]

4;当cur_dic[1:0]+dic_inc[1:0]≤3时,new_dic[1:0]=cur_dic[1:0]+dic_inc[1:0]。其中,上述cur_dic和new_dic表示的含义分别与上述current_dic_cnt(当前dic变量)和new_dic_cnt(新dic变量)代表的含义相同,在此为了便于后续描述采用新的表达方式。由上可知,两种情况下的差别只在于一个固定值4(3'b100),所以可以将其合并成一个完整的公式:new_dic[2:0]=cur_dic[2:0]+dic_inc[1:0],其中new_dic/cur_dic的最高bit(bit3),用来表示dic变量是否发生了一次累计到最大值3的触顶翻转,new_dic[2]==cur_dic[2]对应increment dic stage(即dic增量增长的阶段);new_dic[2]!=cur_dic[2]对应decrement dic stage(即dic增量减小的阶段)。最低的2bit表示实
际真实的dic变量的计算结果。
[0096]
xge在发送完payload(有效数据)之后会在报文尾添加4byte的crc(循环冗余校验码)和一个/t/码,xgmii中/t/码也按idle码等效计入ipg,可按/i/码等效。为了便于计算,可以标记出当前目标报文传输的最后一个crc所处的lane通道的位置,将该节点标记为eop_site。由于xgmii接口报文传输首字节必须对齐到lane0或lane4,同时xgmii phy只能支持最小5byte的ipg的传输,因此eop_site所处的cycle(时钟周期)中,剩余的空闲lane只能唯一发送/t/码或/i/码,故整体可将ipg的idle码拆成两部分独立计算:
[0097]
第一部分,eop_site对应的cycle传输的/t/码和/i/码个数,记为cnt_ipg_1;第二部分,eop_site后续cycle传输的/i/码个数(截止到下一帧的/s/码之前),记为cnt_ipg_2。上述cnt_ipg_2即为本发明实施例要计算的目标插入idle码数目。
[0098]
其中,cnt_ipg_1的计算相对简单,且与pkt_be相关,我们可以以pkt_be为参数直接算得。以pkt_be=3为例,计算过程如下:对于64bit xgmii接口,pkt_be=3,报文尾加上4byte的crc后,eop_site位于lane0位置,cnt_ipg_1=8

1=7;对于32bit的xgmii接口,pkt_be=3,报文尾加上4byte的crc后,eop_site位于lane0位置,cnt_ipg_1=4

1=3。
[0099]
进一步的,设ipg_total为上述图5中的ipg length的数值(即令ipg_total=ipglength引入变量ipg_total以方便进行说明),则cnt_ipg_2=ipg_total

cnt_ipg_1。从而获得计算上述cnt_ipg_2对应的idle码数目的等价算法。图6是本发明实施例提供的64bit xgmii接口对应的等价dic算法示意图,图7是本发明实施例提供的32bit xgmii接口对应的等价dic算法示意图。其中,increment dic stage代表当前传输处于dic增量递增的阶段,decrement dic stage代表当前传输处于dic增量递减的阶段;current pkt start lane0代表当前报文帧首对齐lane0,current pkt start lane4代表当前报文帧首对齐lane4。
[0100]
图8是本发明实施例提供的一种64bit xgmii接口ipg计算流程图,基于图8对本发明实施例提供的以太网帧间距均值调节方法进行具体说明。如图8所示,在当前报文传输结束后,根据报文长度pkt_len和目标均值ipg_cfg(目标均值)计算adjust_idles_indicate(计算目标插入idle码数目的中间变量,仅用于体现数字计算过程,不映射具体含义),计算过程如下:
[0101]
pkt_be[2:0]=8

(pkt_len mod 8);
[0102]
pkt_be_delta4[2:0]=3'd4

pkt_be[1:0];
[0103]
dic_inc[1:0]=pkt_be_delta4[1:0]+ipg_cfg[1:0];
[0104]
new_dic[2:0]=cur_dic[2:0]+dic_inc[1:0];
[0105]
adjust_idles_indicate[2:0]=pkt_be_delta4[2:0]+ipg_cfg[1:0]。
[0106]
根据new_dic[2]是否等于cur_dic[2]来判断dic增量是否处于递增阶段,具体的,new_dic[2]==cur_dic[2]对应dic增量增长的阶段;new_dic[2]!=cur_dic[2]对应dic增量减小的阶段。
[0107]
当dic增量处于递增阶段时,计算目标插入idle码数目,add_idles[4:0]=5'd4+(adjust_idles_indicate[2]<<2)。其中,上述add_idles即为需要插入的/i/码数目,即目标插入idle码数目,且有add_idles的值实际与前文所示的cnt_ipg_2的值相等(cnt_ipg_2=ipg_total

cnt_ipg_1)。当dic增量处于递减阶段时,计算目标插入idle码数目add_
idles[4:0]=5'd8+((|adjust_idles_indicate[1:0]&&adjust_idles_indicate[2])<<2)。
[0108]
根据上述add_idles的计算结果计算add_idles_calc,add_idles_calc[15:0]=add_idles[4:0]+(pkt_be[2]<<2)+(ipg_cfg[15:2]<<2)

16'd12,其中,上述add_idles_calc代表插入对应的idle码后的ipg的实际数值(帧间距的实际数值),即ipg length。
[0109]
判断当前传输报文是否对齐到lane4传输,若是,则根据add_idles_calc的结果计算add_idles_final[16:0]={1'b0,add_idles_calc[15:0]};若否,则根据add_idles_calc的结果计算add_idles_final[16:0]=add_idles_calc[15:0]+16'd4。由于报文传输对齐到lane4时,需要整体往后平移4个byte(相当于“挤占”了4个byte的/i/码)。此处add_idles_final代表该报文对应的ipg length的计算结果叠加上该报文起始传输对应lane0或lane4的影响做一定调整后的/i/码数目。即如果当前报文是对齐到lane4传输的话,需要在add_idles_final的基础上加上(补回)被“挤占”的4个byte;如果当前报文是对齐到lane0传输的话,则add_idles_final则数值上等于add_idles_calc本身。
[0110]
根据上述add_idles_final的值计算next_pkt_start_lane0和inset_cycles:next_pkt_start_lane0=!add_idles_final[2];inset_cycles=add_idles_final[16:3]。xgmii传输要对齐到lane0或lane4,所以每次传输完当前报文后需要确定下一帧到底是对齐到lane0还是lane4。next_pkt_start_lane0=1表示下一帧对齐到lane0,反之则对齐到lane4。inset cycle代表插入的时钟周期,对于32bit xgmii接口来说,插入1个cycle则对应4个/i/码,对于64bit的xgmii接口来说,插入1个cycle则对应8个/i/码。
[0111]
对应的,本发明实施例还提供一种32bit xgmii接口ipg计算的具体流程,在当前报文传输结束后,根据报文长度pkt_len和目标均值ipg_cfg(目标均值)计算adjust_idles_indicate(计算目标插入idle码数目的中间变量,仅用于体现数字计算过程,不映射具体含义),计算过程如下:
[0112]
pkt_be[1:0]=4

(pkt_len mod 4);
[0113]
pkt_be_complement4[1:0]=

pkt_be[1:0];
[0114]
dic_inc[1:0]=pkt_be_complement4[1:0]+ipg_cfg[1:0];
[0115]
new_dic[2:0]=cur_dic[2:0]+dic_inc[1:0];
[0116]
adjust_idles_indicate[2:0]=pkt_be_complement4[1:0]+ipg_cfg[1:0]。
[0117]
判断dic增量是否处于递增阶段,当dic增量处于递增阶段时,计算目标插入idle码数目,add_idles[4:0]=5'd8+(adjust_idles_indicate[2]<<2);当dic增量处于递减阶段时,计算目标插入idle码数目,add_idles[4:0]=5'd12+((|adjust_idles_indicate[1:0]&&adjust_idles_indicate[2])<<2)。
[0118]
根据上述add_idles的计算结果计算add_idles_calc,add_idles_calc[15:0]:add_idles_calc[15:0]=add_idles[4:0]+(ipg_cfg[15:2]<<2)

5'd12。判断当前传输报文是否对齐到lane4传输,若否,则根据add_idles_calc的结果计算add_idles_final[16:0]={1'b0,add_idles_calc[15:0]};若是,则根据add_idles_calc的结果计算add_idles_final[16:0]=add_idles_calc[15:0]+16'd4。根据上述add_idles_final的值计算next_pkt_start_lane0和inset_cycles:next_pkt_start_lane0=1;inset_cycles=add_idles_final[16:2]。
[0119]
示例性设备
[0120]
如图9中所示,对应于上述以太网帧间距均值调节方法,本发明实施例还提供一种以太网帧间距均值调节装置,上述以太网帧间距均值调节装置包括:
[0121]
收敛均值区间获取模块610,用于获取以太网间距的收敛均值区间,其中,上述收敛均值区间属于大于或等于8的整数区间;
[0122]
报文长度获取模块620,用于获取目标报文,并获取上述目标报文的报文长度。
[0123]
其中,上述以太网间距的收敛值为使用dic算法时的ipg收敛均值,现有的dic算法中ipg收敛均值为12byte,本发明实施例中将收敛均值扩展到大于或等于8的整数区间。可选的,本实施例中,以上述收敛均值区间为12到15的整数区间为例进行具体说明,但不作为具体限定,当对应的收敛均值区间为8到11的整数区间时,可以将12到15的均值收敛区间的条件下对应的ipg length对应减4并做
±
4n byte的平移,从而覆盖对应的大于或等于8的整数区间。具体的,本实施例中,上述收敛均值区间可以为12到15的整数区间,即对应的收敛均值包括12byte,13byte,14byte和15byte,以降低计算复杂度。
[0124]
目标均值获取模块630,用于获取目标均值,其中,上述目标均值是大于或等于8的整数。
[0125]
其中,上述目标报文为万兆以太网中xgmii接口传输的报文,也即需要进行ipg均值调节的报文。
[0126]
其中,上述目标均值为预期要获得的ipg均值(以太网帧间距均值),可以根据实际需求进行调整和设置,在此不做具体限定。具体的,上述目标均值是大于或等于8的整数,例如,可以为8,9,10等,最大值不受限制,根据实际需求和具体的数据位数确定。例如,以ipg_cfg代表上述目标均值时,目标均值的最大值取决于ipg_cfg的位宽定义,ipg_cfg[15:0]表明最大值为2
16

1=65535。
[0127]
目标插入idle码数目获取模块640,用于获取dic变量的值,基于上述收敛均值区间、上述报文长度、上述目标均值和上述dic变量的值获得目标插入idle码数目。
[0128]
调节模块650,用于基于上述目标插入idle码数目调节上述以太网帧间距均值。
[0129]
由上可见,本发明实施例提供的以太网帧间距均值调节装置通过收敛均值区间获取模块610获取以太网间距的收敛均值区间,其中,上述收敛均值区间属于大于或等于8的整数区间;通过报文长度获取模块620获取目标报文,并获取上述目标报文的报文长度;通过目标均值获取模块630获取目标均值,其中,上述目标均值是大于或等于8的整数;通过目标插入idle码数目获取模块640获取dic变量的值,基于上述收敛均值区间、上述报文长度、上述目标均值和上述dic变量的值获得目标插入idle码数目;通过调节模块650基于上述目标插入idle码数目调节上述以太网帧间距均值。由于本发明方案中将太网间距的收敛均值扩展到大于或等于8的整数区间,因此获取的目标均值可以为大于或等于8的任意整数,对应的帧间距可以收敛到大于或等于8的任意整数,因此可以实现对以太网间距均值的逐1byte的调节,有利于提高以太网间距均值的调节精度。
[0130]
具体的,本实施例中,如图10所示,上述报文长度获取模块620包括:
[0131]
目标报文接收单元621,用于接收目标报文。
[0132]
接收判断单元622,用于判断上述目标报文是否接收完毕。
[0133]
报文长度获取单元623,用于当上述目标报文接收完毕时,获取上述目标报文的报
文长度。
[0134]
具体的,可以通过xgmii接口接收上述目标报文。xge在发送完payload(有效数据)之后会在报文尾添加4byte的crc(循环冗余校验码)和一个/t/码,xgmii中/t/码也按idle码等效计入ipg,可按/i/码等效。其中,上述crc可简称循环码,是一种常用的具有检错、纠错能力的校验码。因此,本发明实施例中,可以基于目标报文中的crc来判断目标报文是否接收完毕,当目标报文未接收完毕时持续接收目标报文,当上述目标报文接收完毕时,获取对应的目标报文的长度。可选的,还可以有其它的判断目标报文是否接收完毕的方式,在此不做具体限定。
[0135]
进一步的,本实施例中,为了便于计算,可以标记出当前目标报文传输的最后一个crc所处的lane通道的位置,将该节点标记为eop_site。本实施例中,上述目标报文的报文长度是不包含crc的长度。当然,实际计算中,若令目标报文的报文长度包含crc的长度,也可以在计算时再减去对应的crc长度,在此不做具体限定。
[0136]
具体的,本实施例中,上述dic变量用于累计增加或减少的idle码的个数。其中,上述dic变量可包括当前dic变量和新dic变量,本实施例中,分别用current_dic_cnt和new_dic_cnt代表上述当前dic变量和新dic变量。dic变量是个累计值,每传完一个报文就更新一次,当次更新前的累计值即为当前累计值(current_dic_cnt),更新后的累计值即为新累计值(new_dic_cnt)。可选的,有new_dic_cnt=current_dic_cnt+(ipg length

12),其中,ipg length是ipg的实际数值(帧间距的实际数值),即帧间距长度。
[0137]
具体的,本实施例中,上述目标插入idle码数目获取模块640具体用于:对上述目标均值进行模为4的取模运算,获得上述目标均值的模余数;基于上述目标均值的模余数、上述收敛均值区间、上述报文长度和上述dic变量,通过dic算法计算获得上述目标插入idle码数目。
[0138]
具体的,上述目标均值可以是大于或等于8的任意整数,但xge中xgmii接口为多lane接口,且存在帧首需对齐lane0或lane4的限制,因此可以对目标均值进行模为4的取模运算,获取对应的模余数,根据模余数来进行计算,可以降低计算的复杂程度。例如,当目标均值为12byte或16byte时,对应的模余数都为0,只进行一次模余数为0的计算便可获得对应的调节方案。
[0139]
具体的,本实施例中,上述目标插入idle码数目获取模块640还具体用于:基于上述模余数的值和上述收敛均值区间,获得对应的目标收敛均值;将上述目标收敛均值作为dic算法的收敛均值,通过dic算法计算上述报文长度和上述dic变量对应的目标插入idle码数目;其中,上述目标收敛均值等于上述模余数的值加上上述收敛均值区间内的最小值。
[0140]
具体的,本实施例中,将现有技术中dic算法的ipg均值的收敛值从12byte扩展到12byte到15byte的整数区间(模余数的值为0到3的任意整数,因此模余数的值加上12对应的值为12到15之间的整数),实现多点收敛。如此,可以将现有技术中的dic算法的12byte单点收敛扩展到12

15byte的多点整数区间收敛,且通过上述目标均值的模余数自动导向收敛点,然后在对计算结果叠加
±
4n byte偏置进行反向重映射,通过该方式可覆盖整个整数区间的ipg均值连续可调。
[0141]
可选的,上述调节模块650具体用于:基于上述目标插入idle码数目在上述目标报文中插入对应的idle码,从而将上述以太网帧间距均值调节为上述目标均值。进一步的,还
可以计算插入对应的idle码后的ipg报文长度,并将插入对应的idle码后ipg报文的帧首与lane0或lane4对齐(具体取决于xgmii接口是32bit还是64bit)。
[0142]
具体应用场景下的以太网间距均值调节流程与上述方法实施例中的具体流程相似,在此不再赘述。
[0143]
基于上述实施例,本发明还提供了一种智能终端,其原理框图可以如图11所示。上述智能终端包括通过系统总线连接的处理器、存储器、网络接口以及显示屏。其中,该智能终端的处理器用于提供计算和控制能力。该智能终端的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和以太网帧间距均值调节程序。该内存储器为非易失性存储介质中的操作系统和以太网帧间距均值调节程序的运行提供环境。该智能终端的网络接口用于与外部的终端通过网络连接通信。该以太网帧间距均值调节程序被处理器执行时实现上述任意一种以太网帧间距均值调节方法的步骤。该智能终端的显示屏可以是液晶显示屏或者电子墨水显示屏。
[0144]
本领域技术人员可以理解,图11中示出的原理框图,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的智能终端的限定,具体的智能终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0145]
在一个实施例中,提供了一种智能终端,上述智能终端包括存储器、处理器以及存储在上述存储器上并可在上述处理器上运行的以太网帧间距均值调节程序,上述以太网帧间距均值调节程序被上述处理器执行时进行以下操作指令:
[0146]
获取以太网间距的收敛均值区间,其中,上述收敛均值区间属于大于或等于8的整数区间;
[0147]
获取目标报文,并获取上述目标报文的报文长度;
[0148]
获取目标均值,其中,上述目标均值是大于或等于8的整数;
[0149]
获取dic变量的值,基于上述收敛均值区间、上述报文长度、上述目标均值和上述dic变量的值获得目标插入idle码数目;
[0150]
基于上述目标插入idle码数目调节上述以太网帧间距均值。
[0151]
本发明实施例还提供一种计算机可读存储介质,上述计算机可读存储介质上存储有以太网帧间距均值调节程序,上述以太网帧间距均值调节程序被处理器执行时实现本发明实施例提供的任一种以太网帧间距均值调节方法的步骤。
[0152]
应理解,上述实施例中各步骤的序号大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0153]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0154]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记
载的部分,可以参见其它实施例的相关描述。
[0155]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各实例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟是以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同的方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0156]
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以由另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
[0157]
上述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,上述计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读介质可以包括:能够携带上述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,上述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减。
[0158]
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不是相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1