Katana VentraIP

Triple modular redundancy

In computing, triple modular redundancy, sometimes called triple-mode redundancy,[1] (TMR) is a fault-tolerant form of N-modular redundancy, in which three systems perform a process and that result is processed by a majority-voting system to produce a single output. If any one of the three systems fails, the other two systems can correct and mask the fault.

For other uses of "TMR", see TMR (disambiguation).

The TMR concept can be applied to many forms of redundancy, such as software redundancy in the form of N-version programming, and is commonly found in fault-tolerant computer systems.


Space satellite systems often use TMR,[2][3] although satellite RAM usually uses Hamming error correction.[4]


Some ECC memory uses triple modular redundancy hardware (rather than the more common Hamming code), because triple modular redundancy hardware is faster than Hamming error correction hardware.[5] Called repetition code, some communication systems use N-modular redundancy as a simple form of forward error correction. For example, 5-modular redundancy communication systems (such as FlexRay) use the majority of 5 samples – if any 2 of the 5 results are erroneous, the other 3 results can correct and mask the fault.


Modular redundancy is a basic concept, dating to antiquity, while the first use of TMR in a computer was the Czechoslovak computer SAPO, in the 1950s.

General case[edit]

The general case of TMR is called N-modular redundancy, in which any positive number of replications of the same action is used. The number is typically taken to be at least three, so that error correction by majority vote can take place; it is also usually taken to be odd, so that no ties may happen.[6]

Chronometers[edit]

To use triple modular redundancy, a ship must have at least three chronometers; two chronometers provided dual modular redundancy, allowing a backup if one should cease to work, but not allowing any error correction if the two displayed a different time, since in case of contradiction between the two chronometers, it would be impossible to know which one was wrong (the error detection obtained would be the same of having only one chronometer and checking it periodically). Three chronometers provided triple modular redundancy, allowing error correction if one of the three was wrong, so the pilot would take the average of the two with closer reading (vote for average precision).


There is an old adage to this effect, stating: "Never go to sea with two chronometers; take one or three."[12]


Mainly this means that if two chronometers contradict, how do you know which one is correct? At one time this observation or rule was an expensive one as the cost of three sufficiently accurate chronometers was more than the cost of many types of smaller merchant vessels.[13] Some vessels carried more than three chronometers – for example, HMS Beagle carried 22 chronometers.[14] However, such a large number was usually only carried on ships undertaking survey work as was the case with the Beagle.


In the modern era, ships at sea use GNSS navigation receivers (with GPS, GLONASS & WAAS etc. support) – mostly running with WAAS or EGNOS support so as to provide accurate time (and location).

In 's science fiction novel Rendezvous with Rama, the Ramans make heavy use of triple redundancy.

Arthur C. Clarke

In the popular anime , the Magi are a set of three biological supercomputers that must agree with a 2/3 majority vote before delivering a decision.

Neon Genesis Evangelion

In the film , 3 "precogs" are used to predict impending homicides, using a triple modular redundancy. In the plot, this system fails, causing a false positive: an innocent man is wrongly accused of murder.

Minority Report

Fault tolerant system

Lockstep (computing)

Segal's law

with reference to TMR usage in avionics and industry

Article about TMR

Johnson, J. M., & Wirthlin, M. J. (2010, February). In Proceedings of the 18th annual ACM/SIGDA international symposium on Field programmable gate arrays (pp. 249–258). ACM.

Voter insertion algorithms for FPGA designs using triple modular redundancy.