SparkFun Forums 

Where electronics enthusiasts find answers.

Have questions about a SparkFun product or board? This is the place to be.
User avatar
By roach
#21236
I've read in numerous threads and specs and whatnot that NAND flash (such as is found in an SD card) is susceptible to "erosion" over time, and has a limited lifetime, measured in read/write cycles. Does anyone know the actual numbers for this? Is writing/erasing more "corrosive" than reading?
By SOI_Sentinel
#21244
From what I've understood, reading is relatively infinite, it's the erase/write cycle that'll get you.

Now, numbers, most companies will give you a "garaunteed" minimum, so if you write to one block, they will garauntee it will work X number of times. There's a good chance it will work a lot longer, however. Now, Flash write persistance varies HUGELY. I've looked at it for embedded microcontrollers mostly.

Renasis, for instance, gives you 100 cycles in their M16 MCU's. Microchip's original PIC18 line had 10,000 cycles. Currently, modern PIC18's and the dsPICs that are tagged with "enhanced flash" do 100,000 cycles. The newest bulk NAND flash can vary, but the current standard is 1,000,000 cycles.

So, you really REALLY have to look, but the newer the part, the more zeros you'll find on that cycle garauntee.
By Bushman
#21247
Has anyone ever tested these values?

What is the typical reaction of the device as the breaking point is approached and exceeded? (I mean the real breaking point, not the advertised minimum)

What kind of clues do you get from the device that the flash memory is ruined and its time to buy a new device?
By SOI_Sentinel
#21251
I don't know of anyone's that actually tested the parts. And there is NO warning. Like I said, read should not impact life. That's why you see all Flash programming sequences do an erase-write-verify methodology. They check to see if there was a write error before deleting the block in RAM and continuing on. There may be ways to detect near-extinction of resources, but the only signs I've seen in a few commercial parts is that they track the writes to each block and mark them suspect once past the manufacturer's stated limit. Even that is just implemented in software.
By Philba
#21272
SOI_Sentinel wrote:Renasis, for instance, gives you 100 cycles in their M16 MCU's.
I've always wondered about the Renesas spec. I have a hard time believing it. I can see an extended debugging session burning a lot of those cycles. It just seems weird to me. On my M16 system, I've probably burned the flash that many times though I've done a lot of experimenting with it. They have a note somewhere in their docs to not ship a development system as part of a product. Odd.
By Polux rsv
#21296
I made a test on a ST29W320DB to test this number. The test was to erase and write a single sector measuring the times and controlling data integrity. This chip is garanteed for 100'000 cycles.
The write time was constant, about 14us for a word, until the end of the test, about 900'000cycles.
The sector erase time was also constant up to 100'000 cycles, but began to rise exponentialy until the end of the test. At the end, the erase time was 5x the nominal time from the datasheet.
We also never had any write errors.

Angelo