Перейти к содержимому

Как вернуть частоту процессора в исходное состояние

  • автор:

Разгон процессора, как вернуть заводские настройки?

Здравствуйте.
Сегодня разогнал процессор на ноуте с 1,7 Ггц (значение из коробки) до 2,6 Ггц. Он стал перегреваться. Разгонял из-под BIOS, менял частоту, множитель, напряжение (voltage), обороты кулеров и т. д. В инструкции написано, что процессор может работать и на 2,8 ГГц. Как убрать разгон до состояния «из коробки», где все было заводское) Кстати, уже после прочёл, что процессор поддерживает Turbo Boost. Разогнал впустую в общем. Помогите сбросить все)

Голосование за лучший ответ
Load default setings
Я ГеройУченик (100) 8 лет назад
Зайди пожалуйста и посмотри мой вопрос и ответь своё мнение
www.zacollider.ru Мастер (1663) это куда

Какую то там F нажать надо и подтвердить . А так можешь батарейку из платы вытащить на несколько минут .

Я ГеройУченик (100) 8 лет назад
Зайди пожалуйста и посмотри мой вопрос и ответь своё мнение

Нажать на Load Default Settings в BIOS или просто вытащить из платы батарейку при включенном компьютере.

Как восстановить настройки BIOS на примере платы MSI – все возможные способы

BIOS вашего ПК содержит множество различных настроек, каждая из которых предназначена для того, чтобы помочь вам максимально использовать возможности системы и точно настроить её производительность по своему вкусу.

Однако, если что-то пойдёт не так, вы обязательно должны знать, как восстановить указанные настройки до значений по умолчанию.

Это то, что мы рассмотрим ниже: способы сброса BIOS, а также несколько очень конкретных деталей, которые вы должны иметь в виду, прежде чем приступать к этому процессу.

В частности, мы сосредоточимся на материнских платах MSI , но эти советы и методы носят универсальный характер и, следовательно, по-прежнему актуальны, даже если у вас есть материнская плата другого производителя.

Как сбросить настройки BIOS

Использование кнопки очистки CMOS

Большинство материнских плат высокого класса имеют специальную кнопку, которая упрощает сброс настроек BIOS.

Эта кнопка расположена либо вдоль нижнего края материнской платы, рядом с батареей CMOS, либо около задних портов ввода-вывода (рядом с разъёмами USB), как показано на рисунке ниже.

Кнопка очистки CMOS на материнской плате MSI MEG Z690 ACE

Просто нажмите кнопку, чтобы сбросить настройки BIOS до заводских значений.

Примечание. Многие материнские платы MSI имеют две кнопки на задней панели ввода-вывода: кнопку восстановления BIOS и кнопку очистки CMOS. Убедитесь, что вы случайно не нажали кнопку BIOS flashback.

Сброс настроек из самого BIOS

Если ваша система успешно выполняет POST, вы можете просто войти в BIOS и вернуть все настройки к их значениям по умолчанию.

Для этого выполните следующие действия:

  • Войдите в BIOS, нажав DEL или F2 , в зависимости от производителя материнской платы.
  • Параметры BIOS должны отображаться в режимах UEFI или Legacy. Будьте спокойны, потому что процесс одинаков для обоих.
  • Перейдите в раздел «Сохранить и выйти» с помощью клавиш со стрелками или мыши. Переход в раздел сохранения настроек материнской платы
  • Затем выберите параметр «Восстановить по умолчанию». Запуск восстановления настроек BIOS
  • Нажмите «Да», когда появится диалоговое окно. Подтверждение загрузки параметров BIOS по умолчанию

Если на вашей материнской плате нет кнопки Clear CMOS или вы не можете войти в BIOS по какой-либо причине, вам придётся открыть систему и выполнить очень простую (хотя и несколько пугающую) процедуру.

Прежде чем идти дальше, убедитесь, что ваша система отключена от сети, а блок питания выключен.

Переустановка батареи CMOS

Один из самых простых способов сбросить настройки BIOS (несмотря на то, что он требует немного «ручного труда») – просто переустановить батарею CMOS. Чаще всего она расположен у нижнего края материнской платы – обычно под слотами PCIe.

Нажмите на замок (красная стрелка на изображении ниже), чтобы освободить батарею CMOS, подождите около 30 секунд, а затем вставьте её снова, пока не услышите слабый щелчок, указывающий, что батарея снова зафиксировалась на месте.

Извлечение батареи CMOS из материнской платы компьютера

Поскольку BIOS постоянно требуется питание для сохранения пользовательских настроек, после извлечения батареи он больше не сможет этого делать. Таким образом, BIOS будет сброшен до значений по умолчанию после того, как батарея вернётся на место и вы включите компьютер.

Очистка CMOS с помощью перемычки

Как закоротить 3-контактную перемычку

Перемычка CMOS на вашей материнской плате обычно расположена внизу, рядом с батареей CMOS.

Она должна выглядеть как трёхконтактный разъём с меткой JBAT1 , JP1 , CLEAR_CMOS или CLR_CMOS .

По умолчанию перемычка должна быть на контактах 1-2. Чтобы выполнить процедуру сброса настроек, просто переместите перемычку на контакты 2-3, подождите несколько секунд, а затем верните её в исходное состояние.

Как закоротить 2-контактную перемычку

Материнская плата с двухконтактной перемычкой не имеет колпачков; всё, что вам нужно, это электропроводная отвертка.

Двухконтактная перемычка сброса CMOS JBAT1

Просто коснитесь пером металлической отвертки обоих контактов на секунду или две. Это приведёт к замыканию контактов перемычки и очистке вашей CMOS, тем самым вернув настройки BIOS к значениям по умолчанию.

Как замкнуть перемычку RTCRST

Если вы используете более старую материнскую плату, она может иметь перемычку сброса часов реального времени (RTCRST). Эту перемычку также можно использовать для сброса BIOS.

Для этого найдите разъём PSWD и контакты RTCRST на материнской плате. Часто они располагаются ниже всех слотов PCIe или вокруг разъёмов питания.

Затем снимите перемычку PSWD и наденьте её на контакты RTCRST на 5-10 секунд. Затем верните перемычку PSWD на прежнее место и нажмите кнопку питания. Это вернёт ваш BIOS в исходное состояние.

Как замкнуть перемычки на материнской плате MSI nForce2

Старые материнские платы MSI с чипсетом nForce2 (выпущенные в начале 2000-х) имеют перемычку Front Side Bus (FSB) в дополнение к обычной; если вы разогнали частоты FSB, замыкание штатной перемычки не сбросит ваш BIOS.

Поэтому вам нужно будет замкнуть накоротко и перемычку «безопасного режима», и стандартную перемычку CMOS, чтобы полностью сбросить BIOS.

Как упоминалось выше, вы можете использовать отвертку (для двухконтактной перемычки) или переключать колпачки (для трёхконтактной перемычки), чтобы восстановить настройки BIOS и частоты FSB до значений по умолчанию.

Что такое BIOS и почему он так важен

Базовая система ввода-вывода (или сокращенно BIOS) – это первая часть программного обеспечения, которое загружается при включении компьютера. Он отвечает за бесперебойную работу всех частей вашего ПК, выясняя, совместимы ли они и не нуждаются ли в определенных настройках.

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

Когда имеет смысл сброс настроек BIOS

Сброс настроек BIOS – отличное решение «все-в-одном», когда компьютер не проходит POST.

Допустим, вы недавно разогнали частоту процессора и/или оперативной памяти, и система даёт сбой или становится нестабильной. В этом случае всегда полезно вернуть BIOS к заводским настройкам.

Затем, как только вы загрузитесь в ОС, вы сможете увеличивать напряжение/частоту на небольшие значения, выполняя стресс-тесты, чтобы оценить общую стабильность вашей системы.

Перед сбросом BIOS материнской платы

Сброс BIOS также сбросит его пароль. Более того, если ваша работа требует от вас использования гипервизора или любой другой виртуальной машины, вам придётся снова включить параметр виртуализации ЦП после сброса BIOS.

И последнее, но не менее важное: прежде чем открывать компьютер, чтобы возиться с батареей CMOS или перемычкой, вы должны отключить систему от сетевой розетки, выключить источник питания, а затем нажать и удерживать кнопку питания не менее 30 секунд.

Это разрядит всю оставшуюся мощность конденсаторов блока питания.

Часто задаваемые вопросы

BIOS Flashback и сброс BIOS: в чем разница?

В отличие от сброса BIOS, BIOS Flashback (или «кнопка Flash BIOS», как ее называет MSI) используется для установки, обновления или «прошивки» файла BIOS. Эта функция используется для обновления прошивки BIOS, если ваша материнская плата не поддерживает новый процессор.

Преимущество использования BIOS Flashback по сравнению с M-Flash заключается в том, что он не требует подключения процессора или даже видеокарты к материнской плате, когда вы обновляете BIOS.

Хотя этот метод, как правило, более безопасен, поскольку позволяет переустановить прошивку (отсюда и название «флешбек»), вам все равно следует проявлять осторожность, поскольку неправильная перепрошивка BIOS может привести к поломке вашей материнской платы – то наихудший сценарий.

Можно ли понизить версию прошивки BIOS?

Да! Большинство материнских плат MSI позволят вам вернуться к предыдущей версии прошивки BIOS, если вы столкнётесь с какой-либо проблемой стабильности.

Просто создайте загрузочный диск, отформатировав его в FAT32, и поместите соответствующий файл BIOS на USB-накопитель.

Затем вы можете использовать M-Flash или выполнить обычную флэшбэк-прошивку для завершения процедуры (т.е. прошить более старую версию BIOS).

Управление частотой процессора в Windows 10

Большинство современных процессоров используют различные технологии энергосбережения, такие как Intel SpeedStep или AMD Cool’n’Quiet. Эти технологии основаны на динамическом изменении частоты работы процессора в зависимости от нагрузки с целью снижения энергопотребление и тепловыделения.

Для понимания рассмотрим общие принципы работы данных технологий.

У процессора есть состояния производительности (P-States), которые представляют из себя комбинацию множителя частоты (Frequency ID, FID) и напряжения питания (Voltage ID, VID). Тактовая частота работы процессора получается путем умножения частоты системной шины (FSB) на FID, соответственно чем больше множитель, тем выше частота, и наоборот. Количество поддерживаемых состояний зависит от характеристик процессора (макс. частота, множитель и т.п.).

В ходе первоначальной загрузки в BIOS создается описание возможных состояний производительности. Это описание в соответствии с интерфейсом ACPI считывается операционной системой при запуске. В процессе работы операционная система отслеживает загрузку процессора, при снижении нагрузки обращается к драйверу процессора и переводит процессор в пониженное состояние. Снизив частоту и напряжение, процессор будет потреблять меньше энергии и, соответственно, меньше нагреваться. Ну а при увеличении нагрузки операционная система опять запросит изменение состояния процессора, но уже в большую сторону.

Когда и в какое из состояний переводить процессор, операционная система решает автоматически, в соответствии с текущей политикой энергосбережения. Но, кроме этого, в Windows есть возможность вручную задать диапазон регулировки, ограничив минимальное и максимальное состояние.

В моем компьютере стоит Intel Core I7 4790К. Согласно спецификации, он имеет базовую частоту 4ГГц, а с использованием технологии Turbo Boost может разгоняться до максимальных 4.4ГГц. Для того, чтобы посмотреть текущую скорость работы процессора, запустим «Диспетчер задач» (Ctrl+Shift+Esc) и перейдем на вкладку «Производительность». Как видите, на данный момент нагрузка невелика и процессор работает вполсилы, частота его работы составляет 1.84ГГц.

Вкладка Производительность в Диспетчере задач

Попробуем немного покрутить настройки частоты процессора и посмотрим, что из этого получится. Для запуска оснастки управления электропитанием жмем клавиши Win+R и выполняем команду powercfg.cpl.

запуск оснастки управления электропитанием

В открывшемся окне выбираем текущую схему электропитания, переходим по ссылке «Настройка схемы электропитания»

оснастка управления электропитанием

и жмем на ссылку «Изменить дополнительные параметры питания».

переход к дополнительным настройкам электропитания

За частоту работы процессора отвечают параметры «Минимальное состояние процессора» и «Максимальное состояние процессора», находящиеся в разделе «Управление питанием процессора».

дополнительные настройки электропитания

Обратите внимание, что у ноутбуков для каждого параметр доступны два варианта настроек. Первый отвечает за частоту процессора при автономной работе (от батареи), второй — при работе от сети.

дополнительные настройки электропитания для ноутбука

Проверим, как влияет изменение настроек на частоту работы процессора. Для начала уменьшим максимальное состояние до 20% и проверим результат. Как видите, частота работы снизилась до примерно 0.78ГГц, что как раз составляет примерно 20% от базовой частоты.

изменение максимальной частоты процессора до 20%

Что интересно, снизить частоту ниже 20% мне это не удалось. При выставлении значения ниже 20% частота продолжает оставаться на том же уровне, т.е. для моего процессора 800МГц является минимальной поддерживаемой частотой.

изменение максимальной частоты процессора до 5%

Чтобы разобраться, почему так, запустим диагностическую утилиту CPU-Z. Как видите, в нашем случае частота шины составляет 100МГц, а множитель изменяется в диапазоне от 8 до 44. Отсюда и получаем возможность изменения частоты от минимальных 800МГц до максимума 4.4ГГц с шагом в 100МГц.

CPU-Z

Но переключение осуществляется не по каждому множителю, а более дискретно. Другими словами, количество состояний производительности не соответствует количеству значений множителя. Посмотреть все доступные состояния можно утилитой RightMark Power Management. Например для испытуемого процессора доступно всего 15 состояний, а переключения между ними происходят с переменным шагом 200-300МГц.

RightMark PPM

Ну а на что влияет минимальная частота процессора? Для проверки установим значение минимальной частоты в 100% и убедимся, что скорость работы процессора сразу поднялась почти до максимуму и достигла 4.3ГГц. И это при том, что загрузка процессора составила всего 14%.

изменение минимальной частоты процессора до 100%

Есть еще одна настройка, отвечающая за частоту работы процессора. По умолчанию она скрыта и для того, чтобы увидеть ее, необходимо произвести некоторые манипуляции в реестре. Поэтому открываем редактор реестра (Win+R ->regedit), переходим в раздел HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\75b0ae3f-bce0-45a7-8c89-c9611c25e100, находим параметр Attributes и изменяем его значение на 2.

добавление настройки частоты процессора в реестре

После этого в окне настроек появится параметр «Максимальная частота процессора». Как следует из названия, этот параметр отвечает за ограничение максимальной частоты работы процессора, его значение задается в мегагерцах. По умолчанию значение параметра равно 0, что означает отсутствие ограничений.

пункт настройки частоты процессора

Установим ограничение в 1500МГц и проверим результат. И действительно, ограничение работает и частота не поднимается выше указанного значения.

управление частотой процессора

Надо понимать, что регулировка частоты работает так-же дискретно, как и в случае с состояниями. Например при выставлении максимальной частоты 1200МГц реальное ограничение будет в районе 1000МГц. Это неудивительно, ведь переключения все равно производятся между P-состояниями, причем выбирается ближайшее минимальное значение.

дискретность регулировки

Изменять дополнительные параметры питания процессора можно и из командной консоли, с помощью утилиты powercfg. Для начала выведем все имеющиеся настройки питания командой:

В полученных результатах надо найти требуемые параметры. Каждый раздел и параметр можно идентифицировать по идентификатору GUID или по псевдониму (алиасу). Например у группы настроек «Управление питанием процессора» GUID 54533251-82be-4824-96c1-47b60b740d00, а псевдоним SUB_PROCESSOR, у параметра «Максимальное состояние процессора» GUID 75b0ae3f-bce0-45a7-8c89-c9611c25e100 и псевдоним PROCTHROTTLEMAX.

запуск команды powercfg

Зная нужные алиасы или GUID-ы можно оперировать настройками. Так посмотреть значение параметра «Максимальное состояние процессора» можно такой командой (SCHEME_CURRENT означает текущую схему электропитания):

powercfg /query SCHEME_CURRENT SUB_PROCESSOR PROCTHROTTLEMAX

В командной значения параметра показаны в шестнадцатеричном виде, т.е. значение 0x00000064 означает 100%.

просмотр настроек электропитания из консоли cmd

Обратите внимание, что в командной строке доступны настройки как для питания от сети, так и от батареи. В зависимости от требуемого варианта команда будет отличаться. Так за настройку питания от сети отвечает ключ /SETACVALUEINDEX, а для питания от батареи используется ключ /SETDCVALUEINDEX. Различие всего в одной букве, поэтому нужно быть внимательным и постараться их не перепутать. Для примера снизим максимальное состояние процессора для питания от сети до 50%:

powercfg /setacvalueindex CHEME_CURRENT SUB_PROCESSOR PROCTHROTTLEMAX 50

Проверим результат. Как видите, текущее значение составляет 0x00000032 (50%).

изменение настроек электропитания из консоли cmd

Итак, мы убедились в том, что регулировки частоты работы процессора в Windows 10 есть и даже работают. Но для того, чтобы получить от них положительный эффект, необходим грамотный подход. Первым делом необходимо определиться с тем, что вы хотите получить в результате — поднять производительность, увеличить время автономной работы, снизить температуру или что-то еще. Затем надо выяснить основные параметры своего процессора, такие как частота шины, множитель, максимальная частота работы. И уже исходя из этого, опытным путем подобрать оптимальные для себя значения.

Краткое руководство по управлению питанием процессора

Как центральный процессор может сокращать собственное энергопотребление? Подробно рассказываем об особенностях этого процесса в статье. Введение Центральный процессор (CPU) спроектирован на бесконечно долгую работу при определенной нагрузке. Практически никто не проводит вычисления круглые сутки, поэтому большую часть времени он не работает на расчетном максимуме. Тогда какой смысл держать его включенным на полную мощность? Здесь стоит […]

Изображение записи

Как центральный процессор может сокращать собственное энергопотребление? Подробно рассказываем об особенностях этого процесса в статье.

Введение

Центральный процессор (CPU) спроектирован на бесконечно долгую работу при определенной нагрузке. Практически никто не проводит вычисления круглые сутки, поэтому большую часть времени он не работает на расчетном максимуме. Тогда какой смысл держать его включенным на полную мощность? Здесь стоит задуматься об управлении питанием процессора. Эта тема включает в себя оперативную память, графические ускорители и так далее, но я собираюсь рассказать только про CPU.

Если вы знаете про C-состояния (C-states), P-состояния (P-states) и то, как процессор переходит между ними, то, возможно, в этой статье вы не увидите ничего нового. Если это не так, продолжайте читать.

Я планировал добавить реальные примеры из ОС Linux, но статья становилась все больше, так что я решил приберечь это для следующей статьи.

Основные источники информации, использованные в этом тексте:

  • Intel(R) Xeon Processor E3–1200 v5 Product Family Datasheets;
  • Intel(R) Xeon Processor E3–1245 v5 Product Specification;
  • Software Impact to Platform Energy-Efficiency (Intel White Paper);
  • Intel(R) 64 and IA-32 Architectures Software Developer’s Manual;
  • ACPI Specification v6.2;
  • страница ACPI на Википедии;
  • Linux Kernel Sources версии 4.13.0.

Все таблицы и изображения взяты из даташита, если не указано иного.

Особенности CPU

Согласно официальной странице продукта, мой процессор поддерживает следующие технологии:

  • состояния простоя (Idle States);
  • усовершенствованная технология Intel SpeedStep® (Enhanced Intel SpeedStep® Technology).

На этой странице вы можете видеть, что «Режим состояния простоя (C-состояния) используется для энергосбережения, когда процессор бездействует» и «Стандартная технология Intel SpeedStep® позволяет переключать уровень напряжения и частоты в зависимости от нагрузки на процессор».

Теперь выясним, что значит каждое из этих определений.

Как снизить энергопотребление процессора во время его работы?

На процессорах для массового использования (мы не берем в расчет вещи, которые возможны при их проектировании) для снижения потребляемой энергии можно реализовать один из сценариев:

  • Сократить энергопотребление подсистемы (ядра или другого ресурса, такого как тактовый генератор или кэш) путем отключения питания (уменьшив напряжение до нуля).
  • Снизить энергопотребление путем снижения напряжения и/или таковой частоты подсистемы и/или целого процессора.

Первый вариант легко понять: если питания нет, то и потребления не будет.

Второй вариант требует чуть больше объяснений. Энергопотребление интегральной схемы, которой является процессор, линейно пропорционально тактовой частоте и квадратично напряжению.

Примечание для тех, кто разбирается в цифровой электронике:

Pcpu = Pdynamic + Pshort circuit + Pleak

При работающем процессоре Pdynamic является наиболее важной составляющей, именно эта часть зависит линейно от частоты и квадратично от напряжения. Pshort circuit пропорционально частоте, а Pleak — напряжению.

Более того, напряжение и тактовая частота связаны линейной зависимостью.

Высокая производительность требует повышенной тактовой частоты и увеличения напряжения, что еще больше влияет на энергопотребление.

Каков предел энергопотребления процессора?

Это во многом зависит от процессора, но для процессора 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-состояний;
  • P-состояний.

С-состояния описывают первый способ снижения энергопотребления процессора, поэтому они называются состояниями простоя. Чтобы отключить какую-то подсистему, на ней ничего не должно выполняться, подсистема должна простаивать. Таким образом, С-состояние, 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).

  • C0: Active, процессор/ядро выполняет инструкции. Здесь применяются P-состояния, процессор/ядро могут работать в режиме максимальной производительности (P0) или в режиме энергосбережения (в состоянии, отличном от P0).
  • C1: Halt, процессор не выполняет инструкций, но может мгновенно вернуться в состояние С0. Поскольку процессор не работает, то P-состояния не актуальны для состояний, отличных от С0.
  • C2: Stop-Clock, схож с C1, но требует больше времени для возврата в C0.
  • С3: Sleep. Возврат в C0 требует ощутимо большего времени.

Современные процессоры имеют гораздо больше 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-состояний простыми словами:

  • Нормальная работа при C0.
  • Сначала останавливается тактовый генератор простаивающего ядра (С1).
  • Затем локальные кэши ядра (L1/L2) сбрасываются и снимается напряжение с ядра (С3).
  • Как только все ядра отключены, общий кэш (L3/LLC) ядер сбрасывается и процессор (почти) полностью может быть обесточен. Я говорю «почти», потому что, по моим предположениям, какая-то часть должна быть активна, чтобы вернуть процессор в состояние С0.

Как вы могли догадаться, 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 выводит следующую информацию:

MONITOR/MWAIT (5): 
smallest monitor-line size (bytes) = 0x40 (64)
largest monitor-line size (bytes) = 0x40 (64)
enum of Monitor-MWAIT exts supported = true
supports intrs as break-event for MWAIT = true
number of C0 sub C-states using MWAIT = 0x0 (0)
number of C1 sub C-states using MWAIT = 0x2 (2)
number of C2 sub C-states using MWAIT = 0x1 (1)
number of C3 sub C-states using MWAIT = 0x2 (2)
number of C4 sub C-states using MWAIT = 0x4 (4)
number of C5 sub C-states using MWAIT = 0x1 (1)
number of C6 sub C-states using MWAIT = 0x0 (0)
number of C7 sub C-states using MWAIT = 0x0 (0)

Замечание из инструкции 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: Sleeping.
    • G1/S1: Power on Suspend. Состояние системы сохраняется, питание процессора и кэшей поддерживается.
    • G1/S2: Процессор отключен, кэши сброшены.
    • G1/S3: Standby или Suspend to RAM (STR). Оперативная память остается практически единственным компонентом с питанием.
    • G1/S4: Hibernation или Suspend to Disk. Все сохраняется в энергонезависимую память, все системы обесточиваются.

    Как показано на рисунке ниже, для моего процессора все С-состояния, упомянутые ранее, используются в 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 ядро входит при загрузке, когда происходит прерывание, или после записи по адресу памяти, который отслеживается инструкцией MWAIT.
    • Состояния C1/C1E достижимы с помощью инструкций HLT и MWAIT.
    • Войти в состояние С3 можно с помощью инструкции MWAIT. Затем кэши L1 и L2 сбрасываются в кэш верхнего уровня (LLC), и все тактовые генераторы процессора останавливаются. Тем не менее, ядро сохраняет свое состояние, так как не обесточено.
    • Вход в состояние С6 возможен через инструкцию MWAIT. Ядро сохраняет состояние на выделенную SRAM и напряжение на ядре снижается до нуля. В этом состоянии ядро обесточено. При выходе из C6 состояние ядра восстанавливается из SRAM.
    • Для C7 и C8 аналогично C6.

    Хочу напомнить еще раз, я не затрагиваю гипертрединг в этом ответе.

    Как отмечалось ранее, переходы между глубокими С-состояниями имеют высокие задержки и высокие энергетические затраты. Таким образом, такие переходы должны выполняться с осторожностью, особенно на устройствах, работающих от аккумуляторов.

    Возможно ли отключить С-состояния (всегда использовать С0)?

    Это возможно, но не рекомендуется. В даташите (секция 4.2.2, страница 64) есть примечание: «Долгосрочная надежность не гарантируется, если все энергосберегающие состояния простоя не включены». Поэтому вам не стоит отключать С-состояния.

    Как прерывания влияют на процессор/ядро в состоянии сна?

    Когда происходит прерывание, соответствующее ядро пробуждается и переходит в состояние С0. Однако, например Intel Xeon E3-1200 v5, поддерживает технологию Power Aware Interrupt Routing (PAIR), у которой есть два достоинства:

    • для энергосбережения прерывание может быть переадресовано работающему ядру, чтобы не будить спящее ядро;
    • для производительности прерывание может быть переадресовано от работающего на полную мощность ядра к простаивающему (С1) ядру.

    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.

    Вот какую информацию можно получить (это не весь вывод).

    $ ./corefreq-cli -s 
    Processor [Intel(R) Xeon(R) CPU E3-1245 v5 @ 3.50GHz]
    |- Architecture [Skylake/S]
    |- Vendor ID [GenuineIntel]
    |- Microcode [ 198]
    |- Signature [ 06_5E]
    |- Stepping [ 3]
    |- Online CPU [ 4/4 ]
    |- Base Clock [100.12]
    |- Frequency (MHz) Ratio
    Min 800.94 [ 8 ]
    Max 3504.10 [ 35 ]
    |- Factory [100.00]
    3500 [ 35 ]
    |- Turbo Boost [UNLOCK]
    1C 3904.57 < 39 >
    2C 3804.45 < 38 >
    3C 3704.33 < 37 >
    4C 3604.22 < 36 >
    |- Uncore [UNLOCK]
    Min 800.94 < 8 >
    Max 3904.57 < 39 >



    Technologies:
    |- System Management Mode SMM-Dual [ ON]
    |- Hyper-Threading HTT [OFF]
    |- SpeedStep EIST < ON>
    |- Dynamic Acceleration IDA [ ON]
    |- Turbo Boost TURBO < ON>
    |- Virtualization VMX [ ON]
    |- I/O MMU VT-d [OFF]
    |- Hypervisor [OFF]

    Performance Monitoring:
    |- Version PM [ 4]
    |- Counters: General Fixed
    | 8 x 48 bits 3 x 48 bits
    |- Enhanced Halt State C1E
    |- C1 Auto Demotion C1A < ON>
    |- C3 Auto Demotion C3A < ON>
    |- C1 UnDemotion C1U < ON>
    |- C3 UnDemotion C3U < ON>
    |- Frequency ID control FID [OFF]
    |- Voltage ID control VID [OFF]
    |- P-State Hardware Coordination Feedback MPERF/APERF [ ON]
    |- Hardware-Controlled Performance States HWP [ ON]
    |- Hardware Duty Cycling HDC [ ON]
    |- Package C-State
    |- Configuration Control CONFIG [ LOCK]
    |- Lowest C-State LIMIT [ 0]
    |- I/O MWAIT Redirection IOMWAIT [Disable]
    |- Max C-State Inclusion RANGE [ 0]
    |- MWAIT States: C0 C1 C2 C3 C4 C5 C6 C7
    | 0 2 1 2 4 1 0 0
    |- Core Cycles [Present]
    |- Instructions Retired [Present]
    |- Reference Cycles [Present]
    |- Last Level Cache References [Present]
    |- Last Level Cache Misses [Present]
    |- Branch Instructions Retired [Present]
    |- Branch Mispredicts Retired [Present]

    Power & Thermal Monitoring:
    |- Clock Modulation ODCM
    |- DutyCycle < 6.25%>
    |- Power Management PWR MGMT [ LOCK]
    |- Energy Policy Bias Hint [ 0]
    |- Junction Temperature TjMax [ 0:100]
    |- Digital Thermal Sensor DTS [Present]
    |- Power Limit Notification PLN [Present]
    |- Package Thermal Management PTM [Present]
    |- Thermal Monitor 1 TM1|TTP [ Enable]
    |- Thermal Monitor 2 TM2|HTC [Present]
    |- Units
    |- Power watt [ 0.125000000]
    |- Energy joule [ 0.000061035]
    |- Window second [ 0.000976562]

    Вот информация о ядре, включая информацию о драйвере idle.

    $ ./corefreq-cli -k 
    Linux:
    |- Release [4.15.0-45-generic]
    |- Version [#48-Ubuntu SMP Tue Jan 29 16:28:13 UTC 2019]
    |- Machine [x86_64]

    Idle driver [@intel_idle]
    |- State: POLL C1 C1E C3 C6 C7s C8
    |- Power: -1 0 0 0 0 0 0
    |- Latency: 0 2 10 70 85 124 200
    |- Residency: 0 2 20 100 200 800 800
    $ ./corefreq-cli -g 
    Cycles State(%)
    PC02 1121802850 32.49
    PC03 1298328500 37.83
    PC06 0 0.00
    PC07 0 0.00
    PC08 0 0.00
    PC09 0 0.00
    PC10 0 0.00
    PTSC 3503877892
    UNCORE 150231

    Мониторинг счетчиков С-состояний (для ядра):

    $ ./corefreq-cli -c 
    CPU Freq(MHz) Ratio Turbo C0(%) C1(%) C3(%) C6(%) C7(%) Min TMP:TS Max
    #00 355.67 ( 3.55) 10.15 10.28 26.43 0.04 11.49 51.77 41 / 45:55 / 56
    #01 355.64 ( 3.55) 10.15 10.38 19.21 0.68 15.44 54.28 42 / 45:55 / 55
    #02 389.95 ( 3.89) 11.13 11.35 15.67 0.16 18.17 54.65 40 / 43:57 / 54
    #03 365.38 ( 3.65) 10.43 10.61 19.77 0.18 13.93 55.51 40 / 43:57 / 54


    Averages: Turbo C0(%) C1(%) C3(%) C6(%) C7(%) TjMax: Pkg:
    10.46 10.66 20.27 0.27 14.76 54.05 100 C 46 C
    $ ./corefreq-cli -V 
    CPU Freq(MHz) VID Vcore
    #00 130.70 0 0.0000
    #01 120.08 0 0.0000
    #02 124.18 0 0.0000
    #03 103.46 9784 1.1943

    Package Cores Uncore Memory
    Energy(J): 13.415222168 2.248596191 0.000000000 0.951416016
    Power(W) : 26.830444336 4.497192383 0.000000000 1.902832031

    Эта статья является переводом.
    Оригинальный текст по
    ссылке.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

https://kapelnicza.vyvod-iz-zapoya-na-domu-voronezh.ru/