ACPI

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Специфікація Вдосконаленого інтерфейсу конфігурації та керування живленням (Advanced Configuration and Power Interface, ACPI) — відкритий промисловий стандарт, вперше випущений в грудні 1996 року, розроблений спільно компаніями HP, Intel, Microsoft, Phoenix[en] та Toshiba, який визначає спільний інтерфейс для виявлення апаратного забезпечення, керування живленням та конфігурації материнської плати та пристроїв.

Специфікація 2.0 була представлена у вересні 2000 року. 2.0 поширюється на ширший спектр комп'ютерів, включаючи корпоративні сервери, настільні системи та ноутбуки. Крім того, в ACPI 2.0 додано підтримку 64-розрядних мікропроцесорів для серверів, різних типів пам'яті, пристроїв PCI і PCI-X.

Остання версія специфікації ACPI — 5.0, випущена 6 грудня 2011 року.

Завдання ACPI — забезпечити взаємодію між операційною системою, апаратним забезпеченням та BIOS материнської плати.

ACPI прийшло на зміну APM (Advanced Power Management).

Вступ[ред. | ред. код]

Найвідоміша частина стандарту ACPI — це керування живленням, яке має два значні поліпшення в порівнянні з іншими старішими аналогічними стандартами. По-перше, ACPI проголошує концепцію, в якій в основі керування живленням є ОС. Така модель вигідно відрізняється від моделі APM, що існувала до цього, в якій за керування живленням відповідальний BIOS материнської плати, а ОС має лише обмежений вплив на цей процес. У моделі ACPI BIOS надає ОС методи для прямого деталізованого керування апаратним забезпеченням. Таким чином, ОС отримує практично повний контроль над енергоспоживанням.

Інша важлива частина цієї специфікації — це внесення можливостей по керуванню живленням на серверах та настільних комп'ютерах, які досі були доступні тільки на портативних комп'ютерах. Наприклад, система може бути переведена в стан надзвичайно низького енергоспоживання, в якому живлення подається лише на оперативну пам'ять (а може навіть вона знаходитися без живлення), але при цьому переривання деяких пристроїв (годинник реального часу, клавіатура, модем і т. д.) можуть досить швидко вивести систему з такого стану в нормальний робочий режим (тобто «пробудити» систему).

Окрім вимог до програмного інтерфейсу ACPI також вимагає спеціальної підтримки від апаратного забезпечення. Таким чином, ОС, чипсет материнської плати, додаткові компоненти та навіть центральний процесор повинні мати підтримку ACPI.

В наші дні різні версії ACPI підтримуються багатьма ОС, у тому числі, Microsoft Windows 4.10 «98» та 4.90 «ME», Windows NT 5.0 «2000» і новіше, EComStation[en], GNU/Linux, FreeBSD, OpenBSD і NetBSD.

Технічні деталі[ред. | ред. код]

Інтерфейс ACPI організовується шляхом розміщення в певній області оперативної пам'яті декількох таблиць, що містять опис апаратних ресурсів і програмних методів управління ними. Кожний тип таблиці має певний формат, описаний в специфікації. Крім того, таблиці, що містять методи керування пристроями і обробники подій ACPI, містять код мовою AML — машинний незалежний набір інструкцій, представлений в компактній формі. Операційна система, що підтримує ACPI, містить інтерпретатор AML, який транслює інструкції AML в інструкції центрального процесора, виконуючи таким чином методи або обробники подій.

Деякі з цих таблиць повністю або частково зберігають статичні дані в тому змісті, що від запуску до запуску системи, вони не змінюються. Статичні дані, як правило, створюються виробником материнської плати або BIOS і описуються спеціальною мовою ASL, а потім компілюються в представлення на AML.

Інші таблиці зберігають динамічні дані, які залежать, наприклад, від налаштувань BIOS і комплектації материнської плати. Такі таблиці формуються на етапі виконання POST перед завантаженням операційної системи. Роль ОС в цій моделі полягає в тому, що вона переводить різні компоненти апаратного забезпечення з одного стану (наприклад, нормальний режим роботи) в інший (наприклад, режим зниженого енергоспоживання). Перехід з одного стану в інше відбувається, як правило, за подією. Наприклад, падіння температури на ядрі процесора є подією, за якою ОС може викликати метод зменшення швидкості обертання вентилятора. Інший приклад: користувач дав явну вказівку переходу системи в режим гібернації (у Windows XP - "Спящий режим") зі збереженням оперативної пам'яті на диск, а через деякий час адміністратор мережі провів включення системи за допомогою функції Wake-on-LAN.

Стан[ред. | ред. код]

Глобальні стани[ред. | ред. код]

Виділяють наступні основні стани «системи в цілому»:

  • G0 — Working — нормальна робота.
  • G1 — (suspend, Sleeping, Sleeping Legacy) — машина вимкнена, проте поточний системний контекст (system context) збережений, робота може бути продовжена без перезавантаження.
  • G2 — «soft-off» — система повністю зупинена, але під напругою, готова включитися у будь-який момент. Системний контекст (system context) загублений.
  • G3 — «Mechanical off» — механічне виключення системи, блок живлення ATX відключений.

Крім того виділяють 5 станів сну (sleeping states) від S1 до S5.

Для кожного пристрою визначається «ступінь втрати інформації» в процесі засипання (а також де інформація має бути збережена і звідки буде прочитана при пробудженні), і визначається час на пробудження з одного стану до іншого (наприклад, від сну до робочого стану)

Додатково — технологія OnNow (Гібернація) від Microsoft (глобальні стани системи G0-G3 і ділення G1 (сон) на під стани S1-S4)

Стани центрального процесора[ред. | ред. код]

4 стани функціонування процесора (від C0 до C3)

Стани пристроїв[ред. | ред. код]

4 стани функціонування інших пристроїв (монітор, модем, шини, мережеві карти, відеокарта, диски, флопі й так далі.). Від D0 до D3.

Таблиці[ред. | ред. код]

Різне[ред. | ред. код]

Для Windows 2000/XP Якщо система налагоджена як ACPI, то в реєстрі міститиметься гілка HKEY_LOCAL_MACHINE\HARDWARE\ACPI\… Якщо система налагоджена як APM, то даної гілки реєстру не буде.

Див. також[ред. | ред. код]