Skip to main content
Log in

Time-Constraint-Aware Optimization of Assertions in Embedded Software

  • Published:
Journal of Electronic Testing Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Algorithm 1
Listing 1
Listing 2
Listing 3
Listing 4
Listing 5

Similar content being viewed by others

Notes

  1. 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.

  2. In real-time embedded systems, due to difficulties of obtaining reliable predictions, caching mechanisms are frequently disabled.

  3. The variance describes how far values lie from the mean.

References

  1. 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

  2. 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

    Article  Google Scholar 

  3. 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

  4. 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

  5. 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

    Article  Google Scholar 

  6. 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

  7. Baum CE (1992) From the electromagnetic pulse to high-power electromagnetics. Proc IEEE 80(6):789–817

    Article  Google Scholar 

  8. 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

  9. Baumann RC (2002) Soft errors in commercial semiconductor technology: overview and scaling trends. Proceedings of Reliability Physics Tutorial Notes, Reliability Fundamentals

  10. Baumann RC (2005) Radiation-induced soft errors in advanced semiconductor technologies. IEEE Transactions on Device and Materials Reliability, vol. 5, no. 3

  11. 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

  12. 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

  13. 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

    Article  Google Scholar 

  14. 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

  15. 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

    Article  Google Scholar 

  16. 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

  17. Fenlason J, Stallman R (1998) GNU GProf. GNU Free Software Foundation

  18. Gaiswinkler G, Gerstinger A (2009) Automated software diversity for hardware faul detection. Proceedings of IEEE Conference on Emerging Technologies and Factory Automation

  19. 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

  20. 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

  21. Goloubeva O, Rebaudengo M, Sonza Reorda M, Violante M (2006) Software-implemented hardware fault tolerance. Springer

  22. 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

  23. 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

  24. Huang KH, Abraham JA (1984) Algorithm-based fault tolerance for matrix operations. IEEE Trans Comput 33:518–528

    Article  MATH  Google Scholar 

  25. Intel Corporation (1997) Using the RDTSC instruction for performance monitoring. Technical report

  26. Koren I, Mani Krishna C (2007) Fault-tolerant systems. Elsevier

  27. Lantz L (1996) Soft errors induced by Alfa particles. IEEE Trans Reliab 45:175–179

    Article  Google Scholar 

  28. Levenson NG, Turner CS (1993) An investigation of the Therac-25 accidents. IEEE Comput 26(7):18–41

    Article  Google Scholar 

  29. Levon J, Elie P (2005) OProfile: a system profiler for Linux. Web site: oprofile.sourceforge.net

  30. 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

  31. Messenger G, Ash M (1986) The effects of radiation on electronic systems. Van Nostrand Reinhold Company Inc

  32. Nicolaidis M (ed) (2010) Soft errors in modern electronic systems. Springer

  33. Normand E (1996) Single event upset at ground level. IEEE Trans Nucl Sci 43(6):2742–2750

    Article  Google Scholar 

  34. Oh N, McCluskey EJ (2002) Error detection by selective procedure call duplication for low energy consumption. IEEE Trans Reliab 51(4):392–402

    Article  Google Scholar 

  35. Oh N, Mitra S, McCluskey EJ (2002) ED4I: error detection by diverse data and duplication instructions. IEEE Trans Comput 51:180–199

    Article  Google Scholar 

  36. Oh N, Shirvani PP, McCluskey EJ (2002) Error detection by duplicated instructions in superscalar processors. IEEE Trans Reliab 51(1):63–75

    Article  Google Scholar 

  37. Oh N, Shirvani PP, McCluskey EJ (2002) Control-flow checking by software signatures. IEEE Trans Reliab 51(2):111–122

    Article  Google Scholar 

  38. Omana M, Rossi D, Metra C (2004) Latch susceptibility to transient faults and new hardening approach. IEEE Trans Comput 56:1255–1268

    Article  MathSciNet  Google Scholar 

  39. OpenCores (8b10b) Encoder/Decoder. www.opencores.org

  40. 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

  41. 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

  42. Pradhan DK (ed) (1986) Fault-tolerant computing: theory and techniques. Prentice-Hall

  43. Pradhan DK (1996) Fault-tolerant computer system design. Prentice Hall PTR

  44. 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

  45. 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

  46. 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

  47. 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

  48. Reinhardt SK, Mukherjee SS (2000) Transient fault detection via simultaneous multithreading. Proceedings of International Symposium on Computer Architecture, pp 25–36

  49. 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

  50. 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

  51. Rotenberg E (1999) AR-SMT: a michroarchitecture approach to fault tolerance in microprocessors. Proceedings of International Symposium on Fault-Tolerant Computing, pp 84–91

  52. Sangiovanni Vincentelli A, Di Natale M (2007) Embedded system design for automotive applications. Proc Comput 40(10):42–51

    Google Scholar 

  53. Software-artifact Infrastructure Repository. Traffic-Collision-Advoidance system (TCAS). sir.unl.edu

  54. 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

  55. Vemu R, Abraham JA (2006) CEDA: control-flow error detection through assertions. Proceedings of IEEE International On-Line Testing Symposium

  56. Voas JM, Miller KW (1994) Putting assertions in their place. Proceedings of International Symposium on Software Reliability Engineering, pp 152–157

  57. 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)

  58. 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

    Google Scholar 

  59. Yau S, Chen F (1980) An approach to concurrent control flow checking. IEEE Trans Softw Eng SE-6(2):126–137

    Article  MathSciNet  Google Scholar 

  60. Yeh Y (1996) Triple-triple redundant 777 primary flight computer. Proc IEEE Aero Appl Conf 1:293–307

    Article  Google Scholar 

  61. Yin H, Bieman JM (1994) Improving software testability with assertion insertion. Proceedings of International Test Conference, pp 831–839

  62. 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

  63. Ziegler JF et al (1996) IBM experiments in soft fails in computer electronics (1978–1994). IBM J Res Dev 40(1):3–18

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Giuseppe Di Guglielmo.

Additional information

Responsible Editor: C. Metra

Rights and permissions

Reprints 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

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10836-012-5316-1

Keywords

Navigation