数据输出调度装置与方法制造方法及图纸

技术编号:15219252 阅读:159 留言:0更新日期:2017-04-26 15:23
本发明专利技术揭露一种数据输出调度装置与方法,能够减少同一队列的数据被连续发送的机会。该方法的一实施例包含下列步骤:提供多个缓存器能够分别储存Q个队列的数据,每该队列对应一权值,所有该权值的总和为Ws,该总和Ws介于2的(M-1)次方与2的M次方之间且不大于一最大总和,该最大总和不大于2的N次方,其中Q为大于1的整数、M为正整数、N为不小于M的正整数;产生一二进制位反向计数值,该反向计数值不大于2的N次方;以及依据该反向计数值决定该Q个队列的其中之一获得一数据输出权。

Data output scheduling device and method

The invention discloses a data output scheduling device and a method thereof, which can reduce the chance that the data of the same queue is transmitted continuously. The method of the embodiment comprises the following steps: providing a plurality of buffer can respectively store Q queue data, each queue corresponds to a sum of all the weights, weight is Ws, the total Ws ranged from 2 (M-1) between the parties and 2 times M and less than the maximum sum. The maximum sum is not greater than 2 times N, where Q is greater than 1, the integer M is a positive integer and N is a positive integer not less than M; a bit reverse count, the reverse count is less than 2 N; and on the basis of the reverse count decided that the Q queue one of them get a data output right.

【技术实现步骤摘要】

本专利技术关于数据输出调度装置与方法,尤其关于能够减少同一队列的数据被连续发送的机会的数据输出调度装置与方法。
技术介绍
数据输出调度算法常应用于通信产品(例如网络通信产品),用来为多个队列的数据安排输出顺序。权重式循环(weightedroundrobin,WRR)算法是常见的数据输出调度算法,能依据多个队列中各队列的权重来从各队列调度数据以输出,举例而言,若该多个队列为队列Q0至队列Q3,队列Q0至Q3的数据依序标示为a、b、c、d,队列Q0至Q3的权重依序为1:1:2:4,则在该些队列均有足够数据待输出的情形下,被输出的数据如图1所示依序将为…a-b-cc-dddd-a-b-cc-dddd-a-b…,其中队列Q0至Q3的数据来自于前一装置或端点110、分别储存于当前装置120的缓存器122至缓存器128、待输出至下一装置或端点130。WRR算法的优点在于容易实现,但缺点在于权重配置不均匀所引起的突发数据流量(databurst)的问题、单个队列的输出不平稳的问题,以图1的例子来说,队列Q3会连续传送四笔数据dddd(相当于数据流量的波峰),接着队列Q0至Q2会依序传送四笔数据a-b-cc(相当于数据流量的波谷),当队列Q3的权重更高或者所连续传送的每笔数据的数据量很大时,数据流量不平稳的现象会更加明显。
技术实现思路
本专利技术的一目的在于提供一种数据输出调度装置与方法,以改善先前技术的缺陷。本专利技术揭露一种数据输出调度装置,能够减少同一队列的数据被连续发送的机会,该装置的一实施例包含:Q个缓存器(buffer);一权值配值器;以及一轮询(polling)电路。该Q个缓存器分别储存Q个队列的数据,该Q个队列分别对应Q个权值,每一该权值不大于一最大权值,该最大权值不大于2的N次方,其中Q为大于1的整数,N为正整数。该权值配置器用来依据至少一二进制位反向(binarybitreverse)数列分别配置该Q个权值,藉此散布该Q个权值中的一第K权值以使其逻辑上关联至2的N次方个排序点中的T个排序点,其中该第K权值的值为T、K为不大于Q的正整数、T为不小于0且不大于该最大权值的整数、该2的N次方个排序点的顺序是一递增顺序。该轮询电路依据该2的N次方个排序点的至少一部分的顺序轮询该Q个缓存器,当该轮询电路于一当前轮询周期内依序轮询该Q个缓存器中的第一个缓存器至第Q个缓存器时,若该当前轮询周期逻辑上对应该2的N次方个排序点中的该T个排序点的其中之一,该轮询电路使该第K权值所对应的该缓存器获得一数据输出权(token)。本专利技术另揭露一种数据输出调度方法,同样能够减少同一队列的数据被连续发送的机会。该方法的一实施例包含下列步骤:提供多个缓存器能够分别储存Q个队列的数据,每该队列对应一权值,所有该权值的总和为Ws,该总和Ws介于2的(M-1)次方与2的M次方之间且不大于一最大总和,该最大总和不大于2的N次方,其中Q为大于1的整数、M为正整数、N为不小于M的正整数;产生一二进制位反向计数值,该反向计数值不大于2的N次方;以及依据该反向计数值决定该Q个队列的其中之一获得一数据输出权。有关本专利技术的特征、实作与功效,兹配合图式作较佳实施例详细说明如下。附图说明〔图1〕为先前技术的权重式循环算法的一实施例的示意图;〔图2〕为本专利技术的数据输出调度装置的一实施例的示意图;〔图3〕为二进制计数值与反向二进制计数值的对照图;〔图4〕为图2的二进制位反向计数器的一实施例的示意图;〔图5〕为图2的二进制位反向计数器的另一实施例的示意图;〔图6〕为图2的二进制位反向计数器的又一实施例的示意图;〔图7〕为图2的二进制位反向计数器的再一实施例的示意图;〔图8〕为反向计数值划分为多个区间以符合图7的应用的示意图;〔图9〕为本专利技术的数据输出调度装置的另一实施例的示意图;〔图10〕为图9的权值分配器依二进制位反向数列分配权值的示意图;〔图11〕为图9的权值分配器依二进制位反向数列分配权值的示意图;〔图12〕为图9的权值配置器以分级方式来分配权值的示意图;〔图13〕为能够执行图12的分级方式的权值分配器的一实施例的示意图;〔图14〕为图13的第一级配置器的一实施例的示意图;〔图15〕为图13的第二级配置器的一实施例的示意图;〔图16〕为本专利技术的数据输出调度方法的一实施例的示意图;以及〔图17〕为本专利技术的数据输出调度方法的另一实施例的示意图。具体实施方式以下说明内容的用语参照本
的习惯用语,如本说明书对部分用语有加以说明或定义,该部分用语的解释以本说明书的说明或定义为准。本专利技术的揭露内容包含数据输出调度装置与方法,能够减少同一队列的数据(例如封包)被连续发送的机会。该调度装置的部分组件单独而言可能为已知组件,在不影响该装置的充分揭露及可实施性的前提下,以下说明对于个别已知组件的细节将予以节略。另外,该调度方法可以是软件及/或韧体的形式,并可藉由本专利技术的装置或其等效装置来执行。再者,只要实施为可能,实施本专利技术者可依本专利技术的揭露内容及自身的需求选择性地实施下述实施例中任一实施例的部分或全部技术特征,或者选择性地实施多个实施例的部分或全部技术特征的组合,藉此增加本专利技术实施时的弹性。请参阅图2,其是本专利技术的数据输出调度装置的一实施例的示意图,其中虚线代表视实施需求而存在或不存在的路径,双向箭头可视实施需求而改成单向。本实施例的数据输出调度装置200可以是一网络通信装置(像是交换器、路由器等)或是其它需要数据输出调度的装置,包含:Q个缓存器(buffer)210;一二进制位反向计数器(binarybitreversecounter)220;以及一控制电路230。每一该Q个缓存器210分别储存一队列的数据,每个队列对应一权值,所有权值的总和为Ws,该总和Ws介于2的(M-1)次方与2的M次方之间且不大于一最大总和Wmax,且该最大总和Wmax不大于2的N次方,其中Q为大于1的整数、M为正整数、N为不小于M的正整数。二进制位反向计数器220用来产生一反向计数值,该反向计数值不大于2的N次方。控制电路230依据该反向计数值决定Q个缓存器210的其中之一获得一数据输出权(token)。在一实施例中,装置200包括八个缓存器210,分别储存Q0至Q7队列,其权值依序为W0、W1、…、W6、W7,所有权值的总和Ws不大于最大总和Wmax,最大总和Wmax小于2的10次方(亦即N=10,此时二进制位反向计数器220为一10位的反向计数器),且本实施例依权值W0至W7定义八个区间如下:区间0:0至Ws0(Ws0=W0,此区间包含0但不含W0);区间1:Ws0至Ws1(Ws1=Ws0+W1,此区间包含Ws0但不含Ws1);区间2:Ws1至Ws2(Ws2=Ws1+W2,此区间包含Ws1但不含Ws2);区间3:Ws2至Ws3(Ws3=Ws2+W3,此区间包含Ws2但不含Ws3);区间4:Ws3至Ws4(Ws4=Ws3+W4,此区间包含Ws3但不含Ws4);区间5:Ws4至Ws5(Ws5=Ws4+W5,此区间包含Ws4但不含Ws5);区间6:Ws5至Ws6(Ws6=Ws5+W6,此区间包含Ws5但不含Ws6);区间7:Ws6至Ws7(Ws7=Ws6+W7,此区本文档来自技高网
...

【技术保护点】
一种数据输出调度装置,能够减少同一队列的数据被连续发送的机会,包含:Q个缓存器,能够分别储存Q个队列的数据,该Q个队列分别对应Q个权值,每该权值不大于一最大权值,该最大权值不大于2的N次方,其中该Q为大于1的整数,该N为正整数;一权值配置器,用来依据至少一二进制位反向数列分别配置该Q个权值,藉此散布该Q个权值中的一第K权值以使其逻辑上关联至2的N次方个排序点中的T个排序点,其中该第K权值的值为T、该K为不大于该Q的正整数、该T为不小于0且不大于该最大权值的整数、该2的N次方个排序点的顺序是一递增顺序;以及一轮询电路,用来依据该2的N次方个排序点的至少一部分的顺序轮询该Q个缓存器,当该轮询电路于一当前轮询周期内轮询该Q个缓存器时,若该当前轮询周期逻辑上对应该2的N次方个排序点中的该T个排序点的其中之一,该轮询电路使该第K权值所对应的该缓存器获得一数据输出权。

【技术特征摘要】
1.一种数据输出调度装置,能够减少同一队列的数据被连续发送的机会,包含:Q个缓存器,能够分别储存Q个队列的数据,该Q个队列分别对应Q个权值,每该权值不大于一最大权值,该最大权值不大于2的N次方,其中该Q为大于1的整数,该N为正整数;一权值配置器,用来依据至少一二进制位反向数列分别配置该Q个权值,藉此散布该Q个权值中的一第K权值以使其逻辑上关联至2的N次方个排序点中的T个排序点,其中该第K权值的值为T、该K为不大于该Q的正整数、该T为不小于0且不大于该最大权值的整数、该2的N次方个排序点的顺序是一递增顺序;以及一轮询电路,用来依据该2的N次方个排序点的至少一部分的顺序轮询该Q个缓存器,当该轮询电路于一当前轮询周期内轮询该Q个缓存器时,若该当前轮询周期逻辑上对应该2的N次方个排序点中的该T个排序点的其中之一,该轮询电路使该第K权值所对应的该缓存器获得一数据输出权。2.根据权利要求1所述的数据输出调度装置,其中该权值配置器将小于该第K权值且不小于零的整数逻辑上关联至一第K二进制位反向数列中的相对应数值,藉此散布该第K权值。3.根据权利要求2所述的数据输出调度装置,其中该权值配置器于散布该Q个权值中的第(K+1)权值时,将小于该第(K+1)权值且不小于零的整数逻辑上关联至一第(K+1)二进制位反向数列中的相对应数值,且该第(K+1)二进制位反向数列是该第K二进制位反向数列的一平移序列。4.根据权利要求1所述的数据输出调度装置,其中该权值配置器包含:一第一级配置器,用来对每该权值执行一第一级配置处理,藉此将该第K权值逻辑上关联至2的X次方个区间的R个区间,该2的X次方个区间逻辑上对应该2的N次方个排序点,该2的X次方个区间的每一个对应一区间权值且每该区间权值不大于该T,该R个区间所对应的区间权值的总和等于该T,其中该X为小于该N的正整数、若该T大于或等于2的X次方则该R等于2的X次方、若该T小于2的X次方则该R等于该T;以及一第二级配置器,用来对衍生自每该权值的每一区间权值执行一第二级配置处理,藉此将该R个区间权值中的第S个区间权值逻辑上关联至2的(N-X)次方个排序点中的Y个排序点,该Y个排序点属于该T个排序点,该S为不小于零且不大于该R的整数,该Y等于该第S个区间权值。5.根据权利要求4所述的数据输出调度装置,其中任二个该区间权值的差不大于1。6.根据权利要求4所述的数据输出调度装置,其中该第一级配置器包含:一第一级移位寄存器,包含2的X次方移位寄存单元,用来储存并平移一第一级二进制位反向数列;以及Q个区间权值输出器,耦接该第一级移位寄存器,用来于一输出权输出周期内依据该第一级二进制位反向数列以及该Q个权值分别输出Q个该区间权值。7.根据权利要求6所述的数据输出调度装置,其中该第二级配置器包含:一第二级移位寄存器,包含2的(N-X)次方个移位寄存单元,用来储存并平移一第二级二进制位反向数列;以及Q个输出权输出器,用来于该输出权输出周期内依据该第二级二进制位反向数列以及该Q个区间权值产生Q个输出权指示,每该输出权指示用来告知该轮询电路该输出权指示所对应的该缓存器是否获得该数据输出权。8.根据权利要求7所述的数据输出调度装置...

【专利技术属性】
技术研发人员:朱建银
申请(专利权)人:瑞昱半导体股份有限公司
类型:发明
国别省市:中国台湾;71

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1