Abstract
Sequential consistency is the archetypal correctness condition for the memory protocols of shared-memory multiprocessors. Typically, such protocols are parameterized by the number of processors, the number of addresses, and the number of distinguishable data values, and typically, automatic protocol verification analyzes only concrete instances of the protocol with small values (generally <3) for the protocol parameters. This paper presents a fully automatic method for proving the sequential consistency of an entire parameterized family of protocols, with the number of processors fixed, but the number of addresses and data values being unbounded parameters. Using some practical, reasonable assumptions (data independence, processor symmetry, location symmetry, simple store ordering, some syntactic restrictions), the method automatically generates a finite-state abstract protocol from the parameterized protocol description; proving sequential consistency of the abstract model, via known methods, guarantees sequential consistency of the entire protocol family. The method is sound, but incomplete, but we argue that it is likely to apply to most real protocols. We present experimental results showing the effectiveness of our method on parameterized versions of the Piranha shared memory protocol and an extended version of a directory protocol from the University of Wisconsin Multifacet Project.
This work was supported in part by a research grant and a graduate fellowship from the Natural Science and Engineering Research Council of Canada.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Afek, Y., Brown, G., Merritt, M.: Lazy caching. ACM Trans. on Prog. Lang. and Sys. 15(1), 182–205 (1993)
Alur, R., McMillan, K.L., Peled, D.: Model-checking of correctness conditions for concurrent objects. In: 11th IEEE Symp. on Logic in Comp. Sci. pp. 219–229 (1996)
Arons, T.: Using timestamping and history variables to verify sequential consistency. In: Berry, G., Comon, H., Finkel, A. (eds.) CAV 2001. LNCS, vol. 2102, pp. 423–435. Springer, Heidelberg (2001)
Arons, T., Pnueli, A., Ruah, S., Xu, Y., Zuck, L.: Parameterized verification with automatically computed inductive assertions. In: Berry, G., Comon, H., Finkel, A. (eds.) CAV 2001. LNCS, vol. 2102, pp. 221–234. Springer, Heidelberg (2001)
Barroso, L.A., Gharachorloo, K., McNamara, R., Nowatzyk, A., Qadeer, S., Sano, B., Smith, S., Stets, R., Verghese, B.: Piranha: a scalable architecture based on single-chip multiprocessing. In: 27th Int’l. Symp. on Comp. Arch. pp. 282–293 (2000)
Bilir, E.E., Dickson, R.M., Hu, Y., Plakal, M., Sorin, D.J., Hill, M.D., Wood, D.A.: Multicast snooping: a new coherence method using a multicast address network. In: 26th Int’l. Symp. on Comp. Arch. pp. 294–304 (1999)
Bingham, J.D., Condon, A., Hu, A.J.: Toward a decidable notion of sequential consistency. In: 15th ACM Symp. on Parallel Algorithms and Architectures (SPAA 2003), pp. 304–313 (2003)
Braun, T., Condon, A., Hu, A.J., Juse, K.S., Laza, M., Leslie, M., Sharma, R.: Proving sequential consistency by model checking. In: IEEE Int’l. High Level Design Validation and Test Workshop (HLDVT), pp. 103–108,;An expanded version appeared as University of British Columbia Dept. of Computer Science Tech Report TR-2001-03 (2001), http://www.cs.ubc.ca/cgibin/tr/2001/TR-2001-03
Clarke, E.M., Emerson, E.A.: Design and synthesis of synchronization skeletons using branching time temporal logic. In: Kozen, D. (ed.) Logic of Programs 1981. LNCS, vol. 131, pp. 52–71. Springer, Heidelberg (1982)
Condon, A., Hu, A.J.: Automatable verification of sequential consistency. In: 13th ACM Symp. on Parallel Algorithms and Architectures (SPAA 2001), pp. 113–121 (2001)
Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: 4th Symp. on Princ. of Prog. Lang., pp. 238–252 (1977)
Delzanno, G.: Automatic verification of parameterized cache coherence protocols. In: Emerson, E.A., Sistla, A.P. (eds.) CAV 2000. LNCS, vol. 1855, pp. 53–68. Springer, Heidelberg (2000)
Emerson, E.A., Kahlon, V.: Exact and efficient verification of parameterized cache coherence protocols. In: Geist, D., Tronci, E. (eds.) CHARME 2003. LNCS, vol. 2860, pp. 247–262. Springer, Heidelberg (2003)
Gopalakrishnan, G., Ghughal, R., Hosabettu, R., Mokkedem, A., Nalumasu, R.: Formal modeling and validation applied to a commercial coherent bus: a case study. In: Conf on Correct Hardware Design and Verification Methods (CHARME), pp. 48–62 (1997)
Henzinger, T.A., Qadeer, S., Rajamani, S.K.: Verifying sequential consistency on sharedmemory multiprocessor systems. In: Halbwachs, N., Peled, D.A. (eds.) CAV 1999. LNCS, vol. 1633, pp. 301–315. Springer, Heidelberg (1999)
Herlihy, M., Wing, J.: Linearizability: a correctness condition for concurrent objects. ACM Trans. on Prog. Lang. and Sys. 12(3), 463–492 (1990)
Hill, M.D.: Multiprocessors should support simple memory-consistency models. IEEE Computer, 28–34 (August 1998)
Ip, C.N., Dill, D.L.: Better verification through symmetry. In: Int’l. Conf. on Computer Hardware Description Languages, pp. 87–100 (1993)
Kuskin, J., Ofelt, D., Heinrich, M., Heinlein, J., Simoni, R., Gharachorloo, K., Chapin, J., Nakahira, D., Baxter, J., Horowitz, M., Gupta, A., Rosenblum, M., Hennessy, J.: The Stanford FLASH multiprocessor. In: 21st Int’l. Symp. on Comp. Arch., pp. 302–313 (1994)
Lamport, L.: How to make a multiprocessor computer that correctly executes multiprocess programs. IEEE Trans. on Computers C-28(9), 690–691 (1979)
Loewenstein, P., Dill, D.L.: Verification of a multiprocessor cache protocol using simulation relations and higher-order logic. Formal Methods in System Design 1(4), 355–383 (1992)
Martin, M.M.K., Hill, M.D., Wood, D.A.: Token coherence: low-latency coherence on unordered interconnects. In: Int’l. Symp. on Comp. Arch., pp. 182–193 (2003)
McMillan, K.L.: Parameterized verification of the FLASH cache coherence protocol by compositional model checking. In: Margaria, T., Melham, T.F. (eds.) CHARME 2001. LNCS, vol. 2144, pp. 179–195. Springer, Heidelberg (2001)
Merritt, M. (ed.): Distributed Computing, 12(2-3) (1999); Special issue devoted to proving sequential consistency of lazy caching
Nalumasu, R.: Formal Design and Verification Methods for Shared Memory Systems. PhD thesis, University of Utah (1999)
Park, S., Dill, D.: Verification of the FLASH cache coherence protocol by aggregation of distributed transactions. In: 8th Symp. on Parallel Algorithms and Architectures, pp. 288–296 (1996)
Pnueli, A., Ruah, S., Zuck, L.: Automatic deductive verification with invisible invariants. In: Margaria, T., Yi, W. (eds.) TACAS 2001. LNCS, vol. 2031, pp. 82–97. Springer, Heidelberg (2001)
Pong, F., Dubois, M.: Verification techniques for cache coherence protocols. ACM Computing Surveys 29(1), 82–126 (1997)
Qadeer, S.: Verifying sequential consistency on shared-memory multiprocessors by model checking. IEEE Trans. on Parallel and Distributed Systems 14(8), 730–741 (2003); Also appeared as Compaq Systems Research Center Report 176 (December 2001)
Scheurich, C.: Access Ordering and Coherence in Shared Memory Multiprocessors. PhD thesis, University of Southern California, USC Tech Report CENG 89-19 (May 1989)
Stern, U., Dill, D.L.: Improved probabilistic verification by hash compaction. In: Camurati, P.E., Eveking, H. (eds.) CHARME 1995. LNCS, vol. 987, pp. 206–224. Springer, Heidelberg (1995)
Wolper, P.: Expressing interesting properties of programs in propositional temporal logic. In: 13th Symp. on Princ. of Prog. Lang., pp. 184–192 (1986)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Bingham, J., Condon, A., Hu, A.J., Qadeer, S., Zhang, Z. (2004). Automatic Verification of Sequential Consistency for Unbounded Addresses and Data Values. In: Alur, R., Peled, D.A. (eds) Computer Aided Verification. CAV 2004. Lecture Notes in Computer Science, vol 3114. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-27813-9_33
Download citation
DOI: https://doi.org/10.1007/978-3-540-27813-9_33
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-22342-9
Online ISBN: 978-3-540-27813-9
eBook Packages: Springer Book Archive