Static load classification for improving the value predictability of data-cache misses

While caches are effective at avoiding most main-memory accesses, the few remaining memory references are still expensive. Even one cache miss per one hundred accesses can double a program's execution time. To better tolerate the data-cache miss latency, architects have proposed various speculation mechanisms, including load-value prediction. A load-value predictor guesses the result of a load so that the dependent instructions can immediately proceed without having to wait for the memory access to complete. To use the prediction resources most effectively, speculation should be restricted to loads that are likely to miss in the cache and that are likely to be predicted correctly. Prior work has considered hardware- and profile-based methods to make these decisions. Our work focuses on making these decisions at compile time. We show that a simple compiler classification is effective at separating the loads that should be speculated from the loads that should not. We present results for a number of C and Java programs and demonstrate that our results are consistent across programming languages and across program inputs.

[1]  Todd C. Mowry,et al.  Predicting data cache misses in non-numeric applications through correlation profiling , 1997, Proceedings of 30th Annual International Symposium on Microarchitecture.

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

[3]  F. Gabbay Speculative Execution based on Value Prediction Research Proposal towards the Degree of Doctor of Sciences , 1996 .

[4]  Martin Burtscher,et al.  Improving Context-Based Load Value Prediction , 2000 .

[5]  Benjamin G. Zorn The Effect of Garbage Collection on Cache Performance , 1991 .

[6]  Paul R. Wilson,et al.  Caching considerations for generational garbage collection , 1992, LFP '92.

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

[8]  Mark Baldwin Reinhold CACHE PERFORMANCE OF GARBAGE-COLLECTED PROGRAMMING LANGUAGES , 1993 .

[9]  Enric Morancho,et al.  Split last-address predictor , 1998, Proceedings. 1998 International Conference on Parallel Architectures and Compilation Techniques (Cat. No.98EX192).

[10]  Amer Diwan,et al.  Measuring the cost of storage management , 1996, LISP Symb. Comput..

[11]  Glenn Reinman,et al.  Predictive techniques for aggressive load speculation , 1998, Proceedings. 31st Annual ACM/IEEE International Symposium on Microarchitecture.

[12]  Amer Diwan,et al.  Type-based alias analysis , 1998, PLDI.

[13]  Avi Mendelson,et al.  Can program profiling support value prediction? , 1997, Proceedings of 30th Annual International Symposium on Microarchitecture.

[14]  Martin Burtscher,et al.  Improving context-based load value prediction (instruction-level parallelism) , 2000 .

[15]  Koen De Bosschere,et al.  Differential FCM: increasing value prediction accuracy by improving table usage efficiency , 2001, Proceedings HPCA Seventh International Symposium on High-Performance Computer Architecture.

[16]  John Paul Shen,et al.  Efficacy and performance impact of value prediction , 1998, Proceedings. 1998 International Conference on Parallel Architectures and Compilation Techniques (Cat. No.98EX192).

[17]  Amer Diwan,et al.  Memory system performance of programs with intensive heap allocation , 1995, TOCS.

[18]  Thomas M. Conte,et al.  Value speculation scheduling for high performance processors , 1998, ASPLOS VIII.

[19]  Martin Burtscher,et al.  Exploring last n value prediction , 1999, 1999 International Conference on Parallel Architectures and Compilation Techniques (Cat. No.PR00425).

[20]  Glenn Reinman,et al.  Selective value prediction , 1999, ISCA.

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

[22]  Peter Lee,et al.  Cache behavior of combinator graph reduction , 1992, TOPL.

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

[24]  Mikko H. Lipasti,et al.  Exceeding the dataflow limit via value prediction , 1996, Proceedings of the 29th Annual IEEE/ACM International Symposium on Microarchitecture. MICRO 29.

[25]  Martin Burtscher,et al.  Hybridizing and coalescing load value predictors , 2000, Proceedings 2000 International Conference on Computer Design.

[26]  Martin Burtscher,et al.  Prediction Outcome History-Based Confidence Estimation for Load Value Prediction , 1999, J. Instr. Level Parallelism.

[27]  Sangyeun Cho,et al.  A High-Bandwidth Memory Pipeline for Wide Issue Processors , 2001, IEEE Trans. Computers.

[28]  James E. Smith,et al.  The predictability of data values , 1997, Proceedings of 30th Annual International Symposium on Microarchitecture.