Montag, 31. August 2015

TLC Bitrot

Recently I got a new laptop (Dell Ultrabook) powered by a Samsung PM851 SSD, quite similar (OEM) to the Samsung 840. It is equipped with TLC flash, and because of bitrot the SSD becomes slower and slower as data ages - complex ECC is performed by the controller to recover the degraded data. This has been discussed quite extensivly in media, e.g. at Anandtech, and Samsung has tried several FW attempts to mitigate this hardware issue. What hasn't been discussed at all, is that most likely these drives will start to loose data when powered off for longer time spans.

Recently I was curious how cheap SD-cards behave in that regard, as Samsung for sure chose their highest-quality TLC flash for the 840/840 Evo- while most SD cards do not get what is considered  SSD-grade flash. I benchmarked the 32GB microSD card I had used in my Android smartphone for the last 6 months. The card was brand new when inserted and only used to store static data like pictures and music - so the flash cells didn't experience any significant stress, here's the result:


So even for only 6 months old data, there are areas where data have degraded to a level the SD card can only read it at a rate of 400kB/s, although the SD card was never exposed to any kind of serious write workload. This has not been an isolated case, we have several similar cards in-house and they all show the same behaviour - they are a time bomb barely good enough for storing music. The cards showing this kind of behaviour use IMFT (Intel-Micron-Flash-Technology) TLC flash, unfortunately the lithography node is unknown. After re-writing the first half of the card using dd, read-performance was restored.


For comparison the results of a MLC based SD card which was exposed to write-intensive workload for quite some time (linux rootfs) and unused for 12 months:



To sum it up: TLC flash is not worth the trouble, not for SD cards and for sure not for SSDs. However, while MLC-powered SSDs aren't a lot more expensive than their TLC-counterparts, for SD-Cards you have to pay quite a premium, because there MLC is only used when required to reach high advertised write-speeds.