Evaluating High-Level Program Invariants Using Reconfigurable Hardware

There is an increasing concern about transient errors in deep sub-micron processor architectures. Software-only error detection approaches that exploit program invariants for silent error detection incur large execution overheads and are unreliable as state can be corrupted after invariant check points. In this paper we explore the use of configurable hardware structures for the continuous evaluation of high-level program invariants at the assembly-level. We evaluate the resource requirements and performance of the proposed hardware structures on a contemporary reconfigurable hardware device. The results, for a small set of kernels codes, reveal that these hardware structures require a very small number of resources and are fairly insensitive to the complexity of the invariants thus making the proposed hardware approach an attractive alternative to software-only invariant checking by integrating them in traditional processor architectures.

[1]  Michael J. Wirthlin,et al.  FPGA partial reconfiguration via configuration scrubbing , 2009, 2009 International Conference on Field Programmable Logic and Applications.

[2]  Jacob A. Abraham,et al.  CEDA: Control-Flow Error Detection Using Assertions , 2011, IEEE Transactions on Computers.

[3]  David I. August,et al.  SWIFT: software implemented fault tolerance , 2005, International Symposium on Code Generation and Optimization.

[4]  Shubhendu S. Mukherjee,et al.  Transient fault detection via simultaneous multithreading , 2000, Proceedings of 27th International Symposium on Computer Architecture (IEEE Cat. No.RS00201).

[5]  Edward J. McCluskey,et al.  ED4I: Error Detection by Diverse Data and Duplicated Instructions , 2002, IEEE Trans. Computers.

[6]  Edward J. McCluskey,et al.  Permanent fault repair for FPGAs with limited redundant area , 2001, Proceedings 2001 IEEE International Symposium on Defect and Fault Tolerance in VLSI Systems.

[7]  Hong Lu,et al.  Automatic Processor Customization for Zero-Overhead Online Software Verification , 2008, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[8]  F. R. Palomo,et al.  A Novel Co-Design Approach for Soft Errors Mitigation in Embedded Systems , 2011, IEEE Transactions on Nuclear Science.

[9]  Luigi Carro,et al.  Designing and testing fault-tolerant techniques for SRAM-based FPGAs , 2004, CF '04.

[10]  K. Rustan M. Leino,et al.  Houdini, an Annotation Assistant for ESC/Java , 2001, FME.

[11]  José Nuno Oliveira,et al.  FME 2001: Formal Methods for Increasing Software Productivity , 2001, Lecture Notes in Computer Science.