Reference. Precise exceptions in relaxed architectures
Cite
Cited by (1)
An Axiomatic Basis for Computer Programming on Relaxed Hardware Architectures: The AxSL Logics liu-2026-an
Very relaxed concurrency memory models, like those of the Arm-A, RISC-V and IBM Power hardware architectures, underpin much of computing but break a fundamental intuition about programs, namely that syntactic program order and the reads-from relation always both induce order in the execution. Instead, out-of-order execution is allowed except where prevented by certain pairwise dependencies, barriers, or other synchronisation. This means that there is no notion of the ‘current’ state of the program, making it challenging to design (and prove sound) syntax-directed, modular reasoning methods like Hoare logics, as usable resources cannot implicitly flow from one program point to the next. We present AxSL, a family of separation logics for relaxed hardware memory models, and instantiate it on sequential consistency and on the Arm-A memory model. The Arm-A instance captures the fine-grained reasoning underpinning the low-overhead synchronisation idioms used by high-performance systems code. We mechanise AxSL in the Iris separation logic framework, illustrate it on key examples, and prove it sound with respect to the axiomatic memory model of Arm-A. By instantiating AxSL on different memory models, we demonstrate the generality of our approach, and show that it is largely generic in the axiomatic model and in the instruction-set semantics, offering a potential way forward for compositional reasoning for other models, and for the combination of production concurrency models and full-scale ISAs.
Cites 67 works (0 here)
External (67)
- Puss in Boots: Formalizing Arm’s Virtual Memory System Architecture (2024)
- Arm Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4 (2024)
- Relaxed exception semantics for Arm-A (extended version) (2024)
- Arm Architecture Reference Manual: for A-profile architecture (2024)
- Sail Armv9.4-A instruction-set architecture (ISA) model (2024)
- Personal communication (Luc Maranget) (2024)
- Some things I wish I hadn't seen (2024)
- Reference Capabilities for Flexible Memory Management (2023)
- When Concurrency Matters: Behaviour-Oriented Concurrency (2023)
- Imprecise Store Exceptions (2023)
- Is Parallel Programming Hard, And, If So, What Can You Do About It? (2023)
- The ARMv8 Application Level Memory Model (aarch64.cat) (2023)
- Cats vs. Spectre: An Axiomatic Approach to Modeling Speculative Execution Attacks (2022)
- Axiomatic hardware-software contracts for security (2022)
- Relaxed virtual memory in Armv8-A (2022)
- Multicore Semantics: Making Sense of Relaxed Memory (MPhil slides) (2022)
- Armed Cats: Formal Concurrency Modelling at Arm (2021)
- Isla: Integrating Full-Scale ISA Semantics and Axiomatic Concurrency Models (2021)
- GenMC: A Model Checker for Weak Memory Models (2021)
- Cats vs. Spectre: An Axiomatic Approach to Modeling Speculative Execution Attacks (CoRR version) (2021)
- JEP 374: Deprecate and Disable Biased Locking (2021)
- Pomsets with preconditions: a simple model of relaxed memory (2020)
- ARMv8-A System Semantics: Instruction Fetch in Relaxed Architectures (2020)
- TransForm: Formally Specifying Transistency Models and Synthesizing Enhanced Litmus Tests (2020)
- ISA semantics for ARMv8-a, RISC-v, and CHERI-MIPS (2019)
- Model checking for weakly consistent libraries (2019)
- Correct Compilation of Relaxed Memory Concurrency (PhD thesis) (2019)
- Frightening Small Children and Disconcerting Grown-ups: Concurrency in the Linux Kernel (2018)
- The Semantics of Multicopy Atomic ARMv8 and RISC-V (PhD thesis) (2018)
- Effective stateless model checking for C/C++ concurrency (2017)
- Repairing sequential consistency in C/C++11 (2017)
- Effective Verification for Low-Level Software with Competing Interrupts (2017)
- Simplifying ARM concurrency: multicopy-atomic axiomatic and operational models for ARMv8 (2017)
- Modelling the ARMv8 architecture, operationally: concurrency and ISA (2016)
- Mixed-size concurrency: ARM, POWER, C/C++11, and SC (2016)
- A promising semantics for relaxed-memory concurrency (2016)
- COATCheck: Verifying Memory Ordering at the Hardware-OS Interface (2016)
- A concurrency semantics for relaxed atomics that permits optimisation and avoids thin-air executions (2016)
- The Problem of Programming Language Concurrency Semantics (2015)
- An integrated concurrency and core-ISA architectural envelope definition, and test oracle, for IBM POWER multiprocessors (2015)
- Effective Verification of Low-Level Software with Nested Interrupts (2015)
- The C11 and C++11 concurrency model (PhD thesis) (2015)
- Herding Cats (2014)
- Computer Architecture: A Quantitative Approach (5 ed.) (2012)
- Synchronising C/C++ and POWER (2012)
- Litmus: Running Tests against Hardware (2011)
- Understanding POWER multiprocessors (2011)
- Fences in Weak Memory Models (2010)
- x86-TSO: A Rigorous and Usable Programmer's Model for x86 Multiprocessors (2010)
- A Shared Memory Poetics (PhD thesis) (2010)
- Quickly Reacquirable Locks (US Patent 7814488B1) (2010)
- The semantics of x86-CC multiprocessor machine code (2009)
- Eliminating synchronization-related atomic operations with biased locking and bulk rebiasing (2006)
- Biased Locking in Hotspot (2006)
- Java Locks: Analysis and Acceleration (PhD thesis) (2005)
- How to Implement Unnecessary Mutexes (2004)
- Information-flow models for shared memory with an application to the powerPC architecture (2003)
- Lock reservation (2002)
- A Formal Specification of Intel Itanium Processor Family Memory Ordering (2002)
- Asymmetric Dekker Synchronization (2001)
- Fixing the Java memory model (1999)
- Read-copy update: Using execution history to solve concurrency problems (1998)
- Memory Consistency Models for Shared-Memory Multiprocessors (PhD thesis) (1995)
- Reasoning about Parallel Architectures (1992)
- Formal Specification of Memory Models (1992)
- Memory consistency and event ordering in scalable shared-memory multiprocessors (1990)
- The herdtools7 tool suite