Formalizing Memory Accesses and Interrupts

Authors

Reto Achermann, Lukas Humbel, David Cock and Timothy Roscoe

Venue

Proceedings 2nd Workshop on Models for Formal Analysis of Real Systems (MARS'17)

Links

[ .doi ] [ .pdf ] [ .bib ]

Abstract

The hardware/software boundary in modern heterogeneous multicore computers is increasingly complex, and diverse across different platforms. A single memory access by a core or DMA engine traverses multiple hardware translation and caching steps, and the destination memory cell or register often appears at different physical addresses for different cores. Interrupts pass through a complex topology of interrupt controllers and remappers before delivery to one or more cores, each with specific constraints on their configurations. System software must not only correctly understand the specific hardware at hand, but also configure it appropriately at runtime. We propose a formal model of address spaces and resources in a system that allows us to express and verify invariants of the system's runtime configuration, and illustrate (and motivate) it with several real platforms we have encountered in the process of OS implementation.

Bibtex

@inproceedings{Achermann:2017:FMA,
 author = {Reto Achermann and Lukas Humbel and David Cock and Timothy Roscoe},
 booktitle = {Proceedings 2nd Workshop on Models for Formal Analysis of Real Systems},
 doi = {10.4204/EPTCS.244.4},
 id = {Achermann:2017:FMA},
 location = {Uppsala, Sweden},
 pages = {66--116},
 publisher = {Electronic Proceedings in Theoretical Computer Science},
 series = {MARS'17},
 title = {Formalizing Memory Accesses and Interrupts},
 url = {https://doi.org/10.4204/EPTCS.244.4},
 year = {2017}
}

Contact

The University of British Columbia
Department of Computer Science
2366 Main Mall
ICICS Building, Office 341
Vancouver, BC V6T 1Z4
Canada

achreto [at] cs.ubc.ca
+1 604 827 2446