Показать сообщение отдельно
Старый 27.01.2011, 18:45   #2
PSX Planet Elite Supporter
 
Аватар для Allleks
 
Регистрация: 17.11.2010
Адрес: Ленинградская область
Пол: Мужской Мужской
Сообщений: 2,398
Allleks репутация неоспоримаAllleks репутация неоспоримаAllleks репутация неоспоримаAllleks репутация неоспоримаAllleks репутация неоспоримаAllleks репутация неоспоримаAllleks репутация неоспоримаAllleks репутация неоспоримаAllleks репутация неоспоримаAllleks репутация неоспоримаAllleks репутация неоспорима
По умолчанию Ответ: Очень низкая скорость записи DVD             

По своему опыту сразу вспоминаются две проблемы:
1) Вместо режима dma стало pio
2) Полетел привод
Если первое то
вот
PIO и DMA — это два разных режима работы жестких дисков. PIO (Programmable Input/Output) — устаревший режим, когда любое обращение к жесткому диску требует вмешательства центрального процессора. Дело даже не в том, что ЦП постоянно отвлекается на работу с жестким диском, а в том, что ему приходится переключаться между кодом текущей программы и кодом операционной системы. А так как время дисковых операций в сотни и тысячи раз больше времени операций с оперативной памятью, программы просто-напросто простаивают, когда процессор читает информацию с диска. Скорость передачи информации любого, даже самого современного, жесткого диска в таком режиме вряд ли превысит 10 Мб/c. Отсюда бесконечные подтормаживания в играх и черепашья скорость загрузки операционной системы и программ.
Поэтому несколько лет назад инженеры решили перейти на более экономный режим работы с винчестером — DMA (Direct Memory Access). В этом режиме винчестер может напрямую обращаться к оперативной памяти и работать с ней, минуя процессор. Это позволяет увеличить производительность дисковой подсистемы в разы.
Стандарт DMA появился уже довольно давно. Почему же в Windows XP с ним возникли проблемы? Однозначный ответ на этот вопрос могут дать только сами разработчики. Однако специалистам ситуация видится так. В Windows XP внедрен механизм контроля ошибок. Если жесткий диск или любой привод (это в равной мере относится и к CD-ROM/DVD-ROM и прочим подобным устройствам) слишком часто ошибаются во время чтения, операционка переводит эти устройства в более медленный режим, где процент ошибок меньше. Однако этот механизм часто сбоит, и на малую скорость переводятся даже нормально работающие устройства. Давайте исправим этот баг.



Удаляем логические устройства.


Проверьте все четыре IDE-устройства (устройства 0 и 1 на каждом из каналов). Для каждого из устройств в строке Режим передачи должно стоять DMA, если доступно. Если где-то стоит PIO, измените это значение. Теперь перезагрузитесь. Опять зайдите на вкладку для каждого устройства (обычно их два — винчестер на первом канале и CD-ROM на втором) и посмотрите, что написано в строке Текущий режим передачи. Если там стоит что-то вроде UDMA 5, значит все в порядке. Но если там стоит PIO или режим DMA, который явно ниже возможностей вашего винчестера, это надо исправить.
На вкладке изменять режим передачи бесполезно — мы это уже проверили, — так как после перезагрузки Windows XP снова сбросит это значение в PIO. Мы пойдем другим путем. Перейдите в Диспетчер устройств и удалите Первичные Вторичные каналы IDE как логические устройства. Не беспокойтесь: ничего страшного не случится.
Теперь перезагрузите компьютер и проверьте текущие режимы работы винчестеров. С большой вероятностью Windows XP найдет контроллеры и переведет их в быстрый режим работы. Если этого не произошло, проверьте, установлены ли у вас драйвера Bus Master из комплекта драйверов для вашей материнской платы. Для материнок на чипсетах KT вам потребуется установить последнюю версию комплекта VIA 4-in-1 (он теперь называется VIA Hyperion).



Настройка реестра.


Если система по-прежнему не желает переводить диски в быстрый режим работы, придется покопаться в реестре. Для начала попробуйте отключить систему контроля ошибок. Для этого в реестре, в ветке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\Cdfs\, создайте ключ ErrorControl и установите его значение на 0. После этого перезагрузитесь.
Также можно попробовать вручную выставить режим UDMA для контроллеров. За это отвечает ветка реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}. В этой ветке вы найдете несколько папок. Папка с именем 0000 отвечает за сам контроллер, а папки 00010002 за первый и второй каналы IDE соответственно. В каждой из этих папок есть параметры MasterDeviceTimingModeAllowedSlaveDeviceTimingMode Allowed. Они определяют, в каком максимально быстром режиме может работать устройство. Для обоих параметров установите шестнадцатиричные значения 0хffffffff.



И снова ключи

В той же ветке реестра — HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318} — вы найдете ключи MasterDeviceTimingModeSlaveDeviceTimingMode, которые также отвечают за режим работы винчестера. Чтобы понять, как правильно изменить эти ключи, немного освоимся с теорией реестра.
Существует несколько разных режимов как PIO, так и DMA (и UDMA). Они обозначаются цифрами от 2 до 5. Цифра определяет частоту, на которой работает винчестер. Например, если в названии вашего винчестера фигурирует слово ATA100, то вам нужен режим UDMA 5. В таблице сведены воедино характеристики всех режимов UDMA и соответствующих им значений, которые вам нужно выставить в параметрах MasterDeviceTimingMode и SlaveDeviceTimingMode.

Обозначение ATA Частота передачи данных Режим UDMA Значение параметра в реестре для максимальной производительности
ATA33 33 МГц UDMA Mode 2 0x2010
ATA66 66 МГц UDMA Mode 4 0x8010
ATA100 100 МГц UDMA Mode 5 0x10010
ATA133 133 МГц UDMA Mode 6 0xffff


Установите нужное значение из таблицы и перезагрузитесь. Прирост производительности при переходе от PIO к DMA может быть до 500%!
Есть еще одна настройка, которую следует сделать абсолютно всем, даже обладателям последних версий DMA. Зайдите в ключ реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\FileSystem\CDFS. Установите в параметр CacheSize двоичное значение ff ff 00 00. Если этого параметра в данной ветке нет, то просто создайте его. Теперь найдите или создайте параметры PrefetchPrefetchTail и задайте им шестнадцатиричные значения 4000. После этой операции CD-ROM будет работать заметно быстрее. }

Вот еще про реестр:


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.
Allleks вне форума  
Ответить с цитированием
Эти 2 пользователи сказали Спасибо Allleks за это сообщение: