System and method for synthesis of network-on-chip for deadlock-free transformation
The described system transforms NoCs using edge and node clustering to create a deadlock-free, near-optimal network that minimizes wires and switches, addressing cycle prevention and physical constraints, enhancing efficiency and throughput.
Patent Information
- Application Number
- JP2025124806
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2020-05-11
- Filing Date
- 2025-07-25
- Publication Date
- 2025-10-28
- Estimated Expiration
- 2041-05-07
AI Technical Summary
Designing a network-on-chip (NoC) for multiprocessor systems-on-chip (SoC) that avoids cycles to prevent deadlocks while minimizing resource usage and adhering to physical constraints is challenging, as cycles can lead to undesirable wait states and resource access issues.
A system and method that applies clustering methods to nodes and edges, transforming the network into a deadlock-free, near-optimal structure by minimizing wires and switches while respecting physical constraints, using edge and node clustering to maintain cycle-free construction.
The solution optimizes resource usage and reduces congestion, achieving fast throughput with high runtime efficiency and effective handling of incremental changes, applicable to irregular and regular networks like rings, meshes, and trios.
Smart Images

Figure 2025163081000001_ABST
Abstract
Description
[Technical Field]
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application is a joint publication of "Physically Aware Topology Synthesis of a Novel Nanotube," filed on December 27, 2019 by Moez Cherif et al. This application is a continuation-in-part of U.S. Non-provisional Patent Application No. 16 / 728,335, entitled "NETWORK," the entire disclosure of which is incorporated herein by reference.
[0002] FIELD OF THE INVENTION The present technology is in the field of computer system design, and more particularly relates to topology synthesis for generating deadlock-free networks-on-chip (NoCs). [Background technology]
[0003] background Multiprocessor systems implemented in a system-on-chip (SoC) communicate over a network, such as a network-on-chip (NoC). Intellectual property (IP) blocks or elements or cores are used in chip designs. An SoC contains instances of intellectual property (IP) blocks. Some IP blocks are masters. Some IP blocks are slaves. The masters and slaves communicate over a network, such as an NoC.
[0004] Transactions in the form of packets are sent from a master to one or more slaves using one of many industry-standard protocols. A master connected to a NoC sends a request transaction to a slave, using an address to select the slave. The NoC decodes the address and forwards the request from the master to the slave. The slave processes the transaction and sends a response transaction that is sent back to the master by the NoC.
[0005] Designing an NoC, which handles all communications between all masters and their corresponding slaves, involves establishing a connectivity mapping of the NoC within the floorplan. The challenge is that the connectivity map must take into account the location of IP blocks in the floorplan, which represents physical constraints on the floorplan. Furthermore, for an NoC, the connectivity map should avoid creating cycles. Cycles can lead to undesirable deadlock situations, where nodes along the cycle are in a circular "wait" state, preventing each other from accessing resources and sending messages. Therefore, a system and method for network synthesis and transformation is needed. The process should minimize resource usage to generate a near-optimal, cycle-free network given the physical constraints. The system and method should transform a given network into another functionally equivalent network with fewer wires (e.g., fewer links) and fewer logic elements (e.g., fewer switches). Furthermore, the transformation must respect the network's connectivity constraints and not introduce new cycles that could lead to deadlocks. Summary of the Invention [Means for solving the problem]
[0006] Summary of the Invention According to various embodiments and aspects of the present invention, Disclosed are systems and methods for generating near-optimal networks, such as networks-on-chip (NoCs). According to various aspects and embodiments of the invention, the system applies clustering methods to nodes and edges. The clustering transforms the network to generate a deadlock-free, (near-)optimal network that respects the physical constraints of the input network floorplan and specification.
[0007] One advantage of the present invention includes optimizing networks and reducing resource usage and congestion. Another advantage includes using a deadlock-aware process to reduce wires (edges) and switches (nodes) in the network. Another advantage includes outputting optimal results when combined with the use of physical roadmap techniques. Another advantage includes generating near-optimal or optimal networks that maintain cycle-free construction of the generated network while all transformations converge to a better-routed wiring result. Another advantage includes the system's ability to apply this embodiment to any structure of irregular and regular networks, including rings, meshes, and trios. Another advantage includes fast throughput, as the system implements the process with high runtime efficiency. Another advantage includes effectiveness in handling incremental changes during the synthesis process performed by the system.
[0008] BRIEF DESCRIPTION OF THE DRAWINGS For a fuller understanding of the present invention, reference is made to the accompanying drawings. The present invention is described in accordance with aspects and embodiments of the following description with reference to drawings or figures (FIG.), in which like numerals represent the same or similar elements. These drawings should not be considered as limiting the scope of the present invention, and the herein described aspects and embodiments of the present invention and the best mode understood therein will be explained in further detail by using the accompanying drawings. [Brief explanation of the drawings]
[0009] [Figure 1] FIG. 1 illustrates a process of network composition and transformation to generate a new network, in accordance with various aspects and embodiments of the present invention. [Figure 2] FIG. 1 illustrates a network including three source nodes and thirteen sink nodes implemented in a floorplan with physical constraints in accordance with various aspects and embodiments of the present invention. [Figure 3]FIG. 3 illustrates a connectivity map including nodes and edges for the network of FIG. 2 in accordance with various aspects and embodiments of the present invention. [Figure 4] FIG. 10 illustrates a map of an input network containing three trunks that is transformed using brute-force clustering into a new network represented by the new map. [Figure 5] FIG. 1 illustrates a map of an input network containing three trunks that is transformed and combined to generate a new network represented by the new map, in accordance with various aspects and embodiments of the present invention. [Figure 6] 6 illustrates a map that is the new network of FIG. 5 being transformed to generate another new network represented by the new map, in accordance with various aspects and embodiments of the present invention. [Figure 7] 7 illustrates a map that is the new network of FIG. 6 being transformed to generate another new network represented by the new map, in accordance with various aspects and embodiments of the present invention. [Figure 8] FIG. 8 illustrates a map of the new network of FIG. 7 in which edge clustering is not implemented to avoid cycles, in accordance with various aspects and embodiments of the present invention. [Figure 9] 9 illustrates a map that is the network of FIG. 8 being transformed to generate another new network represented by the new map, in accordance with various aspects and embodiments of the present invention. [Figure 10A] FIG. 1 illustrates a flow process for performing edge cluster grouping in accordance with various aspects and embodiments of the present invention. [Figure 10B] FIG. 1 illustrates a flow process for implementing node cluster grouping in accordance with various aspects and embodiments of the present invention. [Figure 11] FIG. 1 illustrates a map of an edge-clustered network with possible node clusters, in accordance with various aspects and embodiments of the present invention. [Figure 12]FIG. 1 illustrates steps for collapsing potential node clusters in accordance with various aspects and embodiments of the present invention. [Figure 13] FIG. 1 illustrates an input network with node clusters that may be collapsed, as well as node clusters that may not be collapsed due to network constraints, in accordance with various aspects and embodiments of the present invention. [Figure 14] 14 illustrates the input network of FIG. 13 after possible node clusters have been collapsed, in accordance with various aspects and embodiments of the present invention. DETAILED DESCRIPTION OF THE INVENTION
[0010] Detailed Description Below, various examples of the present technology are described, illustrating various aspects and embodiments of the present invention. In general, the examples can use any combination of the described aspects. All statements herein that recite principles, aspects, and embodiments, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. Furthermore, such equivalents are intended to include both currently known equivalents and equivalents developed in the future, i.e., any elements developed that perform the same function, regardless of structure.
[0011] It should be noted that, as used herein, the singular forms "a," "an," and "the" include plural referents unless the context clearly dictates otherwise. Throughout this specification, reference to "one aspect," "one aspect," "particular aspects," "various aspects," or similar language means that a particular aspect, feature, structure, or characteristic described in connection with any embodiment is included in at least one embodiment of the invention.
[0012] Throughout this specification, the appearances of the phrases "in one embodiment," "in at least one embodiment," "in one embodiment," "in a particular embodiment," and similar language may, but do not necessarily, all refer to the same or similar embodiments. Furthermore, the aspects and embodiments of the invention described herein are merely exemplary and should not be construed as limiting the scope or spirit of the invention, as will be understood by those skilled in the art. The disclosed invention may be effectively made or used in any embodiment, including any novel aspects described herein. All statements herein reciting aspects and embodiments of the invention are intended to encompass both structural and functional equivalents thereof. Such equivalents are intended to include both currently known equivalents and equivalents developed in the future.
[0013] As used herein, "master" and "initiator" refer to similar intellectual property (IP) blocks, units, or modules. The terms "master" and "initiator" are used interchangeably within the scope and embodiments of the present invention. As used herein, "slave" and "target" refer to similar IP blocks. The terms "slave" and "master" are used interchangeably within the scope and embodiments of the present invention. As used herein, a transaction may be a request transaction or a response transaction. An example of a request transaction is , including write requests and read requests.
[0014] As used herein, a node is defined as a distribution point or communication endpoint that can create, receive, and / or transmit information over a communication path or channel. A node can refer to any one of a switch, splitter, merger, buffer, and adapter. As used herein, splitters and mergers are switches. However, not all switches are splitters or mergers. As used herein, in accordance with various aspects and embodiments of the present invention, the term "splitter" refers to a switch with a single ingress port and multiple egress ports. As used herein, in accordance with various aspects and embodiments of the present invention, the term "merger" refers to a switch with a single egress port and multiple ingress ports.
[0015] According to various aspects and one embodiment of the present invention, the composition and transformation are performed on a deadlock-free network, as described herein. The resulting transformed network topology is also cycle-free. As used herein, a "cycle-free" network is a network in which no route or path traverses the same node twice. The terms "path" and "route" are used interchangeably herein. A path includes and is composed of any combination of nodes and edges (also referred to herein as links), along which data travels from a source to a destination. According to various aspects and embodiments of the present invention, the following notations are defined:
[0016] E is any edge or link. LE is the longest edge.
[0017] BE is the set of reserved edges. NBE is the set of unreserved edges.
[0018] A CL is an edge cluster or a cluster of links. G(CL) is the total payoff (or cost) of CL.
[0019] WL is the wire length of the edge or link. WL(CL) is the total wiring length of the cluster CL.
[0020] 1, a process 100 according to various aspects of the present invention is shown for synthesizing and transforming networks to produce near-optimal or optimal cycle-free networks. According to one embodiment of the present invention, the input network is cycle-free. According to various other embodiments of the present invention, the input network is any network, including networks with cycles, networks with irregular topologies, and networks with regular topologies (e.g., meshes, rings, torii, etc.). It may also be a network.
[0021] The synthesis / transformation process includes edge clustering and node clustering. The synthesis process minimizes resource usage and produces a near-optimal cycle-free network. The resulting network structure adheres to the physical constraints of the floorplan described as part of this specification. According to some aspects of the invention, the synthesis process includes optimizing an objective function and optimizing a global cost corresponding to the total wire length of the edges (representing the links) of the network. According to various aspects and embodiments of the invention, the two clustering phases (edge clustering and node clustering) are performed on the input network. The synthesis process operates while maintaining the network cycle-free, and the synthesis process converges to an optimal structure. This is achieved using two network transformations: edge clustering and node clustering. These transformations take an existing network as input and generate as output a network that is more optimal than the input network according to some metric. These transformations do not introduce cycles into the newly generated network, an important result, which is beneficial because cycles, as discussed, cause deadlocks. According to various aspects and embodiments of the present invention, the synthesis process restructures the network to remove cycles, if any, and then applies clustering and optimization while adhering to and maintaining the cycle-free property. Furthermore, the physical constraints of the floorplan are maintained and respected.
[0022] As shown in FIG. 1, the synthesis process 100 illustrates an overall synthesis flow that includes two transformation or clustering phases. The input network 102 is arbitrary. The input network 102 can be designed manually (e.g., by a human) or can be produced (automated) by a computer-aided design tool. According to one aspect and embodiment of the present invention, the input network 102 is used, and the synthesis process 100 begins with a cycle-free network topology 110. As mentioned above, the network topology 110 can be any network according to some other aspects and embodiments of the present invention. The synthesis process 100 uses a transformation module 112 that performs an edge-clustering transformation on the network topology 110 to generate an edge-clustered network topology. The synthesis process 100 then optimizes the edge-clustered network topology using an optimization module 114. The synthesis process 100 then performs node clustering on the optimized network topology using a transformation module 116. The resulting network topology 120 is a cycle-free network topology. According to one aspect of the invention, the resulting network topology 120 may be processed by a user for further optimization and design refinement that is used to generate final network topology 130. According to another aspect of the invention, the resulting network topology 120 may be processed by a synthesis tool for further optimization and design refinement that is used to generate final network topology 130. As mentioned above, according to some other aspects and embodiments of the invention, the resulting network topology 120 is a cycle-free network topology even if the starting network topology, such as network topology 102, had cycles.
[0023] Referring now to FIG. 2, a floorplan 200 is shown including nine forbidden regions 210 and three source nodes 220 communicating with thirteen sink nodes 230, in accordance with various aspects and embodiments of the present invention. The floorplan 200 illustrates direct communication connections using direct edges, such as edge (or link) 240 between the source nodes 220 and the sink node 230. As shown, the forbidden regions 210 indicate spaces on the floorplan through which links or edges cannot traverse; links must be placed in areas on the floorplan that are not occupied by the forbidden regions 210. According to various aspects and embodiments of the present invention, the system receives as input any network structure that implements the floorplan 200 with connectivity between the source nodes 230 and the sink nodes 240. The floorplan 200 is provided to the system as a map. The system processes the map using edge and node clustering to generate a more optimized structure.
[0024] According to various aspects and embodiments of the present invention, the input network has cycles. Therefore, edge and node clustering does not aim to destroy existing cycles. The system optimizes the network without increasing the number of existing cycles. According to various aspects and embodiments of the present invention, the input network is cycle-free, and therefore the optimized network is also cycle-free.
[0025] Referring now to FIG. 3, an example of a connection network 300 that implements the communication connectivity (or links) of floorplan 200 of FIG. 2 is shown. Nodes are switches and other active network elements. According to various aspects and embodiments of the present invention, connection network 300 includes switches, such as switch 350. According to various aspects and embodiments of the present invention, connection network 300 includes edges, such as edge 360. Edges are links between nodes, and links are bundles of electrical connections. Nodes and links constitute a path. According to various aspects and embodiments of the present invention, many nodes are close to each other. According to various aspects and embodiments of the present invention, many edges have similar shapes because edges begin and end at adjacent nodes and their profiles can be assimilated. The system combines assimilated nodes and edges. According to various aspects and embodiments of the present invention, assimilated edges and nodes are combined to obtain an improved network to reduce the number of wiring and logic elements in the network while maintaining equivalent functionality.
[0026] Referring now to FIG. 4, pre-clustering map 400 and post-clustering map 450 are shown in accordance with various aspects and embodiments of the present invention. Map 400 and map 450 include switches and links. For illustrative purposes, reference is made to only a portion of network 300 of FIG. 3, which is the input network and the structure on which clustering operates. In accordance with various aspects and embodiments of the present invention, map 400 is shown with multiple switches, such as switch 402, and multiple links, such as link 404. Subnetwork map 450 shows the clustering results when applied to three trunks 410, 412, and 414. In accordance with various aspects and embodiments of the present invention, map 450 is shown with multiple switches, such as switch 452, and multiple links, such as link 454. In accordance with various aspects and embodiments of the present invention, switch 402 may be assimilated. Assimilating switch 402 results in switch 452. This is the process of node clustering. In accordance with various aspects and embodiments of the present invention, link 404 may be assimilated. Assimilating link 404 results in link 454. This process is referred to as edge clustering.
[0027] Map 400 represents a subnetwork including three separate trunks 410, 412, and 414 of an input network, such as network 300. The nodes and edges may be stacked on top of each other or spaced apart as shown. According to various aspects and embodiments of the invention, each trunk 410, 412, and 414 does not have cycles because the input network, such as network 300, is cycle-free. As described herein, according to various aspects and embodiments of the invention, the edge clustering and node clustering processes operate in a similar manner for networks with cycles, which may be the input network.
[0028] According to various aspects and embodiments of the present invention, clustering produces a more compact and optimized structure in terms of resource usage (wire length, performance, etc.) and keeps the network cycle-free. This is achieved by clustering and collapsing "similar" edges and adjacent nodes. Map 450 of the network is cycle-free and optimal, implementing the same local connectivity map such as map 400, where the local connectivity map is a map between inbound and outbound points to trunks. Clustering maintains connectivity locally and globally (i.e., between sources and sinks) through all transformations. For example, switch 406 can be clustered to obtain switch 456. Trunk 414 is a brute-force clustering algorithm. If applied by [the operator], clustering appears to have a loop shape that may create a cycle and therefore a deadlock. According to various aspects and embodiments of the present invention, to prevent this possibility of a cycle and the possibility of a deadlock, clustering is applied only if it does not introduce a cycle. To maximize profit, this process primarily reduces long edges or links.
[0029] 5, there is shown a map 500 of a pre-cluster network having edge cluster or cluster link (CL) groupings, such as CL1, CL2, CL3, CL4, and CL5, and three trunks 510, 512, and 514, in accordance with various aspects and embodiments of the present invention. The CL groups are potential groups for performing edge clustering, each of which may be implemented in any order depending on the stated objectives in accordance with various aspects and embodiments of the present invention. A map 550 of the post-cluster network is shown in which clustering has been performed on the edges in the CL1 grouping.
[0030] According to various aspects and embodiments of the present invention, one purpose and focus of performing edge clustering is to minimize long edges. Many long edges traversing narrow passages between two or more prohibited areas can lead to wiring congestion. Minimizing the wiring of long edges contributes to reducing congestion. According to various aspects and embodiments of the present invention, the length of an edge (link) is measured as the length of the wiring between the endpoints of the edge.
[0031] According to various aspects and embodiments of the present invention, all edges (links) are initially marked as unreserved. An edge (or link) is considered "reserved" if it has already been selected and assigned to a cluster of edges, or CL. For example, link 504 is a reserved link because it has been selected and assigned to CL1.
[0032] According to one embodiment of the present invention, edge clustering operates iteratively, applying two main steps at each iteration: (1) constructing edge clusters such as CL1, and (2) collapsing edges (links in CL1) to implement clusters.
[0033] FIG. 5 illustrates a map 500 of the set of identified clusters. The process outlined below, according to various aspects and embodiments of the present invention, identifies all possible edge clusters, labeled CL1, CL2, CL3, CL4, and CL5 in map 500. Potential clusters are groups of edges that are close to each other and point in the same direction. For clarity and simplicity, an exemplary implementation of cluster CL1 is described below, and a process overview is provided below. According to various aspects and embodiments of the present invention, map 550 illustrates the result of collapsing CL1, where three links 504 have been collapsed to result in link 562 and two new nodes 564 and 566. More specifically, the implementation of cluster CL1 involves removing all edges 504 of CL1 and inserting a single edge 562 connected to nodes 564 and 566. To maintain network connectivity of the input network, all starting points of CL1's original edges are connected to node 564, and all ending points of CL1's edges are connected from node 566. Thus, instead of using the three long edges 504 of CL1, after cluster grouping CL1 is implemented, the network now uses six small edges and one long edge or link 562 to respect the original connectivity. In this simple example, the cost of the cluster was the cardinality of the edges. According to one embodiment of the invention, the process starts with the largest cluster first, and so on. According to various aspects and embodiments of the invention, if the cost is a gain in wire length, then the cluster linking The routing implementation would have started from CL3 due to the wire length of each edge of the CL3 grouping.
[0034] As described in accordance with various aspects of the present invention, the process of edge clustering operates iteratively and involves grouping edges into distinct clusters, such as CL1, CL2, CL3, CL4, and CL5. Once the groupings of edges or CLs are identified, each CL is ranked in terms of its gain, which is the gain related to how much wire length reduction and / or performance improvement it achieves. The list of clusters (CLs) is then sorted in descending order of their calculated gain. The sorted list is then traversed, and the best cluster is selected for implementation. Once this is done, there are two possible cases. According to various aspects and embodiments of the present invention, if all edges in a cluster group are found to be acceptable and compatible, the implementation is valid and there is no need to update the remaining clusters. The process then selects the next best cluster in the sorted list and proceeds with that cluster implementation.
[0035] According to various aspects and embodiments of the present invention, if an edge is rejected because it introduces a new cycle or violates some of the specified constraints, the process removes that edge (link) from the current cluster. The process identifies whether the removed edge can be grouped in the next cluster. This ensures that all edges are considered for clustering and optimization.
[0036] The implementation of clusters of compatible, acceptable edges operates by considering all edges of the network or subnetwork provided as input. The process traverses all edges. For each edge, the process identifies whether collapsing the edge with other cluster edges could result in a cycle. Cycles are identified by a graph search across the network looking for paths connecting the predecessor and successor of the edge's endpoints. Edges that introduce cycles are removed or excluded from the cluster. According to various aspects and embodiments of the present invention, once a cluster is fully verified as cycle-free, it is implemented. The process then continues building and implementing the next cluster, and so on, until all edges have been considered. According to one aspect and embodiment of the present invention, to maintain runtime efficiency, the process checks for cycle-free acceptance only when a cluster is picked up for implementation. An advantage achieved is avoiding disqualifying good edges from cluster grouping with others early in the process.
[0037] The step of building clusters works iteratively. In each iteration, the process first creates an empty cluster CL and selects a longest edge (LE) from a set of unreserved edges (NBEs). Then, the process traverses the NBE and extracts edges that are moving in the same direction as the LE and whose endpoints are in the vicinity of the endpoints of the LE. Building clusters around the LE is an iterative process based on recalculating the edge centroids and recognizing / assimilating new edges in their vicinity. This scheme has the advantage of better covering the common cases of non-vertical and non-horizontal edges.
[0038] According to various aspects and embodiments of the present invention, only edges that are adjacent in the same direction and do not introduce cycles are kept in a cluster group. Once all edges have been marked as reserved and moved from the NBE set to the BE set, the cluster is ready to be implemented and the edges can be collapsed.
[0039] 6, 7, and 9, edge clustering is performed on the remaining cluster groups CL2, CL3, and CL5 in accordance with various aspects and embodiments of the present invention. The process for performing edge clustering is shown in Figure 6. In Figure 6, edge clustering is performed on CL2, resulting in edge 610 and nodes 620 and 630. In Figure 7, edge clustering is performed on CL3, resulting in edge 710 and nodes 720 and 730. In Figure 9, edge clustering is performed on CL5, resulting in edge 910, node 920, and node 930.
[0040] Referring now to FIG. 8 , edge cluster CL4 includes edge 810 and edge 820. Implementing edge clustering for CL4 would result in a single edge instead of edge 810 and edge 820, so implementing cluster grouping for CL4 would result in a cycle due to edge 820. Therefore, no implementation for CL4 occurs, the path is isolated, and the cycle-free nature of the network is maintained. According to various aspects of the present invention, if there are other edges in the region of edge 810 that could be selected to be part of another cluster, edge 810 is selected as part of another cluster and collapsed. This process is dynamic and continues to converge toward an optimal solution if alternative cluster grouping options are available and the floorplan allows.
[0041] 10A, a process for generating edge cluster groupings, such as CL, is shown, according to various aspects of the present invention. In step 1010, the system receives as input a network (or sub-network) that is cycle-free and assigns all edges to a set of NBEs. In step 1012, the system creates a new, empty cluster group CL to add edges to. NewIn step 1014, the system traverses the edges of the network and selects an LE from the set of NBEs, and the selected LE is added to the CL. In step 1016, the system identifies all NBEs near the selected LE and adds the adjacent edges to the CL. In step 1018, the system removes any adjacent edges added in step 1016 from the CL if the adjacent edges introduce a cycle or violate any network constraints. This results in an updated CL, and the set of edges can be implemented during the cluster implementation step. In step 1020, the system moves edges that are part of the CL from the set of NBEs to the set of BEs. In step 1022, the system performs cluster grouping and replaces edges in the CL with two new nodes N1 and N2 and new edges. Nodes N1 and N2 are connected by new edges. In step 1024, the system connects all nodes at the start of the CL to node N1 using short edges. In step 1026, the system connects all nodes at the end of the CL to node N2. In step 1028, the system determines whether there are any more edges in the NBEs or whether the set of NBEs is empty. If the set of NBEs is not empty, the system repeats the cluster grouping process by returning to step 1012. If the set of NBEs is empty, there are no more edges in the set of NBEs and the process ends.
[0042] 10B, a process for generating node clusters according to various aspects of the present invention is shown. In step 1070, the system receives as input a network having nodes (and links) and constraints. As outlined below in accordance with various embodiments of the present invention, the input network is an edge-clustered network. According to various aspects and embodiments of the present invention, the input network may be any network, including a network that has not been transformed using edge clustering. In step 1072, according to various aspects of the present invention, the nodes are traversed to determine or identify at least two nodes that can be combined to form a potential node cluster. According to one aspect of the present invention, in step 1072, all nodes are traversed. According to one aspect of the present invention, step At 1072, the nodes are traversed until at least two nodes that can be combined to form a potential node cluster are identified. At 1074, the identified nodes are selected to form the potential node cluster. At 1076, according to some aspects of the present invention, the remaining nodes are traversed. If at step 1078, other nodes that can be combined with the potential node cluster are identified, at step 1080, the identified nodes are added to the potential node cluster. If at step 1078, other nodes are not identified to add to the potential node cluster, at step 1082, the potential node cluster is collapsed as outlined below to form a new folded node. At step 1084, the system generates a transformed network using the new folded node. According to various aspects of the present invention, the system repeats the process on the transformed network until all different possible node clusters have been identified. Each iteration of the process can result in a new transformed network, and the process can be repeated on the new transformed network resulting from the previous iteration, as outlined in detail below in accordance with various aspects and embodiments of the invention disclosed herein.
[0043] Referring now to FIG. 11, an edge-clustered network 1100 is shown in accordance with various aspects and embodiments of the present invention. Network 1100 includes three trunks and eight possible node clusters, such as node cluster 1110. The system performs a transformation referred to as node clustering. A node cluster is a group of compatible, co-located nodes. A compatible node pair is one that keeps the resulting node within a maximum bound on the number of node input / output ports, a parameter of the method, and does not introduce new cycles into the network. A compatible pair should also adhere to performance goals if the system considers performance constraints and metrics.
[0044] Suitable nodes, such as switch elements, are grouped (clustered) to produce a network using fewer resources, such as fewer logic elements and fewer wires. The process of node clustering operates in an iterative, multi-pass manner. The system traverses a list of nodes. The system groups nodes into potential clusters based on their proximity in the floorplan. The system uses an iterative process that starts with one node and continues to add new nodes to the potential cluster by considering a "Manhattan Ball" around the bucket centroid. When the system can no longer add new nodes to a potential cluster, the potential cluster is considered fully formed. The system proceeds to start with a new node that is not already in any of the previously constructed potential clusters.
[0045] Using the possible node clusters, the system traverses the possible node clusters and performs a cost analysis of each with respect to a score function. According to one aspect of the invention, the score function is based on cluster size. According to one aspect of the invention, once all possible node clusters have been analyzed and cost values obtained, the system sorts the possible node clusters in descending order of their cost. According to various other aspects of the invention, the possible node clusters may be sorted in other manners, and the scope of the invention is not limited thereby.
[0046] The system traverses a sorted list of potential node clusters, processing them one at a time. For the currently selected potential node cluster, the system iteratively identifies all matching pairs of nodes and scores them for the gain they would provide if they were collapsed together. Various Aspects of the Invention According to various aspects of the invention, cost is expressed in terms of WL. According to various aspects of the invention, cost is expressed in terms of performance. According to various aspects of the invention, cost is expressed in terms of growth of merging nodes. According to various aspects of the invention, cost is expressed in terms of any combination of WL, performance, or growth. Once all pairs have been costed, the system selects the most compatible pair, removes the compatible pair from the list of candidate nodes, and performs a collapse of the compatible node pairs.
[0047] According to various aspects of the present invention, collapsing two nodes N1 and N2 involves removing nodes N1 and N2. The system then replaces the removed nodes with a new node N3. The system connects all predecessors of N1 and N2 to N3. The system then connects N3 to all successors of N1 and N2. The system updates all routes that passed through N1 and N2 with N3 to continue incrementally updating the routes. Once the system has updated all routes, it then updates the list of candidate nodes with the new node N3. The system also updates the costs of the affected candidate nodes. The system then selects a new top candidate pair and proceeds along the same lines. The system repeats this process iteratively until all nodes have been collapsed or there are no more acceptable pairs available for collapsing.
[0048] Referring now to FIG. 12 , potential node cluster 1110 of FIG. 11 is implemented in accordance with various aspects and embodiments of the present invention to generate resulting node 1210. The system selects two nodes from potential node cluster 1110 that are a compatible node pair and collapses them to generate a new node, as outlined above. This results in new potential node cluster 1202. The system repeats the implementation process for node cluster 1202 to generate another new potential node cluster 1204. This process is performed for node cluster 1204 to generate node cluster 1206. The compatible node pair of node cluster 1206 is implemented to generate node 1210. Once node 1210 is generated, there are no other nodes in the potential node cluster. According to various aspects of the present invention, if no further collapses can be performed within the current potential node cluster, the system moves on to the next potential node cluster. The system proceeds using the same scheme until all potential node clusters have been processed.
[0049] 13 , an input network is shown having possible node clusters 1310, 1320, 1330, 1340, 1350, 1360, 1370, and 1380, in accordance with various aspects and embodiments of the present invention. The numbering of the possible node clusters in this example is arbitrary and does not indicate their ranking in a sorted list. All nodes in possible node clusters 1310, 1320, 1330, 1340, 1350, and 1360 are permissible combinations that can be collapsed together. All nodes in possible node clusters 1370 and 1380 are not permissible combinations because collapsing these possible node clusters would result in an impermissible cycle.
[0050] Referring now to Figure 14, a final node clustering map 1400 for the input network of Figure 13 is shown. Map 1400 includes nodes that were part of collapsed clusters 1410, 1420, 1430, 1440, 1450, and 1460, as well as uncollapsed node clusters 1370 and 1380 (of Figure 13). In accordance with various aspects of the present invention, the resulting map 1400 results from the system repeating the implementation steps as many times as the clustering allows existing nodes to be collapsed and new nodes to be created. The system may then apply the clustering until no further convergence is obtained, as is evident from map 1400. Node clustering stops when no more nodes can be obtained by collapsing a pair of matching nodes. In accordance with various aspects of the present invention, the multiple passes performed by the system ensure that newly created nodes resulting from collapsing a pair of matching nodes are also considered for further growth and collapsing with other nodes.
[0051] According to some aspects and embodiments, the tool can be used to ensure that multiple iterations of synthesis are performed for incremental optimization of the NoC. After the system implements and runs the synthesis process, the results are generated in a machine-readable format, such as a computer file, that uses a well-defined format to capture information. The scope of the present invention is not limited by any particular format.
[0052] Certain methods according to various aspects of the present invention can be performed by instructions stored on a non-transitory computer-readable medium. The non-transitory computer-readable medium stores code including instructions that, when executed by one or more processors, cause a system or computer to perform the steps of the methods described herein. Non-transitory computer-readable media include rotating magnetic disks, rotating optical disks, flash random access memory (RAM) chips, and other mechanically moving or solid-state storage media. Any type of computer-readable medium is suitable for storing code including instructions according to various examples.
[0053] While specific examples have been described herein, it should be noted that different combinations of different components from different embodiments may be possible. Salient features are presented to better explain the embodiments. However, it will be apparent that certain features may be added, modified, and / or omitted without changing the functional aspects of these embodiments as described.
[0054] Various examples are methods that use any one or combination of machine behaviors. A method example is complete whenever most of the constituent steps are performed. For example, according to various aspects and embodiments of the present invention, an IP element or unit includes a processor (e.g., a CPU or GPU), random access memory (RAM—e.g., off-chip dynamic RAM or DRAM), and a network interface for wired or wireless connectivity, such as Ethernet, WiFi, 3G, 4G Long Term Evolution (LTE), 5G, and other air interface standard radios. The IP may also include various I / O interface devices, such as a keyboard and mouse, among others, for various peripheral devices, such as touchscreen sensors, geolocation receivers, microphones, speakers, Bluetooth peripherals, and USB devices, as needed. The processor performs the steps of the methods described herein by executing instructions stored in a RAM device.
[0055] Some examples are one or more non-transitory computer-readable media configured to store such instructions for the methods described herein. Any machine holding a non-transitory computer-readable medium containing any necessary code can perform the examples. Some examples may be implemented as a physical device such as a semiconductor chip, a hardware description language representation of the logical or functional behavior of such a device, and one or more non-transitory computer-readable media configured to store such hardware description language representations. Statements herein reciting principles, aspects, and embodiments encompass both structural and functional equivalents thereof. Elements described as coupled herein have a operative relationship that can be achieved by a direct connection or indirectly through one or more other intervening elements.
[0056] Those skilled in the art will recognize many modifications and variations. Modifications and variations include any relevant combination of the disclosed features. Statements herein reciting principles, aspects, and embodiments encompass both structural and functional equivalents thereof. Elements described herein as being "coupled" or "communicatively coupled" have an operative relationship that can be achieved by a direct connection or an indirect connection using one or more other intervening elements. Embodiments described herein as "communicating" or "in communication with" another device, module, or element include any form of communication or link and include an operative relationship. For example, a communication link can be established using a wired connection, a wireless protocol, a near-field protocol, or RFID.
[0057] To the extent that the terms "including," "includes," "having," "has," "with," or variations thereof are used in any of the detailed description and claims, such terms are intended to be as inclusive as the term "comprising."
[0058] The scope of the present invention, therefore, is not intended to be limited to the exemplary embodiments and aspects shown and described herein. Rather, the scope and spirit of the present invention is embodied by the appended claims.
Claims
1. 1. A method for network synthesis and transformation, comprising: receiving as input a network including a plurality of constraints on the network, the network including a plurality of edges; assigning all of the plurality of edges to a set of unreserved edges; clustering at least two edges selected from the set of unreserved edges to generate at least one edge cluster that conforms to the plurality of constraints; reassigning the at least two edges from the set of unreserved edges to a set of reserved edges; collapsing the edge cluster; generating a transformed network using the collapsed edge clusters; A method comprising:
2. The method of claim 1 , wherein the network is a cycle-free network and collapsing the edge clusters maintains the cycle-free nature of the transformed network.
3. The clustering step includes: generating an empty edge cluster; selecting a first edge from the plurality of edges; selecting the second edge from the plurality of edges such that the first edge and the second edge form a set of edges; assigning the set of edges to the empty edge cluster to generate the edge cluster; The method of claim 1 , comprising:
4. The method of claim 3 , wherein the second edge is selected if the second edge has characteristics in common with the first edge, the characteristics including the same direction and proximity.
5. generating a plurality of additional edge clusters by selecting edges from the set of unreserved edges; reassigning the selected edges to the set of reserved edges; sorting the plurality of additional edge clusters to generate a sorted list of edge clusters; processing the sorted list of edge clusters in descending order of gain using a gain function, where the edge cluster from the list of edge clusters having the highest gain is processed first; The method of claim 1 further comprising:
6. using network cycling to determine whether collapsing the edge clusters introduces a topological loop; if no topological loop is generated, performing the folding step; removing the two edges from the plurality of edges if a topological loop is generated; The method of claim 1 further comprising:
7. The folding step includes: replacing the edge cluster with a first node and a second node; connecting the first node and the second node by an edge; The method of claim 1 , comprising:
8. connecting all start nodes of the edge cluster to the first node; connecting all end nodes of the edge cluster to the second node; The method of claim 7 further comprising:
9. A non-transitory computer-readable medium for storing code that, when executed by one or more processors, causes the processors to: receiving a network including a plurality of edges and a plurality of constraints; assigning all of the plurality of edges to a set of unreserved edges; clustering at least two edges selected from the set of unreserved edges; generating at least one edge cluster that meets the plurality of constraints; assigning said at least two edges to a set of reserved edges; collapsing the edge cluster; generating a transformed network using the collapsed edge clusters; A non-transitory computer-readable medium for causing
10. 1. A method for transforming a network, comprising: receiving as input the network comprising a plurality of nodes; receiving as input a plurality of constraints for the network; combining at least two nodes selected from the plurality of nodes to form a first potential node cluster, the node cluster meeting the plurality of constraints; traversing the plurality of nodes to determine whether any other nodes can be added to the first potential node cluster; collapsing the first possible node cluster to generate a collapsed node; generating a transformed network using the collapsed nodes; A method comprising:
11. The method of claim 10 , wherein the nodes of the first cluster of nodes are closely spaced.
12. The method of claim 10 , wherein the network is a cycle-free network-on-chip (NoC).
13. generating a plurality of possible node clusters from the remaining plurality of nodes; constructing a list of possible node clusters from the first possible node cluster and the plurality of possible node clusters; sorting the list of potential node clusters using a gain function to assign a gain value to each potential node cluster in the list of potential node clusters; To generate a set of folded nodes, the possible nodes are selected based on the gain values. collapsing each possible node cluster in descending order from the sorted list of node clusters; updating the transformed network with the set of collapsed nodes to generate a second transformed network; The method of claim 10 further comprising:
14. The folding step includes: using a network cycle search at each construction step to determine whether any potential node clusters introduce a topological loop; if the topological loop is not generated, submitting the potential node cluster to folding; if the topological loop is created, eliminating the potential node cluster from the remaining plurality of nodes; updating the second transformed network; 14. The method of claim 13, comprising:
15. The step of collapsing the node cluster includes: selecting two nodes from the node cluster; removing the two nodes; adding new nodes to replace the two removed nodes; The method of claim 10, comprising:
16. connecting all predecessor nodes of the two removed nodes towards the new node; connecting the new node towards all successors of the two removed nodes; updating all routes passing through the two removed nodes with the new node to incrementally update route information in the network; 16. The method of claim 15, further comprising:
17. A non-transitory computer-readable medium for storing code that, when executed by one or more processors, causes the processors to: receiving a network including a plurality of nodes; receiving a plurality of constraints for the network; combining at least two nodes selected from the plurality of nodes to form a first potential node cluster, the first potential node cluster meeting the plurality of constraints; traversing the plurality of nodes to determine whether any other nodes can be added to the first potential node cluster; collapsing the first possible node cluster to generate a collapsed node; generating a transformed network using the collapsed nodes; A non-transitory computer-readable medium for causing
Citation Information
Patent Citations
Network topology system and topology and constructing method of routing table thereof
JP2019036936A
Using multiple traffic profiles to design a network on chip
US20150117261A1