Alloyed Global and Local Branch History : A Robust Solution to Wrong-History Mispredictions

The need for accurate conditional-branch prediction is well known: mispred ictions waste large numbers of cycles, inhibit out-of-order execution, and waste power on mis-sp eculated computation. Prior work on branch-predictor organization has focused mainly on how to reduce conflicts i n the branch-predictor structures, while relatively little work has explored other causes of mispred ictions. Some prior work has identified other categories of mispredictions, but this paper organizes these cat egories into a broad taxonomy of misprediction types. Using the taxonomy, this paper goes on to sho w t at other categories—especially wrong-history mispredictions —are oftenmoreimportant than conflicts. This is true even if just a very simple conflict-reduction technique is used. Wrong-history mispredictions arise because current two-level, hist ory-based predictors provide only global or only local history. Their contribution to the overall misp rediction rate is substantial because most programs have some branches that require global history and also some t hat r quire local history. If only one or the other type of history is available, many branches are therefore penal ized. For SPECint95 programs using a global-history predictor, wrong-history misprediction s account for 35–50% of the total misprediction rate. By comparison, conflicts only account for 15-20%. Hybrid predictor s are one proposed solution; they use both a global-history and a local-history component. Unfortun ately, hybrid predictors only work well with large hardware budgets, because they must subdivide the availabl e area into subcomponents. Based on these observations, this paper proposes alloying local and global history together in a twolevel branch predictor structure. This is a simple but superior techniq ue for making global and local history simultaneously available and eliminating wrong-history mispredict ions. Unlike hybrid prediction, alloying gives robust performance for branch-predictor hardware budgets ranging from very large to very small. Alloying also consistently outperforms other two-level organizatio ns. In fact, a small alloyed predictor often performs as well as a much larger global-history predictor.

[1]  Mario Nemirovsky,et al.  The influence of branch prediction table interference on branch prediction scheme performance , 1995, PACT.

[2]  Keith Diefendorff K7 Challenges Intel: 10/26/98 , 1998 .

[3]  Kevin Skadron,et al.  Characterizing and removing branch mispredictions , 1999 .

[4]  Yale N. Patt,et al.  Alternative implementations of hybrid branch predictors , 1995, MICRO 1995.

[5]  Margaret Martonosi,et al.  Branch Prediction, Instruction-Window Size, and Cache Size: Performance Trade-Offs and Simulation Techniques , 1999, IEEE Trans. Computers.

[6]  Joseph T. Rahmeh,et al.  Improving the accuracy of dynamic branch prediction using branch correlation , 1992, ASPLOS V.

[7]  Trevor N. Mudge,et al.  Correlation and Aliasing in Dynamic Branch Predictors , 1996, ISCA.

[8]  Juan J. Navarro,et al.  Dynamic history-length fitting: a third level of adaptivity for branch prediction , 1998, ISCA.

[9]  Pierre Michaud,et al.  Trading Conflict And Capacity Aliasing In Conditional Branch Predictors , 1997, Conference Proceedings. The 24th Annual International Symposium on Computer Architecture.

[10]  Richard E. Kessler,et al.  The Alpha 21264 microprocessor architecture , 1998, Proceedings International Conference on Computer Design. VLSI in Computers and Processors (Cat. No.98CB36273).

[11]  N. Jouppi,et al.  The Relative Importance of Memory Latency , Bandwidth , and Branch Limits toPerformanceNorman , 1997 .

[12]  T. Juan,et al.  Dynamic history-length fitting: a third level of adaptivity for branch prediction , 1998, Proceedings. 25th Annual International Symposium on Computer Architecture (Cat. No.98CB36235).

[13]  James E. Smith,et al.  A study of branch prediction strategies , 1981, ISCA '98.

[14]  Trevor N. Mudge,et al.  The YAGS branch prediction scheme , 1998, Proceedings. 31st Annual ACM/IEEE International Symposium on Microarchitecture.

[15]  Yale N. Patt,et al.  The agree predictor: a mechanism for reducing negative branch history interference , 1997, ISCA '97.

[16]  Anoop Gupta,et al.  The SPLASH-2 programs: characterization and methodological considerations , 1995, ISCA.

[17]  Doug Burger,et al.  Evaluating Future Microprocessors: the SimpleScalar Tool Set , 1996 .

[18]  Trevor N. Mudge,et al.  The bi-mode branch predictor , 1997, Proceedings of 30th Annual International Symposium on Microarchitecture.

[19]  Dirk Grunwald,et al.  Pipeline gating: speculation control for energy reduction , 1998, ISCA.

[20]  Margaret Martonosi,et al.  Improving prediction for procedure returns with return-address-stack repair mechanisms , 1998, Proceedings. 31st Annual ACM/IEEE International Symposium on Microarchitecture.

[21]  Ravi Nair Dynamic path-based branch correlation , 1995, MICRO 1995.

[22]  Michael D. Smith,et al.  Support for Speculative Execution in High-Performance Processors , 1992 .

[23]  Yale N. Patt,et al.  Improving branch prediction accuracy by reducing pattern history table interference , 1996, Proceedings of the 1996 Conference on Parallel Architectures and Compilation Technique.

[24]  Trevor N. Mudge,et al.  Instruction fetching: Coping with code bloat , 1995, Proceedings 22nd Annual International Symposium on Computer Architecture.

[25]  Yale N. Patt,et al.  A Comparison Of Dynamic Branch Predictors That Use Two Levels Of Branch History , 1993, Proceedings of the 20th Annual International Symposium on Computer Architecture.

[26]  Michael D. Smith,et al.  A comparative analysis of schemes for correlated branch prediction , 1995, Proceedings 22nd Annual International Symposium on Computer Architecture.

[27]  S. McFarling Combining Branch Predictors , 1993 .

[28]  Dirk Grunwald,et al.  Static methods in hybrid branch prediction , 1998, Proceedings. 1998 International Conference on Parallel Architectures and Compilation Techniques (Cat. No.98EX192).

[29]  James E. Smith,et al.  Modeling program predictability , 1998, ISCA.

[30]  Y.N. Patt,et al.  Using Hybrid Branch Predictors to Improve Branch Prediction Accuracy in the Presence of Context Switches , 1996, 23rd Annual International Symposium on Computer Architecture (ISCA'96).