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

Autor: Susmit Sarkar, Peter Sewell, Mark Batty, Christopher Pulte, Kyndylan Nienhuis, Ali Sezgin, Luc Maranget, Shaked Flur, Kathryn E. Gray
Přispěvatelé: University of Cambridge [UK] (CAM), University of St Andrews [Scotland], Langages de programmation, types, compilation et preuves (GALLIUM), Inria de Paris, Institut National de Recherche en Informatique et en Automatique (Inria)-Institut National de Recherche en Informatique et en Automatique (Inria), University of Kent [Canterbury], ACM, ANR-05-BDIV-0011,REMIGE,Réponses comportementales et démographiques des prédateurs marins de l'Océan Indien aux changements globaux(2005), Fluet, Matthew, University of St Andrews. School of Computer Science
Jazyk: angličtina
Rok vydání: 2017
Předmět:
QA75
Computer science
Semantics (computer science)
QA75 Electronic computers. Computer science
Concurrency
NDAS
02 engineering and technology
ISA
computer.software_genre
01 natural sciences
Software
F31 [Logics and Meanings of Programs]: Specifying and Verifying and Reasoning about Programs Keywords Relaxed Memory Models
mixed-size
0103 physical sciences
0202 electrical engineering
electronic engineering
information engineering

Code (cryptography)
semantics
R2C
010302 applied physics
[INFO.INFO-PL]Computer Science [cs]/Programming Languages [cs.PL]
business.industry
Sequential consistency
Programming language
C0 [General]: Modeling of computer architecture
~DC~
Mixed-size
020207 software engineering
Computer Graphics and Computer-Aided Design
Memory barrier
Semantics
020202 computer hardware & architecture
Allocator
Relaxed Memory Models
BDC
business
computer
D13 [Programming Techniques]: Con- current Programming—Parallel programming
Zdroj: 44th ACM SIGPLAN Symposium on Principles of Programming Languages (POPL 2017)
44th ACM SIGPLAN Symposium on Principles of Programming Languages (POPL 2017), ACM, Jan 2017, Paris, France
POPL
ISSN: 0362-1340
Popis: This work was partly funded by the EPSRC Programme Grant REMS: Rigorous Engineering for Mainstream Systems, EP/K008528/1, EPSRC grant C3: Scalable & Verified Shared Memory via Consistency-directed Cache Coherence EP/M027317/1 (Sarkar), an ARM iCASE award (Pulte), a Gates Cambridge Scholarship (Nienhuis). and ANR grant WMC (ANR-11-JS02-011, Maranget). Previous work on the semantics of relaxed shared-memory concurrency 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. This is a necessary step towards semantics for real-world shared-memory concurrent code, beyond litmus tests. Postprint
Databáze: OpenAIRE