A Quick Flash Refresher

DRAM is very fast. Writes happen in nanoseconds as do CPU clock cycles, those two get along very well. The problem with DRAM is that it's volatile storage; if the charge stored in each DRAM cell isn't refreshed, it's lost. Pull the plug and whatever you stored in DRAM will eventually disappear (and unlike most other changes, eventually happens in fractions of a second).

Magnetic storage, on the other hand, is not very fast. It's faster than writing trillions of numbers down on paper, but compared to DRAM it plain sucks. For starters, magnetic disk storage is mechanical - things have to physically move to read and write. Now it's impressive how fast these things can move and how accurate and relatively reliable they are given their complexity, but to a CPU, they are slow.

The fastest consumer hard drives take 7 milliseconds to read data off of a platter. The fastest consumer CPUs can do something with that data in one hundred thousandth that time.

The only reason we put up with mechanical storage (HDDs) is because they are cheap, store tons of data and are non-volatile: the data is still there even when you turn em off.

NAND flash gives us the best of both worlds. They are effectively non-volatile (flash cells can lose their charge but after about a decade) and relatively fast (data accesses take microseconds, not milliseconds). Through electron tunneling a charge is inserted into an N-channel MOSFET. Once the charge is in there, it's there for good - no refreshing necessary.


N-Channel MOSFET. One per bit in a NAND flash chip.

One MOSFET is good for one bit. Group billions of these MOSFETs together, in silicon, and you've got a multi-gigabyte NAND flash chip.

The MOSFETs are organized into lines, and the lines into groups called pages. These days a page is usually 4KB in size. NAND flash can't be written to one bit at a time, it's written at the page level - so 4KB at a time. Once you write the data though, it's there for good. Erasing is a bit more complicated.

To coax the charge out of the MOSFETs requires a bit more effort and the way NAND flash works is that you can't discharge a single MOSFET, you have to erase in larger groups called blocks. NAND blocks are commonly 128 pages, that means if you want to re-write a page in flash you have to first erase it and all 127 adjacent pages first. And allow me to repeat myself: if you want to overwrite 4KB of data from a full block, you need to erase and re-write 512KB of data.

To make matters worse, every time you write to a flash page you reduce its lifespan. The JEDEC spec for MLC (multi-level cell) flash is 10,000 writes before the flash can start to fail.

Dealing with all of these issues requires that controllers get very crafty with how they manage writes. A good controller must split writes up among as many flash channels as possible, while avoiding writing to the same pages over and over again. It must also deal with the fact that some data is going to get frequently updated while others will remain stagnant for days, weeks, months or even years. It has to detect all of this and organize the drive in real time without knowing anything about how it is you're using your computer.

It's a tough job.

But not impossible.

Index Live Long and Prosper: The Logical Page
POST A COMMENT

295 Comments

View All Comments

  • Anand Lal Shimpi - Monday, August 31, 2009 - link

    Intel insists it's not an artificial cap and I tend to believe the source that fed me that information.

    That being said, if it's not an artificial cap it's either:

    1) Designed that way and can't be changed without a new controller
    2) A bug and can be fixed with firmware
    3) A bug and can't be fixed without a new controller

    Or some combination of those items. We'll see :)

    Take care,
    Anand
    Reply
  • Adul - Monday, August 31, 2009 - link

    Another fine article anand :). Keep up the good work. Reply
  • CurseTheSky - Monday, August 31, 2009 - link

    This is absolutely the best article I've read in a very long time - not just from Anandtech - from anywhere.

    I've been collecting information and comparing benchmarks / testimonials for over a month, trying to help myself decide between Intel, Indilinx, and Samsung-based drives. While it was easy to see that one of the three trails the pack, it was difficult to decide if the Intel G2 or Indilinx drives were the best bang for the buck.

    This article made it all apparent: The Intel G2 drives have better random read / write performance, but worse sequential write performance. Regardless, both drives are perfectly acceptable for every day use, and the real world difference would be hardly noticeable. Now if only the Intel drives would come back in stock, close to MSRP.

    Thank you for taking the time to write the article.
    Reply
  • deputc26 - Monday, August 31, 2009 - link

    been waiting months for this one. Reply
  • therealnickdanger - Monday, August 31, 2009 - link

    Ditto! Thanks Anand! Now the big question... Intel G2 or Vertex Turbo? :) It's nice to have options! Reply
  • Hank Scorpion - Monday, August 31, 2009 - link

    Anand,

    YOU ARE A LEGEND!!! go and get some good sleep, thanks for answering and allaying my fears... i appreciate all your hard work!!!!

    256GB OCZ Vertex is on the top of my list as soon as a validated Windows 7 TRIM firmware that doesnt need any work by me is organized....

    once a firmware is organised then my new machine is born.... MUHAHAHAHAHAHA
    Reply
  • AbRASiON - Monday, August 31, 2009 - link

    Vertex Turbo is a complete rip off, Anand clearly held back saying it from offending the guy at OCZ.
    Now the other OCZ models however, could be a different story.
    Reply
  • MikeZZZZ - Monday, August 31, 2009 - link

    I too love my Vertex. Running these things in RAID0 will blow your mind. I'm just waiting for some affordable enterprise-class drives for our servers.

    Mike
    http://solidstatedrivehome.com">http://solidstatedrivehome.com
    Reply
  • JPS - Monday, August 31, 2009 - link

    I loved the first draft of the Anthology and this is a great follow-up. I have been running a Vertex in workstation and laptop for months know and continue to be amazed at the difference when I boot up a comparable system still running standard HDDs. Reply
  • gigahertz20 - Monday, August 31, 2009 - link

    Another great article from Anand, now where can I get my Intel X-25M G2 :) Reply

Log in

Don't have an account? Sign up now