Saturday, November 6, 2010

IDE, SATA AHCI, or RAID mode - which BIOS setting is faster?

With all the fanfare surrounding SATA, you'd think it would be faster than good old UltraATA/IDE. As far as the physical connections between drive and MB, it most certainly is. But as a protocol for accessing your drives, it turns out to be a wash, at least for regular users.

At issue here is that the M4A77TD, as well as most modern motherboards offer a setting in the BIOS to control how your OS accesses the hard drives: IDE (the good old days standard), RAID (required if you want to join your drives in a RAID setup), or ACHI (the new, 'better', kid on the block). Only IDE is supported out of the box by older OSes (such as the ever popular WindowsXP). Using the other two requires a bit more work during OS install. Is that worth it? Maybe not!

How I tested: my main OS was on a SATA drive, set to IDE mode. This was not easy to toggle back and forth, so I left it in IDE mode for all tests. Instead, I changed the mode of my second hard drive, a 500GB  SAMSUNG HD501LJ, rebooting between each test.

Here are the tests I ran:

Windows Bootup (in seconds)

AHCI: 52
RAID: 61
IDE: 44

Note that since the OS was always accessed under IDE, this is not really a test of hard drive performance. Rather, it shows the overhead (BIOS, and windows) of loading the ACHI or RAID drivers. IDE wins by a landslide.

Next, the ever popular HD Tune:

ACHI:
Transfer Rate Minimum : 38.7 MB/sec
Transfer Rate Maximum : 82.8 MB/sec
Transfer Rate Average : 64.7 MB/sec
Access Time           : 14.2 ms
Burst Rate            : 133.2 MB/sec
CPU Usage             : 3.7%

RAID:
Transfer Rate Minimum : 38.8 MB/sec
Transfer Rate Maximum : 82.8 MB/sec
Transfer Rate Average : 64.8 MB/sec
Access Time           : 14.2 ms
Burst Rate            : 128.9 MB/sec
CPU Usage             : 3.9%

IDE:
Transfer Rate Minimum : 39.0 MB/sec
Transfer Rate Maximum : 82.2 MB/sec
Transfer Rate Average : 64.7 MB/sec
Access Time           : 14.2 ms
Burst Rate            : 131.0 MB/sec
CPU Usage             : 3.3%

Looks like a dead heat, in that you'll never notice these small differences, at least in real-world performance. Not like the bootup speed, which is measured in actual whole percentage point differences. What this should drive home is that drives are slow, and how you access them doesn't matter much in terms of throughput. so loading a large photo into Photoshop is going to take the same amount of time no matter what BIOS setting you use. That is,unless you want to install two drives, and set up RAID stripping. That's the sort of change that actually makes a difference, but it's not free, and has the distinct downside that if one drive dies, you loose the data on both drives.

Note that these tests don't really exercise ACHI in the way that it is supposed to shine, which is with multiple concurrent accesses to the hard drive. Of course, in real life, you won't see that much. Here's one situation where you will: zipping up a large folder on a relatively fragmented drive. You've got lots of file reads, and lots of writes, heavily interleaved. Is there any difference in performance here? To really test this, I zipped up a multi-gig directory, using "store only" for the zip compression, so that disk throughput would be the main limiter. Interestingly, though I rebooted after each test, and removed the zip file as well, performance was quite varied, even with the same setting I ran each test 3 times). Times are in seconds, sorted quickest to slowest.

AHCI:  585,   591,   594
RAID:  586,   601,   606
IDE:     585,   601,   608

 Here we being to see some evidence that AHCI could be faster. While each setting had nearly identical fastest speeds (suggesting that by random chance the order of reads and writes were more or less optimal on those runs), RAID and IDE were noticeably slower on their less optimal runs. I say notably slower, but we are talking at best a 2.3% speed up between the slowest IDE and the slowest ACHI. So perhaps on a server, you might find an advantage to using AHCI. Meanwhile, on a desktop machine, you'll likely spend more time waiting for boot-up under AHCI than you ever will gain back on those marathon ZIPing sessions. Unless you really like compression.

Notes: I used the 2.55 AHCI driver, AMD's RAID driver, and the stock WinXpSP3 IDE drivers.