Interested Article - Одновременная многопоточность
- 2020-03-27
- 1
Одновременная многопоточность ( англ. Simultaneous Multithreading — SMT ) — одна из двух главных форм многопоточности , которая может быть реализована в процессорах аппаратно. Второй формой является временная многопоточность . Технология одновременной многопоточности позволяет исполнять инструкции из нескольких независимых потоков выполнения на множестве функциональных модулей суперскалярного микропроцессора в одном цикле.
История и реализации
Впервые одновременная многопоточность была представлена в исследовательских работах Дина Таллсена (Dean Tullsen) в 1995 г. ( Калифорнийский университет в Сан-Диего ) .
Первым процессором с реализацией одновременной многопоточности мог бы стать микропроцессор Alpha 21464 компании DEC , который был объявлен в 1999 году. Процессор разрабатывался командой под руководством главного архитектора . Процессор был одноядерным, суперскалярным с 8 конвейерами, имел 4 комплекта регистров для переключения контекста и мог потенциально выполнять 4 потока одновременно. 2-кратное увеличение производительности получалось всего лишь за счет 10%-ного увеличения количества логических элементов. Во многом процессор воплощал предложения и подходы, изложенные в работах Дина Таллсена, соавтором чьих работ выступали некоторые члены команды «Alpha» (Джоэл Емер и Ребекка Штамм (Rebecca Stamm)). Однако Alpha 21464 так и не появился на рынке, он пал жертвой корпоративных слияний и поглощений .
Таким образом первой реализацией одновременной многопоточности на рынке стала технология Hyper-threading компании Intel, представленная в 2002 г. в серверных процессорах Xeon и в Pentium 4 (микроархитектура NetBurst ).
Когда компания Intel обратилась к многоядерной архитектуре микропроцессоров, ради упрощения дизайна она не перенесла технологию Hyper-threading на новые процессоры. В результате первым многоядерным процессором с одновременной многопоточностью на каждом ядре стал процессор IBM POWER5 (2004 г.) . В конце концов Intel вернула Hyper-threading в свои процессоры в архитектуре Nehalem (2008 г.) .
Критика
В 2021 году, группа исследователей, включающая Грацский технический университет , технологический институт Джорджии и некоммерческий исследовательский центр «Lamarr Security Research», обнаружили уязвимость в технологии SMT, реализованной в процессорах AMD с архитектурами Zen , Zen 2 и Zen 3 . Уязвимость, получившая название SQUIP (Scheduler Queue Usage via Interference Probing — использование очереди планировщика через анализ помех ), позволяет злоумышленникам получать доступ к конфиденциальным данным, о чем, в декабре 2021 года, было сообщено AMD. В ходе демонстрации уязвимости, исследователи «взломали» ключ шифрования RSA-4096 . AMD, присвоив уязвимости идентификатор CVE-2021-46778 и «средний» рейтинг важности, в августе 2022 года опубликовала бюллетень с рекомендациями смягчения уязвимости .
Сравнение с другими технологиями
Производительность суперскалярных микропроцессоров увеличивается за счёт одновременного исполнения нескольких инструкций в одном цикле, однако она ограничивается зависимостями между инструкциями (которые ограничивают возможности параллельного исполнения, в результате чего в цикле может исполняться не максимально возможное количество инструкций) и операциями с большой задержкой внутри одного потока выполнения (которые приводят к появлению циклов, в которых не исполняется ни одна инструкция — pipeline stalls ).
Архитектуры с аппаратной многопоточностью выполняют несколько потоков с возможностью быстрого переключения контекста между ними. Такая «традиционная» многопоточность скрывает задержки памяти и функциональных модулей (снижая количество «пустых» циклов), хотя в каждом конкретном цикле исполняются инструкции из одного потока. Однако увеличение количества одновременно исполняемых инструкций снижает возможности традиционной многопоточности.
Одновременная многопоточность объединяет параллельное исполнение инструкций суперскалярной архитектуры с аппаратной многопоточностью. Применение одновременной многопоточности, благодаря динамическому распределению функциональных модулей процессора между потоками, увеличивает использование процессора при наличии задержек памяти и ограниченной возможности параллельного исполнения инструкций внутри потока.
Многоядерные микропроцессоры по своей организации наиболее близки к микропроцессорам с одновременной многопоточностью — имеют несколько наборов регистров, несколько функциональных модулей и суперскалярность каждого из ядер. Главное отличие между ними заключается в распределении ресурсов — в многоядерном процессоре каждый поток получает фиксированное количество функциональных модулей процессора, тогда как в процессоре с одновременной многопоточностью распределение модулей изменяется в каждом цикле. Вследствие этого процессоры с одновременной многопоточностью показывают большую производительность при максимальной загрузке потоками, а при снижении количества потоков производительность падает медленней, по сравнению с многоядерным процессором.
Примечания
- . Дата обращения: 21 ноября 2016. 21 ноября 2016 года.
- . Дата обращения: 31 мая 2017. 1 июня 2017 года.
- . Дата обращения: 4 июня 2017. 9 июня 2017 года.
- см. работу 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
- докторская диссертация Simultaneous Multithreading, D.M. Tullsen, Ph.D. Thesis, University of Washington, August, 1996.
- , p. 72.
- , p. 74.
- , p. 34.
- , p. 81.
- Anton Shilov. (англ.) . Tom’s Hardware (11 августа 2022). Дата обращения: 12 августа 2022.
- Владимир Фетисов. . 3DNews (11 августа 2022). Дата обращения: 12 августа 2022. 11 августа 2022 года.
- (англ.) . AMD (8 сентября 2022). Дата обращения: 12 августа 2022. 12 августа 2022 года.
Литература
- 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. (англ.) (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 — диисертация на тему поддержки одновременной многопоточности в разных операционных системах (англ.)
- 2020-03-27
- 1