SSD Simulator
Advanced

Flexible Data Placement (FDP): Hints Instead of Rules

A gentle way to cut write amplification — the host gives the SSD little hints, and the SSD still does the cleanup.

By now you know the villain of SSD performance: write amplification. A normal SSD runs its own garbage collection, but it has no idea which of your data changes often (hot) and which almost never changes (cold). So it mixes them in the same blocks. When it cleans a block, it must copy out the cold data that happened to sit next to the hot data — extra writes you never asked for.

Flexible Data Placement (FDP) fixes this with the lightest possible touch: the host adds a tiny hint to each write saying roughly “this belongs with that.” The SSD uses the hint to keep similar data together — and still does its own cleanup.

The host tags each write with a placement handle (officially a Reclaim Unit Handle, RUH) — think of it as a label like “hot” or “cold.” The SSD groups all writes with the same label into the same Reclaim Unit (RU), a dedicated region of flash.
Host tags each write; the device groups same-tagged data into one Reclaim Unit write (hot) write (cold) write (hot) Hot RU (fills with soon-dead data) Cold RU (write-once, stays valid) Cleaning the hot RU copies almost nothing → WAF → 1.0. Cold RU is never cleaned.
Same-labelled data lands together, so a hot RU fills with soon-dead data and is reclaimed with almost no copying.

Why grouping cuts write amplification

Because all the hot data sits in hot RUs, those units fill with data that is about to be overwritten. By the time the SSD cleans a hot RU, nearly every page is already invalid → it copies almost nothing → write amplification drops toward the ideal 1.0. Meanwhile the cold RUs hold write-once data that just sits there and never needs cleaning.

Analogy. FDP is labelled recycling bins. A conventional SSD is one bin for everything — the facility must hand-sort it. FDP gives you paper / glass / trash bins up front: the facility still runs the machines, but each bin empties cleanly. (ZNS, by contrast, is running the whole recycling plant yourself.)

The big difference from ZNS

This is the key beginner point: with FDP the device still does the garbage collection. The host only gives hints, and it can still write anywhere in any order. So FDP keeps the ordinary SSD interface — your software barely changes. ZNS is stricter and more powerful (host-managed, strictly sequential zones) but demands far more of the software.

One extra knob: II vs PI

When the SSD cleans a reclaim unit and finds a few pages still alive, where do those survivors go?

  • Initially Isolated (II) — all survivors are swept into one shared cleanup area. Simple, and robust when spare space is tight.
  • Persistently Isolated (PI) — each label's survivors stay with their own label, keeping the separation perfectly pure. Best when there is plenty of spare space, but it can backfire when space is scarce.

It's a real trade-off with no universal winner — exactly the kind of thing the simulator lets you explore.

In the EyanaSSDSim paper & simulator. The Live Simulator has an FDP mode (Conventional / FDP / ZNS). Toggle the hot/cold hint and watch reclaim units fill and clear. The academic reference for FDP is the WARP study (USENIX FAST 2026), the first open emulator and characterisation of real FDP SSDs.

Next, see all three side by side: Conventional vs ZNS vs FDP — Who Cleans Up?