11 ms·
How Controllers Maximize SSD Life (2012)
- wtallis 6y agoGiven the age of these posts, the many of the numbers used are outdated, but most of the general ideas are still relevant. There are a few other concepts that would be worth mentioning these days even in this kind of high-level overview: Error handling and recovery has gotten really complex; drives will adjust how they perform read and program operations as the flash ages. Some drives do proactive scanning for data degradation to catch errors before they become uncorrectable. There are new ways for the host OS to provide hints about data lifetime and preferred data placement, which can be very helpful in avoiding unnecessary write amplification. In the absence of such hints, some drives have heuristics that try to infer data lifetime information based on IO patterns.
- Heronymus_Anon 6y agoNot enough knowledge, in any of the areas involved, but my intuition makes me doubt the longtime security of these complexities, although i really appreciate the results. Or is there no need for trusting the firmware, if all the I/O is encrypted? I am fantasizing all these data patterns could combined with other information lead to the data-storage/-encryption equivalent of branch-prediction-exploits.. ..but maybe it's just half-knowledge combined with the fear-what-you-don't-understand.. ..and of course this wouldn't be in the first layer of attack.
- sprash 6y agoCould you make money by producing a cheap "dumb" flash memory where you have raw access and leave all the wear leveling to software by using one of the many available log structured file systems? Some people would rather have full transparent overview and control over the state and health of their storage and make their own decisions about handling problems in software instead of talking to a black box.
- duskwuff 6y agoUnlikely. The cost savings probably wouldn't be as dramatic as you hope. You'd still need some sort of controller for serdes -- NAND flash chips tend to use big parallel busses which aren't suited for off-board connectors -- and, at that point, it's not that much of a jump to make that controller handle wear leveling and error correction. (Having the storage device handle those tasks is pretty convenient, anyways. It means you don't have to perform error correction on the main CPU -- which is a nontrivial ask -- and it means the SSD can behave as a bootable device.)
- londons_explore 6y agoWear levelling and error correction are pretty different problems. Error correction is well suited to hardware, whereas wear levelling in my opinion is not. My ideal design would have basic hardware error detection and correction (hopefully configurable for how many data bits Vs ECC bits), and maybe with a few heirarchical levels. Wear levelling and management of data layouts would all be done in software. You could imagine a "bulk read" API which is given a block number to start at, with a bunch of ECC parameters, which would DMA a large block of error-corrected data to RAM, together with information about the error rate in each word/block read.
- st_goliath 6y ago> You could imagine a "bulk read" API which is given a block number to start at, with a bunch of ECC parameters, which would DMA a large block of error-corrected data to RAM, together with information about the error rate in each word/block read. There are a lot of existing SoCs that have built in flash controller hardware that can interface with an external flash chip and, from a driver perspective, are controlled pretty much the way you describe it.
- sprash 6y agoThe margins on flash media are razor thin already. This is a high volume operation where subcents per unit count. If you can shave off a little more by using a dumb controller that does not contain any IP that needs to be licensed it is very easy to calculate how high the volume has to be in order to be profitable.
- ara24 6y agoGiven the rate at which we are progressing on SSD endurance, these methods will become irrelevant. Even 5 years back, the old tech report article showed that for an average user, they could handle a lot of writes. https://techreport.com/review/27909/the-ssd-endurance-experiment-theyre-all-dead/ https://techreport.com/review/27909/the-ssd-endurance-experi...
- tobz1000 6y agoThat winner of that test, the 840 Pro, uses 2-bit (MLC) cells. Nowadays, 3-bit (TLC) and 4-bit (QLC) are much more common (not sure QLC even existed back then). So whilst each of these technologies has matured, the drive a consumer may consider today is more likely to be bigger, replacing their HDD entirely, and will probably be capable of fewer writes than an MLC drive from 5 years ago, iiuc.
- metalliqaz 6y agoThe drives also include more software and more excess capacity to mitigate the problem (except for the cheap ones)
- fomine3 6y agoMLC->TLC transition decreases endurance but 2D->3D transision increases much endurance. Current 3D TLC drives handles more TBWs compared to old consumer 2D MLC drives. So industry going to make QLC chips.
- dahfizz 6y agoThe best ssd in that test lasted for writes ~1000x its capacity. Without a good wear-leveling SSD controller, you would see data loss in a day or two on e.g. log files. A good controller will never be irrelevant.
- mar77i 6y agoThere was this long Ars Technica article from the same year: https://arstechnica.com/information-technology/2012/06/inside-the-ssd-revolution-how-solid-state-disks-really-work/ https://arstechnica.com/information-technology/2012/06/insid... I'm not going to assume that the complexity of what's going into these drives was not significantly reduced since, or did it?
- metalliqaz 6y agoSDD controllers have grown much more complex since 2012, especially with the deployment of QLC flash cells.
- mehrdadn 6y agoA bit off-topic, but speaking of SSDs, how do you compare them when shopping around? I see different brands and models advertising similar features at different price points, and I know enough to look at the throughput, IOPS, but beyond that it's hard to tell how to evaluate differences. e.g. should consumers be weary of QLC? Do the models and brands matter a lot? Can you somewhat trust listed lifetimes? Are there other specs worth paying attention to? How should they be evaluated? Anyone have thoughts/links on comparing modern SSDs?
- metalliqaz 6y agoHonestly I just see what was well reviewed at tomshardware or anandtech. I let them filter out the crap for me.
- wtallis 6y agoOne word of warning: we often get bored of reviewing the same drive several times, with a different vendor's sticker over the same turnkey solution built by the same ODM. So if you run across a decent price on a drive that hasn't been reviewed in-depth by someone you trust, it may be worth checking if it's basically equivalent to something that has been well reviewed. On Reddit, NewMaxx has been doing a great job of publicly aggregating information about SSDs: https://old.reddit.com/r/NewMaxx/comments/dhvrdm/ssd_guides_resources/ https://old.reddit.com/r/NewMaxx/comments/dhvrdm/ssd_guides_... This is especially important if you're not in North America because the brands that are available and affordable locally aren't always the same as what's good here in the US. (And on rare occasions, a product sold in multiple regions will have different internals depending on the region.)
- wtallis 6y agoThe advertised performance specifications for consumer SSDs are mostly useless. They pick the metrics that produce the biggest numbers, without regard to whether those numbers have any relevance to real-world use. Those numbers are mostly useful for determining what class of controller and flash memory are used, in case the spec sheet doesn't list that information. Likewise for warranty period and write endurance ratings; those are more about signalling product segmentation than about actual expected lifetime. For consumer SSDs, there's no need to worry about write endurance or QLC NAND unless you know you have a very atypical usage pattern and have actually measured your workload by eg. tracking SMART indicators on your current drive(s) for several days. Brand matters very little unless you really care about the experience of getting a warranty replacement in the rare event that your drive fails before the warranty expires. I'm not aware of any solid information indicating that certain SSD brands have consistently lower premature failure rates. My anecdotal experience from reviewing SSDs for several years is that all the top-tier brands have at some point sent me review samples that were either DOA or died during testing that shouldn't have killed a drive. Outside the top tier brands belonging to the NAND flash memory manufacturers, everyone is buying NAND on the open market from the same 2-3 manufacturers and buying SSD controller solutions from the same 2-5 vendors. There are literally dozens of retail models all using the same combination of Phison E12 controller and Toshiba/Kioxia 3D NAND, and the differences between these are almost entirely cosmetic. All the PCIe 4.0 consumer SSDs that have been released so far are functionally identical.
- fomine3 6y agoFun story for me: SSD's AES encryption feature is sometimes implemented in purpose of data randomizing instead of LFSR. (Of couse also for encrypting) https://www.researchgate.net/publication/274369001_Data_security_concurrent_with_homogeneous_by_AES_algorithm_in_SSD_controller https://www.researchgate.net/publication/274369001_Data_secu...