Combinable memory-block transactions

Guy E. Blelloch, Phillip B. Gibbons, S. Harsha Vardhan
2008 Proceedings of the twentieth annual symposium on Parallelism in algorithms and architectures - SPAA '08  
This paper formalizes and studies combinable memory-block transactions (MBTs). The idea is to encode short programs that operate on a single cache/memory block and then to specify such a program with a memory request. The code is then executed at the cache or memory controller, atomically with respect to other accesses to that block by this or other processors. The combinable form allows combining within the memory system or network. In addition to allowing for the standard set of
more » ... ite operations (e.g., testand-set, compare-and-swap, fetch-and-add), MBTs can be used to define other useful operations-such as a fetch-andadd that does not decrement below zero. We show how MBTs can be used to design simple and efficient implementations of a variety of protocols and algorithms, including a priority write, a semaphore with a nonblocking P operation, a bounded queue, and a timestampbased transactional memory system. In all cases the protocols gain some advantage by using MBTs that are different from the standard set of operations. To gain an understanding of the efficiency that can be gained by using combining, we define a notion of bounded contention and show that all our protocols have bounded contention under arbitrary loads.
doi:10.1145/1378533.1378537 dblp:conf/spaa/BlellochGV08 fatcat:3lnfn755mfhi3l66rgpnojvjdu