Multithreading simultan

Simultaneous multithreading, acronim SMT, este o tehnică de îmbunătățire a eficienței generale a procesoarelor superscalare cu multithreading hardware. SMT permite mai multe fire de execuție independente pentru a utiliza mai bine resursele oferite de arhitecturile moderne de calculatoare.

Multithreading-ul este similar în concept cu multitasking-ul, dar este implementat la nivelul de execuție al firelor în procesoarele superscalare moderne.

În proiectarea procesoarelor, există două modalități de a crește paralelismul pe cip cu mai puține cerințe de resurse:

  1. Tehnica superscalară: care încearcă să sporească paralelismul la nivel de instrucțiuni (ILP) prin executarea mai multor instrucțiuni în același timp (denumită: simultan); prin trimiterea "simultană" a instrucțiunilor (denumită: dispecerizare a instrucțiunilor) către mai multe unități de execuție redundante construite în interiorul procesorului.
  2. Tehnica de multithreading la nivel de cip (CMT): utilizarea paralelismului la nivel de fir (TLP) pentru a executa instrucțiuni din mai multe fire în același timp în cadrul unui cip de procesor.

Există mai multe modalități de a susține mai mult de un fir de execuție în interiorul unui cip, și anume:

  1. Interleaved multithreading (IMT): emiterea intercalată a mai multor instrucțiuni de la diferite fire de execuție, denumită și multithreading temporal. Acesta poate fi împărțit în continuare în multithreading cu granulație fină sau multithreading cu granulație grosieră, în funcție de frecvența emisiunilor intercalate. Multithreading-ul fin emite instrucțiuni pentru diferite fire de execuție după fiecare ciclu, în timp ce multithreading-ul grosier trece la emiterea de instrucțiuni de la un alt fir de execuție doar atunci când firul de execuție curent provoacă anumite evenimente cu latență mare (cum ar fi eroare de pagină etc.). Multithreading-ul cu grad grosier de creștere este mai frecvent pentru o mai mică schimbare de context între fire. În cazul procesoarelor cu un singur pipeline pe nucleu, multithreading-ul intercalat este singura modalitate posibilă, deoarece poate emite doar o singură instrucțiune pe ciclu.
  2. Multithreading simultan (SMT): Emiterea mai multor instrucțiuni de la mai multe fire de execuție într-un singur ciclu. Procesorul trebuie să fie superscalar pentru a face acest lucru.
  3. Multiprocesare la nivel de cip (CMP sau procesor multi-core): integrează două sau mai multe procesoare superscalare într-un singur cip, fiecare dintre ele executând fire de execuție în mod independent.
  4. Orice combinație de IMT/SMT/CMP

Factorul cheie pentru a le distinge este de a observa câte instrucțiuni poate emite procesorul într-un ciclu și câte fire de execuție din care provin aceste instrucțiuni.

Exemple de procesoare SMT moderne

  1. Intel Pentium 4 a fost primul procesor desktop modern care a implementat multithreading-ul simultan, începând cu modelul de 3,06 GHz lansat în 2002 și, de atunci, a fost introdus într-o serie de procesoare ale sale. Intel numește această funcționalitate Hyper-Threading Technology (HTT) și oferă un motor SMT de bază cu două fire de execuție. Intel pretinde o îmbunătățire a vitezei cu până la 30% față de un Pentium 4 identic, fără SMT.
  2. Cele mai recente modele de arhitectură MIPS includ un sistem SMT cunoscut sub numele de "MIPS MT".
  3. IBM POWER5, anunțat în mai 2004, este disponibil fie sub formă de DCM cu două nuclee, fie sub formă de MCM cu patru nuclee sau opt nuclee, fiecare nucleu incluzând un motor SMT cu două fire de execuție. Implementarea IBM este mai sofisticată decât cele anterioare, deoarece poate atribui o prioritate diferită diferitelor fire, este mai fină, iar motorul SMT poate fi activat și dezactivat în mod dinamic, pentru a executa mai bine acele sarcini de lucru în care un procesor SMT nu ar crește performanța. Aceasta este a doua implementare de către IBM a multithreading-ului hardware general disponibil.
  4. Intel Atom, lansat în 2008, este primul produs Intel care dispune de SMT (comercializat ca Hyper-threading) fără a suporta reordonarea instrucțiunilor, execuția speculativă sau redenumirea registrelor.

Pagini conexe

Întrebări și răspunsuri

Î: Ce este multithreading-ul simultan?


R: Simultaneous multithreading (SMT) este o tehnică de îmbunătățire a eficienței generale a procesoarelor superscalare cu multithreading hardware. Aceasta permite mai multe fire de execuție independente pentru a utiliza mai bine resursele oferite de arhitecturile moderne ale calculatoarelor.

Î: Cum se compară SMT cu multitasking-ul?


R: Conceptul de multithreading este similar cu cel de multitasking, dar este implementat la nivelul firelor de execuție în procesoarele superscalare moderne, în timp ce multitasking-ul este implementat la nivel de proces.

Î: Care sunt două modalități de a crește paralelismul pe cip?


R: Cele două modalități de creștere a paralelismului pe cip sunt tehnica superscalară și multithreading la nivel de cip (CMT).

Î: Care sunt câteva tipuri diferite de multithreading la nivel de cip?


R: Diferitele tipuri de multithreading la nivel de cip includ Interleaved Multithreading (IMT), Fine-Grain Multithreading, Coarse Grain Multithreadin și Simultaneous Multithreadin (SMT).

Î: Cum puteți face distincția între IMT/SMT/CMP?


R: Factorul cheie pentru a face distincția între IMT/SMT/CMP este examinarea numărului de instrucțiuni pe care procesorul le poate emite într-un ciclu și a numărului de fire din care provin instrucțiunile.

Î: Ce tip de procesor trebuie utilizat pentru SMT?


R: Pentru SMT, trebuie utilizat un procesor superscalar.

Î: Ce tip de procesor utilizează procesarea multiprocesare la nivel de cip?


R: Procesarea multiprocesare la nivel de cip utilizează procesoare multi-core care integrează două sau mai multe procesoare superscalare într-un singur cip, fiecare dintre ele executând fire de execuție în mod independent.

AlegsaOnline.com - 2020 / 2023 - License CC3