diff options
author | Ali Saidi <Ali.Saidi@ARM.com> | 2012-01-25 17:18:25 +0000 |
---|---|---|
committer | Ali Saidi <Ali.Saidi@ARM.com> | 2012-01-25 17:18:25 +0000 |
commit | e1c48dfce556ddb5ae2189dd8ef5ef542170b304 (patch) | |
tree | d36862bd47062acdc0444498236ed28d51890ee4 /src/mem/physical.hh | |
parent | 24c23009980a11dfba147fb4ed93329f4dcf4c0d (diff) | |
download | gem5-e1c48dfce556ddb5ae2189dd8ef5ef542170b304.tar.xz |
Mem: Add simple bandwidth stats to PhysicalMemory
Diffstat (limited to 'src/mem/physical.hh')
-rw-r--r-- | src/mem/physical.hh | 29 |
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 §ion); |