An Object-Aware Hardware Transactional Memory System

Transactional memory (TM) is receiving attention as a way of expressing parallelism for programming multi-core systems. As a parallel programming model it is able to avoid the complexity of conventional locking. TM can enable multi-core hardware that dispenses with conventional bus-based cache coherence, resulting in simpler and more extensible systems. This is increasingly important as we move into the many-core era. Within TM, however, the processes of conflict detection and committing still require synchronization and the broadcast of data. By increasing the granularity of when synchronization is required, the demands on communication are reduced. Software implementations of TM have taken advantage of the fact that the object structure of data can be employed to further raise the level at which interference is observed. The contribution of this paper is the first hardware TM approach where the object structure is recognized and harnessed. This leads to novel commit and conflict detection mechanisms, and also to an elegant solution to the virtualization of version management, without the need for additional software TM support. A first implementation of the proposed hardware TM system is simulated. The initial evaluation is conducted with three benchmarks derived from the STAMP suite and a transactional version of Lee's routing algorithm.

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

[2]  M. Luján,et al.  Adaptive Concurrency Control for Transactional Memory , 2007 .

[3]  M.J. Flynn,et al.  Microprocessor design issues: thoughts on the road ahead , 2005, IEEE Micro.

[4]  Keir Fraser,et al.  Language support for lightweight transactions , 2003, SIGP.

[5]  Michel Dubois,et al.  VIRTUAL-ADDRESS CACHES , 1997 .

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

[7]  Michel Cekleov,et al.  Virtual-address caches. Part 1: problems and solutions in uniprocessors , 1997, IEEE Micro.

[8]  Burton H. Bloom,et al.  Space/time trade-offs in hash coding with allowable errors , 1970, CACM.

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

[10]  Doug Matzke,et al.  Will Physical Scalability Sabotage Performance Gains? , 1997, Computer.

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

[12]  Mikel Luján,et al.  A Study of a Transactional Parallel Routing Algorithm , 2007, 16th International Conference on Parallel Architecture and Compilation Techniques (PACT 2007).

[13]  Kunle Olukotun,et al.  A Scalable, Non-blocking Approach to Transactional Memory , 2007, 2007 IEEE 13th International Symposium on High Performance Computer Architecture.

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

[15]  Mario Wolczko,et al.  An Object-Based Memory Architecture , 1990, POS.

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

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

[18]  Marc Tremblay,et al.  A Third-Generation 65nm 16-Core 32-Thread Plus 32-Scout-Thread CMT SPARC® Processor , 2008, 2008 IEEE International Solid-State Circuits Conference - Digest of Technical Papers.

[19]  Matthew L. Seidl,et al.  An object-aware memory architecture , 2006, Sci. Comput. Program..

[20]  Mikel Luján,et al.  Lee-TM: A Non-trivial Benchmark Suite for Transactional Memory , 2008, ICA3PP.

[21]  J FlynnMichael,et al.  Microprocessor Design Issues , 2005 .

[22]  Narayanan Vijaykrishnan,et al.  Object-Oriented Architectural Support for a Java Processor , 1998, ECOOP.