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.
To begin with, let’s look into the differences between how a HDD vs. SSD writes.
When it comes to data being saved on a HDD, the information will get placed wherever there is space for it. Often it will be saved where it will achieve the best read/write performance. The actual location of the saved data is not important because the master file table will keep track of it all. When it comes to erasing data, only when any new data physically overwrite the old will it truly be gone – this is why data recovery software and companies can recover „deleted files.“
In contrast, the SSD works entirely differently. Each NAND flash memory consists of several blocks each containing around 128 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.
What is Over-provisioning?
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 meaning the drive is more durable.
|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) summarized 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