Enhancing software reliability with speculative threads

作者: 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.

参考文章(35)
Daniel J. Sorin, Milo M. K. Martin, Mark D. Hill, David A. Wood, Fast Checkpoint/Recovery to Support Kilo-Instruction Speculation and Hardware Fault Tolerance ,(2000)
Brian Bershad, Yasushi Saito, A transactional memory service in an extensible operating system usenix annual technical conference. pp. 5- 5 ,(1998)
Paul H. J. Kelly, Richard W. M. Jones, Backwards-Compatible Bounds Checking for Arrays and Pointers in C Programs Proceedings of the 3rd International Workshop on Automatic Debugging; 1997 (AADEBUG-97). pp. 13- 26 ,(1997)
Doug Burger, Todd M. Austin, Steve Bennett, Evaluating future microprocessors : The SimpleScalar tool set Technical Report CS-TR-96-1308, University of Wisconsin Madison. ,(1996)
Perry Wagle, Jonathan Walpole, Calton Pu, Steve Beattie, Aaron Grier, Crispin Cowan, Heather Hintony, Qian Zhang, Peat Bakke, Dave Maier, StackGuard: automatic adaptive detection and prevention of buffer-overflow attacks usenix security symposium. pp. 5- 5 ,(1998)
J.G. Steffan, T.C. Mowry, The potential for using thread-level data speculation to facilitate automatic parallelization high-performance computer architecture. pp. 2- 13 ,(1998) , 10.1109/HPCA.1998.650541
Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Lopes, Jean-Marc Loingtier, John Irwin, None, Aspect-oriented programming ACM Computing Surveys. ,vol. 28, pp. 154- ,(1996) , 10.1145/242224.242420
James R. Larus, Eric Schnarr, EEL Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation - PLDI '95. ,vol. 30, pp. 291- 300 ,(1995) , 10.1145/207110.207163
Amitabh Srivastava, Alan Eustace, ATOM: a system for building customized program analysis tools programming language design and implementation. ,vol. 39, pp. 196- 205 ,(1994) , 10.1145/178243.178260
Harish Patil, Charles N. Fischer, Efficient Run-time Monitoring Using Shadow Processing. AADEBUG. pp. 119- 132 ,(1995)