A partitioned network architecture, routing method, device, medium and program product

By dividing the on-chip network into multiple network partitions and utilizing the high-speed interconnect port of the first node, the high latency and high blocking problems in the multicast routing algorithm are solved, achieving low-latency and high-efficiency multicast communication.

CN120768829BActive Publication Date: 2026-01-27SHANDONG YUNHAI GUOCHUANG CLOUD COMPUTING EQUIP IND INNOVATION CENT CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

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

AI Technical Summary

Technical Problem

Existing multicast routing algorithms suffer from high latency and high blocking risks in on-chip networks, affecting communication efficiency.

Method used

A partitioned network architecture is adopted, which divides the target network into several network partitions and sets up a first node and a second node in each partition. High-speed interconnection across partitions is achieved through the second port of the first node. Multicast message transmission is optimized by using a preset clock sequence and a multi-level partitioned topology.

Benefits of technology

It significantly reduces the transmission latency and network congestion risk of multicast messages, improves the energy efficiency and throughput of on-chip networks, and optimizes the synchronization of multicast routes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120768829B_ABST
    Figure CN120768829B_ABST
Patent Text Reader

Abstract

The application discloses a kind of partition network architecture, routing method, equipment, medium and program product, it is related to routing technical field, target network is divided into several network partitions, the first node of each network partition is connected by configured second port, to realize the interconnection between each network partition;When multicast message needs to be transmitted, the transmission between nodes in the same network partition can be realized through the first port and the second port;Second port is used to realize the cross-zone transmission of multicast message simultaneously.Each network partition can independently parallel message transmission within the partition, reduce cache contention, optimize the synchronicity of multicast routing, and by setting second port for the first node to realize the dedicated multicast message transmission channel between each network partition, reduce the delay caused by long-distance message transmission, significantly reduce the message transmission delay and the risk of target network congestion, improve the energy efficiency and throughput of target network.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of routing technology, and in particular to a partitioned network architecture, routing method, device, medium, and program product. Background Technology

[0002] Network on Chip (NoC), as the interconnect architecture for modern multi-core processors and many-core accelerators, must balance low latency, high throughput, high energy efficiency, and strong scalability in its design. Among various communication modes, multicast communication plays an irreplaceable role in several key application scenarios by achieving efficient one-to-many data transmission through multicast routing. For example, in cache consistency maintenance, multicast communication is widely used in shared node notifications 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 enables rapid distribution of weight parameters; and in fault tolerance mechanisms, multicast communication is used for rapid recovery of faulty nodes. However, as the scale of NoC continues to increase, the high latency of the multicast routing algorithms currently used in NoC leads to a significant risk of congestion in 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 of the Invention

[0004] The purpose of this invention is to provide a partitioned network architecture, routing method, device, medium, and program product that can solve the problems of high latency and high blocking risk in current multicast routing algorithms.

[0005] To address the aforementioned technical problems, embodiments of the present invention provide a partitioned network architecture, comprising:

[0006] Several network partitions, each network partition including a first node and several second nodes; wherein, the several network partitions are several partitions obtained by dividing the target network, and the first node and the second node are nodes of the target network;

[0007] For any first node, the first node includes a first port and a second port. The first port is configured to enable message transmission between the first node and the second node, and the second port is configured to enable multicast message transmission between the first node and other first nodes.

[0008] For any second node, the second node includes a third port, which is configured to enable message transmission between the second node and the first node in the same network partition, as well as message transmission between the second node and other second nodes.

[0009] Optionally, if a node exists at the exact center of the network partition, then the first node is the node at the exact center of the network partition.

[0010] If there is no node at the exact center of the network partition, then the first node is the node on the first side of the exact center of the network partition; where the first side is the side closest to the center of the target network.

[0011] Optionally, the first node is configured such that packets transmitted through the second port are only allowed to be transmitted to other first nodes in a preset clock order; wherein the preset clock order is a pre-set order based on the spatial locations of several first nodes corresponding to several network partitions.

[0012] To address the aforementioned technical problems, embodiments of the present invention also provide a routing method based on a partitioned network architecture, applicable to the partitioned network architecture described above; the routing method includes:

[0013] If the message to be transmitted is a unicast message, the preset minimum path routing algorithm is used to transmit the unicast message from the source node to the target node.

[0014] If the message to be transmitted is a multicast message, determine whether the target nodes of the message to be transmitted are all in the same network partition as the source node of the message to be transmitted.

[0015] If so, the message to be transmitted will be transmitted from the source node to the target node based on the 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;

[0016] If not, the message to be transmitted will be transmitted from the source node to the first node and the target node of the same network partition based on the first preset path.

[0017] The first node copies the message to be transmitted to obtain a copy of the first message;

[0018] Based on the second port of the first node, a copy of the first message is transmitted to other first nodes, so that the message to be transmitted can be transmitted to the target node of other network partitions through the other first nodes.

[0019] Optionally, transmitting the message to be transmitted from the source node to the target node based on the first preset path includes:

[0020] The message to be transmitted is copied to obtain a second copy and a third copy of the message to be transmitted;

[0021] The second message copy is transmitted from the source node to the first target node according to the first access order specified by the first preset path; wherein the first target node is the target node located after the source node in the first access order;

[0022] The third message copy is transmitted from the source node to the second target node in the second access order; wherein the first access order and the second access order are completely reversed; the second target node is the target node that is located before the source node in the first access order.

[0023] Optional, also includes:

[0024] For any network partition, node identifiers are set sequentially for all nodes of the network partition according to the first access order specified by the first preset path.

[0025] Set the partition identifier for each network partition in the preset clock sequence;

[0026] The node address of the target node in the message to be transmitted is generated based on the partition identifier and node identifier.

[0027] 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:

[0028] For any target node, if the target node receives the message to be transmitted, it deletes the node address corresponding to the target node in the message to be transmitted.

[0029] After transmitting a copy of the first message to other first nodes via the second port of the first node, the process also includes:

[0030] For any first node, if the first node receives a copy of the first message through the second port, the first node deletes the partition identifier corresponding to the first node in the message to be transmitted.

[0031] Optionally, transmitting the message to be transmitted from the source node to the target node based on the first preset path includes:

[0032] For any current node, determine the next hop node of the message to be transmitted according to the first preset path;

[0033] Forward the message to be transmitted from the current node to the next hop node;

[0034] Determine if the next hop node is the target node;

[0035] If so, copy the message to be transmitted and download the copied copy to the target node;

[0036] The next hop node is determined as the new current node, and the process jumps back to the next hop node of the message to be transmitted determined according to the first preset path.

[0037] If not, proceed directly to the step of determining the next hop node as the new current node.

[0038] Optionally, before forwarding the message to be transmitted from the current node to the next-hop node, the following steps are also included:

[0039] Determine if there is a node blockage in the next hop node;

[0040] If there is node blockage at the next hop node, then determine whether the current node supports a transition node as the next hop node; where the transition node is the node determined by the current node based on the second preset path;

[0041] If a transition node is supported as a next-hop node, then 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.

[0042] Optionally, if transition nodes are supported as next-hop nodes, and the next-hop node is the target node, after determining the next-hop node as the new current node, the following is also included:

[0043] Determine whether the next target node of the message to be transmitted is on the same second preset path as the current node;

[0044] If so, the next target node is determined as the new next-hop node, and the process jumps directly to the step of forwarding the message to be transmitted from the current node to the next-hop node;

[0045] If not, then jump back to the step of determining the next-hop node of the message to be transmitted according to the first preset path.

[0046] Optionally, determine if there is node blocking in the next hop node, including:

[0047] Initiate a preset request to the next hop node; the preset request is used to query the remaining size of the input cache space of the next hop node;

[0048] Receive the response returned by 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;

[0049] If so, then determine that there is no node blocking the next hop node;

[0050] If not, then it is determined that the next hop node is blocked.

[0051] 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.

[0052] To address the aforementioned technical problems, embodiments of the present invention also provide an electronic device, comprising:

[0053] Memory, used to store computer programs;

[0054] A processor is used to execute computer programs to implement the steps of the routing method based on the partitioned network architecture described above.

[0055] To address the aforementioned technical problems, embodiments of the present invention also provide a computer-readable storage medium storing a computer program, which, when executed by a processor, implements the steps of the routing method based on a partitioned network architecture as described above.

[0056] To address the aforementioned technical problems, embodiments of the present invention also provide a computer program product, including a computer program / instructions, which, when executed by a processor, implement the steps of the aforementioned routing method based on a partitioned network architecture.

[0057] As can be seen from the above technical solution, the target network is divided into several network partitions. The first node of each network partition is connected through a configured second port, thereby realizing the interconnection between the network partitions. When multicast messages need to be transmitted, transmission between nodes in the same network partition can be achieved through the first and second ports. At the same time, the second port is used to realize the cross-partition transmission of multicast messages. The beneficial effects of this invention are that each network partition can independently and in parallel transmit messages within the partition, reducing buffer contention, optimizing the synchronization of multicast routes, and by setting up a dedicated second port for the first node to realize a dedicated multicast message transmission channel between each network partition, the latency caused by long-distance message transmission is reduced, significantly reducing message transmission latency and the risk of congestion in the target network, and improving the energy efficiency and throughput of the target network. Attached Figure Description

[0058] To more clearly illustrate the embodiments of the present invention, the accompanying drawings used in the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0059] Figure 1 This is a schematic diagram of a partitioned network architecture provided in an embodiment of the present invention;

[0060] Figure 2 This is a schematic diagram of another partitioned network architecture provided in an embodiment of the present invention;

[0061] Figure 3 A flowchart illustrating a routing method based on a partitioned network architecture provided in an embodiment of the present invention;

[0062] Figure 4 A schematic diagram of the routing rules for a first type of unicast message provided in an embodiment of the present invention;

[0063] Figure 5 This is a schematic diagram of the routing rules for a second type of unicast message provided in an embodiment of the present invention;

[0064] Figure 6 A schematic diagram of the routing rules for the third type of unicast message provided in an embodiment of the present invention;

[0065] Figure 7 A schematic diagram of the routing rules for the fourth type of unicast message provided in an embodiment of the present invention;

[0066] Figure 8 A schematic diagram of the routing rules for the fifth type of unicast message provided in an embodiment of the present invention;

[0067] Figure 9 A schematic diagram of the routing rules for the sixth type of unicast message provided in an embodiment of the present invention;

[0068] Figure 10 A schematic diagram of the routing rules for the seventh type of unicast message provided in an embodiment of the present invention;

[0069] Figure 11 A schematic diagram of the routing rules for the eighth type of unicast message provided in an embodiment of the present invention;

[0070] Figure 12 A schematic diagram of routing rules for the first path provided in an embodiment of the present invention;

[0071] Figure 13 This is a schematic diagram illustrating a first method of routing based on a first path, as provided in an embodiment of the present invention.

[0072] Figure 14 This is a schematic diagram illustrating a second method of routing based on a first path, as provided in an embodiment of the present invention.

[0073] Figure 15 This is a schematic diagram illustrating routing based on a first path and a second path, provided as an embodiment of the present invention.

[0074] Figure 16 This is a schematic diagram of the structure of an electronic device provided in an embodiment of the present invention. Detailed Implementation

[0075] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the protection scope of the present invention.

[0076] The terms "comprising" and "having," and any variations thereof, in the specification and accompanying drawings of this invention are intended to cover non-exclusive inclusion. For example, a process, method, system, product, or apparatus that includes a series of steps or units is not limited to the steps or units listed, but may include steps or units not listed.

[0077] 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 embodiments.

[0078] Next, a partitioned network architecture provided by an embodiment of the present invention will be described in detail. See also Figure 1 As shown, Figure 1 This is a schematic diagram of a partitioned network architecture provided in an embodiment of the present invention; the partitioned network architecture includes:

[0079] Several network partitions, each network partition including 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 nodes of the target network;

[0080] For any first node M, the first node M includes a first port and a second port. The first port is configured to realize message transmission between the first node M and the second node V, and the second port is configured to realize multicast message transmission between the first node M and other first nodes M.

[0081] For any second node V, the second node V includes a third port, which is configured to enable message transmission between the second node V and the first node M in the same network partition, as well as message transmission between the second node V and other second nodes V.

[0082] It is easy to understand that, in order to adapt to the increasingly large network size and reduce path transmission latency, this application proposes a multi-level partition topology. For a target network, it is pre-divided into several network partitions before application. Any network partition will include at least two nodes. After the partitioning is completed, for any network partition, one node is selected as the first node M and the other nodes are selected as the second nodes V. Within 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 each network partition, the network partitions are interconnected through the second port of the first node M. Therefore, when multicast messages need to be transmitted within a network partition, the first port and / or the third port are used directly to forward messages between adjacent nodes within the same network partition. At this time, the functions of the first node M and the second node V are exactly the same, thereby transmitting messages to various target nodes within the same network partition. When multicast messages need to be transmitted across partitions, when the message to be transmitted is sent to the first node M, the second port is called by the first node M to send the message to other first nodes M, so as to send the message to other network partitions, thereby realizing the transmission of messages to various target nodes in other network partitions.

[0083] It is understandable that, considering the greater transmission distance across network partitions compared to the transmission distance between adjacent nodes within the same network partition, each network partition needs to utilize the second port of the first node M to achieve a higher transmission rate for high-speed interconnection compared to the first port and the third port. That is, the transmission rate of the communication connection between first node M and first node M is greater than the transmission rate between first node M and second node V, or between second nodes V. This application does not specifically limit the specific type and implementation method of the second port, nor does it specifically limit the specific implementation method of the high-speed interconnection achieved by the second port. One or more combinations of higher-speed ports, higher-speed transmission media, high-speed dedicated protocols, and negotiated high transmission rates can be used to achieve high-speed interconnection between network partitions.

[0084] It should be noted that both the first node M and the second node V are essentially nodes in the target network. Therefore, the implementation methods of the first port and the third port can be completely identical. This application does not impose any special limitations on the specific types and implementation methods of the first and third ports. The second port is an additional port structure added to the first node M compared to the second node V, specifically used to achieve high-speed interconnection between network partitions. This application does not impose any special limitations on the specific types and implementation methods of each node (including the first node M and the second node V), which can be independent units such as computers capable of receiving, sending, or forwarding data. This application does not impose any special limitations on the division method of each network partition. A preferred embodiment is to evenly divide the nodes in the target network into several network partitions. The target network and the number of network partitions can be adjusted and set according to the actual application situation, and this application does not impose any special limitations on them. Using the second port to achieve cross-network partition transmission 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 besides unicast messages. This application mainly uses the multicast route corresponding to multicast messages as an example for illustration. In actual applications, there is no such limitation, and the settings and adjustments can be made according to the specific type of message in the actual application.

[0085] Furthermore, considering that after the message reaches the target node, the target node will download the generated message copy to its internal PE (Processing Elements), in addition to the first, second, and third ports for message transmission and forwarding, both the first node M and the second node V will also set up a local port specifically for downloading the received message to the PE within the node to complete the message transmission at the target node. This local port may also be downloaded to other types of processing cores within the node, and is not limited to the PE in this embodiment. This application does not specifically limit the specific type and implementation method of this local port.

[0086] As a specific embodiment, taking a two-dimensional network as the target network as an example, see [link to example]. Figure 2 As shown, Figure 2 This is a schematic diagram of another partitioned network architecture provided by an embodiment of the present invention. Nodes in a two-dimensional network typically have input / output ports in four directions: east, south, west, and north. These ports are used to transmit messages between adjacent nodes in each of the four directions and the node itself. Therefore, the third port of the second node V and the first port of the first node M specifically include an east port, a south port, a west port, and a north port. Based on this, the first node M needs to additionally set up input / output ports to implement the second port. Assuming that the first nodes M corresponding to all network partitions are connected in series in a preset order to form a ring connection for cross-partition message transmission, as shown... Figure 2 As shown, there are four network partitions. The first network partition contains a first node M1 and 15 second nodes V. The second network partition contains a first node M2 ​​and 15 second nodes V. The third network partition contains a first node M3 and 15 second nodes V. The fourth network partition contains a fourth node M4 and 15 second nodes V. 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 have two additional ports set up as second ports. One port serves as an input port to receive messages sent by the previous first node M in the preset order, and the other port serves as an output port to send the message to be transmitted to the next first node M in the preset order.

[0087] Taking an 8×8 2D-Mesh network (Two-Dimensional Mesh Network) as an example, this two-dimensional network is statically divided into four equal network partitions, each of which is a 4×4 network. For unicast packets, the minimum XY routing algorithm with limited turns can still be used for transmission within and across network partitions within the 8×8 network. For multicast and broadcast packets, to avoid large path delays, high-speed communication across network partitions is achieved using four first nodes M corresponding to the four network partitions. In this way, multiple copies of multicast or broadcast packets can be independently transmitted simultaneously in each network partition, greatly improving transmission efficiency. At the same time, using the first nodes M to achieve cross-network partition transmission avoids multiple relays by the second nodes V, thus minimizing network contention between multicast and unicast packets.

[0088] It should be noted that each network partition has only one first node M. Therefore, the packet transmission between two first nodes M implemented by the second port is actually a cross-partition packet transmission between two network partitions. Furthermore, the partitioning of the network itself does not affect the architecture of the target network. Therefore, two adjacent network partitions can not only achieve cross-partition transmission through their first nodes M, but their adjacent second nodes V are also adjacent. The third port can be used to achieve packet transmission between adjacent second nodes V in different network partitions; because the third port can not only achieve packet transmission between two second nodes V within the same network partition, but also between two adjacent second nodes V in different network partitions. Figure 2 The second node V in the fourth column of the first network partition is adjacent to the second node V in the first column of the fourth network partition. Therefore, for example, the second node V in the first row and fourth column of the first network partition can send a message to the second node V in the first row and first column of the fourth network partition through its own eastward third port.

[0089] This application achieves high-speed links between network partitions by dividing the network into partitions and configuring the first node M, utilizing the second port of the first node M. This reduces the hop count of multicast or broadcast messages when transmitting across network partitions, thus avoiding long-distance delays and other problems during routing. Particularly applicable to two-dimensional network topologies, it implements an adaptive multicast routing strategy. Simultaneously, the configuration of the first node M is used to prevent multicast and unicast messages from competing for network space, reducing the risk of network congestion.

[0090] As an optional embodiment, if a node exists at the exact center of the network partition, then the first node M is the node at the exact center of the network partition;

[0091] If there is no node at the exact center of the network partition, then the first node M is the node on the first side of the exact center of the network partition; where the first side is the side closest to the center of the target network.

[0092] It's understandable that the source node of a message to be transmitted could be any node in the target network. Therefore, to facilitate the first node M obtaining the message from the source node within the same network partition when the message needs to be transmitted across partitions, the node at the very center of the network partition can be chosen as the first node M. Regardless of which node in the network partition is the source node, the message can be quickly sent to the first node M, shortening the transmission path between the source node and the first node M. Simultaneously, to minimize the transmission path between first nodes M, if there is no node at the very center of the network partition, a node closer to the center of the entire target network can be chosen as the first node M. The specific location and distribution of each node depend on the architecture of the target network itself. The division of the network partition does not affect the architecture of the target network; therefore, the selection of the first node M needs to be based on the inherent distribution of nodes within the target network.

[0093] It should be noted that, with Figure 2 Taking the illustrated two-dimensional network topology as an example, the nodes in a two-dimensional mesh network are distributed based on an orthogonal grid of rows and columns. Therefore, the first node M can be defined according to the parity of the single-direction (row / column) dimension of the network partition. When the single-direction dimension of the network partition is odd, the first node M can be located at the exact center of that direction. When both directions of the network partition are odd, the first node M can be located at the exact center of the network partition. When the single-direction dimension of the network partition is even, the first node M needs to be biased towards the direction of the target network center. Figure 2As shown, the first network partition has 4 rows, which is an even number. In this case, the node in the third row (with the southernmost row, i.e., the bottom row in the diagram, as the first row) that is biased towards the center of the target network needs to be selected as the first node M. The column partition has 4 columns, which is an even number. In this case, the node in the third column (with the westernmost column, i.e., the column closest to the center in the diagram, as the first column) that is biased towards the center of the target network needs to be selected as the first node M. In summary, the node in the third row and third column is selected as the first node M1 of the first network partition.

[0094] Specifically, by selecting the central node as the first node M, the transmission distance from the source node to the first node M within the same network partition, as well as between the first node M and the source node M, can be shortened as much as possible, thereby minimizing communication latency during cross-partition transmission and further improving the routing performance of the network.

[0095] As an optional embodiment, the first node M is configured such that packets transmitted through the second port are only allowed to be transmitted to other first nodes M in a preset clock order; wherein, the preset clock order is an order pre-set according to the spatial locations of several first nodes M corresponding to several network partitions.

[0096] It is easy to understand that, to avoid potential transmission conflicts during high-speed interconnection between the first nodes M, after the first nodes M of each network partition are determined, the transmission direction between the first nodes M can be specified by configuring the input or output functions of the second ports. Specifically, this can be achieved using a clockwise or counter-clockwise sequence, or other types of sequences, not limited to the clockwise / counter-clockwise sequence in this embodiment. This application does not specifically limit the specific configuration implementation of this transmission order; it can be achieved by configuring the second port of the first node M in one direction as an input port and the second port in the other direction as an output port, etc. Figure 2 As shown, when multicast transmission is required, messages between the first nodes M are transmitted clockwise between the sub-nodes by default.

[0097] Specifically, by specifying the transmission direction, problems such as transmission conflicts or bidirectional transmission interference between the first nodes M are avoided. The specific interaction logic when transmitting across network partitions is clarified, and orderly transmission rules are established to further improve the transmission efficiency of messages between the first nodes M, reduce resource waste, and ensure the reliability and accuracy of transmission.

[0098] See Figure 3 As shown, Figure 3 This is a flowchart illustrating a routing method based on a partitioned network architecture provided by an embodiment of the present invention. To address the aforementioned technical problems, this embodiment of the present invention also provides a routing method based on a partitioned network architecture, applied to the aforementioned partitioned network architecture. The routing method includes:

[0099] S11: If the message to be transmitted is a unicast message, the unicast message is transmitted from the source node to the target node using the preset minimum path routing algorithm;

[0100] Understandably, considering that unicast packets only have one target node and their need to cross network partitions is not high, this application still uses a preset minimum path routing algorithm for unicast packet transmission. It does not call the first node for cross-region transmission, but directly utilizes the third port of the second node to achieve cross-region transmission based on the minimum path. This application does not specifically limit the specific type and implementation method of the preset minimum path routing algorithm; it can be implemented using methods such as the minimum XY routing algorithm. Furthermore, considering the potential network congestion in the target network when there are many packets to be transmitted, this invention uses a minimum XY routing algorithm that restricts turns for sending and transmitting unicast packets.

[0101] Specifically, taking the minimum XY routing algorithm in a two-dimensional mesh network as an example, when the network is not congested, unicast packets, based on the principle of minimum path, are transmitted first in the X direction to the same column as the target node, and then in the Y direction to the target node. However, when the network is congested, the transmission direction of unicast packets no longer simply follows the X-then-Y approach, but instead arbitrates the output direction based on the input buffer status of the next-hop node, and performs local detours based on the principle of not straying too far from the target node. To avoid loop deadlock, the following limiting turning strategy is adopted. Specifically, assume (x s y s ) is the node address of the source node, (x d x d Let be the node address of the target node, where x is the x-coordinate of the column in the 2D mesh network, and y is the y-coordinate of the row in the 2D mesh network. For the target network and any network partition, the southernmost (bottom) row is taken as the first row, and the westernmost (leftmost) column is taken as the first column. In the 2D mesh network, north is the top of the diagram, south is the bottom of the diagram, west is the left of the diagram, and east is the right of the diagram. When ((x s ≤x d )&(y s ≤y d )) or ((x) s ≥x d )&(y s ≥y d When turning, turns are prohibited in the following directions: West → South, South → West, East → North, and North → East. See [link / reference]. Figure 4 As shown, Figure 4This is a schematic diagram of the routing rules for a first type of unicast message provided in an embodiment of the present invention; wherein, x1 is the smallest, x2=x4, x3 is the largest, y2 is the smallest, y1=y3, y4 is the largest, (x s ≤x d )&(y s ≤y d When traveling from west to south, detours are prohibited. See [link / reference]. Figure 5 As shown, Figure 5 This is a schematic diagram of the routing rules for the second type of unicast message provided in an embodiment of the present invention; (x) s ≥x d )&(y s ≥y d When traveling from east to north, detours are prohibited; see [link / reference]. Figure 6 As shown, Figure 6 This is a schematic diagram of the routing rules for the third type of unicast message provided in an embodiment of the present invention; (x) s ≤x d )&(y s ≤y d When traveling from south to west, detours are prohibited; see [link / reference]. Figure 7 As shown, Figure 7 This is a schematic diagram of the routing rules for the fourth type of unicast message provided in an embodiment of the present invention; (x) s ≥x d )&(y s ≥y d When (x) is in use, detours from north to east are prohibited. s ≤x d )&(y s ≥y d )) or ((x) s ≥x d )&(y s ≤y d When turning at this time, turns in the following directions are prohibited: West → North, South → East, East → South, and North → West. See [link / reference]. Figure 8 As shown, Figure 8 This is a schematic diagram of the routing rules for the fifth type of unicast message provided in an embodiment of the present invention; (x) s ≤x d )&(y s ≥y d When traveling from west to north, detours are prohibited; see [link / reference]. Figure 9 As shown, Figure 9 This is a schematic diagram of the routing rules for the sixth type of unicast message provided in an embodiment of the present invention; (x) s ≥x d )&(y s ≤y d When traveling from east to south, detours are prohibited; see [link / reference]. Figure 10 As shown, Figure 10This is a schematic diagram of the routing rules for the seventh type of unicast message provided in an embodiment of the present invention; (x) s ≥x d )&(y s ≤y d When traveling from south to east, detours are prohibited; see [link / reference]. Figure 11 As shown, Figure 11 This is a schematic diagram of the routing rules for the eighth type of unicast message provided in an embodiment of the present invention; (x) s ≤x d )&(y s ≥y d When a message travels from north to west, detours are prohibited. In short, the transmission direction should not deviate from the destination node. Once a message has moved away from the congestion area, the shortest XY routing algorithm is reverted.

[0102] S12: If the message to be transmitted is a multicast message, determine whether the target nodes of the message to be transmitted are all in the same network partition as the source node of the message to be transmitted.

[0103] It is easy to understand that if the message to be transmitted is a multicast or broadcast message, it needs to be transmitted from the source node to multiple target nodes. These target nodes may all be in the same network partition as the source node, or they may be in different network partitions. Therefore, it is necessary to first determine whether these target nodes are all in the same network partition as the source node of the message to be transmitted. This application does not impose any special limitations on the specific implementation method of the message to be transmitted.

[0104] S13: If so, the message to be transmitted will be transmitted from the source node to the target node based on the 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;

[0105] It is understandable that if all target nodes are in the same network partition as the source node of the message to be transmitted, then the message to be transmitted only needs to be transmitted within the same network partition, through the first port of the first node and the third port of the second node. In this case, a pre-configured first preset path in the network partition can be used as the routing path for the message to be transmitted. For any network partition, a corresponding first preset path is set within the partition. The first preset path can traverse all nodes in the network partition, and each node is visited only once. Therefore, through the first preset path, the message can be effectively sent to each node in the network partition, thus realizing the operation of transmitting the message to be transmitted to each target node in the same network partition. This application does not specifically limit the specific type and implementation method of the first preset path.

[0106] S14: If not, then the message to be transmitted will be transmitted from the source node to the first node and the target node of the same network partition based on the first preset path.

[0107] It's easy to understand that if the target node and the source node are not in the same network partition, then the target node includes two types of nodes: those in the same network partition as the source node and those in a different network partition. For the first type of target node in the same network partition as the source node, the transmission of the message can be completed directly using the first preset path. For the second type of target node in a different network partition than the source node, it is necessary to use the first node in the network partition where the source node is located for cross-partition transmission. Therefore, in this case, the message to be transmitted also needs to be sent to the first node in the same network partition first.

[0108] S15: Copy the message to be transmitted through the first node to obtain a copy of the first message;

[0109] Understandably, considering that there may be target nodes after the first node in the packet transmission sequence along the first preset path, when the packet to be transmitted arrives at the first node, the first node will copy the packet to obtain a first packet copy. This copy will then be used for subsequent cross-region transmission to deliver the packet to target nodes in other network partitions. The original packet will then continue to be routed along the first preset path until packet transmission to all target nodes within the same network partition is completed.

[0110] It should be noted that if the first node happens to be the target node, and there are no other target nodes following it according to the routing order of the first preset path, then a copy of the message can be copied from the first node and downloaded locally. The original message to be transmitted can then be directly used as the first copy for cross-region transmission. This application does not impose any special restrictions on the specific copying method of the message to be transmitted or the implementation method of the corresponding copy.

[0111] S16: Based on the second port of the first node, transmit a copy of the first message to other first nodes, so that the message to be transmitted can be transmitted to the target node of other network partitions through the other first nodes.

[0112] It is easy to understand that after the first node generates the first message copy, it can transmit the first message copy to other first nodes through the high-speed interconnection path formed by the second port. After the first message copy is sent to the first nodes of other network partitions, the first nodes of those network partitions then transmit the received message copy to the target node in their own network partition based on the first preset path of their respective network partitions, until the message transmission to all target nodes is completed. After the first message copy is transmitted to the first node, the transmission process from other first nodes to the target node in the corresponding network partition is similar to the process from the source node to the target node in the same network partition, and will not be described in detail here. If the target node exists in only one other network partition, it is only necessary to send the first message copy to the first node corresponding to that network partition. If the target node exists in multiple other network partitions, the first message copy needs to be sent sequentially to the first nodes corresponding to each other network partition according to a preset clock order.

[0113] 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 a copy of the first message to the first node of the next network partition corresponding to the preset clock sequence. If the target node exists in the network partition and other network partitions subsequently contain the target node, the first node of the network partition will generate a new copy of the message for message transmission in that network partition. Then, the first copy of the message will continue to be sent to the first node of the next network partition corresponding to the preset clock sequence, and the above operation will be repeated until all subsequent network partitions do not contain the target node. After that, the first copy of the message will be directly used for message transmission in the current network partition.

[0114] This invention, based on a partitioned network architecture, also provides a routing method, particularly a multicast routing method, based on this topology. Through a multi-level partitioned topology and adaptive routing strategy, it significantly reduces multicast transmission latency and congestion, while improving energy efficiency and throughput. Network partitions are directly interconnected across partitions via a first node. The high-speed link of the first node reduces the number of hops in cross-partition transmission, avoiding long-distance transmission latency issues. Intra-partition packet transmission within each network partition is independent. Parallel distribution across different network partitions is achieved by generating packet replicas. This replica-based parallel distribution mechanism reduces cache contention and optimizes the synchronization of multicast packet transmission. This partitioned architecture can be effectively extended to large-scale NoC applications, achieving low-latency, high-efficiency multicast routing while also utilizing the adjacency of its second node to accommodate unicast traffic.

[0115] See Figure 12 As shown, Figure 12This is a schematic diagram of routing rules for a first path provided in an embodiment of the present invention; as an optional embodiment, transmitting the message to be transmitted from the source node to the target node based on the first preset path includes:

[0116] The message to be transmitted is copied to obtain a second copy and a third copy of the message to be transmitted;

[0117] The second message copy is transmitted from the source node to the first target node according to the first access order specified by the first preset path; wherein the first target node is the target node located after the source node in the first access order;

[0118] The third message copy is transmitted from the source node to the second target node in the second access order; wherein the first access order and the second access order are completely reversed; the second target node is the target node that is located before the source node in the first access order.

[0119] Understandably, to further avoid conflicts between multicast and unicast messages, and to ensure that messages can be transmitted to any node within the same network partition, the transmission path within any network partition is divided into a first access order and a second access order, centered on the source node, utilizing the unidirectional nature of the first preset path. The first preset path itself starts from one node in the network partition and sequentially passes through each node in the network partition to reach another node, achieving unidirectional, non-repeating 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. Thus, in actual message transmission, messages can be transmitted simultaneously along both paths, starting directly from the source node. Therefore, when transmitting a message, the source node directly copies the message to be transmitted, creating two copies (a second copy and a third copy). Starting from the source node, the second copy is sent sequentially according to the first access order to achieve message transmission in one direction, until all first target nodes in that direction have received their messages. Simultaneously, starting from the source node, the third copy is sent sequentially in the reverse direction according to the second access order to achieve message transmission in the other direction, until all second target nodes in that direction have received their messages. The second or third copy can directly utilize the original implementation of the message to be transmitted, as long as both messages are transmitted in reverse. This application does not impose any special limitations on the specific implementation of the first preset path and its corresponding first and second access orders.

[0120] by Figure 2 Taking the two-dimensional mesh network shown as an example, the Hamiltonian path is used as the first preset path, such as... Figure 12As shown by the solid line representing the first access order, 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 in sequence, then from the node in the fourth column of the first row to the node in the fourth column of the second row, then from the fourth column onwards, passes through the nodes in each column of the second row in sequence, and finally reaches the node in the first column of the third row. This process is repeated to achieve the following... Figure 12 The diagram shows a high-pass path HH generated according to a first access order and a low-pass path LL generated according to a second access order. If the order of nodes traversed by the high-pass path HH is defined as ascending order of node identifiers, starting from 0, the partition identifiers are set sequentially for each node in the network partition. The high-pass path HH sequentially passes through node 0, node 1, node 2, and so on up to node 15. The low-pass path LL sequentially passes through node 15, node 14, node 13, and so on up to node 0, according to descending order of node identifiers. Therefore, for the first target node whose target node label is greater than the source node label, multicast packets will be transmitted along the high-pass path HH; otherwise, they will be transmitted along the low-pass path LL.

[0121] based on Figure 12 The high-pass path HH and low-pass path LL shown in the diagram illustrate in detail the process of multicast messages being transmitted along the Hamiltonian path within the same network partition. See also... Figure 13 As shown, Figure 13 This is a schematic diagram illustrating the first method of routing based on a first path provided by an embodiment of the present invention; if the source node S is exactly the first node of a certain network partition, then... Figure 2 Taking the first node M2 ​​of the second network partition as an example, this first node (identified as node 5) directly replicates two copies of the message. These two copies travel in opposite directions within the network partition along the high-pass path HH and the low-pass path LL, respectively. One copy can pass through nodes 6, 7, and up to node 15, while the other copy can pass through nodes 4, 3, and up to node 0. If the message requires cross-partition multicasting, this first node also needs to replicate a third copy (i.e., the first message copy), which is then transmitted sequentially to the three first nodes (M3, M4, and M1) in other network partitions via the first node's high-speed link. After transmission to other network partitions, the first node in those other network partitions replicates two copies again, traveling in opposite directions along the high-pass path HH and the low-pass path LL of its respective network partition.

[0122] See Figure 14 As shown, Figure 14This is a schematic diagram illustrating a second method of routing based on a first path, provided by an embodiment of the present invention. If the source node S is not the first node, the high-pass path HH and low-pass path LL will be split starting from the source node. Similarly, the two packet copies will be transmitted backward along either the high-pass path HH or the low-pass path LL. This is because the first node must be on either the high-pass path HH or the low-pass path LL (e.g., Figure 14 The first node is on the low-pass path LL. 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 will continue to determine whether to transmit across areas. The specific operation of cross-area transmission is similar to that of the previous embodiment, and will not be described again in this application.

[0123] Specifically, by determining the unidirectional order of the first preset path itself, two transmission paths within a network partition are established, implemented in reverse order of first and second access. The two access orders are completely opposite, starting from the same source node. One transmission path is strictly restricted to ascending order of node identifiers, and the other is strictly restricted to descending order of node identifiers, preventing loops and directly avoiding deadlocks at the algorithmic level. This ensures the security and reliability of packet transmission within the network partition, reduces the risk of network congestion, and improves routing efficiency.

[0124] As an optional embodiment, it also includes:

[0125] For any network partition, node identifiers are set sequentially for all nodes of the network partition according to the first access order specified by the first preset path.

[0126] Set the partition identifier for each network partition in the preset clock sequence;

[0127] The node address of the target node in the message to be transmitted is generated based on the partition identifier and node identifier.

[0128] It's easy to understand that, to facilitate message transmission, in this partitioned network topology, both the partition identifier of the network partition and the node identifier of each node within the network partition can be set simultaneously to achieve address configuration between nodes in the entire target network. Furthermore, to further match the message transmission process and facilitate each node in determining subsequent routing strategies, the node identifiers can be set sequentially for each node in the same network partition according to the first access order of the first preset path, i.e., as... Figure 12 The nodes shown are 0 through 15. And the partition identifiers for each network partition are set sequentially according to the preset clock sequence transmitted between the first nodes, such as... Figure 2As shown, when the first node in one of the four network partitions transmits messages in a clockwise order, the four network partitions are defined as the first network partition, the second network partition, the third network partition, and the fourth network partition, respectively. The corresponding partition identifiers are partition 1, partition 2, partition 3, and partition 4, and the corresponding first nodes are defined as node M1, node M2, node M3, and node M4. This application does not impose any special restrictions on the specific types and implementation methods of the node identifiers and partition identifiers; they can be implemented using methods such as numbering or ID (Identifier). The specific form of the final generated node address is also not specifically limited here; it only needs to include the corresponding partition identifier and the corresponding node identifier.

[0129] As a specific implementation, taking a two-dimensional mesh network as an example, assume that the network size of a network partition is m×n, where m is the number of rows in the network partition and n is the number of columns. Then, the total number of nodes in a network partition is N=m×n. In the routing strategy based on Hamiltonian paths, nodes in a network partition are assigned node identifiers from 0 to N-1 sequentially. Specifically, when the row number of a node is even, the node identifier is calculated as y×n+x, where x represents the column number of the node and y represents the row number of the node; when the row number of a node is odd, the node identifier is calculated as (y+1)×nx-1. Therefore, for a 4×4 partitioned network, the Hamiltonian label is as follows: Figure 12 As shown.

[0130] It should be further noted that broadcast transmission can also be implemented based on the Hamiltonian path. The Hamiltonian path allows traversal of all nodes within the entire network partition. For example... Figure 2 In terms of the network topology of the four network partitions shown, a maximum of 9 copies can be transmitted simultaneously (2 copies of the message are transmitted simultaneously in each network partition, and 1 copy of the message is transmitted on the high-speed link at the same time).

[0131] Specifically, both the partition identifier and the node identifier in the network partition are set to achieve a unique identifier for each node in the target network, enabling accurate location of the target node. At the same time, it includes information about the network partition to which the node belongs, allowing the first node to directly determine whether cross-zone transmission is required based on the partition identifier in the node address, which is beneficial for accurate routing.

[0132] As an optional embodiment, 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:

[0133] For any target node, if the target node receives the message to be transmitted, it deletes the node address corresponding to the target node in the message to be transmitted.

[0134] After transmitting a copy of the first message to other first nodes via the second port of the first node, the process also includes:

[0135] For any first node, if the first node receives a copy of the first message through the second port, the first node deletes the partition identifier corresponding to the first node in the message to be transmitted.

[0136] Understandably, when using partition identifiers and node identifiers to generate the node addresses of each node, the target node address marked in the header Flit of the message to be transmitted is also implemented in this way, taking the node address format as (partition identifier, (node ​​identifier)) as an example. The message to be transmitted will contain the node addresses of all target nodes. When the message to be transmitted is transmitted to a target node, the target node can delete the corresponding node address in the message to indicate that the message has been transmitted to this target node. Subsequent nodes only need to determine the next target node based on the remaining node addresses in the message to be transmitted and then transmit it. At the same time, after the first copy of the message is sent to the first node, the first node will delete the corresponding partition identifier to indicate that the message has been sent to this network partition. Subsequent first nodes only need to determine the subsequent routing strategy of the first copy of the message on the high-speed link based on the remaining partition identifiers in the first copy of the message, and determine whether there are other network partitions to obtain messages.

[0137] As a specific embodiment, with Figure 2Taking the two-dimensional network topology shown as an example, the partition identifiers are 1~4, and the node identifiers are 0~15. For example, the target node address in the message to be transmitted is {(1, (0,3,9,10,14)), (2, (0,4,8,15))}. When the message header is passed to the source node, the source node first determines whether there is a target node in its own region (the network partition where the source node is located). If so, it performs multicast based on the node identifier corresponding to the partition identifier of its own region, using a hybrid strategy of Hamiltonian path and column path. When the target node in its own region receives the message, after the message is transmitted to this target node, the target node will copy the message and download it to its own PE, and then clear the node identifier of the target node that has been reached in the message header Flit. Secondly, the source node will also determine whether there is a target node outside its own region (a network partition other than the network partition where the source node is located). If so, it also needs to send 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 which network partition the multicast packet should be sent to via the second port, and sends the packet to the first node of the corresponding network partition through the second port. Upon receiving the packet, the first node of the corresponding network partition first deletes its own network partition's partition identifier from the header Flit. Then, based on the node identifier corresponding to that partition identifier, it performs packet transmission within the network partition. If it is itself a target node, it directly copies and downloads the packet locally, deletes its own corresponding node identifier, and performs packet transmission within the network partition based on the remaining node identifier. If the packet to be transmitted uses wormhole switching, its body Flit and tail Flit directly follow the path of the header Flit, without further routing algorithm calculations.

[0138] Specifically, by deleting the identifier, subsequent nodes can directly determine the next target node based on the remaining identifier, simplifying routing operations and improving the accuracy and reliability of packet routing.

[0139] As an optional embodiment, transmitting the message to be transmitted from the source node to the target node based on a first preset path includes:

[0140] For any current node, determine the next hop node of the message to be transmitted according to the first preset path;

[0141] Forward the message to be transmitted from the current node to the next hop node;

[0142] Determine if the next hop node is the target node;

[0143] If so, copy the message to be transmitted and download the copied copy to the target node;

[0144] The next hop node is determined as the new current node, and the process jumps back to the next hop node of the message to be transmitted determined according to the first preset path.

[0145] If not, proceed directly to the step of determining the next hop node as the new current node.

[0146] It is easy to understand that the transmission of messages in this application needs to be based on adjacent nodes. When transmitting within the same network partition, starting from the source node, the next-hop node of the message to be transmitted is determined sequentially according to the first preset path, and the message is sent to the next-hop node, and then this process is repeated; the source node serves as the initial current node of the message to be transmitted. At the same time, each time the message is transmitted to a target node, the target node generates a copy and downloads it to its local machine, and then continues to transmit the original message, or downloads the original message to its local machine and generates a copy to continue to transmit. If there are no other target nodes after the target node, the original message can be directly downloaded to its local machine without copying.

[0147] Specifically, the system sequentially visits each node in the same network partition according to the first preset path, and determines whether the node is the target node based on the node address indicated in the message to be transmitted when it arrives at each node, thereby completing the transmission of messages in the same network partition. This method is simple, effective, and easy to implement.

[0148] See Figure 15 As shown, Figure 15 This is a schematic diagram illustrating routing based on a first path and a second path, provided as an embodiment of the present invention. As an optional embodiment, before forwarding the message to be transmitted from the current node to the next-hop node, the method further includes:

[0149] Determine if there is a node blockage in the next hop node;

[0150] If there is node blockage at the next hop node, then determine whether the current node supports a transition node as the next hop node; where the transition node is the node determined by the current node based on the second preset path;

[0151] If a transition node is supported as a next-hop node, then 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.

[0152] It is easy to understand that, in order to cope with network congestion, within any network partition, in addition to packet transmission based on the first preset path, a second preset path can be further added for packet transmission. Even when using the first preset path alone for packet transmission, network congestion may still occur due to excessive network size or routing methods such as flooding, leading to some delay. In this case, this embodiment further introduces a second preset path to plan routing under network congestion conditions. Specifically, after determining the next-hop node of the packet, it can first determine whether there is node congestion at the next-hop node. If not, packet transmission continues according to the next-hop node determined by the first preset path; if so, it is determined whether the current node supports reusing the transition node obtained by planning the second preset path as the next-hop node. If it supports it, the transition node can be used to skip the originally congested next-hop node, while shortening the routing path; if not, it is necessary to continuously check the congestion status of the next-hop node and wait for the next-hop node to become uncongested before continuing to send packets. This application does not impose any special limitations on the specific type and implementation method of the second preset path. When selecting it, the routing direction should be roughly consistent with that of the next hop node, that is, the second preset path and transition nodes should be set according to the principle of being close to the next target node. A 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. This can optimize the routing path while avoiding congestion.

[0153] It should be noted that the main criterion for supporting a transition node is whether, if a transition node is used as the next-hop node, it can continue to reach the next target node normally based on the first preset path and / or the second preset path. For example, if the transition node determined according to the current node and the second preset path skips the next target node, it means that after the message is sent from the current node to the transition node, it cannot be transmitted to the next target node. In this case, it should be determined that the transition node is not supported as a next-hop node. If, after the message is sent from the current node to the transition node, it can still continue to reach the next target node normally based on the first preset path, then the transition node can be determined to be supported as a next-hop node.

[0154] Specifically, by introducing a second preset path, the routing path under network congestion conditions is further optimized so that packets can selectively avoid network congestion, improve routing efficiency, and avoid abnormal security risks caused by prolonged network congestion.

[0155] 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 determining the next-hop node as the new current node, the method further includes:

[0156] Determine whether the next target node of the message to be transmitted is on the same second preset path as the current node;

[0157] If so, the next target node is determined as the new next-hop node, and the process jumps directly to the step of forwarding the message to be transmitted from the current node to the next-hop node;

[0158] If not, then jump back to the step of determining the next-hop node of the message to be transmitted according to the first preset path.

[0159] Understandably, after designating a transition node as the next-hop node, the packet is sent from the current node to the transition node, and the transition node is designated as the new current node. At this point, it is further determined whether the current node (i.e., the transition node) is the target node. If so, the packet to be transmitted needs to be copied and downloaded to the local machine of the current node. Then, it can be determined whether the next target node of the packet to be transmitted is located on the same second preset path as the current node (i.e., the transition node). That is, through the second preset path, routing can be directly routed from the current node to the next target node. If so, the second preset path can be used to shorten the routing path; otherwise, routing needs to continue according to the first preset path. The current node can determine the positional relationship between the next target node and the current node through methods such as the node identifier in the packet to be transmitted; this application does not impose any special limitations on this.

[0160] Specifically, by further determining whether there is a special case where two consecutive target nodes are on the same second preset path, the second preset path can be used to shorten the routing path more efficiently, thereby further improving routing efficiency.

[0161] As an optional implementation, determining whether the next-hop node is blocked includes:

[0162] Initiate a preset request to the next hop node; the preset request is used to query the remaining size of the input cache space of the next hop node;

[0163] Receive the response returned by 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;

[0164] If so, then determine that there is no node blocking the next hop node;

[0165] If not, then it is determined that the next hop node is blocked.

[0166] It is easy to understand that the current node can obtain the real-time status of the remaining input buffer space of the next-hop node by sending a pre-set request, thereby determining whether the next-hop node is blocked. If the remaining input buffer space of the next-hop node is relatively small, it indicates that the next-hop node is blocked. This application does not impose any special restrictions on the specific types and implementation methods of the pre-set requests and corresponding responses. The specific values ​​of the pre-set requests can be set and adjusted according to the actual situation of the node, and this application does not impose any special restrictions on them.

[0167] Furthermore, besides network congestion, link failures can also affect routing between the current node and the next-hop node. Therefore, after sending a preset request, the current node can determine if there is a link failure between the current node and the next-hop node by checking whether the time to receive the response exceeds a preset duration, or whether the current node fails to receive a response within the preset duration. This can be done in a similar way to node congestion, determining whether a transitional node can be identified as the new next-hop node. If a transitional node is not supported as the next-hop node, an alarm is triggered to inform the user that this route is not currently supported, allowing the user to troubleshoot the link failure promptly. On the other hand, a program can be set up to periodically test the network connectivity of the entire target network. At preset time intervals, network connectivity tests are performed on the links between various nodes in the target network (including links between the first node, links between the second node, and links between the first and second nodes). If the network connectivity test indicates that all links are connected normally, packet routing can continue; if a link failure exists, the link failure should be troubleshooted before routing resumes.

[0168] Specifically, the remaining size of the input buffer space of the next-hop node can be obtained by sending a preset request, thereby determining the blocking status of the next-hop node and achieving effective judgment of network congestion. This method is simple, effective, and easy to implement.

[0169] As an optional embodiment, 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.

[0170] Understandably, in the application scenario of two-dimensional network topology, the first preset path can be adopted as follows: Figure 12The Hamiltonian path shown is based on row paths. The second preset path can be implemented using column paths between nodes in the same column, thus fully utilizing column paths to achieve the shortest alternative path based on the Hamiltonian path. Considering that the second preset path needs to be designed with proximity to the target node as the principle, for the high-pass path HH in the first preset path (i.e., if the access order from the current node to the next hop node is the first access order), the second preset path needs to be implemented using a northward (upward in the diagram) column path; for the low-pass path LL in the first preset path (i.e., if the access order from the current node to the next hop node is the second access order), the second preset path needs to be implemented using a southward (downward in the diagram) column path.

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

[0172] As a specific embodiment, such as Figure 15 As shown, the source node is node 6, and the target nodes are nodes 9 and 14. Source node 6 sends multicast messages to target nodes 9 and 14. Normally, the Hamiltonian path is used, passing through nodes 7 and 8 sequentially, and then transmitting to target node 9 after 3 hops; then, the Hamiltonian path is used again, passing through nodes 10, 11, 12, and 13 sequentially, and then transmitting to target node 14 after 5 hops. If node 6 detects that node 7 is currently blocked when sending a message from node 6 to node 7, it determines node 9 as the transition node based on the column path. At this time, the next target node is node 9, and node 9 is supported as the transition node. The message can be directly transmitted from node 6 to node 9 through column path P1. Node 9 then replicates the message to complete the transmission of the first target node. At the same time, it is further determined that the next target node 14 is in the same column as the current node (node ​​9). Therefore, the message is directly transmitted from node 9 to node 14 through column path P2. Node 14 then replicates the message to complete the transmission of the second target node.

[0173] It should be noted that if the first target node is changed to node 8, then node 9, the transition node determined based on the column path, will not be supported as a 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. Thus, the transition node is not supported as a next-hop node in this case. Similarly, 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. In this case, 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.

[0174] Specifically, this application shortens routing paths by combining Hamiltonian paths with column path detours. Furthermore, when determining column paths, proximity to the target node is prioritized to achieve deadlock-free dynamic routing and enhance robustness. This application implements a multi-level partition architecture by dividing the target network into multiple network partitions and interconnecting these partitions through a first node. The first node adds a dedicated high-speed port to prioritize multicast traffic, achieving hardware optimization. Within each network partition, high-pass (HH) / low-pass (LL) paths are defined based on Hamiltonian paths, restricting the direction of multicast paths to achieve bidirectional parallel transmission. Multicast packets can be distributed to multiple replicas based on the source node location. It also supports high-speed cross-region transmission and intra-partition shortest path replacement based on column paths, achieving a flexible and adaptive routing algorithm. The multiple path settings maintain deadlock-free routing, effectively reducing the risk of network congestion.

[0175] See Figure 16 As shown, Figure 16 This is a schematic diagram of an electronic device provided in an embodiment of the present invention. To solve the above-mentioned technical problems, an embodiment of the present invention also provides an electronic device, comprising:

[0176] Memory 60 is used to store computer programs;

[0177] Processor 61 is used to execute computer programs to implement the steps of the routing method based on the partitioned network architecture as described above.

[0178] The electronic devices provided in this embodiment may include, but are not limited to, smartphones, tablets, laptops, or desktop computers.

[0179] The processor 61 may include one or more processing cores, such as a quad-core processor or an octa-core processor. The processor 61 may be implemented using at least one hardware form selected from Digital Signal Processing (DSP), Field-Programmable Gate Array (FPGA), and Programmable Logic Array (PLA). The processor 61 may also include a main processor and a coprocessor. The main processor, also known as the Central Processing Unit (CPU), is used to process data in the wake-up state; the coprocessor is a low-power processor used to process data in the standby state. In some embodiments, the processor 61 may integrate a Graphics Processing Unit (GPU), which is responsible for rendering and drawing the content to be displayed on the screen. In some embodiments, the processor 61 may also include an Artificial Intelligence (AI) processor, which handles computational operations related to machine learning.

[0180] The memory 60 may include one or more computer-readable storage media, which may be non-transitory. The memory 60 may also include high-speed random access memory and non-volatile memory, such as one or more disk storage devices or flash memory devices. In this embodiment, the memory 60 is used to store at least the following computer program 601, which, after being loaded and executed by the processor 61, is capable of implementing the relevant steps of the routing method based on the partitioned network architecture disclosed in any of the foregoing embodiments. In addition, the resources stored in the memory 60 may also include an operating system 602 and data 603, etc., and the storage method may be temporary storage or permanent storage. The operating system 602 may include Windows, Unix, Linux, etc. The data 603 may include, but is not limited to, data in the routing method based on the partitioned network architecture.

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

[0182] Those skilled in the art will understand that Figure 16 The structures shown do not constitute a limitation on electronic devices and may include more or fewer components than those shown.

[0183] For a description of the features in the electronic device provided in the embodiments of the present invention, please refer to the relevant descriptions of the partitioned network architecture and the routing method based on the partitioned network architecture, which will not be repeated here.

[0184] It is understood that if the routing method based on the partitioned network architecture in the above embodiments is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present invention, in essence, or the part that contributes to the current technology, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and executes all or part of the steps of the methods in the various embodiments of the present invention. The aforementioned storage medium includes: USB flash drive, mobile hard drive, read-only memory (ROM), random access memory (RAM), electrically erasable programmable ROM, register, hard disk, removable disk, CD-ROM, magnetic disk or optical disk, and other media capable of storing program code.

[0185] To address the aforementioned technical problems, embodiments of the present invention also provide a computer-readable storage medium storing a computer program, which, when executed by a processor, implements the steps of the routing method based on a partitioned network architecture as described above.

[0186] For a description of the features in the computer-readable storage medium provided in the embodiments of the present invention, please refer to the relevant descriptions of the partitioned network architecture and the routing method based on the partitioned network architecture, which will not be repeated here.

[0187] To address the aforementioned technical problems, embodiments of the present invention also provide a computer program product, including a computer program / instructions, which, when executed by a processor, implement the steps of the aforementioned routing method based on a partitioned network architecture.

[0188] For a description of the features in the computer program product provided in the embodiments of the present invention, please refer to the relevant descriptions of the partitioned network architecture and the routing method based on the partitioned network architecture, which will not be repeated here.

[0189] To address the aforementioned technical problems, embodiments of the present invention also provide a routing device based on a partitioned network architecture, applicable to the partitioned network architecture described above; the routing device includes:

[0190] A unicast transmission unit is used to transmit a unicast message from a source node to a target node using a preset minimum path routing algorithm if the message to be transmitted is a unicast message.

[0191] The partition judgment unit is used to determine whether the target 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 the message to be transmitted is a multicast message; if yes, the intra-partition transmission unit is triggered; if no, the second intra-partition transmission unit is triggered.

[0192] The first zone transmission unit is used to transmit 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.

[0193] The second zone transmission unit is used to transmit the message to be transmitted from the source node to the first node and the target node of the same network partition based on the first preset path.

[0194] The copying unit is used to copy the message to be transmitted through the first node to obtain a first message copy;

[0195] The cross-regional transmission unit is used to transmit a copy of the first message to other first nodes based on the second port of the first node, so as to transmit the message to be transmitted to the target node of other network partitions through the other first nodes.

[0196] For a description of the features in the routing device based on the partitioned network architecture provided in the embodiments of the present invention, please refer to the relevant descriptions of the partitioned network architecture and the routing method based on the partitioned network architecture, which will not be repeated here.

[0197] The foregoing has provided a detailed description of a partitioned network architecture, routing method, device, medium, and program product provided by embodiments of the present invention. The various embodiments in the specification are described in a progressive manner, with each embodiment focusing on its differences from other embodiments. Similar or identical parts between embodiments can be referred to interchangeably. For the apparatus disclosed in the embodiments, since it corresponds to the method disclosed in the embodiments, the description is relatively simple; relevant parts can be referred to the method section.

[0198] Those skilled in the art will further recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of both. To clearly illustrate the interchangeability of hardware and software, the components and steps of the various examples have been generally described in terms of functionality in the foregoing description. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementations should not be considered beyond the scope of this invention.

[0199] The foregoing has provided a detailed description of the partitioned network architecture, routing method, device, medium, and program product provided by this invention. Specific examples have been used to illustrate the principles and implementation methods of this invention. The descriptions of the above embodiments are only intended to help understand the method and core ideas of this invention. It should be noted that those skilled in the art can make various improvements and modifications to this invention without departing from its principles, and these improvements and modifications also fall within the protection scope of this invention.

Claims

1. A partitioned network architecture, characterized in that, Applied to NoC; including: 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 a plurality of partitions obtained by dividing a target network, and the first node and the second node are nodes of the target network; For any of the first nodes, the first node includes 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 includes a third port, the third port being configured to enable message transmission between the second node and a first node in the same network partition, as well as message transmission between the second node and other second nodes.

2. The partitioned network architecture according to claim 1, characterized in that, If there is a node at the exact center of the network partition, then 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, then the first node is the node on the first side of the exact center of the network partition; wherein, the first side is the side closer to the center of the target network.

3. The partitioned network architecture according to claim 1, characterized in that, The first node is configured such that packets transmitted through the second port are only allowed to be transmitted to other first nodes in a preset clock order; wherein the preset clock order is a pre-set order based on the spatial locations of the first nodes corresponding to the network partitions.

4. A routing method based on a partitioned network architecture, characterized in that, Applied to the partitioned network architecture as described in any one of claims 1 to 3; The routing method includes: If the message to be transmitted is a unicast message, the unicast message is transmitted from the source node to the target node using a preset minimum path routing algorithm. If the message to be transmitted is a multicast message, determine whether the target 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 so, the message to be transmitted is transmitted from the source node to the target node based on the 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, the message to be transmitted will be transmitted from the source node to the first node and the target node of the same network partition based on the first preset path. The message to be transmitted is copied by the first node to obtain a copy of the first message; Based on the second port of the first node, a copy of the first message is transmitted to other first nodes, so that the message to be transmitted can be transmitted to the target node of other network partitions through the other first nodes.

5. The routing method based on a partitioned network architecture according to claim 4, characterized in that, Transmitting the message to be transmitted from the source node to the target node based on the first preset path includes: The message to be transmitted is copied to obtain a second copy and a third copy of the message to be transmitted; The second message copy is transmitted from the source node to the first target node according to the first access order specified by the first preset path; wherein the first target node is the 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 according to the second access order; wherein the first access order and the second access order are completely reversed; and the second target node is the target node that is located before the source node in the first access order.

6. The routing method based on a partitioned network architecture according to claim 4, characterized in that, Also includes: For any network partition, node identifiers are sequentially set for all nodes of the network partition according to the first access order specified by the first preset path. Each network partition is assigned a partition identifier sequentially according to a preset clock order; The node address of the 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 a 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 process 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 by the target node. After transmitting a copy of the first message to other first nodes via the second port of the first node, the process further includes: For any first node, if the first node receives a copy of the first message through the second port, the first node deletes the partition identifier corresponding to the first node in the message to be transmitted.

8. The routing method based on a partitioned network architecture according to any one of claims 4 to 7, characterized in that, 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, then copy the message to be transmitted and download the copied copy to the target node; The next-hop node is determined as the new current node, and 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. If not, proceed directly to the step of determining the next hop node as the new current node.

9. The routing method based on a 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, then determine 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 a second preset path; If a transition node is supported as a next-hop node, then 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.

10. The routing method based on a partitioned network architecture according to claim 9, characterized in that, If transition nodes are supported as next-hop nodes, and the next-hop node is the target node, after determining the next-hop node as the new current node, the method further includes: Determine whether the next target node of the message to be transmitted is in the same second preset path as the current node; If so, the next target node is determined as the new next-hop node, and the process jumps directly to the step of forwarding the message to be transmitted from the current node to the next-hop node; If not, then jump 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 a partitioned network architecture according to claim 9, characterized in that, Determining whether the next-hop node is blocked includes: A preset request is sent 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 the response returned by 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, then it is determined that the next-hop node is not blocked; If not, then it is determined that the next-hop node is blocked.

12. The routing method based on a 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, used to store computer programs; A processor for executing the computer program to implement the steps of the routing method based on a 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 that, when executed by a processor, implements the steps of the routing method based on a partitioned network architecture as described in any one of claims 4 to 12.

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

Citation Information

Patent Citations

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

    CN105450555A

  • Fair arbitration complementary steering routing method based on three-dimensional network-on-chip

    CN119961208A