Windows

Vista: How SuperFetch and ReadyBoost work together

Here's a look at SuperFetch and ReadyBoost and an explanation of how they work together to enhance Windows Vista's performance.

In order to make Windows Vista, with all of it new GUI enhancements, a success, Microsoft knew that it was going to have to figure out some ingenious ways to squeeze more performance out of the operating system and the currently available hardware technology. Along the way, they've even helped to spur a new hardware technology.

To squeeze more performance out of the operating system, Microsoft has endowed Windows Vista with SuperFetch. To squeeze more performance out of the currently available hardware technology, Microsoft added ReadyBoost to Windows Vista. To help spur new hardware technology, Microsoft added ReadyDrive capability to the operating system.

Tips in your inbox
TechRepublic's free Windows Vista Report newsletter features news, scuttlebutt, and tips on Longhorn development, including a look at new features planned for this next version of the Windows OS.
Automatically sign up today!

In this edition of the Windows Vista Report, I'll take a closer look at SuperFetch and ReadyBoost and explain how they work together to enhance Windows Vista's performance. I'll then briefly discuss the concept of ReadyDrive as it relies on technology that is not yet available.

SuperFetch

Of the three performance enhancement technologies, SuperFetch is the only one that comes fully operational right out of the box. And while SuperFetch by itself can enhance the operating system performance, it will jump up to the next level when used in conjunction with ReadyBoost or ReadyDrive.

The biggest culprit when it comes to slow performance in the computer is disk I/O. As the Windows operating system has evolved over the years we've seen several technologies designed to attempt to mitigate this performance drain. The most notable of these technologies is virtual memory, which is also known as the swap file of page file. The Windows XP operating system added a new technology called Prefetch. And while these technologies did indeed do their part to improve performance, there was room for improvement.

The SuperFetch technology in Windows Vista is that improvement! SuperFetch is essentially a memory management feature designed to enhance Windows Vista's responsiveness when loading and switching between applications that you use most often. Using adaptive techniques, SuperFetch will constantly reorganize most often used data and applications on the hard disk and intelligently move them to specific locations on the hard disk where they can be loaded into memory the fastest.

For those of us who remember using Windows 3.x, the notion of constant data reorganization may bring back memories of an performance stealing annoyance we called disk thrashing, in which the operating system tried to simultaneously perform all disk I/O operations. However, SuperFetch won't fall victim to that problem as it takes advantage of an I/O prioritization technology, in which applications are marked as either a low- or high-priority I/O application. With this system SuperFetch will temporarily sideline a low-priority I/O application when a high-priority I/O application takes precedence. Of course, this will greatly improve the performance of those applications marked as high-priority I/O.

ReadyBoost

While SuperFetch is designed to more efficiently manage memory usage, it must still depend on the speed of the hard disk to move data and applications from the cache to RAM. And as we all know by now, the fact that a hard disk is a device that relies on physically moving components makes it inherently slow, regardless of how much hard disk performance has improved over the last few years.

However, the widespread availability of USB memory stick with fast access flash memory offered Microsoft an alternative place to work with SuperFetch's cache. When you insert a USB memory stick into a Windows Vista system you'll see an AutoPlay dialog box like the one shown in Figure A.

Figure A

When you insert a USB memory stick into a Windows Vista system you'll see this AutoPlay dialog box.

When you click the button Speed Up My System Using Windows ReadyBoost, Windows Vista will initiate a series of tests to determine whether the USB memory stick is compatible with ReadyBoost. You'll then see the ReadyBoost tab on the disk's properties sheet. If the USB memory stick isn't compatible, you'll see a message informing you that the device doesn't have the required performance characteristics for ReadyBoost. If the memory stick is compatible, you can select the Use This Device option to enable ReadyBoost and specify how much space that you want to make available to SuperFetch, as shown in Figure B.

Figure B

Windows Vista will automatically set aside a recommended amount of space for use with SuperFetch.

(While many of currently available USB memory sticks meet the compatibility requirements for ReadyBoost--2.5MB/sec throughput for 4K random reads and 1.75MB/sec throughput for 512K random writes--Microsoft is working with vendors and developing a ReadyBoost logo program for USB memory sticks.)

As you can see, Windows Vista will automatically set aside the recommended amount of space, but you can use the slider to change the amount of space. In this example, Windows Vista recommended reserving 880MB of the 1GB USB memory stick.

Once you click OK, Windows Vista will configure the USB memory stick for ReadyBoost and immediately copy the cache over to the drive and begin using it. If you access the drive from Computer, you can actually see the cache, as shown in Figure C.

Figure C

Windows Vista immediately copies the cache over to the drive and begins using it.

In order to ensure the safety, integrity, and efficiency of the ReadyBoost system, Microsoft has added several safeguards. To begin with, the data on the USB memory stick is automatically encrypted using the Advanced Encryption Standard - AES 128. Therefore, if you happen to loose the USB memory stick, you won't have to worry about someone easily accessing the data. While Windows Vista will actually work from the cache on the USB memory stick, all the data in the cache is mirrored on the hard disk's cache. Therefore, if you inadvertently remove the USB memory stick while it's in use by ReadyBoost, the operating system will immediately fall back to the hard disk's cache and pick up right where it left off.

ReadyDrive

As I mentioned, ReadyDrive is designed to work with technology that's not yet available called a Hybrid Hard Drive (HDD), which is actually the combination of traditional hard disk and flash memory. In this case, the two technologies function together with the flash memory working on the frontline intercepting data and then dispatching it to the hard disk. This improves performance because the flash memory can handle the immediate I/O requests faster than the hard disk. Then, during periods on inactivity, cache data can be transferred back and forth between flash memory and the hard disk.

In addition to its performance enhancement features, the HDD technology will be a real boon to laptop users since it will decrease power consumption and lengthen battery life. In this case, while flash memory will be able to handle the majority of the hard disk related tasks, the hard disk, which is one of the biggest hogs of battery power, can actually spin down to a low power state until needed. In fact, chances are good that the HDD technology will first show up in new laptops.

Conclusion

Windows Vista's performance enhancing technologies SuperFetch, ReadyBoost, and ReadyDrive offer a real improvement for disk I/O operations. If you have comments or information to share about Windows Vista's SuperFetch, ReadyBoost, and ReadyDrive, please take a moment to drop by the Discussion area and let us hear.

About

Greg Shultz is a freelance Technical Writer. Previously, he has worked as Documentation Specialist in the software industry, a Technical Support Specialist in educational industry, and a Technical Journalist in the computer publishing industry.

12 comments
jonah jones
jonah jones

PC time would improve to the Nth degree

oopman2002
oopman2002

In the old old days (say DOS 3.3) I used to use a RAM card and create a RAM Disk which you would load on the common files that the operating system used and then reset the path to first search the RAM Disk. This is somewhat similar to cache'ing today except that specific files are loaded to the RAM disk. With cheap memory it would seem that this would be better than using a USB drive but doing the same thing except in computer memory?

joneisen1
joneisen1

Fom this article I deduce that I will see a benefit from ReadyBoost only if I have the SuperFetch service running. I turned off SuperFetch weeks ago on both of my computers because SuperFetch was causing constant and annoying thrashing for the first 10 or so minutes after booting up. After I disabled Superfetch the thrashing went away. Do I have to re- enable She SuperFetch servoce in order get a benefit from ReadyBoost? Any answers will be most appreciated

mitchell
mitchell

Throughput to a HDD typically ranges from 40 MB/s to 110 MB/s whereas throughput of USB devices acceptable for ReadyBoost is only 2.5MB/s. Why is it advantageous to page into USB Flash memory if the HDD is 10 to 50 times faster?

zczc2311
zczc2311

Using the Hard Disk to simulate RAM, which is a long standing feature of Main Frame operating systems certainly has its advantages but ultimately will degrade performance. Having an application use virtual RAM means that there must be an increase in Disk I/O. The advantage is that the application will run and not run out of RAM but there is a balance. Firstly an application must perform a disk I/O to receive the program files in limited pieces and the more physical RAM the greater the amount of information that can be read from the Disk. (Theoretically) Now IF some of that RAM is a page file on the hard disk another Disk I/O is required to access the page file RAM. If the disk is already busy reading application files and now we increase its load by pagefile also creating a disk I/O there must be a point were the disk and O/S needs to decide which is more important. The decisions are 1. The disk I/O to read the application program files 2. The disk I/O to write back and simulate RAM to run the same application just read from Disk. Effectively, as you don't get anything for nothing, the dilemma is "Are the Disk I/O's more busy reading the application program files than it is writing a the disk I/O to simulate the RAM required to run the very same program. The problem that we face is always the amount of RAM that an application can directly access to process instructions - this is a constraint of the O/S. Just because you have 4 GIG of RAM does not mean that the O/S can directly address all 4 GIG. Quite the contrary. This is where our memory managers come into play. Lets say the O/S can only directly address the first 640K of RAM. What the memory manager does is load instructions into the registers of the 640K RAM - process those instructions and the memory manager then throws the result up into the rest of the RAM. When the result is needed again, to further process, it is dragged out of the upper RAM back down to conventional RAM and further processing can occur. A memory manager that allows the whole amount of RAM to be used is just like a juggler throwing thing up and fetching them back when needed. With the added facet of the pagefile once the physical RAM becomes full a Disk I/O is required. At some stage the O/S needs to make a decision. Is it better to devote more Disk I/O time to reading instructions OR does it utilise time to write an I/O to the page file. This is all managed by the O/S. Personally IF the PC has the max amount of physical RAM installed AND still requires a Disk I/O to simulate more RAM then we really need to think about the fundamental operation of the O/S. How much RAM can it directly address and how much RAM does it need to juggle in and then does it requires a page file as well - Personally then its time to re-write the O/S in its memory management and its directly addressable RAM to process and the amount of physical RAM used by the memory manager. Page file addressing should be a last resort by the O/S. Adding to an overworked disk I/O will slow things down ultimately, however the application will never fall over and you will never see the old "out of memory" error response which is the only advantage of such and arrangement. If you have multiple hard disks the best thing you can do is direct the temp variable (another story) and place the page file on a different disk than the disk containing the O/S. This will help the overworked disk I/O of the single disk but don't get excited yet ? we then run into the bottle neck that is the I/O Bus speed which has nothing to do with the speed of the processor nor the speed of the RAM. Thank GOD for a 64 bit BUS. Next time you purchase a PC ? just compare the BUS speed as this will ultimately constrain the total amount of I/O weather they come from the Disk array, the processor and the RAM ? this is of particular importance, together with the speed of the Disk I/O when we start to employ a page file to speed up? the PC.

acyron
acyron

Right click on My Computer, left click on properties, left click on Advanced, left click, Performance, [settings] adjut for best performance or custom, if desired click apply. Then, left click on Advanced,left click Virtual Memory [change]. Next left click C:, check no paging file, click [set]. Next left click your removable flash drive, click custom, put in Initial size, makesize small than total size of disk, space is need for a file approx 5-10mb. Next put in max size using same method as previous step. Click [set], click apply and follow prompts. You may want to change the name of this drive to RAM DRIVE since it is now a required part of your windows operating system and should not be removed from the computer!

shaun
shaun

The overall throughput of the cache is not as important as seek and response time. Caching and Paging are not about moving around large files but more about quickly moving around small pieces of information. With Flash Memory, I can find and start delivering a small chunk and then transfer it before the HD has found it, moved the heads, read the data, etc. By the time throughput is beginning to matter, the operation is complete.

Bobby Dean
Bobby Dean

I'm with you ... It is good to see there are still thinkers out there ... I skipped Vista and got to this article after installing Windows 7 and was curious about ReadyBoost ... Anyway I've decided to installed the 64bit version so that I can take advantage of the larger ram size available and would like to look further into the availability of using a RAM Disk. I originally came across it in Windows 95 and would initialize a RAM Disk and then assign my TMP/TEMP location there, this greatly improved the graphic rendering I was doing at the time (from 10min to 20sec) ... I was curious as to why MS didn't open up the memory limitations they placed on the Win32 OS's (4GB)and go down the road of using a part of Physical Memory as a RAM Disk ... the reading from HDD to RAM then back to the HDD pagefile seems a bit dumb to me ...

fmendez
fmendez

Hey, I actually find your article very good. It's technical and yet any person out there could understand your point. I've known these things for a long time, this is why I don't get excited when I hear MS trying to create new features that will just create more I/O to my computer and certainly slowing it down. Being able to add more virtual RAM to a computer is ok, I guess for those people who doesn't have a lot physycal RAM, but even then; the person should know the ups and downs of doing such of thing. Great Job!

dawgit
dawgit

And you might not get a Christmas Card from Redmond this year. :_| Good point. You've been paying attention. (a good write-up too I might add.) I'm sure our George Ou will have an arguement to your piece, but you are correct. The point is MS does not expect people to think. It just sounds good, so it must be right? After all MS says so... :0 yea, well, as you just proved, there are a few of us still thinking out here. edited, just because...

zczc2311
zczc2311

After posting the original article I have had more than my fare share of hack attempts whilst trying to post any other article. The article I posted was a pure technical discussion with no reference to ANY current O/S out there. If you disagree or don't like my article, don't try and hack me, come out and publish your thoughts. P.S I am more secure than most banks so just stop now please. P.S.S Thanks to the reply from dawgit who had encouraging comments and I don't care for Christmas cards

The Listed 'G MAN'
The Listed 'G MAN'

however stating you are more secure than most banks will actually temp more hackers to try! I guess you found that out in Nov 2006.