6_6_6

NCQ: Best Upgrade For a Power User!

Recommended Posts

from Intel® Matrix Storage Manager, Production Version 8.5.0.1032, Release Notes

Known Issues in Production Version 8.5.0.1032:

2554680 - File write performance degraded with Gen II drives and cache on Vista, Windows XP

i know it's probably not the same issue as some of you are experiencing, but intel needs to get their stinker together.

so far they shown that they can throw chipsets at us, but can't deliver some basic storage functionality.

ncq, hotplug - that should work years ago.

ps

what about RAID0 on ICH9R - does it use NCQ by default ? hdtune show checked, but disabled checkboxes.

Share this post


Link to post
Share on other sites
Since the first version of Windows NT, the Memory Manager and the I/O system have limited the amount of data processed by an individual storage I/O request to 64KB. Thus, even if an application issues a much larger I/O request, it's broken into individual requests having a maximum size of 64KB.

If that is true, why do block sizes >64 kB make a difference in HD_Speed?

That's no criticism, but a serious question. ;)

Share this post


Link to post
Share on other sites

Well, you know, that's how Microsoft works. Consistency is not their forte ;)

It seems that the block size limit of 64 KiB has been unevenly enforced through the years:

It was somehow "relative" to the type of controller you were using:

http://support.microsoft.com/kb/152518

And some patches and Service Packs changed it as well:

http://support.microsoft.com/kb/907418

Also, check this interesting documentation from LSI:

http://www.lsi.com/DistributionSystem/Asse...si_scsi2003.txt

The lsi_scsi.SYS drivers can support up to a 1 Mbyte transfer size (for 32-bit

systems) and 2 Mbyte transfer size (for 64-bit systems) in Windows Server 2003;

however, the default Windows Server 2003 transfer size is 64 Kbytes.

Editing the mpi_256K.reg can set any maximum block size between 64 Kbytes and

1 Mbyte (2Mbytes for 64-bit). The formula to calculate the proper value for

MaximumSGList is:

MaximumSGList = ((Maximum Block Size)/4 Kbytes) +1 (for 32-bit)

MaximumSGList = ((Maximum Block Size)/8 Kbytes) +1 (for 64-bit)

For 256 Kbytes: 256 Kbytes/4 Kbytes = 64. Add 1 for 65 (decimal) or

0x41 (hexadecimal). The maximum value allowed for MaximumSGLIst is 255 or

0xFF. For the particular value of 0xFF, the internal value passed to Windows

is increased to 0x101, allowing support for a full 1 Mbyte transfer (2 Mbytes

for 64-bit). Be sure to read the information in the mpi_256K.reg data file

before editing it.

The system must be rebooted for the new registry setting to be effective.

And that's all the information Google has given me so far. I'll keep trying to see if I can get some more juicy info ;)

Regards.

Edited by Leolo

Share this post


Link to post
Share on other sites

Dont think anyone posted anything about Hitachi Deskstar 1TB so I started some threads. I dont think I have changed any settings. But this is what I got

Also I am really considering buying a VelocyRaptor but if it is as bad at this as all the others and abit noisy (Does it fit in a Scythe 2.5" enclousure? thinkI read it dont have standard meassure?!?) I dont see much point in it. Somehow the seagate just don't seem appeling to me. How is the Seagates noise lvls while working btw?

42701157fh5.jpg

Edited by Mech0z

Share this post


Link to post
Share on other sites

Btw I can see in my bios that my "SATA MODE" is set at "IDE" where the options are "IDE, Raid and AHCI" is this the correct setting for my 1tb Deskstar?

Share this post


Link to post
Share on other sites

Mech0z,

If you're using Windows XP, set SATA MODE to IDE. And you have to set the block size in HD_Speed to 64 KiB to get realistic results (because Windows XP uses 64 KiB block sizes by default)

If you're using Vista, then set SATA MODE to AHCI. Remember to test using a block size of 1 MiB in HD_Speed (Vista uses 1 MiB blocks by default) And you should use only Microsoft drivers, do NOT install the intel Storage Manager drivers. (Note that you should still install the INF chipset install utility, it's harmless)

Regards.

Share this post


Link to post
Share on other sites
Mech0z,

If you're using Windows XP, set SATA MODE to IDE. And you have to set the block size in HD_Speed to 64 KiB to get realistic results (because Windows XP uses 64 KiB block sizes by default)

If you're using Vista, then set SATA MODE to AHCI. Remember to test using a block size of 1 MiB in HD_Speed (Vista uses 1 MiB blocks by default) And you should use only Microsoft drivers, do NOT install the intel Storage Manager drivers. (Note that you should still install the INF chipset install utility, it's harmless)

Regards.

Okay, I am however getting a 150Gb VolocyRaptor (Any difference between 150 and 300Gb? Other than maybe Transferspeeds, but that do not matter) But I would like something like http://www.scythe-eu.com/en/products/hdd-c...t-drive-25.html but from what I understand I would have to mod either the hdd or the drivebay (Because its not a ordenary 2.5" in size) which is not good solutions at all :/ But the only way I see to reduce the high pitch noise I am very affraid of.

Edited by Mech0z

Share this post


Link to post
Share on other sites

Btw should I go and turn off NCQ when I am not running the AHCI mode anyway? (I am running XP, can't seem to get vista to work properly even though I want to)

Share this post


Link to post
Share on other sites

If you're running XP, then you should set SATA MODE to "IDE". Doing that disables AHCI, which in turns also disables NCQ (remember that NCQ can only be enabled in AHCI mode or RAID mode).

If you want to get the highest performance possible under Windows XP you need the following tool:

(But be careful not to install the 332023 update as instructed by their web page. That update is really designed only for Windows 2000!!)

http://support.microsoft.com/kb/811392

Click on "View and request hotfix downloads" to get your copy. It's named Windows2000-KB811392-x86-ENU, but don't be fooled by the file name. It works correctly also in Windows XP, 2003, Vista and Server 2008.

PS: Gotta love Microsoft's inconsistencies and all of their confusing patches and file names, heh ;)

Share this post


Link to post
Share on other sites

Here's an example of the command line you should have to use:

dskcache +p +w c:

Also, remember that it's highly recommended to have an UPS when enabling write-back cache. A power failure could mean a loss of data because Windows won't write data immediately to disk. It will keep it in RAM a little while and wait for the best moment to write it (usually when the HD is idle).

RAM doesn't preserve its contents when power is interrupted, that's why you could lose some data. Keep that in mind.

Share this post


Link to post
Share on other sites
But I would like something like http://www.scythe-eu.com/en/products/hdd-c...t-drive-25.html but from what I understand I would have to mod
Buy the 2.5" version of the Velociraptor and just put it into the quietdrive (if it fits-- the Velociraptor is 15mm thick, notebook 2.5" drives are only 9.5mm or 12.5mm thick).

Unfortunately Scythe does not publish dimensions for the product on that link... :(

If you buy the 3.5" version of the Velociraptor you will have to remove it from the heatsink (which effectively is the drive's "carrier" from 2.5" to 3.5"), which will also work but will void the warranty.

Share this post


Link to post
Share on other sites

Hmm I accually thought that the heatsink would be easy removeable and not void the warrenty, that is rather dumm tbh. But I will have to contact Scythe, as I would have to order this from outside of Denmark (No one sells the 2.5" in denmark....) so it will be abit costly.

Share this post


Link to post
Share on other sites
And you have to set the block size in HD_Speed to 64 KiB to get realistic results (because Windows XP uses 64 KiB block sizes by default)

I don't think that's correct... If you use Diskmon, you'll notice that there are many quite different sized disc accesses.

Share this post


Link to post
Share on other sites

I've read the whole thread since the beginning. I got information below via Everest Ultimate. Where should I look at to understand which driver I use? MS or Intel? What component are you talking about? And If I use MS driver, how can I install Intel driver? Or vice versa. Please tell step by step how to update my driver via Device Manager. Is the subject related to "allocation unit size" which you can specify as 512b/1024b/2048b/4096b/8192b/16384b/32768b/

65536b when you format a HDD? Sorry for grammar mistakes, my English is not perfect.

Field Value

Device Properties

Driver Description ST3160815AS

Driver Date 01.07.2001

Driver Version 5.1.2535.0

Driver Provider Microsoft

INF File disk.inf

Disk Device Physical Info

Manufacturer Seagate

Hard Disk Name Barracuda 7200.10 160815

Form Factor 3.5"

Formatted Capacity 160 GB

Disks 1

Recording Surfaces 2

Physical Dimensions 146.99 x 101.6 x 19.99 mm

Max. Weight 380 g

Average Rotational Latency 4.16 ms

Rotational Speed 7200 RPM

Interface SATA-II

Buffer-to-Host Data Rate 300 MB/s

Buffer Size 8 MB

Device Manufacturer

Company Name Seagate Technology LLC

Product Information http://www.seagate.com/products

++++++++++++++++++++++++

Field Value

Device Properties

Driver Description Intel® ICH9 2 port Serial ATA Storage Controller 1 - 2921

Driver Date 05.02.2007

Driver Version 8.3.0.1011

Driver Provider Intel

INF File oem3.inf

Device Resources

Port F000-F00F

Port FC00-FC0F

++++++++++++++++++++++++

Field Value

Device Properties

Driver Description Primary IDE Channel

Driver Date 01.07.2001

Driver Version 5.1.2600.2180

Driver Provider Microsoft

INF File mshdc.inf

Device Resources

IRQ 14

Port 01F0-01F7

Port 03F6-03F6

++++++++++++++++++++++++

Field Value

Device Properties

Driver Description Standard Dual Channel PCI IDE Controller

Driver Date 01.07.2001

Driver Version 5.1.2600.2180

Driver Provider Microsoft

INF File mshdc.inf

Device Resources

IRQ 19

Port C000-C007

Port C400-C40F

Port CCF0-CCF3

Port CCF4-CCF7

Port CCF8-CCFF

++++++++++++++++++++++++

Field Value

Device Properties

Driver Description SCSI/RAID Host Controller

Driver Date 01.07.2001

Driver Version 5.1.2600.2180

Driver Provider Microsoft

INF File pnpscsi.inf

Share this post


Link to post
Share on other sites
And you have to set the block size in HD_Speed to 64 KiB to get realistic results (because Windows XP uses 64 KiB block sizes by default)

I don't think that's correct... If you use http://technet.microsoft.com/en-us/sysinte...s/bb896646.aspx, you'll notice that there are many quite different sized disc accesses.

I'm afraid I have to refer to the same link again (I've highlighted the important part in bold characters):

http://technet.microsoft.com/en-us/magazine/cc162494.aspx

Since the first version of Windows NT, the Memory Manager and the I/O system have limited the amount of data processed by an individual storage I/O request to 64KB. Thus, even if an application issues a much larger I/O request, it's broken into individual requests having a maximum size of 64KB. Each I/O incurs an overhead for transitions to kernel-mode and initiating an I/O transfer on the storage device, so in Windows Vista storage I/O request sizes are no longer capped. Several Windows Vista user-mode components have been modified to take advantage of the support for larger I/Os, including Explorer's copy functionality and the command prompt's Copy command, which now issue 1MB I/Os.

It doesn't matter how many bytes does an application request, Windows XP by default will only get 64 KiB from the disk at a time. I'm sorry but that is how it works. I know it sucks for you, Windows XP users, but that's life. You should upgrade to Vista (or stay with XP but use specially modified drivers like those from LSI) if you want to enjoy large block sizes.

Take a look at what the author of HD_Speed says in his "ReadMe_ENG.html" file:

Q. what is the block size?

A. it's the size of the chunks that HD_Speed requests data from windows

Q. why does this affect the throughput?

A. it theoretically shouldn't affect it greatly, (as long as you dont select too small a setting that cpu usage and other such inefficiencies come in to play). but on some systems it does. so why ? my guess is that something in the chain between HD_Speed and the physical drive is not as well written as it should be :-)

Q. what is the chain through which the data flows to reach hd_speed?

A. simplified: drive platters -> driver controller (including it's own cache) -> ide/scsi/sata connection -> host controller (for ide&sata, usually part of the motherboard chipset) -> drivers for hdd controller -> hd_speed

Q. can I set the block size that windows uses?

A. not that I know of (not without writing your own drivers for the HDD controller).

I hope that clears up any confusion.

Regards.

Edited by Leolo

Share this post


Link to post
Share on other sites
I've read the whole thread since the beginning. I got information below via Everest Ultimate. Where should I look at to understand which driver I use? MS or Intel? What component are you talking about? And If I use MS driver, how can I install Intel driver? Or vice versa. Please tell step by step how to update my driver via Device Manager. Is the subject related to "allocation unit size" which you can specify as 512b/1024b/2048b/4096b/8192b/16384b/32768b/

65536b when you format a HDD? Sorry for grammar mistakes, my English is not perfect.

"Allocation unit size" is simply cluster size. It doesn't directly affect speed. It will only directly affect fragmentation. The larger the cluster size, the less fragmentation you will have. The only drawback of large cluster sizes is that you will lose the ability to use NTFS compression (which is not a great loss, anyway, because it's not very useful) and you will waste a lot of hard disk space if you happen to have many many small files.

In this day and age, and with hard drive capacities so large and cheap, I think that a large cluster size (65536 bytes) is really the best option.

What Windows version are you using?

To check which driver you're using, go to the Device Manager, go to "IDE ATA/ATAPI controllers", double click on your controller and go to "Driver" tab. Click on "Driver details" and tell us the file names, who is the "Provider" and who are the "Digital Signers" of all the files. We need that info to tell you exactly what driver are you using.

Regards.

Share this post


Link to post
Share on other sites

validebag,

If I were you, I would disable AHCI. Check your BIOS settings for a setting called "SATA Mode" or something similar and set it to "IDE".

Right now you're using intel's drivers v8.3 (an outdated version, by the way, newest one is 8.5).

You should always use Microsoft's native drivers if it's possible. intel is screwing its own drivers a lot :(

Regards.

Share this post


Link to post
Share on other sites

validebag,

Changing drivers is an easy task, but is not without risk. Please be warned that you could be greeted by a nice BSoD (Blue Screen of Death) if you don't do it carefully!

What's the model and manufacturer of your motherboard? Have you located the "Sata Mode" options in your BIOS?

Regards.

Share this post


Link to post
Share on other sites

Hello,

This thread got me curious about NCQ, so I tested my drives with HD Speed, then turned on AHCI (with a simple hack to enable it in XP on ICH9), and this post has the NCQ results.

I have two drives in my system (Gigabyte P35-DS3L, ICH9 non-raid)

Maxtor 6L160M0 -- 160gb/sata1.5/8mb -- Maxtor drive I got with a Dell -- OS drive

MAXTOR STM3500630AS -- 500gb/sata3.0/16mb -- rebranded Seagate(7200.10) -- storage drive

I've always thought my Maxtor 6L160M0 was pretty zippy, and the numbers I got without AHCI are pretty good, but I didn't take screenshots so I'm just going to show the NCQ results first. Then I'll reconfigure and reboot into IDE mode.

The subjective feel of the system is mostly the same with and without NCQ on, except when multitasking. The (probably flawed) NCQ implementation on the 6L160M0 is hard to deal with. If I'm doing a file copy or HD Speed test then the system becomes unresponsive for a random amount of time. It feels like the drive just follows your commands whenever it feels like, so it could be anywhere between 10-120 seconds before it does what you tell it (depending on the number of HD Speeds running). I'm used to the drive without NCQ, as it just splits its effort between the two tasks.

As for the STM, its good as a storage drive, but would be a horrible to use as a main drive.

Anyway, the results below are pretty bad, especially the rebranded Seagate.

Also, as I'll show later, the rebranded Seagate is the same with and without NCQ :( .

I couldn't get the thumbnails working right, I think because they're bmp, but I don't feel like wasting more time messing with that right now.

MAXTOR STM3500630AS

2x HD Speed 64k

2x HD Speed 256k

Maxtor 6L160M0

2x HD Speed 64k

2x HD Speed 256k

I don't understand why other people are happy with results like these that show the drives alternating full speed between the HD Speed processes, that in my experience makes for a stuttery system that doesn't respond when you want it to.

So I have a question for people that got these results on their 7200.11, how does the system respond when you open a program while running 2 HD Speed instances? For me, with NCQ enabled on my Maxtor 6L160M0, it takes a while. I like the non-NCQ performance better, where it evenly splits speed between tasks. Again, I'll have those benches in a little while, as I need to reconfigure to get them. Then again, I tested with 256k blocks, so maybe 64k will show something different.

Share this post


Link to post
Share on other sites
2nd: the Intel ICH9R behaves exceptionally shitty, because it distributes the available "bandwidth" of the hard drives extremely unevenly. It happens that one (or several) of my applications freeze completely because they can really read or write zero bytes for some time (proven with HD_Speed: e.g. 100 MB/s for 1st instance and 0 B/s for 2nd instance, for a long time). This did not happen with other controllers in the past.

I currently have an abit ip35 pro with the ich9r chipset with the exact symptoms you describe. I would be willing to go upgrade to a p45/ich10r motherboard tonight assuming this issue has been resolved but i cant seem to find any information on the ich10r and ncq performance.

Share this post


Link to post
Share on other sites
I currently have an abit ip35 pro with the ich9r chipset with the exact symptoms you describe. I would be willing to go upgrade to a p45/ich10r motherboard tonight assuming this issue has been resolved but i cant seem to find any information on the ich10r and ncq performance.

Yeah, and erl0s described the same in the posting above me.

I wouldn't count on the ICH10R performing better. ;)<_<

For me, the problem is solved since I bought my Dell Perc 5/i RAID controller, but it was a lot more expensive than the mainboard, so that's not really a good solution... If you don't need RAID, simply disable AHCI (e.g. in the BIOS) and that's it.

Share this post


Link to post
Share on other sites

Well its been a while, but I got distracted and also had some trouble getting back to ide mode in Windows. I'm on a repair install, but here are the IDE mode results for my 160gb Maxtor:

NCQ off, 256k, 1 instance

maxtor0ide1256kjpegmm6.jpg

NCQ off, 256k, 2 instances

maxtor0ide2256kjpegje3.jpg

I had a bunch of stuff running in the backround in these tests, so that explains the dips in performance. I just wanted to get a quick post on here once I remembered to. I just used 256k blocks. If anyone wants more results, please ask.

Here are the NCQ vs IDE results

NCQ on, 256k, 2 instances

maxtor0ncq2256kjpegji8.jpg

NCQ off, 256k, 2 instances

maxtor0ide2256kjpegje3.jpg

So it seems my Maxtor is pretty unique, for me this leads to all sorts of questions.

The main feeling I have is disbelief that my old (some would say crappy) Maxtor might do better multitasking than a modern $300 Velociraptor in IDE or AHCI mode (when the Maxtor has NCQ off). And I'm not that convinced that high STR is that important for 7200 drives compared to multitasking, though of course the response time of the raptor is amazing and important. I just prefer having medium-low STR performance with good multitasking than high STR that becomes a fraction of the max when multitasking.

It seems Linux doesn't have the same problems Windows does, so maybe much like Seagate has better NCQ with 7200.11 drives under Windows, Maxtor had the secret to get good multitasking in Windows. The conspiracy theorist in me notices how Maxtor was bought out by Seagate, and wonders if that is related. Regardless, there's too little information for me to do much else then speculate, especially with my little knowledge of these things.

Share this post


Link to post
Share on other sites

That is really interesting. If Maxtor had discovered an implementation for NCQ that significantly boosted performance in Windows, then Seagate certainly would have implemented it when they acquired Maxtor. I wonder then why neither of the companies mentioned increased NCQ performance?

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