Advanced Host Controller Interface

20-10-2023

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 по сути является стандартизацией дешевых версий таковых контроллеров, позволяющей обойтись без установки проприетарных драйверов.

Многие контроллеры SATA могут включать простой режим AHCI или с поддержкой RAID. Intel рекомендует на своих материнских платах выбирать режим с поддержкой RAID (при включённом AHCI) для большей гибкости.[1]

Встроенная поддержка AHCI включена в Mac OS X (начиная с Mac OS X 10.4.4 для Intel), Microsoft Windows (начиная с Vista), Linux (начиная с ядра 2.6.19[2]), NetBSD, OpenBSD (начиная с версии 4.1), FreeBSD, Solaris 10 (начиная с релиза 8/07). Для более старых операционных систем требуется драйвер производителя.

Поддержка AHCI существует не во всех чипах южных мостов, но даже при её реализации в чипе производитель материнской платы может не реализовать её в BIOS, и она будет недоступна. Иногда проблема решается обновлением BIOS, существуют неофициальные версии BIOS для многих материнских плат.

В некоторых случаях (Asus P5KC) поддержку AHCI невозможно включить на южном мосту, но можно включить на отдельно стоящем чипе, работающем на устаревшем Parallel ATA разъёме внутри корпуса или через внешний eSATA разъём. Получается, что внутренние жёсткие диски не могут использовать AHCI, а подключённый по eSATA внешний корпус с диском — может.

Содержание

Проблемы использования AHCI в Microsoft Windows

Переключение контроллера ATA, входящего в состав южного моста, в режим AHCI означает задействование несовместимой логики работы контроллера. С точки зрения установленной операционной системы это действие эквивалентно установке в систему платы контроллера ATA, отличного от существующего, и физического переключения загрузочного диска на эту плату.

В этом случае Windows при загрузке не найдёт загрузочный диск и аварийно остановится с BSOD STOP 0x0000007B, INACCESSIBLE_BOOT_DEVICE. Для решения проблемы необходимо до переключения установить в Windows драйвер AHCI.

  • Самый простой способ - перед установкой операционной системы переключить в BIOS жёсткий диск в режим работы AHCI (стоит обычно по умолчанию на IDE). Это немедленно «убьет» поддержку ATA NCQ в операционной системе и снизит производительность.
  • Вручную (требует копирования msahci.sys и внесения его в реестр в двух местах - в список служб и в CriticalDeviceDatabase), либо при помощи утилит наподобие nLite драйвер AHCI можно заранее вмонтировать в дистрибутив Windows, что позволит ей сохранить работоспособность при переключении загрузочного диска на контроллер в режиме AHCI. При первой загрузке на новом контроллере диска операционная система определит его как «новое оборудование» и предложит установить драйвер, необходимо согласиться и перезагрузить машину после этого. Кроме того, такой же способ подходит для миграции загрузочного образа операционной системы на совершенно новый контроллер диска, в том числе SCSI - Promise, HighPoint, Adaptec и т.д. Операции необходимо произвести на образе, уже развернутом на новый будущий загрузочный диск, используя функцию загрузки ветви реестра (англ. Load Hive) при помощи редактора реестра. Многие программы создания/восстановления образов способны делать такое автоматически.
  • До переключения установить в компьютер какой-то еще AHCI контроллер - либо как плату расширения, либо разрешить в BIOS дополнительный чип контроллера, обычно работающий на внешний eSATA разъем. После этого ОС установит драйвер этого контроллера, а при дальнейшем переключении загрузочного диска на такой же контроллер сохранит способность к загрузке.
  • В активировать драйвер AHCI.

Примечания

  1. Intel Matrix Storage Technology — Changing and/or choosing Serial ATA Modes. Intel, Inc.  (англ.)
  2. Serial ATA (SATA) Linux hardware/driver status report — Dunvegan Media  (англ.)

Advanced Host Controller Interface (AHCI)позволяет использовать твердотельные накопители SSD,

Ссылки

  • Microsoft Справка и поддержка
  • Intel Advanced Host Controller Interface specification for Serial ATA

См. также


Advanced Host Controller Interface.

© 2011–2023 stamp-i-k.ru, Россия, Барнаул, ул. Анатолия 32, +7 (3852) 15-49-47