A network routing method
By dividing the large stream into substreams and reordering it around the destination node, the problem of data packet out of order caused by adaptive routing algorithms is solved, and network load balancing and pressure reduction of destination nodes are achieved.
Patent Information
- Application Number
- CN202510294888.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-03-13
- Publication Date
- 2025-07-25
- Estimated Expiration
- 2045-03-13
AI Technical Summary
The problem of out-of-order data packets caused by adaptive routing algorithms in multi-core chips, especially in the case of burst traffic, adaptive routing causes a large number of out-of-order data packets to accumulate on the destination node, causing greater processing pressure.
The large flow is divided into small subflows and reordered around the destination node. The intermediate node with light congestion is selected through the adaptive routing algorithm to ensure that the subflows are transmitted in sequence and reduce the pressure of the destination node to handle out-of-order.
It effectively reduces the out-of-order behavior of data packets caused by multi-path transmission of adaptive routing algorithms, balances network load, and reduces the reordering pressure of destination nodes.
Smart Images

Figure CN119788588B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a network routing method, belonging to the technical field of internal chip design. Background Art
[0002] With the rapid development of VLSI technology (Very Large Scale Integration technology), the scale of processor chips has been continuously increasing. Multiple processor cores are integrated inside a single chip. As the number of cores integrated inside a single chip continues to increase, traditional bus, crossbar, and point-to-point communication architectures face many deficiencies such as area, power consumption, latency, and scalability, and can no longer meet the communication requirements of on-chip networks. On-chip networks have good scalability and can provide high-bandwidth and low-latency communication services between cores, so they are widely used in multi-core chips.
[0003] Adaptive routing algorithms select routes based on the load pressure of network nodes, balance the load across the entire network, thereby improving network performance and providing fault tolerance. However, multi-path transmission can cause serious out-of-order transmission. The main problem lies in the data packets at the receiving end, which can only be received in sequence. Considering the uncertainty of the arrival time of out-of-order data packets, a large reordering buffer needs to be set at the node, resulting in a large hardware overhead. Therefore, the present invention is committed to alleviating the problem of relatively large reordering pressure caused by the destination node in adaptive routing.
[0004] Out-of-order is mainly caused by multi-path transmission in adaptive routing. Using an adaptive routing algorithm to select routes according to the current network state can well improve the network load balancing ability. Adaptive routing is also divided into shortest and non-shortest routing algorithms. The shortest routing algorithm selects the shortest path between the source node and the destination node, while the non-shortest routing algorithm selects from the shortest and non-shortest paths. The granularity of the adaptive routing algorithm for on-chip networks is data packets. Multi-path transmission causes data packets to be unable to be transmitted to the destination node in sequence. Especially in the case of burst traffic, adaptive routing causes a large number of out-of-order data packets to accumulate at the destination node, causing great pressure. Therefore, the present invention is based on dispersing the reordering pressure of the destination node to nearby nodes, thereby reducing the pressure brought by burst traffic to the destination node. It has the following characteristics:
[0005] 1), adaptively split burst traffic into data sub-streams of different sizes according to the network congestion degree for transmission;
[0006] 2), for data sub-streams of different sizes, determine the intermediate destination node of each sub-stream according to the current congestion state;
[0007] 3), disperse the convergence point of large burst traffic to the periphery of the destination node, which can reduce the reordering pressure on out-of-order data packets when converging at the destination node.
[0008] Prior art related to the present invention:
[0009] 1. Using a deterministic routing algorithm:
[0010] In the deterministic routing algorithm, data packets are transmitted along a determined route. The data packets advance in the order of injection into the network and reach the destination node, thus avoiding the out-of-order behavior of data packets. However, in this method, since the data packets ignore the current network state during the transmission process, it is easy to cause uneven load, resulting in network congestion and affecting the transmission efficiency of the network.
[0011] 2. Introducing an out-of-order handling mechanism at the routing node to mitigate the out-of-order situation of data packets.
[0012] The parallel transmission of data packets in the network leads to out-of-order data packets. In order to mitigate the out-of-order degree of data packets as much as possible without restricting the diversity of paths and parallel transmission, the internal structure of the router is adjusted. By adjusting the path cross-switch allocation strategy of the routing node according to the order of data packets entering the node, data packet reordering is performed, thereby alleviating the out-of-order situation of data packets at the current node. However, this method brings complex hardware design to the routing node, resulting in a large hardware cost overhead.
[0013] Based on this, the present invention is proposed. Summary of the Invention
[0014] Technical problems to be solved by the present invention:
[0015] 1. Splitting large transmission data traffic into small data traffic. Here, the source node is used to judge the current network congestion state and the size of the data to be transmitted currently, so as to determine whether to adopt the method of splitting data sub-streams for transmission. The method of splitting the transmission data stream into sub-streams is as follows:
[0016] When the amount of data to be transmitted currently is large, select the method of splitting into sub-streams for transmission;
[0017] The size of the sub-stream can be determined by comprehensively considering information such as the size of the transmission data volume, the position of the destination node, and the congestion state.
[0018] 2. Using small sub-streams to balance the network load. Set the intermediate nodes of the small sub-streams (referring to the nodes that must be aggregated before the sub-streams enter the destination node) as the adjacent nodes of the destination node, that is, when using the adaptive routing algorithm, it is necessary to pass through the surrounding adjacent nodes (nodes directly connected to the destination node within 1 hop range), and the sub-streams must first enter the intermediate nodes before entering the destination node.
[0019] 3. Reduce the pressure on the destination node to handle out-of-order packets. When a sub-flow enters an intermediate node, reorder the sub-flow to ensure that the sub-flow enters the destination node in the order of the packets.
[0020] 4. The destination node needs to ensure the order of the sub-flows. The sub-flows will enter the destination node from different ports of the node. The node determines whether it is the first sub-flow component of the entire large flow by judging the first packet of the sub-flow entering each port. If it is, after ensuring that the first sub-flow packet completely enters the node storage space, then receive the second sub-flow data; if the first-entering sub-flow is not in order, continue to wait for the first sub-flow to enter.
[0021] Therefore, the reason for adopting this method of splitting sub-flows and reordering and converging around the destination node is mainly due to three considerations:
[0022] (1). For a small number of burst data flows that occupy a large bandwidth and have a greater impact in the network, a more uniform load balancing is achieved by splitting the sub-flows.
[0023] (2). Disperse the out-of-order reordering work of the large data flow to the surrounding nodes of the destination node, reducing the requirements for the node to handle out-of-order.
[0024] (3). The destination node only needs to handle the problem of the arrival order of the sub-flows. Therefore, the out-of-order problem of the packets is transformed into the out-of-order arrival of the flows. Since the data order has been ensured before the sub-flows arrive, the destination node only needs to ensure that the sub-flows entering the storage space enter in order.
[0025] The present invention relates to a network routing method, which can be used in the internal design of chips such as CPU (Central Processing Unit), GPU (Graphics Processing Unit), and PCIe (Peripheral Component Interconnect Express, a high-speed serial computer expansion bus standard), and particularly relates to a method that can reduce the pressure on the node to handle the reordering of multi-path transmission packets.
[0026] The specific technical solution of the present invention is as follows:
[0027] On the one hand, a network routing method divides a large flow into sub-flows according to the congestion degree of the area of the intermediate node adjacent to the destination node, and transmits the sub-flows into the network in order, changing the out-of-order reordering work of the destination node packets into controlling the order of the arriving sub-flows entering the output queue.
[0028] Further improvement, the network routing method includes the following steps:
[0029] Step 1. According to the positional relationship between the source node and the destination node and the rules of the adaptive routing algorithm, determine N adjacent nodes reachable by the current destination node, where N≥1;
[0030] Step 2: The source node is divided into M sub-flows according to the size and position relationship of the data flow, M≤N, and the intermediate nodes of the sub-flows are M different nodes selected from the N adjacent nodes; the id index numbers are set for the sub-flows in ascending order of congestion, and the data is transmitted from the source node to the destination node in the order of the index numbers from small to large;
[0031] Step 3: When the data packets of the sub-flow arrive at the preset intermediate node, the intermediate node re-arranges the sub-flow according to the order in which the data packets arrive, ensuring that the data transmitted by the intermediate node to the next hop adjacent destination node is sent in order;
[0032] Step 4: At the destination node of the data packet, after obtaining the sub-stream data that enters sequentially from different ports, check whether the previous sub-stream of the incoming sub-stream has completely entered the storage space:
[0033] If yes, put the new sub-stream data into the storage space in order;
[0034] If not, wait for the preceding substream to enter before putting it into the storage space.
[0035] As a further improvement, in step 1, if N=1, it means that there is only one reachable path between the source node and the destination node, and there is no out-of-order problem of data packets arriving in the data flow;
[0036] If N>1, it means that there are at least N reachable paths between the source node and the destination node, and the data flow is divided into at most N sub-flows.
[0037] As a further improvement, in step 2, if the data stream to be transmitted exceeds the storage space of the destination node for a single stream and the transmission distance needs to span multiple nodes, the data stream to be transmitted is divided into multiple sub-streams for transmission.
[0038] As a further improvement, the functions implemented by the source node include:
[0039] 1) Determine the number of adjacent nodes from the source node to the destination node. According to the current adaptive routing rules, determine the number of reachable adjacent nodes N. The existing reachable adjacent nodes are set as the intermediate destination nodes of the subflow.
[0040] 2) Determine the current network congestion status to N intermediate destination nodes;
[0041] 3) Divide the data stream into M sub-streams, M≤N, and sort them according to the congestion status of the intermediate nodes. Among the N intermediate destination nodes, M intermediate destination nodes with less congestion are preferentially selected and set as the intermediate destination nodes of the M sub-streams.
[0042] For further improvement, the determination of the network congestion state is to judge the network congestion degree to each adjacent node by using local, adjacent and global congestion information in combination with the data transmission distance factor, and perform sorting.
[0043] For further improvement, the principle for setting the intermediate destination nodes of sub - flows is to assign intermediate destination nodes with low to high congestion degrees to sub - flows in the order of the sub - flows.
[0044] For further improvement, the functions implemented by the intermediate node include:
[0045] 1), After receiving a sub - flow, the intermediate node determines the order of the data packets sent to the destination node according to the order in which the sub - flow data packets enter;
[0046] 2), If the sub - flow data packets enter the intermediate node in order, the intermediate node does not perform disordered re - sorting and directly enters the forwarding queue for forwarding to the final adjacent destination node;
[0047] 3), If the packet sequence numbers of the sub - flow data packets entering the intermediate node are disordered, they enter the re - sorting queue, wait for the subsequent packets with default index numbers to enter the node, enter the forwarding queue in the order of the index numbers, and forward the data flow that has been arranged in order to the destination node.
[0048] For further improvement, the functions implemented by the destination node include:
[0049] 1), Using the source node information of the data flow entering the node, the ID number of the data flow, and the ID number information of the sub - flow, judge whether the currently entering data packet is a sub - flow of a large flow;
[0050] 2), If it is an independent data flow, that is, a data flow that is not split for transmission, directly judge whether it directly enters the data storage space or enters the re - sorting queue to wait for the arrival of the previous packet according to the sequence number of the data packet entering the node;
[0051] 3), If it is a sub - flow of a large flow, judge whether the currently entering sub - flow is the one with the earliest sorting according to the ID number of the large flow and the ID number of the sub - flow:
[0052] If it is the one with the earliest sorting, receive the sub - flow and wait to receive the subsequent sub - flows from other ports;
[0053] If it is not the one with the earliest sorting, wait for the previous sub - flow to enter from other ports.
[0054] On the other hand, a network routing controller, which implements the network routing method when running.
[0055] The beneficial effects of the present invention:
[0056] The present invention proposes a new adaptive routing strategy to reduce the packet out-of-order behavior caused by multi-path transmission of the adaptive routing algorithm. Its advantage lies in that when the data to be transmitted exceeds the storage space size that the destination node can provide for a data stream or the data volume exceeds the specified value (i.e., large flow), the large flow to be transmitted can be segmented into small sub-flows, and the storage space requirements of the small sub-flows can meet the storage requirements of the destination node. At the same time, the adaptive routing intermediate node method is adjusted to better balance the network load, and the pressure of the destination node to handle packet out-of-order is distributed to multiple adjacent nodes, and the destination node only needs to handle the out-of-order arrival problem of the sub-flows. BRIEF DESCRIPTION OF THE DRAWINGS
[0057] Figure 1 is a schematic flow chart of the network routing method described in the present invention;
[0058] Figure 2 is a processing flow chart of the data sender;
[0059] Figure 3 is a processing flow chart of the intermediate node;
[0060] Figure 4 is a processing flow chart of the destination node;
[0061] Figure 5 is a data transmission example under the mesh architecture;
[0062] Figure 6 is the transmission path area of one of the sub-flows in Embodiment 5;
[0063] Figure 7 is the transmission path area of another sub-flow in Embodiment 5. DETAILED DESCRIPTION OF THE EMBODIMENTS
[0064] In order to make the objectives, technical solutions and advantages of the present invention clearer, the present invention will be further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present invention and are not used to limit the present invention. Embodiment 1
[0065] The implementation process of the network routing method described in the present invention is as Figure 1 shown:
[0066] Step 1: According to the positional relationship between the source node and the destination node and the rules of the adaptive routing algorithm, determine that the number of adjacent nodes reachable by the current destination node is N (N≥1);
[0067] If N = 1, it means that there is only one reachable path between the source node and the destination node, and there is no problem of out-of-order arrival of data packets in the data stream.
[0068] If N > 1, it means that there are at least N reachable paths between the source node and the destination node, and the data stream can be divided into at most N sub-streams.
[0069] Step 2: The source node can be divided into M sub-streams according to the data stream size and positional relationship (M ≤ N). The intermediate nodes of the sub-streams are M different nodes selected from the N adjacent nodes; in the order of the sub-stream index numbers, data is transmitted from the source node to the destination node.
[0070] If the data stream to be transmitted exceeds the storage space of the destination node for a single stream and the transmission distance needs to span multiple nodes, the data stream to be transmitted can be split into multiple small sub-streams for transmission.
[0071] Step 3: When the data packets of the sub-stream reach the preset intermediate node, the intermediate node performs out-of-order reordering and transmission on the sub-stream according to the order of arrival of the data packets, ensuring that the data transmitted by the intermediate node to the next-hop adjacent destination node is sent in order.
[0072] Step 4: At the destination node of the data packet, after obtaining the sub-stream data entering in order from different ports, in order to ensure that the sub-streams enter the storage module space of the node in order, it is necessary to check whether the previous sub-stream has completely entered the storage space for the incoming sub-stream:
[0073] If so, the new sub-stream data is put into the storage space in order;
[0074] If not, wait until the previous sub-stream enters and then put it into the storage space. Embodiment 2
[0075] Processing procedure of the data sender (source node):
[0076] As Figure 2 shown, the functions that the source node needs to implement include:
[0077] Determine the number of adjacent nodes from the source node to the destination node. According to the current adaptive routing rule (shortest or non-shortest), determine the number N (d 1 ...d N ) of the existing reachable adjacent nodes (set as the intermediate destination nodes of the sub-streams).
[0078] Among them, d 1 ...d N respectively represent N corresponding reachable adjacent nodes;
[0079] Judge the network congestion status of the current to the N intermediate destination nodes (adjacent nodes of the destination node). The judgment of the congestion status can use local, adjacent and global congestion information and combine factors such as the data transmission distance to comprehensively judge the network congestion degree of going to each adjacent node and perform sorting;
[0080] If the current congestion state is sorted as d 2 d N ...d 1 It means that the current destination node is d 2 has the lightest congestion, and the destination node is d 1 has the heaviest congestion;
[0081] 3), The data stream can be split into M sub-streams (f 1 ...f M , M ≤ N; f 1 ...f M refers to different sub-streams). According to the congestion state sorting of the intermediate nodes, among the N intermediate destination nodes, preferentially select M intermediate destination nodes with lighter congestion levels and set them as the intermediate destination nodes of the M sub-streams. The setting principle of the intermediate destination nodes of the sub-streams is to assign the intermediate destination nodes with congestion levels from low to high in the order of the sub-streams. In this way, according to the congestion state, the transmission path of the sub-stream with a smaller serial number can reach the destination node relatively faster. Embodiment 3
[0082] Intermediate node processing process:
[0083] As Figure 3 shown, the functions that the intermediate node needs to implement include:
[0084] 1), After receiving the sub-stream, the intermediate node determines the order of the data packets sent to the destination node according to the order in which the sub-stream data packets enter, that is, it makes a judgment according to the data packet index number.
[0085] 2), If the sub-stream data packets enter the intermediate node in order, the intermediate node does not perform out-of-order reordering and directly enters the forwarding queue and forwards to the final adjacent destination node.
[0086] 3), If the data packet index numbers of the sub-stream data packets entering the intermediate node are out of order, they enter the reordering queue, wait for the subsequent default index number data packets to enter the node, enter the forwarding queue in the order of the index numbers, and forward the data streams that have been arranged in order to the destination node. Embodiment 4
[0087] Destination node processing process:
[0088] The functions that the destination node needs to implement include:
[0089] 1), Using the source node information of the data stream entering the node, the ID number of the data stream (ID refers to the identifier of the data stream, abbreviated as stream identifier), and the ID number of the sub-stream, etc., to judge whether the currently entering data packet is a sub-stream of a large stream.
[0090] 2), If it is an independent data stream, that is, a data stream transmitted without segmentation, it is directly determined whether to directly enter the data storage space or enter the reordering queue to wait for the arrival of the previous packet according to the sequence number of the packet entering the node.
[0091] 3), If it is a sub-stream of a large stream, it is judged whether the currently entering sub-stream is the one with the earliest sorting according to the ID number of the large stream and the ID number of the sub-stream:
[0092] If it is the one with the earliest sorting, then receive this sub-stream and wait to receive the subsequent sub-streams from other ports;
[0093] If it is not the one with the earliest sorting, then wait for the previous sub-stream to enter from other ports. Embodiment 5
[0094] Application example of the present invention:
[0095] As Figure 5 shown, it is one of the application examples of the present invention (note: the solution of the present invention is not limited to the topological structure). Under the mesh (mesh topology) structure, multiple data packets are sent from the source node 9 to the destination node 53, forming a large data stream.
[0096] Among them, according to the principle of the shortest adaptive routing algorithm (the present invention is not limited to the shortest adaptive routing algorithm), the adjacent nodes 45 and 52 of the destination node are two intermediate nodes that must be passed through when the source node 9 transmits data to the node 53. Therefore, the large stream of the source node can be divided into two sub-streams with the intermediate destination nodes being 45 and 52 respectively.
[0097] As Figure 6 、 7 shown, assuming that after comprehensive congestion judgment on possible path congestion, it is obtained that the regional congestion degree to the intermediate destination node 52 is relatively light, then the sub-stream id (flow identifier) going to the intermediate node 52 is 1, and the sub-stream id (flow identifier) going to the intermediate node 45 is 2.
[0098] The source node 9, in the order of the size of the sub-stream id, first sends the sub-stream 1 with the intermediate destination node 52 and the sub-stream id (flow identifier) of 1. After completing the transmission of sub-stream 1, then send the sub-stream with the intermediate destination node 45 and the sub-stream id (flow identifier) of 2.
[0099] After the intermediate nodes 52 and 45 respectively receive the data packets of sub-stream 1 and sub-stream 2, they respectively reorder the out-of-order of their respective sub-streams.
[0100] At the destination node, if a data packet with sub-stream ID 2 passed from node 45 is received first, it will not be received into the storage queue of the node until a data packet with sub-stream ID 1 passed from node 52 is received, and after the data reception and storage of sub-stream 1 are completed, the data packet of sub-stream 2 passed from node 52 is received continuously. This ensures the order of the data stream entering the storage queue.
[0101] The above are only the preferred embodiments of the present invention and are not intended to limit the present invention. Any modifications, equivalent replacements, and improvements made within the spirit and principle of the present invention shall be included within the protection scope of the present invention.
Claims
1. A network routing method, characterized in that: By dividing the large flow into sub-flows according to the degree of congestion in the area of the intermediate nodes adjacent to the destination node, and transmitting the sub-flows into the network in order, the work of reordering the packets at the destination node is transformed into controlling the order in which the arriving sub-flows enter the output queue; The following steps are involved: Step 1: According to the position relationship between the source node and the destination node and the rules of the adaptive routing algorithm, determine the N adjacent nodes that are reachable from the current destination node, where N>1, indicating that there are at least N reachable paths between the source node and the destination node, and the data flow is divided into at most N sub-flows; Step 2: The source node divides the data flow into M sub-flows according to the size and position relationship of the data flow, M≤N, and the intermediate nodes of the sub-flows are M different nodes selected from the N adjacent nodes; ID numbers are set for the sub-flows according to the congestion degree from small to large, and data is transmitted from the source node to the destination node in the order of the index number from small to large; Step 3: When the data packets of the sub-flow arrive at the preset intermediate node, the intermediate node re-arranges the sub-flow according to the order in which the data packets arrive, ensuring that the data transmitted by the intermediate node to the next hop adjacent destination node is sent in order; Step 4: At the destination node of the data packet, after obtaining the sub-stream data that enters sequentially from different ports, check whether the previous sub-stream of the incoming sub-stream has completely entered the storage space: If yes, put the new sub-stream data into the storage space in order; If not, wait for the preceding substream to enter before putting it into the storage space.
2. The network routing method according to claim 1, wherein In step 2, if the data stream to be transmitted exceeds the storage space of the destination node for a single stream and the transmission distance needs to span multiple nodes, the data stream to be transmitted is divided into multiple sub-streams for transmission.
3. A network routing method according to claim 1, characterized in that, The functions implemented by the source node include: 1) Determine the number of adjacent nodes from the source node to the destination node. According to the current adaptive routing rules, determine the number of reachable adjacent nodes N. The existing reachable adjacent nodes are set as the intermediate destination nodes of the subflow. 2) Determine the current network congestion status to N intermediate destination nodes; 3) Divide the data stream into M sub-streams, M≤N, and sort them according to the congestion status of the intermediate nodes. Among the N intermediate destination nodes, M intermediate destination nodes with less congestion are preferentially selected and set as the intermediate destination nodes of the M sub-streams.
4. A network routing method according to claim 3, characterized in that The network congestion status is determined by using local, adjacent and global congestion information combined with data transmission distance factors to determine the degree of network congestion to each adjacent node and sort them.
5. A network routing method according to claim 3, characterized in that The principle of setting the intermediate destination nodes of sub-flows is to assign the intermediate destination nodes with the lowest congestion level to the highest congestion level in the order of the sub-flows.
6. The network routing method according to claim 1, characterized in that The functions implemented by the intermediate node include: 1) After receiving the sub-flow, the intermediate node determines the order of data packets sent to the destination node according to the order in which the sub-flow data packets enter; 2) If the sub-flow data packets enter the intermediate node in order, the intermediate node will directly enter the forwarding queue without reordering and forward them to the final adjacent destination node; 3), If the packet index number of the sub-flow data packet entering the intermediate node enters out of order, it enters the reordering queue, waits for the subsequent data packet with the default index number to enter the node, enters the forwarding queue in the order of the index number, and forwards the data flow that has been arranged in order to the destination node.
7. A network routing method according to claim 1, characterized in that The functions implemented by the destination node include: 1), Using the source node information of the data flow entering the node, the ID number of the data flow, and the ID number information of the sub-flow, determine whether the currently entering data packet is a sub-flow of the large flow; 2), If it is an independent data flow, that is, a data flow that is not transmitted after being segmented, directly determine whether it directly enters the data storage space or enters the reordering queue to wait for the arrival of the previous packet according to the sequence number of the data packet entering the node; 3), If it is a sub-flow of the large flow, determine whether the currently entering sub-flow is the first in order according to the ID number of the large flow and the ID number of the sub-flow: If it is the first in order, receive the sub-flow and wait for the subsequent sub-flows from other ports; If it is not the first in order, wait for the previous sub-flow to enter from other ports.
Citation Information
Patent Citations
Multi-substream parallel forwarding scheduling method for novel intelligent computing center network
CN119520378A