summaryrefslogtreecommitdiff
path: root/src/mem/physical.hh
diff options
context:
space:
mode:
authorAli Saidi <Ali.Saidi@ARM.com>2012-01-25 17:18:25 +0000
committerAli Saidi <Ali.Saidi@ARM.com>2012-01-25 17:18:25 +0000
commite1c48dfce556ddb5ae2189dd8ef5ef542170b304 (patch)
treed36862bd47062acdc0444498236ed28d51890ee4 /src/mem/physical.hh
parent24c23009980a11dfba147fb4ed93329f4dcf4c0d (diff)
downloadgem5-e1c48dfce556ddb5ae2189dd8ef5ef542170b304.tar.xz
Mem: Add simple bandwidth stats to PhysicalMemory
Diffstat (limited to 'src/mem/physical.hh')
-rw-r--r--src/mem/physical.hh29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/mem/physical.hh b/src/mem/physical.hh
index 1e00d8f5b..b447237c7 100644
--- a/src/mem/physical.hh
+++ b/src/mem/physical.hh
@@ -38,11 +38,13 @@
#include <string>
#include "base/range.hh"
+#include "base/statistics.hh"
#include "mem/mem_object.hh"
#include "mem/packet.hh"
#include "mem/tport.hh"
#include "params/PhysicalMemory.hh"
#include "sim/eventq.hh"
+#include "sim/stats.hh"
//
// Functional model for a contiguous block of physical memory. (i.e. RAM)
@@ -154,6 +156,28 @@ class PhysicalMemory : public MemObject
uint64_t _size;
uint64_t _start;
+
+ /** Number of total bytes read from this memory */
+ Stats::Scalar bytesRead;
+ /** Number of instruction bytes read from this memory */
+ Stats::Scalar bytesInstRead;
+ /** Number of bytes written to this memory */
+ Stats::Scalar bytesWritten;
+ /** Number of read requests */
+ Stats::Scalar numReads;
+ /** Number of write requests */
+ Stats::Scalar numWrites;
+ /** Number of other requests */
+ Stats::Scalar numOther;
+ /** Read bandwidth from this memory */
+ Stats::Formula bwRead;
+ /** Read bandwidth from this memory */
+ Stats::Formula bwInstRead;
+ /** Write bandwidth from this memory */
+ Stats::Formula bwWrite;
+ /** Total bandwidth from this memory */
+ Stats::Formula bwTotal;
+
public:
uint64_t size() { return _size; }
uint64_t start() { return _start; }
@@ -182,6 +206,11 @@ class PhysicalMemory : public MemObject
virtual Tick calculateLatency(PacketPtr pkt);
public:
+ /**
+ * Register Statistics
+ */
+ void regStats();
+
virtual void serialize(std::ostream &os);
virtual void unserialize(Checkpoint *cp, const std::string &section);