< previous page page_540 next page >

Page 540
0540-01.gif
Figure 8.18
Possible coherency protocols. "Caches" refer to the action taken at
remote processor caches when notified of a write to a shared line.
Even within the invalidate and update protocols, there is yet another set of distinctions possible. Is main memory updated when a write occurs, or are the only correct contents in the cache(s)?
There is a final important distinction among directory-based protocols, and this concerns the placement of the directory. The directory can be placed or associated with the memory system, in which case each line in memory has an entry defining the users of the line. Such a directory is referred to as a memory-based or central directory. The alternative is that memory and the individual users of the line are linked together in a list, and it is the responsibility of a pointer from memory to the head of the list to ensure that correct action is taken on a write to a line. Since in this case the cache-based directory is distributed across the processors, this directory is frequently called a distributed directory [147].
In the case of a distributed memory system, where a portion of global memory is associated with each processor in a network, the terminology is particularly confusing.
A portion of the central directory is associated with each portion of memory, and hence is distributed across the network. The term "central directory" is still used for such memory-based directories. The protocol alternatives are outlined in Figure 8.18.

 
< previous page page_540 next page >