NAND Lesson: Why Die Capacity Matters

SSDs are basically just huge RAID arrays of NAND. A single NAND die isn't very fast but when you put a dozen or more of them in parallel, the performance adds up. Modern SSDs usually have between 8 and 64 NAND dies depending on the capacity and the rule of "the more, the better" applies here, at least to a certain degree. (Controllers are usually designed for a certain amount of NAND die, so too many dies can negatively impact performance because the controller has more pages/blocks to track and process.) But die parallelism is just a part of the big picture—it all starts inside the die.

Meet the inside version of our Mr. NAND die. Each die is usually divided into two planes, which are further divided into blocks that are then divided into pages. In the early NAND days there were no planes, just blocks and pages, but as the die capacities increased the manufacturers had to find a way to get more performance out of a single die. The solution was to divide the die into two planes, which can be read from or written to (nearly) simultaneously. Without planes you could only read or program one page per die at a time but two-plane reading/programming allows two pages to be read or programmed at the same time.

The reason I said "nearly" is because programming the NAND involves more than just the programming time. There is latency from all the command, address and data inputs, which are marginal compared to the program time but with two-plane programming they take twice the time (you'll still have to send all the necessary commands and addresses separately for both soon-to-be-programmed pages).

I did some rough calculations based on the data I have (though to be honest, it's probably not enough to make my calculations bulletproof) and it seems that the two-plane programming latency is about 2% compared to two individual dies (i.e. it takes 2% longer to program two pages with two-plane programming than with two individual dies). In other words, we can conclude that two-plane programming gives us roughly twice the throughput compared to one-plane programming.

"Okay," you're thinking, "that's fine and all, but what's the point of this? This isn't a new technology and has nothing to do with the M550!" Hold on, it'll make sense as you read further.

Case: M500

  M550 128GB M500 120GB
NAND Die Capacity 64Gbit (8GB) 128Gbit (16GB)
NAND Page Size 16KB 16KB
Sequential Write 350MB/s 130MB/s
4KB Random Write 75K IOPS 35K IOPS

The Crucial M500 was the first client SSD to utilize 128Gbit per die NAND. That allowed Crucial to go higher than 512GB without sacrificing performance but also meant a hit in performance at the smaller capacities. As mentioned many times before, the key to SSD performance is parallelism and when the die capacity doubles, the parallelism is cut in half. For the 120/128GB model this meant that instead of having sixteen dies like in the case of 64Gbit NAND, it only had eight 128Gbit dies.

It takes 1600µs to write 16KB (one page) to Micron's 128Gbit NAND. Convert that to throughput and you get 10MB/s. Well, that's the simple version and not exactly accurate. With eight dies, the total write throughput would be only 80MB/s but the 120GB M500 is rated 130MB/s. The big picture is more than just the program time as in reality you have to take into account the interface latency as well as the gains from two-plane programming and cache-mode (the command, address and data latches are cached so there is no need to wait for them between programmings).

Example of cache programming

Like I described above, two-plane programming gives us roughly twice the throughput compared to one-plane programming. As a result, instead of writing one 16KB page in 1600µs, we are able to write two pages with 32KB of data in total. That doubles our throughput from 80MB/s to 160MB/s. There is some overhead from the commands like the picture above shows but thankfully today's interfaces are so fast that it's only in the magnitude of a few percents and in real world the usable throughput should be around 155MB/s. The 120GB M500 manages around 140MB/s in sequential write, so 155MB/s of NAND write throughput sounds reasonable since there is always some additional latency from channel and die switching. Program times are also averages and vary slightly from die to die and it's possible that the set program times may actually be slightly over 1600µs to make sure all dies meet the criteria. 

Case: M550

While the M500 used solely 128Gbit NAND, Crucial is bringing back the 64Gbit die for the 128GB and 256GB M550s. The switch means twice the amount of die and as we've now learned, that means twice the performance. This is actually Micron's second generation 64Gbit 20nm NAND with 16KB page size similar to their 128Gbit NAND. The increase in page size is required for write throughput (about 60% increase over 8KB page) but it adds complexity to garbage collection and can increase write amplification if not implemented efficiently (and hence lower endurance). 

Micron wouldn't disclose the program time for this part but I'm thinking there is some improvement over the original 128Gbit part. As process nodes mature, you're usually able to squeeze out a little more performance (and endurance) out of the same chip and I'm thinking that is what's happening here. To get ~370MB/s out of the 128GB M550, the program time would have to be 1300-1400µs to be inline with the performance. It's certainly possible that there's something else going on (better channel switching management for instance) but it's clear that Crucial/Micron has been able to better optimize the NAND in the M550.

The point here was to give an idea of where the NAND performance comes from and why there is such dramatical difference between the M550 and M500. Ultimately all the NAND performance characteristics are something the manufacturers won't disclose and hence the figures here may not be accurate but should at least give a rough idea of what is happening at the low level.

Introduction, The Drive & The Test Performance Consistency & TRIM Validation
Comments Locked

100 Comments

View All Comments

  • hojnikb - Wednesday, March 19, 2014 - link

    Oh snap, i forgot to reply to @beginner99 :)
  • emn13 - Wednesday, March 19, 2014 - link

    The conclusion of this article is at odds with the benchmarks it includes. There's just a 20% performance difference on the heavy-load test between the 840 EVO and M550 1TB drives, less in lighter workloads. I don't believe a 20% performance difference is perceptible in practice, unless you're really doing long-duration purely disk-limited batch processing, and even then it's not exactly a very interesting difference.

    The appropriate conclusion here is: *any* reasonably modern SSD is more that fast enough that even a heavy workload won't cause user-noticable performance differences. It just doesn't matter. Other factors (e.g. power consumption, power loss protection, price, reliability, support) are what matter.

    The article's conclusion simply doesn't make sense given the numbers shown here.
  • hojnikb - Wednesday, March 19, 2014 - link

    Well, there are some reasonably modern ssds, that user WILL notice the difference. Crucial V4 for expamle..
  • Kristian Vättö - Wednesday, March 19, 2014 - link

    Okay, I'll let Anand know that we no longer need to do reviews because all modern devices are already capable of Facebook, email and text processing.

    In a more serious note, it's true that for light users any modern SSD is fine and that is what I said in the final page:

    "If you're a light user and price is the key purchase factor, then the M500 suffices and saves you money."

    And that is the biggest problem I have with the M550. The M500 already does it for the mainstream user group and to be honest it is the drive I would buy given the current prices.

    However, the M550 doesn't cut it for the enthusiast/professional group who want the best IO performance. It does the job for sure but the enthusiast/professional kind of people usually like the idea of having the best money can buy, even if the differences in real world aren't that big. On the other hand, that's also the user group that can actually take advantage of the extra performance.

    I would argue that there is no middle ground in the SSD market. It's either the mainstream market where price is all that matters and that's where the M500 fits in perfectly. The high-end market is where the performance and features are the main element but the M550 isn't competitive there. Everything in the middle are kinda purposeless - some people will always buy them but they don't have any clear inducement to make them alluring.

    P.S. Don't take the first line too personally or seriously. Sometimes the comments just make me feel like everything is already enough for everyone and we don't need improved hardware.
  • hojnikb - Wednesday, March 19, 2014 - link

    Yeah exactly. m550 really seems kinda redundant (not implying, that better performance isn't good), considering its suppost to be a high performance drive, yet it really compets with mainstream at best.
    I think crucial need to work on firmware department, because as we've seen, there's lots to be squeezed out of this marvell controler. They already have great nand, they just need to make firmware better and they could easily compete in the highend segment.
    Well atleast thats what i think anyway..
  • Cerb - Sunday, March 23, 2014 - link

    Given that read and write latency is consistently higher than other SSDs, I'd bet much of the speed limitations are due to RAIN, which has to be handled in software by the SSD's controller. If so, newer faster controllers are what it would take to improve the speed by any great amount, without sacrificing that feature.
  • emn13 - Wednesday, March 19, 2014 - link

    I'm not saying you shouldn't review these things - I'm extremely interested in the results of these reviews. I'm saying that your own results don't back up your conclusions. It's not just light workloads where the difference is hard to notice - the anandtech 2013 "destroyer" - IIRC which writes a considerable amount, quite a bit more that a light, normal desktop workload (or frankly even a fairly heavy desktop workload) only shows a 20% performance difference. The performance consistency numbers at the steady state are just below 5000 iops, and that's actually slightly better than the EVO 840.

    Notably, there *are* SSD's which are quite a bit slower, and I'm sure there will be SSD's (or are, if you pay enough) that outclass the M550 - but I'm just not seeing that in these results.

    Sorry if I came across as ungracious - it's a little unfair in that I'm commenting now in that it seems I think the coverage is poor. But I'm commenting now, because this is one of the rare articles where I think anandtech's conclusions aren't reasonable. I love your coverage, particularly of SSD's, and have gladly learned a lot from all the in-depth analysis you've done.

    So please don't take this personally (I may have exagerrated) - I really don't understand how given essentially equivalent performance to the 840 EVO in practical terms (and slightly better @ steady state) you can call the performance all that disappointing. It's not a top-performer; but then, it's clearly aimed at the larger capacity/lower-price, and then I really don't see how this conclusion stacks up.
  • emn13 - Wednesday, March 19, 2014 - link

    Hmm, I've gotta admit however that the smaller variants are a lot more disappointing. I'm kind of surprised how *much* slower they are - the 256GB version is less than half as fast on the destroyer, which is really will be noticable :-).
  • Kristian Vättö - Wednesday, March 19, 2014 - link

    Oh, absolutely not. Justified feedback like yours is always welcome :)

    I guess the key here is that I was expecting this to be a high performance drive because that's what Crucial was touting when they briefed us. Obviously I expected the performance to be close to drives like SanDisk Extreme II and OCZ Vector 150 because those are what I categorize as high performance drives. However, what we got is a drive with mediocre performance that didn't meet the expectations I had in my mind, so I can't say I'm satisfied.

    That doesn't mean the M550 is bad because the price is very competitive but I still think it's rather redundant because the M500 is even more competitive in price. If the M550 was to replace the M500, then the scenario (and hence conclusion) would be different but as it stands the M500 will continue to be the king of value.

    The EVO is different in this regard because it was always supposed to be a value drive and Samsung has the 840 Pro to cater the high performance market.
  • nick2crete - Thursday, March 20, 2014 - link

    Kristian ,
    do you think that these performance issues can be minimized/fixed with new firmware(s) from Crucial ?

Log in

Don't have an account? Sign up now