DMA可以算是為彌補IDE多工能力不及SCSI所發展出來的一項技術
DMA 存取有開的話 , 硬碟運作時比較不會增加 CPU 運算的負擔
電腦與周邊設備的傳輸一般透過兩種方式:一是透過 CPU 控制來進行資料的傳送;二是在專門的晶片控制下進行資料的傳送。
我們所說的DMA,就是不用透過 CPU 控制,周邊設備會跟記憶體之間相互傳送資料的通道,在這種方式下,周邊設備利用 DMA 通道直接將資料寫入 HD 或將資料從 HD 中讀出,而不用經過 CPU 運算,系統的速度會因此增加。
PIO Mode 0: The fastest data transfer rate reaches 3.3Mbyte/sec
PIO Mode 1: The fastest data transfer rate reaches 5.2Mbyte/sec
PIO Mode 2: The fastest data transfer rate reaches 8.3Mbyte/sec
PIO Mode 3: The fastest data transfer rate reaches 11.1Mbyte/sec
PIO Mode 4: The fastest data transfer rate reaches 16.6Mbyte/sec
DMA Mode 0: The fastest data transfer rate reaches 4.16Mbyte/sec
DMA Mode 1: The fastest data transfer rate reaches 13.3Mbyte/sec
DMA Mode 2: The fastest data transfer rate reaches 16.6Mbyte/sec
ULTRA DMA Mode 3: The fastest data transfer rate reaches 33Mbyte/sec
ULTRA DMA Mode 4: The fastest data transfer rate reaches 66Mbyte/sec
ULTRA DMAMode 5: The fastest data transfer rate reaches 100Mbyte/sec
系統會自動關閉硬碟DMA模式 Quote:
硬碟的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. 點擊“高級設置”。
Quote:
修改方式:98適用
我的電腦--->右鍵(選內容)--->選裝置管理員--->點CDROM旁的+號--->選擇打開(DMA)的光碟--->點選內容--->點選(設定值)--->可看到DMA選項了--->打勾!
重新開機--->完成
修改方式 : XP適用
我的 電腦--->右鍵,內容--->硬體--->裝置管理員--->點IDE ATA/ATAPI 控制器前的+號--->主要IDE通道--->右鍵,內容-->選擇進階設定--->裝置0-->轉送模式-->使 用DMA(如果可用的話)--->確定!
重新開機--->完成
看到“設備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 重新啟動后,將重新枚舉硬盤控制器,同時與該控制器相連的每個設備的傳送模式將重置為默認值。
但這樣只是把硬盤設備的傳送模式重置為默認值,當我們再使用挂起系統時系統又會自行關閉DMA模式!所以我們還要做以下操作:
1.單擊“開始”,單擊“運行”,鍵入 Regedit,然后單擊“确定”。
2.在注冊表中找到並單擊以下項:
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,然后按 Enter 鍵。
5.在“編輯”菜單上,單擊“修改”。
6.鍵入 l,然后單擊“确定”。
7.按照下列步驟操作,然后退出注冊表編輯器:
注意
上 面注冊表最后的項“”列出的帶有“0001”編號的子項對應于一台僅有一個 IDE 控制器的計算机的主要 IDE 通道和次要 IDE 通道。如果您的 計算机有兩個 IDE 控制器,則對于每個控制器,主要 IDE 通道和次要 IDE 通道的帶有編號的子項分別是:“0001、0002、0003、 0004、0005、0006……”。
為檢查是否找到了正确的子項,請檢查子項的 DriverDesc 值是包含字符串值“主要 IDE 通道”,還是包含字符串值“次要 IDE 通道”。
建立以上注冊表鍵值的目的是
在 Windows中,使系統向 ATA 磁盤發出讀取請求時的 4 秒的超時值更改為 10 秒。還實現了一種較不嚴格的變通策略以在發生超時錯誤 和 CRC 錯誤時降低傳送模式(從較快的 DMA 模式到較慢的 DMA 模式,最終降為 PIO 模式)。以前的情況是,在每當累積發生的超時錯誤 或 CRC 錯誤的總數達到 6 次時,IDE/ATAPI 端口驅動程序 (Atapi.sys) 將降低傳送模式。當我們建立以上注冊表鍵值實現新的 策略后,Atapi.sys 僅在連續發生 6 次超時錯誤或 CRC 錯誤后才降低傳送模式。
這一新的策略實現后將大大降低系統降低或關閉DMA傳送模式的机會。現在我們可以安心地使用挂起系統和高性能的DMA硬盤模式,再也不會發生系統性能突然下降的情況了
留言列表