состояние простоя процессора что это
Что Такое Минимальное И Максимальное Состояние Процессора В Управлении Питанием Windows 7?
В операционной системе Windows 10 имеется отдельное меню настроек, отвечающее за управление питанием. Особенно актуальна эта тема для обладателей ноутбуков, когда требуется оптимизировать потребление энергии при работе устройства от батареи. Однако и пользователи стационарных компьютеров тоже нередко сталкиваются с такой задачей. Основное влияние на потребление энергии оказывает процессор, поэтому для оптимизации или настройки максимальной производительности в первую очередь следует обращать внимание на питание именно этого комплектующего. Об этом и пойдет речь далее.
Изменение стандартных параметров плана электропитания
Для начала поговорим о стандартных параметрах планов электропитания. Как известно, в ОС можно настроить сразу несколько профилей, чтобы быстро переключаться между ними. Сейчас мы разберем только текущий план, а вы, отталкиваясь от увиденных инструкций, сможете точно так же настроить и другие профили, изменяя только значения пунктов, чтобы создать необходимое питание для процессора.
Все остальные настройки плана электропитания в Windows 10 не имеют никакого отношения к процессору, поэтому мы их пропустим. Однако если вы хотите их изменить, сначала наведите курсор на пункт, чтобы отобразилась всплывающая подсказка. Там вы сможете узнать, за что отвечает конкретный параметр.
Что такое минимальное и максимальное состояние процессора в Windows 7 Power Management?
Эти параметры определяют диапазон состояний производительности (или P-состояний), которые будет использовать Windows. По сути, это будет изменять тактовую частоту процессора и, если поддерживается, напряжение и частоту FSB — увеличивать их в соответствии с требованиями рабочей нагрузки или уменьшать их для снижения энергопотребления и теплоотдачи.
Количество поддерживаемых P-состояний зависит от процессора, но обычно составляет 5-10. Поскольку Windows допускает в общей сложности 100 различных значений для состояния процессора, это означает, что не каждое значение приведет к использованию другого P-состояния. Другими словами, переход от 100% к 99% или даже к 90% может никак не повлиять на тактовую частоту. Кроме того, в зависимости от того, какие P-состояния поддерживаются, фактическая тактовая частота может значительно отличаться от ожидаемой в процентах; указание 50% в параметрах питания Windows не обязательно означает, что ваш процессор будет работать с тактовой частотой 50%. Например, на моем Core 2 Duo T9550 с номинальной тактовой частотой 2,66 ГГц установка состояния процессора на 50% не дает тактовой частоты 1,33 ГГц, как можно было бы ожидать. Вместо этого Windows выбирает самый низкий поддерживаемый множитель (FID 6),2
Кроме того, даже если минимальное состояние установлено на 1%, мой процессор не опустится ниже
800 МГц (SuperLFM), что является самой низкой поддерживаемой тактовой частотой (FSB 133 МГц × множитель 6 = 798 МГц); это 30% от номинальной тактовой частоты.
Согласно документации, доступной здесь :
Windows Vista использует алгоритм DBS, используя все доступные состояния производительности, которые находятся в пределах диапазона, описанного этими верхним и нижним пределами. При выборе нового целевого состояния производительности Windows Vista выбирает наиболее близкое соответствие между текущим параметром политики электропитания и состояниями, доступными в системе, при необходимости округляя их.
Таким образом, разумный выбор процентных значений для параметров электропитания Windows включает в себя выяснение того, какие P-состояния поддерживает ваш процессор, определение минимальной и максимальной тактовых частот, которые вы хотите использовать, а затем ввод процентов, которые приводят к этим тактовым частотам. Единого правильного ответа не существует, поскольку все зависит от ваших целей — хотите ли вы максимизировать производительность или срок службы батареи, снизить температуру или что-то еще полностью. Поэкспериментируйте и посмотрите, что лучше для вас. Лично я обнаружил, что установка минимума и максимума на 5% (достаточно низкое, чтобы заставить самый низкий множитель независимо от процессора) и 100%, соответственно, дает лучшие результаты. Да даже на батарейке. Хотя может показаться логичным установить максимальное состояние процессора менее 100% от батареи, по моему опыту это
1 Например, Intel Core 2 Duos, но не, как мне кажется, более новые процессоры Core i-серии. 2 Я использую TMonitor для контроля тактовой частоты процессора и wPrime, чтобы поднять процессор до максимально допустимой скорости.
Включение дополнительных параметров
По умолчанию один важный параметр питания процессора в рассмотренном выше меню не отображается, хотя он может быть полезен ряду пользователей. Эта настройка отвечает за ограничение частот процессора, то есть если их понизить, потребление энергии значительно снизится, но вместе с этим упадет и производительность. В случае заинтересованности данным параметром выполните следующие действия:
Если этот пункт в настройках плана электропитания вам больше не будет нужен, просто скройте его, установив значение 1 в рассмотренном только что параметре редактора реестра.
На что влияет количество ядер процессора?
Многие путают понятие количества ядер и частоту процессора. Если это сравнивать с человеком, то мозг это процессор, нейроны — это ядра. Ядра работают не во всех играх и приложениях. Если в игре например выполняется 2 процесса, один вырисовывает лес, а другой город и в игре заложено многоядерность, то понадобиться всего 2 ядра, чтобы загрузить эту картинку. А если в игре заложено больше процессов, то задействуют все ядра.
И может быть наоборот, игра или приложение может быть написана так, одно действие может выполнять только одно ядро и в этой ситуации выиграет процессор, у которого выше частота и наиболее хорошо сложена архитектура (по этому обычно процессоры Интел чуть выигрывают Амд).
По этому грубо говоря, количество ядер процессора, влияет на производительность и быстродействие.
Использование командной строки
Некоторым пользователям проще управлять компьютером, вводя команды в консоли. Настроить питание процессора тоже можно в этом приложении. Для этого понадобится выполнить всего пару простых действий и освоить несколько команд.
Меняйте все значения и псевдонимы на необходимые, чтобы успешно управлять значениями. Если вдруг при вводе команды возникнет какая-то ошибка, на экране отобразится отчет с рекомендациями по исправлению ситуации, что поможет разобраться с данной операцией даже начинающему пользователю.
Это были все сведения о настройке питания процессора в операционной системе Windows 10, о которых мы хотели рассказать. Не забывайте, что любые изменения как-то отражаются на быстродействии и энергопотреблении, поэтому производите конфигурацию с умом.
Мы рады, что смогли помочь Вам в решении проблемы. Добавьте сайт Lumpics.ru в закладки и мы еще пригодимся вам. Отблагодарите автора, поделитесь статьей в социальных сетях.
Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.
Краткое руководство по управлению питанием процессора
Как центральный процессор может сокращать собственное энергопотребление? Подробно рассказываем об особенностях этого процесса в статье.
Введение
Центральный процессор (CPU) спроектирован на бесконечно долгую работу при определенной нагрузке. Практически никто не проводит вычисления круглые сутки, поэтому большую часть времени он не работает на расчетном максимуме. Тогда какой смысл держать его включенным на полную мощность? Здесь стоит задуматься об управлении питанием процессора. Эта тема включает в себя оперативную память, графические ускорители и так далее, но я собираюсь рассказать только про CPU.
Если вы знаете про C-состояния (C-states), P-состояния (P-states) и то, как процессор переходит между ними, то, возможно, в этой статье вы не увидите ничего нового. Если это не так, продолжайте читать.
Я планировал добавить реальные примеры из ОС Linux, но статья становилась все больше, так что я решил приберечь это для следующей статьи.
Основные источники информации, использованные в этом тексте:
Все таблицы и изображения взяты из даташита, если не указано иного.
Особенности CPU
Согласно официальной странице продукта, мой процессор поддерживает следующие технологии:
На этой странице вы можете видеть, что «Режим состояния простоя (C-состояния) используется для энергосбережения, когда процессор бездействует» и «Стандартная технология Intel SpeedStep® позволяет переключать уровень напряжения и частоты в зависимости от нагрузки на процессор».
Теперь выясним, что значит каждое из этих определений.
Как снизить энергопотребление процессора во время его работы?
На процессорах для массового использования (мы не берем в расчет вещи, которые возможны при их проектировании) для снижения потребляемой энергии можно реализовать один из сценариев:
Первый вариант легко понять: если питания нет, то и потребления не будет.
Второй вариант требует чуть больше объяснений. Энергопотребление интегральной схемы, которой является процессор, линейно пропорционально тактовой частоте и квадратично напряжению.
Примечание для тех, кто разбирается в цифровой электронике:
Более того, напряжение и тактовая частота связаны линейной зависимостью.
Высокая производительность требует повышенной тактовой частоты и увеличения напряжения, что еще больше влияет на энергопотребление.
Каков предел энергопотребления процессора?
Это во многом зависит от процессора, но для процессора E3-1245 v5 @ 3.50 ГГц расчетная тепловая мощность (Thermal Design Power, TDP) составляет 80 ватт. Это среднее значение, которое процессор может выдерживать бесконечно долго (Power Limit, PL1 на изображении ниже). Системы охлаждения должны быть рассчитаны на это значение, чтобы быть надежными. Фактическое энергопотребление процессора может быть выше в течение короткого промежутка времени (состояния PL2, PL3, PL4 на изображении ниже). TDP измеряется при нагрузке высокой вычислительной сложности (худший случай), когда все ядра работают на базовой частоте (3.5 ГГц).
Как видно на изображении выше, процессор в состоянии PL2 потребляет больше энергии, чем заявлено в TDP. Процессор может находиться в этом состоянии до 100 секунд, а это достаточно долго.
Состояния питания (C-states) vs состояния производительности (P-states)
Вот два способа снизить энергопотребление процессора:
Они достигаются с помощью:
С-состояния описывают первый способ снижения энергопотребления процессора, поэтому они называются состояниями простоя. Чтобы отключить какую-то подсистему, на ней ничего не должно выполняться, подсистема должна простаивать. Таким образом, С-состояние, C[X], означает, что одна или несколько подсистем процессора отключены.
P-состояния описывают второй случай. Подсистемы процессора работают, но не требуют максимальной производительности, поэтому напряжение и/или тактовая частота для этой подсистемы может быть снижена. Таким образом, P-состояния, P[X], обозначают, что некоторая подсистема (например, ядро), работает на заданной паре (частота, напряжение).
Так как большинство современных процессоров состоит из нескольких ядер, то С-состояния разделены на С-состояния ядра (Core C-states, CC-states) и на С-состояния процессора (Package C-states, PC-states). Причина появления PC-состояний очень проста. Существуют компоненты с общим доступом (например, общий кэш), которые могут быть отключены только после отключения всех ядер, имеющих доступ к этому компоненту. Однако мы в роли пользователя или программиста не можем взаимодействовать с состояниями пакета напрямую, но можем управлять состояниями отдельных ядер. Таким образом, управляя CC-состояниями, мы косвенно управляем и PC-состояниями.
Состояния нумеруются от нуля по возрастанию, то есть C0, C1… и P0, P1… Большее число обозначает большее энергосбережение. C0 означает, что все компоненты включены. P0 означает максимальную производительность, то есть максимальные тактовую частоту, напряжение и энергопотребление.
С-состояния
Вот базовые С-состояния (определенные в стандарте ACPI).
Современные процессоры имеют гораздо больше C-состояний. Согласно даташиту, семейство процессоров Intel® Xeon® E3-1200 v5 поддерживает состояния C0, C1, C1E (C1 Enhanced), C2, C3, C6, C7 и C8. Состояния C1 и C1E поддерживаются только ядрами, а состояние C2 — только процессором. Остальные состояния поддерживаются и ядром, и процессором.
Примечание: Из-за технологии Intel® Hyper-Threading существуют также С-состояния потоков. Хотя отдельный поток может работать с С-состояниями, изменения в энергопотреблении происходят, только когда ядро входит в нужное состояние. В данной статье тема C-состояний на потоках рассматриваться не будет.
Вот описание состояний из даташита:
Примечание: LLC обозначает Last Level Cache, кэш последнего уровня и обозначает общий L3 кэш процессора.
Визуальное представление состояний:
Последовательность C-состояний простыми словами:
Как вы могли догадаться, CC-состояния и PC-состояния зависят друг от друга, поэтому некоторые их комбинации невозможны. Следующий рисунок демонстрирует это.
Однако если ядро работает (C0), то единственное состояние, в котором может находиться процессор, — C0. С другой стороны, если ядро полностью выключено (C8), процессор может находиться в C0, если другое ядро работает.
Примечание: Intel Software Developer’s Manual упоминает про суб-C-состояния (sub C-state). Каждое С-состояние состоит из нескольких суб-С-состояний. После изучения исходного кода модуля ядра intel_idle я понял, что состояния C1 и C1E являются состоянием С1 с подтипом 0 и 1 соответственно.
Число подтипов для каждого из восьми С-состояний (0..7) определяется с помощью инструкции CPUID. Для моего процессора утилита cpuid выводит следующую информацию:
Замечание из инструкции Intel: «Состояния C0..C7 для расширения MWAIT — это специфичные для процессора C-состояния, а не ACPI C-состояния». Поэтому не путайте эти состояния с ACPI C-состояниями, они явно связаны и между ними есть соответствие, но это не одно и то же.
Я создал гистограмму, представленную ниже, из исходного кода драйвера intel_idle для моего процессора (модель 0x5e). Подписи горизонтальной оси:
Имя C-состояния:специфичное для процессора состояние:специфичное суб-состояние.
Вертикальная ось обозначает задержку выхода и целевые резидентные значения из исходного кода. Задержка выхода используется для оценки влияния данного состояния в реальном времени (то есть сколько времени потребуется для возвращения в С0 из этого состояния). Целевое резидентное значение обозначает минимальное время, которое ядро должно находиться в данном состоянии, чтобы оправдать энергетические затраты на переход в это состояние и обратно. Обратите внимание на логарифмический масштаб вертикальной оси. Задержки и минимальное время нахождения в состоянии увеличивается экспоненциально с увеличением номера состояния.
Примечание: Хотя состояния С9 и С10 включены в таблицу, они имеют 0 суб-состояний и поэтому не используются в моем процессоре. Остальные процессоры из семейства могут поддерживать эти состояния.
Состояния питания ACPI
Прежде чем говорить про P-состояния, стоит упомянуть про состояния питания ACPI. Это то, что мы, пользователи, знаем, когда используем компьютер. Так называемые глобальные системные состояния (G[Х]) перечислены в таблице ниже.
Также существует специальное глобальное состояние G1/S4, Non-Volatile Sleep, когда состояние системы сохраняется на энергонезависимое хранилище (например, диск) и затем производится выключение. Это позволяет достичь минимального энергопотребления, как в состоянии Soft Off, но возвращение в состояние G0 возможно без перезагрузки. Оно более известно как гибернация.
Существует несколько состояний сна (Sx). Всего таких состояний шесть, включая S0 — отсутствие сна. Состояния S1-S4 используются в G1, а S5, Soft Off, используется в G2. Краткий обзор:
Как показано на рисунке ниже, для моего процессора все С-состояния, упомянутые ранее, используются в G0/S0. Другими словами, при входе в состояние сна (G1) процессор выключается.
Вот поддерживаемые состояния ACPI.
Комбинации состояний ACPI G/S и С-состояний процессора
Приятно видеть все комбинации в таблице:
В состоянии G0/S0/C8 системы процессора запущены, но все ядра отключены.
В G1 (S3 или S4) некорректно говорить про С-состояния (это касается как CC-состояний, так и PC-состояний), так как процессор полностью обесточен.
Для G3 не существует S-состояний. Система не спит, она физически отключена и не может проснуться. Ей необходимо сначала получить питание.
Как программно запросить переход в энергосберегающее С-состояние?
Современный (но не единственный) способ запросить переход в энергосберегающее состояние — это использовать инструкцию MWAIT или инструкцию HLT. Это инструкции привилегированного уровня, и они не могут быть выполнены пользовательскими программами.
Инструкция MWAIT (Monitor Wait) заставляет процессор перейти в оптимизированное состояние (C-состояние) до тех пор, пока по указанному (с помощью другой инструкции, MONITOR) адресу не будет произведена запись. Для управления питанием MWAIT работает с регистром EAX. Биты 4-7 используются для указания целевого С-состояния, а биты 0-3 указывают суб-состояние.
Примечание: Я думаю, что на данный момент только AMD обладает инструкциями MONITORX/MWAITX, которые, помимо мониторинга записи по адресу, работают с таймером. Это еще называется Timed MWAIT.
Инструкция HLT (halt) останавливает выполнение, и ядро переходит в состояние HALT до тех пор, пока не произойдет прерывание. Это означает, что ядро переходит в состояние C1 или C1E.
Что вынуждает ядро входить в определенное С-состояние?
Хочу напомнить еще раз, я не затрагиваю гипертрединг в этом ответе.
Как отмечалось ранее, переходы между глубокими С-состояниями имеют высокие задержки и высокие энергетические затраты. Таким образом, такие переходы должны выполняться с осторожностью, особенно на устройствах, работающих от аккумуляторов.
Возможно ли отключить С-состояния (всегда использовать С0)?
Это возможно, но не рекомендуется. В даташите (секция 4.2.2, страница 64) есть примечание: «Долгосрочная надежность не гарантируется, если все энергосберегающие состояния простоя не включены». Поэтому вам не стоит отключать С-состояния.
Как прерывания влияют на процессор/ядро в состоянии сна?
Когда происходит прерывание, соответствующее ядро пробуждается и переходит в состояние С0. Однако, например Intel Xeon E3-1200 v5, поддерживает технологию Power Aware Interrupt Routing (PAIR), у которой есть два достоинства:
P-состояния
P-состояния подразумевают, что ядро в состоянии С0, потому что ему требуется питание, чтобы выполнять инструкции. P-состояния позволяют изменять напряжение и частоту ядра (другими словами рабочий режим), чтобы снизить энергопотребление. Существует набор P-состояний, каждое из которых соответствует разных рабочим режимам (пары напряжение-частота). Наиболее высокий рабочий режим (P0) предоставляет максимальную производительность.
Процессор Intel Xeon E3–1200 v5 позволяет контролировать P-состояния из операционной системы (Intel SpeedStep® Technology) или оставить это оборудованию (Intel® Speed Shift Technology). Вся информация ниже специфична для семейства Intel Xeon E3-1200 v5, но я полагаю, это в той или иной степени актуально и для других современных процессоров.
P-состояния, управляемые операционной системой
В этом случае операционная система знает о P-состояниях и конкретном состоянии, запрошенным ОС. Проще говоря, операционная система выбирает рабочую частоту, а напряжение подбирается процессором в зависимости от частоты и других факторов. После того, как P-состояние запрошено записью в моделезависимый регистр (подразумевается запись 16 бит в регистр IA32_PERF_CTL), напряжение изменяется до автоматически вычисленного значения и тактовый генератор переключается на заданную частоту. Все ядра имеют одно общее P-состояние, поэтому невозможно установить P-состояние эксклюзивно для одного ядра. Текущее P-состояние (рабочий режим) можно узнать, прочитав информацию из другого моделезависимого регистра — IA32_PERF_STATUS.
Смена P-состояния мгновенна, поэтому в секунду можно выполнять множество переходов. Это отличает от переходов C, которые выполняются дольше и требуют энергетических затрат.
P-состояния, управляемые оборудованием
В этом случае ОС знает об аппаратной поддержке P-состояний и отправляет запросы с указанием нагрузки. В запросах не указывается конкретное P-состояние или частота. На основе информации от ОС, а также других факторов и ограничений оборудование выбирает подходящее P-состояние.
Я хочу рассказать об этом подробнее в следующей статье, но сейчас я поделюсь с вами своими мыслями. Мой домашний компьютер работает в этом режиме, я узнал это, проверив IA32_PM_ENABLE. Максимальный (но не гарантированный) уровень производительности — 39, минимальный — 1. Можно предположить, что существует 39 P-состояний. На данный момент уровень 39 установлен ОС как минимальный и как максимальный, потому что я отключил динамическое изменение частоты процессора в ядре.
Заметки про Intel® Turbo Boost
Поскольку TDP (расчетная тепловая мощность) — это максимальная мощность, которую процессор может выдержать, то процессор может повышать свою частоту выше базовой, при условии что энергопотребление не превысит TDP. Технология Turbo Boost может временно повышать энергопотребление до границы PL2 (Power Limit 2) на короткий промежуток времени. Поведение Turbo Boost может быть изменено через подсказки оборудованию.
Применима ли эта информация о C-состояниях и P-состояниях к мобильным и встраиваемым процессорам?
Для примера, недавний MacBook Air с процессором i5-5350U в основном поддерживает возможности, описанные выше (но я не уверен про P-состояния, контролируемые оборудованием). Я также смотрел документацию ARM Cortex-A, и, хотя там применяются другие термины, механизмы управления питанием выглядят похоже.
Как это все работает, например, на Linux?
На этот вопрос я отвечу в другой статье.
Как я могу узнать состояние процессора?
Существует не так много приложений, которые могут выводить эту информацию. Но вы можете использовать, например, CoreFreq.
Вот какую информацию можно получить (это не весь вывод).
Вот информация о ядре, включая информацию о драйвере idle.
Мониторинг счетчиков С-состояний (для ядра):
Эта статья является переводом.
Оригинальный текст по ссылке.