The Community for Technology Leaders
RSS Icon
Issue No.05 - September/October (2011 vol.8)
pp: 640-655
G. P. Saggese , Synopsys Inc., Mountain View, CA, USA
K. Pattabiraman , Dept. of Electr. & Comput. Eng., Univ. of British Columbia, Vancouver, BC, Canada
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.
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
G. P. Saggese, K. Pattabiraman, 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, September/October 2011, doi:10.1109/TDSC.2010.19
[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.
6 ms
(Ver 2.0)

Marketing Automation Platform Marketing Automation Tool