Self-checked computation using residue arithmetic

Abstract
Residue arithmetic offers a new approach to the development of general-purpose digital computers which detect and correct their own arithmetic and data-transmission errors. This approach is based on special properties inherent in a suitably chosen redundant residue number system (RRNS). In this paper, RRNS algorithms are described which can detect any number of residues in error, and can detect and correct one residue in error, in a data word suitable for scientific or control computation. Moreover, it is shown that there are RRNS algorithms available to perform all arithmetic operations needed in ordinary general-purpose computation. To this end, a new class of residue arithmetic techniques based on the properties of "macro-coefficients" is introduced, which permits all required fractional operations to be carried out and leads to a convenient form of the error-detection-and-correction procedures. The implications of these developments for ultra-reliable computer design are discussed, and the RRNS approach to computer ultrareliability is compared with several others which have been suggested; binary information with a residue check digit (BRCD), linear codes, and logic-circuit-level redundancy techniques such as majority voting.