基于动态加权循环法的队列调度方法及装置的制造方法

文档序号:8546138阅读:528来源:国知局
基于动态加权循环法的队列调度方法及装置的制造方法
【技术领域】
[0001]本发明涉及通信领域,尤其涉及一种基于动态加权循环法的队列调度方法及装置。
【背景技术】
[0002]目前,在数据通信领域,通过设备的业务种类繁多且流量较大,所以在数据通信设备上都会用到队列调度,动态加权循环法(Dynamic Weighted Round-Robin, DffRR)的队列调度方法是对各队列按照配置比例为每个队列增加调度权值,在每一轮调度循环过程中,使每个队列发送的数据包字节数与填充的调度权值一致,从而到达按比例分配带宽的要求。
[0003]然而,由于DWRR的队列调度方法中是轮流对队列进行调度,当调度装置对非空且调度权值为正的队列进行轮流调度时,会导致高配置比例的队列分配的流量带宽小于配置比例,而在其他低比例配置的队列调度权值为负或O时,调度权值大的队列会存在一段时间内发送带宽大于输入带宽,在队列缓存空间有限情况下,造成队列空情况,例如,队列a、b、c、d的输入速率都为120M,DWRR配置的调度比例为I:49:50:100,端口限速为200M,调度最大包长为1K,则每轮调度循环时四个队列填充的调度权值分别为1K、49K、50K、100K,在轮流从4个队列中的非空且调度权值为正的队列中选择一个队列进行调度时,当a、b、c三个队列的调度权值用完后队列d的调度权值剩余50K,此时调度装置只会对队列d进行调度,由于队列的输入速率小于端口限速速率,队列d分配的缓存空间有限,从而会导致队列d空而其调度权值剩余即结束一轮调度循环,积累的过程会造成此队列的调度权值溢出,使队列调度发送的数据带宽小于配置比例对应的带宽而无法达到预期带宽,从而导致调度比例不准确。

【发明内容】

[0004]有鉴于此,本发明提供一种能提高调度比例准确性的基于动态加权循环法的队列调度方法及装置。
[0005]一种基于动态加权循环法的队列调度方法,其用于在调度装置端口进行队列的调度,所述基于动态加权循环法的队列调度方法包括以下步骤:
[0006]设置各队列的调度比例及一个调度门限值并存储;
[0007]根据配置的调度比例依需要为各个队列填充对应的调度权值;
[0008]在存在非空队列时获取非空队列的各个调度权值来比较各队列的调度权值与所述调度门限值的大小并根据比较结果选择相应队列读取数据包;
[0009]根据所选队列的调度权值与对应读取的数据包的长度计算以更新所选队列的调度权值;
[0010]判断所有队列是否均为空或各队列调度权值是否均小于或等于O并根据判断结果来确定是否重新填充各队列的调度权值以进行调度。
[0011]一种基于动态加权循环法的队列调度装置,其用于在调度装置端口进行队列的调度,所述基于动态加权循环法的队列调度装置包括一个配置模块、一个填充模块、一个判断模块、一个分组比较模块、一个数据包读取模块及一个更新计算模块,所述配置模块用于设置各队列的调度比例及一个调度门限值并存储,所述填充模块用于根据配置的调度比例依需要为各个队列填充对应的调度权值,所述判断模块用于判断各队列中是否存在非空队列,所述分组比较模块用于在存在非空队列时获取非空队列的各个调度权值来比较各队列的调度权值与所述调度门限值的大小,所述数据包读取模块用于根据比较结果来选择相应的队列读取数据包,所述更新计算模块用于根据所选队列的调度权值与对应读取的数据包的长度计算以更新所选队列的调度权值,在更新所选队列的调度权值后所述判断模块判断所有队列是否均为空或各队列调度权值是否均小于或等于O并根据判断结果来确定是否重新填充各队列的调度权值以进行调度。
[0012]与现有技术相比,本发明提供的基于动态加权循环法的队列调度方法及装置利用配置模块预先设置一个调度门限值,分组比较模块比较各队列的调度权值与调度门限值的大小后优先对调度权值大于调度门限值或者调度权值大于等于调度门限值的优先队列进行调度,避免高配置比例的队列分配的流量带宽小于配置比例,防止高配置比例的队列调度权值溢出,保证了动态加权循环法的队列调度比例的准确性,以使队列的带宽达到预期效果。
【附图说明】
[0013]图1是本发明提供的基于动态加权循环法的队列调度装置的模块示意图。
[0014]图2是本发明基于动态加权循环法的队列调度方法的流程图。
[0015]主要元件符号说明
[0016]基于DWRR的队列调度装置100
[0017]配置模块110
[0018]填充模块120
[0019]基数设置单元122
[0020]填充计算单元124
[0021]判断模块130
[0022]分组比较模块140
[0023]数据包读取模块150
[0024]更新计算模块160
[0025]如下【具体实施方式】将结合上述附图进一步说明本发明。
【具体实施方式】
[0026]请参阅图1,其为本发明实施方式提供的一种基于动态加权循环法(DynamicWeighted Round-Robin,DWRR)的队列调度装置100,其用于在DWRR调度装置的端口进行队列的调度,所述基于DWRR的队列调度装置100包括一个配置模块110、一个填充模块120、一个判断模块130、一个分组比较模块140、一个数据包读取模块150及一个更新计算模块160。
[0027]所述配置模块110用于设置各队列的调度比例及一个调度门限值并存储,本实施方式中,设定四个队列a、b、c、d使用DWRR调度方式映射到一个输出端口,配置四个队列a、
b、c、d的调度比例为I:10:20:50,调度门限值设定为120KB(千字节)。可以理解的是,调度比例及调度门限值依需要自行设定即可。
[0028]所述填充模块120包括一个基数设置单元122及一个填充计算单元124,所述基数设置单元122用于依需要确定一个填充基数值,本实施方式中,为方便电路的处理,确定的填充基数值为一个大于最大包长的最小整数值,如以太网的最大包长为1518B (Byte),则确定填充基数值为2K,从而保证每轮调度每个队列可以调度一个数据包。所述填充计算单元124用于依照配置模块110对各队列配置的调度比例分别乘以所确定的填充基数值以得到各个队列的调度权值。本实施方式中,队列a、b、c、d的调度权值分别为1X2K、10X2K、20X2K、50X2K,即分别为 2Κ、20Κ、40Κ、100Κ。
[0029]所述判断模块130用于判断各队列中是否存在非空队列及端口的发送速率是否正常,若队列中不存在非空队列且端口的发送速率不正常即端口发送速率不在正常限速范围内时,调度装置100会处于等待状态直到端口发送速率满足端口的限速范围且存在非空队列。可以理解的是,判断模块130判断出存在非空队列后会记录下非空队列的队列号。本实施方式中,判断端口限速使用单令牌桶的方式实现,当令牌桶的令牌为正数时表示端口发送速率在正常范围内,队列中没有任何元素时表示队列为空队列,如根据队列的头尾指针或表头中的标志位等来判断队列是否为非空。
[0030]所述分组比较模块140用于在判断模块130判断队列中存在非空队列时从填充模块120中获取相应非空队列中各队列的调度权值,并比较各非空队列的调度权值与所设置的调度门限值的大小,可以理解的是,分组比较模块140根据判断模块130记
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1