Advanced Power Management
- 1 year ago
- 0
- 0
ACPI ( англ. Advanced Configuration and Power Interface — усовершенствованный интерфейс управления конфигурацией и питанием) — открытый промышленный стандарт , впервые выпущенный в декабре 1996 года и разработанный совместно компаниями HP , Intel , Microsoft , и Toshiba , который определяет общий интерфейс для обнаружения аппаратного обеспечения, управления питанием и конфигурации материнской платы и устройств .
Спецификация 2.0 была представлена в сентябре 2000 года . Она распространяется на более широкий спектр компьютеров, включая корпоративные серверы, настольные системы и ноутбуки. Кроме того, в ACPI 2.0 добавлена поддержка 64-разрядных микропроцессоров для серверов, поддержка различных типов памяти, устройств PCI и PCI-X .
Версия спецификации 3.0b была выпущена 10 октября 2006 года .
На настоящий момент последней версией спецификации ACPI является версия 6.2a, выпущенная организацией UEFI Forum в сентябре 2017 года.
Задача 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 .
Выделяют следующие основные состояния «системы в целом».
Дополнительно — технология OnNow от Microsoft (Расширения S1-S4 состояния G1). Также Windows, начиная с Vista, поддерживает «Гибридный спящий режим», сочетающий в себе преимущества S1/S3 (быстрота пробуждения) и S4 (защищённость от сбоев электропитания). Также он реализован в GNU/Linux (pm-suspend-hybrid), аналогичная реализация в Mac OS X имеет название Safe Sleep.
Выделяют четыре состояния функционирования процессора (от C0 до C3).
Выделяют четыре состояния функционирования других устройств (монитор, модем, шины, сетевые карты, видеокарта, диски, флоппи и т. д.) — от D0 до D3.
Пока процессор или устройство функционирует (C0 и D0, соответственно), он может находиться в одном или нескольких состояниях производительности . Эти состояния зависят от конкретной реализации. Так, P0 — всегда наивысший уровень производительности; с P1 до P n последовательное снижение уровня производительности, до предела реализации, где n не превышает 16.
P-состояния также известны как SpeedStep в процессорах Intel , как PowerNow! или Cool'n'Quiet в процессорах AMD , и как в процессорах VIA .