May 8, 2008

The Case for Hardware Support for Transactional Memory

Christos Kozyrakis , Department of Electrical Engineering and Computer Science, Stanford University

Abstract: With single thread performance at a plateau, it is now necessary to develop concurrent programs in order to exploit the scalable processing power of multi-core chips. Transactional Memory (TM) is emerging as a promising technology that can reduce the complexity of parallel programming for shared-memory multiprocessors. With TM, programmers simply declare that code blocks operating on shared data should execute as atomic and isolated transactions with respect to all other code. Concurrency control as multiple transactions execute in parallel is the responsibility of the system.

After a brief review of the advantages of TM as a concurrency construct, this talk will focus on hardware support for transactional execution. Hardware is necessary in order to address the significant overheads of software TM implementations and provide meaningful functionality without surprising results for common coding patterns. We will review the two general approaches for hardware support for TM, discuss their interface to software, and show that they are practical within the scope of modern multi-core chips. Moreover, we will show that the hardware mechanisms for TM can also support useful features for challenges beyond concurrency control, such as availability, security, and debugging.

About the speaker: Christos Kozyrakis is an Assistant Professor of Electrical Engineering and Computer Science at Stanford University. He holds a B.S. degree from the University of Crete in Greece (1996) and a Ph.D. from the University of California at Berkeley (2002). His research at Stanford has focused on parallel computing, architectural support for security, and power management techniques for data centers. He co-leads the Transactional Coherence and Consistency (TCC) group at Stanford that investigates hardware support, programming models, and runtime environments for transactional memory, a technology that can greatly simplify parallel programming for the average software developer. Christos is a senior member of the ACM and the IEEE.

 

Presentation slides with audio