Network routing method

By dividing the large stream into small substreams and reordering them around the destination node, the packet out of order caused by the adaptive routing algorithm is solved, which reduces hardware overhead and improves the network load balancing capability.

CN119788588AActive Publication Date: 2025-04-08BEIJING SHUDU INFORMATION TECH CO LTD
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
CN202510294888.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-03-13
Publication Date
2025-04-08
Estimated Expiration
2045-03-13

AI Technical Summary

Technical Problem

The problem of out-of-order data packets caused by adaptive routing algorithms in multi-path transmission leads to the destination nodes that need to set up large reordering buffers, resulting in hardware overhead.

Method used

Divide the large flow into small subflows, and set up intermediate nodes around the destination node for reordering to ensure that the subflows enter the destination node in order.

Benefits of technology

Reduces the pressure on the destination node to process out-of-order data packets, reduces hardware overhead, and improves network load balancing capabilities.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119788588A_ABST
    Figure CN119788588A_ABST
Patent Text Reader

Abstract

The invention belongs to the field of chip internal design, and relates to a network routing method, which comprises the following steps of: dividing a large flow into sub-flows according to the regional congestion degree of an intermediate node adjacent to a destination node, transmitting the sub-flows into a network in sequence, and changing the out-of-order rearrangement work of a data packet of the destination node into the control of the arrived sub-flows to enter an output queue sequence. According to the method, the data packet disorder behavior caused by multi-path transmission of a self-adaptive routing algorithm can be reduced, and when the data needing to be transmitted exceeds the size of a storage space which can be provided for a data stream by a destination node or the data volume exceeds a specified numerical value, the large stream needing to be transmitted can be segmented into small sub-streams; a self-adaptive routing intermediate node mode is adjusted to better balance the network load, the pressure of a destination node for processing the disorder of data packets is distributed to a plurality of adjacent nodes, and the destination node only needs to process the disorder arrival problem of substreams.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The invention relates to a network routing method, belonging to the technical field of chip internal design. Background Art

[0002] With the rapid development of VLSI technology (very large-scale integrated circuit technology), the scale of processor chips has also been increasing. Multiple processor cores are integrated inside a single chip. As the number of cores integrated inside a single chip continues to increase, traditional buses, crossbar switches, and point-to-point communication architectures face many deficiencies such as area, power consumption, latency, and scalability, and can no longer meet the communication needs of on-chip networks. On-chip networks have good scalability and can provide high-bandwidth, low-latency communication services between cores, so they are widely used in multi-core chips.

[0003] The adaptive routing algorithm selects a route according to the load pressure of the network node, balancing the load to the entire network, thereby improving network performance and providing fault tolerance. However, multipath transmission can cause serious out-of-order transmission. The main problem is that the data packets at the receiving end 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. To this end, the present invention is committed to alleviating the problem of large reordering pressure caused by the destination node caused by adaptive routing.

[0004] The disorder is mainly caused by multi-path transmission in adaptive routing. The use of adaptive routing algorithms to select routes according to the current network status can greatly improve the network load balancing capability. Adaptive routing is also divided into shortest and non-shortest routing algorithms. The shortest routing algorithm selects the shortest path from the source node to the destination node, while the non-shortest routing algorithm selects from the shortest and non-shortest paths. The granularity of the adaptive routing algorithm of the on-chip network is data packets. Multi-path transmission causes the data packets to be unable to be transmitted in sequence to reach the destination node, especially in the case of burst traffic. Adaptive routing causes a large number of disordered data packets to accumulate at the destination node, causing great pressure. For this reason, the present invention is based on dispersing the reordering pressure of the destination node to nearby nodes, thereby reducing the pressure on the destination node caused by burst traffic. It has the following characteristics: 1) According to the degree of network congestion, the burst traffic is adaptively divided into data sub-flows of different sizes for transmission; 2) For data sub-flows of different sizes, determine the intermediate destination node of each sub-flow according to the current congestion status; 3) Dispersing the convergence points of large burst traffic to the vicinity of the destination node can reduce the pressure on reordering out-of-order data packets when the destination node converges.

[0005] Prior art related to the present invention: 1. Use deterministic routing algorithm: In the deterministic routing algorithm, data packets are transmitted along a certain route, and the data packets advance and reach the destination node in the order in which they are injected into the network, thus avoiding the disorder of data packets. However, this method easily leads to load imbalance and network congestion, which affects the transmission efficiency of the network because the data packets ignore the current network status during transmission.

[0006] 2. Introduce an out-of-order processing mechanism at the routing node to alleviate the out-of-order situation of data packets.

[0007] The parallel transmission of data packets in the network leads to data packet disorder. In order to reduce the disorder of data packets as much as possible without limiting 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 the data packets entering the node, the data packets are reordered, thereby alleviating the disorder of the data packets of the current node. However, this method brings complex hardware design to the routing node, resulting in a large hardware cost overhead.

[0008] Based on this, the present invention is proposed. Summary of the invention

[0009] The technical problems to be solved by the present invention are: 1. Divide the large transmission data flow into small data flows. Here, the source node determines the current network congestion status and the size of the data to be transmitted to determine whether to use the method of dividing the data sub-flow for transmission. The transmission method of dividing the transmission data flow into sub-flows is as follows: The amount of data to be transmitted is large, so it is divided into sub-streams for transmission; The size of the sub-flow can be determined based on a comprehensive consideration of information such as the amount of transmitted data, the location of the destination node, and the congestion status.

[0010] 2. Use small sub-flows to balance the network load. Set the intermediate nodes of the small sub-flows (the nodes that the sub-flows must pass through before entering 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 (the nodes directly connected to the destination node within 1 hop range). The sub-flow must first enter the intermediate node before entering the destination node.

[0011] 3. Reduce the pressure of out-of-order processing of data packets at the destination node. When the sub-flow enters the intermediate node, the sub-flow is reordered to ensure that the sub-flow enters the destination node in the order of the data packets.

[0012] 4. The destination node needs to ensure the order of sub-flows. 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 data packet of the sub-flow entering each port. If it is, it ensures that the first sub-flow data packet completely enters the node storage space before receiving the second sub-flow data; if it is a non-sequential sub-flow that enters first, it will continue to wait for the first sub-flow to enter.

[0013] Therefore, the method of cutting sub-flows and reordering and converging them around the destination node is adopted mainly for three reasons: (1) For a small number of bursty data flows that occupy a large amount of bandwidth and have a large impact on the network, a more even load balancing can be achieved by dividing them into sub-flows.

[0014] (2) Distribute the reordering of large data streams to the nodes surrounding the destination node, reducing the requirements for nodes to handle out-of-order processing.

[0015] (3) The destination node only needs to deal with the arrival order of sub-flows, thus converting the out-of-order problem of packets into out-of-order arrival of flows. The order of data has been ensured before the sub-flows arrive, so the destination node only needs to ensure that the sub-flows entering the storage space enter in order.

[0016] The present invention relates to a network routing method, which can be used for the internal design of chips including CPU (central processing unit), GPU (graphics processing unit) and PCIe (Peripheral Component Interconnect Express, a high-speed serial computer expansion bus standard), and in particular to a method that can reduce the pressure of nodes in processing multi-path transmission packet reordering.

[0017] The specific technical solutions of the present invention are as follows: On the one hand, a network routing method divides a large flow into sub-flows according to the degree of congestion in the area heading to the intermediate nodes adjacent to the destination node, and transmits the sub-flows into the network in sequence, thereby converting the work of reordering the data packets at the destination node into controlling the order in which the arriving sub-flows enter the output queue.

[0018] As a further improvement, the network routing method comprises the following steps: 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; 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; 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 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.

[0019] 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; 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.

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

[0021] As a further improvement, 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 S. The existing reachable adjacent nodes are set as the intermediate destination nodes of the subflow. 2) Determine the current network congestion status to S intermediate destination nodes; 3) Divide the data stream into M sub-streams, M≤S, and sort them according to the congestion status of the intermediate nodes. Among the S 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.

[0022] As a further improvement, 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.

[0023] A further improvement is the principle of setting the intermediate destination nodes of the sub-flows, which assigns the intermediate destination nodes with the lowest to the highest congestion levels according to the sequence of the sub-flows.

[0024] As a further improvement, 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 sub-flow data packet enters the intermediate node out of order, it enters the reordering queue and waits for the subsequent default index number data packet to enter the node. It enters the forwarding queue in the order of the index number and forwards the ordered data flow to the destination node.

[0025] As a further improvement, the functions implemented by the destination node include: 1) Using the source node information, flow ID number and sub-flow ID number information of the data flow entering the node, determine whether the currently entering data packet is a sub-flow of the large flow; 2) If it is an independent data stream, that is, a data stream that is not transmitted in segments, the sequence number of the data packet entering the node is used to determine whether it enters the data storage space directly or enters the reordering queue to wait for the arrival of the previous sequence packet; 3) If it is a sub-flow of a large flow, determine whether the currently entering sub-flow is the first in the sorting order according to the large flow ID and the sub-flow ID number: If it is the first in the order, receive the sub-flow to the end and wait for receiving the subsequent sub-flows from other ports; If it is not the first in the sorting, wait for the previous sub-flow to enter from other ports.

[0026] On the other hand, a network routing controller is provided, which implements the network routing method when running.

[0027] Beneficial effects of the present invention: The present invention proposes a new adaptive routing strategy to reduce the disordered behavior of data packets caused by multi-path transmission of adaptive routing algorithms. The advantage is that when the data to be transmitted exceeds the storage space size that the destination node can provide to a data stream or the data volume exceeds the specified value (i.e., a large stream), the large stream to be transmitted can be divided into small sub-streams, and the storage space requirements of the small sub-streams can meet the storage requirements of the destination node, and the adaptive routing intermediate node mode is adjusted to better balance the network load, and at the same time, the pressure of the destination node to handle the disordered data packets is distributed to multiple adjacent nodes, and the destination node only needs to deal with the disordered arrival of the sub-stream. BRIEF DESCRIPTION OF THE DRAWINGS

[0028] Figure 1 A schematic diagram of the flow of the network routing method of the present invention; Figure 2 Processing flow chart for data sender; Figure 3 Processing flow chart for intermediate nodes; Figure 4 Processing flow chart for destination node; Figure 5 This is an example of data transmission under mesh architecture; Figure 6 is a transmission path area of ​​one of the sub-streams in Example 5; Figure 7 This is the transmission path area of ​​another sub-stream in Example 5. DETAILED DESCRIPTION

[0029] In order to make the purpose, technical solution and advantages of the present invention more clearly understood, the present invention is further described in detail below in conjunction with 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 intended to limit the present invention. Example 1

[0030] The implementation process of the network routing method of the present invention is as follows: Figure 1 As shown: Step 1: According to the position 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); If N=1, it means that there is only one reachable path between the source node and the destination node, and there will be no problem of out-of-order arrival of data packets in the data flow.

[0031] 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 can be divided into at most N sub-flows.

[0032] Step 2: The source node can be divided into M sub-flows (M≤N) according to the size and position of the data flow. The intermediate nodes of the sub-flows are M different nodes selected from the N adjacent nodes. Data is transmitted from the source node to the destination node in the order of the sub-flow index numbers. If the data stream to be transmitted exceeds the storage space of a single stream at the destination node and the transmission distance needs to span multiple nodes, the data stream to be transmitted can be divided into multiple small sub-streams for transmission.

[0033] 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 adjacent destination node is sent in order.

[0034] Step 4: At the destination node of the data packet, after obtaining the sequentially entered sub-flow data from different ports, in order to ensure that the sub-flows enter the storage module space of the node in order, the incoming sub-flow is checked to see whether its previous sub-flow 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. Example 2

[0035] Processing process of the data sender (source node): like Figure 2 As shown, the functions that the source node needs to implement include: 1) 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 of reachable adjacent nodes (set as the intermediate destination nodes of the subflow) S (d 1 ...d s ).

[0036] Among them, d 1 ...d s They are represented as S corresponding reachable adjacent nodes respectively; 2) Determine the network congestion status from the current destination to S intermediate destination nodes (the destination node's neighboring nodes). The congestion status can be determined by combining local, neighboring, and global congestion information with factors such as data transmission distance to comprehensively determine the degree of network congestion to each neighboring node and sort them; If the current congestion status is ranked as d 2 d S ...d 1 , indicating that the current destination node is d 2 The congestion is the lightest, and the destination node is d 1 The congestion is the heaviest; 3) The data stream can be divided into M sub-streams (f 1 ...f M , M≤S; f 1 ...f M Refers to different sub-flows), sorted according to the congestion status of the intermediate nodes, and preferentially selected M intermediate destination nodes with less congestion among the S intermediate destination nodes, and set as the intermediate destination nodes of the M sub-flows. The principle of setting the intermediate destination nodes of the sub-flows is to assign the intermediate destination nodes with low to high congestion levels according to the order of the sub-flows. In this way, the transmission path of the sub-flows can reach the destination node relatively faster according to the congestion status of the sub-flows, and the sub-flows with the earlier sequence numbers can reach the destination node relatively faster. Example 3

[0037] Intermediate node processing: like Figure 3 As shown in the figure, the functions that the intermediate node needs to implement 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, that is, it determines according to the data packet index number.

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

[0039] 3) If the sub-flow data packet enters the intermediate node out of order, it enters the reordering queue and waits for the subsequent default index number data packet to enter the node. It enters the forwarding queue in the order of the index number and forwards the ordered data flow to the destination node. Example 4

[0040] Destination node processing flow: The functions that the destination node needs to implement include: 1) Use the source node information, flow ID (flow identification) number and sub-flow ID number of the data flow entering the node to determine whether the current incoming data packet is a sub-flow of the large flow.

[0041] 2) If it is an independent data stream, that is, a data stream that is not segmented and transmitted, it is directly determined based on the sequence number of the data packet entering the node whether to directly enter the data storage space or enter the reordering queue to wait for the arrival of the previous packet.

[0042] 3) If it is a sub-flow of a large flow, determine whether the currently entering sub-flow is the first in the sorting order according to the large flow ID and the sub-flow ID number: If it is the first one in the sorting, then the sub-stream is received to the end, and then the subsequent sub-streams from other ports are received. If it is not the first one in the sorting, it waits for the previous sub-flow to enter from other ports. Example 5

[0043] Application examples of the present invention: like Figure 5 As shown, it is one of the application examples of the present invention (Note: the solution of the present invention is not limited to the topology architecture). In the mesh (mesh topology) architecture, multiple data packets are sent from the source node 9 to the destination node 53 to form a large data flow.

[0044] 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 the source node 9 must pass through when transmitting data to the node 53. Therefore, the large flow of the source node can be divided into two sub-flows with intermediate destination nodes 45 and 52 respectively.

[0045] like Figure 6 , 7As shown, assuming that after a comprehensive congestion judgment is made on possible path congestion, it is found that the congestion level in the area to the intermediate destination node 52 is relatively light, the subflow id (flow identifier) ​​to the intermediate node 52 is 1, and the subflow id (flow identifier) ​​to the intermediate node 45 is 2.

[0046] Source node 9, in the order of subflow ids, first sends subflow 1 with subflow id (flow identifier) ​​1 and intermediate destination node 52. After completing the sending of subflow 1, it sends the subflow with subflow id (flow identifier) ​​2 and intermediate destination node 45.

[0047] After the intermediate nodes 52 and 45 receive the data packets of the sub-flow 1 and the sub-flow 2 respectively, they reorder the disordered sequences of their respective sub-flows respectively.

[0048] At the destination node, if the data packet with subflow id 2 transmitted from node 45 is received first, it will not be received into the node's storage queue until the data packet with subflow id 1 transmitted from node 52 is received and the data reception and storage of subflow 1 are completed. Then, the data packet of subflow 2 transmitted from node 52 is received. In this way, the order of the data flows entering the storage queue is guaranteed.

[0049] The above description is only a preferred embodiment of the present invention and is not intended to limit the present invention. Any modifications, equivalent substitutions and improvements made within the spirit and principles of the present invention should be included in 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 sequence, the work of reordering the data packets at the destination node is transformed into controlling the order in which the arriving sub-flows enter the output queue.

2. A network routing method according to claim 1, characterized in that: 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; 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; 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 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.

3. A network routing method according to claim 2, characterized in that: 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 problem of out-of-order arrival of data packets in the data flow; 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.

4. A network routing method according to claim 2, characterized in that: 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.

5. A network routing method according to claim 2, 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 S. The existing reachable adjacent nodes are set as the intermediate destination nodes of the subflow. 2) Determine the current network congestion status to S intermediate destination nodes; 3) Divide the data stream into M sub-streams, M≤S, and sort them according to the congestion status of the intermediate nodes. Among the S 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.

6. A network routing method according to claim 5, 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.

7. A network routing method according to claim 5, 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 according to the sequence of sub-flows.

8. A network routing method according to claim 2, 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 sub-flow data packet enters the intermediate node out of order, it enters the reordering queue and waits for the subsequent default index number data packet to enter the node. It enters the forwarding queue in the order of the index number and forwards the ordered data flow to the destination node.

9. A network routing method according to claim 2, characterized in that: The functions implemented by the destination node include: 1) Using the source node information, flow ID number and sub-flow ID number information of the data flow entering the node, determine whether the currently entering data packet is a sub-flow of the large flow; 2) If it is an independent data stream, that is, a data stream that is not transmitted in segments, the sequence number of the data packet entering the node is used to determine whether it enters the data storage space directly or enters the reordering queue to wait for the arrival of the previous sequence packet; 3) If it is a sub-flow of a large flow, determine whether the currently entering sub-flow is the first in the sorting order according to the large flow ID and the sub-flow ID number: If it is the first in the order, receive the sub-flow to the end and wait for receiving the subsequent sub-flows from other ports; If it is not the first in the sorting, wait for the previous sub-flow to enter from other ports.

10. A network routing controller, characterized in that: The network routing controller implements a network routing method as described in any one of claims 1-9 when running.

Citation Information

Patent Citations

  • Data packet transmission method and apparatus

    CN109120545A

  • Sequence-aware network-on-chip routing method and network router

    CN111030927A

  • Network reliability guarantee method and device based on self-adaptive hop-by-hop cache

    CN119155000A

  • Multi-substream parallel forwarding scheduling method for novel intelligent computing center network

    CN119520378A

  • Routing of data in network

    US20180131601A1