Одновременная многопоточность
-
Основы многопоточности
- Многопоточность позволяет нескольким потокам выполнять инструкции одновременно.
- Многопоточные процессоры могут быть реализованы с использованием нескольких ядер или суперскалярных технологий.
-
История и развитие
- Многопоточные процессоры существуют с 1950-х годов, но IBM впервые исследовала SMT в 1968 году.
- Alpha 21464 (EV8) был первым коммерческим микропроцессором с SMT, но не был выпущен.
- Intel Pentium 4 стал первым настольным процессором с SMT, повышая производительность до 30%.
- Imagination Technologies и RMI внедрили SMT-системы с различными режимами и приоритетами потоков.
- IBM POWER5 и POWER7 предлагают динамическое переключение между потоками для оптимизации производительности.
- UltraSPARC T1 и Rock от Sun Microsystems использовали мелкозернистую многопоточность, в то время как Niagara и Rock были ориентированы на CMT.
- SPARC T3, T4, T5, M5, M6, M7 и M7 имеют восемь потоков тонкой обработки на ядро.
- Fujitsu SPARC64 VI и более новые версии используют крупнозернистую многопоточность и двухпозиционный SMT.
- Intel Itanium Montecito и Tukwila используют крупнозернистую многопоточность с двухдоменной SMT.
- Intel Xeon Phi поддерживает четырехстороннюю SMT, а Atom — двухстороннюю SMT без спекулятивного выполнения.
-
Недостатки и безопасность
- SMT может снизить производительность при использовании узких мест.
- Разработчикам программного обеспечения приходится проверять и управлять SMT для своих приложений.
- В современных ОС отсутствуют удобные API для управления SMT и предотвращения конфликтов ресурсов.
- Существуют проблемы безопасности, связанные с некоторыми реализациями SMT, включая уязвимости в Intel hyperthreading.
Полный текст статьи: