Transactions in relaxed memory architectures

The integration of transactions into hardware relaxed memory architectures is a topic of current research both in industry and academia. In this paper, we provide a general architectural framework for the introduction of transactions into models of relaxed memory in hardware, including the SC, TSO, ARMv8 and PPC models. Our framework incorporates flexible and expressive forms of transaction aborts and execution that have hitherto been in the realm of software transactional memory. In contrast to software transactional memory, we account for the characteristics of relaxed memory as a restricted form of distributed system, without a notion of global time. We prove abstraction theorems to demonstrate that the programmer API matches the intuitions and expectations about transactions.

[1]  Sarita V. Adve,et al.  Shared Memory Consistency Models: A Tutorial , 1996, Computer.

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

[3]  Dan Grossman,et al.  What do high-level memory models mean for transactions? , 2006, MSPC '06.

[4]  Roberto Palmieri,et al.  Opacity vs TMS2: Expectations and Reality , 2016, DISC.

[5]  Milo M. K. Martin,et al.  Deconstructing transactions: The subtleties of atomicity , 2005 .

[6]  Luke Dalessandro Michael,et al.  Strong Isolation is a Weak Idea , 2009 .

[7]  Jade Alglave,et al.  Understanding POWER multiprocessors , 2011, PLDI '11.

[8]  Hans-Juergen Boehm,et al.  Foundations of the C++ concurrency memory model , 2008, PLDI '08.

[9]  Idit Keidar,et al.  On Avoiding Spare Aborts in Transactional Memory , 2015, Theory of Computing Systems.

[10]  Michael F. Spear,et al.  Transactions as the Foundation of a Memory Consistency Model , 2010, DISC.

[11]  James R. Larus,et al.  Transactional Memory, 2nd edition , 2010, Transactional Memory.

[12]  Dan Grossman,et al.  High-level small-step operational semantics for transactions , 2008, POPL '08.

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

[14]  Rachid Guerraoui,et al.  Principles of Transactional Memory , 2010, Synthesis Lectures on Distributed Computing Theory.

[15]  Martín Abadi,et al.  Transactional memory with strong atomicity using off-the-shelf memory protection hardware , 2009, PPoPP '09.

[16]  Christopher J. Hughes,et al.  Performance evaluation of Intel® Transactional Synchronization Extensions for high-performance computing , 2013, 2013 SC - International Conference for High Performance Computing, Networking, Storage and Analysis (SC).

[17]  Nir Shavit,et al.  Pessimistic Software Lock-Elision , 2012, DISC.

[18]  Sarita V. Adve,et al.  Memory models: a case for rethinking parallel languages and hardware , 2009, PODC '09.

[19]  Shaked Flur,et al.  Simplifying ARM concurrency: multicopy-atomic axiomatic and operational models for ARMv8 , 2017, Proc. ACM Program. Lang..

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

[21]  Leslie Lamport,et al.  How to Make a Correct Multiprocess Program Execute Correctly on a Multiprocessor , 1997, IEEE Trans. Computers.

[22]  John Derrick,et al.  Verifying Linearizability on TSO Architectures , 2014, IFM.

[23]  James R. Larus,et al.  Transactional memory , 2008, CACM.

[24]  Jeremy Manson,et al.  The Java memory model , 2005, POPL '05.

[25]  Hagit Attiya,et al.  Safety of Live Transactions in Transactional Memory: TMS is Necessary and Sufficient , 2014, DISC.

[26]  George A. Constantinides,et al.  Automatically comparing memory consistency models , 2017, POPL.

[27]  João P. Cachopo,et al.  Practical Parallel Nesting for Software Transactional Memory , 2013, DISC.

[28]  Panagiota Fatourou,et al.  Consistency for Transactional Memory Computing , 2014, Bull. EATCS.

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

[30]  Adam Welc,et al.  Design and implementation of transactional constructs for C/C++ , 2008, OOPSLA '08.

[31]  ArneAndersson LundUniversity Is Necessary and Sufficient# , 1996 .

[32]  Francesco Zappa Nardelli,et al.  x86-TSO , 2010, Commun. ACM.

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

[34]  Nuno Diegues,et al.  Time-Warp: Efficient Abort Reduction in Transactional Memory , 2015, TOPC.

[35]  Maged M. Michael,et al.  Robust architectural support for transactional memory in the power architecture , 2013, ISCA.

[36]  Hagit Attiya,et al.  A programming language perspective on transactional memory consistency , 2013, PODC '13.

[37]  Rachid Guerraoui,et al.  Permissiveness in Transactional Memories , 2008, DISC.

[38]  Jan Vitek,et al.  A transactional object calculus , 2005, Sci. Comput. Program..

[39]  Arvind,et al.  Store Atomicity for Transactional Memory , 2007, Electron. Notes Theor. Comput. Sci..

[40]  Irving L. Traiger,et al.  The notions of consistency and predicate locks in a database system , 1976, CACM.

[41]  J. Gregory Morrisett,et al.  Composing first-class transactions , 1994, TOPL.

[42]  Andrew T Nguyen Investigation of hardware transactional memory , 2015 .

[43]  Brijesh Dongol,et al.  Proving Opacity via Linearizability: A Sound and Complete Method , 2017, FORTE.

[44]  Rachid Guerraoui,et al.  On the correctness of transactional memory , 2008, PPoPP.

[45]  Ali Sezgin,et al.  Modelling the ARMv8 architecture, operationally: concurrency and ISA , 2016, POPL.

[46]  Maurice Herlihy Transactional Memory Today , 2010, ICDCIT.

[47]  Mark Moir,et al.  Towards formally specifying and verifying transactional memory , 2009, Formal Aspects of Computing.

[48]  Jaroslav Sevcík,et al.  Program transformations in weak memory models , 2009 .

[49]  Peter Sewell,et al.  Mathematizing C++ concurrency , 2011, POPL '11.

[50]  Michel Raynal,et al.  Virtual world consistency: A condition for STM systems (with a versatile protocol with invisible read operations) , 2012, Theor. Comput. Sci..

[51]  Martín Abadi,et al.  Semantics of transactional memory and automatic mutual exclusion , 2011, TOPL.