在微軟十一月份的一篇技術文章中提到,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的模式了。
若你需要更詳細的內容,請自行參考該技術文件。