skip to main content
10.1145/2485922.2485942acmotherconferencesArticle/Chapter ViewAbstractPublication PagesiscaConference Proceedingsconference-collections
research-article

Robust architectural support for transactional memory in the power architecture

Published:23 June 2013Publication History

ABSTRACT

On the twentieth anniversary of the original publication [10], following ten years of intense activity in the research literature, hardware support for transactional memory (TM) has finally become a commercial reality, with HTM-enabled chips currently or soon-to-be available from many hardware vendors. In this paper we describe architectural support for TM added to a future version of the Power ISA™. Two imperatives drove the development: the desire to complement our weakly-consistent memory model with a more friendly interface to simplify the development and porting of multithreaded applications, and the need for robustness beyond that of some early implementations. In the process of commercializing the feature, we had to resolve some previously unexplored interactions between TM and existing features of the ISA, for example translation shootdown, interrupt handling, atomic read-modify-write primitives, and our weakly consistent memory model. We describe these interactions, the overall architecture, and discuss the motivation and rationale for our choices of architectural semantics, beyond what is typically found in reference manuals.

References

  1. ARM Arch. Reference Manual. ARM Ltd., 2005.Google ScholarGoogle Scholar
  2. L. Baugh and C. Zilles. An analysis of I/O and syscalls in critical sections and their implications for transactional memory. In Proc. of the 2008 Intl. Symp. on Performance Analysis of Systems and Software. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. C. Blundell, E. C. Lewis, and M. M. K. Martin. Unrestricted transactional memory: Supporting I/O and system calls within transactions. Technical Report CIS-06-09, Department of Computer and Information Science, University of Pennsylvania, Apr 2006.Google ScholarGoogle Scholar
  4. H.-J. Boehm and S. V. Adve. Foundations of the C++ concurrency memory model. In Proc. of the 2008 Conf. on Programming language design and implementation, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. J. Chung, C. C. Minh, A. McDonald, T. Skare, H. Chafi, B. D. Carlstrom, C. Kozyrakis, and K. Olukotun. Tradeoffs in transactional memory virtualization. In Proc. of the 12th Intl. Conf. on Architectural Support for Programming Languages and Operating Systems, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. W. W. Collier. Reasoning about parallel architectures. Prentice-Hall, Inc., 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. D. Dice, Y. Lev, M. Moir, and D. Nussbaum. Early experience with a commercial hardware transactional memory implementation. In Proc. of the 14th Intl. Conference on Architectural Support for Programming Languages and Operating Systems, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. L. Hammond, V. Wong, M. Chen, B. D. Carlstrom, J. D. Davis, B. Hertzberg, M. K. Prabhu, H. Wijaya, C. Kozyrakis, and K. Olukotun. Transactional memory coherence and consistency. In Proc. of the 31st Intl. Symp. on Computer Architecture. Jun 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. T. Harris. Exceptions and side-effects in atomic blocks. Sci. Comput. Program., 58(3), Dec. 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. M. Herlihy and J. E. B. Moss. Transactional memory: architectural support for lock-free data structures. In Proc. of the 20th Intl. Symp. on Computer Architecture, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. O. S. Hofmann, D. E. Porter, C. J. Rossbach, H. E. Ramadan, and E. Witchel. Solving difficult HTM problems without difficult hardware. In TRANSACT '07: 2nd Workshop on Transactional Computing, August 2007.Google ScholarGoogle Scholar
  12. IBM Corporation. Power Instruction Set Architecture v.2.06B, July 2010.Google ScholarGoogle Scholar
  13. Intel Corporation. Intel IA-64 Architecture Software Developers Manua l, Volume 2: IA-64 System Architecture, Revision 1.1, July 2000.Google ScholarGoogle Scholar
  14. Intel Corporation. Intel 64 and IA-32 Architectures Software Developer's Manual, August 2012.Google ScholarGoogle Scholar
  15. Intel Corporation. Intel Architecture Instruction Set Extensions Programming Reference: Chapter 8: Intel Transactional Synchronization Extensions, Feb. 2012.Google ScholarGoogle Scholar
  16. C. Jacobi, T. Slegel, and D. Greiner. Transactional memory architecture and implementation for IBM System z. In Proc. of the 45th Intl. Symposium on Microarchitecture, December 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. M. M. K. Martin, C. Blundell, and E. Lewis. Subtleties of transactional memory atomicity semantics. Computer Architecture Letters, 5(2), 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. A. McDonald, J. Chung, B. D. Carlstrom, C. C. Minh, H. Chafi, C. Kozyrakis, and K. Olukotun. Architectural semantics for practical transactional memory. In Proc. of the 33rd Intl. Symposium on Computer Architecture, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. M. Moir, K. Moore, and D. Nussbaum. The adaptive transactional memory test platform: A tool for experimenting with transactional code for Rock. In TRANSACT '08: 3rd Workshop on Transactional Computing, February 2008.Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. M. J. Moravan, J. Bobba, K. E. Moore, L. Yen, M. D. Hill, B. Liblit, M. M. Swift, and D. A. Wood. Supporting nested transactional memory in LogTM. In Proc. of the 12th Intl. Conf. on Architectural support for programming languages and operating systems, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. T. Nakaike and M. M. Michael. Lock elision for read-only critical sections in java. In Proc. of the 2010 Conf. on Programming Language Design and Implementation. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. N. Neelakantam, R. Rajwar, S. Srinivas, U. Srinivasan, and C. Zilles. Hardware atomicity for reliable software speculation. In Proc. of the 34th Intl. Symposium on Computer Architecture, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. S. J. Patel and S. S. Lumetta. rePLay: A hardware framework for dynamic optimization. IEEE Transactions on Computer Systems, 50(6), June 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. R. Rajwar and J. R. Goodman. Speculative lock elision: enabling highly concurrent multi-threaded execution. In Proc. of the 34th Intl. Symposium on Microarchitecture, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. R. Rajwar, M. Herlihy, and K. Lai. Virtualizing transactional memory. In Proc. of the 32nd Intl. Symp. on Computer Architecture, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. S. Sarkar, K. Memarian, S. Owens, M. Batty, P. Sewell, L. Maranget, J. Alglave, and D. Williams. Synchronising C/C++ and POWER. In Proc. of the 33rd Conf. on Programming Language Design and Implementation, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. S. Sarkar, P. Sewell, J. Alglave, L. Maranget, and D. Williams. Understanding POWER multiprocessors. In Proc. of the 32nd Conf. on Programming Language Design and Implementation, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. L. Su and M. H. Lipasti. Speculative optimization using hardware-monitored guarded regions for java virtual machines. In Proc. of the 3rd Intl. Conf. on Virtual execution environments, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. D. L. Weaver and T. Germond, editors. SPARC Architecture Manual V9). PTR Prentice Hall, 1994.Google ScholarGoogle Scholar
  30. C. Zilles and L. Baugh. Extending hardware transactional memory to support nonbusy waiting and nontransactional actions. In Proc. of the First Workshop on Languages, Compilers, and Hardware Support for Transactional Computing. June 2006.Google ScholarGoogle Scholar

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
  • Published in

    cover image ACM Other conferences
    ISCA '13: Proceedings of the 40th Annual International Symposium on Computer Architecture
    June 2013
    686 pages
    ISBN:9781450320795
    DOI:10.1145/2485922
    • cover image ACM SIGARCH Computer Architecture News
      ACM SIGARCH Computer Architecture News  Volume 41, Issue 3
      ICSA '13
      June 2013
      666 pages
      ISSN:0163-5964
      DOI:10.1145/2508148
      Issue’s Table of Contents

    Copyright © 2013 ACM

    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    • Published: 23 June 2013

    Permissions

    Request permissions about this article.

    Request Permissions

    Check for updates

    Qualifiers

    • research-article

    Acceptance Rates

    ISCA '13 Paper Acceptance Rate56of288submissions,19%Overall Acceptance Rate543of3,203submissions,17%

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader