On Sep 23, 2008, at 9:28 PM, Steve Reinhardt wrote: > I believe it's impossible fault on a microop in the middle of a > macroop and then resume where you left off in the middle of the > macroop flow. If you fault you will roll back to the state at the > beginning of the macroop and then on resuming from the fault you > either have to reexecute the macroop from the start or skip it > entirely. > > So it seems like the two cases where you're in the middle of a > macroop flow and you end the macroop are either (1) the final, > specially marked microop of the normal flow hits retire or (2) a > microop causes a fault and the whole macroop is discarded and the > fault handler is invoked. Interrupts don't count because you'd > never take an interrupt in the middle of a macroop. I think x86s string copy instruction is a case where you have to be able to take an fault (tlb) in the middle of the micro-op and then resume. Otherwise it would be possible to prevent the machine from making forward progress with a string copy that spanned more pages than the tlb holds.
Ali _______________________________________________ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev