A Comparative Analysis of Branch Prediction Schemes

Zhendong Su and Min Zhou

Computer Science Division
University of California at Berkeley
Berkeley, CA 94720


Abstract

Conditional branches are major obstacles to achieve higher performance for a high performance CPU. Accurate branch prediction is required to overcome this performance limitation imposed on high performance architectures and is the key to many techniques for enhancing and exploiting Instruction Level parallelism (ILP). Many different branch prediction schemes have been proposed. Most of these work has been based on benchmark programs including SPEC89 and SPEC92. In this report, we present a comparative analysis for a few well known branch prediction schemes on SPARC architecture based on a partially new collection of benchmark programs including SPECint95-beta and SPECfp92. Comparing to previous work, we have several interesting findings. In this paper, we first show the performance of several well-known dynamic branch prediction schemes. From the results obtained, we conclude that selective predictor achieves the least miss predict rate with the same size of branch prediction buffer. We observe that static predictors without code expansion cannot compete with dynamic predictors. One SPECint95 program experiences very low prediction accuracy using those common schemes. We also observe that misleading data and conclusions may result from either tracing only a few testing programs or tracing just small portion of a program. Finally, we notice context switching has little impact on branch prediction with today's fast CPU, and complex schemes need longer time to warm up than simple schemes.


Project Home | Next Section: Introduction