Wipe When You Can’t TRIM

There’s a major problem with TRIM today. The only Windows storage drivers to support it are written by Microsoft. The Intel Matrix Storage Manager (IMSM) driver will not pass the TRIM instruction to your SSD. This means you can't use anything but the drivers that ship with Windows 7. To make matters worse, if you enable non-member RAID on an Intel motherboard the default Windows 7 driver is an older version of IMSM so TRIM won't work there either - even if you don't have a RAID array created. Your best bet is to install Windows 7 with your I/O controller in AHCI mode (for Intel chipsets) and don't install any storage drivers. Intel is working on an updated IMSM that will pass the TRIM instruction to SSDs but it won't be ready for at least a couple of months.

TRIM won't work on a RAID array.

If you want to use IMSM or if you're using Windows XP or Vista, both of which do not support TRIM, there's another option. Earlier this year Indilinx released its Wiper Tool that performs a manual TRIM on their SSDs. It works by asking the OS for a list of the free space addresses on the partition and then sending the list with instructions to TRIM down to the SSD.


The Indilinx Wiper Tool

Today Intel introduces its own manual TRIM tool as a part of the SSD Toolbox:

On any Windows OS (XP, Vista or 7) regardless of what driver you have installed, Intel's SSD Toolbox will allow you to manually TRIM your drive. Intel calls it the SSD Optimizer, which of course only works on 34nm Intel SSDs (X25-M G1 owners are out of luck unfortunately).


The Intel SSD Optimizer lets you schedule the manual TRIM operation automatically

The SSD Toolbox also gives you access to SMART and drive health data, including telling you how many writes you've performed on your SSD, and what your current flash wear level is:

Running Intel's SSD Optimizer does work as advertised. I ran the PCMark HDD suite on a clean X25-M, once more on a drive that had been well used and once more after running the SSD Optimizer:

PCMark Vantage HDD Score Clean Run Used Run After SSD Optimizer
Intel X25-M G2 160GB 35909 30354 34014

 

Intel's SSD Optimizer should be able to restore performance to about 95%+ of new, in this case it manages 94.7% - close enough.

Moving On: Forget About Invalid Data and Worry About Free Space

The existence of TRIM changes the way we test, something I alluded to in the SSD Relapse. Thankfully, we come prepared.

In previous articles we had to test SSDs in two conditions: new and used. The new state is just after a secure erase, the used state required us to write data to every user accessible portion of the drive first before benchmarking. The former resulted in great performance, the latter meant the SSD had to do a lot of juggling of existing data whenever it went to write. The second scenario no longer exists with TRIM. The act of formatting your drive or deleting files (and emptying the recycle bin) will TRIM invalid data.

Performance in a TRIM enabled system is now determined not by the number of invalid blocks on your SSD, but rather the amount of free space you have. I went into a deep explanation of the relationship between free space and the performance of some SSDs here.

TRIM will make sure that you don’t have to worry about your drive filling up with invalid data, but it doesn’t skirt the bigger issue: dynamic controllers see their performance improve with more free space.

My rule of thumb is to keep at least 20% free space on your drive, you can get by with less but performance tends to suffer. It doesn’t degrade by the same amount for all drives either. Some controllers are more opportunistic with free space (e.g. Intel), while others don’t seem to rely as much on free space for improved performance. Addressing performance degradation as drives fill up (with valid data) will be one of the next major advancements in SSD technology.

Testing TRIM Kingston Delivers the First Good Sub-$100 SSD (after Rebate)
Comments Locked

162 Comments

View All Comments

  • Voo - Tuesday, October 27, 2009 - link

    Ok I was a bit surprised and tried it myself with my 160gb Intel G2 (no firmware update yet)


    Copy 10gb file onto drive, MSE full scan and extracting a 4gb file with 7z while the usual stuff (FF, PS, eclipse and winamp) running in the backgorund and I got a maximum QD of under 8, which is higher than I expected it to be, but still far away from a QD of 16.
    And when doing more multitasking stuff I'd probably tax the rest of the system more than the SSD so at least for my usual behavior a QD >8 is unrealistic, but I see your point.

    There are probably some people who could get a QD of 10-12 in a normal workload, so that could be interesting for them :)
  • GullLars - Wednesday, October 28, 2009 - link

    There is a big difference between average queue and queue during operations. The IO queues are relatively low for all the background operation the OS does, and sequensial read/write, but when you do things like open administrative tools, open a program, or install something, you will se queue spikes of easily 50-60.
    After i commented this article i had a discussion with some other benchmarkers, and we found that normal use generates IO queue spikes almost whenever you interact with the OS. It doesn't take much effort to generate a queue above 100. Running a couple of virus scans on folders of small files while installing a program and opening a folder with lots of pictures will get you a massive queue.
  • NeBlackCat - Tuesday, October 27, 2009 - link

    Nice work again Anand - I just don't bother reading SSD reviews/features on other sites any more.

    HOWEVER...

    Many people reading this will be developers wondering which controller best favours typical development activities, eg. checking out and compiling large projects. It's a hard one to guess - lots of random reading, sequential reading, random writing (temp files) and sequential writing (output files).

    So how about a "typical developer" benchmark of, say, compiling the Linux kernel while concurrently encoding some H.264, grepping all the sources for a string, and watching some por..er, I mean, youtube.

    Has anyone else evaluated the best SSD type for s/w development?




  • clarkn0va - Wednesday, October 28, 2009 - link

    Not a reply to your question, but I've taken on the habit of mounting my temp files to a ramdisk. Besides the speed improvement, this should help to reduce unnecessary write cycles to the SSD. Similarly, I run without swap (or page file), RAM being as affordable as it is.
  • lamo - Tuesday, October 27, 2009 - link

    TRIM support aside, I wonder how would a pair of $85 Kingston drives in a RAID 0 striped array compare against a $225 X-25M dollar/performance-wise.

  • cosminliteanu - Monday, October 26, 2009 - link

    So - "Your best bet is to install Windows 7 with your I/O controller in AHCI mode (for Intel chipsets)" this means you set in BIOS sata controller as AHCI not as IDE ?????
    Or just leave as IDE and after Win7 install, update intel storage driver as normal...? which is the best solution?
  • LuMax - Monday, October 26, 2009 - link

    Can I use Intel IMSM RAID on just the data storage drives in my PC and retain TRIM functionality on the W7 Pro OS (X-25M G2) SSD?

    My new PC build plan was to use a single 80GB G2 for the OS and programs and two 2TB HDDs in a RAID1 array for my data/photo/video/music storage. Although I read the relevant part of this article 3 times I am still not certain if this is doable. Yes/No?
  • LuMax - Tuesday, October 27, 2009 - link

    I heard back from Intel today:

    "Thank you for contacting Intel Technical Support.

    I understand your question about the Intel(R) Matrix Storage Manager and the SSD. Since the drives you will be using in RAID are non-solid state disks, and the SSD you will be using will not be part of the RAID, there should not be any problem with TRIM."
  • somedude1234 - Tuesday, October 27, 2009 - link

    I would not expect this to be possible. It sounds like you have 3 drives hanging off of the same SATA controller. You want 2 of them in RAID 1 using the IMSM driver, and one of them using the MS driver.

    In my experience it would be impossible to get Windows to load 2 different drivers for different ports on the same controller.

    Even if they were physically independent but identical controllers (for example if you had 2 identical SAS cards plugged into the same system), as soon as you update the driver on one controller, a reboot results in all instances of that controller using the updated driver.
  • DoveOfTheSouth - Monday, October 26, 2009 - link

    I'd like to know this too.
    I'm considering a similar set-up (SSD for systems drive, RAID for data storage HDD) - seems best of both worlds.

Log in

Don't have an account? Sign up now