IDE-драйверы для чипсетов Intel
IDE-драйверы для чипсетов Intel Эта статья адресована читателям, у которых компьютер построен на базе процессора Intel и материнской платы на чипсете Intel. А точнее на одном из следующих чипсетов: i810, i815, i820, i840, i845, i850 и их модификациях. Я буду рассматривать проблему выбора "правильного" драйвера для встроенного в чипсет хост-контроллера жестких дисков.
BusMaster IDE драйвер — зачем он?
Всем нам известно, что современные диски поддерживают тот или иной режим обмена данными UltraDMA. Вкратце напомню, что значит "DMA" по отношению к винчестеру и почему появилась приставка "Ultra".
Существуют два базовых механизма организации взаимодействия системы с контроллером периферийного устройства. Режим программируемого ввода-вывода (PIO) предполагает, что посылка команд, прием ответов, передача и прием данных осуществляются по командам процессора. То есть программа-драйвер должна байт за байтом записывать в порт контроллера (или считывать из порта), инициируя обмен данными по шинам. Получается, что процессор должен простаивать, ожидая данных из контроллера, который и сам работает с куда меньшей скоростью, и обслуживает медленное устройство (например, как жесткий диск). Другой способ — прямой доступ к памяти (DMA), суть которого в следующем. Процессор настраивает контроллер DMA на работу с контроллером периферийного устройства. После запуска процесса обмена данными контроллер DMA изредка (по мере поступления данных) прерывает работу системы, чтобы передать блок данных в память (или получить из памяти). Причем процессор при этом может не останавливаться. Когда контроллер DMA остановит работу, он вызовет драйвер (выдаст прерывание), и процессор закончит обмен.
Шина PCI, к которой подключен хост-контроллер жестких дисков (точнее, ATA-интерфейса), тоже позволяет организовать работу по механизму DMA. Для этого на время обмена контроллер должен стать захватчиком шины (Bus Master).
Режимы Ultra касаются только интерфейса между хост-контроллером и встроенным контроллером жестких дисков. Он предусматривает передачу данных по обоим фронтам синхросигнала, введение кодов обнаружения ошибок, повышение частоты обмена и другие тонкости, не связанные с работой остальной системы.
Получается, что, работая в режиме DMA, контроллер жесткий дисков будет обмениваться данными с системой, минимально затрагивая другие процессы и не нагружая процессор лишней работой. Для того чтобы он смог так работать, необходимо, чтобы операционная система могла переключать контроллер в режим Bus Mastering.
Драйвер контроллера может выполнять и другие задачи. Например, он может заменять собой часть дисковой подсистемы операционки, отвечая и за низкоуровневую работу с контроллером, и за организацию запросов к жесткому диску. Зная особенности контроллера, он может оптимальнее строить тактику работы с ним, минимизируя простои и задержки.
Теперь вы понимаете, что от драйвера IDE может зависеть производительность всей дисковой подсистемы. Другой вопрос — как и насколько сильно.
Драйверы для контроллера чипсетов Intel
Как и обещал, я буду рассматривать драйверы для хост-контроллеров, встроенных в чипсеты Intel серии i8xx. Как известно, эти чипсеты на сегодняшний день оснащаются одним из следующих южных хабов (это второй чип в составе чипсета):
— ICH (82801AA) — чипсеты i810/E/E2, i815, i815P, i815G, i820, i840;
— ICH0 (82801AB) — те же чипсеты, отличается от ICH отсутствием поддержки UDMA/66;
— ICH2 (82801BA) — чипсеты i815 step B, i815E, i815EP, i815EG, i820E, i850, i845, i860 и др.
— ICH3 (82801CA) — на данный момент только i830.
Все эти чипсеты (почти) распознаются современными версиями Windows, но в любом случае драйвер чипсета (Intel Chipset Software Installation Utility) установить не помешает, причем в первую очередь перед любыми драйверами. После этого Windows поставит стандартный драйвер Bus Master IDE, который можно будет переключить в максимальный доступный UltraDMA-режим известным способом (для Win98/ME — поставить "галочку" DMA, для Windows 2000/XP — проверить свойства контроллера).
Кроме того, Intel предлагает устанавливать один из собственных драйверов, которые я опишу ниже. Но и без них все вроде бы нормально работает. Стоит ли возиться с лишним драйвером? Об этом скажут тесты. А пока я перечислю имеющиеся варианты применительно к операционной системе Windows 2000, которую я использовал для исследования.
Intel Ultra ATA Storage Driver
Так называется первоначально разработанный драйвер для чипсетов с мостами ICH. Он позволяет использовать режимы UltraDMA, выбирая один из них для каждого устройства независимо (чего не может встроенный Windows-драйвер). Кроме того, Intel обещает повышение быстродействия и простую, легкую инсталляцию. В составе драйвера имеется утилита Companion, которая позволяет получить подробную информацию о контроллере и устройствах, к нему подключенных, а также выбрать режим работы путем установки ограничения режима обмена.
Драйвер поддерживает операционные системы Win98, Win98SE, WinME, WinNT4, Win2000 и WinXP. Последняя версия Ultra ATA Storage — 6.20.2020. В ее состав входят файлы с версией 7.00.2014. При ее установке замечены некоторые проблемы. Во-первых, драйвер нормально устанавливается с помощью инсталлятора, но после этого может и не установиться в систему. Проверить это легко — посмотреть "сведения о файлах драйвера", точнее, на версии файлов. Чтобы установить драйверы на 100%, нужно сделать так:
1) распаковать дистрибутив драйвера (с форматом SFX CAB справится современный архиватор);
2) запустить setup.exe (инсталлятор InstallShield) с параметрами "-A -P путь", после чего все файлы драйвера появятся в папке "путь";
3) вручную ("обновить драйвер") "ткнуть носом" Windows в нужную папку.
Вторая неприятность с драйвером, проявляющаяся в Windows 2000 и XP, — удаление его средствами инсталлятора. После этого операционка не загрузится, так как у нее не будет драйвера контроллера жестких дисков. Придется переустанавливать в режиме "починки" системы.
Intel Application Accelerator версии 1 (последняя — 1.12)
В 2001 году прежний драйвер был заменен новым продуктом — "ускорителем приложений". По сути это все тот же драйвер Ultra ATA Storage, но со следующими улучшениями:
— оптимизация скорости загрузки операционной системы;
— оптимизация чтения и записи благодаря использованию алгоритмов кэширования и предвыборки (поддержка Pentium-4);
— поддержка жестких дисков объемом более 137 Гб (42-битная адресация).
Драйвер IAA является заменой Ultra ATA Storage Driver. Некоторое время они выпускались параллельно, но сейчас работы над последним прекращены.
Последняя версия драйвера — 1.12, в составе ее — файлы версии 7.00.2076. Операционные системы поддерживаются те же, состав пакета остался прежним — есть и утилита Companion, которая переименована в Intel Application Accelerator Diagnostic Utility. Решены проблемы с инсталляцией и деинсталляцией, но появились следующие баги:
— некорректно может работать Norton Speed Disk из пакета NU2001;
— некорректно работают старые версии Adaptec EasyCD Creator;
— иногда не работает цифровое считывание данных с CDAudio-дисков;
— сбоит утилита HDTach;
— иногда после инсталляции появляются искажения в цветах иконок.
Последние два бага нашел я, и о них Intel, похоже, не знает.
Intel Application Accelerator версии 2
На момент тестирования новая версия была в состоянии beta, но теперь доступна и финальная версия. Сделаны следующие улучшения:
— добавлена поддержка хаба ICH3;
— улучшена работа с дисками с 48-битной адресацией;
— добавлена поддержка "горячей замены" жестких дисков;
— добавлена поддержка мобильных чипсетов.
Версия беты — 2.00.2069 (видите, нумерация сменилась), финала — 2.00.2093. Других видимых изменений по сравнению с первой версией я не нашел.
Тестирование
Я провел тестирование драйверов на двух платформах Intel: P6 и P7, то есть Pentium-III и Pentium-4. Для этого был использован тестовый пакет Winbench'99, считающийся на сегодня самым точным и авторитетным. В первом случае тестировалась машина на базе Celeron 1.3 и чипсета i815EP step 'B', во втором — Pentium-4 1.9 и i845 step 'A'. Южные хабы у обоих одинаковы — ICH2. Операционная система (Windows 2000) и другие компоненты были теми же, менялись лишь платы с процессорами. Для тестов я выбрал жесткий диск Maxtor D740X (7200 об/мин, 40 Гб на пластину, 2 Мб буфер) как один из самых быстродействующих на тот момент. Он был разбит на один раздел размером 32 Гб и отформатирован сначала под FAT32, а потом под NTFS.
Итак, рассмотрим сначала систему на базе Celeron 1.3. Наименьшую степень загрузки процессора показал драйвер UltraATA 6.20 — всего 3.8%. Близкое значение показал стандартный драйвер Microsoft — 3.85%. Драйверы Application Accelerator явно что-то обсчитывали и оптимизировали, поскольку загружали процессор сильнее — 4.1% для IAA1 и 4.2% для IAA2.
По производительности данные такие. IAA1 и UATA показали одинаковое быстродействие как в случае с FAT32, так и c NTFS. Чуть хуже работал IAA2, а стандартный драйвер заметно отстал, особенно в тесте Business DiskMark (драйвер Intel работает фактически на 50% быстрее). Визуально это заметно на скорости загрузки Windows — для нее требуется как минимум в полтора раза меньше времени. Может быть, это связано с быстрой инициализацией контроллера?
Также хорошо заметно, что файловая система FAT32 позволяет добиваться большего быстродействия, нежели NTFS. Поэтому советую не злоупотреблять NTFS.
Теперь возьмем Pentium-4 1.9. Как ни странно, загрузка процессора увеличилась на 0.3-0.5%. Соотношение между драйверами не изменилось: меньше всех нагружает процессор Ultra ATA, больше всех — IAA2.
Теперь — производительность. Странно, но в случае с Pentium-4 дисковая подсистема работает немного медленнее в тесте Business Winmarks. Расстановка опять практически не изменилась, разве что IAA2 перестал отставать.
Выводы
Я думаю, теперь всем стало ясно, для чего нужно устанавливать драйвер Intel Application Accelerator. Правда, по поводу применения алгоритмов, оптимизированных под Pentium-4, Intel, похоже, лукавит. Но прирост быстродействия очевиден, причем не только по тестам, но и визуально — по скорости загрузки Windows.
Какую версию драйвера ставить? Лучше всего последнюю, вторую. Хотя она чуть медленнее первой. Драйвер Ultra ATA Storage Driver меньше загружает процессор, но его инсталлятор кривоват. Оставлять стандартный Microsoft-драйвер следует только в случае возникновения ошибок или глюков, без которых, увы, пока не обходится.
Скачать последнюю версию драйвера Intel Application Accelerator можно отсюда: http://support.intel.com/support/chipsets/iaa/
Макс Курмаз, hardware@kv.by
BusMaster IDE драйвер — зачем он?
Всем нам известно, что современные диски поддерживают тот или иной режим обмена данными UltraDMA. Вкратце напомню, что значит "DMA" по отношению к винчестеру и почему появилась приставка "Ultra".
Существуют два базовых механизма организации взаимодействия системы с контроллером периферийного устройства. Режим программируемого ввода-вывода (PIO) предполагает, что посылка команд, прием ответов, передача и прием данных осуществляются по командам процессора. То есть программа-драйвер должна байт за байтом записывать в порт контроллера (или считывать из порта), инициируя обмен данными по шинам. Получается, что процессор должен простаивать, ожидая данных из контроллера, который и сам работает с куда меньшей скоростью, и обслуживает медленное устройство (например, как жесткий диск). Другой способ — прямой доступ к памяти (DMA), суть которого в следующем. Процессор настраивает контроллер DMA на работу с контроллером периферийного устройства. После запуска процесса обмена данными контроллер DMA изредка (по мере поступления данных) прерывает работу системы, чтобы передать блок данных в память (или получить из памяти). Причем процессор при этом может не останавливаться. Когда контроллер DMA остановит работу, он вызовет драйвер (выдаст прерывание), и процессор закончит обмен.
Шина PCI, к которой подключен хост-контроллер жестких дисков (точнее, ATA-интерфейса), тоже позволяет организовать работу по механизму DMA. Для этого на время обмена контроллер должен стать захватчиком шины (Bus Master).
Режимы Ultra касаются только интерфейса между хост-контроллером и встроенным контроллером жестких дисков. Он предусматривает передачу данных по обоим фронтам синхросигнала, введение кодов обнаружения ошибок, повышение частоты обмена и другие тонкости, не связанные с работой остальной системы.
Получается, что, работая в режиме DMA, контроллер жесткий дисков будет обмениваться данными с системой, минимально затрагивая другие процессы и не нагружая процессор лишней работой. Для того чтобы он смог так работать, необходимо, чтобы операционная система могла переключать контроллер в режим Bus Mastering.
Драйвер контроллера может выполнять и другие задачи. Например, он может заменять собой часть дисковой подсистемы операционки, отвечая и за низкоуровневую работу с контроллером, и за организацию запросов к жесткому диску. Зная особенности контроллера, он может оптимальнее строить тактику работы с ним, минимизируя простои и задержки.
Теперь вы понимаете, что от драйвера IDE может зависеть производительность всей дисковой подсистемы. Другой вопрос — как и насколько сильно.
Драйверы для контроллера чипсетов Intel
Как и обещал, я буду рассматривать драйверы для хост-контроллеров, встроенных в чипсеты Intel серии i8xx. Как известно, эти чипсеты на сегодняшний день оснащаются одним из следующих южных хабов (это второй чип в составе чипсета):
— ICH (82801AA) — чипсеты i810/E/E2, i815, i815P, i815G, i820, i840;
— ICH0 (82801AB) — те же чипсеты, отличается от ICH отсутствием поддержки UDMA/66;
— ICH2 (82801BA) — чипсеты i815 step B, i815E, i815EP, i815EG, i820E, i850, i845, i860 и др.
— ICH3 (82801CA) — на данный момент только i830.
Все эти чипсеты (почти) распознаются современными версиями Windows, но в любом случае драйвер чипсета (Intel Chipset Software Installation Utility) установить не помешает, причем в первую очередь перед любыми драйверами. После этого Windows поставит стандартный драйвер Bus Master IDE, который можно будет переключить в максимальный доступный UltraDMA-режим известным способом (для Win98/ME — поставить "галочку" DMA, для Windows 2000/XP — проверить свойства контроллера).
Кроме того, Intel предлагает устанавливать один из собственных драйверов, которые я опишу ниже. Но и без них все вроде бы нормально работает. Стоит ли возиться с лишним драйвером? Об этом скажут тесты. А пока я перечислю имеющиеся варианты применительно к операционной системе Windows 2000, которую я использовал для исследования.
Intel Ultra ATA Storage Driver
Так называется первоначально разработанный драйвер для чипсетов с мостами ICH. Он позволяет использовать режимы UltraDMA, выбирая один из них для каждого устройства независимо (чего не может встроенный Windows-драйвер). Кроме того, Intel обещает повышение быстродействия и простую, легкую инсталляцию. В составе драйвера имеется утилита Companion, которая позволяет получить подробную информацию о контроллере и устройствах, к нему подключенных, а также выбрать режим работы путем установки ограничения режима обмена.
Драйвер поддерживает операционные системы Win98, Win98SE, WinME, WinNT4, Win2000 и WinXP. Последняя версия Ultra ATA Storage — 6.20.2020. В ее состав входят файлы с версией 7.00.2014. При ее установке замечены некоторые проблемы. Во-первых, драйвер нормально устанавливается с помощью инсталлятора, но после этого может и не установиться в систему. Проверить это легко — посмотреть "сведения о файлах драйвера", точнее, на версии файлов. Чтобы установить драйверы на 100%, нужно сделать так:
1) распаковать дистрибутив драйвера (с форматом SFX CAB справится современный архиватор);
2) запустить setup.exe (инсталлятор InstallShield) с параметрами "-A -P путь", после чего все файлы драйвера появятся в папке "путь";
3) вручную ("обновить драйвер") "ткнуть носом" Windows в нужную папку.
Вторая неприятность с драйвером, проявляющаяся в Windows 2000 и XP, — удаление его средствами инсталлятора. После этого операционка не загрузится, так как у нее не будет драйвера контроллера жестких дисков. Придется переустанавливать в режиме "починки" системы.
Intel Application Accelerator версии 1 (последняя — 1.12)
В 2001 году прежний драйвер был заменен новым продуктом — "ускорителем приложений". По сути это все тот же драйвер Ultra ATA Storage, но со следующими улучшениями:
— оптимизация скорости загрузки операционной системы;
— оптимизация чтения и записи благодаря использованию алгоритмов кэширования и предвыборки (поддержка Pentium-4);
— поддержка жестких дисков объемом более 137 Гб (42-битная адресация).
Драйвер IAA является заменой Ultra ATA Storage Driver. Некоторое время они выпускались параллельно, но сейчас работы над последним прекращены.
Последняя версия драйвера — 1.12, в составе ее — файлы версии 7.00.2076. Операционные системы поддерживаются те же, состав пакета остался прежним — есть и утилита Companion, которая переименована в Intel Application Accelerator Diagnostic Utility. Решены проблемы с инсталляцией и деинсталляцией, но появились следующие баги:
— некорректно может работать Norton Speed Disk из пакета NU2001;
— некорректно работают старые версии Adaptec EasyCD Creator;
— иногда не работает цифровое считывание данных с CDAudio-дисков;
— сбоит утилита HDTach;
— иногда после инсталляции появляются искажения в цветах иконок.
Последние два бага нашел я, и о них Intel, похоже, не знает.
Intel Application Accelerator версии 2
На момент тестирования новая версия была в состоянии beta, но теперь доступна и финальная версия. Сделаны следующие улучшения:
— добавлена поддержка хаба ICH3;
— улучшена работа с дисками с 48-битной адресацией;
— добавлена поддержка "горячей замены" жестких дисков;
— добавлена поддержка мобильных чипсетов.
Версия беты — 2.00.2069 (видите, нумерация сменилась), финала — 2.00.2093. Других видимых изменений по сравнению с первой версией я не нашел.
Тестирование
Я провел тестирование драйверов на двух платформах Intel: P6 и P7, то есть Pentium-III и Pentium-4. Для этого был использован тестовый пакет Winbench'99, считающийся на сегодня самым точным и авторитетным. В первом случае тестировалась машина на базе Celeron 1.3 и чипсета i815EP step 'B', во втором — Pentium-4 1.9 и i845 step 'A'. Южные хабы у обоих одинаковы — ICH2. Операционная система (Windows 2000) и другие компоненты были теми же, менялись лишь платы с процессорами. Для тестов я выбрал жесткий диск Maxtor D740X (7200 об/мин, 40 Гб на пластину, 2 Мб буфер) как один из самых быстродействующих на тот момент. Он был разбит на один раздел размером 32 Гб и отформатирован сначала под FAT32, а потом под NTFS.
Итак, рассмотрим сначала систему на базе Celeron 1.3. Наименьшую степень загрузки процессора показал драйвер UltraATA 6.20 — всего 3.8%. Близкое значение показал стандартный драйвер Microsoft — 3.85%. Драйверы Application Accelerator явно что-то обсчитывали и оптимизировали, поскольку загружали процессор сильнее — 4.1% для IAA1 и 4.2% для IAA2.
По производительности данные такие. IAA1 и UATA показали одинаковое быстродействие как в случае с FAT32, так и c NTFS. Чуть хуже работал IAA2, а стандартный драйвер заметно отстал, особенно в тесте Business DiskMark (драйвер Intel работает фактически на 50% быстрее). Визуально это заметно на скорости загрузки Windows — для нее требуется как минимум в полтора раза меньше времени. Может быть, это связано с быстрой инициализацией контроллера?
Также хорошо заметно, что файловая система FAT32 позволяет добиваться большего быстродействия, нежели NTFS. Поэтому советую не злоупотреблять NTFS.
Теперь возьмем Pentium-4 1.9. Как ни странно, загрузка процессора увеличилась на 0.3-0.5%. Соотношение между драйверами не изменилось: меньше всех нагружает процессор Ultra ATA, больше всех — IAA2.
Теперь — производительность. Странно, но в случае с Pentium-4 дисковая подсистема работает немного медленнее в тесте Business Winmarks. Расстановка опять практически не изменилась, разве что IAA2 перестал отставать.
Выводы
Я думаю, теперь всем стало ясно, для чего нужно устанавливать драйвер Intel Application Accelerator. Правда, по поводу применения алгоритмов, оптимизированных под Pentium-4, Intel, похоже, лукавит. Но прирост быстродействия очевиден, причем не только по тестам, но и визуально — по скорости загрузки Windows.
Какую версию драйвера ставить? Лучше всего последнюю, вторую. Хотя она чуть медленнее первой. Драйвер Ultra ATA Storage Driver меньше загружает процессор, но его инсталлятор кривоват. Оставлять стандартный Microsoft-драйвер следует только в случае возникновения ошибок или глюков, без которых, увы, пока не обходится.
Скачать последнюю версию драйвера Intel Application Accelerator можно отсюда: http://support.intel.com/support/chipsets/iaa/
Макс Курмаз, hardware@kv.by
Компьютерная газета. Статья была опубликована в номере 11 за 2002 год в рубрике hard :: mb