Hi group, I am asked to rewrite a stable-storage scheme on a Motorola HC12 (in its' 4K EEPROM). The module momentarily in use does an array of small (16 byte) records, each with a checksum and a 1-bit correction code. The fixed sized records are ok (to avoid fragmentation) but I highly doubt that a 1-bit correction will win anything with respect to faulty data in an electrical r/w memory. Which are the most common cases of corrupted data in the presence of the following 3 error sources?
- data loss due to wear stress: at the end of the lifetime, errors due to this will increase, but will they come bit by bit? How reliable will a cell be after it showed its' first error? Better to avoid it after that?
- data loss due to power down while erasing/writing: I think that whole words of memory will come out wrong in that case, hardly ever a single bit alone.
- wrong data due to spikes on data/address lines: this sounds like the most probable source of 1-bit errors but will be less of a problem for single-chippers like the HC12. Any hints on that?
I am under the impression that for errors of the kind that will show up in an EEPROM you will have to invest a considerable amount of error correcting bits if you want to catch a significant percentage of them. I will duly stand corrected in case someone has the expertise...
regards, Mark
PS: the persistent memory will of course not rely on the correction code but rather on the right storage strategy; the correction should only offer a higher access probability for the "youngest" data.
-- Mark Piffer MCU and DSP programming & software design