Abstract
A central problem in extending the von Neumann architecture to petaflop computers with a shared memory and millions of hardware threads is defining the memory model [1, 2, 3]. Such a model must specify the behavior of concurrent (conditional) reads and writes to the same memory locations. We present a simple, general framework for the specification of memory models based on an abstract machine that uses sets of order and value constraints to communicate between threads and main memory. Memory is permitted to specify exactly those linkings (mappings from read events to write events) which result in a unique solution for the constraints, and hence forces a unique patterns of bits to flow from writes to reads.
We show that this single principle accounts for almost all the “causality test cases” proposed for the java memory model. It may be used as the basis for developing a formal memory model for the java programming language.
An implementation of CCMs in a Prolog-based constraint language has been developed by Tom Schrijvers and Bart Demoen [4]. This paper is a summary of [5].
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Lamport, L.: How to make a multiprocessor computer that correctly executes multiprocess programs. IEEE Transactions on Computers 28 (1979)
Adve, S., Gharachorloo, K.: Shared Memory Consistency Models: A tutorial. Technical report, Digital Western Research Laboratory (1995)
Adve, S., Pai, V.S., Ranganthan, P.: Recent Advances in Memory Consistency Models for Hardware Shared-Memory Systems. Proceedings of the IEEE 87, 445–455 (1999)
Schrijvers, T., Demoen, B.: JMMSolve: a generative reference implementation of CCM Machines. Technical Report Report CW 379, Katholieke Universiteit Leuven (2004)
Saraswat, V.: Concurrent Constraint-based Memory Machines: A framework for java Memory Models. Technical report, IBM T.J.Watson Research Center, Hawthorne NY (2004), Available at http://www.saraswat.org
Gosling, J., Joy, W., Steele, G., Bracha, G.: The Java Language Specification. Addison-Wesley, Reading (2000)
Pugh, W.: Proposal for Java Memory Model and Thread Specification Revision, JSR 133 (2001), http://www.jcp.org/en/jsr/detail?id=133
Pugh, W.: Java Memory Model and Thread Specification Revision, JSR 133 (2004), http://www.jcp.org/en/jsr/detail?id=133
Pugh, W.: Java Memory Model Causality Test Cases. Technical report, U Maryland (2004), http://www.cs.umd.edu/~pugh/java/memoryModel/
Saraswat, V.: Concurrent Constraint Programming. Doctoral Dissertation Award and Logic Programming. MIT Press, Cambridge (1993)
Manson, J., Pugh, W.: The Manson/Pugh model. Technical report, U Maryland (2004), http://www.cs.umd.edu/~pugh/java/memoryModel/
Adve, S.: Sc-. Technical report, University of Illinois Urbana-Champaign (2004), http://www.cs.umd.edu/~pugh/java/memoryModel/
Maessen, J.W., Arvind, S.X.: Improving the Java Memory Model Using CRF. In: OOPSLA (2000)
Yang, Y., Gopalakrishna, G., Lindstrom, G.: A Generic Operatonal Memory Model Specification Framework for Multithreaded Program Verification. Technical report, School of Computing, U. of Utah (2004)
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
Saraswat, V. (2004). Concurrent Constraint-Based Memory Machines: A Framework for Java Memory Models (Summary). In: Maher, M.J. (eds) Advances in Computer Science - ASIAN 2004. Higher-Level Decision Making. ASIAN 2004. Lecture Notes in Computer Science, vol 3321. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-30502-6_36
Download citation
DOI: https://doi.org/10.1007/978-3-540-30502-6_36
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-24087-7
Online ISBN: 978-3-540-30502-6
eBook Packages: Computer ScienceComputer Science (R0)