Transaction processing core for accelerating software transactional memory

This paper introduces an advanced hardware based approach for accelerating Software Transactional Memory (STM). The proposed solution focuses on speeding up conflict detection that grows polynomially with the number of concurrently running transactions and shared to transaction-local address resolution, which is the most frequent STM operation. This is achieved by logic split in two hardware units: Transaction Processing Core and Transactional Memory Look-Aside Buffer. The Transaction Processing Core is a separate hardware unit which does eager conflict detection and address resolution by indexing transactional objects based on their virtual addresses. The Transactional Memory Look-aside Buffer is a per-processor extension that caches the translated addresses by the Transaction Processing Core. The effect of its function is a reduced bus traffic and the time spent for communication between the CPUs and the Transaction Processing Core. Compared with other existing solutions, our approach mainly differs in proposing an implementation that is not based on the processor cache but a separate on-chip core, uses virtual addresses, does not require application modification and is further enhanced by Transactional Memory Look-Aside Buffer. Our experiments confirm the potential of the Transaction Processing Core to dramatically speed up STM systems.

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

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

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

[4]  Dan Grossman,et al.  Enforcing isolation and ordering in STM , 2007, PLDI '07.

[5]  Eduard Ayguadé,et al.  Transactional Memory and OpenMP , 2007, IWOMP.

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

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

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

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

[10]  M. Valero,et al.  Compile time support for using Transactional Memory in C / C + + applications , .

[11]  Mateo Valero,et al.  Dissecting Transactional Executions in Haskell , 2007 .

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

[13]  Michael F. Spear,et al.  An integrated hardware-software approach to flexible transactional memory , 2007, ISCA '07.

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

[15]  David A. Wood,et al.  Performance Pathologies in Hardware Transactional Memory , 2007, IEEE Micro.

[16]  Mark Plesko,et al.  Optimizing memory transactions , 2006, PLDI '06.

[17]  Quinn Jacobson,et al.  Architectural Support for Software Transactional Memory , 2006, 2006 39th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO'06).

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