Trending Tags

See all »


About Michael J. Miller



Read full bio »

Windows 7: Making SSDs Work Better

Windows 7 is bringing a lot of changes, including more support for newer hardware--particularly for solid state drives (SSDs), both in terms of new commands and in the way the system itself works. A typical user won't see anything different, but over time, we should get better performance with systems with SSDs.

Thus far, SSDs have mainly been used in three situations: First, relatively small amounts of Flash storage were used in the earliest netbooks, providing 4GB, 8GB, or to 16GB of storage. This made sense, since PC makers can buy Flash memory in small increments, and they could include 8GB of Flash memory for less money than a hard disk. The problem is that as users decided they wanted to do more on such machine--notably, running Windows--they needed larger storage, so most of the market has now moved on to inexpensive hard drives.  

More important, I've seen lots of thin-and-light notebooks using SSDs, from the MacBook Air to the Thinkpad X300 to most of the newer thin and light machines that have been introduced lately. Current drives in this space typically use what is called MLC (multi-level cell) NAND flash and special controllers. They tend to be particularly fast in read speeds compared with hard drives, so that's great for things like boot up, but slower for writes, which is why so many use special controllers and cache.

(In addition, and in some ways most important today, SSDs have been used in server situations where read performance is most important. In this case, enterprises have primarily used drives based on what is known as SLC flash as a front end to databases. A number of companies have focused on making SSDs or just putting Flash memory on boards. But such systems use server operating systems, not client ones.)

If you have used a laptop with an SSD drive and Windows Vista, chances are you noticed that it booted very quickly but that it wrote relatively slowly. And you've also probably noticed that it gets noticeably slower over time. That's because of the way the drive works.

Because an SSD doesn't require a disk head to get to a particular point on a platter (as on a hard drive), it offers particularly fast reads of random information. In addition, many SSDs can read sequential data at a good rate. However, random writes are a different story. Your typical hard drive has a small amount of RAM as a cache, so writing to the drive appears to take a very short amount of time. (It takes longer to physically write the data to the drive, but you probably won't notice the difference, except in a power failure.) And of course, writing a lot of data (more than fills the cache) will slow down a hard drive.

When you use a hard drive and you delete a file (or indeed, any data), what really happens is that the block on the drive gets marked as unused, but the data doesn't actually get overwritten (which is why programs like Undelete often work). This makes no difference in performance, because the system will just write new data over the old data when it has to.

On an SSD, the big difference is that you can't just write over data in a cell; you have to erase it first. And you can't erase just one cell at a time, you have to erase a block of cells, and that takes time.  That's one reason why SSDs seem so much faster when they are brand new--there's no data to be erased.

In addition, individual cells in a Flash drive are much more prone to errors than bits on hard drives are, and over time, the cells can wear out. If an OS were to write data to the same cells over and over again, those cells would wear out first. That's why all SSDs have sophisticated controllers to move the data around and level the wear across the drive. But some are better than others.

In general, they should all be good enough so that a typical SSD should not wear out in normal use. But the controllers that do a better job and can better track what data is needed and what is not should be able to do more efficient erases, and thus wear better, giving better performance over a longer period.

To help with this, Windows 7 introduces a Trim command, which effectively tells the controller when data is no longer needed so that it can better manage when to erase different blocks of cells. But note this works only with the NTFS file system and with drives are connected over the ATA protocol. In other words, it works for typical internal drives but not for most external ones. Also note that you probably won't see this in most of the early machines coming with Windows 7 and SSDs, because most of the drive makers don't have TRIM support yet. But they are all working on it.

In addition, Windows 7 now is much more aware of SSDs and will disable a number of features that were designed to improve hard disk performance but that tend to either slow down or wear SSDs, including prefetching boot or application data. Microsoft has posted more detail on its Engineering Windows blog.

With better support for SSDs, I expect we'll see many more Windows 7 systems with just those kinds of drives, particularly as the price declines. After all, they offer the promise of improved performance, quicker startup times, somewhat better battery life, and theoretically, more reliability. (I say "theoretically" because while SSDs do better in protecting the data from things like drops, since there is no head to touch the media, the fact that cells wear out over time means we probably won't know long-term reliability for years.) 

My guess is that typical desktops and larger notebooks will stay with hard drives for a long time, as they offer larger capacities at much lower prices, and should continue to do so for years to come.  But for lightweight systems where battery life is important, SSDs should become more commonplace.
blog comments powered by Disqus