Previous | Next --- Slide 31 of 52
Back to Lecture Thumbnails
pk267

The core idea behind the lecture was to identify when we can reorder the independent instructions in a program to make the code run faster. On the surface level, one might be tempted to think that as long as the instructions are independent, one can execute them in any order. But as the analysis of this lecture shows: in a multithreading environment, mere independence of instructions is not enough to give correct program order*. So, we considered some more relaxed memory consistency schemes like TSo, PSO and PC which impose what kind of reorderings a system can do.

Note that in this lecture we are not talking about program order as seen by a single processor (that appearance is maintained by considering cache coherence). Also, we are considering memory transactions on 2 different addresses, whereas in cache coherence we were considering the memory transactions on the same address.

*Correct program order: the output obtained by executing everything sequentially