ACPI/ru

From KolibriOS wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Описание

ACPI - Advanced Configuration and Power Interface (интерфейс расширенного конфигурирования и управления питанием). Его задача - обеспечить взаимодействие между операционной системой, аппаратным обеспечением и BIOS системной платы.

Принцип работы

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

Что должно быть реализовано

  • Use system address map reporting interfaces to get the system address map on Intel Architecture (IA) platforms:
    • INT 15H, E820H - Query System Address Map interface
    • EFI GetMemoryMap() Boot Services Function
  • Находить и применять таблицы ACPI - System Description Tables
  • AML-интерпретатор.
  • Поддержка программной модели событий ACPI включая прерывания SCI, управления фиксированными событиями, прерываниями EC, и поддержкой динамических устройств
  • Присвоить номера и выполнить начальную настройку устройств материнской платы как это описано в ACPI Namespace.
  • Внедрить поддержку следующих устройств
  • Поддержка термальной модели ACPI
  • Реализация Global Lock.
  • Поддержка управления питанием

Состояния

Центральный процессор, устройства и вся система "в целом" могут находиться в различных состояниях, определённых в спецификации ACPI.

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

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

  • G0 (S0) Нормальное
  • G1 Сон (подразделяется на четыре промежуточных с S1 по S4)
    • S1: Все кэши процессора сброшены, выполнение инструкций остановлено. Питание для процессора и памяти включено; состояние других устройств не определено
    • S2: Отключен процессор
    • S3: (Standby, Sleep, или Suspend to RAM) Включена оперативная память
    • S4: (Hibernation или Suspend to Disk) Все содержимое оперативной памяти сохранено на диск и система выключена.
  • G2 (S5) Программное выключение. G2 большей частью то же самое что и G3, но некоторые компоненты остаются включенными, для того чтобы система могла "проснуться" от событий клавиатуры, таймера, модема, сетевой карты или любого USB устройства.
  • G3 Физическое выключение. Полное отключение питания всех компонентов системы, система готова к безопасной разборке (как правило работает только таймер RTC, питаемый батарейкой).

Состояния процессора:

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

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

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

Таблицы ACPI

Типы таблиц:

  • Root System Description Pointer (RSDP)
  • System Description Table Header (SDTH)
  • Root System Description Table (RSDT)
  • Fixed ACPI Description Table (FADT)
  • Firmware ACPI Control Structure (FACS)
  • Differentiated System Description Table (DSDT)
  • Secondary System Description Table (SSDT)
  • Multiple APIC Description Table (MADT)
  • Smart Battery Table (SBST)
  • Extended System Description Table (XSDT)
  • Embedded Controller Boot Resources Table (ECDT)
  • System Locality Distance Information Table (SLIT)
  • System Resource Affinity Table (SRAT)