Nested Transactional Memory: Model and Architecture Sketches

Moss, J. Eliot B. and Hosking, Antony L.

Abstract

We offer a reference model for nested transactions at the level of memory accesses, and sketch possible hardware architecture designs that implement that model. We describe both closed and open nesting. The model is abstract in that it does not relate to hardware, such as caches, but describes memory as seen by each transaction, memory access conflicts, and the effects of commits and aborts. The hardware sketches describe approaches to implementing the model using bounded size caches in a processor with overflows to memory. In addition to a model that will support concurrency within a transaction, we describe a simpler model that we call linear nesting. Linear nesting supports only a single thread of execution in a transaction nest, but may be easier to implement. While we hope that the model is a good target to which to compile transactions from source languages, the mapping from source constructs to nested transactional memory is beyond the scope of the paper.

@article{Moss+2006SCP,
  author = {Moss, J. Eliot B. and Hosking, Antony L.},
  title = {Nested Transactional Memory: Model and Architecture
                    Sketches},
  journal = {Science of Computer Programming},
  year = {2006},
  volume = {63},
  pages = {186--201},
  month = {December},
  doi = {10.1016/j.scico.2006.05.010},
  gscholar = {152}
}