summaryrefslogtreecommitdiff
path: root/src/mem/ruby/system/System.hh
diff options
context:
space:
mode:
authorNilay Vaish <nilay@cs.wisc.edu>2014-01-10 16:19:47 -0600
committerNilay Vaish <nilay@cs.wisc.edu>2014-01-10 16:19:47 -0600
commit407f37e15f19a2da350a94272ac7739891e935f4 (patch)
treedb413665cc1d2fc411b960339e1653cce0e182e8 /src/mem/ruby/system/System.hh
parentcfe912a5127b51273d7e3e78c15095ac832f20bd (diff)
downloadgem5-407f37e15f19a2da350a94272ac7739891e935f4.tar.xz
ruby: move all statistics to stats.txt, eliminate ruby.stats
Diffstat (limited to 'src/mem/ruby/system/System.hh')
-rw-r--r--src/mem/ruby/system/System.hh51
1 files changed, 17 insertions, 34 deletions
diff --git a/src/mem/ruby/system/System.hh b/src/mem/ruby/system/System.hh
index 474741bf7..de35116d4 100644
--- a/src/mem/ruby/system/System.hh
+++ b/src/mem/ruby/system/System.hh
@@ -39,16 +39,16 @@
#include "base/output.hh"
#include "mem/packet.hh"
#include "mem/ruby/common/Global.hh"
+#include "mem/ruby/profiler/Profiler.hh"
#include "mem/ruby/recorder/CacheRecorder.hh"
#include "mem/ruby/slicc_interface/AbstractController.hh"
+#include "mem/ruby/system/MemoryControl.hh"
#include "mem/ruby/system/MemoryVector.hh"
#include "mem/ruby/system/SparseMemory.hh"
#include "params/RubySystem.hh"
#include "sim/clocked_object.hh"
class Network;
-class Profiler;
-class MemoryControl;
class RubySystem : public ClockedObject
{
@@ -84,27 +84,27 @@ class RubySystem : public ClockedObject
Network*
getNetwork()
{
- assert(m_network_ptr != NULL);
- return m_network_ptr;
+ assert(m_network != NULL);
+ return m_network;
}
Profiler*
getProfiler()
{
- assert(m_profiler_ptr != NULL);
- return m_profiler_ptr;
+ assert(m_profiler != NULL);
+ return m_profiler;
}
MemoryVector*
getMemoryVector()
{
- assert(m_mem_vec_ptr != NULL);
- return m_mem_vec_ptr;
+ assert(m_mem_vec != NULL);
+ return m_mem_vec;
}
- void printStats(std::ostream& out);
+ void regStats() { m_profiler->regStats(name()); }
+ void collateStats() { m_profiler->collateStats(); }
void resetStats();
- void print(std::ostream& out) const;
void serialize(std::ostream &os);
void unserialize(Checkpoint *cp, const std::string &section);
@@ -114,7 +114,6 @@ class RubySystem : public ClockedObject
bool functionalWrite(Packet *ptr);
void registerNetwork(Network*);
- void registerProfiler(Profiler*);
void registerAbstractController(AbstractController*);
void registerSparseMemory(SparseMemory*);
void registerMemController(MemoryControl *mc);
@@ -146,44 +145,28 @@ class RubySystem : public ClockedObject
static uint64_t m_memory_size_bytes;
static uint32_t m_memory_size_bits;
- Network* m_network_ptr;
+ Network* m_network;
std::vector<MemoryControl *> m_memory_controller_vec;
std::vector<AbstractController *> m_abs_cntrl_vec;
public:
- Profiler* m_profiler_ptr;
- MemoryVector* m_mem_vec_ptr;
+ Profiler* m_profiler;
+ MemoryVector* m_mem_vec;
bool m_warmup_enabled;
bool m_cooldown_enabled;
CacheRecorder* m_cache_recorder;
std::vector<SparseMemory*> m_sparse_memory_vector;
};
-inline std::ostream&
-operator<<(std::ostream& out, const RubySystem& obj)
-{
- //obj.print(out);
- out << std::flush;
- return out;
-}
-
-class RubyDumpStatsCallback : public Callback
+class RubyStatsCallback : public Callback
{
private:
- std::ostream *os;
RubySystem *ruby_system;
public:
- virtual ~RubyDumpStatsCallback() {}
-
- RubyDumpStatsCallback(const std::string& _stats_filename,
- RubySystem *system)
- {
- os = simout.create(_stats_filename);
- ruby_system = system;
- }
-
- void process();
+ virtual ~RubyStatsCallback() {}
+ RubyStatsCallback(RubySystem *system) : ruby_system(system) {}
+ void process() { ruby_system->collateStats(); }
};
#endif // __MEM_RUBY_SYSTEM_SYSTEM_HH__