Load Value Prediction Using Prediction Outcome Histories

Due to their occasional very long latency, load instructions are among the slowest instructions of current highperformance microprocessors. Unfortunately, their long latency also delays the execution of all the dependent instructions, which can significantly affect system performance. Load value prediction alleviates this problem by allowing the CPU to speculatively continue processing without having to wait for the memory access to complete. Today’s load value predictors can only correctly predict about 40 to 70 percent of the load instructions. Confidence estimators are employed to estimate how likely a prediction is to be correct and to keep the predictor from making a (probably incorrect) prediction if the confidence is below a preset threshold. Despite its simplicity, the adaptive prediction outcome history-based confidence estimator we present in this paper outperforms other proposed mechanisms and reaches average prediction accuracies over SPECint95 in excess of 99%, even with small predictor sizes. A detailed pipeline-level simulation shows that a load value predictor equipped with our confidence estimator not only outperforms other predictors by more than 65% when a re-fetch misprediction recovery policy is used, but is also the only predictor that yields a genuine speedup for all eight SPECint95 programs.

[1]  Trevor N. Mudge,et al.  The role of adaptivity in two-level adaptive branch prediction , 1995, Proceedings of the 28th Annual International Symposium on Microarchitecture.

[2]  Amitabh Srivastava,et al.  Analysis Tools , 2019, Public Transportation Systems.

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

[4]  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).

[5]  Kai Wang,et al.  Highly accurate data value prediction using hybrid predictors , 1997, Proceedings of 30th Annual International Symposium on Microarchitecture.

[6]  E AndersonThomas,et al.  Execution characteristics of desktop applications on Windows NT , 1998 .

[7]  Yale N. Patt,et al.  Alternative implementations of two-level adaptive branch prediction , 1992, ISCA '92.

[8]  Dirk Grunwald,et al.  Confidence estimation for speculation control , 1998, ISCA.

[9]  Martin Burtscher,et al.  Profile-Supported Confidence Estimation for Load-Value-Prediction , 1998 .

[10]  James E. Smith,et al.  Implementations of Context Based Value Predictors , 1997 .

[11]  Alan Eustace,et al.  ATOM - A System for Building Customized Program Analysis Tools , 1994, PLDI.

[12]  James E. Smith,et al.  The microarchitecture of superscalar processors , 1995, Proc. IEEE.

[13]  David W. Wall,et al.  A practical system fljr intermodule code optimization at link-time , 1993 .

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

[15]  Eric Rotenberg,et al.  Assigning confidence to conditional branch predictions , 1996, Proceedings of the 29th Annual IEEE/ACM International Symposium on Microarchitecture. MICRO 29.

[16]  Alan Jay Smith,et al.  Branch Prediction Strategies and Branch Target Buffer Design , 1995, Computer.

[17]  Trevor Mudge,et al.  The role of adaptivity in two-level adaptive branch prediction , 1995, MICRO 1995.

[18]  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.

[19]  Mikko H. Lipasti,et al.  Value locality and load value prediction , 1996, ASPLOS VII.