Speculative pre-execution achieves efficient data
prefetching by running additional prefetching threads on
spare hardware contexts. Various implementations for
speculative pre-execution have been proposed, including
compiler-based static approaches and hardware-based
dynamic approaches.
A static approach defines the p-thread at compile time and
executes it as a stand-alone running thread. Therefore, it
cannot efficiently take dynamic events into account and
requires a higher fetch bandwidth. Conversely, a hardware
approach is, by essence, able to dynamically use runtime
information. However, it requires more complex hardware
and also lacks global program information on data and
control flow.
This talk introduces SPEAR (Speculative Pre-Execution
Assisted by compileR), a pre-execution model which is a
hybrid of the two approaches. It relies on a post-compiler to
extract the p-thread code from program binaries and uses
specially designed hardware to trigger the execution of the p-thread.
For this purpose, an automated software tool for p-thread
identification has been developed and a modified SMT
model with the specially designed front-end is proposed.