ACPI

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

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

Версія специфікації 3.0b була випущена 10 жовтня 2006.

На даний момент останньою версією специфікації ACPI є версія 5.0, випущена 6 грудня 2011. [1]

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

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


1. Введення

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

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

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

У наші дні різні версії ACPI підтримуються багатьма ОС - в тому числі, усіма версіями Microsoft Windows, починаючи з Windows 98, системами GNU / Linux, FreeBSD, OpenBSD, NetBSD і eComStation.


2. Технічні подробиці

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

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

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

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


2.1. Стану

2.1.1. Глобальні стану

Виділяють наступні основні стани "системи в цілому".

  • G0 (S0) (Working) - нормальна робота.
  • G1 (Suspend, Sleeping, Sleeping Legacy) - машина вимкнена, однак поточний системний контекст (system context) збережений, робота може бути продовжена без перезавантаження. Для кожного пристрою визначається "ступінь втрати інформації" в процесі засипання, а також де інформація повинна бути збережена і звідки буде лічена при пробудженні і час на пробудження з одного стану до іншого (наприклад, від сну до робочого стану). Виділяють 4 станів сну:
    • S1 - стан при якому всі процесорні кеші скинуті і процесори припинили виконання інструкцій. Однак, харчування процесорів і оперативної пам'яті підтримується; пристрої, які не позначили, що вони повинні залишатися включеними, можуть бути відключені;
    • S2 - більш глибокий стан сну, ніж S1, коли центральний процесор відключений, звичайно, однак, не використовуване;
    • S3 ("Suspend to RAM" (STR) в BIOS, "Режим очікування" ("Standby") у версіях Windows аж до Windows XP і в деяких варіаціях Linux, "Sleep" в Windows Vista і Mac OS X, хоча в специфікаціях ACPI згадується тільки як S3 і Sleep) - в цьому стані на оперативну пам'ять (ОЗП) продовжує подаватися живлення і вона залишається практично єдиним компонентом, що споживає енергію. Так як стан операційної системи і всіх додатків, відкритих документів і т. д. зберігається в оперативній пам'яті, користувач може відновити роботу точно на тому місці, де він її залишив - стан оперативної пам'яті при поверненні з S3 те ж, що і до входу в цей режим. (У специфікації зазначено, що S3 досить схожий на S2, тільки трохи більше компонентів відключаються в S3.) S3 має дві переваги над S4: комп'ютер швидше повертається в робочий стан, і, друге, якщо запущена програма (відкриті документи і т. д. ) містить приватну інформацію, то ця інформація не буде примусово записана на диск. Однак, дискові кеші можуть бути скинуті на диск для запобігання порушення цілісності даних у випадку, якщо система не прокидається, наприклад, через збій харчування;
    • S4 ("Сплячий режим" (Hibernation) в Windows, "Safe Sleep" в Mac OS X, також відомий як "Suspend to disk", хоча специфікація ACPI згадує тільки термін S4) - в цьому стані всі вміст оперативної пам'яті зберігається в енергонезалежній пам'яті, такої як жорсткий диск: стан операційної системи, всіх додатків, відкритих документів і т . д. Це означає, що після повернення з S4, користувач може відновити роботу з місця, де вона була припинена, аналогічно режиму S3. Різниця між S4 і S3, крім додаткового часу на переміщення вмісту оперативної пам'яті на диск і назад, - в тому, що перебої з живленням комп'ютера в S3 приведуть до втрати всіх даних в оперативній пам'яті, включаючи всі незбережені документи, в той час як комп'ютер в S4 цього не схильний. S4 вельми відрізняється від інших станів S і сильніше S1-S3 нагадує G2 Soft Off і G3 Mechanical Off. Система, що знаходиться в S4, може бути також переведена в G3 Mechanical Off (Механічне вимикання) і все ще залишатися S4, зберігаючи інформацію про стан так, що можна відновити операційне стан після подачі живлення.
  • G2 (S5) (soft-off) - м'яке (програмне) вимикання; система повністю зупинена, але під напругою, готова включитися в будь-який момент. Системний контекст загублений.
  • G3 (mechanical off) - механічне вимикання системи; блок живлення ATX відключений.

Додатково - технологія OnNow від Microsoft (Розширення S1-S4 стану G1). Також Windows 7 підтримує "Гібридний сплячий режим", що поєднує в собі переваги S1/S3 (швидкість пробудження) і S4 (захищеність від збоїв електроживлення). Так само він реалізований в GNU / Linux (pm-suspend-hybrid), аналогічна реалізація в Mac OS X має назву Safe Sleep.


2.1.2. Стану центрального процесора

Виділяють чотири стану функціонування процесора (від C0 до C3).

  • C0 - оперативний (робочий) режим.
  • C1 (відомо як Halt) - стан у якому процесор не виконує інструкції, але може негайно повернутися в робочий стан. Деякі процесори, наприклад Pentium 4, також підтримують стан Enhanced C1 (C1E), для більш низького енергоспоживання.
  • C2 (відомо як Stop-Clock) - стан у якому процесор виявляється додатками, але для переходу в робочий режим потрібен час.
  • C3 (відомо як Sleep) - стан у якому процесор відключає власний кеш, але готовий до переходу в інші стани.

2.1.3. Стану пристроїв

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

  • D0 - повністю оперативний стан, пристрій увімкнено.
  • D1 і D2 - проміжні стани, активність визначається пристроєм.
  • D3 - пристрій вимкнений.

Примітки

  1. "Current ACPI Specification (Revision 5.0)" - www.acpi.info / spec.htm (Англ.) . The Advanced Configuration and Power Interface Specification, Revision 5.0 describes the structures and mechanisms necessary to design operating system-directed power management and make advanced configuration architectures possible (2011-12-6). Читальний - www.webcitation.org/69iA7SDfZ з першоджерела 6 серпня 2012.