- C-states зберігає дані в режимі очікування (глибше = більша затримка), P-states регулює частоту/напругу під навантаженням.
- Обидва є ортогональними: процесор може глибоко спати після роботи на високій частоті.
- Затримки C6/C7 впливають на ігри, аудіо та мережу; налаштуйте максимальний стан C залежно від навантаження.
- Використовуйте інструменти (Windows та Linux) та профілі BIOS/ОС для вимірювання та керування без втрати стабільності.

У сучасних процесорах управління живленням здійснюється не одним перемикачем, а набором... скоординовані механізми (серед інших, C-стани та P-стани центрального процесора) які операційна система, прошивка та сам процесор використовують для регулювання енергоспоживання, температури та продуктивності в режимі реального часу. У цій статті зібрано та впорядковано цей клубок акронімів, щоб ви могли зрозуміти, що відбувається «під капотом», коли ваш комп’ютер економить енергію або прискорюється.
Хоча кожен виробник і сімейство процесорів додає свій власний штрих, основа є спільною: ACPI визначає стандартні «стани» для системи, пристроїв та процесора. Тут ви побачите відмінності між C-станами та P-станами, як вони пов'язані зі G/S/D-станами, який реальний вплив вони мають на затримку, чому геймери та професійні аудіофіли часто вимикають глибокий сон, а також які практичні інструменти доступні для використання у Windows, Linux та середовищах, таких як ESXi.
ACPI в двох словах
ACPI (Advanced Configuration and Power Interface) – це стандарт, який регулює живлення ПК та серверів, і що замінив APM більшим контролем та деталізацієюВін народився завдяки спільній роботі Intel, Microsoft та Toshiba у 90-х роках і розвинувся, включивши 64-бітну багатопроцесорну технологію, сучасні шини (PCIe, SATA, USB 3.x) та виявлення подій (наприклад, кнопку живлення).
Хоча ACPI в основному використовується в сімействі x86, він також був розгорнутий на інших архітектурах. Однак на мобільних пристроях ARM, використовуються власні стратегії (такі як big.LITTLE та гетерогенні кластери) збалансувати ефективність та реакцію залежно від навантаження.

Глобальні та призупинені стани (G-стани та S-стани)
Глобальні стани описують повний стан системи. Найважливішим є G0/S0 (Робочий), де комп’ютер активний. На новішому обладнанні є S0ix (підстани S0) які дозволяють дуже точно працювати в режимах сну, коли частина SoC переходить у режим сну, особливо в ноутбуках.
- G0/S0: система в експлуатації.
- G1 (Сплячий): охоплює S1, S2, S3 (перехід у режим призупинення в оперативній пам'яті) та S4 (перехід у режим глибокого сну на диск). S3 забезпечує живлення оперативної пам'яті для швидкого відновлення; S4 скидає пам'ять у енергонезалежне сховище.
- G2/S5 (Пластне вимкнення)Логічне вимкнення з мінімальним споживанням енергії для можливості пробудження за певними подіями (клавіатура, мережа тощо).
- G3 (Механічне вимкнення)Фізичне вимкнення; від батареї виживає лише RTC.
Майте на увазі, що C-стани процесора знаходяться в межах G0/S0Коли система переходить у стан G1, процесорний пакет вимикається, а стани C припиняються.
Стани пристроїв (D-стани)
ACPI також визначає, як периферійні пристрої переходять у режим сну або пробудження. D0 еквівалентний «повній роботі», D1/D2 є проміжними (залежно від пристрою), а D3 розгалужується на «Гарячий» (з допоміжним живленням, реагує на шину) або «Холодний» (повністю вимкнений, не реагує). Це дозволяє, наприклад, мережевій карті розбудити комп’ютер, поки інші пристрої залишаються в сплячому режимі.
Т-стани: модуляція годинника, останній засіб
Окрім P та C, є ще й модуляція тактової частоти (T-стани): вид ШІМ, який пригнічує внутрішні тактові імпульси за певною схемою (наприклад, 1 з кожних 8), зменшуючи активність без зміни заявленої базової частоти. Він призначений для використання як тепловий або аварійний контрзахід (PROCHOT) та контролюється через IA32_CLOCK_MODULATION, з причинами/журналами в MSR_*_PERF_LIMIT_REASONS.
Хоча в деяких документах це вважається «нерелевантним», на практиці Це постійно з'являється на ноутбуках із відповідним тепловим дизайном. і при тривалих навантаженнях. Якщо ви бачите, що Windows повідомляє про «швидкість» нижче мінімального значення EIST, ймовірно, активний T-статус (синхронізація).
M-Стати: Збереження пам'яті
ACPI також забезпечує стани пам'яті для зменшення споживання енергії підсистемою DRAM, коли система перебуває в режимі очікування. M0 – це нормальна роботаРежими M1/M2 та інші змушують пам'ять самостійно оновлюватися та уповільнюють час, зменшуючи енергоспоживання з довшими затримками пробудження. Це менш помітно для користувача, але сприяє загальній економії.
C-стани процесора: Сон з головою в режимі очікування
Давайте тепер звернемося до теми статті: C-стани та P-стани. C-стани – це стани очікування ядра або пакета. Чим вище число, тим глибший сон і більша економія, але також вища затримка пробудження. Вони запитуються за допомогою привілейованих інструкцій, таких як HLT або MWAIT (останній може явно запитувати Cx та підстатус), а зіставлення можливостей досягає ОС через ACPI (_CST).
- C0: нормальне виконання. Саме тут вступають у гру P-стани.
- C1/C1E (Зупинка): ядро зупиняється, майже миттєве повернення до C0; C1E ще більше зменшує споживання.
- C2 (Стоп-годинник)Сигнали годинника зупиняються, повернення займає трохи більше часу.
- C3 (Сон/Глибокий сон)L1/L2 скидається до останнього кешу (LLC), а тактові частоти ядра вимикаються; зберігається лише основний стан ядра.
- C6 і вищеЯдро можна вимкнути, а його контекст зберегти у виділеній SRAM, що знизить напругу ядра до ~0 В; після виходу стан ядра відновлюється. Деякі моделі на сучасних платформах мають доступ до C10.
Окрім C-станів на ядро (CC-станів), існує площина C-стани пакета (PC-стани) які вимикають спільні блоки (наприклад, LLC), коли всі ядра це дозволяють. Існують недійсні комбінації (якщо ядро знаходиться в C0, пакет не може бути в PC6), і процесор може автоматично «підвищувати» або «знижувати» рівень на основі цільових затримок та резиденцій.
Затримка має значення: C1 покидається лише за кілька десятків циклів, тоді як C6/C7 може витрачати сотні мікросекунд. Отже, навантаження, чутливі до затримки (ігри, аудіо в реальному часі, вимогливі мережеві зв'язки), страждають, якщо процесор часто переходить у глибокий сплячий режим.
P-стани продуктивності: частота та напруга
У той час як C-штати «сплять, коли немає роботи», P-штати «регулюють темп, коли Так, робота є, але вона не вимагає максимуму.P0 – це стан найвищої продуктивності (найвища частота/напруга), потім йдуть P1, P2… кожен зі спадними парами частота-напруга. Ці таблиці оголошуються для ОС через ACPI (_PSS) та контролюються MSR, такими як IA32_PERF_CTL/IA32_PERF_STATUS.
Історично операційна система запитувала P-стати (EIST/SpeedStep на Intel, PowerNow! на AMD), але сьогодні це поширена практика... Апаратно керовані стани продуктивності (HWP/Speed Shift)ОС вказує на налаштування (продуктивність/економія), а процесор визначає точний момент за мілісекунди, з дуже високою точністю для кожного ядра.
Ключова деталь: P-стани та C-стани є «ортогональними»Ви можете бути в стані P0 (висока частота) і, ставши неактивним, перейти в стан C6. І навпаки, під час тривалого навантаження в стані P2 стани C відсутні, оскільки ядро виконується (C0). Ось чому гарною ідеєю є подумки розділити «частоту/напругу» (P) від «простого режиму» (C).
Від APM до ACPI: зміна парадигми
APM був попереднім API, яким керували переважно з BIOS та драйверів. Він дозволяв Вимкніть неактивні периферійні пристрої та визначте прості глобальні стани, але процесор був поза прямим контролем ОС з міркувань безпеки. ACPI розвинувся до багатшої, більш стандартизованої моделі з описами таблиць, детальним контролем та тісною співпрацею між прошивкою, ОС та апаратним забезпеченням.
Як в'їжджати та виїжджати з країн С
Коли планувальник не має готових потоків, він виконує HLT або MWAIT з підказкою про цільовий C-стан; Переривання «порушують» сон і повертають ядро до C0. Приватні кеші очищуються на C3; контекст зберігається в SRAM на C6, а напруга знижується до нуля. Деякі процесори реалізують маршрутизацію переривань з урахуванням живлення (PAIR) для маршрутизації переривань до вже активні ядра (для економії) або для простою ядер (для виконання), за потреби.
Обмеження турбонаддуву, TDP та потужності
Процесори визначають TDP, який система охолодження повинна мати змогу розсіювати на постійній основі (PL1: безпечна середня потужність). Вище, склопідйомники з більшою потужністю можуть увійти (PL2, а також додаткові рівні, такі як PL3/PL4 залежно від платформи) протягом обмежених періодів. Якщо є тепловий та електричний запас, ядро може перевищити базову частоту через турбо, навіть асиметрична форма (більше турбо з меншою кількістю активних ядер).
Коли температура перевищує порогове значення або цього вимагає VRM/живлення, PROCHOT можна активувати і ввести T-стан або обмеження частоти для захисту чіпа. Така поведінка поширена в тонких ноутбуках.
Windows: схеми живлення, показники та лічильники
Пропозиції Windows плани, такі як «Енергозбереження», «Збалансований» та «Високопродуктивний». Перший, як правило, агресивно знижують P-стани та міцно сплятьТретій підтримує високі частоти та уникає падіння затримки за рахунок ефективності. «Збалансований» — це спроба знайти золоту середину.
У диспетчері завдань «швидкість» – це синтетичний показник, який усереднює на ядро та враховує частоту модуляції якщо є T-стани. Він може перевищувати базовий (турбо) або падати нижче мінімального EIST (стробування). Для розширеної телеметрії лічильник «\Інформація про процесор (_Загальна)\% Продуктивність процесора» відображає відсоток ефективної продуктивності процесора.
Існують утиліти для діагностики або налаштування: CPU-Z (базові дані), HWiNFO (датчики), Дросельна зупинка (тактові частоти, C-стани на ядро та керування PROCHOT/модуляцією), або ParkControl (налаштування паркування ядра/C-стани), що стосуються прихованих параметрів плану живлення (powercfg дозволяє редагувати “IDLE_PROMOTE/DEMOTE” тощо).
Linux: cpupower, turbostat та CoreFreq
У Linux такі інструменти, як cpupower показувати регулятори, діапазони частот та затримки переходів; турбостат відображає MSR, причини обмеження продуктивності ядра (MSR_CORE_PERF_LIMIT_REASONS) та резидентства за штатом C; та CoreFreq надає детальний огляд абсолютних частот, C-станів та турбонаддуву для кожного ядра/корпусу.
Практичний нюанс: на деяких комп'ютерах драйвер intel_idle може ігнорувати обмеження BIOS через C-стани та використовують власну таблицю. В інших випадках прошивка «блокує» найглибший C-стан, дозволений для ОС, через MSR.
BIOS/UEFI та профілі: хто насправді головний?
У налаштуваннях BIOS/UEFI вони зазвичай відображаються ключові перемикачі: EIST/SpeedStep, TurboBoost та C-State процесораКрім того, багато серверів дозволяють вибирати профілі живлення: «Максимальна продуктивність» (все на найвищому рівні з мінімальними затримками) або «Керовано ОС/Налаштування», де гіпервізор або ОС керує станами P/C. Вибір «Режим керування ОС» делегує інтелект операційній системі.
Якщо ви використовуєте гіпервізори, такі як ESXi, гарною ідеєю буде поєднати їх Режим керування ОС у BIOS з планом «Висока продуктивність» гіпервізора, коли метою є зниження продуктивності (наприклад, з NSX-T, граничними вузлами або функціями, чутливими до затримки). У такому випадку ви частіше бачитимете P-стан 0, а C-стани обмежуватимуться C0/C1; з планом «Збалансований» хост більше покладатиметься на нижчі P-стани та глибші C-стани.
Підсумовуючи всю цю плутанину з C-статусами та P-статусами: ACPI визначає рамку, C-статуси економлять енергію, коли немає роботи, P-статуси регулюють вищу/нижчу передачу під навантаженням, T-статуси рятують становище в умовах сильної спеки, а M-статуси зменшують споживання пам'яті. Головне — вибрати правильний профіль для вашого використання., виміряйте за допомогою правильних інструментів та, за необхідності, встановіть розумні обмеження глибини природного укосу.
Редактор, що спеціалізується на технологіях та питаннях Інтернету з більш ніж десятирічним досвідом роботи з різними цифровими медіа. Я працював редактором і творцем контенту для компаній електронної комерції, комунікацій, онлайн-маркетингу та реклами. Я також писав на веб-сайтах з економіки, фінансів та інших секторів. Моя робота також є моєю пристрастю. Тепер через мої статті в Tecnobits, я намагаюся вивчати всі новини та нові можливості, які щодня пропонує нам світ технологій для покращення нашого життя.

