Advanced Host Controller Interface
Advanced Host Controller Interface (AHCI) — механізм, який використовується для підключення накопичувачів даних стандарту Serial ATA, що дозволяє користуватися розширеними функціями, такими, як вбудована черговість команд (NCQ) і гаряча заміна.
AHCI, по суті, є стандартизацією дешевих версій контролерів[чого?], що дозволяє обійтися без установки додаткових драйверів. AHCI також дозволяє використовувати твердотілі накопичувачі SSD; проте він був розроблений для механічних HDD і при роботі з SSD не дозволяє використовувати всі їхні переваги, на відміну від новішого покоління, NVMe.[1]
Опис
Протокол AHCI з'явився в якості заміни застарілого ATA, який підтримує сумісність починаючи від оригінальної IBM PC/AT. Так, контролери ATA підтримують прямий доступ до пам'яті тільки як доповнення; інший недолік ATA — відсутність можливості гарячої заміни (при тому, що обладнання eSATA її підтримує) і черг команд: на одному каналі (в разі SATA кожен пристрій є один канал) може одночасно виконуватися тільки одна команда. Таким чином, залучення можливості ATA NCQ неможливо на класичному контролері ATA навіть за підтримки її диском.
До появи AHCI для розв'язання цієї проблеми використовувалися окремі плати/чіпи контролерів[чого?] (вироблені фірмами Promise, HighPoint та іншими), часто встановлені в материнську плату поряд з класичним ATA, вбудованим в південний міст; часто ці контролери сприймалися операційною системою як контролери SCSI та підтримували всі багаті можливості протоколу SCSI.
AHCI, по суті, є стандартизацією дешевих версій контролерів[яких?] [Уточнити] (і дозволяє обійтися без установки додаткових драйверів для них).
AHCI може одночасно обробляти 32 запити (NVMe — до 65536, а проте, накопичувачі, які використовують NVMe-контролер, споживають у 2-3 рази більше електроенергії, ніж аналогічні на базі AHCI).
Застосування
Підтримка AHCI існує не у всіх чіпах південних мостів, але навіть при її реалізації в чіпі виробник материнської плати може не реалізувати її в BIOS, і вона буде недоступна. Іноді проблема вирішується оновленням BIOS, існують неофіційні версії BIOS для багатьох материнських плат. У деяких випадках (Asus P5KC) підтримку AHCI неможливо увімкнути на південному мості, але можна включити на окремому чіпі, що працює на застарілому Parallel ATA роз'ємі всередині корпусу або через зовнішній eSATA-роз'єм (виходить, що внутрішні жорсткі диски не можуть використовувати AHCI, а підключений по eSATA зовнішній — можуть).
Багато контролерів SATA можуть вмикати простий режим AHCI або з підтримкою RAID. Intel рекомендує на своїх материнських платах вибирати режим з підтримкою RAID при включеному AHCI для більшої гнучкості[2].
Вбудована підтримка AHCI включена в Mac OS X, починаючи з версії 10.4.4 для Intel, Microsoft Windows Vista і наступних (існує також альтернативний драйвер UniATA[3] зі вільною ліцензією, який реалізує підтримку AHCI для версій ОС Windows від Windows NT 3.51 до Windows 7[4]), Linux, починаючи з ядра 2.6.19[5], 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 в операційній системі і знизиться продуктивність.
- У Windows XP можна увімкнути AHCI вручну (вимагає копіювання
msahci.sys
і внесення його в реєстр у двох місцях — у список служб і вCriticalDeviceDatabase
), або за допомогою засобів на зразок nLite драйвер AHCI можна заздалегідь вмонтувати в дистрибутив Windows, що дозволить їй зберегти працездатність при перемиканні завантажувального диска на контролер в режимі AHCI. При першому завантаженні на новому контролері диска операційна система визначить його як «нове обладнання» і запропонує встановити драйвер, необхідно погодитися і перезавантажити машину після цього. Крім того, такий же спосіб підходить для міграції завантажувального образу операційної системи на абсолютно новий контролер диска, в тому числі SCSI — Promise, HighPoint, Adaptec тощо. Операції необхідно зробити на образі, вже розгорнутому на новий майбутній завантажувальний диск, в редакторі реєстру, використовуючи функцію завантаження гілки реєстру (англ. Load Hive). Багато програм створення/відновлення образів здатні робити таке автоматично. - У Windows 8 і Windows 10 після включення режиму AHCI в BIOS досить завантажитися в безпечному режимі, після чого Windows встановить необхідні драйвери. У разі, якщо при завантаженні ОС запустити безпечний режим не вдається, можна зробити це стандартною програмою bcdedit[6]. Якщо bcdedit не вийшло запустити, можна також натиснути WIN + R, запустити MSConfig і вибрати на вкладці «завантаження» запуск в безпечному режимі з мінімальною конфігурацією.
- У Windows 7/Windows Vista перед включенням режиму AHCI в BIOS необхідно активувати драйвер AHCI (змінити значення в реєстрі або запустити безплатний засіб від Microsoft)[7].
- У версіях OS Windows до Windows 7 (Windows XP і молодше) до перемикання встановити драйвер контролера AHCI, після чого перемкнути режим SATA в AHCI в BIOS[8].
- У деяких випадках можна встановити плату розширення з зовнішнім контролером SATA, що підтримує режим AHCI, або дозволити в BIOS додатковий чіп контролера, зазвичай працює на зовнішній eSATA роз'єм, після чого ОС встановить драйвер такого контролера, а при подальшому перемиканні завантажувального диска на такий же контролер збереже здатність до завантаження.
- Замінити стандартний драйвер контролера жорсткого диска на драйвер UniATA[4].
Апаратна підтримка
AHCI вбудований в чіпсети Intel починаючи з деяких версій ICH6 і в усі чіпсети для платформ Core i3/i5/i7. Для платформ Core AHCI був реалізований в наступних контролерах концентраторів[9] :
- 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
Примітки
- Обер, Михаил. Страница 3: В чем разница между AHCI и NVMe? // Выбираем SSD : обзор технологий на рынке и сравнительные тесты. — XX hardware LUXX. — 2016. — 2 січня.
- Intel Matrix Storage Technology — Changing and/or choosing Serial ATA Modes // Intel, Inc. (англ.)
- UniATA — Universal ATA driver for Windows
- Alter (Александр А. Телятников) (3 квітня 2019). UniATA Universal ATA driver for Windows. Alter.Org.UA.
- Serial ATA (SATA) Linux hardware/driver status report. Serial ATA (SATA) for Linux (англ.). Dunvegan Media. Архів оригіналу за 12 березня 2007. Процитовано 27 квітня 2019.
- Changing the ATA Drive setting in System Bios causes reboot loop on Windows 8. — Microsoft Knowlege Base. — 2012. — 2 листопада.
- KB922976, 2013.
- Praveen Veerapur. How do I change Windows XP to use AHCI disk mode rather than IDE mode for Dual boot?. Microsoft Community. Проігноровано невідомий параметр
|accessyear=
(довідка) - Технология хранения Intel Rapid. Поддерживаемые Наборы микросхем для AHCI. Intel Corporation.
Посилання
- AHCI Specification for Serial ATA // Advanced Host Controller Interface Specification : [англ.]. — Intel Corporation.
- Изменение режима диска ATA в BIOS системы вызывает постоянную перезагрузку Windows 8 = Error message occurs after you change the SATA mode of the boot drive. — Microsoft Knowlege Base. — 2013. — 11 листопада.