CN1681263A - 使用背压机制主动管理中心队列缓冲区分配的方法和系统 - Google Patents
使用背压机制主动管理中心队列缓冲区分配的方法和系统 Download PDFInfo
- Publication number
- CN1681263A CN1681263A CNA2005100633151A CN200510063315A CN1681263A CN 1681263 A CN1681263 A CN 1681263A CN A2005100633151 A CNA2005100633151 A CN A2005100633151A CN 200510063315 A CN200510063315 A CN 200510063315A CN 1681263 A CN1681263 A CN 1681263A
- Authority
- CN
- China
- Prior art keywords
- space
- port
- current
- tunnel
- allocation
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9057—Arrangements for supporting packet reassembly or resequencing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
- H04L49/9078—Intermediate storage in different physical parts of a node or terminal using an external memory or storage device
-
- 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
- H04L49/3036—Shared queuing
-
- 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
- H04L49/3045—Virtual queuing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/50—Overload detection or protection within a single switching element
- H04L49/505—Corrective measures
- H04L49/506—Backpressure
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种用于数据传输网络的交换节点的包流控制方法、系统和程序产品。该方法包括根据交换节点的中心队列中当前可用的未使用空间的数量及端口的存储设备中当前空闲的存储空间的数量,主动管理该中心队列中分派给该交换节点的端口的空间分配。在进一步的方面,该方法包括分别跟踪未分配空间和空出的已分配空间,即已用于缓冲端口所接收的包、但自从上次管理更新以来由于从中心队列中移除了一个包而空出的空间。每个端口都被提供了空出的当前分配给该端口的空间和一定数量的、中心队列中当前未分配的空间,以分配给该端口的一个或多个虚拟通道。
Description
技术领域
本发明一般涉及通过数据传输网络交换节点的包流(packet flow)控制,尤其涉及通过根据节点的中心队列中当前可用的未使用空间数量主动管理分派给交换节点端口的、中心队列中的空间分配,而便利于包流的技术。
背景技术
用于数据通信(或传输)网络的传统交换节点使用在其输入端口处或其输出端口处的专用缓冲区。这些专用缓冲区将这些端口连接到交换逻辑并便利了通过数据通信网络传输的数据包的流控制,其中该交换逻辑将由输入端口接收的数据包引导到适当的输出端口。数据传输网络中的常见数据通信流模式常导致网络交换节点端口处的极其不同的通信流量,并且这些不同的通信流量通常随着时间而变化。因此,专用于网络交换节点中各个端口的缓冲区的使用常常不能很好地与数据通信流量特性相匹配。在繁忙的端口中可能出现输入端口阻塞,因为当缓冲区的队列前面的数据包等待被交换到繁忙的输出端口时它的缓冲区容量已满。同时,仅接收少量通信流的其他端口的缓冲区具有不能被利用的可用空闲空间。
发明内容
通过提供用于数据传输网络的交换节点的包流控制的方法克服了先有技术的缺点并提供了其他的优点。该方法包括主动管理分派给交换节点的各端口的、该交换节点的中心队列中的空间分配。该中心队列中空间分配的主动管理基于中心队列中当前可用的未使用空间的数量和端口的存储设备中当前空闲的存储空间的数量。
管理中心队列中空间分配的该技术的进一步的方面包括分别跟踪当前未分配的未使用空间,和分配给该交换节点的端口、但由于包从中心队列中被传输到输出端口而空出的未使用空间。向每个端口(例如,接近于周期性地)提供空出的当前分配给它的空间和中心队列中一定数量的当前未分配的空间。对在中心队列中向端口的空间分配进行主动管理的又一方面包括动态地向端口的一个或多个虚拟通道(virtual lane)分配提供给该端口的那些未使用空间量。
这里还描述并要求保护对应于上述方法的系统和计算机程序产品。
通过本发明的技术实现了其他的特征和优点。下面详细描述了本发明的其他实施例和方面,且这些均被认为是所要求保护的本发明的一部分。
附图说明
在本说明书后面的权利要求中具体指出并清楚地要求保护了本发明的主题。从以下结合附图的详细描述中可清楚地了解本发明的上述及其他目的、特征和优点,其中:
图1示出了根据本发明一个方面的采用包流控制的数据传输网络的交换节点的一个实施例;
图2是根据本发明一个方面的用于管理对数据传输网络的交换节点的端口的中心队列缓冲区分配的技术的一个方面的流程图;
图3A和图3B示出了根据本发明一个方面的用于管理对交换节点的端口的中心队列缓冲区分配的技术的另一方面的流程图,其中分派给端口的、中心队列中的空间被进一步分配给该端口的虚拟通道;
图4示出了根据本发明一个方面的用于图1的交换节点实施例的端口控制逻辑的一个实施例;
图5示出了根据本发明一个方面的用于图4的端口控制逻辑实施例的虚拟通道计算器的一个实施例;及
图6示出了根据本发明一个方面的图5的运算逻辑的一个实施例的流程图。
具体实施方式
总的来说,这里描述的是用于数据传输网络的交换节点的包流控制技术。在一个方面,该技术主动地和动态地管理一交换节点的中心队列中的空间分配,这些空间是给予该交换节点的各端口以用于包缓冲的。这一中心队列中空间分配的主动和动态管理是基于该中心队列中当前可用的未使用空间数量。在另一方面,该技术包括在一端口的一个或多个虚拟通道之间分派给予该端口的空间分配。中心队列中的空间以n字节块(也称作“块”(chunk))来分配。每个块由一个信用(credit)来代表。根据分派给一个端口的虚拟通道的中心队列空间数量,该端口可以向链路的发送端授予相应数量的信用以进行流控制。
下面参照图1描述根据本发明的一方面,采用了包流控制的数据传输网络的交换节点的一个实施例。交换节点的该实施例包括连接到中心队列140的多个输入端口(110、120和130)和同样连接到中心队列140的多个输出端口(160、170和180)。图1中示出的交换节点实施例还包括中心队列控制逻辑150。中心队列控制逻辑150连接到中心队列140,输入端口110、120和130以及输出端口160、170和180。
输入端口110通过接收器和链路协议引擎单元112连接到通信链路。接收器和链路协议引擎单元112连接到先进先出(FIFO)寄存器114和端口控制逻辑116。输入端口110的FIFO寄存器114连接到中心队列140。输入端口120和130也是同样设置的。
输出端口160的FIFO寄存器162连接到中心队列140及输出端口160的发射器和链路协议引擎单元164。发射器和链路协议引擎单元164转而连接到端口控制逻辑166和通信链路。输出端口170和180也是同样设置的。
下列的讨论概述了通过图1中所示的交换节点实施例100的数据包流和该交换节点的各组成部分的交互作用。作为例子,假设通过交换节点100的数据包流,其中数据包由输入端口110接收并最后通过输出端口160输出。在数据包由接收器和链路协议引擎单元112接收之后,它被放置到FIFO寄存器114中。从FIFO寄存器114,包被缓冲在中心队列140中。端口控制逻辑116将被指派了该包的虚拟通道可用的空间减少等于该包大小的量。端口根据包的属性(例如该包的服务级别字段)和服务级别到虚拟通道映射表来确定该包的虚拟通道。
当目的输出端口不忙于传输另一包时,缓冲于中心队列140中的包可被传输到输出端口160的FIFO寄存器162。数据包由发射器和链路协议引擎单元164从FIFO寄存器162中读出,以便通过链路传输。在准备传输中将接收到的包从中心队列140传递给FIFO寄存器162使分配给一端口的虚拟通道的空间空出。这一空出的空间被中心队列控制逻辑150返还给从其接收到该包的端口的虚拟通道,以便维护中心队列140中为所有这多个端口的空间分配。
此外,根据中心队列140中可用的未使用空间数量,来主动管理中心队列140中对该交换节点的端口的空间分配。中心队列140中的未使用空间包括当前未分配给该交换节点的任何端口的空间和空出的已分配空间,即当前分配给一端口的一虚拟通道并已用于缓冲一接收到的包,但因为该包被传递给一输出端口的FIFO寄存器而空出的空间。空出的已分配空间也可以由于输入端口丢弃已接收的包而产生。
在用于主动管理中心队列140中对交换节点的端口的空间分配的技术的一个实施例中,该管理分布于中心队列控制逻辑150和多个端口的端口控制逻辑之中。图2是根据本发明的一方面,用于将中心队列中的空间分配给图1中示出的交换节点实施例的端口的中心队列控制逻辑的一个实施例的流程图200。参照图2,将在空间分配管理中使用的几个参数初始化210以开始该过程。这些包括:SharedCredits,其是以信用为单位度量的、中心队列中可用的未分配空间数量,OfferRC,其是以信用为单位度量的空出的已分配空间数量,及MaxOffer,其是中心队列中可用的、在每个管理间隔可由图1的中心队列控制逻辑150提供给一端口的未分配空间的最大数量。
在参数的初始化之后,使用规定的规则选出一个端口以向其提供信用,即未使用空间的数量212,来开始主动中心队列空间分配管理。这种规定的规则的一个例子是大约周期性地轮流选择每个端口,以使中心队列空间在该交换节点的各端口之间公平分配。中心队列控制逻辑分别跟踪空出的为每个端口的虚拟通道分配的空间数量,及在中心队列中当前可用的未分配空间的数量。
如图2的流程图所指出的,中心队列中的这两类未使用空间是以不同方式分配的。计数器表OfferRC包括用于每个虚拟通道的计数器。用于所选择的端口的每个虚拟通道的计数器被设置为等于与指派给相关虚拟通道的所有空出的已分配空间相应的、中心队列中的空间数量220。计数器变量SharedCredits用于跟踪中心队列中当前可用的未分配空间数量。如果计数器变量SharedCredits的检验指出在中心队列中存在未分配空间230,则通过设置变量OfferSC等于MaxOffer和SharedCredits这两个空间数量中较小的那一个,将该中心队列中最高达到由参数MaxOffer规定的数量的未分配的空间数量分配给所选择的端口232、233和234。分配给所选择的端口的空间数量也要从中心队列中当前可用的未分配空间数量中减除233和234。计数器表OfferRC和变量OfferSC的值所代表的未使用空间数量被提供给选定端口240。在中心队列控制逻辑的空间管理过程返回到过程循环的开始处212之前,将每个端口所返回的、代表先前所分配的中心队列空间数量的信用数量添加到中心队列中未分配空间的池中250。
如上面所讨论的,中心队列中的两类未使用空间—空出的已分配空间和未分配空间—被分别跟踪并以不同方式分配。这样做的原因如下。一方面,空出的已分配空间是由中心队列控制逻辑提供给它当前被分配的端口的虚拟通道以确保每个虚拟通道得到指定的最小数量的缓冲空间,从而防止那些虚拟通道由于繁重的通信流以及其他虚拟通道所遭受的阻塞问题而阻塞。另一方面,所提供的共享信用公平地提供给所有端口,以在需要时动态地将共享中心队列中的附加缓冲空间提供给各端口及它们各自的虚拟通道,从而将随时间变化的通信流提供给该交换节点的端口。
下面参照图3A和3B所示的流程图描述根据本发明一个方面、用于主动管理在一节点的中心队列中对该交换节点的各端口的空间分配的技术的其他方面。这一流程图示出了用于将中心队列中的空间(其已被提供给一端口)分配给图1所示的交换节点实施例的输入端口的虚拟通道的技术的一个实施例。参照图3A,初始化在分配提供给一端口的空间中所使用的几个变量来开始该过程310。这些变量包括下面用于每个虚拟通道的变量:CurrentCredit(VL),其计数在对该虚拟通道的分配中当前可用(未使用)的空间数量;DesiredCredit(VL),其代表端口控制逻辑试图协同中心队列控制逻辑为该虚拟通道维护的、中心队列中未使用的缓冲空间的目标数量;及DebtCredit(VL),其代表该虚拟通道已从中心队列中可用的未分配空间的池中借出(但还未返还)的、中心队列中的缓冲空间数量。最初,将DebtCredit(VL)设为等于-DesiredCredit(VL)。DebtCredit(VL)的负值表明该虚拟通道被欠了中心队列中的空间。
初始化之后,选择该端口的当前对中心队列中的缓冲空间处于最大需求中的虚拟通道(VL)312,来开始用于该些虚拟通道的空间分配技术的重复循环。在一个例子中,对中心队列中的空间处于最大需求中的VL被确定为具有在DesiredCredit(VL)和CurrentCredit(VL)之间的最大差值的虚拟通道。在图3A和3B所示的流程图中,中心队列中的缓冲空间是以称作“信用”的单位来度量和跟踪的。
一旦选出了虚拟通道312,则该虚拟通道空间分配技术的重复循环中剩余步骤涉及跟踪对空间分配和使用的各种度量以及针对所选择的VL的空间分配决策。首先,检验DebtCredit(VL)以确定所选择的虚拟通道是否被欠了中心队列中的任何空间320。在一个实施例中,当DebtCredit的值为负时,该虚拟通道被欠了信用。如果所选择的VL被欠了任何信用,则将OfferRC(VL)与(DesiredCredit(VL)-CurrentCredit(VL))进行比较321,其中(DesiredCredit(VL)-CurrentCredit(VL))是对该虚拟通道VL的、中心队列中未使用缓冲空间的目标数量与分配给该虚拟通道的未使用空间的当前数量之间的差值。如果OfferRC(VL)小于或等于(DesiredCredit(VL)-CurrentCredit(VL)),则为该所选择的VL而提供给该端口的所有OfferRC信用均分配给该虚拟通道322。相反,如果OfferRC(VL)大于(DesiredCredit(VL)-CurrentCredit(VL)),则端口控制逻辑只为所选择的虚拟通道保留足够的OfferRC(VL)信用,以使所选择的虚拟通道的中心队列分配中当前的未使用空间数量(CurrentCredit(VL))增加到目标量(DesiredCredit(VL))。在这种情况下,通过将变量CQ_CreditReturn设为等于剩余的OfferRC(VL)信用的数量323,将剩余的OfferRC(VL)信用,即OfferRC(VL)-(DesiredCredit(VL)-CurrentCredit(VL)),返还到中心队列中未分配空间的池中。如先前参照图2所讨论过的,由中心队列控制逻辑为一特定虚拟通道而提供给一端口的OfferRC信用相当于当前分派给该端口的该虚拟通道的、中心队列中空出的已分配空间的数量。
如果所选择的虚拟通道未被欠任何信用,则继续进行端口控制逻辑的分配处理,以确定将多少为所选择的虚拟通道而提供给该端口的空出的中心队列中的已分配空间(即用于该选定虚拟通道的OfferRC信用)分配给所选择的VL,以及所确定的分配给所选择的VL的空间是如何利用的。为了简化上述讨论,将为了一虚拟通道而提供给一端口的空出的中心队列中的已分配空间称作折扣空间或折扣信用,且OfferRC(VL)将代表表OfferRC中用于所选择的虚拟通道的计数器。如果折扣空间超过了所选择的虚拟通道的当前中心队列空间债务330,则通过将对应于所借出的中心队列空间当前差额的数量的信用返还到中心队列中未分配空间的池中,来首先使用折扣信用来消除该VL的债务。在一个例子中,将变量CQ_CreditReturn设为DebtCredit(VL)以实现满足当前的空间债务332。而且,将DebtCredit(VL)设为等于0以表明该虚拟通道不再有债务332。
在满足了所选择的VL的空间债务之后,该逻辑判定所剩折扣信用,即那些未用于满足空间债务的折扣信用的数量是否超过了为使在该VL的分配中当前可用(未使用)的空间数量增加到所期望数量而所需的数量334。如果是,则将为使在该VL的分配中可用的中心队列中空间的数量增加到所期望数量而需要的剩余折扣信用分配给所选择的虚拟通道336。通过将超出的信用增加到CQ_CreditReturn中,将超过需要数量的剩余折扣信用数量返还到中心队列中未分配空间的池中336。如果检验334是负值,则将所有提供的折扣信用分配给所选择的虚拟通道335。在这两种情况中的任一种情况下,适当增加变量CurrentCredit(VL)中保持的计数,以反映在该VL分配中当前可用空间的增加(334和335)。
然而,如果折扣空间未超过所选择的虚拟通道的当前中心队列空间债务330,则将提供给该端口的所有折扣信用均返还到中心队列中未分配空间的池中,以减少所选择的虚拟通道的空间债务331。在一个例子中,通过将变量CQ_CreditReturn设为OfferRC(VL)并从空间债务计数器变量DebtCredit(VL)中减去OfferRC(VL)信用,来实现这一空间债务减少。
在分配了为所选择的虚拟通道而提供给该端口的任何折扣空间之后,该空间分配的管理继续从中心队列中未分配空间的池中分配提供给该端口的一定数量的空间。这一提供的空间数量由变量OfferSC的值来表示。为了简化下面的讨论,从中心队列中未分配空间的池中提供给该端口的空间数量也被称作提供的共享信用。在该端口的各虚拟通道之间分配所提供的共享信用是通过判定是否已向该端口提供了任何共享信用来开始的340。如果没有,则处理返回到循环的开始,以选择当前处于对信用的最大需求中的虚拟通道(图3A的312)。如果从中心队列中未分配空间的池中已向该端口分配了一定数量的空间,则检验OfferSC以判定所提供的共享信用是否超过了如下所需的信用数量,即将所选择的虚拟通道在其中心队列分配中可用的空间增加到它的目标水平所需的信用数量342。如果它没有超过,则将所有所提供的共享信用都分配给所选择的虚拟通道的、中心队列中的空间分配344;将所选择的VL的债务增加所提供的共享信用的数量344;并且处理继续进行,选择当前具有对中心队列中的空间的最大需求的虚拟通道,图3A中的312。
另一方面,如果所提供的共享信用超过了如下所需的信用数量,即将所选择的虚拟通道在其中心队列分配中的可用空间增加到它的目标水平所需的信用数量,则将为提高该虚拟通道在中心队列中的可用空间到目标数量而所需数量的所提供的共享信用分配给所选择的虚拟通道的、中心队列中的空间分配346;将所选择的VL的债务增加如此分配给该VL的所提供的共享信用的数量;将超过为将VL在中心队列中可用的信用增加到目标数量所需的剩余的所提供的共享信用返还到中心队列的可用未分配空间的池中346;并且处理继续进行,选择当前对中心队列中的空间具有最大需求的虚拟通道,图3A中的312。
应该指出,因为DesiredCredit(VL)是确定哪一个虚拟通道具有对信用的最大需求的检验312中的一个因素,并还会影响在用于分配中心队列中提供给一交换节点的一端口的空间的该技术中的每一遍重复循环时分配给所选择的虚拟通道多少所提供的共享信用的数量(342、344和346),所以通过简单改变DesiredCredit(VL)参数的值来动态地改变对一端口的虚拟通道的中心队列空间分配而不必重新初始化该交换节点是可能的。
下面参照图4描述根据本发明的一方面、用于图1的交换节点实施例的端口控制逻辑116(也称作端口信用管理器)的一个实施例。作为举例,图4的实施例将端口的资源划分为四个虚拟通道,由标号0、1、2和3来标明。端口控制逻辑116接收几个信号,它使用这几个信号来管理一端口在图1的中心队列140中的空间分配,并在多个虚拟通道之间分配指派给该端口的空间。这些输入信号包括DesiredCredit(0:1)(0:11)、CQ_Grant_Credit、IP_Decr_Credit(0:3)、OP_Rebate_Credit(0:1)(0:1)、及IP_Incr_Credit(0:3)。在大多数情况下,第一组标号指VL,第二组是大小。信号DesiredCredit表明在中心队列中为每个虚拟通道维护的可用(即未使用)缓冲空间的目标数量。CQ_Grant_Credit是中心队列中当前提供给该端口的未分配空间的数量(即图2的OfferSC)。信号组IP_Decr_Credit(0:3)指示自从上次更新以来用于缓冲该端口为每个虚拟通道所接收的包的空间数量,因此这一数量必须从中心队列中该虚拟通道的可用空间分配中扣除。OP_Rebate_Credit指示由于自从上次更新以来由该端口先前接收的并缓冲在中心队列中的一个或多个包从中心队列中被传送到输出端口,而作为折扣提供给该端口的VL的、中心队列中的空间数量(即图2的OfferRC)。IP_Incr_Credit指示由于该输入端口先前接收的一个或多个包被该端口自身根据该数据传输网络所使用的协议所丢弃,而作为折扣提供给该端口的、中心队列中的空间数量。
信号CQ_Grant_Credit、IP_Decr_Credit(0:3)、OP_Rebate_Credit(0:1)(0:1)和IP_Incr_Credit(0:3)被虚拟通道解码器逻辑410传递给虚拟通道信用计算器420、421、422和423。具体地,虚拟通道解码器逻辑410分别将由标号0、1、2和3标明的、信号IP_Decr_Credit(0:3)、IP_Incr_Credit(0:3)和OP_Rebate_Credit的组成部分传递给相关的虚拟通道信用计算器420、421、422和423。另一方面,信号CQ_Grant_Credit由多路分解器411经由虚拟通道解码器逻辑410传递给这些VL信用计算器中的一个,以响应由判优器逻辑430产生的信号Next_VL。而且,与每个虚拟通道相关的DesiredCredit信号组成部分被提供给相应的VL信用计算器,且所有VL信用计算器接收由调整逻辑450产生的Allow_Credit信号。信号Allow_Credit是一背压(backpressure)机制,其发送给所有虚拟通道计算器以阻止端口的FIFO寄存器溢出,这在下面将会详细描述。
虚拟通道信用计算器420、421、422和423将信号NeedCredit(0)、NeedCredit(1)、NeedCredit(2)、NeedCredit(3)分别提供给判优器逻辑430。NeedCredit信号指示该端口的虚拟通道的附加中心队列空间需求。判优器逻辑430将挑出具有对信用的最大需求的虚拟通道(即具有最大的NeedCredit值的虚拟通道)。这些虚拟通道信用计算器还产生CurrentCredit和CQ_CreditReturn信号。CurrentCredit表示当前分配给一虚拟通道的、中心队列中可用的未使用空间的当前数量。CQ_CreditReturn表示一虚拟通道返还到未分配中心队列空间的池中的空间数量。每当输入端口在一指定虚拟通道上接收到包时,该虚拟通道的VL信用计算器将该虚拟通道的CurrentCredit计数减去由IP_Decr_Credit所指示的空间数量。用于每个虚拟通道的OP_Rebate_Credit和IP_Incr_Credit的值被引导到它们各自的信用计算器以确定是否允许增加用于一虚拟通道的CurrentCredit,或这些信用是否应经由CQ_CreditReturn环路上的Return_Credit_Out信号返还给中心队列(图1的152)。
加法器逻辑460将返还到中心队列的未分配空间的池中的空间(CQ_CreditReturn)与其他端口返还的信用(Return_Credit_In)相加。其和(Return_Credit_Out)被放置在图1的信用返还环路152上。用于每个虚拟通道的CurrentCredit信号被提供给该端口的接收器和链路协议引擎单元,例如图1中输入端口110的接收器和链路协议引擎单元112。此外,求和逻辑440为该端口计算所有虚拟通道的CurrentCredit的和,以产生TotalCurrentCredit信号,该信号被输入到调整逻辑450。其他输入到调整逻辑450的信号包括:FifoRoom和CSF。FifoRoom信号表示该端口的输入FIFO114中未使用空间的数量。CSF(信用调整因子)信号引入调整以补偿到达该输入端口的带宽与输入端口和中心队列之间的带宽的差。
调整逻辑450是对端口控制逻辑116的增强,其在输入端口带宽超过了输入端口与中心队列之间的带宽的情况下提供背压机制。在一个例子中,信用调整因子按下式计算:
CSF=BWRLPE/(BWRLPE-BWCQ)
其中BWRLPE是到该输入端口的带宽,及
BWCQ是从该输入端口到中心队列的带宽。
调整逻辑只有在下面的公式满足时才发出Allow_Credit信号:
(CSF)(FifoRoom)>TotalCurrentCredit
其中FifoRoom是输入端口的输入FIFO中未使用的信用数。
当Allow_Credit未发出时,输入端口将不会接受任何通过IP_Incr_Credit、OP_Rebate_Credit或CQ_Grant_Credit信号以CurrentCredit形式提供的信用,直到FifoRoom增加到足够大(即输入端口的输入FIFO空出足够多)以满足上述条件时。如果这一条件不满足,则信用将只被用于减少由DebtCredit(VL)指示的、所选择的虚拟通道的空间债务。如果DebtCredit是0,同时Allow_Credit也是0(即未发出),且信用被返还给该端口,则该输入端口将所返还的信用返还给中心队列并允许它的DebtCredit变为负值,从而实现对中心队列的“借出”,直到该输入端口的输入FIFO可以空出为止。
下面参照图5描述根据本发明的一方面、显示于图4的端口控制逻辑实施例中的虚拟通道信用计算器的一个实施例。在这一实施例中,虚拟通道信用计算器在收集高速缓存553中收集通过IP_Incr_Credit和OP_Rebate_Credit返回的信用,以及在收集高速缓存552中收集通过CQ_Grant_Credit返回的信用552。收集高速缓存552和553只是对在一小时间间隔内返回的若干信用进行累加的加法器,其中该时间间隔等于VL信用计算器进行更新所花费的时间。在该更新间隔期间内一特定VL的、来自IP_Incr_Credit和OP_Rebate_Credit的信用总和被高速缓存553存储在OferRC中,而在该更新间隔期间内来自CQ_Grant_Credit的信用总和被存储在高速缓存552中。信号OfferRC、OfferSC、Allow_Credit、DesiredCredit、CurrentCredit、NeedCredit、及DebtCredit都馈送给运算逻辑590,该运算逻辑计算在DebtCredit(dDebt)和CurrentCredit(dCurrent)中必要的变化数量。运算逻辑590还确定返还给中心队列多少剩余的信用(如由CQ_CreditReturn信号指示的)。
加法器逻辑530和减法逻辑520按下述方式来计算DebtCredit的当前值。加法器逻辑530将VL的空间债务中的变化dDebt与DebtCredit的先前值相加。信号dDebt由运算逻辑590提供。然后,将从加法器逻辑530得出的该和作为输入提供给减法逻辑520。减法逻辑520计算加法器530的输出与信号dDebt之间的差,该信号dDebt是减法逻辑510的输出且表示该虚拟通道在一管理更新间隔内的目标空间水平的变化。减法逻辑520计算出的DebtCredit的值作为反馈输入提供给运算逻辑590和加法器逻辑530。
按照下述方式来计算CurrentCredit的当前值,即在中心队列中该虚拟通道的空间分配中当前可用的空间。运算逻辑590向加法器逻辑560提供作为输入的dCurrent,这是指示自从上次管理更新以来在中心队列中该VL的分配中可用空间的变化的信号。对加法器逻辑560的另一输入是CurrentCredit的先前值。CurrentCredit的先前值是减法逻辑570的输出,它是经由寄存器反馈回来的。减法逻辑570将加法器逻辑560的输出减去IP_Decr_Credit信号的值,以产生CurrentCredit信号。如前面所讨论的,IP_Decr_Credit信号指示自从上次管理更新以来为了存储所接收的包而消耗掉的该虚拟通道的中心队列空间分配的数量。
虚拟通道信用计算器的这一实施例通过将输入信号DesiredCredit和输出信号CurrentCredit作为输入提供给减法逻辑580,来计算输出信号NeededCredit。减法逻辑580通过计算(DesiredCredit-CurrentCredit)的差来计算NeededCredit。输出信号NeededCredit还作为反馈经由寄存器提供给运算逻辑590。
在一个例子中,根据前面参照图3A和3B所示出而在图6中更详细显示的流程图所描述的用于向一端口的虚拟通道分配空间的技术,运算逻辑590计算信号dDebt、dCurrent和CQ_CreditReturn。图6中描述的计算在硬件中执行,在该硬件中所有四个虚拟通道信用值是并行处理的。
返回到图5,信号dDesired表示一虚拟通道的DesiredCredit数量的变化。如果DesiredCredit增加(向一输入端口的一VL分配更多中心队列中的空间),则减法器520实现DebtCredit的立即减小。这使得该VL能够从中心队列中接受更多的保留空间。如果DesiredCredit减少(减少中心队列中VL的空间分配),则减法器520实现DebtCredit的立即增加,且虚拟通道计算器将开始通过CQ_CreditReturn返还信用以试图使该VL所使用的空间数量达到它的当前空间分配。
当DesiredCredit被设为0且该虚拟通道或端口禁用时,发出提供给高速缓存553的LinkState信号。它将使得等于CurrentCredit信号的值的信用的数量作为OfferRC和IP_Decr_Credit两者被发出,从而使得信用计算器将CurrentCredit转换为CQ_CreditReturn信用并有效地将该端口的这一虚拟通道的保留信用返还给中心队列。
可以根据正由一个端口使用的VL的数量、该端口的最大传输单元(MTU)大小、及所需的性能水平来不同地设置对于每个虚拟通道的中心队列中缓冲空间的期望数量。根据本发明的包流控制技术允许在端口处于操作中时动态改变所期望的信用数量。这样,可以在通信流条件改变或在端口激活/去活时增加或降低输入端口试图为它的虚拟通道维护的缓冲空间的数量,而不必复位交换机。
图6显示了根据本发明一个方面的、图5的运算逻辑590的一个实施例的流程图。根据通过构成运算逻辑590的判定逻辑所采取的路径,向变量dDebt、dCurrent和CQ_CreditReturn指定值660。该处理以判断Allow_Credit是否等于1(610)来开始。如果Allow_Credit不等于1,该处理前进到变量值的计算和指定660。如果Allow_Credit等于1,则将信号OfferRC与债务阈值D进行比较620,其中如果DebtCredit大于0则D等于DebtCredit,而如果DebtCredit小于或等于0则D具有0值。如果OfferRC大于或等于债务阈值D,则处理继续将NeededCredit信号与值(OfferRC-D)进行比较630;相反,如果OfferRC小于D,则运算逻辑590的判定逻辑判断OfferSC是否大于或等于NeedCredit650。指派给变量dDebt、dCurrent和CQ_CreditReturn的值660依赖于从OfferSC和NeedCredit的比较而产生的分支。
在运算逻辑590的处理的另一分支之后,如果NeedCredit小于或等于(OfferRC-D)630,则该处理被引导到变量值的计算和指定660,如图6所示;否则,该处理继续,将输入信号OfferSC与值(NeedCredit-(OfferRC-D))进行比较640。从OfferSC信号的这一比较640,处理根据从如图6中所示的比较而采取的输出分支,前进到变量值的计算和指派660。
本发明可包括在具有例如计算机可使用介质的制造物品(例如,一个或多个计算机程序产品)中。该介质具有在其中的提供或有助于本发明的能力的例如计算机可读程序代码手段或逻辑(例如,指令、代码、命令等)。该制造物品可以作为一部分包括在计算机系统中或单独销售。
此外,可提供至少一个可由机器读取的程序存储设备,该设备包含了至少一个可由机器执行以实现本发明的能力的指令程序。
这里表示的流程图只是示例性的。可存在对这些图或这里描述的步骤(或操作)的许多改变,而不脱离本发明的精神。例如,可以以不同的顺序执行这些步骤,或者添加、删除或更改这些步骤。所有这些变化都被认为是要求保护的本发明的一部分。
虽然这里详细地表示和描述了优选实施例,但对于相关领域的技术人员来说显而易见地,可以作出各种修改、添加、替换等而不脱离本发明的精神,因此这些都被认为处于所附权利要求定义的本发明的范围中。
Claims (32)
1.一种用于数据传输网络的交换节点的包流控制方法,所述方法包括:
为数据传输网络的交换节点的多个端口主动管理中心队列中的空间分配,其中该主动管理基于中心队列中当前未使用空间的数量;以及
其中该主动管理包括根据该多个端口中一个端口的存储设备中当前空闲的存储空间数量,判定该端口是否接受所提供的空间以由该端口用于缓冲所接收的数据包,该所提供的空间包括一定数量的、中心队列中当前未使用的空间。
2.权利要求1的方法,其中所述判定进一步包括:
(i)计算用于该端口的当前信用总数,其中该当前信用总数定义为中心队列中对于该端口的空间分配与当前用于缓冲所接收的数据包的空间分配数量之间的差;
(ii)将当前信用总数与该端口的存储设备中当前空闲的存储空间的数量进行比较;
(iii)如果该端口的存储设备中当前空闲的存储空间的数量大于当前信用总数,则接受所提供的空间;以及
(iv)如果该端口的存储设备中当前空闲的存储空间的数量小于当前信用总数,则拒绝所提供的空间。
3.权利要求1的方法,其中所述判定进一步包括:
将该端口的存储设备中当前空闲的存储空间的数量乘以调整因子,其中该调整因子用于解决在该端口的输入处的第一带宽与该端口和中心队列之间的第二带宽之间的差。
4.权利要求3的方法,其中所述乘步骤产生调整后的空闲端口存储空间的度量,且所述判定进一步包括:
(i)计算用于该端口的当前信用总数,其中该当前信用总数被定义为中心队列中对于该端口的空间分配与当前用于缓冲所接收的数据包的空间分配数量之间的差;
(ii)将当前信用总数与调整后的空闲端口存储空间的度量进行比较;
(iii)如果调整后的空闲端口存储空间的度量大于当前信用总数,则接受所提供的空间;以及
(iv)如果调整后的空闲端口存储空间的度量小于当前信用总数,则拒绝所提供的空间。
5.权利要求4的方法,其中该调整因子被设为基本上等于由该端口每单位时间接收的数据中由于第一带宽和第二带宽之间的差而导致的将保留在该端口的存储设备中超过该单位时间的时间段的部分的比例的倒数。
6.权利要求4的方法,其中所述方法进一步包括:
如果作为上述判定的结果而接受所提供的空间,则由端口信用管理器根据该端口的至少一个虚拟通道的空间需求向该至少一个虚拟通道分配所提供的空间。
7.权利要求4的方法,其中:
所述方法进一步包括计算中心队列中分派给该端口的各虚拟通道的空间分配中剩余的未使用空间的数量,其中中心队列中分派给该端口的一虚拟通道的空间分配中剩余的未使用空间的数量包括分派给该虚拟通道,但当前未用于存储所接收的数据包的数量;以及
所述计算进一步包括对中心队列中分派给该端口的各虚拟通道的空间分配中剩余的未使用空间的数量进行求和。
8.权利要求1的方法,其中所述主动管理进一步包括:
如果所述判定结果为拒绝所提供的空间,则将所提供的空间返还给中心队列作为返还空间;以及
将该返还的空间添加到中心队列中当前未使用空间的数量中。
9.权利要求8的方法,其中:
所述返还空间包括空出的、中心队列中当前指派给该端口的虚拟通道的已分配空间;以及
所述主动管理进一步包括从该虚拟通道的当前空间债务中扣除代表包括在该返还空间中的空出的已分配空间的数量,其中该虚拟通道的当前空间债务包括中心队列中分派给该虚拟通道的空间分配超过目标分配的空间数量。
10.一种用于数据传输网络的交换节点的包流控制系统,所述系统包括:
用于为数据传输网络的交换节点的多个端口主动管理中心队列中的空间分配的装置,其中该主动管理基于中心队列中当前未使用空间的数量;以及
其中该用于主动管理的装置包括用于根据该多个端口中一个端口的存储设备中当前空闲的存储空间数量,判定该端口是否接受所提供的空间以由该端口用于缓冲所接收数据包的装置,该所提供的空间包括一定数量的、中心队列中当前未使用的空间。
11.权利要求10的系统,其中所述用于判定的装置进一步包括:
(i)用于计算用于该端口的当前信用总数的装置,其中该当前信用总数定义为中心队列中对于该端口的空间分配与当前用于缓冲所接收的数据包的空间分配数量之间的差;
(ii)用于将当前信用总数与该端口的存储设备中当前空闲的存储空间的数量进行比较的装置;
(iii)用于如果该端口的存储设备中当前空闲的存储空间的数量大于当前信用总数,则接受所提供的空间的装置;以及
(iv)用于如果该端口的存储设备中当前空闲的存储空间的数量小于当前信用总数,则拒绝所提供的空间的装置。
12.权利要求10的系统,其中所述用于判定的装置进一步包括:
用于将该端口的存储设备中当前空闲的存储空间的数量乘以调整因子的装置,其中该调整因子用于解决在该端口的输入处的第一带宽与该端口和中心队列之间的第二带宽之间的差。
13.权利要求12的系统,其中所述用于乘的装置产生调整后的空闲端口存储空间的度量,且所述用于判定的装置进一步包括:
(i)用于计算用于该端口的当前信用总数的装置,其中该当前信用总数被定义为中心队列中对于该端口的空间分配与当前用于缓冲所接收的数据包的空间分配数量之间的差;
(ii)用于将当前信用总数与调整后的空闲端口存储空间的度量进行比较的装置;
(iii)用于如果调整后的空闲端口存储空间的度量大于当前信用总数,则接受所提供的空间的装置;以及
(iv)用于如果调整后的空闲端口存储空间的度量小于当前信用总数,则拒绝所提供的空间的装置。
14.权利要求13的系统,其中该调整因子被设为基本上等于由该端口每单位时间接收的数据中由于第一带宽和第二带宽之间的差而导致的将保留在该端口的存储设备中超过该单位时间的时间段的部分的比例的倒数。
15.权利要求13的系统,其中所述系统进一步包括:
用于如果作为上述判定的结果而接受所提供的空间,则由端口信用管理器根据该端口的至少一个虚拟通道的空间需求向该至少一个虚拟通道分配所提供的空间的装置。
16.权利要求13的系统,其中:
所述系统进一步包括用于计算中心队列中分派给该端口的各虚拟通道的空间分配中剩余的未使用空间的数量的装置,其中中心队列中分派给该端口的一虚拟通道的空间分配中剩余的未使用空间的数量包括分派给该虚拟通道,但当前未用于存储所接收的数据包的数量;以及
所述用于计算的装置进一步包括用于对中心队列中分派给该端口各该虚拟通道的空间分配中剩余的未使用空间的数量进行求和的装置。
17.权利要求10的系统,其中所述用于主动管理的装置进一步包括:
用于如果所述判定结果为拒绝所提供的空间,则将所提供的空间返还给中心队列作为返还空间的装置;以及
用于将该返还的空间添加到中心队列中当前未使用空间的数量中的装置。
18.权利要求17的系统,其中
所述返还空间包括空出的、中心队列中当前指派给该端口的虚拟通道的已分配空间;以及
所述用于主动管理的装置进一步包括用于从该虚拟通道的当前空间债务中扣除代表包括在该返还空间中的空出的已分配空间的数量的装置,其中该虚拟通道的当前空间债务包括中心队列中分派给该虚拟通道的空间分配超过目标分配的空间数量。
19.一种用于数据传输网络的交换节点的队列管理器,所述队列管理器包括:
用于交换节点的中心队列控制逻辑,用于跟踪该交换节点的中心队列中当前未使用空间的数量,并向该交换节点的多个端口提供一定数量的未使用空间;以及
端口信用管理器,用于根据该多个端口中一个端口的存储设备中当前空闲的存储空间数量,判定该端口是否接受所提供的空间以由该端口用于缓冲所接收的数据包,该所提供的空间包括一定数量的由所述中心队列控制逻辑提供的、中心队列中未使用的空间,且如果所提供的空间被接受,则将该所提供的空间分配给该端口的至少一个虚拟通道。
20.权利要求19的队列管理器,其中所述由端口信用管理器进行的判定进一步包括:
将该端口的存储设备中当前空闲的存储空间的数量乘以调整因子,其中该调整因子用于解决在该端口的输入处的第一带宽与该端口和中心队列之间的第二带宽之间的差。
21.权利要求20的队列管理器,其中所述由端口信用管理器进行的判定进一步包括:
(i)计算用于该端口的当前信用总数,其中该当前信用总数被定义为中心队列中对于该端口的空间分配与当前用于缓冲所接收的数据包的空间分配数量之间的差;
(ii)将当前信用总数与调整后的空闲端口存储空间的度量进行比较;
(iii)如果调整后的空闲端口存储空间的度量大于当前信用总数,则接受所提供的空间;以及
(iv)如果调整后的空闲端口存储空间的度量小于当前信用总数,则拒绝所提供的空间。
22.权利要求19的队列管理器,其中:
如果所述判定结果为拒绝所提供的空间,则上述端口信用管理器将所提供的空间返还给中心队列作为返还空间;以及
上述中心队列控制逻辑将该返还的空间添加到中心队列中当前未使用空间的数量中。
23.一种用于数据传输网络的交换节点,所述交换节点包括:
多个数据端口;
中心队列,用于缓冲由所述多个数据端口接收的数据包;以及
包流控制器,其中所述包流控制器根据所述中心队列中当前可用的未使用空间的数量及该多个数据端口中一个数据端口的存储设备中当前空闲的存储空间数量,为所述多个端口主动管理所述中心队列中的空间分配。
24.至少一个可由机器读取的程序存储装置,其有形地体现至少一个可由该机器执行以实现用于数据传输网络的交换节点的包流控制方法的指令程序,所述方法包括:
为数据传输网络的交换节点的多个端口主动管理中心队列中的空间分配,其中该主动管理基于中心队列中当前未使用空间的数量;以及
其中该主动管理包括根据该多个端口中一个端口的存储设备中当前空闲的存储空间数量,判定该端口是否接受所提供的空间以由该端口用于缓冲所接收的数据包,该所提供的空间包括一定数量的、中心队列中当前未使用的空间。
25.权利要求24的至少一个程序存储装置,其中所述判定进一步包括:
(i)计算用于该端口的当前信用总数,其中该当前信用总数定义为中心队列中对于该端口的空间分配与当前用于缓冲所接收的数据包的空间分配数量之间的差;
(ii)将当前信用总数与该端口的存储设备中当前空闲的存储空间的数量进行比较;
(iii)如果该端口的存储设备中当前空闲的存储空间的数量大于当前信用总数,则接受所提供的空间;以及
(iv)如果该端口的存储设备中当前空闲的存储空间的数量小于当前信用总数,则拒绝所提供的空间。
26.权利要求24的至少一个程序存储装置,其中所述判定进一步包括:
将该端口的存储设备中当前空闲的存储空间的数量乘以调整因子,其中该调整因子用于解决在该端口的输入处的第一带宽与该端口和中心队列之间的第二带宽之间的差。
27.权利要求26的至少一个程序存储装置,其中所述乘步骤产生调整后的空闲端口存储空间的度量,且所述判定进一步包括:
(i)计算用于该端口的当前信用总数,其中该当前信用总数被定义为中心队列中对于该端口的空间分配与当前用于缓冲所接收的数据包的空间分配数量之间的差;
(ii)将当前信用总数与调整后的空闲端口存储空间的度量进行比较;
(iii)如果调整后的空闲端口存储空间的度量大于当前信用总数,则接受所提供的空间;以及
(iv)如果调整后的空闲端口存储空间的度量小于当前信用总数,则拒绝所提供的空间。
28.权利要求27的至少一个程序存储装置,其中该调整因子被设为基本上等于由该端口每单位时间接收的数据中由于第一带宽和第二带宽之间的差而导致的将保留在该端口的存储设备中超过该单位时间的时间段的部分的比例的倒数。
29.权利要求27的至少一个程序存储装置,其中所述方法进一步包括:
如果作为上述判定的结果而接受所提供的空间,则由端口信用管理器根据该端口的至少一个虚拟通道的空间需求向该至少一个虚拟通道分配所提供的空间。
30.权利要求27的至少一个程序存储装置,其中:
所述方法进一步包括计算中心队列中分派给该端口的各虚拟通道的空间分配中剩余的未使用空间的数量,其中中心队列中分派给该端口的一虚拟通道的空间分配中剩余的未使用空间的数量包括分派给该虚拟通道,但当前未用于存储所接收的数据包的数量;以及
所述计算进一步包括对中心队列中分派给该端口的各该虚拟通道的空间分配中剩余的未使用空间的数量进行求和。
31.权利要求24的至少一个程序存储装置,其中所述主动管理进一步包括:
如果所述判定结果为拒绝所提供的空间,则将所提供的空间返还给中心队列作为返还空间;以及
将该返还的空间添加到中心队列中当前未使用空间的数量中。
32.权利要求31的至少一个程序存储装置,其中
所述返还空间包括空出的、中心队列中当前指派给该端口的虚拟通道的已分配空间;以及
所述主动管理进一步包括从该虚拟通道的当前空间债务中扣除代表包括在该返还空间中的空出的已分配空间的数量,其中该虚拟通道的当前空间债务包括中心队列中分派给该虚拟通道的空间分配超过目标分配的空间数量。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/822,795 | 2004-04-09 | ||
US10/822,795 US7349334B2 (en) | 2004-04-09 | 2004-04-09 | Method, system and program product for actively managing central queue buffer allocation using a backpressure mechanism |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1681263A true CN1681263A (zh) | 2005-10-12 |
CN100484095C CN100484095C (zh) | 2009-04-29 |
Family
ID=35060415
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100633151A Expired - Fee Related CN100484095C (zh) | 2004-04-09 | 2005-04-06 | 使用背压机制主动管理中心队列缓冲区分配的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (2) | US7349334B2 (zh) |
CN (1) | CN100484095C (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104394100A (zh) * | 2014-11-07 | 2015-03-04 | 深圳市国微电子有限公司 | 信用分配方法和交换机 |
CN105955920A (zh) * | 2016-04-25 | 2016-09-21 | 浪潮电子信息产业股份有限公司 | 一种片上网络中基于Credit的流控机制的设计方法 |
CN111061545A (zh) * | 2018-10-17 | 2020-04-24 | 财团法人工业技术研究院 | 服务器及其资源调控方法 |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7539143B2 (en) * | 2003-08-11 | 2009-05-26 | Netapp, Inc. | Network switching device ingress memory system |
US7719964B2 (en) * | 2004-08-12 | 2010-05-18 | Eric Morton | Data credit pooling for point-to-point links |
US7969971B2 (en) | 2004-10-22 | 2011-06-28 | Cisco Technology, Inc. | Ethernet extension for the data center |
US7830793B2 (en) * | 2004-10-22 | 2010-11-09 | Cisco Technology, Inc. | Network device architecture for consolidating input/output and reducing latency |
US7564869B2 (en) | 2004-10-22 | 2009-07-21 | Cisco Technology, Inc. | Fibre channel over ethernet |
US8238347B2 (en) * | 2004-10-22 | 2012-08-07 | Cisco Technology, Inc. | Fibre channel over ethernet |
US7801125B2 (en) * | 2004-10-22 | 2010-09-21 | Cisco Technology, Inc. | Forwarding table reduction and multipath network forwarding |
US7961621B2 (en) | 2005-10-11 | 2011-06-14 | Cisco Technology, Inc. | Methods and devices for backward congestion notification |
US7920473B1 (en) | 2005-12-01 | 2011-04-05 | Qlogic, Corporation | Method and system for managing transmit descriptors in a networking system |
US20070268926A1 (en) * | 2006-05-22 | 2007-11-22 | Fujitsu Limited | System and Method for Allocating Memory Resources in a Switching Environment |
US20070268903A1 (en) * | 2006-05-22 | 2007-11-22 | Fujitsu Limited | System and Method for Assigning Packets to Output Queues |
US20070280104A1 (en) * | 2006-06-01 | 2007-12-06 | Takashi Miyoshi | System and Method for Managing Forwarding Database Resources in a Switching Environment |
US7742408B2 (en) * | 2006-08-04 | 2010-06-22 | Fujitsu Limited | System and method for filtering packets in a switching environment |
US7826468B2 (en) * | 2006-08-04 | 2010-11-02 | Fujitsu Limited | System and method for bypassing an output queue structure of a switch |
US8259720B2 (en) * | 2007-02-02 | 2012-09-04 | Cisco Technology, Inc. | Triple-tier anycast addressing |
US8149710B2 (en) | 2007-07-05 | 2012-04-03 | Cisco Technology, Inc. | Flexible and hierarchical dynamic buffer allocation |
US8121038B2 (en) * | 2007-08-21 | 2012-02-21 | Cisco Technology, Inc. | Backward congestion notification |
US20090213735A1 (en) * | 2008-02-25 | 2009-08-27 | Check Mark A | System to improve data packet routing in a data processing device and associated methods |
US8619558B1 (en) * | 2008-07-21 | 2013-12-31 | Qlogic, Corporation | Memory management in a network adapter |
TW201115458A (en) * | 2009-10-29 | 2011-05-01 | Ralink Technology Corp | Buffer space allocation method and related packet switch |
US8307111B1 (en) | 2010-04-13 | 2012-11-06 | Qlogic, Corporation | Systems and methods for bandwidth scavenging among a plurality of applications in a network |
KR101877595B1 (ko) * | 2013-10-28 | 2018-07-12 | 주식회사 케이티 | 서비스에 따른 트래픽 처리를 이용한 QoS 제어 방법 |
US20180287953A1 (en) * | 2014-12-23 | 2018-10-04 | Intel Corporation | Generic queue |
US9832143B2 (en) | 2014-12-29 | 2017-11-28 | Oracle International Corporation | System and method for supporting efficient virtual output queue (VOQ) packet flushing scheme in a networking device |
US9838338B2 (en) | 2014-12-29 | 2017-12-05 | Oracle International Corporation | System and method for supporting efficient virtual output queue (VOQ) resource utilization in a networking device |
US9621484B2 (en) | 2014-12-29 | 2017-04-11 | Oracle International Corporation | System and method for supporting efficient buffer reallocation in a networking device |
EP3241320B1 (en) * | 2014-12-29 | 2019-05-01 | Oracle International Corporation | System and method for supporting efficient virtual output queue (voq) packet flushing scheme in a networking device |
US9838330B2 (en) | 2014-12-29 | 2017-12-05 | Oracle International Corporation | System and method for supporting credit management for output ports in a networking device |
US10437496B1 (en) * | 2017-05-10 | 2019-10-08 | Yellowbrick Data, Inc. | System and method for managing buffers in a computer system |
US10235082B1 (en) * | 2017-10-18 | 2019-03-19 | EMC IP Holding Company LLC | System and method for improving extent pool I/O performance by introducing disk level credits on mapped RAID |
US11449936B2 (en) * | 2019-06-18 | 2022-09-20 | Chicago Mercantile Exchange Inc. | Distributed credit control with centralized allocation |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US78317A (en) * | 1868-05-26 | Improved explosive compound | ||
US49901A (en) * | 1865-09-12 | Iprovement in the transpg | ||
US178306A (en) * | 1876-06-06 | Improvement in packing thrashing-machines for transportation | ||
US133648A (en) * | 1872-12-03 | Jeremiah b | ||
US26267A (en) * | 1859-11-29 | Composition for covering metals | ||
US4445176A (en) * | 1979-12-28 | 1984-04-24 | International Business Machines Corporation | Block transfers of information in data processing networks |
US5014265A (en) * | 1989-11-30 | 1991-05-07 | At&T Bell Laboratories | Method and apparatus for congestion control in a data network |
US5594889A (en) * | 1992-01-03 | 1997-01-14 | Digital Equipment Corporation | Memory resource allocation look ahead system and method |
US5712976A (en) * | 1994-09-08 | 1998-01-27 | International Business Machines Corporation | Video data streamer for simultaneously conveying same one or different ones of data blocks stored in storage node to each of plurality of communication nodes |
US5615392A (en) * | 1995-05-05 | 1997-03-25 | Apple Computer, Inc. | Method and apparatus for consolidated buffer handling for computer device input/output |
AU6501496A (en) * | 1995-07-19 | 1997-02-18 | Ascom Nexion Inc. | Point-to-multipoint transmission using subqueues |
US5784698A (en) * | 1995-12-05 | 1998-07-21 | International Business Machines Corporation | Dynamic memory allocation that enalbes efficient use of buffer pool memory segments |
US5838994A (en) * | 1996-01-11 | 1998-11-17 | Cisco Technology, Inc. | Method and apparatus for the dynamic allocation of buffers in a digital communications network |
US6219728B1 (en) * | 1996-04-22 | 2001-04-17 | Nortel Networks Limited | Method and apparatus for allocating shared memory resources among a plurality of queues each having a threshold value therefor |
US5920732A (en) * | 1996-07-01 | 1999-07-06 | Apple Computer, Inc. | System for preallocating additional larger buffer sizes in accordance with packet sizes of discarded packets that can't be stored in existing preallocated buffer sizes |
US6098123A (en) * | 1997-05-08 | 2000-08-01 | International Business Machines Corporation | Method and apparatus for dynamic allocation of bandwidth to/from network adapter memory amongst active input/output ports |
US6046817A (en) * | 1997-05-12 | 2000-04-04 | Lexmark International, Inc. | Method and apparatus for dynamic buffering of input/output ports used for receiving and transmitting print data at a printer |
US6044418A (en) * | 1997-06-30 | 2000-03-28 | Sun Microsystems, Inc. | Method and apparatus for dynamically resizing queues utilizing programmable partition pointers |
US6715008B2 (en) | 1998-05-08 | 2004-03-30 | Fujitsu Ltd. | Method and system for over-run protection in a message passing multi-processor computer system using a credit-based protocol |
US6539024B1 (en) * | 1999-03-26 | 2003-03-25 | Alcatel Canada Inc. | Method and apparatus for data buffer management in a communications switch |
US6453404B1 (en) * | 1999-05-27 | 2002-09-17 | Microsoft Corporation | Distributed data cache with memory allocation model |
US6553483B1 (en) * | 1999-11-29 | 2003-04-22 | Intel Corporation | Enhanced virtual renaming scheme and deadlock prevention therefor |
US6553438B1 (en) * | 2000-04-24 | 2003-04-22 | Intel Corporation | Methods and system for message resource pool with asynchronous and synchronous modes of operation |
US6947433B2 (en) | 2000-09-21 | 2005-09-20 | Avici Systems, Inc. | System and method for implementing source based and egress based virtual networks in an interconnection network |
US20020078317A1 (en) | 2000-12-19 | 2002-06-20 | Matsushita Electric Industrial Co., Ltd. | First-in, first-out (FIFO) memory with moving boundary |
GB2382898B (en) | 2000-12-29 | 2005-06-29 | Zarlink Semiconductor Ltd | A method of managing data |
US20030026267A1 (en) | 2001-07-31 | 2003-02-06 | Oberman Stuart F. | Virtual channels in a network switch |
JP4291664B2 (ja) * | 2003-10-14 | 2009-07-08 | 株式会社日立製作所 | 通信バッファ予約機能を備えるストレージ装置およびシステム |
-
2004
- 2004-04-09 US US10/822,795 patent/US7349334B2/en not_active Expired - Fee Related
-
2005
- 2005-04-06 CN CNB2005100633151A patent/CN100484095C/zh not_active Expired - Fee Related
-
2008
- 2008-01-15 US US12/014,141 patent/US7545747B2/en not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104394100A (zh) * | 2014-11-07 | 2015-03-04 | 深圳市国微电子有限公司 | 信用分配方法和交换机 |
CN104394100B (zh) * | 2014-11-07 | 2017-12-08 | 深圳市国微电子有限公司 | 信用分配方法和交换机 |
CN105955920A (zh) * | 2016-04-25 | 2016-09-21 | 浪潮电子信息产业股份有限公司 | 一种片上网络中基于Credit的流控机制的设计方法 |
CN111061545A (zh) * | 2018-10-17 | 2020-04-24 | 财团法人工业技术研究院 | 服务器及其资源调控方法 |
Also Published As
Publication number | Publication date |
---|---|
US20050226146A1 (en) | 2005-10-13 |
US7545747B2 (en) | 2009-06-09 |
CN100484095C (zh) | 2009-04-29 |
US7349334B2 (en) | 2008-03-25 |
US20080112314A1 (en) | 2008-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100484095C (zh) | 使用背压机制主动管理中心队列缓冲区分配的方法和系统 | |
CN1681262A (zh) | 主动管理中心队列缓冲区分配的方法和系统 | |
US6810031B1 (en) | Method and device for distributing bandwidth | |
US7724735B2 (en) | On-chip bandwidth allocator | |
US5889956A (en) | Hierarchical resource management with maximum allowable allocation boundaries | |
Guérin et al. | Scalable QoS provision through buffer management | |
US6768716B1 (en) | Load balancing system, apparatus and method | |
US20050055694A1 (en) | Dynamic load balancing resource allocation | |
US8842529B2 (en) | Network transport system with hybrid dynamic bandwidth allocation mechanism and method of operation thereof | |
US20030236887A1 (en) | Cluster bandwidth management algorithms | |
US20070011396A1 (en) | Method and apparatus for bandwidth efficient and bounded latency packet buffering | |
CN1881937A (zh) | 将存储空间动态分配给多个队列的方法及设备 | |
EP3198810B1 (en) | Dynamic max-min fair rate regulation apparatuses, methods and systems | |
US20170048145A1 (en) | Switching device and control method of switching device | |
CN1756143A (zh) | 传输网络带宽的时段复用系统及方法 | |
CN1359219A (zh) | 使用仿真加权合理排队技术的带宽分割法 | |
US7646717B1 (en) | Method and apparatus for packet scheduling | |
WO2023082500A1 (zh) | 光传送网的映射复用方法、装置、电子设备及存储介质 | |
CN1773962A (zh) | 吉比特无源光网络严格优先级加权轮询调度机制 | |
CN1798087A (zh) | 用于多输入单输出的网络流量整形和带宽分配的方法 | |
CN109343940A (zh) | 一种云平台中多媒体任务调度优化方法 | |
CN1670706A (zh) | 一种机群作业管理系统中分配计算结点的方法 | |
CN1886933A (zh) | 通过集合来保证带宽的技术 | |
US20200220817A1 (en) | Method for traffic shaping using a serial packet processing algorithm and a parallel packet processing algorithm | |
CN116599966B (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090429 |
|
CF01 | Termination of patent right due to non-payment of annual fee |