Okay, the next comments assume that you are talking about a load that executed before an older store writing to the same address executed, and therefore got the wrong value. If what you call LAS refers to something else, disregard that.

From what I gathered, the only replay mechanism currently implemented in the o3 CPU is there to deal with partial matches with store-to-load forwarding. For instance, when a load needs data that is part written by a store, and part in the dcache. In that case, the instruction is replayed when the store writes to the dcache (the mechanism is actually coarser than that but you get the idea).

If you want selective replay for memory order violation (which is okay but quite complex in my opinion), you need to implement it yourself. This entails : - Getting all the instructions you need to replay (through register dependencies and memory dependencies). - Restore their state (clear the Issued flag, clear the Executed flag, and so on). - Restore dependencies which is non trivial since wakeDependents in inst_queue_impl.hh clears dependencies in dep_graph.hh when waking up insts. This means that you need to retain dependencies even after instructions have issued. You also need to deal with memory dependencies. - How do you replay? From the IQ? if so, then you can't free the IQ entry upon issue. If not, then you need a particular buffer to replay instructions from.

If you want non-selective replay, this should be easier, although dependencies still have to be restored and you have to deal with the question of where the instructions are replayed from.

Hope this helps, and if anyone sees a gross mistake in what I said, do not hesitate.

Le 01/12/2014 14:47, Vanchinathan Venkataramani via gem5-users a écrit :
Hi Andreas

In ARM O3CPU, when there is a load after store violation, the younger instructions are being squashed and re-fetched again.

Is it possible to re-execute these instructions instead of squashing all the younger instructions?

Thanks


_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users


--
Arthur Perais
INRIA Bretagne Atlantique
Bâtiment 12E, Bureau E303, Campus de Beaulieu
35042 Rennes, France

_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to