Data transmission method, device, equipment and medium based on 3D on-chip network
By adopting the XY plane-first or Z axis-first transmission rules based on the vertical distance between the source node and the target node and the heat dissipation component, the correctness of data transmission in the 3D on-chip network is solved, and the reliability and stability of the system are improved.
Patent Information
- Application Number
- CN202111666800.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-12-30
- Publication Date
- 2024-12-13
- Estimated Expiration
- 2041-12-30
AI Technical Summary
The existing routing algorithms are mainly aimed at 2D on-chip networks and cannot be effectively applied to 3D on-chip networks, resulting in data transmission not being correctly processed at high requests, resulting in errors.
By obtaining the vertical distance between the source node and the target node and the heat dissipation component, the transmission direction of the data packet is determined according to the distance relationship, so as to ensure that the data packet can dissipate heat in time during the transmission process and reduce the Unstable situations caused by excessive heat.
It realizes the correct transmission of 3D on-chip network data, improves the reliability and stability of the system, and ensures the smooth transmission of data packets.
Smart Images

Figure CN114448862B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of integrated circuit technology, and in particular to a data transmission method, apparatus, device and computer-readable storage medium based on a 3D on-chip network. Background Art
[0002] With the continuous development of integrated circuit manufacturing technology, the number of transistors that can be integrated on a chip and the integration level of the chip are increasing, which makes it possible to integrate dozens or even hundreds of IP cores on a single chip. In this way, the system on chip (SOC) based on bus communication architecture will face problems such as scalability, communication efficiency, and global clock synchronization difficulties.
[0003] In order to solve the above problems, Network On Chip (NoC) was proposed as a new interconnection structure. Since this architecture has good scalability, higher throughput and lower power consumption, it is used to solve the inter-core communication of complex on-chip systems. With the increase of IP cores in the single-plane network on chip 2D NoC, 2D NoC does not fundamentally solve the problem of shortening physical connections and reducing signal delays.
[0004] 3D NoC is a vertical expansion of 2D NoC. This structure greatly shortens the average number of hops between IP cores, greatly improving the efficiency of intra-chip communication. Three-dimensional integrated circuit design and NoC multi-core interconnect architecture have been studied in academia for many years. The three-dimensional NoC (3D NoC) produced by combining 3D integrated circuit design technology with advanced NoC architecture is considered to be the most promising multi-core interconnect communication architecture under nanotechnology due to its excellent performance and good scalability. Through silicon via (TSV) is the most common and most promising inter-layer interconnect technology in the industry. It stacks multiple dies in the vertical direction, effectively shortens the length of IP core connections, reduces delays, reduces power consumption, and better meets the communication efficiency requirements of multi-core systems.
[0005] However, as chip feature size decreases, integrated circuit density increases, and TSV is introduced, chip reliability issues will arise. Routing algorithms can be used to improve the reliability of data transmission on chips. The implementation carrier of the routing algorithm is the routing calculation module of the on-chip network router, and the algorithm will be solidified in the routing calculation module in the form of digital circuits. The routing calculation module will combine the information contained in the data packet header microchip with the routing algorithm to calculate the output port of the microchip.
[0006] However, the current routing algorithm is mainly aimed at the transmission of data on 2D on-chip networks. Due to the difference in the structure of 2D on-chip networks and 3D on-chip networks, the routing algorithm cannot be well applied to 3D on-chip networks. When the number of requests is large, each request cannot be effectively processed, resulting in errors.
[0007] It can be seen that how to achieve correct transmission of 3D on-chip network data is a problem that needs to be solved by those skilled in the art. Summary of the invention
[0008] The purpose of the embodiments of the present application is to provide a data transmission method, apparatus, device and computer-readable storage medium based on a 3D on-chip network, which can realize the correct transmission of 3D on-chip network data.
[0009] In order to solve the above technical problems, an embodiment of the present application provides a data transmission method based on a 3D on-chip network, comprising:
[0010] Obtaining vertical distances between a source node and a target node and a heat dissipation component respectively; wherein the heat dissipation component is parallel to an XY plane of the 3D on-chip network;
[0011] When the vertical distance between the source node and the heat dissipation component is less than or equal to the vertical distance between the target node and the heat dissipation component, the data packet to be processed is transmitted from the source node to the target node according to the transmission rule of XY plane priority;
[0012] When the vertical distance between the source node and the heat dissipation component is greater than the vertical distance between the target node and the heat dissipation component, the source node is transmitted from the source node to the target node according to a Z-axis priority transmission rule.
[0013] Optionally, transmitting the to-be-processed data packet from the source node to the target node according to an XY plane priority transmission rule includes:
[0014] According to the coordinates of the source node and the coordinates of the target node, the moving direction of the data packet to be processed in the XY plane to which it belongs is selected;
[0015] Determining the target moving direction of the data packet to be processed based on the fault condition and congestion degree corresponding to the moving direction;
[0016] The data packet to be processed is moved toward the target node according to the target moving direction until the data packet to be processed is transmitted to the target node, and then the operation is terminated.
[0017] Optionally, determining the target moving direction of the to-be-processed data packet based on the fault condition and congestion degree corresponding to the moving direction includes:
[0018] In the case that there is no fault in the moving direction, taking the moving direction without fault and with the least congestion as the target moving direction of the data to be processed;
[0019] In the case that there are faults in all the moving directions, the Z-axis direction in which the Z coordinate of the source node points to the Z coordinate of the target node is used as the target moving direction of the data to be processed.
[0020] Optionally, moving the to-be-processed data packet toward the target node according to the target moving direction includes:
[0021] Transmitting the data packet to be processed by a unit distance according to the target moving direction;
[0022] Determine whether the coordinates currently corresponding to the data packet to be processed are the same as the X coordinates and the Y coordinates of the coordinates of the target node;
[0023] In the case where the coordinates currently corresponding to the data packet to be processed are not the same as the X coordinates or Y coordinates of the coordinates of the target node, the coordinates currently corresponding to the data packet to be processed are used as the coordinates of the source node, and the step of selecting the moving direction of the data packet to be processed in the XY plane to which it belongs based on the coordinates of the source node and the coordinates of the target node is returned;
[0024] When the coordinates currently corresponding to the data packet to be processed are the same as the X coordinates and Y coordinates of the target node, the data packet to be processed is moved toward the target node along the Z axis direction based on the coordinates currently corresponding to the data packet to be processed and the coordinates of the target node.
[0025] Optionally, transmitting the source node from the source node to the target node according to a Z-axis priority transmission rule includes:
[0026] The Z-axis direction from the Z coordinate of the source node to the Z coordinate of the target node is used as the moving direction of the data to be processed;
[0027] Determining a target moving direction of the data packet to be processed based on the fault condition corresponding to the moving direction;
[0028] The data packet to be processed is moved toward the target node according to the target moving direction until the data packet to be processed is transmitted to the target node, and then the operation is terminated.
[0029] Optionally, the determining, based on the fault condition corresponding to the moving direction, a target moving direction of the data packet to be processed comprises:
[0030] In the case where there is no fault in the moving direction, taking the moving direction as the target moving direction of the data packet to be processed;
[0031] In the case where there is a fault in the moving direction, the target moving direction of the data packet to be processed is determined based on the fault and congestion level corresponding to the moving direction of the data packet to be processed in the XY plane to which it belongs.
[0032] Optionally, moving the to-be-processed data packet toward the target node according to the target moving direction includes:
[0033] Transmitting the data packet to be processed by a unit distance according to the target moving direction;
[0034] Determine whether the Z coordinate currently corresponding to the data packet to be processed is the same as the Z coordinate of the target node;
[0035] In the case where the Z coordinate currently corresponding to the data packet to be processed is different from the Z coordinate of the target node, the coordinate currently corresponding to the data packet to be processed is used as the coordinate of the source node, and the Z-axis direction from the Z coordinate of the source node to the Z coordinate of the target node is returned as the moving direction of the data to be processed;
[0036] When the Z coordinate currently corresponding to the data packet to be processed is the same as the Z coordinate of the target node, the data packet to be processed is moved toward the target node along the moving path with the least congestion based on the congestion level corresponding to the moving path of the data packet to be processed on the XY plane to which it belongs.
[0037] The embodiment of the present application also provides a data transmission device based on a 3D network on chip, including an acquisition unit, a first transmission unit and a second transmission unit;
[0038] The acquisition unit is used to acquire the vertical distances between the source node and the target node and the heat dissipation component respectively; wherein the heat dissipation component is parallel to the XY plane of the 3D on-chip network;
[0039] The first transmission unit is used to transmit the to-be-processed data packet from the source node to the target node according to the XY plane priority transmission rule when the vertical distance between the source node and the heat dissipation component is less than or equal to the vertical distance between the target node and the heat dissipation component;
[0040] The second transmission unit is used to transmit the source node from the source node to the target node according to the Z-axis priority transmission rule when the vertical distance between the source node and the heat dissipation component is greater than the vertical distance between the target node and the heat dissipation component.
[0041] Optionally, the first transmission unit includes a selection subunit, a first determination subunit and a first movement subunit;
[0042] The selection subunit is used to select the moving direction of the data packet to be processed in the XY plane to which it belongs according to the coordinates of the source node and the coordinates of the target node;
[0043] The first determining subunit is used to determine the target moving direction of the to-be-processed data packet based on the fault condition and congestion level corresponding to the moving direction;
[0044] The first moving subunit is used to move the data packet to be processed toward the target node according to the target moving direction until the data packet to be processed is transmitted to the target node, and then the operation is terminated.
[0045] Optionally, the first determining subunit is used for, when there is no fault in the moving direction, taking a moving direction without fault and with the least congestion as a target moving direction of the data to be processed;
[0046] In the case that there are faults in all the moving directions, the Z-axis direction in which the Z coordinate of the source node points to the Z coordinate of the target node is used as the target moving direction of the data to be processed.
[0047] Optionally, the first moving subunit is used to transmit the data packet to be processed a unit distance according to the target moving direction;
[0048] Determine whether the coordinates currently corresponding to the data packet to be processed are the same as the X coordinates and the Y coordinates of the coordinates of the target node;
[0049] In the case where the coordinates currently corresponding to the data packet to be processed are not the same as the X coordinates or Y coordinates of the coordinates of the target node, the coordinates currently corresponding to the data packet to be processed are used as the coordinates of the source node, and the step of selecting the moving direction of the data packet to be processed in the XY plane to which it belongs based on the coordinates of the source node and the coordinates of the target node is returned;
[0050] When the coordinates currently corresponding to the data packet to be processed are the same as the X coordinates and Y coordinates of the target node, the data packet to be processed is moved toward the target node along the Z axis direction based on the coordinates currently corresponding to the data packet to be processed and the coordinates of the target node.
[0051] Optionally, the second transmission unit includes an acting subunit, a second determining subunit, and a second moving subunit;
[0052] The subunit is used to point the Z-axis direction of the Z coordinate of the source node to the Z coordinate of the target node as the moving direction of the data to be processed;
[0053] The second determining subunit is used to determine the target moving direction of the data packet to be processed based on the fault condition corresponding to the moving direction;
[0054] The second moving subunit is used to move the data packet to be processed toward the target node according to the target moving direction until the data packet to be processed is transmitted to the target node, and then the operation is terminated.
[0055] Optionally, the second determining subunit is used to use the moving direction as the target moving direction of the data packet to be processed if there is no fault in the moving direction;
[0056] In the case where there is a fault in the moving direction, the target moving direction of the data packet to be processed is determined based on the fault and congestion level corresponding to the moving direction of the data packet to be processed in the XY plane to which it belongs.
[0057] Optionally, the second moving subunit is used to transmit the data packet to be processed a unit distance according to the target moving direction;
[0058] Determine whether the Z coordinate currently corresponding to the data packet to be processed is the same as the Z coordinate of the target node;
[0059] In the case where the Z coordinate currently corresponding to the data packet to be processed is different from the Z coordinate of the target node, the coordinate currently corresponding to the data packet to be processed is used as the coordinate of the source node, and the Z-axis direction from the Z coordinate of the source node to the Z coordinate of the target node is returned as the moving direction of the data to be processed;
[0060] When the Z coordinate currently corresponding to the data packet to be processed is the same as the Z coordinate of the target node, the data packet to be processed is moved toward the target node along the moving path with the least congestion based on the congestion level corresponding to the moving path of the data packet to be processed on the XY plane to which it belongs.
[0061] The embodiment of the present application also provides a data transmission device based on a 3D network on chip, including:
[0062] Memory for storing computer programs;
[0063] A processor is used to execute the computer program to implement the steps of the above-mentioned data transmission method based on 3D on-chip network.
[0064] An embodiment of the present application further provides a computer-readable storage medium, on which a computer program is stored. When the computer program is executed by a processor, the steps of the above-mentioned data transmission method based on 3D on-chip network are implemented.
[0065] It can be seen from the above technical solution that the vertical distances between the source node and the target node and the heat dissipation component are obtained respectively; wherein the heat dissipation component is parallel to the XY plane of the 3D on-chip network. In order to enable the heat generated by the data packet to be processed when it is transmitted from the source node to the target node to be dissipated in time, when the vertical distance between the source node and the heat dissipation component is less than or equal to the vertical distance between the target node and the heat dissipation component, the data packet to be processed can be transmitted from the source node to the target node according to the XY plane priority transmission rule. When the vertical distance between the source node and the heat dissipation component is greater than the vertical distance between the target node and the heat dissipation component, the source node can be transmitted from the source node to the target node according to the Z-axis priority transmission rule. In this technical solution, according to the set transmission rules, the correct transmission of 3D on-chip network data can be achieved. Taking into account that the closer the data packet is to the heat dissipation component, the easier it is to dissipate heat, the data packet transmission method is determined based on the vertical distances between the source node and the target node and the heat dissipation component, thereby ensuring that the 3D on-chip network can quickly dissipate heat when transmitting data packets, reducing the probability of unstable situations caused by excessive heat, improving the reliability and stability of the 3D on-chip network operation, and ensuring the smooth transmission of data packets. BRIEF DESCRIPTION OF THE DRAWINGS
[0066] In order to more clearly illustrate the embodiments of the present application, the following is a brief introduction to the drawings required for use in the embodiments. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative work.
[0067] Figure 1 A flowchart of a data transmission method based on a 3D on-chip network provided in an embodiment of the present application;
[0068] Figure 2 A flowchart of a data packet transmission method based on XY plane priority provided in an embodiment of the present application;
[0069] Figure 3 A flowchart of a data packet transmission method based on Z-axis priority provided in an embodiment of the present application;
[0070] Figure 4 A flow chart of a data transmission device based on a 3D network on chip provided in an embodiment of the present application;
[0071] Figure 5A flow chart of a data transmission device based on a 3D network on chip provided in an embodiment of the present application. DETAILED DESCRIPTION
[0072] The following will be combined with the drawings in the embodiments of the present application to clearly and completely describe the technical solutions in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.
[0073] The terms "including" and "having" and any variations thereof in the specification and claims of this application and the above drawings are intended to cover non-exclusive inclusions. For example, a process, method, system, product or device comprising a series of steps or units is not limited to the listed steps or units, but may include steps or units that are not listed.
[0074] In order to enable those skilled in the art to better understand the present application, the present application is further described in detail below in conjunction with the accompanying drawings and specific implementation methods.
[0075] Next, a data transmission method based on a 3D on-chip network provided by an embodiment of the present application is introduced in detail. Figure 1 A flowchart of a data transmission method based on a 3D on-chip network provided in an embodiment of the present application, the method comprising:
[0076] S101: Obtain the vertical distances between the source node and the target node and the heat dissipation component respectively.
[0077] The source node and the target node can be any two locations on the 3D on-chip network. The source node and the target node have their own corresponding coordinates.
[0078] Considering the impact of temperature on the reliability of the communication architecture, a heat sink can be set on the 3D on-chip network. In practical applications, the heat sink is often set parallel to the XY plane of the 3D on-chip network. The vertical distance between the source node and the heat sink can be the Z-axis distance value from the source node to the heat sink; the vertical distance between the target node and the heat sink can be the Z-axis distance value from the source target node to the heat sink.
[0079] In order from bottom to top, the 3D on-chip network architecture can include the first layer, the second layer, and up to the nth layer. The value of n is not limited. Taking the three-layer network architecture as an example, it is assumed that the heat dissipation components used in the 3D on-chip network architecture are installed below the first layer, so that the heat dissipation of the first layer is the fastest, the second layer is in the middle, and the third layer is the slowest. According to the distribution characteristics of heat dissipation, when controlling the routing of data packets, it is possible to consider allowing the heat generated by the horizontal transmission of data packets to be dissipated as much as possible in the bottom layer close to the heat dissipation components.
[0080] Therefore, when determining the transmission path of the data packet, the vertical distances between the source node and the target node and the heat dissipation component may be obtained first.
[0081] S102: When the vertical distance between the source node and the heat dissipation component is less than or equal to the vertical distance between the target node and the heat dissipation component, the data packet to be processed is transmitted from the source node to the target node according to the XY plane priority transmission rule.
[0082] When the vertical distance between the source node and the heat dissipation component is less than or equal to the vertical distance between the target node and the heat dissipation component, it means that the data packet to be processed will be farther and farther away from the heat dissipation component during the process of moving from the source node to the target node along the Z-axis direction. Therefore, in order to ensure timely heat dissipation during data packet transmission, the data packet to be processed can be allowed to move along the direction of the XY plane first.
[0083] The XY plane priority transmission rule may be to move the data packet to be processed along the XY plane first; when a fault exists on the XY plane, the data packet to be processed may be moved along the Z axis direction.
[0084] S103: When the vertical distance between the source node and the heat dissipation component is greater than the vertical distance between the target node and the heat dissipation component, the source node is transmitted from the source node to the target node according to a Z-axis priority transmission rule.
[0085] When the vertical distance between the source node and the heat sink is greater than the vertical distance between the target node and the heat sink, it means that the data packet to be processed will get closer and closer to the heat sink when it moves from the source node to the target node along the Z axis. Therefore, in order to ensure timely heat dissipation during data packet transmission, the data packet to be processed can be moved along the Z axis first. When the data packet to be processed reaches the same XY plane as the target node, the data packet to be processed is close to the heat sink, and the data packet to be processed can be moved along the XY plane to reach the target node.
[0086] The Z-axis priority transmission rule may be to move the data packet to be processed along the Z-axis first; when there is a fault in the Z-axis transmission path, the data packet to be processed may be moved along the XY plane.
[0087] It can be seen from the above technical solution that the vertical distances between the source node and the target node and the heat dissipation component are obtained respectively; wherein the heat dissipation component is parallel to the XY plane of the 3D on-chip network. In order to enable the heat generated by the data packet to be processed when it is transmitted from the source node to the target node to be dissipated in time, when the vertical distance between the source node and the heat dissipation component is less than or equal to the vertical distance between the target node and the heat dissipation component, the data packet to be processed can be transmitted from the source node to the target node according to the XY plane priority transmission rule. When the vertical distance between the source node and the heat dissipation component is greater than the vertical distance between the target node and the heat dissipation component, the source node can be transmitted from the source node to the target node according to the Z-axis priority transmission rule. In this technical solution, according to the set transmission rules, the correct transmission of 3D on-chip network data can be achieved. Taking into account that the closer the data packet is to the heat dissipation component, the easier it is to dissipate heat, the data packet transmission method is determined based on the vertical distances between the source node and the target node and the heat dissipation component, thereby ensuring that the 3D on-chip network can quickly dissipate heat when transmitting data packets, reducing the probability of unstable situations caused by excessive heat, improving the reliability and stability of the 3D on-chip network operation, and ensuring the smooth transmission of data packets.
[0088] In an embodiment of the present application, when transmitting data packets along the architecture of a 3D network on chip, the congestion level of the transmission path will affect the transmission efficiency of the data packets. Therefore, the congestion of each transmission path can be considered when transmitting data packets, so as to determine the transmission path with the least congestion from the source node to the target node.
[0089] Taking the case where the vertical distance between the source node and the heat dissipation component is less than or equal to the vertical distance between the target node and the heat dissipation component as an example, in a specific implementation, the moving direction of the data packet to be processed in the XY plane to which it belongs can be selected based on the coordinates of the source node and the coordinates of the target node. Based on the fault condition and congestion level corresponding to the moving direction, the target moving direction of the data packet to be processed is determined; the data packet to be processed is moved toward the target node according to the target moving direction until the data packet to be processed is transmitted to the target node, and then the operation ends.
[0090] Figure 2 A flowchart of a data packet transmission method based on XY plane priority is provided in an embodiment of the present application, and the method includes:
[0091] S201: According to the coordinates of the source node and the coordinates of the target node, a moving direction of the data packet to be processed in the XY plane to which it belongs is selected.
[0092] In practical applications, the moving direction can be determined by moving from the source node to the target node.
[0093] For example, assuming that the source node coordinates are (1,2,1) and the target node coordinates are (3,3,3), according to the principle of XY plane priority transmission, the data packet to be processed can be transmitted in the two moving directions of the positive X-axis or the positive Y-axis.
[0094] S202: In the case that there is no fault in the moving direction, the moving direction without fault and with the least congestion is used as the target moving direction of the data to be processed.
[0095] In combination with the above example, when moving along the positive direction of the X axis, the data packet to be processed can move from (1,2,1) to (2,2,1); or when moving along the positive direction of the Y axis, the data packet to be processed can move from (1,2,1) to (1,3,1).
[0096] When there are no faults on these two paths, the moving direction with the least congestion can be used as the target moving direction of the data to be processed based on the congestion of the two paths. Assuming that the congestion level of the path from (1,2,1) to (2,2,1) is lower than the congestion level of the path from (1,2,1) to (1,3,1), the positive direction of the X axis can be used as the target moving direction of the data to be processed.
[0097] S203: When there are faults in both moving directions, the Z-axis direction in which the Z coordinate of the source node points to the Z coordinate of the target node is used as the target moving direction of the data to be processed.
[0098] When there are faults in both moving directions, it means that the data packet to be processed cannot be moved on the current XY plane. In this case, the data packet to be processed can be moved along the Z axis.
[0099] In a specific implementation, the Z-axis direction may include a positive Z-axis direction and a negative Z-axis direction. Whether to move the data packet to be processed along the positive Z-axis direction or the negative Z-axis direction may be determined based on the coordinates of the source node and the target node.
[0100] For example, assuming that the coordinates of the source node are (1,2,1) and the coordinates of the target node are (3,3,3), according to the direction from the source node to the target node, the positive direction of the Z axis can be used as the target moving direction of the data to be processed.
[0101] S204: Transmit the data packet to be processed a unit distance in the target moving direction.
[0102] In the embodiment of the present application, the data packet to be processed moves a unit distance along the determined target moving direction each time, for example, from (1, 2, 1) to (2, 2, 1).
[0103] S205: Determine whether the coordinates currently corresponding to the data packet to be processed are the same as the X coordinates and the Y coordinates of the coordinates of the target node.
[0104] When the X coordinate currently corresponding to the data packet to be processed is different from the X coordinate of the target node or the Y coordinate currently corresponding to the data packet to be processed is different from the Y coordinate of the target node, it means that the data packet to be processed can still move along the XY plane, and S206 can be executed at this time.
[0105] When the X coordinate currently corresponding to the data packet to be processed is the same as the X coordinate of the target node and the Y coordinate currently corresponding to the data packet to be processed is the same as the Y coordinate of the target node, it means that the data packet to be processed does not need to continue to move along the XY plane, and S207 can be performed at this time.
[0106] S206: The coordinates currently corresponding to the data packet to be processed are used as the coordinates of the source node, and the process returns to S201.
[0107] In the embodiment of the present application, each time the data packet to be processed is moved, the current coordinates of the data packet to be processed can be used as the coordinates of the latest source node, and then return to S201 to re-determine the direction in which the data packet to be processed needs to move next.
[0108] S207: Based on the coordinates currently corresponding to the data packet to be processed and the coordinates of the target node, the data packet to be processed is moved toward the target node along the Z-axis direction.
[0109] For example, assuming that the coordinates of the data packet to be processed are currently (3,3,1) and the coordinates of the target node are (3,3,3), the data packet to be processed can be transmitted to the target node by moving from (3,3,1) to (3,3,2) and then to (3,3,3).
[0110] Taking the case where the vertical distance between the source node and the heat dissipation component is greater than the vertical distance between the target node and the heat dissipation component as an example, in a specific implementation, the Z-axis direction of the Z coordinate of the source node pointing to the Z coordinate of the target node can be used as the moving direction of the data to be processed; based on the fault condition corresponding to the moving direction, the target moving direction of the data packet to be processed is determined; the data packet to be processed is moved toward the target node according to the target moving direction until the data packet to be processed is transmitted to the target node, and then the operation is terminated.
[0111] Figure 3 A flowchart of a data packet transmission method based on Z-axis priority provided in an embodiment of the present application, the method comprising:
[0112] S301: The Z-axis direction from the Z coordinate of the source node to the Z coordinate of the target node is used as the moving direction of the data to be processed.
[0113] The Z-axis direction may include a positive Z-axis direction and a negative Z-axis direction. Whether to move the data packet to be processed along the positive Z-axis direction or the negative Z-axis direction may be determined based on the coordinates of the source node and the target node.
[0114] For example, assuming that the coordinates of the source node are (3,3,3) and the coordinates of the target node are (1,2,1), according to the direction from the source node to the target node, the negative direction of the Z axis can be used as the moving direction of the data to be processed.
[0115] S302: When there is no fault in the moving direction, use the moving direction as the target moving direction of the data packet to be processed.
[0116] When there is no fault in the moving direction, it means that the data packet to be processed can be transmitted along the moving direction. At this time, the moving direction can be directly used as the target moving direction of the data packet to be processed.
[0117] S303: In the case where there is a fault in the moving direction, based on the fault and congestion level corresponding to the moving direction of the data packet to be processed in the XY plane to which it belongs, determine the target moving direction of the data packet to be processed.
[0118] In the case where there is a fault in the moving direction, it means that the data packet to be processed cannot be moved along the Z axis. At this time, the data packet to be processed can be moved on the current XY plane.
[0119] For example, assuming that the source node coordinates are (3,3,3) and the target node coordinates are (1,2,1), the data packet to be processed can move in the current XY plane in two ways: moving in the negative direction of the X axis and moving in the negative direction of the Y axis. When moving in the negative direction of the X axis, the data packet to be processed can move from (3,3,3) to (2,3,3); or when moving in the negative direction of the Y axis, the data packet to be processed can move from (3,3,3) to (3,2,3). When there are no faults on these two paths, the moving direction with the least congestion can be used as the target moving direction of the data to be processed based on the congestion of these two paths. Assuming that the congestion level of the path from (3,3,3) to (2,3,3) is lower than the congestion level of the path from (3,3,3) to (3,2,3), the negative direction of the X axis can be used as the target moving direction of the data to be processed.
[0120] S304: Transmit the data packet to be processed a unit distance in the target moving direction.
[0121] In the embodiment of the present application, the data packet to be processed moves one unit distance each time along the determined target moving direction, for example, from (3,3,3) to (3,3,2).
[0122] S305: Determine whether the Z coordinate currently corresponding to the data packet to be processed is the same as the Z coordinate of the target node.
[0123] When the Z coordinate currently corresponding to the data packet to be processed is different from the Z coordinate of the target node, it means that the data packet to be processed can still move along the Z axis, and S306 can be executed at this time.
[0124] When the Z coordinate currently corresponding to the data packet to be processed is the same as the Z coordinate of the target node, it means that the data packet to be processed does not need to continue to move along the Z axis, and S307 can be executed at this time.
[0125] S306: The coordinates currently corresponding to the data packet to be processed are used as the coordinates of the source node, and the process returns to S301.
[0126] In the embodiment of the present application, each time the data packet to be processed is moved, the current coordinates of the data packet to be processed can be used as the coordinates of the latest source node, and then return to S301 to re-determine the direction in which the data packet to be processed needs to move next.
[0127] S307: Based on the congestion level corresponding to the moving path of the data packet to be processed on the XY plane, the data packet to be processed is moved toward the target node along the moving path with the least congestion level.
[0128] For example, assuming that the coordinates of the data packet to be processed are currently (2,3,1) and the coordinates of the target node are (1,2,1), then the data packet to be processed can be transferred to the target node by moving from (2,3,1) to (1,3,1) and then to (1,2,1). Alternatively, the data packet to be processed can be transferred to the target node by moving from (2,3,1) to (2,2,1) and then to (1,2,1).
[0129] In practical applications, the path corresponding to each unit distance moved by the data packet to be processed can be regarded as a path. For example, (2,3,1) to (1,3,1) is one path, and from (1,3,1) to (1,2,1) is another path. These two paths can be regarded as a path set.
[0130] When the distance between the source node and the target node is short, there will not be too many corresponding path sets. At this time, based on the congestion level corresponding to each path set, the data packet to be processed can be moved along the path included in the path set with the least congestion level.
[0131] When the distance between the source node and the target node is far, there may be more corresponding path sets, and each path set contains more paths, resulting in a large amount of calculation for calculating the congestion level corresponding to each path set and a long time. Therefore, in the case where the distance between the source node and the target node is far, when selecting the moving path of the data packet to be processed, only the congestion level between the adjacent nodes at the current location of the data packet to be processed can be analyzed to select the moving path of the data packet to be processed.
[0132] In the embodiment of the present application, the heat dissipation conditions during the transmission of the data packets to be processed and the fault conditions and congestion levels corresponding to the moving direction are comprehensively considered, and the most appropriate moving direction is selected to realize the transmission of the data packets to be processed. Not only can the timely heat dissipation of the data packet transmission be achieved, but the congestion situation can also be sensed in advance to prevent deadlock, thereby realizing efficient data transmission.
[0133] Figure 4 A schematic structural diagram of a data transmission device based on a 3D network on chip provided in an embodiment of the present application, comprising an acquisition unit 41, a first transmission unit 42 and a second transmission unit 43;
[0134] An acquisition unit 41 is used to acquire vertical distances between a source node and a target node and a heat dissipation component respectively; wherein the heat dissipation component is parallel to an XY plane of the 3D on-chip network;
[0135] The first transmission unit 42 is used to transmit the data packet to be processed from the source node to the target node according to the XY plane priority transmission rule when the vertical distance between the source node and the heat dissipation component is less than or equal to the vertical distance between the target node and the heat dissipation component;
[0136] The second transmission unit 43 is used to transmit the source node from the source node to the target node according to the Z-axis priority transmission rule when the vertical distance between the source node and the heat dissipation component is greater than the vertical distance between the target node and the heat dissipation component.
[0137] Optionally, the first transmission unit includes a selection subunit, a first determination subunit and a first movement subunit;
[0138] A selection subunit is used to select the moving direction of the data packet to be processed in the XY plane to which it belongs according to the coordinates of the source node and the coordinates of the target node;
[0139] A first determination subunit, configured to determine a target moving direction of a data packet to be processed based on a fault condition and a congestion degree corresponding to the moving direction;
[0140] The first moving subunit is used to move the data packet to be processed toward the target node according to the target moving direction until the data packet to be processed is transmitted to the target node, and then the operation is terminated.
[0141] Optionally, the first determining subunit is used to, when there is no fault in the moving direction, use a moving direction without fault and with the least congestion as a target moving direction for the data to be processed;
[0142] In the case that there are faults in both moving directions, the Z-axis direction in which the Z coordinate of the source node points to the Z coordinate of the target node is used as the target moving direction of the data to be processed.
[0143] Optionally, the first moving subunit is used to transmit the data packet to be processed a unit distance according to the target moving direction;
[0144] Determine whether the coordinates currently corresponding to the data packet to be processed are the same as the X coordinates and Y coordinates of the target node;
[0145] When the coordinates currently corresponding to the data packet to be processed are not the same as the X coordinates or Y coordinates of the coordinates of the target node, the coordinates currently corresponding to the data packet to be processed are used as the coordinates of the source node, and the step of selecting the moving direction of the data packet to be processed in the XY plane to which it belongs is returned based on the coordinates of the source node and the coordinates of the target node;
[0146] When the coordinates currently corresponding to the data packet to be processed are the same as the X coordinates and Y coordinates of the target node, the data packet to be processed is moved toward the target node along the Z axis direction based on the coordinates currently corresponding to the data packet to be processed and the target node.
[0147] Optionally, the second transmission unit includes an acting subunit, a second determining subunit, and a second moving subunit;
[0148] As a subunit, it is used to point the Z-axis direction of the Z coordinate of the source node to the Z coordinate of the target node as the moving direction of the data to be processed;
[0149] A second determining subunit is used to determine a target moving direction of the data packet to be processed based on the fault condition corresponding to the moving direction;
[0150] The second moving subunit is used to move the data packet to be processed toward the target node according to the target moving direction until the data packet to be processed is transmitted to the target node, and then the operation is terminated.
[0151] Optionally, the second determining subunit is used to use the moving direction as the target moving direction of the data packet to be processed when there is no fault in the moving direction;
[0152] In the case where there is a fault in the moving direction, the target moving direction of the data packet to be processed is determined based on the fault and congestion level corresponding to the moving direction of the data packet to be processed in the XY plane to which it belongs.
[0153] Optionally, the second moving subunit is used to transmit the data packet to be processed a unit distance according to the target moving direction;
[0154] Determine whether the Z coordinate currently corresponding to the data packet to be processed is the same as the Z coordinate of the target node;
[0155] When the Z coordinate currently corresponding to the data packet to be processed is different from the Z coordinate of the target node, the coordinate currently corresponding to the data packet to be processed is used as the coordinate of the source node, and the Z-axis direction from the Z coordinate of the source node to the Z coordinate of the target node is returned as the moving direction of the data to be processed;
[0156] When the Z coordinate currently corresponding to the data packet to be processed is the same as the Z coordinate of the target node, the data packet to be processed is moved toward the target node along the moving path with the least congestion based on the congestion level corresponding to the moving path of the data packet to be processed on the XY plane to which it belongs.
[0157] Figure 4 The description of the features in the corresponding embodiments can be found in Figures 1 to 3 The relevant descriptions of the corresponding embodiments will not be repeated here one by one.
[0158] It can be seen from the above technical solution that the vertical distances between the source node and the target node and the heat dissipation component are obtained respectively; wherein the heat dissipation component is parallel to the XY plane of the 3D on-chip network. In order to enable the heat generated by the data packet to be processed when it is transmitted from the source node to the target node to be dissipated in time, when the vertical distance between the source node and the heat dissipation component is less than or equal to the vertical distance between the target node and the heat dissipation component, the data packet to be processed can be transmitted from the source node to the target node according to the XY plane priority transmission rule. When the vertical distance between the source node and the heat dissipation component is greater than the vertical distance between the target node and the heat dissipation component, the source node can be transmitted from the source node to the target node according to the Z-axis priority transmission rule. In this technical solution, according to the set transmission rules, the correct transmission of 3D on-chip network data can be achieved. Taking into account that the closer the data packet is to the heat dissipation component, the easier it is to dissipate heat, the data packet transmission method is determined based on the vertical distances between the source node and the target node and the heat dissipation component, thereby ensuring that the 3D on-chip network can quickly dissipate heat when transmitting data packets, reducing the probability of unstable situations caused by excessive heat, improving the reliability and stability of the 3D on-chip network operation, and ensuring the smooth transmission of data packets.
[0159] Figure 5 A structural diagram of a data transmission device based on a 3D network on chip provided in an embodiment of the present application, such as Figure 5 As shown, the data transmission device based on the 3D network-on-chip includes: a memory 20 for storing a computer program;
[0160] The processor 21 is configured to implement the steps of the data transmission method based on the 3D on-chip network in the above embodiment when executing the computer program.
[0161] The data transmission device based on 3D network on chip provided in this embodiment may include but is not limited to a smart phone, a tablet computer, a laptop computer or a desktop computer.
[0162] Among them, the processor 21 may include one or more processing cores, such as a 4-core processor, an 8-core processor, etc. The processor 21 can be implemented in at least one hardware form of DSP (Digital Signal Processing), FPGA (Field-Programmable Gate Array), and PLA (Programmable Logic Array). The processor 21 may also include a main processor and a coprocessor. The main processor is a processor for processing data in the awake state, also known as a CPU (Central Processing Unit); the coprocessor is a low-power processor for processing data in the standby state. In some embodiments, the processor 21 may be integrated with a GPU (Graphics Processing Unit), which is responsible for rendering and drawing the content to be displayed on the display screen. In some embodiments, the processor 21 may also include an AI (Artificial Intelligence) processor, which is used to process computing operations related to machine learning.
[0163] The memory 20 may include one or more computer-readable storage media, which may be non-transitory. The memory 20 may also include a high-speed random access memory, and a non-volatile memory, such as one or more disk storage devices, flash memory storage devices. In this embodiment, the memory 20 is at least used to store the following computer program 201, wherein, after the computer program is loaded and executed by the processor 21, it can implement the relevant steps of the data transmission method based on the 3D on-chip network disclosed in any of the aforementioned embodiments. In addition, the resources stored in the memory 20 may also include an operating system 202 and data 203, etc., and the storage method may be temporary storage or permanent storage. Among them, the operating system 202 may include Windows, Unix, Linux, etc. Data 203 may include but is not limited to XY plane priority transmission rules, Z axis priority transmission rules, etc.
[0164] In some embodiments, the data transmission device based on the 3D network on chip may further include a display screen 22 , an input and output interface 23 , a communication interface 24 , a power supply 25 , and a communication bus 26 .
[0165] Those skilled in the art will understand that Figure 5 The structure shown in the figure does not constitute a limitation on the data transmission device based on the 3D on-chip network, and may include more or less components than those shown in the figure.
[0166] It is understandable that if the data transmission method based on 3D on-chip network in the above embodiment is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application is essentially or the part that contributes to the prior art or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium to execute all or part of the steps of each embodiment method of the present application. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (Read-Only Memory, ROM), random access memory (Random Access Memory, RAM), electrically erasable programmable ROM, register, hard disk, removable disk, CD-ROM, magnetic disk or optical disk and other media that can store program code.
[0167] Based on this, an embodiment of the present invention further provides a computer-readable storage medium, on which a computer program is stored. When the computer program is executed by a processor, the steps of the above-mentioned data transmission method based on 3D on-chip network are implemented.
[0168] The functions of the functional modules of the computer-readable storage medium described in the embodiment of the present invention can be specifically implemented according to the method in the above method embodiment. The specific implementation process can refer to the relevant description of the above method embodiment, which will not be repeated here.
[0169] The above is a detailed introduction to a data transmission method, device, equipment and computer-readable storage medium based on a 3D on-chip network provided in an embodiment of the present application. The various embodiments in the specification are described in a progressive manner, and each embodiment focuses on the differences from other embodiments. The same and similar parts between the various embodiments can be referred to each other. For the device disclosed in the embodiment, since it corresponds to the method disclosed in the embodiment, the description is relatively simple, and the relevant parts can be referred to the method part description.
[0170] Professionals may further appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of the two. In order to clearly illustrate the interchangeability of hardware and software, the composition and steps of each example have been generally described in the above description according to function. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professionals and technicians may use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.
[0171] The above is a detailed introduction to a data transmission method, device, equipment and computer-readable storage medium based on a 3D on-chip network provided by the present application. Specific examples are used herein to illustrate the principles and implementation methods of the present invention. The description of the above embodiments is only used to help understand the method of the present invention and its core idea. It should be pointed out that for ordinary technicians in this technical field, without departing from the principles of the present invention, several improvements and modifications can be made to the present application, and these improvements and modifications also fall within the scope of protection of the claims of the present application.
Claims
1. A data transmission method based on a 3D network on chip, characterized in that: include: Obtaining vertical distances between a source node and a target node and a heat dissipation component respectively; wherein the heat dissipation component is parallel to an XY plane of the 3D on-chip network; When the vertical distance between the source node and the heat dissipation component is less than or equal to the vertical distance between the target node and the heat dissipation component, the data packet to be processed is transmitted from the source node to the target node according to the transmission rule of XY plane priority; according to the principle of XY plane priority transmission, the data packet to be processed is transmitted along the X-axis direction or the Y-axis direction; When the vertical distance between the source node and the heat dissipation component is greater than the vertical distance between the target node and the heat dissipation component, the source node is transmitted from the source node to the target node according to a Z-axis priority transmission rule; The transmitting of the to-be-processed data packet from the source node to the target node according to the XY plane priority transmission rule comprises: According to the coordinates of the source node and the coordinates of the target node, the moving direction of the data packet to be processed in the XY plane to which it belongs is selected; Determining the target moving direction of the data packet to be processed based on the fault condition and congestion degree corresponding to the moving direction; Moving the data packet to be processed toward the target node according to the target moving direction until the data packet to be processed is transmitted to the target node, and then ending the operation; Determining the target moving direction of the to-be-processed data packet based on the fault condition and congestion degree corresponding to the moving direction includes: In the case that there is no fault in the moving direction, taking the moving direction without fault and with the least congestion as the target moving direction of the data to be processed; In the case that there are faults in both movement directions, the Z-axis direction in which the Z coordinate of the source node points to the Z coordinate of the target node is used as the target movement direction of the data to be processed; The moving the to-be-processed data packet toward the target node according to the target moving direction comprises: Transmitting the data packet to be processed by a unit distance according to the target moving direction; Determine whether the coordinates currently corresponding to the data packet to be processed are the same as the X coordinates and the Y coordinates of the coordinates of the target node; In the case where the coordinates currently corresponding to the data packet to be processed are not the same as the X coordinates or Y coordinates of the coordinates of the target node, the coordinates currently corresponding to the data packet to be processed are used as the coordinates of the source node, and the step of selecting the moving direction of the data packet to be processed in the XY plane to which it belongs based on the coordinates of the source node and the coordinates of the target node is returned; When the coordinates currently corresponding to the data packet to be processed are the same as the X coordinates and the Y coordinates of the coordinates of the target node, the data packet to be processed is moved toward the target node along the Z axis direction based on the coordinates currently corresponding to the data packet to be processed and the coordinates of the target node; The transmitting the source node from the source node to the target node according to the Z-axis priority transmission rule includes: The Z-axis direction from the Z coordinate of the source node to the Z coordinate of the target node is used as the moving direction of the data to be processed; Determining a target moving direction of the data packet to be processed based on the fault condition corresponding to the moving direction; Moving the data packet to be processed toward the target node according to the target moving direction until the data packet to be processed is transmitted to the target node, and then ending the operation; The determining, based on the fault condition corresponding to the moving direction, the target moving direction of the data packet to be processed comprises: In the case that there is no fault in the moving direction, taking the moving direction as the target moving direction of the data packet to be processed; In the case where there is a fault in the moving direction, determining the target moving direction of the data packet to be processed based on the fault and congestion level corresponding to the moving direction of the data packet to be processed in the XY plane to which it belongs; The moving the to-be-processed data packet toward the target node according to the target moving direction comprises: Transmitting the data packet to be processed by a unit distance according to the target moving direction; Determine whether the Z coordinate currently corresponding to the data packet to be processed is the same as the Z coordinate of the target node; In the case where the Z coordinate currently corresponding to the data packet to be processed is different from the Z coordinate of the target node, the coordinate currently corresponding to the data packet to be processed is used as the coordinate of the source node, and the Z-axis direction from the Z coordinate of the source node to the Z coordinate of the target node is returned as the moving direction of the data to be processed; When the Z coordinate currently corresponding to the data packet to be processed is the same as the Z coordinate of the target node, based on the congestion level corresponding to the moving path of the data packet to be processed on the XY plane to which it belongs, the data packet to be processed is moved toward the target node along the moving path with the least congestion level; the path corresponding to each unit distance moved by the data packet to be processed is taken as a path, and based on the congestion level corresponding to each path set between the source node and the target node, the data packet to be processed is moved along the path included in the path set with the least congestion level.
2. A data transmission device based on a 3D network on chip, characterized in that: comprising an acquisition unit, a first transmission unit and a second transmission unit; The acquisition unit is used to acquire the vertical distances between the source node and the target node and the heat dissipation component respectively; wherein the heat dissipation component is parallel to the XY plane of the 3D on-chip network; The first transmission unit is used to transmit the data packet to be processed from the source node to the target node according to the transmission rule of XY plane priority when the vertical distance between the source node and the heat dissipation component is less than or equal to the vertical distance between the target node and the heat dissipation component; according to the principle of XY plane priority transmission, the data packet to be processed is transmitted along the X-axis direction or the Y-axis direction; The second transmission unit is used to transmit the source node from the source node to the target node according to a Z-axis priority transmission rule when the vertical distance between the source node and the heat dissipation component is greater than the vertical distance between the target node and the heat dissipation component; The first transmission unit includes a selection subunit, a first determination subunit and a first movement subunit; the selection subunit is used to select the movement direction of the data packet to be processed in the XY plane to which it belongs according to the coordinates of the source node and the coordinates of the target node; the first determination subunit is used to determine the target movement direction of the data packet to be processed based on the fault condition and congestion degree corresponding to the movement direction; the first movement subunit is used to move the data packet to be processed toward the target node according to the target movement direction until the data packet to be processed is transmitted to the target node, and then the operation is terminated; The first determination subunit is used to, when there is no fault in the moving direction, use the moving direction without fault and with the least congestion as the target moving direction of the data to be processed; when there is a fault in all the moving directions, use the Z-axis direction from the Z coordinate of the source node to the Z coordinate of the target node as the target moving direction of the data to be processed; The first mobile subunit is used to transmit the data packet to be processed a unit distance in the target moving direction; determine whether the coordinates currently corresponding to the data packet to be processed are the same as the X coordinates and Y coordinates of the coordinates of the target node; if the coordinates currently corresponding to the data packet to be processed are not the same as the X coordinates or Y coordinates of the coordinates of the target node, use the coordinates currently corresponding to the data packet to be processed as the coordinates of the source node, and return the step of selecting the moving direction of the data packet to be processed in the XY plane to which it belongs based on the coordinates of the source node and the coordinates of the target node; if the coordinates currently corresponding to the data packet to be processed are the same as the X coordinates and Y coordinates of the coordinates of the target node, move the data packet to be processed along the Z-axis direction toward the target node based on the coordinates currently corresponding to the data packet to be processed and the coordinates of the target node; The second transmission unit includes a serving subunit, a second determining subunit, and a second moving subunit; The subunit is used to point the Z-axis direction of the Z coordinate of the source node to the Z coordinate of the target node as the moving direction of the data to be processed; The second determining subunit is used to determine the target moving direction of the data packet to be processed based on the fault condition corresponding to the moving direction; The second moving subunit is used to move the data packet to be processed toward the target node according to the target moving direction until the data packet to be processed is transmitted to the target node, and then the operation is terminated; The second determining subunit is used for taking the moving direction as the target moving direction of the data packet to be processed when there is no fault in the moving direction; In the case where there is a fault in the moving direction, determining the target moving direction of the data packet to be processed based on the fault and congestion level corresponding to the moving direction of the data packet to be processed in the XY plane to which it belongs; The second moving subunit is used to transmit the data packet to be processed by a unit distance according to the target moving direction; Determine whether the Z coordinate currently corresponding to the data packet to be processed is the same as the Z coordinate of the target node; In the case where the Z coordinate currently corresponding to the data packet to be processed is different from the Z coordinate of the target node, the coordinate currently corresponding to the data packet to be processed is used as the coordinate of the source node, and the Z-axis direction from the Z coordinate of the source node to the Z coordinate of the target node is returned as the moving direction of the data to be processed; When the Z coordinate currently corresponding to the data packet to be processed is the same as the Z coordinate of the target node, based on the congestion level corresponding to the moving path of the data packet to be processed on the XY plane to which it belongs, the data packet to be processed is moved toward the target node along the moving path with the least congestion level; the path corresponding to each unit distance moved by the data packet to be processed is taken as a path, and based on the congestion level corresponding to each path set between the source node and the target node, the data packet to be processed is moved along the path included in the path set with the least congestion level.
3. A data transmission device based on a 3D network on chip, characterized in that: include: Memory for storing computer programs; A processor is used to execute the computer program to implement the steps of the data transmission method based on 3D on-chip network as claimed in claim 1.
4. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the steps of the data transmission method based on a 3D network on chip as claimed in claim 1 are implemented.
Citation Information
Patent Citations
Adaptive vertical routing method based on network on chip and routing unit
CN106953800A
