changeset 7edfd33b40e2 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=7edfd33b40e2
description:
ruby: register multiple memory controllers
Currently the Ruby System maintains pointer to only one of the memory
controllers. But there can be multiple controllers in the system. This
patch adds a vector of memory controllers.
diffstat:
src/mem/ruby/system/System.cc | 8 ++++++--
src/mem/ruby/system/System.hh | 4 ++--
2 files changed, 8 insertions(+), 4 deletions(-)
diffs (45 lines):
diff -r bfd2ccb8841b -r 7edfd33b40e2 src/mem/ruby/system/System.cc
--- a/src/mem/ruby/system/System.cc Mon Oct 15 17:27:16 2012 -0500
+++ b/src/mem/ruby/system/System.cc Mon Oct 15 17:27:17 2012 -0500
@@ -119,7 +119,7 @@
void
RubySystem::registerMemController(MemoryControl *mc) {
- m_memory_controller = mc;
+ m_memory_controller_vec.push_back(mc);
}
RubySystem::~RubySystem()
@@ -365,9 +365,13 @@
delete m_cache_recorder;
m_cache_recorder = NULL;
m_warmup_enabled = false;
+
// reset DRAM so that it's not waiting for events on the old event
// queue
- m_memory_controller->reset();
+ for (int i = 0; i < m_memory_controller_vec.size(); ++i) {
+ m_memory_controller_vec[i]->reset();
+ }
+
// Restore eventq head
eventq_head = eventq->replaceHead(eventq_head);
// Restore curTick and Ruby System's clock
diff -r bfd2ccb8841b -r 7edfd33b40e2 src/mem/ruby/system/System.hh
--- a/src/mem/ruby/system/System.hh Mon Oct 15 17:27:16 2012 -0500
+++ b/src/mem/ruby/system/System.hh Mon Oct 15 17:27:17 2012 -0500
@@ -152,12 +152,12 @@
static int m_memory_size_bits;
Network* m_network_ptr;
- MemoryControl *m_memory_controller;
+ std::vector<MemoryControl *> m_memory_controller_vec;
+ std::vector<AbstractController *> m_abs_cntrl_vec;
public:
Profiler* m_profiler_ptr;
MemoryVector* m_mem_vec_ptr;
- std::vector<AbstractController*> m_abs_cntrl_vec;
bool m_warmup_enabled;
bool m_cooldown_enabled;
CacheRecorder* m_cache_recorder;
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev