CN101076982A - 用于管理流控制的技术 - Google Patents
用于管理流控制的技术 Download PDFInfo
- Publication number
- CN101076982A CN101076982A CNA2005800424347A CN200580042434A CN101076982A CN 101076982 A CN101076982 A CN 101076982A CN A2005800424347 A CNA2005800424347 A CN A2005800424347A CN 200580042434 A CN200580042434 A CN 200580042434A CN 101076982 A CN101076982 A CN 101076982A
- Authority
- CN
- China
- Prior art keywords
- processor
- state
- control messages
- current control
- formation
- 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/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/253—Routing or path finding in a switch fabric using establishment or release of connections between ports
- H04L49/254—Centralised controller, i.e. arbitration or scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5678—Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种网络设备包括经由流控制总线(485)连接的入口处理器(400)和出口处理器(450)。由包括在入口处理器内的话务管理器模块(489)接收的流控制消息被发送至发送路径(498)和控制路径(497)。
Description
背景
诸如路由器或交换机等网络设备可能需要周期性地执行流控制以调节通过该设备传送信息的速率。已经开发出将流控制消息发送给该设备的各个元件以试图执行这一流控制的技术。这一元件的示例包括发送队列。然而在某些设备内,在发出流控制请求的时刻与该请求在给定发送队列处得到服务的时刻之间存在显著的延迟。该延迟可能潜在地增加网络设备的复杂性和成本,并降低总体性能。
附图简述
图1示出了系统100的框图。
图2示出了交换机104的部分框图。
图3示出了处理系统300的部分框图。
图4示出了交换机104的流控制。
图5示出了状态机500。
图6示出了状态机600。
图7示出了编程逻辑700。
详细描述
某些实施例涉及改善诸如交换机或路由器之类的网络设备内的流控制。更具体地,某些实施例可以使用各种流控制消息和专用控制路径来减小发出流控制请求的时刻与该流控制请求得到服务的时刻之间的延迟量。其它技术可以包括使用各种状态机来加速对流控制消息的处理,以及增强受该流控制消息影响的发送缓冲器内的队列的缓冲和块管理。各实施例在这一上下文中不受限制。
图1示出了系统100的框图。系统100例如可以包括具有多个节点的通信系统。节点可以包括在系统100内具有唯一地址的任何物理或逻辑实体。节点的示例可包括但不限于计算机、服务器、工作站、膝上型计算机、超膝上型计算机(ultra-laptop)、手持计算机、电话、蜂窝电话、个人数字助理、路由器、交换机、网桥、集线器、网关、无线接入点等等。唯一地址例如可以包括诸如互联网协议(IP)地址等网络地址、诸如媒体访问控制(MAC)地址等设备地址等等。各实施例在这一上下文中不受限制。
系统100的各节点可被安排成传送不同类型的信息,诸如媒体信息和控制信息。媒体信息可以指表示对用户有意义的内容的任何数据,诸如语音信息、视频信息、音频信息、文本信息、字母数字符号、图形、图像等等。控制信息可以指表示命令的任何数据,
某些实施例可以涉及改善诸如交换机或路由器之类的网络设备中的流控制。更具体地,某些实施例可以使用各种流控制消息和专用控制路径来减小发出流控制请求的时刻与该流控制请求得到服务的时刻之间的延迟量。其它技术可以包括使用各种状态机来加速对流控制消息的处理,以及增强受该流控制消息影响的发送缓冲器内的队列的缓冲和块管理。各实施例在这一上下文中不受限制。
图1示出了系统100的框图。系统100例如可以包括具有多个节点的通信系统。节点可以包括在系统100内具有唯一地址的任何物理或逻辑实体。节点的示例包括但不限于计算机、服务器、工作站、膝上型计算机、超膝上型计算机(ultra-laptop)、手持计算机、电话、蜂窝电话、个人数字助理、路由器、交换机、网桥、集线器、网关、无线接入点等等。唯一地址例如可以包括诸如互联网协议(IP)地址等网络地址、诸如媒体访问控制(MAC)地址等设备地址等等。各实施例在这一上下文中不受限制。
系统100的各节点可被安排成传送不同类型的信息,诸如媒体信息和控制信息。媒体信息可以指表示对用户有意义的内容的任何数据,诸如语音信息、视频信息、音频信息、文本信息、字母数字符号、图形、图像等等。控制信息可以指表示对自动化系统有意义的命令、指令或控制字的任何数据。例如,控制信息可用于路由媒体信息通过系统,或指示一节点以预定方式处理媒体信息。
系统100的各节点可以根据一个或多个协议来传送媒体和控制信息。协议可以包括用于控制各节点如何在相互之间传送信息的一组预定义规则或指令。协议可由标准组织(诸如因特网工程任务组(IETF)、国际电信联盟(ITL)、电气和电子工程师协会(IEEE)等)颁布的一个或多个协议标准来定义。例如,系统100可以包括根据诸如一个或多个互联网协议之类的一个或多个分组协议来传送信息的分组网络。在另一个示例中,系统100可以使用诸如由一个或多个IEEE 802以太网标准定义的带冲突检测的载波侦听多路访问(CSMA/CD)等媒体访问控制协议来传送分组。在又一个示例中,系统100可以根据一个或多个异步传输模式(ATM)协议来传送分组。各实施例在这一上下文中不受限制。
系统100可以被实现为有线通信系统、无线通信系统或两者的组合。虽然作为示例系统100可被示为使用一特定的通信媒体,但是应该认识到,在此讨论的原理和技术也可以使用任何种类的通信媒体及相关技术来实现。各实施例在这一上下文中不受限制。
当被实现为有线系统时,系统100可以包括被安排成经由一个或多个有线通信媒体传送信息的一个或多个节点。有线通信媒体的示例可以包括导线、电缆、印刷电路板(PCB)、底板、交换式光纤、半导体材料、双绞线、同轴电缆、光纤等等。通信媒体可以使用输入/输出(I/O)适配器连接至节点。I/O适配器可被安排成以用于使用一组期望的通信协议、服务或操作程序来控制各节点之间的信息信号的任何合适的技术来操作。I/O适配器还可以包括将其与相应通信介质相连的合适的物理连接器。I/O适配器的示例可以包括网络接口、网络接口卡(NIC)、线路卡、磁盘控制器、视频控制器、音频控制器等等。各实施例在这一上下文中不受限制。
当被实现为无线系统时,系统100可以包括被安排成经由一种或多种类型的无线通信媒体来传递信息的一个或多个节点。无线通信媒体的示例可以包括无线频谱的各部分,诸如射频(RF)频谱。无线节点可以包括适用于经由指定的无线频谱来传送信息信号的组件和接口,诸如一根或多根天线、无线接收机/发射机(“收发机”)、放大器、滤波器、控制逻辑等等。天线的示例可以包括室内天线、全向天线、单极天线、偶极天线、端部馈电天线(end fed antenna)、圆偏振天线、微带天线、分集式天线、双重天线、天线阵等等。各实施例在这一上下文中不受限制。
再次参见图1,系统100可以包括节点102及106a至106c。此外,系统100还可以包括交换机或路由器104(在此统称为“交换机104”)。虽然图1被示为具有某一拓扑结构内的有限个元件,但是应该认识到系统100可以如给定实现所需的包括在任意类型的拓扑结构中的更多或更少的元件。各实施例在这一上下文中不受限制。
在一个实施例中,节点102及106a至106c各自可包括被安排成传送媒体和控制信息的网络设备。例如,节点102及106a至106c各自可被实现为计算机。各节点能够以分组的形式彼此传送信息。在此上下文中的分组指的是一组长度有限的信息,其长度通常由位或字节来表示。典型的分组长度例如可以是64字节。节点102可以通过将一组媒体信息和控制信息分割成一系列分组来将信息传送给一个或多个节点106a至106c。每一分组都可以包含一部分媒体信息加上某些控制信息,并且每一分组都具有序列号。控制信息能够协助各中间节点将每一分组从节点102路由至其预期的目的地,诸如节点106a至106c中的一个或多个。目的地节点可以接收整组的分组、用序列号将它们置于正确的次序、并使用它们来再现来自节点102的媒体信息。
交换机104例如可以包括用于将各分组通过网络传输的中间节点之一。交换机104可以包括根据诸如来自IEEE 802.3系列以太网协议的一个或多个媒体访问控制协议来操作的网络交换机或路由器。例如,交换机104可以是高带宽交换机,诸如以100兆比特每秒(Mbps)操作的快速以太网交换机、以100Mbps或者10吉比特每秒(Gbps)操作的吉比特以太网交换机等等。各实施例在这一上下文中不受限制。
交换机104可以在系统100的各节点之间交换分组。例如,交换机104可以将来自源节点的分组交换至目的地节点。每一分组都可以包括源地址和目的地地址。交换机104可以接收该分组、检索目的地地址、并且基于目的地地址将该分组发送给一中间节点或目的地节点。
在一个实施例中,交换机104可以包括一个或多个线路卡1-m。线路卡1-m可用于处理网络线路上的数据。每个线路卡都起到网络和交换式光纤之间的接口的作用。线路卡可以将数据集从网络使用的格式转换成处理用的格式。线路卡也可以对数据集执行必要的处理。该处理可以包括进一步的翻译、加密、误差校验等等。在处理之后,线路卡就将数据集转换成用于在交换式光纤上传输的传输格式。
线路卡还允许数据集从交换式光纤发送至网络。线路卡接收来自交换式光纤的数据集、处理该数据集、并在随后将该数据集转换成网络格式。该网络格式例如可以是ATM或一不同的格式。
在一个实施例中,线路卡1-m可以包括基于半双工处理器的线路卡。基于半双工处理器的线路卡可以使用多个网络处理器来实现全双工网络通信。例如,基于半双工处理器的线路卡可以使用第一网络处理器用于入站话务,并使用第二网络处理器用于出站话务。入站数据话务通常是从媒体到交换式光纤的话务,而出站话务通常是从交换式光纤到媒体的话务。每一网络处理器通常仅在一个方向上与交换式光纤通信。
然而,基于半双工处理器的线路卡在执行流控制上有困难。例如,当线路卡和/或交换式光纤中的数据缓冲器溢出时,可能会引入较长的往返等待时间以便将流控制信息传送至线路卡和/或交换式光纤来调整该数据流。因此,交换机104可使用改善的流控制技术,从而缩短或消除该等待时间。可以参考图2至图7更详细地描述交换机104。
图2示出了交换机104的部分框图。如图2所示,交换机104可以包括多个元件,诸如线路卡202a至202c以及交换式光纤206。某些元件例如可以用一个或多个电路、组件、寄存器、软件子例程或其组合来实现。虽然图2示出了有限个元件,但是应该理解,可以如给定实现所需的在交换机104中使用更多或更少的元件。各实施例在这一上下文中不受限制。
如图2所示,交换机104可以包括线路卡202a至202c。线路卡202a示出了一线路卡的部分框图,这也可以表示线路卡202b和202c的实现。线路卡202使用两个半双工网络处理器来提供全双工通信。半双工处理器中的一个用于出站话务,而另一个则用于入站话务。流控制数据可由出口(egress)处理器312从交换式光纤206中接收。流控制数据可以指示交换式光纤206内的数据队列流状态。流控制数据可以经由专用流控制总线214被发送至入口(ingress)处理器210。该流控制数据可由入口处理器210用于临时挂起向交换式光纤206中被确定为拥塞的一个或多个交换式光纤数据队列220的数据发送。一旦拥塞被清除,可重新开始向交换式光纤数据队列220的数据发送。
每个线路卡都可以用作网络204和交换式光纤206之间的接口。网络204例如可以包括系统100的所有元件以包括节点102和106a至106c,以及其它节点。线路卡202a可以经由成帧器208接收来自网络204的数据集。成帧器208将数据集从可包括分割数据集的由网络204使用的格式转换成处理用格式。经转换的数据集随后被发送至入口处理器210。入口处理器210在将数据集转发给交换式光纤206之前对其进行必要的处理。该处理例如可包括进一步的翻译、加密、误差校验等等。在处理之后,入口处理器210将数据集转换成用于通过交换式光纤206传输的传输格式,随后将该数据集发送至交换式光纤206。传输格式可以是公共交换接口(CSIX)格式或一不同的格式。CSIX协议允许以称为C帧的可变大小单元将数据从源发送至目的地。
线路卡202还可以允许数据集从交换式光纤206发送至网络204。出口处理器212接收来自交换式光纤206的数据集、处理该数据集、然后将该数据集发送至成帧器208。成帧器208将该数据集转换成网络格式。该网络格式例如可以是ATM格式或一不同的格式。
在一个实施例中,入口处理器210可以处理来自网络204的入站话务,而出口处理器212则处理送出至网络204的出站话务。入口处理器210经由单向通信路径240将数据发送给交换式光纤206。如果交换式光纤206内的数据缓冲器或队列220变得拥塞或溢出,则交换式光纤206可使用单向通信路径250将带内或带外流控制数据发送给出口处理器212。出口处理器212随后使用通信路径214将该数据发送给入口处理器210。入口处理器210可以分析流控制数据内的流控制位。流控制位可以被解码以指示哪些队列拥塞。基于这一分析,入口处理器210可以临时挂起从其队列之一(诸如,发送队列215)向拥塞队列的数据发送。
在一个实施例中,出口处理器212可以使流控制信息经由通信路径214转向出口处理器。该通信路径例如可以是四(4)位数据总线或其他类型的通信总线。入口处理器210可以接收该流控制信息并处理该信息,以临时挂起向数据缓冲器220的数据发送和/或控制向数据缓冲器220发送数据的速率。在本发明的实施例中,发送调度器可以处理流控制数据以维持线路速率性能。
在一个实施例中,通信路径240还可用于将流控制信令从入口处理器210发送至交换式光纤206。流控制信令可以标识出口处理器212的数据缓冲器216内出现拥塞的队列。作为响应,交换式光纤206可以调整向所标识的队列的发送数据速率和/或临时挂起向这些队列的数据发送。
入口处理器210和出口处理器212可使用任何数量的不同处理系统来实现。例如,在一个实施例中,处理器210和212可以各自用网络处理器来实现。如下将参考图3详细描述适于用作处理器210和212的网络处理器的一个示例。
图3是处理系统300的框图。处理系统300例如可以表示入口处理器210和/或出口处理器212。如图3所示,处理系统300可以包括并行的、基于硬件的多线程网络处理器320,它通过一对存储器总线312和314耦合至存储器系统或存储器资源340。存储器系统340可以包括动态随机存取存储器(DRAM)单元342和静态随机存取存储器(SRAM)单元344。处理系统300尤其适用于能够被分成并行子任务或功能的任务。特别地,基于硬件的多线程处理器320可用于面向带宽而非面向等待时间的任务。基于硬件的多线程网络处理器320可以具有多个微引擎或处理引擎322-1-n,它们各自带有能够同时活动并对一特定任务独立工作的多个硬件控制的线程。
处理引擎322-1-n各自可维护硬件中的程序计数器以及与该程序计数器相关联的状态。虽然有效地在处理引擎322-1-n的每一个上可以有相应的上下文或线程集同时活动,但在任一时刻每个处理引擎实际只能操作一个线程。处理引擎322可以经由下一个相邻总线331而彼此耦合。
在一个实施例中,网络处理器320可以包括八个处理引擎322-1-n,其中n=8。每个处理引擎322-1-n都可以具有用于处理八个硬件线程或上下文的能力。八个处理引擎322-1-n可以用包括存储器资源340的共享资源和各个总线接口来操作。基于硬件的多线程处理器320可以包括DRAM控制器324和SRAM控制器326。DRAM单元342和DRAM控制器324可用于处理大量数据,例如处理来自网络分组的网络有效负载。SRAM单元344和SRAM控制器326可用于低等待时间、快速访问任务的网络实现,例如访问查找表、核心处理器存储器等等。
在一个实施例中,推总线(push bus)327、328和拉总线(pull bus)329、330可用于在处理引擎322-1-n与DRAM单元342和SRAM单元344之间传送数据。更具体地,推总线327、328可以是将数据从存储器资源340移至处理引擎322-1-n的单向总线,而拉总线329、330可把数据从处理引擎322-1-n移至存储器资源340内其相关联的DRAM单元342和SRAM单元344。
在一个实施例中,八个处理引擎322-1-n可以基于数据的特性来访问DRAM单元342或SRAM单元344。于是,低等待时间、低带宽的数据可以被存储在SRAM单元344内并可从中取出,而等待时间不那么重要的高带宽数据可以被存储在DRAM单元342并可从中取出。处理引擎322-1-n可以对DRAM控制器324或SRAM控制器326执行存储器引用指令。
在一个实施例中,网络处理器320还可以包括用于载入对网络处理器320的其他资源的微码控制的核心处理器322。核心处理器322可以经由DRAM推和拉总线334耦合至DRAM控制器324。核心处理器322可以经由SRAM推和拉总线336耦合至SRAM控制器326。
核心处理器322可以执行通用计算机类型功能,诸如处理协议、异常以及当处理引擎322-1-n为了诸如在边界条件下之类的更详细处理而停止分组的情况下对分组处理的额外支持。核心处理器322可以具有操作系统(OS)。通过OS,核心处理器322可以调用各种功能以在处理引擎322-1-n上操作。核心处理器322可以使用任何支持的OS,诸如实时OS。例如,在一个实施例中,核心处理器322可以被实现为加利福尼亚州圣克拉拉市Intel公司的基于XScale的架构。核心处理器322也可例如使用诸如来自加利福尼亚州阿拉米达市Wind River International的VXWorks、来自佛罗里达州韦斯顿市Micrium公司的μC/OS等OS来实现。各实施例在这一上下文中不受限制。
在一个实施例中,网络处理器320可以与诸如10/100BaseT Octal MAC等MAC设备或吉比特以太网设备之类的网络设备接口。一般情况下,网络处理器320可以与任何类型的通信设备或者接收或发送大量数据的接口相接口。类似地,处理系统300可在联网应用中操作以接收网络分组并且以并行方式处理这些分组。
图4示出了在诸如交换机104等交换机内的流控制处理的更详细框图。交换机104可以包括使用诸如以上参考图3描述的处理系统300之类的网络处理器来实现的线路卡。如图4所示,入口处理器400和出口处理器450可以分别经由单向通信路径或接口480和490耦合至交换式光纤470。
在一个实施例中,通信路径480和490例如可以使用CSIX或其他协议用于通信。经由CSIX接口传送的信息单元通常被称为C帧。常见的C帧类别的示例可以包括数据、控制和空闲。数据流控制通过控制类别来提供。接收自交换式光纤470的空闲C帧被自动丢弃并且在没有数据和/或控制信息要传送时被自动发送至交换式光纤470。数据和控制C帧可以在发送和接收操作期间被存入缓冲器。可以根据C帧类别来划分缓冲器,以便能够单独排队该控制和/或数据C帧。
在一个实施例中,可以在流控制C帧内携带用于虚拟输出队列(VoQ)的流控制数据。流控制C帧在它们被送至入口处理器400内的处理引擎322以供处理之前被置于内部流控制缓冲器内。VoQ流控制可由指示接收机内一特定队列的状态的VoQ控制位来提供。例如,XON/XOFF位指示发射机是否能够将数据发送至接收机内的一特定VoQ。可以认识到VoQ可以位于处理器400、450和/或交换式光纤470之一处。在一个示例中,如果在接收自交换式光纤470的VoQ流控制数据内VoQ状态位被置位(例如,XON/XOFF位=1),则入口处理器400可以临时挂起经由接口480向交换式光纤470处的特定VoQ的数据传送。一旦该VoQ流控制位被清零(例如,XON/XOFF位=0),则可继续入口处理器400向VoQ的数据传送。
更具体地,XOFF位可以指示VoQ 1-n 475和/或缓冲器457的相关联的VoQ拥塞并且无法以当前速率处理另外的数据。作为响应,入口处理器400可以中止向该VoQ的发送和/或可以调整向所标识的VoQ 475发送数据的速率。相反,XON位可以指示VoQ 1-n 475和/或缓冲器457的相关联的VoQ能够以当前速率从入口处理器400接收数据。
在一个实施例中,出口处理器450可以包括经由接口490耦合至交换式光纤470的接收(Rx)状态机456。接口490可以耦合至出口处理器450内的缓冲器457。缓冲器457可以包括从交换式光纤470中接收数据的多个VoQ。Rx状态机456可以将接收自交换式光纤470的流控制数据转向流控制出口先进先出(FCEFIFO)缓冲器458和/或直接转向流控制发送(Tx)接口453。
在一个实施例中,VoQ流控制数据例如可以经由路径442和/或443转向FCEFIFO 458。FCEFIFO 458可以在将该VoQ流控制发送给流控制发送接口453之前将其存储。流控制发送接口453可以通过流控制总线485将流控制数据发送给入口处理器400。或者,VoQ流控制数据也可由交换式光纤470直接发送给入口处理器400的流控制接收接口409。
在一个实施例中,入口处理器400可以包括耦合至流控制总线485的流控制接收接口409。流控制接收接口409可以经由流控制总线485接收来自出口处理器450的流控制数据。流控制接收接口409可以经由路径444将VoQ流控制数据发送给流控制入口先进先出(FCIFIFO)缓冲器420以供存储。基于来自FCIFIFO 420的VoQ流控制数据,发送调度器可以控制存储在发送缓冲器(TBUF)403内的数据的发送。可以认识到,队列管理器432可以通过从队列中移除一段并其发送给发送元件来服务用于数据传送的队列。TBUF 403可以包括一个或多个发送缓冲器,用于在能将数据发送至交换式光纤470之前临时保持该数据。
在一般操作中,交换式光纤470可以将交换式光纤流控制状态数据475和有效负载数据478经由接口490发送给出口处理器450。可以使用多路复用器481将流控制状态479和数据478多路复用成单个C帧并经由接口490发送。这样就可以使用带内信令经由单向接口490发送流控制数据479。或者,还可以使用带外信令经由单向接口490或一不同的接口来发送流控制数据479。
流控制数据可以包括VoQ流控制数据。VoQ流控制数据可以指示缓冲器475和/或缓冲器457内的VoQ 1-n中的一个或多个当前是否无法容纳经由接口480接收自入口处理器400的数据。换言之,流控制数据可以指示来自入口处理器400的数据是否引起VoQ 475-1至475-n中的一个或多个发生拥塞。在此情况下,可以在流控制状态数据479内包括一指示已超出VoQ缓冲器阈值的溢出消息。在一个实施例中,流控制数据479例如可以包括用于VoQ 475-1至475-n和/或缓冲器457内VoQ的每一个的XON/XOFF位。
与流控制相关联的一个问题是在从交换式光纤470发出流控制请求的时刻到入口处理器400服务该流控制请求并停止向被选VoQ发送段的时刻之间有一极长的等待时间。已经由发送调度器所调度但尚未送出入口处理器的分组/段被称为“飞行中(in-flight)”分组/段。作为流控制消息的结果,给定VoQ的拥塞可能会被入口处理器400中的飞行中分组恶化。在某些情况下,例如,在对于已调度VoQ的时段内的任何给定时刻都可以有32至64个飞行中分组。因此,如果当接收到流控制消息时对这些分组的发送尚未停止,则需要约32至64个分组时间的时间间隔才能服务诸如临时阻止VoQ发送数据之类的流控制请求。该等待时间或“刹车时间(skid time)”会使得诸如光纤接口芯片(FIC)等已连接组件需要相对较大的缓冲器空间来容纳另外发送的分组。这会潜在地增加交换机104的成本和复杂性,同时降低整体性能。
某些实施例可以被安排成解决这些和其他流控制问题。例如,可以修改入口处理器400以包括话务管理模块(TMM)489和TBUF模块(TBM)499。TMM 489和TBM 499可以有助于缩短服务流控制请求的时间间隔。缩短服务流控制请求的时间间隔能够改善流控制管理,还能改善交换机104的整体系统性能。应该认识到,TMM 489和TBM 499可以如给定的一组设计约束所需由硬件、软件或两者的组合来实现。
在一个实施例中,TMM 489可以包括流控制(FC)解码器493。虽然FC解码器493被示为是TMM 489的一部分,但是应该认识到FC解码器493可以被实现为由TMM 489外部的处理引擎322-1-n执行的独立线程。各实施例在这一上下文中不受限制。
FC解码器493可接收来自FCIFIFO 420的流控制数据。FC解码器493可以解码传入的流控制数据以检索指示有关一队列的XON条件或XOFF条件的VoQ状态位。TMM489可以根据该VoQ状态位来生成XOFF消息或XON消息,每条消息都包括该VoQ状态位和对应的队列号。XOFF消息可以指示对于一队列开启流控制,而XON消息则可以指示对于一队列移除流控制。TMM 489可以经由专用控制路径497将XOFF消息和/或XON消息发送给TBM 499。专用控制路径497允许流控制XOFF消息比用于处理通过入口处理器400的分组的正常发送路径更快地到达TBM 499。由发送路径498的Tx ME 433表示的发送路径例如可以按顺序处理发送分组。以此方式,FCTL 492可以比使用发送路径498的情况下更快地关闭TBUF 403内的VoQ。
然而,在关闭TBUF 403内的VoQ时,在用于经流控制的队列的发送流水线内仍留有多个分组。这些分组需要通过流控制技术来处理。因此,TMM 489可以生成FENCE消息并将其经由发送路径498发送至TBM 499。FENCE消息可以包含由TBM 499沿着常用发送路径发送的控制字以确保在接收到FENCE控制字之前发送路径内的所有分组已被发送至TBUF 403。控制字例如可以包括队列号和FENCE标识符(ID)。控制字还可以与新调度的分组标识符一并经由正常发送路径403被发送至TBUF 403。
在一个实施例中,TMM 489可以包括发送管理流控制状态机(TMFCSM)495。TMFCSM 495例如可以包括响应于由TMM 489接收的消息在各状态之间转换的每一队列的4状态状态机。例如,TMFCSM 495可以响应于接收自交换式光纤470的XON或XOFF消息来改变状态。在另一个示例中,TMFCSM 495可以响应于接收自流控制服务模块(FCSM)408的ROLL BACK COMPLETE(回退完成)消息,或者响应于接收自TBM 499的FENCE RECEIVED(围栅已接收)消息来改变状态。术语“回退(roll back)”可以指通过重置给定输出队列中的数据指针将“飞行中”分组/单元放回该队列而不改变发送顺序的操作。
有关TMFCSM 495的各种状态的示例在表1中给出。
表1
当前状态 | 条件 | 下一状态 | 操作 |
正常 | XOFF | XOFF,无XON | 发出FENCE |
XOFF,无XON | XOFF | XOFF,无XON | 循环至相同状态 |
ROLL BACK/FENCE | 准备就绪,无XON | 下一状态 | |
XON | XOFF,XON | 等待ROLL BACK COMPLETE消息 | |
准备就绪,无XON | XOFF,无XON | 等待XON和新的XOFF到达。没有新的FENCE发出,因为在第一个XOFF之后就已经没有新的分组被发出。 |
如下将参考图5详细描述TMFCSM 495的操作以及在表1中提供的各示例。
图5示出了状态机500。状态机500可以表示使用表1中提供的各示例的适用于TMFCSM 495的状态机。如图5所示,状态机500可包括正常状态502、XOFF/无XON(NXON)状态504、准备就绪/NXON状态506以及XOFF/XON状态508。正常状态502可以指示正常操作模式。
如果TMM 489的FC解码器493接收到指示TBUF 403中的发送队列需要流控制的流控制数据,则TMM 489可生成XOFF消息并将该消息经由专用控制路径497发送给TBM 499。TMM 489还可以生成FENCE消息并将其经由发送路径498发送至TBM 499。FC解码器493可以使得状态机500从正常状态502变为XOFF/NXON状态504。
状态机500可以响应于XON消息、ROLL BACK COMPLETE消息或FENCERECEIVED消息来改变状态。当接收到XOFF信号时,状态机500保持在XOFF/NXON状态504。如果从交换式光纤470中接收到XON消息,则FC解码器493可以生成XON消息并将其发送给TBM 499。FC解码器493还可以使得状态机500从XOFF/NXON状态504变为XOFF/XON状态508。如果FC解码器493接收到ROLL BACK COMPLETE消息或FENCE RECEIVED消息,则FC解码器493可使状态机从XOFF/NXON状态504变为准备就绪/NXON状态506。
在准备就绪/NXON状态506下,状态机500可以等待XON消息。然而,如果状态机500接收到的新的XOFF消息而非XON消息,则状态机500无需发出新的FENCE消息,因为在第一个XOFF消息之后它没有发出任何新的分组。如果接收到来自交换式光纤470的XON消息,则FC解码器493可以生成XON消息并将其发送给TBM 499。FC解码器493还可以使状态机500从准备就绪/NXON状态506变为正常状态502。
在XOFF/XON状态508下,状态机可以等待ROLL BACK COMPLETE消息。如果接收到ROLL BACK COMPLETE消息,则状态机500可从XOFF/XON状态508变为正常状态502。
再次参考图4,TBM 499可以包括流控制查找表(FLTL)492。FLTL 492可以被安排成在接收到XOFF消息时关闭TBUF 403内的给定队列。当一队列进入XOFF状态时,就不会再有段从该队列发出。FLTL 492也可以被安排成在接收到XON消息并且前一ROLL BACK完成时开启TBUF 403内的给定队列。当一队列进入XON状态时,可重新开始从该队列内的段发送。
除了处理流控制之外,FLTL 492还可指令缓冲器和块管理器(BBM)496解除或释放各缓冲器和块。BBM 496可接收来自TBM 499的RELEASE消息以便在所有数据已从该缓冲器/块中发送之后将这些缓冲器和/或块返回给自由池。缓冲器可以在发送了该缓冲器的最后一段时被释放。类似地,块可以在发送了该块内的最后一段时被释放。
在一个实施例中,TBM 499可以包括TBUF流控制状态机(TBUFFCSM)491。
TBUFFCSM 491例如可以包括一被安排成当接收到来自TMM 489的XOFF和FENCE消息时在各状态之间改变的每一队列的4状态状态机。有关TBUFFCSM491的各状态的示例在表2中给出。
表2
当前状态 | 下一状态 | 操作 |
正常(00) | 第一XOFF(10) | 接收到第一XOFF消息。尚未接收到ROLL BACK消息或FENCE消息。 |
第一XOFF(10) | 等待Fence(01) | 接收到ROLL BACK消息。等待FENCE消息。正常操作可在接收到FENCE消息之后重新开始。 |
正常(00) | 不需要ROLL BACK消息,因为已经接收到FENCE消息。 | |
等待Fence(01) | 正常(00) | 已经接收到FENCE消息。正常操作重新开始。 |
第二XOFF(11) | 接收到第二XOFF消息。尚未接收到有关第一XOFF消息的FENCE消息。等待有关第一XOFF消息的FENCE消息,以及有关第二XOFF消息的ROLLBACK或FENCE消息。 | |
第二XOFF(11) | 第一XOFF(10) | 已经接收到有关第一XOFF消息的FENCE消息。等待有关第二XOFF消息的ROLL BACK或FENCE消息。 |
如下将参考图6详细描述TBUFFCSM 491的操作以及在表2中提供的各示例。
图6示出了状态机600。状态机600可以表示使用表2中提供的各示例的适用于TBUFFCSM 491的状态机。如图6所示,状态机600包括正常状态(00)602、第一XOFF(10)状态604、等待Fence(01)状态606以及第二XOFF(11)状态608。正常状态602可以指示正常操作模式。如果TBM 499的FCTL 492接收到来自TMM 489的XOFF消息,则FCTL 492可以关闭在该XOFF消息中标识的队列。FCTL 492可以使状态机600从正常状态602变为第一XOFF状态604。
在第一XOFF状态604下,状态机600可以等待FENCE消息或分组。如果在分组之前接收到FENCE消息,则FCTL 492可以使状态机600从第一XOFF状态604变为正常状态602。在分组之前接收到FENCE消息可以指示无需回退操作,因为当服务流控制请求时不存在飞行中分组。在此状态下接收到FENCE还使得状态机返回至正常状态602。如果在FENCE消息之前接收到分组,则FCTL 492可向FCSM 408发出ROLL BACK请求。FCTL 492还可以使状态机600从第一XOFF状态604变为等待Fence状态606。
在等待Fence状态606下,状态机600可以等待来自TMM 489的FENCE消息或第二XOFF消息。如果接收到FENCE消息,则FCTL 492可以使状态机600从等待Fence状态606变为正常状态602。如果接收到第二XOFF消息,则FCTL 492可以使状态机600从等待Fence状态606变为第二XOFF状态608。
在第二XOFF状态608下,状态机600可以等待有关第二XOFF消息的FENCE消息。如果接收到有关第二XOFF消息的FENCE消息,则FCTL 492可以使状态机600从第二XOFF状态608变回第一XOFF状态604。状态机600可以如前所述从第一XOFF状态604变回正常状态602。
如下将参考随后的附图和所附示例进一步描述有关上述系统和子系统的操作。某些附图可以包括编程逻辑。虽然在此呈现的这些附图可以包括一特定编程逻辑,但是应该认识到该编程逻辑只是提供了一个如何实现在此描述的一般功能的示例。此外,除非另有说明,否则无需以呈现的顺序执行给定的编程逻辑。此外,编程逻辑可由硬件元件、处理器执行的软件元件或其任意组合来实现。各实施例在这一上下文中不受限制。
图7示出了编程逻辑700。编程逻辑700可以表示由在此描述的诸如交换机104、网络处理器200和/或入口处理器300之类的一个或多个系统执行的操作。如编程逻辑700所示,在框702处接收第一控制消息。该第一控制消息例如可以包括来自交换式光纤的传入流控制消息。结果,可在框704处生成第二控制消息并经由控制路径将其送出以关闭一队列。该第二控制消息例如可以包括XOFF消息。在框706处可以经由发送路径发送第三控制消息以确保该发送路径内的所有分组都已经到达该队列。该第三控制消息例如可以包括FENCE消息。在框708处可以改变第一状态表的状态以指示该队列已被关闭。第一状态表例如可以包括由状态机500使用的状态表。
在一个实施例中,可以接收第四控制消息以指示一组回退操作已经完成。该第四控制消息例如可以包括ROLL BACK COMPLETE消息。可以改变第一状态表的状态以指示回退操作已完成。
在一个实施例中,可以接收第五控制消息以开启该队列。该第五控制消息例如可以包括XON消息。可以改变第一状态表的状态以指示该队列已被开启。
在一个实施例中,可以接收第二控制消息。响应于该第二控制消息可以关闭队列。可以改变第二状态表的状态以指示该队列已被关闭。第二状态表例如可以包括由状态机600使用的状态表。
在一个实施例中,可以在从发送路径中接收分组之前接收第三控制消息。可以将第二状态表的状态变为正常操作状态。
在一个实施例中,可以在接收第三控制消息之前接收一分组。可以发送第六控制消息以执行回退操作。该第六控制消息例如可以包括ROLL BACK消息。可以改变第二状态表的状态以等待第三控制消息。
应该认识到序数词“第一”、“第二”、“第三”、“第四”、“第五”和“第六”仅用于唯一地标识给定消息。这些术语并不一定表示以对应于这些序数词的时间或序列顺序来发送或接收这些消息。各实施例在这一上下文中不受限制。
通过示例能够更好地理解上述系统的操作及其相关联的编程逻辑。假设TMM489接收来自流控制接收接口409和/或FCIFIFO 420的流控制数据。FC解码器493可以解码这些流控制数据。FC解码器492可以根据经解码的流控制数据来控制用于TBM 499的流控制操作。例如,如果经解码的流控制数据包括置为XOFF的VoQXON/XOFF状态位,则TMM 489可以使用专用控制路径497将XOFF消息连同经解码的XOFF信息一并发送至TBM 499。在另一个示例中,如果经解码的流控制数据包括置为XON的VoQ XON/XOFF状态位,则TMM 489可以使用专用控制路径497将XON消息连同经解码的XON信息一并发送至TBM 499。FC解码器493在发送XOFF消息或XON消息之后可以根据表1和状态机500将TMFCSM 495改变为合适的状态。
专用控制路径497可用于在TMM 489和TBM 499之间直接传送消息。例如,TMFCSM 495可使用例如4根导线加1个有效位来将XOFF消息和XON消息发送给TBUFFCSM 491。为了指示对16,000个队列的流控制,队列标识符(QID)应该包括至少14位。例如可以在4个机箱循环(chassis cycle)中在这4根导线上提供该14位QID。专用控制路径497的使用可以允许TBM 499比使用传统技术更快地实现流控制操作。以此方式,从交换式光纤470发出流控制请求的时刻到TBUF403为一特定队列服务该流控制请求的时刻之间的总等待时间可被缩短。
TMM 489还可以使用发送路径498将FENCE消息发送给TBM 499。TMFCSM495可发出FENCE消息作为转储清除请求,以使得用于该经流控制的队列的发送流水线中的所有请求都可被看见并被回退。TBUFFCSM 491可以使用在FENCE消息之前首先接收到的分组来执行回退操作。如果在FENCE消息之前没有接收到分组,则可指示无需回退操作,因为在对该队列服务流控制时无分组处于飞行中。
TMM 489还可以接收来自入口处理器400的其他元件的各种流控制消息。例如,TMM 489可以接收来自FCSM 408或队列管理器432的ROLL BACKCOMPLETE消息以指示回退操作已完成。在另一个示例中,TMM 489可以接收来自TBM 499的FENCE RECEIVED消息以指示该TBM 499已经成功地接收到FENCE消息。FC解码器493可以相应地更新TMFCSM 495的状态。
TBM 499可以接收来自TMM 489的各种流控制消息并响应于这些消息实现流控制操作。例如,TBM 499的FCTL 492可以接收来自TMM 489的XOFF消息。FCTL 492可以关闭TBUF 403中对应于该XOFF消息中的队列号的队列。FCTL 492还可以根据表2和状态机600来改变TBUFFCSM 491的队列状态。FCTL 492随后可以等待接收一分组或用于该队列的FENCE消息。
如果FCTL 492在FENCE消息之前接收到一分组,则需要回退队列管理器432内的队列参数。为了实现上述操作,TBM 499可以将ROLL BACK请求发送给FCSM 408。ROLL BACK请求可以包括一个或多个段描述符,诸如块地址、块内偏移量、带有剩余段计数的缓冲器描述符等等。FCSM 408可以将该段描述符发送至队列管理器432。队列管理器432可以在由例如块地址加上块内偏移量所提供的位置处写入带有剩余段计数的缓冲器描述符。一旦已经完成ROLL BACK请求,FCSM 408就可以把ROLL BACK COMPLETE消息发送给TMM 489。TMM 489的TMFCSM 495接收该ROLL BACK COMPLETE消息,并可基于该信息改变至合适的状态。
如果FCTL 492在接收到FENCE消息之前未接收到分组的情况下接收了FENCE消息,则FCTL 492可以使TBUFFCSM 491还原到正常操作状态。在接收到FENCE消息之前未接收到分组的情况下接收FENCE消息可以指示在对给定队列服务流控制时没有分组处于飞行中,因此无需回退操作。
已经在此阐明了多个具体细节以提供对各实施例的透彻理解。然而本领域普通技术人员应该理解无需这些具体细节也可实践本发明。在其他实例中,未对公知的操作、组件和电路做出详尽的描述以免淡化本发明的主题。应该认识到在此公开的具体结构和功能细节可以是代表性的并且不必限制各实施例的范围。
还值得注意的是,对“一个实施例”或“某一实施例”的任何参考指的是结合该实施例描述的特定特征、结构或性能被包括在至少一个实施例中。出现在说明书各处的短语“在一个实施例中”不一定全部指代同一实施例。
可以使用根据任何数量的因素变化的体系结构来实现某些实施例,这些因素诸如期望的计算速率、功率电平、耐热性、处理循环预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其他性能约束等。例如,可以使用由通用或专用处理器执行的软件来实现一个实施例。在另一个示例中,一实施例可被实现为诸如电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)或数字信号处理器(DSP)等的专用硬件。在又一示例中,可使用已编程的通用计算机组件和自定义硬件组件的任何组合来实现一个实施例。各实施例在这一上下文中不受限制。
某些实施例可使用了表达方法“耦合的”和“连接的”及其派生词来描述。应该理解,这些术语并不旨在彼此同义。例如,某些实施例可以使用术语“连接的”来描述以指示两个或多个元件彼此直接物理或电接触。在其它示例中,某些实施例可以使用术语“耦合的”来描述以指示两个或多个元件彼此直接物理或电接触。但是术语“耦合的”也可表示两个或多个元件并非彼此直接接触,但仍然相互协作或交互。各实施例在这一上下文中不受限制。
某些实施例可以例如使用可存储一条指令或一组指令的机器可读介质或制品来实现,该指令如果被一机器执行则会使该机器执行根据各实施例的方法和/或操作。这一机器例如可以包括任何合适的处理平台、计算平台、计算设备、处理设备、计算系统、处理系统、计算机、处理器等等,并且可以使用硬件和/或软件的任何合适的组合来实现。机器可读介质或制品例如可以包括任何合适类型的存储器单元、存储器设备、存储器制品、存储器介质、存储设备、存储制品、存储介质和/或存储单元,诸如存储器、可移动或不可移动介质、可擦除或不可擦除介质、可写或可重写介质、数字或模拟介质、硬盘、软盘、致密盘只读存储器(CD-ROM)、可记录致密盘(CD-R)、可重写致密盘(CD-RW)、光盘、磁性介质、各类数字通用盘(DVD)、磁带、磁带盒等等。指令可以包括任何合适种类的代码,例如源代码、编译码、解释码、可执行码、静态码、动态码等等。之列可以使用诸如C、C++、Java、BASIC、Pascal、VisualBasic、汇编语言、机器码之类的任何合适的高级、低级、面向对象的、可视的、编译的和/或解释的编程语言来实现。各实施例在这一上下文中不受限制。
除非另外特别指出,否则可以认识到,诸如“处理”、“计算”、“演算”、“确定”之类的术语指的是计算机或计算系统或者类似的电子计算设备的动作和/或进程,这些动作和/或进程将计算机系统的寄存器和/或存储器内被表示为物理(例如,电子)量的数据处理和/或变换成计算机系统存储器、寄存器或其他这类信息存储、传输或显示设备内类似地被表示为物理量的其他数据。各实施例在这一上下文中不受限制。
虽然示出的是在此描述的实施例的某些特征,但是本领域普通技术人员将会得出许多修改、代替、变化和等效技术方案。因此,应该理解所附权利要求书旨在覆盖落入各实施例的真实精神范围内的所有这些修改和变化。
Claims (28)
1.一种装置,包含:
包括发送管理器模块和发送缓冲器模块的第一处理器,所述发送管理器模块经由控制路径和发送路径将流控制消息发送至所述发送缓冲器模块,并且所述发送缓冲器模块响应于所述流控制消息管理对于一队列的流控制。
2.如权利要求1所述的装置,其特征在于,所述发送管理器模块包括流控制解码器和发送管理流控制状态机。
3.如权利要求1所述的装置,其特征在于,所述发送缓冲器模块包括流控制查找表和发送缓冲器流控制状态机。
4.如权利要求1所述的装置,其特征在于,包括连接至所述发送缓冲器模块的流控制服务模块,所述发送缓冲器模块将执行回退操作的请求发送至所述流控制服务模块。
5.如权利要求4所述的装置,其特征在于,包括连接至所述流控制服务模块的队列管理器,所述流控制服务模块将所述执行回退操作的请求发送至所述队列管理器,所述请求包括段描述符,并且所述队列管理器使用所述段描述符来写入剩余的段计数。
6.如权利要求1所述的装置,其特征在于,包括连接至所述发送缓冲器模块的缓冲器和块管理器,所述缓冲器和块管理器接收来自所述发送缓冲器模块的释放消息,所述缓冲器和块管理器在缓冲器为空时释放所述缓冲器,并在最后一个缓冲器已被释放时释放块。
7.如权利要求1所述的装置,其特征在于,包括:
连接至所述第一处理器的流控制总线;
连接至所述流控制总线的第二处理器;以及
其中所述第一处理器被安排成处理从网络到交换式光纤的分组,而所述第二处理器被安排成处理从所述交换式光纤到所述网络的分组。
8.如权利要求1所述的装置,其特征在于,所述第一处理器包括入口处理器,所述第二处理器包括出口处理器,并且所述第一和第二处理器中的至少一个使用网络处理器来实现。
9.一种系统,包括:
交换式光纤;
由第一总线连接至所述交换式光纤的第一处理器;
由第二总线连接至所述交换式光纤的第二处理器;
连接至所述第一处理器和所述第二处理器的流控制总线;以及
其中所述第一处理器包括发送管理器模块和发送缓冲器模块,所述发送管理器模块经由控制路径和发送路径将流控制消息发送至所述发送缓冲器模块,并且所述发送缓冲器模块响应于所述流控制消息管理对于一队列的流控制。
10.如权利要求9所述的系统,其特征在于,还包括连接网络与所述第一处理器和所述第二处理器的通信介质。
11.如权利要求9所述的系统,其特征在于,所述发送管理器模块包括流控制解码器和发送管理流控制状态机。
12.如权利要求9所述的系统,其特征在于,所述发送缓冲器模块包括流控制查找表和发送缓冲器流控制状态机。
13.如权利要求9所述的系统,其特征在于,包括连接至所述发送缓冲器模块的流控制服务模块,所述发送缓冲器模块将执行回退操作的请求发送至所述流控制服务模块。
14.如权利要求13所述的系统,其特征在于,包括连接至所述流控制服务模块的队列管理器,所述流控制服务模块将所述执行回退操作的请求发送至所述队列管理器,所述请求包括段描述符,并且所述队列管理器使用所述段描述符来写入剩余的段计数。
15.如权利要求9所述的系统,其特征在于,包括连接至所述发送缓冲器模块的缓冲器和块管理器,所述缓冲器和块管理器接收来自所述发送缓冲器模块的释放消息,所述缓冲器和块管理器在缓冲器为空时释放所述缓冲器,并在最后一个缓冲器已被释放时释放块。
16.如权利要求1所述的系统,其特征在于,所述第一处理器包括入口处理器,所述第二处理器包括出口处理器,并且所述第一和第二处理器中的至少一个使用网络处理器来实现。
17.一种方法,包括:
接收第一控制消息;
经由控制路径发送第二控制消息以关闭一队列;
经由发送路径发送第三控制消息以确保所述发送路径内的所有分组都已到达所述队列;以及
改变第一状态表的状态以指示所述队列已被关闭。
18.如权利要求17所述的方法,其特征在于,包括:
接收第四控制消息以指示一组回退操作已完成;以及
改变所述第一状态表的所述状态以指示所述回退操作已完成。
19.如权利要求17所述的方法,其特征在于,包括:
接收第五控制消息以开启所述队列;以及
改变所述第一状态表的所述状态以指示所述队列已被开启。
20.如权利要求17所述的方法,其特征在于,包括:
接收所述第二控制消息;
关闭所述队列;以及
改变第二状态表的状态以指示所述队列已被关闭。
21.如权利要求17所述的方法,其特征在于,包括:
在接收分组之前接收所述第三控制消息;以及
将第二状态表的状态改为正常操作状态。
22.如权利要求17所述的方法,其特征在于,包括:
在接收所述第三控制消息之前接收分组;
发送第六控制消息以执行回退操作;以及
改变第二状态表的状态以等待所述第三控制消息。
23.一种包含存储指令的介质的制品,所述指令在被处理器执行时可用于接收第一控制消息、经由控制路径发送第二控制消息以关闭一队列、经由发送路径发送第三控制消息以确保所述发送路径内的所有分组都已到达所述队列、并且改变第一状态表的状态以指示所述队列已被关闭。
24.如权利要求23所述的制品,其特征在于,还存储当被处理器执行时可用于接收第四控制消息以指示一组回退操作已完成、并且改变所述第一状态表的所述状态以指示所述回退操作已完成的指令。
25.如权利要求23所述的制品,其特征在于,还存储当被处理器执行时可用于接收第五控制消息以开启所述队列、并且改变所述第一状态表的所述状态以指示所述队列已被开启的指令。
26.如权利要求23所述的制品,其特征在于,还存储当被处理器执行时可用于接收所述第二控制消息、关闭所述队列、并且改变第二状态表的状态以指示所述队列已被关闭的指令。
27.如权利要求23所述的制品,其特征在于,还存储当被处理器执行时可用于在接收分组之前接收所述第三控制消息、并且将第二状态表的状态改为正常操作状态的指令。
28.如权利要求23所述的制品,其特征在于,还存储当被处理器执行时可用于在接收所述第三控制消息之前接收分组、发送第六控制消息以执行回退操作、并且改变第二状态表的状态以等待所述第三控制消息的指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/009,861 US7554908B2 (en) | 2004-12-10 | 2004-12-10 | Techniques to manage flow control |
US11/009,861 | 2004-12-10 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101076982A true CN101076982A (zh) | 2007-11-21 |
Family
ID=35966024
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2005800424347A Pending CN101076982A (zh) | 2004-12-10 | 2005-12-09 | 用于管理流控制的技术 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7554908B2 (zh) |
CN (1) | CN101076982A (zh) |
WO (1) | WO2006063298A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102981999A (zh) * | 2011-06-29 | 2013-03-20 | 美国博通公司 | 动态可配置无线数据总线开关 |
CN107431666A (zh) * | 2015-03-23 | 2017-12-01 | 思科技术公司 | 用于在数据中心网络环境中实现低时延的技术 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7733857B2 (en) * | 2004-12-17 | 2010-06-08 | Samsung Electronics Co., Ltd. | Apparatus and method for sharing variables and resources in a multiprocessor routing node |
US7620042B2 (en) * | 2004-12-17 | 2009-11-17 | Samsung Electronics Co., Ltd. | Apparatus and method for inter-processor communications in a multiprocessor routing node |
US7509146B2 (en) * | 2005-08-03 | 2009-03-24 | Purewave Networks, Inc. | Beamforming using subset of antenna array |
US8553684B2 (en) * | 2006-04-24 | 2013-10-08 | Broadcom Corporation | Network switching system having variable headers and addresses |
US7733781B2 (en) * | 2006-04-24 | 2010-06-08 | Broadcom Corporation | Distributed congestion avoidance in a network switching system |
US8144588B1 (en) * | 2007-09-11 | 2012-03-27 | Juniper Networks, Inc. | Scalable resource management in distributed environment |
DE112011105853B4 (de) | 2011-11-15 | 2024-04-25 | Intel Corporation | Verwaltung der Steuerung des Pufferzulaufs durch den Verbindungsstatus |
US8908510B2 (en) * | 2012-03-22 | 2014-12-09 | Mellanox Technologies Ltd. | Communication link with intra-packet flow control |
US20140280715A1 (en) * | 2013-03-15 | 2014-09-18 | First Principles, Inc. | Real time remote desktop |
US9544667B2 (en) * | 2013-10-14 | 2017-01-10 | Nec Corporation | Burst switching system using optical cross-connect as switch fabric |
CN105391567B (zh) * | 2014-09-05 | 2019-05-24 | 华为技术有限公司 | 流量管理实现方法、装置和网络设备 |
US20200412670A1 (en) * | 2019-06-28 | 2020-12-31 | Intel Corporation | Output queueing with scalability for segmented traffic in a high-radix switch |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5784559A (en) * | 1995-11-06 | 1998-07-21 | Sun Microsystems, Inc. | Full duplex flow control for ethernet networks |
US6631374B1 (en) * | 2000-09-29 | 2003-10-07 | Oracle Corp. | System and method for providing fine-grained temporal database access |
US20030021230A1 (en) * | 2001-03-09 | 2003-01-30 | Petaswitch Solutions, Inc. | Switch fabric with bandwidth efficient flow control |
US6959002B2 (en) | 2001-05-01 | 2005-10-25 | Integrated Device Technology, Inc. | Traffic manager for network switch port |
US7170900B2 (en) * | 2001-07-13 | 2007-01-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for scheduling message processing |
US7151744B2 (en) * | 2001-09-21 | 2006-12-19 | Slt Logic Llc | Multi-service queuing method and apparatus that provides exhaustive arbitration, load balancing, and support for rapid port failover |
US7251219B2 (en) * | 2002-07-03 | 2007-07-31 | Intel Corporation | Method and apparatus to communicate flow control information in a duplex network processor system |
-
2004
- 2004-12-10 US US11/009,861 patent/US7554908B2/en active Active
-
2005
- 2005-12-09 CN CNA2005800424347A patent/CN101076982A/zh active Pending
- 2005-12-09 WO PCT/US2005/044750 patent/WO2006063298A1/en active Application Filing
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102981999A (zh) * | 2011-06-29 | 2013-03-20 | 美国博通公司 | 动态可配置无线数据总线开关 |
CN107431666A (zh) * | 2015-03-23 | 2017-12-01 | 思科技术公司 | 用于在数据中心网络环境中实现低时延的技术 |
CN107431666B (zh) * | 2015-03-23 | 2021-07-27 | 思科技术公司 | 用于在数据中心环境中实现低时延的方法、装置和介质 |
Also Published As
Publication number | Publication date |
---|---|
US7554908B2 (en) | 2009-06-30 |
WO2006063298A1 (en) | 2006-06-15 |
US20060126512A1 (en) | 2006-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101076982A (zh) | 用于管理流控制的技术 | |
US7843919B2 (en) | Ethernet virtualization using a network packet alteration | |
EP2647163B1 (en) | A method and system for improved multi-cell support on a single modem board | |
JP6188093B2 (ja) | 通信トラフィック処理アーキテクチャおよび方法 | |
CN102334112B (zh) | 用于虚拟机网络的方法和系统 | |
TWI451339B (zh) | 通信網路應用之無鎖及零拷貝發訊方法與設備 | |
TWI538453B (zh) | 網路介面控制器、積體電路微晶片、系統及方法 | |
US8635388B2 (en) | Method and system for an OS virtualization-aware network interface card | |
US20160191392A1 (en) | Data packet processing | |
CN1617526A (zh) | 在物理端口上模拟多个逻辑端口的方法和装置 | |
WO2020000489A1 (zh) | 一种pcie发送、接收方法及装置、设备和系统 | |
US7457845B2 (en) | Method and system for TCP/IP using generic buffers for non-posting TCP applications | |
JP2004534311A (ja) | 共有属性に基づいて圧縮キューペアから複数の仮想キューペアを作成する構成 | |
EP1346549B1 (en) | Intercommunication preprocessor | |
US7643502B2 (en) | Method and apparatus to perform frame coalescing | |
US8006006B2 (en) | System and method for aggregating transmit completion interrupts | |
US20090225665A1 (en) | Method, system, computer program product, and hardware product for ethernet virtualization using an elastic fifo memory to facilitate flow of unknown traffic to virtual hosts | |
CN102104487A (zh) | 一种消息处理方法及其设备 | |
CN1845526A (zh) | 一种分组公平调度方法及设备 | |
CN104901904A (zh) | 从pcie加速子卡到主机的数据传输方法及装置 | |
CN118301055A (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: 20071121 |