This page is designed to be an updating and rewriting of my original “SSD Basics” guide. This guide went through a wide range of topics related to SSDs and their design. This document grew long and windy, difficult to traverse for most users. This is a move off of Reddit for updating and to split it into numerous sections to make parsing more easy and is a work-in-progress.
Future sections:
- Flash Organization
- Controller (ASIC)
- Program/Erase, Read, Commands, Addressing, Pins, and the Bus
- Volatile Memory and the Host Memory Buffer (HMB)
- Other SSD Components
- Memory Cells and Architecture
- Manufacturing, Layers, Decks, and String-Stacking
- Metadata, Mapping, and the Flash Translation Layer (FTL)
- Overprovisioning, System Area, Startup and System Operations
- Garbage Collection, Wear Leveling, TRIM, Recovery, Data-in-Flight/at-Rest
- Error Correction (ECC), Encryption, and Security
- SLC/pSLC Caching and Folding
- Protocol, Interface, Form Factor
- UASP, (TB), Enclosures, Bridge and Hybrid Chips
- Software, SMART, Drivers, DirectStorage
- Tiering, Caching, RAID, PCIe Bifurcation
- Gaming Consoles
- SSHDs, OptiNAND
- Standards: JEDEC, ONFi, SNIA, JTAG
- Security and Other Features
- K:V, ZNS, Compute, and Software-Defined Storage (SDS)
- Other Types of Flash and Non-Volatile Media (NVM)