The bibliographic entry was discovered and compiled by a machine, and published without a person checking it against the publication. The publication itself is the authors' own work — this badge says nothing about it.

x86-TSO: A rigorous and usable programmer's model for x86 multiprocessors

The work

AuthorsPeter Sewell; Susmit Sarkar; Scott Owens; Francesco Zappa Nardelli; Magnus O. Myreen
Editors
Typearticle
Year2010
Citekeysewell2010x86tso

Where it appeared

Published inCommunications of the ACM
PublisherAssociation for Computing Machinery (ACM)
Volume53
Issue7
Pages89--97

Identifiers

DOI10.1145/1785414.1785443
ISSN0001-0782

From crossref.

Abstract

Exploiting the multiprocessors that have recently become ubiquitous requires high-performance and reliable concurrent systems code, for concurrent data structures, operating system kernels, synchronization libraries, compilers, and so on. However, concurrent programming, which is always challenging, is made much more so by two problems. First, real multiprocessors typically do not provide the sequentially consistent memory that is assumed by most work on semantics and verification. Instead, they have relaxed memory models, varying in subtle ways between processor families, in which different hardware threads may have only loosely consistent views of a shared memory. Second, the public vendor architectures, supposedly specifying what programmers can rely on, are often in ambiguous informal prose (a particularly poor medium for loose specifications), leading to widespread confusion. In this paper we focus on x86 processors. We review several recent Intel and AMD specifications, showing that all contain serious ambiguities, some are arguably too weak to program above, and some are simply unsound with respect to actual hardware. We present a new x86-TSO programmer's model that, to the best of our knowledge, suffers from none of these problems. It is mathematically precise (rigorously defined in HOL4) but can be presented as an intuitive abstract machine which should be widely accessible to working programmers. We illustrate how this can be used to reason about the correctness of a Linux spinlock implementation and describe a general theory of data-race freedom for x86-TSO. This should put x86 multiprocessor system building on a more solid foundation; it should also provide a basis for future work on verification of such systems.

How it got here

How it got hereagent via crossref
Added2026-10-26 12:16 UTC
Not denied bya person 2026-10-29 17:12 UTC

Filed under

cacm petersewell

Cite it as

@article{sewell2010x86tso,
  title        = {x86-TSO: A rigorous and usable programmer's model for x86 multiprocessors},
  author       = {Peter Sewell and Susmit Sarkar and Scott Owens and Francesco Zappa Nardelli and Magnus O. Myreen},
  year         = {2010},
  journal      = {Communications of the ACM},
  publisher    = {Association for Computing Machinery (ACM)},
  volume       = {53},
  number       = {7},
  pages        = {89--97},
  issn         = {0001-0782},
  doi          = {10.1145/1785414.1785443},
}

This record lives at https://refs.drheap.org/sewell2010x86tso/ and will keep doing so.