overallAvgMshrUncacheableLatency.subname(i, system->getMasterName(i));
}
+ replacements
+ .name(name() + ".replacements")
+ .desc("number of replacements")
+ ;
}
/** The average overall latency of an MSHR miss. */
Stats::Formula overallAvgMshrUncacheableLatency;
+ /** Number of replacements of valid blocks. */
+ Stats::Scalar replacements;
+
/**
* @}
*/
#include "mem/cache/tags/base.hh"
-#include "cpu/smt.hh" //maxThreadsPerCPU
#include "mem/cache/base.hh"
#include "sim/sim_exit.hh"
// found block might not actually be replaced there if the
// coherence protocol says it can't be.
if (blk->isValid()) {
- replacements[0]++;
totalRefs += blk->refCount;
++sampledRefs;
using namespace Stats;
- replacements
- .init(maxThreadsPerCPU)
- .name(name() + ".replacements")
- .desc("number of replacements")
- .flags(total)
- ;
-
tagsInUse
.name(name() + ".tagsinuse")
.desc("Cycle average of tags in use")
* @{
*/
- /** Number of replacements of valid blocks per thread. */
- Stats::Vector replacements;
/** Per cycle average of the number of tags that hold valid data. */
Stats::Average tagsInUse;