16

Технологии: "C-States и P-States в процессорах" основные принципы работы

C-States и P-States — состояния центрального процессора, предназначенные для экономии электроэнергии в простое и неполной нагрузке. Как они устроены, и как работают? Нужна ли им настройка, или в их функционирование лучше не вмешиваться?

Что такое C-States и P-States

Для начала определимся, что из себя представляют герои нашего материала и в чем различия между ними.

C-States — сокращение от «Core States», или «Состояния ядра». Когда процессор не занят вычислительной работой и находится в простое, эти состояния позволяют отключать или переводить в режим пониженного энергопотребления его различные компоненты. Например, тактовый генератор частоты, кэш и шины.

P-States — сокращение от «Performance States», или «Состояния производительности». Во время выполнения процессором вычислений эти состояния позволяют динамически изменять частоты его ядер, кэша и шин, а также питающее их напряжение. За счет этого при неполной нагрузке ЦП достигается экономия энергии.

Проще всего привести аналогию с движущимся автомобилем. P-States напоминает работу автоматической коробки передач: чем больше нужна скорость для выполнения задачи, тем на более высокую ступень этот механизм переключает частоту (а вместе с ней — и напряжение питания) компонентов центрального процессора.

А C-States можно сравнить с автомобилем, который стоит на месте, но должен быть в любой момент готовым к поездке. Самое поверхностное из этих состояний можно описать так: автомобиль заведен, а водитель сидит за рулем и уже выжимает газ, ожидая лишь момента нажать на сцепление. Второе состояние подразумевает, что газ не выжат, следующее — что автомобиль не заведен, а самое глубокое — что водитель еще даже не сел за руль. В соответствии с этим меняется и скорость старта автомобиля (т.е. процессора): чем глубже C-состояние, тем больше времени требуется ЦП для возвращения к работе из него.

C-States: краткая история

На заре своего появления центральные процессоры для компьютеров были устроены достаточно просто и работали на низких частотах. За счет этого они потребляли небольшое количество энергии, поэтому задача по снижению энергопотребления в простое перед производителями тогда не стояла. Однако уже в процессоре Intel 8086, который дебютировал в 1978 году, появилась команда «Halt». Она приостанавливала его работу до тех пор, пока не возникнет аппаратное прерывание — то есть, была в первую очередь необходима для правильного функционирования ЦП.

В 1993 году, с появлением процессоров 486DX4 и Pentium, команда «Halt» стала использоваться и для снижения энергопотребления в простое благодаря новому состоянию — C1. В нем процессор прекращает выполнять инструкции и уходит в неглубокий «сон», но при необходимости может мгновенно «проснуться» и вернуться в рабочее состояние (C0).

Одновременно было добавлено и второе состояние энергосбережения — C2 (Stop-Clock). В нем тактовый генератор частоты ядра останавливается, обеспечивая ему более глубокий «сон», но при этом сохраняется состояние регистров и кэш-памяти. Особенно актуальны эти состояния были для «прожорливых» Pentium: в отличие от предшественников, под нагрузкой они потребляли в несколько раз больше — до 16 Вт вместо пяти-шести.

С каждым годом процессоры становились сложнее, а вместе с этим росло и их энергопотребление. У Intel оно наиболее сильно взлетело с выходом Pentium 4: 90–100 Вт после 30–40 Вт у двух прошлых поколений ЦП были не шуткой. Именно тогда компания задумалась о дальнейшем совершенствовании C-состояний. Их следующее поколение появилось в последнем поколении Pentium 4 на ядре Prescott, и получило название «Enhanced Halt State» (C1E).

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

Однако для ноутбуков даже со всеми «энергосберегайками» архитектура Pentium 4 была слишком прожорливой. Поэтому Intel разработала для них отдельную линейку процессоров Pentium M, корни которых уходили в архитектуру более старого Pentium III.

Чтобы увеличить время работы мобильных ПК в простое, помимо другой архитектуры эти процессоры наделили еще более «глубокими» режимами сна — C3 и C4. Оба состояния схожи с C2, но в первом отключается кэш (его содержимое переносится в ОЗУ), а во втором, вдобавок к этому, еще и снижается напряжение на ядре.

С дальнейшим развитием процессоров появлялись следующие, более глубокие C-состояния. В каждом из них ЦП потребляли все меньше энергии, но взамен увеличивалось время, необходимое для возвращения к работе. Краткая информация о всех C-States представлена в таблице ниже.

С появлением архитектуры Intel Core каждое из ядер процессора получило возможность менять свое C-состояние независимо. А с объединением всех ядер в одном кристалле, которое произошло с дебютом первого поколения Core i7, Intel ввела понятие PC-States (PaСkage States). Эти состояния аналогичны C-States, но используются не для отдельных ядер, а на уровне всего процессорного пакета. При этом отдельные ядра ЦП могут пребывать либо в таком же, либо в более глубоком сне, чем весь пакет. Таким образом экономится дополнительная энергия.

Иллюстрация Intel со сравнением различных C-состояний современных ЦП

Иллюстрация Intel со сравнением различных C-состояний современных ЦП

Хотя пионером по вводу новых C-States была Intel, в процессорах AMD схожие состояния появлялись лишь чуть позже. А с приходом Ryzen компания добавила собственные C-States еще и для шины Data Fabric, которая соединяет основные компоненты этих процессоров.

P-States: краткая история

C-States решили вопрос энергопотребления в покое, но даже при частичной нагрузке ранние процессоры продолжали «молотить» на полную мощность. Для десктопов это особого значения не имело, а вот для ноутбуков каждый ватт сэкономленной энергии был на счету.

Первой разработкой, призванной исправить ситуацию, стала технология Intel SpeedStep. Она дебютировала в 2000 году в мобильных Pentium III, позволяя переключаться им между двумя режимами — высокой производительностью и экономией энергии. В последнем из них частота понижалась с помощью уменьшения множителя и снижалось напряжения ядра, но процессор продолжал выполнять работу и не «засыпал».

SpeedStep доказал свою эффективность, однако переключение между режимами было довольно медленным, а взаимодействие операционной системы с ними — не до конца доведенным до ума. К тому же, градаций мощности было всего две. Обе проблемы решило следующее поколение технологии под названием Enhanced Intel SpeedStep Technology (EIST). Оно позволило ЦП быстро и более плавно подстраиваться под текущую нагрузку с помощью нескольких сочетаний тактовых частот и напряжений, которые были названы P-States. Впервые эта технология появилась в 2003 году в мобильных процессорах Pentium M.

Уже вскоре EIST довольно быстро мигрировала в десктопные Pentium 4 на ядре Nortwood. Параллельно компания AMD внедрила схожую по принципу работы технологию Cool'n'Quiet в процессоры Athlon 64.

С развитием процессоров количество P-States росло, а диапазон переключаемых ими частот расширялся. Если в 2003 году у первых моделей их было от двух до шести, то уже в 2011 процессоры Intel Core второго поколения научились регулировать свою частоту с шагом в 100 МГц. Это давало от 15 до 20 различных P-состояний.

Следующая глава в развитии P-States начинается в 2015 году с дебютом Intel Core шестого поколения. На смену EIST в них пришла технология SpeedShift. В отличие от предшественницы, P-состояниями которой управляла операционная система, новая технология полагается на собственные алгоритмы обнаружения нагрузки. Это позволяет процессору более оперативно реагировать на изменяющиеся условия и заметно быстрее переключать P-состояния для достижения как максимальной производительности, так и большей энергоэффективности.

Сравнение скорости переключения состояний cо SpeedShift и без него. Обратите внимание, что время дано в миллисекундах — на глаз такой разницы не заметить

В процессорах AMD схожее (и даже более продвинутое) решение появилось в 2018 году вместе с линейкой Ryzen 2000. Комплекс технологий авторазгона Precision Boost Overdrive 2 помимо своей главной задачи научился переключать P-состояния процессора на основе собственных алгоритмов без вмешательства операционной системы.

Когда стоит вмешиваться в работу C- и P-состояний

У всех процессоров, выпущенных за последние 15 лет, работа различных состояний отлажена и не нуждается в дополнительной настройке. Примерно столько же времени в ОС Windows имеются продвинутые алгоритмы управления питанием — начиная с легендарной Windows 7 и заканчивая современной Windows 11. Поэтому просто так лезть в настройки C- и P-состояний в надежде как-то увеличить производительность не стоит. Как минимум, можно нарушить правильный переход процессора в сон, а как максимум — добавить ему «жора» на холостом ходу.

Настройка или отключение перехода в различные состояния может понадобиться в случаях, когда выполняющимся задачам все время нужен максимально быстрый отклик ЦП — ведь и C-, и P-States вносят свою задержку при необходимости его вывода из экономичного режима на полную вычислительную мощность. К таким сценариям можно отнести использование ПК в качестве некоторых видов серверов. Например, для баз данных, задач искусственного интеллекта, IP-телефонии, трейдинга или трансляции потокового видео.

В домашнем применении скорость переключения состояний не вносит заметную задержку в работу системы, приложений или игр. Но поводом вмешательства в них может послужить нестабильная работа ПК. Нередко производители материнских плат «криво» реализуют совместную работу технологий автоматического разгона ЦП и C-States/P-States в прошивке BIOS. А при ручном разгоне подобные проблемы несовместимости выходят наружу еще чаще. Это может проявляться в виде спонтанного зависания или перезагрузки ПК, сбоев работы игр и программ, а также неожиданных «синих экранов».

Однако в ситуациях без ручного разгона в таком поведении компьютера гораздо чаще виноваты другие, более распространенные проблемы. Но если ничего из этого не помогает, то нужно попробовать отключить энергосберегающие состояния: есть шанс, что подобное происходит из-за того, что ЦП и материнская плата плохо «дружат».

На платформах AMD вышеописанные проблемы чаще всего связаны не с самими состояниями энергосбережения, а с механизмом авторазгона PBO. Поэтому перед тем, как лезть непосредственно в настройки C- и P-States, попробуйте сначала отключить только Precision Boost Overdrive. Вполне возможно, что дальнейшие манипуляции не потребуются.

Как отключить C- и P-состояния

Для этой цели понадобится попасть в BIOS. Перезагружаем ПК, и нажимаем на клавиатуре Delete, F2 или Esc — в зависимости от производителя и модели вашей материнской платы.

BIOS разных производителей отличаются оформлением и положением пунктов настроек. К тому же, они нередко меняются местами даже в разных поколениях плат от одного и того же производителя. Впрочем, найти необходимые нам пункты не так уж трудно. В современных моделях контроль режимов C-состояний чаще всего находится по следующим путям:

  • Gigabyte (платформы Intel): Advanced (или Tweaker) → CPU Settings → C-States Control

  • Gigabyte (платформы AMD): Advanced (или Tweaker) → CPU Settings → AMD CBS → CPU Common Options → C-States Control

  • MSI (платформы Intel): Overclocking (OC) → Advanced CPU Configuration → CPU C-States

  • MSI (платформы AMD): Overclocking (OC) → Advanced → AMD CBS → CPU C-States

  • ASUS/ASRock (платформы Intel): Advanced → CPU Configuration → CPU Power Management Control → CPU C-States

  • ASUS/ASRock (платформы AMD): Advanced → CPU Configuration → CPU Power Management Control → Global C-State Control

В тех же разделах можно найти и контроль механизма работы P-состояний. У процессоров Intel ищите пункты SpeedShift и EIST, у AMD - AMD P-States или Cool'n'Quiet.

Отключить C-состояния полностью можно на любой материнской плате — для этого достаточно нажать клавишу «Enter» на нужном пункте и выбрать «Disabled/Запрещено»

На большинстве плат переход в различные C-состояния можно контролировать индивидуально. Обычно для этого нужно сменить в той же графе режим «Auto/Авто» на «Enabled/Разрешено». После этого становится доступным отключение поддержки различных состояний ядер по-отдельности.

Вдобавок там же нередко присутствует настройка «Package C State». С ее помощью можно переопределить самое глубокое состояние, в которое может уходить весь пакет ЦП. То есть — максимальный PC-State.

P-состояния процессора BIOS (за редким исключением) не позволяет настраивать по отдельности, можно лишь запретить переход в них в общем. Для этого достаточно выбрать в вышеописанных пунктах настроек вариант «Disabled/Запрещено». У современных материнских плат для платформ Intel пункты SpeedShift и EIST могут сосуществовать вместе — в этом случае нужно деактивировать их оба.

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

Если полное отключение энергосберегающих состояний решило вашу проблему, не спешите оставлять настройки в таком состоянии. В большинстве случаев достаточны лишь частичные меры по предотвращению перехода процессора в глубокий сон. Поэтому после этого попробуйте отключить лишь состояния C6 и выше — в них проблемы кроются чаще всего. Механизм P-состояний в BIOS обычно отключают только при разгоне. А состояния с C1 до C3, как правило, приводят к ошибкам реже всего.

Итоги

C-States и P-States — технологии энергосберегающих состояний, которые помогают центральному процессору подстраиваться под нужную нагрузку и не «кушать» лишнее электричество. В современных ЦП их работа очень точна и помогает сэкономить каждый лишний ватт. Это особенно важно для использования в ноутбуках — ведь именно данные «фишки» значительно продлевают им время автономной работы.

Несмотря на это, в ряде случаев C- и P-состояния приходится отключать. В основном это требуется, чтобы использовать компьютер в качестве сервера для работы с задачами реального времени. Но иногда может понадобиться в обычном домашнем ПК, чтобы решить проблему с нестабильной работой системы — чаще всего в разгоне, но иногда и в номинале.

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества