Data routing system, data routing method and device, electronic equipment and medium

By adopting a data routing system with a "丰" (Feng) shaped topology in the on-chip network, the problems of deadlock in ring topology and complex arbitration logic in mesh topology are solved, enabling flexible device mounting and improving link utilization and bus efficiency.

CN121864666APending Publication Date: 2026-04-14BEIJING INSTITUTE OF OPEN SOURCE CHIP
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-12-30
Publication Date
2026-04-14

AI Technical Summary

Technical Problem

Existing on-chip network data routing systems are prone to deadlock in ring topologies, while mesh topologies suffer from complex arbitration logic and low bus utilization during data interaction.

Method used

A data routing system is adopted, including a main path and several branch paths, forming a topology structure of 丰 (Feng). The main path and the branch paths correspond one-to-one, and the branch paths are not connected to each other. The branch paths are connected through the main routing node. The main routing node and the sub-routing nodes on the branch paths are used for device connection and data transmission is carried out through the main path.

Benefits of technology

It enables flexible data transmission without deadlock, improves link utilization, reduces wiring area and logic levels, simplifies routing arbitration logic, and enhances bus utilization and data transmission distance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121864666A_ABST
    Figure CN121864666A_ABST
Patent Text Reader

Abstract

The invention provides a data routing system, a data routing method and device, electronic equipment and a computer readable storage medium, and relates to the technical field of network-on-chip, and the method comprises a main path and a plurality of branch paths; the main path comprises a plurality of main routing nodes and a plurality of first sub routing nodes; the branch paths are connected with the main path through the main routing node, and the plurality of branch paths are not connected with one another; the main routing nodes and the branch paths are in one-to-one correspondence; the branch path comprises a plurality of second sub routing nodes; and the first sub-routing node and the second sub-routing node are used for connecting equipment. The data transmission system has the advantages that the structure can be flexibly adjusted, devices with different areas can be mounted, and the deadlock problem is not prone to occurring in the message transmission process.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of on-chip network technology, and in particular to a data routing system, data routing method, apparatus, electronic device and medium. Background Technology

[0002] Nodes in a Network-on-Chip (NoC) can interact with each other through a data routing system.

[0003] In related technologies, nodes in an on-chip network can interact with each other through a data routing system with a ring or mesh topology.

[0004] However, data routing systems with ring topology are prone to deadlock during data interaction, while data routing systems with mesh topology suffer from problems such as complex arbitration logic and low bus utilization during data interaction. Summary of the Invention

[0005] This application provides a data routing system, data routing method, apparatus, electronic device, and medium to solve at least one of the aforementioned problems in the prior art.

[0006] In a first aspect, embodiments of this application provide a data routing system, including a main path and several branch paths; the main path includes several main routing nodes and several first sub-routing nodes; the branch paths are connected to the main path through the main routing nodes, and the several branch paths are not connected to each other; the main routing nodes and the branch paths correspond one-to-one; the branch paths include several second sub-routing nodes; the first sub-routing nodes and the second sub-routing nodes are used to connect devices.

[0007] In some embodiments of this application, the second sub-routing node is used to acquire a message to be transmitted, and when the destination routing node and the second sub-routing node that acquired the message to be transmitted are not on the same branch path, the second sub-routing node sends the message to be transmitted to the main routing node; the main routing node is used to send the message to be transmitted to the branch path where the destination routing node is located through the main path.

[0008] In some embodiments of this application, the main path includes several data channels, each of which has a corresponding routing buffer; the main routing node is used to receive the message to be transmitted and determine a target data channel from the several data channels, so as to transmit the message to be transmitted to the destination routing node through the target data channel; wherein, the amount of free resources in the routing buffer corresponding to the target data channel is greater than or equal to the amount of free resources in the routing buffers corresponding to other data channels.

[0009] In some embodiments of this application, the second sub-routing node is further configured to transmit the message to be transmitted to the destination routing node by acquiring the branch path of the message to be transmitted when the destination routing node and the second sub-routing node that acquired the message to be transmitted are located on the same branch path.

[0010] In some embodiments of this application, at least some of the second sub-routing nodes located at the edge of the branch path are also used to connect to memory; at least some of the second sub-routing nodes located between the edge of the branch path and the main path are also used to connect to a shared cache.

[0011] In some embodiments of this application, the first number of devices connected to the second sub-routing node located at the edge of the branch path is less than or equal to 3; the second number of devices connected to the second sub-routing node located at the non-edge of the branch path is less than or equal to 2.

[0012] Secondly, embodiments of this application provide a data routing method applied to the data routing system described in any one of the first aspects. The method includes: obtaining a message to be transmitted through a second sub-routing node; and, if it is determined through the second sub-routing node that the destination routing node and the second sub-routing node that obtained the message to be transmitted are not on the same branch path, sending the message to be transmitted to the main routing node, so that the main routing node can send the message to be transmitted to the branch path where the destination routing node is located through the main path; wherein the destination routing node includes: the first sub-routing node, or other second sub-routing nodes other than the one that sends the message to be transmitted to the main routing node.

[0013] Thirdly, embodiments of this application also provide a data routing apparatus applied to the data routing system described in any one of the first aspects. The apparatus includes: a message acquisition module, configured to acquire a message to be transmitted through a second sub-routing node; and a message transmission module, configured to, when it is determined through the second sub-routing node that the destination routing node and the second sub-routing node that acquired the message to be transmitted are not on the same branch path, send the message to be transmitted to the main routing node, so that the main routing node can send the message to be transmitted to the branch path where the destination routing node is located through the main path; wherein the destination routing node includes: the first sub-routing node, or other second sub-routing nodes other than the one that sends the message to be transmitted to the main routing node.

[0014] Fourthly, embodiments of this application also provide an electronic device, including a processor; Memory used to store the processor's executable instructions; Wherein, the processor is configured to execute the instructions to implement the method of the second aspect.

[0015] In a fifth aspect, an embodiment of the present application further provides a computer-readable storage medium. When the instructions in the computer-readable storage medium are executed by a processor of an electronic device, the electronic device is enabled to execute the method of the second aspect.

[0016] In the embodiment of the present application, the data routing system includes a main path and several branch paths. The main path includes several main routing nodes and several first sub-routing nodes. The branch paths are connected to the main path through the main routing nodes, and the several branch paths are not connected to each other, and the main routing nodes and the branch paths correspond one by one. The data routing system presents a "rich" - shaped topology structure, and the devices are connected to the first sub-routing nodes or the second sub-routing nodes. Thus, if it is necessary to adjust the connection position of the device, only the position of the first sub-routing node or the second sub-routing node needs to be adjusted, without adjusting the position of the branch path or the main path. Additionally, the distance between the branch paths can be adjusted by adjusting the position of the main routing node to make the distance between the branch paths match the area size of the mounted device. For example, if the area of the device to be mounted is relatively large, the vertical distance between adjacent branch paths can be adjusted to be larger by adjusting the position of the main routing node to meet the space requirements for device mounting. Compared with the Mesh topology, the flexibility of adjusting the device connection position is improved. In the data routing system of this embodiment, the distance between the sub-routing nodes (the first sub-routing nodes and the second sub-routing nodes) can be made to match the area size of the mounted device by adjusting the position of the first sub-routing node or the second sub-routing node, so as to meet the mounting requirements of devices of different area sizes in the data transmission system. In the data routing system of this embodiment, the branch paths of the data transmission system are only connected to the main path and are not connected to each other. Therefore, the edges of the branch paths are not connected to other branch paths. Compared with the Mesh topology structure where other paths are connected at the edges of the paths, the bandwidth utilization rate at the edges of the branch paths in this embodiment is high, and the channel routing at the edges is reduced, and the routing area is decreased. Compared with the Ring topology structure, based on the data routing system of this embodiment, the packets can turn arbitrarily, with the characteristic of flexible turning, and there will be no phenomenon of circling in the data transmission process, nor will there be a deadlock problem in packet transmission. In the Mesh topology, in addition to connecting devices, the routing nodes on the path also need to be connected to other paths. Therefore, a large number of routing arbitrations are required during packet transmission, and the bus utilization rate is low. Compared with the Mesh topology, this embodiment has fewer routing arbitrations, fewer logic levels, and simple arbitration logic, which is beneficial to the backend wiring and the improvement of the overall chip main frequency, and has a high bus utilization rate.

[0017] The above description is only an overview of the technical solution of this application. In order to better understand the technical means of this application and to implement it in accordance with the contents of the specification, and to make the above and other objects, features and advantages of this application more obvious and understandable, the following are specific embodiments of this application. Attached Figure Description

[0018] To more clearly illustrate the technical solutions in the embodiments of the present invention, 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 the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0019] Figure 1 This is a schematic diagram illustrating an application scenario of a data routing system provided in an embodiment of this application; Figure 2 This is a schematic diagram of the structure of a data routing system provided in an embodiment of this application; Figure 3 This is a schematic diagram of another data routing system provided in an embodiment of this application; Figure 4 This is a schematic diagram of the resource queue of the routing buffer of each data channel in the main path provided in an embodiment of this application; Figure 5 This is a schematic diagram of another data routing system provided in an embodiment of this application; Figure 6 This is a flowchart illustrating the steps of a data routing method provided in an embodiment of this application; Figure 7 This is a block diagram of a data routing device provided in an embodiment of the present invention; Figure 8 This is a block diagram of an electronic device provided in an embodiment of the present invention; Figure 9 This is a block diagram of another electronic device according to another embodiment of the present invention. Detailed Implementation

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

[0021] The terms "first," "second," etc., used in the specification and claims of this application are used to distinguish similar objects and not to describe a specific order or sequence. It should be understood that such data can be interchanged where appropriate so that embodiments of this application can be implemented in orders other than those illustrated or described herein, and the objects distinguished by "first," "second," etc., are generally of the same class and are not limited in number; for example, a first object can be one or more. Furthermore, the term "and / or" in the specification and claims is used to describe the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A alone, A and B simultaneously, and B alone. The character " / " generally indicates that the preceding and following related objects are in an "or" relationship. In the embodiments of this application, the term "multiple" refers to two or more, and other quantifiers are similar.

[0022] Figure 1 This is a schematic diagram illustrating an application scenario of a data routing system provided in an embodiment of this application. (Refer to...) Figure 1 The data routing system in this embodiment can be applied to on-chip networks, and devices can interact with each other through the on-chip network data routing system.

[0023] In related technologies, the data transmission paths in a data routing system constitute a Ring topology or a Mesh topology, and data interaction between devices is carried out through a data transmission system with a Ring topology or a Mesh topology.

[0024] In a ring topology, data packets travel from the device to the bus and arbitrate only with messages transmitted on the bus and messages from other devices connected to the router. However, ring bus routers only have two transmission paths: clockwise and counter-clockwise. This lack of flexibility in routing and the limited diversity of data transmission paths, coupled with poor scalability, hinders the flexible construction of an entire chip's internet network. Furthermore, ring buses are prone to deadlocks during data exchange, requiring detailed analysis of dependencies on the links during data routing. Deadlock refers to the phenomenon where the entire on-chip network stops transmitting data packets due to mutually dependent resources being occupied by each other.

[0025] In a mesh network topology, mesh bus routers offer four packet transmission directions, providing flexibility, allowing for more complex routing algorithms, and strong scalability, making them suitable for large-scale on-chip network interconnection. However, in a mesh topology, packets originating from the device's mesh bus need to arbitrate with packets from the four directions and other devices connected to the router. This arbitration logic is complex; because packets must consider this complex arbitration logic during transmission, the transmission distance is shorter at the same clock frequency. Furthermore, routing channels in a mesh topology occupy a significant amount of cabling area, but their actual utilization is often low, and cabling from multiple directions accumulates inside the router, easily causing congestion in the cabling layout and hindering bandwidth expansion.

[0026] To address the problems in related technologies, this application provides a data routing system, which includes a main path and several branch paths. The main path includes several main routing nodes and several first sub-routing nodes. The branch paths are connected to the main path through the main routing nodes, and the branch paths are not connected to each other. The main routing nodes and the branch paths correspond one-to-one. Each branch path includes several second sub-routing nodes. The first sub-routing nodes and the second sub-routing nodes are used to connect devices.

[0027] The data routing system provided in this application will be described in detail below with reference to the accompanying drawings and specific embodiments.

[0028] Figure 2 This is a schematic diagram of the structure of a data routing system provided in an embodiment of this application, as shown below. Figure 2 As shown, the data routing system includes a main path 101 and several branch paths 102. The main path 101 includes several main routing nodes 201 and several first sub-routing nodes 202.

[0029] Branch path 102 is connected to main path 101 through main routing node 202, and several branch paths 102 are not connected to each other; the main routing node and the branch path correspond one-to-one.

[0030] Branch path 102 includes several second sub-routing nodes 203. The first and second sub-routing nodes are used to connect devices.

[0031] It should be noted that, in order to clearly illustrate the structure of the data routing system, only some of the main routing nodes and sub-routing nodes are shown in the diagram; the others are not shown.

[0032] In this embodiment, the main routing node on the main path is used to connect branch paths. The main routing nodes and the branch paths correspond one by one. That is, each branch path has a connection point with the main path, and this connection point is the main routing node where the main path and the branch path intersect. The main path includes several first sub-routing nodes, and the branch path includes several second sub-routing nodes. The first sub-routing nodes and the second sub-routing nodes are used to connect devices. Based on this data routing system, the branch path is only connected to one main routing node on the main path, and the second sub-routing nodes on the branch path are only used to connect devices, rather than to connect other branch paths. The branch paths are not connected to each other. The data routing system in this embodiment constitutes a cross-shaped topology structure. Based on this, the device can be hung on the second sub-routing node of the branch path or the first sub-routing node of the main path. Therefore, if the hanging position of the device needs to be adjusted, only the position of the second sub-routing node needs to be adjusted, including changing the position of the original sub-routing node, and adding or deleting the second sub-routing node based on the original sub-routing node, without adjusting the position of the branch path. In addition, the distance between branch paths can be adjusted by adjusting the position of the main routing node, so that the distance between branch paths is adapted to the area size of the mounted device. For example, if the area of the device to be mounted is relatively large, the vertical distance between adjacent branch paths can be adjusted to be larger by adjusting the position of the main routing node to meet the space requirements for device mounting. Compared with the Mesh topology, the flexibility of adjusting the hanging position of the device is improved.

[0033] For example, the main path includes multiple routing nodes. In addition to the main routing nodes connected to the branch paths, the routing nodes can also include second sub-routing nodes used to connect devices. Further, the second sub-routing nodes can hang multiple device interfaces, and the positions of hanging the device interfaces can be flexibly adjusted on the branch path or the main path. The main routing node is used for the message intersection of the branch path and the main path, and the main routing node cannot be used to hang devices. Based on the main path, branch path, main routing node and second sub-routing node of this embodiment, a cross-shaped topology structure is formed, and the cross-shaped topology structure has the characteristics of flexible and variable structure.

[0034] In a Mesh topology, multiple paths are connected to each other, dividing the entire data transmission system into a grid-like structure. Moreover, the routing nodes at the edges of each path are also connected to paths. In this structure, the positions where devices are mounted on the bus are fixed. Specifically, devices are fixedly mounted on the routing nodes at the intersections of paths. Since each path is connected to others, after the Mesh topology design is completed, the positions of the paths are fixed, and it is difficult to adjust the size of the grid areas (Harden) divided by the paths. Therefore, in a Mesh topology, only devices with areas adapted to the size of the grid areas can be mounted, and it is difficult to adjust the positions where the devices are mounted. That is, the Mesh topology has the problem of low flexibility. In addition, in a Mesh topology, each path is connected to others, and the routing nodes at the edges of the paths are also connected to other paths, which results in a relatively large channel area occupied by the wiring in the entire topology structure and a low data transmission utilization rate of the links.

[0035] In practical applications, terminal devices require a flexible and naturally deadlock-free on-chip network topology, and the resource utilization rate of the secondary bus needs to be as high as possible to save the area of the entire chip. In addition, the industrial community requires that the NoC can transmit data packets over a longer distance at a fixed main frequency, thereby reducing the number of inserted beats in the wiring and the cost. Therefore, it is necessary to reduce the combinational logic depth between routers as much as possible.

[0036] In the data routing system of this embodiment, since the branch paths in the data routing system of this embodiment are not connected to each other and do not divide the on-chip network into fixed-size areas (Harden), therefore, only by increasing the number of secondary sub-routing nodes and main routing nodes can more devices be connected, and only by adjusting the positions of the secondary sub-routing nodes or the main routing nodes can the data routing system be adapted to the device area. Since the data transmission system of this embodiment can be flexibly adjusted, the area sizes of the devices mounted on the data transmission system are very flexible. In the related art, it is difficult to construct a suitable grid division in the Mesh topology for interconnecting heterogeneous (i.e., different area sizes) on-chip devices, while the data transmission system with a cross-shaped topology in this embodiment can solve this problem in the related art.

[0037] For example, even if the data transmission system has been designed, if the area of the device to be mounted is relatively small, the distance between the second sub-routing nodes can be adjusted to be smaller, or second sub-routing nodes can be added based on the original; if the device area is relatively large, the distance between the second sub-routing nodes can be set to be larger, or second sub-routing nodes can be reduced based on the original. The entire adjustment process only involves the adjustment of the second sub-routing nodes, without involving the adjustment of the branch paths or the main path. The data transmission system has the advantage of being flexibly adjustable. In other words, in this embodiment, by adjusting the positions of the second sub-routing nodes, the distance between the second sub-routing nodes can be adapted to the area of the device mounted by the second sub-routing nodes, so as to meet the mounting requirements of the data transmission system for devices of different area sizes.

[0038] Furthermore, in the data transmission system of this embodiment, the branch paths are only connected to the main path, and the branch paths are not connected to each other, which can solve the problem that the wiring in the Mesh topology is complex, resulting in a large channel area occupied by the wiring. Through the separated layout of the main path and the branch paths, the cross nodes can be concentrated and mounted on the main path. In the Mesh bus, the devices are mounted at fixed positions, and it is not convenient to adjust the size of the area (harden) and the mounting position. In the cross-shaped topology, the area size can be flexibly adjusted, and the mounting position of the device can also be flexibly adjusted.

[0039] In one embodiment, under the condition of the same chip area, the data transmission structure system of this application can save 20% to 30% of the channel area compared with the Mesh topology.

[0040] In the Mesh topology, other paths are also connected at the edges of the paths, which makes it necessary to have channel wiring on the edges of the Mesh topology. In this embodiment, however, the branch paths of the data transmission system are only connected to the main path, which has a higher bandwidth utilization rate than the edges of the Mesh topology, and directly reduces the channel wiring on the edges, reducing the wiring area. For example, in one embodiment, compared with the Mesh topology, this embodiment can reduce the wiring area by more than 50%. Relatively speaking, for the entire chip, the wiring area of the channels in the Mesh topology accounts for 20% to 30% of the entire chip area, while the cross-shaped topology only accounts for about 10%.

[0041] The cross-shaped network topology of this embodiment has the characteristic of high link utilization rate. Specifically, the utilization rate of the Mesh topology is not high, while the cross-shaped topology integrates the channels, which can improve the link utilization rate on the branch paths and the main path, and this way is more conducive to the architect's analysis and evaluation of the data flow of the entire chip. In addition, compared with the Mesh topology, the bus of this embodiment is more concentrated, which is convenient for the architect to allocate device bandwidth and congestion backpressure.

[0042] The data routing system of the present application has a cross-shaped on-chip network topology for terminal devices. Based on this embodiment, it can flexibly construct a deadlock-free on-chip network topology for terminals, improve link utilization, reduce routing area and logic levels. The cross-shaped network topology divides the routing into sub-routes for attaching devices and a main route for the intersection of the main path and branch paths; both the sub-routes and the main route have relatively low logic levels and can perform longer-distance routing.

[0043] The data routing system in the embodiment of the present application consists of horizontal branch paths and vertical main paths to form a cross-shaped structure. Since the branch paths are not directly connected to each other, not only can the number of second sub-route nodes on the branch paths be flexibly adjusted according to requirements, but also the number of branch paths can be flexibly adjusted according to requirements. In addition, the bandwidth of the main path can also be flexibly adjusted according to requirements.

[0044] In some embodiments of the present application, the second sub-route node is used to obtain the to-be-transmitted message, and in the case that the destination route node and the second sub-route node that obtains the to-be-transmitted message are not on the same branch path, the to-be-transmitted message is sent to the main route node; the main route node is used to send the to-be-transmitted message to the branch path where the destination route node is located through the main path.

[0045] Exemplarily, the destination route node includes other second sub-route nodes that send messages other than the to-be-transmitted message to the main route node.

[0046] The node where the main path and the branch path interact is the main route node, and the node where the device and the branch path interact is the second sub-route node. Among them, the branch path is used to transmit messages between the second sub-route nodes on the branch path; the main path is used to converge and distribute the messages transmitted from the branch path to the main path.

[0047] The messages of all branch paths are converged and distributed on the main path. Therefore, the main path needs to have a higher bandwidth for parallel transmission of messages. The essence of the large bandwidth of the main path is to integrate multiple channels and perform convergence and distribution at the main route node. The bandwidth requirement of the branch path is lower than that of the main path, and the area occupied by the channel of the branch path is also smaller than that of the main path. Here, the channel refers to the area occupied by the routing in the physical implementation at the back end.

[0048] A router is set at the route node. The router is a basic component of the on-chip network NoC and is used for temporary storage and transfer of data. Refer to Figure 2Within the same branch path, the Y-coordinates of the second sub-routing nodes are the same; however, the Y-coordinates of the second sub-routing nodes in different branch paths are different. In the main path, the X-coordinates of the main routing nodes are the same. For example, a second sub-routing node determines whether the Y-coordinate of the destination routing node used to receive the transmitted message is the same as its own. If they are the same, the destination routing node and the second sub-routing node are on the same branch path; if they are different, the destination routing node and the sub-routing node are not on the same branch path.

[0049] Reference Figure 3 Based on the data routing system of this embodiment, the second sub-routing nodes in different branch paths interact with each other through the main path.

[0050] In a Ring topology, deadlock can easily occur due to data transmission loops. In a Mesh topology, all paths are interconnected. When a routing node at the connection point receives a packet, it needs to determine whether the packet should be transmitted to the path it is connected to or to the device it is connected to. This can result in a large number of arbitration directions, a large number of arbitration logic levels, and low bus utilization.

[0051] In this embodiment, the second sub-routing node is used to acquire the message to be transmitted. If the destination routing node and the second sub-routing node acquiring the message are not on the same branch path, the second sub-routing node transmits the message to the main routing node. The main routing node then transmits the message to the branch path where the destination routing node is located via the main path. Compared to Mesh topologies, where routing nodes need to perform route arbitration on multiple paths and devices connecting them, this embodiment has fewer route arbitrations and fewer logic levels, which is beneficial for backend routing and improving the overall chip frequency. Compared to Ring topologies, this embodiment does not have the looping phenomenon during data transmission, thus avoiding message transmission deadlock problems. Furthermore, messages in this embodiment can be redirected arbitrarily, exhibiting flexible redirection capabilities.

[0052] In some embodiments of this application, the main path includes several data channels, each data channel having a corresponding routing buffer; the main routing node is used to receive the message to be transmitted and determine a target data channel from the several data channels to transmit the message to be transmitted through the target data channel; wherein, the amount of free resources in the routing buffer corresponding to the target data channel is greater than or equal to the amount of free resources in the routing buffers corresponding to other data channels.

[0053] Since all messages from branch paths are converged and distributed on the main path, the main path needs higher bandwidth to accommodate parallel message transmission. The high bandwidth of the main path is achieved by integrating multiple channels and converging and distributing them at the main routing node.

[0054] Furthermore, after receiving the message to be transmitted from the branch path, the main routing node dynamically selects the data channel corresponding to the FIFO with a smaller number of existing messages (i.e., a larger amount of idle resources) based on the number of existing messages in the First In First Out (FIFO) routing buffer of each data channel, and determines it as the target data channel.

[0055] The rules governing message transmission within a routing network determine the message's route. A routing buffer is a logical functional block where messages are temporarily stored in the routing hardware. The routing arbiter is a logical functional block that determines, according to certain rules, which of multiple data channel slice transmission requests should be authorized to output the channel. In this embodiment, the target data channel can be determined from multiple data channels using the routing arbiter of the primary routing node.

[0056] For example, refer to Figure 4 The number of packets in different routing buffers 301 varies. The credits for empty slots in the FIFO are dynamically allocated to different branch paths; the more empty slots, the more credits are allocated. A credit acts as a flow control mechanism, reflecting the number of empty slots in the FIFO and determining how many packets can be sent and received. Each time a FIFO receives a packet, it consumes one credit, and correspondingly, the number of empty slots decreases by one. The routing arbitrator can select the target data channel with the most available resources from multiple data channels based on the number of credits allocated to each FIFO.

[0057] exist Figure 4 In the illustrated embodiment, the master routing node can dynamically map packets to be transmitted on branch paths to target data channels on the master path based on the amount of free resources in the routing buffers corresponding to each data channel in the master path. Specifically, the master routing node receives packets to be transmitted from branch paths and, based on the number of packets already in the FIFOs corresponding to each data channel, dynamically selects the data channel corresponding to the FIFO with more free resources and determines it as the target data channel.

[0058] In this embodiment, the main routing node is configured to receive the to-be-transmitted packet and determine a target data channel from several data channels to transmit the to-be-transmitted packet through the target data channel; wherein, the amount of free resources in the routing buffer corresponding to the target data channel is greater than or equal to the amount of free resources in the routing buffers corresponding to other data channels. Dynamically determining the target data channel based on the main routing node and transmitting packets through the target data channel can ensure the reliability of packet transmission and reduce data transmission latency.

[0059] In some embodiments of the present application, at least some of the second sub-routing nodes located at the edge of the branch path are further configured to connect to the memory; at least some of the second sub-routing nodes located between the edge of the branch path and the main path are further configured to connect to the shared cache.

[0060] Exemplarily, the cache can be a level-3 cache, and the level-3 cache is a shared cache, specifically a static random access memory (SRAM), and the memory interface is a DDR memory interface (Double Data Rate Physical Layer, DDR PHY).

[0061] For example, referring to Figure 5 , the branch path includes a first branch path 103 and a second branch path 104; the second sub-routing nodes at the edge of the first branch path 103 are used to connect to the memory, that is, the second sub-routing nodes on the left and right sides of the cross-shaped topology connect to the DDR memory structure. Among them, in addition to the memory, the second sub-routing nodes at the edge of the first branch path 103 can also connect to external devices (not shown in the figure). The second sub-routing nodes that are not at the edge of the first branch path 103 connect to the level-3 cache, and in addition to the level-3 cache, they can also connect to external devices (not shown in the figure). Further, the second branch path 104 is used to connect to a device (PCIE), and the device can be a peripheral such as a GPU or a USB. The main path and the branch path form a cross-shaped architecture with high bus utilization.

[0062] Figure 5 The bandwidth of the main path in Figure 5 The cross-shaped topology shown can save more than 30% of the channel area compared with the Mesh topology network and can improve the utilization rate of the link.

[0063] For example, the second sub-routing node obtains a message to be transmitted, which includes an access request; for instance, the access request could be from an external device or a Central Processing Unit Cluster (CPUCluster). Based on the routing strategy of this embodiment, the message to be transmitted is sent to a cache. The cache accesses memory from the memory interfaces on both sides of the branch path and then feeds back the data read from memory to the second sub-routing node. Based on this data transmission strategy, a regular on-chip data stream can be formed.

[0064] In this embodiment, at least some of the second sub-routing nodes located at the edge of the branch path are also used to connect to memory; at least some of the second sub-routing nodes located between the edge of the branch path and the main path are also used to connect to a shared cache. Correspondingly, when a second sub-routing node receives a message from a device, and the message includes an access request, the second sub-routing node sends the access request to the second sub-routing node connected to the shared cache, so that the shared cache can retrieve data from memory and feed the data back to the device that issued the access request through the second sub-routing node connected to the shared cache. Based on this embodiment, a regular on-chip data stream can be formed.

[0065] Furthermore, refer to Figure 5 The Peripheral Component Interconnect Express Physical Layer (PCIE PHY) connects to external devices. Access requests from external devices or CPU clusters are sent through the main path to the branch path where the shared cache is located, and then access the L3 level shared cache. The L3 level shared cache then accesses the DDR on both sides through the branch path and transmits the data to the device or CPU cluster that sent the access request, thus forming a regular on-chip data stream. Its bandwidth and congestion backpressure are easy to analyze and adjust.

[0066] In some embodiments of this application, the first number of devices connected to the second sub-routing node located at the edge of the branch path is less than or equal to 3; the second number of devices connected to the second sub-routing node located at the non-edge of the branch path is less than or equal to 2.

[0067] For example, the main path includes multiple routing nodes, including a main routing node connected to a branch path and second sub-routing nodes that can connect to devices. The main routing node is used for message exchange between the branch path and the main path and cannot be used to connect devices. When a second sub-routing node connects to three devices, or two devices, it becomes a four-in, four-out routing node. Each second sub-routing node located outside the path edge can connect to a maximum of two device interfaces, while a second sub-routing node located at the path edge can connect to a maximum of three device interfaces. This structure ensures a low logical depth of the second sub-routing nodes in the data transmission path, allowing for longer routing distances between second sub-routing nodes within a single cycle, thus ensuring low latency in communication between devices.

[0068] In this embodiment, the first number of devices connected to the second sub-routing node located at the edge of the branch path is less than or equal to 3; the second number of devices connected to the second sub-routing node located at the non-edge of the branch path is less than or equal to 2. Based on this, when the second sub-routing node performs data routing, it needs to perform routing analysis in a maximum of four directions. Specifically, the second sub-routing node at the edge needs to perform routing analysis on a maximum of 3 devices and their respective branch paths, while the second sub-routing node at the non-edge needs to perform routing analysis on a maximum of 2 devices and the branch paths on both sides of the second sub-routing node. Based on this embodiment, the routing logic of the second sub-routing node is simple, the routing efficiency is high, and the communication latency between the second sub-routing nodes can be reduced.

[0069] In some embodiments of this application, the second sub-routing node is further configured to transmit the message to be transmitted to the destination routing node by acquiring the branch path of the message to be transmitted when the destination routing node and the second sub-routing node that acquired the message to be transmitted are located on the same branch path.

[0070] In this embodiment, when the destination routing node and the second sub-routing node belong to the same branch route, the message to be transmitted is transmitted to the destination routing node through the branch path where the destination routing node is located. This enables fast transmission of the message to be transmitted and reduces transmission latency.

[0071] like Figure 6 As shown, this embodiment also provides a data routing method, which is applied to the data routing system described in any of the above embodiments. The method may include the following steps: Step S1: Obtain the message to be transmitted through the second sub-routing node; Step S2: If, after determining through the second sub-routing node that the destination routing node and the second sub-routing node that obtained the message to be transmitted are not on the same branch path, the message to be transmitted is sent to the main routing node, so that the main routing node can send the message to be transmitted to the branch path where the destination routing node is located through the main path.

[0072] The destination routing node includes: the first sub-routing node, or other second sub-routing nodes that send the message to be transmitted to the main routing node.

[0073] Based on the data transmission system applied for, deadlock is less likely to occur during message transmission. Specifically, for the second sub-routing node on a branch path, the router will determine whether the destination routing node of the current message is on the current branch path. For example, refer to... Figure 1 If the Y-coordinate of the destination node and the Y-coordinate of the current routing node are the same (e.g., both are 2), then it can be determined that the destination routing node of the current packet is on the current branch path; that is, the destination routing node and the second sub-routing node of the current packet are on the same branch path. If the Y-coordinate of the destination node and the Y-coordinate of the current routing node are not the same, then it can be determined that the destination routing node and the second sub-routing node of the current packet are not on the same branch path. If the destination routing node of the current packet is on the current branch path, the packet will only travel left or right along the X-axis and reach the destination routing node directly after the corresponding number of hops. If the destination routing node of the current packet is not on the current branch path, the packet will be transmitted directly to the main path. For example, packets on the west side of the main path (the side with an X-axis coordinate smaller than the main path's X-axis coordinate) will be sent directly east, and packets on the east side of the main path (the side with an X-axis coordinate larger than the main path's X-axis coordinate) will be sent directly west.

[0074] For example, after receiving a message to be transmitted, the main routing node on the main path will perform a full judgment. First, it will determine the Y-axis coordinate of the destination routing node, so that messages whose destination routing node is not in this branch path will be transmitted to its corresponding branch path. Then, it will determine the X-axis coordinate of the destination routing node, so that after the message reaches the destination branch path, it will be transmitted from the main path to the corresponding destination routing node on the branch path, and after the corresponding number of routing hops, it will reach the destination routing node.

[0075] The data transmission method based on this embodiment will not result in deadlock. Compared to loop topology or mesh network topology, all routing turns are only formed on the main path. Therefore, all path loops will lack the leftmost or rightmost loop path, thus preventing the formation of ring-shaped link dependencies in the H-shaped topology and avoiding deadlock.

[0076] In this embodiment, the second sub-routing node only needs to determine whether the destination routing node and the second sub-routing node are on the same branch path. If it is determined that the destination routing node and the second sub-routing node are not on the same branch path, the second sub-routing node transmits the packet to be transmitted to the main routing node, so that the main routing node can transmit the packet to be transmitted to the branch path where the destination routing node is located. The second sub-routing node transmits the packet to be transmitted to the main routing node when they are not on the same branch path. This simplifies the routing logic and avoids the deadlock problem caused by closed-loop data transmission.

[0077] For example, in step 102, the primary routing node transmits the message to be transmitted to the branch path where the destination routing node is located, including sub-steps A1 to A2: Sub-step A1: Receive the message to be transmitted through the main routing node; Sub-step A2 involves determining a target data channel from among several data channels through the main routing node, and transmitting the message to be transmitted through the target data channel. The amount of free resources in the routing buffer corresponding to the target data channel is greater than or equal to the amount of free resources in the routing buffer corresponding to other data channels.

[0078] The connection method between NoC nodes in the on-chip network determines the physical layout and links of the on-chip network nodes and channels. The transmission rules of data packets in the routing network determine the transmission route of the data packets. In this embodiment, the main routing node determines the target data channel with a relatively large amount of idle resources from among several data channels, and the message to be transmitted is transmitted through the target data channel, which can ensure the reliability of data transmission and reduce data transmission latency.

[0079] refer to Figure 7 This illustrates a data routing device provided in an embodiment of this application. The data routing device is applied to the data routing system described in any of the foregoing claims. The data routing device 40 includes: The message acquisition module 401 is used to acquire the message to be transmitted through the second sub-routing node; The message transmission module 402 is configured to send the message to be transmitted to the main routing node when it is determined through the second sub-routing node that the destination routing node and the second sub-routing node that obtained the message to be transmitted are not on the same branch path, so that the main routing node can send the message to be transmitted to the branch path where the destination routing node is located through the main path; wherein, the destination routing node includes: the first sub-routing node, or other second sub-routing nodes other than the one that sent the message to be transmitted to the main routing node.

[0080] For example, when the main path includes several data channels and each data channel has a corresponding routing buffer, the device 40 further includes: a receiving module, configured to receive the message to be transmitted through the main routing node; and a determining module, configured to determine a target data channel from the several data channels through the main routing node, and transmit the message to be transmitted through the target data channel; wherein the amount of free resources in the routing buffer corresponding to the target data channel is greater than or equal to the amount of free resources in the routing buffers corresponding to other data channels.

[0081] In summary, in this embodiment, the second sub-routing node only needs to determine whether the destination routing node and the second sub-routing node are on the same branch path. If it is determined that the destination routing node and the second sub-routing node are not on the same branch path, the second sub-routing node transmits the message to be transmitted to the main routing node, so that the main routing node can transmit the message to be transmitted to the branch path where the destination routing node is located. The second sub-routing node transmits the message to be transmitted to the main routing node even when they are not on the same branch path. This simplifies the routing logic and avoids the deadlock problem caused by closed-loop data transmission.

[0082] Figure 8 This is a block diagram illustrating an electronic device 700 according to an exemplary embodiment. For example, the electronic device 700 may be a mobile phone, computer, digital broadcasting terminal, messaging device, game console, tablet device, medical device, fitness equipment, personal digital assistant, etc.

[0083] Reference Figure 8 The electronic device 700 may include one or more of the following components: a processing component 702, a memory 704, a power supply component 706, a multimedia component 708, an audio component 710, an input / output (I / O) interface 712, a sensor component 714, and a communication component 716.

[0084] Processing component 702 typically controls the overall operation of electronic device 700, such as operations associated with display, telephone calls, data communication, camera operation, and recording operations. Processing component 702 may include one or more processors 720 to execute instructions to complete all or part of the steps of the methods described above. Furthermore, processing component 702 may include one or more modules to facilitate interaction between processing component 702 and other components. For example, processing component 702 may include a multimedia module to facilitate interaction between multimedia component 708 and processing component 702.

[0085] Memory 704 is used to store various types of data to support the operation of electronic device 700. Examples of this data include instructions for any application or method operating on electronic device 700, contact data, phonebook data, messages, pictures, multimedia, etc. Memory 704 can be implemented by any type of volatile or non-volatile storage device or a combination thereof, such as static random access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic storage, flash memory, magnetic disk, or optical disk.

[0086] Power supply component 706 provides power to various components of electronic device 700. Power supply component 706 may include a power management system, one or more power supplies, and other components associated with generating, managing, and distributing power to electronic device 700.

[0087] Multimedia component 708 includes a screen that provides an output interface between electronic device 700 and user. In some embodiments, the screen may include a liquid crystal display (LCD) and a touch panel (TP). If the screen includes a touch panel, the screen may be implemented as a touchscreen to receive input signals from the user. The touch panel includes one or more touch sensors to sense touches, swipes, and gestures on the touch panel. The touch sensors may not only sense the boundaries of touch or swipe actions but also detect the duration and pressure associated with the touch or swipe operation. In some embodiments, multimedia component 708 includes a front-facing camera and / or a rear-facing camera. When electronic device 700 is in an operating mode, such as shooting mode or multimedia mode, the front-facing camera and / or rear-facing camera may receive external multimedia data. Each front-facing camera and rear-facing camera may be a fixed optical lens system or have focal length and optical zoom capabilities.

[0088] Audio component 710 is used to output and / or input audio signals. For example, audio component 710 includes a microphone (MIC) used to receive external audio signals when electronic device 700 is in an operating mode, such as call mode, recording mode, and voice recognition mode. The received audio signals may be further stored in memory 704 or transmitted via communication component 716. In some embodiments, audio component 710 also includes a speaker for outputting audio signals.

[0089] I / O interface 712 provides an interface between processing component 702 and peripheral interface modules, such as keyboards, click wheels, buttons, etc. These buttons may include, but are not limited to, home buttons, volume buttons, power buttons, and lock buttons.

[0090] Sensor assembly 714 includes one or more sensors for providing state assessments of various aspects of electronic device 700. For example, sensor assembly 714 may detect the on / off state of electronic device 700, the relative positioning of components such as the display and keypad of electronic device 700, changes in position of electronic device 700 or a component of electronic device 700, the presence or absence of user contact with electronic device 700, orientation or acceleration / deceleration of electronic device 700, and temperature changes of electronic device 700. Sensor assembly 714 may include a proximity sensor configured to detect the presence of nearby objects without any physical contact. Sensor assembly 714 may also include a light sensor, such as a CMOS or CCD image sensor, for use in imaging applications. In some embodiments, sensor assembly 714 may also include an accelerometer, gyroscope, magnetometer, pressure sensor, or temperature sensor.

[0091] Communication component 716 facilitates wired or wireless communication between electronic device 700 and other devices. Electronic device 700 can access wireless networks based on communication standards, such as WiFi, carrier networks (such as 2G, 3G, 7G, or 5G), or combinations thereof. In one exemplary embodiment, communication component 716 receives broadcast signals or broadcast-related information from an external broadcast management system via a broadcast channel. In one exemplary embodiment, communication component 716 also includes a near-field communication (NFC) module to facilitate short-range communication. For example, the NFC module may be implemented based on radio frequency identification (RFID) technology, Infrared Data Association (IrDA) technology, ultra-wideband (UWB) technology, Bluetooth (BT) technology, and other technologies.

[0092] In an exemplary embodiment, the electronic device 700 may be implemented by one or more application-specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), controllers, microcontrollers, microprocessors, or other electronic components to implement a data routing method provided in the embodiments of this application.

[0093] In an exemplary embodiment, a non-transitory computer-readable storage medium including instructions is also provided, such as a memory 704 including instructions, which can be executed by a processor 720 of an electronic device 700 to perform the above-described method. For example, the non-transitory storage medium may be a ROM, random access memory (RAM), CD-ROM, magnetic tape, floppy disk, and optical data storage device, etc.

[0094] Figure 9This is a block diagram illustrating an electronic device 800 according to an exemplary embodiment. For example, the electronic device 800 may be provided as a server. (Refer to...) Figure 9 The electronic device 800 includes a processing component 822, which further includes one or more processors, and memory resources represented by memory 832 for storing instructions, such as application programs, that can be executed by the processing component 822. The application programs stored in memory 832 may include one or more modules, each corresponding to a set of instructions. Furthermore, the processing component 822 is configured to execute instructions to perform a data routing method provided in embodiments of this application.

[0095] Electronic device 800 may also include a power supply component 826 configured to perform power management of electronic device 800, a wired or wireless network interface 850 configured to connect electronic device 800 to a network, and an input / output (I / O) interface 858. Electronic device 800 may operate on an operating system stored in memory 832, such as Windows Server™, Mac OS X™, Unix™, Linux™, FreeBSD™, or similar.

[0096] This application also provides a computer program product, including a computer program, which implements a data routing method when executed by a processor.

[0097] Other embodiments of this application will readily occur to those skilled in the art upon consideration of the specification and practice of the application disclosed herein. This application is intended to cover any variations, uses, or adaptations of this application that follow the general principles of this application and include common knowledge or customary techniques in the art not disclosed herein. The specification and examples are to be considered exemplary only, and the true scope and spirit of this application are indicated by the following claims.

[0098] It should be understood that this application is not limited to the precise structure described above and shown in the accompanying drawings, and various modifications and changes can be made without departing from its scope. The scope of this application is limited only by the appended claims.

[0099] The above are merely preferred embodiments of this application and are not intended to limit this application. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the protection scope of this application.

[0100] The data routing system, data routing method, apparatus, electronic device, and computer-readable storage medium provided in this application have been described in detail above. Specific examples have been used to illustrate the principles and implementation methods of this application. The description of the above embodiments is only for the purpose of helping to understand the method and core ideas of this application. At the same time, for those skilled in the art, there will be changes in the specific implementation methods and application scope based on the ideas of this application. Therefore, the content of this specification should not be construed as a limitation of this application.

Claims

1. A data routing system, characterized in that, It includes one main pathway and several branch pathways; The main path includes several main routing nodes and several first sub-routing nodes; The branch paths are connected to the main path through the main routing node, and the branch paths are not connected to each other; the main routing node and the branch path correspond one-to-one. The branch path includes several second sub-routing nodes; the first sub-routing node and the second sub-routing node are used to connect devices.

2. The system according to claim 1, characterized in that, The second sub-routing node is used to obtain the message to be transmitted, and if the destination routing node and the second sub-routing node that obtained the message to be transmitted are not on the same branch path, the message to be transmitted is sent to the main routing node; The main routing node is used to send the message to be transmitted to the branch path where the destination routing node is located through the main path.

3. The system according to claim 2, characterized in that, The main path includes several data channels, and each data channel has a corresponding routing buffer. The main routing node is used to receive the message to be transmitted and determine the target data channel from the plurality of data channels, so as to transmit the message to be transmitted to the destination routing node through the target data channel; The amount of free resources in the routing buffer corresponding to the target data channel is greater than or equal to the amount of free resources in the routing buffer corresponding to other data channels.

4. The system according to claim 2, characterized in that, The second sub-routing node is further configured to transmit the message to be transmitted to the destination routing node by acquiring the branch path of the message to be transmitted when the destination routing node and the second sub-routing node that acquired the message to be transmitted are located on the same branch path.

5. The system according to claim 1, characterized in that, At least a portion of the second sub-routing nodes located at the edge of the branch path are also used for connecting to memory; At least a portion of the second sub-routing nodes, located between the edge of the branch path and the main path, are also used to connect to the shared cache.

6. The system according to claim 1, characterized in that, The first number of devices connected to the second sub-routing node located at the edge of the branch path is less than or equal to 3; The second number of devices connected to the second sub-routing node located at the non-edge of the branch path is less than or equal to 2.

7. A data routing method, characterized in that, The method, applied to the data routing system of any one of claims 1 to 6, comprises: The message to be transmitted is obtained through the second sub-routing node; If, through the second sub-routing node, it is determined that the destination routing node and the second sub-routing node that obtained the message to be transmitted are not on the same branch path, the message to be transmitted is sent to the main routing node, so that the main routing node can send the message to be transmitted to the branch path where the destination routing node is located through the main path; The destination routing node includes: the first sub-routing node, or other second sub-routing nodes that send the message to be transmitted to the main routing node.

8. A data routing device, characterized in that, The device is used in the data routing system according to any one of claims 1 to 6, the device comprising: The message acquisition module is used to acquire the message to be transmitted through the second sub-routing node; The message transmission module is used to send the message to be transmitted to the main routing node when it is determined through the second sub-routing node that the destination routing node and the second sub-routing node that obtained the message to be transmitted are not on the same branch path, so that the main routing node can send the message to be transmitted to the branch path where the destination routing node is located through the main path. The destination routing node includes: the first sub-routing node, or other second sub-routing nodes that send the message to be transmitted to the main routing node.

9. An electronic device, characterized in that, include: processor; Memory used to store the processor's executable instructions; The processor is configured to execute the instructions to implement the method as described in any one of claims 1 to 6.

10. A computer-readable storage medium, characterized in that, When the instructions in the computer-readable storage medium are executed by the processor of the electronic device, the electronic device is enabled to perform the method as described in any one of claims 1 to 6.