首页> 中国专利> 采用非整数令牌实现流量整形的装置及方法

采用非整数令牌实现流量整形的装置及方法

摘要

本发明揭示了一种采用非整数令牌实现流量整形的装置及方法,基于期望速率单独维护令牌的小数部分,增加小数令牌维护表和命中向量记录表,在一个周期内,向令牌维护表的与通道相应的令牌中累加期望速率的整数部分,以及小数令牌的整数位,并根据通道令牌的数值维护一个整形状态表。当调度出一个通道的数据报文之后,将该通道在令牌维护表中所对应的令牌减去数据报文的长度,更新整形状态表的状态,并根据状态表的值来控制通道的调度,这样,就将各通道报文调度的平均速率控制到其期望速率。本发明在期望速率个数远小于通道个数的情况下,能够起到减小芯片面积,降低功耗,同时降低流量整形的逻辑复杂程度,有利于芯片后端实现的作用。

著录项

  • 公开/公告号CN104580004A

    专利类型发明专利

  • 公开/公告日2015-04-29

    原文格式PDF

  • 申请/专利权人 盛科网络(苏州)有限公司;

    申请/专利号CN201410816131.7

  • 发明设计人 郑晓阳;龚源泉;

    申请日2014-12-24

  • 分类号

  • 代理机构苏州慧通知识产权代理事务所(普通合伙);

  • 代理人安纪平

  • 地址 215021 江苏省苏州市工业园区星汉街5号(腾飞工业坊)B幢4楼13/16单元

  • 入库时间 2023-12-18 08:35:15

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-12-01

    授权

    授权

  • 2015-05-27

    实质审查的生效 IPC(主分类):H04L12/815 申请日:20141224

    实质审查的生效

  • 2015-04-29

    公开

    公开

说明书

技术领域

本发明涉及交换机芯片带宽控制技术领域,尤其是涉及一种采用非整 数令牌实现流量整形的装置及方法。

背景技术

在目前的交换机芯片中,经常要用到流量整形技术来控制数据报文的 带宽,以满足QoS(Quality of Service,服务质量)的需求。

一般交换机中流量整形的方法为:通过CPU为各通道配置期望速率, 同时配置整形扫描周期(以下简称周期),并保证在一个周期内能够完成所 有通道的扫描。根据该周期,向各通道循环累加期望速率作为令牌,并存 储在令牌维护表中。当调度出一个通道的数据报文之后,将该通道在令牌 维护表中所对应的令牌减去数据报文的长度。另外,根据通道令牌的数值 维护一个整形状态表,并根据状态表的值来控制通道的调度。这样,就将 各通道报文调度的平均速率控制到其期望速率。

上述流量整形方法的流程如图1所示,其中循环控制模块按周期产生 通道号,调度模块根据QoS的配置对各个通道进行调度。理论上要为每个 通道配置一个期望速率,但实际应用中,由于多个通道可能使用相同的期 望速率,同时为了节省面积,一般期望速率的个数远小于通道总数。这样, 就需要为期望速率进行顺序编号(例如,期望速率个数为64,其编号就为 0到63),为每个编号配置对应的期望速率,再为每个通道配置一个期望速 率编号。这样,通道的期望速率配置就需要两个表:一个表存储各通道对 应的期望速率编号,即图中的期望速率编号配置表,其条目数为通道个数; 另一个表存储该每个编号对应的期望速率数值,即图中所示的期望速率配 置表,其条目数为期望速率个数。选择相同期望速率的不同通道配置同一 个编号。例如,通道0和1配置的期望速率数值都是100,如果期望速率 配置表中条目5配置的数值为100,那么就可以在期望速率编号表中为通 道0和1配置编号5。图1中,令牌维护表以及整形状态表的条目数均为 通道个数。这两个表每个条目的初始值均为0。

上述图1所示的流量整形详细步骤为:1、根据循环控制模块输出的通 道号读取期望速率编号配置表,得到期望速率编号;2、根据期望速率编号 读取期望速率配置表,得到期望速率的数值;3、向该通道的令牌中累加期 望速率的数值,并存储到令牌维护表中。根据更新之后的令牌数值,按通 道号将状态写到整形状态表中。令牌数值为正,对应状态置“1”;令牌数 值为负,对应状态置“0”;4、根据调度模块输出的通道号,读取令牌维护 表,并将读出来的令牌数值减去该通道发送的数据报文的长度,并写回到 令牌维护表中,同时根据步骤3所述的原理,更新整形状态表;5、根据整 形状态表控制通道的调度,如果一个通道对应状态表中的值为“1”,表示 该通道可以参与调度;如果对应状态表的值为“0”,表示该通道不能参与 调度。

现有的令牌维护表的数据结构如图2中a所示。最高位为符号位,“0” 表示令牌为正,“1”表示令牌为负;其余部分表示令牌的绝对值。一般为 了增加整形的精度,往往会使用非整数令牌,即在期望速率中会引入小数, 将其数据结构分成整数部分和小数部分,如图2中b所示。对应的令牌维护 表的数据结构中就增加了小数部分,变成了符号位+整数部分+小数部分, 如图2中c所示。

现有交换机芯片中参与整形的通道数可能达到上千条,而令牌维护表 的条目数又等于通道数。这样,要支持小数令牌,如果令牌维护表是用存 储器实现的话,会大大增加面积;如果令牌维护表是用触发器实现的话, 在增加面积的同时,还会增加了布局布线的开销。另外,整形的过程中会 对令牌维护表中的数据做加减法,对应芯片实现要用到加法器。当增加了 小数部分以后,就增大了加法器的输入数据位宽,从而增加逻辑复杂程度, 同时还可能造成芯片设计后端的时序问题。

发明内容

本发明的目的在于克服现有技术的缺陷,提供一种采用非整数令牌实 现流量整形的装置及方法,将现有令牌维护表中的小数部分基于期望速率 单独进行维护,以达到减小芯片面积,降低功耗,并利于芯片后端实现的 目的。

为实现上述目的,本发明提出如下技术方案:一种采用非整数令牌实 现流量整形的装置,包括循环控制模块、期望速率编号配置表、期望速率 配置表、小数令牌维护表、命中记录向量、令牌维护表、整形状态表和调 度模块:

所述循环控制模块用于按周期输出通道号给所述期望速率编号配置 表;

所述期望速率编号配置表用于给每个所述通道配置一个期望速率编 号;

所述期望速率配置表用于配置流量整形用的期望速率,与所述期望速 率编号一一对应,所述期望速率配置表的数据结构包括整数部分和小数部 分;

所述小数令牌维护表内存储有与期望速率个数相同的小数令牌,每个 所述小数令牌用于维护按周期累加的期望速率的小数部分;

所述命中记录向量用于记录所述期望速率编号在一个周期之内是否已 经被选中且对应期望速率的小数部分已经累加的状态,每个期望速率在一 个周期之内首次被选中的时候,其小数部分被累加;

所述令牌维护表内存储有与通道个数相同的整数令牌,每个所述令牌 用于按周期累加对应通道的期望速率整数部分的数值;且所述令牌维护表 根据更新后的整数令牌数值,按通道号将状态写入到所述整形状态表中;

所述整形状态表用于记录所述通道号对应的整数令牌数值的状态,同 时根据整数令牌数值的状态控制所述调度模块对各个通道的调度;

所述调度模块用于根据输出的通道号读取所述令牌维护表,并将读出 来的整数令牌数值减去对应通道发送的数据报文的长度,计算得到的新的 整数令牌数值写回到所述令牌维护表中,同时,更新所述整形状态表。

优选地,所述期望速率配置表、小数令牌维护表和命中记录向量的条 目数均为期望速率个数,且所述小数令牌维护表的每个条目的初始值均为 0;所述期望速率编号配置表、令牌维护表和整形状态表的条目数均为通道 个数,且每个条目的初始值均为0,所述期望速率个数小于或等于所述通 道个数。

优选地,所述小数令牌维护表的数据结构为包括一个比特的整数位和 小数部分,所述小数部分的位数与所述期望速率中小数部分的位数相同。

优选地,所述命中记录向量用1表示对应期望速率编号的期望速率的 小数部分在一个周期内已累加,用0表示对应期望速率编号的期望速率的 小数部分在一个周期内未累加,当读取的与期望速率编号的对应位为0时, 则将所述小数令牌维护表的整数位清0,并向期望速率编号对应的所述小 数令牌累加期望速率的小数部分。

优选地,所述令牌维护表内的令牌值为正时,所述整形状态表对应状 态置1;令牌值为负时,对应状态置0。

本发明的另一目的还在于提供一种利用权利要求1所述的装置实现流 量整形的方法,包括以下步骤:

S1,根据循环控制模块输出的通道号读取期望速率编号配置表,得到 对应的期望速率编号;

S2,根据所述期望速率编号读取所述期望速率配置表,得到相应的期 望速率的数值;

S3,根据所述期望速率编号读取所述小数令牌维护表和命中记录向量, 根据读取的所述命中记录向量中期望速率编号对应位的累加状态值,对所 述小数令牌维护表和命中记录向量做相应的处理;

S4,向对应通道的所述整数令牌中累加期望速率的整数部分以及所述 小数令牌的整数位,并存储到所述令牌维护表中;

S5,根据更新后的所述整数令牌数值,按通道号将令牌数值的状态写 到所述整形状态表中;

S6,根据所述调度模块输出的通道号读取所述令牌维护表,并将读出 来的整数令牌数值减去对应通道发送的数据报文的长度,将计算得到的新 的整数令牌数值写回到所述令牌维护表中,同时,更新所述整形状态表;

S7,根据所述整形状态表对应通道的令牌数值的状态,控制所述调度 模块对各个通道的调度。

优选地,所述步骤S3中,若读取的所述命中记录向量中期望速率编号 的对应位为0,则将从所述小数令牌维护表读取数据的整数位清0,并向所 述小数令牌累加期望速率的小数部分,并将累加后的数值写回到所述小数 令牌维护表中,同时将所述命中记录向量中期望速率编号的对应位修改为 1;若读取的所述命中记录向量中期望速率编号的对应位为1,则直接进入 步骤S4。

优选地,所述步骤S5中,若所述整数令牌数值为正,则将所述整形状 态表的对应状态置1;若所述整数令牌数值为负,则将所述整形状态表的 对应状态置0。

优选地,当所述期望速率编号对应的所述小数令牌的小数部分经过累 加溢出到整数位时,再将所述整数位分别加到选择该期望速率的各通道对 应的令牌当中。

优选地,所述步骤S4中,所述小数令牌表中的整数位在一个周期内累 加到所有选择该期望速率编号的通道的整数令牌中,且在下一个周期的开 始,将所有小数令牌的整数位清0。

本发明的有益效果是:本发明基于期望速率单独维护令牌的小数部分, 在期望速率个数远小于通道个数的情况下,能够起到减小芯片面积,降低 功耗,同时降低流量整形的逻辑复杂程度,有利于芯片后端的实现。

附图说明

图1是现有流量整形方法的流程示意图;

图2是现有令牌维护表的数据结构示意图;

图3是本发明采用非整数令牌实现流量整形的装置的模块示意图;

图4是本发明小数令牌维护表的数据结构示意图;

图5是本发明采用非整数令牌实现流量整形的方法流程示意图。

具体实施方式

下面将结合本发明的附图,对本发明实施例的技术方案进行清楚、完 整的描述。

本发明通过分析现有流量整形技术得出,对于期望速率带小数的流量 整形,由于数据报文的长度一定为整数,所以各通道令牌中的小数部分一 定来自期望速率。那么,对于使用相同期望速率的不同通道,其令牌中的 小数部分一定是相同的,也就是说,各通道所维护令牌中的小数部分仅仅 与期望速率的编号有关。这样,就可以将现有的维护令牌小数部分的设计 转换成维护按周期累加的期望速率的小数部分。当该小数部分经过累加溢 出到整数部分,再将整数部分分别加到选择该期望速率的各通道对应的令 牌当中。

因此,本发明将现有令牌维护表中的小数部分的维护基于期望速率单 独进行维护,这样,就需要增加一小数令牌维护表,用于维护期望速率的 小数部分。另外,由于同一个期望速率的小数部分在一个周期中只能累加 一次,所以还需要设计一个命中记录向量来记录期望速率的小数部分是否 已经累加。

如图3所示,本发明所揭示的一种采用非整数令牌实现流量整形的装 置,包括循环控制模块、期望速率编号配置表、期望速率配置表、小数令 牌维护表、命中记录向量、令牌维护表、整形状态表和调度模块,循环控 制模块用于按周期产生通道号;期望速率编号配置表用于给每个通道配置 一个期望速率编号,其条目数等于通道个数,按照通道号读取期望速率编 号配置表,得到对应的期望速率编号;期望速率配置表给每个期望速率编 号配置一个对应的期望速率,按照期望速率编号读取期望速率配置表,得 到相应的期望速率的数值,期望速率配置表的数据结构包括整数部分和小 数部分,且其条目数等于期望速率的个数。

小数令牌维护表内存储有与期望速率个数相同的小数令牌,每个小数 令牌用于维护按周期累加的期望速率的小数部分,即小数令牌维护表的条 目数为期望速率个数,每个条目的初始值为0。如图4所示,小数令牌维 护表的数据结构包括整数位和小数部分,整数位的位数为一个比特,小数 部分的位数与期望速率中小数部分的位数相同,小数部分经过累加产生的 整数置于整数位。小数令牌表中的整数位在一个周期内必须累加到所有选 择该期望速率的通道的令牌中,在新的一个周期的开始,所有小数令牌的 整数位都要清0。

命中记录向量用于记录小数令牌维护表中每个期望速率的小数部分是 否已累加,其条目数与小数令牌维护表的条目数相同,均为期望速率个数。 本发明实施例中命中记录向量的每一位用1表示对应的小数令牌已累加期 望速率的小数部分,用0表示未累加。当有期望速率的小数部分累加到小 数令牌后,则更新命中记录向量的相应位为1,且在一个周期中的最后一 个通道累加完成之后,将命中记录向量的所有位都清零。

令牌维护表内存储有与通道个数相同的整数令牌,每个整数令牌用于 按周期累加对应通道的期望速率整数部分的数值,以及该期望速率对应小 数令牌的整数位,且令牌维护表根据更新后的令牌数值,按通道号将状态 写入到整形状态表中。本发明实施例中若通道号对应的令牌数值为正,整 形状态表的对应状态置“1”;若令牌数值为负,对应状态置“0”。

调度模块输出通道号,根据该通道号读取令牌维护表,并将读出来的 整数令牌数值减去对应通道发送的数据报文的长度,计算得到新的整数令 牌数值,再将该整数令牌数值写回到令牌维护表中,同时,更新整形状态 表,同理,即若通道号对应的整数令牌数值为正,整形状态表的对应状态 置“1”;若整数令牌数值为负,对应状态置“0”。

最后,根据整形状态表控制通道的调度。如果一个通道对应状态表中 的值为“1”,表示该通道可以参与调度;如果对应状态表的值为“0”,表 示该通道不能参与调度。

结合图3和图5所示,本发明利用上述装置实现流量整形的方法流程 具体为:

S1,根据循环控制模块输出的通道号读取期望速率编号配置表,得到 对应的期望速率编号;

S2,根据期望速率编号读取期望速率配置表,得到相应的期望速率的 数值;

S3,根据期望速率编号读取小数令牌维护表和命中记录向量,根据读 取的命中记录向量中期望速率编号对应位的累加状态值,对小数令牌维护 表和命中记录向量做相应的处理;

具体地,若读取的命中记录向量中期望速率编号的对应位为0,则将 从小数令牌维护表读取数据的整数位清0,并向小数令牌累加期望速率的 小数部分,并将累加后的数值写回到小数令牌维护表中,同时将命中记录 向量中期望速率编号的对应位修改为1;若读取的所述命中记录向量中期 望速率编号的对应位为1,则对小数令牌维护表和命中记录向量不做任何 处理,直接进入步骤S4。

S4,向对应通道的整数令牌中累加期望速率的整数部分以及小数令牌 的整数位,并存储到令牌维护表中;

在周期中的最后一个通道累加完成之后,将命中记录相连的所有位清 零。

S5,根据更新后的整数令牌数值,按通道号将整数令牌数值的状态写 到整形状态表中;

S6,根据调度模块输出的通道号读取令牌维护表,并将读出来的整数 令牌数值减去对应通道发送的数据报文的长度,将计算得到的新的整数令 牌数值写回到令牌维护表中,同时,更新整形状态表;

S7,根据整形状态表对应通道的整数令牌数值的状态,控制调度模块 对各个通道的调度。

本发明中的通道包括但不限于交换芯片中常用的如下数据流相关概 念:队列(queue)、分组(group)以及信道(channel)等等。

本发明的技术内容及技术特征已揭示如上,然而熟悉本领域的技术人 员仍可能基于本发明的教示及揭示而作种种不背离本发明精神的替换及修 饰,因此,本发明保护范围应不限于实施例所揭示的内容,而应包括各种 不背离本发明的替换及修饰,并为本专利申请权利要求所涵盖。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号