DocumentCode :
2534819
Title :
Wish branches: combining conditional branching and predication for adaptive predicated execution
Author :
Kim, Hyesoon ; Mutlu, Onur ; Stark, Jared ; Patt, Yale N.
Author_Institution :
Dept. of Electr. & Comput. Eng., Texas Univ., Austin, TX
fYear :
2005
fDate :
16-16 Nov. 2005
Lastpage :
54
Abstract :
Predicated execution has been used to reduce the number of branch mispredictions by eliminating hard-to-predict branches. However, the additional instruction overhead and additional data dependencies due to predicated execution sometimes offset the performance advantage of having fewer mispredictions. We propose a mechanism in which the compiler generates code that can be executed either as predicated code or non-predicated code (i.e., code with normal conditional branches). The hardware decides whether the predicated code or the non-predicated code is executed based on a run-time confidence estimation of the branch´s prediction. The code generated by the compiler is the same as predicated code, except the predicated conditional branches are NOT removed - they are left intact in the program code. These conditional branches are called wish branches. The goal of wish branches is to use predicated execution for hard-to-predict dynamic branches and branch prediction for easy-to-predict dynamic branches, thereby obtaining the best of both worlds. We also introduce a class of wish branches, called wish loops, which utilize predication to reduce the misprediction penalty for hard-to-predict backward (loop) branches. We describe the semantics, types, and operation of wish branches along with the software and hardware support required to generate and utilize them. Our results show that wish branches decrease the average execution time of a subset of SPEC INT 2000 benchmarks by 14.2% compared to traditional conditional branches and by 13.3% compared to the best-performing predicated code binary
Keywords :
program compilers; adaptive predicated execution; branch prediction; conditional branching; dynamic branches; nonpredicated code; predicated code; run-time confidence estimation; wish branches; Decoding; Hardware; Microarchitecture; Performance loss; Program processors; Runtime;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Microarchitecture, 2005. MICRO-38. Proceedings. 38th Annual IEEE/ACM International Symposium on
Conference_Location :
Barcelona
Print_ISBN :
0-7695-2440-0
Type :
conf
DOI :
10.1109/MICRO.2005.38
Filename :
1540947
Link To Document :
بازگشت