You are on page 1of 16

121

6
Vi{eprocesorske arhitekture

6.1 Ra~unarski sistemi upravqani kontrol-


nim tokom

Najve}i broj ra~unarskih arhitektura koristi tradicionalni (von Neumann-ov)


sekvencijalni tok izvo|ewa ra~unawa u procesorskim elementima, odre|en kontro-
lnim tokom. Niz instrukcija, smje{tenih u memoriji, izvodi se sekvencijalno jedna
za drugom. Eksplicitni transfer kontrole na drugi sekvencijalni niz instrukcija
ostvaruje se programski, odgovaraju}om naredbom.
Po Flynn-ovoj klasifikaciji, vi{eprocesorski sistemi se dijele na:

• SIMD - ma{ine sa jednim tokom instrukcija i vi{estrukim tokom podataka,

• MISD - ma{ine sa vi{estrukim tokom instrukcija i jednim tokom podataka,

• MIMD- ma{ine sa vi{estrukim tokom i instrukcija i podataka.


122

6.1.1 SIMD ra~unarski sistemi (Single instruction-multiple data)


Kod arhitektura ovog tipa postoji jedan sekvencijalni tok instrukcija i jedna
kontrolna jedinica koja upravqa istovremenim izvr{ewem svake instrukcije na
vi{e procesnih elemenata. Svi omogu}eni procesni elementi izvode (istu) instru-
kciju nad razli~itim podacima, ~ime se realizuje paralelna obrada na odre|enom
skupu podataka. Jednim instrukcionim tokom se izbjegava ponavqawe procesa doba-
vqawa instrukcije za svaku procesnu jedinicu. S obzirom na to da svi procesori
rade sinhronizovano, na osnovu upravqa~kih signala iz kontrolne jedinice, ovakve
arhitekture su pogodne za eksploataciju sitnozrnastog paralelizma. Osnovne
varijante ovih arhitektura predstavqene su na Sl. 6.1.

Procesorska poqa (array processors)

Kod ra~unara sa ovim tipom arhitekture, procesor se sastoji iz skupa procesnih


elemenata (PE) povezanih sinhronom mre`om. Svi procesni elementi rade pod
kontrolom jedne kontrolne jedinice (CU). Program koji se izvodi mo`e da se
nalazi ili u memoriji kontrolne jedinice, ili u procesnim elementima. Skalarne
ili kontrolne instrukcije izvodi direktno CU. CU dekodira vektorske instruk-
cije, odre|uje na kojim PE se teku}a instrukcija izvodi i inicira sinhrono
izvr{ewe na svim (omogu}enim) PE.
Podaci nad kojima PE izvode zahtijevanu operaciju se ili ve} nalaze u memorijskim
modulima dostupnim PE, ili se prethodno pune u memoriju (od strane CU (emisijom)
preko kontrolne magistrale, ili od strane eksterne jedinice preko sistemske
magistrale podataka). Na taj na~in, vi{e procesnih elemenata izvr{ava paralelnu
obradu nad odre|enim skupom podataka. Obra|ene podatke PE-i smje{taju u
memoriju. Memorija u kojoj se nalaze podaci mo`e biti ili lokalna memorija (LM)
procesnih elemenata ili globalni memorijski moduli (M), kojima mogu pristupiti
razli~iti PE. U oba slu~aja realizuje se mre`a za povezivawe, kojom se omogu}ava
izmjena podataka izme|u PE, odnosno pristup zajedni~kim podacima (Sl 6.1).
Smje{tawe podataka po memorijskim elementima mora biti takvo da omogu}i da
se elementima nizova podataka, koji treba da se procesiraju paralelno, pristupi
istovremeno i bez konflikta. Za ure|ewe podataka na opisani na~in ~esto je
potrebno mijewati raspored podataka po procesnim elementima, {to se realizuje
123

mre`om za povezivawe i odgovaraju}im funkcijama usmjeravawa i prenosa (rutira-


wa).

I/O
Linije podataka
Podaci i instrukcije

memorija
CU Kontrola

Kontrolne linije

PE0 PE1 PEN-1


LM0 LM1 LMN-1

Spre`na mre`a

a) PE-PE model.

b) PE - memorijski model.
Sl. 6.1 Varijante arhitektura SIMD ra~unara.
124

Procesor sa poqem PE-a se normalno povezuje na ra~unar op{te namjene (host-


doma}in) preko kontrolne jedinice. Ra~unar op{te namjene izvr{ava standardne
sistemske funkcije i komunikaciju sa spoqnim svijetom, tako da se procesorska
poqa mogu smatrati pridodatom procesnom jedinicom za izvr{avawe specifi~nih
aplikacija ili dijelova aplikacija kao {to je linearno programirawe, matri~na
algebra, prepoznavawe oblika itd.
Ipak, programirawe ovakvih procesora nije jednostavno. Ono se realizuje ili
ekstenzijom postoje}ih jezika ili posebnom bibliotekom funkcija koje se pozivaju
iz dijela aplikacije koji se izvodi na ra~unaru doma}inu. Izvo|ewe skalarnih
operacija na ovim ma{inama je relativno sporo. Vr{ne performanse se ostvaruju
rijetko i u posebno pogodnim aplikacijama. Ovaj tip organizacije je karakterisao
niz ra~unara, od prvog superra~unara Illiac-a IV pa do aktuelnih Thinking Machine
CM-2 i MasPar MP-1. Primjer sra~unavawa parcijalnih suma niza elemenata Sk =
k

∑A
i =0
i , gdje je A niz elemenata {Ai , i = 1, …n }, dat je na Sl. 6.2

Za ilustraciju, predstavi}emo organizaciju sada ve} istorijskog ra~unara Illiac-a IV


(Sl. 6.3) i dati primjere izvo|ewa operacija na ovom ra~unaru.
Illiac-a IV je ra~unar sa 64 procesora povezanih mre`om u formi re{etke.
(karakteristike ove spre`ne mre`e bi}e izlo`ene kasnije). Kontrolna jedinica
dekodira instrukcije koje se dobavqaju iz procesnih elemenata pod kontrolom
operativnog sistema, i vr{i distribuciju instrukcija za izvr{ewe ka potrebnim
procesnim elementima. Kontrolna jedinica tako|e izvodi proste skalarne
operacije. Prosqe|ivawe podataka izme|u procesnih elemenata se vr{i
instrukcijama rutirawa.
Procesni element (Sl. 6.4) ima 4 64-bitna registra (A – akumulator, B – operand
registar, R – registar za rutirawe, S – op{ti registar za prihvat podataka), 16 –
bitni indeks registar X i 8 – bitni statusni/mod registar D. Svaki procesni
element ima vezu / mo`e rutirati podatke, ka 4 druga procesna elementa.
125

Sl. 6.2 Sra~unavawe parcijalnih suma niza elemenata na mre`nom procesoru.


126

Sl. 6.3 Organizacija ra~unara Illiac-a IV.


127

Si

Xi

Di

Sl. 6.4 Struktura procesnog elementa Illiac-a IV.

Primjer izvo|ewa proste vektorske operacije na ovom ra~unaru dat je na Sl. 6.5. i
Sl. 6.6.
128

Sl. 6.5 Sabirawe dva vektora: du`ina vektora jednaka je broju procesnih elemenata.
129

Sl. 6.6 Sabirawe dva vektora: du`ina vektora je ve}a od broja procesnih elemenata.
130

Asocijativni procesori

Za razliku od klasi~nih ra~unara, gdje se referencirawe nekog podatka u memoriji


ostvaruje na osnovu adrese, asocijativni procesori referenciraju podatke u
memoriji na osnovu wihovog sadr`aja. Na taj na~in je mogu}e referencirawe vi{e
podataka istovremeno. Memorija koja ima navedene mogu}nosti, naziva se
asocijativna memorija.
Tipi~na organizacija asocijativne memorije data je na Sl. 6.7. Kqu~ za referenci-
rawe se specifikuje preko registra za komparaciju (CR) i registra za maskirawe
(MR). Upravqa~ka logika inicira komparaciju sadr`aja svih nemaskiranih dije-
lova CR sa svim lokacijama asocijativne memorije. Komparaciju izvodi kontrolna
logika pridru`ena svakoj memorijskoj lokaciji, i za one lokacije koje zadovoqavaju
tra`eni uslov, postavqa se logi~ka jedinica u korespondentni bit registra za
indikaciju. Komparacija se mo`e izvoditi serijski, bit po bit, ili paralelno
(svi biti se istovremeno procesiraju).

Registar za komparaciju

Registar maskirawa

Indikator Privremeni
registar

Sl. 6.7 Organizacija asocijativne memorije.


131

Vi{e sukcesivnih selekcija se mo`e sa~uvati u podskupu privremenih


registara, a rezultantna selekcija se mo`e dobiti logi~kim operacijama nad
elementima ovog podskupa.
Asocijativni procesori se povezuju na ra~unar doma}in kao specijalizovani
procesori za odre|ene aplikacije. Modul za povezivawe sa okolinom (obi~no se
radi po korisni~kim zahtjevima) obezbje|uje {irok spektar mogu}nosti: direktan
pristup memoriji, paralelni U/I, spregu sa drugim specijalizovanim procesorima,
kori{tewe senzorskih ulaza itd. Sve ovo omogu}ava postizawe visokih performan-
si u aplikacijama kao {to su matri~ne operacije, upravqa~ki sistemi u stvarnom
vremenu, sistemi za upravqawe i manipulaciju podacima, gdje se sekvencijalno
procesirawe realizuje na konvencionalnom ra~unaru-doma}inu, a paralelne opera-
cije (prije svega selekcije na skupu podataka) na pridodatim asocijativnim
procesorima.
Zbog skupe realizacije komparatorske logike, asocijativne memorije su malog
kapaciteta i skupe, {to limitira wihovu upotrebu za specijalizovane namjene.
Zna~ajnu primjenu asocijativnih memorija imamo u realizaciji ke{ memorija, gdje
se utvr|ivawe raspolo`ivosti podatka/instrukcije u ke{u utvr|uje na bazi privje-
ska (tag) generisanog na bazi adrese. Primjeri kori{tewa asocijativne ke{ memo-
rije su IBM 3033, Motorola 88110, Intel Pentium procesori itd.
Primjer paralelne selekcije elemenata koji zadovoqavaju zahtijevani uslov dat
je na Sl. 6.8.
132

Sl. 6.8 Selekcija elemenata po uslovu tra`ewa u asocijativnoj memoriji.


133

Vektorski procesori

Mnogi, ra~unski zahtjevni algoritmi, sadr`e veliki broj operacija koje rade sa
ure|enim skupovima (nizovima) elemenata-vektorima. Ove operacije se mogu klasi-
fikovati u slijede}e osnovne grupe: f1: V → V, f2: V → S, f3: V x V → V, f4: V x S → V,
gdje su V i S vektorski odnosno skalarni operand, respektivno. Neke varijante
vektorskih instrukcija su predstavqene na Sl. 6.10. Zajedni~ka im je karakteri-
stika da se ista operacija ponavqa na svim elementima ili parovima elemenata
vektora. Izvo|ewe ovih operacija se mo`e optimizovati ako se izbjegne ponavqawe
dobavqawa i dekodirawa instrukcija za svaki element vektora, odnosno ako se
cijeli proces inicira jednom (vektorskom) instrukcijom. Vektorska instrukcija
sadr`i operacioni kod, adrese operanada, du`inu vektora i adresni inkrement.
Po{to se kod skalarnih ma{ina ove operacije implementiraju programskom
petqom, izbjegava se tako|e gubitak uslijed programske kontrole zavr{etka
petqe. Generalna organizacija vektorskog procesora prikazana je na Sl. 6.9.

Skalarni procesor

Ss1

Skalarni Ss2
Jedinica za Proto~ni stepeni
registri
procesirawe
instrukcija
S sn

Kontroler
Glavna vektorskih
memorija instrukcija

S v1

Sv2
Kontroler
vektorskog Vektorski
pristupa registri
Svn

Vektorski procesor

Sl. 6.9 Organizacija vektorskog procesora.

Svaki vektorski registar mo`e da sadr`i jedan vektor sa N elemenata. Jedinica


za procesirawe instrukcija dobavqa i dekodira instrukcije iz glavne memorije i
prosqe|uje skalarne instrukcije skalarnom procesoru, a vektorske kontroleru
vektorskih instrukcija. Skalarni i vektorski procesor se (svaki) sastoji iz vi{e
paralelnih proto~nih funkcionalnih sistema inplementiranih za efikasnu
proto~nu obradu skalarnih odnosno vektorskih instrukcija.
134

Sl. 6.10 Neke varijante vektorskih instrukcija.


135

Proto~ni procesori mogu biti jednofunkcionalni ili vi{efunkcionalni.


Vektorska instrukcija se inicira i izvodi pod kontrolom vektorskog instrukci-
onog kontrolera, koji vr{i raspore|ivawe izvr{ewa vektorske operacije na jedan
ili vi{e proto~nih funkcionalnih sistema vektorskog procesora, inicira priba-
vqawe operanada pod kontrolom vektorskog kontrolera pristupa, te inicira
po~etak izvr{ewa vektorske operacije u vektorskom procesoru. Vrijeme
pribavqawa operanada i postavqawa kontrolnih registara (pripremno vrijeme
vektorske operacije) je obi~no znatno ve}e od vremena procesirawa vektora tp ~ t1 *
N, gdje je t1 vrijeme izme|u sukcesivnih operanada, a N du`ina vektora. Nakon
inicirawa obrade, sukcesivni operandi ulaze u proto~ni funkcionalni sistem sa
periodom t1 i obra|uju se redom u proto~nim stepenima. Izlaz iz zadweg proto~nog
stepena se smje{ta ili u memoriju ili u vektorski registar. Kada se neki proto~ni
funkcionalni sistem i odgovaraju}i vektorski registri dodijele za izvo|ewe neke
vektorske operacije, ne mogu se dodijeliti za izvo|ewe slijede}e operacije sve
dok se teku}a operacija ne zavr{i. Da bi se mogu}nosti vektorskog procesora
iskoristile na adekvatan na~in, potrebno je generisati optimizovan izvr{ni kod,
sa ciqem maksimalnog kori{tewa proto~nih resursa i minimizacijom pripremnih
vremena vektorskih operacija, za {to su razvijeni vektoriziraju}i prevodioci.
Grafi~ki prikaz izvo|ewa operacija u vektorskom i osnovnom skalarnom
procesoru dat je na Sl. 6.11.
Prva generacija vektorskih superra~unara je razvijena krajem 60-tih godina i
reprezentuju je STAR-100 TI-ASC i CDC 6600/7600. Drugu generaciju ovih ma{ina
predstavqaju CRAY-1, Cyber-200, Fujitsu VP-200, svi procesnih mo}i ispod 500
Mfloaps-a. Posqedwe generacije ovih ma{ina reprezentuju Cray Y-MP te Fujitsu 2000,
NEC SX-X, Hitachi S800 sistemi.
136

Sl. 6.11 Grafi~ki prikaz izvo|ewa operacija u vektorskom i osnovnom skalarnom


procesoru.

You might also like