|DMA is an abbreviation for the Direct Memory Access method of data transfer. Windows and Linux users should ensure DMA is enabled on their hard drives, as described here. This will help ensure fast and efficient editing, and smooth playback and recording.
Methods of data transfer
In DMA mode, data transfer is not done by the central processor, but by a small special processor called a DMA controller. It uses a procedure called cycle stealing, where the central processor memory access cycles are delayed for very short times to intersperse DMA controller memory access cycles. Some newer, faster DMA modes are called UDMA (Ultra DMA).
The alternative, slow and inefficient data transfer mode is called PIO, or Programmed Input-Output, where the central processing unit (CPU) transfers data byte for byte or word for word. This requires many processor commands for each data word and therefore causes a high and unwanted processor load. On a modern system, DMA can increase read and write speed by tenfold or more whilst substantially reducing CPU use.
DMA should be enabled on almost all modern Windows systems by default, and will cause problems if not. Note that unused slots won't allow enabling of DMA. Older CD-ROM drives especially may not work with DMA on, or may have DMA mode permanently disabled. These drives should be left as they are. Consult your hardware driver documentation for guidance.
To enable DMA, follow the instructions below for your version of Windows.
- Click , right-click over , then on Vista click on "Device Manager" in the left-hand panel
- Look for "IDE ATA/ATAPI controllers" and click the "+" sign to left of it
- Right-click on each channel in turn, hit Properties, and click the "Advanced Settings" tab
- For each listed device, make sure the transfer mode is set to DMA, not to PIO. On Vista, this is done by highlighting each device, then check "Enable DMA" in the panel underneath)
- Click OK, then reboot
Forcing DMA by uninstalling
If after reboot you find that the drive has reverted to PIO, the only real solution is to uninstall the drive (or channel on Windows Vista and later), and allow Windows to detect and reinstall the drive or channel upon reboot. After this, DMA should be enabled and should persist. For example on Windows Vista:
- Right-click over the Channel or Controller that has the disk which only offers PIO mode
- Click "Uninstall", or Properties > Driver tab then click "Uninstall"
- Confirm the uninstall if prompted, then reboot
- If the "Add new hardware" Wizard does not run, click
- Install the driver Windows prompts you to
- PIO mode should now be replaced with UltraDMA mode
Macs should not need any user intervention as hardware is usually very closely supported by the operating system.
Linux supports DMA but it is off by default in many distributions and this will compromise performance. If you use the hdparm command (as root), DMA can then be added to your initialisation scripts to run at boot time. To Enable DMA on Linux systems:
- Run as root
- Issue the command
# hdparm /dev/hda
- Look for the line that says "using DMA"; If it says "using_dma = 1 (on)", DMA is enabled on this drive, or if it says "using_dma = 0 (off)" then you aren't using DMA
- Issue the command
# hdparm -d1 /dev/hda
For more information see some of the many articles on the web, such as this one.