< previous page page_556 next page >

Page 556
0556-01.gif
Figure:8.27
Scalable shared memory multiprocessor.
adding additional clusters to a system is not easily quantifiable, the notion of scalability is somewhat subjective. Many designers consider multiprocessor systems that contain more than a small number of clustersperhaps, say, more than fouras a scalable system. Occasionally conference organizers and others have used the term massively parallel as synonymous with scalable, at least in the discussion of multiprocessor systems. It is left to the reader to determine what, indeed, is scalable or massive and what is not.
Since snoopy protocols cannot be used, there are two primary issues in dealing with large-scale multi-clustered multiprocessor systems: the first is memory coherence using directory-based protocols [48], and the second is the interconnect network. In the remainder of this chapter, we introduce some of the major issues and approaches in these areas.
8.11 Directory-Based Protocols
The following discussion is based on the work of D. Glasco [104]. From a coherency point of view, the processor cluster simply resembles a single processor with cache, since within the cluster a protocol has been selected to ensure that all the caches have a consistent picture of the memory state. In the discussion in this section, we assume that the processor cluster and the processor cache can be used synonymously, and thus, for simplicity of discussion, we consider a single processor cache in place of the cluster.
There are four general approaches to maintaining data consistency in a large shared memory multiprocessor system. Protocols are distinguished by what happens to memory and what happens to the caches when a line is written into them. Table 8.5 shows that either memory or the caches can be updated or invalidated on a write to a shared line. Writes to an exclusively owned line do not usually update memory in any case.
Directories specifying line ownership or usage can be kept with the memory (central) or with the processor-caches (distributed). Usually, if the memory is organized about a central directory (CD), memory will be updated on a

 
< previous page page_556 next page >