On Mon, 15 Jul 2013, Ali Saidi wrote:

I'm not making a guess,
I'm looking at the source code. No where in it does the fetch stage move
to the "idle" state:

10:15:45 [ ~/work/gem5] find src/cpu/o3/fetch* |
xargs grep "=.*Idle"
src/cpu/o3/fetch_impl.hh: idleRate =
fetchIdleCycles * 100 / cpu->numCycles;
src/cpu/o3/fetch_impl.hh:
assert(fetchStatus[i] == Idle ||
stalls[i].drain);
src/cpu/o3/fetch_impl.hh: if (!(fetchStatus[i] == Idle
||
src/cpu/o3/fetch_impl.hh: if (fetchStatus[tid] == Idle)
{
src/cpu/o3/fetch_impl.hh: fetchStatus[tid] == Idle)
{
src/cpu/o3/fetch_impl.hh: fetchStatus[high_pri] == Idle)
{
src/cpu/o3/fetch_impl.hh: fetchStatus[high_pri] ==
Idle)
src/cpu/o3/fetch_impl.hh: fetchStatus[high_pri] == Idle)

Idle in
this case means idle from the simulators point of view not the guest
operating system. I believe the only way it's Idle (although I happily
admit all the CPU states aren't crisply defined), is it's initialized to
Idle before the simulation starts.


We are not talking about the fetchStatus here.

--
Nilay
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to