Mixed-size Concurrency: ARM, POWER, C/C++11, and SC

Abstract : Previous work on the semantics of relaxed shared-memory concur-rency has only considered the case in which each load reads the data of exactly one store. In practice, however, multiprocessors support mixed-size accesses, and these are used by systems software and (to some degree) exposed at the C/C++ language level. A semantic foundation for software, therefore, has to address them. We investigate the mixed-size behaviour of ARMv8 and IBM POWER architectures and implementations: by experiment, by developing semantic models, by testing the correspondence between these, and by discussion with ARM and IBM staff. This turns out to be surprisingly subtle, and on the way we have to revisit the fundamental concepts of coherence and sequential consistency, which change in this setting. In particular, we show that adding a memory barrier between each instruction does not restore sequential consistency. We go on to extend the C/C++11 model to support non-atomic mixed-size memory accesses, and prove the standard compilation scheme from C11 atomics to POWER remains sound. This is a necessary step towards semantics for real-world shared-memory concurrent code, beyond litmus tests.
Type de document :
Communication dans un congrès
44th ACM SIGPLAN Symposium on Principles of Programming Languages (POPL 2017), Jan 2017, Paris, France
Liste complète des métadonnées

Contributeur : Luc Maranget <>
Soumis le : vendredi 9 décembre 2016 - 15:01:42
Dernière modification le : mercredi 28 décembre 2016 - 09:59:42
Document(s) archivé(s) le : jeudi 23 mars 2017 - 10:25:11


Fichiers produits par l'(les) auteur(s)


  • HAL Id : hal-01413221, version 1



Shaked Flur, Susmit Sarkar, Christopher Pulte, Kyndylan Nienhuis, Luc Maranget, et al.. Mixed-size Concurrency: ARM, POWER, C/C++11, and SC. 44th ACM SIGPLAN Symposium on Principles of Programming Languages (POPL 2017), Jan 2017, Paris, France. <hal-01413221>



Consultations de
la notice


Téléchargements du document