获取网络芯片WRR最优权值的方法及系统与流程

文档序号:11156409阅读:483来源:国知局
获取网络芯片WRR最优权值的方法及系统与制造工艺

本发明涉及网络通信领域,尤其涉及一种获取网络芯片WRR最优权值的方法及系统。



背景技术:

加权循环调度算法WRR(Weighted Round Robin),加权循环所有业务通道服务,并且将优先权分配给较高优先级通道;在大多数情况下,相对低优先级,WRR将首先处理高优先级,但是当高优先级业务很多时,较低优先级的业务并没有被完全阻塞;对于所有的业务流在排队等待调度的通道,WRR是根据每个通道配置的权重值与所有的业务流在排队等待调度的通道的权重值总和的比来平等地分配带宽;因此,在处理多个用户的高优先等级的业务时,WRR确保每个用户都不会过度地占用网络带宽;WRR通道调度将每个端口分为多个输出通道,通道之间轮流调度,保证每个通道都得到一定的服务时间,WRR可为每个通道配置一个权重值表示获取资源的比重;例如:一个100M的端口,配置它的4个WRR通道的权重值依次为50、20、20、10,这样可以保证最低优先级通道至少获得10Mbit/s带宽,避免了采用PQ调度时低优先级通道中的报文可能长时间得不到服务的缺点;WRR通道还有一个优点是,虽然多个通道的调度是轮循进行的,但对每个通道不是固定地分配服务时间片,如果某个通道的权重值为零,或者没有调度请求时,那么马上换到下一个通道调度,这样带宽资源可以得到充分的利用。

然而,随着以太网技术的快速发展,太网芯片需要支持越来越多种速率传输的需求,比如,XGMII(10G介质无关接口)、XLGMII(40G介质无关接口)、CGMII(100G介质无关接口)等,导致WRR权值设置更加复杂多变。

对于以太网的各种芯片,传统的WRR权值配置方法对于每个队列会配置一组固定的权值,实际操作过程中,根据该组固定的权值简单的累加各个队列上带宽速率,当各个队列的需求带宽改变,或者系统配置发生变化时,要么保持当前配置的权值不变,要么通过开发人员在特定模式下计算更改权值,计算复杂,增加维护成本,且效率低下。



技术实现要素:

本发明的目的在于提供一种获取网络芯片WRR最优权值的方法及系统。

为实现上述目的之一,本发明一实施方式的获取网络芯片WRR最优权值的方法,所述方法包括:获取每个WRR队列的初始加权值;

遍历各个WRR队列的初始加权值,获得对应的最大公约数;

根据各个WRR队列的初始加权值以及最大公约数获得每个WRR队列对应的最优权值。

作为本发明一实施方式的进一步改进,“获取每个WRR队列的初始加权值”具体包括:

获取对应当前传输端口的每个WRR队列的传输带宽速率;

依据获得的WRR队列的传输带宽速率获取每个WRR队列的初始加权值;

或按照预配置的WRR队列属性获得各个WRR队列对应的初始加权值。

作为本发明一实施方式的进一步改进,“依据获得的WRR队列的传输带宽速率获取每个WRR队列的初始加权值”具体包括:

获取每个WRR队列的传输带宽速率,将各个WRR队列的传输带宽速率按照其最小单位进行单位统一处理;

判断各个WRR队列的传输带宽是否为零或为整数,

若是,将经过单位统一处理后的各个WRR队列的传输带宽速率作为各个队列对应的初始加权值;

若否,将各个队列的传输带宽速率同时扩大同一倍数向上取整;

将取整后的各个队列所对应的传输带宽速率作为各个队列对应的初始加权值。

作为本发明一实施方式的进一步改进,所述方法还包括:

将各个队列的传输带宽同时以10的幂次方为基数向上取整。

作为本发明一实施方式的进一步改进,“遍历各个WRR队列的初始加权值,获得对应的最大公约数;

根据各个WRR队列的初始加权值以及最大公约数获得每个WRR队列对应的最优权值”具体包括:

遍历各个WRR队列的初始加权值,获得最小的非零加权值,以Wm表示,1≤m≤n,n表示WRR队列的个数;

设置正整数变量i,1≤i≤Wm,

以i等于Wm开始,依次递减至i为1,分别作为除数,获得能够整除各个WRR队列的最大值,以Mmax=i表示;

分别以各个WRR队列对应的初始加权值为被除数,以Mmax为除数,并将其结果作为每个WRR队列对应的最优权值。

为实现上述目的之一,本发明一实施方式的获取网络芯片WRR最优权值的系统,所述系统包括:数据获取模块,用于获取每个WRR队列的初始加权值;

数据处理模块,用于遍历各个WRR队列的初始加权值,获得对应的最大公约数;

根据各个WRR队列的初始加权值以及最大公约数获得每个WRR队列对应的最优权值。

作为本发明一实施方式的进一步改进,所述数据获取模块具体用于:

获取对应当前传输端口的每个WRR队列的传输带宽速率;

依据获得的WRR队列的传输带宽速率获取每个WRR队列的初始加权值;

或按照预配置的WRR队列属性获得各个WRR队列对应的初始加权值。

作为本发明一实施方式的进一步改进,所述数据获取模块还用于:

获取每个WRR队列的传输带宽速率,将各个WRR队列的传输带宽速率按照其最小单位进行单位统一处理;

判断各个WRR队列的传输带宽是否为零或为整数,

若是,将经过单位统一处理后的各个WRR队列的传输带宽速率作为各个队列对应的初始加权值;

若否,将各个队列的传输带宽速率同时扩大同一倍数向上取整;

将取整后的各个队列所对应的传输带宽速率作为各个队列对应的初始加权值。

作为本发明一实施方式的进一步改进,所述数据获取模块还用于:

将各个队列的传输带宽同时以10的幂次方为基数向上取整。

作为本发明一实施方式的进一步改进,所述数据处理模块具体用于:

根据各个WRR队列的初始加权值以及最大公约数获得每个WRR队列对应的最优权值”具体包括:

遍历各个WRR队列的初始加权值,获得最小的非零加权值,以Wm表示,1≤m≤n,n表示WRR队列的个数;

设置正整数变量i,1≤i≤Wm,

以i等于Wm开始,依次递减至i为1,分别作为除数,获得能够整除各个WRR队列的最大值,以Mmax=i表示;

分别以各个WRR队列对应的初始加权值为被除数,以Mmax为除数,并将其结果作为每个WRR队列对应的最优权值。

与现有技术相比,本发明的有益效果是:本发明的获取网络芯片WRR最优权值的方法及系统,通过使用最小非零原始权值作为遍历寻找最大公约数时的最大值,大幅缩小了寻找最大公约数时的遍历范围,提高了计算原始加权值最大公约数的效率,进一步的,遍历寻找所有队列的原始加权值最大公约数,将原始加权值分别除以最大公约数,从而快速、准确的生成WRR各个队列的最优权值;保证队列之间的调度比例符合系统预期,减小WRR调度时的波动,提高网络芯片的稳定性和可靠性,提高开发人员工作效率。

附图说明

图1是本发明一实施方式中获取网络芯片WRR最优权值的方法的流程示意图;

图2是图1中步骤S2的其中一种实现方式的流程示意图;

图3是本发明一实施方式中获取网络芯片WRR最优权值的系统的模块示意图。

具体实施方式

以下将结合附图所示的具体实施方式对本发明进行详细描述。但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。

如图2所示,本发明一实施方式中,获取网络芯片WRR最优权值的方法,包括:

S1、获取每个WRR队列的初始加权值。

本发明一实施方式中,按照各个WRR队列的属性,获得每个WRR队列对应的初始加权值。

该实施方式中,对于每个端口对应的各个WRR队列均具有其各自的属性,例如:WRR队列的数量、位置、传输数据的种类等;通常情况下,按照WRR队列属性,会事先对该端口对应的各个WRR队列预置一组加权值,当数据传输过程中,可直接获得该组加权值使用,在以下描述中,将该组加权值以初始加权值表示。

本发明另一实施方式中,对应一个端口下的各个队列,并不固定为其配置一组加权值,其根据对应当前传输端口的每个WRR队列的传输带宽速率,自动配置一组加权值。

该实施方式中,所述方法具体包括:

获取对应当前传输端口的每个WRR队列的传输带宽速率;

依据获得的WRR队列的传输带宽速率获取每个WRR队列的初始加权值;

具体的,依据获得的WRR队列的传输带宽速率获取每个WRR队列的初始加权值”具体包括:

获取每个WRR队列的传输带宽速率,将各个WRR队列的传输带宽速率按照其最小单位进行单位统一处理;

判断各个WRR队列的传输带宽是否为零或为整数,

若是,将经过单位统一处理后的各个WRR队列的传输带宽速率作为各个队列对应的初始加权值;

若否,将各个队列的传输带宽速率同时扩大同一倍数向上取整;

将取整后的各个队列所对应的传输带宽速率作为各个队列对应的初始加权值。

本发明一优选实施方式中,将各个队列的传输带宽同时以10的幂次方为基数向上取整。

以下描述一具体示例做详细说明,以便于理解。

该具体示例中,假设对应当前的传输端口具有4个WRR队列,依次为第一队列、第二队列、第三队列以及第四队列;

其中,第一队列对应的传输带宽速率为100M,第二队列对应的传输速率为100M,第三队列对应的传输速率为1G,第四队列对应的传输速率为2.5G, 对4个队列的传输速率进行单位统一,以“M”为单位,进行换算,本示例中,将各个队列的传输带宽同时以10的幂次方为基数向上取整,则换算后的4个WRR队列对应的传输速率依次为100M、100M、1000M、2500M;进一步的,将取整后的各个队列所对应的传输带宽速率作为各个队列对应的初始加权值,则4个WRR队列对应的初始加权值为100、100、1000、2500。

进一步的,本发明的获取网络芯片WRR最优权值的方法还包括:

S2、遍历各个WRR队列的初始加权值,获得对应的最大公约数;根据各个WRR队列的初始加权值以及最大公约数获得每个WRR队列对应的最优权值。

本发明一优选实施方式中,所述步骤S2具体包括:

P1、遍历各个WRR队列的初始加权值,获得最小的非零加权值,以Wm表示,1≤m≤n,n表示WRR队列的个数;

P2、设置正整数变量i,1≤i≤Wm,

P3、以i等于Wm开始,依次递减至i为1,分别作为除数,获得能够整除各个WRR队列的最大值,以Mmax=i表示;

P4、分别以各个WRR队列对应的初始加权值为被除数,以Mmax为除数,并将其结果作为每个WRR队列对应的最优权值。

本发明优选实施方式中,以最小非零初始权值作为遍历寻找最大公约数时的最大值,大幅缩小了寻找最大公约数时的遍历范围,提高了计算初始加权值最大公约数的效率,节约整体的计算时间,提高芯片性能。

接续上述示例做详细说明,以便于理解。

4个WRR队列的初始加权值依次为100、100、1000、2500;

遍历4个WRR队列的初始加权值,获得最小的非零加权值,以Wm表示,则Wm=100;设置正整数变量i,其取值范围为[100,1];进一步的,从i取值等于Wm开始,即i取值为100开始,并将其作为被除数,获得能够整除4个WRR队列的最大值,该示例中,Mmax=i=Wm=100;进一步的,将 4个WRR队列的初始加权值分别作为除数,将Mmax=100作为被除数,并将其结果作为每个WRR队列对应的最优权值;该示例中,经过整除后,4个WRR队列对应的最优加权值依次为1、1、10、25。

如此,保证队列之间的调度比例符合系统预期,减小WRR调度时的波动,提高网络芯片的稳定性和可靠性。

按照传统的调度队列算法, 4个WRR队列分别对应的加权值为100、100、1000、2500,则以第一队列为例,其理论上的最大调度间隔为(100-100)+(1000-100)+(2500-100)=3300;

而按照本申请获得的最优加权值进行计算,即4个WRR队列分别对应的加权值为1、1、10、25,则以第一队列为例,虽然各个WRR队列之间的调度比例未变,当对于第一队列,其理论上的最大调度间隔调整为(1-1)+(10-1)+(25-1)=33;如此,在保持队列之间权值比例不变的前提下,采用本发明获得的最优加权值,有利于减小各个WRR队列之间的调度间隔,从而使网络芯片的性能越加稳定。

结合图2所示,在本发明的一实施方式中,获取网络芯片WRR最优权值的系统包括:数据获取模块100,数据处理模块200。

数据获取模块100用于获取每个WRR队列的初始加权值。

本发明一实施方式中,数据获取模块100按照各个WRR队列的属性,获得每个WRR队列对应的初始加权值。

该实施方式中,对于每个端口对应的各个WRR队列均具有其各自的属性,例如:WRR队列的数量、位置、传输数据的种类等;通常情况下,按照WRR队列属性,会事先对该端口对应的各个WRR队列预置一组加权值,当数据传输过程中,可直接获得该组加权值使用,在以下描述中,将该组加权值以初始加权值表示。

本发明另一实施方式中,对应一个端口下的各个队列,并不固定为其配置一组加权值,其根据对应当前传输端口的每个WRR队列的传输带宽速率,自动配置一组加权值。

该实施方式中数据获取模块100具体用于:

获取对应当前传输端口的每个WRR队列的传输带宽速率;

依据获得的WRR队列的传输带宽速率获取每个WRR队列的初始加权值;

具体的,数据获取模块100具体用于:

获取每个WRR队列的传输带宽速率,将各个WRR队列的传输带宽速率按照其最小单位进行单位统一处理;

判断各个WRR队列的传输带宽是否为零或为整数,

若是,将经过单位统一处理后的各个WRR队列的传输带宽速率作为各个队列对应的初始加权值;

若否,将各个队列的传输带宽速率同时扩大同一倍数向上取整;

将取整后的各个队列所对应的传输带宽速率作为各个队列对应的初始加权值。

本发明一优选实施方式中,数据获取模块100用于将各个队列的传输带宽同时以10的幂次方为基数向上取整。

以下描述一具体示例做详细说明,以便于理解。

该具体示例中,假设对应当前的传输端口具有4个WRR队列,依次为第一队列、第二队列、第三队列以及第四队列;

其中,第一队列对应的传输带宽速率为100M,第二队列对应的传输速率为100M,第三队列对应的传输速率为1G,第四队列对应的传输速率为2.5G, 对4个队列的传输速率进行单位统一,以“M”为单位,进行换算,本示例中,将各个队列的传输带宽同时以10的幂次方为基数向上取整,则换算后的4个WRR队列对应的传输速率依次为100M、100M、1000M、2500M;进一步的,将取整后的各个队列所对应的传输带宽速率作为各个队列对应的初始加权值,则4个WRR队列对应的初始加权值为100、100、1000、2500。

进一步的,数据处理模块200用于遍历各个WRR队列的初始加权值,获得对应的最大公约数;根据各个WRR队列的初始加权值以及最大公约数获得每个WRR队列对应的最优权值。

本发明一优选实施方式中,数据处理模块200具体用于:

遍历各个WRR队列的初始加权值,获得最小的非零加权值,以Wm表示,1≤m≤n,n表示WRR队列的个数;

以i等于Wm开始,依次递减至i为1,分别作为除数,获得能够整除各个WRR队列的最大值,以Mmax=i表示;

分别以各个WRR队列对应的初始加权值为被除数,以Mmax为除数,并将其结果作为每个WRR队列对应的最优权值。

本发明优选实施方式中,数据处理模块200以最小非零初始权值作为遍历寻找最大公约数时的最大值,大幅缩小了寻找最大公约数时的遍历范围,提高了计算初始加权值最大公约数的效率,节约整体的计算时间,提高芯片性能。

接续上述示例做详细说明,以便于理解。

4个WRR队列的初始加权值依次为100、100、1000、2500;

遍历4个WRR队列的初始加权值,获得最小的非零加权值,以Wm表示,则Wm=100;设置正整数变量i,其取值范围为[100,1];进一步的,从i取值等于Wm开始,即i取值为100开始,并将其作为被除数,获得能够整除4个WRR队列的最大值,该示例中,Mmax=i=Wm=100;进一步的,将 4个WRR队列的初始加权值分别作为除数,将Mmax=100作为被除数,并将其结果作为每个WRR队列对应的最优权值;该示例中,经过整除后,4个WRR队列对应的最优加权值依次为1、1、10、25。

如此,保证队列之间的调度比例符合系统预期,减小WRR调度时的波动,提高网络芯片的稳定性和可靠性。

按照传统的调度队列算法, 4个WRR队列分别对应的加权值为100、100、1000、2500,则以第一队列为例,其理论上的最大调度间隔为(100-100)+(1000-100)+(2500-100)=3300;

而按照本申请获得的最优加权值进行计算,即4个WRR队列分别对应的加权值为1、1、10、25,则以第一队列为例,虽然各个WRR队列之间的调度比例未变,当对于第一队列,其理论上的最大调度间隔调整为(1-1)+(10-1)+(25-1)=33;如此,在保持队列之间权值比例不变的前提下,采用本发明获得的最优加权值,有利于减小各个WRR队列之间的调度间隔,从而使网络芯片的性能越加稳定。

综上所述,本发明的获取网络芯片WRR最优权值的方法及系统,通过使用最小非零原始权值作为遍历寻找最大公约数时的最大值,大幅缩小了寻找最大公约数时的遍历范围,提高了计算原始加权值最大公约数的效率,进一步的,遍历寻找所有队列的原始加权值最大公约数,将原始加权值分别除以最大公约数,从而快速、准确的生成WRR各个队列的最优权值;保证队列之间的调度比例符合系统预期,减小WRR调度时的波动,提高网络芯片的稳定性和可靠性,提高开发人员工作效率。

为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本发明时可以把各模块的功能在同一个或多个软件和/或硬件中实现。

以上所描述的装置实施方式仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施方式方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。

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