CN112350929B - 以虚拟通道在拓扑中产生无死锁路由的装置和方法 - Google Patents
以虚拟通道在拓扑中产生无死锁路由的装置和方法 Download PDFInfo
- Publication number
- CN112350929B CN112350929B CN202010793649.9A CN202010793649A CN112350929B CN 112350929 B CN112350929 B CN 112350929B CN 202010793649 A CN202010793649 A CN 202010793649A CN 112350929 B CN112350929 B CN 112350929B
- Authority
- CN
- China
- Prior art keywords
- switch
- route
- hop
- turn
- dimension
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/122—Shortest path evaluation by minimising distances, e.g. by selecting a route with minimum of number of hops
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/06—Deflection routing, e.g. hot-potato routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/18—Loop-free operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/4031—Coupling between buses using bus bridges with arbitration
- G06F13/4036—Coupling between buses using bus bridges with arbitration and deadlock prevention
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/127—Shortest path evaluation based on intermediate node capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/22—Alternate routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/42—Centralised routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/58—Association of routers
- H04L45/586—Association of routers of virtual routers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及以最小数目虚拟通道在无损笛卡尔拓扑中产生无死锁路由。一种装置包括网络接口和处理器。网络接口与包括以具有多个维度的笛卡尔拓扑互连的交换机的网络进行通信。处理器预定义笛卡尔拓扑中的转弯的转弯类型,每个转弯沿着具有相同或不同的相应标识的第一维度和第二维度穿越第一跳和第二跳,并且每个转弯类型至少由第一维度和第二维度的标识来定义。处理器通过基于防止由候选路由导致的死锁情况所需的VL数目评估候选路由来搜索从源交换机到目标交换机的优选路由。所需的VL数目取决于候选路由形成的转弯类型的序列模式。处理器对网络中的一个或多个交换机进行配置以沿着优选路由将分组从源交换机路由到目标交换机。
Description
技术领域
本文描述的实施方式总体上涉及网络通信,并且尤其涉及用于无损笛卡尔拓扑网络中的无死锁路由的方法和系统。
背景技术
通信网络通常包括彼此互连的多个网元,诸如交换机或路由器。交换机通常在将传入的分组发送到选定的下一跳交换机之前对分组进行缓冲,并采用流量控制措施来防止上一跳交换机导致缓冲区溢出。当具有循环依赖性的多个交换机的缓冲区变满时,网络中可能会发生死锁情况。死锁情况很可能发生在诸如网状、圆环和超立方体拓扑等某些网络拓扑中。
避免死锁情况的分组路由方法在本领域中是已知的。例如,美国专利申请公开2018/0145900描述了一种包括网络接口和处理器的装置。所述网络接口被配置用于与网络进行通信,该网络包括以具有多个维度的笛卡尔拓扑互连的多个交换机。所述处理器被配置用于预定义笛卡尔拓扑的维度之间的顺序,通过至少基于沿着到下一跳交换机的穿越从所述维度中的一个维度改变成与预定义顺序相反的另一维度所针对的候选路由的交换机的相应数目评估候选路由来搜索经由网络从源交换机到目标交换机的优选路由,以及对网络中的一个或多个交换机进行配置以沿着优选路由将分组从源交换机路由到目标交换机。
一种用于在笛卡尔拓扑中防止死锁的路由方案称为维序路由(DimensionOrdered Routing,DOR)方案,例如,在“The architecture and programming of theAmetek series 2010multicomputer,"published in Proceedings of the thirdconference on hypercube concurrent computers and applications:Architecture,software,computer systems,and general issues,Volume 1,ACM,1988”中对此进行了描述,该文献通过引用并入于此。例如,在“Deadlock-free message routing inmultiprocessor interconnection networks,"IEEE Transactions on computers,Volume C-36,pages 547-553,May,1987”中描述了用于圆环拓扑的DOR变体,该文献通过引用并入于此。
发明内容
本文描述的实施方式提供了一种装置,该装置包括网络接口和处理器。所述网络接口被配置用于与网络进行通信,所述网络包括以具有多个维度的笛卡尔拓扑互连的多个交换机。所述处理器被配置用于预定义所述笛卡尔拓扑中的转弯(turn)的多个转弯类型,每个转弯沿着第一维度穿越第一跳,随后沿着第二维度穿越第二跳,所述第一维度和第二维度具有相同或不同的相应标识,并且每个转弯类型至少由所述第一维度和第二维度的标识来定义。所述处理器还被配置用于通过至少基于防止由候选路由引起的死锁情况所需的VL数目评估所述候选路由,搜索经由所述网络从源交换机到目标交换机的优选路由。所需的VL数目取决于由所述候选路由中的跳序列形成的转弯的转弯类型的序列模式。所述处理器对所述网络中的所述交换机中的一个或多个交换机进行配置,以沿着所述优选路由将分组从所述源交换机路由到所述目标交换机。
在一些实施方式中,所述处理器被配置用于通过将候选跳序连到所述候选路由并且评估所需的VL数目来评估所述候选路由,所需的VL数目取决于: (i)所述候选跳及随后的所述候选路由的初始跳创建的转弯的转弯类型,以及(ii)在序连所述候选跳之前,所述候选路由中的转弯类型的序列模式。在其他实施方式中,所述处理器被配置用于通过将多个不同的候选跳序连到所述候选路由以产生多个相应的扩展候选路由,以及选择满足预定义路由选择准则的扩展候选路由,来评估所述候选路由。在其他实施方式中,所述路由选择准则包括下列各项中的一项或多项:(i)在所述扩展候选路由中选择最短路径路由;(ii)在所述扩展候选路由中选择具有最少数目的所需VL的扩展候选路由,以及(iii)选择所需的VL数目满足预定义VL预算的扩展候选路由。
在实施方式中,所述处理器被配置用于预定义所述笛卡尔拓扑的维度的标识之间的顺序,以及通过定义以下各项来预定义所述转弯类型:(i)T0转弯类型,其中在顺序方面所述第二维度高于所述第一维度,或者所述第二维度等于所述第一维度并且所述第一跳和第二跳具有相同的正负号,根据给定跳穿越在所述给定跳的维度上具有相应的较高或较低坐标值的交换机,所述给定跳的正负号为正或负,(ii)T1转弯类型,其中在顺序方面所述第二维度低于所述第一维度并且所述第二跳的正负号为正,或者所述第二维度等于所述第一维度,所述第一跳的正负号为负,并且所述第二跳的正负号为正,以及(iii)T2转弯类型,其中在顺序方面所述第二维度低于所述第一维度并且所述第二跳的正负号为负,或者所述第二维度等于所述第一维度,所述第一跳的正负号为正,并且所述第二跳的正负号为负。在另一实施方式中,所述交换机在完好圆环拓扑中互连,并且所述处理器被配置用于通过评估包括所述转弯类型T0、T1和T2中的一个或多个的候选路由来搜索所述优选路由,并且不论包括所述完好圆环拓扑的维度的数目如何,所述完好圆环拓扑中的优选路由需要多达三个VL的VL预算以防止死锁情况。
在一些实施方式中,所述处理器被配置用于对所述交换机进行配置,以将通过穿越给定跳接收的并且与给定VL相关联的分组与VL值重新关联,所述VL值取决于(i)所述给定VL以及(ii)由所述给定跳及随后的所述分组被转发到的下一跳创建的转弯的转弯类型。在其他实施方式中,所述处理器被配置用于通过为所述源交换机的给定入口接口定义用于在不超过预定义 VL预算的情况下将分组从所述源交换机路由到所述目标交换机的至少两个出口接口来为所述交换机定义自适应路由规则,以及对所述交换机进行配置以使用所述至少两个出口接口施加从所述源交换机到所述目标交换机的自适应路由。在其他实施方式中,所述处理器被配置用于通过以下方式建立用于从源交换机路由到目标交换机的自适应路由规则:查找从所述源交换机到所述目标交换机的两个或更多个路由,每个路由满足预定义VL预算;以及基于从所述源交换机穿越到所述源交换机的选定邻居交换机的转弯的转弯类型,并且基于具有从所述选定邻居交换机穿越到所述目标交换机所需的最少数目的VL的预先计算的路由来计算每个路由所需的VL数目。
在实施方式中,所述处理器被配置用于在避免评估其中所述交换机中的至少一个交换机或者将所述交换机中的两个交换机连接起来的物理链路在笛卡尔拓扑中缺失或发生故障的候选路由的同时,搜索所述优选路由。
根据本文描述的实施方式,还提供了一种方法,该方法包括:在与包括以具有多个维度的笛卡尔拓扑互连的多个交换机的网络进行通信的处理器中,预定义所述笛卡尔拓扑中的转弯的多个转弯类型,每个转弯沿着第一维度穿越第一跳,随后沿着第二维度穿越第二跳,所述第一维度和第二维度具有相同或不同的相应标识,并且每个转弯类型至少由所述第一维度和第二维度的标识来定义。通过至少基于防止由候选路由引起的死锁情况所需的VL 数目评估所述候选路由,搜索经由所述网络从源交换机到目标交换机的优选路由。所需的VL数目取决于由所述候选路由中的跳序列形成的转弯的转弯类型的序列模式。对所述网络中的所述交换机中的一个或多个交换机进行配置,以沿着所述优选路由将分组从所述源交换机路由到所述目标交换机。
附图说明
通过本发明实施方式的以下详细描述并结合附图,将会更全面地理解这些实施方式和其他实施方式,在附图中:
图1是示意性地图示根据本文描述的实施方式的计算机系统的框图;
图2是示意性地图示根据本文描述的实施方式的网络交换机的框图;
图3是示意性地图示根据本文描述的实施方式的、以三维(3D)笛卡尔拓扑配置的网络以及在源交换机与目标交换机之间形成转弯序列的跳的路由的示图;以及
图4是示意性地图示根据本文描述的实施方式的、用于在笛卡尔拓扑中构建优选路由的方法的流程图。
具体实施方式
概述
穿越通信网络的分组通常会在沿着路由的交换机中暂时缓冲。在采用无损链路级流量控制的网络中,交换机通常向其上一跳邻居交换机发送指示出交换机缓冲区状态的流量控制通知。上一跳交换机基于这些通知来节制所讨论的链路上的分组传输。在一些实际情况下,循环互连的多个交换机的缓冲区变满,并且因此,这些交换机无法进一步发送或接收分组。此类不期望的情况称为“死锁情况”,或者为了简洁起见,简称为“死锁”。
在一些网络中,交换机按笛卡尔拓扑布置,诸如布置成网状、圆环、超立方体或广义超立方体拓扑。笛卡尔拓扑中的交换机在虚拟网格中互连,并且可以通过相应的笛卡尔坐标来标识。在一些笛卡尔拓扑中,例如,在圆环拓扑中,虚拟网格的边界交换机循环连接。笛卡尔拓扑可以具有任何合适的维数,诸如二维(2D)、三维(3D)或更高维数。
原则上,可以使用上文引用的维序路由(Dimension Ordered Routing, DOR)方案,或者使用DOR与多个缓冲池(称为虚拟缓冲区或虚拟通道(Virtual Lane,VL))的组合来防止笛卡尔拓扑中的死锁。然而,在某些需要路由灵活性的应用中,例如在使用自适应路由的应用中,DOR方案并不适用。另外,当网络中有发生故障或缺失的交换机或交换机间链路时,DOR方案可能不适用。
需要注意的是,一般而言,无死锁是组合的多个路由的属性。例如,如果使用DOR方案来定义网络中的所有路由,则确保了无死锁。然而,如果使用DOR方案得出给定的路由,但存在其他不遵循DOR方案的路由,则这些路由和DOR得出的路由可能共同造成死锁情况。
本文描述的实施方式提供了用于在具有多维笛卡尔拓扑的网络中灵活构建最短路径和无死锁路由的改进的方法和系统。在所公开的技术中,在笛卡尔拓扑中预定义了多个转弯类型,其中每个转弯沿着第一维度穿越第一跳,随后沿着第二维度穿越第二跳,其中第一维度和第二维度具有相同或不同的相应标识。每个转弯类型至少由第一维度和第二维度的标识所定义。
在一些实施方式中,网络管理计算机(也被称为网络管理器)连接到网络并且用于配置网络交换机。为了配置交换机,网络管理器使用实际网络拓扑模型来选择成对的源交换机与目标交换机之间的路由。在实施方式中,网络管理器起始于选定的目标交换机,并以广度优先搜索(Breadth First Search, BFS)顺序来扫描其他交换机。
在一些实施方式中,网络管理器包括处理器,该处理器通过至少基于防止由候选路由导致的死锁情况所需的VL数目评估候选路由,来搜索经由网络从源交换机到目标交换机的优选路由。所需的VL数目取决于由构成候选路由的跳序列形成的转弯的转弯类型的序列模式。网络管理器对网络中的一个或多个交换机进行配置,以便沿着优选路由将分组从源交换机路由到目标交换机。
在一些实施方式中,在BSF扫描期间,处理器通过将候选跳序连到迄今为止计算出的最佳候选路由,并评估所需的VL数目来评估候选路由,所述 VL数目取决于(i)由候选跳及随后的候选路由的初始跳创建的转弯的转弯类型,以及(ii)在序连候选跳之前,候选路由中的转弯类型的序列模式。通过尝试序连多个不同的候选跳,处理器产生多个相应的扩展候选路由,并选择满足预定路由选择准则的扩展候选路由。例如,处理器在扩展候选路由中选择最短路径路由和/或在所检查的候选路由之中具有最少数目的所需VL的路由。
在一些实施方式中,如上所述,在基于最少所需VL数目计算静态路由路线之后,处理器可以建立自适应路由规则,以用于在笛卡尔拓扑中从源交换机穿越到目标交换机。在一些实施方式中,处理器通过以下方式来建立从源交换机路由到目标交换机的自适应路由规则:查找从源交换机到目标交换机的两个或更多个路由,每个路由满足预定义VL预算;以及基于从源交换机穿越到该源交换机的选定邻居交换机的转弯的转弯类型并且基于具有从选定邻居交换机穿越到目标交换机所需的最少数目的VL的预先计算的路由来计算每个路由所需的VL的数目。
在一些实施方式中,系统支持Nq个服务质量(QoS)级别,其中每个 QoS级别使用表示为B的VL预算。在这样的实施方式中,系统需要支持等于Nq·B的VL总数。
在一些实施方式中,每个跳与正号或负号属性相关联,这取决于该跳是穿越到在跳的维度上具有相应的较高坐标值或是较低坐标值的交换机。因此,基于转弯的相应的第一跳和第二跳的维度和正负号来定义转弯类型。
在实施方式中,处理器对交换机进行配置以将通过穿越给定的跳接收到的并且与给定的VL相关联的分组与VL值重新关联,该VL值取决于(i)给定的VL以及(ii)由给定的跳及随后的由所转发的分组穿越的下一跳创建的转弯的转弯类型。
在一些实施方式中,处理器通过为源交换机的给定的入口接口定义用于在不超过源交换机的VL预算的情况下将分组从源交换机路由到目标交换机的至少两个出口接口,来为交换机定义自适应路由规则。处理器对交换机进行配置以使用所述至少两个出口接口施加从源交换机到目标交换机的自适应路由。
在一些实施方式中,在搜索优选路由时,处理器避免评估其中至少一个交换机或者将两个交换机连接起来的物理链路在笛卡尔拓扑中缺失或发生故障的候选路由。
在所公开的技术中,可以将多个虚拟通道(VL)分配给穿越给定路由的分组,以防止死锁。由于交换机通常支持有限数目的虚拟缓冲区或VL,因此所公开的实施方式寻找需要最少VL数目来防止所有死锁情况的优选路由。在所公开的技术中,依据所穿越的底层跳的维度和正负号来指定多个转弯类型。使用这些转弯类型和相关的VL修改规则,可以灵活地选择优选路由,从而在多个候选路由中产生防止死锁所需的最少数目的VL。循环笛卡尔拓扑中的路由可能通过穿越沿着选定维度的三个连续跳而完全跨越拓扑边缘,第一跳和第三跳具有相同的正负号,该正负号与第二(中间)跳的正负号相反。使用本公开中定义的转弯类型确保每个这样的跨越事件增加VL。寻找具有最少VL数目的路由趋向于将相同类型的多个连续转弯聚集成组,这可以产生避免完全跨越循环拓扑中的拓扑边缘的优选路由,从而减少所需的VL数目。
系统描述
图1是示意性地图示根据本文描述的实施方式的计算机系统20的框图。计算机系统20包括多个主机计算机24,所述主机计算机24通过网络30彼此通信并且因此充当网络的网络节点。网络节点24经由相应的网络接口控制器 (NIC)28连接到网络30。尽管在图1的示例中,计算机系统包括表示为 NODE_1…NODE_7的七个网络节点24,实际的计算机系统可以包括任何合适数目的网络节点。
网络30可以包括任何合适的通信网络,例如,InfiniBand(IB)交换机结构,或者其他种类的分组网络,诸如以太网或因特网协议(IP)网络。备选地,网络30可以根据任何其他合适的标准或协议来操作。
网络30通常包括多个网元32,所述网元32根据一定的预定义网络拓扑经由物理链路34互连。网元32例如可以包括交换机、路由器、网桥、网关,或者任何其他合适类型的网元。在本示例中,网元32包括以笛卡尔拓扑(诸如网状、圆环、超立方体或广义超立方体)布置的交换机。每个网络节点24 连接到网络中相应的交换机,并且能够通过网络与所有其他网络节点通信。网络30可以包括一个或多个这样的交换机:其互连到网络中的其他交换机,但不连接到任何网络节点24。在一些实际实施方式中,每个交换机可以连接到多个网络节点。
当给定拓扑中的交换机使用物理链路直接相互连接时,它们被称为“邻居交换机”。在图1的笛卡尔拓扑中,邻居交换机使用物理链路34互连。从给定交换机穿越到邻居交换机的分组穿越拓扑中的一“跳”。在笛卡尔拓扑中,直接互连的两个邻居交换机的坐标在且仅在一个拓扑维度中相差一个或多个坐标单位。例如,网状或超立方体拓扑中的两个邻居交换机的坐标在一个拓扑维度中相差仅一个坐标单位。然而,在圆环和广义超立方体拓扑中,两个邻居交换机的坐标可在一个拓扑维度中相差一个坐标单位或多个坐标单位。
在一些实施方式中,网络30包括D-多维笛卡尔拓扑。每一维度的网元数目可以在所有维度上相同,或者备选地,可以在不同维度之间有所不同。本文所公开的实施方式既适用于其中虚拟网格上的所有交换机(32)和物理链路(34)都存在并发挥功能的完好网络,也适用于其中至少一个交换机或物理链路缺失或失效的出故障网络。
使用中央网络管理计算机(本文称为网络管理器36)来管理网络30,该中央网络管理计算机包括用于连接至网络30的接口28(例如,与网络节点中使用的NIC类似的NIC)和处理器40。在一些其他实施方式中,网络管理器 36可以在网络节点24之一上运行。网络管理器使网络管理员能够经由NIC 设置网络以及向网元供应路由信息。备选地,所述供应的至少一部分由网络管理器自动进行。
在一些实施方式中,网络管理器36知晓网络拓扑,即,网元的标识及其互连的方式,例如,如由网络管理员经由合适的接口(未示出)手动配置的那样。替代地或附加地,网络管理器通过询问网元32来自动学习网络拓扑。
除其他任务外,网络管理器36基于网络拓扑来定义成对的网元之间的路由,并将相关路由信息配置到属于这些路由的网元。
以下描述的实施方式适用于各种笛卡尔拓扑,包括网状、圆环、超立方体和广义超立方体拓扑。假定D维笛卡尔拓扑中的每个交换机与底层虚拟网格的D维坐标相关联。在网状拓扑中,交换机被布置在D维虚拟网格中,并且每个交换机连接到它的在虚拟网格中具有最接近的相应坐标的邻居交换机。圆环拓扑的结构类似于网状拓扑的结构,但是不同于网状拓扑,圆环拓扑额外地包括虚拟网格的边缘处的交换机之间的循环连接。超立方体拓扑是这样一种类型的笛卡尔网状拓扑:其沿着每个维度仅穿越单个跳。广义超立方体拓扑通过互连沿着某个轴的所有交换机而不是仅互连最近坐标的邻居交换机而扩展了圆环拓扑。
D维笛卡尔拓扑中的路由穿越一个或多个跳的序列,其中每个跳沿着路由从交换机(或源节点)穿越到相继的交换机(或目标节点)。每跳穿越一个拓扑维度,该维度对应于在两个交换机之间改变的拓扑坐标。
在一些实施方式中,网络管理器36定义笛卡尔拓扑中的多个转弯类型,其中每个转弯穿越两个连续的跳。构成给定路由的跳序列形成具有相应转弯类型的一定序列模式的转弯序列。如下文所述,网络管理器基于防止死锁所需的VL数目来评估候选路由,该数目取决于与候选路由相对应的转弯类型的序列模式。通过选择优选的候选路由,网络管理器能够定义使用为了防止死锁所需的非常少的VL数目的最短路径无死锁路由,用于不完好拓扑和自适应路由。
尽管在图1的计算机系统20中,网络管理器36被实现在专用网络节点上,但在备选实施方式中,网络管理器可以被实现在网络节点24中之一内,并且其功能由网络节点的处理器执行。进一步备选地,网络中的交换机中的至少一个可以包括附接到处理器的“受管理交换机(managed switch)”,并且网络管理器(或其一部分)可以驻留在受管理交换机上。
图2是示意性地图示根据本文描述的实施方式的网络交换机32的框图。虽然下面的描述主要涉及网络交换机,但所公开的技术可以与各种其他类型的网元一起使用。
交换机32包括多个端口44,该多个端口44用于经由物理链路34与网络 30交换数据分组。在一些实施方式中,给定端口44可以充当用于传入分组的入口接口或者充当用于传出分组的出口接口。备选地,端口44可以同时充当入口接口和出口接口。
交换机32包括缓冲区46,该缓冲区46包括:一个或多个入口队列48,用于储存经由端口44的入口接口从网络到达的分组;以及一个或多个出口队列52,用于储存等待经由端口44的出口接口传输到网络的分组。在一些实施方式中,缓冲区46包括共享缓冲区,其中可以将不同大小的队列动态地分配给不同的入口接口或出口接口,或者根据任何其他合适的准则来进行分配。
穿越网络的分组可能属于不同的流。在一些实施方式中,网络30中的物理链路34各自由多个逻辑通信链路(也称为虚拟信道)所共享。在InfiniBand 中,虚拟信道也称为虚拟通道(VL)。
在一个实施方式中,为了支持多个VL,入口队列48和出口队列52各自被划分成多个逻辑队列,该逻辑队列根据分组被分配给的VL来储存分组。备选地,入口队列48和出口队列52中的每一个包括针对相应VL的多个专用队列。相应地为VL分配的队列在本文中也称为“虚拟缓冲区”。
在实施方式中,交换机32经由入口接口接收分配给输入VL值的分组,并且在经由出口接口中之一将该分组传输回网络之前,用不同的输出VL值替换分组报头中的该输入VL值。从输入VL值到输出VL值的映射是网络管理器提供给交换机的路由信息的一部分。在下面公开的一些实施方式中,改变分配给穿越交换机的分组的VL值用于防止在具有笛卡尔拓扑的网络中的死锁情况。在一些实施方式中,交换机根据以下各项来决定修改所接收到的分组的VL:(i)VL值,例如,所接收到的分组的VL值是偶数还是奇数,以及(ii)由该交换机充当中介的两跳所形成的转弯的类型。
交换机32包括可配置交换机结构54,该可配置交换机结构54根据一定的路由规划在端口44之间转发分组。通常,每个分组属于某个流。通过将某个流路由到某个端口,交换机结构54致使该流的分组通过网络30在某个路由路径上得到路由。
在本专利申请书和权利要求书的上下文中,术语“分组”用于描述通过网络路由的基本数据单元。对于这样的数据单元,不同的网络类型和通信协议使用不同的术语,例如,分组、帧或信元。所有这些数据单元在本文中都被视为分组。
交换机32包括交换机控制器56,该交换机控制器56对交换机结构54 进行配置以施加期望的路由规划。通过控制路由规划,交换机32能够致使分组通过网络30穿越各个路由路径。
在一些实施方式中,交换机32通过允许经由多个出口接口中之一来路由在给定入口接口中接收的分组而支持自适应路由。为了重新路由给定的流,交换机控制器56为交换机经由入口接口接收的流分组选择不同的出口接口。在示例实施方式中,交换机32可以将入口接口与出口接口之间的当前关联保存在转发数据库(Forwarding Database,FDB)(图中未示出)中。备选地,交换机32可以例如每一流保持一组路由规则。在一些情况下,对分组进行路由而不记录供将来使用的任何信息。
在一些实施方式中,转发分组是基于分组报头中的某些字段。所述字段例如可以包括源地址和目标地址、底层协议以及源端口号和目标端口号中的至少一个。在一些实施方式中,转发分组包括计算分组报头中的一个或多个字段的哈希函数,以及使用结果哈希值来为分组选择相应的出口接口。
图1和图2中的计算机系统20、网络管理器36和交换机32的配置是示例配置,其纯粹是为了使概念清晰而选择的。在备选实施方式中,还可以使用任何其他合适的配置。网络管理器36和交换机32的不同元件能够以硬件实现,诸如使用一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA)。在备选实施方式中,网络管理器36和/或交换机32的一些元件,例如,处理器40和/或交换机控制器56,能够以在合适的处理器上执行的软件来实现,或者使用硬件和软件元件的组合来实现。
为清楚起见,从图1和图2中省略了对于理解本申请的原理并非必需的元件,诸如各种接口、寻址电路、定时和排序电路以及调试电路。
在一些实施方式中,处理器40和/或交换机控制器56可以包括通用处理器,该通用处理器以软件编程来执行本文描述的网络管理器和/或交换机功能。软件例如可以通过网络以电子形式下载到处理器,或者可以替代地或附加地将其提供和/或储存在诸如磁、光或电子存储器等非暂时性有形介质上。
笛卡尔拓扑中的路由
两个网元之间的路由可以包括一个或多个路由段。在本上下文中,术语“路由段”或者为简洁起见而简称的“段”是指沿着一个维度穿越两个或更多个连续的交换机的路由或路由的一部分。彼此直接连接的两个交换机(例如,处于笛卡尔拓扑中的邻居交换机)之间的段在本文中也被称为“跳”。
在一些实施方式中,每个跳与正负号属性相关联。当跳穿越到所穿越的维度中的较高坐标值时,该跳的正负号称为“正”。类似地,当跳穿越到所穿越的维度中的较低坐标值时,该跳的正负号称为“负”。
如上所述,在一些实施方式中,网络管理器36定义笛卡尔拓扑中的多种转弯类型。每个转弯沿着第一维度穿越第一跳,随后沿着第二维度穿越第二跳,并且每个转弯类型由第一维度和第二维度的标识以及由该转弯的第一跳和第二跳的正负号来定义。
构成给定路由的跳的序列形成具有相应转弯类型的一定序列模式的转弯序列。在一些实施方式中,某些类型的转弯可能导致防止死锁所需的VL数目增加。防止由路由引起的死锁所需的VL的实际数目取决于由底层跳序列形成的转弯的转弯类型的序列模式。
图3是示意性地图示根据本文描述的实施方式的,以三维(3D)笛卡尔拓扑配置的网络以及在源交换机32A与目标交换机32B之间形成转弯序列的跳的路由的示图。
图3中的示例网络包括以笛卡尔拓扑布置的多个交换机32,其中为了清楚起见,省略了至少一些将交换机互连起来的链路(例如图1中的物理链路 34)。网络节点24A和24B通过相应地连接到源交换机32A和目标交换机 32B而在网络上彼此通信。考虑从网络节点24A到网络节点24B的通信方向。在此方向上,网络节点24A所发送的分组由交换机32A路由,以朝向目标交换机32B穿越网络中的多个其他交换机,该目标交换机32B将分组路由到网络节点24B。
图3中的拓扑是三维笛卡尔拓扑,其维度以表示为X、Y和Z的三个相应维度轴来指定。在本示例中,每个拓扑维度包括六个交换机。这样,笛卡尔拓扑中的每个交换机具有坐标,该坐标包括表示为(Cx,Cy,Cz)的三个坐标值,范围为0…5。例如,图3中的交换机32A和32B具有相应的坐标(1,1,1) 和(4,4,4)。
图3描绘了在3D拓扑中从坐标(1,1,1)处的源交换机32A到坐标(4,4,4) 处的目标交换机32B的示例路由。该路由穿越具有以下相应坐标的一系列交换机:(1,1,1)、(0,1,1)、(0,0,1)、(0,0,0)、(5,0,0)、(5,5,0)、 (5,5,5)、(4,5,5)、(4,4,5)和(4,4,4)。
图3的路由包括表示为H1…H9的9个跳,起始于从坐标(1,1,1)到坐标(0,1,1)的跳H1,并结束于从坐标(4,4,5)到坐标(4,4,4)的跳H9。
如上所述,根据每个跳是穿越到所穿越的维度中的较高坐标值还是较低坐标值,该跳可以关联于正号或负号属性。下面的表1总结了构成图3中的路由的跳序列的维度和正负号属性。在每跳中改变的坐标值用下划线标记。
具有正(或负)号属性的跳在本文中也称为“正跳”(或“负跳”)。
表1:构成图3的路由的跳序列
在本示例中,跳H1在X维度上具有负号,原因在于通过穿越H1,坐标 Cx从坐标值Cx=1变为较低的坐标值Cx=0。作为另一示例,跳H5在Y维度上具有正号,原因在于通过穿越H5,坐标值Cy=0变为较高的坐标值Cy=5。
如上所述,笛卡尔拓扑中的转弯是包括两个连续穿越的跳的路由段。转弯的类型取决于构成转弯的两跳的维度和正负号。在定义转弯类型时,使用以下跳标记法——假定所讨论的跳穿越第i维度,并且是整数1≤i≤D:
+xi-具有正号属性的跳。
-xi-具有负号属性的跳。
±xi-具有正号或负号属性的跳。
网络管理器还定义拓扑维度间的顺序1…D。当i<k(或i>k)时,认为维度i的顺序比维度k低(或高)。
在一些实施方式中,网络管理器使用上述标记法来预定义三种转弯类型,如下所示:
表2:转弯类型T0、T1和T2的定义
在类型T0的转弯中,第二跳穿越比第一跳所穿越的维度更高的维度。备选地,在类型T0的转弯中,第一跳和第二跳穿越相同的维度,并且均为正或均为负。
在类型T1的转弯中,第二跳穿越比第一跳所穿越的维度更低的维度,并且第二跳为正。备选地,在类型T1的转弯中,第一跳和第二跳穿越相同的维度,第一跳为负,而第二跳为正。
在类型T2的转弯中,第二跳穿越比第一跳所穿越的维度更低的维度,并且第二跳为负。备选地,在类型T2的转弯中,第一跳和第二跳穿越相同的维度,第一跳为正,而第二跳为负。
给定路由所穿越的跳序列形成具有相应转弯类型的转弯序列。在本示例中,表1的跳序列转化为以下表3中给出的转弯类型序列。
表3:与图3的路由相关联的转弯类型序列
在一些实施方式中,基于预定义的转弯类型T0、T1和T2,网络管理器使用以下规则对网络中的每个交换机32进行配置,以便有条件地修改分配给在交换机中接收到的分组的VL,以防止死锁情况:
表4:交换机针对有条件地修改接收到的分组的VL以防止死锁而施加的规则
在本示例中,VL值包括非负整数值。源节点将分配有VL=0的分组发送到网络。根据表4的规则,穿越路由的分组能够以VL≥0到达目标节点。递送到目标节点的分组的实际VL值取决于与从源节点穿越到目标节点的路由相关联的转弯类型的序列模式。考虑一些示例:
转弯类型T0不会导致VL修改。
以任何顺序仅包括T0和T1的转弯类型序列不会导致VL修改。
以任何顺序仅包括T0和T2类型的转弯类型序列导致沿着整个路由仅一次将VL从VL=0修改为VL=1。
包括T1和T2的转弯类型序列导致根据T1在序列中出现于T2之前的出现次数(同时忽略序列中具有T0转弯类型的转弯)以及根据T2在序列中出现于T1之前的出现次数(同时忽略序列中具有T0转弯类型的转弯)而修改VL。例如,转弯类型T0、T1、T0、T2的序列导致最终值VL=1,而转弯类型T0、T2、T0、T1的序列导致最终值VL=2。
在以上图3的示例中,穿越跳H6和H7的转弯T2导致将VL从VL0 修改为VL1。
在循环笛卡尔拓扑中,可能因在同一维度上创建环形路由的多个路由的组合而发生死锁情况。在一些实施方式中,通过在同一维度上闭合环形路由之前增加VL值来确保避免死锁。在这样的实施方式中,使用转弯类型T1和T2,以便在同一维度上穿越环形路由时增加VL值。可以证明,任何其跳穿越同一维度的组合环形路由都包含转弯类型T1和T2,并且因此保证VL增加。
可以依据转弯来定义在某一维度上完全跨越拓扑边缘的路由,例如,将三个跳定义如下:h1[1->0]、h2[0->(X-1)]和h3[(X-1)->(X-2)],其中0、1、X-2 和X-1是沿着底层维度轴的坐标值。包括跳序列h1->h2->h3的路由段通过穿越h2而跨越拓扑边缘。对应的转弯序列包括类型T1的转弯及随后的类型T2 的转弯。类似地,起始于坐标X-2,通过从坐标X-1穿越到坐标0而跨越拓扑边缘,并结束于坐标1的路由段包括类型T2的转弯及随后的类型T1的转弯。跨越拓扑边缘的路由包括形成两个类型(T1,T2)或(T2,T1)的转弯的序列的路由段,并且因此导致VL修改(VL增加)。就跳而言,路由段通过穿越沿着选定维度的三个连续的跳而跨越拓扑边缘,其中第一跳和第三跳具有相同的正负号,该正负号与第二(中间)跳的正负号相反。如下文所描述,在一些实施方式中,可以通过优选具有较少的所需VL数目的其他路由来避免跨越拓扑边缘的路由。
例如,在图3的拓扑中,通过穿越位于坐标(4,2,2)->(5,2,2)->(0,2,2) ->(1,2,2)处的交换机而跨越拓扑边缘的路由段具有对应的转弯类型序列(T2, T1)。在相反方向(1,2,2)->(0,2,2)->(5,2,2)->(4,2,2)上穿越这四个交换机的路由段跨越拓扑边缘,并且具有对应的转弯类型序列(T1,T2)。需要注意的是,常规DOR方法将会在图3的源和目标之间产生路由,该路由将会完全跨越拓扑边缘三次,并且将会使VL增加至少三次。利用转弯类型T0、T1和T2的灵活性,同时寻找具有最少VL增加的路由,图3中的路由不会完全跨越拓扑边缘,并且因此仅增加VL一次。
可能导致死锁情况的闭合路由是起始于给定跳并结束于同一给定跳的路由。可以证明,与笛卡尔拓扑中的闭合路由相关联的转弯类型模式必须具有至少一个类型T1的转弯和至少一个类型T2的转弯。因此,在包含一个或多个类型T1的转弯以及一个或多个类型T2的转弯的路由中,穿越该路由的分组的VL将会增加,并且因此这样的路由没有死锁。在下文的附录部分中将会进一步给出该论点的证明。
使用转弯类型T0、T1和T2在笛卡尔拓扑中构建路由可能会产生共同造成死锁情况的路由。然而,例如通过使用以上图4的规则将分组路由到不同的VL,可以避免死锁。可以证明,防止笛卡尔拓扑(例如,网状、圆环、超立方体或广义超立方体拓扑)中的所有死锁所需的VL的数目取决于沿着路由形成的转弯类型的序列模式。
使用以上表4的VL修改规则,导致VL预算较小,原因在于VL修改不仅取决于单个转弯类型沿着路由的出现次数,而且还取决于转弯类型沿着路由出现的顺序。一般而言,沿着路由将相同类型的多个转弯依次编组可以减少所需的VL预算。由于同样的原因(转弯类型编组),使用以上表4的VL 修改规则,对于相同的VL预算产生更大一组自适应路由。
需要注意的是,在循环笛卡尔拓扑中,在同一维度上有三个连续跳(其中,中间跳在该维度上跨越拓扑的边缘坐标之间)的路由导致VL增加。然而,使用转弯类型T0、T1和T2构建路由提供了选择避免此类三跳段的路由的灵活性,从而减少所需的VL数目。例如,在D维圆环拓扑中,存在若干个维序路由(DOR)路由,这些路由完全跨越拓扑边缘D次。可以证明,使用T0、T1和T2转弯类型定义,在完好圆环拓扑中,对于构成完好圆环拓扑的任意数目的维度,所产生的优选路由需要多达三个VL的VL预算以防止死锁情况(VL值仅递增两次)。
在笛卡尔拓扑中构建无死锁路由
接下来,描述在具有笛卡尔拓扑的网络中构建最短路径无死锁路由的方法。在一些实施方式中,对于给定的笛卡尔拓扑,考察多个候选路由,并且在候选路由之中选择具有最少VL数目的路由。还可以施加其他选择准则,例如选择最短路径路由。
图4是示意性地图示根据本文描述的实施方式的,用于在笛卡尔拓扑中构建优选路由的方法的流程图。该方法被描述为由网络管理器36的处理器40 执行。
在一些实施方式中,处理器40将底层网络的笛卡尔拓扑建模为根据实际网络拓扑经由边缘互连的一组多个顶点。使用该模型,顶点对应于相应的交换机32,并且边缘对应于网络30的相应的物理链路34。
在描述图4的方法时,符号“S”表示网络中所有交换机32的组,符号“s”表示源交换机,而符号“sd”表示起始于s的路由的目标交换机。在构建候选路由时,网络管理器使用以下属性来表征交换机:
s.dist–表示从s到sd的距离。每跳以单个距离单位增加距离。
adj(s)–表示到s的邻居交换机组,即,直接通过单个跳连接到交换机s的交换机。
s→t表示从交换机s穿越到后续交换机t的跳。
网络管理器为起始于跳s→t的从交换机s到sd的路由计算以下路由属性:
dim(s→t)表示跳s→t所穿越的维度。
sign(s→t)表示跳s→t的正负号属性。
inc(s→t)表示沿着起始于跳s→t朝向目标交换机sd的路由的VL 的数目增加。
turnType(s→t)表示由沿着朝向sd的路由从交换机t到下一跳交换机t'的跳(s→t)及随后的后续跳(t→t')形成的转弯的转弯类型。
对于直接连接到s并且(在跳的数目方面)比s更靠近sd的所有交换机,网络管理器计算以上路由属性。
网络管理器保存与从s到sd的优选路由相对应的交换机s的交换机属性,如下所示:
s.hopDim–表示从s到朝向sd的下一跳交换机的跳所穿越的维度。
s.hopSign–表示从s到朝向sd的下一跳交换机的跳的正负号属性(正或负)。
s.inc–表示沿着从s到sd的路由的VL的数目增加。
s.turnType–表示在从s到sd的路由中遇到的类型T1或T2的第一转弯。当沿着从s到sd的路由的所有转弯具有转弯类型T0时,将s.turnType设置为T0。
在一些实施方式中,网络管理器管理要处理的交换机队列,表示为Q(s)。队列Q(s)按先入先出(FIFO)顺序操作,使用运算符Q.push(s)来将交换机s添加到队列末端,以及使用运算符Q.pop()来将交换机弹出队列。
该方法始于在初始化步骤100处,处理器40在S中的网络交换机之中选择目标交换机sd,并且对交换机sd进行初始化。处理器40可以依次或使用任何其他合适的选择准则在S中的交换机之中选择目标交换机。为了初始化交换机sd,处理器将交换机属性设置如下:
等式1:
在等式1中,符号∞可以实现为大于拓扑维度的数目D的整数。进一步在步骤100处,处理器初始化网络中的其他交换机,如由下式给出:
等式2:
在等式2中,s.dist和s.inc的符号∞可以实现为大于网络中最长路由的长度的整数。
在BFS扫描步骤104处,处理器将单位距离设置到sd的邻居交换机的距离属性,并将邻居交换机推入BFS队列中,如由下式给出:
等式3:
在队列检查步骤108处,处理器检查是否存在任何排队等待处理的交换机,并且如果是这样,则处理器从BFS队列弹出交换机s'并继续进行邻居标识步骤112。
在步骤112处,处理器对与交换机s'直接相连并且已经被BSF扫描访问过的交换机s'的邻居交换机t进行标识。这样,已经为各自比s'距sd更近一跳的这些邻居交换机中的每一个选择了通往目标交换机的路由。在步骤112处标识的交换机组表示为M(s'),并由下式给出:
等式4:
M(s′)={t:t∈adj(s′)∧t.dist=s′.dist-1}
需要注意的是,在使用等式4中定义的M(s')选择优选路由时,处理器避免评估这样的候选路由:其中,沿着候选路由的至少一个交换机或者将两个交换机相连的物理链路在笛卡尔拓扑中缺失或发生故障,原因在于这样的交换机或链路在拓扑中不存在,或者不满足等式4中的条件(t.dist=s'.dist-1)。
在路由选择步骤116处,处理器计算从s'到sd的一个或多个候选路由的路由信息属性,其中s'属于M(s')。处理器基于合适的选择准则来评估从s' 到sd的每个候选路由。例如,在一些实施方式中,处理器基于防止死锁所需的VL数目来评估从s'到sd的候选路由,并在候选路由中选择需要最少VL数目的从s'到sd的优选路由。
在一些实施方式中,在步骤116处,处理器通过验证变量inc(s'→t)不超过VL预算,来验证选定的候选路由满足预定义的VL预算约束。当所有候选路由都不满足VL预算时,处理器可以发出适当的警告。
在一些实施方式中,处理器通过计算沿着起始于跳s'→t朝向目标交换机 sd的路由的VL增加inc(s'→t)的数目来评估候选路径。为此,处理器首先按如下所示计算路由属性turnType(s'→t):
如果[dim(s'→t)==t.hopDim并且sign(s'→t)!=t.hopSign],则:
如果[t.hopSign==1],则设置turnType(s'→t)=T1。
否则([t.hopSign==-1]),设置turnType(s'→t)=T2。
如果[dim(s'→t)==t.hopDim并且sign(s'→t)==t.hopSign]或[dim (s'→t)<t.hopDim],则设置turnType(s'→t)=T0。
如果[dim(s'→t)>t.hopDim并且t.hopSign==1],则设置turnType (s'→t)=T1。
如果[dim(s'→t)>t.hopDim并且t.hopSign==-1],则设置turnType (s'→t)=T2。
处理器在计算路由属性inc(s'→t)时使用turnType(s'→t)和t.turnType 的值,如以下表5中所示。
表5:基于turnType(s'→t)和t.turnType的inc(s'→t)计算
例如,考虑从t到sd的路由产生转弯类型序列T0-T1-T2-T0。所产生的路由属性为t.turnType=T1和t.inc=1。如果对于turnType(s'→t)=T2添加跳s'->t,则根据表5,inc(s'→t)=t.inc+2=3。经更新的转弯类型序列为T2-T0-T1-T2-T0。对于穿越起始于s′处的VL=0的经更新的路由的分组,VL按T2和T1转弯类型中的每个转弯类型增加,从而导致在目标sd处VL=3。
在搜索优选路由时,跳(s′→t)充当候选跳,处理器尝试将该候选跳序连到从t到sd的候选路由以便产生扩展候选路由。在一些实施方式中,处理器尝试将多个不同的候选跳序连到候选路由以产生多个相应的扩展候选路由,并选择满足预定路由选择准则的扩展候选路由。
处理器保存所选择的起始于跳s′→t朝向sd的优选路由的路由信息,如下所示:
等式5:
并将s′.turnType确定为:
等式6:
If turnType(s′→t)!=T0,
s′.turnType=turnType((s′→t)
else
s′.turnType=t.turnType
在步骤116处,可以使用各种准则来从候选路由中选择优选路由。示例选择准则包括:
选择具有较少VL数目的路由。
优选创建类型T2的转弯而不是类型T1的转弯的候选跳,原因在于在后续迭代(创建任何类型的转弯)中的序连跳不会增加所需的VL总数。
选择穿越高维度的路由,原因在于这样的选择增加了在后续迭代中序连的跳将会穿越较低维度的可能性,因此生成不会增加所需的VL数目的类型T0的转弯。
在循环笛卡尔拓扑中,上述选择准则产生从任何源到任何目标的具有最少所需VL数目的优选路由。在一些实施方式中,选择具有较少VL数目的路由的准则与一个或多个其他选择准则(例如,如上文所述的准则)组合起来,以用作组合的选择准则。
在BSF排队步骤128处,处理器将尚未处理的s'的邻居推到BFS队列,如由下式给出:
等式7:
在等式7中,符号∞可以如上面的等式2中所述实现。在步骤128之后,处理器循环回到步骤108,以检查BFS队列的占用,以及处理后续的队列条目(如果有的话)。
如果在步骤108处,BFS队列为空,则处理器继续进行路由配置步骤132,其中处理器对包含在为当前目标交换机选择的路由中的交换机进行配置。例如,处理器在相关交换机的交换机结构54内配置相关路由信息。
在循环终止检查步骤134处,处理器检查在结构中是否存在任何目标交换机待处理,并且如果是这样,则继续进行目标交换机重选步骤136,在该步骤中处理器选择网络中的后续目标交换机,并循环回到步骤100以构建朝向选定的目标交换机的优选路由。否则,当在步骤134处扫描了所有网络交换机时,处理器继续进行VL配置步骤135。在一些实施方式中,处理器可以在结构中保持所需的最大VL增加的记录,如果所需的最大VL增加超过VL预算,则处理器可以决定配置不同的(更大的)VL预算。在这种情况下,处理器还可以重新配置系统中支持的VL数目。
在步骤135处,处理器用VL修改表来配置结构交换机。VL修改表的条目定义了分组的出口VL,其取决于接收分组所经由的输入端口、分组发往的输出端口、分组的入口VL值以及VL预算(当VL预算超出VL增加时,即使按所采取的转弯类型需要,也不会增加这样的VL值)。在步骤135之后,该方法终止。
现在描述图4的方法的若干种变体方法。在图4的方法中,网络管理器在候选路由中优选(具有最少跳数的)最短路径路由。在备选实施方式中,可以放宽对于最短路径路由的要求,以考虑更长的路由。例如,在广义超立方体拓扑中,这样的方法可能是有用的,以便使自适应路由方案能够在沿着同一维度穿越不同路由段(可能具有不同的相应长度)的多个候选路由之中进行选择。
在图4的方法中,网络管理器构建这样的路由:该路由起始于目标交换机,并且一次朝向源交换机添加一跳。在该方法中,如上所述,在添加给定的跳时,网络管理器优选添加创建类型T2而不是T1的转弯的跳。在备选实施方式中,网络管理器保存直到源交换机的多个候选者,每个候选者以不同的转弯类型起始,并继而从这些候选路由中选择需要最少虚拟缓冲区数目的路由。该技术可以导致较少数目的虚拟缓冲区,继而使用在到达源交换机之前排除候选路由的方法。
在图4的方法中,基于表4的VL修改规则,拓扑边缘完全跨越事件导致将分组的VL增加1或2。然而,应当注意,为了防止死锁,在拓扑边缘完全跨越时将VL增加1就已足够,这需要较低的VL预算。
在实施方式中,为了避免这样的冗余VL增加,在圆环拓扑中,定义表示为T3的额外转弯类型,用于标识在同一维度上具有相反跳正负号的两跳穿越。在表6中提供了包括转弯类型T3的更新的转弯类型定义,其替代上文的
表2。
表6:转弯类型T0、T1、T2和T3的定义
在表7中给出了针对转弯类型T0、T1、T2和T3的VL修改规则,其替代上文的表4。
表7:交换机针对有条件地修改接收到的分组的VL以防止死锁而施加的规则
在该实施方式中,分组在分组报头中具有用于将分组标记为“VL已增加”的字段。在默认情况下,分组的“VL已增加”字段未被标记。当标识出分组的输入跳和输出跳穿越同一维度并具有相反的正负号,并且未标记VL 已增加字段时,交换机将分组VL增加1,并将分组标记为“VL已增加”。
当标识出分组的输入跳和输出跳穿越同一维度并具有相反的正负号,并且标记了分组的“VL已增加”字段时,交换机对分组进行转发,而不会增加分组的VL并且不标记分组的“VL已增加”字段。在所有其他情况下,例如,当在不同维度之间穿越或者以相同的跳正负号沿着同一维度穿越时,不标记分组的“VL已增加”字段。在支持用“VL已增加”标记来标记分组的系统中,修改了上述用于在圆环笛卡尔拓扑中选择路由的方法,使得在同一维度上穿越T3类型的两个连续转弯致使所需的VL数目增加1(而不是2)。如上所述,用于查找具有最少所需VL数目的路由的方法应当使用下面的表8 以便计算路由属性inc(s'→t),而不是使用上文的表5。
表8:基于turnType(s'→t)和t.turnType的优化的inc(s'→t)计算
在表8中,当turnType(s'→t)==T2且t.turnType==T3时,使用以下函数计算VL_inc:Y=F_inc(Vl_inc),其中如果(Vl_inc==0),则Y=2,否则,如果(Vl_inc==1),则Y=1,否则Y=0。
在表8中,当turnType(s'→t)==T3且t.turnType==T3时,使用以下优化计算来计算VL_inc:
如果[t.hopDim==dim(s'→t)]且[t.sign!=sign(s'→t)],则inc(s'→t) =t.inc,否则Vl_inc=F_inc(Vl_inc)且inc(s'→t)=t.inc+Vl_inc。
VL管理
如上所述,网络管理器36为网络30中的一些或所有源交换机和目标交换机对选择相应的最短路径路由,该最短路径路由在所考察的候选路由中需要最少数目的虚拟缓冲区(或VL)。
需要注意的是,在实现图4的方法时,从候选路由中选择优选路由受到处理器预定义的VL预算的约束,VL预算为单个QoS级别指定了交换机中可用的VL的最大数目。对于静态路由,就所需VL数目而言,网络中的最差情况路由应当满足VL预算。
在自适应路由中,网络交换机被配置用于将在给定的入口接口中接收到的分组路由到若干个预定义的出口接口中之一。出口接口的选择在交换机内本地完成。在配置自适应路由时,可以选择通过交换机增加VL不会超过VL 预算的任何路由。上面描述了通过查找从源交换机到目标交换机的两个或更多个路由来建立自适应路由规则的方法。
在一些实施方式中,为了设计支持自适应路由的路由规则,如上所述,网络管理器首先定义具有最少数目的所需VL的静态路由,并且继而基于在定义静态路由时收集的信息为交换机定义自适应路由规则。
在一些实施方式中,在设计用于满足VL预算的自适应路由规则时,网络管理器考虑以下因素:(i)分组的入口接口(传入跳维度)和(ii)分组的入口VL值。使用这两个因素,网络管理器可以计算穿越每个相应邻居交换机的多个备选路径所需的最少VL数目增加。需要注意的是,通过使用上述设计,对于传入维度和入口VL的每种组合,交换机可以具有不同的自适应路由表。由于储存这些路由表所需的存储空间是有限且昂贵的资源,因此在一些实施方式中,假定最高的传入维度,并且仅针对每个传入的VL以VL 预算为模,将自适应路由表储存在交换机中。需要注意的是,例如,如上所述,当VL预算用于多个Qos等级时,所支持的VL的总数可以高于VL预算。通过这样的优化(假定最高的传入维度),所需的自适应路由表的总数等于 VL预算。
在一些实施方式中,例如,当底层拓扑是非循环拓扑时,转弯类型T0、 T1和T2的定义可以采取更简单的形式。在一些实施方式中,可以例如通过定义合适的转弯类型并相应地修改表4中的VL修改规则来明确地处理在循环笛卡尔拓扑中完全跨越拓扑边缘的事件。
尽管本文描述的实施方式主要针对笛卡尔拓扑,但本文描述的方法和系统还可以在其他应用中使用,例如通过定义合适的转弯类型和相关的VL修改规则来防止在被配置成其他类型拓扑(例如,蜻蜓拓扑)的网络中出现死锁。
应当理解,上述实施方式是作为示例引用的,且以下权利要求书不受上述的具体图示和描述的限制。相反,其范围包括上述各个特征的组合和子组合,以及本领域技术人员在阅读以上描述时所想到的,且未在现有技术中公开的变化和修改。通过引用并入本专利申请书中的文档应被视为本申请书的组成部分,除非这些并入的文档中所定义的任何术语达到与本说明书中明确或隐含作出的定义相冲突的程度,在此情况下应当仅考虑本说明书中的定义。
附录
附录提供了笛卡尔拓扑中的环形路由至少包含类型T1的一个转弯和类型T2的一个弯型的证明。
可以将笛卡尔拓扑中的路由指定为跳序列其中时间索引“t”处的跳穿越维度it并且具有正负号属性∈t∈{0,1}。由于环形路由返回到其起点,因此对于每跳xi,该环形路由还必须具有跳-xi。需要注意的是,圆环拓扑额外支持沿着一个维度的环形路由。这样的路由包含多个跳xi(或-xi)作为该维度中拓扑的大小,以及一个跳-xi(或xi)。
令xm表示穿越该路由中最低维度的环形路由中的跳,并且在不失一般性的情况下,假定xm不是第一跳。xm在跳序列中的首次出现必须具有±xi,xm形式的模式(其中i>m),或者-xm,xm形式的模式(在循环拓扑中),其为定义了类型T1的转弯的模式。类似地,跳-xm的首次出现具有±xi,-xm形式的模式(其中i>m),或者xm,-xm形式的模式(在循环拓扑中),其为定义了类型T2的转弯的模式。
上面给出的证明适用于笛卡尔拓扑,诸如网状、圆环、超立方体和广义超立方体。
Claims (16)
1.一种装置,其包括:
网络接口,其被配置用于与网络进行通信,所述网络包括以具有多个维度的笛卡尔拓扑互连的多个交换机;以及
处理器,其被配置用于:
预定义所述笛卡尔拓扑中的转弯的多个转弯类型,其中每个转弯沿着第一维度穿越第一跳,随后沿着第二维度穿越第二跳,其中所述第一维度和第二维度具有相同或不同的相应标识,并且其中每个转弯类型至少由分别在所述第一跳和所述第二跳中的所述第一维度和第二维度的标识来定义;
通过至少基于防止由候选路由引起的死锁情况所需的VL数目评估所述候选路由,搜索经由所述网络从源交换机到目标交换机的优选路由,其中所需的VL数目取决于由构成所述候选路由的跳序列形成的转弯的转弯类型的序列模式;以及
对所述网络中的所述交换机中的一个或多个交换机进行配置,以沿着所述优选路由将分组从所述源交换机路由到所述目标交换机,其中,
所述处理器还被配置用于通过将多个不同的候选跳序连到所述候选路由以产生多个相应的扩展候选路由,以及选择满足预定义路由选择准则的扩展候选路由来评估所述候选路由,并且评估所需的VL数目取决于:(i)所述候选跳及随后的所述候选路由的初始跳创建的转弯的转弯类型,以及(ii)在序连所述候选跳之前,所述候选路由中的转弯类型的序列模式。
2.根据权利要求1所述的装置,其中所述路由选择准则包括下列各项中的一项或多项:(i)在所述扩展候选路由中选择最短路径路由;(ii)在所述扩展候选路由中选择具有最少数目的所需VL的扩展候选路由,以及(iii)选择所需的VL数目满足预定义VL预算的扩展候选路由。
3.根据权利要求1所述的装置,其中所述处理器被配置用于预定义所述笛卡尔拓扑的维度的标识之间的顺序,以及通过定义以下各项来预定义所述转弯类型:
(i)T0转弯类型,其中在顺序方面所述第二维度高于所述第一维度,或者所述第二维度等于所述第一维度并且所述第一跳和第二跳具有相同的正负号,其中根据给定跳穿越在所述给定跳的维度上具有相应的较高或较低坐标值的交换机,所述给定跳的正负号为正或负,
(ii)T1转弯类型,其中在顺序方面所述第二维度低于所述第一维度并且所述第二跳的正负号为正,或者所述第二维度等于所述第一维度,所述第一跳的正负号为负,并且所述第二跳的正负号为正,以及
(iii)T2转弯类型,其中在顺序方面所述第二维度低于所述第一维度并且所述第二跳的正负号为负,或者所述第二维度等于所述第一维度,所述第一跳的正负号为正,并且所述第二跳的正负号为负。
4.根据权利要求3所述的装置,其中所述交换机在完好圆环拓扑中互连,其中所述处理器被配置用于通过评估包括所述转弯类型T0、T1和T2中的一个或多个的候选路由来搜索所述优选路由,并且其中不论构成所述完好圆环拓扑的维度的数目如何,所述完好圆环拓扑中的优选路由需要多达三个VL的VL预算以防止死锁情况。
5.根据权利要求1所述的装置,其中所述处理器被配置用于对所述交换机进行配置,以将通过穿越给定跳接收的并且与给定VL相关联的分组与VL值重新关联,所述VL值取决于(i)所述给定VL以及(ii)由所述给定跳及随后的所述分组被转发到的下一跳创建的转弯的转弯类型。
6.根据权利要求1所述的装置,其中所述处理器被配置用于通过为所述源交换机的给定入口接口定义用于在不超过预定义VL预算的情况下将分组从所述源交换机路由到所述目标交换机的至少两个出口接口来为所述交换机定义自适应路由规则,以及对所述交换机进行配置以使用所述至少两个出口接口施加从所述源交换机到所述目标交换机的自适应路由。
7.根据权利要求1所述的装置,其中所述处理器被配置用于通过以下方式建立用于从源交换机路由到目标交换机的自适应路由规则:查找从所述源交换机到所述目标交换机的两个或更多个路由,每个路由满足预定义VL预算;以及基于从所述源交换机穿越到所述源交换机的选定邻居交换机的转弯的转弯类型,并且基于具有从所述选定邻居交换机穿越到所述目标交换机所需的最少数目的VL的预先计算的路由来计算每个路由所需的VL数目。
8.根据权利要求1所述的装置,其中所述处理器被配置用于在避免评估其中所述交换机中的至少一个交换机或者将所述交换机中的两个交换机连接起来的物理链路在笛卡尔拓扑中缺失或发生故障的候选路由的同时,搜索所述优选路由。
9.一种方法,其包括:
在与包括以具有多个维度的笛卡尔拓扑互连的多个交换机的网络进行通信的处理器中,预定义所述笛卡尔拓扑中的转弯的多个转弯类型,其中每个转弯沿着第一维度穿越第一跳,随后沿着第二维度穿越第二跳,其中所述第一维度和第二维度具有相同或不同的相应标识,并且其中每个转弯类型至少由分别在所述第一跳和所述第二跳中的所述第一维度和第二维度的标识来定义;
通过至少基于防止由候选路由引起的死锁情况所需的VL数目评估所述候选路由,搜索经由所述网络从源交换机到目标交换机的优选路由,其中所需的VL数目取决于由构成所述候选路由的跳序列形成的转弯的转弯类型的序列模式;以及
对所述网络中的所述交换机中的一个或多个交换机进行配置,以沿着所述优选路由将分组从所述源交换机路由到所述目标交换机,其中评估所述候选路由包括,
将多个不同的候选跳序连到所述候选路由以产生多个相应的扩展候选路由,以及选择满足预定义路由选择准则的扩展候选路由来评估所述候选路由,并且评估所需的VL数目取决于:(i)所述候选跳及随后的所述候选路由的初始跳创建的转弯的转弯类型,以及(ii)在序连所述候选跳之前,所述候选路由中的转弯类型的序列模式。
10.根据权利要求9所述的方法,其中所述路由选择准则包括下列各项中的一项或多项:(i)在所述扩展候选路由中选择最短路径路由;(ii)在所述扩展候选路由中选择具有最少数目的所需VL的扩展候选路由,以及(iii)选择所需的VL数目满足预定义VL预算的扩展候选路由。
11.根据权利要求9所述的方法,还包括预定义所述笛卡尔拓扑的维度的标识之间的顺序,其中预定义所述转弯类型包括定义以下各项:
(i)T0转弯类型,其中在顺序方面所述第二维度高于所述第一维度,或者所述第二维度等于所述第一维度并且所述第一跳和第二跳具有相同的正负号,其中根据给定跳穿越在所述给定跳的维度上具有相应的较高或较低坐标值的交换机,所述给定跳的正负号为正或负,
(ii)T1转弯类型,其中在顺序方面所述第二维度低于所述第一维度并且所述第二跳的正负号为正,或者所述第二维度等于所述第一维度,所述第一跳的正负号为负,并且所述第二跳的正负号为正,以及
(iii)T2转弯类型,其中在顺序方面所述第二维度低于所述第一维度并且所述第二跳的正负号为负,或者所述第二维度等于所述第一维度,所述第一跳的正负号为正,并且所述第二跳的正负号为负。
12.根据权利要求11所述的方法,其中所述交换机在完好圆环拓扑中互连,其中搜索所述优选路由包括评估包括所述转弯类型T0、T1和T2中的一个或多个的候选路由,并且其中不论构成所述完好圆环拓扑的维度的数目如何,所述完好圆环拓扑中的优选路由需要多达三个VL的VL预算以防止死锁情况。
13.根据权利要求9所述的方法,其中配置所述交换机包括对所述交换机进行配置以将通过穿越给定跳接收的并且与给定VL相关联的分组与VL值重新关联,所述VL值取决于(i)所述给定VL以及(ii)由所述给定跳及随后的所述分组被转发到的下一跳创建的转弯的转弯类型。
14.根据权利要求9所述的方法,还包括通过为所述源交换机的给定入口接口定义用于在不超过预定义VL预算的情况下将分组从所述源交换机路由到所述目标交换机的至少两个出口接口来为所述交换机定义自适应路由规则,并且其中配置所述交换机包括对所述交换机进行配置以使用所述至少两个出口接口施加从所述源交换机到所述目标交换机的自适应路由。
15.根据权利要求9所述的方法,还包括通过以下方式建立用于从源交换机路由到目标交换机的自适应路由规则:查找从所述源交换机到所述目标交换机的两个或更多个路由,每个路由满足预定义VL预算;以及基于从所述源交换机穿越到所述源交换机的选定邻居交换机的转弯的转弯类型,并且基于具有从所述选定邻居交换机穿越到所述目标交换机所需的最少数目的VL的预先计算的路由来计算每个路由所需的VL数目。
16.根据权利要求9所述的方法,其中搜索所述优选路由包括在避免评估其中所述交换机中的至少一个交换机或者将所述交换机中的两个交换机连接起来的物理链路在笛卡尔拓扑中缺失或发生故障的候选路由的同时,搜索所述优选路由。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/535,100 US11108679B2 (en) | 2019-08-08 | 2019-08-08 | Producing deadlock-free routes in lossless cartesian topologies with minimal number of virtual lanes |
US16/535,100 | 2019-08-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112350929A CN112350929A (zh) | 2021-02-09 |
CN112350929B true CN112350929B (zh) | 2022-07-05 |
Family
ID=71995797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010793649.9A Active CN112350929B (zh) | 2019-08-08 | 2020-08-10 | 以虚拟通道在拓扑中产生无死锁路由的装置和方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11108679B2 (zh) |
EP (1) | EP3772835A1 (zh) |
CN (1) | CN112350929B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11108679B2 (en) | 2019-08-08 | 2021-08-31 | Mellanox Technologies Tlv Ltd. | Producing deadlock-free routes in lossless cartesian topologies with minimal number of virtual lanes |
US11425027B2 (en) * | 2020-11-01 | 2022-08-23 | Mellanox Technologies, Ltd. | Turn-based deadlock-free routing in a Cartesian topology |
US11729088B2 (en) * | 2020-12-30 | 2023-08-15 | Arteris, Inc. | Broadcast switch system in a network-on-chip (NoC) |
US11870682B2 (en) * | 2021-06-22 | 2024-01-09 | Mellanox Technologies, Ltd. | Deadlock-free local rerouting for handling multiple local link failures in hierarchical network topologies |
CN118012721A (zh) * | 2024-04-09 | 2024-05-10 | 深圳市纷享互联科技有限责任公司 | 基于SaaS的异构系统数据同步死循环检测方法、系统及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101262444A (zh) * | 2008-03-10 | 2008-09-10 | 清华大学 | 基于通道交叠的容错mesh网避免死锁的路由方法 |
JP2011147152A (ja) * | 2011-02-25 | 2011-07-28 | Hitachi Ltd | 伝送システム、中継機及び受信機 |
CN102170402A (zh) * | 2011-05-31 | 2011-08-31 | 清华大学 | Torus网络中的无死锁自适应路由算法 |
CN103873367A (zh) * | 2012-12-14 | 2014-06-18 | 国际商业机器公司 | 胖树网络中的无死锁路由 |
EP3013008A1 (en) * | 2014-10-23 | 2016-04-27 | Alcatel Lucent | Transmitting data traffic in a communication network |
CN108111410A (zh) * | 2016-11-24 | 2018-06-01 | 特拉维夫迈络思科技有限公司 | 具有最少数量虚拟缓冲区的无损多维笛卡尔拓扑结构中的无死锁路由 |
CN108234340A (zh) * | 2016-12-22 | 2018-06-29 | 特拉维夫迈络思科技有限公司 | 基于流控制信用的自适应路由 |
Family Cites Families (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5533198A (en) | 1992-11-30 | 1996-07-02 | Cray Research, Inc. | Direction order priority routing of packets between nodes in a networked system |
US6031835A (en) * | 1997-04-04 | 2000-02-29 | International Business Machines Corporation | Method for deadlock free and and reliable routing in a packet switched network |
US6285679B1 (en) | 1997-08-22 | 2001-09-04 | Avici Systems, Inc. | Methods and apparatus for event-driven routing |
US6859435B1 (en) * | 1999-10-13 | 2005-02-22 | Lucent Technologies Inc. | Prevention of deadlocks and livelocks in lossless, backpressured packet networks |
US20020091855A1 (en) | 2000-02-02 | 2002-07-11 | Yechiam Yemini | Method and apparatus for dynamically addressing and routing in a data network |
US8391282B1 (en) | 2001-07-02 | 2013-03-05 | Haw-Minn Lu | Systems and methods for overlaid switching networks |
US6992988B2 (en) * | 2001-08-20 | 2006-01-31 | Sun Microsystems, Inc. | System and method for deadlock-free routing on arbitrary network topologies |
US6918063B2 (en) | 2002-02-04 | 2005-07-12 | International Business Machines Corporation | System and method for fault tolerance in multi-node system |
US7620736B2 (en) | 2003-08-08 | 2009-11-17 | Cray Canada Corporation | Network topology having nodes interconnected by extended diagonal links |
US7724674B2 (en) * | 2007-05-16 | 2010-05-25 | Simula Innovations As | Deadlock free network routing |
US7809006B2 (en) * | 2007-08-16 | 2010-10-05 | D. E. Shaw Research, Llc | Routing with virtual channels |
CN101267394A (zh) * | 2008-03-10 | 2008-09-17 | 清华大学 | 三维mesh网中无死锁的平面自适应路由方法 |
CN101267398B (zh) * | 2008-04-18 | 2010-09-01 | 清华大学 | 二维torus网中的无死锁自适应路由方法 |
US8139490B2 (en) | 2009-12-21 | 2012-03-20 | Google Inc. | Deadlock prevention in direct networks of arbitrary topology |
DE112011101822T5 (de) * | 2010-05-28 | 2013-03-14 | International Business Machines Corporation | Schaltverbindungseinheit zum Routen von Daten, Computerverbindungsnetzwerk und Routing-Verfahren mit dieser Einheit |
US8730965B2 (en) | 2011-01-05 | 2014-05-20 | Google Inc. | Systems and methods for dynamic routing in a multiprocessor network using local congestion sensing |
WO2013044469A1 (en) | 2011-09-28 | 2013-04-04 | Dong Xiang | Deadlock-free adaptive routing algorithm |
US9014201B2 (en) * | 2011-11-09 | 2015-04-21 | Oracle International Corporation | System and method for providing deadlock free routing between switches in a fat-tree topology |
US8880932B2 (en) * | 2011-11-15 | 2014-11-04 | Oracle International Corporation | System and method for signaling dynamic reconfiguration events in a middleware machine environment |
US9379971B2 (en) * | 2012-05-11 | 2016-06-28 | Simula Inovation AS | Method and apparatus for determining paths between source/destination pairs |
US9077616B2 (en) * | 2012-08-08 | 2015-07-07 | International Business Machines Corporation | T-star interconnection network topology |
US9130858B2 (en) * | 2012-08-29 | 2015-09-08 | Oracle International Corporation | System and method for supporting discovery and routing degraded fat-trees in a middleware machine environment |
US9042222B2 (en) * | 2012-11-28 | 2015-05-26 | Broadcom Corporation | Deadlock recovery for distributed devices |
US9009648B2 (en) | 2013-01-18 | 2015-04-14 | Netspeed Systems | Automatic deadlock detection and avoidance in a system interconnect by capturing internal dependencies of IP cores using high level specification |
US9007962B2 (en) * | 2013-01-24 | 2015-04-14 | International Business Machines Corporation | Deadlock-free routing using edge-disjoint sub-networks |
US9368489B1 (en) * | 2013-02-28 | 2016-06-14 | International Business Machines Corporation | Interconnect circuits at three-dimensional (3-D) bonding interfaces of a processor array |
US9577956B2 (en) * | 2013-07-29 | 2017-02-21 | Oracle International Corporation | System and method for supporting multi-homed fat-tree routing in a middleware machine environment |
EP3060992B1 (en) * | 2013-10-27 | 2019-11-27 | Advanced Micro Devices, Inc. | Input/output memory map unit and northbridge |
US9294385B2 (en) * | 2014-03-03 | 2016-03-22 | International Business Machines Corporation | Deadlock-free routing in fat tree networks |
US9319232B2 (en) * | 2014-04-04 | 2016-04-19 | Netspeed Systems | Integrated NoC for performing data communication and NoC functions |
US9473359B2 (en) * | 2014-06-06 | 2016-10-18 | Netspeed Systems | Transactional traffic specification for network-on-chip design |
US9519605B2 (en) * | 2014-07-08 | 2016-12-13 | International Business Machines Corporation | Interconnection network topology for large scale high performance computing (HPC) systems |
US9477280B1 (en) * | 2014-09-24 | 2016-10-25 | Netspeed Systems | Specification for automatic power management of network-on-chip and system-on-chip |
US9571341B1 (en) * | 2014-10-01 | 2017-02-14 | Netspeed Systems | Clock gating for system-on-chip elements |
US9529400B1 (en) * | 2014-10-29 | 2016-12-27 | Netspeed Systems | Automatic power domain and voltage domain assignment to system-on-chip agents and network-on-chip elements |
US9806809B2 (en) * | 2014-11-06 | 2017-10-31 | Facebook, Inc. | Deploying line-of-sight communication networks |
US9793988B2 (en) * | 2014-11-06 | 2017-10-17 | Facebook, Inc. | Alignment in line-of-sight communication networks |
US9661552B2 (en) * | 2014-11-06 | 2017-05-23 | Facebook, Inc. | Association in line-of-sight communication networks |
US9806908B2 (en) * | 2015-02-12 | 2017-10-31 | Advanced Micro Devices, Inc. | Route mapping at individual nodes of a cluster server |
US9568970B1 (en) * | 2015-02-12 | 2017-02-14 | Netspeed Systems, Inc. | Hardware and software enabled implementation of power profile management instructions in system on chip |
US10103913B2 (en) * | 2015-03-25 | 2018-10-16 | Washington State University | Systems and methods for network routing in small-world network-on-chip devices |
US9706276B2 (en) * | 2015-11-05 | 2017-07-11 | Rockley Photonics Limited | Optoelectronic switch |
US10116557B2 (en) * | 2015-05-22 | 2018-10-30 | Gray Research LLC | Directional two-dimensional router and interconnection network for field programmable gate arrays, and other circuits and applications of the router and network |
US9509613B1 (en) * | 2016-02-08 | 2016-11-29 | International Business Machines Corporation | Mechanisms for deadlock avoidance support in network fabrics |
US10630590B2 (en) * | 2016-07-14 | 2020-04-21 | Mellanox Technologies Tlv Ltd. | Credit loop deadlock detection and recovery in arbitrary topology networks |
US10084691B2 (en) | 2016-10-14 | 2018-09-25 | Oracle International Corporation | Scalable framework for managing QoS requirements after a switch link failover in a switch fabric network |
US10880178B2 (en) | 2016-11-24 | 2020-12-29 | Mellanox Technologies Tlv Ltd. | Automatic assignment of coordinates to network elements interconnected in a cartesian topology |
US20190007300A1 (en) | 2017-06-30 | 2019-01-03 | Qualcomm Incorporated | Deadlock-free routing in partial mesh networks |
US10498631B2 (en) | 2017-08-15 | 2019-12-03 | Hewlett Packard Enterprise Development Lp | Routing packets using distance classes |
CN107959643B (zh) * | 2017-12-29 | 2021-05-14 | 曙光信息产业(北京)有限公司 | 一种通过交换芯片构建的交换系统及其路由算法 |
US11108679B2 (en) | 2019-08-08 | 2021-08-31 | Mellanox Technologies Tlv Ltd. | Producing deadlock-free routes in lossless cartesian topologies with minimal number of virtual lanes |
US11575594B2 (en) | 2020-09-10 | 2023-02-07 | Mellanox Technologies, Ltd. | Deadlock-free rerouting for resolving local link failures using detour paths |
-
2019
- 2019-08-08 US US16/535,100 patent/US11108679B2/en active Active
-
2020
- 2020-08-06 EP EP20189951.5A patent/EP3772835A1/en active Pending
- 2020-08-10 CN CN202010793649.9A patent/CN112350929B/zh active Active
-
2021
- 2021-07-07 US US17/368,871 patent/US11770326B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101262444A (zh) * | 2008-03-10 | 2008-09-10 | 清华大学 | 基于通道交叠的容错mesh网避免死锁的路由方法 |
JP2011147152A (ja) * | 2011-02-25 | 2011-07-28 | Hitachi Ltd | 伝送システム、中継機及び受信機 |
CN102170402A (zh) * | 2011-05-31 | 2011-08-31 | 清华大学 | Torus网络中的无死锁自适应路由算法 |
CN103873367A (zh) * | 2012-12-14 | 2014-06-18 | 国际商业机器公司 | 胖树网络中的无死锁路由 |
EP3013008A1 (en) * | 2014-10-23 | 2016-04-27 | Alcatel Lucent | Transmitting data traffic in a communication network |
CN108111410A (zh) * | 2016-11-24 | 2018-06-01 | 特拉维夫迈络思科技有限公司 | 具有最少数量虚拟缓冲区的无损多维笛卡尔拓扑结构中的无死锁路由 |
CN108234340A (zh) * | 2016-12-22 | 2018-06-29 | 特拉维夫迈络思科技有限公司 | 基于流控制信用的自适应路由 |
Also Published As
Publication number | Publication date |
---|---|
US11770326B2 (en) | 2023-09-26 |
US20210336868A1 (en) | 2021-10-28 |
US20210044513A1 (en) | 2021-02-11 |
CN112350929A (zh) | 2021-02-09 |
EP3772835A1 (en) | 2021-02-10 |
US11108679B2 (en) | 2021-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112350929B (zh) | 以虚拟通道在拓扑中产生无死锁路由的装置和方法 | |
CN108111410B (zh) | 在笛卡尔拓扑的网络中构建无死锁路由的方法和装置 | |
US11362934B2 (en) | Method to route packets in a distributed direct interconnect network | |
US20180026878A1 (en) | Scalable deadlock-free deterministic minimal-path routing for dragonfly networks | |
US11121984B2 (en) | Routing tables for forwarding packets between switches in a data center network | |
EP2911348B1 (en) | Control device discovery in networks having separate control and forwarding devices | |
CN112448900B (zh) | 一种数据传输方法及装置 | |
US7334047B1 (en) | Method and system for selective link state advertisement blocking over a data network area | |
Xu et al. | Routing optimization for cloud services in SDN-based Internet of Things with TCAM capacity constraint | |
US20120300669A1 (en) | Topology-based consolidation of link state information | |
US9973435B2 (en) | Loopback-free adaptive routing | |
CN110679120B (zh) | 通信网络节点 | |
KR20150030644A (ko) | 최단 경로 결정에서의 타이 브레이킹 | |
US20160028617A1 (en) | Use of alternate paths in forwarding of network packets | |
CN108400922B (zh) | 虚拟局域网络配置系统与方法及其计算机可读存储介质 | |
US11425027B2 (en) | Turn-based deadlock-free routing in a Cartesian topology | |
US11870682B2 (en) | Deadlock-free local rerouting for handling multiple local link failures in hierarchical network topologies | |
Camarero et al. | Polarized routing for large interconnection networks |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220419 Address after: Israel Yuekeni Mourinho Applicant after: Mellanox Technologies, Ltd. Address before: Israel Lai Ananna Applicant before: Mellanox Technologies TLV Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |