Quick question about EEPROM read performance over write/erase lifecyle..

This question is a bit generic - as it can apply to any EEPROMs - like the ones in iPhones - etc, not just Arduino, but the question is regarding the wear phenomenon that happens with it as with all other non-volatile memory - with the actual performance/speed.

If I understand correctly - the general thing that happens is when EEPROMs are write/erased after many cycles - the oxide gate begins to deteriorate - rendering more and more parts of the EEPROM unusable.

My question in particular is regarding the read performance of the EEPROM. From what I read so far - even if the oxide gate slowly meteorites - as long as its still "readable", the read performance is NOT affected at all throughout the life of the EEPROM.

Basically from this - it is why people generally don't think of performance issues reading their EEPROM when updating they constantly update the EEPROM NOR firmware in their computer BIOS or iPhone or other devices - because that whole issue is irrelevant.

Correct me if I'm wrong guys...

Prexo: This question is a bit generic - as it can apply to any EEPROMs - like the ones in iPhones - etc, not just Arduino, but the question is regarding the wear phenomenon that happens with it as with all other non-volatile memory - with the actual performance/speed.

If I understand correctly - the general thing that happens is when EEPROMs are write/erased after many cycles - the oxide gate begins to deteriorate - rendering more and more parts of the EEPROM unusable.

My question in particular is regarding the read performance of the EEPROM. From what I read so far - even if the oxide gate slowly meteorites - as long as its still "readable", the read performance is NOT affected at all throughout the life of the EEPROM.

Basically from this - it is why people generally don't think of performance issues reading their EEPROM when updating they constantly update the EEPROM NOR firmware in their computer BIOS or iPhone or other devices - because that whole issue is irrelevant.

Correct me if I'm wrong guys...

Most Flash device use electron tunneling. Here is a good treatise on the Semiconductor failure from Panasonic

check out section 3.2.5 on Page 17.

Chuck.

chucktodd: Most Flash device use electron tunneling. Here is a good treatise on the Semiconductor failure from Panasonic

check out section 3.2.5 on Page 17.

Chuck.

Very enlightening article Chuck - thanks.

However - it still does not answer the question regarding the read performance over time. From what I read - there will definitely be a "threshold" when a failure will occur from the read of a EEPROM - after many write/erase cycles. However - until that threshold is met - does the read performance really get affected or does it stay pretty much unaffected till the "failure point"?

Basically - it something similar to this test - http://hackaday.com/2011/05/16/destroying-an-arduinos-eeprom/ - except in this test - they kept didn't so much as look at read-performance - as when the first "failure" occurred...

Prexo: Very enlightening article Chuck - thanks.

However - it still does not answer the question regarding the read performance over time. From what I read - there will definitely be a "threshold" when a failure will occur from the read of a EEPROM - after many write/erase cycles. However - until that threshold is met - does the read performance really get affected or does it stay pretty much unaffected till the "failure point"?

Basically - it something similar to this test - http://hackaday.com/2011/05/16/destroying-an-arduinos-eeprom/ - except in this test - they kept didn't so much as look at read-performance - as when the first "failure" occurred...

When you say performance, do you mean speed? Or do you mean accuracy?

If you mean speed, then, performance is constant. The value read does not effect the speed of the reading.

If you mean accuracy, then, performace is a failure when the charge decays. It will return a value, but that value is incorrect. I have not seen any flash with ECC (Error Correction Coding) hardware built in. If the Flash had ECC, then you would see a performance hit when the hardware detected a CRC error and attempted the correction.

Chuck.

chucktodd: When you say performance, do you mean speed? Or do you mean accuracy?

If you mean speed, then, performance is constant. The value read does not effect the speed of the reading.

If you mean accuracy, then, performace is a failure when the charge decays. It will return a value, but that value is incorrect. I have not seen any flash with ECC (Error Correction Coding) hardware built in. If the Flash had ECC, then you would see a performance hit when the hardware detected a CRC error and attempted the correction.

Chuck.

Sorry for the confusion - yes I meant "performance" as in speed.

And my focus is on NOR EEPROMs like the ones used in iPhone firmware and computer BIOSes.

From what I gather then - the read speed of these NOR EEPROMs will remain constant all the way until it fails.

And from what I read (and what you posted) it doesn't seem any of these NOR EEPROMs used for firmware/BIOS functions - even have ECC hardware capabilities - so there definitely is no speed degradation over time (and if it fails - it just fails / plain and simple).

Prexo: Sorry for the confusion - yes I meant "performance" as in speed.

And my focus is on NOR EEPROMs like the ones used in iPhone firmware and computer BIOSes.

From what I gather then - the read speed of these NOR EEPROMs will remain constant all the way until it fails.

And from what I read (and what you posted) it doesn't seem any of these NOR EEPROMs used for firmware/BIOS functions - even have ECC hardware capabilities - so there definitely is no speed degradation over time (and if it fails - it just fails / plain and simple).

Yep, I agree. It works or it fails. It never slow's down.

chuck.