Flash + Hard Drive = Speed + Battery

If you have seen a recent presentation on Windows Vista, you may have noted that fully using new hardware is a recurring theme. So is the use of flash memory. The presenter might have also mentioned “hybrid hard disks with flash memory”.

So how can a hybrid flash/hard drive help speed up Windows Vista? The basic idea is to speed up the boot process as well as improving your notebook battery life. So how is this implemented?

Actually, the hard drive is doing the hard work in hardware, carrying out orders by Windows Vista. The flash memory on the disk can be used as a read- and write- cache. When used as a write cache, the drive can buffer large amounts of data. The flash memory cache is non-volatile, so there is no danger of losing data when power is lost.

This can also be utilized to defer writing for a long time. Power save may have powered down the drive, and as long as there is room in cache and no need to spin up the drive this is a great way to save power.
Read caching is assisted by the operating system. Using new ATA8 NV commands, Windows Vista instructs the drive to “pin” sectors into cache. The OS can also pin writes to cache (think: hibernation file). The OS also queries cache hits and misses for further optimization.

The recently published hardware recommendations for Windows Vista already mention such devices. The need to have embedded flash memory of reasonable size (256 – 512MB) and have to meet certain performance requirements (e.g. read/write random 4K blocks with at least 4MB/s). Looking at the rapidly falling prices for say, 1GB flash drives, I can imagine drives with multiple GBs of flash embedded for the near future.

Hardware is already on its way: Seagate has already announced a series of 2.5” Notebook drives called Momentus 5400 PSD with a capacity range up 160GB. Samsung also announced a range of hybrid drives to ship by January 2007 (according to Tom’s hardware guide)

If you are curious about all specs, have a look at the T13 Committees web site. The T13 Committee is responsible for driving ATA storage commands. Search for “Non-Volatile Cache Command” and you will see the details.