Not applicable.
Not applicable.
An interconnection network may refer to any system that enables fast data communication among its components, or nodes. An interconnection network may be any switch, router, processor-memory, input/output (I/O), system on a chip (SoC), multiple-chip, or other network. An SoC may refer to a system that integrates all the functionality of a computer or other complex electronic data system onto a single integrated circuit, or chip.
Data in an interconnection network may be exchanged from one node to another node in what is called a transaction. A transaction may comprise phases such as a request for data, a transmission of the data, and an acknowledgment of receipt of the data. The data may be exchanged in the form of a packet, which may typically comprise a header containing control information and a payload containing the data that is the purpose of the transmission.
Network topology may refer to the arrangement of the nodes in an interconnection or other network. Topology design may affect network performance, cost, power use, and flexibility. For example, a first type of topology may provide for faster transaction completion compared to a second type of topology. The second type of topology may, however, require less expensive hardware compared to the first type of topology. Consequently, topology design involves weighing many factors and is an important aspect of network implementation.
In one embodiment, the disclosure includes an interconnection network comprising NK nodes, wherein N is an integer of two or greater and represents a degree of the network, wherein each node comprises N ports, wherein K is an integer of one or greater and represents a recursion level of the network, and wherein N ports are left available for recursion, and NK−1 clusters of nodes, wherein each cluster comprises N nodes, wherein each node within each cluster is directly connected to each remaining node in the cluster, and wherein each cluster is directly connected to at least one remaining cluster.
In another embodiment, the disclosure includes an interconnection network comprising a plurality of inter-cluster links, a plurality of intra-cluster links, and a plurality of clusters, wherein each cluster is directly connected via an inter-cluster link to at least one other cluster, wherein each cluster comprises N nodes where N is an integer of two or greater, wherein each node comprises N ports, wherein each node is directly connected via an intra-cluster link to each remaining node in a same cluster, and wherein N inter-cluster links are left available for recursion.
In yet another embodiment, the disclosure includes an interconnection network comprising a plurality of inter-cluster links, a plurality of intra-cluster links, and a plurality of clusters, wherein each cluster is directly connected via an inter-cluster link to at least one remaining cluster, wherein each cluster within a first set of clusters comprises N nodes where N is an integer of two or greater, wherein each node within the first set of clusters comprises N ports, wherein each node in the first set of clusters is directly connected via an intra-cluster link to each remaining node in a same cluster, wherein each remaining cluster is part of a second set of clusters, wherein at least one non-uniform node within the second set of clusters comprises M ports where M is an integer of two or greater and is not equal to N, wherein each node in the second set of clusters is directly connected via an intra-cluster link to at least one remaining node in a same cluster, and wherein at least one inter-cluster link is left available for recursion.
In yet another embodiment, the disclosure includes an interconnection network comprising a plurality of inter-cluster links, a plurality of intra-cluster links, and a plurality of clusters, wherein each cluster is directly connected via an inter-cluster link to at least one remaining cluster, wherein each cluster within a first set of clusters comprises N nodes where N is an integer of two or greater, wherein each node within the first set of clusters comprises N ports, wherein each node in the first set of clusters is directly connected via an intra-cluster link to each remaining node in a same cluster, wherein each remaining cluster is part of a second set of clusters, wherein at least one non-uniform cluster in the second set of clusters comprises L nodes where L is an integer of two or greater and is not equal to N, wherein each node in the second set of clusters is directly connected via an intra-cluster link to at least one remaining node in a same cluster, and wherein at least one inter-cluster link is left available for recursion.
In yet another embodiment, the disclosure includes a method comprising providing a network, designing a network topology for the network, wherein the topology comprises NK nodes and NK−1 clusters of nodes, wherein N is an integer of two or greater and represents a degree of the network, wherein each node comprises N ports, wherein K is an integer of one or greater and represents a recursion level of the network, wherein N ports are left available for recursion, wherein each cluster comprises N nodes, wherein each node within each cluster is directly connected to each remaining node in the cluster, and wherein each cluster is directly connected to at least one remaining cluster, and deploying the network.
These and other features will be more clearly understood from the following detailed description taken in conjunction with the accompanying drawings and claims.
For a more complete understanding of this disclosure, reference is now made to the following brief description, taken in connection with the accompanying drawings and detailed description, wherein like reference numerals represent like parts.
It should be understood at the outset that, although an illustrative implementation of one or more embodiments are provided below, the disclosed systems and/or methods may be implemented using any number of techniques, whether currently known or in existence. The disclosure should in no way be limited to the illustrative implementations, drawings, and techniques illustrated below, including the exemplary designs and implementations illustrated and described herein, but may be modified within the scope of the appended claims along with their full scope of equivalents.
Ring networks, however, have some disadvantages. As shown, each node 110 may have a link 120 to only two other nodes 110. For example, the node 1102 may have the link 1201 to the node 1101 and the link 1202 to the node 1103. Sometimes, data transactions may occur between non-contiguous nodes. In that case, the data packets may traverse through multiple intermediary nodes and links. Each such link may be referred to as a hop. For example, if there is a transaction between the node 1101 and the node 1105, then the packets may need to traverse through the nodes 1102, 1103, 1104 and the links 1201, 1202, 1203, 1204. Accordingly, the transaction may require four hops. In the network 100, the longest hop count, for example, the hop count from the node 1101 to the node 1109, may be eight. In general, ring networks comprising N nodes may have a longest hop count of about N/2 and an average hop count of about N/4. Ring networks may therefore be disadvantageous in that they may require relatively longer hop counts for some transactions compared to networks with other topologies. The longer hop counts may cause increased latency, which may refer to the time delay in completing a transaction, because the packets must travel farther. In addition, ring networks may experience increased packet contention and other routing issues. Packet contention may occur when packets from different transactions attempt to traverse the same link at the same time, causing a packet traffic bottleneck at that link. The increased packet contention may occur because of the lack of direct links between nodes so that packets must traverse the same nodes and links even if they have different destination nodes. For example, if there are two transactions, a first transaction between the node 1101 and the node 1105 and a second transaction between the node 1101 and the node 1109, then packets for both transactions must traverse the nodes 1102, 1103, 1104 and the links 1201, 1202, 1203, 1204 even though the two transactions have different destinations. Accordingly, if the node 1101 is a relatively frequent source of packet generation, the nodes 1102, 1103, 1104 may experience increased packet contention and other routing issues even if they are not typical destination nodes.
Disclosed herein are systems and methods for improved network topologies. The disclosed techniques may provide recursive, all-to-all network topologies. Recursive may be used interchangeably with hierarchical and fractal and may mean that a topology may be included as a subset of a larger topology, the larger topology may be included as a subset of an even larger topology, and so on. All-to-all may mean that a direct path may exist from any one node to any other node without any intervening nodes. Generally, when compared to ring, torus, and other topologies, the topologies designed using the disclosed techniques may exhibit: a reduced maximum hop count; a reduced average hop count; improved performance, particularly for networks with spatial locality, meaning networks with transactions occurring in relatively close proximity; and improved flexibility, all while maintaining costs. Specifically, the disclosed topologies may exhibit reduced latency because of a reduced hop count. With reduced latency, less bandwidth may be required to perform the same amount of transactions. With reduced bandwidth, cost may be reduced because less hardware is required. With less traffic, less power may be used because less processing is required. Finally, the disclosed topologies may exhibit improved flexibility by supporting relatively larger networks with a fixed number of ports per node. The disclosed topologies may be applied to any suitable interconnection networks.
The network 400 may be constructed in the following manner: first, the nodes may be labeled in a sequential, clockwise order. The top node may be labeled node 3101, the second node moving clockwise may be labeled node 3102, and the third node may be labeled node 3103. Second, the ports of each node may be labeled in a sequential, clockwise order. For example, the top port of the first node 3101 may be labeled port 3201.1, the second port moving clockwise may be labeled port 3201.2, and the third port moving clockwise may be labeled port 3201.3. The ports of the nodes 3102, 3103 may be labeled in a similar manner. Third, the ports may be connected in an algorithmic manner. For the node 3101, the port 3201.1 may be left available for recursion or other suitable design purposes, the port 3201.2 may connect to the port 3202.1, and the port 3201.3 may connect to the port 3203.1. For the node 3102, the port 3202.2 may be left available for recursion or other suitable design purposes, and the port 3202.3 may connect to the port 3203.2. For the node 3103, the port 3203.3 may be left available for recursion or other suitable design purposes. With the disclosed technique, in general, the ith port of the jth node in a network may connect to the jth port of the ith node, where i and j are sets of integers from one to N and where N represents the degree of the network. When i and j are the same, the port may be left available for recursion or other suitable design purposes. Similarly, the jth node of the kth cluster may connect to the kth node of the jth cluster, where k is the set of integers from one to NK−1. When i, j, and k are the same, the ith port of the jth node may be left available for recursion or other suitable design purposes. When a port is said to be left available for recursion or other suitable design purposes, it may be understood that the port may comprise a link for such purposes as well. The link may be suitable for linking to any node in the network. The disclosed technique may be applied to the networks described below, as well as networks of other degrees and levels.
While the disclosed technique may provide for the non-uniform network 1800, the disclosed technique may provide for additional non-uniform networks as well. As a first example, such non-uniform networks may comprise any number of non-uniform clusters. For instance, the uniform cluster 18402 may also be non-uniform.
As a second example, such non-uniform networks may comprise non-uniform clusters with N nodes, but where at least one of the N nodes comprises M ports where M is an integer of two or greater and is not equal to N. That node may therefore be referred to as a non-uniform node. When that is the case, when M is less than N, each non-uniform cluster may comprise no inter-cluster links left available for recursion or other suitable design purposes. When N−M is greater than one, then at least one other node in the network 1800 may not be able to connect to the non-uniform node. When M is greater than N, each non-uniform cluster may comprise M−N additional inter-cluster links left available. For instance, the uniform cluster 18402 may comprise the five nodes 18105-18109, but the node 18106 may comprise four ports, so the uniform node 18106 may therefore become non-uniform and comprise no links left available.
As a third example, such non-uniform networks may comprise non-uniform clusters with L nodes where L is an integer of two or greater and is not equal to N. When that is the case, when L is less than N, each non-uniform cluster may comprise no inter-cluster links left available. When N−M is greater than one, then at least one other node in the network 1800 may not be able to connect to the non-uniform cluster. When L is greater than N, each non-uniform cluster with a non-uniform node may comprise L−N additional inter-cluster links left available. For instance, the uniform cluster 18402 may comprise an additional node, so the uniform cluster 18402 may become non-uniform and comprise L−N additional inter-cluster links left available.
As a fourth example, such non-uniform networks may comprise non-uniform clusters with L nodes where at least one of the L nodes comprises M ports. When that is the case, each non-uniform cluster may have varying numbers of links left available. For instance, the non-uniform cluster 18401 may comprise the four nodes 18101-18104, but the node 18101 may comprise five ports, so the non-uniform cluster 18401 may comprise an inter-cluster link left available.
As shown above, when using the disclosed technique and when N is the number of ports per node, K is the level of the network, and K is an integer greater than zero, each uniform network with NK nodes in NK−1 clusters may comprise N available ports. Each such network may have a maximum hop count of 2K−1 and an average hop count of 2K−1. For example, the 16-node network 1000 may have a maximum hop count of 22−1=3 and an average hop count of 22−1=2. If the network 1000 experiences relatively good spatial locality, the typical hop count may be one. In comparison, a 16-node, 4×4 torus network may have a maximum hop count of about four and an average hop count of about two. The disclosed techniques may therefore achieve an improved maximum, average, and typical hop count for a 16-node network. The disclosed techniques may achieve similar advantages for networks of other degrees and levels as well. Each uniform network with two sub-networks, where each sub-network comprises NK nodes in NK−1 clusters, may comprise no available ports. Each such network may achieve an improved maximum, average, and typical hop count compared to other networks comprising the same number of nodes. Note that the maximum, average, and typical hop count of uniform networks designed using the disclosed techniques do not depend on the degree of such networks. Non-uniform networks designed using the disclosed techniques may have differing maximum, average, and typical hop counts, but those hop counts may be improved compared to other networks comprising the same number of nodes.
The logic unit 2030, which may be referred to as a central processing unit (CPU), may be in communication with the ingress ports 2010, receiver units 2020, egress ports 2040, transmitter units 2050, and memory 2060. The logic unit 2030 may be implemented as one or more CPU chips, cores (e.g., as a multi-core processor), field-programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), and/or digital signal processors (DSPs), and/or may be part of one or more ASICs.
The memory 2060 may be comprised of one or more disks, tape drives, optical disc drives, or solid-state drives; may be used for non-volatile storage of data and as an over-flow data storage device; may be used to store programs when such programs are selected for execution; and may be used to store instructions and perhaps data that are read during program execution. The memory 2060 may be volatile and/or non-volatile and may be read-only memory (ROM), random-access memory (RAM), ternary content-addressable memory (TCAM), static random-access memory (SRAM), another suitable type of memory, or any combination thereof.
The device 2000 may represent any of the nodes described above. In each configuration, the nodes may reside on separate devices, on a single device as an SoC, or in any combination of devices forming an interconnection network suitable for implementing any of the disclosed features, methods, and devices. In other words, the disclosed technique is not limited to any specific hardware or software configuration.
At least one embodiment is disclosed and variations, combinations, and/or modifications of the embodiment(s) and/or features of the embodiment(s) made by a person having ordinary skill in the art are within the scope of the disclosure. Alternative embodiments that result from combining, integrating, and/or omitting features of the embodiment(s) are also within the scope of the disclosure. Where numerical ranges or limitations are expressly stated, such express ranges or limitations may be understood to include iterative ranges or limitations of like magnitude falling within the expressly stated ranges or limitations (e.g., from about 1 to about 10 includes, 2, 3, 4, etc.; greater than 0.10 includes 0.11, 0.12, 0.13, etc.). For example, whenever a numerical range with a lower limit, R1, and an upper limit, Ru, is disclosed, any number falling within the range is specifically disclosed. In particular, the following numbers within the range are specifically disclosed: R=R1+k * (Ru−R1), wherein k is a variable ranging from 1 percent to 100 percent with a 1 percent increment, i.e., k is 1 percent, 2 percent, 3 percent, 4 percent, 5 percent, . . . , 50 percent, 51 percent, 52 percent, . . . , 95 percent, 96 percent, 97 percent, 98 percent, 99 percent, or 100 percent. Moreover, any numerical range defined by two R numbers as defined in the above is also specifically disclosed. The use of the term “about” means +/−10% of the subsequent number, unless otherwise stated. Use of the term “optionally” with respect to any element of a claim means that the element is required, or alternatively, the element is not required, both alternatives being within the scope of the claim. Use of broader terms such as comprises, includes, and having may be understood to provide support for narrower terms such as consisting of, consisting essentially of, and comprised substantially of. Accordingly, the scope of protection is not limited by the description set out above but is defined by the claims that follow, that scope including all equivalents of the subject matter of the claims. Each and every claim is incorporated as further disclosure into the specification and the claims are embodiment(s) of the present disclosure. The discussion of a reference in the disclosure is not an admission that it is prior art, especially any reference that has a publication date after the priority date of this application. The disclosure of all patents, patent applications, and publications cited in the disclosure are hereby incorporated by reference, to the extent that they provide exemplary, procedural, or other details supplementary to the disclosure.
While several embodiments have been provided in the present disclosure, it may be understood that the disclosed systems and methods might be embodied in many other specific forms without departing from the spirit or scope of the present disclosure. The present examples are to be considered as illustrative and not restrictive, and the intention is not to be limited to the details given herein. For example, the various elements or components may be combined or integrated in another system or certain features may be omitted, or not implemented.
In addition, techniques, systems, subsystems, and methods described and illustrated in the various embodiments as discrete or separate may be combined or integrated with other systems, modules, techniques, or methods without departing from the scope of the present disclosure. Other items shown or discussed as coupled or directly coupled or communicating with each other may be indirectly coupled or communicating through some interface, device, or intermediate component whether electrically, mechanically, or otherwise. Other examples of changes, substitutions, and alterations are ascertainable by one skilled in the art and may be made without departing from the spirit and scope disclosed herein.
This application claims priority to U.S. Provisional Application No. 61/676,587 filed Jul. 27, 2012 by Yolin Lih, et al., and titled “Recursive All-to-All Network Topologies,” which is incorporated by reference as if reproduced in its entirety.
Number | Date | Country | |
---|---|---|---|
61676587 | Jul 2012 | US |