Guarded Execution and Branch Prediction in Dynamic ILP Processors†
نویسندگان
چکیده
In this paper we evaluate the effects of guarded (or conditional, or predicated) execution on the performance of an instruction level parallel processor employing dynamic branch prediction. First, we assess the utility of guarded execution, both qualitatively and quantitatively, using a variety of application programs. Our assessment shows that guarded execution significantly increases the opportunities for both a compiler, and dynamic hardware, to extract and exploit parallelism. However, existing methods of specifying guarded execution have several drawbacks that limit its use. Second, we study the interaction of guarding and dynamic branch prediction. No clear trends emerge regarding the ability of guarding to uniformly eliminate branches with poor predictability. In some cases guarding eliminates branches with a poor prediction accuracy, in other cases it eliminates branches with good predictability. However, the use of guarding results in a significant increase in the dynamic window size (instructions between mispredicted branches). Third, we present a new method of specifying guarded execution. The proposed method uses special GUARD instructions, which can be used to incorporate guarded execution into existing instruction sets. GUARD instructions realize the full power of guarded execution, without the drawbacks of existing methods of specifying guarded execution.
منابع مشابه
On the Performance Potential of Speculative Execution based on Branch and Value Prediction
Fluid Stochastic Petri Nets are used to capture the dynamic behavior of an ILP processor, and discrete-event simulation is applied to assess the performance potential of predictions and speculative execution in boosting the performance of ILP processors that fetch, issue, execute and commit a large number of instructions per cycle.
متن کاملEE 382N Literature Survey
1. Introduction The objective of modern superscalar processors is to maximize the instruction-level parallelism (ILP) that can be extracted from programs. The most basic method used for extracting more ILP from programs is out-of-order execution [1]. Unfortunately, out-of-order execution by itself does not provide a desired level of ILP. The program's control flow [2] and data flow [3] impose s...
متن کاملModeling and Performance Evaluation of Branch and Value Prediction in ILP Processors
Speculative execution is one of the key issues to boost the performance of future generation microprocessors. In this paper, we introduce a novel approach to evaluate the effects of branch and value prediction, which allow the processor to execute instructions beyond the limits of control and true data dependences. Until now, almost all the estimations of their performance potential under diffe...
متن کاملSelective Guarded Execution Using Pro ling on a Dynamically Scheduled Processor
Modern dynamically scheduled processors use branch prediction hardware to speculatively fetch and execute most likely executed paths in a program. Complex branch predictors have been proposed which attempt to identify these paths accurately such that the hardware can beneet from out-of-order (OOO) execution. Recent studies have shown that inspite of such complex prediction schemes, there still ...
متن کاملAn Integrated Partitioning and Scheduling Based Branch Decoupling
Conditional branch induced control hazards cause significant performance loss in modern out-of-order superscalar processors. Dynamic branch prediction techniques help alleviate the penalties associated with conditional branch instructions. However, branches still constitute one of the main hurdles towards achieving higher ILP. Dynamic branch prediction relies on the temporal locality of and spa...
متن کامل