Virtual Channel Balancing in Ring-Based Topology
Dual deadlines and queuing structures in ring-based networks address deadlocks and unbalanced traffic, enhancing network performance by efficiently managing virtual channels.
Patent Information
- Application Number
- JP2023577729
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2022-10-14
- Filing Date
- 2023-06-08
- Publication Date
- 2025-08-01
- Estimated Expiration
- 2043-06-08
AI Technical Summary
Ring-based network topologies suffer from deadlocks and unbalanced data packet distribution due to the use of virtual channels, leading to performance degradation and throughput loss.
Implementing dual deadlines in a ring-based network to balance virtual channel resources by switching data packets to a second virtual channel before crossing a dateline, using queuing structures like turn and dimension queues to manage packet routing.
Ensures deadlock-free operation and improves network performance by shortening dependency chains and balancing traffic across virtual channels.
Smart Images

Figure 0007717196000003 
Figure 0007717196000004 
Figure 0007717196000005
Abstract
Description
Technical Field
[0001] Cross-reference This application is a continuation of U.S. Patent Application No. 17 / 966,134, filed on October 14, 2022, the disclosure of which is incorporated herein by reference.
Background Art
[0002] Background Ring-based network topologies, such as multidimensional toruses and twisted torus networks, are commonly used in on-chip and off-chip networks. Those network topologies may have deadlocks. A deadlock occurs when a chain of packets waits for each other to progress through the network, forming a cycle where none of the packets in that chain can progress. A common approach to ensuring a deadlock-free network topology involves using a dateline or red-rover algorithm, both of which rely on virtual channels. However, using virtual channels can cause the distribution of data packets throughout the network to become unbalanced, which can degrade the performance of the network topology. Additionally, using a dateline can sometimes lengthen virtual-channel-dependent chains, which can lead to increased unfairness and throughput loss as the number of nodes per dimension increases.
Summary of the Invention
[0003] Summary This technology aims to route data packets through a ring-based network without deadlocks. In one aspect, this technology is directed to a method for routing data packets within a ring network, the method including receiving, in a first queuing structure within a first node of the ring network, a data packet scheduled to be sent to a destination node. The method can also include the first node determining the number of hops that the data packet will cross when the data packet is sent from the first node of the ring network to the destination node. The method can also include the first node comparing the number of hops with a hop threshold to determine whether the number of hops is less than or equal to the hop threshold.
[0004] The method can also include the first node sending the data packet to a dimensional queuing structure for a first virtual channel within a second node of the ring network if (i) the number of hops is greater than the hop threshold, or to a dimensional queuing structure or a turn queuing structure for a second virtual channel within the second node if (ii) the number of hops is less than or equal to the hop threshold.
[0005] In some examples, the first queuing structure within the first node is a turn queuing structure.
[0006] In some examples, the data packet is sent to a turn queuing structure within the second node when the second node is the destination node.
[0007] In some examples, the network includes a first deadline and a second deadline. In some examples, the first deadline and the second deadline are each disposed between a pair of network nodes on the ring network, and the number of nodes disposed between the first deadline and the second deadline matches the number of nodes disposed between the second deadline and the first deadline.
[0008] In some examples, the first node can also determine whether a data packet will cross the dateline when the data packet is sent from the first node to the destination node. In some examples, when it is determined that the data packet will cross the dateline, the data packet is sent to a dimension queuing structure for a first virtual channel within the second node.
[0009] In some examples, the method further includes: the second node, after receiving the data packet, determining a second number of hops that the data packet will cross when the data packet is sent from the second node of the ring network to the destination node; the second node comparing the number of hops with a hop threshold to determine whether the second number of hops is less than or equal to the hop threshold; and the second node sending the data packet to (i) a dimension queuing structure for a first virtual channel within a third node of the ring network if the number of hops is greater than the hop threshold, or (ii) a dimension queuing structure or a turn queuing structure for a second virtual channel within the third node if the number of hops is less than or equal to the hop threshold.
[0010] In some examples, the data packet can be sent to a turn queuing structure within the third node when the third node is the destination node.
[0011] In some examples, the network is a ring network, and the ring network is a single - dimension torus or a twisted - torus network.
[0012] In another aspect, the technology can include a ring network that includes a first node having a first queuing structure. The ring network can include a second node having a dimensional queuing structure for a first virtual channel and a dimensional queuing structure for a second virtual channel. The ring network can also include a destination node, and the first node is configured to receive, in the first queuing structure, data packets scheduled to be sent to the destination node. The ring network can also include a destination node. The first node can be configured to determine the number of hops that a data packet will cross when the data packet is sent from the first node of the ring network to the destination node, and compare the number of hops with a hop threshold to determine whether the number of hops is less than or equal to the hop threshold.
[0013] The first node of the ring network can be configured to send the data packet to the dimensional queuing structure for the first virtual channel if (i) the number of hops is greater than the hop threshold, or to the dimensional queuing structure for the second virtual channel if (ii) the number of hops is less than or equal to the hop threshold.
[0014] In some examples, the first queuing structure within the first node of the ring network can be a turn queuing structure.
[0015] In some examples, the ring network can include a first deadline and a second deadline. In some examples, the first deadline and the second deadline are each disposed between a pair of network nodes on the ring network, and the number of nodes disposed between the first deadline and the second deadline matches the number of nodes disposed between the second deadline and the first deadline. In some examples, the ring network includes more than 8 nodes.
[0016] In some examples, the first node can further be configured to determine whether a data packet will cross the dateline when the data packet is sent from the first node to the destination node.
[0017] In some examples, after receiving a data packet, the second node determines a second number of hops that the data packet will cross when the data packet is sent from the second node of the ring network to the destination node, and the second node compares the number of hops with a hop threshold to determine whether the second number of hops is less than or equal to the hop threshold, and (i) if the number of hops is greater than the hop threshold, sends the data packet to a dimension queuing structure for a first virtual channel in a third node of the ring network, or (ii) if the number of hops is less than or equal to the hop threshold, sends the data packet to a dimension queuing structure or a turn queuing structure for a second virtual channel in the third node.
[0018] In some examples, the data packet is sent to a turn queue structure in the third node when the third node is the destination node.
[0019] In some examples, the ring network is a toroidal ring or a twisted toroid.
[0020] Other technical features will be readily apparent to those skilled in the art from the following figures, description, and claims.
[0021] A more complete understanding of the present disclosure and its attendant advantages will be readily obtained by referring to the following detailed description, which is to be considered in conjunction with the accompanying drawings.
Brief Description of the Drawings
[0022]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Mode for Carrying Out the Invention
[0023] Detailed Description The technology described herein aims to improve the performance of a ring-based network topology while ensuring deadlock-free operation by shortening the dependency chain and efficiently load-balancing the virtual channel (VC) resources of the network. In this regard, the dependency chain can be shortened by adding an additional date line such that the two date lines are separated by half the diameter of the ring. Improving the efficiency of load balancing between VC resources can include switching a data packet to a second VC at any time as long as the data packet does not cross one of the date lines.
[0024] In a ring-based network topology, the nodes forming the network can be connected via physical links such as wires, cables, traces, etc. Each physical link can transmit data packets on any number of VCs. In this regard, each physical link between a pair of nodes can communicate data packets via one or more VCs. For example, also, as shown in the ring network 100 of FIG. 1, each node pair is connected via a physical link. For example, node 0 101 is connected to node 1 103 via physical link 102, node 1 103 is connected to node 2 105 via physical link 104, node 2 105 is connected to node 3 107 via physical link 106, node 3 107 is connected to node 4 109 via physical link 108, node 4 109 is connected to node 5 111 via physical link 110, and node 5 111 is connected to node 0 101 via physical link 112. Each physical link 110 - 112 of the ring network 100 includes two virtual channels VC0 and VC1, as indicated by callouts 122 and 128, which show VC0 (solid line) and VC1 (dashed line) respectively with respect to connections 102 and 108. For simplicity, FIG. 1 shows the VCs only with respect to connections 102 and 108, but it should be understood that the other connections including 104, 106, 110, and 112 also include the virtual channels VC0 and VC1. The ring network 100 includes only six nodes (0 - 5) and two virtual channels (VC0 and VC1), but the ring network can include any number of nodes and any number of virtual channels.
[0025] A node can include any type of computing resource that can communicate with other computing resources. For example, a node can include a computer, a server, a mobile device, a processor, a core, a router, a memory, a card (e.g., an accelerator card), a FIFO, or other such queues. In some examples, a node can include an aggregate of computing resources, such as a processor with a router.
[0026] The selection of the VC to send a data packet can be static. In static routing, the route can be predefined and fixed. Mechanically, the static route can be stored in a table, such as in the RAM memory within a node. Using the destination of the packet, the table can be indexed and the route to the destination can be looked up.
[0027] Deadline In a ring-based network topology, deadline routing is used to specify one physical link in each direction of the ring as the deadline. In this regard, the physical link can be a bidirectional link such that both directions within the ring can be handled separately. The queuing structure is typically programmed to send each data packet on a first channel. When a data packet crosses the deadline, the data packet is moved to a second virtual channel until it reaches its respective destination node.
[0028] For example, also, as shown in ring network 200 of FIG. 2 that can be compared with ring network 100, a dateline 220 is arranged between nodes 211 and 201. Ring network 200 includes six nodes 201 to 211 and physical links between each adjacent node including physical links 202, 204, 206, 208, 210, and 212. Each physical link, except for physical link 212, includes two virtual channels VC0 (shown by solid lines) and VC1 (shown by dashed lines), and physical link 212 can be regarded as a transition link that transfers data packets between VC0 and VC1. To show the transition from VC0 to VC1, FIG. 2 shows physical link 212 between node 5 211 and node 0 201 as a single line, and that line is a solid line on the left side of dateline 220 and a dashed line on the right side of dateline 220.
[0029] When a data packet traverses network 200, the routing algorithm first routes the data packet onto VC0. However, when the data packet crosses dateline 220, the routing algorithm can switch the data packet to VC1 and then route the data packet onto VC1 to its destination node. When most data packets reach their respective destination nodes before passing through dateline 220, an acyclic VC-dependent spiral-like chain is created. Such a chain of acyclic dependencies is sufficient to ensure that ring network 200 is deadlock-free. However, dateline routing creates a longer VC-dependent chain than the ring network itself.
[0030] No individual packet moves along the entire chain created by VC0 and VC1, but a sequence of dependent packets may be blocked along the chain. To advance the blocked data packets, the queuing structure of network 200 can implement a mediation algorithm, such as a locally fair or globally fair mediation algorithm.
[0031] To shorten the length of the dependency chain, a second deadline can be introduced. The two deadlines are referred to herein as "dual deadlines" and can be separated by half the diameter of the ring network. For example, also, as shown in ring network 300 of FIG. 3 which can be compared with ring networks 100 and 200, the first deadline 320 is arranged behind the third node (305), and the second deadline 322 is arranged behind node 5 311 of the six-node ring network 300. In this regard, the first deadline 320 is arranged between node 2 305 and node 3 307, and the second deadline 322 is arranged between node 5 311 and node 0 301. Therefore, three nodes are arranged on each side of the deadline, and nodes 301, 303, and 305 are arranged between the second deadline 322 and the first deadline 320, and nodes 307, 309, and 311 are arranged between the first deadline 320 and the second deadline 322.
[0032] Similar to ring network 200, ring network 300 includes six nodes 301 to 311 and physical links between adjacent nodes including physical links 302, 304, 306, 308, 310, and 312. Each physical link includes two virtual channels VC0 (shown as solid lines) and VC1 (shown as dashed lines), except for transition links 312 and 306.
[0033] When a data packet traverses network 300, the routing algorithm can first route the data packet onto VC0. However, when the data packet crosses the first dateline 320 or the second dateline 322, the routing algorithm can switch the routing of the data packet to VC1. The routing algorithm can then route the data packet onto VC1 to its destination node. The data packet can cross a maximum of two physical links on VC0 before migrating to VC1. For example, the data packet can be sent from node 0 301 to node 5 311. In this example, the data packet can cross physical links 302 and 304 on VC0, but then migrates to VC1 when crossing the first dateline 320 at physical link 306. The data packet can then cross physical links 308 and 310 on VC1 before reaching the destination node 5 311. In contrast, also referring to FIG. 2, the data packet can cross five physical links before migrating from VC0 to VC1. In this regard, the data packet can be sent across the entire physical link from node 0 201 to node 5 211, including physical links 202, 204, 206, 208, and 210, on VC0. FIG. 3 shows only two datelines, namely the first dateline 320 and the second dateline 322, in the ring network 300, but the ring network can include any number of datelines.
[0034] Balancing Better balancing of data packet traffic on virtual channels can be achieved by routing data packets that do not cross a dateline to a second virtual channel, VC1. In this regard, a data packet that does not cross a virtual channel can migrate from VC0 to VC1 when the data packet is N hops from its destination node. The value of N can be based on the size of the ring network (e.g., the number of nodes in the ring network) and the expected traffic pattern of the packets.
[0035] The utilization of balanced VCs can be determined based on the expected traffic patterns. In this regard, different types of traffic patterns can use each VC differently. For example, a network with a full-mesh traffic pattern may have different balancing requirements than a network with a full-to-one or other such traffic patterns. In the examples used herein, a global full-mesh traffic pattern is discussed. In a network implementing a global full-mesh traffic pattern, each network node can receive data packets from all other network nodes and send data packets to all other network nodes.
[0036] Queuing structures, including turn queues and dimension queues, can route data packets through the network. In this regard, the network can use those queuing structures to direct data packets as they traverse the network. A turn queue can be used to direct a data packet when it turns from one dimension of a torus network to the next. For example, a turn queue can be used to direct a data packet received by a node on a first dimension to another dimension. A dimension queue can direct a data packet to be consecutive along a single dimension of the network and on a virtual channel. For example, a dimension queue can direct a data packet from one node to another node along the same dimension and a common virtual channel such as VC0 or VC1. The queuing structure can be part of a node or a component connected to a node. For example, the queuing structure can be part of a router incorporated into a node or other network interface.
[0037] Figure 4 shows the queuing structures within nodes 401, 403, 405, and 407 of network 400. As shown, each node includes a queuing structure. In this regard, node 401 includes turn queues 411, 431 and dimension queue 421, node 403 includes turn queues 413, 433 and dimension queue 423, node 405 includes turn queues 415, 435 and dimension queue 425, and node 407 includes turn queues 417, 437 and dimension queue 427. Turn queues 431, 433, 435, 437 and 411, 413, 415, 417 can direct data to enter and exit each dimension of the toroidal network.
[0038] As further shown in Figure 4, where an exemplary data packet enters network 400, the path it travels through and exits from are indicated by arrows 441, 443, 445, 447, and 449. In this regard, arrow 441 indicates where the data packet enters node 401 via turn queue 441. The data packet is sent from node 401 to dimension queue 423 of node 403, as indicated by arrow 443. The data packet is sent from node 403 to dimension queue 425 of node 405, as indicated by line 445. The data packet is then sent to turn queue 417 of node 407 and then sent to exit therefrom, as indicated by arrow 449.
[0039] The data packet in the example shown in Figure 4 makes three "hops". A hop is a transmission from one node to another. In Figure 4, the three hops are the transmissions from node 401 to node 403, from node 403 to node 405, and from node 405 to node 407. In an example where the data packet is limited to 0 or 1 hop along the network, the data packet is limited to the use of turn queues. In this regard, since the data packet becomes the exit dimension or the entry dimension of the toroidal ring network using the turn queue, it will not use any dimension queues.
[0040] Referring to the network 500 of FIG. 5, virtual channels for routing along the dimensions of the ring network can be assigned to the dimension queues of each of the nodes 501, 503, 505, 507, and 509. In this regard, VC1 is assigned to the dimension queues 521, 523, 525, 527, and 529 of the nodes 501 to 509 respectively. VC0 is assigned to the dimension queues 541, 543, 545, 547, and 549 of the nodes 501 to 509 respectively. Data packets moving between nodes on the same virtual channel, e.g., on VC0 or VC1, will pass between the dimension queues to which the same virtual channel is assigned. For example, a data packet passing between nodes 503 and 505 on virtual VC0 will pass from dimension queue 543 to dimension queue 545. Similarly, a data packet passing between nodes 503 and 505 on virtual channel VC1 will pass from dimension queue 523 to dimension queue 525.
[0041] For data packets moving h≧2 hops, the data packets use h - 1 dimension queues along their routes. When all-to-all traffic is symmetric, the total number of dimension queues used can be determined by the sum of the routes that are at least 2 hops, Total dimension queues = sum_{h>1}(h - 1)*t(h) where h is the number of hops and t(h) is the fraction of traffic moving h hops along the dimension queues. The unit of this sum is the average number of data packets entering the dimension queues on a node when a single packet is injected at each node in the ring network.
[0042] In the case of all-to-all traffic in a toroidal ring network having an even number of nodes k along that dimension, {1 / k if 0≦h<k / 2,else t(h)={1 / 2k if h=k / 2,else {0 is.
[0043] To perform load balancing between two VCs, namely VC0 and VC1, dedicated to the dimensional queue, the routing algorithm can define a threshold value T. Any data packet with less than T hops remaining on the route and not passing through the day line can be placed on VC1. Otherwise, the data packet can use VC0.
[0044] Figure 5 shows the 3-hop route of data packet 1 indicated by the arrow marked with DP1 on network 500. At this point, data packet 1 enters node 501 from turn queue 531. Then, data packet 1 is sent by turn queue 531 to node 503 and reaches VC0 on dimensional queue 543. Data packet 1 is sent from dimensional queue 543 to the dimensional queue 525 of node 505 and reaches VC1. Data packet 1 is sent from dimensional queue 525 to turn queue 517 of node 507 and then removed from network 500.
[0045] Figure 5 further shows the 2-hop route of data packet 2 indicated by the arrow marked with DP2 on network 500. At this point, the data packet enters network 500 from turn queue 535 via node 505. Data packet 2 is sent from turn queue 535 to the dimensional queue 527 of node 507 and reaches VC1. The data packet is sent from dimensional queue 527 to turn queue 529 of node 509 and then removed from network 500.
[0046] The routing of data packet 1 and data packet 2 is based on the routing algorithm of network 500 having a threshold of T = 1. Thus, data packet 1 is first routed onto VC0 at node 503 because there are 2 hops remaining for data packet 1. Data packet 1 is routed onto VC1 only when it reaches node 505, that is, when there is 1 hop remaining equal to the threshold of 1 for data packet 1. If the threshold had been 2 hops, data packet 1 should have been routed onto VC1 at node 503.
[0047] Regarding the 2-hop route of data packet 1, the data packet is immediately routed onto VC1 because when data packet 2 reaches node 507, there is 1 hop remaining equal to the threshold of 1 for data packet 1.
[0048] Since network 500 is not shown to include a dateline, the dateline is not considered in the routing of data packets across network 500 as a whole. However, if a dateline were present, data packets 1 and 2 would simply switch to VC1 at the threshold if the data packets were not later scheduled to cross the dateline. The number of datelines that a packet can cross can be determined by performing a table lookup. In this regard, the number of datelines along the route to the destination node can be stored in the RAM memory table route. Thus, the number of datelines crossed by a data packet to the destination node can be determined by indexing the table with the destination of the data packet and looking up the number of datelines along the route to the destination as stored in the table.
[0049] To calculate the threshold for load balancing between dimensions VC0 and VC1, the total load on the dimension queue can be divided by the load contributed by data packets having h hops remaining, which is r(h)=sum_{i>h}t(i) is defined as
[0050] For example, all packets that move more than 2 hops will eventually have 1 remaining hop. Thus, the sum of the traffic ratios for each of those hops (i.e., r(1)=t(1)+t(2)+···) can be determined to obtain the utilization of the dimensional queue caused by the packets with 1 remaining hop. Since some number of hops remain for all packets, the sum of r(h) recovers the total load as calculated above.
[0051] Total = sum_{h>0}r(h) Then, T can be selected to minimize the imbalance between two VCs.
[0052] minimize|sum_{h>T}r(h)-sum_{0<h≦T}r(h)| For rings of various sizes in Table 1 below, exemplary values of the threshold T were calculated using the above formula.
[0053]
Table 1
[0054] Based on experiments, there is a linear relationship between the ring size and the calculated threshold (T). Thus, selecting threshold (T)=round(0.145·k - 0.3) can result in a ring where k is a multiple of 4 and the network contains a maximum of 64 nodes.
[0055] The concept from the previous paragraph can be extended to a twisted torus with an appropriate definition for the function t(h). Exemplary values of the threshold T for a twisted torus network were calculated using the formula for rings of various sizes in Table 2 below.
[0056]
Table 2
[0057] Similar to the torus ring network, there is also a linear relationship between the ring size and the calculated threshold (T) in the twist torus network. In this regard, for values of k ≤ 64, the threshold (T) can be determined using one of the following equations.
[0058] (1) 2k × k × k: Threshold = round(0.175·k - 0.15) (2) 2k × 2k × k: Threshold = round(0.222·k - 0.1) In some cases, the dateline can be removed from the routing algorithm of the ring network. By removing the dateline, an improvement in throughput through the network can be achieved, especially when the direct memory access (DMA) size increases. Certain conditions can be met before the dateline is removed. Those conditions include (1) the network containing 8 or fewer nodes within the ring (which corresponds to k ≤ 4 in the case of the twist torus network), (2) the use of VCs being balanced using the balancing techniques described herein, and (3) when there are 8 nodes in the ring (again corresponding to a twist torus with k = 4), the nodes can include type braking for routes that alternate between the positive and negative directions and head towards exactly the middle along the ring.
[0059] In a network with more than 8 nodes, a network with VC balancing disabled, or a network where type braking does not alternate, the acyclic dependencies of the VCs are lost, a VC0-to-VC0 dependency appears between all nodes, and a dateline (or other approach) to break the VC0 cycle is required.
[0060] In some embodiments, a node can include a queuing structure having an input queue and an output queue. In this regard, unlike the architectures with input queues or output queues as described in FIGS. 4 and 5, data packets move through the input queue and the output queue at each hop. Those pairs of queues can be divided into their associated dimensions. For example, as shown in FIG. 6, within the integrated input-output queuing architecture of network 600, a node can include turns from previous dimensions, such as turns 631, 633, and 635 of nodes 601, 603, and 605, and turns to the next dimension, such as turns 611, 613, and 615 of nodes 601, 603, and 605. Additionally, a node can include a dimension queuing structure associated with a virtual channel, such as queuing structures 641, 643, and 645 respectively associated with VC0 of nodes 601, 603, and 605. Additionally, nodes 601, 603, and 605 include queuing structures 621, 623, and 625 respectively associated with VC1.
[0061] As further shown in FIG. 6, each queuing structure can be divided into an input queue identified by "(i)" and an output queue identified by "(o)". For example, dimension queuing structure 621 includes VC1(i) which is an input queue and VC1(o) which is an output queue. During the transmission of a data packet, the data packet passes through both the input queue and the output queue. For example, data packet 1 labeled DP1 in FIG. 6 passes through the queuing structure of turn 631, which includes the input queue labeled T(i) and the output queue labeled T(o).
[0062] As also shown in FIG. 6, the transition between VCs occurs when a packet moves from the input queue to the output queue. In this regard, DP1 can pass from VC0(i) (input queue) to VC1(o) (output queue) at node 603. VC1(o) can then pass DP1 to the input queue VC1(i) of node 605. Inside node 605, the data packet can be passed to T(o).
[0063] FIG. 7 shows a flow diagram 700 for routing data packets within a network. At block 702, a data packet is received in a first queuing structure within a first node of a ring network. The data packet is destined to be sent across the network to a destination node. At block 704, the first node determines the number of hops that the data packet will cross when sent from the first node of the ring network to the destination node. At block 706, the first node compares the number of hops to a hop threshold to determine whether the number of hops is less than or equal to the hop threshold. At block 708, the first node sends the data packet to (i) a dimension queue structure of a first virtual channel within a second node of the ring network if the number of hops is greater than the hop threshold, or (ii) a dimension queue structure or a turn queuing structure for a second virtual channel within the second node if the number of hops is less than or equal to the hop threshold.
[0064] The foregoing examples show ring networks such as ring networks 100, 200, 300, 400, 500, and 600, but the techniques described herein can be applied to other ring-based network topologies such as multiple ring-based topologies (e.g., "torus" and "twisted torus" topologies).
[0065] Unless otherwise specified, the foregoing alternative examples are not mutually exclusive and can be implemented in various combinations to achieve their respective advantages. When these and other variations and combinations of the features discussed above can be utilized without departing from the subject matter defined in the claims, the foregoing description of the embodiments should be construed as illustrative rather than limiting of the subject matter defined in the claims. Further, the provision of the examples described herein, as well as clauses expressed with "such as", "including", etc., should not be construed as limiting the subject matter of the claims to specific examples, but rather these examples are intended to illustrate only one of a possible multitude of embodiments. Further, the same reference numerals in different drawings can identify the same or similar elements.
Claims
1. A method for routing data packets within a ring network, comprising: receiving, in a first queuing structure within a first node of the ring network, a data packet scheduled to be transmitted to a destination node; determining, by the first node, the number of hops that the data packet will cross when the data packet is transmitted from the first node of the ring network to the destination node; determining, by the first node, whether the number of hops is less than or equal to a hop threshold by comparing the number of hops with the hop threshold; the first node, (i) when the number of hops is greater than the hop threshold, to a dimensional queuing structure for a first virtual channel within a second node of the ring network, or (ii) when the number of hops is less than or equal to the hop threshold, to a dimensional queuing structure or a turn queuing structure for a second virtual channel within the second node, transmitting the data packet, wherein the dimensional queuing structure for the first virtual channel guides the data packet to be consecutive along a single dimension of the ring network, wherein the dimensional queuing structure for the second virtual channel guides the data packet to be consecutive along a single dimension of the ring network, and wherein the turn queuing structure guides the data packet when the data packet turns from one dimension of a torus network to another dimension of the torus network or outside the torus network, the method.
2. The method according to claim 1, wherein the first queuing structure within the first node is the turn queuing structure.
3. The method according to claim 1 or 2, wherein the data packet is transmitted to the turn queuing structure within the second node when the second node is the destination node.
4. The method according to claim 1 or 2, wherein the ring network includes a first data line and a second data line, and the data packet moves from a current virtual channel to another virtual channel when crossing the first data line and the second data line.
5. The first date line and the second date line are each arranged between a pair of network nodes on the ring network, and the number of nodes arranged between the first date line and the second date line is the same as the number of nodes arranged between the second date line and the first date line. The method according to claim 4.
6. The method according to claim 1 or 2, further comprising the step of determining whether the data packet will cross a date line when the data packet is transmitted from the first node to the destination node, and when the data packet crosses the date line, the data packet moves from the current virtual channel to another virtual channel.
7. The method according to claim 6, wherein when it is determined that the data packet will cross the date line, the data packet is transmitted to the dimension queuing structure for the first virtual channel in the second node.
8. After receiving the data packet, the second node determines a second number of hops that the data packet will cross when the data packet is transmitted from the second node of the ring network to the destination node; The second node compares the second number of hops with the hop threshold to determine whether the second number of hops is less than or equal to the hop threshold; The second node (i) when the second number of hops is greater than the hop threshold, to the dimension queuing structure for the first virtual channel in the third node of the ring network, or (ii) when the second number of hops is less than or equal to the hop threshold, to the dimension queuing structure or the turn queuing structure for the second virtual channel in the third node, The method according to claim 6, further comprising the step of transmitting the data packet.
9. The method according to claim 8, wherein the data packet is transmitted to the turn queuing structure in the third node when the third node is the destination node.
10. The method according to claim 1 or 2, wherein the ring network is a ring network comprising a torus ring or a twisted torus.
11. A first node comprising a first queuing structure; A dimension queuing structure for a first virtual channel and a dimension queuing structure for a second virtual channel, wherein the dimension queuing structure for the first virtual channel guides data packets along a single dimension of the ring network and continuously on the first virtual channel, and the dimension queuing structure for the second virtual channel guides the data packets along a single dimension of the ring network and continuously on the second virtual channel, including a second node and a destination node, wherein the first node receives, in the first queuing structure, the data packet scheduled to be sent to the destination node, determines the number of hops that the data packet will cross when the data packet is sent from the first node of the ring network to the destination node, compares the number of hops with a hop threshold to determine whether the number of hops is less than or equal to the hop threshold, (i) when the number of hops is greater than the hop threshold, to the dimension queuing structure for the first virtual channel, or (ii) when the number of hops is less than or equal to the hop threshold, to the dimension queuing structure for the second virtual channel, A ring network configured to send the data packet.
12. The first queuing structure in the first node is a turn queuing structure, and the turn queuing structure guides the data packet when the data packet turns from one dimension of the torus network to another dimension of the torus network or outside the torus network. The ring network according to claim 11.
13. The ring network includes a first data line and a second data line, and the data packet moves from the current virtual channel to another virtual channel when crossing the first data line and the second data line. The ring network according to claim 11 or 12.
14. The first date line and the second date line are each arranged between a pair of network nodes on the ring network, and the number of nodes arranged between the first date line and the second date line is the same as the number of nodes arranged between the second date line and the first date line. The ring network according to claim 13.
15. The ring network according to claim 14, wherein the ring network includes more than eight nodes.
16. The first node further is configured to determine whether the data packet will cross a date line when the data packet is transmitted from the first node to the destination node, and when the data packet crosses the date line, it moves from the current virtual channel to another virtual channel. The ring network according to claim 11 or 12.
17. When it is determined that the data packet will cross the date line, the data packet is transmitted to the dimension queuing structure for the first virtual channel. The ring network according to claim 16.
18. The second node after receiving the data packet, determines a second number of hops that the data packet will cross when the data packet is transmitted from the second node of the ring network to the destination node, the second node compares the second number of hops with the hop threshold to determine whether the second number of hops is less than or equal to the hop threshold, (i) when the second number of hops is greater than the hop threshold, to the dimension queuing structure for the first virtual channel in the third node of the ring network, or (ii) when the second number of hops is less than or equal to the hop threshold, to the dimension queuing structure or turn queuing structure for the second virtual channel in the third node, is configured to transmit the data packet. The ring network according to claim 16.
19. The data packet is transmitted to the turn queuing structure in the third node when the third node is the destination node. The ring network according to claim 18.
20. The ring network according to claim 11 or 12, wherein the ring network is a single-dimensional toroidal ring or a twisted toroidal network.
Citation Information
Patent Citations
Adaptive Routing Mechanism for Torus Interconnection Networks
JP1998506736A
Destination-Based Virtual Channel Assignment in On-Chip Ring Networks
US20120195314A1