diff options
author | Tushar Krishna <tushar@csail.mit.edu> | 2011-11-04 18:40:22 -0400 |
---|---|---|
committer | Tushar Krishna <tushar@csail.mit.edu> | 2011-11-04 18:40:22 -0400 |
commit | ac993964a93b7d2190aa178dc0d5c1c0ade4a966 (patch) | |
tree | 292a8fd447690367721ec955ac2b3895d09731df /configs | |
parent | 5ff6e05ffdf926523969de471044c9de8b00d593 (diff) | |
download | gem5-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')
-rw-r--r-- | configs/ruby/Ruby.py | 10 |
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. |