Simultánní multithreading

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 17. března 2022; kontroly vyžadují 2 úpravy .

Simultaneous multithreading [1] ( angl.  Simultaneous Multithreading  - SMT ) je jednou ze dvou hlavních forem multithreadingu , které lze hardwarově implementovat v procesorech. Druhou formou je dočasný multithreading . Technologie simultánního multithreadingu umožňuje provádět instrukce z několika nezávislých vláken provádění na sadě funkčních modulů superskalárního mikroprocesoru v jednom cyklu.

Historie a implementace

Simultánní multithreading byl poprvé představen ve výzkumných pracích Deana Tullsena v roce 1995 ( UC San Diego ) [2] [3] [4] [5] .

Prvním procesorem, který implementuje simultánní multithreading, by byl mikroprocesor Alpha 21464 společnosti DEC , který byl oznámen v roce 1999. Procesor byl vyvinut týmem vedeným hlavním architektem Joelem Emerem . Procesor byl jednojádrový, superskalární s 8 pipelines, měl 4 sady registrů pro přepínání kontextu a mohl potenciálně provádět 4 vlákna současně. Bylo dosaženo 2x zvýšení výkonu s pouhým 10% zvýšením počtu logických prvků. Zpracovatel v mnoha ohledech ztělesnil návrhy a přístupy nastíněné v práci Deana Tallsena, na jehož práci se podíleli někteří členové týmu Alpha (Joel Emer a Rebecca Stamm). Alpha 21464 se však nikdy nedostala na trh, stala se obětí korporátních fúzí a akvizic [6] .

První implementací simultánního multithreadingu na trhu byla tedy technologie Intel Hyper-threading , představená v roce 2002 v serverových procesorech Xeon a Pentiu 4 [7] ( mikroarchitektura NetBurst ).

Když Intel přešel na architekturu vícejádrových mikroprocesorů, neportoval technologii hyper-threading na nové procesory, aby zjednodušil návrh. V důsledku toho byl prvním vícejádrovým procesorem se současným multi-threadingem na každém jádru procesor IBM POWER5 (2004) [8] . Nakonec Intel vrátil Hyper-threading do svých procesorů s architekturou Nehalem (2008) [9] .

Kritika

V roce 2021 tým výzkumníků včetně Graz Tech University , Georgia Institute of Technology a Lamarr Security Research, neziskového výzkumného centra, objevil zranitelnost v technologii SMT implementované v procesorech AMD Zen , Zen 2 a Zen 3 . Zranitelnost nazvaná SQUIP [10] (Scheduler Queue Usage via Interference Probing – použití plánovací fronty prostřednictvím analýzy interference ) umožňuje útočníkům přístup k důvěrným datům, která v prosinci 2021 oznámila společnost AMD. V průběhu demonstrování zranitelnosti výzkumníci „prolomili“ šifrovací klíč RSA-4096 [11] [12] . AMD, kterému bylo přiděleno ID zranitelnosti CVE-2021-46778 a hodnocení „střední“ závažnosti, zveřejnilo v srpnu 2022 informační bulletin o zmírnění rizik [13] .

Srovnání s jinými technologiemi

Výkon superskalárních mikroprocesorů se zvyšuje prováděním více instrukcí současně v jednom cyklu, je však omezen závislostmi mezi instrukcemi (které omezují možnosti paralelního provádění, v důsledku čehož nelze provést maximální možný počet instrukcí v cyklus) a operace s vysokou latencí v rámci jednoho vlákna provádění (které vedou k výskytu cyklů, ve kterých není provedena ani jedna instrukce - pipeline se zastaví ).

Architektury s hardwarovým multithreadingem spouštějí více vláken s možností rychlého přepínání kontextů mezi nimi. Takové "tradiční" multithreading skrývá zpoždění paměti a funkčních bloků (snižuje počet "prázdných" cyklů), ačkoli instrukce z jednoho vlákna jsou prováděny v každém konkrétním cyklu. Nárůst počtu současně spustitelných instrukcí však snižuje možnosti tradičního multithreadingu.

Simultánní multithreading kombinuje paralelní provádění instrukcí superskalární architektury s hardwarovým multithreadingem. Použití simultánního multithreadingu v důsledku dynamické distribuce funkčních modulů procesoru mezi vlákny zvyšuje využití procesoru v přítomnosti zpoždění paměti a omezené schopnosti paralelního provádění instrukcí v rámci vlákna.

Vícejádrové mikroprocesory jsou svou organizací nejblíže mikroprocesorům se simultánním multithreadingem - mají několik sad registrů, několik funkčních modulů a superskalaritu každého z jader. Hlavním rozdílem mezi těmito dvěma je alokace zdrojů – u vícejádrového procesoru dostává každé vlákno pevný počet funkčních modulů procesoru, zatímco u procesoru se současným multithreadingem se rozložení modulů mění v každém cyklu. Výsledkem je, že procesory se simultánním multithreadingem vykazují větší výkon při maximálním zatížení vláken a s poklesem počtu vláken klesá výkon pomaleji ve srovnání s vícejádrovým procesorem.

Poznámky

  1. Dva v jednom //Computerra (11/09/2001) . Získáno 21. listopadu 2016. Archivováno z originálu 21. listopadu 2016.
  2. Simultaneous Multithreading Project . Staženo 31. 5. 2017. Archivováno z originálu 1. 6. 2017.
  3. Publikace děkana Tullsena . Získáno 4. června 2017. Archivováno z originálu 9. června 2017.
  4. Viz Dean M. Tullsen, Susan J. Eggers a Henry M. Levy. Simultánní multithreading: Maximalizace paralelismu na čipu. In Proceedings of the International Symposium on Computer Architecture, červen 1995
  5. doktorská disertační práce Simultaneous Multithreading, DM Tullsen, Ph.D. Diplomová práce, University of Washington, srpen 1996.
  6. Nemirovsky Tullsen, 2013 , str. 72.
  7. Nemirovsky Tullsen, 2013 , str. 74.
  8. Nemirovsky Tullsen, 2013 , str. 34.
  9. Nemirovsky Tullsen, 2013 , str. 81.
  10. SQUIP: Využití PDF postranního kanálu soupeření plánovače
  11. Anton Šilov. Nová chyba zabezpečení se týká všech procesorů AMD Zen: Možná bude nutné  zakázat vytváření vláken . Tom's Hardware (11. srpna 2022). Staženo: 12. srpna 2022.
  12. Vladimír Fetisov. Ukázalo se, že technologie SMT v procesorech Ryzen a EPYC umožňuje krást důvěrná data . 3DNews (11. srpna 2022). Staženo: 12. srpna 2022.
  13. Chyba zabezpečení postranního kanálu v plánovači  spouštěcí jednotky na procesorech AMD . AMD (8. září 2022). Staženo: 12. srpna 2022.

Literatura

Odkazy