O3: When waiting to handle an interrupt, let everything drain out.
Review Request #780 - Created July 10, 2011 and submitted
| Information | |
|---|---|
| Gabe Black | |
| gem5 | |
| Reviewers | |
| Default | |
| ali, gblack, nate, stever | |
O3: When waiting to handle an interrupt, let everything drain out. Before this change, the commit stage would wait until the ROB and store queue were empty before recognizing an interrupt. The fetch stage would stop generating instructions at an appropriate point, so commit would then wait until a valid time to interrupt the instruction stream. Instructions might be in flight after fetch but not the in the ROB or store queue (in rename, for instance), so this change makes commit wait until all in flight instructions are finished.
Posted (July 16, 2011, 3:22 a.m.)
Why is it necessary for the machine to drain before handling an interrupt? This seems like an excessive overhead since all that needs to happen is a redirecting of the fetch stage and the change of a mode bit. Perhaps x86 has more overhead and does need something more extreme. Can we handle that with a fake instruction that has the proper flags set on it?
