Summary

Aceste note de curs despre arhitecturi paralele acoperă tipuri și nivele de paralelism, clasificarea arhitecturilor paralele, arhitecturi vectoriale, arhitecturi SIMD, arhitecturi sistolice, arhitecturi MIMD, arhitecturi specifice unor domenii și arhitecturi cu fire de execuție multiple. Notele includ o taxonomie Flynn si taxonomie extinsă.

Full Transcript

Cuprins 1. Introducere 2. Unitatea aritmetică și logică 3. Sisteme de memorie 4. Arhitecturi RISC 5. Introducere în arhitecturi paralele 19.12.2023 Structura sistemelor de calcul (05-1) 1 5. Introducere în arhitecturi paralele Tipuri și nivele de paralelis...

Cuprins 1. Introducere 2. Unitatea aritmetică și logică 3. Sisteme de memorie 4. Arhitecturi RISC 5. Introducere în arhitecturi paralele 19.12.2023 Structura sistemelor de calcul (05-1) 1 5. Introducere în arhitecturi paralele Tipuri și nivele de paralelism Clasificarea arhitecturilor paralele Arhitecturi vectoriale Arhitecturi SIMD Arhitecturi sistolice Arhitecturi MIMD Arhitecturi specifice unor domenii Arhitecturi cu fire de execuție multiple 19.12.2023 Structura sistemelor de calcul (05-1) 2 Tipuri și nivele de paralelism (1) Soluțiile unor probleme pot conține două tipuri de paralelism: Paralelism funcțional: derivă din logica unei soluții a problemei; apare în toate descrierile formale ale soluției Paralelism de date: derivă din utilizarea structurilor de date care permit operații în paralel asupra elementelor de date Este inerent numai într-un set restrâns de probleme; exemplu: prelucrarea imaginilor 19.12.2023 Structura sistemelor de calcul (05-1) 3 Tipuri și nivele de paralelism (2) Paralelismul funcțional se poate utiliza la patru nivele de granularitate Paralelism la nivelul instrucțiunilor Execuția instrucțiunilor în paralel Granularitate fină Arhitecturi ILP (Instruction-Level Parallelism) Înainte de execuție, acest paralelism trebuie detectat fie de către un compilator dedicat, fie de către arhitectură 19.12.2023 Structura sistemelor de calcul (05-1) 4 Tipuri și nivele de paralelism (3) Paralelism la nivelul firelor de execuție Fir de execuție (thread): fragment de cod; se poate executa în paralel cu alte fragmente Firele de execuție sunt create în cadrul proceselor (programelor); partajează resursele procesului în care sunt create Pot fi create de programator sau SO, sau pot fi generate de un compilator paralel Pot fi executate în paralel de arhitecturi cu fire de execuție multiple 19.12.2023 Structura sistemelor de calcul (05-1) 5 Tipuri și nivele de paralelism (4) Paralelism la nivelul proceselor Proces: fragment de cod; are o granularitate mai mare comparativ cu un fir de execuție Procesele pot fi create și executate în mod similar cu firele de execuție Paralelism la nivelul utilizatorilor Utilizatorii multipli sunt independenți unii față de alții Granularitate mare 19.12.2023 Structura sistemelor de calcul (05-1) 6 5. Introducere în arhitecturi paralele Tipuri și nivele de paralelism Clasificarea arhitecturilor paralele Arhitecturi vectoriale Arhitecturi SIMD Arhitecturi sistolice Arhitecturi MIMD Arhitecturi specifice unor domenii Arhitecturi cu fire de execuție multiple 19.12.2023 Structura sistemelor de calcul (05-1) 7 Clasificarea arhitecturilor paralele Clasificarea arhitecturilor paralele Taxonomia Flynn Taxonomie extinsă 19.12.2023 Structura sistemelor de calcul (05-1) 8 Taxonomia Flynn (1) Prof. Michael Flynn a clasificat arhitecturile de calculatoare în patru categorii Criteriul: prezența unui singur șir sau a mai multor șiruri de instrucțiuni și de date Șir de instrucțiuni: set de instrucțiuni secvențiale executate de un procesor Șir de date: fluxul secvențial de date necesar șirului de instrucțiuni 19.12.2023 Structura sistemelor de calcul (05-1) 9 Taxonomia Flynn (2) 19.12.2023 Structura sistemelor de calcul (05-1) 10 Taxonomia Flynn (3) SISD (Single Instruction stream, Single Data stream) Corespunde arhitecturii von Neumann Se execută în orice moment o singură instrucțiune → calculatoare seriale scalare Utilizează un registru contor de program Actualmente există doar un număr redus de calculatoare SISD → se utilizează paralelismul în scopul creșterii eficienței 19.12.2023 Structura sistemelor de calcul (05-1) 11 Taxonomia Flynn (4) MISD (Multiple Instruction stream, Single Data stream) Mai multe instrucțiuni operează asupra unei singure date Două posibilități de interpretare a structurii calculatoarelor MISD Prima posibilitate: mai multe unități de prelucrare primesc instrucțiuni distincte care operează asupra acelorași date → clasă nepractică 19.12.2023 Structura sistemelor de calcul (05-1) 12 Taxonomia Flynn (5) A doua posibilitate: o clasă de calculatoare în care șirul de date este trecut printr-o serie de unități de prelucrare Exemple: arhitecturi vectoriale sau arhitecturi pipeline Execută o prelucrare vectorială utilizând o serie de etaje Fiecare din acestea execută o anumită funcție și produce un rezultat intermediar 19.12.2023 Structura sistemelor de calcul (05-1) 13 Taxonomia Flynn (6) SIMD (Single Instruction stream, Multiple Data stream) O singură instrucțiune prelucrează simultan date diferite Există mai multe procesoare de prelucrare și un singur procesor de control Exemplu: procesoare matriceale Calculatoarele SIMD pot executa și ele prelucrări vectoriale 19.12.2023 Structura sistemelor de calcul (05-1) 14 Taxonomia Flynn (7) MIMD (Multiple Instruction stream, Multiple Data stream) Arhitecturi cu mai multe procesoare de prelucrare Mai multe instrucțiuni pot opera simultan asupra unor date diferite Arhitecturile MIMD obțin o eficiență ridicată prin prelucrare paralelă Procesoare multiple și procese multiple 19.12.2023 Structura sistemelor de calcul (05-1) 15 Taxonomia Flynn (8) Taxonomia Flynn s-a dovedit utilă pentru clasificarea arhitecturilor de calculatoare Totuși, nu ține cont de tipul de paralelism utilizat și de nivelul de granularitate Au apărut arhitecturi care nu pot fi clasificate în mod clar prin această taxonomie Nu clasifică în mod adecvat arhitecturile hibride și arhitecturile neconvenționale Au fost propuse mai multe taxonomii 19.12.2023 Structura sistemelor de calcul (05-1) 16 Clasificarea arhitecturilor paralele Clasificarea arhitecturilor paralele Taxonomia Flynn Taxonomie extinsă 19.12.2023 Structura sistemelor de calcul (05-1) 17 Taxonomie extinsă (1) Taxonomia prezentată se bazează pe tipul de paralelism: funcțional sau de date Ține cont de granularitatea paralelismului funcțional utilizat Arhitecturi cu paralelism de date Arhitecturi vectoriale Arhitecturi SIMD Arhitecturi sistolice 19.12.2023 Structura sistemelor de calcul (05-1) 18 Taxonomie extinsă (2) Arhitecturi cu paralelism funcțional Cu paralelism la nivelul instrucțiunilor: pipeline; VLIW (Very Long Instruction Word); superscalare Cu paralelism la nivelul firelor de execuție: arhitecturi cu fire de execuție multiple → arhitecturi cu flux de date Cu paralelism la nivelul proceselor: arhitecturi MIMD → cu memorie distribuită; cu memorie partajată 19.12.2023 Structura sistemelor de calcul (05-1) 19 Taxonomie extinsă (3) 19.12.2023 Structura sistemelor de calcul (05-1) 20 5. Introducere în arhitecturi paralele Tipuri și nivele de paralelism Clasificarea arhitecturilor paralele Arhitecturi vectoriale Arhitecturi SIMD Arhitecturi sistolice Arhitecturi MIMD Arhitecturi specifice unor domenii Arhitecturi cu fire de execuție multiple 19.12.2023 Structura sistemelor de calcul (05-1) 21 Arhitecturi vectoriale (1) Aparțin categoriei MISD Supercalculatoare optimizate pentru execuția operațiilor cu vectori sau tablouri Prelucrarea unuia sau a mai multor vectori pentru a obține un rezultat scalar Combinarea a doi vectori Combinarea unui scalar cu un vector, rezultând un nou vector O combinație a operațiilor anterioare 19.12.2023 Structura sistemelor de calcul (05-1) 22 Arhitecturi vectoriale (2) Unitatea centrală utilizează în mod extensiv tehnica pipeline Operațiile asupra vectorilor se execută serial asupra fiecărui element Tehnica pipeline se utilizează și pentru accesul la memorie Setul de registre poate păstra toate elementele unuia sau a mai multor vectori 19.12.2023 Structura sistemelor de calcul (05-1) 23 Arhitecturi vectoriale (3) 19.12.2023 Structura sistemelor de calcul (05-1) 24 Arhitecturi vectoriale (4) Memoria principală Organizarea memoriei este un factor esențial pentru performanța sistemului Se utilizează memorii cu unități multiple și intercalarea adreselor de memorie Procesorul scalar Execută toate operațiile scalare: controlul programului, funcțiile SO, operațiile de I/E Comandă controlerul vectorial 19.12.2023 Structura sistemelor de calcul (05-1) 25 Arhitecturi vectoriale (5) Controlerul vectorial Decodifică instrucțiunile vectoriale Inițiază operațiile generatorului de adrese și ale sistemului pipeline aritmetic Generatorul de adrese și interfața cu memoria Asigură transferul rapid al datelor între sistemul pipeline aritmetic și memorie Primește adresele logice ale vectorilor de la controlerul vectorial 19.12.2023 Structura sistemelor de calcul (05-1) 26 Arhitecturi vectoriale (6) Registrele Au rolul unor buffere între memoria principală și sistemul pipeline aritmetic Permit un acces mai rapid la date Operanzii vectoriali sunt transferați între memoria principală și registre în blocuri Sistemul pipeline aritmetic Recepționează operanzii din registre și returnează rezultatele în registre 19.12.2023 Structura sistemelor de calcul (05-1) 27 Arhitecturi vectoriale (7) Exemplu: Adunarea a doi vectori A, B: vectori de câte N elemente Vectorul sumă C: Ci = Ai + Bi (i = 1.. N) Secvența pentru o arhitectură SISD: for (i=1; i

Use Quizgecko on...
Browser
Browser