Slide 5 of 30
Notes:
With out-of-order execution, even more memory latency can be tolerated by executing instructions past the dependent instruction. But because data and control dependencies must be observed, the processor will still stall at some point if memory latency is long.
This is of course the worst case scenario, but the truth is that memory latency has become a bigger problem over the years, because it is not decreasing rapidly.
Instead of tolerating the memory latency, we could also move the memory reference back in time. However, the placement of the memory instruction is restricted by control and data dependencies. In particular, the memory address must be computed and a register must be allocated for the address and data. It is therefore not possible to move this instruction arbitrarily ahead of its dependent instruction.