AMD SB600 AHCI exploration

swaaye

Entirely Suboptimal
Legend
Supporter
AMD SB600 AHCI modern driver exploration

I have an HP DV2 subnote. Athlon Neo 1.6, M690E, SB600, Radeon 3450, 4GB RAM. XP is notably smoother than 7x64 so it's running XP.

I've discovered that I can force SB600 out of Native IDE mode by manually installing (or slipstreaming) the AMD RAID/AHCI driver. So I tried a few driver versions. The SB600 driver is based on v3.100.x, as is that for SB7xx. SB8xx has v3.3.x. I force installed 3.3.x on SB600 and it worked. In fact, it has working NCQ unlike v3.100.x.

Here is how a Seagate Momentus XT 500GB scores.

NCQ working (QD32 result).

NCQ essentially non functional.

I know that SB600 and SB700 are known for some rather weak AHCI performance but this at least looks better than it was years ago. I've no idea why AMD hasn't updated the official SB600 RAID/AHCI driver in years though, or why the pure AHCI driver only supports SB700 and newer. Actually if you install the current AHCI driver on SB700 get ready for a BSOD on boot. That can be fixed with a change to one of their registry settings though.

Booting Linux on it inspired me because I noticed in the kernel log that NCQ was in use. The Linux SATA driver also ignores the BIOS configuration of the controller.
 
what's a QD of 32?

it's just AMD saving on costs, even though it likely works perfectly they would have to certify the thing which may be long and boring. else they can end up being liable (in some way) for data loss.
possibly there's an extremely rare corner rare. anyway I'm glad you can have a bit of free increased performance with this.
 
queue depth = 32. It's a test of NCQ. SSDs give more interesting results.
 
~650k/s or 1.3MB/s... Does it really matter? It's so slow in both cases any serious amount of disk I/O is going to take (almost) forever at that snail's pace. :) I guess it's a matter of joy derived out of optimizing your PC as well as its able to, but really... Only SSDs offer worthwile performance at QD32. 15k RPM SAS HDDs are a little bit better than that Momentus in comparison, but still nothing earthshattering. It's the law of physics, mechanics just can't compete.

Anyway, why can't MS's default driver get AHCI to work?
 
The draw was mainly to see if SB600 NCQ had improved. I read the reviews years ago about how it did not perform. Also, it is interesting to get the notebook to do AHCI when HP locked that out. But the CPU is so slow that there would never be any benefit from it in practical usage.


It's not possible to get AHCI via the MS driver because the BIOS has the SATA controller programmed into IDE mode. The AMD AHCI/RAID driver reprograms the chipset into a RAID/AHCI mode. The Linux SATA driver does the same.
 
queue depth = 32. It's a test of NCQ. SSDs give more interesting results.

Really you'd expect the opposite because ssd's dont really have a seek time and and re-ordering the read/write commands to reduce head travel doesnt really make sense on a drive that doesnt have a traveling head
 
Really you'd expect the opposite because ssd's dont really have a seek time and and re-ordering the read/write commands to reduce head travel doesnt really make sense on a drive that doesnt have a traveling head
let me quote what somebody else said:
A SSD takes the multiple I/O requests, and performs them virtually simultaneously, in parallel, limited only by the number of internal channels between the NAND memory chips and the SSD controller, and the constraints of the I/O requests. NCQ allows a SSD to operate at it's full potential, which does not happen without it in IDE mode.

cdm.jpg

Look at the QD32 scores with NCQ here on the Crucial m4.
 
yes but what are the scores with ncq off ?
i think 4k test has a queue depth of 1 4kqd32 has a queue depth of 32 but in both tests ncq is enabled it just doesnt do anything if commands are issued serially (i dont think an application can turn off ncq could be wrong)
and you can have native sata/ahci mode without ncq
 
yes but what are the scores with ncq off ?
http://forums.anandtech.com/showthread.php?t=2189224
Crystaldiskmark 3.0.1 x64 IDE:

Seq: Rd 156,8 Wr 82,93
512K: Rd 153,4 Wr 80,20
4K: Rd 17,53 Wr 64,68
4K QD32: Rd 20,82 Wr 84,75

Crystaldiskmark 3.0.1 x64 AHCI:

Seq: Rd 200,8 Wr 86,17
512K: Rd 189,4 Wr 82,07
4K: Rd 17,09 Wr 49,43
4K QD32: Rd 115,0 Wr 78,69

write speed loss may be garbage collection since he's writing gigs.
 
thats ide vs ahci not achi with ncq vs ahci without ncq
the options should be in the driver


the post you linked to
the next post says

"In real life home usage, your Queue Depth with an SSD is usually between 0 and 1. Their access times are so low that they finish disk requests so fast your queue is usually closer to 0."
 
yes but what are the scores with ncq off ?
i think 4k test has a queue depth of 1 4kqd32 has a queue depth of 32 but in both tests ncq is enabled it just doesnt do anything if commands are issued serially (i dont think an application can turn off ncq could be wrong)
and you can have native sata/ahci mode without ncq

with queue depth = 1 it's pretty evident there's only one request at a time.
with queue depth = 32, up to 32 at a time, but I guess there are still done serially, only not waiting for the answer. making the request itself probably eats little time compared to the time spent in storage driver, SATA controller, the drive's controller, back and forth with the various bus latencies.
/edit : maybe the parallelism among flash chips is especially important
 
Last edited by a moderator:
I agree,but on a ssd you cant reorder the reads/writes for performance every read/write should take the same time no matter where on the disk your reading/writing from
non ncq means reads/writes get done in the order they are issued
ncq means they are ordered to improve performance
there is no correct order for reads/writes on a ssd

a = slower than b
c is the same as d
 
it's like ncq accidentally was useful for SSD, anyway there's stuff addressing it there
http://en.wikipedia.org/wiki/Native_Command_Queuing

including:
For example, the SandForce 1200[4] based OCZ Vertex II 50GB drive running on a Dell Perc 5i (which doesn't support SATA NCQ) delivers about 7,000 4k IOPS (50% write) at a controller queue depth of 32 IOs. Moving the drive to the similar Dell Perc 6i (which does support SATA NCQ) increases this to over 14,000 IOPS on the same basis.

NCQ means there's a queue on the drive, and as the article says the SSD's controller can process commands concurrently. that would be only serial without NCQ.
 
Last edited by a moderator:
thats interesting, but if your right that means the qd32 test wouldnt be able to run on a non ncq drive as its ncq that allows a controller queue weather its ordered for minimum head travel or not.
 
with my xp system the drive supports tcq (tagged command queue) I tried crystal disk and with tcq disabled the qd32 test still ran didnt make any difference though on or off
The question is what the hell is ncq doing to improve performance of ssd's thats a bit of a mystery

Ive never seen a benchmark ahci mode ncq on vs ahci mode ncq off with a ssd (only ahci tcq on vs off with a hdd) so it could be the ahci thats providing the boost not ncq (some people assume ide = ahci ncq off)
 
TCQ was pretty worthless and barely supported by drives or controllers AFAIR. You have a WD Raptor?

Here's yet more about SSDs and NCQ, from a paper on flash memory and parallelism.
http://www.cse.ohio-state.edu/~fchen/paper/papers/hpca11.pdf

Native command queuing (NCQ) is a feature introduced
by the SATA II standard [1]. With NCQ support, the device
can accept multiple incoming commands from the host and
schedule the jobs internally. NCQ is especially important
to SSDs, because the highly parallelized internal structure
of an SSD can be effectively utilized only when the SSD
is able to accept multiple concurrent I/O jobs from the host
(operating system).
 
I'm trying to work out a real life analogy.. one queue of people that is taken care of by two ore more check-out lines. I once read it's a lot more efficient that one queue for each cash register!
SSD without NCQ would be, there's one queue of people, two cashiers on the job. but people wait religiously so that only one people checks out at a time.

real NCQ happens when someone with 100 pounds of groceries is courteous and gives his place in a queue to another person who carries just a few things.

let me know if there are better analogies, this is fun (and nerdy)
 
Back
Top