Flexible Decoupled Transactional Memory Support


A high-concurrency transactional memory (TM) implementation needs to track concurrent accesses, buffer speculative updates, and manage conflicts. We present a system, FlexTM (FLEXible Transactional Memory), that coordinates four decoupled hardware mechanisms: read and write signatures, which summarize per-thread access sets; per-thread conflict summary tables (CSTs), which identify the threads with which conflicts have occurred; Programmable Data Isolation, which maintains speculative updates in the local cache and employs a thread-private buffer (in virtual memory) in the rare event of overflow; and Alert-On-Update, which selectively notifies threads about coherence events. All mechanisms are software-accessible, to enable virtualization and to support transactions of arbitrary length. FlexTM allows software to determine when to manage conflicts (either eagerly or lazily), and to employ a variety of conflict management and commit protocols. We describe an STM-inspired protocol thatuses CSTs to manage conflicts in a distributed manner (no global arbitration) and allows parallel commits. In experiments with a prototype on Simics/GEMS, FlexTM exhibits 5x speedup over high-quality software TM, with no loss in policy flexibility. Its distributed commit protocol is also more efficient than a central hardware manager. Our results highlight the importance of flexibility in determining when to manage conflicts: lazy maximizes concurrency and helps to ensure forward progress while eager provides better overall utilization in a multi-programmed system.

DOI: 10.1145/1394608.1382134
View Slides

Extracted Key Phrases

8 Figures and Tables


Citations per Year

129 Citations

Semantic Scholar estimates that this publication has 129 citations based on the available data.

See our FAQ for additional information.

Cite this paper

@article{Shriraman2008FlexibleDT, title={Flexible Decoupled Transactional Memory Support}, author={Arrvindh Shriraman and Sandhya Dwarkadas and Michael L. Scott}, journal={2008 International Symposium on Computer Architecture}, year={2008}, pages={139-150} }