CN1798102A - 在交换结构网络中仲裁虚拟信道传输队列 - Google Patents
在交换结构网络中仲裁虚拟信道传输队列 Download PDFInfo
- Publication number
- CN1798102A CN1798102A CNA2005101328692A CN200510132869A CN1798102A CN 1798102 A CN1798102 A CN 1798102A CN A2005101328692 A CNA2005101328692 A CN A2005101328692A CN 200510132869 A CN200510132869 A CN 200510132869A CN 1798102 A CN1798102 A CN 1798102A
- Authority
- CN
- China
- Prior art keywords
- grouping
- formation
- full
- packet
- incident
- 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/35—Switches specially adapted for specific applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/6285—Provisions for avoiding starvation of low priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
AS结构中的设备可包括事件分发单元,用于产生将要通过该结构发送到事件处理代理的事件分组。AS设备可在用于特定VC的资源的不同分组之间进行仲裁。AS设备可在AS事务层的下游,在来自不同VC的分组之间进行仲裁,以偏向于高优先权分组。
Description
技术领域
本发明一般地涉及计算机网络和通信领域,更具体地说涉及在交换结构网络中仲裁虚拟信道传输队列。
背景技术
PCI(外设部件互连)Express是一种串行化I/O互连标准,被开发来满足下一代计算机系统日益增长的带宽需求。PCI Express被设计来与广为使用的PC局部总线标准完全兼容。PCI正在接近它的能力极限,并且,虽然已经开发了对PCI的扩展以支持更高的带宽和更快的时钟速度,但是这些扩展可能不足以满足短期内会出现的PC的快速增长的带宽需要。由于其高速且可扩展的串行体系结构,PCI Express对于在计算机系统中与PCI一起使用或作为其可能的替代品来说可能是个很有吸引力的选择。PCI Express体系结构在PCIExpress基带体系结构规范1.0a版(最初公布于2003年4月15日)中进行了描述,该规范可通过PCI-SIG(PCI专门兴趣组)(http://www.pcisig.com)获得。
高级交换(Advanced Switching,AS)是PCI Express体系结构的一个扩展。AS利用了在PCI Express物理和数据链路层之上操作的基于分组的事务层协议。AS体系结构提供了多种对于多主机、对等通信设备例如刀片服务器、集群、存储阵列、电信路由器和交换机来说很通常的功能。这些功能包括对弹性拓扑、分组路由、拥塞管理(例如基于信用的流控制)、结构冗余性以及失败恢复(fail-over)机制的支持。AS体系结构在高级交换核心体系结构规范1.0版(“AS规范”)(2003年12月)中进行了描述,该规范可通过ASI-SIG(高级交换互连SIG)(http://www.asi-sig.org)获得。
发明内容
根据本发明,AS结构中的设备可包括事件分发单元,用于产生将要通过该结构发送到事件处理代理的事件分组。AS设备可在用于特定VC的资源的不同分组之间进行仲裁。AS设备可在AS事务层的下游中在来自不同VC的分组之间进行仲裁,以偏向于高优先权分组。
根据本发明的一个方面,提供了一种装置,包括:事件仲裁器,用于从至少一个所报告的事件中选择一个事件;事件识别器,用于识别和所述事件相关的信息并确定是否产生事件报告分组;事件产生器,用于产生对应于所述事件的事件报告分组;以及映射模块,用于将所述事件报告分组映射到在其上发送所述分组的虚拟信道。
根据本发明的另一个方面,提供了一种方法,包括:从一个或更多事件报告代理接收一个或更多事件;选择所述事件之一;识别和所述事件相关的信息;确定是否产生对应于所述事件的事件报告分组;产生所述事件报告分组,该事件报告分组具有流量等级;以及将所述事件报告分组的流量等级映射到在其上发送所述分组的虚拟信道。
根据本发明的又一个方面,提供了一种包括机器可读介质的制品,该介质包括的机器可执行指令使得机器:从一个或更多事件报告代理接收一个或更多事件;选择所述事件之一;识别和所述事件相关的信息;确定是否产生对应于所述事件的事件报告分组;产生所述事件报告分组,该事件报告分组具有流量等级;以及将所述事件报告分组的流量等级映射到在其上发送所述分组的虚拟信道。
根据本发明的再一个方面,提供了一种系统,包括:交换结构;以及耦合到该交换结构的节点,该节点包括:事件仲裁器,用于从至少一个所报告的事件中选择一个事件;事件识别器,用于识别和所述事件相关的信息并确定是否产生事件报告分组;事件产生器,用于产生对应于所述事件的事件报告分组,所述事件报告分组具有流量等级;以及映射模块,用于将所述事件报告分组的流量等级映射到在其上发送所述分组的虚拟信道。
根据本发明的再一个方面,提供了一种装置,包括:对应于虚拟信道的第一队列;对应于该虚拟信道的第二队列;控制单元,用于从一个或更多可用分组选择一个分组,并确定所述分组属于第一类型还是第二类型;以及队列控制器,用于从所述控制单元接收所述分组,如果所述分组属于所述第一类型并且所述第一队列非满,则将所述分组存储在所述第一队列中,并且,响应于所述第一队列为满,则等待,直到所述第一队列非满,并且如果所述分组属于所述第二类型并且所述第二队列非满,则将所述分组存储在所述第二队列中,并且,响应于所述第二队列为满,则等待属于所述第一类型的分组。
根据本发明的再一个方面,提供了一种方法,包括:从虚拟信道的一个或更多可用分组选择一个分组;确定所述分组属于第一类型还是第二类型;如果所述分组属于所述第一类型并且所述第一队列非满,则将所述分组存储在第一队列中,并且,响应于所述第一队列为满,则等待,直到所述第一队列非满;以及如果所述分组属于所述第二类型并且所述第二队列非满,则将所述分组存储在所述第二队列中,并且,响应于所述第二队列为满,则等待属于所述第一类型的分组。
根据本发明的再一个方面,提供了一种包括机器可读介质的制品,该介质包括的机器可执行指令使得机器:从虚拟信道的一个或更多可用分组选择一个分组;确定所述分组属于第一类型还是第二类型;如果所述分组属于所述第一类型并且第一队列非满,则将所述分组存储在第一队列中,并且,响应于所述第一队列为满,则等待,直到所述第一队列非满;以及如果所述分组属于所述第二类型并且第二队列非满,则将所述分组存储在所述第二队列中,并且,响应于所述第二队列为满,则等待属于所述第一类型的分组。
根据本发明的再一个方面,提供了一种系统,包括:交换结构;和耦合到该交换结构的节点,该节点包括:对应于虚拟信道的第一队列;对应于该虚拟信道的第二队列;控制单元,用于从一个或更多可用分组选择一个分组,并确定所述分组属于第一类型还是第二类型;以及队列控制器,用于从所述控制单元接收所述分组,如果所述分组属于所述第一类型并且所述第一队列非满,则将所述分组存储在所述第一队列中,并且,响应于所述第一队列为满,则等待,直到所述第一队列非满,并且如果所述分组属于所述第二类型并且所述第二队列非满,则将所述分组存储在所述第二队列中,并且,响应于所述第二队列为满,则等待属于所述第一类型的分组。
根据本发明的再一个方面,提供了一种装置,包括:从多个分组队列接收多个分组的接口,每个分组队列对应于一个虚拟信道;以及分组仲裁器,用于确定所述多个分组包括一个或更多高优先权分组,并从所述高优先权分组进行选择,直到穷尽所述高优先权分组。
根据本发明的再一个方面,提供了一种方法,包括:从多个分组队列接收多个分组,每个分组队列对应于一个虚拟信道;确定所述多个分组是否包括一个或更多高优先权分组;以及从所述高优先权分组进行选择,直到穷尽所述高优先权分组。
根据本发明的再一个方面,提供了一种包括机器可读介质的制品,所述介质包括可使得机器进行下述操作的机器可执行指令:从多个分组队列接收多个分组,每个分组队列对应于一个虚拟信道;确定所述多个分组是否包括一个或更多高优先权分组;以及从所述高优先权分组进行选择,直到穷尽所述高优先权分组。
根据本发明的再一个方面,提供了一种系统,包括:交换结构;以及耦合到该交换结构的节点,该节点包括:从多个分组队列接收多个分组的接口,每个分组队列对应于一个虚拟信道;以及分组仲裁器,用于确定所述多个分组是否包括一个或更多高优先权分组,并且从所述高优先权分组进行选择,直到穷尽所述高优先权分组。
附图说明
图1是根据实施方案的交换结构网络的框图。
图2示出了PCI Express和AS体系结构的协议栈。
图3示出了AS事务层分组(TLP)格式。
图4示出了AS路由头部格式。
图5是事件分发单元的框图。
图6是描述根据实施方案的事件分发操作的流程图。
图7是分组仲裁器的框图,该仲裁器控制对特定虚拟信道(VC)的发送资源的访问。
图8是描述根据实施方案的分组仲裁操作的流程图。
图9示出了用于在VC中在分组之间进行仲裁的示例性状态机的状态和转换。
图10是一个电路的框图,用于识别不同AS协议接口的分组类型。
图11A是描述所述状态机中状态转换的流程图,用于对只排序分组的请求。
图11B是描述所述状态机中状态转换的流程图,用于对能够旁路的分组的请求。
图12是AS事务层中的分组仲裁器的框图,用于在来自多个VC的分组之间进行仲裁。
图13是描述根据实施方案的分组仲裁操作的流程图。
具体实施方式
图1示出了根据实施方案的交换结构网络100。该网络可包括交换元件102和终端节点104。交换元件102构成网络100的内部节点,并在其他交换元件102和终端节点104之间提供互连。交换元件102驻留在交换结构的边缘,代表该交换结构的数据进入和外出点。终端节点可对进入和离开交换结构的分组进行封装和/或翻译,并可被视为交换结构和其他接口之间的“桥梁”。
网络100可具有高级交换(AS)体系结构。AS利用了在PCI Express物理和数据链路层202、204之上操作的基于分组的事务层协议,如图2所示。
AS使用定义了路径的路由方法,其中分组的源提供了交换机需要来将分组路由到所需目的地的信息。图3示出了AS事务层分组(TLP)格式300。分组包括路由头部302和封装的分组有效载荷304。AS路由头部302包括需要来将分组路由通过AS结构(即“路径”)的信息,以及指明所封装的分组的协议接口(PI)的字段。AS交换机可只使用包括在路由头部302中的信息来路由分组,独立于所封装的分组304的内容。
路径可由路由头部中的转弯池402、转弯指针404和方向标志406定义,如图4所示。分组的转弯指针表明交换机的“转弯值”在转弯池中的位置。当接收到分组时,交换机可使用转弯指针、方向标志和交换机的转弯值位宽度来抽取分组的转弯值。所抽取的交换机转弯值然后用来计算外出端口。
AS路由头部302中的PI字段306(图3)指明了所封装的分组的格式。PI字段可由发起该AS分组的终端节点插入,并可由结束该分组的终端节点用来正确地解释分组内容。路由信息与分组其余部分的分离使得AS结构可隧传任何协议的分组。
PI代表结构管理以及到交换结构网络100的应用级接口。表1提供了AS规范当前支持的PI列表。
PI号 | 协议封装标识(PEI) |
0(0:0)(0:1-127) | 路径建立(生成树(spanning tree)产生)(多播) |
1 | 拥塞管理 |
2 | 传输服务 |
3 | 预留 |
4 | 设备管理 |
5 | 事件报告 |
6-7 | 预留 |
8-95 | ASI SIGTM定义的PI |
96-126 | 供应商定义的PI |
127 | 非法 |
表1-AS协议封装接口
PI 0-7预留来用于各种结构管理任务,PI 8-126是应用级接口。如表1所示,PI 8用来隧传或封装原生(native)PCI Express。其他PI可用来隧传多种其他协议,例如以太网、光纤信道、ATM(异步传输模式)、InfiniBand和SLS(简单加载库)。AS交换结构的优点是协议的混合体可同时隧传通过单个、通用的交换结构,这对下一代模块化应用例如媒体网关、宽带接入路由器和刀片服务器来说是一个强大而所期望的功能。
AS体系结构支持在网络的每个AS设备内实现AS配置空间。AS配置空间是一个存储区,包括用来指明设备特性的字段,以及用来控制AS设备的字段。所述信息以功能结构和其他存储结构例如表或一组寄存器的形式来表现。存储在功能结构中的信息可通过PI-4分组来访问,这用于设备管理。
结构管理者选举过程可由多种硬件或软件机制来启动,以为交换结构网络选举一个或更多结构管理者。结构管理者是一个AS端点,其“拥有”网络中所有的AS设备,包括它自身。如果选举了多个结构管理者,例如主结构管理者和副结构管理者,则每个结构管理者可拥有网络中的AS设备的一个子集。或者,副结构管理者可在主结构管理者出现故障(例如由于结构冗余和失败恢复机制所引起)时宣告对网络中的AS设备的所有权。
结构管理者宣告所有权时,它享有对其AS设备的功能结构的特权访问。换言之,结构管理者具有对网络中所有AS设备的功能结构的读访问和写访问,而其他AS设备可被局限于只读访问,除非有结构管理者的书面授权许可。
根据PCI Express链路层定义,两个AS设备之间的链路是关闭(DL_Inactive=未发送或接收任何类型的分组)、全活动(DL_Active)(即可完全操作,并能够发送和接收任何类型的分组)或正在初始化的过程中(DL_Init)。
AS体系结构通过引入一个新数据-链路层状态DL_Protected来增加这一状态机的PCI Express定义,该状态成为DL_Init和DL_Active状态的中间状态。DL_Protected链路状态可用来中间程度的通信能力,并用来提高AS结构的鲁棒性和HA(高可用性)就绪性。
AS体系结构支持建立称为虚拟信道(VC)的端点到端点逻辑路径。这使得单个交换结构网络可同时服务于多个独立的逻辑互连,每个VC互连AS终端节点以用于控制、管理和数据。每个VC提供它自己的队列,因此一个VC中的堵塞不会在另一个VC中引发堵塞。由于每个VC具有独立的分组排序需求,因此每个VC可不依赖于其他VC地进行调度。
AS体系结构定义了3个VC类型:能够旁路的单播(BVC);只排序的单播(OVC);以及多播(MVC)。BVC具有两个队列——只排序队列和能够旁路的队列。能够旁路的队列提供BVC旁路功能,这对无死锁的协议隧传来说可能是必需的。OVC是单队列单播VC,可适用于面向消息的“推送(push)”流量。MVC用于多播“推送”流量的单队列VC。
为保持分组顺序,只排序分组和能够旁路的分组不能超过以前已排队的只排序分组,而能够旁路的分组不能超过以前已排队的能够旁路的分组。为了防止死锁的可能,只排序的分组可超过以前已排队的能够旁路的分组,所述能够旁路的分组由于缺乏流量控制信用而堵塞了它们的前进。
根据定义,已被只排序的分组旁路的能够旁路的分组(例如已从只排序队列的头部移到能够旁路的队列中)已经满足了BVC的排序需求。后续规则确保以前被旁路的分组被公平对待,以使得它们的流不会陷于可能的饥饿。能够旁路的队列中所有被旁路的分组必需是接下来被移出VC的分组,只要有足够的旁路队列流控制信用来移动它们。这一过程可以继续,直到或者没有足够的旁路队列流控制信用来传播其他待处理的、以前被旁路的分组,或者所有被旁路的分组都已被传播。只有在这些条件之一变为真时,才可以传播来自排序队列头部的分组。这一规则确保已经导致了排序延迟的能够旁路的分组能够尽早前进。
结构加电时,结构中的链路伙伴可协商每个VC类型的最大公共VC数量。在链路训练期间,两个链路伙伴都支持的每个VC类型的最大公共VC集合可被初始化和激活。
链路训练期间,富余的BVC可被转换成OVC。BVC可通过不利用它的旁路功能(例如它的旁路队列和关联逻辑)而工作为OVC。例如,如果链路伙伴A支持3个BVC和一个OVC,而链路伙伴B支持一个BVC和两个OVC,则达成一致的VC数量将是一个BVC和两个0vc,其中链路伙伴A的一个BVC转换成OVC。
AS分组可被分配到8种可能的流量等级(TC)之一,例如TC0、TC1、......、TC7。AS设备端口可将接收的分组映射到给定类型的活动VC(例如OVC、BVC或MVC)的端口之一。一个或多个TC分配可被映射到相同的VC,依赖于链路伙伴之间的活动的该类型的VC数量,并且,任何给定的TC必需被映射到AS端口内适当VC类型的单个VC。TC到TC映射是链路伙伴之间活动的所述数量的VC的功能。
PI-5分组产生器
AS体系结构使用事件作为通知机制。当在结构中检测到特定的条件时,可将事件发送到负责处理该特定条件的代理。事件可被分配到事件等级中,每个事件等级可使用等级码来标识。依赖于事件等级,等级还可进一步分成子等级。
AS设备可使用PI-5分组来报告事件。端点必须支持PI-5分组的终结。如果端点接收到PI-5分组,则端点不需要能够处理该分组,并可合法且悄悄地丢弃该端点接收到的任何PI-5分组,例如如果它不能够处理所述分组或者已被配置成丢弃它们的话。根据AS规范,端点必须支持PI-5分组的产生,并且交换机必须产生PI-5分组。
AS设备可包括事件分发单元,以接收事件并产生PI-5分组。PI-5分组可被指引到由存储在产生该事件的AS设备处的路径所指定的事件处理者。
图5示出了根据实施方案的事件分发单元500。事件分发单元500可包括事件仲裁器502、事件识别器例如功能结构访问块504、PI-5分组产生器506、TC到VC映射模块508。
图6是描述根据实施方案的事件分发操作的流程图。事件仲裁器502可和AS设备中的所有事件报告代理相接口。事件仲裁器可从事件报告代理接受事件以及它们的等级/子等级码(方框602),例如以轮转(round robin)方式一次一个地进行。事件仲裁器502可将事件数据传递给分组产生器506,并将事件等级/子等级码传递给功能结构访问块504。
功能结构访问块504可使用等级/子等级码来访问AS设备中的事件功能结构。事件功能结构可包括事件表,该表对该AS能够产生的每个事件等级包括至少一个条目。
功能结构访问块504可从事件表中对应于特定事件的条目读取与该事件相关的信息(方框604)。事件的事件表条目中的信息可表明应如何处理该事件。功能结构访问块504可在下述3个选项之间做出决定:堵塞事件(方框606);本地处理事件(方框608);或产生将要通过AS结构发送到某个代理的PI-5分组(方框610)。表明应产生PI-5分组的事件条目可包括该分组的目的地,并还可包括定义事件到接收该事件的代理的信息。这一信息可由软件产生并和应用相关。
如果功能结构访问块504确定应产生PI-5分组,则分组产生器使用来自发起代理的事件数据和来自功能结构访问块的事件处理数据以产生PI-5分组。在AS路由头部之外,PI-5分组可包括多个双字(dword)(32为数据字),例如分别用于short和long格式的2个或6个双字。
TC到VC映射模块可将所产生的PI-5分组映射到特定的VC(方框612)。事件分发单元然后可发送请求到AS事务层中的发送队列资源,以通过AS结构发送到目的地代理(方框614)。
VC的分组仲裁
事件分发单元和其他PI请求代理可在将分组外发到AS结构之前对特定VC的发送资源(例如发送队列)进行仲裁。在实施方案中,分组仲裁器可向对特定VC的发送资源进行仲裁的多个PI请求代理提供低延迟且快速的数据访问。
如图7所示,分组仲裁器700可控制对特定VC(此例中时BVC VC0)的发送资源的访问。BVC提供一种特殊情形的VC,它们包括两个发送队列——只排序队列702(只接受只排序分组)和能够旁路队列704(只接受能够旁路的分组)。分组仲裁器700可访问BVC的两个发送队列。仲裁器接收来自PI请求代理的外发分组请求,并将来自PI请求代理的实际分组信息传递到适当的发送队列。
PI请求代理可具有一致的和仲裁器700的接口,在此例中是用于PI4、PI5、PI00、PIE(用于建立PI的通用引擎)和PI8的请求代理。仲裁器接口可被扩展以包括额外的供应商相关的PI或将来由ASI-SIG定义的PI。
图8是描述根据实施方案的分组仲裁操作的流程图。仲裁器700和PI请求代理之间使用的总线协议可以是握手协议。当分组从请求代理变为可用时,请求代理可断言一个启动者就绪(irdy)信号。控制单元706可接收来自多个请求代理的irdy信号(方框802)。当接收到多个irdy信号时,控制单元可在这些请求代理之间进行仲裁,例如使用轮转仲裁方案或任何其他仲裁方法,例如优先权或加权。轮转顺序可基于状态机708中的状态的设置。状态可包括能够旁路状态902和只排序状态904,如图9所示。控制单元706可遵循状态机708的轮转顺序,基于请求代理的irdy信号的断言而转移到下一个可用状态。如果没有可用分组,则状态机可保持在当前状态以等待下一个分组。当链路状态是DL_Active时,状态机可以完全操作。但是,当链路状态是DL_Protected时,只有PI00O、PI4O和PI5O状态可操作。
控制单元706可基于仲裁方案选择某个请求代理(方框804)以及请求的分组类型(方框806)。图10示出的示例性电路100用于识别不同PI的分组类型,并区分它们以用于不同的状态。来自每个请求者的数据总线在该请求者可访问的所有状态之间共享。但是,每个状态在控制单元和请求者之间有它自己的握手信号集合。在本实施例中,请求者PI8可发送分组到两个状态,PI8O(只有序)和PI8B(能够旁路)。控制单元可通过多路复用信号和‘0’(LOW)信号1004来分离源irdy信号1002。多路复用器1006的输出可基于分组类型来选择。例如,在图10示出的电路中,如果aspi8_asdn_bypassable信号1008被断言,则aspi8_asdn_irdyb信号1010将被连接到源信号,而aspi8_asdn_irdyo信号1012将是‘0’,相反也是如此。类似地,两个目标就绪(irdy)信号1014和1016可被一起输入到或门1018以产生单个trdy信号1020,此信号可被断言到PI8请求代理。
当仲裁器700断言trdy信号回到PI请求代理(方框808)时,该PI请求代理必须开始传输分组(方框810)。分组仲裁器收集的信息可包括双字使能、分组开始标志、分组结束标志和分组数据。控制单元基于所识别出的分组类型,将分组信息置于正确的总线接口上(方框812)。分组然后可由队列控制器(例如状态机708)置于适当的队列中(方框814)。
图9示出了示例性状态机中的状态和转换。为了清晰,未示出所有的状态转换。PI8B被任意性地选来演示完整的转换箭头集合。其余状态可具有类似的转换箭头。
图11A和11B是分别描述对只排序分组的请求和对能够旁路的分组的请求的状态转换的流程图。如图11A所示,当仲裁器接收到对只排序分组的请求时(方框1102),状态机转移到对应于只排序分组的状态(方框1104)。如果状态机确定只排序分组的发送队列是满的(方框1106),则状态机可在该状态中等待,直到该队列变为可用。该发送队列变为可用时,仲裁器将分组置于只排序队列中(方框1108)。
如图11B所示,当仲裁器接收到对能够旁路的分组的请求时(方框1110),状态机确定能够旁路的队列是否为满(方框1112)。如果能够旁路的队列可用,则状态机转移到对应于能够旁路的分组的状态(方框1114),并将分组置于能够旁路的队列上(方框1116)。如果用于能够旁路的分组的发送队列变满,则状态机可略过对应于能够旁路的分组的状态(方框1118),并转移到对应于下一个只排序分组的状态(方框1120)。被略过的状态会被记住。状态机可如图11A所示地处理只排序分组。一旦能够旁路的队列再次变得可用时(方框1122),状态机可完成它当前的传输,并返回到先前略过的状态(方框1124),并将分组置于能够旁路的队列中(方框1126)。
多个VC的分组仲裁
如图12所示,位于AS事务层中的VC队列下游的分组仲裁器1200可在将发送到AS结构中的分组之间进行仲裁。在实施方式中,分组仲裁器1200可包括状态机1202和多路复用器1204,多路复用器1204与活动VC的传输队列相接口,所述VC可包括(一个或多个)BVC 1206、(一个或多个)OVC 1208和/或(一个或多个)MVC 1210。在每一个时钟周期,分组仲裁器1200可从传输队列之一选择头分组,并将所选择的分组发送到AS结构。
分组仲裁器1200可通过调节分组流量以使高优先权(TC7)分组被首先发送,执行结构管理者的某些职责。由于TC7分组可穿过任何类型的VC,分组仲裁器还可在多个TC7分组之间处理第二级的仲裁。这些决策可在一个时钟周期内作出,因而减少了传输路径中的延迟。
在AS体系结构中,为高优先权流量预留了TC7流量等级。TC7分组可专门映射到对应于指定VC类型的最高标号的活动VC的专用VC。分组仲裁器可为每个VC类型动态识别对应于TC7的VC号。由于每个BVC能够被转换成OVC,这一特征可使得分组仲裁器处理可变的BVC和OVC组合,而不用使用另外的硬件,从而进一步减少了延迟。
图13是描述根据实施方案的分组仲裁操作的流程图。状态机1202确定专用TC7队列是否为空(方框1302),其中专用TC传输队列指只保存TC7分组的队列。状态机可具有对应于多个活动VC的多个状态,并且在一个状态中时,可从对应于该状态的VC队列选择分组。状态机然后保持在对应于专用TC7队列的状态,只要该TC7队列非空(对于专用TC7BVC,状态机可保持在该状态,直到该TC7队列为空)。如果有来自不同VC的多个专用TC7队列(方框1304),则状态机可使用轮转仲裁方案在对应于多数专用TC7队列的状态之间进行切换(方框1306)。否则,状态机可穷尽唯一的专用TC7队列的所有分组(方框1308),然后转到对应于非TC7专用VC队列的状态。当TC7专用队列中的所有分组都被穷尽时,状态机可使用轮转仲裁方案在对应于非TC7专用VC之间切换(方框1310)。
已经描述了多个实施方案。但是,应该认识到,可做出许多修改而不会偏离本发明的精神和范围。例如,流程图中的方框可被忽略或乱序执行并仍产生所期望的结果。相应地,其他实施方案也在所附权利要求的范围之内。
Claims (41)
1.一种装置,包括:
事件仲裁器,用于从至少一个所报告的事件中选择一个事件;
事件识别器,用于识别和所述事件相关的信息并确定是否产生事件报告分组;以及
分组产生器,用于产生对应于所述事件的事件报告分组;以及
映射模块,用于将所述事件报告分组映射到在其上发送所述分组的虚拟信道。
2.如权利要求1所述的装置,其中所述事件仲裁器可操作来从高级交换设备中的一个或更多事件报告代理接收事件。
3.如权利要求2所述的装置,其中所述事件识别器可操作来访问所述高级交换设备的功能结构中的事件表中对应于所述事件的条目。
4.如权利要求1所述的装置,其中所述事件识别器可操作来基于所述事件的等级和子等级来识别所述事件。
5.如权利要求1所述的装置,其中所述事件报告分组包括协议接口(PI)-5分组。
6.如权利要求1所述的装置,其中所述事件识别器可操作来确定
是否堵塞所述事件,
是否本地处理所述事件,或
是否产生所述事件报告分组以在交换结构上传输。
7.一种方法,包括:
从一个或更多事件报告代理接收一个或更多事件;
选择所述事件之一;
识别和所述事件相关的信息;
确定是否产生对应于所述事件的事件报告分组;
产生所述事件报告分组,该事件报告分组具有流量等级;以及
将所述事件报告分组的流量等级映射到在其上发送所述分组的虚拟信道。
8.如权利要求7所述的方法,其中所述接收所述一个或更多事件的操作包括从高级交换设备中的一个或更多事件报告代理接收一个或更多事件。
9.如权利要求8所述的方法,其中所述识别和所述事件相关的信息的操作包括访问所述高级交换设备的功能结构中的事件表中对应于所述事件的条目。
10.一种包括机器可读介质的制品,该介质包括的机器可执行指令使得机器:
从一个或更多事件报告代理接收一个或更多事件;
选择所述事件之一;
识别和所述事件相关的信息;
确定是否产生对应于所述事件的事件报告分组;
产生所述事件报告分组,该事件报告分组具有流量等级;以及
将所述事件报告分组的流量等级映射到在其上发送所述分组的虚拟信道。
11.如权利要求10所述的制品,其中使得所述机器接收所述一个或更多事件的指令包括使得所述机器从高级交换设备中的一个或更多事件报告代理接收一个或更多事件的指令。
12.如权利要求11所述的制品,其中使得所述机器识别和所述事件相关的信息的指令包括使得所述机器访问所述高级交换设备的功能结构中的事件表中对应于所述事件的条目的指令。
13.一种系统,包括:
交换结构;以及
耦合到该交换结构的节点,该节点包括:
事件仲裁器,用于从一个或更多所报告的事件中选择一个事件;
事件识别器,用于识别和所述事件相关的信息并确定是否产生事件报告分组;
分组产生器,用于产生对应于所述事件的事件报告分组,所述事件报告分组具有流量等级;以及
映射模块,用于将所述事件报告分组的流量等级映射到在其上发送所述分组的虚拟信道。
14.如权利要求13所述的系统,其中所述交换结构包括高级交换网络。
15.一种装置,包括:
对应于虚拟信道的第一队列;
对应于该虚拟信道的第二队列;
控制单元,用于
从一个或更多可用分组选择一个分组,并确定所述分组属于第一类型还是第二类型;以及
队列控制器,用于
从所述控制单元接收所述分组,
如果所述分组属于所述第一类型并且所述第一队列非满,则将所述分组存储在所述第一队列中,并且,响应于所述第一队列为满,则等待,直到所述第一队列非满,并且
如果所述分组属于所述第二类型并且所述第二队列非满,则将所述分组存储在所述第二队列中,并且,响应于所述第二队列为满,则等待属于所述第一类型的分组。
16.如权利要求15所述的装置,其中所述队列控制器可操作来:
响应于所述分组属于所述第二类型且所述第二队列为满,则接收所述第一类型的分组;
如果所述第一队列非满,则将所述第一类型的分组存储在所述第一队列中,并且,响应于所述第一队列为满,则等待,直到所述第一队列非满;以及
在将所述第一类型的分组存储在所述第一队列中之后,如果所述第二队列非满则将所述第二类型的分组存储在第二队列中,并且,响应于所述第二队列为满,等待另一个所述第一类型的分组。
17.如权利要求15所述的装置,其中所述队列控制器包括状态机,该状态机包括对应于属于所述第一类型的分组的一个或更多状态,以及对应于属于所述第二类型的分组的一个或更多状态。
18.如权利要求15所述的装置,其中所述装置包括高级交换设备。
19.如权利要求18所述的装置,其中所述虚拟信道包括能够旁路的虚拟信道,
其中所述第一类型的分组包括只排序分组,并且
其中所述第二类型的分组包括能够旁路的分组。
20.一种方法,包括:
从虚拟信道的一个或更多可用分组选择一个分组;
确定所述分组属于第一类型还是第二类型;
如果所述分组属于所述第一类型并且所述第一队列非满,则将所述分组存储在第一队列中,并且,响应于所述第一队列为满,则等待,直到所述第一队列非满;以及
如果所述分组属于所述第二类型并且所述第二队列非满,则将所述分组存储在所述第二队列中,并且,响应于所述第二队列为满,则等待属于所述第一类型的分组。
21.如权利要求20所述的方法,其中所述将所述分组存储在所述第二队列中的操作还包括:
接收所述第一类型的分组;
如果所述第一队列非满,则将所述第一类型的分组存储在所述第一队列中,并且,响应于所述第一队列为满,则等待,直到所述第一队列非满;以及
在将所述第一类型的分组存储在所述第一队列中之后,如果所述第二队列非满则将所述第二类型的分组存储在第二队列中,并且,响应于所述第二队列为满,等待另一个所述第一类型的分组。
22.如权利要求20所述的方法,其中所述选择分组的操作包括在高级交换网络中选择用于能够旁路的虚拟信道的分组。
23.如权利要求20所述的方法,其中所述确定操作包括确定所述分组是只排序分组还是能够旁路的分组。
24.一种包括机器可读介质的制品,该介质包括的机器可执行指令使得机器:
从虚拟信道的一个或更多可用分组选择一个分组;
确定所述分组属于第一类型还是第二类型;
如果所述分组属于所述第一类型并且第一队列非满,则将所述分组存储在第一队列中,并且,响应于所述第一队列为满,则等待,直到所述第一队列非满;以及
如果所述分组属于所述第二类型并且第二队列非满,则将所述分组存储在所述第二队列中,并且,响应于所述第二队列为满,则等待属于所述第一类型的分组。
25.如权利要求24所述的制品,其中所述虚拟信道包括高级交换网络中的能够旁路的虚拟信道。
26.一种系统,包括:
交换结构;以及
耦合到该交换结构的节点,该节点包括:
对应于虚拟信道的第一队列;
对应于该虚拟信道的第二队列;
控制单元,用于
从一个或更多可用分组选择一个分组,并确定所述分组属于第一类型还是第二类型;以及
队列控制器,用于
从所述控制单元接收所述分组,
如果所述分组属于所述第一类型并且所述第一队列非满,则将所述分组存储在所述第一队列中,并且,响应于所述第一队列为满,则等待,直到所述第一队列非满,并且
如果所述分组属于所述第二类型并且所述第二队列非满,则将所述分组存储在所述第二队列中,并且,响应于所述第二队列为满,则等待属于所述第一类型的分组。
27.如权利要求26所述的系统,其中所述虚拟信道包括高级交换系统中的能够旁路的虚拟信道,
其中所述第一类型的分组包括只排序分组,并且
其中所述第二类型的分组包括能够旁路的分组。
28.一种装置,包括:
从多个分组队列接收多个分组的接口,每个分组队列对应于一个虚拟信道;以及
分组仲裁器,用于确定所述多个分组包括一个或更多高优先权分组,并从所述高优先权分组进行选择,直到穷尽所述高优先权分组。
29.如权利要求28所述的装置,其中所述多个分组队列包括一个或更多只包括高优先权分组的专用高优先权分组队列。
30.如权利要求29所述的装置,其中所述仲裁器可操作来
确定所述多个分组队列是否包括多个高优先权分组队列,并且
使用轮转方案从所述多个高优先权分组队列进行选择,直到穷尽所述高优先权分组。
31.如权利要求28所述的装置,其中所述接口包括多路复用器,并且所述分组仲裁器包括状态机,该状态机包括用于每个分组队列的状态。
32.如权利要求28所述的装置,其中所述装置包括高级交换设备。
33.如权利要求32所述的装置,其中所述高优先权分组包括TC7分组。
34.一种方法,包括:
从多个分组队列接收多个分组,每个分组队列对应于一个虚拟信道;
确定所述多个分组是否包括一个或更多高优先权分组;以及
从所述高优先权分组进行选择,直到穷尽所述高优先权分组。
35.如权利要求34所述的方法,还包括:
确定所述多个分组队列是否包括多个高优先权分组队列;以及
响应于所述多个分组队列包括多个高优先权分组队列,使用轮转方案从所述多个高优先权分组队列进行选择,直到穷尽所述高优先权分组。
36.如权利要求34所述的方法,其中所述接收所述多个分组的操作包括在高级交换设备中从多个分组队列接收多个分组。
37.如权利要求36所述的方法,其中所述确定操作包括确定所述多个分组是否包括一个或更多TC7分组。
38.一种包括机器可读介质的制品,所述介质包括可使得机器进行下述操作的机器可执行指令:
从多个分组队列接收多个分组,每个分组队列对应于一个虚拟信道;
确定所述多个分组是否包括一个或更多高优先权分组;以及
从所述高优先权分组进行选择,直到穷尽所述高优先权分组。
39.如权利要求38所述的制品,其中所述高优先权分组包括TC7分组。
40.一种系统,包括:
交换结构;以及
耦合到该交换结构的节点,该节点包括:
从多个分组队列接收多个分组的接口,每个分组队列对应于一个虚拟信道;以及
分组仲裁器,用于确定所述多个分组是否包括一个或更多高优先权分组,并且从所述高优先权分组进行选择,直到穷尽所述高优先权分组。
41.如权利要求40所述的系统,其中所述交换结构包括高级交换网络,并且其中所述高优先权分组包括TC7分组。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/024,361 US20060140126A1 (en) | 2004-12-27 | 2004-12-27 | Arbitrating virtual channel transmit queues in a switched fabric network |
US11/024,361 | 2004-12-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1798102A true CN1798102A (zh) | 2006-07-05 |
CN100531125C CN100531125C (zh) | 2009-08-19 |
Family
ID=36283845
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005101328692A Expired - Fee Related CN100531125C (zh) | 2004-12-27 | 2005-12-27 | 在交换结构网络中仲裁虚拟信道传输队列 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20060140126A1 (zh) |
EP (1) | EP1832064A2 (zh) |
CN (1) | CN100531125C (zh) |
WO (1) | WO2006072060A2 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104954254A (zh) * | 2013-12-27 | 2015-09-30 | 凯为公司 | 互连多个处理引擎的芯片上路由器的矩阵及使用其进行路由的方法 |
CN105867835A (zh) * | 2015-01-23 | 2016-08-17 | 深圳市硅格半导体有限公司 | 存储装置数据服务质量管理方法及存储装置 |
US10749800B2 (en) | 2013-12-30 | 2020-08-18 | Cavium International | Apparatus and method of generating lookups and making decisions for packet modifying and forwarding in a software-defined network engine |
US10782907B2 (en) | 2013-12-27 | 2020-09-22 | Marvell Asia Pte, Ltd. | Method and system for reconfigurable parallel lookups using multiple shared memories |
US10785169B2 (en) | 2013-12-30 | 2020-09-22 | Marvell Asia Pte, Ltd. | Protocol independent programmable switch (PIPS) for software defined data center networks |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060050645A1 (en) * | 2004-09-03 | 2006-03-09 | Chappell Christopher L | Packet validity checking in switched fabric networks |
US7287114B2 (en) * | 2005-05-10 | 2007-10-23 | Intel Corporation | Simulating multiple virtual channels in switched fabric networks |
US7856026B1 (en) * | 2005-06-28 | 2010-12-21 | Altera Corporation | Configurable central memory buffered packet switch module for use in a PLD |
US20070070886A1 (en) * | 2005-09-29 | 2007-03-29 | Seth Zirin | Modifying an endpoint node connection associated with a destination |
US7664904B2 (en) * | 2006-03-10 | 2010-02-16 | Ricoh Company, Limited | High speed serial switch fabric performing mapping of traffic classes onto virtual channels |
US7764675B2 (en) * | 2006-05-30 | 2010-07-27 | Intel Corporation | Peer-to-peer connection between switch fabric endpoint nodes |
US20080089321A1 (en) * | 2006-10-17 | 2008-04-17 | Cypress Semiconductor Corp. | Electronic Switch Architecture and Method having Multiple Ports Coupled by a Single Data Link for Transferring Different Data Types Across the Link |
US8930602B2 (en) | 2011-08-31 | 2015-01-06 | Intel Corporation | Providing adaptive bandwidth allocation for a fixed priority arbiter |
US9021156B2 (en) | 2011-08-31 | 2015-04-28 | Prashanth Nimmala | Integrating intellectual property (IP) blocks into a processor |
US8711875B2 (en) | 2011-09-29 | 2014-04-29 | Intel Corporation | Aggregating completion messages in a sideband interface |
US8874976B2 (en) | 2011-09-29 | 2014-10-28 | Intel Corporation | Providing error handling support to legacy devices |
US8775700B2 (en) | 2011-09-29 | 2014-07-08 | Intel Corporation | Issuing requests to a fabric |
US8929373B2 (en) | 2011-09-29 | 2015-01-06 | Intel Corporation | Sending packets with expanded headers |
US8713240B2 (en) | 2011-09-29 | 2014-04-29 | Intel Corporation | Providing multiple decode options for a system-on-chip (SoC) fabric |
US8713234B2 (en) | 2011-09-29 | 2014-04-29 | Intel Corporation | Supporting multiple channels of a single interface |
US8805926B2 (en) * | 2011-09-29 | 2014-08-12 | Intel Corporation | Common idle state, active state and credit management for an interface |
US9053251B2 (en) | 2011-11-29 | 2015-06-09 | Intel Corporation | Providing a sideband message interface for system on a chip (SoC) |
US10911261B2 (en) | 2016-12-19 | 2021-02-02 | Intel Corporation | Method, apparatus and system for hierarchical network on chip routing |
US10846126B2 (en) | 2016-12-28 | 2020-11-24 | Intel Corporation | Method, apparatus and system for handling non-posted memory write transactions in a fabric |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IL148259A0 (en) * | 1999-09-08 | 2002-09-12 | Mellanox Technologies Ltd | Remote event handling in a packet network |
US20030032426A1 (en) * | 2001-07-24 | 2003-02-13 | Gilbert Jon S. | Aircraft data and voice communications system and method |
US6996658B2 (en) * | 2001-10-17 | 2006-02-07 | Stargen Technologies, Inc. | Multi-port system and method for routing a data element within an interconnection fabric |
US7899030B2 (en) * | 2002-09-11 | 2011-03-01 | Jinsalas Solutions, Llc | Advanced switching architecture |
US7457872B2 (en) * | 2003-10-15 | 2008-11-25 | Microsoft Corporation | On-line service/application monitoring and reporting system |
-
2004
- 2004-12-27 US US11/024,361 patent/US20060140126A1/en not_active Abandoned
-
2005
- 2005-12-27 EP EP05856063A patent/EP1832064A2/en not_active Withdrawn
- 2005-12-27 CN CNB2005101328692A patent/CN100531125C/zh not_active Expired - Fee Related
- 2005-12-27 WO PCT/US2005/047591 patent/WO2006072060A2/en active Application Filing
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104954254A (zh) * | 2013-12-27 | 2015-09-30 | 凯为公司 | 互连多个处理引擎的芯片上路由器的矩阵及使用其进行路由的方法 |
CN104954254B (zh) * | 2013-12-27 | 2019-08-09 | 凯为有限责任公司 | 互连多个处理引擎的芯片上路由器的矩阵及使用其进行路由的方法 |
US10782907B2 (en) | 2013-12-27 | 2020-09-22 | Marvell Asia Pte, Ltd. | Method and system for reconfigurable parallel lookups using multiple shared memories |
US11435925B2 (en) | 2013-12-27 | 2022-09-06 | Marvell Asia Pte, Ltd. | Method and system for reconfigurable parallel lookups using multiple shared memories |
US10749800B2 (en) | 2013-12-30 | 2020-08-18 | Cavium International | Apparatus and method of generating lookups and making decisions for packet modifying and forwarding in a software-defined network engine |
US10785169B2 (en) | 2013-12-30 | 2020-09-22 | Marvell Asia Pte, Ltd. | Protocol independent programmable switch (PIPS) for software defined data center networks |
US11677664B2 (en) | 2013-12-30 | 2023-06-13 | Marvell Asia Pte, Ltd. | Apparatus and method of generating lookups and making decisions for packet modifying and forwarding in a software-defined network engine |
US11824796B2 (en) | 2013-12-30 | 2023-11-21 | Marvell Asia Pte, Ltd. | Protocol independent programmable switch (PIPS) for software defined data center networks |
CN105867835A (zh) * | 2015-01-23 | 2016-08-17 | 深圳市硅格半导体有限公司 | 存储装置数据服务质量管理方法及存储装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2006072060A2 (en) | 2006-07-06 |
WO2006072060A9 (en) | 2006-08-17 |
EP1832064A2 (en) | 2007-09-12 |
US20060140126A1 (en) | 2006-06-29 |
CN100531125C (zh) | 2009-08-19 |
WO2006072060A3 (en) | 2006-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1798102A (zh) | 在交换结构网络中仲裁虚拟信道传输队列 | |
US10838891B2 (en) | Arbitrating portions of transactions over virtual channels associated with an interconnect | |
US8085801B2 (en) | Resource arbitration | |
US8036243B2 (en) | Single chip protocol converter | |
CN1201532C (zh) | 具有中心调度程序的atm交换机及其调度方法 | |
US8099521B2 (en) | Network interface card for use in parallel computing systems | |
US6947433B2 (en) | System and method for implementing source based and egress based virtual networks in an interconnection network | |
US6021132A (en) | Shared memory management in a switched network element | |
US20020048272A1 (en) | Router implemented with a gamma graph interconnection network | |
US8756270B2 (en) | Collective acceleration unit tree structure | |
CN1783839A (zh) | 先进交换体系结构中的虚拟信道的流量控制信用更新 | |
US20060101178A1 (en) | Arbitration in a multi-protocol environment | |
US7124231B1 (en) | Split transaction reordering circuit | |
CN1568464A (zh) | 计算机系统输入/输出节点的标识及仲裁机制 | |
US8670454B2 (en) | Dynamic assignment of data to switch-ingress buffers | |
RU2642383C2 (ru) | Способ передачи информации | |
CN1667602A (zh) | 大规模分布共享系统中的输入输出分组节流方法 | |
Wang et al. | An Effective Approach for Multicast on Multi-core Architecture |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090819 Termination date: 20191227 |