Taxonomia lui Flynn
Taxonomia lui Flynn este o clasificare a arhitecturilor de calculatoare propusă de Michael J. Flynn în 1966 [1],[2]. Cele patru clase de arhitecturi definite de Flynn au la bază numărul de fluxuri de instrucțiuni și de date concurente disponibile în arhitectură.
Flux de instrucțiuni singular | Flux de instrucțiuni multiplu | |
---|---|---|
Flux de date singular | SISD | MISD |
Flux de date multiplu | SIMD | MIMD |
SISD
modificareFlux de instrucțiuni singular, flux de date singular (SISD)- un computer secvențial (scalar) care nu folosește paralelismul nici în fluxul de date, nici în fluxul de instrucțiuni. Aici se încadrează microprocesoarele clasice cu arhitectură von Neumann pe 8, 16, 32 și 64 de biți cu funcționare ciclică - preluare instrucțiune, execuție instrucțiune, depunere a rezultatului în memorie și de la capăt. Exemple de arhitecturi SISD sunt mașinile tradiționale uniprocesor, ca și computerele personale sau sistemele mainframe tradiționale.
MISD
modificareFluxuri de instrucțiuni multiple, flux de date singular (MISD)- neobișnuit datorită faptului că fluxurile de instrucțiuni multiple au nevoie, de obicei, de fluxuri multiple de date pentru a fi eficient. Totuși, acest tip este folosit când se ajunge la paralelism redundant, ca de exemplu la avioane sau centrale atomice, care sunt obligate să posede câteva procesoare care rulează simultan: în cazul în care unul se defectează nu e nevoie să se întrerupă rularea, din cauza prezenței a cel puțin unui sistem de rezervă (backup). Mai sunt cunoscute și sisteme MISD cu 3 sau 5 procesoare; dacă cumva rezultatele procesării nu sunt identice, decide majoritatea.
Sistemele recente de tip SISD și MISD folosesc de obicei microprocesoare cu tehnologia pipeline (conductă). La un astfel de microprocesor, de exemplu, au loc în paralel, simultan: execuția instrucțiunea „n”, decodificarea instrucțiunii „n+1” și aducerea în memoria de lucru a instrucțiunii „n+2”. Ideea acestei arhitecturi provine de la benzile de montaj a produselor industriale (automobile, televizoare etc.).
Supercomputerele de tip Cray din anii 1970 foloseau arhitectura MISD. Procesoarele Pentium MMX, PentiumPro, Pentium 2 și următoarele au implementate o structură de tip MISD având în pipeline 2 benzi de asamblare (Pentium MMX) sau 3 benzi de asamblare (Pentium Pro și următoarele din serie), care fac ca în fiecare tact (= impuls al ceasului calculatorului) să se afle în execuție simultan două sau trei instrucțiuni, dar fiecare în altă fază a execuției. Dacă de exemplu fiecare instrucțiune are nevoie de câte un tact pentru aducerea în memorie, decodificare și execuție, deci este încheiată câte o instrucțiune la 3 tacte, technica pipeline permite încheierea unei instrucțiuni pe tact, deci în principiu de 3 ori mai repede decât fără pipeline.
SIMD
modificareFlux de instrucțiuni singular, fluxuri de date multiple (SIMD)- un sistem de calcul care folosește fluxuri de date multiple împreună cu un singur flux de instrucțiuni pentru a face operații care pot fi paralelizate. Acestea sunt sisteme cu microprocesoare matriceale, la care operațiile aritmetice se execută în paralel pentru fiecare element al matricei, operația necesitând o sngură instrucțiune (se mai numesc și sisteme de procesare vectorială).
Eficiența SIMD-urilor este puternic evidențiată în cazul unor programe care au o cantitate masivă de date paralele reliefate de anumite bucle de programe. Acest tip de arhitectură este folosit în familia de procesoare Intel Pentium MMX (Multi-Media eXtension), care are la bază o arhitectură SIMD. Această familie de procesoare cuprinde un set de 57 de instrucțiuni noi, 4 noi tipuri de date și un set nou de regiștri destinați accelerării execuției aplicațiilor multimedia (grafica 2D și 3D, video, procesare imagine și sunete stereo). Aplicațiile multimedia impun manipularea unor date de dimensiuni mici (8 sau 16 biți) în paralel pentru cele 3 canale de culoare sau cele 2 canale de sunet stereo, cu aceeași instrucțiune, dar date diferite pe aceste canale multimedia.
MIMD
modificareFluxuri multiple de instrucțiuni, fluxuri multiple de date (MIMD)- multiple procesoare autonome care execută diferite instrucțiuni asupra unor date diferite. Sistemele de calcul distribuite folosesc, de obicei, arhitecturi MIMD exploatând fie un spațiu de memorie partajat, fie un spațiu de memorie distribuit.
Există o extensie uzuală la această taxonomie. Aceasta este:
- Program singular, fluxuri de date multiple (SPMD)- multiple procesoare autonome execută simultan același set de instrucțiuni (dar în puncte independente) pe date diferite. Cunoscut ca și proces singular, date multiple.