provide tools or abstractions that allow developers to program in parallel. But what hardware do we need to support shared memory threads? The hardware should provide a well-defined interface for shared memory and it should provide a high-performance implementation of the interface. UNIPROCESSOR MEMORY Defining a shared memory multiprocessor’s interface to memory is easier if we first consider how memory is defined in a uniprocessor. A uniprocessor executes instructions and memory operations in a dynamic execution order called program order. Each read must return the value of the last write to the same address. If the uniprocessor is capable of multitasking, two options exist. If a program executes as a single thread without sharing memory, then the programmer’s memory interface is the same as for a uniprocessor without multitasking. The situation is more complex, on the other hand, if a program has multiple threads sharing memory (or the Cybersquare Mark D. Hill University of W...
Mark D. Hill