This lecture introduces directory-based cache coherence as a solution when traditional snooping protocols become unpractical for large shared-memory systems. Instead of broadcasting every update, these architectures use a specialized data structure called a directory to keep track of which processors hold copies of specific memory blocks and monitor their states. This directory can be centralized in one place or distributed across different memory modules. The lecture goes on to explore specific protocols for managing these directories and covers the fundamentals of programming in shared memory environments—credits: Gemini.


These three approaches represent different ways to ****structure directory data for cache coherence:


Invalidate Protocols

Directory-based invalidate protocols manage cache coherence by tracking shared blocks and invalidating stale copies when a processor writes to memory. The lecture categorizes these into three main protocols:

Centralized Directory Invalidate

Centralized Directory Invalidate - Write by P3

Centralized Directory Invalidate - Write by P3

Scalable Coherent Interface (SCI)

Scalable Coherent Interface (SCI)-Sharing list addition

Scalable Coherent Interface (SCI)-Sharing list addition