Delayed exceptions — Speculative execution of trapping instructions
M. Anton Ertl1
and Andreas Krall1 
| (1) |
Institut für Computersprachen, Technische Universität Wien, Argentinierstraße 8, A-1040 Wien |
Abstract
Superscalar processors, which execute basic blocks sequentially, cannot use much instruction level parallelism. Speculative execution has been proposed to execute basic blocks in parallel. A pure software approach suffers from low performance, because exception-generating instructions cannot be executed speculatively. We propose delayed exceptions, a combination of hardware and compiler extensions that can provide high performance and correct exception handling in compiler-based speculative execution. Delayed exceptions exploit the fact that exceptions are rare. The compiler assumes the typical case (no exceptions), schedules the code accordingly, and inserts run-time checks and fix-up code that ensure correct execution when exceptions do happen.
Key words instruction-level parallelism - superscalar - speculative execution - exception - software pipelining
References secured to subscribers.