Directory-based cache coherence protocols were invented as a means of dealing with cache coherence in systems containing more processors than can be accommodated on a single bus. In single bus systems, cache coherence can be ensured using a snoopy protocol in which each processor's cache monitors the traffic on the bus and takes appropriate action when it sees an update to an address matching one that it holds.Return to Computer Architecture Simulation Models
In directory based systems, the directory can be held centrally with the main memory in a multi-processor system or can be distributed among the caches as singly or doubly linked lists. This website contains models demonstrating each of these three mechanisms. For each model, students can be asked, as an exercise, to write a report explaining what protocol actions occur for each of the read and write requests that the processors make to their caches, e.g. by listing the packets which are sent around the system in response to each request and explaining the purpose of each packet.
The files for the Central Directory protocol model can be downloaded as a zip file from dircache_v1.3.zip
The Singly-linked list protocol model is based on the coherence mechanisms used in the SDD (Stanford Distributed Directory) protocol. The files for this model can be downloaded as a xip file from dircache_v2.1.zip
The Doubly-linked list protocol model is based on the coherence mechanisms used in the SCI (Scalable Coherent Interface) protocol. The files for this model can be downloaded as a zip file from dircache_v3.5.zip
Instructions on how to use HASE models can be found at Downloading, Installing and Using HASE.