ACPI/ru: Difference between revisions

From KolibriOS wiki
Jump to navigation Jump to search
(Добавлено краткое описание AML)
 
(11 intermediate revisions by 4 users not shown)
Line 1: Line 1:
=== Описание ===
ACPI - Advanced Configuration and Power Interface (интерфейс расширенного конфигурирования и управления питанием). Его задача - обеспечить взаимодействие между операционной системой, аппаратным обеспечением и BIOS системной платы.
ACPI - Advanced Configuration and Power Interface (интерфейс расширенного конфигурирования и управления питанием). Его задача - обеспечить взаимодействие между операционной системой, аппаратным обеспечением и BIOS системной платы.
<!-- Asper: Нужно более развёрнутое объяснение -->


Спецификация ACPI определяет следующие семь глобальных состояний:
=== Принцип работы ===
1.G0 (S0) Нормальное
Интерфейс ACPI организуется путём размещения в определённой области оперативной памяти нескольких таблиц, содержащих описание аппаратных ресурсов и программных методов управления ими. Таблицы, содержащие методы управления устройствами и обработчики событий ACPI, содержат код на языке [[AML/ru|AML]] (ACPI Machine Language). Интерпретатор AML, который транслирует инструкции AML в инструкции центрального процессора, выполняя таким образом методы или обработчики событий.
2. G1 Сон (подразделяется на четыре промежуточных с S1 по S4)
На практике таблицы пишуться на языке [[ASL/ru|ASL]] и компилируются в AML.
2a. S1: Все кэши процессора сброшены, выполнение инструкций остановлено. Питание для процессора и памяти включено; состояние других устройств не определено
2b. S2: Отключен процессор
2c. S3: (Standby, Sleep, или Suspend to RAM) Включена оперативная память
2d. S4: (Hibernation или Suspend to Disk) Все содержимое оперативной памяти сохранено на диск и система выключена.
3. G2 (S5) Программное выключение. G2 большей частью то же самое что и G3, но некоторые компоненты остаются включенными, для того чтобы система могла "проснуться" от событий клавиатуры, таймера, модема, сетевой карты или любого USB устройства.
4. G3 Физическое выключение. Полное отключение питания всех компонентов системы, система готова к безопасной разборке (как правило только работает только таймер RTC, питаемый батарейкой).


Состояния процессора:
=== Что должно быть реализовано ===
1.C0 — оперативный режим.
* Use system address map reporting interfaces to get the system address map on Intel Architecture (IA) platforms:
2.C1 (Halt) — состояние в котором процессор не исполняет инструкции, но может незамедлительно вернуться в рабочее состояние.
** [[INT 15H, E820H/ru|INT 15H, E820H]] - Query System Address Map interface
3.C2 (Stop-Clock) — состояние в котором процессор обнаруживается приложениями, но для перехода в рабочий режим требуется время.
** [[EFI/ru|EFI]] GetMemoryMap() Boot Services Function
4.C3 (Sleep) — состояние в котором процессор отключает собственный кэш, но готов к переходу в другие состояния.
* Находить и применять таблицы ACPI  - System Description Tables
* AML-интерпретатор.
* Поддержка программной модели событий ACPI включая прерывания [[SCI/ru|SCI]], управления фиксированными событиями, прерываниями [[EC/ru|EC]], и поддержкой динамических устройств
* Присвоить номера и выполнить начальную настройку устройств материнской платы как это описано в ACPI Namespace.
* Внедрить поддержку следующих устройств
** [[Embedded Controller/ru|Embedded Controller]]
** [[GPE Block/ru|GPE Block]]
** [[Module Device/ru|Module Device]]
* Поддержка термальной модели ACPI
* Реализация [[Global Lock/ru|Global Lock]].
* Поддержка управления питанием
<!-- Asper: Список необходимых требований для обеспечения реализации ACPI нужно уточнить. Строки на английском языке оставить для страниц на английском, на страницах "/ru" нужен соответствующий перевод. EC, SCI и т.д. есть во всех компьютерных системах на которых работает Колибри, или имеют более узкую направленность? Может стоить убрать соответствующие пункты? -->


Интерфейс ACPI организуется путём размещения в определённой области оперативной памяти нескольких таблиц, содержащих описание аппаратных ресурсов и программных методов управления ими. Таблицы, содержащие методы управления устройствами и обработчики событий ACPI, содержат код на языке AML (ACPI Machine Language). Интерпретатор AML, который транслирует инструкции AML в инструкции центрального процессора, выполняя таким образом методы или обработчики событий.
=== Состояния ===
На практике таблицы пишуться на языке ASL и компилируются в AML.
<!--Спецификация ACPI определяет следующие семь глобальных состояний: -->
Центральный процессор, устройства и вся система "в целом" могут находиться в различных состояниях, определённых в спецификации 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 ===
 
<!-- Asper: Может быть немного текста о самих таблицах, для чего используются порядок обнаружения и т.д.? -->
 
Типы таблиц:
* Root System Description Pointer ([[RSDP/ru|RSDP]])
* System Description Table Header ([[SDTH/ru|SDTH]])
* Root System Description Table ([[RSDT/ru|RSDT]])
* Fixed ACPI Description Table ([[FADT/ru|FADT]])
* Firmware ACPI Control Structure ([[FACS/ru|FACS]])
* Differentiated System Description Table ([[DSDT/ru|DSDT]])
* Secondary System Description Table ([[SSDT/ru|SSDT]])
* Multiple APIC Description Table ([[MADT/ru|MADT]])
* Smart Battery Table ([[SBST/ru|SBST]])
* Extended System Description Table ([[XSDT/ru|XSDT]])
* Embedded Controller Boot Resources Table ([[ECDT/ru|ECDT]])
* System Locality Distance Information Table ([[SLIT/ru|SLIT]])
* System Resource Affinity Table ([[SRAT/ru|SRAT]])
 
<!-- Asper: Статья в целом требует дальнейшего усовершенствования, пополнения, упорядочивания. -->
 
[[Category:Управление питанием]]
[[Category:Аппаратное обеспечение]]

Latest revision as of 04:36, 16 July 2010

Описание

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)