Title: HTM Taxonomy
1HTM Taxonomy
baseline
overflow
miscellaneous
2Glossary
- coherence directory/snoopy coherence protocol
- coherence conflict detection whether coherence
is kept at each ld/st (eager) or each xaction
(lazy) - ordered commits whether the commits of the
xactions are ordered - restore regs whether hw can restore the register
state (in addition to memory) after the xaction
abortsregister state can either be saved in a
shadow register file or a shadow rename table - multiple cached versions force the cache to
store multiple versions of the same addr - bounded whether the xaction is bound in space
and/or time - version mgmt whether the new value is stored in
place (eager) or on the side (lazy) - xaction conflict detection whether the conflicts
are detected at each ld/st (eager) or at commit
(lazy) - ld/st conflict detection whether normal ld/st
check overflow for conflicts (eager) or not
(lazy) - nesting supported protocol for handling nested
transactions - handlers whether software can specify handlers
to execute within the HTM protocol - i/o whether I/O can be performed within a
transaction
3HTM Overflow Log Taxonomy
4Discussion
5Unbounded Transactions
- unlimited in size time
- shield programmers from the following details
- resource limitations (e.g. buffer sizes)
- scheduling quantas
- process/thread migrations
- page faults
- interrupts
- usage of transactions in library code /
subroutine calls(supports flexible unlimited
nesting, I/O, large xactions)
6Closed and Open Nesting
closed nesting semantics? when child detects
conflicts, only roll back the child? when child
commits, merge read/write set with parents?
state is only visible when the outermost xaction
commits benefits? inner xactions dont restrict
concurrency of outer xactions? independent
xaction management at each nesting level open
nesting semantics? when child detects
conflicts, only roll back the child? when child
commits, state becomes visible? to undo the
child after commit if an ancestor aborts, need
to register an abort and/or violation
handler benefits? inner xactions dont
restrict concurrency of outer xactions? release
state from inner syscalls to avoid frequent
conflicts? update system state before parents
commit
figure adopted from tcc-mcdonald-isca06