Hoa Nguyen has uploaded this change for review. (
https://gem5-review.googlesource.com/c/public/gem5/+/36075 )
Change subject: cpu-minor,stats: Update stats style of MinorCPU
......................................................................
cpu-minor,stats: Update stats style of MinorCPU
Change-Id: Id14e6816cc82603459bf68461ae40bf2b63080eb
Signed-off-by: Hoa Nguyen <hoangu...@ucdavis.edu>
---
M src/cpu/minor/cpu.cc
M src/cpu/minor/stats.cc
M src/cpu/minor/stats.hh
3 files changed, 40 insertions(+), 10 deletions(-)
diff --git a/src/cpu/minor/cpu.cc b/src/cpu/minor/cpu.cc
index 2bff55d..852ac37 100644
--- a/src/cpu/minor/cpu.cc
+++ b/src/cpu/minor/cpu.cc
@@ -47,7 +47,8 @@
MinorCPU::MinorCPU(const MinorCPUParams ¶ms) :
BaseCPU(params),
- threadPolicy(params.threadPolicy)
+ threadPolicy(params.threadPolicy),
+ stats(this, *this)
{
/* This is only written for one thread at the moment */
Minor::MinorThread *thread;
diff --git a/src/cpu/minor/stats.cc b/src/cpu/minor/stats.cc
index 5de820d..49dc918 100644
--- a/src/cpu/minor/stats.cc
+++ b/src/cpu/minor/stats.cc
@@ -40,9 +40,41 @@
namespace Minor
{
-MinorStats::MinorStats()
-{ }
+MinorStats::MinorStats(Stats::Group *parent, BaseCPU &baseCpu)
+ : Stats::Group(parent, "MinorCPU"),
+ ADD_STAT(numInsts, "Number of instructions committed"),
+ ADD_STAT(numOps, "Number of ops (including micro ops) committed"),
+ ADD_STAT(numDiscardedOps, "Number of ops (including micro ops) which
were"
+ " discarded before commit"),
+ ADD_STAT(numFetchSuspends, "Number of times Execute suspended
instruction"
+ " fetching"),
+ ADD_STAT(quiesceCycles, "Total number of cycles that CPU has spent"
+ " quiesced or waiting for an interrupt"),
+ ADD_STAT(cpi, "CPI: cycles per instruction"),
+ ADD_STAT(ipc, "IPC: instructions per cycle"),
+ ADD_STAT(committedInstType, "Class of committed instruction")
+{
+ using namespace Stats;
+ quiesceCycles.prereq(quiesceCycles);
+
+ cpi.precision(6);
+
+ ipc.precision(6);
+
+}
+
+void MinorStats::regStats(const std::string &name, BaseCPU &baseCpu)
+{
+ cpi = baseCpu.numCycles / numInsts;
+ ipc = numInsts / baseCpu.numCycles;
+ committedInstType
+ .init(baseCpu.numThreads, Enums::Num_OpClass)
+ .flags(Stats::total | Stats::pdf | Stats::dist);
+ committedInstType.ysubnames(Enums::OpClassStrings);
+}
+
+/*
void
MinorStats::regStats(const std::string &name, BaseCPU &baseCpu)
{
@@ -88,5 +120,5 @@
.flags(Stats::total | Stats::pdf | Stats::dist);
committedInstType.ysubnames(Enums::OpClassStrings);
}
-
+*/
};
diff --git a/src/cpu/minor/stats.hh b/src/cpu/minor/stats.hh
index 3ee678a..503cecf 100644
--- a/src/cpu/minor/stats.hh
+++ b/src/cpu/minor/stats.hh
@@ -52,9 +52,10 @@
{
/** Currently unused stats class. */
-class MinorStats
+struct MinorStats : public Stats::Group
{
- public:
+ MinorStats(Stats::Group *parent, BaseCPU &baseCpu);
+
/** Number of simulated instructions */
Stats::Scalar numInsts;
@@ -77,10 +78,6 @@
/** Number of instructions by type (OpClass) */
Stats::Vector2d committedInstType;
- public:
- MinorStats();
-
- public:
void regStats(const std::string &name, BaseCPU &baseCpu);
};
--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/36075
To unsubscribe, or for help writing mail filters, visit
https://gem5-review.googlesource.com/settings
Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: Id14e6816cc82603459bf68461ae40bf2b63080eb
Gerrit-Change-Number: 36075
Gerrit-PatchSet: 1
Gerrit-Owner: Hoa Nguyen <hoangu...@ucdavis.edu>
Gerrit-MessageType: newchange
_______________________________________________
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s