Hi all, I'm interested in getting this cleaned up but some minor
details need to be hashed out.

The first thing I would ask is there are a lot of places where there
is a Counter value and a Stat value holding the same value.
Apparently, you can't access the value of a stat so another variable
needs to be kept for book-keeping. It would be really nice if the stat
and counter could be merged. For instance, in simple cpu there is a
"numInst" (Counter) and a "numInsts" stat that get updated at the same
point.

Secondly,
Steve mentioned:
> sim_insts is the total across all cores, so we do need a per-core total.
The sim_insts is configured through the "totalInstructions" function
in BaseCPU.

In SimpleCPU, that function is just " return numInst - startNumInst;".
The startNumInst counter seems to be used to reset Stats, but its
usefulness got counted out by changeset 3125 (yr.2006) so I dont think
it's useful anymore. So I want to delete the use of startNumInst.

Third,
the naming scheme across CPU models for committed instructions should
be consistent but first some ambiguity needs to be cleared up.

All CPUs have:
sim_insts ... # Number of instructions simulated

SimpleCPU refers to:
num_inst ... # Number of instructions executed

O3CPU refers to:
system.cpu.commit.COM:count                      6403           #
Number of instructions committed
system.cpu.commit.commitCommittedInsts    6403           # The number
of committed instructions
system.cpu.committedInsts                           6386
# Number of Instructions Simulated
system.cpu.committedInsts_total                  6386              #
Number of Instructions Simulated

The ambiguity is in the meaning of "simulated", "executed", and
"committed". In O3, executed and committed would mean different things
obviously.

So should we use "num_inst" across cpu models to mean instructions
committed or  "committedInsts"?



Fourth,
> Why is there an "SMT side of things?"  I don't think we need two sets of
> stats (one for SMT and one not), we just need per-thread stats and a
> per-core total.  So I can see having two committed inst counts for
> system.cpu (one that's clearly labeled as thread 0's and one that's the core
> total), but not four.

For SMT, we can have a "num_inst" for per core and then I guess a
"num_inst_thread_x" for the per thread counts.

> I would really love it if O3 could use the same names as SimpleCPU for the
> stats that correspond.  I also don't like the all-caps bits like "COM:"...
> those are from waaay back in SimpleScalar days, and they're totally
> redundant wrt the "cpu.commit." prefix.  Renaming stats is a pretty big
> change that could break people's analysis scripts so it's not something we
> want to do lightly, but if we're going to rename them at all, I'd say we
> should try and go all the way to where we really want to be in one shot.
There are also a bunch of those prefixes in O3 for RENAME and
Writeback and etc.

On some level, I can understand in the IEW stage as there are multiple
"stages" within 1 stage to track. Using all-caps is probably a bit
annoying but for the IEW stage at least the prefixes are unnecessarily
redundant.

Once we can come to an agreement on these, i can come up with a patch
that changes the O3 stats for everyone to review...
-- 
- Korey
_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to