3 ms·
Unpowered – i.e. unplugged – flash or solid state memory have been shown to lose its data after three months: <https://news.ycombinator.com/item?id=37144598 htt
by teddyh 2y ago
Unpowered – i.e. unplugged – flash or solid state memory have been shown to lose its data after three months: <https://news.ycombinator.com/item?id=37144598 https://news.ycombinator.com/item?id=37144598>
- st_goliath 2y agoThanks for the extra references! I'll make sure to bookmark those and take a closer look later. Yeah, MLC already losing data after 3 months doesn't really surprise me that much. If you play with a raw MLC chip and turn off the ECC engine, the amount of bit flips you get from reading on some chips isn't even funny anymore. With one chip I tried, even with ECC, I managed to induce persistent bit flips fairly quickly just by reading the same physical page over-and-over. For extra fun: those bit flips can happen in another page that you didn't touch, because the bits are paired :-) What actually still does surprise me sometimes, is how reliable those things can work after all, if you just pile enough software abstraction and management on top.
- dale_glass 2y agoYou seem like the sort of person who'd know. Are there tools available to a normal person to take a look at this stuff? Eg, is there some way I can evaluate a not yet failing SD card? CDs had tools to check for C1 and C2 errors, is there a way to do the same with a SD card or SSD?
- st_goliath 2y agoFor SSD, I'd imagine you might get SMART data or something similar? I know that on Linux, there are mmc-utils, but I only used those with eMMC so far. I just tried to read out some general status information on uSD cards I have around: it didn't work for 2 Kingston and Acon cards (command timeout). But for a Swissbit card (industrial), it took some solid 10 seconds before reporting back that it's doing ok and is ready for data. Looks like it depends heavily on vendor support, possibly also undocumented/non-standard command sequences?
- Modified3019 2y agoNote that that’s only when the drives have hit their rated program/erase cycles, meaning completely worn out but still functioning. Does not apply to drives with lots of life left in them, which is the vast majority of consumer drives. From the linked pdf: >In MLC and SLC, this can be as low as 3 months and best case can be more than 10 years. The retention is highly dependent on temperature and workload. Interestingly, while heat can increase the rate of information loss (when drive is worn out), it can also decrease wear on the drive by making writes easier and less destructive to flash cells. The controller is still going to hate heat though.
- dale_glass 2y agoI've heard of this, but there seems to be a lack of practical information. If this is true, then: * Shouldn't SD cards have an expiration date? What if you buy a card that's been sitting on the shelf for a year? * What is the proper maintenance procedure? Like should I let it sit in the reader for an a minute, 15 minutes, an hour for the controller do its magic? * Are the translation tables better protected? Does the card return to full working order when reformatted? * Are there testing tools for this? I remember CDs had tools that could tell you how much error correction the drive had to do.
- userbinator 2y agoShouldn't SD cards have an expiration date? What if you buy a card that's been sitting on the shelf for a year? If the flash was blank at manufacturing, it would remain blank after a year as there would be no charge to leak out. The problem is when the controller also stores its firmware on the main NAND, but AFAIK that isn't the case for SD cards (which have very little in the way of firmware compared to SSDs.)
- dale_glass 2y agoThey're not sold blank though. They have a partition table and FAT32/exFAT filesystem on them. And I'm pretty sure even SD cards have a translation layer.