Authors
Susmit Sarkar, Kayvan Memarian, Scott Owens, Mark Batty, Peter Sewell, Luc Maranget, Jade Alglave, Derek Williams
Publication date
2012/6/11
Conference
ACM SIGPLAN Notices
Volume
47
Issue
6
Pages
311-322
Publisher
ACM
Description
Shared memory concurrency relies on synchronisation primitives: compare-and-swap, load-reserve/store-conditional (aka LL/SC), language-level mutexes, and so on. In a sequentially consistent setting, or even in the TSO setting of x86 and Sparc, these have well-understood semantics. But in the very relaxed settings of IBM®, POWER®, ARM, or C/C++, it remains surprisingly unclear exactly what the programmer can depend on.
This paper studies relaxed-memory synchronisation. On the hardware side, we give a clear semantic characterisation of the load-reserve/store-conditional primitives as provided by POWER multiprocessors, for the first time since they were introduced 20 years ago; we cover their interaction with relaxed loads, stores, barriers, and dependencies. Our model, while not officially sanctioned by the vendor, is validated by extensive testing, comparing actual implementation behaviour against an …
Total citations
201120122013201420152016201720182019202020212022202320241566121422913711852
Scholar articles
S Sarkar, K Memarian, S Owens, M Batty, P Sewell… - Proceedings of the 33rd ACM SIGPLAN Conference on …, 2012