Chip, configuration method and use method of network-on-chip, and related equipment
By reserving loop paths in the on-chip network and enabling isolated failed routing nodes in the event of a single point of failure, the problem that on-chip network is difficult to support Partial-Good in the event of a single point of failure is solved, and the communication function with high chip yield is achieved.
Patent Information
- Application Number
- CN202311113545.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-08-30
- Publication Date
- 2025-02-28
AI Technical Summary
Existing on-chip networks are difficult to effectively support Partial-Good in case of single point failure, resulting in a decrease in chip yield.
Reserve a loop loop path in the on-chip network. When a single point of failure occurs, enable loop loop paths to isolate the failed routing nodes to ensure interconnection between unfailed routing nodes and re-plan the transmission path.
Effectively support Partial-Good on the on-chip network, avoiding fault spread, ensuring communication functions, and improving chip yield.
Smart Images

Figure CN119544404A_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present application relate to the field of communication technology, and in particular to a chip, a configuration method, a use method, and related equipment of a network on chip. Background Art
[0002] As the scale of chips becomes larger and larger, more and more modules are integrated on a single chip. The industry generally uses network-on-chip (NoC) to connect various modules. Specifically, NoC is a network structure composed of interconnected routing nodes, which provides a transmission channel for messages. If some nodes or links in NoC fail (single point failure), it may cause communication failure of the entire network, making the entire chip unavailable. As the number of nodes and links increases, the probability of single point failure in NoC increases further, seriously affecting the chip yield.
[0003] In order to improve chip yield, the industry currently requires NoC to support Partial-Good, that is, even if a single point of failure occurs in NoC, NoC can still achieve communication functions, thus avoiding the impact of single point failure on system communication. Currently, the industry generally adopts the method of adding redundant links or adding redundant nodes to achieve Partial-Good of NoC. Specifically, when a link in NoC fails, the redundant link is enabled to replace the failed link. When a routing node in NoC fails, the redundant node is enabled to replace the failed node.
[0004] From the above description, it can be seen that the method of using redundant links to replace faulty links is not applicable to node failures, and the method of using redundant nodes requires backup routing node interfaces and redundant nodes, which is very expensive. Therefore, how to more effectively support Partial-Good of NoC has become an urgent problem to be solved. Summary of the invention
[0005] The embodiment of the present application provides a chip, a configuration method, a method of using the chip, and related equipment. In the embodiment of the present application, there is a routing node with a loopback path in the chip network. In this way, when a single point failure occurs in the chip network, the loopback path near the failed routing node is enabled to loop back the message in transit, thereby isolating the failed routing node. In this way, the spread of faults can be avoided, and the routing nodes that have not failed can still be interconnected, thereby ensuring the communication function of the chip network, and then effectively supporting the Partial-Good of the chip network, and improving the yield of the chip.
[0006] In a first aspect, an embodiment of the present application provides a chip, including:
[0007] There are multiple modules integrated on the system-level chip, and the multiple integrated modules are interconnected through the on-chip network. Specifically, each integrated network is connected to the on-chip network, and the on-chip network provides a communication link for each integrated module. Among them, the on-chip network is composed of multiple interconnected routing nodes, and the multiple interconnected routing nodes form at least one ring topology structure, and there is a target routing node with a loopback path among the multiple routing nodes. Among them, the loopback path is the network link from the target routing node to the local, that is, the link from the target routing node to the target routing node itself, and its purpose is to loop back the transmitted message. In this way, when a single point failure occurs in the on-chip network, the main link at the fault location can be disconnected, and the loopback path of a target routing node upstream of the fault can be enabled. In this way, the message will be looped back at the target routing node and will not be transmitted to the fault location. Therefore, the failed routing node caused by the fault will be isolated, thereby avoiding the spread of the fault. In addition, the activation of the loopback path can enable the non-failed routing nodes to still be interconnected, so that the transmission path can be reselected for the looped message later to ensure the communication function of the on-chip network. Therefore, the embodiments of the present application can support Partial-Good of the on-chip network, thereby improving the yield of the chip.
[0008] In an optional implementation, when a single point failure occurs in a chip, it is necessary to find a target routing node with a loopback path that is closest to the failure upstream of the single point failure, and then disconnect the main link at the failure location and enable the loopback path of the target routing node. In this way, the failed routing nodes that fail due to the single point failure will be isolated, and the routing nodes that have not failed can still be interconnected due to the activation of the loopback path. Therefore, the problem of communication failure in the entire on-chip network due to a single point failure can be avoided, so that the partial-good of the network can be supported, thereby improving the yield of the chip.
[0009] In an optional embodiment, the on-chip network may include only a single ring topology structure, that is, the on-chip network is a single ring topology structure. Exemplarily, the on-chip network may also be a mesh network topology structure composed of multiple ring topologies. Among them, the single ring topology structure has the characteristics of simple structure and high transmission efficiency. The mesh network topology structure composed of multiple ring topologies can provide more communication links between modules.
[0010] In an optional implementation, each ring topology structure has an upper ring node and a lower ring node. The upper ring node refers to a routing node that starts transmitting a message in a ring topology structure, and the lower ring node refers to a routing node that stops transmitting a message in the ring topology structure. The upper ring node and the lower ring node on each ring topology structure are determined by the transmission path of the message. Specifically, the route needs to be selected according to the source address and destination address of the message, and then the upper ring node and the lower ring node in each ring topology structure are determined according to the transmission path.
[0011] In an optional implementation, if the network on chip is a mesh network topology structure composed of multiple ring topology structures, the multiple interconnected routing nodes of the network on chip also include a ring switching node. The ring switching node corresponds to two intersecting ring topology structures and is used to implement message exchange between the two intersecting ring topology structures. Exemplarily, the ring switching node can be a routing node shared by the two intersecting ring topology structures, or it can be two routing nodes on the two ring topology structures that can exchange data, and there is no specific limitation.
[0012] In an optional implementation, a ring topology may intersect with multiple ring topologies, so that the ring topology may correspond to multiple ring switching nodes. Multiple ring switching nodes can switch the message transmitted in the ring topology to multiple other ring topologies, providing multiple transmission paths for the message.
[0013] In a second aspect, an embodiment of the present application provides a method for configuring an on-chip network, including:
[0014] The on-chip network is a network structure composed of a ring topology. When designing the on-chip network, it is necessary to reserve a loopback path for some routing nodes to loop back to the local area. In this way, when a single point failure occurs in the on-chip network, the on-chip network is first detected to locate the failed routing node in the on-chip network. Then find the target routing node upstream of the failed routing node and adjacent to the failed routing node. Among them, the target routing node is the routing node that is closest to the failed routing node and has a loopback path reserved on the same ring topology as the failed routing node. Then enable the loopback path of the target routing node and disconnect the connection between the target routing node and the failed routing node. In this way, the failed routing node will be isolated outside the ring topology, thereby preventing the entire network from being paralyzed due to the failed routing node. It can be understood that after enabling the loopback path, the topology of the on-chip network will change. At this time, it is necessary to reconfigure each routing node according to the new topology and routing strategy to restore the communication function of the on-chip network. In this way, even if the original transmission path is unreachable due to a single point failure, a new transmission path can be replanned. In this way, the on-chip network can support Partial-Good even if a single point failure occurs.
[0015] In an optional implementation, each ring topology has an upper ring node, which is a routing node for starting message transmission in the ring topology. After the topology of the on-chip network is updated, the message transmission direction corresponding to each upper ring node needs to be reconfigured to avoid invalid detours.
[0016] In an optional implementation, after the failed routing node in the network on the isolation slice, it is necessary to reconfigure the message transmission direction corresponding to the upper ring node. Specifically, it is necessary to first plan the message transmission path according to the source node address and the destination node address corresponding to the message, and then determine the upper ring node and the lower ring node on the original ring topology structure according to the transmission path. Next, it is necessary to configure the message transmission direction when the upper ring node transmits the message according to the positional relationship between the upper ring node, the lower ring node and the failed routing node on each ring topology structure. In this way, invalid detours during message transmission can be avoided and message transmission delays can be reduced.
[0017] In an optional implementation, it is understandable that when no single point failure occurs, the upper ring node can determine the transmission direction of the message according to the position of the lower ring node. Specifically, if the node distance between the lower ring node and the upper ring node does not exceed half of the total number of nodes along the clockwise direction, then the upper ring node transmits the message along the clockwise direction. If the node distance between the lower ring node and the upper ring node exceeds half of the total number of nodes, then the upper ring node will transmit the message in the counterclockwise direction. When a single point failure occurs on a ring topology structure, and the isolated failed routing node is located between the upper ring node and the lower ring node, at this time, if the message is transmitted according to the original transmission direction, then the message will inevitably return to the upper ring node through the loopback path of the target routing node, and be transmitted to the lower ring node in the original reverse direction. Then, the upper ring node can be configured in advance to change the transmission direction, and the message transmission direction of the upper ring node is configured to be opposite to the previous message transmission direction, so as to avoid invalid detours of messages and improve the transmission efficiency of messages.
[0018] In an optional embodiment, the network on chip can be a mesh network topology composed of multiple ring topologies. In this case, the multiple interconnected routing nodes of the network on chip will include a switching node, each switching node corresponds to two intersecting ring topologies, and is used to realize the message exchange between the intersecting ring topologies. Exemplarily, the switching node can be a routing node shared by two intersecting ring topologies, or it can be two routing nodes that can exchange data on two ring topologies. When the topology of the network on chip is updated, it is necessary to reconfigure the switching node to select a new transmission path for the message to ensure the communication function of the network on chip.
[0019] In an optional implementation, the ring switching node can be configured according to the distance from each ring topology structure to the destination ring topology structure. Specifically, each ring switching node needs to transfer the message to a ring topology structure that is closer to the destination ring topology structure. Exemplarily, for a ring switching node in the network on chip, the ring switching node corresponds to two intersecting ring topologies, and realizes the message exchange between the intersecting ring topologies. Then, first, the destination ring topology structure is determined according to the destination node address of the message, and then the distances from the two ring topologies to the destination ring topology structure are determined respectively, and then the ring switching node is configured to switch the message to the ring topology structure that is closer to the destination ring topology structure, so that the message is transmitted along the shortest path, thereby reducing the delay.
[0020] In an optional implementation, the ring switching node can also be configured according to the load conditions of each ring topology. That is, during the message transmission process, the ring switching node can transfer the message to the ring topology with a lighter load to achieve load balancing and reduce delay. Exemplarily, for a ring switching node in the on-chip network, the ring switching node corresponds to two intersecting ring topologies, and realizes the message exchange between the intersecting ring topologies. Then, first determine the load conditions of the two ring topologies respectively, and then configure the ring switching node to transmit the message to the ring topology with a lighter load.
[0021] In an optional implementation, the distance from each ring topology structure to the destination ring topology structure can be characterized by the number of ring changes, that is, each time a message changes the ring topology structure for transmission, it is a hop. Then, it is necessary to determine the number of hops from the intersecting ring topology structure to the destination ring topology structure. Exemplarily, a ring switching node corresponds to the second ring topology structure and the third ring topology structure. If the first number of hops from the second ring topology structure to the destination ring topology structure is greater than the second number of hops from the third ring topology structure to the destination ring topology structure, then the ring switching node needs to transfer the message to the third ring topology structure, so that the message will be closer to the destination ring topology structure and can be transmitted along the shortest path.
[0022] In an optional implementation, if the second hop count is less than the first hop count, then it is necessary to configure the ring switching node to pass the message transmitted on the second ring topology structure to the third ring topology structure, and then switch it to a ring topology structure closer to the destination ring topology structure, ultimately achieving the purpose of forwarding the message to the destination ring topology structure.
[0023] In an optional implementation, a ring topology may intersect with multiple ring topologies, corresponding to multiple ring switching nodes. For example, the second ring topology intersects with the third ring topology through the second ring switching node, and intersects with the sixth ring topology through the third ring switching node. Then, it is necessary to determine the first hop number from the second ring topology to the destination ring topology, the second hop number from the third ring topology to the destination ring topology, and the third hop number from the sixth ring topology to the destination ring topology. Then, the first hop number, the second hop number, and the third hop number are compared, and each ring switching node is configured so that the message is delivered to the ring topology that is closer to the destination ring topology.
[0024] In an optional implementation, if the first hop count is the smallest, then it is necessary to configure both ring switching nodes not to perform ring switching forwarding on the message, so that the message is transmitted on the second ring topology structure. If the second hop count is the smallest, then it is necessary to configure the first ring switching node to forward the message to the second ring topology structure, and the other ring switching node not to perform ring switching forwarding on the message. If the third hop count is the smallest, then it is necessary to configure the second ring switching node to forward the message to the second ring topology structure, and the first ring switching node cannot perform ring switching forwarding on the message. In this way, it can be ensured that the message always follows the shortest path transmission to reduce delay.
[0025] In an optional implementation, if the second hop count and the third hop count are the same and both are less than the first hop count, it is necessary to finally determine how to forward the message based on the load conditions on the third ring topology structure and the sixth ring topology structure. This is because if the multiple ring topology structures intersecting with the second ring topology structure are closer to the destination ring topology structure, it is necessary to switch rings and forward the message so that the message follows the shortest path transmission. If the distances of multiple ring topology structures from the destination ring topology structure are the same, it is necessary to select the ring topology structure with a lighter load to forward the message to achieve load balancing.
[0026] In an optional implementation, if the load in the third ring topology is less than the load in the sixth ring topology, the first ring switching node is configured to transfer the message from the second ring topology to the third ring topology, and the second ring switching node needs to be configured not to perform ring switching on the message. If the load in the third ring topology is greater than the load in the sixth ring topology, the second ring switching node is configured to transfer the message from the second ring topology to the sixth ring topology, and the first ring switching node needs to be configured not to perform ring switching on the message.
[0027] In a third aspect, an embodiment of the present application provides a method for using a network on chip, including:
[0028] When the integrated modules on the chip need to communicate, they need to send communication messages to the on-chip network. After receiving the message, the on-chip network needs to determine the transmission path for the message based on the source address and destination address of the message. Among them, the on-chip network is composed of interconnected routing nodes. When a single point failure occurs in the on-chip network, some routing nodes will fail. In order to avoid the paralysis of the entire on-chip network, it is necessary to enable the loopback path of some nodes and isolate the failed routing nodes. At this time, the remaining routing nodes that have not failed will be interconnected due to the activation of the loopback path. In this way, the on-chip network needs to re-plan the transmission path of the message based on the network links provided by the interconnected routing nodes that have not failed, and then transmit the message according to the transmission path.
[0029] In the embodiment of the present application, when a single point failure occurs in the on-chip network, the fault will be isolated by enabling the loopback path of certain routing nodes, and other routing nodes that have not failed will be interconnected due to the activation of the loopback path. In this way, even if the original path is unreachable, the on-chip network can re-plan the transmission path based on the interconnected non-failed routing nodes. Therefore, the communication function of the on-chip network can be guaranteed, thereby effectively supporting the Partial-Good of the on-chip network.
[0030] In an optional implementation, when the on-chip network experiences a single point failure, the loopback path of the upstream target routing node is enabled to ensure that surviving routing nodes can still be interconnected. In this way, the on-chip network can re-plan the transmission path for the message based on the topological structure of each routing node to ensure communication of the on-chip network.
[0031] In an optional implementation, the on-chip network may include only a single ring topology, that is, the on-chip network is a single ring topology, or a mesh network topology composed of multiple ring topologies. Among them, the single ring topology has the characteristics of simple structure and high transmission efficiency. The mesh network topology composed of multiple ring topologies can provide more communication links between modules.
[0032] In a fourth aspect, an embodiment of the present application provides a configuration device for a network on chip, wherein the network on chip includes at least one ring topology structure, and there is at least one network node with a loopback path in the ring topology structure. The device includes:
[0033] The detection unit is used to detect the on-chip network and determine the failed routing nodes in the on-chip network.
[0034] The determination unit is used to determine a target routing node adjacent to the failed routing node, wherein the target routing node and the failed routing node belong to the same ring topology structure, and there is a loopback path for the target routing node. The loopback path is a network link looped back from the target routing node to the local.
[0035] The processing unit is used to enable a loopback path of a target routing node to update a topology structure of the on-chip network.
[0036] The processing unit is further used to reconfigure routing nodes in the on-chip network according to the updated topology.
[0037] In an optional implementation, the determination unit is further configured to determine an upper ring node in each ring topology of at least one ring topology, where the upper ring node is a routing node that starts transmitting a message on each ring topology.
[0038] The processing unit is specifically used to reconfigure the message transmission direction corresponding to the upper ring node according to the updated topology structure.
[0039] In an optional implementation, the determination unit is further configured to determine a down-ring node in the first ring topology structure, where there is a failed routing node, and the down-ring node is a routing node on the first ring topology structure that stops transmitting messages.
[0040] The processing unit is specifically used to determine the message transmission direction corresponding to the upper ring node in the first ring topology structure according to the position relationship between the upper ring node in the first ring topology structure, the lower ring node in the first ring topology structure, and the failed routing node in the first ring topology structure.
[0041] In an optional implementation, the determination unit is further configured to determine the number of routing nodes in the first ring topology.
[0042] The determination unit is further used to determine the number of node hops of an upper ring node in the first ring topology structure and a lower ring node in the first ring topology structure along the first transmission direction.
[0043] The processing unit is specifically configured to configure the message transmission direction corresponding to the upper ring node in the first ring topology structure to be the second transmission direction if the number of node hops is less than half of the number of routing nodes and the failed routing node in the first ring topology structure is located between the upper ring node in the first ring topology structure and the lower ring node in the first ring topology structure along the first transmission direction. The first transmission direction is opposite to the second transmission direction.
[0044] In an optional implementation, the on-chip network is a mesh network topology structure composed of a plurality of ring topology structures.
[0045] The determination unit is also used to determine the ring switching nodes in the multiple ring topology structures, and the ring switching nodes are used to realize the message exchange between two intersecting ring topology structures.
[0046] The processing unit is specifically configured to reconfigure the ring switching node according to the updated topology structure.
[0047] In an optional implementation, the determination unit is further configured to obtain a first ring switching node, the first ring switching node corresponds to the second ring topology structure and the third ring topology structure, and the second ring topology structure and the third ring topology structure intersect.
[0048] The determination unit is also used to determine the destination node address of the message and determine the destination ring topology structure.
[0049] The processing unit is specifically configured to configure the first ring switching node according to the distances from the second ring topology structure and the third ring topology structure to the destination ring topology structure.
[0050] In an optional implementation, the determination unit is further configured to obtain a second ring switching node, the second ring switching node corresponds to a fourth ring topology structure and a fifth ring topology structure, and the fourth ring topology structure and the fifth ring topology structure intersect.
[0051] The processing unit is further used to configure the second ring switching node according to the load conditions of the fourth ring topology structure and the fifth ring topology structure.
[0052] In an optional implementation, the determination unit is further configured to determine a first hop count from the second ring topology structure to the destination ring topology structure, where the first hop count is used to indicate the number of ring changes from the second ring topology structure to the destination ring topology structure.
[0053] The determination unit is further used to determine a second hop count from the third ring topology structure to the destination ring topology structure, where the second hop count is used to indicate the number of ring changes from the third ring topology structure to the destination ring topology structure.
[0054] The processing unit is specifically configured to configure the first ring switching node according to the first hop number and the second hop number.
[0055] In an optional implementation, the second hop count is smaller than the first hop count.
[0056] The processing unit is specifically configured to configure the first ring switching node to transfer the message from the second ring topology structure to the third ring topology structure.
[0057] In an optional implementation, the determination unit is further configured to obtain a third ring switching node. The third ring switching node corresponds to the second ring topology structure and the sixth ring topology structure. The second ring topology structure intersects with the sixth ring topology structure.
[0058] The determining unit is further used to determine a third hop count from the sixth ring topology structure to the destination ring topology structure, where the third hop count is used to indicate the number of ring changes from the sixth ring topology structure to the destination ring topology structure.
[0059] The processing unit is specifically configured to configure a first switching node and a third switching node according to the first hop number, the second hop number and the third hop number.
[0060] In an optional implementation, the second hop count and the third hop count are both smaller than the first hop count.
[0061] The processing unit is specifically configured to configure the first ring switching node to transfer the message from the second ring topology structure to the third ring topology structure if the second hop number is less than the third hop number, and configure the third ring switching node not to perform ring switching processing on the message.
[0062] If the second hop count is greater than the third hop count, the third ring switching node is configured to transfer the message from the second ring topology structure to the sixth ring topology structure, and the first ring switching node is configured not to perform ring switching processing on the message.
[0063] In an optional implementation, the processing unit is specifically configured to configure the first switching node and the third switching node according to load conditions corresponding to the third ring topology structure and the sixth ring topology structure if the second hop count is equal to the third hop count.
[0064] In an optional embodiment, the processing unit is specifically used to configure the first ring switching node to transfer the message from the second ring topology structure to the third ring topology structure if the load in the third ring topology structure is less than the load in the sixth ring topology structure, and configure the third ring switching node not to perform ring switching processing on the message.
[0065] In a fifth aspect, an embodiment of the present application provides a network configuration device, comprising: a processor and a memory. The processor is coupled to the memory; the memory is used to store computer instructions, and the computer instructions are loaded and executed by the processor to enable the network configuration device to implement any one of the methods provided in the second aspect.
[0066] In a sixth aspect, an embodiment of the present application provides a chip, comprising: a processor and an interface circuit; the interface circuit is used to receive code instructions and transmit them to the processor; the processor is used to run the code instructions to execute any one of the methods provided in the second aspect.
[0067] In a seventh aspect, an embodiment of the present application provides a computer-readable storage medium, in which at least one computer program instruction is stored. The computer program instruction is loaded and executed by a processor to implement any one of the methods provided in the second aspect above.
[0068] In an eighth aspect, an embodiment of the present application provides a computer program product, comprising computer execution instructions, which, when executed on a computer, enable the computer to execute any one of the methods provided in the second aspect.
[0069] The technical effects brought about by any implementation method in the third to sixth aspects can be referred to the technical effects brought about by the corresponding implementation methods in the first and second aspects, and will not be repeated here.
[0070] In the embodiment of the present application, when planning and designing the on-chip network, a loopback path is added to the routing nodes in the on-chip network in advance. In this way, when a single point failure occurs in the on-chip network during production, construction or operation, the area where the single point failure occurs can be located by detection, and then the failed routing node in the on-chip network is determined. Then, the target routing node with a loopback path upstream of the failed routing node is determined on the same Ring, and the loopback path of the target routing node is enabled to disconnect it from the failed routing node. In this way, the failed routing node will be isolated outside the Ring, thereby avoiding affecting the data transmission on the Ring and preventing the paralysis of the entire on-chip network caused by the spread of the fault. At the same time, the non-failed routing nodes can still be interconnected through the new Ring structure, and the new transmission path can be replanned through the routing strategy, so that the on-chip network can still realize the communication function, that is, the on-chip network can support Partial-Good even if a single point failure occurs. The embodiment of the present application can realize the Partial-Good function of the on-chip network by reserving a low-cost loopback path for the network node, which can greatly improve the yield of the chip at a low cost. BRIEF DESCRIPTION OF THE DRAWINGS
[0071] Figure 1 A schematic diagram of the structure of a chip provided in an embodiment of the present application;
[0072] Figure 2 A schematic diagram of the structure of a network on chip shown in an embodiment of the present application;
[0073] Figure 3 A schematic diagram of the structure of another network on chip shown in an embodiment of the present application;
[0074] Figure 4 A schematic diagram of the structure of a network node provided in an embodiment of the present application;
[0075] Figure 5 A schematic diagram of the structure of a network on chip provided in an embodiment of the present application;
[0076] Figure 6 A schematic diagram of the structure of another network on chip provided in an embodiment of the present application;
[0077] Figure 7 A schematic diagram of a flow chart of a method for configuring a network on chip provided in an embodiment of the present application;
[0078] Figure 8A schematic diagram of the structure of another network on chip provided in an embodiment of the present application;
[0079] Fig. 9 A schematic diagram of the structure of another network on chip provided in an embodiment of the present application;
[0080] Fig.10 A schematic diagram of a flow chart of another method for configuring a network node provided in an embodiment of the present application;
[0081] Fig.11 A schematic diagram of a flow chart of another method for configuring a network node provided in an embodiment of the present application;
[0082] Fig.12 A schematic diagram of the structure of another network on chip provided in an embodiment of the present application;
[0083] Fig.13 A schematic diagram of a flow chart of another method for configuring a network node provided in an embodiment of the present application;
[0084] Fig.14 A flowchart of a method for using a network on chip provided in an embodiment of the present application;
[0085] Fig.15 A schematic diagram of the structure of a configuration device for a network on chip provided in an embodiment of the present application;
[0086] Fig.16 It is a structural diagram of a network configuration device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0087] The embodiment of the present application provides a chip, a configuration method of an on-chip network, and related equipment. In the embodiment of the present application, there is a routing node with a loopback path in the on-chip network of the chip. In this way, when a single point failure occurs in the on-chip network, the loopback path near the failed routing node is enabled to loop back the message in transit, thereby isolating the failed routing node. In this way, the spread of faults can be avoided, and the routing nodes that have not failed can still be interconnected, thereby ensuring the communication function of the on-chip network, and then effectively supporting the Partial-Good of the on-chip network, and improving the yield of the chip.
[0088] In the description of this application, unless otherwise specified, " / " indicates that the objects associated with each other are in an "or" relationship, for example, A / B can represent A or B; "and / or" in this application is merely a description of the association relationship between associated objects, indicating that three relationships may exist, for example, A and / or B can represent: A exists alone, A and B exist at the same time, and B exists alone, where A and B can be singular or plural.
[0089] In the description of this application, unless otherwise specified, "plurality" means two or more than two. "At least one of the following" or similar expressions refers to any combination of these items, including any combination of single items or plural items. For example, at least one of a, b, or c can mean: a, b, c, ab, ac, bc, or abc, where a, b, and c can be single or multiple.
[0090] In addition, in order to clearly describe the technical solutions of the embodiments of the present application, in the embodiments of the present application, words such as "first" and "second" are used to distinguish the same items or similar items with substantially the same functions and effects. Those skilled in the art can understand that words such as "first" and "second" do not limit the quantity and execution order, and words such as "first" and "second" do not necessarily limit the difference.
[0091] In the embodiments of the present application, words such as "exemplary" or "for example" are used to indicate examples, illustrations or descriptions. Any embodiment or design described as "exemplary" or "for example" in the embodiments of the present application should not be interpreted as being more preferred or more advantageous than other embodiments or designs. Specifically, the use of words such as "exemplary" or "for example" is intended to present related concepts in a concrete way for easy understanding.
[0092] It is understood that the "embodiment" mentioned throughout the specification means that the specific features, structures or characteristics related to the embodiment are included in at least one embodiment of the present application. Therefore, the various embodiments in the entire specification do not necessarily refer to the same embodiment. In addition, these specific features, structures or characteristics can be combined in one or more embodiments in any suitable manner. It is understood that in various embodiments of the present application, the size of the sequence number of each process does not mean the order of execution, and the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiment of the present application.
[0093] It can be understood that some optional features in the embodiments of the present application may be implemented independently in certain scenarios without relying on other features, such as the solution on which they are currently based, to solve corresponding technical problems and achieve corresponding effects, or may be combined with other features according to needs in certain scenarios. Accordingly, the devices provided in the embodiments of the present application may also realize these features or functions accordingly, which will not be elaborated here.
[0094] In this application, unless otherwise specified, the same or similar parts between the various embodiments can refer to each other. In this application, if there is no special description or logical conflict between the various embodiments, the terms and / or descriptions between different embodiments are consistent and can be referenced to each other, and different embodiments can be combined to form new embodiments according to their inherent logical relationships. The following implementation methods of this application do not constitute a limitation on the scope of protection of this application.
[0095] In order to facilitate understanding of the technical solutions of the embodiments of the present application, a brief introduction to the relevant technologies of the embodiments of the present application is given below:
[0096] Network on chip (NoC) is a new communication method for system on chip and a major component of multi-core technology. As a new on-chip communication method, NoC has significantly better performance than traditional bus-based systems. Systems based on NoC communication can better adapt to the global asynchronous and local synchronous clock mechanism used in future complex multi-core SoC designs.
[0097] As the scale of chips becomes larger and larger, more and more modules will be integrated on a single chip. At present, the industry generally uses on-chip networks to connect various modules in the chip. Figure 1 This is a schematic diagram of the structure of a chip provided in an embodiment of the present application. Figure 1 As shown, the chip integrates multiple modules, each of which is connected to the on-chip network, and the on-chip network realizes the interconnection of each module. Specifically, the on-chip network includes multiple interconnected routing nodes, each of which is connected to adjacent routing nodes through a bidirectional channel to form a direct network for packet switching, providing a transmission channel for data packets. When each module communicates with other modules, it may need to transmit the message to the on-chip network, which provides a transmission path for the message and forwards it to the destination module.
[0098] From the above description, we can know that if a routing node failure or a link roadblock (single point failure) occurs in the NoC, it may cause a communication failure in the entire on-chip network, making the entire chip unavailable. As the number of routing nodes and links in the on-chip network increases, the probability of a single point failure in the NoC increases further. The randomness of single point failures in the NoC will affect the link distribution and the original topological connection relationship of the entire NoC, causing the originally accessible path to be blocked. In this way, the probability of communication failures in the entire chip system is greatly increased, seriously affecting the chip yield.
[0099] Therefore, the industry currently requires that NoC needs to support Partial-Good, that is, even if a single point of failure occurs in the NoC, it must be able to implement communication functions, so as to avoid the impact of single point failure on system communication. Then, how to support normal access between modules after a random single point failure occurs in the NoC and minimize the impact on the system bandwidth is an important issue that the Partial-Good strategy needs to consider.
[0100] The industry generally adopts the method of adding redundant links or adding redundant nodes to support the Partial-Good of NoC. Specifically, an existing solution supports the Partial-Good of NoC by reserving redundant lines for each link. Figure 2 As shown in the figure, there are main lines (solid lines) and reserved redundant lines (dashed lines) between the routing nodes of the on-chip network. When part of the routing or logic on the main line fails, the reserved lines and logic are enabled to replace the failed routing and logic. In this solution, the original topology of the NoC will not be changed, and the routing and system bandwidth will not be affected after the on-chip network is restored using redundant lines. However, this solution can only solve the scenario where the main line logic fails. If the device (routing node) fails, the NoC cannot be repaired through this solution.
[0101] Another solution is to add redundant interfaces to the routing nodes and connect the redundant interfaces as backup links to achieve Partial-Good of NoC. In this way, when a routing node fails, other routing nodes adjacent to the routing node are configured to enable redundant interfaces and use backup links to complete system interconnection. Furthermore, if you want to keep the system topology unchanged, you need to reserve redundant routing nodes in NoC. Figure 3 As shown in the figure, the entire on-chip network is composed of a mesh array structure composed of many routing nodes. The nodes include routing nodes Routers, and Skip ports are added to Routers. When a node fails due to a defect, the routing nodes around it are programmed to change the connection relationship to bypass the failed routing node. Specifically, the nodes in the top row of the figure are redundant designs. By changing the port connection relationship, the failed routing nodes in the figure are bypassed. This solution requires adding a large number of routing node interfaces and backup nodes, and its resource overhead is huge. Therefore, compared with the above-mentioned existing solutions, how to more reasonably and effectively support the Partial-Good of NoC has become an urgent problem to be solved.
[0102] Based on this, the embodiments of the present application provide a chip, a configuration method of an on-chip network and related equipment. When designing an on-chip network, loopback paths are reserved for some routing nodes in the on-chip network. In this way, when some routing nodes in the on-chip network fail, the target routing nodes with loopback paths around these failed routing nodes are first determined, and then their loopback paths are enabled, and the links connected to the failed routing nodes are disconnected. In this way, the loopback path can isolate the failed routing nodes, thereby avoiding the spread of faults. At the same time, the routing nodes that have not failed can still be interconnected, which can ensure the communication function of the on-chip network and support the Partial-Good of the on-chip network. The embodiments of the present application are described in detail below.
[0103] In the embodiment of the present application, when designing the on-chip network, loopback paths are reserved for some routing nodes. Figure 4 A schematic diagram of the structure of a routing node provided in an embodiment of the present application. Figure 4 As shown, the solid line is the main path between the routing nodes, and the dotted line is the loopback path added for the routing node. When each routing node is operating normally, the message is transmitted on the main path, and when there is a failed routing node, it is necessary to enable the loopback path on some non-failed routing nodes, disconnect the main path between the non-failed routing nodes and the failed routing nodes, so that the failed routing nodes can be bypassed. Exemplarily, when a node failure occurs in routing node 2 or a connection failure occurs in the main path between routing node 1 and routing node 2, the loopback path of routing node 1 can be enabled to disconnect routing node 1 and routing node 2. In this way, when the message is transmitted to routing node 1, it will no longer be transmitted in the direction of routing node 2, but will be transmitted back through the loopback path. At this time, routing node 2 will be isolated.
[0104] When designing an on-chip network, a loopback path can be reserved for each routing node in the network, so that single-point isolation can be achieved, that is, each routing node can be individually isolated when a failure occurs. In order to reduce costs, loopback paths can also be reserved only on some routing nodes. For example, according to the on-chip network topology map, some routing nodes can be evenly selected in various areas, and loopback paths can be added to these network nodes. It can be understood that the loopback path can be planned according to the specific network topology map, and there is no limitation here.
[0105] Based on the above routing nodes, the structure of the on-chip network is briefly introduced below. The on-chip network can be a single ring topology structure including a ring topology structure, or a mesh network topology structure composed of multiple ring topologies.
[0106] For example, Figure 5 The schematic diagram of the structure of a network on chip provided by the embodiment of the present application is as follows. Figure 5As shown, the on-chip network is a single-ring topology, that is, the entire on-chip network includes a Ring topology, which is composed of routing nodes connected end to end to form a closed loop. Among them, in the Ring topology, each routing node has only physical links with two adjacent routing nodes on the left and right, and the physical link is bidirectional. All routing nodes on the Ring can forward data to the right on the Ring. In the Ring topology, a message can only be transmitted in one direction, and each routing node that receives the message needs to forward the message to its downstream network node until it reaches the destination node and exits the Ring transmission. Among them, the upper ring node is the routing node that starts transmitting the message on the Ring, which is related to the source address of the message, and the lower ring node is the routing node that stops transmitting the message on the Ring, which is related to the destination address of the message. Specifically, the message needs to be transmitted from the upper ring node to the Ring, and the upper ring node will determine the transmission direction of the message based on the position of the lower ring node. For example, if the distance between the lower ring node and the upper ring node is less than half of the total number of network nodes in the clockwise direction, the upper ring node will control the message to be transmitted in the clockwise direction. If the distance between the lower ring node and the upper ring node is less than half of the total number of network nodes in the counterclockwise direction, the upper ring node will control the message to be transmitted in the counterclockwise direction.
[0107] For example, Figure 6 This is a schematic diagram of another on-chip network structure provided in an embodiment of the present application. Figure 6 As shown in Figure 1, the network structure is a mesh topology composed of multiple Ring structures, where each Ring structure is connected to Figure 5 The single ring structure shown is similar, but the Rings are interconnected through the switching nodes. Figure 6 In the figure, routing nodes X1, X2, X3, etc. are all ring switching nodes. It can be understood that the ring switching node corresponds to two intersecting Rings. It can transfer the message on one Ring to another Ring according to the routing information, and is a key node for interconnecting multiple Rings. Exemplarily, the ring switching node can be a routing node shared by two intersecting ring topologies, or it can be two routing nodes that can exchange data on two ring topologies, and there is no specific limitation. In addition, a Ring can intersect with multiple Rings, corresponding to multiple ring switching nodes. For example, the ring switching nodes X1, X2, X3, and X4 on H0-0 can transmit the message transmitted on H0-0 to V0-0, V1-0, V2-0, and V3-0, so as to provide multiple transmission paths for the message.
[0108] It can be understood that the ring switching node is the initial routing node that transmits the message to a downstream Ring, and is also the last routing node where the message stops transmitting on the upstream Ring. Therefore, the ring switching node can be the upstream ring node of a Ring and the downstream ring node of a Ring.
[0109] Based on the above-mentioned on-chip network, Figure 7 The flowchart of a method for configuring a network on chip provided by an embodiment of the present application is shown in FIG. Figure 7 As shown, the method includes:
[0110] 701. Detect the on-chip network to determine failed routing nodes in the on-chip network.
[0111] like Figure 8 As shown in the figure, the on-chip network is a mesh topology network composed of multiple ring topologies. Among them, the message on each ring is transmitted to the next routing node along a fixed direction. When encountering a ring switching node, it is necessary to decide whether to switch rings according to the routing strategy and whether to allow the message to be transmitted to another ring. In this way, the routing strategy selects a transmission path for the message, and then transmits the message to the destination routing node along the transmission path.
[0112] When there is no single point failure in the on-chip network, a transmission path will be selected for each message based on the original network topology and routing strategy. However, when a single point failure occurs, the originally accessible transmission path is likely to become unreachable, and the message cannot be transmitted normally. At this time, it is necessary to detect the entire on-chip network, first determine where the on-chip network fails, and then determine the failed routing node. It can be understood that a failed routing node refers to a routing node that cannot transmit the message to the main link due to a failure.
[0113] Exemplarily, when a logical failure is detected in routing node 2, routing node 2 is a failed routing node. For another example, if a link failure occurs between routing node 1 and routing node 2, and a link failure also occurs between routing node 2 and routing node 3, routing node 2 is also a failed routing node. It can be understood that each routing node in the on-chip network can be detected in turn, and multiple routing nodes can be detected as a whole at the same time in different regions. For example, routing nodes 1, 2, and 3 can be detected as a whole. When it is detected that this part cannot transmit messages normally, it can be determined that routing nodes 1, 2, and 3 are all failed routing nodes.
[0114] 702. Determine a target routing node adjacent to the failed routing node.
[0115] After locating the failed routing node in the on-chip network, it is necessary to find a target routing node with a loopback path adjacent to the failed routing node in the same Ring, and then enable the loopback path to isolate the failed routing node. For example, the target routing node closest to the failed routing node can be found on the left and right sides of the failed routing node, so as to retain as many normal network nodes as possible and ensure the integrity of the on-chip network as much as possible.
[0116] like Figure 8 As shown, when a node logic failure is detected in routing node 7 on the Ring topology H1-0, it is necessary to find the target routing node with a loopback path closest to routing node 7 on H1-0. Exemplarily, if routing nodes 6 and 8 adjacent to the left and right sides of routing node 7 have reserved loopback paths, then the target routing nodes corresponding to routing node 8 are routing nodes 6 and 8. However, if routing nodes 6 and 8 do not have loopback paths, it is necessary to continue searching along H1-0 to both sides. Exemplarily, if loopback paths are reserved on switching nodes X1 and switching nodes X2, then the target routing nodes corresponding to routing node 7 are switching nodes X1 and switching nodes X2.
[0117] It is understandable that if a single point failure occurs in the link between routing node 6 and routing node 7 on the Ring topology H1-0, and both routing node 6 and routing node 7 happen to have a loopback path reserved, then the routing node 6 and routing node 7 closest to the failure in the on-chip network are the target routing nodes. Therefore, the embodiments of the present application include but are not limited to the case of node failure. As long as a single point failure occurs in the on-chip network, the network node closest to the single point failure and having a loopback path is determined as the target routing node.
[0118] 703. Enable the loopback path of the target routing node to update the topology structure of the on-chip network.
[0119] Then the loopback path of the target routing node is enabled, and the connection between the target routing node and the failed routing node is disconnected. In this way, a new Ring topology is generated, the failed routing node will be isolated outside the Ring topology, and the topology of the entire on-chip network will also change.
[0120] 704. Reconfigure routing nodes in the on-chip network according to the updated topology.
[0121] After the topology of the on-chip network is changed, it is necessary to reconfigure each routing node according to the routing strategy to change the transmission path of the network traffic. A single point failure makes the originally accessible path unreachable. Therefore, after isolating the single point roadblock and changing the topology of the on-chip network, it is necessary to replan the path according to the routing strategy to ensure the communication function of the on-chip network. In this way, even if the original transmission path of a message is blocked, it can reach the destination node from other links.
[0122] In the embodiment of the present application, when planning and designing the on-chip network, a loopback path is added to the routing nodes in the on-chip network in advance. In this way, when a single point failure occurs in the on-chip network during production, construction or operation, the area where the single point failure occurs can be located by detection, and then the failed routing node in the on-chip network is determined. Then, the target routing node with a loopback path upstream of the failed routing node is determined on the same Ring, and the loopback path of the target routing node is enabled to disconnect it from the failed routing node. In this way, the failed routing node will be isolated outside the Ring, thereby avoiding affecting the data transmission on the Ring and preventing the paralysis of the entire on-chip network caused by the spread of the fault. At the same time, the non-failed routing nodes can still be interconnected through the new Ring structure, and the new transmission path can be replanned through the routing strategy, so that the on-chip network can still realize the communication function, that is, the on-chip network can support Partial-Good even if a single point failure occurs. The embodiment of the present application can realize the Partial-Good function of the on-chip network by reserving a low-cost loopback path for the network node, which can greatly improve the yield of the chip at a low cost.
[0123] The following describes in detail the process of reconfiguring routing nodes after enabling the loopback path, combining the two network-on-chip topologies mentioned above:
[0124] (I) Single ring topology:
[0125] Specifically, when a single point failure occurs on the Ring and causes a node to fail, the failed routing node can be used as a starting point to search for the target routing node on both sides in turn, and the loopback path of the target routing node can be enabled. Fig. 9 In the example, if routing node 11 is a failed routing node, then first determine whether the routing nodes 10 and 12 adjacent to it have reserved loopback paths. If yes, then enable the loopback paths on routing nodes 10 and 12, disconnect the links between routing nodes 10, 12 and failed routing node 11, so as to isolate routing node 11. If no loopback paths are reserved on routing nodes 10 and 12, then continue to check whether there are loopback paths on routing nodes 9 and 13... until the target routing node is found.
[0126] It is understandable that a single point failure on the original Ring will cause the entire Ring to be paralyzed. After enabling the loopback path of the target routing node, the other network nodes on the Ring except the failed routing node are still connected, so that other routing nodes can continue to complete communication. Exemplarily, each routing node can also be reconfigured to update the message transmission direction of the Ring.
[0127] Fig.10 FIG. 1 is a flow chart showing a method for configuring a routing node. Fig.10 As shown, the method includes:
[0128] 1001. Determine an upper ring node and a lower ring node in a ring topology structure.
[0129] First, it is necessary to determine the uplink node and downlink node in the single ring topology structure based on the source node address and destination node address corresponding to the message. That is, it is necessary to determine the routing node that obtains the sending right based on the source node address corresponding to the message. This routing node is the uplink node where the message enters the Ring for transmission. After the message enters the Ring through the uplink node, it will be transmitted to the next routing node in a fixed direction until it reaches the destination node and exits the Ring. The destination node is the downlink node.
[0130] Among them, the message transmission on the Ring is unidirectional, that is, the upper ring node needs to determine the transmission direction of the message according to the location of the lower ring node, and then transmit the message in sequence according to the transmission direction until the message reaches the lower ring node. Fig. 9 In the example, if the upper ring node is routing node 0 and the lower ring node is routing node 4, then when there is no single point failure, the message transmission direction corresponding to the upper ring node is clockwise. If the upper ring node is routing node 0 and the lower ring node is routing node 10, then when there is no single point failure, the message transmission direction corresponding to the upper ring node is counterclockwise.
[0131] 1002. Configure an upper ring node according to a positional relationship among an upper ring node in the ring topology structure, a lower ring node in the ring topology structure, and a failed routing node in the ring topology structure.
[0132] When a single point failure occurs in a single-ring topology, the loopback paths of some routing nodes are enabled, and the failed routing nodes are isolated outside the Ring. If the original transmission strategy is continued, the message is likely to be transmitted in the direction of the failed routing node, and then looped back through the enabled loopback path, which will cause a detour. In order to avoid invalid detours, the message transmission direction corresponding to the ring node can be configured in advance according to the location of the failed routing node.
[0133] Based on this, Fig.11 The following is a flow chart of a method for configuring a routing node provided in an embodiment of the present application. Fig.11 As shown, the method includes:
[0134] 1101. Determine the number of routing nodes in the single-ring topology structure before updating.
[0135] First, it is necessary to determine the message transmission direction of the upper ring node before the single point failure occurs. The message transmission direction is related to the positional relationship between the upper ring node and the lower ring node. Specifically, first obtain the number of nodes in the single ring topology structure before the update, and determine the relative positional relationship between the upper ring node and the lower ring node based on the number.
[0136] 1102. Determine the number of node hops between an upper ring node and a lower ring node along a first transmission direction in a single ring topology structure before updating.
[0137] Next, it is necessary to determine the number of node hops of the upper ring node and the lower ring node along a certain transmission direction before the single point failure occurs. It can be understood that if the number of node hops is less than half of the total number of nodes, then it means that the message transmission direction corresponding to the original upper ring node is consistent with the first transmission direction, and if the number of node hops is greater than half of the total number of nodes, then it means that the message transmission direction corresponding to the original upper ring node is opposite to the first transmission direction.
[0138] 1103. If the node hop count is less than half of the number of nodes, and the failed routing node is located between the upper ring node and the lower ring node along the first transmission direction, configure the message transmission direction corresponding to the upper ring node to be a second transmission direction opposite to the first transmission direction.
[0139] From the above description, it can be known that if the number of node hops is less than half of the number of nodes, it means that the original message transmission direction of the previous ring node is the first transmission direction. If the number of node hops is greater than half of the number of nodes, it means that the original message transmission direction of the previous ring node is the second transmission direction opposite to the first transmission direction.
[0140] At this time, if the original message transmission direction along the upper ring node is the first transmission direction, and along the first transmission direction, the failed routing node is located between the upper ring node and the lower ring node, then when a single point failure occurs, the message cannot pass through the failed routing node, but will return to the upper ring node along the loopback path. At this time, the loopback path will change the message transmission direction. Then, in order to avoid invalid detours of messages, the message transmission direction of the upper ring node can be changed in advance, and its transmission direction can be directly configured to the second transmission direction opposite to the first transmission direction. In this way, the message does not need to be looped back on the loopback path, avoiding transmission detours.
[0141] For example, in Fig. 9In the example, if the uplink node is routing node 0 and the downlink node is routing node 10, then it can be known that the original message transmission direction corresponding to routing node 0 is counterclockwise. Since the failed routing node is routing node 11, which is located between routing node 0 and routing node 10, if the message is still transmitted in the original transmission direction, it will be looped back through the loopback path when it is transmitted to routing node 12, and then transmitted clockwise to routing node 10. In this case, if the transmission direction of routing node 0 is changed to clockwise in advance, the message avoids invalid detours and does not need to be transmitted to routing node 13, routing node 12, and then transmitted back to routing node 0. This can reduce network transmission delay and save link resources.
[0142] (II) Grid structure composed of multiple ring topology structures:
[0143] like Fig.12 As shown in Figure 1, when a single point of failure occurs in the on-chip network, the failed routing node can be isolated by enabling the loopback path of the surrounding routing nodes. After isolation, the topology of the original on-chip network will change. For example, Fig.12 In the original case, each row may have only one ring, but due to the appearance of failed routing nodes, after enabling the loopback path, the first row is divided into two ring topologies H0-0 and H0-1, and the second row is divided into two ring topologies H1-0 and H1-1. At this time, it is necessary to reconfigure each routing node according to the routing strategy to establish a new message transmission path to restore the communication of the entire on-chip network.
[0144] The following is based on Fig.12 The topology shown provides a detailed description of the configuration process of the routing node:
[0145] It is understandable that when the topology of the on-chip network changes, it is necessary to re-route the message according to the routing strategy to determine the new message transmission path. Specifically, it is necessary to configure each switching node according to the routing strategy to determine the message transmission path. Among them, the routing strategy can be to use the number of ring changes as the routing hop count, and use the Bellman-Ford algorithm to calculate the distance (number of hops) between any two rings. In this way, each time the message passes through the switching node, it is only allowed to be switched to the ring closer to the destination ring to avoid livelock or deadlock problems. That is, the message follows the principle of minimum path transmission.
[0146] Exemplarily, the routing strategy may also be to select a route based on the load of the Ring, that is, during the message transmission process, the ring switching node is only allowed to transmit the message to the Ring with a lighter load, so that load balancing can be achieved.
[0147] Based on the above routing strategy, Fig.13A flowchart of another method for configuring a network node provided in an embodiment of the present application.
[0148] like Fig.13 As shown, the method includes:
[0149] 1301. Determine the destination ring topology structure in the updated on-chip network according to the destination node address corresponding to the message.
[0150] First, according to the destination node address corresponding to the message, the destination node corresponding to the message is located in the on-chip network, and the destination Ring where the destination node is located is determined. Then, for any ring switching node on the on-chip network, it is only allowed to switch the message to a ring closer to the destination Ring.
[0151] 1302. Obtain a first ring switching node.
[0152] For any switching node of the on-chip network, each switching node corresponds to two intersecting rings, and the message on one ring can be transferred to another ring. Exemplarily, for one of the switching nodes, the first switching node corresponds to the second ring topology structure and the third ring topology structure.
[0153] 1303. Determine a first hop count from the second ring topology structure to the destination ring topology structure.
[0154] In the above example, the first ring switching node belongs to both the second ring topology and the third ring topology, that is, the ring switching node connects two rings. Then, first, the number of ring switching from the second ring topology to the destination ring topology, that is, the first hop count, must be determined. It can be understood that the first hop count represents the distance from the second ring topology to the destination ring topology.
[0155] 1304. Determine a second hop count from the third ring topology structure to the destination ring topology structure.
[0156] Then, the number of ring changes from the third ring topology structure to the destination ring topology structure, that is, the second hop count, needs to be determined. Similarly, the second hop count represents the distance from the third ring topology structure to the destination ring topology structure.
[0157] 1305. Configure a first ring switching node according to the first hop count and the second hop count.
[0158] Next, the first ring switching node needs to be configured according to the first hop count and the second hop count. Specifically, if the first hop count is smaller than the second hop count, it means that the distance from the second ring topology structure to the destination ring topology structure is smaller than the distance from the third ring topology structure to the destination ring topology structure. When the message is transmitted to the second ring topology structure, the first ring switching node will not allow the message to be transmitted to the third ring topology structure. If the first hop count is larger than the second hop count, it means that the distance from the second ring topology structure to the destination ring topology structure is larger than the distance from the third ring topology structure to the destination ring topology structure. When the message is transmitted to the second ring topology structure, the ring switching node needs to transmit the message transmitted on the second ring topology structure to the third ring topology structure.
[0159] From the above description, it can be seen that the ring switching node will pass the message to the Ring close to the destination Ring, which can ensure the minimum path transmission of the message and improve the transmission efficiency of the message.
[0160] For example, if there are multiple ring switching nodes on a Ring, then it is necessary to compare and select the best ring switching node for ring switching transmission. In the above embodiment, if there is a second ring switching node, the second ring switching node can switch the message from the second ring topology structure to the sixth ring topology structure. That is, the second ring topology structure intersects with the third ring topology structure and the sixth ring topology structure respectively. Then, it is necessary to determine the number of ring switching from the sixth ring topology structure to the destination ring topology structure, that is, the third hop count. It can be understood that the third hop count represents the distance from the sixth ring topology structure to the destination ring topology structure.
[0161] Then, if the first hop count is the smallest, that is, the second ring topology is closest to the destination ring topology, the message is not allowed to be switched to the third ring topology and the sixth ring topology. At this time, the first switching node and the second switching node are configured not to switch the message.
[0162] If the second hop count is the smallest, that is, the third ring topology is closest to the destination ring topology, then the message is allowed to be switched to the third ring topology but not to the sixth ring topology. At this time, the first ring switching node is configured to forward the message on a ring switching basis, while the second ring switching node is configured not to forward the message on a ring switching basis.
[0163] If the third hop count is the smallest, that is, the sixth ring topology is closest to the destination ring topology, then the message is allowed to be switched to the sixth ring topology but not to the third ring topology. At this time, the first ring switching node is configured not to forward the message by switching the ring, and the second ring switching node is configured to forward the message by switching the ring.
[0164] If the second hop count is the same as the third hop count and is smaller than the first hop count, then it is necessary to determine which ring the message is switched to based on the load conditions on the third ring topology structure and the sixth ring topology structure. For example, if the load in the third ring topology structure is less than the load in the sixth ring topology structure, then the first ring switching node is configured to transfer the message from the second ring topology structure to the third ring topology structure, and the second ring switching node is configured not to perform ring switching on the message. In this way, network congestion can be alleviated, load balancing can be achieved, and bandwidth utilization can be improved.
[0165] The above embodiment is introduced below with reference to a specific example:
[0166] like Fig.12 As shown in the figure, the message needs to be sent from node 0 of Ring H0-0 to node 1 of Ring H1-1. The distances from each Ring to the destination H1-1 are calculated during initialization as shown in the numbers in the figure. The route to the destination will go through the following process:
[0167] On Ring H0-0, when the message passes through the ring switching node between Ring H0-0 and Ring V0-0, since the distance from Ring H0-0 to the destination Ring H1-1 is 4, and the distance from Ring V0-0 to the destination Ring H1-1 is 3, it is necessary to configure the ring switching node to allow ring switching here and transmit it to Ring V0-0.
[0168] There are three ring switching nodes on Ring V0-0, and these three ring switching nodes correspond to Ring H0-0, Ring H1-0 and Ring H2-0 respectively. Among them, the distance from Ring V0-0 to the destination Ring is 3, and the distances from Ring H0-0 and Ring H1-0 to the destination Ring are both 4, and the distance from Ring H2-0 to the destination Ring is 2. Therefore, it is necessary to configure the ring switching nodes of Ring V0-0 and Ring H2-0 to switch rings, and the other two ring switching nodes are not allowed to switch rings.
[0169] On Ring H2-0, the message can be switched to Ring V0-0, Ring V1-0, Ring V2-0 and Ring V3-0. Among them, only the distance from Ring V3-0 to the destination Ring is 1, and the distances from the other Rings to the destination Ring are all 3. Therefore, only the ring switching node between Ring H2-0 and Ring V3-0 is allowed to switch rings, that is, only the message is allowed to be switched to Ring V3-0.
[0170] Similarly, on Ring V3-0, only the ring switching nodes of Ring V3-0 and Ring H1-1 are allowed to switch rings. At this time, the message will be forwarded to Ring H1-1 according to the minimum transmission path, and then transmitted to the destination node on Ring H1-1.
[0171] For example, when a message sent from a node on Ring H1-0 to a destination node on Ring H1-1 circulates on Ring H1-0, since the distances from Ring V0-0, Ring V1-0, and Ring V2-1 to the destination Ring are all 3, the Ring can be changed at these three switching nodes. At this time, it is necessary to determine the final switching node for the Ring according to the load conditions on Ring V0-0, Ring V1-0, and Ring V2-1, so that the message is delivered to the Ring with a smaller load to achieve load balancing.
[0172] It is understandable that by configuring the switching nodes, the transmission path for the message can be re-planned. When the transmission path is determined, the upper ring node and the lower ring node on each Ring will also be determined. It is understandable that in a mesh structure composed of multiple ring topology structures, the upper ring node and the lower ring node are both switching nodes. At this time, for each of the Rings, the message transmission direction of the upper ring node can also be configured according to the positional relationship between the upper ring node and the lower ring node. The specific configuration method is the same as Fig.11 The method for configuring the uplink node of the single-ring topology in the illustrated embodiment is similar and will not be described in detail here.
[0173] Based on the above description, Fig.14 A flowchart of a method for using a network on chip provided in an embodiment of the present application. Fig.14 As shown, the method includes the following steps:
[0174] 1401. Receive a message sent by an integrated module.
[0175] When the integrated module on the chip needs to communicate, it needs to send a communication message to the on-chip network. After receiving the message, the on-chip network needs to determine the transmission path for the message based on the source address and destination address of the message. And forward the message to the destination according to the transmission path to complete the communication process.
[0176] 1402. Determine a transmission path of the message in the on-chip network according to the topological structure of the on-chip network.
[0177] Among them, the on-chip network is composed of interconnected routing nodes. When a single point failure occurs in the on-chip network, some routing nodes will fail. In order to avoid the paralysis of the entire on-chip network, it is necessary to enable the loopback path of some nodes and isolate the failed routing nodes. At this time, the remaining routing nodes that have not failed will be interconnected due to the activation of the loopback path. In this way, the on-chip network needs to re-plan the transmission path of the message based on the network links provided by the interconnected routing nodes that have not failed, and then transmit the message according to the transmission path. It can be understood that the process of planning the path can refer to the above-mentioned routing node configuration process. The on-chip network can select the optimal path for the message based on the source address, destination address and routing strategy of the message.
[0178] 1403. Forward the message on a routing node of the on-chip network according to the transmission path.
[0179] After planning the transmission path, it is necessary to forward the message on the on-chip network according to the transmission path until the message is forwarded to the destination module to complete the communication process.
[0180] In the embodiment of the present application, when a single point failure occurs in the on-chip network, the fault will be isolated by enabling the loopback path of certain routing nodes, and other routing nodes that have not failed will be interconnected due to the activation of the loopback path. In this way, even if the original path is unreachable, the on-chip network can re-plan the transmission path based on the interconnected non-failed routing nodes. Therefore, the communication function of the on-chip network can be guaranteed, thereby effectively supporting the Partial-Good of the on-chip network.
[0181] Based on the above description, the embodiment of the present application also provides a configuration device for an on-chip network. In the embodiment of the present application, the bus controller can be divided into functional modules according to the above method example. For example, each functional module can be divided corresponding to each function, or two or more functions can be integrated into one processing module. The above integrated module can be implemented in the form of hardware or in the form of software functional modules. It should be noted that the division of modules in the embodiment of the present invention is schematic and is only a logical function division. There may be other division methods in actual implementation.
[0182] In the case of dividing each functional module into corresponding functional modules, Fig.15 A possible structural diagram of the configuration device of the network on chip involved in the above embodiment is shown. Fig.15 As shown, the configuration device of the network on chip is applied to the network on chip. The network on chip includes at least one ring topology structure, and there is at least one network node with a loop path in the ring topology structure. The device includes:
[0183] The detection unit 1501 is used to detect the on-chip network and determine the failed routing nodes in the on-chip network.
[0184] The determining unit 1502 is used to determine a target routing node adjacent to the failed routing node, wherein the target routing node and the failed routing node belong to the same ring topology structure, and the target routing node has a loopback path, which is a network link looped from the target routing node to the local network.
[0185] The processing unit 1503 is used to enable the loopback path of the target routing node to update the topology structure of the on-chip network.
[0186] The processing unit 1503 is further configured to reconfigure routing nodes in the on-chip network according to the updated topology structure.
[0187] In an optional implementation, the determination unit 1502 is further configured to determine an upper ring node in each ring topology of at least one ring topology, where the upper ring node is a routing node that starts transmitting a message on each ring topology.
[0188] The processing unit 1503 is specifically configured to reconfigure the message transmission direction corresponding to the upper ring node according to the updated topology structure.
[0189] In an optional implementation, the determination unit 1502 is further configured to determine a down-ring node in the first ring topology structure, where there is a failed routing node, and the down-ring node is a routing node on the first ring topology structure that stops transmitting messages.
[0190] The processing unit 1503 is specifically configured to determine the message transmission direction corresponding to the upper ring node in the first ring topology according to the positional relationship between the upper ring node in the first ring topology, the lower ring node in the first ring topology, and the failed routing node in the first ring topology.
[0191] In an optional implementation, the determining unit 1502 is further configured to determine the number of routing nodes in the first ring topology.
[0192] The determining unit 1502 is further configured to determine the number of node hops between an upper ring node in the first ring topology and a lower ring node in the first ring topology along the first transmission direction.
[0193] The processing unit 1503 is specifically configured to configure the message transmission direction corresponding to the upper ring node in the first ring topology to be the second transmission direction if the number of node hops is less than half of the number of routing nodes and the failed routing node in the first ring topology is located between the upper ring node in the first ring topology and the lower ring node in the first ring topology along the first transmission direction. The first transmission direction is opposite to the second transmission direction.
[0194] In an optional implementation, the on-chip network is a mesh network topology structure composed of a plurality of ring topology structures.
[0195] The determining unit 1502 is further configured to determine a ring switching node in a plurality of ring topologies, where the ring switching node is used to implement message exchange between two intersecting ring topologies.
[0196] The processing unit 1503 is specifically configured to reconfigure the ring switching node according to the updated topology structure.
[0197] In an optional implementation, the determining unit 1502 is further configured to obtain a first ring switching node, the first ring switching node corresponds to the second ring topology structure and the third ring topology structure, and the second ring topology structure and the third ring topology structure intersect.
[0198] The determining unit 1502 is further configured to determine a destination node address of the message and determine a destination ring topology structure.
[0199] The processing unit 1503 is specifically configured to configure a first ring switching node according to the distances from the second ring topology structure and the third ring topology structure to the destination ring topology structure.
[0200] In an optional implementation, the determining unit 1502 is further configured to obtain a second ring switching node, the second ring switching node corresponds to the fourth ring topology structure and the fifth ring topology structure, and the fourth ring topology structure and the fifth ring topology structure intersect.
[0201] The processing unit 1503 is further configured to configure the second ring switching node according to the load conditions of the fourth ring topology structure and the fifth ring topology structure.
[0202] In an optional implementation, the determining unit 1502 is further configured to determine a first hop count from the second ring topology structure to the destination ring topology structure, where the first hop count is used to indicate the number of ring changes from the second ring topology structure to the destination ring topology structure.
[0203] The determining unit 1502 is further configured to determine a second hop count from the third ring topology structure to the destination ring topology structure, where the second hop count is used to indicate the number of ring changes from the third ring topology structure to the destination ring topology structure.
[0204] The processing unit 1403 is specifically configured to configure a first ring switching node according to the first hop number and the second hop number.
[0205] In an optional implementation, the second hop count is smaller than the first hop count.
[0206] The processing unit 1503 is specifically configured to configure the first ring switching node to transfer the message from the second ring topology structure to the third ring topology structure.
[0207] In an optional implementation, the determining unit 1502 is further configured to obtain a third ring switching node. The third ring switching node corresponds to the second ring topology structure and the sixth ring topology structure. The second ring topology structure intersects with the sixth ring topology structure.
[0208] The determining unit 1502 is further configured to determine a third hop count from the sixth ring topology structure to the destination ring topology structure, where the third hop count is used to indicate the number of ring changes from the sixth ring topology structure to the destination ring topology structure.
[0209] The processing unit 1503 is specifically configured to configure a first switching node and a third switching node according to the first hop number, the second hop number and the third hop number.
[0210] In an optional implementation, the second hop count and the third hop count are both smaller than the first hop count.
[0211] The processing unit 1503 is specifically configured to configure the first ring switching node to transfer the message from the second ring topology structure to the third ring topology structure if the second hop number is smaller than the third hop number, and configure the third ring switching node not to perform ring switching processing on the message.
[0212] If the second hop count is greater than the third hop count, the third ring switching node is configured to transfer the message from the second ring topology structure to the sixth ring topology structure, and the first ring switching node is configured not to perform ring switching processing on the message.
[0213] In an optional implementation, the processing unit 1503 is specifically configured to configure the first switching node and the third switching node according to load conditions corresponding to the third ring topology structure and the sixth ring topology structure if the second hop count is equal to the third hop count.
[0214] In an optional implementation, the processing unit 1503 is specifically used to configure the first ring switching node to transfer the message from the second ring topology structure to the third ring topology structure if the load in the third ring topology structure is less than the load in the sixth ring topology structure, and configure the third ring switching node not to perform ring switching processing on the message.
[0215] The modules of the above-mentioned on-chip network configuration device can also be used to execute other actions in the above-mentioned method embodiment. All relevant contents of each step involved in the above-mentioned method embodiment can be referred to the functional description of the corresponding functional module and will not be repeated here.
[0216] Fig.16 It is a structural diagram of a network configuration device provided in an embodiment of the present application. The network configuration device 1600 may include one or more central processing units (CPU) 1601 and a memory 1602. The memory 1602 stores one or more application programs or data.
[0217] The memory 1602 may be a volatile storage or a persistent storage. The program stored in the memory 1602 may include one or more modules, each of which may include a series of instruction operations in the network configuration device. Furthermore, the central processor 1601 may be configured to communicate with the memory 1602, and the network configuration device 1600 executes a series of instruction operations in the memory 1602.
[0218] The central processor 1601 is used to execute the computer program in the memory 1602, so that the network configuration device 1600 is used to perform: detecting the on-chip network, determining the failed routing node in the on-chip network; determining the target routing node adjacent to the failed routing node; enabling the loopback path of the target routing node, updating the topology structure in the on-chip network; reconfiguring the routing nodes in the on-chip network according to the updated ring topology structure. Please refer to the above embodiments for the specific implementation method, which will not be repeated here.
[0219] Exemplarily, the network configuration device 1600 can be applied on a chip, wherein the network configuration device 1600 and each routing node of the on-chip network are hung on the data bus of the chip, and the network configuration device 1600 is connected to the configuration bus of the chip. In the present application, the network configuration device 1600 sends various instructions for configuring the routing node to the data bus through the configuration bus, and the various instructions are transmitted to each routing node through the data bus, and each routing node then completes its own configuration based on the instructions.
[0220] The present application also provides a computer-readable storage medium in which at least one computer program instruction is stored. The computer program instruction is loaded and executed by a processor to implement the above Figures 7 to 13 The configuration method of the on-chip network in any embodiment is not described in detail here.
[0221] The present application also provides a computer program product, including computer execution instructions, which, when executed on a computer, cause the computer to execute the above Figures 7 to 13 A method for configuring a network on chip in any one of the embodiments.
[0222] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using a software program, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When loading and executing computer program instructions on a computer, all or part of the processes (or functions) described in the embodiments of the present application are implemented. The computer may be a general-purpose computer, a special-purpose computer, a computer network, an executable computing module on a chip, or other programmable devices. The computer instructions may be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be transmitted from a website site, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (digital subscriber line, DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) mode to another website site, computer, server or data center. The computer-readable storage medium may be any available medium that a computer can access or may contain one or more servers, data centers and other data storage devices that can be integrated with the medium. The available medium may be a magnetic medium (eg, a floppy disk, a hard disk, a magnetic tape), an optical medium (eg, a DVD), or a semiconductor medium (eg, a solid state disk (SSD)), etc. In the embodiment of the present application, the computer may include the aforementioned device.
[0223] Although the present application is described herein in conjunction with various embodiments, in the process of implementing the claimed application, those skilled in the art may understand and implement other variations of the disclosed embodiments by viewing the drawings, the disclosure, and the appended claims. In the claims, the word "comprising" does not exclude other components or steps, and "one" or "an" does not exclude multiple situations. A single processor or other unit may implement several functions listed in a claim. Certain measures are recorded in different dependent claims, but this does not mean that these measures cannot be combined to produce good results.
Claims
1. A chip, characterized in that: The chip comprises: Multiple integrated modules and on-chip networks; Wherein, the plurality of integrated modules are respectively connected to the on-chip network; the on-chip network is used to provide a communication link between the plurality of integrated modules; The network on chip includes at least one ring topology structure, and the ring topology structure includes a plurality of routing nodes; Among the multiple routing nodes, there is at least one target routing node having a loopback path; the loopback path is a network link looped back from the target routing node to a local network.
2. The chip according to claim 1, characterized in that: When a communication failure occurs downstream of the target routing node, the loopback path is enabled.
3. The chip according to claim 2, characterized in that: The on-chip network is a single-ring topology structure or a mesh network topology structure composed of multiple ring topology structures.
4. The chip according to claim 3, characterized in that: Each of the at least one ring topology structure comprises an upper ring node and a lower ring node; the upper ring node is a routing node that starts transmitting messages on each ring topology structure, and the lower ring node is a routing node that stops transmitting messages on each ring topology structure; The uplink node is related to the source address of the message, and the downlink node is related to the destination address of the message.
5. The chip according to claim 3, characterized in that: The network on chip is a mesh network topology structure composed of a plurality of ring topology structures, and each of the plurality of ring topology structures further comprises at least one ring switching node; The ring switching node is used to implement message exchange between two intersecting ring topology structures.
6. The chip according to claim 5, characterized in that: Among the plurality of ring topological structures, there is a first ring topological structure having a plurality of ring switching nodes; Each of the plurality of ring switching nodes corresponds to a different second ring topology structure.
7. A method for configuring a network on chip, characterized in that: The network on chip includes at least one ring topology structure, and at least one routing node having a loopback path exists in the at least one ring topology structure; the method includes: Detecting the network on chip to determine failed routing nodes in the network on chip; Determine a target routing node adjacent to the failed routing node; wherein the target routing node and the failed routing node belong to the same ring topology structure, and there is a loopback path for the target routing node; the loopback path is a network link looped back from the target routing node to the local network; enabling a loopback path of the target routing node to update a topology structure of the network on chip; The routing nodes in the on-chip network are reconfigured according to the updated topology.
8. The method according to claim 7, characterized in that The reconfiguring of routing nodes in the on-chip network according to the updated topology structure includes: Determine an upper ring node in each of the at least one ring topology structure; the upper ring node is a routing node that starts transmitting a message on each of the ring topology structures; According to the updated topology structure, the message transmission direction corresponding to the uplink node is reconfigured.
9. The method according to claim 8, characterized in that The reconfiguring the message transmission direction corresponding to the uplink node according to the updated topology structure includes: Determine a downlink node in a first ring topology structure; the first ring topology structure has the failed routing node; the downlink node is a routing node on the first ring topology structure that stops transmitting the message; According to the positional relationship between the upper ring node in the first ring topology, the lower ring node in the first ring topology, and the failed routing node in the first ring topology, the message transmission direction corresponding to the upper ring node in the first ring topology is determined.
10. The method according to claim 9, characterized in that Determining the message transmission direction corresponding to the upper ring node in the first ring topology structure according to the positional relationship between the upper ring node in the first ring topology structure, the lower ring node in the first ring topology structure, and the failed routing node in the first ring topology structure includes: Determining the number of routing nodes in the first ring topology; Determine the number of node hops of an upper ring node in the first ring topology and a lower ring node in the first ring topology along a first transmission direction; If the number of node hops is less than half of the number of routing nodes, and the failed routing node in the first ring topology is located between the upper ring node in the first ring topology and the lower ring node in the first ring topology along the first transmission direction, then the message transmission direction corresponding to the upper ring node in the first ring topology is configured as the second transmission direction; wherein the first transmission direction is opposite to the second transmission direction.
11. The method according to any one of claims 7 to 10, characterized in that: The on-chip network is a mesh network topology structure composed of a plurality of ring topology structures; and reconfiguring routing nodes in the on-chip network according to the updated topology structure includes: Determine a ring switching node in the plurality of ring topologies; the ring switching node is used to implement message exchange between two intersecting ring topologies; The ring switching node is reconfigured according to the updated topology structure.
12. The method according to claim 11, characterized in that The reconfiguring the ring switching node according to the updated topology structure includes: Acquire a first ring switching node; the first ring switching node corresponds to a second ring topology structure and a third ring topology structure, and the second ring topology structure and the third ring topology structure intersect; Determine the destination node address of the message and determine the destination ring topology structure; The first ring switching node is configured according to the distances from the second ring topology structure and the third ring topology structure to the destination ring topology structure.
13. The method according to claim 11, characterized in that The reconfiguring the ring switching node according to the updated topology structure includes: Acquire a second ring switching node; the second ring switching node corresponds to a fourth ring topology structure and a fifth ring topology structure, and the fourth ring topology structure and the fifth ring topology structure intersect; The second ring switching node is configured according to load conditions of the fourth ring topology structure and the fifth ring topology structure.
14. The method according to any one of claims 12 to 13, characterized in that: The configuring the first ring switching node according to the distances from the second ring topology structure and the third ring topology structure to the destination ring topology structure includes: Determine a first hop count from the second ring topology structure to the destination ring topology structure; the first hop count is used to indicate the number of ring changes from the second ring topology structure to the destination ring topology structure; Determine a second hop count from the third ring topology structure to the destination ring topology structure; the second hop count is used to indicate the number of ring changes from the third ring topology structure to the destination ring topology structure; The first ring switching node is configured according to the first hop number and the second hop number.
15. The method according to claim 14, characterized in that The second hop number is less than the first hop number; and configuring the first ring switching node according to the first hop number and the second hop number includes: The first ring switching node is configured to transfer the message from the second ring topology structure to the third ring topology structure.
16. The method according to claim 14, characterized in that The method further comprises: Acquire a third ring switching node; the third ring switching node corresponds to the second ring topology structure and the sixth ring topology structure; wherein the second ring topology structure intersects with the sixth ring topology structure; Determine a third hop count from the sixth ring topology structure to the destination ring topology structure; the third hop count is used to indicate the number of ring changes from the sixth ring topology structure to the destination ring topology structure; The configuring the first ring switching node according to the first hop number and the second hop number includes: The first switching node and the third switching node are configured according to the first hop number, the second hop number and the third hop number.
17. The method according to claim 16, characterized in that The second hop number and the third hop number are both smaller than the first hop number; and configuring the first switching node and the third switching node according to the first hop number, the second hop number and the third hop number includes: If the second hop number is less than the third hop number, configuring the first ring switching node to transfer the message from the second ring topology structure to the third ring topology structure; and configuring the third ring switching node not to perform ring switching processing on the message; If the second hop number is greater than the third hop number, the third ring switching node is configured to transfer the message from the second ring topology structure to the sixth ring topology structure; and the first ring switching node is configured not to perform ring switching processing on the message.
18. The method according to claim 17, characterized in that The method further comprises: If the second hop count is equal to the third hop count, the first switching node and the third switching node are configured according to load conditions corresponding to the third ring topology structure and the sixth ring topology structure.
19. The method according to claim 18, characterized in that The configuring the first switching node and the third switching node according to the load conditions corresponding to the third ring topology structure and the sixth ring topology structure includes: If the load in the third ring topology is less than the load in the sixth ring topology, the first ring switching node is configured to transfer the message from the second ring topology to the third ring topology; and the third ring switching node is configured not to perform ring switching on the message.
20. A method for using a network on chip, applied to a chip, wherein the chip comprises a plurality of integrated modules and the network on chip; wherein: The multiple integrated modules are respectively connected to the on-chip network; the on-chip network is used to provide a communication link between the multiple integrated modules; the method includes: Receiving a message sent by the integrated module; Determine the transmission path of the message in the on-chip network according to the topological structure of the on-chip network; wherein the on-chip network includes at least one ring topological structure, and the ring topological structure includes a plurality of routing nodes; among the plurality of routing nodes, there is at least one target routing node with a loopback path enabled; the loopback path is a network link looped back from the target routing node to a local network; The message is forwarded on a routing node of the on-chip network according to the transmission path.
21. The method according to claim 20, characterized in that In the on-chip network, a communication failure occurs downstream of the target routing node.
22. The method according to any one of claims 20 to 21, characterized in that The on-chip network is a single-ring topology structure or a mesh network topology structure composed of multiple ring topology structures.
23. A configuration device for a network on chip, characterized in that: The network on chip includes at least one ring topology structure, and there is at least one routing node with a loopback path in the ring topology structure; the device includes: A detection unit, configured to detect the network on chip and determine a failed routing node in the network on chip; A determination unit, configured to determine a target routing node adjacent to the failed routing node; wherein the target routing node and the failed routing node belong to the same ring topology structure, and a loopback path exists for the target routing node; and the loopback path is a network link looped back from the target routing node to a local network; A processing unit, configured to enable a loopback path of the target routing node to update a topology structure of the network on chip; The processing unit is further configured to reconfigure routing nodes in the on-chip network according to the updated topology structure.
24. The device according to claim 23, characterized in that The determining unit is further used to determine an upper ring node in each ring topology structure in the at least one ring topology structure; the upper ring node is a routing node that starts transmitting a message on each ring topology structure; The processing unit is specifically configured to reconfigure the message transmission direction corresponding to the uplink node according to the updated topology structure.
25. The device according to claim 24, characterized in that The determining unit is further used to determine a down-ring node in the first ring topology structure; the failed routing node exists in the first ring topology structure; the down-ring node is a routing node on the first ring topology structure that stops transmitting the message; The processing unit is specifically used to determine the message transmission direction corresponding to the upper ring node in the first ring topology structure according to the positional relationship between the upper ring node in the first ring topology structure, the lower ring node in the first ring topology structure, and the failed routing node in the first ring topology structure.
26. The device according to claim 25, characterized in that The determining unit is further configured to determine the number of routing nodes in the first ring topology; The determining unit is further used to determine the number of node hops of an upper ring node in the first ring topology and a lower ring node in the first ring topology along the first transmission direction; The processing unit is specifically used to configure the message transmission direction corresponding to the upper ring node in the first ring topology structure to be the second transmission direction if the number of node hops is less than half of the number of routing nodes, and the failed routing node in the first ring topology structure is located between the upper ring node in the first ring topology structure and the lower ring node in the first ring topology structure along the first transmission direction; wherein the first transmission direction is opposite to the second transmission direction.
27. The device according to any one of claims 23 to 26, characterized in that The on-chip network is a mesh network topology structure composed of multiple ring topology structures; The determining unit is further used to determine a ring switching node in the plurality of ring topologies; the ring switching node is used to implement message exchange between two intersecting ring topologies; The processing unit is specifically configured to reconfigure the ring switching node according to the updated topology structure.
28. The device according to claim 27, characterized in that The determining unit is further used to obtain a first ring switching node; the first ring switching node corresponds to a second ring topology structure and a third ring topology structure, and the second ring topology structure and the third ring topology structure intersect; The determining unit is further used to determine the destination node address of the message and determine the destination ring topology structure; The processing unit is specifically configured to configure the first ring switching node according to the distances from the second ring topology structure and the third ring topology structure to the destination ring topology structure.
29. The device according to claim 27, characterized in that The determining unit is further used to obtain a second ring switching node; the second ring switching node corresponds to a fourth ring topology structure and a fifth ring topology structure, and the fourth ring topology structure and the fifth ring topology structure intersect; The processing unit is further configured to configure the second ring switching node according to load conditions of the fourth ring topology structure and the fifth ring topology structure.
30. The device according to any one of claims 28 to 29, characterized in that The determining unit is further used to determine a first hop count from the second ring topology structure to the destination ring topology structure; the first hop count is used to indicate the number of ring changes from the second ring topology structure to the destination ring topology structure; The determining unit is further used to determine a second hop count from the third ring topology structure to the destination ring topology structure; the second hop count is used to indicate the number of ring changes from the third ring topology structure to the destination ring topology structure; The processing unit is specifically configured to configure the first ring switching node according to the first hop number and the second hop number.
31. The device according to claim 30, characterized in that The second hop number is less than the first hop number; The processing unit is specifically configured to configure the first ring switching node to transfer the message from the second ring topology structure to the third ring topology structure.
32. The device according to claim 30, characterized in that The determining unit is further used to obtain a third ring switching node; the third ring switching node corresponds to the second ring topology structure and the sixth ring topology structure; wherein the second ring topology structure intersects with the sixth ring topology structure; The determining unit is further used to determine a third hop count from the sixth ring topology structure to the destination ring topology structure; the third hop count is used to indicate the number of ring changes from the sixth ring topology structure to the destination ring topology structure; The processing unit is specifically configured to configure the first ring switching node and the third ring switching node according to the first hop number, the second hop number and the third hop number.
33. The device according to claim 32, characterized in that The second hop number and the third hop number are both smaller than the first hop number; The processing unit is specifically configured to configure the first ring switching node to transfer the message from the second ring topology structure to the third ring topology structure if the second hop number is less than the third hop number, and configure the third ring switching node not to perform ring switching processing on the message; If the second hop number is greater than the third hop number, the third ring switching node is configured to transfer the message from the second ring topology structure to the sixth ring topology structure, and the first ring switching node is configured not to perform ring switching processing on the message.
34. The device according to claim 33, characterized in that The processing unit is specifically configured to configure the first switching node and the third switching node according to load conditions corresponding to the third ring topology structure and the sixth ring topology structure if the second hop number is equal to the third hop number.
35. The device according to claim 34, characterized in that The processing unit is specifically configured to configure the first ring switching node to transfer the message from the second ring topology structure to the third ring topology structure if the load in the third ring topology structure is less than the load in the sixth ring topology structure, and configure the third ring switching node not to perform ring switching processing on the message.
36. A network configuration device, applied to a chip, characterized in that: The network configuration device includes a processor and a memory; the processor is coupled to the memory; the memory is used to store computer instructions, and the computer instructions are loaded and executed by the processor to enable the network configuration device to implement the method as described in any one of claims 7-19.
37. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores at least one computer program instruction, and the computer program instruction is loaded and executed by a processor to implement the method according to any one of claims 7 to 19.