Write amplification explained
You are here
Everything Explained.Today
A-Z Contents
WR
WRI
WRIT
WRITE
Write amplification
Write amplification explained
Write amplification (WA ) is an undesirable phenomenon associated with flash memory and solid-state drives (SSDs) where the actual amount of information physically written to the storage media is a multiple of the logical amount intended to be written.
Because flash memory must be erased before it can be rewritten, with much coarser granularity of the erase operation when compared to the write operation, the process to perform these operations results in moving (or rewriting) user data and metadata more than once. Thus, rewriting some data requires an already-used-portion of flash to be read, updated, and written to a new location, together with initially erasing the new location if it was previously used. Due to the way flash works, much larger portions of flash must be erased and rewritten than actually required by the amount of new data. This multiplying effect increases the number of writes required over the life of the SSD, which shortens the time it can operate reliably. The increased writes also consume bandwidth to the flash memory, which reduces write performance to the SSD.[1] [2] Many factors will affect the WA of an SSD; some can be controlled by the user and some are a direct result of the data written to and usage of the SSD.
Intel and SiliconSystems (acquired by Western Digital in 2009) used the term write amplification in their papers and publications in 2008.[3] WA is typically measured by the ratio of writes committed to the flash memory to the writes coming from the host system. Without compression, WA cannot drop below one. Using compression, SandForce has claimed to achieve a write amplification of 0.5,[4] with best-case values as low as 0.14 in the SF-2281 controller.[5]
Basic SSD operation
See also: Flash memory and Solid-state drive.
Due to the nature of flash memory's operation, data cannot be directly overwritten as it can in a hard disk drive. When data is first written to an SSD, the cells all start in an erased state so data can be written directly using pages at a time (in size). The SSD controller on the SSD, which manages the flash memory and interfaces with the host system, uses a logical-to-physical mapping system known as logical block addressing (LBA) that is part of the flash translation layer (FTL).[6] When new data comes in replacing older data already written, the SSD controller will write the new data in a new location and update the logical mapping to point to the new physical location. The data in the former location is no longer valid, and will need to be erased before that location can be written to again.[7]
Flash memory can be programmed and erased only a limited number of times. This is often referred to as the maximum number of program/erase cycles (P/E cycles) it can sustain over the life of the flash memory. Single-level cell (SLC) flash, designed for higher performance and longer endurance, can typically operate between 50,000 and 100,000 cycles., 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. Since 2013, triple-level cell (TLC) (e.g., 3D NAND) flash has been available, with cycle counts dropping to 1,000 program-erase (P/E) cycles. 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. The wear of flash memory may also cause performance degrade, such as I/O speed degrade.
Calculating the value
Write amplification was always present in SSDs before the term was defined, but it was in 2008 that both Intel[8] and SiliconSystems started using the term in their papers and publications.[9] All SSDs have a write amplification value and it is based on both what is currently being written and what was previously written to the SSD. 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.
A simple formula to calculate the write amplification of an SSD is:[10]
writeamplification=
datawrittentotheflashmemorydatawrittenbythehost
The two quantities used for calculation can be obtained via SMART statistics (ATA F7/F8;[11] ATA F1/F9).
Factors affecting the value
Many factors affect the write amplification of an SSD. The table below lists the primary factors and how they affect the write amplification. For factors that are variable, the table notes if it has a direct relationship or an inverse relationship. For example, as the amount of over-provisioning increases, the write amplification decreases (inverse relationship). If the factor is a toggle (enabled or disabled) function then it has either a positive or negative relationship.[12]
Write amplification...