Computer Engineering Seminar
Log-based Transactional Memory
Computer Sciences Department, University of Wisconsin-Madison
TRANSACTIONAL MEMORY (TM) simplifies parallel programming by guaranteeing that transactions appear to execute atomically and in isolation. Implementing these properties includes providing data version management for the simultaneous storage of both new (visible if the transaction commits) and old (retained if the transaction aborts) values. Most Hardware TM systems leave old values "in place" (the target memory address) and buffer new values elsewhere until commit. This makes aborts fast, but penalizes (the much more frequent) commits.
We first introduce a Hardware TM system called LOG-BASED TRANSACTIONAL MEMORY (LogTM) [HPCAག] that makes commits fast by storing old values to a per-thread log in cacheable virtual memory and storing new values in place. LogTM also extends a MOESI directory protocol to gracefully handle cache victimization of transactional data.
We then touch upon two LogTM extensions. First, NESTED LogTM [ASPLOSག] aids software composability, concurrency, and communication by supporting closed/open nested transaction and non transactional escape actions. Second, LogTM SIGNATURE EDITION [HPCAགྷ] aids virtualization (handling unbounded nesting, thread switch/migration, and paging) by detecting conflicts with signatures rather than in-cache read/write bits.
MARK D. HILL (http://www.cs.wisc.edu/~markhill) is professor in both the computer sciences department and the electrical and computer engineering department at the University of Wisconsin-Madison, where he also co-leads
the Wisconsin Multiface(http://www.cs.wisc.edu/multifacet/) project with
David Wood. His research interests include parallel computer system design, memory system design, and computer simulation. He earned a PhD from University of California, Berkeley. He is an ACM Fellow and a Fellow of the IEEE.