diff options
author | Andreas Sandberg <andreas.sandberg@arm.com> | 2019-09-23 18:20:23 +0100 |
---|---|---|
committer | Andreas Sandberg <andreas.sandberg@arm.com> | 2019-09-30 12:33:47 +0000 |
commit | 76384ec3ff2a52898aa35a27d337194ae557648a (patch) | |
tree | f403d38cb5fb050b60f5299d60d908abc504ecf4 /src/mem/qos/mem_ctrl.hh | |
parent | a060ac86307311587d05d280ee1f4cbdb84fe98a (diff) | |
download | gem5-76384ec3ff2a52898aa35a27d337194ae557648a.tar.xz |
mem: Convert DRAM controller to new-style stats
Note that this changes the stat format used by the DRAM
controller. Previously, it would have a structure looking a bit like
this:
- system
- dram: Main DRAM controller
- dram_0: Rank 0
- dram_1: Rank 1
This structure can't be replicated with new-world stats since stats
are confined to the SimObject name space. This means that the new
structure looks like this:
- system
- dram: Main DRAM controller
- rank0: Rank 0
- rank1: Rank 1
Change-Id: I7435cfaf137c94b0c18de619d816362dd0da8125
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/21142
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Reviewed-by: Wendy Elsasser <wendy.elsasser@arm.com>
Diffstat (limited to 'src/mem/qos/mem_ctrl.hh')
-rw-r--r-- | src/mem/qos/mem_ctrl.hh | 51 |
1 files changed, 30 insertions, 21 deletions
diff --git a/src/mem/qos/mem_ctrl.hh b/src/mem/qos/mem_ctrl.hh index db85f276d..e31f21b23 100644 --- a/src/mem/qos/mem_ctrl.hh +++ b/src/mem/qos/mem_ctrl.hh @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 ARM Limited + * Copyright (c) 2019 ARM Limited * All rights reserved * * The license below extends only to copyright in the software and shall @@ -123,26 +123,35 @@ class MemCtrl: public AbstractMemory /** bus state for next request event triggered */ BusState busStateNext; - /** per-master average QoS priority */ - Stats::VectorStandardDeviation avgPriority; - /** per-master average QoS distance between assigned and queued values */ - Stats::VectorStandardDeviation avgPriorityDistance; - - /** per-priority minimum latency */ - Stats::Vector priorityMinLatency; - /** per-priority maximum latency */ - Stats::Vector priorityMaxLatency; - /** Count the number of turnarounds READ to WRITE */ - Stats::Scalar numReadWriteTurnArounds; - /** Count the number of turnarounds WRITE to READ */ - Stats::Scalar numWriteReadTurnArounds; - /** Count the number of times bus staying in READ state */ - Stats::Scalar numStayReadState; - /** Count the number of times bus staying in WRITE state */ - Stats::Scalar numStayWriteState; - - /** registers statistics */ - void regStats() override; + struct MemCtrlStats : public Stats::Group + { + MemCtrlStats(MemCtrl &mc); + + void regStats() override; + + const MemCtrl &memCtrl; + + /** per-master average QoS priority */ + Stats::VectorStandardDeviation avgPriority; + /** + * per-master average QoS distance between assigned and + * queued values + */ + Stats::VectorStandardDeviation avgPriorityDistance; + + /** per-priority minimum latency */ + Stats::Vector priorityMinLatency; + /** per-priority maximum latency */ + Stats::Vector priorityMaxLatency; + /** Count the number of turnarounds READ to WRITE */ + Stats::Scalar numReadWriteTurnArounds; + /** Count the number of turnarounds WRITE to READ */ + Stats::Scalar numWriteReadTurnArounds; + /** Count the number of times bus staying in READ state */ + Stats::Scalar numStayReadState; + /** Count the number of times bus staying in WRITE state */ + Stats::Scalar numStayWriteState; + } stats; /** * Initializes dynamically counters and |