Charles Brown

Tcq / Ncq Enabled Sata Controllers Are Here...

Recommended Posts

Oh, and you may want to ignore a synthetic benchmark with no real-world results like random IO (Which should show a nice improvement with TCQ), but I can imagine one reason why TCQ-functionality in all implementations would have benefitted the average joe computer user if implemented and standard from day-one of ATA's introduction:

The average joe doesn't know squat and will probably have a hopelessly fragmented and slow system with a swap file scattered all over the damn disk. All the dissapointing performance benchmarks compare cloned images of freshly installed operating systems. How about a total disk-thrashing from the average user?

Share this post


Link to post
Share on other sites
Isn't that the 180GXP you are referring to [regarding legacy ATA TCQ]?

Nope. Meant the WD740GD. It uses legacy ATA TCQ (over SATA so it's possible as you thought). SATA I uses the legacy parallel ATA TCQ protocol. SATA doesn't get its own protocol until SATA II. Of course the legacy ATA TCQ is the same type of TCQ used in the 180GXP.

I'm sure the 7k250 and 7k400 PATA drives also support this or else it would have been a step backwards for Hitachi.

The 7K250 and the 7K400 don't support any type of TCQ. It is a step backwards. I actually don't know for certain regarding the 7K400. There is no mention of the feature at the product page (so it almost certainly lacks it) and the 7K250 doesn't support it (confirmed by Hitachi to me). Since the 7K400 is pretty much a 5 platter 7K250 I think it's a fair assumption.

The average joe doesn't know squat and will probably have a hopelessly fragmented and slow system with a swap file scattered all over the damn disk.

Doesn't change the fact that the data will only be requested one piece at a time. You want better seeking performance --not TCQ. Or you want to use a FS which deals well with fragmentation by minimizing seeks (not FAT, use NTFS for windows, or most modern Linux FSes).

All the dissapointing performance benchmarks compare cloned images of freshly installed operating systems.

As I said above, this doesn't change the manner in which the system requests information. Only multi-user (server) applications typically allow multiple outstanding requests. Most importantly regarding this particular statement is that the application and OS areas don't get fragmented anyway, so I don't think one can claim that this distorts things significantly.

For example, the SX6000 supports 128MB or 256MB (With firmware upgrade) SDRAM cache memory in addition to the 8MB each drive has. A few hundred MBs of operations could be queued during otherwise slow RAID5 writes and logically ordered while they were being XOR'd

Nope. 1, Queued commands are cached by the disk. 2, the protocol limits the number of outstanding requests. If you run out of tags it doesn't matter how much cache you've got because you can't tell the controller what work you've done and what work you haven't.

I think you are thinking of write caching and write combining. Any controller with cache is going to do this, but it's not TCQ (at least not in the way the term has been used in this discussion). Write commands are reordered in this way at many layers (by the FS/cache manager, and by the controller) --this is what you're thinking of.

Share this post


Link to post
Share on other sites

I am running my benchmarks on the Pacific Digital Talon ZL4-150 right now. So far the performance of the Talon ZL4-150 has been utterly disappointing when TCQ is enabled. The only tests where it is faster than the Promise FastTrak S150 TX2plus are some of the server benchmarks (and the IOMeter fileserver simulation). The controller locks up at 66MHz bus speeds after some time and sometimes even prevents the system from booting. The speed difference between 33MHz and 66MHz bus speeds is marginal however when only one drive is used. The Talon ZL4-150 is incapable of extracting the full outer zone STR from the WD740GD. I only get 64500KB/s while the S150 TX2plus gets 71800KB/s. So far desktop performance seems to be better when you disable TCQ...

Share this post


Link to post
Share on other sites

The disk controllers / firmware (on drive itself) have been able to prefetch data close to read request. But only one read request at a time (it's not told what's comming) if not command queueing. Write transactions are different because it's given the data whithout having to fetch anything. If the data is less than the cache then it can tel the system it has written it to disk and then postpone the actually physical write till later ie. after a few reads, then combine a few writes. Command queueing allows it to get a list of read/write requests and do them when it feels like it. This could mean that some requests may take longer while overall throughput is increased. If the system only requests one at a time then NCQ means nothing. If several requests are competting for disk IO then they can be resorted and fulfilled in a different order that minimises head travel and rotational latency. ie. more disk IO throughput.

Benchmark programs and other applications may not be deigned to make the most of it. SATA NCQ may not be as good compared to a similar configured high-end SCSI RAID card with multiple disks can achieve. OK, hard to say SATA system == SCSI system. NCQ is just part of the chain.

Share this post


Link to post
Share on other sites
So can my nF3 250Gb mobo with nVidia SATA take full advantage of the upcoming SATA Barracuda 7200.8:huh:

the 7200.8 is interface-wise the same as the 7200.7 (it will have SATA II extentions for SATA 1.0, namely, NCQ)

Share this post


Link to post
Share on other sites
So can my nF3 250Gb mobo with nVidia SATA take full advantage of the upcoming SATA Barracuda 7200.8:huh:

the 7200.8 is interface-wise the same as the 7200.7 (it will have SATA II extentions for SATA 1.0, namely, NCQ)

So the controller does support NCQ? :blink:

Share this post


Link to post
Share on other sites

i have no idea to what does adhere the SATA of the MCP2 adeheres to....

look at what Siig replied me via email when i asked about NCQ enabled controllers:

"None of our controller supports NCQ at this time. We will have a PCI-X

Serial ATA controller that supports NCQ. This controller should be

available around September/October time frame."

Share this post


Link to post
Share on other sites
So the controller does support NCQ?

No. But I wouldn't worry about it. The performance gains are unlikely to be of any significance for single-user tasks.

Share this post


Link to post
Share on other sites
So can my nF3 250Gb mobo with nVidia SATA take full advantage of the upcoming SATA Barracuda 7200.8:huh:

no the nforce3 250gb does not support ncq. they plan to roll out a chipset supporting it by year's end.

Share this post


Link to post
Share on other sites

I, too want to buy an NCQ-enabled RAID array. Here's what I've found out so far.

Legacy ATA "tagged command queueing" is PATA-compatible, and doesn't require controller features. But it as a lot of problems, and as the Linux IDE maintainer says, "Ignore it; it's going away." However, if someone talks about "command queueing" and is vague, this is probably what they're talking about.

SATA allows "natice command queueing", where the controller can issue up to 32 commands to the drive at once and quickly read a 32-bit busy/complete bitmap to see which ones it should try to complete. This is because SATA inherently supports split transactions, which PATA doesn't (except with ATAPI-like kludges). But it can't be done through a SATA/PATA bridge.

Anyway, the Seagate ST3xxx8xxAS drives (ST3200822AS and ST3160827AS, and upcoming 120 and 80G versions) in their 7200.7 lines *do* support NCQ. And they have a 5-year warranty. Easy sell to the bean-counters! The ST3xxx0xxAS drives do NOT support NCQ. This info is directly from Seagate.

But finding a controller is a PITA. Since this is for a PCI-X motherboard, I want PCI-X for the bandwidth. Plain PCI will get bottlenecked by a lot of fast drives.

Intel has some chipsets with very nice (publicly documented AHCI) controllers with NCQ support, but they're only found on Intel motherboards. I haven't boight an Intel CPU in years and don't intend to buy one now. (AMD64 and on-chip DRAM controller for me, baby!)

The RocketRaid 1820 and 1820A are both based on the Marvell 88SX5081 chipsets. Neither one has the 88SX6081 that supports NCQ. This info is straight from Highpoint.

The Promise "SATAII150" SX8 controller is announced with TCQ support and you can find BIOS updates from their web page. But I can't find the freaking thing for sale ANYWHERE! Promise says they've shipped lots ot distributors, but I can't find it retail. Google, froogle, shopper.com, newegg, zipzoomfly, chumbo, hypermicro... all turn up empty.

I'd rather have an 8-port controller, but the Sil3124 4-port is a possibility if I could find it. Apparently they're around, but Silicon Image is a chip maker, not a product maker, so I haven't yet found a product that actually includes a Sil3124 chip.

Can anyone point me to an 8-port PCI-X SATA controller with NCQ support that is actually for sale anywhere? I plan to use this with Linux software RAID, so on-board RAID features aren't particularly important.

Share this post


Link to post
Share on other sites

Hmm can someone here can post all the PCI or PCI-X controlleur with NCQ or TCQ enabled please?

I am looking forward that information too... pretty hard to find !!!

That will be a good thing to know for everyone else here as well...

Thanks

TanGU.

Share this post


Link to post
Share on other sites

The Promise SATAII150 SX8 is available in Japan right now, and in the US from October 28 according to needthese.com.

Personally I'm interesting in the SATAII150 TX4, which has a 66mhz 32bit pci interface and running software raid 1+0 on it. It should be available from October 21 from needthese.com, or 4-6 weeks in Australia (arse end of the universe) according to my suppliers.

So, not much longer to wait. When will the seagate 7200.8 be available?

NB: A different cypherpunk

Share this post


Link to post
Share on other sites

The file copying showed the largest increase due to NCQ.

The burst speed was slowed with NCQ.

Basically they concluded it helped overall when you were doing things concurrently.

Share this post


Link to post
Share on other sites

The ATTO bench show no difference for 64/128K IO, but 4K is 50% more IO/s for the 3112 (9K) over 3124 (6K). That translates into an overhead of 60us for NCQ. However, Windows never does sequential 4K IO, only random IO.

HDtach shows 0% CPU for 3124 versus 2% for 3112. Better than SCSI?

The 29% improvement for file copying is the most significant for NCQ. I wonder if SCSI shows the same effect if you disable TCQ?

Share this post


Link to post
Share on other sites

There are only 2 controllers right now that I am sure that supports NCQ, being the ICH6 on the new Intel chipset boards, and the Silicon Image 3124. I work in firmware at Maxtor, and the only controllers that we can run our NCQ tests on are the ICH6 and 3124. Now, the Highpoint 1829X I believe supports it as well, but we don't have drivers in our testing environment quite yet that support it (working on it at the moment), so I can't confirm that.

Since Maxtor doesn't have any SATA drives that support the old ATA TCQ, I'm not sure which controllers support that, so I guess I can't answer anything in regards to the original question.

Basically, the big difference between TCQ and NCQ as I understand it, is who is managing the DMA queues, etc. In the old TCQ, the host had to manage all aspects of the command, whereas with NCQ, the host sends the command to the SATA controller, and the controller sorts everything out and manages the entire process itself. Thats where the speed bump comes in with NCQ over TCQ, apparently, in that the controller manages all aspects of the command while the host doesn't have to worry about it, which creates less overhead for the host.

I don't know if this answers anyone's questions at all, but I hope it was at least useful information. :D

Share this post


Link to post
Share on other sites
I just recieved a SI3124-2 300sata card.  Are there any SATA300 drives out yet to test it on?

The purpose of going to 3GB/s is not faster drives. It is so you can put 4 drives on an expander.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now