Hyper-threading (англ. hyper-threading — гиперпоточность, официальное название — hyper-threading technology, HTT или HT) — технология, разработанная компанией Intel для процессоров на микроархитектуре NetBurst. HTT реализует идею «одновременной мультипоточности» (англ. simultaneous multithreading, SMT). HTT является развитием технологии суперпоточностиruen (англ. 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[] и Atom.
Процессор, поддерживающий технологию hyper-threading: может хранить состояние сразу двух потоков; содержит по одному набору регистров и по одному контроллеру прерываний (APIC) на каждый логический процессор.
Для операционной системы это выглядит как наличие двух логических процессоров (англ. logical processor). У каждого логического процессора имеется свой набор регистров и контроллер прерываний (APIC). Остальные элементы физического процессора являются общими для всех логических процессоров.
Рассмотрим пример. Физический процессор выполняет поток команд первого логического процессора. Выполнение потока команд приостанавливается по одной из следующих причин: произошёл промах при обращении к кешу процессора; выполнено неверное предсказания ветвления; ожидается результат предыдущей инструкции.
Физический процессор не будет бездействовать, а передаст управление потоку команд второго логического процессора. Таким образом, пока один логический процессор ожидает, например, данные из памяти, вычислительные ресурсы физического процессора будут использоваться вторым логическим процессором[
Преимуществами HTT считаются: возможность запуска нескольких потоков одновременно (многопоточный код); уменьшение времени отклика; увеличение числа пользователей, обслуживаемых сервером.
По утверждениям компании Intel после реализации HTT в Pentium 4 и Xeon 2001-2002 года: площадь кристалла и энергопотребление в первой реализации увеличилась менее чем на 5%; в некоторых задачах производительность увеличилась на 15—30% прибавка к скорости составила 30% по сравнению с идентичными процессорами Pentium 4, не поддерживающими HTT;
Прибавка к производительности изменяется от приложения к приложению. Скорость выполнения некоторых программ может даже уменьшиться. Это, в первую очередь, связано с «системой повторения» (англ. replay) процессоров Pentium 4, занимающей необходимые вычислительные ресурсы, отчего и начинают «голодать» другие потоки.