2008年8月11日 星期一

硬碟的DMA模式是不是被Windows 系統自行關閉

 硬碟的DMA模式大家應該都知道吧,硬碟的PATA模式有DMA33、DMA66、DMA100和DMA133,最新的SATA-150都出來了!一般來說現在大多數人用的還是PATA模式的硬碟,硬碟使用DMA模式相比以前的PIO模式傳輸的速度要快2~8倍。DMA模式的起用對系統的性能起到了實質的作用。以前有很多文章介紹過如何打開DMA模式,我在這裏也就不多說了。

  但筆者發現一個新的“問題”——Windows 2000、XP、2003系統有時會自行關閉硬碟的DMA模式,自動改用PIO模式運行!這就造成在使用以上系統中硬碟性能突然下降,其中最明顯的現象有:系統起動速度明顯變慢,一般來說正常Windows XP系統啟動時那個由左向右運動的滑條最多走2~4次系統就能啟動,但這一問題發生時可能會走5~8次或更多!而且在運行系統時進行硬碟操作時明顯感覺變慢,在運行一些大的軟體時CPU佔用率時常達到100%而產生停頓,玩一些大型3D遊戲時(比如極品飛車6)畫面時有明顯停頓(很多人這時以為是自己的顯卡問題,當然如果你使用的是三年前的顯卡玩這些遊戲是有點老了,但如果你用的是今年才買的GF顯卡那就不是它的問題了),出現以上問題時大家最好看看自己硬碟的DMA模式是不是被Windows 系統自行關閉了。查看自己的系統是否打開DMA模式:

  1. 雙擊“管理工具”,然後雙擊“電腦管理”;

  2. 單擊“系統工具”,然後單擊“設備管理器”;

  3. 展開“IDE ATA/ATAPI 控制器”節點;

  4. 雙擊您的“主要IDE控制器”;

  5. 點擊“高級設置”。

  看到“設備0”,下面的傳輸模式應設為“DMA(若可用)”,再下面“當前傳輸模式”,如果是“Ultra DMA Mode *(*為數位,DMA33為2,DMA66為4,DMA100為5、DMA133為6)”,那麼你的系統正常,但如果以前你自己設的是“Ultra DMA Mode 6”又沒有改動,而現在是“Ultra DMA Mode 4”或“Ultra DMA Mode 2”更或者是“PIO 模式”而且改不過來!可能就是系統自行關閉了DMA模式了。

  分析問題:

  好了,先來說說問題是如何產生的。在Windows 2000/XP/2003中有這樣一個設定: Windows IDE/ATAPI 埠驅動程式 (Atapi.sys) 累積收到總共6個超時或迴圈冗餘檢驗 (CRC) 錯誤後,驅動程式將把通信速度(傳送模式)從最快的直接記憶體訪問 (DMA) 模式分步驟降為較慢的 DMA 模式。如果驅動程式繼續收到超時或 CRC 錯誤,則驅動程式最終將把傳送模式降為最慢的模式(PIO 模式)。 問題就在這裏!一般來說一個正常的硬碟很少會有超時或迴圈冗餘檢驗 (CRC) 錯誤,但是當我們使用這些系統裏的掛起(也有叫休眠)並恢復電腦後就很容易造成超時或迴圈冗餘檢驗 (CRC) 錯誤。因為系統設定的超時值為4秒,當系統向 ATA 磁片發出讀取請求時如果硬碟回應時間超過 4 秒的超時值時才會產生超時或迴圈冗餘檢驗 (CRC) 錯誤,但因為系統在掛起(也有叫休眠)時硬碟是在停轉狀態中,恢復電腦時硬碟有個從停止到運動的過程,這就很容易造成大部分硬碟回應時間超過 4 秒的超時值。也就是說當我們使用電腦掛起6次後系統就會把通信速度(傳送模式)從最快的直接記憶體訪問 (DMA) 模式分步驟降為較慢的 DMA 模式。如果掛起6次以上則驅動程式最終將把傳送模式降為最慢的模式(PIO 模式)。這就是Windows 系統突然變慢的原因。

  解決問題:

  若要為受影響的設備重新啟用典型DMA或更快DMA的傳送模式,請執行以下操作:

  1. 雙擊“管理工具”,然後雙擊“電腦管理”;

  2. 單擊“系統工具”,然後單擊“設備管理器”;

  3. 展開“IDE ATA/ATAPI 控制器”節點;

  4. 雙擊您要為其恢復典型 DMA 傳送模式的控制器;

  5. 單擊“驅動程式”選項卡;

  6. 單擊“卸載”。

  當此過程完成後,重新啟動您的電腦。當 Windows 重新啟動後,將重新枚舉硬碟控制器,同時與該控制器相連的每個設備的傳送模式將重置為預設值。


原文網址

沒有留言:

張貼留言