Enable DMA to reduce processor cycle consumption during burning data to CD/DVD or reading data from CD/DVD


Enabling DMA mode on IDE channels will consume less processor cycles almost reduce consumption of processor cycles from 50% to 5%.  Windows 2K/2000 and Windows XP fail to enable DMA on IDE devices automatically. Though enabling DMA will not boost writing speed on to the disk, it will consume less processor cycles which can be used for another purpose.

By default PIO (Programmed Input-Output) transfer mode is set on IDE drivers in windows XP and 2000. PIO transfer mode consume more processor cycles because the central processor transfers data word by word or byte by byte.

When DMA transfer mode is enabled, small processor called DMA controller takes the burden of transferring data between IDE devices. Once the central processor starts the data transfer and transfers the control to DMA controller, the DMA controller looks after the data transfer and after completing the total transfer the control is transferred from DMA controller to central processor thus the central processor gets less involved in the transfer and so CPU cycles are saved which can be used by another programme.

Why a computer may use programmed Input-Output rather then DMA during data transfers?

Even after enabling DMA transfer mode frequently CD/DVD port falls to PIO mode due to scratched or unreadable CD-DVD.

During some situations PIO mode is enabled by default and these are as follows:

Due to repeated DMA errors – Windows XP will disable DMA mode and slips to PIO mode after encountering certain errors during data transfer operations. Possibly if more than 6 DMA transfer time-out occurs, windows enables PIO mode disabling DMA mode.

In the above case we can’t enable DMA for that device. Only solutions for this to be uninstall the device and reinstall it.

Methods to re-enable DMA

Through control panel:

1.      Device manager (Right click My computer and go to properties and click on device manager)

2.      Expand IDE ATA/ATAPI controller then Select Primary IDE channels then go to properties in that select Advanced Settings. Enable Transfer mode for Device 0 and also Transfer mode for Device 1 if not enabled already.

3.      Do the same for Secondary IDE channel?

Through Registry:

Editing the registry is the alternative way to enable DMA mode for IDE drivers.

1.      Start > Run

2.      Type Regedit.

3.      Now browse to the following key. HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Control Class {4D36E96A-E325-11CE-BFC1-08002BE10318}

4.      You will find the following subkeys:                0000 (for the IDE controller)
0001 (for the Primary IDE channel)
0002 (for the Secondary IDE channel)

5.      Open the sub-key and determine the channel on which troublesome drive is located.

6.      If the drive Is master then delete MasterIdDataChecksum value.

7.      If drive is master then delete SlaveIdDataChecksum named value.

8.      Reboot your windows XP/2K.

Leave a Reply