Технологии, поддерживаемые процессорами

Опубликовано в Компоненты ПК, Процессоры

Технология Intel Hyper-Threading

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

Технологии, поддерживаемые процессорами

Технологии, поддерживаемые процессорами

В этом случае возможно параллельное выполнение нескольких процессорных инструкций одновременно. Такая многоза­дачность реализована в том или ином виде во всех современных процессорах. Отход от последовательного выполнения команд, использование нескольких ис­полнительных блоков в одном процессоре позволяют одновременно обрабатывать несколько процессорных микрокоманд, то есть организовывать параллелизм на уровне инструкций (Instruction Level Parallelism, ILP), что, естественно, увеличи­вает общую производительность.

Поясним сказанное на примере. Представьте себе гипотетический процессор, в котором имеются четыре исполнительных блока: два для работы с целыми числами (арифметико-логическое устройство, ALU), один для работы с числами

с плавающей точкой (FPU) и один для записи и чтения данных из памяти (Store/Load, S/L). Кроме того, пусть каждая операция осуществляется за один такт процес­сора.

Реализация параллелизма на уровне инструкций

Реализация параллелизма на уровне инструкций

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

В современных приложениях в любой момент времени, как правило, выполняется не одна, а несколько задач или несколько потоков (threads) одной задачи, называемых также нитями. Давайте посмотрим, как будет вести себя наш гипотетический процессор при выполнении двух разных потоков задач.

Выполнение двух потоков на процессоре без реализации и с реализацией технологии Hyper-Threading

Выполнение двух потоков на процессоре без реализации и с реализацией технологии 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# исчезнет, а номинальная час­тота процессора совпадет с эффективной.

Важно отметить, что сигнал 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 °С.