Hello All,
I am using Cortex M0 based controller and want to know if the following issues can happen and what can be the possible solution by software to handle the issues:
1. ALU resulting wrong result run time.
2. Register access giving wrong results run time
3. Memory access (RAM or ROM) giving wrong results run time.
Thanks in advance!!
Hello Yasuhiko,
Can ECC mechanism handle register related issues also?
or only issues related to memory?
Thanks
Shashi
Hello Shashi,
if you have the architecture license, then it might be possible to implement ECC for registers. However, for such purpose, the triple structure F/Fs will be used. Probably it would be the normal implementation.
Best regards,
Yasuhiko Koumoto.
A Cortex M0 is pretty tiny and they tend to be built to a fairly conservative specification rather than pushing the limits so they are very reliable. You've got to measure what your requirements are and what is actually likely - for instance people are always drilling holes in walls - would that maybe destroy whatever it is. As to software solutions it sounds like you want something like double entry bookkeeping - eliminate most errors by using two processors doing the problem in completely different ways and see if the results match up. This has been done in bigger computers with fiber optics for the connections but people still code things in a similar way even in separate teams and make the same mistakes that way.
Something looking like EEC logic on small internal blocks like the registers is likely to add more gates than the size of the logic it is trying to monitor. Given the mostly likely cause of this type of random failure is either power supply glitches or a device on the threshold of being just within tolerance, any extra logic will be impacted too, and adding more logic is statistically likely to make the problem worse not better. "Failure monitoring" only really helps when it's monitoring quite big blocks ...