Simultánní multithreading, zkratka SMT, je technika pro zlepšení celkové efektivity superskalárních procesorů s hardwarovým multithreadingem. SMT umožňuje více nezávislých vláken provádění, aby se lépe využily prostředky poskytované moderními počítačovými architekturami.

Koncept multithreadingu je podobný multitaskingu, ale v moderních superskalárních procesorech je implementován na úrovni vláken.

Při návrhu procesoru existují dva způsoby, jak zvýšit paralelismus na čipu s menšími nároky na zdroje:

  1. Superskalární technika: která se snaží zvýšit paralelismus na úrovni instrukcí (ILP) prováděním více instrukcí současně (označované jako: simultánní); "simultánním" rozesíláním instrukcí (označované jako: rozesílání instrukcí) na více redundantních prováděcích jednotek zabudovaných v procesoru.
  2. Technika CMT (Chip-level multithreading): využití paralelismu na úrovni vláken (TLP, Thread level parallelism), aby bylo možné provádět instrukce z více vláken v rámci jednoho procesorového čipu současně.

Existuje mnoho způsobů, jak podporovat více než jedno vlákno uvnitř čipu, a to:

  1. Prokládaný multithreading (IMT) : Prokládané vydávání více instrukcí z různých vláken, označované také jako časový multithreading. Podle četnosti prokládaných vydání jej lze dále dělit na jemnozrnný multithreading nebo hrubozrnný multithreading. Fine-grain multithreading vydává instrukce pro různá vlákna po každém cyklu, zatímco coarse-grain multithreading přechází na vydávání instrukcí z jiného vlákna pouze tehdy, když aktuální prováděné vlákno způsobí nějakou událost s dlouhou latencí (jako je chyba stránky apod.). Coarse-grain multithreading je častější pro menší přepínání kontextu mezi vlákny. U procesorů s jednou pipeline na jádro je prokládaný multithreading jediným možným způsobem, protože může vydávat pouze maximálně jednu instrukci za cyklus.
  2. Simultánní vícevláknové zpracování (SMT): Vydání více instrukcí z více vláken v jednom cyklu. Procesor k tomu musí být superskalární.
  3. Víceprocesorový procesor na úrovni čipu (CMP nebo vícejádrový procesor): integruje dva nebo více superskalárních procesorů do jednoho čipu, z nichž každý vykonává vlákna nezávisle.
  4. Jakákoli kombinace IMT/SMT/CMP

Klíčovým faktorem pro jejich rozlišení je podívat se na to, kolik instrukcí může procesor vydat v jednom cyklu a z kolika vláken tyto instrukce pocházejí.