Relaxed memory models
Authors:
Open Access
- 21 January 2009
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGPLAN Notices
- Vol. 44 (1) , 392-403
Abstract
Memory models define an interface between programs written in some language and their implementation, determining which behaviour the memory (and thus a program) is allowed to have in a given model. A minimal guarantee memory models should provide to the programmer is that well-synchronized, that is, data-race free code has a standard semantics. Traditionally, memory models are defined axiomatically, setting constraints on the order in which memory operations are allowed to occur, and the programming language semantics is implicit as determining some of these constraints. In this work we propose a new approach to formalizing a memory model in which the model itself is part of a weak operational semantics for a (possibly concurrent) programming language. We formalize in this way a model that allows write operations to the store to be buffered. This enables us to derive the ordering constraints from the weak semantics of programs, and to prove, at the programming language level, that the weak semantics implements the usual interleaving semantics for data-race free programs, hence in particular that it implements the usual semantics for sequential code.Keywords
This publication has 27 references indexed in Scilit:
- Transactional events for MLACM SIGPLAN Notices, 2008
- Semantics of transactional memory and automatic mutual exclusionACM SIGPLAN Notices, 2008
- High-level small-step operational semantics for transactionsACM SIGPLAN Notices, 2008
- The Java memory modelACM SIGPLAN Notices, 2005
- A unified theory of shared memory consistencyJournal of the ACM, 2004
- Location consistency-a new memory model and cache consistency protocolIEEE Transactions on Computers, 2000
- Commit-reconcile & fences (CRF)ACM SIGARCH Computer Architecture News, 1999
- Weak ordering—a new definitionACM SIGARCH Computer Architecture News, 1990
- Memory access buffering in multiprocessorsACM SIGARCH Computer Architecture News, 1986
- Minimal and Optimal Computations of Recursive ProgramsJournal of the ACM, 1979