Jump to content

Гиперпоточность

(Перенаправлено с технологии Hyper-Threading )

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Intel реализовала гиперпоточность на процессоре с архитектурой x86 в 2002 году с помощью Xeon на базе Foster MP . В том же году он был также включен в процессор Pentium 4 на базе Northwood с тактовой частотой 3,06 ГГц, а затем с тех пор оставался в качестве функции в каждом процессоре 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 в то время). В Windows 2000 SP3 и Windows XP SP1 добавлена ​​поддержка Hyper-Threading.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. ^ Стоукс, Джон (3 октября 2002 г.). «Введение в многопоточность, суперпоточность и гиперпоточность» . Арс Техника . стр. 2–3 . Проверено 30 сентября 2015 г.
  2. ^ Дебора Т. Марр; Фрэнк Биннс; Дэвид Л. Хилл; Гленн Хинтон; Дэвид А. Куфати; Дж. Алан Миллер; Майкл Аптон (12 декабря 2006 г.). «Архитектура и микроархитектура технологии Hyper-Threading» (PDF) . cs.sfu.ca. ​Архивировано из оригинала (PDF) 23 сентября 2015 года . Проверено 30 сентября 2015 г.
  3. ^ Ананд Лал Шимпи (5 октября 2012 г.). «Внешний интерфейс Haswell – анализ архитектуры Intel Haswell» . АнандТех . Проверено 30 сентября 2015 г.
  4. ^ «Процессор Intel Pentium 4 3,06 ГГц с технологией Hyper-Threading: убить двух зайцев одним камнем». X-битные лаборатории. Архивировано из оригинала 31 мая 2014 года . Проверено 4 июня 2014 г.
  5. ^ «Технология Intel® Hyper-Threading (Технология Intel® HT)» . Интел . Проверено 24 октября 2021 г.
  6. ^ Список взаимозаменяемых компонентов, необходимых 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 (профессиональная и персональная версии). Персональные версии)
  7. ^ «Поиск спецификаций процессоров Intel: SL6WK» .
  8. Перейти обратно: Перейти обратно: а б Томадакис, Майкл Э. (17 марта 2011 г.). «Архитектура процессора Nehalem и платформ Nehalem-EP SMP» (PDF) . Техасский университет A&M. п. 23. Архивировано из оригинала (PDF) 11 августа 2014 года . Проверено 21 марта 2014 г.
  9. ^ Хеннесси, Джон Л.; Паттерсон, Дэвид А. (7 декабря 2017 г.). Компьютерная архитектура: количественный подход . Асанович, Крсте , Бакос, Джейсон Д., Колвелл, Роберт П., Бхаттачарджи, Абхишек, 1984-, Конте, Томас М., 1964- (Шестое изд.). Кембридж, Массачусетс. ISBN  978-0128119051 . OCLC   983459758 . {{cite book}}: CS1 maint: отсутствует местоположение издателя ( ссылка )
  10. ^ «Мультиминипроцессорная система, реализованная посредством конвейерной обработки», Леонард Шар и Эдвард Дэвидсон, IEEE Computer, февраль 1974 г., стр. 42-51, том. 7 https://www.computer.org/csdl/magazine/co/1974/02/4251/13rRUyoyhIt
  11. ^ Окин, Кеннет (1 ноября 1994 г.), Патент США: 5361337 - Способ и устройство для быстрого переключения процессов в компьютерной системе , заархивировано из оригинала 21 сентября 2015 г. , получено 24 мая 2016 г.
  12. ^ «Экстремальные игры с процессором Intel® Core™ i7 Extreme Edition» . www.intel.com . Архивировано из оригинала 1 декабря 2008 года.
  13. ^ «Микроархитектура процессора Intel® Atom™» . Intel.com. 18 марта 2011 года . Проверено 5 апреля 2011 г.
  14. ^ «Intel раскрывает новые возможности Itanium Poulson» . Tomshardware.com. 24 августа 2011 года . Проверено 2 июля 2017 г.
  15. ^ «Страница индекса серверных процессоров» . Intel.com. 18 марта 2011 года . Проверено 5 апреля 2011 г.
  16. ^ «Процессор Intel Xeon серии 5500» . Intel.com . Проверено 5 апреля 2011 г.
  17. ^ «Технология Hyper-Threading» (PDF) . Журнал технологий Intel . 06 (1). 14 февраля 2012 г. ISSN   1535-766X . Архивировано из оригинала (PDF) 19 октября 2012 года.
  18. ^ «Как определить эффективность технологии Hyper-Threading в приложении» . программное обеспечение.intel.com . 28 апреля 2011 г. Архивировано из оригинала 2 февраля 2010 г.
  19. ^ «Резюме: в некоторых случаях P4 3.0HT может даже превзойти версию с частотой 3,6 ГГц: один процессор в двойной работе: P4 3,06 ГГц с технологией Hyper-Threading» . Tomshardware.com. 14 ноября 2002 года . Проверено 5 апреля 2011 г.
  20. ^ Тау Ленг; Ризван Али; Дженвэй Се; Кристофер Стэнтон (ноябрь 2002 г.). «Исследование Hyper-Threading в высокопроизводительных вычислительных кластерах» (PDF) . Делл. п. 4 . Проверено 12 ноября 2012 г.
  21. Перейти обратно: Перейти обратно: а б Джоэл Хруска (24 июля 2012 г.). «Максимальная производительность: сравнение эффектов Hyper-Threading и обновлений программного обеспечения» . ExtremeTech.com . Проверено 2 марта 2015 г.
  22. ^ «Оценка производительности процессора — Тест — Pentium 4 2.8 и 3.0» . user.telenet.be . Архивировано из оригинала 24 февраля 2021 года . Проверено 12 апреля 2011 г.
  23. ^ «Воспроизведение: неизвестные функции ядра NetBurst. Страница 15» . Повтор: Неизвестные особенности ядра NetBurst . Xbitlabs. Архивировано из оригинала 14 мая 2011 года . Проверено 24 апреля 2011 г.
  24. ^ Валлес, Антонио (20 ноября 2009 г.). «Анализ производительности технологии Intel Hyper-Threading» . Интел . Архивировано из оригинала 17 февраля 2015 года . Проверено 26 февраля 2015 г.
  25. ^ «Настройка и производительность сети» . www.calomel.org . 12 ноября 2013 года . Проверено 26 февраля 2015 г.
  26. ^ «Документация по ядру Linux: масштабирование в сетевом стеке Linux» . ядро.орг . 1 декабря 2014 года . Проверено 2 марта 2015 г. Загрузку каждого процессора можно наблюдать с помощью утилиты mpstat, но учтите, что на процессорах с гиперпоточностью (HT) каждый гиперпоток представлен как отдельный процессор. Что касается обработки прерываний, HT не показал никаких преимуществ в первоначальных тестах, поэтому ограничьте количество очередей количеством ядер ЦП в системе.
  27. ^ «Технология Hyper-Threading — операционные системы, включающие оптимизацию для технологии Hyper-Threading» . Intel.com. 19 сентября 2011 года . Проверено 29 февраля 2012 г.
  28. ^ Устойчивые практики: концепции, методологии, инструменты и приложения . Ассоциация управления информационными ресурсами. Декабрь 2013. с. 666. ИСБН  9781466648524 .
  29. ^ «ARM не фанат HyperThreading» . theinquirer.net. 2 августа 2006 г. Архивировано из оригинала 6 сентября 2009 г. Проверено 29 февраля 2012 г. {{cite web}}: CS1 maint: неподходящий URL ( ссылка )
  30. ^ Ермолюк, Том (13 октября 2010 г.). «О MIPS и MIPS | ТОП500 суперкомпьютерных сайтов» . Top500.org . Архивировано из оригинала 13 июня 2011 года . Проверено 5 апреля 2011 г.
  31. ^ «ARM выпускает первое 64-битное процессорное ядро ​​для серверов и смартфонов» . Форум технического дизайна . 30 октября 2012 г.
  32. ^ «Arm выпускает первое ядро ​​Cortex с поддержкой SMT | bit-tech.net» . bit-tech.net . Проверено 2 декабря 2023 г.
  33. ^ Рик Мыслевски (8 мая 2013 г.). «В глубине первого жизнеспособного мобильного процессора Intel: Silvermont» . Регистр . Проверено 13 января 2014 г.
  34. ^ Чиргвин, Ричард (25 июня 2017 г.). «Процессоры Intel Skylake и Kaby Lake имеют неприятную ошибку гиперпоточности» . Регистр . Проверено 4 июля 2017 г.
  35. ^ «Skylake, чипы Kaby Lake имеют сбой при включенной технологии Hyperthreading» . Арс Техника . 26 июня 2017 года . Проверено 25 ноября 2017 г.
  36. ^ Катресс, Ян (23 апреля 2019 г.). «Процессоры Intel Core 9-го поколения: анонсированы все процессоры мощностью 45 Вт для настольных и мобильных ПК» . АнандТех .
  37. ^ Армасу, Люциан (14 мая 2019 г.). «Новый спектральный дефект Intel затронул чипы, выпущенные с 2008 года» . Аппаратное обеспечение Тома . Архивировано из оригинала 4 августа 2019 года.
  38. ^ Персиваль, Колин (14 мая 2005 г.). «Кэш пропал ради развлечения и прибыли» (PDF) . Daemonology.net . Проверено 14 июня 2016 г.
  39. ^ «OpenBSD отключает технологию Hyper-Threading от Intel из-за опасений утечки данных процессора» . Проверено 24 августа 2018 г.
  40. ^ « Отключить SMT/Hyperthreading во всех BIOS Intel» — MARC» . marc.info . Проверено 24 августа 2018 г.
  41. ^ Гринберг, Энди (14 мая 2019 г.). «Meltdown Redux: недостаток Intel позволяет хакерам выкачивать секреты из миллионов компьютеров» . ПРОВОДНОЙ . Проверено 14 мая 2019 г.

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

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: feceba185f703c3a6873a35fbc538f64__1713233940
URL1:https://arc.ask3.ru/arc/aa/fe/64/feceba185f703c3a6873a35fbc538f64.html
Заголовок, (Title) документа по адресу, URL1:
Hyper-threading - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)