This short paper describes a low cost technique for gaining software implemented fault tolerance without using design diversity based N versions redundancy in both software and hardware. The proposed approach uses an enhanced single-version programming (ESVP) scheme for an application that executes on a single machine. ESVP employs triplicate application program along with multistage voting at inputs and outputs in order to tolerate single-point operational faults in input data, output data, an individual processing module and in an individual voting module through error masking. It is not aimed to tolerate software design bugs. This is a useful tool for designing a reliable low-cost application system.
[This article is available as a PDF only. It originally appeared on Ubiquity, Volume 7, Issue 31 (August 15, 2006 - August 21, 2006).]