What are the Differences Between SLC, MLC, and TLC Memory
Most of us would think there isn't much to distinguish flash drives from one another, but you might be surprised to find out just how different seemingly identical flash drives can be. One of the main differences between the flash memory inside everyday USB drives is whether they are SLC (Single Level Cell), MLC (Multi Level Cell), or TLC (Triple Level Cell). Depending on which variant you have in your USB drive, the performance and reliability can vary greatly.
Below is a (table|graphic) detailing the practical differences a user might see between SLC, MLC, and TLC flash memory chips inside USB drives.
What drove the creation of new chips
The simple answer is: money. The age-old adage is 'do more with less', or in this particular case do more with the same. Engineers and memory manufacturers wanted to figure out how to increase the capacity of flash memory with the same amount of physical space and thus save money.The result was the creation of MLC and TLC (and QLC but that is another article).
These newer architectures allowed us to, in the same physical space as before, store more information at the cost of performance and reliability. Concurrently, memory manufacturers gained the ability to use the same manufacturing techniques to produce higher capacity memory. Without this advancement manufacturers would have needed to invent more precise machines and techniques which cost tons of money.
You may be, understandably, asking why there might be a performance decrease with TLC. The answer is slightly technical so to understand why SLC, MLC, and TLC differ we first need to understand a little bit about how Flash Memory works.
How flash memory works
All Flash Memory works in principally the same way, data is stored inside cells (think of them as tiny boxes). Inside these "boxes", or cells, the Flash Memory traps electrons. The value of the data inside each cell is determined by how many electrons are trapped inside the cell. If a cell is more than half full the value is 1, if it is less than half full it is 0. This is how SLC (Single Level Cell) chips work, we effectively split the cell in two and have two possible values.
MLC and TLC work the same way but instead of dividing the cell in two, we divide further. MLC (Multi Level Cell) divides the cell into 4 parts, giving us 4 possible values. TLC (Triple Level Cell) divides the cell into 8 parts, giving us 8 possible values. This allows us to double (MLC) or triple (TLC) the size of each cell without making them any larger.
However, once we start to split the "boxes", we run into accuracy and reliability issues. The process of trapping electrons isn't always super precise and conversely, the more divisions we make in our "box" the more precise we must be. With SLC the target is 50% of the size of the whole cell, MLC is 25%, and TLC is a mere 12.5%. So as our memory gets more dense, our margin of error decreases exponentially
How does dividing cells up impact performance?
When Flash Memory cells are manufactured, variations in the process can cause the cells to have different wall density or other imperfections. This can allow electrons to seep out, like a leaky faucet, changing the value of our data. Furthermore, as we continuously use our flash drive we wear out the cell making it more "leaky" until one day it can no longer be programmed correctly and the controller chip marks it as dead.
The manufacturing imperfections and wearing out over time isn't as big of a deal on SLC since you can afford to leak some electrons without it impacting your data. With MLC and TLC though we can afford to lose fewer before we run into problems.
To deal with these problems there are a few things that can be done to protect data; the most important data protection methods being Error Correction and Dead Cell Remapping.
Error checking slows down writes
When data is written to a USB drive it's not as simple as just loading up a cell with some electrons. Your flash drive will need to confirm it got the data-write fully and accurately. This is where ECC or error correction checks come into play. These error checks take time to complete and will make the entire process of saving data to a USB drive take longer. As we reduce our margin for error by using more dense memory, we require more robust error checks. Therefore TLC, which is more prone to errors, needs more time to check than does MLC, and MLC takes more time than SLC.
This is one reason why SLC chips can be so much quicker; they only need to employ the most basic level of error checks.
Remapping dead cells to backup cells takes time
All flash memory chips have extra cells on standby to step in and replace dead cells, this process is called remapping. This process takes time to complete and the more remaps that have to happen the more the problem is compounded. All this remapping and looking up of the proper mappings takes time to complete, so it stands to reason TLC with its higher likelihood of cell death would have to endure more of these processes than SLC and MLC.
If you're interested in learning more about the mechanics of NAND flash memory, we delve deeper into this topic in our other blog post.