Настройка power limit в bios
Столкнулся с проблемой ограничения максимальной частоты работы процессора Intel на ноутбуке, но, вероятно, такое может быть и с настольным компьютером. Как известно, процессоры имеют две тактовые частоты: стандартная и турбированная. В процессорах Intel встроенная технология разгона называется «Turbo Boost» , а для AMD – «Turbo Core» .
- Первое ядро 3300 MHz
- Второе 3200 MHz
- Третье 3000 MHz
- Четвёртое ядро ограничено 2900 MHz
Ограничение мощности процессора
Технологию Intel Turbo Boost или AMD Turbo Core должен поддерживать BIOS материнской платы, и это не проблема. На самом деле, Turbo-частота расценивается как бонус к производительности, и не обязательна к воплощению, особенно на длительное время. Некоторые производители ноутбуков занижают максимальной ток потребления процессора, тем самым, не позволяя ему потреблять больше мощности, чем это возможно. Производитель ограничивает максимальную мощность по трём причинам:
- Экономит на деталях материнской платы
- Вынужденная мера, если это ультрабук, тонкий ноутбук, когда бОльшее потребление мощности приведёт к перегреву
- Маркетинговый ход, при наличии более мощных ноутбуков на такой же базе комплектующих
Ограничение по току вшито в BIOS материнской платы, и может не поддаваться изменению с помощью программ.
Ошибка EDP Current Limit
При работе всех ядер процессора на максимальных частотах, могут появляться ошибки превышения допустимых пределов (Throttling). При тротлинге понижается частота процессора до такой, при которой тротлинг прекратится, при этом он работает медленнее. Есть три вида ошибок тротлинга:
- Thermal Limit Throttling: перегрев процессора, достижение максимальной температуры
- Power Limit Throttling: достижение максимально-допустимой мощности
- Current Limit Throttling: процессор потребляет максимально-возможный ток
EDP Power и Current Limit, в принципе, одно и то же, но их лимиты задаются в разных местах.
Итак, получается, что операционная система пытается поднять частоту процессора до максимальной, и упирается в ошибку «EDP Current Limit» , потому что материнка говорит «я не могу обеспечить процессор током, необходимым для поддержания такой частоты».
Как разогнать процессор с ограничением по току
Есть три способа регулирования EDP-лимитов:
- В БИОС’е материнской платы, советов не дам, зависит от модели платы
- Программа «Intel Extreme Tuning Utility (XTU)»: громоздкая и по непонятной причине иногда сбрасываются настройки после перезагрузки
- Программа ThrottleStop: лёгкая и гибкая утилита, не требует установки, просто распакуйте и запустите
В окошке «Limit Reasons» мы видим причины активации лимитов. В окне «TS Bench» мы запустим тест скорости процессора кнопкой «Start» (на скриншоте это уже кнопка «Stop» ). Теперь видно, что загорелись ошибки «EDP CURRENT» , что означает материнская плата не даёт больше тока.
Максимальный ток потребления
Если вам повезло, то вы сможете регулировать значение «IccMax» в амперах (A). Увеличивайте максимальный ток «IccMax» , пока не пропадёт надпись «EDP Current» , а процессор будет работать на максимально-документированной частоте Turbo Boost.
Учтите, что при увеличении тока, повышается нагрузка на компоненты материнской платы, что может привести к перегреву и выхода их из строя!На бОльший ток должен быть рассчитан блок питания ноутбука и система охлаждения. Впрочем, кратковременные перегрузки не страшны. Некоторые ноутбуки могут начать пищать на высоких звуковых частотах. Если на номинальных частотах писка нет, а при разгоне появляется, то лучше немного убавить максимальный ток. Писк из ноутбука без разгона – «нормальное явление» , «не гарантийный случай» , как заявляют сами производители устройств. На самом деле это проблема, но уже для другой статьи.
Андервольтинг
Регулирование «IccMax» бывает недоступно, как у меня. Это значит, что производитель вшил параметры в материнку. Мощность потребления процессора рассчитывается по формуле:
Мощность = Ток * Напряжение
Итак, в окне «Turbo FIVR Control» выставляем:
- FIVR Control: «CPU Core»
- Ставим галочку «Unlock Adjustable Voltage»
- Передвигаем ползунок «Offset Voltage» влево. НЕ ПЕРЕПУТАЙТЕ ползунок c «Voltage» . Иначе можете спалить проц!
Затем ставим переключатель FIVR Control в положение «CPU Cache» и делаем то же самое для кэша. «Offset Voltage» должно быть таким же, как и для «CPU Core» (можно и разное, ничего не сгорит). Этими действиями вы выставляем смещение напряжения от номинального. Например, если системная плата хочет подать на процессор 1.8V, то при «Offset Voltage» равным -50mV, CPU получит только 1.75V. Нажимаем «OK» и запускаем «TS Bench» , следим, до какой частоты теперь разгоняются ядра.
Максимальное отрицательное смещение для вашего процессора индивидуально, зависит от модели и экземпляра. Начните с -30mv и увеличивайте с шагом 5mV. В отличие от метода разгона процессора увеличением напряжения, нашим андервольтингом ничего сломать нельзя. Максимум плохого, что может произойти – зависнет Windows. После перезагрузки всё вернётся как было.
Нужно нащупать максимальное снижение напряжения, желательно, с точностью до милливольта, при котором максимальные частоты ещё увеличиваются, и компьютер работает без зависаний. Может оказаться, например, что последнее «стабильное смещение» -70mV, но частота перестала увеличиваться на -65mV, тогда лучше оставить -65mV. Кстати, компьютер может не зависать определённое время, даже на стресс-тестах, но в каких-то программах всё равно зависнет. Например, у меня иногда при воспроизведении видео в Youtube, операционная система всё-таки зависала. Тогда нужно увеличить напряжение на один шаг.
С помощью андервольтинга мне удалось разогнать Turbo Boost процессора Intel Core i7-4712MQ с 2500MHz до 2800MHz. Это немного, но лишней производительности не бывает, учитывая абсолютную безопасность метода. Не исключаю, что на других ноутах результат может быть куда лучше (попалась совсем неудачная плата).
Кстати, недостаточно снять галочку «Unlock Adjustable Voltage» чтобы отменить настройку «Offset Voltage» . Нужно выставить значение на 0mV и нажать «OK» .
Ошибка «Power Limit»
EDP «Power Limit» возникает при превышении общей допустимой мощности потребления. Нажмите в главном окне программы «ThrottleStop» кнопку «TPL» и задайте более высокие пределы для долговременной нагрузки (Turbo Long Power Max) и кратковременной мощности (Turbo Long Power Max):
Также можно поиграться с параметрами «PP0 Current Limit» , задав более высокие пороги по току.
Автоматический запуск программы
Настройки сбиваются после перезагрузки компьютера, поэтому программа ThrottleStop должна загружаться автоматически вместе с Windows. Добавьте ярлык на «ThrottleStop.exe» в автозагрузку любым удобным способом: в папку «Пуск -> Все программы -> Автозагрузка» , через реестр Windows или в Планировщике задач. Далее, в главном окне программы нажмите «Options» и поставьте галочки:
- «Start Minimized» : чтобы во время запуска Windows, программа запускалась свёрнутой;
- «Minimize on Close» : чтобы программа не закрывалась после клика по крестику, а сворачивалась.
ThrottleStop должна быть всё время запущенной, чтобы параметры процессора восстанавливались после выхода их режима «Сон» . А вообще, после применения настроек, программу можно закрыть.
ВАЖНО! Добавляйте программу в «Автозагрузку» уже после обнаружения оптимального «Offset Voltage» .Иначе может получится так, что вы выставите большое смещение и компьютер зависнет, а после перезагрузки, ThrottleStop снова загрузит новые настройки и компьютер будет зависать при каждом запуске.
Материнские платы MSI серии B460 позволяют процессору работать на более высоких частотах за счет увеличения лимита мощности.
Впрочем, чтобы процессор Core i5, i7 или i9 не страдал от перегрева, для него может потребоваться специальная система охлаждения, поскольку стандартный кулер от Intel будет недостаточно эффективным при тяжелых нагрузках, например, при запуске бенчмарков Blender или CineBench. Иными словами, для стандартного кулера нужен более низкий лимит мощности. Какой именно? И какой лимит следует задавать для мощных систем воздушного и водяного охлаждения, чтобы суметь раскрыть весь скоростной потенциал того или иного процессора?
Специалисты MSI разработали новую функцию, которая дает пользователю рекомендации по настройке лимита мощности в зависимости от используемой системы охлаждения. Называется она CPU Cooler Tuning – «Настройка процессорного кулера», пользоваться ей легко и просто. При первой загрузке компьютера (или всякий раз после очистки настроек BIOS) материнская плата предлагает указать типа процессорного кулера и задает соответствующий лимит мощности. Функция эта доступна на материнских платах MSI с чипсетами Intel Z490, B460 и H410.
В качестве примера возьмем плату MAG B460M Mortar WIFI. Она предлагает выбрать из трех типов процессорных кулеров: боксовый (65 Вт), башенный воздушный (255 Вт) и водяной (255 Вт). Не забудьте нажать клавишу F10, чтобы сохранить настройки и выйти из BIOS после выбора. Заданная настройка лимита мощности вступит в силу при следующей перезагрузке.
Ниже представлены настройки для кулеров трех типов.
Power Limit 1 / Power Limit 2 | Текущий предел | |
---|---|---|
Коробочный кулер | 65W / 134W | 140A |
Воздушная система охлаждения Tower | 255W / 255W | 210A |
Жидкостной кулер | 255W / 255W | 210A |
Если нужно изменить тип кулера и соответствующую настройку лимита мощности, просто зайдите в интерфейс BIOS и выберите нужное значение в выпадающем меню CPU Cooler Tuning.
Если стандартные значения вам не подходят, можете настроить лимит мощности вручную. Это осуществляется в разделе Overclocking / Advanced CPU Configuration (Разгон / Расширенные настройки процессора).
Как лимит мощности влияет на температуру и производительность процессора?
Возможно, вы задаетесь вопросом, как именно лимит мощности влияет на температуру и производительность. Ниже представлены результаты тестов в бенчмарке Blender BMW 2.7 со стандартным процессорным кулером Intel. При этом использовались процессор Intel Core i5-10600 и материнская плата MAG B460M Mortar.
Как видно из приведенной ниже диаграммы, при использовании боксового кулера с лимитом мощности 65 Вт температура процессора удерживается на отметке в 70 градусов за счет снижения производительности. Если лимит мощности увеличен до 95 Вт, производительность растет, а температура достигает 89 градусов. При еще большем увеличении лимита мощности (до 255 Вт) температура повышается до 100 градусов, что не рекомендуется для повседневной работы компьютера. Таким образом, для боксового кулера Intel оптимальным будет лимит мощности в 65 Вт.
Для выявления наилучшего значения лимита мощности рекомендуется протестировать компьютер с теми приложениями, которые вы используете чаще всего. Если же вы затрудняетесь с выбором, то функция CPU Cooler Tuning – отличный способ быстро задать подходящее значение лимита мощности в зависимости от вашей системы охлаждения.
В ноутбуках зачастую установлены компактные системы охлаждения, которые могут рассеять небольшое количество тепла. Поэтому производителям ноутбуков приходится ограничивать тепловыделение процессора, для этого используется, так называемый, power limit.
Но не всегда производители устанавливают это значение на оптимальном уровне, иногда оно может быть завышено, в этом случае при сильной загрузке цп (например в играх) он будет перегреваться и троттлить (сброс тактовой частоты). При заниженном значении у комплектующих будет достаточный температурный запас, который никак не будет использоваться.
Запускаем программу, включаем, убираем галочку BD PROCHOT, сохраняем.
Откройте раздел FIVR.
Откройте вкладку TPL и вбейте нужные значения (в ваттах). Вначале работает short power max, потом через некоторое время (которое можно изменить внизу) включается режим long power max. Сохраните изменения.
Во вкладке TS Bench имеется встроенный бенчмарк, которых поможет вам протестировать стабильность системы.
Спасибо за внимание, надеюсь эта статья кому-то поможет.
Компьютер это просто
608 постов 2.7K подписчиков
Правила сообщества
Уважать мнение других
Не переходить на личности, даже при споре, "Что лучше Intel или AMD".
Матерится, выражая эмоции можно, но опять же, не в адрес оппонента или собеседника.
Отдельно для "свидетелей LINUX": Вам здесь рады, но и к Вам пожелание быть проще и понятней.
Не вводить в заблуждение заведомо неверными и вредными советами, даже в шутку. Если же пошутить хочется, помечайте это в комментарии, добавив слово "шутка", или другим понятным словом, что бы в дальнейшем данный комментарий не воспринимался серьезно.
В публикуемом посте настоятельно рекомендуется указывать конфигурацию ПК (ноутбука) и операционную систему. А также марки и модели комплектующих.
Указывайте теги "Компьютер" "Ноутбук" "Программное обеспечение" "сборка компьютера" "Операционная система" "Драйвер" "Комплектующие".
Это есть в системе по умолчанию.
Компьютерный мастер. Часть 152. Core I3 + Iris Xe Graphics, ноут для игр без видеокарты. пробуем
Я давно нахожусь в поиске баланса. Вот надоело мне иметь дома отдельный мощный комп и компактный ноутбук для выездной работы и очень хочется найти компромиссный вариант, но с этим всё сложно. Берешь игровой ноут MSI с дискретной видеокартой 1050/1650, и выясняется что он тяжелый шумный, огромный блок питания. короче с собой не потаскаешь. а мне по сути, всего-то надо иногда в танки или фифу погонять. и вот недавно брал клиенту ноут, на Core i3-1125G4 это последнее 11-е поколение со встроенной графикой с 4-мя физическими ядрами и встроенным видеоядром Iris Xe Graphics G4 48EU.
Покупался в такой конфигурации: 14", IPS, Intel Core i3 1125G4 2.0ГГц, 8ГБ, 512ГБ SSD - за 34тр
И первые впечатления очень, приятные. всё таки технологии развиваются, и уже всего за 500$ ты получаешь яркую IPS матрицу, легкий вес, автономность, производительность и большой SSD от samsung
Так что же по поводу игр:
я как то писал месяц назад впечатления от дискретной GeForce MX130 и они были приятными, но Iris Xe Graphics G4 48EU хоть и встроенная но ничуть не хуже.
В World of Tanks на низких настройках(не на минимальных) в Full HD разрешении 1920*1080 стабильный 100+ FPS кадров секунду
А на средних натсройках, где картинка в разы симпатичнее, и даже на большой карте, где много света и объектов, не падает ниже 44-45 кадров в секунду, что тоже вполне играбельно:
Вобщем можно смело сказать, что теперь и на встроенной графике intel можно играть, не хуже чем на Ryzen 5 3500U с его встроенной VEGA8
Как Intel, AMD и Nvidia обманывают покупателей ноутбуков
Привет Пикабу! Ситуация сейчас такая - видеокарты стоят на 70% дороже рекомендованной цены и многие решают, что вместо одной RTX 3080 (за 225к руб при стартовой в 64к) лучше купить хороший ноут и еще сэкономить. И разумеется, при выборе ноутбука люди ищут модели с проверенной временем связкой Intel + Nvidia. Однако вот сюрприз — оба производителя чипов не редко обманывают пользователей, причем практически идентичными способами. Какими — мы и расскажем в этой статье.
Текстовая версия - под видео.
Уже давно один и тот же ноутбук может поставляться в версиях с различными процессорами, видеокартами, объемом памяти и накопителями. Выглядят одинаково, а стоят очень по разному. И, разумеется, если хочется максимума производительности, то вполне логично купить топовую версию лэптопа.
Однако выглядит — не значит является. Возьмем, например, десктопный сегмент. В нем Intel Core i7 отличаются от Core i9 меньшим числом ядер или потоков, и на деле между ними ощутимая разница в производительности.
А что же в ноутбуках?
А в ноутбуках что некоторые Core i7, что некоторые Core i9 могут иметь по 8 ядер и 16 потоков. В чем же между ними разница, спросите вы? В частоте: у Core i9 она на пару-тройку сотен мегагерц выше, что в теории должно добавить еще 10-15% производительности.
А на практике нередко бывает так, что в ноутбуках топовый Core i9 выступает на уровне и даже хуже Core i7. Почему так?
Всему виной очень жесткий теплопакет, который составляет по умолчанию 45 Вт.
Посудите сами — десктопный Core i9-9900K с частотой в 5 ГГц под нагрузкой может и 150 Вт выделять. Поэтому очевидно, что аналогичные по числу ядер мобильные Core i9, зажатые в 4 раза меньший теплопакет, реально под нагрузкой держат частоту в 3-3.5 ГГц. Так что не удивительно, что опять же аналогичные по числу ядер мобильные Core i7 с аналогичным теплопакетом в 45 Вт показывают тот же уровень производительности.
Бывает еще смешнее: так, теплопакет в 45 Вт — номинальный, и его можно двигать как в сторону уменьшения, так и в сторону увеличения. Поэтому Core i7 с условным теплопакетом в 60 Вт будет быстрее Core i9 с теплопакетом в 45 Вт.
Вот и получается, что красивое лого Core i9 на корпусе ноутбука может быть просто фикцией. Поэтому, выбирая себе лэптоп, внимательно изучайте его обзоры — вполне возможно, что логичным решением будет остановиться на Core i7 или даже Core i5, потому что реального прироста производительности от более старших версий CPU просто не будет.
Касается ли это AMD? Увы — теперь тоже да: если раньше мобильные Ryzen 4000 были четко разделены по числу ядер, то теперь новые Ryzen 5000 представляют собой мешанину линеек и ядер, как и у Intel.
Что еще хуже — компания решила мухлевать и с названием различных CPU.
В теории по названию старшим CPU является второй, а на деле под нагрузкой быстрее будет первый. Красный маркетинг в действии.
Так что еще раз повторим — внимательно изучайте обзоры нужного ноутбука перед покупкой, нередко это позволит вам взять модель с процессором с виду попроще, но с такой же производительностью.
Видишь RTX 3080? Нет? И правильно, это RTX 3070
И, как вы уже догадались, Nvidia занимается таким же мухлежом. Хотя даже не таким — зеленые шуллерствуют куда сильнее синих и красных. Возьмем их новую линейку мобильных видеокарт на архитектуре Ampere, они же RTX 3000. У топа, RTX 3080, 6144 ядра CUDA. Но стоп, у десктопной ведь 8704? Вы все верно помните.
И, как понимаете, мобильная RTX 3080 в принципе не может быть на уровне десктопной — ее реальный уровень производительности оказывается ближе к RTX 3070 с 5888 ядрами CUDA.
Таким шагом Nvidia по сути перечеркнула весь свой труд последних четырех лет, когда она всеми силами доказывала, что мобильные видеокарты почти как десктопные, лишь чуть по частотам хуже. По сути так оно и было: что десктопные GTX 1000 и RTX 2000, что их мобильные собратья базировались на одинаковых GPU.
Поэтому если вы в свое время брали ноутбук с GTX 1060 вы могли быть уверены, что получите производительность, сравнимую с десктопной GTX 1060. Теперь же этого нет.
Дальше — хуже. В предыдущих линейках мобильных видеокарт Nvidia были версии Max-P и Max-Q. Первые выделялись максимально высоким теплопакетом и частотами, вторые наоборот были максимально урезанными, дабы их можно было ставить в тонкие ноутбуки и называть их игровыми=). То, что при этом какая-нибудь RTX 2080 Max-Q могла оказаться медленнее RTX 2060 Max-P мы уже не раз говорили, и вы наверное к этому уже привыкли.
Опять же, это была не идеальная схема, но все же она работала: вы могли бросить взгляд на характеристики лэптопа и понять, с каким уровнем производительности вы имеете дело. Сюрприз — в линейке RTX 3000 разделений на Max-Q и Max-P больше нет.
Вот видите вы RTX 3070 с 110 ваттами. Это какая версия? Ближе к топу? Или наоборот урезанная? Сказать сложно, не правда ли?
Нужно лезть на сайт Nvidia, искать спецификации мобильной RTX 3070 и смотреть на возможные для нее теплопакеты. Очень удобно, не правда ли?
Ах да, всего мобильных RTX 3000 может существовать 28 штук. Хуанг желает вам удачи в выборе.
В итоге мы получаем, что мобильные RTX 3000 отличаются от десктопных по числу CUDA-ядер и памяти, да еще и версий там пруд пруди. Поэтому единственный способ не ошибиться — внимательно изучать обзоры заинтересовавшего вас лэптопа, дабы понять конкретно его уровень производительности в играх.
Если в сегменте десктопных процессоров и видеокарт все максимально просто, и различные версии той же RTX 3060 отличаются по производительности буквально на пару процентов, то вот в ноутбуках творится полнейший адЪ.
И если раньше это можно было объяснить тотальным доминированием Intel и Nvidia в мобильном сегменте, что позволяло им творить что душе угодно, то теперь, с приходом AMD, та решила не бороться со злом, а примкнуть к нему.
Так что обзоры, обзоры и еще раз обзоры — ваши лучшие друзья в подборе игрового ноутбука. Спецификации лэптопов сейчас врут вам как никогда, не полагайтесь на них.
Мой Компьютер специально для Пикабу!
Падение частот процессора в ноутбуке Asus
Попал в руки ASUS ROG zephyrus g15 - неплохая конфигурация с Ryzen 7 на борту, gtx 1660ti, 16gb ddr4 и быстрым ссд м2 третьего поколения.
Фото, как говорятся, из интернетов. Ах да, ещё и экран 120 гц. Неплохой конфиг, но как только включаешь винду - жуткие тормоза. После переустановки той самой винды владельцем. Проверяю драйвера, версию биос - всё стоит самое новое, открываю диспетчер задач
И да, ноут не всю ночь маслал на полной загрузке проца, включил сериал на повторе и загружаться кой-чего поставил. А тут уже стресс тест включил, чтоб убедиться, что не скидывает частоту. Надеюсь, кому-то поможет. В нашем сегменте решения не нашёл, видимо потому что ноут совсем свежий и никому ещё в голову не пришло полностью на нем винду переставлять. Решение простое, но эффективное. Всем удачи.
Как центральный процессор может сокращать собственное энергопотребление? Основы этого процесса — в статье.
Центральный процессор (CPU) спроектирован на бесконечно долгую работу при определенной нагрузке. Практически никто не проводит вычисления круглые сутки, поэтому большую часть времени он не работает на расчетном максимуме. Тогда какой смысл держать его включенным на полную мощность? Здесь стоит задуматься об управлении питанием процессора. Эта тема включает в себя оперативную память, графические ускорители и так далее, но я собираюсь рассказать только про CPU.
Если вы знаете про C-состояния (C-states), P-состояния (P-states) и то, как процессор переходит между ними, то, возможно, в этой статье вы не увидите ничего нового. Если это не так, продолжайте читать.
Я планировал добавить реальные примеры из ОС Linux, но статья становилась все больше, так что я решил приберечь это для следующей статьи.
Основные источники информации, использованные в этом тексте:
Особенности CPU
Согласно официальной странице продукта, мой процессор поддерживает следующие технологии:
- состояния простоя (Idle States);
- усовершенствованная технология Intel® SpeedStep (Enhanced Intel® SpeedStep Technology).
Теперь выясним, что значит каждое из этих определений.
Как снизить энергопотребление процессора во время его работы?
На процессорах для массового использования (мы не берем в расчет вещи, которые возможны при их проектировании) для снижения потребляемой энергии можно реализовать один из сценариев:
- Сократить энергопотребление подсистемы (ядра или другого ресурса, такого как тактовый генератор или кэш) путем отключения питания (уменьшив напряжение до нуля).
- Снизить энергопотребление путем снижения напряжения и/или таковой частоты подсистемы и/или целого процессора.
Второй вариант требует чуть больше объяснений. Энергопотребление интегральной схемы, которой является процессор, линейно пропорционально тактовой частоте и квадратично напряжению.
Примечание для тех, кто разбирается в цифровой электронике: 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).
- 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 суб-состояний и поэтому не используются в моем процессоре. Остальные процессоры из семейства могут поддерживать эти состояния.
Состояния питания 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-состояний. Система не спит, она физически отключена и не может проснуться. Ей необходимо сначала получить питание.
Как программно запросить переход в энергосберегающее С-состояние?
Современный (но не единственный) способ запросить переход в энергосберегающее состояние — это использовать инструкцию 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), у которой есть два достоинства:
- для энергосбережения прерывание может быть переадресовано работающему ядру, чтобы не будить спящее ядро;
- для производительности прерывание может быть переадресовано от работающего на полную мощность ядра к простаивающему (С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.
Читайте также: