Modern processors require highly accurate branch prediction for good performance. As such, a number of branch predictors have been proposed with varying size and complexity. This work identifies techniques to improve the accuracy of most predictors. It is especially effective with smaller, simpler predictors, allowing those predictors to be competitive with more expensive and complex variants. Modern branch predictors rely heavily on global history to produce accurate branch predictions. However, not all regions of control flow are correlated with recently executed branches. For these regions, the extra information encoded in the global history does more harm than good. This work performs artificial modifications to the global history register to improve branch prediction accuracy, targeting regions with limited branch correlation. This approach is applied to a number of realistic modern branch predictors of varying size. The total number of mispredicts in select SPEC2000 benchmarks a...
Leo Porter, Dean M. Tullsen