CN111771361A - 分层交换设备 - Google Patents
分层交换设备 Download PDFInfo
- Publication number
- CN111771361A CN111771361A CN201980015744.1A CN201980015744A CN111771361A CN 111771361 A CN111771361 A CN 111771361A CN 201980015744 A CN201980015744 A CN 201980015744A CN 111771361 A CN111771361 A CN 111771361A
- Authority
- CN
- China
- Prior art keywords
- sub
- switch
- switches
- queue
- packet
- 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
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/10—Routing in connection-oriented networks, e.g. X.25 or ATM
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/101—Packet switching elements characterised by the switching fabric construction using crossbar or matrix
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q2213/00—Indexing scheme relating to selecting arrangements in general and for multiplex systems
- H04Q2213/13342—Arrangement of switches in the network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
示例涉及包括形成完全互连的全连接网络的多个子交换机的分层交换设备。子交换机包括内部输入端口和内部输出端口以与完全互连的全连接网络内的其他子交换机交换分组。子交换机的内部输入端口能够独占访问用于相应子交换机的每个外部输出端口的队列分区。交换机控制器在多个子交换机中的第一子交换机处接收分组,该分组将被路由到多个子交换机中的第二子交换机的特定外部输出端口。交换机控制器使用第一子交换机的内部输出端口和第二子交换机的队列分区将分组从第一子交换机直接路由到第二子交换机,该队列分区用于第二子交换机的该特定外部输出端口。
Description
背景技术
网络交换设备可以被实现为连接这些网络交换设备的输入和输出端口的互连子网。例如,网络交换设备例如路由器或交换机可以被实现为不表现出端口到端口依赖性的单片交叉开关。具有不表现出端口到端口依赖性的网络交换设备可以确保网络中无死锁。端口到端口依赖性可以确定期望在特定端口上退出网络交换设备的分组的成功并不永久地依赖于退出同一网络交换设备的不同端口的另一分组的成功。路由算法可以避免端口到端口依赖性,以便确保网络交换设备中并且因此确保网络交换设备所连接到的网络中无死锁。单片交叉开关的尺寸以多项式因数增长。网络交换设备可以被实现为分层交换设备,以减小实现所需的尺寸。应当遵循仔细的设计实践以确保分层交换设备不会创建可能导致死锁的端口到端口依赖性。
附图说明
图1是具有形成完全互连的全连接(all-to-all)网络的彼此连接的多个子交换机的示例分层交换设备的框图。
图2是图1的示例分层交换设备的框图,其中分组从第一子交换机的外部输入端口被路由到第二子交换机的外部输出端口。
图3是用于使用具有形成完全互连的全连接网络的彼此连接的多个子交换机的分层交换设备来路由分组的示例方法的流程图。
图4是具有形成完全互连的全连接网络的彼此连接的多个子交换机并且包括存储待由分层交换设备的交换机控制器执行的指令的机器可读存储介质的示例分层交换设备的框图。
具体实施方式
本文公开的示例描述了分层交换设备,所述分层交换设备包括形成完全互连的全连接网络的彼此连接的多个输出排队的子交换机。交换设备的每一个子交换机可以包括内部输入端口和内部输出端口以与完全互连的全连接网络内的其他输出排队子交换机交换分组。子交换机的内部输入端口能够独占访问相应子交换机的每个外部输出端口的队列分区。例如,在虚拟输出排队技术中,网络设备的每个输入端口的物理缓冲器可以为网络设备的每个输出端口维护单独的虚拟输出队列。这些虚拟输出队列中的每一个虚拟输出队列可对应于端口的物理缓冲器的队列分区。如这里所使用的,完全互连的全连接网络可以是其中所有节点都彼此连接的网络。例如,完全互连的全连接网络可以是一维HyperX网络或一维扁平蝶形网络。
如本文所使用的,交换设备可以指确定数据分组在网络中要采取的路由或方向的设备。交换设备的示例可以是路由器或开关。分层交换设备可以指由多个互连的子交换机形成的交换设备。
如这里所使用的,子交换机可以指与逻辑复合装置内的其他交换设备一起参与的交换设备,使得多个子交换机表现为单个交换设备。
该分层交换设备还可以包括交换机控制器,该交换机控制器用于在多个输出排队子交换机中的第一子交换机处,例如在第一子交换机的外部输入端口处接收分组。外部输入端口可以是从交换设备外部的设备接收分组的端口。所接收的分组可以用于被路由到多个子交换机中的第二子交换机,例如被路由到第二子交换机的特定外部输出端口。外部输出端口可以是用于将分组发送到交换设备外部的其他设备的端口。交换机控制器响应于接收到分组而可以使用第一子交换机的内部输出端口和第二子交换机的队列分区将分组从第一子交换机直接路由到第二子交换机,其中该第二子交换机的队列分区是用于该分组将被路由到的第二子交换机的特定外部输出端口。因此,第二子交换机的已经接收到该分组的内部输入端口以及因此第一子交换机能够访问的第二子交换机的队列分区是专用于第二子交换机的特定外部输出端口的队列分区,分组将在其路径中朝向其目的地被路由到该特定外部输出端口。
在一些示例中,可以经由最小路径在第一子交换机与第二子交换机之间直接路由分组。如本文所使用的,最小或直接路径可以指完全互连网络中直接互连第一子交换机和第二子交换机的路径。因此,通过最小路径路由分组避免了分组通过任何中间子交换机。
具有形成完全互连的全连接网络的多个子交换机并且具有避免表现出对彼此的任何可持续依赖性的多个子交换机的不相交的输入和输出端口的该分层交换设备可以创建内部分层交换架构,该内部分层交换架构可以在内部切断所有端口对端口依赖性,使得复合设计可以表现为单个交换设备。因此,这种内部分层交换架构可以是无死锁的。
在一些示例中,内部输入端口的并且用于特定子交换机的特定外部输出端口的特定队列分区相对于针对同一内部输入端口中的特定子交换机的不同外部输出端口的其他队列分区可以具有独立的分组流。以这种方式,内部输入端口被划分的每个队列分区可以由其自身调度,因此在队列分区中针对特定外部输出端口的一个队列分区阻塞的情况下,内部输入端口中的可以针对同一子交换机的其余输出端口的其余队列分区可以保持流动。因此,缺少对与不同外部输出端口相对应的队列分区的依赖性可以避免死锁阻塞。
在一些其他示例中,子交换机的外部输入端口还能够独占访问用于子交换机的每个内部输出端口的队列分区。这可以显著地减少交换设备中的分组入口处的线头阻塞。
在一些示例中,内部输入端口能够访问的外部输出端口的队列分区、包括与内部和外部输入端口相关联的队列分区可以是子交换机输入端口处的虚拟输出队列。在这样的示例中,直接在针对对应子交换机输出端口的虚拟输出队列当中分发在特定子交换机处接收的分组。在一些其他示例中,针对外部输出端口的内部输入端口所访问的队列分区,包括与内部和外部输入端口相关联的队列分区,可以是与相应子交换机的完全缓冲交叉开关结构的节点相关联的虚拟队列。在这样的示例中,每个子交换机均实现完全缓冲交叉开关,在该交叉开关中,在针对子交换机输出端口的队列当中分发在特定子交换机中接收的分组,这些子交换机输出端口与完全缓冲交叉开关结构的节点的缓冲器相关联。
在一些其他示例中,交换机控制器可以监视内部输入端口的队列分区的状态并且基于队列分区的状态来仲裁将在第一子交换机与第二子交换机之间路由来自队列分区中的任何队列分区的哪个分组。因此,交换机控制器可以基于所述队列分区的状态来决定第一子交换机的多个队列分区中的哪些分组有资格被朝向第二子交换机进行路由。例如,交换机控制器可以优先路由来自存储低于预定义阈值的分组数量的队列分区的分组。
在一些其他示例中,多个子交换机中的每个子交换机包括分组调度器以在该子交换机输入端口能够独占访问的多个队列分区当中分发在特定子交换机输入端口中接收的分组。
在一些示例中,交换机控制器可以在分层交换设备内,并且可以接收并路由在交换设备处接收的所有分组。然而,在一些其他示例中,多个子交换机中的每个子交换机可以包括相应的交换机控制器,该相应的交换机控制器用于接收并路由在对应的子交换机处接收的分组。
如这里所使用的,队列分区可以指物理缓冲器的可以由交换机控制器动态地或静态地指配的与对应端口相关联的部分。例如,交换机控制器可以存储指向交换设备的每个输入端口的缓冲器的不同队列分区的动态指针,这些动态指针可以在操作期间改变。在一些其他示例中,交换机控制器可以存储指向不同队列分区的静态指针或者可以存储指向特定队列分区的静态指针和指向特定输入端口的同一缓冲器内的其他队列分区的动态指针的组合。
在以下描述中,为了解释的目的,阐述了许多具体细节以便提供对本系统和方法的透彻理解。然而,对于本领域技术人员来说,显然,没有这些具体细节也可以实施本发明的装置、系统和方法。说明书中对"示例"或类似语言的引用意味着结合该示例描述的特定特征、结构或特性如所描述的那样被包括,但可能不被包括在其他示例中。
现在转到附图,图1示出了示例分层交换设备100的框图,该分层交换设备100具有彼此连接从而形成完全互连的全连接网络105的多个子交换机101-104。尽管图1示出了包括四个完全互连的子交换机的分层交换设备100,分层交换设备100可以包括任意数量的完全互连的子交换机。
分层交换设备100具有用于从交换设备100可以连接到的其他外部设备接收分组的十二个外部输入端口108以及用于向这些外部设备发送分组的十二个外部输出端口109。更具体地,子交换机1 101连接到外部输入端口108a和外部输出端口109a,子交换机2 102连接到外部输入端口108b和外部输出端口109b,子交换机103连接到外部输入端口108c和外部输出端口109c,并且子交换机4 104连接到外部输入端口108d和外部输出端口109d。
此外,子交换机1 101具有用于从形成全连接网络105的其余子交换机102-104接收分组的三个内部输入端口110a以及用于将分组发送到其余子交换机102-104的三个内部输出端口111a。进而,子交换机2 102具有三个内部输入端口110b和三个内部输出端口111b,子交换机3 103具有三个内部输入端口110c和三个内部输出端口111c,并且子交换机4 104具有三个内部输入端口110d和三个内部输入端口111d。虽然图1示出了所有子交换机101-104均具有三个外部输入端口和三个外部输出端口,但是子交换机可以具有任意数量的外部输入和输出端口。在一些示例中,子交换机可以具有不同数量的输入端口和输出端口,或者在子交换机之间可以具有不同数量的端口。在某些其他示例中,一些子交换机可能没有外部输出或输入端口,因此这些子交换机可以充当全连接网络内的转发子交换机。
子交换机101-104的每个外部输入端口108能够独占访问队列107b。这些队列可以是任何队列,例如循环队列、优先级队列等。此外,子交换机101-104的内部输入端口110中的每个能够独占访问相应子交换机101-104的每个外部输出端口109的虚拟输出队列107a。特别地,子交换机1 101的三个内部输入端口110a能够访问三个虚拟输出队列107a,每个虚拟输出队列对应于外部输出端口109a中的每个。子交换机2 102的三个内部输入端口110b能够访问三个虚拟输出队列107a,每个虚拟输出队列对应于外部输出端口109b中的每个。子交换机3 103的三个内部输入端口110c能够访问三个虚拟输出队列107,每个虚拟输出队列对应于外部输出端口109c中的每个。子交换机4 104的三个内部输入端口110d能够访问三个虚拟输出队列107a,每个虚拟输出队列对应于外部输出端口109d中的每个。
在这些内部输入端口110能够访问虚拟输出队列107的情况下,当分组到达任何内部输入端口110时,该分组被放置在与将朝向其目的地路由该分组的外部输出端口109相关联的虚拟输出队列107中。因此,发往不同外部输出端口的分组处于分开的虚拟输出队列107中,直到这些分组被处理。在其他一些示例中,可以用完全缓冲交叉开关结构来替换内部输入端口110处的虚拟输出队列107,在完全缓冲交叉开关结构中存在针对对应子交换机的输出端口的、与缓冲交叉开关的节点相关联的输出队列。因此,当分组到达子交换机的任何输入端口时,所述分组可以被放置在与输出端口相关联的输出队列中,将通过该输出端口朝向其目的地路由这些分组。因此,发往不同输出端口的分组处于完全缓冲交叉开关结构的分开的输出队列中,直到这些分组被处理。
在一些其他示例中,子交换机101-104的外部输入端口108a-d能够独占访问用于相应子交换机101-104的内部输出端口111a-d的虚拟输出队列。这可以避免在分层交换设备100的入口处的分组冲突并因此可以减少线头阻塞。
分层交换设备100经由其外部输入端口108中的任何一个外部输入端口接收分组。该分组可以包括指定其目的地的标头,使得交换机控制器106可以为待被朝向其目的路由的分组确定交换设备100的外部输出端口109。接收分组所通过的外部输入端口108和将分组朝向其目的地进行发送所通过的外部输出端口109可以属于不同的子交换机101-104。因此,交换机控制器106确定完全互连的全连接网络105内的最小路由,并且通过最小该路由并使用发送子交换机的内部输出端口111和接收子交换机的队列分区将分组从发送(源)子交换机直接路由到接收(目的地)子交换机,该队列分区针对分组将被路由到的接收子交换机的外部输出端口109。用于路由分组的该队列分区是专用于先前由交换机控制器106确定的特定外部输出端口109的队列分区。
子交换机101-104通过子交换机间链路112彼此连接。这些子交换机间链路112可以是电链路、光链路或电链路和光链路的组合。
在一些示例中,分层交换设备100可以是多管芯交换机,其中至少一个子交换机在特定管芯上。例如,每个管芯可以包括一个、两个或不同数量的子交换机,其中,公共管芯内的子交换机和多管芯交换机的不同管芯中的子交换机都被互连以形成全连接网络。
图2是图1的示例分层交换设备200的框图,其中分组从第一子交换机的外部输入端口被路由到第二子交换机的外部输出端口。
交换设备200经由第一外部输入端口、特别是经由外部输入端口2.2接收第一分组213,该外部输入端口2.2连接到完全互连的多个子交换机201-204中的子交换机2 202。第一分组213被存储在外部输入端口2.2的队列207b中,直到其被处理。然后,交换设备200经由第二外部输入端口、特别是外部输入端口2.1接收第二分组214,该外部输入端口2.1连接到完全互连的多个子交换机201-204中的同一子交换机2202。第二分组214被存储在外部输入端口2.2的队列207b中,直到其被处理。队列207b可以是任何种类的队列,例如循环队列、优先级队列等。虽然在图2的示例中,在同一入口子交换机处接收分组213、214,但是可以在不同的子交换机处接收分组并且可以经由公共或不同的出口子交换机路由这些分组。
交换机控制器206读取第一分组213的标头以知晓其目的地。基于该目的地,交换机控制器206确定第一分组213将在其朝向其目的地的路径中通过外部输出端口3.1退出分层交换设备200,交换机控制器206例如可以存储分层交换设备200所连接到的网络的结构和拓扑(在该图中未示出)。外部输出端口3.1连接到完全互连的全连接网络205的子交换机3 203。进而,交换机控制器206读取第二分组214的标头以知晓其目的地。基于该目的地,交换机控制器206确定第二分组214将在其朝向其目的地的路径中通过外部输出端口3.3退出分层交换设备200。外部输出端口3.3也连接到子交换机3 203。
因此,交换机控制器206计算子交换机2 202和子交换机3 203之间的所有可能的候选路由。然后,交换设备206使用子交换机2 202和子交换机3 203之间的最小路由来路由两个分组213、214。最小路由对应于将子交换机2 202的内部输出端口211b与子交换机3203的内部输入端口210c互连的子交换机间链路212。子交换机3 203的内部输入端口210c能够访问三个虚拟输出队列207a,其中每个虚拟输出队列207a针对子交换机3 203的相应外部输出端口,特别是针对输出端口3.1、3.2和3.3。因此,一旦经由子交换机2 202的内部输出端口211b分别将分组213、214从外部输入端口2.1和外部输入端口2.2的队列207路由到子交换机3 203的内部输入端口210c,则将第一分组213存储在内部输入端口210c的针对外部输出端口3.1的虚拟输出队列207a中,直到该第一分组被处理。类似地,第二分组214被存储在内部输入端口210c的针对外部输出端口3.2的虚拟输出队列207a中,直到该第二分组被处理。通过最小或直接路由对分组进行路由避免在使用非最小路由时可能出现的端口到端口依赖性。非最小或间接路由可能导致源自发往不同的输出端口的不同输入端口的分组针对同一中间队列进行竞争。这种竞争可能导致端口到端口依赖性。
然后,同时并独立地分别将分组213、214从虚拟输出队列207a朝向其对应的目的地路由到子交换机3 203中的其外部输出端口,外部输出端口3.1和外部输出端口3.3。同一输入端口能够访问的虚拟输出队列的独立分组流避免了在内部输入端口210c的入口处发生分组冲突并确保无死锁。可以由交换机控制器206相互独立地计算针对分组213和214计算的路由。例如,交换机控制器206的第一分解部分计算分组213的路由并将该分组213朝向其外部输出端口路由,而交换机控制器206的第二分解部分计算分组214的路由并朝向其对应的外部输出端口路由该分组214。交换机控制器206的另一分解部分可以在分组213和214之间进行仲裁从而确定所述分组213、214在内部输出端口211b处通过子交换机间链路212朝向向对应的公共虚拟输出队列207a前进的顺序。
在某些其他示例中,子交换机201-204的外部输入端口特别是外部输入端口1.1-3、2.1-3、3.1-3和4.1-3能够独占访问相应的子交换机201-204的内部输出端口111a-d的虚拟输出队列。因此,当在特定子交换机的特定外部输入端口处同时接收一个以上分组时,这些分组将通过特定子交换机的不同内部输出端口进行路由,一个虚拟输出队列针对这些内部输出端口中的每个内部输出端口进行分配避免了在交换设备200的入口处的分组冲突并且可以减少线头阻塞。
虽然在图2的示例中,所有子交换机201-204均包括外部输入端口和外部输出端口,但是在一些示例中,在全连接网络内可能存在缺少外部输入端口的子交换机,因此这些子交换机只能向相同或不同网络中的其他交换设备发送分组。在其他一些示例中,在全连接网络内可能存在缺少外部输出端口的子交换机,因此这些子交换机只能从相同或不同网络中的其他交换设备接收分组。在其他一些示例中,在全连接网络内可能存在没有外部或内部输出端口子的开关,因此这些子交换机只能向同一完全互连的全连接网络内的其他子交换机转发分组。
图3是用于使用被配置为全连接拓扑的分层交换设备来路由分组的示例方法300的流程图。分层交换设备包括形成完全互连的全连接网络的多个输出排队子交换机。子交换机中的每一个子交换机包括内部输入端口和内部输出端口以与完全互连的全连接网络内的其他子交换机交换分组。例如,完全互连的全连接网络可以是一维HyperX网络或一维扁平蝶形网络。
在方法300的步骤301处,形成完全互连的全连接网络的多个子交换机中的特定子交换机的每个内部输入端口被分配有用于相应子交换机的每个外部输出端口的队列分区。因此,方法300向特定子交换机的每个内部输入端口分配与特定子交换机具有的外部输出端口一样多的队列分区。在一些示例中,特定子交换机的每个外部输入端口被分配有用于相应子交换机的每个内部输出端口的队列分区。因此,方法300可以向特定子交换机的每个外部输入端口分配与特定子交换机具有的内部输出端口一样多的队列分区。
在方法300的步骤302处,在多个子交换机的第一子交换机的外部输入端口处接收分组。接收到的分组将在内部被路由到多个子交换机中的第二子交换机的外部输出端口。该外部输出端口可以将当前交换设备与另一个交换设备或与当前交换设备所连接到的同一网络内的任何其他设备互连,或将该当前交换设备互连到当前交换设备外部的任何网络。
在方法300的步骤303处,分层交换设备的交换机控制器使用第一子交换机的内部输出端口和第二子交换机的队列分区在第一子交换机的外部输出端口至第二子交换机的外部输出端口之间路由分组,第二子交换机的该队列分区用于该第二子交换机的分组将所被路由到的外部输出端口。该队列分区是先前分配给第二子交换机的外部输出端口的队列分区,分组将通过该外部输出端口进行路由。在一些示例中,对于特定子交换机的特定内部输入端口,该方法可以为特定内部输入端口的具有相对于彼此独立的分组流的不同外部输出端口实现不同的队列分区。因此,每个队列分区中的分组流彼此独立。
在一些示例中,例如,通过使用存储在存储分层交换设备的内部拓扑的交换设备中的预存在路由表或者通过例如使用交换设备中的固定功能逻辑来执行算术运算,交换机控制器可以确定用于分组的最小或直接路由。该路由表还可以存储交换设备所连接到的网络的拓扑,因此交换机控制器能够识别分组将要采用的外部输出端口以被路由到其目的地。该路由表可以由通信地连接到交换设备的网络控制器周期性地更新。该网络控制器还可以提供交换设备所连接到的网络的拓扑。在一些其他示例中,可能存在第一路由表以及第二路由表,该第一路由表存储分层交换设备的内部拓扑,并且该第二路由表存储该交换设备所连接到的网络的拓扑。例如,交换机控制器可以首先通过检查第二路由表来确定交换设备的要通过其路由分组的外部输出端口。然后,由于了解了接收分组所通过的外部输入端口和分组将被路由到的外部输出端口,因此交换机控制器可以通过检查第一表来确定通过交换设备的内部全连接网络的最小路由。
在一些示例中,方法300可以从包括在相应子交换机的输入端口处的虚拟输出队列输出、以及与相应子交换机的完全缓冲交叉开关的节点相关联的输出队列的组中选择用于输入端口能够访问的输出端口的队列分区,包括外部和内部输入端口能够访问的队列分区。
在一些其他示例中,交换机控制器可以监视子交换机的内部输入端口能够访问的队列分区的状态。然后,交换机控制器可以基于队列分区的状态来仲裁要在第一子交换机和第二子交换机之间路由来自队列分区中的哪个队列分区的哪个分组。
在一些示例中,交换设备的分组调度器可以在特定子交换机的输入端口能够访问的队列分区当中分发在特定子交换机的特定输入端口中接收的分组。
图4是示例分层交换设备400的框图,该分层交换设备400具有形成完全互连的全连接网络的彼此连接的多个输出排队子交换机407-409并且包括存储待由分层交换设备400的交换机控制器401所执行的指令的机器可读存储介质402。应当理解,在不脱离示例分层交换设备400的范围的情况下,图4所示的分层交换设备400可以包括额外部件,并且可以移除和/或修改本文所述的部件中的一些。另外,分层交换设备400的实施方式不限于该示例。还应该理解,交换机控制器401可以代表分层交换设备400中的用于将分组从第一子交换机407-409路由到第二子交换机407-409的硬件和软件逻辑的组合。
分层交换设备400被描绘为包括:九个外部输入端口411a、412a和413a,通过该九个外部输入端口接收数据分组;以及九个外部输出端口411b、412b和413b,通过该九个外部输出端口在分层交换设备400所连接到的网络(图中未示出)中将分组朝向其目的地转发到下一跳。分层交换设备400还包括机器可读存储介质402、交换机控制器401以及彼此连接从而形成完全互连的全连接网络a的多个输出排队子交换机407-409。交换机控制器401可以包括硬件和软件逻辑以执行指令,例如存储在机器可读存储介质503中的指令403-406。每个子交换机407-409包括:两个内部输入端口414a、415a和416a,通过该两个内部输入端口从其他子交换机407-409接收分组;以及两个内部输出端口414b、415b和416b,通过该两个内部输出端口将分组发送到其他子交换机407-409。在一些示例中,分层交换设备400可以包括路由表,该路由表存储完全互连的所有网络内的所有可能路由。在一些其他示例中,路由表还可存储分层交换设备400与网络中其余网络设备之间的所有可能路由。
分层交换设备400的外部输入端口411a、412a和413a以及外部输出端口411b、412b和413b连接到相应子交换机407-409,使得外部输入端口411a和外部输出端口411b连接到子交换机1 407,外部输入端口412a和外部输出端口412b连接到子交换机2 408,并且外部输入端口413a和外部输出端口413b连接到子交换机3 409。外部输入端口411a、412a和413a能够独占访问队列110b。这些队列110b可以是任何队列,例如循环队列、优先级队列等。多个子交换机407-409通过子交换机间链路彼此连接。
交换机控制器401在403为子交换机407-409的每个内部输入端口414a、415a和416a分配用于相应子交换机407-409的每个外部输出端口411b、412b和413b的队列分区。在这样的示例中,交换机控制器401将三个队列分区分配给每个内部输入端口414a、415a和416a,使得内部输入端口能够独占访问已被分配的队列部分。队列分区具有相对于彼此独立的分组流,使得每个队列分区可以由其自身调度。
交换机控制器401响应于在多个子交换机407-409的第一子交换机处在404处接收到分组,在405处通过最小路径并使用第一子交换机的内部输出端口和多个子交换机407-409中的第二子交换机的队列分区在第一子交换机和第二子交换机之间路由该分组,其中,该分组将被路由到第二子交换机,第二子交换机的该队列分区用于第二子交换机中的分组将被路由到的外部输出端口。例如,如果在子交换机1 407的外部输入端口411a处接收分组并且该分组将被路由到子交换机3 409的外部输出端口413b,则交换机控制器401可以通过子交换机1 407和子交换机409之间的最小路径并使用子交换机1 407的内部输出端口414b和子交换机3 409的输出分区410a来路由分组,该输出分区410是针对将分组朝向其目的地进行路由所通过的外部输出端口413b。该最小路径对应于子交换机间链接406x。
在一些示例中,交换机控制器401彼此独立地路由不同的接收到的分组。例如,交换机控制器401的不同分解部分为不同的接收到的分组计算对应的路由并将其朝向其外部输出端口进行路由。交换机控制器401的其他分解部分在子交换机407-409的输出端口处仲裁所接收的分组从而确定所述分组朝向其目的地前进的顺序。
在一些示例中,机器可读存储介质402包括指令,所述指令用于从包括在相应子交换机的内部输入端口处的虚拟输出队列、以及与相应子交换机的完全缓冲交叉开关结构的节点相关联的输出队列的组中,选择所述内部输入端口能够访问的外部输出端口的队列分区。
在一些示例中,机器可读存储介质402包括指令,所述指令用于向多个子交换机的特定子交换机的每个外部输入端口分配针对该特定子交换机的每个内部输出端口的队列分区。
交换机控制器401可以包括硬件和软件逻辑以执行以上关于指令403-405所述的功能。机器可读存储介质402可以位于执行机器可读指令的计算设备中,或者远离但能够访问(例如,经由计算机网络)计算设备以用于执行。
如本文中所使用的,“机器可读存储介质”可以是任何电子,磁性,光学或其他物理存储装置以包含或存储诸如可执行指令、数据等的信息。例如,本文描述的任何机器可读存储介质可以是随机存取存储器(RAM)、易失性存储器、非易失性存储器、闪存,存储驱动器(例如,硬盘驱动器)、固态驱动器、任意类型的存储盘(例如,光盘,DVD等)等中的任何一种或其组合。此外,本文描述的任何机器可读存储介质可以是非暂时性的。在本文描述的示例中,一个或多个机器可读存储介质可以是物品(或制造物品)的一部分。物品或制造物品可以指任何制造的单个部件或多个部件。
Claims (20)
1.一种分层交换设备,包括:
多个子交换机,所述多个子交换机形成完全互连的全连接网络,所述子交换机包括内部输入端口和内部输出端口以与所述完全互连的全连接网络内的其他子交换机交换分组;
其中,每个子交换机内部输入端口能够独占访问针对相应子交换机的每个外部输出端口的队列分区;以及
交换机控制器,所述交换机控制器用于响应于在所述多个子交换机中的第一子交换机处接收到分组,所述分组将被路由到所述多个子交换机中的第二子交换机的特定外部输出端口,而使用所述第一子交换机的内部输出端口和所述第二子交换机的队列分区,将所述分组从所述第一子交换机直接路由到所述第二子交换机,所述第二子交换机的所述队列分区针对所述特定外部输出端口。
2.根据权利要求1所述的分层交换设备,其中,针对特定子交换机的特定外部输出端口的特定队列分区相对于针对所述特定子交换机的不同外部输出端口的其他队列分区具有独立的分组流。
3.根据权利要求1所述的分层交换设备,其中,针对所述内部输入端口能够访问的所述外部输出端口的所述队列分区是从包括以下各项的组中选择的:在相应子交换机的所述内部输入端口处的虚拟输出队列,以及与相应子交换机的完全缓冲交叉开关的节点相关联的输出队列。
4.根据权利要求1所述的分层交换设备,其中,所述交换机控制器用于监视所述内部输入端口能够独占访问的所述队列分区的状态,并且用于基于所述队列分区的所述状态来仲裁将要在所述第一子交换机和所述第二子交换机之间路由来自所述队列分区中的任何队列分区的哪个分组。
5.根据权利要求1所述的分层交换设备,其中,所述子交换机的外部输入端口能够独占访问针对所述子交换机的每个内部输出端口的队列分区。
6.根据权利要求1所述的分层交换设备,其中,所述多个子交换机中的每个子交换机包括分组调度器以在所述特定输入端口能够独占访问的所述队列分区当中分发在特定输入端口中接收的所述分组。
7.根据权利要求1所述的分层交换设备,其中,所述交换机控制器位于所述交换设备内并且用于接收并路由在所述交换设备处接收到的所有分组。
8.根据权利要求1所述的分层交换设备,其中,所述多个子交换机中的每个子交换机包括相应的交换机控制器,相应的交换机控制器用于接收并路由在对应的子交换机处接收到的分组。
9.根据权利要求1所述的分层交换设备,其中,所述分层交换设备是多管芯交换机。
10.根据权利要求1所述的分层交换设备,其包括将子交换机彼此连接的子交换机间链路,其中,所述子交换机间链路是从以下各项中选择的链路:电链路、光链路及其组合。
11.一种在分层交换设备中切换分组的方法,所述分层交换设备包括形成完全互连的全连接网络的多个子交换机,并且其中,所述子交换机包括内部输入端口和内部输出端口以在所述完全互连的全连接网络内与其他子交换机交换分组,所述方法包括:
为所述多个子交换机中的特定子交换机的每个内部输入端口分配针对所述特定子交换机的每个外部输出端口的队列分区;
在所述多个子交换机的第一子交换机的外部输入端口处接收分组,其中,所述分组将被路由到所述多个子交换机中的第二子交换机的特定外部输出端口;
由交换机控制器使用所述第一子交换机的内部输出端口和所述第二子交换机的队列分区,将所述分组从所述第一子交换机的所述外部输入端口直接路由到所述第二子交换机的所述外部输出端口,所述第二子交换机的所述队列分区针对所述第二子交换机的所述特定外部输出端口。
12.根据权利要求11所述的方法,包括对针对特定子交换机的不同外部输出端口的不同队列分区,实现相对于彼此独立的分组流。
13.根据权利要求11所述的方法,包括:从包括以下各项的组中选择针对所述内部输入端口能够访问的所述外部输出端口的所述队列分区:在相应子交换机的所述内部输入端口处的虚拟输出队列,以及与相应子交换机的完全缓冲交叉开关结构的节点相关联的输出队列。
14.根据权利要求11所述的方法,包括:
由所述交换机控制器,监视所述内部输入端口能够访问的所述队列分区的状态;以及
由所述交换机控制器,基于所述队列分区的所述状态,仲裁将在所述第一子交换机和所述第二子交换机之间路由来自所述队列分区中的哪个队列分区的哪个分组。
15.根据权利要求11所述的方法,向所述多个子交换机中的特定子交换机的每个外部输入端口分配针对所述特定子交换机的每个内部输出端口的队列分区。
16.根据权利要求11所述的方法,包括:由分组调度器,在与特定子交换机的输入端口相关联的所述队列分区当中分发在所述特定子交换机的特定输入端口中接收的所述分组。
17.根据权利要求11所述的方法,包括:由所述交换机控制器,确定针对待朝向其目的地进行路由的所述分组的、所述分层交换设备的外部输出端口。
18.一种非暂时性机器可读存储介质,其上存储有机器可读指令,所述指令用于使交换机控制器的计算机处理器执行以下操作:
为分层交换设备的多个子交换机的特定子交换机的每个内部输入端口,分配针对所述特定子交换机的每个外部输出端口的队列分区,所述队列分区具有相对于彼此独立的分组流,并且其中,所述多个子交换机形成完全互连的全连接网络,并且所述子交换机包括内部输入端口和内部输出端口以与所述完全互连的全连接网络内的其他子交换机交换分组;以及
响应于在所述多个子交换机中的第一子交换机处接收到分组,所述分组待被路由到所述多个子交换机中的第二子交换机的特定外部输出端口,使用所述第一子交换机的内部输出端口和所述第二子交换机的队列分区,将所述分组从所述第一子交换机直接路由至所述第二子交换机,所述第二子交换机的所述队列分区针对所述第二子交换机的所述特定外部输出端口。
19.根据权利要求18所述的非暂时性机器可读存储介质,包括指令,所述指令用于从包括以下各项的组中选择针对所述内部输入端口能够访问的所述外部输出端口的所述队列分区:在相应子交换机的内部输入端口处的虚拟输出队列,以及与相应子交换机的完全缓冲交叉开关结构的节点相关联的输出队列。
20.根据权利要求18所述的非暂时性机器可读存储介质,包括指令,所述指令用于向所述多个子交换机中的特定子交换机的每个外部输入端口分配针对所述特定子交换机的每个内部输出端口的队列分区。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/956,206 US10938751B2 (en) | 2018-04-18 | 2018-04-18 | Hierarchical switching devices |
US15/956,206 | 2018-04-18 | ||
PCT/US2019/028122 WO2019204603A1 (en) | 2018-04-18 | 2019-04-18 | Hierarchical switching devices |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111771361A true CN111771361A (zh) | 2020-10-13 |
CN111771361B CN111771361B (zh) | 2022-07-22 |
Family
ID=68236636
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980015744.1A Active CN111771361B (zh) | 2018-04-18 | 2019-04-18 | 分层交换设备、在分层交换设备中切换分组的方法与介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10938751B2 (zh) |
CN (1) | CN111771361B (zh) |
DE (1) | DE112019002009B4 (zh) |
WO (1) | WO2019204603A1 (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7020131B1 (en) * | 2001-12-24 | 2006-03-28 | Applied Micro Circuits Corp. | System and method for hierarchical switching |
US7039011B1 (en) * | 2001-10-31 | 2006-05-02 | Alcatel | Method and apparatus for flow control in a packet switch |
US20060126610A1 (en) * | 2004-12-15 | 2006-06-15 | Tellabs, Inc. | Method and apparatus for horizontally slicing a multi-stage switch fabric |
US20060285548A1 (en) * | 2003-09-29 | 2006-12-21 | Hill Alan M | Matching process |
US20110310739A1 (en) * | 2010-06-22 | 2011-12-22 | Gunes Aybay | Methods and apparatus for virtual channel flow control associated with a switch fabric |
US20120134359A1 (en) * | 2010-11-26 | 2012-05-31 | Fujitsu Limited | Switch and switching method |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4742511A (en) | 1985-06-13 | 1988-05-03 | Texas Instruments Incorporated | Method and apparatus for routing packets in a multinode computer interconnect network |
JP2738762B2 (ja) * | 1990-01-24 | 1998-04-08 | 株式会社日立製作所 | 高速パケット交換機 |
US5453978A (en) | 1994-04-04 | 1995-09-26 | International Business Machines Corporation | Technique for accomplishing deadlock free routing through a multi-stage cross-point packet switch |
EP0849917B1 (en) | 1996-12-20 | 2005-07-20 | International Business Machines Corporation | Switching system |
US6324613B1 (en) | 1999-01-05 | 2001-11-27 | Agere Systems Guardian Corp. | Port router |
US7346050B2 (en) | 2005-01-31 | 2008-03-18 | International Business Machines Corporation | Method, system, and storage medium for delay optimization for scheduling in bufferless crossbar switches |
US7420294B2 (en) | 2005-12-23 | 2008-09-02 | Maya Industries Limited | Smart power switch for broadband communications network |
JP4867778B2 (ja) | 2007-05-07 | 2012-02-01 | 株式会社日立製作所 | 分散型スイッチファブリックシステム |
US8352669B2 (en) | 2009-04-27 | 2013-01-08 | Lsi Corporation | Buffered crossbar switch system |
US8605722B1 (en) | 2009-12-10 | 2013-12-10 | Juniper Networks, Inc. | Deadlock-resistant fabric tree replication in a network device |
US7962615B1 (en) | 2010-01-07 | 2011-06-14 | International Business Machines Corporation | Multi-system deadlock reduction |
US8743888B2 (en) | 2010-07-06 | 2014-06-03 | Nicira, Inc. | Network control apparatus and method |
US9660940B2 (en) * | 2010-12-01 | 2017-05-23 | Juniper Networks, Inc. | Methods and apparatus for flow control associated with a switch fabric |
US9693124B2 (en) | 2015-06-09 | 2017-06-27 | Oracle International Corporation | Macro-switch with a buffered switching matrix |
US9699078B1 (en) | 2015-12-29 | 2017-07-04 | International Business Machines Corporation | Multi-planed unified switching topologies |
US9893950B2 (en) | 2016-01-27 | 2018-02-13 | International Business Machines Corporation | Switch-connected HyperX network |
-
2018
- 2018-04-18 US US15/956,206 patent/US10938751B2/en active Active
-
2019
- 2019-04-18 CN CN201980015744.1A patent/CN111771361B/zh active Active
- 2019-04-18 DE DE112019002009.9T patent/DE112019002009B4/de active Active
- 2019-04-18 WO PCT/US2019/028122 patent/WO2019204603A1/en active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7039011B1 (en) * | 2001-10-31 | 2006-05-02 | Alcatel | Method and apparatus for flow control in a packet switch |
US7020131B1 (en) * | 2001-12-24 | 2006-03-28 | Applied Micro Circuits Corp. | System and method for hierarchical switching |
US20060285548A1 (en) * | 2003-09-29 | 2006-12-21 | Hill Alan M | Matching process |
US20060126610A1 (en) * | 2004-12-15 | 2006-06-15 | Tellabs, Inc. | Method and apparatus for horizontally slicing a multi-stage switch fabric |
US20110310739A1 (en) * | 2010-06-22 | 2011-12-22 | Gunes Aybay | Methods and apparatus for virtual channel flow control associated with a switch fabric |
US20120134359A1 (en) * | 2010-11-26 | 2012-05-31 | Fujitsu Limited | Switch and switching method |
Also Published As
Publication number | Publication date |
---|---|
US10938751B2 (en) | 2021-03-02 |
CN111771361B (zh) | 2022-07-22 |
US20190327189A1 (en) | 2019-10-24 |
WO2019204603A1 (en) | 2019-10-24 |
DE112019002009B4 (de) | 2024-06-13 |
DE112019002009T5 (de) | 2021-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104885422B (zh) | 在并行处理网络设备中维持分组顺序的方法和设备 | |
US8306042B1 (en) | Class-based deterministic packet routing | |
KR100615724B1 (ko) | 가상 채널 할당을 가진 라우터 | |
US9325637B2 (en) | System for performing distributed data cut-through | |
US9270601B2 (en) | Path resolution for hierarchical load distribution | |
US9007920B2 (en) | QoS in heterogeneous NoC by assigning weights to NoC node channels and using weighted arbitration at NoC nodes | |
US20040196859A1 (en) | Switching arrangement and method with separated output buffers | |
JPH1063629A (ja) | ネットワーク内でルーティング・デッドロックの発生を防止する方法及び装置 | |
EP3328008B1 (en) | Deadlock-free routing in lossless multidimensional cartesian topologies with minimal number of virtual buffers | |
EP3445007B1 (en) | Routing packets in dimensional order in multidimensional networks | |
US9185026B2 (en) | Tagging and synchronization for fairness in NOC interconnects | |
US9001841B2 (en) | Communication control device, parallel computer system, and communication control method | |
Shrivastava et al. | Design and performance evaluation of a NoC-based router architecture for MPSoC | |
US20200127934A1 (en) | Data processing method and apparatus, and switching device | |
CN111771361B (zh) | 分层交换设备、在分层交换设备中切换分组的方法与介质 | |
US20050027880A1 (en) | System and method for routing information in a nodal computer network | |
US20060165081A1 (en) | Deflection-routing and scheduling in a crossbar switch | |
US20020080795A1 (en) | Packet switching arrangement comprising a cascade control and bufferless cascade switching matrix | |
US7623456B1 (en) | Apparatus and method for implementing comprehensive QoS independent of the fabric system | |
US7269158B2 (en) | Method of operating a crossbar switch | |
US7639704B2 (en) | Message switching system | |
US20050190795A1 (en) | Method and allocation device for allocating pending requests for data packet transmission at a number of inputs to a number of outputs of a packet switching device in successive time slots | |
US9998403B2 (en) | Most connection method for egress port selection in a high port count switch | |
WO2018217960A1 (en) | Virtual channel routing | |
Lan et al. | Flow maximization for noc routing algorithms |
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 |