Using TRIM features on SSDs before or without Windows 7
Subject: Storage | July 16, 2009 - 10:31 PM | Allyn Malventano
Upon its release, Windows 7 will include many "SSD aware" features. These features will take advantage of the ways flash memory devices are accessed by the Operating System. This should give a good boost in overall performance as compared to an other / previous OS that treats an SSD as if it were a platter based disk. One of these features will be the implementation of the TRIM command. This command enables the OS to inform a storage device (SSD in this case) of sector ranges that are no longer needed for storage. A TRIM-aware SSD will use these commands to perform a type of garbage collection within its bank of flash memory. What exactly takes place will vary with each manufacturers implementation, but the overall effect will be the elimination of fragmentation-over-time that is seen with many SSD's currently on the market. Those who listen to the PCPer podcast have heard me talk recently about SSD manufacturers, impatient with the Windows 7 development timeline, taking matters into their own hands regarding TRIM. Here we will touch on the two manufacturers doing just that.
The Playing Field
Indilinx controllers with recent firmware can accept proprietary trim commands from a special application that must be run from within the Operating System. While the tool does work, there are *lots* of limitations. The software tool must be run under Windows, does not work on drives other than the OS drive or with drives used in an OS RAID, and is extremely picky with various SATA chipset / driver combinations. Finally, the tool will only TRIM areas that actually contain a partition.
Samsung controllers with recent firmware take an entirely different approach. Without any interaction from the OS, the Samsung firmware is able to 'read' the drive data in the background. When the drive has been idle for a period of time, the firmware reads any NTFS volume bitmaps present and automatically frees up flash blocks not allocated by that partition. The end result is similar to using the Indilinx tool, but Samsung has the advantage in that it does not suffer from controller / driver incompatibilities and other OS-related issues. If a Samsung drive with auto-trim firmware contains an NTFS partition and is idle, it will automatically auto-trim itself in the background. Simple.
OCZ Summit (Samsung) and Vertex (Indilinx) in our lab.
I took an in-depth look at Indilinx-based controller tech in a recent review, and we currently have an OCZ Summit and a 'newer' Corsair P-Series drive in the lab for testing. By 'newer' I mean the drives have auto-trim enabled firmware pre-installed from Samsung. Properly evaluating auto-trim requires long waiting periods as the drive self-heals, but you can expect our in-depth review of the newer Samsung units within the next few days.
Some users have gotten a bit overzealous with their use of the Indilinx Wiper tool, as I've seen a small correlation of failed drives where users were constantly running the tool on them. An example of such is here, where a user who ran the tool each boot had 2 of 3 units become unresponsive. Using the Wiper tool is *mostly* safe, just realize it may on occasion act true to its name. As such, I don't recommend running it on something as tight as a daily schedule. Running it at each boot is also risky, as the system may be writing to dozens of files in parallel with the Wiper pass. The chances of data being TRIMmed while written is extremely low, but that's not something a user wants to hear when speaking of their Primary OS Partition.
Which way do I go, George?
All of that said, although the Indilinx units appear to require more maintenance to keep their performance up, and even though their TRIM tool has some growing pains even at present, my current recommendation for users torn between Indilinx and Samsung is to go Indilinx. You will get a drive that performs at least decently for the time being, and there is the added peace of mind of a known-good firmware upgrade process. Even if you get lucky and purchase a Samsung with their auto-trim firmware, there is currently no guarantee you will be able to flash it if/when their native TRIM firmware becomes available. With Windows 7 currently at the RTM escrow stage of development and a scheduled 22 October release, we will soon see which SSD manufacturers are ready to implement native TRIM support.
What? No Intel?
There is little to no pressure on Intel to implement any sort of pre-Win 7 stopgap measure. Intel series drives are anywhere from 2-5x faster than the competition as far as raw IOPS is concerned. They also handle their LBA remap table differently than everyone else. With the 8820 firmware, an X25-M will see negligible changes in raw throughput regardless of TRIM being used. Where the X25 controllers *do* differ is that small random IOPS performance takes an approximate 50% hit on a 'full' drive as compared to a 'new' drive. This is due to added latency of table lookups required as the controller must track more and more sectors as the drive fills. Once a given sector is written, it is tracked from that point forward. There is currently no way to 'reset' this without backing up all data and performing a secure erase of the drive. If/when Intel implements TRIM, it will likely be used to eliminate LBA table entries associated with the TRIMmed sector ranges, effectively optimizing the remap table. The overall effect should be IOPS remaining inversely proportional to the amount of data stored on the drive.
Further storage reading:
- SSD Decoder Ring
- UPDATED: SATA 6G launch delayed to do tech issues on nearly all P55 boards
- Indilinx based OCZ Vertex and Super Talent UltraDrive ME SSDs Reviewed
- Western Digital RE4-GP 2TB Review: Big Green Gets Meaner!
- DDRdrive hits the ground running - PCI-E RAM-based SSD
- HighPoint RocketRaid 4310 SAS/SATA RAID Controller Review