5.7Further Reading and Commercial Relaxed Memory Models

book pp. 81–82 · ~2 min read

  • weak ordering
  • proper labeling
  • Alpha
  • SPARC RMO
  • ARMv7 vs ARMv8

5.7.1 The academic lineage

A few highlights from the vast relaxed-consistency literature, in sequence:

  • Dubois et al. weak ordering , among the first relaxed models developed.
  • Adve and Hill — generalized weak ordering to the order strictly necessary for programmers with “SC for DRF”.
  • Gharachorloo et al. — developed release consistency, plus “proper labeling” (viewable as a generalization of SC for DRF) and RCpc, a variant whose synchronization operations follow TSO.
  • Adve and Gharachorloo — the seminal mid-1990s memory model tutorial summarizing the state of the art.
  • Meixner and Sorin — to the book’s knowledge, the first to prove correct a relaxed model realized by separating cores from a cache-coherent memory system with a rule-governed reorder unit.

5.7.2 Commercial models

Besides Power, the commercial relaxed models the book surveys — compactly:

ModelTotal memory order?Notable traitsStatus
AlphaYes (like XC)Did not order dependent loads — not even address dependenciesLargely defunct; lives on in Linux
SPARC RMOYes (like XC)OS may select TSO / PSO / RMOAll current SPARCs run TSO anyway
ARMv7Apparently not (Power-like)Data memory barrier (all accesses or stores-only), instruction sync barrier à la ISYNC, I/O fencesSuperseded by ARMv8
ARMv8Yes — multi-copy atomicACQUIRE/RELEASE-annotated loads and stores; similar in spirit to RVWMO (which it predates)Current

Two smaller notes complete the survey. SPARC’s model menu is legal to ignore: since TSO is strictly stronger than PSO and RMO, a TSO machine is automatically a valid implementation of both — it just never uses their extra latitude. And ARM’s story is one of strengthening: ARMv7’s Power-like looseness gave way to ARMv8’s multi-copy atomic, total-order model with acquire/release annotations — evidence that write atomicity earns its keep in practice.

Check yourself

1.Trace the academic lineage of relaxed models. Which chain is right?

2.Alpha is largely defunct. Why does the book still care about it?

3.SPARC lets the OS choose among TSO, PSO, and RMO — yet every current SPARC implementation runs TSO in all cases. Why is that legal?

4.What changed between ARMv7 and ARMv8's memory models?

4 questions