From Saturday, Nov 23rd 7:00 PM CST - Sunday, Nov 24th 7:45 AM CST, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
From Saturday, Nov 23rd 7:00 PM CST - Sunday, Nov 24th 7:45 AM CST, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
This document discusses how several factors impact the Drive Endurance formula when used to calculate how much data can be written to a drive on a LabVIEW Real-Time System, such as a PXI/PXIe or cRIO 9803, before it becomes unreliable.
Selecting the right flash-based storage device for your application often demands a tradeoff between cost, capacity, and robustness. For instance, while Single-level Cell (SLC)-based drives offer the most durability and longevity, they are also more expensive per GB than Multi-level Cell (MLC)-based drives. However, MLC-based drives have a much shorter life span than SLC drives, which can be particularly problematic when stored at elevated temperatures. To help determine which type of flash memory to use, we need to understand the life expectancy of each option and compare that to the requirements of the application. We start by asking the following questions:
Calculating the precise amount of endurance a SSD has under various operating and storage conditions is extremely complicated and involves many factors with both measured and statistical properties.
However, a good model of expected drive endurance can be given as:
where
Drive Endurance = Total amount of data that can be written, in Drive Writes
Flash Cell Endurance = Maximum number of program/erase (P/E) cycles for the given flash architecture
STF = Storage Time Factor which adjusts for length of time in storage
AT = Acceleration factor for Temperature which adjusts for the storage temperature
WAF = Write Amplification Factor which adjusts for how efficiently flash is being used
SSDs typical utilize NAND flash to store data in cells comprised of floating-gate transistors. The amount of charge stored in each cell determines the value of the data. As long as the charge is sufficient to determine the state of the cell or can be corrected through the use of error-correcting codes (ECC), then data integrity is maintained. The number of bits of data stored in each cell as well as how many times that cell can be written is determine by the structure used by the flash memory device.
Flash Architecture | Layers of Cells | Bits per Cell | Number of Cell Voltage States | Cell Endurance1 (P/E Cycles) |
---|---|---|---|---|
Planar SLC | 1 | 1 | 2 | ~100,000 |
Planar MLC | 1 | 2 | 4 | ~3,000 |
Planar eMLC/iMLC/pSLC | 1 | 1 | 2 | ~20,000 |
Planar TLC | 1 | 3 | 8 | <1,000 |
Vertical SLC | Varies, 64 typical | 1 | 2 | TBD2 |
Vertical MLC | Varies, 64 typical | 2 | 4 | TBD2 |
1Endurance assumes greater than 1 year of data rentention at 40°C storage at end of cell life
2 Vertical SLC and MLC flash are expected to be similar to planar flash in terms of endurance
Cell endurance is described as the number of program/erase (P/E) cycles a flash cell can undergo before data can no longer be sufficiently retained and the cell becomes unreliable. Every time a flash cell is written (one P/E cycle) the oxide layer of the cell is slightly degraded. As this layer weakens from the stress of P/E cycles it becomes easier for stored charge to leak, and the cell’s ability to retain data is reduced.
The level of charge in each cell must be kept within certain thresholds to maintain data integrity. Unfortunately, charge leaks from flash cells over time, and if too much charge is lost then the data stored will also be lost.
During normal operation, the flash drive firmware routinely refreshes the cells to restore lost charge. However, when the flash is not powered the state of charge will naturally degrade with time. The rate of charge loss, and sensitivity of the flash to that loss, is impacted by the flash structure, amount of flash wear (number of P/E cycles performed on the cell), and the storage temperature. Flash Cell Endurance specifications usually assume a minimum data retention duration of 12 months at the end of drive life.
For other durations, a Storage Time Factor (STF) can be used to adjust the Drive Endurance equation. The STF is measured as a ratio of time as compared to the standard 12 months. For example, if a 36-month storage duration is desired the STF would be 3 (36 months / 12 months). STF values for various storage duration are listed below:
Storage Duration | STF |
---|---|
1 month | 0.08 |
3 months | 0.25 |
6 months | 0.5 |
1 year | 1 |
3 years | 3 |
5 years | 5 |
10 years | 10 |
While both operating temperature and non-operating (storage) temperatures impact data retention, the non-operating temperature has a far more significant impact when calculating drive endurance.
Lower storage temperatures increase data retention duration while higher storage temperatures greatly reduce it. For example, increasing storage temperature from 40°C to 70°C can reduce drive endurance by more than an order of magnitude, resulting in data retention for a drive at the end of its life to be just a few weeks instead of a full year.
The Acceleration factor for Temperature (AT) can be used to adjust for storage temperature. This is derived from the Arrhenius equation and can be summarized by the following table:
Storage Temperature (°C) | AT |
---|---|
25 | 0.13 |
30 | 0.26 |
40 | 1 |
55 | 6.4 |
70 | 35 |
85 | 168 |
For more information on the impact of temperature on flash endurance and data retention duration, and how AT is calculated see Effects of Temperature on SSD Endurance.
Flash memory is rarely perfectly utilized, and there is usually some inefficiency resulting in an acceleration of drive wear. The Write Amplification Factor (WAF) is a representation of how effectively the flash is used where the higher the WAF, the lower the efficiency. Several factors go into determining the WAF, some of which are determined by the application:
Generally larger sequential writes are more efficient than smaller random writes. While there is no set formula for setting a WAF for industrial or embedded applications, the JEDEC application workload standards can be used as a proxy (see JEDEC JESD218 and JESD219 for details). Enterprise represents a variety of file sizes with random data, whereas Client
In addition, the WAF will be impacted by how well the drive firmware manages flash utilization through wear-leveling and intelligent block management. Since the WAF is highly dependent on application workload and drive firmware, a “rule of thumb” of WAF=4 is also sometimes used.
Workload | Type of Access | Typical WAF |
---|---|---|
Enterprise (JESD219) | Random data stored across the SSD | ~15 |
"Rule of Thumb" | Mix of random and sequential data used as an approximation of WAF when no other model is available | 4 |
Client (JESD219) | Typical of consumer laptops, mainly comprised of long sequential writes (e.g. photos, music) with some smaller random accesses | ~2 |
"100% Sequential" | All writes are performed in sequence with large files | ~1 |
A more precise determination of the WAF can be made through direct measurement of drive performance. A WAF for a given flash and application use case can be calculated by running an application for a few hours and measuring the actual amount of data written to the drive and number P/E cycles performed. Given the impact of WAF on drive endurance it is strongly recommended that applications are profiled to determine their WAF.
Drive Endurance can be determined once the Flash Cell Endurance, Storage Time Factor, Amplification factor for Temperature, and Write Amplification Factors are known.
Recall the drive endurance formula:
64 GB SLC SSD with a non-operating (storage) temperature of 40°C with streaming data logging (sequential writes) with 1 year of desired data retention. SLC Flash Cell Endurance is 100,000 P/E cycles, STF and AT are both 1 (since we’re at baseline 1 year at 40C), and the WAF is 1 for the "100% Sequential" model.
Total Bytes Written before end of life = 64 GB x 100,000 Drive Writes = 6400 TB
64GB SLC SSD with a non-operating (storage) temperature of 55°C with streaming data logging (sequential writes) with 1 year of desired data retention. SLC Flash Cell Endurance is 100,000 P/E cycles, STF is 1, AT is 6.4 for 55°C, and the WAF is 1 for the "100% Sequential" model.
Total Bytes Written before end of life = 64 GB x 15,614 Drive Writes = 1000 TB
128GB eMLC SSD with a non-operating (storage) temperature of 55°C with an unknown write profile with 24 months of desired data retention. eMLC Flash Cell Endurance is 20,000 P/E cycles, STF is 2 (24/12 months), AT is 6.4 for 55°C storage temperature, and the WAF is 4 using the “Rule of Thumb” model.
Total Bytes Written before end of life = 128 GB x 390 Drive Writes = 50 TB
480GB MLC SSD with a non-operating (storage) temperature of 70°C with streaming data logging (sequential writes) with 3 months of desired data retention. MLC Flash Cell Endurance is 3,000 P/E cycles, STF is 0.25 (3/12 months), AT is 35 for 70°C storage temperature, and the WAF is 1 for the "100% Sequential" model.
Total Bytes Written before end of life = 480 GB x 342 Drive Writes = 164 TB
The drive endurance formula can be used to adjust drive specifications for your application’s environmental and performance factors.
Unfortunately, there is not a consistent method in specifying drive endurance. Some datasheets will simply list the drive capacity and flash technology, while other datasheets will list specific drive endurance specifications under specific test conditions. These specifications may list the storage temperature and data retention duration used for the calculation, but often this information not explicitly stated. If not specified, 40°C storage and 1 year of data retention may be assumed.
The drive's datasheet lists specifications as:
Flash Type | SLC |
---|---|
Drive Capacity | 64 GB |
Endurance: Total Bytes Written (Enterprise) | 500 TB |
Endurance: Total Bytes Written (Client) | 3855 TB |
The target application has a storage temperature of 55°C, with 1 year of expected storage, and is being used similar to that of a consumer storage device.
We can analyze the datasheet and determine that with SLC (100k P/E cycles) the effective WAF for Enterprise and Client is 12.8 and 1.7 respectively. Since the target application is similar to a consumer device, we can use the Client WAF of 1.7 and the corresponding endurance specification of 3855TB (or 60k Drive Writes).
Next we need to adjust for storage temperature and duration. This can be done with the following equation:
The specified Endurance is 3855TB with assumed 40°C storage (ATSPEC = 1), 1 year duration (STFSPEC = 1), and WAFSPEC of 1.7. The target application is 55°C storage (ATADJ = 6.4), 1 year duration (STFADJ = 1), and WAFADJ of 1.7. This gives us our adjusted drive endurance specification of: