- Linux c states что это
- CPU C-States — что это в биосе?
- CPU C-States — что это в биосе?
- Режимы работы процессора
- Энергосберегающие режимы на практике
- Заключение
- Устраняем проблемы электропитания, или не спешите сдавать железку по гарантии
- Что может быть не так с настройками питания компонентов компьютера?
- реклама
- реклама
- Что такое с-states, какие могут быть проблемы?
- реклама
- Устраняем проблемы c С-states на Windows
- Устраняем проблемы с C-states на Linux:
- реклама
- Проблемы с энергосбережением nvme дисков
- Меняем схему энергосбережения NVMe под Windows 10
- Меняем схему энергосбережения на Linux:
- Заключение:
Linux c states что это
Процессоры 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).
Источник
CPU C-States — что это в биосе?
- Описание
- Режимы
- Дополнительная информация
- Вывод
Приветствую уважаемые друзья! Сегодня мы рассмотрим предназначение одной опции, которая связана с работой процессора. Как всегда — я постараюсь написать все простыми словами, чтобы было понятно каждому, даже самому начинающему пользователю!
CPU C-States — что это в биосе?
Сразу короткий ответ: опция активирует поддержку энергосберегательных режимов процессора.
Кроме этого возможно будут доступны настройки активации типов режимов, то есть так бы сказать подрежимов. Просто C-States — это общее название энергосберегательных режимов, их существует несколько. В биосе может быть такая картина — после активации функции CPU C States Support могут стать доступные и другие опции, которые отвечают за поддержку немного разных режимов энергосбережения:
В биосе ASRock UEFI эта опция находится как видите в разделе Advanced\CPU Configuration.
Режимы работы процессора
Скажу сразу — что эти опции в биосе лучше не трогать или выставить значение Auto. Но вообще энергосберегающие режимы — это хорошо, потому что система будет меньше греться, меньше потреблять энергии, это особо актуально для ноутбуков.
Итак, я нашел информационную картинку-описание некоторых режимов работы процессора, смотрим (картинка правда большая, но зато инфа полезная):
PS: выше на картинке возможно данные уже устали, ведь появились новые процессоры, однако предназначение режимов — вряд ли изменилось.
Энергосберегающие режимы на практике
- Процессор в простое может снижать напряжение, из-за будет снижаться частота. Например у меня был проц Intel G3220, так его частота 3.00 ГГц, а мог скидывать до 800 МГц в простое.
- Минимальная частота процессора — это не только минимальное напряжение, но и низкий нагрев.
- В итоге — комп или ноутбук отдыхает. Температура падает, если это ноут — то его автономная работа в таком режиме увеличивается. Но частота может падать и немного, зависит от нагрузки, например при чтении она будет не полностью падать. Но даже в таком режиме снижается нагрев и потребление.
- При низкой частоте проца в принципе нагрузка на материнскую плату снижается, а это как бы увеличивает срок службы компьютера/ноутбука.
- Минус энергосберегающего режима. Есть мнение, что данный режим немного снижают производительность ПК. Незначительно. Как? Дело в том, что восстановление частоты занимает некие доли секунды, на практике это как микро-тормоза. Но чем мощнее проц, тем меньше таких тормоза, а то и вовсе могут отсутствовать. Но это не всегда, просто у меня так было — но почти незаметно, а если и есть, то длятся не более полсекунды. По факту мелочь.
Важно понимать, что все это может не работать. Почему? Из-за настроек электропитания Windows, в которых может в минимальном/максимальном состоянии процессора стоять 100%. Тогда проц будет постоянно работать на максимальной частоте. Открыть данные настройки можно так: Панель управления > значок Электропитание > напротив активной схемы нажимаем настройка > изменить дополнительные параметры > в самом низу раскрываем пункт Управление питанием процессора.
Заключение
- CPU C-States — опция позволяет активировать энергосберегающие режимы процессора.
Надеюсь эта информация была полезной. Удачи и добра, до новых встреч друзья! и берегите себя!
Источник
Устраняем проблемы электропитания, или не спешите сдавать железку по гарантии
Что может быть не так с настройками питания компонентов компьютера?
Давайте сначала взглянем вот на эту диаграмму:
реклама
Очевидно, что ноутбуков продается гораздо больше, чем собирается настольных компьютеров и производители компонентов и софта во многом ориентируются на ноутбучный сегмент.
В ноутбуках одна из ключевых характеристик — время автономной работы от батареи. Чтобы его продлить производители стараются максимально оптимизировать потребление энергии, снижая его всегда, когда это возможно. В качестве побочного эффекта мы получаем, что энергосбережение пытается взять власть и в моменты, когда ноутбук подключен в сеть и даже на настольном компьютере. Как только система чувствует, что нагрузка снижена или она бездействует, начинают активироваться режимы пониженного энергопотребления. И вот эти режимы могут на настольном компьютере неожиданно приводить к полному зависанию, отключению отдельного устройства или системы в целом.
За последние 8 лет я сталкивался с таким несколько раз на настольных компьютерах. Обнаруженные проблемы можно разложить по следующим категориям:
- Внезапное отключение системы из-за высокого уровня c-states процессора
- Подвисания системы из-за высокого уровня с-states
- Внезапный отвал NVMe диска из-за режима энергопотребления по умолчанию, даже если диск был под нагрузкой
- Кратковременное снижение производительности NVMe дисков из-за режима энергопотребления по умолчанию, даже если диск был под нагрузкой.
Проблемы у меня были с разными компонентами разных поколений и производителей: Intel i7-4770k, Ryzen-3900x, NVMe Kingston A2000. Судя по информации от других пользователей, проблемы бывают и со многими другими устройствами.
реклама
Первый раз я столкнулся с этим, когда 7 лет назад новенький компьютер с 4770k на борту начал подтормаживать без какой-либо серьезной нагрузки. Когда внезапно компьютер вырубился, я перебрал и перепроверил все компоненты: от блока питания до материнки. Путем исключения выяснил, что проблема с процессором, и, сначала уже хотел сдавать его по гарантии, но потом выяснил, что он исправен. Под Windows было крайне сложно понять что же происходит. Помог запуск под Linux и изучение его журнала, который оказался очень подробным. Система не вырубалась, но в списке ошибок было что почитать. Гуглю эти ошибки — и я узнаю, что ещё много людей мучаются с такой проблемой. Так я узнал про c-states и, что неким образом при его высоких значениях система сначала пытается снизить энергопотребление, а этого не хватает мощному десктопному процессору даже для простоя. Аналогичная ситуация происходила с Ryzen 3900х. Тоже хотел сдавать по гарантии, думал что два раза в одну воронку снаряд не попадает. Да и за 6 лет индустрия должна была (нет) уже с этим разобраться. Усложнялось все ещё тем, что если в случае с 4770k падения и подвисания происходили достаточно часто — раз в несколько дней и можно было отследить, то 3900х падал раз в месяц, да еще и был в офисе. Но, попробовав изменить c-states, все решилось и работает уже полтора года как часы.
Похожая ситуация была с ssd дисками — их режимы ожидания что под Windows что под Linux похоже целиком пришли из ноутбучного мира, что не совсем дружит с десктопом.
Что такое с-states, какие могут быть проблемы?
реклама
С-states — это режимы энергосбережения процессора. Впервые их ввели еще на 486м Intel’е.
В большинстве систем есть 7 уровней C-states (плюс еще некоторые подуровни для определенных процессоров). В некоторых системах есть и 10 уровней. В других есть пропущенные уровни. Если активирован уровень C0, то все компоненты процессора потребляют энергию. Процессор в полностью рабочем состоянии и никаких проблем не возникает. Уровни C1-C2 соответствуют все еще включенному процессору с рабочим кэшом, но с остановкой либо замедлением одного или нескольких внутренних тактовых генераторов. Начиная с уровня C3 начинается спящий режим, кэш L1 инструкций пустой. Уровни С4-С6 определяют глубину этого спящего режима. Система, отслеживая свою активность, вычисляет на какой уровень c-state надо перейти в данный момент. Если активность снижается, система повышает уровень, снижая энергопотребление.
У операционной системы есть глобальный параметр max_c-state, определяющий максимальное значение c-state в которое может уходить система. По умолчанию он как раз, наследуя ноутбучные правила, близок или равняется C6.
Проблемы могут возникнуть с повышением уровня C-states. Выходя с C0 на С1/C2 может произойти отключение или подвисания там, где этого не ждешь. Объясняется это тем, что современные алгоритмы управления C-states писались практически одинаковыми как для ноутбуков так и для мощных десктопных процессоров. Казалось бы, если установлен максимальный уровень на C3 или больше — то уже без разницы, какой будет конкретно уровень — ведь проблемы начинаются, когда система еще не в спящем режиме, а раньше. Но это не всегда так, у Windows 7 были проблемы как раз когда с C3 повышали максимальный допустимый уровень до C6. Видимо в системе были разные алгоритмы работы с энергопотреблением для разных максимальных уровней энергопотребления, а не только для текущего уровня.
Устраняем проблемы c С-states на Windows
Чтобы устранить проблему с c-states надо понизить его максимальный допустимый уровень до такого, когда система начнет работать стабильно. Если вы (как я) не выключаете компьютер месяцами, то можете сразу выставить C0.
Для этого надо под администратором воспользоваться утилитой командной строки POWERCFG :
- Узнаем доступные схемы питания c помощью powercfg /list:
- Выбираем схему Высокая производительность и копируем ее идентификатор. В моем случае идентификатор: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
- Выполняем команду powercfg /SETACVALUEINDEX 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c SUB_PROCESSOR IDLESTATEMAX 0: Где последняя цифра — максимальный допустимый уровень с-states, который вы хотите задать. В моем случае это 0. Эта команда меняет схему питания «Высокая производительность», задавая новый максимальный уровень для неё.
- Активируем схему питания: powercfg /SETACTIVE 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
Устраняем проблемы с C-states на Linux:
- открываем под sudo файл /etc/default/grub
- ищем секцию GRUB_CMDLINE_LINUX_DEFAULT
- прописываем intel_idle.max_cstate=0, где цифра — максимальный допустимый уровень c-state
- не смущаемся, что параметр называется intel_idle, для AMD он тоже работает
реклама
Примечание: некоторые BIOS позволяют установить max c-state в своем меню, но не факт, что система не переопределит это значение.
Проблемы с энергосбережением nvme дисков
По аналогии с процессорами NVMe диски имеют несколько уровней энергосбережения.
Данная технология называется Autonomous Power State Transition (APST) и призвана в первую очередь увеличить время работы батареи ноутбука.
Контроллер собирает информацию об активности системы и частоте запросов к диску и выставляет оптимальный с его точки зрения режим энергопотребления. Работа этого алгоритма регулируется выбранной схемой энергопотребления, которая в первую очередь характеризуется величиной таймаута. Если за время более чем таймаут, указанный в схеме к накопителю не было ни одного запроса, то драйвер повышает глубину уровня ожидания NVMe, выходя из уровня S0. На более глубоких уровнях увеличивается максимальное время отклика диска. В настройках этой схемы, в целом беспроблемно работающей на ноутбуках может быть заложено состояние, зайдя в которое десктопная система вызовет сбой и диск отмонтируется из файловой системы. Более того, если ОС загружена с этого диска, то с большой вероятностью она умрёт, а испуганный пользователь захочет сдать диск или все остальные девайсы по гарантии. У меня отвал диска с системой был только под Линуксом, но сам этот диск отваливался и из под Windows (Windows была на SATA). Основная проблема была конечно не отвал, а подвисания.
Ниже приведены стандартные настройки таймаутов NVMe для разных схем питания под Windows:
Я не нашел, что такие схемы различаются для десктопов и ноутбуков. Но, к счастью, пользователь может управлять этой схемой. Если мы повысим таймаут, то диск просто никогда не успеет уйти на более глубокий уровень ожидания и будет всегда активен.
Меняем схему энергосбережения NVMe под Windows 10
Есть два способа исправить проблему с схемой энергосбережения NVMe — через команду powercfg или через реестр + настройки питания. Мы рассмотрим второй способ, так как он более нагляден
Через реестр:
- Открываем реестр
- Проходим в раздел HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\0012ee47-9041-4b5d-9b77-535fba8b1442\d639518a-e56d-4345-8af2-b9f32fb26109:
- Меняем значение в поле Attributes c 1 на 0:
- Теперь у нас доступна опция регулировки таймаута в настройках электропитания
- Win+X -> Управление электропитанием -> Дополнительные параметры питания -> Настройка схемы электропитания (для вашей текущей схемы) -> Изменить дополнительные параметры питания
- В открывшемся окне меняем таймаут на больший, если мы хотим, чтобы накопитель был активен почти всегда, и его не вырубало (я поставил 1000 когда были проблемы и они исчезли):
Меняем схему энергосбережения на Linux:
- Открываем /etc/default/grub под sudo
- под секцией GRUB_CMDLINE_LINUX_DEFAULT прописываем nvme_core.default_ps_max_latency_us=0
Как альтернатива — можно полностью отключить APST, но мне не удалось найти параметр.
Заключение:
Судя по тому, что я несколько раз сталкивался с этой проблемой и находил довольно многих пользователей с такими же неполадками, есть значительная часть десктопных компонентов отнесенная в сервис или сданная назад, будучи вполне рабочими, но не вполне совместимыми. Все это софтовые проблемы из-за ноутбучного влияния в коде ОС. Для рядового пользователя они совсем не приятные, и я надеюсь, что данный материал поможет кому-то из читателей.
Источник