Memory Systems · Cluster

Memory Modeling

Formal models of reads, writes, and ordering.

  1. 01 Sequential Consistency as the Reference Memory Model Lamport's two conditions, the executions they exclude, and why every weaker model is described by which of those exclusions it gives up. foundational · May 21, 2025
  2. 02 Store Buffers and the x86-TSO Model How a per-core write buffer leaves store-load as the only program-order pair that may invert, why forbidding it would defeat the buffer, and what a locked instruction orders. foundational · Jun 28, 2024
  3. 03 Happens-Before and the Definition of a Data Race How sequenced-before and synchronizes-with compose into a partial order, why a race is a pair of unordered conflicting accesses, and what the standard does once one exists. foundational · Mar 18, 2022
  4. 04 Coherence and the Modification Order of a Single Location The four coherence axioms, why per-location agreement is much weaker than a global order, and how IRIW separates the two. intermediate · Mar 16, 2026
  5. 05 Release, Acquire, and the Synchronizes-With Edge What an acquire load is forbidden to move above, what a release store is forbidden to move below, and why the edge is directional rather than a barrier. intermediate · Nov 20, 2025
  6. 06 The DRF-SC Guarantee and What It Buys a Programmer Why race-free programs are sequentially consistent on hardware that is not, and the composition rules that let this promise survive layers of abstraction. intermediate · Sep 11, 2025
  7. 07 Litmus Tests as Executable Specifications How a five-line concurrency test becomes a machine-checkable claim, what the litmus file format encodes, and how a model checker decides which outcomes are forbidden. intermediate · Sep 30, 2026
  8. 08 Dependencies, RCsc, and RCpc Acquire on ARMv8 How address and data dependencies order accesses without a barrier, and why ARMv8.3 added a second, cheaper form of acquire load alongside the original one. advanced · May 27, 2025
  9. 09 Causality and Out-of-Thin-Air Values in the Java Model Why the Java Memory Model needed a causality order rather than happens-before alone, and how the happens-before consistency rules leave room for a value with no writer. advanced · Nov 1, 2024
  10. 10 The Linux Kernel Memory Model and Its Tooling How LKMM formalises READ_ONCE, smp_mb, and RCU into an executable model, what its relation set adds to the architecture models, and where it deliberately diverges from C11. advanced · Apr 10, 2025