Disjoint eager execution: an optimal form of speculative execution
- 1 November 1995
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- No. 10724451,p. 313-325
- https://doi.org/10.1109/micro.1995.476841
Abstract
Instruction Level Parallelism (ILP) speedups of an order-of-magnitude or greater may be possible using the techniques described herein. Traditional speculative code execution is the execution of code down one path of a branch (branch prediction) or both paths of a branch (eager execution), before the condition of the branch has been evaluated, thereby executing code ahead of time, and improving performance. A third, optimal, method of speculative execution, Disjoint Eager Execution (DEE), is described herein. A restricted form of DEE, easier to implement than pure DEE, is developed and evaluated. An implementation of both DEE and minimal control dependencies is described. DEE is shown both theoretically and experimentally to yield more parallelism than both branch prediction and eager execution when the same, finite, execution resources are assumed. ILP speedups of factors in the ten's are demonstrated with constrained resources.Keywords
This publication has 11 references indexed in Scilit:
- Limits of Control Flow on ParallelismPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2005
- A Comparison Of Dynamic Branch Predictors That Use Two Levels Of Branch HistoryPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2005
- Ideograph/ideogram: framework/hardware for eager evaluationPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- Extraction of massive instruction level parallelismACM SIGARCH Computer Architecture News, 1993
- An analysis of dynamic scheduling techniques for symbolic applicationsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,1993
- Data path issues in a highly concurrent machine (abstract)Published by Association for Computing Machinery (ACM) ,1992
- A theory of reduced and minimal procedural dependenciesIEEE Transactions on Computers, 1991
- A VLIW architecture for a trace scheduling compilerIEEE Transactions on Computers, 1988
- The program dependence graph and its use in optimizationACM Transactions on Programming Languages and Systems, 1987
- The Inhibition of Potential Parallelism by Conditional JumpsIEEE Transactions on Computers, 1972