I have been receiving questions lately from people who are puzzled when companies use different parameters than their competitors use to specify the endurance of their SSDs. How do you compare one against the other? Some companies even switch from one parameter to another to define the endurance of different SSDs within their product line.
I have found that Intel uses three different endurance measures for its products: DWPD (drive writes per day), TBW (terabytes written), and GB/day.
There’s not any real difference between any of these measures – each one is one way of stating how many times each of the SSD’s locations can be overwritten before the drive has gone past its warrantied life.
The relationships between these three measures are illustrated in this post’s graphic. You can click on it to see an expanded version. It’s all pretty simple. We’ll spell out the relationships in detail below, but in brief, if you want to compare Continue reading “Comparing Wear Figures on SSDs”
A couple of specifications for SSD endurance are in common use today: Terabytes Written (TBW) and Drive Writes Per Day (DWPD). Both are different ways to express the same thing. It seems that one vendor will specify endurance using TBW, while another will specify DWPD. How do you compare the two?
First, some definitions. “Terabytes Written” is the total amount of data that can be written into an SSD before it is likely to fail. “Drive Writes Per Day” tells how many times you can overwrite the entire capacity of the SSD every single day of its usable life without failure during the warranty period. Since both of these are guaranteed specifications, then your drive is most likely to last a lot longer than the number given by the SSD’s maker.
To convert between the two you must know the disk’s capacity and the warranty period. If drive maker gives you TBW but you want to know DWPD you would approach it Continue reading “Comparing DWPD to TBW”
This is a bad day for The SSD Guy. I just finished publishing an eight-part series explaining How Controllers Maximize SSD Life, then my evil twin The Memory Guy today published a post telling of a new flash design from Macronix that might just eliminate the flash wear-out mechanism!
But my concerns are inconsequential compared to the feelings of all those folks who have devoted phenomenal time and energy to develop wear management algorithms.
This all stems from an article in the IEEE Spectrum that details a flash chip design that Continue reading “SSDs that Don’t Wear Out”
Given that you have used all those other forms of improving SSD wear that we have discussed so far, but you still don’t find that this is enough, what do you do next? Well a few SSD controllers go one step further and manage some of the inner workings of the NAND flash chip itself.
If that sounds like a significant undertaking to you, then you clearly understand why so very few controllers take this approach. The information used to perform this function is not generally available – it takes a special relationship with the NAND flash supplier – and you can’t develop this relationship unless the NAND supplier Continue reading “How Controllers Maximize SSD Life – Internal NAND Management”
One way that SSD controllers maximize the life of an SSD is to use feedback on the life of flash blocks to determine how wear has impacted them. Although this used to be very uncommon, it is now being incorporated into a number of controllers.
Here’s what this is all about: Everybody knows that endurance specifications tell how much life there is in a block, right? For SLC it is typically 100,000 erase/write cycles, and for MLC it can be as high as 10,000 cycles (for older processes) but goes down to 5,000 or even 3,000 for newer processes. TLC endurance can be in the hundreds of cycles. Now the question is: “What happens after that?”
In most cases individual bits start to Continue reading “How Controllers Maximize SSD Life – Feedback on Block Wear”
Over provisioning is one of the most common ways that SSD designers can help assure that an SSD has a longer life than the flash’s endurance rating would support. If an SSD contains more flash than is presented at its interface, the controller can manage wear across a larger number of blocks while at the same time accelerating disk performance by moving slow operations like block erases out of the way of the SSD’s key functions.
Many people like to compare wear leveling to rotating a car’s tires. In this vein, think of over provisioning as having a bunch of spare Continue reading “How Controllers Maximize SSD Life – Over Provisioning”
Write amplification plays a critical role in maximizing an SSD’s usable life. The lower the write amplification, the longer the SSD will last. SSD architects pay special attention to this aspect of controller design.
Unlike the other factors described in this series this is not a technique that extends flash life beyond the 10,000 erase/write cycles that one would normally expect to result in a failure, but it is very important to SSD longevity.
Write Amplification is sufficiently complex that I won’t try to define it in this post, but Continue reading “How Controllers Maximize SSD Life – Reduced Write Amplification”
There are more advanced means than simple error correction to help remove bit errors in NAND flash and those will be the subject of this post. The general term for this approach is “DSP” although it seems to have very little to do with the kind of DSP algorithm used to perform filtering or build modem chips.
While ECC corrects errors without knowing how they got there, DSP helps to correct any of the more predictable errors that are caused by internal error mechanisms that are inherent to the design of the chip. A prime example of such an error would be adjacent cell disturb.
Here’s a brief explanation of Continue reading “How Controllers Maximize SSD Life – Other Error Management”
Error correction (ECC) can have a very big impact on the longevity of an SSD, although few understand how such a standard item can make much difference to an SSD’s life. The SSD Guy will try to explain it in relatively simple terms here.
All NAND flash requires ECC to correct random bit errors (“soft” errors.) This is because the inside of a NAND chip is very noisy and the signal levels of bits passed through a NAND string are very weak. One of the ways that NAND has been able to become the cheapest of all memories is by requiring error correction external to the chip.
This same error correction also helps to correct bit errors due to wear. Wear can cause bits to become stuck in one state or the other (a “hard” error), and it can increase the frequency of soft errors.
Although it is not widely Continue reading “How Controllers Maximize SSD Life – Improved ECC”
Since NAND flash is weakened by erase/write cycles then it would make sense to try to reduce those cycles to prolong the life of an SSD right? That’s what external data buffers are designed to do.
There are many ways to use RAM (either a RAM internal to the SSD controller chip or a discrete DRAM chip on the SSD’s printed circuit card) to stage data in a way that will reduce erase/write cycles.
One is to perform a function called “Write Coalescing.” This involves Continue reading “How Controllers Maximize SSD Life – External Data Buffering”