Abstract:
This paper addresses the issue of error detection in transactional memory, and proposes a new method of error detection based on redundant transaction (EDRT). This method creates a transaction copy for every transaction, and executes both original transactions and transaction copies on adequate processor cores, and achieves error detection by comparing the execution results. EDRT utilizes the data-versioning mechanism of transactional memory to achieve the acquisition of an approximate minimum error detection comparison data set, and the acquisition is transparent and online. This paper applies EDRT to the log-based transactional memory, and proposes the solution to the designing problems of the fault-tolerant log-based transactional memory. Finally, this paper validates the EDRT through five test programs, including four SPLASH-2 benchmarks. The experimental results show that the average error detecting cost is about 3.68% relative to the whole program, and it is only about 12.07% relative to the transaction parts of the program. Compared with the dual modular redundancy error detection mechanism (DMR), the average error detecting cost ratio between the EDRT and the DMR is only about 0.05%.