This article provides information on why SSD's wear out.
Why do solid-state devices wear out?
To discuss why a flash-based SSD has a limited write-life, let's look at the mechanics of flash, how it varies across flash types, and what the techniques are used to improve its functionality.
A flash memory device is read and written in pages. A read is relatively straightforward as a read command with the address is issued and the respective data is returned. A write can only occur to those pages that are erased, therefore host write commands invoke flash erase cycles prior to writing to the flash. This write/erase cycling causes cell wear which imposes the limited write-life.
NAND flash devices can be either single-level cell (SLC) or multi-level cell (MLC). SLC only stores one bit of information and requires only two voltage levels to represent a 0 or 1. This is the simplest implementation of NAND and has the highest endurance, which is around 100,000 cycles. As future generations of flash move to smaller geometries, the endurance will be decreased (we are already seeing some that have 50,000 cycles). MLC usually indicates storing two bits of information and requires four voltage levels to represent 00, 01, 10 and 11. The cell wearing is similar between SLC and MLC, but since more voltage levels must be sensed, the endurance levels are significantly reduced. MLC is usually around 10,000 but newer generations are as low as 3,000-5,000 cycles.
A flash SSD is composed of a quantity of flash die to attain the high capacities. To improve the write life of SSDs, several techniques are used, which can be applied to both NAND types. Host write accesses can occur to any location which can cause hot-spots, which causes premature wear in these locations. A technique called wear-leveling is used to prevent the hot-spots. Wear-leveling results in a nearly even distribution of write accesses across the total capacity of the SSD. Write-amplification is a measure of the ratio of the number of flash writes relative to the host write. As an example, if 2 flash writes are generated per host write, the write amplification is also 2. To reduce write-amplification, a technique called over-provisioning improves the garbage collection efficiency, thereby reducing write-amplification. Last, a technique typically applied to MLC uses lower-voltage levels during the write cycle to ease the cell wear, thereby improving write endurance.
While it would be difficult to determine exactly how long an SSD would last, there are guidelines provided to help estimate. SSD's use a metric that was developed by JEDEC called TBW (terabytes written). While the actual write-life will be impacted by the work-load profile (for example: random or sequential, block size, or write-activity), the TBW provides an estimate, but your actual mileage will vary. To determine the expected life, one would take the TBW and divide by the expected average BW of the writes to the drive. Typically, aside from very demanding applications, SSDs should be expected to last more than three years.
NAND flash memory is susceptible to wear due to repeated program and erase cycles that are commonly done in data storage applications and systems using Flash Translation Layer (FTL). Constantly programming and erasing to the same memory location eventually wears that portion of memory out and makes it invalid. As a result, the NAND flash would have limited lifetime. To prevent scenarios such as these from occurring, special algorithms are deployed within the SSD called wear leveling. As the term suggests, wear leveling provides a method for distributing program and erase cycles uniformly throughout all of the memory blocks within the SSD. This prevents continuous program and erase cycles to the same memory block, resulting in greater extended life to the overall NAND flash memory.
There are two types of wear leveling, dynamic and static. The dynamic wear algorithm guarantees that data program and erase cycles will be evenly distributed throughout all the blocks within the NAND flash. The algorithm is dynamic because it is executed every time the data in the write buffer of the drive is flushed and written to flash memory. Dynamic wear leveling alone cannot insure that all blocks are being wear-leveled at the same rate. There is also the special case when data is written and stored in flash for long periods of time or indefinitely. While other blocks are actively being swapped, erased and pooled, these blocks remain inactive in the wear-leveling process. To insure that all blocks are being wear-leveled at the same rate, a secondary wear-leveling algorithm called static wear leveling is deployed. Static wear leveling addresses the blocks that are inactive and have data stored in them.
Dell SSD drives incorporate both static and dynamic wear leveling algorithms to make sure the NAND blocks are wearing evenly for a greater extended life of the SSD.
Over provisioning improves:
- Write performance & IOPS