事务存储是一种旨在改善多核处理器可编程住的技术,高效的事务嵌套处理是硬件事务存储系统面临的挑战性问题之一.为了在不显著增加硬件复杂性的前提下实现高效的事务嵌套处理,提出了一种支持有条件部分回滚的事务嵌套处理方案CPR,该方案为各层嵌套事务维护统一的数据集合,通过增加少量硬件状态位以记录各层嵌套事务对数据的读/写状态,实现了满足特定条件时事务进行部分回滚,在不显著增加硬件复杂性的前提下,提高了闭合嵌套模型的处理效率.基于模拟器Simies与多核扩展包GEMS进行了模拟实验和性能评价,结果表明,CPR方案在复杂性显著低于nestedLogTM的情况下,获得了与其基本一致的性能,同时性能相对于传统的扁平模型有显著提升.
Transactional memory is an attractive technology to improve programmability of multi-core processors.However, there still exist challenges for hardware transactional memory including efficient transaction nesting. To support closed nesting effi- ciently without increasing hardware complexities significantly, this paper proposes a CPR scheme which supports conditional partial rollback on conflict. In stead of rolling back to the outermost transaction as in commonly-used flattening model, the CPR scheme just rolls back to the conflicted transaction itself or one of its outer-level transactions if given condition is satisfied.By adding a series of hardware bits in Iransactional buffer to record read/write status of each nested transaction, the CPR scheme only maintains a global data set for all of the nested transactions rather than independent data set for each nested transaction as in nested Log TM. Evaluation results show that the CPR scheme achieves similar performance with the nested LogTM,and is better than the flattening model.