Почему тормозит компутер, или установка DMA режима для IDE-контроллеров

Jul 08, 2009 11:54

По заявкам трудящихся...

В Windows периодически происходит переключение режима с DMA в PIO. Чаще всего это происходит с CD/DVD, но иногда случается и с винчестерами. После такого переключения дисковая система начинает тормозить.

Проверить текущий режим можно в диспетчере устройств для "Первичный канал IDE" и "Вторичный канал IDE" (Текущий режим передачи):




Текущий режим передачи может принимать следующие значения:
Неприменимо - значит к текущей шине ничего не подключено.
DMA-2 - Нормально для CD/DVD
UDMA-5 (или UDMA-6) - Нормально для HDD

Если же написано PIO - значит ситуацию нужно исправлять. Переключением "Режим передачи" на "Только PIO", а потом обратно на "DMA, если доступно" ничего добиться не получится. Поэтому лезем в реестр в ветку:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}\

Далее в ветках 000x ищем ключ "DriverDesc", который содержит "Первичный канал IDE" или "Вторичный канал IDE". Обычно это 0001 и 0002.

Далее в этих ветках нужные параметры - MasterDeviceTimingModeAllowed (или SlaveDeviceTimingModeAllowed, зависит от того к чему диск подключен) должно иметь значение 0хffffffff. Если оно будет 0х0000001f, то устройство сможет работать только в PIO режиме. Убедившись что этот ключ стоит правильно, выставляем MasterDeviceTimingMode (и SlaveDeviceTimingMode), определяя в каком режиме должен работать привод. Возможны следующие варианты (цифры в HEX):

0x20010 = UDMA-6 (133 МГц)
0x10010 = UDMA-5 (100 МГц)
0x8010 = UDMA-4 (66 МГц)
0x2010 = UDMA-2 (33 МГц)
0x0410 Multi-Word = DMA-2 и PIO-4

Если на одной шине стоит CD и HDD, то для обоих устройств следует выставить 0x0410 (DMA-2).

Потребуется перезагрузка,но по быстрому в MWDMA заводится очень быстро - в свойствах канала IDE переключить в PIO, применить, переключить обратно.
Чтобы не скидывалось обратно - нужно во всех подключах этого разддела, т.е. в 0001,0002,0003.... cоздать параметр DWORD ResetErrorCountersOnSuccess и выставить ему значение 1

it, windows

Previous post Next post
Up
[]