FlipSafe

Protecting Booleans against Soft Errors

Booleans represent the simplest and one of the most common data types. Although they are often critical, the traditional representation is ill-protected against transient faults, even though it already carries space overhead. Flipsafe is a C++ library of different Boolean types with improved fault tolerance and little performance overhead.

  • Download here
  • Usage
    #include <epbool>                // include Boolean type
    
    void control_app()
    {
      epbool<> secure = 0;           // changed variable declaration
      while (wait_for_input()) {
        if (is_button_pressed() && secure) {
          open_door();
        }
        else if (is_switch_pressed()) {
          secure = !secure;
        }
      }
    }
    
Using Flipsafe it is possible for Booleans with different degree of protection to coexist in one application; one can also freely experiment with Booleans of different fault-tolerance levels, even in existing applications, without compilation or compatibility problems.