Relaxed Memory Model Zoo

Memory model
← Back to the map

Buffered Memory Model BMM

2013 · Demange, Laporte, Zhao, Jagannathan, Pichardie, Vitek · language, formal

A pragmatic, TSO-style buffered memory model proposed as a candidate for Java, motivated by building a verified JVM in the spirit of CompCertTSO rather than fully replacing the JMM. Each thread has a store buffer, so the principal relaxation over SC is store→load reordering. The authors proved the external DRF theorem and the soundness of several program transformations, and modified an open-source JVM to preserve BMM at roughly 1% average overhead on x86.

Ordering relationships

Strictly weaker than
  • Sequential Consistency (SC) — BMM equips each thread with a store buffer, so the store→load (SB) outcome becomes observable; SC forbids it.
Equivalent to
  • Total Store Order (TSO) — BMM is a pragmatic TSO-style buffered model proposed as a candidate Java memory model; on the store-buffer relaxations it coincides with TSO.

References

  • Delphine Demange, Vincent Laporte, Lei Zhao, Suresh Jagannathan, David Pichardie, Jan Vitek. Plan B: A Buffered Memory Model for Java. POPL 2013, 2013. doi:10.1145/2429069.2429110
  • Evgenii Moiseenko, Anton Podkopaev, Dmitrii Koznov. A Survey of Programming Language Memory Models. Programming and Computer Software 47(6), pp. 439–456, 2021. doi:10.1134/S0361768821060050