ReadyBoost – swap space on a stick.


So, I’ve finally upgraded my laptop from Windows XP SP2 to Windows Vista.

The upgrade process itself took over three hours – the first fifteen minutes of which was basically me uninstalling the applications that the Vista installation told me would interfere with the upgrade to Windows Vista – they were the Digital Persona application that comes with Microsoft’s Fingerprint Reader, Ahead’s Nero CD/DVD burning software, and something else that I can’t remember right now, and obviously am not going to miss.

One of the neatest features of Vista that I’ve seen so far is the addition of “ReadyBoost”. Microsoft describes it as follows:

Windows Vista introduces a new concept in adding memory to a system. Windows ReadyBoost lets users use a removable flash memory device, such as a USB thumb drive, to improve system performance without opening the box.

Me, I prefer to think of it (somewhat inaccurately) as “swap space on a stick”. In programmer terms, swap space is a portion of your hard drive that is reserved for saving copies of information from memory while it isn’t needed. At the expense of a small delay when reading it back in, this allows your machine to appear to have more memory than it really does – program subroutines and user data that you aren’t using right now don’t have to hang around in memory, so you have more physical memory left for the subroutines and data that you are using right now.

Early implementations swapped any kinds of data into and out of memory – later implementations (and certainly this was true at least by Windows 3.1, back in the early ’90s) marked sections of memory as “discardable” – meaning that they could be swapped in from other areas of the disk, rather than having to be stored in the swap space.

ReadyBoost could easily have been implemented as simply an external backing store for this discardable memory – that would make it “swap space on a stick” in a very real sense.

What ReadyBoost actually does is to work with SuperFetch to provide something slightly more – when a program (or other read-only data) is loaded from disk, SuperFetch can often anticipate this demand, and use idle cycles to pull the information up ahead of time – and when it does this, it also copies the read-only data to the ReadyBoost-enabled thumb drive so that it’s available quickly after it’s been swapped out – far more quickly than from the hard drive inside your machine.

Because this is data that can be rebuilt from the hard drive anyway, it’s no loss to your reliability if you unplug the thumb drive – you just slow down a little again, as you go back to the original swap space and memory relationship.

Finally, it’s even been built with security in mind. The data stored on the ReadyBoost drive is automatically encrypted with AES-128 encryption (this is an acceptable trade-off of fast versus strong). That way, even if you remove your thumb drive in the middle of working on your system, and you drop it into some malfeasant’s lap, he won’t be able to read the read-only file you were looking at, or internal details of your code.

And, of course, you can remove the ReadyBoost cache file – it’s just an ordinary file – any time that you want to use the USB stick as an ordinary disk.

So, wait for the next office supply store sale, pick up a cheap USB 2.0 storage device, insert it into your Vista PC, accept the prompt to enable it for speeding up your PC, and see how much your performance improves. [In my case, just enough to make it enjoyable.]

11 Responses to ReadyBoost – swap space on a stick.

  • HiltonT says:

    Hi Alun,

    Unfortunately, your recommendation of picking up a cheap USB 2.0 storage device won’t necessarily work because a number of the cheaper no-name USB 2.0 drives are not fast enough for ReadyBoost to use – and even if they include some fast and then some slow Flash storage, ReadyBoost check the entire device and will reject it.

    Kingston, Sandisk and other reputable brands all seem to work in my experience, but I know that some people have been stung by slow devices.

    Basically, the device must be able to do 3.5 MB/s for 4 KB random reads uniformly across the entire device and 2.5 MB/s for 512 KB random writes uniformly across the device. Have a read of Tom Archer’s ReadyBoost rundown for more info –

  • HiltonT says:

    HI Alun,

    Also, I have tried using 768MB of my Kingston 1 GB USB key here to see what difference ReadyBoost makes to my system (Vista x64 Ultimate RTM, Pentium D 3.00 GHz, 2 GB RAM) and have found that it makes absolutely no difference to my system performance at all. Or no perceptible difference.

    I cannot tell if the USB key is inserted or not – so its back to being a USB key as it is significantly more useful that way. Triewd this for a 2 week period and honestly couldn’t pick any difference.

    Oh, well – it was worth a try.

  • That’s a useful summary, Alun.

    But is there any way to specify the encryption strength? In my experience, the performance difference between AES-128 and AES-256 is negligable.

    Since I have configured BitLocker to use AES-256 (a subject worth a considerable discussion in its own right), does ReadyBoost end up weakening BitLocker’s strength?

    And perhaps more importantly, how does this wrok with and without a TPM, and where is the key stored? (I hope it is a purely transient key gnerated when the token is inserted, adn discarded later.)


  • alunj says:

    I didn’t find a setting to raise ReadyBoost from AES-128 to AES-256.

    However, there’s a couple of comments to make:

    1. The BitLocker-protected data is the bigger target, and is going to use the same key over a longer period of time, compared to ReadyBoost which chooses a different key often.

    2. Seriously, AES-128 isn’t strong enough? What kind of cracker are you really expecting? If you are really in the market for that kind of protection, I’d suggest just buying more memory [Oh, and then watch out for the latent images in memory sitting around before the machine is booted!]

    3. There is no storage of the key – it’s totally dynamic, generated at least once per boot (I’d be surprised if it isn’t once per ReadyBoost session).

  • Hozer says:

    Ready Boost is a JOKE!!! Its too Slow!!

    Lets do the math………….

    Fact 1: The maximum data transfer rate on a memory stick is 24-30mb/s MAX!!!!

    Fact 2: The data transfer rate on a hard drive is 80+mb/s

    As you can see that memory sticks are about 2.5 time slower than a hard drive.

    Told Cha!!! 😉

  • patrice says:

    I’m not big on computers. I’d just like to find out how to uninstall readyboost thing because I am no longer seeing the option under Properties/Readyboost to “not use the device”.I tried saving some data on my stick but because the memory is in use,I can’t save any additional info. Can you help?

  • alunj says:

    Hmm… you have a really good point there, Hozer – which, I suppose, is why the ReadyBoost developers made it so that sequential access goes to the hard drive.
    ReadyBoost serves only short, random-access read requests from the memory stick. Compare seek times and see what your results are.

  • Aslomov says:

    I have a problem of it not having the readyboost tab anymore. I did a re-format of the drive ’cause a guide on the internet advised me to, and after doing so, lost the tab..

    I know the drive is compatable besause it said it on the packet, and it showed the tab before. But even though the tab was there, all it said under it was test again, nothing about turning it into a readyboost flash drive..

    The USB drive is 4GB. Any tips or anything would be really helpful. I’ve tried everything I can think of, and nothing really works that I find on the net, maybe it’s just me being stupid lol

    Anyways guys, thanx in advance..

  • alunj says:

    I’m sure you’ve already figured this out, but you need to re-format the drive using a format supported by ReadyBoost.
    I’ve heard of people who have success with FAT32, and some who have success with NTFS. Definitely not old-style FAT (aka FAT16), though.

  • pete says:

    What some of these comments don’t realize, that data transfer is only part of the thru-put equation. What is the average seek time of a thumb drive vs. a mechanical drive? The data transfer time pales when you add in the seek time, in ms, to any solid state device. DUH!

  • pete says:

    “Lets do the math………….

    Fact 1: The maximum data transfer rate on a memory stick is 24-30mb/s MAX!!!!

    Fact 2: The data transfer rate on a hard drive is 80+mb/s

    As you can see that memory sticks are about 2.5 time slower than a hard drive.
    Told Cha!!! ;)”

    You didn’t add in the average seek time for a hard drive, which will add LOTS of time and reduce your average total through put.


Leave a Reply

Your email address will not be published. Required fields are marked *