TurboWrite: MLC Performance on a TLC Drive

All NAND trends towards lower performance as we move down to smaller process geometries. Clever architectural tricks are what keep overall SSD performance increasing each generation, but if you look at Crucial's M500 you'll see that it's not always possible to do. Historically, whenever a level of the memory hierarchy got too slow, the industry would more or less agree to insert another level above it to help hide latency. The problem is exascerbated once you start talking about TLC NAND. Samsung's mitigation to the problem is to dedicate a small portion of each TLC NAND die as an SLC write buffer. The feature is called TurboWrite. Initial writes hit the TurboWrite buffer at very low latency and are quickly written back to the rest of the TLC NAND array.

Since the amount of spare area available on the EVO varies depending on capacity, TurboWrite buffer size varies with capacity. The smallest size is around 3GB while the largest is 12GB on the 1TB EVO:

Samsung SSD 840 EVO TurboWrite Buffer Size vs. Capacity
  120GB 250GB 500GB 750GB 1TB
TurboWrite Buffer Size 3GB 3GB 6GB 9GB 12GB

I spent some time poking at the TurboWrite buffer and it pretty much works the way you'd expect it to. Initial writes hit the buffer first, and as long as they don't exceed the size of the buffer the performance you get is quite good. If your writes stop before exceeding the buffer size, the buffer will write itself out to the TLC NAND array. You need a little bit of idle time for this copy to happen, but it tends to go pretty quickly as it's just a sequential move of data internally (we're talking about a matter of 15 - 30 seconds). Even before the TurboWrite buffer is completely emptied, you can stream new writes into the buffer. It all works surprisingly well. For most light use cases I can see TurboWrite being a great way to deliver more of an MLC experience but on a TLC drive.

TurboWrite's impact is best felt on the lower capacity drives that don't have as many NAND die to stripe requests across (thus further hiding long program latencies). The chart below shows sequential write performance vs. time for all of the EVO capacities. The sharp drop in performance on each curve is when the TurboWrite buffer is exceeded and sequential writes start streaming to the TLC NAND array instead:

On the 120GB drive the delta between TurboWrite and standard performance is huge. On the larger drives the drop isn't as big and the TurboWrite buffer is also larger, the combination of the two is why the impact isn't felt as muchon those drives. It's this TurboWrite buffer that gives the EVO its improvement in max sequential write speed over last year's vanilla SSD 840.

Endurance: Not a Problem Even at 19nm RAPID: PCIe-like Performance from a SATA SSD
Comments Locked

137 Comments

View All Comments

  • spazoid - Thursday, July 25, 2013 - link

    It's free. Free is better.
  • jhh - Thursday, July 25, 2013 - link

    Are there any latency measurements in milliseconds as opposed to IOPS? With IOPS, the drive may be queuing rquests, making it difficult to translate IOPS to milliseconds per request.
  • Kibbles - Thursday, July 25, 2013 - link

    If I write 1gb/day on average to my SSD, since media files go on my home server, this drive would last me 395 years LOL!
  • sheh - Thursday, July 25, 2013 - link

    Anand, would you consider writing an article on the other aspect of endurance: data retention time? With TLC entering the fray it's starting to get even more worrying.

    It'd be interesting to know how retention time changes throughout a drive's life, trends in the last few years, differences between manufacturers, the effect of the JEDEC standard, whether there's any idle-time refreshing for old written cells, etc.

    And an idea: I'd like to see drives where you can configure whether to use the drive as SLC/MLC/TLC. Switch to SLC for reliability/performance, TLC for capacity.
  • MrSpadge - Saturday, July 27, 2013 - link

    "And an idea: I'd like to see drives where you can configure whether to use the drive as SLC/MLC/TLC. Switch to SLC for reliability/performance, TLC for capacity."

    Or a drive which switches blocks from TLC operation to MLC as it runs out of writes cycles. And finally to SLC.. at which point in time it should last pretty much infinitely.
  • mgl888 - Thursday, July 25, 2013 - link

    Great article.
    Does RAPID require that you install a separate driver or does it just work automatically out of the box? What's the support like for Linux?
  • bobbozzo - Friday, July 26, 2013 - link

    It's a driver, for Windows.
  • TheinsanegamerN - Saturday, July 27, 2013 - link

    and i dont think that rapid has a reason to be on linux. linux is already much better with ssd writes than windows.
  • chizow - Thursday, July 25, 2013 - link

    Minor spelling correction: http://www.anandtech.com/show/7173/samsung-ssd-840...

    "counterfit" should be "counterfeit"
  • chizow - Thursday, July 25, 2013 - link

    Nice review Anand, I'm really glad to see almost all the top SSDs from numerous makers (Samsung, Crucial, SanDisk, Intel) are creeping up and exceeding SATA2 specs across the board and nearly saturating SATA3 specs.

    It really is amazing though how Samsung seems to be dominating the SSD landscape. I know this review is a bit skewed though since you presumably tried to include almost all the Samsung capacity offerings (for comparison sake), but the impact of the 840, 840 Pro and now the 840 EVO on the SSD market are undeniable. They really have no weaknesses, other than perhaps the Seq. Write Speeds on the 840/EVO.

    I guess this is why there's so many deals currently on the 840, I bought the 250GB version earlier this month and don't really regret it given the price I got it for, but the EVO is certainly a step up in nearly every aspect.

Log in

Don't have an account? Sign up now