DocumentCode
1571054
Title
Compiler synthesized dynamic branch prediction
Author
Mahlke, Scott ; Natarajan, Balas
Author_Institution
Hewlett-Packard Co., Palo Alto, CA, USA
fYear
1996
Firstpage
153
Lastpage
164
Abstract
Branch prediction is the predominant approach for minimizing the pipeline breaks caused by branch instructions. Traditionally, branch prediction is accomplished in one of two ways, static prediction at compile-time via compiler analysis or dynamic prediction at run-time via special hardware structures. In this paper, we propose a novel technique that aims to combine the strengths of the two approaches-the lower cost of compile-time analysis with the effectiveness of dynamic prediction. Specifically, we propose that the compiler use profile feedback to define a prediction function for each branch and insert a few explicit instructions per branch into the compiled code to compute the prediction function. These instructions are carefully selected to predict the direction of the branch using any information available during run-time. A strength of this approach is that information beyond branch history can be used to make predictions, such as the contents of the architectural registers. To substantiate our proposal, we present an algorithm for selecting the prediction instructions, and demonstrate the performance of the approach against contemporary static and dynamic branch prediction strategies
Keywords
computer architecture; pipeline processing; program compilers; software performance evaluation; branch instructions; branch prediction strategies; compile-time analysis; compiler analysis; dynamic branch prediction; dynamic prediction; pipeline breaks; Computer aided instruction; Costs; Dynamic compiler; Feedback; Hardware; History; Pipelines; Proposals; Registers; Runtime;
fLanguage
English
Publisher
ieee
Conference_Titel
Microarchitecture, 1996. MICRO-29.Proceedings of the 29th Annual IEEE/ACM International Symposium on
Conference_Location
Paris
Print_ISBN
0-8186-7641-8
Type
conf
DOI
10.1109/MICRO.1996.566458
Filename
566458
Link To Document