TY - GEN
T1 - Techniques for efficient software checking
AU - Yu, Jing
AU - Garzarán, María Jesús
AU - Snir, Marc
N1 - Funding Information:
This material is based upon work supported by the National Science Foundation under the CSR-AES program Award No. 0615273.
PY - 2008
Y1 - 2008
N2 - Dramatic increases in the number of transistors that can be integrated on a chip make processors more susceptible to radiation-induced transient errors. For commodity chips which are cost- and energy-constrained, we need a flexible and inexpensive technology for fault detection. Software approaches can play a major role for this sector of the market because they need little hardware modifications and can be tailored to fit different requirements of reliability and performance. However, software approaches add a significant overhead. In this paper we propose two novel techniques that reduce the overhead of software error checking approaches. The first technique uses boolean logic to identify code patterns that correspond to outcome tolerant branches. We develop a compiler algorithm that finds those patterns and removes the unnecessary replicas. In the second technique we evaluate the performance benefit obtained by removing address checks before load and stores. In addition, we evaluate the overheads that can be removed when the register file is protected in hardware. Our experimental results show that the first technique improves performance by an average 7% for three of the SPEC benchmarks. The second technique can reduce overhead by up-to 50% when the most aggressive optimization is applied.
AB - Dramatic increases in the number of transistors that can be integrated on a chip make processors more susceptible to radiation-induced transient errors. For commodity chips which are cost- and energy-constrained, we need a flexible and inexpensive technology for fault detection. Software approaches can play a major role for this sector of the market because they need little hardware modifications and can be tailored to fit different requirements of reliability and performance. However, software approaches add a significant overhead. In this paper we propose two novel techniques that reduce the overhead of software error checking approaches. The first technique uses boolean logic to identify code patterns that correspond to outcome tolerant branches. We develop a compiler algorithm that finds those patterns and removes the unnecessary replicas. In the second technique we evaluate the performance benefit obtained by removing address checks before load and stores. In addition, we evaluate the overheads that can be removed when the register file is protected in hardware. Our experimental results show that the first technique improves performance by an average 7% for three of the SPEC benchmarks. The second technique can reduce overhead by up-to 50% when the most aggressive optimization is applied.
UR - http://www.scopus.com/inward/record.url?scp=54249161100&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=54249161100&partnerID=8YFLogxK
U2 - 10.1007/978-3-540-85261-2_2
DO - 10.1007/978-3-540-85261-2_2
M3 - Conference contribution
AN - SCOPUS:54249161100
SN - 3540852603
SN - 9783540852605
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 16
EP - 31
BT - Languages and Compilers for Parallel Computing - 20th International Workshop, LCPC 2007, Revised Selected Papers
T2 - 20th International Workshop on Languages and Compilers for Parallel Computing, LCPC 2007
Y2 - 11 October 2007 through 13 October 2007
ER -