Partition network architecture, routing method, device, medium and program product

By partitioning the on-chip network into several network partitions and utilizing the high-speed interconnection of the first node, the high latency and high congestion problems of the multicast routing algorithm are solved, low-latency and efficient multicast routing is achieved, and the transmission efficiency of the on-chip network is improved.

CN120768829AActive Publication Date: 2025-10-10SHANDONG YUNHAI GUOCHUANG CLOUD COMPUTING EQUIP IND INNOVATION CENT CO LTD

Patent Information

Application Number
CN202511241345.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-09-02
Publication Date
2025-10-10
Estimated Expiration
2045-09-02

AI Technical Summary

Technical Problem

Existing multicast routing algorithms for on-chip networks suffer from high latency and high congestion risks, resulting in low transmission efficiency of on-chip networks.

Method used

A partitioned network architecture is adopted to divide the target network into several network partitions. Each partition contains a first node and a second node. High-speed interconnection between network partitions is achieved through the second port of the first node. The first node is used to replicate multicast messages and transmit them across zones, reducing the number of cross-zone transmission hops and optimizing the synchronization of multicast routing.

Benefits of technology

It significantly reduces the transmission delay and blocking risk of multicast messages, improves the energy efficiency and throughput of on-chip networks, and achieves low-latency and efficient multicast routing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120768829A_ABST
    Figure CN120768829A_ABST
Patent Text Reader

Abstract

The invention discloses a partition network architecture, a routing method, equipment, a medium and a program product, and relates to the technical field of routing, a target network is divided into a plurality of network partitions, first nodes of the network partitions are connected through configured second ports, and therefore interconnection between the network partitions is achieved; when a multicast message needs to be transmitted, transmission between nodes in the same network partition can be realized through the first port and the second port; and meanwhile, the cross-region transmission of the multicast message is realized by using the second port. Each network partition can independently transmit messages in parallel in the partition, cache competition is reduced, the synchronization of multicast routing is optimized, a special multicast message transmission channel between the network partitions is realized by independently arranging a second port for a first node, delay caused by long-distance transmission of the messages is reduced, and the service life of the network partitions is prolonged. The message transmission delay and the blocking risk of the target network are significantly reduced, and the energy efficiency and throughput of the target network are improved.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the field of routing technology, in particular to a partitioned network architecture, a routing method, a device, a medium and a program product. BACKGROUND

[0002] As the interconnection architecture of modern multi-core processors and many-core accelerators, NoC (Network on Chip) needs to consider low latency, high throughput, high energy efficiency and strong scalability. Among the many communication modes, multicast communication realizes efficient one-to-many data transmission through multicast routing, and plays an irreplaceable role in many key application scenarios. For example, in cache coherence maintenance, multicast communication is widely used in shared node notification and cache line invalidation operations in directory protocols; in parallel computing, multicast communication supports efficient barrier synchronization and collective communication; in neural network accelerators, multicast communication realizes fast distribution of weight parameters; in fault tolerance mechanisms, multicast communication is used for fast recovery of faulty nodes. However, as the size of NoC continues to grow, the multicast routing algorithm currently used by NoC has relatively high latency, which leads to a relatively high risk of congestion of NoC.

[0003] Therefore, how to provide a more efficient and secure multicast routing implementation method is a problem that needs to be solved by those skilled in the art. SUMMARY

[0004] The purpose of the embodiments of the present application is to provide a partitioned network architecture, a routing method, a device, a medium and a program product, which can solve the problems of high latency and high congestion risk of the current multicast routing algorithm.

[0005] To solve the above technical problems, the embodiments of the present application provide a partitioned network architecture, comprising: A plurality of network partitions, any network partition comprising a first node and a plurality of second nodes; wherein the plurality of network partitions are a plurality of partitions obtained by dividing a target network, and the first node and the second node are both nodes of the target network; For any first node, the first node comprises a first port and a second port, the first port is configured to realize message transmission between the first node and the second node, and the second port is configured to realize multicast message transmission between the first node and other first nodes; For any second node, the second node comprises a third port, and the third port is configured to realize message transmission between the second node and the first node in the same network partition and message transmission between the second node and other second nodes.

[0006] Optionally, if there is a node at the center position of the network partition, the first node is the node at the center position of the network partition; If the positive center position of the network partition does not exist a node, the first node is a node on the first side of the positive center position of the network partition; wherein the first side is a side close to the target network center position.

[0007] Optionally, the first node is configured to allow the message transmitted through the second port to be transmitted to other first nodes in a preset clock order; wherein the preset clock order is an order set in advance according to the spatial positions of the plurality of first nodes corresponding to the plurality of network partitions.

[0008] To solve the above technical problems, the embodiment of the present application further provides a routing method based on a partition network architecture, applied to the partition network architecture as described above; the routing method comprises: If the to-be-transmitted message is a unicast message, a preset minimum path routing algorithm is used to transmit the unicast message from the source node to the target node; If the to-be-transmitted message is a multicast message, it is judged whether the target nodes of the to-be-transmitted message are all in the same network partition as the source node of the to-be-transmitted message; If yes, the to-be-transmitted message is transmitted from the source node to the target nodes based on a first preset path; wherein the first preset path is a one-way path traversing all nodes in the same network partition and each node is accessed only once; If no, the to-be-transmitted message is transmitted from the source node to the first node of the same network partition and the target node of the same network partition based on the first preset path; The to-be-transmitted message is copied by the first node to obtain a first message copy; The first message copy is transmitted to other first nodes based on the second port of the first node, so that the to-be-transmitted message is transmitted to the target nodes of other network partitions through the other first nodes.

[0009] Optionally, transmitting the to-be-transmitted message from the source node to the target node based on the first preset path comprises: The to-be-transmitted message is copied to obtain a second message copy and a third message copy of the to-be-transmitted message; The second message copy is transmitted from the source node to the first target node in a first access order specified by the first preset path; wherein the first target node is a target node located after the source node in the first access order; The third message copy is transmitted from the source node to the second target node in a second access order; wherein the first access order and the second access order are completely opposite; the second target node is a target node located before the source node in the first access order.

[0010] Optionally, it further comprises: For any network partition, a node identifier is sequentially set for all nodes of the network partition in a first access order specified by the first preset path; Set partition identifiers for each network partition in sequence according to the preset clock sequence; A node address of a target node in a message to be transmitted is generated based on the partition identifier and the node identifier.

[0011] Optionally, after transmitting the message to be transmitted from the source node to the target node based on the first preset path, the method further includes: For any target node, if the target node receives the message to be transmitted, the node address corresponding to the target node in the message to be transmitted is deleted through the target node; After transmitting the first message copy to other first nodes based on the second port of the first node, the method further includes: For any first node, if the first node receives a copy of the first message through the second port, the partition identifier corresponding to the first node in the message to be transmitted is deleted through the first node.

[0012] Optionally, transmitting the message to be transmitted from the source node to the target node based on the first preset path includes: For any current node, determine the next hop node of the message to be transmitted according to the first preset path; Forward the message to be transmitted from the current node to the next hop node; Determine whether the next hop node is the target node; If so, the message to be transmitted is copied and the copied copy is downloaded to the target node; Determine the next hop node as the new current node, and jump again to the step of determining the next hop node of the message to be transmitted according to the first preset path; If not, jump directly to the step of determining the next hop node as the new current node.

[0013] Optionally, before forwarding the packet to be transmitted from the current node to the next-hop node, the following steps may also be performed: Determine whether the next hop node is blocked; If the next hop node is blocked, determining whether the current node supports a transition node as the next hop node; wherein the transition node is a node determined by the current node based on the second preset path; If the transition node is supported as the next hop node, the transition node is determined as the new next hop node, and the process jumps to the step of forwarding the message to be transmitted from the current node to the next hop node.

[0014] Optionally, if the transition node is supported as the next hop node and the next hop node is the target node, after determining the next hop node as the new current node, the following steps are further included: Determining whether the next target node of the message to be transmitted is on the same second preset path as the current node; If yes, the next target node is determined as the new next-hop node, and the process directly jumps to the step of forwarding the message to be transmitted from the current node to the next-hop node; If not, the process jumps back to the step of determining the next hop node of the message to be transmitted according to the first preset path.

[0015] Optionally, determine whether the next hop node is blocked, including: Initiate a preset request to the next hop node; wherein the preset request is used to query the remaining size of the input buffer space of the next hop node; Receive a response from the next-hop node, and determine whether the remaining size of the input buffer space of the next-hop node is greater than a preset value based on the response; If so, it is determined that there is no node blocking at the next hop node; If not, it is determined that the next hop node is blocked.

[0016] Optionally, if the target network corresponding to the partitioned network architecture is a two-dimensional network, the first preset path is a Hamiltonian path implemented based on the row path of the two-dimensional network, and the second preset path is a path implemented based on the column path of the two-dimensional network.

[0017] To solve the above technical problems, an embodiment of the present invention further provides an electronic device, including: Memory for storing computer programs; A processor is configured to execute a computer program to implement the steps of the aforementioned routing method based on a partitioned network architecture.

[0018] To solve the above technical problems, an embodiment of the present invention further provides a computer-readable storage medium, on which a computer program is stored. When the computer program is executed by a processor, the steps of the routing method based on the partitioned network architecture as described above are implemented.

[0019] To solve the above technical problems, an embodiment of the present invention further provides a computer program product, including a computer program / instruction, which implements the steps of the aforementioned routing method based on partitioned network architecture when executed by a processor.

[0020] It can be seen from the technical scheme that the target network is divided into a plurality of network partitions, and the first nodes of the network partitions are connected through the configured second ports, so that the interconnection between the network partitions is realized; when multicast messages need to be transmitted, the transmission between the nodes in the same network partition can be realized through the first ports and the second ports; and the second ports are used to realize the cross-partition transmission of the multicast messages. The beneficial effects of the application are that the network partitions can independently and in parallel transmit messages in the partitions, reduce cache competition, optimize the synchronism of multicast routing, and realize a dedicated multicast message transmission channel between the network partitions by separately setting the second ports for the first nodes, reduce the delay caused by long-distance transmission of messages, significantly reduce the message transmission delay and the blocking risk of the target network, and improve the energy efficiency and throughput of the target network. BRIEF DESCRIPTION OF DRAWINGS

[0021] In order to more clearly illustrate the embodiments of the present application, the drawings needed in the embodiments will be briefly introduced as follows. Obviously, the drawings in the following description are only some embodiments of the present application, and other drawings can be obtained by those skilled in the art without creative effort. Figure 1 A structure schematic diagram of a partitioned network architecture provided for the embodiments of the present application; Figure 2 Another structure schematic diagram of a partitioned network architecture provided for the embodiments of the present application; Figure 3 A flow schematic diagram of a routing method based on a partitioned network architecture provided for the embodiments of the present application; Figure 4 A routing rule schematic diagram of a first unicast message provided for the embodiments of the present application; Figure 5 A routing rule schematic diagram of a second unicast message provided for the embodiments of the present application; Figure 6 A routing rule schematic diagram of a third unicast message provided for the embodiments of the present application; Figure 7 A routing rule schematic diagram of a fourth unicast message provided for the embodiments of the present application; Figure 8 A routing rule schematic diagram of a fifth unicast message provided for the embodiments of the present application; Figure 9 A routing rule schematic diagram of a sixth unicast message provided for the embodiments of the present application; Figure 10 A routing rule schematic diagram of a seventh unicast message provided for the embodiments of the present application; Figure 11 A routing rule schematic diagram of an eighth unicast message provided for the embodiments of the present application; Figure 12 A schematic diagram of routing rules for the first path provided in an embodiment of the present invention; Figure 13 A schematic diagram of a first type of routing based on a first path provided by an embodiment of the present invention; Figure 14 A schematic diagram of a second type of routing based on a first path provided by an embodiment of the present invention; Figure 15 A schematic diagram of routing based on a first path and a second path provided by an embodiment of the present invention; Figure 16 A schematic structural diagram of an electronic device provided by an embodiment of the present invention. DETAILED DESCRIPTION

[0022] The following will clearly and completely describe the technical solutions in the embodiments of the present invention in conjunction with the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of them. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without making any creative efforts shall fall within the scope of protection of the present invention.

[0023] The terms "including" and "having," as used in the present description and accompanying drawings, and any variations thereof, are intended to cover non-exclusive inclusions. For example, a process, method, system, product, or apparatus comprising a series of steps or elements is not limited to the listed steps or elements and may include steps or elements that are not listed.

[0024] In order to enable those skilled in the art to better understand the present invention, the present invention will be further described in detail below with reference to the accompanying drawings and specific implementation methods.

[0025] Next, a partitioned network architecture provided by an embodiment of the present invention is described in detail. Figure 1 As shown, Figure 1 A schematic diagram of a partitioned network architecture provided in an embodiment of the present invention; the partitioned network architecture includes: Several network partitions, each of which includes a first node M and several second nodes V; wherein the several network partitions are several partitions obtained by dividing the target network, and the first node M and the second node V are both nodes of the target network; For any first node M, the first node M includes a first port and a second port, the first port is configured to implement message transmission between the first node M and the second node V, and the second port is configured to implement multicast message transmission between the first node M and other first nodes M; For any second node V, the second node V comprises a third port configured to implement message transmission between the second node V and the first node M in the same network partition and between the second node V and other second nodes V.

[0026] It is not difficult to understand that in order to adapt to the gradually increasing network and reduce the path transmission delay, the present application proposes a multi-level partition topology. For a target network, the network is divided into several network partitions in advance before application. Any network partition will include at least two nodes. After the division, for any network partition, a node is selected as the first node M and the other nodes are selected as the second nodes V. In the network partition, each second node V and the first node M and the second node V are interconnected through the corresponding third port or first port. Between the network partitions, the network partitions are interconnected through the second port of the first node M. Therefore, when it is necessary to transmit multicast messages within the network partition, the first port and / or the third port are directly used to forward messages between adjacent nodes in the same network partition. At this time, the functions of the first node M and the second node V are completely the same, so as to transmit messages to each target node in the same network partition. When it is necessary to transmit multicast messages across the network partition, when the to-be-transmitted message is sent to the first node M, the second port of the first node M is called to send the message to other first nodes M, so as to send the message to other network partitions and realize transmitting the message to each target node in other network partitions.

[0027] It can be understood that considering the transmission distance across the network partition is farther than the transmission distance between adjacent nodes in the same network partition, the second port of the first node M is used to realize high-speed interconnection with higher transmission rate between the network partitions, that is, the transmission rate of the communication connection between the first node M and the first node M is greater than the transmission rate between the first node M and the second node V or between the second nodes V. The specific type and implementation of the second port are not particularly limited in the present application. The specific implementation of the high-speed interconnection realized by the second port is not particularly limited in the present application. The high-speed interconnection between the network partitions can be realized by using one or a combination of high-speed ports with higher transmission rate, high-speed transmission medium, high-speed dedicated protocol, and negotiation of high transmission rate.

[0028] It should be noted that the first node M and the second node V are both nodes in the target network, and thus the first port and the third port can be implemented in the same way. The specific type and implementation of the first port and the third port are not particularly limited herein. The second port is an additional port structure of the first node M compared with the second node V, and is specially used to implement high-speed interconnection between network partitions. The specific type and implementation of each node (including the first node M and the second node V) are not particularly limited herein, and each node can be a computer or any other independent unit capable of receiving, sending or forwarding data. The division of each network partition is not particularly limited herein, and preferably, the nodes in the target network are evenly divided into several network partitions. The number of the target network and the network partitions obtained by the division can be adjusted and set according to actual application, and are not particularly limited herein. The transmission operation across the network partitions using the second port is not limited to the transmission of multicast messages, but can also be applied to the transmission of broadcast messages and other types of messages. The present application mainly takes the multicast routing corresponding to the multicast message as an example for description, and there is no such limitation in actual application. The specific type of the message in actual application can be set and adjusted.

[0029] Further, considering that after the to-be-transmitted message reaches the target node, the target node will download the generated message copy to the internal PE (Processing Element), in addition to the first port, the second port and the third port for implementing message transmission and forwarding, the first node M and the second node V will also be provided with a node-local port, which is specially used to download the received message to the PE in the node, so as to complete the transmission of the message at the target node. It is also possible to download to other types of processing cores in the node, and is not limited to the PE in the embodiment. The specific type and implementation of the local port are not particularly limited herein.

[0030] As a specific embodiment, taking a two-dimensional network as an example, referring to FIG. 1, Figure 2 Figure 2 FIG. 1 is a structural schematic diagram of another partition network architecture provided by an embodiment of the present application; the nodes in the two-dimensional network are generally provided with eastward, southward, westward and northward input / output ports, which are respectively used to implement message sending between the nodes and the adjacent nodes in the four directions. Thus, the third port of the second node V and the first port of the first node M specifically include eastward ports, southward ports, westward ports and northward ports. On this basis, the first node M needs to additionally increase the input / output port to implement the second port. Assuming that all the first nodes M corresponding to the network partitions are sequentially connected in a preset order to form a ring connection to implement cross-partition transmission of the message, as shown in FIG. 2.​ Figure 2 As shown, there are four network partitions, the first network partition includes the first node M1 and 15 second nodes V, the second network partition includes the first node M2 and 15 second nodes V, the third network partition includes the first node M3 and 15 second nodes V, and the fourth network partition includes the fourth node M4 and 15 second nodes V, and the four first nodes M are connected in a clockwise order to form a ring connection. In this case, each first node M needs to additionally set two ports to realize the second port, one port as an input port to receive the message sent by the previous first node M in the preset order, and the other port as an output port to send the to-be-transmitted message to the next first node M in the preset order.

[0031] Taking an 8x8 2D-Mesh network as an example, the two-dimensional network is statically divided into four network partitions, and each network partition is a 4x4 network. For unicast data packets of unicast messages, the minimum XY routing algorithm with limited turns can still be used for transmission within the network partition and across the network partition in the 8x8 network. For multicast data packets or broadcast data packets corresponding to multicast messages and broadcast messages, in order to avoid large path delay, the four first nodes M corresponding to the four network partitions are used to realize high-speed communication across the network partitions. In this way, multiple message copies generated by multicast or broadcast messages can be transmitted independently in each network partition at the same time, greatly improving the transmission efficiency, and using the first node M to realize the transmission across the network partitions avoids multiple transfers by the second nodes V, thereby avoiding the contention of multicast messages and unicast messages for the network as much as possible.

[0032] It should be noted that there is only one first node M in each network partition, so the message transmission between the two first nodes M realized by the second port is actually the cross-partition message transmission between the two network partitions. At the same time, the division of the network partition itself does not affect the architecture of the target network, so the two adjacent network partitions can not only realize cross-zone transmission through the first node M, but also the second nodes V adjacent to each other in position can realize message transmission between the adjacent second nodes V in different network partitions through the third port; because the third port can not only realize message transmission between two second nodes V in the same network partition, but also realize message transmission between two second nodes V adjacent to each other in different network partitions. For example, Figure 2 As shown, the fourth column of the second nodes V in the first network partition is adjacent to the first column of the second nodes V in the fourth network partition, so the second node V in the first row and the fourth column of the first network partition can send a message to the second node V in the first row and the first column of the fourth network partition through the eastward third port of the second node V.

[0033] The application divides the network partitions and sets the first node M, uses the setting of the second port in the first node M to realize the high-speed link between the network partitions, thereby reducing the hop count of the multicast message or the broadcast message when transmitted across the network partitions, thereby avoiding the long-distance delay existing in routing, and particularly applied in the two-dimensional network topology, realizes a multicast routing strategy which can adapt to the network. Meanwhile, the setting of the first node M is used to avoid the contention of the multicast message and the unicast message for the network, and reduce the risk of network congestion.

[0034] As an optional embodiment, if the node exists at the positive center position of the network partition, the first node M is the node at the positive center position of the network partition; If the node does not exist at the positive center position of the network partition, the first node M is the node at the first side of the positive center position of the network partition; wherein the first side is the side close to the target network center position.

[0035] It can be understood that the source node of the to-be-transmitted message can be any node in the target network, and therefore, in order to facilitate the first node M to obtain the to-be-transmitted message from the source node in the same network partition when the to-be-transmitted message needs to be transmitted across the network partition, the node at the positive center position of the network partition can be selected as the first node M, and no matter which node in the network partition is selected as the source node, the message can be quickly sent to the first node M, thereby shortening the transmission path between the source node and the first node M. Meanwhile, in order to shorten the transmission path between the first nodes M as much as possible, in the case that the node does not exist at the positive center position of the network partition, the node closer to the center position of the entire target network is selected as the first node M. The specific position and position distribution of each node depend on the architecture of the target network, and the division of the network partition will not affect the architecture of the target network, and therefore the selection of the first node M needs to be based on the position distribution of the nodes in the target network.

[0036] It should be noted that, taking the two-dimensional network topology shown in Figure 2 As an example, the nodes in the two-dimensional grid network realize the position distribution based on the orthogonal grid formed by the rows and columns, and therefore the first node M can be defined according to the parity of the single direction (row direction / column direction) dimension in the network partition. When the single direction dimension of the network partition is odd, the first node M can be located at the positive center of the direction, when the two direction dimensions of the network partition are both odd, the first node M can be located at the positive center of the network partition, and when the single direction dimension of the network partition is even, the first node M needs to be biased to the direction of the target network center. For example, Figure 2As shown, the row direction of the first network partition includes 4 rows, which is even, and thus the node in the third row (taking the southernmost, i.e., the lowermost row in the figure as the first row) that is closer to the target network center needs to be selected as the first node M. The column direction includes four columns, which is even, and thus the node in the third column (taking the westernmost, i.e., the leftmost column in the figure as the first column) that is closer to the target network center needs to be selected as the first node M. In summary, the node in the third row and the third column is selected as the first node M1 of the first network partition.

[0037] Specifically, by selecting the node at the center position as the first node M, the transmission distance between the source node and the first node M and between the first nodes M in the same network partition can be shortened as much as possible, so as to reduce the communication delay during cross-partition transmission as much as possible and further improve the routing performance of the network.

[0038] As an optional embodiment, the first node M is configured to allow the packet transmitted through the second port to be transmitted to other first nodes M in a preset clock order; wherein the preset clock order is an order set in advance according to the spatial positions of the plurality of first nodes M corresponding to the plurality of network partitions.

[0039] It is not difficult to understand that, in order to avoid transmission conflicts that may exist between the first nodes M during high-speed interconnection, after the first nodes M in each network partition are determined, the transmission direction between the first nodes M can be specified by configuring the input function or output function of the second port, and the transmission direction between the first nodes M can be specified by configuring the input function or output function of the second port. For example, the clockwise or counterclockwise clock order can be used to achieve this, or other types of orders can be used to specify, which is not limited to the always order in the embodiment. The specific configuration and implementation of this transmission order are not particularly limited in the present application, and can be achieved by configuring a certain direction of the second port of the first node M as an input port and configuring another direction of the second port as an output port. For example, Figure 2 As shown, when multicast transmission is required, the packets between the first nodes M are transmitted in a clockwise manner between the partitions by default.

[0040] Specifically, by specifying the transmission direction, the transmission conflicts or bidirectional transmission interference between the first nodes M can be avoided, the specific interaction logic during cross-network partition transmission is clear, the ordered transmission rules are established, the transmission efficiency between the first nodes M is further improved, the resource waste is reduced, and the reliability and accuracy of the transmission are ensured.

[0041] Referring to Figure 3 As shown, Figure 3 A flowchart of a routing method based on a partitioned network architecture is provided for the embodiment of the present application. To solve the above technical problems, the embodiment of the present application further provides a routing method based on a partitioned network architecture, which is applied to the partitioned network architecture as described above. The routing method comprises: S11: If the to-be-transmitted packet is a unicast packet, a preset minimum path routing algorithm is adopted to transmit the unicast packet from the source node to the target node; It can be understood that, considering that there is only one target node for the unicast packet, the demand for cross-network partition of the unicast packet is not high, therefore, for the unicast packet, the preset minimum path routing algorithm is still adopted in the application to transmit the unicast packet, the first node is not called for cross-zone transmission, and the third port of the second node is directly used to realize cross-zone transmission based on the minimum path. The specific type and implementation manner of the preset minimum path routing algorithm are not particularly limited in the application, and the minimum XY routing algorithm or the like can be adopted to realize. Meanwhile, considering that there may be network congestion in the target network under the condition that the to-be-transmitted packets are relatively large, the minimum XY routing algorithm with turn limitation is adopted to transmit and transmit the unicast packet.

[0042] Specifically, taking the minimum XY routing algorithm in a two-dimensional grid network as an example, when the network is not congested, the unicast packet is transmitted to the same column as the target node in the X direction by default based on the minimum path principle, and then transmitted to the target node in the Y direction. However, when the network is congested, the transmission direction of the unicast packet no longer simply follows the X direction first and then the Y direction, but the output direction is arbitrated based on the input buffer status of the next hop node, and the local detour is performed based on the principle of not deviating from the target node. In order to avoid loop deadlock, the following turn limitation strategy is adopted. Specifically, assuming that (x s , y s ) is the node address of the source node, (x d , x d ) is the node address of the target node, wherein x is the horizontal coordinate representing the column in the two-dimensional grid network, and y is the vertical coordinate representing the row in the two-dimensional grid network. For the target network and any network partition, the southernmost, that is, the lowermost row is regarded as the first row, the westernmost, that is, the leftmost column is regarded as the first column, the north direction in the two-dimensional grid network, that is, the upper direction in the figure, the south direction, that is, the lower direction in the figure, the west direction, that is, the left direction in the figure, and the east direction, that is, the right direction in the figure. When ((x s ≤x d )&(y s ≤y d ) or ((x s ≥x d )&(y s ≥y d )), the turn in the west→south, south→west, east→north and north→east directions is prohibited, as shown in Figure 4 , and Figure 4 is the first routing rule diagram of the unicast packet provided by the embodiment of the application; wherein x1 is the minimum, x2=x4, x3 is the maximum, y2 is the minimum, y1=y3, y4 is the maximum, (x s ≤xd )&(y s ≤y d ) when, prohibit from west to south around, see Figure 5 , Figure 5 The second unicast message routing rule schematic diagram provided by the embodiment of the application is shown in the figure. s ≥x d )&(y s ≥y d ) when, prohibit from east to north around; see Figure 6 , Figure 6 The third unicast message routing rule schematic diagram provided by the embodiment of the application is shown in the figure. s ≤x d )&(y s ≤y d ) when, prohibit from south to west around; see Figure 7 , Figure 7 The fourth unicast message routing rule schematic diagram provided by the embodiment of the application is shown in the figure. s ≥x d )&(y s ≥y d ) when, prohibit from north to east around. When ((x s ≤x d )&(y s ≥y d ) ) or ((x s ≥x d )&(y s ≤y d ) ), prohibit the turning of west→north, south→east, east→south, north→west direction, see Figure 8 , Figure 8 The fifth unicast message routing rule schematic diagram provided by the embodiment of the application is shown in the figure. s ≤x d )&(y s ≥y d ) when, prohibit from west to north around; see Figure 9 , Figure 9 The sixth unicast message routing rule schematic diagram provided by the embodiment of the application is shown in the figure. s ≥x d )&(y s ≤y d ) when, prohibit from east to south around; see Figure 10 , Figure 10 The seventh unicast message routing rule schematic diagram provided by the embodiment of the application is shown in the figure. s ≥x d )&(y s ≤y d) when the source node is in the south and the target node is in the east, the detour from the south to the east is prohibited; see Figure 11 as shown, Figure 11 The eighth routing rule diagram of the unicast message provided by the embodiment of the application is shown in FIG. 8. s ≤x d )&(y s ≥y d ) when the source node is in the north and the target node is in the west, the detour from the north to the west is prohibited. In summary, the transmission direction should not deviate from the target node. When the message deviates from the blocked area, it is still restored to the shortest XY routing algorithm.

[0043] S12: If the to-be-transmitted message is a multicast message, it is judged whether the target nodes of the to-be-transmitted message are in the same network partition as the source node of the to-be-transmitted message. It can be understood that if the to-be-transmitted message is a multicast message or a broadcast message, the to-be-transmitted message needs to be transmitted from the source node to multiple target nodes at this time, and these multiple target nodes can be in the same network partition as the source node or in different network partitions, so it is necessary to judge whether these target nodes are in the same network partition as the source node of the to-be-transmitted message. The specific implementation mode of the to-be-transmitted message is not particularly limited herein.

[0044] S13: If yes, the to-be-transmitted message is transmitted from the source node to the target node based on the first preset path; wherein the first preset path is a one-way path traversing all nodes in the same network partition and each node is accessed only once. It can be understood that if all target nodes are in the same network partition as the source node of the to-be-transmitted message, it means that the to-be-transmitted message only needs to be transmitted in the same network partition through the first port of the first node and the third port of the second node to realize the transmission of the message within the partition. At this time, the first preset path pre-configured in the network partition can be used as the routing path of the to-be-transmitted message. For any network partition, a corresponding first preset path within the partition is set, and the first preset path can traverse all nodes in the network partition and each node is accessed only once, so that the message can be effectively sent to each node in the network partition through the first preset path, and the operation of transmitting the to-be-transmitted message to each target node in the same network partition can be realized. The specific type and implementation mode of the first preset path are not particularly limited herein.

[0045] S14: If no, the to-be-transmitted message is transmitted from the source node to the first node of the same network partition and the target node of the same network partition based on the first preset path. It can be understood that if the target node is not in the same network partition as the source node, the target node includes two types of nodes, one of which is in the same network partition as the source node, and the other is not in the same network partition as the source node. For the first type of target node in the same network partition as the source node, the first preset path can be directly used to complete the transmission of the to-be-transmitted message. For the second type of target node not in the same network partition as the source node, the first node in the network partition where the source node is located is needed to perform cross-zone transmission, so the to-be-transmitted message needs to be first sent to the first node in the same network partition.

[0046] S15: copying the to-be-transmitted message by the first node to obtain a first message copy; It can be understood that considering that there may be target nodes after the first node in sequence when transmitting the message along the first preset path, when the to-be-transmitted message reaches the first node, the first node will copy the to-be-transmitted message to obtain a first message copy, so as to subsequently perform cross-zone transmission by using the first message copy to transmit the to-be-transmitted message to the target nodes in other network partitions. At this time, the to-be-transmitted message will continue to be routed along the first preset path until the message transmission to all target nodes in the same network partition is completed.

[0047] It should be noted that if the first node is the target node, and there is no other target node after it according to the routing order of the first preset path, at this time, the message copy can be copied at the first node and downloaded to the local directly, and the original to-be-transmitted message is directly used as the first message copy for cross-zone transmission. The specific copying method of the to-be-transmitted message and the implementation method of the corresponding copy are not particularly limited in the present application.

[0048] S16: transmitting the first message copy to other first nodes based on the second port of the first node, so as to transmit the to-be-transmitted message to the target nodes in other network partitions by the other first nodes.

[0049] It is understandable that after the first node generates the first message copy, the first message copy can be transmitted to other first nodes through the high-speed interconnection path formed by the second port, and when the first message copy is sent to the first nodes of other network partitions, the first nodes of other network partitions transmit the received message copy to the target nodes in the network partition where the first nodes are located based on the first preset path of the network partition where the first nodes are located, until the message transmission to all target nodes is completed. After the first message copy is transmitted to the first nodes, the transmission process from other first nodes to target nodes in the corresponding network partition is similar to the process of transmitting from the source node to the target nodes in the same network partition, and the present application will not be described here. If the target nodes only exist in one other network partition, the first message copy only needs to be sent to the first node of the network partition. If the target nodes exist in multiple other network partitions, the first message copy needs to be sent to the first nodes of each other network partition in the preset clock order.

[0050] It should be noted that if there are multiple target nodes in other network partitions, the first node of the network partition where the source node is located will first send the first message copy to the first node of the next network partition corresponding to the preset clock order. If the network partition has target nodes and there are still other network partitions containing target nodes, the first node corresponding to the network partition will copy and generate a new message copy for message transmission in the network partition. Then the first message copy is continuously sent to the first node of the next network partition corresponding to the preset clock order, and the above operation is repeated until all subsequent network partitions do not include target nodes, and the first message copy is directly used for message transmission in the current network partition.

[0051] Based on the partition network architecture, the application also provides a routing method based on the topology, especially a multicast routing method. Through multi-level partition topology and adaptive routing strategy, multicast transmission delay and congestion are significantly reduced, and energy efficiency and throughput are improved. Direct cross-zone interconnection is realized between network partitions through first nodes, the number of hops for cross-zone transmission is reduced by using high-speed links of first nodes, the problem of long-distance transmission delay is avoided, and intrapartition message transmission of each network partition is independent of each other. Parallel distribution in different network partitions can be realized by generating message copies, cache competition is reduced by using this copy parallel distribution mechanism, and the synchronization of multicast message transmission is optimized. This partition architecture can be effectively expanded to large-scale NoC applications, and while realizing low-delay and efficient multicast routing, it can also use the adjacency of the second node to be compatible with unicast traffic.

[0052] Referring to Figure 12 , as shown in Figure 12The first path routing rule schematic diagram provided by the embodiment of the present application; as an optional embodiment, the first preset path is used to transmit the to-be-transmitted message from the source node to the target node, comprising: copying the to-be-transmitted message to obtain a second message copy and a third message copy of the to-be-transmitted message; transmitting the second message copy from the source node to a first target node according to a first access order defined by the first preset path; wherein the first target node is a target node located after the source node in the first access order; transmitting the third message copy from the source node to a second target node according to a second access order; wherein the first access order and the second access order are completely opposite; the second target node is a target node located before the source node in the first access order.

[0053] It can be understood that, in order to further avoid the conflict between the multicast message and the unicast message, and in order to ensure that the message can be transmitted to any node in the same network partition when the message is transmitted in the network partition, in any network partition, the transmission path in the network partition is divided into a first access order and a second access order with the source node as the center by using the unidirectionality of the first preset path. The first preset path itself will start from one node of the network partition, pass through each node in the network partition in turn to reach another node according to the first access order, and realize one-way non-repeated access. Therefore, the path from one node to the source node and the path from the source node to another node are completely non-overlapping, so that the actual message transmission can be directly started from the source node, and the message transmission of the two paths can be performed at the same time. Therefore, when the source node transmits the message, the to-be-transmitted message is directly copied into two message copies (the second message copy and the third message copy), and then the second message copy is sent in turn from the source node according to the first access order to realize one-way message transmission, until the message transmission of all first target nodes in the direction is completed; at the same time, the third message copy is sent in reverse order from the source node according to the second access order to realize the message transmission in the other direction, until the message transmission of all second target nodes in the direction is completed. The second message copy or the third message copy can be directly implemented by using the original to-be-transmitted message, as long as two messages are transmitted in reverse direction. The specific implementation mode of the first preset path and the corresponding first access order and second access order is not particularly limited in the present application.

[0054] For example, a two-dimensional grid network as shown in FIG. 1 is used, and a Hamilton path is used as the first preset path, as shown in FIG. 2. Figure 2 Figure 12 ​As shown in the first access order represented by the solid line, for any network partition, the Hamiltonian path starts from the node in the first row and first column, passes through the nodes in each column of the first row, then goes from the node in the fourth column of the first row to the node in the fourth column of the second row, then starts from the fourth column and passes through the nodes in each column of the second row to the node in the first column of the third row, and repeats this process to achieve the following: Figure 12 The first preset path shown is a high-pass path HH generated according to the first access order, and a low-pass path LL generated according to the second access order. If the order in which the high-pass path HH passes through the nodes is defined as the ascending order of the node identifiers, and a partition identifier is set for each node in the network partition starting from 0, the high-pass path HH passes through node 0, node 1, node 2, and finally node 15. The low-pass path LL passes through node 15, node 14, node 13, and finally node 0 in descending order of the node identifiers. Therefore, for the first target node whose target node label is greater than the source node label, the multicast message will be transmitted along the high-pass path HH, and vice versa, it will be transmitted along the low-pass path LL.

[0055] based on Figure 12 The high-pass path HH and low-pass path LL shown in FIG. 4 illustrate the process of multicast packets being transmitted along the Hamiltonian path in the same network partition. Figure 13 As shown, Figure 13 A schematic diagram of the first routing based on the first path provided by an embodiment of the present invention; if the source node S happens to be the first node of a certain network partition, Figure 2 Taking the first node M2 ​​of the second network partition as an example, the first node (the node identified as 5) directly copies two copies of the message. The two copies of the message run in opposite directions along the high-pass path HH and the low-pass path LL within the network partition. One copy of the message can pass through node 6, node 7, and finally node 15, and the other copy of the message can pass through node 4, node 3, and finally node 0. If the message needs to be multicast across regions, the first node also needs to copy a third copy (that is, the first copy of the message) and transmit it to the three first nodes (including M3, M4, and M1) of other network partitions in sequence through the high-speed link of the first node as needed. After transmission to other network partitions, the first node of the other network partition will copy two copies again, running in opposite directions along the high-pass path HH and low-pass path LL of the network partition.

[0056] See also Figure 14 As shown, Figure 14The second schematic diagram for routing based on the first path is provided for the embodiment of the present application. If the source node S is not the first node, the splitting of the high-pass path HH and the low-pass path LL is performed starting from the source node. Similarly, two message copies are transmitted in the opposite direction along the high-pass path HH or the low-pass path LL. Because the first node is necessarily on the high-pass path HH or the low-pass path LL (for example, the first node is on the low-pass path LL in the middle), the source node can reach the first node according to the first access order or the second access order. Therefore, when the message is sent to the first node M2, the first node continues to determine whether to perform cross-zone transmission. The specific operation of cross-zone transmission is similar to that in the previous embodiment, which is not described herein again. Figure 14

[0057] Specifically, two transmission paths respectively implemented according to the opposite first access order and the second access order in one network partition are determined by the one-way order of the first preset path itself. The two access orders are completely opposite. With the same source node as the starting point, one transmission path is strictly limited to ascending order of node identifiers, and the other transmission path is strictly limited to descending order of node identifiers, without forming a loop. Deadlock is avoided directly from the algorithm level, ensuring the safety and reliability of message transmission in the network partition, reducing the risk of network congestion, and improving routing efficiency.

[0058] As an optional embodiment, the method further comprises: For any network partition, the node identifiers of all nodes in the network partition are sequentially set according to the first access order specified by the first preset path; The partition identifiers of the network partitions are sequentially set according to a preset clock order; The node address of the target node in the to-be-transmitted message is generated based on the partition identifier and the node identifier.

[0059] As can be easily understood, in order to facilitate message transmission, the partition identifier of the network partition and the node identifier of each node in the network partition can be set to achieve address configuration between each node in the entire target network under the network topology of this partition. In order to further match the message transmission process and facilitate each node to determine the subsequent routing strategy, the node identifier can be directly set for each node in the same network partition according to the first access order of the first preset path, that is, node 0 to node 15 as shown. Figure 12 The partition identifiers of the network partitions are sequentially set according to a preset clock order. Figure 2 ​As shown, when the first node in the four network partitions transmits the message in a clockwise order, the four network partitions are defined in turn as the first network partition, the second network partition, the third network partition and the fourth network partition, and the corresponding partition identifiers are partition 1, partition 2, partition 3 and partition 4. The corresponding first node is defined as node M1, node M2, node M3 and node M4. The specific type and implementation of the node identifier and the partition identifier are not particularly limited in the present application, and can be implemented by using numbering, ID (Identifier) and the like. The specific form of the generated node address is not particularly limited in the present application, and only needs to include the corresponding partition identifier and the corresponding node identifier.

[0060] As a specific embodiment, taking a two-dimensional grid network as an example, it is assumed that the network scale of a network partition is m x n, where m is the number of rows of the network partition and n is the number of columns of the network partition. The total number of nodes N in a network partition is m x n. In a routing strategy based on a Hamilton path, the nodes in a network partition are sequentially assigned node identifiers 0~N-1. Specifically, when the number of rows of the node is even, the node identifier is calculated as y x n + x, where x represents the number of columns of the node and y represents the number of rows of the node. When the number of rows of the node is odd, the node identifier is calculated as (y+1) x n - x - 1. Therefore, for a 4 x 4 partition network, the Hamilton label is as shown in Figure 12 .

[0061] It should be further explained that for broadcast transmission, it can also be implemented based on a Hamilton path. Based on a Hamilton path, all nodes in the entire network partition can be traversed. For the network topology of four network partitions as shown in Figure 2 , up to 9 copies can be transmitted at the same time (2 message copies are transmitted in each network partition at the same time, and 1 message copy is transmitted on a high-speed link at the same time).

[0062] Specifically, the partition identifier and the node identifier in the network partition are set at the same time to realize the unique identification of each node in the target network and the accurate positioning of the target node. The information of the network partition to which the node belongs is included, so that the first node can directly determine whether cross-zone transmission is needed according to the partition identifier in the node address, which is beneficial to the accurate implementation of routing.

[0063] As an optional embodiment, after transmitting the to-be-transmitted message from the source node to the target node based on the first preset path, the method further includes: For any target node, if the target node receives the to-be-transmitted message, the target node deletes the node address corresponding to the target node in the to-be-transmitted message; After the first message copy is transmitted to other first nodes based on the second port of the first node, the method further comprises: For any first node, if the first message copy is received by the first node through the second port, the partition identifier corresponding to the first node in the to-be-transmitted message is deleted by the first node.

[0064] It can be understood that in the case of generating the node address of each node by using the partition identifier and the node identifier, the target node address marked in the head Flit of the to-be-transmitted message is also implemented based on this mode, for example, in the format of the node address as (partition identifier, (node identifier)). The to-be-transmitted message contains the node address of all target nodes, when the to-be-transmitted message is transmitted to a target node, the target node can delete the node address corresponding to the target node in the to-be-transmitted message, to represent that the message has been transmitted to this target node, and the subsequent node only needs to determine the next target node according to the remaining node address in the to-be-transmitted message and transmit it. At the same time, after the first message copy is sent to the first node, the first node will delete the corresponding partition identifier, to represent that the message has been sent to this network partition, and the subsequent other first nodes only need to determine the subsequent routing strategy of the first message copy on the high-speed link according to the remaining partition identifier in the first message copy, to determine whether there is other network partition to obtain the message.

[0065] As a specific embodiment, the network partition identifier is represented by a 4-bit binary number, and the node identifier is represented by a 4-bit binary number. Figure 2Taking the two-dimensional network topology shown in the figure as an example, the partition identifiers are 1 to 4, and the node identifiers are 0 to 15. For example, the destination node addresses in the to-be-transmitted message are {(1, (0, 3, 9, 10, 14)), (2, (0, 4, 8, 15))}. When the message header is delivered to the source node, the source node first determines whether there is a target node in its own zone (the network partition where the source node resides). If so, it performs a multicast based on the node identifier corresponding to the zone's partition identifier, using a hybrid Hamiltonian path and column path strategy. When the target node in its own zone receives the message and transmits it to this target node, it copies the message and downloads it to its own PE. It then clears the node identifier of the corresponding target node in the message header Flit. The source node then determines whether there are target nodes outside its own zone (a network partition other than the source node's own zone). If so, it sends the multicast message to the first node. The first node first deletes its own corresponding partition identifier. Then, based on the remaining partition identifiers in the header Flit, it determines to which network partition the multicast message should be sent via the second port, and sends the message to the first node in the corresponding network partition via the second port. After receiving the message, the first node in the corresponding network partition first deletes the partition identifier of its own network partition from the header Flit. It then transmits the message within the network partition based on the node identifier corresponding to the partition identifier. If it is the target node, it directly copies the message locally and downloads it, then deletes its own corresponding node identifier and transmits the message within the network partition based on the remaining node identifiers. If the message to be transmitted uses wormhole switching, its body Flit and tail Flit are transmitted directly along the path of the header Flit, and no routing algorithm calculation is performed.

[0066] Specifically, by deleting the identifier, subsequent nodes can directly determine the next target node based on the remaining identifiers, simplifying the routing operation and improving the accuracy and reliability of message routing.

[0067] As an optional embodiment, transmitting the to-be-transmitted message from the source node to the destination node based on the first preset path includes: For any current node, determine the next hop node of the message to be transmitted according to the first preset path; Forward the message to be transmitted from the current node to the next hop node; Determine whether the next hop node is the target node; If so, the message to be transmitted is copied and the copied copy is downloaded to the target node; Determine the next hop node as the new current node, and jump again to the step of determining the next hop node of the message to be transmitted according to the first preset path; If not, jump directly to the step of determining the next hop node as the new current node.

[0068] It is not difficult to understand that the transmission of the message in the present application needs to be based on adjacent nodes. When transmitting in the same network partition, starting from the source node, the next hop node of the to-be-transmitted message is determined in turn according to the first preset path, and the message is sent to the next hop node, and then the process is repeated. The source node is the initial current node of the to-be-transmitted message. At the same time, when the message is transmitted to a target node, the target node generates a copy and downloads it to the local, and the to-be-transmitted message continues to be transmitted downward, or the downloaded local generates a copy and continues to be transmitted downward. If there is no other target node after the target node, the message can be directly downloaded to the local, and there is no need to copy.

[0069] Specifically, each node in the same network partition is accessed in turn according to the first preset path, and when reaching each node, it is judged whether the node is a target node according to the node address indicated in the to-be-transmitted message, so as to complete the transmission of the message in the same network partition, which is simple, effective and easy to implement.

[0070] Referring to Figure 15 As shown in the figure, Figure 15 A schematic diagram of routing based on the first path and the second path is provided for the embodiments of the present application. As an optional embodiment, before forwarding the to-be-transmitted message from the current node to the next hop node, it further includes: Judging whether the next hop node has node blocking; If the next hop node has node blocking, it is judged whether the current node supports the transition node as the next hop node; wherein the transition node is a node determined by the current node based on the second preset path; If the transition node is supported as the next hop node, the transition node is determined as the new next hop node, and the step of forwarding the to-be-transmitted message from the current node to the next hop node is jumped to.

[0071] It is understandable that, in order to cope with network congestion, in any network partition, on the basis of message transmission based on the first preset path, a second preset path can be further added for message transmission. When the first preset path is used alone for message transmission, network congestion may still occur due to the large size of the network or the flooding broadcast routing mode, which will cause a certain delay. At this time, the second preset path is further introduced to plan the routing under network congestion. Specifically, after determining the next hop node of the message, it can be judged whether the next hop node exists node blockage. If not, continue to transmit the message according to the next hop node determined by the first preset path; if yes, judge whether the current node supports the transition node obtained by planning by reusing the second preset path as the next hop node, if yes, the transition node can be used to skip the originally congested next hop node, while shortening the routing path; if not, the blocking condition of the next hop node needs to be continuously judged, and after the next hop node is not blocked, the message continues to be sent. The specific type and implementation of the second preset path are not particularly limited in this application, and the routing direction corresponding to the next hop node needs to be selected to be roughly consistent, that is, the second preset path and the transition node are set according to the principle of being close to the next target node. The preferred embodiment is that the path direction of the second preset path is perpendicular to the path direction of the first preset path, and the path direction of the second preset path is the direction close to the next target node, which can avoid congestion while optimizing the routing path.

[0072] It should be noted that the main basis for whether to support the transition node is whether the next hop node can continue to normally reach the next target node based on the first preset path and / or the second preset path if the transition node is used as the next hop node. For example, if the transition node determined by the current node and the second preset path skips the next target node, it means that the message cannot be transmitted to the next target node after being sent from the current node to the transition node, and in this case, it is determined that the transition node is not supported as the next hop node. If the message can still normally reach the next target node based on the first preset path after being sent from the current node to the transition node, it can be determined that the transition node is supported as the next hop node.

[0073] Specifically, the second preset path is introduced to further optimize the routing path under network congestion, so that the message can selectively avoid network congestion, improve routing efficiency, and avoid abnormal security risks caused by long-term network congestion.

[0074] As an optional embodiment, if the transition node is supported as the next hop node and the next hop node is the target node, after the next hop node is determined as the new current node, it further includes: determining whether the next target node of the to-be-transmitted packet is on the same second preset path as the current node; if yes, determining the next target node as a new next-hop node, and directly jumping to the step of forwarding the to-be-transmitted packet from the current node to the next-hop node; if no, re-jumping to the step of determining the next-hop node of the to-be-transmitted packet according to the first preset path.

[0075] It can be understood that after the transition node is determined as the next-hop node, the packet is sent from the current node to the transition node, and the transition node is determined as a new current node. At this time, it is continued to determine whether the current node (i.e., the transition node) is the target node. If yes, the to-be-transmitted packet needs to be copied and downloaded to the local of the current node. Then it is continued to determine whether the next target node of the to-be-transmitted packet is on the same second preset path as the current node (i.e., the transition node), i.e., through the second preset path, the next target node can be directly routed from the current node. If yes, the second preset path can be directly used to shorten the routing path. If no, the routing needs to be continued according to the first preset path. The current node can determine the positional relationship between the next target node and the current node through the node identifier in the to-be-transmitted packet, which is not particularly limited in the present application.

[0076] Specifically, by further judging whether there is a special case that two continuous target nodes are on the same second preset path, the second preset path is used to achieve more efficient shortening of the routing path, and the routing efficiency is further improved.

[0077] As an optional embodiment, the step of determining whether the next-hop node has node congestion comprises: initiating a preset request to the next-hop node; wherein the preset request is used to query the remaining size of the input cache space of the next-hop node; receiving a response returned by the next-hop node, and determining whether the remaining size of the input cache space of the next-hop node is greater than a preset value based on the response; if yes, determining that the next-hop node does not have node congestion; if no, determining that the next-hop node has node congestion.

[0078] It can be understood that the current node can obtain the real-time size of the remaining input buffer space of the next hop node by sending a preset request in advance, so as to determine whether the next hop node is blocked. If the size of the remaining input buffer space of the next hop node is small, it means that the next hop node is blocked. The specific type and implementation of the preset request and the corresponding response are not particularly limited in the present application. The specific value of the preset value can be set and adjusted according to the actual situation of the node, which is not particularly limited in the present application.

[0079] Further, in addition to network congestion, link failure will also affect the routing between the current node and the next hop node, so the current node can also determine whether the link between the current node and the next hop node is faulty by determining whether the time of receiving the response exceeds the preset time length or whether the current node cannot receive the response within the preset time length. If the transition node is determined as the new next hop node, the network congestion can be determined in a similar way. If the transition node is not supported as the next hop node, an alarm is triggered to inform the user that the current route is not supported, so that the user can timely eliminate the link failure. On the other hand, a program for testing the network connectivity of the entire target network can also be set up. The link between each node in the target network (including the link between the first nodes, the link between the second nodes, and the link between the first nodes and the second nodes) is tested every preset time period. If the network connectivity test indicates that all links are connected normally, the packet routing can continue to be applied; if there is a link failure, the link failure is eliminated in time before routing.

[0080] Specifically, the size of the remaining input buffer space of the next hop node can be obtained by sending a preset request, so as to determine the congestion of the next hop node, effectively determine the network congestion, which is simple, effective and easy to implement.

[0081] As an optional embodiment, if the target network corresponding to the partition network architecture is a two-dimensional network, the first preset path is a Hamilton path implemented based on a row path of the two-dimensional network, and the second preset path is a path implemented based on a column path of the two-dimensional network.

[0082] It can be understood that in the application scenario of two-dimensional network topology, the first preset path can adopt a Hamilton path implemented based on a row path of the two-dimensional network, and the second preset path can adopt a Hamilton path implemented based on a column path of the two-dimensional network. Figure 12The second preset path can be implemented by using a column path between the same column nodes, so as to fully utilize the column path on the basis of the Hamilton path, and realize the shortest alternative path. Meanwhile, considering that the second preset path needs to be designed close to the target node, the second preset path needs to use the north (upward in the figure) column path to implement for the high-pass path HH in the first preset path, that is, if the current node to the next hop node corresponds to the first access order, the second preset path needs to use the north (upward in the figure) column path to implement; for the low-pass path LL in the first preset path, that is, if the current node to the next hop node corresponds to the second access order, the second preset path needs to use the south (downward in the figure) column path to implement.

[0083] It should be noted that, as shown in Figure 15 Taking the two-dimensional network as shown in the figure as an example, when the high-pass path HH is transmitted, the even row nodes are only allowed to transmit in the north and east directions, and the odd row nodes are only allowed to transmit in the north and west directions; when the low-pass path LL is transmitted, the even row nodes are only allowed to transmit in the south and west directions, and the odd row nodes are only allowed to transmit in the south and east directions.

[0084] As a specific embodiment, as shown in Figure 15 The source node is node 6, and the target nodes are node 9 and node 14. The source node 6 sends a multicast message to the target node 9 and the target node 14. Normally, the Hamilton path is used, and after passing through nodes 7 and 8 in turn, it is transmitted to the target node 9 through 3 hops; then the Hamilton path is used again, and after passing through nodes 10, 11, 12 and 13 in turn, it is transmitted to the target node 14 through 5 hops. If the node 6 detects that the node 7 currently exists block when sending the message from the node 6 to the node 7, the node 9 is determined as a transition node based on the column path, at this time the next target node is node 9, and the node 9 as the next hop node can be directly transmitted from the node 6 to the node 9 through the column path P1, and the node 9 is copied to complete the message transmission of the first target node; meanwhile, it is further found that the next target node 14 is in the same column as the current node (node 9), so the column path P2 is directly used to transmit the message from the node 9 to the node 14, and the node 14 is copied to complete the message transmission of the second target node.

[0085] It should be noted that if the first target node is changed to node 8, then the transition node 9 determined based on the column path is not supported as the next hop node. Therefore, according to the Hamiltonian path, once the message is sent to node 9, it can only continue to be transmitted to node 10, etc., and cannot be transmitted to node 8. Therefore, the transition node is not supported as the next hop node at this time. At the same time, if the second target node is changed to node 13, after the message is transmitted from node 6 to node 9, although node 9 is the target node, node 9 and node 13 do not belong to the same column, that is, they are not on the same second preset path. At this time, the message still needs to use the Hamiltonian path, passing through nodes 10, 11, and 12 in sequence before being transmitted to the target node 13.

[0086] Specifically, the routing path is shortened by combining Hamiltonian paths with column path detours. At the same time, when determining the column path, the principle of proximity to the target node is adopted to achieve deadlock-free dynamic routing and enhance robustness. The present application implements a multi-level partitioning architecture by dividing the target network into multiple network partitions and interconnecting the network partitions through the first node. The first node adds a dedicated high-speed port to give priority to multicast traffic and achieve hardware optimization. The high-pass (HH) / low-pass (LL) paths are divided based on Hamiltonian paths within the network partitions, the direction of the multicast path is restricted, and bidirectional parallel transmission is achieved. Multicast messages can be distributed in multiple copies according to the location of the source node. At the same time, cross-region high-speed transmission and the shortest path replacement within the partition based on the column path are supported to achieve a flexible and adaptive routing algorithm. The setting of multiple paths remains deadlock-free, effectively reducing the risk of network congestion.

[0087] See also Figure 16 As shown, Figure 16 This is a schematic diagram of the structure of an electronic device provided by an embodiment of the present invention. To solve the above technical problems, an embodiment of the present invention further provides an electronic device, including: Memory 60, for storing computer programs; The processor 61 is configured to execute a computer program to implement the steps of the aforementioned routing method based on a partitioned network architecture.

[0088] The electronic device provided in this embodiment may include but is not limited to a smart phone, a tablet computer, a laptop computer, or a desktop computer.

[0089] The processor 61 can include one or more processing cores, such as a 4-core processor, an 8-core processor, etc. The processor 61 can be implemented in at least one of a hardware form of a digital signal processing (DSP), a field-programmable gate array (FPGA), a programmable logic array (PLA), etc. The processor 61 can also include a main processor and a coprocessor. The main processor is a processor for processing data in a wake-up state, also known as a central processing unit (CPU). The coprocessor is a low-power processor for processing data in a standby state. In some embodiments, the processor 61 can be integrated with a graphics processing unit (GPU) that is responsible for rendering and drawing content required to be displayed on the display screen. In some embodiments, the processor 61 can further include an artificial intelligence (AI) processor for processing computing operations related to machine learning.

[0090] The memory 60 can include one or more computer-readable storage media that can be non-transitory. The memory 60 can further include a high-speed random access memory, and a nonvolatile memory such as one or more disk storage devices, flash storage devices. In this embodiment, the memory 60 is at least used to store the following computer program 601, wherein the computer program is loaded and executed by the processor 61, and can implement the related steps of the routing method based on the partitioned network architecture disclosed in any of the preceding embodiments. In addition, the resources stored in the memory 60 can further include an operating system 602 and data 603, etc., and the storage manner can be temporary storage or permanent storage. The operating system 602 can include Windows, Unix, Linux, etc. The data 603 can include but is not limited to data in the routing method based on the partitioned network architecture, etc.

[0091] In some embodiments, the electronic device can further include a display screen 62, an input / output interface 63, a communication interface 64, a power supply 65, and a communication bus 66.

[0092] Those skilled in the art can understand that, Figure 16 The structure shown in the figure does not constitute a limitation on the electronic device, and can include more or fewer components than those shown in the figure.

[0093] The features of the electronic device provided by the embodiments of the present application can refer to the related descriptions of the partition network architecture and the embodiments of the routing method based on the partition network architecture, which will not be repeated here.

[0094] It can be understood that if the routing method based on the partition network architecture in the above embodiments is implemented in the form of a software function unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on such understanding, the technical solutions of the present application essentially or the part that contributes to the prior art or the whole or part of the technical solutions can be embodied in the form of a software product. The computer software product is stored in a storage medium, and performs all or part of the steps of the embodiments of the present application. The foregoing storage medium includes: a U disk, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), an electrically erasable programmable ROM, a register, a hard disk, a removable magnetic disk, a CD-ROM, a magnetic disk or an optical disk, and various media that can store program codes.

[0095] To solve the above technical problems, the embodiments of the present application further provide a computer readable storage medium, and the computer readable storage medium stores a computer program. When the computer program is executed by a processor, the steps of the routing method based on the partition network architecture are realized.

[0096] The features of the computer readable storage medium provided by the embodiments of the present application can refer to the related descriptions of the partition network architecture and the embodiments of the routing method based on the partition network architecture, which will not be repeated here.

[0097] To solve the above technical problems, the embodiments of the present application further provide a computer program product, which includes computer programs / instructions. When the computer programs / instructions are executed by a processor, the steps of the routing method based on the partition network architecture are realized.

[0098] The features of the computer program product provided by the embodiments of the present application can refer to the related descriptions of the partition network architecture and the embodiments of the routing method based on the partition network architecture, which will not be repeated here.

[0099] To solve the above technical problems, the embodiments of the present application further provide a routing device based on a partition network architecture, which is applied to the partition network architecture as described above. The routing device comprises: The unicast transmission unit is configured to, if the to-be-transmitted message is a unicast message, adopt a preset minimum path routing algorithm to transmit the unicast message from a source node to a target node. The partition determining unit is configured to determine whether the target nodes of the to-be-transmitted packet are in the same network partition as the source node of the to-be-transmitted packet if the to-be-transmitted packet is a multicast packet; if yes, the intra-zone transmission unit is triggered; if no, the second intra-zone transmission unit is triggered. The first intra-zone transmission unit is configured to transmit the to-be-transmitted packet from the source node to the target node based on a first preset path; the first preset path is a one-way path traversing all nodes in the same network partition and each node is accessed only once. The second intra-zone transmission unit is configured to transmit the to-be-transmitted packet from the source node to the first node of the same network partition and the target node of the same network partition based on the first preset path. The copying unit is configured to copy the to-be-transmitted packet through the first node to obtain a first packet copy. The cross-zone transmission unit is configured to transmit the first packet copy to other first nodes based on a second port of the first node, so as to transmit the to-be-transmitted packet to the target nodes of other network partitions through the other first nodes.

[0100] The features of the routing device based on the partition network architecture provided by the embodiments of the present application can refer to the related descriptions of the partition network architecture and the routing method based on the partition network architecture, which will not be repeated here.

[0101] The partition network architecture, routing method, device, medium and program product provided by the embodiments of the present application are described in detail above. The embodiments in the specification are described in a progressive manner, and each embodiment mainly describes the differences from other embodiments. The same or similar parts of each embodiment can be referred to. For the device disclosed in the embodiments, since it corresponds to the method disclosed in the embodiments, the description is relatively simple, and the related parts can be referred to the method part.

[0102] The skilled person can further realize that the units and algorithm steps of each example described in combination with the embodiments disclosed herein can be realized by electronic hardware, computer software or a combination of both. In order to clearly illustrate the interchangeability of hardware and software, the components and steps of each example have been described in a general manner in the above description. Whether the functions are realized in hardware or software depends on the specific application and design constraints of the technical solution. The skilled person can use different methods to realize the described functions for each specific application, but such implementation should not be considered beyond the scope of the present application.

[0103] The above describes in detail the partition network architecture, the routing method, the device, the medium and the program product provided by the present application. The principles and implementation manners of the present application are described by applying specific examples, and the above description of the examples is only applicable to helping understand the method of the present application and the core idea thereof. It should be pointed out that, for those skilled in the art, without departing from the principles of the present application, the present application can be improved and modified in several ways, and these improvements and modifications also fall within the protection scope of the present application.

Claims

1. A partitioned network architecture, characterized in that: include: a plurality of network partitions, each of which includes a first node and a plurality of second nodes; wherein the plurality of network partitions are partitions obtained by dividing a target network, and the first node and the second node are both nodes of the target network; For any first node, the first node includes a first port and a second port, the first port is configured to implement message transmission between the first node and the second node, and the second port is configured to implement multicast message transmission between the first node and other first nodes; For any second node, the second node includes a third port, and the third port is configured to realize message transmission between the second node and the first node in the same network partition and message transmission between the second node and other second nodes.

2. The partitioned network architecture according to claim 1, wherein: If there is a node at the exact center of the network partition, the first node is the node at the exact center of the network partition; If there is no node at the exact center of the network partition, the first node is a node on a first side of the exact center of the network partition; wherein the first side is a side close to the target network center.

3. The partitioned network architecture according to claim 1, wherein: The first node is configured so that messages transmitted through the second port are only allowed to be transmitted to other first nodes according to a preset clock sequence; wherein the preset clock sequence is an order set in advance based on the spatial positions of several first nodes corresponding to several network partitions.

4. A routing method based on a partitioned network architecture, characterized in that: Applicable to the partitioned network architecture according to any one of claims 1 to 3; The routing method includes: If the message to be transmitted is a unicast message, a preset minimum path routing algorithm is used to transmit the unicast message from the source node to the destination node; If the message to be transmitted is a multicast message, determining whether the destination nodes of the message to be transmitted are all in the same network partition as the source node of the message to be transmitted; If yes, transmitting the message to be transmitted from the source node to the target node based on a first preset path; wherein the first preset path is a unidirectional path that traverses all nodes in the same network partition and visits each node only once; If not, transmitting the to-be-transmitted message from the source node to the first node in the same network partition and the target node in the same network partition based on the first preset path; Copying the message to be transmitted through the first node to obtain a first message copy; The first message copy is transmitted to other first nodes based on the second port of the first node, so as to transmit the to-be-transmitted message to the target node of other network partition through the other first nodes.

5. The routing method based on partitioned network architecture according to claim 4, characterized in that: Transmitting the to-be-transmitted message from the source node to the target node based on the first preset path includes: Copying the message to be transmitted to obtain a second message copy and a third message copy of the message to be transmitted; Transmitting the second message copy from the source node to a first destination node according to a first access order specified by the first preset path; wherein the first destination node is a destination node located after the source node in the first access order; The third message copy is transmitted from the source node to the second target node according to the second access order; wherein the first access order and the second access order are completely opposite; the second target node is the target node located before the source node in the first access order.

6. The routing method based on partitioned network architecture according to claim 4, characterized in that: Also includes: For any network partition, sequentially set node identifiers for all nodes in the network partition according to a first access order specified by the first preset path; Setting a partition identifier for each of the network partitions in sequence according to a preset clock sequence; A node address of a target node in the message to be transmitted is generated based on the partition identifier and the node identifier.

7. The routing method based on partitioned network architecture according to claim 6, characterized in that: After transmitting the message to be transmitted from the source node to the target node based on the first preset path, the method further includes: For any target node, if the target node receives the message to be transmitted, deleting the node address corresponding to the target node in the message to be transmitted through the target node; After transmitting the first message copy to another first node based on the second port of the first node, the method further includes: For any first node, if the first node receives the first message copy through the second port, the partition identifier corresponding to the first node in the message to be transmitted is deleted through the first node.

8. The routing method based on partitioned network architecture according to any one of claims 4 to 7, characterized in that: Transmitting the to-be-transmitted message from the source node to the target node based on the first preset path includes: For any current node, determining the next hop node of the message to be transmitted according to the first preset path; Forwarding the message to be transmitted from the current node to the next hop node; Determine whether the next hop node is a target node; If so, copy the message to be transmitted and download the copied copy to the target node; Determine the next hop node as a new current node, and jump again to the step of determining the next hop node of the message to be transmitted according to the first preset path; If not, directly jump to the step of determining the next hop node as the new current node.

9. The routing method based on partitioned network architecture according to claim 8, characterized in that: Before forwarding the message to be transmitted from the current node to the next hop node, the method further includes: Determine whether the next hop node is blocked; If the next hop node is blocked, determining whether the current node supports a transition node as the next hop node; wherein the transition node is a node determined by the current node based on the second preset path; If the transition node is supported as the next hop node, the transition node is determined as a new next hop node, and the process jumps to the step of forwarding the message to be transmitted from the current node to the next hop node.

10. The routing method based on partitioned network architecture according to claim 9, characterized in that: If the transition node is supported as the next hop node and the next hop node is the target node, after determining the next hop node as the new current node, the method further includes: Determining whether the next target node of the message to be transmitted is on the same second preset path as the current node; If so, the next target node is determined as a new next-hop node, and the process directly jumps to the step of forwarding the message to be transmitted from the current node to the next-hop node; If not, the process jumps back to the step of determining the next hop node of the message to be transmitted according to the first preset path.

11. The routing method based on partitioned network architecture according to claim 9, characterized in that: Determining whether the next hop node is blocked includes: Initiate a preset request to the next hop node; wherein the preset request is used to query the remaining size of the input buffer space of the next hop node; receiving a response returned by the next hop node, and determining, based on the response, whether a remaining size of the input buffer space of the next hop node is greater than a preset value; If so, it is determined that there is no node congestion at the next hop node; If not, it is determined that the next hop node is blocked.

12. The routing method based on partitioned network architecture according to claim 9, characterized in that: If the target network corresponding to the partitioned network architecture is a two-dimensional network, the first preset path is a Hamiltonian path implemented based on the row path of the two-dimensional network, and the second preset path is a path implemented based on the column path of the two-dimensional network.

13. An electronic device, characterized in that: include: Memory for storing computer programs; A processor, configured to execute the computer program to implement the steps of the routing method based on the partitioned network architecture as described in any one of claims 4 to 12.

14. A computer-readable storage medium, characterized in that The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the steps of the routing method based on the partitioned network architecture as described in any one of claims 4 to 12 are implemented.

15. A computer program product comprising a computer program / instructions, characterized in that When the computer program / instruction is executed by a processor, the steps of the routing method based on partitioned network architecture described in any one of claims 4 to 12 are implemented.

Citation Information

Patent Citations

  • Pre-congestion notification (PCN) as a base for admission control and floe termination

    CN102415060A

  • Network on chip system and establishment method of network on chip communication link

    CN105450555A

  • Port-to-port network routing using a storage device

    CN113098799A

  • Network-on-chip and multicast message transmission method

    CN115996199A

  • Routing direction determination method and device, storage medium and electronic equipment

    CN118264605A

Cited By

  • Request processing method, multi-core processor, product, electronic equipment and medium

    CN121711298A