NAND endurance is something that always raises questions among those considering a move to solid state storage. Even though we have showed more than once that the endurance of today's MLC NAND based SSDs is more than enough for even enterprise workloads, the misconception of SSDs having a short lifespan still lives. Back in the day when we had 3Xnm MLC NAND with 5,000 P/E cycles, people were worried about wearing our their SSDs, although there was absolutely nothing to worry about. The move to ~20nm MLC NAND has reduced the available P/E cycles to 3,000, but that's still plenty.

We have tested MLC NAND endurance before but with the release of Samsung SSD 840, we had something new to test: TLC NAND. We have explained the architectural differences between SLC, MLC and TLC NAND several times by now, but I'll do a brief recap here (I strongly recommend reading the detailed explanation if you want to truly understand how TLC NAND works):

  SLC MLC TLC
Bits per Cell 1 2 3
P/E Cycles (2Xnm) 100,000 3,000 1,000
Read Time 25us 50us ~75us
Program Time 200-300us 600-900us ~900-1350us
Erase Time 1.5-2ms 3ms ~4.5ms

The main difference is that MLC stores two bits per cell, whereas TLC stores three. This results in eight voltage states instead of four (also means that one TLC cell has eight possible data values). Voltages used to program the cell are usually between 15V and 18V, so there isn't exactly a lot room to play with when you need to fit twice as many voltage states within the same space. The problem is that when the cell gets cycled (i.e. programmed and erased), the room taken by one voltage state increases due to electron trapping and current leakage. TLC can't tolerate as much change in the voltage states as MLC can because there is less voltage headroom and you can't end up in a situation where two voltage states become one (the cell wouldn't give valid values because it doesn't know if it's programmed as "110" or "111" for example). Hence the endurance of TLC NAND is lower; it simply cannot be programmed and erased as many times as MLC NAND and thus you can't write as much to a TLC NAND based SSD.

No manufacturer has openly wanted to discuss the endurance of TLC, so the numbers we have seen before have been educated guesses. 1,000 - 1,500 P/E cycles is what I've heard for TLC NAND. The reality can also be different from what manufacturers claim as we discovered in the Intel SSD 335 (though there is a high probability that it's just a firmware bug), so actually testing the endruance is vital. 

There was one obstacle, though. Samsung does not report NAND writes like Intel does and without NAND writes we can't know for sure how much data is written to the NAND because of write amplification. Fortunately, there is a a workaround: I wrote incompressible 128KB sequential data (QD=1) to the drive and took down the duration of each run and the Wear Leveling Count (similar to Media Wear Indicator). If I know the average write speed and the duration, I can figure out how much I wrote to the drive. Sequential large block-size data should also result in write amplification near 1x because the data is sequential and thus doesn't fragment the drive. I then compared the amount of data I wrote to the WLC values I had recorded:

Samsung SSD 840 (250GB) Endurance Testing
Total Amount of Data Written 92,623 GiB
Total Amount of WLC Exhausted 34
Estimated Total Amount of P/E Cycles 1,064
Estimated Total Write Endurance 272,420 GiB

It seems that 1,000 P/E cycles is indeed accurate. The raw Wear Leveling Count seems to indicate the amount of exhausted P/E cycles as it's inversely proportional to the normalized WLC value and once it hits 1,000, the WLC will hit zero. 

Note that if Samsung's WLC is anything like Intel's Media Wear Indicator, when the normalized counter value drops to 0 there's still a good amount of endurance actually left on the NAND (it could be as high as another 20 - 30%). At least with Intel drives, the MWI hitting 0 is a suggestion that you may want to think about replacing the drive and not a warning of imminent failure.

Conclusions

1,000 P/E cycles may not sound much but when it's put into perspective, it's still plenty. Client workloads rarely exceed 10GiB of writes per day on average and write amplification should stay within reasonable magnitudes as well:

SSD Lifetime Estimation
NAND MLC—3K P/E Cycles TLC—1K P/E Cycles
NAND Capacity 128GiB 256GiB 128GiB 256GiB
Writes per Day 10GiB 10GiB 10GiB 10GiB
Write Amplification 3x 3x 3x 3x
Total Estimated Lifespan 35.0 years 70.1 years 11.7 years 23.4 years

Of course, if you write 20GiB a day, the estimated lifespan will be halved, although we are still looking at several years. Even with 30GiB of writes a day the 256GiB TLC drive should be sufficient in terms of endurance. Write amplification can also go over 10x if your workload is heavily random write centric, but that is more common in the enterprise side - client workloads are usually much lighter. 

Furthermore, it should be kept in mind that all SMART values that predict lifespan are conservative; it's highly unlikely that your drive will drop dead once the WLC or MWI hits zero. There is a great example at XtremeSystems where a 256GB Samsung SSD 830 is currently at nearly 6,000TiB of writes. Its WLC hit zero at 828TiB of writes, which means its endurance is over seven times higher than what the SMART values predicted. That doesn't mean all drives are as durable but especially SSDs from NAND manufacturers (e.g. Intel, Crucial/Micron, Samsung etc.) seem to be more durable than what the SMART values and datasheets indicate, which isn't a surprise given that they can cherry-pick the highest quality NAND chips.

Comments Locked

48 Comments

View All Comments

  • Death666Angel - Saturday, November 17, 2012 - link

    Still running my original OCZ Agility and OCZ Vertex 2 here without issues.
  • iwod - Saturday, November 17, 2012 - link

    is there a software that records how many data i actually write per day or over a week?

    With a 16GB Memory system and No Virtual Memory. While Windows 7/8 are already doing its job trying to prefect as much data as possible i rarely sees my system memory being fully ulterised. So i am guessing i am doing very little write per day.
  • Kristian Vättö - Saturday, November 17, 2012 - link

    Many SSDs report Total Bytes Written (TBW) or Host Writes SMART value, of which both can be used to determine the amount of writes. I'm sure there are applications that record IO activity as well but I'm not aware of any good ones (the one we use is under very strict NDA).
  • iwod - Saturday, November 17, 2012 - link

    I was wondering when i am reading 2bit allows 4 signals while 3 bits allows 8 signals, doesn't that means 3bits should actually double the capacity of 2bit cell?
  • Kristian Vättö - Saturday, November 17, 2012 - link

    With MLC, you need four voltage states because there are four possible values (""00", "01", "10" and "11"). However, that is only two bits of data.

    TLC stores three bits but they can be organized in eight different way ("000", "001", "010", "100", "011", "110", "101" and "111"), hence you need eight voltage states.

    In other words, the increase in capacity is linear but the amount of voltage states (and thus the endurance) is exponential.
  • quixver - Saturday, November 17, 2012 - link

    I work with fairly large c++ code bases, and my compiler makes gratuitous use of the disk. With a traditional hard drive - a full rebuild of one of my projects took around 4 hours. With an SSD that time has come down drastically - under an hour in fact (the code base has grown since I switched to SSD - so the actual improvements are more than 4x ).

    So - if my SSD lasts me a year - it's more than paid for itself. And replacing the data is no biggie - all my data is either on dropbox, git/hg repos or a raided NAS.
  • spixel - Sunday, November 18, 2012 - link

    10gb a day?????

    I have only windows 7 installed on my ssd, all games get installed to my caviar green. I have 20gb per 24 hours according to ssd life, and that's just windows doing its thing while the pc is on.
  • haukionkannel - Sunday, November 18, 2012 - link

    Well, the normal user use his machine 2-3 hours in a day... max, so if you use your machine 24 hours a day, 20 gb seems to be guite low usage!
    (1-2 hours seems like good estimation of "normal" user usage in a day ...)
  • spixel - Sunday, November 18, 2012 - link

    I don't have my pc on 24 hours a day, I have a total of 10 days worktime and 220gb, which seems on the low end looking at other pictures of ssd life.

    I always wondered though, is its lifetime based on total worktime hours, or an estimate of say 3hr per day.
  • hurleydood - Thursday, March 28, 2013 - link

    The worst part is the host writes are 20GB per day but the actual NAND writes it could be close to 3.5 TB a day. My drive has 11GB a day writes or 3.2TB of host writes over 7105 hours on (296 days 24/7). By my calculations I have a write amplification of 175x and burned 4498 average P/E cycles, 11% drive life. That would be 2TB per day of NAND writes for 11GB of random host writes to the drive. 4498 average P/E cycles multiplied by 128GB drive size should give me 562TB total NAND writes. Divide that by my 3.2TB host writes and you get 175x write amplification.

Log in

Don't have an account? Sign up now