I recall going over this with Kevin when he was designing O3: faults
are signaled when an instruction marked as faulting reaches commit,
but when the fault is on the instruction fetch itself then you have no
actual instruction to mark as faulting.  Hence in this one specific
case you have to synthesize a no-op just to have something to mark as
faulting.

Korey, do you recall what smtNumFetchingThreads does with respect to
the fetch stage?  What I believe Rick is saying is that without
explicitly setting this variable to 1 then O3 *is* fetching from two
different threads in the same cycle, which is causing the problem
(since the bug is that one of them overwrites the other's fetch fault
no-op).  If you're saying that it wasn't designed to do that, but in
reality it is doing that in the default configuration, then that
sounds bad.

Steve

On Sun, Jul 6, 2008 at 7:07 PM, Gabe Black <[EMAIL PROTECTED]> wrote:
> The TLB code didn't add anything with a noop, although I do remember
> seeing something like that in there to carry faults down to commit.
>
> Gabe
_______________________________________________
m5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users

Reply via email to