arrow
Return

Weak Memory Model Formalisms: Introduction and Survey

delete2026-01-01
delete0
PRE
AI
R
Roger C. Su *
R
Robert J. Colvin
DOI:10.1002/cpe.70484delete
deleteOriginal
deleteOriginal request for help
deleteShare
deleteSave
Abstract

Abstract

En 中文
Memory models define the order in which accesses to shared memory in a concurrent system may be observed to occur. Such models are a necessity since program order is not a reliable indicator of execution order, due to microarchitectural features or compiler transformations. Concurrent programming, already a challenging task, is thus made even harder when weak memory effects must be addressed. A rigorous specification of weak memory models is therefore essential to make this problem tractable for developers of safety- and security-critical, low-level software. In this paper we survey the field of formalisations of weak memory models, including their specification, their effects on execution, and tools and inference systems for reasoning about code. To assist the discussion we also provide an introduction to two styles of formal representation found commonly in the literature (using a much simplified version of Intel's x86 as the example): a step-by-step construction of traces of the system (operational semantics); and with respect to relations between memory events (axiomatic semantics). The survey covers some long-standing hardware features that lead to observable weak behaviours, a description of historical developments in practice and in theory, an overview of computability and complexity results, and outlines current and future directions in the field.
Keywords:
concurrent programming
formal methods
memory consistency models
multi-core architectures
relaxed memory models
weak memory models

Journal

C
CONCURRENCY AND COMPUTATION-PRACTICE & EXPERIENCE
IF:
1.5
Papers:
473
Citations:
0

Organization

D
defence science & technology
Scholars:
896
Papers: 938
Citations: 0
A
australian national university
Scholars:
2.2K
Papers: 1.2K
Citations: 0