summaryrefslogtreecommitdiff
path: root/configs/ruby/Ruby.py
diff options
context:
space:
mode:
authorTushar Krishna <tushar@csail.mit.edu>2011-11-04 18:40:22 -0400
committerTushar Krishna <tushar@csail.mit.edu>2011-11-04 18:40:22 -0400
commitac993964a93b7d2190aa178dc0d5c1c0ade4a966 (patch)
tree292a8fd447690367721ec955ac2b3895d09731df /configs/ruby/Ruby.py
parent5ff6e05ffdf926523969de471044c9de8b00d593 (diff)
downloadgem5-ac993964a93b7d2190aa178dc0d5c1c0ade4a966.tar.xz
GARNET: adding a fault model for resilient on-chip network research.
This patch adds a fault model, which provides the probability of a number of architectural faults in the interconnection network (e.g., data corruption, misrouting). These probabilities can be used to realistically inject faults in GARNET and faithfully evaluate the effectiveness of novel resilient NoC architectures.
Diffstat (limited to 'configs/ruby/Ruby.py')
-rw-r--r--configs/ruby/Ruby.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/configs/ruby/Ruby.py b/configs/ruby/Ruby.py
index 9174709b4..e83e7f23f 100644
--- a/configs/ruby/Ruby.py
+++ b/configs/ruby/Ruby.py
@@ -40,6 +40,8 @@ def define_options(parser):
help="the number of rows in the mesh topology")
parser.add_option("--garnet-network", type="string", default=None,
help="'fixed'|'flexible'")
+ parser.add_option("--network-fault-model", action="store_true", default=False,
+ help="enable network fault model: see src/mem/ruby/network/fault_model/")
# ruby mapping options
parser.add_option("--numa-high-bit", type="int", default=0,
@@ -109,7 +111,13 @@ def create_system(options, system, piobus = None, dma_devices = []):
print "Error: could not create topology %s" % options.topology
raise
- network = NetworkClass(ruby_system = ruby, topology = net_topology)
+ if options.network_fault_model:
+ assert(options.garnet_network == "fixed")
+ fault_model = FaultModel()
+ network = NetworkClass(ruby_system = ruby, topology = net_topology,\
+ enable_fault_model=True, fault_model = fault_model)
+ else:
+ network = NetworkClass(ruby_system = ruby, topology = net_topology)
#
# Loop through the directory controlers.