CN1500337A - 用于改进队列的方法及设备 - Google Patents
用于改进队列的方法及设备 Download PDFInfo
- Publication number
- CN1500337A CN1500337A CNA028076605A CN02807660A CN1500337A CN 1500337 A CN1500337 A CN 1500337A CN A028076605 A CNA028076605 A CN A028076605A CN 02807660 A CN02807660 A CN 02807660A CN 1500337 A CN1500337 A CN 1500337A
- Authority
- CN
- China
- Prior art keywords
- formation
- port
- service
- segmentation
- user
- 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.)
- Pending
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/24—Traffic characterised by specific attributes, e.g. priority or QoS
-
- 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/52—Queue scheduling by attributing bandwidth to queues
- H04L47/527—Quantum based scheduling, e.g. credit or deficit based scheduling or token bank
-
- 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/622—Queue service order
- H04L47/623—Weighted service order
Abstract
一种队列调度器,根据分配给队列的加权把有带宽价值的分段分配给多个队列。多个队列按最高优先级到最低优先级排列。队列由所述调度器服务直至每个队列消耗了每个相应加权。较高优先级队列先于较低优先级队列得到服务。
Description
技术领域
本发明通常涉及联网领域,特别是涉及一种改进的调度技术和一种改进的端口排队技术。
背景技术
用户粒度(granularity)
图1a显示具有接入节点101a的网络100。接入节点101a充当发送到网络100中的业务的接收点和从网络100发送的业务的传送点。通常发送/接收进入/来自网络的业务的这些点可以被称作网络的“用户”。
也许存在大范围的不同用户。也就是说,某些用户可以发送/接收到达/来自网络100的大量业务,而其它用户可以发送/接收到达/来自网络100的少量业务。例如,接入节点101a可以被要求提供到达/来自大工业园区的业务的接入,而又同时提供来自/到达住宅中个人的业务的接入。
图1a试图显示由接入节点101a服务的大范围的不同用户。需要注意的是,作为一个实例,接入节点101a具有4个OC-12网络线路102a、104a、115a、117a。每个OC-12网络线路相当于一个622Mb/s线路。可以减少这些网络线路102a、104a、115a、117a承载的业务,以便改变依赖于用户的粒度,其中接入点101a被配置来提供用户接入。
例如,在图1a的实例性配置中,网络线路117a对应于传递给单个用户的业务。因而,连接网络线路117a的用户消耗价值622Mb/s的业务。相反,网络线路102a为336个不同用户提供服务。也就是,多路复用器103使622Mb/s网络线路102a变成336条单个DS1线路1061至106336,其每条DS1线路向不同用户提供价值1.544Mb/s的服务。
网路线路115a、104a被缩小的粒度程度落入网络线路117a和102a的分解程度之间。也就是,多路复用器116将网络线路115a缩小成4条单独的OC-3线路,每个线路向不同用户提供价值155.52Mb/s的服务。多路复用器105、108、110、112、113、114一起将网络线路104a缩小成:1)两条向两个不同用户提供价值155.52Mb/s的服务的OC-3线路1071、1072;2)三条向三个不同用户提供价值44.736Mb/s的服务的DS3线路1091、1092、1093;3)八十四条向八十四个不同用户提供价值1.544Mb/s的服务的DS1线路1111至11184。
这样,将会注意到每条网络线路也许存在宽范围的粒度:网络线路117a具有一个用户,网络线路115a具有四个用户,网络线路104a具有八十九个用户,网络线路102a具有三百三十六个用户。接入节点101a负责单独控制到达/来自每个用户的信息流(例如,用于适当的帐单等)。因而,接入节点101a负责“记住”粒度的宽频谱上的各个用户。
网络系统模型
可以使用各种方案将存在于一个系统内的功能层模型化,所述系统在一个系统内实现一个节点,比如接入节点101a。图1b显示了这样一种模型用于联网系统101b。包经由网络线路102b、104b、115b、117b和120b(作为一个实例,可以视作对应于图1a中的网络线路102a、104a、115a、117a和120a)进行发送。
作为讨论,网络线路102b、104b、115b、117b和120b相当于从系统101b散发的物理线路(比如铜线或者光纤)。网络线路102b、104b、115b、117b和120b被用来物理承载到达/来自其它联网系统的输入业务(即进入系统101b的业务)和输出业务(即离开系统101b的业务)。
线路聚集层190用来聚集来自网络线路102b、104b、115b、117b和120b的输入业务,和分离到达网络线路102b、104b、115b、117b和120b的输出业务。输入信道(例如输入信道191a)被用来承载来自一条或多条网络线路的被聚集的输入业务。例如,输入信道191a可以被用来承载仅来自网络线路120b的输入业务。这样,每条输入信道191a、191b、191c为一个逻辑结构,用于承载从信道的相应网络线路到达系统101b的业务。
对应于具体输入信道的网络线路的数量可以依据具体系统101b的设计和/或配置而变化。此外,也许存在一条或多条输入信道(例如,输入信道191a、191b、191c),这取决于具体系统的设计点。在一个类似方式中,线路聚集层190还被用来分离到达网络线路102b、104b、115b、117b和120b的所有输出业务。因此,每条输出信道192a、192b、192c是一个逻辑结构,用来承载沿对应于网络线路的逻辑信道离开系统101b的业务。
包聚集层180用来形成来自输入信道191a、191b、191c的输入业务的输入包,并经由输出信道192a、192b、192c上的输出业务有效发送输出包。在分组聚集层180上可以实现不同的分组形式。例如,对于涉及网络线路102b、104b、115b、117b和120b的ATM,可以在分组聚集层180上识别AAL0和AAL5分组类型。同样,也可以使用与点对点协议、HDLC、帧延迟和以太网相关联的分组,在技术领域它们是公知的,因此上文没有特别列出。
作为分组聚集层180操作的一个实例,假定网络线路102b、104b、115b、117b和120b是承载具有ATM信元的AAL5分组的ATM网络线路。ATM信元对应网络线路102b、104b、115b、117b和120b和输入/输出信道191a-191c、192a-192c上的业务。分组聚集层180在输入方向形成AAL5输入分组(即,信元重新装配),并在输出方向分解AAL5输出分组(即,信元分离)。
在联网/传输层160b中,如图1所示,输入分组被转换成输出分组。输入分组由分组聚集层180送至联网/传输层160a,并且由联网/传输层160a将输出分组送至分组聚集层180。联网/传输层160b可以负责:1)有效识别联网节点,当输入分组离开系统101b作为输出分组时,经由该联网节点发送输入分组;和2)处理与服务级协议(SLA)一致的输入分组,或者可适用于该分组的其它服务概要。例如,如果一个特定用户同意用于他的分组的特定速率和服务质量(QoS),则联网/传输层160b查看用户的分组是否处于用户的被分配速率之内,如果是,则还将符合用户协议的系统101b内的分组列入优先地位。
联网/传输层的实施例
图1c显示了可以用于图1b的联网/传输层160b的联网传输层160c的一个实施例。参见图1c,联网传输层160c具有分组处理流水线130,输出分组管理器140和分组缓冲器150(也可以称之为分组缓存器150,缓存器150等)。
在分组从服务供应者发送到用户(例如,从图1a的网络线路120a到接入节点101a服务的任一个用户)的情况下,联网传输层160c调节与从服务供应者网络发送到特定用户的分组相关联的输出速率。这也可以称之为输出速率调节。
也就是,自服务供应者网络抵达的分组(例如,来自图1a的网络线路120a)从分组聚集层存储到分组缓存器150(经由输入170c)。分组聚集层还向流水线130转发一个分组标识符,该标识符充当分组缓存器150中存储的分组的参考(例如,一个存储器指针)。与分组标识符相关联的是描述分组的各种特征的信息(例如,它的目的地地址,大小,优先级的指针等)。
当分组从分组缓存器150移到分组聚集层(沿输出171c)时,流水线130和输出分组管理器140的操作产生影响。在应用于图1c的方案的各种分组处理流水线130实施例中:1)识别分组将发送给哪个用户;2)了解应用于分组的输出速率和优先级,以便在特定用户合适的时候从联网/传输层160c释放该分组;3)使分组标识符进入输出分组管理器140。
对于流水线130的输出,当从分组缓存器150释放分组时,分组标识符置入输出分组管理器140内的具体位置的置放产生影响。也就是,输出分组管理器140具有与从分组缓存器150释放的分组的时间对应或者相关的位置。当处理输出分组管理器140内的分组标识符时,触发相关联的分组从输出分组管理器150释放。该触发由触发器线路172表示。触发器线路172可以是用来将分组从分组缓存器150释放的任何地址线路、控制线路或者其它的逻辑电路。
附图说明
下面结合附图通过非限制性实施例说明本发明。
图1a显示了服务不同用户的接入节点的实例;
图1b显示了联网系统的模型;
图1c显示了联网/传输层的一个实例;
图2显示了把接入节点的资源视作分配给由节点服务的诸多用户的情况;
图3显示了用来在用户粒度的宽频谱上适当调度分组的调度技术;
图4显示了可用于实现图3的调度技术的输出分组管理器的实施例;
图5a显示了经由速度等级链接表存储器结构的循环,该速度等级链接表结构可以用来实现图3的调度技术;
图5b显示了可以用来实现图3的调度技术的调度器的一个实施例;
图6显示了实现图3的调度技术的处理步骤;
图7显示了分成多个队列的输出端口;
图8显示了服务具有多个队列的输出端口,比如图7所示的输出端口的处理步骤;
图9显示了对应于图8所示的处理步骤的一个处理步骤的具体实施例。
具体实施方式
图2显示了一个示范性接入节点200a,具有:1)3个OC-3用户(分别使用网络线路201a至203a);2)2个DS3用户(分别使用DS3线路204a和205a);3)28个DS1用户(分别使用DS1线路206a至234a)。需要注意,为了简单起见,图2的接入节点200a支持比图1a的接入节点101a略微复杂的用户混合体。
需要注意的是,由于接入节点具有4个OC-3网络线路201a至203a和235a,因此接入节点200a可以被看作具有交换或者路由资源(也可以称之为“资源”或者“容量”或者“带宽”)200b路由的能力,这足以处理价值近似622.08Mb/s的业务(即,4×155.52Mb/s每OC-3网络线路=622.08Mb/s)。图2显示了根据与服务的用户关联的“速度等级”的排列顺序分配的这些资源。
速度等级是提供给用户的带宽的量。例如,对于图2的特定实例,表明与网络线路201a的用户相关联的最高速度等级是155.52Mb/s。根据图2的图示,接入节点200a的资源200b是根据节点支持的最高速度等级划分的。由于节点支持的最高速度等级是155.52Mb/s,并且由于节点具有价值622.08Mb/s的资源,因此存在4个分段201b、202b、203b和235b(即,622.08/155.52=4.0)。
接入节点支持的速度等级还按照最高到最低顺序排列(例如,如图2所示的从左至右)。这样,前3个资源分段201b、202b、203b对应于3个OC-3速率用户。小于最高速度等级服务的用户接收服务(图2的DS3和DS1用户)可以被看作在不关联于最高等级用户的最高速度等级分段235b之内“进行处理”。这样,专用于DS3用户204b、205b和DS1用户206b至234b的资源被显示在第四个最高速度等级分段235b之内。
调度技术
图3显示了根据节点管理的最高速度等级分配调度周期的调度技术。调度是在朝向特定用户的一个节点内管理一个或多个分组转发的处理。例如,参见图1c,调度对应于定时,在该定时中触发器线路172授权前往特定用户的一个或多个分组从分组缓存器150释放到输出171c。
为了简便起见,图3提供的调度实例对应于最大符合条件下由图2的接入节点200a执行的调度。根据所讨论的调度技术,节点交换或者选择容量(例如,按Mb/s或者Gb/s术语定义它的带宽“B”)路由被看作根据节点管理的最高速度等级进行分配。
节点执行的交换或者路由选择可以被看作一个循环操作。图3显示了多个这样的循环(例如,“循环1”、“循环2”、“循环3”、“循环4”、“循环5”等)。最高速度等级计算模数x1可以由下式给出:
x1=最小整数(B/X) 公式1
其中,B是节点容量的交换或者路由选择的容量,X是节点管理的最高速度等级。“最小整数”操作有效地使x1等于可以由节点充分服务的最高速度等级用户的数量。因此,如下文更详细描述的那样,每个调度周期被划分成与节点管理的最高速度等级共生的区域;以及每个调度周期与这样的分段(划分)共生。
例如,对于图2和图3的实例,最高速度等级计数器相当于图3所示的“OC3 Count”。这里,图2的节点200a管理的最高速度等级“X”相当于OC-3速率(155.52Mb/s),节点200a路由选择和交换的容量“B”相当于622.08Mb/s。结果,最高速度等级计算模数是4.0(依据公式1)。这样,如图3所示,每个调度周期具有4个分段(例如,周期1具有分段3011、3021、3031、3041;周期2具有分段3011、3032、3032、3042;等)。与最高速度等级共生的分段是指这样一种分段,该分段的数据量使得每调度周期的一个分段对应与由节点管理的最高速度等级相等的数据速率。为了简便起见,除非另有说明,短语“一个分段”或者“一个数据的分段价值”意味着涉及“与最高速度等级共生的数据的分段价值”。
根据由节点管理的最高速度等级划分每个调度周期允许,不仅对于那些以最高速度等级速率接收信息的用户,而且对于那些以小于最高速度等级速率接收信息的用户(即,较低速度等级用户),均能直接进行带宽分配(下文将进行更详细的说明)。此外,还可以使调度容易地适应任何网络配置,以及还可以以可编程方式实现该调度。这些特点的组合允许可容易适用于本领域的低成本节点调度宽范围的各种不同用户的业务以及他们的相应速度等级。
一个用户(不考虑速度等级)通过发送有用户数据价值的分段来提供服务。如上所述,每个分段与节点管理的最高速度等级共生。对于最高速度等级用户,如下文的展开说明,相当于在每个调度周期期间服务的每个最高速度等级用户。然而,由于较低速度等级用户消耗比最高速度等级用户低的带宽,因此较低速度等级用户不需要经过每个调度周期服务。
结果,一个或多个调度周期将发生在专用于相同的较低速度等级用户的连续分段之间。更慢速的较低速度等级在它们的专用分段之间具有比更快速的较低速度等级有更多的调度周期。也就是说,数据的有价值分段能够“持续更长时间”服务一个更慢的较低速度等级用户(例如,图2中的DS1用户),因此,在时间历程上分段可能彼此相距更远。同样,由于数据有价值分段在服务更快的较低速度等级用户时(例如,图2的DS3用户)持续时间短,因此分段在时间上更接近。
服务一个特定较低速度等级用户的分段模数xn可以根据下式计算:
xn=kxn-1 公式2
其中:1)k相当于可以由下一个最高速度等级(由此导出较低速度等级服务)服务的较低速度等级用户的数量;2)xn-1相当于下一个最高速度等级(由此导出较低速度等级服务)的分段模数。
例如,参见图2的实施例,表明一对DS3用户(比如与DS3线路204a,205a连接)从OC-3线路235a提供服务。参见公式2,表明DS3用户相当于其分段模数被确定的较低速度等级用户。也就是,xn相当于DS3用户的分段模数,x-n-1相当于服务DS3用户的线路235a的OC-3速度的分段模数,k是可以从OC-3线路提供服务的DS3用户的数量。
在此情况下,xn-1相当于上述的最高速度等级(OC-3)的分段模数。也就是,xn-1=4.0。此外,当DS3服务相当于44.736Mbps服务时,可以由OC3服务提供3个DS3用户(3×44.736Mbps=134.205Mbps)服务。也就是,k=3.0。依据等式2得到DS3用户的分段模数是12.0=3.0×4.0。
因此,如果每12.0个分段向DS3用户对的每个提供数据的一个有价值分段(即,当每个调度周期存在4.0个分段时,每3个调度周期一次),则DS3用户对将被适当地提供服务。需要注意的是,DS3用户对的12.0的分段模式已经被映射成图3的示范性调度图。也就是,如图3所示,DS3用户对的第一用户(“DS3 1”)在1st、4st、7st、……等调度周期中被提供服务,而DS3用户对的第二用户(“DS3 2”)在2st、5st、8st、……等调度周期中被提供服务。
参见图2,作为另一个实例,认为28的DS1用户的每一个分别与206a至234a相关联。需要注意的是,这些DS1线路来源于第三DS3线路237,而DS3线路237又由OC-3线路235a馈入。因此,参见公式2,DS1用户相当于其分段模数被确定的较低速度等级用户;关联线路237的DS3服务是导出DS1用户服务的下一个最高速度等级。
DS3服务的分段模数xn-1相当于上述的12.0。可以由DS3服务提供服务的DS1用户的数量k相当于28.0(作为通常由DS3服务承载的28个DS1信道)。因此,依据等式2,DS1用户的分段模数(xn)是336.0=28.0×12.0。需要注意的是,分段模数336.0已经被映射成图3的示范性调度图。这相当于每84个调度周期提供给一个特定DS1用户的有数据价值的分段。因此,如图3所示,DS1用户的第一用户(“DS1 1”)在第3、第87等调度周期中被提供服务。
调度技术的实施
a.概述
再参见图1c显示的联网/传输层总体结构。参见图1c,流水线130和输出分组管理器140的操作影响分组从分组缓存器150移出(以便沿171c发送到分组聚集层)。在以上讨论的调度技术被实施到对应于图1c的节点结构的一个实施例中,分段的服务对应于从分组缓存器150沿着输出171c移出的有数据价值的分段。
数据分段的释放由沿着触发器线路172发送的信令触发。信令的实质内容指示数据从分组缓存器150移出。例如,多个存储器读地址可以被用来读出来自分组缓存器150的一系列分组(例如,该系列分组对应于特定用户的有数据价值的分段),以便按照以上结合图3的调度技术的描述服务一个用户。
把分组标识符(从流水线130流出)置于输出分组管理器140内的特定位置将影响分组标识符的对应分组从分组缓存器150释放。也就是,输出分组管理器140具有对应于或者相关于分组从分组缓存器150释放的时间的位置。当处理输出分组管理器140内的分组标识符时,相关分组从分组缓存器150的释放被触发。
为了便于建立概念,图3的调度技术的讨论描述了当服务与一个节点通信的特定用户时的每个调度周期分段。特别需要指出的是,专用于基于“每个用户”的每个调度分段仅仅是实现上述调度技术的一个实施例。例如,更具体地说,每个调度分段可以服务一个节点内的一个“端口”。输出分组管理器140(参考上文)的不同“位置”对应于设置在节点内的不同端口。
在一个实施例中,一个端口可以被看作具有以下功能的位置:1)收集具有一个或者多个公共特征(比如,公共报头参数和/或表征分组的其它标记)的分组标识符;和2)具有一个指定的带宽量。具有最大量带宽的端口被称作最高速度等级端口,而接收低于该最大量的端口被称作较低速度等级端口。
与此相一致,作为一个较宽的可替代实施例,“端口”可以替代图3所述的“用户”。例如,分配给端口的带宽量对应于公式1提供的变量X(用于最高速度等级端口)。因此,节点可以被视为服务节点内配置的不同速度等级端口;调度周期可以被视为划分成诸多与最高速度等级端口共生的分段。
考虑到一个端口不仅被指定了一个带宽,而且还可以收集具有至少一个公共特征(比如,一个公共报头参数或者表征分组的其它标记)的分组的分组标识符。因此不同端口可以被设置在一个节点内,所以具有一个或多个公共特征的诸多分组以类似方式(如通过构成和/或服务它们的特定端口的方式引发的)处置。
例如,实现图3所述特定技术方案的一个方式(将有数据价值的分段提供给每个“用户”)是为一个特定用户配置用于收集分组标识符的每个端口。因此,可以根据指示分组目的地(例如,用户的IP目的地地址,用户的TCP端口ID,两者的组合等)的分组报头信息将分组标识符置于各端口中。此外,通过配置分配给每个端口的带宽相当于每个用户消耗的带宽(例如,用于OC3用户的155.52Mb/s端口带宽),每个端口的服务就相当于图3所述的每个用户的服务。
在其它节点配置中,端口可以被配置成根据指示分组业务类别或者优先级的报头信息(例如,IP报头内的TOS值)收集分组标识符。在其它情况下,节点可以根据分配给分组的标记将分组标识符置于各端口中(例如,一个连接标识符,用来保持由服务供应商网络支持的各种连接的跟踪)。总之,根据由各端口的相应分组共享的一个或多个公共特征来分隔进入各端口的分组标识符的流,就可以按多种不同方式配置节点,以协调不同类型分组的处理。
图4显示了具有多个端口401至433的输出分组管理器440的一个实施例。图4的特定实施例相当于上面提及的每个端口401至433相当于一个不同用户的实例。这样每个端口接收前往特定用户的分组的分组标识符。为进一步简单起见,图4的特定实施例对应于图2所讨论的示范性节点200a和图3所讨论的调度实例。
最高速度等级端口相当于每个被提供155.52Mb/s的三个端口401、402、403。前往第一OC3用户(OC3_1)的分组的分组标识符被输入到端口401;前往第二OC3用户(OC3_2)的分组的分组标识符被输入到端口402;前往第三OC3用户(OC3_3)的分组的分组标识符被输入到端口403。
较低速度等级端口对应于:1)两个端口404、405,每个端口被提供44.736Mb/s带宽,以适当控制流入一对DS3用户(DS3_1,DS3_2)的信息;2)二十八个端口406至433,每个端口被提供1.544Mb/s带宽,以便适当控制流入二十八个DS1用户(DS3_1至DS3_28)的信息。前往特定的较低速度等级用户的分组的分组标识符被输入到用户的相应端口。
分组标识符标识在缓存器哪个位置发现它们的相应分组(例如,指出发现分组的存储器位置的存储器读地址)。因此,通过释放来自一个端口(例如,沿它的相应触发线路)的分组标识符流,从分组缓存器中移出相应的分组流。分组标识符流被用来,在从它们的端口释放后,从分组缓存器中移出它们的相应分组(例如,收集一系列读地址以及为每个读地址执行存储器读取)。
调度器450授权端口释放分组标识符流,从而控制与端口服务相关联的定时。来自调度器450的每个授权(如图4所示,在一个端口的释放线路上呈现给该端口)认可与从一个端口移出的最高速度等级分段共生的有数据价值的分段。每个端口可以被告知有数据价值的分段有多大(例如,多少字节、千字节、兆字节等)。例如,调度器450可以在每个授权或者分段大小可以被存储为一个端口内的配置参数时通知该节点。根据调度器450的授权,一个端口释放分组标识符的序列,所述分组标识符的相应分组收集消耗与有数据价值的分段共生的分组缓存器内的数据量。
在一个实施例中,每个分组标识符具有一个“大小”参数,用来指示一个分组消耗多少数据。因此,一个端口通过把待释放(每个授权)的整个分组标识符的分组大小相加,可以有效释放有数据价值的分段,并且把分组标识符的释放流限制到对应于分段大小的量。由于每个端口具有一个相关联的带宽,因此调度器450授权特定端口释放有数据价值的分段的频率对应于分配给该端口的带宽。在一个实施例中,每个端口具有对应于图1c的触发器171的触发器输出。
在参见图5a和图5b之前,需要特别注意的是,是联网结构而不是图1c的特定联网结构可以被用来实现所讨论的调度技术。例如,不是流水线,而是路由器(例如,执行联网/传递层软件的处理器)可以被用来传送分组标识符到它们的适当端口。在一个可替代实施例中,设计执行路由选择或者交换功能的特定应用逻辑可以被用来替代图3的流水线130。
b.循环,按速度等级服务
图5a和图5b共同涉及可以用于图4的调度器450的调度器的实施例550。图5a显示可以用于图5b的存储器结构500b的存储器结构500a。图5a的特定示范性实施例适用于已经结合图2、图3、图4讨论的节点结构。也就是,图5a的存储器结构500a适用于622Mb/s容量节点,该节点具有:三个OC3用户/端口(即,经由端口1、2和3分别处理的用户OC3_1,OC3_2和OC3_3);两个DS用户/端口(即,经由端口4和5分别处理的用户DS3_1,DS3_2);二十八个DS1用户/端口(即,经由端口6至33分别处理的用户DS1_1,DS1_2,……,DS1_28)。
图5a的存储器结构500a包括用于每个地址的数据项,其中端口和其对应的用户与每个数据项相关联。例如,在存储器500a、500b内以地址501代表第一OC3用户OC3_1。在图5a的实施例中,与每个数据项关联的是:
1)指向下一个用户/端口的链接指针,它与循环、每速度等级链接表相联系;
2)端口标识(PID)数据结构,用于授权有数据价值的分段从数据项代表的端口(例如,地址501的端口1/用户OC3_1)中释放;3)“结束比特(donebit)”,表示已经到达循环速度等级链接表的结尾。下面说明这些参数的每一个以及调度操作的实例。
需要注意,图5的存储器500a根据循环、每速度等级链接表来管理。也就是,最高速度等级(OC3)具有与循环链接表相关联的自己的链接表;下一个最高速度等级(DS3)具有与循环链接表相关联的自己的链接表;再下一个最高速度等级(DS1)具有与循环链接表相关联的自己的链接表。链接表是将数据项逻辑地串接在一起的链,所述串接是通过在第一数据项内包含有效指向该链中的第二、下一个数据项的链接指针实现的。
例如,如图5a所示,端口1(在地址501上发现)的数据项包括一个链接指针,它具有端口2上的第二OC3用户(OC3_2)的数据项的地址502。因此,地址501和502上的数据项对应于链接表中的相邻链接。此外,注意到端口2(地址502)的数据项具有指向端口3(地址503)的数据项的指针,端口3(地址503)的数据项具有后退到端口1(地址501)的数据地址的指针。因此链接表是作为本身后退的指针循环。也就是,通过沿着链接表中的链接行进,得到一个循环模式。
还注意到,上述的循环链接表有效地链接与相同的最高(OC_3)速度等级相关联的所有端口。此外,注意到在存储器500a内还形成第二循环链接表,该存储器结构500a有效包含与下一个最高速度等级DS3相关联的所有端口(即第二循环链接表包括在地址504和505上分别代表的DS3_1和DS3_2端口)。在存储器结构500a内还形成第三循环链接表,该存储器结构500a有效包含与下一个最高速度等级DS3相关联的所有端口(即第三循环链接表包括端口6至端口33上的DS1_1至和DS1_28端口)。
因此,一个循环链接表用于由系统管理的每个速度等级。这样一种安排还可以称之为循环、每速度等级链接表的收集。图5a的存储器结构500a内的每速度等级链接表循环的安排控制特定速度等级内的每个用户的循环服务。如下文更详细说明的那样,从存储器500a读取数据项将触发有数据价值的分段从该数据项对应的端口释放。
特定速度等级的服务周期对应于存储器500a、500b内的循环链接表的一个完成的“浏览”。例如,在图2和图3的示范性配置和调度中:1)用于OC3用户的循环链接表每个调度周期运行一次(即每个调度周期读出一次地址501、502、503的每个数据项);2)DS3用户的循环链接表每三个调度周期浏览一次(即每三个调度周期读出一次地址504、505的每个数据项);3)DS1用户的循环链接表每84个调度周期浏览一次(即每84个调度周期读出一次地址506至533的每个数据项)。
图6显示了可以由图5的调度逻辑510运行的调度策略600的实施例。图6的调度策略600强调一个“有效”速度等级的标识。如果特定速度等级被认为“有效”,则在有效速度等级服务“周期”中授权下一个端口释放有数据价值的分段601。也就是,在图5b的实施例中,调度逻辑510读出对应于有效速度等级链接表中下一个端口的地址。
参见图3,可以观察到,为每个速度等级提供分离的速度等级计数。速度等级计数具有由公式1(用于最高速度等级)或者公式2(用于最高速度等级之下的速度等级)提供的模数。每个速度等级可以被视为处理它自己的计数和模数,其中计数“点”对应于数据有效分段的服务。
每个速度等级的分离计数和模数可以由图6的处理步骤使用,以控制用于每个速度等级的适当循环服务。如图6所示,在已经服务了有效速度等级“周期”内的下一个端口601之后,执行询问602,以确定较高速度等级(相对于有效速度等级)是否超时。如果超时,则把超时的速度等级的最高级设置604为有效速度等级。
这样,如果一个较低的速度等级被设置为有效速度等级,则一旦其对应计数超时,图6的处理步骤就允许较高速的等级占据“有效”状态。这种情况的一个实例出现在图3中的从第一到第二调度周期的转换时。也就是,第一调度周期的分段3041被DS3_1用户使用。因此,DS3速率是该分段3041的有效速度等级。
然而,在该分段3041服务之后,OC3计数超时(即,到达零)。作为图6的争用解决策略610的结果,有效速度等级被设置到OCE速度等级,并且指定一个分段3012服务OC3用户。当最后服务的OC3用户是OC3_3用户(在3031服务期间)时,在OC3服务周期中下一个用户是OC3_1用户。因此,指定分段3012服务OC3_1用户。
特别指出的是,图6的争用解决策略601只是可以利用的许多实施例之一。节点的交换/路由选择资源的争用可能出现时的例子包括:1)当另一个速度等级超时时,认为第一速度等级有效;或者2)两个不同速度等级已经超时。通常,调度周期510必须根据速度等级计数超时“决定”哪个端口服务。该决定可以包括或者可以不包括有效速度等级的变化。其它争用解决方案在下文中更详细描述。
需要注意的是,如果争用解决策略未导致有效速度等级的变化(例如,询问602的条件未满足,因为较高速度等级计数还未超时),则进行第二询问603以确定有效速度等级的服务周期是否已经完成。也就是,是否完成了有效速度等级的服务周期的一个完整的“浏览”?如果没有,则有效速度等级服务周期中服务601下一个端口。如果完成,则将有效速度等级设置到下一个最低速度等级。
在图3的每个调度周期中可以看到前者和后者的一个例子。作为前者的一个例子(速度等级服务周期没有完全浏览),最高速度等级计数(OC3计数)在每个调度周期的结尾超时。因此,与第一询问602和对最高速度等级的有效速度等级的重置604相一致(如上文刚刚讨论的那样),将每个调度周期的第一分段(即分段3011、3012、……301x)专用于OC3端口的服务。
服务每个调度周期的第一分段301x中的OC3端口之后,第一询问601不会达到逻辑真,因为OC3计数正好重新启动(即,OC3计数具有如图3所示的3.0的值)。因此,有效速度等级维持在最高速度等级,并且图6的处理步骤600流到第二询问603。第二询问603也不会达到逻辑真,因为在最高速度等级周期中仅服务第一端口。
如下文更详细的描述,在图3和图5a的实施例中,每个存储器结构500a数据项内的“完成”比特指示对应端口的服务是否被看作对应速度等级服务周期的完成。更详细地说,在一个端口的服务具有“1”的“完成”比特值之后,对应速度等级服务周期的状态从“未完成”变化到“完成”。因此,在服务第三端口(服务第三OC3用户OC3_3)之前,不认为最高速度等级服务周期“已完成”。
此外,一旦速度等级的对应计数超时,速度等级服务周期的状态就从“完成”变化到“未完成”。因此,根据图6的处理步骤的操作(如图3所示),速度等级服务周期的状态:1)一旦收到有效“完成”比特,就从“未完成”变化到“完成”;2)一旦速度等级对应计数超时,就从“完成”回到“未完成”。这样,对于图3的第一调度周期中的OC3速度等级,OC3服务周期被认为在时刻T0与时刻T1之间“未完成”以及在时刻T1与时刻T2之间“完成”。因此,第一端口的服务(服务第一OC3用户OC3_1)被认为启动每个OC3服务周期。
服务第一端口(对应于分段301x的服务)之后,第二询问603因而是逻辑假。结果,在有效速度等级周期中服务下一个端口。也就是,端口2被服务(经由分段302x),以便服务第二OC3用户:OC3_2。此外,在服务端口2之后,第一和第二询问602、603是逻辑假。结果,在有效速度等级周期中服务最后的端口。也就是,端口3被服务(经由分段303x),以便服务第二OC3用户:OC3_3.
这样,根据图6的处理步骤600的操作和图3的实例,在每个调度周期之内,在第三分段303x的服务之后,最高速度等级“周期”被完全浏览。在第三分段303x被服务之后,第一询问602是逻辑假(因为最高速度等级计数是1.0(即未超时),如图3所示)。然而,第二询问是逻辑真,因为最高速度等级周期(是有效速度等级周期)正好被完成。因此,有效速度等级被设置到下一个最低速度等级。
此时的下一个最低速度等级对应于DS3速度等级。需要注意的是,当有效速度等级被设置到下一个最低速度等级时,重新请求第二询问603。如果下一个较低速度等级已经完成其服务周期,这允许更低速度等级的服务。这样,在某些情况下,在下一个较低速度等级作为有效速度等级维持,而在其它情况下,更低速度等级可以被设置为有效速度等级。
前者的一个实例可以在图3的第一和第二调度周期中观看到。在第一和第二调度周期期间,当第三分段3031和3032服务之后,第二询问导致上文刚讨论的逻辑真。也就是,最高速度等级已经完成了它的服务周期。因此,有效速度等级被设置到DS3速度等级并重新请求第二询问603。
如上所述,DS3服务周期开始和结束的转换由图5a的存储器结构500a中的“完成”比特的出现来表示。当“完成”比特存在于对应于地址505的第二DS3端口(该实例中的用户DS3_2)的数据项时,在第二DS3端口被服务之前不认为DS3服务周期“已完成”。此外,DS3服务被认为“未完成”,因为如图3所示,DS3计数在时刻T0超时。
因此,当第三分段3031和3032被服务第一或者第二调度周期之后,DS3速度等级服务周期被认为“未完成”。也就是,在第一调度周期(分段3031的服务之后)的情况下,DS3端口还没有被服务;在第二调度周期(分段3032的服务之后)的情况下,第二DS3端口也没有被服务。结果,在这两种情况下,第二询问603的重新请求导致逻辑假。
在响应时,第一DS3端口(对应于第一DS3用户:DS3_1)借助第一调度周期3041的第四分段来服务,而第五端口(对应于第二DS3用户:DS3_2)借助第二调度周期3042的第四分段来服务。第二询问603的重新请求导致逻辑真(以致将有效速度等级设置到更低速度等级)的一个实例可以在图3的第三调度周期中看到。
在最高速度等级与第三调度周期的第三分段3033的服务之后,图6的处理步骤流到第二询问603。在该情况下,如上所述,已经完成最高速度等级周期并且第二询问603导致逻辑真。因此,有效速度等级被设置到对应于DS3速度等级的下一个最低速度等级。
重新请求第二询问603。然而,这里得到一个逻辑真,因为(在分段303-3服务上)DS3调度周期已经完成。也就是,当存在两个DS3用户时,这两个用户都经过在前的两个调度周期得到服务。由于第二询问603的请求导致逻辑真,因此有效速度等级被设置到相对于DS3速度等级的一下个较低速度等级。也就是,有效速度等级被设置到DS1速度等级。
第二询问603再次被请求。DS1服务周期开始和结束的转换由图5a的存储器结构500a中“完成”比特的出现来表示。当“完成”比特存在于对应于地址533的第二十八DS1端口(即,该实例中的用户DS1_28)时,在第二十八DS1端口被服务之前,不认为DS1服务周期“已完成”。
此外,DS1服务认为“未完成”,因为DS1计数在时刻T0已经超时。这样,在此情况下,关于DS1服务周期的询问603导致逻辑假;因此,造成第一DS1端口借助分段3043服务。第一、三个调度周期上观察的图案基本上是在调度器逻辑510的整个运行过程中重复,但最后分段(例如,类似于分段3043定位的分段)除外。
类似于分段3043定位的分段服务DS1服务周期中的下一个DS1用户。最后,在第84个调度周期之后,第28个DS1用户(DS1_28)将被服务,如图3的分段30484中所示。在该实例中,在全负荷条件下,图3所示的84个调度周期的图案将在随后的调度周期上重复。
c.循环的实现,按速度等级服务
参见图5a的存储器结构500a,可以注意到每个数据项具有关联的端口标识(PID)值。当从存储器结构500a、500b中读出数据项时,数据项的PID值被用来授权有数据价值的分段从对应于PID值的端口中释放。需要注意的是,有效分组数据可以从分组缓存器中释放,以及来自端口的有效信息流可以对应于指向从缓存器释放的分组的分组标识符流。
短语“来自一个端口的有数据价值的分段的释放”及类似短语可以被构成为包含这样一种技术方案。
例如,在图5a的实施例中,PID1用来从端口1(用于第一OC3用户OC3_1)释放有数据价值的分段;PID2用来从端口2(用于第二OC3用户OC3_2)释放有数据价值的分段,等等。在图5b所示的实施例中,PID值对应于多路复用器520的“信道选择”值。信道选择值确定释放信号被发送到哪个端口(配置在节点中的端口),该释放信号充分授权有数据价值的分段从该端口释放。
也就是,例如,PID1值激活多路复用器520的“端口1”输出(将触发有数据价值的分段从图4的端口401释放);PID2值激活多路复用器520的“端口2”输出(将触发有数据价值的分段从图4的端口402释放),等等。在一个可替代实施例中,选择PID数据结构到达适当端口的路由(响应于它的数值)。无论如何,当特定端口的地址被提供给存储器550a、550b时,PID值选取用来从对应于PID值的端口释放数据价值分段的地址。每个分段401至433可以用结构化的存储器或者寄存器结构来实现(例如,每个端口对应于存储器或者寄存器的区域)。调度器450可以被实施为运行软件的一个处理器或者一个逻辑电路(或者两者的组合),它具有存储器结构的理解力,并且根据上述的调度技术处理步骤读取或者授权适量的分组标识符从合适的存储器或者寄存器位置释放到释放线路上。
如图5a所示,与每个数据项内的PID值相联系的是上述各项:1)链接指针,指向PID值归属的速度等级的循环链接表中的下一个数据项;2)“完成”比特值,该比特值指示端口是否表示速度等级服务周期的结尾。当数据项从存储器550a、550b读出时,PID值被传送到多路复用器520(以便从PID值代表的端口释放有数据价值的分段),同时将链接表指针和“完成”比特传送到调度器逻辑510。
在图5的实施例中,调度逻辑510保持足以运行图6的处理步骤的信息的跟踪。例如在一个实施例中,调度逻辑510对于每个速度等级保持以下跟踪:1)根据以上讨论的循环服务方案服务的下一个端口;2)每个循环服务的状态(即,“已完成”或者“未完成”);3)争用解决信息,比如较高速度等级计数是否已经超时。
为了保持根据循环服务方案服务的下一个端口的跟踪,调度器逻辑510可以被设计成为每个速度等级维持存储空间。回想起在循环链接表中服务的下一个端口(用于循环速度等级)对应于在前端口的数据项中的链接指针。因此,当特定端口的PID值从存储器读出时,同时读取下一个端口的地址。
通过接受和存储下一个端口的该地址,调度器逻辑510能够保持为特定速度等级服务的下一个端口的跟踪。这样,无论速度等级何时成为有效,调度逻辑510可以查阅该存储的地址并用它执行存储器读取。一旦一个地址被使用,该地址就被新地址刷新和取代。通过存储用于每个速度等级的地址,调度器逻辑510就可以容易地改变到新的有效速度等级并持续它的适当循环服务。
每个速度等级的循环服务的状态(即“已完成”或者“未完成”)可以按上述方式,根据“完成”比特的接受和每个速度等级的计数来确定。这样,调度逻辑510可以被设计成存储每个速度等级的模数值以及执行每个速度等级的相应计数。当用于特定速度等级的计数超时,该速度等级的循环服务的状态可以被认为“未完成”。此外,如上所述,当在存储器读取期间观察到“1”的“完成”比特时,调度器510可以被指定为确认速度等级的服务周期正好“完成”。
需要特别注意新端口(和它们的相应用户)可以被配置成利用以上讨论的调度方案的联网系统的情况。也就是,仅通过升级存储器结构500a就可以使一个新端口服务一个新用户。例如,简单地把数据项插入到存储器中以及配置DS3速度等级的链接指针以有效地把新项目置于服务周期中(例如,通过修改目前的链接指针项以指向新数据项;以及使新数据项链接指针维持由修改的数据项原本拥有的值),就可以扩展DS3用户的数量。
同样,只要使数据项离开它的速度等级链接表周期,端口或者用户就可以容易地脱离服务。例如,通过修改指向待消除的数据项的链接指针项,以便改为指向由待消除的数据项指向的数据项,就可以从速度等级服务周期中移除待消除的数据项。当端口本身可以被实施为结构化的存储器或者寄存器结构(如上所述)时,还可以容易地增加或者消除端口。
需要注意的是,图6的特定资源争用解决方案610以较低速度等级的费用有效地服务较高速度等级。例如,如果节点被配置成超量订购(即,所处理的所有端口/用户的总带宽大于节点的路由选择或者交换的带宽),则较高速度等级用户可能不经受服务的任何损失,而较低速度等级用户则可能是完全饥饿的。这得自于以下事实:图6的争用解决步骤610自动地将有效速度等级改变到最高、超时速度等级。
替代的争用解决实施例可以存在。例如,在更平均地分配与整个预购相联系的服务降级的方案中,争用解决步骤可以改为决定将有效速度等级改变为,在计数超时后使用户或端口等待最长时间并且在该速度等级计数之内不被服务的速度等级(即,在所有用户或者端口可能被服务之前期满的速度等级计数)。
d.端口排队
图7显示了可以用于图4所示的端口401至433的任一个端口700的实施例。也就是,例如,如果图7的端口700对应于图4的第一端口401,则图4的释放线路409和图7的释放线路709可以被视为相同的释放线路。同样,图4的触发线路408和图7的释放线路708可以被视为相同的触发线路。此外,参见图5b,释放线路509可以分别对应于图4和图7的释放线路409和709。
如上所述,释放线路709可以有效地向端口700提供释放有数据价值的分段的权限。因此,在该通知之后,一系列分组标识符(例如,每个指向可以发现分组的存储器位置)从一个或者多个队列701至705流向端口的输出708。如上所述,分组标识符沿端口输出708的发送触发分组的释放(例如,来自分组缓存器)。从分组缓存器释放的所有分组的组合总量对应于有数据价值的分段。
放置于端口(经由端口输入707)的每个分组标识符被存入特定的队列中。例如,在一个实施例中,每个分组标识符不仅指向一个分组,而且还表示应当在端口队列701至705的哪一个中存储分组标识符。参见图1c,在一个实施例中,使“队列id”成为分组标识符部分是由分组处理流水线130执行的处理的部分。
在一个实施例中,每个端口701至705对应于不同的优先级。也就是,例如端口优先级从右到左增加(因此,端口队列701对应于最高优先级队列,而端口优先级705对应于最低优先级队列)。存储在较高优先级队列中的分组标识符经历的延迟通常小于较低优先级队列中存储的分组标识符。也就是,在等候比较低优先级队列中存储的其它分组标识符更少时间之后,较高优先级队列中存储的分组标识符倾向于从它们的相应队列中释放(并传送到端口输出708)。
因此,如果为每个用户提供一个端口,联网系统则能够区分发送到相同用户的业务。例如,用户可能对接收传统数据业务(例如,电子邮件、文件等)和实时业务(例如,实况电话呼叫通话)感兴趣。由于实时业务通常需要低等候时间而传统数据业务通常不关心等候时间量,因此指向与实时业务关联的分组的分组标识符可以被置于较高优先级队列中,而指向与传统数据业务关联的分组的分组标识符可以被置于较低优先级队列中。
在一个实施例中,如图7所示,存在5个端口队列701至705。因此存在5个不同的优先级。一个队列,比如最高优先级队列701,可以用来保持指向联网控制分组的分组标识符。联网控制分组用于联网维护目的(即,升级网络拓扑信息,失败报告,等等)。
在一个实施例中,一个队列如第二最高优先级队列702被用来存储指向与用户“实时”业务关联的分组的分组标识符。如上所述,“实时”业务在传统上被视为“实况”事务处理,其中快速接收信息的失败导致不良通信。这方面的例子包括“实况”电话通话或者视频干扰。
如果讲话的第一用户与收听得第二用户间存在过长的等待时间,则用户间的语言通信可以中断。因此,一个网络试图通过比其它类型信息“更快”的一个网络(在1.0秒内或者更短,或者0.1秒内或者更短)发送该类型信息。在一个实施例中,队列702可以被用来存储指向该类型业务的分组标识符。
再一个实施例中,一个队列如第三最高优先级队列703被用来存储指向用户的“快速数据”的分组标识符。快速数据业务可以被表征为存在于“实时”业务与“传统”数据业务之间的某处。因此,快速数据业务对应于这样一种业务,该业务应当具有比传统数据业务低的等待时间但不一定需要实时业务的低等待时间(例如,低于几秒钟或者低于一分钟)。这方面的实例包括自动出纳机交易或者信用卡交易。在这些应用中,例如,用户通常不介意为他/她的交易等候几秒或者几分钟。因此,相应的等待时间是合适的。
在一个实施例中,一个队列比如第四最高优先级队列用来存储指向用户传统数据业务的分组标识符。传统数据业务是对网络的等待时间较不关心的业务。因此,超过几分钟或者更长时间的等待时间是可以接受的。这方面的例子包括各种文件和电子邮件业务。
在一个实施例中,一个队列如最低优先级队列705用来存储指向“尽力而为”业务的分组标识符。尽力而为业务通常是超出用户的分配带宽或者超过网络或者联网系统的业务。然而,需要注意在不同实施例中,尽力而为队列(例如队列705)可以被配置成存储还指向用户传统数据业务的分组标识符。
这可以顾及“快速业务”的多等级。例如,第一较高优先级快速业务的分组标识符可以被存储到第三最高优先级队列703中;第二较低优先级快速业务可以被存储到第四最高优先级队列704中;传统数据业务和尽力而为业务的分组标识符可以在最低优先级队列705中一起排队。需要注意,为每类业务的时间特征提供的实例(例如,对“实时”业务小于一秒)是示范性的,并且可以随各实施例变化。因此,其它实施例超出上述范围是可能的。
在一个实施例中,图1c的分组处理流水线130能够识别每个分组对应的业务类型,并且在响应时将适当队列id放入每个分组标识符中。特别需要指出的是,其它实施例也是可能的(关于队列数量和可以有效排队的业务类型)。
如上所述,端口带宽是通过控制每隔多长时间从端口释放有数据价值的分段来控制的。在一个实施例中,有数据价值的分段P可以被表示为:
P=XT 公式3
其中X是节点服务的最高速度等级的速率,T是每调度周期消耗的时间量。例如,参见图3,T对应于每个调度周期的时间宽度(即,第一调度周期的T2与T0之间的时间距离),X对应于155.52Mb/s的速率。
这样,对于1秒的调度周期宽度(即,T=1秒),有数据价值的分段P对应于数据的155.52Mb/s。在此情况下,有数据价值的分段对应于从端口输出708流出的大量分组标识符,其中分组标识符流指向的所有分组的组合大小是155.52Mb。作为另一个实例,对于调度周期宽度T=.001秒,有数据价值的分段P是155.52Kb。在此情况下,由来自端口输出708的分组标识符流指向的所有分组的组合大小是155.52Mb。
然而需要特别指出,关于端口排队的短语“分段”或者“有数据价值的分段”不仅对应于与最高速度等级共生的有数据价值的分段(如公式3明确定义的)而且还对应于“数据量”。也就是,在一个实施例中,结合图7、图8和图9讨论的端口排队可以用来支持结合图3、图5和图6讨论的调度技术(如从公式得知)。
然而,结合图7。图8和图9讨论的端口排队还可以用来支持其它调度技术,该调度技术仅提供释放端口的数据量(即不一定对应于与最高速度等级共生的数据量)。因此,对于端口排队,术语“分段”和类似术语不解释为自动限定包括结合图3、图5和图6概述的调度技术。
在可以采用图7的方案实现的一个实施例中,每个队列701至705被给予一个对应于将接收的服务速率的“加权”。也就是,给予特定端口的带宽量可以被视为细分(再划分)。端口带宽的每个细分可以用来服务一个特定端口队列。这样,通过分配给一个队列可以为释放线路709上接收的每个授权释放的一个固定数据量,可以实现向队列分配唯一加权。
固定数据量也可以称之为子分段Px,它可以被表示为:
Px=wtxP;x=1到N 公式4
其中:1)Px是队列“x”的子分段;2)wtx是给予队列“x”的端口带宽子分段(例如,按十进制百分比术语表示);30N是给予端口带宽的确保型百分比的队列数量。例如,如果图7的队列701至705的每个队列被给予端口带宽的20%,那么(依据公式4)分配给每个队列的子分段是0.2P。
因此(依据上面的实例),对于结合图2至图5讨论的示范性节点所利用的T=1秒的调度周期,分配给每个队列31.104Mb的子分段(即155.52Mb×0.2=31.104Mb);以及对于T=.001秒的调度周期,每个队列701至705可以释放指向一系列其组合大小对应于31.104Mb的分组的分组标识符流(用于释放线路709上接收的每个授权)。这对应于来自所有组合队列的相当于155.53Mb的数据容许流。
因此,为了观看,每个队列可以给配置为具有优先级和带宽。较高优先级队列通常具有比较高优先级队列低的等待时间。等待时间是每个队列的实供负荷以及服务速率的函数。通常,等待时间随着队列的实供负荷增加和/或来自队列的服务速率降低而增加。因此,队列等待时间随着随时间接收的分组标识符的数量(即,它的实供负荷)增加和/或随着所接收的端口带宽的子分段(即,它的服务速率)减少而增加。
在一个实施例中,节点或者联网系统设计成限制分配给较高优先级队列的业务流,使这些数据流的组合速率不超过分配给较高优先级队列的端口带宽的子分段。这里,当队列的最大实供负荷小于其服务速率时,通过较高优先级队列的等待时间最小。在另一个实施例中,节点被配置成使分配给较低优先级队列的业务流的组合速率可以超过分配给较低优先级队列的端口带宽的子分段。当队列的最大实供负荷大于其服务速率时,通过较低优先级队列的等待时间将随着服务速率的实供负荷的比值上升而增加。
队列调度器706负责控制释放线路709上接收的每个授权的适当分组标识符流,所述分组标识符来自队列701至705。图8显示了可以由图7的队列调度器706利用的步骤。如图8所示,一旦接收到释放有分组价值的分段的授权,调度器706就根据队列的加权把有带宽价值的分段有效分布801到队列上。有带宽价值的分段对应于提供给作为整体端口的服务速率。
在一个方案中,队列调度器706保持分配给每个队列(如公式4表达的)的子分段Px,以及保持有数据价值的总分段P。例如,在一个实施例中,队列调度器分配存储空间711(例如,一个内部或外部寄存器或存储器位置),该存储空间保持每个队列的子分段Px以及总分段P的跟踪。一旦收到(自释放线路709)释放有数据价值的分段的授权,队列调度器706就从该存储空间读出信息。
在一个替代实施例中,存储空间711保持用于每个队列的加权wtx并且将总分段大小(P)存储到队列调度存储器空间711内。在此情况下,一旦收到释放有数据价值的分段的授权,队列调度器706就计算用于每个队列的子分段Px。在另一个替代实施例中,释放线路709上接收的授权取二进制字的形式,具有对应于总分段大小(P)的值。在此情况下,存储空间711只需要存储每个队列的子分段(或加权)。
参见图7和图8,一旦队列调度器706处理分配给每个队列的子分段(可以视为整个分段的分布形式),就在有数据的(populated)队列上根据其优先级启动有带宽价值的分布式分段的消耗802。也就是,这些具有至少一个分组标识符的队列(即有数据的队列)根据其优先级来服务。
在一个实施例中,队列的优先级不仅在它的等待时间中得到反映,而且还在它的关于其他队列的服务位置中得到反映。也就是,在服务较低优先级队列之前,调度器706先服务较高优先级队列。例如,如果优先级从最高到最低排序,即在图7中从左至右(几队列701是最高优先级队列,队列705是最低优先级队列),则仅仅在左侧的这些有数据队列已经被服务到它们的子分段区域之后才由调度器707服务一个队列
因此,对于图7的实施例,通过服务有数据队列,从左至右直到每个队列的子分段区域,来实现有带宽价值的分布式分段的消耗802。例如,如果队列701和703至705被装载(populated)(即,只有队列702是空的),那么队列701被服务到它的子分段P3的区域,那么队列704被服务到它的子分段P4的区域,那么队列705被服务到它的子分段P5的区域。
此外,服务一个队列直到它的子分段的区域相当于控制来自队列的分组标识符流,使该分组标识符流指向的所有分组的组合大小与分配给该队列的子分段的相似。当该作业有效消耗被分布到该队列的端口带宽时,服务一个队列直至它的子分段区域相当于分配给作为整体端口的有带宽价值的分布式分段的一段。
正如更详细说明的那样,最初在有数据队列上根据它们的优先级消耗802有带宽价值的分布式分段,将队列服务有效地分成两个分量:1)第一分量,专用于向一个或者多个队列提供带宽的“确保”量(如经过它们的加权配置的那样);2)第二分量,专用于向该队列提供(应当存在的)任何额外带宽(例如,根据一个适当程序)。参见图8,第一份量对应于步骤802,而第二分量对应于步骤803。
对于队列加权的组合总数增加1.00或以下的值的配置,子分段可以被视为服务保障量,该服务保障量被提供给它对应的队列,而不考虑它的优先级。这里,当队列加权的组合总数增加1.00或以下的值时,所有子分段的组合数据总量增加不多于从作为整体端口接收的数据总分段P。这样,最初集中在每个队列子分段的服务的焦点是确保较低优先级队列甚至在重业务负荷条件下也能接收它们的服务保障量。
在可替代配置中,所有队列加权的组合总数可以增加大于1.00的值。这里,当队列加权的组合总数增加大于1.00的值时,所有子分段的组合数据总数大于从整体端口服务的数据总分段P。在某种意义上,该端口被“超量订购”。在适度业务加载条件下,超量订购可能不是显而易见的,因为许多队列可能是空的(即,无数据)或者仅被输入少量数据(即,端口的实供负荷小于供应给端口的分段P)。
因此对列仍然享有它们的确保型服务速率。然而在重业务加载条件下,超量订购可以使某些队列接收低于它们的确保型服务速率的数据。尽管如此,服务的优先级方面(即,在较低优先级队列之前,较高优先级队列被服务到它们的子分段区域)确保“相当于”1.00的组合队列加权的较高优先级队列的服务速率。
也就是,从最高优先级队列开始并向下工作(例如,到达图7所示的右边)。每个队列被充分服务到它的子分段的区域,之后服务下一个较低优先级队列。最后,已经释放的数据总量相当于全部分段并且使整体端口的服务停止。在此情况下,落入组合总队列加权的第一1.00之内的这些队列仍然享有它们的确保型服务速率。
因此,根据队列的优先级最初服务到达其子分段区域的队列,在所有情况下都能使最高优先级队列确保它们的服务“配置”。此外,在组合队列加权小于1.00的情况下,使所有队列确保它们的服务配置。不论组合队列加权是否小于1.00(以及如何分配加权),做出一个对配置节点的人员是可用的决定。
注意的是,在一个实施例中,如果多个队列加权彼此相等地设置并增加1.00的组合值,则严格循环方案可以被整体端口仿真。在得自于该方案的情况下(即,其中各队列加权被单独定制),整个端口行为可以对应于更多的加权合理队列。
与如何分配队列加权无关,在不同实例中可能存在每个有数据队列已经被服务到它们的子分段区域之后保持的“未用”带宽。例如,如果特定队列正经历轻加载条件,则该队列可以不装载或者(尽管有数据)可以存储比子分段允许的少的业务。
在前者情况下,队列服务不发生,而在后者情况下,服务对应于比全部子分段少的分段。因此,在所有数据队列已经被服务到它们的子分段区域之后,(注意,分段与“到它们的子分段区域”可以被读作“到少于全部子分段的分段”),从分组标识符合成流指向的所有分组的组合大小可以小于有数据价值的全部分段P。
因此,有数据价值的全部分段P与已经被指向的所有分组的组合大小的差别被视作“未用”带宽。该未用带宽随后可应用于一个或多个端口内存在的数据队列。因此,如图8所示,队列服务的第二分量包含用任何未用带宽维持有数据端口队列(例如,共生地)的服务803。
在各个实例中,未用带宽有助于清除只经历特别轻的实供负荷的队列。例如,如果一个队列突然接收大量分组标识符,则确保型服务速率(如通过全部子分段的服务实现)可能不足以清空队列。在此情况下,任何未用带宽应用于该队列将有助于减少队列的数据。
在一个实施例中,未用带宽被公平地施加到各队列上。例如,在一个方案中,“循环”指针由队列调度器706保持。只要未用带宽起因于释放有数据价值的分段的授权,队列调度器706就把未用带宽应用于由循环指针指向的队列。然后递增循环指针,以便指向“下一个”队列(例如,队列704是正在用未用带宽服务的队列703的下一个队列)。
一旦循环指针最初指向的队列是空的,队列调度器706就把未用带宽应用于“下一个”队列(由循环指针当前指定的)并再次递增指针。在许多情况下,最终完全消耗掉未用带宽,使有数据价值的全部分段由端口服务。此时,完成端口的服务。
下一个未用带宽量(起因于释放有数据价值的分段的后续授权)将应用于循环指针中指定的队列。在可替代实施例中,可以一个欠公平方式来应用未用带宽。例如,不采用严格的循环方案,而是,比较低优先级队列更频繁地用未用带宽服务较高优先级队列(例如,上述的加权方式)。
图9更详细地显示了图8概述的各处理步骤的一个可能的实施例。具体说,图9的流902可以被视为图8的流802的实施例。此外,图9的流903可以被视为图8的流803的实施例。在图9的方案中,队列调度器706控制分组标识符从各个队列中适当释放,这通过维持以下各项实现:1)一个用于每个队列的“队列计数”,对从队列释放的分组的大小计数(回忆分组标识符可以被配置成指定它涉及的分组的大小);2)“总计数”,对从整体端口释放的分组的大小计数。
队列计数用来控制上述的队列服务的第一(确保型)分量。这里,队列子分段大小Px用来限制队列计数。也就是,最初把队列计数设置到等于队列子分段大小。队列计数递减计数到对应于从队列有效释放的分组的大小的一个量(例如,按字节测量)。一旦队列计数达到零,队列调度器706就获知队列的全部子分段正好完成服务。
“总计数”用来在端口根据释放有数据价值的分段的授权服务该队列之后,终止端口的服务。这里,端口全部分段大小P被用作对总计数的限制。也就是,最初设定总计数等于全部分段大小P。总计数递减计数到对应于从端口释放的每个分组的大小的一个量。一旦总计数到达零,队列调度器706就知道有数据价值的全部分段已经由端口服务。
如上所述,在队列调度706收到释放有数据价值的分段的授权之后,队列调度器706获知各子分段被应用到每个队列。该作业把有带宽价值的全部分段有效地分配到各队列,并对应于图9的处理步骤的START(开始)。也就是,图9的处理步骤假定已经收到释放有数据价值的分段的授权,并且队列调度器706已经向各队列分配带宽的全部分段。
调度处理步骤可以强调当前集中服务的“有效”队列的标识。因此,在收到释放有数据价值的分段的授权之后,队列调度器706将有效队列905设定到最高优先级有载(populated)队列,其队列计数大于零(如果这样一个队列存在)。队列调度器706可以被配置成在公布有效队列之前查询每个队列的有载和计数状态;或者,只查询最高优先级队列,以及如果这些条件满足,则公布有效队列。
然后服务906有效队列。也就是从队列释放分组标识符以及从端口输出708发出该标识符。队列计数和总计数的递减与从队列有效释放的分组的大小成正比。如果总计数达到零或者降到零以下,则终止907端口的服务。如果总计数大于零,则有效队列被再次服务906,假定队列计数大于零908。该处理重复进行直至队列计数达到零或者降到零以下(或者队列变成空的)。此时,全部子分段已经由有效分段服务。
注意的是,某些队列计数可以降到零以下,以作为处理步骤的一个结果。在一个实施例中,负队列计数是对后续授权的“赤字调整”。例如,如果特定队列具有Px的子分段并且队列计数降到零至-Z(停止该队列的服务);一旦收到释放该端口的有数据价值的分段的下一个授权,队列计数值被初始设置到Px-Z(而不是Px),以便维持为该队列配置的带宽的完整性。
在全部子分段已经由有效队列服务之后,队列调度器706将有效队列设定到下一个优先级有载队列,其队列计数大于零905。连续服务下一个最高优先级有载队列(到数据全部子分段区域)的处理连续进行,直至总计数达到零或者降到零以下,或者直至给予子分段的每个队列具有以下任一个(904):1)具有达到零或者降到零以下的队列计数;或者2)变成空的。
此时,第一服务分量(确保型服务速率分量)被完成,因此,如果任何未用带宽保持(即,总计数大于零),则有效队列降到下一个有载队列(909)。需要注意,调度器可以备配置成具有一个循环指针,该循环指针指向将采用未用带宽服务的下一个队列。
如果所指向的队列未被装载,则递增循环指针直至指向一个有载队列(然后变成有效队列)。然后按循环方式服务有载队列,直至总计数达到零或者降到零以下。在一个实施例中,如果每个队列在总计数达到零或者降到零以下之前变空,则端口的服务终止并且仅处理未用带宽。
队列调度器706可以采用执行上述处理步骤的逻辑来设计。队列可以被实施为存储器装置内的链接表。例如,在一个实施例中,存储器中的每个分组标识符数据项包括指向队列中的下一个分组标识符的指针。因此,调度器逻辑706可以通过从存储器装置阅读分组标识符服务来服务队列。在阅读存储器的同时,队列调度器706控制队列中的下一个分组标识符的地址。
参见图7,队列701至队列705可以被实施为结构化的存储器或者寄存器结构。也就是,例如,第一队列(例如,队列701)对应于第一存储器或者寄存器区域,第二队列(例如,队列702)对应于第二存储器或者寄存器区域,等等。队列调度器706可以被实施为具有软件的处理器或者逻辑电路(或两者的组合),用于实现队列处理处理以及上述的处理步骤。
还需要注意的是,本说明书的实施例不仅可以被实施在半导体芯片内而且还可以被实施在机器可读介质内。例如,可以将上述设计存储到和/或嵌入到机器的可读媒介内,该机器可读媒介与用于设计半导体器件的设计工具相关联。这方面的实例包括:以VHSIC硬件描述语言(VHDL)、Verilog语言或者SPICE语言格式化的连接表。某些连接表实例包括:一个行为等级连接表,一个寄存器传送电平(RTL)连接表,门电平连接表以及晶体管电平连接表。机器可读媒介包括具有布置信息如GDS-II文件的媒介。此外,连接表文件或者用于半导体芯片设计的其它机器可读媒介被用在执行上述技术的方法的仿真环境中。
因此,也可以理解为本发明的实施例可以用作或者支持一个软件程序,或者在机器可读介质上或之内实现,所述软件程序在某种形式的处理核心(比如计算机的CPU)上运行。还需要注意的是,上述的处理步骤可以被实施为软件程序并由处理器(例如,微处理器,微处理器的收集器,嵌入式处理器等)执行。机器可读媒介包括以机器(例如计算机)可读形式存储或者传送信息的任何机构。例如,机器可读媒介包括只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光存储介质;闪存装置;电、光、声或者其他形式的编程信号(例如,载波、红外线,数字信号等);等等。
在上述说明中,已经参考特定的示范性实施例说明了本发明。然而,在不背离所附权利要求所述的本发明范围的条件下,可以对本发明进行各种修改和变化,这是显而易见的。因此说明书和附图被看作示例性的而不具有限制意义。
Claims (2)
1、一种设备,包括:
一个队列调度器,根据分配给每个所述队列的加权把有带宽价值的分段分配给多个队列,所述多个队列按最高优先级到最低优先级排列,所述队列由所述调度器服务直至每个队列消耗了每个所述相应加权,其中较高优先级队列先于较低优先级队列得到服务。
2、一种方法,包括:
a)根据分配给多个队列中的每个队列的各自加权、和每个所述队列可服务的数据量,来划分数据总量;
b)服务一个或多个有载队列;每个所述有载队列的服务连续,直至所述有载队列不再有载,或者为所述有载队列确定的所述数据量已经被释放;和
c)服务一个或者多个保持有载的所述队列,如果有有载队列,则服务到从组合的所有所述队列中释放出所述总数据量为止,其中包括所述有载队列的所述服务。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/823,636 | 2001-03-30 | ||
US09/823,636 US6914882B2 (en) | 2001-03-30 | 2001-03-30 | Method and apparatus for improved queuing |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1500337A true CN1500337A (zh) | 2004-05-26 |
Family
ID=25239302
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA028076605A Pending CN1500337A (zh) | 2001-03-30 | 2002-03-29 | 用于改进队列的方法及设备 |
Country Status (7)
Country | Link |
---|---|
US (1) | US6914882B2 (zh) |
EP (1) | EP1380148B1 (zh) |
CN (1) | CN1500337A (zh) |
AT (1) | ATE407505T1 (zh) |
AU (1) | AU2002306984A1 (zh) |
DE (1) | DE60228696D1 (zh) |
WO (1) | WO2002080475A2 (zh) |
Families Citing this family (68)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7385993B2 (en) * | 2001-12-21 | 2008-06-10 | International Business Machines Corporation | Queue scheduling mechanism in a data packet transmission system |
US7092360B2 (en) * | 2001-12-28 | 2006-08-15 | Tropic Networks Inc. | Monitor, system and method for monitoring performance of a scheduler |
US7245626B1 (en) * | 2002-01-17 | 2007-07-17 | Juniper Networks, Inc. | Systems and methods for permitting queues to oversubscribe |
CA2393373A1 (en) | 2002-07-15 | 2004-01-15 | Anthony Gerkis | Apparatus, system and method for the transmission of data with different qos attributes. |
US20040255018A1 (en) * | 2002-10-04 | 2004-12-16 | Brian Taraci | Method and apparatus for providing universal web access functionality with port contention resolution |
CN100466593C (zh) * | 2003-01-13 | 2009-03-04 | 华为技术有限公司 | 一种支持多业务的综合队列调度的实现方法 |
US7336665B1 (en) * | 2003-02-12 | 2008-02-26 | Cisco Technology, Inc. | Polling scheme for controlling traffic through a networking system |
US7546475B2 (en) * | 2003-05-13 | 2009-06-09 | Hewlett-Packard Development Company, L.P. | Power-aware adaptation in a data center |
CN1298139C (zh) * | 2003-08-15 | 2007-01-31 | 中兴通讯股份有限公司 | 一种支持多端口多业务的多级调度的方法 |
US7613115B2 (en) * | 2003-10-31 | 2009-11-03 | International Business Machines Corporation | Minimal delay transmission of short messages |
US7596086B2 (en) | 2003-11-05 | 2009-09-29 | Xiaolin Wang | Method of and apparatus for variable length data packet transmission with configurable adaptive output scheduling enabling transmission on the same transmission link(s) of differentiated services for various traffic types |
US8248932B2 (en) * | 2004-05-26 | 2012-08-21 | West Lane Data Llc | Method and apparatus for fairly sharing excess bandwidth and packet dropping amongst subscribers of a data network |
US20060088032A1 (en) * | 2004-10-26 | 2006-04-27 | Bradley Venables | Method and system for flow management with scheduling |
KR100734827B1 (ko) * | 2004-12-07 | 2007-07-03 | 한국전자통신연구원 | 가입자 망에서 가입자들간의 공평성을 보장하기 위한 장치및 그 방법 |
US7453804B1 (en) * | 2005-02-08 | 2008-11-18 | Packeteer, Inc. | Aggregate network resource utilization control scheme |
US8213340B1 (en) * | 2005-08-15 | 2012-07-03 | Tellabs Operations, Inc. | System and method for managing a node split across multiple network elements |
US7756134B2 (en) * | 2006-05-02 | 2010-07-13 | Harris Corporation | Systems and methods for close queuing to support quality of service |
US7894509B2 (en) | 2006-05-18 | 2011-02-22 | Harris Corporation | Method and system for functional redundancy based quality of service |
US20070291656A1 (en) * | 2006-06-16 | 2007-12-20 | Harris Corporation | Method and system for outbound content-based QoS |
US20070291768A1 (en) * | 2006-06-16 | 2007-12-20 | Harris Corporation | Method and system for content-based differentiation and sequencing as a mechanism of prioritization for QOS |
US7990860B2 (en) * | 2006-06-16 | 2011-08-02 | Harris Corporation | Method and system for rule-based sequencing for QoS |
US7856012B2 (en) | 2006-06-16 | 2010-12-21 | Harris Corporation | System and methods for generic data transparent rules to support quality of service |
US8516153B2 (en) * | 2006-06-16 | 2013-08-20 | Harris Corporation | Method and system for network-independent QoS |
US8064464B2 (en) * | 2006-06-16 | 2011-11-22 | Harris Corporation | Method and system for inbound content-based QoS |
US7916626B2 (en) * | 2006-06-19 | 2011-03-29 | Harris Corporation | Method and system for fault-tolerant quality of service |
US8730981B2 (en) * | 2006-06-20 | 2014-05-20 | Harris Corporation | Method and system for compression based quality of service |
US7769028B2 (en) * | 2006-06-21 | 2010-08-03 | Harris Corporation | Systems and methods for adaptive throughput management for event-driven message-based data |
US20080013559A1 (en) * | 2006-07-14 | 2008-01-17 | Smith Donald L | Systems and methods for applying back-pressure for sequencing in quality of service |
US8300653B2 (en) | 2006-07-31 | 2012-10-30 | Harris Corporation | Systems and methods for assured communications with quality of service |
US20080025318A1 (en) * | 2006-07-31 | 2008-01-31 | Harris Corporation | Systems and methods for dynamically customizable quality of service on the edge of a network |
US7801104B2 (en) * | 2006-10-26 | 2010-09-21 | Hitachi, Ltd. | System and method for reducing packet collisions in wireless local area networks |
US8279885B2 (en) * | 2007-09-25 | 2012-10-02 | Packeteer, Inc. | Lockless processing of command operations in multiprocessor systems |
US8111707B2 (en) * | 2007-12-20 | 2012-02-07 | Packeteer, Inc. | Compression mechanisms for control plane—data plane processing architectures |
US7813277B2 (en) * | 2007-06-29 | 2010-10-12 | Packeteer, Inc. | Lockless bandwidth management for multiprocessor networking devices |
US8059532B2 (en) * | 2007-06-21 | 2011-11-15 | Packeteer, Inc. | Data and control plane architecture including server-side triggered flow policy mechanism |
US9419867B2 (en) * | 2007-03-30 | 2016-08-16 | Blue Coat Systems, Inc. | Data and control plane architecture for network application traffic management device |
US8547878B2 (en) | 2010-05-18 | 2013-10-01 | Lsi Corporation | Modularized scheduling engine for traffic management in a 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 |
US8869150B2 (en) | 2010-05-18 | 2014-10-21 | Lsi Corporation | Local messaging in a scheduling hierarchy in a traffic manager of 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 |
US8848723B2 (en) | 2010-05-18 | 2014-09-30 | Lsi Corporation | Scheduling hierarchy in a traffic manager of a network processor |
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 |
US8869156B2 (en) | 2010-05-18 | 2014-10-21 | Lsi Corporation | Speculative task reading in a traffic manager of a network processor |
US8910168B2 (en) | 2009-04-27 | 2014-12-09 | Lsi Corporation | Task backpressure and deletion in a multi-flow network processor architecture |
US8638805B2 (en) | 2010-05-18 | 2014-01-28 | Lsi Corporation | Packet draining from a scheduling hierarchy 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 |
US9727508B2 (en) | 2009-04-27 | 2017-08-08 | Intel Corporation | Address learning and aging for network bridging in a network processor |
US8874878B2 (en) | 2010-05-18 | 2014-10-28 | Lsi Corporation | Thread synchronization in a multi-thread, multi-flow network communications processor architecture |
US8565250B2 (en) | 2010-05-18 | 2013-10-22 | Lsi Corporation | Multithreaded, superscalar scheduling in a traffic manager of a network processor |
US9152564B2 (en) | 2010-05-18 | 2015-10-06 | Intel Corporation | Early cache eviction in a multi-flow network processor architecture |
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 |
US8619787B2 (en) | 2010-05-18 | 2013-12-31 | Lsi Corporation | Byte-accurate scheduling 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 |
US8837501B2 (en) | 2010-05-18 | 2014-09-16 | Lsi Corporation | Shared task parameters in a scheduler of 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 |
US8018958B1 (en) * | 2009-06-23 | 2011-09-13 | Juniper Networks, Inc. | System and method for fair shared de-queue and drop arbitration in a buffer |
US8681609B2 (en) * | 2009-08-21 | 2014-03-25 | Ted H. Szymanski | Method to schedule multiple traffic flows through packet-switched routers with near-minimal queue sizes |
US8355328B2 (en) * | 2009-08-27 | 2013-01-15 | Broadcom Corporation | Dynamic load balancing |
CN103283220B (zh) * | 2010-12-26 | 2016-08-10 | Lg电子株式会社 | 发送广播服务的方法、接收广播服务的方法和接收广播服务的设备 |
CN103379038B (zh) * | 2012-04-12 | 2018-08-03 | 南京中兴新软件有限责任公司 | 一种流量调度的装置及方法 |
WO2014032960A1 (en) * | 2012-08-29 | 2014-03-06 | Universiteit Gent | Method and device for scheduling data traffic |
US10057174B2 (en) | 2015-08-14 | 2018-08-21 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Dynamic group multipathing |
WO2017142994A1 (en) * | 2016-02-16 | 2017-08-24 | Crynamt Management Llc | Enhance communication of network traffic |
JP7065876B6 (ja) * | 2017-03-30 | 2022-06-07 | コーニンクレッカ フィリップス エヌ ヴェ | 低速取得データ・リンクを有する3次元超音波イメージング及び関連する装置、システム、及び方法 |
JP2020154391A (ja) * | 2019-03-18 | 2020-09-24 | 富士ゼロックス株式会社 | 情報処理システムおよびプログラム |
US11909841B2 (en) * | 2020-05-29 | 2024-02-20 | Intel Corporation | System, apparatus and method for adaptive peer-to-peer communication with edge platform |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2104753C (en) * | 1992-10-29 | 1999-02-16 | Kotikalapudi Sriram | Bandwidth allocation, transmission scheduling, and congestion avoidance in broadband atm networks |
US5533020A (en) | 1994-10-31 | 1996-07-02 | International Business Machines Corporation | ATM cell scheduler |
US5881313A (en) | 1994-11-07 | 1999-03-09 | Digital Equipment Corporation | Arbitration system based on requester class and relative priority including transmit descriptor valid bit for a shared resource having multiple requesters |
US5719859A (en) * | 1995-09-19 | 1998-02-17 | Matsushita Electric Industrial Co., Ltd. | Time division multiple access radio communication system |
US5841772A (en) | 1996-03-07 | 1998-11-24 | Lsi Logic Corporation | ATM communication system interconnect/termination unit |
US6377583B1 (en) | 1996-06-27 | 2002-04-23 | Xerox Corporation | Rate shaping in per-flow output queued routing mechanisms for unspecified bit rate service |
US5831980A (en) | 1996-09-13 | 1998-11-03 | Lsi Logic Corporation | Shared memory fabric architecture for very high speed ATM switches |
US5982748A (en) * | 1996-10-03 | 1999-11-09 | Nortel Networks Corporation | Method and apparatus for controlling admission of connection requests |
US5953318A (en) | 1996-12-04 | 1999-09-14 | Alcatel Usa Sourcing, L.P. | Distributed telecommunications switching system and method |
US6094435A (en) * | 1997-06-30 | 2000-07-25 | Sun Microsystems, Inc. | System and method for a quality of service in a multi-layer network element |
US6389031B1 (en) | 1997-11-05 | 2002-05-14 | Polytechnic University | Methods and apparatus for fairly scheduling queued packets using a ram-based search engine |
US6198723B1 (en) * | 1998-04-14 | 2001-03-06 | Paxonet Communications, Inc. | Asynchronous transfer mode traffic shapers |
-
2001
- 2001-03-30 US US09/823,636 patent/US6914882B2/en not_active Expired - Fee Related
-
2002
- 2002-03-29 EP EP02757878A patent/EP1380148B1/en not_active Expired - Lifetime
- 2002-03-29 DE DE60228696T patent/DE60228696D1/de not_active Expired - Fee Related
- 2002-03-29 AT AT02757878T patent/ATE407505T1/de not_active IP Right Cessation
- 2002-03-29 AU AU2002306984A patent/AU2002306984A1/en not_active Abandoned
- 2002-03-29 CN CNA028076605A patent/CN1500337A/zh active Pending
- 2002-03-29 WO PCT/US2002/009860 patent/WO2002080475A2/en not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
EP1380148B1 (en) | 2008-09-03 |
WO2002080475A2 (en) | 2002-10-10 |
ATE407505T1 (de) | 2008-09-15 |
DE60228696D1 (de) | 2008-10-16 |
WO2002080475A3 (en) | 2003-05-08 |
AU2002306984A1 (en) | 2002-10-15 |
EP1380148A2 (en) | 2004-01-14 |
US6914882B2 (en) | 2005-07-05 |
US20020141425A1 (en) | 2002-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1500337A (zh) | 用于改进队列的方法及设备 | |
CN1258900C (zh) | 路由设备 | |
CN1226850C (zh) | 网络处理器利用断开/重连流队列调度输出的方法和系统 | |
CN1197305C (zh) | 联网系统 | |
CN101057481A (zh) | 为在网络中路由而利用要以优先级处理的分组的隐式确定来调度分组的方法和设备 | |
CN1155205C (zh) | 分组中继设备 | |
CN1547814A (zh) | 处理光网络中上行数据包的系统和方法 | |
CN1498372A (zh) | 在数据网络中基于库的资源管理 | |
CN1518278A (zh) | 网络通信中实现资源分配的系统及其方法 | |
US6795870B1 (en) | Method and system for network processor scheduler | |
CN1275283A (zh) | 在执行ip转发和atm交换的设备中的服务设施质量 | |
CN1868181A (zh) | 通信网络中对于不同业务类别的灵活许可控制 | |
CN106533982B (zh) | 基于带宽借用的动态队列调度装置及方法 | |
CN107306232A (zh) | 网络设备、控制器、队列管理方法及流量管理芯片 | |
CN1819577A (zh) | 通信业务管理系统和方法 | |
JP2001077848A (ja) | 帯域割り当て方法 | |
CN101077010A (zh) | 用于通过无线网络的数字视频传输的方法和系统 | |
CN1264233A (zh) | 数据中继处理和信息废弃的方法和装置及程序记录媒体 | |
CN1432243A (zh) | 数据包丢弃 | |
JP4163044B2 (ja) | 帯域制御方法およびその帯域制御装置 | |
US20060146708A1 (en) | Packet transfer control method and packet transfer control circuit | |
CN101179486A (zh) | 一种计算机网络数据包转发的car队列管理方法 | |
CN1092891C (zh) | 异步传输方式交换用的交换系统及方法 | |
CN109840145A (zh) | 一种多级调度方法、装置、网络芯片及存储介质 | |
WO2014028323A1 (en) | An efficient urgency-aware rate control scheme for multiple bounded flows |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |