ACPI

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Экран "Теперь питание компьютера можно отключить" в Windows 9x на компьютерах без 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 является версия 6.2a, выпущенная организацией UEFI Forum в сентябре 2017 года.[1]

Задача ACPI — обеспечить взаимодействие между операционной системой, аппаратным обеспечением и BIOS материнской платы.

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

Наиболее известной частью стандарта ACPI является управление питанием, имеющее два значительных усовершенствования по сравнению с предшествующими стандартами. Во-первых, концепция ACPI передаёт управление питанием операционной системе (ОЅ). Такая модель выгодно отличается от существовавшей до этого модели APM, в которой за управление питанием ответственен BIOS материнской платы, а возможности ОС в этом отношении сильно ограничены. В модели ACPI BIOS предоставляет операционной системе методы для прямого детализированного управления аппаратным обеспечением. Таким образом, ОС получает практически полный контроль над энергопотреблением.

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

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

В наши дни различные версии ACPI поддерживаются многими ОС — в том числе всеми версиями Microsoft Windows, начиная с Windows 98, системами GNU/Linux, FreeBSD, OpenBSD, NetBSD и eComStation.

Технические подробности

[править | править код]

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

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

Другие таблицы хранят динамические данные, которые зависят, например, от установок BIOS и комплектации материнской платы. Такие таблицы формируются BIOS на этапе загрузки системы до передачи управления ОС.

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

Глобальные состояния

[править | править код]

Выделяют следующие основные состояния «системы в целом».

  • G0 (S0) (Working) — нормальная работа.
  • G1 (Suspend, Sleeping, Sleeping Legacy) — машина выключена, однако текущий системный контекст (system context) сохранён, работа может быть продолжена без перезагрузки. Для каждого устройства определяется «степень потери информации» в процессе засыпания, а также где информация должна быть сохранена и откуда будет прочитана при пробуждении, и время на пробуждение из одного состояния до другого (например, от сна до рабочего состояния). Выделяют 4 состояния сна:
    • S1 («Power on Suspend» (POS) в BIOS) — состояние, при котором все процессорные кэши сброшены и процессоры прекратили выполнение инструкций. Однако питание процессоров и оперативной памяти поддерживается; устройства, которые не обозначили, что они должны оставаться включенными, могут быть отключены;
    • 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, начиная с Vista, поддерживает «Гибридный спящий режим», сочетающий в себе преимущества S1/S3 (быстрота пробуждения) и S4 (защищённость от сбоев электропитания). Также он реализован в GNU/Linux (pm-suspend-hybrid), аналогичная реализация в Mac OS X имеет название Safe Sleep.

Состояния центрального процессора

[править | править код]

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

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

Состояния устройств

[править | править код]

Выделяют четыре состояния функционирования других устройств (монитор, модем, шины, сетевые карты, видеокарта, диски, флоппи и т. д.) — от D0 до D3.

  • D0 — полностью оперативное состояние, устройство включено.
  • D1 и D2 — промежуточные состояния, активность определяется устройством.
  • D3 — устройство выключено.

Состояния производительности

[править | править код]

Пока процессор или устройство функционирует (C0 и D0, соответственно), он может находиться в одном или нескольких состояниях производительности. Эти состояния зависят от конкретной реализации. Так, P0 — всегда наивысший уровень производительности; с P1 до Pn последовательное снижение уровня производительности, до предела реализации, где n не превышает 16.

P-состояния также известны как SpeedStep в процессорах Intel, как PowerNow! или Cool'n'Quiet в процессорах AMD, и как LongHaul в процессорах VIA.

  • P0 максимальная производительность и частота
  • P1 меньше, чем P0, напряжение/частота урезаны
  • P2 меньше, чем P1, напряжение/частота урезаны
  • Pn меньше, чем P(n-1), напряжение/частота урезаны

Примечания

[править | править код]
  1. Advanced Configuration and Power Interface Specification, Version 6.2a (PDF). UEFI.org (сентябрь 2017). Архивировано 27 января 2018 года.