Ideally, the programmer should have the ability to invoke several operations on shared data in an atomic fashion without having to worry about locking or performance issues. Transactional memory achieves this goal. With transactional memory, the software on an individual processor is ensured, by the hardware, that a set of memory accesses is either performed atomically or not at all. This notion is very similar to that of a transaction in database terms. Transactional memory can replace locks altogether resulting in a more intuitive programming environment as well as a performance increase.
I propose a design for hardware transactional memory where the transaction size is not bounded by a specialized hardware buffer such as a cache. I describe an unbounded transactional memory system called UTM (unbounded transactional memory) that exploits the perceived common case where transactions are small but still supports transactions of arbitrary size. As in previous hardware transactional memory systems, UTM uses the cache to store speculative state and uses the cache coherency protocol to detect conflicting transactions. Unlike previous hardware systems, UTM allows the speculative state to overflow from the cache into main memory, thereby allowing the transaction to grow beyond the size limitation of the cache. The clean semantics of UTM allow nested transaction support, nontransactional instructions, immediate aborts, a processor snapshot, and context-switching support; all features not found in previous hardware transactional systems. UTM was implemented in a detailed simulator, and experimental results show that it can be integrated with existing hardware straightforwardly while still performing better than conventional synchronization techniques.
For my Master's thesis, I designed and evaluated hardware support for transactional memory on shared-memory supercomputers. This research was funded in part by the National Science Foundation Grant ACI-032497, in part by the Singapore-MIT Alliance, and in part by Silicon Graphics, Incorporated.