Что такое hyper threading в процессорах intel

Что такое hyper threading в процессорах intel

Wikimedia Foundation . 2010 .

Смотреть что такое "Hyper-threading" в других словарях:

Hyper-Threading — Technology (kurz: HTT, üblicherweise nur Hyper Threading genannt) ist die Implementierung von hardwareseitigem Multithreading in Intel Prozessoren. Durch mehrere vollständige Registersätze und ein komplexes Steuerwerk werden intern parallel… … Deutsch Wikipedia

Hyper-threading — (officially termed Hyper Threading Technology or HTT) is an Intel proprietary technology used to improve parallelization of computations performed on PC microprocessors via simultaneous multithreading. It is an improvement on super threading. It… … Wikipedia

Hyper-threading — (HT, en français « Hyper Flots » ou « Hyper Flux ») est le nom donné par Intel à son adaptation du SMT (Simultaneous Multi Threading) à deux voies dans le Pentium 4. Le premier modèle grand public de la gamme à en bénéficier… … Wikipédia en Français

Hyper threading — (HT, en français « Hyper Flots » ou « Hyper Flux ») est le nom donné par Intel à son adaptation du SMT (Simultaneous Multi Threading) à deux voies dans le Pentium 4. Le premier modèle grand public de la gamme à en bénéficier… … Wikipédia en Français

Hyper-Threading — Principe de l’Hyper Threading. Hyper Threading, ou HT, est l’implémentation par Intel du Simultaneous Multi Threading (SMT) à deux voies dans ses microprocesseurs. Le premier mod … Wikipédia en Français

Hyper-Threading — ● ►en n. m. ►PUCE Implantation du threading au niveau du processeur, réalisé par Intel. Cela permet aux applications d effectuer plusieurs tâches en forme de sous processus simultanément. En général, il n y a pas besoin de recompilation, bon… … Dictionnaire d’informatique francophone

Hyper-Threading — … Википедия

Hyper Threading — … Википедия

Hyper threading — … Википедия

Hyper Threading — (Computers) multithreading technology which takes place concurrently on the Pentium 4 microarchitecture produced by Intel … English contemporary dictionary

Впервые технология Hyper-Threading (HT, гиперпоточность) появилась 15 лет назад — в 2002 году, в процессорах Pentium 4 и Xeon, и с тех пор то появлялась в процессорах Intel (в линейке Core i, некоторых Atom, в последнее время еще и в Pentium), то исчезала (ее поддержки не было в линейках Core 2 Duo и Quad). И за это время она обросла мифическими свойствами — дескать ее наличие чуть ли не удваивает производительность процессора, превращая слабые i3 в мощные i5. При этом другие говорят что HT — обычная маркетинговая уловка, и толку от нее мало. Правда как обычно по середине — местами толк от нее есть, но двухкртаного прироста ждать точно не стоит.

Уже в третьем квартале 2018 года, вероятнее всего в сентябре, компания Intel должна представить процессоры Core i9-9900K, Core i7-9700K, Core i5-9600K и Core i5-9400. Напомним, что первые два будут восьмиядерными моделями, тогда как два других — шестиядерными. Из них всех поддержку многопоточности (Hyper-Threading) получит только старший Core i9-9900K. В будущем, Intel может и вовсе отказаться от многопоточности. Давайте разберемся что это такое.

Техническое описание технологии

Начнем с определения, данного на сайте Intel:

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

В общем понятно то, что ничего не понятно — одни общие фразы, однако вкраце технологию они описывают — HT позволяет одному физическому ядру обрабатывать одновременно несколько (обычно два) логических потока. Но как? Процессор, поддерживающий гиперпоточность:

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

Разберем на простом примере:

Допустим перед процессором стоят две задачи. Если процессор имеет одно ядро, то он будет выполнять их последовательно, если два — то параллельно на двух ядрах, и время выполнения обеих задач будет равно времени, затраченному на более тяжелую задачу. Но что если процессор одноядерный, но поддерживает гиперпоточность? Как видно на картинке выше при выполнении одной задачи процессор не занят на 100% — какие-то блоки процессора банально не нужны в данной задаче, где-то ошибается модуль предсказания переходов (который нужен для предсказания, будет ли выполнен условный переход в программе), где-то происходит ошибка обращения к кэшу — в общем и целом при выполнении задачи процессор редко бывает занят больше, чем на 70%. А технология HT как раз «подпихивает» незанятым блокам процессора вторую задачу, и получается что одновременно на одном ядре обрабатываются две задачи. Однако удвоения производительности не происходит по понятным причинам — очень часто получается так, что двум задачам нужен один и тот же вычислительный блок в процессоре, и тогда мы видим простой: пока одна задача обрабатывается, выполнение второй на это время просто останавливается (синие квадраты — первая задача, зеленые — вторая, красные — обращение задач к одному и тому же блоку в процессоре):

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

Плюсы и минусы технологии

С учетом того, что кристалл процессора с поддержкой HT физчески больше кристалла процессора без HT в среднем на 5% (именно столько занимают дополнительные блоки регистров и контроллеры прерываний), а поддержка HT позволяет нагрузить процессор на 90-95%, то в сравнении с 70% без HT мы получаем, что прирост в лучшем случае будет 20-30% — цифра достаточно большая.

Однако не все так хорошо: бывает, что прироста производительности от HT нет вообще, и даже бывает так, что HT ухудшает производительность процессора. Это бывает по многим причинам:

  • Нехватка кэш-памяти. К примеру в современных четырехядерных i5 находится 6 мб кэша L3 — по 1.5 мб на ядро. В четырехядерных i7 с HT кэша уже 8 мб, но так как логических ядер 8, то мы получаем уже только 1 мб на ядро — при вычислениях некоторым программам этого объема может не хватать, что приводит к падению производительности.
  • Отсутствие оптимизации ПО. Самая основная проблема — программы считают логические ядра физическими, из-за чего при параллельном выполнении задач на одном ядре часто возникают задержки из-за обращения задач к одному и тому же вычислительному блоку, что в итоге сводит сводит прирост производительности от HT на нет.
  • Зависимость данных. Вытекает из предыдущего пункта — для выполнения одной задачи требуется результат другой, а она еще не выполнена. И опять же мы получаем простой, снижение загрузки на процессор и небольшой прирост от HT.

Программы, умеющие работать с гиперпоточностью

Таких много, ибо для вычислений HT это манна небесная — тепловыделение практически не растет, процессор особо больше не становится, а при правильной оптимизации можно получить прирост до 30%. Поэтому ее поддержку быстро внедрили в те программы, где легко можно сделать распараллеливание нагрузки — в архиваторы (WinRar), программы для 2D/3D моделирования (3ds Max, Maya), программы для обрабокти фото и видео (Sony Vegas, Photoshop, Corel Draw).

Программы, плохо работающие с гиперпоточностью
Традиционно это большинство игр — их обычно бывает трудно грамотно распараллелить, поэтому зачастую четырех физических ядер на высоких частотах (i5 K-серии) более чем хватает для игр, распараллелить которые под 8 логических ядер в i7 оказывается непосильной задачей. Однако стоит учитывать и то, что есть фоновые процессы, и если процессор не поддерживает HT, то их обработка ложится на физические ядра, что может замедлить игру. Тут i7 с HT оказывается в выигрыше — все фоновые задачи традиционно имеют пониженный приоритет, поэтому при одновременной работе на одном физическом ядре игры и фоновой задаче игра будет получать повышенный приоритет, и при этом фоновая задача не будет «отвлекать» занятые игрой ядра — именно поэтому для стриминга или записи игр лучше брать i7 с гиперпоточностью.

Итоги

Пожалуй тут остается только один вопрос — так имеет ли смысл брать процессоры с HT или нет? Если вы любите держать одновременно открытыми пяток программ и при этом играть в игры, или же занимаетесь обработкой фото, видео или моделированием — да, разумеется стоит брать. А если вы привыкли перед запуском тяжелой программы закрывать все другие, и не балуетесь обработкой или моделированием, то процессор с HT вам ни к чему.

К тому же, недавно исследователи выявили новую уязвимость процессоров Intel на базе Hyper-Threading — TLBleed. Исследователи говорят, что им удалось использовать TLBleed для извлечения ключей шифрования из другой запущенной программы в 99,8 % тестов на процессоре Intel Skylake Core i7-6700K. Тесты с использованием других типов процессоров Intel тоже имели высокие показатели результативности атак.

Hyper-threading (англ. hyper-threading — гиперпоточность, официальное название — hyper-threading technology , HTT или HT ) — технология, разработанная компанией Intel для процессоров на микроархитектуре NetBurst. HTT реализует идею «одновременной многопоточности» (англ. simultaneous multithreading , SMT ). HTT является развитием технологии суперпоточности (англ. super-threading ), появившейся в процессорах Intel Xeon в феврале 2002 и в ноябре 2002 добавленной в процессоры Pentium 4 [1] . После включения HTT один физический процессор (одно физическое ядро) определяется операционной системой как два отдельных процессора (два логических ядра). При определённых рабочих нагрузках использование HTT позволяет увеличить производительность процессора. Суть технологии: передача «полезной работы» (англ. useful work ) бездействующим исполнительным устройствам (англ. execution units ).

HTT не реализована в процессорах серии Core 2 («Core 2 Duo», «Core 2 Quad»).

В процессорах Core i3, Core i7 и некоторых Core i5 была реализована сходная по своим принципам технология, сохранившая название hyper-threading. При включении технологии каждое физическое ядро процессора определяется операционной системой как два логических ядра.

Также сходная технология присутствует в некоторых процессорах серий Itanium [2] и Atom [3] .

Содержание

Принцип работы [ править | править код ]

Процессор, поддерживающий технологию hyper-threading:

  1. может хранить состояние сразу двух потоков;
  2. содержит по одному набору регистров и по одному контроллеру прерываний (APIC) на каждый логический процессор.

Для операционной системы это выглядит как наличие двух логических процессоров (англ. logical processor ). У каждого логического процессора имеется свой набор регистров и контроллер прерываний (APIC). Остальные элементы физического процессора являются общими для всех логических процессоров.

Рассмотрим пример. Физический процессор выполняет поток команд первого логического процессора. Выполнение потока команд приостанавливается по одной из следующих причин:

  • произошёл промах при обращении к кэшу процессора;
  • выполнено неверное предсказание ветвления;
  • ожидается результат предыдущей инструкции.

Физический процессор не будет бездействовать, а передаст управление потоку команд второго логического процессора. Таким образом, пока один логический процессор ожидает, например, данные из памяти, вычислительные ресурсы физического процессора будут использоваться вторым логическим процессором [4] .

Производительность [ править | править код ]

Преимуществами HTT считаются:

  • возможность запуска нескольких потоков одновременно (многопоточныйкод);
  • уменьшение времени отклика;
  • увеличение числа пользователей, обслуживаемых сервером.

По утверждениям компании Intel, после реализации HTT в Pentium 4 и Xeon 2001-2002 года:

  • площадь кристалла и энергопотребление в первой реализации увеличились менее чем на 5 % [5][6] ;
  • в некоторых задачах производительность увеличилась на 15—30 % [7][6]
  • прибавка к скорости составила 30 % [8] по сравнению с аналогичными процессорами Pentium 4, не поддерживающими HTT;

Прибавка к производительности изменяется от приложения к приложению. Скорость выполнения некоторых программ может даже уменьшиться. Это, в первую очередь, связано с «системой повторения» (англ. replay ) процессоров Pentium 4, занимающей необходимые вычислительные ресурсы, отчего и начинают «голодать» другие потоки [9] [10] .

Ссылка на основную публикацию
Что означает ошибка 110
Ошибка 110 в Android происходит главным образом при обновлении или установке приложений из Google Play. Случается это из-за несовместимости ОС:...
Что выбрать windows 7 или windows 10
Сегодня в нашем блоге «Чо?! Чо?!» я раскрою все преимущества и недостатки новой операционной системы для ноутбуков, сравнив ее с...
Что в китае дешевле чем в россии
Я экономлю тысячи рублей, покупая товары из Китая через интернет Сегодня я расскажу Вам о том, что выгодно покупать в...
Что означает ошибка 963
Ошибки в Google Play дело достаточно частое, это не удивительно, ведь Плей маркет – это один из крупнейших магазинов приложений....