arrow
Return

Dynamic techniques for load and load-use scheduling

delete2001-01-01
delete3
PRE
AI
A
Aaron Roth
R
Ronny Ronen
A
Avi Mendelson
DOI:10.1109/5.964442delete
deleteOriginal
deleteOriginal request for help
deleteShare
deleteSave
Abstract

Abstract

En 中文
Modern microprocessors employ dynamic instruction scheduling to select independent instructions for parallel execution. Good scheduling of loads is crucial, since the long latency of some loads makes them likely to degrade performance. A good scheduler attempts to issue loads as early as possible. Scheduling loads is not simple. First, safely resolving a load's input dependences can be done only at execution time, after the load address and all previous store addresses are known. Second, varying load latency, makes it difficult to prioritize loads and to efficiently schedule load-dependent instructions. This paper surveys several techniques that optimize load scheduling. Memory disambiguation resolves store-load dependences and enables earlier execution of store-independent loads. Memory renaming and memory bypassing short-circuit memory to streamline the passing of values from stores to loads. Critical path scheduling, pre-execution, and address prediction advance long-latency loads by computing load addresses early, or predicting them. Value prediction short-circuits load execution by predicting the loaded data values. Finally, data speculation and hit-miss prediction help the scheduling of load-dependent instructions.
Keywords:
dynamic instruction scheduling
load-store scheduling
memory bypassing
memory dependences
memory disambiguation
memory forwarding
memory renaming
out-of-order processor
AI Summary

AI Summary

Key information extracted from the uploaded paper, including a brief overview, abstract, background, key highlights, visual analysis, and future outlook.

Journal

Proceedings of the IEEE cover
Proceedings of the IEEE
IF:
25.9
Papers:
9.9K
Citations:
4.5W

Organization

No organization information available