在微软十一月份的一篇技术文章中提到,Windows 2000/XP/2003在某些情况下有时会自行关闭硬碟的DMA模式,而自动改用PIO模式运作。这会造成在使用时系统中硬碟性能下降,使得在系统运作时进行硬碟操作会明显感觉变慢。例如在运作一些较大型的软体时会使CPU使用率满载而产生停顿,或是玩一些3D游戏时画面时会有停顿现象,若出现以上问题时大家最好看看自己硬碟的DMA模式是不是被Windows自行关闭了。
http://support.microsof...id=817472查看自己的系统是否打开DMA模式:
1. 打开"装置管理员"
2. 打开"IDE ATA/ATAPI控制器"
3. 连续按两下您的"主要IDE控制器"
4. 点选"进阶设定" (我在WinXP SP2下看不到.......)
5. 看到"装置0",下面的传输模式应设为"DMA(若可用)",若"目前传输模式"设为"Ultra DMA Mode x" (x取决于硬碟速度),那么系统正常,但若之前设定是"Ultra DMA Mode 6"又没有更动过,而现在是"Ultra DMA Mode 4"或"Ultra DMA Mode 2"更或是"PIO 模式"且无法更改!那可能就是系统自行关闭了DMA模式。
这是因为Windows 2000/XP/2003中预设为:若IDE/ATAPI驱动程式(Atapi.sys)累积收到总共6个超时或CRC error后,驱动程式会把传输模式从最快的DMA模式渐次骤降为较慢的DMA模式。如果atapi.sys持续收到超时或CRC error,则驱动程式最后会将把传输模式降为最慢的PIO模式。
若要将传输模式重新启用为DMA模式,可以执行以下步骤:
1. 打开"装置管理员"
2. 打开"IDE ATA/ATAPI控制器"
3. 连续按两下要恢复为DMA传输模式的控制器
4. 按一下"驱动程式"选项
5. 按一下"解除安装"
6. 完成后重新启动电脑。
当 Windows 重新启动后会重新安装硬碟控制器,而与该控制器相连的每个设备的传输模式会重设为预设值。但这样只是把硬碟设备的传输模式重置为预设值,若系统进入休眠模式而引起time-out或CRC error六次后系统又会自动关闭DMA模式。
微软提供了利用更动registry的解决方法
1. 执行Regedit
2. 在registry找到下列值:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}\0001
和
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}\0002
3. 在"编辑"选单上,选择"新建",选择新增"DWORD值"。
4. 输入ResetErrorCountersOnSuccess。
5. 将该新增之ResetErrorCountersOnSuccess值改为1(预设为0)。
6. 退出regedit
根据该技术文章,这个问题在winxp sp2已经修正。另外,如果你是用nForce的晶片组和nVidia的驱动程式,那你就不用去检查了,因为nVidia的driver已经预设用UDMA的模式了。
若你需要更详细的内容,请自行参考该技术文件。