NZTM: nonblocking zero-indirection transactional memory

This paper introduces NZTM, a nonblocking, zero-indirection, object-based, hybrid transactional memory system. NZTM comprises a nonblocking software transactional memory (STM) system that can exploit best-effort hardware transactional memory (HTM) if available to improve performance. Most previous nonblocking software transactional memory implementations pay a significant performance cost in the common case, as compared to simpler, blocking ones. However, blocking is problematic in some cases and unacceptable in others. NZTM is nonblocking, but shares the advantages of recent blocking STM proposals in the common case: it stores object data "in place", avoiding the costly levels of indirection of previous nonblocking STMs, and improves cache performance by collocating object metadata with the data it controls. We also explain how our nonblocking NZSTM algorithm can be substantially simplified using very simple hardware transactions, and evaluate its performance on Sun's forthcoming Rock processor. Our results show that nonblocking support introduces little overhead when compared with blocking STMs, and that NZTM is competitive with LogTM-SE, an unbounded HTM.

[1]  Maurice Herlihy,et al.  Virtualizing transactional memory , 2005, 32nd International Symposium on Computer Architecture (ISCA'05).

[2]  Maurice Herlihy,et al.  Software transactional memory for dynamic-sized data structures , 2003, PODC '03.

[3]  Christopher J. Hughes,et al.  Hybrid transactional memory , 2006, PPoPP '06.

[4]  Maurice Herlihy,et al.  A flexible framework for implementing software transactional memory , 2006, OOPSLA '06.

[5]  David A. Wood,et al.  LogTM-SE: Decoupling Hardware Transactional Memory from Caches , 2007, 2007 IEEE 13th International Symposium on High Performance Computer Architecture.

[6]  D. Geer,et al.  Chip makers turn to multicore processors , 2005, Computer.

[7]  James R. Goodman,et al.  Transactional lock-free execution of lock-based programs , 2002, ASPLOS X.

[8]  Mark Moir,et al.  PhTM: Phased Transactional Memory , 2007 .

[9]  Nir Shavit,et al.  Transactional Locking II , 2006, DISC.

[10]  James R. Larus,et al.  Transactional Memory , 2006, Transactional Memory.

[11]  Gerard J. Holzmann,et al.  The SPIN Model Checker , 2003 .

[12]  Keir Fraser,et al.  Practical lock-freedom , 2003 .

[13]  Bratin Saha,et al.  McRT-STM: a high performance software transactional memory system for a multi-core runtime , 2006, PPoPP '06.

[14]  Donald E. Porter,et al.  MetaTM/TxLinux: Transactional Memory for an Operating System , 2007, IEEE Micro.

[15]  Martin Rinard,et al.  Efficient Software Transactions for Object-Oriented Languages , 2005 .

[16]  Mark Moir,et al.  The adaptive transactional memory test platform: a tool for experimenting with transactional code for rock (poster) , 2008, SPAA '08.

[17]  Sean Lie Hardware Support for Unbounded Transactional Memory , 2004 .

[18]  Michael F. Spear,et al.  Nonblocking transactions without indirection using alert-on-update , 2007, SPAA '07.

[19]  Robert Ennals Software Transactional Memory Should Not Be Obstruction-Free , 2005 .

[20]  William N. Scherer,et al.  Advanced contention management for dynamic software transactional memory , 2005, PODC '05.

[21]  Michael F. Spear,et al.  The rochester software transactional memory runtime , 2006 .

[22]  David A. Wood,et al.  LogTM: log-based transactional memory , 2006, The Twelfth International Symposium on High-Performance Computer Architecture, 2006..

[23]  Nir Shavit,et al.  What Really Makes Transactions Faster , 2006 .

[24]  Kunle Olukotun,et al.  An effective hybrid transactional memory system with strong isolation guarantees , 2007, ISCA '07.

[25]  Maurice Herlihy,et al.  Obstruction-free synchronization: double-ended queues as an example , 2003, 23rd International Conference on Distributed Computing Systems, 2003. Proceedings..

[26]  Håkan Grahn,et al.  SimICS/Sun4m: A Virtual Workstation , 1998, USENIX Annual Technical Conference.

[27]  Virendra J. Marathe,et al.  Adaptive Software Transactional Memory , 2005, DISC.

[28]  Fredrik Larsson,et al.  Simics: A Full System Simulation Platform , 2002, Computer.

[29]  Virendra J. Marathe,et al.  A Qualitative Survey of Modern Software Transactional Memory Systems , 2004 .

[30]  Virendra J. Marathe,et al.  Capabilities and Limitations of Library-Based Software Transactional Memory in C++ , 2007 .

[31]  David Eisenstat,et al.  Lowering the Overhead of Nonblocking Software Transactional Memory , 2006 .

[32]  Craig B. Zilles,et al.  Using Hardware Memory Protection to Build a High-Performance, Strongly-Atomic Hybrid Transactional Memory , 2008, 2008 International Symposium on Computer Architecture.

[33]  David Eisenstat,et al.  Hardware Acceleration of Software Transactional Memory , 2005 .

[34]  David A. Patterson,et al.  Computer Architecture, Fifth Edition: A Quantitative Approach , 2011 .

[35]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[36]  Maged M. Michael,et al.  Software Transactional Memory: Why Is It Only a Research Toy? , 2008, ACM Queue.

[37]  Kunle Olukotun,et al.  Transactional memory coherence and consistency , 2004, Proceedings. 31st Annual International Symposium on Computer Architecture, 2004..

[38]  Bradley C. Kuszmaul,et al.  Unbounded transactional memory , 2005, 11th International Symposium on High-Performance Computer Architecture.

[39]  Milo M. K. Martin,et al.  Multifacet's general execution-driven multiprocessor simulator (GEMS) toolset , 2005, CARN.

[40]  Mark Moir,et al.  Hybrid transactional memory , 2006, ASPLOS XII.

[41]  Marc Tremblay,et al.  Rock: A High-Performance Sparc CMT Processor , 2009, IEEE Micro.

[42]  Maurice Herlihy,et al.  Transactional Memory: Architectural Support For Lock-free Data Structures , 1993, Proceedings of the 20th Annual International Symposium on Computer Architecture.

[43]  Kunle Olukotun,et al.  The common case transactional behavior of multithreaded programs , 2006, The Twelfth International Symposium on High-Performance Computer Architecture, 2006..

[44]  Fuad Tabba,et al.  Practical transactional memory: The hybrid approach , 2007 .

[45]  Nir Shavit,et al.  Software transactional memory , 1995, PODC '95.

[46]  Martin Rinard,et al.  Efficient Object-Based Software Transactions , 2005 .

[47]  James R. Larus,et al.  Transactional memory , 2008, CACM.

[48]  Kunle Olukotun,et al.  STAMP: Stanford Transactional Applications for Multi-Processing , 2008, 2008 IEEE International Symposium on Workload Characterization.

[49]  Mark Moir,et al.  Early experience with a commercial hardware transactional memory implementation , 2009, ASPLOS.

[50]  James R. Larus,et al.  Transactional Memory (Synthesis Lectures on Computer Architecture) , 2007 .

[51]  Mark Moir,et al.  Efficient nonblocking software transactional memory , 2007, PPOPP.

[52]  Yossi Lev Brown PhTM : Phased Transactional Memory ∗ , 2007 .

[53]  Mark Moir,et al.  Fast read sharing mechanism for software transactional memory , 2005 .