Cache Coherence Protocols in Shared-Memory Multiprocessors

This paper is a review of the recent research about the design of cache coherence protocols in shared-memory multiprocessors. Two important aspects of shared memory systems are memory consistency and cache coherence. Two major available protocols for cache coherence problems are snoopy coherence and directory based coherence. The snoopy cache protocol is simple and easy to implement, but relies on a low-latency, shared interconnection among the processors and the memory modules. The directory-based multiprocessors communicate with a common directory whenever the processor's action may cause an inconsistency between its cache and the other caches or memory. No broadcast is necessary in this case and therefore the network medium may be of almost any kind. However, the overhead of directory maintenance and look-up time plus the high-latency of communication networks make the directory scheme unattractive. To prevent the directory from becoming the bottleneck, directory entries can be distributed along with the memory, so that different directory accesses can go to different locations.