TGViewer
Записки IT специалиста Записки IT специалиста @interface31 · 8.99K subscribers
Post #5807 2.71K
Эволюция энергосбережения в архитектуре x86 или что такое ACPI

История развития платформы x86 непрерывно связана с борьбой за энергосбережение. Особую актуальность этот вопрос приобрел в 90-е, когда начался стремительный рост таковых частот процессоров, вылившийся в конце десятилетия в «гонку гигагерц».

Процессоры постоянно становились быстрее, производительнее и горячее. Причем сильно так горячее, старожилы должны помнить бодрое видео, на котором снимают радиатор с работающих процессоров Intel или AMD.

И если Intel худо-бедно переживал такую ситуацию, то процессоры Athlon от AMD мгновенно сгорали. Это самое видео мы прикрепили к заметке. И с этим надо было что-то делать.

А чтобы понять, что именно нужно делать немного отвлечемся от компьютеров и вспомним физику. Тепловыделение процессора прямо пропорционально частоте работы процессора, но при этом имеет квадратичную зависимость от напряжения питания.

Если мы снизим на 25% частоту процессора на такое же значение снизится и потребление. А вот при снижении на 25% напряжения мы получим уже 44% экономии, а снизив одновременно и частоту, и напряжение получим целых 58% снижения потребления.

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

1️⃣ Для этого в 1996 году был принят стандарт ACPI 1.0, который вводил новые универсальные состояния системы.

🔹 Начнем с S-states (System states) – глобальные состояния всей платформы, которые подразумевали следующие варианты:

▫️ S0 — работа
▫️ S3 (Suspend to RAM) — сон с сохранением в памяти
▫️ S4 (Hibernate) — сохранение на диск
▫️ S5 — мягкое выключение (дежурный режим БП и доступен WoL)

🔹 Одновременно с ним вводились состояния простоя - C-states (CPU Idle states), которые существовали только внутри режима S0:

▫️ C0 — исполнение инструкций
▫️ C1 (Halt) — базовый простой с мгновенным пробуждением
▫️ C2/C3 — более глубокие состояния с отключением тактового генератора и кэшей

Последние режимы дают значительно большую экономию, но и увеличивают задержку пробуждения.

Все это было хорошо, но не решало проблемы энергосбережения в рабочем режиме, как только процессор выходил из состояния бездействия он начинал активно потреблять энергию вне зависимости от реальной нагрузки.

2️⃣ В ответ появились первые проприетарные технологии Intel SpeedStep (1999) и AMD PowerNow! (1999), которые умели управлять частотой и напряжением питания в зависимости от реальной нагрузки.

🔹 В результате в 2000 году появился новый стандарт ACPI 2.0, который ввел понятие P-state (CPU Performance States), которые существовали внутри уровня C0.

Первоначально предполагались:

▫️ P0 – полная производительность процессора
▫️ P1/P2 – энергосберегающие режимы со снижением частоты и напряжения процессора

В первом приближении это решило проблему неэффективного тепловыделения, теперь процессоры при низкой нагрузке и в простое могли уходить в энергоэффективные режимы, но особой гибкости здесь не было.

Процессор либо работал на полную, либо находился в одном из двух ограниченных режимов.

3️⃣ В 2004 году увидел свет стандарт ACPI 3.0, который ввел в прошивку BIOS таблицы DSDT, в которые вендором записывались все возможные сочетания частоты и напряжения, и система в зависимости от нагрузки могла выбирать один из них.

Здесь мы вплотную приблизились к современным платформам, которые большую часть времени пребывают в режиме низкой частоты и напряжения питания, обеспечивая отличную энергоэффективность, но при необходимости могут быстро нарастить производительность.
  • 👍 40
  • 🔥 16
  • 👌 3
  • ⚡ 2
  • 🤮 2
More from @interface31
  1. Sep 30, 2026Влияние антивирусов на производительность 1С После выхода нашего материала: 🔹 Почему торм…
  2. Sep 30, 2026Бесплатный урок: права доступа к файлам в Linux 🐧 Разбор того, как устроены права в Linux…
  3. Sep 30, 2026Termshot – скриншоты для вашего терминала Скриншоты? В терминале? Да ну, зачем это нужно……
  4. Sep 29, 2026Как легко и просто «сломать» информационную базу 1С:Предприятие, не снимая «замочка» и нич…
  5. Sep 29, 2026Старое железо – путь в никуда Каждый раз при разговоре о старых системах приходится слышат…
  6. Sep 28, 2026Как провайдер определит, что у меня Mikrotik Таким вопросом задаются многие читатели и оче…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →