Установка AHCI: Windows XP
                                                                  Ради чего
Идея, лежащая в основе технологии NCQ (Native Command Queuing), уже не раз была реализована в жестких дисках и контроллерах, но не в тех, что
применяются в обычных персоналках.
Итак, вот какой принцип лежит в основе NCQ. Как известно, жесткий диск работает довольно медленно, по сравнению с другими устройствами ПК ввиду
его механической природы. Особенно много времени тратится на перемещение головок между дорожками, на которых расположены запрошенные
системой сектора с данными. Чтобы эти перемещения минимизировать, можно применить хорошо известный в информатике метод переупорядочивания
очереди команд. В данном случае в качестве критерия перестройки используется расстояние между дорожками, к которым будет производиться доступ.
Команды на чтение, поступающие к жесткому диску со стороны системы, выполняются не по порядку, а накапливаются в очереди. Там они меняются
местами таким образом, чтобы головка при выполнении соседних запросов смещалась как можно меньше. За счет этого и достигается ускорение.
Обычно для иллюстрации эффекта от переупорядочивания приводится классический пример лифт в здании. Представьте, что он перемещается по
этажам в том порядке, в каком были нажаты кнопки на панели. Но лифт работает гораздо эффективнее он открывает двери на этажах по ходу движения.
Да, некоторым из пассажиров приходится ожидать дольше, но другие попадают на нужный этаж намного быстрее.
Собственно, некоторые минусы после приведения примера с лифтом вам стали очевидны. Не все запросы будут выполнены быстрее некоторые могут
“застрять” в очереди, пропуская другие запросы. А появление запроса на запись вообще осложняет обработку очереди команд, так как возможна ситуация
нарушения целостности данных.
Кроме того, подобная технология даст выгоду только в том случае, если команды винчестеру поступают плотным потоком и намного быстрее, чем он
успевает их выполнить. В условиях современных ПК такая ситуация происходит не очень часто в основном в момент загрузки ОС и больших
программных пакетов. Поэтому за реализацию технологии NCQ взялись только в последнее время, хотя в серверной среде интеллектуальное
переупорядочивание команд применяется давно и успешно.
Следует заметить, что возможность изменения порядка команд и обработки очередей заложена и в протоколе интерфейса ATA (технология TCQ). И даже
есть примеры вполне успешной ее реализации. Но сделано это не очень красиво и удобно. Дело в том, что протокол интерфейса ATA, по которому
работают жесткие диски с обычным, “параллельным” интерфейсом, основан на протоколе работы шины ISA. Процедура инициализации и передачи
команды, а также слежение за состоянием и ошибками довольно длительная и сложная процедура, требующая анализа нескольких регистров. Поэтому
разработчики решили реализовать поддержку данной технологии в винчестерах, использующих новый интерфейс Serial ATA.
Протокол AHCI
Контроллер Serial ATA, согласно требованиям этого стандарта, должен поддерживать, как минимум, два режима работы. Первыйрежим эмуляции
стандартного контроллера ATA (Legacy Mode). В этом режиме контроллер полностью повторяет протокол обращения к жесткому диску 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 и т.д., теперь ничем
не ограничивается.
Native Mode нацелен для работы с операционными системами Windows 2000, XP, Vista, Windows 7.
Иначе говоря, функции протокола AHCI работают только в Native Mode Serial ATA.
Данный протокол был разработан специальной инициативной группой во главе с Intel. Он является дополнением к стандарту Serial ATA, который, в
общем-то, не описывает требования к хост-контроллерам (контроллерам со стороны вычислительной системы, к которой подключен винчестер). Вместе с
AHCI стандарт Serial ATA является законченным решением для организации дисковой подсистемы в ПК нового поколения.
Вместе с темтеряется совместимость с программным обеспечением, не поддерживающим Serial ATA изначально.Работать в двух режимах одновременно
контроллер не может. Переключаясь в режим Native, он теряет возможность принимать команды от программного обеспечения, не “понимающего”
протокол AHCI. Напомним, что Windows XP не работает изначально с Serial ATA в Native Mode AHCI, а Vista и Windows 7 его поддерживают.
Как включить 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 будет соответствующая строчка. В крайнем случае, можно заглянуть в руководство к
материнской плате.
Контроллер AHCI встроен в набор микросхем со следующим контроллером-концетратором:
§    Блок контроллеров Intel® ICH10R/DO SATA RAID/AHCI
§    Блок контроллеров Intel® ICH10D SATA AHCI
§    Блок контроллеров Intel® ICH9M-E SATA RAID/AHCI
§    Блок контроллеров Intel® ICH9M AHCI
§    Блок контроллеров Intel® 82801IR/IO (ICH9R/DO) RAID и AHCI
§    Контроллер-концетратор ввода/вывода Intel® 82801HEM (ICH8M-E) RAID и AHCI
§    Контроллер-концентратор ввода/вывода Intel® 82801HBM (ICH8R) только AHCI
§    Блок контроллеров ввода/вывода Intel® 82801HR/HH/HO (ICH8R/DH/DO) RAID и AHCI
§    Контроллер-концентратор ввода/вывода Intel® 631xESB/632xESB RAID и AHCI
§    Контроллер-концентратор ввода/вывода Intel® 82801GHM (ICH7MDH) только RAID
§    Блок контроллеров ввода/вывода Intel® 82801GBM (ICH7M) только версия AHCI
§    Блок контроллеров ввода/вывода 82801GR/GH (ICH7R/DH) RAID и AHCI
§    Блок контроллеров ввода/вывода Intel® 82801FR (ICH6-R) RAID и AHCI
§    Контроллер-концентратор ввода/вывода Intel® 82801FBM (ICH6M) только AHCI
Вам понадобятся драйверы 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. Найти его просто.
1.    Убедитесь, что в BIOS отключен AHCI и не забудьте сделать backup папки Windows. Также советую сделать запасной загрузочный диск.
2.    Скачайте
79im05ww.exeи распакуйте, например, в C:\DRIVERS\WIN\SATA
3.    В случае, если у Вас ICH7M, перейдите к шагу (5)
4.    Отредактируйте 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®ICH8R/D0/DH SATA AHCI Controller. (так для обоих контроллеров!!!).
Система попросит перезагрузку выполняем. При перезагрузке в BIOS выбираем режим контроллера AHCI.
Установка Windows XP на ноутбуках с Vista и Serial ATA AHCI
Как признаются разработчики этой операционной системы в специальном документе (
http://www.microsoft.com/whdc/device...alATA_FAQ.mspx), дисковая
подсистема всех версий Windows, вышедших до версии Vista, поддерживать AHCI не будет. Объясняют они это наличием особенностей в реализации
AHCI производителями разных контроллеров. В будущем в ядре Windows будет реализован новый механизм подключения драйверов Ataport, и в составе
драйверов будет идти стандартный минипорт для Native-режима контроллера Serial ATA. А пока, увы, нужно устанавливать специальный драйвер или
SCSI-минипорт непосредственно от производителя контроллера.
Эта проблема сложнее, чем кажется на первый взгляд. Операционная система Windows устроена таким образом, что при старте она должна обязательно
«подхватить» правильный драйвер для контроллера жестких дисков. Иначе старт прерывается пресловутым «синим экраном», избавиться от которого
можно только переустановкой системы. Мало того, процесс установки тоже прервется этим же «синим экраном», если вовремя не предоставить Windows
дискету с нужным драйвером. Владельцам ноутбуков вообще не позавидуешь им и дискету-то вставить некуда, а другие носители Windows в данном
случае не принимает.
Итак, ставим Windows XP на ноутбук с AHCI.
В большинстве случаев, попытка установки ХР в режиме эмуляции приводит в появлению BSOD («синего экрана смерти») со следующей ошибкой:
STOP 0x0000007B INACCESSABLE_BOOT_DEVICE
Как уже было сказано, существует 2 способа установки Windows XP с включенным в BIOS SATA Native Mode: подкидывание драйверов дистрибутиву при
загрузке через F6 или модификация операционной системы таким образом, чтобы уже интегрировать нужные драйвера в дистрибутив.
В первом случае,поскольку флопика в ноутбуке нет, то единственный выход использовать USB Floppy Drive, который не так уж и дёшев.
Интеграция драйверовв дистрибутив более сложна, но экономически более целесообразна.
Дистрибутивов (сборок) с уже интегрированными драйверами достаточно много, достаточно скачать такой из Интернета и записать на болванку. Если же
вы не можете найти такую сборку, то остается только интегрировать драйвера самостоятельно в дистрибутив с помощью программы
nLite.
Например, для платформы Intel с ICH7-ICH8 (Intel®Matrix Storage Manager) стандартно это файлы:
§    iaahci.cat
§    iastor.cat
§    iaahci.inf
§    iastor.inf
§    txtsetup.oem
§    iastor.sys
Во время установки Windows Vista все неиспользуемые драйверы запоминающих устройств отключаются. Это позволяет увеличить скорость запуска
операционной системы. При замене драйвера загрузочного диска на драйвер, который был отключен, необходимо включить новый драйвер перед
изменением конфигурации SATA в BIOS.
Предположим, выполняется установка Windows на компьютер с контроллером, который использует драйверPciide.sys. Затем пользователь выполняет
изменение режима SATA на AHCI. Теперь для диска должен загружаться драйвер Msahci.sys. Однако прежде чем вносить такие изменения, необходимо
включить драйверMsahci.sys. Данная проблема имеет отношение только к загрузочному диску. Если изменение выполняется для диска, который не
является загрузочным, данная проблема не возникает.
Для устранения неполадок перед изменением режима SATA загрузочного диска включите драйвер AHCI в реестре. Для этого выполните следующие
действия:
1.    Запустите редактор реестраregedit.
Найдите и выделите следующий подраздел реестра:
2.    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Msahci
3.    На правой панели щелкните правой кнопкой мыши параметрStartв столбцеИмя, затем нажмитеИзменить.
4.    В полеЗначениевведите0и нажмите кнопкуОК.
5.    Закройте редактор реестра.
Способ профессиональный.Вместо интеграции драйверов в дистрибутив можно попробовать написать файл \i386\winnt.sif и положить его в дистрибутив, в
котором прописать пути к папкам с дровами.
Что-то вроде:
OemPnpDriversPath =
«Drivers\megaIDE;Drivers\ICH85;Drivers\ICH78;Drivers\ICH62;Drivers\!inf;Drivers\lan.Pro100;Drivers\lan.Pro1000;lan.Drivers\lan.rtl8169;Drivers\IntelVGA895;
Drivers\IntelVGA845;Drivers\lan.Marvell;Drivers\lan.Attansic;Drivers\jMicron;Drivers\ATK100;Drivers\ATK110»
DriverSigningPolicy=Ignore
 
http://hww.ru
Hosted by uCoz