Гиперпоточность
Гиперпоточность (официальное название — hyper-threading technology, HTT или HT) — технология, разработанная компанией Intel для повышения производительности процессоров собственного производства. Стала исторически первой полноценной реализацией концепции одновременной многопоточности (англ. simultaneous multithreading, SMT), созданной в развитие технологии суперпоточности (англ. super-threading, реализовывавшей временную многопоточность). После включения гиперпоточности одно физическое процессорное ядро определяется операционной системой как два отдельных логических ядра. При определённых рабочих нагрузках использование гиперпоточности позволяет увеличить производительность процессора. Суть технологии: передача «полезной работы» (англ. useful work) бездействующим исполнительным устройствам (англ. execution units).
Изначально технология была реализована в одноядерных серверных процессорах Xeon (февраль 2002 года) и одноядерных настольных процессорах Pentium 4 (ноябрь 2002 года)[1]. В первых многоядерных процессорах Intel, в том числе сериях Core 2 (Core 2 Duo, Core 2 Quad), технология реализована не была; начиная с 2008 года в архитектуре Nehalem (Core i7) поддержаны и многоядерные процессоры, впоследствии поддержка появилась в линейках Itanium[2], Atom[3] и всех сериях Xeon.
Принцип работыПравить
Процессорное ядро, поддерживающее технологию гиперпоточности, может хранить состояние сразу двух потоков выполнения, содержит по одному набору регистров и по одному контроллеру прерываний (APIC) на каждое логическое ядро. Для операционной системы это выглядит как наличие двух логических ядер. У каждого логического ядра имеется свой набор регистров и контроллер прерываний (APIC). Остальные элементы физического ядра являются общими для всех логических ядер.
Например, когда физическое ядро выполняет поток команд первого логического ядра, то выполнение потока команд приостанавливается по одной из следующих причин:
- произошёл промах при обращении к кэшу процессора;
- выполнено неверное предсказание ветвления;
- ожидается результат предыдущей инструкции.
Физическое ядро не будет бездействовать, а передаст управление потоку команд второго логического ядра. Таким образом, пока одно логическое ядро ожидает, например, данные из памяти, вычислительные ресурсы физического ядра будут использоваться вторым логическим ядром[4].
ПроизводительностьПравить
Преимуществами технологии считаются:
- возможность запуска нескольких потоков одновременно (многопоточный код);
- уменьшение времени отклика;
- увеличение числа пользователей, обслуживаемых сервером.
По утверждениям Intel, после реализации гиперпоточности в Pentium 4 и Xeon 2001—2002 года:
- площадь кристалла и энергопотребление в первой реализации увеличились менее чем на 5 %[5][6];
- в некоторых задачах производительность увеличилась на 15—30 %[7][6]
- прибавка к скорости составила 30 %[8] по сравнению с аналогичными процессорами Pentium 4, не поддерживающими гиперпоточность;
Прибавка к производительности изменяется от приложения к приложению. Скорость выполнения некоторых программ может даже уменьшиться. Это, в первую очередь, связано с «системой повторения» (англ. replay) процессоров Pentium 4, занимающей необходимые вычислительные ресурсы, отчего и начинают «голодать» другие потоки[9][10].
Информация в этой статье или некоторых её разделах устарела. |
ПримечанияПравить
- ↑ Процессоры [[Intel]] [[Pentium 4]] 3.06GHz с технологией «hyper-threading» (неопр.). X-bit labs. Дата обращения: 4 июня 2014. Архивировано 31 мая 2014 года.
- ↑ Процессоры Itanium с поддержкой Hyper-threading (неопр.). Дата обращения: 20 мая 2015. Архивировано 12 сентября 2015 года.
- ↑ Процессоры Atom с поддержкой Hyper-threading (неопр.). Дата обращения: 20 мая 2015. Архивировано 12 сентября 2015 года.
- ↑ Техническое описание Архивировано 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»
- ↑ 1 2 How to Determine the Effectiveness of Hyper-Threading Technology with an Application Архивная копия от 5 февраля 2015 на Wayback Machine // 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 Архивная копия от 4 июня 2010 на Wayback Machine // F-center.ru, 2005
- ↑ Ватутин Э. И., Титов В. С. Особенности реализации технологии «hyper-threading» в процессорах Intel «Pentium 4» на примере выполнения кода разного типа Архивная копия от 11 января 2012 на Wayback Machine, 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