Simultánny multithreading

Simultánny multithreading, skratka SMT, je technika na zlepšenie celkovej účinnosti superskalárnych procesorov s hardvérovým multithreadingom. SMT umožňuje vykonávať viacero nezávislých vlákien s cieľom lepšie využiť zdroje poskytované modernými počítačovými architektúrami.

Viacvláknovosť je podobná koncepcii multitaskingu, ale v moderných superskalárnych procesoroch je implementovaná na úrovni vykonávania vlákien.

Pri návrhu procesora existujú dva spôsoby, ako zvýšiť paralelizmus na čipe s menšími nárokmi na zdroje:

  1. Superskalárna technika: ktorá sa snaží zvýšiť paralelizmus na úrovni inštrukcií (ILP) vykonávaním viacerých inštrukcií súčasne (označované ako: simultánne); "simultánnym" odosielaním inštrukcií (označované ako: odosielanie inštrukcií) viacerým redundantným vykonávacím jednotkám zabudovaným v procesore.
  2. Technika viacvláknového spracovania na úrovni čipu (Chip-level multithreading - CMT): použitie paralelnosti na úrovni vlákien (Thread level parallelism - TLP) s cieľom vykonávať inštrukcie z viacerých vlákien v rámci jedného procesorového čipu súčasne.

Existuje mnoho spôsobov, ako podporovať viac ako jedno vlákno v čipe, a to:

  1. Interleaved multithreading (IMT) : Interleaved issue of multiple instructions from different threads, tiež označovaný ako Temporal multithreading. Ďalej sa môže deliť na jemnozrnný multithreading alebo hrubozrnný multithreading v závislosti od frekvencie prekladaných vydaní. Fine-grain multithreading vydáva inštrukcie pre rôzne vlákna po každom cykle, zatiaľ čo coarse-grain multithreading sa prepne na vydávanie inštrukcií z iného vlákna len vtedy, keď aktuálne vykonávané vlákno spôsobí nejaké udalosti s veľkým oneskorením (ako napríklad chyba stránky atď.). Coarse-grain multithreading je bežnejší pre menej kontextových prepínaní medzi vláknami. V prípade procesorov s jednou pipeline na jadro je prekladaný multithreading jediným možným spôsobom, pretože môže vydať len jednu inštrukciu za cyklus.
  2. Simultánny multithreading (SMT): Vydanie viacerých inštrukcií z viacerých vlákien v jednom cykle. Procesor musí byť superskalárny, aby to dokázal.
  3. Multiprocesing na úrovni čipu (CMP alebo viacjadrový procesor): integruje dva alebo viac superskalárnych procesorov do jedného čipu, pričom každý vykonáva vlákna nezávisle.
  4. Akákoľvek kombinácia IMT/SMT/CMP

Kľúčovým faktorom na ich rozlíšenie je pozrieť sa na to, koľko inštrukcií môže procesor vydať v jednom cykle a koľko vlákien z nich pochádza.

Príklady moderných SMT procesorov

  1. Procesor Intel Pentium 4 bol prvým moderným procesorom pre stolové počítače, ktorý implementoval simultánne viacvláknové spracovanie, počnúc modelom s frekvenciou 3,06 GHz vydaným v roku 2002, a odvtedy ho zaviedol do viacerých svojich procesorov. Spoločnosť Intel túto funkciu nazýva Hyper-Threading Technology (HTT) a poskytuje základný dvojvláknový SMT engine. Intel tvrdí, že v porovnaní s inak identickým Pentiom 4 bez SMT sa rýchlosť zvýšila až o 30 %.
  2. Najnovšie návrhy architektúry MIPS obsahujú systém SMT známy ako "MIPS MT".
  3. IBM POWER5, oznámený v máji 2004, sa dodáva buď ako dvojjadrový DCM, alebo štvorjadrový či osemjadrový MCM, pričom každé jadro obsahuje dvojvláknový SMT engine. Implementácia IBM je sofistikovanejšia ako predchádzajúce, pretože dokáže priradiť rôznym vláknam rôznu prioritu, je jemnejšia a motor SMT sa dá dynamicky zapínať a vypínať, aby sa lepšie vykonávali tie pracovné zaťaženia, pri ktorých by procesor SMT nezvýšil výkon. Ide o druhú implementáciu všeobecne dostupného hardvérového multithreadingu spoločnosti IBM.
  4. Intel Atom, uvedený na trh v roku 2008, je prvým produktom spoločnosti Intel s funkciou SMT (predávanou ako Hyper-threading) bez podpory zmeny poradia inštrukcií, špekulatívneho vykonávania alebo premenovania registrov.

Súvisiace stránky

Otázky a odpovede

Otázka: Čo je to simultánny multithreading?


Odpoveď: Simultánny multithreading (SMT) je technika na zlepšenie celkovej účinnosti superskalárnych procesorov s hardvérovým multithreadingom. Umožňuje vykonávanie viacerých nezávislých vlákien na lepšie využitie zdrojov, ktoré poskytujú moderné počítačové architektúry.

Otázka: Ako sa dá SMT porovnať s multitaskingom?


Odpoveď: Koncepcia multithreadingu je podobná koncepcii multitaskingu, ale v moderných superskalárnych procesoroch sa implementuje na úrovni vlákien vykonávania, zatiaľ čo multitasking sa implementuje na úrovni procesov.

Otázka: Aké sú dva spôsoby zvýšenia paralelizmu na čipe?


Odpoveď: Dva spôsoby zvýšenia paralelizmu na čipe sú superskalárna technika a multithreading na úrovni čipu (CMT).

Otázka: Aké sú rôzne typy viacvláknového spracovania na úrovni čipu?


Odpoveď: Rôzne typy multithreadingu na úrovni čipu zahŕňajú Interleaved Multithreading (IMT), Fine-Grain Multithreading, Coarse Grain Multithreadin a Simultaneous Multithreadin (SMT).

Otázka: Ako môžete rozlíšiť IMT/SMT/CMP?


Odpoveď: Kľúčovým faktorom na rozlíšenie medzi IMT/SMT/CMP je pozrieť sa na to, koľko inštrukcií môže procesor vydať v jednom cykle a z koľkých vlákien tieto inštrukcie pochádzajú.

Otázka: Aký typ procesora sa musí použiť na SMT?


Odpoveď: Pre SMT sa musí použiť superskalárny procesor.

Otázka: Aký typ procesora používa Chip Level MultiProcessing?


Odpoveď: Chip Level MultiProcessing používa viacjadrové procesory, ktoré integrujú dva alebo viac superskalárnych procesorov do jedného čipu, pričom každý z nich vykonáva vlákna nezávisle.

AlegsaOnline.com - 2020 / 2023 - License CC3