RAID0 trim and SRT seems possible on 6-series and 5-Series

Dufus

Senior member
Sep 20, 2010
675
119
101
It's been a while since I've looked at trim but some good news, RAID0 trim seems possible with pre-7 series chipsets.

Tested on ASUS P67 EVO


Running 11.6 OROM and 11.2 driver with no modification on W7SP1x64 with 2x V4 in RAID0, sectors 16 thru 31 were filled with 8KiB of test data and some crude software written to send a trim command to unmap them. The command was rejected by the driver, no trim performed.
1.png



After some rough modification (needs sorting out when I have the time) for personal educational purposes :D, using the same V4 setup the LBA's of a picture file was recorded using Winhex then the file deleted.

Before deletion
2.png


After deletion
3.png


Success, the file was trimmed as seen by all ones being returned for the trimmed LBA's. Note that returning all ones is specific to V4 SSD firmware, other SSD's may return all zero's instead.


Same setup with 2x 60GB Agility 3 in RAID0 and writing 8x 1GiB files of incompressible data.
4.png


And after deletion.
5.png

If trim were not working we would still see the big dip in read performance.


Switching to W8DPx64 and 11.5 drivers using the 8KiB of test data written to sectors 16 thru 31.

Vertex4 RAID0 before
6.png


Vertex4 RAID0 after
7.png


Agility3 RAID0 before
8.png


Agility3 RAID0 after
9.png

Note that Agility3 SSD firmware returns zero's for unmapped LBA's.

There does seem to be a little bugginess with the trim, even with Z77, so maybe Intel are working on that before making RAID0 trim more widely available, I hope so.

It would have been interesting to have looked at trying SRT on P67 and 5 series RAID0 trim but unfortunately I have little to no time for this for now.
 
Last edited:

Fernando 1

Senior member
Jul 29, 2012
351
9
81
@ Dufus:
Thank you very much for your interesting findings and for posting the related screenshots. They verify, that TRIM is really active within your P67 chipset Intel RAID0 array.
Since I have read somewhere else, that TRIM is only active within an Intel 6-series chipset RAID0, if the RAID array has been (re)created after having flashed a mainboard BIOS containing an intel RAID ROM version of the v11.6 series, here is my question:
Did you recreate the RAID0 array using the Intel RAID ROM Utility v11.6.x.xxxx or has the RAID array been created with an earlier ROM version?
If it should be the latter, which ROM version did you use?
 

Engineer

Elite Member
Oct 9, 1999
39,230
701
126
After some rough modification (needs sorting out when I have the time) for personal educational purposes :D, using the same V4 setup the LBA's of a picture file was recorded using Winhex then the file deleted.

First, this is "potentially" great news. What does "rough modification" mean!??? :p

Great job...can't wait to read more. Might upgrade a few more rigs to RAID0 if this works (or Intel releases something to fix RAID 0 on a P67). :)
 

Dufus

Senior member
Sep 20, 2010
675
119
101
Hi Fernando, no I did not recreate the array with the 11.6 OROM. Do you think it might be beneficial to do so? I can not remember which versions the arrays were created with but the Agility3 array was done quite some time ago.

FYI P67 RAID0 trim only works when using a "modified" OROM. Changing back to the original same version OROM will result in no trim again. For clarity "modified" here means changing the code in the OROM and does not mean using a different version OROM.


Hi Engineer, "rough modification" means I did not delve too deeply into the code but made some quick and crude changes to get P67 trim working while breaking compatibility elsewhere for other boards. IOW it could be done a lot nicer but is good enough as "a proof of concept". There does seem to be some support for X79 by Intel in there as well but perhaps not complete yet. 11.6 also seems to be providing an easy way for Intel to update trim support for other chipset series should they wish to, at least I'd like to think so.
 

Fernando 1

Senior member
Jul 29, 2012
351
9
81
Hi Fernando, no I did not recreate the array with the 11.6 OROM. Do you think it might be beneficial to do so?
It may be worth a try.
In October 2010 I made a test regarding this point and got a performance boost after having recreated the RAID0 array by using the actual Intel RAID ROM version from scratch. For details you may look into the start post of >this< thread ("Performance der neuen Treiber" > Chapter B > "Update am 23.10.2010").
 

Dufus

Senior member
Sep 20, 2010
675
119
101
FWIW using driver 11.0.0.1015 for trim on the P67, one of the earliest drivers I could find, worked as expected... or should that be unexpected :confused:, IOW trim was successful.


Something to consider though with trim
The SSD may choose to perform the optimization immediately, store the information for later optimization or throw away the hint completely and not use it for optimization since it does not have time to perform this optimization immediately.

In Windows 8, when the Storage Optimizer (the new defrag tool) detects that the volume is mounted on an SSD - it sends a complete set of trim hints for the entire volume again - this is done at idle time and helps to allow for SSDs that were unable to cleanup earlier
Hence the re-trim option in W8 defrag I guess.


I gave SRT a shot on the P67 but no go as is.

NoSRT.png
 

kbp

Senior member
Oct 8, 2011
577
0
0
I upgradded the Intel solid-state drive toolbox the other day to v 3**1**1 and ran the SSD optimizer for my RAID-0 320's and it worked** Never did before** Im on a Z68 chipset**
 

Dufus

Senior member
Sep 20, 2010
675
119
101
IIRC the toolbox uses a special Intel command for trim, not the same as the trim command sent from the OS.

Good to hear it's working, sounds like the toolbox should be a good thing on W7 if trim commands are not guaranteed to always be carried out as the previous link I posted would suggest. I doubt if MS will update W7 with the re-trim function in W8.
 

Zargon

Lifer
Nov 3, 2009
12,218
2
76
subbed so I can remember to run some tests

just installed raid 0 v+200 kingstons last weekend
 

kbp

Senior member
Oct 8, 2011
577
0
0
I only have my Intel drives RAID'ed but would like to know if anyone is using the Samsung toolbox, and, does it now "trim" a RAID0 array?
 

Dufus

Senior member
Sep 20, 2010
675
119
101
Well I don't have an X79 to do proper testing with, all I can do here is change the PCH controller ID to mimic X79.
2826.png



With this configuration using RSTe 3.0 driver or RSTe 3.5 driver trim for RAID0 does not work, only trim for non-array SSD's. Whether this means the driver itself does not support RAID0 trim I do not know but due to not having a true X79 the results are at best dubious. I wonder why Intel included the option to identify a RAID controller on 6 series PCH as a Patsburg X79 RAID controller. :confused:

I do have a series 5 board though, so will try to make some time over the weekend to test it.
 

BonzaiDuck

Lifer
Jun 30, 2004
15,950
1,603
126
I've been watching these posts on SSD with RAID and TRIM every time I log on to the forums here. And I'd put in tech-support queries to Intel, ASUS and Patriot to sort things out. It actually seems -- for me, anyway -- that (my) concerns about TRIM with RAID-mode BIOS configuration are minor.

Patriot pointed me to a TRIM utility they offer for their Torqx 2 drives, telling me that it works equally for my Pyro. The Pyro is a caching SSD for my ISRT configuration. They tell me it will work under BIOS RAID-mode and ISRT. But I thought I read where the drive (SSD) needs to be visible, partitioned and formatted. The only way it's visible in its current usage is with the IRST software.

All in all, given what the OP shows in his own tests for a P67 motherboard, it almost seems that Intel's own tech-reps don't have their act together on precisely whether TRIM works in RAID0 and ISRT. Or any other RAID configuration, for that matter, per the 6-series boards.
 

yefi

Member
Nov 15, 2012
48
0
66
After some rough modification (needs sorting out when I have the time) for personal educational purposes :D,
Wow, looks very promising. I'm thinking of adding a second ssd to a P67, so if this mod works, it'll be great.
 

Dufus

Senior member
Sep 20, 2010
675
119
101
Test results for 5-series board P55-UD6 running W7 x64.
P55RST.png



First of all with the standard 11.6 OROM and 11.2 driver.
P55NoTrim.png


As expected, trim gets rejected by the driver.


Changing 2 bytes then using the same customized trim command to trim sectors 16 thru 31 the 11.2 driver reports success and the results verify that trim has indeed been performed.

Before trim command
P55B4Trim.png


After trim command
P55AfterTrim.png




Another test by deleting the file cpu.txt.txt (yes, normally it should only be one ".txt" but unfortunately that's how it was saved :p).

Before delete
P55WHB4.png


After delete
P55WHAfter2.png


So it would seem likely that all boards with a PCH controller that support RAID0 can support trim with a trivial change to the OROM, that is except the X79. Unless the X79 supports changing the SATA controller ID from 2826 to 2822 similar in the way the P67 controller can change from 2822 to 2826 then I think a bigger change would be necessary. In the case the X79 was able to use ID 2822 then I think possibly no changes would need to be made to the OROM at all, only that the BIOS support the changing of ID of the SATA controller.

From these findings I feel very optimistic that Intel would include the other PCH series in a future OROM release otherwise why have they made it so simple to add the other 5 and 6 series boards. I would like to explain this better by posting a small hex output of a few bytes of the OROM but do not know if doing so will have ermm "repercussions". I would be grateful if Anand or a mod would be kind enough to comment on this dilemma, comments from Intel employees who frequent this board would be welcomed too.

BonzaiDuck, thanks for mentioning the torqx 2 utility, I have not come across that one so have downloaded it and will give it a try sometime. Intel seem to like to hold their cards very close while often it seems remaining in silence. With the currently available OROM's as is, trim is only available on 7 series, excluding X79, so their position IMO would likely to be to say only that 7-series is "supported" without any further information such as "we plan to add support for earlier chipsets" or "we are not going to support any earlier chipsets. IMHO this leaves people not knowing what is really going on and resulting in speculation and for me, why I felt it necessary to see if trim was even possible on the earlier chipsets.
 
Last edited:

Ourasi

Junior Member
Jun 15, 2009
19
0
0
From these findings I feel very optimistic that Intel would include the other PCH series in a future OROM release otherwise why have they made it so simple to add the other 5 and 6 series boards. I would like to explain this better by posting a small hex output of a few bytes of the OROM but do not know if doing so will have ermm "repercussions". I would be grateful if Anand or a mod would be kind enough to comment on this dilemma, comments from Intel employees who frequent this board would be welcomed too.

OROM/Bios motherboard modifications is not illegal. You can add/remove/modify anything you want to oroms/bioses, as millions have done before you. You do not buy a bios or a licence to one, nor agree to an EULA etc., and even if it did you can still modify the life out of it... Even apple can not deny users of ipone/ipad to modify their software/bioses, only that warranty may be invalidated if you brick your stuff.. The only legal issue with modding is when you try to make money of it, and thats not the issue here..

Post what you changed, so others can do it, if you still cannot kick the fear...
 
Last edited:

MaxICH

Member
Nov 19, 2012
30
0
0
I'm on a Z68 board with with 11.6 Orom with a pair of Vertex 4. I would really appreciate if you could post the changes to the ORom required to enable the Trim support? Even a PM would be ok ;)
 

Dufus

Senior member
Sep 20, 2010
675
119
101
NOTICE: This thread was started to only show that it is possible to have RAID0 trim with some currently unsupported chipsets. I never have worked in the computer/software industry and all testing done is purely empirically based and therefore prone to error. To get proper RAID0 trim support wait for Intel and manufacturers to provide an updated OROM with validation to ensure proper operation.


The 11.6 OROM appears to have a look up table.
LUT.png



It seems the first word lists the RAID controller Alternate ID (AI) to identify the controller, the second word lists the LPC ID to identify sub groups that utilize the RAID controller and a byte follows to indicate set flags.
LUTFormat.png



For instance alternate ID 1C05 (8086:1C05) is a 6 series mobile RAID controller. This has two LPC sub groups, 1C4B (HM67) and 1C4F (QM67). Bit 0 of the flag byte is set to 1 which I think means SRT support. Where the LPC ID is 0000 I guess this means all sub groups. Alternate ID 1C05 is for the Z68 which has only bit 0 set in the flag byte, meaning support for SRT but not trim. Alternate ID's are a way of identifying controllers that normally use a common ID, i.e. 2822 (8086:2822).


Now you can hopefully see why it appears Intel have made it easy to add other chipsets, they just need to be added to the LUT. For testing however I just overwrote one of the ones in the list. For the P67 which has an alternate ID of 1C04 I simply used "1C04 0000 07" and like wise for the P55 which has an alternate ID of 3B25 I used "3B25 0000 07".


I notice my BIOS for the P67 does not enable SRT in the feature settings so I might have another look at that when I get time, which I seem to have very little of at the moment. Also the Asrock X79 Extreme11 BIOS 1.70 does provide for the RST 11.6 OROM (2822) to be selected in the BIOS setup instead of the RSTe 3.5 OROM (2826) so with the alternate ID 1D04 & 1D06 already in the 11.6 OROM and with the flag byte set to 07 I would have expected not only SRT to work but trim also but one user reports trying it and no trim. Possibly due to broken SSD firmware.

Remember that trim is an enhancement, IMHO with a fair amount of user over provisioning it should not matter too much if it's not available, that is if you are able to set aside some unused disk space for this. For instance by creating the RAID0 volume size smaller than the combined disk size.
 
Last edited:

MaxICH

Member
Nov 19, 2012
30
0
0
NOTICE: This thread was started to only show that it is possible to have RAID0 trim with some currently unsupported chipsets. I never have worked in the computer/software industry and all testing done is purely empirically based and therefore prone to error. To get proper RAID0 trim support wait for Intel and manufacturers to provide an updated OROM with validation to ensure proper operation.


The 11.6 OROM appears to have a look up table.
LUT.png



It seems the first word lists the RAID controller Alternate ID (AI) to identify the controller, the second word lists the LPC ID to identify sub groups that utilize the RAID controller and a byte follows to indicate set flags.
LUTFormat.png



For instance alternate ID 1C05 (8086:1C05) is a 6 series mobile RAID controller. This has two LPC sub groups, 1C4B (HM67) and 1C4F (QM67). Bit 0 of the flag byte is set to 1 which I think means SRT support. Where the LPC ID is 0000 I guess this means all sub groups. Alternate ID 1C05 is for the Z68 which has only bit 0 set in the flag byte, meaning support for SRT but not trim. Alternate ID's are a way of identifying controllers that normally use a common ID, i.e. 2822 (8086:2822).


Now you can hopefully see why it appears Intel have made it easy to add other chipsets, they just need to be added to the LUT. For testing however I just overwrote one of the ones in the list. For the P67 which has an alternate ID of 1C04 I simply used "1C04 0000 07" and like wise for the P55 which has an alternate ID of 3B25 I used "3B25 0000 07".


I notice my BIOS for the P67 does not enable SRT in the feature settings so I might have another look at that when I get time, which I seem to have very little of at the moment. Also the Asrock X79 Extreme11 BIOS 1.70 does provide for the RST 11.6 OROM (2822) to be selected in the BIOS setup instead of the RSTe 3.5 OROM (2826) so with the alternate ID 1D04 & 1D06 already in the 11.6 OROM and with the flag byte set to 07 I would have expected not only SRT to work but trim also but one user reports trying it and no trim.

Remember that trim is an enhancement, IMHO with a fair amount of user over provisioning it should not matter too much if it's not available, that is if you are able to set aside some unused disk space for this. For instance by creating the RAID0 volume size smaller than the combined disk size.

Thank you SO MUCH for sharing this info! So if I want to try to enable the flag for the Z68 I should change "061C 0000 01" to "061C 0000 07"? Do you know what's the difference between flag 6 and 7?
 

Dufus

Senior member
Sep 20, 2010
675
119
101
Do you know what's the difference between flag 6 and 7?
6 I would guess would be no SRT as bit 0 is not set. Sorry, I do not know what bits 1 & 2 are specifically. This information was only provided to answer the question of whether or not RAID0 trim is possible on earlier chipsets, and done mainly due to lack of information from Intel. Similar in the way RAID0 trim was first introduced on the 7 series and nobody outside of Intel seemed to know about it even quite sometime after 7 series was released for sale until users btester and Fernando made their findings public some time later.
 

yefi

Member
Nov 15, 2012
48
0
66
Now you can hopefully see why it appears Intel have made it easy to add other chipsets, they just need to be added to the LUT. For testing however I just overwrote one of the ones in the list. For the P67 which has an alternate ID of 1C04 I simply used "1C04 0000 07" and like wise for the P55 which has an alternate ID of 3B25 I used "3B25 0000 07".
Very nice work! :thumbsup:
 

MaxICH

Member
Nov 19, 2012
30
0
0
6 I would guess would be no SRT as bit 0 is not set. Sorry, I do not know what bits 1 & 2 are specifically. This information was only provided to answer the question of whether or not RAID0 trim is possible on earlier chipsets, and done mainly due to lack of information from Intel. Similar in the way RAID0 trim was first introduced on the 7 series and nobody outside of Intel seemed to know about it even quite sometime after 7 series was released for sale until users btester and Fernando made their findings public some time later.

Thanks for the details. I can confirm that after the modification, Trim worked on my Z68 board with a pair of Vertex 4 in Raid 0.

I used WinHex before and after deleting a file and it looked just like your Vertex screenshots. I didn't have any tool to force a trim so I just used the optimize option in Windows 8.

For the record I have a Asus P8Z68-V Pro with latest offical bios modified with Intel Orom version 11.6.0.1702. I tried both RST 11.2.0.1006 and 11.6.0.1030 with same results.

Thank you again! Maybe one day Intel will release an update with official support for older boards. Meanwhile your mod will do ;)
 

Fernando 1

Senior member
Jul 29, 2012
351
9
81
@ all:
Meanwhile ASRock and GIGABYTE have published the first X79 mainboard BIOSes with the ability to flash an Intel RST RAID ROM of the v11.6 series. A user named snout, owner of a GIGABYTE G1.Assasin X79 board, just has verified, that TRIM is working within his X79 RAID0 system after having flashed the new BIOS containing the Intel RAID ROM v11.6.0.1702. For details you may look >here<.

@ Dufus:
Thank you very much for having published the details regarding the hex codes of the Intel RAID ROM v11.6, which obviously are responsable for the TRIM in RAID0 support. Your investigations paired with your excellent knowledge have shed some light into the secrets regarding the implementation of Intel's "TRIM in RAID0" feature into the actual RAID ROM modules.
If I did understand you correcty, it may be possible to enable the "TRIM in RAID0" feature for all Intel RAID0 systems with an 6- or 7-series chipset by just modifying the related "FLAGS" hex code from "01" resp. "06" to "07".
Here is a screenshot with the related hex codes of the v11.6.0.1702 ROM file after having changed the "FLAGS" (= red hex code pairs):

Is this correct?

Kind Regards and thanks for this amazing thread
Fernando
 
Last edited: