Extending Intel-x86 consistency and persistency: formalising the semantics of Intel-x86 memory types and non-temporal stores

File Description SizeFormat 
3498683.pdfPublished version919.88 kBAdobe PDFView/Open
Title: Extending Intel-x86 consistency and persistency: formalising the semantics of Intel-x86 memory types and non-temporal stores
Authors: Raad, A
Maranget, L
Vafeiadis, V
Item Type: Journal Article
Abstract: Existing semantic formalisations of the Intel-x86 architecture cover only a small fragment of its available features that are relevant for the consistency semantics of multi-threaded programs as well as the persistency semantics of programs interfacing with non-volatile memory. We extend these formalisations to cover: (1) non-temporal writes, which provide higher performance and are used to ensure that updates are flushed to memory; (2) reads and writes to other Intel-x86 memory types, namely uncacheable, write-combined, and write-through; as well as (3) the interaction between these features. We develop our formal model in both operational and declarative styles, and prove that the two characterisations are equivalent. We have empirically validated our formalisation of the consistency semantics of these additional features and their subtle interactions by extensive testing on different Intel-x86 implementations.
Issue Date: 16-Jan-2022
Date of Acceptance: 1-Jan-2022
URI: http://hdl.handle.net/10044/1/97417
DOI: 10.1145/3498683
ISSN: 2475-1421
Publisher: Association for Computing Machinery (ACM)
Start Page: 1
End Page: 31
Journal / Book Title: Proceedings of the ACM on Programming Languages
Volume: 6
Issue: POPL
Copyright Statement: © 2022 Copyright held by the owner/author(s).
Sponsor/Funder: UK Research and Innovation
Funder's Grant Number: MR/V024299/1
Publication Status: Published
Open Access location: https://dl.acm.org/doi/abs/10.1145/3498683?sid=SCITRUS
Online Publication Date: 2022-01-12
Appears in Collections:Computing



This item is licensed under a Creative Commons License Creative Commons