Taxonomia lui Flynn

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Taxonomia Flynn este un sistem de clasificare pentru arhitecturi de calculatoare . În 1966 Michael J. Flynn clasifică sistemele de calcul în funcție de multiplicitatea fluxului de instrucțiuni și a fluxului de date pe care le pot gestiona; ulterior această clasificare a fost extinsă cu o subclasificare pentru a lua în considerare și tipul de arhitectură a memoriei.

Categorii

Pe baza acestei clasificări, fiecare sistem de calcul se încadrează în una dintre aceste categorii:

Arhitecturi computaționale.png
  • SISD (Instrucțiuni unice Date unice)
  • SIMD (date multiple cu instrucțiuni unice)
    • Procesoare vectoriale
    • Procesor matrice
    • Matrice sistolice
  • MISD (date multiple cu instrucțiuni multiple)
  • Instrucțiuni multiple Date multiple ( MIMD )
    • Sisteme de memorie distribuite
      • Procesare paralelă masivă MPP
      • Grupul de stații de lucru COW
    • Sisteme de memorie partajată
    • Mașini de flux de date
    • Mașini de reducere

În 2003, DEC a dezvoltat un nou tip de procesor, numit asincron, care procesează datele secvențial, dar fără ceas. Fiind autocontrolat, orice paralelism al acestor procesoare ar fi în afara clasificării. Cu toate acestea, această logică de dezvoltare a stârnit o dezbatere uriașă în rândul inginerilor (vezi acest articol în engleză ).

SISD

Pictogramă lupă mgx2.svg Același subiect în detaliu: SISD .

Fără paralelism: operațiile sunt efectuate secvențial, pe o bucată de date la un moment dat. Este arhitectura clasică von Neumann : PC-urile uniprocesatoare, adică PC-urile vândute în perioada anterioară anului 2010, se bazează pe această filozofie.

SIMD

Pictogramă lupă mgx2.svg Același subiect în detaliu: SIMD .

Clasa SIMD include arhitecturi formate din mai multe unități de procesare care execută simultan aceeași instrucțiune, dar funcționează pe seturi de date diferite. În general, modul de implementare a arhitecturilor SIMD este de a avea un procesor principal care trimite instrucțiunile care urmează să fie executate simultan unui set de elemente de procesare care le execută. Procesorul principal este adesea găzduit într-un computer convențional care acceptă și mediul de dezvoltare. Sistemele SIMD sunt utilizate în principal pentru a susține calcule specializate în paralel. Cele mai renumite exemple de mașini SIMD: supercomputerele vectoriale, utilizate pentru anumite aplicații (unde mai ales lucrăm pe matrici mari).

Procesoare vectoriale

Pictogramă lupă mgx2.svg Același subiect în detaliu: Procesor Vector .

Acest tip de procesoare, pe lângă registrele normale și instrucțiunile scalare, conține tipuri speciale de registre (registre vectoriale) care pot conține simultan N valori și orice operație care implică unul dintre acești registre se efectuează pe toate valorile stocate în ea. Pentru ca acest mecanism să fie eficient, este necesar ca conexiunea la și de la memorie să fie foarte rapidă, adică are o lățime de bandă foarte mare: în acest tip de mașini memoria este, de asemenea, organizată într-un mod vectorial, adică spune structurat în așa fel încât să poată fi citit sau scris exact N valori simultan. De asemenea, este în general posibil să se specifice un alt registru vector ca țintă a operației vectoriale curente, unde rezultatul va fi manipulat în continuare.

Aceste mașini sunt ușor de programat (paralelismul este gestionat într-un mod complet transparent față de programator), dar oferă performanțe bune numai în cazul algoritmilor cu multe instrucțiuni vectoriale: sunt deosebit de potrivite pentru aplicații de calcul științifice. Sunt numite și mașini paralele în timp

Procesor matrice

Un procesor matricial, pe de altă parte, nu are deloc instrucțiuni scalare, ci doar vectori; constă dintr-o unitate de control (UC) care gestionează o serie de procesoare (PE, element de procesor): conexiunile dintre PE și PE și între PE și memorie sunt de tip matricial, adică fiecare PE comunică cu patru vecini, cu UC și cu memoria.
UC citește instrucțiunile, dacă sunt scalare, le execută singure, dacă sunt vectoriale, le trimite către fiecare PE care se ocupă de o singură dată a matricei, în paralel: când toate PE-urile au terminat UC, acesta trece la următoarea instrucțiune. Din acest motiv, un procesor matrice este considerat o mașină paralelă spațial .

Performanța unui procesor de matrice este chiar mai mult legată de tipul de operație: este foarte rapidă numai atunci când funcționează pe matrice și vectori.

O evoluție a procesorului de matrice este Mașina de conectare , care în locul PE-ului normal introduce celule constând dintr-un PE și o memorie locală, conectate cu o topologie hipercubică .

Matrice sistolice

Tablourile sistolice sunt arhitecturi care procesează un flux de date care se mișcă într-un mod previzibil și ritmic de-a lungul unei căi specifice în timpul procesării sale. Ele sunt adesea utilizate în procesarea semnalului, deoarece datele sunt prelevate cu frecvențe cunoscute și trebuie să fie supuse unei prelucrări predefinite care afectează toate datele. În aceste matrice fiecare element efectuează o procesare specifică care depinde doar de datele de intrare și de starea sa internă. Datele procesate sunt plasate în ieșire unde un alt element le va primi și prelucra. Operațiunile sunt sincronizate printr-un ceas global. Algoritmii efectuați pe aceste matrice se numesc sistolice în analogie cu fluxul sanguin care asigură impulsuri prin căi predefinite.

MISD

Pictogramă lupă mgx2.svg Același subiect în detaliu: MISD .

Clasa MISD, în care mai multe fluxuri de instrucțiuni (procese) funcționează simultan pe un singur flux de date, nu a fost utilizată practic până acum. Trebuie remarcat faptul că, în timp ce în clasa SIMD granularitatea, adică dimensiunea activităților executabile în paralel, este cea a instrucțiunilor, în clasa MISD și MIMD granularitatea este cea a proceselor, programe compuse din mai multe instrucțiuni .

MIMD

Pictogramă lupă mgx2.svg Același subiect în detaliu: MIMD .

Instrucțiuni multiple sunt executate simultan pe mai multe date diferite. Clusterele de calculatoare se încadrează în această clasificare, care în ultimii ani au o difuziune notabilă.

Sisteme de memorie distribuite

Această categorie include mașinile care atribuie propria memorie rezervată fiecărui nucleu de calcul (nod). Dacă un nod trebuie să acceseze datele stocate într-un alt nod, trebuie să le solicite printr-un schimb de mesaje între noduri sau tehnici similare.

Prelucrare masivă în paralel

Mașinile MPP sunt compuse din sute de procesoare (care pot deveni sute de mii în unele mașini) conectate printr-o rețea de comunicații. Cele mai rapide mașini de pe planetă se bazează pe aceste arhitecturi.

Cluster de stații de lucru

Arhitecturile COW sunt sisteme de procesare bazate pe computere clasice conectate prin rețele de comunicații. Clusterele de calcul se încadrează în această clasificare.

Sisteme de memorie partajată

Pictogramă lupă mgx2.svg Același subiect în detaliu: multiprocesor simetric .

Această categorie include mașinile în care mai multe unități de calcul accesează aceeași memorie în timp ce execută programe diferite. Sistemele SMP se încadrează în această categorie

Acces uniform la memorie

Aceste sisteme de procesare sunt echipate cu o memorie centralizată pe care procesoarele o folosesc de obicei printr-un sistem de magistrală. Caracteristica cheie a acestui sistem este timpul de acces la memorie, care este constant pentru fiecare procesor și pentru orice zonă de memorie. Acest sistem este relativ simplu de implementat, dar nu este foarte scalabil. Aceste sisteme gestionează cel mult o duzină de procesoare.

Acces la memorie neuniformă

Pictogramă lupă mgx2.svg Același subiect în detaliu: Acces neuniform la memorie .

Aceste sisteme de procesare împart memoria într-o zonă de mare viteză alocată individual fiecărui procesor și o posibilă zonă comună pentru schimbul de date. Aceste sisteme sunt foarte scalabile, dar sunt mai complexe de dezvoltat. Acestea sunt împărțite în două categorii:

  • NC-NUMA : Fără cache - NUMA
  • CC-NUMA : Cache Coherent - NUMA

STANDARD

Modelul NO-Remote Memory Access (NORMA)

Memoria este distribuită fizic printre procesoare (memoria locală). Toate amintirile locale sunt private și pot fi accesate doar de procesorul local. Comunicarea dintre procesoare are loc printr-un protocol de comunicare pentru transmiterea mesajelor.

Acces la memorie numai în cache

Acest tip de computere sunt echipate doar cu memorii cache . Analizând arhitecturile NUMA s-a observat că păstrau copii locale ale datelor în cache și că aceste date erau stocate ca duplicate și în memoria principală. Această arhitectură elimină duplicatele păstrând doar memoriile cache.

Mașini de flux de date

Mașinile de flux de date utilizează o abordare inovatoare a programării. Programul nu este compus dintr-o serie de instrucțiuni care trebuie executate secvențial, ci dintr-o abordare bazată pe date. Practic, operațiunile sunt efectuate numai atunci când datele pentru prelucrare sunt disponibile. Nu există un contor de programe care să țină evidența stării programului.

Mașini de reducere

Mașinile de reducere utilizează o abordare similară mașinilor cu flux de date, dar utilizează un punct de vedere diferit. În loc să utilizeze o abordare bazată pe date, utilizează o abordare bazată pe cerere. Această abordare necesită ca calculele să fie efectuate numai atunci când există o cerere de procesare a rezultatelor. De asemenea, în acest tip de mașină nu există contor de programe.

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT