Multicast communication method, device, electronic device and storage medium

By classifying the molecular network and generating target node lists in the network, the problem of uneven transmission path length in multi -broadcast communication is solved, and more efficient multi -broadcast communication performance is achieved.

CN118972189BActive Publication Date: 2025-01-24SHANDONG YUNHAI GUOCHUANG CLOUD COMPUTING EQUIP IND INNOVATION CENT CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411368577.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-09-29
Publication Date
2025-01-24
Estimated Expiration
2044-09-29

AI Technical Summary

Technical Problem

When multicast communication in an on-chip network, the transmission path length is uneven, affecting communication performance.

Method used

By determining the number according to the node coordinates, the network on the branches is multiple sub -networks, generate a list of target nodes, and transmit it from the source node replication message.

Benefits of technology

The network network is evenly divided into multiple sub -networks, shortening the length of the longest path during multi -broadcast communication, reducing network delay and improving multi -broadcast communication performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118972189B_ABST
    Figure CN118972189B_ABST
Patent Text Reader

Abstract

The present application is about a multicast communication method, device, electronic device and storage medium, which relates to the field of chip technology and aims to achieve high-performance on-chip network communication. The method includes: according to the coordinates of each node in the on-chip network, determine the number of each node; the node includes a source node and a target node; according to the source node, divide the on-chip network to obtain at least one first sub-network; according to the central node of each of the first sub-networks, divide the first sub-network until the division stop condition is met to obtain multiple sub-networks; according to the number of the target node contained in each sub-network, generate a target node list corresponding to each sub-network; copy the source message from the source node; each source message carries a target node list; according to the target node list carried by each source message, transmit the source message to each target node.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of chip technology, and in particular to a multicast communication method, device, electronic device and storage medium. Background Art

[0002] Network on Chip (NoC) is an efficient solution for designing the interconnection structure of multi-core systems. The network on chip can enable reliable communication between nodes on the chip. The communication modes of the network on chip include unicast communication and multicast communication, among which multicast communication sends messages from one source node to multiple target nodes. In multicast communication, the transmission path length of the message has a significant impact on the performance of multicast communication. In order to shorten the transmission path length of multicast communication, the network on chip can be divided into multiple non-overlapping subsets, each subset corresponding to an independent transmission path. However, the division of the network on chip area may be uneven, which in turn affects the performance of multicast communication. Summary of the invention

[0003] In order to overcome the problems existing in the related art, the present application provides a multicast communication method, device, electronic device and storage medium. The technical solution of the present application is as follows:

[0004] According to a first aspect of an embodiment of the present application, a multicast communication method is provided, which is applied to a network on chip, wherein the network on chip includes a plurality of nodes; the method includes:

[0005] Determine the number of each node according to the coordinates of each node in the on-chip network; the nodes include source nodes and target nodes;

[0006] Dividing the network on chip according to the source node to obtain at least one first sub-network;

[0007] Dividing the first subnetwork according to the central node of each of the first subnetworks until a division stop condition is met to obtain a plurality of subnetworks;

[0008] Generate a target node list corresponding to each of the sub-networks according to the numbers of the target nodes included in each of the sub-networks;

[0009] Copy source messages from the source node; each source message carries a list of target nodes;

[0010] According to the target node list carried by each source message, the source message is transmitted to each target node.

[0011] Optionally, when the network on chip is a two-dimensional grid network, the first sub-network is divided according to the central node of each of the first sub-networks until a division stop condition is met to obtain a plurality of sub-networks, including:

[0012] The first sub-network is divided according to the column where the central node of each of the first sub-networks is located until the division stop condition is met, thereby obtaining a plurality of the sub-networks.

[0013] Optionally, the first subnetwork is divided according to the central node of each of the first subnetworks until a division stop condition is met to obtain multiple subnetworks, including:

[0014] In a case where the first sub-network does not satisfy the division stop condition, determining the first sub-network as a sub-network to be divided;

[0015] Dividing the sub-network to be divided according to the column where the central node of the sub-network to be divided is located to obtain multiple second sub-networks;

[0016] When each of the second sub-networks meets the division stopping condition, stop division and determine the second sub-network as the sub-network;

[0017] In the case that any of the second sub-networks does not satisfy the division stop condition, the second sub-network that does not satisfy the division stop condition is determined as the sub-network to be divided, and the steps are executed: the sub-network to be divided is divided according to the column where the central node of the sub-network to be divided is located to obtain multiple second sub-networks.

[0018] Optionally, when the number of nodes in the first subnetwork is greater than the number of the source node, before dividing the first subnetwork according to the column where the central node of each of the first subnetworks is located until the division stop condition is met to obtain a plurality of the subnetworks, the method further includes:

[0019] The column where the central node of the first sub-network is located is determined according to the coordinates of the node at the lower left corner and the coordinates of the node at the lower right corner of the first sub-network.

[0020] Optionally, when the number of nodes in the first subnetwork is smaller than the number of the source node, before dividing the first subnetwork according to the column where the central node of each of the first subnetworks is located until the division stop condition is met to obtain a plurality of the subnetworks, the method further includes:

[0021] The column where the central node of the first sub-network is located is determined according to the coordinates of the node at the upper left corner and the coordinates of the node at the upper right corner of the first sub-network.

[0022] Optionally, the satisfying of the division stop condition means that the number of nodes included in each of the sub-networks is not greater than a division threshold.

[0023] Optionally, the dividing the network on chip according to the source node to obtain at least one first sub-network includes:

[0024] Determining adjacent nodes of the source node;

[0025] According to the size relationship between the numbers of the adjacent nodes and the number of the source node, determine whether there is an upstream subnetwork and a downstream subnetwork; wherein the number of the nodes included in the upstream subnetwork is greater than the number of the source node, and the number of the nodes included in the downstream subnetwork is less than the number of the source node;

[0026] In the case where there is only one adjacent node in the upstream subnetwork, or there are two adjacent nodes but the number of nodes included in the upstream subnetwork is not greater than the division threshold, determining the upstream subnetwork as the first subnetwork;

[0027] In a case where there are two adjacent nodes in the upstream subnetwork and the number of nodes included in the upstream subnetwork is greater than the division threshold, dividing the upstream subnetwork into two first subnetworks;

[0028] In a case where there is only one adjacent node in the downlink subnetwork, or there are two adjacent nodes but the number of nodes included in the downlink subnetwork is not greater than the division threshold, determining the downlink subnetwork as the first subnetwork;

[0029] In the case where there are two adjacent nodes in the downlink sub-network and the number of nodes included in the downlink sub-network is greater than the division threshold, the downlink sub-network is divided into two first sub-networks.

[0030] Optionally, dividing the uplink subnetwork into two first subnetworks includes:

[0031] The upstream subnetwork is divided into two first subnetworks according to respective horizontal coordinates of two adjacent nodes in the upstream subnetwork.

[0032] Optionally, dividing the downlink subnetwork into two first subnetworks includes:

[0033] The downlink subnetwork is divided into two first subnetworks according to respective horizontal coordinates of two adjacent nodes in the downlink subnetwork.

[0034] Optionally, generating a target node list corresponding to each of the sub-networks according to the numbers of the target nodes included in each of the sub-networks includes:

[0035] Get the target node set;

[0036] According to the magnitude relationship between the numbers of the nodes in the target node set and the numbers of the source nodes, the target node set is divided into an upstream node set and a downstream node set;

[0037] According to the horizontal coordinates of the nodes at the lower left corner and the lower right corner of each upstream target subnetwork, the upstream node set is divided to obtain the target node list corresponding to each upstream target subnetwork; the upstream target subnetwork is: the subnetwork containing the nodes whose numbers are greater than the number of the source nodes;

[0038] According to the horizontal coordinates of the nodes in the upper left corner and the upper right corner of each downstream target subnetwork, the downstream node set is divided to obtain the target node list corresponding to each downstream target subnetwork; the downstream target subnetwork is: the subnetwork containing nodes whose numbers are less than the number of the source nodes.

[0039] Optionally, the method further comprises:

[0040] Arrange the numbers of the nodes in the target node list corresponding to the uplink target subnetwork in ascending order, determine the node with the smallest number in the uplink target subnetwork as the uplink marker node, and add the number of the uplink marker node to the first position of the target node list corresponding to the uplink target subnetwork;

[0041] The numbers of the nodes in the target node list corresponding to the downlink target subnetwork are arranged in descending order, and the node with the largest number in the downlink target subnetwork is determined as the downlink marker node, and the number of the downlink marker node is added to the first position of the target node list corresponding to the downlink target subnetwork.

[0042] Optionally, the transmitting the source message to each of the target nodes according to the target node list carried by each of the source messages includes:

[0043] According to the target node list carried by each source message, determine the next node corresponding to the local node where the source message is located; wherein the next node is: the next node that the source message passes through when it is transmitted from the local node to the node corresponding to the first number in the target node list;

[0044] When the source message reaches a node corresponding to a number in the target node list, delete the number of the reached node from the target node list carried by the source message;

[0045] When the target node list carried by the source message is empty, the transmission of the source message is stopped.

[0046] Optionally, in a case where the numbers of the nodes in the target node list are arranged in ascending order, determining, according to the target node list carried by each source message, the next node corresponding to the local node where the source message is located includes:

[0047] In a case where the numbers of the nodes in the target node list are arranged in ascending order, determining the node corresponding to the first number in the target node list carried by the source message as the first destination node;

[0048] Determine a neighboring node of the local node as a first candidate node;

[0049] Determine, among the first candidate nodes, the first candidate nodes whose numbers are not greater than the number of the first destination node as second candidate nodes;

[0050] A second candidate node with the largest number among the second candidate nodes is determined as the next node corresponding to the local node where the source message is located.

[0051] Optionally, in a case where the numbers of the nodes in the target node list are arranged in descending order, determining, according to the target node list carried by each source message, the next node corresponding to the local node where the source message is located includes:

[0052] In a case where the numbers of the nodes in the target node list are arranged in descending order, determining the node corresponding to the first number in the target node list carried by the source message as the second destination node;

[0053] Determine a neighboring node of the local node as a third candidate node;

[0054] Determine, among the third candidate nodes, the third candidate node whose number is not less than the number of the second destination node as a fourth candidate node;

[0055] A fourth candidate node with the smallest number among the fourth candidate nodes is determined as the next node corresponding to the local node where the source message is located.

[0056] Optionally, the method further comprises:

[0057] When the source message reaches each of the target nodes, the source message is replicated at the target node, so that the target node absorbs the replicated source message.

[0058] Optionally, the method further comprises:

[0059] Each time the source message reaches a node that does not correspond to a number in the target node list, the target node list carried by the source message is kept unchanged.

[0060] Optionally, the transmitting the source message to each of the target nodes according to the target node list carried by each of the source messages includes:

[0061] According to the target node list carried by each source message, determine a first transmission subpath from the source node to a node corresponding to a first number in the target node list, and determine a second transmission subpath from a node corresponding to each number in the target node list to a node corresponding to a next number;

[0062] The first transmission sub-path and the second transmission sub-path are sequentially spliced ​​to obtain a transmission path of the source message;

[0063] The transmission path is added to the header of the source message, so that the source message is transmitted to each of the target nodes according to the transmission path.

[0064] Optionally, the method further comprises:

[0065] When the source message is transmitted according to the transmission path and reaches each of the target nodes, the source message is replicated at the target node so that the target node absorbs the replicated source message.

[0066] Optionally, the transmitting the source message to each of the target nodes according to the target node list carried by each of the source messages includes:

[0067] According to the target node list carried by each source message, the source message is transmitted to each target node in parallel.

[0068] Optionally, the copying the source message from the source node includes:

[0069] Determining the number of copies of the source message according to the number of the target node list;

[0070] The source message is copied from the source node according to the copy quantity.

[0071] According to a second aspect of an embodiment of the present application, a multicast communication device is provided, which is applied to a network on chip, wherein the network on chip includes a plurality of nodes; the device includes:

[0072] A number determination module, used to determine the number of each node in the on-chip network according to the coordinates of each node; the nodes include source nodes and target nodes;

[0073] A first partitioning module, configured to partition the network on chip according to the source node to obtain at least one first sub-network;

[0074] A second division module, configured to divide the first sub-network according to the central node of each of the first sub-networks until a division stop condition is met to obtain a plurality of sub-networks;

[0075] A list generating module, used for generating a target node list corresponding to each of the sub-networks according to the numbers of the target nodes contained in each of the sub-networks;

[0076] A message copying module, used to copy source messages from the source node; each source message carries a list of target nodes;

[0077] The message transmission module is used to transmit the source message to each of the target nodes according to the target node list carried by each of the source messages.

[0078] According to a third aspect of an embodiment of the present application, an electronic device is provided, comprising: a processor; and a memory for storing instructions executable by the processor; wherein the processor is configured to execute the instructions to implement the multicast communication method as described in the first aspect.

[0079] According to a fourth aspect of an embodiment of the present application, a non-volatile readable storage medium is provided. When instructions in the non-volatile readable storage medium are executed by a processor of an electronic device, the electronic device is enabled to execute the multicast communication method as described in the first aspect.

[0080] In an embodiment of the present application, the on-chip network can be divided according to the source node to obtain at least one first sub-network, and the first sub-network can be divided according to the central node of each first sub-network until the division stop condition is met to obtain multiple sub-networks. In this way, the on-chip network can be evenly divided into multiple sub-networks, thereby shortening the length of the longest path during multicast communication and reducing network latency. Furthermore, the source message is copied from the source node and transmitted to each target node, thereby improving the performance of multicast communication.

[0081] It should be understood that the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the present application. BRIEF DESCRIPTION OF THE DRAWINGS

[0082] Figure 1 is a schematic diagram of a chip shown in an embodiment of the present application;

[0083] Figure 2 It is the 5×4 two-dimensional grid network and the uplink channel subnetwork and the downlink channel subnetwork shown in the embodiment of the present application;

[0084] Figure 3 It is a schematic diagram of the steps of a multicast communication method shown in an embodiment of the present application;

[0085] Figure 4 is a schematic diagram of a process of dividing a first sub-network according to an embodiment of the present application;

[0086] Figure 5 It is a schematic diagram of a multicast communication method in a 7×6 two-dimensional grid network shown in an embodiment of the present application;

[0087] Figure 6 It is a schematic diagram of a multicast communication method in a 7×6 two-dimensional grid network shown in an embodiment of the present application;

[0088] Figure 7 is a comparison diagram of two routing algorithms used in a 7×6 two-dimensional grid network shown in an embodiment of the present application;

[0089] Figure 8 is a schematic diagram of a multicast communication method shown in an embodiment of the present application;

[0090] Fig. 9 is a block diagram of a multicast communication device shown in an embodiment of the present application;

[0091] Fig.10 It is a schematic diagram of an electronic device shown in an embodiment of the present application. DETAILED DESCRIPTION

[0092] In order to enable ordinary persons in the art to better understand the technical solution of the present application, the technical solution in the embodiments of the present application will be clearly and completely described below in conjunction with the accompanying drawings.

[0093] First, some nouns or terms that appear in the process of describing the embodiments of the present application are subject to the following explanations.

[0094] Network on chip: Network on chip is a new communication method for system on chip (SoC). Network on chip connects multiple nodes on a chip together, allowing the nodes to communicate reliably.

[0095] Two-dimensional mesh network (2D-mesh): A two-dimensional mesh network is a topological structure composed of nodes included in the on-chip network. The nodes are arranged in a two-dimensional grid manner, and each node is connected to a network adapter and a functional module.

[0096] n-cube network: n-cube network is a topological structure composed of nodes included in the on-chip network. Each node is arranged in the form of an n-cube, and each node is connected to a network adapter and a functional module. n is a positive integer greater than 1.

[0097] Node: A node is an element that constitutes the on-chip network, also known as a tile. A node includes a processing element (PE) and a router. Connected nodes communicate by transmitting messages, and messages are transmitted from a router included in one node to a router included in another node.

[0098] Source node: The node that sends a message in the on-chip network is the source node.

[0099] Target node: The node that the message needs to reach in the on-chip network is the target node. The target node can be directly connected to the source node or indirectly connected to the source node through one or more intermediate nodes. When the target node is directly connected to the source node, the source node directly sends the message to the target source node. When the target node is connected to the source node through an intermediate node, the source node sends the message to the intermediate node, and one or more intermediate nodes forward the message to the target node.

[0100] Source message: The message sent by the source node is called the source message.

[0101] Hamiltonian path: A Hamiltonian path is a path in an undirected or directed graph that passes through each node once and only once.

[0102] Hardware-based multicast communication methods include path-based routing methods, in which the source node sends the source message to the target node through the target node list in the message header. After the source message arrives at the target node, it is absorbed by the current node and passed to the corresponding output channel to continue to be transmitted to other target nodes in the target node list. In this way, the source message is eventually delivered to all target nodes. However, the path for path-based routing to access all target nodes may be very long. In order to reduce the length of the transmission path of multicast communication, the target nodes can be divided into several non-overlapping subsets at the network interface of the source node, each subset corresponds to an independent multicast path, and routes a copy of the source message.

[0103] The target nodes can be divided by dividing the network area. In the case of uneven network area division, some target nodes will have longer transmission paths and some target nodes will have shorter transmission paths. In addition, in order to improve network performance, deadlocks need to be avoided.

[0104] The application environment of the embodiment of the present application can be Figure 1 The chip shown. Figure 1 1 is a schematic diagram of a chip 10 shown in an embodiment of the present application. The chip 10 may be any chip that meets the following structure and functions, for example, the chip 10 may be a central processing unit (CPU), an infrastructure processing unit (IPU), etc. Figure 1 As shown, the chip 10 includes a scheduling management unit 11 and a plurality of nodes 12. The plurality of nodes 12 constitute an on-chip network, and the topology of the on-chip network can be a two-dimensional mesh network. The node 12 includes a processing element 121 and a routing 122. The processing element 121 can be a processor, a dynamic random access memory, a private cache, a network interface and other hardware resources. The scheduling management unit 11 is used to schedule and manage each node 12 and control the flow of messages before each node 12. When messages are transmitted between nodes 12, if the source node and the target node are directly connected in the on-chip network, the source node sends the message to the route of the target node through its routing. If the source node and the target node are not directly connected in the on-chip network, the source node sends the message to the intermediate node through its routing, and the message is transmitted to the target node through the forwarding of one or more intermediate nodes. The multicast communication method of the embodiment of the present application can be divided into a two-dimensional mesh network by the scheduling management unit 11, and the transmission path is determined.

[0105] The embodiment of the present application proposes a multicast communication method suitable for an on-chip network, which can be a two-dimensional grid network or an n-dimensional cube network. The algorithm is based on the Hamiltonian path, and the multicast communication method proposed in the embodiment of the present application can reduce the length of the longest path during multicast communication. The multicast communication method proposed in the embodiment of the present application is a dual-path routing algorithm when the on-chip network is divided into two sub-networks; it is a multi-path routing algorithm when the on-chip network is divided into four sub-networks; when the on-chip network is divided into 2n sub-networks, it is a routing method similar to the column path without deadlock. In addition, the multicast communication method proposed in the embodiment of the present application can also divide the on-chip network into 4~2n sub-networks. Therefore, the multicast communication method proposed in the embodiment of the present application, that is, it has the advantages of dual-path routing algorithm, multi-path routing algorithm and column path routing algorithm, and it also has high flexibility and adaptability, and can set a suitable partition threshold according to different network performance requirements. The partition threshold is often set according to the requirements and experience of network performance. The multicast communication method proposed in the embodiment of the present application is deadlock-free, so the network does not need additional overhead to avoid deadlock, thereby reducing cost overhead, improving the utilization rate of buffer resources, and reducing the cost of deadlock resolution.

[0106] Figure 2 A 5×4 two-dimensional grid network and an uplink channel subnetwork and a downlink channel subnetwork are shown. In the two-dimensional grid network, each node and an adjacent node have a bidirectional link. In the embodiment of the present application, the channel from the node with a small number to the node with a large number is called an uplink channel, and the channel from the node with a large number to the node with a small number is called a downlink channel. Figure 2 The leftmost grid shows that a channel of a 5×4 two-dimensional grid network can be split into two unidirectional link channels. Figure 2 The grid in the middle shows the uplink channel, in which each node can only point to a node with a larger number. Figure 2 The rightmost grid shows the downlink channel, and each node in the downlink channel can only point to a node with a smaller number. In the embodiment of the present application, in order to make the transmission path as short as possible and to avoid deadlock, when the number of the destination node is greater than the number of the source node, it is necessary to ensure that the transmission is carried out in the uplink channel; when the number of the destination node is less than the number of the source node, it is necessary to ensure that the transmission is carried out in the downlink channel.

[0107] In the embodiment of the present application, the area where the node number is greater than the source node number is located is recorded as the upstream subnetwork. The channel between nodes in the upstream sub-network is recorded as the upstream channel. The message reaches the node of the upstream sub-network from the source node through the upstream channel; the area where the node whose node number is smaller than the source node number is located is recorded as the downstream sub-network The channel between nodes in the downstream sub-network is recorded as the downstream channel, and the message reaches the node in the area from the source node through the downstream channel.

[0108] Figure 3 is a schematic diagram of the steps of a multicast communication method shown in an embodiment of the present application. The multicast communication method can be applied to an on-chip network, such as Figure 3 As shown, the multicast communication method includes steps S11 to S16.

[0109] In step S11, the number of each node in the network on chip is determined according to the coordinates of each node.

[0110] The nodes of the on-chip network include source nodes and target nodes. The on-chip network can be a two-dimensional grid network or an n-dimensional cube network. In the case where the on-chip network is a two-dimensional grid network, the nodes in the on-chip network are arranged in a two-dimensional grid manner. Therefore, a plane rectangular coordinate system can be established in the two-dimensional grid network to determine the coordinates of each node in the two-dimensional grid network.

[0111] In the case where the on-chip network is a two-dimensional grid network, a plane rectangular coordinate system can be established with the node in the lower left corner of the two-dimensional grid network as the origin of the plane rectangular coordinate system, with the horizontal left as the positive direction of the horizontal axis of the plane rectangular coordinate system, and the vertical upward as the positive direction of the vertical axis of the plane rectangular coordinate system; according to the plane rectangular coordinate system, the coordinates of each of the nodes are determined. The distance between the node and the adjacent node is determined to be 1. The adjacent nodes of a node are the nodes directly connected to the node. In this way, after the plane rectangular coordinate system is determined, the coordinates of each node can be determined according to the position of each node, which is conducive to the subsequent determination of the number of each node according to the coordinates of each node.

[0112] After determining the coordinates of each node, the number of each node can be determined according to the following formula:

[0113] ;

[0114] in, The characterization coordinates are The number of the node, is the horizontal coordinate of the node, is the ordinate of the node, is the number of columns of the two-dimensional grid network.

[0115] like Figure 2The 5×4 two-dimensional grid network shown in the figure takes the node in the lower left corner of the two-dimensional grid network as the origin of the plane rectangular coordinate system, the horizontal left direction is the positive direction of the horizontal axis, and the vertical upward direction is the positive direction of the vertical axis. The plane rectangular coordinate system is established, then the node numbered 0 is the origin, the coordinates of the node numbered 0 are (0,0), and the node numbered 6 is (1,1).

[0116] In the case where the on-chip network is an n-dimensional cube network, the nodes in the on-chip network are arranged in the manner of an n-dimensional cube, so a three-dimensional coordinate system can be established in the n-dimensional cube network to determine the three-dimensional coordinates of each node in the n-dimensional cube network. The numbering function that determines the number of each node according to the three-dimensional coordinates of each node in the n-dimensional cube network can be set according to actual needs.

[0117] In this way, an algorithm for determining node numbers according to node coordinates is proposed, which is conducive to the machine automatically determining the number of each node according to the coordinates of each node.

[0118] The on-chip network may include source nodes and target nodes. One source node may correspond to multiple target nodes. The target node is set according to the actual situation. The target node can be determined according to the target node set. The target node set includes the number of each target node. In this way, each target node can be determined directly according to the target node set, and the target node set stores the number of the target node. Subsequently, the transmission path from the source node to the target node can be directly determined as an uplink channel or a downlink channel according to the size relationship between the number of the target node and the number of the source node.

[0119] In step S12, the network on chip is divided according to the source node to obtain at least one first sub-network.

[0120] By dividing the network on chip according to the source node, at least one and at most four first sub-networks can be obtained. The number of the source node can be obtained, and the nodes of the network on chip whose numbers are greater than the number of the source node are divided into one target network area, and the nodes whose numbers are less than the number of the source node are divided into another target network area. It can be understood that when the source node number is the largest or the smallest, only one target network area can be obtained.

[0121] It is determined whether the number of nodes included in each target network area is less than the division threshold. If the number of nodes included in a target network area is not less than the division threshold, the target network area is divided into two first sub-networks. Since there may be two target network areas, a maximum of four first sub-networks can be divided.

[0122] When the on-chip network is a two-dimensional grid network, when dividing the on-chip network according to source nodes, the two-dimensional grid network can be first divided into at least one target network area according to the source node pairs, and then the target network area can be divided according to the adjacent nodes of the source nodes.

[0123] Optionally, in the case where the on-chip network is a two-dimensional grid network, step S12 may include: determining the adjacent nodes of the source node; judging whether there is an upstream subnetwork and a downstream subnetwork according to the size relationship between the numbers of the adjacent nodes and the number of the source node; wherein the number of the nodes included in the upstream subnetwork is greater than the number of the source node, and the number of the nodes included in the downstream subnetwork is less than the number of the source node; in the case where there is only one adjacent node in the upstream subnetwork, or there are two adjacent nodes but the number of nodes included in the upstream subnetwork is not greater than the division threshold, determining the upstream subnetwork as the first subnetwork network; when there are two adjacent nodes in the upstream subnetwork and the number of nodes included in the upstream subnetwork is greater than the division threshold, the upstream subnetwork is divided into two first subnetworks; when there is only one adjacent node in the downstream subnetwork, or when there are two adjacent nodes but the number of nodes included in the downstream subnetwork is not greater than the division threshold, the downstream subnetwork is determined as the first subnetwork; when there are two adjacent nodes in the downstream subnetwork and the number of nodes included in the downstream subnetwork is greater than the division threshold, the downstream subnetwork is divided into two first subnetworks. The division stop condition refers to: the number of nodes included in all the divided subnetworks is not greater than the division threshold.

[0124] The dividing the upstream subnetwork into two first subnetworks may include: dividing the upstream subnetwork into two first subnetworks according to the respective horizontal coordinates of the two adjacent nodes in the upstream subnetwork. Specifically, the horizontal coordinate of the node with the smaller horizontal coordinate of the two adjacent nodes is determined as the first horizontal coordinate, and the horizontal coordinate of the node with the larger horizontal coordinate of the two adjacent nodes is determined as the second horizontal coordinate. Each node in the upstream subnetwork whose horizontal coordinate is less than or equal to the first horizontal coordinate is determined as a first subnetwork, and each node in the upstream subnetwork whose horizontal coordinate is greater than or equal to the second horizontal coordinate is determined as another first subnetwork.

[0125] The dividing of the downlink subnetwork into two first subnetworks may include: dividing the downlink subnetwork into two first subnetworks according to the respective horizontal coordinates of the two adjacent nodes in the downlink subnetwork. Specifically, the horizontal coordinate of the node with the smaller horizontal coordinate among the two adjacent nodes is determined as the third horizontal coordinate, and the horizontal coordinate of the node with the larger horizontal coordinate among the two adjacent nodes is determined as the fourth horizontal coordinate. Each node in the uplink subnetwork whose horizontal coordinate is less than or equal to the third horizontal coordinate is determined as a first subnetwork, and each node in the uplink subnetwork whose horizontal coordinate is greater than or equal to the fourth horizontal coordinate is determined as another first subnetwork.

[0126] Set the source node address , node number function , the partition threshold is . According to the source node , divide the two-dimensional grid network into upstream sub-networks and downstream subnetwork , where the upstream subnetwork The number of the included nodes is greater than the number of the source node, and the downstream subnetwork The included nodes have a number less than the source node. It is understood that Characterization Node The horizontal axis of Characterization Node The vertical coordinate, node Can be a node ,node ,node ,node ,node ,node ,node ,node or any other node.

[0127] Assume that The nodes whose node numbers are greater than the source node's number are adjacent to the source node, that is, , …, , , then the area The number of nodes in ,in is the number of rows of the two-dimensional grid network, is the number of columns of the two-dimensional grid network, A function that represents the number of nodes.

[0128] exist In the case of , there is no upstream subnetwork .

[0129] exist In the case of , there is a node with a number greater than the source node's number adjacent to the source node, and the source node is a boundary node.

[0130] In the case where the source node is in the first column, , , ; In the case where the source node is in the last column, , , .in, is the coordinate value of the node in the lower left corner of the upstream subnetwork, is the coordinate value of the node in the lower right corner of the upstream subnetwork. In this case, directly Identify as a first subnetwork In this disclosure, the meanings of various characters can refer to each other.

[0131] exist In the case of , there are two nodes with numbers greater than the source node and Adjacent to the source node, let .

[0132] If the upstream subnetwork If the number of nodes contained is not greater than the partition threshold, the upstream subnetwork is directly Identify as a first subnetwork .

[0133] If the upstream subnetwork If the number of nodes contained is greater than the partition threshold, the upstream subnetwork Divide into two first sub-networks , the two first subnetworks Respectively, the regions and Region ,area The included nodes satisfy: .area The included nodes satisfy: .

[0134] Assume that Nodes with node numbers smaller than the source node number are adjacent to the source node. The adjacent nodes include: , …, , .

[0135] exist In the case of , there is no downlink sub-network .

[0136] exist In the case of , there is a node with a number smaller than the source node adjacent to the source node, and the source node is a boundary node.

[0137] In the case where the source node is in the first column, , , ; In the case where the source node is in the last column, , , .in, is the coordinate of the node in the upper left corner of the downstream subnetwork, is the coordinate of the node in the upper right corner of the downstream subnetwork. In this case, directly Identify as a first subnetwork .

[0138] exist In the case of , there are two nodes with numbers smaller than the source node and Adjacent to the source node, let .

[0139] If the downstream sub-network If the number of nodes contained is not greater than the division threshold, the downstream sub-network will be directly Identify as a first subnetwork .

[0140] If the number of nodes in the downstream sub-network is greater than the division threshold, the downstream sub-network Divide into two first sub-networks , the two first subnetworks Respectively, the regions and Region ,area The included nodes satisfy: .area The included nodes satisfy: .

[0141] In this way, the on-chip network can be divided into at least one and at most four first sub-networks according to the adjacent nodes of the source node. Moreover, because the coordinates of the source node are known, the coordinates of the adjacent nodes are also known. Therefore, the coordinates of the boundary nodes of the first sub-network divided according to the adjacent nodes are also known, which is conducive to the subsequent determination of the column where the central node of the first sub-network is located.

[0142] In step S13, the first sub-network is divided according to the central node of each of the first sub-networks until a division stop condition is met to obtain a plurality of sub-networks.

[0143] For each first sub-network, the central node of the first sub-network can be obtained, and the first sub-network can be divided into two network areas according to the central node of the first sub-network. It is judged whether each divided network area meets the division stop condition. If any divided network area does not meet the division stop condition, the network area is divided according to the central node of the network area; if each divided network area meets the division stop condition, the division is stopped, and each divided network area is determined as a sub-network.

[0144] In step S14, a target node list corresponding to each of the sub-networks is generated according to the numbers of the target nodes included in each of the sub-networks.

[0145] The numbers of the target nodes contained in each sub-network are collected to obtain a target node list corresponding to each sub-network. Optionally, when the number of the target nodes contained in the sub-network is greater than the number of the source node, the numbers of the target nodes contained in the sub-network are arranged in ascending order to obtain a target node list corresponding to the sub-network. When the number of the target nodes contained in the sub-network is less than the number of the source node, the numbers of the target nodes contained in the sub-network are arranged in descending order to obtain a target node list corresponding to the sub-network.

[0146] In this way, arranging the numbers in the target node list in ascending or descending order is beneficial to the subsequent determination of the transmission path and shortening the transmission path of each node corresponding to each target node list.

[0147] In step S15, the source message is copied from the source node.

[0148] Each source message carries a target node list. The number of copies of the source message can be determined according to the number of target node lists; the source message is copied from the source node according to the number of copies. In the case of , the number of copies of the source message is , plus the original source message, we can get a total of Each target node list is added to the message header of the source message, so that each source message carries a target node list, and each source message needs to be transmitted to each target node corresponding to the target node list carried by itself.

[0149] In this way, the number of source message copies is determined according to the number of target node lists, and the number of copies is small, which can effectively reduce network delay. In addition, one source message corresponds to one target node list, which can ensure that each source message is transmitted to multiple target nodes corresponding to the target node list.

[0150] In step S16, the source message is transmitted to each of the target nodes according to the target node list carried by each of the source messages.

[0151] According to the target node list carried by each source message, the target node to which each source message is to be sent is determined. According to the target node to which each source message is to be sent, a transmission path corresponding to each source message is planned, so that the source message is transmitted to each target node corresponding to the target node list carried by itself according to the planned transmission path.

[0152] By adopting the technical solution of the embodiment of the present application, the on-chip network can be divided according to the source node to obtain at least one first sub-network, and the first sub-network can be divided according to the central node of each first sub-network until the division stop condition is met to obtain multiple sub-networks. In this way, the on-chip network can be evenly divided into multiple sub-networks, thereby shortening the length of the longest path during multicast communication and reducing network latency. Furthermore, the source message is copied from the source node and transmitted to each target node, thereby improving the performance of multicast communication.

[0153] On the basis of the above technical solution, when the on-chip network is a two-dimensional grid network, step S13 may include: dividing the first subnetwork according to the column where the central node of each first subnetwork is located until the division stop condition is met to obtain multiple subnetworks.

[0154] In the case where the on-chip network is a two-dimensional grid network, the first subnetwork is divided according to the central node of the first subnetwork. In fact, the first subnetwork can be divided according to the column where the central node of the first subnetwork is located, and the first subnetwork is divided into two left and right network areas, wherein each node in the same column as the central node may belong to different network areas under different circumstances. The network areas to which each node in the same column as the central node belongs under different circumstances will be described in detail later.

[0155] After the division, determine whether each divided network area meets the division stop condition. If any divided network area does not meet the division stop condition, divide the network area according to the column where the central node of the network area is located; if each divided network area meets the division stop condition, stop the division and determine each divided network area as a sub-network.

[0156] Judging whether any network area satisfies the partition stop condition refers to judging whether the number of nodes included in the network area is not greater than the partition threshold; when the number of nodes included in a network is not greater than the partition threshold, the network area satisfies the partition stop condition; when the number of nodes included in a network is greater than the partition threshold, the network area does not satisfy the partition stop condition.

[0157] By adopting the technical solution of the embodiment of the present disclosure, for a two-dimensional grid network, the first sub-network can be divided only according to the column where the central node of the first sub-network is located. The column where the central node is located can be determined only by the horizontal coordinate of the central node, which can reduce the amount of calculation.

[0158] like Figure 4 The flowchart of dividing the first sub-network shown in the figure, when the on-chip network is a two-dimensional grid network, divides the first sub-network according to the column where the central node of the first sub-network is located, and may include steps S21 to S24.

[0159] In step S21, when the first sub-network does not satisfy the division stop condition, the first sub-network is determined as a sub-network to be divided.

[0160] In step S22, the sub-network to be divided is divided according to the column where the central node of the sub-network to be divided is located, to obtain a plurality of second sub-networks.

[0161] In step S23, the division is stopped, and the second sub-network is determined as the sub-network.

[0162] Specifically, when each of the second sub-networks meets the division stopping condition, division is stopped, and the second sub-network is determined as the sub-network;

[0163] In step S24, the second sub-network that does not satisfy the division stop condition is determined as the sub-network to be divided, and the process goes to step S22.

[0164] Specifically, when any of the second sub-networks does not satisfy the division stop condition, the second sub-network that does not satisfy the division stop condition is determined as the sub-network to be divided, and the steps are executed: the sub-network to be divided is divided according to the column where the central node of the sub-network to be divided is located to obtain multiple second sub-networks.

[0165] If all second sub-networks meet the division stop condition, the division is stopped, and each divided second sub-network is determined as a sub-network. At this time, step S24 does not need to be performed. The second sub-network that does not meet the division stop condition is determined as the sub-network to be divided, and then jump to step S22.

[0166] In this way, by judging whether each second sub-network corresponding to each division satisfies the division stop condition, the iterative division of the first sub-network can be realized, thereby dividing the entire two-dimensional grid network into multiple uniform network areas, which is beneficial to improving network performance.

[0167] Based on the above technical solution, when the on-chip network is a two-dimensional grid network, in order to divide the first sub-network according to the column where the central node of the first sub-network is located, it is necessary to first determine the column where the central node of the first sub-network is located.

[0168] In the case where the on-chip network is a two-dimensional grid network and the number of nodes in the first sub-network is greater than the number of source nodes, the coordinates of the node in the lower left corner of the first sub-network can be used. and the coordinates of the lower right node , determine the column where the central node of the first sub-network satisfies Among them, if ,Pick ,but , ;like ,Pick ,but , .symbol Indicates rounding up, the symbol Indicates rounding down.

[0169] In the case where the on-chip network is a two-dimensional grid network and the number of nodes in the first sub-network is smaller than the number of source nodes, the coordinates of the node in the upper left corner of the first sub-network can be and the coordinates of the upper right node , determine the column where the central node of the first sub-network satisfies Among them, if ,Pick ,but , ;like ,Pick ,but , .symbol Indicates rounding up, the symbol Indicates rounding down.

[0170] In this way, by rounding up and rounding down, it is possible to ensure that a central node can be determined in each first sub-network, thereby achieving the division of the first sub-network. In the same way, the central node of each second sub-network can also be determined to ensure that the on-chip network is divided into multiple uniform sub-networks.

[0171] On the basis of the above technical solution, after multiple subnetworks are obtained by division, the numbers of the target nodes contained in each subnetwork can naturally be determined. Optionally, a target node set can be obtained; according to the size relationship between the numbers of the nodes in the target node set and the numbers of the source nodes, the target node set is divided into an upstream node set and a downstream node set; according to the horizontal coordinates of the nodes in the lower left corner and the horizontal coordinates of the nodes in the lower right corner of each upstream target subnetwork, the upstream node set is divided to obtain the target node list corresponding to each upstream target subnetwork; the upstream target subnetwork is: the subnetwork containing the nodes whose numbers are greater than the number of the source node; according to the horizontal coordinates of the nodes in the upper left corner and the horizontal coordinates of the nodes in the upper right corner of each downstream target subnetwork, the downstream node set is divided to obtain the target node list corresponding to each downstream target subnetwork; the downstream target subnetwork is: the subnetwork containing the nodes whose numbers are less than the number of the source node.

[0172] The numbers of the target nodes contained in each sub-network are collected to obtain a target node list corresponding to each sub-network. Optionally, when the number of the target nodes contained in the sub-network is greater than the number of the source node, the numbers of the target nodes contained in the sub-network are arranged in ascending order to obtain a target node list corresponding to the sub-network. When the number of the target nodes contained in the sub-network is less than the number of the source node, the numbers of the target nodes contained in the sub-network are arranged in descending order to obtain a target node list corresponding to the sub-network.

[0173] In this way, arranging the numbers in the target node list in ascending or descending order is beneficial to the subsequent determination of the transmission path and shortening the transmission path of each node corresponding to each target node list.

[0174] Optionally, each target node list may also include the number of a marker node. The numbers of the nodes in the target node list corresponding to the uplink target subnetwork are arranged in ascending order, and the node with the smallest number in the uplink target subnetwork is determined as the uplink marker node, and the number of the uplink marker node is added to the first position of the target node list corresponding to the uplink target subnetwork; the numbers of the nodes in the target node list corresponding to the downlink target subnetwork are arranged in descending order, and the node with the largest number in the downlink target subnetwork is determined as the downlink marker node, and the number of the downlink marker node is added to the first position of the target node list corresponding to the downlink target subnetwork.

[0175] The number of each target node in the target node list corresponding to an uplink target sub-network is not less than the number of the marker node in the target node list. The number of each target node in the target node list corresponding to a downlink target sub-network is not greater than the number of the marker node in the target node list.

[0176] In this way, it can be ensured that the numbers in each target node list with the number of the marker node added are still arranged in ascending or descending order. Adding the number of the marker node in the target node list helps to quickly reach the sub-network and accurately determine the transmission path of the source message.

[0177] On the basis of the above technical solution, when transmitting the source message to each target node, the first method can be adopted. When the source message arrives at a node, the next node that the source message needs to arrive at is determined, and the source message is transmitted to the next node; the second method can also be adopted to directly determine the transmission path of the source message to each target node corresponding to the target node list carried by itself, and then transmit the source message according to the transmission path. It can be understood that the entire transmission path is actually composed of multiple nodes arranged in sequence, and the latter node is the next node corresponding to the previous node. Therefore, the next node determination algorithm used in the first method and the transmission path determination algorithm used in the second method are actually the same algorithm. The algorithm adopts the idea of ​​Hamiltonian path, so that each transmission path reaches each node at most once. The algorithm will be introduced uniformly later.

[0178] The nodes in the target node list are arranged in ascending or descending order. In the case of the first method, the next node corresponding to the local node where the source message is located is determined according to the target node list carried by each source message; wherein the next node is: the next node that the source message passes through when it is transmitted from the local node to the node corresponding to the first number in the target node list; each time the source message reaches a node corresponding to a number in the target node list, the number of the node reached is deleted from the target node list carried by the source message; when the target node list carried by the source message is empty, the transmission of the source message is stopped.

[0179] When the target node list carried by the source message is empty, it proves that the source message has reached the target nodes corresponding to the numbers in the target node list carried by the source message, and therefore, the transmission of the source message is stopped.

[0180] When the source message reaches a node corresponding to a number in the target node list, the number of the node in the target node list carried by the source message is deleted to determine the node that has not been reached based on the number existing in the node list carried by the source message.

[0181] In this way, the corresponding nodes in the current target node list are all nodes that the source node has not yet reached. In the event of an error in the transmission process, the transmission path can be corrected in time, thereby improving the fault tolerance rate.

[0182] When the source message reaches a target node, the source message is copied in the buffer, and the target node absorbs the copied source message. At the same time, the source message is forwarded along the output channel so that the source message continues to be transmitted to the next node. In this way, the source message can reach each target node and be absorbed by each target node.

[0183] When the source message reaches a node corresponding to a number in the non-target node list, there is no need to delete the number in the target node list carried by the source message, and the target node list carried by the source message remains unchanged. In this way, it can be ensured that the source message can accurately reach each target node corresponding to the target node list.

[0184] On the basis of the above technical solution, the next node determination algorithm used in the first method can be divided into two cases: the numbers of the nodes in the target node list are arranged in ascending order and the numbers of the nodes in the target node list are arranged in descending order.

[0185] The numbers of the nodes in the target node list are arranged in ascending order, and the node corresponding to the first number in the target node list carried by the source message is determined as the first target node. The number of the first target node is the node with the smallest number in the target node list. The next node that the local node can select can only be the adjacent node of the local node. Therefore, the adjacent node of the local node is determined as the first candidate node.

[0186] Because the numbers of the nodes in the target node list are arranged in ascending order, that is, each number in the target node list is greater than the number of the source node, therefore, when the source message is transmitted from the source node to the target nodes corresponding to each number in the target node list, the transmission path should be an uplink channel. In order to ensure that the transmission path is an uplink channel, when determining the next node corresponding to the local node where the source message is located from the first candidate node, the node with the largest number among the nodes corresponding to the number not greater than the number of the first destination node in the first candidate node should be determined as the next node corresponding to the local node where the source message is located. Specifically, the first candidate node with a number not greater than the number of the first destination node in the first candidate node can be determined as the second candidate node, and the second candidate node with the largest number among the second candidate nodes can be determined as the next node corresponding to the local node where the source message is located.

[0187] In this way, it can be ensured that the transmission channel used to reach each target node in the upstream sub-network is the upstream channel, which can not only ensure the shortest transmission path but also avoid deadlock.

[0188] The numbers of the nodes in the target node list are arranged in descending order, and the node corresponding to the first number in the target node list carried by the source message is determined as the second target node. The number of the second target node is the node with the largest number in the target node list. The next node that the local node can select can only be the adjacent node of the local node. Therefore, the adjacent node of the local node is determined as the third candidate node.

[0189] Because the numbers of the nodes in the target node list are arranged in descending order, that is, each number in the target node list is smaller than the number of the source node, therefore, when the source message is transmitted from the source node to the target nodes corresponding to each number in the target node list, the transmission path should be a downlink channel. In order to ensure that the transmission path is a downlink channel, when determining the next node corresponding to the local node where the source message is located from the third candidate node, the node with the smallest number among the nodes corresponding to the number not less than the second destination node in the third candidate node should be determined as the next node corresponding to the local node where the source message is located. Specifically, the third candidate node whose number is not less than the number of the second destination node in the third candidate node can be determined as the fourth candidate node, and the fourth candidate node with the smallest number among the fourth candidate nodes can be determined as the next node corresponding to the local node where the source message is located.

[0190] In this way, it can be ensured that the transmission channel used to reach each target node in the downlink sub-network is the downlink channel, which can not only ensure the shortest transmission path but also avoid deadlock.

[0191] The next node determination algorithm used in the first method is described by a formula. The next node corresponding to the local node can be determined by the following formula:

[0192] ;

[0193] ;

[0194] in, Characterize the next node determination algorithm, Represents the local node, Represent the target node, Represents the next node corresponding to the local node, The numbering function that represents the node, Represents the neighboring nodes of the local node, The representation takes the maximum value, Characterizes the minimum value. In the case of , the number of the node in the target node list is greater than the number of the source node, and the numbers in the target node list are arranged in ascending order; In the case where the number of the node in the target node list is less than the number of the source node, the numbers in the target node list are arranged in descending order.

[0195] The numbers in the target node list are arranged in ascending or descending order. In the case of adopting the second method, the transmission of the source message to each of the target nodes according to the target node list carried by each of the source messages may include: determining a first transmission sub-path from the source node to the node corresponding to the first number in the target node list according to the target node list carried by each of the source messages, and determining a second transmission sub-path from each numbered node in the target node list to the node corresponding to the next number; splicing the first transmission sub-path and the second transmission sub-path in sequence to obtain the transmission path of the source message; adding the transmission path to the header of the source message so that the source message is transmitted to each of the target nodes according to the transmission path.

[0196] When determining the first transmission sub-path, the source node is actually determined as the first starting node, and the next node corresponding to the first starting node is determined when the node from the first starting node to the node corresponding to the first number in the target node list is determined; then the next node is determined as the second starting node, and the next node corresponding to the second starting node is determined when the node from the second starting node to the node corresponding to the first number in the target node list is determined, and so on, until the next node is the node corresponding to the first number in the target node list, then the source node and the determined next nodes are arranged in sequence to obtain the first transmission sub-path.

[0197] The method for determining each second transmission sub-path can refer to the method for determining the first transmission sub-path, determine the node with the previous number in the target node list as the starting node, and determine the next node corresponding to the starting node when the starting node reaches the node with the next number in the target node list. And use the next node as the new starting node, and further determine the next node corresponding to the new starting node, until the next node is the node with the next number in the target node list. Then, arrange the nodes with the previous number and the determined next nodes in sequence to obtain the second transmission sub-path.

[0198] When determining any two nodes and The corresponding transmission subpath can be Function to select a line from arrive Path ,in Function represents the function used by the next node determination algorithm described above, where , , Characterization from arrive The nodes that the path passes through, , is a positive integer, The meaning of the remaining characters can be found in the previous text. The transmission path is the node number The partially ordered set of , ; In the descending channel , .

[0199] The first transmission sub-path and each second transmission sub-path are sequentially spliced ​​to obtain the transmission path of the source message. The source message is transmitted along the transmission path to reach each node corresponding to the target node list carried by the source message. The transmission path is added to the message header of the source message so that the source message is transmitted to each target node along the transmission path.

[0200] In this way, when the source message is transmitted, there is no need to calculate the transmission path, which can improve the transmission efficiency and facilitate the source message to quickly reach each target node corresponding to the target node list.

[0201] When the second method is adopted, the source message is transmitted according to the transmission path in its own message header. Each time it reaches a target node, the source message is copied in the buffer and absorbed by the target node. At the same time, the source message is forwarded along the output channel so that the source message continues to be transmitted to the next node.

[0202] In this way, the source message can reach each target node and be absorbed by each target node.

[0203] On the basis of the above technical solution, the source message is transmitted to each of the target nodes according to the target node list carried by each of the source messages, including: according to the target node list carried by each of the source messages, the source message is transmitted to each of the target nodes in parallel.

[0204] Each target node list corresponds to a transmission path, and the source message is transmitted in parallel through multiple transmission paths.

[0205] In this way, multiple source messages are transmitted in parallel, which can effectively improve transmission efficiency and thus improve network performance.

[0206] The technical solution of the embodiment of the present application is based on the idea of ​​Hamiltonian path, and the designed transmission path is deadlock-free. The technical solution of the embodiment of the present application divides the two-dimensional grid network into multiple sub-networks, shortens the length of the longest path during multicast communication, and reduces network latency. In addition, according to different requirements for network performance, different quantity thresholds can be set to divide the two-dimensional grid network into different numbers of sub-networks, thereby improving the parallelism of the network and alleviating the problem of uneven network area division. In addition, the technical solution of the embodiment of the present application does not need to use virtual channels to avoid deadlock, reduces cost overhead, improves the utilization rate of buffer resources, and reduces the cost of deadlock resolution.

[0207] Optionally, the multicast communication method proposed in the embodiment of the present application can be divided into a message preparation stage and a multicast routing stage.

[0208] The input of the message preparation phase includes: the target node set D, the source node address , node number function , the partition threshold is The output of the message preparation phase includes: the source message corresponding to each sub-network containing the target node, and the list of target nodes carried by each source message , , is the number of target node lists, or .in, is a set of lists of target nodes that contain numbers greater than the number of source nodes, is a set containing a list of destination nodes whose numbers are less than the number of the source nodes.

[0209] The workflow of the message preparation phase can be divided into steps one to six.

[0210] Step 1: Divide D.

[0211] According to the source node , divide D into and Two sets, of which Include Value greater than All target nodes of Include Value less than All target nodes.

[0212] Step 2: Divide and .

[0213] (1) Assume that Node number Greater than The node and source node Adjacent, that is , …, , , calculation area The number of nodes in .

[0214] a. If , then for the source node There are no areas in the routing network , proceed to step 2 (2).

[0215] b. If , indicating that there is a node with a greater number than the source node Adjacent to the source node, the source node Located in the first or last column, that is or .

[0216] when hour, , ;

[0217] when hour, , ;

[0218] in, Indicates area The coordinates of the lower left corner, Indicates area The coordinates of the lower right corner of . , , . Go to step 3 (1).

[0219] c. If , indicating that there are two nodes with numbers greater than the source node and Adjacent to the source node, let .

[0220] if or or , then the target node subset Add to collection middle.

[0221] if ,Will Divided into and Two sub-regions, subset the target nodes Divided into and .

[0222] For Region , , ,make , , , , . Go to step 3 (1).

[0223] For Region , , ,make , , , , . Go to step 3 (1).

[0224] (2) Assume that Node number Less than The node and source node Adjacent, that is , …, , , calculation area The number of nodes in .

[0225] a. If , then for the source node There are no areas in the routing network , go to step six.

[0226] b. If , indicating that there is a node with a smaller number than the source node Adjacent to the source node, the source node Located in the first or last column, that is or .

[0227] when hour, , ;

[0228] when hour, , ;

[0229] make , , . Go to step 3 (2).

[0230] c. If , indicating that there are two nodes with numbers smaller than the source node and Adjacent to the source node, let .

[0231] if or or , then the target node subset Add to collection middle.

[0232] if ,Will Divided into and Two sub-regions, subset the target nodes Divided into and .

[0233] For Region , , ,make , , , , . Go to step 3 (2).

[0234] For Region , , ,make , , , , . Go to step 3 (2).

[0235] Step 3: Determine , and Size relationship The number of nodes representing the region, where Is a positive integer.

[0236] (1) If The corresponding area belongs to the area ,but:

[0237] If the number of regional nodes Less than , , then the target node subset corresponding to this area Add to collection middle.

[0238] If the number of regional nodes Greater than , , representing the region as , go to step 4.

[0239] (2) If The corresponding area belongs to the area ,but:

[0240] If the number of regional nodes Less than , , then the target node subset corresponding to this area Add to collection middle.

[0241] If the number of regional nodes Greater than , , representing the region as , go to step five.

[0242] Step 4: Divide into regions The target node set in .

[0243] Indicates area The coordinates of the lower left corner, Indicates area The coordinate value of the lower right corner, so the area can be expressed as .

[0244] Divide by column, region The column where the central node is located is .

[0245] if ,Pick ,but , ;if ,Pick ,but , .symbol Indicates rounding up, the symbol means round down. Sub-areas:

[0246] ;

[0247] .

[0248] area and Region The number of nodes are:

[0249] ;

[0250] ;

[0251] For Region , the corresponding target node set is .if , then the target node subset corresponding to this area Add to collection If ,make , , , , go to step 3 (1).

[0252] For Region , the corresponding target node set is ,if , then the target node subset corresponding to this area Add to collection If ,make , , , , go to step 3 (1).

[0253] Step 5: Divide into regions The target node set in .

[0254] Indicates area The coordinates of the upper left corner, Indicates area The coordinate value of the upper right corner, so the area can be expressed as .

[0255] Divide by column, region The column where the central node is located is .

[0256] if ,Pick ,but , ;if ,Pick ,but , .symbol Indicates rounding up, the symbol means round down. Sub-areas:

[0257] ;

[0258] .

[0259] area and Region The number of nodes are:

[0260] ;

[0261] .

[0262] For Region , the corresponding target node set is .if , then the target node subset corresponding to this area Add to collection If ,make , , , , go to step three (2).

[0263] For Region , the corresponding target node set is ,if , then the target node subset corresponding to this area Add to collection If ,make , , , , go to step three (2).

[0264] When the number of target nodes in all sub-areas Less than Or when there is only one column, the target node subset is divided and the above loop ends.

[0265] Step 6: and The target nodes in the subset are sorted.

[0266] for A subset of The target nodes in are arranged in ascending order according to the node numbers. In order to facilitate path finding, Corresponding area The node with the smallest node number is recorded as ,make , will soon Grant ,so The first bit is a flag bit, not the address of the target node. A subset of The target nodes in are sorted in descending order according to the node numbers. Corresponding area The node with the largest node number is ,make , will soon Grant ,so The first bit is a flag bit, not the address of the target node.

[0267] according to and The sum of the number of subsets , copy the source message at the source node, and get a total of source packets. Each source packet carries a subset of target nodes. .

[0268] Output all source messages and the list of destination nodes they carry , ; or .

[0269] The inputs to the multicast routing phase include: local node address , sorted list of target nodes , yes or A subset of , the node numbering function .

[0270] When performing multicast routing, if ,but , according to the routing function Will carry target node information The source message is sent to the address If , the source message is copied in the buffer and sent by the local node absorb, , ;otherwise, Then according to the routing function Will carry target node information The source message is sent to the address If , the source message transmission is terminated.

[0271] In summary, the multicast communication method proposed in the embodiment of the present application has high flexibility and adaptability, and can set a suitable partition threshold according to different network performance requirements. The partition threshold can be set according to the requirements and experience for network performance. The multicast communication method proposed in the embodiment of the present application is deadlock-free, so the network does not need additional overhead to avoid deadlock, reduces cost overhead, improves the utilization rate of buffer resources, and reduces the cost of deadlock resolution.

[0272] As an example, Figure 5 Schematic diagram of a multicast communication method in a 7×6 two-dimensional grid network shown in FIG. 1 , the partition threshold is 5, the source node is node 20, and the target node set D = {0, 5, 6, 14, 23, 25, 29, 30, 36, 39}. Using the multicast communication method proposed in the embodiment of the present application, in the message preparation stage, the 7×6 two-dimensional grid network can be divided into Figure 5 In the 12 subnetworks shown by the dotted lines, the source node does not belong to any subnetwork. Among them, 7 subnetworks contain target nodes, and the corresponding target node lists are {23,23,36}, {22,25}, {27,39}, {29,29,30}, {18,6,5}, {14,14} and {12,0}. The transmission paths corresponding to each target node list are {20,21,22,23,24,35,36}, {20,21,22,25}, {20,27,32,39}, {20,27,28,29,30}, {20,19,18,17,6,5}, {20,15,14} and {20,15,14,13,12,11,0}.

[0273] As an example, Figure 6 The schematic diagram of the multicast communication method in the 7×6 two-dimensional grid network shown in FIG. 1 is a diagram of the multicast communication method in the 7×6 two-dimensional grid network, where the partition threshold is 10, the source node is node 20, and the target node set D={0,5,6,14,23,25,29,30,36,39}. In the message preparation phase of the multicast communication method proposed in the embodiment of the present application, the 7×6 two-dimensional grid network can be divided into the following Figure 6 The 6 sub-networks divided by the dotted lines, the target node lists corresponding to the multiple sub-networks are , , , , , , where the first digit in the node list is underlined, indicating that the node is a marker node. The transmission path is ,for The transmission path is ,for The transmission path is ,for Transmission path , The transmission path is , The transmission path is , the longest transmission path is 7 hops.

[0274] As an example, Figure 7 The 7×6 two-dimensional grid network shown in FIG. 1 is a 2D grid network. When a multi-path routing algorithm is used, Figure 7 As shown in the grid on the left, the source message is copied at the source node to obtain 4 source messages, and the target node is divided into and In ={11,23,36}, ={13,14,20,25,29,30,39}, ={1,0}, ={9,6,5,2}. The longest path is 15 hops. Figure 7 As shown in the grid on the right, the transmission path obtained by the column path routing algorithm requires a total of 8 source messages to be prepared at the source node. , , , , , , , . The longest path is 8 hops. Figure 8 For the transmission path obtained by the multicast communication method of the embodiment of the present application, the division threshold is set to 10, and a total of 6 source messages need to be prepared at the source node. Through the message preparation stage, the target node set is finally divided into , , , , , . The longest path is 8 hops.

[0275] It can be seen from the above embodiments that the multicast communication method proposed in the embodiment of the present application is superior to the multipath routing algorithm and the column path routing algorithm. In short, the multicast communication method proposed in the embodiment of the present application has similar performance to the column path method in avoiding the formation of long paths. At the same time, when the number of columns in the sub-area is greater than 1 column, the number of nodes in the sub-area cannot exceed the partition threshold. Therefore, the multicast communication method proposed in the embodiment of the present application has better parallelism. For the multicast communication method proposed in the embodiment of the present application, whether the number of nodes contained in the created partition is uniform has less dependence on the location of the source node, thereby avoiding the formation of long paths in the network, alleviating the problem of uneven number of nodes in the network area, and increasing the parallelism of the network while maintaining a relatively low number of startup source messages.

[0276] In the case where the on-chip network is an n-dimensional cube network, the technical means for dividing the n-dimensional cube network into multiple sub-networks can refer to the technical means for dividing the two-dimensional grid network into multiple sub-networks. The n-dimensional cube network can be divided into multiple first sub-networks based on the source node and the adjacent nodes, and the first sub-network can be divided into multiple sub-networks based on the central node of each first sub-network. Because the coordinates of the nodes in the n-dimensional cube network are three-dimensional, the algorithm for numbering the nodes is different from the algorithm for numbering the nodes in the two-dimensional grid network, and the subsequent algorithm for dividing the n-dimensional cube network also needs to be adjusted accordingly, but the technical concepts of the two are the same.

[0277] It should be noted that, for the method embodiments, for the sake of simplicity, they are all expressed as a series of action combinations, but those skilled in the art should be aware that the embodiments of the present application are not limited by the described order of actions, because according to the embodiments of the present application, certain steps can be performed in other orders or simultaneously. Secondly, those skilled in the art should also be aware that the embodiments described in the specification are all preferred embodiments, and the actions involved are not necessarily required by the embodiments of the present application.

[0278] Fig. 9 1 is a block diagram of a multicast communication device shown in an embodiment of the present application, wherein the multicast communication device is applied to a network on chip, and the network on chip includes a plurality of nodes. Fig. 9 The device includes a number determination module, a first division module, a second division module, a list generation module, a message replication module and a message transmission module. Among them:

[0279] A number determination module, used to determine the number of each node in the on-chip network according to the coordinates of each node; the nodes include source nodes and target nodes;

[0280] A first partitioning module, configured to partition the network on chip according to the source node to obtain at least one first sub-network;

[0281] A second division module, configured to divide the first sub-network according to the central node of each of the first sub-networks until a division stop condition is met to obtain a plurality of sub-networks;

[0282] A list generating module, used for generating a target node list corresponding to each of the sub-networks according to the numbers of the target nodes contained in each of the sub-networks;

[0283] A message copying module, used to copy source messages from the source node; each source message carries a list of target nodes;

[0284] The message transmission module is used to transmit the source message to each of the target nodes according to the target node list carried by each of the source messages.

[0285] Optionally, when the on-chip network is a two-dimensional grid network, the second partitioning module is specifically used to execute:

[0286] The first sub-network is divided according to the column where the central node of each of the first sub-networks is located until the division stop condition is met, thereby obtaining a plurality of the sub-networks.

[0287] Optionally, the second division module is specifically used to perform:

[0288] In a case where the first sub-network does not satisfy the division stop condition, determining the first sub-network as a sub-network to be divided;

[0289] Dividing the sub-network to be divided according to the column where the central node of the sub-network to be divided is located to obtain multiple second sub-networks;

[0290] When each of the second sub-networks meets the division stopping condition, stop division and determine the second sub-network as the sub-network;

[0291] In the case that any of the second sub-networks does not satisfy the division stop condition, the second sub-network that does not satisfy the division stop condition is determined as the sub-network to be divided, and the steps are executed: the sub-network to be divided is divided according to the column where the central node of the sub-network to be divided is located to obtain multiple second sub-networks.

[0292] Optionally, when the number of the node in the first subnetwork is greater than the number of the source node, before dividing the first subnetwork according to the column where the central node of each of the first subnetworks is located until the division stop condition is met to obtain a plurality of the subnetworks, the device further includes:

[0293] The first column determination module is used to determine the column where the central node of the first sub-network is located according to the coordinates of the node at the lower left corner and the coordinates of the node at the lower right corner of the first sub-network.

[0294] Optionally, when the number of nodes in the first subnetwork is smaller than the number of the source node, before dividing the first subnetwork according to the column where the central node of each of the first subnetworks is located until the division stop condition is met to obtain a plurality of the subnetworks, the device further includes:

[0295] The second column determination module is used to determine the column where the central node of the first sub-network is located according to the coordinates of the node at the upper left corner and the coordinates of the node at the upper right corner of the first sub-network.

[0296] Optionally, the satisfying of the division stop condition means that the number of nodes included in each of the sub-networks is not greater than a division threshold.

[0297] Optionally, the first division module is specifically used to perform:

[0298] Determining adjacent nodes of the source node;

[0299] According to the size relationship between the numbers of the adjacent nodes and the number of the source node, determine whether there is an upstream subnetwork and a downstream subnetwork; wherein the number of the nodes included in the upstream subnetwork is greater than the number of the source node, and the number of the nodes included in the downstream subnetwork is less than the number of the source node;

[0300] In the case where there is only one adjacent node in the upstream subnetwork, or there are two adjacent nodes but the number of nodes included in the upstream subnetwork is not greater than the division threshold, determining the upstream subnetwork as the first subnetwork;

[0301] In a case where there are two adjacent nodes in the upstream subnetwork and the number of nodes included in the upstream subnetwork is greater than the division threshold, dividing the upstream subnetwork into two first subnetworks;

[0302] In a case where there is only one adjacent node in the downlink subnetwork, or there are two adjacent nodes but the number of nodes included in the downlink subnetwork is not greater than the division threshold, determining the downlink subnetwork as the first subnetwork;

[0303] In the case where there are two adjacent nodes in the downlink sub-network and the number of nodes included in the downlink sub-network is greater than the division threshold, the downlink sub-network is divided into two first sub-networks.

[0304] Optionally, dividing the uplink subnetwork into two first subnetworks includes:

[0305] The upstream subnetwork is divided into two first subnetworks according to respective horizontal coordinates of two adjacent nodes in the upstream subnetwork.

[0306] Optionally, dividing the downlink subnetwork into two first subnetworks includes:

[0307] The downlink subnetwork is divided into two first subnetworks according to respective horizontal coordinates of two adjacent nodes in the downlink subnetwork.

[0308] Optionally, generating a target node list corresponding to each of the sub-networks according to the numbers of the target nodes included in each of the sub-networks includes:

[0309] Get the target node set;

[0310] According to the magnitude relationship between the numbers of the nodes in the target node set and the numbers of the source nodes, the target node set is divided into an upstream node set and a downstream node set;

[0311] According to the horizontal coordinates of the nodes at the lower left corner and the lower right corner of each upstream target subnetwork, the upstream node set is divided to obtain the target node list corresponding to each upstream target subnetwork; the upstream target subnetwork is: the subnetwork containing the nodes whose numbers are greater than the number of the source nodes;

[0312] According to the horizontal coordinates of the nodes in the upper left corner and the upper right corner of each downstream target subnetwork, the downstream node set is divided to obtain the target node list corresponding to each downstream target subnetwork; the downstream target subnetwork is: the subnetwork containing nodes whose numbers are less than the number of the source nodes.

[0313] Optionally, the device further comprises:

[0314] An ascending arrangement module, used to arrange the numbers of the nodes in the target node list corresponding to the uplink target subnetwork in ascending order, and determine the node with the smallest number in the uplink target subnetwork as the uplink mark node, and add the number of the uplink mark node to the first position of the target node list corresponding to the uplink target subnetwork;

[0315] A descending arrangement module is used to arrange the node numbers in the target node list corresponding to the downstream target subnetwork in descending order, and determine the node with the largest number in the downstream target subnetwork as the downstream mark node, and add the number of the downstream mark node to the first position of the target node list corresponding to the downstream target subnetwork.

[0316] Optionally, the message transmission module is specifically used to execute:

[0317] According to the target node list carried by each source message, determine the next node corresponding to the local node where the source message is located; wherein the next node is: the next node that the source message passes through when it is transmitted from the local node to the node corresponding to the first number in the target node list;

[0318] When the source message reaches a node corresponding to a number in the target node list, delete the number of the reached node from the target node list carried by the source message;

[0319] When the target node list carried by the source message is empty, the transmission of the source message is stopped.

[0320] Optionally, in a case where the numbers of the nodes in the target node list are arranged in ascending order, determining, according to the target node list carried by each source message, the next node corresponding to the local node where the source message is located includes:

[0321] In a case where the numbers of the nodes in the target node list are arranged in ascending order, determining the node corresponding to the first number in the target node list carried by the source message as the first destination node;

[0322] Determine a neighboring node of the local node as a first candidate node;

[0323] Determine, among the first candidate nodes, the first candidate nodes whose numbers are not greater than the number of the first destination node as second candidate nodes;

[0324] The second candidate node with the largest number among the second candidate nodes is determined as the next node corresponding to the local node where the source message is located.

[0325] Optionally, in a case where the numbers of the nodes in the target node list are arranged in descending order, determining, according to the target node list carried by each source message, the next node corresponding to the local node where the source message is located includes:

[0326] In a case where the numbers of the nodes in the target node list are arranged in descending order, determining the node corresponding to the first number in the target node list carried by the source message as the second destination node;

[0327] Determine a neighboring node of the local node as a third candidate node;

[0328] Determine, among the third candidate nodes, the third candidate node whose number is not less than the number of the second destination node as a fourth candidate node;

[0329] The fourth candidate node with the smallest number among the fourth candidate nodes is determined as the next node corresponding to the local node where the source message is located.

[0330] Optionally, the device further comprises:

[0331] The first replication and absorption module is used to replicate the source message at the target node each time the source message arrives at the target node, so that the target node absorbs the replicated source message.

[0332] Optionally, the device further comprises:

[0333] The maintaining module is used to keep the target node list carried by the source message unchanged when the source message reaches a node corresponding to a number not in the target node list.

[0334] Optionally, the message transmission module is specifically used to execute:

[0335] According to the target node list carried by each source message, determine a first transmission subpath from the source node to a node corresponding to a first number in the target node list, and determine a second transmission subpath from a node corresponding to each number in the target node list to a node corresponding to a next number;

[0336] The first transmission sub-path and the second transmission sub-path are sequentially spliced ​​to obtain a transmission path of the source message;

[0337] The transmission path is added to the header of the source message, so that the source message is transmitted to each of the target nodes according to the transmission path.

[0338] Optionally, the device further comprises:

[0339] The second replication and absorption module is used to replicate the source message at the target node when the source message is transmitted according to the transmission path and arrives at each target node, so that the target node absorbs the replicated source message.

[0340] Optionally, the message transmission module is specifically used to execute:

[0341] According to the target node list carried by each source message, the source message is transmitted to each target node in parallel.

[0342] Optionally, the message replication module is specifically used to execute:

[0343] Determining the number of copies of the source message according to the number of the target node list;

[0344] The source message is copied from the source node according to the copy quantity.

[0345] It should be noted that the device embodiment is similar to the method embodiment, so the description is relatively simple, and the relevant parts can be referred to the method embodiment.

[0346] The present application also provides an electronic device, referring to Fig.10 , Fig.10 Schematic diagram of an electronic device shown in an embodiment of the present application. Fig.10 As shown, the electronic device 100 includes: a memory 110 and a processor 120. The memory 110 and the processor 120 are connected via a bus communication. A computer program is stored in the memory 110. The computer program can be run on the processor 120 to implement the steps in the multicast communication method disclosed in the embodiment of the present application.

[0347] The embodiment of the present application also provides a non-volatile readable storage medium. When the instructions in the non-volatile readable storage medium are executed by a processor of an electronic device, the electronic device can perform the steps in the multicast communication method disclosed in the embodiment of the present application.

[0348] The various embodiments in this specification are described in a progressive manner, and each embodiment focuses on the differences from other embodiments. The same or similar parts between the various embodiments can be referenced to each other.

[0349] Those skilled in the art will appreciate that the embodiments of the present application may be provided as methods, devices or computer program products. Therefore, the embodiments of the present application may adopt the form of a complete hardware embodiment, a complete software embodiment, or an embodiment in combination with software and hardware. Moreover, the embodiments of the present application may adopt the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program codes.

[0350] The embodiments of the present application are described with reference to the flowcharts and / or block diagrams of the methods, devices, electronic devices, and computer program products according to the embodiments of the present application. It should be understood that each process and / or box in the flowchart and / or block diagram, as well as the combination of the processes and / or boxes in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing terminal device to generate a machine, so that the instructions executed by the processor of the computer or other programmable data processing terminal device generate instructions for implementing the processes in the flowchart and / or block diagram. Figure 1 A process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.

[0351] These computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable data processing terminal device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce a manufactured product including an instruction device, which implements the process Figure 1 A process or multiple processes and / or boxes Figure 1 A function specified in one or more boxes.

[0352] These computer program instructions can also be loaded onto a computer or other programmable data processing terminal device so that a series of operating steps are executed on the computer or other programmable terminal device to produce a computer-implemented process, thereby providing instructions for executing on the computer or other programmable terminal device to implement the process. Figure 1 A process or multiple processes and / or boxes Figure 1 A step that specifies a function in one or more boxes.

[0353] Although some embodiments of the present application have been described, those skilled in the art may make additional changes and modifications to these embodiments once they have learned the basic creative concept. Therefore, the appended claims are intended to be interpreted as including the preferred embodiment and all changes and modifications that fall within the scope of the present application.

[0354] Finally, it should be noted that, in this article, relational terms such as first and second, etc. are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "include", "comprise" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or terminal device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or terminal device. In the absence of further restrictions, the elements defined by the sentence "including one..." do not exclude the existence of other identical elements in the process, method, article or terminal device including the elements.

[0355] The above is a detailed introduction to a multicast communication method, device, electronic device and storage medium provided by the present application. Specific examples are used in this article to illustrate the principles and implementation methods of the present application. The description of the above embodiments is only used to help understand the method of the present application and its core idea; at the same time, for general technical personnel in this field, according to the idea of ​​the present application, there will be changes in the specific implementation method and application scope. In summary, the content of this specification should not be understood as a limitation on the present application.

Claims

1. A multicast communication method, characterized in that: Applied to a network on chip, the network on chip includes a plurality of nodes; the method includes: Determine the number of each node according to the coordinates of each node in the on-chip network; the nodes include source nodes and target nodes; Dividing the network on chip according to the source node to obtain at least one first sub-network; Dividing the first subnetwork according to the central node of each of the first subnetworks until a division stop condition is met to obtain a plurality of subnetworks; Generate a target node list corresponding to each of the sub-networks according to the numbers of the target nodes included in each of the sub-networks; Copy source messages from the source node; each source message carries a list of target nodes; According to the target node list carried by each source message, the source message is transmitted to each target node; The on-chip network is divided according to the source node to obtain at least one first sub-network, including: determining the adjacent nodes of the source node; judging whether there is an upstream sub-network according to the size relationship between the numbers of the adjacent nodes and the number of the source node; wherein the number of nodes included in the upstream sub-network is greater than the number of the source node; when there is only one adjacent node in the upstream sub-network, or when there are two adjacent nodes but the number of nodes included in the upstream sub-network is not greater than the division threshold, the upstream sub-network is determined as the first sub-network; when there are two adjacent nodes in the upstream sub-network and the number of nodes included in the upstream sub-network is greater than the division threshold, the upstream sub-network is divided into two first sub-networks.

2. A multicast communication method according to claim 1, characterized in that: In the case where the network on chip is a two-dimensional grid network, the first sub-network is divided according to the central node of each of the first sub-networks until a division stop condition is met to obtain a plurality of sub-networks, including: The first sub-network is divided according to the column where the central node of each of the first sub-networks is located until the division stop condition is met, thereby obtaining a plurality of the sub-networks.

3. A multicast communication method according to claim 2, characterized in that: The first sub-network is divided according to the central node of each of the first sub-networks until a division stop condition is met to obtain a plurality of sub-networks, including: In a case where the first sub-network does not satisfy the division stop condition, determining the first sub-network as a sub-network to be divided; Dividing the sub-network to be divided according to the column where the central node of the sub-network to be divided is located to obtain multiple second sub-networks; When each of the second sub-networks meets the division stopping condition, stop division and determine the second sub-network as the sub-network; In the case that any of the second sub-networks does not satisfy the division stop condition, the second sub-network that does not satisfy the division stop condition is determined as the sub-network to be divided, and the steps are executed: the sub-network to be divided is divided according to the column where the central node of the sub-network to be divided is located to obtain multiple second sub-networks.

4. A multicast communication method according to claim 2, characterized in that: In a case where the number of the node in the first sub-network is greater than the number of the source node, before dividing the first sub-network according to the column where the central node of each of the first sub-networks is located until the division stop condition is met to obtain a plurality of the sub-networks, the method further includes: The column where the central node of the first sub-network is located is determined according to the coordinates of the node at the lower left corner and the coordinates of the node at the lower right corner of the first sub-network.

5. A multicast communication method according to claim 2, characterized in that: In a case where the number of the nodes in the first sub-network is smaller than the number of the source node, before dividing the first sub-network according to the column where the central node of each of the first sub-networks is located until the division stop condition is met and a plurality of the sub-networks are obtained, the method further includes: The column where the central node of the first sub-network is located is determined according to the coordinates of the node at the upper left corner and the coordinates of the node at the upper right corner of the first sub-network.

6. A multicast communication method according to claim 1, characterized in that: The division stop condition is satisfied when: the number of nodes included in each of the sub-networks is not greater than a division threshold.

7. A multicast communication method according to claim 1, characterized in that: The dividing the network on chip according to the source node to obtain at least one first sub-network further includes: Determining adjacent nodes of the source node; According to the magnitude relationship between the numbers of the adjacent nodes and the number of the source node, determining whether there is a downstream sub-network; wherein the number of the nodes included in the downstream sub-network is smaller than the number of the source node; In a case where there is only one adjacent node in the downlink subnetwork, or there are two adjacent nodes but the number of nodes included in the downlink subnetwork is not greater than the division threshold, determining the downlink subnetwork as the first subnetwork; In the case where there are two adjacent nodes in the downlink sub-network and the number of nodes included in the downlink sub-network is greater than the division threshold, the downlink sub-network is divided into two first sub-networks.

8. A multicast communication method according to claim 1, characterized in that: The dividing the uplink subnetwork into two first subnetworks includes: The upstream subnetwork is divided into two first subnetworks according to respective horizontal coordinates of two adjacent nodes in the upstream subnetwork.

9. A multicast communication method according to claim 7, characterized in that: The dividing the downlink sub-network into two first sub-networks includes: The downlink subnetwork is divided into two first subnetworks according to respective horizontal coordinates of two adjacent nodes in the downlink subnetwork.

10. A multicast communication method according to claim 2, characterized in that: The generating, according to the numbers of the target nodes included in each of the sub-networks, a list of target nodes corresponding to each of the sub-networks comprises: Get the target node set; According to the magnitude relationship between the numbers of the nodes in the target node set and the numbers of the source nodes, the target node set is divided into an upstream node set and a downstream node set; According to the horizontal coordinates of the nodes at the lower left corner and the lower right corner of each upstream target subnetwork, the upstream node set is divided to obtain the target node list corresponding to each upstream target subnetwork; the upstream target subnetwork is: the subnetwork containing the nodes whose numbers are greater than the number of the source nodes; According to the horizontal coordinates of the nodes in the upper left corner and the upper right corner of each downstream target subnetwork, the downstream node set is divided to obtain the target node list corresponding to each downstream target subnetwork; the downstream target subnetwork is: the subnetwork containing nodes whose numbers are less than the number of the source nodes.

11. A multicast communication method according to claim 10, characterized in that: The method further comprises: Arrange the numbers of the nodes in the target node list corresponding to the uplink target subnetwork in ascending order, determine the node with the smallest number in the uplink target subnetwork as the uplink marker node, and add the number of the uplink marker node to the first position of the target node list corresponding to the uplink target subnetwork; The numbers of the nodes in the target node list corresponding to the downlink target subnetwork are arranged in descending order, and the node with the largest number in the downlink target subnetwork is determined as the downlink marker node, and the number of the downlink marker node is added to the first position of the target node list corresponding to the downlink target subnetwork.

12. A multicast communication method according to claim 11, characterized in that: The transmitting the source message to each of the target nodes according to the target node list carried by each of the source messages includes: According to the target node list carried by each source message, determine the next node corresponding to the local node where the source message is located; wherein the next node is: the next node that the source message passes through when it is transmitted from the local node to the node corresponding to the first number in the target node list; When the source message reaches a node corresponding to a number in the target node list, delete the number of the reached node from the target node list carried by the source message; When the target node list carried by the source message is empty, the transmission of the source message is stopped.

13. A multicast communication method according to claim 12, characterized in that: In a case where the numbers of the nodes in the target node list are arranged in ascending order, determining, according to the target node list carried by each source message, a next node corresponding to the local node where the source message is located, includes: In a case where the numbers of the nodes in the target node list are arranged in ascending order, determining the node corresponding to the first number in the target node list carried by the source message as the first destination node; Determine a neighboring node of the local node as a first candidate node; Determine, among the first candidate nodes, the first candidate nodes whose numbers are not greater than the number of the first destination node as second candidate nodes; A second candidate node with the largest number among the second candidate nodes is determined as the next node corresponding to the local node where the source message is located.

14. A multicast communication method according to claim 12, characterized in that: In a case where the numbers of the nodes in the target node list are arranged in descending order, determining, according to the target node list carried by each source message, a next node corresponding to the local node where the source message is located, includes: In a case where the numbers of the nodes in the target node list are arranged in descending order, determining the node corresponding to the first number in the target node list carried by the source message as the second destination node; Determine a neighboring node of the local node as a third candidate node; Determine, among the third candidate nodes, the third candidate node whose number is not less than the number of the second destination node as a fourth candidate node; A fourth candidate node with the smallest number among the fourth candidate nodes is determined as the next node corresponding to the local node where the source message is located.

15. A multicast communication method according to claim 12, characterized in that: The method further comprises: When the source message reaches each of the target nodes, the source message is replicated at the target node, so that the target node absorbs the replicated source message.

16. A multicast communication method according to claim 12, characterized in that: The method further comprises: Each time the source message reaches a node that does not correspond to a number in the target node list, the target node list carried by the source message is kept unchanged.

17. A multicast communication method according to claim 11, characterized in that: The transmitting the source message to each of the target nodes according to the target node list carried by each of the source messages includes: According to the target node list carried by each source message, determine a first transmission subpath from the source node to a node corresponding to a first number in the target node list, and determine a second transmission subpath from a node corresponding to each number in the target node list to a node corresponding to a next number; The first transmission sub-path and the second transmission sub-path are sequentially spliced ​​to obtain a transmission path of the source message; The transmission path is added to the header of the source message, so that the source message is transmitted to each of the target nodes according to the transmission path.

18. A multicast communication method according to claim 17, characterized in that: The method further comprises: When the source message is transmitted according to the transmission path and reaches each of the target nodes, the source message is replicated at the target node so that the target node absorbs the replicated source message.

19. A multicast communication method according to claim 1, characterized in that: The transmitting the source message to each of the target nodes according to the target node list carried by each of the source messages includes: According to the target node list carried by each source message, the source message is transmitted to each target node in parallel.

20. A multicast communication method according to claim 1, characterized in that: The copying of the source message from the source node includes: Determining the number of copies of the source message according to the number of the target node list; The source message is copied from the source node according to the copy quantity.

21. A multicast communication device, characterized in that: Applied to a network on chip, the network on chip includes a plurality of nodes; the device includes: A number determination module, used to determine the number of each node in the on-chip network according to the coordinates of each node; the nodes include source nodes and target nodes; A first partitioning module, configured to partition the network on chip according to the source node to obtain at least one first sub-network; A second division module, configured to divide the first sub-network according to the central node of each of the first sub-networks until a division stop condition is met to obtain a plurality of sub-networks; A list generating module, used for generating a target node list corresponding to each of the sub-networks according to the numbers of the target nodes contained in each of the sub-networks; A message copying module, used to copy source messages from the source node; each source message carries a list of target nodes; A message transmission module, used for transmitting the source message to each of the target nodes according to the target node list carried by each of the source messages; The first partitioning module is specifically used to execute: determining the adjacent nodes of the source node; judging whether there is an upstream subnetwork according to the size relationship between the numbers of the adjacent nodes and the number of the source node; wherein the number of the nodes included in the upstream subnetwork is greater than the number of the source node; determining the upstream subnetwork as the first subnetwork when there is only one adjacent node in the upstream subnetwork, or when there are two adjacent nodes but the number of nodes included in the upstream subnetwork is not greater than the partitioning threshold; and partitioning the upstream subnetwork into two first subnetworks when there are two adjacent nodes in the upstream subnetwork and the number of nodes included in the upstream subnetwork is greater than the partitioning threshold.

22. An electronic device, characterized in that: include: processor; A memory for storing instructions executable by the processor; wherein the processor is configured to execute the instructions to implement the multicast communication method according to any one of claims 1 to 20.

23. A non-volatile readable storage medium, when instructions in the non-volatile readable storage medium are executed by a processor of an electronic device, the electronic device is enabled to perform the multicast communication method according to any one of claims 1 to 20.

Citation Information

Patent Citations

  • Multicast transmission method based on three-dimensional network on chip

    CN105183693A

  • Message sending method, message sending control method and device

    CN115733840A