 biresidue codes with two separate encoding levels provide error correction capability. The use of residue coding schemes for fault tolerance has received very limited application due to the requirement for pre-multiplying input variables, limited correction capabilities, and lack of capability for general computational operations. 6.4.2 Spatial and Temporal Redundancy 6.4.2.1 Spatial Redundancy Consider the use of modular redundancy depicted in Figure 6-13; this type of structure is termed static redundancy. The most common form of modular redundancy is triple modular redundancy (TMR), in which a fault in an individual module is corrected by the action of the voter through the majority consensus, or two-out-of-three, voting rules. The structure is not tolerant of faults in two or more modules or within the voter, and failure will result from such INPUT Voter OUTPUT occurrences. The modules depicted in Figure 6-13 may include basic functions such as a memory element, d-flip-flop, or latch, logic blocks such as state machines or highly complex logic functions, or complete processor, functional blocks, or subsystems. Figure 6-13. Triple Modular Redundant System The notion of modular redundancy can be extended to the general sense of n-modular redundancy (nMR) with associated enhancements to the fault tolerance capabilities and expense associated with their implementation. For instance, a quad redundant implementation utilizing four modules provides the ability to tolerate errors in two modules, if the voter has the capability to discern the characteristics or signatures of the failure and to provide a plurality vote capability. This capability allows the redundant structure to provide TMR type detection and correction in the presence of permanent or hard failure in one of the modules. Of course, if the second failure has identical properties to the initial event, in static redundancy the plurality voting will not be capable of resolving the condition and the scheme provides only error detection. However, if the vot