Guarded execution and branch prediction in dynamic ILP processors

Dionisios N. Pnevmatikatos, Gurindar S. Sohi · 1994

In this paper we evaluate the effects of guarded (or conditional, or predicated) execution on the per-formance 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 exist-ing instruction sets. GUARD instructions realize the full power of guarded execution, without the draw-backs of existing methods of specifying guarded execution. 1.

Read the paper · More papers on PaperTik