WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте

Одновременная многопоточность[1] (англ. Simultaneous Multithreading — SMT) — одна из двух главных форм многопоточности, которая может быть реализована в процессорах аппаратно. Второй формой является временная многопоточность. Технология одновременной многопоточности позволяет исполнять инструкции из нескольких независимых потоков выполнения на множестве функциональных модулей суперскалярного микропроцессора в одном цикле.

Сравнение с другими технологиями

Производительность суперскалярных микропроцессоров увеличивается за счёт одновременного исполнения нескольких инструкций в одном цикле, однако она ограничивается зависимостями между инструкциями (которые ограничивают возможности параллельного исполнения, в результате чего в цикле может исполняться не максимально возможное количество инструкций) и операциями с большой задержкой внутри одного потока выполнения (которые приводят к появлению циклов, в которых не исполняется ни одна инструкция — pipeline stalls).

Архитектуры с аппаратной многопоточностью выполняют несколько потоков с возможностью быстрого переключения контекста между ними. Такая «традиционная» многопоточность скрывает задержки памяти и функциональных модулей (снижая количество «пустых» циклов), хотя в каждом конкретном цикле исполняются инструкции из одного потока. Однако увеличение количества одновременно исполняемых инструкций снижает возможности традиционной многопоточности.

Одновременная многопоточность объединяет параллельное исполнение инструкций суперскалярной архитектуры с аппаратной многопоточностью. Применение одновременной многопоточности, благодаря динамическому распределению функциональных модулей процессора между потоками, увеличивает использование процессора при наличии задержек памяти и ограниченной возможности параллельного исполнения инструкций внутри потока.

Иллюстрация одновременной многопоточности: 4 потока исполняются одновременно на 4-конвейерном микропроцессоре

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

История и реализации

Впервые одновременная многопоточность была представлена в исследовательских работах Дина Таллсена (Dean Tullsen) в 1995 г. (Калифорнийский университет в Сан-Диего)[2][3][4][5].

Первым процессором с реализацией одновременной многопоточности мог бы стать микропроцессор Alpha 21464 компании DEC, который был объявлен в 1999 году. Процессор разрабатывался командой под руководством главного архитектора Джоэла Эмера (англ.). Процессор был одноядерным, суперскалярным с 8 конвейерами, имел 4 комплекта регистров для переключения контекста и мог потенциально выполнять 4 потока одновременно. 2-кратное увеличение производительности получалось всего лишь за счет 10%-ного увеличения количества логических элементов. Во многом процессор воплощал предложения и подходы, изложенные в работах Дина Таллсена, соавтором чьих работ выступали некоторые члены команды «Alpha» (Джоэл Емер и Ребекка Штамм (Rebecca Stamm)). Однако Alpha 21464 так и не появился на рынке, он пал жертвой корпоративных слияний и поглощений[6].

Таким образом первой реализацией одновременной многопоточности на рынке стала технология Hyper-threading компании Intel, представленная в 2002 г. в серверных процессорах Xeon и в Pentium 4[7] (микроархитектура NetBurst).

Когда компания Intel обратилась к многоядерной архитектуре микропроцессоров, ради упрощения дизайна она не перенесла технологию Hyper-threading на новые процессоры. В результате первым многоядерным процессором с одновременной многопоточностью на каждом ядре стал процессор IBM POWER5 (2004 г.)[8]. В конце концов Intel вернула Hyper-threading в свои процессоры в архитектуре Nehalem (2008 г.)[9].

Примечания

  1. ↑ Два в одном //Computerra (09.11.2001)
  2. ↑ Simultaneous Multithreading Project
  3. ↑ Dean Tullsen’s Publications
  4. ↑ см. работу Dean M.Tullsen, Susan J. Eggers, and Henry M.Levy. Simultaneous multithreading: Maximizing on-chip parallelism. In Proceedings of the International Symposium on Computer Architecture, June 1995
  5. ↑ докторская диссертация Simultaneous Multithreading, D.M. Tullsen, Ph.D. Thesis, University of Washington, August, 1996.
  6. ↑ NemirovskyTullsen, 2013, p. 72.
  7. ↑ NemirovskyTullsen, 2013, p. 74.
  8. ↑ NemirovskyTullsen, 2013, p. 34.
  9. ↑ NemirovskyTullsen, 2013, p. 81.

Литература

  • Jurij Silc, Borut Robic, Theo Ungerer. Processor Architecture - From Dataflow to Superscalar and Beyond. — Springer, 1999. — ISBN 3540647988. (англ.) — Глава 6.4: Simultaneous Multithreading, стр.281-293
  • Mario Nemirovsky, Dean M. Tullsen. Multithreading Architecture. — Morgan and Claypool Publishers, 2013. — ISBN 1608458555. (англ.)

Ссылки

  • Dean M. Tullsen, Susan J. Eggers, Henry M. Levy. Simultaneous Multithreading: Maximizing On-Chip Parallelism (англ.) (PostScript). Материалы 22-го ежегодного симпозиума по компьютерной архитектуре. University of Washington (1995). Проверено 20 ноября 2012. Архивировано 23 января 2013 года.
  • (2005-02) Operating system support for simultaneous multithreaded processors — James R. Bulpin — UCAM-CL-TR-619 — диисертация на тему поддержки одновременной многопоточности в разных операционных системах (англ.)

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2026
WikiSort.ru - проект по пересортировке и дополнению контента Википедии