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.
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] .
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] .
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.
procesorů | Technologie digitálních|||||||||
---|---|---|---|---|---|---|---|---|---|
Architektura | |||||||||
Architektura instrukční sady | |||||||||
strojové slovo | |||||||||
Rovnoběžnost |
| ||||||||
Implementace | |||||||||
Komponenty | |||||||||
Řízení spotřeby |