Total ordering |
All memory accesses are processed in order |
Partial ordering |
All stores are processed in order, but loads execute out of order as long as all previous stores have computed their address |
Load & Store ordering |
Execution between loads and stores is out of order, but all loads execute in order among them, and all stores execute in order among them |
Store ordering |
Stores execute in order, but loads execute completely out of order (Speculative) |