SLC vs. MLC: Cost and capacity
The flash industry’s answer to the cost and capacity issues is MLC flash storage.
MLC has both higher capacities and lower costs than SLC because it stores two bits per cell instead of one. This allows the flash to have four states (00, 01, 10, and 11) instead of two (0 and 1). MLC has higher capacities than SLC. The same wafer size produces twice the density as SLC.
And MLC also has a higher error rate (data corruption). This is because the additional state value makes it more difficult to get a positive value determination.
In MLC, higher temperatures cause more electron leakage in cells. That increased leakage has a much greater impact on MLC because of the higher sensitivity required to differentiate the states, leading to a narrower operating temperature range.
The net effect is that the MLC flash controller must have a much more robust error-correction technology than with SLC. That error correction is going to take more time making data corrections than SLC storage devices. This is one of the reasons MLC storage IOPS and throughput is generally slower than SLC.
SLC vs. MLC: Endurance
Another big advantage of SLC vs. MLC is endurance.
SLC flash is rated at 10 times the endurance of MLC flash. Flash wears down as it is written. Because of the increased voltage requirements of MLC, it wears down approximately 10 times faster than SLC. This is why SLC storage devices are rated at 100,000 write cycles per cell as opposed to 10,000 write cycles per cell of MLC. The two keys to endurance are the effectiveness of the flash controller’s wear-leveling algorithm and the amount of flash in the storage device. Greater capacities equal more cells to wear-level, which in turn increases endurance.
So what does this mean on a practical level? A 200GB SLC solid-state disk would have to write 456 GB per hour every hour of every day for five years to wear out. MLC is 10%, or 45.6 GB per hour every hour of every day for five years, to wear out. Neither is likely to happen.
Example: If there is a 100 GB SSD and it's write cycles are 8760 then it means that it can write 100 GB Data per hour, every hour for full year.
Total IO per year = IO per hour x 24 x 365 / SSD size
= 100 GB x 24 x 365 /100
= 8760 GB
SLC vs. MLC: How to choose what's right for your needs?
If an application needs the best possible performance, SLC is the choice. However, the type of storage device utilizing SLC matters. A storage array utilizing SLC flash SSDs as cache or as its primary storage media is not going to be significantly faster than a storage array utilizing MLC-based SSDs. This is because of the latency bottlenecks in the path of the SSDs, including the SATA or SAS controller, storage system controller, storage network between the application server and the storage system, and the bus of the application server. The performance differences in this SLC vs. MLC scenario will be difficult to justify financially. In contrast, a SLC PCIe card in an application server or a storage-network-attached, SLC-based data-caching appliance demonstrates the huge performance advantage over equivalent MLC products. This SLC example is easier to justify.
Deciding which type of flash storage technology (as well as which device) to use requires weighing the trade-offs. Is the extra performance necessary? Is capacity more important? What role does cost play in the decision? What about the software that can effectively use flash technology? Does it consume more application CPU cycles? (Note: PCIe flash cards, both SLC and MLC trade off that higher performance with a higher CPU resource consumption of as much as 20%.)
Here are some general rules of thumb regarding SSD, but keep in mind these rules do not always apply.
* When application acceleration performance must be the absolute highest it can be - with the lowest possible latency and price is not a crucial consideration, PCIe SLC flash cards are the answer.
* When application acceleration is important but cost is an issue, MLC flash PCIe flash cards are a good selection.
* When the requirement is to improve the speed of existing storage array performance at the lowest possible cost, then a storage-attached-network SLC or MLC data-caching appliance is a good choice.
* When the goal is higher storage array, or NAS performance is the target, then a storage system primarily based on SSD is a solid pick.
* And when the goal is to reduce storage TCO while increasing or maintaining performance then a storage system with mixed storage tiers, including flash or a storage system with a lot of flash cache, can be ideal solutions.