Abstract
Technology shrinking and sensitization have led to more and more transient faults in embedded systems. Transient faults are intermittent and non-predictable faults caused by external events, such as energetic particles striking the circuits. These faults do not cause permanent damages, but may affect the running applications. One way to ensure the correct execution of these embedded applications is to keep debugging and testing even after shipping of the systems, complemented with recovery/restart options. In this context, the executable assertions that have been widely used in the development process for design validation can be deployed again in the final product. In this way, the application will use the assertion to monitor itself under the actual execution and will not allow erroneous out-of-the-specification behavior to manifest themselves. This kind of software-level fault tolerance may represent a viable solution to the problem of developing commercial off-the-shelf embedded systems with dependability requirements. But software-level fault tolerance comes at a computational cost, which may affect time-constrained applications. Thus, the executable assertions shall be introduced at the best possible points in the application code, in order to satisfy timing constraints, and to maximize the error detection efficiency. We present an approach for optimization of executable assertion placement in time-constrained embedded applications for the detection of transient faults. In this work, assertions have different characteristics such as tightness, i.e., error coverage, and performance degradation. Taking into account these properties, we have developed an optimization methodology, which identifies candidate locations for assertions and selects a set of optimal assertions with the highest tightness at the lowest performance degradation. The set of selected assertions is guaranteed to respect the real-time deadlines of the embedded application. Experimental results have shown the effectiveness of the proposed approach, which provides the designer with a flexible infrastructure for the analysis of time-constrained embedded applications and transient-fault-oriented executable assertions.
Similar content being viewed by others
Notes
Note that these and the other values in the example are presented here for illustrative purposes only, i.e., in order to illustrate decision-making in the assertion placement process in the reader-friendly fashion.
In real-time embedded systems, due to difficulties of obtaining reliable predictions, caching mechanisms are frequently disabled.
The variance describes how far values lie from the mean.
References
Aidemark J, Vinter J, Folkesson P, Karlsson J (2001) GOOFI: generic object-oriented fault injection tool. Proceedings of International Conference on Dependable Systems and Networks, pp 83–88
Alkhalifa Z, Nair VSS, Krishnamurthy N, Abraham JA (1999) Design and evaluation of system-level checks for on-line control flow error detection. IEEE Trans Parallel Distr Syst 10(6):627–641
Ando H, Yoshida Y, Inoue A, Sugiyama I, Asakawa T, Morita K, Muta T, Motokurumada T, Okada S, Yamashita H, Satsukawa Y, Konmoto A, Yamashita R, Sugiyama H (2003) A 1.3 GHz fifth generation SPARC64 Microprocessor. Proceedings of International Solid-State Circuits Conference
Austin TM (1999) DIVA: a reliable substrate for deep submicron microarchitecture design. Proceedings ACM/IEEE International Symposium on Microarchitecture. IEEE Computer Society, pp 196–207
Ayav T, Fradet P, Girault A (2008) Implementing fault-tolerance in real-time programs by automatic program transformations. ACM Trans Embed Comput Syst 7(4):1–43
Baleani M, Ferrari A, Mangeruca L, Sangiovanni Vincentelli A, Peri M, Pezzini S (2003) Fault-tolerant platforms for automotive safety-critical applications. Proceedings of International Conference on Compilers, Architecture and Synthesis for Embedded Systems, pp 170–177
Baum CE (1992) From the electromagnetic pulse to high-power electromagnetics. Proc IEEE 80(6):789–817
Baumann RC (2001) Soft errors in advanced semiconductor devices—part I: the three radiation sources. Device and Materials Reliability, IEEE Transactions, vol. 1, no. 1
Baumann RC (2002) Soft errors in commercial semiconductor technology: overview and scaling trends. Proceedings of Reliability Physics Tutorial Notes, Reliability Fundamentals
Baumann RC (2005) Radiation-induced soft errors in advanced semiconductor technologies. IEEE Transactions on Device and Materials Reliability, vol. 5, no. 3
Benso A, Chiusano S, Prinetto P, Tagliaferri L (2000) A C/C++ source-to-source compiler for dependable applications. Proceedings of IEEE International Conference on Dependable Systems and Networks, pp 71–78
Bombieri N, Di Guglielmo G, Fummi F, Pravadelli G, Ferrari M, Stefanni F and Venturelli A (2010) HIFSuite: tools for HDL code conversion and manipulation. EURASIP Journal on Embedded Systems, vol. 2010
Cheynet P, Nicolescu B, Velazco R, Rebaudengo M, Sonza Reorda M, Violante M (2000) Experimentally evaluating an automatic approach for generating safety-critical software with respect to transient errors. IEEE Trans Nucl Sci 47(6):2231–2236
Corno F, Reorda M, Squillero G (2000) RT-Level ITC99 Benchmarks and First ATPG Result. IEEE Design & Test of Computers, pp 44–53, July–August
Eles P, Peng Z, Pop P, Doboli A (2000) Scheduling with bus access optimization for distributed embedded systems. IEEE Trans VLSI Syst 8(5):472–491
Engel H (1997) Data flow transformations to detect results which are corrupted by hardware faults. Proceedings of IEEE High-Assurance System Engineering Workshop, pp 279–285
Fenlason J, Stallman R (1998) GNU GProf. GNU Free Software Foundation
Gaiswinkler G, Gerstinger A (2009) Automated software diversity for hardware faul detection. Proceedings of IEEE Conference on Emerging Technologies and Factory Automation
Gill B, Seifert N, Zia V (2009) Comparison of alpha-particle and neutron-induced combinational and sequential logic rates at the 32 nm technology node. Proceedings of IEEE International Reliability Physics Symposium, pp 199–205
Goloubeva O, Rebaudengo M, Sonza Reorda M, Violante M (2003) Soft-error detection using control flow assertions. Proceedings of IEEE International Symposium on Defect and Fault Tolerance in VLSI Systems, pp 581–588
Goloubeva O, Rebaudengo M, Sonza Reorda M, Violante M (2006) Software-implemented hardware fault tolerance. Springer
Hiller M (2000) Executable assertions for detecting data errors in embedded control systems. Proceedings of International Conference on Dependable Systems and Networks, pp 24–33
Hiller M, Jhumka A, Suri N (2002) On the placement of software mechanisms for detection of data errors. Proceedings of International Conference on Dependable Systems and Networks, pp 135–144
Huang KH, Abraham JA (1984) Algorithm-based fault tolerance for matrix operations. IEEE Trans Comput 33:518–528
Intel Corporation (1997) Using the RDTSC instruction for performance monitoring. Technical report
Koren I, Mani Krishna C (2007) Fault-tolerant systems. Elsevier
Lantz L (1996) Soft errors induced by Alfa particles. IEEE Trans Reliab 45:175–179
Levenson NG, Turner CS (1993) An investigation of the Therac-25 accidents. IEEE Comput 26(7):18–41
Levon J, Elie P (2005) OProfile: a system profiler for Linux. Web site: oprofile.sourceforge.net
Lu Y, Nolte T, Kraft J, Norstrom C (2010) Statistical-based response-time analysis of systems with execution dependencies between tasks. Proceedings of IEEE International Conference on Engineering of Complex Computer Systems, pp 169–179
Messenger G, Ash M (1986) The effects of radiation on electronic systems. Van Nostrand Reinhold Company Inc
Nicolaidis M (ed) (2010) Soft errors in modern electronic systems. Springer
Normand E (1996) Single event upset at ground level. IEEE Trans Nucl Sci 43(6):2742–2750
Oh N, McCluskey EJ (2002) Error detection by selective procedure call duplication for low energy consumption. IEEE Trans Reliab 51(4):392–402
Oh N, Mitra S, McCluskey EJ (2002) ED4I: error detection by diverse data and duplication instructions. IEEE Trans Comput 51:180–199
Oh N, Shirvani PP, McCluskey EJ (2002) Error detection by duplicated instructions in superscalar processors. IEEE Trans Reliab 51(1):63–75
Oh N, Shirvani PP, McCluskey EJ (2002) Control-flow checking by software signatures. IEEE Trans Reliab 51(2):111–122
Omana M, Rossi D, Metra C (2004) Latch susceptibility to transient faults and new hardening approach. IEEE Trans Comput 56:1255–1268
OpenCores (8b10b) Encoder/Decoder. www.opencores.org
Peti P, Obermaisser R, Kopetz H (2005) Out-of-norm assertions. Proceedings of IEEE Real-Time and Embedded Technology and Applications Symposium, pp 209–223
Piotrowski A, Makowski D, Jablonski G, Napieralski A (2008) The automatic implementation of software implemented hardware fault tolerance algorithms as a radiation-induced soft errors mitigation technique. Proceedings of IEEE Nuclear Science Symposium Conference Record, pp 841–846
Pradhan DK (ed) (1986) Fault-tolerant computing: theory and techniques. Prentice-Hall
Pradhan DK (1996) Fault-tolerant computer system design. Prentice Hall PTR
Rashid F, Saluja KK, Ramanathan P (2000) Fault tolerance through re-execution in multiscalar architectures. Proceedings of International Conference on Dependable Systems and Networks, pp 482–491
Rebaudengo M, Sonza Reorda M, Torchiano M, Violante M (1999) Soft-error detection through software fault-tolerance techniques. Proceedings of International Symposium on Defect and Fault Tolerance in VLSI Systems, pp 210–218
Rebaudengo M, Sonza Reorda M, Torchiano M, Violante M (1999) Soft-error detection through software fault-tolerance techniques. Proceedings of IEEE International Symposium on Defect and Fault Tolerance in VLSI Systems, pp 210–218
Rebaudengo M, Sonza Reorda M, Torchiano M, Violante M (2001) A source-to-source compiler for generating dependable software. Proceedings of IEEE International Workshop on Source Code Analysis and Manipulation, pp 33–42
Reinhardt SK, Mukherjee SS (2000) Transient fault detection via simultaneous multithreading. Proceedings of International Symposium on Computer Architecture, pp 25–36
Reis GA, Chang J, Vachharajani N, Rangan R, August DI (2005) SWIFT: software implemented fault tolerance. Proceedings of International Symposium on Code Generation and Optimization, pp 243–254
Rossi D, Omana M, Metra C (2010) Transient fault and soft error on-die monitoring scheme. Proceedings of International Symposium on Defect and Fault Tolerance in VLSI Systems, pp 391–398
Rotenberg E (1999) AR-SMT: a michroarchitecture approach to fault tolerance in microprocessors. Proceedings of International Symposium on Fault-Tolerant Computing, pp 84–91
Sangiovanni Vincentelli A, Di Natale M (2007) Embedded system design for automotive applications. Proc Comput 40(10):42–51
Software-artifact Infrastructure Repository. Traffic-Collision-Advoidance system (TCAS). sir.unl.edu
Sohi G, Franklin M, Saluja K (1989) A study of time-redundant fault tolerance techniques for high-performance pipelined computers. Proceedings of International Symposium on Fault Tolerant Computing, pp 463–443
Vemu R, Abraham JA (2006) CEDA: control-flow error detection through assertions. Proceedings of IEEE International On-Line Testing Symposium
Voas JM, Miller KW (1994) Putting assertions in their place. Proceedings of International Symposium on Software Reliability Engineering, pp 152–157
Wilhelm R, Engblom J, Ermedahl A, Holsti N, Thesing S, Whalley D, Bernat G, Ferdinand R, Heckmann C, Mueller F, Puuat I, Puschner P, Staschulat J, Stenström P (2008) The worst-case execution-time problem—overview of methods and survey of tools. ACM Trans Embed Comput Syst 7(3)
Wood KS, Fritz G, Hertz P, Johnson WN, Lovelette MN, Wolff MT, Bloom E, Godfrey G, Hanson J, Michelson P, Taylor R, Wen H (1994) The USA experiment on the ARGOS satellite: a low cost instrument for timing x-ray binaries. Proc EUV, X-Ray, and Gamma-Ray Instrum Astron 2280:19–30
Yau S, Chen F (1980) An approach to concurrent control flow checking. IEEE Trans Softw Eng SE-6(2):126–137
Yeh Y (1996) Triple-triple redundant 777 primary flight computer. Proc IEEE Aero Appl Conf 1:293–307
Yin H, Bieman JM (1994) Improving software testability with assertion insertion. Proceedings of International Test Conference, pp 831–839
Zenha Rela M, Madeira H, Silva JG (1996) Experimental evaluation of the fail-silent behavior in programs with consistency checks. Proceedings of Symposium on Fault Tolerant Computing, pp 394–403
Ziegler JF et al (1996) IBM experiments in soft fails in computer electronics (1978–1994). IBM J Res Dev 40(1):3–18
Author information
Authors and Affiliations
Corresponding author
Additional information
Responsible Editor: C. Metra
Rights and permissions
About this article
Cite this article
Izosimov, V., Di Guglielmo, G., Lora, M. et al. Time-Constraint-Aware Optimization of Assertions in Embedded Software. J Electron Test 28, 469–486 (2012). https://doi.org/10.1007/s10836-012-5316-1
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10836-012-5316-1