Skip to main content

Compiler assisted self-checking of structural integrity using return address hashing

  • Session 4 Fault Tolerant Design
  • Conference paper
  • First Online:
Dependable Computing — EDCC-2 (EDCC 1996)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1150))

Included in the following conference series:

  • 162 Accesses

Abstract

A software-based approach to control-flow checking is presented. The method uses the control flow graph of a program to construct a state machine which is embedded into the program using a modified GNU C-compiler. Using the return address register as the state variable of the FSM no data overhead occurs. Employing a Compiler for the embedding of the redundant code into the program permits the exploitation of delay slots and jump optimizations for modern RISC processors. The method is evaluated on a SPARC processor using software-implemented control-flow error injection and the SPECint92 benchmark suite. The average temporal overhead is below 20% and the errors violating the fail-silent model can be reduced by a factor of 6 down to 0.3%.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. A. V. Aho, R. Sethi and J. D. Ullman: “Compilers — Principles, Techniques, and Tools”, Addison-Wesley, 1986

    Google Scholar 

  2. J. Carreira, H. Madeira, and J. G. Silva: “Xception: Software Fault Injection and Monitoring in Processor Functional Units”, 5th Intern. Conference on Dependable Computing for Critical Applications, p. 135–149

    Google Scholar 

  3. Edward W. Czeck, Daniel P. Siewiorek: “Effects of Transient Gate-Level Faults on Program Behavior”, 20th International Symposium on Fault-Tolerant Computing, p. 236–243

    Google Scholar 

  4. Ulf Gunneflo, Johann Karlsson, Jan Torin: “Evaluation of Error Detection Schemes Using Fault Injection by Heavy-Ion Radiation”, 19th International Symposium on Fault-Tolerant Computing, p. 340–347

    Google Scholar 

  5. G. A. Kanawati, N. A. Kanawati, and J. A. Abraham: “FERRARI: A Tool for The Validation of System Dependability Properties”, 22th International Symposium on Fault-Tolerant Computing, p. 336–344

    Google Scholar 

  6. J.R.Kane and Stephen S.Yau: “Concurrent Software Fault Detection”, IEEE Transactions on Software Engineering SE 1(1): 87–99, March 1975

    Google Scholar 

  7. David Jun Lu: “Watchdog Processors and Structural Integrity Checking”, IEEE Transactions on Computers, C-31(7): 681–685, July 1982

    Google Scholar 

  8. E. Michel and W. Hohl: “Concurrent Error Detection Using Watchdog Processors in the Multiprocssor System MEMSY”, Fault Tolerant Computing Systems. Informatik Fachberichte 283, p. 54–64

    Google Scholar 

  9. G. Miremadi, J. Karlsson, U. Gunneflo, and J. Torin: “Two Software Techniques for On-line Error Detection”, 22th International Symposium on Fault-Tolerant Computing, p. 328–335

    Google Scholar 

  10. Aamer Mahmood and E.J. McCluskey: “Concurrent Error Detection Using Watchdog Processors — A Survey”, IEEE Transactions on Computers, C-37(2): 160–174, February 1988

    Google Scholar 

  11. Ghassem Miremadi and Jan Torin: “Effects of Physical Injection of Transient Faults on Control Flow and Evaluation of Some Software-Implemented Error Detection Techniques”, 4th International Conference on Dependable Computing for Critical Applications, p. 435–457

    Google Scholar 

  12. M. Namjoo: “Techniques for Concurrent Testing of VLSI Processor Operation”, 1982 International Test Conference, p.461–468

    Google Scholar 

  13. Volkmar Sieh and Joachim Hönig: “Software Based Concurrent Control Flow Checking”, Internal Report 10/95, IMMD III, University of Erlangen-Nürnberg, Dec.1995

    Google Scholar 

  14. Nirmal R. Saxena and Ed. J. McCluskey: “Control-Flow Checking Using Watchdog assists and extended-precision checksums”, 19th International Symposium on Fault-Tolerant Computing, p. 428–435

    Google Scholar 

  15. Michael A. Schuette and John P. Shen: “On-line self monitoring using signatured instruction streams”, 13th International Test Conference, p. 275–282

    Google Scholar 

  16. Michael A. Schuette and John P. Shen: “Exploiting Instruction-level Resource Parallelism for Transparent, Integrated Control-Flow Monitoring”, 21th International Symposium on Fault-Tolerant Computing, p. 318–325

    Google Scholar 

  17. M.A. Schuette, J.P. Shen, D.P. Siewiorek and Y.X. Zhu: “Experimental Evaluation of Two Concurrent Error Detection Schemes”, 16th International Symposium on Fault-Tolerant Computing, p. 138–143

    Google Scholar 

  18. Nancy J. Warter and Wen-Mei W. Hwu: “A Software Based Approach to Achieving Optimal Performance for Signature Control Flow Checking”, 20th International Symposium on Fault-Tolerant Computing, p. 442–449

    Google Scholar 

  19. Kent D. Wilken: “An Optimal Graph-Construction Approach to Placing Program Signatures for Signature Monitoring”, IEEE Transactions on Computers, C-42(11): 1372–1380, November 1993

    Google Scholar 

  20. Uwe Wildner: “Software Implemented Control Flow Error Injection” Tech. Report MPI-96-601, Max-Planck-Working Group on Fault Tolerant Computing, Jan. 1996, http://www.mpag-inf.uni-potsdam.de/reports/MPI-I-96-601.ps.gz

    Google Scholar 

  21. Kent Wilken and John Paul Shen: “Continuous Signature Monitoring: Low-Cost Concurrent Detection of Processor Control Errors”, IEEE Transactions on Computer-Aided Design of Integrated Circuits, 9(6):629–641, June 1990

    Google Scholar 

  22. Stephen. S. Yau an R. C. Cheung: “Design of Self-Checking Software”, International Conference on Reliable Software, March 1975

    Google Scholar 

  23. Stephen S. Yau and Fu-Chung Chen: “An Approach to Concurrent Control Flow Checking”, IEEE Transactions on Software Engineering SE 6(2): 126–137, March 1980

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Andrzej Hlawiczka João Gabriel Silva Luca Simoncini

Rights and permissions

Reprints and permissions

Copyright information

© 1996 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Wildner, U. (1996). Compiler assisted self-checking of structural integrity using return address hashing. In: Hlawiczka, A., Silva, J.G., Simoncini, L. (eds) Dependable Computing — EDCC-2. EDCC 1996. Lecture Notes in Computer Science, vol 1150. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-61772-8_36

Download citation

  • DOI: https://doi.org/10.1007/3-540-61772-8_36

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-61772-3

  • Online ISBN: 978-3-540-70677-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics