Our new out-of-order processor simulator; FastSim, uses two innovation
s to speed up simulation 8-15 times (vs. Wisconsin SimpleScalar) with
no loss in simulation accuracy. First, FastSim uses speculative direct
-execution to accelerate the functional emulation of speculatively exe
cuted program code. Second, it uses a variation on memoization - a wel
l-known technique in programming language implementation - to cache mi
croarchitecture states and the resulting simulator actions, and then '
'fast forwards'' the simulation the next time a cached state is reache
d. Fast-forwarding accelerates simulation by an order of magnitude, wh
ile producing exactly the same, cycle-accurate result as conventional
simulation.