Data routing method and device, electronic equipment, storage medium and program product

By using target models and neural network technology in on-chip networks to predict congestion and detect faulty nodes, the high latency and low efficiency problems caused by faults and congestion in multi-core processors are solved, achieving low-latency and high-efficiency data routing and improving system performance.

CN121585604APending Publication Date: 2026-02-27SHANDONG YUNHAI GUOCHUANG CLOUD COMPUTING EQUIP IND INNOVATION CENT CO LTD
View PDF 18 Cites 0 Cited by

Patent Information

Application Number
CN202610113303.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2026-01-28
Publication Date
2026-02-27

AI Technical Summary

Technical Problem

In existing technologies, the problems of high latency and low communication efficiency caused by faults and congestion in multi-core processors by on-chip networks have not been effectively solved, affecting system performance.

Method used

By employing target model-based neural network technology, the system predicts the congestion level of network nodes and makes routing decisions. It detects faulty nodes through broadcast transmission and feedback signals, and determines the optimal routing path by combining congestion level and connectivity, thereby achieving autonomous fault detection and avoidance.

Benefits of technology

It improves the communication efficiency of on-chip networks, reduces transmission latency, and enhances fault tolerance, making it suitable for scenarios such as high-performance computing, industrial control, and cloud computing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121585604A_ABST
    Figure CN121585604A_ABST
Patent Text Reader

Abstract

The invention provides a data routing method and device, electronic equipment, a storage medium and a program product, and is applied to the technical field of network interconnection, and the method comprises the steps: predicting the congestion degree of each node in a network based on a target model; determining at least one path from the starting node to the target node; determining the congestion degree of at least one second node which is adjacent to the first node and is on the at least one path by taking the starting node as the first node; determining a target routing node of the first node based on the congestion degree of the at least one second node; taking the target routing node as a first node, determining the target routing node of the first node based on congestion degrees of other nodes in the network until the target routing node is a target node, and determining that communication from the starting node to the target node is completed; wherein the first node and the second node are on any path of the at least one path; therefore, the routing communication efficiency can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to the field of network interconnection technology, and in particular to a data routing method, apparatus, electronic device, storage medium, and program product. Background Technology

[0002] The on-chip network (ONN) is used as the communication architecture for many-core processors, enabling efficient communication and collaborative work among multiple processing cores, thereby improving the overall system performance. Simultaneously, the ONN provides low-latency, high-bandwidth, and highly reliable communication channels for many-core processors by optimizing routing algorithms, topology, and redirection rules. As the number of cores in many-core processors continues to increase, the frequent exchange of data and information between multiple cores places higher demands on the ONN's fault handling capabilities. To address the high latency and low communication efficiency caused by faults and congestion, the routing control strategy of the ONN needs to be optimized. Summary of the Invention

[0003] This disclosure provides a data routing method, apparatus, electronic device, storage medium, and program product to at least solve the above-mentioned technical problems existing in the prior art.

[0004] According to a first aspect of this disclosure, a data routing method is provided, applied to a network including multiple nodes; the method includes:

[0005] Predict the congestion level of each node in the network based on the target model; Determine at least one path from the starting node to the target node; Using the starting node as the first node, determine the congestion degree of at least one second node that is adjacent to the first node and on the at least one path; Based on the congestion level of the at least one second node, the target routing node of the first node is determined; Using the target routing node as the first node, the target routing node of the first node is determined based on the congestion of other nodes in the network, until the target routing node is the target node, and the communication from the starting node to the target node is completed. The first node and the second node are on either path of the at least one path.

[0006] In the above scheme, the prediction of the congestion degree of each node in the network based on the target model includes: The traffic, remaining storage space, and data throughput of each node in the network are input into the target model, and the output of the target model is determined as the congestion degree of each node.

[0007] In the above scheme, determining at least one path from the starting node to the target node includes: Construct a planar coordinate system with any node in the network as the origin, and determine the coordinates of each node in the planar coordinate system. Based on the coordinates of the starting node and the target node, determine the difference between the starting node and the ending node in the horizontal and vertical directions. Based on the differences between the start node and the end node in the horizontal and vertical directions, determine at least one path from the start node to the target node.

[0008] In the above scheme, determining at least one path from the starting node to the target node based on the difference between the starting node and the ending node in the horizontal and vertical directions includes: Among the multiple paths from the starting node to the target node, the path whose horizontal difference is less than the horizontal difference between the starting node and the ending node, and whose vertical difference is less than the vertical difference between the starting node and the ending node, is at least one path from the starting node to the target node.

[0009] In the above scheme, determining the congestion degree of at least one second node adjacent to the first node and on the at least one path, using the starting node as the first node, includes: Data is broadcast from the first node to at least one second node adjacent to the first node; If no feedback signal for the data is received from any second node within a preset time period, then the second node is determined to be a faulty node. If a feedback signal regarding the data is received from the second node within a preset time period, then the second node is determined to be a non-faulty node. The congestion level of the second node, which is a non-faulty node, is determined based on the target model.

[0010] In the above scheme, determining the target routing node of the first node based on the congestion level of the at least one second node includes: The second node with the lowest congestion among the non-faulty second nodes is identified as the target routing node for the first node.

[0011] In the above scheme, determining the congestion degree of at least one second node adjacent to the first node and on the at least one path, using the starting node as the first node, includes: Data is broadcast from the first node to at least one second node adjacent to the first node; The second node corresponding to the first feedback signal received within a preset time period is identified as the second node that is not faulty; The data is broadcast from the second node that has never failed to at least one third node adjacent to the second node. The node corresponding to the second feedback signal received within a preset time period is identified as the third node that is not faulty; The congestion levels of the second node and the third node that are not faulty are determined based on the target model.

[0012] In the above scheme, determining the target routing node of the first node based on the congestion level of the at least one second node includes: Grouping is determined based on the connection relationship between the second node and the third node; each group includes a second node and a third node adjacent to the second node, and the nodes in each group are not completely identical; The target routing node for the first node is determined based on the product of the congestion levels of the second and third nodes in each group.

[0013] In the above scheme, determining the target routing node for the first node based on the product of the congestion levels of the second and third nodes in each group includes: In the group corresponding to the minimum product of congestion levels, the third node is the target routing node of the first node.

[0014] In the above scheme, determining the target routing node of the first node based on the congestion level of other nodes in the network, using the target routing node as the first node, includes: Using the target routing node as the first node, determine the congestion level of at least one second node that is adjacent to the first node and on the at least one path; Based on the congestion level of the at least one second node, the target routing node of the first node is determined; In response to the target routing node being the target node, the communication from the originating node to the target node is determined to be complete.

[0015] According to a second aspect of this disclosure, a data routing apparatus is provided for use in a network comprising multiple nodes, the apparatus comprising: The prediction unit is used to predict the congestion level of each node in the network based on the target model. The path determination unit is used to determine at least one path from the starting node to the target node; A node congestion determination unit is used to determine the congestion of at least one second node that is adjacent to the first node and on the at least one path, taking the starting node as the first node. A routing decision unit is used to determine the target routing node of the first node based on the congestion level of the at least one second node; The routing decision unit is further configured to, taking the target routing node as the first node, determine the target routing node of the first node based on the congestion of other nodes in the network, until the target routing node is the target node, and determine that the communication from the starting node to the target node is completed. The first node and the second node are on either path of the at least one path.

[0016] In the above scheme, each node corresponds to a data input distribution module, a routing decision module, a data channel selection module, and a data aggregation and output module; The data input distribution module is connected to the data channel selection module and is used to transmit data to be routed to the data channel selection module; The routing decision module is connected to the data channel selection module and the prediction unit respectively. It is used to transmit routing information to the data channel selection module based on the congestion degree of each node output by the prediction unit, so as to instruct the data channel selection module to control the data routing direction. The data aggregation and output module is connected to the routing decision module and the prediction unit respectively. It is used to transmit data to the next node based on the result of the data channel selection module, and transmit the node's traffic data to the prediction unit to improve the prediction accuracy of the prediction unit for the congestion of each node.

[0017] In the above scheme, the prediction unit is specifically used for: The traffic, remaining storage space, and amount of data routed to each node in the network are input into the target model, and the output of the target model is determined as the congestion degree of each node.

[0018] In the above scheme, the path determination unit is specifically used for: Construct a planar coordinate system with any node in the network as the origin, and determine the coordinates of each node in the planar coordinate system. Based on the coordinates of the starting node and the target node, determine the difference between the starting node and the ending node in the horizontal and vertical directions. Based on the differences between the start node and the end node in the horizontal and vertical directions, determine at least one path from the start node to the target node.

[0019] In the above scheme, the path determination unit is specifically used for: Among the multiple paths from the starting node to the target node, the path whose horizontal difference is less than the horizontal difference between the starting node and the ending node, and whose vertical difference is less than the vertical difference between the starting node and the ending node, is at least one path from the starting node to the target node.

[0020] In the above scheme, the node congestion determination unit is specifically used for: Data is broadcast from the first node to at least one second node adjacent to the first node; If no feedback signal for the data is received from any second node within a preset time period, then the second node is determined to be a faulty node. If a feedback signal regarding the data is received from the second node within a preset time period, then the second node is determined to be a non-faulty node. The congestion level of the second node, which is a non-faulty node, is determined based on the target model.

[0021] In the above scheme, the node congestion determination unit is specifically used for: Data is broadcast from the first node to at least one second node adjacent to the first node; The second node corresponding to the first feedback signal received within a preset time period is identified as the second node that is not faulty; The data is broadcast from the second node that has never failed to at least one third node adjacent to the second node. The node corresponding to the second feedback signal received within a preset time period is identified as the third node that is not faulty; The congestion levels of the second node and the third node that are not faulty are determined based on the target model.

[0022] According to a third aspect of this disclosure, an electronic device is provided, comprising: At least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor to enable the at least one processor to perform the methods of this disclosure.

[0023] According to a fourth aspect of this disclosure, a non-transitory computer-readable storage medium is provided storing computer instructions for causing the computer to perform the methods described in this disclosure.

[0024] According to a fifth aspect of this disclosure, a computer program product is provided, comprising a computer program that, when executed by a processor, implements the methods described in this disclosure.

[0025] This disclosed data routing method predicts the congestion level of each node in a network based on a target model; determines at least one path from a starting node to a target node; using the starting node as a first node, determines the congestion level of at least one second node adjacent to the first node and on the at least one path; based on the congestion level of the at least one second node, determines the target routing node for the first node; using the target routing node as the first node, determines the target routing node for the first node based on the congestion levels of other nodes in the network, until the target routing node is determined as the target node, thus completing the communication from the starting node to the target node; wherein the first node and the second node are on any path of the at least one path. In this way, by combining the target model to predict the congestion level of each node in the network, artificial intelligence algorithms are organically integrated with on-chip networks, enabling autonomous fault detection and avoidance, and improving routing communication efficiency.

[0026] It should be understood that the description in this section is not intended to identify key or essential features of the embodiments of this disclosure, nor is it intended to limit the scope of this disclosure. Other features of this disclosure will become readily apparent from the following description. Attached Figure Description

[0027] The above and other objects, features, and advantages of this disclosure will become readily apparent from the following detailed description of exemplary embodiments, taken in conjunction with the accompanying drawings. Several embodiments of this disclosure are illustrated in the drawings by way of example and not limitation, in which: In the accompanying drawings, the same or corresponding reference numerals indicate the same or corresponding parts.

[0028] Figure 1 A schematic diagram of optional structures for on-chip networks in related technologies is shown; Figure 2 A schematic diagram of an on-chip network bypass algorithm in related technologies is shown; Figure 3 A schematic diagram of a first optional process of the data routing method provided in this embodiment of the present disclosure is shown; Figure 4 A schematic diagram of a second optional flow of the data processing method provided in an embodiment of this disclosure is shown; Figure 5 A schematic diagram of a third optional process for the data routing method provided in this disclosure embodiment is shown; Figure 6 A schematic diagram of a fourth optional flow of the data routing method provided in this disclosure embodiment is shown; Figure 7 This diagram illustrates the first possible route redirection process; Figure 8 A schematic diagram of a fifth optional process for the data routing method provided in this disclosure embodiment is shown; Figure 9 A second alternative schematic diagram of the route redirection process is shown; Figure 10 A schematic diagram of an optional structure of the data routing apparatus provided in an embodiment of this disclosure is shown; Figure 11 A schematic diagram of the structure corresponding to the node in an embodiment of this disclosure is shown; Figure 12 A schematic diagram of the composition structure of an electronic device according to an embodiment of the present disclosure is shown. Detailed Implementation

[0029] To make the objectives, features, and advantages of this disclosure more apparent and understandable, the technical solutions in the embodiments of this disclosure will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments of this disclosure, and not all of them. All other embodiments obtained by those skilled in the art based on the embodiments of this disclosure without creative effort are within the scope of protection of this disclosure.

[0030] In the following description, references are made to “some embodiments,” which describe a subset of all possible embodiments. However, it is understood that “some embodiments” may be the same subset or different subsets of all possible embodiments and may be combined with each other without conflict.

[0031] In the following description, the terms "first" and "second" are used merely to distinguish similar objects and do not represent a specific ordering of objects. It is understood that "first" and "second" may be interchanged in a specific order or sequence where permitted, so that the embodiments of this disclosure described herein can be implemented in an order other than that illustrated or described herein.

[0032] Unless otherwise defined, all technical and scientific terms used in this disclosure have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure belongs. The terminology used in this disclosure is for the purpose of describing embodiments of this disclosure only and is not intended to be limiting of this disclosure.

[0033] It should be understood that in the various embodiments of this disclosure, the sequence number of each implementation process does not imply the order of execution. 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 embodiments of this disclosure.

[0034] Figure 1 A schematic diagram of an optional structure for on-chip networks in related technologies is shown.

[0035] like Figure 1As shown, the on-chip network in the relevant technology mainly includes a data input distribution module, a routing and redirection decision module, a data channel selection module, and a data aggregation and output module. The data input distribution module receives the output data from the previous node and distributes it to the virtual channels in the current node according to a certain rule. The routing and redirection decision module selects the transmission path (including routing links and nodes) based on the designed redirection rules and strategies such as minimum transmission path selection. The data channel selection model selects a suitable data channel based on the path decision of the routing and redirection decision module to ensure normal data communication. The data aggregation and output module aggregates the data from the data channels selected by the data channel selection model, ensuring data integrity, and then outputs it to the next node.

[0036] Figure 2 A schematic diagram of an on-chip network bypass algorithm in related technologies is shown.

[0037] Currently, on-chip networks primarily focus on optimizing algorithms and routing rules to address routing and link failures. A link is considered faulty if at least one node at either end is faulty; otherwise, it's considered a normal link. Faulty nodes may be located inside the network (e.g., a mesh network) or at the edges and vertices. Figure 2 As shown, the network includes the current node (C), the starting node (S), the destination node (D), and the faulty node (A). The four neighboring nodes of the faulty node (East, South, West, and North) are represented by E, W, S, and N, respectively. NE, NW, SE, and SW represent the four vertices of the loop in the northeast, northwest, southeast, and southwest directions, respectively. When the faulty node is located inside the mesh network, the loop is a closed loop, preventing data from turning at the northeast corner of the loop and thus avoiding deadlock. When the faulty node is located at an edge or vertex, the loop becomes a non-closed loop, allowing data to travel half a cycle along the loop link before leaving the loop and being transmitted to the destination node along the Y direction.

[0038] Traditional on-chip networks implement path detours for routing and link failures without considering the congestion level of the detour nodes. This fails to avoid high latency and low communication efficiency caused by high congestion in the detour path, severely impacting the execution efficiency and transmission time of the on-chip network. It also greatly limits the interconnection performance of the on-chip network, thereby reducing the communication between cores in many-core processors and making it difficult to meet the interaction requirements in many-core processor application scenarios.

[0039] To address the problems existing in related technologies, this disclosure provides a data routing method that employs neural network technology (implemented through a target model) to perceive node congestion, thereby achieving low-latency and high-efficiency on-chip networks. Congestion is determined based on the ratio of the number of busy buffers in virtual channels to the total number of buffers. The neural network is used to perceive the congestion of routing nodes and continuously trains to obtain the optimal path, proactively avoiding high transmission latency or low communication efficiency caused by high congestion. Simultaneously, by perceiving node failures and performing redirection evaluation, the neural network improves the fault tolerance of the on-chip network, enhances its applicability in many-core processor scenarios, and expands its application areas, such as high-performance computing, industrial control, cloud computing, and data centers.

[0040] Figure 3 A schematic diagram of a first alternative flow of the data routing method provided in this disclosure is shown, and the steps will be described accordingly.

[0041] Step S301: Predict the congestion level of each node in the network based on the target model.

[0042] In some embodiments, the network includes an on-chip network comprising multiple nodes, each node connecting to one or more processor cores. The network consists of at least one of routers, links, and network architecture. Routers are core components responsible for data forwarding and routing decisions, including a data channel selection module and a route redirection decision module; links are physical channels connecting routers, responsible for data transmission, including a data input / distribution module and a data aggregation / output module; network interfaces are used to connect functional units (such as processors, memory, etc.) and routers to enable data communication.

[0043] In some embodiments, the congestion level of a node includes the ratio of the number of cache units corresponding to the node in the on-chip network to the number of cache units in the entire link; a faulty node is defined as a node that does not receive a feedback signal from the node after sending data to it or receives a feedback signal from the node after a timeout; that is, a node that cannot return a feedback signal after receiving data or returns a feedback signal after a timeout.

[0044] In some embodiments, the target model includes a neural network for predicting node congestion to control the routing decision module’s routing strategy and further control the channel switching of the data channel selection module.

[0045] In some embodiments, the target model can predict the congestion level of the next node based on the data of the current routing node and the data of the next node; it can also predict the congestion level of each node based on the traffic of all nodes in the network, the remaining storage space, and the data throughput of the nodes.

[0046] In some optional embodiments, after the target model predicts the congestion level and / or fault information of each node, it transmits the congestion level and / or fault information of each node to the routing decision module to achieve different routing decisions.

[0047] Step S302: Determine at least one path from the starting node to the target node.

[0048] In some embodiments, the carrier implementing the data routing method (hereinafter referred to as the carrier) determines at least one path from a starting node to a target node in the network; wherein, the at least one path may include all paths in the network from the starting node to the target node, or at least one path in the network from the starting node to the target node whose path length is less than a length threshold. The length threshold can be set according to actual needs.

[0049] In some embodiments, each path includes a starting node and a target node, and optionally may also include at least one node located between the starting node and the target node.

[0050] The carrier can be a computer program, electronic circuit, database, mobile application, electronic device, cloud computing platform, distributed system, artificial intelligence framework, mathematical model, automation tool and microcontroller, etc., which are software or hardware capable of implementing algorithms and methods.

[0051] Step S303: Using the starting node as the first node, determine the congestion degree of at least one second node that is adjacent to the first node and on the at least one path.

[0052] In some embodiments, the carrier uses the starting node as the first node to determine the congestion level of at least one second node adjacent to the first node on the path.

[0053] In this process, data from the first node is transmitted to the second node; data along the path is transmitted from the starting node through at least one node to the target node.

[0054] Step S304: Based on the congestion level of the at least one second node, determine the target routing node of the first node.

[0055] In some embodiments, the carrier determines the target routing node of the first node based on the congestion level of the at least one second node; controls the routing direction based on the target routing node, and transmits data from the first node to the target routing node; or, determines the routing direction based on the target routing node, and then, after determining all nodes, determines the target path from the starting node to the target node based on the routing directions corresponding to all nodes.

[0056] Step S305: Using the target routing node as the first node, determine the target routing node of the first node based on the congestion of other nodes in the network, until the target routing node is the target node, and determine that the communication from the starting node to the target node is completed.

[0057] In some embodiments, the carrier uses a target routing node as the first node. Based on the congestion of nodes adjacent to the first node on the path that are not routed to, it determines the target routing node corresponding to the first node, until the determined target routing node is the target node. It then determines all routing nodes between the starting node and the target node, and based on all routing nodes between the starting node and the target node, it determines the target path from the starting node to the target node. Data is routed from the starting node to the target node according to the target path, and communication between the starting node and the target node is considered complete.

[0058] Thus, by using the data routing method provided in this embodiment, the congestion of each node in the network is predicted by the target model, and the artificial intelligence algorithm is organically integrated with the on-chip network. The routing direction is determined according to the congestion of the next node predicted by the target model, thereby determining the target path from the starting node to the target node, realizing autonomous fault detection and avoidance, and improving routing communication efficiency.

[0059] Figure 4 A second alternative flowchart of the data processing method provided in this disclosure embodiment is shown, and will be described according to each step.

[0060] Step S401: Predict the congestion level of each node in the network based on the target model.

[0061] In some embodiments, the carrier inputs the traffic, remaining storage space, and data throughput of each node in the network into the target model, and determines the output of the target model as the congestion degree of each node.

[0062] Step S402: Determine at least one path from the starting node to the target node.

[0063] In some embodiments, the carrier constructs a planar coordinate system with any node in the network as the origin, and determines the coordinates of each node in the planar coordinate system; based on the coordinates of the starting node and the target node, it determines the difference between the starting node and the ending node in the horizontal and vertical directions; based on the difference between the starting node and the ending node in the horizontal and vertical directions, it determines at least one path from the starting node to the target node.

[0064] In specific implementation, the carrier can determine that among multiple paths from the starting node to the target node, the path whose horizontal difference is less than the horizontal difference between the starting node and the ending node, and whose vertical difference is less than the vertical difference between the starting node and the ending node, is at least one path from the starting node to the target node.

[0065] The horizontal difference in the path can include the difference between the node corresponding to the maximum horizontal value and the node corresponding to the minimum horizontal value in the path. For example, the horizontal difference between node a(x1, y1) corresponding to the maximum horizontal value and node b(x2, y2) corresponding to the minimum horizontal value in the path is x1 - x2. The horizontal value of any node on the path is less than or equal to x1, and the horizontal value of any node on the path is greater than or equal to x2.

[0066] Similarly, the vertical difference in the path can include the difference in the vertical direction between the node corresponding to the maximum vertical value and the node corresponding to the minimum vertical value. For example, the vertical difference between node c(x3, y3) corresponding to the maximum vertical value and node d(x4, y4) corresponding to the minimum vertical value is y3 - y4. The vertical value of any node on the path is less than or equal to y3, and the vertical value of any node on the path is greater than or equal to y4.

[0067] Step S403: Identify the faulty node in the second node.

[0068] In some embodiments, the carrier may, during the process of routing data from the starting node to the target node, transmit data from the first node to at least one second node adjacent to the first node in a broadcast manner; if no feedback signal for the data is received from any second node within a preset time period, the second node that does not return a feedback signal is determined to be a faulty node; or, if a feedback signal for the data is received from a second node within a preset time period, the second node that returns a feedback signal is determined to be a non-faulty node.

[0069] Furthermore, in the process of determining the target routing node for the first node, faulty nodes are not considered; that is, the first node does not use faulty nodes as target routing nodes, even if the congestion level of the faulty nodes is very low.

[0070] In some embodiments, if at least one second node includes a faulty node and there is one remaining non-faulty node, then the non-faulty second node is determined to be the target routing node of the first node.

[0071] In other embodiments, if there are no faulty nodes in the second node and there are multiple remaining non-faulty nodes; or, if the second node includes a faulty node but there are multiple non-faulty nodes, then step S404 is executed.

[0072] In some embodiments of this disclosure, at least one path is determined first, and the faulty node is identified during the data routing process, rather than before determining at least one path. This is because it is impossible to accurately predict whether a node is faulty based on congestion, data traffic, etc. For example, for a node that has not had any data inflow or outflow for a period of time, it is impossible to accurately determine whether the lack of data inflow or outflow is due to a fault or because it was not selected during the routing process. Therefore, the approach adopted in this disclosure, which involves first determining at least one path (alternative path) and then considering whether the next-hop node includes a faulty node during the routing process to avoid faulty nodes, can improve transmission efficiency and avoid high transmission latency caused by faulty nodes.

[0073] Step S404: Based on the congestion level of the at least one second node, determine the target routing node of the first node.

[0074] The second node involved in step S404 is a non-faulty node.

[0075] In some embodiments, the carrier uses the starting node as the first node, determines the congestion level of at least one second node adjacent to the first node and on the at least one path, and determines the target routing node of the first node based on the congestion level of the at least one second node.

[0076] In specific implementation, the carrier determines the second node with the lowest congestion among the non-faulty second nodes as the target routing node of the first node.

[0077] Step S405: Based on the target routing nodes corresponding to all nodes, determine the target path from the starting node to the target node.

[0078] In some embodiments, the carrier repeatedly executes steps S403 to S404, using the target routing node as the first node, determining the congestion level of at least one second node adjacent to the first node and on the at least one path; determining the target routing node of the first node based on the congestion level of the at least one second node; and determining that communication from the starting node to the target node is complete in response to the target routing node being the target node.

[0079] In specific implementation, the carrier takes the target routing node as the first node, determines the target routing node of the first node based on the congestion of other nodes in the network, until the target routing node is the target node, determines all nodes, and the target routing nodes corresponding to all nodes constitute the target path from the starting node to the target node.

[0080] Thus, the data routing method provided in this disclosure organically integrates neural networks and on-chip networks in terms of fault perception and fault tolerance. The congestion level is defined as the ratio of busy buffer units to overall node link buffer units. The congestion level of different nodes is predicted using a target model, and the combined value of different routing paths is compared. While transmitting data, routing decisions are made simultaneously, improving the transmission efficiency of data in each node of the network. It can track routing faults in real time to select reasonable transmission paths, proactively avoiding high transmission latency or low communication efficiency caused by high congestion. Furthermore, it can tolerate the occurrence of multiple faults, improving the fault tolerance of the on-chip network and meeting the application requirements of many-core processor scenarios for on-chip networks.

[0081] Figure 5 A third alternative flow diagram of the data routing method provided in this disclosure embodiment is shown, and will be described according to each step.

[0082] Step S501: Predict the congestion level of each node in the network based on the target model.

[0083] The specific steps of step S501 are the same as those of step S401, and will not be repeated here.

[0084] Step S502: Determine at least one path from the starting node to the target node.

[0085] The specific steps of step S502 are the same as those of step S402, and will not be repeated here.

[0086] Step S503: Identify the faulty node in the second node.

[0087] In some embodiments, the carrier may, during the process of routing data from the starting node to the target node, transmit data from the first node to at least one second node adjacent to the first node in a broadcast manner; if no first feedback signal for the data is received from any second node within a preset time period, the second node that does not return the first feedback signal is determined to be a faulty node; or, if a first feedback signal for the data is received from a second node within a preset time period, the second node that returns the first feedback signal is determined to be a non-faulty node.

[0088] Furthermore, in the process of determining the faulty node in the third node, the third node corresponding to the faulty node is not considered.

[0089] The second node includes the next-hop node on the path that is adjacent to the first node; the third node includes the next-hop node on the path that is adjacent to the second node.

[0090] Step S504: Identify the faulty node in the third node.

[0091] In some embodiments, the carrier broadcasts data from a second node that has not experienced a failure to at least one third node adjacent to the second node; and determines the node corresponding to the second feedback signal received within a preset time period as the third node that has not experienced a failure.

[0092] Step S505: Based on the congestion level of the at least one second node and the congestion level of the at least one third node, determine the target routing node of the first node.

[0093] In some embodiments, the carrier determines packets based on the connection relationship between the second node and the third node; each packet includes a second node and a third node adjacent to the second node, and the nodes in each packet are not identical; the target routing node of the first node is determined based on the product of the congestion degree of the second node and the congestion degree of the third node in each packet; the third node in the packet corresponding to the minimum value of the congestion degree product is determined as the target routing node of the first node. Data is transmitted from the first node to the third node via the second node.

[0094] Step S506: Based on the target routing nodes corresponding to all nodes, determine the target path from the starting node to the target node.

[0095] In some embodiments, with the target routing node as the first node, the congestion levels of at least one second node adjacent to the first node and on the at least one path, and the congestion levels of at least one third node are determined; based on the congestion levels of the at least one second node and the at least one third node, the target routing node of the first node is determined; in response to the target routing node being the target node, communication from the starting node to the target node is determined to be complete.

[0096] Thus, the data routing method provided in this embodiment employs neural network technology to perceive node congestion, achieving a low-latency, high-efficiency on-chip network. The neural network is used to perceive the congestion of routing nodes and continuously trains to obtain the optimal path, proactively avoiding high transmission latency or low communication efficiency caused by high congestion. In determining the target node for the current node (i.e., the first node), the target routing node corresponding to the first node is simultaneously determined based on the next-hop node (i.e., the second node) and the next-next-hop node (i.e., the third node). While transmitting data, routing decisions are made simultaneously, improving the transmission efficiency of data in each node of the network. It can track routing faults in real time to select a reasonable transmission path, proactively avoiding high transmission latency or low communication efficiency caused by high congestion. Furthermore, it can tolerate the occurrence of multiple faults, improving the fault tolerance of the on-chip network and meeting the application requirements of many-core processor scenarios for on-chip networks.

[0097] Figure 6 A fourth alternative flowchart of the data routing method provided in this disclosure embodiment is shown, and will be described according to each step.

[0098] Step S601: Predict the congestion level of each node in the network based on the target model.

[0099] In some embodiments, in response to the starting node needing to transmit data, the target model is run to obtain the congestion level of each node on the network.

[0100] In other embodiments, when the current node transmits data to the target node, the target model can be run to obtain the congestion degree of each node on at least one path.

[0101] Step S602: Determine at least one path from the starting node to the target node.

[0102] In some embodiments, the carrier determines at least one shortest path from the starting node to the target node.

[0103] In specific implementation, the carrier can determine all paths from the starting node to the target node, and determine the path with the shortest path length, which is the at least one path.

[0104] Step S603: The first node transmits data to the second node.

[0105] In some embodiments, data is transmitted from the starting node to the target node along at least one path. At the beginning of the transmission, if the data is located at the starting node, the starting node is taken as the first node (current node), and the data is broadcast to the second node along at least one path, and the system waits to receive feedback information from the second node.

[0106] Step S604: Determine whether a feedback signal is received within a preset time.

[0107] In some embodiments, if the first node does not receive a feedback signal within a preset time, step S605 is executed; if the first node receives a feedback signal within a preset time, step S607 is executed.

[0108] Step S605: Determine that there is a faulty node in the second node.

[0109] Figure 7 A schematic diagram of the first alternative routing process is shown.

[0110] In some embodiments, such as Figure 7 As shown, the first node is (6, 0), and the second nodes include (6, 1) and (5, 0). If the first node receives only one feedback signal from the second node within a preset time, it is determined that there is a faulty node among the second nodes; if the first node does not receive any feedback signal within the preset time, it is determined that all the second nodes are faulty nodes.

[0111] Step S606: Determine the target routing node for the first node based on the congestion level of the non-faulty second node.

[0112] In some embodiments, if there is only one non-faulty node among the next nodes of the first node, then the non-faulty node is the target routing node of the first node.

[0113] In some embodiments, after the carrier determines the target routing node of the first node, it executes step S609.

[0114] Step S607: Determine the congestion level of at least two non-faulty second nodes.

[0115] In some embodiments, the carrier determines the congestion levels of at least two non-faulty second nodes.

[0116] In practice, the carrier can obtain the congestion levels of at least two non-faulty second nodes based on the target model.

[0117] Step S608: Determine the target routing node for the first node based on the congestion levels of at least two second nodes.

[0118] In some embodiments, the carrier determines that the second node with the lowest congestion among at least two second nodes is the target routing node of the first node.

[0119] Step S609: Perform route redirection.

[0120] In some alternative embodiments, the carrier performs route redirection, routing data from the first node to the target routing node.

[0121] Step S610: Determine whether the target routing node is the target node.

[0122] In some embodiments, the carrier routes data to a target routing node and determines whether the target routing node is a target node. If the target routing node is a target node, it means that the data is routed from the starting node to the target node and the data transmission is complete, so the process ends. If the target routing node is not a target node, it means that the data transmission is not complete. The target routing node is used as the first node, and steps S603 to S610 are repeated until the target routing node is a target node.

[0123] Next, combine Figure 7 right Figure 6 The process shown is explained below.

[0124] like Figure 7 As shown, when the starting node (S, coordinates (6, 0)) sends data to the target node (D, coordinates (0, 6)), the target model is started, and the minimum routing path from the starting node to the target node is calculated, as follows: Figure 7 The black arrow in the middle.

[0125] Following the shortest path from the starting node to the target node, the first node (the current node) sends data to the second node (the node following the current node) and waits for a feedback signal from the second node. If the second node receives the data within a specified time and returns a feedback signal within a preset time, the target model predicts the congestion level of the non-faulty second nodes connected to the current node after the first node receives the feedback signal. The model then compares these congestion levels and selects the minimum value. For example, if the current node is (6,0), there are two corresponding second nodes: (6,1) and (5,0). The congestion levels of the two second nodes are 0.6 and 0.5, respectively. According to the minimum value principle, the target routing node corresponding to the first node is (5,0). Then, using (5,0) as the first node (the current node) and (5,1) and (4,0) as the second nodes, the target model obtains the congestion levels of the second nodes as 0.6 and 0.2, respectively. Therefore, the second node (5,1) is determined as the target routing node for the first node (5,0).

[0126] Following this method, the data reaches node B.

[0127] Node B's adjacent nodes include nodes (3,3) and (4,4), where node (3,3) is a faulty node. When data is sent to node (3,3), node (3,3) fails to return a feedback signal to node B within a preset time; therefore, node (3,3) is a faulty node. Further, the target model, based on the minimum routing path and the current routing state, guides the routing decision module to redirect to routing node (4,4), reaching node b10, thus achieving fault detour.

[0128] Even if node b10 has high congestion, the redirection from B to b10 must still be achieved.

[0129] Once fault detour is achieved, if there are no faulty nodes before reaching the destination node, the path selection is performed according to the neural network perception process of the fault-free nodes until the destination node is reached.

[0130] When the current node and the destination node are the same, the entire neural network perception process is completed and the communication ends.

[0131] Thus, the data routing method provided in this disclosure organically integrates neural networks and on-chip networks in terms of fault perception and fault tolerance. The congestion level is defined as the ratio of busy buffer units to overall node link buffer units. The congestion level of different nodes is predicted using a target model, and the combined value of different routing paths is compared. While transmitting data, routing decisions are made simultaneously, improving the transmission efficiency of data in each node of the network. It can track routing faults in real time to select reasonable transmission paths, proactively avoiding high transmission latency or low communication efficiency caused by high congestion. Furthermore, it can tolerate the occurrence of multiple faults, improving the fault tolerance of the on-chip network and meeting the application requirements of many-core processor scenarios for on-chip networks.

[0132] Figure 8 A fifth alternative flowchart of the data routing method provided in this disclosure embodiment is shown, and will be described according to each step.

[0133] Step S701: Predict the congestion level of each node in the network based on the target model.

[0134] In some embodiments, in response to the starting node needing to transmit data, the target model is run to obtain the congestion level of each node on the network.

[0135] In other embodiments, when the current node transmits data to the target node, the target model can be run to obtain the congestion degree of each node on at least one path.

[0136] Step S702: Determine at least one path from the starting node to the target node.

[0137] In some embodiments, the carrier determines at least one shortest path from the starting node to the target node.

[0138] In specific implementation, the carrier can determine all paths from the starting node to the target node, and determine the path with the shortest path length, which is the at least one path.

[0139] Step S703: The first node transmits data to the second node.

[0140] In some embodiments, data is transmitted from the starting node to the target node along at least one path. At the beginning of the transmission, if the data is located at the starting node, the starting node is taken as the first node (current node), and the data is broadcast to the second node along at least one path, and the system waits to receive feedback information from the second node.

[0141] Step S704: Determine whether a feedback signal is received within a preset time.

[0142] In some embodiments, if the first node does not receive a feedback signal within a preset time, step S705 is executed; if the first node receives a feedback signal within a preset time, step S707 is executed.

[0143] Step S705: Determine that there is a faulty node in the second node.

[0144] Figure 9 A second alternative schematic diagram of the routing redirection process is shown.

[0145] In some embodiments, such as Figure 9 As shown, the first node is (6, 0), and the second nodes include (6, 1) and (5, 0). If the first node receives only one feedback signal from the second node within a preset time, it is determined that there is a faulty node among the second nodes; if the first node does not receive any feedback signal within the preset time, it is determined that all the second nodes are faulty nodes.

[0146] Step S706: Determine the target routing node for the first node based on the congestion level of the non-faulty second node.

[0147] In some embodiments, if there is only one non-faulty node among the next nodes of the first node, then the non-faulty node is the target routing node of the first node.

[0148] In some embodiments, after the carrier determines the target routing node of the first node, it executes step S709.

[0149] Step S707: Determine the congestion levels of at least two non-faulty second nodes and the third node.

[0150] In some embodiments, the carrier determines the congestion levels of at least two non-faulty second nodes, and the congestion levels of at least one third node corresponding to each of the at least two second nodes. Specifically, each second node corresponds to at least one third node; another second node corresponds to at least one third node; the third nodes corresponding to the two second nodes may be the same or different.

[0151] In practice, the carrier can obtain the congestion levels of at least two non-faulty second nodes and a third node based on the target model.

[0152] Step S708: Determine the target routing node for the first node based on the congestion levels of at least two second nodes and a third node.

[0153] In some embodiments, the carrier determines packets based on the connection relationship between the second node and the third node; each packet includes a second node and a third node adjacent to the second node, and the nodes in each packet are not identical; the target routing node of the first node is determined based on the product of the congestion degree of the second node and the congestion degree of the third node in each packet; the third node in the packet corresponding to the minimum value of the congestion degree product is determined as the target routing node of the first node. Data is transmitted from the first node to the third node via the second node.

[0154] Step S709: Perform route redirection.

[0155] In some alternative embodiments, the carrier performs route redirection, routing data from the first node to the target routing node.

[0156] Step S710: Determine whether the target routing node is the target node.

[0157] In some embodiments, the carrier routes data to a target routing node and determines whether the target routing node is a target node. If the target routing node is a target node, it means that the data is routed from the starting node to the target node and the data transmission is complete, so the process ends. If the target routing node is not a target node, it means that the data transmission is not complete. The target routing node is used as the first node, and steps S703 to S710 are repeated until the target routing node is a target node.

[0158] Next, combine Figure 9 right Figure 8 The process shown is explained below.

[0159] Starting from the initial node (6,0), the node combinations predicted by the target model include A1×a11, A1×a10, A2×a10 and A2×a12, with congestion product values ​​of 0.3, 0.1, 0.12 and 0.18 respectively. Selecting the minimum value, the path is initial node → A1 → a10. Then the routing decision module executes the redirection, realizing the redirection process from the initial node to A1, and arrives at node A1.

[0160] Upon reaching A1, the node combination includes a11×b11, a10×b11, and a10×b10, with congestion product values ​​of 0.6×0.4, 0.2×0.4, and 0.2×0.5, respectively. The values ​​are 0.3, 0.08, and 0.1. Again, the minimum value is selected, and the path is A1→a10→b11. Then, the routing decision module executes the redirection, realizing the redirection process from node A1 to a10, and reaching node a10.

[0161] Upon reaching point B, a faulty node c10 is detected. Therefore, c10 is excluded during routing decisions. The sensing node combination includes c11×d11 and c11×d10, with congestion product values ​​of 0.5×0.5 and 0.5×0.4 respectively. The minimum value is selected, and the path is B→c11→d10, realizing the turning process from node B to c11, thus reaching node c11. This simultaneously completes fault detection and fault detour.

[0162] Until the target node, the system continuously obtains information on faulty nodes and the congestion levels of each node to guide the routing decision-making module in determining the routing direction. The routing process ends upon reaching the target node.

[0163] Figure 10 A schematic diagram of an optional structure of a data routing apparatus provided in an embodiment of this disclosure is shown, and the details will be described in terms of each part.

[0164] In some embodiments, the data routing apparatus includes a prediction unit, a path determination unit, a node congestion determination unit, and a routing decision unit.

[0165] The prediction unit is used to predict the congestion level of each node in the network based on the target model. The path determination unit is used to determine at least one path from the starting node to the target node; The node congestion determination unit is used to determine the congestion of at least one second node that is adjacent to the first node and on the at least one path, taking the starting node as the first node. The routing decision unit is used to determine the target routing node of the first node based on the congestion level of the at least one second node. The routing decision unit is further configured to, taking the target routing node as the first node, determine the target routing node of the first node based on the congestion of other nodes in the network, until the target routing node is the target node, and determine that the communication from the starting node to the target node is completed. The first node and the second node are on either path of the at least one path.

[0166] Figure 11 A schematic diagram of the structure corresponding to the node in an embodiment of this disclosure is shown.

[0167] like Figure 11 As shown, each node corresponds to a data input distribution module, a routing decision module, a data channel selection module, and a data aggregation output module. The data input distribution module is connected to the data channel selection module and is used to transmit data to be routed to the data channel selection module. The routing decision module is connected to both the data channel selection module and the prediction unit, and is used to transmit routing information to the data channel selection module based on the congestion levels of each node output by the prediction unit, instructing the data channel selection module to control the data routing direction. The data aggregation output module is connected to both the routing decision module and the prediction unit, and is used to transmit data to the next node based on the results of the data channel selection module, and transmit the node's traffic data to the prediction unit, thereby improving the prediction accuracy of the prediction unit for the congestion levels of each node. Figure 11 In this context, the prediction unit is the prediction unit in the data routing device, which uses a target model (such as a neural network) to predict the congestion level of each node in the network. Optionally, a prediction unit can be set in each node, or a prediction unit can be set in the data routing device and connected to each node to perform prediction.

[0168] The prediction unit is specifically used to: input the traffic, remaining storage space, and amount of data routed to each node in the network into the target model, and determine the output of the target model as the congestion degree of each node.

[0169] The path determination unit is specifically used to: construct a planar coordinate system with any node in the network as the origin, and determine the coordinates of each node in the planar coordinate system; Based on the coordinates of the starting node and the target node, determine the difference between the starting node and the ending node in the horizontal and vertical directions. Based on the differences between the start node and the end node in the horizontal and vertical directions, determine at least one path from the start node to the target node.

[0170] The path determination unit is specifically used to: determine, among multiple paths from the starting node to the target node, the path whose horizontal difference is less than the horizontal difference between the starting node and the ending node, and whose vertical difference is less than the vertical difference between the starting node and the ending node, is at least one path from the starting node to the target node.

[0171] The node congestion determination unit is specifically used to: transmit data from the first node to at least one second node adjacent to the first node in a broadcast manner; If no feedback signal for the data is received from any second node within a preset time period, then the second node is determined to be a faulty node. If a feedback signal regarding the data is received from the second node within a preset time period, then the second node is determined to be a non-faulty node. The congestion level of the second node, which is a non-faulty node, is determined based on the target model.

[0172] The node congestion determination unit is specifically used to: transmit data from the first node to at least one second node adjacent to the first node in a broadcast manner; The second node corresponding to the first feedback signal received within a preset time period is identified as the second node that is not faulty; The data is broadcast from the second node that has never failed to at least one third node adjacent to the second node. The node corresponding to the second feedback signal received within a preset time period is identified as the third node that is not faulty; The congestion levels of the second node and the third node that are not faulty are determined based on the target model.

[0173] The routing decision unit is specifically used to determine groups based on the connection relationship between the second node and the third node; each group includes a second node and a third node adjacent to the second node, and the nodes in each group are not completely the same; The target routing node for the first node is determined based on the product of the congestion levels of the second and third nodes in each group.

[0174] The routing decision unit is specifically used to determine the target routing node of the third node in the group corresponding to the minimum product of congestion degrees, where the third node is the first node.

[0175] The routing decision unit is specifically used to determine the congestion degree of at least one second node that is adjacent to the first node and on the at least one path, taking the target routing node as the first node. Based on the congestion level of the at least one second node, the target routing node of the first node is determined; In response to the target routing node being the target node, the communication from the originating node to the target node is determined to be complete.

[0176] According to embodiments of this disclosure, this disclosure also provides an electronic device and a readable storage medium.

[0177] Figure 12 A schematic block diagram of an example electronic device 800 that can be used to implement embodiments of the present disclosure is shown. The electronic device is intended to represent various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device may also represent various forms of mobile devices, such as personal digital processors, cellular phones, smartphones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely illustrative and are not intended to limit the implementation of the present disclosure described and / or claimed herein.

[0178] like Figure 12 As shown, the electronic device 800 includes a computing unit 801, which can perform various appropriate actions and processes according to a computer program stored in ROM 802 or a computer program loaded into RAM 803 from storage unit 808. ROM is an abbreviation for Read Only Memory, and RAM is an abbreviation for Random Access Memory.

[0179] The RAM 803 can also store various programs and data required for the operation of the electronic device 800. The computing unit 801, ROM 802, and RAM 803 are interconnected via bus 804. The I / O interface 805 is also connected to bus 804. The I / O interface is an input / output interface.

[0180] Multiple components in electronic device 800 are connected to I / O interface 805, including: input unit 806, such as keyboard, mouse, etc.; output unit 807, such as various types of displays, speakers, etc.; storage unit 808, such as disk, optical disk, etc.; and communication unit 809, such as network card, modem, wireless transceiver, etc. Communication unit 809 allows electronic device 800 to exchange information / data with other devices through computer networks such as the Internet and / or various telecommunications networks.

[0181] The computing unit 801 can be a variety of general-purpose and / or special-purpose processing components with processing and computing capabilities. Some examples of the computing unit 801 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various special-purpose artificial intelligence (AI) computing chips, various computing units running machine learning model algorithms, a digital signal processor (DSP), and any suitable processor, controller, microcontroller, etc. The computing unit 801 performs the various methods and processes described above, such as data routing methods. For example, in some embodiments, the data routing method may be implemented as a computer software program tangibly contained in a machine-readable medium, such as storage unit 808. In some embodiments, part or all of the computer program may be loaded and / or installed on the electronic device 800 via ROM 802 and / or communication unit 809. When the computer program is loaded into RAM 803 and executed by the computing unit 801, one or more steps of the data routing method described above may be performed. Alternatively, in other embodiments, the computing unit 801 may be configured to perform the data routing method by any other suitable means (e.g., by means of firmware).

[0182] Various embodiments of the systems and techniques described above herein can be implemented in digital electronic circuit systems, integrated circuit systems, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), application-specific standard products (ASSPs), systems-on-a-chip (SoCs), payload-programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various embodiments may include implementations in one or more computer programs that can be executed and / or interpreted on a programmable system including at least one programmable processor, which may be a dedicated or general-purpose programmable processor, capable of receiving data and instructions from a storage system, at least one input device, and at least one output device, and transmitting data and instructions to the storage system, the at least one input device, and the at least one output device.

[0183] The program code used to implement the methods of this disclosure may be written in any combination of one or more programming languages. This program code may be provided to a processor or controller of a general-purpose computer, special-purpose computer, or other programmable data processing apparatus, such that when executed by the processor or controller, the program code causes the functions / operations specified in the flowcharts and / or block diagrams to be implemented. The program code may be executed entirely on a machine, partially on a machine, as a standalone software package partially on a machine and partially on a remote machine, or entirely on a remote machine or server.

[0184] In the context of this disclosure, a machine-readable medium can be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device. A machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium can be, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. More specific examples of machine-readable storage media include electrical connections based on one or more wires, portable computer disks, hard disks, random access memory, read-only memory, erasable programmable read-only memory (EPROM or flash memory), optical fibers, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the foregoing.

[0185] To provide interaction with a user, the systems and techniques described herein can be implemented on a computer having: a display device for displaying information to the user (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor); and a keyboard and pointing device (e.g., a mouse or trackball) through which the user provides input to the computer. Other types of devices can also be used to provide interaction with the user; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including sound input, voice input, or tactile input).

[0186] The systems and technologies described herein can be implemented in computing systems that include backend components (e.g., as a data server), or computing systems that include middleware components (e.g., an application server), or computing systems that include frontend components (e.g., a user computer with a graphical user interface or web browser through which a user can interact with implementations of the systems and technologies described herein), or any combination of such backend, middleware, or frontend components. The components of the system can be interconnected via digital data communication of any form or medium (e.g., a communication network). Examples of communication networks include local area networks (LANs), wide area networks (WANs), and the Internet.

[0187] Computer systems can include clients and servers. Clients and servers are generally located far apart and typically interact via communication networks. Client-server relationships are created by computer programs running on the respective computers and having a client-server relationship with each other. Servers can be cloud servers, servers in distributed systems, or servers incorporating blockchain technology.

[0188] It should be understood that the various forms of processes shown above can be used to rearrange, add, or delete steps. For example, the steps described in this disclosure can be executed in parallel, sequentially, or in different orders, as long as the desired result of the technical solution disclosed in this disclosure can be achieved, and this is not limited herein.

[0189] Furthermore, the terms "first" and "second" are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of technical features indicated. Thus, a feature defined as "first" or "second" may explicitly or implicitly include at least one of that feature. In the description of this disclosure, "a plurality of" means two or more, unless otherwise explicitly specified.

[0190] The above description is merely a specific embodiment of this disclosure, but the scope of protection of this disclosure is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this disclosure should be included within the scope of protection of this disclosure. Therefore, the scope of protection of this disclosure should be determined by the scope of the claims.

Claims

1. A data routing method, characterized by, The method is applied to a network comprising a plurality of nodes, and comprises: predicting congestion of each node in the network based on a target model; determining at least one path from a starting node to a target node; determining congestion of at least one second node adjacent to the first node and on the at least one path, with the starting node as the first node; determining a target routing node of the first node based on the congestion of the at least one second node; determining a target routing node of the first node based on the congestion of other nodes in the network, with the target routing node as the first node, until the target routing node is the target node, to determine completion of communication from the starting node to the target node; wherein the first node and the second node are on any path of the at least one path.

2. The method of claim 1, wherein, The method further comprises: inputting traffic, remaining storage space, and data throughput of each node in the network into the target model to determine the output of the target model as the congestion of each node.

3. The method of claim 1, wherein, The method further comprises: constructing a plane coordinate system with any node in the network as the origin to determine the coordinates of each node in the plane coordinate system; determining the difference in horizontal direction and vertical direction between the starting node and the target node based on the coordinates of the starting node and the target node; determining the at least one path from the starting node to the target node based on the difference in horizontal direction and vertical direction between the starting node and the target node.

4. The method of claim 3, wherein, The method further comprises: determining the at least one path from the starting node to the target node as the path having a smaller difference in horizontal direction and a smaller difference in vertical direction among the plurality of paths from the starting node to the target node.

5. The method of claim 1, wherein, The method further comprises: transmitting data from the first node to the at least one second node adjacent to the first node in the form of broadcast; determining any second node as a faulty node if no feedback signal from the second node is received within a preset time period; determining a second node as a non-faulty node if a feedback signal from the second node is received within the preset time period; determining the congestion of the second node of the non-faulty node based on the target model.

6. The method of claim 5, wherein, The method further comprises: determining the second node with the smallest congestion among the non-faulty second nodes as the target routing node of the first node.

7. The method of claim 1, wherein, The method further comprises: transmitting data from the first node to the at least one second node adjacent to the first node in the form of broadcast; Determine the second node corresponding to the first feedback signal received within a preset time length as a non-faulty second node; Transmit data from the non-faulty second node to at least one third node adjacent to the second node in the form of broadcast; Determine the node corresponding to the second feedback signal received within a preset time length as a non-faulty third node; Determine the congestion degree of the non-faulty second node and the congestion degree of the non-faulty third node based on the target model.

8. The method of claim 7, wherein, The target routing node of the first node is determined based on the congestion degree of the at least one second node, including: Determine the group based on the connection relationship between the second node and the third node; each group includes a second node and a third node adjacent to the second node, and the nodes in each group are not completely the same; Determine the target routing node of the first node based on the product of the congestion degree of the second node and the congestion degree of the third node in each group.

9. The method of claim 8, wherein, The target routing node of the first node is determined based on the product of the congestion degree of the second node and the congestion degree of the third node in each group, including: Determine the third node in the group corresponding to the minimum value of the product of the congestion degrees as the target routing node of the first node.

10. The method of claim 1, wherein, The target routing node of the first node is determined based on the congestion degree of other nodes in the network, including: Determine the congestion degree of at least one second node adjacent to the first node and on the at least one path with the target routing node as the first node; Determine the target routing node of the first node based on the congestion degree of the at least one second node; In response to the target routing node being the target node, determine that the communication from the starting node to the target node is completed.

11. A data routing device, characterized by Applied to a network including a plurality of nodes, the device includes: A prediction unit configured to predict the congestion degree of each node in the network based on a target model; A path determination unit configured to determine at least one path from a starting node to a target node; A node congestion degree determination unit configured to determine the congestion degree of at least one second node adjacent to the first node and on the at least one path with the starting node as the first node; A routing decision unit configured to determine the target routing node of the first node based on the congestion degree of the at least one second node; The routing decision unit is also configured to determine the target routing node of the first node based on the congestion degree of other nodes in the network with the target routing node as the first node, until the target routing node is the target node, and determine that the communication from the starting node to the target node is completed; Wherein, the first node and the second node are on any path of the at least one path.

12. The apparatus of claim 11, wherein, Each node corresponds to a data input distribution module, a routing steering decision module, a data channel selection module, and a data aggregation output module; The data input distribution module is connected with the data channel selection module and configured to transmit the data to be routed to the data channel selection module; The routing steering decision module is connected with the data channel selection module and the prediction unit respectively, and is configured to transmit routing information to the data channel selection module based on the congestion degree of each node output by the prediction unit, so as to instruct the data channel selection module to control the data routing direction; The data aggregation output module is connected with the routing steering decision module and the prediction unit respectively, and is configured to transmit data to the next node based on the result of the data channel selection module, and transmit the traffic data of the node to the prediction unit, so as to improve the prediction accuracy of the prediction unit on the congestion degree of each node.

13. The apparatus of claim 11, wherein, The prediction unit is specifically configured to: input the traffic, the remaining storage space and the data amount routed to each node in the network into the target model, and determine the output of the target model as the congestion degree of each node.

14. The apparatus of claim 11, wherein, The path determination unit is specifically configured to: construct a plane coordinate system with any node in the network as the origin, and determine the coordinates of each node in the plane coordinate system; determine the difference in the horizontal direction and the difference in the vertical direction between the starting node and the target node based on the coordinates of the starting node and the coordinates of the target node; determine at least one path from the starting node to the target node based on the difference in the horizontal direction and the difference in the vertical direction between the starting node and the target node.

15. The apparatus of claim 14, wherein, The path determination unit is specifically configured to: determine, from the multiple paths from the starting node to the target node, the path with the difference in the horizontal direction less than the difference in the horizontal direction between the starting node and the target node and the difference in the vertical direction less than the difference in the vertical direction between the starting node and the target node, as the at least one path from the starting node to the target node.

16. The apparatus of claim 11, wherein, The node congestion degree determination unit is specifically configured to: transmit data from the first node to at least one second node adjacent to the first node in the form of broadcast; if no feedback signal of any second node is received within a preset time length, determine that the any second node is a faulty node; if a feedback signal of a second node is received within a preset time length, determine that the second node is a non-faulty node; determine the congestion degree of the non-faulty second node based on the target model.

17. The apparatus of claim 11, wherein, The node congestion degree determination unit is specifically configured to: transmit data from the first node to at least one second node adjacent to the first node in the form of broadcast; determine the second node corresponding to the first feedback signal received within a preset time length as a non-faulty second node; transmit data from the non-faulty second node to at least one third node adjacent to the second node in the form of broadcast; determine the node corresponding to the second feedback signal received within a preset time length as a non-faulty third node; determine the congestion degree of the non-faulty second node and the congestion degree of the non-faulty third node based on the target model.

18. An electronic device, comprising: comprise: at least one processor; and a memory connected in communication with the at least one processor; wherein the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to perform the method of any one of claims 1-10.

19. A non-transitory computer-readable storage medium having stored thereon computer instructions, wherein, The computer instructions are used to enable the computer to perform the method of any one of claims 1-10. The computer instructions are used to enable the computer to perform the method of any one of claims 1-10.

20. A computer program product, characterised in that, Includes a computer program that, when executed by a processor, implements the method of any one of claims 1-10.

Citation Information

Patent Citations

  • Dynamic multi-path AODV routing method based on node congestion degree prediction

    CN103476086A

  • Routing method and device of airport communication network

    CN107548120A

  • Fault-tolerant routing method for sensing regional faults in wireless network-on-chip

    CN110336744A

  • Data transmission method, system and device and storage medium

    CN114124825A

  • Network congestion control method and device, equipment and storage medium

    CN117014947A