A Comparative Analysis of Branch Prediction Schemes
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