Intel X25-M SSD: Intel Delivers One of the World's Fastest Drivesby Anand Lal Shimpi on September 8, 2008 4:00 PM EST
- Posted in
How SSDs Work
The building block of NAND flash is the N-channel MOSFET:
Each "cell" is made up of one of these transistors. In a single-level cell (SLC) flash device, one of these transistors can hold 1-bit of data. You write data to the cell by electron tunneling; apply a high enough voltage to the gate, create a powerful enough electric field, and electrons will tunnel through the oxide and into the floating gate. Remove the voltage and the electrons will remain in the floating gate. Apply the voltage across the channel instead of the gate, reverse the bias and the electrons will go in the other direction. Simply put, that's how flash works - you've got two states, 0 and 1, and the state is preserved even if the cell has no power, making it ideal for a storage device.
Programming flash is an iterative process. The controller will apply voltage to the gate (or the channel), allow some electrons to tunnel and check the threshold voltage of the cell. When the threshold voltage has reached some predetermined value, it’s now programmed and your data is stored.
MLC vs. SLC
There are two forms of NAND flash used in SSDs today: Single-Level Cell (SLC) and Multi-Level Cell (MLC). The difference between the two is the amount of data stored per cell, with SLC it's 1-bit per cell and with MLC it's 2-bits per cell. The key here is that both SLC and MLC take up the same amount of die area, so MLC effectively doubles your capacity at the same price.
Intel actually uses the same transistors for its SLC and MLC flash, the difference is how you read/write the two. With SLC there are only two voltages to worry about, since there are two states (0 or 1). With MLC, there are four states (00, 01, 10, 11) and thus it takes longer to access since you don't want to accidentally write the wrong bit of data; you've got the same min and max voltage, you simply have more graduations in between the two now:
SLC (left) vs. MLC (right)
Below is a table of some basic stats on SLC vs. MLC performance:
|SLC NAND flash||MLC NAND flash|
|Random Read||25 µs||50 µs|
|Erase||2ms per block||2ms per block|
|Programming||250 µs||900 µs|
Erasing performance is the same between the two, read performance takes twice as long on MLC flash and write performance can take almost four times as long. If you've ever heard people complain about MLC write speed before, this partly why. Do keep in mind though, the numbers we're talking about here are ridiculously low - even 900 µs to write to MLC flash is much faster than writing to a mechanical hard disk.
The biggest advantage of SLC ends up not being performance, but lifespan. To understand how flash wears, we first need to look at how it's organized in a storage device.