Abstract
We offer a solution to the problem of verifying formal memory models of processors by combining the strengths of model-checking and a formal testing procedure for parallel machines. We characterize the formal basis for abstracting the tests into test automata and associated memory rule safety properties whose violations pinpoint the ordering rule being violated. Our experimental results on Verilog models of a commercial split transaction bus demonstrates the ability of our method to effectively debug design models during early stages of their development.
Supported in part by ARPA Order #B990 Under SPAWAR Contract #N0039-95-C-0018 (Avalanche), DARPA under contract #DABT6396C0094 (Utah Verifier), and NSF MIP MIP-9321836.
Chapter PDF
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
Sarita V. Adve and Kourosh Gharachorloo. Shared memory consistency models: A tutorial. Computer, 29(12):66–76, December 1996.
Yehuda Afek, Geoffrey Brown, and Michael Merritt. Lazy caching. ACM Transactions on Programming Languages and Systems, 15(1):182–205, January 1993.
Rajeev Alur, Ken McMillan, and Doron Peled. Model-checking of correctness conditions for concurrent objects. In 11th Annual IEEE Symposium on Logic in Computer Science, pages 219–228, July 1996.
William R. Bryg, Kenneth K. Chan, and Nicholas S.Fiduccia. A high-performance, low-cost multiprocessor bus for workstations and midrange servers. Hewlett-Packard Journal, pages 18–24, February 1996.
Albert Camilleri. A hybrid approach to verifying liveness in a symmetric multiprocessor. In Theorem Proving in Higher Order Logics, 10th International Conference, TPHOLs'97 Murray Hill, NJ, pages 49–67, August 1997. Springer-Verlag LNCS 1275.
E. M. Clarke, E. A. Emerson, and A. P. Sistla. Automatic verification of finite-state concurrent systems using temporal logic specifications. ACM TOPLAS, 8(2):244–263, 1986.
W. W. Collier. Multiprocessor diagnostics. http://www.infomall.org/diagnostics/archtest.html.
W. W. Collier. Reasoning About Parallel Architectures. Prentice-Hall, Englewood Cliffs, NJ, 1992.
Francisco Corella, April 1997. Invited talk at Computer Hardware Description Languages 1997, Toledo, Spain, on Verifying I/O Systems.
David L. Dill, Seungjoon Park, and Andreas Nowatzyk. Formal specification of abstract memory models. In Gaetano Borriello and Carl Ebeling, editors, Research on Integrated Systems, pages 38–52. MIT Press, 1993.
Rob Gerth. Introduction to sequential consistency and the lazy caching algorithm. Distributed Computing, 1995.
R. Ghughal, A. Mokkedem, R. Nalumasu, and G. Gopalakrishnan. Using “test model-checking” to verify the Runway-PA8000 memory model. In Tenth Annual ACM Symposium on Parallel Algorithms and Architectures, Puerto Vallarta, Mexico, June 1998.
Phillip B. Gibbons and Ephraim Korach. Testing shared memories. SIAM Journal on Computing, 26(4):1208–1244, August 1997.
James Gosling, Bill Joy, and Guy Steele. The Java™ Language Specification. Sun Microsystems, 1.0 edition, August 1996.
S. Graf. Verification of a distributed cache memory by using abstractions. Lecture Notes in Computer Science, 818:207–220, 1994.
R. Hojati and R. Brayton. Automatic datapath abstraction of hardware systems. In Conference on Computer-Aided Verification, 1995.
R. Hojati, R. Mueller-Thuns, P. Loewenstein, and R. Brayton. Automatic verification of memory systems which service their requests out of order. In CHDL, pages 623–639, 1995.
Gerry Kane. PA-RISC 2.0 Architecture. Prentice Hall, 1996.
P. Ladkin, L. Lamport, B. Olivier, and D. Roegel. Lazy caching in TLA. Distributed Computing, 1997.
Leslie Lamport. How to make a correct multiprocess program execute correctly on a multiprocessor. Technical report, Digital Equipment Corporation, Systems Research Center, February 1993.
Leslie Lamport. The temporal logic of actions. ACM Transactions on Programming Languages and Systems, 16(3):872–923, May 1994. Also appeared as SRC Research Report 79.
Kenneth L. McMillan. Symbolic Model Checking. Kluwer Academic Press, 1993.
A. Mokkedem. Verification of three memory systems using test model-checking. http://www.cs.utah.edu/~mokkedem/vis/vis.htmi.
R. Nalumasu, R. Ghughal, A. Mokkedem, and G. Gopalakrishnan. The ‘test model-checking’ approach to the verification of formal memory models of multiprocessors. Technical Report UUCS-98-008, University of Utah, 1998. also available in http://www.cs.utah.edu/~mokkedem/frames/tr98.ps.gz
Seungjoon Park and David L. Dill. Verification of FLASH cache coherence protocol by aggregation of distributed transactions. In SPAA, pages 288-296, Padua, Italy, June 24–26, 1996.
Vis-1.2 release. http://www-cad.eecs.berkeley.edu/Respep/Research/vis/.
David L. Weaver and Tom Germond. The SPARC Architecture Manual — Version 9. P T R Prentice-Hall, Englewood Cliffs, NJ 07632, USA, 1994.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1998 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Nalumasu, R., Ghughal, R., Mokkedem, A., Gopalakrishnan, G. (1998). The ‘test model-checking’ approach to the verification of formal memory models of multiprocessors. In: Hu, A.J., Vardi, M.Y. (eds) Computer Aided Verification. CAV 1998. Lecture Notes in Computer Science, vol 1427. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0028767
Download citation
DOI: https://doi.org/10.1007/BFb0028767
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-64608-2
Online ISBN: 978-3-540-69339-0
eBook Packages: Springer Book Archive