In an unusually terse statement, Intel officially confirmed that the ATA TRIM command now passes through to RAID-0 SSD arrays on some systems running Intel's RST (Rapid Storage Technology ) RAID driver version 11.0 and newer. The feature is limited to Intel 7 series chipsets with RST RAID support and currently only works on Windows 7 OSes, although Windows 8 support is forthcoming.

As soon as I got confirmation from Intel, I fired up a testbed to confirm the claim. Before I get to the results, let's have a quick recap of what all of this means.

Why does TRIM Matter?

The building block of today's SSDs that we love so much is 2-bit-per-cell MLC NAND Flash. The reason that not all SSDs are created equal is because of two important factors:

1) Each NAND cell has a finite lifespan (determined by the number of program and erase cycles), and
2) Although you can write to individual NAND pages, you can only erase large groups of pages (called blocks)

These two factors go hand in hand. If you only use 10% of your drive's capacity, neither factor is much of an issue. But if you're like most users and run your drive near capacity, difficulties can arise.

Your SSD controller has no knowledge of what pages contain valid vs. invalid (aka deleted) data. As a result, until your SSD is told to overwrite a particular address, it has to keep all data on the drive. This means that your SSD is eternally running out of free space. Thankfully all SSDs have some percentage of spare area set aside to ensure they never actually run out of free space before the end user occupies all available blocks, but how aggressively they use this spare area determines a lot.

Aggressive block recycling keeps performance high, at the expense of NAND endurance. Conservative block recycling preserves NAND lifespan, at the expense of performance. It's a delicate balance that a good SSD controller must achieve, and there are many tricks that can be employed to make things easier (e.g. idle time garbage collection). One way to make things easier on the controller is the use of the ATA TRIM command.

In a supported OS, with supported storage drivers and on an SSD with firmware support, the ATA TRIM command is passed from the host to the SSD whenever specific logical block addresses (LBAs) are no longer needed. In the case of Windows 7, a TRIM command is sent whenever a drive is formatted (all LBAs are TRIMed), whenever the recycle bin is emptied or whenever a file is shift + deleted (the LBAs occupied by that file are TRIMed).

The SSD doesn't have to take immediate action upon receiving the TRIM command for specific LBAs, but many do. By knowing what pages and blocks no longer contain valid data, the SSD controller can stop worrying about preserving that data and instead mark those blocks for garbage collection or recycling. This increases the effective free space from the controller's perspective, and caps a drive's performance degradation to the amount of space that's actively used vs. a continuing downward spiral until the worst case steady state is reached.

TRIM was pretty simple to implement on a single drive. These days all modern SSDs support it. It's only if you have one of the early Intel X25-M G1s that you're stuck without TRIM. Drives that preceded Intel's X25-M are also TRIMless. Nearly all subsequent drives we recommended either had TRIM support enabled through a firmware update or had it from the start.

Enabling TRIM on a RAID array required more effort, but only on the part of the storage driver. The SSD's firmware and OS remain unchanged. Intel eventually added TRIM support in its RAID drivers for RAID-1 (mirrored) arrays, but RAID-0 arrays were a different story entirely. There's a danger in getting rid of data in a RAID-0 array, if a page or a block gets TRIMed on one drive that's actually necessary, the entire array can be shot. There was talk of Intel enabling TRIM support on RAID-0 arrays as early as 2009, but given the cost of SSDs back then not many users were buying multiple to throw in an array.

The cost of SSDs has dropped considerably in the past 4 years. The SSD market is far more mature than it used to be. Intel isn't as burdened with the responsibility of bringing a brand new controller and storage technology to market. With some spare time on its hands, Intel finally delivered a build of its RAID drivers that will pass the ATA TRIM command to RAID-0 arrays.

The Requirements

The requirements for RAID-0 TRIM support are as follows:

A 7-series motherboard (6-series chipsets are unfortunately not supported).
Intel's Rapid Storage Technology (RST) for RAID driver version 11.0 or greater (11.2 is the current release)
Windows 7 (Windows 8 support is forthcoming)

The lack of support for 6-series chipsets sounds a lot like a forced feature upgrade. Internally Intel likely justifies it by not wanting to validate on older hardware, but I don't see a reason why TRIM on RAID-0 wouldn't work on 6-series chipsets.

I am not sure if TRIM will work on RAID-10 arrays. I'm going to run some tests shortly to try and confirm. Update: I don't believe it works on RAID-10 arrays. I'm still running tests to confirm but so far it looks like the answer is no.

Testing TRIM on RAID-0

I set up a Z77 testbed using Intel's DZ77GA-70K motherboard. I configured the board for RAID operation and installed Windows 7 SP1 to a single boot SSD. I then took two Samsung SSD 830s and created a 128GB RAID-0 array (64GB + 64GB). I picked the 830 because it benefits tremendously from TRIM, when full and tortured with random writes the 830's performance tanks. I secure erased both drives before creating the RAID array to ensure I started with a clean slate.

The 64GB Samsung SSD 830 is good for almost 500MB/s in sequential reads and under 160MB/s sequential writes. Two of them in RAID-0 should be able to deliver over 1GB/s of sequential read performance and over 300MB/s in sequential writes. A quick pass of HDTach confirms just that:

Take a moment to marvel at just how much performance you can get out of two $90 SSDs.

For the control run I used Intel's 10.6 RST drivers (10.6.0.1022). I filled the array with sequential data, then randomly wrote 4KB files over the entire array at a queue depth of 32 for 30 minutes straight. I formatted the array (thus TRIMing all LBAs) and ran an HD Tach pass to see if performance recovered. Remember if the controller was told that all of its data was invalid, a sequential write pass would run at full speed since all data would be thrown away as it was being overwritten. Otherwise, the controller would try to preserve its drive full of garbage data as long as possible.

The 10.6 RST drivers don't pass TRIM through to RAID-0 arrays, and the results show us just that:

That's no surprise, but what happens if we do the same test using Intel's 11.2 RST drivers?

Here's what the pass looks like after the same fill, torture, TRIM, HD Tach routine with the 11.2 drivers installed:

Perfect. TRIM works as promised. Users running SSDs in RAID-0 on 7-series motherboards can enjoy the same performance maintaining features that single-drive users have.

Bringing TRIM support to RAID-0 arrays provides users with a way of enjoying next-gen SSD performance sooner rather than later, without giving up an important feature. Pretty much all high-end SSDs are capped to 6Gbps limits when it comes to sequential IO. Modern SATA controllers deliver 6Gbps per port, allowing you to break through the 6Gbps limit by aggregating drives in RAID.

The only negative here is that Intel is only offering support on 7-series chipsets and not on previous hardware. That's great news for anyone who just moved to Ivy Bridge and has a RAID-0 array of SSDs, but not so great for everyone else. A lot of folks supported Intel over the past couple of years and Intel has had some amazing quarters as a result - I feel like the support should be rewarded. While I understand Intel's desire to limit its validation costs, I don't have to be happy about it.

For more information on how SSDs work, check out our last major article on the topic.

POST A COMMENT

41 Comments

View All Comments

  • tpi2009 - Friday, August 17, 2012 - link

    In principle no. The X79 platform uses Intel's Rapid Storage Technology Enterprise (RSTe) drivers, and to my knowledge they don't support his feature. The C600 / X79 chipset also dates back to the 6 series chipset, so it's a good question as to whether they will bring this functionality to the X79 platform.

    There could be a way to try and see if it work: some people have manually and forced the installation of previous versions of RST's driver only, and claimed that they worked and actually provided better performance than Intel's RSTe. So, if someone is willing to try, it would be interesting to see if this new version will also work, and especially if TRIM works in RAID-0 SSD arrays.

    For those interested, Intel did release a new version of RSTe, version 3.2.0.1135, which can be downloaded from here:

    http://downloadcenter.intel.com/Detail_Desc.aspx?a...

    I can confirm that two of the bugs mentioned in the release have been solved. It now reports my system as being in AHCI mode instead of RAID, and the Intel's SSD Toolbox, along with other utilities that read S.M.A.R.T. data, like HD Tune, can now report that data, and you can run Intel's SSD Optimizer.

    Just a note: the version installed is 3.2.0.1126, instead of the package version 3.2.0.1135, which is eventually the version for the C600 chipset. This difference in version numbers was already there in the previous version.
    Reply
  • jacknhut - Friday, August 17, 2012 - link

    Way to go Intel... You charged through the roof for the "elite" platform X79 and yet you failed to include support for it. Reply
  • Per Hansson - Friday, August 17, 2012 - link

    You write that RAID-1 should already be supported but I have seen no mention of this anywhere else and in the documents released by Intel about this a long time ago they where only speaking about RAID-0 support

    Can you confirm that it works with RAID-1?
    Reply
  • etamin - Friday, August 17, 2012 - link

    "Intel eventually added TRIM support in its RAID drivers for RAID-1 (mirrored) arrays, but RAID-0 arrays were a different story entirely."

    I was wondering the same...
    Reply
  • ArntK - Thursday, September 13, 2012 - link

    TRIM support in RAID drivers for RAID-1. What is the status of this? Please help! Reply
  • johnsom - Tuesday, August 21, 2012 - link

    Has anyone tested RAID-1 TRIM support with the Intel chipsets/drivers?

    I was under the impression that TRIM did not work with RAID-1 (mirroring).
    Reply
  • AnybodyM - Tuesday, November 26, 2013 - link

    I tried this on an Intel Q87 board and the latest Intel drivers from August 2013 and trimcheck says there is no TRIM on the RAID1 volume while there is working TRIM on the single boot SSD. Strangely though trimcheck also says there is no TRIM when the two RAID SSDs are configured as RAID0...

    Very sad the state of TRIM so many years after it became available. Intels RSTe driver for server boards (and the X79) does officially support TRIM in RAID1 though - I will test this soon.
    Reply
  • coachingjoy - Wednesday, August 22, 2012 - link

    Right now I'm using two Intel 330 180G as a boot raid0 and two 2TB HDD as raid1 storage. This uses all the internal connections so the DVD is eSATA on top of my mITX Shuttle box...with a Asus P8Z787-I Deluxe MB. Sweet. with dual 180Gb SSD's it borders on making the 2Tb raid1 kind of optional.....around 335Gb's is almost enough for a system...almost.

    My 1156 Intel mITX mb has 5, yes, 5 internal connections with a software raid bios. it also has a 5x chipset so TRIM is a no-go. Hoping for Intel to show some love for older mb's, time will tell.

    Great article, made my day.
    Reply
  • wackypete - Tuesday, September 25, 2012 - link

    After reading this article I setup a Raid-0 array (2 x 240GB Intel SSD 520) on my system (Gigabyte Z77X-UD5H). I'm running Intel RST 11.6.0.1030 which supportsTrim. But what about Intel's Solid-State Drive Toolbox? That program contains a "Intel SSD Optimizer" which, when I try to run, says: "The selected drive is part of a RAID array. This feature is not supported on a RAID member." This optimizer is supposed to optimize the SSD using TRIM. Any thoughts? Reply
  • Nittenti - Thursday, September 27, 2012 - link

    "This optimizer is supposed to optimize the SSD using TRIM"

    No

    It optimizes the SSD using the Garbage Collector
    Reply

Log in

Don't have an account? Sign up now