Технологии, поддерживаемые процессорами
Технология Intel Hyper-Threading
Как говорилось ранее, кроме увеличения тактовой частоты, существуют и другие способы увеличения производительности процессора, связанные с изменением его архитектуры. К примеру, можно увеличить количество исполнительных блоков (Execution Units) внутри самого процессора.

Технологии, поддерживаемые процессорами
В этом случае возможно параллельное выполнение нескольких процессорных инструкций одновременно. Такая многозадачность реализована в том или ином виде во всех современных процессорах. Отход от последовательного выполнения команд, использование нескольких исполнительных блоков в одном процессоре позволяют одновременно обрабатывать несколько процессорных микрокоманд, то есть организовывать параллелизм на уровне инструкций (Instruction Level Parallelism, ILP), что, естественно, увеличивает общую производительность.
Поясним сказанное на примере. Представьте себе гипотетический процессор, в котором имеются четыре исполнительных блока: два для работы с целыми числами (арифметико-логическое устройство, ALU), один для работы с числами
с плавающей точкой (FPU) и один для записи и чтения данных из памяти (Store/Load, S/L). Кроме того, пусть каждая операция осуществляется за один такт процессора.

Реализация параллелизма на уровне инструкций
Далее предположим, что выполняется программа, состоящая из трех инструкций: первые две — арифметические действия с целыми числами, а последняя — сохранение результата. В этом случае вся программа будет выполнена за два такта процессора: в первом такте задействуются два блока ALU процессора (темный квадрат на рисунке), во втором — блок записи и чтения данных из памяти S/L.
В современных приложениях в любой момент времени, как правило, выполняется не одна, а несколько задач или несколько потоков (threads) одной задачи, называемых также нитями. Давайте посмотрим, как будет вести себя наш гипотетический процессор при выполнении двух разных потоков задач.

Выполнение двух потоков на процессоре без реализации и с реализацией технологии Hyper-Threading
Темные квадраты соответствуют применению исполнительных блоков процессора одного потока, а светлые — другого. Если бы оба потока исполнялись изолированно, то для выполнения первого и второго потоков потребовалось бы по
пять тактов процессора. При одновременном исполнении обоих потоков процессор будет постоянно переключаться между ними, следовательно, за один такт процессора выполняются только инструкции какого-то одного потока. Для исполнения обоих потоков потребуется в общей сложности 10 процессорных тактов.
Однако можно повысить скорость выполнения задачи в рассмотренном примере. Как видно из рис. 1.24, на каждом такте процессора используются далеко не все исполнительные блоки, поэтому имеется возможность частично совместить выполнение инструкций отдельных потоков на каждом такте. В нашем примере выполнение двух арифметических операций с целыми числами первого потока можно совместить с загрузкой данных из памяти второго потока и выполнить все три операции за один такт процессора. Аналогично на втором такте процессора можно совместить операцию сохранения результатов первого потока с двумя операциями второго потока и т. д.
Собственно, в таком параллельном выполнении двух потоков и заключается основная идея технологии Hyper-Threading, которая реализована в современных процессорах Intel. Итак, Hyper-Threading — это реализация одновременной мно- гопоточности (Simultaneous Multi-Threading, SMT). Технология Hyper-Threading является промежуточной между многопоточной обработкой, осуществляемой в мультипроцессорных системах, и параллелизмом на уровне инструкций, реализованном в однопроцессорных системах.
Конечно, ждать двукратного увеличения производительности процессора от использования технологии Hyper-Threading не приходится и на практике выигрыш куда более скромен.
Дело в том, что возможность одновременного выполнения на одном такте процессора инструкций от разных потоков ограничивается тем, что эти инструкции могут задействовать одни и те же исполнительные блоки процессора.
Для реализации технологии Hyper-Threading процессор должен иметь два «входа» для отдельных потоков, как если бы существовало два физических процессора, но при этом всего один конвейер обработки команд, как в реальном физическом процессоре, который использует оба потока. В этом случае один физический процессор представляется операционной системе как два логических.
С конструктивной точки зрения процессор с поддержкой технологии Hyper- Threading состоит из двух логических процессоров, каждый из которых имеет свои регистры и контроллер прерываний (Architectural State, AS), то есть две параллельно исполняемые задачи работают со своими собственными независимыми регистрами и прерываниями, но при этом используют одни и те же ресурсы процессора для выполнения задач. Таким образом, от реальной двухпроцессорной конфигурации технология Hyper-Threading отличается только тем, что оба логических процессора используют одни и те же исполняющие ресурсы, одну и ту же разделяемую между двумя потоками кэш-память и одну системную шину.
Технологии тепловой защиты
Современные процессоры рассеивают такую тепловую мощность, что для ее эффективного отвода требуется использовать очень мощные кулеры. Однако даже такие кулеры не гарантируют, что в периоды стопроцентной загрузки процессора его локальная температура не превысит допустимых значений. Поэтому все современные процессоры (и Intel, и AMD) имеют встроенные средства тепловой защиты. Наиболее сложный механизм, предотвращающий перегрев, используется в процессорах Intel. Именно с рассмотрения этих механизмов мы и начнем.
Технология Thermal Monitor
Технология Thermal Monitor реализована следующим образом: при нагревании процессора до некоторой критической температуры генерируется специальный сигнал, в результате чего активируется режим тепловой защиты процессора, при котором он остывает. При достижении нормальной температуры процессор возвращается к обычному режиму работы. Естественно, что в режиме активации тепловой защиты процессор работает не на полную мощность, то есть его остывание происходит за счет потери производительности.
Рассмотрим данную технологию более подробно. Для контроля температуры во все современные процессоры Intel встроены два термодатчика (термодиода), один из которых сообщает системе аппаратного мониторинга материнской платы температуру ядра процессора, а еще один является частью схемы Thermal Monitor и расположен в самой «горячей» точке ядра процессора — возле блоков ALU.
При достижении некоторого критического значения температуры (по состоянию термодатчика, расположенного возле блоков ALU) генерируется специальный сигнал PROCHOT#, который активирует специальный модуль Thermal Control Unit. Температура, при которой «выставляется» сигнал PROCHOT#, индивидуально калибруется для каждого процессора в процессе производства исходя из величины рассеиваемой им мощности. Однажды заданное значение температуры для сигнала PROCHOT# уже не может быть изменено.
Задача модуля Thermal Control Unit — модулировать номинальную тактовую частоту процессора. Смысл модуляции заключается в том, что в период действия сигнала PROCHOT# на номинальный сигнал тактовой частоты процессора накладывается еще один служебный сигнал, частота которого существенно ниже тактовой частоты процессора. В результате частота, которая подается на вычислительные блоки процессора, является прореженной и можно говорить о том, что ядро процессора работает на пониженной частоте. Важно отметить, что технология Thermal Monitor никак не влияет на частоту тактирования процессора, а лишь модулирует частоту тактирования вычислительных блоков процессора. В результате образования «холостых» тактов процессор будет иметь меньшую производительность и меньшее тепловыделение, а его температура начнет уменьшаться. С понижением температуры ядра количество холостых циклов начнет уменьшаться, и как только температура ядра процессора снизится ниже порогового значения примерно на 1 °С, сигнал PROCHOT# исчезнет, а номинальная частота процессора совпадет с эффективной.

Модуляция частоты в технологии Thermal Monitor
Важно отметить, что сигнал PROCHOT# может быть «выставлен» при достижении критической температуры не только процессором, но и системами тепловой защиты других компонентов, например модуля регулировки напряжения (Voltage Regulation, VR) или модулей памяти.
Технология Thermal Monitor 2
В новых процессорах компании Intel к технологии Thermal Monitor добавился еще один инструмент теплового контроля — технология Thermal Monitor 2, которая позволяет в еще большей степени влиять на энергопотребление процессора при достижении им критической температуры.
При использовании технологии Thermal Monitor 2, когда рабочая температура процессора достигает критического значения, активируется служебный сигнал PROCHOT#, в результате чего происходит снижение тактовой частоты процессора и напряжения питания (VID). Это, в свою очередь, приводит к снижению потребляемой процессором мощности, а следовательно, и к снижению его рабочей температуры. Снижение тактовой частоты процессора происходит за счет уменьшения коэффициента внутреннего умножения до минимального значения. Технология Thermal Monitor 2 во многом напоминает технологию Enhanced Intel SpeedStep, с той лишь разницей, что в Enhanced Intel SpeedStep переход на меньшую тактовую частоту и напряжение питания осуществляется в период слабой активности процессора, а в Thermal Monitor 2 — при достижении критической температуры. Кроме того, если в технологии Enhanced Intel SpeedStep определяется несколько возможных рабочих точек (несколько возможных тактовых частот и напряжений), то в технологии Thermal Monitor 2 определены только две рабочие точки, соответствующие максимальной и минимальной частотам процессора.
В заключение отметим, что технологию Thermal Monitor 2 поддерживают только процессоры с тактовой частотой выше 2,8 ГГц (с коэффициентом умножения более 14), а минимальная частота работы процессора составляет 2,8 ГГц.
Режим аварийного отключения
Чтобы исключить перегрев процессора (например, при выходе из строя кулера), кроме технологий Thermal Monitor и Thermal Monitor 2, в современных процессорах Intel используется также режим аварийного отключения (подобная технология используется и в процессорах AMD). Для этого применяется второй термодатчик, установленный в ядре процессора. При достижении процессором критической температуры происходит подача сигнала THERMTRIP# на аварийное отключение системы. Значение критической температуры немного меньше температуры, при которой в процессоре начинают происходить необратимые изменения. Поэтому даже в случае выхода из строя процессорного кулера процессор не успеет нагреться до критической температуры. Значение температуры, при которой подается сигнал аварийного отключения THERMTRIP#, составляет примерно 135 °С.
