Настройка жестких дисков с IDE интерфейсом (DMA/UDMA) под Windows ХР

archive view archive save

Настройка жестких дисков с IDE интерфейсом (DMA/UDMA) под Windows ХР Статья будет полезна тем у кого на ПК установлено несколько жестких дисков с IDE интерфейсом. При неправильной настройке DMA/UDMA для жестких дисков с IDE интерфейсом могут возникать различные проблемы с подозрением на не исправную оперативную память, например застывание/залипание мыши или системы в целом хоть и не факт что DMA/UDMA сему виной.

Для начала немного про PIO/DMA/UDMA способы/режимы доступа к данным на жестком диске:

Способ взаимодействия программы с периферийными устройствами посредством специальных команд центрального микропроцессора получил название PIO (Programmed Input/Output). В протоколе PIO обмен информацией подразумевает активное использование центрального микропроцессора во время передачи данных, вследствие чего общая производительность системы может значительно снизиться.

Прямой доступ к памяти (DMA - Direct Memory Access) - это аппаратная возможность обмена информацией между устройствами, практически не требующая участия центрального процессора (протоколы - Multiword DMA и Ultra DMA), что позволяет во время выполнения передачи данных использовать ресурсы центрального процессора для выполнения других задач. Для режимов Ultra DMA-3 и выше необходим 80-жильный интерфейсный кабель.

В отличии от накопителей с интерфейсом IDE, у SATA-устройств проблем с работой в режиме Ultra DMA не встречается.

Для справки приведем названия режимов и максимальную скорость обмена данными с накопителем интерфейса IDE или SATA для каждого из режимов (следует учитывать, что режимы DMA дополняют режимы PIO Mode, обеспечивая существенно большую скорость работы):

Максимальная пропускная способность протоколов передачи данных (Мб/c (Мбайт/сек))

Programmed I/O (PIO) Modes

PIO-0 = 3.3
PIO-1 = 5.2
PIO-2 = 8.3
PIO-3 = 11.1
PIO-4 = 16.7

Direct Memory Access (DMA) Modes and Bus Mastering DMA

Single-Word DMA 0 = 2.1
Single-Word DMA 1 = 4.2
Single-Word DMA 2 = 8.3

Multi-Word DMA 0 = 4.2
Multi-Word DMA 1 = 13.3
Multi-Word DMA 2 = 16.7

Ultra DMA (UDMA) Modes

Ultra DMA 0 = 16.7
Ultra DMA 1 = 25.0
Ultra DMA 2 или Ultra DMA 33 = 33.3
Ultra DMA 3 = 44.4
Ultra DMA 4 или Ultra DMA 66 = 66.7
Ultra DMA 5 или Ultra DMA 100 = 100.0
Ultra DMA 6 или Ultra DMA 133 = 133.0

SATA-1 = 150.0
SATA-2 = 300.0
SCSI = 320.0

Для работы UDMA устройств требуется соблюдение следующих условий:

Только после полного отключения блокировщика скриптов и рекламы на этом месте появится полезная подсказка/ссылка/код/пример конфигурации/etc!

Настройки DMA/UDMA в BIOS

Опция активирующая режим прямого доступа к памяти (DMA — Direct Memory Access, UDMA — Ultra DMA) для жестких накопителей, подключенных к первому или второму каналам SATA стандартного IDE/SATA-контроллера чипсета в разных версиях BIOS может иметь разные названия, например DMA-33 или PCI IDE BusMaster (Ultra ATA/66, UDMA66, Ultra DMA Mode). Обычно значение DMA-33 или PCIIDE BusMaster рекомендуется устанавливать в состояниеEnabled, иначе возможно вы ощутимо потеряете в производительности дисковой подсистемы.

Настройки DMA/UDMA в Windows XP

Настройки DMA/UDMA в Windows XP интересная тема и заслуживает отдельной статьи для различных конфигураций железа но, здесь мы приведём пример настройки DMA/UDMA в Windows XP на контроллере Intel(R) 82801DB Ultra ATA Controller.

Основная проблема настройки DMA/UDMA в Windows XP может заключатся в наличии нескольких драйверов для контроллера Intel(R) 82801DB Ultra ATA Controller, а вернее в правильном выборе лучшего из них:

  • Intel(R) 82801DB Ultra ATA Controller
    • Поставщик драйвера: Intel
    • Дата разработки: 01.10.2002
    • Версия драйвера: 2.3.0.2160
    • Цифровая подпись: Microsoft Windows Hardware Compatibility Publisher
  • Intel(R) 82801DB Ultra ATA Storage Controller - 24CB
    • Поставщик драйвера: Intel
    • Дата разработки: 14.11.2003
    • Версия драйвера: 5.1.1.1001
    • Цифровая подпись: Microsoft Windows Hardware Compatibility Publisher
  • Intel(R) 82801DB Ultra ATA Storage Контроллер - 24CB
    • Поставщик драйвера: Intel
    • Дата разработки: 01.07.2001
    • Версия драйвера: 5.1.2600.5512
    • Цифровая подпись: Microsoft Windows Hardware Compatibility Publisher

Проблемы с настройкой DMA/UDMA в Windows XP начались с желания обновить драйвера для набора микросхем Intel® с сайта производителя;(... Так например загрузив самые якобы свежие драйвера для набора микросхем Intel® 845 Chipset Family, непосредственно с сайта производителя intel.com, в исполняемом файле infinst_autol.exe для автоматической их установки - после установки онных в системе был установлен драйвер Intel(R) 82801DB Ultra ATA Controller, тот которыйДата разработки: 01.10.2002, Версия драйвера: 2.3.0.2160.

После перезагрузки и проверки свойств для "Первичный канал IDE" было обнаружено что исчезла вкладка "Дополнительные параметры" где можно было выбрать режим передачи "PIO" или "DMA, если доступно".

Дальше, по рекомендации Intel® "If you need a Bus Master driver for the newer Intel® 800 series chipsets, we recommend using the Intel® Application Accelerator.", был установлен Intel® Application Accelerator. Стоит отметить, что при установке Intel® Application Accelerator устанавливается и драйвер Intel(R) 82801DB Ultra ATA Controller, тот которыйДата разработки: 01.10.2002, Версия драйвера: 2.3.0.2160.

Intel® Application Accelerator предоставляет графический интерфейс для управления Intel(R) контроллером но, после перезагрузки никакой акселерации подразумеваемой или явной ощутить не представилось возможным!:)

Мало того, система стала туго/долго входить в спящий режим и это при том, что в так званом Intel® Application Accelerator стоял режим передачи UDMA-5. Дальше больше...

При выходе из спящего режима Windows стал зависать на сообщении "Восстановление Windows" с белой полосой загрузки внизу. Эта проблема проявляется только когда Windows отправлен в спящий режим из под учётной записи обычного (ограниченного в правах) пользователя. Проблема отсутствует если Windows отправлен в спящий режим из под учётной записи пользователя с административными правами (администратора), в таком случае Windows успешно выходит из спящего режима. Но, тем не менее выход в спящий режим был нудно долгим и затяжным процессом - около 30-40 сек.

Ай да Intel®, ай да Application Accelerator, ох и молодчег - как услужил... После сноса Intel® Application Accelerator драйвер Intel(R) 82801DB Ultra ATA Controller, тот которыйДата разработки: 01.10.2002, Версия драйвера: 2.3.0.2160, остался вместе с проблемой спящего режима. Удаление из диспетчера устройств Intel(R) 82801DB Ultra ATA Controller и его каналов с перезагрузкой ничего не дали как и обновление его драйверов с сайта Microsoft.

С другими версиями драйвера Intel(R) 82801DB Ultra ATA Controllerкроме как сДата разработки: 01.10.2002 Версия драйвера: 2.3.0.2160штука по имени Intel® Application Accelerator работать отказывается и выдаёт:

The Intel(R) Application Accelerator Driver was not detected!
The application will now exit.
Please verify driver is properly installed.

Пришлось ручками выбирать нужный драйвер Intel(R) 82801DB Ultra ATA Storage Controller - 24CBкоторый Дата разработки: 14.11.2003, Версия драйвера: 5.1.1.1001, установленный ранее вместе с Windows. Почему такое различие с драйверами достоверно не известно, ведь поставщик один и тот же Intel(R), а версии разные - вероятно старый, добрый банальный чел. фактор...

После восстановления драйвера проблемы со спящим режимом улетучились, а время ухода в спящим режим сократилось до 5-10 сек.!

Мораль сей басни такова: если не хочешь себе геморроя, то не стоит использовать/всякие твикеры и акселераторы даже если они от Intel(R)!, а все настройки выполнять ручками или стандартными средствами администрирования самой ОС!!!

Для настройки DMA/UDMA в Windows XP нужно выполнить:

Только после полного отключения блокировщика скриптов и рекламы на этом месте появится полезная подсказка/ссылка/код/пример конфигурации/etc!

Собственно на этом общая настройка DMA/UDMA в Windows XP заканчивается. Иногда Primary IDE Channel переходит в режим передачи PIO без возможности выбрать режим DMA хотя устройство реально поддерживает DMA и соответствующая настройка в BIOS активна. Для решения этой проблемы достаточно просто удалить Primary IDE Channel из диспетчера устройств и перезагрузить систему.

Тонкая настройка DMA/UDMA в Windows XP

Для более тонкой настройки DMA/UDMA в Windows XP нужно нырять в дебри реестра Windows. Паpаметpы контpолёpа хранятся в pеестpе Windows, по адpесy HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}. Внyтpи этой ветки находится 4 каталога:

Только после полного отключения блокировщика скриптов и рекламы на этом месте появится полезная подсказка/ссылка/код/пример конфигурации/etc!

Выбираем каталог который отвечает за нужный нам канал, и заходим в него. Каждому из каналов (yстpойств), соответствуют по два ключа, MasterDeviceTimingModeAllowed и SlaveDeviceTimingModeAllowed (или UserMasteDeviceTimingModeAllowed и UserSlaveDeviceTimingModeAllowed, если pежимы выбиpались вpyчнyю), определяющие максимальный режим работы Master и Slave yстpойств, yстановленных на контpолёpе, и MasterDeviceTimingMode и SlaveDeviceTimingMode, котоpые опpеделяют в каком pежиме pеально pаботают Slave и Master yстpойства.

Для того что бы pазpешить использовать yстpойство в UDMA pежиме, MasterDeviceTimingModeAllowed (или Slave:, зависит от того к чемy диск подключен) должно иметь значение 0хffffffff. Если оно бyдет 0x0000001f, то yстpойство сможет pаботать только в PIO pежиме. Убедившись что этот ключ стоит пpавильно, выставляем MasterDeviceTimingMode, опpеделяя в каком pежиме должен pаботать пpивод.

Возможны следyющие ваpианты (цифpы в HEX) значений в шестнадцатеричной системе:

Только после полного отключения блокировщика скриптов и рекламы на этом месте появится полезная подсказка/ссылка/код/пример конфигурации/etc!

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

ВНИМАНИЕ!: Для Windows 7 ключи в реестре от ХР не совпадают!!!

Проблемы с DMA/UDMA на жестких дисках с IDE интерфейсом

Припомним приведённую выше цитату В отличии от накопителей с интерфейсом IDE, у SATA-устройств проблем с работой в режиме Ultra DMA не встречается. Тобишь уже само использование DMA/UDMA на жестких дисках с IDE интерфейсом по умолчанию подразумевает некие возможные проблемы перечень которых до конце неизвестен.

Исходя из расшифровки DMA (DMA — Direct Memory Access) это аппаратная возможность обмена информацией между устройствами и основной памятью (RAM), практически не требующая участия центрального процессора, тобишь возможность обмена данными при помощи прямого доступа к оперативной (основной) памяти.

Несложно догадаться, что для работы жестких дисков с IDE интерфейсом в режиме DMA/UDMA требуется оперативная память!:) и объём требуемой/потребляемой памяти для режима DMA/UDMA пропорционально зависит от минимально и максимально возможной скорости передачи данных для жестких дисков с IDE интерфейсом. Также нужно помнить, что режимы DMA дополняют режимы PIO Mode - т.е. PIO + DMA/UDMA = реальная скорость работы устройства.

Так как оперативная память является основной и от её достатка и оперативности зависит скорость работы всех приложений и отображения результата их работы на экране, то при её нехватке и одновременном доступе DMA/UDMA устройства к памяти ВОЗМОЖНО (не факт) могут возникать проблемы типа хаотичного перемещения указателя мыши, застывания мыши/изображения и т.п., а особенно эти проблемы могут проявляться при наличии в системе нескольких DMA/UDMA устройств!

Хотя проблемы типа хаотичного перемещения указателя мыши, застывания мыши не обязательно следствие DMA/UDMA и могут быть вызваны банальным перегибом кабеля/провода на входе в корпус мыши или же загрязнением её оптических или механических частей! Также возможно тому виной неверные настройки графической карты, кривые/старые драйвера сторонних устройств/производителей, кривые руки администратора и пр..

Лечение проблем с DMA/UDMA на жестких дисках с IDE интерфейсом

Первое на что следует обратить внимание, так это на то, что многие очень часто ставят на один канал жесткий диск как Primary master и другое, более медленное устройство, типа CD-ROM, как Primary slave. Но так как IDE может обращаться только к одному устройству на канале одномоментно, то снижается производительность системы в целом. Так что Лучше не иметь slave-устройств в принципе.

Если оперативной памяти в системе меньше 256 МВ, и в системе много приложений требовательных к памяти + несколько жестких дисков с IDE интерфейсом на одном канале, то может быть DMA/UDMA режим лучше не использовать вовсе (отключить в BIOS) или же сильно ограничивать его пропускную способность до UDMA-4 (UDMA-3 или UDMA-2) или DMA MW-2 (Multi-Word), DMA MW-1, DMA MW-0.

На каком IDE диске ограничивать DMA/UDMA когда все на одном IDE канале?

Ответ на этот вопрос зависит от скорости дисков, если их несколько, а также от системных особенностей, например если ОС установлена на IDE диске Primary master (мастер/главный), а все профили пользователей и файл подкачки расположены на IDE диске Primary slave (подчинённый/раб) и оба IDE диска висят на одном канале (шлейфе), то предпочтительнее отдать UDMA-5 (или без ограничений) для того IDE диска, что Primary slave ибо IDE может обращаться только к одному устройству на канале одномоментно, а IDE приоритет имеет разумеется Primary master, и поэтому рабу Primary slave нужно отдать хотя бы UDMA приоритет, а для Primary master UDMA-0(1,2,3) или DMA MW-1 (DMA MW-2).

Также в случае когда в системе используется несколько модулей оперативной памяти разной ёмкости (256/512/1024 МВ и т.д.), рекомендуется на первое место/слот (DIMM1) устанавливать тот модуль который имеет наибольший объем памяти! Проверить где и какой модуль установлен можно при помощи программы "EVEREST > Системная плата > SPD (смотреть DIMM1/DIMM2)".

Полезные ссылки:

Автор: Олег Головский


Об авторе
АдМинь БагоИскатель
АдМинь БагоИскатель ярый борец за безглючную работу любых механизмов и организмов во всей вселенной и потому пребывает в вечном поиске всяческих багов, а тот кто ищет как известно всегда находит. Когда что-то или кого-то вылечить не в состоянии, то со словами "Я в аду, а вы все черти" уходит в запой выйдя из которого снова берётся лечить неизлечимое.
Ещё статьи автора
Комментарии в блоге
Новое на форуме