ACPI

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

Специфікація Вдосконаленого інтерфейсу конфігурації та керування живленням (Advanced Configuration and Power Interface, ACPI) — відкритий промисловий стандарт, вперше випущений в грудні 1996 року, розроблений спільно компаніями HP, Intel, Microsoft, Phoenix та 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, GNU/Linux, FreeBSD, OpenBSD і NetBSD.

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

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

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

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

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

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

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

G0 — Working — нормальна робота.

G1 — (suspend, Sleeping, Sleeping Legacy) — машина вимкнена, проте поточний системний контекст (system context) збережений, робота м.б. продовжена без перезавантаження.

G2 — «soft-off», «soft power» — система повністю зупинена, але під напругою, готова включитися у будь-який момент. Системний контекст (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, то даної гілки реєстру не буде.

(див. power management sleep mode suspend mode ZAW).

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