summaryrefslogtreecommitdiff
path: root/configs/topologies/Cluster.py
diff options
context:
space:
mode:
authorTushar Krishna <tushar@ece.gatech.edu>2016-10-06 14:35:18 -0400
committerTushar Krishna <tushar@ece.gatech.edu>2016-10-06 14:35:18 -0400
commit003c08fa90f8b3eb7fbbbc96e0caa5f46bf58196 (patch)
tree13b408554ffbebd11ae2322e8a070a0c4d5b9c56 /configs/topologies/Cluster.py
parentb9e23a6d741cdcdf0ffb7364c6aae36a487335ef (diff)
downloadgem5-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.py23
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