Improving branch predictors by correlating on data values

  • Authors:
  • Timothy H. Heil;Zak Smith;J. E. Smith

  • Affiliations:
  • Electrical and Computer Engineering, University of Wisconsin-Madison, Madison, WI;Electrical and Computer Engineering, University of Wisconsin-Madison, Madison, WI;-

  • Venue:
  • Proceedings of the 32nd annual ACM/IEEE international symposium on Microarchitecture
  • Year:
  • 1999

Quantified Score

Hi-index 0.01

Visualization

Abstract

Branch predictors typically use combinations of branch PC bits and branch histories to make predictions. Recent improvements in branch predictors have come from reducing the effect of interference, i.e. multiple branches mapping to the same table entries. In contrast, the branch difference predictor (BDP) uses data values as additional information to improve the accuracy of conditional branch predictors. The BDP maintains a history of differences between branch source register operands, and feeds these into the prediction process.An important component of the BDP is a rare event predictor (REP) which reduces learning time and table interference. An REP is a cache-like structure designed to store patterns whose predictions differ from the norm.Initially, ideal interference-free predictors are evaluated to determine how data values improve correlation. Next, execution driven simulations of complete designs realize this potential. The BDP reduces the misprediction rate of five SPEC95 integer benchmarks by up to 33% compared to gshare and by up to 15% compared to Bi-Mode predictors.