LogTM-SE: Decoupling Hardware Transactional Memory from Caches

  • Authors:
  • Luke Yen;Jayaram Bobba;Michael R. Marty;Kevin E. Moore;Haris Volos;Mark D. Hill;Michael M. Swift;David A. Wood

  • Affiliations:
  • Department of Computer Sciences, University of Wisconsin-Madison, lyen@cs.wisc.edu;Department of Computer Sciences, University of Wisconsin-Madison, bobba@cs.wisc.edu;Department of Computer Sciences, University of Wisconsin-Madison, mikem@cs.wisc.edu;Department of Computer Sciences, University of Wisconsin-Madison, kmoore@cs.wisc.edu;Department of Computer Sciences, University of Wisconsin-Madison, hvolos@cs.wisc.edu;Department of Computer Sciences, University of Wisconsin-Madison, markhill@cs.wisc.edu;Department of Computer Sciences, University of Wisconsin-Madison, swift@cs.wisc.edu;Department of Computer Sciences, University of Wisconsin-Madison, david@cs.wisc.edu

  • Venue:
  • HPCA '07 Proceedings of the 2007 IEEE 13th International Symposium on High Performance Computer Architecture
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper proposes a hardware transactional memory (HTM) system called LogTM Signature Edition (LogTM-SE). LogTM-SE uses signatures to summarize a transaction's read-and write-sets and detects conflicts on coherence requests (eager conflict detection). Transactions update memory "in place" after saving the old value in a per-thread memory log (eager version management). Finally, a transaction commits locally by clearing its signature, resetting the log pointer, etc., while aborts must undo the log. LogTM-SE achieves two key benefits. First, signatures and logs can be implemented without changes to highly-optimized cache arrays because LogTM-SE never moves cached data, changes a block's cache state, or flash clears bits in the cache. Second, transactions are more easily virtualized because signatures and logs are software accessible, allowing the operating system and runtime to save and restore this state. In particular, LogTM-SE allows cache victimization, unbounded nesting (both open and closed), thread context switching and migration, and paging.