A big question that I came across all the time is, “Why should a customer go with MLC (or cMLC) or eMLC flash?”
Storage Market is so dominant with MLC NAND flash (I will not mention NAND further in this article but I would be talking about NAND flash only in this post) that no one even looks at SLC or TLC and many are not even aware that there is something like SLC and TLC exist too. So when I decided to write this blog post, I thought I should cover the complete picture of flash, to give my readers an end to end view of flash solutions, which will help them in planning the storage needs of their organization.
As discussed in my previous post (Understanding flash at its core), a cell is programmed by applying a voltage to the control gate and erased by applying a negative voltage to the control gate. If programming of the cell is either “0” or “1” level, i.e. for example if you are applying a maximum of 5V at control gate and the charge of the cell is below 2.5V (i.e. 50% of the maximum charge of 5V), then we take it as “0” and any charge above 2.5V or above 50% is taken as “1”, this is called Single Level Cell (SLC).
SLC flash is always in one of two states, programmed (0) or erased (1). As there are only two choices, zero or one, the state of the cell can be interpreted very quickly and the chances of bit error due to varying voltage is reduced. Hence, each SLC cell can be programmed at a very less voltage or erased easily. This increases the endurance of the cell hence the program-erase cycles.
SLC flash is generally used in commercial and industrial applications and embedded systems that require high performance and long-term reliability. SLC uses a high-grade of flash media which provides good performance and endurance, but the trade-off is its high price. SLC flash is typically more than twice the price of multi-level cell (MLC) flash.
Multi Level Cell (MLC), on the other hand, uses more states or levels of the cell than just “0” or “1” i.e. as used in the example above of 5V. If we break the voltage further into three or four levels, (we will use four levels for example) 0V – 1.25V as 00 (level 1), 1.25V – 2.50V as 01 (level 2), 2.50V – 3.75V as 10 (level 3) and 3.75V – 5V as 11(level 4). Hence, a more precise voltage has to be measured. This increased density gives MLC a lower cost per bit stored but also creates a higher probability of bit errors due to the very precise voltage used.
Therefore, the time taken for read, write and erase in MLC is much longer than SLC as now voltage has to be much more precise to read, write and erase. Hence program and erase cycles decrease too thus decreasing the lifetime of the cell.
Triple Level cell (TLC) takes it a step further and stores three bits per cell, or eight voltage states (000, 001, 010, 011, 100, 101, 110, and 111). Using 4V as an example to make it easy to understand, 0V – 0.5V as 000 (level 1), 0.5V – 1V as 001 (level 2), 1V – 1.5V as 010 (level 3),1.5V – 2V as 100 (level 4), 2V – 2.5V as 011 (Level 5), 2.5V – 3V as 101 (Level 6), 3V – 3.5V as 110 (Level 7), 3.5V – 4 V as 111 (Level 8).
From the above example, you can make out how difficult or precise the measurement of voltage would become, therefore increasing the time of read, write and erase. Same die as SLC or MLC would become denser but wear levels and endurance of the cell drop down a lot thus decreasing the program and erase cycles of the cell.
TLC is targeted towards environments with predominant read uses and has not been commonly used.
You might be wondering that why I haven’t touched eMLC till now and moved on to explain TLC? I kept eMLC to the last because I want to take some time to explain in detail what is eMLC (lot of vendors in the market are trying to convince customers that they need eMLC and MLC just don’t cut their need) and how vendors like IBM, Violin, etc today have built technologies around MLC and made it equivalent to eMLC.
Enterprise Multi Level Cell (eMLC)
Long back MLC was never considered for enterprise applications, as MLC on its own can take only 3,000 to 10,000 program and erase cycles leading to decrease in the endurance and reliability of an MLC flash chip. Customers use to depend on SLC for enterprise applications. MLC was used only in consumer devices, such as cameras, smartphones, media players and USB sticks.
SLC being very expensive, corporates use to find it difficult to adopt SLC though it has higher (100,000) program and erase cycles. Hence, vendors in the market started finding out a mid-way between MLC and SLC.
To try to address reliability issues of MLC, NAND flash manufacturers have created a grade of MLC called eMLC. In eMLC they have decreased the density of the data that can be written to the cell (i.e. increased the difference of voltage between the two states) and slowed down the speed with which the data is written (or programmed) to the flash device to increase the program and erase cycles of MLC by 3X and thus increasing the endurance of the MLC chip.
Following are benefits that were achieved because of this;
- Decrease in bit error rate (increases the amount of margin separating the states and lower errors)
- MLC program & erase (P/E) cycles have increased to 30,000.
- Lower cost than SLC.
Following are cons that were achieved because of this;
- By decreasing the density of the data that can be written to a cell, they have also increased the number of cells to be written when compared to the same amount of data in MLC.
- Decrease in the write speeds lead to a decrease in the performance of an MLC chip (which comes at a high cost).
The write parameters in the table above show how different these two technologies are;
- 4K write IOPS are only 75% of the write IOPS of the MLC version
- Sequential write speed is 74% as fast as MLC
- 70/30 read/write IOPS (similar to a standard workload), has a lot of reads. Since the read speed of the eMLC is equal to that of the MLC, the speed gap for this test is smaller. The eMLC SSD is 85% as fast as the MLC SSD
- In the case of write latency, MLC has only 83% of the latency of the eMLC version.
In short while eMLC provides you 3X increases in endurance than and MLC chip, your performance drops down by 15-25%.
Also, as eMLC drives are sold 100x less often, they are tested less in the field and, in turn, contain a much higher frequency of bugs in their firmware. MLC on the other hand, is found in millions of consumer based devices, and in turn manufacturers rigorously test MLC drives to avoid early failures and widespread issues in millions of devices. In a few tests conducted by industry leading MLC vendors, it was found that failure rates on eMLC are 10x worse than MLC due to firmware issues.
In the present era, storage vendors like IBM, Violin memory, etc., have taken MLC chips and improved the program & erase cycles (or endurance) of MLC itself up to 9 times by over provisioning, improving the intelligence of controllers used and by including proprietary Error Correction Code Algorithms.
Hence, I would suggest my readers to understand or do through research on below features (and how they would work with their applications) of any enterprise flash device (while purchasing) than just alone considering the superficial knowledge given by storage vendors in the market.
- Program Erase Cycles
- Wear Leveling
- Garbage Collection
- Write Amplification
- Error Correction Code Algorithms
- Bit Error Rate.
Having done a marathon job of explaining the difference between SLC, MLC, eMLC and TLC, I would want to end this post with a note that I will explore the above mentioned topics as a basis of my next post to help you understand flash further more.