Введение

Компьютерный стандарт для SATA-контроллеров хоста

Интерфейс расширенного контроллера хоста (AHCI) — это технический стандарт, разработанный Intel, который определяет интерфейс уровня регистров контроллеров хоста Serial ATA (SATA) независимо от конкретной реализации в чипсетах материнских плат. Текущая версия спецификации — 1.3.1.

Режимы работы

Многие контроллеры SATA предлагают выбираемые режимы работы: эмуляцию устаревшего Parallel ATA (чаще называемую режимом IDE), стандартный режим AHCI (также известный как Native Mode) или RAID, специфичный для производителя (который обычно включает AHCI для использования его возможностей). Intel рекомендует выбирать режим RAID на своих материнских платах (который также включает AHCI), а не режим AHCI/SATA для обеспечения максимальной гибкости. Режим IDE – это механизм программной обратной совместимости, предназначенный для работы контроллера SATA в устаревших операционных системах, не поддерживающих SATA, или в тех, для которых отсутствует драйвер, обеспечивающий поддержку SATA. При настройке контроллера SATA для работы в режиме IDE количество подключаемых устройств хранения данных обычно ограничено четырьмя (два канала IDE, главное и подчиненное устройство, с возможностью подключения до двух устройств на канал), в то время как в режиме AHCI можно подключить до 32 устройств/портов. Однако интерфейсы SATA чипсета могут эмулировать более одного "контроллера IDE" при работе в режиме IDE.

Поддержка операционной системы

AHCI поддерживается из коробки в Windows Vista и более поздних версиях, операционных системах на базе Linux (начиная с версии 2.6.19 ядра), OpenBSD (начиная с версии 4.1), NetBSD (начиная с версии 4.0), FreeBSD (начиная с версии 8.0), macOS, GNU Mach, ArcaOS, eComStation (начиная с версии 2.1) и Solaris 10 (начиная с версии 8/07). 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 перед установкой операционной системы. В частности, с Windows 10 и 8, это можно исправить, заставив правильные драйверы перезагрузиться в безопасном режиме. В Windows 8, Windows 8.1 и Windows Server 2012 драйвер контроллера изменился с msahci на storahci, а процедуры обновления контроллера AHCI аналогичны процедурам Windows 7. В Windows 8, 8.1 и Windows Server 2012, переход из режима IDE в режим AHCI без предварительного обновления реестра сделает загрузочный диск недоступным (т.е. в результате повторяющегося цикла загрузки, который начинается с ошибки синего экрана). В Windows 10, после изменения контроллера в режим AHCI, если ОС разрешается перезагрузка несколько раз после начала цикла загрузки, который начинается с BSOD "Устройство для загрузки недоступно", Windows предоставляет параметры восстановления. Из расширенных параметров, если выбрана опция "Восстановление при запуске", Windows пытается исправить проблему, и компьютер начинает нормально работать. Аналогичная проблема может возникнуть в системах Linux, если драйвер AHCI компилируется как модуль ядра, а не встроен в образ ядра, поскольку он может не быть включен в initrd (первоначальный RAM-диск), созданный при настройке контроллера для запуска в режиме Legacy. Решение состоит в том, чтобы создать новый initrd, содержащий модуль AHCI, или встроить драйвер AHCI в образ ядра.

Управление энергопотреблением

Управление питанием осуществляется протоколом агрессивного управления питанием каналов связи (ALPM).