This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
CEDA: Control-Flow Error Detection Using Assertions
September 2011 (vol. 60 no. 9)
pp. 1233-1245
Ramtilak Vemu, University of Texas at Austin, Austin
Jacob A. Abraham, University of Texas at Austin, Austin
This paper presents an efficient software technique, control-flow error detection through assertions (CEDA), for online detection of control-flow errors. Extra instructions are automatically embedded into the program at compile time to continuously update runtime signatures and to compare them against preassigned values. The novel method of computing runtime signatures results in a huge reduction in the performance overhead, as well as the ability to deal with complex programs and the capability to detect subtle control-flow errors. The widely used C compiler, GCC, has been modified to implement CEDA, and the SPEC benchmark programs were used as the target to compare with earlier techniques. Fault injection experiments were used to demonstrate the effect of control-flow errors on software and to evaluate the fault detection capabilities of CEDA. Based on a new comparison metric, method efficiency, which takes into account both error coverage and performance overhead, CEDA is found to be much better than previously proposed methods.

[1] S.S. Mukherjee, C. Weaver, J. Emer, S.K. Reinhardt, and T. Austin, “A Systematic Methodology to Compute the Architectural Vulnerability Factors for a High-Performance Microprocessor,” MICRO-36: Proc. 36th Ann. IEEE/ACM Int'l Symp. Microarchitecture, p. 29, 2003.
[2] R.K. Iyer, N.M. Nakka, Z.T. Kalbarczyk, and S. Mitra, “Recent Advances and New Avenues in Hardware-Level Reliability Support,” IEEE Micro, vol. 25, no. 6, pp. 18-29, Nov./Dec. 2005.
[3] Fault-Tolerant Computer System Design, D.K. Pradhan, ed. Prentice-Hall, Inc., 1996.
[4] N. Oh and E.J. McCluskey, “Error Detection by Selective Procedure Call Duplication for Low Energy Consumption,” IEEE Trans. Reliability, vol. 51, no. 4, pp. 392-402, Dec. 2002.
[5] N. Oh, P.P. Shirvani, and E.J. McCluskey, “Control-Flow Checking by Software Signatures,” IEEE Trans. Reliability, vol. 51, no. 1, pp. 111-122, Mar. 2002.
[6] Z. Alkhalifa, V.S.S. Nair, N. Krishnamurthy, and J.A. Abraham, “Design and Evaluation of System-Level Checks for On-Line Control Flow Error Detection,” IEEE Trans. Parallel Distributed Systems, vol. 10, no. 6, pp. 627-641, June 1999.
[7] O. Goloubeva, M. Rebaudengo, M.S. Reorda, and M. Violante, “Soft-Error Detection Using Control Flow Assertions,” Proc. 18th IEEE Int'l Symp. Defect and Fault Tolerance in VLSI Systems, pp. 581-588, 2003.
[8] R. Venkatasubramanian, J.P. Hayes, and B.T. Murray, “Low-Cost On-Line Fault Detection Using Control Flow Assertions,” IOLTS '03: Proc. 12th IEEE Int'l On-Line Testing Symp., pp. 137-143, 2003.
[9] K.A. Hua, “Design of Systems with Concurrent Error Detection Using Software Redundancy,” PhD dissertation, Univ. of Illi nois, 1987.
[10] J. Ohlsson, M. Rimen, and U. Gunneflo, “A Study of the Effects of Transient Fault Injection into a 32-Bit Risc with Built-In Watchdog,” Proc. 22nd Int'l Symp. Fault Tolerant Computing, pp. 316-325, 1992.
[11] M.A. Schuette and J.P. Shen, “Processor Control Flow Monitoring Using Signatured Instruction Streams,” IEEE Trans. Computers, vol. 36, no. 3, pp. 264-276, Mar. 1987.
[12] J.L. Henning, “SPEC CPU2000: Measuring Cpu Performance in the New Millennium,” Computer, vol. 33, no. 7, pp. 28-35, 2000.
[13] N. Krishnamurthy, V. Jhaveri, and J.A. Abraham, “A Design Methodology for Software Fault Injection in Embedded Systems,” Proc. IFIP Int'l Workshop Dependable Computing and Its Applications (DCIA '98), pp. 237-248, Jan. 1998.
[14] Gnu Debugger, http://www.gnu.org/softwaregdb/, 2011.
[15] J. Dike, “A User-Mode Port of the Linux Kernel,” ALS '00: Proc. Fourth Ann. Linux Showcase and Conf., p. 7, 2000.
[16] M.R. Guthaus, J.S. Ringenberg, D. Ernst, T.M. Austin, T. Mudge, and R.B. Brown, “Mibench: A Free, Commercially Representative Embedded Benchmark Suite,” WWC '01: Proc. IEEE Int'l Workshop Workload Characterization, pp. 3-14, 2001.
[17] T.M. Austin, “DIVA: A Reliable Substrate for Deep Submicron Microarchitecture Design,” MICRO-32: Proc. 32nd Ann. ACM/IEEE Int'l Symp. Microarchitecture, pp. 196-207, 1999.
[18] A. Mahmood and E.J. McCluskey, “Concurrent Error Detection Using Watchdog Processors-A Survey,” IEEE Trans. Computers, vol. 37, no. 2, pp. 160-174, Feb. 1988.
[19] D.J. Lu, “Watchdog Processors and VLSI,” Proc. Nat'l Electronics Conf., vol. 34, pp. 240-245, 1980.
[20] D.J. Lu, “Watchdog Processor and Structural Integrity Checking,” IEEE Trans. Computers, vol. 31, no. 7, pp. 681-685, July 1982.
[21] A. Avizienis and J.P.J. Kelly, “Fault Tolerance by Design Diversity: Concepts and Experiments,” Computer, vol. 17, no. 8, pp. 67-80, 1984.
[22] R.G. Ragel and S. Parameswaran, “Hardware Assisted Pre-Emptive Control Flow Checking for Embedded Processors to Improve Reliability,” CODES+ISSS '06: Proc. Fourth Int'l Conf. Hardware/Software Codesign and System Synthesis, pp. 100-105, 2006.
[23] S. Bagchi, B. Srinivasan, K. Whisnant, Z. Kalbarczyk, and R.K. Iyer, “Hierarchical Error Detection in a Software Implemented Fault Tolerance (Sift) Environment,” IEEE Trans. Knowledge and Data Eng., vol. 12, no. 2, pp. 203-224, Mar./Apr. 2000.
[24] J. Ohlsson and M. Rimen, “Implicit Signature Checking,” FTCS '95: Proc. 25th Int'l Symp. Fault-Tolerant Computing, pp. 218-227, 1995.
[25] H. Madeira and J.G. Silva, “On-Line Signature Learning and Checking,” Proc. Dependable Computing for Critical Applications, pp. 395-420, 1992.

Index Terms:
Control-flow errors, error detection, fault tolerance, software-based detection.
Citation:
Ramtilak Vemu, Jacob A. Abraham, "CEDA: Control-Flow Error Detection Using Assertions," IEEE Transactions on Computers, vol. 60, no. 9, pp. 1233-1245, Sept. 2011, doi:10.1109/TC.2011.101
Usage of this product signifies your acceptance of the Terms of Use.