Design Article
SLC vs MLC: Which works best for high-reliability applications?
Charlie Cassidy, TeleCommunication Systems
7/16/2012 4:43 PM EDT
Single-level cell (SLC) operation
SLC NAND flash cells operate pretty much as described in the basic operation above. Both writing and erasing are done gradually to avoid over-stressing, which can degrade the lifetime of the cell by increasing the number of electrons trapped in the oxide or by causing oxide damage. Essentially, a write or erase is attempted, then stopped, and the cell is tested to see if the erase/write was successful. If not, it is reattempted, possibly with stronger or longer pulses. This is done several times until the operation time exceeds the specification and the cell is declared “bad.”
Since there are only two states, a cell represents only one bit value. Each bit can have a value of “programmed” or “erased.” A “0” or “1” is determined by the threshold voltage Vt of the cell (see table 1). The threshold voltage can be manipulated by the amount of charge put on the floating gate of the flash cell.

Placing a charge on the floating gate will increase the threshold voltage of the cell. When the threshold voltage is high enough, the cell will be read as programmed (see figure 2). No charge, or a threshold voltage of less than the minimum programmed voltage, will cause the cell to be sensed as erased. As the cell wears, these two distributions move closer together, narrowing the difference between the values of Vt for erased and programmed. When they overlap, it is impossible to distinguish between programmed and erased states.
2-bit per cell MLC
It is also possible to store more than one bit at each cell location by using multiple threshold voltages to encode multiple states (see table 2).

These four states yield two bits of information. After block erasure, the cell is in the fully erased state. By increasing the number of electrons stored on the floating gate, the cell can be brought from fully erased to partially erased, to partially programmed, and, finally, to fully programmed. This is done in the same manner as described earlier for gradually programming the SLC cell, by applying write pulses, then sensing the amount of charge to ensure that the cell was properly programmed.
The gaps between the various states of an MLC are much smaller than the gap between the two states of an SLC NAND flash (see figure 3). Another way to describe this is that the signal-to-noise ratio of an MLC cell is much less than for an SLC cell. Because of this, a more powerful error correction code is needed to correct for errors introduced by noise, which can be either true electrical noise or noise induced by a trapped charge in a cell that has seen many program/erase cycles.
3-bit MLC flash
The MLC concept can be extended beyond just two bits; devices with three bits per cell (referred to by many as three-level cell or TLC) are currently commercially available. Three bits actually yield 23 or eight levels (see table 3). Some companies have begun to refer to devices with three bits per cell as MLC-3, which is a better way to characterize it.

At this point, the difference in charge stored on the floating gate between the levels is on the order of 100 electrons or less, so for the time being, TLC is the practical limit of extending this concept, although there are companies beginning to experiment with four bits per cell. In fact, SanDisk has recently announced a four-bit-per-cell NAND flash for USB thumb drives. All of the issues with two bits per cell become even more difficult with a greater numbers of bits.
SLC NAND flash cells operate pretty much as described in the basic operation above. Both writing and erasing are done gradually to avoid over-stressing, which can degrade the lifetime of the cell by increasing the number of electrons trapped in the oxide or by causing oxide damage. Essentially, a write or erase is attempted, then stopped, and the cell is tested to see if the erase/write was successful. If not, it is reattempted, possibly with stronger or longer pulses. This is done several times until the operation time exceeds the specification and the cell is declared “bad.”
Since there are only two states, a cell represents only one bit value. Each bit can have a value of “programmed” or “erased.” A “0” or “1” is determined by the threshold voltage Vt of the cell (see table 1). The threshold voltage can be manipulated by the amount of charge put on the floating gate of the flash cell.

Click image to enlarge
Table 1: The bit value of the cell translates as either programmed or erased.
Placing a charge on the floating gate will increase the threshold voltage of the cell. When the threshold voltage is high enough, the cell will be read as programmed (see figure 2). No charge, or a threshold voltage of less than the minimum programmed voltage, will cause the cell to be sensed as erased. As the cell wears, these two distributions move closer together, narrowing the difference between the values of Vt for erased and programmed. When they overlap, it is impossible to distinguish between programmed and erased states.
Figure 2: The threshold for each determines whether a cell is read as programmed or erased. As electrons get trapped in the oxide, the conductivity difference between the two states. When the curves overlap, the system can no longer distinguish between programmed and erased states.
2-bit per cell MLC
It is also possible to store more than one bit at each cell location by using multiple threshold voltages to encode multiple states (see table 2).

Click image to enlarge.
Table 2: State table describes the amount of charge in the floating gate of the flash cell.
These four states yield two bits of information. After block erasure, the cell is in the fully erased state. By increasing the number of electrons stored on the floating gate, the cell can be brought from fully erased to partially erased, to partially programmed, and, finally, to fully programmed. This is done in the same manner as described earlier for gradually programming the SLC cell, by applying write pulses, then sensing the amount of charge to ensure that the cell was properly programmed.
The gaps between the various states of an MLC are much smaller than the gap between the two states of an SLC NAND flash (see figure 3). Another way to describe this is that the signal-to-noise ratio of an MLC cell is much less than for an SLC cell. Because of this, a more powerful error correction code is needed to correct for errors introduced by noise, which can be either true electrical noise or noise induced by a trapped charge in a cell that has seen many program/erase cycles.
Figure 3: Because the gaps between the various states of an MLC are much smaller than the gap between the two states of an SLC NAND flash, the devices need more powerful error correction code.
3-bit MLC flash
The MLC concept can be extended beyond just two bits; devices with three bits per cell (referred to by many as three-level cell or TLC) are currently commercially available. Three bits actually yield 23 or eight levels (see table 3). Some companies have begun to refer to devices with three bits per cell as MLC-3, which is a better way to characterize it.

Click image to enlarge.
Table 3: Memory cells with three bits yield 23 or eight levels.
At this point, the difference in charge stored on the floating gate between the levels is on the order of 100 electrons or less, so for the time being, TLC is the practical limit of extending this concept, although there are companies beginning to experiment with four bits per cell. In fact, SanDisk has recently announced a four-bit-per-cell NAND flash for USB thumb drives. All of the issues with two bits per cell become even more difficult with a greater numbers of bits.
Navigate to related information


S.Gilden
7/17/2012 10:44 AM EDT
FYI: the table discribing the 3-bit MLC has tex errors and pattern "100" is listed twice.
Further , pattern 001 is missing.
Sign in to Reply
Kristin Lewotsky
7/17/2012 7:39 PM EDT
Good catch--that's what I get for focusing on the text of the article rather than the graphics. I communicated with the author and we are in the process of getting an updated version of the table. Look for a revised version by tomorrow morning. Thank you for your patience and apologies for any confusion.
Sign in to Reply
cdhmanning
7/17/2012 10:25 PM EDT
Ok, maybe the answer is obvious to me because I have been working closely with NAND for the last 10 or so years...Clearly SLC has wider margins and can thus tolerate more degradation than MLC. Clearly SLC will give a huge reliability advantage.
You can sometimes use MLC parts as if they were SLC parts. Many MLCs write two adjacent pages into the same cells, so if you only write every second page you can sometimes achieve SLC-like reliability in MLC.
This opens up the possibility to do things like using MLC for the cost benefit, storing critical code etc in the fake-SLC area and less critical data/code in the regular MLC area.
NAND is goofy stuff.For example most electronic parts tend to be more reliable at the lower end of their temperature range. NAND, OTOH, is often more prone to errors at lower temperatures.
One failure mechanism you missed is read disturb. Yes, even reading NAND can corrupt data. That is particularly relevant to MLC. This has particular implications for static data like boot code which is typically not rewritten during the lifetime of the product but is read (and slowly corrupted) on every boot cycle.
If you want to ensure that your NAND-based solutions are robust, ensure that the software you are using with it (file systems, boot loaders, etc) have mechanisms to mitigate against the bad side of NAND.
Sign in to Reply
John Scaramuzzo
7/20/2012 5:50 PM EDT
Charlie, really enjoyed reading your article here. The differences between SLC and MLC Flash have been a topic for discussion for quite some time and as a flash industry professional, we are constantly trying to mimic the advantages of SLC Flash in our MLC-based Solid State Drives. To add to your article, I would also like your readers to consider certain new endurance enhancement technologies that can substantially increase the native endurance and bolster reliability in MLC Flash devices. These types of innovations are blurring the lines between the SLC and MLC output and is making MLC a viable option for even the most write intensive application. Check out this white paper as a great resource for this type of technology on our website: http://smartstoragesys.com/pdfs/WP003_Guardian_Technology.pdf.
-John Scaramuzzo, President, SMART Storage Systems
Sign in to Reply
elektryk321
7/23/2012 6:48 AM EDT
I have a feeling that explanation of wear mechanism is little wrong. As far I know the problem is not with trapped electrons, electrons could be always moved with force (apropriate voltage) but each time when memory is programmed or erased, move of electrons degrades the isolation properties of oxider.
Sign in to Reply