Для чего необходимо выполнять мониторинг температуры, думаю, понятно всем. Система, работающая с перегревом, во-первых, снижает свою производительность за счет троттлинга. Во-вторых, такая система менее стабильна, а на ноутбуках, перегрев процессора может вызвать и перегрев и выход из строя чипа видеокарты, потому что они имеют общую систему охлаждения.
Дело в том, что современные системы мониторинга температуры процессоров выдают большое число показаний. Эта статья о том, как эти данные правильно считать и понять, что же из них показывает «реальную температуру» процессора. В данной статье мы рассмотрим только механизмы термомониторинга процессоров Intel, потому что в AMD они в корне отличаются. Основное отличие — в характере действия защиты от перегрева. Если перегревается процессор AMD, он теряет стабильность работы, тогда как процессор от Intel лишь снизит свою производительность, препятствуя дальнейшему росту температуры кристалла.
Система мониторинга температуры современных процессоров Intel
DTS
Такая система в процессорах Intel называется DTS (Digital Thermal Sensors), что указывает на то, что измерение производится цифровыми методами. Эта система впервые была внедрена в процессорах Intel Pentium M еще в 2004 году, но получила более широкое распространение в настольных процессорах позже. Фактически, во всех процессорах без исключения DTS стала использоваться только с переходом на 45 yv техпроцесс ядра Intel. Ранее использовался менее точный аналоговый метод, когда термодиод, находился под крышкой термораспределителя процессора и сообщал информацию о температуре внежней системе мониторинга, которая находилась в микросхеме мультиконтроллера (она же SIO/MIO).
Цифровые датчики DTS расположены прямо на кристалле недалеко от каждого ядра и представляют собой не абсолютные показания температур, а отрицательное число — дельту между текущей температурой и максимальной температурой срабатывания защитных механизмов терморегулирования TCC (например, троттлинг), обозначаемой Tjmax. Таким образом, зная абсолютную температуру, при которой срабатывает TCC, можно программно определить текущую температуру ядер по значению дельты. Проблема в том, что у разных степпингов процессоров температура срабатывания TCC различается, при этом для большого количества процессоров значения компанией Intel не декларируется (не документированы) для пользователей.
Tjmax, Tcase
Максимальная температура Tjunction (она же Tjmax) — это максимальная температура термопары, при которой процессор может работать без использования внутренних механизмов терморегуляции для снижения мощности и ограничения температуры. Активация системы терморегулирования процессора может привести к снижению производительности, поскольку процессор обычно снижает частоту и мощность, чтобы предотвратить перегрев. Задача поставщика системы или любителя самостоятельной сборки — разработать конфигурацию платформы, которая не достигает порогового значения Tjunction во время тяжелых рабочих нагрузок, чтобы максимизировать производительность системы.
Датчики DTS работают с определённой долей погрешности, правда, чем выше температура датчиков (меньше DTS), тем точнее снимаемые показания. Производитель калибрует датчики DTS вблизи температуры Tjmax.
Считывание данных с датчиков DTS через специальные регистры Model Specific Register (MSR) или через интерфейс Platform Environment Control Interface (PECI). Технология PECI используется для управления скоростью вращения ветилятора в зависимости от нагрева процессора. Управление скоростью вращения вентилятора происходит следующим образом. Если процессор однокристальный (например, Core 2 Duo, Core i7 — там, где все ядра находятся на одном кристалле) — показания со всех датчиков обрабатываются в PECI-домене и значение, снятое с самого горячего ядра (то есть, самое меньшее значение c датчиков DTS), используется для управления скоростью вращения вентилятора (CPU Fan). Если процессор двухкристальный (Core 2 Quad), то PECI-доменов тоже два (на каждый кристалл свой PECI-домен) — и опять, значение с самого горячего PECI-домена (по сути, с самого горячего ядра в процессоре) используется для управления скоростью вращения вентилятора.
Для настольных процессоров 32нм и 45нм семейств Core i3/i5/i7 Intel официально данные о значениях Tjmax не разглашала, но по многочисленным наблюдениям и замерам энтузиастов они примерно равны 100°C (для большинства процессоров). Это упоминается и в Thermal Design Guide от 2013 года. Там указывается (Table 2) значение 100 градусов для 2 и 4 ядерных процессоров всех мощностей (TDP) — 45, 35 и 17 W.
Для настольных процессоров с техпроцессом 22 нм на ядре Ivy Bridge данные о Tjmax были официально раскрыты в документе (стр. 16). Мы видим, что значения колеблются от 91 до 105 градусов.
В технических документациях Intel указывает для каждой модели значение Thermal Specification (посмотреть его для каждой модели также можно здесь). Это значение соответствует максимальной рабочей температуре корпуса процессора (Tcase/Tc), и измеряется оно на стенде, где в геометрическом центре теплораспределительной крышки располагают термопару и смотрят, какое она покажет значение температуры, когда в процессоре генерируется сигнал PROCHOT# (то есть, когда любой из датчиков DTS выдал значение 0, что говорит от достижении Tjmax). Для процессоров семейства Core эта температура примерно равна 71-73 градуса (точнее надо смотреть конкретную модель процессора). Эту температуру (Tcase/Tc) привязывают по эмпирическим формулам к показаниям датчиков DTS (иначе и нельзя, потому что в цельнометаллической крышке нет никаких датчиков). Становится понятно, что температура крышки — это довольно бесполезный показатель, потому что эта температура там, где нет термодатчиков, поэтому на нее можно не ориентироваться.
Максимальная температура Tcase определяет рабочую температуру процессора со встроенным теплоотводом в рамках собранной системы. Эта спецификация предназначена для обеспечения того, чтобы процессор не превышал свою рабочую температуру, пока система способна обеспечить достаточное охлаждение, чтобы поддерживать верхний предел IHS при этой температуре. Это в первую очередь предназначено для производителей систем при оценке полученной конструкции системы.
Механизмы защиты от перегрева
Все современные процессоры Intel поддерживают ряд технологий, отвечающих за защиту процессора от перегрева. Это Thermal Control Circuit (TCC) и THERMTRIP# Signal. Начнем с TCC, элементами которой являются Thermal Monitor (TM1) и Thermal Monitor 2 (TM2).
В общих словах задачу TCC можно охарактеризовать так: принудительное поддержание температуры процессора в безопасных пределах. По достижении температуры Tjmax, выдается сигнал PROCHOT#. Если технологии Thermal Monitor включены (по умолчанию они включены) срабатывает сначала TM2, которая также впервые была представлена в процессорах Pentium M. TM2 понижает множитель и напряжение питания процессора. Это приводит к значительной потере производительности процессора, но и к снижению нагрева. Как только нормальный температурный режим восстанавливается, восстанавливаются и значения множителя и напряжения. Если данной меры оказывается недостаточно, то тогда срабатывает и TM1. TM1 — более старая технология по сравнению с TM2, внедренная еще в процессорах Pentium 4. Её активация заставляет процессор пропускать такты, что также называется троттлингом. Такты ядра — это промежуток между двумя импульсами тактового генератора, который синхронизирует выполнение всех операций процессора. Выполнение различных элементарных операций может занимать от долей такта до нескольких тактов в зависимости от команды и процессора. Троттлинг еще больше снижает производительность, потому что вводится задержка в исполнение даже простейших команд.
TM1 включается установкой бита IA32_MISC_ENABLE = 3 в BIOS. Программное обеспечение не имеет доступа к этому биту и не может изменять условия, влияющие на срабатывание TM1. Эти условия откалиброваны на заводе и зашиты в ядро. TM2 включается установкой бита IA32_MISC_ENABLE в значение 13. По умолчанию обе технологии включены и не рекомендуется их отключать.
С технической точки зрения, достижение пороговой температуры записывается как флаг в регистр MSR под названием IA32_THERM_INTERRUPT, что вызывает программное прерывание процессора. Эти прерывания и считывает BIOS.
Термозащиты TCC бывает достаточно практически всегда, чтобы восстановить нормальный температурный режим процессора. В том же случае, когда этих мер оказывается недостаточно, и температура кристалла превышает температуру активации TCC приблизительно на 20-25 °C, процессор выключается полностью (THERMTRIP# Signal — снимается напряжение питания Vcc). То есть можно сказать, что питание системы отключится примерно при 120 градусах.
Фиксировать срабатывание троттлинга можно при помощи стороннего ПО. Вот несколько вариантов: TMonitor, RMClock. Также его визуально можно увидеть, отслеживая текущий множитель и частоту ядер в программах типа HWiNFO, CPU-Z,HWMonitor и AIDA64.
ПО для мониторинга температуры
Как уже было сказано, для считывания «правильной» температуры, необходимо читать информацию из DTS. Увы, популярные программы Everest/AIDA64 не умеют этого делать. Датчик ЦП/CPU в этих программах — околосокетный датчик, для процессоров Intel Core (2, i7) в качестве индикатора температуры не рассматривается, т.к. безбожно врет. Так же следует понимать, что ни одна программа мониторинга не способна показать Tcase потому что в крышке процессора датчиков нет.
Для определения максимальной температуры процессора главное — совместить по времени нагрузку процессора и мониторинг температуры. Держите одновременно открытыми окна процессорного теста, программы-монитора и детектор термозащиты (RMClock для TM1, TAT для TM2. Срабатывание TM2 будет видно и в CPU-Z как падение множителя процессора).
Вот программы, которые умеют работать с DTS:
- HWiNFO (наиболее актуальная на данный момент)
- HWMonitor (к сожалению, обновляется недостаточно часто)
- Core Temp (не обновляется с середины 2019 г.)
- SpeedFan (не обновлялась с 2016 г.)
- Intel Thermal Analysis Tool (TAT)
- RMClock (не обновлялась с 2008 г.)
- MobileMeter (для мобильных платформ)
TM2 допускает программную настройку (с помощью RMClock, например) своих параметров. Также термозащиту можно принудительно включить или запретить ее автоматическое включение программным путем в BIOS платы или программе RMClock (и то, и другое возможно не всегда).
В конце для справки приведу документацию Intel: