Вход

Просмотр полной версии : DMA вместо PIO


Pandemonium
21.02.2007, 14:07
Как поставить DMA вместо PIO?

У меня на втором IDE канале, второй привод определяется как только PIO.
Переделываю на DMA , но он упрямо перелезает на тот же только PIO.
В Итоге диск пишется в течение 40 минут! и при записи диска тормозит все включая мышь (скорость движения ~1-2 см в секунду)
Все это произошло после переустановки системы. :(
До переустановки все летало, диск записывался примерно за 7-8 минут (диск - DVD).

Воть тякие дела.

Martin_Logan
21.02.2007, 14:15
Просто удали драйвер контроллера. После перезагрузки система должна автоматически выставить DMA.
P.S. И больше не пытайся читать покоцаные диски. :)

Zealot
21.02.2007, 20:42
(с) AL_DL вроде ..

Постоянно сбрасывается в PIO режим, и не хочет выставляться обратно в UDMA.
Это происходит если XP обнаруживает, что устройство не стабильно работает в выбранном для него режиме. Определяется это по количеству ошибок чтения, получаемых с привода. Обычно это означает что привод находится в плохом состоянии, и про правде ему надо бы на покой. Но выбрасывать вроде бы работающий привод жалко. Благодаря механизмам контроля ошибок, многие такие приводы могут работать долго, счастливо и беспроблемно, несмотря на мнение XP о них. Единственное, что портит кровь их владельцам, это постоянные тормоза системы, из за PIO режима. У меня нет полной уверенности, как работает и чем управляется система контроля ошибок в XP, поэтому я не могу гарантировать что этот совет сработает во всех случаях. Но попробовать можно.

Для отключения режима отслеживания ошибок можно попробовать выставить в 0 ключ ErrorControl расположенный по адресу HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\Cdfs\

Для того чтобы вернуть режим UDMA, лучше всего удалить и поставить заново IDE контролёр из Device Manager. Но можно вновь обратится к реестру. Параметры контролёра определяются в реестре, по адресу

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}

Внутри этой ветки находится 4 папки. В том числе и

0000 - отвечает за сам контролёр.
0001 - отвечает за Secondary IDE Chanell.
0002 - отвечает за Primary IDE Chanell.

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

0x10010 режим UDMA Mode 5 (ATA100).
0x8010 режим UDMA Mode 4 (ATA66).
0x2010 режимы UDMA Mode 2 (ATA33).
0x0410 режим Multi-Word DMA Mode 2 и PIO 4.

Кроме этого, UDMA Mode 4 можно включить 0xffff, а UDMA Mode 5 - 0xfffff. Выставляйте нужное, и перезагружайтесь, диск должен перейти в требуемый режим.

ViPl
22.02.2007, 10:24
(с) AL_DL вроде ..

Постоянно сбрасывается в PIO режим, и не хочет выставляться обратно в UDMA.
Это происходит если XP обнаруживает, что устройство не стабильно работает в выбранном для него режиме. Определяется это по количеству ошибок чтения, получаемых с привода. Обычно это означает что привод находится в плохом состоянии, и про правде ему надо бы на покой. Но выбрасывать вроде бы работающий привод жалко. Благодаря механизмам контроля ошибок, многие такие приводы могут работать долго, счастливо и беспроблемно, несмотря на мнение XP о них. Единственное, что портит кровь их владельцам, это постоянные тормоза системы, из за PIO режима. У меня нет полной уверенности, как работает и чем управляется система контроля ошибок в XP, поэтому я не могу гарантировать что этот совет сработает во всех случаях. Но попробовать можно.

Для отключения режима отслеживания ошибок можно попробовать выставить в 0 ключ ErrorControl расположенный по адресу HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\Cdfs\

Для того чтобы вернуть режим UDMA, лучше всего удалить и поставить заново IDE контролёр из Device Manager. Но можно вновь обратится к реестру.Параметры контролёра определяются в реестре, по адресу

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}

Внутри этой ветки находится 4 папки. В том числе и

0000 - отвечает за сам контролёр.
0001 - отвечает за Secondary IDE Chanell.
0002 - отвечает за Primary IDE Chanell.

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

0x10010 режим UDMA Mode 5 (ATA100).
0x8010 режим UDMA Mode 4 (ATA66).
0x2010 режимы UDMA Mode 2 (ATA33).
0x0410 режим Multi-Word DMA Mode 2 и PIO 4.

Кроме этого, UDMA Mode 4 можно включить 0xffff, а UDMA Mode 5 - 0xfffff. Выставляйте нужное, и перезагружайтесь, диск должен перейти в требуемый режим.


Это конечно все верно, но, если установлен SP1 и SP2 на winXP, никаких манипуляций с реестром проводить не надо. Речь судя по всему идет о приводах, но как и к HDD к ним применяются одни и теже правила, в данном случае я соглашусь с Martin_Logan . При битом CD-DVD диске или загрязнении самого привода скорость работы привода автоматически понижается (система считает что много ошибок и пытается считать данные понизив скорость и так раз за разом пока не достигнет нижнего предела по скорости).

Pandemonium
22.02.2007, 11:34
Спасибо всем кто ответил, пока все нормально.
Тему оставляю открытой (может кому понадобится).

Все диски читаются нормально, такой глюк возник после переустановки винды (впервые).

Zealot
22.02.2007, 20:10
Это конечно все верно, но, если установлен SP1 и SP2 на winXP, никаких манипуляций с реестром проводить не надо. Речь судя по всему идет о приводах, но как и к HDD к ним применяются одни и теже правила, в данном случае я соглашусь с Martin_Logan .

ну снос контроллера рабочего диска к чему приведет еще хз =) насколько корректно все встанет. Да и конечный эффект сноса контроллера - это все равно изменение тех самых заветных ключиков в реестре (он просто ветки реестра сбрасывает и заново ставит на default - т.е. те же самые манипуляции, но с отключением и поиском дров. ).

мм проще в реестре самому выставить что надо.

на старом компе с винтом изредка проблемы были (winxp sp2), раз в 4-5 месяца выставлял руками ключики, перезагружался и дальше работало нормально

З.Ы. Проблема с PIO еще может быть изза шлейфа.

ViPl
22.02.2007, 20:25
ну снос контроллера рабочего диска к чему приведет еще хз =) насколько корректно все встанет. Да и конечный эффект сноса контроллера - это все равно изменение тех самых заветных ключиков в реестре (он просто ветки реестра сбрасывает и заново ставит на default - т.е. те же самые манипуляции, но с отключением и поиском дров. ).

мм проще в реестре самому выставить что надо.

на старом компе с винтом изредка проблемы были (winxp sp2), раз в 4-5 месяца выставлял руками ключики, перезагружался и дальше работало нормально

З.Ы. Проблема с PIO еще может быть изза шлейфа.

ИМХО, если был плохой носитель, то скорость системой выставляется в MIN, обратно, по автомату, уже не идет на MAX. Вот тут и нужен снос дров, после этого система заново определяет параметры. А при установленных SP регулировать реестр не надо, там и так все тип топ (статья про регулировку была опубликована в журнале, дай бог памяти в каком году, думаю, что она сильно устарела, попробуйте сейчас зайти в реестр, там уже все стоит по дефолту как надо). Конечно, если хочеться, искуственно понизить скорость, то можно выставить и конкретные значения режимов.

По проблемме с шлейфом я с вами полностью согласен, есть там штыри в разъеме которые на это влияют.