I am sharing an old survey on Transactional Memory. The work briefly introduce the problem behind the realization of transactional memories both from an hardware and a software perspective. The abstract follows:
Due to its inner implications in the parallel computing field, Transactional Memory is currently one of the hottest topics in computer research, having attracted the focus of several research experts in computer architecture, programming languages and parallel programming. Although the idea to support atomic operations in programming languages is quite old, the fundamental key point for its success in attracting, also major software companies and hardware vendors, is the belief that this technology can greatly simplify the development of efficient and correct shared-memory parallel programs. This simplification is achieved by providing to the programmer a way to specify a sequence of instructions that must appear to execute atomically. Transactional memory implementation then optimistically executes these sequences or transactions concurrently to obtain high performance. This essay will present a survey of the existing transactional memory solutions including both software and hardware implementations by introducing concepts, real problems and hardware architecture solutions for supporting this alternative solution to conven- tional lock based synchronization mechanism.
The PDF can be consulted online following this link.