Shared Memory Architecture
Vivek Kale · 2019
A shared-memory system is made of multiple processors and memory modules that are connected via some interconnection network. Shared-memory multiprocessors are usually bus-based or switch-based. In all cases, each processor has equal access to the global memory shared by all processors. Communication among processors is achieved by writing to and reading from memory. Synchronization among processors is achieved using locks and barriers. The chapter discusses the main challenges of shared-memory systems, namely, contention and cache coherence problems. Local caches are typically used to alleviate the bottleneck problem. However, scalability remains the main drawback of a shared-memory system. The introduction of caches creates consistency problems among caches and between memory and caches. Cache coherence schemes can be subdivided into snooping protocols and directory-based protocols.