Интернет. Настройки. Тарифы. Телефон. Услуги

Hyper-Threading - что это? Как включить Hyper-Threading? Еще раз о Hyper-Threading.

Компания Intel внедрила в свои процессоры, основанные на микропроцессорной архитектуре Nehalem, много новаторских разработок. Сегодня мы рассмотрим одну из них, а именно Hyper-Threading.

Эта технология не нова, она применялась еще на процессорах Pentium 4. Но в то время на рынке еще не существовали многоядерные процессоры, соответственно программное обеспечение не было оптимизировано под многопоточность и толку от Hyper-Threading было мало. Хотя в определенных программах прирост производительности, достигающий 30 процентов, все же наблюдался.

В современных условиях Hyper-Threading часто положительно сказывается на росте производительности процессора при кодировании видео, архивации и многих других операциях, оптимизированных под многопоточность.

Будет интересно проверить, насколько эффективна эта технология в современных играх на примере процессора Intel Core i7 i920.

На текущий момент большинство покупателей интересует не дорогая старшая линейка процессоров Intel Core i7 LGA 1366, а более доступные Core i5 и i7 в исполнении LGA 1156. Сегодняшнее тестирование покажет, есть ли польза от поддержки технологии Hyper-Threading двух- и четырехъядерными процессорами Intel.

Подробно ознакомиться с технологией Hyper-Threading можно на официальном сайте Intel .

Тестовая конфигурация

Тесты проводились на следующем стенде:

  • Процессор: Intel Core i7 920 (Bloomfield, D0, L3 8 Мб), 1.18 В, Turbo Boost - on, Hyper Threading - off/on - 2660 @ 4000 МГц
  • Материнская плата: GigaByte GA-EX58-UD5, BIOS F5
  • Видеокарта: Zotac GeForce GTX 260 896 Mбайт (576/1242/2000 МГц) - 2 шт
  • Система охлаждения CPU: Cooler Master V8 (~1100 об/мин)
  • Оперативная память: 2 x 2048 Мбайт DDR3 Corsair TR3X6G1600C7 (Spec: 1528 МГц / 8-8-8-20-1t / 1.5 В) , X.M.P. - off
  • Дисковая подсистема: SATA-II 500 Гбайт, WD 5000KS, 7200 об/мин, 16 Мбайт
  • Блок питания: FSP Epsilon 700 Ватт (штатный вентилятор: 120-мм на вдув)
  • Корпус: открытый тестовый стенд
  • Монитор: 24" BenQ V2400W (Wide LCD, 1920x1200 / 60 Гц)

Программное обеспечение:

  • Операционная система: Windows 7 build 7600 RTM x86
  • Драйвер видеокарты: NVIDIA Display Driver 195.62
  • RivaTuner 2.24c
  • MSI AFTERBURNER 1.4.2

Инструментарий и методика тестирования

Сегодня будет проверена работоспособность Hyper-Threading у двух- и четырехъядерных процессоров. Двухъядерный процессор был получен путем отключения двух ядер у CPU i920 через БИОС материнской платы. Таким же путем был съэмулирован трехъядерный процессор, чтобы получить полную картину производительности двух-, трех- и четырехъядерных процессоров с отключенным Hyper-Threading и двух- и четырехъядерных CPU с включенным Hyper-Threading, в разных играх.

Результаты тестирования на диаграммах представлены в следующей последовательности:

  • 2 ядра, технология Hyper-Threading отключена
  • 2 ядра, технология Hyper-Threading включена
  • 3 ядра, технология Hyper-Threading отключена
  • 4 ядра, технология Hyper-Threading отключена
  • 4 ядра, технология Hyper-Threading включена

Во-первых, такая последовательность, предположительно, должна соответствовать теоретическому распределению производительности. По опыту, технология Hyper-Threading обеспечивает прирост производительности в пределах 30%. Этого явно недостаточно для победы двухъядерного процессора с включенной технологией Hyper-Threading над "честным" трёхядерным, если только не имеется ошибки в реализации программного обеспечения (например, если ядер меньше четырёх, программа работает только на двух ядрах, при этом третье не используется в принципе - в таком варианте виртуальные четыре ядра могут быть быстрее реальных трёх). Мы, однако, не будем полагаться на небрежность и возможные ошибки программистов.

Во-вторых, при таком размещении можно более удобно сравнивать строки, отвечающие на актуальный вопрос: а нужно ли владельцу "игровой" машины активировать технологию Hyper-Threading в своём процессоре? Даёт ли эта технология преимущества именно в играх?

Что касается гипотетического трёхъядерника, то он здесь присутствует скорее ради научного интереса, так как подобного процессора в природе не существует и не ожидается. Однако благодаря наличию этой строки в диаграмме можно судить о том, есть ли смысл в выпуске подобного процессора компанией Intel так же, как это ранее сделала AMD.

Тестирование игровых приложений проводилось в разрешениях 1280х1024, в котором видеокарты выдают максимальный результат, за счет чего легче отследить разницу в производительности процессора, с активированными двумя, тремя, четырьмя ядрами и включенном/выключенным Hyper-Threading (далее кратко - НТ).

В следующих играх использовались средства измерения быстродействия (бенчмарк):

  • Batman: Arkham Asylum
  • Colin McRae: DIRT 2
  • Crysis Warhead (ambush)
  • Far Cry 2 (ranch small)
  • Lost Planet: Colonies (area1)
  • Resident Evil 5 (scene 1)
  • Tom Clancy"s H.A.W.X.
  • S.T.A.L.K.E.R.: Call of Pripyat (SunShafts)
  • Street Fighter 4
  • World in Conflict: Soviet Assault

Игра, в которой производительность замерялась путем загрузки демо сцен:

  • Left 4 Dead 2

В данных играх производительность измерялась с помощью утилиты FRAPS v3.0.3 build 10809:

  • Anno 1404
  • Bionic Commando
  • Borderlands
  • Call of Duty 4: Modern Warfare 2
  • Dragon Age: Origin
  • Fallout 3: Broken Steel
  • Gears of War
  • Grand Theft Auto 4
  • Mass Effect
  • Mirrors Edge
  • Need for Speed: SHIFT
  • Operation Flashpoint: Dragon Rising
  • Overlord 2
  • Prototype
  • Race Driver: GRID
  • Red Faction: Guerrilla
  • Risen
  • Sacred 2: Fallen Angel

Во всех играх замерялись минимальные и средние значения FPS.

В тестах, в которых отсутствовала возможность замера min fps , это значение измерялось утилитой FRAPS.

VSync при проведении тестов был отключен.

Чтобы избежать ошибок и минимизировать погрешности измерений, все тесты производились по три раза. При вычислении avg fps за итоговый результат бралось среднеарифметическое значение результатов всех прогонов. В качестве min fps выбиралось минимальное значение показателя по результатам трех прогонов.

Перейдем непосредственно к тестам.

Было время, когда понадобилось оценить производительность памяти в контексте технологии Hyper-threading . Мы пришли к выводу, что ее влияние не всегда позитивно. Когда появился квант свободного времени, возникло желание продолжить исследования и рассмотреть происходящие процессы с точностью до машинных тактов и битов, используя программное обеспечение собственной разработки.

Исследуемая платформа

Объект экспериментов – ноутбук ASUS N750JK c процессором Intel Core i7-4700HQ. Тактовая частота 2.4GHz, повышаемая в режиме Intel Turbo Boost до 3.4GHz. Установлено 16 гигабайт оперативной памяти DDR3-1600 (PC3-12800), работающей в двухканальном режиме. Операционная система – Microsoft Windows 8.1 64 бита.

Рис.1 Конфигурация исследуемой платформы.

Процессор исследуемой платформы содержит 4 ядра, что при включении технологии Hyper-Threading обеспечивает аппаратную поддержку 8 потоков или логических процессоров. Эту информацию Firmware платформы передает операционной системе посредством ACPI-таблицы MADT (Multiple APIC Description Table). Поскольку платформа содержит только один контроллер оперативной памяти, таблица SRAT (System Resource Affinity Table), декларирующая приближенность процессорных ядер к контроллерам памяти, отсутствует. Очевидно, исследуемый ноутбук не является NUMA-платформой , но операционная система, в целях унификации, рассматривает его как NUMA-систему с одним доменом, о чем говорит строка NUMA Nodes = 1. Факт, принципиальный для наших экспериментов – кэш память данных первого уровня имеет размер 32 килобайта на каждое из четырех ядер. Два логических процессора, разделяющие одно ядро, используют кэш-память первого и второго уровней совместно.

Исследуемая операция

Исследовать будем зависимость скорости чтения блока данных от его размера. Для этого выберем наиболее производительный метод, а именно чтение 256-битных операндов посредством AVX-инструкции VMOVAPD. На графиках по оси X отложен размер блока, по оси Y – скорость чтения. В окрестности точки X, соответствующей размеру кэш-памяти первого уровня, ожидаем увидеть точку перегиба, поскольку производительность должна упасть после того, как обрабатываемый блок выйдет за пределы кэш-памяти. В нашем тесте, в случае многопоточной обработки, каждый из 16 инициируемых потоков, работает с отдельным диапазоном адресов. Для управления технологией Hyper-Threading в рамках приложения, в каждом из потоков используется API-функция SetThreadAffinityMask, задающая маску, в которой каждому логическому процессору соответствует один бит. Единичное значение бита разрешает использовать заданный процессор заданным потоком, нулевое значение – запрещает. Для 8 логических процессоров исследуемой платформы, маска 11111111b разрешает использовать все процессоры (Hyper-Threading включен), маска 01010101b разрешает использовать по одному логическому процессору в каждом ядре (Hyper-Threading выключен).

На графиках используются следующие сокращения:

MBPS (Megabytes per Second) скорость чтения блока в мегабайтах в секунду ;

CPI (Clocks per Instruction) количество тактов на инструкцию ;

TSC (Time Stamp Counter) счетчик процессорных тактов .

Примечание.Тактовая частота регистра TSC может не соответствовать тактовой частоте процессора при работе в режиме Turbo Boost. Это необходимо учитывать при интерпретации результатов.

В правой части графиков визуализируется шестнадцатеричный дамп инструкций, составляющих тело цикла целевой операции, выполняемой в каждом из программных потоков, или первые 128 байт этого кода.

Опыт №1. Один поток



Рис.2 Чтение одним потоком

Максимальная скорость 213563 мегабайт в секунду. Точка перегиба имеет место при размере блока около 32 килобайт.

Опыт №2. 16 потоков на 4 процессора, Hyper-Threading выключен



Рис.3 Чтение шестнадцатью потоками. Количество используемых логических процессоров равно четырем

Hyper-Threading выключен. Максимальная скорость 797598 мегабайт в секунду. Точка перегиба имеет место при размере блока около 32 килобайт. Как и ожидалось, по сравнению с чтением одним потоком, скорость выросла приблизительно в 4 раза, по количеству работающих ядер.

Опыт №3. 16 потоков на 8 процессоров, Hyper-Threading включен



Рис.4 Чтение шестнадцатью потоками. Количество используемых логических процессоров равно восьми

Hyper-Threading включен. Максимальная скорость 800722 мегабайт в секунду, в результате включения Hyper-Threading почти не выросла. Большой минус – точка перегиба имеет место при размере блока около 16 килобайт. Включение Hyper-Threading немного увеличило максимальную скорость, но падение скорости теперь наступает при вдвое меньшем размере блока – около 16 килобайт, поэтому существенно упала средняя скорость. Это не удивительно, каждое ядро имеет собственную кэш-память первого уровня, в то время, как логические процессоры одного ядра, используют ее совместно.

Выводы

Исследованная операция достаточно хорошо масштабируется на многоядерном процессоре. Причины – каждое из ядер содержит собственную кэш-память первого и второго уровней, размер целевого блока сопоставим с размером кэш-памяти, и каждый из потоков работает со своим диапазоном адресов. В академических целях мы создали такие условия в синтетическом тесте, понимая, что реальные приложения обычно далеки от идеальной оптимизации. А вот включение Hyper-Threading, даже в этих условиях дало негативный эффект, при небольшой прибавке пиковой скорости, имеет место существенный проигрыш в скорости обработки блоков, размер которых находится в диапазоне от 16 до 32 килобайт. 20 января 2015 в 19:43

Еще раз о Hyper-Threading

  • Тестирование IT-систем ,
  • Программирование

Было время, когда понадобилось оценить производительность памяти в контексте технологии Hyper-threading . Мы пришли к выводу, что ее влияние не всегда позитивно. Когда появился квант свободного времени, возникло желание продолжить исследования и рассмотреть происходящие процессы с точностью до машинных тактов и битов, используя программное обеспечение собственной разработки.

Исследуемая платформа

Объект экспериментов – ноутбук ASUS N750JK c процессором Intel Core i7-4700HQ. Тактовая частота 2.4GHz, повышаемая в режиме Intel Turbo Boost до 3.4GHz. Установлено 16 гигабайт оперативной памяти DDR3-1600 (PC3-12800), работающей в двухканальном режиме. Операционная система – Microsoft Windows 8.1 64 бита.

Рис.1 Конфигурация исследуемой платформы.

Процессор исследуемой платформы содержит 4 ядра, что при включении технологии Hyper-Threading обеспечивает аппаратную поддержку 8 потоков или логических процессоров. Эту информацию Firmware платформы передает операционной системе посредством ACPI-таблицы MADT (Multiple APIC Description Table). Поскольку платформа содержит только один контроллер оперативной памяти, таблица SRAT (System Resource Affinity Table), декларирующая приближенность процессорных ядер к контроллерам памяти, отсутствует. Очевидно, исследуемый ноутбук не является NUMA-платформой , но операционная система, в целях унификации, рассматривает его как NUMA-систему с одним доменом, о чем говорит строка NUMA Nodes = 1. Факт, принципиальный для наших экспериментов – кэш память данных первого уровня имеет размер 32 килобайта на каждое из четырех ядер. Два логических процессора, разделяющие одно ядро, используют кэш-память первого и второго уровней совместно.

Исследуемая операция

Исследовать будем зависимость скорости чтения блока данных от его размера. Для этого выберем наиболее производительный метод, а именно чтение 256-битных операндов посредством AVX-инструкции VMOVAPD. На графиках по оси X отложен размер блока, по оси Y – скорость чтения. В окрестности точки X, соответствующей размеру кэш-памяти первого уровня, ожидаем увидеть точку перегиба, поскольку производительность должна упасть после того, как обрабатываемый блок выйдет за пределы кэш-памяти. В нашем тесте, в случае многопоточной обработки, каждый из 16 инициируемых потоков, работает с отдельным диапазоном адресов. Для управления технологией Hyper-Threading в рамках приложения, в каждом из потоков используется API-функция SetThreadAffinityMask, задающая маску, в которой каждому логическому процессору соответствует один бит. Единичное значение бита разрешает использовать заданный процессор заданным потоком, нулевое значение – запрещает. Для 8 логических процессоров исследуемой платформы, маска 11111111b разрешает использовать все процессоры (Hyper-Threading включен), маска 01010101b разрешает использовать по одному логическому процессору в каждом ядре (Hyper-Threading выключен).

На графиках используются следующие сокращения:

MBPS (Megabytes per Second) скорость чтения блока в мегабайтах в секунду ;

CPI (Clocks per Instruction) количество тактов на инструкцию ;

TSC (Time Stamp Counter) счетчик процессорных тактов .

Примечание.Тактовая частота регистра TSC может не соответствовать тактовой частоте процессора при работе в режиме Turbo Boost. Это необходимо учитывать при интерпретации результатов.

В правой части графиков визуализируется шестнадцатеричный дамп инструкций, составляющих тело цикла целевой операции, выполняемой в каждом из программных потоков, или первые 128 байт этого кода.

Опыт №1. Один поток



Рис.2 Чтение одним потоком

Максимальная скорость 213563 мегабайт в секунду. Точка перегиба имеет место при размере блока около 32 килобайт.

Опыт №2. 16 потоков на 4 процессора, Hyper-Threading выключен



Рис.3 Чтение шестнадцатью потоками. Количество используемых логических процессоров равно четырем

Hyper-Threading выключен. Максимальная скорость 797598 мегабайт в секунду. Точка перегиба имеет место при размере блока около 32 килобайт. Как и ожидалось, по сравнению с чтением одним потоком, скорость выросла приблизительно в 4 раза, по количеству работающих ядер.

Опыт №3. 16 потоков на 8 процессоров, Hyper-Threading включен



Рис.4 Чтение шестнадцатью потоками. Количество используемых логических процессоров равно восьми

Hyper-Threading включен. Максимальная скорость 800722 мегабайт в секунду, в результате включения Hyper-Threading почти не выросла. Большой минус – точка перегиба имеет место при размере блока около 16 килобайт. Включение Hyper-Threading немного увеличило максимальную скорость, но падение скорости теперь наступает при вдвое меньшем размере блока – около 16 килобайт, поэтому существенно упала средняя скорость. Это не удивительно, каждое ядро имеет собственную кэш-память первого уровня, в то время, как логические процессоры одного ядра, используют ее совместно.

Выводы

Исследованная операция достаточно хорошо масштабируется на многоядерном процессоре. Причины – каждое из ядер содержит собственную кэш-память первого и второго уровней, размер целевого блока сопоставим с размером кэш-памяти, и каждый из потоков работает со своим диапазоном адресов. В академических целях мы создали такие условия в синтетическом тесте, понимая, что реальные приложения обычно далеки от идеальной оптимизации. А вот включение Hyper-Threading, даже в этих условиях дало негативный эффект, при небольшой прибавке пиковой скорости, имеет место существенный проигрыш в скорости обработки блоков, размер которых находится в диапазоне от 16 до 32 килобайт.

Если вы внимательно просматривали содержимое BIOS Setup, то вы вполне могли заметить там опцию CPU Hyper Threading Technology. И возможно, задавались вопросом, что же такое Hyper Threading(Сверехпоточность или гиперпоточность, официальное название - Hyper Threading Technology, HTT), и для чего нужна данная опция.

Hyper Threading – это сравнительно новая технология, разработанная компанией Intel для процессоров архитектуры Pentium. Как показала практика, использование технологии Hyper Threading позволило во многих случаях увеличить производительность CPU приблизительно на 20-30%.

Тут нужно вспомнить, как же вообще работает центральный процессор компьютера. Стоит вам включить компьютер и запустить на нем какую-либо программу, как CPU начинает читать содержащиеся в ней инструкции, записанные в так называемом машинном коде. Он поочередно читает каждую инструкцию и выполняет их одну за другой.

Однако многие программы имеют сразу несколько одновременно выполняющихся программных процессов. Кроме того, современные операционные системы позволяют пользователю иметь сразу несколько запущенных программ. И не просто позволяют – на самом деле, ситуация, когда в операционной системе выполняется один-единственный процесс, на сегодняшний день совершенно немыслима. Поэтому процессоры, разработанные по старым технологиям, имели низкую производительность в тех случаях, когда требовалось обрабатывать сразу несколько одновременных процессов.

Разумеется, для того чтобы решить эту проблему, можно включить в состав системы сразу несколько процессоров или процессоров, использующих несколько физических вычислительных ядер. Но такое усовершенствование получается дорогим, технически сложным и не всегда эффективным с практической точки зрения.

История разработки

Поэтому было принято решение создать такую технологию, которая позволяла бы обрабатывать несколько процессов на одном физическом ядре. При этом для программ дело будет внешне выглядеть так, как будто в системе существует сразу несколько процессорных ядер.

Поддержка технологии Hyper Threading впервые появилась в процессорах в 2002 году. Это были процессоры семейства Pentium 4 и серверные процессоры Xeon с тактовой частотой выше 2 ГГц. Первоначально технология носила кодовое название Jackson, но потом ее название сменилось на более понятное для широкой публики Hyper Threading – что можно перевести примерно как «сверхпоточность».

При этом, по утверждению Intel, поверхность кристалла процессора, поддерживающего Hyper Threading, увеличилась по сравнению с предшествующей моделью, ее не поддерживающей, всего на 5% при увеличении производительности в среднем на 20%.

Несмотря на то, что технология в целом хорошо себя зарекомендовала, тем не менее, по ряду причин корпорация Intel решила отключить технологию Hyper Threading в сменивших Pentium 4 процессорах семейства Core 2. Hyper Threading, однако, позже снова появилась в процессорах архитектур Sandy Bridge, Ivy Bridge и Haswell, будучи в них существенно переработанной.

Суть технологии

Понимание технологии Hyper Threading важно, поскольку она является одной из ключевых функций в процессорах Intel.

Несмотря на все успехи, которые были достигнуты процессорами, у них есть один существенный недостаток – они могут исполнять лишь одну инструкцию одновременно. Допустим, что вы запустили одновременно такие приложения, как текстовый редактор, браузер и Skype. С точки зрения пользователя, это программное окружение можно назвать многозадачным, однако, с точки зрения процессора это далеко не так. Ядро процессора будет выполнять по-прежнему одну инструкцию за определенный промежуток времени. При этом в задачу процессора входит распределение ресурсов процессорного времени между отдельными приложениями. Поскольку это последовательное выполнение инструкций происходит чрезвычайно быстро, вы этого не замечаете. И вам кажется, что никакой задержки не существует.

Но задержка все-таки есть. Задержка появляется из-за способа снабжения процессора данными каждой из программ. Каждый поток данных должен поступать в определенное время и обрабатываться процессором индивидуально. Технология Hyper Threading делает возможным каждому ядру процессора планировать обработку данных и распределять ресурсы одновременно для двух потоков.

Следует отметить, что в ядре современных процессоров существует сразу несколько так называемых исполнительных устройств, каждое из которых предназначено для выполнения определенной операции над данными. При этом некоторая часть этих исполнительных устройств во время обработки данных одного потока может простаивать.

Чтобы понять эту ситуацию, можно привести аналогию с рабочими, работающими в сборочном цехе на конвейере и обрабатывающими разнотипные детали. Каждый рабочий снабжен определенным инструментом, предназначенным для выполнения какой-либо задачи. Однако если детали поступают в неправильной последовательности, то случаются задержки – потому, что часть рабочих ждет своей очереди, чтобы начать работу. Hyper Threading можно сравнить с дополнительной лентой конвейера, которую проложили в цехе для того, чтобы простаивающие раньше рабочие выполняли бы свои операции независимо от других. Цех по-прежнему остался один, но детали обрабатываются более быстро и эффективно, поэтому сокращается время простоя. Таким образом, Hyper Threading позволила включить в работу те исполнительные устройства процессора, которые простаивали во время выполнения инструкций из одного потока.

Стоит вам включить компьютер с двуядерным процессором, поддерживающим Hyper Threading и открыть Windows Task Manager (Диспетчер задач) на вкладке Performance (Быстродействие), как вы обнаружите в нем четыре графика. Но это отнюдь не означает, что на самом деле у вас 4 ядра процессора.

Это происходит потому, что Windows считает, что у каждого ядра есть по два логических процессора. Термин «логический процессор» звучит забавно, но он означает процессор, которого физически не существует. Windows может посылать потоки данных к каждому логическому процессору, но на самом деле выполняет работу только одно ядро. Поэтому одно ядро с технологией Hyper Threading существенно отличается от раздельных физических ядер.

Для работы технологии Hyper Threading требуется ее поддержка со стороны следующих аппаратных и программных средств:

  • Процессор
  • Чипсет материнской платы
  • Операционная система

Преимущества технологии

Теперь рассмотрим следующий вопрос – насколько все же технология Hyper Threading увеличивает производительность компьютера? В повседневных задачах, таких, как Интернет-серфинг и набор текстов, преимущества технологии не столь очевидны. Однако следует иметь в виду, что сегодняшние процессоры настолько мощны, что повседневные задачи редко загружают процессор полностью. Кроме того, многое зависит еще и от того, как написано программное обеспечение. У вас может быть запущено сразу несколько программ, однако, посмотрев на график загрузки, вы увидите, что используется только один логический процессор на ядро. Это происходит потому, что программное обеспечение не поддерживает распределение процессов между ядрами.

Однако в более сложных задачах Hyper Threading может быть более полезной. Такие приложения, как программы для трехмерного моделирования, трехмерные игры, программы кодирования/декодирования музыки или видео и многие научные приложения написаны таким образом, чтобы максимально использовать многопоточность. Поэтому вы можете ощутить преимущества быстродействия компьютера с функцией Hyper Threading, играя в сложные игры, слушая музыку или просматривая фильмы. Повышение производительности может при этом достигать 30%, хотя могут случаться и такие ситуации, когда Hyper Threading не дает преимущества вовсе. Иногда, в том случае, если оба потока загружают все исполнительные устройства процессора одинаковыми заданиями, может даже наблюдаться и некоторое снижение производительности.

Возвращаясь к наличию в BIOS Setup соответствующей опции, позволяющей установить параметры Hyper Threading, то в большинстве случаев рекомендуется включить данную функцию. Впрочем, вы всегда сможете ее отключить, если окажется, что компьютер работает с ошибками или даже имеет меньшую производительность, чем вы ожидали.

Заключение

Поскольку максимальное повышение производительности при использовании Hyper Threading составляет 30%, то нельзя сказать, что технология эквивалентна удвоению количества ядер процессора. Тем не менее, Hyper Threading – это полезная опция, и вам, как владельцу компьютера, она не помешает. Ее преимущество особо заметно, например, в таких случаях, когда вы редактируете мультимедиа-файлы или используете компьютер в качестве рабочей станции для таких профессиональных программ, как Photoshop или Maya.

Еще в далеком феврале 2002 года дебютировала фирменная технология от компании «Интел» - Hyper-Threading. Что этотакое и почему она получила на сегодняшний день практически повсеместное распространение? Ответ на этот вопрос и не только будет рассмотрен в данном материале.

История появления технологии HT

Первым настольным процессором с поддержкой логической многопоточности стал четвертого поколения Pentium. Hyper-Threading - технология, котораяв этом случае позволяла на одном физическом ядре обрабатывать сразу два потока данных. Причем чип этот устанавливался в процессорный разъем PGA478, функционировал он в режиме 32-битных вычислений, а его тактовая частота была равна 3,06 ГГц. До этого ее можно было встретить лишь в серверных процессорных устройствах серии XEON.

После получения успешных результатов в этой нише компания «Интел» решила распространить HT и в настольный сегмент. В дальнейшем в рамках PGA478 было выпущено целое семейство таких процессоров. После того как дебютировал сокет LGA775, НТ была временно призабыта. Но с началом продаж LGA1156 она получила второе дыхание в 2009 году. С тех пор она стала обязательным атрибутом процессорных решений от «Интел», причем как в ультрапроизводительном сегменте, так в бюджетных компьютерных системах.

Концепция данной технологии

Суть технологии Intel Hyper-Threadingсводится к тому, что путем минимальных изменений в компоновке микропроцессорного устройства разработчики добиваются того, что на уровне системного и программного обеспечения код обрабатывается в два потока на одном физическом ядре. Все элементы вычислительного модуля при этом остаются без изменений, добавляются лишь специальные регистры и переработанный контроллер прерываний.

Если по каким-либо причинам физический модуль вычислений начинает простаивать, то на нем запускается второй программный поток, а первый при этом дожидается получения необходимых данных или информации. То есть если раньше простои в работе вычислительной части чипов были достаточно частыми, то практически полностью исключает такую возможность Hyper-Threading. Что это за технология, рассмотрим ниже.

На аппаратном уровне

Повышенные требования выдвигаются к аппаратному обеспечению в случае использования Hyper-Threading. Материнская плата, BIOS и процессор должны поддерживать ее. По крайней мере, в рамках процессорного разъема PGA478 на подобную совместимость необходимо было обращать повышенное внимание. Не все наборы системной логики в этом случае были ориентированы на использование НТ, как и процессорные устройства. И даже если в номенклатуре системной платы присутствовала столь желанная аббревиатура, то это вовсе не означало, что чипы правильно инициировались по той причине, что необходимо было обновить BIOS.

Кардинально изменилась ситуация в этом случае начиная с LGA1156. Данная вычислительная платформа была изначально заточена под применение Hyper-Threading. Поэтому каких-либо существенных проблем с применением последней в данном случае у пользователей не возникало. Это же самое справедливо и для последующих процессорных разъемов, таких как LGA1155, LGA1151 и LGA1150.

Аналогичным отсутствием проблем с применением НТ могли похвастаться и высокопроизводительные сокеты LGA1366, LGA2011 и LGA2011-v3. В довершение к этому прямой конкурент «Интел» - компания AMD - в последнем поколении своих процессоров для АМ4 реализовала весьма схожую технологию логической многозадачности - SMT. Она использует практически идентичную концепцию. Отличие заключается лишь в названии.

Основные компоненты со стороны программного обеспечения

Нужно отметить, что даже в случае полноценной поддержки НТ со стороны аппаратных ресурсов не всегда она будет успешно работать на уровне программного обеспечения. Для начала операционная система должна уметь работать одновременно с несколькими вычислительными ядрами. В устаревших на сегодняшний день версиях системного софта MS-DOS или Windows 98 такой возможности нет. А вот в случае Windows 10 каких-либо проблем не возникает, и эта операционная система уже изначально заточена под такие аппаратные ресурсы персонального компьютера.

Теперь разберемся с тем, как включить Hyper-Threading в Windows.Для этого на компьютере должно быть установлено все необходимое управляющее прикладное программное обеспечение. Как правило, это специальная утилита с компакт-диска системной платы. В ней есть специальная вкладка, на которой можно в режиме реального времени изменить значения в БИОСе. Это, в свою очередь, приводит к тому, что уже в нем опция Hyper-Threading переходит в положение Enabled, а также активируются дополнительные логические потоки, причем даже без перезагрузки операционной системы.

Включение технологии

Многие начинающие пользователи достаточно часто на первоначальном этапе использования нового компьютера задаются одним важным вопросом относительно Hyper-Threading: как включитьее? Существует два возможных способа решения этой задачи. Один из них - это использование БИОСа. В этом случае необходимо выполнить такие действия:

  • При включении ПК инициализируем процедуру входа в БИОС. Для этого достаточно при появлении тестового экрана зажать кнопку DEL (в некоторых случаях необходимо зажимать F2).
  • После появления синего экрана переходим с применением навигационных клавиш на вкладку ADVANCED.
  • Затем на ней находим пункт Hyper-Threading.
  • Напротив него необходимо установить значение Enabled.

Ключевой недостаток данного способа - это необходимость перезагрузки персонального компьютера для выполнения данной операции. Реальной альтернативой ей является использование конфигурационной утилиты системной платы. Этот метод был детально описан в предыдущем разделе. И в этом случае заходить в БИОС совсем не обязательно.

Отключение НТ

По аналогии со способами включения НТ существует два способа дезактивации данной функции. Один из них можно выполнить лишь только в процессе инициализации компьютерной системы. Это, в свою очередь, не совсем удобно на практике. Поэтому специалисты останавливают свой выбор на втором методе, который основывается на использовании компьютерной утилиты материнской платы. В первом случае выполняются такие манипуляции:

  1. При загрузке электронно-вычислительной машины заходим в базовую систему ввода — вывода (второе ее название BIOS) по ранее изложенной методике.
  2. Перемещаемся с применением клавиш управления курсором в пункт меню Advanced.
  3. Далее необходимо найти пункт меню Hyper-Threading (в некоторых моделях системных плат он может обозначаться как НТ). Напротив него с помощью кнопок PG DN и PG UP устанавливаем значение Disabled.
  4. Сохраняем снесенные изменения с помощью F10.
  5. Выходим из БИОСа и перезагружаем персональный компьютер.

Во втором случае при использовании диагностической утилиты системной платы нет необходимости перезагружать ПК. Это ключевое его преимущество. Алгоритм в этом случае идентичный. Разница состоит в том, что здесь используется предустановленная специальная утилита от производителя системной платы.

Ранее были описаны два основные способа того, как отключить Hyper-Threading. Хоть и более сложным номинально считается второй из них, но он более практичный по той причине, что не требует перезагрузки компьютера.

Модели процессоров с поддержкой НТ

Изначально, как было уже отмечено ранее, поддержка Hyper-Threading была реализована лишь только в процессорных устройствах серии Pentium 4 и только в исполнении PGA478. А вот уже в рамках LGA1156 и более поздних вычислительных платформ рассматриваемая в рамках данного материала технология использовалась практически во всех возможных моделях чипов. С ее помощью процессоры Celeron превращались из одноядерного в двухпоточное решение. В свою очередь, Penrium и i3 с ее помощью могли уже обрабатывать 4 потока кода. Ну а флагманские решения серии i7 способны одновременно работать с 8 логическими процессорами.

Для наглядности приведем применение НТ в рамках актуальной вычислительной платформы от Intel - LGA1151:

  • ЦПУ серии Celeron не поддерживают эту технологию и имеют всего 2 вычислительных блока.
  • Чипы линейки Pentium оснащены 2 ядрами и четырьмя потоками. Как результат, НТ в этом случае поддерживается в полном объеме.
  • Аналогичную компоновку имеют и более производительные процессорные устройства модельного ряда Core i3: 2 физических модуля могут работать в 4 потока.
  • Как и наиболее бюджетные чипы Celeron, Core i5 не оснащены поддержкой НТ.
  • Флагманские решения i7 тоже поддерживают HT. Только в этом случае вместо 2 реальны ядер есть уже 4 блока обработки кода. Они, в свою очередь, уже могут работать в 8 потоков.

Hyper-Threading - что этоза технология и каково ее основное назначение? Это логическая многозадачность, которая позволяет путем минимальных корректировок аппаратного обеспечения увеличить производительность компьютерной системы в целом.

В каких случаях эту технологию наиболее оптимально использовать?

В некоторых случаях, как было отмечено ранее, НТ увеличивает быстродействие, с которым обрабатывает программный код процессор. Hyper-Threading может эффективно работать только с распаленным софтом. Типичными его примерами являются кодировщики видео и аудиоконтента, профессиональные графические пакеты и архиваторы. Также наличие такой технологии позволяет существенно улучшить быстродействие серверной системы. А вот при однопоточной реализации программного кода нивелируется наличие Hyper-Threading, то есть получается обычный процессор, который решает на одном ядре одну задачу.

Преимущества и недостатки

Есть определенные недостатки у технологии Intel Hyper-Threading. Первый из них - это возросшая стоимость ЦПУ. Но большее быстродействие и улучшенная компоновка кремниевого кристалла в любом случае увеличат цену ЦПУ. Также возросшая площадь полупроводниковой основы процессорного устройства приводит к повышению уровня потребляемой мощности и температуры. Разница в этом случае несущественная, и она не превышает 5 %, но она все-таки есть. Больше каких-либо существенных недостатков в этом случае нет.

Теперь о преимуществах. На быстродействие и производительность фирменная технология НТ от компании «Интел» не оказывает, то есть ниже определенного порога у такого компьютера опуститься не получится. Если же программное обеспечение прекрасно поддерживает распараллеленные вычисления, то будет наблюдаться определённый прирост быстродействия и, конечно же, производительности.

Как показывают тесты, в некоторых случаях прирост может достигать 20 %. Наиболее оптимизированным софтом в этом случае являются различные перекодировщики мультимедийного контента, архиваторы и графические пакеты. А вот с играми все уж не так и хорошо. Они, в свою очередь, способны работать в 4 потока, и, как результат, флагманские чипы не способны в этом случае опередить процессорные решения среднего уровня.

Современная альтернатива от AMD

Технология Hyper-Threadingне единственная в своем роде на сегодняшний день. У нее есть реальная альтернатива. Компания AMD с выпуском платформы АМ4 предложила ей достойного конкурента в лице SMT. На аппаратном уровне это идентичные решения. Только вот флагман от «Интел» может обработать 8 потоков, а ведущий чип AMD - 16. Уже одно это обстоятельство указывает на то, что более перспективным является второе решение.

Поэтому компания «Интел» вынуждена в срочном порядке корректировать свои планы по выпуску продукции и предлагать совершенно новые процессорные решения, которые смогут составить достойную конкуренцию новичкам от AMD. Только вот на сегодняшний день они еще не переставлены. Поэтому если нужна доступная компьютерная платформа, то лучше выбирать LGA1151 от «Интел». Если необходим задел по производительности, то предпочтительней будет уже АМ4 от AMD.