Hyper-threading
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:
- может хранить состояние сразу двух потоков;
- содержит по одному набору регистров и по одному контроллеру прерываний (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].
См. также
Примечания
- Процессоры Intel Pentium 4 3.06GHz с технологией «hyper-threading» . X-bit labs. Дата обращения: 4 июня 2014. Архивировано 31 мая 2014 года.
- Процессоры Itanium с поддержкой Hyper-threading
- Процессоры Atom с поддержкой Hyper-threading
- Техническое описание Архивировано 24 февраля 2008 года. (англ.) технологии «hyper-threading» на сайте компании Intel.
- Hyper-Threading Technology // Intel Technology Journal Volume 06 Issue 01 (February 14, 2002), ISSN 1535766X p.7 " This implementation of Hyper-Threading Technology added less than 5% to the relative chip size and maximum power requirements"
- How to Determine the Effectiveness of Hyper-Threading Technology with an Application // Intel, April 28, 2011
- Hyper-Threading Technology // Intel Technology Journal Volume 06 Issue 01 (February 14, 2002), ISSN 1535766X p.14: "Measured performance on the Intel Xeon processor MP with Hyper-Threading Technology shows performance gains of up to 30% on common server application benchmarks for this technology. "
- Summary: In Some Cases The P4 3.0HT Can Even Beat The 3.6 GHz Version : Single CPU in Dual Operation: P4 3.06 GHz with Hyper-Threading Technology . Tomshardware.com (14 ноября 2002). Дата обращения: 5 апреля 2011.
- Керученько Я., Малич Ю., Левченко В.Replay: неизвестные особенности функционирования ядра Netburst // F-center.ru, 2005
- Ватутин Э. И., Титов В. С. Особенности реализации технологии «hyper-threading» в процессорах Intel «Pentium 4» на примере выполнения кода разного типа, 2005
Ссылки
- Hyper-Threading (MSDN) (рус.)
- Обзор технологии на сайте Intel (рус.)
- Intel® 64 and IA-32 Architectures software developer’s manual, volume 1, section 2.2.8. "Intel® hyper-threading technology" (253665-039US May 2011)
- Hyper-threading technology architecture and microarchitecture // статья о технологии «hyper-threading» в выпуске журнала «Intel Technology Journal» от Q1, 2002 года (копия)
- Hyperthreading technology in the «Netburst» microarchitecture // IEEE micro, volume 23, issue 2, март 2003, стр. 56-65 doi:10.1109/MM.2003.1196115
- Нужен ли Hyper-Threading в играх? // TestLabs.kz, 15.03.2013