Network-on-chip and multicast message transmission method
By designing a dedicated multicast group and router structure in the on-chip network, the transmission path of multicast packets is optimized, solving the problems of cumbersome algorithms and high costs in existing technologies, and achieving efficient multicast packet transmission.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- ZTE INTELLIGENT TECH NANJING CO LTD
- Filing Date
- 2021-10-15
- Publication Date
- 2026-07-24
AI Technical Summary
Existing technologies fail to effectively consider the characteristics of artificial intelligence computation, resulting in cumbersome and costly algorithms for designing on-chip networks.
An on-chip network architecture is designed, including a first processing unit and a multicast group. Through the link connection between the first router and the second router, efficient transmission of multicast messages is achieved. Multicast buffers and controllers are used to buffer and send data payloads, and the multicast path is optimized by combining identification information and control signals.
It simplifies the transmission algorithm for multicast messages, reduces costs, meets the multicast traffic requirements in artificial intelligence computing, and improves transmission efficiency.
Smart Images

Figure CN115996199B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of chip technology, and in particular to an on-chip network and a multicast message transmission method. Background Technology
[0002] Network on Chip (NoC) is a fundamental module within the processor. For example... Figure 1 An on-chip network includes nodes, adapters, routers, and links. Nodes are connected to adapters, adapters are connected to routers, and routers are connected to each other via links. Adapters perform data encapsulation and decapsulation between nodes and routers, routers forward data according to certain strategies, and links are the underlying data channels.
[0003] With the development of Moore's Law and the integrated circuit industry, processor architecture has continuously evolved from traditional single-core to multi-core. The increase in various computing cores has constantly posed new challenges to the performance of on-chip networks (NICs). With a significant increase in computing resources, the efficiency of NICs has become a bottleneck for the entire system. The main service types of NICs are unicast, multicast, and broadcast. In traditional general-purpose processors, unicast traffic is relatively large, while multicast and broadcast traffic is relatively small. Therefore, NIC design primarily supports unicast traffic, converting multicast and broadcast traffic into unicast traffic for processing. However, with the development of Artificial Intelligence (AI) applications in recent years, the proportion of AI computations in services has continued to increase. AI computations generate a large amount of multicast traffic, and continuing to use unicast to process multicast messages will impact performance.
[0004] Some related technologies can handle multicast traffic using algorithms, for example, assuming multicast traffic exists between each node and any other node in a general scenario. However, these algorithms do not take into account the characteristics of artificial intelligence computation, making them relatively cumbersome and costly. Summary of the Invention
[0005] This application provides an on-chip network and a multicast message transmission method to address the problem that on-chip networks designed without considering the characteristics of artificial intelligence computation are prone to cumbersome algorithms and high costs. The technical solution is as follows:
[0006] On one hand, an on-chip network is provided, the on-chip network comprising: at least one first processing unit and at least one multicast group;
[0007] The first processing unit includes a first node, an adapter, and a first router connected in sequence;
[0008] The multicast group includes a multicast network, a second processing unit, and at least one third processing unit. The second processing unit includes a second node, an adapter, and a second router connected in sequence. The third processing unit includes a second node, an adapter, and a first router connected in sequence. The second node and the second router are respectively connected to the multicast network.
[0009] The first router and the second router are connected by a link;
[0010] The second router is used to receive multicast packets forwarded by the first router and forward the multicast packets to the multicast network.
[0011] In one possible implementation, the multicast network includes a multicast buffer, a multicast controller, and a link path, wherein the multicast buffer is connected to the multicast controller, and the multicast controller is connected to the second node through the link path;
[0012] The multicast controller is used to receive multicast packets sent by the second router and send the data payload in the multicast packets to the multicast buffer.
[0013] The multicast buffer is used to cache the data payload;
[0014] The multicast controller is also used to send the data payload cached in the multicast buffer to the second node through the link path.
[0015] In one possible implementation, the multicast controller includes a message transceiver controller and a distributor, wherein the message transceiver controller is connected to the distributor;
[0016] The link path includes a data bus, a first control bus, and a second control bus. The message transceiver controller is connected to the second node through the data bus and the first control bus, and the distributor is connected to the second node through the second control bus.
[0017] The message transceiver controller is used to send the data payload to the second node via the data bus;
[0018] The message transceiver controller is used to send a first control signal to the second node through the first control bus, and the first control signal is used to instruct the second node to receive the data payload.
[0019] The second node is used to send a second control signal to the distributor via the second control bus, the second control signal being used to indicate that the second node is in a state of being ready to receive data.
[0020] In one possible implementation, the on-chip network further includes a shift register connected to the first router;
[0021] The shift register is used to store the number of bits to shift to the right;
[0022] When the identification information of the multicast group includes a group identifier and a node bitmap, and each bit in the node bitmap is used to indicate whether the second node participates in the current multicast, the first router is used to right-shift the identification information by the right-shifted number, determine the second router in the multicast group based on the group identifier obtained after the right shift, and send the multicast message to the second router.
[0023] On the one hand, a multicast message transmission method is provided for use in an on-chip network as described above, the method comprising:
[0024] The first node sends a multicast message to the first router through the adapter. The multicast message includes a data payload and the identification information of the multicast group.
[0025] The first router determines the second router in the multicast group based on the identification information and sends the multicast message to the second router;
[0026] The second router sends the multicast message to the multicast network;
[0027] The multicast network sends the data payload in the multicast message to the second node.
[0028] In one possible implementation, when the multicast network includes the multicast buffer, the multicast controller, and the link path, the multicast network sends the data payload of the multicast message to the second node, including:
[0029] The multicast controller receives the multicast message sent by the second router and sends the data payload in the multicast message to the multicast buffer;
[0030] The multicast buffer buffers the data payload;
[0031] The multicast controller sends the data payload cached in the multicast buffer to the second node through the link path.
[0032] In one possible implementation, when the multicast controller includes the message transceiver controller and the distributor...
[0033] The multicast controller receives the multicast message sent by the second router and sends the data payload in the multicast message to the multicast buffer, including: the message transceiver controller receives the multicast message sent by the second router, splits the multicast message into the data payload and control information, sends the data payload to the multicast buffer, and sends the control information to the distributor;
[0034] The method further includes: when the control information includes the identification information, the distributor determines the second node that needs to receive the data payload based on the identification information, and sends a third control signal to the message transceiver controller;
[0035] The multicast controller sends the data payload cached in the multicast buffer to the second node through the link path, including: the message transceiver controller obtains the data payload from the message buffer according to the third control signal, and sends the data payload to the determined second node through the link path.
[0036] In one possible implementation, when the multicast group's identification information includes the group identifier and the node bitmap, the allocator determines, based on the identification information, the second node that needs to receive the data payload, including:
[0037] The allocator obtains the node bitmap from the identification information and determines the second node based on the value of each bit in the node bitmap.
[0038] In one possible implementation, when the link path includes the data bus, the first control bus, and the second control bus,
[0039] Sending the third control signal to the message transceiver controller includes: after the distributor receives the second control signal sent by each second node through the second control bus, the distributor sends the third control signal to the message transceiver controller, wherein the second control signal is used to indicate that the second node is in a state of being ready to receive data;
[0040] Sending the data payload to the determined second node through the link path includes: the message transceiver controller sending the data payload to each determined second node through the data bus, and sending the first control signal to each determined second node through the first control bus, wherein the first control signal is used to instruct the second node to receive the data payload.
[0041] In one possible implementation, when the on-chip network further includes the shift register, and the identification information of the multicast group includes the group identifier and the node bitmap, the first router determines the second router in the multicast group based on the identification information, including:
[0042] The first router obtains the right shift bit from the shift register;
[0043] The first router right-shifts the identification information by the specified number of right shifts to obtain the group identifier;
[0044] The first router looks up the second router corresponding to the group identifier from the pre-stored multicast forwarding table.
[0045] In one possible implementation, the first node sends a multicast message to the first router through the adapter, including:
[0046] The first node sends a message and a message type identifier to the first router through the adapter. The message type identifier is used to indicate whether the message is a multicast message or a unicast message.
[0047] The first router receives the message and the message type identifier. When it determines that the message is a multicast message based on the message type identifier, it determines that the multicast message has been received.
[0048] The beneficial effects of the technical solutions provided in this application include at least the following:
[0049] In artificial intelligence (AI) computation, a fixed source node typically sends input data, weights, and intermediate results to multiple fixed target nodes, while the target nodes send intermediate results back to the source node or other target nodes. Therefore, the source node needs to send data to the target nodes via multicast, and the target nodes need to send data to the source node or other target nodes via unicast. Based on these characteristics of AI algorithms, an on-chip network can be designed including at least one first processing unit and at least one multicast group. The first processing unit includes a first node, an adapter, and a first router connected in sequence. The multicast group includes a multicast network, a second processing unit, and at least one third processing unit. The second processing unit includes a second node, an adapter, and a second router connected in sequence, and the third processing unit includes a second node, an adapter, and a first router connected in sequence. The second node and the second router are respectively connected to the multicast network. The first router and the second router are connected via a link. In this way, the first node acts as the source node, the second node in the multicast group acts as the target node, and the source node can send multicast messages to the second router through the first router. The second router sends the multicast messages to the multicast network, and the multicast network then sends the multicast messages to each second node. This achieves the purpose of the source node multicasting messages to the target node in the multicast group, thereby simplifying the algorithm and reducing costs. Attached Figure Description
[0050] To more clearly illustrate the technical solutions in the embodiments of this application, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0051] Figure 1 This is a schematic diagram of an on-chip network structure shown in related technologies;
[0052] Figure 2 This is a schematic diagram of the structure of an on-chip network provided in one embodiment of this application;
[0053] Figure 3 This is a schematic diagram of a multicast network structure provided in one embodiment of this application;
[0054] Figure 4 This is a schematic diagram illustrating the connection between a multicast controller and a second node according to one embodiment of this application;
[0055] Figure 5 This is a flowchart of a multicast message transmission method provided in one embodiment of this application;
[0056] Figure 6This is a flowchart of a multicast message transmission method provided in one embodiment of this application. Detailed Implementation
[0057] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the implementation methods of this application will be further described in detail below with reference to the accompanying drawings.
[0058] Please refer to Figure 2 This illustration shows a schematic diagram of an on-chip network provided in one embodiment of this application, which can be applied to a chip. The on-chip network may include at least one first processing unit 210 and at least one multicast group 220.
[0059] The first processing unit 210 includes a first node, an adapter, and a first router connected in sequence. The first node is a computing node; the adapter performs data encapsulation and decapsulation between the first node and the first router; the router forwards data according to a certain strategy; and the link is the underlying data channel. At least one first node in the on-chip network is a source node, i.e., a node that sends multicast messages to other nodes in a multicast manner.
[0060] Multicast group 220 includes multicast network 221, second processing unit 222, and at least one third processing unit 223. Second processing unit 222 includes a second node, an adapter, and a second router connected in sequence. Third processing unit 223 includes a second node, an adapter, and a first router connected in sequence. The second node and the second router are respectively connected to multicast network 221; the first router and the second router are connected via a link. The second router receives multicast packets forwarded by the first router and forwards them to multicast network 221. The second node is a computing node. The adapter performs data encapsulation and decapsulation between the second node and the second router, and between the second node and the first router. The second router and the first router forward data according to a certain strategy. The link is the underlying data channel. The second node is the target node, i.e., the node receiving the multicast packets.
[0061] The first router may include multiple ports, and one of these ports is connected to either the first or second node. The remaining ports are connected to adjacent first or second routers. For example, if the first router has five ports, it will connect to either the first or second node through one port, and the remaining four ports will connect to adjacent first or second routers in the four cardinal directions (north, south, east, and west).
[0062] Compared to the first router, the second router adds a multicast port, which is connected to the multicast network 221. When the second router receives a multicast message forwarded by the first router, it sends the multicast message to the multicast network 221 through the multicast port.
[0063] Figure 2 Taking a two-dimensional mesh network consisting of 64 processing units as an example, with processing units 1-4 forming multicast group 1 with multicast network 1, and processing units 5-8 forming multicast group 2 with multicast network 2, the second router (router1) in processing unit 1 is connected to multicast network 221 via a multicast port to send multicast messages to multicast network 1. Nodes 1-4 are second nodes connected to multicast network 1 to receive multicast messages sent by multicast network 1. Similarly, the second router (router5) in processing unit 5 is connected to multicast network 221 via a multicast port to send multicast messages to multicast network 2. Nodes 5-8 are second nodes connected to multicast network 2 to receive multicast messages sent by multicast network 2.
[0064] The first point that needs to be explained is that, Figure 2 The multicast network 221 is connected to the consecutive second processing unit 222 and third processing unit 223. In actual implementation, the multicast network 221 can also be connected to the discontinuous second processing unit 222 and third processing unit 223.
[0065] The second point that needs to be explained is that, Figure 2 The multicast network 221 is connected to multiple second nodes, and the first node can initiate multicast to some or all of the second nodes as needed. For example, if the source node is node 64, then node 64 can initiate multicast to nodes 1-4 or any combination of nodes within them, and node 64 can also initiate multicast to nodes 5-8 or any combination of nodes within them.
[0066] In this embodiment, the characteristics of unidirectional multicast in artificial intelligence computing can be combined to divide the processor's multiple processing cores into multicast groups according to the service model, thus designing multicast groups in a targeted manner. Furthermore, a dedicated multicast algorithm and multicast port are designed in the second router to forward multicast traffic only to specific nodes, resulting in higher forwarding efficiency and a simplified multicast design for the router. In this way, efficient sending and receiving of multicast packets can be achieved through a specially designed multicast group, fully utilizing the advantages of the bus topology.
[0067] In summary, the on-chip network provided in this application embodiment can be designed based on the characteristics of artificial intelligence algorithms. In this way, the first node acts as the source node, the second node in the multicast group acts as the target node, and the source node can send multicast messages to the second router through the first router. The second router sends the multicast messages to the multicast network, and the multicast network then sends the multicast messages to each second node. This achieves the purpose of the source node multicasting messages to the target node in the multicast group, thereby simplifying the algorithm and reducing costs.
[0068] Please refer to Figure 3 In an optional embodiment, the multicast network 221 includes a multicast buffer 310, a multicast controller 320, and a linkpath 330. The multicast buffer 310 is connected to the multicast controller 320, and the multicast controller 320 is connected to the second nodes via the linkpath 330. The multicast buffer 310 is used to buffer the data payload in multicast messages, and the linkpath 330 is the data link between the multicast controller 320 and each of the second nodes.
[0069] Specifically, the multicast controller 320 is used to receive multicast packets sent by the second router and send the data payload in the multicast packets to the multicast buffer 310; the multicast buffer 310 is used to cache the data payload; the multicast controller 320 is also used to send the data payload cached in the multicast buffer 310 to the second node through the link path 330.
[0070] Please refer to Figure 4 In an optional embodiment, the multicast controller 320 includes a message transceiver controller 321 and a distributor 322, with the message transceiver controller 321 connected to the distributor 322. Correspondingly, the link path 330 includes a data bus 331, a first control bus 332, and a second control bus 333. The message transceiver controller 321 is connected to the second node via the data bus 331 and the first control bus 332, and the distributor 322 is connected to the second node via the second control bus 333.
[0071] Specifically, the message transceiver controller 321 is used to send a data payload to the second node via the data bus 331 and to send a first control signal to the second node via the first control bus 332. The first control signal is used to instruct the second node to receive the data payload. The second node is used to send a second control signal to the distributor 322 via the second control bus 333. The second control signal is used to instruct the second node to be in a state ready to receive data.
[0072] like Figure 4As shown, each second node corresponds to a pair of ready-valid signals. The ready signal (i.e., the second control signal) is the output signal of the second node, which is sent to the distributor 322, indicating that the second node can receive new data. The valid signal (i.e., the first control signal) is the input signal of the second node, which is generated by the message transceiver controller 321, indicating that there is new data on the data bus 331 that needs to be received by the corresponding second node.
[0073] When the message transceiver controller 321 receives a multicast message through the multicast port of the second node, it splits the multicast message into control information and a data payload. The control information includes at least the identification information of the multicast group 220. The message transceiver controller 321 sends the control information to the distributor 322 and the data payload to the multicast buffer 310. After receiving the control information, the distributor 322 calculates the second nodes that need to receive the multicast message based on the control information. When it receives the second control signals sent by all the calculated second nodes through the second control bus 333, and determines that all the second nodes are in a ready state, it sends a third control signal to the message transceiver controller 321 to notify the message transceiver controller 321 to prepare to send the corresponding data payload. When the message transceiver controller 321 receives the third control signal sent by the distributor 322, it obtains the data payload from the multicast buffer 310 and sends the data payload to the corresponding second node on the data bus 331. At the same time, it sends the first control signal to the corresponding second node on the first control bus 332. When the second node detects the first control signal, it starts to receive the data payload on the data bus 331.
[0074] To facilitate the differentiation of multicast groups 220, an identification information can be assigned to each multicast group 220. In one possible implementation, the identification information consists of two fields: the first field represents the group identifier of the multicast group 220 in the on-chip network, and the second field represents the bitmap of nodes within the multicast group 220 that need to participate in the current multicast.
[0075] Group identifiers can be represented by at least one bit of data, and the number of bits is related to the number of multicast groups 220. For example, when there are two multicast groups 220 in the on-chip network, one bit of data can be used to distinguish them, such as 0 for multicast group 1 and 1 for multicast group 2; when there are four multicast groups 220 in the on-chip network, two bits of data can be used to distinguish them, such as 00 for multicast group 1, 01 for multicast group 2, 10 for multicast group 3 and 11 for multicast group 4.
[0076] Each bit in the node bitmap corresponds to a second node in multicast group 220, and the value of each bit indicates whether the corresponding second node participates in the current multicast. Taking the values 0 and 1 as examples, when a bit in the node bitmap is 0, it means that the corresponding second node does not participate in the current multicast; when a bit in the node bitmap is 1, it means that the corresponding second node participates in the current multicast.
[0077] by Figure 2 Taking multicast group 1 and multicast group 2 as examples, the identifier information of multicast group 1 is 0xxxx, the identifier information of multicast group 2 is 1xxxx, and the value of xxxx ranges from 0000 to 1111.
[0078] After determining the identification information, a multicast routing table needs to be set up in the first router. This multicast routing table contains the mapping relationship between the group identifier and the second router. Since the first router can only obtain the identification information from multicast packets, it also needs to process the identification information to obtain the group identifier.
[0079] In one implementation, a shift register can be set in the on-chip network, connected to the first router, and used to store the right shift bits. Thus, when the multicast group's identification information includes a group identifier and a node bitmap, and each bit in the node bitmap indicates whether a second node participates in the current multicast, the first router right-shifts the identification information by the specified right shift bit. Based on the resulting group identifier, it determines the second router in the multicast group and sends the multicast packet to the second router. The purpose of the right shift bit is to mask the node bitmap in the identification information, allowing the first router to determine the group identifier based on the identification information and then look up the corresponding second router in the multicast routing table.
[0080] by Figure 2 Taking multicast group 1 as an example, assuming the identifier information of multicast group 1 is 01111, which means the group identifier is 0, nodes 1-4 participate in the current multicast, and the right shift bit is 4, then the first router can shift 01111 four bits to the right to get the group identifier 0, and then find the corresponding second router in the multicast routing table, which is router1.
[0081] Please refer to Figure 5 This document illustrates a flowchart of a multicast message transmission method according to an embodiment of this application. This multicast message transmission method can be applied to on-chip networks. The multicast message transmission method may include:
[0082] Step 501: The first node sends a multicast message to the first router through the adapter. The multicast message includes the data payload and the identification information of the multicast group.
[0083] Step 502: The first router determines the second router in the multicast group based on the identification information and sends the multicast message to the second router.
[0084] Step 503: The second router sends the multicast message to the multicast network.
[0085] Step 504: The multicast network sends the data payload in the multicast message to the second node.
[0086] In summary, the multicast message transmission method provided in this application can be designed based on the characteristics of artificial intelligence algorithms. That is, the first node is the source node, the second node in the multicast group is the target node, and the source node can send multicast messages to the second router through the first router. The second router sends the multicast messages to the multicast network, and the multicast network then sends the multicast messages to each second node. This achieves the purpose of the source node multicasting messages to the target node in the multicast group, thereby simplifying the algorithm and reducing costs.
[0087] Please refer to Figure 6 This document illustrates a flowchart of a multicast message transmission method according to an embodiment of this application. This multicast message transmission method can be applied to a server. The multicast message transmission method may include:
[0088] Step 601: The first node sends a multicast message to the first router through the adapter. The multicast message includes the data payload and the identification information of the multicast group.
[0089] The first node can generate unicast messages or multicast messages. To make it easier to distinguish, the first node can also send a message type identifier when sending a message, so as to indicate whether the message is a unicast message or a multicast message.
[0090] Specifically, the first node sending a multicast message to the first router through the adapter may include: the first node sending a message and a message type identifier to the first router through the adapter, the message type identifier being used to indicate whether the message is a multicast message or a unicast message; the first router receiving the message and the message type identifier, and determining that the message is a multicast message based on the message type identifier, confirming that the multicast message has been received.
[0091] It should be noted that if the first router determines that the packet is a multicast packet, then proceed to step 602; if the first router determines that the packet is a unicast packet, then follow the default forwarding rules to calculate the next-hop forwarding port based on the destination node. The subsequent process can refer to the implementation process in the existing technology, and will not be elaborated here.
[0092] In addition to the data payload, the multicast message also needs to contain the multicast group's identification information. In practice, the first node can add the multicast group's identification information to the header of the multicast message, or the adapter can add the multicast group's identification information to the header of the multicast message; this embodiment does not impose any limitations.
[0093] Step 602: The first router determines the second router in the multicast group based on the identification information and sends the multicast message to the second router.
[0094] Specifically, the first router determines the second router in the multicast group based on the identification information, which may include: the first router obtaining the right shift number from the shift register; the first router shifting the identification information to the right by the right shift number to obtain the group identifier; and the first router searching for the second router corresponding to the group identifier from the pre-stored multicast forwarding table.
[0095] by Figure 2 Taking multicast group 1 as an example, assuming the identifier information of multicast group 1 is 01111, which means the group identifier is 0, nodes 1-4 participate in the current multicast, and the right shift bit is 4, then the first router can shift 01111 four bits to the right to get the group identifier 0, and then find the corresponding second router in the multicast routing table, which is router1.
[0096] After determining the second router, the first router can calculate the next forwarding port based on the destination address of the second router, and then send the multicast message to the next router. After receiving the multicast message, the next router first determines whether it is the second router based on the destination address. If it is the second router, it proceeds to step 603; otherwise, it continues to calculate the next forwarding port.
[0097] Step 603: The second router sends the multicast message to the multicast network.
[0098] The second router can send multicast packets to the multicast network through its multicast port.
[0099] Step 604: The packet transceiver controller in the multicast network receives the multicast packet sent by the second router, splits the multicast packet into a data payload and control information, sends the data payload to the multicast buffer, and sends the control information to the distributor.
[0100] Step 605: Multicast buffer buffers data payload.
[0101] Step 606: When the control information includes identification information, the distributor determines the second node that needs to receive the data payload based on the identification information and sends a third control signal to the message transceiver controller.
[0102] Specifically, the distributor determines the second node that needs to receive the data payload based on the identification information. This can include: the distributor obtaining the node bitmap in the identification information and determining the second node based on the value of each bit in the node bitmap.
[0103] For example, if the identifier is 01111, the distributor determines that nodes 1-4 all participate in the current multicast and identifies nodes 1-4 as the second node.
[0104] Specifically, sending a third control signal to the message transceiver controller may include: after the distributor receives the second control signal sent by each second node through the second control bus, the distributor sends a third control signal to the message transceiver controller, wherein the second control signal is used to indicate that the second node is in a state of being ready to receive data.
[0105] by Figure 4 For example, after the distributor receives the ready signal sent by each second node, it sends a third control signal to the message transceiver controller.
[0106] Step 607: The message transceiver controller obtains the data payload from the message buffer according to the third control signal and sends the data payload to the determined second node through the link path.
[0107] Specifically, sending the data payload to a designated second node via a link path can include: the message transceiver controller sending the data payload to each designated second node via a data bus, and sending a first control signal to each designated second node via a first control bus, the first control signal being used to instruct the second node to receive the data payload.
[0108] When the message transceiver controller receives the third control signal sent by the distributor, it retrieves the data payload from the multicast buffer, sends the data payload to the corresponding second node on the data bus, and simultaneously sends the first control signal to the corresponding second node on the first control bus. When the second node detects the first control signal, it begins to receive the data payload on the data bus.
[0109] In summary, the multicast message transmission method provided in this application can be designed based on the characteristics of artificial intelligence algorithms. That is, the first node is the source node, the second node in the multicast group is the target node, and the source node can send multicast messages to the second router through the first router. The second router sends the multicast messages to the multicast network, and the multicast network then sends the multicast messages to each second node. This achieves the purpose of the source node multicasting messages to the target node in the multicast group, thereby simplifying the algorithm and reducing costs.
[0110] Those skilled in the art will understand that all or part of the steps of the above embodiments can be implemented by hardware or by a program instructing related hardware. The program can be stored in a computer-readable storage medium, such as a read-only memory, a disk, or an optical disk.
[0111] The above description is not intended to limit the embodiments of this application. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of the embodiments of this application should be included within the protection scope of the embodiments of this application.
Claims
1. A network-on-a-chip, characterized in that, The on-chip network includes: at least one first processing unit and at least one multicast group; The first processing unit includes a first node, an adapter, and a first router connected in sequence; The multicast group includes a multicast network, a second processing unit, and at least one third processing unit. The second processing unit includes a second node, an adapter, and a second router connected in sequence. The third processing unit includes a second node, an adapter, and a first router connected in sequence. The second node and the second router in the second processing unit, and the second node in the third processing unit are respectively connected to the multicast network. The first router and the second router in the third processing unit, which is directly adjacent to the second processing unit, are connected by a link; The second router is used to receive multicast packets forwarded by the first router and forward the multicast packets to the multicast network; The multicast network includes a multicast buffer, a multicast controller, and a link path. The multicast buffer is connected to the multicast controller, and the multicast controller is connected to the second node through the link path. The multicast controller is used to receive multicast packets sent by the second router and send the data payload in the multicast packets to the multicast buffer. The multicast buffer is used to cache the data payload; The multicast controller is also used to send the data payload cached in the multicast buffer to the second node through the link path.
2. The on-chip network according to claim 1, characterized in that, The multicast controller includes a message transceiver controller and a distributor, and the message transceiver controller is connected to the distributor; The link path includes a data bus, a first control bus, and a second control bus. The message transceiver controller is connected to the second node through the data bus and the first control bus, and the distributor is connected to the second node through the second control bus. The message transceiver controller is used to send the data payload to the second node via the data bus; The message transceiver controller is used to send a first control signal to the second node through the first control bus, and the first control signal is used to instruct the second node to receive the data payload. The second node is used to send a second control signal to the distributor via the second control bus, the second control signal being used to indicate that the second node is in a state of being ready to receive data.
3. The on-chip network according to claim 1, characterized in that, The on-chip network also includes a shift register, which is connected to the first router; The shift register is used to store the number of bits to shift right; When the identification information of the multicast group includes a group identifier and a node bitmap, and each bit in the node bitmap is used to indicate whether the second node participates in the current multicast, the first router is used to right-shift the identification information by the right-shifted number, determine the second router in the multicast group based on the group identifier obtained after the right shift, and send the multicast message to the second router.
4. A multicast message transmission method, characterized in that, For use in an on-chip network as described in any one of claims 1 to 3, the method comprises: The first node sends a multicast message to the first router through the adapter. The multicast message includes a data payload and the identification information of the multicast group. The first router determines the second router in the multicast group based on the identification information and sends the multicast message to the second router; The second router sends the multicast message to the multicast network; The multicast network sends the data payload in the multicast message to the second node.
5. The method according to claim 4, characterized in that, When the multicast network includes the multicast buffer, the multicast controller, and the link path, the multicast network sends the data payload of the multicast message to the second node, including: The multicast controller receives the multicast message sent by the second router and sends the data payload in the multicast message to the multicast buffer; The multicast buffer buffers the data payload; The multicast controller sends the data payload cached in the multicast buffer to the second node through the link path.
6. The method according to claim 5, characterized in that, When the multicast controller includes a message transceiver controller and a distributor. The multicast controller receives the multicast message sent by the second router and sends the data payload in the multicast message to the multicast buffer, including: the message transceiver controller receives the multicast message sent by the second router, splits the multicast message into the data payload and control information, sends the data payload to the multicast buffer, and sends the control information to the distributor; The method further includes: when the control information includes the identification information, the distributor determines the second node that needs to receive the data payload based on the identification information, and sends a third control signal to the message transceiver controller; The multicast controller sends the data payload cached in the multicast buffer to the second node through the link path, including: the message transceiver controller obtains the data payload from the message buffer according to the third control signal, and sends the data payload to the determined second node through the link path.
7. The method according to claim 6, characterized in that, When the multicast group's identification information includes a group identifier and a node bitmap, the allocator determines the second node that needs to receive the data payload based on the identification information, including: The allocator obtains the node bitmap from the identification information and determines the second node based on the value of each bit in the node bitmap.
8. The method according to claim 6, characterized in that, When the link path includes a data bus, a first control bus, and a second control bus... Sending the third control signal to the message transceiver controller includes: after the distributor receives the second control signal sent by each second node through the second control bus, the distributor sends the third control signal to the message transceiver controller, wherein the second control signal is used to indicate that the second node is in a state of being ready to receive data; Sending the data payload to the determined second node through the link path includes: the message transceiver controller sending the data payload to each determined second node through the data bus, and sending the first control signal to each determined second node through the first control bus, wherein the first control signal is used to instruct the second node to receive the data payload.
9. The method according to claim 4, characterized in that, When the on-chip network further includes a shift register, and the identification information of the multicast group includes a group identifier and a node bitmap, the first router determines the second router in the multicast group based on the identification information, including: The first router obtains the right shift bit from the shift register; The first router right-shifts the identification information by the specified number of right shifts to obtain the group identifier; The first router looks up the second router corresponding to the group identifier from the pre-stored multicast forwarding table.
10. The method according to claim 9, characterized in that, The first node sends a multicast message to the first router through the adapter, including: The first node sends a message and a message type identifier to the first router through the adapter. The message type identifier is used to indicate whether the message is a multicast message or a unicast message. The first router receives the message and the message type identifier. When it determines that the message is a multicast message based on the message type identifier, it determines that the multicast message has been received.