Data transmission method, system and device and computer readable storage medium

By introducing virtual channels and optimizing data transmission paths in the on-chip network, the node congestion problem was solved and the system performance was improved.

CN122019455APending Publication Date: 2026-05-12SHANDONG YUNHAI GUOCHUANG CLOUD COMPUTING EQUIP IND INNOVATION CENT CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
SHANDONG YUNHAI GUOCHUANG CLOUD COMPUTING EQUIP IND INNOVATION CENT CO LTD
Filing Date
2026-01-29
Publication Date
2026-05-12

AI Technical Summary

Technical Problem

Existing on-chip network routing algorithms lack the ability to detect congestion during inter-node communication, leading to congestion at some critical nodes due to excessive traffic and affecting system performance.

Method used

Virtual channels are introduced into the routing nodes of the on-chip network to transmit data in the diagonal direction. By detecting and managing the activation status of virtual channels, combined with regular channels, the data transmission path is optimized, reducing node hop count and latency.

Benefits of technology

By reducing node hop count and latency, node congestion is reduced, thus improving the system performance of the on-chip network.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122019455A_ABST
    Figure CN122019455A_ABST
Patent Text Reader

Abstract

The invention discloses a data transmission method, system and device and a computer readable storage medium, relates to the technical field of network-on-chip, is applied to a routing node of the network-on-chip, and determines a data output direction of a previous node; analyzing the data output direction; in response to the condition that the data output direction is a diagonal direction, determining a direction opposite to the data output direction as a target virtual direction, and receiving data transmitted by the previous node through a virtual channel corresponding to the target virtual direction; receiving data transmitted by the previous node through a conventional channel of the routing node in response to the fact that the data output direction is the horizontal and vertical direction; wherein the topological structure of the network-on-chip is a two-dimensional network structure; the virtual channel is used for transmitting data in four directions of northeast, southeast, northwest and southwest; and the conventional channel is used for transmitting data in east, south, west and north directions. The node hop count and the transmission delay are reduced by 50%, the node congestion condition is reduced, and the system performance of the network-on-chip is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of on-chip network technology, and more specifically, to a data transmission method, system, device, and computer-readable storage medium. Background Technology

[0002] Currently, Central Processing Units (CPUs) can adopt multi-core processor architectures, and as the number of cores increases, the demand for scalable, low-latency, and high-bandwidth communication structures between cores also rises. Based on this, Network-on-Chip (NoC), as a communication architecture that assists in achieving design isolation, is gradually becoming a technology to solve the performance bottleneck of bus structures. It enables plug-and-play communication between various IPs through standard interfaces.

[0003] Among existing on-chip network routing algorithms, the XY routing algorithm is widely used due to its simplicity and efficiency. However, these algorithms typically only support data transmission in the four cardinal directions (north, south, east, and west), lack the ability to detect node congestion, and are prone to causing congestion problems at some critical nodes due to excessive traffic, thereby affecting the overall system performance.

[0004] In summary, how to alleviate node congestion in on-chip networks and improve system performance is a problem that urgently needs to be solved by those skilled in the art. Summary of the Invention

[0005] The purpose of this application is to provide a data transmission method that can, to some extent, solve the technical problem of how to alleviate node congestion in on-chip networks and improve system performance. This application also provides a data transmission system, an electronic device, and a computer-readable storage medium.

[0006] To achieve the above objectives, this application provides the following technical solution: A data transmission method, applied to a routing node in an on-chip network, includes: Determine the data output direction of the previous node; The direction of the data output is analyzed; In response to the data output direction being a diagonal direction, the direction opposite to the data output direction is determined as the target virtual direction, and the data transmitted by the previous node is received through the virtual channel corresponding to the target virtual direction; In response to the data output direction being horizontal or vertical, the data transmitted by the previous node is received through the regular channel of the routing node; The on-chip network has a two-dimensional mesh topology; the virtual channel is used to transmit data in the four directions of northeast, southeast, northwest, and southwest; and the conventional channel is used to transmit data in the four directions of east, south, west, and north.

[0007] In an exemplary embodiment, receiving data transmitted by the previous node through a virtual channel corresponding to the target virtual direction includes: Detect whether other virtual channels besides the target virtual direction are enabled; In response to the activation of other virtual channels besides the target virtual direction, the system waits for other virtual channels besides the target virtual direction to be deactivated before receiving data transmitted by the previous node through the virtual channel corresponding to the target virtual direction. If no other virtual channel is enabled except for the target virtual direction, the data transmitted by the previous node is received through the virtual channel corresponding to the target virtual direction.

[0008] In an exemplary embodiment, the step of waiting for other virtual channels besides the target virtual direction to become disabled, and then receiving data transmitted by the previous node through the virtual channel corresponding to the target virtual direction, includes: Detect whether other virtual channels besides the target virtual direction are actively disabled; In response to actively disabling other virtual channels besides the target virtual direction, the other virtual channels besides the target virtual direction are disabled, and data transmitted by the previous node is received through the virtual channel corresponding to the target virtual direction.

[0009] In an exemplary embodiment, after disabling other virtual channels besides the target virtual direction, the method further includes: Record data transmission information for other virtual channels besides the target virtual direction; After receiving the data transmitted by the previous node, data transmission continues according to the data transmission information.

[0010] In an exemplary embodiment, it also includes: Obtain the target data to be transmitted; Determine the destination node to receive the target data; Check if the x-coordinate or y-coordinate of the routing node and the destination node are the same; If the x-coordinate of the routing node is the same as the x-coordinate of the destination node, the target data is transmitted to the next node through the regular channel of the routing node, and the virtual channel of the routing node is disabled. If the ordinate of the routing node is the same as the ordinate of the destination node, the target data is transmitted to the next node through the regular channel of the routing node, and the virtual channel of the routing node is disabled.

[0011] In an exemplary embodiment, after detecting whether the x-coordinate or y-coordinate of the routing node and the destination node are the same, the method further includes: If the x-coordinates and y-coordinates of the routing node and the destination node are different, the target horizontal direction is determined based on the difference between the x-coordinates of the routing node and the destination node. The next node in the horizontal direction of the target is identified as the first candidate node; Detect whether the first candidate node is congested; If the first candidate node is functioning normally, the target data is transmitted to the first candidate node through the regular channel of the routing node, and the virtual channel of the routing node is disabled. In response to congestion at the first candidate node, a second candidate node is determined on the diagonal of the routing node based on the coordinate difference between the routing node and the destination node, and the target data is transmitted to the second candidate node through the virtual channel of the routing node.

[0012] In an exemplary embodiment, detecting whether the first candidate node is congested includes: Obtain the current performance data of the first candidate node, including buffer occupancy and packet processing rate; If the current performance data value is less than or equal to a preset threshold, the current state of the first candidate node is determined to be normal. If the value of the current performance data is greater than the preset threshold, then the current state of the first candidate node is determined to be congested. Obtain the historical state of the first candidate node; Based on the current and historical states, predict whether the first candidate node will remain congested within a set future timeframe. If the first candidate node continues to be congested within a set time period, it is determined that the first candidate node is congested; otherwise, it is determined that the first candidate node is normal.

[0013] A data transmission system, applied to a routing node in an on-chip network, includes: The output direction determination module is used to determine the data output direction of the previous node; The parsing module is used to parse the output direction of the data; The virtual channel receiving module is used to determine the direction opposite to the data output direction as the target virtual direction in response to the data output direction being a diagonal direction, and to receive the data transmitted by the previous node through the virtual channel corresponding to the target virtual direction. The conventional channel receiving module is used to receive data transmitted by the previous node through the conventional channel of the routing node in response to the data output direction being horizontal or vertical. The on-chip network has a two-dimensional mesh topology; the virtual channel is used to transmit data in the four directions of northeast, southeast, northwest, and southwest; and the conventional channel is used to transmit data in the four directions of east, south, west, and north.

[0014] An electronic device, comprising: Memory, used to store computer programs; A processor for implementing the data transmission method as described above when executing the computer program.

[0015] A computer-readable storage medium storing a computer program that, when executed by a processor, implements the steps of any of the data transmission methods described above.

[0016] This application provides a data transmission method applied to a routing node in a network-on-a-chip (NAT). The method determines the data output direction of the preceding node; parses the data output direction; in response to a diagonal direction, the direction opposite to the data output direction is determined as the target virtual direction, and data transmitted by the preceding node is received through a virtual channel corresponding to the target virtual direction; in response to a horizontal or vertical direction, data transmitted by the preceding node is received through the routing node's regular channel. The NAT topology is a two-dimensional mesh structure; the virtual channel is used to transmit data in the northeast, southeast, northwest, and southwest directions; the regular channel is used to transmit data in the east, south, west, and north directions. This application adds a virtual channel for diagonal transmission to the routing node in the two-dimensional mesh structure. This allows the routing node to perform single-hop transmission in the diagonal direction. Compared to the two-hop path required for XY routing, this application only requires one hop, reducing the number of node hops and transmission latency by 50%, reducing node congestion, and decreasing the total number of routing nodes traversed by node data transmission, thus improving the system performance of the NAT. The data transmission system, electronic device, and computer-readable storage medium provided in this application also solve the corresponding technical problems. Attached Figure Description

[0017] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only embodiments of this application. For those skilled in the art, other drawings can be obtained based on the provided drawings without creative effort.

[0018] Figure 1 A flowchart illustrating a data transmission method provided in an embodiment of this application; Figure 2 A flowchart illustrating data transmission and reception for routing nodes; Figure 3 This is a diagram showing the location of the routing nodes; Figure 4 This is a schematic diagram of the structure of a data transmission system provided in an embodiment of this application; Figure 5 A diagram showing the data input / output relationships between routing nodes; Figure 6 A flowchart illustrating the data flow between nodes; Figure 7 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application; Figure 8 This is another structural schematic diagram of an electronic device provided in an embodiment of this application. Detailed Implementation

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

[0020] Please see Figure 1 , Figure 1 A flowchart illustrating a data transmission method provided in an embodiment of this application.

[0021] This application provides a data transmission method applied to a routing node in an on-chip network, which may include the following steps: Step S101: Determine the data output direction of the previous node.

[0022] In practical applications, when any routing node of the on-chip network needs to transmit data, it can be done according to the scheme of this application. The topology of the on-chip network in this application is a two-dimensional mesh structure. Conventional channels and virtual channels are set between routing nodes. The virtual channels are used to transmit data in the four directions of northeast, southeast, northwest and southwest for the routing nodes, and the conventional channels are used to transmit data in the four directions of east, south, west and north for the routing nodes. The construction method of the virtual channels can be flexibly determined according to the application scenario, as long as it can realize the function of diagonal data transmission of this application.

[0023] In specific application scenarios, during the process of a routing node receiving data, the routing node can first determine the data output direction of the preceding node. This data output direction can be determined based on the positional relationship between the preceding node and the routing node. For example, if the preceding node is located to the left of the routing node, the data output direction is eastward. If the preceding node is located to the upper left of the routing node, the data output direction is southeastward, etc. The preceding node is also the routing node that transmits data to the current routing node.

[0024] Step S102: Analyze the data output direction.

[0025] In practical applications, after obtaining the data output direction of the previous node, the routing node can parse the data output direction so that it can subsequently receive data using a virtual channel or a regular channel based on the parsing result.

[0026] Understandably, the method for resolving the data output direction can be flexibly set according to the application scenario. For example, when the data output direction is a numerical code, the numerical code can be mapped to the direction to obtain the actual direction represented by the data output direction. For ease of understanding, let's assume that 1 represents east, 2 represents northeast, 3 represents north, 4 represents northwest, and so on. If the numerical code for the data output direction is 3, then the data output direction can be determined to be north.

[0027] Step S103: In response to the data output direction being a diagonal direction, the direction opposite to the data output direction is determined as the target virtual direction, and the data transmitted by the previous node is received through the virtual channel corresponding to the target virtual direction.

[0028] In practical applications, after parsing the data output direction, if the data output direction is diagonal, the direction opposite to the data output direction needs to be determined as the target virtual direction. The data transmitted by the previous node is then received through the virtual channel corresponding to the target virtual direction. For ease of understanding, let's assume the data output direction of the previous node is northeast; then the target virtual direction is southwest. The routing node then needs to receive the data transmitted by the previous node through the virtual channel representing the southwest direction.

[0029] In an exemplary embodiment, enabling too many virtual channels for a routing node can lead to increased power consumption of the on-chip network. To avoid this, when a routing node receives data transmitted from the previous node through the virtual channel corresponding to the target virtual direction, it can detect whether other virtual channels besides the target virtual direction are enabled. If other virtual channels besides the target virtual direction are enabled, the node waits until those channels are disabled before receiving data transmitted from the previous node through the virtual channel corresponding to the target virtual direction. If other virtual channels besides the target virtual direction are not enabled, the node receives data transmitted from the previous node through the virtual channel corresponding to the target virtual direction. In this way, the virtual channels employ a single-channel time-division multiplexing mechanism, meaning that a routing node can only transmit data in one virtual channel direction at a time. This reduces hardware resource consumption by 75% compared to an omnidirectional virtual channel design, thus avoiding increased power consumption caused by adding too many virtual channels to the routing node.

[0030] In specific application scenarios, while waiting for other virtual channels besides the target virtual direction to become disabled, and then receiving data transmitted by the previous node through the virtual channel corresponding to the target virtual direction, passively waiting for these other virtual channels to become disabled might affect the transmission of the latest data. To avoid this, it's possible to detect whether to actively disable other virtual channels besides the target virtual direction. In response to actively disabling other virtual channels besides the target virtual direction, these channels are disabled, and data transmitted by the previous node is received through the virtual channel corresponding to the target virtual direction. Based on this, after disabling other virtual channels besides the target virtual direction, data transmission information for these other virtual channels can be recorded. After receiving the data transmitted by the previous node, data transmission continues according to the data transmission information. In this way, the latest data can be received first, while previously incomplete data can continue to be received, ensuring data integrity while maintaining the efficiency of new data reception.

[0031] In specific application scenarios, when detecting whether to actively disable virtual channels other than the target virtual direction, the process can be based on data priority. For example, if the priority of data transmitted by virtual channels other than the target virtual direction is lower than that of the latest data, virtual channels other than the target virtual direction can be actively disabled; otherwise, it is not allowed to actively disable virtual channels other than the target virtual direction.

[0032] Step S104: In response to the data output direction being horizontal or vertical, the data transmitted by the previous node is received through the regular channel of the routing node.

[0033] In practical applications, after parsing the data output direction, if the data output direction is horizontal or vertical, the data transmitted by the previous node is received through the regular channel of the routing node. During this process, the direction opposite to the data output direction can be defined as the target regular direction, and the data transmitted by the previous node is received through the regular channel corresponding to the target regular direction. For ease of understanding, let's assume the data output direction of the previous node is east, then the target regular direction is west, and the routing node needs to receive the data transmitted by the previous node through the regular channel representing the west direction. It should be noted that the data transmitted by the routing node can be flexibly determined according to the application scenario. For example, in the case of a network-on-a-chip (NIC) applied to a server, the data transmitted by the routing node can be server control commands, performance data, etc.

[0034] This application provides a data transmission method applied to a routing node in a network-on-a-chip (NAT). The method determines the data output direction of the preceding node; parses the data output direction; in response to a diagonal direction, the direction opposite to the data output direction is determined as the target virtual direction, and data transmitted by the preceding node is received through a virtual channel corresponding to the target virtual direction; in response to a horizontal or vertical direction, data transmitted by the preceding node is received through the routing node's regular channel. The NAT topology is a two-dimensional mesh structure; the virtual channel is used to transmit data in the northeast, southeast, northwest, and southwest directions; the regular channel is used to transmit data in the east, south, west, and north directions. This application adds a virtual channel for diagonal transmission to the routing node in the two-dimensional mesh structure. This allows the routing node to perform single-hop transmission in the diagonal direction. Compared to the two-hop path required for XY routing, this application only requires one hop, reducing the number of node hops and transmission latency by 50%, reducing node congestion, and decreasing the total number of routing nodes traversed by node data transmission, thus improving the system performance of the NAT.

[0035] Based on the above embodiments, in addition to receiving data transmitted by the previous node, the routing node also needs to transmit data to the next node, which refers to the routing node that receives the data transmitted by the current routing node. This process can be as follows: Figure 2 As shown in the embodiment of this application, a data transmission method is provided and applied to a routing node in an on-chip network, which may include the following steps: Step S201: Determine the data output direction of the previous node.

[0036] Step S202: Analyze the data output direction.

[0037] Step S203: In response to the data output direction being a diagonal direction, the direction opposite to the data output direction is determined as the target virtual direction, and the data transmitted by the previous node is received through the virtual channel corresponding to the target virtual direction.

[0038] Step S204: In response to the data output direction being horizontal or vertical, the data transmitted by the previous node is received through the regular channel of the routing node.

[0039] Step S205: Obtain the target data to be transmitted.

[0040] In practical applications, routing nodes can first obtain the target data to be transmitted. The target data can be the data transmitted by the previous node, or it can be the data generated after processing the data transmitted by the previous node, etc. This application does not make any specific limitations here.

[0041] Step S206: Determine the destination node for receiving the target data.

[0042] In practical applications, the target data may need to be transmitted to a specific node, so it is necessary to determine the destination node to receive the target data. The destination node can be determined based on the transmission requirements of the target data.

[0043] Step S207: Detect whether the x-coordinate or y-coordinate of the routing node and the destination node are the same.

[0044] Step S208: In response to the fact that the x-coordinate of the routing node is the same as the x-coordinate of the destination node, the target data is transmitted to the next node through the regular channel of the routing node, and the virtual channel of the routing node is disabled.

[0045] Step S209: In response to the fact that the ordinate of the routing node is the same as the ordinate of the destination node, the target data is transmitted to the next node through the regular channel of the routing node, and the virtual channel of the routing node is disabled.

[0046] In practical applications, when the coordinates of the routing node and the destination node have the same value—that is, when the routing node and the destination node are on the same horizontal or vertical line—the target data can be transmitted to the destination node using only the regular channel. This means that the system can detect whether the horizontal or vertical coordinates of the routing node and the destination node are the same. If the horizontal coordinate of the routing node is the same as the horizontal coordinate of the destination node, the target data is transmitted to the next node through the routing node's regular channel, and the routing node's virtual channel is disabled. Specifically, if the routing node and the destination node are on the same vertical line, the target data can be transmitted using only the north-south regular channel. For example, if the destination node is above the routing node, the target data can be transmitted to the destination node using the north-south regular channel. Similarly, if the vertical coordinate of the routing node is the same as the vertical coordinate of the destination node, the target data is transmitted to the next node through the routing node's regular channel, and the routing node's virtual channel is disabled. If the routing node and the destination node are on the same horizontal line, the target data can be transmitted using only the east-west regular channel. For example, if the destination node is to the right of the routing node, the target data can be transmitted to the destination node using the east-west regular channel.

[0047] In an exemplary embodiment, after detecting whether the x-coordinate or y-coordinate of the routing node and the destination node is the same, in response to the fact that both the x-coordinate and y-coordinate of the routing node and the destination node are different, the target horizontal direction needs to be determined based on the difference between the x-coordinate of the routing node and the x-coordinate of the destination node. For example, if the x-coordinate of the destination node is greater than the x-coordinate of the routing node, the target horizontal direction is determined to be east; if the x-coordinate of the destination node is less than the x-coordinate of the routing node, the target horizontal direction is determined to be west. The next node in the target horizontal direction after the routing node is determined as the first candidate node; whether the first candidate node is congested is detected; in response to the first candidate node... If the destination node is functioning normally, the target data is transmitted to the first candidate node via the routing node's regular channel, and the routing node's virtual channel is disabled. In response to congestion at the first candidate node, a second candidate node is determined on the diagonal of the routing node based on the coordinate difference between the routing node and the destination node. The target data is then transmitted to the second candidate node via the routing node's virtual channel. Assuming the target's horizontal direction is east, if the destination node's ordinate is greater than the routing node's ordinate, the second candidate node is the neighboring node to the northeast of the routing node; if the destination node's ordinate is less than the routing node's ordinate, the second candidate node is the neighboring node to the southeast of the routing node. This approach inherits the deadlock-free characteristic of the XY routing algorithm, preserves the east-west / north-south priority order, and allows the virtual channel to be implemented as a supplementary layer to the XY routing algorithm. Without modifying the underlying topology, it can be seamlessly integrated into existing 2D Mesh architectures, reducing portability costs by over 60%.

[0048] For ease of understanding, assume the destination node is located northeast of the current routing node, such as... Figure 3 As shown, if the X values ​​of the current routing node and the destination node are different, the congestion status of the eastern node needs to be checked. If the western channel of the eastern node is still busy after a certain period of time, the northeast direction is output. Similarly, if the destination node is located southeast of the current routing node, and the X values ​​of the current routing node and the destination node are different, the congestion status of the eastern node needs to be checked. If the western channel of the eastern node is still busy after a certain period of time, the southeast direction is output. If the destination node is located northwest of the current routing node, and the X values ​​of the current routing node and the destination node are different, the congestion status of the western node needs to be checked. If the eastern channel of the western node is still busy after a certain period of time, the northwest direction is output. If the destination node is located southwest of the current routing node, and the X values ​​of the current routing node and the destination node are different, the congestion status of the western node needs to be checked. If the eastern channel of the western node is still busy after a certain period of time, the southwest direction is output.

[0049] In an exemplary embodiment, the detection of whether a first candidate node is congested can be performed using a timeout period. For example, first candidate nodes that time out can be uniformly classified as congested nodes, and the threshold for the timeout can be 500 ns. This way, even if a node fails, such as due to physical damage causing it to become unresponsive, this application can automatically identify the faulty node as congested and trigger a rerouting. Alternatively, it can be performed using the optical power attenuation rate. For example, nodes with an attenuation rate greater than 0.5 dB / ms can be classified as having link degradation, thus incorporating physical layer damage into the congestion assessment criteria and improving the accuracy of node congestion detection.

[0050] In specific application scenarios, accurate congestion assessment of nodes undoubtedly improves the accuracy of data transmission. To achieve this, the current performance data of the first candidate node can be obtained, including buffer occupancy and packet processing rate. If the current performance data value is less than or equal to a preset threshold, the first candidate node is determined to be in a normal state; if the current performance data value is greater than the preset threshold, the first candidate node is determined to be in a congested state. The historical state of the first candidate node can also be obtained. Based on the current and historical states, it can be predicted whether the first candidate node will continue to be congested within a set future timeframe. If the first candidate node continues to be congested within the set future timeframe, it is determined to be congested; otherwise, it is determined to be normal. This approach improves accuracy through future prediction and allows for high sensitivity in responding to rapidly changing network environments, thereby maximizing the performance gains brought by virtual channels.

[0051] It should be noted that the method for detecting whether the first candidate node is congested in this application can be flexibly set as needed. For example, it can be performed using any of the methods in the three embodiments described above, or it can combine the results of multiple methods. In addition, the principle of this application can also be extended to fixed network scenarios, such as fiber optic backbone networks, etc., without specific limitations here.

[0052] Please see Figure 4 , Figure 4 This is a schematic diagram of a data transmission system provided in an embodiment of this application.

[0053] This application provides a data transmission system applied to a routing node in an on-chip network, which may include: The output direction determination module 101 is used to determine the data output direction of the previous node; Parsing module 102 is used to parse the data output direction; The virtual channel receiving module 103 is used to determine the direction opposite to the data output direction as the target virtual direction in response to the data output direction being a diagonal direction, and to receive the data transmitted by the previous node through the virtual channel corresponding to the target virtual direction. The conventional channel receiving module 104 is used to receive data transmitted by the previous node through the conventional channel of the routing node in response to the data output direction being horizontal or vertical. The on-chip network has a two-dimensional mesh topology; virtual channels are used to transmit data in the four directions of northeast, southeast, northwest, and southwest; and conventional channels are used to transmit data in the four directions of east, south, west, and north.

[0054] For ease of understanding, the connection relationships between the routing nodes of the on-chip network are as follows: Figure 5 As shown, the left, center, and right positions of the nodes do not represent their actual spatial positions. For example, the left node represents the previous data input node, and the right node represents the subsequent data output node. Each routing node contains a control unit, which includes a channel selection module and an algorithm calculation module. The channel selection module selects the channel based on the direction of the data output from the previous data input node. For example, if the previous node's output direction is east, the channel selection module will close the virtual channel, open the regular channel, and select the west direction of the regular channel for data reception. If the previous node's data was output from the northeast, the channel selection module will open the virtual channel, close the regular channel, and select the southwest direction of the virtual channel for data reception. The algorithm calculation module controls the execution of the routing algorithm. It is internally configured with a routing algorithm that can automatically and intelligently select a data output direction based on the current node's location information and the congestion status of nearby nodes.

[0055] This application provides a data transmission system applied to a routing node in an on-chip network. The virtual channel receiving module may include: The virtual channel detection unit is used to detect whether other virtual channels besides the target virtual direction are enabled; in response to the other virtual channels besides the target virtual direction being enabled, it waits for the other virtual channels besides the target virtual direction to be disabled, and then receives the data transmitted by the previous node through the virtual channel corresponding to the target virtual direction; in response to the other virtual channels besides the target virtual direction being disabled, it receives the data transmitted by the previous node through the virtual channel corresponding to the target virtual direction.

[0056] This application provides a data transmission system applied to a routing node in a network-on-a-chip. The virtual channel detection unit is specifically used to: detect whether other virtual channels besides the target virtual direction are actively disabled; in response to actively disabling other virtual channels besides the target virtual direction, the other virtual channels besides the target virtual direction are disabled, and the data transmitted by the previous node is received through the virtual channel corresponding to the target virtual direction.

[0057] This application provides a data transmission system applied to a routing node in an on-chip network, which may further include: The data retransmission unit is used to record the data transmission information of virtual channels other than the target virtual direction after the virtual channel detection unit stops using other virtual channels; after receiving the data transmitted by the previous node, it continues to transmit data according to the data transmission information.

[0058] This application provides a data transmission system applied to a routing node in an on-chip network, which may further include: The target data acquisition module is used to acquire the target data to be transmitted. The destination node determination module is used to determine the destination node for receiving target data. The coordinate detection module is used to detect whether the x-coordinate or y-coordinate of the routing node and the destination node are the same; The virtual channel transmission module is used to transmit target data to the next node through the regular channel of the routing node and disable the virtual channel of the routing node when the x-coordinate of the routing node is the same as that of the destination node. The regular channel transmission module is used to transmit target data to the next node through the regular channel of the routing node in response to the fact that the ordinate of the routing node is the same as that of the destination node, and disables the virtual channel of the routing node.

[0059] At this point, data is input from the previous node to the current node. The channel selection module chooses between a regular channel and a virtual channel for data reception based on the input direction. After data reception, the algorithm calculation module performs direction calculation according to its internal preset algorithm and finally outputs an output direction. Upon receiving this direction information, the channel selection module selects between a regular channel and a virtual channel for data output, such as... Figure 6 As shown.

[0060] This application provides a data transmission system applied to a routing node in an on-chip network, which may further include: The target horizontal direction determination module is used after the coordinate detection module detects whether the horizontal or vertical coordinates of the routing node and the destination node are the same. In response to the fact that the horizontal and vertical coordinates of the routing node and the destination node are different, the target horizontal direction is determined based on the difference between the horizontal coordinates of the routing node and the horizontal coordinates of the destination node. The first candidate node determination module is used to determine the next node of the routing node in the horizontal direction of the target as the first candidate node; The congestion handling module is used to detect whether the first candidate node is congested. If the first candidate node is normal, the target data is transmitted to the first candidate node through the regular channel of the routing node, and the virtual channel of the routing node is disabled. If the first candidate node is congested, the second candidate node is determined on the diagonal of the routing node according to the coordinate difference between the routing node and the destination node, and the target data is transmitted to the second candidate node through the virtual channel of the routing node.

[0061] This application provides a data transmission system applied to a routing node in an on-chip network. The congestion handling module may include: The current performance data acquisition unit is used to acquire the current performance data of the first candidate node. The performance data includes buffer occupancy rate and packet processing rate. The performance detection unit is used to determine the current state of the first candidate node as normal if the value of the current performance data is less than or equal to a preset threshold, and to determine the current state of the first candidate node as congested if the value of the current performance data is greater than the preset threshold. The historical state acquisition unit is used to acquire the historical state of the first candidate node; The prediction unit is used to predict whether the first candidate node will continue to be congested within a set time in the future, based on the current state and historical state. The congestion handling unit is used to determine that the first candidate node is congested if it continues to be congested within a set time period in the future; otherwise, it determines that the first candidate node is normal.

[0062] This application also provides an electronic device and a computer-readable storage medium, both of which have the corresponding effects of the data transmission method provided in the embodiments of this application. Please refer to... Figure 7 , Figure 7 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application.

[0063] An electronic device provided in this application includes a memory 201 and a processor 202. The memory 201 stores a computer program, and the processor 202 executes the computer program to implement the steps of the data transmission method described in any of the above embodiments.

[0064] Please see Figure 8 Another electronic device provided in this application embodiment may further include: an input port 203 connected to the processor 202 for transmitting commands input from the outside to the processor 202; a display unit 204 connected to the processor 202 for displaying the processing results of the processor 202 to the outside; and a communication module 205 connected to the processor 202 for enabling communication between the electronic device and the outside. The display unit 204 may be a display panel, a laser scanner, or the like; the communication method used by the communication module 205 includes, but is not limited to, Mobile High-Definition Link (MHL), Universal Serial Bus (USB), High-Definition Multimedia Interface (HDMI), wireless connectivity: Wireless Fidelity (WiFi), Bluetooth communication technology, Bluetooth Low Energy communication technology, and communication technology based on IEEE 802.11s.

[0065] This application provides a computer-readable storage medium storing a computer program. When the computer program is executed by a processor, it implements the steps of the data transmission method described in any of the above embodiments.

[0066] The computer-readable storage media involved in this application include random access memory (RAM), memory, read-only memory (ROM), electrically programmable ROM, electrically erasable programmable ROM, registers, hard disks, removable disks, CD-ROMs (compact disc read-only memory), or any other form of storage media known in the art.

[0067] This application provides a computer program product, including a computer program / instructions, which, when executed by a processor, implement the steps of the data transmission method described in any of the above embodiments.

[0068] For descriptions of relevant parts in the data transmission system, electronic device, and computer-readable storage medium provided in this application's embodiments, please refer to the detailed description of the corresponding parts in the data transmission method provided in this application's embodiments; they will not be repeated here. Furthermore, parts of the technical solutions provided in this application that are consistent with the implementation principles of corresponding technical solutions in the prior art have not been described in detail to avoid excessive elaboration.

[0069] It should also be noted that, in this document, relational terms such as "first" and "second" are used only to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.

[0070] The above description of the disclosed embodiments enables those skilled in the art to make or use this application. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of this application. Therefore, this application is not to be limited to the embodiments shown herein, but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.

Claims

1. A data transmission method, characterized in that, Routing nodes used in on-chip networks include: Determine the data output direction of the previous node; The direction of the data output is analyzed; In response to the data output direction being a diagonal direction, the direction opposite to the data output direction is determined as the target virtual direction, and the data transmitted by the previous node is received through the virtual channel corresponding to the target virtual direction; In response to the data output direction being horizontal or vertical, the data transmitted by the previous node is received through the regular channel of the routing node; The on-chip network has a two-dimensional mesh topology; the virtual channel is used to transmit data in the four directions of northeast, southeast, northwest, and southwest; and the conventional channel is used to transmit data in the four directions of east, south, west, and north.

2. The method according to claim 1, characterized in that, Receiving data transmitted by the previous node through a virtual channel corresponding to the target virtual direction includes: Detect whether other virtual channels besides the target virtual direction are enabled; In response to the activation of other virtual channels besides the target virtual direction, the system waits for other virtual channels besides the target virtual direction to be deactivated before receiving data transmitted by the previous node through the virtual channel corresponding to the target virtual direction. If no other virtual channel is enabled except for the target virtual direction, the data transmitted by the previous node is received through the virtual channel corresponding to the target virtual direction.

3. The method according to claim 2, characterized in that, The step of waiting for other virtual channels besides the target virtual direction to become inactive, and then receiving data transmitted by the previous node through the virtual channel corresponding to the target virtual direction, includes: Detect whether other virtual channels besides the target virtual direction are actively disabled; In response to actively disabling other virtual channels besides the target virtual direction, the other virtual channels besides the target virtual direction are disabled, and data transmitted by the previous node is received through the virtual channel corresponding to the target virtual direction.

4. The method according to claim 3, characterized in that, After disabling other virtual channels besides the target virtual direction, the method further includes: Record data transmission information for other virtual channels besides the target virtual direction; After receiving the data transmitted by the previous node, data transmission continues according to the data transmission information.

5. The method according to claim 1, characterized in that, Also includes: Obtain the target data to be transmitted; Determine the destination node to receive the target data; Check if the x-coordinate or y-coordinate of the routing node and the destination node are the same; If the x-coordinate of the routing node is the same as the x-coordinate of the destination node, the target data is transmitted to the next node through the regular channel of the routing node, and the virtual channel of the routing node is disabled. If the ordinate of the routing node is the same as the ordinate of the destination node, the target data is transmitted to the next node through the regular channel of the routing node, and the virtual channel of the routing node is disabled.

6. The method according to claim 5, characterized in that, After detecting whether the x-coordinate or y-coordinate of the routing node and the destination node are the same, the method further includes: If the x-coordinates and y-coordinates of the routing node and the destination node are different, the target horizontal direction is determined based on the difference between the x-coordinates of the routing node and the destination node. The next node in the horizontal direction of the target is identified as the first candidate node; Detect whether the first candidate node is congested; If the first candidate node is functioning normally, the target data is transmitted to the first candidate node through the regular channel of the routing node, and the virtual channel of the routing node is disabled. In response to congestion at the first candidate node, a second candidate node is determined on the diagonal of the routing node based on the coordinate difference between the routing node and the destination node, and the target data is transmitted to the second candidate node through the virtual channel of the routing node.

7. The method according to claim 6, characterized in that, The detection of whether the first candidate node is congested includes: Obtain the current performance data of the first candidate node, including buffer occupancy and packet processing rate; If the current performance data value is less than or equal to a preset threshold, the current state of the first candidate node is determined to be normal. If the value of the current performance data is greater than the preset threshold, then the current state of the first candidate node is determined to be congested. Obtain the historical state of the first candidate node; Based on the current and historical states, predict whether the first candidate node will remain congested within a set future timeframe. If the first candidate node continues to be congested within a set time period, it is determined that the first candidate node is congested; otherwise, it is determined that the first candidate node is normal.

8. A data transmission system, characterized in that, Routing nodes used in on-chip networks include: The output direction determination module is used to determine the data output direction of the previous node; The parsing module is used to parse the output direction of the data; The virtual channel receiving module is configured to, in response to the data output direction being a diagonal direction, determine the direction opposite to the data output direction as the target virtual direction, and receive the data transmitted by the previous node through the virtual channel corresponding to the target virtual direction; The conventional channel receiving module is used to receive data transmitted by the previous node through the conventional channel of the routing node in response to the data output direction being horizontal or vertical. The on-chip network has a two-dimensional mesh topology; the virtual channel is used to transmit data in the four directions of northeast, southeast, northwest, and southwest; and the conventional channel is used to transmit data in the four directions of east, south, west, and north.

9. An electronic device, characterized in that, include: Memory, used to store computer programs; A processor, configured to implement the steps of the data transmission method as described in any one of claims 1 to 7 when executing the computer program.

10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that, when executed by a processor, implements the steps of the data transmission method as described in any one of claims 1 to 7.