> I was wondering, in the case of the O3 cpu model, is there a way to
> calculate the number of cycles an instruction spends in stalls at the
> head of the ROB?
>
For the most part, if there isnt a statistic available that you see from the
stats file then it's something you need to calculate yourself off of current
stats or something you need to get your hands dirty on add some code to get
the data you need.

So, 1st, check the current stat outputs and see what commit stage and ROB
stats are given. Then, if you have to do your own thing, your going to have
to figure out specifically of what stat you need to generate because
currently its a bit ambigous:
- Do you want an average cycles per instruction for the ROB? (
- Do you want the total cycles?
- Do you want some fraction of cycles in the ROB before commit?
- etc. etc.
Check the m5sim.org page for some light documentation on Stats types
(averages, distributions, formulas, etc.) that can help you to start and
then there are plenty of examples in the code. If you've tried something and
need a hint or two to figure out a problem, the m5-dev list can be a pretty
good community.

There is already flags per instruction that tell you where it is in the
pipeline (cpu/dyn_inst.hh I believe), so you can say someting like
inst->isInRob() or something like that to verify. maybe you can add
something to keep track of the cycle that an instruction enters the ROB and
then when an instruction commits, you can use that info to generate whatever
stat you need... (rob_impl.hh, and commit_impl.hh will be relevant files I
would think)


> Also, for the simple cpu model, is there a ROB? I would think that it
> doesn't, but I just want to make sure.
>
Nope. Nothing simple about out of order execution :)



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

Reply via email to