Как отключить ядра процессора
Здравствуй, хабра-человек.
Как известно, Microsoft очень хорошо потрудилась над своим последним детищем по имени Windows 7 и внесла много различных нововведений, об одном из которых я и хочу рассказать. Особенно актуально, я думаю, это будет для владельцев ноутбуков и нетбуков, но и пользователи настольных систем так же могут получить профит.
Как известно, самое большое новшество в «семерке» (после GUI) — это переработанная подсистема ACPI. Тут и нормальная поддержка многоядерных систем, и управление питанием устройств, мониторинга аппаратных средств, да и много чего еще, но одна очень интересная возможность остается за кадром — речь идет об энергопотреблении и управлении ядрами многоядерных/многопроцессорных систем.
Windows 7 позволяет управлять электропитанием процессоров, а так же назначать политики активности/простоя ядер.
При работе на многоядерных процессорах производится постоянная ротация потоков между ядрами и система переносит поток с более загруженных на менее загруженные ядра, что обеспечивает равномерную загрузку всех ядер, но и не менее равномерное энергопотребление, приводит к потере производительности и повышению энергопотребления, а это сказывается в первую очередь на сроке работы от аккумулятора. Сегодня я попытаюсь «восстановить справедливость» штатными средствами ОС.
В Windows 7 и Windows 2008 R2, была реализована функция «Processor performance core parking» или по нашему — «Система парковки ядра», которая оставляет выполнение процесса на том ядре, на котором он начался, до полного его завершения. Такой подход позволяет получить более динамичную систему и значительно снизить потребление энергии.
В отличии от штатного режима работы, когда процессы постоянно переносятся с одного ядра на другое, равномерно загружая ЦП, Система парковки позволяет подключать ядра по мере необходимости, стараясь сложить все задачи на минимальное количество ядер (в идеале на одно).
Пример: На четырех-ядерном процессоре в период простоя будет использоваться только одно ядро, остальные будут запаркованы и отключены, а в период нагрузки будут подключены остальные ядра.
Как программно запросить переход в энергосберегающее С-состояние?
Современный (но не единственный) способ запросить переход в энергосберегающее состояние — это использовать инструкцию 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) есть примечание: «Долгосрочная надежность не гарантируется, если все энергосберегающие состояния простоя не включены». Поэтому вам не стоит отключать С-состояния.
P-состояния
P-состояния подразумевают, что ядро в состоянии С0, потому что ему требуется питание, чтобы выполнять инструкции. P-состояния позволяют изменять напряжение и частоту ядра (другими словами рабочий режим), чтобы снизить энергопотребление. Существует набор P-состояний, каждое из которых соответствует разных рабочим режимам (пары напряжение-частота). Наиболее высокий рабочий режим (P0) предоставляет максимальную производительность.
Процессор Intel® Xeon® E3–1200 v5 позволяет контролировать P-состояния из операционной системы (Intel® SpeedStep Technology) или оставить это оборудованию (Intel® Speed Shift Technology). Вся информация ниже специфична для семейства Intel® Xeon® E3-1200 v5, но я полагаю, это в той или иной степени актуально и для других современных процессоров.
Применима ли эта информация о C-состояниях и P-состояниях к мобильным и встраиваемым процессорам?
Для примера, недавний MacBook Air с процессором i5-5350U в основном поддерживает возможности, описанные выше (но я не уверен про P-состояния, контролируемые оборудованием). Я также смотрел документацию ARM Cortex-A, и, хотя там применяются другие термины, механизмы управления питанием выглядят похоже.
Что вынуждает ядро входить в определенное С-состояние?
Как отмечалось ранее, переходы между глубокими С-состояниями имеют высокие задержки и высокие энергетические затраты. Таким образом, такие переходы должны выполняться с осторожностью, особенно на устройствах, работающих от аккумуляторов.
Заметки про Intel® Turbo Boost
Поскольку TDP (расчетная тепловая мощность) — это максимальная мощность, которую процессор может выдержать, то процессор может повышать свою частоту выше базовой, при условии что энергопотребление не превысит TDP. Технология Turbo Boost может временно повышать энергопотребление до границы PL2 (Power Limit 2) на короткий промежуток времени. Поведение Turbo Boost может быть изменено через подсказки оборудованию.
Как снизить энергопотребление процессора во время его работы?
На процессорах для массового использования (мы не берем в расчет вещи, которые возможны при их проектировании) для снижения потребляемой энергии можно реализовать один из сценариев:
- Сократить энергопотребление подсистемы (ядра или другого ресурса, такого как тактовый генератор или кэш) путем отключения питания (уменьшив напряжение до нуля).
- Снизить энергопотребление путем снижения напряжения и/или таковой частоты подсистемы и/или целого процессора.
Второй вариант требует чуть больше объяснений. Энергопотребление интегральной схемы, которой является процессор, линейно пропорционально тактовой частоте и квадратично напряжению.
Примечание для тех, кто разбирается в цифровой электронике: Pcpu = Pdynamic + Pshort circuit + Pleak. При работающем процессоре Pdynamic является наиболее важной составляющей, именно эта часть зависит линейно от частоты и квадратично от напряжения. Pshort circuit пропорционально частоте, а Pleak — напряжению.
Более того, напряжение и тактовая частота связаны линейной зависимостью.
Высокая производительность требует повышенной тактовой частоты и увеличения напряжения, что еще больше влияет на энергопотребление.
Как прерывания влияют на процессор\ядро в состоянии сна?
Когда происходит прерывание, соответствующее ядро пробуждается и переходит в состояние С0. Однако, например Intel® Xeon® E3-1200 v5, поддерживает технологию Power Aware Interrupt Routing (PAIR), у которой есть два достоинства:
- для энергосбережения прерывание может быть переадресовано работающему ядру, чтобы не будить спящее ядро;
- для производительности прерывание может быть переадресовано от работающего на полную мощность ядра к простаивающему (С1) ядру.
P-состояния, управляемые оборудованием
В этом случае ОС знает об аппаратной поддержке P-состояний и отправляет запросы с указанием нагрузки. В запросах не указывается конкретное P-состояние или частота. На основе информации от ОС, а также других факторов и ограничений оборудование выбирает подходящее P-состояние.
Я хочу рассказать об этом подробнее в следующей статье, но сейчас я поделюсь с вами своими мыслями. Мой домашний компьютер работает в этом режиме, я узнал это, проверив IA32_PM_ENABLE. Максимальный (но не гарантированный) уровень производительности — 39, минимальный — 1. Можно предположить, что существует 39 P-состояний. На данный момент уровень 39 установлен ОС как минимальный и как максимальный, потому что я отключил динамическое изменение частоты процессора в ядре.
Разблокировать ядра для приложений
Стоит обратить внимание, что приложения создаются на основе инструментов, предоставленных Microsoft. Поэтому приложение создаётся с необходимыми условиями использования многопоточности или одного ядра. Если приложение создано с учётом использования одного ядра, разблокировав их все, разницы в производительности Вы не заметите.
Но бывают разные случаи, когда их разблокировка помогала устранить некоторые проблемы производительности и лагов. Для этого откройте Диспетчер задач (Ctrl+Shift+Esc) и пройдите во вкладку Подробности . Среди большого количества приложений, найдите нужное и нажмите ПКМ. Затем, выберите задать сходство и в следующем окне выберите «Все процессоры» .
Как я могу узнать состояние процессора?
Существует не так много приложений, которые могут выводить эту информацию. Но вы можете использовать, например, CoreFreq.
Наверняка вы слышали миф, если включить в работу все ядра процессора в Windows 10, то система станет работать быстрее. Это неверное суждение, и задействование всех ядер не приведет ни к какому результату в производительности. Дело в том, что материнские платы используют по умолчанию многоядерность "All Core" в самом BIOS и система Windows 10 работает автоматически на все ядра. Не верите? Откройте тогда диспетчер задач и посмотрите нагрузку на все ядра при использовании каких-либо действий в системе.
В первую очередь, включение всех ядер CPU или отключение 50%, может позволить разработчику проверить работу приложения. Также, в некоторых планшетах под управлением Windows 10, включение всех ядер процессора, действительно может помочь ускорить работу системы, но это редкое исключение, которое нужно проверить в диспетчере задач или самих параметрах BIOS. Интересным моментом можно считать и энергоэффективность в ноутбках. Если мощный ноутбук с прожорливым процессором, то можно отключить пару ядер, чтобы увеличит работу автономности от батареи.
Введение в тему
Изначально такая функция не всегда работала хорошо (или вообще не работала), но современные производители давно устранили все проблемы. Отрицательного эффекта не существует, т. е. увеличение потребления энергии под нагрузкой и, следовательно, увеличение теплоотдачи – это обычная система охлаждения для процессора. Единственное, что может случиться, это некоторое снижение восприимчивости системы к разгону. Вам не стоит увеличивать нагрузки и питание системных ядер.
Современные процессоры обладают огромной вычислительной мощью. Достигаются такие показатели не столько архитектурой процессоров, сколько количеством ядер и их частотой. Одноядерные системы не будут выполнять более сложные задачи. Сначала появились двухъядерные процессоры, более поздние – четырёхъядерные, а в последнее время количество ядер процессора достигает 10. Они предлагаются как AMD, так и Intel, причем первая компания также продаёт очень популярные трёхъядерные процессоры.
Первоначально создание трёхъядерных систем явилось проявлением удивительной хитрости AMD. Часто одно из ядер четырёхъядерных процессоров оказывалось повреждённым. Поскольку остальные три работали хорошо, на рынке появились процессоры с заблокированным одним ядром, которое было сломано. Из-за этого пользователи Windows 7 и начали пытаться запустить все ядра процессора.
Теоретически это не проблема. Однако, как и в жизни, теория и практика необязательно должны следовать одним и тем же путём. Проблема заключается в структуре программного обеспечения. Многие приложения просто не могут использовать многопоточность. Они были адаптированы для оптимальной работы в одном, а иногда и в двух потоках, и, следовательно, все «сверхштатные» ядра остаются неиспользованными. Что ещё хуже, в такой ситуации гораздо более дешёвый процессор, но с более быстрыми ядрами может демонстрировать более высокую производительность, чем демон с многоядерной скоростью, имея несколько ограниченную частоту синхронизации. Это не конец дефектов. Ядра, которые не задействованы, потребляют столько же энергии, сколько используется в любой момент времени.
Таким образом, мы имеем аналогичную ситуацию, как в случае пробок. У вас может даже быть Ferrari с двигателем мощностью 500 лошадиных сил, но вы не используете эту мощность, а топливо исчезает из бака с угрожающей скоростью, и вы едете медленнее, чем Fiat на соседней полосе.
С-состояния
Вот базовые С-состояния (определенные в стандарте ACPI).
- C0: Active, процессор/ядро выполняет инструкции. Здесь применяются P-состояния, процессор/ядро могут работать в режиме максимальной производительности (P0) или в режиме энергосбережения (в состоянии, отличном от P0).
- C1: Halt, процессор не выполняет инструкций, но может мгновенно вернуться в состояние С0. Поскольку процессор не работает, то P-состояния не актуальны для состояний, отличных от С0.
- C2: Stop-Clock, схож с C1, но требует больше времени для возврата в C0.
- С3: Sleep. Возврат в C0 требует ощутимо большего времени.
Примечание: Из-за технологии Intel® Hyper-Threading существуют также С-состояния потоков. Хотя отдельный поток может работать с С-состояниями, изменения в энергопотреблении происходят, только когда ядро входит в нужное состояние. В данной статье тема C-состояний на потоках рассматриваться не будет.
Вот описание состояний из даташита:
Примечание: LLC обозначает Last Level Cache, кэш последнего уровня и обозначает общий L3 кэш процессора.
Визуальное представление состояний:
Источник: Software Impact to Platform Energy-Efficiency White Paper
Последовательность C-состояний простыми словами:
- Нормальная работа при C0.
- Сначала останавливается тактовый генератор простаивающего ядра (С1).
- Затем локальные кэши ядра (L1/L2) сбрасываются и снимается напряжение с ядра (С3).
- Как только все ядра отключены, общий кэш (L3/LLC) ядер сбрасывается и процессор (почти) полностью может быть обесточен. Я говорю «почти», потому что, по моим предположениям, какая-то часть должна быть активна, чтобы вернуть процессор в состояние С0.
Однако если ядро работает (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_idle для моего процессора (модель 0x5e). Подписи горизонтальной оси:
Имя C-состояния: специфичное для процессора состояние: специфичное суб-состояние.
Вертикальная ось обозначает задержку выхода и целевые резидентные значения из исходного кода. Задержка выхода используется для оценки влияния данного состояния в реальном времени (то есть сколько времени потребуется для возвращения в С0 из этого состояния). Целевое резидентное значение обозначает минимальное время, которое ядро должно находиться в данном состоянии, чтобы оправдать энергетические затраты на переход в это состояние и обратно. Обратите внимание на логарифмический масштаб вертикальной оси. Задержки и минимальное время нахождения в состоянии увеличивается экспоненциально с увеличением номера состояния.
Константы задержок выхода и целевых резидентных значении C-состояний в исходном коде intel_idle
Примечание: Хотя состояния С9 и С10 включены в таблицу, они имеют 0 суб-состояний и поэтому не используются в моем процессоре. Остальные процессоры из семейства могут поддерживать эти состояния.
Включение и отключение ядер процессора в Windows 10
Нажмите сочетание кнопок на клавиатуре Win+R и введите msconfig.
В новом окне перейдите во вкладку "Загрузка", выделите операционную систему Windows 10, и ниже нажмите на "Дополнительные параметры". Появится еще одно новое окно, где будет графа "Число процессов". Когда галочка не установлена, то Windows 10 работает на все ядра автоматически. Если вы хотите уменьшить количества ядер, то установите галочку и выберите количества ядер CPU для работы в системе.
Как это все работает, например, на Linux?
На этот вопрос я отвечу в другой статье.
P-состояния, управляемые операционной системой
В этом случае операционная система знает о P-состояниях и конкретном состоянии, запрошенным ОС. Проще говоря, операционная система выбирает рабочую частоту, а напряжение подбирается процессором в зависимости от частоты и других факторов. После того, как P-состояние запрошено записью в моделезависимый регистр (подразумевается запись 16 бит в регистр IA32_PERF_CTL), напряжение изменяется до автоматически вычисленного значения и тактовый генератор переключается на заданную частоту. Все ядра имеют одно общее P-состояние, поэтому невозможно установить P-состояние эксклюзивно для одного ядра. Текущее P-состояние (рабочий режим) можно узнать, прочитав информацию из другого моделезависимого регистра — IA32_PERF_STATUS.
Смена P-состояния мгновенна, поэтому в секунду можно выполнять множество переходов. Это отличает от переходов C, которые выполняются дольше и требуют энергетических затрат.
Как включить Turbo Boost
Технология Turbo Boost включена в меню настройки BIOS, очевидно, что производитель материнской платы предоставил ей соответствующую функцию. Информация о меню, в котором вы должны его искать (в некоторых случаях это называется Turbo Mode), содержится в руководстве материнской платы. В основном это Advanced, Advanced CPU Features, Performance или специальные, такие как AI Tweaker или MIT, которые собирают функции, связанные с разгоном оборудования. Комбинированное увеличение производительности благодаря технологии Turbo Boost даётся стандартным программным обеспечением Mark Vantage и приростом производительности в 3D Mark Vantage. Вы можете заряжать отдельные процессорные ядра программой Cinebench.
Состояния питания ACPI
Прежде чем говорить про P-состояния, стоит упомянуть про состояния питания ACPI. Это то, что мы, пользователи, знаем, когда используем компьютер. Так называемые глобальные системные состояния (G[Х]) перечислены в таблице ниже.
Источник: ACPI Specification v6.2
Также существует специальное глобальное состояние G1/S4, Non-Volatile Sleep, когда состояние системы сохраняется на энергонезависимое хранилище (например, диск) и затем производится выключение. Это позволяет достичь минимального энергопотребления, как в состоянии Soft Off, но возвращение в состояние G0 возможно без перезагрузки. Оно более известно как гибернация.
Существует несколько состояний сна (Sx). Всего таких состояний шесть, включая S0 — отсутствие сна. Состояния S1-S4 используются в G1, а S5, Soft Off, используется в G2. Краткий обзор:
- G0/S0: Компьютер работает, не спит.
- G1: Sleeping.
- G1/S1: Power on Suspend. Состояние системы сохраняется, питание процессора и кэшей поддерживается.
- G1/S2: Процессор отключен, кэши сброшены.
- G1/S3: Standby или Suspend to RAM (STR). Оперативная память остается практически единственным компонентом с питанием.
- G1/S4: Hibernation или Suspend to Disk. Все сохраняется в энергонезависимую память, все системы обесточиваются.
Вот поддерживаемые состояния ACPI.
Комбинации состояний ACPI G/S и С-состояний процессора
Приятно видеть все комбинации в таблице:
В состоянии G0/S0/C8 системы процессора запущены, но все ядра отключены.
В G1 (S3 или S4) некорректно говорить про С-состояния (это касается как CC-состояний, так и PC-состояний), так как процессор полностью обесточен.
Для G3 не существует S-состояний. Система не спит, она физически отключена и не может проснуться. Ей необходимо сначала получить питание.
Как разблокировать ядра на процессорах AMD?
ЦП семейства Phenom II, Athlon X2, Athlon II, Sempron обладают скрытым потенциалом в виде заблокированных ядер. Суть скрытых ядер заключается в отбраковке ЦП с бòльшим их количеством (показатели не вписываются в стандартные, ошибки, перегрев и т.д.). Например, Вы покупаете 2-ядерный ЦП, у которого их физически 4, но они не активны.
Одной из самых интересных новых технологий, реализованных в процессорах Intel и AMD, является турборежим. Он позволяет увеличить множитель процессора и, таким образом, увеличить тактовую частоту. А это повысит производительность. Процессору с большим количеством ядер требуется больше энергии. Это связано с увеличением теплоотдачи. В результате частота синхронизации систем с большим количеством ядер часто меньше двух или одноядерных систем, что заставляет владельцев Windows 10 задумываться о включении всех ядер.
Повышение мощности процессора в Windows.
Способы включения
Решением всех этих проблем является турборежим, связанный с системой выключения или ограничения скорости работы остальных ядер. Частота синхронизации ядер современного процессора – это базовое значение (в случае процессоров Intel – 133,3 МГц, AMD – 200 МГц), умноженное на соответствующее число, присвоенное данной модели. Например, AMD Phenom II X6 1055T работает на частоте 2800 МГц (200 МГц x 14) и Intel Core i7 870 2933 МГц (133,3 МГц x 22). Число, на которое мы умножаем выходное значение, является множителем. AMD давно признала, что, когда вам не нужна полная мощность процессора, множитель может быть уменьшен, и, следовательно, потребление энергии и тепловыделение уменьшаются. Режим Turbo – это обратная процедура – если вам нужно больше мощности, увеличивается множитель и рабочая частота. Однако сделать это непросто.
Простое увеличение множителя приведёт к превышению значения максимальной мощности тепловой проекции процессора. Не вдаваясь в подробности (AMD и Intel определяют этот параметр совершенно по-другому), его можно определить как мощность тепла, излучаемого процессором, поэтому его превышение может привести к перегреву и повреждению системы. Простейшая защита, которую используют производители, отключает турборежим после превышения максимального значения множителя.
Чтобы избежать этого, используется процедура, теоретическая основа которой мы объясняли в начале статьи: множитель более сильно увеличивается только в ядрах, которые выполняют вычисления, и в то же время остальные отключены или сильно замедлены. В результате приложение, которое не должно использовать все ядра, может работать намного эффективнее, процессор не будет использовать больше энергии, значение теплового выделения не будет превышено, а система охлаждения будет работать без проблем. Первой была Intel, которая представила технологию Turbo Boost в своих процессорах Core i7 900 на LGA 1366. Турбо режим работал в них довольно просто, увеличивая множитель всех ядер, ограничиваясь максимальным значением TDP.
Core i7 800 и Core i5 600 используют турбо режим чрезвычайно плавно, но ещё лучше в этом отношении – новейшие процессоры для ноутбуков Intel. Они использовали технологию Turbo Boost в мастер-версии. Как вы знаете, у них есть встроенная графическая карта, а технология Turbo Boost включает обе системы, то есть процессор и графический процессор. Сам масштаб тактовых процессоров в версиях ноутбуков, часто до нескольких десятков процентов, впечатляет, но Intel пошёл дальше. В случае интенсивного использования графической системы частота его работы также может быть увеличена, в результате чего рабочая частота ядер становится ограничена, чтобы не превышать максимальное значение TDP. Процессор работает идеально и гармонично, принимая во внимание не только потребность в вычислительной мощности ядер, но и интегрированный графический макет. Последние процессоры Intel работают лучше, потому что, когда множитель ядра увеличен, неактивные ядра полностью отключены.
Каков предел энергопотребления процессора?
Это во многом зависит от процессора, но для процессора E3-1245 v5 @ 3.50 ГГц расчетная тепловая мощность (Thermal Design Power, TDP) составляет 80 ватт. Это среднее значение, которое процессор может выдерживать бесконечно долго (Power Limit, PL1 на изображении ниже). Системы охлаждения должны быть рассчитаны на это значение, чтобы быть надежными. Фактическое энергопотребление процессора может быть выше в течение короткого промежутка времени (состояния PL2, PL3, PL4 на изображении ниже). TDP измеряется при нагрузке высокой вычислительной сложности (худший случай), когда все ядра работают на базовой частоте (3.5 ГГц).
Как видно на изображении выше, процессор в состоянии PL2 потребляет больше энергии, чем заявлено в TDP. Процессор может находиться в этом состоянии до 100 секунд, а это достаточно долго.
Запустить все ядра процессора Windows 10
По умолчанию, системы Windows используют всю мощность ЦП, для достижения наибольшей производительности. Но при возникновении сбоев работы компьютера или воздействии вирусов, количество работающих потоков может отличаться от максимального.
Для начала, проверим ЦП на «многоядерность».
Откройте «Диспетчер устройств» (Win+X) и раскройте список Процессоры.
Если у Вас не многопроцессорная система (когда материнская плата позволяет использовать больше одного CPU, встречается в серверном сегменте компьютеров), но будет отображаться количество всех вычислительных ядер процессора (и физические и логические потоки).
Вы также можете уточнить спецификацию Вашего ЦП на сайте производителя – Intel или AMD.
Еще проверить количество можно через редактор реестра Windows. Откройте редактор реестра (regedit) и пройдите по пути:В данной ветке будет указана информация о версии, модели, ревизии, частоте и других параметрах ЦП.
Настроить количество ядер на Windows 10 можно в параметрах Конфигурации системы. Для этого откройте окно Выполнить (Win+R) и введите команду msconfig .
Откройте вкладку Загрузка и нажмите на Дополнительные параметры…
Перед нами появится окно настройки памяти и ядер процессора.
По умолчанию, все галочки должны быть сняты (количество ядер при этом указывается как 1) и данные параметры неактивны. Чтобы активировать все ядра процессора Windows 10, поставьте галочку «Число процессоров» и в выпадающем меню, выберите максимально доступное число (в нашем случае это 8).
Нажмите ОК и выполните перезагрузку для внесения изменений в систему.
Включить второе ядро процессора Windows 10 можно таким же образом, выставив значение 2 или сняв галочку с «Числа процессоров», в этом случае число будет определяться на основе данных UEFI (BIOS).
Риск отказа
Даже сегодня нет полной уверенности в успехе операции. Вы всегда можете найти процессор, где заблокированные ядра будут повреждены. Это проявляется по-разному, наиболее очевидным будет отсутствие возможности разблокировать ядро. Также может случиться, что ядро начнёт работать, но система будет очень неустойчивой, или нестабильность может быть обнаружена только после долгой работы при высокой нагрузке. Конечно, всегда стоит его проверить, выполнив как можно больше различных тестов.
Покупка трёхъядерного процессора в сочетании с жёстким диском, видеокартой и другими компонентами с учётом риска разблокировки обычно имеет мало смысла или вообще не имеет его. Но чем дешевле плата и процессор, тем больше их владелец будет заинтересован в приобретении дополнительной вычислительной мощности бесплатно. Таким образом, функция разблокировки ядер может быть большим преимуществом дешёвых плат.
Как центральный процессор может сокращать собственное энергопотребление? Основы этого процесса — в статье.
Центральный процессор (CPU) спроектирован на бесконечно долгую работу при определенной нагрузке. Практически никто не проводит вычисления круглые сутки, поэтому большую часть времени он не работает на расчетном максимуме. Тогда какой смысл держать его включенным на полную мощность? Здесь стоит задуматься об управлении питанием процессора. Эта тема включает в себя оперативную память, графические ускорители и так далее, но я собираюсь рассказать только про CPU.
Если вы знаете про C-состояния (C-states), P-состояния (P-states) и то, как процессор переходит между ними, то, возможно, в этой статье вы не увидите ничего нового. Если это не так, продолжайте читать.
Я планировал добавить реальные примеры из ОС Linux, но статья становилась все больше, так что я решил приберечь это для следующей статьи.Основные источники информации, использованные в этом тексте:
Состояния питания (C-states) vs состояния производительности (P-states)
Состояния питания (C-states) vs состояния производительности (P-states)
Вот два способа снизить энергопотребление процессора:- отключить некоторые подсистемы;
- снизить напряжение/частоту.
P-состояния описывают второй случай. Подсистемы процессора работают, но не требуют максимальной производительности, поэтому напряжение и/или тактовая частота для этой подсистемы может быть снижена. Таким образом, P-состояния, P[X], обозначают, что некоторая подсистема (например, ядро), работает на заданной паре (частота, напряжение).
Так как большинство современных процессоров состоит из нескольких ядер, то С-состояния разделены на С-состояния ядра (Core C-states, CC-states) и на С-состояния процессора (Package C-states, PC-states). Причина появления PC-состояний очень проста. Существуют компоненты с общим доступом (например, общий кэш), которые могут быть отключены только после отключения всех ядер, имеющих доступ к этому компоненту. Однако мы в роли пользователя или программиста не можем взаимодействовать с состояниями пакета напрямую, но можем управлять состояниями отдельных ядер. Таким образом, управляя CC-состояниями, мы косвенно управляем и PC-состояниями.
Состояния нумеруются от нуля по возрастанию, то есть C0, C1… и P0, P1… Большее число обозначает большее энергосбережение. C0 означает, что все компоненты включены. P0 означает максимальную производительность, то есть максимальные тактовую частоту, напряжение и энергопотребление.
Как отключить ядро процессора в Windows 10?
Используя все методы, описанные выше, Вы можете отключить ядра ЦП. Это может помочь Вам в случае с перегревом, но лишь в крайних случаях. Мы не рекомендуем отключать или включать ядра, без должной на это необходимости, иначе Вы можете столкнуться со множественными ошибками и BSOD’ами системы.
И так, как же добиться такой фичи?
Для начала в реестр необходимо добавить следующие ключи
Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\0cc5b647-c1df-4637-891a-dec35c318583]
"Attributes"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\3b04d4fd-1cc7-4f23-ab1c-d1337819c4bb]
"Attributes"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\5d76a2ca-e8c0-402f-a133-2158492d58ad]
"Attributes"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\a55612aa-f624-42c6-a443-7397d064c04f]
"Attributes"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\ea062031-0e34-4ff1-9b6d-eb1059334028]
"Attributes"=dword:00000000После этого идем в
Панель управления -> Электропитание -> Настройка плана электропитания -> Изменить дополнительные параметры питания -> Управление питанием процессора
- Минимальное число ядер в состоянии простоя (Processor performance core parking min cores) — Установить 25% для четырех ядерного процессора (одно ядро) — или 50% для двух ядерного процессора.
- Разрешить состояния снижения питания (Allow Throttle States) – Включить.
- Отключение простоя процессора (Processor idle disable) — Включить состояние простоя.
- Переопределение ядра приостановки ядра производительности процессора (Processor performance core parking core override) – Отключено.
- Максимальное число ядер в состоянии простоя (Processor performance core parking max cores) — Установить 100% (использовать все ядра)
После применения новых параметров можно смело идти в «мониторинг ресурсов» и любоваться тем, что большая часть ядер отключена
Вот собственно и все. Мы получили политику использования ядер «пока нам хватает одного ядра (или сколько вы там укажите) — используем одно ядро», экономим батарейку, а еще и система стала более отзывчивой.
В 2005 году, Intel выпустила первый 2-ядерный ЦП для персональных компьютеров – Intel Pentium D заложив основы многоядерных вычислений для домашних программ и приложений. Современные CPU обладают большим количеством ядер и вычислительных потоков, по сравнению с далёким 2005 годом. Например, Intel Core i7-8700 обладает 6 ядрами и 12 вычислительными потоками. В данном статье мы расскажем, как включить все ядра процессора на Windows 10.
Подключить все ядра процессора Windows 10 через UEFI
Сменить количество ядер можно не только в параметрах системы, в этом также может помочь UEFI (BIOS) материнской платы.
В зависимости от параметров ЦП и производителя материнской платы, настройки могут значительно отличаться. Материнские платы выше бюджетного уровня позволяют тонко настраивать работу внутренних процессов системы, начиная от скорости оборотов кулеров, заканчивая разгоном CPU и памяти.
На примере материнской платы Asrock Z68, настройки Advanced (Расширенные) – CPU Configuration (Настройки ЦП) позволят настроить количество активных ядер и включить\выключить Hyper-Threading и выставить нужные настройки для CPU.
Hyper-Threading – технология многопоточности Intel. Позволяет использовать на одном физическом ядре - 2 логических потока вычислений. На четырех – 8 потоков и т.д.
Настройка Active Processor Cores отвечает за количество активных ядер ЦП. На изображении выбор между All (Все), 1, 2 и 3, так как i7 -2600 четырехядерный.
Выбрав значение All Вы сможете использовать все ядра процессора.
Если Вы задатесь вопросом, как включить 2 или 4 ядра на Windows 10 используя UEFI, то в дополнительных настройках CPU можно настраивать не только количество ядер, но и количество потоков.
Стоит обратить внимание, что функционал зависит от производителя версии BIOS.
Особенности CPU
Согласно официальной странице продукта, мой процессор поддерживает следующие технологии:
- состояния простоя (Idle States);
- усовершенствованная технология Intel® SpeedStep (Enhanced Intel® SpeedStep Technology).
Теперь выясним, что значит каждое из этих определений.
Процессоры AMD с Turbo Core
AMD немного отложила ответ на революционную идею Intel. Турбо режим в процессорах этой компании был ожидаемым только с выпуском новейшего шестиядерного Phenom II. Технология получила название Turbo Core и сильно отличается от того, что предложил Intel. В то время как в процессорах Intel турбо режим включается и выключается в зависимости от тепловых условий, процессоры AMD входят в него, когда, по крайней мере, три из шести ядер не выполняют никаких задач. Частота остальных в этом случае может быть увеличена максимум на 500 МГц. Это гарантирует эффективную работу, а также не превышает максимальное значение TDP. AMD предлагает возможность чрезвычайно простого разгона благодаря разблокированному множителю и управлению всеми ядрами с системного уровня с помощью приложения OverDrive.
Мы рассмотрели, насколько производительность Turbo Boost может быть реализована на практике, протестировав процессор Intel Core i5-750. Результаты показали, что разгон ускоряется в первую очередь приложениями, загружающими один или два ядра, например, Apple iTunes конвертирует песни с компакт-дисков в MP3 на 16% быстрее и фильмы в формате Full HD (1920 x 1080 пикселей) в формат, поддерживаемый iPod (640 x 352 пикселей) на 14% быстрее. Скорость создания кадров в трёхмерном «Resident Evil 5» увеличилась после применения технологии Turbo Boost на 11%.
Тест производительности в тесте PC Mark Vantage имитирует условия работы в офисе с несколькими приложениями. Запускается текстовый редактор, Internet Explorer открывает несколько сайтов одновременно, а Защитник Windows проверяет систему в фоновом режиме, ищет шпионское ПО. Turbo Boost ускорил этот тест на 6%.
Увеличение потребления энергии после включения технологии Turbo Boost показывает программа Cinebench с использованием приложения 3D-дизайна в Maxon Cinema 4D. Когда загружается только одно ядро, его производительность увеличивается на 20%, а энергопотребление – на 8%. Чем больше ядер используется, тем менее выгодным является отношение роста производительности к потреблению энергии. После загрузки всех ядер увеличение эффективности и энергопотребления для каждого увеличивается на 6%.
Сколько ядер работает по умолчанию
Разгон – хороший и самый очевидный способ увеличить частоту процессоров AMD и Intel. Но вычислительная мощность некоторых чипов AMD может быть увеличена, и многое другое станет работать совершенно по-новому. AMD является единственным производителем, чьи системы продаются с некоторыми неактивными ядрами. Если вы сможете их разблокировать, вы получите дополнительную мощность бесплатно. Это особенно актуально для процессоров с одним ядром, а также для некоторых двухъядерных (т. е. три или два ядра являются активными, одно или два – неактивными). Несложные подсчёты позволяют понять, что разблокирование четвёртого ядра в трёхъядерном процессоре повышает его производительность на целую треть – так что игра определённо стоит свеч.
Возможность разблокировать неактивные ядра заинтересовала пользователей компьютеров несколько лет назад, но в то время требовалось гораздо больше усилий и удачи, чем сегодня. Прежде всего, пользователь должен был купить одну из немногих конкретных плат с южным мостом SB750, а затем найти в магазине процессор, который будет способен работать после разблокировки ядра. В отличие от тестов и экспериментов, это не могло быть проверено – если кому-то повезло, он получал одну треть мощности бесплатно, но в равной степени все усилия могли быть потрачены впустую.
Некоторые материнские платы предлагают специальный переключатель или кнопку для разблокировки неактивных ядер без необходимости посещения BIOS. Теперь это намного проще. Производители отважились и начали использовать на своих материнских платах функцию разблокировки, когда не все ядра работают. Она предлагается большинством новых плат ASUS (Core Unlocker), Gigabyte (Auto Unlock), MSI (Unlock CPU Core) и Foxconn (Core Release).
Чтобы разблокировать неактивное ядро, установите процессор, а затем запустите компьютер. После входа в BIOS найдите нужную функцию и активируйте её. Если возможно, лучше вручную активировать все ядра, чем полагаться на автоматические настройки. После перезагрузки компьютера все ядра должны быть активными. В случае некоторых плат процедура ещё проще – на них есть кнопки, которые позволяют запускать неактивные ядра без входа в BIOS.
Читайте также: