如何硬盤防止其DMA模式轉(zhuǎn)為PIO模式
作者:佚名 文章來源:不詳 點(diǎn)擊數(shù): 更新時間:2011/6/18
核心提示:分析問題先來說說問題是如何產(chǎn)生的。在Windows2000/XP/2003中有這樣一個設(shè)定:WindowsIDE/ATAPI端口驅(qū)動程序(Atapi.sys)累積收到總共6個超時或循環(huán)冗余檢驗(yàn)(CRC
分析問題 先來說說問題是如何產(chǎn)生的。在Windows 2000/XP/2003中有這樣一個設(shè)定:Windows IDE/ATAPI端口驅(qū)動程序(Atapi.sys)累積收到總共6個超時或循環(huán)冗余檢驗(yàn)(CRC)錯誤后,驅(qū)動程序?qū)淹ㄐ潘俣?傳送模式)從最快的直接內(nèi)存訪問(DMA)模式分步驟降為較慢的DMA模式。如果驅(qū)動程序繼續(xù)收到超時或CRC錯誤,則驅(qū)動程序最終將把傳送模式降為最慢的模式(PIO模式)。問題就在這里!一般來說一個正常的硬盤很少會有超時或循環(huán)冗余檢驗(yàn)(CRC)錯誤,但是當(dāng)我們使用這些系統(tǒng)里的掛起(也有叫休眠)并恢復(fù)計算機(jī)后就很容易造成超時或循環(huán)冗余檢驗(yàn)(CRC)錯誤。因?yàn)橄到y(tǒng)設(shè)定的超時值為4秒,當(dāng)系統(tǒng)向ATA磁盤發(fā)出讀取請求時如果硬盤回應(yīng)時間超過4秒的超時值時才會產(chǎn)生超時或循環(huán)冗余檢驗(yàn)(CRC)錯誤,但因?yàn)橄到y(tǒng)在掛起(也有叫休眠)時硬盤是在停轉(zhuǎn)狀態(tài)中,恢復(fù)計算機(jī)時硬盤有個從停止到運(yùn)動的過程,這就很容易造成大部分硬盤回應(yīng)時間超過4秒的超時值。也就是說當(dāng)我們使用計算機(jī)掛起6次后系統(tǒng)就會把通信速度(傳送模式)從最快的直接內(nèi)存訪問(DMA)模式分步驟降為較慢的DMA模式。如果掛起6次以上則驅(qū)動程序最終將把傳送模式降為最慢的模式(PIO模式)。這就是Windows系統(tǒng)突然變慢的原因。
解決問題:
1.雙擊“管理工具”,然后雙擊“計算機(jī)管理”;
2.單擊“系統(tǒng)工具”,然后單擊“設(shè)備管理器”;
3.展開“IDE ATA/ATAPI控制器”節(jié)點(diǎn);
4.雙擊您的“主要IDE控制器”;
5.點(diǎn)擊“高級設(shè)置”。
看到“設(shè)備0”,下面的傳輸模式應(yīng)設(shè)為“DMA(若可用)”,再下面“當(dāng)前傳輸模式”,如果是“Ultra DMA Mode *(*為數(shù)字,DMA33為2,DMA66為4,DMA100為5、DMA133為6)”,那么你的系統(tǒng)正常,但如果以前你自己設(shè)的是“Ultra DMA Mode 6”又沒有改動,而現(xiàn)在是“Ultra DMA Mode 4”或“Ultra DMA Mode 2”更或者是“PIO模式”而且改不過來!可能就是系統(tǒng)自行關(guān)閉了DMA模式了
若要為受影響的設(shè)備重新啟用典型DMA或更快DMA的傳送模式,請執(zhí)行以下操作:
1.雙擊“管理工具”,然后雙擊“計算機(jī)管理”;
2.單擊“系統(tǒng)工具”,然后單擊“設(shè)備管理器”;
3.展開“IDE ATA/ATAPI控制器”節(jié)點(diǎn);
4.雙擊您要為其恢復(fù)典型DMA傳送模式的控制器;
5.單擊“驅(qū)動程序”選項卡;
6.單擊“卸載”。
當(dāng)此過程完成后,重新啟動您的計算機(jī)。當(dāng)Windows重新啟動后,將重新枚舉硬盤控制器,同時與該控制器相連的每個設(shè)備的傳送模式將重置為默認(rèn)值。
但這樣只是把硬盤設(shè)備的傳送模式重置為默認(rèn)值,當(dāng)我們再使用掛起系統(tǒng)時系統(tǒng)又會自行關(guān)閉DMA模式!所以我們還要做以下操作:
1.單擊“開始”,單擊“運(yùn)行”,鍵入Regedit,然后單擊“確定”。
2.在注冊表中找到并單擊以下項:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass\0001和HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass\0002
3.在“編輯”菜單上,指向“新建”,然后單擊“DWORD值”。
4.鍵入ResetErrorCountersOnSuccess,然后按Enter鍵。
5.在“編輯”菜單上,單擊“修改”。
6.鍵入l,然后單擊“確定”。
7.按照下列步驟操作,然后退出注冊表編輯器:
注意
上面注冊表最后的項“”列出的帶有“0001”編號的子項對應(yīng)于一臺僅有一個IDE控制器的計算機(jī)的主要IDE通道和次要IDE通道。如果您的計算機(jī)有兩個IDE控制器,則對于每個控制器,主要IDE通道和次要IDE通道的帶有編號的子項分別是:“0001、0002、0003、0004、0005、 0006……”。
為檢查是否找到了正確的子項,請檢查子項的DriverDesc值是包含字符串值“主要IDE通道”,還是包含字符串值“次要IDE通道”。
建立以上注冊表鍵值的目的是
在Windows中,使系統(tǒng)向ATA磁盤發(fā)出讀取請求時的4秒的超時值更改為10秒。還實(shí)現(xiàn)了一種較不嚴(yán)格的變通策略以在發(fā)生超時錯誤和CRC錯誤時降低傳送模式(從較快的DMA模式到較慢的DMA模式,最終降為PIO模式)。以前的情況是,在每當(dāng)累積發(fā)生的超時錯誤或CRC錯誤的總數(shù)達(dá)到6次時,IDE/ATAPI端口驅(qū)動程序(Atapi.sys)將降低傳送模式。當(dāng)我們建立以上注冊表鍵值實(shí)現(xiàn)新的策略后,Atapi.sys僅在連續(xù)發(fā)生6 次超時錯誤或CRC錯誤后才降低傳送模式。
這一新的策略實(shí)現(xiàn)后將大大降低系統(tǒng)降低或關(guān)閉DMA傳送模式的機(jī)會,F(xiàn)在我們可以安心地使用掛起系統(tǒng)和高性能的DMA硬盤模式,再也不會發(fā)生系統(tǒng)性能突然下降的情況了。