Korey is pretty much correct. The miscellaneous registers are read at any time, but they're only written at commit. So if you're updating the state in some way that effects future instructions the code that does the update must be marked IsSerializeAfter which prevents any future instructions from issuing until the current one commits.
Ali On May 29, 2011, at 11:49 PM, Korey Sewell wrote: > > If you don't mind my asking, how is this made safe? Is it some form of > speculation? > Misc. registers refer to non-speculative system state, so any instruction > that is going to change these is typically marked with a Serializing or > IsNonSpeculative flag. > > The CPU Models can then treat these type of instructions appropriately. For > the O3, I think it will wait to the instruction reaches the head of the ROB > to eventually execute and commit it. > > Can you track the path of that instruction in O3 to confirm that? > -- > - Korey > _______________________________________________ > gem5-users mailing list > gem5-users@m5sim.org > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
_______________________________________________ gem5-users mailing list gem5-users@m5sim.org http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users