Original URL: http://www.theregister.co.uk/2009/05/06/win_7_ssd/
Windows 7 promises better SSD-ing performance than Vista
Tunes up for solid state
Microsoft has done some tuning of Windows 7, so that it will make much better use of PCs and laptops with solid state drives than the lamentable Vista. It's nothing very clever, but it should make for a snappier Windows.
A Microsoft blog on the topic says that the main problem areas are the limited life of SSDs, extended by wear levelling and random writes. Windows 7 has been tested and tuned to deal with these problems. Random writes are a problem for hard drives and to prevent them taking too long, modern hard drives have caches, with the random write considered dealt with by Windows when it's in the hard drive cache. If the cache fills before the writes can be actually written to the disk then we have a problem, as everything stops waiting for the disk to catch up with its cached backlog of writes. Fortunately this doesn't happen too often.
Some random write sequences on poorly designed SSDs can cause a similar kind of problem, with erase:write sequences for blocks backing up because the incoming random writes come in too fast. Multiple blocks have to first be erased and then written, slowing the system down.
Over-provisioned SSDs have ready-deleted blocks, which are used to store bursts of incoming writes and so avoid the need for erase cycles. Another tactic is to wait until files are to be deleted before committing the random writes to the SSD. This can be accomplished with a Trim operation. There is a Trim aspect of the ATA protocol's Data Set Management command, and SSDs can tell Windows 7 that they support this Trim attribute. In that case the NTFS file system will tell the ATA driver to erase pages (blocks) when a file using them is deleted.
The SSD controller can then accumulate blocks of deleted SSD cells ready to be used for writes. Hopefully this erase on file delete will ensure a large enough supply of erase blocks to let random writes take place without a preliminary erase cycle.
In Windows 7 the Trim operation is integrated into SSD partition and volume-related requests such as Delete and Format, and also with truncate and compression file system commands and the System Restore facility. Windows 7's own partitions are aligned with the SSD's structure to avoid involving unnecessary blocks.
One obvious thing not to do with SSDs is to defragment them, meaning make lots of fresh writes and erases as you move the existing data around the SSD. You don't need to defrag SSDS as they don't suffer from poor random read performance as hard drives do, and Windows 7 turns defragging off for SSDs. As many SSDS on the market don't declare themselves to be SSDS to Windows (7) then it will not defrag a system disk if its random read performance is more than 8MB/sec. Microsoft chose that number because no tested hard drives could achieve it whilst all tested SSDs could.
In SSD-equipped PCs and laptops, Windows 7 also turns off other facilities designed to compensate for poor HDD random read performance: Superfetch, ReadyBoost, ReadDrive and boot and application launch prefetching. This is the case unless the SSD exhibits severe random write performance that delays reads while the SSD catches up with its backlog. Some first generation SSDS are said to be exhibit this trait.
Compression of files and directors that have a very low write frequency can be worthwhile because it saves SSD cells for other data. Microsoft doesn't recommend compressing files and folders on SSDs that are written to frequently and in bursts, such as mail folders or temporary Internet directories.
It does recommend putting the pagefile on SSD, as most operations on the pagefile are small random reads or fairly large sequential writes which don't cause SSD problems. The hibernate.sys file, used when a Windows 7 system goes into and out of hibernation mode, is read and written sequentially and can be safely placed on an SSD device.
It seems that Windows 7 there is an Experience Index which is used to assess random read, random write and flushes. Microsoft won't let SSDs that perform poorly on these assessments join the 6.0+ and 7.0+ ranges. SSDs that perform well in all categories, and not in just one, will be included in these upper ranges.
The total effect of this SSD-specific tuning is that Windows 7 will use SSD speed much, much better than previous versions and avoid exacerbating SSD problems by excessive random read operations. ®