Advanced Host Controller Interface

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая 80.232.241.119 (обсуждение) в 21:26, 21 августа 2014 (аналогично английской версии). Она может серьёзно отличаться от текущей версии.
Перейти к навигации Перейти к поиску

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

При переключении, при уже установленной ОС Windows, контроллера SATA, входящего в состав южного моста, в режим «AHCI» это будет означать, для установленной операционной системы, задействование несовместимой логики работы контроллера ЖД — это действие эквивалентно установке в систему платы контроллера 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 после включения режима 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 в следующих контроллерах концентраторов[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

См. также

Ссылки

Примечания