Термическая нестабильность ЦП может возникнуть во внутреннем ядре (которое рассчитано на работу при более высоких температурах, чем, скажем, кэш-память второго уровня) или во внешнем ЦП. Если бы процессор был тепловым сверхпроводником, он был бы все при той же температуре, и это не имело бы значения.
Обычно тепло отводится со всей поверхности, покрытой радиатором, и генерируется в основном в ядре (ах) и, в меньшей степени, во вспомогательном оборудовании, в зависимости от уровня энергопотребления на единицу объема (или поверхности), поскольку архитектура ЦП в основном плоский).
Повышение напряжения и частоты процессора приводит к увеличению тепловыделения в ядре . Если это увеличение, за вычетом удаленного тепла в установившемся режиме, приводит к слишком высокой температуре для ядра, то не имеет значения, сколько ядер вы отключите - все еще включенные будут падать. Или потерпеть неудачу из-за электромиграции через некоторое время.
Однако, если температура является безопасной для сердечника, вы заметите, что температура за пределами сердечника все еще повышается, так как избыточное тепло просачивается от сердечника к краю (красным и желтым на рисунке выше).
Таким образом, может случиться так, что, хотя сердечник находится ниже своей критической температуры, он все же поднимает температуру полосы выше допустимого отклонения температуры полосы. Тогда что-то в краю дает сбой, и процессор в целом становится «нестабильным», даже если сами ядра все еще находятся в безопасной зоне.
Поскольку тепло в полосе поступает (также) от всех сердечников, секций с гиперпоточностью и т. Д., Отключение этих функций уменьшает это тепло и может поддерживать стабильность полосы.
В этом отношении даже тип кода, который выполняется, может влиять на выработку электроэнергии; так что у вас могут быть сбои при запуске одного и того же кода, скомпилированного с или без, например, с поддержкой SSE3. На самом деле, даже выбор последовательности команд может иметь значение, и в этом отношении есть исследования .