You are on page 1of 18

Paralelni procesorski

sistemi
Arhitektura računara (SIIT)
Murov zakon
Murov zakon je zapažanje da se broj
tranzistora u integrisanim kolima
udvostručava otprilike svake dve godine.
Granice Murovog zakona
● Smanjenje veličine tranzistora po svim
dimenzijama na polovinu:
○ 4 puta veći broj tranzistora na istom Porast frekvencije rada i potrošnje procesora
prostoru. u periodu od 30 godina
○ Manja putanja omogućava 4 puta veću
brzinu.
○ Isti napon i snaga, 4 puta veća potrošnja.
● Procesorski ciklus mora biti toliko
dugačak da u toku trajanja ciklusa signal
može da pređe put od svog izvorišta do
svog odredišta.
● Zid potrošnje: (engl. power wall)
potrošnja uzrokuje zagrevanje i ne sme
da pređe maksimalno dozvoljenu
vrednost.
Klasifikacija računara
Klasifikacija računara prema M. Flinu: ● MISD (Multiple Instruction stream Single
Data stream) - paralelni računar sa više
● SISD (Single Instruction stream Single Data tokova naredbi i sa jednim tokom
stream) - računar sa jednim procesorom podataka.
koji ima jedan tok naredbi i jedan tok
podataka. ● MIMD (Multiple Instruction stream
Multiple Data stream) - računar sa više
● SIMD (Single Instruction stream Multiple procesora koji ima više tokova naredbi
Data streams) - računar sa više procesnih i više tokova podataka, tj. izvršavaju se
elemenata, koji ima jedan tok naredbi i različiti programi nad različitim
više tokova podataka, tj. izvršava se isti podacima.
program nad različitim podacima.
Paralelizam u radu procesora
Paralelizam na nivou instrukcije -ILP (engl. Instruction Level Parallelism)

● preklapanje rada pojedinih delova jednog procesora/jezgra

Paralelizam na nivou procesora - PLP (engl. Processor Level Parallelism)

● uvođenje više procesora opšte namene u organizaciju računara


Protočna obrada
Izvršavanje mašinskih naredbi se sastoji od
više relativno nezavisnih aktivnosti:

1. dobavljanje mašinske naredbe


2. dekodiranje naredbe
3. dobavljanje operanada naredbe
4. izvršavanje operacije
5. odlaganje rezultata

Ove aktivnosti je moguće preklopiti.


Podrazumeva da su pomenuti delovi ili
stepeni (engl. stage) procesora povezani u
protočne strukture (engl. pipeline).
Superskalarna arhitektura
Superskalarna arhitektura omogućava
istovremeno pokretanje više nezavisnih
naredbi (multiple instruction issue) koje će
istovremeno zauzimati različite stepene
procesora, namenjene za izvršavanje raznih
operacija (celobrojne aritmetike, aritmetike
realnih brojeva ili prenosa podataka između
lokacija radne memorije i registara).

Podrazumeva se da dobavljanje naredbe,


njeno dekodiranje, dobavljanje operanada i
odlaganje rezultata traju kraće od izvršavanja
operacije.
RISC procesori
Skup instrukcija RISC (Reduced Instruction Set Izvedba RISC procesora zauzima mnogo
Computer) procesora podređen povećanju manje prostora, što omogućava:
brzine izvršavanja programa - sadrže
uglavnom samo neophodne naredbe. 1. skraćivanje procesorskog ciklusa,
2. povećanje broja registara opšte namene,
● naredbe prenosa podataka između 3. proširenje adresnog prostora,
lokacija radne memorije i registara 4. povećanje paralelizma u radu procesora,
procesora (load, store), 5. ugradnju skrivene memorije u procesor i
● naredbe celobrojne aritmetike 6. prebacivanje upravljanja virtuelnom
● aritmetike realnih brojeva memorijom u nadležnost procesora.
● logičke i upravljačke naredbe. 7. veći broj registara opšte namene (32 i više)

Procesori koji nisu RISC nazivaju se CISC


(Complex Instruction Set Computer)
Paralelizam na nivou instrukcije (ILP)
Paralelizam na nivou procesorskih naredbi Broj raspoloživih nezavisnih naredbi je
(instruction level parallelism) je mogućnost moguće povećati sledećim metodama:
istovremenog izvršenja više nezavisnih
naredbi unutar procesora, pomoću protočne ● Spekulativno izvršavanje (speculative
obrade. execution)
● Predviđanje grananja (branch prediction)
(Uglavnom) ne zahteva programersku ● Prekoredno izvršavanje (out-of-order
asistenciju. execution)
● Višenitno izvršavanje (multithreading) -
Broj istovremeno izvršenih naredbi u jednom zahteva asistenciju programera
procesorskom ciklusu zavisi od broja ● Dugačak mašinski format naredbe -
protočnih struktura procesora, ali i od broja VLIW (very long instruction word)
raspoloživih nezavisnih naredbi.
Spekulativno izvršavanje
Izvršavanje pojedinih naredbi započne pre Primer:
nego što je poznato da li će one uopšte biti
izvršavane. if (a>b)
a = a - b;
Ako u programu postoji grananje sa else
izračunavanjem vrednosti različitog b = b - a;
aritmetičkog izraza u svakoj grani, tada se
mogu izvršiti naredbe radi računanja Izvršavaju se naredbe koje računaju vrednost
vrednosti oba aritmetička izraza pre nego je oba aritmetička izraza i pre nego je poznato
poznato koja od grana će biti odabrana u koji od njih će biti potreban.
izvršavanju programa.
Višenitno izvršavanje
Višenitno izvršavanje (engl. multithreading) je
način da se poveća broj raspoloživih
nezavisnih naredbi tako što programer označi
nezavisne delove svog programa, koji se
nazivaju niti (thread).

Naredbe iz raznih niti istog programa


međusobno nezavisne i mogu se izvršavati u
proizvoljnom redosledu (thread level
parallelism).

Izvršavanja naredbi raznih niti istog programa


mogu istovremeno počinjati (simultaneous
multithreading), kad god za to postoje
raspoloživi resursi u procesoru.
Paralelizam na nivou procesora (PLP)
Potreba za brzinom obrade podataka ne Načini organizacije računara sa više
može uvek da se zadovolji ubrzanjem radnog procesora:
takta CPU, kao ni paralelizmom na nivou
instrukcije. ● Računar sa paralelnom obradom
podataka
Za veća ubrzanja, potreban je dizajn računara ○ Vektorski procesori
sa više procesora. ○ Grafički procesori - GPU
● Multiprocesor (više procesora sa
Pojedinačni procesor u ovakvom računaru se deljenom memorijom)
naziva jezgro (engl. core). ● Multiračunar (grupa povezanih računara
- klaster)
Ograničenje paralelizma
Amdalov zakon Primer:

Ako je p deo obrade koji može da se Ako se program izvršava ukupno 20 sati na
paralelizuje (0<p<1), a s broj procesnih jednom procesorskom jezgru, a deo koji ne
elemenata (jezgara), onda je ubrzanje S dato: može da se paralelizuje se izvršava 1 sat
(p=19/20=0.95), onda maksimalno ubrzanje
S(s)=1/((1 - p) + p/s) iznosi

odnosno S < 1/(1 − p) = 20

S(s) < 1/(1 - p)


Grafički procesori (GPU)
Grafički procesori primenom SIMD metode
mogu da brzo obrade veliku količinu
podataka sa pomoću mnoštva jednostavnih
jezgara (manycore).

Ovaj način obrade je prvo našao primenu u


obradi slike, a nalazi primenu i u drugim
oblastima (rešavanje sistema fizičkih
jednačina, mašinsko učenje, ...)

Primer: Nvidia Fermi GPU koji se sastoji od 16


SM (streaming multiprocessor) protočnih
multiprocesora sa po 32 CUDA (Compute
Unified Device Architecture) jezgara
Multiprocesori sa deljenom memorijom
Računar sa više procesora i deljenom Čvrsto spregnuta (tightly coupled) organizacija
memorijom - SMP (shared memory
multiprocessor) Zajednička radna memorija olakšava
programiranje, jer bilo koji procesor može da
Nazivaju se i višejezgarni procesori (multicore) izvršava bilo koji od nezavisnih niti/programa i
da pristupa bilo kom podatku

Podela prema načinu pristupa memoriji:

● UMA - brzina pristupa ista za svu mem.


● NUMA - brzina pristupa pojedinim
delovima memorije se razlikuje

Problemi: proširivost (scalability),


sinhronizacija pristupa memoriji
Multiračunar (klaster)
Računar u kojima se saradnja procesora Labavo spregnuta (loosely coupled) organizacija
zasniva na razmeni poruka (message passing).
Moguća je otpornost na kvarove (fault
Svaki procesor ima svoju memoriju, a tolerance).
povezani su spojnom mrežom.
Proširivost je lakša nego kod SMP.

Komunikacija računara razmenom poruka


zahteva od programera da poznaju detalje
organizacije multiračunara, radi ispravne
raspodele programa i podataka.
Pitanja?
Da ponovimo...
Murov zakon je zapažanje da se broj Paralelizam na nivou instrukcije je mogućnost
tranzistora u integrisanim kolima istovremenog izvršenja više nezavisnih
udvostručava otprilike svake dve godine. naredbi unutar procesora.

Računari se dele na: Načini organizacije računara sa više


procesora:
● SISD
● SIMD ● Računari sa paralelnom obradom
● MISD podataka
● MIMD ● Multiprocesori (više procesora sa
deljenom memorijom)
● Multikompjuteri (grupa povezanih
računara - klasteri)

You might also like