CN1989738B - 最低保证调度速率的传播 - Google Patents
最低保证调度速率的传播 Download PDFInfo
- Publication number
- CN1989738B CN1989738B CN2005800242194A CN200580024219A CN1989738B CN 1989738 B CN1989738 B CN 1989738B CN 2005800242194 A CN2005800242194 A CN 2005800242194A CN 200580024219 A CN200580024219 A CN 200580024219A CN 1989738 B CN1989738 B CN 1989738B
- Authority
- CN
- China
- Prior art keywords
- scheduler
- minimum guaranteed
- scheduling
- project
- sub
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/6215—Individual queue per QOS, rate or priority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
- H04L47/263—Rate modification at the source after receiving feedback
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/60—Queue scheduling implementing hierarchical scheduling
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Abstract
公开了在分级调度器中的调度层之间传播最低保证调度速率。父调度条目的最低保证调度速率通常是基于其直接子调度条目的最低保证调度速率的总和的。对一类流量的最低速率调度保证的这种传播可以是动态的(例如,基于此类流量的活动流量,此类流量的活动服务),或者可被静态配置。一个实施例还包括用于调度项目(例如但不限于分组或其指示)的多个调度通道,以使被调度项目的不同类别的流量(例如传播性最低保证调度速率、非传播性最低保证调度速率、高优先级、额外速率等等)可相应地通过调度分级结构被传播,而不会被阻挡在较低优先级或不同类型的流量之后。
Description
技术领域
本发明的一个实施例涉及通信和计算机系统,尤其是路由器、分组交换系统和其他设备;更具体而言,一个实施例涉及具有在分级调度器中的调度层之间的最低保证调度速率传播的调度分级结构。
背景技术
通信工业正在迅速变化以适应新兴的技术和不断增长的客户需求。这种对于新应用和现有应用的更强性能的客户需求正在驱动着网络和系统提供商采用速度更快能力更大(例如带宽更大)的网络和系统。在尝试实现这些目标时,许多通信提供商经常采用的方法是使用分组交换技术。公共和专用通信网络正越来越多地被用诸如因特网协议(IP)这样的各种分组技术来构建和扩展。注意,除非明确声明,否则不承认本文档中描述或引用的内容是本申请的现有技术。
诸如交换机或路由器之类的网络设备通常接收、处理以及转发或丢弃分组。例如,这种设备的入队组件接收积累在输入缓冲器中的各种大小的分组的流。每个分组被分析,并且适当量的存储器空间被分配来存储该分组。分组被存储在存储器中,而某些属性(例如通常从分组头部或其他来源得出的目的地信息和其他信息)被维护在单独的存储器中。一旦整个分组被写入了存储器中,分组就适于被处理了,并且分组的指示符通常被置于适当的目的地队列中,以便根据一些调度方法为其提供服务。
当存在对资源的争用,例如对分组交换系统或接口的输出链路的争用或者甚至对计算设备中的计算周期的争用时,根据一些优先级和/或公平策略来分配或调度资源是很重要的。此外,调度分组或其他被调度的项目并对其进行入队和出队所需的工作量是重要的,尤其随着系统的操作速率提高更是如此。许多不同的机构已被个体调度器用来调度分组,后面将对其中的许多进行描述。
普通时分复用(TDM)是常用于在若干客户端之间共享公共资源的一种方法。所有被调度的客户端都在预定的时间和预先分配的时间段中被一次一个地服务,这对于许多应用来说是非常有用的属性。该方法常被用于经由更高速度的通信链路复用多个同步项目,例如用于经由单个设施或交织的分组复用多个电话呼叫。但是,在项目可能不需要其所分配时隙的全部量的动态环境中,例如当项目可能不需要特定的所分配时隙或只需要其中一部分时,资源的带宽通常就被浪费了。
普通巡环淘汰(RR)是常用于在若干客户端之间共享公共资源的另一种方法。所有客户端都按循环顺序被服务。在每次巡环中,每个客户端如果合格的话就会被服务。当被服务时,每个客户端被允许发送一个分组。为队列提供服务实现起来是较简单的,并且可以在恒定时间中完成,但由于分组的大小不同而不会公平地分配带宽。例如,某些优先级较高或带宽较大的端口或分组流可能得不到它们需要的带宽量,当为一个较大的和许多较小的流量流服务时或者当不同优先级的流量被调度时尤其可能出现这种情况。
在一些场景中,高优先级(低等待时间)保证带宽、尽力而为流量(例如节余带宽)和其他种类的流量争用公共资源。各种已知的调度方法被设计来向争用公共资源的流量提供隔离、优先级区分和公平带宽分配。这些方法被称为公平排队方法。一些示例是加权公平排队(WFQ)、自计时公平排队(SCFQ)和亏损巡环淘汰/盈余巡环淘汰(称为DRR)。
WFQ和SCFQ依赖于到达时间和先前链路利用率来计算要发送的下一个最佳分组。所接受的“理想”行为是逐比特或加权逐比特巡环淘汰,这种逐比特或加权逐比特巡环淘汰根据系统的加权公平共享为系统中的每个分组的每个比特分配理想完成时间。这在基于分组的系统中通常是不实际的,除非所有分组都只有一个比特。将该算法从逐比特推广到逐分组,即每个分组被分配以一个理想完成(出发)时间,并且这些分组按最早出发时间的顺序被服务。在调度方法中包括理论出发时间通常要求对分类列表进行插入,已知这种插入是在软件中实现的O(log N)问题,其中N通常是队列的数目。在硬件中,该问题可以简化为对O(log N)个资源的O(1)操作。
DRR是用于在客户端之间有不同比率的情况下在若干客户端之间共享公共资源的方法(即,一些客户端被允许消耗比其他客户端更多的资源)。客户端之间的比率通常由一个被称为份额(quantum)的参数限定。存在DRR的许多变化和不同实现方式,包括后面描述的那些。
DRR利用巡环淘汰服务提i供为队列提供服务,其中为每个队列分配一个份额。与传统的巡环淘汰不同,最多可达指定份额的多个分组可被发送,从而使得每个队列至少发送等于份额量的字节。如果每个队列的份额相等,则每个队列将会消耗等量的带宽。
该DRR方法巡环地工作,其中每次巡环是对有项目要发送的队列的一次巡环淘汰迭代。通常,当队列被调度时,它被允许发送直到其亏损变为负(或非正),然后下一队列被服务。在不同流量上到达的分组被存储在不同的队列中。在每次巡环中,每个队列被分配以等于份额量的字节,这些字节被添加到每个队列的亏损中。每个队列在一个DRR巡环中被允许发送一个或多个分组,每次巡环中发送的确切分组数目取决于其份额和被发送的分组的大小。通常,只要在DRR巡环中队列的亏损为正(或非负)值(即它被授权发送分组),并且它具有一个或多个分组要发送,分组就被发送,并且其亏损基于发送的分组的大小被减小。如果在队列被提供服务服务之后队列中没有更多分组了,则一种实现方式将与该队列相对应的亏损设置为零,而一种实现方式仅在其亏损为负时才这么做。否则,剩余的量(即亏损减去已发送字节数)被保持以用于下一DRR巡环。
DRR的复杂度为O(1)-即所需的工作量是常数并且独立于入队的分组的数目。为了节省工作,分组应当在每次队列被调度时被发送,而不论其大小如何。从而,DRR中使用的份额应当至少是一个最大分组大小(MTU),以保证当份额被加到任何亏损时,所得到的值至少为零。DRR提供了公平带宽分配,并且易于实现。它节省工作,并且由于其O(1)属性,它能够随着更高的链路速度和更大的分组数目很好地调整,。但是,其调度行为很大程度地偏离了逐比特巡环淘汰的“理想情况”。具体而言,具有N个队列的系统的等待时间是Q*N,其中Q是平均份额,其必须至少是一个最大发送单位(MTU)。
这些调度技术对于调度单层服务或流量可能工作得很好。但是,带宽正基于流量类型和聚集被销售给末端客户。例如,客户可能预订具有不同的延迟和带宽要求的特定类型的流量,例如语音、视频、游戏、电子邮件、即时消息传递和因特网浏览。这些流量类型中的一些可能对时间和延迟非常敏感,而其他类型的流量可以被尽力而为地提供服务,而不会对服务产生太大影响。从而服务提供商可能能够销售一种优质服务,这种服务为特定的一类或多类流量提供最低保证服务速率,而为其剩余类型的流量提供尽力而为服务。
但是,对与其他流量混合的具有保证最低调度速率的多类流量的调度可能是很复杂的,尤其是在这些服务层中的每一层与其他末端用户以及可能存在的其他客户相聚集时,并且尤其在动态流量的上下文中,例如在对所预订服务进行间断的、部分的和/或完全的使用以及流量类型和来源数目发生变化的情况下,更是如此。例如,保证速率流量和尽力而为流量可被聚集在数字订户线(DSL)上或作为虚拟LAN(VLAN)的一部分,其中这些服务层中的每一层通常具有其自己的服务要求。如果决策功能被用来限制最大预订速率的流量速率,则分组通常被丢弃,或者服务受到反压力。但是,不加区分地丢弃分组或扼制所有类型的流量对于对延迟和带宽敏感的服务可能尤其有影响。此外,具有保证服务速率的流量需要被相应地提供服务,而不允许一个源消耗其保证服务速率以及他人当前未使用的保证服务速率。所需要的是适应不同流量类型和聚集的新方式。
发明内容
公开了可包括或用于具有在分级调度器的调度层之间的最低保证调度速率传播的调度分级结构的方法、装置、数据结构、计算机可读介质和机构等等。在一个实施例中,父调度条目的传播性最低保证调度速率通常是基于其直接子调度条目的传播性最低保证调度速率的总和的。对一类流量的最低速率调度保证的这种传播可以是动态的(例如,基于此类流量的活动流量,此类流量的活动服务),或者可被静态配置。一个实施例还包括用于调度项目(例如但不限于分组或其指示)的多个调度通道,以使被调度项目的不同类别的流量(例如传播性最低保证调度速率、非传播性最低保证调度速率、高优先级、额外速率等等)可相应地通过调度分级结构被传播,而不会被阻挡在较低优先级或不同类型的流量之后。
根据本发明第一方面,提供了一种用于在分级调度器的调度层之间传播最低保证调度速率的装置,包括用于实现用于调度项目的分级调度器,该分级调度器包括:父调度器,包括用于调度流量的父调度条目,所述父调度条目所调度的流量包括接收自子调度器的传播性最低保证调度速率类型的项目;所述子调度器,包括用于调度流量的多个子调度条目,所述子调度条目所调度的流量包括所述传播性最低保证调度速率类型的项目,所述多个子调度条目中的每一个具有与其自身相关联的一传播性最低保证调度速率以便调度其流量;其中所述父调度条目与父传播性最低保证调度速率相关联以便调度其流量,其中对于所述传播性最低保证调度速率类型的项目,每个子调度条目的传播性最低保证调度速率被传播到父调度器,并且所述父传播性最低保证调度速率是基于与所述多个子调度条目相关联的所述传播性最低保证调度速率的聚集而确定的。
根据本发明第二方面,提供了一种用于在分级调度器的调度层之间传播最低保证调度速率的装置,包括用于实现用于调度项目的分级调度器,该分级调度器包括:根调度器和一层或多层调度器,所述一层或多层中的每一层包括至少一个调度器,所述分级调度器中的每个调度器包括一个或多个调度条目,所述一层或多层调度器中的每个调度器被配置为将所选被调度项目传输到其在所述分级调度器中的父调度器;其中所述分级调度器的具有一个或多个子调度器的所述每个特定调度条目被配置为维护接收自所述子调度器的多个不同调度类别的项目;其中所述分级调度器的具有一个或多个子调度器的每个特定调度器被配置为基于所述项目的所述不同调度类别来对将所述项目发送到其父调度器或到调度客户端进行调度;其中所述不同调度类别包括传播性最低保证调度速率类型,并且多个所述调度条目中的每一个具有与其自身相关联的一个传播性最低保证调度速率;其中对于所述传播性最低保证调度速率类型的项目,每个子调度条目的传播性最低保证调度速率被传播到父调度器,并且父调度条目的传播性最低保证调度速率是基于所述父调度条目的直接子调度器的每个调度条目的传播性最低保证调度速率的聚集而确定的。
根据本发明第三方面,提供了一种用于在分级调度器的调度层之间传播最低保证调度速率的装置,包括用于实现用于调度多个不同调度类别的项目的分级调度器,所述多个不同调度类别包括传播性最低保证调度速率类别和基于额外速率的类别。所述分级调度器包括:多个子调度器;以及包括多个调度条目和调度机构的父调度器,所述多个调度条目中的每一个对应于多个子调度器中的不同的一个并被配置为从该子调度器接收项目,所述调度机构被配置为识别来自所述调度条目的最佳被调度项目;其中所述传播性最低保证调度速率类别的项目和所述基于额外速率的类别的项目在所述多个调度条目中的每一个中共享公共的最低保证速率;并且其中与所述多个调度条目中的特定调度条目相关联的对应于所述传播性最低保证调度速率类别的项目在与所述特定调度条目相关联的对应于所述基于额外速率的类别的项目之前被调度。
附图说明
所附权利要求具体阐述了本发明的特征。从以下结合附图的详细描述中可以最充分地理解本发明及其优点,在附图中:
图1A是一个实施例中使用的示例性分级调度器的框图;
图1B是一个实施例中使用的示例性分级调度器的框图;
图2是示出一个实施例中使用的父调度器及其子调度器之一的框图;
图3A-C是一个实施例中用于通过分级调度器传播项目的过程的流程图;
图4是一个实施例中使用的调度器的框图;
图5A示出一个实施例中的最低保证调度速率的传播;
图5B示出一个实施例中的最低保证调度速率的传播;
图6示出一个实施例中的最低保证调度速率的传播;以及
图7是示出一个实施例中执行的对来自多个调度类的项目进行所选调度的流程图。
具体实施方式
本发明公开了可包括或用于调度分级结构和/或具有用于调度项目的多个调度通道的调度分级结构的方法、装置、数据结构、计算机可读介质和机构等等。
这里描述的实施例包括各种要素和限制,其中没有一种要素或限制被看作必不可少的要素或限制。每个权利要求单独从整体上陈述本发明的一个方面。此外,这里描述的某些实施例可以包括(但不限于)系统、网络、集成电路芯片、嵌入式处理器、ASIC、方法和包含指令的计算机可读介质等等。一个或多个系统、设备、组件等等可以包括一个或多个实施例,这些实施例可以包括由相同或不同系统、设备、组件等执行的权利要求的某些要素或限制。下文中描述的实施例体现了本发明的范围和精神内的各个方面和配置,其中附图示出了示例性而非限制性的配置。
这里使用的术语“分组”指的是所有类型的分组或任何其他信息或数据单元,包括(但不限于)固定长度的信元和可变长度的分组,它们中的每一个可能能够被划分成更小的分组或信元,也可能不能被划分成更小的分组或信元。这里使用的术语“分组”还指分组本身或分组指示,例如(但不限于)分组或分组头部的全部或部分、数据结构值、指针或索引,或者分组或与其相关联的信息的任何其他部分或直接或间接标识。例如,路由器通常对分组(尤其是头部)的一个或多个字段进行操作,因此分组的主体通常被存储在单独的存储器中,而分组头部被操纵,并且基于对分组(即本示例中的分组头部)的处理结果,整个分组被转发或丢弃等等。另外,这些分组可以包含一种或多种类型的信息,包括(但不限于)语音、数据、视频和音频信息。术语“项目”在这里一般用来指分组或任何其他信息或数据单元或片断、设备、组件、元件或任何其他实体。短语“处理分组”和“分组处理”通常指基于分组内容(即分组头部或其他字段)执行某些步骤或动作,并且这些步骤或动作可以包括也可能不包括修改、存储、丢弃和/或转发分组和/或相关联的数据。
术语“系统”在这里一般用来描述任何数目的组件、元件、子系统、设备、分组交换元件、分组交换机、路由器、网络、计算机和/或通信设备或机构或者它们的组件的组合。术语“计算机”在这里一般用来描述任何数目的计算机,包括(但不限于)个人计算机、嵌入式处理元件和系统、控制逻辑、ASIC、芯片、工作站、大型机等等。术语“处理元件”在这里一般用来描述任何类型的处理机构或设备,例如处理器、现场可编程门阵列、计算机等等。术语“设备”在这里一般用来描述任何类型的机构,包括计算机或系统或其组件。术语“任务”和“过程”在这里一般用来描述任何类型的运行程序,包括(但不限于)计算机进程、任务、线程、执行应用、操作系统、用户进程、设备驱动器、原码、机器或其他语言等等,并且可以是交互式的和/或非交互式的,在本地和/或远程执行,在前台和/或后台执行,在用户和/或操作系统地址空间中执行,是库和/或独立应用的例程,并且并不局限于任何特定存储器分区技术。附图中示出的步骤、连接和信号与信息的处理(包括,但不限于,任何框图和流程图以及消息序列图)通常可以按相同或不同的串行或并行顺序执行,和/或利用不同的组件和/或进程、线程等执行,和/或在不同的连接上执行和与其他实施例中的其他功能组合起来,除非这使实施例无法工作或者明示或暗示要求某种序列(例如,对于读取值、处理值的序列,值必须在处理前先被获得,但是某些相关联的处理可能在读取操作之前、同时和/或之后执行)。此外,术语“识别”一般被用来描述用于直接或间接确认某物的任何方式或机构,这可以包括(但不限于)接收、从存储器检索、确定、限定、计算、生成等等。
此外,术语“网络”和“通信机构”在这里一般用来描述一种或多种网络、通信介质或通信系统,包括(但不限于)因特网、私有或公共电话、蜂窝、无线、卫星、线缆、局域、城域和/或广域网络、线缆、电子连接、总线等等以及诸如消息传递、进程间通信、共享存储器等的内部通信机构。术语“消息”在这里一般被用来描述一条信息,该信息可以是也可以不是但通常是经由任何类型的一个或多个通信机构来传输的。
术语“存储机构”包括任何类型的存储器、存储设备或用于以任何格式保存指令或数据的其他机构。“计算机可读介质”是可扩展的术语,包括任何存储器、存储设备、存储机构和其他存储和信令机构,包括诸如网络接口卡之类的接口和设备以及其中的缓冲器,以及任何通信设备和接收与发送的信号,以及计算机系统可以解释、接收和/或发送的其他当前技术和正在开发的技术。术语“存储器”包括任何随机访问存储器(RAM)、只读存储器(ROM)、闪存、集成电路和/或其他存储器组件或元件。术语“存储设备”包括任何固态存储介质、盘驱动器、磁盘、联网服务、磁带驱动器和其他存储设备。存储器和存储设备可以存储将由处理元件和/或控制逻辑执行的计算机可执行的指令,以及由处理元件和/或控制逻辑操纵的数据。术语“数据结构”是可扩展的术语,其指的是可应用到数据以帮助解释数据或对数据执行操作的任何数据元素、变量、数据结构、数据库和/或一个或多个组织方案,例如(但不限于)存储单元或设备、集合、队列、树、堆栈、列表、链表、阵列、表、指针等等。数据结构通常被保存在存储机构中。术语“指针”和“链接”一般用来标识某种用来引用或标识另一元件、组件或其他实体的机构,可以包括(但不限于)对存储器或其他存储机构或其中的位置的引用、数据结构中的索引、值等等。
术语“一个实施例”在这里用来指特定实施例,其中每次提到“一个实施例”可以指不同的实施例,并且在描述相关联的特征、要素和/或限制时对该术语的重复使用并不建立每个和所有实施例都必须包括的相关联的特征、要素和/或限制的累积集合,但是实施例通常可以包括所有这些特征、要素和/或限制。另外,短语“用于XXX的装置”通常包括包含用于执行XXX的计算机可执行指令的计算机可读介质。
另外,术语“第一”、“第二”等等通常被用来代表不同单元(例如第一元件、第二元件)。在这里使用这些术语不一定意味着某种顺序,例如一个单元或事件在另一单元或事件之前发生或到来,而是提供了用于在特定单元之间进行区分的机制。另外,单数名词的使用是非限制性的,其使用通常包括一个或多个特定事物而非仅有一个(例如,词语“存储器”的使用通常指一个或多个存储器,而不一定要指定“一个存储器或多个存储器”、“一个或多个存储器”或“至少一个存储器”等等)。此外,短语“基于x”和“响应于x”被用来指示引发或导致某事的项目x的最小集合,其中“x”是可扩展的,不一定描述了对其执行操作的项目的完整列表等等。另外,短语“耦合到”被用来指示两个元件或设备之间某种级别上的直接或间接连接,其中耦合设备修改或不修改被耦合的信号或传输的信息。术语“子集”被用来指示集合的全部或部分要素的群组。术语“子树”被用来指示树的全部或一部分。此外,术语“或”被用来表示选择相关项目中的一个或多个(包括全部)。另外,术语“包括(comprising)”与“包括(including)”“包含(containing)”或“其特征是(characterized by)”同义,它可以是包含性的或开放性的,并且不排除附加的、未提到的要素或方法步骤。
一个实施例包括用于调度诸如(但不限于)分组或其指示之类的项目的个体调度器的分级结构,以使不同种类的优先级项目可相应地通过调度分级结构被传播。注意,这里描述了许多不同的实施例及其多个方面。所描述的方面中的一些在性质上可能是全局的或局部的。例如,一个方面可能对于分级调度器的所有调度器都是相同的,可能只适用于一部分调度器,或者甚至只适用于某些调度类别、调度通道或者从子调度器到父调度器的一个或多个连接,等等。为使读者易于理解,一个实施例通常是在分组通过其传播的调度分级结构的上下文中被说明的;但是,其教导也适用于比如(但不限于)在递归下降方法中信息通过调度分级结构被分发并且搜索通过分级结构被执行以识别要转发的下一被调度项目(例如区别于实际通过调度分级结构传播被调度项目)的其他实施例。通常,在递归下降方法中,通过分级调度器传播的项目是状态指示(即指示最佳项目和/或可用项目)。
在一个实施例中,父调度条目的传播性最低保证调度速率通常是基于其直接子调度条目的传播性最低保证调度速率的总和的。对一类流量的最低速率调度保证的这种传播可以是动态的(例如,基于此类流量的活动流量,此类流量的活动服务),或者可被静态配置。一个实施例还包括用于调度项目(例如但不限于分组或其指示)的多个调度通道,以使被调度项目的不同类别的流量(例如传播性最低保证调度速率、非传播性最低保证调度速率、高优先级、额外速率等等)可相应地通过调度分级结构被传播,而不会被阻挡在较低优先级或不同类型的流量之后。
此外,一个实施例将把项目子集(例如所有项目、只是那些传播性最低保证调度速率型的项目,等等)从子调度器转发到父调度器的父调度条目的总聚集速率限制为父调度条目的传播性最低保证调度速率(例如子调度器的子调度条目的传播性最低调度速率的总和或其变体)。该限制有时被用来防止一个传播性最低保证调度速率服务使用另一个传播性最低保证调度速率服务的未使用的传播性最低保证调度速率带宽。
一种实施例包括:父调度器,包括用于调度流量的父调度条目,该流量包括传播性最低保证调度速率类型的项目;子调度器,包括用于调度流量的多个子调度条目,该流量包括传播性最低保证调度速率类型的项目,多个子调度条目中的每一个与传播性最低保证调度速率相关联以便调度其流量。父调度条目与父传播性最低保证调度速率相关联以便调度其流量,该流量包括传播性最低保证调度速率类型的项目。父传播性最低保证调度速率通常是基于与多个子调度条目相关联的传播性最低保证调度速率的聚集或其某种变体而确定的。
在一个实施例中,项目包括分组或与分组相对应的指示。在一个实施例中,由子调度进行的流量调度包括基于分组中的相应分组的大小,针对与多个子调度条目中的特定调度条目相对应的要转发的每个分组,更新该特定调度条目。在一个实施例中,由父调度器进行的流量调度包括基于分组中的相应分组的大小,针对与父调度条目相对应的要转发的每个分组,更新父调度条目。在一个实施例中,多个子调度条目中的每一个被调度以一个最大流量速率,该最大流量速率等于其相应的传播性最低保证调度速率。在一个实施例中,多个子调度条目中的每一个中的传播性最低保证调度速率类型的流量被调度以一个最大流量速率,该最大流量速率等于其所述相应传播性最低保证调度速率。在一个实施例中,父调度器包括针对多个调度类别中的每一个的存储装置,多个调度类别包括传播性最低保证调度速率类型。在一个实施例中,与传播性最低保证调度速率类型相对应的项目被以父传播性最低保证调度速率来调度。在一个实施例中,多个调度类别包括非传播性最低保证调度速率类型。在一个实施例中,多个调度类别包括高优先级流量类别,该高优先级流量类别将被父调度器和子调度器以高于传播性最低保证调度速率流量的调度优先级来调度。在一个实施例中,父传播性最低保证调度速率等于与多个子调度条目相关联的传播性最低保证调度速率的总和。在一个实施例中,父传播性最低保证调度速率等于与积极地调度传播性最低保证调度速率类型的流量的多个子调度条目相关联的传播性最低保证调度速率的总和。在一个实施例中,父传播性最低保证调度速率不包括与多个子调度项目中没有积极地调度传播性最低保证调度速率类型的流量的特定一个子调度条目相关联的传播性最低保证调度速率。在一个实施例中,与多个子调度条目相关联的传播性最低保证调度速率的聚集不包括与未积极地调度传播性最低保证调度速率类型的流量的多个子调度条目相关联的传播性最低保证调度速率。
一个实施例包括根调度器和一层或多层调度器。一层或多层中的每一层包括至少一个调度器。一层或多层调度器中的每个调度器包括一个或多个调度条目,一层或多层调度器中的每个调度器被配置为将所选被调度项目传输到其在分级调度器中的父调度器的父调度条目。分级调度器的具有一个或多个子调度器的每个特定调度条目被配置为维护接收自子调度器的不同调度类别的项目。分级调度器的具有一个或多个子调度器的每个特定调度器被配置为基于项目的不同调度类别来对将项目发送到其父调度器或到调度客户端进行调度。不同调度类别通常包括传播性最低保证调度速率类型,并且多个调度条目中的每一个与一个传播性最低保证调度速率相关联。父调度条目的传播性最低保证调度速率通常是基于其直接子调度器的每个调度条目的传播性最低保证调度速率的聚集而确定的。
在一个实施例中,每个直接子调度条目的最大流量速率约等于其相应的传播性最低保证调度速率。在一个实施例中,每个直接子调度条目的最大流量速率等于其相应的传播性最低保证调度速率。在一个实施例中,父调度条目的传播性最低保证调度速率等于其直接子调度条目中的每一个的传播性最低保证调度速率的总和。在一个实施例中,不同调度类别还包括高优先级流量类型;其中与高优先级流量类型相对应的项目在与传播性最低速率保证流量类型和/或最低速率保证流量类型相对应的项目之前被转发。在一个实施例中,项目包括分组或与分组相对应的指示。在一个实施例中,项目调度包括基于分组中的相应分组的大小,针对与调度条目中的特定调度条目相对应的要转发的每个分组,更新该特定调度条目。在一个实施例中,父调度条目的传播性最低保证调度速率等于其积极地调度传播性最低保证调度速率类型的流量的直接子调度条目中的每一个的传播性最低保证调度速率的总和。在一个实施例中,父调度条目的传播性最低保证调度速率不包括与其直接子调度条目中未积极地调度传播性最低保证调度速率类型的流量的特定一个子调度条目相关联的传播性最低保证调度速率。在一个实施例中,调度器的直接子调度条目中每一个的传播性最低保证调度速率的聚集不包括调度器的未积极地调度传播性最低保证调度速率类型的流量的直接子调度条目中每一个的传播性最低保证调度速率。
图1A是一个实施例中使用的示例性分级调度器110的框图。如图所示,项目151-156被分级调度器110接收,并通过一个或多个调度器121-144被传播以到达调度器111,然后被转发到调度客户端100。调度器111有时被称为根调度器,因为它对应于由调度器121-144形成的树的根。调度器111-144中的每一个独立地调度流量(虽然最低保证速率可能被从一个或多个子调度器/调度条目传播到其父亲),这通常包括调度两个或更多个不同调度类别的流量,例如(但不限于)高优先级流量、低优先级流量、基于速率的流量、传播性最低保证速率流量。通过提供多个调度通道或另一种机构以便直接访问不同类别的流量,优先级较高的项目可通过分级调度器110传播,而不会被阻挡或以其他方式被延迟在优先级较低的流量之后。注意,每个调度器通常包括具有一个或多个调度条目的单个父调度器或外部客户端,以及一个或多个子调度器和/或外部项目源。使用分级调度器的实施例中的调度器数目及其布置通常是基于实施例的应用需求来确定的。
一个实施例包括用于调度多个不同调度类别的项目的分级调度器,所述类别包括传播性最低保证调度速率类别和基于速率的类别。分级调度器包括父调度器和多个子调度器。父调度器包括多个调度条目和一个调度机构,其中每个调度条目对应于子调度器中的一个不同的子调度器,并且调度机构被配置为识别来自调度条目的最佳被调度项目。传播性最低保证调度速率类别的项目和基于速率类别的项目在多个调度条目中的每一个中共享公共的最低保证速率;并且其中与多个调度条目中的特定调度条目相关联的对应于传播性最低保证调度速率类别的项目在与该特定调度条目相关联的对应于基于速率的类别的项目之前被调度。
在一个实施例中,传播性最低保证调度速率类别的项目和基于速率类别的项目在多个调度条目中的每一个中共享公共的最大速率。在一个实施例中,不同的调度类别包括优先级调度类别;并且与特定调度条目相关联的对应于优先级调度类别的项目在与传播性最低保证调度速率和基于速率的调度类别相对应的项目之前被调度。在一个实施例中,调度类别包括优先级调度类别,并且与优先级调度类别相对应的项目在与传播性最低保证调度速率和基于速率的调度类别相对应的项目之前被调度。
图1B示出了在项目是分组或与分组相对应的指示的上下文中的分级调度器170的示例性使用。注意,分级调度器的一个实施例可用于调度进入和/或外出分组流量。在图示示例中,分级调度器170负责调度对接收自分组队列195-198的分组的发送。分级调度器170利用多层调度器来完成这一操作:使用调度器191-194的服务种类调度层,其中调度器191-194的父调度器181-182对应于VLAN调度器层,调度器181-182的父调度器171对应于端口调度器,该端口调度器将分组或其指示提供给调度客户端160,该调度客户端对应于接口。
调度器171-194中的每一个独立地调度流量,该流量通常包括两个或更多个不同的调度类别,例如(但不限于)高优先级流量、低优先级流量、基于速率的流量、传播性最低保证速率流量。通过提供多个调度通道或另一种机构以便直接访问不同类别的流量,优先级较高的分组或其指示可通过分级调度器170传播,而不会被阻挡或等待在优先级较低的流量之后。注意,每个调度器通常以父调度器的单个父调度条目或外部客户端作为其父亲,并且具有一个或多个子调度器和/或外部项目源。使用分级调度器的实施例中的调度器及其调度条目的数目及其布置通常是基于实施例的应用需求来确定的。在一个实施例中,调度器以父调度器的多个调度条目作为其父亲,例如(但不限于)对于每个调度类别有一个调度条目-但父调度条目通常将会共享一个或多个调度参数(例如最大速率)(但在一个实施例中不是这样)。
图2被用于描述一个实施例中使用的父调度器200和其子调度器之一240。如图所示,父调度器200包括针对每个调度类别(例如高优先级流量、低优先级流量、基于速率的流量或者匹配实施例应用需求的任何类别)的用于接收自其每个子调度器(240和其他未示出的)的项目的存储装置201-203(通常对应于调度条目)。通过按接收自不同子调度器的调度类别隔离项目,父调度器200能够能将不同类型或优先级的流量在其他流量之前传播,即使这种流量被较早接收到也是如此。类似地,子调度器240包括针对每个调度类别的用于接收自其每个子调度器的项目的存储装置241-243。
任何类型的调度机构都可用来从接收自其子调度器或外部源的项目中识别最佳项目。例如,一个实施例使用两类流量类别:优先级流量和基于速率的流量。高优先级流量的项目被调度为严格地在任何基于速率的项目之前被转发,而基于速率的流量在剩余带宽中被调度(例如利用日历调度、DRR或其他调度机构)。
一个实施例还维护一个或多个数据结构,这些数据结构指示它当前已存储的流量的类别,以及其父调度器已存储或向它要求的那些类别。例如,父调度器200维护父状态信息211和它的调度状态信息212,而子调度器240维护父状态信息251(即对应于父调度器200)和它的调度状态信息252。以这种方式,子调度器可很容易地确定(例如基于比较其维护的父状态信息和自身的状态信息)它拥有哪类流量可转发到其父调度器以及哪类流量匹配其父调度器的需求。在一个实施例中,每个调度器最多可存储来自其每个子调度器或外部项目源的每个类别的单个项目,并且使用一个或多个位图来维护此状态信息。在一个实施例中,每个调度器最多可存储来自其每个子调度器或外部项目源的每个类别的不止一个项目,并且使用一组或多组计数器来维护此状态信息。在一个实施例中,每个调度器包括多个调度条目,每个调度条目与唯一的子调度器或外部源相关联,并且调度条目本身包含用于每个调度类别的一个或多个项目的存储装置。注意,在一个实施例中,通过发送调度器和/或接收调度器,一个或多个调度类别被合并成较小的和/或单个调度类别。
图3A示出了在一个实施例中用来在启动时或响应于先前对其子调度器的关于特定调度类别的项目的未完成的请求将项目传播到父调度器的父调度条目。处理开始于过程块300。如果在过程块302中确定项目先前已被接收,则在过程块304中,项目被存储在针对该调度类别的与发送方子调度器或外部源相对应的项目存储装置中。在过程块306中确定该调度类别的项目是否被父调度器的父调度条目所需要。在一个实施例中,该确定包括将其父状态数据结构中所需的项目的指示与它在其调度状态数据结构中从其孩子接收的项目的指示相比较。注意,在一个实施例中,如果项目的相应调度类别的传播已由于流控制或其他机制而被暂停,则项目不会被考虑转发(就这里而言以及就其他转发判决而言)。
如果在过程块306中确定该调度类别的项目被父调度器的父调度条目所需要,则在过程块308中,相应的项目被发送到其父亲,并且父状态和调度状态数据结构被更新。在一个实施例中,过程块306中进行的确定包括在父调度条目已具有调度优先级高于特定调度类别的调度优先级的调度类别的项目的情况下,识别父调度条目不需要该特定调度类别的项目,即使它具有用于该特定调度类别的项目的存储空间也是如此。处理返回过程块302。
图3B示出了在一个实施例用来调度已从其子调度器或外部源接收到的项目的过程。处理开始于过程块340。如过程块341所示,处理被延迟或阻止,直到父调度器的父调度条目或客户端需要项目。然后,如果在过程块342中确定调度器有项目要发送(并且在一个实施例中还确定已到了发送下一项目的时间),则在过程块344中,确定(或已经确定了)要转发到父调度器的父调度条目或客户端的最佳项目并且发送该最佳项目,该最佳项目通常是父亲所需的最高优先级调度类别项目。调度器的父状态和调度状态数据结构被相应地更新。此外,如果项目是基于速率的项目,则速率调度数据结构被更新。
注意,分级调度器允许不同实施例使用不同的调度机构,并且提供了一个机构,用于调度接收自若干子调度器或外部源的流量,并允许优先级较高的流量通过调度分级结构被传播,而不必等在优先级较低的流量之后。还要注意,在一个实施例中,通过发送调度器和/或接收调度器,一个或多个调度类别被合并成更少和/或单个调度类别。
在处理块346中,对替换项目的请求被发送到从其接收到所发送项目的子调度器或外部源,通常与之一起发送的还有关于所发送项目所属的流量类别的指示。处理随后返回过程块341。
图3C示出在一个实施例中用于响应于来自父亲的对于特定调度类别的项目的请求而将项目传播到父调度器的父调度条目的过程。处理开始于过程块360。如果在过程块362中确定已接收到请求,则在过程块364中,基于接收到的请求更新父数据结构,该父数据结构通常标识调度类别,并且还可能标识其父亲所需的每种项目的数目。在过程块366中,确定调度器当前是否具有要发送到父调度器的父调度条目或外部客户端的项目。在一个实施例中,该确定就是简单地检查它是否具有与接收到的请求相对应的调度类别的项目(例如通过检查项目存储装置或调度状态数据结构)。在一个实施例中,如果其父调度器(或者在一个实施例中更具体而言是其父调度器的父调度条目)当前存储着其接收自该调度器的优先级更高的项目,则即使这种项目被存储在该调度器中,该确定也将会被强制失败。换言之,直到调度器的状态确定父调度器(或者在一个实施例中更具体而言是其父调度器的父调度条目)没有优先级更高的项目,项目才会被转发到其父调度器的父调度条目。这不会延迟项目的调度,因为父调度器在确定其下一个被调度项目时,通常只会考虑接收自其孩子的最高优先级类别的项目。从而,这个优先级较低的项目不管怎样都没有被父调度器转发,并且通过延迟其传播,较好的项目可以同时被接收或被该调度器确定,并且该方法可去除一种实现方式引入的竞争状况。
如果在过程块366中确定调度器有要发送到父亲的项目,则在过程块368中,最佳项目被从接收自其每个子调度器或外部源的那些项目中选择出来,并且所选的项目被发送到父亲,并且调度状态和父状态数据结构被相应地更新。在一个实施例中,该项目总是具有与接收到的请求中所指示的相同的调度类别。在一个实施例中,该项目是父亲所需的最高优先级调度类别的项目。此外,如果项目是基于速率的项目,则速率调度数据结构被更新。在过程块370中,对于与转发到父亲的项目具有相同调度类别的替换项目的请求被发送到从其接收到发送到父亲的项目的子调度器或外部源。处理返回过程块362。
图4是用于实现分级调度器(不论是整个分级调度器还是只是其调度器或调度条目中的一个或多个)的示例性系统或组件400的框图。在一个实施例中,系统或组件400执行与这里所示出或以其他方式描述的流程图之一相对应的一个或多个过程。
在一个实施例中,组件400包括处理元件401(例如处理器、定制逻辑等)、存储器402、存储设备403和用于接收和发送分组、项目和/或其他信息的接口404,这些元件通常经由一个或多个通信机构409(为说明目的示为总线)耦合。组件400的各种实施例可包括更多或更少元件。组件400的操作通常由利用存储器402和存储设备403执行一个或多个调度任务或过程的处理元件401所控制。存储器402是一类计算机可读介质,并且通常包括随机访问存储器(RAM)、只读存储器(ROM)、闪存、集成电路和/或其他存储器组件。存储器402通常存储将被处理元件401执行的计算机可执行指令和/或由处理元件401操纵以实现根据本发明的功能的数据。存储设备403是另一类计算机可读介质,通常包括固态存储介质、盘驱动器、磁盘、联网服务、磁带驱动器和其他存储设备。存储设备403通常存储将被处理元件401执行的计算机可执行指令和/或由处理元件401操纵以实现根据本发明的功能的数据。
图5A被用于描述一个实施例中的最低保证调度速率的传播。在图示示例中,示出了用于调度通常包括一个或多个不同调度类别(例如高优先级流量、传播性最低保证调度速率流量、非传播性最低保证调度速率、额外速率流量等等)的流量的调度条目581、591和592。一个实施例在父调度器的父调度条目和其子调度器(及其相应条目)之间提供了与不同类别的流量相对应的多个调度通道,以使项目能够通过调度分级结构传播而不会被阻挡或等待在调度队列等等中的优先级较低的流量之后。
此外,如前所述,一个实施例使用递归下降技术来识别下一个项目,而不是实际地通过多个调度器传播项目。注意,每个调度器通常以父调度器的单个父调度条目或外部客户端作为其父亲,并且具有一个或多个子调度器和/或外部项目源。在使用分级调度器的实施例中,调度器及其调度条目的数目以及它们的布置通常是基于实施例的应用需求来确定的。在一个实施例中,调度器以父调度器的多个调度条目作为其父亲,例如(但不限于)对于每个调度类别有一个调度条目-但父调度条目通常将会共享一个或多个调度参数(例如最大速率)(但在一个实施例中不是这样)。图5A中示出的是包括父调度条目581的父调度器580、包括子调度条目591和592的子调度器590,以及用于将项目转发到父调度器580的父调度条目581的调度转发机构593。如图所示,假定子调度条目591具有等于A1的最低保证调度速率,子调度条目592具有等于A2的最低保证调度速率。这些最低保证调度速率被传播,以使父调度条目581基于子调度器590的子调度条目591和592的最低保证调度速率获取传播性最低保证调度速率(其中子调度条目591和592的最低保证调度速率本身可能也是所获取的传播性最低保证调度速率)。
在图5A所示的示例中,父调度条目581使用基于子调度条目591和592的传播性最低保证调度速率的聚集(例如A1+A2,或其某个分数、倍数或函数)的速率作为其传播性最低保证调度速率。在一个实施例中,父调度条目581的传播性最低保证调度速率等于(例如精确等于或者存在给定的舍入或存储误差但从效果上来说等于,等等)子调度器590的子调度条目591和592的传播性最低保证调度速率的总和。在一个实施例中,父调度条目581的传播性最低保证调度速率大于子调度条目591和592的传播性最低保证调度速率的总和。在一个实施例中,此聚集只包括用于积极地调度传播性最低保证调度速率型流量的子调度条目591和592的传播性最低保证调度速率。
图5B扩展了此示例,以示出传播性最低保证调度速率可传播过若干层调度器。图5B中示出的是调度条目571、通常包括在同一调度器中的调度条目581和582、通常包括在同一调度器中的调度条目591和592以及通常包括在同一调度器中的调度条目593和594。由于此图示出了传播性最低保证调度速率的传播和项目在调度条目571-594之间的流动,因此为了易于展现没有示出调度条目的571-594的划分。
如图所示,最低层调度条目591-594中的每个调度条目调度来自队列595-598的项目并将其转发到其各自的父调度条目581或582,父调度条目581或582又将项目调度和转发到其父调度条目571。这些传播性最低保证调度速率被从子调度条目传播到其各自的父调度条目,这些父调度条目用基于其子调度条目的传播性最低保证调度速率的聚集的速率作为其传播性最低保证调度速率。例如,如图所示,调度条目571使用基于传播性最低保证调度速率A1、A2、A3和A4(即从其子调度条目581-582继承来的传播性最低保证调度速率,而子调度条目581-582又从其子调度条目591-592和593-594继承)的聚集的速率作为其传播性最低保证调度速率。在一个实施例中,此聚集只包括用于积极地调度传播性最低保证调度速率型流量的子调度条目591和592的传播性最低保证调度速率。
图6示出了一个实施例中传播性最低保证调度速率的使用。图中示出的是包括调度项目转发机构609和调度条目601-603的父调度器600,其中调度条目601-603中的每一个通常对应于一个子调度器(例如子调度器610和其他未示出的)并且具有针对每个调度类别的项目的存储装置,还示出了包括调度项目转发机构619和调度条目611-613的子调度器610,其中调度条目611-613中的每一个通常对应于一个子调度器(未示出)并且具有针对于每个调度类别(例如高优先级流量、低优先级流量、基于速率的流量、传播性最低保证调度速率流量、非传播性最低保证调度速率流量或匹配实施例应用需求的任何类别)的项目的存储装置。通过按接收自不同子调度器的调度类别隔离项目,调度器能够能将不同类型或优先级的流量在其他流量之前传播,即使这种流量被较早接收到也是如此。
基于父调度器600的需求,子调度器610的调度项目转发机构619选择和转发由其调度条目611-613之一所识别的相应的最佳项目,其中调度条目611-613中的每一个已经独立地从其所有存储的各种调度类别的项目中识别出了下一个最佳项目。类似地,父调度器600的调度项目转发机构609选择由其调度条目601-603之一所识别的相应的最佳项目,其中调度条目601-603中的每一个已经独立地从其所有存储的各种调度类别的项目中识别出了下一个最佳项目。任何类型的调度机构(例如使用日历调度、DRR或其他调度机构)都可被用来从接收自其子调度器或外部源的项目中识别最佳项目。
图7是示出在一个实施例中被调度和/或调度器用来调度来自多个调度类的项目的过程的流程图,所述多个调度类包括高优先级、传播性和/或非传播性最低保证调度速率和额外速率调度类别。处理开始于过程块700。如果在过程块702中确定至少一个优先级项目可用于转发,则在过程块703中,最佳优先级项目被选择并被转发到其父亲,并且相应的调度器通常被更新以反映该项目的转发,所述选择通常基于公平仲裁过程。
否则,如果在过程块704中确定至少一个最低保证调度速率可用于转发,则在过程块705中,最佳保证最低速率项目被选择并被转发到其父亲,并且相应的调度器通常被更新以反映该项目的转发。否则,如果在过程块706中确定至少一个额外速率项目可用于转发,则在过程块707中,最佳额外速率项目被选择并被转发到其父亲,并且相应的调度器通常被更新以反映该项目的转发。处理返回过程块702以继续转发和调度更多项目。
鉴于本发明的原理可应用到很多可能的实施例,将意识到,这里针对附图/图示描述的实施例及其多个方面仅仅是示例性的,而不应被理解为对本发明范围的限制。例如,本领域技术人员将发现,很多过程块操作可被重新排序,以在其他操作之前、之后执行或与其他操作基本同时执行。而且,很多不同形式的数据结构可被用在各个实施例中。这里描述的发明设想可以落入所附权利要求及其等同物的范围内的所有这样的实施例。
Claims (26)
1.一种用于调度项目的分级调度器,其中在所述分级调度器的调度层之间传播最低保证调度速率,该分级调度器包括:
父调度器,包括用于调度流量的父调度条目,所述父调度条目所调度的流量包括接收自子调度器的传播性最低保证调度速率类型的项目;
所述子调度器,包括用于调度流量的多个子调度条目,所述子调度条目所调度的流量包括所述传播性最低保证调度速率类型的项目,所述多个子调度条目中的每一个具有与其自身相关联的一传播性最低保证调度速率以便调度其流量;
其中所述父调度条目与父传播性最低保证调度速率相关联以便调度其流量,其中对于所述传播性最低保证调度速率类型的项目,每个所述子调度条目的传播性最低保证调度速率被传播到所述父调度器,并且所述父传播性最低保证调度速率是基于与所述多个子调度条目相关联的所述传播性最低保证调度速率的聚集而确定的。
2.如权利要求1所述的分级调度器,其中所述项目包括分组或与所述分组相对应的指示。
3.如权利要求2所述的分级调度器,其中由所述子调度器进行的所述流量调度包括基于所述分组中的相应分组的大小,针对与所述多个子调度条目中的特定调度条目相对应的要转发的每个分组,更新所述特定调度条目。
4.如权利要求2所述的分级调度器,其中由所述父调度器进行的所述流量调度包括基于所述分组中的相应分组的大小,针对与所述父调度条目相对应的要转发的每个分组,更新所述父调度条目。
5.如权利要求1所述的分级调度器,其中所述多个子调度条目中的每一个被调度以一个最大流量速率,该最大流量速率等于其相应的所述传播性最低保证调度速率。
6.如权利要求5所述的分级调度器,其中所述多个子调度条目中的每一个中的所述传播性最低保证调度速率类型的流量被调度以一个最大流量速率,该最大流量速率等于其所述相应传播性最低保证调度速率。
7.如权利要求1所述的分级调度器,其中所述父调度器包括针对多个调度类别中的每一个的存储装置,所述多个调度类别包括所述传播性最低保证调度速率类型。
8.如权利要求7所述的分级调度器,其中与所述传播性最低保证调度速率类型相对应的项目被以所述父传播性最低保证调度速率来调度。
9.如权利要求7所述的分级调度器,其中所述多个调度类别包括非传播性最低保证调度速率类型。
10.如权利要求7所述的分级调度器,其中所述多个调度类别包括高优先级流量类别,该高优先级流量类别将被所述父调度器和所述子调度器以高于所述传播性最低保证调度速率类型的流量的调度优先级来调度。
11.如权利要求1所述的分级调度器,其中所述父传播性最低保证调度速率等于与所述多个子调度条目相关联的所述传播性最低保证调度速率的总和。
12.如权利要求1所述的分级调度器,其中所述父传播性最低保证调度速率等于与积极地调度所述传播性最低保证调度速率类型的流量的多个子调度条目相关联的所述传播性最低保证调度速率的总和。
13.如权利要求12所述的分级调度器,其中所述父传播性最低保证调度速率不包括与所述多个子调度条目中没有积极地调度所述传播性最低保证调度速率类型的流量的特定一个子调度条目相关联的所述传播性最低保证调度速率。
14.一种用于调度项目的分级调度器,其中在所述分级调度器的调度层之间传播最低保证调度速率,该分级调度器包括:根调度器和一层或多层调度器,所述一层或多层中的每一层包括至少一个调度器,所述分级调度器中的每个调度器包括一个或多个调度条目,所述一层或多层调度器中的每个调度器被配置为将所选被调度项目传输到其在所述分级调度器中的父调度器;其中所述分级调度器的具有一个或多个子调度器的每个特定调度条目被配置为维护接收自所述子调度器的多个不同调度类别的项目;其中所述分级调度器的具有一个或多个子调度器的每个特定调度器被配置为基于所述项目的所述不同调度类别来对所述项目到其父调度器或到调度客户端的发送进行调度;其中所述不同调度类别包括传播性最低保证调度速率类型,并且多个所述调度条目中的每一个具有与其自身相关联的一个传播性最低保证调度速率;其中对于所述传播性最低保证调度速率类型的项目,每个子调度条目的传播性最低保证调度速率被传播到父调度器,并且父调度条目的传播性最低保证调度速率是基于所述父调度条目的直接子调度器的每个调度条目的传播性最低保证调度速率的聚集而确定的。
15.如权利要求14所述的分级调度器,其中所述直接子调度器的每个调度条目的最大流量速率等于其相应的所述传播性最低保证调度速率。
16.如权利要求14所述的分级调度器,其中父调度条目的所述传播性最低保证调度速率等于其直接子调度器的每个子调度条目的所述传播性最低保证调度速率的总和。
17.如权利要求14所述的分级调度器,其中所述不同调度类别还包括高优先级流量类型;其中与所述高优先级流量类型相对应的项目在与所述传播性最低保证调度速率类型相对应的项目之前被转发。
18.如权利要求14所述的分级调度器,其中所述项目包括分组或与所述分组相对应的指示。
19.如权利要求18所述的分级调度器,其中所述项目调度包括基于所述分组中的相应分组的大小,针对与所述调度条目中的特定调度条目相对应的要转发的每个分组,更新所述特定调度条目。
20.如权利要求14所述的分级调度器,其中所述父调度条目的所述传播性最低保证调度速率等于其直接子调度器的积极地调度所述传播性最低保证调度速率类型的流量的子调度条目中的每一个的所述传播性最低保证调度速率的总和。
21.如权利要求20所述的分级调度器,其中所述父调度条目的所述传播性最低保证调度速率不包括与其直接子调度器的子调度条目中未积极地调度所述传播性最低保证调度速率类型的流量的特定一个子调度条目相关联的所述传播性最低保证调度速率。
22.如权利要求14所述的分级调度器,其中所述调度器的直接子调度条目中每一个的所述传播性最低保证调度速率的聚集不包括该调度器的未积极地调度所述传播性最低保证调度速率类型的流量的直接子调度条目中每一个的所述传播性最低保证调度速率。
23.一种用于调度多个不同调度类别的项目的分级调度器,其中在所述分级调度器的调度层之间传播最低保证调度速率,所述多个不同调度类别包括传播性最低保证调度速率类别和基于额外速率的类别,所述分级调度器包括:
多个子调度器;以及
包括多个调度条目和调度机构的父调度器,所述多个调度条目中的每一个对应于多个子调度器中的不同的一个并被配置为从该子调度器接收项目,所述调度机构被配置为识别来自所述调度条目的最佳被调度项目;
其中所述传播性最低保证调度速率类别的项目和所述基于额外速率的类别的项目在所述多个调度条目中的每一个中共享公共的最低保证速率;并且其中与所述多个调度条目中的特定调度条目相关联的对应于所述传播性最低保证调度速率类别的项目在与所述特定调度条目相关联的对应于所述基于额外速率的类别的项目之前被调度。
24.如权利要求23所述的分级调度器,其中所述传播性最低保证调度速率类别的项目和所述基于额外速率的类别的项目在所述多个调度条目中的每一个中共享公共的最大速率。
25.如权利要求23所述的分级调度器,其中所述多个不同调度类别包括优先级调度类别;并且其中与所述特定调度条目相关联的对应于所述优先级调度类别的项目在与所述传播性最低保证调度速率和基于额外速率的调度类别相对应的项目之前被调度。
26.如权利要求23所述的分级调度器,其中所述多个不同调度类别包括优先级调度类别;并且其中与所述优先级调度类别相对应的项目在与所述传播性最低保证调度速率和基于额外速率的调度类别相对应的项目之前被调度。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/913,055 US7876763B2 (en) | 2004-08-05 | 2004-08-05 | Pipeline scheduler including a hierarchy of schedulers and multiple scheduling lanes |
US10/913,055 | 2004-08-05 | ||
US11/022,246 US7522609B2 (en) | 2004-01-14 | 2004-12-23 | Propagation of minimum guaranteed scheduling rates among scheduling layers in a hierarchical schedule |
US11/022,246 | 2004-12-23 | ||
USPCT/US2005/024066 | 2005-07-07 | ||
PCT/US2005/024066 WO2006023141A2 (en) | 2004-08-05 | 2005-07-07 | Hierarchal scheduler with multiple scheduling lanes |
PCT/US2005/027922 WO2006017753A2 (en) | 2004-08-05 | 2005-08-05 | Propagation of minimum guaranteed scheduling rates |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1989738A CN1989738A (zh) | 2007-06-27 |
CN1989738B true CN1989738B (zh) | 2012-04-18 |
Family
ID=35757339
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005800226632A Active CN1981484B (zh) | 2004-08-05 | 2005-07-07 | 具有多条调度巷道的流水线调度器及用在其中的调度方法 |
CN2005800242194A Active CN1989738B (zh) | 2004-08-05 | 2005-08-05 | 最低保证调度速率的传播 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005800226632A Active CN1981484B (zh) | 2004-08-05 | 2005-07-07 | 具有多条调度巷道的流水线调度器及用在其中的调度方法 |
Country Status (5)
Country | Link |
---|---|
US (2) | US7876763B2 (zh) |
EP (1) | EP1774714B1 (zh) |
CN (2) | CN1981484B (zh) |
CA (1) | CA2575869C (zh) |
WO (1) | WO2006023141A2 (zh) |
Families Citing this family (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7417999B1 (en) | 2004-01-14 | 2008-08-26 | Cisco Technology, Inc. | Priority propagation in a multi-level scheduling hierarchy |
US7522609B2 (en) * | 2004-01-14 | 2009-04-21 | Cisco Technology, Inc | Propagation of minimum guaranteed scheduling rates among scheduling layers in a hierarchical schedule |
US7646779B2 (en) * | 2004-12-23 | 2010-01-12 | Intel Corporation | Hierarchical packet scheduler using hole-filling and multiple packet buffering |
US7599381B2 (en) * | 2004-12-23 | 2009-10-06 | Cisco Technology, Inc. | Scheduling eligible entries using an approximated finish delay identified for an entry based on an associated speed group |
US7525962B2 (en) * | 2004-12-27 | 2009-04-28 | Intel Corporation | Reducing memory access bandwidth consumption in a hierarchical packet scheduler |
US7460544B2 (en) * | 2004-12-29 | 2008-12-02 | Intel Corporation | Flexible mesh structure for hierarchical scheduling |
US7843940B2 (en) * | 2005-06-01 | 2010-11-30 | Cisco Technology, Inc. | Filling token buckets of schedule entries |
US7706386B2 (en) * | 2005-10-26 | 2010-04-27 | Cisco Technology, Inc. | Fast 2-key scheduler |
US8018845B2 (en) * | 2006-01-25 | 2011-09-13 | Cisco Technology, Inc | Sampling rate-limited traffic |
US7873047B2 (en) * | 2006-04-19 | 2011-01-18 | Motorola, Inc. | Method and apparatus for quality of service for packet communications |
US7801164B2 (en) * | 2006-04-27 | 2010-09-21 | Agere Systems Inc. | Two dimensional timeout table mechanism with optimized delay characteristics |
US8077611B2 (en) * | 2006-07-27 | 2011-12-13 | Cisco Technology, Inc. | Multilevel coupled policer |
US8082274B2 (en) * | 2007-06-28 | 2011-12-20 | Microsoft Corporation | Scheduling application allowing freeform data entry |
CN101755423B (zh) * | 2007-07-24 | 2013-01-09 | 摩托罗拉移动公司 | 用于在通信网络中发射数据分组的方法和系统 |
US7729242B2 (en) * | 2007-12-13 | 2010-06-01 | Cisco Technology, Inc. | 3-level queuing scheduler supporting flexible configuration and etherchannel |
US8566829B1 (en) * | 2008-01-30 | 2013-10-22 | Emc Corporation | Cooperative multi-level scheduler for virtual engines |
FR2934108B1 (fr) * | 2008-07-21 | 2010-09-17 | Commissariat Energie Atomique | Methode d'ordonnancement de paquets |
US20100097932A1 (en) * | 2008-10-15 | 2010-04-22 | Viasat, Inc. | Satellite traffic and congestion-based upstream scheduler |
TWI396443B (zh) * | 2008-12-22 | 2013-05-11 | Ind Tech Res Inst | 應用於網路串流之影音控制回應及頻寬調適方法與使用該方法之伺服器 |
US8848723B2 (en) | 2010-05-18 | 2014-09-30 | Lsi Corporation | Scheduling hierarchy in a traffic manager of a network processor |
US9727508B2 (en) | 2009-04-27 | 2017-08-08 | Intel Corporation | Address learning and aging for network bridging in a network processor |
US8949578B2 (en) | 2009-04-27 | 2015-02-03 | Lsi Corporation | Sharing of internal pipeline resources of a network processor with external devices |
US9160684B2 (en) | 2009-04-27 | 2015-10-13 | Intel Corporation | Dynamic updating of scheduling hierarchy in a traffic manager of a network processor |
US8576862B2 (en) | 2010-05-18 | 2013-11-05 | Lsi Corporation | Root scheduling algorithm in a network processor |
US9461930B2 (en) | 2009-04-27 | 2016-10-04 | Intel Corporation | Modifying data streams without reordering in a multi-thread, multi-flow network processor |
US8869151B2 (en) | 2010-05-18 | 2014-10-21 | Lsi Corporation | Packet draining from a scheduling hierarchy in a traffic manager of a network processor |
US8843682B2 (en) | 2010-05-18 | 2014-09-23 | Lsi Corporation | Hybrid address mutex mechanism for memory accesses in a network processor |
US8565250B2 (en) | 2010-05-18 | 2013-10-22 | Lsi Corporation | Multithreaded, superscalar scheduling in a traffic manager of a network processor |
US8873550B2 (en) | 2010-05-18 | 2014-10-28 | Lsi Corporation | Task queuing in a multi-flow network processor architecture |
US8910168B2 (en) | 2009-04-27 | 2014-12-09 | Lsi Corporation | Task backpressure and deletion in a multi-flow network processor architecture |
US8869156B2 (en) | 2010-05-18 | 2014-10-21 | Lsi Corporation | Speculative task reading in a traffic manager of a network processor |
US8547878B2 (en) | 2010-05-18 | 2013-10-01 | Lsi Corporation | Modularized scheduling engine for traffic management in a network processor |
US8949582B2 (en) | 2009-04-27 | 2015-02-03 | Lsi Corporation | Changing a flow identifier of a packet in a multi-thread, multi-flow network processor |
US8638805B2 (en) | 2010-05-18 | 2014-01-28 | Lsi Corporation | Packet draining from a scheduling hierarchy in a traffic manager of a network processor |
US8615013B2 (en) | 2010-05-18 | 2013-12-24 | Agere Systems Llc | Packet scheduling with guaranteed minimum rate in a traffic manager of a network processor |
US8837501B2 (en) | 2010-05-18 | 2014-09-16 | Lsi Corporation | Shared task parameters in a scheduler of a network processor |
US9152564B2 (en) | 2010-05-18 | 2015-10-06 | Intel Corporation | Early cache eviction in a multi-flow network processor architecture |
US8874878B2 (en) | 2010-05-18 | 2014-10-28 | Lsi Corporation | Thread synchronization in a multi-thread, multi-flow network communications processor architecture |
US8869150B2 (en) | 2010-05-18 | 2014-10-21 | Lsi Corporation | Local messaging in a scheduling hierarchy in a traffic manager of a network processor |
US8619787B2 (en) | 2010-05-18 | 2013-12-31 | Lsi Corporation | Byte-accurate scheduling in a network processor |
US8160911B2 (en) * | 2009-05-19 | 2012-04-17 | Microsoft Corporation | Project management applications utilizing summary tasks for top-down project planning |
CN102340443B (zh) * | 2010-07-21 | 2015-07-22 | 中兴通讯股份有限公司 | 包交换网络中流量调度的装置和方法 |
US8948043B2 (en) * | 2010-09-02 | 2015-02-03 | At&T Intellectual Property I, L.P. | Method and apparatus for normalizing cellular communications network data |
CN102763086A (zh) * | 2012-01-18 | 2012-10-31 | 华为技术有限公司 | 分布式计算任务处理系统和任务处理方法 |
US9106574B2 (en) * | 2012-12-27 | 2015-08-11 | Cisco Technology, Inc. | Supporting quality of service differentiation using a single shared buffer |
US9276867B2 (en) | 2013-06-28 | 2016-03-01 | Cisco Technology, Inc. | Hierarchical scheduling system with layer bypass including updating scheduling information of a scheduling layer for each item whether or not it bypasses the scheduling layer |
CN104348751B (zh) * | 2013-07-31 | 2019-03-12 | 中兴通讯股份有限公司 | 虚拟输出队列授权管理方法及装置 |
US9401860B2 (en) * | 2013-08-09 | 2016-07-26 | Citrix Systems, Inc. | High performance quality-of-service packet scheduling for multiple packet processing engines |
US9729611B2 (en) | 2014-10-26 | 2017-08-08 | Cisco Technology, Inc. | Method and system for ABR recording |
WO2016078556A1 (en) * | 2014-11-17 | 2016-05-26 | Mediatek Inc. | Energy efficient multi-cluster system and its operations |
WO2016084394A1 (ja) * | 2014-11-27 | 2016-06-02 | パナソニックIpマネジメント株式会社 | 撮像装置 |
US9984037B1 (en) | 2015-04-27 | 2018-05-29 | Synaptic Engines, Llc | Scheduler for a fine grained graph processor |
US9804895B2 (en) * | 2015-08-28 | 2017-10-31 | Vmware, Inc. | Constrained placement in hierarchical randomized schedulers |
CN110247859B (zh) * | 2019-06-17 | 2022-04-19 | 哈工大机器人(合肥)国际创新研究院 | 一种基于airt-ros节点的数据发送方法及装置 |
US11683276B2 (en) | 2021-05-20 | 2023-06-20 | Cisco Technology, Inc. | Quasi-output queue behavior of a packet switching device achieved using virtual output queue ordering independently determined for each output queue |
CN113067778B (zh) * | 2021-06-04 | 2021-09-17 | 新华三半导体技术有限公司 | 一种流量管理方法及流量管理芯片 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5850399A (en) * | 1997-04-04 | 1998-12-15 | Ascend Communications, Inc. | Hierarchical packet scheduling method and apparatus |
CN1338168A (zh) * | 1998-12-22 | 2002-02-27 | 鲍尔·埃克斯有限公司 | 用于带宽分配的分布式分级调度与仲裁 |
US6412000B1 (en) * | 1997-11-25 | 2002-06-25 | Packeteer, Inc. | Method for automatically classifying traffic in a packet communications network |
US6560230B1 (en) * | 1999-02-01 | 2003-05-06 | Redback Networks Inc. | Packet scheduling methods and apparatus |
US6691312B1 (en) * | 1999-03-19 | 2004-02-10 | University Of Massachusetts | Multicasting video |
Family Cites Families (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5751708A (en) * | 1995-10-25 | 1998-05-12 | Lucent Technologies Inc. | Access method for broadband and narrowband networks |
US6130878A (en) * | 1995-12-27 | 2000-10-10 | Compaq Computer Corporation | Method and apparatus for rate-based scheduling using a relative error approach |
US5892766A (en) * | 1996-02-22 | 1999-04-06 | Fujitsu, Ltd. | Method and apparatus for coordinating access to an output of a routing device in a packet switching network |
EP0798897A3 (en) * | 1996-03-26 | 1999-07-14 | Digital Equipment Corporation | Method and apparatus for relative error scheduling using discrete rates and proportional rate scaling |
US6064650A (en) * | 1996-06-27 | 2000-05-16 | Xerox Corporation | Rate shaping in per-flow output queued routing mechanisms having output links servicing multiple physical layers |
US5864557A (en) * | 1996-09-25 | 1999-01-26 | Thomson Multimedia S.A. | Method and apparatus for opportunistically transferring data in a packet stream encoder |
US5844890A (en) * | 1997-03-25 | 1998-12-01 | International Business Machines Corporation | Communications cell scheduler and scheduling method for providing proportional use of network bandwith |
US5864540A (en) * | 1997-04-04 | 1999-01-26 | At&T Corp/Csi Zeinet(A Cabletron Co.) | Method for integrated traffic shaping in a packet-switched network |
US6643293B1 (en) * | 1997-09-05 | 2003-11-04 | Alcatel Canada Inc. | Virtual connection shaping with hierarchial arbitration |
US6408005B1 (en) * | 1997-09-05 | 2002-06-18 | Nec Usa, Inc. | Dynamic rate control scheduler for ATM networks |
US6483839B1 (en) * | 1998-03-18 | 2002-11-19 | Conexant Systems, Inc. | Apparatus and method for scheduling multiple and simultaneous traffic in guaranteed frame rate in ATM communication system |
US6389019B1 (en) * | 1998-03-18 | 2002-05-14 | Nec Usa, Inc. | Time-based scheduler architecture and method for ATM networks |
US6198723B1 (en) * | 1998-04-14 | 2001-03-06 | Paxonet Communications, Inc. | Asynchronous transfer mode traffic shapers |
US6532213B1 (en) * | 1998-05-15 | 2003-03-11 | Agere Systems Inc. | Guaranteeing data transfer delays in data packet networks using earliest deadline first packet schedulers |
ES2235449T3 (es) * | 1998-07-31 | 2005-07-01 | Alcatel | Metodo, planificador, memoria intermedia inteligente, procesador y sistema de telecomunicaciones para compartir un ancho de banda disponible. |
CA2245367A1 (en) | 1998-08-19 | 2000-02-19 | Newbridge Networks Corporation | Two-component bandwidth scheduler having application in multi-class digital communication systems |
US6449650B1 (en) * | 1999-02-01 | 2002-09-10 | Redback Networks Inc. | Methods and apparatus for deploying quality of service policies on a data communication network |
US6477168B1 (en) * | 1999-02-03 | 2002-11-05 | International Business Machines Corporation | Cell/frame scheduling method and communications cell/frame scheduler |
US6430154B1 (en) * | 1999-08-13 | 2002-08-06 | Fujitsu Network Communications, Inc. | Supporting multiple application traffic types over connection oriented networks |
US6891834B1 (en) * | 1999-09-09 | 2005-05-10 | Avici Systems | Apparatus and method for packet scheduling |
CA2393740A1 (en) * | 1999-12-08 | 2001-06-14 | The University Of British Columbia | Weighted fair queuing scheduler |
US6909691B1 (en) * | 2000-08-07 | 2005-06-21 | Ensim Corporation | Fairly partitioning resources while limiting the maximum fair share |
WO2002015520A1 (en) * | 2000-08-17 | 2002-02-21 | Redback Networks Inc. | Packet scheduling methods and apparatus |
US6834053B1 (en) * | 2000-10-27 | 2004-12-21 | Nortel Networks Limited | Distributed traffic scheduler |
US6836475B2 (en) * | 2000-12-01 | 2004-12-28 | Nokia Corporation | Method and apparatus for traffic shaping for IP router queues/egress |
US7065089B2 (en) * | 2001-12-21 | 2006-06-20 | Alcatel Canada Inc. | Method and system for mediating traffic between an asynchronous transfer mode (ATM) network and an adjacent network |
JP2003229877A (ja) * | 2002-01-31 | 2003-08-15 | Fujitsu Ltd | ダイナミック帯域割当てにより可変レートトラヒックを制御する網側伝送装置および方法 |
JP3872716B2 (ja) * | 2002-04-30 | 2007-01-24 | 富士通株式会社 | パケット出力制御装置 |
AU2002314419A1 (en) * | 2002-06-27 | 2004-01-19 | Nokia Corporation | Self-adaptive scheduling method and network element |
US7336662B2 (en) * | 2002-10-25 | 2008-02-26 | Alcatel Lucent | System and method for implementing GFR service in an access node's ATM switch fabric |
CN1853379A (zh) * | 2002-12-31 | 2006-10-25 | 肯奈克斯特公司 | 在异步传输模式信元传输中提供服务质量的系统和方法 |
US6876952B1 (en) * | 2003-04-30 | 2005-04-05 | Cisco Technology, Inc. | Methods and apparatus for maintaining queues |
US7472159B2 (en) * | 2003-05-15 | 2008-12-30 | International Business Machines Corporation | System and method for adaptive admission control and resource management for service time guarantees |
US7277448B1 (en) * | 2003-06-27 | 2007-10-02 | Cisco Technology, Inc. | Hierarchical scheduler inter-layer eligibility deferral |
US20050047415A1 (en) * | 2003-08-28 | 2005-03-03 | Radhakrishna Channegowda | Data traffic manager and method therefor |
US20050047425A1 (en) * | 2003-09-03 | 2005-03-03 | Yonghe Liu | Hierarchical scheduling for communications systems |
US7417999B1 (en) * | 2004-01-14 | 2008-08-26 | Cisco Technology, Inc. | Priority propagation in a multi-level scheduling hierarchy |
US7522609B2 (en) * | 2004-01-14 | 2009-04-21 | Cisco Technology, Inc | Propagation of minimum guaranteed scheduling rates among scheduling layers in a hierarchical schedule |
US7304944B2 (en) * | 2004-05-03 | 2007-12-04 | Lucent Technologies Inc. | Unified scheduling and queueing architecture for a multiservice switch |
US7675926B2 (en) * | 2004-05-05 | 2010-03-09 | Cisco Technology, Inc. | Hierarchical QoS behavioral model |
-
2004
- 2004-08-05 US US10/913,055 patent/US7876763B2/en not_active Expired - Fee Related
-
2005
- 2005-03-03 US US11/070,932 patent/US8077618B2/en active Active
- 2005-07-07 CN CN2005800226632A patent/CN1981484B/zh active Active
- 2005-07-07 EP EP05764490A patent/EP1774714B1/en active Active
- 2005-07-07 WO PCT/US2005/024066 patent/WO2006023141A2/en active Application Filing
- 2005-07-07 CA CA2575869A patent/CA2575869C/en not_active Expired - Fee Related
- 2005-08-05 CN CN2005800242194A patent/CN1989738B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5850399A (en) * | 1997-04-04 | 1998-12-15 | Ascend Communications, Inc. | Hierarchical packet scheduling method and apparatus |
US6412000B1 (en) * | 1997-11-25 | 2002-06-25 | Packeteer, Inc. | Method for automatically classifying traffic in a packet communications network |
CN1338168A (zh) * | 1998-12-22 | 2002-02-27 | 鲍尔·埃克斯有限公司 | 用于带宽分配的分布式分级调度与仲裁 |
US6560230B1 (en) * | 1999-02-01 | 2003-05-06 | Redback Networks Inc. | Packet scheduling methods and apparatus |
US6691312B1 (en) * | 1999-03-19 | 2004-02-10 | University Of Massachusetts | Multicasting video |
Also Published As
Publication number | Publication date |
---|---|
CN1989738A (zh) | 2007-06-27 |
US8077618B2 (en) | 2011-12-13 |
US20060029079A1 (en) | 2006-02-09 |
EP1774714A4 (en) | 2010-06-02 |
CA2575869C (en) | 2011-08-30 |
WO2006023141A2 (en) | 2006-03-02 |
CA2575869A1 (en) | 2006-03-02 |
CN1981484A (zh) | 2007-06-13 |
CN1981484B (zh) | 2010-12-01 |
US7876763B2 (en) | 2011-01-25 |
US20060029080A1 (en) | 2006-02-09 |
EP1774714B1 (en) | 2012-09-05 |
EP1774714A2 (en) | 2007-04-18 |
WO2006023141A3 (en) | 2006-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1989738B (zh) | 最低保证调度速率的传播 | |
US8325736B2 (en) | Propagation of minimum guaranteed scheduling rates among scheduling layers in a hierarchical schedule | |
US8259738B2 (en) | Channel service manager with priority queuing | |
US8149846B2 (en) | Data processing system and method | |
US20060274779A1 (en) | Filling token buckets of schedule entries | |
CN100466593C (zh) | 一种支持多业务的综合队列调度的实现方法 | |
Khabbaz et al. | Modelling and analysis of a novel deadline-aware scheduling scheme for cloud computing data centers | |
US7385987B1 (en) | Scheduling system and method for multi-level class hierarchy | |
CN109450817B (zh) | 时间触发以太网多业务消息发送的混合调度方法 | |
US8467401B1 (en) | Scheduling variable length packets | |
Nolte et al. | Server-based scheduling of the CAN bus | |
Wang et al. | Integrating priority with share in the priority-based weighted fair queuing scheduler for real-time networks | |
US7599381B2 (en) | Scheduling eligible entries using an approximated finish delay identified for an entry based on an associated speed group | |
EP1774721B1 (en) | Propagation of minimum guaranteed scheduling rates | |
US7583678B1 (en) | Methods and apparatus for scheduling entities using a primary scheduling mechanism such as calendar scheduling filled in with entities from a secondary scheduling mechanism | |
Victoria et al. | Efficient bandwidth allocation for packet scheduling | |
Hirayama | Analysis of multiclass feedback queues and its application to a packet scheduling problem | |
KR20070060552A (ko) | 적응 라운드 로빈을 이용한 패킷 스케쥴링 방법 및 장치 | |
KR100757194B1 (ko) | 자원 이용도가 높고 구현 복잡성이 낮은 공정 패킷스케줄링 장치 | |
Graffi et al. | Taxonomy of message scheduling strategies in context of peer-to-peer scenarios | |
Liu et al. | Modeling and performance analysis of scheduling system for cloud service based on stochastic network calculus | |
Ke et al. | Multiple services scheduling with priority queuing model | |
CN112929294A (zh) | 一种报文调度方法及装置 | |
Nassar et al. | Delay analysis of a multimedia ATM multiplexer with homogeneous arrivals | |
Zhang et al. | Modeling real-time wormhole networks by queuing theory |
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 | ||
CI01 | Correction of invention patent gazette |
Correction item: Figure Correct: Correct False: Error Number: 16 Volume: 28 |
|
CI03 | Correction of invention patent |
Correction item: Figure Correct: Correct False: Error Number: 16 Page: Description Volume: 28 |
|
ERR | Gazette correction |
Free format text: CORRECT: FIGURE; FROM: ERROR TO: CORRECT |