Routing method and device for multi-dimensional hypercube interconnection network

By dividing node sets in a multi-dimensional hypercube interconnect network and realizing ring connections, the problem of deadlock during routing is solved, and the reliability and data transmission efficiency of the network are improved.

CN120151272AActive Publication Date: 2025-06-13SHANDONG YUNHAI GUOCHUANG CLOUD COMPUTING EQUIP IND INNOVATION CENT CO LTD
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
CN202510494400.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-04-18
Publication Date
2025-06-13
Estimated Expiration
2045-04-18

AI Technical Summary

Technical Problem

Multi-dimensional hypercube interconnected networks are prone to deadlocks during routing, resulting in network paralysis and affecting data transmission.

Method used

By dividing the network nodes in the multi-dimensional hypercube interconnection network into a first node set and a second node set, and implementing a specific ring connection method in each subnet, the network diameter is reduced, thereby avoiding deadlock.

Benefits of technology

It effectively avoids deadlock during routing and improves network reliability and data transmission efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120151272A_ABST
    Figure CN120151272A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a multi-dimensional hypercube interconnection network routing method and device, and the method comprises the steps: carrying out the routing of a multi-dimensional hypercube interconnection network according to an initial node identifier of an initial routing node, a final node identifier of a final routing node, and a node set where the initial routing node is located; detecting path information of the shortest routing path from the starting routing node to the final routing node, the path information being used for indicating the routing hop count of the shortest routing path; under the condition that the path information is used for indicating that the shortest routing path is a two-hop routing path, a target routing path is planned according to a node set where the initial routing node is located and a node set where the final routing node is located, and the target routing path is a routing path with at least two hops; and routing from the starting routing node to the final routing node according to the target routing path. According to the method and the device, the technical problem that a deadlock phenomenon possibly occurs in the routing process is solved, and the technical effect of avoiding the deadlock phenomenon in the routing process is achieved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments of the present application relate to the field of computers, and in particular, to a routing method and device for a multi-dimensional hypercube interconnection network. Background Art

[0002] With the rapid popularization and development of the Internet and the continuous deployment of the satellite Internet constellation plan, more user terminals are connected to the network, giving rise to Internet applications covering all fields of people's production and life. The traffic on the Internet has shown an explosive growth trend. In order to improve the performance of the information exchange network and meet the emerging new applications and service requirements, it is necessary to study a switching network with larger capacity and better performance and a high-performance scheduling algorithm adapted thereto.

[0003] The interconnection network is the key to constructing a high-performance large-scale parallel processing system. Its design goal is to connect a certain number of functional nodes together at a relatively low cost, reliably and efficiently to form a cost-effective large-scale parallel system. Currently, the hypercube method is used to construct the topology structure in the interconnection network. However, the routing algorithm used in the current multi-dimensional hypercube interconnection network is prone to deadlock when routing a routing request that forms a loop. Once deadlock occurs, it may lead to the paralysis of the interconnection network and affect data transmission.

[0004] In view of the problem that deadlock may occur in the routing process of the multi-dimensional hypercube interconnection network in the related art, no effective solution has been proposed yet. Summary of the Invention

[0005] The embodiments of the present application provide a routing method and device for a multi-dimensional hypercube interconnection network, so as to at least solve the problem that deadlock may occur in the routing process in the related art.

[0006] According to an embodiment of the present application, a routing method for a multi-dimensional hypercube interconnection network is provided. The multi-dimensional hypercube interconnection network includes 2 N network nodes, where 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, and N is a positive integer greater than 2; the 2 N-3Each sub-network in a sub-network group serves as a target sub-network and includes 8 target network nodes. The 8 target network nodes included in the target sub-network are divided into a first node set and a second node set. Each of the first node set and the second node set includes 4 target network nodes. The 4 target network nodes in the first node set are connected to the 4 target network nodes in the second node set in a one-to-one correspondence. The 4 target network nodes in the first node set are connected in sequence to form 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. The second network node is connected to the third network node and the fourth network node. The routing method is used to route from a starting routing node in the target sub-network to a final routing node in the target sub-network. The routing method includes:

[0007] Detect path information of the shortest routing path from the starting routing node to the final routing node according to 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 is used to indicate the number of routing hops of the shortest routing path.

[0008] In the case where the path information is used to indicate that the shortest routing path is a two-hop routing path, plan a target routing path according to the node set where the starting routing node is located and the node set where the final routing node is located. The target routing path is a routing path with at least two hops.

[0009] Route from the starting routing node to the final routing node according to the target routing path.

[0010] As an optional implementation manner, the planning of the target routing path according to the node set where the starting routing node is located and the node set where the final routing node is located includes:

[0011] Determine the target set relationship between the starting routing node and the final routing node according to 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 alternative implementation, determining the target set relationship between the starting routing node and the final routing node according to the node set where the starting routing node is located and the node set where the final routing node is located includes:

[0014] When the node set where the starting routing node is located is the first node set and the node set where the final routing node is located is the first node set, determining that the target set relationship is the first set relationship, where the first set relationship is used to indicate that the routing nodes are all located in the first node set;

[0015] When the node set where the starting routing node is located is the second node set and the node set where the final routing node is located is the second node set, determining that the target set relationship is the second set relationship, where the second set relationship is used to indicate that the routing nodes are all located in the second node set;

[0016] When the node set where the starting routing node is located is the first node set and the node set where the final routing node is located is the second node set, or when the node set where the starting routing node is located is the second node set and the node set where the final routing node is located is the first node set, determining that the target set relationship is the third set relationship, where the third set relationship is used to indicate that the routing nodes are located in different node sets.

[0017] As an alternative implementation, finding 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, determining that the target routing rule is the first routing rule, where the first routing rule is used to indicate planning a routing path in 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, determining that the target routing rule is the second routing rule, where the second routing rule is used to indicate planning a routing path in 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, determine the target routing rule as the third routing rule, where the third routing rule is used to indicate that the first hop routes to a reference routing node directly connected to the starting routing node in the node set where the final routing node is located, and then uses the reference routing node as the current starting routing node to plan a routing path according to the first routing rule or the second routing rule.

[0021] As an optional implementation manner, planning the target routing path according to the target routing rule includes:

[0022] When the target routing rule is the first routing rule, determine a target routing direction according to the starting node identifier;

[0023] Obtain the next-hop routing node in 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.

[0024] As an optional implementation manner, when N is 3, the N identifiers of the 2

[0025] network nodes are three-bit binary numbers, the highest bits of the identifiers of the network nodes in the first node set are all 0, and the highest bits of the identifiers of the network nodes in the second node set are all 1, determining the target routing direction according to the starting node identifier includes:

[0026] When the starting node identifier is 100 or 111, determine the target routing direction as the first routing direction;

[0027] When the starting node identifier is 101 or 110, determine the target routing direction as the second routing direction, where the second routing direction is opposite to the first routing direction.

[0028] As an optional implementation manner, planning the target routing path according to the target routing rule includes:

[0029] When the target routing rule is the second routing rule, obtain the next-hop routing node in the second node set according to the starting routing node;

[0030] As an optional implementation manner, obtaining the next-hop routing node in the second node set according to the starting routing node includes:

[0031] When the starting routing node is the first network node, determine the third network node as the next-hop routing node;

[0032] When the starting routing node is the second network node, determine the fourth network node as the next-hop routing node;

[0033] When the starting routing node is the third network node, determine the first network node as the next-hop routing node;

[0034] When the starting routing node is the fourth network node, determine the second network node as the next-hop routing node.

[0035] As an optional implementation manner, planning the target routing path according to the target routing rule includes:

[0036] When the target routing rule is the third routing rule, determine the reference routing node as the routing node of the first hop;

[0037] Determine the reference routing direction in the node set where the reference routing node is located according to the reference routing node;

[0038] 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 to obtain the target routing path.

[0039] As an optional implementation manner, 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 according to the reference routing node includes:

[0040] When the reference node identifier of the reference routing node is 100 or 111, determine the reference routing direction as the third routing direction;

[0041] When the reference node identifier is 101 or 110, determine the reference routing direction as the fourth routing direction, where the fourth routing direction is opposite to the third routing direction;

[0042] Where N is 3, the identifiers of the 2 N network nodes are three-bit binary numbers, the highest bits of the identifiers of the network nodes in the first node set are all 0, and the highest bits of the identifiers of the network nodes in the second node set are all 1.

[0043] As an alternative 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 according to the reference routing node includes:

[0044] When the reference routing node is the first network node, determining the direction where the third network node is located as the reference routing direction;

[0045] When the reference routing node is the second network node, determining the direction where the fourth network node is located as the reference routing direction;

[0046] When the reference routing node is the third network node, determining the direction where the first network node is located as the reference routing direction;

[0047] When the reference routing node is the fourth network node, determining the direction where the second network node is located as the reference routing direction.

[0048] As an alternative implementation, 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 to obtain the target routing path includes:

[0049] Determining the routing node directly connected to the reference routing node in the reference routing direction as the routing node of the second hop;

[0050] When the routing node of the second hop is the final routing node, determining the routing path connecting the starting routing node, the reference routing path, and the final routing node in sequence as the target routing path;

[0051] When the routing node of the second hop is not the final routing node, determining the routing path connecting the starting routing node, the reference routing path, the routing node of the second hop, and the final routing node in sequence as the target routing path.

[0052] As an alternative implementation, detecting the path information of the shortest routing path from the starting routing node to the final routing node according to 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 includes:

[0053] Determining the connection relationship between the starting routing node and the final routing node according to the starting node identifier, the final node identifier, and the node set where the starting routing node is located;

[0054] Determine the path information according to the connection relationship.

[0055] As an optional implementation manner, the determining the connection relationship between the starting routing node and the ending routing node according to the starting node identifier, the ending node identifier, and the node set where the starting routing node is located includes:

[0056] Perform a bitwise exclusive OR operation on the starting node identifier and the ending node identifier to obtain an operation result;

[0057] Determine the connection relationship according to the operation result and the node set where the starting routing node is located.

[0058] As an optional implementation manner, 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 determining the connection relationship according to the operation result and the node set where the starting routing node is located includes:

[0059] When the starting routing node is in the first node set and the operation result is one of 001, 010, and 100, determine that the connection relationship is a direct connection between the starting routing node and the ending routing node;

[0060] When the starting routing node is in the second node set and the operation result is one of 011, 010, and 100, determine that the connection relationship is a direct connection between the starting routing node and the ending routing node;

[0061] When the starting routing node is in the first node set and the operation result is a value other than 001, 010, and 100, determine that the connection relationship is not a direct connection between the starting routing node and the ending routing node;

[0062] When the starting routing node is in the second node set and the operation result is a value other than 011, 010, and 100, determine that the connection relationship is not a direct connection between the starting routing node and the ending routing node.

[0063] As an optional implementation manner, the determining the path information according to the connection relationship includes:

[0064] When the connection relationship is a direct connection between the starting routing node and the ending routing node, determine that the path information is used 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, determine that the path information is used to indicate that the shortest routing path is a two-hop routing path.

[0066] According to another embodiment of the present application, a routing device for a multi-dimensional hypercube interconnection network is provided. The multi-dimensional hypercube interconnection network includes 2 N network nodes, where N is the dimension of the multi-dimensional hypercube interconnection network, and the multi-dimensional hypercube interconnection network is divided into 2 N-3 sub-networks, where N is a positive integer greater than 2; each of the 2 N-3 sub-networks serves as a target sub-network and includes 8 target network nodes. 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, and the 4 target network nodes in the first node set are connected to the 4 target network nodes in the second node set in one-to-one correspondence; the 4 target network nodes in the first node set are sequentially connected in a ring, and 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;

[0067] The routing device is used to route from a starting routing node in the target sub-network to a final routing node in the target sub-network. The routing device includes:

[0068] A detection module, configured to detect path information of the shortest routing path from the starting routing node to the final routing node according to 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, where the path information is used to indicate the routing hop count of the shortest routing path;

[0069] A planning module, configured to plan a target routing path according to the node set where the starting routing node is located and the node set where the final routing node is located when the path information is used to indicate that the shortest routing path is a two-hop routing path, where the target routing path is a routing path with at least two hops;

[0070] A routing module, configured to route from the starting routing node to the final routing node according to the target routing path.

[0071] According to another embodiment of the present application, there is also provided a computer-readable storage medium storing a computer program, wherein the computer program is configured to execute the steps in any one of the above method embodiments when running.

[0072] According to another embodiment of the present application, there is also provided an electronic device including a memory and a processor, where the memory stores a computer program, and the processor is configured to run the computer program to execute the steps in any one of the above method embodiments.

[0073] According to another embodiment of the present application, there is also provided a computer program product including a computer program, where the computer program realizes the steps in any one of the above method embodiments when executed by a processor.

[0074] Through the present application and the above steps, for each target sub-network, the eight target network nodes included therein 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 sequence to form a ring. The four 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. By connecting the first network node to the third network node and the fourth network node, and connecting the second network node to the third network node and the fourth network node, the network diameter between the eight target network nodes in each target sub-network is reduced from the traditional 3 to 2 in this connection mode, thereby reducing the network diameter of each target sub-network, and further reducing the network diameter of the entire interconnected network. When routing in each target sub-network, it is possible to route to other network nodes in at most two hops. For the case where two hops are required for routing, the target routing path is planned according to 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 of at least two hops, thereby avoiding the phenomenon of deadlock in the planned target routing path. Therefore, the technical problem of possible deadlock in the routing process in the related art can be solved, and the technical effect of avoiding the phenomenon of deadlock in the routing process can be achieved. BRIEF DESCRIPTION OF THE DRAWINGS

[0075] Figure 1 is a structural block diagram of a topological structure of a multi-dimensional hypercube interconnected network according to an embodiment of the present application;

[0076] Figure 2 is a structural block of a topological structure of a three-dimensional hypercube interconnected network according to an embodiment of the present application Figure 1 ;

[0077] Figure 3 is a structural block of a topological structure of a three-dimensional hypercube interconnected network according to an embodiment of the present application Figure 2;

[0078] Figure 4 is the flowchart of a routing method for a multi - dimensional hypercube interconnection network according to an embodiment of the present application Figure 1 ;

[0079] Figure 5 is a schematic diagram of the routing process in a ring topology structure according to an embodiment of the present application;

[0080] Figure 6 is the flowchart of a routing method for a multi - dimensional hypercube interconnection network according to an embodiment of the present application Figure 2 ;

[0081] Figure 7 is the schematic of the routing process in a ring topology structure according to an embodiment of the present application Figure 1 ;

[0082] Figure 8 is the schematic of the routing process in a ring topology structure according to an embodiment of the present application Figure 2 ;

[0083] Figure 9 is the schematic of the routing process in a ring topology structure according to an embodiment of the present application Figure 3 ;

[0084] Figure 10 is the flowchart of a routing method for a multi - dimensional hypercube interconnection network according to an embodiment of the present application Figure 3 ;

[0085] Figure 11 is a schematic diagram of the path label of a sending path according to an embodiment of the present application;

[0086] Figure 12 is the schematic of a routing path according to an embodiment of the present application Figure 1 ;

[0087] Figure 13 is the schematic of the routing process in a ring topology structure according to an embodiment of the present application Figure 4 ;

[0088] Figure 14 is the schematic of the routing process in a ring topology structure according to an embodiment of the present application Figure 5 ;

[0089] Figure 15 is the schematic of the routing process in a ring topology structure according to an embodiment of the present application Figure 6 ;

[0090] Figure 16 is the schematic of a routing path according to an embodiment of the present application Figure 2 ;

[0091] Figure 17 It is a schematic diagram of the routing process in a ring topology structure according to an embodiment of the present application Figure 7 ;

[0092] Figure 18 It is a schematic diagram of the routing process in a ring topology structure according to an embodiment of the present application Figure 8 ;

[0093] Figure 19 It is a schematic diagram of the routing process in a ring topology structure according to an embodiment of the present application Figure 9 ;

[0094] Figure 20 It is a structural block diagram of the topology structure of a four - dimensional hypercube interconnection network according to an embodiment of the present application;

[0095] Figure 21 It is a structural block diagram of an inner - layer three - dimensional cube according to an embodiment of the present application

[0096] Figure 22 It is a structural block diagram of an outer - layer three - dimensional cube according to an embodiment of the present application

[0097] Figure 23 It is a schematic diagram of a routing method for a four - dimensional hypercube interconnection network according to an embodiment of the present application;

[0098] Figure 24 It is a structural block diagram of the topology structure of an interconnection network according to an embodiment of the present application;

[0099] Figure 25 It is a schematic diagram of a routing method for an interconnection network according to an embodiment of the present application Figure 1 ;

[0100] Figure 26 It is a schematic diagram of the construction process of the topology structure of an interconnection network according to an embodiment of the present application Figure 1 ;

[0101] Figure 27 It is a schematic diagram of the construction process of the topology structure of an interconnection network according to an embodiment of the present application Figure 2 ;

[0102] Figure 28 It is a schematic diagram of a routing method for an interconnection network according to an embodiment of the present application Figure 2 ;

[0103] Figure 29 It is a structural block diagram of a routing device for a multi - dimensional hypercube interconnection network according to an embodiment of the present application. Detailed implementation manners

[0104] Embodiments of the present application will be described in detail below with reference to the accompanying drawings and in conjunction with the embodiments.

[0105] It should be noted that the terms "first", "second", etc. in the specification and claims of the present application and the above-mentioned drawings are used to distinguish similar objects and do not necessarily need to describe a specific order or sequence.

[0106] In this embodiment, a topological structure of a multi-dimensional hypercube interconnection network is provided. Figure 1 It is a structural block diagram of a topological structure of a multi-dimensional hypercube interconnection network according to an embodiment of the present application, as Figure 1 shown. The multi-dimensional hypercube interconnection network includes 2 N network nodes, where 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, and N is a positive integer greater than 2; each of the 2 N-3 sub-networks serves as a target sub-network 10 and includes 8 target network nodes (10-0 to 10-7). 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 to the 4 target network nodes in the second node set in one-to-one correspondence; the 4 target network nodes (10-4 to 10-7) in the first node set are sequentially connected in a ring. The 4 target network nodes in the second node set include a first network node 10-0, a second network node 10-1, a third network node 10-2, and a 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, and the second network node 10-1 is connected to the third network node 10-2 and the fourth network node 10-3.

[0107] With this topological structure, for each target sub-network, the 8 target network nodes it includes are divided into a first node set and a second node set. The 4 target network nodes in the first node set are sequentially 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. By connecting the first network node to the third network node and the fourth network node, and connecting the second network node to the third network node and the fourth network node, the network diameter between the 8 target network nodes in each target sub-network is reduced from the traditional 3 to 2 in this connection mode, thereby reducing the network diameter of each target sub-network and further reducing the network diameter of the entire interconnection network. Therefore, the technical problem of relatively large network communication delay in the multi-dimensional hypercube interconnection network can be solved, and the technical effect of reducing the network communication delay of the multi-dimensional hypercube interconnection network can be achieved.

[0108] The interconnection network has the following aspects of information: First is the topology of the interconnection network, second is the routing algorithm and switching technology of the interconnection network, and in addition is the performance metrics of the interconnection network. The topology of the interconnection network refers to the connection structure between network nodes in the interconnection network. In a telecommunications network, a node is a connection point, representing a redistribution point or a communication endpoint (some terminal devices). Routing refers to the network-wide process of determining the end-to-end path when a packet travels from the source to the destination. The interconnection network usually has the following four main performance metrics: One is the node degree, which represents the number of channels connecting a node to its neighbor nodes, or the number of ports of the router in the node. The second is the network diameter, which represents the maximum value of the shortest distance between two nodes in the network. The smaller the network diameter, the smaller the network communication delay. The third is the number of links, which represents the number of links in the entire network. Since the topology is determined, the number of links is also determined accordingly. The fourth is the bisection bandwidth. The network nodes are divided into two equal subnets, and the link bandwidth corresponding to the minimum cut set is the bisection bandwidth. The higher the bisection bandwidth, the stronger the network communication ability.

[0109] In this embodiment, the network nodes may but are not limited to including terminal nodes. A terminal node is any system or group of units with communication requirements. It can be a processor, a processor and a memory, a graphics processing unit, a storage controller, an I / O interface, etc.

[0110] In this embodiment, the multi-dimensional hypercube interconnection network may but is not limited to be applied to any network transmission system, such as: the switch chip of a server, a database, a distributed system, and so on.

[0111] In this embodiment, the topology of the above multi-dimensional hypercube interconnection network has symmetry, regularity, path diversity, and scalability.

[0112] In an alternative example, when N is greater than 3, the multi-dimensional hypercube interconnection network is divided into at least 2 sub-networks. The at least 2 sub-networks are connected in sequence. The 8 target network nodes included in the target sub-network are connected to the 8 reference network nodes included in the reference sub-network in one-to-one correspondence. The reference sub-network is the sub-network adjacent to the target sub-network in the connection of the at least 2 sub-networks.

[0113] For example: Taking N as 5 as an example, as Figure 1 shown, the multi-dimensional hypercube interconnection network includes 32 network nodes. Taking the multi-dimensional hypercube interconnection network divided into 4 sub-networks as an example, the network nodes at the same position in adjacent sub-networks are connected to each other.

[0114] The improved multi-dimensional hypercube interconnection network described above has a shorter network diameter compared to the traditional multi-dimensional hypercube interconnection network, which can effectively reduce the network transmission delay. And the routing algorithm logic applicable to the improved multi-dimensional hypercube interconnection network under this topological structure is simpler and easier to implement in hardware.

[0115] In an optional example, the network nodes can be but are not limited to being identified in the following way: N The identifier of a network node is an N-bit binary number. The highest N - 3 bits of the identifiers of the 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 directly connected reference network node, and there is exactly one bit difference between the identifier of the target network node and the identifier of the directly connected reference network node.

[0116] Optionally, in this embodiment, in each sub-network, the third-to-last bit of the identifiers of the network nodes in the first node set is the same, the third-to-last bit of the identifiers of the network nodes in the second node set is the same, and the third-to-last bit of the identifiers of the network nodes in the first node set is different from the third-to-last bit of the identifiers 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 identifiers of the network nodes in the first node set is 1, and the third-to-last bit of the identifiers of the network nodes in the second node set is 0.

[0118] Identifying the network nodes in the above way makes the node identifiers of the network nodes in the same node set have a certain pattern, which is easy to implement the routing algorithm.

[0119] When N is 3, the multi-dimensional hypercube interconnection network includes 8 network nodes, and the 8 network nodes form 1 sub-network. Figure 2 It is a structural block diagram of the topological structure of a three-dimensional hypercube interconnection network according to an embodiment of the present application. Figure 1 As Figure 2 shown, 1 sub-network is used as the target sub-network and includes 8 target network nodes (0 to 7). 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 to the 4 target network nodes in the second node set one by one. The 4 target network nodes (4 to 7) in the first node set are connected in sequence to form a ring. The 4 target network nodes in the second node set include a first network node 0, a second network node 1, a third network node 2, and a 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 identifications of network nodes are three - bit binary numbers, and the most significant bits of the identifications of network nodes in the same node set are the same.

[0121] Optionally, in this embodiment, the most significant bit of the identification of network nodes in the first node set is 1, and the most significant bit of the identification of network nodes in the second node set is 0.

[0122] Optionally, in this embodiment, the operation results of performing bit - wise exclusive - OR operations on the identifications of network nodes in the first node set with 001, 010, and 100 respectively are the identifications of 3 directly - connected network nodes; the operation results of performing bit - wise exclusive - OR operations on the identifications of network nodes in the second node set with 011, 010, and 100 respectively are the identifications of 3 directly - connected network nodes.

[0123] Optionally, in this embodiment, the 4 target network nodes in the first node set include the fifth network node, the sixth network node, the seventh network node, and the 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 is a structural frame of a three - dimensional hypercube interconnection network topology according to an embodiment of the present application Figure 2 , as Figure 3 shown, the 4 target network nodes (4 to 7) in the first node set are sequentially encoded as 100, 101, 110, and 111, and among the 4 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 set to allow one - hop routing to 3 target network nodes connected in the target sub - network; each target network node is set to allow two - hop routing to 4 target network nodes not connected in the target sub - network.

[0126] For the four routing nodes 100, 101, 110, and 111, by performing bitwise exclusive OR (XOR) of the binary numbers of each routing node with 001, 010, and 100 in sequence, the routing nodes directly connected to it can be obtained. For example, for the routing node 101, by performing bitwise XOR of its binary number with 001, 010, and 100 in sequence, 100, 111, and 001 are obtained, and these three nodes are exactly the four routing nodes directly connected to 101.

[0127] For the four routing nodes 000, 001, 010, and 011, by performing bitwise XOR of the binary numbers of each routing node with 011, 010, and 100 in sequence, the routing nodes directly connected to it can be obtained. For example, for the routing node 010, by performing bitwise XOR of its binary number with 011, 010, and 100 in sequence, 001, 000, and 110 are obtained, and 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 of each routing node with the other seven routing nodes are as follows: First, by performing XOR with 001, 010, and 100, three routing nodes directly connected to it can be obtained; three adjacent routing nodes can be directly reached in one hop. For example, for the routing node 100, by performing XOR with 001, 010, and 100, the routing nodes 101, 110, and 000 are directly connected and can be directly routed. In addition, by performing XOR with 101, 011, 110, and 111, four routing nodes can be obtained, and these four routing nodes can be reached in two hops; for example, for the routing node 100, by performing XOR with 101, 011, 110, and 111, the four routing nodes 001, 111, 010, and 011 are obtained, and these can be reached in two hops.

[0129] For the four routing nodes 000, 001, 010, and 011: The link relationships of each routing node with the other seven routing nodes are as follows: First, by performing XOR with 011, 010, and 100, three routing nodes directly connected to it can be obtained; three adjacent routing nodes can be directly reached in one hop. For example, for the routing node 001, by performing XOR with 011, 010, and 100, the routing nodes 010, 011, and 101 are directly connected and can be directly routed. In addition, by performing XOR with 101, 001, 110, and 111, four routing nodes can be obtained, and these four routing nodes can be reached in two hops; for example, for the routing node 001, by performing XOR with 101, 001, 110, and 111, the four routing nodes 100, 000, 111, and 110 are obtained, and these can be reached in two hops.

[0130] In the improved three-dimensional hypercube interconnection network described above, the network diameter between routing nodes is 2.

[0131] In this embodiment, a routing method for a multi-dimensional hypercube interconnection network is further provided, which is applied to the topological structure of the above multi-dimensional hypercube interconnection network. This routing method is used to route from the starting routing node in the target sub-network to the final routing node in the target sub-network. Figure 4 It is a flow chart of a routing method for a multi-dimensional hypercube interconnection network according to an embodiment of the present application. Figure 1 , such as Figure 4 shown, this 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, calculate the shortest routing path from the starting routing node to the final routing node according to the starting node identifier, the final node identifier, and the node set where the starting routing node is located, to obtain the target routing 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, the 8 target network nodes included therein 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 in sequence. 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. By connecting the first network node to the third network node and the fourth network node, and connecting the second network node to the third network node and the fourth network node, the network diameter between the 8 target network nodes in each target sub-network is reduced from the traditional 3 to 2 in this connection mode, thereby reducing the network diameter of each target sub-network, and further reducing the network diameter of the entire interconnection network. When routing in each target sub-network, it is possible to route to other network nodes in at most two hops. Therefore, the technical problem of large network communication delay in the multi-dimensional hypercube interconnection network can be solved, and the technical effect of reducing the network communication delay of the multi-dimensional hypercube interconnection network can be achieved.

[0136] Optionally, in this embodiment, this routing method can be but is not limited to being deployed on each network node.

[0137] In an alternative example, in step S404 above, the shortest routing path from the starting routing node to the final routing node can be calculated based on the starting node identifier, the final node identifier, and the node set where the starting routing node is located, in a manner that may include but is not limited to: 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; and calculating the shortest routing path as the target routing path based on the connection relationship and the node set where the starting routing node is located.

[0138] Optionally, in this embodiment, the connection relationship between the starting routing node and the final routing node can be determined first, and then the shortest routing path can be planned as the target routing path based on the connection relationship and the node set where the starting routing node is located.

[0139] In an alternative example, the connection relationship between the starting routing node and the final routing node can be determined based on the starting node identifier, the final node identifier, and the node set where the starting routing node is located, in a manner that may include but is not limited to: performing a bitwise exclusive OR operation on the starting node identifier and the final node identifier to obtain an operation result; and determining the connection relationship based on the operation result and the node set 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 can be determined based on the operation result between the node identifiers and the node set where the starting routing node is located, in a manner that may include but is not limited to this.

[0141] In an alternative 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 operation result and the node set where the starting routing node is located, in a manner that may include but is not limited to: when the starting 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 starting routing node and the final routing node; when the starting 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 starting routing node and the final routing node; when the starting 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 not a direct connection between the starting routing node and the final routing node; when the starting 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 not a direct connection between the starting routing node and the final routing node.

[0142] In an optional example, the shortest routing path can be calculated as the target routing path according to the connection relationship and the node set where the starting routing node is located in the following manner, but not limited to this: when the connection relationship is a direct connection between the starting routing node and the final routing node, determine the target routing path as directly routing to the final routing node; when the connection relationship is not a direct connection between the starting routing node and the final routing node, determine the next hop according to the operation result and the node set where the starting routing node is located; determine the final routing node as the last hop, where the target routing path includes the next hop and the last hop.

[0143] Optionally, in this embodiment, if there is a direct connection between the starting routing node and the final routing node, the target routing path has only one hop, that is, the final routing node can be directly reached from the starting routing node. If there is no direct connection between the starting routing node and the final routing node, then the target routing path includes two hops. The next hop can be determined first according to the operation result and the node set where the starting routing node is located, and the target routing path can be obtained by taking the final routing node as the last hop.

[0144] In an optional example, when N = 3, the highest bit of the identification of the network nodes in the first node set is 0, and the highest bit of the identification of the network nodes in the second node set is 1, the following methods can be used, but are not limited to, to determine the next hop according to the operation result and the node set where the starting routing node is located: when the starting routing node is in the first node set and the operation result is 110 or 011, or when the starting routing node is in the second node set and the operation result is 110, split the operation result into two one-hot encodings; randomly select a target one-hot encoding from the two one-hot encodings; perform a bitwise exclusive OR operation on the starting node identification and the target one-hot encoding to obtain the identification of the next hop; when the starting routing node is in the first node set and the operation result is 101, split the operation result into 001 and 100; perform a bitwise exclusive OR operation on the starting node identification and 001 to obtain the identification of the next hop, where the result of the bitwise exclusive OR operation between the identification of the next hop and 100 is the identification of the final node; when the starting routing node is in the second node set and the operation result is 101, split the operation result into 100 and 001; perform a bitwise exclusive OR operation on the starting node identification and 100 to obtain the identification of the next hop, where the result of the bitwise exclusive OR operation between the identification of the next hop and 001 is the identification of the final node; when 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 encoding from 010 and 011; perform a bitwise exclusive OR operation on the starting node identification and the target encoding to obtain the identification of the next hop; when the starting routing node is in the first node set and the operation result is 111, split the operation result into 100 and 011; perform a bitwise exclusive OR operation on the starting node identification and 100 to obtain the identification of the next hop, where the result of the bitwise exclusive OR operation between the identification of the next hop and 011 is the identification of the final node; when the starting routing node is in the second node set and the operation result is 111, split the operation result into 011 and 100; perform a bitwise exclusive OR operation on the starting node identification and 011 to obtain the identification of the next hop, where the result of the bitwise exclusive OR operation between the identification of the next hop and 100 is the identification of the final node.

[0145] Optionally, in this embodiment, one-hot encoding, also known as one-hot encoding, in which only one bit is 1, or only one bit is valid.

[0146] In an optional implementation manner, a routing algorithm applied to the topological structure of the above three-dimensional hypercube interconnection network is provided. First, 8 network nodes are grouped and marked as follows: N 1 = {100, 101, 110, 111} and N 2= {000, 001, 010, 011}. In this routing algorithm, for a routing request, the source routing node (i.e., the above-mentioned starting routing node) is denoted as S, and the destination routing node (i.e., the above-mentioned final routing node) is denoted as D. This routing algorithm may but is not limited to include the following steps:

[0147] Step 1: The source routing node S and the destination routing node D are XORed bit by bit, and the result is denoted as I (equivalent to the above operation result).

[0148] Step 2: Judge the value of the source routing node S. If it belongs to N 1 , go to Step 3; if it belongs to N 2 , go to Step 4.

[0149] Step 3: Judge the value of I: If the value of I is one of 001, 010, 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 one of 110, 011, split I into two one-hot encodings I = I 1 ^I 2 , and then in a random way, the two one-hot encodings are XORed with the routing node S respectively; the routing ends.

[0151] For example: S is the routing node 100, D is the routing node 111. After bitwise XOR, I = 011. Split I into two one-hot encodings I = I 1 ^I 2 = 001 ^ 010, and then in ascending order, the two one-hot encodings are XORed with the routing node S respectively:

[0152]

[0153] If the value of I is 101, split I, I = I 1 ^I 2 = 001 ^ 100, I 1 , I 2 are XORed with the routing node S in sequence; the routing ends.

[0154] For example: S is the routing node 100, D is the routing node 001. After bitwise XOR, I = 101. Split I into two one-hot encodings I = I 1 ^I 2 = 001 ^ 100, and then in order, the two one-hot encodings are XORed with the routing node S respectively:

[0155]

[0156] If the value of I is 111, split I, I = I 1 ^I 2 = 100^011, I 1 , I 2 Perform exclusive OR with the routing node S in sequence; the routing ends.

[0157] For example: S is the routing node 100, D is the routing node 011, after performing bitwise exclusive OR, I = 111, split I into two one-hot encodings I = I 1 ^I 2 = 001^100, then in sequential order, the two one-hot encodings are respectively exclusive ORed with the routing node S:

[0158]

[0159] Fourth step: Determine the value of I: If the value of I is one of 011, 010, 100, it means that the source routing node S is directly connected to the destination routing node D and can be directly routed.

[0160] If the value of I is 110, split I into two one-hot encodings I = I 1 ^I 2 = 001^100, then in a random way, the two one-hot encodings are respectively exclusive ORed with the routing node S; the routing ends.

[0161] For example: S is the routing node 001, D is the routing node 111, after performing bitwise exclusive OR, I = 110, split I into two one-hot encodings I = I 1 ^I 2 = 001^100, then in a random way, the two one-hot encodings are respectively exclusive ORed with the routing node S:

[0162]

[0163] If the value of I is 101, split I into two one-hot encodings I = I 1 ^I 2 = 100^001, then in sequential order, the two one-hot encodings are respectively exclusive ORed with the routing node S; the routing ends.

[0164] For example: S is the routing node 001, D is the routing node 101, after performing bitwise exclusive OR, I = 101, split I into two one-hot encodings I = I 1 ^I 2 = 100^001, then in sequential order, the two one-hot encodings are respectively exclusive ORed with the routing node S:

[0165]

[0166] If the value of I is 001, split I into two encodings I = I 1 ^I 2 = 010^011, and then in a random manner, the two one-hot encodings are respectively exclusive-ored with the routing node S; the routing ends.

[0167] For example: S is the routing node 001, D is the routing node 000, after bitwise exclusive-or, I = 001, split I into two one-hot encodings I = I 1 ^I 2 = 010^011, and then in a random manner, the two one-hot encodings are respectively exclusive-ored with the routing node S:

[0168]

[0169] If the value of I is 111, split I into two encodings I = I 1 ^I 2 = 011^100, and then in a sequential manner, the two one-hot encodings are respectively exclusive-ored with the routing node S; the routing ends.

[0170] For example: S is the routing node 001, D is the routing node 110, after bitwise exclusive-or, I = 111, split I into two one-hot encodings I = I 1 ^I 2 = 011^100, and then in a sequential manner, the two one-hot encodings are respectively exclusive-ored with the routing node S:

[0171]

[0172] For a ring topology structure, deadlock may occur during the routing process. For example: Figure 5 is a schematic diagram of the routing process in a ring topology structure according to an embodiment of the present application, as Figure 5 shown. Assume that there are four routing requests at the same time, request 1 to request 4. Among them, 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. When these four routing requests all need to pass through a network node and if all randomly select the clockwise routing and all have occupied the intermediate network node, a clockwise deadlock is generated. On the contrary, if all randomly select the counterclockwise routing and all have occupied the intermediate network node, a counterclockwise deadlock will be generated.

[0173] To avoid the above-mentioned deadlock phenomenon, in this embodiment, a routing method for a multi-dimensional hypercube interconnection network is further provided. The topological structure of the multi-dimensional hypercube interconnection network is any one of the above topological structures. This routing method is used to route from the starting routing node in the target sub-network to the final routing node in the target sub-network. Figure 6 It is a flowchart of a routing method for a multi-dimensional hypercube interconnection network according to an embodiment of the present application. Figure 2 , as Figure 6 shown, this process includes the following steps:

[0174] Step S602, according to 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 routing path from the starting routing node to the final routing node, where the path information is used to indicate the number of routing hops of the shortest routing path;

[0175] Step S604, when the path information is used to indicate that the shortest routing path is a two-hop routing path, plan a target routing path according to the node set where the starting routing node is located and the node set where the final routing node is located, where the target routing path is a routing path of 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, the 8 target network nodes included therein 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 in sequence. 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. 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 reduced from the traditional 3 to 2 in this connection mode, thereby reducing the network diameter of each target sub-network, and further reducing the network diameter of the entire interconnection network. When routing in each target sub-network, it is possible to route to other network nodes in at most two hops. For the case where two hops are required for routing, a target routing path is planned according to 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 of at least two hops, so that the planned target routing path can avoid the phenomenon of deadlock. Therefore, it is possible to solve the technical problem that the routing process may appear deadlock in the related art, and achieve the technical effect of avoiding the deadlock phenomenon in the routing process.

[0178] In an alternative example, in the above step S604, the target routing path can be planned according to the node set where the starting routing node is located and the node set where the final routing node is located, in a manner that may include, but is not limited to: determining the target set relationship between the starting routing node and the final routing node according to the node set where the starting routing node is located and the node set where the final routing node is located; finding the target routing rule corresponding to the target set relationship from the set relationships and routing rules with corresponding relationships; and planning the target routing path according to the target routing rule.

[0179] Optionally, in this embodiment, there are different set relationships between the node set where the starting routing node is located and the node set where the final routing node is located. For example: both are in the first node set, both are in the second node set, or they are in different node sets, etc. Different set relationships are configured with different routing rules to avoid deadlock during the routing process.

[0180] In an alternative example, the target set relationship between the starting routing node and the final routing node can be determined according to the node set where the starting routing node is located and the node set where the final routing node is located, in a manner that may include, but is not limited to: when the node set where the starting routing node is located is the first node set and the node set where the final routing node is located is the first node set, determining the target set relationship as the first set relationship, where the first set relationship is used to indicate that the routing nodes are all located in the first node set; when the node set where the starting routing node is located is the second node set and the node set where the final routing node is located is the second node set, determining the target set relationship as the second set relationship, where the second set relationship is used to indicate that the routing nodes are all located in the second node set; when the node set where the starting routing node is located is the first node set and the node set where the final routing node is located is the second node set, or when the node set where the starting routing node is located is the second node set and the node set where the final routing node is located is the first node set, determining the target set relationship as the third set relationship, where the third set relationship is used to indicate 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 relationship and routing rules with corresponding relationships in the following ways, but not limited thereto: when the target set relationship is the first set relationship, determine the target routing rule as the first routing rule, where the first routing rule is used to indicate planning a routing path in the first node set according to the routing direction corresponding to the current starting routing node; when the target set relationship is the second set relationship, determine the target routing rule as the second routing rule, where the second routing rule is used to indicate planning a routing path in the second node set according to the routing direction corresponding to the current starting routing node; when the target set relationship is the third set relationship, determine the target routing rule as the third routing rule, where the third routing rule is used to indicate routing to the reference routing node directly connected to the starting routing node in the node set where the final routing node is located in the first hop and then using 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 routing request with two hops for the shortest path does not necessarily follow the shortest path. This routing rule can be, but not limited to, referred to as Rule 1.

[0183] In an optional example, the target routing path can be planned according to the target routing rule in the following ways, but not limited thereto: when the target routing rule is the first routing rule, determine the target routing direction according to the starting node identifier; obtain the next-hop routing node in 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 identifiers of the network nodes are three-bit binary numbers, and the highest bits of the identifiers of the network nodes in the first node set are all 0, and the highest bits of the identifiers of the network nodes in the second node set are all 1, the target routing direction can be determined according to the starting node identifier in the following ways, but not limited thereto: when the starting node identifier is 100 or 111, determine the target routing direction as the first routing direction; when the starting node identifier is 101 or 110, determine the target routing direction as the second routing direction, where the second routing direction is opposite to the first routing direction.

[0185] Optionally, in this embodiment, assuming that the source routing node of the routing request is S (i.e., the above-mentioned starting routing node) and the destination routing node is D (i.e., the above-mentioned final routing node), then if both S and D are network nodes belonging to the outer layer (i.e., the above-mentioned first node set) and it takes two hops to complete the routing request, at this time the exclusive OR operation result I of the identifier is 011. Then, if S is 100 or 111, route counterclockwise, that is, the above-mentioned first routing direction can be but is not limited to the counterclockwise direction. If S is 101 or 110, route clockwise, that is, the above-mentioned second routing direction can be but is not limited to the clockwise direction.

[0186] The above routing rule can be but is not limited to being called Rule 2. Rule 2 can ensure that there is no deadlock in the two-hop routing requests between the network nodes in the outer layer. For example, assume that there are four routing requests at the same time: 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 It is a schematic diagram of the routing process in a ring topology structure according to an embodiment of the present application Figure 1 , as Figure 7 shown, when using Rule 2 for routing, when these four routing requests all need to pass through a routing node and all have occupied the intermediate routing node, no deadlock occurs.

[0187] Optionally, in this embodiment, the above-mentioned first routing direction can also be but is not limited to the clockwise direction. In this case, the above-mentioned second routing direction can be but is not limited to the 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 is not limited to this: when the target routing rule is the second routing rule, obtain the next-hop routing node according to the starting routing node in the second node set; 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 according to the starting routing node in the second node set in the following way but is not limited to this: when the starting routing node is the first network node, determine the third network node as the next-hop routing node; when the starting routing node is the second network node, determine the fourth network node as the next-hop routing node; when the starting routing node is the third network node, determine the first network node as the next-hop routing node; when the starting routing node is the fourth network node, determine the second network node as the next-hop routing node.

[0190] Optionally, in this embodiment, if both S and D are four network nodes belonging to the inner layer (i.e., the above-mentioned second node set) and two hops are required to complete the routing request, and at this time I is 001, the first hop is along the diagonal routing first.

[0191] The above routing rule can be but is not limited to being called Rule 3. Rule 3 can ensure that no deadlock occurs in the routing requests for two hops between the network nodes in the inner layer. For example, assume that there are four routing requests at the same time: 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 It is a schematic diagram of the routing process in a ring topology structure according to an embodiment of the present application. Figure 2 , such as Figure 8 shown. When using Rule 3 for routing and all these four routing requests need to pass through a routing node and the intermediate routing node is already occupied, no deadlock occurs.

[0192] In an optional example, the target routing path can be planned according to the target routing rule in the following way but is not limited to this: when the target routing rule is the third routing rule, determine the reference routing node as the routing node for the first hop; determine the reference routing direction in the node set where the reference routing node is located according to 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 to 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 way but is not limited to this: when the reference node identifier is 100 or 111, determine the reference routing direction as the third routing direction; when the reference node identifier is 101 or 110, determine the reference routing direction as the fourth routing direction, where the fourth routing direction is opposite to the third routing direction; where N is 3, 2 N The identifiers of the network nodes are three-bit binary numbers. The highest bit of the identifiers of the network nodes in the first node set is 0, and the highest bit of the identifiers of the network nodes 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 by, but not limited to, the following method: 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; 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 reference routing path from the reference routing node to the final routing node can be planned in the node set where the reference routing node is located according to the reference routing direction by, but not limited to, the following method to obtain the target routing path: the routing node directly connected to the reference routing node in the reference routing direction is determined as the routing node of the second hop; when the routing node of the second hop is the final routing node, the routing path connecting the starting routing node, the reference routing path, and the final routing node in sequence is determined as the target routing path; when the routing node of the second hop is not the final routing node, the routing path connecting the starting routing node, the reference routing path, the routing node of the second hop, and the final routing node in sequence is determined as the target routing path.

[0196] Optionally, in this embodiment, if one of S and D belongs to the outer layer nodes and the other belongs to the outer layer nodes, the first hop first routes to the layer where D is located, then updates S (i.e., finds the reference routing node), and then routes according to Rule 2 or 3.

[0197] The above routing rule can be, but not limited to, called Rule 4. Rule 4 can ensure that no deadlock occurs in the routing requests between the outer layer and the inner layer nodes. For example, for the ring topology composed of routing nodes 110, 010, 000, and 100: assume that there are four routing requests at the same time: 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 is a schematic diagram of the routing process in a ring topology structure according to an embodiment of the present application Figure 3 , as Figure 9 shown, when routing using Rule 4, when all these four routing requests need to pass through a routing node and the intermediate routing node is already occupied, no deadlock occurs. The same is true for the ring topology composed of routing nodes 011, 111, 101, and 001, which will not be elaborated here.

[0198] In an optional example, the path information of the shortest routing path from the starting routing node to the final routing node can be detected, but not limited to, in the following manner: 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, determine the connection relationship between the starting routing node and the final routing node; determine the path information according to the connection relationship.

[0199] Optionally, in this embodiment, the connection relationship between the starting routing node and the final routing node can be determined, but not limited to, in the following manner: perform a bitwise exclusive OR operation on the starting node identifier and the final node identifier to obtain an operation result; determine the connection relationship according to 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, but not limited to, in the following manner: when the starting routing node is in the first node set and the operation result is one of 001, 010, and 100, determine that the connection relationship is a direct connection between the starting routing node and the final routing node; when the starting routing node is in the second node set and the operation result is one of 011, 010, and 100, determine that the connection relationship is a direct connection between the starting routing node and the final routing node; when the starting routing node is in the first node set and the operation result is a value other than 001, 010, and 100, determine that the connection relationship is not a direct connection between the starting routing node and the final routing node; when the starting routing node is in the second node set and the operation result is a value other than 011, 010, and 100, determine that the connection relationship is not a direct connection between the starting routing node and the final routing node.

[0201] Optionally, in this embodiment, the path information can be determined, but not limited to, in the following manner: when the connection relationship is a direct connection between the starting routing node and the final routing node, determine that the path information is used to indicate that the shortest routing path is a one-hop routing path; when the connection relationship is not a direct connection between the starting routing node and the final routing node, determine that the path information is used to indicate that the shortest routing path is a two-hop routing path.

[0202] In an alternative embodiment, a routing algorithm for a topology applied to a three-dimensional hypercube interconnection network is provided. In this routing algorithm, the network nodes in the three-dimensional hypercube interconnection network are divided into N 1 ={100, 101, 110, 111} and N 2 ={000, 001, 010, 011}. For a routing request, the source routing node (i.e., the above-mentioned starting routing node) is denoted as S, and the destination routing node (i.e., the above-mentioned final routing node) is denoted as D. This routing algorithm may but is not limited to include the following steps:

[0203] Step 1: The source routing node S and the destination routing node D are exclusive-ORed bit by bit, and the result is denoted as I.

[0204] Step 2: Determine the value of the source routing node S. If it belongs to N 1 , go to Step 3; if it belongs to N 2 , go to Step 4.

[0205] Step 3: Determine the value of I: If the value of I is one of 001, 010, 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, route according to Rule 2. For example: S is the routing node 100, D is the routing node 111. After bitwise exclusive-OR, I = 011. Split I into two one-hot encodings I = I 1 ^I 2 = 001^100, and then in a counterclockwise manner, the two one-hot encodings are exclusive-ORed with the routing node S respectively:

[0207]

[0208] If the value of I is 101, route according to Rule 4. For example: S is the routing node 100, D is the routing node 001. After bitwise exclusive-OR, I = 101. First, route to the inner layer where D is located, and then update S:

[0209]

[0210] S new = 000.

[0211] Then S is updated to the routing node 000, and D is the routing node 001. At this time, both S and D belong to the inner layer. After bitwise exclusive-OR, I = 001. Split I into two one-hot encodings I = I 1 ^I 2 = 010^011, and then in the manner of Rule 3, the two one-hot encodings are exclusive-ORed with the routing node S respectively:

[0212]

[0213] If the value of I is 110, route according to Rule 4. For example: S is the routing node 100, D is the routing node 010, after bitwise XOR, I = 110. First, route to the inner layer where D is located, and then update S:

[0214]

[0215] S new = 000.

[0216] Then S is updated to the routing node 000, D is the routing node 010. At this time, both S and D belong to the inner layer. After bitwise XOR, I = 010, and the source routing node S is directly connected to the target routing node D, and can be directly routed.

[0217] If the value of I is 111, route according to Rule 4. For example: S is the routing node 100, D is the routing node 011, after bitwise XOR, I = 111. First, route to the inner layer where D is located, and then update S:

[0218]

[0219] S new = 000.

[0220] Then S is updated to the routing node 000, D is the routing node 011. At this time, both S and D belong to the inner layer. After bitwise XOR, I = 011, and the source routing node S is directly connected to the target routing node D, and can be directly routed.

[0221] Fourth step: Judge the value of I: If the value of I is one of 011, 010, 100, it means that the source routing node S is directly connected to the target routing node D and can be directly routed.

[0222] If the value of I is 110, route according to Rule 4. For example: S is the routing node 000, D is the routing node 110, after bitwise XOR, I = 110. First, route to the inner layer where D is located, and then update S:

[0223]

[0224] S new = 100.

[0225] Then S is updated to the routing node 100, D is the routing node 110. At this time, both S and D belong to the outer layer. After bitwise XOR, I = 010, and the source routing node S is directly connected to the target routing node D, and can be directly routed.

[0226] If the value of I is 101, route according to Rule 4. For example: S is the routing node 000, D is the routing node 101, after bitwise XOR, I = 101. First, route to the inner layer where D is located, and then update S:

[0227]

[0228] S new = 100.

[0229] Then S is updated to the routing node 100, D is the routing node 101. At this time, both S and D belong to the outer layer. After bitwise XOR, I = 001. The source routing node S is directly connected to the destination routing node D and can be directly routed.

[0230] If the value of I is 001, route according to Rule 3. For example: S is the routing node 000, D is the routing node 001. After bitwise XOR, I = 001. Split I into two one - hot encodings I = I 1 ^I 2 = 010 ^ 011. Then, in the way of Rule 3, the two one - hot encodings are respectively XORed with the routing node S:

[0231]

[0232] If the value of I is 111, route according to Rule 4. For example: S is the routing node 000, D is the routing node 111. After bitwise XOR, I = 111. First, route to the inner layer where D is located, and then update S:

[0233]

[0234] S new = 100.

[0235] Then S is updated to the routing node 100, D is the routing node 111. At this time, both S and D belong to the outer layer. After bitwise XOR, I = 011. Split I into two one - hot encodings I = I 1 ^I 2 = 001 ^ 010. Then, in the way of Rule 2, the two one - hot encodings are respectively XORed with the routing node S:

[0236]

[0237] In the case where the interconnection network has a ring topology, deadlock may occur in some extreme scenarios. Once deadlock occurs, the on - chip network will be paralyzed. Therefore, for the on - chip network, the deadlock problem must be solved. The above routing method improves the traditional routing algorithm and proposes a deadlock - avoiding routing algorithm applicable to the above - mentioned multi - dimensional hypercube interconnection network. The routing algorithm is simple and easy to be implemented in hardware.

[0238] To avoid the occurrence of the above deadlock phenomenon, in this embodiment, another routing method for a multi-dimensional hypercube interconnection network is also provided. The topological structure of the multi-dimensional hypercube interconnection network is any one of the above topological structures. Among them, P transmission paths are deployed between the target network node and the directly connected network node, where P is an integer greater than 1. This routing method is used to route from the starting routing node in the target sub-network to the final routing node in the target sub-network. Figure 10 It is the flow of a routing method for a multi-dimensional hypercube interconnection network according to an embodiment of the present application. Figure 3 , as Figure 10 shown, this flow includes the following steps:

[0239] Step S1002, calculate the shortest routing path from the starting routing node to the final routing node according to 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, to obtain the initial routing path;

[0240] Step S1004, determine the target transmission path for each hop in the initial routing path from the P transmission paths according to the path characteristics of the initial routing path, 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, the 8 target network nodes included therein 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 sequence to form 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. By connecting the first network node to the third network node and the fourth network node, and the second network node to the third network node and the fourth network node, the network diameter between the 8 target network nodes in each target sub-network is reduced from the traditional 3 to 2 in this connection mode, thereby reducing the network diameter of each target sub-network, and further reducing the network diameter of the entire interconnection network. During the routing process, first, the initial routing path is planned according to the shortest routing path, and then the transmission path for each hop is planned according to the path characteristics of the initial routing path to obtain the target routing path, so as to avoid the occurrence of deadlock in the planned target routing path. Therefore, the technical problem that deadlock may occur in the routing process in the related art can be solved, and the technical effect of avoiding the occurrence of deadlock in the routing process can be achieved.

[0243] In an optional example, in the above step S1004, the target transmission path for each hop in the initial routing path can be determined from the P transmission paths according to the path characteristics of the initial routing path in, but not limited to, the following manner to obtain the target routing path: Detect the path hop count and the number of paths of the initial routing path as path characteristics, where the initial routing path includes all the shortest routing paths that are allowed to route from the starting routing node to the final routing node; Determine the target transmission path for each hop in the initial routing path from the P transmission paths according to the path hop count and the number of paths to obtain the target routing path.

[0244] Optionally, in this embodiment, all routing paths follow the shortest path routing, and this routing rule can be, but not limited to, referred to as Rule 11.

[0245] In an optional example, the target transmission path for each hop in the initial routing path can be determined from the P transmission paths according to the path hop count and the number of paths in, but not limited to, the following manner to obtain the target routing path: Filter out a candidate routing path from the initial routing path according to the path hop count and the number of paths; Determine the target transmission path for each hop in the candidate routing path from the P transmission paths according to the number of paths to obtain the target routing path.

[0246] Optionally, in this embodiment, a candidate routing path can be filtered out from the initial routing path according to the path hop count and the number of paths in, but not limited to, the following manner: When the path hop count is 1, directly route from the starting routing node to the final routing node according to the initial routing path; When the path hop count is greater than 1, filter out a candidate routing path from the initial routing path according to the number of paths.

[0247] Optionally, in this embodiment, a candidate routing path can be filtered out from the initial routing path according to the number of paths in, but not limited to, the following manner: When the number of paths is 1, determine the initial routing path as the candidate routing path; When the number of paths is greater than 1, randomly select a routing path from the initial routing path as the candidate routing path.

[0248] Optionally, in this embodiment, the target transmission path for each hop in the candidate routing path may be determined from the P transmission paths according to the number of paths in the following ways, but not limited thereto, to obtain the target routing path: when the number of paths is 1, randomly determine the target transmission path for each hop in the candidate routing path from the P transmission paths to obtain the target routing path; when the number of paths is 2, randomly determine the target transmission path for the next hop in the candidate routing path from the first path set, and randomly determine the target transmission path for the last hop in the candidate routing path from the second path set to obtain the target routing path; where the P transmission paths are divided into the first path set and the second path set, the first path set includes at least one of the P transmission paths, and the second path set includes at least one of the P transmission paths.

[0249] Optionally, in this embodiment, the target transmission path for each hop in the candidate routing path may be determined from the P transmission paths according to the number of paths in the following ways, but not limited thereto, to obtain the target routing path: when the number of paths is 1, randomly determine the target transmission path for each hop in the candidate routing path from the P transmission paths to obtain the target routing path; when the number of paths is 2, randomly determine the target transmission path for the next hop in the candidate routing path from the transmission paths among the P transmission paths marked with the first label, and randomly determine the target transmission path for the last hop in the candidate routing path from the transmission paths among the P transmission paths marked with the second label to obtain the target routing path; where at least one of the P transmission paths is marked with the first label, and at least one of the P transmission paths is marked with the second label.

[0250] Assume that the source routing node of the routing request is S (i.e., the above-mentioned starting routing node), the destination routing node is D (i.e., the above-mentioned final routing node), the first label is "+", and the second label is "-". Figure 11 It is a schematic diagram of the path label of a transmission path according to an embodiment of the present application, as Figure 11 shown. Taking the example that each network node has two transmission paths, one transmission path is marked with the label "+", and the other transmission path is marked with the label "-".

[0251] Then if it takes two hops from S to D and there are multiple routing paths for the shortest path, the first hop can only take "+", and the second hop can only take "-". For example, Figure 12 It is a schematic diagram of a routing path according to an embodiment of the present application Figure 1 , as Figure 12 shown. S is 110, D is 101, it takes two hops from S to D and there are multiple routing paths, so the first hop can only take "+", and the second hop can only take "-".

[0252] The above routing rule can be called Rule 12. Rule 12 can ensure that there is no deadlock in the routing requests between two hops among the outer nodes. For example, assume that 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 It is a schematic diagram of the routing process in a ring topology according to an embodiment of the present application. Figure 4 , Figure 14 It is a schematic diagram of the routing process in a ring topology according to an embodiment of the present application. Figure 5 , such as Figure 13 and Figure 14 As shown, when using Rule 12 for routing, when all these four routing requests need to pass through a routing node and the intermediate routing node is already occupied, no deadlock occurs.

[0253] Rule 12 can ensure that there is no deadlock in the routing requests between two hops among the inner nodes. For example, assume that there are four routing requests simultaneously: 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 15 It is a schematic diagram of the routing process in a ring topology according to an embodiment of the present application. Figure 6 , such as Figure 15 As shown, when using Rule 12 for routing, when all these four routing requests need to pass through a routing node and the intermediate routing node is already occupied, no deadlock occurs.

[0254] If it takes two hops from S to D and there is only one routing path for the shortest path, then the "+" and "-" paths for the two hops can be taken randomly. For example, Figure 16 It is a schematic diagram of a routing path according to an embodiment of the present application. Figure 2 , such as Figure 16 As shown, S is 010, D is 101. It takes two hops from S to D and there is only one routing path for the shortest path. Therefore, the "+" and "-" paths for the two hops can be taken randomly.

[0255] The above routing rule can be called Rule 13. Rule 12 and Rule 13 can ensure that there is no deadlock in the routing requests between the outer and inner nodes. For example 5, for the ring topology composed of routing nodes 110, 010, 000, and 100: Assume that there are four routing requests simultaneously: 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 It is a schematic diagram of the routing process in a ring topology according to an embodiment of the present application Figure 7 , such as Figure 17 shown. When routing is performed using Rule 12 and Rule 13, and when all four routing requests need to pass through a routing node and the intermediate routing node is already occupied, no deadlock occurs

[0256] For the ring topology composed of routing nodes 100, 000, 011, 001, and 101: Assume that there are five routing requests simultaneously: 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 It is a schematic diagram of the routing process in a ring topology according to an embodiment of the present application Figure 8 , such as Figure 18 shown. When routing is performed using Rule 12 and 13, and when all four routing requests need to pass through a routing node and the intermediate routing node is already occupied, no deadlock occurs

[0257] For the ring topology composed of routing nodes 100, 000, 011, 111, and 101: Assume that there are five routing requests simultaneously: 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 It is a schematic diagram of the routing process in a ring topology according to an embodiment of the present application Figure 9 , such as Figure 19 shown. When routing is performed using Rule 12 and 13, and when all four routing requests need to pass through a routing node and the intermediate routing node is already occupied, no deadlock occurs

[0258] In an alternative example, in the above step S1002, it is possible but not limited to calculate the shortest routing path from the starting routing node to the final routing node according to 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, so as to obtain the initial routing path: Determine the connection relationship between the starting routing node and the final routing node according to the starting node identifier, the final node identifier, and the node set where the starting routing node is located; Calculate the shortest routing path as the initial routing path according to the connection relationship and the node set where the starting routing node is located

[0259] 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, by the following method according to the starting node identifier, the final node identifier, and the node set where the starting routing node is located: perform a bitwise exclusive OR operation on the starting node identifier and the final node identifier to obtain an operation result; determine the connection relationship according to 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 may be determined, but is not limited to, by the following method according to the operation result and the node set where the starting routing node is located: when the starting routing node is in the first node set and the operation result is one of 001, 010, and 100, determine that the connection relationship is a direct connection between the starting routing node and the final routing node; when the starting routing node is in the second node set and the operation result is one of 011, 010, and 100, determine that the connection relationship is a direct connection between the starting routing node and the final routing node; when the starting routing node is in the first node set and the operation result is a value other than 001, 010, and 100, determine that the connection relationship is not a direct connection between the starting routing node and the final routing node; when the starting routing node is in the second node set and the operation result is a value other than 011, 010, and 100, determine that the connection relationship is not a direct connection between the starting routing node and the final routing node.

[0261] Optionally, in this embodiment, the shortest routing path may be calculated as the initial routing path, but is not limited to, by the following method according to the connection relationship and the node set where the starting routing node is located: when the connection relationship is a direct connection between the starting routing node and the final routing node, determine that the initial routing path is to directly route to the final routing node, where the initial routing path includes one shortest routing path; when the connection relationship is not a direct connection between the starting routing node and the final routing node, determine the next hop according to the operation result and the node set where the starting routing node is located; determine the final routing node as the last hop, where the initial routing path includes the next hop and the last hop, and the initial routing path includes at least one shortest routing path.

[0262] Optionally, in this embodiment, when N is 3, 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 next hop can be determined according to the operation result and the node set where the starting routing node is located in the following ways, but not limited to: when the starting routing node is in the first node set and the operation result is 110 or 011, or when the starting routing node is in the second node set and the operation result is 110, split the operation result into two one-hot encodings; perform bitwise XOR operations on the two one-hot encodings with the starting node identifier as the target one-hot encoding respectively to obtain the identifiers of two next hops, where the initial routing path includes two shortest routing paths; when the starting routing node is in the first node set and the operation result is 101, split the operation result into 001 and 100; perform a bitwise XOR operation on the starting node identifier and 001 to obtain the identifier of the next hop, where the identifier of the next hop and 100 are the final node identifiers, and the initial routing path includes one shortest routing path; when the starting routing node is in the second node set and the operation result is 101, split the operation result into 100 and 001; perform a bitwise XOR operation on the starting node identifier and 100 to obtain the identifier of the next hop, where the identifier of the next hop and 001 are the final node identifiers, and the initial routing path includes one shortest routing path; when the starting routing node is in the second node set and the operation result is 001, split the operation result into 010 and 011; perform bitwise XOR operations on 010 and 011 with the starting node identifier as the target encoding respectively to obtain the identifiers of two next hops, where the initial routing path includes two shortest routing paths; when the starting routing node is in the first node set and the operation result is 111, split the operation result into 100 and 011; perform a bitwise XOR operation on the starting node identifier and 100 to obtain the identifier of the next hop, where the identifier of the next hop and 011 are the final node identifiers, and the initial routing path includes one shortest routing path; when the starting routing node is in the second node set and the operation result is 111, split the operation result into 011 and 100; perform a bitwise XOR operation on the starting node identifier and 011 to obtain the identifier of the next hop, where the identifier of the next hop and 100 are the final node identifiers, and the initial routing path includes one shortest routing path.

[0263] In an alternative example, when N is 3, the most significant bit of the identifiers of the network nodes in the first node set is 0, and the most significant bit of the identifiers of the network nodes in the second node set is 1, the connections between the network nodes in the first node set can be established in, but not limited to, the following manner: perform bitwise exclusive OR operations on the identifiers of the network nodes in the first node set with 001, 010, and 100 respectively to obtain the first identifiers of 3 directly connected network nodes; establish connections between the network nodes in the first node set and the network nodes with the first identifiers, and establish P transmission paths in each connection.

[0264] In an alternative example, when N is 3, the most significant bit of the identifiers of the network nodes in the first node set is 0, and the most significant bit of the identifiers of the network nodes in the second node set is 1, the connections between the network nodes in the second node set can be established in, but not limited to, the following manner: perform bitwise exclusive OR operations on the identifiers of the network nodes in the second node set with 011, 010, and 100 respectively to obtain the second identifiers of 3 directly connected network nodes; establish connections between the network nodes in the second node set and the network nodes with the second identifiers, and establish P transmission paths in each connection.

[0265] Optionally, in this embodiment, the 4 target network nodes in the first node set include the fifth network node, the sixth network node, the seventh network node, and the eighth network node. Establish a connection between the fifth network node and the first network node, a connection between the sixth network node and the second network node, a connection between the seventh network node and the third network node, and a connection between the eighth network node and the fourth network node; establish a connection between the fifth network node and the sixth network node, a connection between the sixth network node and the seventh network node, a connection between the seventh network node and the eighth network node, and a connection between the eighth network node and the fifth network node.

[0266] In an alternative example, the network nodes can be configured in, but not limited to, the following manner: set each target network node to allow one-hop routing to the 3 target network nodes connected in the target subnetwork; set each target network node to allow two-hop routing to the 4 target network nodes not connected in the target subnetwork.

[0267] In an alternative embodiment, a routing algorithm applied to the topology of a three-dimensional hypercube interconnection network is provided. In this routing algorithm, the network nodes in the three-dimensional hypercube interconnection network are divided into N 1 ={100, 101, 110, 111} and N 2={000, 001, 010, 011}. For a routing request, the source routing node (i.e., the above-mentioned starting routing node) is denoted as S, and the destination routing node (i.e., the above-mentioned final routing node) is denoted as D. This routing algorithm may but is not limited to include the following steps:

[0268] Step 1: The source routing node S and the destination routing node D are exclusive-ORed bit by bit, and the result is denoted as I;

[0269] Step 2: Judge the value of the source routing node S. If it belongs to N 1 , go to Step 3; if it belongs to N 2 , go to Step 4;

[0270] Step 3: Judge the value of I: If the value of I is one of 001, 010, 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 one of 110, 011, split I into two one-hot encodings I = I 1 ^I 2 , and then in a random way, the two one-hot encodings are exclusive-ORed with the routing node S respectively; the routing ends. For example: S is the routing node 100, D is the routing node 111, after bitwise exclusive-OR, I = 011, split I into two one-hot encodings I = I 1 ^I 2 = 001^010, and then in ascending order, the two one-hot encodings are exclusive-ORed with the routing node S respectively:

[0272]

[0273] If the value of I is 101, split I, I = I 1 ^I 2 = 001^100, I 1 , I 2 are exclusive-ORed with the routing node S in sequence; the routing ends. For example: S is the routing node 100, D is the routing node 001, after bitwise exclusive-OR, I = 101, split I into two one-hot encodings I = I 1 ^I 2 = 001^100, and then in order, the two one-hot encodings are exclusive-ORed with the routing node S respectively:

[0274]

[0275] If the value of I is 111, split I, I = I 1 ^I 2 = 100^011, I 1 , I2 Perform XOR operations with the routing node S in sequence; routing ends. For example: If S is the routing node 100 and D is the routing node 011, after performing bitwise XOR, I = 111. Split I into two one-hot encodings I = I 1 ^I 2 = 001 ^ 100. Then, in sequential order, perform XOR operations on the two one-hot encodings with the routing node S respectively:

[0276]

[0277] Step 4: Determine the value of I: If the value of I is one of 011, 010, 100, it means the source routing node S is directly connected to the destination routing node D, and direct routing can be performed.

[0278] If the value of I is 110, split I into two one-hot encodings I = I 1 ^I 2 = 010 ^ 100. Then, in a random manner, perform XOR operations on the two one-hot encodings with the routing node S respectively; routing ends. For example: If S is the routing node 001 and D is the routing node 111, after performing bitwise XOR, I = 110. Split I into two one-hot encodings I = I 1 ^I 2 = 010 ^ 100. Then, in a random manner, perform XOR operations on the two one-hot encodings with the routing node S respectively:

[0279]

[0280] If the value of I is 101, split I into two one-hot encodings I = I 1 ^I 2 = 100 ^ 001. Then, in sequential order, perform XOR operations on the two one-hot encodings with the routing node S respectively; routing ends. For example: If S is the routing node 001 and D is the routing node 101, after performing bitwise XOR, I = 101. Split I into two one-hot encodings I = I 1 ^I 2 = 100 ^ 001. Then, in sequential order, perform XOR operations on the two one-hot encodings with the routing node S respectively:

[0281]

[0282] If the value of I is 001, split I into two encodings I = I 1 ^I 2 = 010 ^ 011. Then, in a random manner, perform XOR operations on the two one-hot encodings with the routing node S respectively; routing ends. For example: If S is the routing node 001 and D is the routing node 000, after performing bitwise XOR, I = 001. Split I into two one-hot encodings I = I1 ^I 2 = 010^011, and then, in a random manner, the two one-hot encodings are respectively XORed with the routing node S:

[0283]

[0284] If the value of I is 111, split I into two encodings I = I 1 ^I 2 = 011^100, and then, in a sequential manner, the two one-hot encodings are respectively XORed with the routing node S; the routing ends. For example: S is the routing node 001, D is the routing node 110, after bitwise XOR, I = 111, split I into two one-hot encodings I = I 1 ^I 2 = 011^100, and then, in a sequential manner, the two one-hot encodings are respectively XORed with the routing node S:

[0285]

[0286] In the case where the interconnection network has a ring topology, deadlock may occur in some extreme scenarios. Once deadlock occurs, the on-chip network will be paralyzed. Therefore, for the on-chip network, the deadlock problem must be solved. The above routing method improves the traditional routing algorithm and proposes a deadlock-avoiding routing algorithm applicable to the above multi-dimensional hypercube interconnection network. The routing algorithm is simple and easy to implement in hardware.

[0287] In this embodiment, a topological structure of a four-dimensional hypercube interconnection network is further provided. The four-dimensional hypercube interconnection network includes 16 network nodes. The four-dimensional hypercube interconnection network is divided into a first sub-network and a second sub-network, and the first sub-network and the second sub-network each include 8 target network nodes. The 8 target network nodes included in the first sub-network are divided into a first node set and a second node set, and 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 to the 4 target network nodes in the second node set in one-to-one correspondence. The 4 target network nodes in the first node set are connected in sequence to form 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 8 target network nodes included in the second sub-network are divided into a third node set and a fourth node set, and the third node set and the fourth node set each include 4 target network nodes. The 4 target network nodes in the third node set are connected to the 4 target network nodes in the fourth node set in one-to-one correspondence. The 4 target network nodes in the third node set are connected in sequence to form a ring. The 4 target network nodes in the fourth node set include a ninth network node, a tenth network node, an eleventh network node, and a twelfth network node. The ninth network node is connected to the eleventh network node and the twelfth network node, and the tenth network node is connected to the eleventh network node and the twelfth network node. The 4 target network nodes in the first node set are connected to the 4 target network nodes in the third node set in one-to-one correspondence. The 4 target network nodes in the second node set are connected to the 4 target network nodes in the fourth node set in one-to-one correspondence.

[0288] With the above topological structure, the network diameter of the four-dimensional hypercube interconnection network is reduced to 3 in this connection mode, thereby reducing the network diameter of the entire interconnection network. Therefore, the technical problem of relatively large network communication delay in the multi-dimensional hypercube interconnection network can be solved, and the technical effect of reducing the network communication delay in the multi-dimensional hypercube interconnection network can be achieved.

[0289] Optionally, in this embodiment, the identifiers of the 16 network nodes are four-bit binary numbers. The highest bit of the identifiers of the network nodes on the same sub-network is the same. The lowest three bits of the identifier of the target network node are the same as those of the directly connected reference network node, and there is exactly 1 bit difference between the identifier of the target network node and the identifier of the directly connected reference network node, where the reference network node and the target network node do not belong to the same sub-network.

[0290] Optionally, in this embodiment, the third digit from the right of the identifiers of the network nodes in the first node set is the same, the third digit from the right of the identifiers of the network nodes in the second node set is the same, and the third digit from the right of the identifiers of the network nodes in the first node set is different from the third digit from the right of the identifiers of the network nodes in the second node set; the third digit from the right of the identifiers of the network nodes in the third node set is the same, the third digit from the right of the identifiers of the network nodes in the fourth node set is the same, and the third digit from the right of the identifiers of the network nodes in the third node set is different from the third digit from the right of the identifiers of the network nodes in the fourth node set.

[0291] Optionally, in this embodiment, the third digit from the right of the identifiers of the network nodes in the first node set and the third digit from the right of the identifiers of the network nodes in the third node set are both 1, and the third digit from the right of the identifiers of the network nodes in the second node set and the third digit from the right of the identifiers of the network nodes in the fourth node set are both 0.

[0292] Optionally, in this embodiment, the operation results of performing bitwise exclusive OR operations on the identifiers of the network nodes in the first node set and the third node set with 0001, 0010, 0100, and 1000 respectively are the identifiers of 4 directly connected network nodes; the operation results of performing bitwise exclusive OR operations on the identifiers of the network nodes in the second node set and the fourth node set with 0011, 0010, 0100, and 1000 respectively are the identifiers of 3 directly connected network nodes.

[0293] Optionally, in this embodiment, the 4 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 4 target network nodes in the third node set include a thirteenth network node, a fourteenth network node, a fifteenth network node, and a sixteenth network node. 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 set to allow one-hop routing to the 4 directly connected network nodes; each target network node is set to allow two-hop routing to the 4 network nodes not connected in the sub-network where it is located; each target network node is set to allow three-hop routing to the 7 network nodes not connected in the sub-network where it is not located.

[0296] In an alternative embodiment, Figure 20 is a structural block diagram of a four-dimensional hypercube interconnection network topology according to an embodiment of the present application, as Figure 20 shown, the four-dimensional hypercube interconnection network has 16 network nodes; the labels are represented by binary numbers 0000 - 1110 respectively. For the 8 network nodes 0100, 0101, 0110, 0111, 1100, 1101, 1110, 1111, the binary number of each network node is XORed bit by bit with 0001, 0010, 0100, 1000 in sequence, and the directly connected network nodes can be obtained. For example, for network node 0101, its binary number is XORed bit by bit with 0001, 0010, 0100, 1000 in sequence, and 0100, 0111, 0001, 1101 are obtained, and these four nodes are exactly the four network nodes directly connected to 0101. For the 8 network nodes 0000, 0001, 0010, 0011, 1000, 1001, 1010, 1011, the binary number of each network node is XORed bit by bit with 0011, 0010, 0100, 1000 in sequence, and the directly connected network nodes can be obtained. For example, for network node 1010, its binary number is XORed bit by bit with 0011, 0010, 0100, 1000 in sequence, and 1001, 1000, 1110, 0010 can be obtained, and these four nodes are exactly the four network nodes directly connected to 1010.

[0297] The above-mentioned topology of the four-dimensional hypercube interconnection network includes two improved three-dimensional cube structures, Figure 21 is a structural block diagram of an inner three-dimensional cube according to an embodiment of the present application, Figure 22 is a structural block diagram of an outer three-dimensional cube according to an embodiment of the present application, as Figure 21 and Figure 22 shown, the highest bit of the network nodes in the inner three-dimensional cube is 0, and the highest bit of the network nodes in the outer three-dimensional cube is 1; for the network nodes in the inner three-dimensional cube directly connected to the network nodes in the outer three-dimensional cube, the result after bitwise XOR is 1000, that is, the lower two bits are equal and the highest bit is opposite.

[0298] For the 8 network nodes 0100, 0101, 0110, 0111, 1100, 1101, 1110, and 1111: For each network node, the link relationships with the other 15 network nodes are as follows: Exclusive OR with 0001, 0010, 0100, and 1000 can obtain the 4 network nodes directly connected to it; It can directly reach 4 adjacent network nodes in one hop. For example, for network node 0100, by performing exclusive OR with 0001, 0010, 0100, and 1000, it can obtain network nodes 0101, 0110, 0000, and 1100 which are directly connected and can be directly routed. Exclusive OR with 0101, 0011, 0110, 1001, 1100, 1010, and 0111 can obtain 7 network nodes, and it can reach these 7 network nodes in two hops; For example, for network node 0100, by performing exclusive OR with 0101, 0011, 0110, 1001, 1100, 1010, and 0111, it can obtain 7 network nodes 0001, 0111, 0010, 1101, 1000, 1110, and 0011, and it can reach them in two hops. Exclusive OR with 1011, 1110, 1101, and 1111 can obtain 4 network nodes that can be reached in three hops; For example, for network node 0100, by performing exclusive OR with 1011, 1110, 1101, and 1111, it can obtain network nodes 1111, 1010, 1001, and 1011, and it can reach them after three hops.

[0299] For the 8 network nodes 0000, 0001, 0010, 0011, 1000, 1001, 1010, and 1011: For each network node, the link relationships with the other 15 network nodes are as follows: By performing exclusive OR operations with 0011, 0010, 0100, and 1000, the 4 network nodes directly connected to it can be obtained; 4 adjacent network nodes can be directly reached in one hop. For example, for network node 0001, by performing exclusive OR operations with 0011, 0010, 0100, and 1000, the network nodes 0010, 0011, 0101, and 1001 can be directly connected and can be directly routed; By performing exclusive OR operations with 0101, 0001, 0110, 1011, 1100, 1010, and 0111, 7 network nodes can be obtained, and these 7 network nodes can be reached in two hops; For example, for network node 0001, by performing exclusive OR operations with 0101, 0001, 0110, 1011, 1100, 1010, and 0111, the 7 network nodes 0100, 0000, 0111, 1010, 1101, 1011, and 0110 can be obtained and can be reached in two hops; By performing exclusive OR operations with 1001, 1110, 1101, and 1111, the 4 network nodes can be reached in three hops; For example, for network node 0001, by performing exclusive OR operations with 1001, 1110, 1101, and 1111, the network nodes 1000, 1111, 1100, and 1110 can be obtained and can be reached after three hops.

[0300] The network diameter between the network nodes of the above four - dimensional hypercube interconnection network is 3.

[0301] In this embodiment, a routing method for a four - dimensional hypercube interconnection network is also provided, which is applied to the topological structure of any of the above four - dimensional hypercube interconnection networks. Figure 23 It is a schematic diagram of a routing method for a four - dimensional hypercube interconnection network according to an embodiment of the present application. As Figure 23 shown, the method may but is not limited to include the following steps:

[0302] Step S2302, obtain the start node identifier of the start routing node in the four - dimensional hypercube interconnection network, and the end node identifier of the end routing node in the four - dimensional hypercube interconnection network;

[0303] Step S2304, according to the node set where the start routing node is located, split the operation result of the bit - by - bit exclusive OR operation between the start node identifier and the end node identifier into a target coding sequence;

[0304] Step S2306, according to the start node identifier and the target coding sequence, calculate the routing path from the start routing node to the end routing node 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 interconnection network is reduced to 3 in this connection mode, thereby reducing the network diameter of the entire interconnection network. Therefore, the technical problem of large network communication delay in the multi-dimensional hypercube interconnection network can be solved, and the technical effect of reducing the network communication delay in the multi-dimensional hypercube interconnection network can be achieved.

[0307] In an optional example, it can be, but is not limited to, the following method to split the operation result of the bitwise exclusive OR operation between the starting node identifier and the final node identifier into a target coding sequence according to the node set where the starting routing node is located: determine the connection relationship between the starting routing node and the final routing node according to the operation result; in the case where the connection relationship is that the starting routing node is directly connected to the final routing node, determine the target routing path as directly routing from the starting routing node to the final routing node; in the case where the connection relationship is that the starting routing node is not directly connected to the final routing node, search for the node set where the starting routing node is located and the target coding sequence corresponding to the operation result from the node sets, exclusive OR values, and coding sequences with corresponding relationships.

[0308] In an optional example, after determining the connection relationship between the starting routing node and the final routing node according to the operation result, in the case where the connection relationship is that the starting routing node is directly connected to the final routing node, determine the target routing path as directly routing from the starting routing node to the final routing node.

[0309] In an optional example, it is possible but not limited to find the node set where the starting routing node is located and the target coding sequence corresponding to the operation result from the node set with a corresponding relationship, XOR value, and coding sequence in the following ways: When the node set where the starting routing node is located is the first node set and the operation result is 0011, 0110, 1001, 1100, 1010, or 0101, determine that the target coding sequence is the two one-hot encodings of the operation result arranged in ascending order; When the node set where the starting routing node is located is the first node set and the operation result is 0111, determine that the target coding sequence is 0100 and 0011; When the node set where the starting routing node is located is the first node set and the operation result is 1011, 1110, or 1101, determine that the target coding sequence is the three one-hot encodings of the operation result arranged in ascending order; When the node set where the starting routing node is located is the first node set and the operation result is 1111, determine that the target coding sequence is 0100, 0011, and 1000; When the node set where the starting routing node is located is the second node set and the operation result is 0101, 0110, 1100, or 1010, determine that the target coding sequence is the two one-hot encodings of the operation result arranged in descending order; When the node set where the starting routing node is located is the second node set and the operation result is 0001, determine that the target coding sequence is 0011 and 0010; When the node set where the starting routing node is located is the second node set and the operation result is 1011, determine that the target coding sequence is 0011 and 1000; When the node set where the starting routing node is located is the second node set and the operation result is 0111, determine that the target coding sequence is 0011 and 0100; When the node set where the starting routing node is located is the second node set and the operation result is 1110 or 1101, determine that the target coding sequence is the three one-hot encodings of the operation result arranged in descending order; When the node set where the starting routing node is located is the second node set and the operation result is 1001, determine that the target coding sequence is 0011, 1000, and 0010; When the node set where the starting routing node is located is the second node set and the operation result is 1111, determine that the target coding sequence is 0011, 1000, and 0100.

[0310] In an optional example, it is possible but not limited to calculate the routing path from the starting routing node to the final routing node based on the starting node identifier and the target coding sequence to obtain the target routing path: Perform a bitwise XOR operation on the starting node identifier and the first coding in the target coding sequence to obtain the identifier of the next hop; Perform a bitwise XOR operation on the identifier of the next hop and the next coding in the target coding sequence until the last coding in the target coding sequence to obtain the target routing path.

[0311] In an alternative embodiment, a routing algorithm for a topological structure applied to a four-dimensional hypercube interconnect network is provided. In this routing algorithm, the network nodes in the four-dimensional hypercube interconnect network are divided into N 1 ={0100, 0101, 0110, 0111, 1100, 1101, 1110, 1111} and N 2 ={0000, 0001, 0010, 0011, 1000, 1001, 1010, 1011}. For a routing request, the source routing node (i.e., the above-mentioned starting routing node) is denoted as S, and the destination routing node (i.e., the above-mentioned final routing node) is denoted as D. This routing algorithm may but is not limited to include the following steps:

[0312] Step 1: The source routing node S and the destination routing node D are exclusive-ORed bit by bit, and the result is denoted as I;

[0313] Step 2: Determine the value of the source routing node S. If it belongs to N 1 , go to Step 3; if it belongs to N 2 , go to Step 4;

[0314] Step 3: Determine the value of I: If the value of I is one of 0001, 0010, 0100, 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, 0101, split I into two one-hot encodings I = I 1 ^I 2 = 0001^0100, and then in ascending order, the two one-hot encodings are exclusive-ORed with the routing node S respectively; the routing ends. For example: S is the routing node 0100, D is the routing node 0001, after bitwise exclusive-OR, I = 0101, split I into two one-hot encodings I = I 1 ^I 2 = 0001^0100, and then in ascending order, the two one-hot encodings are exclusive-ORed with the routing node S respectively:

[0316]

[0317] If the value of I is 0111, split I, I = I 1 ^I 2 = 0100^0011, I 1 , I 2Perform exclusive OR with the routing node S in sequence; the routing ends. For example: S is the routing node 0100, D is the routing node 0011, after performing bitwise exclusive OR, I = 0111, split I into two one-hot encodings I = I 1 ^I 2 = 0100 ^ 0011, then in sequential order, the two one-hot encodings are respectively exclusive ORed with the routing node S:

[0318]

[0319] If the value of I is one of 1011, 1110, 1101, split I into three one-hot encodings, and then in ascending order, the three one-hot encodings are respectively exclusive ORed with the routing node S; the routing ends. For example: S is the routing node 0100, D is the routing node 1111, after performing bitwise exclusive OR, I = 1011, split I into three one-hot encodings I = I 1 ^I 2 ^I 3 = 0001 ^ 0010 ^ 1000, then in ascending order, the three one-hot encodings are respectively exclusive ORed with the routing node S:

[0320]

[0321] If the value of I is 1111, split I, I = I 1 ^I 2 ^I 3 = 0100 ^ 0011 ^ 1000, according to I 1 , I 2 , I 3 Perform exclusive OR with the routing node S in the way of; the routing ends. For example: S is the routing node 0100, D is the routing node 1011, after performing bitwise exclusive OR, I = 1111, split I into three one-hot encodings I = I 1 ^I 2 ^I 3 = 0100 ^ 0011 ^ 1000, then according to I 1 , I 2 , I 3 sequence, perform exclusive OR with the routing node S:

[0322]

[0323] Fourth step: Judge the value of I: If the value of I is one of 0011, 0010, 0100, 1000, it means that the source routing node S is directly connected to the destination routing node D and can be directly routed.

[0324] If the value of I is one of 0101, 0110, 1100, 1010, split I into two one-hot encodings, and then in descending order, the two one-hot encodings are respectively XORed with the routing node S; the routing ends. Example: S is the routing node 0001, D is the routing node 0100, after bitwise XOR, I = 0101, split I into two one-hot encodings I = I 1 ^I 2 = 0001 ^ 0100, and then in ascending order, the two one-hot encodings are respectively XORed with the routing node S:

[0325]

[0326] If the value of I is 0001, split I, I = I 1 ^I 2 = 0011 ^ 0010, I 1 , I 2 In sequence, they are respectively XORed with the routing node S; the routing ends. For example: S is the routing node 0001, D is the routing node 0000, after bitwise XOR, I = 0001, split I into two one-hot encodings I = I 1 ^I 2 = 0011 ^ 0010, then I 1 , I 2 In order, the two one-hot encodings are respectively XORed with the routing node S:

[0327]

[0328] If the value of I is 1011, split I, I = I 1 ^I 2 = 0011 ^ 1000, I 1 , I 2 In sequence, they are respectively XORed with the routing node S; the routing ends. For example: S is the routing node 0001, D is the routing node 1010, after bitwise XOR, I = 1011, split I into two one-hot encodings I = I 1 ^I 2 = 0011 ^ 1000, then I 1 , I 2 In order, the two one-hot encodings are respectively XORed with the routing node S:

[0329]

[0330] If the value of I is 0111, split I, I = I 1 ^I 2 = 0011 ^ 0100, I 1 , I2 Perform exclusive OR with the routing node S in sequence; routing ends. For example: S is the routing node 0001, D is the routing node 0110, after performing bitwise exclusive OR, I = 0111, split I into two one-hot encodings I = I 1 ^I 2 = 0011 ^ 0100, then I 1 , I 2 In sequence, perform exclusive OR of the two one-hot encodings with the routing node S respectively:

[0331]

[0332] If the value of I is one of 1110, 1101, split I into three one-hot encodings, and then in the order of I 1 , I 2 , I 3 Perform exclusive OR with the routing node S. For example: S is the routing node 0001, D is the routing node 1100, after performing bitwise exclusive OR, I = 1101, split I into three one-hot encodings I = I 1 ^I 2 ^I 3 = 1000 ^ 0100 ^ 0001, then in the order of I 1 , I 2 , I 3 Perform exclusive OR with the routing node S in sequence:

[0333]

[0334] If the value of I is 1001, split I, I = I 1 ^I 2 ^I 3 = 0011 ^ 1000 ^ 0010, then in the order of I 1 , I 2 , I 3 Perform exclusive OR with the routing node S in sequence. For example: S is the routing node 0001, D is the routing node 1000, after performing bitwise exclusive OR, I = 1001, split I into three one-hot encodings I = I 1 ^I 2 ^I 3 = 0011 ^ 1000 ^ 0010, then in the order of I 1 , I 2 , I 3 Perform exclusive OR with the routing node S in sequence:

[0335]

[0336] If the value of I is 1111, split I, I = I1 ^I 2 ^I 3 = 0011^1000^0100, and then in the order of I 1 , I 2 , I 3 order, perform exclusive OR with the routing node S. For example: if S is the routing node 0001 and D is the routing node 1110, after performing bitwise exclusive OR, I = 1111. Split I into three one-hot encodings I = I 1 ^I 2 ^I 3 = 0011^1000^0100, and then in the order of I 1 , I 2 , I 3 order, perform exclusive OR with the routing node S:

[0337]

[0338] Compared with the traditional four-dimensional hypercube structure network, the above four-dimensional hypercube interconnection network has a shorter network diameter and can effectively reduce the network transmission delay. The routing algorithm of this four-dimensional hypercube interconnection network is simple and easy to implement in hardware.

[0339] In this embodiment, a topological structure of an interconnection network is further provided. The interconnection network includes 2 N node sets, each node set includes N network nodes, the interconnection network is divided into 2 N-3 sub-networks, and N is a positive integer greater than 2; each of the 2 N-3 sub-networks is used as a target sub-network and includes 8 node sets. The 8 node sets included in the target sub-network are divided into a first group of sets and a second group of sets. The first group of sets and the second group of sets respectively include 4 node sets. The 4 node sets in the first group of sets are connected to the 4 node sets in the second group of sets in one-to-one correspondence; the 4 node sets in the first group of sets are sequentially connected in a ring. The 4 node sets in the second group of sets 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 N network nodes included in it, and the N network nodes included in each node set are connected to each other pairwise.

[0340] Through the above topological structure, a topological structure of an interconnected network with the number of network nodes not matching the number of network nodes that can be provided in a multi-dimensional hypercube interconnected network can be established, avoiding or reducing the occurrence of idle network nodes. Therefore, the technical problem that the topological structure of the interconnected network will cause a large amount of resource waste can be solved, and the technical effect of reducing the resource waste of the topological structure of the interconnected network can be achieved.

[0341] Optionally, in this embodiment, when N is greater than 3, the interconnected network is divided into at least two sub-networks, the at least two sub-networks are connected in sequence, and the eight node sets included in the target sub-network are connected in one-to-one correspondence with the eight node sets included in the reference sub-network, where the reference sub-network is the sub-network adjacent to the target sub-network in the connection of the at least two 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, where the set identifier field is used to record the set identifier of the target node set where each network node is located, and the connection identifier field is used to record the set identifier of the reference node set connected through each network node by the target node set.

[0343] Optionally, in this embodiment, 2 N The set identifiers of the node sets are integers from 0 to 2 N-1 inclusive.

[0344] Optionally, in this embodiment, the four target node sets in the first group of sets include the fifth node set, the sixth node set, the seventh node set, and the 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 alternative embodiment, taking N as 3, the interconnection network includes 8 node sets, each node set includes 3 network nodes, the interconnection network is divided into 1 sub-network, and the 8 node sets included in this sub-network as the target sub-network are divided into a first group of sets and a second group of sets. The first group of sets and the second group of sets each include 4 node sets. The 4 node sets in the first group of sets are connected to the 4 node sets in the second group of sets in one-to-one correspondence; the 4 node sets in the first group of sets are connected in sequence to form a ring. The 4 node sets in the second group of sets 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 included, and the 3 network nodes included in each node set are connected to each other pairwise.

[0346] Figure 24 is a structural block diagram of a topological structure of an interconnection network according to an embodiment of the present application, as Figure 24 shown. Each node set can be regarded as, but not limited to, a triangular structure, and the target sub-network can be regarded as, but not limited to, a three-dimensional hypercube structure. Each network node is numbered as (i, j), where i represents the number of the triangle, 0 ≤ i ≤ 7; j represents that the network node is connected to the jth triangular structure; it can be known that the network node numbered (i, j) is connected to the network node numbered (j, i). For example, the network node (3, 1) is located in the 3rd triangular structure and is connected to the network node (1, 3) of the 1st triangular structure.

[0347] There are 24 network nodes in this interconnection network. The network diameter between network nodes within the same triangle is 1, the diameter of the entire topological network is 5, and the out-degree and in-degree of each network node are 3.

[0348] In this embodiment, a routing method for an interconnection network is further provided, which is applied to the topological structure of any of the above-mentioned interconnection networks. This routing method is used to route from a starting routing node in the target sub-network to a final routing node in the target sub-network. Figure 25 is a schematic Figure 1 of a routing method for an interconnection network according to an embodiment of the present application, as Figure 25 shown. This method can include, but is not limited to, the following steps:

[0349] Step S2502, detecting the positional relationship between the starting routing node and the final routing node;

[0350] Step S2504: Calculate the shortest routing path from the starting routing node to the final routing node according to the positional relationship to obtain the target routing 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, a topological structure of an interconnected network with the number of network nodes established not matching the number of network nodes that can be provided in a multi-dimensional hypercube interconnected network is created, avoiding or reducing the appearance of idle network nodes. Therefore, the technical problem that the topological structure of the interconnected network can cause significant resource waste can be solved, achieving the technical effect of reducing the resource waste of the topological structure of the interconnected network.

[0353] Optionally, in this embodiment, the positional relationship between the starting routing node and the final routing node can be detected by, but not limited to, the following method: Obtain the starting node identifier of the starting routing node and the final node identifier of the final routing node; Determine the positional relationship according to 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. Among them, the set identifier field is used to record the set identifier of the target node set where each network node is located, and the connection identifier field is used to record the set identifier of the reference node set connected through each network node by the target node set; The positional relationship can be determined by, but not limited to, the following method: Detect whether the starting set identifier in the starting node identifier is equal to the final set identifier in the final node identifier; In the case where the starting set identifier is equal to the final set identifier, determine that the positional relationship is that the starting routing node and the final routing node are in the same node set; In the case where the starting set identifier is not equal to the final set identifier, detect whether the starting connection identifier in the starting node identifier is equal to the final set identifier; In the case where the starting connection identifier is equal to the final set identifier, determine that the positional relationship is that the starting routing node and the final routing node are in different node sets, but the final node sets where the starting routing node and the final routing node are located are directly connected; In the case where the starting connection identifier is not equal to the final set identifier, determine that the positional relationship is that the starting routing node and the final routing node are in different node sets, and the final node sets where the starting routing node and the final routing node are located are not directly connected.

[0355] Optionally, in this embodiment, the shortest routing path from the starting routing node to the final routing node may be calculated according to the positional relationship in, but not limited to, the following manner to obtain the target routing path: when the positional relationship is that the starting routing node and the final routing node are in the same node set, determine that the shortest routing path is to directly route from the starting routing node to the final routing node; when the positional relationship is that the starting routing node and the final routing node are in different node sets, calculate the shortest routing path from the starting routing node to the final routing node according to the starting node identifier of the starting routing node and the final node identifier of the final routing node to obtain the target routing path.

[0356] Optionally, in this embodiment, the shortest routing path from the starting routing node to the final routing node may be calculated according to the starting node identifier of the starting routing node and the final node identifier of the final routing node in, but not limited to, the following manner to obtain the target routing path: when the positional relationship also indicates that the final node set where the starting routing node and the final routing node are located is directly connected, determine that the next hop is the first routing node in the final node set that is connected to the starting node set where the starting routing node is located. Wherein, when the first routing node is the final routing node, determine that the shortest routing path is to route from the starting routing node to the final routing node; when the first routing node is not the final routing node, determine that the shortest routing path includes the starting routing node, the first routing node, and the final routing node; when the positional relationship also indicates that the final node set where the starting routing node and the final routing node are located is not directly connected, detect whether there is a second routing node in the starting node set where the starting routing node is located that is directly connected to the final node set where the final routing node is located; when there is a second routing node in the starting node set, determine that the next hop is the second routing node, and the second hop is the third routing node in the final node set that is directly connected to the second routing node; when the third routing node is the final routing node, determine that the shortest routing path includes the starting routing node, the second routing node, and the final routing node; when the third routing node is not the final routing node, determine that the shortest routing path includes the starting routing node, the second routing node, the third routing node, and the final routing node; when there is no second routing node in the starting node set, calculate the shortest routing path from the starting routing node to the final routing node according to the binary numbers of the starting node identifier and the final node identifier to obtain the target routing path.

[0357] 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. The set identifier field is used to record the set identifier of the target node set where each network node is located, and the connection identifier field is used to record the set identifier of the reference node set connected by the target node set through each network node. 2 N The set identifiers of the two node sets are integers from 0 to 2 N-1 ; when N is 3, the shortest routing path from the starting routing node to the final routing node can be calculated according to the binary numbers of the starting node identifier and the final node identifier in the following manner, but not limited to this: perform a bitwise exclusive OR 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 operation result; when the operation result is 111 and the starting set identifier belongs to the target identifier set, determine that the shortest routing path is from the starting routing node to the intermediate node set with the first set identifier, and then from the intermediate node set with the first set identifier to the final routing node, where the first set identifier is the bitwise exclusive OR result of the binary number of the starting set identifier and 011, and the target identifier set includes 0, 1, 2, and 3; when the operation result is 111 and the starting set identifier does not belong to the target identifier set, determine that the shortest routing path is from the starting routing node to the intermediate node set with the second set identifier, and then from the intermediate node set with the second set identifier to the final routing node, where the second set identifier is the bitwise exclusive OR result of the binary number of the starting set identifier and 010, and the target identifier set includes 0, 1, 2, and 3; when the operation result is 101, determine that the shortest routing path is from the starting routing node to the intermediate node set with the third set identifier, and then from the intermediate node set with the third set identifier to the final routing node, where the third set identifier is the bitwise exclusive OR result of the binary number of the starting set identifier and 100; when the operation result is other operation results except 111 and 101, determine that the shortest routing path is from the starting routing node to the intermediate node set with the fourth set identifier, and then from the intermediate node set with the fourth set identifier to the final routing node, where the fourth set identifier is the bitwise exclusive OR result of the binary number of the starting set identifier and 010.

[0358] In an alternative embodiment, taking N equal to 3, that is, the combination of the triangular structure and the three-dimensional hypercube structure as an example, a routing method for an interconnected network is provided. The source routing node S=(i S , i S ) is the above-mentioned starting routing node, and the target routing node D=(i D , j D ) is the above-mentioned final routing node. The routing method includes the following steps:

[0359] Step 1: Determine whether i S and i D are equal: If i S = i D , it indicates that S and D are in the same triangle structure. S can reach D by performing one-step routing inside the triangle, and the routing ends. If i S ≠ i D , it indicates that S and D are not in the same triangle structure, and proceed to Step 2.

[0360] Step 2: Determine whether j S and i D are equal: If j S = i D , it indicates that the triangle structures where S and D are located are directly connected, and proceed to Step 4. If j S ≠ i D , it indicates that S is not directly connected to the triangle structure where D is located, and proceed to Step 3.

[0361] Step 3: Determine whether there is a node directly connected to the triangle structure where D is located inside the triangle where S is located. If there is, perform routing inside the triangle where S is located to the node directly connected to the triangle structure where D is located, update S, and proceed to Step 4. If not, proceed to Step 6.

[0362] Step 4: At this time, the triangle structures where S and D are located are directly connected. Then, directly route from S to the triangle structure where D is located. Routing method: (i S , i D ) → (i D , i S ). Update the value of S: S = (i D , i S ), and proceed to Step 5.

[0363] Step 5: Determine whether i S and j D are equal: If i S = j D is equal, the routing ends. If i S ≠ j D , perform routing (i D , i S ) → (i D , j D ), that is, perform routing inside the triangle structure where D is located to D, and the routing ends.

[0364] Step 6: The binary of i S and i DThe binary numbers are XORed bit by bit, and the result is denoted as I. If I = 111, go to the seventh step; if I = 101, go to the eighth step; otherwise, go to the ninth step.

[0365] Seventh step: I = 111: Determine whether i S belongs to {0, 1, 2, 3}. If it does, go to 7.1; otherwise, go to 7.2.

[0366] 7.1 Calculate bin(i S ) ^ 011. The triangle where S is located is connected to the triangle numbered bin(i S ) ^ 011. The triangle numbered bin(i S ) ^ 011 is connected to the triangle where D is located. S needs to first route to the triangle numbered bin(i S ) ^ 011 in the same routing method as above; then route from the triangle numbered bin(i S ) ^ 011 to D in the same routing method as above; the routing ends.

[0367] 7.2 Calculate bin(i S ) ^ 010. The triangle where S is located is connected to the triangle numbered bin(i S ) ^ 010. The triangle numbered bin(i S ) ^ 010 is connected to the triangle where D is located. S needs to first route to the triangle numbered bin(i S ) ^ 010 in the same routing method as above; then route from the triangle numbered bin(i S ) ^ 010 to D in the same routing method as above; the routing ends.

[0368] Eighth step: Calculate bin(i S ) ^ 100. The triangle where S is located is connected to the triangle numbered bin(i S ) ^ 100. The triangle numbered bin(i S ) ^ 100 is connected to the triangle where D is located. S needs to first route to the triangle numbered bin(i S ) ^ 100 in the same routing method as above; then route from the triangle numbered bin(i S ) ^ 100 to D in the same routing method as above; the routing ends.

[0369] Ninth step: Calculate bin(i S ) ^ 010. The triangle where S is located is connected to the triangle numbered bin(i S ) ^ 010. The triangle numbered bin(i S ) ^ 010 is connected to the triangle where D is located. S needs to first route to the triangle numbered bin(i S ) ^ 010 in the same routing method as above; then route from the triangle numbered bin(iS )^010 triangles are routed to D in the same routing method as above; the routing ends.

[0370] With the source routing node S = (i S , j S ) = (1, 21) and the target routing node D = (i D , j D ) = (3, 0) as an example, the routing method includes the following steps:

[0371] The first step: Determine whether i S and i D are equal: i S ≠i D , indicating that S and D are not in the same triangular structure, and enter the second step.

[0372] The second step: Determine whether j S and i D are equal: j S ≠i D , indicating that S is not directly connected to the triangular structure where D is located, and enter the third step.

[0373] The third step: Determine whether there is a node in the triangle where S is located that is directly connected to the s triangular structure where D is located. If there is, perform routing within the triangle where S is located, route to the node that is directly connected to the s triangular structure where D is located, and perform routing: (i S , j S ) → (i S , i D ): (1, 2) → (1, 3), that is, perform routing within the triangular structure where S is located, route to the routing node (1, 3) that is directly connected to the triangular structure where D is located, and update the value of S: s = (1, 3), and enter the fourth step.

[0374] The fourth step: At this time, the triangular structures where S and D are located are directly connected, so route directly from S to the triangular structure where D is located. The routing method: (i S , i D ) → (i D , i S ): (1, 3) → (3, 1), and update the value of S: S = (i D , i S ) = (3, 1), and enter the fifth step.

[0375] The fifth step: Determine whether i S and j D are equal: i S ≠j D , perform routing (i D , i S ) → (iD , j D ): (3, 1) → (3, 0), that is, route inside the triangular structure where D is located, route to D, and the routing ends.

[0376] Taking the source routing node S = (i S , j S ) = (1, 3) and the target routing node D = (i D , j D ) = (6, 7) as an example, the routing method includes the following steps:

[0377] The first step: Judge whether i S and i D are equal: i S ≠i D , indicating that S and D are not in the same triangular structure, and enter the second step.

[0378] The second step: Judge whether j S and i D are equal: j S ≠i D , indicating that S is not directly connected to the triangular structure where D is located, and enter the third step.

[0379] The third step: Judge whether there is a node directly connected to the s triangular structure where D is located inside the triangle where S is located. If not, enter the sixth step.

[0380] The sixth step: The binary of i s is XORed with the binary of i D bit by bit, and the result is denoted as I. I = 111, enter the seventh step.

[0381] The seventh step: I = 111: Judge whether i S belongs to {0, 1, 2, 3}. If it belongs, enter 7.1.

[0382] 7.1 Calculate bin(i S ) ^ 011 = 001 ^ 0I1 = 010. The triangle where S is located is connected to the 010th (i.e., the 2nd) triangle, and the 010th triangle is connected to the triangle where D is located. S needs to first route to the 010th triangle, and the routing method is the same as above; then route from the 010th triangle to D, and the routing method is the same as above, which will not be elaborated here; the routing ends.

[0383] Taking the source routing node S = (i S , j S ) = (0, 2) and the target routing node D = (i D , j D ) = (1, 3) as an example, the routing method includes the following steps:

[0384] Step 1: Determine whether i S and i D are equal: i S ≠i D , indicating that S and D are not in the same triangular structure, and proceed to Step 2.

[0385] Step 2: Determine whether j S and i D are equal: j S ≠i D , indicating that S is not directly connected to the triangular structure where D is located, and proceed to Step 3.

[0386] Step 3: Determine whether there is a node in the triangle where S is located that is directly connected to the s triangular structure where D is located. If not, proceed to Step 6.

[0387] Step 6: The binary of i S is XORed with the binary of i D by bit, and the result is denoted as I. If I≠111 and I≠101, proceed to Step 9.

[0388] Step 9: Calculate bin(i S )^010 = 000^010 = 010. The triangle where S is located is connected to the 010th (i.e., the second) triangle, and the 010th triangle is connected to the triangle where D is located. S needs to be routed to the 010th triangle first, and the routing method is the same as above; then it is routed from the 010th triangle to D, and the routing method is the same as above, which will not be elaborated here; the routing ends.

[0389] In a network that requires 24 routing nodes, a four-dimensional cube contains 16 nodes. Therefore, a five-dimensional cube network topology needs to be adopted. A five-dimensional cube contains 32 routing nodes, the network diameter is 5, the out-degree and in-degree of each routing node are 5, and 8 routing nodes are idle, resulting in a waste of resources. Therefore, in order to save resources, the above-mentioned topological structure combining triangles and three-dimensional hypercubes is proposed. This topological structure contains 24 routing nodes, the network diameter is still 5, but the out-degree and in-degree of each routing node are 3, which is more conducive to the layout and wiring of the backend. And a specific routing algorithm is given. The algorithm scheme is simple and easy to implement in hardware.

[0390] In this embodiment, another topological structure of an interconnection network is further provided. The interconnection network includes N node sets, each node set includes 8 network nodes, and N is a positive integer greater than 2; the 8 network nodes included in each node set are divided into a first node set and a second node set, the first node set and the second node set each include 4 network nodes, and the 4 network nodes in the first node set are connected to the 4 network nodes in the second node set in one-to-one correspondence; the 4 network nodes in the first node set are sequentially 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, 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 target network nodes included in each node set are connected to the reference network nodes at the same positions in the other N - 1 node sets.

[0391] Through this topological structure, while expanding the number of network nodes, the growth of the network diameter is controlled, thereby controlling the growth of network latency. Therefore, the technical problem of relatively large network communication latency in a multi-dimensional hypercube interconnection network can be solved, and the technical effect of reducing the network communication latency of the multi-dimensional hypercube interconnection network can be achieved.

[0392] Optionally, in this embodiment, the 4 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 embodiment, when N is 3, the topological structure of the interconnection network can be regarded as a combination of a three-dimensional hypercube structure and a triangular structure. Figure 26 It is a schematic diagram of the construction process of a topological structure of an interconnection network according to an embodiment of the present application. Figure 1 , such as Figure 26As shown, the construction process of the topology structure of the interconnection network may but is not limited to include: First, construct 3 three-dimensional hypercube structures. Then, each three-dimensional hypercube structure is encoded in the form of 3-bit binary numbers, and the three three-dimensional hypercube structures are numbered 0, 1, and 2 respectively. Finally, the network nodes with the same encoding in the three structures (i.e., the network nodes at the same position) are connected in the connection mode of a triangular network. For example, the routing nodes with the encoding of 000 in the three three-dimensional hypercube structures numbered 0, 1, and 2 are connected in the connection mode of a triangular network. After all the nodes are connected in the connection mode of a triangular network, the topology structure of the interconnection network is obtained. In the topology structure of this interconnection network, there are 24 network nodes. The network diameter between the 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 embodiment, when N is 4, the topology structure of the interconnection network can be regarded as a combination of a three-dimensional hypercube structure and a triangular pyramid structure. Figure 27 It is a schematic diagram of the construction process of the topology structure of an interconnection network according to an embodiment of the present application. Figure 2 , such as Figure 27 As shown, the construction process of the topology structure of the interconnection network may but is not limited to include: First, construct 4 three-dimensional hypercube structures. Then, the network nodes in each three-dimensional hypercube structure are encoded as three-bit binary numbers, and the 4 three-dimensional hypercube structures are numbered 0, 1, 2, and 3 respectively. Finally, the network nodes with the same encoding in the four structures are connected in the connection mode of a triangular pyramid network. For example, the routing nodes with the encoding of 000 in the four three-dimensional hypercube structures numbered 0, 1, 2, and 3 are connected in the connection mode of a triangular pyramid network. After all the nodes are connected in the connection mode of a triangular pyramid network, the topology structure of the interconnection network is obtained. There are 32 network nodes in the topology structure of this interconnection network. The network diameter between the 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, where the set identifier field is used to record the set identifier of the target node set where each network node is located, and the node identifier in the node identifier field is a 3-bit binary number.

[0396] Optionally, in this embodiment, the network nodes with the same node identifier field among the various node sets are connected to each other.

[0397] Optionally, in this embodiment, the highest bit of the identifier of the network nodes in the first node set is 1, and the highest bit of the identifier of the network nodes in the second node set is 0; the operation results of performing bitwise exclusive OR operations on the identifiers of the network nodes in the first node set with 001, 010, and 100 respectively are the identifiers of the 3 directly connected network nodes; the operation results of performing bitwise exclusive OR operations on the identifiers of the network nodes in the second node set with 011, 010, and 100 respectively are the identifiers of the 3 directly connected network nodes.

[0398] In this embodiment, a routing method for an interconnection network is further provided, which is applied to the topological structure of any of the above interconnection networks. This routing method is used to route from the starting routing node in the target sub-network to the final routing node in the target sub-network. Figure 28 It is a schematic diagram of a routing method for an interconnection network according to an embodiment of the present application. Figure 2 , such as Figure 28 shown. This method may but is not limited to including the following steps:

[0399] Step S2802: Detect the set relationship between the starting node set and the final node set according to the starting node set where the starting routing node is located and the final node set where the final routing node is located;

[0400] Step S2804: When the set relationship indicates that the starting node set and the final node set are the same node set, calculate the shortest routing path from the starting routing node to the final routing node to obtain the target routing path; when the set relationship indicates that the starting node set and the final node set are different node sets, determine that the target routing path includes a first-stage routing path and a second-stage routing path, where the first-stage routing path is to route from the starting routing node to the intermediate routing node, and the intermediate routing node is the network node in the final node set that is connected to the starting routing node, and the second-stage routing path is the shortest routing path from the intermediate routing node to the final routing node;

[0401] Step S2806: Route from the starting routing node to the final routing node according to the target routing path.

[0402] Through the above steps, while expanding the number of network nodes, the growth of the network diameter is controlled, thereby controlling the growth of network latency. Therefore, the technical problem of relatively large network communication latency in the multi-dimensional hypercube interconnection network can be solved, and the technical effect of reducing the network communication latency of the multi-dimensional hypercube interconnection network can be achieved.

[0403] Optionally, in this embodiment, before determining that the target routing path includes a first-segment routing path and a second-segment routing path, the second-segment routing path can be planned by, but not limited to, the following method: Obtain the intermediate node identifier of the intermediate routing node and the final node identifier of the final routing node; Calculate the shortest routing path from the intermediate routing node to the final routing node according to the intermediate node identifier, the final node identifier, and the node set where the intermediate routing node is located, to obtain the second-segment routing path.

[0404] Optionally, in this embodiment, the shortest routing path from the intermediate routing node to the final routing node can be calculated according to the intermediate node identifier, the final node identifier, and the node set where the intermediate routing node is located, by, but not limited to, the following method, to obtain the second-segment routing path: Determine the connection relationship between the intermediate routing node and the final routing node according to the intermediate node identifier, the final node identifier, and the node set where the intermediate routing node is located; Calculate the shortest routing path as the second-segment routing path according to the connection relationship and the node set where the intermediate routing node is located.

[0405] Optionally, in this embodiment, when 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 between the intermediate routing node and the final routing node can be determined by, but not limited to, the following method: When the intermediate routing node is in the first node set and the operation result of the bitwise exclusive OR operation between the intermediate node identifier and the final node identifier is one of 001, 010, and 100, determine that the connection relationship is a direct connection between the intermediate routing node and the final routing node; When the intermediate routing node is in the second node set and the operation result of the bitwise exclusive OR operation between the intermediate node identifier and the final node identifier is one of 011, 010, and 100, determine that the connection relationship is a direct connection between the intermediate routing node and the final routing node; When the intermediate routing node is in the first node set and the operation result of the bitwise exclusive OR operation between the intermediate node identifier and the final node identifier is a value other than 001, 010, and 100, determine that the connection relationship is not a direct connection between the intermediate routing node and the final routing node; When the intermediate routing node is in the second node set and the operation result of the bitwise exclusive OR operation between the intermediate node identifier and the final node identifier is a value other than 011, 010, and 100, determine that the connection relationship is not a direct connection between the intermediate routing node and the final routing node.

[0406] Optionally, in this embodiment, the shortest routing path can be calculated as the second-segment routing path according to the connection relationship and the node set where the intermediate routing node is located in the following manner, but not limited thereto: when the connection relationship is a direct connection between the intermediate routing node and the final routing node, determine that the second-segment routing path is 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, determine the next hop according to the operation result of the bitwise exclusive OR operation between the intermediate node identifier and the final node identifier and the node set where the intermediate routing node is located; determine the final routing node as the last hop, where the second-segment routing path includes the next hop and the last hop.

[0407] Optionally, in this embodiment, when 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 following method can be used but is not limited to determining the next hop according to the operation result of the bitwise exclusive OR operation between the intermediate node identifier and the final node identifier and the node set where the intermediate routing node is located: when the intermediate routing node is in the first node set and the operation result is 110 or 011, or when the intermediate routing node is in the second node set and the operation result is 110, split the operation result into two one-hot encodings; randomly select a target one-hot encoding from the two one-hot encodings; perform a bitwise exclusive OR operation between the intermediate node identifier and the target one-hot encoding to obtain the identifier of the next hop; when the intermediate routing node is in the first node set and the operation result is 101, split the operation result into 001 and 100; perform a bitwise exclusive OR operation between the intermediate node identifier and 001 to obtain the identifier of the next hop, where the result of the bitwise exclusive OR operation between the identifier of the next hop and 100 is the final node identifier; when the intermediate routing node is in the second node set and the operation result is 101, split the operation result into 100 and 001; perform a bitwise exclusive OR operation between the intermediate node identifier and 100 to obtain the identifier of the next hop, where the result of the bitwise exclusive OR operation between the identifier of the next hop and 001 is the final node identifier; when the intermediate 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 encoding from 010 and 011; perform a bitwise exclusive OR operation between the intermediate node identifier and the target encoding to obtain the identifier of the next hop; when the intermediate routing node is in the first node set and the operation result is 111, split the operation result into 100 and 011; perform a bitwise exclusive OR operation between the intermediate node identifier and 100 to obtain the identifier of the next hop, where the result of the bitwise exclusive OR operation between the identifier of the next hop and 011 is the final node identifier; when the intermediate routing node is in the second node set and the operation result is 111, split the operation result into 011 and 100; perform a bitwise exclusive OR operation between the intermediate node identifier and 011 to obtain the identifier of the next hop, where the result of the bitwise exclusive OR operation between the identifier of the next hop and 100 is the final node identifier.

[0408] In an alternative embodiment, taking N as 3 as an example, a routing method under the topological structure of the above-mentioned interconnection network is provided. 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 ), and the target routing node D = (i D , j D ), this routing method includes the following steps:

[0409] The first step: Determine iS and i D is equal to: If i S = i D , it indicates that S and D are in the same improved three-dimensional cube. S can reach D by performing one-step routing inside the improved three-dimensional cube. The routing method adopts the routing method in the above three-dimensional cube, and the routing ends; If i S ≠ i D , it indicates that S and D are not in the same triangle, and enter the second step.

[0410] Second step: i S ≠ i D is not equal: S first routes to the improved three-dimensional cube where D is located. The routing method adopts the routing method in the above three-dimensional cube, and the routing ends.

[0411] In another alternative embodiment, taking N = 4 as an example, another routing method under the topological structure of the above interconnection network is provided. 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; Assume the source routing node S = (i S , j S ), and the destination routing node D = (i D , j D ). This routing method includes the following steps:

[0412] First step: Determine whether i S and i D are equal: If i S = i D , it indicates that S and D are in the same improved three-dimensional cube. S can reach D by performing one-step routing inside the three-dimensional cube. The routing method adopts the routing method in the above three-dimensional cube, and the routing ends; If i S ≠ i D , it indicates that S and D are not in the same triangle, and enter the second step.

[0413] Second step: i S ≠ i D is not equal: S first routes to the improved three-dimensional cube where D is located. The routing method adopts the routing method in the above three-dimensional cube, and the routing ends.

[0414] Through the description of the above embodiments, those skilled in the art can clearly understand that the method according to the above embodiments can be implemented by means of software plus a necessary general hardware platform. Of course, it can also be implemented by hardware, but in many cases the former is a better implementation manner. Based on such an understanding, the technical solution of the present application, in essence, or the part that contributes to the prior art can be embodied in the form of a software product. The computer software product is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk), and includes several instructions for causing a terminal device (which may be a mobile phone, a computer, a server, or a network device, etc.) to execute the methods described in various embodiments of the present application.

[0415] In this embodiment, a routing device for a multi-dimensional hypercube interconnection network is further provided. This device is used to implement the above embodiments and preferred implementation manners, and those that have been described will not be repeated. As used hereinafter, the term "module" may be a combination of software and / or hardware that can implement a predetermined function. Although the devices described in the following embodiments are preferably implemented in software, implementation in hardware, or a combination of software and hardware is also possible and contemplated.

[0416] Figure 29 is a structural block diagram of a routing device for a multi-dimensional hypercube interconnection network according to an embodiment of the present application. As Figure 29 shown, the multi-dimensional hypercube interconnection network includes 2 N network nodes, where 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, and N is a positive integer greater than 2; each of the 2 N-3 sub-networks is used as a target sub-network and includes 8 target network nodes. 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 to the 4 target network nodes in the second node set in one-to-one correspondence; the 4 target network nodes in the first node set are sequentially 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; this routing device is used to route from the starting routing node in the target sub-network to the final routing node in the target sub-network. This device includes:

[0417] The detection module 2902 is configured to detect path information of the shortest routing path from the starting routing node to the ending routing node according to the starting node identifier of the starting routing node, the ending node identifier of the ending routing node, and the node set where the starting routing node is located, where the path information is used to indicate the number of routing hops of the shortest routing path;

[0418] The planning module 2904 is configured to, when the path information is used to indicate that the shortest routing path is a two-hop routing path, plan a target routing path according to the node set where the starting routing node is located and the node set where the ending routing node is located, where the target routing path is a routing path with at least two hops;

[0419] The routing module 2906 is configured to route from the starting routing node to the ending routing node according to the target routing path.

[0420] Through the above steps, for each target sub-network, the 8 target network nodes included therein 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 sequence to form 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. By connecting the first network node to the third network node and the fourth network node, and the second network node to the third network node and the fourth network node, the network diameter between the 8 target network nodes in each target sub-network is reduced from the traditional 3 to 2 in this connection mode, thereby reducing the network diameter of each target sub-network, and further reducing the network diameter of the entire interconnected network. When routing in each target sub-network, it is possible to route to other network nodes in at most two hops. For the case where two hops are required for routing, the target routing path is planned according to the node set where the starting routing node is located and the node set where the ending routing node is located. The planned target routing path is a routing path with at least two hops, thereby avoiding the phenomenon of deadlock in the planned target routing path. Therefore, the technical problem of possible deadlock in the routing process in the related art can be solved, and the technical effect of avoiding the deadlock phenomenon in the routing process can be achieved.

[0421] As an optional implementation manner, the apparatus is further configured to:

[0422] Determine a target set relationship between the starting routing node and the ending routing node according to the node set where the starting routing node is located and the node set where the ending 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 alternative implementation, the device is further configured to:

[0425] When the node set where the starting routing node is located is the first node set and the node set where the final routing node is located is the first node set, determine that the target set relationship is the first set relationship, where the first set relationship is used to indicate that the routing nodes are all located in the first node set;

[0426] When the node set where the starting routing node is located is the second node set and the node set where the final routing node is located is the second node set, determine that the target set relationship is the second set relationship, where the second set relationship is used to indicate that the routing nodes are all located in the second node set;

[0427] When the node set where the starting routing node is located is the first node set and the node set where the final routing node is located is the second node set, or when the node set where the starting routing node is located is the second node set and the node set where the final routing node is located is the first node set, determine that the target set relationship is the third set relationship, where the third set relationship is used to indicate that the routing nodes are located in different node sets.

[0428] As an alternative implementation, the device is further configured to: when the target set relationship is the first set relationship, determine that the target routing rule is the first routing rule, where the first routing rule is used to indicate planning a routing path in 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, determine that the target routing rule is the second routing rule, where the second routing rule is used to indicate planning a routing path in 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, determine that the target routing rule is the third routing rule, where the third routing rule is used to indicate routing to a reference routing node directly connected to the starting routing node in the node set where the final routing node is located in the first hop and then using the reference routing node as the current starting routing node to plan a routing path according to the first routing rule or the second routing rule.

[0431] As an alternative implementation, the device is further configured to: when the target routing rule is the first routing rule, determine a target routing direction according to the start node identifier;

[0432] Obtain a next-hop routing node in 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.

[0433] As an alternative implementation, the device is further configured to: when N is 3, the N identifiers of the two network nodes are three-bit binary numbers, the highest bits of the identifiers of the network nodes in the first node set are all 0, and the highest bits of the identifiers of the network nodes in the second node set are all 1:

[0434] When the start node identifier is 100 or 111, determine the target routing direction as the first routing direction;

[0435] When the start node identifier is 101 or 110, determine the target routing direction as the second routing direction, where the second routing direction is opposite to the first routing direction.

[0436] As an alternative implementation, the device is further configured to: when the target routing rule is the second routing rule, obtain a next-hop routing node of the start routing node in the second node set;

[0437] Determine the final routing node as the last-hop routing node to obtain the target routing path.

[0438] As an alternative implementation, the device is further configured to: when the start routing node is the first network node, determine the third network node as the next-hop routing node;

[0439] When the start routing node is the second network node, determine the fourth network node as the next-hop routing node;

[0440] When the start routing node is the third network node, determine the first network node as the next-hop routing node;

[0441] When the start routing node is the fourth network node, determine the second network node as the next-hop routing node.

[0442] As an alternative implementation, the device is further configured to: when the target routing rule is the third routing rule, determine the reference routing node as the first-hop routing node;

[0443] Determine a reference routing direction in the node set where the reference routing node is located according to the reference routing node;

[0444] Plan 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, and obtain the target routing path.

[0445] As an alternative implementation, the device is further configured to: when the reference routing node is located in the first node set:

[0446] When the reference node identifier of the reference routing node is 100 or 111, determine the reference routing direction as the third routing direction;

[0447] When the reference node identifier is 101 or 110, determine the reference routing direction as the fourth routing direction, where the fourth routing direction is opposite to the third routing direction;

[0448] Where N is 3, the identifiers of the 2 N network nodes are three-bit binary numbers, the highest bits of the identifiers of the network nodes in the first node set are all 0, and the highest bits of the identifiers of the network nodes in the second node set are all 1.

[0449] As an alternative implementation, the device 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, determine the direction where the third network node is located as the reference routing direction;

[0451] When the reference routing node is the second network node, determine the direction where the fourth network node is located as the reference routing direction;

[0452] When the reference routing node is the third network node, determine the direction where the first network node is located as the reference routing direction;

[0453] When the reference routing node is the fourth network node, determine the direction where the second network node is located as the reference routing direction.

[0454] As an alternative implementation, the device is further configured to:

[0455] Determine the routing node directly connected to the reference routing node in the reference routing direction as the routing node for the second hop;

[0456] In the case where the routing node of the second hop is the final routing node, determine the routing path that sequentially connects the starting routing node, the reference routing path, and the final routing node as the target routing path;

[0457] In the case where the routing node of the second hop is not the final routing node, determine the routing path that sequentially connects the starting routing node, the reference routing path, the routing node of the second hop, and the final routing node as the target routing path.

[0458] As an optional implementation manner, the apparatus is further configured to: determine the connection relationship between the starting routing node and the final routing node according to the starting node identifier, the final node identifier, and the node set where the starting routing node is located;

[0459] Determine the path information according to the connection relationship.

[0460] As an optional implementation manner, the apparatus is further configured to: perform a bitwise exclusive OR operation on the starting node identifier and the final node identifier to obtain an operation result;

[0461] Determine the connection relationship according to the operation result and the node set where the starting routing node is located.

[0462] As an optional implementation manner, the apparatus is further configured to: in the case where 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] In the case where the starting routing node is in the first node set and the operation result is one of 001, 010, and 100, determine that the connection relationship is a direct connection between the starting routing node and the final routing node;

[0464] In the case where the starting routing node is in the second node set and the operation result is one of 011, 010, and 100, determine that the connection relationship is a direct connection between the starting routing node and the final routing node;

[0465] In the case where the starting routing node is in the first node set and the operation result is a value other than 001, 010, and 100, determine that the connection relationship is not a direct connection between the starting routing node and the final routing node;

[0466] When the starting routing node is in the second node set and the operation result is a value other than 011, 010, and 100, it is determined that the connection relationship is that there is no direct connection between the starting routing node and the final routing node.

[0467] As an optional implementation manner, the device is further configured to: when the connection relationship is that there is a direct connection between the starting routing node and the final routing node, determine that the path information is used to indicate that the shortest routing path is a one-hop routing path;

[0468] When the connection relationship is that there is no direct connection between the starting routing node and the final routing node, determine that the path information is used to indicate that the shortest routing path is a two-hop routing path.

[0469] It should be noted that the above-mentioned various modules can be implemented by software or hardware. For the latter, it can be implemented in the following ways, but not limited to this: the above-mentioned modules are all located in the same processor; or, the above-mentioned various modules are respectively located in different processors in any combination form.

[0470] An embodiment of the present application further provides a computer-readable storage medium, in which a computer program is stored, and the computer program is configured to execute the steps in any one of the above method embodiments when running.

[0471] In an exemplary embodiment, the above computer-readable storage medium may include, but is not limited to: USB flash drive, read-only memory (ROM for short), random access memory (RAM for short), mobile hard disk, magnetic disk or optical disc and other various media that can store computer programs.

[0472] An embodiment of the present application further provides an electronic device, including a memory and a processor. A computer program is stored in the memory, and the processor is configured to run the computer program to execute the steps in any one of the above method embodiments.

[0473] In an exemplary embodiment, the above electronic device may further include a transmission device and an input / output device, where the transmission device is connected to the above processor, and the input / output device is connected to the above processor.

[0474] An embodiment of the present application further provides a computer program product, the computer program product includes a computer program, and the computer program realizes the steps in any one of the above method embodiments when executed by a processor.

[0475] Embodiments of the present application also provide another computer program product, including a non-volatile computer-readable storage medium storing a computer program, and when the computer program is executed by a processor, the steps in any of the above method embodiments are implemented.

[0476] Embodiments of the present application also provide a computer program, which 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 the processor executes the computer instructions, so that the computer device executes the steps in any of the above method embodiments.

[0477] Specific examples in this embodiment may refer to the examples described in the above embodiments and exemplary embodiments, and will not be repeated here.

[0478] Obviously, those skilled in the art should understand that the above modules or steps of the present application can be implemented by a general-purpose computing device. They can be concentrated on a single computing device or distributed on a network composed of multiple computing devices. They can be implemented by program codes executable by the computing device, so that they can be stored in a storage device and executed by the computing device. And in some cases, the steps shown or described can be executed in a different order from here, or they can be separately made into individual integrated circuit modules, or multiple modules or steps among them can be made into a single integrated circuit module to implement. Thus, the present application is not limited to any specific combination of hardware and software.

[0479] The above are only the preferred embodiments of the present application and are not used to limit the present application. For those skilled in the art, the present application can have various changes and modifications. Any modification, equivalent replacement, improvement, etc. made within the principle of the present application shall be included in the protection scope of the present application.

Claims

1. A routing method for a multidimensional hypercube interconnection network, characterized in that: The multidimensional hypercube interconnection network includes 2 N network nodes, N is the dimension of the multi-dimensional hypercube interconnection network, and the multi-dimensional hypercube interconnection network is divided into 2 N-3 subnetworks, N is a positive integer greater than 2; the 2 N-3 Each subnetwork in the subnetworks includes 8 target network nodes as a target subnetwork, and 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 respectively include 4 target network nodes, and the 4 target network nodes in the first node set are connected to the 4 target network nodes in the second node set in a one-to-one correspondence; the 4 target network nodes in the first node set are sequentially connected to form a ring, and 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 routing method 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 method comprises: Detecting path information of the shortest routing path from the starting routing node to the final routing node according to 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, wherein the path information is used to indicate the number of routing hops of the shortest routing path; In the case where the path information is used to indicate that the shortest routing path is a two-hop routing path, planning a target routing path according to the node set where the starting routing node is located and the node set where the final routing node is located, wherein the target routing path is a routing path of at least two hops; Routing from the starting routing node to the final routing node according to the target routing path.

2. The method according to claim 1, characterized in that: The planning of the target routing path according to the node set where the starting routing node is located and the node set where the final routing node is located includes: Determine a target set relationship between the starting routing node and the final routing node according to the node set where the starting routing node is located and the node set where the final routing node is located; The target routing rule corresponding to the target set relationship is searched from the set relationships and routing rules having corresponding relationships; and the target routing path is planned according to the target routing rule.

3. The method according to claim 2, characterized in that The determining the target set relationship between the starting routing node and the final routing node according to the node set where the starting routing node is located and the node set where the final routing node is located includes: When the node set where the start routing node is located is the first node set, and the node set where the final 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 to indicate that all routing nodes are located in the first node set; When the node set where the start routing node is located is the second node set, and the node set where the final routing node is located is the second node set, determining that the target set relationship is the second set relationship, wherein the second set relationship is used to indicate that all routing nodes are located in the second node set; When the node set where the starting routing node is located is the first node set and the node set where the final routing node is located is the second node set, or when the node set where the starting routing node is located is the second node set and the node set where the final routing node is located is the first node set, 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 node sets.

4. The method according to claim 3, characterized in that The searching for the target routing rule corresponding to the target set relationship from the set relationship and routing rules having a corresponding relationship includes: In a case where the target set relationship is the first set relationship, determining the target routing rule to be 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 start routing node; In a case where the target set relationship is the second set relationship, determining the target routing rule to be 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 start routing node; When the target set relationship is the third set relationship, the target routing rule is determined to be the third routing rule, wherein the third routing rule is used to indicate that after the first hop is routed to a reference routing node directly connected to the starting routing node in the node set where the final routing node is located, the reference routing node is used as the current starting routing node to plan a routing path according to the first routing rule or the second routing rule.

5. The method according to claim 4, characterized in that The planning of the target routing path according to the target routing rule includes: When the target routing rule is the first routing rule, determining the target routing direction according to the start node identifier; According to the target routing direction, a 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.

6. The method according to claim 5, characterized in that When N is 3, the 2 N When the identifiers of the network nodes in the first node set are three-digit binary numbers, the highest bits of the identifiers of the network nodes in the first node set are all 0, and the highest bits of the identifiers of the network nodes in the second node set are all 1, determining the target routing direction according to the start node identifier includes: When the starting node identifier is 100 or 111, determining the target routing direction to be the first routing direction; When the start node identifier is 101 or 110, the target routing direction is determined to be a second routing direction, wherein the second routing direction is opposite to the first routing direction.

7. The method according to claim 4, characterized in that The planning of the target routing path according to the target routing rule includes: When the target routing rule is the second routing rule, obtaining a next-hop routing node in the second node set according to the starting routing node; The final routing node is determined as the routing node of the last hop, and the target routing path is obtained.

8. The method according to claim 7, characterized in that The acquiring the next hop routing node in the second node set according to the starting routing node includes: When the starting routing node is the first network node, determining the third network node as a next-hop routing node; When the starting routing node is the second network node, determining the fourth network node as a next-hop routing node; In a case where the starting routing node is the third network node, determining the first network node as a next-hop routing node; When the starting routing node is the fourth network node, the second network node is determined as a next-hop routing node.

9. The method according to claim 4, characterized in that The planning of the target routing path according to the target routing rule includes: When the target routing rule is the third routing rule, determining the reference routing node as the first-hop routing node; Determine, according to the reference routing node, a reference routing direction in a node set where the reference routing node is located; 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 according to the reference routing direction to obtain the target routing path.

10. The method according to claim 9, characterized in that In a case where the reference routing node is located in the first node set, determining, according to the reference routing node, a reference routing direction in the node set where the reference routing node is located, includes: When the reference node identifier of the reference routing node is 100 or 111, determining that the reference routing direction is a third routing direction; When the reference node identifier is 101 or 110, determining that the reference routing direction is a fourth routing direction, wherein the fourth routing direction is opposite to the third routing direction; Where N is 3, the 2 N The identifiers of the network nodes are three-digit binary numbers, the highest bits of the identifiers of the network nodes in the first node set are all 0, and the highest bits of the identifiers of the network nodes in the second node set are all 1.

11. The method according to claim 9, characterized in that In a case where the reference routing node is located in the second node set, determining, according to the reference routing node, a reference routing direction in the node set where the reference routing node is located, includes: In a case where the reference routing node is the first network node, determining the direction where the third network node is located as the reference routing direction; In a case where the reference routing node is the second network node, determining the direction where the fourth network node is located as the reference routing direction; In a case where the reference routing node is the third network node, determining the direction where the first network node is located as the reference routing direction; In a case where 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.

12. The method according to claim 9, characterized in that The step of 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 to obtain the target routing path includes: Determine a routing node directly connected to the reference routing node in the reference routing direction as a second-hop routing node; In the case where the routing node of the second hop is the final routing node, determining a routing path of the start routing node, the reference routing path and the final routing node connected in sequence as the target routing path; In the 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 according to claim 1, characterized in that The detecting, according to 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 comprises: Determine a connection relationship between the starting routing node and the final routing node according to the starting node identifier, the final node identifier, and the node set where the starting routing node is located; The path information is determined according to the connection relationship.

14. The method according to claim 13, characterized in that The determining, according to the starting node identifier, the final node identifier, and the node set where the starting routing node is located, a connection relationship between the starting routing node and the final routing node includes: Performing a bitwise XOR operation on the starting node identifier and the final node identifier to obtain an operation result; The connection relationship is determined according to the calculation result and the node set where the starting routing node is located.

15. The method according to claim 14, characterized in that 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 according to the calculation result and the node set where the starting routing node is located includes: When the starting 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 starting routing node and the final routing node; When the starting 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 starting routing node and the final routing node; When the starting 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 that the starting routing node and the final routing node are not directly connected; When the starting routing node is in the second node set and the calculation result is a value other than 011, 010, and 100, it is determined that the connection relationship is that the starting routing node and the final routing node are not directly connected.

16. The method according to claim 13, characterized in that The determining the path information according to the connection relationship includes: In a case where the connection relationship is a direct connection between the starting 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 that the starting routing node and the final routing node are not directly connected, determining the path information is used to indicate that the shortest routing path is a two-hop routing path.

17. A routing device for a multi-dimensional hypercube interconnection network, characterized in that: The multidimensional hypercube interconnection network includes 2 N network nodes, N is the dimension of the multi-dimensional hypercube interconnection network, and the multi-dimensional hypercube interconnection network is divided into 2 N-3 subnetworks, N is a positive integer greater than 2; the 2 N-3 Each subnetwork in the subnetworks includes 8 target network nodes as a target subnetwork, and 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 respectively include 4 target network nodes, and the 4 target network nodes in the first node set are connected to the 4 target network nodes in the second node set in a one-to-one correspondence; the 4 target network nodes in the first node set are sequentially connected to form a ring, and 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 routing device is used to route from the starting routing node in the target sub-network to the final routing node in the target sub-network, and the routing device includes: a detection module, configured to detect path information of the shortest routing path from the starting routing node to the final routing node according to 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, wherein the path information is used to indicate the number of routing hops of the shortest routing path; a planning module, configured to plan a target routing path according to a node set where the starting routing node is located and a node set where the final routing node is located, when the path information indicates that the shortest routing path is a two-hop routing path, wherein the target routing path is a routing path of at least two hops; A routing module is used to route from the starting routing node to the final routing node according to the target routing path.

18. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, wherein the computer program implements the steps of the method described 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, characterized in that: When the processor executes the computer program, the steps of the method described in any one of claims 1 to 16 are implemented.

20. A computer program product, comprising a computer program, characterized in that When the computer program is executed by a processor, the steps of the method described in any one of claims 1 to 16 are implemented.

Citation Information

Patent Citations

  • Routing path planning method, routing request processing method, equipment and medium

    CN117135106A

  • 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

  • Routing path determination method and device, path communication equipment and medium

    CN118972318A

  • Network Topology of Hierarchical Ring with Recursive Shortcuts

    US20150117267A1