diff options
author | Tushar Krishna <tushar@ece.gatech.edu> | 2016-10-06 14:35:18 -0400 |
---|---|---|
committer | Tushar Krishna <tushar@ece.gatech.edu> | 2016-10-06 14:35:18 -0400 |
commit | 003c08fa90f8b3eb7fbbbc96e0caa5f46bf58196 (patch) | |
tree | 13b408554ffbebd11ae2322e8a070a0c4d5b9c56 /configs/topologies/Cluster.py | |
parent | b9e23a6d741cdcdf0ffb7364c6aae36a487335ef (diff) | |
download | gem5-003c08fa90f8b3eb7fbbbc96e0caa5f46bf58196.tar.xz |
config: make internal links in network topology unidirectional.
This patch makes the internal links within the network topology
unidirectional, thus allowing any deadlock-free routing algorithms to
be specified from the topology itself using weights.
This patch also renames Mesh.py and MeshDirCorners.py to
Mesh_XY.py and MeshDirCorners_XY.py (Mesh with XY routing).
It also adds a Mesh_westfirst.py and CrossbarGarnet.py topologies.
Diffstat (limited to 'configs/topologies/Cluster.py')
-rw-r--r-- | configs/topologies/Cluster.py | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/configs/topologies/Cluster.py b/configs/topologies/Cluster.py index b146d8675..fad90856d 100644 --- a/configs/topologies/Cluster.py +++ b/configs/topologies/Cluster.py @@ -86,23 +86,30 @@ class Cluster(BaseTopology): node.makeTopology(options, network, IntLink, ExtLink, Router) # connect this cluster to the router - link = IntLink(link_id=self.num_int_links(), node_a=self.router, - node_b=node.router) + link_out = IntLink(link_id=self.num_int_links(), src_node=self.router, + dst_node_=node.router) + link_in = IntLink(link_id=self.num_int_links(), src_node=node.router, + dst_node_=self.router) if node.extBW: - link.bandwidth_factor = node.extBW + link_out.bandwidth_factor = node.extBW + link_in.bandwidth_factor = node.extBW - # if there is an interanl b/w for this node + # if there is an internal b/w for this node # and no ext b/w to override elif self.intBW: - link.bandwidth_factor = self.intBW + link_out.bandwidth_factor = self.intBW + link_in.bandwidth_factor = self.intBW if node.extLatency: - link.latency = node.extLatency + link_out.latency = node.extLatency + link_in.latency = node.extLatency elif self.intLatency: - link.latency = self.intLatency + link_out.latency = self.intLatency + link_in.latency = self.intLatency - network.int_links.append(link) + network.int_links.append(link_out) + network.int_links.append(link_in) else: # node is just a controller, # connect it to the router via a ext_link |