CN116647883A - 增强型虚拟信道切换 - Google Patents
增强型虚拟信道切换 Download PDFInfo
- Publication number
- CN116647883A CN116647883A CN202210409425.2A CN202210409425A CN116647883A CN 116647883 A CN116647883 A CN 116647883A CN 202210409425 A CN202210409425 A CN 202210409425A CN 116647883 A CN116647883 A CN 116647883A
- Authority
- CN
- China
- Prior art keywords
- message
- virtual channel
- node
- queue
- switch
- 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
- 238000013507 mapping Methods 0.000 claims abstract description 22
- 238000011144 upstream manufacturing Methods 0.000 claims abstract description 16
- 238000000034 method Methods 0.000 claims description 45
- 238000004891 communication Methods 0.000 claims description 32
- 239000004744 fabric Substances 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 4
- 239000000872 buffer Substances 0.000 description 18
- 230000008569 process Effects 0.000 description 17
- 230000007246 mechanism Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W36/00—Hand-off or reselection arrangements
- H04W36/0005—Control or signalling for completing the hand-off
- H04W36/0055—Transmission or use of information for re-establishing the radio link
-
- 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
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2483—Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
-
- 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
- H04L47/39—Credit based
-
- 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/52—Queue scheduling by attributing bandwidth to queues
- H04L47/521—Static queue service slot or fixed bandwidth allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/78—Architectures of resource allocation
- H04L47/781—Centralised allocation of resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W36/00—Hand-off or reselection arrangements
- H04W36/06—Reselecting a communication resource in the serving access point
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及增强型虚拟信道切换,提供了一种用于促进分布式计算环境的节点中的增强型虚拟信道切换的系统。在操作期间,系统可以将针对第一虚拟信道的流控制信用分配给分布式计算环境中的上游节点。该系统可以基于所分配的流控制信用,经由包括上游节点的消息路径在第一虚拟信道上接收消息。然后该系统可以将消息存储在与输入端口相关联的队列中,并基于与输入端口相关联的映射规则确定该消息是否是用于在节点处改变第一虚拟信道的候选。如果该消息是候选,则该系统可以将消息与队列中的映射规则中指示的第二虚拟信道相关联。随后,该系统可以在第二虚拟信道上从队列中发送消息。
Description
技术领域
本公开涉及通信网络。更具体地,本公开涉及一种用于促进增强型虚拟信道(VC)切换的方法和系统。
附图说明
图1A图示了根据本申请的一个方面的支持增强型虚拟信道切换的示例性网络。
图1B示出了根据本申请的一个方面的支持增强型虚拟信道切换的示例性交换机。
图2图示了根据本申请的一个方面的示例性使用增强型虚拟信道切换的死锁避免。
图3图示了根据本申请的一个方面的节点处的增强型虚拟信道切换。
图4呈现了图示根据本申请的一个方面的节点处理通过入口VC接收的分组的过程的流程图。
图5A呈现了图示根据本申请的一个方面的节点将分组的入口VC重新映射到出口VC的过程的流程图。
图5B呈现了图示根据本申请的一个方面的节点通过出口VC转发分组的过程的流程图。
图6图示了根据本申请的一个方面的具有增强型虚拟信道切换支持的交换机的示例。
在附图中,相同的附图标记指代相同的附图要素。
具体实施方式
以下描述被呈现以使本领域的任何技术人员能够制造和使用本发明,并且在特定应用及其要求的上下文中被提供。对于本领域技术人员而言,对所公开示例的各种修改将是显然的,并且本文定义的一般原理可以被应用于其他示例和应用而不背离本发明的精神和范围。因此,本发明不限于所示的示例,而是符合与权利要求相一致的最宽范围。
高容量互连是在物理和虚拟设备上运行的各种应用的传输介质。此类应用给它们带来了对带宽的日益增长的需求。因此,装备供应商竞相制造具有强大处理能力的更大型设备。因此,分布式系统可以包括不同类型的节点,诸如发出消息(例如,对请求消息中的一条数据上的事务的请求)的源节点和处理消息(例如,执行被请求的事务)的目的地节点。通常,源节点或目的地节点可以是端点,诸如主机或用户设备。相应的目的地节点可以从多个源节点接收消息。
高容量互连可以包括用于携带消息的通信资源,诸如通信链路(例如,在网络中的两个设备之间)和内部消息路径(例如,经由设备的内部交叉开关结构)。通常,消息可以属于独立的消息流。例如,属于特定应用的从请求设备到响应器设备的消息可以是消息流。由于成本和架构限制会限制通信资源的可用性,因此多个消息流可以共享公共物理通信链路或内部消息路径。可以将相应的消息流指派给单独的VC(其也可以被称为虚拟通道(virtual lane)),以促进对通信资源的一部分进行独立的流控制信用管理。虽然基于VC的通信可以为计算环境带来许多理想的特征,但是关于节点中的VC管理和重新映射的一些问题仍未解决。
本技术的一个方面可以提供一种用于促进分布式计算环境的节点中的增强型虚拟信道切换的系统。在操作期间,系统可以将针对第一虚拟信道的流控制信用分配给分布式计算环境中的上游节点。该系统可以基于所分配的流控制信用,经由包括上游节点的消息路径在第一虚拟信道上接收消息。然后该系统可以将消息存储在与输入端口相关联的队列中,并基于与输入端口相关联的映射规则确定该消息是否是用于在节点处改变第一虚拟信道的候选。如果该消息是候选,则该系统可以将消息与队列中的映射规则中指示的第二虚拟信道相关联。随后,该系统可以在第二虚拟信道上从队列中发送消息。
在该方面的变型中,消息路径可以包括节点的内部交换结构和通信链路。
在该方面的变型中,系统可以用消息在队列中的位置更新与第二虚拟信道相关联的列表。列表的相应条目可以对应于与第二虚拟信道相关联的消息。
在该方面的变型中,系统可以基于与消息相关联地存储在队列中的元数据,将第一虚拟信道确定为针对消息的入口虚拟信道。
在进一步的变型中,系统可以分配针对第一虚拟信道的流信用并将流信用发送到上游节点。
在该方面的变型中,在消息到达节点中的仲裁点之前,消息被与第二虚拟信道相关联。
在进一步的变型中,系统可以基于第二虚拟信道进行仲裁以用于转发消息。
在该方面的变型中,系统可以基于将映射规则中的偏移值应用于第一虚拟信道来确定第二虚拟信道。
在该方面的变型中,第一虚拟信道可以属于第一组虚拟信道,并且第二虚拟信道可以属于第二组虚拟信道。映射规则然后可以指示从第一组虚拟信道到第二组虚拟信道的信道切换。
本文描述的示例通过以下操作解决了分布式计算环境中由于缺乏通信资源而导致的死锁的问题:(i)在节点处针对在入口VC上接收的分组确定出口VC;和(ii)在对该节点的对应输出端口处的资源进行仲裁之前将分组分配给出口VC,从而针对该消息切换VC。以这种方式,节点可以促进入口VC到出口VC之间的增强型虚拟信道切换,而无需使用大量计算。信道切换允许节点绕过入口VC上的任何潜在死锁而转发分组。
在分布式计算环境中,可以在多个消息流之间共享通信资源,诸如节点之间的内部交换结构和通信链路。节点的示例可以包括但不限于交换机和终端设备(例如,主机或用户设备)。通常,属于一个消息流的消息可以不依赖于另一个消息流的消息。因此,这些消息流可以彼此独立。消息流可以被分配VC,以促进对于消息流的细颗粒度的流控制和对应缓冲器资源。因此,VC可以为通信资源段的对应消息流提供流控制信用管理。VC允许消息流使用共享的通信资源而不互相干扰。
利用现有技术,多个消息流可以共享VC。结果,节点可能在VC上接收多个消息流的消息(或分组)。这样的消息可以用VC的标识符(例如,可以在消息中包括VC编号)来标记。因此,当节点在输入端口处在VC上接收消息时,该节点可能在输出端口处没有与该VC相关联(诸如来自上游节点的流信用)的资源来转发消息。这种与该VC相关联的资源稀缺性也可能存在于分布式计算环境中的后续节点中,并导致针对该VC的循环稀缺性。由于这些节点都不能在该VC上转发消息,因此没有节点可以接收针对该VC的信用。针对该VC的信用的不可用性会给VC上的所有消息流造成死锁。
为了解决这个问题,可以在分布式计算环境的节点子集处将第一组VC切换(或重新映射)到第二组VC。如果消息是用于信道切换的候选,则对于在第一组的入口VC上接收的消息,节点可以将入口VC改变为第二组的出口VC。由于节点不依赖于同一VC以进行接收和转发,因此即使针对入口VC的信用不可用,节点也可以转发消息。以这种方式,节点可以避免死锁。此外,为了避免源自节点处的消息流与经过节点的消息流之间的干扰,可以选择经过节点的消息流以进行信道切换。换言之,信道切换可以被应用于来自相邻交换机的传入消息流。如果分布式计算环境复杂,则节点可能会使用多于两组VC。以这种方式,节点可以促进增强型虚拟信道切换来打破转发死锁。
用于信道切换的现有方法可以基于在节点的仲裁点处执行信道切换。节点的仲裁点可以是节点的基于硬件的仲裁器(例如,驻留在专用集成电路(ASIC)芯片中)。仲裁器可以在输出端口(例如,出口链路)的缓冲器或多个内部消息路径之间进行选择。选择(或仲裁)可以基于资源的可用性,诸如与VC相关联的流信用。但是,如果在仲裁点处执行信道切换,则仲裁器必须在所有组的VC上进行仲裁。由此产生的仲裁器可能是复杂且低效的。
通过在节点的入口和仲裁点之间的位置处执行信道切换过程,可以进一步改善该信道切换过程,从而避免消息的增强仲裁。结果,仲裁器可以比现有方法更简单、更小且更高效。增强型虚拟信道切换过程可以针对入口VC上接收到的消息使用虚拟化缓冲器。相应VC的消息可以由诸如列表(例如,链表)的跟踪机制来指示。跟踪机制可以由节点的硬件来维护。由于缓冲器可以是虚拟的,针对单独VC的信用管理可以不依赖于消息在缓冲器中的物理地址。
由于可以基于为入口VC所分配的信用接收消息,所以当消息被存储在与输入端口相关联的缓冲器中时,消息被标记有入口VC。例如,节点可以使用缓冲器的条目中的元数据字段来存储指示入口VC的信息。如果该消息是用于信道切换的候选,则节点可以确定针对该消息的出口VC。节点可以使用重新映射表来确定是否执行虚拟信道切换,并且如果执行,则确定针对该消息的出口VC。因此,如果不执行虚拟信道切换,则消息的出口VC可以与入口VC相同。重新映射表可以被存储或编码在与输入端口相关联的存储位置中。存储位置可以是一件硬件(例如,寄存器)或与交换机相关联的存储器位置。因此,虚拟信道交换可以是可以端口级颗粒度编程的。然而,如果不需要这种灵活性,则可以预先选择通信资源的子集以用于执行信道切换。
然后节点可以用消息的位置(例如,用指向消息的指针)更新出口VC的列表。结果,节点的仲裁器可以基于出口VC进行仲裁,而不需要请求访问所有VC。当仲裁器授权针对该消息的转发请求(即,选择以进行转发)时,消息的标签允许节点确定在入口VC上接收消息。因此,节点可以将针对入口VC的信用分配给上游节点。以这种方式,节点可以促进增强型虚拟信道切换,从而避免分布式计算环境中的死锁。
在本公开中,术语“交换机”在一般意义上使用,并且它可以是指在任何网络层中操作的任何独立或结构交换机。“交换机”不应被解释为将本发明的示例限制为第2层网络。可以将业务转发到外部设备或其他交换机的任何设备都可以被称为“交换机”。可以将业务转发到终端设备的任何物理或虚拟设备(例如,在计算设备上操作的虚拟机或交换机)都可以被称为“交换机”。“交换机”的示例包括但不限于第2层交换机、第3层路由器、路由交换机、Gen-Z或计算快速链接(CXL)网络的组件、处理器设备、或者包括多个相似或异构的较小物理和/或虚拟交换机的结构交换机。
指示诸如“节点”、“机器”、“实体”或“设备”的设备的短语可以指示交换机和诸如用户设备的终端主机。术语“消息”是指可以通过网络一起传送的比特组。“消息”不应被解释为将本示例的示例限制为网络的特定层。“消息”可以被替换为指比特组的其他术语,诸如“信息”、“数据”、“请求”、“响应”、“分组”、“帧”、“信元”、“数据报”、或“事务”。此外,术语“端口”可以是指可以接收、存储或发射数据的端口。“端口”还可以是指能够促进该端口的操作的硬件、软件和/或固件逻辑。
图1A图示了根据本申请的一个方面的支持增强型虚拟信道切换的示例性网络。分布式环境100可以包括多个节点,诸如交换机和终端设备。环境100可以包括网络110,网络110包括交换机101、102、103、104和105。在这个示例中,交换机104可以是透明交换机(例如,透明光交换机)。环境100还可以包括分别耦合到交换机101、102、103和105的终端设备(或主机)112、114、116和118。在一些示例中,网络110可以是CXL网络,并且网络110的相应交换机可以是CXL组件。在这种场景下,网络110中的交换机之间的通信可以基于存储器语义通信。经由网络110转发的相应分组可以被称为事务,并且对应的数据单元可以是flit。在一些其他示例中,网络110可以是以太网、InfiniBand、PCIe、Gen-Z或其他网络,并且可以使用对应的通信协议,诸如因特网协议(IP)、以太网光纤信道(FCoE)或其他协议。
在环境100中,可以在分别源自设备112、114、116和118的多个消息流132、134、136和138之间共享通信资源,诸如交换机101中的内部交换结构106和网络110中的通信链路。例如,消息流132可以从设备112到设备118。类似地,消息流134可以从设备114到设备116。交换机101可以是针对消息流136的临时交换机。通常,这些消息流可以彼此独立。相应的消息流可以被分配VC 121以促进对于消息流的细颗粒度的流控制和对应缓冲器资源。因此,VC 121可以为通信资源段提供流控制信用管理。VC 121可以允许消息流132、134、136和138使用共享的通信资源而不互相干扰。
利用现有技术,消息流132、134、136和138可以共享VC 121。结果,交换机101可能在VC 121上接收消息流132和134的消息。这样的消息(诸如消息流132和134中的消息146和142)可以分别由VC 121的标识符(例如,可以在消息142中包括VC 121的VC编号)来标记。因此,当交换机101在输入端口处在VC 121上接收消息142时,交换机101可能为了转发消息146已经使用了与VC 121相关联的资源(诸如流信用)。因此,交换机101可能在输出端口处没有与VC 121相关联的资源来转发消息142。这种与VC 121相关联的资源稀缺性也可能存在于网络110中的其他交换机中,并导致针对VC 121的循环资源稀缺性。由于这些交换机都不能在VC 121上转发消息,因此没有交换机可以接收针对VC 121的信用。针对VC 121的信用的不可用性会给VC 121上的所有消息流造成死锁。
为了解决这个问题,可以在网络110的交换机子集处将VC 121切换(或重新映射)到VC 124。在操作期间,交换机101可以在入口VC 121上接收消息142。如果消息142是用于信道切换的候选,则交换机101可以将入口VC 121改变为出口VC 124(用箭头标示)。在一些示例中,从VC 121到VC 124的虚拟信道切换可以发生在切换结构106中。结果,即使交换机101耗尽了与VC 121相关联的用于转发消息146的资源,交换机101也可以使用VC 124转发消息142。换句话说,由于交换机101不依赖于同一VC 121以进行转发,所以即使针对VC 121的信用不可用,交换机101也可以转发消息142。以这种方式,交换机101可以避免网络110中的循环死锁,因为网络110中对VC 121的循环依赖性可以在交换机101处通过虚拟信道切换被去除。
此外,为了避免消息流之间的干扰,交换机101可以在交换机101处发起(即,经由边缘端口从终端设备112接收)的消息流132和经过交换机101(即,经由交换机间端口从交换机102接收)的消息流134之间进行区分。然后交换机101可以选择消息流134以用于信道切换。换言之,信道切换可以被应用于来自相邻交换机102的传入消息流。另一方面,交换机101可以继续将VC 121用于消息流132而不应用信道切换。如果环境100复杂,交换机101可以使用多于两组的VC。以这种方式,交换机101可以促进增强型虚拟信道切换来打破网络110中的转发死锁。
用于信道切换的现有方法可以基于在交换机101的仲裁点处执行从VC 121到VC124的信道切换。针对交换机101的仲裁点可以是交换机101的基于硬件的仲裁器170。仲裁器170可以使用交换机101的ASIC来部署。仲裁器170可以在用于交换机101的输出端口(例如,出口链路)的缓冲器或多个内部消息路径之间进行选择。仲裁器170可以基于资源的可用性(诸如与VC 121相关联的流信用)执行选择(或仲裁)。
然而,如果在仲裁点之后执行信道切换,则仲裁器170必须跨与交换机101相关联的所有组的VC进行仲裁。促进这样的信道切换过程可能导致仲裁器170相对复杂和低效。交换机101处针对消息142的信道切换过程可以通过在消息142的入口点处执行该过程而进一步增强,从而避免对消息142的增强仲裁。结果,仲裁器170可以变得比现有方法更简单、更小且更高效。
图1B图示了根据本申请的一个方面的支持增强型虚拟信道切换的示例性交换机。在该示例中,交换机101可以分别经由端口172、174和176耦合到交换机102、104和105。交换机101可以为相应的源设备维护多队列。多队列可以允许为网络端口(或接口)配置多个业务队列。例如,交换机101可以分别针对对应的源,在端口172、174和176处维护多队列152、154和156。相应的多队列可以是在来自源的消息流之间共享的动态分配的多队列。只要针对交换机102的总信用计数符合多队列152的存储器162(例如,随机存取存储器(RAM)模块)的大小,多队列152就可以不在意针对单独VC的对交换机102的信用分配。因此,总信用计数应表示小于或等于存储器162的大小的存储器大小。存储器162可以为相应的VC提供虚拟化缓冲器。
增强型虚拟信道切换过程可以针对入口VC 121上的消息142使用存储器162中的虚拟化缓冲器。由于相同的存储器162可以存储针对相应VC的缓冲器,所以可以通过列表(例如,链表)指示哪个消息属于哪个VC。例如,当交换机101在VC 121上接收到消息142时,存储器162可以存储消息142。然后交换机101可以用消息142在存储器162中的位置更新与VC 121相关联的列表164。类似地,如果交换机101在VC 122上接收到消息144,则存储器162可以存储消息144。然后交换机101可以用消息144在存储器162中的位置更新与VC 122相关联的列表166。列表164和166可以由交换机101的硬件来维护。以这种方式,针对VC 121和122的缓冲器可以是虚拟缓冲器。因此,针对VC 121和122的信用管理可以不依赖于存储器162中的物理地址。
由于可以基于为VC 121所分配的信用接收消息142,因此当消息被存储在存储器162中时,消息142被标记有VC 121(即,消息142的入口VC)。例如,交换机101可以使用存储器162中的虚拟缓冲器的条目中的元数据字段来存储指示VC 121的信息(例如,VC编号)。然后交换机101可以基于重新映射表确定消息142是否是用于信道切换的候选。多队列152可以配备有寄存器150,该寄存器150可以存储与端口172相关联的重新映射表的条目160的子集。条目160中的相应条目可以包括重新映射规则,其可以指示针对经由端口172接收并且将经由输出端口被转发的消息应如何执行信道切换。
基于条目160,交换机101可以确定针对消息142的出口VC 124。以同样的方式,交换机101可以确定针对消息144的出口VC 125。条目160可以指示VC 124和125可以通过分别向VC 121和125添加预定偏移(例如,预定正整数值)来确定。假设VC 121和122分别由VC编号0和1指示,并且偏移值为3。那么VC 124和125可以分别由VC编号3和4指示。条目160还可以指示是否针对入口VC不执行信道切换。由于条目160可以被存储在与输入端口172相关联的寄存器150中。因此,虚拟信道切换可以针对端口172(以及端口174和176)是可编程的。然而,如果不需要这种灵活性,则可以预先选择交换机101处的通信资源的子集以执行信道切换。例如,交换机101内的一组内部消息路径可以始终执行增强型虚拟信道切换。
然后交换机101可以用消息142的位置更新与VC 124(例如,消息142的出口VC)相关联的列表168。该位置可以是指向存储器162中的消息142的物理地址的指针。结果,仲裁器170可以基于VC 124进行仲裁,而不需要访问所有VC。当仲裁器170授权对消息142的转发请求(即,选择以进行转发)时,消息142的标签可以允许交换机101确定在VC 121上接收消息142。因此,交换机101可以将针对VC 121的信用分配给交换机102。即使信道切换在到达交换机101中的仲裁器170之前被执行,也可以针对传入消息的VC 121分配流信用。以这种方式,交换机101可以促进增强型虚拟信道切换来避免环境100中的死锁。
条目160可以由确定环境100中的路径的路由模块来生成。路由模块可以是基于路由协议操作的基于软件的路由守护进程。条目160基于由寄存器150中的重新映射规则所指示的决策选择值(例如,偏移值)来促进配置控制。在一些示例中,决策选择值可以在所建立的路径保持活动时保持静态而不动态改变。此外,相同的重新映射规则可以同一地被应用于多队列152处的相应入口VC。结果,单个重新映射规则可以适用于从输入端口到输出端口的所有业务。图1B中的示例,虚拟信道切换是基于作为输入缓冲器的多队列152来执行的。虚拟信道切换也可以基于促进仲裁点之前的VC重新映射的输出缓冲器158(或任何其他方法)而被部署在交换机101中。换言之,针对消息142的虚拟信道切换可以在消息142到达仲裁器170之前在交换机101中的任何位置处被执行。
图2图示了根据本申请的一个方面的示例性使用增强型虚拟信道切换的死锁避免。如结合图1A所述,消息流132、134、136和138可以共享VC 121。消息流132可以处于终端设备112和118之间,并且消息流134可以处于终端设备114和116之间。结果,交换机101可以在VC 121上分别接收消息流132和134的消息202和204。当交换机101接收到消息流134的消息204时,针对消息204的预期路径可以是经由交换机103到终端设备116。然而,交换机101可能为了将消息202转发到交换机103已经使用了与VC 121相关联的所有当前可用的转发资源(诸如流信用)。结果,交换机101可能无法转发消息204。
交换机103还可以接收消息流136的消息206。当交换机103接收到消息202时,针对消息202的预期路径可以是经由交换机105到终端设备118。然而,交换机103可能为了将消息206转发到交换机105已经使用了与VC 121相关联的所有当前可用的流信用。结果,交换机103可能无法转发消息202。类似地,交换机105可以接收消息流138的消息208。当交换机105接收到消息206时,针对消息206的预期路径可以是经由交换机102到终端设备114。然而,交换机105可能为了将消息208转发到交换机102已经使用了与VC 121相关联的所有当前可用的流信用。结果,交换机105可能无法转发消息206。然而,由于交换机102可能为了将消息204转发到交换机101已经使用了与VC 121相关联的当前可用流信用,所以交换机102可能不能转发消息208。
在这种场景下,消息202、204、206和208可以分别在交换机103、101、105和102中的对应缓冲器中。由于这些交换机都不能在VC 121上转发消息,因此交换机103、101、105和102都不能接收针对VC 121的信用。在此,针对VC 121的信用循环不可用性会对VC 121上的消息流132、134、136和138造成死锁。交换机101、102、103和105处的增强型虚拟信道交换可以通过在不同的出口VC(例如VC 124)上转发消息202、204、206和208来解决此问题。即使交换机101可能没有针对VC 121的信用,交换机101也可以使用针对VC 124的信用以经由预期路径将消息204转发到交换机103。类似地,交换机103、105和102可以使用针对VC 124的信用以分别经由对应的预期路径转发消息202、206和208。尽管图2中未示出,但是消息202、204、206和208在分别由交换机105、103、102和101转发到终端设备118、116、114和112之前,可以可选地被切换回到VC 121。
图3图示了根据本申请的一个方面的节点处的增强型虚拟信道切换。交换机101可以配备有多个端口302、304、306和308。在操作期间,输入端口302可以在VC 321上接收消息342和344。类似地,输入端口304可以在VC 321上接收消息346和348。消息342和346可以经由输出端口308被转发,并且消息344和348可以经由输出端口306被转发。为了促进针对这些消息的增强型虚拟信道切换,交换机101可以使用重新映射机制以确定出口VC。重新映射机制的示例可以包括但不限于:查找包括入口和出口VC之间的映射的数据结构(例如表)、对入口VC应用数学计算(例如,加法、减法、乘法等)、VC集合选择(例如,为一组入口VC选择一组出口VC)以及一对一相关值映射。在这个示例中,交换机101可以维护可以包括一组重新映射规则的重新映射表300,该重新映射规则指示应如何针对输入端口302和304以及输出端口306和308的组合执行信道切换。
对于具有输入端口302和输出端口306的消息,表300的重新映射规则可以指示应通过向入口VC添加偏移值“X”来确定出口VC。在此,X可以表示可以被添加到指示入口VC的VC编号的预定的正整数值或负整数值。类似地,针对输入端口304和输出端口308的重新映射规则可以指示应通过添加偏移值“Y”来确定出口VC。X和Y的值可以相同,也可以由“Z”值分隔,这可以保证所确定的出口VC没有冲突。对于所有其他输入和输出端口组合,重新映射规则可以指示不应执行重新映射。对于这样的组合,入口和出口VC可以保持相同。
因此,对于从输入端口302到输出端口308以及从输入端口304到输出端口306的消息,入口和出口VC保持相同。另一方面,在该示例中,X和Y的值可以是3。因此,对于从输入端口302到输出端口306和从输入端口304到输出端口308的消息,入口VC 321、322和323分别被切换(或重新映射)到出口VC 324、325和326。此外,由于VC 324、325和326被用作出口VC,因此VC 324、325和326不能被用作针对从输入端口302到输出端口306和从输入端口304到输出端口308的消息的入口VC。基于重新映射规则,消息342和348保持在VC 321上。然而,消息344和346在到达仲裁器170之前被切换到VC 324。因此,仲裁器170可以分别在对应的输出端口处基于VC 321、324、324和321对消息342、344、346和348进行仲裁。以这种方式,相同的重新映射规则可以同一地被应用于相应入口VC。因此,单个重新映射规则可以被应用于从输入端口到输出端口的所有业务。如上所述,VC映射可能涉及指派新的VC而不使用表。此外,VC映射可以基于一个或多个重新映射算法,诸如减法、乘法、VC集合选择、一对一相关值映射以及任何其他映射算法。
图4呈现了图示根据本申请的一个方面的节点处理通过入口VC接收的分组的过程的流程图。在操作期间,节点可以经由输入端口在入口VC上接收消息(操作402)。节点然后可以确定与输入端口相关联的多队列中的位置(操作404)并将消息存储在多队列的位置中(操作406)。节点还可以利用入口VC标记消息(操作408)。节点可以将VC编号作为一条元数据存储在与消息相关联的字段中以进行标记。尽管此示例中的过程是基于输入缓冲器来描述的,但是针对消息的虚拟信道切换可以在消息到达仲裁点之前在交换机中的任何位置(例如,输出缓冲器)处执行。
图5A呈现了图示根据本申请的一个方面的节点将分组的入口VC重新映射到出口VC的过程的流程图。在操作期间,节点可以确定与消息相关联的入口VC(操作502)并确定虚拟信道切换是否被启用(操作504)。如果虚拟信道切换被启用,则节点可以确定与消息相关联的输出端口(操作506)并获得与输入和输出端口相关联的重新映射规则(操作508)。
然后节点可以确定入口VC是否需要重新映射(操作510)。如果需要重新映射,则节点可以基于重新映射规则确定针对消息的出口VC(操作514)。如果没有启用虚拟信道切换(操作504)或不需要重新映射(操作510),则节点可以将入口VC维持为出口VC(操作512)。在确定出口VC(操作512或514)后,节点可以用消息在多队列中的位置更新出口VC的列表(操作516)。
图5B呈现了图示根据本申请的一个方面的节点通过出口VC转发分组的过程的流程图。在操作期间,节点可以确定出口VC针对消息而被更新(操作552)并且作为输出端口针对出口VC对消息进行仲裁(操作554)。节点可以确定用于消息的转发资源(例如,流信用)是否可用(操作556)。如果用于消息的转发资源不可用,则节点可以继续作为输出端口针对出口VC对消息进行仲裁(操作554)。
另一方面,如果用于消息的转发资源可用,则节点可以确定与消息相关联的入口VC(操作558)。节点可以根据与消息一起存储在多队列中的元数据来确定入口VC。然后节点可以返回针对入口VC的信用并将信用发送到上游节点(操作560)。随后,节点可以在出口VC上经由输出端口发送消息(操作562)。
图6图示了根据本申请的一个方面的具有增强型虚拟信道切换支持的交换机的示例。在该示例中,交换机600可以包括多个通信端口602、消息处理器610和存储设备650。交换机600还可以包括交换机硬件660(例如,交换机600的处理硬件,诸如其ASIC、FPGA或处理器芯片),其包括基于哪个交换机600处理消息的信息(例如,确定针对消息或分组的输出端口)。消息处理器610从接收到的消息中提取和处理报头信息。消息处理器610可以在消息的报头中识别与交换机600相关联的交换机标识符(例如,MAC地址、IP地址和/或任何其他地址字段)。
通信端口602可以包括用于与其他交换机和/或用户设备通信的交换机间通信信道。通信信道可以经由常规通信端口并基于任何开放或专有格式来实现。通信端口602可以包括能够接收封装在以太网报头中的帧的一个或多个以太网端口。通信端口602还可以包括能够接收IP分组的一个或多个IP端口。IP端口能够接收IP分组,并且可以配置有IP地址。分组处理器610可以处理以太网帧和/或IP分组。通信端口602的相应端口可以操作为入口端口和/或出口端口。
交换机600可以在存储设备650中(例如,在数据库652中)维护与虚拟信道切换相关联的信息。数据库652可以是关系数据库并且可以在一个或多个数据库管理系统(DBMS)实例上运行或者在交换机600中存储的简单信息。数据库652可以存储与交换机600的路由、配置和接口相关联的信息。数据库652还可以存储重新映射表。交换机600可以包括信道切换逻辑块630,其可以促进交换机600处的增强型虚拟信道切换。信道切换逻辑块630可以包括入口逻辑块632、重新映射逻辑块634和出口逻辑块636。
入口逻辑块632可以将消息存储于在入口VC上交换机600处接收的多队列中。入口逻辑块632也可以用入口VC标记消息。重新映射逻辑块634可以基于对应的重新映射规则确定出口VC。重新映射逻辑块634还可以更新与出口VC相关联的列表。出口逻辑块636可以基于出口VC进行仲裁。出口逻辑块636可以进一步基于标记信息确定针对消息的入口VC并且针对入口VC分配信用。
本详细描述中描述的数据结构和代码通常被存储在计算机可读存储介质上,该介质可以是可以存储代码和/或数据以供计算机系统使用的任何设备或介质。计算机可读存储介质包括但不限于触发器、锁存器、寄存器、易失性存储器、非易失性存储器、磁和光存储设备(诸如磁盘、磁带、CD(压缩盘)、DVD(数字多功能盘或数字视频光盘))或能够存储现在已知或以后开发的计算机可读介质的其他介质。
在详细描述部分中描述的方法和过程可以被体现为代码和/或数据,其可以被存储在如上所述的计算机可读存储介质中。当计算机系统读取并执行存储在计算机可读存储介质上的代码和/或数据时,计算机系统执行体现为数据结构和代码并存储在计算机可读存储介质内的方法和过程。
本文描述的方法和过程可以由硬件模块或装置执行和/或被包括在硬件模块或装置中。这些模块或装置可以包括但不限于专用集成电路(ASIC)芯片、现场可编程门阵列(FPGA)、在特定时间执行特定软件模块或一段代码的专用或共享处理器、和/或现在已知或以后开发的其他可编程逻辑器件。当硬件模块或设备被激活时,它们执行包括在其中的方法和过程。
仅出于说明和描述的目的而呈现了本发明的示例的前述描述。它们并非旨在穷尽或限制本公开。因此,许多修改和变型对于本领域技术人员来说将是显然的。本发明的范围由所附权利要求来限定。
Claims (20)
1.一种方法,包括:
从分布式计算环境的节点将针对第一虚拟信道的流控制信用分配给所述分布式计算环境中的上游节点;
基于所分配的流控制信用,经由包括所述上游节点的消息路径在所述第一虚拟信道上接收消息;
将所述消息存储在与输入端口相关联的队列中;
基于与所述输入端口相关联的映射规则,确定所述消息是否是用于在所述节点处改变所述第一虚拟信道的候选;
响应于所述消息是候选,将所述消息与所述队列中的所述映射规则中指示的第二虚拟信道相关联;以及
在所述第二虚拟信道上从所述队列发送所述消息。
2.根据权利要求1所述的方法,其中所述消息路径包括节点的内部交换结构和通信链路。
3.根据权利要求1所述的方法,还包括:用所述消息在所述队列中的位置更新与所述第二虚拟信道相关联的列表,其中所述列表的相应条目对应于与所述第二虚拟信道相关联的消息。
4.根据权利要求1所述的方法,还包括:基于与所述消息相关联地存储在所述队列中的元数据,将所述第一虚拟信道确定为针对所述消息的入口虚拟信道。
5.根据权利要求4所述的方法,还包括:
分配针对所述第一虚拟信道的流信用;以及
将所述流信用发送到所述上游节点。
6.根据权利要求1所述的方法,其中在所述消息到达所述节点中的仲裁点之前,所述消息被与所述第二虚拟信道相关联。
7.根据权利要求6所述的方法,还包括:基于所述第二虚拟信道进行仲裁以用于转发所述消息。
8.根据权利要求1所述的方法,还包括:基于将所述映射规则中的偏移值应用于所述第一虚拟信道来确定所述第二虚拟信道。
9.根据权利要求1所述的方法,其中所述第一虚拟信道属于第一组虚拟信道并且所述第二虚拟信道属于第二组虚拟信道,并且其中所述映射规则指示从所述第一组虚拟信道到所述第二组虚拟信道的信道切换。
10.一种存储有指令的非暂态计算机可读存储介质,所述指令在由计算机执行时使所述计算机执行方法,所述方法包括:
从分布式计算环境的节点将针对第一虚拟信道的流控制信用分配给所述分布式计算环境中的上游节点;
基于所分配的流控制信用,经由包括所述上游节点的消息路径在所述第一虚拟信道上接收消息;
将所述消息存储在与输入端口相关联的队列中;
基于与所述输入端口相关联的映射规则,确定所述消息是否是用于在所述节点处改变所述第一虚拟信道的候选;
响应于所述消息是候选,将所述消息与所述队列中的所述映射规则中指示的第二虚拟信道相关联;以及
在所述第二虚拟信道上从所述队列发送所述消息。
11.根据权利要求10所述的非暂态计算机可读存储介质,其中所述消息路径包括节点的内部交换结构和通信链路。
12.根据权利要求10所述的非暂态计算机可读存储介质,其中所述方法还包括:用所述消息在所述队列中的位置更新与所述第二虚拟信道相关联的列表,其中所述列表的相应条目对应于与所述第二虚拟信道相关联的消息。
13.根据权利要求10所述的非暂态计算机可读存储介质,其中所述方法还包括:基于与所述消息相关联地存储在所述队列中的元数据,将所述第一虚拟信道确定为针对所述消息的入口虚拟信道。
14.根据权利要求13所述的非暂态计算机可读存储介质,其中所述方法还包括:
分配针对所述第一虚拟信道的流信用;以及
将所述流信用发送到所述上游节点。
15.根据权利要求10所述的非暂态计算机可读存储介质,其中在所述消息到达所述节点中的仲裁点之前,所述消息被与所述第二虚拟信道相关联。
16.根据权利要求15所述的非暂态计算机可读存储介质,其中所述方法还包括:基于所述第二虚拟信道进行仲裁以用于转发所述消息。
17.根据权利要求10所述的非暂态计算机可读存储介质,其中所述方法还包括:基于将所述映射规则中的偏移值应用于所述第一虚拟信道来确定所述第二虚拟信道。
18.根据权利要求10所述的非暂态计算机可读存储介质,其中所述第一虚拟信道属于第一组虚拟信道,并且所述第二虚拟信道属于第二组虚拟信道,并且其中所述映射规则指示从所述第一组虚拟信道到所述第二组虚拟信道的信道切换。
19.一种计算机系统,包括:
处理器;
出口逻辑块,用于从所述计算机系统向分布式计算环境中的上游节点分配针对第一虚拟信道的流控制信用;
入口逻辑块,用于:
基于所分配的流控制信用,经由包括所述上游节点的消息路径在所述第一虚拟信道上接收消息;以及
将所述消息存储在与输入端口相关联的队列中;
重新映射逻辑块,用于:
基于与所述输入端口相关联的映射规则,确定所述消息是否是用于在所述节点处改变所述第一虚拟信道的候选;以及
响应于所述消息是候选,将所述消息与所述队列中的所述映射规则中指示的第二虚拟信道相关联;并且
其中所述出口逻辑块还用于在所述第二虚拟信道上从所述队列发送所述消息。
20.根据权利要求19所述的计算机系统,其中所述重新映射逻辑块还用于:用所述消息在所述队列中的位置更新与所述第二虚拟信道相关联的列表,其中所述列表的相应条目对应于与所述第二虚拟信道相关联的消息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/672,481 US11888751B2 (en) | 2022-02-15 | 2022-02-15 | Enhanced virtual channel switching |
US17/672,481 | 2022-02-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116647883A true CN116647883A (zh) | 2023-08-25 |
CN116647883B CN116647883B (zh) | 2024-08-02 |
Family
ID=87430469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210409425.2A Active CN116647883B (zh) | 2022-02-15 | 2022-04-19 | 增强型虚拟信道切换 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11888751B2 (zh) |
CN (1) | CN116647883B (zh) |
DE (1) | DE102022108274A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230254253A1 (en) * | 2022-02-09 | 2023-08-10 | Samsung Electronics Co., Ltd. | Message split-aggregation for multi-stage electrical interconnection network |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050063394A1 (en) * | 2003-09-18 | 2005-03-24 | Brocade Communications Systems, Inc. | Virtual channel remapping |
CN107005487A (zh) * | 2014-12-29 | 2017-08-01 | 甲骨文国际公司 | 用于支持联网设备中的高效虚拟输出队列(voq)资源利用的系统和方法 |
CN107005489A (zh) * | 2014-12-29 | 2017-08-01 | 甲骨文国际公司 | 用于支持联网设备中的高效虚拟输出队列(voq)分组冲刷方案的系统和方法 |
US20200076742A1 (en) * | 2018-08-28 | 2020-03-05 | Hewlett Packard Enterprise Development Lp | Sending data using a plurality of credit pools at the receivers |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5905729A (en) * | 1995-07-19 | 1999-05-18 | Fujitsu Network Communications, Inc. | Mapping a data cell in a communication switch |
KR100451258B1 (ko) * | 2002-06-12 | 2004-10-06 | (주)씨앤에스 테크놀로지 | 디지털 방송의 가상 채널 맵핑 및 채널 튜닝방법 |
US7856026B1 (en) * | 2005-06-28 | 2010-12-21 | Altera Corporation | Configurable central memory buffered packet switch module for use in a PLD |
US8625427B1 (en) * | 2009-09-03 | 2014-01-07 | Brocade Communications Systems, Inc. | Multi-path switching with edge-to-edge flow control |
US9515946B2 (en) * | 2014-07-01 | 2016-12-06 | Netronome Systems, Inc. | High-speed dequeuing of buffer IDS in frame storing system |
US10693811B2 (en) * | 2018-09-28 | 2020-06-23 | Hewlett Packard Enterprise Development Lp | Age class based arbitration |
-
2022
- 2022-02-15 US US17/672,481 patent/US11888751B2/en active Active
- 2022-04-06 DE DE102022108274.1A patent/DE102022108274A1/de active Pending
- 2022-04-19 CN CN202210409425.2A patent/CN116647883B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050063394A1 (en) * | 2003-09-18 | 2005-03-24 | Brocade Communications Systems, Inc. | Virtual channel remapping |
CN107005487A (zh) * | 2014-12-29 | 2017-08-01 | 甲骨文国际公司 | 用于支持联网设备中的高效虚拟输出队列(voq)资源利用的系统和方法 |
CN107005489A (zh) * | 2014-12-29 | 2017-08-01 | 甲骨文国际公司 | 用于支持联网设备中的高效虚拟输出队列(voq)分组冲刷方案的系统和方法 |
US20200076742A1 (en) * | 2018-08-28 | 2020-03-05 | Hewlett Packard Enterprise Development Lp | Sending data using a plurality of credit pools at the receivers |
Also Published As
Publication number | Publication date |
---|---|
CN116647883B (zh) | 2024-08-02 |
US20230262001A1 (en) | 2023-08-17 |
US11888751B2 (en) | 2024-01-30 |
DE102022108274A1 (de) | 2023-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11601359B2 (en) | Resilient network communication using selective multipath packet flow spraying | |
CN107710159B (zh) | 用于无损网络中的高效虚拟化的系统和方法 | |
US8891375B2 (en) | System and method for virtual Ethernet interface binding | |
US6839794B1 (en) | Method and system to map a service level associated with a packet to one of a number of data streams at an interconnect device | |
US9172655B1 (en) | Systems and methods for quality of service in networks | |
US9007920B2 (en) | QoS in heterogeneous NoC by assigning weights to NoC node channels and using weighted arbitration at NoC nodes | |
US9565115B2 (en) | Virtual machine traffic engineering | |
US10819640B1 (en) | Congestion avoidance in multipath routed flows using virtual output queue statistics | |
US20190116129A1 (en) | USING ATTRIBUTE VECTOR FOR DYNAMIC CONTENT-BASED ATTRIBUTE QoS FOR NETWORKING AND INTERCONNECT FABRICS | |
US9264383B1 (en) | Systems and methods for quality of service for link aggregation groups | |
Mohtavipour et al. | A novel packet exchanging strategy for preventing HoL-blocking in fat-trees | |
CN116647883B (zh) | 增强型虚拟信道切换 | |
US10616116B1 (en) | Network traffic load balancing using rotating hash | |
US11552907B2 (en) | Efficient packet queueing for computer networks | |
CN107852378B (zh) | 用于在高性能计算环境中支持可伸缩的基于位图的P_Key表的系统和方法 | |
US8976802B2 (en) | Prediction-based switch allocator | |
US11895015B1 (en) | Optimized path selection for multi-path groups | |
US9590897B1 (en) | Methods and systems for network devices and associated network transmissions | |
US9225672B1 (en) | Systems and methods for packet grouping in networks | |
US8996798B1 (en) | Systems and methods for using TCAMs in network devices | |
US9154455B1 (en) | Method and system for determining drop eligibility of network information | |
US9590924B1 (en) | Network device scheduler and methods thereof | |
US10228852B1 (en) | Multi-stage counters | |
US9258273B2 (en) | Duplicating packets efficiently within a network security appliance | |
US9154569B1 (en) | Method and system for buffer management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |