Understanding SSD Over-provisioning (OP)

Percentage Over-provisioning =

Physical Capacity - User Capacity

User Capacity

Over-provisioning percentage formula.

While solid-state drives (SSDs) are often similar to mechanical Hard Disk Drives (HDDs) in physical dimensions (e.g., height, width and length) and external interface (e.g., SATA or SAS interface), the internal low-level operation and components of an SSD differ vastly from the spinning magnetic platter design of an HDD.

After an SSD is assembled, the SSD manufacturer can reserve an additional percentage of the total drive capacity for Over-provisioning during firmware programming. Over-provisioning improves performance and often increases the endurance of the SSD, helping the drive last longer due to the SSD Controller having more Flash NAND storage available to alleviate NAND Flash wear over its useful life.

Physical capacityUser capacity% Over-ProvisioningApplication Class
64GB 60GB 7% Read Intensive
96GB 90GB 7% Read Intensive
128GB 120GB 7% Read Intensive
128GB 100GB 28% More Write Intensive
256GB 240GB 7% Read Intensive
256GB 200GB 28% More Write Intensive
512GB 480GB 7% Read Intensive
512GB 400GB 28% More Write Intensive
1024GB 960GB 7% Read Intensive
1024GB 800GB 28% More Write Intensive
2048GB 1800GB 14% Read Intensive
2048GB 1600GB 28% More Write Intensive
Over-provisioning based on capacity and application class

Applications can be read intensive, such as typical client workloads where a user will generally do 20% writes to 80% reads. Enterprise applications using a storage device for read caching will be read intensive; if these applications write more data to a storage device, then they would be more write-intensive.

The OP capacity set by the SSD manufacturer can vary in size, depending on the application class of the SSD and the total NAND Flash memory capacity.

Larger capacity and different application class drives are typically configured with proportionally bigger over-provisioning due to the resource requirements in managing more NAND Flash with the use of Garbage Collection, spare blocks and enhanced data protection features.

This OP capacity is non-user accessible and invisible to the host operating system. It is strictly reserved for the SSD controller’s use.

Benefits of Over-Provisioning (OP)

How OP Improves SSD Performance

Each NAND Flash memory die is constructed of multiple blocks that contain a further multitude of pages.

NAND Flash can be read and written on a page level but only erased on a block level.

If a single page has to be modified or erased on an already programmed page within a block, then the entire block contents consisting of multiple pages must first be read into a temporary memory, and then erased, before the new block contents can be programmed to the same block address.

The only scenario in which a page can be written directly to a block within NAND Flash without this tedious read modify-write cycle is when the page is already in an empty state.

Keeping a large quantity of blocks empty and in reserve via over-provisioning aids in keeping performance consistent, especially in random write scenarios that exhibit the highest Write Amplification Factor (WAF).1

How OP Improves SSD Endurance

To understand why an SSD is configured with over-provisioning and how it benefits the SSD controller, we have to delve into the typical operation of an SSD and the limitations of non-volatile NAND Flash memory.

Each NAND Flash cell has a finite life expectancy, based on its program and erase endurance (P/E), which is characterized during the manufacturing process by the NAND Flash manufacturer because each program or erase function executed on a NAND Flash cell erodes the cell's capability to reliably store an electrical charge and may therefore threaten data integrity.

However, as NAND geometry migrates from 2D to 3D, NAND endurance will improve, die densities will increase and production costs will decrease, making SSDs more affordable.

To summarize, the three main factors that affect SSD endurance are:
  • NAND Flash program/erase endurance and geometry related read/program/erase complexity (Geometry in this case includes 2-dimensional vs 3-dimensional manufacturing technology)
  • SSD capacity
  • SSD controller capability and efficiency (garbage collection, write amplification, block management, wear-leveling, Error Correcting Code).

Maintaining Performance and Endurance via Over-Provisioning (OP)

To avoid a scenario where the SSD is filled to full capacity with invalid pages, over-provisioning is used by the SSD controller’s garbage collection function as a temporary workspace to manage scheduled valid page merges and reclaim blocks filled with invalid (or deleted) pages.

Any reclaimed pages/blocks are then added to the over-provisioned capacity to accommodate write operations from the SSD controller and maximize performance during peak traffic load as the performance impact of reading, erasing, modifying and writing all valid pages back into an already partially full block filled with invalid pages can be a slow exercise.

The garbage collection operates independently of the operating system and is automatically triggered during periods of low activity, periodically or by issuing the respective ATA Data Set Management TRIM command to schedule a garbage collection.

An always-available number of empty blocks via the over-provisioned capacity assists in maintaining effective wear-leveling on the NAND Flash as the SSD controller intelligently redistributes write operations across all NAND Flash memory cells evenly without impacting the SSD’s overall performance during peak traffic loads.

In addition, the ATA Data Set Management TRIM command can add to the SSD’s available space by reclaiming any invalid pages and unused user capacity.

Formatted Drive CapacityOver-Provisioning SizeSequential Read/WriteSteady-State 4k Read/WriteTBW (JEDEC Enterprise1)DWPD2
480GB (DC500R) 7% 550/500MB/s 98,000/12,000 IOPS 438 0.5
480GB (DC500M) 32% 555/520MB/s 98,000/58,000 IOPS 1139 1.3
960GB (DC500R) 7% 555/520MB/s 98,000/20,000 IOPS 876 0.5
960GB (DC500M) 32% 555/520MB/s 98,000/70,000 IOPS 2278 1.3
1920GB (DC500R) 7% 555/520MB/s 98,000/24,000 IOPS 1752 0.5
1920GB (DC500M) 32% 555/520MB/s 98,000/75,000 IOPS 4555 1.3
3840GB (DC500R) 7% 555/520MB/s  98,000/28,000 IOPS  3504  0.5
3840GB (DC500M)  32% 555/520MB/s  98,000/75,000 IOPS 9110  1.3
Over-provisioning based on capacity and application class

To understand the effects of OP, we will examine the Kingston enterprise SSDs, the DC500R SSD, for illustration. These SSDs ship in capacities of up to 3.84TB and allow users to use the Kingston SSD Manager tool to adjust over-provisioning. By adjusting the OP size, we can see the effects on performance and endurance using 7% or larger OP levels.

When we compare each paired capacities, we can see the following:
  1. The higher capacity drives (less OP) in each pair can maintain the same transfer speeds (Bandwidth), but Random Write IOs per Second (IOPS) are significantly reduced. That means that drives with less OP will perform well in Read intensive applications, but may be slower in write-intensive applications compared to drives with 32% OP.
  2. Less over-provisioning also means that Total Bytes Written (TBW) in Terabytes on each drive will be lower. The greater the OP percentage, the longer an SSD can last. A 960GB DC500R can accommodate up to 876TBW of data written, whereas the 800GB DC500R can achieve 860TBW. TBW numbers are derived by Kingston using JEDEC workloads as a reference1.
  3. When the TBW numbers are translated into Drive Writes Per Day (DWPD) over the warranty period, we can see that drives with 32% OP almost reach double the amount of writes per day. This is why 32% OP is recommended for applications that are more write-intensive.