Расширенный интерфейс хост-контроллера ( AHCI ) — это технический стандарт, определенный Intel , который определяет интерфейс на уровне регистров хост-контроллеров Serial ATA (SATA) не зависящим от реализации способом в наборах микросхем материнских плат . [1]
Спецификация описывает структуру системной памяти, позволяющую производителям компьютерного оборудования обмениваться данными между памятью хост-системы и подключенными устройствами хранения данных . AHCI предоставляет разработчикам программного обеспечения и разработчикам оборудования стандартный метод обнаружения, настройки и программирования адаптеров SATA/AHCI. AHCI отличается от стандарта SATA 3 Гбит/с, хотя он предоставляет расширенные возможности SATA (такие как « горячая замена» и встроенная организация очереди команд ), поэтому хост-системы могут их использовать. Для современных твердотельных накопителей интерфейс был заменен NVMe . [2]
Текущая версия спецификации — 1.3.1.
Многие контроллеры SATA предлагают выбираемые режимы работы: устаревшая эмуляция параллельного ATA (чаще называемая режимом IDE), стандартный режим AHCI (также известный как собственный режим) или RAID конкретного поставщика (который обычно включает AHCI, чтобы воспользоваться его возможностями). ). Intel рекомендует выбирать на своих материнских платах режим RAID (который также поддерживает AHCI), а не режим AHCI/SATA для максимальной гибкости. [3] Режим Legacy — это механизм обратной совместимости программного обеспечения , позволяющий контроллеру SATA работать в устаревших операционных системах, которые не поддерживают SATA или в которых не существует драйвера, обеспечивающего поддержку SATA операционной системы.
Когда контроллер SATA настроен для работы в режиме IDE, количество устройств хранения данных на контроллер обычно ограничивается четырьмя (два канала IDE, главное устройство и подчиненное устройство, до двух устройств на канал) по сравнению с максимальным количеством устройств в 32. /ports при настройке в режиме AHCI. [4] [1] Но интерфейсы SATA чипсета могут эмулировать более одного «контроллера IDE» при настройке в режиме IDE.
AHCI поддерживается «из коробки» в Windows Vista и более поздних версиях, операционных системах на базе Linux (начиная с версии ядра 2.6.19 ) , OpenBSD (начиная с версии 4.1), NetBSD (начиная с версии 4.0), FreeBSD (начиная с версии 8.0), [5] macOS , GNU Mach , ArcaOS , [6] eComStation (начиная с версии 2.1) и Solaris 10 (начиная с версии 8/07). [7] DragonFlyBSD основывает свою реализацию AHCI на OpenBSD и добавляет расширенные функции, такие как поддержка множителя порта. Более старым версиям операционных систем для поддержки AHCI требуются драйверы для конкретного оборудования. Windows XP и более ранние версии не обеспечивают поддержку AHCI «из коробки».
Некоторые операционные системы, особенно Windows Vista , Windows 7 , Windows 8 , Windows 8.1 и Windows 10 , не настраиваются для загрузки драйвера AHCI при загрузке, если контроллер SATA не находился в режиме AHCI во время установки операционной системы. Хотя эту проблему легко исправить, она остается постоянной проблемой стандарта AHCI.
Наиболее распространенным признаком операционной системы (или систем), установленных в режиме IDE (в некоторых реализациях встроенного ПО BIOS, иначе называемых «комбинированным режимом IDE»), является то, что системный диск обычно не загружается с последующим сообщением об ошибке, если контроллер SATA (в BIOS) случайно переключился в режим AHCI после установки ОС. В Microsoft Windows симптомом является цикл загрузки, который начинается с ошибки «синий экран», если ее не устранить.
С технической точки зрения, это ошибка реализации AHCI, которой можно избежать, но она еще не исправлена. В качестве временного решения Intel рекомендует перед установкой операционной системы сменить контроллер диска на AHCI или RAID. [3] (Также может потребоваться загрузить драйверы AHCI или RAID для конкретного набора микросхем во время установки, например, с USB-накопителя).
В Windows Vista и Windows 7 это можно исправить, настроив msahci
драйвер устройства на запуск во время загрузки (а не по требованию). Установка режима без AHCI (т. е. IDE или комбинированного режима) в BIOS позволит пользователю загрузиться в Windows и, таким образом, можно будет выполнить необходимые изменения в реестре . Следовательно, у пользователя есть возможность продолжить использование системы в комбинированном режиме или переключиться в режим AHCI. [8]
В частности, в Windows 10 и 8 это можно исправить, принудительно перезагрузив правильные драйверы в безопасном режиме . [9]
В Windows 8, Windows 8.1 и Windows Server 2012 драйвер контроллера изменился с msahci
на storahci
, [10] и процедуры обновления до контроллера AHCI аналогичны процедурам в Windows 7. [11] В Windows 8, 8.1 и Windows Server 2012, переход из режима IDE в режим AHCI без предварительного обновления реестра сделает загрузочный диск недоступным (т. е. приведет к повторяющемуся циклу загрузки, который начинается с ошибки «синий экран»).
В Windows 10 после перевода контроллера в режим AHCI, если ОС разрешена пару раз перезагрузиться после начала цикла загрузки, который начинается с BSOD INACCESSIBLE_BOOT_DEVICE, Windows представляет варианты восстановления. Если из дополнительных параметров выбран параметр «Восстановление при загрузке», Windows попытается устранить проблему, и компьютер начнет работать нормально.
Аналогичная проблема может возникнуть в системах Linux, если драйвер AHCI скомпилирован как модуль ядра , а не встроен в образ ядра , поскольку он может не быть включен в initrd (начальный RAM-диск), созданный, когда контроллер настроен для работы в Legacy. Режим. Решение состоит в том, чтобы либо создать новый initrd, содержащий модуль AHCI, либо встроить драйвер AHCI в образ ядра. [12]
Управление питанием осуществляется протоколом Agressive Link Power Management (ALPM).