Advanced Host Controller Interface
Advanced Host Controller Interface (AHCI) — механизм, используемый для подключения накопителей информации по протоколу Serial ATA, позволяющий пользоваться расширенными функциями, такими, как встроенная очерёдность команд (NCQ) и горячая замена.
Предназначен для замены устаревшего классического ATA-контроллера, который поддерживает совместимость сверху вниз ещё с оригинальной IBM PC/AT, и поддерживает прямой доступ к памяти лишь как дополнение. Основные настоящие проблемы этого контроллера — отсутствие поддержки горячей замены (при том, что оборудование eSATA её поддерживает) и очередей команд, на одном канале (в случае SATA каждое устройство есть один канал) — может одновременно исполняться только одна команда. Таким образом, задействование возможности ATA NCQ, даже при поддержке её самим диском, невозможно на классическом ATA-контроллере.
До появления AHCI для решения этой проблемы использовались проприетарные контроллеры (производимые фирмами Promise, HighPoint и другими), часто установленные в материнскую плату наряду с классическим PC/AT, что монтировался в южный мост. Зачастую эти контроллеры понимались операционной системой как SCSI-контроллеры, и поддерживали все богатые возможности протокола SCSI.
Поддержка AHCI существует не во всех чипах южных мостов, но даже при её реализации в чипе производитель материнской платы может не реализовать её в BIOS, и она будет недоступна. Иногда проблема решается обновлением BIOS, существуют неофициальные версии BIOS для многих материнских плат.
Многие контроллеры SATA могут включать простой режим AHCI или с поддержкой RAID. Intel рекомендует на своих материнских платах выбирать режим с поддержкой RAID (при включённом AHCI) для большей гибкости[1].
В некоторых случаях (Asus P5KC) поддержку AHCI невозможно включить на южном мосту, но можно включить на отдельно стоящем чипе, работающем на устаревшем Parallel ATA разъёме внутри корпуса или через внешний eSATA-разъём. Получается, что внутренние жёсткие диски не могут использовать AHCI, а подключённый по eSATA внешний корпус с диском — может.
AHCI, по сути, является стандартизацией дешёвых версий таковых контроллеров, позволяющей обойтись без установки проприетарных драйверов. AHCI также позволяет использовать твердотельные накопители SSD.
Встроенная поддержка AHCI включена в Mac OS X (начиная с Mac OS X 10.4.4 для Intel), Microsoft Windows (начиная с Vista; существует также бесплатный драйвер UniATA, реализующий поддержку AHCI для версий ОС Windows от Windows NT 3.51 до Windows 7[2]), Linux (начиная с ядра 2.6.19[3]), NetBSD, OpenBSD (начиная с версии 4.1), FreeBSD (начиная с версии 8.0), Solaris 10 (начиная с релиза 8/07). Для более старых операционных систем требуется драйвер производителя.
Проблемы использования AHCI в Microsoft Windows
При переключении в режим AHCI на уже установленной ОС Windows контроллера SATA, входящего в состав южного моста, произойдет задействование несовместимой логики работы контроллера ЖД — это действие эквивалентно установке в систему платы контроллера ATA, отличного от существующего, и физического переключения загрузочного диска на эту плату.
В этом случае Windows при загрузке не найдёт загрузочный диск и аварийно остановится с BSOD STOP 0x0000007B, INACCESSIBLE_BOOT_DEVICE
. Для решения проблемы необходимо до переключения установить в Windows драйвер AHCI.
- Самый простой способ — перед установкой операционной системы переключить в BIOS жёсткий диск с режима работы «AHCI» (стоит обычно по умолчанию) на «IDE». При этом не будет поддержки ATA NCQ в операционной системе и снизится производительность[источник не указан 4458 дней].
- Вручную (требует копирования
msahci.sys
и внесения его в реестр в двух местах — в список служб и вCriticalDeviceDatabase
), либо при помощи утилит наподобие nLite драйвер AHCI можно заранее вмонтировать в дистрибутив Windows, что позволит ей сохранить работоспособность при переключении загрузочного диска на контроллер в режиме AHCI. При первой загрузке на новом контроллере диска операционная система определит его как «новое оборудование» и предложит установить драйвер, необходимо согласиться и перезагрузить машину после этого. Кроме того, такой же способ подходит для миграции загрузочного образа операционной системы на совершенно новый контроллер диска, в том числе SCSI — Promise, HighPoint, Adaptec и т. д. Операции необходимо произвести на образе, уже развёрнутом на новый будущий загрузочный диск, используя функцию загрузки ветви реестра (англ. Load Hive) при помощи редактора реестра. Многие программы создания/восстановления образов способны делать такое автоматически. - В Windows 8 и Windows 10 после включения режима AHCI в BIOS достаточно загрузиться в безопасном режиме, после чего Windows установит необходимые драйверы. В случае, если зайти в безопасный режим не удается, можно заставить ОС сделать это, вызвав утилиту bcdedit. Если bcdedit не получилось запустить, можно также нажать WIN+R, запустить MSConfig и выбрать на вкладке "загрузка" запуск в безопасном режиме с минимальной конфигурацией.
- В Windows 7 / Windows Vista перед включением режима AHCI в BIOS необходимо активировать драйвер AHCI (путём правки реестра или запуска бесплатной утилиты от Microsoft).
- В версиях OS Windows до Windows 7 (Windows XP и младше) до переключения установить драйвер AHCI-контроллера, после чего переключить режим SATA в AHCI в BIOS.
- В некоторых случаях можно установить плату расширения с внешним контроллером SATA, поддерживающим режим AHCI, или разрешить в BIOS дополнительный чип контроллера, обычно работающий на внешний eSATA разъем, после чего ОС установит драйвер такого контроллера, а при дальнейшем переключении загрузочного диска на такой же контроллер сохранит способность к загрузке.
- Заменить стандартный драйвер контроллера жесткого диска на драйвер UniATA, упомянутый выше.
Аппаратная поддержка
AHCI встроен в чипсеты Intel начиная с некоторых версий ICH6 и во все чипсеты для платформ Core i3/i5/i7. Для платформ Core AHCI был реализован в следующих контроллерах концентраторов[4]:
- PCHM Intel RAID/AHCI Контроллер-концентратор
- Intel PCH SATA RAID/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 Контроллер-концентратор ввода/вывода (ICH8M) — только AHCI
- Intel 82801HR/HH/HO Контроллер-концентратор ввода/вывода (ICH8R /DH/DO) — RAID и AHCI
- Intel 631xESB/632xESB Контроллер-концентратор ввода/вывода — RAID и AHCI
- Intel 82801GHM Контроллер-концентратор ввода/вывода (ICH7MDH) — только RAID
- Intel 82801GBM Контроллер-концентратор ввода/вывода (ICH7M) — только AHCI
- Intel 82801GR/GH Контроллер-концентратор ввода/вывода (ICH7R /DH) — RAID и AHCI
- Intel 82801FR Контроллер-концентратор ввода/вывода (ICH6R) — RAID и AHCI
- Intel 82801FBM Контроллер-концентратор ввода/вывода (ICH6M) — только AHCI
См. также
Примечания
- ↑ Intel Matrix Storage Technology — Changing and/or choosing Serial ATA Modes // Intel, Inc. (англ.)
- ↑ UniATA
- ↑ Serial ATA (SATA) Linux hardware/driver status report — Dunvegan Media (англ.)
- ↑ Технология хранения Intel Rapid. Поддерживаемые Наборы микросхем для AHCI . Intel Corporation.
Ссылки
- Intel Advanced Host Controller Interface specification for Serial ATA
- KB922976 // Microsoft, Справка и поддержка