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

  • yut345 - Thursday, December 12, 2013 - link

    That would depend on how large your files are and how much space of the drive you will be using up for storage. I would fill up a 250GB drive almost immediately and certainly slow it down, even though I store most of my files on an external drive. For me, a 1TB would perform better.
  • Romberry - Saturday, July 27, 2013 - link

    Well...that sort of depends, doesn't it? The first 2.5-3GB or so are at close to 400mb/s before depleting the turbowrite buffer and dropping down to around 110-120mb/s, 2-3GB covers a lot of average files. Even a relatively small video fits. And as soon as the turbowrite cache is flushed, you can burst again. All in all, long (very large file) steady state transfer on the 120gb version is average, but more typical small and mid file sizes (below the 3GB turbowrite limit) relatively scream. Seems to me that real world performance is going to be a lot quicker feeling than those large file steady state numbers might suggest. The 120gb version won't be the first pick for ginormous video and graphics file work, but outside of that....3GB will fit a LOT of stuff.
  • MrSpadge - Saturday, July 27, 2013 - link

    Agreed! And if your're blowing past the 3 GB cache you'll need some other SSD or RAID to actually supply your data any faster than the 128 GB 840 Evo can write. Not even GBit LAN can do this.
  • nathanddrews - Thursday, July 25, 2013 - link

    RAPID seems intended for devices with built-in UPS - notebooks and tablets. Likewise, I wouldn't use it on my desktop without a UPS. Seems wicked cool, though.
  • ItsMrNick - Thursday, July 25, 2013 - link

    I don't know if I'm as extreme as you. The fact is your O/S already keeps some unflushed data in RAM anyways - often times "some" means "a lot". If RAPID obeys flush commands from the O/S (and from Anand's article, it seems that it does) then the chances of data corruption should be minimal - and no different than the chances of data corruption without RAPID.
  • Sivar - Thursday, July 25, 2013 - link

    You can always mount your drives in synchronous mode and avoid any caching of data in RAM.
    I wouldn't, though. :)
  • nathanddrews - Thursday, July 25, 2013 - link

    soo00 XTr3M3!!1 Sorry, I just found that humorous. I've actually been meaning to get a UPS for my main rig anyway, it never hurts.
  • MrSpadge - Saturday, July 27, 2013 - link

    It does hurt your purse, though.
  • sheh - Thursday, July 25, 2013 - link

    I wonder how it's any different from the OS caching. Seemingly, that's something that the OS should do the best it can, regardless of which drive it writes to, and with configurability to let the user choose the right balance between quick/unreliable and slower/reliable.
  • Death666Angel - Friday, July 26, 2013 - link

    That was my thought as well. The OS should know what files it uses most and what to cache in RAM. Many people always try to have the most free RAM possible, I'd rather have most of my RAM used as a cache.

Log in

Don't have an account? Sign up now