Routing method and device for multi-dimensional hypercube interconnection network
By dividing the node set and planning the ring routing path in the multidimensional hypercube interconnection network, the deadlock problem in the routing process is solved, and the network diameter is shortened and the communication latency is reduced.
Patent Information
- Application Number
- CN202510494400.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-04-18
- Publication Date
- 2026-01-06
- Estimated Expiration
- 2045-04-18
AI Technical Summary
In multidimensional hypercube interconnected networks, the routing process is prone to deadlock, which can lead to network paralysis and affect data transmission.
The network nodes of the multidimensional hypercube interconnection network are divided into a first set of nodes and a second set of nodes, and a ring structure is formed through a specific connection method. The target routing path is planned to avoid deadlock, including detecting the shortest routing path and planning a routing path with at least two hops based on the node set.
It effectively avoids deadlock during the routing process, reduces network diameter and communication latency, and improves network reliability and efficiency.
Smart Images

Figure CN120151272B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of computers, and more specifically, to a routing method and apparatus for a multidimensional hypercube interconnect network. Background Technology
[0002] With the rapid popularization and development of the Internet and the continuous deployment of satellite Internet constellation projects, more user terminals are accessing the network, giving rise to Internet applications covering all aspects of people's production and life. Internet traffic has shown an explosive growth trend. In order to improve the performance of information exchange networks and meet the needs of emerging new applications and services, it is necessary to study exchange networks with larger capacity and better performance, as well as high-performance scheduling algorithms adapted to them.
[0003] Interconnection networks are crucial for building high-performance, massively parallel processing systems. Their design goal is to reliably and efficiently connect a certain number of functional nodes to form a cost-effective large-scale parallel system at the lowest possible cost. Current interconnection networks use hypercube topologies, but the routing algorithms used in current multidimensional hypercube interconnection networks are prone to deadlock when routing requests that form loops. Once deadlock occurs, it can paralyze the interconnection network and affect data transmission.
[0004] There is currently no effective solution to the deadlock problem that occurs during the routing process of multidimensional hypercube interconnected networks in related technologies. Summary of the Invention
[0005] This application provides a routing method and apparatus for a multidimensional hypercube interconnection network, which at least solves the problem of deadlock that may occur during the routing process in related technologies.
[0006] According to one embodiment of this application, a routing method for a multidimensional hypercube interconnect network is provided, wherein the multidimensional hypercube interconnect network includes 2 N There are 2^N network nodes, where N is the dimension of the multidimensional hypercube interconnection network, which is divided into 2^N network nodes. N-3 There are 2 subnetworks, where N is a positive integer greater than 2; the 2 N-3Each subnetwork in the target subnetwork comprises 8 target network nodes. These 8 target network nodes are divided into a first node set and a second node set. Each of the first and second node sets comprises 4 target network nodes. The 4 target network nodes in the first node set are connected one-to-one with the 4 target network nodes in the second node set. The 4 target network nodes in the first node set are connected in a ring. The 4 target network nodes in the second node set include a first network node, a second network node, a third network node, and a fourth network node. The first network node is connected to the third and fourth network nodes, and the second network node is also connected to the third and fourth network nodes. The routing method is used to route from the starting routing node in the target subnetwork to the final routing node in the target subnetwork. The routing method includes:
[0007] Based on the starting node identifier of the starting routing node, the final node identifier of the final routing node, and the node set where the starting routing node is located, the path information of the shortest routing path from the starting routing node to the final routing node is detected, wherein the path information is used to indicate the number of routing hops of the shortest routing path;
[0008] When the path information indicates that the shortest route path is a two-hop route path, a target route path is planned based on the set of nodes where the starting route node is located and the set of nodes where the final route node is located, wherein the target route path is a route path with at least two hops.
[0009] Routing from the starting routing node to the final routing node according to the target routing path.
[0010] As an optional implementation, the step of planning the target route path based on the node set where the starting route node is located and the node set where the final route node is located includes:
[0011] The target set relationship between the starting routing node and the final routing node is determined based on the node set where the starting routing node is located and the node set where the final routing node is located.
[0012] Find the target routing rule corresponding to the target set relationship from the set relationships and routing rules with corresponding relationships; plan the target routing path according to the target routing rule.
[0013] As an optional implementation, determining the target set relationship between the starting routing node and the final routing node based on the node set where the starting routing node is located and the node set where the final routing node is located includes:
[0014] If the set of nodes where the starting routing node is located is the first set of nodes, and the set of nodes where the final routing node is located is the first set of nodes, then the target set relationship is determined to be the first set relationship, wherein the first set relationship is used to indicate that all routing nodes are located in the first set of nodes;
[0015] If the set of nodes where the starting routing node is located is the second set of nodes, and the set of nodes where the final routing node is located is the second set of nodes, then the target set relationship is determined to be the second set relationship, wherein the second set relationship is used to indicate that all routing nodes are located in the second set of nodes;
[0016] If the set of nodes where the starting routing node is located is the first set of nodes and the set of nodes where the final routing node is located is the second set of nodes, or if the set of nodes where the starting routing node is located is the second set of nodes and the set of nodes where the final routing node is located is the first set of nodes, then the target set relationship is determined to be a third set relationship, wherein the third set relationship is used to indicate that the routing nodes are located in different set of nodes.
[0017] As an optional implementation, the step of searching for the target routing rule corresponding to the target set relationship from the set relationships and routing rules with corresponding relationships includes:
[0018] When the target set relationship is the first set relationship, the target routing rule is determined to be the first routing rule, wherein the first routing rule is used to indicate that a routing path is planned within the first node set according to the routing direction corresponding to the current starting routing node;
[0019] When the target set relationship is the second set relationship, the target routing rule is determined to be the second routing rule, wherein the second routing rule is used to indicate that a routing path is planned within the second node set according to the routing direction corresponding to the current starting routing node;
[0020] When the target set relationship is the third set relationship, the target routing rule is determined to be the third routing rule. The third routing rule is used to instruct the first hop to route to the reference routing node in the node set where the final routing node is located, which is directly connected to the starting routing node, and then use the reference routing node as the current starting routing node to plan the routing path according to the first routing rule or the second routing rule.
[0021] As an optional implementation, planning the target route path according to the target routing rules includes:
[0022] When the target routing rule is the first routing rule, the target routing direction is determined based on the starting node identifier;
[0023] According to the target routing direction, the next hop routing node is obtained from the first node set, and the final routing node is determined as the last hop routing node to obtain the target routing path.
[0024] As an optional implementation, when N is 3, the 2 N The identifier of each network node is a three-bit binary number. In the case that the highest bit of the identifiers of network nodes in the first node set is 0, and the highest bit of the identifiers of network nodes in the second node set is 1, determining the target routing direction based on the starting node identifier includes:
[0025] If the starting node is identified as 100 or 111, the target routing direction is determined to be the first routing direction.
[0026] If the starting node is identified as 101 or 110, the target routing direction is determined to be the second routing direction, wherein the second routing direction is opposite to the first routing direction.
[0027] As an optional implementation, planning the target route path according to the target routing rules includes:
[0028] If the target routing rule is the second routing rule, the next hop routing node is obtained from the second node set according to the starting routing node;
[0029] The final routing node is determined as the routing node for the last hop, thus obtaining the target routing path.
[0030] As an optional implementation, obtaining the next-hop routing node from the second node set based on the starting routing node includes:
[0031] If the starting routing node is the first network node, the third network node is determined as the next-hop routing node;
[0032] If the starting routing node is the second network node, the fourth network node is determined as the next-hop routing node;
[0033] If the starting routing node is the third network node, the first network node is determined as the routing node for the next hop.
[0034] If the starting routing node is the fourth network node, the second network node is determined as the next-hop routing node.
[0035] As an optional implementation, planning the target route path according to the target routing rules includes:
[0036] If the target routing rule is the third routing rule, the reference routing node is determined as the routing node of the first hop;
[0037] Determine the reference route direction in the node set where the reference route node is located based on the reference route node;
[0038] According to the reference routing direction, a reference routing path from the reference routing node to the final routing node is planned in the node set where the reference routing node is located, and the target routing path is obtained.
[0039] As an optional implementation, when the reference routing node is located in the first node set, determining the reference routing direction in the node set where the reference routing node is located based on the reference routing node includes:
[0040] If the reference node identifier of the reference routing node is 100 or 111, the reference routing direction is determined to be the third routing direction;
[0041] When the reference node is identified as 101 or 110, the reference routing direction is determined to be the fourth routing direction, wherein the fourth routing direction is opposite to the third routing direction;
[0042] Where N is 3, the 2 N Each network node is identified by a three-bit binary number. The highest bit of the identifier of each network node in the first set of nodes is 0, and the highest bit of the identifier of each network node in the second set of nodes is 1.
[0043] As an optional implementation, when the reference routing node is located in the second node set, determining the reference routing direction in the node set where the reference routing node is located based on the reference routing node includes:
[0044] When the reference routing node is the first network node, the direction in which the third network node is located is determined as the reference routing direction;
[0045] If the reference routing node is the second network node, the direction in which the fourth network node is located is determined as the reference routing direction;
[0046] When the reference routing node is the third network node, the direction in which the first network node is located is determined as the reference routing direction;
[0047] When the reference routing node is the fourth network node, the direction in which the second network node is located is determined as the reference routing direction.
[0048] As an optional implementation, the step of planning a reference route path from the reference route node to the final route node in the node set where the reference route node is located according to the reference route direction, to obtain the target route path, includes:
[0049] The routing node that is directly connected to the reference routing node in the reference routing direction is determined as the routing node of the second hop;
[0050] If the routing node of the second hop is the final routing node, the routing path of the starting routing node, the reference routing path and the final routing node connected in sequence is determined as the target routing path;
[0051] If the routing node of the second hop is not the final routing node, the routing path of the starting routing node, the reference routing path, the routing node of the second hop and the final routing node connected in sequence is determined as the target routing path.
[0052] As an optional implementation, the step of detecting the path information of the shortest route from the starting route node to the final route node based on the starting node identifier of the starting route node, the final node identifier of the final route node, and the node set where the starting route node is located includes:
[0053] The connection relationship between the starting node and the final node is determined based on the starting node identifier, the final node identifier, and the node set where the starting routing node is located;
[0054] The path information is determined based on the connection relationship.
[0055] As an optional implementation, determining the connection relationship between the starting routing node and the final routing node based on the starting node identifier, the final node identifier, and the node set where the starting routing node is located includes:
[0056] Perform a bitwise XOR operation between the starting node identifier and the ending node identifier to obtain the result.
[0057] The connection relationship is determined based on the calculation result and the set of nodes where the starting routing node is located.
[0058] As an optional implementation, when N is 3, the highest bit of the identifier of the network node in the first node set is 0, and the highest bit of the identifier of the network node in the second node set is 1, determining the connection relationship based on the calculation result and the node set where the starting routing node is located includes:
[0059] If the starting routing node is in the first node set and the calculation result is one of 001, 010, or 100, the connection relationship is determined to be a direct connection between the starting routing node and the final routing node.
[0060] If the starting routing node is in the second node set and the calculation result is one of 011, 010, or 100, the connection relationship is determined to be a direct connection between the starting routing node and the final routing node.
[0061] If the starting routing node is in the first node set and the calculation result is a value other than 001, 010, and 100, the connection relationship is determined to be that there is no direct connection between the starting routing node and the final routing node.
[0062] If the starting routing node is in the second node set and the calculation result is a value other than 011, 010, or 100, the connection relationship is determined to be that there is no direct connection between the starting routing node and the final routing node.
[0063] As an optional implementation, determining the path information based on the connection relationship includes:
[0064] When the connection relationship is a direct connection between the starting routing node and the final routing node, the path information is determined to indicate that the shortest routing path is a one-hop routing path;
[0065] When the connection relationship is such that there is no direct connection between the starting routing node and the final routing node, the path information is determined to indicate that the shortest routing path is a two-hop routing path.
[0066] According to another embodiment of this application, a routing device for a multidimensional hypercube interconnect network is provided, wherein the multidimensional hypercube interconnect network includes 2 N There are 2^N network nodes, where N is the dimension of the multidimensional hypercube interconnection network, which is divided into 2^N network nodes. N-3 There are 2 subnetworks, where N is a positive integer greater than 2; the 2 N-3 Each subnetwork in the subnetwork, serving as a target subnetwork, comprises 8 target network nodes. These 8 target network nodes are divided into a first node set and a second node set. Each of the first and second node sets comprises 4 target network nodes. The 4 target network nodes in the first node set are connected one-to-one with the 4 target network nodes in the second node set. The 4 target network nodes in the first node set are connected in a ring. The 4 target network nodes in the second node set include a first network node, a second network node, a third network node, and a fourth network node. The first network node is connected to the third network node and the fourth network node, and the second network node is also connected to the third network node and the fourth network node.
[0067] The routing device is used to route from a starting routing node in the target subnetwork to a final routing node in the target subnetwork, and the routing device includes:
[0068] The detection module is used to detect path information of the shortest route from the starting route node to the final route node based on the starting node identifier of the starting route node, the final node identifier of the final route node, and the node set where the starting route node is located, wherein the path information is used to indicate the number of route hops of the shortest route.
[0069] The planning module is used to plan a target route path based on the set of nodes where the starting route node is located and the set of nodes where the final route node is located, when the path information indicates that the shortest route path is a two-hop route path, wherein the target route path is a route path with at least two hops.
[0070] A routing module is used to route from the starting routing node to the final routing node according to the target routing path.
[0071] According to yet another embodiment of this application, a computer-readable storage medium is also provided, wherein a computer program is stored therein, and the computer program is configured to perform the steps in any of the above method embodiments when it is run.
[0072] According to yet another embodiment of this application, an electronic device is also provided, including a memory and a processor, wherein the memory stores a computer program and the processor is configured to run the computer program to perform the steps in any of the above method embodiments.
[0073] According to yet another embodiment of this application, a computer program product is also provided, including a computer program that, when executed by a processor, implements the steps in any of the above method embodiments.
[0074] Through this application and the above steps, for each target sub-network, its 8 target network nodes are divided into a first node set and a second node set. The 4 target network nodes in the first node set are connected in a ring. The 4 target network nodes in the second node set include the first network node, the second network node, the third network node, and the fourth network node. By connecting the first network node with the third network node and the fourth network node, and connecting the second network node with the third network node and the fourth network node, the network diameter between the 8 target network nodes in each target sub-network is shortened from the traditional 3 to 2 under this connection method, thereby reducing the network diameter of each target sub-network and thus reducing the network diameter of the entire interconnection network. When routing in each target sub-network, it takes at most two hops to route to other network nodes. For cases requiring two hops, the target routing path is planned based on the node set where the starting routing node is located and the node set where the final routing node is located. The planned target routing path is a routing path with at least two hops, thereby avoiding deadlock in the planned target routing path. Therefore, this solves the technical problem of potential deadlocks in the routing process in related technologies, and achieves the technical effect of avoiding deadlocks in the routing process. Attached Figure Description
[0075] Figure 1 This is a structural block diagram of the topology of a multidimensional hypercube interconnection network according to an embodiment of this application;
[0076] Figure 2 This is a structural framework of a topology of a three-dimensional hypercube interconnection network according to an embodiment of this application. Figure 1 ;
[0077] Figure 3 This is a structural framework of a topology of a three-dimensional hypercube interconnection network according to an embodiment of this application. Figure 2;
[0078] Figure 4 This is a flowchart of a routing method for a multidimensional hypercube interconnected network according to an embodiment of this application. Figure 1 ;
[0079] Figure 5 This is a schematic diagram of a routing process in a ring topology according to an embodiment of this application;
[0080] Figure 6 This is a flowchart of a routing method for a multidimensional hypercube interconnected network according to an embodiment of this application. Figure 2 ;
[0081] Figure 7 This is a schematic diagram of a routing process in a ring topology according to an embodiment of this application. Figure 1 ;
[0082] Figure 8 This is a schematic diagram of a routing process in a ring topology according to an embodiment of this application. Figure 2 ;
[0083] Figure 9 This is a schematic diagram of a routing process in a ring topology according to an embodiment of this application. Figure 3 ;
[0084] Figure 10 This is a flowchart of a routing method for a multidimensional hypercube interconnected network according to an embodiment of this application. Figure 3 ;
[0085] Figure 11 This is a schematic diagram of a path label for a transmission path according to an embodiment of this application;
[0086] Figure 12 This is a schematic diagram of a routing path according to an embodiment of this application. Figure 1 ;
[0087] Figure 13 This is a schematic diagram of a routing process in a ring topology according to an embodiment of this application. Figure 4 ;
[0088] Figure 14 This is a schematic diagram of a routing process in a ring topology according to an embodiment of this application. Figure 5 ;
[0089] Figure 15 This is a schematic diagram of a routing process in a ring topology according to an embodiment of this application. Figure 6 ;
[0090] Figure 16 This is a schematic diagram of a routing path according to an embodiment of this application. Figure 2 ;
[0091] Figure 17 This is a schematic diagram of a routing process in a ring topology according to an embodiment of this application. Figure 7 ;
[0092] Figure 18 This is a schematic diagram of a routing process in a ring topology according to an embodiment of this application. Figure 8 ;
[0093] Figure 19 This is a schematic diagram of a routing process in a ring topology according to an embodiment of this application. Figure 9 ;
[0094] Figure 20 This is a structural block diagram of the topology of a four-dimensional hypercube interconnection network according to an embodiment of this application;
[0095] Figure 21 This is a structural block diagram of an inner three-dimensional cube according to an embodiment of this application;
[0096] Figure 22 This is a structural block diagram of an outer three-dimensional cube according to an embodiment of this application;
[0097] Figure 23 This is a schematic diagram of a routing method for a four-dimensional hypercube interconnection network according to an embodiment of this application;
[0098] Figure 24 This is a structural block diagram of the topology of an interconnection network according to an embodiment of this application;
[0099] Figure 25 This is a schematic diagram of a routing method for an interconnected network according to an embodiment of this application. Figure 1 ;
[0100] Figure 26 This is a schematic diagram of the construction process of an interconnection network topology according to an embodiment of this application. Figure 1 ;
[0101] Figure 27 This is a schematic diagram of the construction process of an interconnection network topology according to an embodiment of this application. Figure 2 ;
[0102] Figure 28 This is a schematic diagram of a routing method for an interconnected network according to an embodiment of this application. Figure 2 ;
[0103] Figure 29 This is a structural block diagram of a routing device for a multidimensional hypercube interconnection network according to an embodiment of this application. Detailed Implementation
[0104] The embodiments of this application will be described in detail below with reference to the accompanying drawings and examples.
[0105] It should be noted that the terms "first," "second," etc., in the specification, claims, and drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence.
[0106] This embodiment provides a topology for a multidimensional hypercube interconnect network. Figure 1 This is a structural block diagram of the topology of a multidimensional hypercube interconnection network according to an embodiment of this application, such as... Figure 1 As shown, the multidimensional hypercube interconnect network includes 2 N There are 2 network nodes, where N is the dimension of the multidimensional hypercube interconnection network. The multidimensional hypercube interconnection network is divided into 2... N-3 There are 2 subnetworks, where N is a positive integer greater than 2; 2 N-3 Each subnetwork in the subnetwork, as the target subnetwork 10, includes 8 target network nodes (10-0 to 10-7). The 8 target network nodes included in the target subnetwork are divided into a first node set and a second node set. The first node set and the second node set each include 4 target network nodes. The 4 target network nodes in the first node set are connected one-to-one with the 4 target network nodes in the second node set. The 4 target network nodes (10-4 to 10-7) in the first node set are connected in a ring. The 4 target network nodes in the second node set include the first network node 10-0, the second network node 10-1, the third network node 10-2, and the fourth network node 10-3. The first network node 10-0 is connected to the third network node 10-2 and the fourth network node 10-3. The second network node 10-1 is connected to the third network node 10-2 and the fourth network node 10-3.
[0107] Through this topology, for each target subnetwork, its eight target network nodes are divided into a first node set and a second node set. The four target network nodes in the first node set are connected in a ring. The four target network nodes in the second node set include the first, second, third, and fourth network nodes. By connecting the first, third, and fourth network nodes, and the second, third, and fourth network nodes, the network diameter between the eight target network nodes in each target subnetwork is shortened from the traditional 3 to 2 under this connection method. This reduces the network diameter of each target subnetwork and, consequently, the network diameter of the entire interconnection network. Therefore, this solves the technical problem of high network communication latency in multidimensional hypercube interconnections, achieving the technical effect of reducing network communication latency in multidimensional hypercube interconnections.
[0108] The Internet has several key informational aspects: first, its topology; second, its routing algorithms and switching technologies; and third, its performance metrics. The topology refers to the connection structure between network nodes. In telecommunications networks, a node is a connection point, representing a redistribution point or a communication endpoint (some terminal equipment). Routing is the process of determining the network-wide path for packets traveling from source to destination. The Internet typically has four main performance metrics: 1) Node degree, which represents the number of channels connecting a node to its neighbors, or the number of router ports within a node. 2) Network diameter, which represents the maximum value of the shortest distance between two nodes in the network. A smaller network diameter results in lower network communication latency. 3) Number of links, which represents the total number of links in the network; since the topology is fixed, the number of links is also fixed. 4) Bipartite bandwidth, which is the bandwidth corresponding to the minimum cut set of a network divided into two equal subnets. Higher bipartite bandwidth indicates stronger network communication capabilities.
[0109] In this embodiment, network nodes may include, but are not limited to, terminal nodes. A terminal node is any system or set of units with communication needs. It can be a processor, a processor and memory, a graphics processing unit, a storage controller, an I / O interface, etc.
[0110] In this embodiment, the multidimensional hypercube interconnect network can be applied to any network transmission system, such as server switch chips, databases, distributed systems, etc.
[0111] In this embodiment, the topology of the aforementioned multidimensional hypercube interconnection network exhibits symmetry, regularity, path diversity, and scalability.
[0112] In an optional example, when N is greater than 3, the multidimensional hypercube interconnection network is divided into at least two subnetworks, which are connected sequentially. The eight target network nodes included in the target subnetwork are connected one-to-one with the eight reference network nodes included in the reference subnetwork. The reference subnetwork is the subnetwork that is adjacent to the target subnetwork in the connection of the at least two subnetworks.
[0113] For example: taking N as 5 as an example, Figure 1 As shown, the multidimensional hypercube interconnection network includes 32 network nodes. Taking the multidimensional hypercube interconnection network as an example, which is divided into 4 sub-networks, the network nodes located at the same position in adjacent sub-networks are interconnected.
[0114] The improved hypercube interconnection network described above has a shorter network diameter compared to traditional hypercube interconnection networks, which can effectively reduce network transmission latency. Furthermore, the routing algorithm logic applicable to this improved hypercube interconnection network under this topology is simpler and easier to implement in hardware.
[0115] In an optional example, network nodes can be identified in, but are not limited to, the following ways: 2 N Each network node's identifier is an N-bit binary number. The highest N-3 bits of the identifier of network nodes on the same subnetwork are the same. The lowest three bits of the identifier of the target network node are the same as those of the identifier of the directly connected reference network node. The identifier of the target network node and the identifier of the directly connected reference network node are different by exactly one bit.
[0116] Optionally, in this embodiment, in each sub-network, the third-to-last digit of the identifier of the network nodes in the first node set is the same, the third-to-last digit of the identifier of the network nodes in the second node set is the same, and the third-to-last digit of the identifier of the network nodes in the first node set is different from the third-to-last digit of the identifier of the network nodes in the second node set.
[0117] Optionally, in this embodiment, in each sub-network, the third-to-last bit of the identifier of the network node in the first node set is 1, and the third-to-last bit of the identifier of the network node in the second node set is 0.
[0118] By using the above method to identify network nodes, the node identifiers of network nodes in the same set of nodes have a certain pattern, which facilitates the implementation of routing algorithms.
[0119] When N is 3, the multidimensional hypercube interconnection network includes 8 network nodes, and the 8 network nodes form 1 subnetwork. Figure 2 This is a structural framework of a topology of a three-dimensional hypercube interconnection network according to an embodiment of this application. Figure 1 ,like Figure 2 As shown, a subnetwork as the target subnetwork includes 8 target network nodes (0 to 7). The 8 target network nodes included in the target subnetwork are divided into a first node set and a second node set. The first node set and the second node set each include 4 target network nodes. The 4 target network nodes in the first node set are connected one-to-one with the 4 target network nodes in the second node set. The 4 target network nodes (4 to 7) in the first node set are connected in a ring. The 4 target network nodes in the second node set include the first network node 0, the second network node 1, the third network node 2, and the fourth network node 3. The first network node 0 is connected to the third network node 2 and the fourth network node 3. The second network node 1 is connected to the third network node 2 and the fourth network node 3.
[0120] In an optional example, when N is 3, 2 N Each network node is identified by a three-bit binary number, and the highest bit of the identifier of network nodes in the same set of nodes is the same.
[0121] Optionally, in this embodiment, the highest bit of the identifier of the network node in the first node set is 1, and the highest bit of the identifier of the network node in the second node set is 0.
[0122] Optionally, in this embodiment, the results of bitwise XOR operations between the identifiers of network nodes in the first node set and 001, 010, and 100 are the identifiers of three directly connected network nodes; the results of bitwise XOR operations between the identifiers of network nodes in the second node set and 011, 010, and 100 are the identifiers of three directly connected network nodes.
[0123] Optionally, in this embodiment, the four target network nodes in the first node set include a fifth network node, a sixth network node, a seventh network node, and an eighth network node; the fifth network node is connected to the first network node, the sixth network node is connected to the second network node, the seventh network node is connected to the third network node, and the eighth network node is connected to the fourth network node; the fifth network node is connected to the sixth network node, the sixth network node is connected to the seventh network node, the seventh network node is connected to the eighth network node, and the eighth network node is connected to the fifth network node.
[0124] Figure 3 This is a structural framework of a topology of a three-dimensional hypercube interconnection network according to an embodiment of this application. Figure 2 ,like Figure 3 As shown, the four target network nodes (4 to 7) in the first node set are encoded as 100, 101, 110 and 111 respectively. Among the four target network nodes in the second node set, the first network node 0 is encoded as 000, the second network node 1 is encoded as 001, the third network node 2 is encoded as 010 and the fourth network node 3 is encoded as 011.
[0125] Optionally, in this embodiment, each target network node is configured to allow one-hop routing to three target network nodes connected in the target subnetwork; each target network node is configured to allow two-hop routing to four target network nodes not connected in the target subnetwork.
[0126] For the four routing nodes 100, 101, 110, and 111, the binary number of each routing node is XORed with 001, 010, and 100 bit by bit to obtain the routing nodes directly connected to it. For example, the binary number of routing node 101 is XORed with 001, 010, and 100 bit by bit to obtain 100, 111, and 001. These three nodes are exactly the four routing nodes directly connected to 101.
[0127] For the four routing nodes 000, 001, 010, and 011, the binary number of each routing node is XORed with 011, 010, and 100 bit by bit to obtain the routing nodes directly connected to it. For example, the binary number of routing node 010 is XORed with 011, 010, and 100 bit by bit to obtain 001, 000, and 110. These three nodes are exactly the four routing nodes directly connected to 010.
[0128] For the four routing nodes 100, 101, 110, and 111: the link relationships between each routing node and the other seven routing nodes are as follows: First, XORing with 001, 010, and 100 yields three routing nodes directly connected to it; three adjacent routing nodes can be reached directly through one hop. For example, routing node 100, XORing with 001, 010, and 100, yields routing nodes 101, 110, and 000, which are directly connected and can be routed directly. Furthermore, XORing with 101, 011, 110, and 111 yields four routing nodes, which can be reached through two hops; for example, routing node 100, XORing with 101, 011, 110, and 111, yields routing nodes 001, 111, 010, and 011, which can be reached through two hops.
[0129] For the four routing nodes 000, 001, 010, and 011: the link relationships between each routing node and the other seven routing nodes are as follows: First, XORing with 011, 010, and 100 yields three directly connected routing nodes. These three nodes can be reached directly with a single hop. For example, routing node 001, XORing with 011, 010, and 100, yields routing nodes 010, 011, and 101, which are directly connected and can be routed directly. Furthermore, XORing with 101, 001, 110, and 111 yields four routing nodes, which can be reached with two hops. For example, routing node 001, XORing with 101, 001, 110, and 111, yields routing nodes 100, 000, 111, and 110, which can also be reached with two hops.
[0130] In the improved 3D hypercube interconnection network described above, the network diameter between routing nodes is 2.
[0131] This embodiment also provides a routing method for a multidimensional hypercube interconnected network, applied to the aforementioned topology of the multidimensional hypercube interconnected network. This routing method is used to route from a starting routing node in a target subnetwork to a final routing node in the target subnetwork. Figure 4 This is a flowchart of a routing method for a multidimensional hypercube interconnected network according to an embodiment of this application. Figure 1 ,like Figure 4 As shown, the process includes the following steps:
[0132] Step S402: Obtain the starting node identifier of the starting routing node and the final node identifier of the final routing node;
[0133] Step S404: Based on the starting node identifier, the ending node identifier, and the set of nodes where the starting routing node is located, calculate the shortest route path from the starting routing node to the ending routing node to obtain the target route path;
[0134] Step S406: Route from the starting routing node to the final routing node according to the target routing path.
[0135] Through the above steps, for each target sub-network, its eight target network nodes are divided into a first node set and a second node set. The four target network nodes in the first node set are connected in a ring. The four target network nodes in the second node set include the first network node, the second network node, the third network node, and the fourth network node. By connecting the first network node with the third and fourth network nodes, and connecting the second network node with the third and fourth network nodes, the network diameter between the eight target network nodes in each target sub-network is shortened from the traditional 3 to 2 under this connection method. This reduces the network diameter of each target sub-network and, consequently, the network diameter of the entire interconnection network. Routing within each target sub-network requires at most two hops to reach other network nodes. Therefore, this method solves the technical problem of high network communication latency in multidimensional hypercube interconnection networks, achieving the technical effect of reducing network communication latency in multidimensional hypercube interconnection networks.
[0136] Optionally, in this embodiment, the routing method may be deployed on each network node, but is not limited to.
[0137] In an optional example, in step S404 above, the shortest route path from the starting route node to the final route node can be calculated based on the starting node identifier, the final node identifier, and the set of nodes where the starting route node is located, to obtain the target route path: the connection relationship between the starting route node and the final route node is determined based on the starting node identifier, the final node identifier, and the set of nodes where the starting route node is located; the shortest route path is calculated based on the connection relationship and the set of nodes where the starting route node is located as the target route path.
[0138] Optionally, in this embodiment, the connection relationship between the starting routing node and the final routing node can be determined first, and the shortest routing path can be planned as the target routing path based on the connection relationship and the set of nodes where the starting routing node is located.
[0139] In an optional example, the connection relationship between the starting node and the ending node can be determined in the following way, but is not limited to: performing a bitwise XOR operation on the starting node identifier and the ending node identifier, and the set of nodes where the starting routing node is located; and determining the connection relationship based on the result of the operation and the set of nodes where the starting routing node is located.
[0140] Optionally, in this embodiment, the connection relationship between the starting routing node and the final routing node may be determined, but is not limited to, based on the calculation result between node identifiers and the node set to which the starting routing node is located.
[0141] In an optional example, when N is 3, the highest bit of the identifier of the network node in the first node set is 0, and the highest bit of the identifier of the network node in the second node set is 1, the connection relationship can be determined based on the calculation result and the node set where the starting routing node is located in the following ways, but not limited to: If the starting routing node is in the first node set and the calculation result is one of 001, 010, or 100, the connection relationship is determined to be a direct connection between the starting routing node and the final routing node; if the starting routing node is in the second node set and the calculation result is one of 011, 010, or 100, the connection relationship is determined to be a direct connection between the starting routing node and the final routing node; if the starting routing node is in the first node set and the calculation result is a value other than 001, 010, or 100, the connection relationship is determined to be that the starting routing node and the final routing node are not directly connected; if the starting routing node is in the second node set and the calculation result is a value other than 011, 010, or 100, the connection relationship is determined to be that the starting routing node and the final routing node are not directly connected.
[0142] In an optional example, the shortest route path can be calculated as the target route path based on the connection relationship and the set of nodes where the starting route node is located, but not limited to the following methods: if the connection relationship is a direct connection between the starting route node and the final route node, the target route path is determined to be a direct route to the final route node; if the connection relationship is not a direct connection between the starting route node and the final route node, the next hop is determined based on the calculation result and the set of nodes where the starting route node is located; the final route node is determined as the last hop, wherein the target route path includes the next hop and the last hop.
[0143] Optionally, in this embodiment, if the starting routing node and the final routing node are directly connected, the target routing path has only one hop, meaning that the final routing node can be reached directly from the starting routing node. If the starting routing node and the final routing node are not directly connected, the target routing path includes two hops. The next hop can be determined first based on the calculation result and the set of nodes where the starting routing node is located, and the final routing node is used as the last hop to obtain the target routing path.
[0144] In an optional example, when N is 3, the highest bit of the identifier of the network node in the first node set is 0, and the highest bit of the identifier of the network node in the second node set is 1, the next hop can be determined based on the calculation result and the node set where the starting routing node is located in the following ways, but not limited to: If the starting routing node is in the first node set and the calculation result is 110 or 011, or if the starting routing node is in the second node set and the calculation result is 110, split the calculation result into two one-hot codes; randomly select a target one-hot code from the two one-hot codes; perform a bitwise XOR operation between the starting node identifier and the target one-hot code to obtain the identifier of the next hop; if the starting routing node is in the first node set and the calculation result is 101, split the calculation result into 001 and 100; perform a bitwise XOR operation between the starting node identifier and 001 to obtain the identifier of the next hop, wherein the result of the bitwise XOR operation between the identifier of the next hop and 100 is the final node identifier; if the starting routing node is in the second node set and the calculation result is 101, split the calculation result into 1... 00 and 001; Perform a bitwise XOR operation between the starting node identifier and 100 to obtain the next-hop identifier, where the result of the bitwise XOR operation between the next-hop identifier and 001 is the final node identifier; If the starting routing node is in the second node set and the operation result is 001, split the operation result into 010 and 011; Randomly select a target code from 010 and 011; Perform a bitwise XOR operation between the starting node identifier and the target code to obtain the next-hop identifier; If the starting routing node is in the first node set and the operation result is 11 In case 1, the result of the operation is split into 100 and 011; the starting node identifier is XORed with 100 to obtain the identifier of the next hop, where the result of the bitwise XOR operation of the next hop identifier with 011 is the final node identifier; if the starting routing node is in the second node set and the result of the operation is 111, the result of the operation is split into 011 and 100; the starting node identifier is XORed with 011 to obtain the identifier of the next hop, where the result of the bitwise XOR operation of the next hop identifier with 100 is the final node identifier.
[0145] Optionally, in this embodiment, one-hot encoding, also known as one-bit valid encoding, means that only one bit is 1, or only one bit is valid.
[0146] In an optional implementation, a routing algorithm is provided for the topology of the aforementioned three-dimensional hypercube interconnected network. First, the eight network nodes are grouped and labeled as follows: N1 = {100, 101, 110, 111} and N2 = {000, 001, 010, 011}. In this routing algorithm, for a routing request, the source routing node (i.e., the aforementioned starting routing node) is denoted as S, and the destination routing node (i.e., the aforementioned final routing node) is denoted as D. This routing algorithm may include, but is not limited to, the following steps:
[0147] Step 1: Perform a bitwise XOR operation between the source routing node S and the destination routing node D, and record the result as I (equivalent to the result of the above operation).
[0148] Step 2: Determine the value of the source routing node S. If it belongs to N1, proceed to step 3; if it belongs to N2, proceed to step 4.
[0149] Step 3: Determine the value of I: If the value of I is one of 001, 010, or 100, it means that the source routing node S and the destination routing node D are directly connected and can be directly routed.
[0150] If the value of I is either 110 or 011, I is split into two one-hot codes I = I1^I2. Then, the two one-hot codes are XORed with the routing node S in a random manner; the routing ends.
[0151] For example: S is routing node 100, D is routing node 111. After bit XORing, I = 011. I is split into two one-hot codes: I = I1^I2 = 001^010. Then, in ascending order, the two one-hot codes are XORed with routing node S respectively.
[0152]
[0153] If the value of I is 101, I is split into I = I1^I2 = 001^100. I1 and I2 are XORed with the routing node S in sequence; the routing ends.
[0154] For example: S is routing node 100, D is routing node 001. After bit XORing, I = 101. I is split into two one-hot codes: I = I1^I2 = 001^100. Then, in sequence, the two one-hot codes are XORed with routing node S respectively.
[0155]
[0156] If the value of I is 111, I is split into I = I1^I2 = 100^011. I1 and I2 are then XORed with the routing node S in sequence; the routing ends.
[0157] For example: S is routing node 100, D is routing node 011. After bit XORing, I = 111. I is split into two one-hot codes: I = I1^I2 = 001^100. Then, in sequence, the two one-hot codes are XORed with routing node S respectively.
[0158]
[0159] Step 4: Determine the value of I: If the value of I is one of 011, 010, or 100, it means that the source routing node S and the destination routing node D are directly connected and can be directly routed.
[0160] If the value of I is 110, I is split into two one-hot codes I = I1^I2 = 001^100. Then, the two one-hot codes are XORed with the routing node S in a random manner; the routing ends.
[0161] For example: S is routing node 001, D is routing node 111. After bit XORing, I = 110. I is split into two one-hot codes: I = I1^I2 = 001^100. Then, in a random manner, the two one-hot codes are XORed with routing node S respectively.
[0162]
[0163] If the value of I is 101, I is split into two one-hot codes I = I1^I2 = 100^001. Then, in sequence, the two one-hot codes are XORed with the routing node S respectively; the routing ends.
[0164] For example: S is routing node 001, D is routing node 101. After bit XORing, I = 101. I is split into two one-hot codes: I = I1^I2 = 100^001. Then, in sequence, the two one-hot codes are XORed with routing node S respectively.
[0165]
[0166] If the value of I is 001, I is split into two codes I = I1^I2 = 010^011. Then, the two one-hot codes are XORed with the routing node S in a random manner; the routing ends.
[0167] For example: S is routing node 001, D is routing node 000, after bit XORing, I = 001. I is then split into two one-hot codes: I = I1^I2 = 010^011. Then, in a random manner, the two one-hot codes are XORed with routing node S respectively.
[0168]
[0169] If the value of I is 111, I is split into two codes: I = I1^I2 = 011^100. Then, in sequence, the two one-hot codes are XORed with the routing node S respectively; the routing ends.
[0170] For example: S is routing node 001, D is routing node 110, after bit XORing, I = 111. I is split into two one-hot codes I = I1^I2 = 011^100. Then, in sequence, the two one-hot codes are XORed with routing node S respectively.
[0171]
[0172] In a ring topology, deadlock may occur during routing. For example: Figure 5 This is a schematic diagram of a routing process in a ring topology according to an embodiment of this application, as shown below. Figure 5 As shown, suppose there are four routing requests simultaneously, requests 1 to 4. Request 1: from network node 2 to network node 7; Request 2: from network node 3 to network node 6; Request 3: from network node 7 to network node 2; Request 4: from network node 6 to network node 3. All four routing requests need to pass through a network node. If all four requests randomly choose a clockwise route and have already occupied an intermediate network node, a clockwise deadlock occurs. Conversely, if all four requests randomly choose a counter-clockwise route and have already occupied an intermediate network node, a counter-clockwise deadlock occurs.
[0173] To avoid the aforementioned deadlock phenomenon, this embodiment also provides a routing method for a multidimensional hypercube interconnected network. The topology of the multidimensional hypercube interconnected network can be any of the topologies described above. This routing method is used to route from a starting routing node in a target subnetwork to a final routing node in the target subnetwork. Figure 6 This is a flowchart of a routing method for a multidimensional hypercube interconnected network according to an embodiment of this application. Figure 2 ,like Figure 6 As shown, the process includes the following steps:
[0174] Step S602: Based on the starting node identifier of the starting routing node, the final node identifier of the final routing node, and the node set where the starting routing node is located, detect the path information of the shortest route from the starting routing node to the final routing node, wherein the path information is used to indicate the number of routing hops of the shortest route.
[0175] Step S604: When the path information indicates that the shortest route path is a two-hop route path, the target route path is planned based on the set of nodes where the starting route node is located and the set of nodes where the final route node is located, wherein the target route path is a route path with at least two hops.
[0176] Step S606: Route from the starting routing node to the final routing node according to the target routing path.
[0177] Through the above steps, for each target sub-network, its eight target network nodes are divided into a first node set and a second node set. The four target network nodes in the first node set are connected in a ring. The four target network nodes in the second node set include the first, second, third, and fourth network nodes. By connecting the first, third, and fourth network nodes, and the second, third, and fourth network nodes, the network diameter among the eight target network nodes in each target sub-network is shortened from the traditional 3 to 2 under this connection method. This reduces the network diameter of each target sub-network and, consequently, the network diameter of the entire interconnected network. When routing within each target sub-network, routing to other network nodes requires at most two hops. For cases requiring two hops, the target routing path is planned based on the node sets of the starting and ending routing nodes. The planned target routing path is a routing path with at least two hops, thus avoiding deadlock. Therefore, this solves the technical problem of potential deadlock in the routing process in related technologies, achieving the technical effect of avoiding deadlock in the routing process.
[0178] In an optional example, in step S604 above, the target routing path can be planned based on the set of nodes where the starting routing node is located and the set of nodes where the final routing node is located in the following ways: determine the target set relationship between the starting routing node and the final routing node based on the set of nodes where the starting routing node is located and the set of nodes where the final routing node is located; find the target routing rule corresponding to the target set relationship from the set relationships and routing rules with corresponding relationships; and plan the target routing path according to the target routing rule.
[0179] Optionally, in this embodiment, the set of nodes containing the starting routing node and the set of nodes containing the final routing node have different set relationships. For example, they may both be in the first node set, both in the second node set, or in different node sets, etc. Different set relationships allow for different routing rules, thereby avoiding deadlock during the routing process.
[0180] In an optional example, the target set relationship between the starting and ending routing nodes can be determined based on the set of nodes where the starting routing node resides and the set of nodes where the ending routing node resides, in the following ways: If both the set of nodes where the starting routing node resides and the set of nodes where the ending routing node resides are first nodes, the target set relationship is determined to be a first set relationship, where the first set relationship indicates that all routing nodes are located in the first node set; if both the set of nodes where the starting routing node resides and the set of nodes where the ending routing node resides are second nodes, the target set relationship is determined to be a second set relationship, where the second set relationship indicates that all routing nodes are located in the second node set; if both the set of nodes where the starting routing node resides and the set of nodes where the ending routing node resides are second nodes, or if both the set of nodes where the starting routing node resides and the set of nodes where the ending routing node resides are first nodes, the target set relationship is determined to be a third set relationship, where the third set relationship indicates that the routing nodes are located in different node sets.
[0181] In an optional example, the target routing rule corresponding to the target set relationship can be found from the set relationships and routing rules with corresponding relationships in the following ways: if the target set relationship is a first set relationship, the target routing rule is determined to be the first routing rule, wherein the first routing rule is used to instruct the planning of a routing path within the first node set according to the routing direction corresponding to the current starting routing node; if the target set relationship is a second set relationship, the target routing rule is determined to be the second routing rule, wherein the second routing rule is used to instruct the planning of a routing path within the second node set according to the routing direction corresponding to the current starting routing node; if the target set relationship is a third set relationship, the target routing rule is determined to be the third routing rule, wherein the third routing rule is used to instruct the first hop route to the reference routing node directly connected to the starting routing node in the node set where the final routing node is located, and then use the reference routing node as the current starting routing node to plan the routing path according to the first routing rule or the second routing rule.
[0182] Optionally, in this embodiment, a route request with two hops on the shortest path does not necessarily follow the shortest path. This routing rule may, but is not limited to, be called Rule 1.
[0183] In an optional example, the target routing path can be planned according to the target routing rule in the following way, but not limited to: if the target routing rule is the first routing rule, determine the target routing direction based on the starting node identifier; obtain the next-hop routing node from the first node set according to the target routing direction, and determine the final routing node as the last hop routing node to obtain the target routing path.
[0184] Optionally, in this embodiment, when N is 3, 2 N The identifier of each network node is a three-bit binary number. When the highest bit of the identifier of the network nodes in the first node set is 0 and the highest bit of the identifier of the network nodes in the second node set is 1, the target routing direction can be determined based on the starting node identifier in the following ways, but not limited to: when the starting node identifier is 100 or 111, the target routing direction is determined to be the first routing direction; when the starting node identifier is 101 or 110, the target routing direction is determined to be the second routing direction, wherein the second routing direction is opposite to the first routing direction.
[0185] Optionally, in this embodiment, assuming the source routing node of the routing request is S (i.e., the aforementioned starting routing node) and the destination routing node is D (i.e., the aforementioned final routing node), if both S and D belong to the outer network nodes (i.e., the aforementioned first node set) and require two hops to complete the routing request, then the XOR operation result I of the identifier is 011. If S is 100 or 111, then the routing is performed counterclockwise, meaning the aforementioned first routing direction can be, but is not limited to, counterclockwise. If S is 101 or 110, then the routing is performed clockwise, meaning the aforementioned second routing direction can be, but is not limited to, clockwise.
[0186] The routing rule described above can be, but is not limited to, rule 2. Rule 2 guarantees that two-hop routing requests between outer network nodes will not result in deadlock. For example, suppose there are four routing requests simultaneously: Request 1: from routing node 100 to routing node 111; Request 2: from routing node 110 to routing node 101; Request 3: from routing node 111 to routing node 100; Request 4: from routing node 101 to routing node 110. Figure 7 This is a schematic diagram of a routing process in a ring topology according to an embodiment of this application. Figure 1 ,like Figure 7 As shown, when using rule 2 for routing, no deadlock occurred even though all four routing requests needed to pass through a routing node and all of them had already occupied an intermediate routing node.
[0187] Optionally, in this embodiment, the first routing direction may also be, but is not limited to, a clockwise direction, and in this case, the second routing direction may be, but is not limited to, a counterclockwise direction.
[0188] In an optional example, the target routing path can be planned according to the target routing rule in the following way, but not limited to: if the target routing rule is the second routing rule, obtain the next hop routing node from the second node set based on the starting routing node; determine the final routing node as the last hop routing node to obtain the target routing path.
[0189] Optionally, in this embodiment, the next-hop routing node can be obtained from the second node set based on the starting routing node in the following ways, but not limited to: if the starting routing node is the first network node, the third network node is determined as the next-hop routing node; if the starting routing node is the second network node, the fourth network node is determined as the next-hop routing node; if the starting routing node is the third network node, the first network node is determined as the next-hop routing node; and if the starting routing node is the fourth network node, the second network node is determined as the next-hop routing node.
[0190] Optionally, in this embodiment, if S and D are both four network nodes belonging to the inner layer (i.e., the second node set mentioned above) and require two hops to complete the routing request, then I is 001, and the first hop is a diagonal route.
[0191] The routing rule described above can be, but is not limited to, rule 3. Rule 3 guarantees that two-hop routing requests between inner network nodes will not result in deadlock. For example, suppose there are four simultaneous routing requests: Request 1: from routing node 000 to routing node 001; Request 2: from routing node 011 to routing node 010; Request 3: from routing node 010 to routing node 011; Request 4: from routing node 001 to routing node 000. Figure 8 This is a schematic diagram of a routing process in a ring topology according to an embodiment of this application. Figure 2 ,like Figure 8 As shown, when using rule 3 for routing, no deadlock occurred even though all four routing requests needed to pass through a routing node and all of them had already occupied an intermediate routing node.
[0192] In an optional example, the target routing path can be planned according to the target routing rule in the following ways, but not limited to: if the target routing rule is a third routing rule, determine the reference routing node as the first hop routing node; determine the reference routing direction in the node set where the reference routing node is located based on the reference routing node; plan the reference routing path from the reference routing node to the final routing node in the node set where the reference routing node is located according to the reference routing direction, and obtain the target routing path.
[0193] Optionally, in this embodiment, when the reference routing node is located in the first node set, the reference routing direction in the node set where the reference routing node is located can be determined in the following ways, but not limited to: when the reference node identifier is 100 or 111, the reference routing direction is determined to be the third routing direction; when the reference node identifier is 101 or 110, the reference routing direction is determined to be the fourth routing direction, wherein the fourth routing direction is opposite to the third routing direction; wherein N is 3, 2 N Each network node is identified by a three-bit binary number. The highest bit of the identifier of each network node in the first node set is 0, and the highest bit of the identifier of each network node in the second node set is 1.
[0194] Optionally, in this embodiment, when the reference routing node is located in the second node set, the reference routing direction in the node set where the reference routing node is located can be determined according to the following methods, but not limited to: when the reference routing node is the first network node, the direction where the third network node is located is determined as the reference routing direction; when the reference routing node is the second network node, the direction where the fourth network node is located is determined as the reference routing direction; when the reference routing node is the third network node, the direction where the first network node is located is determined as the reference routing direction; and when the reference routing node is the fourth network node, the direction where the second network node is located is determined as the reference routing direction.
[0195] Optionally, in this embodiment, the target routing path can be obtained by planning a reference routing path from the reference routing node to the final routing node in the node set where the reference routing node is located according to the reference routing direction in the following ways: determining the routing node directly connected to the reference routing node in the reference routing direction as the second-hop routing node; if the second-hop routing node is the final routing node, determining the routing path of the starting routing node, the reference routing path, and the final routing node connected in sequence as the target routing path; if the second-hop routing node is not the final routing node, determining the routing path of the starting routing node, the reference routing path, the second-hop routing node, and the final routing node connected in sequence as the target routing path.
[0196] Optionally, in this embodiment, if S and D belong to the outer layer node and the other belongs to the outer layer node, the first hop is routed to the layer where D is located, then S is updated (i.e., the reference routing node is found), and then routing is performed according to rule 2 or 3.
[0197] The routing rule described above can be, but is not limited to, rule 4. Rule 4 guarantees that routing requests between outer and inner nodes will not result in deadlock. For example, consider a ring topology consisting of routing nodes 110, 010, 000, and 100: Assume there are four simultaneous routing requests: Request 1: from routing node 110 to routing node 000; Request 2: from routing node 010 to routing node 100; Request 3: from routing node 000 to routing node 110; Request 4: from routing node 100 to routing node 010. Figure 9 This is a schematic diagram of a routing process in a ring topology according to an embodiment of this application. Figure 3 ,like Figure 9 As shown, when using rule 4 for routing, no deadlock occurred even though all four routing requests needed to pass through a routing node and all intermediate routing nodes were already in use. The same applies to the ring topology formed by the routing nodes 011, 111, 101, and 001, so it will not be elaborated further here.
[0198] In an optional example, the path information of the shortest route from the starting route node to the final route node can be detected in the following manner, but not limited to: determining the connection relationship between the starting route node and the final route node based on the starting node identifier of the starting route node, the final node identifier of the final route node, and the set of nodes in which the starting route node is located; and determining the path information based on the connection relationship.
[0199] Optionally, in this embodiment, the connection relationship between the starting routing node and the final routing node can be determined in the following way, but not limited to: performing a bitwise XOR operation on the starting node identifier and the final node identifier to obtain the operation result; and determining the connection relationship based on the operation result and the node set where the starting routing node is located.
[0200] Optionally, in this embodiment, when N is 3, the highest bit of the identifier of the network node in the first node set is 0, and the highest bit of the identifier of the network node in the second node set is 1, the connection relationship can be determined based on the calculation result and the node set where the starting routing node is located in the following ways, but not limited to: if the starting routing node is in the first node set and the calculation result is one of 001, 010, or 100, the connection relationship is determined to be a direct connection between the starting routing node and the final routing node; if the starting routing node is in the second node set and the calculation result is one of 011, 010, or 100, the connection relationship is determined to be a direct connection between the starting routing node and the final routing node; if the starting routing node is in the first node set and the calculation result is a value other than 001, 010, or 100, the connection relationship is determined to be that the starting routing node and the final routing node are not directly connected; if the starting routing node is in the second node set and the calculation result is a value other than 011, 010, or 100, the connection relationship is determined to be that the starting routing node and the final routing node are not directly connected.
[0201] Optionally, in this embodiment, path information can be determined based on the connection relationship in the following ways, but not limited to: when the connection relationship is a direct connection between the starting routing node and the ending routing node, the path information is determined to indicate a routing path with a shortest path of one hop; when the connection relationship is that there is no direct connection between the starting routing node and the ending routing node, the path information is determined to indicate a routing path with a shortest path of two hops.
[0202] In an optional implementation, a routing algorithm is provided for a topology of a three-dimensional hypercube interconnected network. In this routing algorithm, the network nodes in the three-dimensional hypercube interconnected network are divided into N1 = {100, 101, 110, 111} and N2 = {000, 001, 010, 011}. For a routing request, the source routing node (i.e., the aforementioned starting routing node) is denoted as S, and the destination routing node (i.e., the aforementioned final routing node) is denoted as D. The routing algorithm may include, but is not limited to, the following steps:
[0203] Step 1: Perform a bitwise XOR operation between the source routing node S and the destination routing node D, and denote the result as I.
[0204] Step 2: Determine the value of the source routing node S. If it belongs to N1, proceed to step 3; if it belongs to N2, proceed to step 4.
[0205] Step 3: Determine the value of I: If the value of I is one of 001, 010, or 100, it means that the source routing node S and the destination routing node D are directly connected and can be directly routed.
[0206] If the value of I is 011, routing is performed according to rule 2. For example: S is routing node 100, D is routing node 111, after bit XORing, I = 011. I is then split into two one-hot codes: I = I1^I2 = 001^100. Then, in a counter-clockwise manner, the two one-hot codes are XORed with routing node S respectively.
[0207]
[0208] If the value of I is 101, routing is performed according to rule 4. For example: S is routing node 100, D is routing node 001, after bit XORing, I = 101. First, routing is performed to the inner layer where D is located, and then S is updated:
[0209]
[0210] S new =000.
[0211] Then S is updated to route node 000, and D is route node 001. At this point, both S and D belong to the inner layer. After bit XORing, I = 001. I is then split into two one-hot codes: I = I1^I2 = 010^011. Then, following rule 3, the two one-hot codes are XORed with route node S respectively.
[0212]
[0213] If the value of I is 110, routing is performed according to rule 4. For example: S is routing node 100, D is routing node 010, after bit XORing, I = 110. First, routing is performed to the inner layer where D is located, and then S is updated:
[0214]
[0215] S new =000.
[0216] Then S is updated to route node 000, and D is route node 010. At this point, both S and D belong to the inner layer. After bit XORing, I = 010, and the source route node S and the destination route node D are directly connected and can be routed directly.
[0217] If the value of I is 111, routing is performed according to rule 4. For example: S is routing node 100, D is routing node 011, after bit XORing, I = 111. First, routing is performed to the inner layer where D is located, and then S is updated:
[0218]
[0219] S new =000.
[0220] Then S is updated to route node 000, and D is route node 011. At this point, both S and D belong to the inner layer. After bit XORing, I = 011, and the source route node S and the destination route node D are directly connected and can be routed directly.
[0221] Step 4: Determine the value of I: If the value of I is one of 011, 010, or 100, it means that the source routing node S and the destination routing node D are directly connected and can be directly routed.
[0222] If the value of I is 110, routing is performed according to rule 4. For example: S is routing node 000, D is routing node 110, after bit XORing, I = 110. First, routing is performed to the inner layer where D is located, and then S is updated:
[0223]
[0224] S new =100.
[0225] Then S is updated to route node 100, and D to route node 110. At this point, both S and D belong to the outer layer. After bit XORing, I = 010, and the source route node S and the destination route node D are directly connected and can be routed directly.
[0226] If the value of I is 101, routing is performed according to rule 4. For example: S is routing node 000, D is routing node 101, after bit XORing, I = 101. First, routing is performed to the inner layer where D is located, and then S is updated:
[0227]
[0228] S new =100.
[0229] Then S is updated to route node 100, and D is updated to route node 101. At this point, both S and D belong to the outer layer. After bit XORing, I = 001, and the source route node S and the destination route node D are directly connected and can be routed directly.
[0230] If the value of I is 001, routing is performed according to rule 3. For example: S is routing node 000, D is routing node 001, after bit XORing, I = 001. I is then split into two one-hot codes: I = I1^I2 = 010^011. Then, following rule 3, the two one-hot codes are XORed with routing node S respectively.
[0231]
[0232] If the value of I is 111, routing is performed according to rule 4. For example: S is routing node 000, D is routing node 111, after bit XORing, I = 111. First, routing is performed to the inner layer where D is located, and then S is updated:
[0233]
[0234] S new =100.
[0235] Then S is updated to route node 100, and D is updated to route node 111. At this point, both S and D belong to the outer layer. After bit XORing, I = 011. I is then split into two one-hot codes: I = I1^I2 = 001^010. Following rule 2, the two one-hot codes are XORed with route node S respectively.
[0236]
[0237] In interconnected networks with ring topologies, deadlock may occur in certain extreme scenarios. Once deadlock occurs, the on-chip network will be paralyzed. Therefore, deadlock must be addressed for on-chip networks. The routing method described above improves upon traditional routing algorithms, proposing a deadlock-avoiding routing algorithm suitable for the aforementioned multidimensional hypercube interconnected network. The routing algorithm is simple and easy to implement in hardware.
[0238] To avoid the aforementioned deadlock phenomenon, this embodiment also provides another routing method for a multidimensional hypercube interconnected network. The topology of this multidimensional hypercube interconnected network is any of the topologies described above. P transmission paths are deployed between the target network node and directly connected network nodes, where P is an integer greater than 1. This routing method is used to route from the starting routing node in the target subnetwork to the final routing node in the target subnetwork. Figure 10 This is a flowchart of a routing method for a multidimensional hypercube interconnected network according to an embodiment of this application. Figure 3 ,like Figure 10 As shown, the process includes the following steps:
[0239] Step S1002: Based on the starting node identifier of the starting routing node, the final node identifier of the final routing node, and the node set where the starting routing node is located, calculate the shortest route path from the starting routing node to the final routing node to obtain the initial route path.
[0240] Step S1004: Based on the path characteristics of the initial routing path, determine the target sending path for each hop in the initial routing path from the P sending paths to obtain the target routing path;
[0241] Step S1006: Route from the starting routing node to the final routing node according to the target routing path.
[0242] Through the above steps, for each target sub-network, its eight target network nodes are divided into a first node set and a second node set. The four target network nodes in the first node set are connected in a ring. The four target network nodes in the second node set include the first, second, third, and fourth network nodes. By connecting the first, third, and fourth network nodes, and the second, third, and fourth network nodes, the network diameter among the eight target network nodes in each target sub-network is shortened from the traditional 3 to 2 under this connection method. This reduces the network diameter of each target sub-network and, consequently, the network diameter of the entire interconnected network. During the routing process, an initial routing path is first planned according to the shortest path. Then, based on the path characteristics of this initial routing path, the sending path for each hop is planned to obtain the target routing path, thus preventing deadlock in the planned target routing path. Therefore, this solves the technical problem of potential deadlock in the routing process in related technologies, achieving the technical effect of avoiding deadlock in the routing process.
[0243] In an optional example, in step S1004 above, the target sending path for each hop in the initial routing path can be determined from the P sending paths based on the path characteristics of the initial routing path, and the target routing path can be obtained by: detecting the path hop count and path quantity of the initial routing path as path characteristics, wherein the initial routing path includes all the shortest routing paths that allow routing from the starting routing node to the final routing node; and determining the target sending path for each hop in the initial routing path based on the path hop count and path quantity, and thus obtaining the target routing path.
[0244] Optionally, in this embodiment, all routing paths follow the shortest path routing, and this routing rule may, but is not limited to, be called rule 11.
[0245] In an optional example, the target sending path for each hop in the initial routing path can be determined from the P sending paths based on the path hop count and the number of paths, to obtain the target routing path: a candidate routing path is selected from the initial routing path based on the path hop count and the number of paths; the target sending path for each hop in the candidate routing path is determined from the P sending paths based on the number of paths, to obtain the target routing path.
[0246] Optionally, in this embodiment, a candidate route path can be selected from the initial route path based on the path hop count and the number of paths in the following ways: when the path hop count is 1, route directly from the starting route node to the final route node according to the initial route path; when the path hop count is greater than 1, select a candidate route path from the initial route path based on the number of paths.
[0247] Optionally, in this embodiment, a candidate route path can be selected from the initial route path based on the number of paths in the following ways, but not limited to: when the number of paths is 1, the initial route path is determined as a candidate route path; when the number of paths is greater than 1, a route path is randomly selected from the initial route path as a candidate route path.
[0248] Optionally, in this embodiment, the target sending path for each hop in the candidate routing path can be determined from the P sending paths according to the number of paths in the following manner, but not limited to: when the number of paths is 1, the target sending path is randomly determined for each hop in the candidate routing path from the P sending paths to obtain the target routing path; when the number of paths is 2, the target sending path is randomly determined for the next hop in the candidate routing path from the first path set, and the target sending path is randomly determined for the last hop in the candidate routing path from the second path set to obtain the target routing path; wherein, the P sending paths are divided into the first path set and the aforementioned second path set, the first path set includes at least one sending path from the P sending paths, and the second path set includes at least one sending path from the P sending paths.
[0249] Optionally, in this embodiment, the target sending path for each hop in the candidate routing path can be determined from the P sending paths according to the number of paths in the following manner, but not limited to: when the number of paths is 1, the target sending path is randomly determined for each hop in the candidate routing path from the P sending paths to obtain the target routing path; when the number of paths is 2, the next hop in the candidate routing path is randomly determined from the sending paths marked with a first label from the P sending paths, and the last hop in the candidate routing path is randomly determined from the sending paths marked with a second label from the P sending paths to obtain the target routing path; wherein at least one sending path in the P sending paths is marked with a first label, and at least one sending path in the P sending paths is marked with a second label.
[0250] Assume the source routing node of the routing request is S (i.e. the starting routing node mentioned above), the destination routing node is D (i.e. the final routing node mentioned above), the first label is "+", and the second label is "-". Figure 11This is a schematic diagram of a path label for a transmission path according to an embodiment of this application, such as... Figure 11 As shown, taking the example of each network node having two transmission paths, one transmission path is marked with the label "+", and the other transmission path is marked with the label "-".
[0251] If a route from S to D requires two hops and multiple shortest paths exist, then the first hop can only use the "+" option, and the second hop can only use the "-" option. For example, Figure 12 This is a schematic diagram of a routing path according to an embodiment of this application. Figure 1 ,like Figure 12 As shown, S is 110 and D is 101. The route from S to D requires two hops and there are multiple routing paths. Therefore, the first hop can only be "+" and the second hop can only be "-".
[0252] The above routing rule can be called Rule 12. Rule 12 guarantees that two-hop routing requests between outer nodes will not result in deadlock. For example, suppose there are four routing requests simultaneously: Request 1: from routing node 100 to routing node 111; Request 2: from routing node 110 to routing node 101; Request 3: from routing node 111 to routing node 100; Request 4: from routing node 101 to routing node 110. Figure 13 This is a schematic diagram of a routing process in a ring topology according to an embodiment of this application. Figure 4 , Figure 14 This is a schematic diagram of a routing process in a ring topology according to an embodiment of this application. Figure 5 ,like Figure 13 and Figure 14 As shown, when using rule 12 for routing, no deadlock occurred even though all four routing requests needed to pass through a routing node and all of them had already occupied an intermediate routing node.
[0253] Rule 12 guarantees that two-hop routing requests between inner nodes will not result in deadlock. For example, suppose there are four simultaneous routing requests: Request 1: from route node 000 to route node 001; Request 2: from route node 011 to route node 010; Request 3: from route node 010 to route node 011; Request 4: from route node 001 to route node 000. Figure 15 This is a schematic diagram of a routing process in a ring topology according to an embodiment of this application. Figure 6 ,like Figure 15 As shown, when using rule 12 for routing, no deadlock occurred even though all four routing requests needed to pass through a routing node and all of them had already occupied an intermediate routing node.
[0254] If the route from S to D requires two hops and there is only one shortest path, then the "+" and "-" paths between the two hops can be arbitrary. For example, Figure 16This is a schematic diagram of a routing path according to an embodiment of this application. Figure 2 ,like Figure 16 As shown, S is 010 and D is 101. It takes two hops to get from S to D and there is only one shortest path. Therefore, the "+" and "-" paths of the two hops can be taken arbitrarily.
[0255] The above routing rule can be called Rule 13. Rules 12 and 13 guarantee that routing requests between outer and inner nodes will not result in deadlock. For example, in example 5, consider a ring topology consisting of routing nodes 110, 010, 000, and 100: Assume there are four simultaneous routing requests: Request 1: from routing node 110 to routing node 000; Request 2: from routing node 010 to routing node 100; Request 3: from routing node 000 to routing node 110; Request 4: from routing node 100 to routing node 010. Figure 17 This is a schematic diagram of a routing process in a ring topology according to an embodiment of this application. Figure 7 ,like Figure 17 As shown, when using rules 12 and 13 for routing, and all four routing requests need to pass through a routing node and have already occupied an intermediate routing node, no deadlock occurs.
[0256] For a ring topology consisting of routing nodes 100, 000, 011, 001, and 101: Assume there are five simultaneous routing requests: Request 1: from routing node 100 to routing node 011; Request 2: from routing node 000 to routing node 001; Request 3: from routing node 011 to routing node 101; Request 4: from routing node 001 to routing node 100; Request 5: from routing node 101 to routing node 000. Figure 18 This is a schematic diagram of a routing process in a ring topology according to an embodiment of this application. Figure 8 ,like Figure 18 As shown, when using rules 12 and 13 for routing, and all four routing requests need to pass through a routing node and all of them have already occupied an intermediate routing node, no deadlock occurs.
[0257] For a ring topology consisting of routing nodes 100, 000, 011, 111, and 101: Assume there are five simultaneous routing requests: Request 1: from routing node 100 to routing node 011; Request 2: from routing node 000 to routing node 111; Request 3: from routing node 011 to routing node 101; Request 4: from routing node 111 to routing node 100; Request 5: from routing node 101 to routing node 000. Figure 19 This is a schematic diagram of a routing process in a ring topology according to an embodiment of this application. Figure 9 ,like Figure 19As shown, when using rules 12 and 13 for routing, and all four routing requests need to pass through a routing node and all of them have already occupied an intermediate routing node, no deadlock occurs.
[0258] In an optional example, in step S1002 above, the shortest route path from the starting route node to the final route node can be calculated in the following ways, but not limited to: based on the starting node identifier of the starting route node, the final node identifier of the final route node, and the set of nodes where the starting route node is located, to obtain the initial route path: based on the starting node identifier, the final node identifier, and the set of nodes where the starting route node is located, the connection relationship between the starting route node and the final route node is determined; based on the connection relationship and the set of nodes where the starting route node is located, the shortest route path is calculated as the initial route path.
[0259] Optionally, in this embodiment, the connection relationship between the starting routing node and the final routing node can be determined in the following way, but not limited to: performing a bitwise XOR operation on the starting node identifier and the final node identifier to obtain the operation result; and determining the connection relationship based on the operation result and the node set where the starting routing node is located.
[0260] Optionally, in this embodiment, when N is 3, the highest bit of the identifier of the network node in the first node set is 0, and the highest bit of the identifier of the network node in the second node set is 1, the connection relationship can be determined based on the calculation result and the node set where the starting routing node is located in the following ways, but not limited to: if the starting routing node is in the first node set and the calculation result is one of 001, 010, or 100, the connection relationship is determined to be a direct connection between the starting routing node and the final routing node; if the starting routing node is in the second node set and the calculation result is one of 011, 010, or 100, the connection relationship is determined to be a direct connection between the starting routing node and the final routing node; if the starting routing node is in the first node set and the calculation result is a value other than 001, 010, or 100, the connection relationship is determined to be that the starting routing node and the final routing node are not directly connected; if the starting routing node is in the second node set and the calculation result is a value other than 011, 010, or 100, the connection relationship is determined to be that the starting routing node and the final routing node are not directly connected.
[0261] Optionally, in this embodiment, the shortest route path can be calculated as the initial route path based on the connection relationship and the set of nodes where the starting route node is located, but not limited to the following methods: when the connection relationship is a direct connection between the starting route node and the final route node, the initial route path is determined to be a direct route to the final route node, wherein the initial route path includes a shortest route path; when the connection relationship is that there is no direct connection between the starting route node and the final route node, the next hop is determined based on the calculation result and the set of nodes where the starting route node is located; the final route node is determined as the last hop, wherein the initial route path includes the next hop and the last hop, and the initial route path includes at least one shortest route path.
[0262] Optionally, in this embodiment, when N is 3, the highest bit of the identifier of the network node in the first node set is 0, and the highest bit of the identifier of the network node in the second node set is 1, the next hop can be determined based on the calculation result and the node set where the starting routing node is located in the following ways, but not limited to: if the starting routing node is in the first node set and the calculation result is 110 or 011, or if the starting routing node is in the second node set and the calculation result is 110, the calculation result is split into two one-hot codes; the two one-hot codes are used as the target one-hot code and the starting node identifier, respectively. Perform a bitwise XOR operation to obtain two next-hop identifiers. The initial routing path includes two shortest routing paths. If the starting node is in the first node set and the result is 101, split the result into 001 and 100. Perform a bitwise XOR operation between the starting node identifier and 001 to obtain the next-hop identifier. The next-hop identifier and 100 represent the final node identifier. The initial routing path includes one shortest routing path. If the starting node is in the second node set and the result is 101, split the result into 100 and 001. The starting node identifier is XORed with 100 to obtain the next-hop identifier. The next-hop identifier and 001 together form the final node identifier. The initial routing path includes one shortest routing path. If the starting node is in the second node set and the result is 001, the result is split into 010 and 011. 010 and 011 are then XORed with the starting node identifier as target codes to obtain two next-hop identifiers. The initial routing path includes two shortest routing paths. If the starting node is in the first node set and the result is 111... In the case where the starting node identifier is in the second node set and the result is 111, the result is split into 011 and 100; the starting node identifier is XORed with 100 to obtain the next hop identifier, where the next hop identifier and 011 are the final node identifier, and the initial routing path includes a shortest routing path;
[0263] In an optional example, when N is 3, the highest bit of the identifier of the network node in the first node set is 0, and the highest bit of the identifier of the network node in the second node set is 1, the connection between the network nodes in the first node set can be established in the following ways, but not limited to: performing a bitwise XOR operation between the identifier of the network node in the first node set and 001, 010, and 100 respectively to obtain the first identifier of the three directly connected network nodes; establishing the connection between the network node in the first node set and the network node with the first identifier, and establishing P transmission paths in each connection.
[0264] In an optional example, when N is 3, the highest bit of the identifier of the network node in the first node set is 0, and the highest bit of the identifier of the network node in the second node set is 1, the connection between the network nodes in the second node set can be established in the following ways, but not limited to: performing a bitwise XOR operation between the identifier of the network node in the second node set and 011, 010, and 100 respectively to obtain the second identifier of the three directly connected network nodes; establishing the connection between the network node in the second node set and the network node with the second identifier, and establishing P transmission paths in each connection.
[0265] Optionally, in this embodiment, the four target network nodes in the first node set include a fifth network node, a sixth network node, a seventh network node, and an eighth network node. A connection is established between the fifth network node and the first network node, between the sixth network node and the second network node, between the seventh network node and the third network node, and between the eighth network node and the fourth network node; a connection is also established between the fifth network node and the sixth network node, between the sixth network node and the seventh network node, between the seventh network node and the eighth network node, and between the eighth network node and the fifth network node.
[0266] In an optional example, network nodes can be configured, but not limited to, by: setting each target network node to allow one-hop routing to three target network nodes connected in the target subnetwork; or setting each target network node to allow two-hop routing to four target network nodes not connected in the target subnetwork.
[0267] In an optional implementation, a routing algorithm is provided for a topology of a three-dimensional hypercube interconnected network. In this routing algorithm, the network nodes in the three-dimensional hypercube interconnected network are divided into N1 = {100, 101, 110, 111} and N2 = {000, 001, 010, 011}. For a routing request, the source routing node (i.e., the aforementioned starting routing node) is denoted as S, and the destination routing node (i.e., the aforementioned final routing node) is denoted as D. The routing algorithm may include, but is not limited to, the following steps:
[0268] Step 1: Perform a bitwise XOR operation between the source routing node S and the destination routing node D, and denote the result as I;
[0269] Step 2: Determine the value of the source routing node S. If it belongs to N1, proceed to step 3; if it belongs to N2, proceed to step 4.
[0270] Step 3: Determine the value of I: If the value of I is one of 001, 010, or 100, it means that the source routing node S and the destination routing node D are directly connected and can be directly routed.
[0271] (2) If the value of I is either 110 or 011, I is split into two one-hot codes I = I1^I2. Then, in a random manner, the two one-hot codes are XORed with the routing node S respectively; the routing ends. For example: S is routing node 100, D is routing node 111, after bit XORing I = 011, I is split into two one-hot codes I = I1^I2 = 001^010. Then, in ascending order, the two one-hot codes are XORed with the routing node S respectively.
[0272]
[0273] If the value of I is 101, I is split into two parts: I = I1^I2 = 001^100. I1 and I2 are then XORed sequentially with the routing node S; the routing process ends. For example, if S is routing node 100 and D is routing node 001, after bit XORing, I = 101. I is then split into two one-hot codes: I = I1^I2 = 001^100. These two one-hot codes are then XORed sequentially with the routing node S.
[0274]
[0275] If the value of I is 111, I is split into two parts: I = I1^I2 = 100^011. I1 and I2 are then XORed sequentially with the routing node S; the routing process ends. For example, if S is routing node 100 and D is routing node 011, after the bitwise XOR, I = 111. I is then split into two one-hot codes: I = I1^I2 = 001^100. These two one-hot codes are then XORed sequentially with the routing node S.
[0276]
[0277] Step 4: Determine the value of I: If the value of I is one of 011, 010, or 100, it means that the source routing node S and the destination routing node D are directly connected and can be directly routed.
[0278] If the value of I is 110, I is split into two one-hot codes: I = I1^I2 = 010^100. Then, the two one-hot codes are XORed with the routing node S in a random manner; the routing ends. For example: S is routing node 001, D is routing node 111, after bit XORing I = 110, I is split into two one-hot codes: I = I1^I2 = 010^100. Then, the two one-hot codes are XORed with the routing node S in a random manner.
[0279]
[0280] If the value of I is 101, I is split into two one-hot codes: I = I1^I2 = 100^001. Then, in sequence, the two one-hot codes are XORed with the routing node S respectively; the routing ends. For example: S is routing node 001, D is routing node 101, after bit XORing I = 101, I is split into two one-hot codes: I = I1^I2 = 100^001. Then, in sequence, the two one-hot codes are XORed with the routing node S respectively.
[0281]
[0282] If the value of I is 001, I is split into two codes: I = I1^I2 = 010^011. Then, the two one-hot codes are XORed with the routing node S in a random manner; the routing ends. For example: S is routing node 001, D is routing node 000, after bit XORing I = 001, I is split into two one-hot codes: I = I1^I2 = 010^011. Then, the two one-hot codes are XORed with the routing node S in a random manner.
[0283]
[0284] If the value of I is 111, I is split into two codes: I = I1^I2 = 011^100. Then, in sequence, the two one-hot codes are XORed with the routing node S respectively; the routing ends. For example: S is routing node 001, D is routing node 110, after bit XORing I = 111, I is split into two one-hot codes: I = I1^I2 = 011^100. Then, in sequence, the two one-hot codes are XORed with the routing node S respectively.
[0285]
[0286] In interconnected networks with ring topologies, deadlock may occur in certain extreme scenarios. Once deadlock occurs, the on-chip network will be paralyzed. Therefore, deadlock must be addressed for on-chip networks. The routing method described above improves upon traditional routing algorithms, proposing a deadlock-avoiding routing algorithm suitable for the aforementioned multidimensional hypercube interconnected network. The routing algorithm is simple and easy to implement in hardware.
[0287] This embodiment also provides a topology of a four-dimensional hypercube interconnection network, which includes 16 network nodes. The four-dimensional hypercube interconnection network is divided into a first subnetwork and a second subnetwork, each including 8 target network nodes. The 8 target network nodes in the first subnetwork are further divided into a first node set and a second node set, each including 4 target network nodes. The 4 target network nodes in the first node set are connected one-to-one with the 4 target network nodes in the second node set. The 4 target network nodes in the first node set are connected in a ring. The 4 target network nodes in the second node set include a first network node, a second network node, a third network node, and a fourth network node. The first network node is connected to the third network node and the fourth network node, and the second network node is connected to the third network node and the fourth network node. The network nodes are connected in a specific way. The eight target network nodes included in the second sub-network are divided into a third node set and a fourth node set. Each of the third and fourth node sets includes four target network nodes. The four target network nodes in the third node set are connected one-to-one with the four target network nodes in the fourth node set. The four target network nodes in the third node set are connected in a ring. The four target network nodes in the fourth node set include the ninth, tenth, eleventh, and twelfth network nodes. The ninth network node is connected to the eleventh and twelfth network nodes, and the tenth network node is connected to the eleventh and twelfth network nodes. The four target network nodes in the first node set are connected one-to-one with the four target network nodes in the third node set, and the four target network nodes in the second node set are connected one-to-one with the four target network nodes in the fourth node set.
[0288] Through the above topology, the network diameter of the four-dimensional hypercube interconnect network is shortened to 3 under this connection method, thereby reducing the overall network diameter. Therefore, the technical problem of high network communication latency in multi-dimensional hypercube interconnect networks can be solved, achieving the technical effect of reducing network communication latency in multi-dimensional hypercube interconnect networks.
[0289] Optionally, in this embodiment, the identifiers of the 16 network nodes are four-bit binary numbers. The highest bits of the identifiers of network nodes on the same sub-network are the same. The lowest three bits of the identifier of the target network node are the same as those of the identifier of the directly connected reference network node. The identifier of the target network node and the identifier of the directly connected reference network node are different by exactly one bit. The reference network node and the target network node do not belong to the same sub-network.
[0290] Optionally, in this embodiment, the third-to-last digit of the identifiers of network nodes in the first node set is the same, the third-to-last digit of the identifiers of network nodes in the second node set is the same, and the third-to-last digit of the identifiers of network nodes in the first node set is different from the third-to-last digit of the identifiers of network nodes in the second node set; the third-to-last digit of the identifiers of network nodes in the third node set is the same, the third-to-last digit of the identifiers of network nodes in the fourth node set is the same, and the third-to-last digit of the identifiers of network nodes in the third node set is different from the third-to-last digit of the identifiers of network nodes in the fourth node set.
[0291] Optionally, in this embodiment, the third-to-last bit of the identifier of the network node in the first node set and the third-to-last bit of the identifier of the network node in the third node set are both 1, and the third-to-last bit of the identifier of the network node in the second node set and the third-to-last bit of the identifier of the network node in the fourth node set are both 0.
[0292] Optionally, in this embodiment, the results of bitwise XOR operations between the identifiers of network nodes in the first and third node sets and 0001, 0010, 0100, and 1000 are the identifiers of four directly connected network nodes; the results of bitwise XOR operations between the identifiers of network nodes in the second and fourth node sets and 0011, 0010, 0100, and 1000 are the identifiers of three directly connected network nodes.
[0293] Optionally, in this embodiment, the four target network nodes in the first node set include a fifth network node, a sixth network node, a seventh network node, and an eighth network node. The fifth network node is connected to the first network node, the sixth network node is connected to the second network node, the seventh network node is connected to the third network node, the eighth network node is connected to the fourth network node, the fifth network node is connected to the sixth network node, the sixth network node is connected to the seventh network node, the seventh network node is connected to the eighth network node, and the eighth network node is connected to the fifth network node.
[0294] The four target network nodes in the third node set include the thirteenth, fourteenth, fifteenth, and sixteenth network nodes. The thirteenth network node is connected to the ninth network node, the fourteenth network node is connected to the tenth network node, the fifteenth network node is connected to the eleventh network node, the sixteenth network node is connected to the twelfth network node, the thirteenth network node is connected to the fourteenth network node, the fourteenth network node is connected to the fifteenth network node, the fifteenth network node is connected to the sixteenth network node, and the sixteenth network node is connected to the thirteenth network node.
[0295] Optionally, in this embodiment, each target network node is configured to allow one-hop routing to four directly connected network nodes; each target network node is configured to allow two-hop routing to four network nodes not connected in its subnetwork; and each target network node is configured to allow three-hop routing to seven network nodes not connected in its subnetwork.
[0296] In one optional implementation, Figure 20 This is a structural block diagram of the topology of a four-dimensional hypercube interconnection network according to an embodiment of this application, such as... Figure 20 As shown, the four-dimensional hypercube interconnection network has 16 network nodes; the labels are represented by binary numbers from 0000 to 1110. For the eight network nodes 0100, 0101, 0110, 0111, 1100, 1101, 1110, and 1111, the binary number of each network node is XORed bit-by-bit with 0001, 0010, 0100, and 1000 respectively to obtain the network nodes directly connected to it. For example, for network node 0101, its binary number is XORed bit-by-bit with 0001, 0010, 0100, and 1000 respectively, resulting in 0100, 0111, 0001, and 1101. These four nodes are exactly the four network nodes directly connected to 0101. For the eight network nodes 0000, 0001, 0010, 0011, 1000, 1001, 1010, and 1011, the binary number of each network node is XORed bit-by-bit with 0011, 0010, 0100, and 1000 respectively to obtain the network nodes directly connected to it. For example, for network node 1010, its binary number is XORed bit-by-bit with 0011, 0010, 0100, and 1000 respectively, resulting in 1001, 1000, 1110, and 0010. These four nodes are exactly the four network nodes directly connected to 1010.
[0297] The topology of the aforementioned four-dimensional hypercube interconnect network includes two improved three-dimensional cube structures. Figure 21 This is a structural block diagram of an inner three-dimensional cube according to an embodiment of this application. Figure 22This is a structural block diagram of an outer three-dimensional cube according to an embodiment of this application, such as... Figure 21 and Figure 22 As shown, the highest bit of the network nodes in the inner 3D cube is 0, and the highest bit of the network nodes in the outer 3D cube is 1. The network nodes in the inner 3D cube that are directly connected to the network nodes in the outer 3D cube have a bit XOR result of 1000, that is, the lower two bits are equal and the highest bits are opposite.
[0298] For the eight network nodes 0100, 0101, 0110, 0111, 1100, 1101, 1110, and 1111: The connection relationships between each network node and the other 15 network nodes are as follows: XORing with 0001, 0010, 0100, and 1000 yields four directly connected network nodes; a single hop allows direct access to four adjacent network nodes. For example, network node 0100, XORing with 0001, 0010, 0100, and 1000, yields network nodes 0101, 0110, 0000, and 1100, which are directly connected and can be directly routed. XORing network node 0101 with 0101, 0011, 0110, 1001, 1100, 1010, and 0111 yields 7 network nodes, which can be reached in two hops. For example, XORing network node 0100 with 0101, 0011, 0110, 1001, 1100, 1010, and 0111 yields 7 network nodes 0001, 0111, 0010, 1101, 1000, 1110, and 0011, which can also be reached in two hops. XORing network node 0100 with 1011, 1110, 1101, and 1111 results in four network nodes that can be reached in three hops. For example, XORing network node 0100 with 1011, 1110, 1101, and 1111 results in network nodes 1111, 1010, 1001, and 1011, which can be reached in three hops.
[0299] For the eight network nodes 0000, 0001, 0010, 0011, 1000, 1001, 1010, and 1011: The connection relationships between each network node and the other 15 network nodes are as follows: XORing with 0011, 0010, 0100, and 1000 yields four directly connected network nodes; a single hop allows direct access to four adjacent network nodes. For example, network node 0001, XORing with 0011, 0010, 0100, and 1000 yields four directly connected network nodes 0010, 0011, 0101, and 1001, allowing for direct routing; XORing with 0101, 0001, 0110, 1011, 1100, 1010, and 0111 yields four directly connected network nodes. The result is 7 network nodes, which can be reached in two hops. For example, network node 0001 is XORed with 0101, 0001, 0110, 1011, 1100, 1010, and 0111 to get network nodes 0100, 0000, 0111, 1010, 1101, 1011, and 0110, which can be reached in two hops. XORing with 1001, 1110, 1101, and 1111 results in 4 network nodes, which can be reached in 3 hops. For example, network node 0001 is XORed with 1001, 1110, 1101, and 1111 to get network nodes 1000, 1111, 1100, and 1110, which can be reached in three hops.
[0300] The network diameter between the network nodes of the above four-dimensional hypercube interconnection network is 3.
[0301] This embodiment also provides a routing method for a four-dimensional hypercube interconnect network, applicable to any of the above-described four-dimensional hypercube interconnect network topologies. Figure 23 This is a schematic diagram of a routing method for a four-dimensional hypercube interconnection network according to an embodiment of this application, as shown below. Figure 23 As shown, the method may include, but is not limited to, the following steps:
[0302] Step S2302: Obtain the starting node identifier of the starting routing node in the four-dimensional hypercube interconnection network, and the final node identifier of the final routing node in the four-dimensional hypercube interconnection network.
[0303] Step S2304: Based on the set of nodes where the starting routing node is located, split the result of the bitwise XOR operation between the starting node identifier and the final node identifier into a target encoding sequence.
[0304] Step S2306: Calculate the routing path from the starting routing node to the final routing node based on the starting node identifier and the target encoding sequence to obtain the target routing path;
[0305] Step S2308: Route from the starting routing node to the final routing node according to the target routing path.
[0306] Through the above steps, the network diameter of the four-dimensional hypercube interconnect network is shortened to 3 under this connection method, thereby reducing the overall network diameter. Therefore, the technical problem of high network communication latency in multi-dimensional hypercube interconnect networks can be solved, achieving the technical effect of reducing network communication latency in multi-dimensional hypercube interconnect networks.
[0307] In an optional example, the result of the bitwise XOR operation between the starting node identifier and the final node identifier can be split into a target encoding sequence based on the set of nodes where the starting routing node is located, but not limited to the following methods: the connection relationship between the starting routing node and the final routing node is determined based on the operation result; if the connection relationship is that the starting routing node and the final routing node are directly connected, the target routing path is determined to be a direct route from the starting routing node to the final routing node; if the connection relationship is that the starting routing node and the final routing node are not directly connected, the set of nodes where the starting routing node is located and the target encoding sequence corresponding to the operation result are found from the set of nodes with corresponding relationships, the XOR value, and the encoding sequence.
[0308] In an optional example, after determining the connection between the starting routing node and the final routing node based on the calculation results, if the connection is a direct connection between the starting routing node and the final routing node, the target routing path is determined to be a direct route from the starting routing node to the final routing node.
[0309] In an optional example, the set of nodes containing the starting routing node and the target encoding sequence corresponding to the operation result can be found from the corresponding set of nodes, XOR values, and encoding sequences in the following ways: If the set of nodes containing the starting routing node is the first set of nodes, and the operation result is 0011, 0110, 1001, 1100, 1010, or 0101, the target encoding sequence is determined to be two one-hot codes of the operation result arranged in ascending order; if the set of nodes containing the starting routing node is the first set of nodes, and the operation result is 0111... In the following cases, the target encoding sequence is determined to be 0100 and 0011; if the set of nodes where the starting routing node is located is the first node set, and the operation result is 1011, 1110, or 1101, the target encoding sequence is determined to be three one-hot codes of the operation result arranged in ascending order; if the set of nodes where the starting routing node is located is the first node set, and the operation result is 1111, the target encoding sequence is determined to be 0100, 0011, and 1000; if the set of nodes where the starting routing node is located is the second node set, and the operation result is 0101, 0110, and 110... In the case of 0 or 1010, the target encoding sequence is determined to be two one-hot codes of the operation results arranged in descending order; if the node set containing the starting routing node is the second node set and the operation result is 0001, the target encoding sequence is determined to be 0011 and 0010; if the node set containing the starting routing node is the second node set and the operation result is 1011, the target encoding sequence is determined to be 0011 and 1000; if the node set containing the starting routing node is the second node set and the operation result is 0111, the target encoding sequence is determined to be 00. 11 and 0100; when the set of nodes where the starting routing node is located is the second set of nodes, and the operation result is 1110 or 1101, the target encoding sequence is determined to be three one-hot codes of the operation result arranged in descending order; when the set of nodes where the starting routing node is located is the second set of nodes, and the operation result is 1001, the target encoding sequence is determined to be 0011, 1000 and 0010; when the set of nodes where the starting routing node is located is the second set of nodes, and the operation result is 1111, the target encoding sequence is determined to be 0011, 1000 and 0100.
[0310] In an optional example, the target routing path can be obtained by calculating the routing path from the starting routing node to the final routing node based on the starting node identifier and the target encoding sequence in the following manner: performing a bitwise XOR operation between the starting node identifier and the first code in the target encoding sequence to obtain the node identifier of the next hop; performing a bitwise XOR operation between the node identifier of the next hop and the next code in the target encoding sequence until the last code in the target encoding sequence is obtained to obtain the target routing path.
[0311] In an optional implementation, a routing algorithm is provided for a topology structure of a four-dimensional hypercube interconnected network. In this routing algorithm, the network nodes in the four-dimensional hypercube interconnected network are divided into N1 = {0100, 0101, 0110, 0111, 1100, 1101, 1110, 1111} and N2 = {0000, 0001, 0010, 0011, 1000, 1001, 1010, 1011}. For a routing request, the source routing node (i.e., the aforementioned starting routing node) is denoted as S, and the destination routing node (i.e., the aforementioned final routing node) is denoted as D. The routing algorithm may include, but is not limited to, the following steps:
[0312] Step 1: Perform a bitwise XOR operation between the source routing node S and the destination routing node D, and denote the result as I;
[0313] Step 2: Determine the value of the source routing node S. If it belongs to N1, proceed to step 3; if it belongs to N2, proceed to step 4.
[0314] Step 3: Determine the value of I: If the value of I is one of 0001, 0010, 0100, or 1000, it means that the source routing node S and the destination routing node D are directly connected and can be directly routed.
[0315] If the value of I is one of 0011, 0110, 1001, 1100, 1010, or 0101, I is split into two one-hot codes: I = I1^I2 = 0001^0100. Then, in ascending order, the two one-hot codes are XORed with the routing node S respectively; the routing ends. For example: S is routing node 0100, D is routing node 0001, after bit XORing, I = 0101. I is then split into two one-hot codes: I = I1^I2 = 0001^0100. Then, in ascending order, the two one-hot codes are XORed with the routing node S respectively.
[0316]
[0317] If the value of I is 0111, I is split into two parts: I = I1^I2 = 0100^0011. I1 and I2 are then XORed sequentially with the routing node S; the routing process ends. For example, if S is routing node 0100 and D is routing node 0011, after the bit XOR, I = 0111. I is then split into two one-hot codes: I1^I2 = 0100^0011. These two one-hot codes are then XORed sequentially with the routing node S.
[0318]
[0319] If the value of I is one of 1011, 1110, or 1101, I is split into three one-hot codes. Then, in ascending order, each of the three one-hot codes is XORed with the routing node S; the routing ends. For example: S is routing node 0100, D is routing node 1111, after bit XORing, I = 1011. I is then split into three one-hot codes: I = I1^I2^I3 = 0001^0010^1000. These three one-hot codes are then XORed with the routing node S in ascending order.
[0320]
[0321] If the value of I is 1111, I is split into three parts: I = I1^I2^I3 = 0100^0011^1000. These parts are then XORed with the routing node S in the order I1, I2, I3. The routing process ends. For example, if S is routing node 0100 and D is routing node 1011, after a bitwise XOR, I = 1111. I is then split into three one-hot codes: I1^I2^I3 = 0100^0011^1000. These codes are then XORed with the routing node S in the order I1, I2, I3.
[0322]
[0323] Step 4: Determine the value of I: If the value of I is one of 0011, 0010, 0100, or 1000, it means that the source routing node S and the destination routing node D are directly connected and can be directly routed.
[0324] If the value of I is one of 0101, 0110, 1100, or 1010, I is split into two one-hot codes. Then, in descending order, the two one-hot codes are XORed with the routing node S respectively; the routing ends. For example: S is routing node 0001, D is routing node 0100, after bit XORing I = 0101, I is split into two one-hot codes I = I1^I2 = 0001^0100, and then, in ascending order, the two one-hot codes are XORed with the routing node S respectively.
[0325]
[0326] If the value of I is 0001, I is split into two parts: I = I1^I2 = 0011^0010. I1 and I2 are then XORed sequentially with the routing node S; the routing process ends. For example, if S is routing node 0001 and D is routing node 0000, after a bit XOR, I = 0001. I is then split into two one-hot codes: I = I1^I2 = 0011^0010. Then, I1 and I2 are XORed sequentially with the routing node S.
[0327]
[0328] If the value of I is 1011, I is split into two parts: I = I1^I2 = 0011^1000. I1 and I2 are then XORed sequentially with the routing node S; the routing process ends. For example, if S is routing node 0001 and D is routing node 1010, after bit XORing, I = 1011. I is then split into two one-hot codes: I = I1^I2 = 0011^1000. Then, I1 and I2 are XORed sequentially with the routing node S.
[0329]
[0330] If the value of I is 0111, I is split into two parts: I = I1^I2 = 0011^0100. I1 and I2 are then XORed sequentially with the routing node S; the routing process ends. For example, if S is routing node 0001 and D is routing node 0110, after bit XORing, I = 0111. I is then split into two one-hot codes: I1^I2 = 0011^0100. Then, I1 and I2 are XORed sequentially with the routing node S.
[0331]
[0332] If the value of I is either 1110 or 1101, I is split into three one-hot codes, and then XORed with the routing node S in the order I1, I2, I3. For example, if S is routing node 0001 and D is routing node 1100, after bit XORing, I = 1101. I is then split into three one-hot codes: I = I1^I2^I3 = 1000^0100^0001, and then XORed with the routing node S in the order I1, I2, I3.
[0333]
[0334] If the value of I is 1001, I is split into three parts: I = I1^I2^I3 = 0011^1000^0010. Then, I is XORed with the routing node S in the order of I1, I2, I3. For example, if S is routing node 0001 and D is routing node 1000, after bit XORing, I = 1001. I is then split into three one-hot codes: I1^I2^I3 = 0011^1000^0010. These codes are then XORed with the routing node S in the order of I1, I2, I3.
[0335]
[0336] If the value of I is 1111, I is split into three parts: I = I1^I2^I3 = 0011^1000^0100. Then, I is XORed with the routing node S in the order of I1, I2, I3. For example, if S is routing node 0001 and D is routing node 1110, after the bit XOR, I = 1111. I is then split into three one-hot codes: I1^I2^I3 = 0011^1000^0100. Finally, I is XORed with the routing node S in the order of I1, I2, I3.
[0337]
[0338] Compared to traditional four-dimensional hypercube structures, the aforementioned four-dimensional hypercube interconnection network has a shorter diameter, which effectively reduces network transmission latency. The routing algorithm for this four-dimensional hypercube interconnection network is simple and easy to implement in hardware.
[0339] This embodiment also provides a topology for an interconnection network, which includes 2 N There are N sets of nodes, each set containing N network nodes. The interconnected network is divided into 2... N-3 There are 2 subnetworks, where N is a positive integer greater than 2; 2 N-3 Each subnetwork in the target subnetwork comprises 8 node sets. These 8 node sets are divided into a first set and a second set. Each of the first and second sets comprises 4 node sets. The 4 node sets in the first set are connected one-to-one with the 4 node sets in the second set. The 4 node sets in the first set are connected in a ring. The 4 node sets in the second set include the first, second, third, and fourth node sets. The first node set is connected to the third and fourth node sets, and the second node set is connected to the third and fourth node sets. Each node set is connected to a node set with a connection relationship through one of its N network nodes. The N network nodes in each node set are connected to each other in pairs.
[0340] The above topology can be used to establish an interconnection network topology where the number of network nodes does not match the number of network nodes that a multidimensional hypercube interconnection network can provide, thus avoiding or reducing the occurrence of idle network nodes. Therefore, it can solve the technical problem of significant resource waste caused by the topology of interconnection networks, achieving the technical effect of reducing resource waste in the topology of interconnection networks.
[0341] Optionally, in this embodiment, when N is greater than 3, the interconnection network is divided into at least 2 sub-networks, and the at least 2 sub-networks are connected sequentially. The set of 8 nodes included in the target sub-network is connected one-to-one with the set of 8 nodes included in the reference sub-network. The reference sub-network is the sub-network adjacent to the target sub-network in the connection of the at least 2 sub-networks.
[0342] Optionally, in this embodiment, each node set has a set identifier; the node identifier of each network node includes a set identifier field and a connection identifier field, wherein the set identifier field is used to record the set identifier of the target node set to which each network node is located, and the connection identifier field is used to record the set identifier of the reference node set to which the target node set is connected through each network node.
[0343] Optionally, in this embodiment, 2 N The set identifier for each node set is between 0 and 2. N-1 Integers.
[0344] Optionally, in this embodiment, the four target node sets in the first set include a fifth node set, a sixth node set, a seventh node set, and an eighth node set; the fifth node set is connected to the first node set, the sixth node set is connected to the second node set, the seventh node set is connected to the third node set, and the eighth node set is connected to the fourth node set; the fifth node set is connected to the sixth node set, the sixth node set is connected to the seventh node set, the seventh node set is connected to the eighth node set, and the eighth node set is connected to the fifth node set.
[0345] In an optional implementation, taking N=3 as an example, the interconnection network includes 8 node sets, each node set including 3 network nodes. The interconnection network is divided into a sub-network. The 8 node sets included in the target sub-network are divided into a first set and a second set. The first set and the second set each include 4 node sets. The 4 node sets in the first set are connected one-to-one with the 4 node sets in the second set. The 4 node sets in the first set are connected in a ring. The 4 node sets in the second set include a first node set, a second node set, a third node set, and a fourth node set. The first node set is connected to the third node set and the fourth node set, and the second node set is connected to the third node set and the fourth node set. Each node set is connected to a node set with a connection relationship through one of the 3 network nodes it includes. The 3 network nodes included in each node set are connected to each other in pairs.
[0346] Figure 24 This is a structural block diagram of the topology of an interconnection network according to an embodiment of this application, such as... Figure 24 As shown, each node set can be viewed as, but is not limited to, a triangular structure, and the target sub-network can be viewed as, but is not limited to, a three-dimensional hypercube structure. Each network node is numbered (i, j), where i represents the triangle number, 0 ≤ i ≤ 7; j indicates that the network node is connected to the j-th triangle structure. It can be seen that the network node numbered (i, j) is connected to the network node numbered (j, i). For example, network node (3, 1) is located in the 3rd triangle structure and is connected to network node (1, 3) in the 1st triangle structure.
[0347] This interconnected network has 24 network nodes. The network diameter between network nodes within the same triangle is 1, the diameter of the entire topology network is 5, and the out-degree and in-degree of each network node are 3.
[0348] This embodiment also provides a routing method for an interconnected network, applied to any of the interconnected network topologies described above. This routing method is used to route from a starting routing node in a target subnetwork to a final routing node in the target subnetwork. Figure 25 This is a schematic diagram of a routing method for an interconnected network according to an embodiment of this application. Figure 1 ,like Figure 25 As shown, the method may include, but is not limited to, the following steps:
[0349] Step S2502: Detect the positional relationship between the starting routing node and the final routing node;
[0350] Step S2504: Calculate the shortest route from the starting routing node to the final routing node based on the location relationship, and obtain the target route path;
[0351] Step S2506: Route from the starting routing node to the final routing node according to the target routing path.
[0352] Through the above steps, the topology of the interconnected network, where the number of network nodes does not match the number of network nodes that can be provided in the multidimensional hypercube interconnected network, is established, thus avoiding or reducing the occurrence of idle network nodes. Therefore, the technical problem of significant resource waste caused by the topology of interconnected networks can be solved, achieving the technical effect of reducing resource waste in the topology of interconnected networks.
[0353] Optionally, in this embodiment, the positional relationship between the starting routing node and the final routing node can be detected by, but is not limited to, the following methods: obtaining the starting node identifier of the starting routing node and the final node identifier of the final routing node; and determining the positional relationship based on the starting node identifier and the final node identifier.
[0354] Optionally, in this embodiment, each node set has a set identifier, and the node identifier of each network node includes a set identifier field and a connection identifier field. The set identifier field records the set identifier of the target node set to which each network node belongs, and the connection identifier field records the set identifiers of the reference node sets connected to by the target node set through each network node. The positional relationship can be determined based on the starting node identifier and the ending node identifier in the following ways, but not limited to: detecting whether the starting set identifier in the starting node identifier is equal to the ending set identifier in the ending node identifier; if the starting set identifier and the ending set identifier are equal, the positional relationship is determined as the starting path. If the starting node and the final routing node are located in the same node set; if the starting set identifier and the final set identifier are not equal, check if the starting connection identifier in the starting node identifier is equal to the final set identifier; if the starting connection identifier and the final set identifier are equal, determine that the positional relationship is that the starting routing node and the final routing node are located in different node sets, but the starting routing node and the final node set to which the final routing node is located are directly connected; if the starting connection identifier and the final set identifier are not equal, determine that the positional relationship is that the starting routing node and the final routing node are located in different node sets, and the starting routing node and the final node set to which the final routing node is located are not directly connected.
[0355] Optionally, in this embodiment, the shortest route path from the starting routing node to the final routing node can be calculated based on the location relationship in the following ways, but not limited to: when the starting routing node and the final routing node are located in the same node set, the shortest route path is determined to be a direct route from the starting routing node to the final routing node; when the starting routing node and the final routing node are located in different node sets, the shortest route path from the starting routing node to the final routing node is calculated based on the starting node identifier of the starting routing node and the final node identifier of the final routing node, thus obtaining the target route path.
[0356] Optionally, in this embodiment, the shortest route path from the starting route node to the final route node can be calculated based on the starting node identifier of the starting route node and the final node identifier of the final route node, to obtain the target route path: If the positional relationship further indicates that the starting route node and the set of final nodes to which the final route node reside are directly connected, the next hop is determined to be the first route node in the set of final nodes that is connected to the set of starting nodes to which the starting route node resides. Wherein, if the first route node is the final route node, the shortest route path is determined to be from the starting route node to the final route node; if the first route node is not the final route node, the shortest route path includes the starting route node, the first route node, and the final route node. If the positional relationship further indicates that the starting route node and the set of final nodes to which the final route node reside are not directly connected... The system checks whether a second routing node directly connects to the set of final nodes in the set of final nodes. If a second routing node exists in the set of final nodes, the next hop is determined to be the second routing node, and the second hop is a third routing node directly connected to the second routing node in the set of final nodes. If the third routing node is the final routing node, the shortest route path includes the starting routing node, the second routing node, and the final routing node. If the third routing node is not the final routing node, the shortest route path includes the starting routing node, the second routing node, the third routing node, and the final routing node. If no second routing node exists in the set of final nodes, the system calculates the shortest route path from the starting routing node to the final routing node based on the binary numbers of the starting node identifier and the final node identifier, thus obtaining the target route path.
[0357] Optionally, in this embodiment, each node set has a set identifier, and the node identifier of each network node includes a set identifier field and a connection identifier field. The set identifier field records the set identifier of the target node set to which each network node belongs, and the connection identifier field records the set identifiers of the reference node sets connected to by the target node set through each network node. N The set identifier for each node set is between 0 and 2. N-1The integer; when N is 3, the shortest route path from the starting routing node to the final routing node can be calculated based on the binary numbers of the starting node identifier and the final node identifier in the following ways, to obtain the target route path: Perform a bitwise XOR operation on the binary number of the starting set identifier in the starting node identifier and the binary number of the final set identifier in the final node identifier to obtain the result; if the result is 111 and the starting set identifier belongs to the target identifier set, the shortest route path is determined to be from the starting routing node to the intermediate node set of the first set identifier, and then from the intermediate node set of the first set identifier to the final routing node, where the first set identifier is the bitwise XOR result of the binary number of the starting set identifier and 011, and the target identifier set includes 0, 1, 2, and 3; if the result is 111 and the starting set identifier does not belong to the target identifier set, the shortest route path is determined to be from the starting node to the intermediate node set of the first set identifier, and then from the intermediate node set of the first set identifier to the final routing node. The shortest route is determined as follows: The route from the starting node is routed to the intermediate node set identified by the second set, and then from the intermediate node set identified by the second set to the final route node. The second set identifier is the result of a bitwise XOR operation between the binary number of the starting set identifier and 010. The target identifier set includes 0, 1, 2, and 3. If the result is 101, the shortest route is determined as route from the starting node to the intermediate node set identified by the third set, and then from the intermediate node set identified by the third set to the final route node. The third set identifier is the result of a bitwise XOR operation between the binary number of the starting set identifier and 100. If the result is any other than 111 or 101, the shortest route is determined as route from the starting node to the intermediate node set identified by the fourth set, and then from the intermediate node set identified by the fourth set to the final route node. The fourth set identifier is the result of a bitwise XOR operation between the binary number of the starting set identifier and 010.
[0358] In an optional implementation, taking N=3 (i.e., a combination of triangular and three-dimensional hypercube structures) as an example, a routing method for an interconnected network is provided, where the source routing node S = (i S i S That is, the starting routing node and the destination routing node D = (i D j D That is, the final routing node mentioned above. This routing method includes the following steps:
[0359] Step 1: Determine i S and i D Are they equal? If i S =i D This indicates that S and D are within the same triangle structure. S can reach D in one step within the triangle, and the routing ends; if i S ≠i DThis indicates that S and D are not in the same triangle structure, so proceed to the second step.
[0360] Step 2: Determine j S and i D Are they equal? If j S =i D This indicates that the triangle structures containing S and D are directly connected, proceeding to step four; if j S ≠i D This indicates that S is not directly connected to the triangle structure containing D, so proceed to the third step.
[0361] Step 3: Determine if there is a node inside the triangle containing S that is directly connected to the triangle containing D. If there is, perform routing within the triangle containing S to the node directly connected to the triangle containing D, update S, and proceed to Step 4; otherwise, proceed to Step 6.
[0362] Step 4: At this point, the triangle structures containing S and D are directly connected. Therefore, the route from S to the triangle structure containing D is direct, using the following routing method: (i S i D )→(i D i S Update the value of S: S = (i D i S Proceed to step five.
[0363] Step 5: Determine i S and j D Are they equal? If i S =j D If they are equal, the route ends; if i S ≠j D Perform routing (i D i S )→(i D j D This means that routing occurs within the triangle structure containing D, and the routing ends when the route reaches D.
[0364] Step 6: i S binary and i D The binary number is XORed according to bits, and the result is denoted as I. If I = 111, proceed to step 7; if I = 101, proceed to step 8; otherwise, proceed to step 9.
[0365] Step 7: I = 111: Determine i S If it belongs to {0,1,2,3}, proceed to 7.1 if it does, otherwise proceed to 7.2.
[0366] 7.1 Calculate bin(i S)^011, the triangle containing S and the bin(i)th triangle S Connect the 11th triangles, bin(i) S The 11th triangle is connected to the triangle containing D. S needs to first route to the bin(i)th triangle. S The routing method is the same as above for the 011th triangle; then starting from the bin(i)th triangle... S )^011 triangles are routed to D, using the same routing method as above; routing ends.
[0367] 7.2 Calculate bin(i S )^010, the triangle containing S and the bin(i)th triangle S Connect 0 to 10 triangles, and the bin(i)th triangle... S The 10th triangle is connected to the triangle containing D. S needs to be routed to the bin(i)th triangle first. S The routing method is the same as above for the 0^10 triangles; then, starting from the bin(i)th triangle... S )^010 triangles are routed to D, using the same routing method as above; routing ends.
[0368] Step 8: Calculate bin(i) S )^100, the triangle containing S and the bin(i)th triangle S Connect 100 triangles, and the bin(i)th triangle... S )^100 triangles are connected to the triangle containing D. S needs to first route to the bin(i)th triangle. S )^100 triangles, routing method as above; then starting from the bin(i)th triangle... S )^100 triangles are routed to D, using the same routing method as above; routing ends.
[0369] Step 9: Calculate bin(i) S )^010, the triangle containing S and the bin(i)th triangle S Connect 0 to 10 triangles, and the bin(i)th triangle... S The 10th triangle is connected to the triangle containing D. S needs to be routed to the bin(i)th triangle first. S The routing method is the same as above for the 0^10 triangles; then, starting from the bin(i)th triangle... S )^010 triangles are routed to D, using the same routing method as above; routing ends.
[0370] Source routing node S = (i S j S ) = (1, 21, target routing node D = (i D j D Taking (3, 0) as an example, the routing method includes the following steps:
[0371] Step 1: Determine i S and i D Are they equal? S ≠i D This indicates that S and D are not in the same triangle structure, so proceed to the second step.
[0372] Step 2: Determine j S and i D Are they equal: j S ≠i D This indicates that S is not directly connected to the triangle structure containing D, so proceed to the third step.
[0373] Step 3: Determine if there is a node inside the triangle containing S that is directly connected to the triangle containing D. If so, perform routing within the triangle containing S to the node directly connected to the triangle containing D. S j S )→(i S i D (1,2)→(1,3), that is, routing is performed inside the triangle structure where S is located, routing to the routing node (1,3) that is directly connected to the triangle structure where D is located, updating the value of S: s=(1,3), and proceeding to the fourth step.
[0374] Step 4: At this point, the triangle structures containing S and D are directly connected. Therefore, the route from S to the triangle structure containing D is direct, using the following routing method: (i S i D )→(i D i S ): (1, 3) → (3, 1), update the value of S: S = (i D i S (3, 1), proceed to step 5.
[0375] Step 5: Determine i S and j D Are they equal? S ≠j D Perform routing (i D i S )→(i D j D ): (3,1)→(3,0), that is, the route is performed inside the triangle structure where D is located, the route is routed to D, and the route ends.
[0376] Source routing node S = (i S j S ) = (1, 3), target routing node D = (i D j DTaking (6, 7) as an example, the routing method includes the following steps:
[0377] Step 1: Determine i S and i D Are they equal? S ≠i D This indicates that S and D are not in the same triangle structure, so proceed to the second step.
[0378] Step 2: Determine j S and i D Are they equal: j S ≠i D This indicates that S is not directly connected to the triangle structure containing D, so proceed to the third step.
[0379] Step 3: Determine if there are any nodes inside the triangle containing S that are directly connected to the triangle structure containing D. If not, proceed to step 6.
[0380] Step 6: i s binary and i D The binary number is XORed according to bits, and the result is recorded as I. I = 111, proceed to step 7.
[0381] Step 7: I = 111: Determine i S Whether it belongs to {0, 1, 2, 3}, if it does, proceed to 7.1.
[0382] 7.1 Calculate bin(i S )^011=001^0I1=010, the triangle containing S is connected to the 010th (i.e., the 2nd) triangle, and the 010th triangle is connected to the triangle containing D. S needs to be routed to the 010th triangle first, using the same routing method as above; then it needs to be routed from the 010th triangle to D, using the same routing method as above, which will not be repeated here; the routing ends.
[0383] Source routing node S = (i S j S ) = (0, 2), target routing node D = (i D j D Taking (1, 3) as an example, the routing method includes the following steps:
[0384] Step 1: Determine i S and i D Are they equal? S ≠i D This indicates that S and D are not in the same triangle structure, so proceed to the second step.
[0385] Step 2: Determine j S and i D Are they equal: jS ≠i D This indicates that S is not directly connected to the triangle structure containing D, so proceed to the third step.
[0386] Step 3: Determine if there are any nodes inside the triangle containing S that are directly connected to the triangle structure containing D. If not, proceed to step 6.
[0387] Step 6: i S binary and i D The binary number is XORed according to bits, and the result is denoted as I. I ≠ 111 and I ≠ 101. Proceed to step nine.
[0388] Step 9: Calculate bin(i) S ^010=000^010=010, the triangle containing S is connected to the 010th (i.e., the second) triangle, and the 010th triangle is connected to the triangle containing D. S needs to be routed to the 010th triangle first, using the same routing method as above; then it needs to be routed from the 010th triangle to D, using the same routing method as above, which will not be repeated here; the routing ends.
[0389] In a network requiring 24 routing nodes, a four-dimensional cube contains 16 nodes, necessitating a five-dimensional cube topology. However, a five-dimensional cube contains 32 routing nodes, has a network diameter of 5, and each node has an out-degree and in-degree of 5, with 8 nodes remaining idle, resulting in resource waste. Therefore, to conserve resources, a topology combining the aforementioned triangle and three-dimensional hypercube is proposed. This topology contains 24 routing nodes, maintains a network diameter of 5, but each node has an out-degree and in-degree of 3, facilitating better backend layout and cabling. A specific routing algorithm is also provided; the algorithm is simple and easy to implement in hardware.
[0390] This embodiment also provides another interconnection network topology, which includes N node sets, each node set including 8 network nodes, where N is a positive integer greater than 2; the 8 network nodes in each node set are divided into a first node set and a second node set, each of which includes 4 network nodes, and the 4 network nodes in the first node set are connected one-to-one with the 4 network nodes in the second node set; the 4 network nodes in the first node set are connected in a ring, and the 4 network nodes in the second node set include a first network node, a second network node, a third network node, and a fourth network node, with the first network node connected to the third and fourth network nodes, and the second network node connected to the third and fourth network nodes; the target network node in each node set is connected to the reference network node at the same position in the other N-1 node sets.
[0391] This topology allows for the expansion of the network diameter while simultaneously controlling the increase in the number of network nodes, thereby controlling the increase in network latency. Therefore, it can solve the technical problem of high network communication latency in multidimensional hypercube interconnected networks, achieving the technical effect of reducing network communication latency in multidimensional hypercube interconnected networks.
[0392] Optionally, in this embodiment, the four network nodes in the first node set include a fifth network node, a sixth network node, a seventh network node, and an eighth network node; the fifth network node is connected to the first network node, the sixth network node is connected to the second network node, the seventh network node is connected to the third network node, and the eighth network node is connected to the fourth network node; the fifth network node is connected to the sixth network node, the sixth network node is connected to the seventh network node, the seventh network node is connected to the eighth network node, and the eighth network node is connected to the fifth network node.
[0393] In an alternative implementation, when N is 3, the topology of the interconnection network can be viewed as a combination of a three-dimensional hypercube structure and a triangular structure. Figure 26 This is a schematic diagram of the construction process of an interconnection network topology according to an embodiment of this application. Figure 1 ,like Figure 26 As shown, the construction process of the interconnection network topology may include, but is not limited to, the following: First, construct three three-dimensional hypercube structures. Then, encode each three-dimensional hypercube structure using a 3-bit binary number, and number the three three-dimensional hypercube structures as 0, 1, and 2 respectively. Finally, connect network nodes with the same encoding in the three structures (i.e., network nodes in the same position) using a triangular network connection method. For example, connect the routing nodes with the encoding 000 in the three three-dimensional hypercube structures numbered 0, 1, and 2 using a triangular network connection method. After connecting all nodes using the triangular network connection method, the topology of the interconnection network is obtained. In this interconnection network topology, there are 24 network nodes, the network diameter between network nodes within the same three-dimensional hypercube is 2, the diameter of the entire topology network is 3, and the out-degree and in-degree of each network node are 5.
[0394] In another alternative implementation, when N is 4, the topology of the interconnection network can be viewed as a combination of a three-dimensional hypercube structure and a triangular pyramid structure. Figure 27 This is a schematic diagram of the construction process of an interconnection network topology according to an embodiment of this application. Figure 2 ,like Figure 27As shown, the construction process of the interconnected network topology may include, but is not limited to, the following: First, construct four three-dimensional hypercube structures. Then, encode the network nodes in each three-dimensional hypercube structure with three-bit binary numbers, and number the four three-dimensional hypercube structures as 0, 1, 2, and 3 respectively. Finally, connect the network nodes with the same encoding in the four structures according to the connection method of a pyramidal network. For example, connect the routing nodes with the encoding 000 in the four three-dimensional hypercube structures numbered 0, 1, 2, and 3 according to the connection method of a pyramidal network. After connecting all the nodes according to the connection method of a pyramidal network, the topology of the interconnected network is obtained. This interconnected network topology has 32 network nodes, the network diameter between network nodes within the same three-dimensional hypercube is 2, the diameter of the entire topology network is 3, and the out-degree and in-degree of each network node are 6.
[0395] Optionally, in this embodiment, each node set has a set identifier; the node identifier of each network node includes a set identifier field and a node identifier field, wherein the set identifier field is used to record the set identifier of the target node set to which each network node belongs, and the node identifier in the node identifier field is a 3-bit binary number.
[0396] Optionally, in this embodiment, network nodes with the same node identifier field are interconnected among the various node sets.
[0397] Optionally, in this embodiment, the highest bit of the identifier of the network node in the first node set is 1, and the highest bit of the identifier of the network node in the second node set is 0; the result of performing a bitwise XOR operation between the identifier of the network node in the first node set and 001, 010, and 100 is the identifier of the three directly connected network nodes; the result of performing a bitwise XOR operation between the identifier of the network node in the second node set and 011, 010, and 100 is the identifier of the three directly connected network nodes.
[0398] This embodiment also provides a routing method for an interconnected network, applied to any of the interconnected network topologies described above. This routing method is used to route from a starting routing node in a target subnetwork to a final routing node in the target subnetwork. Figure 28 This is a schematic diagram of a routing method for an interconnected network according to an embodiment of this application. Figure 2 ,like Figure 28 As shown, the method may include, but is not limited to, the following steps:
[0399] Step S2802: Based on the set of starting nodes where the starting routing node is located and the set of ending nodes where the ending routing node is located, detect the set relationship between the set of starting nodes and the set of ending nodes.
[0400] Step S2804: When the set relation indicates that the starting node set and the final node set are the same node set, calculate the shortest route path from the starting routing node to the final routing node to obtain the target route path; when the set relation indicates that the starting node set and the final node set are different node sets, determine that the target route path includes a first route path and a second route path, wherein the first route path is a route from the starting routing node to an intermediate routing node, the intermediate routing node is a network node in the final node set that is connected to the starting routing node, and the second route path is the shortest route path from the intermediate routing node to the final node.
[0401] Step S2806: Route from the starting routing node to the final routing node according to the target routing path.
[0402] By following the steps described above, the growth of the network diameter is controlled while expanding the number of network nodes, thereby controlling the increase in network latency. Therefore, the technical problem of high network communication latency in multidimensional hypercube interconnected networks can be solved, achieving the technical effect of reducing network communication latency in multidimensional hypercube interconnected networks.
[0403] Optionally, in this embodiment, before determining that the target routing path includes the first routing path and the second routing path, the second routing path can be planned in the following ways, but not limited to: obtaining the intermediate node identifier of the intermediate routing node and the final node identifier of the final routing node; calculating the shortest routing path from the intermediate routing node to the final routing node based on the intermediate node identifier, the final node identifier and the node set where the intermediate routing node is located, to obtain the second routing path.
[0404] Optionally, in this embodiment, the shortest route path from the intermediate routing node to the final routing node can be calculated based on the intermediate node identifier, the final node identifier, and the set of nodes where the intermediate routing node is located, to obtain the second route path: the connection relationship between the intermediate routing node and the final routing node is determined based on the intermediate node identifier, the final node identifier, and the set of nodes where the intermediate routing node is located; the shortest route path is calculated based on the connection relationship and the set of nodes where the intermediate routing node is located as the second route path.
[0405] Optionally, in this embodiment, when the highest bit of the identifier of a network node in the first node set is 0 and the highest bit of the identifier of a network node in the second node set is 1, the connection relationship between the intermediate routing node and the final routing node can be determined in the following ways, but not limited to: If the intermediate routing node is in the first node set and the result of the bitwise XOR operation between the intermediate node identifier and the final node identifier is one of 001, 010, or 100, the connection relationship is determined to be a direct connection between the intermediate routing node and the final routing node; if the intermediate routing node is in the second node set and the result of the bitwise XOR operation between the intermediate node identifier and the final node identifier is 1, the connection relationship is determined to be a direct connection between the intermediate routing node and the final routing node. If the result of the XOR operation is one of 011, 010, or 100, the connection relationship is determined to be a direct connection between the intermediate routing node and the final routing node. If the intermediate routing node is in the first node set, and the result of the bitwise XOR operation between the intermediate node identifier and the final node identifier is a value other than 001, 010, or 100, the connection relationship is determined to be a non-direct connection between the intermediate routing node and the final routing node. If the intermediate routing node is in the second node set, and the result of the bitwise XOR operation between the intermediate node identifier and the final node identifier is a value other than 011, 010, or 100, the connection relationship is determined to be a non-direct connection between the intermediate routing node and the final routing node.
[0406] Optionally, in this embodiment, the shortest route path can be calculated as the second route path based on the connection relationship and the set of nodes where the intermediate routing nodes are located, but not limited to the following methods: when the connection relationship is a direct connection between the intermediate routing node and the final routing node, the second route path is determined to be a direct route to the final routing node; when the connection relationship is not a direct connection between the intermediate routing node and the final routing node, the next hop is determined based on the result of the bitwise XOR operation between the intermediate node identifier and the final node identifier and the set of nodes where the intermediate routing node is located; the final routing node is determined as the last hop, wherein the second route path includes the next hop and the last hop.
[0407] Optionally, in this embodiment, when the highest bit of the network node identifier in the first node set is 0 and the highest bit of the network node identifier in the second node set is 1, the next hop can be determined, but is not limited to, using the following method based on the result of the bitwise XOR operation between the intermediate node identifier and the final node identifier, and the node set where the intermediate routing node is located: If the intermediate routing node is in the first node set and the operation result is 110 or 011, or if the intermediate routing node is in the second node set and the operation result is 110, the operation result is split into two one-hot codes; a target one-hot code is randomly selected from the two one-hot codes; the intermediate node identifier and the target one-hot code are bitwise XORed to obtain the next hop identifier; if the intermediate routing node is in the first node set and the operation result is 101, the operation result is split into 001 and 100; the intermediate node identifier and 001 are bitwise XORed to obtain the next hop identifier, wherein the result of the bitwise XOR operation between the next hop identifier and 100 is the final node identifier; if the intermediate routing node is in the second node set and the operation result is 101, the next hop identifier is determined by... The operation result is split into 100 and 001; the intermediate node identifier is XORed with 100 to obtain the next hop identifier, where the result of the XOR operation between the next hop identifier and 001 is the final node identifier; if the intermediate routing node is in the second node set and the operation result is 001, the operation result is split into 010 and 011; a target code is randomly selected from 010 and 011; the intermediate node identifier is XORed with the target code to obtain the next hop identifier; if the intermediate routing node is in the first node set and the operation result is 001, the operation result is split into 010 and 011. If the result is 111, the operation result is split into 100 and 011; the intermediate node identifier is XORed with 100 to obtain the next hop identifier, where the result of the bitwise XOR operation between the next hop identifier and 011 is the final node identifier; if the intermediate routing node is in the second node set and the operation result is 111, the operation result is split into 011 and 100; the intermediate node identifier is XORed with 011 to obtain the next hop identifier, where the result of the bitwise XOR operation between the next hop identifier and 100 is the final node identifier.
[0408] In an optional implementation, taking N=3 as an example, a routing method is provided under the above-mentioned interconnected network topology, where each network node is represented as (i,j), where i is the number of the three-dimensional cube to which the network node belongs, and j is the binary number of the network node; assuming the source routing node S = (i S j S ), target routing node D = (i D j D This routing method includes the following steps:
[0409] Step 1: Determine iS and i D Are they equal? If i S =i D This indicates that S and D are within the same improved 3D cube. S can reach D in one step within the improved 3D cube, using the same routing method as in the 3D cube described above. The routing ends there. If i S ≠i D This indicates that S and D are not in the same triangle, so proceed to the second step.
[0410] Step 2: i S ≠i D If they are not equal: S is first routed to the improved 3D cube where D is located, and the routing method is the same as that in the 3D cube. The routing ends.
[0411] In another optional implementation, taking N=4 as an example, another routing method is provided under the above interconnection network topology, where each network node is represented as (i, j), where i is the number of the three-dimensional cube to which the network node belongs, and j is the binary number of the network node; assuming the source routing node S = (i S j S ), target routing node D = (i D j D This routing method includes the following steps:
[0412] Step 1: Determine i S and i D Are they equal? If i S =i D This indicates that S and D are within the same improved 3D cube. S can reach D in one step within the 3D cube, using the same routing method as described in the 3D cube. The routing ends here. If i S ≠i D This indicates that S and D are not in the same triangle, so proceed to the second step.
[0413] Step 2: i S ≠i D If they are not equal: S is first routed to the improved 3D cube where D is located, and the routing method is the same as that in the 3D cube. The routing ends.
[0414] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods according to the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation method. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk) and includes several instructions to cause a terminal device (which may be a mobile phone, computer, server, or network device, etc.) to execute the methods described in the various embodiments of this application.
[0415] This embodiment also provides a routing device for a multidimensional hypercube interconnection network, which is used to implement the above embodiments and preferred embodiments; details already described will not be repeated. As used below, the term "module" can refer to a combination of software and / or hardware that performs a predetermined function. Although the device described in the following embodiments is preferably implemented in software, hardware implementation, or a combination of software and hardware, is also possible and contemplated.
[0416] Figure 29 This is a structural block diagram of a routing device for a multidimensional hypercube interconnection network according to an embodiment of this application, as shown below. Figure 29 As shown, the multidimensional hypercube interconnect network includes 2 N There are 2^N network nodes, where N is the dimension of the multidimensional hypercube interconnection network, which is divided into 2^N network nodes. N-3 There are 2 subnetworks, where N is a positive integer greater than 2; the 2 N-3 Each subnetwork in the target subnetwork includes 8 target network nodes. These 8 target network nodes are divided into a first node set and a second node set. Each of the first and second node sets includes 4 target network nodes. The 4 target network nodes in the first node set are connected one-to-one with the 4 target network nodes in the second node set. The 4 target network nodes in the first node set are connected in a ring. The 4 target network nodes in the second node set include a first network node, a second network node, a third network node, and a fourth network node. The first network node is connected to the third and fourth network nodes, and the second network node is also connected to the third and fourth network nodes. The routing device is used to route from a starting routing node in the target subnetwork to a final routing node in the target subnetwork. The device includes:
[0417] The detection module 2902 is used to detect path information of the shortest route from the starting route node to the final route node based on the starting node identifier of the starting route node, the final node identifier of the final route node, and the node set where the starting route node is located, wherein the path information is used to indicate the number of route hops of the shortest route path.
[0418] The planning module 2904 is used to plan a target route path based on the set of nodes where the starting route node is located and the set of nodes where the final route node is located, when the path information indicates that the shortest route path is a two-hop route path, wherein the target route path is a route path with at least two hops.
[0419] The routing module 2906 is used to route from the starting routing node to the final routing node according to the target routing path.
[0420] Through the above steps, for each target sub-network, its eight target network nodes are divided into a first node set and a second node set. The four target network nodes in the first node set are connected in a ring. The four target network nodes in the second node set include the first, second, third, and fourth network nodes. By connecting the first, third, and fourth network nodes, and the second, third, and fourth network nodes, the network diameter among the eight target network nodes in each target sub-network is shortened from the traditional 3 to 2 under this connection method. This reduces the network diameter of each target sub-network and, consequently, the network diameter of the entire interconnected network. When routing within each target sub-network, routing to other network nodes requires at most two hops. For cases requiring two hops, the target routing path is planned based on the node sets of the starting and ending routing nodes. The planned target routing path is a routing path with at least two hops, thus avoiding deadlock. Therefore, this solves the technical problem of potential deadlock in the routing process in related technologies, achieving the technical effect of avoiding deadlock in the routing process.
[0421] As an optional implementation, the device is further used for:
[0422] The target set relationship between the starting routing node and the final routing node is determined based on the node set where the starting routing node is located and the node set where the final routing node is located.
[0423] Find the target routing rule corresponding to the target set relationship from the set relationships and routing rules with corresponding relationships; plan the target routing path according to the target routing rule.
[0424] As an optional implementation, the device is further used for:
[0425] If the set of nodes where the starting routing node is located is the first set of nodes, and the set of nodes where the final routing node is located is the first set of nodes, then the target set relationship is determined to be the first set relationship, wherein the first set relationship is used to indicate that all routing nodes are located in the first set of nodes;
[0426] If the set of nodes where the starting routing node is located is the second set of nodes, and the set of nodes where the final routing node is located is the second set of nodes, then the target set relationship is determined to be the second set relationship, wherein the second set relationship is used to indicate that all routing nodes are located in the second set of nodes;
[0427] If the set of nodes where the starting routing node is located is the first set of nodes and the set of nodes where the final routing node is located is the second set of nodes, or if the set of nodes where the starting routing node is located is the second set of nodes and the set of nodes where the final routing node is located is the first set of nodes, then the target set relationship is determined to be a third set relationship, wherein the third set relationship is used to indicate that the routing nodes are located in different set of nodes.
[0428] As an optional implementation, the apparatus is further configured to: determine the target routing rule as a first routing rule when the target set relationship is the first set relationship, wherein the first routing rule is used to instruct the planning of a routing path within the first node set according to the routing direction corresponding to the current starting routing node;
[0429] When the target set relationship is the second set relationship, the target routing rule is determined to be the second routing rule, wherein the second routing rule is used to indicate that a routing path is planned within the second node set according to the routing direction corresponding to the current starting routing node;
[0430] When the target set relationship is the third set relationship, the target routing rule is determined to be the third routing rule. The third routing rule is used to instruct the first hop to route to the reference routing node in the node set where the final routing node is located, which is directly connected to the starting routing node, and then use the reference routing node as the current starting routing node to plan the routing path according to the first routing rule or the second routing rule.
[0431] As an optional implementation, the apparatus is further configured to: determine the target routing direction based on the starting node identifier when the target routing rule is the first routing rule;
[0432] According to the target routing direction, the next hop routing node is obtained from the first node set, and the final routing node is determined as the last hop routing node to obtain the target routing path.
[0433] As an optional implementation, the device is further configured to: when N is 3, the 2 N The identifier of each network node is a three-bit binary number. In the first set of nodes, the highest bit of the identifier of each network node is 0, and in the second set of nodes, the highest bit of the identifier of each network node is 1.
[0434] If the starting node is identified as 100 or 111, the target routing direction is determined to be the first routing direction.
[0435] If the starting node is identified as 101 or 110, the target routing direction is determined to be the second routing direction, wherein the second routing direction is opposite to the first routing direction.
[0436] As an optional implementation, the apparatus is further configured to: when the target routing rule is the second routing rule, obtain the next-hop routing node from the second node set according to the starting routing node;
[0437] The final routing node is determined as the routing node for the last hop, thus obtaining the target routing path.
[0438] As an optional implementation, the apparatus is further configured to: determine the third network node as the next-hop routing node when the starting routing node is the first network node;
[0439] If the starting routing node is the second network node, the fourth network node is determined as the next-hop routing node;
[0440] If the starting routing node is the third network node, the first network node is determined as the routing node for the next hop.
[0441] If the starting routing node is the fourth network node, the second network node is determined as the next-hop routing node.
[0442] As an optional implementation, the apparatus is further configured to: determine the reference routing node as the routing node of the first hop when the target routing rule is the third routing rule;
[0443] Determine the reference route direction in the node set where the reference route node is located based on the reference route node;
[0444] According to the reference routing direction, a reference routing path from the reference routing node to the final routing node is planned in the node set where the reference routing node is located, and the target routing path is obtained.
[0445] As an optional implementation, the apparatus is further configured to: when the reference routing node is located in the first node set:
[0446] If the reference node identifier of the reference routing node is 100 or 111, the reference routing direction is determined to be the third routing direction;
[0447] When the reference node is identified as 101 or 110, the reference routing direction is determined to be the fourth routing direction, wherein the fourth routing direction is opposite to the third routing direction;
[0448] Where N is 3, the 2 N Each network node is identified by a three-bit binary number. The highest bit of the identifier of each network node in the first set of nodes is 0, and the highest bit of the identifier of each network node in the second set of nodes is 1.
[0449] As an optional implementation, the apparatus is further configured to: when the reference routing node is located in the second node set:
[0450] When the reference routing node is the first network node, the direction in which the third network node is located is determined as the reference routing direction;
[0451] If the reference routing node is the second network node, the direction in which the fourth network node is located is determined as the reference routing direction;
[0452] When the reference routing node is the third network node, the direction in which the first network node is located is determined as the reference routing direction;
[0453] When the reference routing node is the fourth network node, the direction in which the second network node is located is determined as the reference routing direction.
[0454] As an optional implementation, the device is further used for:
[0455] The routing node that is directly connected to the reference routing node in the reference routing direction is determined as the routing node of the second hop;
[0456] If the routing node of the second hop is the final routing node, the routing path of the starting routing node, the reference routing path and the final routing node connected in sequence is determined as the target routing path;
[0457] If the routing node of the second hop is not the final routing node, the routing path of the starting routing node, the reference routing path, the routing node of the second hop and the final routing node connected in sequence is determined as the target routing path.
[0458] As an optional implementation, the device is further configured to: determine the connection relationship between the starting routing node and the final routing node based on the starting node identifier, the final node identifier, and the node set where the starting routing node is located;
[0459] The path information is determined based on the connection relationship.
[0460] As an optional implementation, the device is further configured to: perform a bitwise XOR operation on the starting node identifier and the final node identifier to obtain the operation result;
[0461] The connection relationship is determined based on the calculation result and the set of nodes where the starting routing node is located.
[0462] As an optional implementation, the apparatus is further configured to: when N is 3, the highest bit of the identifier of the network node in the first node set is 0, and the highest bit of the identifier of the network node in the second node set is 1:
[0463] If the starting routing node is in the first node set and the calculation result is one of 001, 010, or 100, the connection relationship is determined to be a direct connection between the starting routing node and the final routing node.
[0464] If the starting routing node is in the second node set and the calculation result is one of 011, 010, or 100, the connection relationship is determined to be a direct connection between the starting routing node and the final routing node.
[0465] If the starting routing node is in the first node set and the calculation result is a value other than 001, 010, and 100, the connection relationship is determined to be that there is no direct connection between the starting routing node and the final routing node.
[0466] If the starting routing node is in the second node set and the calculation result is a value other than 011, 010, or 100, the connection relationship is determined to be that there is no direct connection between the starting routing node and the final routing node.
[0467] As an optional implementation, the apparatus is further configured to: determine, when the connection relationship is a direct connection between the starting routing node and the final routing node, the path information used to indicate that the shortest routing path is a one-hop routing path;
[0468] When the connection relationship is such that there is no direct connection between the starting routing node and the final routing node, the path information is determined to indicate that the shortest routing path is a two-hop routing path.
[0469] It should be noted that the above modules can be implemented by software or hardware. For the latter, they can be implemented in the following ways, but are not limited to: all the above modules are located in the same processor; or, the above modules are located in different processors in any combination.
[0470] Embodiments of this application also provide a computer-readable storage medium storing a computer program, wherein the computer program is configured to execute the steps in any of the above method embodiments when run.
[0471] In one exemplary embodiment, the aforementioned computer-readable storage medium may include, but is not limited to, various media capable of storing computer programs, such as a USB flash drive, read-only memory (ROM), random access memory (RAM), portable hard disk, magnetic disk, or optical disk.
[0472] Embodiments of this application also provide an electronic device, including a memory and a processor, wherein the memory stores a computer program and the processor is configured to run the computer program to perform the steps in any of the above method embodiments.
[0473] In one exemplary embodiment, the electronic device may further include a transmission device and an input / output device, wherein the transmission device is connected to the processor and the input / output device is connected to the processor.
[0474] Embodiments of this application also provide a computer program product, which includes a computer program that, when executed by a processor, implements the steps in any of the above method embodiments.
[0475] Embodiments of this application also provide another computer program product, including a non-volatile computer-readable storage medium storing a computer program that, when executed by a processor, implements the steps in any of the above method embodiments.
[0476] Embodiments of this application also provide a computer program that includes computer instructions stored in a computer-readable storage medium; a processor of a computer device reads the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the computer device to perform the steps in any of the above method embodiments.
[0477] Specific examples in this embodiment can be found in the examples described in the above embodiments and exemplary implementations, and will not be repeated here.
[0478] Obviously, those skilled in the art should understand that the modules or steps of this application described above can be implemented using general-purpose computing devices. They can be centralized on a single computing device or distributed across a network of multiple computing devices. They can be implemented using computer-executable program code, and thus can be stored in a storage device for execution by a computing device. In some cases, the steps shown or described can be performed in a different order than those presented here, or they can be fabricated as separate integrated circuit modules, or multiple modules or steps can be fabricated as a single integrated circuit module. Thus, this application is not limited to any particular combination of hardware and software.
[0479] The above description is merely a preferred embodiment of this application and is not intended to limit this application. Various modifications and variations can be made to this application by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the principles of this application should be included within the protection scope of this application.
Claims
1. A routing method of a multi-dimensional hypercube interconnection network, characterized in that, A multi-dimensional hypercube interconnection network includes 2 N network nodes, N is the dimension of the multi-dimensional hypercube interconnection network, the multi-dimensional hypercube interconnection network is divided into 2 N-3 sub-networks, N is a positive integer greater than 2; each of the 2 N-3 sub-networks includes 8 target network nodes as a target sub-network, the 8 target network nodes included in the target sub-network are divided into a first node set and a second node set, the first node set and the second node set each include 4 target network nodes, the 4 target network nodes in the first node set are connected in one-to-one correspondence with the 4 target network nodes in the second node set; the 4 target network nodes in the first node set are connected in a ring, the 4 target network nodes in the second node set include a first network node, a second network node, a third network node and a fourth network node, the first network node is connected with the third network node and the fourth network node, and the second network node is connected with the third network node and the fourth network node; the routing method is used for routing from a start routing node in a target sub-network to an end routing node in the target sub-network, and the routing method comprises: detecting path information of a shortest routing path from the start routing node to the end routing node according to a start node identifier of the start routing node, an end node identifier of the end routing node, and a node set in which the start routing node is located, wherein the path information is used for indicating a routing hop number of the shortest routing path; in a case where the path information is used for indicating that the shortest routing path is a two-hop routing path, planning a target routing path according to the node set in which the start routing node is located and a node set in which the end routing node is located, wherein the target routing path is a routing path with at least two hops; routing from the start routing node to the end routing node according to the target routing path. 2.The method of claim 1, characterized in that, the planning of the target routing path according to the node set in which the start routing node is located and the node set in which the end routing node is located comprises: determining a target set relationship between the start routing node and the end routing node according to the node set in which the start routing node is located and the node set in which the end routing node is located; finding a target routing rule corresponding to the target set relationship from set relationships and routing rules having a corresponding relationship, and planning the target routing path according to the target routing rule. 3.The method of claim 2, characterized in that, the determining of the target set relationship between the start routing node and the end routing node according to the node set in which the start routing node is located and the node set in which the end routing node is located comprises: in a case where the node set in which the start routing node is located is a first node set, and the node set in which the end routing node is located is the first node set, determining that the target set relationship is a first set relationship, wherein the first set relationship is used for indicating that routing nodes are located in the first node set; in a case where the node set in which the start routing node is located is a second node set, and the node set in which the end routing node is located is the second node set, determining that the target set relationship is a second set relationship, wherein the second set relationship is used for indicating that routing nodes are located in the second node set; in a case where the node set in which the start routing node is located is the first node set and the node set in which the end routing node is located is the second node set, or the node set in which the start routing node is located is the second node set and the node set in which the end routing node is located is the first node set, determining that the target set relationship is a third set relationship, wherein the third set relationship is used for indicating that routing nodes are located in different node sets. 4.The method of claim 3, characterized in that, The target routing rule corresponding to the target set relation is found from the set relation with the corresponding relation and the routing rule, and the target routing rule comprises: In a case where the target set relation is the first set relation, the target routing rule is determined as a first routing rule, wherein the first routing rule is used to indicate that a routing path is planned in the first node set according to a routing direction corresponding to a current starting routing node; In a case where the target set relation is the second set relation, the target routing rule is determined as a second routing rule, wherein the second routing rule is used to indicate that a routing path is planned in the second node set according to a routing direction corresponding to a current starting routing node; In a case where the target set relation is the third set relation, the target routing rule is determined as a third routing rule, wherein the third routing rule is used to indicate that, after a first-hop routing to a reference routing node directly connected to the starting routing node in a node set in which the final routing node is located, the reference routing node is taken as a current starting routing node to plan a routing path according to the first routing rule or the second routing rule.
5. The method of claim 4, wherein the target routing path is planned according to the target routing rule, and the target routing path comprises: In a case where the target routing rule is the first routing rule, a target routing direction is determined according to the starting node identifier; A next-hop routing node is obtained in the first node set according to the target routing direction, and the final routing node is determined as a last-hop routing node to obtain the target routing path.
6. The method of claim 5, wherein in a case where the starting node identifier is 100 or 111, the target routing direction is determined as a first routing direction; In a case where the starting node identifier is 101 or 110, the target routing direction is determined as a second routing direction, wherein the second routing direction is opposite to the first routing direction. In the case that N is 3, the identity of the network nodes is a three-bit binary number, the highest bit of the identity of the network nodes in the first node set is 0, and the highest bit of the identity of the network nodes in the second node set is 1, the method further comprises the following steps of: N determining the target routing direction according to the starting node identity, comprising:
7. The method of claim 4, wherein the target routing path is planned according to the target routing rule, and the target routing path comprises: In a case where the target routing rule is the second routing rule, a next-hop routing node is obtained in the second node set according to the starting routing node; The final routing node is determined as a last-hop routing node to obtain the target routing path.
8. The method of claim 7, wherein the next-hop routing node is obtained in the second node set according to the starting routing node, and the next-hop routing node comprises: In a case where the starting routing node is the first network node, the third network node is determined as the next-hop routing node; In a case where the starting routing node is the second network node, the fourth network node is determined as the next-hop routing node; In a case where the starting routing node is the third network node, the first network node is determined as the next-hop routing node; In a case that the starting routing node is the fourth network node, the second network node is determined as the routing node of the next hop.
9. The method of claim 4, wherein, the planning the target routing path according to the target routing rule comprises: in a case that the target routing rule is the third routing rule, the reference routing node is determined as the routing node of the first hop; determining a reference routing direction in a node set in which the reference routing node is located according to the reference routing node; planning a reference routing path from the reference routing node to the final routing node in the node set in which the reference routing node is located according to the reference routing direction, to obtain the target routing path.
10. The method of claim 9, wherein, in a case that the reference routing node is located in the first node set, the determining the reference routing direction in the node set in which the reference routing node is located according to the reference routing node comprises: in a case that a reference node identifier of the reference routing node is 100 or 111, the reference routing direction is determined as a third routing direction; in a case that the reference node identifier is 101 or 110, the reference routing direction is determined as a fourth routing direction, wherein the fourth routing direction is opposite to the third routing direction. wherein N is 3, the identity of the 2 N network nodes is a three-bit binary number, the identities of the network nodes in the first node set all have a highest bit of 0, and the identities of the network nodes in the second node set all have a highest bit of 1.
11. The method of claim 9, wherein, in a case that the reference routing node is located in the second node set, the determining the reference routing direction in the node set in which the reference routing node is located according to the reference routing node comprises: in a case that the reference routing node is the first network node, a direction in which the third network node is located is determined as the reference routing direction; in a case that the reference routing node is the second network node, a direction in which the fourth network node is located is determined as the reference routing direction; in a case that the reference routing node is the third network node, a direction in which the first network node is located is determined as the reference routing direction; in a case that the reference routing node is the fourth network node, a direction in which the second network node is located is determined as the reference routing direction.
12. The method of claim 9, wherein, the planning the reference routing path from the reference routing node to the final routing node in the node set in which the reference routing node is located according to the reference routing direction, to obtain the target routing path, comprises: a routing node directly connected with the reference routing node in the reference routing direction is determined as the routing node of the second hop; in a case that the routing node of the second hop is the final routing node, a routing path sequentially connecting the starting routing node, the reference routing path and the final routing node is determined as the target routing path. In a case that the second-hop routing node is not the final routing node, a routing path of the start routing node, the reference routing path, the second-hop routing node and the final routing node connected in sequence is determined as the target routing path.
13. The method of claim 1, wherein, the detecting the path information of the shortest routing path from the start routing node to the final routing node according to the start node identifier of the start routing node, the final node identifier of the final routing node and the node set in which the start routing node is located comprises: determining a connection relationship between the start routing node and the final routing node according to the start node identifier, the final node identifier and the node set in which the start routing node is located; determining the path information according to the connection relationship.
14. The method of claim 13, wherein, the determining the connection relationship between the start routing node and the final routing node according to the start node identifier, the final node identifier and the node set in which the start routing node is located comprises: performing an exclusive-OR operation on the start node identifier and the final node identifier to obtain an operation result; determining the connection relationship according to the operation result and the node set in which the start routing node is located.
15. The method of claim 14, wherein, in a case that N is 3, the highest bit of the identifier of the network node in the first node set is 0 and the highest bit of the identifier of the network node in the second node set is 1, the determining the connection relationship according to the operation result and the node set in which the start routing node is located comprises: in a case that the start routing node is in the first node set and the operation result is one of 001, 010 and 100, determining that the connection relationship is a direct connection between the start routing node and the final routing node; in a case that the start routing node is in the second node set and the operation result is one of 011, 010 and 100, determining that the connection relationship is a direct connection between the start routing node and the final routing node; in a case that the start routing node is in the first node set and the operation result is a value other than 001, 010 and 100, determining that the connection relationship is no direct connection between the start routing node and the final routing node; in a case that the start routing node is in the second node set and the operation result is a value other than 011, 010 and 100, determining that the connection relationship is no direct connection between the start routing node and the final routing node.
16. The method of claim 13, wherein, the determining the path information according to the connection relationship comprises: in a case that the connection relationship is a direct connection between the start routing node and the final routing node, determining that the path information is used to indicate that the shortest routing path is a one-hop routing path. In a case where the connection relationship is not a direct connection between the start routing node and the end routing node, the path information is determined to indicate that the shortest routing path is a two-hop routing path. 17.A routing device of a multi-dimensional hypercube interconnection network, comprising: A multi-dimensional hypercube interconnection network includes 2 N network nodes, N is the dimension of the multi-dimensional hypercube interconnection network, the multi-dimensional hypercube interconnection network is divided into 2 N-3 sub-networks, N is a positive integer greater than 2; each of the 2 N-3 sub-networks includes 8 target network nodes as a target sub-network, the 8 target network nodes included in the target sub-network are divided into a first node set and a second node set, the first node set and the second node set each include 4 target network nodes, the 4 target network nodes in the first node set are connected in one-to-one correspondence with the 4 target network nodes in the second node set; the 4 target network nodes in the first node set are connected in a ring, the 4 target network nodes in the second node set include a first network node, a second network node, a third network node and a fourth network node, the first network node is connected with the third network node and the fourth network node, and the second network node is connected with the third network node and the fourth network node; The routing device is configured to route from a start routing node in a target sub-network to an end routing node in the target sub-network, and comprises: a detection module configured to detect path information of a shortest routing path from the start routing node to the end routing node according to a start node identifier of the start routing node, an end node identifier of the end routing node, and a node set in which the start routing node is located, wherein the path information is configured to indicate a routing hop number of the shortest routing path; a planning module configured to plan a target routing path according to the node set in which the start routing node is located and a node set in which the end routing node is located in a case where the path information indicates that the shortest routing path is a two-hop routing path, wherein the target routing path is at least a two-hop routing path; a routing module configured to route from the start routing node to the end routing node according to the target routing path. 18.A computer readable storage medium, comprising: The computer readable storage medium stores a computer program, wherein the computer program is configured to implement the steps of the method in any one of claims 1 to 16 when executed by a processor. 19.An electronic device, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein: The processor is configured to implement the steps of the method in any one of claims 1 to 16 when executing the computer program. 20.A computer program product, comprising a computer program, wherein: The computer program is configured to implement the steps of the method in any one of claims 1 to 16 when executed by a processor.
Citation Information
Patent Citations
Three-dimensional hypercube structure network and routing method, device, equipment and medium thereof
CN117811993A
Multicast communication method and device, electronic equipment and storage medium
CN118972189A