CN1611035A - 数据流处理器中的数据流管理 - Google Patents

数据流处理器中的数据流管理 Download PDF

Info

Publication number
CN1611035A
CN1611035A CNA028082087A CN02808208A CN1611035A CN 1611035 A CN1611035 A CN 1611035A CN A028082087 A CNA028082087 A CN A028082087A CN 02808208 A CN02808208 A CN 02808208A CN 1611035 A CN1611035 A CN 1611035A
Authority
CN
China
Prior art keywords
descriptor
grouping
group
queue
scheduler
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
Application number
CNA028082087A
Other languages
English (en)
Inventor
戴维·J·胡萨克
马修·S·梅尔顿
戴维·巴顿
戴维·W·纽克特雷
赛义德·艾拉尔·阿利·沙阿
乔恩·L·弗卢克
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.)
NXP USA Inc
Original Assignee
Freescale Semiconductor 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 Freescale Semiconductor Inc filed Critical Freescale Semiconductor Inc
Publication of CN1611035A publication Critical patent/CN1611035A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/15Flow control; Congestion control in relation to multipoint traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/58Changing or combining different scheduling modes, e.g. multimode scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/60Queue scheduling implementing hierarchical scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/201Multicast operation; Broadcast operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/201Multicast operation; Broadcast operation
    • H04L49/203ATM switching fabrics with multicast or broadcast capabilities
    • 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/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/255Control mechanisms for ATM switching fabrics
    • 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/3081ATM peripheral units, e.g. policing, insertion or extraction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5647Cell loss
    • H04L2012/5648Packet discarding, e.g. EPD, PTD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5651Priority, marking, classes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5679Arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5681Buffer or queue management
    • H04L2012/5682Threshold; Watermark
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/40Constructional details, e.g. power supply, mechanical construction or backplane
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/50Overload detection or protection within a single switching element
    • H04L49/501Overload detection
    • H04L49/503Policing

Abstract

本发明公开了用于在分组流上执行用户可配置的业务管理功能的技术。所述功能包括多播、丢弃、调度,包括整形、分段和重组。在这些技术中,这些功能不是直接在分组流上执行,而是在表示存储的分组上执行。分组的描述符至少包括用于分组的标识符以及用于将被在所述描述符上执行的一组业务管理功能的说明符。用户配置用于描述符的业务队列的一组业务管理功能。描述符中的说明符通过规定描述符队列来规定一组业务管理功能。多播中,描述符被复制并且被放在不只一个业务队列上;对于丢弃,当与业务队列相关的丢弃功能确定分组将被丢弃的时,描述符被放在丢弃业务队列中。由丢弃业务队列中的描述符表示的分组被从缓冲器中丢弃。从多由业务队列(包括丢弃的业务队列)中输出描述符被进行调度。调度是使用调度器层次进行的。层次形式和层次中的调度器使用的调度算法都是可用户配置的。如所公开的,在业务管理协处理器集成电路来实现所述技术。业务管理协处理器与数字通信处理器集成电路一起使用,其执行交换功能。分组的缓冲器处于数字通信处理器中。所公开的是修改的部分分组丢弃算法和基于帧的不足循环调度算法。

Description

数据流处理器中的数据流管理
本发明要求2001年4月13日提交的美国专利申请60/283746的优先权益。
发明领域
本发明总的来说涉及在诸如分组交换机和路由器中的设备中的数字数据流的处理,具体地说涉及诸如将分组多播到多个流、丢弃流中的分组和调度的处理,包括整理(shape out)流和对这些流进行分段或重组。
发明背景
分组和协议。
数字系统之间的通信通常是借助于分组来进行。一个分组如图1中的113所示。一个分组只是比特序列,比特序列的含义由协议确定。协议规定了处理分组的数字设备如何解释分组中的比特。不论是什么样的协议,大多数分组具有:头部115,其指出如何根据协议来处理特定的分组;有效载荷117,其为分组传输的实际信息。分组还可具有尾部,其可以简单地指出分组的末端,但还可以包含允许检测和/或纠正在传输或者处理分组的过程中出现的错误。根据进行定义的协议,分组可以具有固定的长度或者可变长度。在下面的讨论中,头部115和尾部119的内容称为“协议数据”,因为用来解释这些内容的方式完全由协议来确定,而有效载荷117的内容将被称为“有效载荷数据”。用于某些协议的分组通常称为“帧”或者“信元(cell)”。
以多种不同的级别将分组用于数字系统中的通信。因此,在数字系统的一种级别(level)的分组的组的有效载荷可以处于最高级别的分组。这在图1的137中示出。IP分组121是一种被根据IP协议来解释的分组。IP分组121具有IP头部123和可变长度IP有效载荷125。包括在IP头部123中的信息内的是IP有效载荷125的长度。当将IP分组121传输经过物理网络时,在传输分组127的流135的有效载荷中携带所述分组121。每一个传输分组127具有它自己的头部129、有效载荷131、和尾部133。在此所称的传输分组是ISO七层模型的链路层中的分组。根据链路层中使用的协议,传输分组可以是固定的或者可变的长度。
处理传输分组的设备如此操纵,如分组中的头部129和尾部133所示,并且不检查有效载荷131的内容。当分组到达目的地时,有效载荷被传送到它所希望到达的系统的部分,在这种情况下,被传送到根据IP协议操作的组件,且这种组件如在IP头部123中所示处理IP分组121。当然,IP有效载荷125可以是用于其它的分组,但仍然是高级别的。例如,它可以是为解码器(decrypter)设计的分组,而该分组的有效载荷可以是加密的IP分组121。在这种情况下,处理IP分组121的组件将有效载荷传送到解码器,解码器对加密的IP分组进行接码,并且将接码的IP分组返回到处理IP分组的组件,以进行进一步地处理。当然,该处理可包括将接码的IP分组发送到另一个目的地,且如果与所述目的地的通信是通过用于传输分组127的协议进行的,处理IP分组的组件将解码的IP分组提供给产生传输分组流的组件,且解码的IP分组将被携带在传输分组127的有效载荷。
分组交换。
当使用分组来在彼此远离的数字系统之间进行通信时,分组在连接各系统的数字网络上传送。在物理层,数字网络可采用任何介质来在两个设备之间传送信号,例如采用以太、导线或者光缆。分组是通过“分组路由”来在传输路径之间路由的。分组交换根据通常包括在分组头部中的信息来路由分组。
正如可预见到的,每一种协议具有它自己的路由规则。例如,IP协议使用逻辑路由  IP分组的每一个源或者目的地具有逻辑IP地址,且要到达给定的目的地的IP分组在它的头部中具有目的地的IP地址。头部没有指出目的地的实际位置。IP分组交换机必须将IP地址翻译成实际地址,获得分组到达它的目的地的至少部分方式,并且必须使传输分组的流135发往实际地址,其携带IP分组作为它们的有效载荷131。因此,IP节点109(n)是在以太LAN105(a)上的以太节点107(n)上,且连接到LAN 105(a)的IP分组交换机必须通过使以太分组的流发往携带IP分组作为它们的有效载荷的以太节点107(n)来响应寻址到IP节点109(n)的IP分组。
103示出了典型的分组交换机。分组交换机103连接到多个物理介质106,利用这些介质,分组交换机103可以接收和发送数据。此类介质的例子可以是光纤光缆或者由电导体组成的电缆。每一种此类介质106具有自己的协议,用于经介质发送的数据;例如,一种用于经光缆发送数据的广为应用的协议是SONET协议。图1中,介质106(a..m)是使用SONET协议的光缆,而介质106(n..z)是电缆。在介质层的分组(称为介质分组)具有它们字节的有效载荷传输分组。在ISO 7层模型中,介质分组是物理层分组。在交换机103处,被在光缆上发送和接收的传输分组是被根据在ATM广域网111中使用的ATM协议来做出的分组,而被在电缆上发送和接收的传输分组是被根据在局域网109中使用的EthernetTM协议做出的分组。在很多情况下,传输分组具有作为它们自己的有效载荷的IP分组,在一些情况下,分组交换机103路由IP分组到IP节点109。如上所述,路由分组是这样进行的:确定IP分组应当在其上运动以到达目的地的介质106(i),然后根据要求用于所述介质的协议来制作分组流,所述介质具有与它一起使用的传输分组流作为它们的有效载荷,这些有效载荷又具有IP分组作为它们的有效载荷。因此,如果分组交换机103从WAN 111接收到被发往IP节点109(n)的IP分组,且IP节点109(n)位于以太LAN 105(a)上的以太节点107(n)中,分组交换机103必须以介质106(n)要求的形式来制作分组流,介质106(n)的有效载荷是被发往携带IP分组作为它们的有效载荷的以太节点107(n)的以太分组流。
分组交换机103执行的功能依赖于分组交换机在其中工作的网络环境以及分组交换机的能力。下面重点讨论的功能在此被称为“业务管理功能”。有三种一般的业务管理功能组:
·将从特定源接收到的分组路由到一个或多个不同的目的地。
·要求用于路由的传输分组流。
·控制业务,使得将数据发送往其上的交换机103以及设备都没有被淹没(overwhelm),使得所服务的交换机103以及网络被公平地以及有效地利用。
更下详细地说明这些功能,路由包括“筛选”和“多播”。筛选是在边界处进行的。在此示出的分组交换机103位于专用网络104和公共网络102之间的边界处。每一个IP分组121的头部包含分组的源IP地址和目的IP地址,且专用网络104的安全措施禁止由来自公共网络102的IP分组用到专用网络104的某些源地址来访问,也禁止由来自专用网络104的分组用到公共网络104的某些源地址来访问。交换机103通过将进入的IP分组的源地址与将要被禁止的源地址列表进行比较来筛选每一个进入的IP分组,且如果进入的IP分组在列表中有,则丢弃它。交换机103以类似的方式来筛选输出的分组。多播就是将自一个源接收到的分组的副本发送到多个目的地。
流变换包括这样的操纵,如上面介绍的一种:将被接收作为ATM传输分组的IP分组变换成被输出到它的目的地作为以太传输分组的IP分组。通常,这种操纵包括:当在交换机中接收到较高层的分组时,重组来自它的传输分组的有效载荷的较高层分组;当被从交换机传输时,将较高层分组分段成传输分组。流变换还包括对有效载荷进行加密和解密。加密或者解密出现的一个地方是在网络边界处。例如,专用网络104的安全措施可要求加密被发送到公共网络102的IP分组,且可在交换机103中进行加密。当来自那些目的地的分组进入专用网络104时,交换机103还可解密它们。
控制业务包括:通过丢弃分组,并且调度来自交换机103的分组的输出来保护交换机103和它的目的地下行流免于过载,使得有效地使用输出带宽,可以在一定程度上满足相对网络资源和定时的每一个输出流的要求。此时,输出流的要求被称为它的“服务等级”。分组交换机必须能够处理从电子邮件到分组电话范围内的服务等级,在电子邮件中,所要求的是在已将电子邮件通过数字TV邮递之后(已小时计算),电子邮件以合理的时间到达,其中分组必须在相互的固定的时间间隔内到达它们的目的地;在分组电话中,不仅分组之间存在对时间间隔的严格限制,而且对分组从它的源到目的地穿过网络所花的时间的总长度有限制。
附图说明
图1是分组网络和分组的框图;
图2是数字通信处理器和与数字通信处理器一起使用的业务管理处理器的方框图,数字通信处理器采用后备数据流管理;
图3是业务管理处理器203的原理图;
图4是业务队列204和及其相关的数据结构的概要图;
图5是调度层次的框图;
图6是入队数据消息的格式的详细框图;
图7是出队数据消息的格式的详细框图;
图8是业务队列参数方框403的格式的详细框图;
图9是多播确立表421的格式的详细框图;
图10是丢弃配置方框431的格式的详细框图;
图11是缓冲池规范433的格式的详细框图;
图12是丢弃操纵的详细流程图;
图13是提交入队数据消息(commit enqueue data message)的格式的详细框图;
图14是在优选实施例中调度器用来进行配置的基本要素的框图;
图15是系统201的当前优选实现的方框图;
图16是TMC IC1503的详细框图;
图17是TMC IC1503中的外部存储器的配置的详细方框图;
图18是TMC IC103中的示例外部存储器配置的表格;
图19是在TMI总线1507上的信号的详细图;
图20是TMI总线1507上的信号的定时图;
图21是业务等级调度器503的详细框图;
图22是内部调度器509的详细框图;
图23是用来配置调度器的数据结构的详细框图;
图24是用来定义调度器输入的数据的详细框图;
图25是TMC 203和QMU 211的高级框图;
图26是采用基于帧的不足循环调度算法(deficit round robinscheduling algorithm)的业务等级调度器的详细框图;
图27是配置虚拟输出端口521的数据结构的框图;
图28是出队确认消息的框图;
图29是用来配置业务等级调度器503的数据结构的框图;
图30是用来将业务队列204与业务等级调度器503的输入调度队列相关的数据结构的框图;
图31是图6的续图;
图32是图7的续图;
图33是图7的另一个续图;
图34是图8的续图;
图35是图9的续图;
图36是图23的续图;
图37是图24的续图;
图38是图20的续图;
图39是图20的另一个续图;
图40是图30的续图;和
图41是图30的另一个续图。
附图中的参考数字具有3位或更多位数字:通常,右边的两位是由余下的数字表示的图中的参考数字。因此,具有参考数字203的项第一次出现作为图2中项203。不遵循这一规定的例外如下表所示:
    参考数字     图
    6xx     6,31
    7xx     7,32,33
    8xx     8,34
    9xx     9,35
    20xx     20,38,39
    23xx     23,36
    24xx     24,37
    30xx     30,40,41
具体实施方式
下面开始对“附图详细说明”进行概述,其中,可以实施在此公开的技术,然后给出实施该技术的详细公开,最后给出业务管理器的实现,业务管理器采用业务管理器集成电路和外部存储器IC。
后备数据流操纵
在此公开的数据流操纵技术是在采用“后备数据流操纵”的环境中实施的。在后备数据流操纵中,从网络输入端接收分组的有效载荷,并且进行存储,直到将它输出到网络输出端。当接收到分组时,给出一个描述符,表示分组;如在此使用的术语,描述符包括用于存储的有效载荷的标示符以及附加的信息,附加的信息控制环境操纵有效载荷所属的分组流的方式。数据流的操纵是使用描述符而不是它表示的分组来进行的。例如,将分组从输入端交换到输出端是通过将描述符加到输出端接收到的队列上来进行的;当描述符到达队列的头部时,输出端使用操作信息以及有效载荷描述符来以要求用于输出端的形式来输出与描述符相关的有效载荷。其它的操作如多播、速率管制(ratepolicing)、由于拥塞而丢失、调度或者分段和重组被以相似方式通过全部或部分地操纵描述符而不是有效载荷来进行。
用于后备数据流操纵的环境:图2
图2示出了在其中实施后被数据操纵的环境201。环境201具有两个主要部分:数字通信处理器(DCP)202,操纵与它们表示的有效载荷分开的描述符;业务管理协处理器(TMC)203,执行高级数据流管理任务,如多播、速率管制、和丢弃、调度、整形、和用于数字通信处理器202的重组以及分段。在一个实施利中,以集成电路和附加的外部存储器IC来实现DCP 202和TMC 203;在另一个实施例中,它们不是这样来实现,且在其它的实施例中,TMC 203可以与DCP集成在一起。一个DCP 202的IC实现的例子是可从位于马萨诸塞州的Water St.Andover 01845的C-Port公司获得。C-5的原型实现在PCT专利申请WO 99/59078,申请人为C-Port公司,且在1999年11月18日公开的数字通信处理器中有详细描述。
继续详细地介绍DCP 203,DCP 202在输入端219(0..m)从一个或多个网络接收数据流,并且在输出端225(0..p)将数据流发送到一个或多个网络。在本文中所关心的DCP 202的内部组件如下:
·信道处理器,其处理数据流。信道处理器包括:
-接收处理器221,其处理在输入端219(0..m)上接收到的数据流;和
-发射处理器223,其处理被发送到输出端225(0..p)的数据流。
信道处理器还可被用来内部地处理对DCP 202的有效载荷。
·缓冲器管理单元227,其将经输入端219(0..m)接收到的有效载荷存储在有效载荷缓冲器229中,直到它们经输出端225(0..p)输出。
·队列管理单元211,其存储描述符的队列213。
信道处理器被配置来处理不同种类的传输分组和物理层数据表示。描述符由信道处理器给出和读出。在大多数情况下,描述符代表存储在缓冲器管理单元227中的有效载荷,且包含用于有效载荷229(i)的、包含描述符表示的有效载荷的标识。只要描述符保留在DCP202内,可借助给出描述符的信道处理器和读出描述符的信道处理器来单独地确定它的内容。保留在DCP 202内的描述符被在下面的信道处理器描述符作为术语。在214处示出一个这种描述符。当描述符被TMC 203和信道处理器处理时,描述符必须包含供TMC 203使用的附加信息。在下文中,包含此类附加信息的描述符被称为TMC描述符216。
可以用下面的例子来说明DCP 202的成分相互影响来处理数据流的方式,在所述例子中:从使用ATM分组作为传输分组并且具有光物理层的网络接收IP分组,输出IP分组到使用以太分组作为传输分组并且具有电物理层的网络。接收到的流219(i)被在接收处理器221(i)中接收,接收处理器221(i)被配置来处理数据流,其具有光物理层和ATM传输层,并且处理IP分组。当接收处理器221(i)接收流219(i)时,它从流中抽取出IP分组有效载荷,将IP分组有效载荷写到缓冲器管理单元227中的有效载荷缓冲器229(j),并且为有效载荷缓冲器229(j)保留标识符。标识符被放在信道处理器描述符214(k)中。描述符可另外包含来自IP分组的其它协议数据。接收处理器221(i)进一步处理IP分组头部中的地址信息以确定应当将IP分组描述符放在哪一个队列管理单元211中的描述符队列(一个或多个)213(1)中,且将描述符214(k)放在队列的尾部。由发送处理器223(j)读出队列213(1),输出到希望的网络。已经配置发送处理器223(j)来使用以太传输层和电物理层输出IP分组。当描述符214(k)到达队列213(1)的头部时,发送处理器223(j)使用描述符214(k)中的信息来定位缓冲器229(j),使用适当的传输层和物理层来输出有效载荷作为IP分组。
环境201中的业务管理
从对DCP 202的操作的上述说明中可以清楚地看出,DCP 202本身具有足够的资源,仅用于最简单的业务管理功能。它可以将在特定点219(i)处接收到的数据流路由到特定点219(j),且可以按照用于这种路由的要求来转换数据流。信道处理器中的再循环能力进一步允许诸如加密和解密的数据流变换。然而,在DCP 202中没有足够的资源用来执行“高级”业务管理功能,对于这些功能,要求关于DCP 202本身的状态或者由DCP 202连接的网络中的设备的要求的知识。此类功能的例子如分组丢弃、调度、整形、和分组重组和分段。
在环境201中,此类高级业务管理功能由业务管理协处理器203执行,协处理器203在优选实施例中是具有外部存储器的IC,且被设计来与DCP 202的IC装置一起工作。当DCP 202与TMC 203一起使用时,队列管理单元不仅包括如上面介绍的由DCP 202使用的局部队列245,还包括被发送到TMC 203的TMC描述符216的队列243以及从TMC 203接收到的描述符的一个或多个队列247。当被DCP 202处理的数据流要求一个或多个高级业务管理功能时,正在接收数据流的接收处理器221(i)提供TMC描述符216到QAM 211,以被加到队列243的尾部。协处理器203为它的数据流和其它的数据流将这种TMC描述符216(i)放到业务队列204(m)中,其它的数据流的业务必须被与和描述符216(i)相关的数据流一起管理。TMC描述符放在其中的业务队列确定TMC 203用描述符干什么和如何处理它。广义地说,因此,业务队列将一组描述符与TMC 203中的一组业务管理功能相关;正如在下面将看到的,业务队列还将一组描述符与DCP 202中的一组分组处理功能相关。
有两种一般类别的业务队列:“非丢弃”业务队列249,用于不被DCP 202丢弃的分组的描述符;和“丢器”业务队列51,用于已经确定应当丢弃的分组的描述符。TMC 203从特定业务队列204(m)的头部中读出TMC描述符216,增加QMU 211需要的信息来处理TMC描述符216,将TMC描述符放入到QMU描述符中,且将QMU描述符提供给队列管理单元211,如207所示。然后,队列管理单元211将包含在QMU描述符中的cp描述符放到描述符队列213(n)的尾部,以进一步进行需要在DCP 202中为描述符表示的分组进行处理。如在下面的详述,到TMC 203描述符输入和自TMC 203的描述符输出被进行流控制。在后面的情况中,流控制不仅控制从TMC 203到QMU 211的流,还控制到队列247中的各个队列213的描述符的流。
例如,如果业务队列是丢弃业务队列,队列管理单元211将描述符放在由信道处理器服务的队列213中,信道处理器进行需要用来丢弃来自缓冲器单元227的队列表示的分组的处理。另一方面,如果业务队列是非丢弃业务队列,队列管理单元211可将描述符放在发送处理器223(j)的描述符队列213中,发送处理器将流输出到发射流225(i)中。由于DCP 202中的任何一个发送和接收处理器可以从/向QMU211管理的队列读出/写入描述符,当然,在协处理器203和DCP 202的任意复杂相互作用都是可能的。下面给出这种复杂相互作用的例子。
业务管理协处理器203可以将多种不同的业务管理技术应用到业务队列204。对于每一个业务队列204,可以高度地配置如何应用这些技术。确定将什么业务管理技术应用到业务队列204(i)的信息包含在业务管理信息235中。从逻辑术语上说,业务管理信息235分为三类:
·业务管理定义237,其定义可用的技术。在优选实施例中,这些定义被放入到TMC 203中;在其它的实施例中,用户可能修改定义237或者增加新的定义。
·业务管理配置数据239,其定义如何将在237中定义的技术应用到业务队列204组;和
·当前业务管理状态241,其包含每一个业务队列204和TMC 203以及与业务管理相关的DCP 202的其它成分的当前状态。
业务管理是在TMC 203中这样进行的:将由配置数据239配置的业务管理定义235应用到当前的业务管理状态241,以选择业务队列204,并且按照业务管理定义、配置和当前业务管理状态的要求处理与在选择的业务队列的头部中的TMC描述符216相关的有效载荷。
TMC 203的逻辑综述:图3
图3示出了业务管理协处理器203的组成部分的逻辑综述。在优选实施例中,有两种主要的TMC 203划分:处理部分306,其可以在一个或多个处理单元中实现,和TMC存储器307。在优选实施例中,以单个IC来实现所有的处理部分306。处理部分306落在三类功能组中:入队处理器301、业务队列处理器305和出队调度器303。入队处理器301从QMU 211接收TMC描述符216,且确定将描述符放在哪一个(或多个)业务队列中。该任务的一部分是确定是否丢弃描述符和它所表示的分组。如果丢弃描述符,入队处理器301规定将它放在丢弃的业务队列中。业务队列处理器305从入队处理器301接收描述符216,且将描述符216链接到由入队处理器301规定的业务队列204中。出队调度器303确定从其中将描述符216提供给QMU 211的下一个业务队列204,且将在业务队列的头部处的描述符提供给QMU211。在优选实施例中,所有三个这些处理器并行地工作,从而允许流水线处理描述符。
在优选实施例中,TMC存储器307包括在其中实现处理器306的内部IC的存储器和在IC外部的存储器。在其它的实施例中,在IC和外部存储器之间的存储器分布是可变化的。在功能术语中,存储器被划分成用于tm定义237、tm配置数据239、和当前tm状态241的存储。在综述中已经介绍了存储器307的这些部分中的内容的功能。
在存储器307中有三个广义类内容:调度器信息333,被用在调度中;TQ入队信息335,用在将描述符216入队到业务队列204;和多播信息337,用在多播中。更加详细地说,优选实施例中有三大类tm定义237:调度算法309,其指定用于选择将被提供给DCP 202的下一个描述符216的技术;业务队列入队算法311,其指定用于确定是否丢弃从DCP 202接收到的TMC描述符216的技术;和多播算法315,其描述如何将单个TMC描述符216复制到多个业务队列。
存在对应定义类别中的每一类的配置数据239。调度器配置317定义各个调度器和调度器被安排在调度器层次中的方式;业务队列入队配置319定义做出丢弃的条件;确立表(elaboration table)323规定将要被多播的分组的描述符放到哪些业务队列上。另外,对于每一个业务队列204,存在配置数据327。TMC 203的用户可以使用配置数据239来定义哪些TM定义将应用到特定的业务队列和在其中使用这些定义的方式。作为例子,TQ处理配置319中的丢弃配置将规定确定描述符216将被丢弃而不是放在特定业务队列204的尾部中的条件的参数。在优选实施例中,仅当初始化TMC 203时,可以设定配置数据239;在其它实施例中,允许动态设定配置数据239。
当前的tm状态241包含规定业务队列213中的每一个和调度器层次中的调度器的当前状态的数据。包括在当前TM状态241中的是当前业务队列状态329和当前调度器状态318。当前业务队列状态329包括当前包含在每一个队列中的描述符216、由队列中的描述符表示的分组的大小、和分组被存储在其中的有效载荷缓冲器229的当前状态。分组的大小和有效载荷缓冲器229的当前状态被用来确定是否应当丢弃描述符216而不是将它放在业务队列204中,并且确定出队调度器303下一次将选择哪一个业务队列204。当前调度器状态318确定选择哪一个TMC描述符216来被出队调度器303输出到DCP 202。
TMC 203的一般操作:图25
图25是示出TMC 203和QMU 211的组成部分如何相互作用来调度cp描述符214到达被发送处理器223使用的描述符队列213,从而由发送处理器223调度描述符表示的有效载荷的输出。
正如已经指出的,做出将要被TMC 203调度的TMC描述符216的信道处理器必须将附加信息加到cp描述符214上。有效地,信道处理器封装cp描述符214,如通过将TMC信息2513加到TMC描述符214来对描述符214的详细说明。类似地,当TMC 203将cp描述符214返回到QMU 211时,通过将BMU信息2515加到cp描述符214来封装它,可参见BMU描述符2508的详细说明。TMC信息至少包括:
·用于TMC 203的业务队列204的标识符;和
·当描述符代表可变长度分组时,分组的长度字节由描述符213表示。
可能要求附加信息用于由TMC203执行某些操作。QMU信息2515至少包括虚拟输出端口标识符,QMU 211使用它来确定将封装的cp描述符214放在哪些描述符队列247中。当然,封装的cp描述符214被放置在其中的描述符队列247确定由描述符214表示的分组将被在DCP 202中处理的方式。
图25进一步比图3更详细地示出TMC 203的结构以及QMU 211和TMC 203之间的接口。如图25所示,QMU 211经包含描述符216的入队数据消息601发送在TMC输入队列的头部中的TMC描述符到TMC 203。当TMC 203接收所述入队数据消息时,它将来自所述消息的描述符216放在输入队列2501的尾部中。
入队处理器301从输入队列2501的头部中读出TMC描述符215。如果描述符215指出它代表的分组将被进行多播,入队处理器301使用多播信息327来确定哪些业务队列204将接收描述符216的副本。否则,TMC描述符215直接规定将接收描述符216的业务队列。当入队处理器301知道将把描述符216放在哪一个业务队列中时,它使用TQ入队信息335来确定业务队列的状态是否要求描述符215和将要丢弃的、由描述符216代表的分组。如果是这样,入队处理器301将DTQS 251中的丢弃的业务队列代替在TMC描述符216中原始规定的业务队列。当入队处理器301最后确定业务对垒204将要接收描述符216时,入队处理器301将描述符216提供给业务队列处理器305,用于在入队处理器301规定的业务队列的尾部处入队。
为了达到调度,TMC 203中的业务队列204被组织到“调度器队列”中,如图25的523所示。调度器队列523包含业务队列204的队列。出队调度器303使用调度器信息333来选择一组非空的调度器队列523中的一个来进行调度。当出队调度器303已经选择了用于调度的调度器对列523时,当前在选择的调度器队列523的头部中的业务队列204(i)被提供给服务,即当前在业务队列204(i)的头部中的描述符被输出作为QMU描述符2508到输出队列2507。从这里,TMC203将QMU描述符2508作为出对数据消息701输出到QMU 211。QMU21 1将描述符2508放在TMC输出队列2509中,然后将包含在QMU描述符2508中的cp描述符214放在队列247中的适当的描述符队列213中。
继续详细地说明调度,业务队列处理器305负责将业务队列204放在调度器队列523中,并且将它们从调度器队列523中去除。只有当可以服务业务队列时,业务队列204可放在调度器队列523的头部。在此,将可以服务的业务队列称为“合格的业务队列”。空的业务队列当然不是合格的。业务队列204不合格的其它情形将在下面详细地介绍。如果业务队列204当前不合格,业务队列处理器305不将它放在调度器队列中,而是实际上将它留在一组不合格的业务队列2511中。在被放在调度器队列523中的时间和被服务的时间之间,业务队列204还可以变成不合格。在这种情况下,在被服务之前,业务队列处理器305将不合格的业务队列204从调度器队列523的头部中去除,将它返回到不合格的业务队列2511。在它的头部具有合格的业务队列的调度器队列523被称为有效调度器队列(active scheduler queue)。出队调度器303仅调度有效调度器队列。
如上所述,QMU 2508包括虚拟输出端口标识符,其将描述符与描述符队列247中的队列214相关。出队处理器303的一个任务就是将每一个QMU描述符2508与适当的虚拟输出端口相关。如何进行相关将在下面详细地介绍。虚拟输出端口机制还被用来在队列247中的描述符213的级别中对出队调度器303的操作进行流控制。每一个虚拟输出端口与信用值(credit value)相关,该信用置指出对应虚拟输出端口的描述符247中的描述符队列213将在当前接受多少cp描述符214,用于入队。如果信用值为0,出队调度器303不调度调度器队列,该调度器队列将输出QMU描述符2508,用于与虚拟输出端口相关的描述符队列。每一次出队调度器303对输出用于给定输出端口的描述符的队列进行调度,递减一次信用值;每一次将cp描述符214从队列247中的描述符队列213中去除,QMU 211将出队确认消息1925发送到TMC 203,其规定对应描述符队列的虚拟输出端口,且出队调度器303通过递增虚拟输出端口的信用值来响应消息1925。处于有效的、没有被带有信用值0的虚拟输出端口禁止调度的调度器队列523被称为“可调度的调度器队列”。因此,出队调度器303选择描述符队列,用于输出到在合格的业务队列204(i)的头部的QMU 211,合格的业务队列204(i)位于有效的和可调度的调度器队列523(j)的头部。还需要指出的是,只要从在调度器队列523(j)的头部的业务队列204(i)的头部去除描述符没有使业务队列204(i)不合格,业务队列204(i)进行到调度器队列523(j)的末尾。因此,有效的调度器队列以循环方式服务它的合格的业务队列。此外,业务队列处理器305可以将描述符215加到业务队列,同时业务队列处在调度器队列523中。
如上所述,丢弃的描述符被放在象非丢弃业务队列一样调度的丢弃业务队列中。来自丢弃业务队列的QMU描述符2508指出由描述符2508代表的分组将被丢弃,还指出丢弃的原因。通过将描述符2508放在DCP 202中的信道处理的队列中,QMU 217响应包含来自丢弃业务队列的描述符的丢弃出队数据消息,DCP 202将缓冲器标识符返回到缓冲器管理单元227供再使用,从而有效地丢弃由缓冲器标识符识别的缓冲器的内容。
图25还给出优选实施例中的TMC 203和QMU 211之间的硬件接口的概述。当输入队列2501中存在空间时,TMC 203维护输入队列准备好信号1915,且QMU 211输出在TMC IQ 243的头部中的入队消息到TMC 203;当TMC输出队列2509中有空间时,QMU 211维护DQREDY信号1919,且TMC 203输出在输出队列2507的头部中的QMU描述符。使用QDARDY 1923和DQACK 1921来确认使来自队列247中的描述符队列213的描述符出队。每一个DQACK消息包含来自出队消息的虚拟输出端口描述符,出队消息的CP描述符214刚刚被信道处理器从描述符队列213中撤离出队列,所述描述符队列213是在cp描述符214被QMU 211从TMC 203中接收到之后将该描述符放在其中的队列。如前所述,TMC 203使用返回的虚拟输出端口描述符来控制QMU描述符2508到它们的目的描述符队列247的流。
业务队列和相关的数据结构:图4
业务管理协处理器203的所有活动涉及到业务队列204。TMC描述符被放在其中的业务队列确定将被应用到描述符上的丢弃策略、将调度描述符的方式、和描述符将被输出到其上的QMU队列。图4示出业务队列204和它的相关数据结构。每一个业务队列204具有业务队列标识符423,并且被业务队列参数块403所定义。属于业务队列的TMC描述符216被在TMC描述符队列419中链接起来;业务队列参数块403具有指向队列419中的头部描述符216的tq头部指针405和指向队列419中的尾部描述符216的tq尾部指针407。参数块403中的其余信息包括关于由参数块403表示的业务队列204的当前状态的信息,用来确定是否应当将描述符216加到业务队列或者丢弃的信息411,用在多播中的信息415,和用在调度业务队列的信息413。
相关的数据结构包含被用在涉及业务队列的操作中的附加信息。当分组被多播时,它的描述符被放在一组业务队列的每一个业务队列中;所述组由一个或多个多播确立表421的链422定义。对于所述组中的每一个业务队列,表421中有一个tqid 423。给定的多播表421由它的metid 420所识别。当分组被多播时,它的TMC描述符216包含在MET链422中的头部多播确立表的metid,其规定业务队列组。
是否丢弃描述符的决定是使用几种算法311中的一种来作出的。这些决定中的一些考虑缓冲器管理单元227中的缓冲器229的状态。根据缓冲器池和缓冲器池组,状态信息被在业务管理协处理器203中维护。缓冲器池和缓冲器池组作为在DCP 202中的某些缓冲器的状态的TMC 203中的模型。TMC 203为其维护状态的每一个缓冲器池具有缓冲器池规范433,其规定DCP 202中的缓冲空间;业务队列参数块403规定一个此类缓冲池规范。每一个缓冲池规范433(i)为由缓冲池规范433(i)表示的缓冲池所属于的缓冲池组规定双亲缓冲池规范。每一个缓冲池具有为它保留的最小缓冲空间量;双亲缓冲池规范指出高于用于缓冲池的总的最小缓冲空间的量,其可供属于双亲缓冲池的所有缓冲池共享。
丢弃配置块431包含用于给定的业务队列204使用的丢弃方法的配置信息,且丢弃码432是用于所述方法的码。在TMC 203的存储器中,丢弃配置块431被组织成阵列441,给定的业务队列204(i)可以在8个丢弃配置块431中进行选择。如同缓冲器规范437,很多业务队列参数块403可以规定给定丢弃配置块431。当描述符被加到给定的业务队列204时,缓冲器池规范433和435中的信息被与丢弃配置块431中的信息一起用来确定是否应当丢弃描述符。如果丢弃描述符,则将它放在丢弃业务队列251中。
关于何时将当前在给定业务队列204(i)的头部中的TMC描述符216输出到DCP 202的决定是使用调度器的层次来作出的。从功能上说,调度器的层次将一组有效的和可调度的调度器队列523作为它的输入,并且选择所述组中的一个作为头部描述符216将被输出到DCP203的业务队列204的源。因此,调度器层次选择调度器队列的方式确定了有多少TMC 203的带宽也即最后有多少TMC-DCP系统201可用于调度器队列的业务队列中的描述符所表示的分组。
如430所示,在优选实施例中,调度器被调度器配置描述符425和调度器码429所定义,被使用调度器配置描述符中的信息来执行。业务队列参数块403中的调度信息413将给定的业务队列204与属于单个调度器430的单个调度配置描述符425(i)相关;调度器定义具有用于给定调度器430的调度器配置描述符425的所有业务队列属于的“业务类”。因此,调度器430被称为“业务类调度器”503。在优选实施例中,业务类调度器还处理分段和重组。一个业务类调度器是调度器层次中的叶节点调度器,因此,在所述层次中必须总是有至少一个其它的内部调度器,如图4的427和434所示。
调度器层次:图5
图5提供了队调度器层次501的综述。调度器层次501的输入是一组有效的调度器队列523;调度器层次501的输出是一组有效调度器队列523中的一个。TMC 203输出包含TMC描述符216中的cp描述符214的QMU描述符2508,其在有调度器层次501输出的业务队列204的头部中。调度器层次501形成一棵树,树的节点是业务类调度器503或者内部调度器509。所述层次中的每一个调度器将一组有效调度器队列作为它的输入,并且选择输入组中的一个作为它的输出。
层次501是一棵树。树的叶节点是业务类调度器503;内部节点总是内部调度器509。在层次中的级0的515中的单个内部调度器形成了树的根部。当调度器层次501调度给定的有效调度器队列523(i)时,对队列523(i)进行调度的调度器形成从业务类调度器503到树的根部的穿过所述层次的路径;图5中,用加重的箭头529来标记一个此类路径。在优选实施例中最大的层次深度是4多个调度器。
从图5中可看出,在优选实施例中,可以配置在级别0中的根部调度器509(a)来从总计32个调度器接收输出调度器队列作为输入,因此,它可以具有总计32个调度器队列的输入组;在其它的级别中的每一个内部调度器可以被配置以将来自总计32个调度器队列的输入调度器队列作为输入组,并且具有总计32个调度器队列的输入组。用于业务类调度器503的调度器队列的实际数目取决于业务类调度器的种类。
内部调度器509和业务类调度器503之间的一个重要区别是在给定的业务类调度器503(j)中,调度器队列的输入组是包含规定业务类调度器503(j)的业务队列的有效调度器。在给定的内部调度器509(k)中,调度器队列的输入组是由低级别的调度器调度的调度器队列,低级别的调度器提供输入给内部调度器509(k)。所有可提供给内部调度器队列509(k)作为输入的调度器队列将是有效的,但是不是可由内部调度器队列509(k)调度的。这就是当虚拟输出端口521是在道调度器队列509(k)的输入并且将不允许进一步从虚拟输出端口输出描述符到QMU 211的情形。
当调度器层次501处于工作时,每一个调度器选择它的有效的和可调度的输入调度器队列的当前组作为它的输出。因此,业务类调度器503(c)选择它的有效调度器队列523中的一个作为它的输出,如同调度器523(d)一样,并且这两个调度器队列以及由输出到内部调度器509(c)并且不能被虚拟输出端口使它不可调度的调度器503所提供的其它调度器队列是被输入到内部调度器509(c)的调度器队列523;内部调度器队列509(c)从到其上的那些输入中选择一个调度器队列523,用于输出到内部调度器509(b),内部调度器509(b)又从到其上的一个输入中选择一个调度器队列523,用于输出到根部内部调度器509(a)。根内部调度器509(a)从它的输入中选择一个调度器队列523,并且在QMU描述符2508中输出在业务队列204的头部的TMC描述符216中的cp描述符214,业务队列204是在选择的调度器队列的头部中。然后,将QMU描述符2508放到出队数据消息701中,该消息进入DCP 202的队列管理单元211。除非从中获得描述符的业务队列变成不合格,业务队列进入它的调度器尾部。如果业务队列不合格,它被从调度器队列中去除,并且被再次放到调度器队列中,直到它变成合格。如图501的535所示,不合格的业务队列204保持与它们的业务队列调度器503相关;当再次变成合格时,业务队列被放在调度器523的一个尾部中,调度器523作为到业务队列的业务类调度器的输入。
调度器层次501中的两级流控制防止QMU 217可以处理TMC描述符216之前将它们输出到QMU 217。一个级处理QMU 217根本处理来自TMC协处理器203的任何更多的描述符;该级别在硬件上操作,作为TMC 203和DCP 202之间的接口;仅当DCP 202指出它准备好接收这样一个描述符时,TMC协处理器203发送一个描述符到DCP 202。另一个级别的流控制处理在特定的描述符队列213中没有用于来自TMC 203的附加描述符的足够空间的情形。该级别的流控制是借助层次501中的虚拟输出端口521来处理的。
层次501中的叶调度器503和根调度器509之间的每一个路径必须具有虚拟输出端口521,没有一个路径可以具有多于一个虚拟输出端口521。每一个虚拟输出端口具有唯一标识它的标识符。虚拟输出端口521具有两种功能:
·每一个虚拟输出端口将调度器层次501的输出的部分与QMU211的描述符队列247中的描述符队列213相关。
·每一个虚拟输出端口还指出它的相应描述符队列213当前可以获得多少个描述符。
第一功能是通过在每一个QMU描述符2508中包括用于虚拟输出端口的一个标识符来执行的,该标识符被从TMC 203输出到QMU211。所述标识符是通过调度器队列523的调度器层次501的、路径529上的虚拟输出端口的标识符,调度器队列523包括QMU描述符2508中的cp描述符214所属于的业务队列204。
第二种功能如下执行:如果对应虚拟输出端口521的描述符队列213不具有用于将被从业务队列204输出的描述符(一个或多个)的空间,业务队列204在虚拟输出端口为其控制输出的调度器所选择的调度器队列入523的头部中,则虚拟输出端口521不允许调度器队列在层次的下一个级别中被调度器所调度。当相应的描述符队列204再次具有空间时,虚拟输出端口允许输出到下一个调度级别。当在作为有效调度器队列的源的业务类调度器503和当前调度调度器队列523(i)的调度器之间的路径529上的虚拟输出端口521(j)指出对应虚拟输出端口521(j)的描述符队列213当前不具有用于附加描述符的空间时,有效调度器队列523(i)是不可调度的。
如在对业务队列204的介绍中所述,有两类业务队列:丢弃业务队列521和非丢弃业务队列249。通常,两类被在分离的通过层次501的路径上被调度,以确保防止传输正在接受来自TMC 203的描述符的描述符队列213所表示的分组、并因此导致通过调度器层次501的路径的虚拟输出端口521引发堵塞的事件不引起来自丢弃业务队列的描述符堵塞,因为处理来自丢弃业务队列的描述符完全是在DCP 202内部的,并且可以不顾发送流225的堵塞而进行。层次501的形式、层次501中的调度器503和509的调度算法、和层次中的虚拟输出端口521的位置都是可由用户配置的。
入队数据消息的详细介绍:图6和31
如上所述,QMU 211将其提供给TMC 203的TMC描述符216被包含在入队数据消息中。图6和31示出了优选实施例中的入队数据消息601的详细细节。优选实施例中,入队数据消息由总计13个24比特字组成。入队数据消息601的长度取决于包含在入队数据消息的字2-12中的cp描述符214的长度。图6中,对于入队数据消息中的每一个字段有一行;列603指出包含字段的字的字偏移,列605指出字段名,列607指出字中的字段的比特位置,列609指出字段的内容要达到的目的。用于字段的各行在611-627示出。应当注意,字段615可包含tqid 423或者metid 420,后者用于当描述符代表的分组被多播时的情况。
总之,从图6和31中,可以清楚地看出入队数据消息601的字段的目的;所述值用于除了类型字段611之外的所有字段,当类型字段611指出没有来自TMC描述符216的消息时;描述符627包含被封装在TMC描述符216中的cp描述符214。对于推测入队和丢弃优先权字段625,可能要求进一步的说明。“推测入队”是一种机制,用于对没有被DCP 202完全接收到的分组的分组描述符进行排队。当DCP 202完全接收到推测入队分组时,将呼叫提交的入队消息的第二一个字长度队列消息发送到TMC 203,以提交推测入队。入队消息中的类型字段611被用来识别推测的或者提交的入队消息。推测的入队将在下面进行更加详细地介绍。丢弃优先权字段625被用来选择总计8个丢弃配置块431中的一个,丢弃配置块431与TMC描述符216所希望的业务队列相关。
出队数据消息详细细节:图7,32和33
图7,32和33示出了TMC 203将其发送到缓冲器管理单元211的出队消息701的格式。这些消息中的每一个包含QMU描述符2508。如前所述,每一个字段具有一行,603-609代表列,701-725代表行。从图7中,清楚地看出大多数字段的目的和内容;对于丢弃原因字段723,当入队处理器301丢弃描述符时设置该字段;当将来自丢弃业务队列251的QMU描述符2508输出到队列管理单元211中时,类型字段703和丢弃原因字段723指出QMU描述符中的cp描述符214所代表的分组的有效载荷将被丢弃以及丢弃原因。各字段的内容被划分成DCP 202需要采取措施来进行响应的字段703中的丢弃原因、以及字段723中服务信息目的的原因。同样,除了空闲消息之外,出队数据消息701中的所有字段值被包含在QMU描述符208中;字段725包含封装的cp描述符214。
业务队列参数块403的详细细节:图8和34
图8和34示出了优选实施例中的业务队列参数块403的格式。格式的表示如前所述,801-809代表列,811-869代表字段。809中的字段的说明在很大程度上是对自身的解释;在下文中,各字段将与图4的逻辑划分相关。
调度信息(schedulign info)413
提供这种信息的字段包括:字段819,其识别用于业务队列参数块403表示的业务队列204的业务类调度器503(i)  字段831,其确定当业务队列合格时,将业务队列放在属于业务类调度器503(i)的哪一个调度器队列523(j)中;字段845,其包含关于业务队列204中的头部TMC描述符216的信息,用来确定业务队列204是否合格,如果合格,应当如何调度它的调度器队列。信息随着业务队列204的描述符表示的分组种类变化,也随着调度器队列523(i)使用的调度算法变化。在此,两个例子可以服务:描述符表示可变长度的分组,字段845包括分组的长度;描述符表示固定长度分组,字段846包括结束消息(EOM),指出固定长度分组携带的消息中的最后分组的描述符是否已经在业务队列中被接收。
多播信息(multicast info)415
优选实施例中,TQ标记字段865是一个标识符,规定到QMU 211的业务队列204。业务队列被规定为如下两种情形:
·当cp描述符214表示的分组被多播时,标识符规定入队处理器301将TMC描述符216的特定副本放在其中的业务队列204;和
·当将要丢弃cp描述符表示的分组时,标识符规定业务队列204,当TMC描述符被在TMC 203中接收时,在包含cp描述符214的TMC描述符216中规定所述业务队列204。
丢弃信息(discard info)411
字段813和814识别用于业务队列的丢弃配置块443;这些字段加上TMC描述符216中的丢弃优先权字段625识别将与给定描述符一起使用的、块433中的实际的丢弃配置块431。字段815,816,869和827都包含在各种丢弃技术中使用的数据。
当前tq状态信息(current tq state info)409
该信息包含在字段836中。该字段包含关于业务队列的头部的描述符的信息。在该字段中是什么样的信息取决于在业务队列的头部中的描述符所表示的分组种类。如果是可变长度分组,字段836包括分组的长度;如果是固定长度分组,字段836指出关于多分组消息的分组的状态:消息中的最后分组是否已到达,如果已到达,描述符表示的分组是否是消息中的最后分组。优选实施例中,业务队列中的每一个TMC描述符216预挂起(prepend)象字段836一样的字段,该字段包含用于业务队列中的下一个描述符的当前TQ状态信息。
Tq头部405和Tq尾部407
在字段823和811中分别实现上述二者。优选实施例中,这些标识符只是简单地指向描述符。TMC 203的涉及特征是在一定程度上被操纵的指针而不是描述符、业务队列或者调度器队列。
TMC 203执行的详细操作
下文中,将详细地介绍入队处理器301、业务队列处理器305和出队调度器303执行的操作的例子,从入队处理器301执行多播操作开始。应当理解,在其它的实施例中,这些操作可以是不同的方式。
多播:图9,和35
当分组在一个输入点进入交换设备并且在多个输出点输出时,进行多播。系统201中,可以在QMU 211或者业务管理协处理器203中进行多播;在此所介绍的是在业务管理协处理器中的多播,其中,通过将在入队数据消息601中接收到TMC描述符216的副本加到在多播确立表421中规定的业务队列204中来进行。
多播确立表细节(Multicast elaboration table details)
优选实施例中的多播确立表的详细情况在图9和35中示出。同样,格式为一个表格,每一行表示表的字段,列903-909表示关于字段的信息。如前所述,TMC 203维护多播确立表421的链接列表;字段911包含列表中的下一个多播确立表421的metid 420。如果给定的确立表421是链接列表中的最后一个,由字段913的值指出。确立表421可以规定将描述符的副本加到其上的总计8个业务队列。单个业务队列的入口如在915出的详述;有两个所关心的字段:916,其包含用于业务队列204的tqid 423和917,其指出字段916的内容是否有效。如919所示的表格的其余部分是用于剩余的业务队列的业务队列入口915。
当将入队描述符的多个副本多播确立用于相同的虚拟输出端口的业务队列时,QMU 211需要能够确定描述符的业务队列来自哪一个业务队列。识别业务队列的字段是参数块的业务队列标记字段865。目的业务队列的标记被放在由包含在业务队列中的描述符组成的QMU描述符的每一个中的字段713中。
处理多播入队数据消息的详细情况
是否对入队数据消息601进行单播或多播由入队数据消息的字段619指出。当字段619指出多播时,字段615包含metid 420,用于在用于多播中的MET链中的第一多播确立表421。多播入队消息要求额外的处理时间来执行多播确立。额外的处理器时间要求在入队数据消息601等待被入队处理器301处理时,被进行缓冲。总之,入队处理器301将严格优先权给与单播入队数据消息的处理。然而,存在一可用户配置的机制,其确保入队处理器301处理的描述符总数的固定部分将多播描述符。所述部分可以在一个范围上配置,该范围为从处理的每2个描述的一个到处理的每256个中的一个。等待被处理的多播入队消息被存储在保持总计32个多播入队消息的缓冲器中。如果入队消息被接收到,且多播入队消息缓冲器是满的,则将多播消息丢弃到与入队消息源标识符相关的队列(入队数据消息的字段623)。否则,由用于多播组中的每一个目的业务队列的入队处理器301独立地作出丢弃多播描述符的决定。
入队处理器301不处理被推测地入队的多播入队消息,直到接收到相关的提交入队消息。因此,推测入队的多播消息将阻塞所有随后的多播入队消息,直到接收到相关的提交入队消息。这种阻塞被要求维护出队分组描述符顺序。
多播复制的一个用途是用于系统201中,其中,DCP 202驱动本身不支持多播确立的、时分复用、信道化接收设备。可以使用多播复制来发送每一个目的信道的分组的一个副本。
描述符丢弃操作的详细细节
如前所述,在入队处理器301将描述符提供给将被链接到业务队列中的业务队列处理器305之前,入队处理器301确定是否丢弃或者标记描述符表示的分组,以避免拥塞,现有管理拥塞、或者从过去的拥塞中恢复。
丢弃和标记操作
入队处理器301用来去顶是否有拥塞的技术包括缓冲设阈值、随机早期检测,和管制算法。入队处理器301将什么技术用于特定的业务队列由业务队列的丢弃配置块431确定。如下处理拥塞:
1.选择用于丢弃的分组描述符,以从拥塞周期中恢复。
2.选择非一致分组描述符,用于丢弃以避免拥塞。
3.标记非一致分组描述符,使得可以由试图避免发生拥塞的下行流网络部件有选择地丢弃非一致分组。
4.标记已经发生拥塞的分组描述符,使得下行流网络部件可以通知始发业务源降低速率。
缓冲器池和双亲缓冲器池:图4
入队处理器301使用的缓冲器池确定是否应当丢弃的分组被保持在缓冲器池和双亲缓冲器池数据结构中。这些结构在图4中示出。对于每一个缓冲器池,缓冲器池规范433(i)指出最大阈值、最小阈值和用于缓冲器池的双亲的最小阈值。业务队列204(i)使用的缓冲器池433(j)中的这些值被入队处理器301使用来确定是否丢弃用于业务队列204(i)的描述符。每一次在业务队列204中使TMC描述符216入队或者从业务队列204出队时,更新缓冲器池规范433和双亲缓冲器池435。
丢弃的业务队列
来自在业务管理协处理器203中执行的所有丢弃操作的描述符进入TMC 203维护的32个丢弃业务队列251中的一个。丢弃业务队列象非丢弃业务队列一样被调度。调度器层次通常被如此配置,使得丢弃队列的调度器的输出进入专用于丢弃业务的服务的虚拟输出端口。因此,当出站分组业务进行备份(back up)时,这些虚拟输出端口不被阻塞,促使与代表出站业务分组的描述符相关的虚拟输出端口251阻塞调度那些描述符。在调度器带块计算中不使用与丢弃的分组描述符相关的分组长度,因为DCP 202要求用于处理丢弃的分组描述符的时间独立于分组长度。实际上,范围为0到255字节的可配置分组长度被分配给丢弃队列描述符,用于进行调度。
用于丢弃的分组描述符的目的丢弃队列是从下述源中的一个选择出,按照优先权顺序列出:
1.丢弃业务队列标识符可以在业务队列的丢弃配置块431中被可选择地规定。
2.如果没有被业务队列丢弃配置规定,TMC 203从将TMC描述符216的源与丢弃队列相关的表获得丢弃队列标识符。用于TMC描述符的源的标识符是从字段603中获得的。
3.如果没有在前两个源中规定,丢弃业务队列标识符被在业务队列的类调度器503中规定。
丢弃算法类的综述
优选实施例提供多种不同的丢弃算法;在此提供了综述;对于算法中的一种的详细例子将在后面详细地介绍。对于不同丢弃算法中的每一个的丢弃配置块431的不同格式,有不同的格式。
阈值
在下面的条件下,根据缓冲器池和双亲缓冲器池大小,使用该阈值来由选择地丢弃分组描述符:
1.如果业务队列的相关缓冲器池大小小于最小阈值,不丢弃描述符;
2.如果业务队列的相关缓冲器池大小大于最大阈值,丢弃描述符;或
3.如果缓冲器池大小在最小和最大阈值之间,并且双亲缓冲器池的大小大于业务队列的选择的丢弃配置数据规定的双亲缓冲器池阈值,选择用于丢弃的分组描述符;否则,不丢弃描述符。
随机早期检测(RED)
可以配置缓冲器池来使用随机早期检测(RED),有选择地丢弃与适当的业务源相关的分组描述符。在优选实施例中使用的RED实现基于如下的文献:
Floy,Sally,and Jacobson,Van,“Random Early Detection forCongestion Avoidance,”IEEE/ACM Transactions on Networking,August1993.
RED算法计算随机丢弃的概率,其取决于指数加权平均缓冲器持大小和最小及最大平均缓冲器池大小阈值。使用平均缓冲器池大小而不是瞬时大小,使得不必丢弃业务的临时短脉冲串。当与IP分组一起使用RED时,可以使用入队消息601的丢弃优先权字段625的值来根据为IP分组规定的优先权来选择不同的RED阈值和概率参数。
管制(policing)
每一个业务队列使用速率管制来识别业务队列,该业务队列的分组被以高于分配的或者确保的传送速率的业务队列的速率来接收。速率管制确保使用高于它的确保速率的业务队列不会不利地影响其它采用业务队列的确保速率。可以将速率管制与缓冲器池以及双亲缓冲器池阈值算法一起使用。
速率管制参数包括一或两组漏桶参数(leaky buchet parameter):最大支持速率和短脉冲容许和/或最大峰值速率和延迟可变容许。漏桶一致定义被如ATM Forum TM 4.0规范一样所定义,被扩展以支持可变长度分组,以及固定长度分组。可以配置在TMC管制功能中实现的漏桶以支持所有6种ATM Forum TM 4.0一致定义。漏桶是在TMC之外的模型条件的TMC 203的用途的另一个例子。
每一个速率管制业务队列维护一个或两个信用桶(credit bucket)状态,用于加强速率和容许。当初始化业务队列时,每一个桶被赋予它的满的容许的信用。信用桶丢失用于每一个入队分组字节的一个字节信用,以它的配置字节速率获得字节信用。入队的分组字节计数来自它的相关入队消息的分组字节长度字段,所述相关入队消息是通过业务管理接口接收的。
ATM Forum TM 4.0一致定义定义了在楼信用桶(leaky creditbucket)不具有足够的字节信用来容纳入队分组字节长度时所采用的、丢弃的或标记的措施。例如,当峰值速率漏桶不具有足够的信用来容纳分组时,总是为丢弃选择相关的分组描述符。当可支持的速率桶不具有足够信用来容纳一个分组时,根据一致定义,标记分组描述符或者选择它用于丢弃。
消息丢弃模式
当在固定长度分组序列中携带消息时,每一个分组将具有它自己描述符。在固定长度分组的此类序列中,最后分组的头部具有结束消息(eom)标记设置,以指出分组携带结束消息。没有相应的开始消息标记;实际上,开始下一个消息的分组由立即跟着在设定的eom标记的分组之后来识别。表示固定长度分组的TMC描述符216具有结束消息标记,该结束消息标记在描述符表示消息中的最后分组时被设置。EOM标记处于TMC描述符的字段613中。通过立即跟在设置自身EOM标记的描述符之后,来以类似方式识别开始消息的描述符。
在使用分组序列来携带消息的系统中,假设如果组成消息的任何一个分组描述符被丢弃,不能重构整个消息,且应当丢弃属于该消息的分组。由于这个原因,如果在发生第一丢弃时可以立即开始丢弃消息中的余下的分组,则可以提高性能。在后备(look-aside)数据流处理的内容中进行这种丢弃的一个问题是:确保在消息中、对应将被丢弃的第一分组的QMU描述符2508具有它自身的eom标记设置,使得处理对应描述符的信道处理器可以适当地标记分组,且识别用于下一个消息的第一分组的QMU描述符。
业务管理协处理器203可以4种不同的消息丢弃模式进行工作:
·非消息丢弃模式,
·早期分组丢弃模式,
·部分分组丢弃模式,和
·修改的部分分组丢弃模式。
丢弃模式是在每一个业务队列基础上进行配置的。每一个业务队列可以采用多种丢弃模式。对于丢弃配置块433中的业务队列,规定丢弃模式,将哪些可用于给定业务队列的那一种丢弃模式用于业务队列中的给定描述符表示的分组是由描述符中的字段规定的。任何模式可以采用任何技术来确定需要的丢弃。
在非消息丢弃模式中,结束消息指示符对于确定如何丢弃消息的余下分组中没有什么作用。
在早期分组丢弃模式中,接受或者丢弃更大消息的决定是在消息的第一分组的描述符被接收时进行的。当丢弃第一描述符时,则也丢弃分组的消息的所有余下的描述符,反之亦然。如果在消息中有不只一个分组,第一描述符将不会具有它的EOM标记设置。为了丢弃余下的描述符,入队处理器301设置在业务队列状态字段861中的标记,以指出已经丢弃属于多个分组消息的一个分组的描述符,并且还没有接收带有它自己的EOM标记设置的描述符。当消息的分组的每一个描述符进来时,入队处理器301检查字段613,用于结束消息标记。如果没有设置,丢弃描述符;如果字段613中的EOM标记被设置,入队处理器301丢弃描述符并且设置业务队列状态字段861中的标记,以指出已经接收带有EOM标记的描述符。为了增加可以处理整个多个分组消息的机会,入队处理器301可以丢弃第一分组,除非缓冲器池和双亲缓冲器池规范指出大量的缓冲器空间是可用的。
如果第一分组被丢弃,部分分组丢弃(PPD)模式象EPD模式一样工作。然而,如果第一分组没有被丢弃,它也允许丢弃决定将被在“中间分组”上进行。当这样进行时,在其上进行决定的分组和除了最后的分组之外的、所有后面的分组都被丢弃。最后的分组不能被丢弃,因为它具有要求用来识别开始下一个消息的EOM标记。最后的分组进一步包含检错信息,其将指出消息不完整的缩短消息的最后接收器。
在后备数据流处理内容中,丢弃分组的决定当然不是在分组本身上而是在表示分组的TMC描述符216上做出。当入队处理器301选择表示用于丢弃的中间分组的描述符时,入队处理器301设置业务队列状态字段861中的标记,以指出已经丢弃在多个分组消息的分组的描述符,并且还没有接收到带有它的EOM标记设置的描述符。然后,入队处理器301丢弃总计描述符(但是不包括带有EOM标记的描述符),而且如上所述重设置字段861中的标记。不丢弃最后描述符保证了从DCP 202输出的消息将具有带有它的EOM标记设置的最后分组。不论为接收多个分组消息的业务队列规定的丢弃模式如何,当DCP 202中不再有任何缓冲器用于存储进一步的消息分组时,任何入队处理器301使用PPD来丢弃属于消息的余下的分组。当然,这种条件是由用于正在接收用于消息分组的描述符的业务队列的缓冲器池和双亲缓冲器池信息指出。
最后的消息丢弃模式是修改的部分分组(MPP)模式。MPP是一种与分组重组一起使用的特殊消息丢弃策略。在重组中,对应组成多个分组消息的各分组的所有描述符被保持在TMC 203中,直到消息的最后分组被接收到,然后以短脉冲形式输出到DCP 202,DCP 202将描述符短脉冲表示的分组组装成单个分组。可以利用在DCP 202中将描述符短脉冲表示的分组组装成单个分组来解决PPD的问题,即PPD产生的截尾消息继续使用系统201和网络的余下部分中的资源,直到它到达它的目的地且被确定为不完整。PPD和MPPD之间的不同在于用EOM标记处理分组。MPPD中,正被丢弃的“中间分组”的描述符不仅具有EOM标记705设置,还具有类型字段703设置来指出丢弃中间分组。然后,将中间分组的描述符放在将被重组消息的业务队列204中。用于消息的分组的余下的描述符(包括消息的最后分组)被丢弃。允许表示部分消息的分组的描述符被调度。正如将在下面的解释,描述符被输出,而没有交错到被业务队列规定的业务类调度器247的虚拟输出端口251规定的描述符队列247。然后,服务描述符队列247的信道处理器将来自由描述符表示的分组的有效载荷重组成单个分组的有效载荷。当信道处理器遇到带有EOM标记的描述符和中间分组丢弃指示时,它丢弃带有重组有效载荷的单个分组。
丢弃的详细例子:图10和11
下面的详细例子给出丢弃配置块431、缓冲器池规范433、和双亲缓冲器池规范435的详细情况,和在修改的部分分组丢弃模式被采用且使用早期丢弃检测(RED)技术来确定是否应当丢弃分组的情况下的入队处理器301的操作的详细情况。
丢弃配置块431的详细细节
图10示出了在这种情况下的丢弃配置块431的字段。丢弃配置块431具有两个部分:部分1001或1019,它们的字段对于所有丢弃配置块是公共的;和部分1003,它的字段1023-1029对于一种技术而言是特定的,用于确定应当何时丢弃分组。从部分1001和1019的公共字段开始,在1002以常用方式示出参数块431的公共部分的格式,具有列1004-1006,每一个字段有一行。从字段1019开始,该字段包含一个码,其指出用来确定是否应当丢弃一个分组的技术。在此,码为011b,指出正在采用的RED丢弃技术。
字段1017可包含用于丢弃业务队列的tqid423,与丢弃配置块431相关;当如在丢弃配置块431中规定一样丢弃描述符时,丢弃到在字段1017中规定的丢弃业务队列。字段1015指出是否实际上在字段1017中有有效的tqid。EomControl字段1013包含规定将与业务队列一起采用哪一个消息丢弃模式的码。字段1011-1008规定用于业务队列204属于的缓冲器并且用于缓冲器池的双亲的阈值。字段1010和1011规定的缓冲器池最大阈值规定可包含在缓冲池中的最大的分组总的大小;如果将新的分组加到队列中将超过限制,不将分组的描述符加到业务队列,而是被放在丢弃队列中。
由字段1008和1009规定的双亲缓冲器池最大阈值规定可供作为双亲缓冲器池的子女的缓冲器池中共享的分组存储量;如果对于由描述符表示的进入分组没有足够的共享存储,不将描述符加到业务队列,而是放在丢弃的队列中。
字段1007包含丢弃配置块431的部分,丢弃配置块431的内容随着用来检测何时必须丢弃分组的技术而变化。图10中,这些字段是RED部分1003的字段1023-1029。RED技术采用最小阈值来确定应当何时应用该技术;如果业务队列缓冲器池中的分组的总的大小小于进入的分组被加到业务队列中后的大小,将不会丢弃进入的分组,不论双亲缓冲器池的条件如何。当业务队列的缓冲器池中的分组的总的大小是在缓冲器最小阈值和缓冲器最大阈值之间时,RED技术使用在字段1023和1025中定义的概率项以及存储在缓冲器池规范403中的其它信息来确定是否应当丢弃分组。在这种配置中,不使用字段1021。
缓冲器池规范433的详细说明:图11
与丢弃配置块431一样,缓冲器池433具有两个部分:一个如1102所示,对于所有的缓冲器池规范是公共的,和一个如1103所示,对于给定的技术是特定的、以用于确定何时丢弃分组。图11中的部分1103是要求用于RED技术的部分。缓冲器池规范433被以如丢弃配置块433一样的方式来表示。
从字段1102中的公共字段开始,1107是在将部分1103放在其中的字段;1108包含规范433表示的缓冲器池的瞬间(即,当前)大小。字段中的值被更新以跟踪将描述符加到属于缓冲器池的业务队列中,或者从哪些业务队列中除去描述符。在第一种情况中,将描述符表示的分组大小加到缓冲器池瞬时大小中,在第二种情况中,从缓冲器池瞬时大小中减去分组的大小。字段1109和1110规定缓冲器池大小,低于所述的缓冲器池大小,则不会从属于缓冲器池的业务队列中丢弃分组。
SizeinPacketNotBytes字段1111指出是否根据字节数目或者分组数目来规定缓冲器池大小。双亲缓冲器池表示符1113是用于双亲缓冲器池的双亲缓冲器池的标识符。最后,丢弃数据配置类型1115规定由属于缓冲器池的业务队列将被使用的丢弃技术。必须象这些业务队列中的字段1019那样规定相同的技术。在这个例子的字段1116中,规定RED丢弃技术。
1103示出特定于RED丢弃技术的字段。RED技术采用在它的计算中的平均缓冲器大小,字段1117是最后更新值的时间,而字段1119包含所述值本身。字段1121-1129都包含在RED丢弃技术中使用的值。字段1101和1115包含来自缓冲器池规范433的公共部分1102的信息。
丢弃操作的详细说明:图12
图12是当业务队列丢弃配置块431具有在discardDataType 1019和eomControl字段1013中的类型时,入队处理器301如何处理多个分组,discardDataType 1019指出将被用来确定是否应当丢弃分组的RED技术,eomControl字段1013指出将被采用的部分分组丢弃的修改的PPD形式。只要业务队列正在接收用于消息中的分组的描述符时,入队处理器301执行相对业务队列的环1205。
如前所述,当入队处理器301使用MPPD算法来丢弃分组时,它输出表示消息中的分组的TMC描述符214到非丢弃业务队列204,直到必须丢弃TMC描述符214中的一个。从这一点开始,入队处理器301将用于余下的分组的描述符丢弃,以丢弃业务队列,直到它接收到消息的最后分组的描述符。该描述符具有自己的EOM标记设置,入队处理器301标记它以指出一个错误,并且将它输出到包含不被丢弃的消息的分组的非丢弃业务队列。当正在将分组的有效载荷重阻成单个分组的DCP 202中的信道处理器遇到具有自己的EOM标记设置、并且被标记不完整时的描述符时,它丢弃重组的分组。
继续详细说明图12的流程图1201中示出的优选实施例中的算法的实现,从开始1203以及入口环1205开始,首先,入队处理器301获取用于所述消息的下一个描述符。如果业务队列的业务队列参数块401中的业务队列状态字段837和853指出所述队列正在接收用于多个分组消息的分组的描述符,且所述消息将被丢弃(1209),描述符表示的分组将被加到丢弃业务队列中;为了实现它,使用分支1211;否则,采用分支1213到1215。不是多个分组消息的部分的描述符的情况不与这个例子相关。方块1215中,由下一个描述符表示的分组的大小被加到业务队列的缓冲器池规范的BpSize字段1108中的值,以获得新的值newBPsz,并且被加到双亲缓冲器池规范435中的相应值以获得新的值PBPsz。这些值与在用于情况1217中的缓冲器池和双亲缓冲器池的丢弃配置块431中的阈值一起使用来确定如何处理描述符。
存在三种可能性:
·newBPsz小于丢弃配置块431的字段1027和1029的最小允许阈值的值;在这种情况下,分组将被不被丢弃(分支1219)。
·新的PBPsz是多于丢弃配置块431中的双亲缓冲器池的最大阈值1008和1009的值,或者新的BPsz大于在丢弃配置块431中的缓冲器池的最大阈值字段的值;在这种情况下,分组将被丢弃(分支1223)。
·否则,使用RED技术来确定是否丢弃分组(分支1221)。RED技术使用缓冲器池规范431中的概率项信息来进行确定。
第一种概率中,简单地将描述符加到非丢弃业务队列中,如1251所示。第三种概率中,如果RED技术指出分组将不被丢弃(方块1225),分支1227到分支1219,将描述符加到非丢弃业务队列;第二种概率中,或者如果RED技术指出分组将被丢弃,则使用分支1229,因为两种情况中,业务队列状态字段836必须被设置以指出将丢弃这个描述符以及随后的描述符。该状态在方框1231中被设置。
对于将被丢弃的描述符,下一个步骤是检查描述符是否具有它的EOM标记设置(确定方块1233)。当具有该EOM标记设置时(分支1237),MPPD技术要求描述符被标记为具有错误,且被放在非丢弃业务队列中,这在1239和1241中进行。否则,使用分支1235,且将描述符加到丢弃业务队列中。在所有的情况下,再次检查描述符以察看它是否是EOM描述符。如果不是,环1205继续(分支1245);否则,环1205结束(分支1247),且处理结束(1249)。
推测入队:图13
推测入队是这样一种技术,其允许在接收处理器221具有接收描述符216表示的整个分组之前,接收处理器221将TMC描述符216提供给业务队列204。TMC 203确保包含在TMC描述符216中的cp描述符214不被输入到QMU 211中,直到整个分组被接收处理器221成功地或者不成功地接收到之后。接收处理器使用一对入队数据消息601来进行推测入队。第一入队数据消息包含分组的TMC描述符216,且在字段611中指出由描述符216表示的分组被推测入队。当接收处理器221已经完成处理分组时,随后是第二入队数据消息即提交消息。同样,字段611指出该消息是提交消息。仅当提交消息已经到达之后,TMC 203将输出包含在第一入队数据消息中的cp描述符214。
推测入队有助于确保来自开始接收它在接收处理器211中表示分组的TMC描述符216的固定延迟被提供给业务队列204。这种固定延迟对于在DCP 202中运行的、分布处理从在多个接收处理器221中的单个、高带宽分组流(象一个OC46c分组流)接收到的分组的应用很重要。利用分布接收分组处理,必须注意确保按照与接收到的相同顺序将描述符提供给业务队列。在DCP 202内,所述顺序是这样保护的:启动接收处理器,使得它们以循环顺序处理分组,并且按照相同的严格循环顺序将用于它们正在处理的分组的TMC描述符216到QMU 211中,使得在描述符队列213中的描述符队列的顺序是正确的。在开始分组接收和推测入队机制提供的业务队列204中的入队之间的固定延迟解偶(decouple)接收整个分组和提供描述符给TMC 203,因此允许进行这种严格循环处理描述符,不需要减少接收带宽,这将在如果接收较小分组的信道处理器被阻塞直到接收更大分组的信道处理器已经接收它的整个分组时发生。
继续详细地说明,在优选实施例中,提交入队数据消息的字段263识别被推测入队的分组的源,即接收描述符表示的分组的接收处理器。当在接收处理器221中已经接收整个分组时,接收处理器221发送提交入队数据消息。提交入队数据消息在图13的1301中详细地示出。提交入队数据消息1301仅包含类型字段611和源标识符字段623。可以设置类型标识符字段611以指出:提交成功,表明正确地接收到分组;提交失败,表明没有正确地接收到分组。由于相同的将接收处理器接收整个分组,出队数据消息中的源标识符字段623被设置为与表示分组的描述符的入队数据消息中相同的值。
当提交入队消息进来时,业务队列处理器305使用在提交入队消息中发送的TMC描述符中的源标识符字段623的值来匹配提交入队消息和来自相应的推测入队消息的TMC描述符216。优选实施例中,由于在DCP 202中仅有少数目的接收处理器,且给定的源仅仅具有一个来自给定业务队列中的推测入队消息的突出的TMC描述符216,简化匹配的处理。当进行匹配时,业务队列处理器305设置在推测入队的TMC描述符216中的字段611的值,如在提交消息中的字段611的值所确定;如果提交消息中的字段指出“提交成功”,业务队列处理器305设置在推测入队消息中的字段611的值以指出正常入队消息;如果字段指出“提交失败”,业务队列处理器305设置推测入队消息中的字段611的值,以指出正常入队消息失败。当修改的推测入队消息描述符到达它的业务队列的头部时,它被调度,并且被使出队到队列管理单元211,描述符的出对数据消息具有字段703中的一个值,其对应提交消息所为其设置字段611的值。优选实施例中的队列管理单元211将字段611传送到正在处理描述符的信道处理器,并且信道处理器确定如果字段611指出推测入队失败,则要干什么。当然,在大多数情况下,信道处理器将促使丢弃分组。
推测入队的一个重要方面是影响调度。由于在推测入队TMC描述符216中的cp描述符214不能被输出到QMU 211,直到已经接收提交消息,它的头部TMC描述符216是没有为其接收到提交消息的推测入队描述符的业务队列对于调度是不合格的。因此,当这样的业务队列到达调度器队列523的头部时,在服务TMC描述符216之前,业务队列处理器305从调度器队列523中去除业务队列204,将它放在与业务队列的业务类调度器503相关的不合格的业务队列中。当业务队列处理器305接收使业务队列204合格的提交消息时,业务队列处理器305将业务队列204返回到用于业务类调度器的调度器队列中。
出队调度器303执行的操作的详细说明
出队调度器303执行调度器层次501中的调度器,从而执行TMC203的调度、整形、和分组以及重组功能。对它的介绍从对可在优选实施例中使用的调度器的一般介绍开始,然后介绍优选实施例的调度器的调度、整形和分段以及重组算法,最后提供调度器的详细例子以及实现和执行它们的方式。
TMC 203中的调度器
如在前面的综述中所述,通过可由TMC 203的用户扩展地配置的调度层次501来进行出队调度;在下文中,将详细地介绍调度器种类、配置它们的方式以及它们进行工作的方式。
如在综述中所示,根据层次中的它们的位置来在层次501中对调度器进行分类:业务类调度器503在叶节点,内部调度器509在内部节点。优选实施例中的调度器可以使用下面种类的调度算法来选择调度器队列523,用于从调度器队列的输入调度器队列523中输出:
·严格的优先权,其中,根据在输入调度器队列523中的严格优先权来选择输出调度器队列523;
·循环;
·加权的公平共享,其中,每一个输入调度器队列被赋给一个权重,由给定输入调度器队列接收的带宽的共享由给定输入调度器队列权重和所有输入调度器队列的总权重之间的关系确定。
·基于帧的不足循环,其根据分组字节长度来提供加权公平共享调度;和
·组加权公平队列,其在描述发表示固定大小分组的输入业务队列中分配可用带宽。
优选实施例中,可以配置业务类调度器503来使用上述的调度算法中的任何算法,但是可以配置内部调度器509来仅仅使用严格的优先权、循环、或者加权公平共享算法。当然,在沿着通过层次501调度器队列采用的路径209的不同点,可以采用不同种类的调度器。
配置调度器:图14
图14示出在优选实施例中可用于配置调度器的用户的资源。这些资源组成了在下文中所称的“逻辑调度器”1401。通过在逻辑调度器1401提供的资源中进行选择,用户配置业务类调度器或者内部调度器。资源包括严格优先权调度器1407、过多调度器(exeess scheduler)1415和保证调度器1413。
三个调度器1413,1415和1417如下相互相关:保证调度器1413确保可以用于由调度器1401调度的总带宽的一部分可以用于在逻辑调度器1401的输入调度器队列中共享。如果保证的部分共享没有完全用完带宽,每一个调度器队列是合格的用于进行接收,并且使用带宽的不受保证的部分的一部分。过多调度器1415可以用来调度带宽的这种不受保证的部分。因此,如果由于它已经使用它的不受保证的队列523而不能由调度器1413选择调度器队列523,调度器队列仍然是合格的用于被过多调度器1415所选择,调度器1415调度带宽的不受保证的部分。调度器1413的输出和调度器1415的输出1411进入严格优先权调度器1407,调度器1407相对调度器1414选择的任何调度器队列,给与由调度器1413选择的任何调度器队列优先权。在输出1413处的逻辑调度器1401的调度器队列输出是调度器1407选择的一个。
继续详细地说明可能的配置,在优选实施例中,总是将保证的调度器配置成非连续工作的加权公平队列调度器;在优选实施例中特别关心的加权公平队列调度器的形式是基于帧的不足循环调度器。可以将过多调度器配置成严格优先权调度器,循环调度器或者连续工作的加权公平队列调度器。当将保证调度器配置成非连续工作加权公平队列调度器时,可以将过多调度器配置成严格优先权调度器、循环调度器或者加权公平队列调度器。
调度器使用的算法的详细说明
优选实施例中的调度器使用的算法中,不需要进一步说明循环和严格优先权;在下文中,详细地介绍加权公平队列、基于帧的不足循环、和组加权公平队列。
加权公平队列
加权公平队列动态地将优先权或者权重应用到通过系统201的不同的流或者业务上。具有较低权重的业务流获得可用于所有流的带宽的更大共享,可用于给定带宽的带宽数量随着流的当前数目和权重变化。加权公平队列的优点在于诸如要求立即传输的交互业务的业务可以接收较低权重,而不要求立即传输的业务可以接收较高权重。各种业务中没有业务将阻塞其它的和所有业务将获得它们要求的访问类型。总之,当使用加权公平队列算法时,输入会话接收的部分量的服务或带宽等于会话的权重除以所有输入会话的权重的和。在TMC 203中,调度器的有效和可调度的输入调度器对垒523的每一个表示一个输入会话。
已经提供很多定义用于分组的各种变化的“加权公平队列”算法的文章。加权公平队列算法的这些变化都是从一般的处理器共享(GPS)模型中导出的,并且所有都具有不同的公平特征。在TMC 203的优选实施例中使用的各种算法试图获得最好的延迟和公平特性,并且带有最小的复杂度。
可以将优选实施例中的加权公平队列调度器配置成连续工作的或者不连续工作的调度器。连续工作调度器将总是服务一个输入调度器队列,如果调度器队列是有效的并且可调度的话。连续工作调度器的目标是提供对调度器输入完善的交错,以产生常数速率,在此速率下,调度器的输入调度器队列被用最小脉冲串服务。连续工作调度器假设调度器可在其下输出调度器队列的速率是可变的,因此,在优选实施例的加权公平算法中使用的系统潜在的或者虚拟时间功能不会在速率或者实际时间之前,实际上先于提供的服务量。在非连续工作的调度器中,输入调度器队列不被服务,直到实时地发生特定的时刻。直到该时刻发生,将被下一个接收的业务队列保持在调度器队列的头部中,除非它优于变得不合格而被去除。
基于帧的不足循环
基于帧的不足循环调度算法用于由可变长度分组组成的业务流。它提供了在通常不要求带宽保证或者具有严格抖动和延迟要求的业务队列中对可用的服务进行加权公平共享分配。该算法尤其对TCP业务有用,TCP业务通常由长消息分组和更短的确认分组混合组成。
优选实施例中,将所述算法采用在业务队列调度器503中。基于帧不足循环业务类调度器具有三种输入调度器队列:一种称为“高优先权”调度器队列;另外两种称为“当前”调度器队列和“下一个”调度器队列。业务类调度器503仅仅调度高优先权调度器队列和当前调度器队列,高优先权调度队列具有高于当前优先权队列的优先权。调度器503调度当前调度器队列,直到它变成空;在变成空时,交换当前调度器队列和下一个调度器队列。变成合格的业务类被加到下一个调度器队列,并且从当前调度器队列或者高优先权调度器队列中去除已经在时间间隔上接收到它们的共享服务的业务队列,或者将它们加到下一个调度器队列。变成不合格的业务队列被从高优先权或者当前调度器队列中去除。
FBDRR算法在高优先权调度器队列以及当前调度器队列或者高优先权队列之间移动业务队列。根据在FBDRR调度其中的两种业务队列参数以及每一个业务队列中的两个计数器值来移动业务队列。参数如下:
·最大量,其规定在将业务队列从高优先权或者当前调度器队列中移到下一个调度器队列之前,业务队列可以接收的最大服务量,和
·最小量,其规定在将业务队列从高优先权移到当前调度器队列之前,业务队列可以接收的最小服务量。
计数器是“不足计数器(deficit counter)”和BytesServedThisRoundRobinCounter。这些值被存储在业务队列的参数块403中的调度器状态字段845中。
当调度器开始调度当前调度器队列时,将当前调度器队列中的每一个业务队列的不足计数器设置为不足计数器的当前值加上最大量,且将用于业务队列的BytesServedThisRoundRobinCounter设置为0。每一次给定的业务队列到达当前调度器队列或者高优先权队列的头部时,从不足计数器的当前值中减去在头部描述符中规定的分组长度,并且将分组长度加到BytesServedThisRoundRobinCounter上。有三个所关心的结果:
·如果减法的结果是正的,且加法的结果小于最小量,并且给定的业务队列不是已经在高优先权调度器队列中,将给定业务队列从当前调度器队列移动到高优先权调度器队列。
·如果减法结果为正的,加法结果大于最小量,而且如果业务队列已经在当前调度器队列中则维持在其中;否则,将它移动到当前调度器队列的尾部;在任何情况下,设置BytesServedThisRoundRobin为0。
·如果减法结果为负的,给定业务队列被从当前调度器队列或者高优先权队列中移去,并且被放在下一个调度器队列中。当这样做时,将不足计数器设置为不足计数器加上最大量,且将BytesServedThisRoundRobin设置为0。将不足计数器加到最大量给了在这个循环中不能接收服务的业务队列在下一个循环中接收服务的机会。
用于放置业务队列并且将它们从高优先权中去除的高优先权调度器队列和规则确保其头部描述符表示分组的业务队列小于最小量参数获取优先权服务。这又确保了用于TCP确认分组的描述符被快速地调度。FBDRR算法的另一种版本仅仅要求当前调度器队列和下一个调度器队列。在这个版本中,已经满足将被移动到高优先权调度器队列的条件的业务队列简单地保持在当前调度器队列的头部中,直到它满足用于被移动到下一个调度器队列的条件。
组加权公平队列
业务类调度器可以采用组加权公平队列算法。该算法类似于加权的公平队列算法,但是已经被修改用来在具有公共服务权重以及分组服务间隔的业务队列组中分配服务带宽。该算法分配根据每一个业务队列的一个加权平均共享,这与根据每输入调度器队列的加权公平共享相反。
组加权公平队列调度器功能如下:
1.分配给相同输入调度器队列的所有业务队列共享相同的服务权重以及相同的分组服务间隔。换言之,调度器支持一固定权重组,用于每一个输入调度器队列中的业务队列的一个权重,并且假设属于相同输入调度器队列的所有业务队列携带相同大小的分组。
2.调度器保证用于每一个合格业务队列的加权公平共享,但是在最坏情况下初始化延迟的业务队列保证边界可以被在业务调度器的调度器队列中的合格业务队列的数目影响。这种调度算法有用于保证带宽,或者有用于在携带固定大小分组诸如ATM信元的业务队列中分配可用带宽。
整形详细说明
TMC 203中的整形被定义为被用来延迟来自业务队列的分组描述符出队或者聚合业务队列以获得希望的出队传输速率特征的机制。在TMC 203中,在使用非连续工作加权公平队列算法的调度器中实现。这种调度器可以被配置来延迟服务到一个有效业务流,使得业务流的出队服务速率不大于在给定时间周期上的规定的最大速率。通过所有整形调度,短期(short-term)出队速率很可能是短脉冲串,有时超过希望的速率限制,因为复用大量的有效调度器输入引入了抖动和延迟。
整形的配置调度器
可以使用多种技术来配置用于整形的逻辑调度器1401。所有这些技术的基础是将保证的调度器1413配置成非连续工作的调度器,并且不给过多调度器1413分配带宽。特别地,当将组加权公平队列算法用在保证的调度器1413中时,
·将每一个业务队列整形为由业务队列所属于的输入调度器队列的权重规定的速率。
·当业务类调度器正在调度可变长分组业务时,携带业务的业务队列可以被通过配置业务类调度器作为加权公平队列调度器且限制每一个输入调度器队列成携带可变分组长度业务的单个业务队列来单独地整形。
使用双漏桶的整形
限制Q5中的双漏桶调度来以一种方式调度固定长度业务,其限制在短期中的峰值速率和在某些长期支持速率的出队。它支持连接到在组模式中工作的分连续工作加权公平队列业务类调度器503的成对调度器队列523。应当配置每一对的偶数调度器队列来以希望的主要速率输出分组。应当配置奇数调度器队列来以支持的速率输出分组。当需要将业务队列加到调度器队列中时,如果现在不传输它,使用支持的速率漏桶算法来确定是否妨碍支持的速率漏桶。根据业务队列,将支持的速率漏桶的状态信息保存在管制2(police2)字段816中的业务队列参数块403中。源于此,丢弃管制正在双管制的业务队列504不能规定调度器根据双整形算法来调度。业务队列504必须进一步规定在它的调度器输入配置3011(图30)中的双整形,并且必须选择在输入配置中的适当常数。常数必须定义被使用的成对调度器输入,在分组中测量的漏桶周期,和漏桶限制。
当业务队列204开始变成合格时,将放在被以主要速率配置的调度器队列中,漏桶状态信息将被保存在业务队列的管制2字段816中。当服务将被存储在业务队列的调度状态字段845中的描述符时,业务类调度器必须返回可调度的状态信息。下一次业务队列处在它的调度器队列的头部时,存储的值将被传送回到业务类调度器。调度状态信息包含合格的时间,将防止服务业务队列,直到用于该速率的适当时间。
每一次业务队列变成合格并且被加到调度器队列时,研究在管制2字段816中的漏桶状态,以确定服务由业务队列的头部中的描述符表示的分组现在是否妨碍支持的速率漏桶。如果将妨碍速率,将分组的描述符放在支持的速率调度器队列上而不是主要速率队列上。此外,将合格的时间值设置在业务队列参数块403中,防止在到达合格时间之前服务业务队列。当合格时间到达并且服务业务队列时,业务队列(如果仍然合格)将被返回到支持速率队列的末尾。
分段和重组
系统201可以将在长分组中携带的消息转换成在短分组的序列中携带的消息,并且将在短分组的序列中携带的消息转换成在长分组中携带的消息。这些变换中的第一种称为“分段”,第二种称为“重组”。这样的例子如一个IP分组被作为一个序列的ATM分组的有效载荷传输。在分段中,将IP分组分段成ATM分组序列的有效载荷;在重组中,将ATM分组序列的有效载荷重组成IP分组。
系统201中,分段和重组都涉及到对cp描述符操作。在分段中,用于长分组的单个描述符214变成用于短分组的描述符序列;在重组中,用于短分组的描述符序列变成用于长分组的单个描述符214。在优选实施例中,这两种操作都涉及到TMC 203中的业务队列,并且都在业务类调度器503中进行。用于分段的业务类调度器被称为“分段调度器”,且用于重组的一个称为“重组调度器”。优选实施例中,用户可以配置业务类调度器成分段或者重组调度器。被配置来规定分段或者重组调度器的业务队列被进一步分别称为“分段”或“重组”业务队列。利用分段,当配置分段调度器时,在分组中使用的参数值被规定;利用重组,当配置重组调度器业务队列时,规定重组操作。
分段详细说明
利用分段业务队列,已经到达分段业务队列的头部的单个TMC描述符216将促使产生QMU描述符2508的序列。序列中的每一个QMU描述符将包含入队描述符的副本,且允许在发送序列中的相应QMU描述符的DCP 202中的信道处理器能够确定由从中产生QMU描述符的序列的单个TMC描述符表示的分组的有效载荷的哪些字节需要被获取,以形成序列中的每一个QMU描述符表示的分组。
使用下面的信息来确定在序列中的多个QMU描述符和在每一个QMU描述符中的进度指示符的值:
·业务队列的业务队列参数块403中的信息字段836;在重组业务队列中,该字段的值是当前在业务队列的头部中的描述符所表示的分组长度;
·分段调度器中的分段大小字短;该字段的值是序列中的每一个分组的总的大小;
·分段调度器中的有效载荷大小字段;该字段的值是序列的每一个分组的有效载荷的最大大小;和
·分段调度器中的开销大小字段;该字段的值是在分段大小字段规定的大小和有效载荷大小字段之间的差值。
所有的大小都是以字节测量的。
分段调度器从表示单个可变长度分组的描述符的入队消息中产生的出队数据消息的数目如下计算:
分段数目=取限(ceiling)((分组长度+分段开销大小)/分段有效载荷大小)
属于所述序列的每一个出队数据消息701包括在字段715中的分组字节余下值,指出在产生分段的这个描述符之前,有多少被分段的分组的有效载荷余下。
提供了如下例子:字在分段业务队列的头部中的描述符表示带有总的157个字节长度的分组;它将被分段成固定长度分组的序列,每一个分组具有60字节的长度,其中有48个字节是有效载荷。分段的结果是如下的60字节分组的序列:
分组号 分组中有效载荷的字节  余数
 1  0-47  157
 2  48-95  109
 3  96-143  61
 4  144-157  13
在这个例子中,在从由分段调度器产生的之中来接收QMU描述符2508的DCP 202中的信道处理器被编程来产生带有适当的头部和尾部的60字节分组。使用QMU描述符的余数值和原始分组(包含在QMU描述符的cp描述符214中),信道处理器可以确定原始分组有效载荷的哪些字节需要被从缓冲器管理单元227中获取,以被结合到每一个60字节分组的48字节有效载荷中,给定的60字节分组是否是包含原始分组的有效载荷的序列中的第一分组,中间分组或者最后的分组。
可能会看出,分段由业务类调度器执行,丢弃分组的决定不受它的目的地是否是分段业务队列影响。对于调度,单独地调度在每一个单独的出队数据消息中的描述符;因此,包含用于分组序列中的分组的QMU描述符的出队数据消息可以能被与其它的出队数据消息交错在一起。用于分段业务队列给出的描述符的调度机制与用于其它描述的机制相同。仅有的差别在于用来调度描述符的分组长度被从分段大小字段而不是在TMC描述符216中规定的大小中重新获得。
重组
重组涉及到将分组序列的有效载荷进行组合以形成单个分组的有效载荷。DCP 202进行这种组合。为了对其本身进行组合,DCP 202必须维护各种状态,以正确地从较小分组的序列中重构较大的分组。TMC 303使DCP 202中要求的状态最小以进行组合,组合是这样进行的:组织使来自TMC 203的分组序列的QMU描述符2508出队,使得表示要求用于较大分组的分组的QMU描述符被经过用于重组调度器的虚拟输出端口521输出,而不被经过虚拟输出端口与其它QMU描述符交错。重组中重组业务队列的作用是提供序列。与重组相关的一个问题是TMC 203中的资源量被与存储描述符相关,直到在序列中的所有描述符已经被接收并且描述符被输出。在TMC 203中实现的重组一两种方式处理这种问题:
·一旦在序列中的描述中的一个已经被丢弃,采用修改的PPD丢弃算法来丢弃在序列中的所有接收到的描述符;和
·采用超时机制来确定已经中断在序列中的分组流;当检测到中断时,用于序列的描述符被使用修改的PPD丢弃算法来丢弃。
当TMC 203一将将在单个非交错脉冲串中的QMU描述符2508的序列输出到重组调度器VOP 251规定的描述符队列中时,DCP 202中的信道处理器可以处理QMU描述符2508以将分组序列的有效载荷组合成单个较大的分组,并且可以将用于较大分组的TMC描述符提供给入队数据消息601中的TMC 203,用于以常规方式进行调度。当TMC 203将包含用于较大分组的QMU描述符2508的出队数据消息输出,较大分组由在DCP 202中的另一个信道处理器输出。因此,重组提供了一个关于可能在系统201中的TMC 203和DCP 202之间的复杂交互作用的种类的例子。
在重组所采用的业务种类中,属于其有效载荷将被重组成较大分组得序列分组的分组从它们的源以业务流方式到达DCP 202,具有如下特征:
·以与源发送它们的相同顺序接收分组;
·源没有将属于不同分组序列的分组进行交错;和
·属于不同源发送的序列的分组被交错。
序列中的最后分组被标记作为包含结束消息。
已经配置了TMC 203,使得有一个业务队列对应将被在TMC 203中重组的分组序列的每一个源,并且处理业务流的接收处理器(一个或多个)包括规定对应它们发送到TMC 203的TMC描述符216中的源的业务队列的序列。因此,从给定的源中接收用于一个序列的TMC描述符216的业务队列按照它们被在DCP202中接收的顺序接收TMC描述符,但是不接收来自其它源的任何交错的TMC描述符。信道处理器标记用于在序列中的最后分组的TMC描述符以指出它的分组是EOM(结束消息)分组。因此,接收将被重组的分组的描述符的业务队列包含一个或多个非交错的TMC描述符队列,每一个描述符序列对应来自业务队列对应的源的分组序列,并且表示字在DCP 202中已经被接收但是还没有被重组的分组序列,描述符的最后序列不包括指出它的分组是EOM分组的一个描述符。
如果在业务队列的头部中的TMC描述符属于不包括在标记作为EOM分组的TMC描述符216的TMC描述符216的序列,重组业务队列204不是合格的可用于调度。与任何其它不合格的业务队列一样,当将被服务时不合格的重组业务队列被从调度器队列中去除。当EOM描述符到达时,业务队列处理器305再次将业务队列放在调度器队列中。业务队列处理器305使用来确定用于序列的EOM描述符是否已经到达的状态信息被包含在业务队列的参数块403的字段816中。
当业务队列204处在调度器队列的头部,且调度器层次501选择调度器队列时,开始输出在业务队列的头部中的描述符队列。此时,利用从重组业务类调度器293到虚拟输出端口的调度器队列,在通过调度器层次的路径209中的调度器被所定,以使使用相同的虚拟输出端口的其它调度器队列被调度,且业务队列被维持在它的调度器队列的头部,直到在序列中的所有描述符已经被输出。当输出被标记为EOM的描述符时,锁定的调度器被解锁,且业务队列被从它的调度器队列的头部中去除。因此,按照在DCP 202中接收描述符序列对应的分组序列的顺序来将在业务队列的头部中的描述符序列从它的业务队列204输出到在对应路径的虚拟输出端口的QMU 217中的描述符213。可以按照与用于其它业务队列中的入队的描述符的相同方式来丢弃用于属于重组调度器的业务队列中的入队的TMC描述符216。在优选实施例中使用的丢弃模式是MPPD模式。
伴随着刚刚介绍的重组技术的一个问题是检测来自畸形消息(malformed message)即不具有EOM标记的消息的描述符。表示这样的消息的TMC描述符的序列将永远不接收标记的最后描述符,因此,当序列中的第一TMC描述符到达业务队列的头部时,业务队列将变成不合格,且将永远维持这样。使用跟踪可以帮助定位畸形消息和释放它们的资源的业务队列的不活动性的一般方法,业务队列处理器305检测这种情形。一般的不活动性跟踪是“时钟睡眠”方法的实现。周期地,业务队列的参数块403的字段869被标记为已经睡眠了第一次。业务队列上的任何入队活动性将清除“睡眠一次”指示。当“时钟睡眠”传送业务队列到时钟睡眠的下一个轮次时,如果由于上一次睡眠而被入队活动清除了睡眠一次,字段869被标记为已经睡眠一次,或者标记为已经睡眠两次或者多次,如果它还没有被清除的话。被标记为已经清除两次或者多次的业务队列必须已经是空闲了至少与睡眠周期一样长。
利用重组业务队列,使用一般的时钟睡眠来促使在已经将字段869标记为已经睡眠两次之后,业务队列使进程中的重组“超时”。当发生超时时,设置字段861以指出业务队列被禁止,且业务队列被放在有效调度队列中。象上面介绍的一样,畸形消息的描述符的序列被从TMC 203出队,但是当畸形消息的最后分组被使出队,已经设置字段861来指出业务队列被禁止的情形促使出队调度器303用特殊的EOM标示符来标记最后的分组,指出序列已提前结束,且已经禁止业务队列。当接收用于将被重组的有效载荷的描述符的DCP 202中的信道处理器接收带有指出畸形消息的描述符时,信道处理器丢弃对应描述符的有效载荷。由于需要维持用于重组的每一个队列状态,重组业务类调度器可能不使用也要求用于调度的每一个业务队列状态的调度算法。优选实施例中,基于帧的不足循环和组加权公平队列算法要求用于调度的每一个业务队列状态。
调度器的实现的详细说明
优选实施例中,调度器在TMC IC 1503内部的调度器存储器1515中实现,并且被通过在存储器1515中设置调度器状态。每一个调度器是通过调度器层次501中它的级别和它的级别中的号来指向的,调度器的给定输入是通过调度器的级别,级别中的号和输入的数目来指向的。优选实施例中,每一个级别具有可以被使用来规定在该级别中的调度器输入的值范围,调度器的号是在该范围中的偏移,属于调度器的输入是偏移和(调度器的输入的号-1)之间的输入。一个输入可仅属于一个调度器。优选实施例中,32个输入可以用于单个级别0调度器,512个输入可用于级别1调度器,4K的输入可用于级别2调度器,8K的输入可用于级别3调度器。如前所述,调度器层次的叶总是业务类调度器503和内部节点内部调度器509。
业务类型调度器503详述:图21
图21示出了定义特别业务类型的调度器503(i)在层次501中的位置以及它在优选实施例中的行为的信息。因为业务类型调度器503(i)是层次中的叶,它的一组输入调度队列是有效调度队列523的531组,其业务队列204规定了业务类型调度器503(i)。对它的每个输入2101,业务类型调度器503(i)维持用于使调度队列523与输入2101相关的输入状态2103。用于给定的输入2101(i)的输入状态2103(i)包括输入是否已预定(backlogged)(字段2105),与调度队列523(j)相关的输入是否有效的、取决于算法的输入状态2106,和与输入2101相关的调度队列523中的头业务队列和尾业务队列的标识符2107和2109。取决于算法的输入状态2106是有关输入调度队列的状态,它根据调度器所使用的调度算法而不同。
层次501中业务类型的调度器503(i)的放置由连接状态2121规定,它定义内部调度器509和它的输入,调度器503(I)向该输入输出由调度器503(i)选择的储备调度队列523。那个内部调度器被称为调度器503(i)的双亲。连接状态2121包括双亲调度器属于其的层次501中的层2123,这层中调度器的编号2125,和双亲调度器的输入2127,单独调度器503(i)向这个输入输出它所选择的调度队列。
业务类调度器503(i)如何调度与其输入相关的调度队列是由调度状态2111决定的。调度类型2113规定调度器的类型,随后是业务类调度器所使用的算法,以及这是否为段或重组调度器;输入2115的数量规定了属于业务级别调度器的输入2101的数量;锁定?2117用于当重组调度器503时锁定调度器503(i),其通过层次501的路径包括作为调度器503(i)输出描述符序列的虚拟输出端口521。取决于算法的状态2119的内容取决于2113处所规定的调度类型,且包括需要配置调度器类型的信息及需要执行其调度算法的状态。
内部调度器509的详述:图22
图22是内部调度器509(i)的详细方框图。用于内部调度器509的连接状态2121和调度状态2111与业务类型调度器503用的一样。内部调度器509与业务类型调度器503的功能不同之处在于内部调度器509是调度层次501的内部节点,因此,内部调度器509调度一组调度队列534,其成员由层501中低于调度器509的调度器的活动决定。这个功能上的差异反映在输入状态2205中,它包括允许调度器509定位当前被束缚在输入的调度队列523的信息,以决定那个调度队列是否不仅有效而且可调度。
用于输入2203(0)的输入状态2205在2205(0)处示出。字段2105指示出所选择的调度队列2201(i)是有效且可调度的。字段2106包含取决于算法的输入状态,如图21所描述。字段2207-2209包含有关从调度队列的业务类型调度器503传递过来的调度队列2201(i)的信息。源调度字段2207和源调度输入字段2209允许定位用于调度队列的头和尾指针;传递合格时间2211指出在非连续工作调度算法下的下一个合格的调度队列2201被调度的时间。
字段2213-2217包含关于处于调度器509(i)和业务类型调度器503的路径之间的任意虚拟输出端口521(k)的信息,该调度器是调度队列2201(i)的源。字段2213指出是否有这样的虚拟输出端口;如果有这样的虚拟输出端口,字段2215指出描述符队列213是否对应于能采用更多描述符的虚拟输出端口521(i),进而调度队列2201(i)是否是可调度的。VOP说明符字段2217包含用于虚拟输出端口的标识符;当QMU描述符2508是来自TMC203的输出时,在层0的调度器509中的这个字段是QMU描述符2508的字段707中规定的VOP标示符的源。
虚拟输出端口详述:图27
图27示出优选实施例中实现虚拟输出端口521(i)所采用的数据结构。字段2701包含虚拟输出端口521(i)可用的“当前信用”,即当前可以被加到对应于虚拟输出端口521(i)的描述符队列213的描述符的数量。字段2701配置了最大出队信用,计算为在给定出队/出队确认循环的往返延迟下,能够保证维持虚拟输出端口的满带宽。无论何时TMC 203从属于调度队列的业务队列中输出描述符,该调度队列通过调度层次501的路径529包括虚拟输出端口521(i),字段2701的值被递减;不论何时当QMU 217向TMC 203发送出队数据消息确认1921指出已将描述符从对应于虚拟输出端口521(i)的描述符队列213中清除时,字段2701的值就被递增。传递这些信息的机制将在后文阐述。当前信用字段2701具有为0的值时,没有一个穿过虚拟输出端口521(i)的路径529的调度队列是可调度的。字段2703是用于虚拟输出端口2703的标示符;在优选实施例中,标识符不过是对应于虚拟输出端口的描述符队列213标识符。字段2701和2703被传递到调度层次501中高于虚拟输出端口521(i)的调度器509,如图22所示。在2705中成组的字段规定了虚拟输出端口521(i)在调度层次501中的位置。通过指明向一个特别的调度器509(j)输入来规定该位置。通过其在层次中所属的层(字段2707)和它在层(level)中的位置(2709)规定了调度器509(j),字段2711规定到调度器509(j)的输入。
调度层次501的操作详述
调度层次501响应改变调度层次501状态的调度事件对调度队列进行调度。不论何时发生了这样的事件,出队调度器303首先应事件的要求改变层次501的状态,然后调度受层次501状态的改变影响的处于层次501部分中的调度队列523。有三类调度事件:
·调度队列入队事件。当业务队列204中有改变时发生调度队列入队事件,这个改变处于调度队列头或在头部业务队列的头部的TMC描述符216中。
·调度队列出队事件。不论何时调度器层次501已经选择了用于出队的调度队列523时,发生调度队列出队事件。
·虚拟输出端口使能事件。当接收到来自DCP202的出队确认消息1921导致虚拟输出端口的出队信用从零变换为非零时发生虚拟输出端口使能事件。
调度事件的发生引起调度器状态和虚拟输出端口的变化,当事件所导致的变化已经形成了值,受事件影响的路径529中的调度器开始调度,从路径的业务类型调度器523开始,到调度层次0结束。
调度事件引起的状态改变
继续更详细地阐述受调度事件影响的状态,调度队列入队事件能够由变为非空从而有效的调度队列引起,由导致新的业务队列变成输入调度队列头部的调度队列出队操作,或变成处于输入调度队列头部的业务队列头部的新的描述符引起。在后者情况下,如果新的描述符不能被出队,从而移交不合格的业务队列,调度队列入队事件会导致不合格的业务队列从调度队列中被清除。于是会依次致使调度队列为空从而使其无效(inactive)。作为调度队列入队事件的结果,当调度队列变为有效或无效时,预定(backlogged)的值2105将当然地改变。
出队事件会导致业务队列变空,依次致使调度队列无效。这又依次导致输入状态2103中的业务类型调度器503的预定字段2105更新,用于描述符从中离队的调度队列。跟随虚拟输出端,沿调度队列路径529经过调度层次501,出队事件进一步更新调度器中的虚拟输出端使能字段2215。最后,虚拟输出端口时能事件也跟随虚拟输出端,沿调度队列路径529经过调度层次501,更新调度器中的虚拟输出端口的使能字段2215。
响应调度事件的调度
在完成了事件所要求的更新层次501的状态后,调度器从层501的最低层调度开始,其状态被该事件影响,并沿路径529,从最底层的被允许的调度器经过第0层调度器贯穿层次。因此,调度队列入队和出队事件发生时,调度从被事件影响的业务类型调度器503开始,并且当虚拟输出端使能事件发生时,调度从状态被事件所影响的虚拟输出端控制的输入开始。路径上的每个调度器,由调度器的输入根据下面规则定义从一组调度队列中选择调度队列523:
·如果受事件影响的最低层调度器是业务类型调度器503,业务类型调度器就不能选择输入调度队列,除非输入调度队列如字段2105所指示的那样已经预定(backlogged)。
·如果调度器是具有被虚拟输出端口控制的输入调度队列的内部调度器509,调度器不能选择输入调度队列,除非输出端口使能状态指示输入调度队列是可调度的。
·如果调度器是内部调度器509且输入调度队列具有字段2211中,不是将来的传递合格的时间值。从可调度的输入调度队列中进行选择是由调度器中配置的算法决定的(例如:严格的优先权调度算法会选择最低编号的有效调度输入)。
·如果所有的调度队列具有字段2211中的将来的时间,就选择具有最近的合格时间的可调度的输入调度队列。
所选择的用于出队到DCP202的调度队列由传递的调度器/输入状态2207和与0级调度器所选择的输入2203相关的输入状态2205中的2209识别,并且路径所采用的虚拟输出端口521由于输入2203相关的输入状态2205中的传递虚拟输出端口说明符2217所识别。
调度配置详述:图23,24,29,36和37
图23和36示出了用于配置业务类型调度器503和内部调度器509的调度器配置数据2301。一些种类的业务类型调度器需要图29中示出的额外业务类型调度器配置数据2901。说明符2301中所包含的数据用于为调度器构造调度配置说明符425。像前面那样,图中示出了表格,表格的每行代表配置数据2301或2901中的字段。字段的使用在1006行中规定。图23绝大部分是不言自明的;字段2303和2305规定调度层次中的层次和位置,从而确定要配置的调度器;字段2307到2311定义调度器如何与它的双亲调度器连接;字段2313-2317根据逻辑调度器1401定义调度器的类型;字段2319定义了用于调度器输入的输入个数。数目随着调度器的种类而变化。与每一个调度器输入相关的是输入配置数据,如图24所示。
图29示出了业务类型调度器配置数据2901。字段2903是tqid423,用于与被定义的业务类调度器503相关的丢弃业务队列;组调度器类别标志2906指出调度器是否工作在组模式中;调度器类别字段2907指出调度器是否是FBDRR调度器;双整形器2909指出所有的调度器输入以双整形模式工作。类型字段2911规定调度器所调度的业务队列类型。该字段指出业务队列204是否具有可变长度或者固定长度的分组,且如果它们具有固定长分组,调度器在业务队列中是否对分组进行分段或者重组。当类型字段2911指出分段业务队列,字段2913-18规定在分组中使用的参数。
图24和27示出了调度器输入初始化数据2401,其被用来初始化调度器的输入;该数据也是调度器配置说明符425的一部分。同样,该图给出了表,每一行代表输入初始化数据中的字段。字段2407和2409规定输入所属的调度器,而字段2411指出在规定的调度器中初始化的输入数目。使用余下的字段中的哪一个取决于调度器的类型。字段2403和2405规定在使用加权平均队列的调度器类型中的字节服务间隔;字段2412被用在图14示出的类型的允许的-过多选择调度器中,以规定如何将输入连接到允许的调度器1413和过多的调度器1415。
图30,40和41示出用来将业务队列与用于业务类调度器503的输入调度器队列523相关的数据3001。对于给定的业务队列,该数据由业务队列的参数块403中的字段831所参考。数据的内容取决于业务类调度器使用的调度算法。3003中示出的内容被用于所有的调度算法,其中,业务队列保留被分配给属于的业务类调度器的单个输入调度器队列。由被设为00的类型标志3005组成的数据指出将业务队列保留在固定的调度器队列中,字段3009包含业务类调度器中的固定输入调度器队列数目。使用数据3003的业务类调度器的例子是循环和严格的优先权调度器。
数据3011被用于双整形漏桶调度器,其中,业务队列在一对输入调度器队列的成员之间移动。类型字段的值规定这种类型的调度,字段3015和3017包含用于漏桶调度的参数,字段3019规定所述队的偶数输入调度器队列。数据3021用于FBDRR调度器。类型字段3023指出具有值“10”,字段3025是业务队列的最小量参数,字段3027是业务队列的最大量参数。当然,很多不同的业务队列204可以共享数据3021。
例子:使用基于帧的不足循环调度算法的配置和操作:图26
图26示出已经被配置作为基于帧的不足循环调度器2601的业务类调度器503的详细配置。如前所述,FBDRR算法根据分组大小进行调度,因此当由可变大小的分组诸如TCP协议的那些分组组成业务时,有效地分配带宽。FBDRRR的当前版本的新颖之处在于为TCP协议中的很多消息是相对短的确认消息做出的规定的方式。
调度器2601中,每一个输入的连接状态2121和输入状态2103与前面的介绍一样。调度器类型字段2113具有值B111,指出不足的循环调度算法,输入2115的数目具有值4,其中的三个输入2103(0..2)具有与它们相关的调度器队列523,在优选实施例中采用的FBDRR算法的实现中,两个调度器队列即在这种情况中的调度器队列2607和调度器队列2611分别连接到输入2101(0)和2101(2),交替作为当前调度器队列2607和下一个调度器队列2611。当前调度器队列空时,它变成下一个调度器队列,且下一个调度器队列变成当前调度器队列。第三个调度器队列是高优先权队列2609。取决于算法的状态2119包括用于三个调度器队列中的每一个的状态项目;项目2601指出队列2608和2611中的哪一个是当前调度器队列;项目2605指出哪一个是下一个调度器队列;项目2603指出哪一个调度器队列是高优先权队列2609。如在FBDRR算法中的介绍一样,将业务队列放在哪一个调度器队列中由业务队列的最大量和最小量参数以及它的不足计数器2615和BytesServedThisRound(BSTR)计数器2616确定。这些参数值包含在以输入数据3021中(图30),其被业务队列的参数块中的字段831所指向,如2613所示。计数值被存储在字段845中。
与业务队列在哪一个调度队列中相关的最大数量2615、最小数量2613,不足计数器2615和BSTR计数器2616的值由处于每个业务队列的底部表达式示出。如同算法中所阐述的论述,当将描述服从业务队列204移到当前调度器队列2607或最高优先级调度器队列2609的头部时,业务队列的不足计数器2615缩减了描述符分组的长度,而它的BSTR计数器2616则增加这样的一个量。当业务队列从高优先级调度队列2609移动到当前队列2607时,BSTR计数器2616置为0;当业务队列从最高优先级调度器队列2609或当前调度器队列2607移动到下一个调度队列2611时,业务队列的不足计数器2615置为最大数量加上不足计时器,并且它BSTR计时器2616置为0。当处于当前调度器队列2607头部的业务队列或高优先级调度器队列处于或变得不合格时,它就从调度器队列中移走;当业务队列变得合格时,它就被放到下一个调度器队列2611中。
TMC203的物理实现:图15-20
物理实现概述:图15
图15是系统201的物理实现的方框图。如系统201的论述中所显示的,有两个主要部分:DCP 202和TMC 203。如在此更为详尽的所展示的那样,TMC 203包括TMC IC 1503,其中安装了入队处理器301,出队调度器303,和业务队列处理器305,以及TMC存储器307的一部分,包括调度存储器1515,其中配置了调度层次501,以及外部存储器1509,1511和1513,其实现TMC存储器307的其余部分。外部存储器1509是ZBT SRAM存储器,它存储业务队列参数块403和用于业务队列的相关数据结构;外部存储器1513是DDRSDRAM存储器,它存储业务队列的描述符队列419中的描述符;外部存储器1151是ZBT SRAM存储器,它存储用于链接业务队列204中的TMC描述符216和将业务队列链接进调度队列中的数据。如同将在下面更加详细的描述,TMC IC 1503可以配置成用于不同数量的外部存储器。
TMC IC 1503经过TMI总线1507从DCP 202接收入队数据消息601,并向其提供出队数据消息701。DCP 202和TMC 203都可以配置成使用PCI总线向TMC存储器307进行写。内部和外部TMC总线存储器307可以经过PCI总线1505被读入或写出。PCI总线1505采用标准PCI总线协议TMI总线1507所使用的协议将在下面作更为详细的描述。
TMC IC 1503详述:图16
图16示出了TMC IC 1503的内部细节。同样包括但未示出的还有TMC IC 1503内部存储器。有到PCI总线1505处的接口1601,有到TMI总线1507处的接口1603,用于参数存储器1509的控制器1605,用于链接存储器1511的控制器1607,和用于描述符存储器1513的控制器1609。在TMC IC 1503种还能找到出队调度器303,入队处理器301,和业务队列处理器305。连接各部分的箭头指示它们之间的数据流向。因此,当TMI总线接口1603接收入队数据消息601时,它向入队处理器301输出入队数据消息601,该处理器至少向描述符存储器1609提供cp描述符214,用于存储在描述符存储器1513中,TMC描述符216的剩余内容,到所存储的cp描述符214的连接,和业务队列到业务队列处理器305的规范,其使用该信息和链接存储器控制器以及链接存储器1511将描述符连接到规定的业务队列或丢弃业务队列。与此同时,出队调度器303执行包含在TMC IC 1503的存储器中的调度,由此,业务队列的头部描述符将被经过TMI总线接口1603下一个输出。出队调度器303使用业务队列处理器305取回到所选业务队列头部描述符的链接,并将其连同产生出队数据消息701所需的额外信息提供给TMI总线接口1603,该总线提供到处理器1513的链接,接受来自存储器1513的描述符,并经过TMI总线接口1603输出包含描述符的出队数据消息701。
配置TMC IC 1503的存储器:图17和18
如前所提到的,TMC IC 1503可以配置为不同数量的外部存储器。图17示出了最大配置。描述符存储器1513可以包括总计四个128Mb(×16)和一个128Mb(×8)DDRSDRAM存储器的IC 1703;连接存储器1511可以包括总计五个1Mb(×18)ZBT SRAM存储器IC的1705,而描述符参数存储器1511可以包括总计4个512K(×34)ZBTSRAM的存储器IC。这样配置时,TMC IC 1503将支持OC48线速率并能够处理2M32位的描述符,256K业务队列,和8K调度队列。这里,由于线速率较低,或描述符较少或较小,或其中需要较少的业务队列或较少的调度队列,因此外部存储器的数量可以减少。可经过PCI总线1505设置的TMC IC 1503中的配置寄存器定义了外部存储器的最大容量和外部存储器内的划分。图18是表1801,示出了用于OC 48线速率的典型配置的可能和用于这些配置的所需每个种类的外部存储器的数量。
TMI总线1507的详述:图19
图19示出了TMI总线1507的原理图1901;表1925列出了总线信号名称,其中信号是以TMC 1503位观察点的输入或输出,以及信号的描述。
时钟信号
DQCLK/DQCLKX 1905对由TMC IC 1503从TMICLK 1903源产生。DQCLK的频率是TMICLK的一半。DQCLKX是DQCLK的反相形式。DQCLKX相对于DQCLK正好是180度。所有TMCIC1503的输出都与DQCLK和DQCLKX的上升沿同步;这些输出包括DQD[23:0],NQRDY,DQARDY,和DQPAR。NQCLK/NQCLKX对1907由DCP从接收的DQCLK/DQCLKX对产生。NQCLKX的相位相对于NQCLK正好是180度。DCP 202的所有输出与DQCLK和DQCLKX的上升沿同步;这些输出包括NQD[23:0],DQRDY,DQACK[1:0],和NQPAR.TMICLK信号所使用的最大时钟频率是200MHz,这意味着DQCLK/DQCLKX和NQCLK/NQCLKX对中的每个时钟的最大频率是100MHz。TMICLK时钟频率和NQD/DQD总线宽度选择成支持32字节描述符,假设全C-5 DCP端口带宽(大约5Gbps)及40字节的最小平均分组容量。TMICLK的频率被进一步限制为不高于TMC系统时钟SCLK频率的两倍,该系统时钟具有133MHz的最大频率。
奇偶校验信号
NQPAR信号1909是TMC IC 1503接收的覆盖DCP202所有输出的奇校验信号(包括NQD[23:0],DQRDY,和DQACK[1:0])。DQPAR1911信号是DCP202接收的覆盖TMC IC1503的所有输出的奇校验信号(包括DQD[23:0],NQRDY,和DQARDY)。
消息总线
TMI总线1507中有三条消息:NQD[23:0]1913,它携带入队数据消息;DQD[23:0]1917,它携带出队数据消息;和DQACK[1:0]1921,它携带出队数据消息确认。NQD[23:0]1913携带24比特的出队数据消息字。这些消息的格式在图6,31,和13中有详细的描述。当总线空闲时,NQD[23:0]总线管脚为全高。入队消息的开始由消息的类型字段611中的非空闲值(消息字的第一个24比特字的2:0比特)标识。DQD[23:0]携带出队数据消息的24比特字。这些消息的格式在图7,32,和33中有详细的描述,并且如入队数据消息一样,出队消息的开始由消息的类型字段703中的非空闲值(消息字的第一个24比特字的2:0比特)标识。入队或出队数据消息的容量根据描述符容量而不同。在任何入队消息从DCP202发往TMC IC 1503之前,描述符的容量在接口两端是静态配置的。
DQACK[1:0]携带从DCP202到TMC IC 1503的队列确认消息。确认消息在每次描述符从队列247中的队列213出队时被发送。每个消息包含出队数据消息701的字段707中规定的虚拟输出端口标示符,其中,已出队的描述符来自TMC IC1 503。这个消息有5个两位的字构成,其格式如图28中的2801所示。
TMI总线1510上的控制流:图20,38,39
通过消息总线NQD 1913,DQD 1917,和DQACK1:0的消息流分别由信号NQRDY 1915,DQRDY 1919,和DOARDY 1923控制。NQRDY信号1915必须被维护为使能入队数据消息通过入队数据总线NQD[23:0]。一旦入队数据消息在入队数据总线上开始,就必须要完成。这个信号被TMC IC1503用来跟上来自DCP202的入队数据消息。在极端情况下,当TMC IC1503用尽了描述符存储资源时,TMC IC1503用这个信号整个地停止送入的入队数据消息。在NQRDY 1915被TMC IC1503解除维护后,DCP 202必须在NQCLK和NQCLKX的12个上升沿计数内停止产生入队数据消息。这在图20中的时序图中示出。NQRDY 1915在2003处被解除声明,而DCP 202必须在2005所指示的时间内停止产生入队数据消息。
注意NQRDY信号与DQCLK/DQCLKX时钟对同步。NQCLK/NQCLKX对在DQCLK/DQCLKX对的第一个上升沿之后的NQCLK/NQCLKX的第一个上升沿开始计数,在这里,NQRDY被动地被采样。如果NQCLK/NQCLKX对被当作是相对于DQCLK/DQCLKX异步,那么,处于所需的12个之外的一个NQCLK/NQCLKX的上升沿由于时钟的异步特性而丢失
DQRDY信号1919管理出队数据消息的流控制。DQRDY被维护为使能出队消息流通过出队数据总线(DQD[23:0])传递。一旦出队数据消息在出队数据总线上开始,它就必须完成。这个信号由被DCP202用来跟上来自TMC IC1503的出队数据消息。TMC IC 1503必须在被DCP解除DQRDY维护之后的6个DQCLK和DQCLKX的上升沿计数内停止产生出队数据消息,如图20中的时序图2007所示。这里DQRDY 1919的解除维护发生在2009和2011处,标志开始不再产生新的出队数据消息。
注意DQRDY信号1919与NQCLK/NQCLKX时钟对同步。DQCLK/DQCLKX对在NQCLK/NQCLKX对的第一个上升沿之后的第一个DQCLK/DQCLKX的上升沿开始计数,在这里,DQRDY被动地被采样。如果DQCLK/DQCLKX对被当作是相对于NQCLK/NQCLKX异步,那么由于时钟的异步特性,处于所需的6个之外的一个DQCLK/DQCLKX的上升沿被丢失。
DQARDY 1923被维护为使能出队确认消息流通过出队确认总线DQACK 1921传递。一旦出队确认消息在出队确认数据总线上开始,它就必须完成。DQARDY 1923由TMC IC1503用来跟上来自DCP 202的出队确认消息。DCP必须在被TMC IC 1503解除DQARDY维护之后的12个NQCLK和NQCLKX的上升沿计数内停止产生出队数据消息,如图20中的时序图2013所示。这里DQRDY 1919的解除维护发生在2015和2017处,标志开始不再产生新的出队确认数据消息。
注意DQARDY信号1023与DQCLK/DQCLKX时钟对同步。NQCLK/NQCLKX对在DQCLK/DQCLKX对的第一个上升沿之后的第一个NQCLK/NQCLKX的上升沿开始计数,在这里,DQARDY被动地被采样。如果NQCLK/NQCLKX对被当作是相对于DQCLK/DQCLKX异步,那么由于时钟的异步特性,处于所需的12个之外的一个NQCLK/NQCLKX的上升沿被丢失。
结论
前文中的详细描述为相关技术领域的技术人员描述了如何产生和使用流数据处理环境,在此实现了本发明并已经进一步公开了发明者目前已知的最佳的发明实现模式。从而,对相关领域的技术人员来说,本发明可以在许多流数据处理环境而不只是在此公开的一个环境中是实用的,并且即便在此公开的环境中,本发明也存在许多可选实施例的可能,这一点是显而易见的。
给出一些例子:在此描述的发明技术对于已在一个集成电路中实现分组处理而在另一个电路中实现业务管理的环境中尤其有用,但它们并不限于在这样的环境中应用,而是可以用于想要分开业务管理和分组处理的任何环境中,因此可以同执行业务管理和/或分组处理功能但又不是作为集成电路实现的器件一同使用。进一步,描述符的形式和内容会随各种实现而又不同,业务管理功能和分组处理功能也是如此。此外,在优选实施例中描述符上所执行的用于分组的丢弃和调度操作也可以用分组本身实现。实施例与实施例之间的环境业务管理部分和分组处理部分之间的接口细节会有所不同。
因所有前述原因,详细描述应在各方面被看作是示例而非限制,并且根据专利法所许可的全部范围的解释,在此公开的发明范围应由权利要求书而非详细描述所确定。

Claims (49)

1.一种在第一业务流处理设备和第二业务管理设备之间传输信息的接口,第一业务流处理设备对由分组组成的业务流执行第一多个流处理功能,所述分组由在设备中被描述符表示,第二业务管理设备使用所述描述符来执行用于所述业务流处理设备的第二多个业务管理功能,所述接口包括:
第一和第二设备之间的第一数据路径将所述描述符和至少第一选择器从第一设备传输到第二设备,第一选择器选择所述多个业务管理功能的第一子集;和
在执行第一子集中的功能之后,第一和第二设备之间的第二数据路径将所述描述符和至少第二选择器从第二设备传输到第一设备,第二选择器选择所述流处理功能的第二子集。
2.根据权利要求1的所述接口,进一步包括:
当第一设备能够在所述描述符表示的分组上执行第二子集中的功能时,第一和第二设备之间的第三数据路径将第二选择器从第一设备传输到第二设备,第二设备使用第二选择器来控制从第二设备到第一设备的、代表在其上执行所述功能的分组的描述符流。
3.根据权利要求2的所述接口,其中:
第一设备采用第一队列来将所述描述符与所述流处理功能的第二子集相关联;
第二设备采用第二队列来将所述描述符与所述业务管理功能的第一子集相关联;
第一选择器规定第二队列,且第二选择规定第一队列;和
当描述符被从第一队列的头部中去除时,将第二选择器传送到第二设备。
4.根据权利要求1的所述接口,进一步包括:
第一设备和第二设备之间的第四数据路径将经第一数据路径指出第二设备是否可以接受一传输的指示从第一设备传输到第二设备;
第一和第二设备之间的第五数据路径将经第二数据路径指出第一设备是否可以接受一传输的指示从第二设备传输到第一设备;和
第一和第二设备之间的第六数据路径将经第三数据路径指出第二设备是否可以接受一传输的指示从第二设备传输到第一设备。
5.一种对由分组组成并且被业务流处理器处理的业务流执行业务管理操作的装置,该装置包括:
多个业务管理功能;
输入设备,其从所述业务流处理器接收与业务管理功能说明符相关的描述符,所述描述符代表由所述业务流处理器处理的分组,且与所述描述符相关的业务管理功能说明符规定所述业务管理功能的子集;
处理部分,其在所述描述符上执行在由相关的业务管理功能规定的子集中的至少一业务管理功能,并且将所述描述符与规定所述业务流处理器中的功能的业务流处理功能说明符相关;和
输出设备,其将所述描述符和所述业务流处理器功能说明符提供给所述业务流处理器。
6.一种为由分组组成的业务流执行业务管理操作的装置,该装置包括:
多组描述符,一个描述符代表业务流中的一个分组;
多项业务管理功能,一给定的描述符组与多项业务管理功能的一子集相关;和
处理部分,其在属于所述给定组的描述符上执行与一组描述符相关的子集中的至少一项业务管理功能。
7.根据权利要求6的所述装置,其中:
从处理所述业务流的流处理器接收描述符,并且在已经对所述描述符执行了与所述描述组相关的业务管理功能之后将所述描述符提供给所述流处理器。
8.根据权利要求7的所述装置,其中:
从所述流处理器中接收到的描述符包括规定所述描述符组中的一个描述符的一组说明符。
9.根据权利要求8的所述装置,其中:
所述业务管理功能包括多播功能;和
所述描述符组包括用于描述符的描述符的多播组,所述多播功能复制到所述描述符组的多个其它描述符。
10.根据权利要求8的所述装置,其中:
所述业务管理功能包括一组丢弃功能,其选择将代表被丢弃而不是被放在所述描述符组说明符规定的组中的分组的接收的描述符,所述选择的描述符和指出所述描述符代表的分组将被丢弃的指示一起被提供给所述流处理器。
11.根据权利要求10的所述装置,其中:
所述装置进一步包括所述组中的描述符所代表的分组属于的业务流的状态的模型;和
在所述组中的丢弃功能采用所述模型来确定是否丢弃来自所述组的分组。
12.根据权利要求11的所述装置,其中:
所述模型对所述流处理器中的缓冲器的状态模型化,所述缓冲器被用来存储来自属于所述流的有效载荷。
13.根据权利要求11的所述装置,其中:
所述模型使所述流的带宽使用模型化。
14.根据权利要求7的所述装置,其中:
所述业务管理功能包括一组调度功能,其确定何时将接收到的描述符提供给所述流处理器。
15.根据权利要求14的所述装置,其中:
所述调度功能进一步确定用于所述流处理器中的描述符组的说明符,当所述描述符被提供给所述流处理器时,所述流处理器包括有所述描述符。
16.根据权利要求7的所述装置,其中:
所述业务管理功能包括一组丢弃功能和一组调度功能,所述一组丢弃功能选择代表将被丢弃的而不是被放在所述描述符组说明符规定的组中的分组的接收到的描述符,所述一组调度功能确定何时将描述符提供给所述流处理器,并且将用于所述流处理器中的描述符组的说明符加到被提供的所述描述符;
所述描述符组包括含有代表将被丢弃的分组的描述符的丢弃描述符组;和
被增加到来自所述丢弃描述符组的提供的描述符的增加的说明符规定了所述流处理器中的描述符组,其代表将被丢弃的分组。
17.根据权利要求7的所述装置,其中:
在所述流处理器中完整地接收至少部分包含在由所述描述符代表的分组中的消息之前,所述装置从所述流处理器接收所述描述符。
18.根据权利要求17的所述装置,其中:
所述业务管理功能包括一组调度功能,其确定何时将描述符提供给所述流处理器;
当已经完整地在所述流处理器中接收所述消息时,所述流处理器提供通知给所述装置;和
当在已经完整地在所述流处理器中接收所述消息之前从所述流处理器接收到所述描述符时,所述处理部分不对所述描述符执行调度功能,直到接收到所述通知。
19.根据权利要求7的所述装置,其中:
所述业务管理功能包括分段功能,其从所述分组的描述符中产生代表分组的部分的描述符序列。
20.根据权利要求7的所述装置,其中:
所述业务流管理功能包括重组功能,其将代表将被重组成更大的分组的分组的不中断的描述符序列提供给所述流处理器。
21.根据权利要求6的所述装置,其中:
在给定的描述符组和多项业务管理功能的子集之间的关系是可重配置的。
22.根据权利要求21的所述装置,其中:
在所述多个的业务流管理功能是可重配置的。
23.根据权利要求6的所述装置,其中:
以单个集成电路来实现所述多项业务管理功能和所述处理部分。
24.根据权利要求7的所述装置,其中:
所述描述符组被组织成队列,所述接收到的描述符被放在所述队列的尾部,提供的描述符被从所述队列头部提供。
25.一种对由分组组成并且被业务流处理器处理的业务流执行业务管理操作的装置,该装置包括:
业务管理功能,包括多波功能、丢弃功能和调度功能,所述业务管理功能是可重配置的;
代表所述分组的描述符的多个业务管理队列,每一业务管理队列具有与一项或多项业务管理功能相关的可用户配置的关系;
处理部分,其通过采用与所述相关队列说明符规定的业务管理队列相关的业务管理功能来将所述描述符放在业务管理队列中、并且调度所述描述符以与所述业务流处理器中的队列的说明符一起输出到所述业务流处理器,响应描述符以及与之相关的队列说明符。
26.在由描述符表示的分组的系统中,一种丢弃其中属于一序列的分组的方法,所述序列携带消息,当所述系统将携带消息的分组组装成组装的分组时使用所述方法,所述方法包括步骤:
根据丢弃所述序列的分组的第一决定,将代表所述分组的描述符标记为结束消息分组的描述符和作为由缺陷的分组的描述符,并且将所述描述符提供给组装器,其通过将所述描述符代表的分组组装成组装的分组来响应所述描述符;
提供跟在所述标记的描述符之后的、所述消息的分组的描述符给所述系统中的分组丢弃器,所述分组丢弃器丢弃所述分组,以响应所述描述符;和
在所述组装器中,通过丢弃所述组装的分组来响应所述标记的描述符。
27.在分组由描述符代表的系统中,一种用于在该系统中接收整个消息之前开始处理代表消息的分组的描述符的方法,所述方法包括步骤:
对所述描述符进行处理而不是调度所述描述符;和
当接收到在所述系统中已经接收到所述整个消息的通知时,调度所述描述符。
28.根据权利要求27的所述方法,进一步包括步骤:
确定所述通知可能不会到达;和
促使所述系统丢弃所述描述符代表的分组。
29.根据权利要求27的所述方法,其中
所述描述符代表包含所述整个消息的分组。
30.根据权利要求28的所述方法,其中
所述描述符代表包含所述消息的分组的多个分组序列中的分组。
31.一种调度分组用于在对流进行处理的设备中进一步处理的装置,所述装置包括:
多个调度器,多个调度器形成具有至少一个内部节点和叶节点的层次的多个节点;
与所述叶节点调度器相关的一组分组;和
处理器,其执行所述叶节点调度器和内部节点调度器,以选择与所述叶节点调度器相关的组的分组以进行调度,
所述调度器被根据从多个算法中选出的调度算法来单独进行配置以进行调度。
32.根据权利要求31的所述装置,其中:
在所述一组分组和所述叶节点调度器之间的关系是可以配置的。
33.根据权利要求31的所述装置,其中:
所述层次的形式是可以配置的。
34.根据权利要求31的所述装置,其中:
所述层次具有单个内部节点调度器,其为所述层次的根节点;
从每一个叶节点调度器到所述根节点有唯一通过所述层次的路径;和
所述唯一路径与进一步处理所述分组的模式相关。
35.根据权利要求34的所述装置,其中:
所述模式由与所述路径相关的虚拟输出端口号规定。
36.根据权利要求31的所述装置,其中:
用代表所述组中的分组的描述符组来将一组分组与所述叶节点调度器相关。
37.根据权利要求36的所述装置,其中:
所述描述符组被组织到描述符的至少一个业务队列以及所述业务队列的至少一个调度器中,每一个调度器队列与所述叶节点调度器的输入相关,所述叶节点调度器与所述描述符组相关。
38.根据权利要求31的所述装置,其中:
所述多个调度算法包括严格优先算法、循环算法、和加权公平队列算法。
39.根据权利要求38的所述装置,其中:
从包括保证的调度器、过渡调度器和将第一优先权赋给保证的调度器的调度器资源配置所述层系次的节点中的调度器。
40.根据权利要求38的所述装置,其中:
存在多种加权的公平队列算法,所述多种算法包括非连续工作加权公平队列算法。
41.一种调度可变长分组的方法,所述方法采用多组的分组中的两组,所述方法包括步骤:
选择属于所述多组分组中的两组的给定组分组来用于调度,属于所述多组分组的当前组的每一组分组与最大量和最小量相关,保留被选择用于调度的所述分组的给定组由所述最小量确定,在再次选择属于所述组的当前组的一组分组之前,所述最小量确定可以从所选择的分组组中调度的分组的总的大小;
将所述给定的分组组放在由所述最大量确定的多组分组的两组中的另一组中,在将所选择的组放在所述多组分组的所述两组的另一组之前,所述最大量确定可从所述选择的组中调度的分组的总的大小;和
当多组分组的当前组变成空时,交换所述多组的当前组和多组分组的另一组。
42.根据权利要求41的所述方法,进一步包括步骤:
当所述分组组被从所述当前组移到所述下一个组时,在所述分组组被放在所述两组分组的另一组中时,使用实际被调度的分组的总大小和所述最大量之间的差异来计算新的最大量。
43.根据权利要求41的所述方法,进一步包括步骤:
当属于当前组的一组分组对于调度而言变成不合格时,从所述当前组中去除所述不合格的分组组;和
当不合格的分组组变成合格可用于调度时,将所述合格组加到下一个组中。
44.根据权利要求41的所述方法,其中:
多组分组的所述当前组是有序组,以循环方式选择所述多组分组用于调度。
45.根据权利要求41的所述方法,其中:
在所述当前状态中的多组分组是有序组,当已经选择一组分组用于调度时,以循环方式从该一组分组中选择出一分组。
46.根据权利要求41的所述方法,其中:
所述方法采用多组分组中的第三组,第三组具有用于在多组分组的当前组上进行调度的优先权;和
所述分组的给定组属于多组分组的第三组,同时保留被选择用于调度的所述给定分组组由所述最小量确定,且被移到多组分组中的所述当前组,并且被如所述最大量确定一样进行调度。
47.根据权利要求46的所述方法,其中:
多组分组的当前组和多组分组的第三组是有序组,选择所述多组分组来在分组的当前组和分组的第三组中以循环方式进行调度。
48.根据权利要求47的所述方法,其中:
当前组中的多组分组以及多组分组中的第三组是有序组,当已经选择一组分组用于调度时,一循环方式从该一组分组中选择一分组。
49.根据权利要求41的所述方法,其中:
每一个分组由一描述符表示;且在所述分组组中,所述分组由它们的描述符表示。
CNA028082087A 2001-04-13 2002-04-11 数据流处理器中的数据流管理 Pending CN1611035A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US28374601P 2001-04-13 2001-04-13
US60/283,746 2001-04-13

Publications (1)

Publication Number Publication Date
CN1611035A true CN1611035A (zh) 2005-04-27

Family

ID=23087372

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA028082087A Pending CN1611035A (zh) 2001-04-13 2002-04-11 数据流处理器中的数据流管理

Country Status (7)

Country Link
US (2) US20040260829A1 (zh)
EP (1) EP1382165A2 (zh)
JP (1) JP4070610B2 (zh)
KR (1) KR100902513B1 (zh)
CN (1) CN1611035A (zh)
TW (1) TW558887B (zh)
WO (1) WO2002084957A2 (zh)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008000127A1 (fr) * 2006-06-19 2008-01-03 Huawei Technologies Co., Ltd. Appareil et procédé pour l'envoi de message
CN101371468A (zh) * 2006-01-13 2009-02-18 Lg电子株式会社 处理基于sip的会话服务的媒体数据
CN100466603C (zh) * 2005-05-17 2009-03-04 华为技术有限公司 对网络中传输的业务流进行整形的方法及装置
CN101494594B (zh) * 2008-01-22 2011-05-04 杭州华三通信技术有限公司 传输控制方法、同轴线路终端及光网络单元
CN101488909B (zh) * 2008-01-17 2011-05-04 杭州华三通信技术有限公司 传输控制方法及同轴线路终端、光网络单元
CN102200906A (zh) * 2011-05-25 2011-09-28 上海理工大学 大规模并发数据流处理系统及其处理方法
CN102201992A (zh) * 2011-05-25 2011-09-28 上海理工大学 面向流处理器并行环境的数据流通信系统及其通信方法
CN101232450B (zh) * 2007-01-26 2012-09-05 英飞凌科技股份公司 数据分组处理设备
CN101938404B (zh) * 2009-07-01 2012-11-28 中兴通讯股份有限公司 用于数据流量管理的随机早期丢弃方法和装置
CN101741729B (zh) * 2008-11-18 2012-12-19 阿尔卡特朗讯公司 用于调度多个流的分组的方法和用于执行该方法的系统
CN103546392A (zh) * 2012-07-12 2014-01-29 中兴通讯股份有限公司 队列单周期调度方法和装置
CN103620584A (zh) * 2011-06-17 2014-03-05 微软公司 对物理上分支的流的高效逻辑合并
JP2015076889A (ja) * 2013-10-11 2015-04-20 ジーイー・アビエイション・システムズ・エルエルシー 航空機用データ通信ネットワーク
CN104539440A (zh) * 2013-07-09 2015-04-22 英特尔公司 具有入口控制的业务量管理
CN105308920A (zh) * 2013-06-12 2016-02-03 思科技术公司 多播流重排序方案
CN107181698A (zh) * 2016-03-10 2017-09-19 谷歌公司 单队列多流业务整形的系统和方法
CN112311696A (zh) * 2019-07-26 2021-02-02 瑞昱半导体股份有限公司 网络封包接收装置及方法

Families Citing this family (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6957281B2 (en) * 2002-01-15 2005-10-18 Intel Corporation Ingress processing optimization via traffic classification and grouping
US20040019704A1 (en) * 2002-05-15 2004-01-29 Barton Sano Multiple processor integrated circuit having configurable packet-based interfaces
US8176298B2 (en) 2002-10-08 2012-05-08 Netlogic Microsystems, Inc. Multi-core multi-threaded processing systems with instruction reordering in an in-order pipeline
US9088474B2 (en) 2002-10-08 2015-07-21 Broadcom Corporation Advanced processor with interfacing messaging network to a CPU
US7627721B2 (en) 2002-10-08 2009-12-01 Rmi Corporation Advanced processor with cache coherency
US7346757B2 (en) 2002-10-08 2008-03-18 Rmi Corporation Advanced processor translation lookaside buffer management in a multithreaded system
US7961723B2 (en) 2002-10-08 2011-06-14 Netlogic Microsystems, Inc. Advanced processor with mechanism for enforcing ordering between information sent on two independent networks
US8478811B2 (en) * 2002-10-08 2013-07-02 Netlogic Microsystems, Inc. Advanced processor with credit based scheme for optimal packet flow in a multi-processor system on a chip
US8015567B2 (en) 2002-10-08 2011-09-06 Netlogic Microsystems, Inc. Advanced processor with mechanism for packet distribution at high line rate
US7334086B2 (en) * 2002-10-08 2008-02-19 Rmi Corporation Advanced processor with system on a chip interconnect technology
US7984268B2 (en) 2002-10-08 2011-07-19 Netlogic Microsystems, Inc. Advanced processor scheduling in a multithreaded system
US8037224B2 (en) 2002-10-08 2011-10-11 Netlogic Microsystems, Inc. Delegating network processor operations to star topology serial bus interfaces
WO2004040854A1 (ja) * 2002-10-30 2004-05-13 Fujitsu Limited L2スイッチ
KR100518813B1 (ko) * 2003-02-15 2005-10-05 삼성전자주식회사 패킷 메모리 관리 장치를 가지는 패킷 포워딩 시스템 및 그의 동작방법
US20040213264A1 (en) * 2003-04-25 2004-10-28 Nortel Networks Limited Service class and destination dominance traffic management
US6981074B2 (en) * 2003-10-14 2005-12-27 Broadcom Corporation Descriptor-based load balancing
US7370125B2 (en) * 2003-11-25 2008-05-06 Intel Corporation Stream under-run/over-run recovery
CN100359888C (zh) * 2003-11-27 2008-01-02 华为技术有限公司 一种数据轮询调度方法
GB0420548D0 (en) * 2004-09-15 2004-10-20 Streamshield Networks Ltd Network-based security platform
US7451309B2 (en) 2004-09-17 2008-11-11 At&T Intellectual Property L.P. Signature specification for encrypted packet streams
US8332938B2 (en) * 2004-09-17 2012-12-11 At&T Intellectual Property I, L.P. Detection of encrypted packet streams using a timer
US7730519B2 (en) * 2004-09-17 2010-06-01 At&T Intellectual Property I, L.P. Detection of encrypted packet streams using feedback probing
US7761705B2 (en) * 2004-09-17 2010-07-20 At&T Intellectual Property I, L.P. Detection of encrypted packet streams
US20060098673A1 (en) * 2004-11-09 2006-05-11 Alcatel Input queue packet switch architecture and queue service discipline
FR2878106A1 (fr) * 2004-11-15 2006-05-19 France Telecom Procede et dispositif d'ordonnancement de paquets pour leur routage dans un reseau avec determination implicite des paquets a traiter en priorite
US7620071B2 (en) * 2004-11-16 2009-11-17 Intel Corporation Packet coalescing
US7831747B2 (en) * 2004-12-08 2010-11-09 Intel Corporation Method and apparatus to generate a data descriptor
JP4557748B2 (ja) 2005-02-28 2010-10-06 株式会社東芝 演算処理装置
KR100798920B1 (ko) * 2005-11-18 2008-01-29 한국전자통신연구원 RED방식을 확장한 VoIP 네트워크의 폭주 제어 방법및 이를 위한 장치
US20070150585A1 (en) * 2005-12-28 2007-06-28 Microsoft Corporation Multi-dimensional aggregation on event streams
US8275132B2 (en) * 2006-05-15 2012-09-25 Buchen Neil B System and method for dynamically allocating stream identifiers in a multi-encryption transport system
GB0619519D0 (en) * 2006-10-04 2006-11-15 Siemens Ag Packet scheduling
US8451807B2 (en) * 2006-12-20 2013-05-28 Honeywell International Inc. Configuration aware packet routing in an ad-hoc network
US8254348B2 (en) * 2006-12-20 2012-08-28 Honeywell International Inc. Voice-over-internet protocol intra-vehicle communications
US8059544B2 (en) * 2006-12-20 2011-11-15 Honeywell International Inc. Distance adaptive routing protocol
GB2447683B (en) * 2007-03-21 2011-05-04 Advanced Risc Mach Ltd Techniques for generating a trace stream for a data processing apparatus
US8891372B2 (en) * 2007-07-02 2014-11-18 Telecom Italia S.P.A. Application data flow management in an IP network
US7676461B2 (en) 2007-07-18 2010-03-09 Microsoft Corporation Implementation of stream algebra over class instances
US7864775B2 (en) * 2007-12-20 2011-01-04 Honeywell International Inc. Automatic sequencing based on wireless connectivity
US8233502B2 (en) * 2008-01-18 2012-07-31 Juniper Networks, Inc. System and method for heuristically dropping packets in a multilink PPP bundle
US8064377B2 (en) * 2008-01-24 2011-11-22 Honeywell International Inc. Method for enhancement of multicasting forwarding protocol in a wireless network
US9596324B2 (en) 2008-02-08 2017-03-14 Broadcom Corporation System and method for parsing and allocating a plurality of packets to processor core threads
GB2458952B (en) * 2008-04-04 2012-06-13 Micron Technology Inc Queue processing method
US8031606B2 (en) * 2008-06-24 2011-10-04 Intel Corporation Packet switching
US20100088325A1 (en) 2008-10-07 2010-04-08 Microsoft Corporation Streaming Queries
US20100097932A1 (en) * 2008-10-15 2010-04-22 Viasat, Inc. Satellite traffic and congestion-based upstream scheduler
US8108546B2 (en) * 2008-12-12 2012-01-31 Comtech Ef Data Corporation Data packet encapsulation methods
EP2207312B1 (en) * 2009-01-07 2012-04-18 ABB Research Ltd. IED for, and method of engineering, an SA system
US9152483B2 (en) 2009-01-16 2015-10-06 F5 Networks, Inc. Network devices with multiple fully isolated and independently resettable direct memory access channels and methods thereof
US8112491B1 (en) 2009-01-16 2012-02-07 F5 Networks, Inc. Methods and systems for providing direct DMA
US8880696B1 (en) 2009-01-16 2014-11-04 F5 Networks, Inc. Methods for sharing bandwidth across a packetized bus and systems thereof
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
US8848723B2 (en) * 2010-05-18 2014-09-30 Lsi Corporation Scheduling hierarchy 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
US8230350B2 (en) 2009-07-03 2012-07-24 Tweetdeck, Inc. System and method for managing and displaying data messages
CN101958824B (zh) * 2009-07-14 2012-06-27 华为技术有限公司 一种数据交换方法及数据交换结构
US9158816B2 (en) 2009-10-21 2015-10-13 Microsoft Technology Licensing, Llc Event processing with XML query based on reusable XML query template
US9313047B2 (en) 2009-11-06 2016-04-12 F5 Networks, Inc. Handling high throughput and low latency network data packets in a traffic management device
KR101040260B1 (ko) * 2010-05-28 2011-06-09 엘아이지넥스원 주식회사 중복 메시지 필터링에 기초한 제어 메시지 처리 방법 및 장치
TWI400912B (zh) * 2010-07-19 2013-07-01 Chunghwa Telecom Co Ltd 封包導向方法
WO2012068171A1 (en) * 2010-11-15 2012-05-24 Reed Coke S Parallel information system utilizing flow control and virtual channels
WO2012083188A1 (en) * 2010-12-16 2012-06-21 Et International, Inc. Distributed computing architecture
US8984526B2 (en) * 2012-03-09 2015-03-17 Microsoft Technology Licensing, Llc Dynamic processor mapping for virtual machine network traffic queues
CN103546393B (zh) * 2012-07-12 2018-01-19 中兴通讯股份有限公司 一种基于加权公平队列的调度实现方法及装置
US8879578B2 (en) * 2012-07-19 2014-11-04 Broadcom Corporation Reducing store and forward delay in distributed systems
US9047417B2 (en) 2012-10-29 2015-06-02 Intel Corporation NUMA aware network interface
US9270602B1 (en) * 2012-12-31 2016-02-23 F5 Networks, Inc. Transmit rate pacing of large network traffic bursts to reduce jitter, buffer overrun, wasted bandwidth, and retransmissions
US10375155B1 (en) 2013-02-19 2019-08-06 F5 Networks, Inc. System and method for achieving hardware acceleration for asymmetric flow connections
CN104348751B (zh) 2013-07-31 2019-03-12 中兴通讯股份有限公司 虚拟输出队列授权管理方法及装置
US10684973B2 (en) 2013-08-30 2020-06-16 Intel Corporation NUMA node peripheral switch
US9864606B2 (en) 2013-09-05 2018-01-09 F5 Networks, Inc. Methods for configurable hardware logic device reloading and devices thereof
US9853714B2 (en) 2013-10-11 2017-12-26 Ge Aviation Systems Llc Data communications network for an aircraft
US9825857B2 (en) 2013-11-05 2017-11-21 Cisco Technology, Inc. Method for increasing Layer-3 longest prefix match scale
US9876711B2 (en) 2013-11-05 2018-01-23 Cisco Technology, Inc. Source address translation in overlay networks
US9898482B1 (en) * 2013-12-27 2018-02-20 EMC IP Holding Company LLC Managing stream connections in storage systems
US20150281109A1 (en) * 2014-03-30 2015-10-01 Sachin Saxena System for en-queuing and de-queuing data packets in communication network
US10305819B2 (en) * 2015-05-13 2019-05-28 Cisco Technology, Inc. Dynamic protection of shared memory used by output queues in a network device
WO2016183155A1 (en) * 2015-05-13 2016-11-17 Cisco Technology, Inc. Dynamic protection of shared memory used by output queues in a network device
US9866401B2 (en) * 2015-05-13 2018-01-09 Cisco Technology, Inc. Dynamic protection of shared memory and packet descriptors used by output queues in a network device
JP6786996B2 (ja) 2016-09-23 2020-11-18 富士通株式会社 伝送装置及び伝送処理方法
CN109391559B (zh) * 2017-08-10 2022-10-18 华为技术有限公司 网络设备
US11855898B1 (en) 2018-03-14 2023-12-26 F5, Inc. Methods for traffic dependent direct memory access optimization and devices thereof
CN113114564A (zh) 2018-10-31 2021-07-13 华为技术有限公司 一种业务流处理方法及装置
US11537716B1 (en) 2018-11-13 2022-12-27 F5, Inc. Methods for detecting changes to a firmware and devices thereof

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0680173B1 (en) * 1994-04-28 2003-09-03 Hewlett-Packard Company, A Delaware Corporation Multicasting apparatus
US5956342A (en) * 1995-07-19 1999-09-21 Fujitsu Network Communications, Inc. Priority arbitration for point-to-point and multipoint transmission
US5859835A (en) * 1996-04-15 1999-01-12 The Regents Of The University Of California Traffic scheduling system and method for packet-switched networks
US5898687A (en) * 1996-07-24 1999-04-27 Cisco Systems, Inc. Arbitration mechanism for a multicast logic engine of a switching fabric circuit
US6128278A (en) * 1996-08-30 2000-10-03 Mmc Networks, Inc. Cell queuing in ATM switches
US6452933B1 (en) * 1997-02-07 2002-09-17 Lucent Technologies Inc. Fair queuing system with adaptive bandwidth redistribution
AU6788598A (en) 1997-04-04 1998-10-30 Ascend Communications, Inc. Hierarchical packet scheduling method and apparatus
US6014367A (en) * 1997-04-25 2000-01-11 Mmc Networks, Inc Method for weighted fair queuing for ATM cell scheduling
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
US6026093A (en) * 1997-10-02 2000-02-15 Sun Microsystems, Inc. Mechanism for dispatching data units via a telecommunications network
US6434620B1 (en) * 1998-08-27 2002-08-13 Alacritech, Inc. TCP/IP offload network interface device
US6233243B1 (en) * 1997-11-24 2001-05-15 Ascend Communications, Inc. Method and apparatus for performing cut-through virtual circuit merging
US6144668A (en) * 1997-11-26 2000-11-07 International Business Machines Corporation Simultaneous cut through and store-and-forward frame support in a network device
US6859438B2 (en) * 1998-02-03 2005-02-22 Extreme Networks, Inc. Policy based quality of service
US6160812A (en) * 1998-05-04 2000-12-12 Cabletron Systems, Inc. Method and apparatus for supplying requests to a scheduler in an input buffered multiport switch
US6606301B1 (en) * 1999-03-01 2003-08-12 Sun Microsystems, Inc. Method and apparatus for early random discard of packets
EP1172017A1 (en) * 1999-04-03 2002-01-16 Top Layer Networks, Inc. Switching system and process for automatic detection of and quality of service for multimedia applications
JP3683133B2 (ja) * 1999-08-17 2005-08-17 日本電気株式会社 パケットスケジューリング装置
US7046686B1 (en) * 1999-08-17 2006-05-16 Mindspeed Technologies, Inc. Integrated circuit that processes communication packets with a buffer management engine having a pointer cache
US6985431B1 (en) * 1999-08-27 2006-01-10 International Business Machines Corporation Network switch and components and method of operation
US6680933B1 (en) 1999-09-23 2004-01-20 Nortel Networks Limited Telecommunications switches and methods for their operation
US6430152B1 (en) * 1999-12-22 2002-08-06 Alcatel Usa Sourcing, L.P. Scheduler system for scheduling the distribution of ATM cells
US6629147B1 (en) * 2000-03-31 2003-09-30 Intel Corporation Segmentation and reassembly of data frames
US7123622B2 (en) * 2000-04-13 2006-10-17 International Business Machines Corporation Method and system for network processor scheduling based on service levels
US7315901B1 (en) * 2000-04-13 2008-01-01 International Business Machines Corporation Method and system for network processor scheduling outputs using disconnect/reconnect flow queues
US7027394B2 (en) * 2000-09-22 2006-04-11 Narad Networks, Inc. Broadband system with traffic policing and transmission scheduling
US7457313B2 (en) * 2000-09-25 2008-11-25 General Instrument Corporation Hierarchical prioritized round robin (HPRR) scheduling
US20020107974A1 (en) * 2000-10-06 2002-08-08 Janoska Mark William Data traffic manager
US7760737B2 (en) * 2000-11-30 2010-07-20 Audiocodes, Inc. Method for reordering and reassembling data packets in a network
US7236491B2 (en) * 2000-11-30 2007-06-26 Industrial Technology Research Institute Method and apparatus for scheduling for packet-switched networks
US6882625B2 (en) * 2000-12-14 2005-04-19 Nokia Networks Oy Method for scheduling packetized data traffic
US7075934B2 (en) * 2001-01-10 2006-07-11 Lucent Technologies Inc. Method and apparatus for hierarchical bandwidth distribution in a packet network
US6917591B2 (en) * 2001-01-12 2005-07-12 Telefonaktiebolaget Lm Ericsson (Publ) Methods, systems and computer program products for bandwidth allocation in a multiple access system
US7035212B1 (en) * 2001-01-25 2006-04-25 Optim Networks Method and apparatus for end to end forwarding architecture
US6934760B1 (en) * 2001-02-04 2005-08-23 Cisco Technology, Inc. Method and apparatus for resequencing of packets into an original ordering using multiple resequencing components
US6987760B2 (en) * 2001-03-05 2006-01-17 International Business Machines Corporation High speed network processor

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100466603C (zh) * 2005-05-17 2009-03-04 华为技术有限公司 对网络中传输的业务流进行整形的方法及装置
CN101371468A (zh) * 2006-01-13 2009-02-18 Lg电子株式会社 处理基于sip的会话服务的媒体数据
CN105491022A (zh) * 2006-01-13 2016-04-13 Lg电子株式会社 处理基于sip的会话服务的媒体数据
WO2008000127A1 (fr) * 2006-06-19 2008-01-03 Huawei Technologies Co., Ltd. Appareil et procédé pour l'envoi de message
CN101232450B (zh) * 2007-01-26 2012-09-05 英飞凌科技股份公司 数据分组处理设备
CN101488909B (zh) * 2008-01-17 2011-05-04 杭州华三通信技术有限公司 传输控制方法及同轴线路终端、光网络单元
CN101494594B (zh) * 2008-01-22 2011-05-04 杭州华三通信技术有限公司 传输控制方法、同轴线路终端及光网络单元
CN101741729B (zh) * 2008-11-18 2012-12-19 阿尔卡特朗讯公司 用于调度多个流的分组的方法和用于执行该方法的系统
CN101938404B (zh) * 2009-07-01 2012-11-28 中兴通讯股份有限公司 用于数据流量管理的随机早期丢弃方法和装置
CN102200906A (zh) * 2011-05-25 2011-09-28 上海理工大学 大规模并发数据流处理系统及其处理方法
CN102201992A (zh) * 2011-05-25 2011-09-28 上海理工大学 面向流处理器并行环境的数据流通信系统及其通信方法
CN102201992B (zh) * 2011-05-25 2013-09-25 上海理工大学 面向流处理器并行环境的数据流通信系统及其通信方法
CN103620584A (zh) * 2011-06-17 2014-03-05 微软公司 对物理上分支的流的高效逻辑合并
US9965520B2 (en) 2011-06-17 2018-05-08 Microsoft Corporation Efficient logical merging over physically divergent streams
CN103546392A (zh) * 2012-07-12 2014-01-29 中兴通讯股份有限公司 队列单周期调度方法和装置
CN105308920A (zh) * 2013-06-12 2016-02-03 思科技术公司 多播流重排序方案
CN105308920B (zh) * 2013-06-12 2019-04-05 思科技术公司 多播流重排序方案
CN104539440A (zh) * 2013-07-09 2015-04-22 英特尔公司 具有入口控制的业务量管理
CN104539440B (zh) * 2013-07-09 2018-12-07 英特尔公司 具有入口控制的业务量管理
JP2015076889A (ja) * 2013-10-11 2015-04-20 ジーイー・アビエイション・システムズ・エルエルシー 航空機用データ通信ネットワーク
CN104579865A (zh) * 2013-10-11 2015-04-29 通用电气航空系统有限责任公司 对于飞行器的数据通信网络
CN107181698A (zh) * 2016-03-10 2017-09-19 谷歌公司 单队列多流业务整形的系统和方法
CN107181698B (zh) * 2016-03-10 2021-09-03 谷歌有限责任公司 单队列多流业务整形的系统和方法
CN112311696A (zh) * 2019-07-26 2021-02-02 瑞昱半导体股份有限公司 网络封包接收装置及方法
CN112311696B (zh) * 2019-07-26 2022-06-10 瑞昱半导体股份有限公司 网络封包接收装置及方法

Also Published As

Publication number Publication date
US20090154459A1 (en) 2009-06-18
KR20030089717A (ko) 2003-11-22
EP1382165A2 (en) 2004-01-21
KR100902513B1 (ko) 2009-06-15
US7929433B2 (en) 2011-04-19
WO2002084957A3 (en) 2003-07-31
JP4070610B2 (ja) 2008-04-02
WO2002084957A2 (en) 2002-10-24
TW558887B (en) 2003-10-21
JP2005510893A (ja) 2005-04-21
US20040260829A1 (en) 2004-12-23

Similar Documents

Publication Publication Date Title
CN1611035A (zh) 数据流处理器中的数据流管理
CN1118984C (zh) 高速分组传输网络的可编程线路适配器和数据分组缓存方法
CN1108678C (zh) 在atm交换系统中的反馈控制方法和装置
CN1181654C (zh) 使用网络处理器的网络交换机和方法
CN1204509C (zh) 通信网络装置
CN1239984C (zh) Vlsi网络处理器和方法
CN1319209A (zh) 数字通信处理器
CN1204503C (zh) 用于通信网络的装置、系统及其操作方法
CN1274108C (zh) 用于atm的交换方法
CN1112000C (zh) 图像传输装置、图像传输系统以及通信装置
CN1287282C (zh) 执行实时操作的方法和系统
CN1157989C (zh) 一种atm交换节点和用于操作atm交换节点的方法
CN1500337A (zh) 用于改进队列的方法及设备
CN1218565A (zh) 多路径fifo库缓冲器以及总线传送控制系统
CN1581023A (zh) 实现实时操作的方法和系统
CN1777107A (zh) 高性能计算(hpc)系统中的按需式例示
CN101057481A (zh) 为在网络中路由而利用要以优先级处理的分组的隐式确定来调度分组的方法和设备
CN1767535A (zh) 数据安全层协议单元以及相关装置和方法
CN1612562A (zh) 用策略流实现不同因特网协议数据包转发的方法和设备
CN1601474A (zh) 执行实时操作的方法和系统
CN1874321A (zh) 传送装置和传送方法
CN1257368A (zh) 通信系统中的扩展接口单元
CN1679285A (zh) 执行媒体专用以确保穿越无线网络传送实时数据的服务质量的方法
CN1841989A (zh) 实现有线网络内的高吞吐量带宽分配的方法和系统
CN1305283A (zh) 基于全部/部分地共用多点播送实体的动态数据分组

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

Open date: 20050427