Understanding POWER multiprocessors
Open Access
- 4 June 2011
- conference paper
- Published by Association for Computing Machinery (ACM)
- Vol. 46 (6) , 175-186
Abstract
International audienceExploiting today's multiprocessors requires high-performance and correct concurrent systems code (op-timising compilers, language runtimes, OS kernels, etc.), which in turn requires a good understanding of the observable processor behaviour that can be relied on. Unfortunately this Exploiting today’s multiprocessors requires high-performance and correct concurrent systems code (optimising compilers, language runtimes, OS kernels, etc.), which in turn requires a good understanding of the observable processor behaviour that can be relied on. Unfortunately this critical hardware/software interface is not at all clear for several current multiprocessors. In this paper we characterise the behaviour of IBM POWER multiprocessors, which have a subtle and highly relaxed memory model (ARM multiprocessors have a very similar architecture in this respect). We have conducted ex-tensive experiments on several generations of processors: POWER G5, 5, 6, and 7. Based on these, on published de-tails of the microarchitectures, and on discussions with IBM staff, we give an abstract-machine semantics that abstracts from most of the implementation detail but explains the be-haviour of a range of subtle examples. Our semantics is ex-plained in prose but defined in rigorous machine-processed mathematics; we also confirm that it captures the observ-able processor behaviour, or the architectural intent, for our examples with an executable checker. While not officially sanctioned by the vendor, we believe that this model gives a reasonable basis for reasoning about current POWER mul-tiprocessors. Our work should bring new clarity to concurrent systems programming for these architectures, and is a necessary precondition for any analysis or verification. It should also inform the design of languages such as C and C++, where the language memory model is constrained by what can be efficiently compiled to such multiprocessorsKeywords
This publication has 16 references indexed in Scilit:
- x86-TSOCommunications of the ACM, 2010
- Fences in Weak Memory Models2010
- A Better x86 Memory Model: x86-TSO2009
- Foundations of the C++ concurrency memory model2008
- Reasoning about the ARM weakly consistent memory model2008
- Information-flow models for shared memory with an application to the powerPC architectureIEEE Transactions on Parallel and Distributed Systems, 2003
- Checking Cache-Coherence Protocols with TLA+Formal Methods in System Design, 2003
- Analyzing the Intel Itanium Memory Ordering Rules Using Logic Programming and SATLecture Notes in Computer Science, 2003
- Shared memory consistency models: a tutorialComputer, 1996
- Storage in the power PCIEEE Micro, 1995