A Study of the Impact of Bit-Flip Errors on Programs Compiled with Different Optimization Levels

In this paper we study the impact of compiler optimizations on the error sensitivity of twelve benchmark programs. We conducted extensive fault injection experiments where bit-flip errors were injected in instruction set architecture registers and main memory locations. The results show that the percentage of silent data corruptions (SDCs) in the output of the optimized programs is only marginally higher compare to that observed for the non-optimized programs. This suggests that compiler optimizations can be used in safety- and mission-critical systems without increasing the risk that the system produces undetected erroneous outputs. In addition, we investigate to what extent the source code implementation of a program affects the error sensitivity of a program. To this end, we perform experiments with five implementations of a bit count algorithm. In this investigation, we consider the impact of the implementation as well as compiler optimizations. The results of these experiments give valuable insights into how compiler optimizations can be used to reduce error sensitive of registers and main memory sections. They also show how sensitive locations requiring additional protection, e.g., by the use of software-based fault tolerance techniques, can be identified.

[1]  Pedro J. Gil,et al.  Non-intrusive Software-Implemented Fault Injection in Embedded Systems , 2003, LADC.

[2]  Roger Johansson,et al.  On the Impact of Hardware Faults - An Investigation of the Relationship between Workload Inputs and Failure Mode Distributions , 2012, SAFECOMP.

[3]  T. May,et al.  Alpha-particle-induced soft errors in dynamic memories , 1979, IEEE Transactions on Electron Devices.

[4]  Johan Karlsson,et al.  GOOFI-2: A tool for experimental dependability assessment , 2010, 2010 IEEE/IFIP International Conference on Dependable Systems & Networks (DSN).

[5]  Christos Strydis,et al.  Compatibility Study of Compile-Time Optimizations for Power and Reliability , 2011, 2011 14th Euromicro Conference on Digital System Design.

[6]  David R. Kaeli,et al.  Eliminating microarchitectural dependency from Architectural Vulnerability , 2009, 2009 IEEE 15th International Symposium on High Performance Computer Architecture.

[7]  Mary W. Hall,et al.  Analyzing the effects of compiler optimizations on application reliability , 2011, 2011 IEEE International Symposium on Workload Characterization (IISWC).

[8]  Roger Johansson,et al.  A Study of the Impact of Single Bit-Flip and Double Bit-Flip Errors on Program Execution , 2013, SAFECOMP.

[9]  Daniel P. Siewiorek,et al.  FIAT-fault injection based automated testing environment , 1988, [1988] The Eighteenth International Symposium on Fault-Tolerant Computing. Digest of Papers.

[10]  Michael F. P. O'Boyle,et al.  Evaluating the Effects of Compiler Optimisations on AVF , 2008 .

[11]  Gustavo Ribeiro Alves,et al.  Real Time Fault Injection Using Enhanced OCD -- A Performance Analysis , 2006, 2006 21st IEEE International Symposium on Defect and Fault Tolerance in VLSI Systems.

[12]  Jacob A. Abraham,et al.  FERRARI: a tool for the validation of system dependability properties , 1992, [1992] Digest of Papers. FTCS-22: The Twenty-Second International Symposium on Fault-Tolerant Computing.

[13]  Johan Karlsson,et al.  Assembly-Level Pre-injection Analysis for Improving Fault Injection Efficiency , 2005, EDCC.

[14]  Henrique Madeira,et al.  RIFLE: A General Purpose Pin-level Fault Injector , 1994, EDCC.

[15]  Johan Karlsson,et al.  Fault injection‐based assessment of aspect‐oriented fault tolerance , 2010 .

[16]  Johan Karlsson,et al.  Fault injection-based assessment of aspect-oriented implementation of fault tolerance , 2011, 2011 IEEE/IFIP 41st International Conference on Dependable Systems & Networks (DSN).

[17]  Vassilios A. Chouliaras,et al.  Study of the Effects of SEU-Induced Faults on a Pipeline Protected Microprocessor , 2007, IEEE Transactions on Computers.