CN1254053C - 一种使信元流量实现最小抖动的加权轮询方法 - Google Patents
一种使信元流量实现最小抖动的加权轮询方法 Download PDFInfo
- Publication number
- CN1254053C CN1254053C CN 02155335 CN02155335A CN1254053C CN 1254053 C CN1254053 C CN 1254053C CN 02155335 CN02155335 CN 02155335 CN 02155335 A CN02155335 A CN 02155335A CN 1254053 C CN1254053 C CN 1254053C
- Authority
- CN
- China
- Prior art keywords
- formation
- cbr
- cell
- look
- numbering
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种使信元流量实现最小抖动的加权轮询方法,该方法是先对各个信元队列进行编号,再配置一个将各个队列的编号均匀分布的查找表,并按照查找表的顺序发送各个队列的信元,从而实现队列的流量调度。本发明的优点是实现简单,解决了传统加权轮询算法的缺陷,在实现时,无须比较各个队列的时标寄存器,可以大大减小实现加权轮询算法的难度和复杂度,在使用ASIC或FPGA实现本发明的时候,极大地减小了逻辑器件实现的规模和难度;同时极大地减小了传统加权轮询算法引起的短时流量的抖动,使短时抖动减小到最低程度。另外,由于本发明只进行查表,如果使用CPU进行计算,其速度很快,远远高于现有的加权轮询算法的速度。
Description
技术领域
本发明涉及一种使信元流量实现最小抖动的加权轮询方法,确切地说,涉及一种在使用传统加权轮询算法时,信元在短时间上的抖动过大,以及在使用专用集成电路ASIC或现场可编程门阵列FPGA器件实现时,逻辑规模太大的问题得到较好解决的加权轮询方法,属于异步转移模式和其他业务的恒定比特率CBR业务的信元流量调度控制技术领域。
背景技术
加权轮询(WRR)算法主要应用在ATM和其他业务的CBR业务的流量调度上。现在,对于控制信元流量的传统加权轮询算法一般采用下述实现方法:
为了计算和比较时标,每条队列分配一个16位的时标计数器,初始值为0x0000,这里确定时标为16位是为了减少寄存器的数量,加快比较速度;另一个关键参数-16位的发送时间间隔参数则存储在寄存器参数表中,该参数是根据队列的预约带宽和权值计算得到的,队列的权值和信元时间间隔参数需要CPU进行配置,在执行配置时写入寄存器。采用16位的时间间隔参数,分辨率为:622M/64K=9.8K;权值的计算公式为:WEIGHT=|R/9.8K|,式中R为每条队列的预约速率。
每次通过轮询选取队列,找到一个队列后,先检查该队列时标计数器的值是否符合发送条件:队列[n]Counter<队列[m]Counter?如果符合条件,就发送该队列的一个信元,并把该队列的计数器加上本队列的时间间隔值,再轮询进行下一次运算。否则,就发送另一个队列的信元,并使其队列的计数器加上本队列的时间间隔值。如果一条队列的计数值到达最大值0xFFFF,就等待另一队列的计算。如果所有计数器都到达或接近最大值0xFFFF时,同时把所有的计数器清零,重新进行计算。
参见图1,该图描述了两个队列CBR_A和CBR_B分别使用权值为7和4、信元间隔参数为4和7进行上述传统加权轮询算法的简化调度示意。在这种传统加权轮询算法中,对于两个队列需要比较该两个时标寄存器的大小,还需要判断这两个寄存器是否接近于0xFFFF,以便对它们重新进行清零处理。对于多个队列,就需要找出各个队列时标寄存器的最小值来判断哪个队列满足发送条件。
这种传统加权轮询算法能够保证在较长的周期中各个队列的带宽是均匀的。但是,在有多个队列、且各个队列的带宽相差较大时,传统加权轮询算法所得到的结果在短时上的抖动比较大。对于仅有两个队列的情况,各个队列短时流量的抖动看起来还不太明显。如果队列数量较多,短时抖动就非常明显了。
下面例举一个简化的有16个队列的情况:假设总带宽为48M,总共有16个队列业务(队列序号小的优先级高),各个队列中需要的最小带宽为1M。该简化的16个队列所需要的带宽分配如下表所示:
队列业务编号 | 配置的带宽 | 队列业务编号 | 配置的带宽 |
CBR_0 | 21M | CBR_8 | 1M |
CBR_1 | 13M | CBR_9 | 1M |
CBR_2 | 1M | CBR_10 | 1M |
CBR_3 | 1M | CBR_11 | 1M |
CBR_4 | 1M | CBR_12 | 1M |
CBR_5 | 1M | CBR_13 | 1M |
CBR_6 | 1M | CBR_14 | 1M |
CBR_7 | 1M | CBR_15 | 1M |
如果采用传统加权算法进行队列调度,得到的48个调度的顺序如下表所示:
序号 | 队列编号 | 序号 | 队列编号 | 序号 | 队列编号 | 序号 | 队列编号 |
1 | CBR_0 | 13 | CBR_12 | 25 | CBR_1 | 37 | CBR_0 |
2 | CBR_1 | 14 | CBR_12 | 26 | CBR_0 | 38 | CBR_1 |
3 | CBR_2 | 15 | CBR_14 | 27 | CBR_0 | 39 | CBR_0 |
4 | CBR_3 | 16 | CBR_15 | 28 | CBR_1 | 40 | CBR_0 |
5 | CBR_4 | 17 | CBR_0 | 29 | CBR_0 | 41 | CBR_1 |
6 | CBR_5 | 18 | CBR_1 | 30 | CBR_0 | 42 | CBR_0 |
7 | CBR_6 | 19 | CBR_0 | 31 | CBR_1 | 43 | CBR_0 |
8 | CBR_7 | 20 | CBR_0 | 32 | CBR_0 | 44 | CBR_1 |
9 | CBR_8 | 21 | CBR_1 | 33 | CBR_1 | 45 | CBR_0 |
序号 | 队列编号 | 序号 | 队列编号 | 序号 | 队列编号 | 序号 | 队列编号 |
10 | CBR_9 | 22 | CBR_0 | 34 | CBR_0 | 46 | CBR_1 |
11 | CBR_10 | 23 | CBR_1 | 35 | CBR_0 | 47 | CBR_0 |
12 | CBR_11 | 24 | CBR_0 | 36 | CBR_1 | 48 | CBR_0 |
参见图2所示的其中编号为CBR_0和CBR_1的队列发送时隙在时间轴上的一段局部分布状况,从图2可以清楚地看出:编号为CBR_0和CBR_1的队列速率在短时上的抖动相当大。
因此,传统加权轮询算法的缺点主要是流量的短时抖动比较大,对于有一些对短时抖动要求较高的应用就不甚合适。同时使用这种传统技术实现时,需要通过多次比较才能得到一个最小值结果。在使用逻辑器件实现的时候,需要的资源很大;如果使用CPU进行计算,则速度很慢。
发明内容
本发明的目的是提供一种使信元流量实现最小抖动的加权轮询方法,以解决现有技术存在的短时抖动过大,以及在使用ASIC或FPGA器件实现时逻辑规模太大的问题。
本发明的目的是这样实现的:一种使信元流量实现最小抖动的加权轮询方法,其特征在于:该方法包括下列三个步骤:
A、对各个信元队列进行编号;
B、将各个信元队列的编号均匀分布配置为一个查找表;
C、按照查找表内配置的信元队列编号顺序发送各个队列的信元,实现队列的流量调度。
所述的步骤A中,对各个信元队列进行编号之前,进一步包括下列步骤:
A1、确定需要实现的各个队列的最小流量;
A2、确定传输信道上可供使用的总带宽;
A3、根据上述最小流量和传输信道上可供使用的总带宽,得到所需要的查找表的长度L:L=总带宽/最小流量。
所述的步骤A3中,所需要的查找表是存储所述配置的各个信元队列编号的RAM存储器。
所述的查找表的长度是RAM存储器的存储深度,即存储器的存储空间。
所述的步骤A3中,根据计算公式L=总带宽/最小流量得到的所需要的查找表的长度L可以只取整数部分,以使该查找表的长度最短;也可以对查找表的长度L的计算结果精确到小数点后的若干位,即加大查找表的长度,使各个队列的流量得到更精确的控制。
所述的步骤B中,配置一个将各个队列的编号均匀分布的查找表是采用伪随机交织的方法。
所述的步骤B中,在查找表中均匀分布配置各个队列的编号时,其配置结果应该满足下述三个条件:各个队列编号出现的次数与其配置的带宽成正比,表示各个队列的编号均匀分布在RAM存储器空间上,以及如果将生成的查找表展开,在整个查找表中的任何一个节距上,各个队列编号出现的次数与其在查找表内相应位置的个数的误差不超过1个。
所述的步骤C中,按照查找表的顺序发送各个队列的信元,进一步包括下列步骤:
C1、根据上述配置的查找表顺序,确定发送的队列编号,同时发送该队列的一个信元;
C2、在每次发送一个信元之后,将查找表的地址加1,再读出查找表内该新地址的数据,即确定下一个发送的队列编号,接着发送该队列的一个信元;
C3、循环进行上述步骤C2的操作,直至所有队列的信元全部发送完毕。
对于同步数字系列SDH/同步光网络SONET承载包或基于SDH/SONET的包封装POS/***包接口SPI上的变长报文,先将其切割成定长的信元,再执行所述的各个步骤,可实现变长报文的流量调度。
本发明是一种使信元流量实现最小抖动的加权轮询方法,该方法的技术关键是采用一个将各个队列的编号均匀分布的查找表,来实现队列的流量调度。本发明的优点是实现简单,解决了传统加权轮询算法的缺陷,在实现时,无须比较各个队列的时标寄存器,可以大大减小实现加权轮询算法的难度和复杂度,在使用ASIC或FPGA实现本发明的时候,极大地减小了逻辑器件实现的规模和难度;同时极大地减小了传统加权轮询算法引起的短时流量的抖动,使短时抖动减小到最低程度。另外,由于本发明只进行查表,如果使用CPU进行计算,其速度很快,远远高于现有的加权轮询算法的速度。本发明还可以在SDH/SONET承载包或***包(POS/SPI,Packet Over SDH/SONET/System PacketInterface)接口上实现变长报文的流量调度,即先将变长报文切割成定长的信元,然后应用本发明方法进行调度。
附图说明
图1是传统加权轮询算法的简化调度示意图。
图2是用图1所示的传统加权轮询算法的实施例中编号为CBR_0和CBR_1的队列速率在短时上抖动很大的情况示意图。
图3是本发明使信元流量实现最小抖动的加权轮询方法的流程图。
图4是采用本发明的实施例中编号为CBR_0和CBR_1的两个队列在短时上的速率抖动明显减少的情况示意图。
具体实施方式
本发明是一种使信元流量实现最小抖动的加权轮询方法,该方法是先对各个信元队列进行编号,再配置一个将各个队列的编号均匀分布的查找表,并按照查找表的顺序发送各个队列的信元,从而实现队列的流量调度。
参见图3,该方法包括下列具体步骤:
(1)确定需要实现的各个队列的最小流量或流量控制的最小步进(Bwsmin);例如64K。
(2)确定传输信道上可供使用的总带宽(Bwtmax);例如一条光纤的带宽,或者是***分配的一条传输信道的带宽:622M。
(3)根据上述最小流量和传输信道上可供使用的总带宽,得到所需要的查找表的长度L:L=总带宽(Bwtmax)/最小流量(Bwsmin),也就是RAM存储器的深度(即地址空间)为622M/64K=9800,为了减小RAM空间,可以对其结果L只取整数部分。
(4)将各个恒定比特率CBR业务逐一编号,假如有4096个队列,则可将队列编号为0~4095;再采用伪随机交织的方法在可供使用的总带宽空间里均匀分布配置编号的各个队列,即将各个队列编号0~4095在9800地址空间内均匀分布配置,并将这些配置数据存入查找表中;且配置结果应该符合下列条件:A、各个队列编号出现的次数与其配置的带宽成正比。如配置第0个CBR业务地带宽为128K,那么队列0在查找表(即RAM)中出现的次数应为2次。B、表示各个队列的编号应在RAM空间上均匀分配。C、在整个查找表9800地址中的任何一个节距上,各个队列编号出现的次数与其在查找表内相应位置的个数一致,其误差不超过1个。
(5)根据上述配置的查找表顺序,确定发送的队列编号,同时发送该队列的一个信元;
(6)在每次发送一个信元之后,将查找表的地址加1,再读出查找表内该新地址的数据,即确定下一个发送的队列编号,接着发送该队列的一个信元;
(7)循环进行上述步骤(6)的操作,直至所有队列的信元全部发送完毕。
下面采用背景技术中的同一个实施例进一步具体说明之。假设总带宽为48M,总共有16个队列业务(队列序号小的优先级高),各个队列中需要的最小带宽为1M。该简化的16个队列所需要的带宽分配如下表所示:
队列业务编号 | 配置的带宽 | 队列业务编号 | 配置的带宽 |
CBR_0 | 21M | CBR_8 | 1M |
CBR_1 | 13M | CBR_9 | 1M |
CBR_2 | 1M | CBR_10 | 1M |
CBR_3 | 1M | CBR_11 | 1M |
CBR_4 | 1M | CBR_12 | 1M |
CBR_5 | 1M | CBR_13 | 1M |
CBR_6 | 1M | CBR_14 | 1M |
队列业务编号 | 配置的带宽 | 队列业务编号 | 配置的带宽 |
CBR_7 | 1M | CBR_15 | 1M |
采用本发明所述步骤中(1)~(5)的办法得到用于队列调度的查找表,它是一个4×48的RAM,RAM内的数据见下表:
表地址 | 队列编号 | 表地址 | 队列编号 | 表地址 | 队列编号 | 表地址 | 队列编号 |
0 | CBR_15 | 12 | CBR_11 | 24 | CBR_1 | 36 | CBR_0 |
1 | CBR_14 | 13 | CBR_0 | 25 | CBR_0 | 37 | CBR_4 |
2 | CBR_0 | 14 | CBR_1 | 26 | CBR_7 | 38 | CBR_0 |
3 | CBR_1 | 15 | CBR_0 | 27 | CBR_0 | 39 | CBR_1 |
4 | CBR_0 | 16 | CBR_10 | 28 | CBR_1 | 40 | CBR_3 |
5 | CBR_13 | 17 | CBR_1 | 29 | CBR_0 | 41 | CBR_0 |
6 | CBR_0 | 18 | CBR_0 | 30 | CBR_6 | 42 | CBR_1 |
7 | CBR_1 | 19 | CBR_9 | 31 | CBR_0 | 43 | CBR_0 |
8 | CBR_12 | 20 | CBR_0 | 32 | CBR_1 | 44 | CBR_2 |
9 | CBR_0 | 21 | CBR_1 | 33 | CBR_5 | 45 | CBR_0 |
10 | CBR_1 | 22 | CBR_0 | 34 | CBR_0 | 46 | CBR_1 |
11 | CBR_0 | 23 | CBR_8 | 35 | CBR_1 | 47 | CBR_0 |
这个查找表与队列调度的顺序是一致的,也就是说,应该按照该查找表的顺序发送队列。
根据上述查找表,对于编号为CBR_0和CBR_1的队列发送时隙在时间轴上的分布则如图4所示。从图4中可以明显看到,采用本发明后,CBR_0和CBRCBR_1队列在短时上的速率抖动显著减小,各个队列的信元均匀发送的好处是显而易见的。同时本发明是采用查表的办法省略了比较时标的程序,大大减少了用ASIC和FPGA器件实现的难度和规模。
本发明的方法已经在申请人研制的设备上进行试验实施,实施的结果是成功的,实现了发明目的。
Claims (8)
1、一种使信元流量实现最小抖动的加权轮询方法,其特征在于:该方法包括下列三个步骤:
A、对各个信元队列进行编号;
B、将各个信元队列的编号均匀分布配置为一个查找表;
C、按照查找表内配置的信元队列编号顺序发送各个队列的信元,实现队列的流量调度。
2、根据权利要求1所述的加权轮询方法,其特征在于:所述的步骤A中,对各个信元队列进行编号之前,进一步包括下列步骤:
A1、确定需要实现的各个队列的最小流量;
A2、确定传输信道上可供使用的总带宽;
A3、根据上述最小流量和传输信道上可供使用的总带宽,得到所需要的查找表的长度L:L=总带宽/最小流量。
3、根据权利要求1或2所述的加权轮询方法,其特征在于:所述的步骤A3中,所需要的查找表是存储所述配置的各个信元队列编号的RAM存储器。
4、根据权利要求2所述的加权轮询方法,其特征在于:所述的查找表的长度是RAM存储器的存储深度,即存储器的存储空间。
5、根据权利要求2所述的加权轮询方法,其特征在于:所述的步骤A3中,根据计算公式L=总带宽/最小流量得到的所需要的查找表的长度L可以只取整数部分,以使该查找表的长度最短;也可以对查找表的长度L的计算结果精确到小数点后的若干位,即加大查找表的长度,使各个队列的流量得到更精确的控制。
6、根据权利要求1所述的加权轮询方法,其特征在于:所述的步骤B中,配置一个将各个队列的编号均匀分布的查找表是采用伪随机交织的方法。
7、根据权利要求1所述的加权轮询方法,其特征在于:所述的步骤C中,按照查找表的顺序发送各个队列的信元,进一步包括下列步骤:
C1、根据上述配置的查找表顺序,确定发送的队列编号,同时发送该队列的一个信元;
C2、在每次发送一个信元之后,将查找表的地址加1,再读出查找表内该新地址的数据,即确定下一个发送的队列编号,接着发送该队列的一个信元;
C3、循环进行上述步骤C2的操作,直至所有队列的信元全部发送完毕。
8、根据权利要求1或2所述的加权轮询方法,其特征在于:对于同步数字系列SDH/同步光网络SONET承载包或基于SDH/SONET的包封装POS/***包接口SPI上的变长报文,先将其切割成定长的信元,再执行所述的各个步骤,可实现变长报文的流量调度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 02155335 CN1254053C (zh) | 2002-12-10 | 2002-12-10 | 一种使信元流量实现最小抖动的加权轮询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 02155335 CN1254053C (zh) | 2002-12-10 | 2002-12-10 | 一种使信元流量实现最小抖动的加权轮询方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1507212A CN1507212A (zh) | 2004-06-23 |
CN1254053C true CN1254053C (zh) | 2006-04-26 |
Family
ID=34235854
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 02155335 Expired - Fee Related CN1254053C (zh) | 2002-12-10 | 2002-12-10 | 一种使信元流量实现最小抖动的加权轮询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1254053C (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100359863C (zh) * | 2004-12-31 | 2008-01-02 | 中兴通讯股份有限公司 | 一种利用伪随机序列实现加权轮询调度的方法及装置 |
CN101971578B (zh) * | 2007-12-28 | 2014-07-30 | 茨特里克斯***公司 | Tcp分组间距 |
CN102684983B (zh) * | 2011-03-15 | 2016-08-03 | 中兴通讯股份有限公司 | 一种信元调度方法和装置 |
CN103338159B (zh) * | 2013-06-19 | 2016-08-10 | 华为技术有限公司 | 轮询调度实现方法和装置 |
CN110995598B (zh) * | 2019-11-12 | 2022-03-04 | 芯创智(北京)微电子有限公司 | 一种变长报文数据处理方法和调度装置 |
-
2002
- 2002-12-10 CN CN 02155335 patent/CN1254053C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1507212A (zh) | 2004-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7751404B2 (en) | Method, system, and computer program product for high performance bonding resequencing | |
JP5671150B2 (ja) | 電気通信ネットワーク・アプリケーションのためのロックレス・バッファ管理スキーム | |
US6356951B1 (en) | System for parsing a packet for conformity with a predetermined protocol using mask and comparison values included in a parsing instruction | |
US7366865B2 (en) | Enqueueing entries in a packet queue referencing packets | |
US6661774B1 (en) | System and method for traffic shaping packet-based signals | |
US6829678B1 (en) | System for determining the order and frequency in which space is allocated on individual storage devices | |
CN1881937A (zh) | 将存储空间动态分配给多个队列的方法及设备 | |
CN1097913C (zh) | Atm流量调节 | |
US20040128463A1 (en) | Apparatus and method for controlling memory allocation for variable size packets | |
US20050268037A1 (en) | Cache hit ratio estimating apparatus, cache hit ratio estimating method, program, and recording medium | |
CN103560980B (zh) | 用于内部/外部存储器分组和字节计数的方法和装置 | |
CN1643499A (zh) | 在多线程网络处理器中的线程信令 | |
JP2006500830A5 (zh) | ||
CN1254053C (zh) | 一种使信元流量实现最小抖动的加权轮询方法 | |
US20110016284A1 (en) | Memory Management in Network Processors | |
CN1925455A (zh) | 一种基于令牌桶的报文限速方法 | |
CN1577253A (zh) | 改进的最早时限第一的调度方法 | |
CN1565143A (zh) | 通信网络中业务流的分配传输 | |
CN1949695A (zh) | 一种帧数据传输中错帧丢弃的方法和*** | |
CN1826768A (zh) | 利用动态资源分配进行的大规模排队的可扩展方法 | |
CN1359067A (zh) | 使循环缓冲器中的数据有效的方法 | |
CN111881165B (zh) | 一种数据聚合方法、装置和计算机可读存储介质 | |
CN1669276A (zh) | 控制带宽分配的方法和*** | |
US20060245443A1 (en) | Systems and methods for rate-limited weighted best effort scheduling | |
CN100344103C (zh) | 物理层的数据发送时隙在整个时域上均匀分布的方法 |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20060426 Termination date: 20111210 |