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 /src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc | |
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 'src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc')
-rw-r--r-- | src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc b/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc index be9a92305..fccd73ee2 100644 --- a/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc +++ b/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc @@ -97,6 +97,23 @@ GarnetNetwork_d::init() NetworkLink_d* net_link = safe_cast<NetworkLink_d*>(*i); net_link->init_net_ptr(this); } + + // FaultModel: declare each router to the fault model + if(isFaultModelEnabled()){ + for (vector<Router_d*>::const_iterator i= m_router_ptr_vector.begin(); + i != m_router_ptr_vector.end(); ++i) { + Router_d* router = safe_cast<Router_d*>(*i); + int router_id=fault_model->declare_router(router->get_num_inports(), + router->get_num_outports(), + router->get_vc_per_vnet(), + getBuffersPerDataVC(), + getBuffersPerCtrlVC()); + assert(router_id == router->get_id()); + router->printAggregateFaultProbability(cout); + router->printFaultVector(cout); + } + } + } GarnetNetwork_d::~GarnetNetwork_d() |