cpu: Add Units to cpu stats

Change-Id: I387b2e9f6ecf62757242056f732bd443c457ebea
Signed-off-by: Hoa Nguyen <hoanguyen@ucdavis.edu>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/39095
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu>
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu>
This commit is contained in:
Hoa Nguyen
2021-01-14 04:10:48 -08:00
parent c5c0dd9a24
commit 65bbd5fa2a
25 changed files with 506 additions and 387 deletions

View File

@@ -85,53 +85,66 @@ class SimpleExecContext : public ExecContext
: Stats::Group(cpu,
csprintf("exec_context.thread_%i",
thread->threadId()).c_str()),
ADD_STAT(numInsts, "Number of instructions committed"),
ADD_STAT(numOps,
ADD_STAT(numInsts, UNIT_COUNT,
"Number of instructions committed"),
ADD_STAT(numOps, UNIT_COUNT,
"Number of ops (including micro ops) committed"),
ADD_STAT(numIntAluAccesses, "Number of integer alu accesses"),
ADD_STAT(numFpAluAccesses, "Number of float alu accesses"),
ADD_STAT(numVecAluAccesses, "Number of vector alu accesses"),
ADD_STAT(numCallsReturns,
ADD_STAT(numIntAluAccesses, UNIT_COUNT,
"Number of integer alu accesses"),
ADD_STAT(numFpAluAccesses, UNIT_COUNT,
"Number of float alu accesses"),
ADD_STAT(numVecAluAccesses, UNIT_COUNT,
"Number of vector alu accesses"),
ADD_STAT(numCallsReturns, UNIT_COUNT,
"Number of times a function call or return occured"),
ADD_STAT(numCondCtrlInsts,
ADD_STAT(numCondCtrlInsts, UNIT_COUNT,
"Number of instructions that are conditional controls"),
ADD_STAT(numIntInsts, "Number of integer instructions"),
ADD_STAT(numFpInsts, "Number of float instructions"),
ADD_STAT(numVecInsts, "Number of vector instructions"),
ADD_STAT(numIntRegReads,
ADD_STAT(numIntInsts, UNIT_COUNT,
"Number of integer instructions"),
ADD_STAT(numFpInsts, UNIT_COUNT, "Number of float instructions"),
ADD_STAT(numVecInsts, UNIT_COUNT,
"Number of vector instructions"),
ADD_STAT(numIntRegReads, UNIT_COUNT,
"Number of times the integer registers were read"),
ADD_STAT(numIntRegWrites,
ADD_STAT(numIntRegWrites, UNIT_COUNT,
"Number of times the integer registers were written"),
ADD_STAT(numFpRegReads,
ADD_STAT(numFpRegReads, UNIT_COUNT,
"Number of times the floating registers were read"),
ADD_STAT(numFpRegWrites,
ADD_STAT(numFpRegWrites, UNIT_COUNT,
"Number of times the floating registers were written"),
ADD_STAT(numVecRegReads,
ADD_STAT(numVecRegReads, UNIT_COUNT,
"Number of times the vector registers were read"),
ADD_STAT(numVecRegWrites,
ADD_STAT(numVecRegWrites, UNIT_COUNT,
"Number of times the vector registers were written"),
ADD_STAT(numVecPredRegReads,
ADD_STAT(numVecPredRegReads, UNIT_COUNT,
"Number of times the predicate registers were read"),
ADD_STAT(numVecPredRegWrites,
ADD_STAT(numVecPredRegWrites, UNIT_COUNT,
"Number of times the predicate registers were written"),
ADD_STAT(numCCRegReads,
ADD_STAT(numCCRegReads, UNIT_COUNT,
"Number of times the CC registers were read"),
ADD_STAT(numCCRegWrites,
ADD_STAT(numCCRegWrites, UNIT_COUNT,
"Number of times the CC registers were written"),
ADD_STAT(numMemRefs, "Number of memory refs"),
ADD_STAT(numLoadInsts, "Number of load instructions"),
ADD_STAT(numStoreInsts, "Number of store instructions"),
ADD_STAT(numIdleCycles, "Number of idle cycles"),
ADD_STAT(numBusyCycles, "Number of busy cycles"),
ADD_STAT(notIdleFraction, "Percentage of non-idle cycles"),
ADD_STAT(idleFraction, "Percentage of idle cycles"),
ADD_STAT(icacheStallCycles, "ICache total stall cycles"),
ADD_STAT(dcacheStallCycles, "DCache total stall cycles"),
ADD_STAT(numBranches, "Number of branches fetched"),
ADD_STAT(numPredictedBranches,
ADD_STAT(numMemRefs, UNIT_COUNT, "Number of memory refs"),
ADD_STAT(numLoadInsts, UNIT_COUNT,
"Number of load instructions"),
ADD_STAT(numStoreInsts, UNIT_COUNT,
"Number of store instructions"),
ADD_STAT(numIdleCycles, UNIT_CYCLE, "Number of idle cycles"),
ADD_STAT(numBusyCycles, UNIT_CYCLE, "Number of busy cycles"),
ADD_STAT(notIdleFraction, UNIT_RATIO,
"Percentage of non-idle cycles"),
ADD_STAT(idleFraction, UNIT_RATIO, "Percentage of idle cycles"),
ADD_STAT(icacheStallCycles, UNIT_CYCLE,
"ICache total stall cycles"),
ADD_STAT(dcacheStallCycles, UNIT_CYCLE,
"DCache total stall cycles"),
ADD_STAT(numBranches, UNIT_COUNT, "Number of branches fetched"),
ADD_STAT(numPredictedBranches, UNIT_COUNT,
"Number of branches predicted as taken"),
ADD_STAT(numBranchMispred, "Number of branch mispredictions"),
ADD_STAT(statExecutedInstType, "Class of executed instruction.")
ADD_STAT(numBranchMispred, UNIT_COUNT,
"Number of branch mispredictions"),
ADD_STAT(statExecutedInstType, UNIT_COUNT,
"Class of executed instruction.")
{
numCCRegReads
.flags(Stats::nozero);