Strong- vs. weak-dependence model
Strong-dependence model for program execution: a total instruction ordering of a sequential program.
- Two instructions are identified as either dependent or independent, and when in doubt, dependences are pessimistically assumed to exist.
- Dependences are never allowed to be violated and are enforced during instruction processing.
- To date, most machines enforce such dependences in a rigorous fashion.
- This traditional model is overly rigorous and unnecessarily restricts available parallelism.
- specifying that dependences can be temporarily violated during instruction execution as long as recovery can be performed prior to affecting the permanent machine state.
- Advantage: the machine can speculate aggressively and temporarily violate the dependences. The machine can exceed the performance limit imposed by the strong-dependence model.