Because of the increasing number of processors being implemented in multiprocessor systems, the need for an efficient protocol for maintaining cache coherency is becoming more important. Snooping protocols work best in systems using a small number of processors with bus-based communications. Directory protocols include the full-map directory, limited directory, chained directory and coarse vector directory protocols. However, these protocols do not allow for different levels of sharing for cache blocks A specific number of pointers to processor caches is allotted to each memory block. Therefore, either a prohibitive amount of memory is necessary to maintain the pointers, or only a few pointers per main memory block are maintained thus limiting the number of cached copies. In contrast, dynamic allocation protocols allocate pointers as they become necessary. Thus, blocks that are widely shared can be allocated more pointers than those that are used by only a single processor. This paper introduces a new dynamic allocation protocol which incorporates elements of the full-map directory, limited directory, and chained directory protocols.
展开▼