International Symposium on Computer Architecture · 1998 · 287 citations · 6 references
EngineeringIn-memory DatabaseComputer ArchitectureProcessor ArchitectureLoad InstructionsHardware SecurityData ScienceData MiningHigh-performance ArchitectureMemorySystems EngineeringSystem SoftwareParallel ComputingData ManagementMemory ManagementInstruction-level ParallelismPerformance PredictionPredictive AnalyticsKnowledge DiscoveryComputer EngineeringMemory DependenciesComputer ScienceStorage (Memory)Program AnalysisParallel ProgrammingMemory Dependence Prediction
For maximum performance, an out-of-order processor must issue load instructions as early as possible, while avoiding memory-order violations with prior instructions that write to the same memory location. One approach is to use memory dependence prediction to identify the stores upon which a load depends, and communicate that information to the instruction scheduler. We designate the set of stores upon which each load has depended as the load's store set. The processor can discover and use a load's set to accurately predict the earliest time the load can safely execute. We show that sets accurately predict memory dependencies in the context of large instruction window, superscalar machines, and allow for near-optimal performance compared to an instruction scheduler with perfect knowledge of memory dependencies. In addition, we explore the implementation aspects of sets, and describe a low cost implementation that achieves nearly optimal performance.
6
The Mips R10000 superscalar microprocessor
K.C. Yeager · IEEE Micro · 1996 · 829 citations
A study of branch prediction strategies
James E. Smith · 1998 · 779 citations · Full text
Dynamic speculation and synchronization of data dependences
Andreas Moshovos, Scott E. Breach, T. N. Vijaykumar et al. · 1997 · 283 citations · Full text