I want to ask, is there any application of the fault tolerance ability in microcontroller? I was a bit confused, will there be any fault when the microcontroller perform something if the input is right? if there is, what is the example of it? Sorry if the question is dumb.
-
1\$\begingroup\$ If you're asking "Is anything perfect?" then of course the answer is no. However, your question is not clear. Perhaps you can clarify with an example of the situation you have in mind. \$\endgroup\$– Roger RowlandCommented Nov 3, 2015 at 6:49
-
\$\begingroup\$ If not from an unexpected input, a fault could be introduced externally from a system glitch (a static charge, induced voltages from EM fields, etc.) In these cases a microcontroller might freeze up (stop counting) or enter an unexpected reset mode. In critical applications the design needs to guarantee a safe transition back to a known state. A watch-dog timer is one example of a safety item often included on a microcontroller. \$\endgroup\$– NeddCommented Nov 3, 2015 at 7:03
-
\$\begingroup\$ I think en.wikipedia.org/wiki/… should answer your questions. \$\endgroup\$– JimmyBCommented Nov 3, 2015 at 14:59
-
\$\begingroup\$ Thanks for the comment and your answer I think I understand a little about it, I ask this question because my friend get a task to use multiprocessing to apply fault tolerance and he ask me the question that i asked here. \$\endgroup\$– WindfalCommented Nov 15, 2015 at 22:12
1 Answer
Fault tolerance is important in situations where failure is not an option. It's not limited to making sure inputs are correct, but also that your current state does not spontaneously change.
For example, how sure do you want to be that your bank account doesn't spontaneously change value? Or the software controlling the plane you're riding in always working?
One of the more common fault tolerance devices is Error Correction Code memory. This protects against random bit flips which can happen in DRAM due to external effects such as radiation. As an extreme case, the Wiki article claims that the deep space satellite Cassini suffers on average 280 errors a day! It would be extremely poor planning if you lost a multi-billion dollar project due to any single one of these.
Another common case for fault tolerance is protection against (some) software bugs. There might be some rare situations where the software gets stuck in an infinite loop. In these cases a watchdog timer can be used to ensure that if this happens, then a soft reset is forced to try and recover from this fault case.
Fault tolerance is also being researched for application in extremely low power electronics. When transistors are run at very low voltages, they have an increased chance of not operating as intended. One idea is if your chip is able to deal with faults when they happen, you can take advantage of the power savings when things go right, and only pay the higher power cost when a fault occurs.