Branch missprediction is a major bottleneck limiting processor performance. To improve branch predictability, modern processors use path information to assist in making the prediction, specifically examining the direction of the n most recent branches, for some n. Often, this path information is useful as there is a correlation between nearby branches, aiding in the prediction. However, such an approach can only take advantage of correlation between a fixed, small number of branches. We propose using profiling to find better sets of correlations, and we show how doing so can enhance branch prediction for gshare-style as well as neural-network based branch predictors. Our results show that, if profiling information is used to find correlation, prediction accuracy improves substantially for a gshare-type predictor, especially with short history lengths, while the improvement in accuracy is limited with neural-network based predictors, especially with long history lengths.
Available in pdf.