Here it is lamans terms:
Bad media causes CRC (Cyclic Redundancy Codes) errors when read by any DVD-ROM player (stand along or PC). For your stand along player, you get pauses/freezes/pixalation. Your PC does something different.
When a CRC error comes across your IDE port (DVD drive), Windows will count how many errors it gets. An ideal transfer of data between your DVD-drive and your motherboard is had via a Dynamic Memory Access, which makes for less tasking on the CPU (performance percentage). However, as errors accumulate, windows will actively regulate DMA. If things get really bad, it reduces to PIO (programable input/ouput), which is very slow and causes the CPU to handle the brunt of the tasks. this means more CPU cycles, and more percentage. For burning, you will see "bursts" of CPU percentage being used.
This forced reversion to PIO will stay for ever and ever regardless of new better media being inserted. Thus causing failed burning on that drive untill the check-sum of errors is erased from the windows registry.
So, my stint of bad media, which had CRC errors at the end of the Memorex 8x disc, was hurting my DMA more and more each time I did a disc test. Trying to find my media problem made my problem a longterm one!!!
Here is a more in depth writeup about the problem:
Special thanks to Joe at Micro Advantage (.net) for his support.
Bad media causes CRC (Cyclic Redundancy Codes) errors when read by any DVD-ROM player (stand along or PC). For your stand along player, you get pauses/freezes/pixalation. Your PC does something different.
When a CRC error comes across your IDE port (DVD drive), Windows will count how many errors it gets. An ideal transfer of data between your DVD-drive and your motherboard is had via a Dynamic Memory Access, which makes for less tasking on the CPU (performance percentage). However, as errors accumulate, windows will actively regulate DMA. If things get really bad, it reduces to PIO (programable input/ouput), which is very slow and causes the CPU to handle the brunt of the tasks. this means more CPU cycles, and more percentage. For burning, you will see "bursts" of CPU percentage being used.
This forced reversion to PIO will stay for ever and ever regardless of new better media being inserted. Thus causing failed burning on that drive untill the check-sum of errors is erased from the windows registry.
So, my stint of bad media, which had CRC errors at the end of the Memorex 8x disc, was hurting my DMA more and more each time I did a disc test. Trying to find my media problem made my problem a longterm one!!!
Here is a more in depth writeup about the problem:
DMA Reverts to PIO
General Description
This article also applies to Windows 2000. (Peter Frank reported successful
application on Windows 2000 with Service Pack 4.)
DMA is an abbreviation for Direct Memory Access, an access method for
external devices where the data transfer is not done by the central
processor, but by a small special processor called 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,
Programmed Input-Output, where the central processor 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.
Windows contains a trap in which quite a few computers seem to get caught
sooner or later. The trap is described in the following article (and also in
another one mentioned below):
DMA Mode for ATA/ATAPI Devices in Windows XP
The crucial paragraphs are:
PIO mode is enabled by default in the following situations:
...
For repeated DMA errors. Windows XP will turn off DMA mode for a device
after encountering certain errors during data transfer operations. If more
that six DMA transfer timeouts occur, Windows will turn off DMA and use only
PIO mode on that device.
In this case, the user cannot turn on DMA for this device. The only option
for the user who wants to enable DMA mode is to uninstall and reinstall the
device.
Windows XP downgrades the Ultra DMA transfer mode after receiving more than
six CRC errors. Whenever possible, the operating system will step down one
UDMA mode at a time (from UDMA mode 4 to UDMA mode 3, and so on).
...
Of course, drive firmware being quite complex and certainly containing
programming defects of its own, it is not all that difficult to produce such
errors. In my case a scratched DVD and later also an unreadable (overburned)
CD did the trick, got the drive to choke and Windows to disable DMA for
good. Later my hard disk hiccupped just once and also went back to PIO for
good.
I had been using my laptop for DVD viewing for years, until I inserted a
borrowed and heavily scratched DVD. The player and apparently even the DVD
drive choked on it, and when I finally got the DVD to play, I found that
playing was jerky and processor load was 100%, roughly half of which was
system overhead.
This indicated that the drive had reverted from the usual UDMA (Ultra Direct
Memory Access) mode 2 to PIO (Programmed Input Output) mode. No amount of
resetting or changing the relevant registry parameters from 1 (try DMA) to 2
(force DMA) helped. Stubbornly the drive kept using PIO mode, and Windows
even changed these settings back to 0 (use PIO only).
The following text will refer to the secondary IDE port because that is more
often affected, but essentially the same also holds for the primary IDE
port, to which the main hard disk is connected in most computers.
Check Your IDE Port Mode
First check what mode your secondary IDE port is currently working in. Go to
Device Manager: right-click on My Computer, select Properties, click on the
Hardware tag, click on the Device Manager button, click on the plus sign to
the left of IDE ATA/ATAPI Controller, double-click on the secondary IDE
channel, click on Extended Settings and check whether it is set to DMA when
available. Directly underneath that setting is a grey field that shows the
actual working mode of your IDE channel. You want the highest possible DMA
or Ultra DMA mode there, and you definitely don't want PIO mode.
Normally you don't have to use the registry editor for this, because the
normal settings are also available through the properties dialog for the IDE
port, but if you want to look at it anyway, the parameter for the secondary
IDE port can be found through regedit.exe at
HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\Scsi\Scsi Port 1
It is named Scsi only for historic reasons. Scsi Port 0 is the primary IDE
port, to which presumably your hard disk is connected.
After trying various remedies-in vain-I found the abovementioned article and
went to work again. I uninstalled the DVD drive in Device Manager and
rebooted, but that did not help either.
So I searched for more and better information, then I went on and did the
following.
Re-enable DMA using the Registry Editor
My thanks go to my fellow MVP Alexander Grigoriev who taught me this method.
Run REGEDIT. Go to the following key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Class\{4D36E96A-E325-11C
E-BFC1-08002BE10318}
It has subkeys like 0000, 0001, 0002, etc. Normally 0001 is the primary IDE
channel, 0002 the secondary, but other numbers can occur under certain
circumstances. Check the DriverDesc value to see which one it is.
Delete MasterIdDataChecksum or SlaveIdDataChecksum, depending on whether the
device in question is attached as master or slave, but it can't actually
hurt to delete both. Reboot. The drive DMA capabilities will be redetected.
Open Device Manager again and check whether the device is now actually using
DMA mode. If so, congratulations, you've made it (at least until the next
time Windows disables DMA).
Alternative Method-Uninstalling the Port
1. Uninstall the secondary IDE port
To do that, open Device Manager as follows. Right-click on My Computer,
select Properties, click on the Hardware tag, click on the Device Manager
button, click on the plus sign to the left of IDE ATA/ATAPI Controller,
right-click on Secondary IDE Channel, click on Uninstall. Deactivating is
not enough.
Reboot to make the changes active and permanent.
After booting Windows will automatically reinstall the IDE channel and the
DVD (or CD) drive. This Plug-n-Play process can take a little while, so give
it a minute after the boot process finishes.
2. Reactivate DMA
But this is not enough, because unfortunately Windows does not automatically
activate DMA on a DVD or CD drive. You have to tell Windows to try to use
DMA first.
For that, go to Device Manager again. Right-click on My Computer, select
Properties, click on the Hardware tag, click on the Device Manager button,
click on the plus sign to the left of IDE ATA/ATAPI Controller, double-click
on the secondary IDE channel, click on Extended Settings and change the
relevant setting from PIO only to DMA when available.
On Windows NT and 2000 you now have to reboot a second time, but Windows XP
applies the change instantly. Then you can go to the same place in Device
Manager again and check whether the device is now actually using DMA mode.
If so, all is well.
Desensitize Your Computer's IDE Channels
There's a bit more to it. The following article offers a way to reduce the
incidence of this problem, although it still doesn't solve it altogether.
IDE ATA and ATAPI Disks Use PIO Mode After Multiple Time-Out or CRC Errors
Occur
Do read this article because it contains a useful long-term workaround. But
you have to go through the procedure described here to re-enable DMA first.
Assuming you've done that, insert the ResetErrorCountersOnSuccess registry
values mentioned in this article into both the primary and the secondary IDE
port registry keys as described.
Unfortunately this is only a half solution, because when you enter an
unreadable DVD, you will get 6 errors in a row, and the IDE channel will
revert to PIO mode, but at least when you pull out the DVD in time and then
insert a good one, the error counter will be reset and it will at least be a
bit more difficult for Windows to hobble your IDE drive.
General Description
This article also applies to Windows 2000. (Peter Frank reported successful
application on Windows 2000 with Service Pack 4.)
DMA is an abbreviation for Direct Memory Access, an access method for
external devices where the data transfer is not done by the central
processor, but by a small special processor called 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,
Programmed Input-Output, where the central processor 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.
Windows contains a trap in which quite a few computers seem to get caught
sooner or later. The trap is described in the following article (and also in
another one mentioned below):
DMA Mode for ATA/ATAPI Devices in Windows XP
The crucial paragraphs are:
PIO mode is enabled by default in the following situations:
...
For repeated DMA errors. Windows XP will turn off DMA mode for a device
after encountering certain errors during data transfer operations. If more
that six DMA transfer timeouts occur, Windows will turn off DMA and use only
PIO mode on that device.
In this case, the user cannot turn on DMA for this device. The only option
for the user who wants to enable DMA mode is to uninstall and reinstall the
device.
Windows XP downgrades the Ultra DMA transfer mode after receiving more than
six CRC errors. Whenever possible, the operating system will step down one
UDMA mode at a time (from UDMA mode 4 to UDMA mode 3, and so on).
...
Of course, drive firmware being quite complex and certainly containing
programming defects of its own, it is not all that difficult to produce such
errors. In my case a scratched DVD and later also an unreadable (overburned)
CD did the trick, got the drive to choke and Windows to disable DMA for
good. Later my hard disk hiccupped just once and also went back to PIO for
good.
I had been using my laptop for DVD viewing for years, until I inserted a
borrowed and heavily scratched DVD. The player and apparently even the DVD
drive choked on it, and when I finally got the DVD to play, I found that
playing was jerky and processor load was 100%, roughly half of which was
system overhead.
This indicated that the drive had reverted from the usual UDMA (Ultra Direct
Memory Access) mode 2 to PIO (Programmed Input Output) mode. No amount of
resetting or changing the relevant registry parameters from 1 (try DMA) to 2
(force DMA) helped. Stubbornly the drive kept using PIO mode, and Windows
even changed these settings back to 0 (use PIO only).
The following text will refer to the secondary IDE port because that is more
often affected, but essentially the same also holds for the primary IDE
port, to which the main hard disk is connected in most computers.
Check Your IDE Port Mode
First check what mode your secondary IDE port is currently working in. Go to
Device Manager: right-click on My Computer, select Properties, click on the
Hardware tag, click on the Device Manager button, click on the plus sign to
the left of IDE ATA/ATAPI Controller, double-click on the secondary IDE
channel, click on Extended Settings and check whether it is set to DMA when
available. Directly underneath that setting is a grey field that shows the
actual working mode of your IDE channel. You want the highest possible DMA
or Ultra DMA mode there, and you definitely don't want PIO mode.
Normally you don't have to use the registry editor for this, because the
normal settings are also available through the properties dialog for the IDE
port, but if you want to look at it anyway, the parameter for the secondary
IDE port can be found through regedit.exe at
HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\Scsi\Scsi Port 1
It is named Scsi only for historic reasons. Scsi Port 0 is the primary IDE
port, to which presumably your hard disk is connected.
After trying various remedies-in vain-I found the abovementioned article and
went to work again. I uninstalled the DVD drive in Device Manager and
rebooted, but that did not help either.
So I searched for more and better information, then I went on and did the
following.
Re-enable DMA using the Registry Editor
My thanks go to my fellow MVP Alexander Grigoriev who taught me this method.
Run REGEDIT. Go to the following key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Class\{4D36E96A-E325-11C
E-BFC1-08002BE10318}
It has subkeys like 0000, 0001, 0002, etc. Normally 0001 is the primary IDE
channel, 0002 the secondary, but other numbers can occur under certain
circumstances. Check the DriverDesc value to see which one it is.
Delete MasterIdDataChecksum or SlaveIdDataChecksum, depending on whether the
device in question is attached as master or slave, but it can't actually
hurt to delete both. Reboot. The drive DMA capabilities will be redetected.
Open Device Manager again and check whether the device is now actually using
DMA mode. If so, congratulations, you've made it (at least until the next
time Windows disables DMA).
Alternative Method-Uninstalling the Port
1. Uninstall the secondary IDE port
To do that, open Device Manager as follows. Right-click on My Computer,
select Properties, click on the Hardware tag, click on the Device Manager
button, click on the plus sign to the left of IDE ATA/ATAPI Controller,
right-click on Secondary IDE Channel, click on Uninstall. Deactivating is
not enough.
Reboot to make the changes active and permanent.
After booting Windows will automatically reinstall the IDE channel and the
DVD (or CD) drive. This Plug-n-Play process can take a little while, so give
it a minute after the boot process finishes.
2. Reactivate DMA
But this is not enough, because unfortunately Windows does not automatically
activate DMA on a DVD or CD drive. You have to tell Windows to try to use
DMA first.
For that, go to Device Manager again. Right-click on My Computer, select
Properties, click on the Hardware tag, click on the Device Manager button,
click on the plus sign to the left of IDE ATA/ATAPI Controller, double-click
on the secondary IDE channel, click on Extended Settings and change the
relevant setting from PIO only to DMA when available.
On Windows NT and 2000 you now have to reboot a second time, but Windows XP
applies the change instantly. Then you can go to the same place in Device
Manager again and check whether the device is now actually using DMA mode.
If so, all is well.
Desensitize Your Computer's IDE Channels
There's a bit more to it. The following article offers a way to reduce the
incidence of this problem, although it still doesn't solve it altogether.
IDE ATA and ATAPI Disks Use PIO Mode After Multiple Time-Out or CRC Errors
Occur
Do read this article because it contains a useful long-term workaround. But
you have to go through the procedure described here to re-enable DMA first.
Assuming you've done that, insert the ResetErrorCountersOnSuccess registry
values mentioned in this article into both the primary and the secondary IDE
port registry keys as described.
Unfortunately this is only a half solution, because when you enter an
unreadable DVD, you will get 6 errors in a row, and the IDE channel will
revert to PIO mode, but at least when you pull out the DVD in time and then
insert a good one, the error counter will be reset and it will at least be a
bit more difficult for Windows to hobble your IDE drive.
Comment