2. Спящий режим (Sleep S3 & Modern Standby S0ix)
Спящий режим переводит систему в состояние пониженного энергопотребления с сохранением рабочего сеанса пользователя. В современных системах применяются две различные архитектурные модели:
- Классический ACPI S3 (Suspend-to-RAM): питание подается исключительно на модули оперативной памяти (DRAM Self-Refresh), процессор и периферия обесточиваются, а аппаратный контекст регистров CPU сохраняется в таблицу FACS прошивки.
- Modern Standby (S0 Low Power Idle / S0ix): система непрерывно остается в состоянии
S0, но платформа динамически погружается в субсостояния глубокого аппаратного простоя (DRIPS) под управлением координатора зависимостей питания PDC и плагина PEP.
2.1 Архитектурная схема перехода в сон S3 и пробуждения
2.2 Декомпилированный C-код входа в сон: HaliAcpiSleep
HaliAcpiSleephal.dll
IRQL: HIGH_LEVEL (15)HAL ACPI Hardware State SwitchInternal
__int64 __fastcall HaliAcpiSleep(ULONG SleepState, PVOID Handler, PVOID Context, ULONG ProcessorCount, volatile signed __int32 *SyncBarrier) Низкоуровневая процедура аппаратного переключения чипсета и ядер процессора в ACPI S-состояния (S1–S4). Выполняет межъядерную синхронизацию, сброс кэшей (WBINVD), запись в регистры управления питанием PM1a_CNT/PM1b_CNT и обработку возобновления выполнения при пробуждении.
▶HaliAcpiSleephal.dll__fastcallINTERNAL
Развернуть псевдокод
Аппаратный перевод процессоров и чипсета в ACPI S-состояния и точка восстановления
2.3 Модель Modern Standby (S0 Low Power Idle / S0ix)
В отличие от классического S3, в режиме Modern Standby:
- Отсутствие циклов обесточивания ОЗУ: оперативная память работает в штатном режиме, что позволяет системе просыпаться мгновенно (< 500 мс).
- PDC (Power Dependency Coordinator): системный координатор отслеживает системные сущности (аудиопотоки, загрузку обновлений, таймеры push-уведомлений WNS).
- PEP (Power Engine Plugin): специализированный драйвер SoC от производителя чипсета (Intel / AMD / Qualcomm), переводящий шины PCIe, контроллеры дисплея и ядра CPU в состояние глубокого простоя
DRIPS(Deepest Runtime Idle Platform State). - Режимы активности (Connected vs Disconnected):
- Connected Standby: сетевой адаптер периодически просыпается по триггерам паттернов (Wake-on-Pattern) для получения входящих звонков и сообщений.
- Disconnected Standby: сетевой стек полностью отключается для максимальной экономии заряда аккумулятора.