Skip to main content
Log in

Constraint-Based Verification of Parameterized Cache Coherence Protocols

  • Published:
Formal Methods in System Design Aims and scope Submit manuscript

Abstract

We propose a new method for the parameterized verification of formal specifications of cache coherence protocols. The goal of parameterized verification is to establish system properties for an arbitrary number of caches. In order to achieve this purpose we define abstractions that allow us to reduce the original parameterized verification problem to a control state reachability problem for a system with integer data variables. Specifically, the methodology we propose consists of the following steps. We first define an abstraction in which we only keep track of the number of caches in a given state during the execution of a protocol. Then, we use linear arithmetic constraints to symbolically represent infinite sets of global states of the resulting abstract protocol. For reasons of efficiency, we relax the constraint operations by interpreting constraints over real numbers. Finally, we check parameterized safety properties of abstract protocols using symbolic backward reachability, a strategy that allows us to obtain sufficient conditions for termination for an interesting class of protocols. The latter problem can be solved by using the infinite-state model checker HyTech: Henzinger, Ho, and Wong-Toi, “A model checker for hybrid systems,” Proc. of the 9th International Conference on Computer Aided Verification (CAV'97), Lecture Notes in Computer Science, Springer, Haifa, Israel, 1997, Vol. 1254, pp. 460–463. HyTech handles linear arithmetic constraints using the polyhedra library of Halbwachs and Proy, “Verification of real-time systems using linear relation analysis,” Formal Methods in System Design, Vol. 11, No. 2, pp. 157–185, 1997. By using this methodology, we have automatically validated parameterized versions of widely implemented write-invalidate and write-update cache coherence protocols like Synapse, MESI, MOESI, Berkeley, Illinois, Firefly and Dragon (Handy, The Cache Memory Book, Academic Press, 1993). With this application, we have shown that symbolic model checking tools like HyTech, originally designed for the verification of hybrid systems, can be applied successfully to new classes of infinite-state systems of practical interest.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

References

  1. P.A. Abdulla, A. Bouajjani, B. Jonsson, and M. Nilsson, “Handling global conditions in parameterized system verification,” in N. Halbwachs and D. Peled (Eds.), Proceedings of the 11th International Conference on Computer Aided Verification (CAV'99), Lecture Notes in Computer Science, Trento, Italy, 1999, Vol. 1633, pp. 134–145.

  2. P.A. Abdulla, K. Cerãns, B. Jonsson, and Y.-K. Tsay, “General decidability theorems for infinite-state systems,” in Proceedings of the 11th Annual International Symposium on Logic in Computer Science (LICS’ 96), New Brunswick, New Jersey, 1996, pp. 313–321.

  3. P.A. Abdulla and B. Jonsson, “Ensuring completeness of symbolic verification methods for infinite-state systems,” Theoretical Computer Science, Vol. 256, Nos. 1/2, pp. 145–167, 2001.

    Google Scholar 

  4. P.A. Abdulla and A. Nylé n, “Better is better than well: On efficient verification of infinite-state systems,” in Proceedings of the 15th Annual International Symposium on Logic in Computer Science (LICS’ 00), Santa Barbara, California, 2000, pp. 132–140.

  5. P.A. Archibald and J. Baer, “Cache coherence protocols: Evaluation using a multiprocessor simulation model,” ACM Transactions on Computer Systems, Vol. 4, No. 4, pp. 273–298, 1986.

    Google Scholar 

  6. T. Arons, A. Pnueli, S. Ruah, Y. Xu, and L.D. Zuck, “Parameterized verification with automatically computed inductive assertions,” in G. Berry, H. Comon, and A. Finkel (Eds.), Proceedings of the 13th International Conference on Computer Aided Verification (CAV’ 01), Lecture Notes in Computer Science, Paris, France, 2001, Vol. 2102, pp. 221–234.

  7. J.-P. Bodeveix and M. Filali, “FMona: A tool for expressing validation techniques over infinite state systems,” in Proceedings of the 6th Int. Con. on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’ 00), Lecture Notes in Computer Science, Berlin, Germany, 2000, Vol. 1785, pp. 204–218.

    Google Scholar 

  8. B. Boigelot and P. Wolper, “Verifying systems with infinite but regular state space,” in Proceedings of the 10th Conf. on Computer Aided Verification (CAV’ 98), Lecture Notes in Computer Science, 1998, Vol. 1427, pp. 88–97.

    Google Scholar 

  9. A. Bouajjani, B. Jonsson, M. Nilsson, and T. Touili, “Regular model checking,” in E.A. Emerson and A.P. Sistla (Eds.), Proceedings of the 12th International Conference on Computer Aided Verification (CAV'00), Lecture Notes in Computer Science, Chicago, Illinois, 2000, Vol. 1855, pp. 403–418.

  10. M.C. Browne, E.M. Clarke, and O. Grumberg, “Reasoning about networks with many identical finite state processes,” Information and Computation, Vol. 81, No. 1, pp. 13–31, 1989.

    Google Scholar 

  11. T. Bultan, R. Gerber, and W. Pugh, “Symbolic model checking of infinite state systems using presburger arithmetics,” in O.Grumberg (Ed.), Proceedings 9th International Conference on Computer Aided Verification (CAV’ 97), Lecture Notes in Computer Science, Haifa, Israel, 1997, Vol. 1254, pp. 400–411.

  12. K.-T. Cheng and A.S. Krishnakumar, “Automatic generation of functional vectors using the extended finite state machine model,” ACM Transactions on Design Automation of Electronic Systems, Vol. 1, No. 1, pp. 57–79, 1996.

    Google Scholar 

  13. E. Clarke, O. Grumberg, and S. Jha, “Verifying parameterized networks,” TOPLAS, Vol. 19, No. 5, pp. 726–750, 1997.

    Google Scholar 

  14. 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 L.J.M.C.D. Agnew and R. Camposano (Eds.), Proceedings of the 11th IFIP WG10.2 International Conference on Computer Hardware Description Languages and their Applications (CHDL’ 93), sponsored by IFIP WG10.2 and in cooperation with IEEE COMPSOC, Ottawa, Ontario, Canada, 1993, pp. 15–30.

  15. G. Delzanno, “Automatic verification of parameterized cache coherence protocols,” in E.A. Emerson and A.P. Sistla (Eds.), Proceedings of the 12th International Conference on Computer Aided Verification (CAV’ 00), Lecture Notes in Computer Science, Chicago, Illinois, Vol. 1855, 2000.

  16. G. Delzanno and T. Bultan, “Constraint-based verification of client-server protocols,” in T. Walsh (Ed.), Proceedings of the 7th International Conference on Principles and Practice of Constraint Programming (CP’ 01), Lecture Notes in Computer Science, Paphos, Cyprus, 2001, Vol. 2239, pp. 286–301.

  17. G. Delzanno, J. Esparza, and A. Podelski, “Constraint-based analysis of broadcast protocols,” in J. Flum and M. RodrÍguez-Artalejo (Eds.), Proceedings of the 1999 Annual Conference of the European Association for Computer Science Logic (CSL’ 99), Lecture Notes in Computer Science, Madrid, Spain, pp. 50–66, 1999, Vol. 1683.

  18. G. Delzanno and A. Podelski, “Model checking in CLP,” in R. Cleaveland (Ed.), Proceedings of the 5th International Conference on Tools and Algorithms for Construction and Analysis of Systems (TACAS’ 99), Lecture Notes in Computer Science, Amsterdam, The Netherlands, 1999, Vol. 1579, pp. 223–239.

  19. G. Delzanno, J.-F. Raskin, and L.V. Begin, “Attacking symbolic state explosion,” in G. Berry, H. Comon, and A. Finkel (Eds.), Proceedings of the 13th International Conference on Computer Aided Verification (CAV’ 01), Lecture Notes in Computer Science, Paris, France, 2001, Vol. 2102, pp. 298–310.

  20. E. Emerson and K. Namjoshi, “On model checking for non-deterministic infinite-state systems,” in Proceedings of the 13th International Symposium on Logic in Computer Science (LICS’ 98), Indianapolis, Indiana, 1998, pp. 70–80.

  21. J. Esparza, A. Finkel, and R. Mayr, “On the verification of broadcast protocols,” in Proceedings 14th International Symposium on Logic in Computer Science (LICS’ 99), Trento, Italy, 1999, pp. 352–359.

  22. A. Finkel and P. Schnoebelen, “Well-structured transition systems everywhere,” Theoretical Computer Science, Vol. 256, Nos. 1/2, pp. 63–92, 2001.

    Google Scholar 

  23. S.M. German and A.P. Sistla, “Reasoning about systems with many processes,” Journal of the ACM, Vol. 39, No. 3, pp. 675–735, 1992.

    Google Scholar 

  24. S. Graf, “Characterization of a sequentially consistent memory and verification of a cache memory by abstraction,” Distributed Computing, Vol. 12, Nos. 2/3, pp. 75–90, 1999.

    Google Scholar 

  25. S. Graf and H. Saïdi, “Construction of abstract state graphs with PVS,” in O. Grumberg (Ed.), Proceedings of the 9th International Conference on Computer Aided Verification (CAV'97), Lecture Notes in Computer Science, Haifa, Israel, 1997, Vol. 1254, pp. 72–83.

  26. N. Halbwachs, “Delay analysis in synchronous programs,” in C. Courcoubetis (Ed.), Proceedings of the 5th Conference on Computer-Aided Verification (CAV'93), Lecture Notes in Computer Science, Elounda, Greece, 1993, Vol. 697, pp. 333–346.

  27. J. Handy, The Cache Memory Book, Academic Press, 1993.

  28. T.A. Henzinger, P.-H. Ho, and H.Wong-Toi, “HYTECH: A model checker for hybrid systems,” in O. Grumberg (Ed.), Proceedings of the 9th International Conference on Computer Aided Verification (CAV'97), Lecture Notes in Computer Science, Springer, Haifa, Israel, 1997, Vol. 1254, pp. 460–463.

    Google Scholar 

  29. T.A. Henzinger, S. Qadeer, and S.K. Rajamani, “Verifying sequential consistency on shared-memory multiprocessor systems,” in N. Halbwachs and D. Peled (Eds.), Proceedings of the 11th International Conference on Computer Aided Verification (CAV'99), Lecture Notes in Computer Science. Trento, Italy: Springer, 1999, Vol. 1633, pp. 301–315.

    Google Scholar 

  30. R.M. Karp and R.E. Miller, “Parallel program schemata,” Journal of Computer and System Sciences, Vol. 3, No. 2, pp. 147–195, 1969.

    Google Scholar 

  31. Y. Kesten, O. Maler, M. Marcus, A. Pnueli, and E. Shahar, “Symbolic model checking with rich assertional languages,” in O. Grumberg (Ed.), Proceedings of the 9th International Conference on Computer Aided Verification (CAV'97), Lecture Notes in Computer Science, Haifa, Israel, 1997, Vol. 1254, pp. 424–435.

  32. D. Lesens, N. Halbwachs, and P. Raymond, “Automatic verification of parameterized linear networks of processes,” in Proceedings of the 24th Symposium on Principles of Programming Languages (POPL'97), Paris, France, 1997, pp. 346–357.

  33. B.D. Lubachevsky, “An approach to automating the verification of compact parallel coordination programs,” Acta Informatica, Vol. 21, pp. 125–169, 1984.

    Google Scholar 

  34. M.S. Papamarcos, J.H. Patel, “A low-overhead coherence solution for multiprocessors with private cache memories,” in Proceedings of 11th Annual Symposium on Computer Architecture (ISCA'84), Ann Arbor, USA, 1984, pp. 348–354.

  35. K. McAloon, “Petri nets and large finite sets,” Theoretical Computer Science, Vol. 32, pp. 173–183, 1984.

    Google Scholar 

  36. K. McMillan, “Verification of infinite state systems by compositional model checking,” in L. Pierre and T. Kropf (Eds.), Proceedings of 10th IFIP WG 10.5 Advanced Research Working Conference on Correct Hardware Design and Verification Methods (CHARME’ 99), Lecture Notes in Computer Science, Bad Herrenalb, Germany, 1999, Vol. 1703, pp. 219–234

  37. K. McMillan and J. Schwalbe, “Verification of infinite state systems by compositional model checking,” in Proc. Int. Symp. on Shared Memory Multiprocessors, pp. 242–251, 1991.

  38. N. Halbwachs, Y.-E. Proy, P. Raymond, “Verification of real-time systems using linear relation analysis,” Formal Methods in System Design, Vol. 11, No. 2, pp. 157–185, 1997.

    Google Scholar 

  39. C. Norris Ip and D.L. Dill, “Verifying systems with replicated components in murphi,” Formal Methods in System Design, Vol. 14, No. 3, pp. 273–310, 1999.

    Google Scholar 

  40. A. Pnueli, S. Ruah, and L.D. Zuck, “Automatic deductive verification with invisible invariants,” in T. Margaria and W. Yi (Eds.), Proceedings of the 7th International Conference on Tools and Algorithms for Construction and Analysis of Systems (TACAS’ 01), Lecture Notes in Computer Science, Genova, Italy, 2001, Vol. 2031, pp. 82–97.

  41. A. Pnueli and E. Shahar, “Liveness and acceleration in parameterized verification,” in E.A. Emerson and A.P. Sistla (Eds.), Proceedings of the 12th International Conference on Computer Aided Verification (CAV'00), Lecture Notes in Computer Science, Chicago, Illinois, 2000, Vol. 1855, pp. 328–343.

  42. F. Pong and M. Dubois, “A new approach for the verification of cache coherence protocols,” IEEE Transactions on Parallel and Distributed Systems, Vol. 6, No. 8, 1995.

  43. F. Pong and M. Dubois, “Verification techniques for cache coherence protocols,” ACM Computing Surveys, Vol. 29, No. 1, pp. 82–126, 1997.

    Google Scholar 

  44. A. Schrijver, Theory of Linear and Integer Programming. Wiley-Interscience Series in Discrete Mathematics and Optimization. Wiley and Sons, 1998.

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Delzanno, G. Constraint-Based Verification of Parameterized Cache Coherence Protocols. Formal Methods in System Design 23, 257–301 (2003). https://doi.org/10.1023/A:1026276129010

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1026276129010

Navigation