Процессоры Intel поддерживают несколько технологий для оптимизации энергопотребления. В этой статье (перевод [1]) дается обзор p-состояний (оптимизация напряжения питания и частоты CPU во время работы) и c-состояний (оптимизация потребления мощности, если ядро не выполняет ни одной инструкции).
[P-состояния]
Во время выполнения кода операционная система и CPU могут оптимизировать энергопотребление с помощью различных P-состояний (P это сокращение от "performance", что означает "производительность"). В зависимости от требований, CPU работает на разных частотах. Состояние P0 соответствует самой высокой частоте (с самым высоким напряжением питания).
Для процессоров Intel до архитектуры Haswell/Broadwell, желаемая частота (и соответствующее ей напряжение питания) указывается операционной системой путем записи соответствующих величин в специальные регистры процессора [2][3].
В архитектуре Skylake операционная система может оставить управление P-состояниями аппаратуру CPU (Speed Shift Technology, Hardware P-states [4]). С Kaby Lake эти функции были дополнительно оптимизированы [5].
Speed Schift (сдвиг скорости). P-состояния определяются в BIOS, и управляются операционной системой. Технология Speed Schift дает полное или частичное управление частотой тактирования CPU (может осуществляться либо во всем диапазоне, либо в узком окне). Speed Schift требует поддержки со стороны операционной системы (Windows 10 с новыми обновлением эту функцию поддерживает), также требуется любой процессор Intel 6 Skylake. Сдвиг скорости означает ускоренный отклик на запросы изменения производительности со стороны ПО (JavaScript, инструменты офиса, веб-браузеры). Технология сдвига скорости обеспечивает увеличение производительности для обычных задач, при этом незначительно снижается общее энергопотребление, т. е. эффективность работы всей системы повышается.
[C-состояния]
В отличие от P-состояний, которые были разработаны для регулирования потребления мощности во время выполнения кода (т. е. в нормальном рабочем состоянии процессора), C-состояния используются для оптимизации энергопотребления в режиме ожидания (idle mode, т. е. когда никакой код процессором не выполняется).
Типовые C-состояния следующие:
C0 – Active Mode: код выполняется, это состояние соответствует одному из P-состояний. C1 – Auto Halt (автоматическая приостановка). C1E – Auto halt, low frequency, low voltage (автоматическая приостановка с пониженной частотой и напряжением питания). C2 – Временное состояние перед переходом в C3. Память в рабочем состоянии. C3 – Сброс кэшей L1/L2 (flush), выключение тактовых частот. C6 – Сохранение состояний ядра перед выключением, и выключение PLL (т. е. прекращение синтеза тактовых частот). C7 – C6, плюс может быть сброшен LLC (LLC означает кэш самого высокого уровня, т. е. самая медленная память кэш). C8 – C7, плюс должен быть сброшен LLC.
Примечание *: показано в грубом приближении.
C-состояния можно отличить друг от друга по C-состояниям ядра (Core C-states или CC-states), состояниям корпуса (Package C-states или PC-states) и логическим состояниям. В большинстве случаев операционная система устанавливает определенное состояние для ядра путем выполнения команды MWAIT.
Примечание: "состояние ядра" (core state) относится к ядру, которое находится в состоянии самого большого потребления энергии (наиболее активно).
[Запрет в BIOS функции CPU Power Saving]
В некоторых случаях рекомендуется деактивировать в BIOS настройки экономии питания CPU. Здесь показано, где найти эти опции и как их запретить, чтобы опции управления питанием (CPU P State Control и CPU C State Control) были полностью запрещены в BIOS (на примере материнской платы Supermicro X10DRi и процессора Intel Xeon E5 2620v4.
Как запретить CPU Power Saving:
1. Во время начального процесса загрузки (сразу после включения питания или сброса) нажмите специальную клавишу для входа в BIOS. Чаще всего это Del (Delete) или F2, для материнской платы Supermicro X10DRi это клавиша Delete.
2. Перейдите в раздел настроек Advanced CPU Configuration -> Advanced Power Management Configuration.
3. Поменяйте настройку Power Technology в состояние Custom и Energy Efficient Turbo в состояние Disable.
4. Перейдите в раздел CPU P State Control, деактивируйте EIST (P-States) and Turbo Mode.
5. Перейдите в раздел CPU C State Control, поменяйте Package C State Limit на C0/C1 state и деактивируйте CPU C3 Report, CPU C6 Report и Enhanced Halt State (C1E).
[Ссылки]
1. Processor P-states and C-states site:thomas-krenn.com. 2. Intel Xeon Processor E3-1200 V3 site:intel.com. 3. What exactly is a P-state? site:intel.com. 4. [IDF15]Intel’s 6th Gen Skylake Unwrapped – CPU Microarchitecture, Gen9 Graphics Core and Speed Shift Hardware P-State site:wccftech.com. 5. Intel Kaby Lake: 14nm+ und optimiertes Speed Shift steigern Performance site:thomas-krenn.com. |