SPEAR: Speculative Pre-Execution Assisted by Compiler


Prof. Jean-Luc Gaudiot
University of California, Irvine, USA

Wednesday, September 7, 2005
1:30PM-2:30PM California Time
4:30PM-5:30PM New York Time
9:30PM-10:30PM UK Time
10:30PM-11:30PM Central Europe Time
11:30PM-12:30AM Eastern Europe Time
5:30AM-6:30AM Tokyo Time, September 8
6:00AM-7:00AM Adelaide/Australia Time, September 8
6:30AM-7:30AM Melbourne/Australia Time, September 8

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.

Slides (PowerPoint, 0.9MB)