~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ B0A2CAF33694953375C6C423C3E2E530__1708326780 ✰
Заголовок документа оригинал.:
✰ Simultaneous multithreading - Wikipedia ✰
Заголовок документа перевод.:
✰ Одновременная многопоточность — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Simultaneous_multithreading ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/b0/30/b0a2caf33694953375c6c423c3e2e530.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/b0/30/b0a2caf33694953375c6c423c3e2e530__translat.html ✰
Дата и время сохранения документа:
✰ 20.06.2024 18:26:54 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 19 February 2024, at 10:13 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Одновременная многопоточность — Википедия Jump to content

Одновременная многопоточность

Из Википедии, бесплатной энциклопедии

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

Подробности [ править ]

Термин многопоточность неоднозначен, поскольку на одном ядре ЦП может одновременно выполняться не только несколько потоков, но и несколько задач (с разными таблицами страниц , разными сегментами состояния задач , разными кольцами защиты , разными разрешениями ввода-вывода и т. д.). Хотя они работают на одном ядре, они полностью отделены друг от друга. Многопоточность по своей концепции аналогична вытесняющей многозадачности, но в современных суперскалярных процессорах реализуется на уровне потока выполнения.

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

Поскольку это неизбежно увеличивает конфликты по поводу общих ресурсов, измерение или согласование его эффективности может оказаться затруднительным. Тем не менее, измерения энергоэффективности SMT с параллельными собственными и управляемыми рабочими нагрузками в исторических реализациях Intel SMT ( гиперпоточность ) от 130 до 32 нм показали, что в реализациях 45 нм и 32 нм SMT чрезвычайно энергоэффективен даже при упорядоченном Atom. процессоры. [2] В современных системах SMT эффективно использует параллелизм с очень небольшими дополнительными динамическими возможностями. То есть, даже когда прирост производительности минимален, экономия энергопотребления может быть значительной. [2] Некоторые исследователи [ ВОЗ? ] показали, что дополнительные потоки можно активно использовать для заполнения общего ресурса , такого как кэш, для повышения производительности другого отдельного потока, и утверждают, что это показывает, что SMT не только повышает эффективность. Другие [ ВОЗ? ] используйте SMT для обеспечения избыточных вычислений для определенного уровня обнаружения и восстановления ошибок.

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

Таксономия [ править ]

При проектировании процессоров есть два способа повысить параллелизм внутри кристалла с меньшими требованиями к ресурсам: один — это суперскалярный метод, который пытается использовать параллелизм на уровне команд (ILP); другой — многопоточный подход, использующий параллелизм на уровне потоков (TLP).

Суперскалярность означает одновременное выполнение нескольких инструкций, тогда как параллелизм на уровне потоков (TLP) одновременно выполняет инструкции из нескольких потоков внутри одного процессорного чипа. Существует множество способов поддержки более одного потока внутри чипа, а именно:

  • Чередованная многопоточность: чередующаяся выдача нескольких инструкций из разных потоков, также называемая временной многопоточностью . Его можно разделить на мелкозернистую многопоточность или крупнозернистую многопоточность в зависимости от частоты чередующихся проблем. Детализированная многопоточность, такая как в бочковом процессоре , выдает инструкции для разных потоков после каждого цикла, тогда как крупнодетализированная многопоточность переключается на выдачу инструкций из другого потока только тогда, когда текущий выполняющийся поток вызывает некоторые события с большой задержкой (например, ошибка страницы и т. д.). ). Грубая многопоточность более распространена для меньшего переключения контекста между потоками. Например, процессор Intel Montecito использует крупномасштабную многопоточность, а процессор Sun UltraSPARC T1 использует мелкомодулированную многопоточность. Для тех процессоров, которые имеют только один конвейер на ядро, чередующаяся многопоточность является единственным возможным способом, поскольку она может выдавать не более одной инструкции за цикл.
  • Одновременная многопоточность (SMT): выполнение нескольких инструкций из нескольких потоков за один цикл. Для этого процессор должен быть суперскалярным.
  • Многопроцессорность на уровне чипа (CMP или многоядерность ): объединяет два или более процессора в один чип, каждый из которых выполняет потоки независимо.
  • Любая комбинация многопоточности/SMT/CMP.

Ключевым фактором для их различения является рассмотрение того, сколько инструкций процессор может выдать за один цикл и из скольких потоков поступают эти инструкции. Например, UltraSPARC T1 от Sun Microsystems — это многоядерный процессор, сочетающий технологию мелкозернистой многопоточности вместо одновременной многопоточности, поскольку каждое ядро ​​может выполнять только одну инструкцию за раз.

Исторические реализации [ править ]

Хотя многопоточные процессоры существуют с 1950-х годов, одновременная многопоточность была впервые исследована IBM в 1968 году в рамках проекта ACS-360 . [3] Первым крупным коммерческим микропроцессором, разработанным с использованием SMT, был Alpha 21464 (EV8). Этот микропроцессор был разработан DEC совместно с Дином Таллсеном из Калифорнийского университета в Сан-Диего, а также Сьюзен Эггерс и Генри Леви из Вашингтонского университета. Микропроцессор так и не был выпущен, поскольку производство линейки микропроцессоров Alpha было прекращено незадолго до того, как HP приобрела Compaq , которая, в свою очередь, приобрела DEC . Работа Дина Таллсена также использовалась для разработки гиперпоточных версий микропроцессоров Intel Pentium 4, таких как «Northwood» и «Prescott».

Современные коммерческие реализации [ править ]

Intel . Pentium 4 был первым современным процессором для настольных ПК, реализовавшим одновременную многопоточность, начиная с модели с тактовой частотой 3,06 ГГц, выпущенной в 2002 году и с тех пор внедренной в ряд их процессоров Intel называет эту функциональность технологией Hyper-Threading и предоставляет базовый двухпоточный механизм SMT. Intel заявляет об улучшении скорости до 30% [4] по сравнению с идентичным в остальном процессором Pentium 4, не поддерживающим SMT. Наблюдаемое улучшение производительности во многом зависит от приложения; однако при запуске двух программ, требующих полного внимания процессора, может показаться, что одна или обе программы немного замедляются при включении Hyper-threading. [5] Это происходит из-за того, что система воспроизведения Pentium 4 связывает ценные ресурсы выполнения, увеличивает конкуренцию за такие ресурсы, как полоса пропускания, кэши, TLB , записи в буфере переупорядочения и выравнивает ресурсы процессора между двумя программами, что добавляет различное количество время исполнения. Ядро Pentium 4 Prescott получило очередь воспроизведения, что сокращает время выполнения, необходимое для системы воспроизведения. Этого было достаточно, чтобы полностью преодолеть падение производительности. [6]

Новейшие компании Imagination Technologies разработки архитектуры MIPS включают систему SMT, известную как «MIPS MT». [7] MIPS MT обеспечивает как тяжелые виртуальные элементы обработки, так и более легкие аппаратные микропотоки. RMI , стартап из Купертино, является первым поставщиком MIPS, предоставившим процессор SOC на базе восьми ядер, каждое из которых выполняет четыре потока. Потоки могут выполняться в мелкозернистом режиме, где в каждом цикле может выполняться другой поток. Потокам также можно назначать приоритеты. Процессоры Imagination Technologies MIPS имеют два потока SMT на ядро.

IBM Blue Gene /Q имеет 4-сторонний SMT.

IBM POWER5 , анонсированный в мае 2004 года, поставляется либо в виде двухъядерного двухкристального модуля (DCM), либо в виде четырехъядерного или восьмиядерного многокристального модуля (MCM), каждое ядро ​​которого включает двухпоточный механизм SMT. Реализация IBM более сложна, чем предыдущие, поскольку она может назначать разный приоритет различным потокам, является более детальной, а механизм SMT можно включать и выключать динамически, чтобы лучше выполнять те рабочие нагрузки, в которых используется SMT. процессор не увеличит производительность. Это вторая реализация IBM общедоступной аппаратной многопоточности. В 2010 году IBM выпустила системы на базе процессора POWER7 с восемью ядрами, каждое из которых имеет четыре одновременных интеллектуальных потока. Это переключает режим потоков между одним потоком, двумя потоками или четырьмя потоками в зависимости от количества потоков процесса, запланированных в данный момент. Это оптимизирует использование ядра для минимального времени отклика или максимальной пропускной способности. IBM POWER8 имеет 8 интеллектуальных одновременных потоков на ядро ​​(SMT8).

IBM Z, начиная с процессора z13 в 2013 году, имеет два потока на ядро ​​(SMT-2).

Хотя многие люди сообщали, что UltraSPARC T1 от Sun Microsystems (известный как «Niagara» до его выпуска 14 ноября 2005 года) и ныне несуществующий процессор под кодовым названием « Rock » (первоначально анонсированный в 2005 году, но после многих задержек, отмененных в 2010 году) являются реализациями SPARC. почти полностью сосредоточившись на использовании методов SMT и CMP, Niagara фактически не использует SMT. Sun называет эти комбинированные подходы «CMT», а общую концепцию — «Пропускными вычислениями». У Niagara восемь ядер, но каждое ядро ​​имеет только один конвейер, поэтому фактически он использует мелкозернистую многопоточность. В отличие от SMT, где инструкции из нескольких потоков совместно используют окно выдачи каждый цикл, процессор использует политику циклического перебора для выдачи инструкций из следующего активного потока в каждом цикле. Это делает его более похожим на бочковый процессор . Процессор Rock от Sun Microsystems отличается: он имеет более сложные ядра, имеющие более одного конвейера.

Корпорация Oracle SPARC T3 имеет восемь мелкозернистых потоков на ядро; SPARC T4, SPARC T5, SPARC M5, M6 и M7 имеют восемь мелкозернистых потоков на ядро, два из которых могут выполняться одновременно.

Fujitsu SPARC64 VI имеет крупнозернистую вертикальную многопоточность (VMT), а SPARC VII и более новые версии имеют двустороннюю SMT.

Intel Itanium Montecito использует крупнозернистую многопоточность, а Tukwila и более новые модели используют 2-way SMT (с двухдоменной многопоточностью).

Intel Xeon Phi имеет 4-поточный SMT (с многопоточностью с временным мультиплексированием) с аппаратными потоками, которые нельзя отключить, в отличие от обычного Hyper-Threading. [8] Intel Atom , впервые выпущенный в 2008 году, является первым продуктом Intel, поддерживающим двусторонний SMT (продаваемый как Hyper-Threading) без поддержки переупорядочения инструкций, спекулятивного выполнения или переименования регистров. Intel повторно представила Hyper-Threading в микроархитектуре Nehalem после ее отсутствия в микроархитектуре Core .

Микроархитектура AMD Bulldozer FlexFPU и общий кэш L2 являются многопоточными, но целочисленные ядра в модуле являются однопоточными, поэтому это лишь частичная реализация SMT. [9] [10]

AMD Микроархитектура Zen имеет двусторонний SMT.

VISC-архитектура [11] [12] [13] [14] использует уровень виртуального программного обеспечения (уровень трансляции) для отправки одного потока инструкций на глобальный внешний интерфейс , который разбивает инструкции на виртуальные аппаратные потоки , которые затем отправляются на отдельные виртуальные ядра. Эти виртуальные ядра затем могут отправлять их в доступные ресурсы на любом из физических ядер. Несколько виртуальных ядер могут помещать потоклеты в буфер переупорядочения одного физического ядра, что может одновременно разделять частичные инструкции и данные из нескольких потоков через порты выполнения. Каждое виртуальное ядро ​​отслеживает положение относительного выхода. Эта форма многопоточности может повысить однопоточную производительность, позволяя одному потоку использовать все ресурсы ЦП. Распределение ресурсов происходит динамично с задержкой, близкой к одному циклу (1–4 цикла в зависимости от изменения распределения в зависимости от потребностей отдельных приложений). Следовательно, если два виртуальных ядра конкурируют за ресурсы, существуют соответствующие алгоритмы для определения какие ресурсы и куда выделить.

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

В зависимости от конструкции и архитектуры процессора одновременная многопоточность может снизить производительность, если какой-либо из общих ресурсов является узким местом для производительности. [15] Критики утверждают, что возлагать на разработчиков программного обеспечения значительную нагрузку — они должны проверять, полезна или плоха одновременная многопоточность для их приложения в различных ситуациях, и вставлять дополнительную логику для ее отключения, если она снижает производительность. В современных операционных системах отсутствуют удобные вызовы API для этой цели и для предотвращения использования ресурсов друг у друга процессами с разным приоритетом. [16]

Существует также проблема безопасности, связанная с некоторыми реализациями одновременной многопоточности. Гиперпоточность Intel в процессорах на базе NetBurst имеет уязвимость, благодаря которой одно приложение может украсть криптографический ключ у другого приложения, работающего на том же процессоре, путем мониторинга использования его кэша. [17] Существуют также сложные эксплойты машинного обучения для реализации HT, которые были объяснены на Black Hat 2018 . [18]

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

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

  1. ^ «Первая фотонная ткань с прямым соединением сеток» (PDF) . Архивировано из оригинала (PDF) 8 февраля 2024 г. Проверено 8 февраля 2024 г.
  2. ^ Перейти обратно: а б АСПЛОС'11
  3. ^ Смотерман, Марк (25 мая 2011 г.). «Конец проекта IBM ACS» . Школа вычислительной техники Университета Клемсона . Проверено 19 января 2013 г.
  4. ^ Марр, Дебора (14 февраля 2002 г.). «Архитектура и микроархитектура технологии Hyper-Threading» (PDF) . Журнал технологий Intel . 6 (1): 4. дои : 10.1535/itj . Архивировано из оригинала (PDF) 24 октября 2016 года . Проверено 25 сентября 2015 г.
  5. ^ «Оценка производительности процессора Pentium 4 2.8 и 3.0» . Архивировано из оригинала 24 февраля 2021 г. Проверено 22 апреля 2011 г.
  6. ^ «Воспроизведение: неизвестные функции ядра NetBurst. Страница 15» . Повтор: Неизвестные особенности ядра NetBurst . xbitlabs.com. Архивировано из оригинала 14 мая 2011 года . Проверено 24 апреля 2011 г.
  7. ^ «Описание MIPS MT ASE» .
  8. ^ Барт, Микаэла; Бюклинг, Микко; Илиева, Невена; Сааринен, Сами; Шлифаке, Майкл (18 февраля 2014 г.). Вайнберг, Волкер (ред.). «Руководство по передовому опыту Intel Xeon Phi v1.1» . Партнерство в области передовых вычислений в Европе. Архивировано из оригинала 3 мая 2017 года . Проверено 22 ноября 2016 г.
  9. ^ «Многопоточность модулей семейства AMD Bulldozer» . wccftech. Июль 2013 г. Архивировано из оригинала 17 октября 2013 г. Проверено 22 июля 2013 г.
  10. ^ Халфакри, Гарет (28 октября 2010 г.). «AMD представляет Flex FP» . бит-тек.
  11. ^ «Soft Machines представляет архитектуру виртуального чипа VISC | bit-tech.net» .
  12. ^ Катресс, Ян (12 февраля 2016 г.). «Изучение архитектуры мягких машин: элемент VISC для улучшения IPC» . АнандТех.
  13. ^ «Раскрыта производительность процессоров следующего поколения» . VR-мир. 4 февраля 2016 г. Архивировано из оригинала 13 января 2017 г.
  14. ^ «Архитектурные волны» . Мягкие машины. 2017. Архивировано из оригинала 29 марта 2017 г.
  15. ^ «Воспроизведение: неизвестные функции ядра NetBurst. Страница 15» . Повтор: Неизвестные особенности ядра NetBurst . xbitlabs.com. Архивировано из оригинала 14 мая 2011 года . Проверено 24 апреля 2011 г.
  16. ^ Насколько хороша гиперпоточность?
  17. ^ Гиперпоточность считается вредной
  18. ^ TLBleed: когда защиты кеша процессора недостаточно
Общий

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

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: B0A2CAF33694953375C6C423C3E2E530__1708326780
URL1:https://en.wikipedia.org/wiki/Simultaneous_multithreading
Заголовок, (Title) документа по адресу, URL1:
Simultaneous multithreading - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)