From Raw Flash to Flash-Based SSDs

Let's see how flash chips are organized together to form a flash-based SSD.

Given our basic understanding of flash chips, we now face our next task: how to turn a basic set of flash chips into something that looks like a typical storage device. The standard storage interface is a simple block-based one, where blocks (sectors) of size 512 bytes (or larger) can be read or written, given a block address. The task of the flash-based SSD is to provide that standard block interface atop the raw flash chips inside it.

What does an SSD contain

Internally, an SSD consists of some number of flash chips (for persistent storage). An SSD also contains some amount of volatile (i.e., non-persistent) memory (e.g., SRAM). Such memory is useful for caching and buffering of data as well as for mapping tables, which we’ll learn about below. Finally, an SSD contains control logic to orchestrate device operation. See Agrawal et. al“Design Tradeoffs for SSD Performance” by N. Agrawal, V. Prabhakaran, T. Wobber, J. D. Davis, M. Manasse, R. Panigrahy. USENIX ’08, San Diego California, June 2008. An excellent overview of what goes into SSD design. for details; a simplified block diagram is seen in the figure below.

Get hands-on with 1400+ tech skills courses.