In previous multicache consistency mechanisms, processors have been required to synchronize with all caches when updating shared data. This synchronization occurs while invalidating inconsistent copies of the data. We present a simple cache consistency mechanism which demonstrates that this synchronization is unnecessary. In particular, we show that it is possible to buffer invalidation requests at the caches while guaranteeing that concurrent programs are correctly executed by the system. This offers increased processor utilization by allowing the caches to handle invalidation requests between accesses by their associated processors. In addition, buffering invalidation requests offers greater utilization of shared memory by speeding up store operations. Additional contributions of this paper are the development of a formal definition of consistency and of a technique for proving that a system is consistent.
Key wordsAsynchronous multicaches Cache consistency mechanism
Unable to display preview. Download preview PDF.
- 1.Archibald J, Baer J-L (1986) Cache coherence protocols: evaluation using a multiprocessor simulation model. ACM Trans Comput Syst 4:273–298Google Scholar
- 2.Censier LM, Feautrier P (1978) A new solution to coherence problems in multicache systems. IEEE Trans Comput C-27:1112–1118Google Scholar
- 3.Dubois M, Scheurich C, Briggs F (1986) Memory access buffering in multiprocessors. 13th International Symposium on Computer Architecture, pp 234–243Google Scholar
- 4.Lamport L (1986) On interprocess communication. Distrib Comput 1:77–101Google Scholar
- 5.Lamport L (1979) How to make a multiprocessor that correctly executes multiprocess programs. IEEE Trans Comput C-28:690–691Google Scholar
- 6.Lamport L (1978) Time, clocks, and the ordering of events in a distributed system. Commun ACM 21:558–565Google Scholar
- 7.Papadimitriou C (1986) The theory of database concurrency control. Computer Science Press, Rockville, MDGoogle Scholar
- 8.Scheurich C, Dubois M (1987) Correct memory operation of cache-based multiprocessors. 14th International Symposium on Computer Architecture, pp 234–243Google Scholar
- 9.Singh A, Anderson J, Gouda M (1986) The elusive atomic register revisited. 6th Annual Symposium on Principles of Distributed Computing, pp 206–221Google Scholar
- 10.Smith AJ (1982) Cache memories. Comput Surv 14:473–540Google Scholar