Гиперпоточность - более дешевая и медленная альтернатива двухъядерным процессорам.
Intel Руководство Volume 3 Система Руководство по программированию - 325384-056US сентября 2015 8,7 «INTEL Гиперпоточность TECHNOLOGY АРХИТЕКТУРА» описывает HT кратко. Он содержит следующую диаграмму:
TODO на сколько процентов медленнее в среднем в реальных приложениях?
Гиперпоточность возможна, потому что современные ядра с одним ЦП уже выполняют несколько инструкций одновременно с конвейером команд https://en.wikipedia.org/wiki/Instruction_pipelining
Конвейер команд представляет собой разделение функций внутри одного ядра, чтобы гарантировать, что каждая часть схемы используется в любой момент времени: чтение памяти, декодирование инструкций, выполнение инструкций и т. Д.
Гиперпоточность далее разделяет функции, используя:
единый бэкэнд, который на самом деле выполняет инструкции со своим конвейером.
Двухъядерный имеет два бэкэнда, что объясняет большую стоимость и производительность.
два внешних интерфейса, которые принимают два потока инструкций и упорядочивают их таким образом, чтобы максимально использовать конвейерную обработку единого внутреннего интерфейса, избегая опасностей .
Двухъядерный также будет иметь 2 фронтэнда, по одному на каждый бэкэнд.
Существуют крайние случаи, когда переупорядочение инструкций не приносит никакой пользы, делая гиперпоточность бесполезной. Но это дает значительное улучшение в среднем.
Два гиперпотока в одном ядре совместно используют дополнительные уровни кэша (TODO сколько? L1?), Чем два разных ядра, которые разделяют только L3, см .:
Интерфейс, который каждая гиперпотока предоставляет операционной системе, подобен интерфейсу реального ядра, и обоими можно управлять отдельно. Так cat /proc/cpuinfo
показывает мне 4 процессора, хотя у меня только 2 ядра с 2-мя гиперпотоками в каждом.
Однако операционные системы могут воспользоваться преимуществами знания, какие гиперпотоки находятся на одном и том же ядре, для запуска нескольких потоков данной программы на одном ядре, что может улучшить использование кэша.
Это видео LinusTechTips содержит безрассудное нетехническое объяснение: https://www.youtube.com/watch?v=wnS50lJicXc