Write amplification

This multiplying effect increases the number of writes required over the life of the SSD, which shortens the time it can operate reliably.

Intel and SiliconSystems (acquired by Western Digital in 2009) used the term write amplification in their papers and publications in 2008.

[6] Due to the nature of flash memory's operation, data cannot be directly overwritten as it can in a hard disk drive.

Single-level cell (SLC) flash, designed for higher performance and longer endurance, can typically operate between 50,000 and 100,000 cycles.

As of 2011[update], multi-level cell (MLC) flash is designed for lower cost applications and has a greatly reduced cycle count of typically between 3,000 and 5,000.

A lower write amplification is more desirable, as it corresponds to a reduced number of P/E cycles on the flash memory and thereby to an increased SSD life.

In order to accurately measure the value for a specific SSD, the selected test should be run for enough time to ensure the drive has reached a steady state condition.

[1][7][14] Data is written to the flash memory in units called pages (made up of multiple cells).

The trade-off is that some of those blocks of data are actually not needed by the host and will eventually be deleted, but the OS did not tell the controller this information (until TRIM was introduced).

The result is that the soon-to-be-deleted data is rewritten to another location in the flash memory, increasing the write amplification.

In some of the SSDs from OCZ the background garbage collection clears up only a small number of blocks then stops, thereby limiting the amount of excessive writes.

[11] Another solution is to have an efficient garbage collection system which can perform the necessary moves in parallel with the host writes.

[20][21][22] The introduction of the TRIM command resolves this problem for operating systems that support it like Windows 7,[21] Mac OS (latest releases of Snow Leopard, Lion, and Mountain Lion, patched in some cases),[23] FreeBSD since version 8.1,[24] and Linux since version 2.6.33 of the Linux kernel mainline.

[25] When a file is permanently deleted or the drive is formatted, the OS sends the TRIM command along with the LBAs that no longer contain valid data.

The result is the SSD will have more free space enabling lower write amplification and higher performance.

It will take a number of passes of writing data and garbage collecting before those spaces are consolidated to show improved performance.

In those cases the SSD will continue to save and garbage collect those blocks until the OS uses those LBAs for new writes.

With an SSD without integrated encryption, this command will put the drive back to its original out-of-box state.

[33][34] Many tools use the ATA Secure Erase command to reset the drive and provide a user interface as well.

[34][35] GParted and Ubuntu live CDs provide a bootable Linux system of disk utilities including secure erase.

Each time data are relocated without being changed by the host system, this increases the write amplification and thus reduces the life of the flash memory.

[39] The separation of static (cold) and dynamic (hot) data to reduce write amplification is not a simple process for the SSD controller.

The drawback to this process is that somehow the SSD controller must still find a way to wear level the static data because those blocks that never change will not get a chance to be written to their maximum P/E cycles.

Once the blocks are all written once, garbage collection will begin and the performance will be gated by the speed and efficiency of that process.

[17] An SSD generally uses multiple flash memory components connected in parallel as channels to increase performance.

An SSD experiences write amplification as a result of garbage collection and wear leveling , thereby increasing writes on the drive and reducing its life. [ 1 ]
NAND flash memory writes data in 4 KiB pages and erases data in 256 KiB blocks. [ 2 ]
Pages are written into blocks until they become full. Then, the pages with current data are moved to a new block and the old block is erased. [ 2 ]
The three sources (levels) of over-provisioning found on SSDs [ 16 ] [ 26 ]