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:


This is a companion discussion topic for the original blog entry at: http://www.codinghorror.com/blog/2006/09/vista-and-the-rise-of-the-flash-drives.html

Here are some actual perf numbers from ReadyBoost (USB flash cache) and ReadyDrive (HDD flash cache) from TechEd 2006:

http://www.tgdaily.com/2006/06/15/teched2006_fresh_demos_of_superfetch/

Ayers also touted ReadyDrive for being “your notebook’s best friend.” Powering down the hard drive rotor, he said, will noticeably improve battery life by as much as 15 to 30 minutes on an ordinary notebook computer (like his). He showed a video of a test made at Microsoft where a hybrid hard drive, on a system running Word, was fully accessible to the operating system 100% of the time, while the rotor was powered on for less than a third of that time.

In Wednesday’s ReadyBoost/SuperFetch demo (pictures of which can be seen in our accompanying image gallery), a battery of four applications were loaded in sequence: Outlook first, followed by OneNote, PowerPoint, and Adobe Acrobat. On an ordinary HP notebook computer, with a 2 GHz processor and 512 MB of RAM, the sequence of apps took 32.6 seconds of load time. With ReadyBoost turned on, load time immediately improved to 26.5 seconds - a boost of 18.7%.

Frankly, that’s not too impressive. But as Matt Ayers explained, SuperFetch is learning from its user about the patterns of hard disk pages it tends to load. Having seen the same sequence of data loaded into memory the same way twice before, SuperFetch then has reason to believe this may be a common occurrence for this system - for instance, a startup sequence. [And thus pre-emptively loads these memory pages into the USB flash ReadyBoost cache.] So for the third test, with exactly the same four apps, the load time was enhanced by about 206% over cold loading.

Jeff, I’ve got a page file set up as well with my 2 GB RAM but… it’s never being used, except for the handful of pages that the OS swaps out by default. Are you really experiencing disk thrashing with 2 GB?

So what happens if the drive is pulled during operation?

When I’m demoing Team System, I use…

  • a 1 gigabyte Windows Server 2003 image, running SQL Server 2005, Sharepoint Services, and Team Foundation Server.
  • a 512 megabyte Windows XP image, running Visual Studio Team Suite

… all on a laptop with 2GB RAM.

But even in more typical use, the page file on disk DOES get used. Disabling the page file has some bizarre consequences that aren’t immediately obvious. But try it yourself; some people like it:

http://www.codinghorror.com/blog/archives/000422.html

I expect with 4gb of RAM, you probably wouldn’t need to worry. Even if you had 32gb of RAM (I wish) your system will still resume and suspend faster with embedded flash cache, though.

Alex, your question is answered in the FAQ:

http://blogs.msdn.com/tomarcher/archive/2006/06/02/615199.aspx

I encourage anyone who is even vaguely interested in this feature to read the FAQ; it’s really quite good.

Offtopic (sorry)…

Looking at the title bar in your screenshot, it looks like you are using graphite colour scheme (and maybe transparency off). I’m using the same, is it me or is the title bar text really difficult to read in Aero? The “Outerglow” around the text looks like a smudge. I’ve even tried to make the text white and remove the smudge to no joy.

Jeff, would like your opinions on Vista UI in a post…

This seems silly. If I’m accessing my pagefile often enough that a flash cache of it will help system performance then I should either: 1) add more real memory so my working set doesn’t get paged, or 2) reduce the number of running apps (or their collective memory size) such that I’m not paging so frequently.

ReadyDrive sounds interesting, though (if nothing else because I don’t have to have a flash drive hanging off the side of my laptop). But the technology isn’t specific to Vista.

That’s true, adding more memory is better than using ReadyBoost. But that’s not always the easiest or most cost-effective option.

Besides the obvious 2GB max on laptops, there’s also users who aren’t comfortable opening up their desktops. Non-power users can add a ReadyBoost drive in a couple minutes, as opposed to the hassle of trying to figure out exactly what memory slots are available, how many pins the slots have, which are paired, and then finally what to buy that will work well with the existing memory. For most people, buying memory and installing it is not easy. It’s far easier to grab a spare 2GB USB drive out of the drawer…

I was at Lexar and M-Systems for a number of years and now consult to the flash memory industry. Conversations I’ve had with my contacts at Intel lead me to believe that ReadyDrive is a quick fix until “Robson” flash appears on motherboards next year.

The performance and life issue that Jeff points out are generally set by 1) the type of NAND flash, and 2) the flash controller chip that the flash drive manufacturer uses.

SLC - Single Level Cell, which is manufactured by Samsung, Hynix, Micron and Intel has a life span of 1 million program erase cycles (you should live so long). MLC - Multi Level Cell, is manufactured by the above companies, but the leading provider of MLC components is Toshiba. MLC is usuually rated only 10,000 program erase cycles, which makes it much better suited for your iPod Nano than your HDD replacement.

Silicon Motion (www.siliconmotion.com.tw) supplies the fastest flash controller chip in the market. They can offer sustained write speeds of 30 MB/sec.

What is inside that flash drive you just bought - no telling without cracking it open. Memorex, Verbatim, Kingston, Lexar, SanDisk, etc., all have the identification strings changed at the chip fabs so that any pinging of the drive returns only the brand info.

I was at the Denali Memcon in San Jose yesterday. Its a gathering of memory guys with nothing better to do. Samsung demonstrated side by side two Dell notebooks. One running a 32 GB SSD, and the other containing the standard Dell 40 GB HDD. The SSD version booted 40% quicker. The point is that notebook HDD’s are much slower than the 200 GB that you have in your desktop.

what about using some sort of software Ram drive? With 4GB+ or System ram, I would not miss a gig gone to the pagefile…

http://home.scarlet.be/~tsd59392/RAMDisk/ramdriv.htm

Good stuff, thanks for sharing.

Not that it’s relevant, but I’m not so sure about flash drives and hard drives saying nice things about each other, or maybe about the user. I’m guessing you meant “complementary”. (Sorry, my parents were teachers – it’s an OCB).

With 4GB+ of system RAM you probably don’t need a pagefile, as the page file is used to augment system RAM. -.-

Yes, adding more system memory is always a good thing. But unless you’re running a 64-bit OS, your apps can’t use 4gb all that effectively.

And as @Mark pointed out, adding a flash drive is often the path of least resistance.

Why not do both? Why does it have to be one or the other?

Possibly, and maybe only under x64. I tried running without a pagefile using 2gb of system memory and I had enough weirdnesses that I eventually was forced to turn the pagefile back on:

http://www.codinghorror.com/blog/archives/000422.html

Hi Bob, thanks for posting the great info. I tend to agree that we need this high-speed flash memory somewhere other than a USB port. Intel’s approach, putting flash memory on the motherboard, is definitely the most flexible… but it’s also a whole-system upgrade. Buying a hybridized flash drive, or a fast USB 2.0 flash drive, are much easier upgrade paths for better performance.

I’m sure, but I bet a lot of that perf was due to the fast random access. The flash hard drive tradeoffs do make sense for portable devices, but I think you could realize similar boot time benefits (with higher performance and a bit higher power draw) using a hybridized flash/physical drive.

So ReadyBoost only caches the pagefile? That doesn’t sound tremendously useful, especially as we move to 64-bit machines that can use more than 4 GB RAM. If you’re accessing your pagefile AT ALL during normal operation you should install more main memory!

ReadyDrive might be good for notebooks but let’s not forget that Vista is reported to be extremely power-hungry. Didn’t Beta 2 drain a fully charged notebook in like half an hour? I suppose they need ReadyDrive to get any respectable mileage out of the notebook battery…

Speed: ReadyBoost only caches small random reads to the pagefile. Under these conditions, flash memory outperforms hard disk drives. For large sequential reads, hard drives will always win. ReadyBoost is sensitive to random read performance of your flash drive. But there is no need to benchmark, just plug it in, Vista does the benchmarking. YOu will find a detailed entry in the logs. In fact, Vista’s test may be better than the tools you used. I.e., it tells you that your 2GB flash drive has 128MB fast flash, and the rest is slow.

Wear: flash memory lasts far longer than 100000 write cycles. Going by vendor specifications, a flash drive used by ReadyBoost would last between 8-80 years of 24x7 ReadyBoost use. So I guess it’s not an issue.

Unfortunately you can have just one ReadyBoost file in the system right now, and it cannot exceed 4GB, no matter how big your flash drive is.

Two questions:

  1. Has their been any talk of using the ReadyBoost usb drive as a Sleep/Hibernate storage device? If you have it attached already, why not just flash the memory to the drive, and power the whole system down?

  2. Are any manufacturers planning on making built in flash caches for new laptops, or purpose-built PCMCIA or mini-PCI cards? This seems like the perfect way to bring a borderline laptop into full Vista compliance.

Jeff, Since I’m rapidly acquiring a drawer-full of flash drives that Vista tells me are too slow to work with ReadyBoost, I’m curious as to whether you actually got either of your 1gb drives to work with it? (I probably should have asked before I went ahead and ordered the Kingston Data Traveler Elite.)

Richard, most of the flash drives I have on hand actually worked as ReadyBoost in Vista, even the slow-ish ones. Maybe I just got lucky.

But the Kingston Data Traveler Elite definitely works, I can personally vouch for that.