Data routing system, data routing method, device, electronic equipment and medium
Patent Information
- Application Number
- CN202512038113.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-12-30
- Publication Date
- 2026-09-25
- Estimated Expiration
- 2045-12-30
AI Technical Summary
[0004]但是,环形拓扑结构的数据路由系统在数据交互时容易出现死锁问题,而网格拓扑结构的数据路由系统存在数据交互时,存在仲裁逻辑复杂、总线利用率低等问题
[0016]在本申请实施例中,数据路由系统包括一条主通路和若干条分支通路,主通路包括若干主路由节点和若干第一子路由节点,分支通路通过主路由节点与主通路相连,并且若干分支通路之间彼此不相连,且主路由节点和分支通路一一对应。数据路由系统呈现“丰”字型拓扑结构,设备挂接在第一子路由节点或者第二子路由节点上。由此,如果需要调节设备的挂接位置,只用调节第一子路由节点或者第二子路由节点的位置,而不需要调节分支通路或者主通路的位置;另外,还可以通过调节主路由节点的位置,调节分支通路之间的间距,以使分支通路之间的间距与挂载设备的面积大小相适配,比如,如果要挂载的设备的面积比较大,可以通过调节主路由节点的位置,将相邻分支通路之间的上下距离调节的大一些,以满足设备挂载的空间需求。与Mesh拓扑相比,提高了设备挂载位置的调节灵活性。本实施例的数据路由系统,可以通过调节第一子路由节点或者第二子路由节点的位置,使子路由节点(第一子路由节点和第二子路由节点)之间的距离与挂载设备的面积大小相适配,以满足数据传输系统对不同面积大小的设备的挂载需求。在本实施例的数据路由系统中,数据传输系统的分支通路只与主通路相连,且分支通路之间彼此不相连,因此,分支通路边缘处不连接其他分支通路,和Mesh拓扑在通路边缘连接其他通路的结构相比,本实施例在分支通路边缘上的带宽利用率高,并且减少了边缘上的沟道走线,降低了走线面积。相较于Ring拓扑结构,基于本实施例的数据路由系统,报文可以随意转向,具有转向灵活的特点,并且不会存在数据传输过程中的绕圈现象,也不会因此而出现报文传输的死锁问题。在Mesh拓扑中,通路上的路由节点除了连接设备外,还需要与其他通路相连,因此在报文传输时需要进行的路由仲裁数多,总线利用率低,本实施例与Mesh拓扑相比,路由仲裁数少,逻辑级数少,仲裁逻辑简单,这有利于后端绕线和整芯片主频的提升,并且总线利用率高。
Smart Images

Figure CN121864666B_ABST
Abstract
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, embodiments of the present application further provide a computer-readable storage medium, wherein when instructions in the computer-readable storage medium are executed by a processor of an electronic device, the electronic device can implement the method of the second aspect.
[0016] In the embodiment of the present application, the data routing system includes one main path and a plurality of branch paths. The main path includes a plurality of main routing nodes and a plurality of first sub-routing nodes. The branch paths are connected to the main path through the main routing nodes, the plurality of branch paths are not connected to each other, and the main routing nodes are in one-to-one correspondence with the branch paths. The data routing system presents a "丰"-shaped (Feng-shaped) topological structure, and devices are connected to the first sub-routing nodes or the second sub-routing nodes. Therefore, if it is necessary to adjust the connection position of a device, it is only necessary to adjust the positions of the first sub-routing nodes or the second sub-routing nodes, without adjusting the positions of the branch paths or the main path; in addition, the spacing between the branch paths can be adjusted by adjusting the positions of the main routing nodes, so that the spacing between the 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 positions of the main routing nodes, so as to meet the space requirement for device mounting. Compared with a Mesh topology, the flexibility of adjusting the mounting position of the device is improved. With the data routing system of this embodiment, by adjusting the positions of the first sub-routing nodes or the second sub-routing nodes, the distance between the sub-routing nodes (the first sub-routing nodes and the second sub-routing nodes) can be adapted to the area size of the mounted device, so as to meet the mounting requirements of the data transmission system for devices with different area sizes. In the data routing system of this embodiment, the branch paths of the data transmission system are only connected to the main path, and the branch paths are not connected to each other. Therefore, the edges of the branch paths are not connected to other branch paths. Compared with the structure of the Mesh topology where other paths are connected at the path edges, this embodiment has high bandwidth utilization on the edges of the branch paths, reduces channel routing on the edges, and lowers the routing area. Compared with a Ring topology, based on the data routing system of this embodiment, messages can be turned freely, which has the characteristic of flexible turning, and there will be no looping phenomenon during data transmission, and no deadlock problem of message transmission caused thereby. In a Mesh topology, the routing nodes on a path need to be connected to other paths in addition to connecting devices, so the number of routing arbitrations required during message transmission is large and the bus utilization is low. Compared with the Mesh topology, this embodiment has fewer routing arbitrations, fewer logic stages, and simpler arbitration logic, which is beneficial to back-end routing and the improvement of the main frequency of the entire chip, and has high bus utilization.
[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, specific embodiments of this application are given below. 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 configured to connect branch paths, and there is a one-to-one correspondence between main routing nodes and the branch paths, that is, each branch path has one connection point with the main path, and said connection point is the main routing node where the main path intersects the branch path. The main path comprises a plurality of first sub-routing nodes, and the branch path comprises a plurality of second sub-routing nodes, wherein the first sub-routing nodes and the second sub-routing nodes are configured to connect devices. Based on the data routing system, a branch path is only connected to one main routing node on the main path, the second sub-routing nodes on the branch path are only configured to connect devices instead of connecting other branch paths, and all branch paths are not connected to each other, so the data routing system of this embodiment forms a Feng-type (Chinese character "丰" shaped) topology. Based on this structure, devices can be hung on the second sub-routing nodes of branch paths or the first sub-routing nodes of the main path. Therefore, when it is required to adjust the hanging position of devices, it only needs to adjust the positions of the second sub-routing nodes, including changing the positions of the original sub-routing nodes and adding or deleting second sub-routing nodes based on the original sub-routing nodes, without adjusting the positions of the branch paths; in addition, the spacing between branch paths can also be adjusted by adjusting the positions of the main routing nodes, so that the spacing between the branch paths is adapted to the area size of the mounted devices. For example, if the area of the device to be mounted is relatively large, the vertical distance between adjacent branch paths can be adjusted larger by adjusting the position of the main routing nodes, so as to meet the space requirement for device mounting. Compared with Mesh topology, the adjustment flexibility of device mounting position is improved.
[0033] For example, the main path comprises a plurality of routing nodes, and besides main routing nodes connected to branch paths, the routing nodes may further comprise second sub-routing nodes configured to connect devices. Further, a plurality of device interfaces can be hung on the second sub-routing nodes, and the positions where the device interfaces are hung can be flexibly adjusted on the branch paths or the main path. The main routing nodes are configured for message intersection between the branch paths and the main path, and cannot be used for hanging devices. Based on the main path, branch paths, main routing nodes and second sub-routing nodes in this embodiment, the Feng-type (Chinese character "丰" shaped) topology is formed, which has the characteristic of flexible and variable structure.
[0034] In a Mesh topology, a plurality of paths are connected to each other, dividing the entire data transmission system into a grid shape, and paths are also connected to routing nodes at the edges of each path. In this structure, the mounting positions of devices on the bus are fixed; specifically, devices are fixedly mounted on the routing nodes at the intersections of paths. Since the paths are connected to each other, 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 whose area matches the size of the grid area can be mounted, and it is difficult to adjust the mounting positions of the devices, that is, the Mesh topology has the problem of low flexibility. In addition, in a Mesh topology, the paths are connected to each other, and the routing nodes at the path edges are also connected to other paths, which results in a relatively large channel area occupied by wiring in the entire topology and low data transmission utilization of links.
[0035] In practical applications, terminal devices require a flexible naturally deadlock-free network-on-chip topology, and require the resource utilization of the secondary bus to be as high as possible to save the area of the entire chip. In addition, the industry requires NoC to be able to transmit longer-distance data packets at a fixed main frequency, so as to reduce the number of pipeline inserts in wiring and reduce costs. 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 are not connected to each other in the data routing system of this embodiment, the network-on-chip is not divided into fixed-size areas (Harden). Therefore, more devices can be mounted only by increasing the number of second sub-routing nodes and main routing nodes, and the data routing system can be adapted to the device area only by adjusting the positions of the second sub-routing nodes or main routing nodes. Since the data transmission system of this embodiment can be adjusted flexibly, the area size of the devices mounted on the data transmission system is very flexible. In the related art, it is difficult for a Mesh topology to construct appropriate grid division for interconnecting heterogeneous on-chip devices (that is, on-chip devices with different areas), and the data transmission system with a Feng-type 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 the number of second sub-routing nodes can be increased on the original basis; if the device area is relatively large, the distance between the second sub-routing nodes can be set to be larger, or the number of second sub-routing nodes can be reduced on the original basis. The entire adjustment process only involves the adjustment of the second sub-routing nodes, and does not involve the adjustment of branch paths or the main path, so 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 on the second sub-routing nodes, so as to meet the mounting requirements of the data transmission system for devices with different areas.
[0038] Further, 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 of large channel area occupied by routing caused by complex routing in Mesh topology. Through the separate layout of the main path and branch paths, cross nodes can be centrally mounted on the main path. In a Mesh bus, devices are mounted at fixed positions, and the size of the hardened area is inconvenient to adjust, and the mounting position is also inconvenient to adjust. However, in the丰字型 topology, the area size can be flexibly adjusted, and the mounting position of the device can also be flexibly adjusted.
[0039] In one embodiment, with the same chip area, the data transmission structure system of the present application can save 20% to 30% of channel area compared with the Mesh topology.
[0040] In the Mesh topology, other paths are also connected at the edges of the paths, which means that channel routing is also required at the edges of the Mesh topology. In this embodiment, the branch paths of the data transmission system are only connected to the main path, which has higher bandwidth utilization at the edges than the Mesh topology, directly reduces the channel routing at the edges, and reduces the routing area. For example, in one embodiment, compared with the Mesh topology, this embodiment can reduce the routing area by more than 50%. For the entire chip, the routing area of channels in the Mesh topology accounts for 20% to 30% of the total chip area, while the丰字型 topology only accounts for about 10%.
[0041] The丰字型 network topology of this embodiment has the characteristic of high link utilization. Specifically, the utilization rate of the Mesh topology is not high, while the丰字型 topology integrates channels, which can improve the link utilization on branch paths and the main path, and this method is more convenient for architects to analyze and evaluate 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 architects to perform device bandwidth allocation and congestion backpressure.
[0042] The data routing system of the present application has a Feng-type network-on-chip topology facing terminal devices. Based on this embodiment, a deadlock-free terminal network-on-chip topology can be flexibly constructed, link utilization is improved, and routing area and logic stages are reduced. In the Feng-type network topology, routes are divided into sub-routes connected to devices and a main route for the intersection of a main path and branch paths; both the sub-routes and the main route have relatively low logic stages, enabling routing over longer distances.
[0043] In the data routing system according to the embodiment of the present application, the horizontal branch paths and the vertical main path form a Feng-type structure. Since the branch paths are not directly connected to each other, not only the number of second sub-route nodes on the branch paths can 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 configured to obtain a to-be-transmitted message, and send the to-be-transmitted message to the main route node when the destination route node and the second sub-route node that obtained the to-be-transmitted message are not in the same branch path; the main route node is configured to send, through the main path, the to-be-transmitted message to the branch path where the destination route node is located.
[0045] For example, the destination route node includes other second sub-route nodes except the second sub-route node that sends the to-be-transmitted message to the main route node.
[0046] A node where the main path and a branch path interact is a main route node, and a node where a device and a branch path interact is a second sub-route node. Wherein, the branch path is configured to transmit messages between the second sub-route nodes on the branch path; the main path is configured to aggregate and distribute messages transmitted from the branch paths to the main path.
[0047] Messages of all branch paths are aggregated and distributed on the main path, therefore, the main path needs higher bandwidth to transmit messages in parallel. The essence of the large bandwidth of the main path is that multiple channels are integrated and aggregated and distributed at the main route node. The bandwidth requirement of a branch path is lower than that of the main path, and the area occupied by channels of the branch path is also smaller than that of the main path. Wherein, the channel refers to the area occupied by routing in the back-end physical implementation.
[0048] A router is arranged at a route node, and the router is a basic component of the network-on-chip (NoC), which is used for temporary storage and transmission of data. With reference 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 message and determine a target data channel from the plurality of data channels, so as to transmit the to-be-transmitted message 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 messages through the target data channel can ensure the reliability of data packet transmission and reduce data transmission delay.
[0059] In some embodiments of the present application, at least part of the second sub-routing nodes located at the edge of the branch path are further configured to connect to a memory; at least part of the second sub-routing nodes located between the edge of the branch path and the main path are further configured to connect to a shared cache.
[0060] For example, the cache may be an L3 cache, which is a shared cache, and specifically may be 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 paths include 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 configured to connect to a memory, that is, the second sub-routing nodes on the left and right sides of the dense grid topology connect to the DDR memory structure. Wherein, besides 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 non-edge second sub-routing nodes of the first branch path 103 connect to the L3 cache, and besides the L3 cache, they can also connect to external devices (not shown in the figure). Further, the second branch path 104 is configured to connect to a PCIE device, and the device may be a peripheral such as a GPU, a USB, etc. The main path and the branch paths form a dense grid architecture with high bus utilization.
[0062] Figure 5 the bandwidth of the main path is twice that of the branch paths. Figure 5 the illustrated dense grid topology can save more than 30% of channel area compared with a Mesh topology network, and can improve link utilization.
[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 claim 7.
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 able to perform the method as described in claim 7.
Citation Information
Patent Citations
Routing system and communication method of network-on-chip
CN111245730A
On-chip temporary storage dynamic scheduling manager of multi-core heterogeneous processor
CN114237717A