Routing node, routing network system and routing method
By introducing multi-register parallel processing and polling decision mechanism into the routing node design of the mesh topology NoC architecture, the problems of connection complexity and resource waste in mesh topology in large-scale network applications are solved, achieving efficient data transmission and improved system performance.
Patent Information
- Application Number
- CN202511220739.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-08-28
- Publication Date
- 2025-11-25
- Estimated Expiration
- 2045-08-28
AI Technical Summary
In large-scale network applications, the NoC architecture with a mesh topology suffers from complex inter-node connections, high difficulty in designing data routing paths, and is prone to deadlocks and low cache utilization, leading to system performance and resource waste.
The system employs a routing node design, including multiple buffer units and a routing control unit. By setting multiple first registers and at least one second register, it enables parallel read and write operations and fully pipelined input and output within a single cycle. Combined with a polling decision mechanism, it ensures fair processing and orderly transmission of data packets.
It effectively avoids bandwidth waste, improves data transmission efficiency and overall system performance, reduces resource waste, and enhances the interconnection capabilities of large-scale on-chip systems.
Smart Images

Figure CN120743838B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of communication technology, and specifically to a routing node, a routing network system, and a routing method. Background Technology
[0002] With the rapid development of semiconductor technology, the integration and complexity of multi-core processors and systems on chips (SoCs) have been continuously increasing. Efficient network on chip (NoC) has become a key technology for improving the overall performance of the system, and its performance directly determines the efficiency of multi-core processors and SoCs in data transmission, task scheduling, and other aspects.
[0003] Among the many NoC architectures, mesh topology can effectively handle large-scale network applications. However, mesh topology has a relatively complex structure, and the design of the connection relationships between nodes and data routing paths is difficult. If not handled properly, it can easily lead to deadlock problems, resulting in data transmission blockage and system paralysis. Alternatively, it may also cause resource waste due to low cache utilization, affecting the overall cost-effectiveness of the system. Summary of the Invention
[0004] In view of the above problems, the present invention provides a routing node, a routing network system, and a routing method.
[0005] According to one aspect of the present invention, a routing node is provided, disposed in a routing network system. The routing node includes: a plurality of buffer units, each buffer unit including a plurality of first registers and at least one second register, the first registers and the second registers being used to store data packets; a plurality of receiving ports, each of the plurality of receiving ports being electrically connected to the plurality of buffer units; a plurality of output ports, each of the plurality of output ports corresponding to the plurality of receiving ports; and a routing control unit, configured to poll and determine the data packets recorded in the plurality of first registers, so as to output a first target data packet determined by the determination through the corresponding output port, and in response to receiving a second target data packet via the receiving port, to write the second target data packet into at least one of the second registers associated with the receiving port.
[0006] According to another aspect of the present invention, a routing network system is provided, comprising a plurality of routing nodes as described above.
[0007] According to another aspect of the present invention, a routing method is provided, applied to a routing node as described above, the routing method comprising: in response to a routing request, determining a plurality of data packets to be sent from a plurality of first registers included in the routing node, the routing node including a plurality of receiving ports, the plurality of first registers including a plurality of first registers corresponding to each of the plurality of receiving ports and at least one second register; polling and deciding on the data packets recorded in the plurality of first registers to determine a first target data packet corresponding to an output port, the plurality of output ports corresponding to each of the plurality of receiving ports; outputting the first target data packet determined by the decision through the corresponding output port; and in response to receiving a second target data packet via the receiving port, writing the second target data packet into at least one of the second registers associated with the receiving port. Attached Figure Description
[0008] The above-described features, other objects, and advantages of the present invention will become clearer from the following description of embodiments of the invention with reference to the accompanying drawings, in which:
[0009] Figure 1 A schematic diagram of a routing node according to an embodiment of the present invention is shown.
[0010] Figure 2 A schematic diagram of a mesh-type routing network system according to an embodiment of the present invention is shown.
[0011] Figure 3 A schematic diagram of a coordinate-based deterministic routing strategy according to an embodiment of the present invention is shown.
[0012] Figure 4 A schematic diagram of a routing node according to another embodiment of the present invention is shown.
[0013] Figure 5 A flowchart illustrating a priority-based polling decision strategy according to an embodiment of the present invention is shown.
[0014] Figure 6A A schematic diagram of a routing node according to another embodiment of the present invention is shown.
[0015] Figure 6B A schematic diagram of a routing control unit performing polling decisions according to an embodiment of the present invention is shown.
[0016] Figure 7 A schematic diagram of a routing node according to another embodiment of the present invention is shown.
[0017] Figure 8 A schematic diagram of a routing network system according to an embodiment of the present invention is shown.
[0018] Figure 9A flowchart illustrating a routing method according to an embodiment of the present invention is shown. Detailed Implementation
[0019] Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings. However, it should be understood that these descriptions are exemplary only and are not intended to limit the scope of the invention. In the following detailed description, numerous specific details are set forth to provide a thorough understanding of the embodiments of the invention for ease of explanation. However, it will be apparent that one or more embodiments may be practiced without these specific details. Furthermore, descriptions of well-known structures and techniques are omitted in the following description to avoid unnecessarily obscuring the concept of the invention.
[0020] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit the invention. The terms “comprising,” “including,” etc., as used herein indicate the presence of the stated features, steps, operations, and / or components, but do not exclude the presence or addition of one or more other features, steps, operations, or components.
[0021] All terms used herein (including technical and scientific terms) have the meanings commonly understood by those skilled in the art, unless otherwise defined. It should be noted that the terms used herein are to be interpreted in a manner consistent with the context of this specification, and not in an idealized or overly rigid way.
[0022] When using expressions such as "at least one of A, B and C", they should generally be interpreted in accordance with the meaning that is commonly understood by those skilled in the art (e.g., "a system having at least one of A, B and C" should include, but is not limited to, a system having A alone, a system having B alone, a system having C alone, a system having A and B, a system having A and C, a system having B and C, and / or a system having A, B and C, etc.).
[0023] With the rapid development of semiconductor technology, the integration and complexity of multi-core processors and systems-on-a-chip (SoCs) are continuously increasing. This technological evolution provides powerful computing support for fields such as high-performance computing and smart terminals, but it also places increasingly stringent demands on the communication efficiency between components within the system. Against this backdrop, efficient on-chip interconnect networks have become a core technology for improving overall system performance, and their performance directly determines the efficiency of multi-core processors and SoCs in areas such as data transmission and task scheduling.
[0024] In related technologies, common NoC architectures are mainly divided into three categories: ring, cross-network, and mesh. In a ring topology, all nodes are connected in series to form a closed loop via unidirectional or bidirectional links. Each node can only communicate directly with its adjacent nodes, and data needs to be transmitted hop-by-hop to reach the target node. As the network size increases, the path length for data transmission increases significantly, leading to a sharp increase in routing latency, which severely restricts the improvement of system performance.
[0025] For cross-connected network topologies, taking a cross switch as an example, a fully connected topology is used. Each input node is directly connected to all output nodes through an independent channel, forming an N×N switching matrix. Data from the source node can reach the target node directly without relaying. This characteristic gives it the advantage of a single-hop communication path, and the transmission delay is theoretically independent of the number of nodes. However, as the number of nodes increases, the number of channels required for a cross-connected network topology increases exponentially, leading to a sharp increase in chip area and power consumption. Therefore, cross-connected network topologies are only suitable for small-scale systems, such as high-end processor core interconnects or server chipsets, and are difficult to meet the dual requirements of performance and cost in large-scale network applications.
[0026] In contrast, mesh topologies have greater potential in large-scale network applications. However, in practical implementation, mesh topologies also face numerous technical challenges. For example, the structure of mesh topologies is relatively complex, and the design of connections between nodes and data routing paths is difficult. Improper handling can easily lead to deadlock problems, causing data transmission blockage and system paralysis. Furthermore, to ensure the stability and efficiency of data transmission, mesh topologies often require large-capacity caches. This not only increases hardware resource consumption but may also lead to resource waste due to low cache utilization, affecting the overall cost-effectiveness of the system.
[0027] In view of this, to further improve the performance of NoC under a mesh architecture, embodiments of the present invention provide a routing node, a routing network system, and a routing method. The routing node includes: multiple buffer units, each buffer unit including multiple first registers and at least one second register, the first and second registers being used to store data packets; multiple receiving ports, each electrically connected to a multiple buffer unit; multiple output ports, each corresponding to a multiple receiving port; and a routing control unit, used to poll and determine the data packets recorded in the multiple first registers, so as to output the determined first target data packet through the corresponding output port, and in response to receiving a second target data packet via the receiving port, to write the second target data packet into at least one second register associated with the receiving port. The routing node provided by the embodiments of the present invention adopts a fully pipelined routing mechanism. Through the setting of multiple first registers and at least one second register, parallel read and write operations and fully pipelined input and output can be realized within a single cycle of the routing node, effectively avoiding bandwidth waste and providing a new technical path for efficient interconnection of large-scale on-chip systems.
[0028] Figure 1 A schematic diagram of a routing node according to an embodiment of the present invention is shown.
[0029] like Figure 1 As shown, the routing node 100 may have multiple buffer units 10, multiple receiving ports 20, multiple output ports 30, and a routing control unit 40.
[0030] The buffer unit 10 can be a key part of the routing node 100 for temporarily storing data packets, and it includes multiple first registers 11 and at least one second register 12. Both the first registers 11 and the second register 12 have data storage functions and can receive and temporarily store data packets from the receiving port according to actual data transmission needs. Setting multiple registers can realize parallel buffering of data packets and avoid affecting the continuity of data transmission due to insufficient storage capacity or operation delay of a single register.
[0031] Optionally, the data packets received or sent by the routing node 100 can be data packets based on the CHI (Coherent Hub Interface) protocol. Multiple data packets received or sent by the routing node 100 can be of the same size, and correspondingly, the storage capacities of the first register 11 and the second register 12 can be the same. Optionally, the storage capacities of the first register 11 and the second register 12 can be equal to the size of a single data packet.
[0032] The routing node 100 has multiple receiving ports 20 that can be electrically connected to multiple buffer units 10. Each receiving port 20 can be used to receive data packets and write them to a first register 11 or a second register 12. That is, each receiving port 20 can be electrically connected to a corresponding buffer unit 10, and data packets received through that receiving port 20 can be temporarily stored in the first register 11 or the second register 12 of the buffer unit 10 corresponding to that receiving port 20.
[0033] Optionally, when writing data packets, the data packets can be written to the first register 11 of the corresponding buffer unit 10 first. If the data packets cannot be written to the first register 11, the data packets can be written to the second register 12.
[0034] The routing node 100 is equipped with multiple output ports 30, each corresponding to a multiple receiving ports 20. Specifically, if the routing node 100 is connected to another routing node, the routing node 100 can be connected to a receiving port and a corresponding output port of the other routing node through one output port 30 and a corresponding receiving port 20, respectively. The output port 30 serves as the data packet output channel, enabling accurate and efficient transmission of the first target data packet determined by the routing control unit 40 to the next routing node or the device of the current routing node.
[0035] The routing control unit 40 can be used to poll and decide on data packets recorded in multiple first registers 11. The polling method ensures that each data packet in the first register 11 has a chance to be processed, guaranteeing fairness in data processing. After making a decision, the routing control unit 40 can output the determined first target data packet through the corresponding output port, thereby achieving ordered transmission of data packets.
[0036] When routing node 100 starts operating, external data packets enter it through various receiving ports 20. Upon receiving a data packet, receiving port 20 temporarily stores it in the corresponding first register 11 or second register 12 according to preset rules. Subsequently, routing control unit 40 initiates a polling mechanism, checking and judging each data packet in the multiple first registers 11 to determine which packet has the priority for output. After determining the first target data packet, routing control unit 40 sends a command to the corresponding output port 30. Output port 30 responds to the command and accurately transmits the first target data packet, thereby effectively improving the operating efficiency of routing node 100.
[0037] While the routing control unit 40 is making polling decisions, the routing node 100 can also receive the second target data packet through the receiving port 20. At this time, the routing control unit 40 can write the received second target data packet into at least one second register 12 associated with the receiving port 20 to achieve parallel processing of data packet reception and transmission.
[0038] According to an embodiment of the present invention, in a routing network system, each routing node can be configured with multiple first registers and at least one second register corresponding to each receiving port. The data packets stored in the first register can participate in the polling decision output, and the second register can serve as a backup buffer. When the first register is making data decisions and outputting data, it receives new data packets to realize parallel operation of data packet reception and processing, thereby reducing the waste of bandwidth resources and improving the working efficiency of the routing node.
[0039] The following combination Figures 2-7 The routing nodes of the embodiments of the present invention will be described in detail below with specific examples.
[0040] In some embodiments, the first register and the second register can be arranged in a certain order. For example, multiple first registers and at least one second register can be cascaded in the form of a queue, with the multiple first registers located at the front of the queue and the at least one second register located at the back of the queue. The first register or the second register can be used for writing data packets, and the first register can be used for polling and reading data packets. That is, when polling and deciding on data packet output, only data packets stored in the first register can be considered, while data packets stored in the second register can be ignored. When writing data packets, the data packet can be selectively written to either the first register or the second register.
[0041] Optionally, after the data packets are output, if a first register still contains data packets, the data packets stored in the later-listed first registers can be written sequentially to the earlier-listed first registers according to the queue order. Then, the data packets stored in the second register can be written sequentially to the first register. If there are no data packets in the first register, the data packets stored in the second register can be written sequentially to the first register.
[0042] For example, a buffer unit may include two first registers and one second register, namely first register E1, first register E2, and second register E3. At the beginning of a routing cycle, first register E1 may store data packet D1, first register E2 may store data packet D2, and second register E3 may store data packet D3. If data packet D1 is retrieved and sent during the routing cycle, and the buffer unit receives data packet D4, then data packet D2 can be written to first register E1, data packet D3 can be written to first register E2, and data packet D4 can be written to second register E3. If both data packets D1 and D2 are retrieved and sent during the routing cycle, and the buffer unit receives data packet D5, then data packet D3 can be written to first register E1, and data packet D5 can be written to first register E2.
[0043] According to embodiments of the present invention, by arranging multiple first registers and at least one second register in sequence and writing and retrieving data in a queue-like manner, the data transmission path can be clearly defined, thereby effectively improving the data processing capability and transmission efficiency of the routing node.
[0044] For the data packets cached in each of the first registers, the routing control unit can periodically poll and judge the data packets cached in multiple first registers to determine the data packets to be output through each output port, so that the data packets can be output through the corresponding output port.
[0045] The routing control unit can periodically route and forward data packets. During each routing cycle, the data packets received by the routing node can be stored in a second register, enabling parallel processing of data packet reception and transmission. During the polling decision in each routing cycle, the routing control unit can determine multiple data packets to be sent from multiple first registers; determine the output port of the data packets based on the target node location information carried by the data packets and the current node location information of the routing node; determine the set of data packets associated with each of the multiple output ports based on their respective output ports; obtain the first target data packet by polling the set of data packets associated with the output ports based on the priorities of the multiple data packets; and send the first target data packet through the output port.
[0046] Optionally, at the beginning of the current routing cycle, the routing control unit can scan multiple first registers to determine the multiple data packets stored in these registers. At this time, the routing control unit can extract only the attribute information of these multiple data packets, including the destination node location information and priority, without performing any data packet extraction operations; that is, at the current moment, these multiple data packets remain stored in the multiple first registers. For subsequent operations involving first data packets, second data packets, etc., the operations performed by the routing control unit based on these data packets can refer to operations based on the attribute information of these data packets, which will not be elaborated upon here.
[0047] Based on the extracted destination node location information of multiple data packets, and combined with the current node location information of the current routing node, the routing control unit can determine the output port corresponding to each data packet. The method by which the routing control unit determines the output port corresponding to each data packet is related to the topology of the routing network system.
[0048] For example, if the topology of the routing network system is a ring topology, then each routing node can be electrically connected to two other routing nodes, and correspondingly, the routing node can include two output ports. The routing control unit can determine the output direction of the data packet based on the principle of the shortest transmission path, according to the target node location information and the current node location information, thereby determining the output port corresponding to the output direction as the output port corresponding to the data packet.
[0049] For example, if the topology of the routing network system is a fully connected topology, then each routing node can be electrically connected to all other routing nodes. The routing control unit can determine the corresponding target routing node based on the target node's location information. Therefore, the output port of the target routing node among the multiple output ports of that routing node is the output port corresponding to the data packet.
[0050] For example, the topology of this routing network system can be a mesh topology, where each routing node can be electrically connected to other adjacent routing nodes. The routing control unit can determine the transmission path of the data packet using various addressing methods based on the target node location information and the current node location information. The output port indicated by this transmission path is the output port corresponding to the data packet.
[0051] Optionally, in addition to various addressing algorithms, this addressing method may also include a coordinate-based deterministic routing strategy. The following description uses a grid-type topology with an array-arranged routing network system as an example to illustrate this coordinate-based deterministic routing strategy. In this routing network system topology, the routing network system may include multiple routing nodes arranged in an array. Each routing node's multiple output ports may include at least one first output port, at least one second output port, and at least one third output port. The first output port can be used to connect to a first routing node in the routing network system along a first direction, the second output port is used to connect to a second routing node in the routing network system along a second direction, and the third output port is used to connect to the functional units included in the routing node.
[0052] Figure 2 A schematic diagram of a mesh-type routing network system according to an embodiment of the present invention is shown.
[0053] like Figure 2 As shown, the routing network system may include routing node XP00, routing node XP01, routing node XP02, routing node XP03, routing node XP04, routing node XP05, routing node XP06, routing node XP07 and routing node XP08.
[0054] Taking routing node XP04 as the current routing node, the first direction can be represented as east-west, and the second direction can be represented as north-south. Among the multiple output ports included in routing node XP04, at least one first output port can include an east-facing output port and a west-facing output port; at least one second output port can include a south-facing output port and a north-facing output port; and at least one third output port can include an output port connected to functional unit Dev1 and an output port connected to functional unit Dev2. Correspondingly, at least one first routing node connected to routing node XP04 along the first direction can include routing node XP05 electrically connected to the east-facing output port of routing node XP04 and routing node XP03 electrically connected to the west-facing output port of routing node XP04. At least one second routing node connected to routing node XP04 along the second direction can include routing node XP07 electrically connected to the south-facing output port of routing node XP04 and routing node XP01 electrically connected to the north-facing output port of routing node XP04.
[0055] In the topology of this routing network system, the node location information of a routing node can be represented as the coordinates of that routing node. Correspondingly, the current node location information of a routing node can be represented as the coordinates of routing node XP04, and the target node location information can be represented as the coordinates of the target routing node. If the target routing node is routing node XP00, then the target node location information can be represented as the coordinates of routing node XP00.
[0056] A coordinate-based deterministic routing strategy can be expressed as determining the output port first along a first direction, and then along a second direction. Specifically, the target node location information includes first and second sub-information, and the current node location information includes third and fourth sub-information. The first and third sub-information are related to the first direction, and the second and fourth sub-information are related to the second direction. The routing control unit can be used to determine the output port of the data packet from at least one first output port based on the first and third sub-information when the first and third sub-information are inconsistent; to determine the output port of the data packet from at least one second output port based on the second and fourth sub-information when the first and third sub-information are consistent, but the second and fourth sub-information are inconsistent; and to determine the output port of the data packet from at least one third output port based on the target node location information when the target node location information is consistent with the current node location information.
[0057] Figure 3 A schematic diagram of a coordinate-based deterministic routing strategy according to an embodiment of the present invention is shown.
[0058] like Figure 3 As shown, the process by which the routing control unit executes the coordinate-based deterministic routing strategy may include operations S301 to S306.
[0059] In operation S301, based on the current node location information of the current routing node, the first sub-information and the second sub-information are obtained, and based on the target node location information carried by the first target data packet, the third sub-information and the fourth sub-information are obtained.
[0060] In operation S302, determine whether the first sub-information is consistent with the third sub-information. If the first sub-information is consistent with the third sub-information, execute operation S303. If the first sub-information is inconsistent with the third sub-information, execute operation S305.
[0061] In operation S303, determine whether the second sub-information is consistent with the fourth sub-information. If the second sub-information is consistent with the fourth sub-information, execute operation S304. If the second sub-information is inconsistent with the fourth sub-information, execute operation S306.
[0062] In operation S304, the output port of the first target data packet is determined from at least one third output port.
[0063] In operation S305, the output port of the first target data packet is determined from at least one first output port.
[0064] In operation S306, the output port of the first target data packet is determined from at least one second output port.
[0065] For example Figure 2 Taking the routing network system shown as an example, the node location information of a routing node can include east-west coordinates and north-south coordinates. The east-west coordinates of the current routing node can be represented as the third sub-information, and the north-south coordinates as the fourth sub-information; the east-west coordinates of the target routing node can be represented as the first sub-information, and the north-south coordinates of the target routing node can be represented as the second sub-information. The east-west coordinates of a routing node closer to the east can be greater than those of a routing node closer to the west, and the north-south coordinates of a routing node closer to the north can be greater than those of a routing node closer to the south.
[0066] Combination such as Figure 3 The routing operation flow shown can be represented by the coordinate-based deterministic routing strategy as follows: After determining the target routing node based on the data packet, the east-west coordinate values are compared first. If the east-west coordinate value of the target routing node is greater than that of the current routing node, the output port corresponding to the data packet is determined to be an east-bound output port; if the east-west coordinate value of the target routing node is less than that of the current routing node, the output port corresponding to the data packet is determined to be a west-bound output port. Next, if the east-west coordinate value of the target routing node is equal to that of the current routing node, the north-south coordinate values are compared. If the north-south coordinate value of the target routing node is greater than that of the current routing node, the output port corresponding to the data packet is determined to be a north-bound output port; if the north-south coordinate value of the target routing node is less than that of the current routing node, the output port corresponding to the data packet is determined to be a south-bound output port. Finally, if the coordinates of the target routing node are the same as the coordinates of the current routing node, the data packet needs to be sent to the functional unit of the current routing node for processing. Based on the indication information contained in the target node location information, a functional unit can be selected from functional units Dev1 and Dev2 as the processing unit for the data packet. Correspondingly, the output port connected to the selected functional unit is the output port corresponding to the data packet.
[0067] For example, if the routing control unit belongs to routing node XP04, and the destination routing node for the data packet A1 to be sent is routing node XP00, then since the east-west coordinates of routing node XP00 are less than those of routing node XP04, the output port corresponding to data packet A1 can be determined to be the west-facing output port.
[0068] For example, if the routing control unit belongs to routing node XP07, and the destination routing node for data packet A2 is routing node XP01, then since the east-west coordinates of routing node XP01 are equal to those of routing node XP07, and the north-south coordinates of routing node XP01 are greater than those of routing node XP07, the output port corresponding to data packet A2 can be determined to be the northbound output port.
[0069] After determining the output port for each data packet, the number of data packets corresponding to each output port can be 0, 1, or more. If there are 0 data packets corresponding to an output port, it can be determined that the output port will not participate in the data output of the current routing cycle. If there is 1 data packet corresponding to an output port, it can be determined that the corresponding data packet is the first destination data packet for that output port. If there are multiple data packets corresponding to an output port, the routing control unit can use a priority-based round-robin decision method to determine the first destination data packet for that output port from among the multiple data packets.
[0070] Optionally, for each output port, after routing determination, a set of data packets associated with that output port can be determined. If the set of data packets includes multiple first data packets, the routing control unit can determine at least one second data packet from the multiple first data packets included in the set of data packets associated with the output port based on the priority of the data packets; and determine a first target data packet from the at least one second data packet according to a preset polling order and based on the receiving port associated with each of the at least one second data packet.
[0071] The priority of a data packet can be determined by the priority information extracted from the first register by the routing control unit. This priority information can be represented as a binary number, and the number of bits in this binary number can be related to the number of priority levels. For example, if four priority levels are set, then either a 2-bit binary number or a 4-bit binary number can be used to represent the corresponding priority information; there is no limitation on this.
[0072] When determining the first target data packet, the routing control unit can prioritize the first data packet with higher priority. If there are multiple first data packets with higher priority, the first target data packet can be selected from these multiple first data packets through a round-robin method.
[0073] Specifically, a target priority can be determined based on the individual priorities of multiple first data packets. This target priority can be represented as the highest priority level among the individual priorities of the multiple first data packets. Then, the number of first data packets with this target priority can be determined. If the number of first data packets with this target priority is 1, then this first data packet can be determined as the first target data packet. If the number of first data packets with this target priority is determined to be multiple, then at least one second data packet can be obtained by selecting the first data packet with the target priority from among the multiple first data packets.
[0074] For at least one determined second data packet, the number of second data packets associated with each receiving port can be determined sequentially according to the order of multiple receiving ports represented by a preset polling order. The order of these multiple receiving ports can be predetermined and is not limited here. For example, in... Figure 2 In the routing network system shown, the multiple receiving ports are arranged in a preset polling order as follows: eastward receiving port, westward receiving port, northward receiving port, southward receiving port, receiving port connected to functional unit Dev1, and receiving port connected to functional unit Dev2.
[0075] During the polling process, if the number of second data packets related to the target receiving port is greater than zero, the first target data packet can be determined from the second data packets related to the target receiving port. That is, it can first be determined whether there is a second data packet related to the eastward receiving port. If it is determined that there is a second data packet, the eastward receiving port can be used as the target receiving port; if it is determined that there is no corresponding second data packet, it can continue to be determined whether there is a second data packet related to the westward receiving port, and so on, until the target receiving port is determined.
[0076] Optionally, after determining the target receiving port in each poll, the selected receiving port can be recorded to obtain the polling position information. In the next poll, the polling can start from the position of the target receiving port, thereby avoiding the problem that low-priority data packets cannot be decided and output when the bandwidth utilization is high.
[0077] Optionally, the polling position information corresponding to different priorities of each receiving port can be maintained independently. That is, the polling position information of each priority of each receiving port can be stored separately with the receiving port and priority as the key items.
[0078] Optionally, each polling position information can be stored in a separate register, or a register can be used to store the polling position information of each priority of each receiving port, without limitation.
[0079] Figure 4 A schematic diagram of a routing node according to another embodiment of the present invention is shown.
[0080] like Figure 4 As shown, the routing node 400 may also include a third register 50, which is electrically connected to the routing control unit 40. The third register 50 is used to store polling position information with output port and priority as associated items. The polling position information is used to indicate the target receiving port determined in the previous round of polling decision.
[0081] For example, if multiple output ports B include output port B1 and output port B2, and multiple priorities C include priority C1, priority C2 and priority C3, then the third register 50 can be used to store the polling position information corresponding to output port B1 and priority C1, the polling position information corresponding to output port B1 and priority C2, the polling position information corresponding to output port B1 and priority C3, the polling position information corresponding to output port B2 and priority C1, the polling position information corresponding to output port B2 and priority C2, and the polling position information corresponding to output port B2 and priority C3.
[0082] When the routing control unit 40 performs polling decision, after determining at least one second data packet, it can read the target polling position information from the third register based on the priority and output port corresponding to the at least one second data packet, and determine the first target data packet from the at least one second data packet based on the target polling position information and the preset polling order, according to the receiving port associated with each of the at least one second data packet.
[0083] Specifically, the routing control unit 40 can take the receiving port indicated by the target polling location information as the starting point, and determine the number of second data packets related to the receiving port in sequence according to the order of multiple receiving ports represented by the preset polling order; and if the number of second data packets related to the target receiving port is determined to be greater than zero, determine the first target data packet from the second data packets related to the target receiving port.
[0084] Optionally, after determining the first target data packet, the corresponding polling position information can be updated to update the start position of the next polling, so as to avoid the problem that some data packets cannot be judged and output due to the setting of priority and polling order.
[0085] Specifically, the routing control unit 40 is also used to generate and send updated polling position information to the third register 50 based on the target receiving port when the first target data packet is obtained through polling decision; the third register 50 is also used to replace the target polling position information with the updated polling position information.
[0086] For example, multiple receiving ports E arranged in a preset polling order can be represented as receiving port E1, receiving port E2, and receiving port E3. When outputting a data packet with priority C1 at output port 1, the routing control unit can extract the corresponding target polling position information from the third register. If this is represented as receiving port E2, then during polling, it can start from receiving port E2 and determine whether there are any data packets related to receiving port E2. If it can be determined that there are data packets related to receiving port E1 when polling reaches receiving port E1, then the updated polling position information can be represented as receiving port E1. The routing control unit can use this updated polling position information to replace the target polling position information stored in the third register in order to determine the starting position of the next polling.
[0087] Figure 5 A flowchart illustrating a priority-based polling decision strategy according to an embodiment of the present invention is shown.
[0088] like Figure 5 As shown, the process of the routing control unit executing the priority-based polling decision strategy may include operations S501 to S510. In this embodiment, the priorities set include priority H, priority M, and priority L.
[0089] In operation S501, multiple first data packets associated with the target output port are identified.
[0090] In operation S502, it is determined whether a first data packet with priority H exists. If it exists, operation S503 is executed; otherwise, operation S504 is executed.
[0091] In operation S503, at least one second data packet with priority H is determined from a plurality of first data packets.
[0092] In operation S504, it is determined whether a first data packet with priority M exists. If it exists, operation S505 is executed; otherwise, operation S506 is executed.
[0093] In operation S505, at least one second data packet with priority M is determined from a plurality of first data packets.
[0094] In operation S506, the plurality of first data packets are determined to be the at least one second data packet.
[0095] After completing operations S503, S505, or S506, operation S507 can be performed.
[0096] When operating the S507, the target polling position information is obtained based on the corresponding priority and target output port.
[0097] In operation S508, starting from the receiving port indicated by the target polling position information, multiple receiving ports are polled sequentially.
[0098] In operation S509, it is determined whether a second data packet related to the receiving port exists. If yes, operation S510 is executed; otherwise, operation S509 is continued based on the next receiving port.
[0099] In operation S510, the second data packet is identified as the first target data packet.
[0100] According to an embodiment of the present invention, after the data packet set is divided, the routing control unit performs a round-robin decision based on the priority of each data packet from the data packet set corresponding to each output port, and finally obtains the first target data packet. During the round-robin decision process, the routing control unit checks the data packets in the data packet set in turn, and selects the data packet with higher priority as the first target data packet based on the priority of the data packets. At the same time, the use of the round-robin mechanism also ensures that each data packet has a fair transmission opportunity when the priorities are the same, avoiding the situation where a data packet is put on hold for a long time.
[0101] In some embodiments, multiple data packets associated with the same receive port may need to be output through the same output port. If packet selection is still based on priority, lower-priority packets may be difficult to select and occupy the first register for a long time, resulting in wasted resources. Optionally, for multiple data packets associated with the same receive port, packet selection can also be based on the writing order of the multiple data packets before arbitration based on priority. For example, a data packet written later can be suspended and locked to prevent its output until an earlier-written data packet is retrieved from the first register, at which point the lock can be released and the data packet can be allowed to be output.
[0102] Optionally, the routing control unit may select at least one third data packet from multiple first data packets based on the receiving port associated with each of the multiple first data packets; determine at least one second data packet from at least one third data packet based on the priority of the data packets; and determine a first target data packet from at least one second data packet according to a preset polling order and based on the receiving port associated with each of the at least one second data packet.
[0103] Specifically, when the receiving ports associated with the multiple first data packets are the same, at least one first data packet is filtered out from the multiple first data packets based on the register order of the first registers associated with the multiple first data packets to obtain at least one third data packet.
[0104] The following is Figure 2 Taking a routing node as an example, the routing decision process of the routing control unit in this embodiment of the invention will be explained.
[0105] Figure 6A A schematic diagram of a routing node according to another embodiment of the present invention is shown.
[0106] like Figure 6A As shown, the routing node can include 6 sets of receiving ports and output ports, namely receiving port E and output port E connected to another routing node in the east, receiving port W and output port W connected to another routing node in the west, receiving port N and output port N connected to another routing node in the north, receiving port S and output port S connected to another routing node in the south, receiving port P0 and output port P0 connected to a functional unit, and receiving port P1 and output port P1 connected to another functional unit.
[0107] Each receiving port can be configured with three registers as buffer space, namely register Entry0, register Entry1, and register Entry2. These three registers can be arranged in a queue in the order of register Entry0, register Entry1, and register Entry2. Among them, register Entry0 and register Entry1 can participate in the reading of data packets in each routing cycle.
[0108] The priority of data packets can be set to four levels: super high priority (HH), high priority (H), medium priority (M), and low priority (L).
[0109] Figure 6B A schematic diagram of a routing control unit performing polling decisions according to an embodiment of the present invention is shown.
[0110] like Figure 6B As shown in Table 1, the priorities of data packets stored in registers Entry0 and Entry1 at each receiving port during a routing cycle, and the output port of each data packet, can be determined as follows. Figure 6BAccording to Table 1, the priority of data packet P1_0 in register Entry0 at receiving port P1 is HH, and the output port of data packet P1_0 is output port W; the priority of data packet P1_1 in register Entry1 at receiving port P1 is L, and the output port of data packet P1_1 is output port P0; the priority of data packet P0_0 in register Entry0 at receiving port P0 is M, and the output port of data packet P0_0 is output port W; the priority of data packet P0_1 in register Entry1 at receiving port P0 is L, and the output port of data packet P0_1 is output port P1; the priority of data packet S0 in register Entry0 at receiving port S is M, and the output port of data packet S0 is output port P0; the priority of data packet S1 in register Entry1 at receiving port S is HH, and the output port of data packet S1 is HH. The output port of receiver port 1 is output port N; the priority of data packet N0 in register Entry0 at receiver port N is HH, and the output port of data packet N0 is output port E; the priority of data packet N1 in register Entry1 at receiver port N is H, and the output port of data packet N1 is output port E; the priority of data packet W0 in register Entry0 at receiver port W is H, and the output port of data packet W0 is output port E; the priority of data packet W1 in register Entry1 at receiver port W is HH, and the output port of data packet W1 is output port E; the priority of data packet E0 in register Entry0 at receiver port E is HH, and the output port of data packet E0 is output port W; the priority of data packet E1 in register Entry1 at receiver port E is HH, and the output port of data packet E1 is output port W.
[0111] Table 1
[0112]
[0113] In the current routing cycle, based on Table 1, it can be determined that the data packets related to output port P1 include data packet P0_1 from register Entry1 at receiving port P0; the data packets related to output port P0 include data packet S0 from register Entry0 at receiving port S and data packet P1_1 from register Entry1 at receiving port P1; the data packets related to output port S are empty, i.e., there are no data packets related to output port S; the data packets related to output port N include data packet S1 from register Entry1 at receiving port S; the data packets related to output port W include data packets from... The data packets P1_0 from register Entry0 at receive port P1, P0_0 from register Entry0 at receive port P0, E0 from register Entry0 at receive port E, and E1 from register Entry1 at receive port E; the data packets associated with output port E include data packets N0 from register Entry0 at receive port N, N1 from register Entry1 at receive port N, W0 from register Entry0 at receive port W, and W1 from register Entry1 at receive port W.
[0114] For output port P1, since only the relevant data packet P0_1 exists, the data packet P0_1 can be output through output port P1.
[0115] For output port P0, since the priority of data packet S0 is M and the priority of data packet P1_1 is L, the priority of data packet S0 is greater than the priority of data packet P1_1. Therefore, data packet S0 can be output through output port P0.
[0116] For output port S, since there are no related data packets, no data packets are output at output port S.
[0117] For output port N, since only the relevant data packet S1 exists, the data packet S1 can be output through output port N.
[0118] For output port W, there are four related data packets: P1_0, P0_0, E0, and E1. Since data packets E0 and E1 both originate from registers associated with receiving port E, E1 can be locked, meaning it will not participate in the output of the current routing cycle. Data packets E0 and P1_0 have higher priorities than P0_0, and E0 has the same priority as P1_0. Therefore, a round-robin approach can be used to determine the data packet to be output in the current routing cycle. Following the round-robin order, data packet E0 is first in the list; therefore, it can be output through output port W.
[0119] For output port E, there are four related data packets: N0, N1, W0, and W1. Since data packets N0 and N1 both originate from registers associated with receiving port N, data packet N1 can be locked. Similarly, since data packets W0 and W1 both originate from registers associated with receiving port W, data packet W1 can be locked. For data packets N0 and W0, since data packet N0 has a higher priority than data packet W0, data packet N0 can be output through output port E.
[0120] If the routing node does not receive any data packets in subsequent routing cycles, the data packets output through each output port in subsequent routing cycles can be as shown in Table 2.
[0121] Table 2
[0122]
[0123] For output port P0, in the second routing cycle, the only data packet associated with it is data packet P1_1. Therefore, in the second routing cycle, data packet P1_1 can be output through output port P0.
[0124] For output port W, in the second routing cycle, packet E1 is unlocked. Packet E1 has the same priority as packet P1_0. Following the polling order, polling can continue starting from the receiving port E. Packet E1 is earlier in the polling order, therefore, packet E1 can be output through output port W in the second routing cycle. In the third routing cycle, packet P1_0 has a higher priority than packet P0_0, therefore, packet P1_0 can be output through output port W in the third routing cycle. In the fourth routing cycle, packet P0_0 can be output through output port W.
[0125] For output port E, in the second routing cycle, packet N1 is unlocked. Packet N1 and packet W0 have the same priority. According to the round-robin order, packet W0 is earlier in the sequence, so packet W0 can be output through output port E in the second routing cycle. In the third routing cycle, packet W1 is unlocked. Packet W1 has a higher priority than packet N1, so packet W1 can be output through output port E in the third routing cycle. In the fourth routing cycle, packet N1 can be output through output port E.
[0126] Optionally, when a data packet needs to be output, the routing control unit is further configured to send a trigger signal to the buffer unit when it is determined that a first target data packet is to be output through the target output port. The trigger signal is related to the first register storing the first target data packet. The buffer unit is further configured to trigger a read operation of the first register storing the first target data packet in response to the trigger signal, so that the routing control unit can read the first target data packet and output the first target data packet through the target output port.
[0127] Optionally, to reduce packet loss, a resource management mechanism can be set up for the receiving and output ports of the routing node. Each output port can be configured with a resource count. When sending a packet through the output port, the resource must be consumed before the packet can be sent. After the receiver corresponding to the output port has finished processing the received packet, it can return the resource to the output port.
[0128] Figure 7 A schematic diagram of a routing node according to another embodiment of the present invention is shown.
[0129] like Figure 7 As shown, the routing node 700 may also include a fourth register 60. The fourth register 60 may be used to store the resource reserves of each of the multiple receive ports 20.
[0130] The initial value of the resource margin for each receive port 20 can be determined based on the number of the first register 11 and the second register 12. Accordingly, the routing control unit 40 can initialize the resource margin of each of the multiple receive ports 20 based on the number of the first register 11 and the second register 12 in response to an initialization request.
[0131] When sending a data packet through a certain output port 30, the routing control unit 40 can determine the resource margin of the corresponding output port 30, and send the first target data packet through the corresponding output port if the resource margin is greater than the preset resource amount.
[0132] Optionally, the preset resource amount can be set to 0, and this is not limited here.
[0133] The routing control unit 40 is also configured to, in response to sending a first target data packet through the corresponding output port 30, decrease the resource reserve of the corresponding output port 30 based on a preset step size, and send the updated resource reserve to the fourth register 60; the fourth register 60 is also configured to replace the resource reserve of the corresponding output port 30 with the updated resource reserve.
[0134] Optionally, the preset step size can be 1, which is not limited here.
[0135] The routing control unit 40 is also used to receive feedback signals, and in response to the feedback signals, increment the resource margin of the corresponding output port 30 based on a preset step size, and send the updated resource margin to the fourth register 60; the fourth register 60 is also used to replace the resource margin of the corresponding output port 30 with the updated resource margin.
[0136] For example, before sending the first target data packet, the resource margin of the corresponding output port 30 is 1, allowing data packet transmission through this output port 30. After sending the first target data packet, the resource margin of the corresponding output port 30 can be set to 0, and the resource margin value recorded in the fourth register 60 can be modified accordingly. At this time, the receiver corresponding to this output port 30 can assume that there is no data packet receiving capability, and continuing to send data packets would result in data packet loss. Therefore, the corresponding output port 30 cannot continue to send data packets. The receiver corresponding to this output port 30 can return a feedback signal to the routing node. After receiving this feedback signal, the routing node can know that the receiver has completed the processing of a data packet. At this time, the resource margin of the corresponding output port 30 can be set to 1, and the resource margin value recorded in the fourth register 60 can be modified accordingly, so that data packet transmission can continue through this output port 30.
[0137] According to an embodiment of the present invention, by setting the resource margin, the data packet sending process and the interaction process of whether or not data packets can be sent can be decoupled, thereby improving the forwarding efficiency of data packets and effectively avoiding data packet loss.
[0138] Figure 8 A schematic diagram of a routing network system according to an embodiment of the present invention is shown.
[0139] like Figure 8 As shown, the routing network system may include multiple routing nodes, which can be any one of the routing nodes 100, 400, and 700 as described above, without limitation. These multiple routing nodes can be configured into the routing network system based on a grid topology of any shape, without limitation.
[0140] Figure 9 A flowchart illustrating a routing method according to an embodiment of the present invention is shown.
[0141] like Figure 9 As shown, this method can be applied to the routing node as described above, and the method includes operations S910 to S940.
[0142] In operation S910, in response to a routing request, multiple data packets to be sent are determined from multiple first registers included in the routing node. The routing node includes multiple receiving ports, and the multiple first registers include multiple first registers corresponding to each of the multiple receiving ports.
[0143] During operation of S920, the data packets recorded in multiple first registers are polled and judged to determine the first target data packet corresponding to the output port. Each of the multiple output ports corresponds to a different receiving port.
[0144] When operating the S930, the first target data packet determined by the decision is output through the corresponding output port.
[0145] In operation S940, in response to receiving a second target data packet via the receiving port, the second target data packet is written into at least one second register associated with the receiving port.
[0146] Those skilled in the art will understand that the features described in the various embodiments of the present invention can be combined and / or combined in various ways, even if such combinations or combinations are not explicitly described in the present invention. In particular, the features described in the various embodiments of the present invention can be combined and / or combined in various ways without departing from the spirit and teachings of the present invention. All such combinations and / or combinations fall within the scope of the present invention.
[0147] The embodiments of the present invention have been described above. However, these embodiments are merely illustrative and not intended to limit the scope of the invention. Although various embodiments have been described above, this does not mean that the measures in the various embodiments cannot be used advantageously in combination. Various substitutions and modifications can be made by those skilled in the art without departing from the scope of the invention, and all such substitutions and modifications should fall within the scope of the invention.
Claims
1. A routing node, characterized in that, The routing node is configured within a routing network system, which is a NoC system based on a mesh topology, and includes: Multiple buffer units, each buffer unit including multiple first registers and at least one second register, the first registers and the second registers being used to store data packets, the first registers and the second registers being arranged in a cascaded queue, the first registers being located at the front of the queue and being used for polling decision output, the second registers being located at the rear of the queue and being used for receiving data packets to achieve parallel reading and writing; Multiple receiving ports, each of which is electrically connected to a plurality of buffer units; Multiple output ports, each of which corresponds to a plurality of receiving ports; and The routing control unit is configured to poll and determine the data packets recorded in a plurality of the first registers so as to output the determined first target data packet through the corresponding output port, and in response to receiving the second target data packet through the receiving port, write the second target data packet into at least one of the second registers associated with the receiving port.
2. The routing node according to claim 1, characterized in that, The routing control unit is used for: Multiple data packets to be sent are determined from multiple of the first registers; Based on the target node location information carried by the data packet and the current node location information of the routing node, the output port of the data packet is determined; Based on the respective output ports of the multiple data packets, determine the set of data packets associated with each of the multiple output ports; Based on the priority of each of the multiple data packets, the first target data packet is obtained by polling and determining from the set of data packets associated with the output port; as well as The first target data packet is sent through the output port.
3. The routing node according to claim 2, characterized in that, The routing control unit is specifically used for: Based on the priority of the data packets, at least one second data packet is determined from a plurality of first data packets included in the data packet set associated with the output port; and According to a preset polling order, the first target data packet is determined from at least one second data packet based on the receiving port associated with each of the at least one second data packet.
4. The routing node according to claim 3, characterized in that, The routing control unit is specifically used for: Determine the target priority based on the respective priorities of the multiple first data packets; and From a plurality of first data packets, a first data packet with the priority of the target priority is determined to obtain at least one second data packet.
5. The routing node according to claim 3, characterized in that, The routing control unit is specifically used for: The number of second data packets associated with each receiving port is determined sequentially according to the order of the multiple receiving ports represented by the preset polling order; and If the number of second data packets associated with the target receiving port is determined to be greater than zero, the first target data packet is determined from the second data packets associated with the target receiving port.
6. The routing node according to claim 3, characterized in that, The routing node further includes a third register, which is electrically connected to the routing control unit. The third register is used to store polling location information with the receiving port and the priority as associated items. The polling location information is used to indicate the target receiving port determined in the previous round of polling decision.
7. The routing node according to claim 6, characterized in that, The routing control unit is specifically used for: Based on the priority and output port corresponding to at least one of the second data packets, the target polling position information is read from the third register; and Based on the target polling location information and the preset polling order, the first target data packet is determined from at least one second data packet according to the receiving port associated with each of the at least one second data packet.
8. The routing node according to claim 7, characterized in that, The routing control unit is specifically used for: Starting from the receiving port indicated by the target polling location information, the number of second data packets associated with the receiving port is determined sequentially according to the order of the multiple receiving ports represented by the preset polling order. as well as If the number of second data packets associated with the target receiving port is determined to be greater than zero, the first target data packet is determined from the second data packets associated with the target receiving port.
9. The routing node according to claim 7, characterized in that, The routing control unit is also configured to, upon obtaining the first target data packet through polling decision, generate and send updated polling location information to the third register based on the target receiving port; The third register is also used to replace the target polling position information with the updated polling position information.
10. The routing node according to claim 3, characterized in that, The routing control unit is also used for: Based on the receiving port associated with each of the plurality of first data packets, at least one third data packet is obtained by filtering from the plurality of first data packets; Based on the priority of the data packets, at least one second data packet is determined from at least one third data packet; as well as According to a preset polling order, the first target data packet is determined from at least one second data packet based on the receiving port associated with each of the at least one second data packet.
11. The routing node according to claim 10, characterized in that, The routing control unit is also used for: In the case that the receiving ports associated with each of the plurality of first data packets are the same, at least one of the first data packets is filtered out from the plurality of first data packets based on the register order of the first registers associated with each of the plurality of first data packets to obtain at least one of the third data packets.
12. The routing node according to claim 2, characterized in that, The plurality of output ports include at least one first output port, at least one second output port, and at least one third output port; Wherein, the first output port is used to connect to the first routing node of the routing network system along the first direction; The second output port is used to connect to a second routing node of the routing network system along the second direction; The third output port is used to connect to the functional units included in the routing node.
13. The routing node according to claim 12, characterized in that, The target node location information includes a first sub-information and a second sub-information, and the current node location information includes a third sub-information and a fourth sub-information. The first sub-information and the third sub-information are related to the first direction, and the second sub-information and the fourth sub-information are related to the second direction. The routing control unit is also used for: In the event that the first sub-information is inconsistent with the third sub-information, the output port of the data packet is determined from at least one of the first output ports based on the first sub-information and the third sub-information. If the first sub-information is consistent with the third sub-information, and the second sub-information is inconsistent with the fourth sub-information, the output port of the data packet is determined from at least one of the second output ports based on the second sub-information and the fourth sub-information. as well as If the target node location information is consistent with the current node location information, the output port of the data packet is determined from at least one of the third output ports based on the target node location information.
14. The routing node according to claim 1, characterized in that, The routing control unit is further configured to send a trigger signal to the buffer unit when it is determined that a first target data packet is output through the target output port, the trigger signal being associated with a first register storing the first target data packet; The buffer unit is also configured to respond to the trigger signal to trigger a read operation of the first register storing the first target data packet, so that the routing control unit can read the first target data packet and output the first target data packet through the target output port.
15. The routing node according to claim 1, characterized in that, The routing node also includes a fourth register, which is used to store the resource reserves of each of the multiple receiving ports; The routing control unit is further configured to, in response to an initialization request, initialize the resource margin of each of the plurality of receiving ports based on the number of the first register and the second register.
16. The routing node according to claim 15, characterized in that, The routing control unit is also used for: Determine the resource availability of the corresponding output port; and If the remaining resource quantity is greater than the preset resource quantity, the first target data packet is sent through the corresponding output port.
17. The routing node according to claim 16, characterized in that, The routing control unit is also configured to, in response to sending the first target data packet through the corresponding output port, decrement the resource reserve of the corresponding output port based on a preset step size, and send the updated resource reserve to the fourth register; The fourth register is also used to replace the resource reserve of the corresponding output port with the updated resource reserve.
18. The routing node according to claim 16, characterized in that, The routing control unit is also used to receive feedback signals, and in response to the feedback signals, increment the resource balance of the corresponding output port based on a preset step size, and send the updated resource balance to the fourth register. The fourth register is also used to replace the resource reserve of the corresponding output port with the updated resource reserve.
19. A routing network system, characterized in that, It includes multiple routing nodes as described in any one of claims 1 to 18.
20. A routing method, characterized in that, Applied to a routing node as described in any one of claims 1 to 18, the routing method includes: In response to a routing request, multiple data packets to be sent are determined from multiple first registers included in the routing node, wherein the routing node includes multiple receiving ports, and the multiple first registers include multiple first registers corresponding to each of the multiple receiving ports; The data packets recorded in the plurality of first registers are polled and judged to determine the first target data packet corresponding to the output port, wherein the plurality of output ports correspond to the plurality of receiving ports respectively; The first target data packet, as determined by the judgment, will be output through the corresponding output port; and In response to receiving a second target data packet via the receiving port, the second target data packet is written into at least one second register associated with the receiving port.
Citation Information
Patent Citations
Network-on-chip routing optimization method, device and equipment and readable storage medium
CN110958177A
Routing method in computing device for data flow architecture
CN114760241A