This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Automated Derivation of Application-Specific Error Detectors Using Dynamic Analysis
September/October 2011 (vol. 8 no. 5)
pp. 640-655
K. Pattabiraman, Dept. of Electr. & Comput. Eng., Univ. of British Columbia, Vancouver, BC, Canada
G. P. Saggese, Synopsys Inc., Mountain View, CA, USA
D. Chen, Coordinated Sci. Lab., Univ. of Illinois at Urbana-Champaign, Urbana, IL, USA
Z. Kalbarczyk, Coordinated Sci. Lab., Univ. of Illinois at Urbana-Champaign, Urbana, IL, USA
R. Iyer, Coordinated Sci. Lab., Univ. of Illinois at Urbana-Champaign, Urbana, IL, USA
This paper proposes a novel technique for preventing a wide range of data errors from corrupting the execution of applications. The proposed technique enables automated derivation of fine-grained, application-specific error detectors based on dynamic traces of application execution. The technique derives a set of error detectors using rule-based templates to maximize the error detection coverage for the application. A probability model is developed to guide the choice of the templates and their parameters for error-detection. The paper also presents an automatic framework for synthesizing the set of detectors in hardware to enable low-overhead, runtime checking of the application. The coverage of the derived detectors is evaluated using fault-injection experiments, while the performance and area overheads of the detectors are evaluated by synthesizing them on reconfigurable hardware.

[1] W.R. Bush et al., "A Static Analyzer for Finding Dynamic Programming Errors," Software Practice and Experience, vol. 30, pp. 775-802, 2000.
[2] D. Evans et al., "LCLint: A Tool for Using Specifications to Check Code," Proc. ACM SIGSOFT, pp. 87-96, 1994.
[3] M.D. Ernst et al., "Dynamically Discovering Likely Program Invariants to Support Program Evolution," Proc. 21st Int'l Conf. Software Eng., pp. 213-224, 1999.
[4] D. Engler et al., "Bugs as Deviant Behavior: A General Approach to Inferring Errors in Systems Code," Proc. 18th ACM Symp. Operating Systems Principles, pp. 57-72, 2001.
[5] W. Gu et al., "Characterization of Linux Kernel Behavior under Errors," Proc. Int'l Conf. Dependable Systems and Networks, pp. 459-468, 2003.
[6] C. Basile et al., "Group Communication Protocols Under Errors," Proc. 22nd Int'l Symp. Reliable Distributed Systems, pp. 35-44, 2003.
[7] I. Lee and R.K. Iyer, "Software Dependability in the Tandem GUARDIAN System," IEEE Trans. Software Eng., vol. 21, no. 5, pp. 455-467, May 1995.
[8] D. Andrews, "Using Executable Assertions for Testing and Fault Tolerance," Proc. Ninth Fault-Tolerant Computing Symp., pp. 102-105, 1979.
[9] N.G. Leveson et al., "The Use of Self Checks and Voting in Software Error Detection: An Empirical Study," IEEE Trans. Software Eng., vol. 16, no. 4 pp. 432-443, Apr. 1990.
[10] M.Z. Rela et al., "Experimental Evaluation of the Fail-Silent Behaviour in Programs with Consistency Checks," Proc. Ann. Symp. Fault-Tolerant Computing, pp. 394-403, 1996.
[11] M. Hiller, "Executable Assertions for Detecting Data Errors in Embedded Control Systems," Proc. Int'l Conf. Dependable Systems and Networks, pp. 24-33, 2000.
[12] M. Hiller et al., "On the Placement of Software Mechanisms for Detection of Data Errors," Proc. Int'l Conf. Dependable Systems and Networks, pp. 135-144, 2002.
[13] K. Pattabiraman et al., "Dynamic Derivation of Application-Specific Error Detectors and Their Implementation in Hardware," Proc. Sixth European Dependable Computing Conf., pp. 97-108, 2006.
[14] K. Pattabiraman et al., "Application-Based Metrics for Strategic Placement of Detectors," Proc. Pacific Rim Int'l Symp. Dependable Computing, pp. 95-102, 2005.
[15] J. Ohlsson et al., "A Study of the Effects of Transient Fault Injection into a 32-Bit RISC with Built-In Watchdog," Proc. 22nd Int'l Symp. Fault-Tolerant Computing, pp. 316-325, 1992.
[16] N. Mehdizadeh et al., "Analyzing Fault Effects in the 32-Bit OpenRISC 1200 Microprocessor," Proc. Third Int'l Conf. Availability, Reliability and Security (ARES), pp. 648-652, 2008.
[17] J. Gray, "Why Do Computers Stop and What Can Be Done About It?" Proc. Symp. Reliable Distributed Systems, pp. 3-12, 1986.
[18] J. Voas, "Software Testability Measurement for Intelligent Assertion Placement," Software Quality Control, vol. 6, pp. 327-336, 1997.
[19] N. Nakka et al., "An Architectural Framework for Providing Reliability and Security Support," Proc. Int'l Conf. Dependable Systems and Networks, pp. 585-594, 2004.
[20] D.A. Patterson and J.L. Hennessy, Computer Architecture: A Quantitative Approach. Morgan Kaufmann Publishers, 1990.
[21] M. Hutchins et al., "Experiments of the Effectiveness of Dataflow- and Controlflow-Based Test Adequacy Criteria," Proc. 16th Int'l Conf. Software Eng., pp. 191-200, 1994.
[22] T. Austin et al., "SimpleScalar: An Infrastructure for Computer System Modeling," Computer, vol. 35, no. 2, pp. 59-67, Feb. 2002.
[23] N.J. Wang and S.J. Patel, "ReStore: Symptom-Based Soft Error Detection in Microprocessors," IEEE Trans. Dependable and Secure Computing, vol. 3, no. 3, pp. 188-201, July-Sept. 2006.
[24] G.C. Necula et al., "CCured: Type-Safe Retrofitting of Legacy Code," Proc. ACM SIGPLAN-SIGACT, pp. 128-139, 2002.
[25] S. Hangal and M.S. Lam, "Tracking Down Software Bugs Using Automatic Anomaly Detection," Proc. 24th Int'l Conf. Software Eng., pp. 291-301, 2002.
[26] R.A. Maxion and K.M. C. Tan, "Anomaly Detection in Embedded Systems," IEEE Trans. Computers, vol. 51, no. 2, pp. 108-120, Feb. 2002.
[27] M.V. Jeffrey and W.M. Keith, "The Avalanche Paradigm: An Experimental Software Programming Technique for Improving Fault-Tolerance," Proc. IEEE Symp. and Workshop Eng. of Computer Based Systems, 1996.
[28] P. Racunas et al., "Perturbation-Based Fault Screening," Proc. IEEE 13th Int'l Symp. High Performance Computer Architecture, 2007.
[29] M. Dimitrov and H. Zhou, "Unified Architectural Support for Soft-Error Protection or Software Bug Detection," Proc. 16th Int'l Conf. Parallel Architecture and Compilation Techniques, 2007.
[30] S. Sahoo et al., "Using Likely Program Invariants to Detect Hardware Errors," Proc. Int'l Conf. Dependable Systems and Networks (DSN), pp. 70-79, 2008.

Index Terms:
system monitoring,field programmable gate arrays,probability,reconfigurable hardware,application-specific error detectors,dynamic analysis,data errors,application execution,rule-based templates,probability model,fault-injection experiments,Detectors,Runtime,Fault detection,Computer crashes,Hardware,Error correction codes,Programming profession,Field programmable gate arrays,Protection,Registers,FPGA hardware.,Data errors,dynamic execution,likely invariants,critical variables
Citation:
K. Pattabiraman, G. P. Saggese, D. Chen, Z. Kalbarczyk, R. Iyer, "Automated Derivation of Application-Specific Error Detectors Using Dynamic Analysis," IEEE Transactions on Dependable and Secure Computing, vol. 8, no. 5, pp. 640-655, Sept.-Oct. 2011, doi:10.1109/TDSC.2010.19
Usage of this product signifies your acceptance of the Terms of Use.