To begin with, let’s look at how an SSD works and the limits of non-volatile NAND flash memory, so you can understand why an SSD is configured with over-provisioning and what it does for the SSD controller:
Solid state drives (SSDs) are not often different in size (i.e., height, width, and length) and external interfaces (e.g., SATA or SAS interface) to hard drives (HDDs). But the inner workings of an SSD, its workings and components are significantly different from the rotating magnetic disk design of a HDD.
Each NAND flash cell has a limited lifetime based on the lifetime of its program and erase cycles (P/E). It is determined during manufacturing by the NAND manufacturer, because any program or erase function performed on a NAND flash cell can reduce the ability of the cell to reliably store an electrical charge and thus compromise data integrity.
This is how OP improves the lifespan of a SSD
Each NAND flash memory die consists of several blocks each containing a plurality of pages. NAND Flash is described and read at the page level, but can only be deleted at the block level.
If a single page on a programmed page within a block is to be modified or deleted, first the entire contents of all pages of the block must be copied to a cache and deleted before the new block contents can be programmed to the same block address.
A page can only be written directly to a block in a NAND flash without this lengthy read-modify-write cycle if the page is already empty.
So, if many blocks are empty and over-provisioned, they will contribute to consistent performance, especially in random write scenarios that have the highest Write Amplification Factor (WAF).
Over-Provisioning (OP) in detail
After assembling an SSD, the SSD manufacturer can assign an additional percentage of the total capacity of the memory to over-provisioning (OP) when programming the firmware. Over-provisioning not only improves performance, but often increases the life of an SSD. With more flash NAND space available to the SSD controller and less load on the NAND results to less flash wear over its lifetime, the drive is more durable.
Over-provisioning of 7 percent is often not unusual in SSDs. The figure below shows a breakdown of the amount of physical memory present in an SSD versus the amount of available memory available to the user after over-provisioning.
|Physical storage||User storage||Over-Provisioning in %||Application class|
|64 GB||60 GB||7%||Intensive reading|
|96 GB||90 GB||7%||Intensive reading|
|128 GB||120 GB||7%||Intensive reading|
|128 GB||100 GB||28%||Rather write intensive|
|256 GB||240 GB||7%||Intensive reading|
|256 GB||200 GB||28%||Rather write intensive|
|512 GB||480 GB||7%||Intensive reading|
|512 GB||400GB||28%||Rather write intensive|
|1024GB||800GB||28%||Rather write intensive|
|2048GB||1600GB||28%||Rather write intensive|
Figure: Over-provisioning based on storage capacity and application class
The applications, such as typical client workloads, can be read-intensive, in which the user generally uses 20% for writing and 80% for reading. Enterprise applications that use memory for read caching are read-intensive. If these applications were to write more data to memory they would be more write intensive.
Over-Provisioning (OP) summerized easily understandable
The SSD manufacturer can set up the OP capacity differently depending on the SSD application class and the total capacity of the NAND flash memory.
Higher capacities and drives with different user classes are typically configured with proportionally larger over provisioning. This is due to the resource requirements for managing more NAND Flash and the application of garbage collection, free blocks, and advanced privacy features.
This over-provisioning storage space is inaccessible to the user and is not displayed in the host operating system. It is reserved exclusively for use with the SSD controller.
Picture and article copyright: Kingston Technology