Uniprocessor Ordering. On a single-threaded system, a program expects that the value returned by a load
equals the value of the most recent store in program
order to the same memory location. In a multithreaded
system, obeying Uniprocessor Ordering means that
every processor should behave like a uniprocessor system unless a shared memory location is accessed by
another processor