Affiliation:
1. University of Cambridge, UK
2. University of Edinburgh, UK
3. ARM, UK
4. SRI International, USA
Abstract
Architecture specifications notionally define the fundamental interface between hardware and software: the envelope of allowed behaviour for processor implementations, and the basic assumptions for software development and verification. But in practice, they are typically prose and pseudocode documents, not rigorous or executable artifacts, leaving software and verification on shaky ground.
In this paper, we present rigorous semantic models for the sequential behaviour of large parts of the mainstream ARMv8-A, RISC-V, and MIPS architectures, and the research CHERI-MIPS architecture, that are complete enough to boot operating systems, variously Linux, FreeBSD, or seL4. Our ARMv8-A models are automatically translated from authoritative ARM-internal definitions, and (in one variant) tested against the ARM Architecture Validation Suite.
We do this using a custom language for ISA semantics, Sail, with a lightweight dependent type system, that supports automatic generation of emulator code in C and OCaml, and automatic generation of proof-assistant definitions for Isabelle, HOL4, and (currently only for MIPS) Coq. We use the former for validation, and to assess specification coverage. To demonstrate the usability of the latter, we prove (in Isabelle) correctness of a purely functional characterisation of ARMv8-A address translation. We moreover integrate the RISC-V model into the RMEM tool for (user-mode) relaxed-memory concurrency exploration. We prove (on paper) the soundness of the core Sail type system.
We thereby take a big step towards making the architectural abstraction actually well-defined, establishing foundations for verification and reasoning.
Funder
DARPA / AFRL
European Research Council
Engineering and Physical Sciences Research Council
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Reference61 articles.
1. 2017. The gem5 Simulator. http://gem5.org . 2017. The gem5 Simulator. http://gem5.org .
2. 2017. QEMU: the FAST! processor emulator. https://www.qemu.org/ . 2017. QEMU: the FAST! processor emulator. https://www.qemu.org/ .
3. Fences in Weak Memory Models
4. Herding Cats
Cited by
66 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Towards a Dynabook for verified VM construction;Journal of Computer Languages;2024-08
2. ChatChisel: Enabling Agile Hardware Design with Large Language Models;2024 2nd International Symposium of Electronics Design Automation (ISEDA);2024-05-10
3. Lifting Micro-Update Models from RTL for Formal Security Analysis;Proceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 2;2024-04-27
4. Hydride: A Retargetable and Extensible Synthesis-based Compiler for Modern Hardware Architectures;Proceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 2;2024-04-27
5. Lightweight, Modular Verification for WebAssembly-to-Native Instruction Selection;Proceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 1;2024-04-17