Skip to main content
Kent Academic Repository

The Semantics of x86-CC Multiprocessor Machine Code

Sarkar, Susmit and Sewell, Peter and Zappa Nardelli, Francesco and Owens, Scott and Ridge, Tom and Braibant, Thomas and Myreen, Magnus O. and Alglave, Jade (2009) The Semantics of x86-CC Multiprocessor Machine Code. In: POPL '09 Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages. POPL Principles of Programming Languages . ACM, New York, USA, pp. 379-391. ISBN 978-1-60558-379-2. (doi:10.1145/1480881.1480929) (The full text of this publication is not currently available from this repository. You may be able to access a copy if URLs are provided) (KAR id:31907)

The full text of this publication is not currently available from this repository. You may be able to access a copy if URLs are provided.
Official URL:
http://dx.doi.org/10.1145/1480881.1480929

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.

Item Type: Book section
DOI/Identification number: 10.1145/1480881.1480929
Subjects: Q Science > QA Mathematics (inc Computing science) > QA 76 Software, computer programming,
Divisions: Divisions > Division of Computing, Engineering and Mathematical Sciences > School of Computing
Depositing User: Scott Owens
Date Deposited: 24 Oct 2012 10:22 UTC
Last Modified: 05 Nov 2024 10:14 UTC
Resource URI: https://kar.kent.ac.uk/id/eprint/31907 (The current URI for this page, for reference purposes)

University of Kent Author Information

  • Depositors only (login required):

Total unique views for this document in KAR since July 2020. For more details click on the image.