一种分发令牌的方法和装置的制造方法_4

文档序号:9202602阅读:来源:国知局
序,并确定所述全部队列中的最高优先级队列。
[0144]在一个实施方式中,优先级确定模块402,用于设置N个CIR区间,其中N为2以上的正整数,而且每个CIR区间都具有CIR设定值;
[0145]令牌数计算模块401,用于基于每个队列的CIR确定每个队列所处的CIR区间,并基于所确定的CIR区间的CIR设定值及每个队列的上次令牌分发时间,确定每个队列的本次应分发令牌数;
[0146]优先级确定模块402,用于在属于同一 CIR区间内的队列之间,基于本次应分发令牌数进彳丁排序,并确定每个CIR区间内的最尚优先级队列;在各个CIR区间内的最尚优先级的队列之间,基于本次应分发令牌数进行排序,并确定所述全部队列中的最高优先级队列。
[0147]在一个实施方式中,CIR设定值为该CIR区间的最大值或平均值。
[0148]在一个实施方式中,上次令牌分发时间为Tlast,当前时间为Teumnt;所述本次应分发令牌数为Add ;所述确定本次应分发令牌数为:
[0149]Add = (Tcurrent-Tlast)XCIR0
[0150]基于上述分析,图5为本发明第三实施方式的分发令牌的装置结构图。
[0151]在图5中,TOKEN为一寄存器,用于保存各个队列的当前令牌值。CIR为一寄存器,用于保存各个队列的CIR。SUB_T0KEN为先进先出(FIFO)寄存器,用于当有队列报文被发送出去后,向令牌分发模块提供队列令牌减少数。定时器模块,用于记录当前时间TcmraitW及各个队列的上次分发令牌时间Tlast。ADDQ为一寄存器,用于保存当前需要分发令牌的队列名。
[0152]HIGH,MID,LOff为三个寄存器,对应于高、中、低三种速率的CIR区间,在HIGH、MID、LOW寄存器中分别存储各自对应区间内的队列名。
[0153]当有队列报文被发送出去后,SUB_T0KEN向令牌分发模块提供队列令牌减少数。令牌分发模块基于队列令牌减少数,将TOKEN中该对应队列的令牌数相应减少。
[0154]令牌数计算模块,用于从CIR寄存器读取每个队列的CIR,从定时器读取每个队列的上次令牌分发时间Tlast,并确定每个队列的本次应分发令牌数。
[0155]优先级确定模块,用于对每个队列的本次应分发令牌数进行排序,并基于排序结果确定各个队列的优先级,其中本次应分发令牌数最高的队列为全部队列中的最高优先级队列,并将全部队列中的最高优先级队列的队列名写入到寄存器ADDQ。
[0156]令牌分发模块,从寄存器ADDQ中获取全部队列中的最高优先级队列的队列名,并从令牌数计算模块获取该全部队列中的最高优先级队列的本次应分发令牌数,并将TOKEN中该全部队列中的最高优先级队列的令牌数相应增加。而且,定时器中该全部队列中的最高优先级队列的上次分发令牌时间值被更新为当前时间值。
[0157]综上所述,在本发明中,基于每个队列的CIR及其上次令牌分发时间,确定每个队列的本次应分发令牌数;基于每个队列的本次应分发令牌数,确定全部队列中的最高优先级队列;基于全部队列中的最高优先级队列的本次应分发令牌数,为全部队列中的最高优先级队列分发令牌。可见,本发明不再是无差异化的周期性轮询分配令牌,而是根据各个队列的上次令牌分发时间和CIR配置属性确定出优先需要分配令牌的队列,并主动选择更需要分发令牌的队列进行令牌分发操作,从而提高令牌分发效率。
[0158]而且,本发明实施方式中,CIR较大的队列更可能具有较高优先级,因此更有机会分发令牌,从而有效避免轮询机制中的令牌数突发;CIR较小的队列更可能具有较低优先级,从而有效避免轮询机制中的分发令牌操作闲置。
[0159]还有,在本发明实施方式中,对于当前令牌数非负及CIR为零的队列,不进行令牌分发动作,从而进一步提高分发令牌的效率。
[0160]以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种分发令牌的方法,其特征在于,该方法包括如下步骤: 基于每个队列的允许转发速率CIR及每个队列的上次令牌分发时间,确定每个队列的本次应分发令牌数; 基于每个队列的本次应分发令牌数,确定全部队列中的最高优先级队列; 基于所述全部队列中的最高优先级队列的本次应分发令牌数,为所述全部队列中的最高优先级队列分发令牌。2.根据权利要求1所述的分发令牌的方法,其特征在于,该方法还包括: 设置N个CIR区间,基于每个队列的CIR确定每个队列所处的CIR区间,其中N为2以上的正整数; 所述基于每个队列的本次应分发令牌数,确定全部队列中的最高优先级队列包括:在属于同一 CIR区间内的队列之间,基于本次应分发令牌数进行排序,并确定每个CIR区间内的最高优先级队列; 在各个CIR区间内的最高优先级队列之间,基于本次应分发令牌数进行排序,并确定所述全部队列中的最高优先级队列。3.根据权利要求1所述的分发令牌的方法,其特征在于,该方法还包括: 设置N个CIR区间,其中N为2以上的正整数,其中每个CIR区间具有CIR设定值;所述基于每个队列的CIR及每个队列的上次令牌分发时间,确定每个队列的本次应分发令牌数包括: 基于每个队列的CIR确定每个队列所处的CIR区间,并基于所确定的CIR区间的CIR设定值及每个队列的上次令牌分发时间,确定每个队列的本次应分发令牌数; 所述基于每个队列的本次应分发令牌数,确定全部队列中的最高优先级队列包括:在属于同一 CIR区间内的队列之间,基于本次应分发令牌数进行排序,并确定每个CIR区间内的最高优先级队列; 在各个CIR区间内的最高优先级队列之间,基于本次应分发令牌数进行排序,并确定所述全部队列中的最高优先级队列。4.根据权利要求3所述的分发令牌的方法,其特征在于,所述CIR设定值为该CIR区间的最大值或平均值。5.根据权利要求1-4中任一项所述的分发令牌的方法,其特征在于,所述上次令牌分发时间为Tlast,当前时间为Tmt;所述本次应分发令牌数为Add ;所述确定本次应分发令牌数为:Add = (Tcurrent-Tlast) XCIRo6.根据权利要求1-4中任一项所述的分发令牌的方法,其特征在于,该方法还预先包括: 确定每个队列的当前可用令牌数,并将当前可用令牌数为非负数的队列设置为不分发令牌;和/或 将CIR为零的队列设置为不分发令牌。7.一种分发令牌的装置,其特征在于,该装置包括: 令牌数计算模块,用于基于每个队列的允许转发速率CIR及每个队列的上次令牌分发时间,确定每个队列的本次应分发令牌数; 优先级确定模块,用于基于每个队列的本次应分发令牌数,确定全部队列中的最高优先级队列; 令牌分发模块,用于基于所述全部队列中的最高优先级队列的本次应分发令牌数,为所述全部队列中的最高优先级队列分发令牌。8.根据权利要求7所述的分发令牌的装置,其特征在于, 优先级确定模块,用于设置N个CIR区间,基于每个队列的CIR确定每个队列所处的CIR区间,其中N为2以上的正整数;在属于同一 CIR区间内的队列之间,基于本次应分发令牌数进彳丁排序,并确定每个CIR区间内的最尚优先级队列;在各个CIR区间内的最尚优先级队列之间,基于本次应分发令牌数进行排序,并确定所述全部队列中的最高优先级队列。9.根据权利要求8所述的分发令牌的装置,其特征在于,优先级确定模块,用于设置N个CIR区间,其中N为2以上的正整数,其中每个CIR区间具有CIR设定值; 令牌数计算模块,用于基于每个队列的CIR确定每个队列所处的CIR区间,并基于所确定的CIR区间的CIR设定值及每个队列的上次令牌分发时间,确定每个队列的本次应分发令牌数; 优先级确定模块,用于在属于同一 CIR区间内的队列之间,基于本次应分发令牌数进行排序,并确定每个CIR区间内的最尚优先级队列;在各个CIR区间内的最尚优先级的队列之间,基于本次应分发令牌数进行排序,并确定所述全部队列中的最高优先级队列。10.根据权利要求9所述的分发令牌的装置,其特征在于,所述CIR设定值为该CIR区间的最大值或平均值。11.根据权利要求7-10中任一项所述的分发令牌的装置,其特征在于,所述上次令牌分发时间为Tlast,当前时间为Tmt;所述本次应分发令牌数为Add ;所述确定本次应分发令牌数为:Add = (Tcurrent-Tlast) XCIRo12.根据权利要求7-10中任一项所述的分发令牌的装置,其特征在于,还包括: 设置模块,用于确定每个队列的当前可用令牌数,并将当前可用令牌数为非负数的队列设置为不分发令牌;和/或,用于将CIR为零的队列设置为不分发令牌。
【专利摘要】本发明提出一种分发令牌的方法和装置。方法包括:基于每个队列的允许转发速率(CIR)及每个队列的上次令牌分发时间,确定每个队列的本次应分发令牌数;基于每个队列的本次应分发令牌数,确定全部队列中的最高优先级队列;基于所述全部队列中的最高优先级队列的本次应分发令牌数,为所述全部队列中的最高优先级队列分发令牌。
【IPC分类】H04L12/819
【公开号】CN104917692
【申请号】CN201510372385
【发明人】王彬
【申请人】杭州华三通信技术有限公司
【公开日】2015年9月16日
【申请日】2015年6月26日
当前第4页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1