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 в операционной системе и снизится производительность[источник не указан 815 дней].
  • Вручную (требует копирования msahci.sys и внесения его в реестр в двух местах — в список служб и в CriticalDeviceDatabase), либо при помощи утилит наподобие nLite драйвер AHCI можно заранее вмонтировать в дистрибутив Windows, что позволит ей сохранить работоспособность при переключении загрузочного диска на контроллер в режиме AHCI. При первой загрузке на новом контроллере диска операционная система определит его как «новое оборудование» и предложит установить драйвер, необходимо согласиться и перезагрузить машину после этого. Кроме того, такой же способ подходит для миграции загрузочного образа операционной системы на совершенно новый контроллер диска, в том числе SCSI — Promise, HighPoint, Adaptec и т.д. Операции необходимо произвести на образе, уже развернутом на новый будущий загрузочный диск, используя функцию загрузки ветви реестра (англ. Load Hive) при помощи редактора реестра. Многие программы создания/восстановления образов способны делать такое автоматически.
  • В Windows 8 после включения режима 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 ACHI был реализован в следующих контроллерах концентраторов[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

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

Ссылки[править | править вики-текст]