skip to main content
10.5555/647768.733800guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Verifying Sequential Consistency on Shared-Memory Multiprocessor Systems

Published: 06 July 1999 Publication History

Abstract

In shared-memory multiprocessors sequential consistency offers a natural tradeoff between the flexibility afforded to the implementor and the complexity of the programmer's view of the memory. Sequential consistency requires that some interleaving of the local temporal orders of read/write events at different processors be a trace of serial memory. We develop a systematic methodology for proving sequential consistency for memory systems with three parameters --number of processors, number of memory locations, and number of data values. From the definition of sequential consistency it suffices to construct a non-interfering observer that watches and reorders read/write events so that a trace of serial memory is obtained. While in general such an observer must be unbounded even for fixed values of the parameters --checking sequential consistency is undecidable!-- we show that for two paradigmatic protocol classes--lazy caching and snoopy cache coherence--there exist finite-state observers. In these cases, sequential consistency for fixed parameter values can thus be checked by language inclusion between finite automata.
In order to reduce the arbitrary-parameter problem to the fixed-parameter problem, we develop a novel framework for induction over the number of processors. Classical induction schemas, which are based on process invariants that are inductive with respect to an implementation preorder that preserves the temporal sequence of events, are inadequate for our purposes, because proving sequential consistency requires the reordering of events. Hence we introduce merge invariants, which permit certain reorderings of read/write events. We show that under certain reasonable assumptions about the memory system, it is possible to conclude sequential consistency for any number of processors, memory locations, and data values by model checking two finite-state lemmas about process and merge invariants: they involve two processors each accessing a maximum of three locations, where each location stores at most two data values. For both lazy caching and snoopy cache coherence we are able to discharge the two lemmas using the model checker MOCHA.

References

[1]
J. Archibald, J.-L. Baer. Cache coherence protocols: evaluation using a multiprocessor simulation model. ACM Trans. Computer Systems, 4(4):273-298, 1986.
[2]
Y. Afek, G. Brown, M. Merritt. Lazy caching. ACM Trans. Programming Languages and Systems, 15(1):182-205, 1993.
[3]
S.V. Adve, K. Gharachorloo. Shared memory consistency models: a tutorial. IEEE Computer, 29(12):66-76, 1996.
[4]
R. Alur, T.A. Henzinger, F.Y.C. Mang, S. Qadeer, S.K. Rajamani, S. Tasiran. MOCHA: Modularity in model checking. In CAV 98: Computer Aided Verification, LNCS, pp. 521-525. Springer-Verlag, 1998.
[5]
R. Alur, K.L. McMillan, D. Peled. Model-checking of correctness conditions for concurrent objects. In Proc. 11th IEEE Symp. Logic in Computer Science, pp. 219-228, 1996.
[6]
M.C. Browne, E.M. Clarke, O. Grumberg. Reasoning about networks with many identical finite state processes. Information and Computation, 81(1):13-31, 1989.
[7]
E.M. Clarke, O. Grumberg, H. Hiraishi, S. Jha, D.E Long, K.L. McMillan, and L.A. Ness. Verification of the Futurebus+ cache coherence protocol. In Proc. 11th IFIP WG10.2 Conf. Computer Hardware Description Languages and their Applications, pp. 15-30, 1993.
[8]
A.T. Eiriksson, K.L. McMillan. Using formal verification/analysis methods on the critical path in system design: a case study. In CAV 95: Computer Aided Verification, LNCS 939, pp. 367-380. Springer-Verlag, 1995.
[9]
E.A. Emerson, K.S. Namjoshi. Verification of a parameterized bus arbitration protocol. In CAV 98: Computer Aided Verification, LNCS 1427, pp. 452-463. Springer-Verlag, 1998.
[10]
P.B. Gibbons, M. Merritt, K. Gharachorloo. Proving sequential consistency of highperformance shared memories. In Proc. 3rd ACM Symp. Parallel Algorithms and Architectures, pp. 292-303, 1991.
[11]
S. Graf. Verification of a distributed cache memory by using abstractions. In CAV 94: Computer Aided Verification, LNCS 818, pp. 207-219. Springer-Verlag, 1994.
[12]
S. Graf, H. Saidi. Construction of abstract state graphs with PVS. In CAV 97: Computer Aided Verification, LNCS 1254, pp. 72-83. Springer-Verlag, 1997.
[13]
M.D. Hill. Multiprocessors should support simple memory consistency models. IEEE Computer, 31(8):28-34, 1998.
[14]
J.L. Hennessy, D.A. Patterson. Computer Architecture: A Quantitative Approach. Morgan-Kaufmann, 1996.
[15]
C. N. Ip, D. L. Dill. Better verification through symmetry. Formal Methods in System Design, 9(1-2):41-75, 1996.
[16]
R.P. Kurshan, K.L. McMillan. A structural induction theorem for processes. In Proc. 8th ACM Symp. Principles of Distributed Computing, pp. 239-247, 1989.
[17]
L. Lamport. How to make a multiprocessor computer that correctly executes multiprocess programs. IEEE Trans. Computers, C-28(9):690-691, 1979.
[18]
P. Loewenstein, D.L. Dill. Verification of a multiprocessor cache protocol using simulation relations and higher-order logic. Formal Methods in System Design, 1(4):355-383, 1992.
[19]
P. Ladkin, L. Lamport, B. Olivier, D. Roegel. Lazy caching in TLA. To appear in Distributed Computing.
[20]
K. L. McMillan, J. Schwalbe. Formal verification of the Encore Gigamax cache consistency protocol. In Proc. Symp. Shared Memory Multiprocessors, Inf. Process. Soc. Japan, pp. 242-251, 1991.
[21]
R. Nalumasu, R. Ghughal, A. Mokkedem, G. Gopalakrishnan. The 'test modelchecking' approach to the verification of formal memory models of multiprocessors. In CAV 98: Computer Aided Verification, LNCS 1427, pp. 464-476. Springer-Verlag, 1998.
[22]
F. Pong, M. Dubois. A new approach for the verification of cache coherence protocols. IEEE Trans. Parallel and Distributed Systems, 6(8):773-787, 1995.
[23]
S. Park, D.L. Dill. Protocol verification by aggregation of distributed transactions. In CAV 96: Computer Aided Verification, LNCS 1102, pp. 300-310. Springer-Verlag, 1996.
[24]
M. Plakal, D.J. Sorin, A.E. Condon, M.D. Hill. Lamport clocks: verifying a directory cache-coherence protocol. In Proc. 10th ACM Symp. Parallel Algorithms and Architectures, pp. 67-76, 1998.
[25]
P. Wolper, V. Lovinfosse. Verifying properties of large sets of processes with network invariants. In CAV 89: Computer Aided Verification, LNCS 407, pp. 68-80. Springer-Verlag, 1989.

Cited By

View all
  1. Verifying Sequential Consistency on Shared-Memory Multiprocessor Systems

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      cover image Guide Proceedings
      CAV '99: Proceedings of the 11th International Conference on Computer Aided Verification
      July 1999
      483 pages
      ISBN:3540662022

      Publisher

      Springer-Verlag

      Berlin, Heidelberg

      Publication History

      Published: 06 July 1999

      Qualifiers

      • Article

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)0
      • Downloads (Last 6 weeks)0
      Reflects downloads up to 05 Jan 2025

      Other Metrics

      Citations

      Cited By

      View all

      View Options

      View options

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media