Fault Tolerance

What Is Fault Tolerance?

Fault tolerance is a design property of systems that allows continued correct operation in the presence of one or more component faults. A fault-tolerant system detects failures, contains their effects, and maintains service within acceptable performance bounds rather than halting or producing incorrect outputs. The concept spans computing hardware and software, electrical power networks, mechanical systems, and communication infrastructure, and it is foundational to any application where unplanned downtime or incorrect behavior carries serious consequences.

Fault tolerance is closely related to, but distinct from, fault avoidance. Fault avoidance focuses on building components that do not fail; fault tolerance accepts that failures will occur and asks what the system must do to survive them. The two approaches complement each other in practice, and the required level of fault tolerance is typically determined by a system's dependability requirements and the cost of downtime.

Redundancy Techniques

Redundancy is the primary mechanism for achieving fault tolerance. Space redundancy, the most common form, adds duplicate or triplicate components so that when one fails, the others continue operating. Hardware redundancy techniques include dual modular redundancy (DMR), in which two identical units process the same input and their outputs are compared for discrepancies, and triple modular redundancy (TMR), in which three identical units vote and the majority result is accepted. NASA's Orion spacecraft uses TMR across its flight control modules, running multiple CPU instances in parallel so that a single hardware fault cannot disable the vehicle.

Software redundancy takes several forms: N-version programming executes independently coded versions of the same function in parallel and compares results; recovery blocks use an acceptability test to evaluate the primary routine's output and switch to an alternate version if the test fails. A survey on dependability in embedded systems published on arXiv documents how hardware, software, and information redundancy interact in resource-constrained real-time platforms, along with the trade-offs each technique imposes on power and performance budgets.

Fault Detection and Error Containment

Redundancy alone is insufficient unless the system can detect that a fault has occurred and confine its effects. Error detection codes, parity checks, cyclic redundancy checks, and checksums identify corrupted data before it propagates to other parts of a computation. Watchdog timers detect software livelock or hang by requiring the monitored software to reset a counter within a defined interval. Memory protection units partition address spaces so that a faulty process cannot corrupt the state of adjacent processes. These mechanisms are classified as fault isolation, the step that precedes fault recovery.

Research on fault-tolerant hardware designs and their reliability analyses surveys the relationship between detection latency, error containment radius, and overall system reliability, noting that a fault which is detected quickly but not contained can still propagate and cause a system-level failure.

Fault Tolerance in Power Systems

In electric power systems, fault tolerance expresses itself through redundant feeders, automatic reclosers, and sectionalizing switches that reroute load around a faulted section without interrupting service to unaffected customers. N-1 and N-2 contingency criteria, established by reliability standards including NERC reliability standards for transmission systems, require that the bulk power system remain operable after the loss of any single element, or in stricter categories, any two elements simultaneously. Fault-tolerant circuits in substations use redundant relay panels and duplicated protection buses to ensure that a protection system failure does not compound a primary fault.

Applications

Fault tolerance has applications in a wide range of fields, including:

  • Aerospace flight control computers and avionics systems
  • Nuclear power plant instrumentation and control systems
  • Cloud computing infrastructure, maintaining service availability across server failures
  • Medical devices such as implantable cardiac defibrillators and infusion pumps
  • Financial transaction processing systems requiring continuous operation
Loading…