Configue IDE ATA hard disk to use DMA transfer

To get the best performance of your IDE hard disk, then one should make sure that DMA transfer mode is enabled.

To configure the DMA-mode used for your IDE devices attached to the onboard controller:
  1. Open Control Panel and double-click System.
  2. Select the Hardware-tab and click Device Manager.
  3. Find the IDE ATA/ATAPI Controllers and double-click either primary or secondary IDE channel depending on which your IDE devices are attached.
  4. The following options should be available in Advanced Settings:
    • DMA if available
    • PIO only
Note that if DMA is enabled for a device which doesn't support it then this can cause data corruption.

Note that some ATAPI devices like CD-ROM, Tape-Drive, MO-Drive is set to PIO by default, so one manually has to enable DMA as described in the beginning.

Note if more than 6 transfer timeouts occurs then Windows tries to degrade the DMA mode to a lower level to prevent data errors (Independent of lifetime). If the transfer timeouts continues to occur then it will change to PIO mode for the IDE device. The only way to reenable DMA is to remove the device or controller in the Device Manager (It will redetect the device automatically). More Info MS KB817472.

Note with Windows XP SP2 and Windows 2000 SP3 a less aggressive policy was introduced, so instead of remembering all DMA transfer timeouts throughout history, then it would reset the timeout counter if a succesful transfer was performed. This policy is not enabled by default, but can enabled with the following DWORD registry key:

[HKEY_LOCAL_MACHINE \SYSTEM \CurrentControlSet \Control \Class \{4D36E96A-E325-11CE-BFC1-08002BE10318}\000X]
ResetErrorCountersOnSuccess = 1

Where X is a number from 1 to 9 (Depending on how many onboard IDE controllers there is in the system).

Note Win2k/Xp/2k3 without any service pack applied will only use UDMA33 on Intel onboard standard IDE-Controller. This can be upgraded to UDMA66 by adding/updating this DWORD value:

[HKEY_LOCAL_MACHINE\ System\ CurrentControlSet\ Control\ Class\ {4D36E96A-E325-11CE-BFC1-08002BE10318}\ 0000]
EnableUDMA66=1

More Info MS KB247951

More Info MS Technet
More Info MS KB260233 (ATA 100 is supported in Win2k SP2)

Updated: 23 September 2007

Leave a Reply

Your email address will not be published. Required fields are marked *