Thread level transactional memory decoupling interface and implementation
Download
1 / 24

Thread-Level Transactional Memory Decoupling Interface and Implementation - PowerPoint PPT Presentation


  • 67 Views
  • Uploaded on

Thread-Level Transactional Memory Decoupling Interface and Implementation. UW Computer Architecture Affiliates Conference Kevin Moore October 21, 2004. Transactional Memory. Atomic and isolated execution Replace locks for critical sections No lock granularity problem

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Thread-Level Transactional Memory Decoupling Interface and Implementation' - sybill-brooks


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Thread level transactional memory decoupling interface and implementation

Thread-Level Transactional MemoryDecoupling Interface and Implementation

UW Computer Architecture Affiliates Conference

Kevin Moore

October 21, 2004


Transactional memory
Transactional Memory

  • Atomic and isolated execution

  • Replace locks for critical sections

    • No lock granularity problem

  • Software Error Recovery

    • Allow programmers to abort/rollback transactions when errors are detected

    • Convenient interface for exception handling

Thread-Level Transactional Memory


Why haven t you built it
Why Haven’t You Built It?

  • ISA Change

  • No immediate benefit

  • Complexity

  • No solution for large transactions

  • No solution for software error recovery

Thread-Level Transactional Memory


The interface matters
The Interface Matters

  • Many systems implement the same ISA

    • Support multiple design points

    • Survive technology changes

  • Programmability is the key motivation for transactional memory

  • Interface challenge

    • Modern processors support small (few memory operations) easily

    • Unlimited transactions are more convenient for software

Thread-Level Transactional Memory


Virtualize transactional memory
Virtualize Transactional Memory

  • Decouple interface and implementation

    • Allow arbitrary size transactions

    • Don’t require unlimited buffering

  • Flexible implementation

    • Multiple cost/performance options

  • Support software error recovery

    • Recover all transactions

Thread-Level Transactional Memory


Overview
Overview

  • Motivation

  • Background

  • TLTM Interface

  • Out-of-Cache Transactions

  • Conclusion

Thread-Level Transactional Memory


Prior transactional memory systems
Prior Transactional Memory Systems

  • Transactional Memory

  • Transactional Memory Coherence and Consistency

  • Oklahoma Update

  • Transactional Lock Removal

  • 801 Storage (Database Storage)

Thread-Level Transactional Memory


Transactional memory1
Transactional Memory

  • Herlihy and Moss, ISCA 1993

  • Replaced short critical sections with atomic transactions

  • More efficient than locks

  • Implementation based on cache coherence states

Thread-Level Transactional Memory


Herlihy and moss isca 1993

CPU

Herlihy and Moss, ISCA 1993

  • Transaction cache

    • Stores all data accessed by transactions

    • 2 copies of each updated cache line

    • Fully associative

    • Acts as a victim cache

  • Long Locks

    • Processors are allowed to refuse coherence requests

Memory

Cache

Transaction Cache

Thread-Level Transactional Memory


Transactional memory coherence and consistency
Transactional Memory Coherence and Consistency

  • TCC combines coherence and transaction support

  • All memory requests are part of some transaction

  • Designed for a single CMP

  • Relies on broadcast

Thread-Level Transactional Memory


TCC

  • Each processor executes a speculative (optimistic) transaction

  • Commits are serial

    • Broadcasts addresses of all updates in the transaction

  • Supports long-running (large) transactions

    • Must grab (and hold) commit permission first

    • Cannot abort large transactions

Thread-Level Transactional Memory


TCC

On-Chip Interconnect

Broadcast-Based Communication

Write buffer ~4 kB, Fully-Associative

L2 Cache Logically Shared

CPU

L1 D

Thread-Level Transactional Memory


Limits of prior proposals
Limits of Prior Proposals

  • No separation between implementation and interface

  • No concurrent execution of large transactions

  • No software error recovery

  • Don’t address operating system

Thread-Level Transactional Memory


Thread level transactional memory tltm
Thread-Level Transactional Memory (TLTM)

  • Decouple transactional interface and implementation

  • No limit on transaction size or content

  • Break the dependence on caching all data accessed in a transaction

Thread-Level Transactional Memory


Tltm api
TLTM API

  • Transactions

    • Specified by begin and commit operations

    • All memory operations between begin and commit are part of the transaction

    • Transactions end in a commit or an abort

  • Abort/Recovery

    • Can be triggered by software or hardware

    • Control may be passed to software abort handler

    • If software handler is called, a before-image log is provided in the memory space of the process

Thread-Level Transactional Memory


Tltm guarantee
TLTM Guarantee

  • Execute the transaction atomically (and commit) or,

  • Allow a software abort handler to run before any updates are exposed

For each transaction the hardware will:

Thread-Level Transactional Memory


Transactional memory requirements
Transactional Memory Requirements

  • Maintain multiple versions of updated objects

  • Track data set (reads and updates)

  • Rollback/Restart

Thread-Level Transactional Memory


Thread level log
Thread-Level Log

Stack

Stack

Code

Data

Heap

Log

Log

Thread 0

Thread n

Global

Thread-Level Transactional Memory


Log based recovery
Log-Based Recovery

  • Undo log

    • Before image log stored in virtual address space of user program

    • Separate log for each thread

  • Aborts can be handled in software

    • Replays log entries in LIFO order

  • Breaks dependence on cache for 2nd copy

Thread-Level Transactional Memory


Speculative transactions
Speculative Transactions

  • ULTM does not require logging

  • Processors can still execute transactions speculatively

  • Non-speculative transactions will be rare for many applications

Thread-Level Transactional Memory


Transaction read set size
Transaction Read Set Size

Thread-Level Transactional Memory


Transaction write set size
Transaction Write Set Size

Thread-Level Transactional Memory


Tracking transaction state
Tracking Transaction State

  • Use conservative estimate of transaction data sets

    • Allows bounded state

  • Allows a trade-off between space overhead and performance

    • Results in some unnecessary aborts

Thread-Level Transactional Memory


Advantages of tltm
Advantages of TLTM

  • Flexibility for programmers

    • No hardware-imposed limits on transaction content

    • Allows conservative synchronization

    • Supports recovery for all transactions

  • Flexibility for memory system designers

    • No minimum size or associativity requirement for caches, reorder buffers or store queues

    • Can off-load recovery to software

Thread-Level Transactional Memory


ad