• DocumentCode
    1548961
  • Title

    Dynamic techniques for load and load-use scheduling

  • Author

    Roth, Amir ; Ronen, Ronny ; Mendelson, Avi

  • Author_Institution
    Pennsylvania Univ., Philadelphia, PA, USA
  • Volume
    89
  • Issue
    11
  • fYear
    2001
  • fDate
    11/1/2001 12:00:00 AM
  • Firstpage
    1621
  • Lastpage
    1637
  • 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;
  • fLanguage
    English
  • Journal_Title
    Proceedings of the IEEE
  • Publisher
    ieee
  • ISSN
    0018-9219
  • Type

    jour

  • DOI
    10.1109/5.964442
  • Filename
    964442