Title :
Dynamic techniques for load and load-use scheduling
Author :
Roth, Amir ; Ronen, Ronny ; Mendelson, Avi
Author_Institution :
Pennsylvania Univ., Philadelphia, PA, USA
fDate :
11/1/2001 12:00:00 AM
Abstract :
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 :
microprocessor chips; processor scheduling; address prediction; critical path scheduling; data speculation; dynamic instruction scheduling; hit-miss prediction; load scheduling; load-use scheduling; memory bypassing; memory disambiguation; memory renaming; microprocessor; parallel execution; pre-execution; value prediction; Degradation; Delay; Dynamic scheduling; Electronic switching systems; Microprocessors; Out of order; Processor scheduling; Program processors; Programming profession; Runtime;
Journal_Title :
Proceedings of the IEEE