Микроархитектура Sandy Bridge, страница 8

Технология SMT – это, по сути, новое название технологии HT (Hyper-Threading), которая широко использовалась в процессорах Pentium 4 с микроархитектурой NetBurst. По непонятной причине при переходе к микроархитектуре Intel Core, она была сначала упразднена, но снова появилась в мобильных микропроцессорах Intel Atom и затем и в микропроцессорах архитектуры Nehalem,  а теперь и в Sandy Bridge. Эта технология позволяет одному вычислительному ядру параллельно исполнять два потока команд за счет использования тех элементов ядра, которые простаивают при выполнении одного из потоков. При этом некоторые, особенно часто используемые элементы дублируются. Следовательно, с точки зрения операционной системы, четырехъядерный процессор Sandy Bridge, использующий эту технологию, будет рассматриваться как восьмиядерный. Конечно, в общем случае при этом производительность не будет удваиваться, поскольку эти восемь логических процессоров вынуждены делить между собой общий набор исполнительных модулей вычислительного ядра, однако суммарная производительность оказывается выше, по некоторым данным на 20 – 25%.

               Поддержка режима TurboMode.

Сутью режима TurboMode (или TurboBoost) является динамическая подстройка тактовых частот ядер процессора и их напряжения питания, в зависимости от уровня их загрузки и температуры процессора. Реализация этой функции возложена на специальный функциональный блок PCU (PowerControlUnit), который входит в «Systemagent» и отслеживает уровень загрузки ядер процессора, температуру процессора, а также отвечает за энергопитание каждого ядра и регулирование его тактовой частоты. Этот блок PCU состоит из более миллиона транзисторов и имеет даже свой микроконтроллер. Если какие-то ядра процессора оказываются незагруженными, они попросту отключаются от линии питания и их энергопотребление становится равным нулю. При этом, тактовая частота и напряжение питания остальных ядер динамически увеличивается, но таким образом, чтобы общее энергопотребление процессора не превышало его TDP (ThermalDesignerPower) – проектной мощности тепловыделения.

Более того, режим Turbo Mode в процессорах Intel Core i7реализуется и в том случае, когда изначально загружаются все ядра процессора, но при этом его энергопотребление не превышает значения TDP. При этом частота каждого ядра может динамически увеличиваться, но так, чтобы энергопотребление процессора не превышало этого, заданного в BIOS значения.

                Технологии macrofusion и micro-ops fusion

При декодировании инструкций в микроархитектуре Intel Core впервые были использованы технологии macrofusionи micro-opsfusion, которые используются и в микроархитектуре Sandy Bridge, с некоторыми усовершенствованиями.

Технология macrofusion призвана увеличить числа исполняемых за такт команд, и заключается в том, что ряд пар связанных между собой последовательностей Х86 инструкций, таких, например, как инструкция операции сравнения со следующей за ней инструкцией условного перехода, представляются одной микроинструкцией. Такая микроинструкция рассматривается планировщиком (scheduler) и выполняется на исполнительном устройстве как одна команда. Таким путем достигается как увеличение темпа исполнения кода, так и некоторая экономия энергии. Иллюстрация реализации технологии macrofusion на примере слияния инструкции сравнения и, следующей за ней, инструкции условного перехода приведена на рис.X.4. На нём показано, как за один такт декодируются и поступают из очереди команд в блоки декодирования одновременно пять инструкций Х86. В случае возможности слияния двух команд (macrofusion), появляется фактическая возможность параллельной обработки не 4, а 5 инструкций за такт (единовременно может образовываться не более одной макрокоманды, образованной способом слияния).                       

В микроархитектуре Sandy Bridge расширен набор команд, для которых возможно слияние макроопераций. Кроме того, в микроархитектуре Intel Core слияние макроопераций не поддерживалось для 64-битного режима работы процессора, то есть технология macrofusion была реализована только в 32-битном режиме. В процессорах микроархитектур Nehalem и Sandy Bridge это узкое место устранено, и операции слияния работают как в 32-, так и 64-битном режиме работы процессора.

 

Рис. X.4  Иллюстрация реализации технологии macrofusion

Суть технологии micro-opsfusionзаключается в том, что если некоторая команда Х86 распадается на зависимые друг от друга микрокоманды, декодер осуществляет их привязку друг к другу. Такие последовательности микроинструкций, связанные технологией micro-opsfusion (микрослияния) для исполнения процессором в определенном порядке, представляются процессором на всех ступенях конвейера (кроме ступеней непосредственного исполнения) одной микрокомандой. Эта технология напоминает технологию SIMD, но используемую на уровне микрокоманд.

Заметим, кстати, что длина конвейера при микроархитектуре Sandy Bridge, как и при микроархитектуре Nehalem насчитывает 16 ступеней, тогда как длина конвейера при микроархитектуре Intel Core составляет 14 ступеней.

       Технология Intel Advanced Digital Media Boost

(Усовершенствованная обработка мультимедийной информации)

В архитектуре Intel Core подверглись совершенствованию и блоки исполнения SIMD инструкций (SSE, SSE2, SSE3, SSE4, AVX). Эти инструкции широко используются в программном обеспечении при обработке изображений, видео и звука, шифрования, научной и финансовой деятельности. Они позволяют работать с 32, 64, 128 и 256 – битовыми операндами различного назначения (векторами и целочисленными, либо вещественными данными повышенной точности). Таким образом ядро Sandy Bridge способно исполнять за каждый такт 256-битное FP-умножение, 256-битное FP-сложение и 256-битное смещение. Это усовершенствование существенно увеличило быстродействие процессора, особенно в тех приложениях, которые используют SIMD инструкции наиболее активно. Это относится, прежде всего, к различного рода мультимедиа  приложениям.

Иллюстрация реализации выполнения SIMD команд приведена на рис. X.5.

           Рис.X.5  Иллюстрация выполнения SIMD команд за один такт

                                 в процессорах  с архитектурой Sandy Bridge