Relaxed exception semantics for Arm-A (extended version)
Ben Simner, Alasdair Armstrong, Thomas Bauereiss, Brian Campbell, Ohad Kammar, Jean Pichon-Pharabod, and Peter Sewell
TL;DR
The paper tackles the challenge of defining precise exception semantics under relaxed memory for Arm-A, arguing that classic sequential notions are insufficient in modern out-of-order and speculative execution environments. It delivers an executable axiomatic model of Arm-A precise exceptions, implemented in Isla-cav from a Sail-derived Armv9.4-A ISA, and validates the framework with litmus tests and hardware experiments, while also outlining the semantics of synchronous external aborts and SGIs. The work also sketches an extension path for Chapter 7 GIC/SGI machinery, including a draft axiomatic extension to accommodate inter-processor interrupts and system-wide barriers, enabling practical reasoning about real-world synchronization patterns such as RCU and Verona-like locks. Overall, the paper provides a robust foundation for precise hardware-software interfaces in relaxed-memory systems and identifies the central open problem of a universally applicable definition of precision under memory relaxation, guiding future modeling and validation efforts.
Abstract
To manage exceptions, software relies on a key architectural guarantee, precision: that exceptions appear to execute between instructions. However, this definition, dating back over 60 years, fundamentally assumes a sequential programmers model. Modern architectures such as Arm-A with programmer-observable relaxed behaviour make such a naive definition inadequate, and it is unclear exactly what guarantees programmers have on exception entry and exit. In this paper, we clarify the concepts needed to discuss exceptions in the relaxed-memory setting -- a key aspect of precisely specifying the architectural interface between hardware and software. We explore the basic relaxed behaviour across exception boundaries, and the semantics of external aborts, using Arm-A as a representative modern architecture. We identify an important problem, present yet unexplored for decades: pinning down what it means for exceptions to be precise in a relaxed setting. We describe key phenomena that any definition should account for. We develop an axiomatic model for Arm-A precise exceptions, tooling for axiomatic model execution, and a library of tests. Finally we explore the relaxed semantics of software-generated interrupts, as used in sophisticated programming patterns, and sketch how they too could be modelled.
