back using stack operations is indicated to provide multiple SEU tolerance, reduced hardware overhead, and minimal execution time penalty. 6.5.3 Detection Through Protocol, Timing and Data Checking Error correction without significant redundancy is difficult; however, several rather simple error detection schemes provide the ability to determine faulty system operation and to enable fault containment and other recovery provisions. The behavior of most sequential logic circuits and systems may be described by state machines and other interface protocols. Variation from expected protocol along interfaces provides effective fault detection with less impact than modular redundant structures. Detection of machine state validity and correctness of state transitions provides additional opportunity for error detection without significant overhead expense. Data values can be compared with predicted values, previous values, and other heuristic information as a means of error detection. Handshaking sequences between elements involved in data transfer may be monitored by either hardware or software functions to provide error detection. A simple detection provision is the time-out check such as the watchdog timer utilized in most embedded microprocessor applications. An event failing to occur within prescribed time limits is an indication of a fault condition. 6.5.4 System Recovery Provisions Achieving acceptable availability requires reducing the outage frequency, reducing the outage duration, and reducing the outage impact (reduce the number of users affected). Reducing outage frequency may be achieved through fault avoidance, fault masking, and fault tolerance provisions. Reducing the outage duration may be achieved through autonomous recovery, rapid ground support, diagnosis, and reconfiguration or recovery. Reducing the outage impact may be achieved through effective fault containment strategy. 6.5.4.1 Recovery Blocks The recovery block technique uses an acceptance test on the primary module or application result. If fou