arhitectura sistemelor de calcul 14. descrierea sistemelor...
TRANSCRIPT
![Page 1: Arhitectura Sistemelor de Calcul 14. Descrierea sistemelor ...andrei.clubcisco.ro/cursuri/f/f-sym/3asc/elearn/14. Descrierea sistemelor...– Operatia logica ce trebuie operata in](https://reader030.vdocuments.net/reader030/viewer/2022040102/5e4df9b911c1c7142558aa4c/html5/thumbnails/1.jpg)
Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic
Arhitectura Sistemelor de Calcul
14. Descrierea sistemelor reprezentative din clasa SIMD
![Page 2: Arhitectura Sistemelor de Calcul 14. Descrierea sistemelor ...andrei.clubcisco.ro/cursuri/f/f-sym/3asc/elearn/14. Descrierea sistemelor...– Operatia logica ce trebuie operata in](https://reader030.vdocuments.net/reader030/viewer/2022040102/5e4df9b911c1c7142558aa4c/html5/thumbnails/2.jpg)
2
Exemple de Masini SIMD • Before SIMD: Digital Signal Processors (DSP) –
masini dedicate cu set propriu de instructiuni si aplicabile unui anume tip de date (Audio/Video)
• The 70’s: Vector supercomputers – Cray machines • The 80’s:
– Massively Parallel Processor (MPP); mai mult de 10.000 de procesoare: NASA/GSFC
– Connection Machine – MIT: CM-1 & CM-2
• The 90’s: – Masina Blitzen – Intel: MMX, SSE, SSE2 & SSE3 – AMD: 3DNow!
![Page 3: Arhitectura Sistemelor de Calcul 14. Descrierea sistemelor ...andrei.clubcisco.ro/cursuri/f/f-sym/3asc/elearn/14. Descrierea sistemelor...– Operatia logica ce trebuie operata in](https://reader030.vdocuments.net/reader030/viewer/2022040102/5e4df9b911c1c7142558aa4c/html5/thumbnails/3.jpg)
3
Cuprins
• Masini SIMD
• Masina Blitzen: – Arhitectura – Formatul Instructiunilor – Exemple
• Masina Blitzen vs. MPP
![Page 4: Arhitectura Sistemelor de Calcul 14. Descrierea sistemelor ...andrei.clubcisco.ro/cursuri/f/f-sym/3asc/elearn/14. Descrierea sistemelor...– Operatia logica ce trebuie operata in](https://reader030.vdocuments.net/reader030/viewer/2022040102/5e4df9b911c1c7142558aa4c/html5/thumbnails/4.jpg)
4
Arhitectura Masinii Blitzen – PE
P
SUM CARRY Sumator
B
Logic
RAM 1024b 256x4b
Shift Register
MUX/DEMUX
30 biti
A C
G K
O R
Data Bus (D) 1 bit
mask
Arbitru
logica PE
vecine
Adr locala
Adr globala
10 biti
2 biti
8 biti
I/O Bus 4 biti
PE = element de procesare pe 1 bit
![Page 5: Arhitectura Sistemelor de Calcul 14. Descrierea sistemelor ...andrei.clubcisco.ro/cursuri/f/f-sym/3asc/elearn/14. Descrierea sistemelor...– Operatia logica ce trebuie operata in](https://reader030.vdocuments.net/reader030/viewer/2022040102/5e4df9b911c1c7142558aa4c/html5/thumbnails/5.jpg)
5
Elementele PE • P – registru pe 1 bit
– Operanzi – Operatori in functiile aritmetice – Utilizat la rutare: primeste ops de la PE-uri adiacente
• K – registru de control aritmetico-logic – Faciliteaza aparitia ops aritmetice inverse (+/-) – Algoritmi de impartiri (non-returning-division)
• G – registru de mascare – Se indica daca operatia se executa sau nu
• A & B – registru pe 1 bit – Preiau rezultatele de la sumator – Contribuie la suma
![Page 6: Arhitectura Sistemelor de Calcul 14. Descrierea sistemelor ...andrei.clubcisco.ro/cursuri/f/f-sym/3asc/elearn/14. Descrierea sistemelor...– Operatia logica ce trebuie operata in](https://reader030.vdocuments.net/reader030/viewer/2022040102/5e4df9b911c1c7142558aa4c/html5/thumbnails/6.jpg)
6
Elementele PE
• Sumator – ADD: A + P + C → B, C – HADD: A + C → B, C
• Shift Register (SR) – Registru de deplasare – N stagii = 2, 6, 10, 14, 18, 22, 26, 30 – 30 biti + A & B = 32 biti – Bitul obtinut prin deplasare nu e neaparat salvat – La fiecare pas SR se deplaseaza cu o pozitie R/L – SR-ul poate fi sters
A P C C B 0 0 0 0 0 0 0 1 0 1 ……………… 1 1 1 1 1
B 16 biti A 8 biti 1 4 biti 1
10 bits adr locala - msb
![Page 7: Arhitectura Sistemelor de Calcul 14. Descrierea sistemelor ...andrei.clubcisco.ro/cursuri/f/f-sym/3asc/elearn/14. Descrierea sistemelor...– Operatia logica ce trebuie operata in](https://reader030.vdocuments.net/reader030/viewer/2022040102/5e4df9b911c1c7142558aa4c/html5/thumbnails/7.jpg)
7
Memoria & I/O Bus
PE1
• Accesul la memoria RAM – Cu o adresa globala de forma 2p (p e multiplu de 2) – Cu o adresa locala → specific masinii Blitzen (10 biti)
• I/O Bus – Formata din 4 biti si utilizata pentru conectarea PE-urilor
la resurse externe de stocare a datelor – O magistrala I/O este folosita in comun de catre 16 PE-uri
PE2 PE3 PE16 …
![Page 8: Arhitectura Sistemelor de Calcul 14. Descrierea sistemelor ...andrei.clubcisco.ro/cursuri/f/f-sym/3asc/elearn/14. Descrierea sistemelor...– Operatia logica ce trebuie operata in](https://reader030.vdocuments.net/reader030/viewer/2022040102/5e4df9b911c1c7142558aa4c/html5/thumbnails/8.jpg)
8
Chip-ul Blitzen
• Un Chip Biltzen este format din – 8 magistrale – 8 linii a cate 16 procesoare fiecare → 128 PE/chip,
fiecare cu cate 1K de RAM – Fiecare PE functioneaza la 20MHz cu 8x4=32 biti/ciclu
PE1 PE2 PE3 PE16 …
PE1 PE2 PE3 PE16 …
… … … … …
8
1
![Page 9: Arhitectura Sistemelor de Calcul 14. Descrierea sistemelor ...andrei.clubcisco.ro/cursuri/f/f-sym/3asc/elearn/14. Descrierea sistemelor...– Operatia logica ce trebuie operata in](https://reader030.vdocuments.net/reader030/viewer/2022040102/5e4df9b911c1c7142558aa4c/html5/thumbnails/9.jpg)
9
Un Sistem Blitzen
PE PE PE PE
PE PE PE PE
PE PE PE PE
PE
N
S
E W
NW NE
SE SW
• Sunt 8 directii de rutare – N, S, E, W, NE, SE, SW, NW
• Chip-urile Blitzen se grupeaza pe linii de 128 chip-uri → 128 x 128 PE = 16384PE (sistem Blitzen)
Structura X-Grid
![Page 10: Arhitectura Sistemelor de Calcul 14. Descrierea sistemelor ...andrei.clubcisco.ro/cursuri/f/f-sym/3asc/elearn/14. Descrierea sistemelor...– Operatia logica ce trebuie operata in](https://reader030.vdocuments.net/reader030/viewer/2022040102/5e4df9b911c1c7142558aa4c/html5/thumbnails/10.jpg)
10
Cuprins
• Masini SIMD
• Masina Blitzen: – Arhitectura – Formatul Instructiunilor – Exemple
• Masina Blitzen vs. MPP
![Page 11: Arhitectura Sistemelor de Calcul 14. Descrierea sistemelor ...andrei.clubcisco.ro/cursuri/f/f-sym/3asc/elearn/14. Descrierea sistemelor...– Operatia logica ce trebuie operata in](https://reader030.vdocuments.net/reader030/viewer/2022040102/5e4df9b911c1c7142558aa4c/html5/thumbnails/11.jpg)
11
Formatul Instructiunilor
• La fiecare ciclu se executa o instructiune intr-un pipeline cu 3 stagii: Decodare, Broadcast, Executie
• Instructiunile sunt pe 23 de biti organizati astfel:
0 1 2 3 4 5 6 7 8 9 A B C D E F G H I L M N O Biti control local I/O & Memorie Data Bus, G, K, Tree Registru A Operare registru deplasare Suma B, C Informatie logica si de rutare, logica P Sursa datelor magistrala
![Page 12: Arhitectura Sistemelor de Calcul 14. Descrierea sistemelor ...andrei.clubcisco.ro/cursuri/f/f-sym/3asc/elearn/14. Descrierea sistemelor...– Operatia logica ce trebuie operata in](https://reader030.vdocuments.net/reader030/viewer/2022040102/5e4df9b911c1c7142558aa4c/html5/thumbnails/12.jpg)
12
Semnificatia Bitilor Instructiune • 0, 1, 2: sursa datelor de pe magistrala
– Registrii A, B, C – Registrii G sau K – Registrul P – Memorie (cand memoria e adresata un read 1b se exec)
• 3, 4, 5, 6, 7: specifica – Operatia logica ce trebuie operata in P – Operatia de rutare catre unul din cei 8 vecini – Configurarea registrului de deplasare (no assigns to P)
• 8, 9, A: operatii executate de sumator – Suma & Carry din sumator catre registrii B si C – Pot fi utilizate si pentru incarcarea lui B & C
![Page 13: Arhitectura Sistemelor de Calcul 14. Descrierea sistemelor ...andrei.clubcisco.ro/cursuri/f/f-sym/3asc/elearn/14. Descrierea sistemelor...– Operatia logica ce trebuie operata in](https://reader030.vdocuments.net/reader030/viewer/2022040102/5e4df9b911c1c7142558aa4c/html5/thumbnails/13.jpg)
13
Semnificatia Bitilor Instructiune
• B, C: operatii de deplasare/shiftare – Stanga (L)/Dreapta (R)/Stergere (D)
• D, E: operatii cu registrul A – Setare directa – Setare cu continului registrului de deplasare/shiftare
• F, G: rezultatul e transferat din magistrala de date – Catre registrii G, K – Catre OR-ul ierarhic (Tree)
• H, I: prelucrarea informatiilor din – Memoria locala (R/W operations) – I/O Bus (I/O operations)
![Page 14: Arhitectura Sistemelor de Calcul 14. Descrierea sistemelor ...andrei.clubcisco.ro/cursuri/f/f-sym/3asc/elearn/14. Descrierea sistemelor...– Operatia logica ce trebuie operata in](https://reader030.vdocuments.net/reader030/viewer/2022040102/5e4df9b911c1c7142558aa4c/html5/thumbnails/14.jpg)
14
Semnificatia Bitilor Instructiune
• Bitii de control local – L, M, N, O • L: operatii mascate & nemascate ale registrului P
– L = 1: operatiile P mascate; L = 0: operatiile P nemascate
• M: identifica operatii mascate efectuate de memorie, sumator, SR, & registrii A, B sau C – M = 1: operatiile mascate; M = 0: operatiile nemascate
• N: poate identifica daca operatiile sunt transmise sau daca a avut loc un broadcast. Este folosit pt: – N = 1: op complementate – N = 0: operatiile curente
• O: operatii cu – O = 0: adresa globala – O = 1: cu cei 10 biti din registrul de deplasare (adr locala)
![Page 15: Arhitectura Sistemelor de Calcul 14. Descrierea sistemelor ...andrei.clubcisco.ro/cursuri/f/f-sym/3asc/elearn/14. Descrierea sistemelor...– Operatia logica ce trebuie operata in](https://reader030.vdocuments.net/reader030/viewer/2022040102/5e4df9b911c1c7142558aa4c/html5/thumbnails/15.jpg)
15
Cuprins
• Masini SIMD
• Masina Blitzen: – Arhitectura – Formatul Instructiunilor – Exemple
• Masina Blitzen vs. MPP
![Page 16: Arhitectura Sistemelor de Calcul 14. Descrierea sistemelor ...andrei.clubcisco.ro/cursuri/f/f-sym/3asc/elearn/14. Descrierea sistemelor...– Operatia logica ce trebuie operata in](https://reader030.vdocuments.net/reader030/viewer/2022040102/5e4df9b911c1c7142558aa4c/html5/thumbnails/16.jpg)
16
Exemple
• Mai multe instructiuni elementare distincte se pot executa in acelasi timp: – ADD + preluare date din memorie + preluare de pe
magistrala de date
• Exemple de microinstructiuni: – SET_C // C ← 1 – ADD // A + P + C → B, C – MOV_BD // pune B pe magistrala de date D – MOV_MD(ADDR) // pune ADDR pe magistrala D – MOV_DP // pune in P continutul de pe D – ROUTE_E // trimite P catre E si incarca in P
din W
![Page 17: Arhitectura Sistemelor de Calcul 14. Descrierea sistemelor ...andrei.clubcisco.ro/cursuri/f/f-sym/3asc/elearn/14. Descrierea sistemelor...– Operatia logica ce trebuie operata in](https://reader030.vdocuments.net/reader030/viewer/2022040102/5e4df9b911c1c7142558aa4c/html5/thumbnails/17.jpg)
17
Adunarea a doua Numere (8b) #include "blitzen.h" /*contine setul de instructiuni */ #define XADDR 100 #define YADDR 200 #define WADDR 300 #define NUMBITS 8 main (){ int i; /* contor*/ set_route(GRID); load_file("in1.ism",XADDR,XADDR,8);/*citesc X si Y*/ load_file("in2.ism",YADDR,YADDR,8); /* fac suma W = X + Y; valori cum ar fi "X0" fac referinta
la bitul 0 din X. */ CLR_C; /* clear C, A <- x0*/ MOV_MD(XADDR); MOV_DA; END; MOV_MD(YADDR); /* P <- Y0*/ MOV_DP; END; ADD; /* adunare */ END;
![Page 18: Arhitectura Sistemelor de Calcul 14. Descrierea sistemelor ...andrei.clubcisco.ro/cursuri/f/f-sym/3asc/elearn/14. Descrierea sistemelor...– Operatia logica ce trebuie operata in](https://reader030.vdocuments.net/reader030/viewer/2022040102/5e4df9b911c1c7142558aa4c/html5/thumbnails/18.jpg)
18
Adunarea a doua Numere (8b) for (i=0; i<NUMBITS-1; i++) { MOV_BD; /* W(i) <- B */ MOV_DM(WADDR+i); END; MOV_MD(XADDR+1+i); /* A <- X(i+1) */ MOV_DA; END; MOV_MD(YADDR+1+i); /* P <- Y(i+1) */ MOV_DP; END; ADD; /* adunare*/ END; } MOV_BD; /* W(NUMBITS-1) <- B */ MOV_DM(WADDR+NUMBITS-1); END; save_file("sum.osm",WADDR,WADDR,8); /*salvare rezultat*/ zyg_end(); }
![Page 19: Arhitectura Sistemelor de Calcul 14. Descrierea sistemelor ...andrei.clubcisco.ro/cursuri/f/f-sym/3asc/elearn/14. Descrierea sistemelor...– Operatia logica ce trebuie operata in](https://reader030.vdocuments.net/reader030/viewer/2022040102/5e4df9b911c1c7142558aa4c/html5/thumbnails/19.jpg)
19
Categorii de Algoritmi
• Algoritmii ce se preteaza la utilizarea masinii Blitzen fac parte din urmatoarele categorii
• 1. Embarrassingly Parallel Algorithms (algoritmi rusinosi paraleli) – Fiecare PE actioneaza independent (paralelism maxim); – Exemplu: Valoarea de prag (apartenenta la domeniu)
• 2. Near Embarrassingly Parallel Algorithms – Un PE are nevoie de informatii pe care le va primi de la
alte PE – Exemplu: tratarea imaginilor (filtre etc); detectia
contururilor
![Page 20: Arhitectura Sistemelor de Calcul 14. Descrierea sistemelor ...andrei.clubcisco.ro/cursuri/f/f-sym/3asc/elearn/14. Descrierea sistemelor...– Operatia logica ce trebuie operata in](https://reader030.vdocuments.net/reader030/viewer/2022040102/5e4df9b911c1c7142558aa4c/html5/thumbnails/20.jpg)
20
Cuprins
• Masini SIMD
• Masina Blitzen: – Arhitectura – Formatul Instructiunilor – Exemple
• Masina Blitzen vs. MPP
![Page 21: Arhitectura Sistemelor de Calcul 14. Descrierea sistemelor ...andrei.clubcisco.ro/cursuri/f/f-sym/3asc/elearn/14. Descrierea sistemelor...– Operatia logica ce trebuie operata in](https://reader030.vdocuments.net/reader030/viewer/2022040102/5e4df9b911c1c7142558aa4c/html5/thumbnails/21.jpg)
21
Masina Blitzen vs. MPP
• MPP = Massively Parallel Processor • Asemanari Blitzen / MPP:
– Ambele sunt masini SIMD, cu acelasi mod de rutare – MPP-urile au > 10k de PE-uri – PE-urile lucreaza la nivel de bit – Pt B → A avem un registru de shiftare/deplasare – Gatuirea majora e datorata transferului de informatii din
memoria off-chip catre chip – Au acelasi numar de registrii – Bitul K de la Blitzen permite o executie a datelor de tip
MIMD – Blitzen si MPP au utilizari similare
![Page 22: Arhitectura Sistemelor de Calcul 14. Descrierea sistemelor ...andrei.clubcisco.ro/cursuri/f/f-sym/3asc/elearn/14. Descrierea sistemelor...– Operatia logica ce trebuie operata in](https://reader030.vdocuments.net/reader030/viewer/2022040102/5e4df9b911c1c7142558aa4c/html5/thumbnails/22.jpg)
22
Particularitati Blitzen
• Registrul de Shiftare/Deplasare este bidirectional
• Blitzen-ul are memorie on-chip de 1k (1024 b)
• Este posibila mascarea separata a diverselor tipuri de operatii cu memoria sau cu SR (de deplasare)
• Exista un control local al adresei de memorie (Local Address Modifier)
• Masina Blitzen este mult mai performanta ca MPP