The Community for Technology Leaders
Green Image
Issue No. 09 - September (2009 vol. 58)
ISSN: 0018-9340
pp: 1153-1170
José A. Joao , University of Texas at Austin, Austin
Onur Mutlu , Microsoft Research, Redmond
Chang Joo Lee , University of Texas at Austin, Austin
Robert Cohn , Intel Corporation, Hudson
Yale N. Patt , University of Texas at Austin, Austin
Hyesoon Kim , Georgia Institute of Technology, Atlanta
Indirect branches have become increasingly common in modular programs written in modern object-oriented languages and virtual-machine-based runtime systems. Unfortunately, the prediction accuracy of indirect branches has not improved as much as that of conditional branches. Furthermore, previously proposed indirect branch predictors usually require a significant amount of extra hardware storage and complexity, which makes them less attractive to implement. This paper proposes a new technique for handling indirect branches, called Virtual Program Counter (VPC) prediction. The key idea of VPC prediction is to use the existing conditional branch prediction hardware to predict indirect branch targets, avoiding the need for a separate storage structure. Our comprehensive evaluation shows that VPC prediction improves average performance by 26.7 percent and reduces average energy consumption by 19 percent compared to a commonly used branch target buffer based predictor on 12 indirect branch intensive C/C{++} applications. Moreover, VPC prediction improves the average performance of the full set of object-oriented Java DaCapo applications by 21.9 percent, while reducing their average energy consumption by 22 percent. We show that VPC prediction can be used with any existing conditional branch prediction mechanism and that the accuracy of VPC prediction improves when a more accurate conditional branch predictor is used.
Indirect branch prediction, virtual functions, devirtualization, object-oriented languages, Java.
José A. Joao, Onur Mutlu, Chang Joo Lee, Robert Cohn, Yale N. Patt, Hyesoon Kim, "Virtual Program Counter (VPC) Prediction: Very Low Cost Indirect Branch Prediction Using Conditional Branch Prediction Hardware", IEEE Transactions on Computers, vol. 58, no. , pp. 1153-1170, September 2009, doi:10.1109/TC.2008.227
95 ms
(Ver 3.1 (10032016))