Současné vícevláknové zpracování

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í.

Příklady moderních procesorů SMT

  1. Procesor Intel Pentium 4 byl prvním moderním procesorem pro stolní počítače, který implementoval simultánní vícevláknové zpracování, počínaje 3,06GHz modelem uvedeným v roce 2002, a od té doby byl zaveden do řady jeho procesorů. Společnost Intel tuto funkci nazývá Hyper-Threading Technology (HTT) a poskytuje základní dvouvláknový SMT engine. Společnost Intel uvádí až 30% zvýšení rychlosti ve srovnání s jinak identickým procesorem Pentium 4 bez SMT.
  2. Nejnovější návrhy architektury MIPS obsahují systém SMT známý jako "MIPS MT".
  3. IBM POWER5, ohlášený v květnu 2004, se dodává buď jako dvoujádrový DCM, nebo čtyřjádrový či osmijádrový MCM, přičemž každé jádro obsahuje dvouvláknový SMT engine. Implementace IBM je sofistikovanější než předchozí, protože může jednotlivým vláknům přidělovat různou prioritu, je jemnější a SMT engine lze dynamicky zapínat a vypínat, aby se lépe prováděly ty pracovní úlohy, u nichž by SMT procesor nezvýšil výkon. Jedná se o druhou implementaci obecně dostupného hardwarového multithreadingu společnosti IBM.
  4. Intel Atom, uvedený na trh v roce 2008, je prvním produktem společnosti Intel s funkcí SMT (prodávanou jako Hyper-threading) bez podpory změny pořadí instrukcí, spekulativního provádění nebo přejmenování registrů.

Související stránky

Otázky a odpovědi

Otázka: Co je to simultánní vícevláknové zpracování?


Odpověď: Simultánní multithreading (SMT) je technika pro zlepšení celkové efektivity superskalárních procesorů s hardwarovým multithreadingem. 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.

Otázka: Jak se SMT srovnává s multitaskingem?


Odpověď: Koncepce multithreadingu je podobná koncepci multitaskingu, ale v moderních superskalárních procesorech je implementována na úrovni vláken provádění, zatímco multitasking je implementován na úrovni procesů.

Otázka: Jaké jsou dva způsoby zvýšení paralelismu na čipu?


Odpověď: Dva způsoby, jak zvýšit paralelismus na čipu, jsou superskalární technika a multithreading na úrovni čipu (CMT).

Otázka: Jaké jsou různé typy multithreadingu na úrovni čipu?


Odpověď: Mezi různé typy multithreadingu na úrovni čipu patří Interleaved Multithreading (IMT), Fine-Grain Multithreading, Coarse Grain Multithreadin a Simultaneous Multithreadin (SMT).

Otázka: Jak lze rozlišit mezi IMT/SMT/CMP?


Odpověď: Klíčovým faktorem pro rozlišení mezi IMT/SMT/CMP je pohled na to, kolik instrukcí může procesor vydat v jednom cyklu a z kolika vláken tyto instrukce pocházejí.

Otázka: Jaký typ procesoru musí být použit pro SMT?


Odpověď: Pro SMT musí být použit superskalární procesor.

Otázka: Jaký typ procesoru se používá pro Chip Level MultiProcessing?


Odpověď: Technologie Chip Level MultiProcessing používá vícejádrové procesory, které integrují dva nebo více superskalárních procesorů do jednoho čipu, přičemž každý z nich vykonává vlákna nezávisle.

AlegsaOnline.com - 2020 / 2023 - License CC3