Abstract
We present a non-operational approach to specifying and analyzing shared memory consistency models. The method uses higher order logic to capture a complete set of ordering constraints on execution traces, in an axiomatic style. A direct encoding of the semantics with a constraint logic programming language provides an interactive and incremental framework for exercising and verifying finite test programs. The framework has also been adapted to generate equivalent boolean satisfiability (SAT) problems. These techniques make a memory model specification executable, a powerful feature lacked in most non-operational methods. As an example, we provide a concise formalization of the Intel Itanium memory model and show how constraint solving and SAT solving can be effectively applied for computer aided analysis. Encouraging initial results demonstrate the scalability for complex industrial designs.
This work was supported by a grant from the Semiconductor Research Corporation for Task 1031.001, and Research Grants CCR-0081406 and CCR-0219805 of NSF.
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
Intel Itanium Architecture Software Developer’s Manual, http://developer.intel.com/design/itanium/manuals.htm
A Formal Specification of Intel Itanium Processor Family Memory Ordering, Application Note, Document Number: 251429-001 (October 2002)
Gharachorloo, K.: Memory consistency models for shared-memory multiprocessors. Technical Report CSL-TR-95-685, Stanford University (December 1995)
Dill, D., Park, S., Nowatzyk, A.: Formal Specification of Abstract Memory Models. In: Research on Integrated Systems: Proceedings of the 1993 Symposium (1993)
Chatterjee, P., Gopalakrishnan, G.: Towards a Formal Model of Shared Memory Consistency for Intel Itanium. In: ICCD 2001, Austin, TX (September 2001)
Yang, Y., Gopalakrishnan, G., Lindstrom, G.: Specifying Java Thread Semantics Using a Uniform Memory Model. In: Joint ACM Java Grande - ISCOPE Conference (2002)
The SPARC Architecture Manual, Version 9, Prentice Hall (1993)
Lamport, L.: How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs. IEEE Transactions on Computers 28(9), 690–691 (1979)
Ahamad, M., Neiger, G.: James Burns, Prince Kohli, Philip Hutto: Causal Memory: Definitions, Implementation and Programming. Technical Report: GIT CC-93/95
Yu, Y.: Through personal communication
TLA+, http://research.microsoft.com/users/lamport/tla/tla.html
Joshi, R., Lamport, L., Matthews, J., Tasiran, S., Tuttle, M., Yu, Y.: Checking Cache-Coherence Protocols with TLA+ Formal Methods in System Design. Formal Methods in System Design 22(2), 125–131 (2003)
Gordon, M.J.C., Melham, T.F.: Introduction to HOL: A theorem proving environment for higher order logic. Cambridge University Press, Cambridge (1993)
Lipton, R.J., Sandberg, J.S.: PRAM: A Scalable Shared Memory. CS-TR-180-88
Ahamad, M., Bazzi, R., John, R., Kohli, P., Neiger, G.: The Power of Processor Consistency. In: 5th Annual ACM Symposium on Parallel Algorithms and Architectures, SPAA 1993 (1993)
Jaffar, J., Lassez, J.-L.: Constraint Logic Programming. Principles of Programming Languages, Munich, Germany (January 1987)
SICStus Prolog, http://www.sics.se/sicstus
Moskewicz, M., Madigan, C., Zhao, Y., Zhang, L., Malik, S.: Chaff: Engineering an Efficient SAT Solver. In: 39th Design Automation Conference, Las Vegas (June 2001)
Goldberg, E., Novikov, Y.: BerkMin: a Fast and Robust Sat-Solver. Design, Automation and Test in Europe Conference and Exhibition Paris, France (2002)
Seshia, S.A., Lahiri, S.K., Bryant, R.E.: A Hybrid SAT-Based Decision Procedure for Separation Logic with Uninterpreted Functions. In: 40th Design Automation Conference (DAC), June 2003, pp. 425–430 (2003)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Yang, Y., Gopalakrishnan, G., Lindstrom, G., Slind, K. (2003). Analyzing the Intel Itanium Memory Ordering Rules Using Logic Programming and SAT. In: Geist, D., Tronci, E. (eds) Correct Hardware Design and Verification Methods. CHARME 2003. Lecture Notes in Computer Science, vol 2860. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-39724-3_9
Download citation
DOI: https://doi.org/10.1007/978-3-540-39724-3_9
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-20363-6
Online ISBN: 978-3-540-39724-3
eBook Packages: Springer Book Archive