Abstract: Dynamic Pointer Allocation for Scalable Cache Coherence Directories


The efficient implementation of cache consistency is one of the primary challenges in building shared memory multiprocessors with hundreds or thousands of processors. While directory-based coherency schemes are promising because they rely on point-to-point messages rather than a network broadcast mechanism, traditional directory organizations would use a prohibitive amount of memory in a large-scale machine. In this paper we introduce a dynamic pointer allocation directory that exploits reference behavior characteristics of large-scale parallel programs to reduce directory storage requirements to manageable levels while maintaining performance comparable to traditional directory organizations.

Rather than building a fixed number of pointers per entry into the hardware, this scheme allocates pointers as they are needed from a pool of available pointers. We highlight the differences in the resulting protocol relative to standard limited pointers directory organizations, including the steps taken in exceptional circumstances, such as running short of available pointers. We also focus on implementation issues by detailing on possible approach and examining some possible performance optimizations. Several extensions to the basic dynamic pointer allocation technique are examined and evaluated as well.


[arch] Architecture

[logo] FLASH


Last modified 6/6/96 by Joel Baxter, webmaster@www-flash.stanford.edu.