Schemes to Improve the Efficiency of Hardware Transactional Memory Systems

Abstract: In todays ubiquitous multiprocessor environment parallel programming becomesan important tool to reap the maximum gain. But the traditional lock-based parallelprogramming model is not attracting average programmers as the level of expertiseneeded is very high. A programcan be trapped in deadlock and livelock by unconsciouslocking of shared resources. Furthermore, a lock-based parallel programming modeluses blocking synchronization where execution of a critical section is exclusive. Aprocessor that executes in a critical section blocks all other processor to execute insidethe critical section. The blocking nature can limit concurrency if two processors followtwo different execution paths yet in the critical section; in that case there will be nodata race. Recently, many researchers proposed transactional memory that promises tosimplify parallel programming as well as to offer non-blocking synchronization.In transactionalmemory systems, critical sections are executed in transactionswheremultiple transactions from different threads can be executed speculatively in parallel.Data integrity, hence the program correctness is maintained by isolating the speculativeexecution and committing atomically at the end. A commit can force other ongoingtransactions to be squashed if a data conflict is detected. Depending on the mechanismin which the isolation, atomic commit and conflict detection is performed, transactionalmemory systems could be broadly categorized as software transactionalmemory (STM)and hardware transactional memory (HTM).In this thesis, three problems of HTM systems that hurt the execution time are discoveredand novel solutions to the problems are proposed. In an HTM system thatdetects conflicts lazily, transactions from one thread can repeatedly squash a transactionfrom another thread which can lead to a starvation problem for the latter. A novelsolution that uses squash counts for individual transaction is proposed to avoid starvation.At a data conflict, HTM systems squash the speculative executions and re-executethe transactions from the beginning. Re-execution from the beginning may waste a partof execution that is correct and hurt performance. A scheme is proposed that smartlytakes intermediate checkpoints so that the correct execution can be saved froma squashingtransaction. To isolate the speculative execution, a private buffer is used to store thespeculative data. The drastic effect of speculative buffer overflow is discovered and ascheme is proposed that effectively uses the speculative buffer to reduce overflows.

  This dissertation MIGHT be available in PDF-format. Check this page to see if it is available for download.