Hi Everyone,

As part of my current project I need to grab the # of instructions in the
LSQ, IQ and ROB or just "executing instructions; therefore not in IQ/LSQ"
per thread per cycle. I am working with O3 and I have looked at the code up
and down, but I am still having some problems.

Currently I am "sampling"

For ROB -> threadEntries[ ]
For LSQ -> using getCount( tid )
For IQ ->    using count[ ]

At every tick() in cpu.cc I sample these variables and do ROB - ( LSQ + IQ)
to get the "executing instructions". At the "worst case" I expect that
substraction to be 0. This is becasue all instructions in the ROB must be
either executing or in the LSQ/IQ. However, sometimes I see negative values.


Are these variables the correct ones to sample? Is for some reason, these
variables updated in different cycles or updated in a way the above
statement (ROB - (LSQ + IQ)) >= 0 would not hold (e.g when instructions are
non-speculative or during squashes)?

I'd appreciate any help,

Javier
_______________________________________________
m5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users

Reply via email to