Slow data transfer speed in Windows, possible reasons and workarounds
- Backup or recovery is unwarrantably slow;
- Data transfer speed does not exceed the 5 MB/Sec limit;
- Processor usage goes up to 100% during the operation and overall system performance decreases.
Most likely the data transfer mode for the hard disk controller is set to PIO instead of DMA.
- DMA: Direct memory access is a feature of modern computers that allows hardware subsystems within the computer to access system memory for reading and/or writing independently of the CPU. Hence, higher performance.
- PIO: Programmed Input-Output is an older and more simple data transfer mode that makes the CPU engage in any data transaction. Hence, slower performance.
PIO is enabled by default in the following situations:
- For ATAPI devices, except DVD and CD-R/RW drives - Windows enables PIO by default on ATAPI tape drives, CD-ROM drives, and ATAPI removable drives such as magneto-optical (MO) drives. DMA can be enabled on an ATAPI device through Device Manager (see the Solution section of this article). Windows XP enables DMA by default on ATAPI DVD and CD-RW/CD-R drives.
- For ATA or ATAPI devices that do not work properly in DMA mode - Compatibility testing at Microsoft has shown that enabling DMA on certain drives may cause data corruption or reduced system stability. DMA cannot be enabled on these devices.
- For certain IDE chipsets that cause data corruption - For ATA or ATAPI devices using chipsets that are known to cause problems running in the DMA mode, Windows will enable PIO by default. System manufacturers can override this default behavior by implementing the _GTM and _STM methods in the ACPI BIOS. DMA can be enabled using Device Manager.
- For repeated DMA errors - Windows will turn off DMA mode for a device after encountering certain errors during data transfer operations. If more than six DMA transfer timeouts occur, Windows will turn off DMA and use only PIO mode on that device. In this case, DMA can be turned on only after reinstallation of this device. If more than six CRC errors occur, Windows will turn off DMA and temporarily use PIO on the device. In this case, DMA will automatically be turned on after system reboot.
All CRC and timeout errors are logged in the system event log.
First of all please check if DMA for a certain channel/controller is enabled in BIOS:
Please do the following to enable DMA mode using Device Manager:
- Open Device Manager (Click Start -> Run and type "devmgmt.msc");
- Double-click IDE ATA/ATAPI Controllers to display the list of controllers and channels;
- Right-click the icon for the channel to which the device is connected, select Properties, and then click the Advanced Settings tab;
- In the Current Transfer Mode drop-down box, select DMA if Available if the current setting is PIO Only.
If the drop-down box already shows DMA if available but the current transfer mode is PIO, then toggle the settings:
- Change the selection from DMA if available to PIO Only, and click OK.
- Then repeat the steps above to change the selection to DMA if available.
If DMA cannot be enabled manually, there is a way to reset the data transfer mode for all IDE and SATA and let windows auto-discover it once again:
- Download a special VBS script;
- Ignore all the warnings and click on the [Open] or [Execute] to execute the file resetdma.vbs;
- If the program finds any ATA channel to reset, reboot your computer and see if the performance of disk operations has increased;
- If the issue remains unresolved, set the offending channel to PIO manually, reboot your computer, and set the channel back to DMA. Reboot again.
Check the following links to get more information on this topic: