Abstract
We study two operational semantics for relaxed memory models. Our first formalization is based on the notion of write-buffers which is pervasive in the memory models literature. We instantiate the (Total Store Ordering) TSO and (Partial Store Ordering) PSO memory models in this framework. Memory models that support more aggressive relaxations (e.g. read-to-read reordering) are not easily described with write-buffers. Our second framework is based on a general notion of speculative computation. In particular we allow the prediction of function arguments, and execution ahead of time (e.g. by branch prediction). While technically more involved than write-buffers, this model is more expressive and can encode all the Sparc family of memory models: TSO, PSO and (Relaxed Memory Ordering) RMO. We validate the adequacy of our instantiations of TSO and PSO by formally comparing their write-buffer and speculative formalizations. The use of operational semantics techniques is paramount for the tractability of these proofs.
Research supported by NSF 1237923.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
A more complete language is considered in [15].
- 2.
Throughout the paper we use the notations \(a \cdot b\) for the concatenation of sequences \(a\) and \(b\), and \(\le \) for the prefix ordering.
- 3.
Since most proofs in this paper are not concerned with RMO we will just present its formalization for completeness, but we will otherwise ignore it.
- 4.
The proof of this and subsequent results can be found in the extended version [16].
References
Adve, S.V., Gharachorloo, K.: Shared memory consistency models: a tutorial. Computer 29, 66–76 (1996)
Adve, S.V., Hill, M.D.: Weak ordering – a new definition. In: ISCA, pp. 2–14. ACM, New York (1990)
Alglave, J.: A shared memory poetics. Ph.D. thesis, Université Paris 7 (2010)
Atig, M.F., Bouajjani, A., Burckhardt, S., Musuvathi, M.: On the verification problem for weak memory models. In: POPL ’10, pp. 7–18 (2010)
Atig, M.F., Bouajjani, A., Burckhardt, S., Musuvathi, M.: What’s decidable about weak memory models? In: Seidl, H. (ed.) ESOP 2012. LNCS, vol. 7211, pp. 26–46. Springer, Heidelberg (2012)
Berry, G., Lévy, J.-J.: Minimal and optimal computations of recursive programs. J. ACM 26(1), 148–175 (1979)
Boudol, G., Petri, G.: Relaxed memory models: an operational approach. In: POPL, pp. 392–403. ACM, New York (2009)
Boudol, G., Petri, G.: A theory of speculative computation. In: Gordon, A.D. (ed.) ESOP 2010. LNCS, vol. 6012, pp. 165–184. Springer, Heidelberg (2010)
Flanagan, C., Sabry, A., Duba, B.F., Felleisen, M.: The essence of compiling with continuations. In: PLDI, pp. 237–247. ACM, New York (1993)
Jagadeesan, R., Pitcher, C., Riely, J.: Generative operational semantics for relaxed memory models. In: Gordon, A.D. (ed.) ESOP 2010. LNCS, vol. 6012, pp. 307–326. Springer, Heidelberg (2010)
Lamport, L.: How to make a multiprocessor computer that correctly executes multiprocess progranm. IEEE Trans. Comput. 28(9), 690–691 (1979)
Lévy, J.-J.: Optimal reductions in the lambda calculus. In: Seldin, J.P., Hindley, J.R. (eds.) To H. B. Curry: Essays on Combinatory Logic, Lambda Calculus and Formalism, pp. 159–191. Academic Press, London (1980)
Manson, J., Pugh, W., Adve, S.V.: The Java memory model. In: POPL ’05, pp. 378–391. ACM, New York (2005)
Owens, S., Sarkar, S., Sewell, P.: A better x86 memory model: x86-TSO. In: Berghofer, S., Nipkow, T., Urban, C., Wenzel, M. (eds.) TPHOLs 2009. LNCS, vol. 5674, pp. 391–407. Springer, Heidelberg (2009)
Petri, G.: Operational semantics of relaxed memory models. Ph.D. thesis, Nice (2010). http://www.cs.purdue.edu/homes/gpetri/publis/thesisPetri.pdf
Petri, G.: Studying operational models of relaxed concurrency (extended version) (2013). http://www.cs.purdue.edu/homes/gpetri/publis/opsem-long.pdf
Saraswat, V.A., Jagadeesan, R., Michael, M.M., von Praun, C.: A theory of memory models. In: PPOPP, pp. 161–172 (2007)
Sarkar, S., Sewell, P., Nardelli, F.Z., Owens, S., Ridge, T., Braibant, T., Myreen, M.O., Alglave, J.: The semantics of x86-CC multiprocessor machine code. In: POPL, pp. 379–391. ACM, New York (2009)
Sewell, P., Sarkar, S., Owens, S., Nardelli, F.Z., Myreen, M.O.: x86-TSO: a rigorous and usable programmer’s model for x86 multiprocessors. CACM 53(7), 89–97 (2010)
CORPORATE SPARC Inc.: The SPARC Architecture Manual (version 9). Prentice-Hall Inc., Upper Saddle River (1994)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer International Publishing Switzerland
About this paper
Cite this paper
Petri, G. (2014). Studying Operational Models of Relaxed Concurrency. In: Abadi, M., Lluch Lafuente, A. (eds) Trustworthy Global Computing. TGC 2013. Lecture Notes in Computer Science(), vol 8358. Springer, Cham. https://doi.org/10.1007/978-3-319-05119-2_15
Download citation
DOI: https://doi.org/10.1007/978-3-319-05119-2_15
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-05118-5
Online ISBN: 978-3-319-05119-2
eBook Packages: Computer ScienceComputer Science (R0)