|
|
|
| Table 8.5 Protocols based on memory hierarchy consistency. | | Memory | | | | | | Not Updated | | | | Updated | | |
|
|
|
|
|
|
write update [10] (Figure 8.28). If the protocol uses a distributed directory to control the status of the shared information, the main memory is generally not updated and the true picture of the memory state is found only in the ensemble of caches. These protocols are called distributed directory (DD). The case of DD-INV is an important one, as a number of special protocols have been built for it, including the proposed IEEE standard protocol for large, shared multiprocessing systems. This protocol is called the SCIthe scalable coherent interface protocol [12, 148]. |
|
|
|
|
|
|
|
|
It is important to remember that the notion of central and distributed directory is somewhat misleading. If our system model has already partitioned memory into many pieces and associated each with a node (i.e., we have distributed memory), then the central directory is as distributed as the distributed directory. For example, if there are n nodes in the system and each node has a cache and portion of main memory (1 /n of main memory), then requests for directory information external to the node in both cases will be directed to another node. If accessing is random, in either case we |
|
|
|
|
|
|
|
|
Figure 8.28
Central directory protocols
(CD) can be used with
memory update or
invalidate. |
|
|
|
|
|
|
|
|
are equally likely to access any other nodes. In the central directory case, we access a portion of a directory based upon a physical memory address. In the distributed directory case, a cache-based directory entry is based on accessed line ownership. |
|
|
|
|
|
|
|
|
8.11.1 Directory Structure |
|
|
|
|
|
|
|
|
A directory must contain a list of caches that have copies of a particular line so that that line can be either invalidated or updated [48]. In CD protocols, |
|
|
|
|
|