作者: Monica S. Lam , Jeffrey Oplinger
DOI:
关键词:
摘要: This paper advocates the use of a monitor-and-recover programming paradigm to enhance reliability software, and proposes an architectural design that allows software hardware cooperate in making this more efficient easier program.We propose programmers write monitoring functions assuming simple sequential execution semantics. Our architecture speeds up computation by executing speculatively parallel with main computation. For recovery, can define fine-grain transactions whose side effects, including all register modifications memory writes, either be committed or aborted under program control. Transactions are implemented efficiently treating them as speculative threads.Our experimental results suggest monitored is amenable parallelization than regular execution. Code sped factor 1.5 exploiting single-thread instruction-level parallelism, additional 1.6 using thread-level speculation. overall improvement 2.5 times sustained 5.4 instructions-per-cycle performance. A used slower executes degradation only 12% when compared performance on baseline machine. We also show concept transactional useful catching buffer overrun errors through number real-life examples.