Как использовать все преимущества Serial ATA, что такое AHCI и как это включить без переустановки Windows.





Вы купили новый винчестер. Конечно, с интерфейсом Serial ATA. И, конечно, много слышали о новой интересной функции, реализованной в последних моделях - NCQ. Предвкушая заметный прирост скорости загрузки Windows и программ, а также снижение шума винчестера, вы подключаете винчестер, устанавливаете операционку и… Теперь вам потребуется проделать дополнительные манипуляции, чтобы включить поддержку AHCI и установить подходящие драйверы. Иначе технология NCQ, равно как и другие интересные функции, останется незадействованной.


Как включить AHCI
Способ первый, классический. Как и при создании RAID, вы используете установочную дискету, идущую в комплекте с материнской платой или созданную самостоятельно. Начинаете установку Windows, доходите до первой перезагрузки, а когда появляется надпись “Press F6…” внизу синего экрана, нажимаете F6 и предлагаете дискету. Следует выбрать правильный вариант драйвера и продолжить установку Windows. Впоследствии, когда установка успешно завершится, будет нелишним еще раз установить драйверы и утилиты - они позволят проделать некоторые настройки и убедиться, что NCQ включена.
Второй способ сложнее, но он позволяет обойтись и без дискеты, и без переустановки Windows. Для этого в BIOS вашего компьютера должна быть возможность отключения AHCI (или Native Mode, что в данном случае синонимы). При включенном режиме эмуляции вы проводите установку Windows, а потом устанавливаете драйверы от производителя контроллера (чипсета материнской платы). Если они не ставятся автоматически, делаете это вручную. Потом включаете AHCI в BIOS, и система начинает использовать преимущества NCQ.
На примере Intel

В чипсетах Intel поддержка AHCI появилась еще в серии 915. Правда, только в южных мостах с суффиксами “R”, “M” и “DH”:

  • ICH6R, ICH6M - чипсеты серии 915/925;
  • ICH7R, ICH7M, ICH7DH, ICH7MDH - чипсеты серии 945/955/975;
  • ICH8R - чипсеты серии 965.
  • ICH9R - чипсеты серии P35

Такими мостами комплектуются только ноутбуки на платформе Centrino, начиная со второго поколения, и материнские платы на чипсетах серии - 925, 955, 975... Как правило, если AHCI поддерживается, то в BIOS будет соответствующая строчка. В крайнем случае, можно заглянуть в руководство к материнской плате.
Вам понадобятся драйверы Intel Matrix Storage, бывшие Intel Application Accelerator, а также установочная дискета к ним. Ее образ можно скачать с сайта Intel. Драйверы с этой дискеты пригодятся и для установки Windows, и для включения AHCI уже после установки. В последнем случае не забудьте обязательно установить Intel INF Update перед тем, как начинать манипуляции с другими драйверами. После того, как драйверы стандартного контроллера Serial ATA будут заменены на драйверы с установочной дискеты Intel, можно включать AHCI. Windows сможет загрузиться, и дальше можно продолжить установку комплекта Matrix Storage - без включения AHCI он запускаться откажется. Для контроллеров других производителей процедура аналогичная - сначала установка драйверов, потом включение AHCI.
Винчестер в данном случае не затрагивается - форматировать, перешивать и т.п. ничего не нужно.
Пошаговая инструкция для m/b Intel с южными мостами ICH6R, ICH6M, ICH7R, ICH7DH, ICH7M, ICH8R, ICH9R
Примечание: ниже речь идет о 32bit версиях Windows. Само собой, драйвер есть и для x64. Найти его просто.

  • Убедитесь, что в BIOS отключен AHCI и не забудьте сделать backup папки Windows. Также советую сделать запасной загрузочный диск.


  • Скачайте 79im05ww.exe и распакуйте, например, в C:\DRIVERS\WIN\SATA


  • В случае, если у Вас ICH7M, перейдите к шагу (5)


  • Отредактируйте C:\DRIVERS\WIN\SATA\PREPARE\IMSM_PRE.inf заменив все DEV_27C5 на значения, соответствующие Вашему южному мосту:



    • ICH6R - DEV_2652
    • ICH6M - DEV_2653
    • ICH7R - DEV_27C1
    • ICH7DH - DEV_27C1
    • ICH7M - DEV_27C5



  • НажмитеWin+R, введитеC:\DRIVERS\WIN\SATA\PREPARE\INSTALL.CMD, нажмите Ok


  • Перезапустите PC и включите в BIOS поддержку AHCI


  • При загрузке OS запустится wizard обнаружения новых устройств:


  • Вслучае Windows XP выберитеNo, not this time, затемInstall from a list or specific location (Advanced)ивкачествепутиукажитеC:\DRIVERS\WIN\SATA


  • Вслучае Windows 2000 выберитеSearch for a suitable driver for my device (recommended), затемSpecify a locationиукажитеC:\DRIVERS\WIN\SATA

Решения для платы с ICH8R:

  • для установки Windows XP при включеном AHCI необходимо заблаговременно создать дискету с драйвером AHCI. Всё необходимое для этого имеется на диске, идущим в комплекте с материнской платой.


  • При установке Windows XP SP 2 помещаем дискету с драйвером в устройство чтения FDD. В момент запроса установщика Windows – « Нажмите F6 для установки специального драйвера SCSI или RAID» жмём F6 и из предложенного списка выбираем драйвер AHCI.


  • в том случае, если у Вас нет устройства чтения дискет, либо Windows XP уже установлена в режиме работы SATA – IDE можно интегрировать необходимый драйвер прямо в операционной системе.

Делается это следующим образом:

  • Заходим в диспетчер устройств и находим в списке IDE ATA/ATAPI контроллеры.


  • Обновляем драйвера для контроллеров (по умолчанию их 2).


  • Для этого, выбираем пункт Обновить драйвер => Не выполнять поиск. Я сам выберу нужный драйвер.


  • Указываем путь к папке Drivers\Chipset\Intel\makedisk\DOS\F632 на установочном диске к материнской плате.


  • Снимаем галочку "Только совместимые устройства" и выбираем из списка Intel(R) ICH8R/D0/DH SATA AHCI Controller. (так для обоих контроллеров!!!).


  • Система попросит перезагрузку - выполняем. При перезагрузке в BIOS выбираем режим контроллера - AHCI.

Ради чего?
Идея, лежащая в основе технологии NCQ (Native Command Queuing), уже не раз была реализована в жестких дисках и контроллерах, но не в тех, что применяются в обычных персоналках.
Итак, вот какой принцип лежит в основе NCQ. Как известно, жесткий диск работает довольно медленно, по сравнению с другими устройствами ПК ввиду его механической природы. Особенно много времени тратится на перемещение головок между дорожками, на которых расположены запрошенные системой сектора с данными. Чтобы эти перемещения минимизировать, можно применить хорошо известный в информатике метод переупорядочивания очереди команд. В данном случае в качестве критерия перестройки используется расстояние между дорожками, к которым будет производиться доступ. Команды на чтение, поступающие к жесткому диску со стороны системы, выполняются не по порядку, а накапливаются в очереди. Там они меняются местами таким образом, чтобы головка при выполнении соседних запросов смещалась как можно меньше. За счет этого и достигается ускорение.
Обычно для иллюстрации эффекта от переупорядочивания приводится классический пример - лифт в здании. Представьте, что он перемещается по этажам в том порядке, в каком были нажаты кнопки на панели. Но лифт работает гораздо эффективнее - он открывает двери на этажах по ходу движения. Да, некоторым из пассажиров приходится ожидать дольше, но другие попадают на нужный этаж намного быстрее.
Собственно, некоторые минусы после приведения примера с лифтом вам стали очевидны. Не все запросы будут выполнены быстрее - некоторые могут “застрять” в очереди, пропуская другие запросы. А появление запроса на запись вообще осложняет обработку очереди команд, так как возможна ситуация нарушения целостности данных.
Кроме того, подобная технология даст выгоду только в том случае, если команды винчестеру поступают плотным потоком и намного быстрее, чем он успевает их выполнить. В условиях современных ПК такая ситуация происходит не очень часто - в основном в момент загрузки ОС и больших программных пакетов. Поэтому за реализацию технологии NCQ взялись только в последнее время, хотя в серверной среде интеллектуальное переупорядочивание команд применяется давно и успешно.
Следует заметить, что возможность изменения порядка команд и обработки очередей заложена и в протоколе интерфейса ATA (технология TCQ). И даже есть примеры вполне успешной ее реализации. Но сделано это не очень красиво и удобно. Дело в том, что протокол интерфейса ATA, по которому работают жесткие диски с обычным, “параллельным” интерфейсом, основан на протоколе работы шины ISA. Процедура инициализации и передачи команды, а также слежение за состоянием и ошибками - довольно длительная и сложная процедура, требующая анализа нескольких регистров. Поэтому разработчики решили реализовать поддержку данной технологии в винчестерах, использующих новый интерфейс - Serial ATA.
Протокол AHCI
Контроллер Serial ATA, согласно требованиям этого стандарта, должен поддерживать, как минимум, два режима работы. Первый - режим эмуляции стандартного контроллера ATA. В этом режиме контроллер полностью повторяет протокол обращения к жесткому диску ATA и, с точки зрения операционной системы и драйверов, не отличается от контроллера “параллельного” интерфейса. При этом подключенные к нему винчестеры эмулируются либо как устройства Master на отдельном канале, либо, если операционная система “не понимает” более двух каналов - как пары устройств Master и Slave. Этот режим включен по умолчанию, он полностью поддерживается всеми операционными системами и BIOS.
Проблема в том, что в режиме эмуляции реализация дополнительных функций Serial ATA частично или полностью невозможна, иначе совместимость с классической реализацией ATA будет нарушена. Поэтому контроллер имеет возможность переключиться в “родной” (Native) режим Serial ATA, который не имеет сковывающих его “родственных обязательств” по отношению к ATA.
Протокол AHCI (Advanced Host Controller Interface) как раз описывает поведение контроллера в режиме Native с точки зрения системы. Он описывает, каким образом контроллер обрабатывает очередь команд, где и как они хранятся, как программист должен помещать команды в очередь и где получать результаты их выполнения. Все условности протокола ATA отброшены, все сложности с манипулированием регистрами и флагами упразднены за ненадобностью. Реализация всех дополнительных функций Serial ATA, включая NCQ, Hot Swap, Port Multiplier, Staggered Spin-Up и т.д., теперь ничем не ограничивается.
Данный протокол был разработан специальной инициативной группой во главе с Intel. Он является дополнением к стандарту Serial ATA, который, в общем-то, не описывает требования к хост-контроллерам (контроллерам со стороны вычислительной системы, к которой подключен винчестер). Вместе с AHCI стандарт Serial ATA является законченным решением для организации дисковой подсистемы в ПК нового поколения.
Вместе с тем теряется совместимость с программным обеспечением, не поддерживающим Serial ATA изначально. Работать в двух режимах одновременно контроллер не может. Переключаясь в режим Native, он теряет возможность принимать команды от программного обеспечения, не “понимающего” протокол AHCI.
Источник: http://www.antoncomp.ru/