ABSTRACT
Transactional Memory (TM) simplifies parallel programming by allowing for parallel execution of atomic tasks. Thus far, TM systems have focused on implementing transactional state buffering and conflict resolution. Missing is a robust hardware/software interface, not limited to simplistic instructions defining transaction boundaries. Without rich semantics, current TM systems cannot support basic features of modern programming languages and operating systems such as transparent library calls, conditional synchronization, system calls, I/O, and runtime exceptions. This paper presents a comprehensive instruction set architecture (ISA) for TM systems. Our proposal introduces three key mechanisms: two-phase commit; support for software handlers on commit, violation, and abort; and full support for open- and closed-nested transactions with independent rollback. These mechanisms provide a flexible interface to implement programming language and operating system functionality. We also show that these mechanisms are practical to implement at the ISA and microarchitecture level for various TM systems. Using an execution-driven simulation, we demonstrate both the functionality (e.g., I/O and conditional scheduling within transactions) and performance potential (2.2× improvement for SPECjbb2000) of the proposed mechanisms. Overall, this paper establishes a rich and efficient interface to foster both hardware and software research on transactional memory.
- {1} A.-R. Adl-Tabatabai et al. Compiler and Runtime Support for Efficient Software Transactional Memory. In Proceedings of the Conference on Programming Language Design and Implementation, June 2006. Google ScholarDigital Library
- {2} E. Allen et al. The Fortress Language Specification. Sun Microsystems, 2005.Google Scholar
- {3} B. Alpern et al. The Jalapeño Virtual Machine. IBM Systems Journal, 39(1):211-238, 2000. Google ScholarDigital Library
- {4} S. Ananian et al. Unbounded Transactional Memory. In Proceedings of the 11th Intl. Symposium on High Performance Computer Architecture, Feb. 2005. Google ScholarDigital Library
- {5} C. Blundell, E. C. Lewis, and M. Martin. Deconstructing Transactional Semantics: The Subtleties of Atomicity. In ISCA Workshop on Duplicating, Deconstructing, and Debunking , June 2005.Google Scholar
- {6} B. D. Carlstrom et al. The Atomos Transactional Programming Language. In Proceedings of the Conference on Programming Language Design and Implementation, June 2006. Google ScholarDigital Library
- {7} Chapel Specification. Cray, February 2005.Google Scholar
- {8} P. Charles et al. X10: An Object-oriented Approach to Non-uniform Cluster Computing. In Proceedings of the 20th Conference on Object-oriented Programing, Systems, Languages, and Applications. ACM Press, Oct. 2005. Google ScholarDigital Library
- {9} J. Chung et al. The Common Case Transactional Behavior of Multithreaded Programs. In Proceedings of the 12th Intl. Conference on High Performance Computer Architecture , Feb. 2006.Google Scholar
- {10} J. Gray and A. Reuter. Transaction Processing: Concepts and Techniques. Morgan Kaufmann, 1993. Google ScholarDigital Library
- {11} R. Guerraoui et al. Robust Contention Management in Software Transactional Memory. In OOPSLA Workshop on Synchronization and Concurrency in Object-Oriented Languages , Oct. 2005.Google Scholar
- {12} L. Hammond et al. Transactional memory coherence and consistency. In Proceedings of the 31st Intl. Symposium on Computer Architecture, June 2004. Google ScholarDigital Library
- {13} T. Harris. Exceptions and Side-effects in Atomic Blocks. In PODC Workshop on Concurrency and Synchronization in Java Programs, July 2004.Google Scholar
- {14} T. Harris et al. Composable Memory Transactions. In Proceedings of the Symposium Principles and Practice of Parallel Programming, July 2005. Google ScholarDigital Library
- {15} T. Harris and K. Fraser. Language Support for Lightweight Transactions. In Proceedings of the 18th Conference on Object-oriented programing, Systems, Languages, and Applications , pages 388-402. ACM Press, Oct. 2003. Google ScholarDigital Library
- {16} M. Herlihy et al. Software Transactional Memory for Dynamic-sized Data Structures. In Proceedings of the 22nd Symposium on Principles of Distributed Computing, July 2003. Google ScholarDigital Library
- {17} M. Herlihy and J. E. B. Moss. Transactional Memory: Architectural Support for Lock-Free Data Structures. In Proceedings of the 20th Intl. Symposium on Computer Architecture, May 1993. Google ScholarDigital Library
- {18} Java Grande Forum, Java Grande Benchmark Suite. http: //www.epcc.ed.ac.uk/javagrande/, 2000.Google Scholar
- {19} J. Larus. It's the Software Stupid. Talk at the Workshop on Transactional Systems, Apr. 2005.Google Scholar
- {20} V. Luchangco and V. Marathe. Transaction Synchronizers. In OOPSLA Workshop on Synchronization and Concurrency in Object-Oriented Languages, Oct. 2005.Google Scholar
- {21} V. Marathe, W. Scherer, and M. Scott. Adaptive Software Transactional Memory. In Proceedings of the 19th Intl. Symposium on Distributed Computing, Sept. 2005. Google ScholarDigital Library
- {22} A. McDonald et al. Characterization of TCC on Chip-Multiprocessors. In Proceedings of the 14th Intl. Conference on Parallel Architectures and Compilation Techniques, Sept. 2005. Google ScholarDigital Library
- {23} K. Moore et al. LogTM: Log-Based Transactional Memory. In Proceedings of the 12th Intl. Conference on High Performance Computer Architecture, Feb. 2006.Google Scholar
- {24} E. Moss and T. Hosking. Nested Transactional Memory: Model and Preliminary Architecture Sketches. In OOPSLA Workshop on Synchronization and Concurrency in Object-Oriented Languages, Oct. 2005.Google Scholar
- {25} J. Nakano et al. ReViveI/O: Efficient Handling of I/O in Highly-Available Rollback-Recovery Servers. In Proceedings of the 12th Intl. Conference on High Performance Computer Architecture, Feb. 2006.Google Scholar
- {26} J. Oplinger and M. S. Lam. Enhancing Software Reliability with Speculative Threads. In Proceedings of the 10th Intl. Conference on Architectural Support for Programming Languages and Operating Systems, Oct. 2002. Google ScholarDigital Library
- {27} R. Rajwar and J. Goodman. Transactional Lock-Free Execution of Lock-Based Programs. In Proceedings of the 10th Intl. Conference on Architectural Support for Programming Languages and Operating Systems, Oct. 2002. Google ScholarDigital Library
- {28} R. Rajwar, M. Herlihy, and K. Lai. Virtualizing Transactional Memory. In Proceedings of the 32nd Intl. Symposium on Computer Architecture, June 2005. Google ScholarDigital Library
- {29} M. F. Ringenburg and D. Grossman. AtomCaml: First-class Atomicity via Rollback. In Proceedings of the 10th Intl. Conference on Functional Programming, Sept. 2005. Google ScholarDigital Library
- {30} B. Saha et al. A High Performance Software Transactional Memory System for a Multi-core Runtime. In Proceedings of the Symposium Principles and Practice of Parallel Programming , Mar. 2005. Google ScholarDigital Library
- {31} N. Shavit and S. Touitou. Software Transactional Memory. In Proceedings of the 14th Symposium on Principles of Distributed Computing, Aug. 1995. Google ScholarDigital Library
- {32} J. P. Singh, W. Weber, and A. Gupta. SPLASH: Stanford Parallel Applications for Shared-Memory. Computer Architecture News, 1992. Google ScholarDigital Library
- {33} Standard Performance Evaluation Corporation, SPEC CPU Benchmarks. http://www.specbench.org/, 2000.Google Scholar
- {34} Standard Performance Evaluation Corporation, SPECjbb2000 Benchmark. http://www.spec. org/jbb2000/, 2000.Google Scholar
- {35} G. Steffan, C. Colohan, Z. Zhai, and T. Mowry. A Scalable Approach to Thread-level Speculation. In the Proceedings of the 27th Intl. Symposium on Computer Architecture, June 2000. Google ScholarDigital Library
- {36} S. Woo, M. Ohara, E. Torrie, J. P. Singh, and A. Gupta. The SPLASH2 Programs: Characterization and Methodological Considerations. In Proceedings of the 22nd Intl. Symposium on Computer Architecture, June 1995. Google ScholarDigital Library
- {37} A. Welc, S. Jagannathan, and A. L. Hosking. Transactional Monitors for Concurrent Objects. In Proceedings of the European Conference on Object-Oriented Programming, June 2004.Google ScholarCross Ref
Index Terms
- Architectural Semantics for Practical Transactional Memory
Recommendations
Architectural Semantics for Practical Transactional Memory
Transactional Memory (TM) simplifies parallel programming by allowing for parallel execution of atomic tasks. Thus far, TM systems have focused on implementing transactional state buffering and conflict resolution. Missing is a robust hardware/software ...
Towards transactional memory semantics for C++
SPAA '09: Proceedings of the twenty-first annual symposium on Parallelism in algorithms and architecturesTransactional memory (TM) eliminates many problems associated with lock-based synchronization. Over recent years, much progress has been made in software and hardware implementation techniques for TM. However, before transactional memory can be ...
Stretching transactional memory
PLDI '09Transactional memory (TM) is an appealing abstraction for programming multi-core systems. Potential target applications for TM, such as business software and video games, are likely to involve complex data structures and large transactions, requiring ...
Comments