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

Введение

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

Терминология

Терминология в мире технологий может быть запутанной и легко
забывается, поэтому давайте начнем с разъяснения значения терминов,
которые я буду использовать здесь. Многоядерным процессором называется
процессор, содержащий более одного ядра в одной интегральной схеме.
Многочиповый означает несколько микросхем, объединенных вместе.
Многопроцессорный означает несколько отдельных процессоров, совместно
работающих в одной системе. И конечно, ЦП означает центральный
процессор, имеющий одно или более ядер, каждое из которых имеет
устройство выполнения (с которого и выполняется вся математика).

Hyper-Threading

Так что же такое технология hyper-threading? Термин Hyper-threading
используется компанией Intel для определения их технологии, которая
позволяет операционной системе воспринимать одно ядро ЦП, как два ядра.
Таким образом, операционная система работает с таким ядром так же, как с
любым многоядерным чипом, направляя на него одновременно несколько
процессов. Хотя при помощи этой технологии можно заставить систему
воспринимать одно ядро, как три или более ядер, сложность архитектуры
ограничила компанию Intel до выпуска hyper-threaded ядер, которые могут
восприниматься только как два ядра.

Здесь нет никакого фокуса. Компания Intel разработала архитектуру
чипа для обработки процессов так же, как это делают многоядерные
процессоры. По сути, компания Intel дублировала интенсивно используемые
области ядра ЦП и обеспечила использование этих секций несколькими
процессами одновременно. Поскольку эти области ядра являются раздельными
(они находятся на одном кристалле, но используют различные области
этого кристалла), эти процессы не мешают друг другу. Такие
hyper-threading-совместимые ядра представляют собой не совсем то же
самое, что многоядерные процессоры; не любой процесс может одновременно
выполняться с другим процессом, он должен использовать отдельную часть
ядра для своих операций.

Hyper-threading представляет собой пример одновременной
многопоточности (Simultaneous Multi-Threading – SMT). SMT является одним
из двух типов многопоточности. Другой тип называется временной
многопоточностью (Temporal Multi-Threading - TMT). При TMT ядро
процессора выполняет инструкции сначала от одного потока, затем от
другого, и затем снова от первого, и поэтому пользователю кажется, что
выполняется сразу два потока, когда на самом деле потоки просто делят
время ЦП между собой. При SMT инструкции от каждого потока могут
выполняться одновременно. Эти технологии могут использоваться для
повышения производительности.

Пользователям также следует знать, что не все ОС поддерживают
технологию hyper-threading. По заявлению компании Intel следующие ОС от
Microsoft полностью оптимизированы под поддержку технологии
hyper-threading:

  • Microsoft Windows XP Professional Edition
  • Microsoft Windows XP Home Edition
  • Microsoft Windows Vista Home Basic
  • Microsoft Windows Vista Home Premium
  • Microsoft Windows Vista Home Ultimate
  • Microsoft Windows Vista Home Business

И как говорят в компании Intel, следующие ОС не полностью
оптимизированы под технологию hyper-threading, и поэтому данная
технология должна быть отключена в настройках BIOS:

  • Microsoft Windows 2000 (все версии)
  • Microsoft Windows NT 4.0
  • Microsoft Windows ME
  • Microsoft Windows 98
  • Microsoft Windows 98 SE

Иногда у таких приложений, как FireFox,
возникают проблемы с hyper-threading. Лучшим способом решения этой
проблемы является запуск приложения в режиме совместимости с Windows 98.
Для этого нужно нажать правой клавишей мыши на значке приложения,
перейти в свойства, выбрать совместимость и отметить флажком опцию
"Запустить приложение в режиме совместимости (Run this program in
compatibility mode)", выбрав Windows 98. Это отключит технологию
hyper-threading для данного приложения, поскольку Windows 98 не
поддерживает hyper-threading.

Преимущества Hyper-Threading

Есть множество преимуществ hyper-threading. Компания Intel
утверждает, что дублирование определенных областей ядра ЦП увеличивает
размер ядра примерно на 5 процентов, но при этом обеспечивает прирост
производительности на 30 процентов по сравнению с другими идентичными
ядрами процессоров без hyper-threading.

Недостатки Hyper-Threading

//
//]]-->

<a href="https://banman.isoftmarketing.com/a.aspx?ZoneID=77&Task=Click&Mode=HTML&SiteID=7&PageID=21367"><div class='img'>
<img src="https://www.redline-software.com/upload/articles/net/intels-hyper-threading-technology/0.aspx" alt="" />
</div></a>

Хотя hyper-threaded ядра ЦП не обеспечивают полного объема
преимуществ многоядерных процессоров, они все же имеют значительные
преимущества по сравнению с обычными одноядерными процессорами. Конечно,
всегда полезно знать о том, какие недостатки имеются у технологии,
прежде чем ее использовать. Одним недостатком многих применений является
высокий уровень энергопотребления. Поскольку все области ядра нуждаются
в питании (даже в режиме ожидания), общий уровень энергопотребления
hyper-threading ядер, а также всех ядер с поддержкой SMT, выше. Без
максимального использования улучшений скорости, предлагаемых
hyper-threaded ядром, оно просто будет ядром, потребляющим больше
электроэнергии. Для многих ситуаций, включая фермы серверов, и мобильные
компьютеры, такое повышенное энергопотребление нежелательно.

Более того, если сравнить hyper-threaded ядро ЦП с non-hyper-threaded
ядром, вы заметите значительное повышение переполнения кэша. ARM
утверждает, что это повышение может составлять до 42%. Сравните это
значение с многоядерными процессорами, где переполнение кэша снижено на
37%, и это действительно станет важным.

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

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

Автор: Рассел Хичкок (Russel Hitchcock)

Рассел Хичкок (Russel Hitchcock)Рассел
Хичкок (Russell Hitchcock) работает консультантом, в его обязанности
входит сетевое аппаратное обеспечение (networked hardware), контрольные
системы и антенны. Рассел также пишет технические статьи на различные
темы.

 

Источник: https://www.Redline-Software.com

Возникли вопросы?

Обращайтесь на форум!