Столкнулся с такой проблемой на одной из машин принесённых на переустановку. После установки пресловутого Зверя - система начинала жутко тормозить. при чом иногда даже так, что мышь "висла". Посредством программки ProcessExplorer.zip выяснил, что около 50-60% постоянной загрузки приходится на HAL. Лазая по поисковикам в надежде решить данный вопрос, натолкнулся на полезную статейку, которую позволю себе скопипастить. Итак, читаем,Господа. 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.

Теги других блогов: Windows жесткий диск PIO DMA