Core c6 mode что это в биосе
Объясните пожалуйста, для чего нужны эти энергосберегающие режимы: Cool. & Quiet, C1E, Core C6 State
Для чего нужны эти скобки?
Доброго времени суток! Я начинающий в Java и вот совсем недавно занялся Swing. На Швабре прочитал.
для чего нужны эти метатеги
для чего этот мета и этот 6
Решение
core c6 state
Энергосберегайка того же плана. Понижает потребление процессора при пониженной нагрузке.
Объясните для чего нужны архитектурные слои
Доброго времени суток Я искала в гугле объяснение трех основных слоев user layer, business logic.
Текущая частота процессора i7-4770K не снижается до 800MHz при включённом C-STATE (C1E)
Приветствую. Windows 10. Процессор Intel i7-4770K. Материнская плата: Asus Z87a Раньше.
Триггеры, вьюеры. Объясните, как их создавать, для чего нужны
Тригеры, вьюверы, объесните как их создовать, для чего нужны, мне нужно срочно просто горит.:cry:
Объясните понятным языком для чего нужны атрибуты сборки
Добрый день, Объясните понятным языком для чего нужны атрибуты сборки (SecurityCriticalAttribute.
Вопрос о технологии AMD Cool’n’Quiet
мать asus M4N68T-M LE V2 вопрос по «Технология AMD Cool’n’Quiet»: в биос включен этот режим, есть в.
Добавляем анлок в биос раз и навсегда
С помощью этой инструкции вы сможете добиться анлока турбо-буста не на уровне системы, как в стандартной инструкции, а на уровне bios. Этот метод имеет весомые преимущества:
Но есть и недостатки:
Не рекомендуется выполнять анлок по данной инструкции, если в дальнейшем планируется смена процессора на Xeon e5 16XX v3\v4 или e5 26XX v4, так как эти серии не поддерживают анлок.
Первоисточник информации — замечательное видео с канала Miyconst. Автор также сделал отличную презентацию, которую вы можете наблюдать чуть ниже. В конце презентации также доступны ссылки на уже готовые биосы для популярных плат.
Подготовка
В некоторых платах (в основном производства Jingsha) биос защищен от записи, поэтому FPT при попытке прошивки будет выдавать ошибку error 280. К счастью, решение довольно простое: в биосе идем в IntelRCSetup > PCH Configuration > Security Configuration и меняем значение пункта Bios Lock на Disabled. После сохранения настроек и перезагрузки защита от записи будет снята.
Необходимый софт
Нам понадобятся 3 программы (скачать их можно чуть ниже):
FFS-драйверы
Также нам понадобится FFS драйвер. В данном случае нужен именно FFS, а не EFI-драйвер, как в стандартной инструкции по анлоку. В архиве на данной странице — протестированные драйвера, сделанные Christian Peine, но желающие поэкспериментировать могут также попробовать FFS драйверы от MOF, ссылки на них находятся тут. Стоит помнить, что для экспериментов с другими драйверами лучше иметь под рукой программатор.
Вернемся к драйверам от Peine. Было выпущено достаточно много версий. Разобраться, что означает каждый конкретный файл можно по его названию. Например драйвер v3_payne_30_20.ffs имеет пониженное на 30mv напряжение на процессор и пониженное на 20mv напряжение на контроллер памяти.
UEFITool_0.25.1_win32
Размер файла: 7 MB Кол-во скачиваний: 6385
MMtool
Размер файла: 5 MB Кол-во скачиваний: 3976
Amibcp ver. 5.02
Размер файла: 5 MB Кол-во скачиваний: 38951
Драйверы для анлока ТБ от Christian Peine
Размер файла: 62 KB Кол-во скачиваний: 1572
Удаляем микрокод 06F2
Если вы скачали биос уже без данного микрокода — пропустите этот пункт.
Для удаления мы будем использовать заранее подготовленную утилиту MMtool.
Добавляем драйвер анлока
Отключаем CPU C3\C6 State
Сделать это нужно, чтобы предотвратить зависания системы.
Прошиваем мод-биос
Выполняем прошивку с помощью софта, которым снимали дамп. Если всё прошло удачно, сбрасываем биос на стандартные настройки.
Как правило, большинство китайских плат можно прошить одним из следующих способов:
Проверяем
Для проверки можно использовать программу HwInfo, которая показывает частоты для каждого ядра. Параллельно можно запустить какой-либо бенчмарк или стресс-тест (например cpu-z), чтобы нагрузить процессор.
Если всё прошло удачно — частота каждого ядра будет равна максимальному значению турбо-буста процессора.
Поделиться «Добавляем анлок в биос раз и навсегда»
Комплексный разгон AMD FX 6300. +40% к FPS
Подробный гайд по разгону процессора AMD FX 6300 на сокете AM3+. В результате получаем повышение производительности в играх до +40% FPS, в синтетических тестах до 49%, в Adobe Premiere Pro + 25% и +28% в скорости записи и чтения оперативной памяти. Все это с бюджетным охлаждением.
Разгонять будем частоту процессора, оперативной памяти, северного моста North Bridge (NB) и шины Hyper Trance (HT).
Разгон FX 6300 будет проходить на материнской плате ASUS M5A97 LE R2.0. Но данный процесс вы сможете повторить на любой плате AM3+. Я дам вам информацию где находятся нужные нам настройки на материнских платах других производителей (Gigabyte, MSI, Asus).
Разгон fx 8350 так же читайте на сайте, разгон FX 8350 проходил на материнской плате от Gigabyte.
Если вам больше по душе видео формат, вы можете посмотреть разгон FX 6300 в видео формате на нашем youtube канале:
Цель разгона FX 6300
Разгонять FX6300 будем ради повышения минимального и среднего FPS в играх, а так же производительности в монтажной программе Adobe Premiere Pro.
Основная проблема процессоров серии FX, это минимальный FPS или 1% Low. Из за этого, в играх могут проскакивать статеры и фризы. Комплексный разгон шести ядерного FX6300 позволяет решить эти проблемы и даже поднять средний FPS, который и без разгона на уровне комфортной игры в 50-60 FPS на максимальных настройках.
Особенности архитектуры Pildriver на которой работают процессоры AMD FX
Многие знают про слабую подсистему памяти данной архитектуры. Все процессоры серии FX обладают огромным разгонным потенциалом с одной стороны, и дохлой подсистемой памяти в виде L3 кэша. Данная память не позволяет процессору загружать все логические потоки, что бы обеспечить их инструкциями.
Процессору нужна высокая пропускная способность оперативной памяти и северного моста (NB). Дело в том, что L3 кэш в архитектуре Pildriver (на которой построены кристаллы AMD FX), работает на частоте северного моста (NB) и его скорости не хватает что бы загрузить все логические потоки FX6300.
Поэтому, основная задача, разгон контроллера памяти CPU/NB, оперативной памяти и частоты процессора. Только при разгоне процессора в комплексе с подсистемой памяти, мы можем рассчитывать на серьезный прирост производительности.
А гнать одну частоту процессора не имеет смысла в этой архитектуре, мы только повысим пропускную способность внутри процессора, а L3 кэш останется бутылочных горлышком. Из за чего получим так называемый кукурузный разгон.
Перейдем к тестовой конфигурации …
Тестовая конфигурация для разгона
Наставления и рекомендации перед разгоном
Базовые показатели системы в биос (из коробки)
Если вы еще ничего не меняли, то по дефолту у нас будут такие значения:
Тестировать производительность системы будем на минимальных настройках графики, дабы исключить зависимость результата от видео карты. Это основные показатели на которые стоит опираться.
Тест на максимальных настройках исключительно для тех, кто не воспринимает других результатов чем 1080p на максималках. Что бы понимать на что можно будет рассчитывать с видео картой GTX 1060 3Gb (так как именно в карту будет упираться производительность).
Тесты будут проводится в разрешении FULL HD, на максимальных пресетах графики.
Давайте посмотрим на что способна такая конфигурация из коробки.
Тесты системы в дефолтном состоянии (до разгона)
Cinebench R20 (дефолтные настройки bios)
Adobe Premiere Pro (дефолтные настройки bios)
Экспорт медиа файла в Adobe Premiere Pro 2020 силами одного процессора завершился за 2 минуты 9 секунда.
Aida 64 Cash & Memory Benchmark (дефолтные настройки bios)
Скорость записи в оперативную память составляет 23922 MB/s, скорость чтения 14454 MB/s.
Напомню, это при частоте 1866 MHz, и частоте NB 2000MHz.
The Witcher: Wild Hunt (дефолтные настройки bios)
Минимальные настройки графики:
Максимальные настройки графики:
Hitman 2 (Дефолтные настройки bios)
Минимальные настройки графики:
Максимальные настройки графики:
Shadow Of The Tomb Rider (дефолтные настройки bios)
Минимальные настройки графики:
Максимальные настройки графики:
Star Wars Jedi: Fallen Order (дефолтные настройки bios)
Минимальные настройки графики:
Максимальные настройки графики:
Battlefield V (дефолтные настройки bios)
Минимальные настройки графики:
Максимальные настройки графики:
Выводы
Видно что самая большая проблема в играх, это очень маленький FPS в колонке редких событий 1% low. Именно это делает игру на процессорах AMD FX не комфортной.
А проблема кроется в медленной подсистеме памяти, которую мы сейчас будем разгонять. Давайте начнем разгон FX 6300 …
Поэтапный разгон процессора AMD FX 6300
Не забудьте что бы в Windows был включен профиль питания — Высокая производительность, который можно изменить в Панели управления в разделе «Электропитание».
Режим электропитания в Windows 10
Обязательно установите последнюю версию BIOS.
Заходим в биос (Del or F2) 🙂
Разгон FX 6300 будем выполнять поэтапно. Проверяя каждое изменение в биос для достижения стабильности. Это нужно для представления разгонного потенциала конкретно ваших блоков системы. Так будет проще выявить причину нестабильного поведение во время комплексного разгона.
Сначала гоним частоту процессора, памяти, северного моста.
Отключение энергосбережения в биосе
Первое что нам нужно сделать при разгоне, это отключить все функции энергосбережения. Данные опции дают снижение производительности и нестабильность при разгоне.
Давайте разберемся за что эти функции отвечают:
Core C6 State — управление состоянием процессора когда в случае его слабой активности отключаются ядра, модули и части кэша, снимая с них питающее напряжение.
APM Master Mode — включает или отключает встроенный в процессор блок управления частотами и потреблением. Эта функция ограничивает максимальные потребления процессора до паспортного уровня TDP в 95W (в случае FX6300), ценой уменьшения производительности. Отключение APM в большинстве случаев ломает работу турбокора.
С1E — отключает ядро от генератора тактовой частоты, не снимая с него напряжение.
Cool’N’Quiet — уменьшает в простое частоту и напряжение ядер.
HPC Mode — при выключенном Cool’N’Quiet в нем нет необходимости. Поскольку он уменьшает возможности Cool’N’Quiet оставляя из всех доступных для переключения частот только минимальную, максимальную и бустовую.
Все эти опции переводим в положение Disabled.
Где искать:
HPC Mode я оставил включенным. Но вы можете смело его выключать. У меня в биосе не все функции управления энергосбережением. Т.к. на момент скриншота, у меня уже стоял профайл D. O. C. P. Об этом читайте дальше …
Разгон частоты процессора (CPU overclocking)
Начнем с разгона частоты ядер процессора.
Наша цель 4.2GHz, для этого нужно поднять множитель частоты и подобрать напряжение.
Я разгонял свой камень до 4.4 GHz, но прирост производительности не сопоставим с увеличением вольтажей для стабилизации процессора на такой частоте и повышением нагрева. Для такого разгона нужна башенная система охлаждения способная отводить не менее 200 TDP.
В статье посвященной разгону FX 8350, посмотрим на сколько можно разогнать процессор с топовым охлаждением bequit! Dark Rock Pro 4 на 250 TDP.
На материнских платах Asus в разделе AI Tweaker / AI Overclock Tuner / переключаем в положение D. O. C. P. (по умолчанию биос предлагает режим Auto). Разблокируем режим разгона.
D. O. C. P.» data-srcset=»https://insidepc.tech/wp-content/uploads/2020/06/cpu_1-min-1-1024×768.jpg 1024w, https://insidepc.tech/wp-content/uploads/2020/06/cpu_1-min-1-300×225.jpg 300w, https://insidepc.tech/wp-content/uploads/2020/06/cpu_1-min-1-768×576.jpg 768w, https://insidepc.tech/wp-content/uploads/2020/06/cpu_1-min-1-1170×877.jpg 1170w, https://insidepc.tech/wp-content/uploads/2020/06/cpu_1-min-1.jpg 1398w» data-sizes=»(max-width: 1024px) 100vw, 1024px» /> Переключаем Ai Overclock Tuner — > D. O. C. P.
Включаем CPU Load Line Calibration
В первую очередь, включаем CPU Load Line Calibration.
Где искать:
К примеру на платах ASUS вы можете просто включить LLC, а на платах GIGABYTE нужно выставить один из режимов: normal, extreme и т.д. Режима normal будет достаточно, можно переключить в положение extreme.
LLC (Load Line Calibration) — функция для борьбы с просадками. При разгоне раньше приходилось иметь дело с очень неприятным явлением, известным как просадка напряжения или Vdroop. Vdroop- это падение напряжения на процессоре при увеличении нагрузки. Функция LLC увеличивает напряжение vCore, чтобы компенсировать его просадку при высокой нагрузке.
Изменяем множитель частоты процессора
На материнских платах ASUS за это отвечает параметр CPU Ration, у меня это 21 что соответствует 4.2 GHz.
AMD Turbo CORE technology ставим в положение Disabled.
Где искать:
Подбираем напряжение
На плате ASUS — переключаем CPU & NB Voltage в ручной режим Manual Mode (по умолчанию биос предлагает режим Offset mode).
В моем случае, я добился стабильной работы процессора на частоте 4.2GHz с напряжением 1.368V (вольт).
В такой конфигурации процессор проходит стресс тест AIDA64 и стабильно работает в играх и монтажных программах.
За напряжение отвечает параметр CPU Manual Voltage.
Где искать:
На платах MSI и GIGABYTE нет возможности сразу ввести необходимое нам значение напряжения, а только добавить или отнять от имеющегося VID процессора. Т.е. добавлять или уменьшать текущий вольтаж на минимальное деление.
При подборе напряжения, нужно найти минимально стабильный вольтаж при котором сохраняется стабильная работа процессора под нагрузкой, понижая или повышая вольтаж на один шаг.
Для начала вы можете поставить вольтаж в районе 1.4 вольта и понижать его пока не добьетесь стабильной работы. Но не стоит поднимать вольтаж выше 1.45V без топового охлаждения.
Обязательно пройдите стресс тест AIDA64 и поиграйте минут 10 в игры. Что бы убедится что все работает стабильно.
CPU Manual Voltage
После стабилизации частот и напряжения, запишите значения и верните их в дефолтное состояние.
Разгон частоты оперативной памяти (RAM overclocking)
Переходим к разгону оперативной памяти DDR3. Разгонять память будем до 2133MHz. В моем случае это вполне достижимая частота, а вы исходите от своих планок памяти.
Вы можете не останавливаться на данной частоте и взять планку в 2300MHz или выше, если ваш кит позволит это сделать. Тайминги я не трогал.
Разгоняем частоту оперативной памяти (без таймингов)
На материнской плате ASUS нам нужно выставить профили памяти.
На материнской плате ASUS:
Где искать:
Подбираем напряжение
Из коробки память работает на напряжении 1.5 вольта. Стабильной работы памяти получилось добиться на 1.65 вольта.
Безопасное напряжение памяти для процессоров FX, является значения до 1.8 вольта с радиатором оперативной памяти. Без радиатора, до 1.7 вольта.
На материнской плате ASUS за напряжение отвечает параметр DRAM Voltage подраздела AI Tweaker.
Где искать:
Разгон оперативной памяти. DRAM Frequncy
DRAM Voltage
Протестируйте стабильность работ в стресс тесте памяти AIDA 64, либо в играх в течении 5-10 минут.
После стабилизации частот и напряжения, запишите значения и верните их в дефолтное состояние.
Разгон северного моста (CPU NB overclocking)
Переходим к разгону северного моста CPU NB. Разгонять NB будем до 2600MHz. Разгонять выше нет никакого смысла, только если ваши планки памяти работают на частоте выше 2400MHz.
Разгоняем частоту северного моста (NB)
На материнских платах ASUS частота NB изменяется в разделе Ai Tweaker — CPU/NB Frequency.
Так же изменяем частоту HT Link Speed, и ставим 2400 MHz. Это шина HyperTransport. На тестируемой материнской плате это максимальное значение, если у вас есть возможность, ставьте 2600 или 2800MHz. HyperTransport должен быть на 1 шаг выше NB.
На других платах, частоту NB можно изменить в следующих разделах:
CPU/NB Frequency
Подбираем напряжение
Вольтаж можно изменить в разделе CPU/NB Voltage подраздела Ai Tweaker на материнских платах Asus.
На других материнаских платах это можно сделать:
Мне удалось получить стабильные значения работы NB при частоте 2600Mhz с напряжением в 1,45V, которые стоят по умолчанию в режиме auto. Но лучше эти значения задать вручную.
CPU/NB Voltage
Комплексный разгон всех компонентов
К текущему моменту, вы разогнали отдельно частоты процессора, оперативной памяти и северного моста. У вас есть данные по разгонному потенциалу каждого компонента и вольтажи для их стабилизации.
Следующий шаг, это комплексный разгон всех компонентов выше.
Почему я об этом пишу отдельно? После выставления всех значений в биосе, система может начать работать нестабильно. Несмотря на то, что по отдельности все разогнанные компоненты стабильно работали.
Если такое произойдет, добавьте напряжения туда, где вам кажется его может быть недостаточно. Добавляйте по 1 шагу и снова тестируйте. Либо можете добавить всем компонентам по 1 шагу напряжения, а после получения стабильного результата, убирать с каждого, пока не поймете где не хватает.
Ну что, давайте посмотрим на результат разгона FX 6300!
Результат комплексного разгона AMD FX 6300
Cinebench R20
В разгоне процессор набрал 215 баллов в одно потоке, 1011 в много потоке. Что является внушительным результатом.
Результат разгона FX6300 в Cinebench R20
В одно поточных вычислениях процессор стал лучше на 9.14%, в много потоке на 48.68%.
Adobe Premiere Pro
Экспорт медиа файла в Adobe Premiere Pro 2020 силами одного разогнанного процессора FX6300 завершился за 1 минуту 43 секунды. Что на 25% выше базовой частоты процессора и подсистемы памяти.
Результат разгона FX6300 в Adobe Premiere Pro
Aida 64 Cash & Memory Benchmark
Скорость записи в оперативную память составляет 28128 MB/s, скорость чтения 18530 MB/s.
Результат разгона FX6300 в Adobe Premiere Pro
Это уже при частоте памяти 2133 MHz, и частоте NB 2600MHz. Результаты очень хорошие. Скорость записи выросла на 28.20%, скорость чтения на 17.58%.
The Witcher: Wild Hunt
Минимальные настройки графики:
Максимальные настройки графики:
В Witcher 3 зафиксирован самый минимальный прирост производительности. Скорее всего игра полностью уперлась в возможности видео карты.
Hitman 2
Минимальные настройки графики:
Максимальные настройки графики:
Достойный результат разгона. В среднем 20% по средним и редким событиям.
Shadow Of The Tomb Rider
Минимальные настройки графики:
Максимальные настройки графики:
Внушительный прирост. Единственное что практически никак не отреагировало на разгон, это 1% Low на максимальных настройках. Но средний FPS подрос на 10%. Опять таки, это максимальные настройки и тут мы упираемся в возможности видео карты GTX 1060 3Gb.
Star Wars Jedi: Fallen Order
Минимальные настройки графики:
Максимальные настройки графики:
Star Wars Jedi: Fallen Order показывает отличные результаты прироста fps. Разгон позволяет поднять 1% Low и получать максимально плавный геймплей.
Battlefield V
Минимальные настройки графики:
Максимальные настройки графики:
В процентном соотношении игра Battlefield V показал хороший прирост производительности, но только на минимальных настройках. На максимальных настройках графики, мы упераемся в возможности нашей видео карты.
Еще у нас вы можете посмотреть полные тесты RX 580 с FX 6300, а так же FX 6300 с GTX 1060. Процессор FX во всех текстах в разгоне.
Подводим итоги разгона шести ядерного процессора 2013 года
Разгонный потенциал процессора FX 6300 впечатляет. С бюджетным охлаждением (даже не башенного типа), нам удалось получить действительно впечатляющих результатов.
И даже при этом, мы не раскрыли весь потенциал процессора. для этого нам понадобилась бы видео карта уровня GTX 1080 ti или RX 5700XT, на максимальных настройках.
Самый большой буст при разгоне дает как раз подсистема памяти, а не повышения частот ядер.
Надеюсь данный гайд помог вам при разгоне FX 6300 и вы смогли еще продлить жизнь старенькому, но еще актуальному процессору.
Наш плейлись по разгону, тестам и сравнениям FX 6300:
Краткое руководство по управлению питанием процессора
Как центральный процессор может сокращать собственное энергопотребление? Основы этого процесса — в статье.
Центральный процессор (CPU) спроектирован на бесконечно долгую работу при определенной нагрузке. Практически никто не проводит вычисления круглые сутки, поэтому большую часть времени он не работает на расчетном максимуме. Тогда какой смысл держать его включенным на полную мощность? Здесь стоит задуматься об управлении питанием процессора. Эта тема включает в себя оперативную память, графические ускорители и так далее, но я собираюсь рассказать только про CPU.
Если вы знаете про C-состояния (C-states), P-состояния (P-states) и то, как процессор переходит между ними, то, возможно, в этой статье вы не увидите ничего нового. Если это не так, продолжайте читать.
Я планировал добавить реальные примеры из ОС Linux, но статья становилась все больше, так что я решил приберечь это для следующей статьи.
Основные источники информации, использованные в этом тексте:
Особенности CPU
Согласно официальной странице продукта, мой процессор поддерживает следующие технологии:
Теперь выясним, что значит каждое из этих определений.
Как снизить энергопотребление процессора во время его работы?
На процессорах для массового использования (мы не берем в расчет вещи, которые возможны при их проектировании) для снижения потребляемой энергии можно реализовать один из сценариев:
Второй вариант требует чуть больше объяснений. Энергопотребление интегральной схемы, которой является процессор, линейно пропорционально тактовой частоте и квадратично напряжению.
Примечание для тех, кто разбирается в цифровой электронике: 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-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 означает максимальную производительность, то есть максимальные тактовую частоту, напряжение и энергопотребление.
С-состояния
Вот базовые С-состояния (определенные в стандарте ACPI).
Примечание: Из-за технологии Intel® Hyper-Threading существуют также С-состояния потоков. Хотя отдельный поток может работать с С-состояниями, изменения в энергопотреблении происходят, только когда ядро входит в нужное состояние. В данной статье тема C-состояний на потоках рассматриваться не будет.
Вот описание состояний из даташита:
Примечание: LLC обозначает Last Level Cache, кэш последнего уровня и обозначает общий L3 кэш процессора.
Визуальное представление состояний:
Источник: Software Impact to Platform Energy-Efficiency White Paper
Последовательность C-состояний простыми словами:
Однако если ядро работает (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 из этого состояния). Целевое резидентное значение обозначает минимальное время, которое ядро должно находиться в данном состоянии, чтобы оправдать энергетические затраты на переход в это состояние и обратно. Обратите внимание на логарифмический масштаб вертикальной оси. Задержки и минимальное время нахождения в состоянии увеличивается экспоненциально с увеличением номера состояния.
Константы задержок выхода и целевых резидентных значении C-состояний в исходном коде intel_idle
Примечание: Хотя состояния С9 и С10 включены в таблицу, они имеют 0 суб-состояний и поэтому не используются в моем процессоре. Остальные процессоры из семейства могут поддерживать эти состояния.
Состояния питания 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. Краткий обзор:
Вот поддерживаемые состояния 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.
Мониторинг счетчиков С-состояний (для ядра):