CN100505688C - 一种用于网络处理器的差额权重排队调度装置及调度方法 - Google Patents

一种用于网络处理器的差额权重排队调度装置及调度方法 Download PDF

Info

Publication number
CN100505688C
CN100505688C CN200510124024.9A CN200510124024A CN100505688C CN 100505688 C CN100505688 C CN 100505688C CN 200510124024 A CN200510124024 A CN 200510124024A CN 100505688 C CN100505688 C CN 100505688C
Authority
CN
China
Prior art keywords
queue
priority
formation
scheduling
frame
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN200510124024.9A
Other languages
English (en)
Other versions
CN1972242A (zh
Inventor
宫曙光
李华伟
李晓维
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN200510124024.9A priority Critical patent/CN100505688C/zh
Publication of CN1972242A publication Critical patent/CN1972242A/zh
Application granted granted Critical
Publication of CN100505688C publication Critical patent/CN100505688C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种用于网络处理器的差额权重排队调度方法,包括:根据各个队列的首帧长度、每个队列的传输带宽比以及上次调度的结果,计算等待调度的各个队列的优先级;根据优先级,从候选队列中选择调度对象;发送调度结果,并将发送帧从队列中删除,然后重复上述操作进行下一次调度。本发明还公开了一种差额权重排队调度装置,包括:优先级缓冲寄存器、队列发送控制装置、优先级计算装置、队列选择仲裁装置。本发明的优点在于:具有较好的公平性;可抑制网络的突发传输现象的发生;具有较低的工作复杂度。

Description

一种用于网络处理器的差额权重排队调度装置及调度方法
技术领域
本发明涉及数据通信技术领域,特别涉及一种用于网络处理器的差额权重排队调度装置及调度方法。
背景技术
网络带宽和网络服务需求的飞速增长,要求网络核心设备能提供更高的传输带宽和更深层的分组处理能力。网络处理器由于兼具高速处理性能和高度灵活的特点,正在取代传统的GPP(通用处理器)、ASIC(专用集成电路)和FPGA(现场可编程阵列)等实现方式,成为下一代网络设备的核心。这就要求网络处理器能提供较好的服务控制功能,特别是为了满足不断增长的区分服务的要求,所用的调度方法必须具有较好的性能。另一方面,由于是基于硬件的设计,所用的调度方法还必须具有较低的实现复杂度。
公平性是衡量调度方法性能最重要的指标,由于存在带宽竞争,网络交换设备必须根据业务流的类型合理地进行流量分配,以提供高质量的区分服务。现有的调度方法中,像FCFS(先来先服务),BR(按位循环轮转)以及FQ(公平排队)等方法是较早提出来的,这些调度方法都无法满足网络区分服务的要求。WRR(按权重循环轮转)、DRR(不足额循环轮转)、SRR(过剩循环轮转)及ERR(灵活的循环轮转)等方法是一类可用于区分服务的基于循环轮转的调度方法,它们的工作复杂度较低,但是其动态调度性能、公平性能和延迟性能都受到一定的限制。WFQ(加权公平排队)、WF2Q(最坏情况下的加权公平排队)等方法是一类可用于区分服务的基于优先级准则的调度方法,公平性较好,特别是WF2Q考虑到突发问题,在最坏情况下,仍旧具有较好的公平性。但由于该类方法通常需要计算虚拟时间和进行流排序,像WF2Q还要和相应GPS(通用处理共享)系统进行比较,工作复杂度较高,并且实现困难。正是由于现有的各种调度方法不能同时具备高性能、易实现的特点,所以需要设计一种新的调度方法来满足网络处理器设计的特殊要求。
发明内容
本发明的目的是克服现有调度方法工作复杂度高,实现困难的缺点,提供一种具有较好公平性,并可抑制网络突发传输现象的调度方法及相应的调度装置。
为了实现上述目的,本发明提供了一种用于网络处理器的差额权重排队调度装置,包括:用于保存优先级计算结果的优先级缓冲寄存器3,和用于发送调度队列中的帧的队列发送控制装置6,还包括用于计算队列优先级的优先级计算装置1,队列选择仲裁装置5;优先级计算装置1根据网络处理器的队列管理部件中所存放的各个队列的首帧长度以及每个队列的传输带宽比,计算队列的优先级,优先级的计算结果发送到优先级缓冲寄存器3中,队列选择仲裁装置5从优先级缓冲寄存器3获取各个队列的优先级,结合各个队列的首帧长度,按照差额权重排队调度方法的调度原则,选择一个队列作为调度队列,并将选择的结果发送到队列发送控制装置6中,同时要将选择的结果反馈到优先级计算装置1中,供下次优先级计算时使用;队列发送控制装置6根据队列选择仲裁装置5的仲裁结果,发送调度队列中的帧,并通知队列管理部件将已经调度的帧从相应队列中删除。
上述技术方案中,所述的优先级缓冲寄存器3由活动队列计数寄存器和优先级结果寄存器组成,活动队列计数寄存器存放每次调度的队列数目,优先级结果寄存器则存放队列优先级的计算结果。
还包括用于优先权修正参数计算的优先级修正参数计算装置2,用于保存候选队列号的候选队列缓冲寄存器4;优先级计算装置1根据网络处理器的队列管理部件中所存放的各个队列的首帧长度以及每个队列的传输带宽比,计算队列的优先级,优先级的计算结果发送到优先级缓冲寄存器3中;优先级修正参数计算装置2根据各个队列的帧长度,计算优先级修正参数,由优先权修正参数决定候选队列,并将候选队列号发送到候选队列缓冲寄存器4中;队列选择仲裁装置5由候选队列缓冲寄存器4和优先级缓冲寄存器3获取候选队列及候选队列的优先级,结合候选队列的首帧长度,按照差额权重排队调度方法的调度原则,选择一个队列作为调度队列,并将选择的结果发送到队列发送控制装置6中,同时要将选择的结果反馈到优先级计算装置1和优先级修正参数计算装置2中,供下次优先级计算时使用;队列发送控制装置6根据队列选择仲裁装置5的仲裁结果,发送调度队列中的帧,并通知队列管理部件将已经调度的帧从相应队列中删除。
所述的候选队列缓冲寄存器4由候选队列计数寄存器和候选队列寄存器组成,候选队列计数寄存器存放每次调度候选队列的数目,候选队列号则依次存放在候选队列寄存器中。
一种用于网络处理器的差额权重排队调度方法,包括:
1)、根据各个队列的首帧长度和每个队列的传输带宽比,计算等待调度的各个队列的优先级;
2)、根据步骤1)得到的优先级,从候选队列中选择调度对象;
3)、根据步骤2)的结果,发送调度结果,并将发送帧从队列中删除,然后返回步骤1)进行下一次调度,本次调度的结果在下一次调度时用于优先级的计算。
所述的步骤1)中,队列优先级的计算公式为:
R i 1 = D i 1
R i k + 1 = R i k - L s k k ( s k ≠ i ) R i k - L s k k + D i k + 1 ( s k = i )
其中,
Figure C200510124024D00083
表示第k次调度,流队列i的优先级;
Figure C200510124024D00084
表示第k次调度时,流队列i根据分配的传输速度,所期望的首帧发送完成时间因子, D i k = L i k P i ;
Figure C200510124024D00086
表示第k次调度时,流队列i的首帧的长度;
Sk表示第k次调度时,被调度的流队列的号;
Pi表示流队列i所占的传输带宽比例。
所述的步骤2)中,在选择调度对象时,从候选队列中选择优先级最小的队列,若有多个队列的优先级相同,且值都是最小,则选择首帧长度最小的队列,如果优先级相同且首帧长度也相同,则选择队列号最小的队列。
一种带优先级修正参数的差额权重排队调度方法,包括:
a)、根据各个队列的首帧长度、每个队列的传输带宽比以及上次调度的结果,计算等待调度的各个队列的优先级和优先级修正参数;
b)、考察步骤a)所得到的优先级修正参数确定候选队列;
c)、根据步骤a)得到的优先级,从步骤b)得到的候选队列中选择调度对象;
d)、根据步骤c)的结果,发送调度结果,并将发送帧从队列中删除,然后返回步骤a)进行下一次调度。
所述的步骤a)中,队列优先级的计算公式为:
R i 1 = D i 1
R i k + 1 = R i k - L s k k ( s k ≠ i ) R i k - L s k k + D i k + 1 ( s k = i )
其中,
Figure C200510124024D00093
表示优先级(i为队列号,k为调度次数);
Figure C200510124024D00094
表示第k次调度时,流队列i根据分配的传输速度,所期望的首帧发送完成时间因子, D i k = L i k P i ;
表示第k次调度时,流队列i的首帧的长度;
Sk表示第k次调度时,被调度的流队列的号;
Pi表示流队列i所占的传输带宽比例。
所述的步骤a)中,
所述的优先级修正参数的计算公式为:
V i 1 = 0
V i k + 1 = V i k - L s k k ( s k ≠ i ) V i k + D i k - L i k ( s k = i )
其中,Vi k表示优先级修正参数,它表示第k次调度时,流队列i中等待调度的帧在相应GPS系统中发送时刻与当前时刻的差值;
Figure C200510124024D000910
表示第k次调度时,流队列i的首帧的长度;
Figure C200510124024D000911
表示第k次调度时,流队列i根据分配的传输速度,所期望的首帧发送完成时间因子, D i k = L i k P i ;
sk表示第k次调度时,被调度的流队列的号;
Pi表示流队列i所占总的传输带宽比例。
所述的步骤b)中,在选择候选队列时,选择优先级修正参数小于等于0的队列作为候选队列,如果不存在优先级修正参数小于等于0的队列,则将所有的队列作为候选队列。
所述的步骤c)中,在选择调度对象时,选择优先级最小的队列,若有多个队列的优先级相同,且值都是最小,则选择首帧长度最小的队列,如果优先级相同且首帧长度也相同,则选择队列号最小的队列。
本发明的优点在于:
1、具有较好的公平性,
2、可抑制网络的突发传输现象的发生。
3、具有较低的工作复杂度。
附图说明
图1为利用本发明的差额权重排队调度方法对流队列作调度的一个实施例的示意图;
图2为利用本发明的带优先权修正参数的差额权重排队调度方法对流队列作调度的一个实施例的示意图;
图3为利用本发明的差额权重排队调度方法抑制网络突发现象的示意图,其中:
图3(a)为各个流队列的长度的示意图;
图3(b)为不采用优先权修正参数的调度方法时,各个队列中的帧的调度顺序;
图3(c)为采用优先权修正参数的调度方法时,各个队列中的帧的调度顺序;
图4为本发明的用于网络处理器的差额权重排队调度装置的一种实现方式的结构图;
图5为本发明的用于网络处理器的差额权重排队调度装置的另一种实现方式的结构图;
图6(a)为优先级缓冲寄存器的示意图;
图6(b)为候选队列缓冲寄存器的示意图;
图7为本发明的用于网络处理器的差额权重排队调度装置的操作流程图;
图8为本发明的差额权重排队调度方法的流程图。
图面说明:
1 优先级计算装置        2 优先级修正参数计算装置
3 优先级缓冲寄存器组    4 候选队列缓冲寄存器
5 队列选择仲裁装置      6 队列发送控制装置
具体实施方式
下面结合附图和具体实施方式对本发明作进一步说明。
在对本发明的差额权重排队调度方法作详细说明之前,首先对该方法中所使用的主要计算参数进行说明。
r:系统总传输速度;
ri:分配给流队列i的传输速度,∑ri=r(i=0,1,2...n-1,n为流队列数,以下相同);
Figure C200510124024D0011133707QIETU
:第k次调度时,流队列i的首帧的长度;
sk:第k次调度,被调度的流队列的号;
Pi:流队列i所占总的传输带宽比例, P i = r i r ;
Figure C200510124024D00112
第k次调度时,流队列i根据分配的传输速度,所期望的首帧发送完成时间因子(该因子除以r即发送完成时间), D i k = L i k P i ;
Figure C200510124024D00114
第k次调度,流队列i的优先级。
本发明的差额权重排队调度方法包括以下步骤:
步骤10、计算等待调度的各个队列的优先级。用
Figure C200510124024D0011162258QIETU
表示优先级,优先级的计算方法如公式(1)所示。
R i 1 = D i 1
R i k + 1 = R i k - L s k k ( s k ≠ i ) R i k - L s k k + D i k + 1 ( s k = i )
(1)
此外,当一个队列由非活动队列(空队列)变为活动队列(非空队列)时,其优先级为流i期望的首帧发送完成时间因子,即对于流队列i,有
R i k + 1 = D i k + 1
步骤20、从候选队列中选择调度对象。本发明的差额权重排队调度方法的调度原则是:选择优先级最小的队列,若有多个队列的优先级相同,且值都是最小,则选择首帧长度最小的队列,如果优先级和首帧长度都相等则选择队列号最小的队列。根据上述的调度原则,选择所要调度的队列。
步骤30、发送调度结果,并将发送帧从队列中删除,然后返回步骤10进行下一次调度。
参考附图1,实施例1是利用上述的调度算法根据优先级进行调度的一个应用实例。有3个待调度的队列,分别为0号、1号和2号队列,0号队列所分配的传输带宽比为0.5,1号队列所分配的传输带宽比为0.2,2号队列所分配的传输带宽比为0.3。上述传输带宽比在调度过程中不会改变。在0号队列中,首帧的长度为5,1号队列的首帧长度为2,2号队列的首帧长度为3。根据公式(1)中的优先级计算方法,在第一次调度时, R i 1 = D i 1 , D i 1 = L i 1 P i , 故0号队列的优先级为5/0.5=10,1号队列的优先级为2/0.2=10,2号队列的优先级为3/0.3=10。各个队列的优先级相同,因此,比较各队列的首帧长度。1号队列的首帧长度为2,最小,因此在第一次调度时调用1号队列的首帧,并将该帧从队列中删除,然后进入第二次调度。在第二次调度时,各个队列的优先级需要重新计算。在计算优先级时选用公式(1)的后半部分。对0号队列,该队列不是上次调度时所调用的队列,因此,选用计算公式 R i k + 1 = R i k - L Sk k (sk≠i)。也就是用上次调度时的队列优先级减去上次调度时被调度队列的首帧长度,即可以得到本次调度时队列的优先级。0号队列在第二次调度时的优先级为10-2=8。同样的,可以得到2号队列的优先级为10-2=8。由于1号队列是第一次调度时调度的队列,该队列的优先级计算方法有所不同。它的计算公式为 R i k + 1 = R i k - L Sk k + D i k + 1 (sk=i)。也就是用上次调度时的队列优先级减去上次调度时被调度队列的首帧长度,再加上本次调度时,流队列i期望的首帧发送完成时间因子,即可以得到本次调度时队列的优先级。1号队列的优先级为10-2+2/0.2=18。得到3个队列的优先级以后,根据调度原则,首先选择优先级最小的队列。显然,0号队列和2号队列的优先级相同,再比较首帧长度。2号队列的首帧长度较小,因此,在第二次调度时,调用2号队列的首帧,并将该帧从队列中删除,然后进入第三次调度。依此类推,可实现对队列中其他帧的调度。
上面所描述的本发明的差额权重排队调度方法考虑到了带宽分配与帧长度,具有一定的公平性,适合于分组交换。这种调度方法具有接近WFQ的公平性能和延迟性能,同时适当降低了虚拟时间的计算复杂度,它还综合考虑所有的活动队列状态,具有较好的动态调度性能。但应看到,该调度方法还存在一定的缺陷,很可能会产生突发现象。所述的突发现象主要是指,由于调度算法的原因,网络处理器某些端口可能会每隔一段时间集中发送一次数据,并且每次都会集中发送大量数据,从而造成某些端口一段时间内流量陡增,而另外一段时间没有或只有很少流量,这种现象会造成网络拥塞控制算法的失效,所以应该尽量避免。
为了抑制突发现象的产生,本发明的差额权重排队调度方法还可以增加优先级修正参数以实现对优先级的修正。在本发明中,用Vi k表示优先级修正参数,它表示第k次调度时,流队列i中等待调度的帧在相应GPS系统中发送时刻与当前时刻的差值。利用该优先级修正参数可以使每个流队列首帧的发送时刻不早于相应GPS系统中帧的发送时刻。
带优先级修正参数的差额权重排队调度方法包括以下步骤:
步骤40:计算等待调度的各个队列的优先级和优先级修正参数。优先级的计算方法与步骤10相同,优先级修正参数的计算方法如公式(2)。
V i 1 = 0
V i k + 1 = V i k - L s k k ( s k ≠ i ) V i k + D i k - L i k ( s k = i ) - - - ( 2 )
该计算公式表示:在第一次调度时,所有候选队列的优先级修正参数都为0。在其他调度中,若一个队列在上次调度时为所调度的队列,则该队列的优先级修正参数是该队列在上次调度时的优先级修正参数减去该队列在上次调度时的首帧长度,然后再加上上次调度时,流队列i期望的首帧发送完成时间因子(即 V i k + 1 = V i k - L i k + D i k );若一个队列不是上次调度时所调度的队列,则该队列的优先级修正参数是该队列在上次调度时的优先级修正参数减去上次调度时所调度队列的首帧长度(即 V i k + 1 = V i k - L Sk k )。
步骤50:从候选队列中选择调度对象。有优先级修正参数后,队列的调度原则也有所改变。带优先级修正参数的差额权重排队调度方法的调度原则为:首先查找是否存在优先级修正参数小于或等于零的流队列,若存在,将这些流队列作为当前调度的候选队列,然后从候选队列中选择优先级最小的队列,若有多个队列的优先级最小,则选择首帧长度最短的队列;若不存在优先级修正参数小于或等于零的流队列,则将所有的队列都作为候选队列,然后再选择优先级最小且首帧长度最短的队列;上述选择得到的结果就是所要调度的队列。
步骤60、发送调度结果,并将发送帧从队列中删除,然后返回步骤40进行下一次调度。
参考附图2,实施例2是在实施例1的基础上,对差额权重排队调度方法增加优先权修正参数的一个应用实例。与实施例1相同,在该实施例中,有3个待调度的队列,分别为0号、1号和2号队列,0号队列所分配的传输带宽比为0.5,1号队列所分配的传输带宽比为0.2,2号队列所分配的传输带宽比为0.3。在第一次调度时,0号、1号和2号队列的优先级都为10,根据公式(2),0号、1号和2号队列的优先权修正参数都为0,所以0、1、3号队列均属于后选队列。又因为三个队列的优先级均为10,此时因为1号队列首帧长度最短,根据调度规则,选择帧长度最短的1号队列作为第一次调度的对象。在第二次调度时,根据公式 V i k + 1 = V i k - L Sk k (sk≠i),0号队列的优先权修正参数为0-2=-2。同样的,2号队列的优先权修正参数为-2。1号队列是第一次调度的对象,该队列的优先权修正参数的计算公式为 V i k + 1 = V i k - L i k + D i k , 所以1号队列的优先权修正参数为0-2+2/0.2=8。由于0、2号队列的优先权修正参数为负数,所以这两个队列是候选队列,再比较这两个队列的优先权和首帧长度,最后,在第二次调度时,调用2号队列。在第三次调度时,因为只有0号队列的优先级修正参数小于等于0,所以直接选择0号队列作为调度对象。依此类推,可实现队列中其他帧的调度。
由实施例2的描述,一个队列在被调度以后,该队列的优先权修正参数会变大,不利于该队列在下次调度时被选中,因此对网络传输中的突发现象有明显的抑制作用。下面结合附图3对带优先权修正参数的差额权重排队调度方法的效果进行说明。
在网络流量呈双值分布(Two-value Distribution)的情况下,当帧的平均长度接近时,使用一般的调度算法容易发生突发现象。如在图3(a)所示的例子中,假定各个流队列帧的长度相同,当流S1所占带宽比为0.5,其它流所占带宽比为0.1时,如果不使用优先级修正参数,仅仅依照差额权重排队调度方法的基本优先级调度规则进行调度,各个流队列帧的发送顺序如图3(b)所示,其中S1流会每隔一段时间集中发送一次,从而造成突发现象。在差额权重排队调度方法中,通过利用优先级修正参数对调度顺序进行调节,可以适当地抑制突发现象,附图3(c)是使用优先级修正参数后的调度结果,可以看到,和图3(b)所示的发送结果相比,发送更加平滑,降低了端口突发的可能性。
此外,差额权重排队调度方法还具有较低的工作复杂度。使用差额权重排队调度方法时,帧入队只需要进行链表的尾部插入,其计算复杂度为O(1)。帧出队需要进行优先级、优先级修正参数计算、调度队列选择、链表删除等操作。优先级与优先级修正参数的计算以及将帧从链表删除需要O(1)的时间复杂度,而调度队列的选择由于要进行比较,其最大计算时间复杂度为O(logn)(n为流队列的最大数目),所以整个差额权重排队调度方法的工作复杂度为O(logn)。另外,差额权重排队调度方法的优先级和延迟参数计算只需要简单的加减运算,帧长度
Figure C200510124024D0015112516QIETU
由于已经记录在相关的帧信息结构中,可以直接获得,各个流的带宽比Pi一般在初始化时设置,并且在运行过程中一般不再改变,所以差额权重排队调度方法没有特别复杂的参数计算,方法的实现非常简单。
与本发明的差额权重排队调度方法相对应的是差额权重排队调度装置,如图4所示,为与本发明的差额权重排队调度方法相对应的差额权重排队调度装置。在图4中,方框内的部分为本发明的差额权重排队调度装置,方框外的队列管理部件位于网络处理器中。
该调度装置包括:优先级计算装置1、优先级缓冲寄存器组3、队列选择仲裁装置5和队列发送控制装置6。优先级计算装置1与队列管理部件、队列选择仲裁装置5和优先级缓冲寄存器3相连,用于队列优先级的计算;优先级缓冲寄存器3与优先级计算装置1和队列选择仲裁装置5相连,用于保存优先级计算的结果;队列选择仲裁装置5根据当前排队队列的优先级计算结果,按照差额权重排队调度方法的调度原则,选择一个队列作为调度队列;队列发送控制装置6根据队列选择仲裁装置5的仲裁结果,发送调度队列中的帧,并通知队列管理部件将已经调度的帧从相应队列中删除。
上述的差额权重排队调度装置与前述的不带优先级修正参数的调度方法相对应的,在本实施中,还提供了一种带优先级修正参数的差额权重排队调度方法,如图5所示,为与本发明的带优先级修正参数的差额权重排队调度方法相对应的差额权重排队调度装置。在图5中,方框内的部分为本发明的差额权重排队调度装置,方框外的队列管理部件位于网络处理器中。
该调度装置包括:优先级计算装置1、优先级修正参数计算装置2、优先级缓冲寄存器组3、候选队列缓冲寄存器4、队列选择仲裁装置5和队列发送控制装置6。
该部件中各个部分的功能及相互间的连接关系如下:
优先级计算装置1与队列管理部件、队列选择仲裁装置5和优先级缓冲寄存器3相连,优先级计算装置1通过与队列管理部件的接口获取所有排队队列首帧的信息,通过和队列选择仲裁装置5的接口获取每次调度的仲裁结果,并根据差额权重排队调度方法的公式(1)进行各个队列优先级的计算,每次计算的结果缓存到优先级缓冲寄存器3中,并负责向队列选择仲裁装置5发送仲裁请求。
优先级修正参数计算装置2与队列管理部件、队列选择仲裁装置5和候选队列缓冲寄存器4相连,优先级修正参数计算装置2由队列管理部件得到排队队列首帧的信息,由队列选择仲裁装置5得到每次调度的仲裁结果,根据排队队列首帧的信息、每次调度的仲裁结果和差额权重排队调度方法的公式(2)进行优先级修正参数的计算,如果存在优先级修正参数小于等于0的队列,则将这些队列作为候选队列,否则将所有的队列作为候选队列。候选结果存储在候选队列缓冲寄存器4中,同时优先级修正参数计算装置2还负责并负责向队列选择仲裁装置5发送仲裁请求。
优先级缓冲寄存器3与优先级计算装置1和队列选择仲裁装置5相连,优先级缓冲寄存器3负责存放每次调度时由优先级计算装置1所得到的优先级的计算结果,它主要由一个活动队列计数寄存器和多个优先级结果寄存器组成。如图5(a)所示,活动队列计数寄存器存放每次调度的队列数目,优先级结果寄存器则存放相应队列优先级的计算结果,例如0号优先级结果寄存器对应着0号流队列的优先级计算结果。队列选择仲裁装置5可以通过访问这些寄存器获取调度优先级,供仲裁使用。
候选队列缓冲寄存器4与优先级修正参数计算装置2和队列选择仲裁装置5相连,候选队列缓冲寄存器4负责存放每次调度时由优先级修正参数计算装置2所得到的候选队列,它主要由候选队列计数寄存器和多个候选队列寄存器组成。如图5(b)所示,候选队列计数寄存器存放每次调度候选队列的数目,候选队列号则依次存放在候选队列寄存器中,队列选择仲裁装置5可以通过访问这些寄存器获取候选队列,供仲裁使用。
队列选择仲裁装置5根据当前排队队列的优先级计算结果,按照差额权重排队调度方法的调度原则,从候选队列中选择一个队列作为调度队列。它通常在候选队列集合中采用快速排序方法,选择优先级最小的队列中首帧长度最短的队列作为调度对象,每次仲裁的结果将同时发给优先级计算装置1、优先级修正参数计算装置2和队列发送控制装置6,前两者将根据仲裁结果进行新的优先级和优先级修正参数的计算。
队列发送控制装置6根据队列选择仲裁装置5所得到的仲裁结果,取调度对象(帧)的相关参数,通过发送端口将帧交给下一级发送部件进行排队,在发送调度帧信息的同时,它还负责通知队列管理部件将已经调度的帧从相应队列中删除。
上述装置可通过对网络处理器作电路设计得到,根据上述装置所描述的功能,本领域的普通技术人员无需创造性劳动即可得到上述装置。
在工作时,各个差额权重排队调度装置的组成装置是并行工作的,下面对各个主要装置的具体操作步骤进行描述,其中对优先级缓冲寄存器和候选队列寄存器的操作由于是基本的寄存器读写操作,在此不再赘述。
如图6所示,优先级计算和优先级修正参数计算装置的主要操作步骤如下,
(1)在初始化阶段,该装置设置初始化优先级和优先级修正参数的值,并设置仲裁结果可用标志。
(2)如果仲裁结果可用则继续,否则等待。
(3)设置仲裁结果不可用标记,读取排队帧信息,计算优先级和优先级修正参数,并根据结果确定候选队列。
(4)将优先级计算结果和候选队列号写入缓冲寄存器。
(5)发送仲裁请求,等待仲裁完成。
(6)如果收到仲裁应答则继续,否则继续等待。
(7)设置仲裁结果可用标记返回(2),进行下一论调度计算
队列选择仲裁装置的主要操作步骤如下
(1)初始化,进入仲裁请求等待阶段(2)。
(2)如果有仲裁请求则继续,否则等待。
(3)从候选缓冲寄存器获取候选队列集合,进行优先级比较,确定调度队列。
(4)向优先级计算和优先级修正参数计算装置发送仲裁应答和仲裁结果,以便它们可以进行下一论调度的计算,同时还负责向队列发送控制装置发送发送请求和仲裁结果。
(5)如果收到发送应答则返回(2),否则继续等待。
队列发送控制装置的主要操作步骤如下
(1)初始化,进入发送请求等待阶段(2)。
(2)如果有发送请求则继续,否则等待。
(3)发送调度帧的信息给下一级发送部件。
(4)如果调度帧信息已经发送完毕,则向队列选择仲裁装置发送应答信号返回(2),否则继续发送。

Claims (12)

1、一种用于网络处理器的差额权重排队调度装置,包括:用于保存优先级计算结果的优先级缓冲寄存器(3),和用于发送调度队列中的帧的队列发送控制装置(6),其特征在于,还包括用于计算队列优先级的优先级计算装置(1),队列选择仲裁装置(5);其中,所述的优先级计算装置(1)根据网络处理器的队列管理部件中所存放的各个队列的首帧长度以及每个队列的传输带宽比,计算队列的优先级,优先级的计算结果发送到优先级缓冲寄存器(3)中,队列选择仲裁装置(5)从优先级缓冲寄存器(3)获取各个队列的优先级,结合各个队列的首帧长度,按照差额权重排队调度方法的调度原则,选择一个队列作为调度队列,并将选择的结果发送到队列发送控制装置(6)中,同时要将选择的结果反馈到优先级计算装置(1)中,供下次优先级计算时使用;队列发送控制装置(6)根据队列选择仲裁装置(5)的仲裁结果,发送调度队列中的帧,并将调度结果返回到队列管理部件中。
2、根据权利要求1所述的用于网络处理器的差额权重排队调度装置,其特征在于,所述的优先级缓冲寄存器(3)由活动队列计数寄存器和优先级结果寄存器组成,活动队列计数寄存器存放每次调度的队列数目,优先级结果寄存器则存放队列优先级的计算结果。
3、根据权利要求2所述的用于网络处理器的差额权重排队调度装置,其特征在于,还包括用于优先权修正参数计算的优先级修正参数计算装置(2),用于保存候选队列号的候选队列缓冲寄存器(4);优先级计算装置(1)根据网络处理器的队列管理部件中所存放的各个队列的首帧长度以及每个队列的传输带宽比,计算队列的优先级,优先级的计算结果发送到优先级缓冲寄存器(3)中;优先级修正参数计算装置(2)根据各个队列的帧长度,计算优先级修正参数,由优先权修正参数决定候选队列,并将候选队列号发送到候选队列缓冲寄存器(4)中;队列选择仲裁装置(5)由候选队列缓冲寄存器(4)和优先级缓冲寄存器(3)获取候选队列及候选队列的优先级,结合候选队列的首帧长度,按照差额权重排队调度方法的调度原则,选择一个队列作为调度队列,并将选择的结果发送到队列发送控制装置(6)中,同时要将选择的结果反馈到优先级计算装置(1)和优先级修正参数计算装置(2)中,供下次优先级计算时使用;队列发送控制装置(6)根据队列选择仲裁装置(5)的仲裁结果,发送调度队列中的帧,并通知队列管理部件将已经调度的帧从相应队列中删除。
4、根据权利要求3所述的差额权重排队调度装置,其特征在于,所述的候选队列缓冲寄存器(4)由候选队列计数寄存器和候选队列寄存器组成,候选队列计数寄存器存放每次调度候选队列的数目,候选队列号则依次存放在候选队列寄存器中。
5、一种应用在权利要求1所述的用于网络处理器的差额权重排队调度装置上的差额权重排队调度方法,包括:
1)、启动优先级计算装置(1),根据各个队列的首帧长度和每个队列的传输带宽比,计算等待调度的各个队列的优先级;
2)、根据步骤1)得到的优先级,队列选择仲裁装置(5)从候选队列中选择调度对象;
3)、根据步骤2)的结果,队列发送控制装置(6)发送调度结果,并将发送帧从队列中删除,然后返回步骤1)进行下一次调度,本次调度的结果在下一次调度时用于优先级的计算。
6、根据权利要求5所述的差额权重排队调度方法,其特征在于,所述的步骤1)中,队列优先级的计算公式为:
R i 1 = D i 1
R i k + 1 = R i k - L s k k ( s k ≠ i ) R i k - L s k k + D i k + 1 ( s k = i )
其中,
Figure C200510124024C00033
表示第k次调度,流队列i的优先级;
Figure C200510124024C00034
表示第k次调度时,流队列i根据分配的传输速度,所期望的首帧发送完成时间因子, D i k = L i k P i ;
表示第k次调度时,流队列i的首帧的长度;
Sk表示第k次调度时,被调度的流队列的号;
Pi表示流队列i所占的传输带宽比例。
7、根据权利要求5所述的差额权重排队调度方法,其特征在于,所述的步骤2)中,在选择调度对象时,从候选队列中选择优先级最小的队列,若有多个队列的优先级相同,且值都是最小,则选择首帧长度最小的队列,如果优先级相同且首帧长度也相同,则选择队列号最小的队列。
8、一种应用在权利要求3所述的差额权重排队调度装置上的带优先级修正参数的差额权重排队调度方法,包括:
a)、根据各个队列的首帧长度、每个队列的传输带宽比以及上次调度的结果,计算等待调度的各个队列的优先级和优先级修正参数;
b)、考察步骤a)所得到的优先级修正参数确定候选队列;
c)、根据步骤a)得到的优先级,从步骤b)得到的候选队列中选择调度对象;
d)、根据步骤c)的结果,发送调度结果,并将发送帧从队列中删除,然后返回步骤a)进行下一次调度。
9、根据权利要求8所述的带优先级修正参数的差额权重排队调度方法,其特征在于,所述的步骤a)中,队列优先级的计算公式为:
R i 1 = D i 1
R i k + 1 = R i k - L s k k ( s k ≠ i ) R i k - L s k k + D i k + 1 ( s k = i )
其中,
Figure C200510124024C00043
表示优先级,i为队列号,k为调度次数;
Figure C200510124024C00044
表示第k次调度时,流队列i根据分配的传输速度,所期望的首帧发送完成时间因子, D i k = L i k P i ;
Figure C200510124024C00046
表示第k次调度时,流队列i的首帧的长度;
Sk表示第k次调度时,被调度的流队列的号;
Pi表示流队列i所占的传输带宽比例。
10、根据权利要求8所述的带优先级修正参数的差额权重排队调度方法,其特征在于,所述的步骤a)中,
所述的优先级修正参数的计算公式为:
V i 1 = 0
V i k + 1 = V i k - L s k k ( s k ≠ i ) V i k + D i k - K i k ( s k = i )
其中,
Figure C200510124024C00052
表示优先级修正参数,它表示第k次调度时,流队列i中等待调度的帧在相应GPS系统中发送时刻与当前时刻的差值;
Figure C200510124024C00053
表示第k次调度时,流队列i的首帧的长度;
Figure C200510124024C00054
表示第k次调度时,流队列i根据分配的传输速度,所期望的首帧发送完成时间因子, D i k = L i k P i ;
sk表示第k次调度时,被调度的流队列的号;
Pi表示流队列i所占总的传输带宽比例。
11、根据权利要求8所述的带优先级修正参数的差额权重排队调度方法,其特征在于,所述的步骤b)中,在选择候选队列时,选择优先级修正参数小于等于0的队列作为候选队列,如果不存在优先级修正参数小于等于0的队列,则将所有的队列作为候选队列。
12、根据权利要求8所述的带优先级修正参数的差额权重排队调度方法,其特征在于,所述的步骤c)中,在选择调度对象时,选择优先级最小的队列,若有多个队列的优先级相同,且值都是最小,则选择首帧长度最小的队列,如果优先级相同且首帧长度也相同,则选择队列号最小的队列。
CN200510124024.9A 2005-11-23 2005-11-23 一种用于网络处理器的差额权重排队调度装置及调度方法 Active CN100505688C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200510124024.9A CN100505688C (zh) 2005-11-23 2005-11-23 一种用于网络处理器的差额权重排队调度装置及调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200510124024.9A CN100505688C (zh) 2005-11-23 2005-11-23 一种用于网络处理器的差额权重排队调度装置及调度方法

Publications (2)

Publication Number Publication Date
CN1972242A CN1972242A (zh) 2007-05-30
CN100505688C true CN100505688C (zh) 2009-06-24

Family

ID=38112842

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200510124024.9A Active CN100505688C (zh) 2005-11-23 2005-11-23 一种用于网络处理器的差额权重排队调度装置及调度方法

Country Status (1)

Country Link
CN (1) CN100505688C (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101471856B (zh) * 2007-12-26 2011-01-12 无锡江南计算技术研究所 仲裁方法和仲裁器
CN101621478A (zh) 2009-08-07 2010-01-06 中兴通讯股份有限公司 队列调度的方法及装置
CN102045858A (zh) * 2009-10-19 2011-05-04 中兴通讯股份有限公司 WiMAX系统的业务调度方法和装置
CN103530173B (zh) * 2012-07-06 2018-07-17 上海宝信软件股份有限公司 动态权重事件处理系统和方法
CN102868633B (zh) * 2012-09-12 2015-04-29 中国联合网络通信集团有限公司 分组数据调度方法及系统
CN105376177B (zh) * 2015-12-12 2018-07-03 中国航空工业集团公司西安航空计算技术研究所 一种可配置多优先级调度方法
CN107196874B (zh) * 2017-05-16 2020-11-10 北京中电普华信息技术有限公司 一种队列调度算法及系统
CN113037650B (zh) * 2019-12-09 2022-11-18 北京灵汐科技有限公司 一种数据处理的方法、装置和电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030128707A1 (en) * 1999-02-09 2003-07-10 Mohan Kalkunte Servicing output queues dynamically according to bandwidth allocation in a frame environment
CN1472936A (zh) * 2003-05-16 2004-02-04 上海交通大学 流体轨迹轮询调度方法
US20040057459A1 (en) * 2002-09-23 2004-03-25 Jacob Sharony System and method for wireless network channel management
CN1581843A (zh) * 2003-07-31 2005-02-16 中兴通讯股份有限公司 基于包模式的流量控制装置及方法
CN2884709Y (zh) * 2005-11-30 2007-03-28 中国科学院计算技术研究所 一种网络处理器上的差额权重排队调度部件

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030128707A1 (en) * 1999-02-09 2003-07-10 Mohan Kalkunte Servicing output queues dynamically according to bandwidth allocation in a frame environment
US20040057459A1 (en) * 2002-09-23 2004-03-25 Jacob Sharony System and method for wireless network channel management
CN1472936A (zh) * 2003-05-16 2004-02-04 上海交通大学 流体轨迹轮询调度方法
CN1581843A (zh) * 2003-07-31 2005-02-16 中兴通讯股份有限公司 基于包模式的流量控制装置及方法
CN2884709Y (zh) * 2005-11-30 2007-03-28 中国科学院计算技术研究所 一种网络处理器上的差额权重排队调度部件

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种适用于网络处理器的队列管理算法. 郑波,林闯,李寅.计算机研究与发展,第42卷第10期. 2005 *

Also Published As

Publication number Publication date
CN1972242A (zh) 2007-05-30

Similar Documents

Publication Publication Date Title
CN100505688C (zh) 一种用于网络处理器的差额权重排队调度装置及调度方法
US7292580B2 (en) Method and system for guaranteeing quality of service in a multi-plane cell switch
CN101414958B (zh) 一种业务调度方法及装置
US6122673A (en) Port scheduler and method for scheduling service providing guarantees, hierarchical rate limiting with/without overbooking capability
US20070064711A1 (en) System and method for providing, by a plurality of schedulers, differentiated service to consumers of distributed resources
CN105657843B (zh) 一种出站容量受限非对称卫星信道出站资源调度方法及装置
US7929438B2 (en) Scheduler pipeline design for hierarchical link sharing
US9042224B2 (en) Method and system for weighted fair queuing
CN103718522A (zh) 在拥塞下采用基于业务负荷的缩放进行调度
US8339949B2 (en) Priority-aware hierarchical communication traffic scheduling
US20030219026A1 (en) Method and multi-queue packet scheduling system for managing network packet traffic with minimum performance guarantees and maximum service rate control
CN100420241C (zh) 实现信息交换的系统及方法和调度算法
JPH10313324A (ja) 通信ネットワークにおけるパケットの配送装置とその方法
CN101286949A (zh) 基于IEEE802.16d标准的无线Mesh网MAC层资源调度策略
CN104009936B (zh) 一种基于动态权重计算的队列调度方法
CN102594663A (zh) 队列调度方法及装置
CN116055021B (zh) 一种多用户灵活以太网小颗粒时隙分配方法及装置
CN101374109B (zh) 一种报文调度方法和调度装置
CN2884709Y (zh) 一种网络处理器上的差额权重排队调度部件
CN100456744C (zh) 一种数据调度方法及系统
CN106921586A (zh) 一种数据流整形方法、数据调度方法以及装置
WO2003047182A1 (en) Method for real time network traffic admission and scheduling
US7385987B1 (en) Scheduling system and method for multi-level class hierarchy
US7623456B1 (en) Apparatus and method for implementing comprehensive QoS independent of the fabric system
US8467401B1 (en) Scheduling variable length packets

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Li Xiaowei

Inventor after: Li Huawei

Inventor after: Gong Shuguang

Inventor before: Gong Shuguang

Inventor before: Li Huawei

Inventor before: Li Xiaowei