用于加权公平队列的方法与系统的制作方法

文档序号:7737888阅读:255来源:国知局
专利名称:用于加权公平队列的方法与系统的制作方法
技术领域
本发明大体涉及在速率调整业务状态中用于加权公平队列的方法与系统,更具体地涉及为基于帧的业务提供加权公平队列的方法与系统,其允许加权公平队列调度器内对子类竞争的速率限制与速率保证的结合。
背景技术
每个传输数据分组的计算机和通信网络必须实施某种形式的调度以确保数据业务以特定速率通过该网络进行传输。在任何已知的时刻,网络可能具有包含等待通过该网络传输的数据队列的数十万或甚至百万个连接点。需要某种形式的调度来使得网络组件以公平及时的方式处理这些数据队列。一般,调度器通过与数据队列相互作用来调度通过网络的数据传输。调度器可以是层级的,其中所选子类还可以是调度器,但必须从其子类中选择。该调度器确定从合格数据队列或其它含有可用数据的合格子类调度器处数据传输的次序。通常,单独的处理将数据排列到队列中,但是该单独的处理以声明数据可用或子类合格的方式连接到调度。调度器定期地或基于请求地,选择带有可用数据的子类,以从该子类处传输数据。层级调度器设立从所选择队列处的数据的传输。图1示出包括调度处理12的现有技术的数据系统10,其中数据路径包括一系列数据队列Ha、14b、Hc、14d和14e (共同被称为数据队列14)和复用(multiplexers) 16a、 16b(共同被称为复用16)。尽管复用在图1中显示为物理单元,但是在一般可扩展的实施中复用物理上并不存在,而是隐含在调度器对用于传输的数据队列14的选择中。调度处理 12可从任何具有可用数据(“DA”)的数据队列14中进行选择;然而,由于实施其分层的本质,调度处理12必须请求子类调度器18从数据队列14d和数据队列14e (附图有错,附图标记标为14a)中进行选择。则子类调度器18选择合适的数据队列14d、14e。在该示例中, 调度处理12可直接选择数据队列14a、14b和14c。授权给Lyon的专利号为7,373,420的美国专利(以下称为“‘420专利”)公开了一种现有技术的加权公平队列处理,在这里引用参考该专利的全部内容。图2阐明了 ‘420专利中的加权公平队列处理,其包括反向信用度管理系统,使用分配给每个数据队列的权重来确定给予哪个队列信用度。总的说来,具有反向信用度管理的加权公平队列(“WFQ-ICM”) 调度器20包括两个附加处理WFQ信用度分配器22和传输选择器M。传输选择器M —般以轮转方式进行操作,其中每个具有可用数据和正信用度的子类在传输数据处轮到。信用度处理22将信用度分配给子类,这些子类的当前信用度小于其可用数据量 (“ADA”)。每一子类在任一已知时刻累计的信用度量被记录在子类信用度状态数据库沈中。每一子类的信用度量绝不会超出该子类的ADA。在任何时候,如果子类具有小于其ADA 的信用度,子类就被包括在争取更多信用度的信用度分配器22中。传输选择器M选择具有正信用度计数的子类来传输数据。当子类传输数据时,在子类信用度状态数据库26中其当前信用度量中就会减少信用度,并且信用度被返回到信
6用度分配器22用于再分配给其它ADA大于信用度量的子类。信用度分配器22以子类消耗信用度相同的速率来分配信用度(也就是,没有余额),因此,WFQ-ICM调度器20的关键条件是,无论何时系统都需要精确地了解有多少数据可用于从每个子类随时的传输。该条件防止当子类具有可用数据时而被视为自身不合格,从而使得基于速率来确定合格的重复处理的实施实际上是不可能的。从根本上看,速率限制能够迫使具有数据的子类停止传输或不具有原调度器可用的数据。该限制在层级调度器上还有很重的负担,其中ADA包括有效地连接调度级间的调度处理的所有派生队列,无论涉及多少层级。因此,需要的是一种用于含反向信用度管理的加权公平队列的方法、系统和装置, 该反向信用度管理可在速率调整业务状态下使用。

发明内容
本发明有利地提供一种用于基于子类合格及信用度分配而在通信网络中调度传输数据的方法与系统。通常,具有反向信用度管理的加权公平队列的调度器可在速率型传输环境中使用,从而允许在加权公平队列调度器内竞争的子类的速率限制与速率保证的结
I=I O根据本发明的一方面,用于在通信网络中调度传输数据的系统包括信用度分配器和传输选择器。所述通信网络包括多个子类。所述传输选择器通信地连接到信用度分配器。所述信用度分配器操作以将信用度分配给合格子类与含有负信用度计数的子类中的至少一个。每个信用度可收回用于数据传输。所述信用度分配器进一步操作来保持表示未分配的可用信用度总量的信用度结余,用分配的信用度之比影响子类间的公平,以及从该信用度结余中扣除已分配的信用度。所述传输选择器操作来选择用于退出队列的至少一个合格和允许的子类,所述合格和允许的子类的偏向选择是具有正信用度的合格和允许的子类,以及将信用度增加到与选择用于退出队列的数据量相对应的信用度结余。根据本发明的另一方面,提供用于在通信网络中为子类分配信用度的方法。每个信用度可收回用于数据传输量。信用度被分配到合格允许子类和带有负信用度计数子类中的至少一个。表示未分配的可用信用度总量的信用度结余被保持,且分配的信用度从该信用度结余中扣除。根据本发明的另一方面,提供用于在通信网络中信用度调度传输数据的方法。所述通信网络包括多个子类。设立多个传输控制队列用于退出队列。每个传输控制队列能够包含相对应的合格子类的至少一个识别器,并且具有根据相对应的信用度计数需求限定的优先级。每个合格子类被分派到多个传输控制队列中的一个。每个合格子类具有满足其分派的传输控制队列的信用度计数需求的信用度状态。根据与该合格子类相对应的传输控制队列的优先级,至少一个合格子类被选择用于退出队列。与退出队列的数据量相对应的信用度被增加到该信用度结余。每个合格和允许的子类在传输控制队列中的一个中被表示。


本发明的更完整的理解以及伴随的优点和其中的特征,通过参考下述的描述并结合附图将会更容易理解,其中图1是示例现有技术数据调度处理的框图2是具有反向信用度管理的示例现有技术加权公平队列数据调度处理的框图;图3是具有根据本发明原理构成的反向信用度管理的示例加权公平队列数据调度处理的框图;图4是根据本发明原理构成的示例信用度分配器的框图;图5是根据本发明原理的示例信用度分配器处理的流程图;图6是根据本发明原理在响应合格转换时,示例信用度处理的流程图;图7是高加权子类的示例现有技术一维加权交错轮转循环轮转调度处理的框图;图8是根据本发明原理构成的高加权子类的示例二维加权交错轮转循环轮转调度处理的框图;图9是具有根据本发明原理构成的四个优先级的示例二维加权交错轮转循环轮转调度处理的框图;图10是具有根据本发明原理构成的示例基本传输选择器的框图;图11是具有根据本发明原理构成的示例改进的传输选择器的框图;图12是根据本发明原理的加权公平队列子类的示例传输选择处理的流程图;和图13是根据本发明原理在响应增加的信用度和合格转换时,示例传输选择处理的流程图。
具体实施例方式在详细描述根据本发明的示例实施例之前,应该注意的是,实施例主要涉及设备部件和处理步骤的结合,所述设备部件和处理步骤涉及实现一种用于为基于帧的传输提供加权公平队列的系统和方法,其允许对在加权公平队列调度器内的子类速率限制和速率保证的结合。相应地,系统和方法的组件在恰当的地方通过附图中的常规符号表示,为了不使那些对能受益于此处描述的本领域的普通技术人员来说明显清楚的细节影响本发明,只显示了那些对恰当理解本发明的实施例有关的具体细节。如这里使用的,相关术语,诸如“第一”和“第二”、“顶部”和“底部”等等,可能仅仅用来将一个实体或元件从另一个实体或元件中区别开来,而不必然地需求或暗指这些实体或元件之间的任何物理或逻辑关系或顺序。“根”结点是指加权公平队列树中的最高级结点,或层级加权公平队列树的分支中的最高结点。特定结点的“派生”是任何低于提及结点级别的结点,提及结点的衍生可追溯回该提及结点。类似地,特定结点的“父类”是任何高于提及结点级别的结点,提及结点的衍生可追溯回该提及结点。术语“子类”、“子类结点”或 “子类”是指任何调度树中结点的直接派生。通常,当讨论特定结点的关系时,术语“子类” 是指低于提及结点一个级别的结点(调度器结点或队列)。并且,任何从具有更高级结点派生出来的结点可称为“子类结点”或“子类”。本发明的一个实施例有利地提供用于具有反向信用度管理的加权公平队列的系统、方法和装置,该反向信用度管理可在速率型传输环境中使用。所述系统和方法允许在加权公平队列调度器内竞争子类的速率限制和速率保证的结合。当子类返回未使用的信用度时,信用度结余机制可允许信用度保存。先前,未使用的信用度由信用度分配系统分配,而不了解子类将在其速率限制内保持多久且继续具有数据来传输。另外,不同于现有技术,本发明的实施例允许子类在合格和不合格间切换,从而提供具有速率限制的子类的简易结合。现在参考图3,具有根据本发明的原理构成的改进的反向信用度管理 (“WFQ-ICM-Plus”)的示例加权公平队列调度器观包括传输选择器30、信用度分配器32 和子类信用度状态数据库;34。传输选择器30从所有用于传输数据的合格子类中选择子类。单独的合格处理36确定子类是否合格地用于传输选择。合格处理36操作的详细情况超出了本发明的范围;相关的描述仅仅是合格处理36确定哪些子类合格用于选择。以最简单的形式,合格处理只是子类处的可用数据。以更复杂的形式,可用数据可包括层级中各层的速率限制。这会影响不同于现有技术的性能,因为具有负信用度的子类可能被传输选择器30选择来用于传输。另外,本发明的实施例提供另一处理的可能性,即立即终止 (instantaneously disabling)先前合格的子类,这在现有技术中是不可能的。信用度分配器32包括含系统所有剩余信用度的信用度结余(“CB”)38。信用度分配器32是一种加权公平处理,该处理将来自信用度结余38的信用度分配给所有合格子类和所有具有负信用度的子类。信用度分配器32追踪每个子类在任何已知时刻累积在子类信用度状态数据库;34中的信用度量。不同于现有技术的WFQ-ICM调度器,本发明的实施例有利地不需要系统精确地了解有多少数据是可用。相反,所有信用度分配器32必须了解的就是,子类是“合格的”。信用度分配器32可将信用度分配给任一合格子类。因此,诸如速率形成机这类干扰处理可容易地结合本发明的实施例来进行操作。理论上,子类可接收许多该子类当前可用或合格用于将来发送的数据量的更多的信用度。然而,一旦子类从“合格”转换到“不合格”,则该子类先前获得的所有信用度就会被清除且被返回到信用度结余38。传输选择器30选择合格子类来传输数据。通常,子类选择偏向于具有更高信用度计数的子类。因此,具有高的正信用度计数的子类比具有低的正信用度或甚至负信用度计数的子类更可能被选择来用于传输。当子类传输数据时,在子类信用度状态数据库34中信用度从其当前信用度量中减少,且该信用度被返回到信用度结余38用于再分配给其它合格子类和负结余子类。现有技术的WFQ-ICM调度器不允许从具有负信用度计数的子类处传输,而允许实现从正信用度计数开始的帧传输。然而,因为现有技术并不允许无效或不合格的子类在获得信用度后进行传输,所以这里不需要上述性能。现在参考图4,显示了示例信用度分配器32的简化实施。通常轮转信用度分配器 40以数据传输从调度器观退出的同样速率将信用度分配给合格和负信用度子类。换句话说,来自传输选择器30的传输机会可触发信用度分配器32的信用度分配机会。在一次信用度分配循环期间,每个合格子类和负信用度子类在该循环中分配到多个与其权重值相对应的条目。当每个子类到达轮转(“RR”)分配队列42的前端时,循环中的每个子类就得到一个信用度。换句话说,一次RR轮转循环为每个子类分配一个“信用度”。因此,对于一次全信用度循环,每个子类“i”(表示为子类D被分配Wi个信用度,其中“K”是子类i的权重值。为每个子类i分配&个信用度所需要的RR轮转循环的次数是 K。当每个子类i已被分配κ个信用度时,信用度循环结束。因此,信用度循环的长度出于具有最大Wi的子类。当子类已接收到该循环的完全加权时,该子类被暂时置于加权超出队列44中来等待,并且直到下一信用度循环才实施进一步的信用度分配。
在先前的WFQ-ICM调度器中,信用度分配精确地以与传输相同的速率进行,因此决不会有未完成的信用度结余38。可用于分配的信用度是那些从传输选择器30中返回的 {曰用度。相反,如果有必要的话,本发明的实施例允许信用度分配器32携带正信用度结余 32。由于信用度先前合格的子类变得不合格但具有正信用度,所以信用度结余32可以变得非常大。为了补偿这个潜在的大信用度结余,信用度分配器32不需要如被分配给子类的信用度字节数(表示为“M”)那样分配从传输选择器30引进的精确的信用度字节数(表示为“N”)。因此,当信用度结余38包含过剩信用度时(S卩,CB >0),信用度分配器32就会仅仅通过提高分配给RR分配队列42的完全轮转循环轮转轮转循环的信用度量,从而M > N,来加速信用度分配。换句话说,对于RR轮转循环,信用度分配器32在循环期间将M个信用度字节分配给每个子类。任何过剩信用度可被传送到下一 RR轮转循环。在另一方面,如果信用度结余38降到零而M增加,但是由于M*F = N则分配频率(“F”)会减小,从而允许继续为每个子类分配M个信用度字节直到该RR轮转循环结束。提高为RR轮分配的信用度数可确保维持子类间的公平。在分配增加的M个信用度字节中值得注意的两个例外是通过被分配到M个信用度字节而超出其加权的子类仅被分配其加权的差额,以及不合格用于传输但是收集信用度以返回到零信用度的子类绝不会被分配到多于需要返回到零信用度的信用度量。无论是基于控制队列、基于向量还是一些其它的方法,信用度分配器的其它实施例还可通过提高信用度分配的“标准”速率来加速信用度分配,类似这里描述的本发明的原理。参考图5,提供了描述在响应分配信用度机会时由信用度分配器32执行的步骤的示例操作流程图。在图5中,信用度分配器32由传输选择器30触发一次来传输N个数据字节(步骤S100),但是可选择实施可具有实现同样步骤的定期性触发。重要的是要注意, 在本发明的可选择实施例中,信用度分配器32可了解实际的总传输字节计数,从而信用度可在多个N字节或部分N字节中分配。应该注意的是,下面的处理并不阐述合格转换,而在下文参考图5来进一步考虑合格因素。如果信用度分配器32不在RR轮转循环的开始处(步骤S102),即,信用度已被分配给当前RR队列中的某个子类,该处理选择当前RR队列前端的子类i来为其分配信用度 (步骤S104)。在这种情况下,就要使用信用度分配值M的先前状态。然而,如果信用度分配器32准备开始新的RR轮转循环时(步骤S102),即,已经完成先前的RR轮转循环,则信用度分配器32判断信用度分配循环是否需要继续还是需要全新的信用度循环(步骤S106)。 如果这是信用度循环的开始,则RR队列被选择来用于调度(步骤S108)。直到此时,仅仅讨论了支持单个RR队列的调度处理,因此步骤S108将对调度参数进行复位且再次开始处理RR队列的所有子类。然而,如下文关于图8的描述,当前发明的典型实施例提供多个区别于多个优先子类的RR队列,其中,步骤S108可选择用于处理的不同RR队列。如果不在信用度循环的开始处,则不需要新的RR队列。回到判定模块S106,如果正开始信用度循环,则信用度分配器32确定是否存在过剩信用度结余(步骤S110),这种情况下可产生多于单个传输事件的信用度(N)。如果存在过剩信用度结余,则信用度分配器32进入加速信用度分配循环(步骤SlU),其中在当前 RR轮转循环中,该信用度分配事件和该信用度分配的其余事件期间的信用度分配量(M)大于信用度分配事件间传输的信用度(N),S卩,M > N。否则,如果当前没有信用度结余(步骤 S114),则在该信用度分配事件和该RR轮的其余事件期间分配的信用度量设置为等于信用度分配事件间通常传输的信用度量,即,M = N(步骤S114)。注意,当前发明的其它实施例在判定SllO可使用不同的阈值N,例如CB >x字节,其中χ是用于将滞后(hysteresis)加入判定中以加速信用度分配的静态或动态数值。通过选择当前RR队列前端的子类i来开始信用度分配(步骤S104)。如果信用度结余大于或等于在当前RR轮转循环期间分配给每个子类的信用度量(步骤S116),即, CB >= M,则子类,分配到小于其在该信用度循环中的剩余加权以及在该RR轮转循环期间分配到的信用度量(步骤S118),M。分配给子类i的信用度量从信用度结余中扣除(步骤 S120),且该RR轮转循环进行到该RR队列中的下一子类(步骤S122)。回到判定模块S116,只要信用度结余大于子类i的剩余加权(步骤SlM),则子类 i被分配到其剩余的信用度加权(步骤SU6)。分配给子类i的信用度量从信用度结余中扣除(步骤S120),且该RR轮转循环进行到该RR队列中的下一子类(步骤S122)。然而,如果子类i的剩余加权大于信用度结余(步骤SlM),则没有信用度被分配且当前信用度分配事件结束,RR队列前端的剩余子类i用于下一信用度分配事件。现在参考图6,提供了描述在响应子类合格状态的转换时由信用度分配器32执行步骤的示例操作流程图。信用度分配器32检测子类1合格状态的转换(步骤SU8)。合格转换可由单独的处理(调度器内或调度器外)通知,例如,通过设置或清除该转换子类的标志、发送事件,或发送信息。如果子类i从不合格转换到合格(步骤S130的“是”分支) 且子类i已在信用度系统中(步骤S132的“是”分支),则信用度分配器32仅仅清除子类i 的等待移除标志(步骤S134)。如下文描述的步骤S150,当返回到正确的状态时,等待移除标志被设置来用于请求子类从信用度分配器32中移除。子类i仍然可以接收由其在RR队列中的加权和次序确定的信用度。然而,如果子类i当前不在信用度系统中(步骤S132的 “否”分支),且子类i还未收到大于该信用度循环中其加权i的信用度(步骤S136的“否” 分支),则子类i被排列到该RR队列的尾端(步骤S138)且子类i在当前信用度循环的下一轮中接收信用度。如果在当前信用度循环中子类1已经大于其加权(步骤S136的“是”分支),则子类i被排列到加权超出队列的尾端(步骤S140)且子类i直到下一信用度循环才接收信用度。回到判定框S130,如果该转换子类不是新的合格子类,则子类转换到不合格状态。 如果新的不合格子类i当前具有正信用度或没有信用度(步骤S142),即,信用度i > = 0, 则任何过剩信用度都被返回到信用度结余(步骤S144)且子类i的信用度计数被设置为零 (步骤S146)。子类i则从该信用度系统中移除(步骤S148)。应该注意的是,从信用度系统中的移除最容易通过等待子类以其方式进行到RR队列的前端以及在其RR轮转循环期间移除子类,而不是通过为子类分配信用度来实现。该方法是一种移除标志的潜在使用。然而,替代的实施例可提供一旦放弃其信用度给信用度结余就立即允许新的不合格子类i从系统中移除。在回到判定框S142,如果新的不合格子类具有负信用度,即,信用度i < 0,则其移除标志只被设置来表示已经准备被移除。然而,应该注意的是,任何具有负信用度结余的新的不合格子类直到从信用度结余处重新获得赤字信用度时才从信用度系统中移除,即,直到信用度i = 0时子类i才被移除。现在参看图7,方框图阐明示例现有技术中高加权子类的一维加权交错轮转 (“WIRR”)调度处理46。WIRR调度处理46使用了两个队列轮转(“RR”)队列48和加权超出队列50。所有在信用度循环中接收信用度的子类最初都从RR队列48处开始。假定如图7显示的开始状态,其中在RR队列中有4个子类(例如,A、B、C和D),A的加权是10, B的加权是4,C和D每一个的加权都是2。由于用具有最高加权的子类来表示信用度循环的RR轮转循环数,因为子类A的加权是10,所以信用度循环中有10个RR轮转循环。在第一 RR轮转循环期间,给RR队列48前端的子类D信用度,则D被移至RR队列 48的尾端。类似地,给C、B和A信用度,则每个子类都被移至RR队列48的尾端,从而使得 D回到该队列前端。在RR轮转循环2期间,给D信用度,使得在该信用度循环中分配给D 的总信用度大于或等于其加权,即,信用度D > =当前RR。因此,D被移至加权超出队列50 中等待直到该信用度循环结束。类似地,给C信用度,则C被移至加权超出队列50的尾端。 最后,给B和A信用度,则B和A都被移至RR队列48的尾端。在循环3期间,给B —个信用度且给A —个信用度。在循环4期间,给B —个信用度且给A —个信用度,然而,已接收到为信用度循环的信用度加权的子类B被移至加权超出队列50的尾端,在RR队列48中只留下A。在其余RR轮转循环期间,例如,循环5-10,每次循环都为子类A分配一个信用度。该一维WIRR的实际信用度分配序列是DCBA, DCBA, ΒΑ, BA, A, A, A, A, A, A0因此,在该信用度分配序列的一部分中,子类A有7个连续分配。该堆栈序列对系统产生的潜在稳定性问题是,当子类A非常迅速地累计信用度时,子类A运行完所有数据。本发明的实施例通过引进新的二维WIRR调度器改进了 WIRR调度处理,从而促进高加权子类信用度分配的平稳调度。图8提供了根据本发明的原理构成的示例二维WIRR 调度器52的框图。二维WIRR调度器52采用多个RR队列而不是单个RR队列,RR队列表示宽带或加权类。第一维调度是宽带类,其中WIRR信用度循环在同一宽带类的子类间提供公平。第二维调度是宽带类之间的,其中与第一维调度器一起作用的RR队列间的加权交错可实现与宽带类相关联的宽带复用(multiplier)。二维WIRR调度器52可包括至少两组具有相关加权超出队列的RR队列,其中每个队列“i”被配置为具有宽带复用“η/’的宽带类。子类可基于WIRR轮转循环的调整加权 (后来更多)在RR队列内交错,且可通过服务整个WIRR循环间的队列的次序在RR队列间交错。在该第二维调度器中,具有Iii复用(multiplier)的RR队列i被执行Iii次,次数就是整个WIRR循环那样多的次数乘1(表示为xl)队列。例如,在图8的二维WIRR调度器 52中,具有4复用的高优先(“HP”)RR队列M、HP加权超出队列56、具有1复用的低优先 (“LP”)RR队列58,以及LP加权超出队列60。对于该LP队列的每一 WIRR信用度循环执行,HP队列54WIRR信用度循环被执行4次。只要该模式是工作保存持的,执行RR队列的固定模式是可接受的,就是说即使RR 队列中的一些没有包含合格子类也可做出有用调度决定。例如,对于具有含x4复用的HP 队列M以及含xl复用的LP队列58的二维WIRR调度器52,信用度分配模式是HP、HP、HP、 HP、LP、重复。用于WIRR信用度循环的加权由第二维复用进行调整,其中该调整的加权等于全加权除以Ili。
例如,在图8的二维WIRR调度器52中使用关于图7的上述讨论中使用的同样的加权和子类,子类被排列从而A和B在HP队列M中,且C和D在LP队列58中。子类A具有调整的加权2. 5从而其全加权仍然是10 (例如,调整的加权*复用=全加权;2. 5*4 = 10)。 同样,B具有调整的加权1来映射其全加权4(例如,1*4 = 4)。因为LP队列58的复用是 1,所以C和D保持其原加权2。在该二维WIRR的第一 WIRR信用度循环期间,只有HP队列M运行。因此,在WIRR 轮转循环1期间,信用度分配器分配给B—个信用度并分配给A两个信用度,而保存子类A 的剩余加权0. 5。在WIRR信用度循环2期间,再一次,只有HP队列M运行,但是这时,分配给B —个信用度并分配给A三个信用度(如,该循环的加权2. 5+剩余加权0. 5 = 3个信用度)。第三WIRR轮转循环是WIRR轮转循环1的重复,其中B接收一个信用度,且A接收两个信用度还剩余0. 5个信用度。第四WIRR循环是WIRR循环2的重复,其中B分配到一个信用度且A分配到三个信用度。第五即最后的WIRR轮转循环使得LP队列58中的子类C 和D每个都接收两个信用度。因此,二维WIRR调度器52的每个全信用度循环的有效信用度分配次序是HHHHL (ΒΑ, A),(ΒΑ, A, A),(ΒΑ, A),(ΒΑ, A, A),(DC, DC)。应该注意的是,最大的连续分配被减少到三个A分配,小于现有技术一维WIRR 46 的最大连续分配的一半。应该注意的是,该过程可由单个加权超出队列实施,因为一次只使用一个RR队列。非0(1)算法,即,具有计算复杂性的分层调度器,而不是使用通常已知的“大0”标记的0 (1),当不需要扩展时可满足第二维。如上述显示的,强大交错限制了最大加权子类的连续分配长度。尽管在上文已描述了信用度分配器,但可以想象的是,本发明的二维WIRR 调度器52可通过传输选择器30来用于传输队列的调度退出队列的处理。二维WIRR的概念可扩展来实施多于两个优先级的系统中。图9提供了具有由四个优先RR队列表示的四个优先级的WIRR调度器62的框图高优先(“HP”)队列64、中间优先(“MP”)队列66、低优先(“LP”)队列68和极低优先(“VLP”)队列70。队列间的固定复用被选择来提供大动态范围的调度。例如,假设任一 RR队列中任一子类的最大调整的权重值是8而最小调整的权重值是1,则任一子类的最大总加权是4096 (84)。基于加权来计算队列选择,因此当所有队列都包含子类时,在每585个调度事件中,HP队列64被选择 512次,MP队列66被选择64次,LP队列68被选择8次,且VL队列70被选择1次。WIRR 调度器62处于工作保存,因此不选择没有包含子类的队列。计算或设置的信用度分配模式应该试图最大地为更大加权队列分配调度机会。另外,每次队列被选择时就应该执行完整的标准WIRR轮。图9描述的队列加权是说明性的不表示加权RR队列的唯一策略。例如, 不同的加权策略可选择均勻地改变队列权重,而不是图示的指数方式。另一策略是可实施动态队列权重(复用),该复用根据系统中活跃子类的权重来进行改变。信用度分配器32通过提高信用度分配速率,也就是在图5中被描述为M > N的信用度分配加速(“CDA”),来对非零信用度结余做出反应。CDA方法将同一信用度循环中多个RR循环合成为通过该RR队列的单个处理过程。这在任一单个宽带类的信用度循环内实现,因此并不明确地涉及第二维调度。该方法需要RR轮转循环开始和结束的了解,且计算
13CDA或每个RR轮转循环开始处M的大小。在CDA循环中组合的RR轮转循环数量一般是2 (M =2)。还可以了解的有价值的是,当信用度结余38特别大时将M提高到4,M潜在地被设置为与信用度结余38相比较的阈值。可选择的实施例通过在当前信用度循环中分配每个子类全部的剩余权重,从而将 RR循环的最大数量合成为单个过程,因此结束该WIRR信用度循环。还有另一实施例则计算RR轮转循环中涉及的子类数量,且将加速设置为1+CB/ “子类数量”,从而有效地清除了通过当前RR队列的单个过程中的信用度结余38。CDA方法允许在加速的RR轮转循环中间时通过跳过机会使得信用度分配速率返回到常态。换句话说,如果M是2且信用度结余38已返回到零,则只需给其他每个机会分配信用度,例如,MxNxO. 5 = N0继续加速的测试是简单的-只要信用度结余大于M和剩余加权i之间的最小值,则RR队列的前端处子类i可被分配信用度。信用度分配加速(“CDA”)可由RR轮转循环在任一优先级处执行。CDA在RR轮转循环开始处触发。RR轮转循环开始处选择的加速因子,M,应用于整个RR轮转循环。应该避免为子类分配小于或等于1的调整权重,因为只有调整权重> 1的子类才能参与这种形式的加速。信用度循环中剩余权重小于CDA指定信用度的子类只接收其剩余权重(即, 加速机会丢失或部分丢失)。现在将注意从信用度分配器32转移而转向根据本发明原理构成的对方传输选择器30。现有的反向信用度管理(“ICM”)调度器只包含只为带正信用度的子类服务的一个传输队列。子类根据例如轮转次序被选择来用于传输且排列在该传输队列尾端。则该队列前端处的子类被选择来进行传输。图10示出根据本发明原理构成的示例基本传输控制结构72。根据本发明的一个实施例,基本传输控制结构72包括三个单独的传输控制队列正队列74、负队列76和极负队列78。合格传输的所有子类,例如含可用数据,存在于传输控制队列中的一个。基于严格的优先系统,优先选择器80选择三个传输控制队列中的一个来传输。换句话说,包含子类的最高优先传输控制队列总是在较低优先传输控制队列之前被选择。在每个传输控制队列内,以简单的轮转方式选择子类,即,无权重。传输机会触发相应的信用度分配机会。基于子类具有的信用度量,子类被分类成传输控制队列。当子类的信用度结余改变时,子类在传输控制队列间动态地移动。具有大于零的信用度计数的子类被置于正队列 74中。如果不是用于系统的“信用度倾倒”方面,那么当子类变成不合格时,期望的反应将是,只有来自正信用度队列74的子类传输。因为本发明允许信用度倾倒(其中,信用度结余大于N),所以所有活动子类所持有的所有信用度总数可以是负数。具有负信用度计数的子类被置于负队列76中。标准正传输队列74和负传输信用度队列76包含具有标准信用度计数的子类。正传输队列74中的子类接收比传输稍多的信用度,而负传输队列76中的子类接收比传输稍少的信用度。如果不合格不是信用度结余38的触发扰动,则从标准正传输队列74处的传输是标准模式的操作。然而,直到子类的信用度计数可由信用度分配器32恢复时,许多子类将在传输之后保持在负传输队列76。可预见的是,由所有活动子类持有的当前信用度总数可以是负数,因此一些具有负信用度计数的子类有时必须传输,进一步减少它们的信用度计数。然而,具有大量传输的子类,尽管是负数,可分离出来以减少瞬时不公平。因此,阈值,例如传输媒介的最大传输单元的负数,被设置用于将含低于阈值的负信用度结余的子类置于极负队列78中。从极负队列78处的传输在可请求特别关注的信用度分配器32中提出极大剩余信用度结余38。极负队列78防止子类螺旋下降到极低信用度结余,除非所有子类都螺旋下降。从极负队列78处的传输表明不良的信用度结余38,这时该系统是不稳定的。可实施来使信用度结余38免于附加增长的应急措施是降低传输信用度消耗率(例如,消耗用于传输的N/4个而不是N个信用度)。当一些数据以N消耗传输且其它数据以N/4消耗传输时,消耗传输数据的中断可在加权公平算法中引入误差,但是这是防止信用度结余38无限增长的简单实施。如图11所示,附加实施例使用更先进的传输控制结构82。这个先进的传输控制结构82将上述讨论的三个传输控制队列与附加队列结合,该附加队列可选择地用于更灵活的调度变化和全新的特征。例如,传输控制结构82可将严格优先子类,如包含语音数据分组的子类,与通过最高优先支路控制队列84的加权公平队列子类结合。先进的传输控制结构82和上述讨论的方法允许优先调度与最小消耗的加权公平队列的结合。其它可选择的传输控制队列可包含极正队列86和未知的子类队列88。极正队列 86可防止由于传输系统中的阻塞而产生的信用度计数中的突出部分,从而提高信用度结余的稳定性。尽管极正队列86是可选择的,但是当不含优先传输的高加权子类可迅速设立信用度时,该队列可起到期望的功能。大信用度存储对系统稳定性来说是危险的,因为如果子类变得不合格,信用度就会突然地倾倒回信用度结余38。如果任一子类具有大信用度计数, 则传输选择器30应该查询子类来确定该子类是否危险地达到了上信用度阈值。上信用度阈值可由系统设计员根据传输媒介的规范来设置,包含诸如当前业务流量这样的参数。如果子类超出该上信用度阈值,则该子类应该被移至极正队列86以接收优先服务。未知的子类队列88容许这样的可能性子类对未被当前调度器吸收(已知)的原调度器来说是已知的。如果当前调度器被选择用于调度且不含其它合格子类,则该未知的子类队列88提供需要的子类。参考图12,提供了示例可操作流程图,该图描述了在选择加权公平队列子类期间由传输选择器30执行的步骤。传输选择器30确定该子类是否是新选择(步骤S152)。如果不是,作为先前选择,传输选择器30继续从与之前选择相同的队列和/或子类传输帧(步骤S154)。如果选择是新选择(步骤S152),则传输选择器30选择含当前子类的最高优先传输队列来用于退出队列(步骤S156),并且从传输队列的前端选择子类1用于传输(步骤 S158)。在子类已被选择来用于传输后,传输选择器30从子类i的总可用信用度(信用度 》中扣除掉传输的字节量(“N”)(步骤S160)。当传输选择器30达到传输结束时(步骤 S162),如果子类i不再是合格的(步骤S164),则子类i从传输系统中移除(步骤S166),即子类i对传输选择器30不再是可见的。然而,如果子类^乃然合格(步骤S164),则子类i 重新排列到适于子类i的信用度剩余量的传输队列的尾端(步骤S168)。现在参考图13,提供了示例可操作流程图,该图描述了响应增加的信用度和合格转换时由传输选择器30执行的步骤。传输选择器30确定子类i是否是新子类(步骤S170), 意味着子类i当前不在传输选择器排队系统中。如果子类i不是新的且传输选择器30确定子类i不再是合格的(步骤S172),则如果子类i当前不传输数据(步骤S174),则子类i从传输系统中移除(步骤S176)。否则,如果子类i当前传输(步骤S174),则传输选择器30现在不作出反应。该反应在将作为图12中部分退出队列处理时发生。回到判定框S172,如果子类i合格且信用度i表明子类已收到足够的新信用度来改变优先级(步骤S178),只要子类i当前不传输数据(步骤S180),则子类i从当前传输队列中移除(步骤S182)且被排列到信用度i量指示的传输队列尾端(步骤S184),即更高优先传输队列。另外,回来参考判定框S170,如果子类i是新子类,则传输选择器30简单地将子类 i排列到信用度i量指示的传输队列尾端(步骤S184)。本发明可由硬件、软件或软硬件的组合来实现。任何类型的计算系统、或其它适于执行这里描述的方法的设备都适于实现此处所描述的功能。硬件与软件的一般组合可以是专用计算机系统,该系统具有一个或多个处理部件及存储在存储介质上的计算机程序,当程序被加载和执行时,该存储介质可对计算机系统进行控制,从而执行这里描述的方法。本发明也可嵌入计算机程序产品中,该产品包括所有实现这里所描述方法的特征,且当该计算机程序产品在计算系统加载时可以执行这些方法。存储介质涉及任何非易失性存储设备和易失性存储器设备。本申请中的计算机程序或应用是指旨在使具有信息处理能力的系统直接或在进行以下任何一种或两种处理后完成特定功能的,以任何一种语言、代码或符号编写的一组次序的任何表达形式A)转换成另一种语言、代码或符号;B)以不同材料形式再现。另外,值得注意的是,如果没有相反的提及,所有附图并不是按比例的。根据上述说明各种修改和变化是可能的且不偏移本发明的范围和精神的,本发明的范围和精神只由下面的权利需求限制。
权利要求
1.一种用于在通信网络中调度传输数据的系统,该通信网络具有多个子类,所述系统包括信用度分配器可操作来为合格子类和负信用度计数的子类中的至少一个分配信用度,每个信用度可被收回用于一些数据传输;用分配的信用度之比影响子类间的公平; 保存表示未分配的可用信用度总量的信用度结余;和从所述信用度结余中扣除分配的信用度;和与所述信用度分配器通信连接的传输选择器,所述传输选择器可操作来 选择用于退出队列的至少一个合格和允许的子类;所述合格和允许的子类的偏向选择是具有正信用度的合格和允许的子类;和将信用度增加到与选择用于退出队列的数据量相对应的信用度结余。
2.根据权利需求1所述的系统,进一步包括可操作来确定每个子类的合格状态的合格更新器,其中基于不同于所述信用度分配器影响的与加权公平不同的准则,合格状态表示子类是否合格用以传输数据,包括速率限制、连续分配限制和数据可用性中的至少一个。
3.根据权利需求1所述的系统,其中所述信用度分配器进一步可操作来一旦子类变成不允许和不合格的子类中的至少一个,则从先前合格和允许的子类中清除所有正信用度;和将所述清除的信用度增加到所述信用度结余用于再分配。
4.根据权利需求1所述的系统,其中所述信用度分配器具有至少一个轮转控制队列, 所述轮转控制队列包含合格子类和正信用度计数子类中的至少一个子类的至少一个识别器,其中所述信用度分配器进一步可操作来在第一轮转控制队列中为子类交错分配信用度; 在轮转循环的第一轮转控制队列中为每个子类分配一个信用度; 重复轮转循环直到每个子类被分配到与该子类的加权相对应的信用度量; 当该子类被分配与该子类的加权相对应的信用度量时,从所述第一轮转控制队列中移除每个子类;和响应为每个子类分配与该子类的权重相对应的信用度量,从而将所述子类返回到所述第一轮转控制队列中。
5.根据权利需求4所述的系统,其中所述信用度分配器具有第二维加权交错调度器以提供多个轮转控制队列,每个轮转控制队列包含合格子类和正信用度计数子类中的至少一个子类的至少一个识别器,每个轮转控制队列表示宽带类和加权类中的至少一个,且每个轮转控制队列接收复用,其中所述信用度分配器进一步可操作来交错选择用于信用度分配的轮转控制队列,其中每个轮转控制队列被选择与其复用相对应的循环;选择用于信用度分配的第一轮转控制队列;在第一轮转控制队列中为子类分配信用度,其中每个子类被分配与每个轮转控制队列循环分配给该子类的加权相对应的信用度量,且其中以循环的模式在子类间分配信用度; 以交错的次序来选择含剩余循环的轮转控制队列,直到完成所有循环;和在所述选择的轮转控制队列中轮流为识别的子类分配信用度。
6.根据权利需求1所述的系统,其中所述信用度分配器进一步可操作来 保存信用度分配和数据传输之间的结余;以近似等于标准数据传输率的速率来分配信用度;和响应具有未完成的信用度结余,从而提高分配信用度的速率。
7.根据权利需求6所述的系统,其中所述信用度结余在开始轮转循环之前是过剩的, 所述信用度分配器进一步可操作来通过在单循环中为每个子类分配多个信用度,从而提高通过将多个轮转循环合成为一个轮转循环来为合格子类分配信用度的速率;和其中过剩包括超出设置的阈值,超出比一个传输事件消耗的信用度量还多的信用度量,以及大于零中的一个。
8.根据权利需求1所述的系统,其中所述传输选择器具有数个用于退出队列的传输控制队列,每个传输控制队列包含合格子类的至少一个识别器,且每个传输控制队列具有根据请求的信用度计数需求限定的优先级;和所述传输选择器进一步可操作来将每个合格子类分派到数个传输控制队列中的一个, 每个合格子类具有满足其分派的传输控制队列的信用度计数需求的信用度状态。
9.根据权利需求8所述的系统,其中所述传输控制队列包括正传输队列、负传输队列和极负传输队列,其中正传输队列和负传输队列之间的第一信用度计数阈值等于零; 负传输队列和极负传输队列之间的第二信用度计数阈值等于所述通信网络的最小传输单元的负数;具有比负传输队列还高的优先级的正传输队列;和具有比极负传输队列还高的优先级的负传输队列。
10.根据权利需求9所述的系统,其中所述传输控制队列进一步包括极正传输队列、支路队列和未知子类队列中的至少一个具有最高优先级的支路队列,且其中所述支路队列不会将信用度返回到信用度结余; 具有比正传输队列、负传输队列和极负传输队列还高的优先级的极正传输队列;和包含具有未知信用度状态的合格和允许的子类且具有最低优先级的未知子类队列。
11.根据权利需求9所述的系统,其中所述传输选择器进一步可操作来通过将信用度增加到与选择用于退出队列的一部分数据相对应的信用度结余,从而减少在从极负传输队列处传输数据时消耗的信用度。
12.一种用于在通信网络中为子类分配信用度的方法,每个子类可收回用于一些数据传输,所述方法包括为合格和允许的子类和负信用度计数子类中的至少一个子类分配信用度; 保存表示未分配的可用信用度总量的信用度结余;和从所述信用度结余中扣除分配的信用度。
13.根据权利需求12所述的方法,进一步包括一旦子类变成不允许和不合格子类中的至少一个,则从先前合格和允许的子类中清除所有正信用度;和将所述清除的信用度增加到所述信用度结余用于再分配。
14.根据权利需求12所述的方法,进一步包括实施具有多个轮转控制队列的二维加权交错的循环调度器,每个轮转控制队列包含合格子类和正信用度计数子类中的至少一个子类的至少一个识别器,每个轮转控制队列表示宽带类和加权类中的至少一个,且每个轮转控制队列接收复用;交错选择用于信用度分配的轮转控制队列,其中每个轮转控制队列被选择与其复用相对应的循环;选择用于信用度分配的第一轮转控制队列; 为在所述第一轮转控制队列中识别的子类分配信用度; 轮流选择含剩余复用加权的轮转控制队列,直到完成所有循环;和轮流为在所述第一轮转控制队列中识别的子类分配信用度。
15.根据权利需求14所述的方法,其中根据每个子类的调整权重值,为在选择的轮转控制队列中识别的子类分配信用度;和其中通过一组所有循环的每个子类的总权重值等于其调整的权重值乘以其循环队列的复用。
16.根据权利需求12所述的方法,其中所述信用度结余大于选择用于信用度分配事件间退出队列的数据量,所述方法进一步包括实施包含一个或多个子类的一个或多个轮转控制队列,所述子类用于在合格和允许的子类中的一个和负信用度结余的子类间进行交错信用度分配;和通过为通过轮转控制队列的全循环的每个子类分配多个信用度,从而将附加的信用度通过将多个循环合成为一个循环来分配给轮转控制队列中的子类。
17.一种用于在通信网络中调度传输数据的方法,所述通信网络具有多个子类,所述方法包括设立数个用于退出队列的传输控制队列,每个传输控制队列能够包含相对应的合格子类的至少一个识别器,且每个传输控制队列具有根据相对应的信用度计数需求限定的优先级;将每个合格子类分派到数个传输控制队列中的一个,每个合格子类具有满足其分分派的传输控制队列的信用度计数需求的信用度状态;根据与该合格子类相对应的传输控制队列的优先级来选择至少一个用于退出队列的合格子类;将信用度增加到与退出队列的数据量相对应的信用度结余;和其中每个合格和允许的子类以传输控制队列表示。
18.根据权利需求17所述的方法,其中所述传输控制队列包括正传输队列、负传输队列和极负传输队列,其中正传输队列和负传输队列之间的第一信用度计数阈值等于零; 负传输队列和极负传输队列之间的第二信用度计数阈值等于所述通信网络的最小传输单元的负数;具有比负传输队列还高的优先级的正传输队列;和具有比极负传输队列还高的优先级的负传输队列。
19.根据权利需求18所述的方法,其中所述传输控制队列进一步包括极正传输队列和支路队列具有比正传输队列、负传输队列和极负传输队列还高的优先级的极正传输队列;和具有最高优先级的支路队列且其中所述支路队列处的传输并不将信用度返回到信用度结余。
20.根据权利需求18所述的方法,其中所述传输控制队列进一步包括未知子类队列, 所述未知子类队列包含在吸收当前调度器的信用度状态之前由原调度器激活的合格子类。
全文摘要
用于在通信网络中调度传输数据的系统,包括信用度分配器和传输选择器。该通信网络包括多个子类。该传输选择器通信地连接到信用度分配器。该信用度分配器操作来为合格的子类和负信用度计数的子类中的至少一个分配信用度。每个信用度可收回,用于数据传输。信用度分配器进一步操作来用分配的信用度之比影响子类间的公平,保存表示未分配的可用信用度总量的信用度结余,以及从该信用度结余中扣除分配的信用度。传输选择器操作来选择用于退出队列的至少一个合格和允许的子类,所述合格和允许的子类的偏向选择是具有正信用度的合格和允许的子类,以及将信用度增加到与选择用于退出队列的数据量相对应的信用度结余。
文档编号H04L29/02GK102246462SQ200980150306
公开日2011年11月16日 申请日期2009年10月13日 优先权日2008年10月14日
发明者布拉德利·D.·维纳布尔斯 申请人:北电网络有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1