Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation 2012
DOI: 10.1145/2254064.2254102
|View full text |Cite
|
Sign up to set email alerts
|

Synchronising C/C++ and POWER

Abstract: 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 R POWER R , 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 sem… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
67
0

Year Published

2012
2012
2022
2022

Publication Types

Select...
6
1

Relationship

4
3

Authors

Journals

citations
Cited by 80 publications
(68 citation statements)
references
References 17 publications
0
67
0
Order By: Relevance
“…The C/C++11 concurrency model remains the state of the art for the semantics of a general-purpose shared-memory concurrent programming languages; it is, to the best of our knowledge, sound with respect to the compiler optimisation behaviour of implementations [29] (in contrast to the JMM [16,34]), it is provably compilable to relaxed hardware models [8,7,32], and our work here establishes a machine-checked DRF-SC theorem. But the thin-air problem shows that it allows too many behaviours, and we have seen here that that cannot be solved in a simple per-candidate-execution way, that the problem is not specific to relaxed atomics, that, while an operational solution for those examples is possible, it brings other difficulties, and that there are further problems with undefined behaviour.…”
Section: Resultsmentioning
confidence: 77%
See 2 more Smart Citations
“…The C/C++11 concurrency model remains the state of the art for the semantics of a general-purpose shared-memory concurrent programming languages; it is, to the best of our knowledge, sound with respect to the compiler optimisation behaviour of implementations [29] (in contrast to the JMM [16,34]), it is provably compilable to relaxed hardware models [8,7,32], and our work here establishes a machine-checked DRF-SC theorem. But the thin-air problem shows that it allows too many behaviours, and we have seen here that that cannot be solved in a simple per-candidate-execution way, that the problem is not specific to relaxed atomics, that, while an operational solution for those examples is possible, it brings other difficulties, and that there are further problems with undefined behaviour.…”
Section: Resultsmentioning
confidence: 77%
“…The behaviour of Intel/AMD x86, IBM Power, and ARM multiprocessors has been clarified by a series of recent papers [35,33,32,26,4]. For x86, normal memory accesses have a Total Store Ordering (TSO) semantics, similar to SPARC TSO [1] -as if there were a FIFO write buffer (with a readback path) for each hardware thread, above a single memory.…”
Section: Non-sc Multiprocessor Behaviourmentioning
confidence: 99%
See 1 more Smart Citation
“…for x86 [19], IBM Power [21,22], and ARMv7 [4]. The Power and ARM concurrency architectures are broadly similar, both being relaxed non-multi-copy atomic models that respect only certain program-order relations, and which have cumulative memory barrier instructions.…”
Section: Introductionmentioning
confidence: 99%
“…But they differ in many important aspects: they have different memory barrier and synchronisation instructions 1 , and the associated microarchitectures are quite different. That is important for us here: that Power model [21,22] does not correspond well to ARM implementations, and so cannot serve as a basis for the discussion with ARM architects that is needed for solid validation that it matches their intent.…”
Section: Introductionmentioning
confidence: 99%