Now we have to take one more technical step and take you right into the heart of what makes SSDs tick. (OK, they don’t tick per se. With no moving parts, SSDs are actually completely silent—another advantage over hard drives.) We said previously that SSDs use NAND flash chips. Within each of these chips are millions of cells. There are only two types of NAND cells today: single-layer (SLC) or multi-layer (MLC).
An SLC cell can hold one data bit, yielding a value of either 0 or 1. An MLC cell can hold more than one, with today’s technologies generally yielding two bits per cell, yielding values of 00, 01, 10, or 11. Because you can fit four times as many possible values in a cell, the data density in MLC chips is higher. This is why MLC drives inevitably have higher capacities than their SLC cousins.
There are some downsides with MLC, though. The more values you have to read from, the harder it can be to get a positive fix on a value. Consider a glass of water. If you have only two possible values, empty or full, there’s no ambiguity about the state of the glass’s contents. But if you have four possible water levels, you might need to look a little harder to see if the glass is three-quarters full or only half-full (or half-empty, depending on your disposition). MLC technology will increase the rate of erroneous value readings, which is why MLC drive controllers use more powerful error correction algorithms. Going through error correction cleans up the mistakes, but it also takes more time to guarantee accuracy. This is one reason why MLC drives generally feature slower throughput than SLC.
Beyond error correction, there are different ways to build NAND memory dies that can affect performance. For example, every memory device uses a fixed-size chunk of memory called a page to transfer data to and from an external device. The size of the page can vary from one NAND product to the next, but whereas SLC allows you to program four or more parts of a page independently, MLC requires you to program the entire page before moving to the next page. SLC is using each page more effectively, so overall performance is improved. SLC is also far more efficient at writing. An MLC array will take almost twice as long to start write programming compared to SLC.