CN1938992B - 用于加权随机调度的方法和装置 - Google Patents

用于加权随机调度的方法和装置 Download PDF

Info

Publication number
CN1938992B
CN1938992B CN2005800104226A CN200580010422A CN1938992B CN 1938992 B CN1938992 B CN 1938992B CN 2005800104226 A CN2005800104226 A CN 2005800104226A CN 200580010422 A CN200580010422 A CN 200580010422A CN 1938992 B CN1938992 B CN 1938992B
Authority
CN
China
Prior art keywords
request
output
grouping
input
outputs
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
Application number
CN2005800104226A
Other languages
English (en)
Other versions
CN1938992A (zh
Inventor
瑞娜·帕尼格拉海
艾瓦斯·宾·内马特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cisco Technology Inc
Original Assignee
Cisco Technology Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Cisco Technology Inc filed Critical Cisco Technology Inc
Publication of CN1938992A publication Critical patent/CN1938992A/zh
Application granted granted Critical
Publication of CN1938992B publication Critical patent/CN1938992B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • H04L49/254Centralised controller, i.e. arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/205Quality of Service based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3045Virtual queuing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

加权随机调度被执行,其尤其可以应用到分组交换***。针对多个交换机输入中的每个特定输入,通过随机选择该特定输入要向其发送一个或多个分组的输出之一来生成向交换机的输出之一发送分组的请求。针对己对其生成一个或多个请求的每个不同输出,准予请求之一。分组在与被准予的请求相对应的输入和输出之间发送。加权随机选择通常是基于多个输入中的相应输入向多个输出中的每个输出发送的分组或字节的数目、多个输入中的相应输入过去向多个输出中的每个输出发送分组的次数,和/或与多个输入中的相应输入向多个输出中的每个输出发送的分组相关联的服务类的来加权的。

Description

用于加权随机调度的方法和装置
技术领域
本发明尤其涉及通信和计算机***;更具体而言,本发明涉及尤其可应用到分组交换***的加权随机调度(weighted random scheduling)。
背景技术
通信工业正在快速变化以适应不断涌现的技术和不断增长的用户需求。这种对新应用和现有应用的更高性能的用户需求正在驱动通信网络和***提供商采用具有更快速度和更大容量(例如更大带宽)的网络和***。在尝试实现这些目标的过程中,很多通信提供商常用的方法是使用分组交换技术。越来越多的公共和私有通信网络正被利用各种分组技术(例如因特网协议(IP))构建和扩展。注意,本文档中描述或引用的内容除非明确指明,否则不被认为是本申请的现有技术。
诸如交换机或路由器之类的网络设备通常接收、处理和转发或丢弃分组。存在很多不同调度算法,这些算法在集中调度的输入排队型交换机(centrally scheduled,inputs queued switch)内实现百分之百的吞吐量。输入排队型交换机通常将想去往不同目的地的分组存储在单个队列中,这会导致阻塞(blocking)状况的发生。为了避免这种队列头部阻塞,很多网络设备在每个输入处具有多个虚拟输出队列(VoQ),其中一个或多个队列对应于各个网络设备的每个输出。这种体系结构需要对从这多个VoQ的分组发送进行调度(而不是在单个输入队列头部选择分组)。现有***使用基于最大权重匹配的调度算法和虚拟输出队列(VoQ)的组合。但是,这些调度算法的实际实现方式在高速硬件中实现起来非常复杂和昂贵,并且随着线路速率的不断增长变得问题越来越多。
例如,SLIP是一种用于对通过N×N交换机的分组发送进行调度的算法。在一种实现方式中,执行以下三个步骤:
1.每个不匹配的输入向所有它对其具有已排队的单元(cell)的输出发送请求。
2.如果不匹配的输出接收到任何请求,则选择在从最高选择优先级元素开始的固定循环调度中接下来出现的那一个。输出告知每个输入其请求是否被准予(granted)。当且仅当在第一次迭代的步骤3中准予被接受时,到循环调度的最高选择优先级元素的指针被递增(模N)到超出被准予的输入一个位置。该指针在随后的迭代中不再递增。
3.如果输入接收到准予,则它接受在从最高选择优先级元素开始的固定循环调度中接下来出现的那一个。到循环调度的最高选择优先级元素的指针被递增(模N)到超出接受的输出一个位置。
I-SLIP是这样一种调度算法,其包括SLIP算法的多次迭代,用于确定针对每一轮发送分组(而不是仅针对一次SLIP迭代)对分组的调度。
每个输出调度器利用旋转选择优先级在有序的竞争请求的集合中进行判定。当请求输入被准予并且该输入接受该准予时,该输入在下一单元时间中在该输出处将具有最低选择优先级。而且,在输出处无论哪个输入具有最高选择优先级,都将在每个连续的时隙期间被持续准予,直到该输入被服务为止。这确保了连接不会饥饿:输出处的最高选择优先级连接将在不超过N个单元时间中一直被输入所接受。
移动指针不仅防止了饥饿,还往往使调度器失去同步。在前一时隙匹配的每个输出将具有不同的最高选择优先级输入。因此,它们将分别准予不同的输入。考虑两个输入请求相同的两个输出的示例。最初,两个输出可以准予同一输入;在此情况下,在第一迭代中只建立一个连接。
成功的输出将递增其指针,并且在下一单元时间中,输出将不再竞争:一个输出将继续进行到准予另一输入,而另一输出将准予与之前相同的输入。这使得在下一单元时间的第一迭代中有更好的匹配。这是因为输出调度器彼此已失去同步(或“滑动”)。这使得即使对于SLIP的单次迭代也能有更高性能。
由于指针的循环移动,该算法往往在竞争连接之间提供公平的带宽分配并将减少突发。在所有输入队列都被占用的高负载情况下,这种突发减少最容易理解:该算法将轮流访问每个竞争连接,从而即使针对同一输出的单元突发到达输入,如果存在竞争流量,突发也将在时间上扩散。
在1996年3月19日授权的Nicholas W.McKeown的美国专利No.5,500,858“Method and Apparatus for Scheduling Cells in an Input-Queued Switch”中描述了一种示例实现方式,据此通过引用并入该专利。在2001年4月3日授权的Nicholas W.McKeown的美国专利No.6,212,182“Combined Unicast and Multicast Scheduling”中描述了另一种示例实现方式,据此通过引用并入该专利。
发明内容
本发明公开了用于尤其可应用到分组交换***的加权随机调度的方法、装置、数据结构、计算机可读介质、机构和手段等等。一个实施例公开了一种用于调度分组的方法,该方法包括:针对交换机的每个输入生成向交换机的多个输出之一发送分组的一个请求,其方式是通过加权随机地选择该特定输入要向其发送一个或多个分组的多个输出中的一个输出,所述加权随机选择是通过基于多个输出的按比例的权重、使得每个输出被选择的可能性对应于该输出的权重的方式来进行的;针对已对其生成一个或多个请求的每个不同输出,准予请求之一;并且在与被准予的请求相对应的输入和输出之间发送分组。
在一个实施例中,由生成请求、准予请求之一和发送分组构成的一轮在每个分组时间中至少被执行两次,其中所述分组时间对应于为在输入处接收来自外部源的分组所分配的时间量。在一个实施例中,交换机被配置为在发送分组之前建立与被准予的请求相对应的交换机输入和输出之间的连接。在一个实施例中,准予请求之一的步骤包括针对已对其生成一个或多个请求的每个输出,随机选择请求之一。一个实施例通过如下操作来执行一轮或多轮生成请求的步骤:加权随机地在所有输出或输出的子集中进行选择,并且在准予请求之一之后和在发送分组之前有选择地准予与可用带宽相对应的请求。
在一个实施例中,加权随机选择是基于多个输入中的相应输入要向多个输出中的每个输出发送的分组的数目来加权的。在一个实施例中,加权随机选择是基于多个输入中的相应输入要向多个输出中的每个输出发送的字节的数目来加权的。在一个实施例中,加权随机选择是基于多个输入中的相应输入过去向多个输出中的每个输出发送分组的次数来加权的。在一个实施例中,加权随机选择是基于与多个输入中的相应输入要向多个输出中的每个输出发送的分组相关联的服务类来加权的。在一个实施例中,加权随机选择是基于由以下项目构成的群组中的至少两个项目来加权的:(a)多个输入中的相应输入要向多个输出中的每个输出发送的分组的数目,(b)多个输入中的相应输入要向多个输出中的每个输出发送的字节的数目,(c)多个输入中的相应输入过去向多个输出中的每个输出发送分组的次数,以及(d)与多个输入中的相应输入要向多个输出中的每个输出发送的分组相关联的服务类。
附图说明
所附权利要求具体阐述了本发明的特征。从以下结合附图的详细描述中可以最充分地理解本发明及其优点,在附图中:
图1A-C和图2A-B是无限多个使用分组的加权随机调度的实施例中的一些的框图;
图3是在一个实施例中用于执行加权随机调度的组件的框图;
图4A是示出在一个实施例中执行的请求和准予的生成的图;
图4B是示出在一个实施例中执行的请求和准予的生成的图;
图5A是在一个实施例中用于执行分组的加权随机调度的过程的流程图,该过程包括在交换机输入处基于对未决分组的目的地的加权随机选择来确定请求;
图5B是在一个实施例中用于响应于接收到的请求确定准予的过程的流程图;以及
图6是在一个实施例中用于执行分组的加权随机调度的过程的流程图。
具体实施方式
本发明公开了用于尤其可应用到分组交换***的加权随机调度的方法、装置、数据结构、计算机可读介质、机构和手段等等。
这里描述的实施例包括各种元素和限制,其中没有一种元素或限制被看作必不可少的元素或限制。每个权利要求单独从整体上陈述本发明的一个方面。此外,这里描述的某些实施例可以包括(但不限于)***、网络、集成电路芯片、嵌入式处理器、ASIC、方法和包含指令的计算机可读介质等等。一个或多个***、设备、组件等等可以包括一个或多个实施例,这些实施例可以包括由相同或不同***、设备、组件等执行的权利要求的某些元素或限制。下文中描述的实施例体现了本发明的范围和精神内的各个方面和配置,其中附图示出了示例性而非限制性的配置。
这里使用的术语“分组”指的是所有类型的分组或任何其他信息或数据单元,包括(但不限于)固定长度的信元和可变长度的分组,它们中的每一个可能能够被划分成更小的分组或信元,也可能不能被划分成更小的分组或信元。这里使用的术语“分组”还指分组本身或分组指示,例如(但不限于)分组或分组头部的全部或部分、数据结构值、指针或索引,或者分组或与其相关联的信息的任何其他部分或直接或间接标识。例如,路由器通常对分组(尤其是头部)的一个或多个字段进行操作,因此分组的主体通常被存储在单独的存储器中,而分组头部***纵,并且基于对分组(即本示例中的分组头部)的处理结果,整个分组被转发或丢弃等等。另外,这些分组可以包含一种或多种类型的信息,包括(但不限于)语音、数据、视频和音频信息。术语“项目”在这里一般用来指分组或任何其他信息或数据单元或片断、设备、组件、元件或任何其他实体。短语“处理分组”和“分组处理”通常指基于分组内容(即分组头部或其他字段)执行某些步骤或动作,并且这些步骤或动作可以包括也可能不包括修改、存储、丢弃和/或转发分组和/或相关联的数据。
术语“***”在这里一般用来描述任何数目的组件、元件、子***、设备、分组交换元件、分组交换机、路由器、网络、计算机和/或通信设备或机构或者它们的组件的组合。术语“计算机”在这里一般用来描述任何数目的计算机,包括(但不限于)个人计算机、嵌入式处理元件和***、控制逻辑、ASIC、芯片、工作站、大型机等等。术语“处理元件”在这里一般用来描述任何类型的处理机构或设备,例如处理器、现场可编程门阵列、计算机等等。术语“设备”在这里一般用来描述任何类型的机构,包括计算机或***或其组件。术语“任务”和“过程”在这里一般用来描述任何类型的运行程序,包括(但不限于)计算机进程、任务、线程、执行应用、操作***、用户进程、设备驱动器、原码、机器或其他语言等等,并且可以是交互式的和/或非交互式的,在本地和/或远程执行,在前台和/或后台执行,在用户和/或操作***地址空间中执行,是库和/或独立应用的例程,并且并不局限于任何特定存储器分区技术。附图中示出的步骤、连接和信号与信息的处理(包括,但不限于,任何框图和流程图以及消息序列图)通常可以按相同或不同的串行或并行顺序执行,和/或利用不同的组件和/或进程、线程等执行,和/或在不同的连接上执行和与其他实施例中的其他功能组合起来,除非这使实施例无法工作或者明示或暗示要求某种序列(例如,对于读取值、处理值的序列,值必须在处理前先被获得,但是某些相关联的处理可能在读取操作之前、同时和/或之后执行)。此外,术语“识别”一般被用来描述用于直接或间接确认某物的任何方式或机构,这可以包括(但不限于)接收、从存储器检索、确定、限定、计算、生成等等。
此外,术语“网络”和“通信机构”在这里一般用来描述一种或多种网络、通信介质或通信***,包括(但不限于)因特网、私有或公共电话、蜂窝、无线、卫星、线缆、局域、城域和/或广域网络、线缆、电子连接、总线等等以及诸如消息传递、进程间通信、共享存储器等的内部通信机构。术语“消息”在这里一般被用来描述一条信息,该信息可以是也可以不是但通常是经由任何类型的一个或多个通信机构来传输的。
术语“存储机构”包括任何类型的存储器、存储设备或用于以任何格式保存指令或数据的其他机构。“计算机可读介质”是可扩展的术语,包括任何存储器、存储设备、存储机构和其他存储和信令机构,包括诸如网络接口卡之类的接口和设备以及其中的缓冲器,以及任何通信设备和接收与发送的信号,以及计算机***可以解释、接收和/或发送的其他当前技术和正在开发的技术。术语“存储器”包括任何随机访问存储器(RAM)、只读存储器(ROM)、闪存、集成电路和/或其他存储器组件或元件。术语“存储设备”包括任何固态存储介质、盘驱动器、磁盘、联网服务、磁带驱动器和其他存储设备。存储器和存储设备可以存储将由处理元件和/或控制逻辑执行的计算机可执行的指令,以及由处理元件和/或控制逻辑操纵的数据。术语“数据结构”是可扩展的术语,其指的是可应用到数据以帮助解释数据或对数据执行操作的任何数据元素、变量、数据结构、数据库和/或一个或多个组织方案,例如(但不限于)存储单元或设备、集合、队列、树、堆栈、列表、链表、阵列、表、指针等等。数据结构通常被保存在存储机构中。术语“指针”和“链接”一般用来标识某种用来引用或标识另一元素、组件或其他实体的机构,可以包括(但不限于)对存储器或其他存储机构或其中的位置的引用、数据结构中的索引、值等等。
术语“一个实施例”在这里用来指特定实施例,其中每次提到“一个实施例”可以指不同的实施例,并且在描述相关联的特征、元素和/或限制时对该术语的重复使用并不建立每个和所有实施例都必须包括的相关联的特征、元素和/或限制的累积集合,但是实施例通常可以包括所有这些特征、元素和/或限制。另外,短语“用于XXX的装置”通常包括包含用于执行XXX的计算机可执行指令的计算机可读介质。
另外,术语“第一”、“第二”等等通常被用来代表不同单元(例如第一元件、第二元件)。在这里使用这些术语不一定意味着某种顺序,例如一个单元或事件在另一单元或事件之前发生或到来,而是提供了用于在特定单元之间进行区分的机制。另外,单数名词的使用是非限制性的,其使用通常包括一个或多个特定事物而非仅有一个(例如,词语“存储器”的使用通常指一个或多个存储器,而不一定要指定“一个存储器或多个存储器”、“一个或多个存储器”或“至少一个存储器”等等)。此外,短语“基于x”和“响应于x”被用来指示引发或导致某事的项目x的最小集合,其中“x”是可扩展的,不一定描述了对其执行操作的项目的完整列表等等。另外,短语“耦合到”被用来指示两个元件或设备之间某种级别上的直接或间接连接,其中耦合设备修改或不修改被耦合的信号或传输的信息。术语“子集”被用来指示集合的全部或部分元素的群组。术语“子树”被用来指示树的全部或一部分。此外,术语“或”被用来表示选择相关项目中的一个或多个(包括全部)。另外,术语“包括(comprising)”与“包括(including)”“包含(containing)”或“其特征是(characterized by)”同义,它可以是包含性的或开放性的,并且不排除附加的、未提到的元素或方法步骤。
本发明公开了用于尤其可应用到分组交换***的加权随机调度的方法、装置、数据结构、计算机可读介质、机构和手段。一个实施例针对交换机的每个输入生成向交换机的输出之一发送分组的请求,其方式是通过加权随机地选择所述输出中特定输入要向其发送一个或多个分组的一个输出。对于已对其生成一个或多个请求的每个不同输出,请求之一被准予。分组在对应于被准予的请求的输出和输入之间发送。
在一个实施例中,由生成请求、准予请求之一和发送分组构成的一轮在每个分组时间中至少被执行两次,其中所述分组时间对应于为在输入处接收来自外部源的分组所分配的时间量。在一个实施例中,交换机被配置为在发送分组之前建立与被准予的请求相对应的交换机输入和输出之间的连接。在一个实施例中,准予请求之一的步骤包括针对已对其生成一个或多个请求的每个输出,随机选择请求之一。一个实施例通过如下操作来执行一轮或多轮生成请求的步骤:加权随机地在所有输出或输出的子集中进行选择,并且在准予请求之一之后和在发送分组之前有选择地准予与可用带宽相对应的请求。
在一个实施例中,加权随机选择是基于多个输入中的相应输入要向多个输出中的每个输出发送的分组的数目来加权的。在一个实施例中,加权随机选择是基于多个输入中的相应输入要向多个输出中的每个输出发送的字节的数目来加权的。在一个实施例中,加权随机选择是基于多个输入中的相应输入过去向多个输出中的每个输出发送分组的次数来加权的。在一个实施例中,加权随机选择是基于与多个输入中的相应输入要向多个输出中的每个输出发送的分组相关联的服务类来加权的。在一个实施例中,加权随机选择是基于由以下项目构成的群组中的至少两个项目来加权的:(a)多个输入中的相应输入要向多个输出中的每个输出发送的分组的数目,(b)多个输入中的相应输入要向多个输出中的每个输出发送的字节的数目,(c)多个输入中的相应输入过去向多个输出中的每个输出发送分组的次数,以及(d)与多个输入中的相应输入要向多个输出中的每个输出发送的分组相关联的服务类。
一个实施例包括多个请求生成器和耦合到这些请求生成器的一个或多个准予仲裁器。每个请求生成器都被配置为针对其在交换机的多个输入中的关联输入,加权随机地生成请求,该请求包括对交换机的输出之一的加权随机选择。一个或多个准予仲裁器被配置为准予接收自请求生成器的请求,以使得针对每个被请求的输出有一个请求被准予。输入被配置为发送与所述被准予的请求相对应的分组。
一个实施例包括这样的控制,即将交换机配置为在与所述被准予的请求相对应的所述输入和所述输出之间建立连接。在一个实施例中,一个或多个准予仲裁器针对特定输出,从对该特定输出接收的所述请求中随机地选择请求来准予。在一个实施例中,输入被配置为发送来自它们各自与被准予的请求相对应的虚拟输出队列的分组。一个实施例包括多个线路卡和包括交换机在内的交换板。在一个实施例中,虚拟输出队列位于线路卡上。在一个实施例中,虚拟输出队列位于交换板上。
在一个实施例中,加权随机选择是基于多个输入中的相应输入要向多个输出中的每个输出发送的分组或字节的数目来加权的。在一个实施例中,加权随机选择是基于多个输入中的相应输入过去向多个输出中的每个输出发送分组的次数来加权的。在一个实施例中,加权随机选择是基于与多个输入中的相应输入要向多个输出中的每个输出发送的分组相关联的服务类来加权的。在一个实施例中,加权随机选择是基于由以下项目构成的群组中的至少两个项目来加权的:(a)相应输入要向多个输出中的每个输出发送的分组的数目,(b)相应输入要向多个输出中的每个输出发送的字节的数目,(c)相应输入过去向多个输出中的每个输出发送分组的次数,以及(d)与相应输入要向多个输出中的每个输出发送的分组相关联的服务类。
一个实施例针对每个特定输入,生成第一请求,包括加权随机地选择输出之一。针对已对其生成了一个或多个所述第一请求的每个不同输出,第一请求之一被准予。对于其第一请求未被准予的每个特定输入,生成第二请求,这包括加权随机地选择输出之一(可能局限于那些尚不具有先前准予的请求的输出)。针对尚未被准予相应的第一请求并且已对其生成一个或多个所述第二请求的每个不同输出,所述第二请求之一被准予。
在一个实施例中,加权随机选择是基于相应输入要向多个输出中的每个输出发送的分组或字节的数目来加权的。在一个实施例中,分组在基于所述被准予的第一和第二请求的所述输入和所述输出之间发送。在一个实施例中,在每个分组时间中只执行两个请求阶段,所述两个请求阶段由所述生成第一请求的步骤和所述生成第二请求的步骤构成。在一个实施例中,针对每个特定输出的所述第一请求和第二请求中要被准予的每个特定请求都是从针对所述特定输出的所有相应的所述第一请求或所述第二请求中随机选择的。
一个实施例包括多个请求生成器和耦合到这些请求生成器的一个或多个准予仲裁器。每个请求生成器被配置为针对其在交换机输入中的关联输入,加权随机地生成第一轮请求并按需要加权随机地生成第二轮请求,其中第一轮请求包括对输出之一的第一加权随机选择,第二轮请求包括在第一轮请求未被准予的情况下对输出之一的第二加权随机选择。准予仲裁器被配置为准予接收自请求生成器的请求,以使得针对第一轮请求中每个被请求的输出有一个请求被准予,并且如果针对第一轮请求中的请求没有生成对所述被请求的输出的准予,则针对第二轮请求中每个被请求的输出有一个请求被准予。
在一个实施例中,一个或多个准予仲裁器针对一个输出,从对该输出接收的请求集合中随机地选择请求来准予。在一个实施例中,加权随机生成是基于相应输入要向多个输出中的每个输出发送的分组或字节的数目来加权的。
一个实施例针对每个交换机输入,随机地挑选出候选虚拟输出队列之一/目的地,其中随机选择是根据该输入的每个队列的长度来加权的。随后,调度请求被发送到所选目的地。每个目的地在获得了来自所有候选输入的请求之后,向随机选出的输入发回准予。获得从目的地发回的准予的输入将在相应的分组时间中发送相应的分组。两级随机选择过程代表加权随机选择过程的单个阶段。第二阶段是针对那些尚未接收到准予的交换机输入和针对那些在第一阶段中没有对其生成准予的目的地(即在第一阶段中没有生成请求)执行的。以此方式,所招致的调度开销量最小,并且当在为通过交换机发送一个或多个分组所分配的时间中执行了这两个调度阶段时,所需流量吞吐量被接收。一个实施例在为通过交换机发送一个或多个分组所分配的时间中执行多于两个调度阶段。
图1A-C和2A-B是使用分组的加权随机调度的无限多个实施例中的一些的框图。首先参考图1A,其示出***100,该***包括交换机构(例如物理交换单元、交换架构、纵横式交换机(crossbar)、总线或任何其他用于交换分组的机构等等)102、具有调度器和存储器的控制器101和多个线路卡103-104。***100利用加权随机调度来调度在线路卡103-104之间发送的分组。注意,加权随机调度可以与阻塞或非阻塞交换机联合使用。
图1B示出使用分组的加权随机调度的***110。在该示例性实施例中,线路卡111-112各自包含虚拟输出队列,并且交换板120包括具有调度器和存储器的控制器121、多个缓冲器122-123和交换机构125。线路卡111-112基于加权随机选择生成调度请求。分组随后根据已确定的加权随机调度被发送到输入缓冲器122-123,其中所应用的特定权重通常基于虚拟输出队列的占用率(occupancy)和/或分组特性(例如分组或字节数目、分组年龄、服务质量等等)。注意,在一个实施例中,输入缓冲器122-123可以各自存储多个分组,因此当针对随后的分组时间执行调度时,先前被加权随机调度的分组可以被排队。具有调度器和存储器的控制器121通常基于接收的调度请求生成准予,并且控制交换机构125的配置以允许通过其发送被调度的分组。
图1C示出使用分组的加权随机调度的***140。在该示例性实施例中,线路卡141-142与交换板150传输分组,并且交换板150包括具有调度器和存储器的控制器151、虚拟输出队列152-153和交换机构155。在此实施例中,分组的加权随机调度由具有调度器和存储器的控制器151执行,其中所应用的特定权重通常基于虚拟输出队列152-153的占用率和/或分组特性(例如分组或字节数目、分组年龄、服务质量等等)。随后利用交换机构155的配置,根据已确定的加权随机调度将分组从虚拟输出队列152-153发送。
图2A示出使用分组的加权随机调度的***200。分组201被接收并放在分组队列202中。队列占用率211被传输到每个交换机输入的加权随机请求生成器210(这里也称之为交换机输入),该交换机输入还与(一个或多个)准予生成器220(例如一个准予生成器、每个目的地的一个准予生成器,等等)通信。准予生成器220基于生成的准予217将已确定的交换机配置221传输到交换机构225,并且加权随机请求生成器210向分组队列202提供发送指令,以发送与经加权随机调度的分组相对应的分组。分组203通过据此配置的交换机构204从分组队列202发送出,以产生经交换的分组205。
图2B示出使用分组的加权随机调度的***230。分组231被接收并放在分组队列232中。队列占用率241被传输到每个交换机构输入的加权随机请求生成器210。加权随机请求和准予生成器250使用一个或多个过程和/或定制的控制逻辑来执行分组的加权随机调度,并通知分组队列232发送分组(243)以及通知交换机构234相应的交换机配置251。分组213通过据此配置的交换机构234从分组队列232发送出,以产生经交换的分组235。
图3是在一个实施例中用于执行加权随机调度(例如用于生成加权随机请求和/或准予)的组件300的框图。在一个实施例中,组件300执行与这里示出或以其他方式描述的流程图之一相对应的一个或多个过程。
在一个实施例中,***或组件300包括处理元件301、存储器302、存储设备303和用于发送与接收分组、项目和/或其他信息(例如队列占用率、发送分组的指令、对以通信方式耦合的交换机的交换机配置等等)的接口304,这些元件通常经由一个或多个通信机构309(例如被示为总线)耦合。在一个实施例中,存储器302和/或存储设备303被用来存储被执行分组的加权随机调度的分组。
组件300的各个实施例可以包括更多或更少的元件。组件300的操作通常由处理元件301使用存储器302和存储设备303来控制,以执行一个或多个任务或过程。存储器302是一种计算机可读介质,通常包括随机访问存储器(RAM)、只读存储器(ROM)、闪存、集成电路和/或其他存储器组件。存储器302通常存储将被处理元件301执行的计算机可执行的指令和/或由处理元件301操纵用来实现根据实施例的功能的数据。存储设备303是另一类计算机可读介质,通常包括固态存储介质、盘驱动器、磁盘、联网服务、磁带驱动器和其他存储设备。存储设备303通常存储将被处理元件301执行的计算机可执行的指令和/或由处理元件301操纵用来实现根据实施例的功能的数据。
图4A是示出一个实施例中使用的请求和准予的生成的图。加权随机请求生成器400针对每个交换机输入确定一个请求,如处理411所指示的。该选择是基于虚拟输出队列的占用率和/或分组特性(例如分组或字节数目、分组年龄、服务质量,即优先级更高的流量被给予更大的权重)等等)来加权的。
例如,假设存在四个交换机输出,在一个输入处有八个分组被排队,其中一个分组被排队用于第一输出,两个分组被排队用于第二输出,一个分组被排队用于第三输出,四个分组被排队用于第四输出。一个实施例使用被排队的分组数目的直接加权比例,而一个实施例基于虚拟输出队列的占用率使用不同的比例计算。在此示例中,一个实施例使用权重1/8发送来自与交换机输出/目的地1相对应的队列的分组;使用权重1/4发送来自与交换机输出/目的地2相对应的队列的分组;使用权重1/2发送来自与交换机输出/目的地3相对应的队列的分组;并且使用权重1/8发送来自与交换机输出/目的地4相对应的队列的分组。然后,按如下方式生成随机数(即真随机数、伪随机数或任何近似随机值):相应的目的地4被选择的可能性是目的地1或3的四倍,是目的地2的两倍。存在很多用于确定这种加权选择的技术。例如,一个实施例将每个目的地的百分比映射到0和1之间的累积分数值,并0和1之间的随机值被生成。在此示例中,目的地1对应于0.00到0.125,目的地2对应于0.126到0.375,目的地3对应于0.376到0.500,而目的地4对应于0.501到1.000。
返回图4A,针对每个交换机输入的已确定的加权随机请求412被传输到准予生成器402,准予生成器402针对已对其发出请求的每个目的地,随机地或以其他方式选择请求之一(如处理413所示)。这些准予414被传输到加权随机请求生成器400(或在一个实施例中,被传输到用于发送分组的控制器和/或用于配置交换机的控制器)。分组根据准予被发送,如标号431所示。在一个实施例中,通常对于每个准予发送一个分组,因为这是一次能从交换机的一个输入向一个输出发送的最大数目。但是,在一个实施例中,一次可以从输入发送多个分组和/或由输出接收多个分组,因此针对一个输入生成的请求的数目和针对一个输出生成的准予的数目也相应地被调整。
图4B类似于图4A,但其中添加了在一个实施例中用于在发送与生成的准予相对应的分组之前执行多轮请求/准予的过程。加权随机请求生成器400针对每个交换机输入确定一个请求,如处理411所指示的。该选择是基于虚拟输出队列的占用率和/或分组特性(例如分组或字节数目、分组年龄、服务质量,即优先级更高的流量被给予更大的权重,等等)来加权的。针对每个交换机输入的已确定的加权随机请求412被传输到准予生成器402,准予生成器402针对已对其发出请求的每个目的地,随机地或以其他方式选择请求之一(如处理413所示)。这些准予414被传输到加权随机请求生成器400。
没接收到准予的每个请求生成器随后执行附加请求阶段,包括基于基于虚拟输出队列的占用率和/或其队列中的分组的特性的加权随机选择来确定其请求(415)。在一个实施例中,附加请求可能在接收到准予414之前就已被确定。在一个实施例中,所有目的地在附加阶段中保持对请求可用。在一个实施例中,准予414包括对准予的目的地的指示,因此在第二阶段期间识别请求针对的目的地时,这些目的地可以从竞争中排除。在一个实施例中,附加阶段请求确定将在前一阶段中请求的目的地排除在附加阶段中的加权随机选择之外(因为它已被准予给不同的请求者并且在附加阶段期间不可用)。在一个实施例中,在分组时间中可以从输入发送多于一个分组和/或可以由输出接收多于一个分组,因此请求和/或准予的数目也相应地增大。
针对在分组时间中可以发送多个分组的交换机输入(例如它们前一阶段的请求没有被准予)的加权随机请求416被传输到准予生成器402,准予生成器402随后针对在分组时间中可以接受附加分组的目的地(例如在一个实施例中是在前一阶段期间没有接收/准予请求的那些目的地)随机地或以其他方式在接收的请求416中进行选择(417)。随后,附加阶段准予418被传输到加权随机请求生成器400(或在一个实施例中,传输到用于发送分组的控制器和/或用于配置交换机的控制器)。分组根据准予被发送,如标号441所示。不同实施例中请求/准予阶段的轮数可以不同,包括可以包括一轮、两轮或甚至多于两轮。
图5A是一个实施例中用于通过针对特定交换机输入的请求生成器来执行分组的加权随机调度的过程的流程图。处理开始于过程块500,并前进至过程块502,其中通过基于加权随机选择识别可能目的地之一(即识别目的地/交换机输出、虚拟输出队列或其他相应值)来生成请求,其中所述加权随机选择是基于虚拟输出队列的分组占用率和/或分组特性(例如分组或字节数目、分组年龄、服务质量,即优先级更高的流量被给予更大的权重,等等)作出的。按照过程块504中所确定的,如果请求被准予,则在过程块506中,分组被从对应于目的地的虚拟输出队列发送到目的地。如过程块508所指示的,处理完成。
图5B是在一个实施例中用于从接收的请求确定准予的过程的流程图。处理开始于过程块520并前进至过程块522,其中针对每个特定目的地接收零个或多个请求,并且针对每个特定目的地,随机地或以其他方式选择这些请求之一,并且将相应的准予传输到请求者。在过程块524中,如果需要,交换机被基于准予的请求而配置,从而使分组可被发送(例如在图5A的过程块506中)。如过程块526所指示的,处理完成。
图6是在一个实施例中用于在分组时间中执行分组的加权随机调度的过程的流程图,其中分组时间对应于为在交换机的输入处从外部源接收一个分组所分配的时间量。处理开始于过程块600并前进至过程块602,其中基于加权随机选择来针对具有要发送的一个或多个分组的每个交换机输入生成请求。在过程块604中,针对每个被请求的目的地的请求之一被随机地或以其他方式准予。在过程块606中,如果需要,交换机被配置以适应准予的请求,并且分组被从相应输入发送到相应输出。按照过程块608中所确定的,如果在该分组时间中还有更多轮的请求/准予/发送分组要执行,处理则返回过程块602。否则,如过程块610所指示的,处理完成。
鉴于本发明的原理可应用到很多可能的实施例,将意识到,这里针对附图/图示描述的实施例及其多个方面仅仅是示例性的,而不应被理解为对本发明范围的限制。例如,本领域技术人员将发现,很多过程块操作可被重新排序,以在其他操作之前、之后执行或与其他操作基本同时执行。而且,很多不同形式的数据结构可被用在各个实施例中。这里描述的发明设想可以落入所附权利要求及其等同物的范围内的所有这样的实施例。

Claims (34)

1.一种用于调度分组的方法,包括:
针对交换机的多个输入中的每个输入:生成从所述输入向所述交换机的多个输出中的一个输出发送分组的一个请求,所述生成请求的步骤包括加权随机地选择所述输入要向其发送分组的所述交换机的多个输出中的一个输出;
针对所述多个输出中已对其生成了一个或多个所述请求的每个不同输出,准予所述请求之一;以及
在与所述被准予的请求相对应的所述输入和所述输出之间发送分组,
其中所述加权随机地选择多个输出中的一个输出是通过如下方式进行的,即基于所述多个输出的按比例的权重、使得每个输出被选择的可能性对应于该输出的权重的方式。
2.如权利要求1所述的方法,其中由所述生成请求的步骤、所述准予所述请求之一的步骤和所述发送分组的步骤构成的一轮在每个分组时间中至少被执行两次,所述分组时间对应于为在所述交换机的输入处从外部源接收分组所分配的时间量。
3.如权利要求2所述的方法,包括将所述交换机配置为在所述发送分组的步骤之前,在与所述被准予的请求相对应的所述输入和所述输出之间建立连接。
4.如权利要求1所述的方法,其中所述准予所述请求之一的步骤包括针对所述多个输出中已对其生成一个或多个所述请求的每个输出,随机地选择所述请求之一。
5.如权利要求1所述的方法,其中所述加权随机选择是基于所述多个输入中的相应输入要向所述多个输出中的每个输出发送的分组的数目来加权的。
6.如权利要求1所述的方法,其中所述加权随机选择是基于所述多个输入中的相应输入要向所述多个输出中的每个输出发送的字节的数目来加权的。
7.如权利要求1所述的方法,其中所述加权随机选择是基于过去从所述多个输入中的相应输入向所述多个输出中的每个输出发送分组的次数来加权的。
8.如权利要求1所述的方法,其中所述加权随机选择是基于与所述多个输入中的相应输入要向所述多个输出中的每个输出发送的分组相关联的服务类来加权的。
9.如权利要求1所述的方法,其中所述加权随机选择是基于由以下项目构成的群组中的至少两个项目来加权的:(a)所述多个输入中的相应输入要向所述多个输出中的每个输出发送的分组的数目,(b)所述多个输入中的相应输入要向所述多个输出中的每个输出发送的字节的数目,(c)过去从所述多个输入中的相应输入向所述多个输出中的每个输出发送分组的次数,以及(d)与所述多个输入中的相应输入要向所述多个输出中的每个输出发送的分组相关联的服务类。
10.如权利要求1所述的方法,包括一轮或多轮如下步骤:通过加权随机地在所述多个输出的全部或子集之间进行选择来生成请求,并且在所述针对每个输入生成请求的步骤和所述准予所述请求之一的步骤之后并在所述发送分组的步骤之前,有选择地准予与可用带宽相对应的所述请求。
11.一种用于调度分组的装置,包括:
多个请求生成器;
耦合到所述多个请求生成器的一个或多个准予仲裁器;
其中所述多个请求生成器中的每一个被配置为针对其在交换机的多个输入中的关联输入,加权随机地生成一个请求,该请求包括对所述交换机的多个输出之一的加权随机选择;
其中所述一个或多个准予仲裁器被配置为准予接收自所述多个请求生成器的请求,以使得针对每个被请求的输出有一个请求被准予;以及
其中所述多个输入被配置为发送与所述被准予的请求相对应的分组,
其中所述加权随机选择是通过如下方式进行的,即基于所述多个输出的按比例的权重、使得每个输出被选择的可能性对应于该输出的权重的方式。
12.如权利要求11所述的装置,包括用于将所述交换机配置为在与所述被准予的请求相对应的所述输入和所述输出之间建立连接的控制器。
13.如权利要求11所述的装置,其中所述一个或多个准予仲裁器针对特定输出,从所述针对该特定输出接收的所述请求中随机地选择请求来准予。
14.如权利要求11所述的装置,其中所述加权随机选择是基于所述多个输入中的相应输入要向所述多个输出中的每个输出发送的分组的数目来加权的。
15.如权利要求11所述的装置,其中所述加权随机选择是基于所述多个输入中的相应输入要向所述多个输出中的每个输出发送的字节的数目来加权的。
16.如权利要求11所述的装置,其中所述加权随机选择是基于过去从所述多个输入中的相应输入向所述多个输出中的每个输出发送分组的次数来加权的。
17.如权利要求11所述的装置,其中所述加权随机选择是基于与所述多个输入中的相应输入要向所述多个输出中的每个输出发送的分组相关联的服务类来加权的。
18.如权利要求11所述的装置,其中所述加权随机选择是基于由以下项目构成的群组中的至少两个项目来加权的:(a)所述多个输入中的相应输入要向所述多个输出中的每个输出发送的分组的数目,(b)所述多个输入中的相应输入要向所述多个输出中的每个输出发送的字节的数目,(c)过去从所述多个输入中的相应输入向所述多个输出中的每个输出发送分组的次数,以及(d)与所述多个输入中的相应输入要向所述多个输出中的每个输出发送的分组相关联的服务类。
19.如述权利要求11所的装置,其中所述多个输入被配置为从它们各自对应于所述被准予的请求的虚拟输出队列发送分组。
20.如述权利要求19所的装置,其中所述装置包括多个线路卡和包括所述交换机在内的交换板,并且其中所述虚拟输出队列位于所述线路卡上。
21.如述权利要求19所的装置,其中所述装置包括多个线路卡和包括所述交换机在内的交换板,并且其中所述虚拟输出队列位于所述交换板上。
22.一种用于调度分组的装置,包括:
用于生成从交换机的输入向所述交换机的输出发送分组的请求的装置,所述用于生成所述请求的装置包括用于针对所述输入中具有要发送的分组的每个输入,加权随机地选择所述交换机的多个输出中所述输入要向其发送分组的一个输出的装置;
用于针对所述多个输出中已对其生成了一个或多个所述请求的每个不同输出,准予所述请求之一的装置;以及
用于在与所述被准予的请求相对应的所述输入和所述输出之间发送分组的装置,
其中所述加权随机地选择多个输出中的一个输出是通过如下方式进行的,即基于所述多个输出的按比例的权重、使得每个输出被选择的可能性对应于该输出的权重的方式。
23.如权利要求22所述的装置,包括用于将所述交换机配置为在所述发送分组的步骤之前,在与所述被准予的请求相对应的所述输入和所述输出之间建立连接的装置。
24.如权利要求22所述的装置,其中所述用于加权随机地进行选择的装置包括用于基于相应输入要发送到所述输出中的每个输出的分组的数目来确定权重的装置。
25.如权利要求22所述的装置,其中所述用于加权随机地进行选择的装置包括用于基于过去从所述多个输入中的相应输入向所述多个输出中的每个输出发送分组的次数来确定权重的装置。
26.如权利要求22所述的装置,其中所述用于加权随机地进行选择的装置包括用于基于与所述多个输入中的相应输入要向所述多个输出中的每个输出发送的分组相关联的服务类来确定权重的装置。
27.一种用于调度分组的方法,该方法包括:
针对多个输入中的每个特定输入:生成第一请求,包括加权随机地选择多个输出之一;
针对所述多个输出中已对其生成了一个或多个所述第一请求的每个不同输出,准予所述多个输出的所述第一请求之一;
针对所述多个输入中其第一请求未被准予的每个特定输入:生成第二请求,包括加权随机地选择所述多个输出之一;以及
针对所述多个输出中尚未被准予相应的第一请求并且已对其生成了一个或多个所述第二请求的每个不同输出,准予所述多个输出的所述第二请求之一,
其中所述加权随机地选择多个输出之一是通过如下方式进行的,即基于所述多个输出的按比例的权重、使得每个输出被选择的可能性对应于该输出的权重的方式。
28.如权利要求27所述的方法,其中所述加权随机选择是基于相应输入要发送到所述多个输出中的每个输出的分组或字节的数目来加权的。
29.如权利要求27所述的方法,其中分组在基于所述被准予的第一和第二请求的所述输入和所述输出之间发送。
30.如权利要求27所述的方法,其中在每个分组时间中只执行两个请求阶段,所述两个请求阶段由所述生成所述第一请求的步骤和所述生成所述第二请求的步骤构成,所述分组时间对应于为在输入处接收来自外部源的分组所分配的时间量。
31.如权利要求27所述的方法,其中针对每个特定输出的所述第一请求或所述第二请求中要被准予的每个特定请求是从针对所述特定输出的相应的所述第一请求或所述第二请求中随机选择的。
32.一种用于调度分组的装置,包括:
多个请求生成器;
耦合到所述多个请求生成器的一个或多个准予仲裁器;
其中所述多个请求生成器中的每一个被配置为针对其在交换机的多个输入中的关联输入,加权随机地生成第一轮请求,并按需要加权随机地生成第二轮请求,所述第一轮请求包括对多个输出之一的第一加权随机选择,而所述第二轮请求包括在所述第一轮请求未被准予的情况下,对所述输出之一的第二加权随机选择;以及
其中所述一个或多个准予仲裁器被配置为准予接收自所述多个请求生成器的请求,以使得针对第一轮的请求中的每个被请求的输出有一个请求被准予,并且如果针对第一轮的请求中的请求没有生成对所述被请求的输出的准予,则针对第二轮的请求中的每个被请求的输出有一个请求被准予,
其中所述加权随机地选择多个输出中的一个输出是通过如下方式进行的,即基于所述多个输出的按比例的权重、使得每个输出被选择的可能性对应于该输出的权重的方式。
33.如权利要求32所述的装置,其中所述一个或多个准予仲裁器针对一个输出,从针对该输出接收的请求集合中随机地选择请求来准予。
34.如权利要求32所述的装置,其中所述加权随机生成是基于相应输入将发送到所述多个输出中的每个输出的分组或字节的数目来加权的。
CN2005800104226A 2004-04-12 2005-03-02 用于加权随机调度的方法和装置 Expired - Fee Related CN1938992B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/822,908 US7061927B2 (en) 2004-04-12 2004-04-12 Weighted random scheduling particularly applicable to packet switching systems
US10/822,908 2004-04-12
PCT/US2005/006801 WO2005104437A1 (en) 2004-04-12 2005-03-02 Weighted random scheduling

Publications (2)

Publication Number Publication Date
CN1938992A CN1938992A (zh) 2007-03-28
CN1938992B true CN1938992B (zh) 2011-09-07

Family

ID=35060476

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005800104226A Expired - Fee Related CN1938992B (zh) 2004-04-12 2005-03-02 用于加权随机调度的方法和装置

Country Status (4)

Country Link
US (1) US7061927B2 (zh)
EP (1) EP1741229B1 (zh)
CN (1) CN1938992B (zh)
WO (1) WO2005104437A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7817643B2 (en) * 2004-09-14 2010-10-19 Maksim Azarov System and method for varying the scheduling of real time protocol (RTP) packets
US7499464B2 (en) * 2005-04-06 2009-03-03 Robert Ayrapetian Buffered crossbar switch with a linear buffer to port relationship that supports cells and packets of variable size
US7657537B1 (en) 2005-04-29 2010-02-02 Netapp, Inc. System and method for specifying batch execution ordering of requests in a storage system cluster
US8547855B1 (en) * 2006-03-21 2013-10-01 Cisco Technology, Inc. Method and apparatus to schedule multiple probes for active or passive monitoring of networks
US7747734B2 (en) * 2006-03-29 2010-06-29 International Business Machines Corporation Apparatus, system, and method for error assessment over a communication link
US20070268825A1 (en) * 2006-05-19 2007-11-22 Michael Corwin Fine-grain fairness in a hierarchical switched system
US20080161105A1 (en) * 2006-12-30 2008-07-03 Cadillac Jack Inc. Progressive jackpot gaming systems and methods
US7839864B1 (en) * 2007-05-21 2010-11-23 Cisco Technology, Inc. Priority propagation with a hierarchical asynchronous transfer mode (ATM) scheduler
US8830837B2 (en) 2010-12-17 2014-09-09 Cisco Technology, Inc. Dynamic synchronized scheduling in a computer network
US9590820B1 (en) 2011-09-02 2017-03-07 Juniper Networks, Inc. Methods and apparatus for improving load balancing in overlay networks
US9331929B1 (en) 2012-03-29 2016-05-03 Juniper Networks, Inc. Methods and apparatus for randomly distributing traffic in a multi-path switch fabric
CN106489293B (zh) * 2014-07-17 2019-12-10 瑞典爱立信有限公司 用于调度通信装置的方法和网络元件
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

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6262986B1 (en) * 1995-07-07 2001-07-17 Kabushiki Kaisha Toshiba Method and apparatus for packet scheduling using queue length and connection weight

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6262697A (ja) 1985-09-13 1987-03-19 Toshiba Corp デ−タ送信制御方式
US5500858A (en) 1994-12-20 1996-03-19 The Regents Of The University Of California Method and apparatus for scheduling cells in an input-queued switch
US6212182B1 (en) 1996-06-27 2001-04-03 Cisco Technology, Inc. Combined unicast and multicast scheduling
US5923644A (en) 1996-10-03 1999-07-13 The Board Of Trustees Of The Leland Stanford Junior University Apparatus and method for processing multicast cells in an input-queued multicast switch
US6359861B1 (en) * 1997-10-08 2002-03-19 Massachusetts Institute Of Technology Method for scheduling transmissions in a buffered switch
US6628646B1 (en) 1999-05-14 2003-09-30 Nortel Networks Limited Programmable multicast scheduling for a network device
KR100382142B1 (ko) 2000-05-19 2003-05-01 주식회사 케이티 단순반복매칭을 이용한 입출력버퍼형 스위치의 셀스케줄링 방법
US7065046B2 (en) 2001-04-06 2006-06-20 Lucent Technologies Inc. Scalable weight-based terabit switch scheduling method
US20030072326A1 (en) * 2001-08-14 2003-04-17 Mehdi Alasti Method and apparatus for parallel, weighted arbitration scheduling for a switch fabric
US6757246B2 (en) * 2001-08-14 2004-06-29 Pts Corporation Method and apparatus for weighted arbitration scheduling separately at the input ports and the output ports of a switch fabric
US7184443B2 (en) 2002-03-30 2007-02-27 Cisco Technology, Inc. Packet scheduling particularly applicable to systems including a non-blocking switching fabric and homogeneous or heterogeneous line card interfaces
US7539199B2 (en) * 2003-02-21 2009-05-26 Gireesh Shrimali Switch fabric scheduling with fairness and priority consideration

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6262986B1 (en) * 1995-07-07 2001-07-17 Kabushiki Kaisha Toshiba Method and apparatus for packet scheduling using queue length and connection weight

Also Published As

Publication number Publication date
EP1741229B1 (en) 2017-10-18
EP1741229A1 (en) 2007-01-10
US7061927B2 (en) 2006-06-13
WO2005104437A1 (en) 2005-11-03
US20050226263A1 (en) 2005-10-13
CN1938992A (zh) 2007-03-28
EP1741229A4 (en) 2011-01-12

Similar Documents

Publication Publication Date Title
CN1938992B (zh) 用于加权随机调度的方法和装置
US6856622B1 (en) Multicast cell scheduling protocol
KR100334922B1 (ko) 효율적인출력요구패킷스위치와방법
US6876629B2 (en) Rate-controlled multi-class high-capacity packet switch
KR100339329B1 (ko) 입력/출력 테라비트 스위치들을 위한 rrgs-라운드-로빈 그리디 스케쥴링
US7133399B1 (en) System and method for router central arbitration
US5506841A (en) Cell switch and a method for directing cells therethrough
US9602436B2 (en) Switching device
EP1006694B1 (en) Communications method and communications system
US7830903B2 (en) Method and apparatus for scheduling packets and/or cells
CN100547983C (zh) 利用有序的加锁机制来维护诸如分组之类的项目的次序
CN100379204C (zh) 用于包括无阻塞交换结构和线路卡接口的***的包调度
JP2002217962A (ja) 複数の入力ポートから出力ポートにデータパケットをスケジューリングする方法
US7675930B2 (en) Chip circuit for combined and data compressed FIFO arbitration for a non-blocking switch
CN100593312C (zh) 使用定额和差额值进行调度
CN101253741A (zh) 交换设备中的高效报文交换
US7460544B2 (en) Flexible mesh structure for hierarchical scheduling
US20060077973A1 (en) Output scheduling method of crosspoint buffered switch
US7158512B1 (en) System and method for scheduling a cross-bar
CN113098765B (zh) 一种车载智能网关及其轮询调度方法
CN102594670A (zh) 多端口多流的调度方法、装置及设备
KR100581079B1 (ko) 확장형 크로스바 매트릭스 스위칭 장치 및 그의 분산스케쥴링 방법
EP0775346A1 (en) A network switch
WO1997004570A1 (en) Controlling bandwidth allocation using a pace counter
KR20030055765A (ko) 입력버퍼형 스위치의 공정한 스케줄링 방법

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110907

Termination date: 20180302

CF01 Termination of patent right due to non-payment of annual fee