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