Data transmission method and system

By establishing routing paths in an on-chip network and building temporary circuits, the problem of inability to meet the bandwidth requirements of multi-channel data parallel real-time transmission in the prior art is solved, and efficient data transmission and resource management are achieved.

CN116192733BActive Publication Date: 2025-03-21JIXIN COMM TECH (NANJING) CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202310081512.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-02-06
Publication Date
2025-03-21
Estimated Expiration
2043-02-06

AI Technical Summary

Technical Problem

In the prior art, the on-chip interconnected bus based on packet switching or circuit switching cannot meet the bandwidth requirements of parallel real-time transmission of multiple data, and the data transmission delay is high.

Method used

By establishing a routing path from the routing source node to the routing target node in the on-chip network, and building the routing path into a temporary circuit, data transmission is performed based on the temporary circuit.

Benefits of technology

It realizes the large bandwidth and low latency requirements for parallel real-time transmission of multiple data, improves data transmission efficiency, and unlocks temporary circuits after data transmission is completed, frees up resources, and avoids congestion caused by resource occupation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116192733B_ABST
    Figure CN116192733B_ABST
Patent Text Reader

Abstract

The present invention provides a data transmission method and system, which relates to the field of communication technology. The method includes: locking a temporary circuit when it is determined that a locking signal sent by a data receiving end is received; setting an enable control signal of the temporary circuit to a first signal, and sending transmission data to the data receiving end along the temporary circuit; stopping sending transmission data to the data receiving end so that the data receiving end can verify the transmission data. The system executes the method. The present invention establishes a routing path from a routing source node to a routing target node based on an on-chip network, and builds the routing path as a temporary circuit, and performs data transmission based on the temporary circuit. Its low latency and determined resources provide large bandwidth and low latency requirements for parallel real-time transmission of multiple data, thereby improving data transmission efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of communication technology, and in particular to a data transmission method and system. Background Art

[0002] Existing interconnect buses are divided into packet-switched interconnect buses (packet switching transmits data packets through dynamic routing and reorders them at the receiving end) and circuit-switched interconnect buses (controlled circuits establish circuit-based data paths and send and receive any data on the paths).

[0003] Due to the characteristics of the packet-switched and circuit-switched on-chip interconnect buses, the data transmission delay is high when the on-chip interconnect buses based on packet switching or circuit switching are used for data transmission, and the bandwidth requirements for parallel real-time transmission of multiple data channels cannot be met. Summary of the invention

[0004] The data transmission method and system provided by the present invention are used to solve the problems in the prior art that the on-chip interconnection bus based on packet switching or circuit switching cannot meet the bandwidth requirements of multi-channel data parallel real-time transmission and the data transmission delay is high. It can provide large bandwidth and low delay requirements for multi-channel data parallel real-time transmission, thereby improving data transmission efficiency.

[0005] The present invention provides a data transmission method, comprising:

[0006] In the case of determining that a locking signal sent by the data receiving end is received, locking the temporary circuit, the locking signal is used to indicate that the temporary circuit is allowed to be locked, the temporary circuit is built based on a routing path, the routing path is a path for routing a routing packet from a routing source node to a routing target node, the routing source node and the routing target node are both determined based on a local module connected to each network node in an on-chip network connected by at least a two-dimensional grid, and the routing packet is generated by the routing source node;

[0007] Setting the enable control signal of the temporary circuit to a first signal, and sending the transmission data to the data receiving end along the temporary circuit, wherein the first signal is used to indicate that the transmission data is allowed to be sent to the data receiving end, and the data receiving end is determined according to the local module corresponding to the routing target node;

[0008] Stop sending the transmission data to the data receiving end so that the data receiving end can verify the transmission data.

[0009] According to a data transmission method provided by the present invention, before stopping sending the transmission data to the data receiving end, the method further includes:

[0010] The enable control signal is set to a second signal, where the second signal is used to indicate that the transmission is finished and the transmission data is no longer allowed to be sent to the data receiving end.

[0011] According to a data transmission method provided by the present invention, the method further includes:

[0012] In a case where the transmission data passes a timeout check and a cyclic redundancy CRC check, unlocking the temporary circuit according to a third signal sent by the data receiving end, wherein the third signal is a signal for unlocking the temporary circuit;

[0013] If the transmission data fails to pass the timeout check or the CRC check, a failure report is generated, and the temporary circuit is unlocked according to the received third signal;

[0014] Wherein, the check includes the timeout check and the CRC check.

[0015] The present invention also provides a data transmission method, comprising:

[0016] Sending a locking signal to a data sending end, so that the data sending end can lock a temporary circuit according to the locking signal, wherein the locking signal is used to indicate that the temporary circuit is allowed to be locked, wherein the temporary circuit is built based on a routing path, wherein the routing path is a path for routing a routing packet from a routing source node to a routing target node, wherein the routing source node and the routing target node are both determined based on a local module connected to each network node in an on-chip network connected by at least a two-dimensional grid, and wherein the routing packet is generated by the routing source node;

[0017] receiving transmission data sent by a data sending end along the temporary circuit when the enable control signal of the temporary circuit is a first signal, the first signal being used to indicate that the transmission data is allowed to be sent to a data receiving end, the data sending end being determined according to a local module corresponding to the routing source node;

[0018] When it is determined that the data sending end sets the enable control signal to a second signal, stop receiving the transmission data sent by the data sending end, and verify the transmission data. The second signal is used to indicate the end of transmission, and the transmission data is no longer allowed to be sent to the data receiving end.

[0019] According to a data transmission method provided by the present invention, the verifying the transmission data includes:

[0020] Performing cyclic redundancy CRC check and timeout check on the transmission data;

[0021] The performing a timeout check on the transmission data includes:

[0022] A timeout check is performed on the transmission data according to a first time when the data sending end sends the transmission data, a second time when the transmission data is stopped, and a preset time threshold.

[0023] According to a data transmission method provided by the present invention, the method further includes:

[0024] A third signal is sent to the data sending end, where the third signal is a signal for unlocking the temporary circuit.

[0025] The present invention also provides a data transmission system, comprising: a circuit locking module, a first sending module and a transmission control module;

[0026] The circuit locking module is used to lock the temporary circuit when it is determined that a locking signal sent by the data receiving end is received, the locking signal is used to indicate that the temporary circuit is allowed to be locked, the temporary circuit is built based on a routing path, the routing path is a path for routing a routing packet from a routing source node to a routing target node, the routing source node and the routing target node are both determined based on a local module connected to each network node in an on-chip network connected by at least a two-dimensional grid, and the routing packet is generated by the routing source node;

[0027] The first sending module is used to set the enable control signal of the temporary circuit to a first signal, and send the transmission data to the data receiving end along the temporary circuit, the first signal is used to indicate that the transmission data is allowed to be sent to the data receiving end, and the data receiving end is determined according to the local module corresponding to the routing target node;

[0028] The transmission control module is used to stop sending the transmission data to the data receiving end so that the data receiving end can verify the transmission data.

[0029] The present invention also provides a data transmission system, comprising: a second sending module, a first receiving module and a checking module;

[0030] The second sending module is used to send a locking signal to the data sending end, so that the data sending end can lock the temporary circuit according to the locking signal, the locking signal is used to indicate that the temporary circuit is allowed to be locked, the temporary circuit is built based on a routing path, the routing path is a path for routing a routing packet from a routing source node to a routing target node, the routing source node and the routing target node are both determined according to a local module connected to each network node in an on-chip network connected by at least a two-dimensional grid, and the routing packet is generated by the routing source node;

[0031] The first receiving module is used to receive the transmission data sent by the data sending end along the temporary circuit when the enable control signal of the temporary circuit is a first signal, the first signal is used to indicate that the transmission data is allowed to be sent to the data receiving end, and the data sending end is determined according to the local module corresponding to the routing source node;

[0032] The verification module is used to stop receiving the transmission data sent by the data sending end and verify the transmission data when it is determined that the data sending end sets the enable control signal to a second signal, wherein the second signal is used to indicate the end of transmission and the transmission data is no longer allowed to be sent to the data receiving end.

[0033] The present invention also provides an electronic device, comprising a processor and a memory storing a computer program, wherein the processor implements any of the above-mentioned data transmission methods when executing the program.

[0034] The present invention also provides a non-transitory computer-readable storage medium on which a computer program is stored. When the computer program is executed by a processor, any of the data transmission methods described above is implemented.

[0035] The present invention also provides a computer program product, comprising a computer program, wherein when the computer program is executed by a processor, the computer program implements any of the above-mentioned data transmission methods.

[0036] The data transmission method and system provided by the present invention establish a routing path from a routing source node to a routing target node based on an on-chip network, and build the routing path as a temporary circuit. Data transmission is performed based on the temporary circuit. Its low latency and determined resources provide large bandwidth and low latency requirements for parallel real-time transmission of multiple data channels, thereby improving data transmission efficiency. BRIEF DESCRIPTION OF THE DRAWINGS

[0037] In order to more clearly illustrate the technical solutions in the present invention or the prior art, the following briefly introduces the drawings required for use in the embodiments or the description of the prior art. Obviously, the drawings described below are some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.

[0038] Figure 1 It is one of the flowcharts of the data transmission method provided by the present invention;

[0039] Figure 2 This is the second flow chart of the data transmission method provided by the present invention;

[0040] Figure 3 This is the third flow chart of the data transmission method provided by the present invention;

[0041] Figure 4 This is a fourth flow chart of the data transmission method provided by the present invention;

[0042] Figure 5 It is a schematic diagram of the structure of a two-dimensional grid-connected on-chip network provided by the present invention;

[0043] Figure 6 It is a partially enlarged schematic diagram of a two-dimensional grid-connected on-chip network provided by the present invention;

[0044] Figure 7 is a schematic structural diagram of a connecting jacket provided by the present invention;

[0045] Figure 8 It is one of the structural schematic diagrams of the data transmission system provided by the present invention;

[0046] Fig. 9 This is the second structural diagram of the data transmission system provided by the present invention;

[0047] Fig.10 It is a schematic diagram of the physical structure of the electronic device provided by the present invention. DETAILED DESCRIPTION

[0048] In order to make the purpose, technical solution and advantages of the present invention clearer, the technical solution of the present invention will be clearly and completely described below in conjunction with the drawings of the present invention. Obviously, the described embodiments are part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.

[0049] Figure 1 It is one of the flowcharts of the data transmission method provided by the present invention, such as Figure 1 As shown, the method includes:

[0050] Step 110, in the case of determining that a locking signal sent by the data receiving end is received, locking the temporary circuit, the locking signal is used to indicate that the temporary circuit is allowed to be locked, the temporary circuit is built based on a routing path, the routing path is a path for routing a routing packet from a routing source node to a routing target node, the routing source node and the routing target node are both determined based on a local module connected to each network node in an on-chip network connected by at least a two-dimensional grid, and the routing packet is generated by the routing source node;

[0051] Step 120, setting the enable control signal of the temporary circuit to a first signal, and sending the transmission data to the data receiving end along the temporary circuit, wherein the first signal is used to indicate that the transmission data is allowed to be sent to the data receiving end, and the data receiving end is determined according to the local module corresponding to the routing target node;

[0052] Step 130: stop sending the transmission data to the data receiving end so that the data receiving end can verify the transmission data.

[0053] It should be noted that the execution subject of the above method may be a data sending end.

[0054] Optionally, the locking signal may specifically be a signal allowing locking of the temporary circuit. When the data transmitting end determines that the locking signal sent by the data receiving end is received, the temporary circuit for data transmission between the data transmitting end and the data receiving end is locked.

[0055] Optionally, the temporary circuit may be specifically obtained by temporarily locking the routing path into a circuit, and the routing path may be specifically the path through which the routing packet is routed from the routing source node to the routing target node. Each network node in the on-chip network connected by the at least two-dimensional grid has an address code, and the routing source node may be specifically a network node that generates a data transmission demand in each network node in the on-chip network connected by the at least two-dimensional grid, more specifically a network node corresponding to the source coding address, and the data transmission demand may specifically include a target coding address for the transmission of the data, transmission control such as receiving or sending, and data properties of the transmission data. The routing target node may be specifically a network node in each network node in the on-chip network connected by the at least two-dimensional grid that is consistent with the target coding address.

[0056] Optionally, the enable control signal may be specifically a bit signal, which may be specifically used to control whether the temporary circuit is locked. Specifically, when the temporary circuit is locked and the data transmitting end sets the enable control signal to the first signal, the data transmitting end may send the transmission data to the data receiving end along the temporary circuit. The first signal may be specifically a high-level signal, for example, one or more digits "1" may represent the high-level signal. The transmission data may specifically include the enable control signal, and the enable control signal is used to mark the validity of the transmission data.

[0057] Optionally, the data transmitting end may be a local module corresponding to the routing source node, and the data receiving end may specifically be a local module corresponding to the routing target node. That is, the data transmitting end starts to send transmission data to the data receiving end along the temporary circuit under the control of the enable control signal.

[0058] Optionally, the data sending end stops sending transmission data to the data receiving end, and the data receiving end verifies the transmission data sent by the data sending end to determine whether the transmission data passes the verification.

[0059] The data transmission method provided by the present invention establishes a routing path from a routing source node to a routing target node based on an on-chip network, and builds the routing path as a temporary circuit. Data transmission is performed based on the temporary circuit. Its low latency and determined resources provide large bandwidth and low latency requirements for parallel real-time transmission of multiple data paths, thereby improving data transmission efficiency.

[0060] Furthermore, in one embodiment, before stopping sending the transmission data to the data receiving end, the method may further specifically include:

[0061] The enable control signal is set to a second signal, where the second signal is used to indicate that the transmission is finished and the transmission data is no longer allowed to be sent to the data receiving end.

[0062] Optionally, when the data transmitting end finishes sending the transmission data, the data transmitting end sets the enable control signal of the temporary circuit to the second signal to stop sending the transmission data to the data receiving end. During the entire data transmission process, the valid transmission data received by the data receiving end is the data between the first signal and the second signal.

[0063] For example, when the enable control signal is a first signal (e.g., a high-level signal), the data sending end starts to send transmission data to the data receiving end. When the data sending end finishes sending the transmission data, the enable control signal is set to a second signal, which can be a low-level signal, to stop sending transmission data to the data receiving end.

[0064] Further, in one embodiment, when the transmission data passes the timeout check and the cyclic redundancy CRC check, the temporary circuit is unlocked according to a third signal sent by the data receiving end, and the third signal is a signal for unlocking the temporary circuit;

[0065] If the transmission data fails to pass the timeout check or the CRC check, a failure report is generated, and the temporary circuit is unlocked according to the received third signal;

[0066] Wherein, the check includes the timeout check and the CRC check.

[0067] Optionally, when the data transmitting end stops sending transmission data to the data receiving end, the data receiving end verifies the received transmission data and determines whether the transmission data passes the verification. If the data receiving end determines that the transmission data passes the verification, it sends a third signal to the data transmitting end.

[0068] After the data transmitting end receives the third signal sent by the data receiving end, the temporary circuit is unlocked to release resources. The third signal may be a signal for unlocking the temporary circuit, and the signal may be composed of one or more bits.

[0069] If the data receiving end determines that the transmitted data passes the check (including the timeout check and the CRC check), the temporary circuit is unlocked to release the resources.

[0070] If the data receiving end determines that the transmitted data fails the timeout check or the CRC check, since the data receiving end itself is the routing source node, the data receiving end confirms that the data transmission has failed, generates a failure report, and unlocks the temporary circuit.

[0071] The data transmission method provided by the present invention establishes a routing path from a routing source node to a routing target node based on an on-chip network, and builds the routing path as a temporary circuit. Data transmission is performed based on the temporary circuit. Its low latency and determined resources provide large bandwidth and low latency requirements for parallel real-time transmission of multiple data paths, thereby improving data transmission efficiency. At the same time, the temporary circuit can be unlocked after the data transmission is completed to release resources and avoid congestion caused by resource occupation.

[0072] Figure 2 FIG. 2 is a flow chart of the data transmission method provided by the present invention. Figure 2 As shown, including:

[0073] Step 210, sending a locking signal to the data sending end, so that the data sending end locks the temporary circuit according to the locking signal, the locking signal is used to indicate that the temporary circuit is allowed to be locked, the temporary circuit is built based on a routing path, the routing path is a path for routing a routing packet from a routing source node to a routing target node, the routing source node and the routing target node are both determined based on a local module connected to each network node in an on-chip network connected by at least a two-dimensional grid, and the routing packet is generated by the routing source node;

[0074] Step 220, receiving transmission data sent by a data sending end along the temporary circuit when the enable control signal of the temporary circuit is a first signal, wherein the first signal is used to indicate that the transmission data is allowed to be sent to a data receiving end, and the data sending end is determined according to a local module corresponding to the routing source node;

[0075] Step 230, when it is determined that the data sending end sets the enable control signal to the second signal, stop receiving the transmission data sent by the data sending end, and verify the transmission data. The second signal is used to indicate the end of transmission, and the transmission data is no longer allowed to be sent to the data receiving end.

[0076] It should be noted that the execution subject of the above method may be a data receiving end.

[0077] Optionally, the data receiving end sends a locking signal to the data sending end, and after receiving the locking signal, the data sending end locks a temporary circuit for data transmission between the data sending end and the data receiving end.

[0078] The temporary circuit may be specifically obtained by temporarily locking the routing path into a circuit, and the routing path may be specifically the path through which the routing packet is routed from the routing source node to the routing target node. Each network node in the on-chip network connected by the at least two-dimensional grid has an address code, and the routing source node may be specifically a network node that generates a data transmission demand in each network node in the on-chip network connected by the at least two-dimensional grid, more specifically a network node corresponding to the source coding address, and the data transmission demand may specifically include a target coding address for the transmission of the data, transmission control such as receiving or sending, and data properties of the transmission data. The routing target node may be specifically a network node in each network node in the on-chip network connected to the at least two-dimensional grid that has the same target coding address.

[0079] Optionally, the enable control signal can be specifically a bit signal, which can be specifically used to control whether the temporary circuit is locked or not. Specifically, when the temporary circuit is locked and the enable control signal is a first signal, the data receiving end can receive the transmission data sent by the data sending end along the temporary circuit. When the enable control signal is a second signal, the temporary circuit is unlocked, the resources are released, and the data receiving end cannot receive the transmission data sent by the data sending end. The first signal can be specifically a high-level signal, for example, one or more numbers "1" represent the high-level signal. The second signal can be specifically a low-level signal, for example, one or more numbers "0" represent the low-level signal. The transmission data can specifically include an enable control signal, and the enable control signal is used to mark the validity of the transmission data.

[0080] Optionally, the data receiving end may specifically be a local module corresponding to the routing target node, and the data sending end may be a local module corresponding to the routing source node, that is, the data receiving end starts to receive the transmission data sent by the data sending end along the temporary circuit under the control of the enable control signal.

[0081] Optionally, when the data receiving end determines that the data sending end sets the enable control signal of the temporary circuit to the second signal, the data receiving end determines that the data sending end stops sending the transmission data. At this time, the data receiving end stops receiving the transmission data sent by the data sending end, and verifies the received transmission data sent by the data sending end to determine whether the transmission data passes the verification.

[0082] The data transmission method provided by the present invention establishes a routing path from a routing source node to a routing target node based on an on-chip network, and builds the routing path as a temporary circuit. Data transmission is performed based on the temporary circuit. Its low latency and determined resources provide large bandwidth and low latency requirements for parallel real-time transmission of multiple data paths, thereby improving data transmission efficiency.

[0083] Further, in one embodiment, the verifying the transmission data may specifically include:

[0084] Performing cyclic redundancy CRC check and timeout check on the transmission data;

[0085] The performing a timeout check on the transmission data includes:

[0086] A timeout check is performed on the transmission data according to a first time when the data sending end sends the transmission data, a second time when the transmission data is stopped, and a preset time threshold.

[0087] Optionally, the data receiving end verifies the received transmission data and determines whether the transmission data passes the verification.

[0088] The check may specifically include the data receiving end performing a CRC check and a timeout check on the transmitted data.

[0089] The purpose of the CRC check is that when the received transmission data needs to be checked for errors, the data sending end completes the CRC encoding according to the preset protocol to obtain the transmission data, and the data receiving end performs CRC decoding and error checking on the received transmission data according to the preset protocol. If there is an error, the data receiving end reports that the CRC check failed (failed).

[0090] The timeout check can be specifically performed on the transmission data through the first time when the data sending end sends the transmission data, the second time when the transmission data is stopped, and the preset time threshold. The preset time threshold can be specifically based on the timeout counter set when the routing source node starts the routing, starting the countdown, and recording the data transmission time. The data transmission time can specifically include the first time when the data sending end sends the transmission data and the second time when the data receiving end stops receiving the transmission data. By comparing the data transmission time with the preset time threshold, if the data transmission time is greater than the preset time threshold, it is determined that the transmission data has not passed the timeout check, otherwise it has passed the timeout check.

[0091] Transmission anomaly: There are two situations. One is that the transmission cannot be completed resulting in timeout, and the other is that CRC indicates a transmission error. At this time, the error is reported to the routing source node, the routing source node deletes this temporary circuit, and informs the transmission initiation module (that is, the local module corresponding to the routing target node).

[0092] Furthermore, in one embodiment, the method may further specifically include:

[0093] A third signal is sent to the data sending end, where the third signal is a signal for unlocking the temporary circuit.

[0094] Optionally, if the data receiving end determines that the transmitted data passes the check (including timeout check and CRC check), a third signal is sent to the data sending end, so that the data sending end can unlock the temporary circuit and release resources after receiving the third signal sent by the data receiving end. The third signal can be specifically a signal to unlock the temporary circuit, and the signal can be specifically composed of one or more bits.

[0095] Optionally, if the data receiving end determines that the transmitted data passes the check (including the timeout check or the CRC check), the data receiving end will still send a third signal to the data sending end, and the data receiving end will unlock the temporary circuit and release resources according to the third signal. Since the data receiving end itself is the routing source node, the data receiving end confirms that the data transmission has failed and generates a failure report.

[0096] In the present invention, the on-chip network connected with at least two-dimensional grid can be specifically a network on chip of a heterogeneous multi-core real-time system on chip SoC. The on-chip network can support multiple parallel transmissions at the same time, and the on-chip network can be specifically a network on chip architecture connected with at least two-dimensional grid topology.

[0097] The local module corresponding to the routing source node can be specifically used to transmit the routing packet to the routing target node. The local module can be specifically a functional module, a storage module, or an input / output interface. The routing packet can be specifically generated by the routing source node, and can specifically include a routing source node identifier, a routing target node identifier, and a data transmission operation description.

[0098] The local module can be connected to other network nodes in the on-chip network specifically through the connection wrapper of the node.

[0099] It should be noted that the network side of the connection jacket is designed according to the circuit and protocol of the on-chip network, and the module side of the connection jacket is based on reconfigurable circuit and protocol configuration, and the functions of the on-chip network and the module side circuits are matched through user configuration.

[0100] Specifically, by taking local modules connected to various network nodes of the on-chip network as nodes, all nodes corresponding to network devices can be specifically divided into routing source nodes, routing target nodes and intermediate nodes.

[0101] Each node corresponding to the local module has a unique identifier, which can be determined by the address of the network node in the on-chip network to which it is specifically connected. The routing source node identifier can be specifically the address of the network node connected to the routing source node, and the routing target node identifier can be specifically the address of the network node connected to the routing target node.

[0102] According to the address corresponding to the routing source node identifier and the address corresponding to the routing target node identifier, the nodes passed by the routing packet during the routing process from the routing source node to the routing target node are determined. These nodes are the routing paths of the routing packet from the routing source node to the routing target node. It should be noted that after each routing decision, the node (the node that the routing packet arrives at and passes through) and the ingress and egress path ports are recorded in the routing packet. When the routing packet is transmitted to the next node, the path used is locked and becomes part of the temporary circuit to be established.

[0103] According to the routing path composed of all nodes that the routing packet passes through when it is transmitted from the routing source node to the routing target node, a temporary bus circuit along the routing path, namely a temporary circuit, is established.

[0104] Determine a first device generating a transmission requirement for a routing packet from a local module connected to each network node, and use the first device as a routing source node, wherein the transmission requirement includes at least a routing target node identifier;

[0105] The second device corresponding to the routing target node identifier is used as the routing target node.

[0106] In the present invention, the routing source node may be specifically the first device in the local module connected to each network node of the on-chip network that generates a routing packet transmission demand. The transmission demand may specifically include routing target node identification, transmission control such as sending or receiving, and data properties.

[0107] A second device with the routing target node identifier is found from target devices connected to each network node of the on-chip network, and the second device is used as the routing target node.

[0108] It should be noted that any local module connected to any network node in the on-chip network can be used as a routing starting point (ie, a routing source node), and the connection jacket of the local module corresponding to the routing starting point is used to start and establish dynamic routing.

[0109] 1. The purpose of routing is to establish and temporarily lock a data transmission circuit connecting the routing source node to the routing target node;

[0110] 2. The starting point of the route can be the data sending end or the data receiving end;

[0111] 3. If data transmission fails, the data receiving end reports the reception error and sends an exception to the routing source node;

[0112] 4. If the routing starting point is the data sending end, the routing starting point starts sending data immediately after receiving the locking confirmation from the routing end point;

[0113] 5. If the routing endpoint is the data sending end, the routing endpoint starts sending data immediately after sending the lock confirmation;

[0114] 6. Define the timeout detection parameters at the starting point of the route. Set the timeout counter when starting the route and start the countdown. The time includes the route time and the data transmission time. When the countdown ends, clear and release the route immediately. The route time can be specifically the total time for the route packet to be transmitted from the route source node to the route target node.

[0115] It should be noted that any local module connected to any network node in the on-chip network can serve as a routing intermediate node (ie, an intermediate node).

[0116] 1. The local module of the routing intermediate node does not participate in data transmission, and its related routing and data transmission are only completed by the connection jacket of the node;

[0117] 2. The connection jacket of each routing node (including the routing start point and routing end point) uses the connection to send the node usage status to the adjacent nodes when idle, ensuring that the adjacent nodes save the usage status of the nodes connected to each other, so as to speed up routing and reduce deadlock;

[0118] 3. After receiving the routing packet, each routing node adds the address of the routing node and the port used for routing to the routing information table in the routing packet;

[0119] 4. Send the routing packet to an adjacent node according to the address of the routing endpoint and the status of the adjacent node, and temporarily lock the route;

[0120] 5. If the other three nodes of the adjacent node (except the entrance) are occupied, send a rejection to the routing starting point.

[0121] Any network node and the connected local module in the on-chip network can be used as a routing target node (i.e., routing end node).

[0122] 1. The routing endpoint node receives the routing packet, confirms that this node is the routing endpoint, and immediately starts the endpoint protocol;

[0123] 2. If the requirements of the route starting point are acceptable, immediately return to the original route to lock the route path;

[0124] 3. If the requirements of the route starting point cannot be accepted, for example, the route end point is transmitting data, send a rejection immediately, return along the original route and release the route path.

[0125] Determining a routing path for transmitting a routing packet from a routing source node to a routing target node according to a routing source node identifier and a routing target node identifier may specifically include:

[0126] Determine the target routing direction between the routing source node and the routing target node according to the source coding address in the routing source node identifier, the target coding address in the routing target node identifier and the preset coding rule, wherein the source coding address and the target coding address are both determined according to the preset coding rule;

[0127] Determine the routing path based on the target routing direction.

[0128] In the present invention, the routing source coded address may specifically be the address of the routing source node in the routing source node identifier, which may specifically be obtained after being encoded according to a preset encoding rule.

[0129] The routing target coded address may specifically be the address of the routing target node in the routing target node identifier, which may specifically be obtained after being encoded according to a preset encoding rule.

[0130] The preset coding rule can be specifically encoded according to the orientation characteristics between the nodes to obtain the addresses of each node (including the routing source node, the routing target node and the intermediate node). For example, the addresses of the routing source node, the routing target node and the intermediate node include two segments of coding, the first segment of the coding address is encoded according to the east-west orientation between the nodes, and the second segment of the coding address is encoded according to the north-south orientation between the nodes, and the coding guides the routing, and the two segments of coding follow the rules of small west and large east and small north and large south.

[0131] The location information between the routing source node and the routing target node can be known according to the source coding address and the target coding address, and the target routing direction between the routing source node and the routing target node can be determined according to the location information.

[0132] During routing, based on the comparison between the target coded address (i.e., the address of the routing target node) and the address of the current node (the node that receives the routing packet), if the first segment coded address in the target coded address is greater than the first segment coded address in the address of the current node, the target routing direction of the current node and the routing target node is east, and the route is to the east of the current node, otherwise it is routed to the west of the current node; if the second segment coded address in the target coded address is greater than the second segment coded address of the address of the current node, the target routing direction of the current node and the routing target node is south, and the route is to the south of the current node, otherwise it is routed to the north of the current node.

[0133] Along the target routing direction, the routing packet is transmitted from the routing source node to the routing target node, and the routing path between the routing source node and the routing target node is determined.

[0134] Determine the routing path based on the target routing direction, which may specifically include:

[0135] Transmitting a routing packet from the source coding address to the target coding address along the target routing direction, determining multiple intermediate nodes that the routing packet passes through, the intermediate nodes being nodes other than the routing source node and the routing target node, and the routing packet also including intermediate node identifiers of the multiple intermediate nodes that the routing packet passes through;

[0136] Determine a routing path according to a first routing path between a routing source node and a first intermediate node that a routing packet passes through, a second routing path between multiple intermediate nodes that the routing packet passes through continuously, and a last routing path between a last intermediate node that the routing packet passes through and a routing target node;

[0137] The first step routing path is determined according to the first step routing direction, and the first step routing direction is determined according to the source coding address, the coding address in the intermediate node identifier of the first intermediate node, and the preset coding rule;

[0138] The second-step routing path is determined according to the second-step routing direction, and the second-step routing direction is determined according to the coded addresses in the intermediate node identifiers of the plurality of intermediate nodes that the routing packet passes through successively and the preset coding rule;

[0139] The last step routing path is determined according to the last step routing direction, and the last step routing direction is determined according to the coding address in the intermediate node identifier of the last intermediate node, the target coding address and the preset coding rule.

[0140] In the present invention, a routing packet is transmitted from a source coding address corresponding to a routing source node to a routing target node corresponding to a target coding address along a target routing direction, and each intermediate node that the routing packet passes through during the routing process is found.

[0141] It should be noted that each time a routing packet passes through a node, the routing packet adds path parameters, including: the current node address, entrance and exit; these three parameters are added to the routing packet, and as the routing progresses, the routing packet gradually becomes longer. After the routing target node receives the routing packet, the target device of the routing target node unpacks the packet and records the contents of the routing packet, including data transmission information and routing information, in the connection jacket of the routing target node.

[0142] In the present invention, during the routing process, the routing path between the routing source node and the intermediate node passed by the routing packet in the first step (i.e., the first step routing path), the routing path between multiple intermediate nodes passed by the routing packet continuously (i.e., the second step routing path, including multiple steps), and the routing path between the last intermediate node and the routing target node (i.e., the last step routing path) of the routing packet are spliced ​​to obtain the routing path from the routing source node to the routing target node.

[0143] In the present invention, the first step routing path can be specifically determined according to the first step routing direction, which is determined according to the source coding address and the coding address of the first intermediate node (the coding address of the intermediate node is obtained according to a preset coding rule).

[0144] The second-step routing path may be specifically determined according to the second-step routing direction, where the second-step routing direction is determined by the coded addresses of a plurality of intermediate nodes passed continuously.

[0145] The last step routing path may be specifically determined according to the last step routing direction, and the last step routing direction is determined according to the target coding address and the coding address of the last intermediate node.

[0146] When it is determined that the routing rejection conditions are met, the routing packet is rejected from the routing source node to the routing target node. The routing rejection conditions include that the local module of the routing target node is in a data transmission state, or all exits of any intermediate node through which the routing packet is transmitted from the routing source node to the routing target node are in a busy state.

[0147] In the routing process, if it is determined that two of the routing rejection conditions are met, the routing packet can be refused to be transmitted from the routing source node to the routing target node. The first case: the local module of the routing target node is in the data transmission state, which can be determined specifically based on whether the target device of the routing target node is transmitting data; the second case: super congestion, that is, any reachable intermediate node between the routing source node and the routing target node is in a busy state. For example, when routing to any intermediate node, the remaining exits of the intermediate node except the entrance are occupied (there is input but no exit).

[0148] After determining the routing path for transmitting the routing packet from the routing source node to the routing target node according to the routing source node identifier and the routing target node identifier, the method may further specifically include:

[0149] Determine whether the routing target node receives the routing packet transmitted by the routing source node within a preset time;

[0150] If it is determined that the routing target node does not receive the routing packet within a preset time, the routing is determined to have failed, and the routing path is deleted through the routing source node.

[0151] If it is determined that the data transmission is not completed within the preset time and is not unlocked, the data transmission is determined to have failed, and the routing source node is notified through the data receiving node to delete the routing path.

[0152] The preset time may be specifically set according to a timeout counter set by the routing source node.

[0153] Before sending out a routing packet, the routing source node considers the routing time overhead and data transmission time overhead, sets a timeout counter, and starts a countdown. When the countdown ends, a module report is sent to the routing source node and each node through which the route passes. If the countdown ends and the routing target node has not received the routing packet, a timeout error occurs in this routing, the routing fails, and the locked routing path is revoked, and the routing source node deletes the routing path.

[0154] It should be noted that the temporary circuit is also provided with N multicast and broadcast functions.

[0155] Multicast function: There are multiple (B) target encoding addresses for data transmission. Whether to multicast can be achieved by setting the control bit Bout to 1.

[0156] Multicast routing: During the routing process, each time a target code address is routed, the target code address is locked to the source code address once. At the same time, the target code address in the routing packet is cleared until all N target code addresses are cleared.

[0157] Multicast data transmission: The connection jacket of the routing source node starts data transmission after receiving N locks.

[0158] Multicast unlocking: After the routing source node completes data transmission, it sends an unlocking signal to all locked nodes.

[0159] Multicast exception: The routing source node sets and executes the timeout countdown. There is no CRC check for multicast transmission, only a timeout check.

[0160] The broadcast function of the temporary circuit can be used for the reconstruction of the whole system.

[0161] Broadcast definition: The same data is transmitted from one node (routing source node) to all nodes.

[0162] Broadcast routing: When the target encoding address is all 1, clear all other connections in the entire network, set the source routing as the data sender, and set all other nodes in the on-chip network as the data receiver, and all are connected to the routing source node.

[0163] Broadcast data: The data transmitter automatically starts sending data after a certain clock starts routing, without waiting or locking.

[0164] Broadcast exception: The routing source node sets and executes a timeout countdown. When a timeout error occurs, all broadcast-locked nodes are unlocked. Broadcast transmission does not have a CRC check.

[0165] The pipeline definition of the temporary locking circuit is divided into the routing pipeline during routing and the data transmission pipeline during data transmission.

[0166] Routing pipeline: A pipeline that connects the circuits of the jacket to perform routing. Pipeline: Each node through which a routing packet passes consumes one pipeline step;

[0167] Data transmission pipeline: The pipeline used for data transmission circuits connected to the outer jacket. The data channel circuit of each node can be a combinational circuit or an inserted pipeline circuit; during data transmission, the locked link is mainly based on combinational logic, and the terminal node is equipped with a pipeline. Before reverse locking, the router automatically decides to add a first-level pipeline to a certain node based on the number of routing nodes.

[0168] Unlocking a temporary circuit: After data transmission is completed, the enable control signal drops to zero. The connection jacket of the routing source node (which may be the data sender or the data receiver) issues a command to cancel the circuit lock after confirming that the CRC check is correct (it may be that the CRC sent by the target node is correct). All nodes along the line cancel the lock and release the circuit resources.

[0169] Figure 3 This is the third flow chart of the data transmission method provided by the present invention. Figure 4 FIG. 4 is a flow chart of the data transmission method provided by the present invention. Figure 3 , Figure 4 As shown, the method includes:

[0170] Step 1: The local module connected to the routing source node generates a data transmission requirement, which includes: target address, transmission control such as sending or receiving, and data properties;

[0171] Step 2, the connection jacket of the routing source node generates a routing packet, and at the same time generates a timeout counter, and starts to count down. When the data transmission is completed and unlocked, after confirming that the CRC is correct (it may be that the CRC sent by the routing target node is correct), the timeout counter is cleared. When the timeout counter times out, the connection jacket of the routing source node unlocks the temporary circuit connection of the transmission and reports an error to the local module of the routing source node. The routing packet includes: source coding address, target coding address, data nature, transmission error checking requirements, etc.

[0172] Step 3: The connection jacket of the routing source node sends a routing packet in the direction of the target coding address. If the exit in the direction of the target coding address is occupied, it sends a packet to any idle direction, adds the node and the ingress and egress ports to the routing packet, locks the ingress and egress ports, and sends the occupancy status to the adjacent nodes.

[0173] Step 4, during the routing process, for each node that receives the packet: its connection jacket prepares to send a routing packet in the routing direction of the target coding address. If the exit in the direction of the target coding address is occupied, it prepares to send a packet in any idle direction, adds the node and the routing entry and exit into the routing packet, sends the routing packet, and locks the entry and exit of the connection jacket;

[0174] Step 5, until the routing packet arrives at the routing target node, the connection jacket of the routing target node unpacks the packet and delivers the parameters of the routing packet to the local module of the routing target node, the local module of the routing target node parses the data, if the local module of the routing target node is transmitting data, the routing to the routing source node fails, if the local module of the routing target node is not transmitting data and can receive or send data, then the routing target node locks the routing target node;

[0175] Step 6: If the routing target node is the data transmitter, it starts to send the transmission data according to the data nature, and uses the enable bit to mark the validity of the transmission data; if the routing source node is the data transmitter, the routing source node starts to send the transmission data according to the data nature after receiving the locked route, and uses the enable bit to mark the validity of the transmission data;

[0176] Step 7, if the routing source node is a data receiving end, the local modules of the routing source node jointly start receiving data under the control of an enable control signal such as an enable bit; if the routing target node is a data receiving end, the local modules of the routing target node jointly start receiving data under the control of an enable control signal such as an enable bit;

[0177] Step 8, when the data transmitting end finishes transmitting data, the data transmitting end lowers the enable bit corresponding to the enable control signal of the connected jacket;

[0178] Step 9, when the transmission data received by the data receiving end (the data receiving end may be a routing source node or a routing target node) includes transmission data with an enable bit being low, a CRC check is performed on the parameter data. If the CRC check is passed, a CRC check qualified is issued. If the data receiving end is a routing target node, the data receiving end sends an unlock bit as a third signal; the routing source node receives the third signal from the node or the routing target node and unlocks the temporary circuit; if the CRC check is not passed (CRC failure), jump to step 10;

[0179] Step 10, if the data receiving end is the routing target node, the routing target node confirms the failure and sends a CRC failure report to the routing source node; if the data receiving end itself is the routing source node, the routing source node confirms the failure and sends a failure report to the local module of the node; then the routing source node unlocks the temporary circuit.

[0180] Assume that the node bandwidth of each network node in the on-chip network is W-bit=256;

[0181] Number of nodes R = 36;

[0182] Routing delay per node = 1 clock;

[0183] The data circuit of each node is a combinational circuit with no pipeline delay;

[0184] There are routing establishment protocol, routing locking protocol and routing unlocking protocol;

[0185] There is a data transmission protocol (data link);

[0186] A timeout exception handling protocol is provided;

[0187] A node connection jacket wrapper and a jacket reconstruction method are provided for local devices.

[0188] Figure 5 It is a two-dimensional grid-connected on-chip network (11), consisting of nodes R (14), inter-node connections (12), and node-to-interface connections (13). Each node is connected to the connection jacket (15) of the local module in the east, south, west, and north directions (east E, south S, west W, and north N), where the connected module M is inside the connection jacket. Figure 7 (23) in (11). (11) can be composed of multiple nodes R (14), in this case 36 nodes.

[0189] Each inter-node connection (12) is two sets of bidirectional parallel multi-bit connections, connecting from one node to another. The connections are divided into two sets, namely node output connections (256bit+7bit) and node input connections (256bit+7bit). Each node has four sets of connections (East E, South S, West W, North N) and one set of local uplink and downlink connections. The width of the connection is the bus width, for example, 263-bit input lines and 263-bit output lines (256-bit data + 7-bit control).

[0190] Figure 5 The input and output connections (13) of the on-chip network (11) connected by a two-dimensional grid are two sets of parallel multi-bit connections, connecting from one node to an external interface. The connections are divided into two sets, namely system output and system input. The width of the connection is the bus width, for example, the width of the connection can be 526 bits, 263 bits of input lines and 263 bits of output lines (256 bits of data + 7 bits of control).

[0191] The internal structure of each node R in the two-dimensional grid-connected on-chip network (11) is as follows: Figure 6 As shown. The design of each node is the same. Its connection lines are divided into four directions and eight groups of connection lines;

[0192] 1. Nin: North port input line (can be connected to South port output, East port output, West port output, and local (C) input);

[0193] 2, Nout: North port output line (from South port input, East port input, West port input, and local (C) output);

[0194] 3. Sin: South port input line (can be connected to the North port output, East port output, West port output, and local (C) input);

[0195] 4, Sout: South port output line (from North port input, East port input, West port input, and local (C) output);

[0196] 5. Ein: East port input line (can be connected to the North port output, South port output, West port output, and local (C) input);

[0197] 6, Eout: East output line (from North input, South input, West input, and local (C) output);

[0198] 7. Win: West port input line (can be connected to North port output, South port output, East port output, and local (C) input);

[0199] 8, Wout: West port output line (from North port input, South port input, East port input, and local (C) output);

[0200] Among them, Clock: clock signal input terminal.

[0201] The connection jacket (15) of the local module is connected to the node through standard connection, see (14). On the other hand, it is connected to the connected module M (23) through the connection reconstruction configuration. Figure 7 .

[0202] Connection jacket for local modules ( Figure 7 The dotted line of FIG. 2 includes a data path (21) and a control path (22).

[0203] 1, the first circuit function of (21) is the entry circuit reconstruction design circuit (20);

[0204] 2. The second circuit function of (21) is to export the circuit reconstruction design circuit (29);

[0205] 3. The third circuit function of (21) is the entry and exit of the routing;

[0206] 4. The first circuit function of (22) is the packaging function for the routing source node;

[0207] 5. The second circuit function of (22) is to receive and unpack the routing packets for the intermediate nodes and routing target nodes;

[0208] 6, the third circuit function of (22) is to determine the egress route and transmit the routing packet for the routing source node and the intermediate node;

[0209] 7, The fourth circuit function of (22) is the watchdog of the routing source node;

[0210] 8. The fifth circuit function of (22) is to complete data reception (including CRC check) and transmission and control for the routing source node (the routing source node can be the receiving end or the transmitting end of the data);

[0211] 9, the sixth circuit function of (22) is to complete data reception (including CRC check) and transmission and control for the routing target node (the routing target node can be the receiving end or the transmitting end of the data);

[0212] 10, The seventh circuit function of (22) is to record and maintain the updated occupancy status of adjacent nodes.

[0213] Among them, (24) introduces the four inputs of (21) from east to west, north to south to connect the jacket controller (22) to implement routing, (25) sends the routing decision to (21) to implement export selection, and connects the jacket to the module's connection line (26) circuit: executes the entry circuit reconstruction configuration. During the circuit design stage, the configuration of the connection module entry circuit and the connection protocol is determined according to the input line of the connected module, and the reconstructed data is sent to the module.

[0214] The connection line (27) circuit from the connected module to the connecting jacket: Execute the export circuit reconstruction configuration: During the circuit design phase, the configuration of the connecting module export circuit and the connection protocol is determined according to the output line of the connected module, and the configuration data that has not yet been reconstructed is output to the connecting jacket.

[0215] (28) Control and status information exchange between the connecting jacket and the connected module, including at least the path establishment requirements, basic data information, timeout and error reporting, etc. for supporting source routing; and basic data information, timeout and error reporting, etc. for supporting target routing (including broadcast and multicast).

[0216] The two main functions performed by the connection jacket are:

[0217] The first function is to establish a circuit connection through routing: establish, lock, and cancel the routing connection. This function is dynamic and is completed once for each transmission. (22) According to the data transmission requirements of the source routing local module initiating the device, a routing packet is compiled to complete the following: 1. (22) The node keeps recording the occupancy status of the adjacent nodes; 2. According to the address of the routing target node of the route and the occupancy status of the adjacent nodes, the header content is added, the path is recorded, the ingress and egress paths of the node in both directions are temporarily locked, and the routing packet is sent in the determined direction; 3. According to this routing method, the target device of the routing target node will eventually be found, and a circuit will be established to connect the local module of the routing source node with the local module of the routing target node; 4. The local module of the routing target node confirms the transmission request. If it is idle, it will issue a command to lock the circuit; if it is not idle, it will issue a busy status; 5. Lock the circuit: establish a directional locked circuit connection; 6. Maintain the locked state to support bus transmission; 7. Unlock: After the transmission is completed, the data receiving side issues a request to cancel the circuit lock, the routing source node executes the circuit cancellation command, and all nodes along the line cancel the lock and release the circuit resources; 8. Each node (when serving as a routing source node) is equipped with a timeout control. The transmission with abnormal timeout will be terminated and reported to the system through the local module of the routing source node.

[0218] The second function is to use the circuit to transmit data: after the circuit is locked, data transmission begins on the circuit. Either the routing source node or the routing target node can send data. The data sent is enabled by the enable bit. After the transmission is completed, the enable bit disappears. The data receiver makes a data reception report based on the CRC check result. After receiving the report, the routing source node immediately unlocks the circuit and releases the circuit resources.

[0219] Connected module M (23): can be a processor module, a functional module, a memory module and an interface module. Figure 7 .

[0220] The input connections to the connected module M (23) may include:

[0221] 1. Processor module: connect the data storage write bus and program / configuration memory input to the processor module;

[0222] 2. Functional module: connect the input to the data storage write bus and configuration register of the functional module;

[0223] 3. Memory: Connect the input to the write port of the data memory, and the node's internal direct memory access (DMA) provides the address;

[0224] 4. Interface: Connect the input to the interface, and the node's internal DMA provides subsequent data transmission.

[0225] Output connections to the connected module M (23) may include:

[0226] 1. Processor module: The data storage and readout bus of the processor module is connected to the output;

[0227] 2. Functional module: The readout bus of the module's data storage is connected to the output;

[0228] 3. Memory: The readout of the data memory is connected to the output through the node's internal DMA;

[0229] 4. Interface: The interface is directly connected to the output.

[0230] according to Figure 5 (11) There are 36 connected modules M (including some storage modules and interface modules). If the circuit is fully interconnected, with a 256-bit bus, the logic overhead can reach 5 million gates, the total length of the connection can reach 1,300 meters, and the driving power coefficient is 1. In the method for establishing a routing circuit based on packet switching provided by the present invention, the logic gate overhead is less than 0.5 million gates, the total length of the connection is no more than 64 meters, and the relative connection area and driving power are reduced by 20 times.

[0231] The comparison between the present invention and the circuit switching solution is shown in Table 1:

[0232] Table 1

[0233]

[0234] The comparison between the present invention and the packet switching solution is shown in Table 2:

[0235] Table 2

[0236]

[0237] The data transmission method provided by the present invention establishes a routing path from a routing source node to a routing target node based on an on-chip network, and builds the routing path as a temporary circuit. Data transmission is performed based on the temporary circuit. Its low latency and determined resources provide large bandwidth and low latency requirements for parallel real-time transmission of multiple data paths, thereby improving data transmission efficiency. At the same time, the temporary circuit can be unlocked after the data transmission is completed to release resources and avoid congestion caused by resource occupation.

[0238] The data transmission system provided by the present invention is described below. The data transmission system described below and the data transmission method described above can be referenced to each other.

[0239] Figure 8 It is one of the structural diagrams of the data transmission system provided by the present invention, such as Figure 8 As shown, including:

[0240] A circuit locking module 810, a first sending module 811 and a transmission control module 812;

[0241] The circuit locking module 810 is used to lock the temporary circuit when it is determined that a locking signal sent by the data receiving end is received, the locking signal is used to indicate that the temporary circuit is allowed to be locked, the temporary circuit is built based on a routing path, the routing path is a path for routing a routing packet from a routing source node to a routing target node, the routing source node and the routing target node are both determined based on a local module connected to each network node in an on-chip network connected by at least a two-dimensional grid, and the routing packet is generated by the routing source node;

[0242] The first sending module 811 is used to set the enable control signal of the temporary circuit to a first signal, and send the transmission data to the data receiving end along the temporary circuit, the first signal is used to indicate that the transmission data is allowed to be sent to the data receiving end, and the data receiving end is determined according to the local module corresponding to the routing target node;

[0243] The transmission control module 812 is used to stop sending the transmission data to the data receiving end so that the data receiving end can verify the transmission data.

[0244] The data transmission system provided by the present invention establishes a routing path from a routing source node to a routing target node based on an on-chip network, and builds the routing path as a temporary circuit. Data transmission is performed based on the temporary circuit. Its low latency and determined resources provide large bandwidth and low latency requirements for parallel real-time transmission of multiple data channels, thereby improving data transmission efficiency.

[0245] Fig. 9 This is the second structural diagram of the data transmission system provided by the present invention, such as Fig. 9 As shown, including:

[0246] A second sending module 910, a first receiving module 911 and a checking module 912;

[0247] The second sending module 910 is used to send a locking signal to the data sending end, so that the data sending end can lock the temporary circuit according to the locking signal, and the locking signal is used to indicate that the temporary circuit is allowed to be locked, the temporary circuit is built based on a routing path, and the routing path is a path for routing a routing packet from a routing source node to a routing target node, the routing source node and the routing target node are both determined according to a local module connected to each network node in an on-chip network connected by at least a two-dimensional grid, and the routing packet is generated by the routing source node;

[0248] The first receiving module 911 is used to receive the transmission data sent by the data sending end along the temporary circuit when the enable control signal of the temporary circuit is a first signal, the first signal is used to indicate that the transmission data is allowed to be sent to the data receiving end, and the data sending end is determined according to the local module corresponding to the routing source node;

[0249] The verification module 912 is used to stop receiving the transmission data sent by the data sending end and verify the transmission data when it is determined that the data sending end sets the enable control signal to a second signal, wherein the second signal is used to indicate the end of transmission and the transmission data is no longer allowed to be sent to the data receiving end.

[0250] The data transmission system provided by the present invention establishes a routing path from a routing source node to a routing target node based on an on-chip network, and builds the routing path as a temporary circuit. Data transmission is performed based on the temporary circuit. Its low latency and determined resources provide large bandwidth and low latency requirements for parallel real-time transmission of multiple data channels, thereby improving data transmission efficiency.

[0251] Fig.10 is a schematic diagram of the physical structure of an electronic device provided by the present invention, such as Fig.10 As shown, the electronic device may include: a processor 1010, a communication interface 1011, a memory 1012 and a bus 1013, wherein the processor 1010, the communication interface 1011 and the memory 1012 communicate with each other through the bus 1013. The processor 1010 may call the logic instructions in the memory 1012 to execute the following method:

[0252] In the case of determining that a locking signal sent by the data receiving end is received, locking the temporary circuit, the locking signal is used to indicate that the temporary circuit is allowed to be locked, the temporary circuit is built based on a routing path, the routing path is a path for routing a routing packet from a routing source node to a routing target node, the routing source node and the routing target node are both determined based on a local module connected to each network node in an on-chip network connected by at least a two-dimensional grid, and the routing packet is generated by the routing source node;

[0253] Setting the enable control signal of the temporary circuit to a first signal, and sending the transmission data to the data receiving end along the temporary circuit, wherein the first signal is used to indicate that the transmission data is allowed to be sent to the data receiving end, and the data receiving end is determined according to the local module corresponding to the routing target node;

[0254] Stop sending the transmission data to the data receiving end so that the data receiving end can verify the transmission data.

[0255] or,

[0256] Sending a locking signal to a data sending end, so that the data sending end can lock a temporary circuit according to the locking signal, wherein the locking signal is used to indicate that the temporary circuit is allowed to be locked, wherein the temporary circuit is built based on a routing path, wherein the routing path is a path for routing a routing packet from a routing source node to a routing target node, wherein the routing source node and the routing target node are both determined based on a local module connected to each network node in an on-chip network connected by at least a two-dimensional grid, and wherein the routing packet is generated by the routing source node;

[0257] receiving transmission data sent by a data transmitting end along the temporary circuit when the enable control signal of the temporary circuit is a first signal, the first signal being used to indicate that the transmission data is allowed to be sent to a data receiving end, the data transmitting end being determined according to a local module corresponding to the routing source node;

[0258] When it is determined that the data sending end sets the enable control signal to a second signal, stop receiving the transmission data sent by the data sending end, and verify the transmission data. The second signal is used to indicate the end of transmission, and the transmission data is no longer allowed to be sent to the data receiving end.

[0259] In addition, the logic instructions in the above-mentioned memory can be implemented in the form of software functional units and can be stored in a computer-readable storage medium when sold or used as an independent product. Based on such an understanding, the technical solution of the present invention, in essence, or the part that contributes to the prior art or the part of the technical solution, can be embodied in the form of a software product, which is stored in a storage medium and includes several instructions for enabling a computer power screen (which can be a personal computer, a server, or a network power screen, etc.) to perform all or part of the steps of the method described in each embodiment of the present invention. The aforementioned storage medium includes: various media that can store program codes, such as a U disk, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a disk or an optical disk.

[0260] Furthermore, the present invention discloses a computer program product, the computer program product comprising a computer program stored on a non-transitory computer-readable storage medium, the computer program comprising program instructions, and when the program instructions are executed by a computer, the computer can execute the data transmission method provided by the above-mentioned method embodiments, for example, comprising:

[0261] In the case of determining that a locking signal sent by the data receiving end is received, locking the temporary circuit, the locking signal is used to indicate that the temporary circuit is allowed to be locked, the temporary circuit is built based on a routing path, the routing path is a path for routing a routing packet from a routing source node to a routing target node, the routing source node and the routing target node are both determined based on a local module connected to each network node in an on-chip network connected by at least a two-dimensional grid, and the routing packet is generated by the routing source node;

[0262] Setting the enable control signal of the temporary circuit to a first signal, and sending the transmission data to the data receiving end along the temporary circuit, wherein the first signal is used to indicate that the transmission data is allowed to be sent to the data receiving end, and the data receiving end is determined according to the local module corresponding to the routing target node;

[0263] Stop sending the transmission data to the data receiving end so that the data receiving end can verify the transmission data.

[0264] or,

[0265] Sending a locking signal to a data sending end, so that the data sending end can lock a temporary circuit according to the locking signal, wherein the locking signal is used to indicate that the temporary circuit is allowed to be locked, wherein the temporary circuit is built based on a routing path, wherein the routing path is a path for routing a routing packet from a routing source node to a routing target node, wherein the routing source node and the routing target node are both determined based on a local module connected to each network node in an on-chip network connected by at least a two-dimensional grid, and wherein the routing packet is generated by the routing source node;

[0266] receiving transmission data sent by a data sending end along the temporary circuit when the enable control signal of the temporary circuit is a first signal, the first signal being used to indicate that the transmission data is allowed to be sent to a data receiving end, the data sending end being determined according to a local module corresponding to the routing source node;

[0267] When it is determined that the data sending end sets the enable control signal to a second signal, stop receiving the transmission data sent by the data sending end, and verify the transmission data. The second signal is used to indicate the end of transmission, and the transmission data is no longer allowed to be sent to the data receiving end.

[0268] On the other hand, the present invention further provides a non-transitory computer-readable storage medium having a computer program stored thereon, which is implemented when the computer program is executed by a processor to perform the data transmission method provided in the above embodiments, for example, including:

[0269] In the case of determining that a locking signal sent by the data receiving end is received, locking the temporary circuit, the locking signal is used to indicate that the temporary circuit is allowed to be locked, the temporary circuit is built based on a routing path, the routing path is a path for routing a routing packet from a routing source node to a routing target node, the routing source node and the routing target node are both determined based on a local module connected to each network node in an on-chip network connected by at least a two-dimensional grid, and the routing packet is generated by the routing source node;

[0270] Setting the enable control signal of the temporary circuit to a first signal, and sending the transmission data to the data receiving end along the temporary circuit, wherein the first signal is used to indicate that the transmission data is allowed to be sent to the data receiving end, and the data receiving end is determined according to the local module corresponding to the routing target node;

[0271] Stop sending the transmission data to the data receiving end so that the data receiving end can verify the transmission data.

[0272] or,

[0273] Sending a locking signal to a data sending end, so that the data sending end can lock a temporary circuit according to the locking signal, wherein the locking signal is used to indicate that the temporary circuit is allowed to be locked, wherein the temporary circuit is built based on a routing path, wherein the routing path is a path for routing a routing packet from a routing source node to a routing target node, wherein the routing source node and the routing target node are both determined based on a local module connected to each network node in an on-chip network connected by at least a two-dimensional grid, and wherein the routing packet is generated by the routing source node;

[0274] receiving transmission data sent by a data transmitting end along the temporary circuit when the enable control signal of the temporary circuit is a first signal, the first signal being used to indicate that the transmission data is allowed to be sent to a data receiving end, the data transmitting end being determined according to a local module corresponding to the routing source node;

[0275] When it is determined that the data sending end sets the enable control signal to a second signal, stop receiving the transmission data sent by the data sending end, and verify the transmission data. The second signal is used to indicate the end of transmission, and the transmission data is no longer allowed to be sent to the data receiving end.

[0276] The system embodiment described above is merely illustrative, wherein the units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the modules may be selected according to actual needs to achieve the purpose of the solution of this embodiment. Those of ordinary skill in the art may understand and implement it without creative work.

[0277] Through the description of the above implementation methods, those skilled in the art can clearly understand that each implementation method can be implemented by means of software plus a necessary general hardware platform, and of course, it can also be implemented by hardware. Based on this understanding, the above technical solution is essentially or the part that contributes to the prior art can be embodied in the form of a software product, and the computer software product can be stored in a computer-readable storage medium, such as ROM / RAM, a disk, an optical disk, etc., including a number of instructions for a computer power screen (which can be a personal computer, a server, or a network power screen, etc.) to execute the methods described in each embodiment or some parts of the embodiments.

[0278] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, rather than to limit it. Although the present invention has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or make equivalent replacements for some of the technical features therein. However, these modifications or replacements do not deviate the essence of the corresponding technical solutions from the spirit and scope of the technical solutions of the embodiments of the present invention.

Claims

1. A data transmission method, characterized in that: include: In the case of determining that a locking signal sent by the data receiving end is received, locking the temporary circuit, the locking signal is used to indicate that the temporary circuit is allowed to be locked, the temporary circuit is built based on a routing path, the routing path is a path for routing a routing packet from a routing source node to a routing target node, the routing source node and the routing target node are both determined based on a local module connected to each network node in an on-chip network connected by at least a two-dimensional grid, and the routing packet is generated by the routing source node; Setting the enable control signal of the temporary circuit to a first signal, and sending the transmission data to the data receiving end along the temporary circuit, wherein the first signal is used to indicate that the transmission data is allowed to be sent to the data receiving end, and the data receiving end is determined according to the local module corresponding to the routing target node; Stop sending the transmission data to the data receiving end so that the data receiving end can verify the transmission data; The method further comprises: Determine the target routing direction between the routing source node and the routing target node according to the source coding address in the routing source node identifier, the target coding address in the routing target node identifier and the preset coding rule, wherein the source coding address and the target coding address are both determined according to the preset coding rule; Determine the routing path according to the target routing direction; During the routing process, for each wrapper of a node that receives a routing packet, a routing packet is sent in the routing direction of the target coding address. If the exit in the target coding address direction is occupied, a routing packet is sent in any idle direction, and each node that receives the routing packet and the routing entry and exit are added to the routing packet, and the routing packet is sent to lock the entry and exit of the wrapper. Each network node in the on-chip network connected in at least a two-dimensional grid has an address code; the routing source node is a network node corresponding to the source coded address that generates a data transmission demand in each network node in the on-chip network connected in at least a two-dimensional grid; the data transmission demand includes a target coded address for the data transmission, receive or send transmission control, and data properties of the transmission data; the routing target node is a network node in each network node in the on-chip network connected in at least a two-dimensional grid that has the same target coded address.

2. The data transmission method according to claim 1, characterized in that: Before stopping sending the transmission data to the data receiving end, the method further includes: The enable control signal is set to a second signal, where the second signal is used to indicate that the transmission is finished and the transmission data is no longer allowed to be sent to the data receiving end.

3. The data transmission method according to any one of claims 1 to 2, characterized in that: The method further comprises: In a case where the transmission data passes a timeout check and a cyclic redundancy CRC check, unlocking the temporary circuit according to a third signal sent by the data receiving end, wherein the third signal is a signal for unlocking the temporary circuit; If the transmission data fails to pass the timeout check or the CRC check, a failure report is generated, and the temporary circuit is unlocked according to the received third signal; Wherein, the check includes the timeout check and the CRC check.

4. A data transmission method, characterized in that: include: Sending a locking signal to a data sending end, so that the data sending end can lock a temporary circuit according to the locking signal, wherein the locking signal is used to indicate that the temporary circuit is allowed to be locked, wherein the temporary circuit is built based on a routing path, wherein the routing path is a path for routing a routing packet from a routing source node to a routing target node, wherein the routing source node and the routing target node are both determined based on a local module connected to each network node in an on-chip network connected by at least a two-dimensional grid, and wherein the routing packet is generated by the routing source node; receiving transmission data sent by a data transmitting end along the temporary circuit when the enable control signal of the temporary circuit is a first signal, the first signal being used to indicate that the transmission data is allowed to be sent to a data receiving end, the data transmitting end being determined according to a local module corresponding to the routing source node; When it is determined that the data transmitting end sets the enable control signal to the second signal, stop receiving the transmission data sent by the data transmitting end, and verify the transmission data, wherein the second signal is used to indicate the end of transmission, and no longer allows the transmission data to be sent to the data receiving end; The method further comprises: Determine the target routing direction between the routing source node and the routing target node according to the source coding address in the routing source node identifier, the target coding address in the routing target node identifier and the preset coding rule, wherein the source coding address and the target coding address are both determined according to the preset coding rule; Determine the routing path according to the target routing direction; During the routing process, for each wrapper of a node that receives a routing packet, a routing packet is sent in the routing direction of the target coding address. If the exit in the target coding address direction is occupied, a routing packet is sent in any idle direction, and each node that receives the routing packet and the routing entry and exit are added to the routing packet, and the routing packet is sent to lock the entry and exit of the wrapper. Each network node in the on-chip network connected in at least a two-dimensional grid has an address code; the routing source node is a network node corresponding to the source coded address that generates a data transmission demand in each network node in the on-chip network connected in at least a two-dimensional grid; the data transmission demand includes a target coded address for the data transmission, receive or send transmission control, and data properties of the transmission data; the routing target node is a network node in each network node in the on-chip network connected in at least a two-dimensional grid that has the same target coded address.

5. The data transmission method according to claim 4, characterized in that: The verifying the transmission data comprises: Performing cyclic redundancy CRC check and timeout check on the transmission data; The performing a timeout check on the transmission data includes: A timeout check is performed on the transmission data according to a first time when the data sending end sends the transmission data, a second time when the transmission data is stopped, and a preset time threshold.

6. The data transmission method according to any one of claims 4 to 5, characterized in that: The method further comprises: A third signal is sent to the data sending end, where the third signal is a signal for unlocking the temporary circuit.

7. A data transmission system, characterized in that: include: A circuit locking module, a first sending module and a transmission control module; The circuit locking module is used to lock the temporary circuit when it is determined that a locking signal sent by the data receiving end is received, the locking signal is used to indicate that the temporary circuit is allowed to be locked, the temporary circuit is built based on a routing path, the routing path is a path for routing a routing packet from a routing source node to a routing target node, the routing source node and the routing target node are both determined based on a local module connected to each network node in an on-chip network connected by at least a two-dimensional grid, and the routing packet is generated by the routing source node; The first sending module is used to set the enable control signal of the temporary circuit to a first signal, and send the transmission data to the data receiving end along the temporary circuit, the first signal is used to indicate that the transmission data is allowed to be sent to the data receiving end, and the data receiving end is determined according to the local module corresponding to the routing target node; The transmission control module is used to stop sending the transmission data to the data receiving end so that the data receiving end can verify the transmission data; Also includes: Determine the target routing direction between the routing source node and the routing target node according to the source coding address in the routing source node identifier, the target coding address in the routing target node identifier and the preset coding rule, wherein the source coding address and the target coding address are both determined according to the preset coding rule; Determine the routing path according to the target routing direction; During the routing process, for each wrapper of a node that receives a routing packet, a routing packet is sent in the routing direction of the target coding address. If the exit in the target coding address direction is occupied, a routing packet is sent in any idle direction, and each node that receives the routing packet and the routing entry and exit are added to the routing packet, and the routing packet is sent to lock the entry and exit of the wrapper. Each network node in the on-chip network connected in at least a two-dimensional grid has an address code; the routing source node is a network node corresponding to the source coded address that generates a data transmission demand in each network node in the on-chip network connected in at least a two-dimensional grid; the data transmission demand includes a target coded address for the data transmission, receive or send transmission control, and data properties of the transmission data; the routing target node is a network node in each network node in the on-chip network connected in at least a two-dimensional grid that has the same target coded address.

8. A data transmission system, characterized in that: include: A second sending module, a first receiving module and a verification module; The second sending module is used to send a locking signal to the data sending end, so that the data sending end can lock the temporary circuit according to the locking signal, the locking signal is used to indicate that the temporary circuit is allowed to be locked, the temporary circuit is built based on a routing path, the routing path is a path for routing a routing packet from a routing source node to a routing target node, the routing source node and the routing target node are both determined according to a local module connected to each network node in an on-chip network connected by at least a two-dimensional grid, and the routing packet is generated by the routing source node; The first receiving module is used to receive the transmission data sent by the data sending end along the temporary circuit when the enable control signal of the temporary circuit is a first signal, the first signal is used to indicate that the transmission data is allowed to be sent to the data receiving end, and the data sending end is determined according to the local module corresponding to the routing source node; The verification module is used to stop receiving the transmission data sent by the data sending end and verify the transmission data when it is determined that the data sending end sets the enable control signal to a second signal, wherein the second signal is used to indicate that the transmission is finished and the transmission data is no longer allowed to be sent to the data receiving end; Also includes: Determine the target routing direction between the routing source node and the routing target node according to the source coding address in the routing source node identifier, the target coding address in the routing target node identifier and the preset coding rule, wherein the source coding address and the target coding address are both determined according to the preset coding rule; Determine the routing path according to the target routing direction; During the routing process, for each wrapper of a node that receives a routing packet, a routing packet is sent in the routing direction of the target coding address. If the exit in the target coding address direction is occupied, a routing packet is sent in any idle direction, and each node that receives the routing packet and the routing entry and exit are added to the routing packet, and the routing packet is sent to lock the entry and exit of the wrapper. Each network node in the on-chip network connected in at least a two-dimensional grid has an address code; the routing source node is a network node corresponding to the source coded address that generates a data transmission demand in each network node in the on-chip network connected in at least a two-dimensional grid; the data transmission demand includes a target coded address for the data transmission, receive or send transmission control, and data properties of the transmission data; the routing target node is a network node in each network node in the on-chip network connected in at least a two-dimensional grid that has the same target coded address.

9. An electronic device comprising a processor and a memory storing a computer program, characterized in that: When the processor executes the computer program, the data transmission method according to any one of claims 1 to 3 or any one of claims 4 to 6 is implemented.

10. A non-transitory computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the data transmission method according to any one of claims 1 to 3 or any one of claims 4 to 6 is implemented.

Citation Information

Patent Citations

  • Router and transmission method thereof on packet-circuit switching chip

    CN101778049A