The Semantics of Transactions and Weak Memory in x86, Power, ARM, and C++

10/13/2017
by   Nathan Chong, et al.
0

Weak memory models provide a complex, system-centric semantics for concurrent programs, while transactional memory (TM) provides a simpler, programmer-centric semantics. Both have been studied in detail, but their combined semantics is not well understood. This is problematic because such widely-used architectures and languages as x86, Power, and C++ all support TM, and all have weak memory models. Our work aims to clarify the interplay between weak memory and TM by extending existing axiomatic weak memory models (x86, Power, ARMv8, and C++) with new rules for TM. Our formal models are backed by automated tooling that enables (1) the synthesis of tests for validating our models against existing implementations and (2) the model-checking of TM-related transformations, such as lock elision and compiling C++ transactions to hardware. A key finding is that a proposed TM extension to ARMv8 currently being considered within ARM Research is incompatible with lock elision without sacrificing portability or performance.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
10/13/2017

The Semantics of Transactions and Weak Memory in x86, Power, ARMv8, and C++

Weak memory models trade programmability for performance, while transact...
research
07/20/2018

Bridging the Gap Between Programming Languages and Hardware Weak Memory Models

We develop a new intermediate weak memory model, IMM, as a way of modula...
research
05/21/2018

Constructing a Weak Memory Model

Weak memory models are a consequence of the desire on part of architects...
research
06/17/2016

Taming Weak Memory Models

Speculative techniques in microarchitectures relax various dependencies ...
research
05/15/2018

Parameterized Model Checking Modulo Explicit Weak Memory Models

We present a modular framework for model checking parameterized array-ba...
research
11/30/2021

Verifying and Optimizing Compact NUMA-Aware Locks on Weak Memory Models

Developing concurrent software is challenging, especially if it has to r...
research
07/19/2017

Weak Memory Models: Balancing Definitional Simplicity and Implementation Flexibility

The memory model for RISC-V, a newly developed open source ISA, has not ...

Please sign up or login with your details

Forgot password? Click here to reset