Часть 2
В первой части статьи речь шла о том, как максимально повысить быстродействие дисков ATA (или IDE) в среде Windows 2000. Я рассказал о новейших стандартах ATA и рассмотрел некоторые аппаратные ошибки, которые пользователи часто допускают при подключении дисков ATA (ATA/33, ATA/66, ATA/100). Во второй части я расскажу о программном обеспечении и постараюсь заполнить некоторые пробелы в отрывочной документации по ATA в Microsoft Knowledge Base. Но, прежде чем следовать предложенным рекомендациям, необходимо правильно настроить аппаратные средства.

Немного истории

В исходной спецификации IDE/ATA применялся метод передачи данных, известный как Programmed I/O (PIO); основная нагрузка при пересылке данных из кэш-памяти диска в системную память ложится на центральный процессор. Первые режимы PIO (0, 1 и 2) были описаны в первоначальной редакции стандарта ATA. В более поздней версии ATA-2 (EIDE или Fast ATA) появилось два новых и более быстрых режима PIO (3 и 4), а также два режима с использованием прямого доступа к памяти (DMA). Благодаря DMA при пересылке данных снижается нагрузка на процессор. Чтобы повысить скорость пересылки данных в режиме DMA, контроллеру IDE предоставляется прямой доступ к системной памяти. Этот же метод используется в контроллерах других типов, в том числе в адаптерах SCSI и Ethernet. В итоге DMA превратился в текущий стандарт Ultra DMA (иначе, Ultra ATA, ATA/33 или DMA-33), который поддерживает новый режим DMA Mode 3. Этот стандарт получил столь широкое распространение, что термин UDMA, обозначающий режим пересылки данных, а не дисковый интерфейс, в статьях о современных дисках используется как синоним ATA (например, ATA/33 и UDMA/33, ATA/66 и UDMA/66). Кроме того, в целях обратной совместимости в современных дисках ATA реализованы все режимы передачи данных - в том числе PIO и DMA, - которые соответствуют возможностям данного устройства.

Первые диски и контроллеры UDMA работали с частотой до 33 МГц. Это значит, что теоретически они могли передавать данные в групповом режиме со скоростью 33 Мбайт/с. Со временем появились усовершенствованные варианты UDMA, работающие со скоростью 66 МГц/66 Мбайт/с (ATA/66) в режиме DMA Mode 4, и со скоростью 100 МГц/100 Мбайт/с (ATA/100) в режиме DMA Mode 5. Практически все современные диски ATA относятся к типу ATA/66 или ATA/100. Быстродействие новых устройств было сопоставимо с возможностями дисковых подсистем SCSI, и разрыв между стандартами ATA и SCSI начал сокращаться. Устройства ATA, как более доступные по цене, предпочтительны всегда, за исключением ситуаций, когда требования очень высоки (SCSI все еще имеет некоторое преимущество в производительности).

Драйверы

Несмотря на совершенствование технологии и использование дисков ATA в подавляющем большинстве современных компьютеров, известно, что Windows NT и Windows 2000 плохо справляются с оптимизацией производительности ATA. В случае с NT это связано с моделью драйверов, реализованной Microsoft для дисков ATA. Единственный псевдо-SCSI драйвер мини-порта (atapi.sys) вместе с scsiport.sys образуют псевдо-SCSI драйвер, обслуживающий все устройства ATA в системе. Универсальный подход не вызывает заметного снижения производительности старых контроллеров и устройств IDE. Однако драйвер atapi.sys часто ограничивает быстродействие новых контроллеров и устройств, так как в нем не используются преимущества режимов PIO и DMA. В нескольких пакетах исправлений NT есть драйверы atapi.sys с расширенной функциональностью для новых режимов пересылки данных. Тем не менее для оптимального быстродействия по-прежнему необходимы драйверы независимых поставщиков.

Разработчики Microsoft изменили модель драйверов ATA в Windows 2000. Вместо монолитного псевдо-SCSI драйвера мини-порта используется полноценный драйвер порта (похожий на scsiport.sys) для ATA. В результате поставщики могут внести некоторые изменения (например, DMA или управление шиной) в специальные драйверы MiniIDE. Поэтому операционная система может использовать преимущества специальных функций каждого контроллера.

Несмотря на усовершенствование функций для работы с новыми контроллерами ATA, многие проблемы решены не были: в частности, не обеспечена поддержка новейших режимов DMA Mode 4 и 5 (ATA/66 и ATA/100, соответственно). К сожалению, без этих режимов DMA полностью реализовать преимущества ATA/66- и ATA/100-совместимых устройств невозможно.

ATA и Windows 2000

В стандартном драйвере atapi.sys первой редакции Windows 2000 были реализованы режимы пересылки данных до UDMA/66 включительно. В то время это был самый быстрый и широко применяемый стандарт. Но разработчики предпочли не активизировать самый скоростной режим (UDMA/66) по умолчанию на многих системах с наборами микросхем ATA компании Intel (самыми распространенными наборами ИС в современных компьютерах). Очевидно, причиной такого выбора было желание избежать порчи данных и тому подобных проблем, которые могли возникнуть при некоторых комбинациях диска, контроллера и драйвера. Но об этом решении знали лишь немногие специалисты. Затем была опубликована статья Microsoft «HOWTO: Enable UDMA66 Mode on Intel Chipsets» (http://support.microsoft.com/default.aspx?scid=kb;en-us;q247951), в которой говорилось, что Windows 2000 не активизирует режим UDMA/66 автоматически. В статье рассказывается о том, как исправить положение, изменив системный реестр, но не уточняется, к каким пакетам исправления, наборам микросхем Intel и дискам применим режим, выбираемый по умолчанию, и как этот режим затрагивает UDMA/100 и наборы ИС других поставщиков.

Ситуация не прояснилась и после выпуска еще одной статьи Microsoft по проблеме ATA: «Support for ATA 100 (Mode 5) in Windows 2000» (http://support.microsoft.com/default.aspx?scid=kb;en-us;q260233). В этой статье говорится, что Windows 2000 Service Pack 2 (SP2 - или исправление, выпущенное до появления SP2) обеспечивает возможность поддержки ATA/100 (DMA Mode 5). К сожалению, здесь также отсутствует важнейшая информация: например, какие наборы микросхем ATA имеются в виду (производства Intel, других компаний или все устройства); связь с упомянутым выше исправлением для ATA/66; к каким версиям операционной системы относится исправление, выпущенное до появления SP2 (базовой или SP1). Окончательных разъяснений Microsoft не дала до сих пор. Какую-то информацию можно отыскать в Internet, но она исходит не от разработчика и в ней больше догадок, нежели фактов.

Владельцам систем, конфигурация которых точно соответствует типу, описанному в статьях Microsoft, вероятно, достаточно внести рекомендованные изменения в реестр, чтобы активизировать режим ATA/100. Если советы, предложенные в статьях, для конкретной системы неприменимы, то в лучшем случае изменения не будут иметь никаких последствий, в худшем - приведут к системным ошибкам и порче данных.

Драйверы независимых поставщиков

Ни в одной из упомянутых статей Microsoft не сказано, что проблемы ATA специфичны для стандартного драйвера atapi.sys или что их можно решить с помощью специализированных драйверов для конкретного набора ИС. Драйверы независимых поставщиков в большинстве случаев свободны от названных недостатков, и в них с успехом используются индивидуальные особенности микросхем. Часто программы установки драйверов автоматически конфигурируют систему (в том числе вносят необходимые изменения в реестр), задавая самые быстрые режимы ATA, реализованные в данном наборе ИС. Большинство изготовителей системных ИС и микросхем ATA предоставляют драйверы для контроллеров ATA, но, к сожалению, основная масса пользователей не знает об их существовании или не устанавливает их.

Пример специализированного драйвера микросхем ATA - Intel Ultra ATA Storage Driver, его можно получить по адресу: http://support.intel.com/support/chipsets/ storagedrivers/ultraata. На этом сайте можно найти не только драйверы Ultra ATA для Windows 2000 и других операционных систем Windows (с полной поддержкой всех режимов передачи данных ATA), но и утилиту конфигурирования, которая обеспечивает идентификацию набора микросхем ATA. Другие изготовители микросхем, такие, как VIAHardware.com, также предлагают для своих контроллеров специализированные драйверы. Последнее преимущество специализированных драйверов заключается в том, что вместе с некоторыми из них постав-ляются утилиты не только для корректной настройки и активизации скоростных режимов ATA, но и для определения режимов PIO и DMA, используемых различными каналами ATA и устройствами. В Windows 2000 сделана попытка предоставить похожую информацию. Например, можно обратиться к Device Manager, открыть диалоговое окно Properties канала ATA и выбрать закладку Advanced Settings. Однако информация Windows 2000 недостаточно полна, а в ряде случаев - например, в описанном в статье Microsoft «Device Manager Lists ATA-100 Device Incorrectly as Using PIO Instead of UDMA» (http://support.microsoft.com/default.aspx?scid=kb;en-us;q269555) - сведения оказываются неверными.

Чтобы добиться от устройств ATA максимальной управляемости, надежности и быстродействия в среде Windows 2000, потребуется провести небольшое исследование. Каждая система имеет свои особенности, в них используются разные контроллеры, микросхемы, модели и типы дисков, спецификации ATA и драйверы. Подобрать правильную комбинацию системных аппаратных средств, исправлений для операционной системы и (при необходимости) специализированных драйверов бывает нелегко. Однако, приложив некоторые усилия, можно полностью реализовать возможности устройств ATA.

(Окончание.)

Шон Дейли - старший редактор журнала Windows & .NET Magazine.С ним можно связаться по адресу электронной почты: sdaily@win2000mag.com.