Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В этом высокоуровневом изображении HTT инструкции извлекаются из ОЗУ (блоки разного цвета представляют инструкции четырех разных процессов ), декодируются и переупорядочиваются внешним интерфейсом (белые блоки представляют пузырьки конвейера ) и передаются в ядро ​​выполнения, способное выполнять выполнение инструкций из двух разных программ в течение одного такта . [1] [2] [3]

Гиперпоточность (официально называемая технологией Hyper-Threading или HT и сокращенно HTT или HT ) - это собственная реализация Intel одновременной многопоточности (SMT), используемая для улучшения распараллеливания вычислений (выполнения нескольких задач одновременно), выполняемых на микропроцессорах x86 . Она была представлена ​​на серверных процессорах Xeon в феврале 2002 года и на процессорах Pentium 4 для настольных ПК в ноябре 2002 года. [4] С тех пор Intel включила эту технологию в Itanium , Процессоры серий Atom и Core i , среди прочего. [ необходима цитата ]

Для каждого физически присутствующего ядра процессора операционная система обращается к двум виртуальным (логическим) ядрам и по возможности распределяет рабочую нагрузку между ними. Основная функция гиперпоточности - увеличение количества независимых инструкций в конвейере; он использует преимущества суперскалярной архитектуры, в которой несколько инструкций работают с отдельными данными параллельно . При использовании HTT одно физическое ядро ​​отображается в операционной системе как два процессора, что позволяет одновременно планировать два процесса на каждое ядро. Кроме того, два или более процессов могут использовать одни и те же ресурсы: если ресурсы для одного процесса недоступны, то другой процесс может продолжить работу, если его ресурсы доступны.

Помимо необходимости одновременной поддержки многопоточности в операционной системе, гиперпоточность может быть правильно использована только с операционной системой, специально оптимизированной для этого. [5]

Обзор [ править ]

Модель процессора Intel Pentium 4 с тактовой частотой 3 ГГц, в которой используется технология Hyper-Threading [6]

Технология Hyper-Threading - это форма технологии одновременной многопоточности, представленная Intel, а концепция, лежащая в основе этой технологии, запатентована Sun Microsystems . Архитектурно процессор с технологией Hyper-Threading состоит из двух логических процессоров на ядро, каждый из которых имеет собственное архитектурное состояние процессора. Каждый логический процессор может быть индивидуально остановлен, прерван или направлен на выполнение указанного потока независимо от другого логического процессора, использующего то же физическое ядро. [7]

В отличие от традиционной двухпроцессорной конфигурации, в которой используются два отдельных физических процессора, логические процессоры в гиперпоточном ядре совместно используют ресурсы выполнения. Эти ресурсы включают механизм выполнения, кеши и интерфейс системной шины; совместное использование ресурсов позволяет двум логическим процессорам работать друг с другом более эффективно и позволяет логическому процессору заимствовать ресурсы из остановившегося логического ядра (при условии, что оба логических ядра связаны с одним и тем же физическим ядром). Процессор останавливается, когда он ожидает данных, которые он отправил, чтобы он мог завершить обработку текущего потока. Степень выгоды от использования гиперпоточного или многоядерного процессора зависит от потребностей программного обеспечения и от того, насколько хорошо оно и операционная система написаны для эффективного управления процессором. [7]

Гиперпоточность работает путем дублирования определенных секций процессора - тех, которые хранят архитектурное состояние, - но не дублирует основные ресурсы выполнения . Это позволяет гиперпоточному процессору выглядеть как обычный «физический» процессор и дополнительный « логический » процессор для операционной системы хоста (операционные системы, не поддерживающие HTT, видят два «физических» процессора), позволяя операционной системе планировать два потока или обрабатывает одновременно и надлежащим образом. Когда ресурсы выполнения не будут использоваться текущей задачей в процессоре без гиперпоточности, и особенно когда процессор остановлен, процессор, оснащенный гиперпоточностью, может использовать эти ресурсы исполнения для выполнения другой запланированной задачи.(Процессор может остановиться из-запромах в кэше , неверное предсказание ветвления или зависимость данных .) [8]

Эта технология прозрачна для операционных систем и программ. Минимум, который требуется для использования преимуществ гиперпоточности, - это поддержка симметричной многопроцессорной обработки (SMP) в операционной системе, поскольку логические процессоры выглядят как стандартные отдельные процессоры.

Можно оптимизировать поведение операционной системы в многопроцессорных системах с поддержкой гиперпотоков. Например, рассмотрим систему SMP с двумя физическими процессорами, которые являются гиперпоточными (всего четыре логических процессора). Если планировщик потоков операционной системыне знает о гиперпоточности, он будет обрабатывать все четыре логических процессора одинаково. Если только два потока могут выполняться, он может запланировать эти потоки на двух логических процессорах, которые принадлежат одному и тому же физическому процессору; этот процессор будет чрезвычайно загружен, в то время как другой будет бездействовать, что приведет к снижению производительности, чем это возможно при планировании потоков на разных физических процессорах. Этой проблемы можно избежать, улучшив планировщик, чтобы логические процессоры обрабатывались иначе, чем физические процессоры; в некотором смысле это ограниченная форма изменений планировщика, необходимых для систем NUMA .

История [ править ]

Первая опубликованная статья, описывающая то, что сейчас известно как гиперпоточность в компьютере общего назначения, была написана Эдвардом С. Дэвидсоном и Леонардом. Э. Шар в 1973 г. [9]

Компания Denelcor, Inc. представила многопоточность с процессором гетерогенных элементов (HEP) в 1982 году. Конвейер HEP не мог хранить несколько инструкций из одного процесса. Только одна инструкция из данного процесса могла присутствовать в конвейере в любой момент времени. Если инструкция от данного процесса блокирует конвейер, инструкции от других процессов будут продолжены после того, как конвейер опустошится.

Патент США на технологию, лежащую в основе гиперпоточности, был выдан Кеннету Окину из Sun Microsystems в ноябре 1994 года. В то время технология CMOS не была достаточно развитой, чтобы обеспечить экономичное внедрение. [10]

Intel реализовала гиперпоточность на процессоре архитектуры x86 в 2002 году с процессором Xeon на базе Foster MP . В том же году он также был включен в процессоры Pentium 4 на базе 3,06 ГГц Northwood, а с тех пор оставался в качестве функции каждого процессора Pentium 4 HT, Pentium 4 Extreme Edition и Pentium Extreme Edition. Линейки процессоров Intel Core и Core 2 (2006 г.), пришедшие на смену модельной линейке Pentium 4, не использовали гиперпоточность. Процессоры на основе микроархитектуры Core не имели гиперпоточности, поскольку микроархитектура Core была потомком старой микроархитектуры P6 . Микроархитектура P6 использовалась в более ранних итерациях процессоров Pentium, а именно Pentium Pro , Pentium II иPentium III (плюс их производные Celeron и Xeon в то время).

Intel выпустила микроархитектуру Nehalem (Core i7) в ноябре 2008 года, в которой гиперпоточность вернулась. Процессоры Nehalem первого поколения содержали четыре физических ядра и эффективно масштабировались до восьми потоков. С тех пор были выпущены как двух-, так и шестиядерные модели с масштабированием четырех и двенадцати потоков соответственно. [11] Раньше ядра Intel Atom были обычными процессорами, иногда с возможностью гиперпоточности, для мобильных ПК с низким энергопотреблением и недорогих настольных ПК. [12] процессоров Itanium 9300 запущен с восемью потоками на процессор (два потока на ядро) благодаря усовершенствованной технологии гиперпотоков. Следующая модель, Itanium 9500 (Poulson), имеет 12-разрядную архитектуру с восемью ядрами ЦП с поддержкой еще восьми виртуальных ядер через гиперпоточность. [13] Серверные чипы Intel Xeon 5500 также используют двустороннюю гиперпоточность. [14] [15]

Заявления о производительности [ править ]

По данным Intel, первая реализация гиперпоточности использовала только на 5% больше площади кристалла, чем сопоставимый процессор без гиперпотоков, но производительность была на 15–30% лучше. [16] [17] Intel заявляет об улучшении производительности до 30% по сравнению с идентичным в остальном, неодновременным многопоточным Pentium 4. Tom's Hardware заявляет: «В некоторых случаях P4, работающий на частоте 3,0 ГГц с включенной HT, может даже превзойти P4 работает на частоте 3,6 ГГц с выключенным HT ". [18] Intel также заявляет о значительном улучшении производительности благодаря процессору Pentium 4 с поддержкой гиперпоточности в некоторых алгоритмах искусственного интеллекта.

В целом история производительности гиперпоточности вначале была неоднозначной. В одном из комментариев к высокопроизводительным вычислениям от ноября 2002 г. отмечается: [19]

Hyper-Threading может улучшить производительность некоторых приложений MPI , но не всех. В зависимости от конфигурации кластера и, что наиболее важно, от характера приложения, работающего в кластере, прирост производительности может варьироваться или даже быть отрицательным. Следующим шагом является использование инструментов производительности, чтобы понять, какие области способствуют повышению производительности, а какие - снижению производительности.

В результате улучшения производительности очень зависят от приложения; [20] однако при запуске двух программ, требующих полного внимания процессора, может показаться, что одна или обе программы немного замедляются при включении технологии Hyper-Threading. [21] Это происходит из-за того, что система воспроизведения Pentium 4 связывает ценные ресурсы выполнения, выравнивая ресурсы процессора между двумя программами, что увеличивает время выполнения. Процессоры Pentium 4 «Prescott» и Xeon «Nocona» получили очередь воспроизведения, которая сокращает время выполнения, необходимое для системы воспроизведения, и полностью преодолевает снижение производительности. [22]

Согласно анализу Intel, проведенному в ноябре 2009 г., влияние гиперпоточности на производительность приводит к увеличению общей задержки в случае, если выполнение потоков не приводит к значительному увеличению общей пропускной способности, которое зависит от приложения [20] . Другими словами, общая задержка обработки значительно увеличивается из-за гиперпоточности, при этом негативные эффекты становятся меньше, поскольку существует больше одновременных потоков, которые могут эффективно использовать дополнительное использование аппаратных ресурсов, обеспечиваемое гиперпоточностью. [23] Аналогичный анализ производительности доступен для эффектов гиперпоточности при использовании для обработки задач, связанных с управлением сетевым трафиком, например для обработки запросов прерывания, генерируемых контроллерами сетевого интерфейса.(Сетевые карты). [24] В другой статье говорится об отсутствии улучшений производительности при использовании гиперпоточности для обработки прерываний. [25]

Недостатки [ править ]

Когда были выпущены первые процессоры HT, многие операционные системы не были оптимизированы для технологии Hyper-Threading (например, Windows 2000 и Linux старше 2.4). [26]

В 2006 году гиперпоточность критиковалась за неэффективность использования энергии. [27] Например, компания ARM , специализирующаяся на разработке процессоров с низким энергопотреблением, заявила, что одновременная многопоточность может потреблять на 46% больше энергии, чем обычные двухъядерные конструкции. Кроме того, они утверждали, что SMT увеличивает перегрузку кеша на 42%, тогда как двухъядерный процессор приводит к снижению на 37%. [28]

В 2010 году ARM заявила, что может включить одновременную многопоточность в свои будущие чипы; [29] однако это было отклонено в пользу их 64-битной архитектуры 2012 года. [30]

В 2013 году Intel отказалась от SMT в пользу выполнения вне очереди для своих процессорных ядер Silvermont , так как они обнаружили, что это дает лучшую производительность с лучшей энергоэффективностью, чем меньшее количество ядер с SMT. [31]

В 2017 году выяснилось, что процессоры Intel Skylake и Kaby Lake имели ошибку при реализации гиперпоточности, которая могла вызвать потерю данных. [32] Позднее были выпущены обновления микрокода для решения этой проблемы. [33]

В 2019 году, выпустив Coffee Lake , Intel начала отказываться от использования гиперпоточности в основных процессорах Core i7 для настольных ПК, за исключением компонентов Core i9 высшего класса или процессоров Pentium Gold. [34] Он также начал рекомендовать отключить гиперпоточность, поскольку были обнаружены новые атаки уязвимости ЦП, которые можно было смягчить, отключив HT. [35]

Безопасность [ править ]

В мае 2005 года Колин Персиваль продемонстрировал, что вредоносный поток на Pentium 4 может использовать синхронизирующую атаку для отслеживания шаблонов доступа к памяти другого потока, с которым он совместно использует кеш, что позволяет кражу криптографической информации. Возможные решения этой проблемы включают изменение процессором стратегии вытеснения кеша или предотвращение операционной системой одновременного выполнения на одном физическом ядре потоков с разными привилегиями. [36] В 2018 году операционная система OpenBSD отключила гиперпоточность «во избежание утечки данных из приложений в другое программное обеспечение» из-за уязвимостей Foreshadow / L1TF . [37] [38] В 2019 г.Набор уязвимостей привел к тому, что эксперты по безопасности рекомендовали отключить гиперпоточность на всех устройствах. [39]

См. Также [ править ]

  • Бочковой процессор
  • Многозадачность компьютера
  • Многоядерный процессор

Ссылки [ править ]

  1. Стоукс, Джон (3 октября 2002 г.). «Введение в многопоточность, суперпоточность и гиперпоточность» . Ars Technica . С. 2–3 . Проверено 30 сентября 2015 года .
  2. ^ Дебора Т. Марр; Фрэнк Биннс; Дэвид Л. Хилл; Гленн Хинтон; Дэвид А. Куфати; Дж. Алан Миллер; Майкл Аптон (12 декабря 2006 г.). «Архитектура технологии Hyper-Threading и микроархитектура» (PDF) . cs.sfu.ca . Архивировано из оригинального (PDF) 23 сентября 2015 года . Проверено 30 сентября 2015 года .
  3. Ананд Лал Шимпи (5 октября 2012 г.). «Интерфейс Haswell - анализ архитектуры Intel Haswell» . AnandTech . Проверено 30 сентября 2015 года .
  4. ^ "Процессор Intel Pentium 4 3,06 ГГц с технологией Hyper-Threading: Камнем убить двух птиц". X-bit labs. Архивировано из оригинального 31 мая 2014 года . Дата обращения 4 июня 2014 .
  5. ^ Список взаимозаменяемости обязательных компонентов Intel для процессора Intel Pentium 4 с технологией HT , включает список операционных систем, которые включают оптимизацию для технологии Hyper-Threading; это Windows XP Professional 64, Windows XP MCE, Windows XP Home, Windows XP Professional, некоторые версии Linux, такие как COSIX Linux 4.0, RedHat Linux 9 (профессиональные и персональные версии), RedFlag Linux Desktop 4.0 и SuSe Linux 8.2 (Professional и Персональные версии)
  6. ^ "Intel Processor Spec Finder: SL6WK" .
  7. ^ a b Томадакис, Майкл Э. (17 марта 2011 г.). «Архитектура процессора Nehalem и платформ SMP Nehalem-EP» (PDF) . Техасский университет A&M. п. 23. Архивировано из оригинального (PDF) 11 августа 2014 года . Проверено 21 марта 2014 года .
  8. ^ Хеннесси, Джон Л .; Паттерсон, Дэвид А. Компьютерная архитектура: количественный подход . Асанович, Крсте, Бакос, Джейсон Д., Колвелл, Роберт П., Бхаттачарджи, Абхишек, 1984-, Конте, Томас М., 1964- (Шестое изд.). Кембридж, Массачусетс. ISBN 0128119055. OCLC  983459758 .
  9. ^ "Многопроцессорная система, реализованная посредством конвейерной обработки", Леонард Шар и Эдвард Дэвидсон, IEEE Computer, февраль 1974 г., стр. 42-51, т. 7 https://www.computer.org/csdl/magazine/co/1974/02/4251/13rRUyoyhIt
  10. ^ Okin, Кеннет (1 ноября 1994), патент США: 5361337 - Способ и устройство для быстрого переключения процессов в компьютерной системе , архив с оригинала на 21 сентября 2015 года , получен 24 мая 2 016
  11. ^ «Страница недоступна» . www.intel.com .
  12. ^ «Микроархитектура процессора Intel® Atom ™» . Intel.com. 18 марта 2011 . Проверено 5 апреля 2011 года .
  13. ^ «Intel раскрывает новые возможности Itanium Poulson» . Tomshardware.com . Дата обращения 2 июля 2017 .
  14. ^ "Страница индекса серверного процессора" . Intel.com. 18 марта 2011 . Проверено 5 апреля 2011 года .
  15. ^ "Процессор Intel Xeon серии 5500" . Intel.com . Проверено 5 апреля 2011 года .
  16. ^ (PDF) . 19 октября 2012 г. https://web.archive.org/web/20121019025809/http://www.intel.com/technology/itj/2002/volume06issue01/vol6iss1_hyper_threading_technology.pdf . Архивировано из оригинального (PDF) 19 октября 2012 года. Отсутствует или пусто |title=( справка )
  17. ^ 12331095 (28 апреля 2011 г.). «Как определить эффективность технологии Hyper-Threading в приложении» . software.intel.com .CS1 maint: числовые имена: список авторов ( ссылка )
  18. ^ «Резюме: в некоторых случаях P4 3.0HT может даже превзойти версию с тактовой частотой 3,6 ГГц: одиночный процессор в двух режимах: P4 3,06 ГГц с технологией Hyper-Threading» . Tomshardware.com. 14 ноября 2002 . Проверено 5 апреля 2011 года .
  19. ^ Тау Ленг; Ризван Али; Jenwei Hsieh; Кристофер Стэнтон (ноябрь 2002 г.). «Исследование Hyper-Threading в кластерах высокопроизводительных вычислений» (PDF) . Dell. п. 4 . Проверено 12 ноября 2012 года .
  20. ^ a b Джоэл Хруска (24 июля 2012 г.). «Максимальная производительность: сравнение эффектов Hyper-Threading, обновления программного обеспечения» . extremetech.com . Дата обращения 2 марта 2015 .
  21. ^ «Оценка производительности ЦП - Тест - Pentium 4 2.8 и 3.0» . users.telenet.be .
  22. ^ «Воспроизведение: неизвестные особенности ядра NetBurst. Страница 15» . Повтор: неизвестные функции ядра NetBurst . Xbitlabs. Архивировано из оригинального 14 мая 2011 года . Проверено 24 апреля 2011 года .
  23. Валлес, Антонио (20 ноября 2009 г.). «Анализ производительности технологии Intel Hyper-Threading» . Intel . Архивировано из оригинала 17 февраля 2015 года . Проверено 26 февраля 2015 года .
  24. ^ «Настройка сети и производительность» . calomel.org . 12 ноября 2013 . Проверено 26 февраля 2015 года .
  25. ^ «Документация ядра Linux: масштабирование в сетевом стеке Linux» . kernel.org . 1 декабря 2014 . Дата обращения 2 марта 2015 . Нагрузку на процессор можно наблюдать с помощью утилиты mpstat, но обратите внимание, что на процессорах с гиперпоточностью (HT) каждый гиперпоток представлен как отдельный ЦП. Что касается обработки прерываний, HT не показал никаких преимуществ в начальных тестах, поэтому ограничьте количество очередей количеством ядер ЦП в системе.
  26. ^ «Технология Hyper-Threading - Операционные системы, которые включают оптимизацию для технологии Hyper-Threading» . Intel.com. 19 сентября 2011 . Проверено 29 февраля 2012 года .
  27. ^ Устойчивые практики: концепции, методологии, инструменты и приложения . Ассоциация управления информационными ресурсами. Декабрь 2013. с. 666. ISBN 9781466648524.
  28. ^ «ARM не поклонник HyperThreading» . theinquirer.net. 2 августа 2006 . Проверено 29 февраля 2012 года .
  29. ^ Jermoluk, Том (13 октября 2010). «О MIPS и MIPS | TOP500 суперкомпьютерных сайтов» . Top500.org . Архивировано из оригинального 13 июня 2011 года . Проверено 5 апреля 2011 года .
  30. ^ "ARM запускает первое ядро ​​процессора 64bit для серверов и смартфонов" . Форум технического дизайна . 30 октября 2012 г.
  31. ^ Rik Myslewski (8 мая 2013). «Глубоко внутри первого жизнеспособного мобильного процессора Intel: Silvermont» . Реестр . Проверено 13 января 2014 .
  32. ^ Чиргвин, Ричард (25 июня 2017 г.). «У процессоров Intel Skylake и Kaby Lake есть неприятная ошибка гиперпоточности» . Реестр . Проверено 4 июля 2017 года .
  33. ^ "Skylake, чипы Kaby Lake имеют сбой при включенной Hyperthreading" . Ars Technica . 26 июня 2017 . Проверено 25 ноября 2017 года .
  34. ^ Cutress Ян (23 апреля 2019). «Процессоры Intel 9-го поколения Core: анонсированы все настольные и мобильные процессоры мощностью 45 Вт» . AnandTech .
  35. ^ Армаш, Лукиан (14 мая 2019). «Новый недостаток Intel, похожий на Spectre, влияет на чипы, производимые с 2008 года» . Оборудование Тома .
  36. Персиваль, Колин (14 мая 2005 г.). «Кэш отсутствует для развлечения и прибыли» (PDF) . Daemonology.net . Проверено 14 июня +2016 .
  37. ^ «OpenBSD отключает гиперпоточность Intel из-за опасений утечки данных процессора» . Проверено 24 августа 2018 года .
  38. ^ " ' Отключить SMT / Hyperthreading во всех BIOS Intel' - MARC" . marc.info . Проверено 24 августа 2018 года .
  39. Гринберг, Энди (14 мая 2019 г.). «Meltdown Redux: ошибка Intel позволяет хакерам выкачивать секреты с миллионов компьютеров» . ПРОВОДНОЙ . Дата обращения 14 мая 2019 .

Внешние ссылки [ править ]

  • Intel демонстрирует революционный дизайн процессоров , пресс-релиз от августа 2001 г.
  • Intel - общий обзор Hyper-Threading
  • Гиперпоточность в журнале MSDN Magazine
  • вводная статья от Ars Technica
  • Номер патента США 4847755
  • Мером, Конро, Вудкрест теряют HyperThreading
  • ZDnet: Hyperthreading снижает производительность сервера, говорят разработчики
  • ARM не фанат HyperThreading - описывает проблемы решений SMT
  • Влияние Hyper-Threading на использование ресурсов процессора в производственных приложениях