電腦無(wú)故變慢?硬盤(pán)的DMA模式變成了PIO模式
作者: 鄭曉 分類(lèi): PC技術(shù) 發(fā)布于: 2011-09-28 20:15 瀏覽:6,793 沒(méi)有評(píng)論
今天一個(gè)同事的電腦經(jīng)常出現(xiàn)花屏死機(jī),我也沒(méi)去檢查硬件就給他做了修復(fù)安裝(XP)囧……安裝完后我就離開(kāi)了,后來(lái)在網(wǎng)上聽(tīng)他說(shuō)電腦用起來(lái)比以前慢了,我也沒(méi)有去看他電腦,在網(wǎng)上逛了下,發(fā)現(xiàn)很有可能是ide的傳輸模式搞的鬼…
以下是復(fù)制粘貼:
?如果你的機(jī)子變得很慢,甚至連播放影片都有卡聲音的現(xiàn)象,又差不出任何病毒,怎么回事?很可能是你的機(jī)子的硬盤(pán)的DMA模式變成了PIO模式了。
硬盤(pán)的DMA模式大家應(yīng)該都知道吧,硬盤(pán)的PATA模式有DMA33、DMA66、DMA100和DMA133,最新的SATA-150都出來(lái)了!一般來(lái)說(shuō)現(xiàn)在大多數(shù)人用的還是PATA模式的硬盤(pán),硬盤(pán)使用DMA模式相比以前的PIO模式傳輸?shù)乃俣纫?~8倍。DMA模式的起用對(duì)系統(tǒng)的性能起到了實(shí)質(zhì)的作用。以前有很多文章介紹過(guò)如何打開(kāi)DMA模式,我在這里也就不多說(shuō)了。
但筆者發(fā)現(xiàn)一個(gè)新的“問(wèn)題”——Windows2000、XP、2003系統(tǒng)有時(shí)會(huì)自行關(guān)閉硬盤(pán)的DMA模式,自動(dòng)改用PIO模式運(yùn)行!這就造成在使用以上系統(tǒng)中硬盤(pán)性能突然下降,其中最明顯的現(xiàn)象有:系統(tǒng)起動(dòng)速度明顯變慢,一般來(lái)說(shuō)正常WindowsXP系統(tǒng)啟動(dòng)時(shí)那個(gè)由左向右運(yùn)動(dòng)的滑條最多走2~4次系統(tǒng)就能啟動(dòng),但這一問(wèn)題發(fā)生時(shí)可能會(huì)走5~8次或更多!而且在運(yùn)行系統(tǒng)時(shí)進(jìn)行硬盤(pán)操作時(shí)明顯感覺(jué)變慢,在運(yùn)行一些大的軟件時(shí)CPU占用率時(shí)常達(dá)到100%而產(chǎn)生停頓,玩一些大型3D游戲時(shí)(比如極品飛車(chē)6)畫(huà)面時(shí)有明顯停頓(很多人這時(shí)以為是自己的顯卡問(wèn)題,當(dāng)然如果你使用的是三年前的顯卡玩這些游戲是有點(diǎn)老了,但如果你用的是今年才買(mǎi)的GF顯卡那就不是它的問(wèn)題了),出現(xiàn)以上問(wèn)題時(shí)大家最好看看自己硬盤(pán)的DMA模式是不是被Windows系統(tǒng)自行關(guān)閉了。
查看自己的系統(tǒng)是否打開(kāi)DMA模式:
1. 雙擊“管理工具”,然后雙擊“計(jì)算機(jī)管理”;
2. 單擊“系統(tǒng)工具”,然后單擊“設(shè)備管理器”;
3. 展開(kāi)“IDE ATA/ATAPI 控制器”節(jié)點(diǎn);
4. 雙擊您的“主要IDE控制器”;
5. 點(diǎn)擊“高級(jí)設(shè)置”。
看到“設(shè)備0”,下面的傳輸模式應(yīng)設(shè)為“DMA(若可用)”,再下面“當(dāng)前傳輸模式”,如果是“Ultra DMAMode*(*為數(shù)字,DMA33為2,DMA66為4,DMA100為5、DMA133為6)”,那么你的系統(tǒng)正常,但如果以前你自己設(shè)的是“UltraDMAMode6”又沒(méi)有改動(dòng),而現(xiàn)在是“Ultra DMA Mode 4”或“Ultra DMAMode2”更或者是“PIO模式”而且改不過(guò)來(lái)!可能就是系統(tǒng)自行關(guān)閉了DMA模式了。
分析問(wèn)題:
好了,先來(lái)說(shuō)說(shuō)問(wèn)題是如何產(chǎn)生的。在Windows 2000/XP/2003中有這樣一個(gè)設(shè)定: WindowsIDE/ATAPI端口驅(qū)動(dòng)程序 (Atapi.sys) 累積收到總共6個(gè)超時(shí)或循環(huán)冗余檢驗(yàn)(CRC)錯(cuò)誤后,驅(qū)動(dòng)程序?qū)淹ㄐ潘俣龋▊魉湍J剑淖羁斓闹苯觾?nèi)存訪問(wèn) (DMA) 模式分步驟降為較慢的DMA模式。如果驅(qū)動(dòng)程序繼續(xù)收到超時(shí)或 CRC 錯(cuò)誤,則驅(qū)動(dòng)程序最終將把傳送模式降為最慢的模式(PIO模式)。問(wèn)題就在這里!一般來(lái)說(shuō)一個(gè)正常的硬盤(pán)很少會(huì)有超時(shí)或循環(huán)冗余檢驗(yàn)(CRC)錯(cuò)誤,但是當(dāng)我們使用這些系統(tǒng)里的掛起(也有叫休眠)并恢復(fù)計(jì)算機(jī)后就很容易造成超時(shí)或循環(huán)冗余檢驗(yàn)(CRC)錯(cuò)誤。因?yàn)橄到y(tǒng)設(shè)定的超時(shí)值為4秒,當(dāng)系統(tǒng)向 ATA 磁盤(pán)發(fā)出讀取請(qǐng)求時(shí)如果硬盤(pán)回應(yīng)時(shí)間超過(guò) 4秒的超時(shí)值時(shí)才會(huì)產(chǎn)生超時(shí)或循環(huán)冗余檢驗(yàn)(CRC)錯(cuò)誤,但因?yàn)橄到y(tǒng)在掛起(也有叫休眠)時(shí)硬盤(pán)是在停轉(zhuǎn)狀態(tài)中,恢復(fù)計(jì)算機(jī)時(shí)硬盤(pán)有個(gè)從停止到運(yùn)動(dòng)的過(guò)程,這就很容易造成大部分硬盤(pán)回應(yīng)時(shí)間超過(guò)4秒的超時(shí)值。也就是說(shuō)當(dāng)我們使用計(jì)算機(jī)掛起6次后系統(tǒng)就會(huì)把通信速度(傳送模式)從最快的直接內(nèi)存訪問(wèn) (DMA)模式分步驟降為較慢的DMA 模式。如果掛起6次以上則驅(qū)動(dòng)程序最終將把傳送模式降為最慢的模式(PIO 模式)。這就是Windows系統(tǒng)突然變慢的原因。
解決問(wèn)題:
若要為受影響的設(shè)備重新啟用典型DMA或更快DMA的傳送模式,請(qǐng)執(zhí)行以下操作:
1. 雙擊“管理工具”,然后雙擊“計(jì)算機(jī)管理”;
2. 單擊“系統(tǒng)工具”,然后單擊“設(shè)備管理器”;
3. 展開(kāi)“IDE ATA/ATAPI 控制器”節(jié)點(diǎn);
4. 雙擊您要為其恢復(fù)典型 DMA 傳送模式的控制器;
5. 單擊“驅(qū)動(dòng)程序”選項(xiàng)卡;
6. 單擊“卸載”。
當(dāng)此過(guò)程完成后,重新啟動(dòng)您的計(jì)算機(jī)。當(dāng)Windows重新啟動(dòng)后,將重新枚舉硬盤(pán)控制器,同時(shí)與該控制器相連的每個(gè)設(shè)備的傳送模式將重置為默認(rèn)值。 但這樣只是把硬盤(pán)設(shè)備的傳送模式重置為默認(rèn)值,當(dāng)我們?cè)偈褂脪炱鹣到y(tǒng)時(shí)系統(tǒng)又會(huì)自行關(guān)閉DMA模式!所以我們還要做以下操作:
1. 單擊“開(kāi)始”,單擊“運(yùn)行”,鍵入 Regedit,然后單擊“確定”。
2. 在注冊(cè)表中找到并單擊以下項(xiàng):
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}001 和
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}002
3. 在“編輯”菜單上,指向“新建”,然后單擊“DWORD 值”。
4. 鍵入 ResetErrorCountersOnSuccess,然后按 Enter 鍵。
5. 在“編輯”菜單上,單擊“修改”。
6. 鍵入 l,然后單擊“確定”。
7. 按照下列步驟操作,然后退出注冊(cè)表編輯器:
注意:上面注冊(cè)表最后的項(xiàng)“{4D36E96A-E325-11CE-BFC1-08002BE10318}”列出的帶有“0001”編號(hào)的子項(xiàng)對(duì)應(yīng)于一臺(tái)僅有一個(gè)IDE控制器的計(jì)算機(jī)的主要 IDE 通道和次要 IDE 通道。如果您的計(jì)算機(jī)有兩個(gè) IDE 控制器,則對(duì)于每個(gè)控制器,主要 IDE通道和次要IDE 通道的帶有編號(hào)的子項(xiàng)分別是:“0001、0002、0003、0004、0005、0006……”。
為檢查是否找到了正確的子項(xiàng),請(qǐng)檢查子項(xiàng)的 DriverDesc 值是包含字符串值“主要 IDE通道”,還是包含字符串值“次要IDE 通道”。
建立以上注冊(cè)表鍵值的目的是:
在Windows中,使系統(tǒng)向 ATA 磁盤(pán)發(fā)出讀取請(qǐng)求時(shí)的 4 秒的超時(shí)值更改為10秒。還實(shí)現(xiàn)了一種較不嚴(yán)格的變通策略以在發(fā)生超時(shí)錯(cuò)誤和 CRC 錯(cuò)誤時(shí)降低傳送模式(從較快的 DMA 模式到較慢的DMA模式,最終降為 PIO模式)。以前的情況是,在每當(dāng)累積發(fā)生的超時(shí)錯(cuò)誤或CRC 錯(cuò)誤的總數(shù)達(dá)到 6次時(shí),IDE/ATAPI端口驅(qū)動(dòng)程序 (Atapi.sys)將降低傳送模式。當(dāng)我們建立以上注冊(cè)表鍵值實(shí)現(xiàn)新的策略后,Atapi.sys 僅在連續(xù)發(fā)生 6次超時(shí)錯(cuò)誤或 CRC錯(cuò)誤后才降低傳送模式。
這一新的策略實(shí)現(xiàn)后將大大降低系統(tǒng)降低或關(guān)閉DMA傳送模式的機(jī)會(huì)。現(xiàn)在我們可以安心地使用掛起系統(tǒng)和高性能的DMA硬盤(pán)模式,再也不會(huì)發(fā)生系統(tǒng)性能突然下降的情況了。
本文采用知識(shí)共享署名-非商業(yè)性使用 3.0 中國(guó)大陸許可協(xié)議進(jìn)行許可,轉(zhuǎn)載時(shí)請(qǐng)注明出處及相應(yīng)鏈接。
本文永久鏈接: http://m.yjfs.org.cn/computer-slows-down-for-no-reason-hard-drive-dma-mode-into-pio-mode.html