If you think I’m not having much luck with microSD cards lately, you’d be right. The first issue for the year was the Sandisk 128Gb microSDXC card having some unreadable sectors causing the loss of some files. Now, I’ve had this Kingmax Pro 32Gb microSDHC I reviewed in the past cause issues as well.
This particular Kingmax Pro 32Gb card was used in a Raspberry Pi, which was kept in the loft area of the house (warm temperatures) along with another Raspberry Pi with a Sandisk 4Gb Class 4 card. Both units were hooked up to a single power supply and were running various radio-based experiments.
Around a year ago, for power saving and because I didn’t require the units to keep operating, power was disconnected and both units remained untouched in the loft.
After salvaging the units, I decided to read out the home folders of both units, archive the data, and reuse the cards for another application.
The older Sandisk 4Gb Class 4 card completed its read-out successfully with no errors. The Kingmax card initially refused to be detected, and required three insertions just to get it to detect. The partition table was read but the rest of the unit could not be accessed.
I decided to let HD Tune Pro try each sector sequentially – it took over 7 hours to have the program “overflow” with errors and abort itself with nothing but the first few megabytes readable.
Not feeling defeated, I removed the card and then plugged it back in and tried again. Miraculously, everything now was able to read out – but only very slowly, taking 1 hour 41 minutes and 42 seconds for 32Gb – an average rate of 5.24MB/s, well below the Class 10 rating of the card. Feeling a little more adventurous, I cycled the card again …
This time it took just 6 minutes 28 seconds to read and has recovered its full speed. No data was lost, and the read-out data appeared to be correct.
It seems to me that this behaviour seems to suggest a similar phenomenon to the Samsung 840 Evo SSD problem with slow data access for “old data” stored on the planar TLC NAND flash. It seems that low-cost memory cards are made with planar TLC, and aside from having weaker write cycle endurance, it seems to have lower retention endurance as well.
The issue is with TLC recording, more voltage levels are used, and the read-out is more sensitive to loss of cell voltage. The leakiness of flash seems to have increased with smaller lithography – which is increasingly used to reduce costs of flash memory by reducing silicon usage/increasing yield per wafer. Combined together, retention times of about 10-years formerly claimed are now realistically probably about 2-3 years based on my own experience.
This card was only unpowered for a year, but the difficulty in reading out the data suggests it was close to losing its data. The fact the data “returned” suggests the card’s internal controller was busy retrying and recovering the data, and internally rewriting the worst eroded data first. By the time I had the first complete successful read, it seems likely that the worst eroded data had been fixed, but slowdowns remained due to some weak data that could be recovered “in time” before the card was to issue an error. Post-recovery, speeds increased to normal as the data was likely all rewritten – this consumes a write cycle of its own and with increasing wear on the flash, increases the leakage rate.
An exacerbating factor may have been the slightly warmer environment of the loft area – however, it’s good to note that the Sandisk 4Gb card also used in the same way and stored in the same way did not lose enough of its charge to cause readability issues. This may be controller related in some way, or it may be because it was an older card based on MLC or larger pitch TLC flash.
Regardless, it seems inadvisable to use “modern” consumer grade flash memory for anything more than as a “temporary” storage vehicle for shuttling data around. Long term retention is not its strong point and the price-sensitive TLC units appear to make situations worse.
At least this Kingmax Pro card ended up with a happy ending in that no data was lost. However, it seems to confirm a glaring weakness in cheap, consumer-grade TLC memory – especially those destined for low cost microSD cards or USB sticks. Not only do they have a limited write cycle endurance, they also seem to have data retention endurance problems. Leaving them unpowered for a year seemed to be enough to cause data recall difficulties – chances are, if left unpowered for about two years, maybe the data would all have been lost and the card itself “damaged” due to the loss of internal configuration data.
It points to the whole issue that flash memory is not good for long term data retention. While formerly, retention would commonly be rated for 10-years, whether this is possible under TLC and smaller lithography processes is debatable. The industry seems to point to one year retention at “end of life” as being the norm.
It’s a good time to stop and think about all those special event photos and videos being delivered on USB flash disks and how long they will remain readable for. It’s probably best to back them up to a diverse range of media, and continually “transfer” them to newer media as time permits to stop the “erosion” of time.