LogTM: Log-based Transactional Memory

We introduced Log-Based Transactional Memory (LogTM) at HPCA (2/2006)
and extended it to support nested transactions at ASPLOS
(10/2006). LogTM differs from most other transactional memory systems
primarily in that transactional stores eagerly update memory "in
place" while recording old values in a per-thread log. Common-case
transactional commits are fast, because data is in place and need not
move. Less common transactional aborts, however, use software handlers
to restore old values from the log. LogTM's transaction log and
software aborts extend naturally to nested transactions. Each nested
transaction allocates its own frame on log much like a function call
pushes an activation record on the stack. Software abort processing
cleanly supports unrolling arbitrary nesting levels and allows the
execution of compensating actions without additional hardware.

LogTM-Signature Edition replaced transactional bits in the cache with
a signature that supports virtualization. With signatures,
which may be saved and restored in software, transactions can exceed
the cache size, and surivive both context switches and virtual memory
paging.

Artwork

Any opinions, findings, and conclusions or recommendations
expressed on these pages are those of the author(s) and do not
necessarily reflect the views of the National Science Foundation
or any other sponsor.