Method and system for establishing temporary circuit based on packet switching routing

By determining the source and target routing nodes in the on-chip network and establishing temporary circuits, the problems of large transmission delay and low routing flexibility are solved, low latency, high bandwidth and reliability are achieved, and routing flexibility and Connection efficiency.

CN115987918BActive Publication Date: 2024-12-27JIXIN COMM TECH (NANJING) CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202310065091.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-02-06
Publication Date
2024-12-27
Estimated Expiration
2043-02-06

AI Technical Summary

Technical Problem

The existing on-chip network based on packet switching has problems such as large transmission delay, low routing flexibility and excessive connection overhead. The circuit switching-based network is suitable for small-scale systems and is difficult to scale.

Method used

By determining the source routing node and the target routing node in an on-chip network connected by a two-dimensional grid, a temporary circuit is established, and the routing path is determined using the source routing node identification and the target routing node identification in the routing packet, and determining according to the preset encoding rules. Routing direction, establish and lock temporary circuits to avoid transmission delay and routing flexibility limitations.

Benefits of technology

It realizes low latency, high bandwidth and reliability of data transmission, while improving routing flexibility and connection usage efficiency, avoiding the low scale of traditional circuit switching and transmission delay problems of packet switching.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115987918B_ABST
    Figure CN115987918B_ABST
Patent Text Reader

Abstract

The present invention provides a method and system for establishing a temporary circuit based on packet switching routing, which relates to the field of communication technology, including: a network on chip based on at least two-dimensional grid connection, establishing and locking a temporary circuit for one transmission through a packet switching routing process, ensuring high bandwidth, fixed low latency and reliability of transmission; multiple parallel transmission circuits can be established and locked at the same time according to the resources of the grid; after each transmission is completed, the temporary circuit is canceled by broadcasting an unlock command on the locked circuit to release resources. The present invention establishes a temporary circuit along the routing packet transmission, avoiding the problems of low scale, low routing flexibility and excessive wiring overhead in the bus circuit of the network on chip based on circuit switching in the prior art, and the problems of large transmission delay and possible disorder in the bus circuit of the network on chip based on packet switching, ensuring low latency of data transmission while improving routing flexibility and wiring 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 method and system for establishing a temporary circuit based on packet switching routing. Background Art

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

[0003] The characteristics of the existing on-chip interconnect bus based on packet switching are: the data to be transmitted at one time is divided into several small packets, and the packet header (header) carries the source address, destination address and data information (such as the order of the packets and the length of the packets), which are transmitted in the on-chip network based on packet switching, and the transmission ends after the data is reordered and checked for correctness during reception. However, in the specific application process, packet switching itself cannot guarantee the order of arriving packets, and the receiving end must be equipped with a reordering cache, which increases the additional overhead of the hardware cache. At the same time, since each packet has to establish its own route, its transmission time is long, the redundancy is large, and it has a large time uncertainty, and the transmission delay is large.

[0004] The existing on-chip Internet bus based on circuit switching is only suitable for small-scale systems with a small number of connections. Because the connection capacity depends on the chip circuit design, it is very easy to limit the flexibility of the later path selection. If full-node full connection is adopted, the excessive wiring of the system will lead to excessive overhead. Summary of the invention

[0005] The method and system for establishing a temporary circuit based on packet switching routing provided by the present invention are used to solve the above-mentioned problems existing in the prior art, while ensuring low latency in data transmission, and improving routing flexibility and connection efficiency.

[0006] The present invention provides a method for establishing a temporary circuit based on packet switching routing, comprising:

[0007] Determine a source routing node and a target routing node according to a local module connected to each network node in the network on chip connected in at least a two-dimensional grid, the local module being used to transmit a routing packet of the source routing node from the source routing node to the target routing node, the routing packet including at least a source routing node identifier and a target routing node identifier;

[0008] Determine, according to the source routing node identifier and the target routing node identifier, a routing path for transmitting the routing packet from the source routing node to the target routing node;

[0009] A temporary circuit is established according to the routing path.

[0010] According to a method for establishing a temporary circuit based on packet switching routing provided by the present invention, the local module connected to each network node in the on-chip network connected by at least a two-dimensional grid is used to determine the source routing node and the target routing node, including:

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

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

[0013] According to a method for establishing a temporary circuit based on packet switching routing provided by the present invention, the method of determining a routing path for transmitting the routing packet from the source routing node to the target routing node according to the source routing node identifier and the target routing node identifier comprises:

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

[0015] The routing path is determined according to the target routing direction.

[0016] According to a method for establishing a temporary circuit based on packet switching routing provided by the present invention, determining the routing path according to the target routing direction includes:

[0017] Transmitting the routing packet from the source encoding address to the target encoding address along the target routing direction, determining a plurality of intermediate nodes passed by the routing packet, wherein the intermediate nodes are nodes other than the source routing node and the target routing node, and the routing packet further includes intermediate node identifiers of the plurality of intermediate nodes passed during the routing process;

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

[0019] 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 a preset coding rule;

[0020] 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;

[0021] The last routing path is determined according to the last routing direction, and the last 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.

[0022] According to a method for establishing a temporary circuit based on packet switching routing provided by the present invention, the method further includes:

[0023] When it is determined that the routing rejection condition is met, the routing packet is refused to be transmitted from the source routing node to the target routing node. The routing rejection condition includes that the target routing node is in a data transmission state, or any intermediate node through which the routing packet is transmitted from the source routing node to the target routing node is in a busy state.

[0024] According to a method for establishing a temporary circuit based on packet switching routing provided by the present invention, after determining the routing path for transmitting the routing packet from the source routing node to the target routing node according to the source routing node identifier and the target routing node identifier, the method further includes:

[0025] Determine whether the source routing node receives a routing completion confirmation message transmitted by the target routing node within a preset time, wherein the routing completion confirmation message is sent when a local module corresponding to the target routing node receives the routing packet and is in an idle state;

[0026] If it is determined that the source routing node has not received the routing completion confirmation message within the preset time, then the routing is determined to have failed, and the routing path is deleted through the source routing node;

[0027] If it is determined that the source routing node receives the routing completion confirmation message within the preset time, it is determined that the routing is successful, and the routing path is locked through the source routing node.

[0028] According to a method for establishing a temporary circuit based on packet switching routing provided by the present invention, the method further includes:

[0029] The entry and exit information of each intermediate node passed by the routing packet during the routing process is added to the routing packet, wherein the entry and exit information includes the entry and exit occupancy status of the intermediate node. Any intermediate node sends the entry and exit occupancy status to the adjacent node, and the adjacent node is the intermediate node connected to the entry and exit of any intermediate node.

[0030] The present invention also provides a system for establishing a temporary circuit based on packet switching routing, comprising: a first determination module, a second determination module and a circuit establishment module;

[0031] The first determination module is used to determine a source routing node and a target routing node according to a local module connected to each network node in the on-chip network connected in at least a two-dimensional grid, the local module is used to transmit a routing packet of the source routing node from the source routing node to the target routing node, the routing packet at least including a source routing node identifier and a target routing node identifier;

[0032] The second determining module is used to determine a routing path for transmitting the routing packet from the source routing node to the target routing node according to the source routing node identifier and the target routing node identifier;

[0033] The circuit establishing module is used to establish a temporary circuit according to the routing path.

[0034] The present invention also provides an electronic device, comprising a processor and a memory storing a computer program, wherein when the processor executes the program, the method for establishing a temporary circuit based on packet switching routing as described in any one of the above is implemented.

[0035] The present invention also provides a non-transitory computer-readable storage medium having a computer program stored thereon. When the computer program is executed by a processor, the method for establishing a temporary circuit based on packet switching routing as described in any one of the above is implemented.

[0036] The present invention also provides a computer program product, comprising a computer program, wherein when the computer program is executed by a processor, the method for establishing a temporary circuit based on packet switching routing as described in any one of the above is implemented.

[0037] The method and system for establishing a temporary circuit based on packet switching routing provided by the present invention are based on an on-chip network connected by at least a two-dimensional grid. A temporary circuit is established and locked for one transmission through a packet switching routing process, thereby ensuring high bandwidth, fixed low latency, and transmission reliability of this transmission; multiple parallel transmission circuits can be established and locked at the same time based on the resources of the grid, thereby avoiding the problems of low scale, low routing flexibility, and excessive wiring overhead in the bus circuit of the on-chip network based on circuit switching in the prior art, as well as the problem of large transmission delay in the bus circuit of the on-chip network based on packet switching in the prior art, thereby ensuring low latency in data transmission and improving routing flexibility and wiring efficiency. BRIEF DESCRIPTION OF THE DRAWINGS

[0038] In order to more clearly illustrate the technical solutions in the present invention or the prior art, a brief introduction will be given below to 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 any creative work.

[0039] Figure 1 It is a flow chart of a method for establishing a temporary circuit based on packet switching routing provided by the present invention;

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

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

[0042] Figure 4 It is a structural schematic diagram of a system for establishing a temporary circuit based on packet switching routing provided by the present invention;

[0043] Figure 5 It is a schematic diagram of the physical structure of the electronic device provided by the present invention. DETAILED DESCRIPTION

[0044] 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.

[0045] The method for establishing a temporary circuit based on packet switching routing provided by the present invention draws on the advantages of packet switching routing flexibility and scalability; it also maintains the advantages of circuit switching low latency and no reordering cache. It can support multiple parallel transmissions at the same time. The method can be implemented based on any two-dimensional or multi-dimensional on-chip network. It is a two-dimensional or multi-dimensional parallel on-chip network bus circuit system that uses packet transmission to establish a route and locks the route into a temporary circuit. 1) The initiator of the route (source routing node) transmits a routing packet through a forward route to establish and temporarily lock a circuit path. 2) The receiver of the route (target routing node) receives the routing packet and sends the control of locking the route in the reverse direction through the route, turning the routing path of the routing packet transmission into a direct circuit. The specific implementation is as follows:

[0046] Figure 1 FIG. 1 is a flow chart of a method for establishing a temporary circuit based on packet switching routing provided by the present invention, such as Figure 1 As shown, the method includes:

[0047] Step 110, determining a source routing node and a target routing node according to a local module connected to each network node in the network on chip connected in at least a two-dimensional grid, wherein the local module is used to transmit a routing packet of the source routing node from the source routing node to the target routing node, wherein the routing packet includes at least a source routing node identifier and a target routing node identifier;

[0048] Step 120, determining a routing path for transmitting the routing packet from the source routing node to the target routing node according to the source routing node identifier and the target routing node identifier;

[0049] Step 130: Establish a temporary circuit according to the routing path.

[0050] It should be noted that the execution subject of the above method can be a computer device or a system on a chip.

[0051] In the embodiment of the present invention, the on-chip network can be specifically a heterogeneous multi-core real-time on-chip system Soc on-chip network. The on-chip network can simultaneously support multiple parallel transmissions. The on-chip network can specifically use an on-chip network architecture connected by at least a two-dimensional grid, and each network node in the on-chip network can be connected to a local module.

[0052] In the embodiment of the present invention, the local module can be specifically used to transmit the routing packet from the source routing node to the target routing node, and can also be specifically used to receive the routing packet. 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 source routing node, and can specifically include a source routing node identifier and a target routing node identifier.

[0053] In the embodiment of the present invention, the local module can be connected to other network nodes in the on-chip network specifically through the connection wrapper of the node.

[0054] 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.

[0055] In the embodiment of the present invention, the local modules connected to the network nodes on chip can be used as nodes, and the nodes corresponding to all local modules can be specifically divided into source routing nodes, target routing nodes and intermediate nodes.

[0056] In an embodiment of the present invention, each node corresponding to the local module has a unique identifier, which can be determined by the address of a network node in the on-chip network to which it is specifically connected. The source routing node identifier can be specifically the address of a network node connected to the source routing node, and the target routing node identifier can be specifically the address of a network node connected to the target routing node.

[0057] In an embodiment of the present invention, the nodes passed through during the routing process of the routing packet from the source routing node to the target routing node are determined based on the address corresponding to the source routing node identifier and the address corresponding to the target routing node identifier. These nodes are the routing path for the routing packet to be transmitted from the source routing node to the target routing node.

[0058] It should be noted that after each routing decision, the node (the node that the routing packet arrives at and passes through, that is, the intermediate node) and the entry and exit information corresponding to the node (including the entry and exit occupancy status of the node) 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 circuit to be established.

[0059] In the embodiment of the present invention, a temporary circuit along the routing path is established according to a routing path composed of all nodes that a routing packet passes through when transmitted from a source routing node to a target routing node.

[0060] The method for establishing a temporary circuit based on packet switching routing provided by the present invention is based on an on-chip network connected by at least a two-dimensional grid. A temporary circuit is established and locked for one transmission through a packet switching routing process, thereby ensuring high bandwidth, fixed low latency, and transmission reliability of this transmission; multiple parallel transmission circuits can be established and locked at the same time based on the resources of the grid, thereby avoiding the problems of low scale, low routing flexibility, and excessive wiring overhead in the bus circuit of the on-chip network based on circuit switching in the prior art, as well as the problem of large transmission delay in the bus circuit of the on-chip network based on packet switching in the prior art, thereby ensuring low latency in data transmission and improving routing flexibility and wiring efficiency.

[0061] Further, in one embodiment, determining the source routing node and the target routing node according to the local module connected to each network node in the network on chip connected in at least a two-dimensional grid comprises:

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

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

[0064] Furthermore, in one embodiment, the method further includes:

[0065] The entry and exit information of each intermediate node passed by the routing packet during the routing process is added to the routing packet, wherein the entry and exit information includes the entry and exit occupancy status of the intermediate node. Any intermediate node sends the entry and exit occupancy status to the adjacent node, and the adjacent node is the intermediate node connected to the entry and exit of any intermediate node.

[0066] In the embodiment of the present invention, the source routing 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 a target routing node identifier, transmission control such as sending or receiving, and data properties.

[0067] In the embodiment of the present invention, a second device with the target routing node identifier is found from a local module connected to each network node of the network on chip, and the second device is used as the target routing node.

[0068] 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 source routing node), and the connection jacket of the local module corresponding to the routing starting point is used to start and establish dynamic routing.

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

[0070] 2. The starting point of the route can be the data sender or the data receiver;

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

[0072] 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;

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

[0074] 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 routing time and the data transmission time. When the countdown ends, clear and release the route immediately.

[0075] 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).

[0076] 1. The local module connected only as a routing intermediate node does not participate in data transmission. Its related routing and data transmission are only completed by the connection jacket of the node;

[0077] 2. The connection jacket of each routing node (including the routing start point and routing end point) uses the connection line to send the node usage status to the adjacent node (the adjacent node is the routing node directly connected to the entrance and exit of the routing node) when idle, ensuring that the adjacent node saves the usage status of the mutually connected nodes to speed up routing and reduce deadlock;

[0078] 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;

[0079] 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;

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

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

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

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

[0084] 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.

[0085] The method for establishing a temporary circuit based on packet switching routing provided by the present invention transmits the routing packet along the source routing node to the target routing node, and establishes a bus circuit along the routing path transmitted from the source routing node to the target routing node, thereby avoiding the uncertain transmission time of packet switching itself and the additional overhead of caching, and maintaining the flexibility of packet switching and the efficiency of line use.

[0086] Further, in one embodiment, determining, according to the source routing node identifier and the target routing node identifier, a routing path for transmitting the routing packet from the source routing node to the target routing node includes:

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

[0088] The routing path is determined according to the target routing direction.

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

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

[0091] In an embodiment of the present invention, the preset coding rule can be specifically encoded according to the orientation characteristics between nodes to obtain the address of each node (including the source routing node, the target routing node and the intermediate node). For example, the address of the source routing node, the target routing node and the intermediate node includes two segments of coding, the first segment of the coding address is obtained by encoding according to the east-west orientation between the nodes, and the second segment of the coding address is obtained by encoding 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.

[0092] In the embodiment of the present invention, the location information between the source routing node and the target routing node can be known according to the source coding address and the target coding address, and the target routing direction between the source routing node and the target routing node can be determined according to the location information.

[0093] During routing, based on the comparison between the target coded address (i.e., the address of the target routing 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 target routing 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 target routing 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.

[0094] In the embodiment of the present invention, the routing packet is transmitted from the source routing node to the target routing node along the target routing direction, and the routing path between the source routing node and the target routing node is determined.

[0095] Further, in one embodiment, determining the routing path according to the target routing direction includes:

[0096] Transmitting the routing packet from the source encoding address to the target encoding address along the target routing direction, determining a plurality of intermediate nodes passed by the routing packet, wherein the intermediate nodes are nodes other than the source routing node and the target routing node, and the routing packet further includes intermediate node identifiers of the plurality of intermediate nodes passed during the routing process;

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

[0098] 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 a preset coding rule;

[0099] 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;

[0100] The last routing path is determined according to the last routing direction, and the last 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.

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

[0102] 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 target routing node receives the routing packet, the local module of the target routing node unpacks it and records the contents of the routing packet, including data transmission information and routing information, in the connection jacket of the target routing node.

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

[0104] In an embodiment of 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).

[0105] In the embodiment of the present invention, the second-step routing path may be specifically determined according to the second-step routing direction, and the second-step routing direction is determined by the coded addresses of a plurality of intermediate nodes passed continuously.

[0106] In the embodiment of the present invention, the last routing path may be specifically determined according to the last routing direction, and the last routing direction is determined according to the target coding address and the coding address of the last intermediate node.

[0107] The method for establishing a temporary circuit based on packet switching routing provided by the present invention establishes a routing path for transmitting a routing packet from a source routing node to a target routing node according to a source routing node identifier and a target routing node identifier, and establishes a bus circuit based on the routing path. Its low latency and high flexibility can provide guarantee for real-time data transmission.

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

[0109] When it is determined that the routing rejection condition is met, the routing packet is refused to be transmitted from the source routing node to the target routing node. The routing rejection condition includes that the target routing node is in a data transmission state, or any intermediate node through which the routing packet is transmitted from the source routing node to the target routing node is in a busy state.

[0110] In the embodiment of the present invention, during the routing process, if it is determined that two conditions in the routing rejection condition are met, the routing packet can be refused to be transmitted from the source routing node to the target routing node. The first condition: the local module of the target routing node is in a data transmission state, which can be determined specifically based on whether the local module of the target routing node is transmitting data; the second condition: super congestion, that is, any reachable intermediate node between the source routing node and the target routing 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 all occupied (there is input but no exit).

[0111] Further, in one embodiment, after determining the routing path for transmitting the routing packet from the source routing node to the target routing node according to the source routing node identifier and the target routing node identifier, the method further includes:

[0112] Determine whether the source routing node receives a routing completion confirmation message transmitted by the target routing node within a preset time, wherein the routing completion confirmation message is sent when a local module corresponding to the target routing node receives the routing packet and is in an idle state;

[0113] If it is determined that the source routing node has not received the routing completion confirmation message within the preset time, then the routing is determined to have failed, and the routing path is deleted through the source routing node;

[0114] If it is determined that the source routing node receives the routing completion confirmation message within the preset time, it is determined that the routing is successful, and the routing path is locked through the source routing node.

[0115] In the embodiment of the present invention, the preset time may be specifically set according to a timeout counter set by the source routing node.

[0116] Before sending out a routing packet, the source routing node comprehensively considers the routing time overhead and the data transmission time overhead, sets a timeout counter, and starts a countdown. At the end of the countdown, a module report is initiated to the source routing node and each node through which the route passes. If the local module corresponding to the target routing node has not received the routing packet at the end of the countdown, the target routing node will not send a routing completion confirmation message to the source routing node. In this case, a timeout error occurs in this routing, the routing fails, and the locked routing path is revoked, and the source routing node deletes the routing path. If the local module corresponding to the target routing node receives the routing packet within the countdown time, and the local module corresponding to the target routing node is in an idle state (the local module corresponding to the target routing node is not transmitting data), a routing completion confirmation message is sent to the source routing node. After receiving the routing completion confirmation message, the source routing node can determine that the routing is successful, and the source routing node locks the routing path, that is, locks the temporary circuit established by the routing path.

[0117] Here are some examples:

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

[0119] Number of nodes R = 36;

[0120] Routing delay per node = 1 clock;

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

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

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

[0124] A timeout exception handling protocol is provided;

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

[0126] Figure 2 It is a two-dimensional grid-connected on-chip network (11), consisting of nodes R (14) and 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, north N), where the connected module M is inside the connection jacket. Figure 3 (23) in (11). (11) can be composed of multiple nodes R (14), in this case 36 nodes.

[0127] 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 line and 263-bit output line (256-bit data + 7-bit control).

[0128] Figure 2 The input and output connections (13) of the two-dimensional grid-connected on-chip network (11) 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 input line and 263 bits output line (256 bits data + 7 bits control).

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

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

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

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

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

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

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

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

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

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

[0139] 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 3 .

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

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

[0142] 2. The second circuit function of (21) is to export the circuit to reconstruct the designed circuit (29);

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

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

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

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

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

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

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

[0150] 10. The seventh circuit function of (22) is to record and update the occupancy status of adjacent nodes.

[0151] 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 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.

[0152] 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.

[0153] (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).

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

[0155] 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, compile the routing packet and complete the following: 1. (22) The node keeps recording the occupancy status of the adjacent nodes; 2. According to the address of the target routing node of the route and the occupancy status of the adjacent nodes, add the header content, record the path, temporarily lock the entry and exit paths of the node in both directions, and send the routing packet in the determined direction; 3. According to this routing method, the local module of the target routing node will eventually be found, and a circuit will be established to connect the local module of the source routing node with the local module of the target routing node; 4. The local module of the target routing node confirms the transmission request. If it is idle, it will issue a command to return the circuit lock; 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 source routing node executes the circuit cancellation command, and all nodes along the line cancel the lock and release the circuit resources; 8. The transmission application node is equipped with a timeout control. The abnormal timeout transmission will be terminated and reported to the system.

[0156] The second function is to use the circuit to transmit data: after the circuit is locked, data transmission begins on the circuit. Either the source routing node or the target routing node can send data, and 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 source routing node immediately unlocks the circuit and releases the circuit resources.

[0157] Connected module M (23): can be a processor, a functional module, a memory, or an interface module. Figure 3 .

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

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

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

[0161] 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;

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

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

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

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

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

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

[0168] according to Figure 2 (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 assumed to be 1. In the method for establishing a temporary circuit based on packet switching routing 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.

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

[0170] Table 1

[0171] ;

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

[0173] Table 2

[0174] ;

[0175] The method for establishing a temporary circuit based on packet switching routing provided by the present invention determines whether routing is successful through timeout detection, and can release the locked routing path in time when routing fails, thereby avoiding waste of resources.

[0176] The system for establishing a temporary circuit based on packet switching routing provided by the present invention is described below. The system for establishing a temporary circuit based on packet switching routing described below and the method for establishing a temporary circuit based on packet switching routing described above can be referred to each other.

[0177] Figure 4 FIG. 1 is a schematic diagram of a system for establishing a temporary circuit based on packet switching routing provided by the present invention. Figure 4 As shown, including:

[0178] A first determination module 410, a second determination module 411 and a circuit establishment module 412;

[0179] The first determination module 410 is used to determine a source routing node and a target routing node according to a local module connected to each network node in the on-chip network connected in at least a two-dimensional grid, the local module being used to transmit a routing packet of the source routing node from the source routing node to the target routing node, the routing packet at least including a source routing node identifier and a target routing node identifier;

[0180] The second determining module 411 is used to determine a routing path for transmitting the routing packet from the source routing node to the target routing node according to the source routing node identifier and the target routing node identifier;

[0181] The circuit establishing module 412 is used to establish a temporary circuit according to the routing path.

[0182] The system for establishing temporary circuits based on packet switching routing provided by the present invention is based on an on-chip network connected by at least a two-dimensional grid. A temporary circuit is established and locked for one transmission through a packet switching routing process, thereby ensuring high bandwidth, fixed low latency, and transmission reliability of this transmission; multiple parallel transmission circuits can be established and locked at the same time based on the resources of the grid, thereby avoiding the problems of low scale, low routing flexibility, and excessive wiring overhead in bus circuits of on-chip networks based on circuit switching in the prior art, as well as the problem of large transmission delay in bus circuits of on-chip networks based on packet switching in the prior art, thereby ensuring low latency in data transmission and improving routing flexibility and wiring efficiency.

[0183] Figure 5 is a schematic diagram of the physical structure of an electronic device provided by the present invention, such as Figure 5As shown, the electronic device may include: a processor 510, a communication interface 511, a memory 512 and a bus 513, wherein the processor 510, the communication interface 511 and the memory 512 communicate with each other through the bus 513. The processor 510 may call the logic instructions in the memory 512 to execute the following method:

[0184] Determine a source routing node and a target routing node according to a local module connected to each network node in the network on chip connected in at least a two-dimensional grid, the local module being used to transmit a routing packet of the source routing node from the source routing node to the target routing node, the routing packet including at least a source routing node identifier and a target routing node identifier;

[0185] Determine, according to the source routing node identifier and the target routing node identifier, a routing path for transmitting the routing packet from the source routing node to the target routing node;

[0186] A temporary circuit is established according to the routing path.

[0187] 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 this 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, and the computer software product is stored in a storage medium, including several instructions for a computer (which can be an embedded processor, a personal computer, a server, or a network processor, 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: U disk, mobile hard disk, read-only memory (ROM, Read-only Memory), random access memory (RAM, Random Access Memory), disk or optical disk, etc. Various media that can store program codes.

[0188] 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, when the program instructions are executed by a computer, the computer can execute the method for establishing a temporary circuit based on packet switching routing provided by the above-mentioned method embodiments, for example comprising:

[0189] Determine a source routing node and a target routing node according to a local module connected to each network node in the network on chip connected in at least a two-dimensional grid, the local module being used to transmit a routing packet of the source routing node from the source routing node to the target routing node, the routing packet including at least a source routing node identifier and a target routing node identifier;

[0190] Determine, according to the source routing node identifier and the target routing node identifier, a routing path for transmitting the routing packet from the source routing node to the target routing node;

[0191] A temporary circuit is established according to the routing path.

[0192] 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 execute the method for establishing a temporary circuit based on packet switching routing provided in the above embodiments, for example, including:

[0193] Determine a source routing node and a target routing node according to a local module connected to each network node in the network on chip connected in at least a two-dimensional grid, the local module being used to transmit a routing packet of the source routing node from the source routing node to the target routing node, the routing packet including at least a source routing node identifier and a target routing node identifier;

[0194] Determine, according to the source routing node identifier and the target routing node identifier, a routing path for transmitting the routing packet from the source routing node to the target routing node;

[0195] A temporary circuit is established according to the routing path.

[0196] 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 effort.

[0197] 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, 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 (which can be an embedded processor, a personal computer, a server, or a network processor, etc.) to execute the methods described in each embodiment or some parts of the embodiments.

[0198] 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 method for establishing a temporary circuit based on packet switching routing, characterized in that: include: According to the local module connected to each network node in the on-chip network connected by at least a two-dimensional grid, a source routing node and a target routing node are determined, the local module is used as a routing initiation module to transmit a routing packet of the source routing node from the source routing node to the target routing node, the routing packet at least includes a source routing node identifier and a target routing node identifier, the local module is connected to other network nodes in the on-chip network through a connection jacket of the source routing node, and the connection jacket of the local module corresponding to the source routing node is started and a dynamic route is established; Determine, according to the source routing node identifier and the target routing node identifier, a routing path for transmitting the routing packet from the source routing node to the target routing node; Establishing a temporary circuit according to the routing path; The step of determining a routing path for transmitting the routing packet from the source routing node to the target routing node according to the source routing node identifier and the target routing node identifier includes: Determine a target routing direction between the source routing node and the target routing node according to a source coding address in the source routing node identifier, a target coding address in the target routing node identifier, and a preset coding rule, wherein both the source coding address and the target coding address are determined according to the preset coding rule, and the preset coding rule is encoding according to the azimuth characteristics between nodes; Determining the routing path according to the target routing direction; The determining the routing path according to the target routing direction includes: Transmitting the routing packet from the source encoding address to the target encoding address along the target routing direction, determining a plurality of intermediate nodes passed by the routing packet, wherein the intermediate nodes are nodes other than the source routing node and the target routing node, and the routing packet further includes intermediate node identifiers of the plurality of intermediate nodes passed during the routing process; Determine the routing path according to a first routing path between the source routing node and the first intermediate node through which the routing packet passes, a second routing path between multiple intermediate nodes through which the routing packet passes continuously, and a last routing path between the last intermediate node through which the routing packet passes and the target routing node; 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 a preset coding rule; 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; The last routing path is determined according to the last routing direction, and the last 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; Each network node of the on-chip network is connected to the connection jacket of the southeast, northwest and local modules. The connection jacket is connected to the node through standard connection lines on the one hand, and is connected to the connected module through connection reconstruction configuration on the other hand. The connection jacket includes a data path and a control path. The circuit functions of the data path include an entry circuit reconstruction design circuit, an exit circuit reconstruction design circuit, and an entry and exit of the route. The circuit functions of the control path include a packing function of the source routing node, reception and unpacking analysis of routing packets of the intermediate node and the target routing node, determination of the exit route and transmission of routing packets by the source routing node and the intermediate node, a watchdog of the source routing node, completion of data transmission and reception and control by the source routing node, and record keeping and updating of the occupation status of neighboring nodes. The routing and data transmission related to the intermediate node is only completed by the connection jacket of the intermediate node; The connection jacket of each routing node 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 mutually connected nodes. 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, sends the routing packet to a neighboring node according to the address of the routing endpoint and the status of the adjacent node, and temporarily locks the route.

2. The method for establishing a temporary circuit based on packet switching routing according to claim 1, characterized in that: The method of determining a source routing node and a target routing node according to a local module connected to each network node in the network on chip connected in at least a two-dimensional grid comprises: Determine, from the local modules connected to each network node, a first device generating a transmission requirement for the routing packet, and use the first device as the source routing node, wherein the transmission requirement at least includes an identifier of the target routing node; The second device corresponding to the target routing node identifier is used as the target routing node.

3. The method for establishing a temporary circuit based on packet switching routing according to claim 1, characterized in that: The method further comprises: When it is determined that the routing rejection condition is met, the routing packet is refused to be transmitted from the source routing node to the target routing node. The routing rejection condition includes that the target routing node is in a data transmission state, or any intermediate node through which the routing packet is transmitted from the source routing node to the target routing node is in a busy state.

4. The method for establishing a temporary circuit based on packet switching routing according to any one of claims 1 to 3, characterized in that: After determining the routing path for transmitting the routing packet from the source routing node to the target routing node according to the source routing node identifier and the target routing node identifier, the method further includes: Determine whether the source routing node receives a routing completion confirmation message transmitted by the target routing node within a preset time, wherein the routing completion confirmation message is sent when a local module corresponding to the target routing node receives the routing packet and is in an idle state; If it is determined that the source routing node has not received the routing completion confirmation message within the preset time, then the routing is determined to have failed, and the routing path is deleted through the source routing node; If it is determined that the source routing node receives the routing completion confirmation message within the preset time, it is determined that the routing is successful, and the routing path is locked through the source routing node.

5. The method for establishing a temporary circuit based on packet switching routing according to any one of claims 1 to 3, characterized in that: The method further comprises: The entry and exit information of each intermediate node passed by the routing packet during the routing process is added to the routing packet, wherein the entry and exit information includes the entry and exit occupancy status of the intermediate node. Any intermediate node sends the entry and exit occupancy status to the adjacent node, and the adjacent node is the intermediate node connected to the entry and exit of any intermediate node.

6. An electronic device comprising a processor and a memory storing a computer program, characterized in that: When the processor executes the computer program, the method for establishing a temporary circuit based on packet switching routing according to any one of claims 1 to 5 is implemented.

7. 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 method for establishing a temporary circuit based on packet switching routing as claimed in any one of claims 1 to 5 is implemented.

Citation Information

Patent Citations

  • Path creation method and device for network-on-chip and electronic equipment

    CN111382115A