Relaxed exception semantics for Arm-A (extended version)

Fuente: arXiv
Enregistré dans:
Détails bibliographiques
Auteurs principaux: Simner, Ben, Armstrong, Alasdair, Bauereiss, Thomas, Campbell, Brian, Kammar, Ohad, Pichon-Pharabod, Jean, Sewell, and Peter
Format: Preprint
Publié: 2024
Sujets:
Accès en ligne:
Tags: Ajouter un tag
Pas de tags, Soyez le premier à ajouter un tag!
_version_ 1866912162072494080
author Simner, Ben
Armstrong, Alasdair
Bauereiss, Thomas
Campbell, Brian
Kammar, Ohad
Pichon-Pharabod, Jean
Sewell, and Peter
author_facet Simner, Ben
Armstrong, Alasdair
Bauereiss, Thomas
Campbell, Brian
Kammar, Ohad
Pichon-Pharabod, Jean
Sewell, and Peter
contents 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.
format Preprint
id arxiv_https___arxiv_org_abs_2412_15140
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Relaxed exception semantics for Arm-A (extended version)
Simner, Ben
Armstrong, Alasdair
Bauereiss, Thomas
Campbell, Brian
Kammar, Ohad
Pichon-Pharabod, Jean
Sewell, and Peter
Hardware Architecture
Programming Languages
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.
title Relaxed exception semantics for Arm-A (extended version)
topic Hardware Architecture
Programming Languages
url https://arxiv.org/abs/2412.15140