| The semantics of x86-CC multiprocessor machine code |
| Full text |
Pdf
(331 KB)
|
Source
|
Annual Symposium on Principles of Programming Languages
archive
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
table of contents
Savannah, GA, USA
SESSION: Multicore
table of contents
Pages 379-391
Year of Publication: 2009
ISBN:978-1-60558-379-2
Also published in ...
|
|
Authors
|
|
Susmit Sarkar
|
University of Cambridge, Cambridge, United Kingdom
|
|
Peter Sewell
|
University of Cambridge, Cambridge, United Kingdom
|
|
Francesco Zappa Nardelli
|
INRIA, Rocquencourt, France
|
|
Scott Owens
|
University of Cambridge, Cambridge, United Kingdom
|
|
Tom Ridge
|
University of Cambridge, Cambridge, United Kingdom
|
|
Thomas Braibant
|
INRIA, Rocquencourt, France
|
|
Magnus O. Myreen
|
Unviersity of Cambridge, Cambridge, United Kingdom
|
|
Jade Alglave
|
INRIA, Rocquencourt, France
|
|
| Sponsors |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 35, Downloads (12 Months): 237, Citation Count: 2
|
|
|
ABSTRACT
Multiprocessors are now dominant, but real multiprocessors do not provide the sequentially consistent memory that is assumed by most work on semantics and verification. Instead, they have subtle relaxed (or weak) memory models, usually described only in ambiguous prose, leading to widespread confusion. We develop a rigorous and accurate semantics for x86 multiprocessor programs, from instruction decoding to relaxed memory model, mechanised in HOL. We test the semantics against actual processors and the vendor litmus-test examples, and give an equivalent abstract-machine characterisation of our axiomatic memory model. For programs that are (in some precise sense) data-race free, we prove in HOL that their behaviour is sequentially consistent. We also contrast the x86 model with some aspects of Power and ARM behaviour. This provides a solid intuition for low-level programming, and a sound foundation for future work on verification, static analysis, and compilation of low-level concurrent code.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
A formal specification of Intel Itanium processor family memory ordering. http://developer.intel.com/design/itanium/downloads/251429.htm.
|
| |
2
|
|
| |
3
|
Linux kernel traffic, 1999. http://www.kernel-traffic.org/kernel-traffic/kt19991220_47.txt.
|
| |
4
|
AMD64 Architecture Programmer's Manual. Advanced Micro Devices, Sept. 2007. (3 vols).
|
| |
5
|
Intel 64 and IA-32 Architectures Software Developer's Manual. Intel Corporation, April (vol 1,2A,2B; rev.27), Feb. (vol.3A,3B; rev.26) 2008.
|
| |
6
|
The semantics of multiprocessor machine code, 2008. www.cl.cam.ac.uk/users/pes20/weakmemory.
|
| |
7
|
|
| |
8
|
|
 |
9
|
Mustaque Ahamad , Rida A. Bazzi , Ranjit John , Prince Kohli , Gil Neiger, The power of processor consistency, Proceedings of the fifth annual ACM symposium on Parallel algorithms and architectures, p.251-260, June 30-July 02, 1993, Velen, Germany
[doi> 10.1145/165231.165264]
|
| |
10
|
M. Ahamad, G. Neiger, J. Burns, P. Kohli, and P. Hutto. Causal memory: Definitions, implementation, and programming. Distributed Computing, 9(1):37--49, 1995.
|
| |
11
|
ARM. ARM Architecture Reference Manual (ARMv7-A and ARMv7-R edition). 2008. Available from ARM.
|
| |
12
|
D. Aspinall and J. Sevcik. Formalising Java's data race free guarantee. In Proc. TPHOLs, LNCS, 2007.
|
 |
13
|
|
 |
14
|
|
| |
15
|
|
 |
16
|
|
| |
17
|
|
 |
18
|
|
| |
19
|
M. Gordon. Memory access semantics for a multiprocessor instruction set. Unpublished note (c.1993) www.cl.cam.ac.buffering in multiprocessors. In ISCA, 1986.
|
| |
20
|
L. Higham, L. A. Jackson, and J. Kawash. Programmer-centric conditions for itanium memory consistency. In Proc. ICDCN, 2006.
|
| |
21
|
The HOL 4 system. http://hol.sourceforge.net/.
|
| |
22
|
Intel. Intel 64 architecture memory ordering white paper, 2007. SKU 318147-001.
|
| |
23
|
|
| |
24
|
D. Lea. The JSR-133 cookbook for compiler writers. gee.cs.oswego.edu/dl/jmm/cookbook.html.
|
| |
25
|
L.Higham, J.Kawash, and N. Verwaal. Defining and comparing memory consistency models. In PDCS, 1997.
|
| |
26
|
|
 |
27
|
Jeremy Manson , William Pugh , Sarita V. Adve, The Java memory model, Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.378-391, January 12-14, 2005, Long Beach, California, USA
|
 |
28
|
Seungjoon Park , David L. Dill, An executable specification, analyzer and verifier for RMO (relaxed memory order), Proceedings of the seventh annual ACM symposium on Parallel algorithms and architectures, p.34-41, June 24-26, 1995, Santa Barbara, California, United States
[doi> 10.1145/215399.215413]
|
 |
29
|
Vijay A. Saraswat , Radha Jagadeesan , Maged Michael , Christoph von Praun, A theory of memory models, Proceedings of the 12th ACM SIGPLAN symposium on Principles and practice of parallel programming, March 14-17, 2007, San Jose, California, USA
[doi> 10.1145/1229428.1229469]
|
| |
30
|
|
| |
31
|
Y. Yang, G. Gopalakrishnan, G. Lindstrom, and K. Slind. Nemos: A framework for axiomatic and executable specifications of memory consistency models. In IPDPS, 2004.
|
CITED BY 2
|
|
Jade Alglave , Anthony Fox , Samin Ishtiaq , Magnus O. Myreen , Susmit Sarkar , Peter Sewell , Francesco Zappa Nardelli, The semantics of power and ARM multiprocessor machine code, Proceedings of the 4th workshop on Declarative aspects of multicore programming, January 20-20, 2009, Savannah, GA, USA
|
|
|
|
|