Coding Horror

programming and human factors

Vista and the Rise of the Flash Drives

In my recent Windows Vista performance investigation, I discovered the new ReadyBoost feature. ReadyBoost allows you to augment your PC's performance using a USB flash memory drive. It's very easy to use; just plug in a USB flash drive that's 256 megabytes or larger, then navigate to the ReadyBoost tab on the properties dialog for the drive:

vista-readyboost.png

The drive has to meet certain minimum performance characteristics (defined in the ReadyBoost FAQ) to be usable for ReadyBoost. Vista performs a one-time performance benchmark on the drive after it's inserted to determine if the drive is suitable.

But what is ReadyBoost actually doing to improve performance? It's leveraging the unique advantages of flash memory..

  1. decent read and write speeds
  2. extremely fast random access times
  3. very low power consumption

.. by caching the system pagefile on that USB flash drive.* Subsequent accesses hit the cached, compressed pagefile on the flash drive and bypass the hard drive entirely.

If we've gone this far, you might wonder why we just don't go all the way and use a giant 32-gigabyte flash drive as our primary hard drive. I can think of three reasons why you wouldn't want to do that:

  1. Speed. Flash memory is fast, but it's not nearly as fast a modern hard drive. And it's not even remotely in the same league as system memory.
  2. Cost. Although flash memory pricing has been in freefall for a while, it's still rather expensive on a cost-per-megabyte basis. This will definitely change over time, however.
  3. Durability. Flash memory literally wears out after a fixed number of writes, usually 100,000 or so. Hard drives last many orders of magnitude longer.

Also, the performance benefits of a solid state hard drive-- even one based on ultra-fast battery-backed DDR memory-- aren't as amazing as you might think.

That's why the best solution might be a combination of traditional mechanical hard drives and flash memory-- so-called "hybrid" hard drives with embedded flash cache. For example, the Seagate Momentus 5400 PSD includes 256 megabytes of flash RAM. This feature is called ReadyDrive, and it's even better than ReadyBoost. Unlike a USB flash drive, the flash RAM on a hard drive can be read before the system is booted, and thus can be used to speed up boot and resume times, too.

It's looking more and more like flash memory is the future. But be careful, because not all flash memory is created equal. I researched USB flash drive performance recently and I found benchmark roundups at hardware secret, AnandTech, and Ars Technica. In my research, I found that there are at least three distinct tiers of flash drive performance today: mediocre, good, and best. The price difference between the best performers and the worst performers isn't much, so you might as well buy the fast ones. The flash drives that performed the best in the above three benchmarks were the Kingston Data Traveller Elite and the Lexar JumpDrive Lightning.

Cheap flash drives are cheap for a reason-- they skimp on performance. Here's performance comparison of three USB thumb drives I had on hand: a 1 gigabyte Iomega Micro Mini, a 1 gigabyte Kingston Data Traveler Elite, and a generic no-name 128 megabyte model I got at a trade show.

I ran SiSoft Sandra's flash memory test on these three drives. The results are summarized below. Note that the bars are stacked, so the total transfer rate is only as high as the largest sub-color in the bar.

thumb-drive-graph-read-write-2.png

There's a big disparity between read and write performance on flash drives. And small files are disproportionately painful to transfer through these devices. The cheaper the flash drive, the worse these characteristics will be. When you go for an inexpensive USB flash drive, that's the tradeoff you're making.

I also ran the command line chddspeed utility on these three drives. Here are the results for the random access read test.

thumb-drive-graph-random.png

Flash memory is exceptionally strong at random access; my fast WD Raptor drive can't touch these scores.

Here are the chddspeed results for sequential access.

thumb-drive-graph-sequential.png

Up to 12 Mb/sec is nothing to sneeze at, but it's nearly 6 times slower than the 68 Mb/sec the Raptor achieves. If you need fast sequential read (or write) speeds, you want a hard drive.

After all this analysis, it's clear to me that traditional hard drives and flash memory are quite complimentary; they're strong in different areas. But flash drives are the future. They will definitely replace hard drives in almost all low end and low power devices-- and future high performance hard drives will need to have a substantial chunk of flash memory on board to stay competitive.

* Yes, it's encrypted, and yes, it is optimized for the limited duty cycle of flash drives. It's even compressed, so that 1 GB flash drive is effectively 2 GB of cache. This is all covered in the excellent ReadyBoost FAQ.

Written by Jeff Atwood

Indoor enthusiast. Co-founder of Stack Exchange and Discourse. Disclaimer: I have no idea what I'm talking about. Find me here: http://twitter.com/codinghorror