NAND Write Endurance
Flash memory possesses a finite erase/program cycle capability.
The MLC NAND datasheets guarantee at least 10,000 such cycles per physical block.
Field deployments indicate that each SLC NAND block can be typically erased and
programmed 200,000 to 1,000,000 times (or even more) before the end of life.
NAND wear out is manifested by Flash controller inability to erase,
or program, the cell within the allocated time.
Q & A
For many years Flash storage manufacturers tried to convince their customers that write endurance is a problem of the past. Effectively, wear-leveling combined with EDC /ECC techniques made Flash based storage devices bullet proof for consumer, and most industrial and defense storage products.
These devices have operated at relatively low transfer rates. The majority of applications were read intensive. In addition, the industrial and defense customers typically controlled system design and worked with Flash SSD manufacturers to ensure that write endurance is not a limiting factor.
These applications did not push Flash write endurance to its limits. It is quite comforting to realize that SLC NANAD based Flash SSD when overwritten once per day, would reach write endurance limit in about 250 years.
Today, Flash SSD's achieved sufficient capacity and performance to be deployed in main stream notebook, server, data recorders and similar performance intensive applications. The Flash memory transformation from niche to core storage technology is in the making.
These new applications will define the new limits for Flash SSD's.
Today's Flash SSDs support sustained writing speed of up to 100 plus MB/s. A 64GB drive would be overwritten 135 times per day. The drive will reach its write endurance within 2 years of such operations.
The MS Windows uses various log files. 4kB of data is written to the log file every second. The majority of high end Flash SSD's use dynamic wear leveling. With no additional steps, the write endurance limits could be reached within months of operations in such system.
The Flash SSD industry, including Memkor, believes that Flash memory will seriously challenge the HDD supremacy as primary computer storage. Memkor also believes that the industry has not reached the deployment levels that allow substantiating the theoretical so far "no problem" claim.
Flash SSD features such as SMART support enabling monitoring of the NAND usage is an indispensable tool.
The Flash SSD industry has to continue openly discussing and monitoring the Flash SSD write endurance performance before it disappears from the specifications.
It is also our obligation to ensure that factors influencing write endurance are known.
Flash Self Monitoring, Analysis and Reporting Technology (SMART) can be used to monitor Flash SSD NAND usage status. Monitoring the number of available spare blocks and the most stressed portion of memory provides an excellent view on the NAND health. The depletion of spare block pool may indicate that NAND is approaching end of life and needs to be replaced.
The SMART technology is available on all Memkor SATA and PATA products including Industrial Compact Flash drives.
The 3.5" form factor PATA Flash SSD's are also equipped with an LED indicators indicating Flash health.
Managing write endurance limit in Flash SSD
Let's first review basic Flash memory organization and NAND operations. It helps to understand the relationship between application and Flash SSD life expectancy prediction.
Flash SSD stores the data, in the same way as HDD, in sectors. The sector typically contains 512B of user data.
The Flash controller reads and writes data from and to NAND Flash in pages. One (1) page consists typically of four (4) sectors, hence contains approximately 2kB of data.
The data are erased in blocks. Sixty-four (64) pages define one (1) 128kB block for most SLC NAND today.
Flash requires erasing a block before a write.
Most SLC NAND chips support partial page programming allowing for limited capabilities to write multiple times to the same page without the need to perform a block erase operation.
In short, each OS storage request translates at the NAND level into three basic operations:1) Read a page (2kB of data)
2) Program a page (2kB of data)
3) Erase a block (128kB of data)
Writing to a page, or page programming can be only performed to the erased block.
Wear leveling technique is commonly used in Flash SSD to ensure an even wear-out of memory blocks.
Some sectors will fail during Flash SSD operations. Block sparing technique, similar for both HDD and Flash SSD, enables replacing the failed blocks by the new ones from the spare block pool.
Flash SSD users often assume that wear leveling is conducted across the entire Flash SSD. In reality, this approach is practical today only for very small capacity drives. Typically, the drive is divided into the wear leveling zones. Each zone may include a pool of 500 to 10,000 or more blocks.
Wear leveling uses blocks within the boundaries of one wear leveling zone. Some of those blocks may contain so called "static" data. The "static" indicates rarely modified data. Examples may include OS or user files.
The dynamic wear leveling excludes the blocks with the "static" data from the wear leveling. Consider a hypothetical 4000 wear leveling zone where 3500 blocks contain "static" data and the remaining 500 blocks are part of the wear leveling pool. The dynamic wear leveling would spread the writes among the 500 blocks only. The drive could fail prematurely because wear leveling was unable to spread the use among the blocks containing the "static" data.
When "static" data is modified however, wear leveling moves the entire block content to a new location and the block will be placed in the wear leveling block pool.
The dynamic wear leveling could be compared to a tire maintenance process that uses tire rotation and spare tires. The tires installed on a car are an equivalent of blocks in the wear leveling pool. The spare tires are an equivalent of blocks with the "static" data. Dynamic wear leveling action is like effecting a tire rotation. This evens out the wear of tires installed on the car.
Writing to a block with the "static" data is like replacing the tire installed with the spare tire. This helps to even out the wear among spare and installed tires.
Bottom line for the dynamic wear leveling is that if drive content changes from time, all blocks will experience similar usage during Flash SSD life time.
Some applications however, such as those that use file system, may push to the limit the dynamic wear leveling capability. For example, the drive area storing FAT and metadata may experience many more erases/writes than other areas of the wear leveling zone and/or disk.
The static wear leveling would help to address this challenge. It ensures that all blocks within the wear leveling zone, regardless if they contain "static" data or not, are subject to same level of usage. The static wear leveling would move the "static" data from one location to other, transparently to the host depending exclusively on block usage criteria.
While static wear leveling benefits MLC NAND based storage, virtually all industrial grade flash products use today dynamic wear leveling. When combined with the SLC NAND, it provides a very good flash SSD life expectancy for most high end applications.
Sequential write across the entire drive makes wear leveling irrelevant. Every memory section experience the same level of usage. The sequential writing acts like a perfect wear leveling maximizing life expectancy calculation. It should not be a surprise that Flash SSD manufacturers typically calculate life expectancy, expressed in years of operations, based on this model.
Consider a 64GB drive that is written to at 25MB/s rate. It will take about 40 min to overwrite the drive. Other word, each block will be written every 40 min. Assuming 100,000 write endurance limit and 24/7/365 operations, the drive would reach end of life in about 8 years.
Conversely, flash SSD manufactures would not be able to claim higher number of erase/write cycles than 100,000 guaranteed by the SLC NAND vendors, as the application uses equally all the blocks and the wear leveling does not have anything to level.Conversely, flash SSD manufactures would not be able to claim higher number of erase/write cycles than 100,000 guaranteed by the SLC NAND vendors, as the application uses equally all the blocks and the wear leveling does not have anything to level.
Without wear leveling, writing every minute to the same sector could fail Flash SSD within 70 days.
With wear leveling and say, 50 blocks in the wear leveling pool, the flash SSD life expectancy would extend from 70 days to 9.5 years. Or looking differently, wear leveling would allow changing the write endurance specification from 100,000 write cycles to 5,000,000 writes to the logical block.
This is the Flash SSD usage scenario that enables to claim 2,000,000 to 5,000,000 erase/program cycles in the write endurance specification.
The two examples described in the previous section demonstrate that Flash SSD life expectancy heavily depends on the application.
There are several Flash write endurance calculators available on the internet. Those that we've seen are based on the sequential writing without considering size of wear leveling zone, type of wear leveling algorithm or transfer block size. They are unable to model application details.
Memkor can help to determine what Flash solution suites best your requirements, based on the usage profile.