Speculative disambiguation: a compilation technique for dynamic memory disambiguation

  • Authors:
  • A. S. Huang;G. Slavenburg;J. P. Shen

  • Affiliations:
  • Carnegie Mellon University, Dept. of Electrical and Computer Engineering, 5000 Forbes Avenue, Pittsburgh, PA;Philips Research Palo Alto, North America Philips Corporation, 4005 Miranda Avenue, Palo Alto, CA;Carnegie Mellon University, Dept. of Electrical and Computer Engineering, 5000 Forbes Avenue, Pittsburgh, PA

  • Venue:
  • ISCA '94 Proceedings of the 21st annual international symposium on Computer architecture
  • Year:
  • 1994

Quantified Score

Hi-index 0.00

Visualization

Abstract

Ambiguous memory references have always been one of the main sources of performance bottlenecks. Many papers have addressed this problem using static disambiguation. These methods work extremely well when the memory access pattern is linear and predictable. However they are ineffective when the memory access pattern is nonlinear or when the access pattern cannot be determined statically. For these difficult problems, this paper presents speculative disambiguation, a compilation technique for architectures supporting instruction level parallelism and either speculative execution or conditional execution (or both). This technique produces specialized code at compile time to disambiguate memory references at run time. It is shown that on machines with sufficient resources, the technique will always result in lower execution time. Speculative disambiguation has been implemented for a VLIW architecture with guarded execution. Preliminary results indicate that it can help bridge a significant fraction of the performance gap between a good and a perfect static disambiguator. Occasionally it can outperform the perfect static disambiguator.