CN101356777A - 在交换结构网络中管理芯片上队列 - Google Patents
在交换结构网络中管理芯片上队列 Download PDFInfo
- Publication number
- CN101356777A CN101356777A CN200680047740.4A CN200680047740A CN101356777A CN 101356777 A CN101356777 A CN 101356777A CN 200680047740 A CN200680047740 A CN 200680047740A CN 101356777 A CN101356777 A CN 101356777A
- Authority
- CN
- China
- Prior art keywords
- formation
- chip
- asi
- packet
- trigger condition
- 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
- 239000004744 fabric Substances 0.000 title claims abstract description 21
- 238000000034 method Methods 0.000 claims abstract description 33
- 230000004044 response Effects 0.000 claims abstract description 9
- 238000012544 monitoring process Methods 0.000 claims abstract 6
- 230000015572 biosynthetic process Effects 0.000 claims description 120
- 238000003860 storage Methods 0.000 claims description 10
- 238000011084 recovery Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 claims description 7
- 238000003780 insertion Methods 0.000 claims description 3
- 230000037431 insertion Effects 0.000 claims description 3
- 238000001514 detection method Methods 0.000 claims 4
- 238000004590 computer program Methods 0.000 abstract description 3
- 230000007704 transition Effects 0.000 abstract 1
- 230000009471 action Effects 0.000 description 10
- 238000005096 rolling process Methods 0.000 description 10
- 238000011144 upstream manufacturing Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000000977 initiatory effect Effects 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 241001522296 Erithacus rubecula Species 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003252 repetitive effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- RGNPBRKPHBKNKX-UHFFFAOYSA-N hexaflumuron Chemical compound C1=C(Cl)C(OC(F)(F)C(F)F)=C(Cl)C=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F RGNPBRKPHBKNKX-UHFFFAOYSA-N 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000008521 reorganization Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 241000894007 species Species 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/6255—Queue scheduling characterised by scheduling criteria for service slots or service orders queue load conditions, e.g. longest queue first
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/56—Queue scheduling implementing delay-aware scheduling
- H04L47/562—Attaching a time tag to queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/6215—Individual queue per QOS, rate or priority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- 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/9084—Reactions to storage capacity overflow
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
方法和装置及其计算机程序产品,用于实现以下技术:监视交换结构网络的设备的状态,所述设备包括用来存储队列描述符的芯片上队列和用来存储数据分组的数据缓冲器,各队列描述符具有对应的数据分组;检测用来将所述设备从第一状态转换到第二状态的第一触发条件;以及响应于所述第一触发条件检测而恢复所述数据缓冲器中的空间,所述恢复步骤包括选择所述芯片上队列中的一个或多个芯片上队列用于丢弃,以及从所述数据缓冲器移除对应于在选择的一个或多个芯片上队列中的队列描述符的数据分组。
Description
背景技术
本发明涉及在交换结构网络中管理芯片上队列。高级交换互连(ASI)是一种基于快速外围设备互连(PCIe)体系结构的技术并能使得各种底板标准化。高级交换互连特殊兴趣小组(ASI-SIG)是一个协作贸易组织,旨在提供交换结构互连标准及其规范,包括它向其成员提供的高级交换核心体系结构规范(Rev.1.1,2004年11月,可在www.asi-sig.com从ASI-SIG得到)。
ASI利用可在PCIe物理和数据链路层上操作的基于分组的事务层协议。ASI体系结构提供许多对于多主机、端对端通讯设备(如刀片服务器、集群、存储阵列、电信路由器以及交换机)常见的特征。这些特征包括支持灵活的拓扑、分组路由选择、拥塞管理、冗余结构以及故障恢复机制。
ASI体系结构需要ASI设备使用基于状态的流控(SBFC)、基于信誉的流控以及注入率限制的组合来支持精细颗粒度的服务质量(QoS)。ASI端点设备还需要在响应SBFC流控消息时遵循严格的指南。通常,各ASI端点设备具有固定窗口,在该窗口中用来在SBFC流控消息被接收用于给定连接控制队列之后中止或重新开始来自该具体连接队列的分组传输。
连接队列通常实现在外部存储器中。ASI端点设备的调度程序使用算法(如加权轮转WRR、加权公平队列WRR或轮转RR)来调度来自连接队列的分组用于在ASI结构上传送。调度程序使用SBFC状态信息作为用来确定合格队列的输入之一。用来提取调度的分组并将他们注入到ASI端点设备的传送管道中的等待时间会高,这归因于由处理管道阶段引入的延迟以及访问外部存储器的等待时间。如果连接队列被流控,则大的等待时间可能会导致不希望的状况。因此,分组需要被再次调度以确保选择的分组与SBFC状态一致。
附图说明
图1是交换结构网络的框图。
图2A是ASI分组格式图。
图2B是ASI路由报头格式。
图3是ASI端点的框图。
图4是在交换结构网络的设备处缓冲器管理过程的流程图。
具体实施方式
参考图1,高级交换互连(ASI)交换结构网络100包括经由物理链路互连的ASI设备。构成网络100的内部节点的ASI设备称作“交换元件”102,以及驻留在网络100的边缘的ASI设备称作“端点”104。在网络100中可包括其他ASI设备(未示出)。这种ASI设备可包括负责列举、配置以及维护网络100的ASI结构管理器,以及将网络100连接到其他通信基础结构(如PCI Express结构)的ASI桥。
各ASI设备102、104具有ASI接口,该接口为由高级交换核心体系结构规范(“ASI规范”)定义的ASI体系结构的一部分。各ASI交换元件102可实现为支持局部化的拥塞控制机制,在ASI规范中称作“基于状态的流控(Status Based Flow Control)”或“SBFC”。SBFC机制规定通过两个相邻ASI设备102、104(如ASI交换元件102及其相邻的ASI端点104)之间或两个相邻的ASI交换元件102之间的链路的业务流的优化。相邻意味着两个ASI设备102、104直接链接,而不会有任何插入的ASI设备104、104。
通常,SBFC机制按照如下方式工作:下游ASI交换元件102将SBFC流控制消息传送到上游ASI端点104。SBFC流控消息提供一些或所有的以下状态信息:业务类指示、仅有序的标记状态、出口输出端口标识符以及请求的调度行为。上游ASI端点104使用状态信息来修改它的调度,使得在下游ASI交换元件102中的目标为拥塞缓冲器的分组被赋予较低优先级。具体来说,上游ASI端点104或者中止(如SBFC消息是ASI Xoff消息)或者重新开始(如SBFC消息是ASI Xon消息)来自连接队列的分组传送,在该连接队列中,所有的分组具有请求的仅有序的标记状态、业务类领域标识、出口输出端口标识符。当分组的传送从连接队列中止时,该连接队列就被称作被“流控”。
在以下描述的示例场景中,从上游ASI端点104向下游ASI交换元件102传送的分组包括ASI协议接口2(PI-2)分组。参考图2A和图2B,各PI-2分组200包括ASI路由报头202、ASI有效载荷204、以及可选地,PI-2循环冗余校验(CRC)206。ASI路由报头202包括路由信息(如转向池210、转向指针212和方向214)、业务类指示216以及避免死锁信息(如仅有序的标记状态218)。ASI有效载荷204含有给定协议的协议数据单元(PDU)或PDU的段,其中所述给定协议例如为(以下仅仅是列举其中的一些)以太网/点对点协议(PPP)、异步传输模式(ATM)、在SONET上的分组(PoS)、通用交换接口(CSIX)。
参考图3,上游ASI端点104包括网络处理器(NPU)302,其配置为缓冲从一个或多个PDU源304a-304n(如线路卡)接收的PDU,并将PDU存储在PDU存储器306中,该PDU存储器306驻留在NPU 302的外部(在所示示例中)。
NPU 302的主调度程序308确定从PDU存储器306检索PDU的顺序。检索的PDU由NPU 302转发到上游ASI端点的PI-2分段与重组(SAR)引擎310。
ASI设备102、104通常实现为将最大的ASI分组大小限制到小于ASI体系结构支持的2176字节的最大ASI分组大小。在从PDU存储器206检索的PDU具有大于可通过ASI结构传送的最大有效载荷大小的分组大小的实例中,PDU被分段成许多段。在一些实现中,在各段被转发到PI-2 SAR引擎301之前,通过NPU 302中的微引擎软件来执行分段。在其他实现中,PDU被转发到PI-2 SAR引擎310,在那里执行分段。
对于每个接收的PDU(或PDU的段),PI-2 SAR引擎310通过将PDU分段成其大小小于网络支持的最大值的多个段、以及各段附加一个ASI路由报头并且可选地计算PI-2 CRC来形成一个或多个PI-2分组。缓冲器管理器3 12将由PI-2 SAR引擎3 10形成的各PI-2分组存储到数据缓冲器存储器314(在本说明书中称作“传送缓冲器”或“TBUF”)中。在理想的场景中,TBUF 314具有足够大小以便缓冲通过ASI结构发送的所有PI-2分组。在这种场景中,理想地实现的NPU302具有TBUF 314,对于低数据速率TBUF 314具有大于512 MB的大小,而对于高数据速率TBUF 314具有大于2MB的大小。
虽然ASI体系结构并没有对TBUF 314设任何大小限制,但是由于管芯大小和成本限制通常最好实现小得多的大小的TBUF 314(如64K至256KB)。在一个实现中,TBUF 314是可含有达128K数据的随机存取存储器。TBUF 314组织为具有固定大小(elem_size)的元件314a-314n,该固定大小通常为每元件32字节或64字节。给定的长度为L的PI-2分组将被分配TBUF 314的mod(L/elem size)元件314n。含有PI-2分组的元件314n标明为“被占用”,或者元件314n标明为“可用”。
对于存储在TBUF 314中的各PI-2分组,缓冲器管理器312还创建一个对应的队列描述符、从许多驻留在芯片上存储器318上的连接队列316a-316n中选择队列描述符将要被插入队列的目标连接队列316a、并且将队列描述符附加到目标连接队列316a中的最后队列描述符。缓冲器管理器312记录各队列描述符在它附加到目标连接队列316a的插入队列时间。对目标连接队列316a的选择通常基于对应于将要被插入队列的队列描述符的PI-2分组的业务类指示、及其目的地和通过ASI结构的路径。
为了确保TBUF 314不被过负载,缓冲器管理器312实现用于动态地确定TBUF 314空间分配策略的缓冲器管理方案。通常,缓冲器管理方案遵守以下规则:(1)如果连接队列316a-316n不被流控,则PI-2分组(对应于将被附加到该连接队列316a-316n的队列描述符)在TBUF314中被分配空间以确保在该连接队列316a-316n上的平滑的业务流;(2)如果连接队列316a-316n被流控,则对应于将被附加到该连接队列316a-316n的队列描述符的PI-2分组在TBUF 314中被分配空间直到超过某个可编程的每连接队列阈值为止,在该点,缓冲器管理器312选择几个选项之一以解决该情况;以及(3)仅仅当TBUF占用超过某个阈值时触发分组丢弃和回滚操作以确保该贵重的回滚操作被保持在最小。
参考图4,作为缓冲器管理方案的一部分,缓冲器管理器312监视(402)上游ASI设备104的状态。缓冲器管理器314包括以下中的一个或多个:(1)维持被流控的连接队列316a-316n的总数的计数器;(2)对由该连接队列316a-316n消耗的TBUF元件314a-314n的总数进行计数的每连接队列316a-316n的计数器;(3)指明各连接队列316a-316n的流控状态的位向量;(4)对分配的TBUF元件314a-314n的总数进行计数的全局计数器;以及(5)对于各连接队列316a-316n,指明在连接队列316a-316n的报头处的队列描述符被插入队列的时间的时间标记(“连接队列时间标记的报头”)。当缓冲器管理器312在给定的连接队列316a-316n上执行出列操作时更新连接队列时间标记的报头。
NPU 302具有辅助调度程序320,其对TBUF314中的PI-2分组进行调度用于在ASI结构上经由ASI事务层322、ASI数据链路层324和ASI物理链路层326传送。在一些实现中,ASI设备104包括将NPU302连接到ASI结构的结构接口芯片。在正常的操作模式中,TBUF 314的占用(即在TBUF中被占用元件314a-314n的数目)足够低以便将元件314a-314n加到TBUF 314的速率处于(或低于)在TBUF 314中元件314a-314n被使得可用的速率。即,辅助调度程序320能够跟上主调度程序308填充TBUF元件314a-314n的速率。
当辅助调度程序320调度各PI-2分组用于在ASI结构上传送时,辅助调度程序320向NPU 302的队列管理引擎330发送提交消息。一旦队列管理引擎330接收用于PDU的段已被封装到的所有PI2分组的提交消息,则队列管理引擎330从PDU存储器306移除PDU数据。
一旦检测(404)到触发条件,则缓冲器管理器312发起(406)在TBUF 314中重新要求空间的过程(在本说明书中称作“数据缓冲器元件恢复过程”)以便减轻TBUF 314占用影响。这种触发条件的示例包括:(1)落在某个最小阈值以下的可用TBUF元件314a-314n的数目;(2)超过可编程阈值的流控的队列316a-316n的数目;以及(3)与任何一个超过可编程阈值的流控连接队列316a-316n相关联的TBUF元件314a-314n的数目。
一旦发起数据缓冲器元件恢复过程,则缓冲器管理器312选择(408)一个或多个连接队列316a-316n用于丢弃,并对各选择的连接队列316a-316n执行(410)回滚操作,使得对应于各选择的连接队列316a-316n的TBUF 314的被占用元件314a-314n被标明为可用。回滚操作的一种实现涉及将回滚消息(而不是提交消息)发送到NPU 302的队列管理引擎330。当队列管理引擎330接收PDU的回滚消息时,它重新将PDU插入到连接队列316a-316n的报头并且不会从PDU存储器306移除PDU数据。按此方式,缓冲器管理器312能够在其中可存储其他PI-2分组的TBUF 314中重新要求空间。通常,数据缓冲器元件恢复过程遵循以下两个规则:(1)选择一个或多个连接队列316a-316n以便确保集合的重新要求的TBUF 314空间足够,使得TBUF 314占用落到预定阈值条件以下;以及(2)使要执行的回滚操作的总数最小。
可以通过缓冲器管理器312执行数据缓冲器元件恢复过程来实现四种示例技术。在给定场景中使用的特定技术可取决于PDU的源304a-304n。即,应用的技术可以是线路卡特定的,以便最佳适合具体线路卡配置的操作条件。
在一个示例中,缓冲器管理器312检查各连接队列的计数器以及指示连接队列是否被流控的位向量,并识别在分配给连接队列316a-316n的TBUF 314中具有最大数目的被占用元件314a-314n的流控连接队列316a-316n。缓冲器管理器312标记识别的流控连接队列316a-316n用于丢弃,并对该连接队列发起回滚操作。分配给该连接队列316a-316n的TBUF 314中的被占用元件314a-314n被标明为可用,并且缓冲器管理器312重新评估(412)触发条件。如果触发条件没有消除(即,重新要求的TBUF 314空间不够),则缓冲器管理器312识别具有次最大数目的TBUF 314中分配的被占用元件314a-314n的流控连接队列316a-316n,并重复该过程(在408)直到触发条件消除(即变为出错)为止,在该点,缓冲器管理器返回到监视(402)NPU 302的状态。通过选择具有相对较大数目的分配的被占用元件314a-314n的流控队列316a-316n,缓冲器管理器312能够消除触发条件,同时使对其执行回滚操作的连接队列316a-316n的数目最小。
在另一示例中,缓冲器管理器312检查各连接队列的连接队列时间标记的报头以及指示连接队列316a-316n是否被流控的位向量,并识别具有最早的连接队列时间标记的报头的流控连接队列316a-316n。缓冲器管理器312对识别的流控连接队列316a-316n进行标记用于丢弃,并发起对该连接队列316a-316n的回滚操作。分配给该连接队列316a-316n的TBUF 314的被占用元件314a-314n被标明为可用,并且缓冲器管理器312重新评估(412)触发条件。如果触发条件没有消除,则缓冲器管理器312识别具有次最早的连接队列时间标记的报头的流控连接队列316a-316n,并重复过程(在408)直到触发条件消除为止。通过选择最老的流控队列316a-316n(如由最早的连接队列时间标记的报头所反映),缓冲器管理器312能够消除触发条件,同时重新标明具有最老SBFC状态的TBUF 314的元件314a-314n。
在第三示例中,缓冲器管理器312检查各连接队列的连接队列时间标记的报头以及指示连接队列316a-316n是否被流控的位向量,并识别具有最近的连接队列时间标记的报头的流控连接队列316a-316n。缓冲器管理器312对识别的流控连接队列316a-316n进行标记用于丢弃,并发起对该连接队列316a-316n的回滚操作。分配给该连接队列316a-316n的TBUF 314的被占用元件314a-314n被标明为可用,并且缓冲器管理器312重新评估触发条件。如果触发条件没有消除(即,重新要求的TBUF 314空间不够),则缓冲器管理器312识别具有次最近的连接队列时间标记的报头的流控连接队列316a-316n,并重复过程(在408)直到触发条件消除为止。通过选择最新的流控队列316a-316n(如最近的连接队列时间标记的报头所反映),缓冲器管理器312工作在以下前提下:最新的流控连接队列316a-316n不可能受控于紧接着的ASI Xon消息(发信号通知重新开始来自连接队列316a-316n的分组传送)。因此,对最新的流控连接队列316a-316n执行回滚操作使得缓冲器管理器312能够重新要求TBUF 314的元件314a-314n,同时使得较老的流控队列316a-316n能被维持,因为这些更可能受控于ASIXon消息。图4的技术在上游ASI端点中能特别有效地工作,在该端点处Xon和Xoff事务按轮转方式发生。
在第四示例中,数据缓冲器元件恢复过程在流控连接队列316a-316n的数目超过某个阈值时触发。当此发生时,缓冲器管理器312基于占用(即使用各连接队列的每连接队列计数器)、最老元件(即识别最早的连接队列时间标记报头)、最新元件(即识别最近的连接队列时间标记报头)或通过施加轮转方案来选择连接队列316a-316n用于丢弃。缓冲器管理器312重复地选择连接队列316a-316n用于丢弃直到流控连接队列316a-316n的数目降到触发阈值以下为止。
在上述示例中,实现的NPU 302具有芯片上连接队列316a-316n,芯片上连接队列316a-316n具有比芯片外连接队列短的响应时间。这些较短的响应时间使得NPU 302能满足严格的响应时间要求,这些要求是用于在SBFC流控消息被接收用于该具体连接队列316a-316n之后中止或重新开始来自给定连接队列316a-316n的分组的传送。实现的上游ASI端点还具有缓冲器管理器312,该缓冲器管理器312动态地管理缓冲器利用以便即使在考虑到管芯大小和成本限制而TBUF314大小相对较小时防止缓冲器过负载。
本发明的一个实施例的技术可通过一个或多个可编程处理器执行,该处理器可执行计算机程序以通过对输入数据进行操作并生成输出来执行实施例的功能。这些技术还可通过专用逻辑电路执行,并且本发明的一个实施例的装置可实现为专用逻辑电路,如一个或多个FPGA(现场可编程门阵列)和/或一个或多个ASIC(专用集成电路)。
适于执行计算机程序的处理器例如包括通用和专用微处理器以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器会接收来自存储器(如存储器330)的指令和数据。存储器可包括许多种类的存储媒体,其包括但不限于易失存储器、非易失存储器、闪存、可编程变量或状态、随机存取存储器(RAM)、只读存储器(ROM)、闪存或其他静态或动态存储媒体。在一个示例中,机器可读指令或内容可从机器可访问介质形式提供到存储器。机器可访问介质可表示任何按机器(如ASIC、专用功能控制器或处理器、FPGA或其他硬件设备)可读形式提供(即存储或传送)信息的机制。例如,机器可访问介质可包括:ROM;RAM;磁盘存储媒体;光存储媒体;闪存存储器设备;电、光、声或其他形式的传播信号(如载波、红外信号、数字信号)等。处理器和存储器可以由专用逻辑电路补充或结合在该电路中。
已经按特定实施例的形式描述了本发明。其他实施例落在所附权利要求的范围内。例如,本发明实现的步骤可按不同的顺序执行并且仍然取得希望的结果。
Claims (32)
1.一种方法,包括:
监视交换结构网络的设备的状态,所述设备包括用来存储队列描述符的芯片上队列和用来存储数据分组的数据缓冲器,各队列描述符具有对应的数据分组;
检测用来将所述设备从第一状态转换到第二状态的第一触发条件;以及
响应于所述第一触发条件检测而恢复所述数据缓冲器中的空间,所述恢复步骤包括选择所述芯片上队列中的一个或多个芯片上队列用于丢弃,以及从所述数据缓冲器移除对应于在选择的一个或多个芯片上队列中的队列描述符的数据分组。
2.如权利要求1所述的方法,其中所述监视步骤包括监视由数据分组占用的数据缓冲器空间的数量。
3.如权利要求1所述的方法,其中所述监视步骤包括维持识别被流控的芯片上队列的数目的计数器。
4.如权利要求1所述的方法,其中所述监视步骤包括对于各芯片上队列识别对应于所述芯片上队列的队列描述符的数据分组所占用的数据缓冲器空间的数量。
5.如权利要求1所述的方法,其中所述监视步骤包括维持指示各芯片上队列的流控状态的位向量。
6.如权利要求1所述的方法,其中所述监视步骤包括对于各芯片上队列维持时间标记,所述时间标记指示与所述芯片上队列的报头处的队列描述符相关联的插入队列时间。
7.如权利要求1所述的方法,其中所述第一触发条件指示由数据分组占用的数据缓冲器空间的数量超过预定阈值。
8.如权利要求1所述的方法,其中所述第一触发条件指示被流控的芯片上队列的数目超过预定阈值。
9.如权利要求1所述的方法,其中所述第一触发条件指示对应于芯片上队列的队列描述符的数据分组占用的数据缓冲器空间的数量超过预定阈值。
10.如权利要求1所述的方法,其中所述第一触发条件指示被流控的芯片上队列的数目超过预定阈值。
11.如权利要求1所述的方法,其中所述选择步骤包括使被选择用于丢弃的芯片上队列的数目最小,同时使从所述数据缓冲器恢复的空间的数量最大。
12.如权利要求1所述的方法,其中所述选择步骤包括确定哪一个流控芯片上队列与占用最大数量的缓冲器空间的数据分组相关联,并基于所述确定来选择流控芯片上队列用于丢弃。
13.如权利要求1所述的方法,其中所述选择步骤包括确定哪一个流控芯片上队列具有最老的报头队列描述符,并基于所述确定来选择流控芯片上队列用于丢弃。
14.如权利要求1所述的方法,其中所述选择步骤包括确定哪一个流控芯片上队列具有最新的报头队列描述符,并基于所述确定来选择流控芯片上队列用于丢弃。
15.如权利要求1所述的方法,还包括:
重复执行直到用来将所述设备从第二状态转换到第一状态的第二触发条件被检测到为止。
16.如权利要求15所述的方法,其中所述第二触发条件指示由数据分组占用的数据缓冲器空间的数量低于预定阈值。
17.如权利要求1所述的方法,其中所述交换结构网络包括高级交换互连(ASI)结构,所述设备包括ASI端点或ASI交换元件,并且各芯片上队列包括ASI连接队列。
18.如权利要求1所述的方法,其中所述设备包括网络处理器单元,所述网络处理器单元包括高级交换互连(ASI)接口。
19.如权利要求1所述的方法,其中所述设备包括结构接口芯片,所述结构接口芯片通过第一高级交换互连(ASI)接口连接到网络处理器单元,并通过第二ASI接口连接到ASI结构。
20.如权利要求1所述的方法,其中所述设备包括网络处理器单元和高级交换互连(ASI)接口。
21.在交换结构设备处,所述交换结构设备包括芯片上队列和缓冲器元件,各缓冲器元件的可用性状态被标明,一种方法,所述方法包括:
在检测到第一触发条件时,恢复所述缓冲器元件的一个或多个缓冲器元件中的空间直到检测到第二触发条件为止,所述恢复步骤包括选择所述芯片上队列中的一个用于丢弃,并将分配给选择的芯片上队列的元件标明为可用。
22.如权利要求21所述的方法,其中标明为被占用的缓冲器元件存储数据分组。
23.一种包括内容的机器可访问介质,当由机器执行所述内容时所述内容会导致所述机器:
检测用来将交换结构设备从第一状态转换到第二状态的第一触发条件,所述设备包括用来存储队列描述符的芯片上队列和用来存储数据分组的数据缓冲器,各队列描述符具有对应的数据分组;以及
响应于所述第一触发条件检测而恢复所述数据缓冲器中的空间,其中由所述机器执行时导致所述机器恢复所述数据缓冲器中的空间的内容包括用来选择所述芯片上队列中的一个或多个芯片上队列用于丢弃的内容,以及用来从所述数据缓冲器移除对应于在选择的一个或多个芯片上队列中的队列描述符的数据分组的内容。
24.如权利要求23所述的机器可访问介质,还包括当由所述机器执行时导致所述机器来执行以下步骤的内容:
恢复所述数据缓冲器中的空间直到用来将所述设备从第二状态转换到第一状态的第二触发条件被检测到为止。
25.如权利要求24所述的机器可访问介质,其中所述第二触发条件指示由数据分组占用的数据缓冲器空间的数量低于预定阈值。
26.一种交换结构设备,包括:
处理器;
用来存储队列描述符的芯片上队列;
用来存储对应于所述队列描述符的数据分组的第一存储器;
包括缓冲器管理软件的第二存储器,所述软件用来向所述处理器提供指令以便:
检测用来将所述设备从第一状态转换到第二状态的第一触发条件;以及
响应于所述第一触发条件检测,执行第一存储器空间恢复过程,所述过程包括选择所述芯片上队列中的一个或多个芯片上队列用于丢弃,以及从所述第一存储器中移除对应于在选择的一个或多个芯片上队列中的队列描述符的数据分组。
27.如权利要求26所述的交换结构设备,其中所述第一存储器包括多个缓冲器元件,根据数据分组是否存储在所述缓冲器元件中而将各缓冲器元件标明为可用或被占用。
28.如权利要求27所述的交换结构设备,其中所述缓冲器管理软件还向所述处理器提供用于将分配给选择的一个或多个芯片上队列的缓冲器元件标明为可用的指令。
29.如权利要求26所述的交换结构设备,其中所述交换结构网络包括高级交换互连(ASI)结构,所述设备包括ASI端点或ASI交换元件,并且各芯片上队列包括ASI连接队列。
30.一种系统,包括:
通过结构的链路互连的交换结构设备,所述交换结构设备中的至少一个设备包括:
协议数据单元的源;以及
网络处理器单元,包括:
处理器;
用来存储队列描述符的芯片上队列;
用来存储对应于所述队列描述符的数据分组的第一存储器,各数据分组包括协议数据单元或协议数据单元的段;以及
包括缓冲器管理软件的第二存储器,所述软件用来向所述处理器提供指令以便检测用来将所述设备从第一状态转换到第二状态的第一触发条件,并响应于所述第一触发条件检测,执行第一存储器空间恢复过程,所述过程包括选择所述芯片上队列中的一个或多个芯片上队列用于丢弃,以及从所述第一存储器移除对应于在选择的一个或多个芯片上队列中的队列描述符的数据分组。
31.如权利要求30所述的系统,其中所述协议数据单元的源包括线路卡。
32.如权利要求30所述的系统,其中所述结构包括高级交换互连(ASI)结构,所述至少一个交换结构设备包括ASI端点,并且各芯片上队列包括ASI连接队列。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/315,582 | 2005-12-21 | ||
US11/315,582 US20070140282A1 (en) | 2005-12-21 | 2005-12-21 | Managing on-chip queues in switched fabric networks |
PCT/US2006/047313 WO2007078705A1 (en) | 2005-12-21 | 2006-12-11 | Managing on-chip queues in switched fabric networks |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101356777A true CN101356777A (zh) | 2009-01-28 |
CN101356777B CN101356777B (zh) | 2014-12-03 |
Family
ID=38007265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200680047740.4A Expired - Fee Related CN101356777B (zh) | 2005-12-21 | 2006-12-11 | 在交换结构网络中管理芯片上队列 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20070140282A1 (zh) |
CN (1) | CN101356777B (zh) |
DE (1) | DE112006002912T5 (zh) |
WO (1) | WO2007078705A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010118556A1 (en) * | 2009-04-16 | 2010-10-21 | Telefonaktiebolaget Lm Ericsson (Publ) | A method of and a system for providing buffer management mechanism |
CN107005494A (zh) * | 2014-12-24 | 2017-08-01 | 英特尔公司 | 用于在交换机中缓冲数据的装置和方法 |
CN112311696A (zh) * | 2019-07-26 | 2021-02-02 | 瑞昱半导体股份有限公司 | 网络封包接收装置及方法 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7971247B2 (en) * | 2006-07-21 | 2011-06-28 | Agere Systems Inc. | Methods and apparatus for prevention of excessive control message traffic in a digital networking system |
JP4658098B2 (ja) * | 2006-11-21 | 2011-03-23 | 日本電信電話株式会社 | フロー情報制限装置および方法 |
DE102009002007B3 (de) * | 2009-03-31 | 2010-07-01 | Robert Bosch Gmbh | Netzwerkcontroller in einem Netzwerk, Netzwerk und Routingverfahren für Nachrichten in einem Netzwerk |
DE102015121940A1 (de) * | 2015-12-16 | 2017-06-22 | Intel IP Corporation | Eine Schaltung und ein Verfahren zum Anhängen eines Zeitstempels an eine Tracenachricht |
US10749803B1 (en) * | 2018-06-07 | 2020-08-18 | Marvell Israel (M.I.S.L) Ltd. | Enhanced congestion avoidance in network devices |
US10853140B2 (en) * | 2019-01-31 | 2020-12-01 | EMC IP Holding Company LLC | Slab memory allocator with dynamic buffer resizing |
JP7180485B2 (ja) * | 2019-03-22 | 2022-11-30 | 株式会社デンソー | 中継装置およびキュー容量制御方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5526344A (en) * | 1994-04-15 | 1996-06-11 | Dsc Communications Corporation | Multi-service switch for a telecommunications network |
US5592622A (en) * | 1995-05-10 | 1997-01-07 | 3Com Corporation | Network intermediate system with message passing architecture |
US6175902B1 (en) * | 1997-12-18 | 2001-01-16 | Advanced Micro Devices, Inc. | Method and apparatus for maintaining a time order by physical ordering in a memory |
EP1168726B1 (en) * | 2000-06-19 | 2007-02-14 | Broadcom Corporation | Switch with memory management unit for improved flow control |
US7042842B2 (en) * | 2001-06-13 | 2006-05-09 | Computer Network Technology Corporation | Fiber channel switch |
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 |
US6934951B2 (en) * | 2002-01-17 | 2005-08-23 | Intel Corporation | Parallel processor with functional pipeline providing programming engines by supporting multiple contexts and critical section |
US7181594B2 (en) * | 2002-01-25 | 2007-02-20 | Intel Corporation | Context pipelines |
US7149226B2 (en) * | 2002-02-01 | 2006-12-12 | Intel Corporation | Processing data packets |
US20030202520A1 (en) * | 2002-04-26 | 2003-10-30 | Maxxan Systems, Inc. | Scalable switch fabric system and apparatus for computer networks |
US20030235194A1 (en) * | 2002-06-04 | 2003-12-25 | Mike Morrison | Network processor with multiple multi-threaded packet-type specific engines |
US20040252687A1 (en) * | 2003-06-16 | 2004-12-16 | Sridhar Lakshmanamurthy | Method and process for scheduling data packet collection |
US7443836B2 (en) * | 2003-06-16 | 2008-10-28 | Intel Corporation | Processing a data packet |
US20050050306A1 (en) * | 2003-08-26 | 2005-03-03 | Sridhar Lakshmanamurthy | Executing instructions on a processor |
US20050068798A1 (en) * | 2003-09-30 | 2005-03-31 | Intel Corporation | Committed access rate (CAR) system architecture |
US7308526B2 (en) * | 2004-06-02 | 2007-12-11 | Intel Corporation | Memory controller module having independent memory controllers for different memory types |
-
2005
- 2005-12-21 US US11/315,582 patent/US20070140282A1/en not_active Abandoned
-
2006
- 2006-12-11 WO PCT/US2006/047313 patent/WO2007078705A1/en active Application Filing
- 2006-12-11 DE DE112006002912T patent/DE112006002912T5/de not_active Withdrawn
- 2006-12-11 CN CN200680047740.4A patent/CN101356777B/zh not_active Expired - Fee Related
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010118556A1 (en) * | 2009-04-16 | 2010-10-21 | Telefonaktiebolaget Lm Ericsson (Publ) | A method of and a system for providing buffer management mechanism |
US9060192B2 (en) | 2009-04-16 | 2015-06-16 | Telefonaktiebolaget L M Ericsson (Publ) | Method of and a system for providing buffer management mechanism |
CN102550037B (zh) * | 2009-04-16 | 2015-12-09 | 爱立信(中国)通信有限公司 | 用于提供缓冲器管理机构的方法和系统 |
CN107005494A (zh) * | 2014-12-24 | 2017-08-01 | 英特尔公司 | 用于在交换机中缓冲数据的装置和方法 |
CN112311696A (zh) * | 2019-07-26 | 2021-02-02 | 瑞昱半导体股份有限公司 | 网络封包接收装置及方法 |
CN112311696B (zh) * | 2019-07-26 | 2022-06-10 | 瑞昱半导体股份有限公司 | 网络封包接收装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
US20070140282A1 (en) | 2007-06-21 |
DE112006002912T5 (de) | 2009-06-18 |
WO2007078705A1 (en) | 2007-07-12 |
CN101356777B (zh) | 2014-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101356777B (zh) | 在交换结构网络中管理芯片上队列 | |
CN101199168B (zh) | 监控通信链路的队列的方法、设备和系统 | |
US7352695B2 (en) | Switch and a switching method | |
US7839797B2 (en) | Event-driven flow control for a very high-speed switching node | |
US5629928A (en) | Dynamic fair queuing to support best effort traffic in an ATM network | |
CN100401791C (zh) | 数据网络节点及交换协议数据单元的方法 | |
JP4070610B2 (ja) | データ・ストリーム・プロセッサにおけるデータ・ストリームの操作 | |
KR100823785B1 (ko) | 시스템 패브릭에서의 개방 루프 정체 제어를 위한 방법,장치, 제품 및 시스템 | |
CN1981484B (zh) | 具有多条调度巷道的流水线调度器及用在其中的调度方法 | |
US7742405B2 (en) | Network processor architecture | |
US7835279B1 (en) | Method and apparatus for shared shaping | |
US5572522A (en) | Asynchronous transfer mode switch with multicasting ability | |
US7400638B2 (en) | Apparatus and methods for managing packets in a broadband data stream | |
CN1543149B (zh) | 网络环境中的流控制 | |
US6775293B1 (en) | Method and apparatus for monitoring buffer contents in a data communication system | |
US20040151197A1 (en) | Priority queue architecture for supporting per flow queuing and multiple ports | |
US20050147032A1 (en) | Apportionment of traffic management functions between devices in packet-based communication networks | |
US20060045009A1 (en) | Device and method for managing oversubsription in a network | |
CN101299721B (zh) | 交换网报文交换方法和交换装置 | |
CN101567855B (zh) | 分布式包交换系统和分布式包交换方法 | |
JPH11508749A (ja) | Atmのスロットリング | |
JP2000196628A (ja) | 輻輳管理方法及びシステム | |
US20070171917A1 (en) | Apparatus and method for implementing multiple high speed switching fabrics in an ethernet ring topology | |
CN104995884A (zh) | 分布式无交换机互连 | |
US7680043B2 (en) | Network processor having fast flow queue disable process |
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: 20141203 |
|
CF01 | Termination of patent right due to non-payment of annual fee |