"Number of outstanding ITLB misses that were squashed"),
ADD_STAT(nisnDist,
"Number of instructions fetched each cycle (Total)"),
- ADD_STAT(idleRate, "Percent of cycles fetch was idle",
- idleCycles * 100 / cpu->baseStats.numCycles),
+ ADD_STAT(idleRate, "Ratio of cycles fetch was idle",
+ idleCycles / cpu->baseStats.numCycles),
ADD_STAT(branchRate, "Number of branch fetches per cycle",
branches / cpu->baseStats.numCycles),
ADD_STAT(rate, "Number of inst fetches per cycle",
ADD_STAT(condIncorrect, "Number of conditional branches incorrect"),
ADD_STAT(BTBLookups, "Number of BTB lookups"),
ADD_STAT(BTBHits, "Number of BTB hits"),
- ADD_STAT(BTBHitPct, "BTB Hit Percentage",
- (BTBHits / BTBLookups) * 100),
+ ADD_STAT(BTBHitRatio, "BTB Hit Ratio", BTBHits / BTBLookups),
ADD_STAT(RASUsed, "Number of times the RAS was used to get a target."),
ADD_STAT(RASIncorrect, "Number of incorrect RAS predictions."),
ADD_STAT(indirectLookups, "Number of indirect predictor lookups."),
ADD_STAT(indirectMispredicted, "Number of mispredicted indirect"
" branches.")
{
- BTBHitPct.precision(6);
+ BTBHitRatio.precision(6);
}
ProbePoints::PMUUPtr
Stats::Scalar BTBLookups;
/** Stat for number of BTB hits. */
Stats::Scalar BTBHits;
- /** Stat for percent times an entry in BTB found. */
- Stats::Formula BTBHitPct;
+ /** Stat for the ratio between BTB hits and BTB lookups. */
+ Stats::Formula BTBHitRatio;
/** Stat for number of times the RAS is used to get a target. */
Stats::Scalar RASUsed;
/** Stat for number of times the RAS is incorrect. */
ADD_STAT(bytesWrittenSys,
"Total written bytes from the system interface side"),
- ADD_STAT(avgRdBWSys, "Average system read bandwidth in MiByte/s"),
- ADD_STAT(avgWrBWSys, "Average system write bandwidth in MiByte/s"),
+ ADD_STAT(avgRdBWSys, "Average system read bandwidth in Byte/s"),
+ ADD_STAT(avgWrBWSys, "Average system write bandwidth in Byte/s"),
ADD_STAT(totGap, "Total gap between requests"),
ADD_STAT(avgGap, "Average gap between requests"),
.init(ctrl.writeBufferSize)
.flags(nozero);
- avgRdBWSys.precision(2);
- avgWrBWSys.precision(2);
+ avgRdBWSys.precision(8);
+ avgWrBWSys.precision(8);
avgGap.precision(2);
// per-requestor bytes read and written to memory
}
// Formula stats
- avgRdBWSys = (bytesReadSys / 1000000) / simSeconds;
- avgWrBWSys = (bytesWrittenSys / 1000000) / simSeconds;
+ avgRdBWSys = (bytesReadSys) / simSeconds;
+ avgWrBWSys = (bytesWrittenSys) / simSeconds;
avgGap = totGap / (readReqs + writeReqs);
port(_port), xbar(_xbar), _name(xbar.name() + "." + _name), state(IDLE),
waitingForPeer(NULL), releaseEvent([this]{ releaseLayer(); }, name()),
ADD_STAT(occupancy, "Layer occupancy (ticks)"),
- ADD_STAT(utilization, "Layer utilization (%)")
+ ADD_STAT(utilization, "Layer utilization")
{
occupancy
.flags(Stats::nozero);
.precision(1)
.flags(Stats::nozero);
- utilization = 100 * occupancy / simTicks;
+ utilization = occupancy / simTicks;
}
template <typename SrcType, typename DstType>