Split hardware transactions: true nesting of transactions using best-effort hardware transactional memory

Transactional Memory (TM) is on its way to becoming the programming API of choice for writing correct, concurrent, and scalable programs. Hardware TM (HTM) implementations are expected to be significantly faster than pure software TM (STM); however, full hardware support for true closed and open nested transactions is unlikely to be practical. This paper presents a novel mechanism, the split hardware transaction (SpHT), that uses minimal software support to combine multiple segments of an atomic block, each executed using a separate hardware transaction, into one atomic operation. The idea of segmenting transactions can be used for many purposes, including nesting, local retry, orElse, and user-level thread scheduling; in this paper we focus on how it allows linear closed and open nesting of transactions. SpHT overcomes the limited expressive power of best-effort HTM while imposing overheads dramatically lower than STM and preserving useful guarantees such as strong atomicity provided by the underlying HTM.

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

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

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

[4]  Mark Moir,et al.  Debugging with Transactional Memory , 2006 .

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

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

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

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

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

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

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

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

[13]  David A. Wood,et al.  Supporting nested transactional memory in logTM , 2006, ASPLOS XII.

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

[15]  Kunle Olukotun,et al.  Using thread-level speculation to simplify manual parallelization , 2003, PPoPP '03.

[16]  Kunle Olukotun,et al.  The Atomos transactional programming language , 2006, PLDI '06.

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

[18]  Maurice Herlihy,et al.  Linearizability: a correctness condition for concurrent objects , 1990, TOPL.

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

[20]  Victor Luchangco,et al.  The Fortress Language Specification Version 1.0 , 2007 .

[21]  Antony L. Hosking,et al.  Nested transactional memory: Model and architecture sketches , 2006, Sci. Comput. Program..

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

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

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

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

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

[27]  Simon L. Peyton Jones,et al.  Composable memory transactions , 2005, CACM.