The speed at which your hard drive transfers data is very important,
right? Especially if you need to copy a 20-gigabyte file, like I did.
My laptop was initially copying the file at 2 MB/s because it was
transferring in PIO-only mode, which would have taken almost three
hours. Not only is PIO terribly slow, it consumes lots of CPU power.
While copying that 20-gigabyte file, my CPU usage stayed at 100%.
Therefore, I tried to figure out the best way to increase the transfer
rate. I changed the transfer mode to UltraDMA-6, speeding it up by 600%
to 12 MB/s, and the 20-gigabyte file copied in a little over 30
minutes. Plus, my CPU usage was only about 20-30%.
So, how did
the drive get lowered from UltraDMA to PIO-only mode in the first
place? Well, because Windows has a particularly dumb way of handling
transfer modes for storage devices. After six cumulative (all-time
total) errors while reading or writing a storage device, Windows will
automatically lower its transfer mode. Worse, it never goes back up
unless you reinstall the device. This is bad if you put in a scratched
CD, causing those six-in-a-lifetime errors happen all at once. Even
your hard drive will experience an occasional hiccup, so eventually its
transfer rate is not safe either.
However, there is a setting to
force Windows to only lower the transfer rate after six consecutive (in
a row) errors, and then raise it back up when the errors stop.
Therefore, you can keep your drives in UltraDMA-6 mode.
If you
would like to try changing the transfer mode for your drives, follow
the instructions below. Going from PIO-only mode to UltraDMA-6 will
show you the most significant performance boost. However, your results
may vary. Of course, your drive and motherboard must support
UltraDMA-6, or you won't see much of a difference. Be careful while you
are doing this; I am not responsible for any mistakes you make. Please
back up your registry first in case something goes wrong!
How to Check Current Transfer Mode
- 1.Open Device Manager
- 2.Expand IDE ATA/ATAPI Controllers
- 3.Double click on Primary IDE Controller or Secondary IDE Controller
- 4.Go
to the Advanced Settings tab to see the current transfer modes. If you
see anything besides UltraDMA-6, and especially if you see PIO Mode,
then follow the steps below.
How to Force UltraDMA-6
- 1.Open up the Registry Editor.
- 2.Navigate to the following key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}.
- 3.There
are several sub-keys under this one, such as 0000, 0001, etc. You are
interested in two of them that say Primary IDE Channel and Secondary
IDE Channel.
- 4.Make the following changes to both of those keys:
- 5. 1.Delete
any attributes named MasterIdDataCheckSum or SlaveIdDataCheckSum. This
resets the tracking for errors that Windows uses to determine when the
transfer mode should be lowered.
- 2.Add an attribute with the name
ResetErrorCountersOnSuccess and a DWORD value of 1. This tells Windows
that it should lower the transfer mode when there are six consecutive
errors instead of six cumulative errors.
- 3.If they exist, set the
following keys to a hexadecimal value of ffffffff (eight F's). This
will change the transfer modes to UltraDMA-6:
- 4.MasterDeviceTimingMode
- MasterDeviceTimingModeAllowed
- SlaveDeviceTimingMode
- SlaveDeviceTimingModeAllowed
- UserMasterDeviceTimingModeAllowed
- UserSlaveDeviceTimingModeAllowed
- 5.Reboot your computer and check the devices to see if they are set to UltraDMA Mode 6.