Write amplification (WA) is a phenomenon associated with NAND Flash memory and Solid-State Drives (SSDs), which we first touched on here. Flash memory must first be erased before it can be rewritten with new data. In order to write a block of data, the SSD's NAND Controller will first ensure that the destination block is erased, and if it is not, it will erase all the bits in the block (typically zero out the block) before it writes the new data. This erase/write cycle of the entire block occurs even if only a single bit changes in the block. In this blog, we will cover the ramifications of WA on an SSD's usable life.
Due to the nature of NAND Flash memory operations, data cannot be directly overwritten as it can in a hard disk drive. When data is first written to a new SSD or one that has been Secure Erased (see here for details), the data cells all start in an erased “fresh” state so data can be written directly to the NAND by the NAND controller. This controller, which manages the Flash memory and interface with the host system, uses a logical to physical mapping system known as logical block addressing or LBA. 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 old location is no longer holding valid data, but it will eventually need to be erased before it can be written to again.
Flash memory can only be programmed and erased 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. A lower WA is more desirable to reduce the number of P/E cycles on the Flash memory and thereby increase the life of the SSD. Many factors will affect the WA such as sequential writes (lower WA) vs. random writes (higher WA), transaction size (larger transactions = lower WA) and free space from over-provisioning (more space = lower WA). The user generally cannot control WA — it is a function of the NAND controller's internal algorithms, the type and size of write operations and the availability of free space on an SSD.
The write amplification factor (WAF) is the amount of data the SSD controller has to write in relation to the amount of data that the host controller needs to write. A WAF of 1 is excellent, reflecting a 1:1 ratio between the data to be written and what was actually written by the controller. A WAF greater than 1 is less optimal, but this is unavoidable due to typical usage cases for NAND Flash which do not only have 100% sequential writes. Note that a high WAF usually increases the wear on SSD drives.
Some SSD controllers actually achieve a WAF below 1, which is highly desirable, through the use of data compression. When the data being written is compressible, these controllers actually extend the usable life of an SSD.
Write Amplification is an unavoidable side-effect of NAND Flash technology — whether used on SSDs, USB Flash Drives or SD cards. However, NAND Flash Controllers will use proprietary algorithms to try to keep the WAF as low as possible, often by using a DRAM cache chip and combining Writes. The key take-away is that Random writes wear an SSD much more than Sequential writes — there is no wear from reads.
Kingston rates its SSDs for Client systems (The V+ and V series SSDs) at 20GB in mixed Random/Sequential writes per business day — for 3 years. So, there is no cause for great concern for typical users, as studies have shown that even power users are typically under 10GB of mixed writes — and then only on specific days. In a future blog, we will discuss server use cases and SSDs.
Author: Cameron Crandall - Kingston Technology