Функции управления производительностью и энергопотреблением процессоров Intel

Часть 3 — процессор Intel Pentium M


Так или иначе, мы периодически возвращаемся к теме тепловых технологий (энергосбережения и защиты от перегрева), реализованных в современных процессорах — например, в нашем совсем недавнишнем исследовании странного поведения материнской платы ASUS P5WD2 Premium. Благо для этого мы всегда можем воспользоваться нашей собственной разработкой — уникальной утилитой RightMark CPU Clock Utility, позволяющей не только реализовать эффективное управление производительностью и энергопотреблением процессора, но и вылавливать нюансы его поведения — например, отследить момент его вхождения в режим троттлинга.

Правда, в основном эта тема затрагивала процессоры Intel Pentium 4 — две предыдущих части настоящего материала посвящены именно этим процессорам (наряду с их серверными аналогами — Intel Xeon). С одной стороны, это было вызвано наличием множества таких технологий именно в этих процессорах, с другой — как ни странно, простотой исследования. Их ближайший функциональный аналог (разумеется, именно по части тепловых технологий, а не реализации архитектуры) — мобильный процессор Pentium M — как бы намеренно избегался, ввиду проблематичности исследований теплового режима процессора, находящегося внутри корпуса ноутбука (даже такая простая операция, как намеренная остановка кулера, в этом случае весьма затруднительна). И вот, как говорится, справедливость восторжествовала — в распоряжении нашей тестовой лаборатории оказалась весьма экзотическая десктопная материнская плата от компании DFI, рассчитанная как раз под процессор Pentium M. С результатами тестирования этой платформы как таковой можно будет ознакомиться в ближайшее время в нашей отдельной статье. Здесь же мы решили незамедлительно воспользоваться шансом, чтобы увидеть в действии уже знакомые нам (по исследованиям Pentium 4) тепловые технологии Thermal Monitor 1 (TM1) и Thermal Monitor 2 (TM2), но в мобильном процессоре Pentium M.

Конфигурация тестового стенда

  • Процессор: Intel Pentium M 2.13 ГГц (ядро Dothan ревизии C0, CPUID 06D8h)
  • Чипсет: Intel 855GME + Intel 6300ESB
  • Материнская плата: DFI 855GME-MGF, версия BIOS от 11/30/2004
  • Память: 2x512 МБ Corsair DDR-400, тайминги 2-2-2-5
  • Видео: ATI Radeon 9800 Pro
  • HDD: WD Raptor WD360, SATA, 10000 rpm, 36Gb

Программное обеспечение

Результаты исследований

Начнем с общего исследования нашей «десктопно-мобильной» платформы. Для этого просто запустим RMClock (предварительно очистив все его настройки в реестре) и посмотрим на вид основных закладок приложения — General и Advanced.



По умолчанию процессор функционирует в режиме максимальной производительности (что в общем-то разумно для десктопной платформы) — с максимальной частотой при максимальном напряжении. Несмотря на то, что BIOS заверяет нас в использовании Thermal Monitor 2 (и эту настройку изменить нельзя), утилита показывает, что механизм автоматической тепловой защиты процессора… вообше отключен, что с официальных позиций Intel является внештатным (out of spec) режимом работы процессора. Кроме того, весьма некорректно выставлен TM2 Target — те значения множителя и напряжения, которые процессор будет использовать при срабатывании механизма TM2 (заметим, что согласно официальной документации Intel менять эти значения на Pentium M как бы нельзя, однако все прекрасно работает — в чем мы убедимся ниже). Что ж, восстановим справедливость — включим режим TM2 и выставим его целевые значения таким образом, чтобы они соответствовали стартовым (FID 6x, VID 0.988V). Разумеется, здесь, как и далее, в настройках минимального состояния производительности (P-State), можно выставить и более низкое напряжение — вплоть до 0.7V. Однако это — уже задача достижения максимума энергосбережения, актуальная для пользователей ноутбуков (и, заметим, весьма успешно решаемая с помощью RMClock), для наших же целей сгодятся и настройки по умолчанию, т.е. рекомендованные производителем.

Выставив стандартные настройки в Advanced, перейдем в закладку Management, чтобы включить управление производительностью процессора (P-States Transitions) с помощью технологии Enhanced Intel SpeedStep (EIST) и задать используемые состояния производительности — вновь воспользуемся настройками по умолчанию.

Выставим профиль производительности Maximal, отвечающий максимальному состоянию производительности (FID 16x, VID 1.356V). Собственно, это ничего не изменит, поскольку процессор уже находился в этом режиме. Однако запустим теперь параллельно утилиту SpeedFan и сравним значения запрашиваемого напряжения (VID) с фактическим напряжением, подаваемым на ядро процессора (Vcore).

И увидим, что они совпадают почти один в один, в пределах погрешности измерений Vcore. Следующий этап — выставим минимальный профиль производительности Minimal (FID 6x, VID 0.988V).

По сравнению с Pentium 4, здесь нет ничего удивительного — фактическая частота процессора (как Actual Clock, «референсная» частота счетчика TSC, так и Throttled Clock — эффективная частота ядра) изменяется в точном соответствии с коэффициентом умножения частоты FSB. Т.е. процессор Pentium M, в отличие от Pentium 4 (о последнем мы поговорим подробнее в заключительной части), является как бы полностью синхронным устройством. Вновь обратим внимание на соответствие VID и Vcore — и вновь оно оказывается почти идеальным (0,988V против 0,98V). Таким образом, если верить показаниям датчика Vcore (т.е. верить тому, что он выдает значения без смещения), качество реализации VRM и цепей питания процессора в материнской плате впечатляет! DFI явно хорошо позаботилась о реализации эффективного управления энергопотреблением процессора — ведь именно оно выгодно отличает Pentium M от «массовых» процессоров для десктопного сектора Pentium 4.

Thermal Monitor 1

Идем далее. Для начала, восстановим максимальный режим производительности, вернемся в закладку дополнительных настроек Advanced и включим режим автоматической тепловой защиты Thermal Monitor 1 — поведение именно этой, более древней технологии, мы намерены изучить в первую очередь. Следующий этап — подаем максимальную нагрузку, имитируемую простым тестовым приложением, и смотрим на показания температурного датчика в SpeedFan.

В условиях «штатного» охлаждения (если его можно так назвать — учитывая, что крепление для кулера на плате весьма нестандартное, и для охлаждения процессора сгодился только оснащенный вентилятором кулер северного моста(!) Intel 865, снятый с одной из материнских плат) температура процессора по показаниям датчика едва превышает 60°C. Как обычно, следующим шагом проделываем дерзкий эксперимент — отключаем питание вентилятора кулера.

Температура процессора ощутимо растет, и довольно быстро доходит до точки срабатывания троттлинга — включения механизма TM1. На этом этапе она составляет 83°C. Не исключено, что фактическая температура процессорного ядра при этом ниже — не 83, а 73°C, такую цифру нам показывали процессоры Pentium 4. Известно, что точность датчиков весьма низка, а точнее — велик разброс смещений, он может достигать и +/-20°C(!). Поэтому предположим, что показания этого датчика превышают фактическую температуру на 10°C. Впрочем, для наших целей это вновь неважно — нам достаточно лишь качественных оценок, насколько та или иная технология способна замедлить стремительный перегрев процессора при возникновении внештатной ситуации. Именно на это мы и обратим внимание.

Итак, проходит всего примерно полминуты, как троттлинг стабилизируется — фактическая частота процессора не меняется, а «частота троттлинга» доходит до ~1138 МГц, т.е. примерно до 53% от первоначальной производительности процессора. Что же происходит с температурой — она возрастает до 88°C, т.е. на 5°C, после чего также останавливается на этом уровне. Возобновляем активное охлаждение процессора.

Еще полминуты — и процессор вновь работает в режиме максимальной производительности, его температура падает и в момент окончания троттлинга составляет примерно столько же, сколько и в момент его начала — 83°C (снятие скриншота проводилось несколько позже, и температура уже успела упасть еще на 2°C).

Thermal Monitor 2

Теперь изучим наиболее интересное — технологию Thermal Monitor 2. Вкратце напомним, что выгодное отличие TM2 от TM1 — это возможность сброса фактической частоты процессора (и в случае Pentium M это абсолютно верно) наряду с заметным снижением его питающего напряжения (т.к. известно, и уже при кратком рассмотрении поведения EIST мы это видели, что при более низкой частоте процессор способен работать на более низком напряжении; в первом приближении, зависимость частоты от напряжения линейная). В свою очередь, это приводит к весьма заметному снижению рассеиваемой процессором мощности (суммарная зависимость мощности от напряжения, включая частотную составляющую — кубическая), а следовательно и его рабочей температуры. Что ж, довольно теории — переходим к практике. Процедура та же — остановка кулера и мониторинг показаний датчика температуры процессора.

Момент срабатывания троттлинга — температура имеет тот же порядок, 84°C.

Первая минута работы процессора в режиме троттлинга заслуживает особого рассмотрения. Прежде всего, здесь видно подлинное снижение всех «частотных составляющих» процессора (частоты счетчика тактов и частоты ядра), как и при функционировании технологии EIST. Второе, что следует отметить — это множественные переключения процессора между всего двумя состояниями — основным (FID 16x, VID 1.356V) и TM2 Target (FID 6x, VID 0.988V — вот здесь-то мы и видим, что программировать TM2 на Pentium M можно, и даже нужно — если бы мы оставили исходные значения, заданные на этапе инициализации платы в процедуре BIOS POST, мы не получили бы от TM2… ровным счетом ничего!). Наконец, последнее, и не менее важное — температура ядра уверенно сохраняется на том же уровне (84°C).

Этот скриншот, полученный уже через пару минут функционирования процессора в режиме TM2-троттлинга, хорошо демонстрирует, что температура ядра процессора при функционировании TM2 действительно держится на постоянном уровне, а процессор не прекращает попытки вернуться в состояние максимальной производительности. Это значит, что качество реализации технологии TM2 в Pentium M — не в пример лучше по сравнению с реализацией таковой в Pentium 4 и Xeon. Отличия просто феноменальные — по сравнению с «Pentium M-TM2», «Pentium 4-TM2» и «Xeon-TM2» выглядят просто… косметическим решением. Напомним, что в том случае, несмотря на множественные переключения состояний VID (при единственном переключении FID — с рабочего на TM2 Target), мы получали кривые троттлинга, весьма напоминающие и по своей эффективности не очень сильно отличающиеся от кривых TM1-троттлинга. Производительность быстро падала до минимума, температура продолжала рости…

Тем не менее, мы немного отвлеклись. Пора закончить эксперимент с TM2 в Pentium M, т.е. включить кулер. И увидеть быстрое (менее чем за полминуты) восстановление максимальной производительности процессора.

«Celentrino» — not quite a Mobile Technology!

Мы уже затронули сравнение Pentium M с Pentium 4, и еще обязательно к нему вернемся. А пока не обойдем стороной еще одного, ближайшего родственника Pentium M — его усеченный вариант Celeron M (и если платформу на Pentium M можно смело назвать «Centrino Mobile Technology», последнему подходит именно такое название, вынесенное в заголовок).

А делаем мы это, можно сказать, с целью предупреждения потенциальных покупателей о товаре, который они собираются приобретать, и стоит ли это вообще делать? Ибо к великому сожалению, получился он уж чрезмерно усеченным, и дело тут далеко не только в размере L2-кэша. Реальное положение вещей таково: почти все то, что мы тут написали, расхваливая Pentium M — к Celeron M уже не относится! В нем нет ни технологии Enhanced Intel SpeedStep, ни Thermal Monitor 2 (они отключены аппаратно, и способа обойти это — не существует).

Итак, приобретая Celeron M, вы не получите ни эффективного управления его режимами производительности и энергопотребления, ни эффективной защиты при его возможном перегреве. Что реально можно получить от Celeron M — это тепловую защиту в виде устаревшей Thermal Monitor 1 (которая, как мы убедились, далеко не так эффективна — производительность падает сильно, а температура растет), и управление его «режимами производительности», если это вообще можно так назвать — только посредством модуляции тактовой частоты (ODCM). Эффективность последней, реализованной в автоматическом варианте, близка к нулю — ибо в режиме простоя для процессора нет разницы, исполняет ли он «просто холостые такты» (C1/Halt или, тем более, находится в более глубоких энергосберегающих состояниях — C2/Stop Grant, C3/Sleep и C4/Deep Sleep), или же «форсированно холостые» за счет активной модуляции. Единственное, что можно реально получить с помощью ODCM — это ограничение верхнего уровня его производительности… разумеется, с пропорциональной потерей последней. Поэтому мы рекомендуем всем потенциальным покупателям ноутбуков на платформе Centrino настоятельно задуматься, какие выгоды они могут получить от приобретения «полноценной» версии платформы с процессором Pentium M, а не усеченной «Celentrino».

И снова Pentium 4…

И напоследок, как мы и обещали, вернемся к теме процессоров Pentium 4. Результаты наших последних тестов все-таки вынуждают нас опровергнуть первоначальную гипотезу о едином механизме управления всеми тепловыми технологиями этих процессоров — посредством модуляции тактовой частоты. Ибо, как мы убедились, «троттлинг» может… превышать 100%, что физически невозможно по определению самого троттлинга (синонимом которого является модуляция тактовой частоты — пропуск некоторого количества «полезных» тактов с превращением их в «холостые»). Таким образом, оказалась верна все-таки альтернативная гипотеза — о «разделении» процессора на несколько независимо тактируемых составляющих. Весьма занятно, что счетчик тактов TSC находится в одной из них, а само ядро вкупе со счетчиками производительности — в другой (быть может, есть еще и третья? :)). Впрочем, все это не умаляет нашей критики, высказанной в первых двух частях настоящего материала. Ибо критиковали мы, вообще-то, не детали реализации тех или иных технологий. Главное, что подлежит критике — это видимость их действия для пользователя, ибо в «прозрачности» может заключаться потенциальный обман. И печально, что со всеми пятью технологиями, имеющимися в Pentium 4 и Xeon (ODCM, TM1, TM2, DBS, C1E) дело обстоит именно так — действие всех этих технологий абсолютно прозрачно для пользователя. Ибо большинство утилит по-прежнему — можно сказать, по привычке — опираются на показания TSC как показателя частоты процессора. Либо используются «методы подгона», как например в последних версиях CPU-Z, когда частота вычисляется опосредованно. Тем не менее, даже эти методы не в состоянии показать вам истинный уровень производительности процессора, находящегося в троттлинге. Сама же Intel отныне размышляет о TSC несколько иначе (Intel(R) Pentium(R) M Processor on 90 nm Process with 2-MB L2 Cache, Specification Update, Document No. 302209-010):

Article V. For Pentium M processors (family [06H], models [09H, 0DH]); for Pentium 4 processors, Intel Xeon processors (family [0FH], models [00H, 01H, or 02H]); and for P6 family processors: the timestamp counter increments with every internal processor clock cycle. The internal processor clock cycle is determined by the current core-clock to bus-clock ratio. Intel(R) SpeedStep(R) technology transitions may also impact the processor clock.

Article VI. For Pentium 4 processors, Intel Xeon processors (family [0FH], models [03H and higher]): the time-stamp counter increments at a constant rate. That rate may be set by the maximum core-clock to bus-clock ratio of the processor or may be set by the frequency at which the processor is booted. The specific processor configuration determines the behavior. Constant TSC behavior ensures that the duration of each clock tick is uniform and supports the use of the TSC as a wall clock timer even if the processor core changes frequency. This is the architectural behavior moving forward.

В переводе на русский и вкратце это значит следующее: в процессорах «раннего поколения», куда относится и Pentium M, TSC реализован так, что он отражает истинную частоту процессора, поэтому его собственная частота может меняться вследствие осуществления переключений между состояниями производительности с помощью технологии EIST. В «новом» же поколении процессоров — Pentium 4 (Prescott и далее), Xeon (Nocona и далее) применен принципиально иной, «продвинутый» подход — отныне частота TSC постоянна, и определяется она частотой FSB, помноженной либо на максимальный, либо на стартовый множитель процессора, что зависит от самого процессора (практика показывает, что в Pentium 4 используется второй вариант). И преимущество здесь заключается якобы в стабильности его показаний даже в случае изменения частоты ядра (это мы и видим на практике). Что ж, Intel решила превратить счетчик тактов процессора в, как они сами пишут, «настенные часы»… Шутки шутками, а недостатки такого подхода, на наш взгляд, очевидны. Это не только явное излишество (ибо в любой системе имеется ACPI-таймер, работающий на частоте примерно 3.57 МГц, и его точность достаточна для большинства точных измерений малых временных интервалов), но и решение, потенциально вводящее в заблуждение неверными результатами измерений. Ибо измерения сверхмалых временных периодов (к примеру, латентностей доступа в кэш или память), как правило, завязаны на частоту TSC как показатель частоты процессора. А если процессор на самом деле работает медленнее — за счет функционирования одной из технологий, рассматриваемых в данном цикле статей, мы получим результат во столько же раз хуже. И будем долго удивляться, почему это случилось… А дело-то, оказывается, в том, что внутренний счетчик процессора превратился в обычные «настенные часы»…

Приложение 1: Конвертер ASUS CT-479, десктопные платы




Дополнительно

iXBT BRAND 2016

«iXBT Brand 2016» — Выбор читателей в номинации «Процессоры (CPU)»:
Подробнее с условиями участия в розыгрыше можно ознакомиться здесь. Текущие результаты опроса доступны тут.

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.