Date of this Version
Modern microprocessors implement many different memory consistency models, some of which have complex semantics. Although most system architects tend to specify memory models in an axiomatic style, executable specifications are useful for memory-model-aware verification of concurrent programs. In this paper, we describe a modular approach for executable specifications of memory models. We identify five different components that capture commonly occurring features of memory models. We show that these components can be combined together in different configurations in order to specify many existing memory models, including the three SPARC memory models, as well as non-store-atomic models that capture the essence of the x86 and PowerPC memory models.
Date Posted: 06 January 2010