TLC, QLC, and DRAM-less SSDs

What the NAND type and the controller's cache change about how a drive behaves, and when either is worth caring about.

Updated

QLC is not a defective TLC. It puts four bits in a cell where TLC puts three, which buys cost per terabyte and spends sustained write speed and endurance. Whether a drive carries DRAM is a separate question that cheap drives happen to answer the same way.

What TLC and QLC mean

A flash cell is one storage transistor holding a trapped charge. The letters count how many bits come out of one cell. TLC — triple-level cell — holds three. QLC — quad-level cell — holds four.

The count matters because n bits need two-to-the-n distinguishable charge levels. Three bits is eight levels; four bits is sixteen. The usable voltage window does not widen to accommodate them, so moving from TLC to QLC halves the width of every band and doubles the number of boundaries the controller has to place between them: seven read thresholds become fifteen.

Narrow bands cost on both sides. Writing means steering the charge into a band, and a narrower target takes more programming pulses with a verification step between them — most of why a QLC cell is slower to program. Reading means deciding which band the charge landed in, and fifteen boundaries take more sensing passes and lean harder on error correction as the charge drifts with age. The read cost is much the smaller of the two.

What that buys is a third more bits out of the same array of cells.

How much fast cache a drive has

Both cell types hide their write speed behind a region of flash operated at a single bit per cell, and what SSD speed numbers actually tell you covers the curve that produces. Where that region comes from decides how much of it you get.

Part of it can be permanent. A static cache is set aside at one bit per cell when the drive is designed, and it is that size whether the drive is empty or nearly full. The rest is borrowed. A dynamic cache is ordinary TLC or QLC written temporarily at one bit per cell and folded down later, so it comes out of free space and shrinks as free space does.

The arithmetic on borrowed cache is unkind. Cells run at one bit hold a third of their TLC capacity, or a quarter of their QLC capacity, so absorbing 100 GB of writes at the cached rate ties up 300 GB of a TLC drive or 400 GB of a QLC one until the data is folded away. A cache size quoted for an empty drive is quoting the best day of that drive's life. Sizing an SSD covers what that means for how much of a drive to leave unused.

Folding is the other half of the bill. Cached data is written a second time when it moves into its dense form, so one host byte costs the flash two program operations: one at a single bit per cell, one at three or four. That is write amplification you accepted on purpose, and it spends endurance and background bandwidth rather than time you can see. It also needs the drive left alone to finish. Keep writing while it is folding and it does your work and its own at once, so sustained throughput can settle below the native rate rather than at it.

What a DRAM-less drive gives up

The DRAM on an SSD does not hold your files. It holds the flash translation layer's mapping table, which converts the address the operating system asks for into the physical page holding the data. That mapping is rewritten constantly and consulted on every access.

Size the table and the design falls out of it. Mapping is typically done at a 4 KB granularity with a four-byte entry per page, which is one byte of table per kilobyte of drive — about a gigabyte of table per terabyte of capacity. That is why drives carrying DRAM carry it in proportion to their size, and why the cost of going without grows the same way.

A drive without DRAM has two places to put the table. The first is the flash itself, which turns one scattered read into two: one to fetch the piece of the map, one to fetch the data it points at. The second is host memory buffer, an NVMe feature that lets the drive borrow a small allocation of system RAM and keep the busiest part of the map there.

That is a genuine fix for the common case and not a complete one. The allocation is a small fraction of what a whole map needs, so it holds a working set rather than the table, and access scattered across a large drive's full address space will miss it. It is memory the host owns and can reclaim, so nothing the drive cannot afford to lose goes in it — it caches lookups, not your writes. And it is an NVMe feature, so a DRAM-less SATA drive has nothing in between: its table lives in flash.

So the difference shows up narrowly: scattered access across a large and fairly full drive, and long mixed workloads that rewrite the map about as fast as they read it. A borrowed window covers the rest.

Which one to buy for what you do

These are two axes, not one ladder. A drive can be TLC with DRAM, TLC without, QLC with, or QLC without. They feel like one axis because the cheapest drives in a range tend to be QLC and DRAM-less together, so someone comparing the ends of a range never sees the middle.

For a boot drive, prefer TLC and let the rest go. It takes the small scattered writes, lives closest to full, and is the most work to replace. Whether it also carries DRAM matters much less on a machine whose operating system and driver support host memory buffer.

For bulk written in long runs and read many times afterwards — a game library, a media archive, footage you are keeping rather than cutting — QLC is a sensible compromise. The writes arrive in stretches you can afford to have run slower, and read speed, though it carries some of the cost of those narrower bands, is far closer between the two than write speed is.

The combination to avoid is a QLC drive kept nearly full and written to constantly. Its dynamic cache is smallest exactly when it is asked for the most, and the rate underneath is the lowest you can buy.

Endurance is real and easily overstated. A cell has a budget of program and erase cycles, and per cell that budget is lower for QLC, because narrower bands tolerate less of the wear each erase leaves behind. But the figure printed on a drive is not per cell. It is total writes for the whole drive, so it scales with the number of cells and the capacity held back as spare, and a large QLC drive can be rated to absorb more writing over its life than a small TLC one. Compare that rating against what you write in a year, not against another drive's cell type. SSD endurance and warranties covers how to measure what you write, and what the rating is worth as a warranty term.

Why a listing rarely tells you either one

Neither is something manufacturers reliably publish. NAND type and cache design are missing from most product pages and nearly every retail listing, and missing from the datasheet often enough that the enthusiast press establishes them by testing rather than by reading.

They also change. A model can be revised partway through its life — a different NAND supplier, a different controller, DRAM removed — and go on selling under the same name and part number, sometimes in the same box. Reviews written before the revision describe a drive that is no longer what ships. The model name is not evidence of what is inside the unit that would arrive, and a listing repeating it is not either.

That is why, when a listing does not state the NAND type or whether the drive carries DRAM, we leave the field empty rather than inferring it from the model name. An empty field records what the listing said. It is not a claim about the hardware.

How to choose an SSD puts capacity, speed, and interface in order, and every SSD we track is on one page.

Common questions

Is QLC bad?
No, but it is different. QLC stores more data per cell, which lowers cost per terabyte and lowers sustained write speed and endurance. For a drive holding a large library that is mostly read, it is a reasonable trade.
Does a DRAM-less SSD matter for everyday use?
Usually not much on a modern machine, because host memory buffer lets the drive borrow system RAM for its mapping table. It shows up under heavy sustained writes and on machines that do not support that feature.