Investigating Load Redundancy
Sagar Chaki
Dominic Mazzoni
A load can be one of the more costly instructions for a modern
processor to execute, especially if there is a cache miss.
Processors can now execute multiple instructions in the time
it takes to fetch one word from memory, and this gap in speed
is only growing larger. Superscalar processors can execute
other instructions while a load is taking place, but any
instruction dependent on the result of the load must stall.
It is reasonable to conjecture that a small but significant
number of loads are in a sense redundant, because the value
read from memory was already in the register. If we could
speculatively bypass the load when it was suspected to be
redundant (and of course clear the pipeline later if the
speculation turned out to be incorrect), this could result
in a significant gain in performance.
Click here to download our final
report as a PostScript file.
Click here for our milestone report in HTML.
(This has been superceded by our report.)
|