Many of us are familiar with the sliding tile game 15-puzzle,
a sliding puzzle that consists of a frame of numbered square
tiles in random order with one tile missing. With just one
empty square, shifting pieces to new locations requires a
fair amount of effort because there is so little free space.
Having the puzzle fifteen-sixteenths full makes for challenging
and entertaining gameplay, but it’s certainly not the kind of
performance limitation you want in your solid state drive
(SSD). Imagine if the same puzzle were only half-full with
eight pieces. It could be solved almost instantly. Obviously,
more free space enables faster piece movement and task
(game) completion.
SSDs work on a very similar principle. Visualize the NAND flash memory inside of an SSD as a
puzzle, except that the amount of free space in an SSD is not fixed. Manufacturers utilize various
tactics to improve performance, and one of these is to allocate more free space, a process known as
overprovisioning (OP).
While the minimum amount of overprovisioning for an SSD is set at the factory, users can also
allocate more space. Either way, a moderate understanding of overprovisioning is necessary in order
to make better SSD purchasing decisions and to configure them in the most advantageous way for
each environment.
Background: The Nature of HDD vs. SSD Writes
The fundamental unit of NAND flash memory is typically a 4KB page (the minimum unit to program),
and there are usually 128 pages in a block (the entire grid layout of pages). Writes can happen one
page at a time, but only on blank (or erased) pages. Pages cannot be directly overwritten. Rather, they
must first be erased. However, erasing a page is complicated by the fact that entire blocks of pages
must be erased at one time. When the host wants to rewrite to an address, the SSD actually writes
to a different blank page and then updates the logical block address (LBA) table. Within the LBA table,
the original page is marked as invalid and the new page is marked as the current location for the
new data.
Of course, SSDs must erase these invalid pages of data at some point or the usable space on the
SSD would eventually fill up. SSDs, therefore, periodically go through a process called garbage
collection to clear out these invalid pages of data. During this process, the SSD controller reads all the
SSD Performance Advancements
TECHNOLOGY PAPER
Figure 1. 15-puzzle used for representation of how
overprovisoning works in SSDs
TECHNOLOGY PAPER
good pages of a block (skipping the invalid pages) and writes them to a new erased block. Then the
original block is erased, thus preparing it for new data.
Amount of Overprovisioning
All SSDs reserve some amount of space for these extra write operations, as well as for the controller
firmware, failed block replacements, and other unique features that vary by the SSD. Typically, 7.37%
of memory space is reserved at the factory as a provision for
background activities, such as garbage collection.
Even if an SSD appears to be full, it will still have 7.37% of
available space with which to keep functioning and performing
writes. Often, though, write performance will suffer at this level.
(Think in terms of the 15-puzzle with just one free square.)
In practice, an SSD’s performance begins to decline
after it reaches approximately 50% full. This is why some
manufacturers reduce the amount of capacity available to
the user and set it aside as additional overprovisioning. For
example, 28% may be reserved for overprovisioning. In
actuality, this 28% is in addition to the built-in 7.37%,
so it’s good to be aware of how these terms are used
loosely (Figure 2). Users should also be cognizant that
an SSD in service is rarely completely full. SSDs take
advantage of this unused capacity, dynamically using it as
additional overprovisioning.
Some SSDs include software tools to allow for overprovisioning by the user. Or users can set aside
a portion of the SSD when first setting it up in the system by creating a partition that does not use
the SSD’s full capacity. This unclaimed space will automatically be used by the controller as dynamic
overprovisioning.
One obvious drawback to overprovisioning must be addressed. The more unused capacity one
reserves to increase writing speeds, the less space is available for actual data.
When an SSD arrives new from the factory, writes will gradually fill the SSD in a progressive, linear
pattern until the addressable storage space has been entirely written. Essentially, this reflects an ideal
sequential writing condition. No garbage collection has been prompted at this point, and the little
pockets of invalid data caused by deletions has yet to impact performance, because there has been
no need to write to those pockets with new data.
Figure 2. Allocation of NAND flash memory inside a
100GB SSD with 28% OP
SSD Overprovisioning Example
Allocation of NAND Flash Memory
Inside a 100GB SSD with 28% OP
135.37GB
128GB
100GB
User Data
Dynamic OP
28% Factory-set OP
7.37% Inherent OP