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%.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
A. V. Aho, R. Sethi and J. D. Ullman: “Compilers — Principles, Techniques, and Tools”, Addison-Wesley, 1986
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
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
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
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
J.R.Kane and Stephen S.Yau: “Concurrent Software Fault Detection”, IEEE Transactions on Software Engineering SE 1(1): 87–99, March 1975
David Jun Lu: “Watchdog Processors and Structural Integrity Checking”, IEEE Transactions on Computers, C-31(7): 681–685, July 1982
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
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
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
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
M. Namjoo: “Techniques for Concurrent Testing of VLSI Processor Operation”, 1982 International Test Conference, p.461–468
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
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
Michael A. Schuette and John P. Shen: “On-line self monitoring using signatured instruction streams”, 13th International Test Conference, p. 275–282
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
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
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
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
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
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
Stephen. S. Yau an R. C. Cheung: “Design of Self-Checking Software”, International Conference on Reliable Software, March 1975
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
Author information
Authors and Affiliations
Editor information
Rights 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