skip to main content
research-article

Understanding POWER multiprocessors

Published:04 June 2011Publication History
Skip Abstract Section

Abstract

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 extensive experiments on several generations of processors: POWER G5, 5, 6, and 7. Based on these, on published details 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 behaviour of a range of subtle examples. Our semantics is explained in prose but defined in rigorous machine-processed mathematics; we also confirm that it captures the observable 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 multiprocessors.

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 multiprocessors.

References

  1. A. Adir, H. Attiya, and G. Shurek. Information-flow models for shared memory with an application to the PowerPC architecture. IEEE Trans. Parallel Distrib. Syst., 14(5):502--515, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. J. Alglave, A. Fox, S. Ishtiaq, M. O. Myreen, S. Sarkar, P. Sewell, and F. Zappa Nardelli. The semantics of Power and ARM multiprocessor machine code. In Proc. DAMP 2009, January 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. S. V. Adve and K. Gharachorloo. Shared memory consistency models: A tutorial. IEEE Computer, 29(12):66--76, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Jade Alglave. A Shared Memory Poetics. PhD thesis, Université Paris 7 Denis Diderot, November 2010.Google ScholarGoogle Scholar
  5. J. Alglave, L. Maranget, S. Sarkar, and P. Sewell. Fences in weak memory models. In Proc. CAV, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. J. Alglave, L. Maranget, S. Sarkar, and P. Sewell. Litmus: Running tests against hardware. In Proc. TACAS, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. ARM. ARM Barrier Litmus Tests and Cookbook, October 2008. PRD03-GENC-007826 2.0.Google ScholarGoogle Scholar
  8. H.-J. Boehm and S. Adve. Foundations of the C concurrency memory model. In Proc. PLDI, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. M. Batty, S. Owens, S. Sarkar, P. Sewell, and T. Weber. Mathematizing C concurrency. In Proc. POPL, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. N. Chong and S. Ishtiaq. Reasoning about the ARM weakly consistent memory model. In MSPC, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. W.W. Collier. Reasoning about parallel architectures. Prentice-Hall, Inc., 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. F. Corella, J. M. Stone, and C. M. Barton. A formal specification of the PowerPC shared memory architecture. Technical Report RC18638, IBM, 1993.Google ScholarGoogle Scholar
  13. M. Dubois, C. Scheurich, and F. Briggs. Memory access buffering in multiprocessors. In ISCA, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. K. Gharachorloo. Memory consistency models for shared-memory multiprocessors. WRL Research Report, 95(9), 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Intel. A formal specification of Intel Itanium processor family memory ordering, 2002. developer.intel.com/design/itanium/downloads/251429.htm.Google ScholarGoogle Scholar
  16. R. Joshi, L. Lamport, J. Matthews, S. Tasiran, M. Tuttle, and Y. Yu. Checking cache-coherence protocols with TLA. Form. Methods Syst. Des., 22:125--131, March 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. R. Kalla, B. Sinharoy, W. J. Starke, and M. Floyd. Power7: IBM's next-generation server processor. IEEE Micro, 30:7--15, March 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. D. Lea. The JSR-133 cookbook for compiler writers. http://gee.cs.oswego.edu/dl/jmm/cookbook.html.Google ScholarGoogle Scholar
  19. H. Q. Le, W. J. Starke, J. S. Fields, F. P. O'Connell, D. Q. Nguyen, B. J. Ronchetti, W. Sauer, E. M. Schwarz, and M. T. Vaden. IBM POWER6 microarchitecture. IBM Journal of Research and Development, 51(6):639--662, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. C. May, E. Silha, R. Simpson, and H. Warren, editors. The PowerPC architecture: a specification for a new family of RISC processors. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. S. Owens, P. Böhm, F. Zappa Nardelli, and P. Sewell. Lightweight tools for heavyweight semantics. Submitted for publication http://www.cl.cam.ac.uk/ so294/lem/.Google ScholarGoogle Scholar
  22. S. Owens, S. Sarkar, and P. Sewell. A better x86 memory model: x86-TSO. In Proc. TPHOLs, pages 391--407, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Power ISA™ Version 2.06. IBM, 2009.Google ScholarGoogle Scholar
  24. J. M. Stone and R. P. Fitzgerald. Storage in the PowerPC. IEEE Micro, 15:50--58, April 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. P. S. Sindhu, J.-M. Frailong, and M. Cekleov. Formal specification of memory models. In Scalable Shared Memory Multiprocessors, pages 25--42. Kluwer, 1991.Google ScholarGoogle Scholar
  26. B. Sinharoy, R. N. Kalla, J. M. Tendler, R. J. Eickemeyer, and J. B. Joyner. POWER5 system microarchitecture. IBM Journal of Research and Development, 49(4-5):505--522, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. The SPARC Architecture Manual, V. 8. SPARC International, Inc., 1992. Revision SAV080SI9308. http://www.sparc.org/standards/V8.pdf. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. S. Sarkar, P. Sewell, J. Alglave, L. Maranget, and D. Williams. Understanding POWER multiprocessors. www.cl.cam.ac.uk/users/pes20/ppc-supplemental, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. P. Sewell, S. Sarkar, S. Owens, F. Zappa Nardelli, and M. O. Myreen. x86-TSO: A rigorous and usable programmer's model for x86 multiprocessors. Communications of the ACM, 53(7):89--97, July 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. S. Sarkar, P. Sewell, F. Zappa Nardelli, S. Owens, T. Ridge, T. Braibant, M. Myreen, and J. Alglave. The semantics of x86-CC multiprocessor machine code. In Proc. POPL 2009, January 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Y. Yang, G. Gopalakrishnan, G. Lindstrom, and K. Slind. Analyzing the Intel Itanium memory ordering rules using logic programming and SAT. In Proc. CHARME, LNCS 2860, 2003.Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. Understanding POWER multiprocessors

            Recommendations

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in

            Full Access

            • Published in

              cover image ACM SIGPLAN Notices
              ACM SIGPLAN Notices  Volume 46, Issue 6
              PLDI '11
              June 2011
              652 pages
              ISSN:0362-1340
              EISSN:1558-1160
              DOI:10.1145/1993316
              Issue’s Table of Contents
              • cover image ACM Conferences
                PLDI '11: Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation
                June 2011
                668 pages
                ISBN:9781450306638
                DOI:10.1145/1993498
                • General Chair:
                • Mary Hall,
                • Program Chair:
                • David Padua

              Copyright © 2011 ACM

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 4 June 2011

              Check for updates

              Qualifiers

              • research-article

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader
            About Cookies On This Site

            We use cookies to ensure that we give you the best experience on our website.

            Learn more

            Got it!