88
SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET Stručni studij elektrotehnike Završni rad VIŠEPROCESORSKI RAČUNALNI SUSTAVI Rijeka, srpanj 2011. Kristijan Gašparac 0069030957

Višeprocesorski računalni sustavi

Embed Size (px)

DESCRIPTION

Završni rad na stručnom studiju elektrotehnike pri Tehničkom fakultetu Sveučilišta u Rijeci. Tema: Višeprocesorski računalni sustavi.

Citation preview

Page 1: Višeprocesorski računalni sustavi

SVEUČILIŠTE U RIJECI

TEHNIČKI FAKULTET

Stručni studij elektrotehnike

Završni rad

VIŠEPROCESORSKI RAČUNALNI SUSTAVI

Rijeka, srpanj 2011. Kristijan Gašparac

0069030957

Page 2: Višeprocesorski računalni sustavi

SVEUČILIŠTE U RIJECI

TEHNIČKI FAKULTET

Stručni studij elektrotehnike

Završni rad

VIŠEPROCESORSKI RAČUNALNI SUSTAVI

Mentor: prof.vis.šk.dr.sc. Predrag Domijan, dipl.ing.

Rijeka, srpanj 2011. Kristijan Gašparac

0069030957

Page 3: Višeprocesorski računalni sustavi

IZJAVA

U skladu s člankom 9. Pravilnika o završnom radu, završnom ispitu i završetku studija

Tehničkog fakulteta Sveučilišta u Rijeci od 4. srpnja 2011. godine, izjavljujem da sam

samostalno izradio završni rad pod naslovom „Višeprocesorski računalni sustavi“, prema

zadatku broj 602-04/11-14/12.

U Rijeci, 14. srpnja 2011. Kristijan Gašparac

0069030957

…………………….

Page 4: Višeprocesorski računalni sustavi

i

Sadržaj

Predgovor ........................................................................................................................................ 1

Pregled poglavlja ........................................................................................................................ 2

1. UVOD U VIŠEPROCESORSKE SUSTAVE ........................................................................ 3

1.1. Terminologija .................................................................................................................. 5

1.2. Tehnološka dostignuća .................................................................................................... 6

1.2.1. Von Neumannov model računala ............................................................................. 7

1.3. Kratki pregled tehnoloških dostignuća ............................................................................ 8

1.3.1. Osvrt unatrag radi pogleda u budućnost .................................................................. 8

1.4 Novi pristup – višeprocesorska tehnologija .................................................................. 12

2. VIŠEPROCESORSKI RAČUNALNI SUSTAVI ................................................................ 14

2.1. Paralelno računalstvo .................................................................................................... 14

2.1.1. Poteškoće pri stvaranju paralelnih programa ........................................................ 15

2.1.2. Amdahlov zakon ................................................................................................... 16

2.1.3. Gustafson – Barsisov zakon .................................................................................. 20

2.1.4. Implementacije paralelizma .................................................................................. 22

2.2. Organizacija paralelnih računala ................................................................................... 23

2.2.1. Flynn-ova taksonomija .......................................................................................... 23

2.2.2. Dijeljenje memorije u višeprocesorskim sustavima .............................................. 25

2.2.3. Višeprocesorski sustavi sa zajedničkom memorijom - UMA ............................... 26

2.2.4. Višeprocesorski sustavi s raspodijeljenom memorijom - NUMA ........................ 28

2.2.5. Sprega procesora u višeprocesorskim sustavima .................................................. 29

2.2.6. Simetrija u višeprocesorskim sustavima ............................................................... 29

2.3. Komunikacija među paralelnim procesorima ............................................................... 31

2.3.1. Tipovi komunikacije ............................................................................................. 31

Page 5: Višeprocesorski računalni sustavi

ii

2.3.2. Mehanizam komunikacije prosljeđivanjem poruka .............................................. 34

2.4. Međuvezne mreže ......................................................................................................... 34

2.4.1. Klasifikacija međuveznih mreža prema logičkim topologijama ........................... 35

2.4.2. Preusmjeravanje (Routing) .................................................................................... 40

2.4.3. Kontrola toka (Flow control) ................................................................................. 43

2.5. Vrste višeprocesorskih računalnih sustava .................................................................... 44

2.5.1. Višejezgreni procesorski sustavi ........................................................................... 44

2.5.2. Cluster računala ..................................................................................................... 47

2.5.3. Grid računala ......................................................................................................... 48

3. POTEŠKOĆE I IZAZOVI U VIŠEPROCESORSKIM RAČUNALNIM SUSTAVIMA ... 49

3.1. Koherentnost priručne memorije ................................................................................... 49

3.1.1. Direktorijski protokoli (directory protocols) ........................................................ 54

3.1.2. Protokoli prisluškivanja (snoopy protocols) ......................................................... 55

3.2. Snaga ............................................................................................................................. 56

3.3. Softverski stog ............................................................................................................... 58

3.3.1. Operativni sustav ................................................................................................... 58

3.3.2. Aplikacijski softver ............................................................................................... 59

4. IMPLEMENTACIJE VIŠEJEZGRENIH PROCESORA ..................................................... 61

4.1. Osnove IBM Cell arhitekture ........................................................................................ 61

4.1.1. Struktura Cell procesora ........................................................................................ 61

4.1.2. Power Processor Element (PPE) ........................................................................... 62

4.1.3. Synergistic Processing Elements (SPE) ................................................................ 62

4.1.4. Element Interconnect Bus (EIB) ........................................................................... 63

4.2. Intel Nehalem ................................................................................................................ 64

4.2.1. Integrirani memorijski kontroler ........................................................................... 65

4.2.2. Tri razine priručne memorije ................................................................................. 66

4.2.3. Upravljanje snagom ............................................................................................... 67

Page 6: Višeprocesorski računalni sustavi

iii

4.2.4. Turbo Boost ........................................................................................................... 69

4.2.5. Hyper-Threading tehnologija ................................................................................ 69

4.3. AMD Bulldozer arhitektura .......................................................................................... 70

4.3.1. Gradivni „višejezgreni“ moduli ............................................................................ 71

4.4. Intel Sandy Bridge – korak u budućnost ....................................................................... 72

4.4.1. Ring arhitektura ..................................................................................................... 74

4.4.2. Nova generacija Turbo Boost tehnologije ............................................................. 75

4.4.3. Integrirani grafički procesor .................................................................................. 75

4.5. Zaključne misli: budućnost – CPU ili GPU? ................................................................ 77

5. Zaključak ............................................................................................................................... 78

6. Literatura ............................................................................................................................... 79

Page 7: Višeprocesorski računalni sustavi

iv

Popis slika

Slika 1.1. Mikroprocesor Intel 4004 ....................................................................................................................... 9

Slika 1.2. Evolucija brzina mikroprocesora ............................................................................................... 7

Slika 1.3. Ilustracija Moore-ovog zakona za Intelove mikroprocesore .......................................................... 10

Slika 1.4. Disipacija snage na primjeru Intelovih mikroprocesora ............................................................... 11

Slika 2.1. Amdahlov zakon ................................................................................................................................... 19

Slika 2.2. Gustafson-Barsisov zakon ..................................................................................................................... 21

Slika 2.3. Protočna struktura za izvršavanje instrukcija ........................................................................................ 22

Slika 2.4. Flynn-ova taksonomija .......................................................................................................................... 25

Slika 2.5. Arhitektura UMA višeprocesorskih sustava sa zajedničkom memorijom ............................................... 27

Slika 2.6. Arhitektura NUMA višeprocesorskih sustava s raspodijeljenom memorijom ......................................... 28

Slika 2.7. Dijagram simetričnog višejezgrenog procesora ..................................................................................... 30

Slika 2.8. Dijagram asimetričnog višejezgrenog procesora ................................................................................... 30

Slika 2.9. Različiti tipovi komunikacije među paralelnim procesorima .................................................................. 32

Slika 2.10. Sabirnička mrežna topologija .............................................................................................................. 35

Slika 2.11. Zvjezdasta mrežna topologija ............................................................................................................. 36

Slika 2.12. Prstenasta mrežna topologija ............................................................................................................. 37

Slika 2.13. Isprepletena mrežna topologija .......................................................................................................... 38

Slika 2.14. Torusni oblik isprepletene mreže ......................................................................................................... 38

Slika 2.15. Matrična mrežna topologija ................................................................................................................ 39

Slika 2.16. Konfiguracije sjecišta u matričnoj mreži) ............................................................................................. 40

Slika 2.17. Routing algoritmi u NoC mrežama ...................................................................................................... 41

Slika 2.18. Potpuni zastoj (deadlock) .................................................................................................................... 42

Slika 2.19. Vremena prijenosa za kontrolu toka ................................................................................................... 44

Slika 2.20. Principijelni model višejezgrenih sustava ............................................................................................ 45

Slika 2.21. Osnovni model višejezgrenog procesora ............................................................................................. 46

Slika 2.22. Arhitektura računalnog clustera.......................................................................................................... 47

Slika 3.1. Odnos podataka pohranjenih u glavnoj memoriji i njihovih kopija u priručnoj memoriji ....................... 51

Slika 3.2. Komponente sustava pri korištenju direktorijskih protokola ................................................................. 54

Slika 3.3. Model full-map direktorijskog protokola............................................................................................... 55

Slika 3.4. Komponente sustava pri korištenju protokola prisluškivanja ................................................................ 56

Slika 4.1. Struktura Cell procesora ........................................................................................................................ 62

Slika 4.2. Element Interconnect Bus ...................................................................................................................... 63

Slika 4.3. FSB sabirnica (lijevo) i integrirani memorijski kontroler (desno) ............................................................ 66

Slika 4.4. Razine priručne memorije u Nehalem mikroarhitekturi ......................................................................... 67

Slika 4.5. Power Gate tehnika .............................................................................................................................. 68

Slika 4.6. Turbo Boost način optimizacije ............................................................................................................. 69

Page 8: Višeprocesorski računalni sustavi

v

Slika 4.7. Hyper-Threading tehnologija ................................................................................................................ 70

Slika 4.8. Gradivni modul AMD Bulldozer arhitekture .......................................................................................... 71

Slika 4.9. Intelova Tick-Tock strategija ................................................................................................................. 73

Slika 4.10. Sandy Bridge mikroarhitektura s pripadajućom Ring prstenastom sabirnicom ................................... 75

Slika 4.11. Sandy Bridge integrirana grafička jedinica .......................................................................................... 76

Popis tablica

Tablica 2.1. Usporedba višeprocesorkih i višejezgrenih sustava ........................................................................... 45

Tablica 3.1. Terminologija u opisivanju koherentnosti priručne memorije ............................................................ 50

Tablica 3.2. Primjer problema koherentnosti priručne memorije s write-through načinom ažuriranja ................. 52

Tablica 3.3. Primjer problema koherentnosti priručne memorije s write-back načinom ažuriranja ...................... 53

Page 9: Višeprocesorski računalni sustavi

1

Predgovor

U računalnom svijetu jedna je konstanta oduvijek prisutna – neutaživa glad za boljim

performansama, zahtjev koji nikada nije zadovoljen. Svaki novi napredak u poboljšanju

učinkovitosti procesora istovremeno podiže i korisničke zahtjeve na novu razinu.

Postojeće računalne arhitekture nalaze se na prekretnici. Prve temeljite promjene pojavile su

se 80-ih godina prošlog stoljeća kada je Reduced Instruction Set Computer (RISC) filozofija,

dobrim dijelom potaknuta akademskim istraživanjima, prožela računalnu industriju, kao reakcija

na složenost Complex Instruction Set Computer (CISC) računalne arhitekture. Tijekom dugog

niza godina, evolucija računala bila je obilježena prvenstveno razvojem sve bržih i bržih

uniprocesora1, iz generacije u generaciju okarakteriziranih sve većim brojem tranzistora i sve

višom frekvencijom, tj. taktom rada. Danas, tri desetljeća kasnije, to razdoblje doživljava svoj

zalazak.

Čak i tijekom sljedećeg desetljeća, Moore-ov zakon će jamčiti kontinuirano povećanje

gustoće tranzistora, na taj način omogućujući integraciju milijardi tranzistora na istom

silicijskom čipu. Međutim, čip multiprocesori2, poznatiji kao višejezgreni procesori, sada su

jedini način izgradnje mikroprocesora visokih performansi. Era višeprocesorskih sustava je

svanula.

Takve promjene u računalnoj industriji nisu stvar izbora – posljedica su ograničenja

tehnološkog razvoja jednojezgrenih procesora. Naime, tehnologija izrade uniprocesora dostigla

je točku u kojoj fizička ograničenja poput broja tranzistora na silicijskom čipu, kompleksnost

dizajna i disipacija snage onemogućuju napredak sljedećih generacija jednojezgrenih procesora u

vidu povećanja frekvencije rada, odnosno brzine i učinkovitosti.

Na koji način su navedeni problemi riješeni, jesu li riješeni, po čemu su višeprocesorski

sustavi bolji od jednoprocesorskih, te konačno, što su uopće višeprocesorski sustavi, tek su neka

od pitanja kojima će ovaj završni rad ponuditi odgovor.

1 Uniprocessor – engleski naziv za klasične, jednojezgrene procesore, odnosno procesore s jednom CPU jedinicom.

2 Čip multiprocesori (engl. Chip Multiprocessors, CMP) – naziv za mikroprocesore koji na jednom silicijskom čipu

mogu sadržavati veći broj cjelovitih CPU jedinica.

Page 10: Višeprocesorski računalni sustavi

2

Namjera i misao vodilja pri kreiranju ovog završnog rada bila je ponuditi jednostavan, ali

stručan pregled vrlo kompleksnog područja tehnologije višeprocesorskih računalnih sustava.

Također, rad istražuje prve generacije višeprocesorskih sustava, kao i višeprocesorske

arhitekture trenutno prisutne na tržištu, uključujući i mnoge teme povezane uz tehnološka

dostignuća, nove računalne arhitekture, softverske i programerske probleme te buduće

tehnološke izazove.

Pregled poglavlja

Rad je uređen oko četiri glavne teme, odnosno poglavlja: (1) Uvod u višeprocesorske sustave,

poglavlje je koje će ponuditi kratak uvod u temu, razjasniti postojeću terminologiju

višeprocesorske tehnologije te sumirati tehnološka dostignuća i postojeće trendove u razvoju

mikroprocesora. Poglavlja (2) i (3), Višeprocesorski računalni sustavi, te Poteškoće i izazovi u

višeprocesorskim računalnim sustavima, sačinjavaju samu srž tematike kojom se rad bavi. U

navedenim poglavljima bit će objašnjena višeprocesorska tehnologija, aktualna postignuća,

arhitekture i implementacije, prednosti i nedostaci, ali i brojne poteškoće, problemi i izazovi

kojima je višeprocesorska tehnologija izvrgnuta. (4) Implementacije višejezgrenih procesora,

zaključno je poglavlje rada koje će pružati jednostavan pregled suvremenih višejezgrenih

arhitektura, kratak uvid u budućnost same tehnologije te pokušati odgovoriti na pitanje: Što

donosi budućnost računalne tehnologije?

Naravno, svako od ovih poglavlja bavi se temama i područjima koja su kompleksnija i šira no

što bi jedan ovakav rad, pa i više njih, ikada mogao biti. Ipak, nadam se da sam i na ovako

skromnom broju stranica uspio ponuditi stručan uvod i pregled osnova ove suvremene

tehnologije.

Page 11: Višeprocesorski računalni sustavi

3

1. UVOD U VIŠEPROCESORSKE SUSTAVE

Računalna tehnologija uspjela je ostvariti nevjerojatan napredak u otprilike 65 godina od

proizvodnje ENIAC-a, prvog elektroničkog računala opće namjene. Danas, iznos manji od $500

osigurat će nam kupnju osobnog računala koje je snažnije, te posjeduje više glavne memorije i

podatkovnog prostora od računala koje je 1985. godine vrijedilo 1 000 000 američkih dolara.

Štoviše, današnje popularno Apple-ovo3 tablet računalo

4 iPad 2 (vrijedno $499) ima približno

iste performanse kao vektorsko superračunalo5 Cray 2 iz 1985. godine koje je vrijedilo, iz

današnje perspektive, nevjerojatnih 17 milijuna američkih dolara. Ovakav nagli napredak

posljedica je uvijek prisutnih noviteta i inovacija na području tehnologije izrade i dizajniranja

računala.

Iako su nova tehnološka dostignuća bila stalno prisutna u povijesti elektroničkih računala,

značajniji napredak u vidu poboljšanja performansi i izgradnje novih računalnih arhitektura

osigurao je izum mikroprocesora, 70-ih godina prošloga stoljeća. Otkrićem mikroprocesora, a

samim time i izvanrednih mogućnosti integracije složenih elektroničkih sklopova, započelo je

razdoblje jednojezgrenih procesora, takozvanih uniprocesora, čija je svaka nova generacija bila

obilježena porastom radnog takta, odnosno frekvencije, što je postalo i sinonim za sirovu snagu

procesora.

Upravo zbog rapidnog, gotovo nekontroliranog porasta performansi ovakvih procesora,

brojni su inženjeri i znanstvenici još tijekom 1980-ih godina predviđali skori kraj jednojezgrenih

procesorskih arhitektura. Ovakva su predviđanja, naravno, bila neutemeljena i preuranjena.

Naime, tijekom razdoblja 1986-2002, porast performansi jednojezgrenih procesora, temeljen na

mikroprocesoru, imao je najvišu stopu od vremena prvih tranzistorskih računala iz kasnih 1950-

ih i ranih 1960-ih.

Ipak, danas smo svjedoci smjene među generacijama procesorskih arhitektura. Jednojezgreni

procesori, dovedeni do samih granica svojih mogućnosti, polako postaju dio povijesti.

3 Apple Inc. – američka multinacionalna korporacija pod vodstvom Stevea Jobsa, koja se bavi proizvodnjom i

prodajom potrošačke elektronike, računalnog softvera i osobnih računala. Tvrtka je poznata po svojim popularnim

proizvodima kao što su iMac, MacBook, iPhone i iPad. 4 Tablet računalo – mobilno, tj. prijenosno računalo, dimenzijama malo većim od mobilnog telefona. Računalom se

upravlja pomoću ekrana osjetljivog na dodir. 5 Superračunalo (engl. supercomputer) – skupine najsnažnijih računala za izvršavanje najzahtjevnijih računskih

operacija u primjenama poput simulacija kvantne fizike, vremenske prognoze, molekularnog modeliranja i sl.

Page 12: Višeprocesorski računalni sustavi

4

Dosadašnji trendovi u proizvodnji mikroprocesora bili su bazirani na praksi integracije sve većeg

broja tranzistora na silicijskim čipovima sve manjih dimenzija, uz usporedno podizanje radne

frekvencije, što je za posljedicu dovelo do prevelike disipacije snage, odnosno topline.

Konvencionalni načini hlađenja i odvođenja topline, uz pomoć hladnjaka i ventilatora, postali su

nedostatni i neučinkoviti, čak i neprihvatljivi zbog svojih sve većih dimenzija. S druge strane,

modernije i kvalitetnije tehnike hlađenja, poput vodenih rashladnih sustava, još su uvijek

preskupe da bi bile ekonomski prihvatljive širem krugu korisnika.

Jednojezgrena procesorska tehnologija time je dosegla svoj plato, nemoćna da zadovolji sve

veće zahtjeve računalne budućnosti. Moore-ov zakon ipak nije ugrožen, barem još neko vrijeme

– ondje gdje su jednojezgreni procesori stali, jednakom će agilnošću nastaviti višeprocesorski

sustavi. Tehnologija je to koja obilježava prekretnicu i budućnost računalne tehnologije.

Prvo, uvodno poglavlje ovog završnog rada predstavlja jednostavan uvod u samu temu, razjasnit

će nejasnoće u nazivlju, te ponuditi opći pregled dostignuća u tehnologiji i dosadašnjim

trendovima proizvodnje mikroprocesora.

„Sve naše buduće aktivnosti usmjeravamo

razvoju višejezgrenih procesora.

Vjerujemo da oni čine prekretnicu u

računalnoj industriji.“

Predsjednik Intela, Paul Otellini,

opisujući Intelove buduće planove

na Intel Developers Forumu, 2005.

Page 13: Višeprocesorski računalni sustavi

5

1.1. Terminologija

Vrlo je bitno u ovom trenutku pobliže definirati stručnu terminologiju koja se upotrebljava na

području višeprocesorskih računalnih sustava, kako bi se izbjegle moguće nejasnoće, a samim

time i ukratko predstavile solucije koje ova tehnologija nudi. Naime, pojam „Višeprocesorski

računalni sustavi“ odnosi se na vrlo široko i kompleksno područje primjene u mnogočemu

sličnih, a opet različitih tehnoloških rješenja i implementacija.

Višeprocesorski računalni sustavi u osnovi su svi sustavi koji posjeduju najmanje dvije

CPU6, odnosno središnje računalne jedinice, neovisno o samom tehničkom rješenju, tj.

arhitekturi. Takvi sustavi mogu biti multi CPU, višejezgreni (multicore), mnogojezgreni

(manycore), MPSoC sustavi, te serveri i clusteri. U sljedećim redcima bit će predstavljen kratki

opis svakog navedenog sustava.

Multi CPU solucije odnose se na sustave bazirane na najmanje dva fizički odvojena

jednojezgrena procesora koja su locirana na zajedničkoj matičnoj ploči. Takva rješenja korištena

su najčešće na serverskim platformama gdje je potreba za boljim performansama uvijek veća.

Ovakvi sustavi, vrlo skupi i zbog fizičkih čimbenika vrlo složeni, predstavljaju zastarjelu

tehnologiju i način poboljšanja performansi sustava.

Mnogo naprednija, praktičnija i ekonomski prihvatljivija rješenja su višejezgreni i

mnogojezgreni sustavi. Ove sustave karakterizira integracija nekoliko CPU jedinica, odnosno

jezgara, unutar istog kućišta, na jednom silicijskom čipu. U osnovi jednaki, razlikuje ih tek broj

jezgara – dok višejezgreni procesori predstavljaju popularna komercijalna rješenja s dvije, četiri i

više jezgara, termin mnogojezgreni sustavi se odnosi na procesore s desecima i stotinama

jezgara, korištenim u naprednijim rješenjima (superračunala, znanstveno-istraživačke aktivnosti i

sl.).

MPSoC, odnosno Multi Processor System on Chip sustavi, predstavnici su VLSI7 tehnologije

koji se temelje na primjeni embedded8 aplikacija i integraciji cjelovitog sustava na jednom

silicijskom čipu (integracija višejezgrenih CPU i GPU jedinica, zvučnih kontrolera i ostale

logike, memorije, operativnog sustava i sl.). Sve popularniji u različitim primjenama tijekom

6 CPU – centralna procesna jedinica (engl. Central Processing Unit).

7 VLSI (engl. Very Large Scale Integration) – termin predstavlja tehnologiju vrlo visokog stupnja integracije

koja omogućuje integraciju velikog broja tranzistora na silicijskom čipu. Od 2008. godine, broj integriranih

tranzistora na čipu je reda veličine 109.

8 Embedded sustavi – računalni sustavi za izvršavanje dodijeljenih i specifičnih zadaća.

Page 14: Višeprocesorski računalni sustavi

6

proteklog desetljeća, predviđa se da upravo ovi sustavi umnogome čine budućnost računalne

tehnologije.

Clusteri su skupine računala organiziranih tako da sva računala djeluju zajednički te na taj

način formiraju vrlo napredne računalne sustave koji mogu biti alternativa superračunalima.

Činjenica da se radi o sustavu načinjenom od više povezanih računala clustere svrstava u

pripadnike višeprocesorskih sustava.

Kao što je vidljivo iz prethodnih opisa, sva navedena rješenja u osnovi predstavljaju

višeprocesorske sustave. Ipak, bitno je napomenuti kako će se ovaj završni rad ograničiti na opće

područje višeprocesorskih sustava, te na predstavljanje široj publici korisnika najzanimljivijih i

ekonomski najprihvatljivijih rješenja, dok će zastarjele opcije, poput multi CPU sustava, te

kompleksni sustavi poput clustera i servera biti tek kratko opisani.

Također, pojedini će pojmovi, zbog nedostatka prikladnog hrvatskog nazivlja, biti zadržani u

izvornoj, engleskoj verziji.

1.2. Tehnološka dostignuća

Suvremeni računalni sustavi, izgrađeni iz najsofisticiranijih mikroprocesora i naprednih

memorijskih hijerarhija, postižu svoje visoke performanse kroz kombinaciju dramatičnih

tehnoloških dostignuća i napredaka u računalnoj arhitekturi. Tehnološki napredci rezultirali su

eksponencijalnom stopom rasta sirove snage (tj. taktne frekvencije) i količine logičkih sklopova

(broja tranzistora) koja se može integrirati na jednom čipu.

Mikroprocesori postoje već 40 godina: Intel-ov 4004 (slika 1.1) predstavljen je 1971.

Funkcionalnost mikroprocesora 4004, u usporedbi s mainframe9 računalima tog razdoblja

(primjerice IBM System/370), bila je zanemariva. Danas, 40 godina kasnije, radne stanice

pogonjene procesorima kao što su AMD Athlon, IBM PowerPC, Intel Core, i Sun UltraSPARC

mogu parirati preostalim mainframe računalima, pa čak ih i nadmašiti funkcionalnošću i

performansama, i to po značajno nižoj cijeni. Moderni serveri i superračunala svoju snagu

najčešće temelje upravo na kombinacijama takvih „osnovnih“ mikroprocesorskih sustava.

9 Mainframe računala – velika, snažna računala najčešće korištena od strane velikih organizacija, za kritične

primjene, kao što su procesiranja velikih količina podataka, financijskih transakcija, te industrijskih i korisničkih

statistika.

Page 15: Višeprocesorski računalni sustavi

7

Slika 1.1. Mikroprocesor Intel 4004

Ipak, bilo bi pogrešno pretpostaviti da su tri načela: protočnost, paralelizam i princip

lokaliteta, kojima su današnji računalni arhitekti vođeni pri dizajniranju novih računalnih

sustava, bila utvrđena pri samom otkriću mikroprocesora. Otkrića u tehnologiji omogućila su

praktičniju primjenu i implementaciju tih načela te potaknula njihova buduća usavršavanja. Na

tim načelima upravo počivanju i mikroarhitekturalne tehnike predstavljene u ovom radu.

1.2.1. Von Neumannov model računala

Suvremeni mikroprocesori posjeduju najnaprednije tehničke značajke. Ipak, i današnja

računala u osnovi još uvijek prate konvencionalan von Neumannov model računala. Von

Neumannov model računala s pohranjivanjem programa čine četiri bloka:

Centralna procesna jedinica (CPU) koja sadrži aritmetičko-logičku jedinicu (ALU)

zaduženu za obavljanje aritmetičkih i logičkih operacija, registre s osnovnom zadaćom

vrlo brzog pohranjivanja operandi, kontrolnu jedinicu koja interpretira instrukcije i

omogućuje njihovo izvršavanje, te programsko brojilo (PC) koje označava adresu

sljedeće instrukcije koja se treba izvršiti.

Memorija za pohranu instrukcija, podataka te međurezultata i konačnih rezultata.

Memorija se implementira hijerarhijski.

Ulaz (Input) zadužen za prijenos podataka i instrukcija iz „vanjskog svijeta“ prema

memoriji.

Izlaz (Output) koji prenosi konačne rezultate i poruke prema „vanjskom svijetu“.

Page 16: Višeprocesorski računalni sustavi

8

U von Neumannovom modelu, ciklus izvršavanja instrukcija teče prema algoritmu, kako

slijedi:

1. Sljedeća instrukcija (na koju ukazuje programsko brojilo) pribavlja se iz memorije.

2. Kontrolna jedinica dekodira instrukciju.

3. Instrukcija se izvršava. Takva instrukcija može biti ALU-bazirana instrukcija, pohrana

podataka iz memorije u registar i obratno, ili naredba za uvjetno grananje.

4. Stanje programskog brojila (PC) se obnavlja.

5. Postupak se vraća na korak br. 1.

1.3. Kratki pregled tehnoloških dostignuća

Naravno, tijekom više od 60 godina povijesti računala s pohranom programa, konfiguracija

navedenih blokova, kao i sadržaj sekvence za izvršavanje instrukcija, bili su podvrgnuti

temeljitim optimizacijama. Centralna procesna jedinica poboljšana je protočnom (pipelining)

strukturom; ALU jedinica segmentirana je na nekoliko manjih funkcionalnih jedinica; niže

razine memorijske hijerarhije, poput priručne memorije (cache memorija) integrirane su na čipu.

Odnedavno, tehnološka dostignuća omogućuju integraciju nekoliko mikroprocesora s

pripadajućim priručnim memorijama na istom čipu, na taj način tvoreći čip multiprocesore (chip

multiprocessors), tj. CMP-e. Osim navedenih (mikro)arhitekturalnih dostignuća, temeljni

instrukcijski ciklus proširen je do mjere gdje je moguće istovremeno izvršavati više instrukcija u

svakom pojedinačnom koraku.

1.3.1. Osvrt unatrag radi pogleda u budućnost

Dva su područja u kojima su tehnološka dostignuća ostvarila najveći utjecaj na performanse

mikroprocesorskih sustava: povećanje radne frekvencije i povećanje broja tranzistora, odnosno

logike u sustavu. Najjednostavnije rečeno, viša frekvencija znači brže izvršavanje zadaća, a više

logike omogućuje implementaciju naprednijih funkcija u sustavu.

Page 17: Višeprocesorski računalni sustavi

9

Slika 1.2 prikazuje evoluciju taktnih frekvencija Intelovih mikroprocesora od začetaka

mikroprocesorske tehnologije (Intel 4004), pa sve do višejezgrenih mikroprocesorskih rješenja

2003. godine i kasnije.

Slika 1.2. Evolucija brzina mikroprocesora (izvor: [2])

Može se uočiti da je u razdoblju od 1971. do 2003. godine sirova snaga procesora rasla

eksponencijalnom mjerom. Frekvencija mikroprocesora 4004, koji se u skali prikazanog

dijagrama gotovo ne vidi, bila je 1,08 MHz, što je više od 3000 puta manje od popularnog

Pentiuma 4 frekvencije 3,4 GHz. Takvo povećanje otprilike odgovara trendu udvostručavanja

frekvencije svakih 30 mjeseci. Međutim, iako je Pentium 4 bio najbrži procesor svoje generacije,

to ne vrijedi i za 4004. Tada su, naime, postojala mnoga mainframe računala znatno brža od

4004. Poneka superračunala iz razdoblja kasnih 60-ih godina prošloga stoljeća, poput IBM-ovog

System 360/91 i Control Data 6600/7600, imala su frekvencije od preko 100 MHz. Pa ipak, iako

su bila dva reda magnitude jača od 4004, bila su također i 6 redova magnitude skuplja, što ih

čini apsolutno neusporedivima s korisnicima prihvatljivim komercijalnim rješenjima.

Nakon 2003. godine radne frekvencije su se ustalile na području oko 3GHz, a uskoro će biti

navedeni i razlozi zbog kojih je tehnologija postigla takav plato.

Page 18: Višeprocesorski računalni sustavi

10

Broj tranzistora koji je bilo moguće postaviti na čip rastao je usporedno s rastom frekvencija,

ali bez ikakvih promjena u reduciranju dimenzija samih tranzistora. Godine 1965., Gordon

Moore, jedan od osnivača Intela, predvidio je da će „broj tranzistora na komadiću silicija biti

udvostručen svake dvije godine“. Iako ponekad s manjim vremenskim odstupanjima, ova

pretpostavka ostala je u suštini istinita, i danas je opće poznata kao Moore-ov zakon. Slika 1.3

vrlo zorno prikazuje Moore-ov zakon, tj. eksponencijalni napredak u broju tranzistora na

primjeru Intelovih mikroprocesora (uočiti logaritamsku skalu). Od najjednostavnijeg Intelovog

4004 mikroprocesora sa samo 2300 tranzistora do dvojezgrenog Itanium procesora iz 2006. koji

integrira 1,7 milijardu tranzistora, postignut je faktor rasta 2000. Vjeruje se Moore-ov zakon

može biti održati takav trend rasta do 2025. godine.

Slika 1.3. Ilustracija Moore-ovog zakona za Intelove mikroprocesore (izvor: [2])

Osim što je omogućio implementaciju više logike (samim time i naprednijih funkcija) te više

podatkovnog prostora (ublaživši tako neuravnoteženost između brzine procesora i latencije

memorije), Moore-ov zakon je također reducirao troškove i osigurao veću pouzdanost.

Ipak, takav eksponencijalni rast ne dolazi bez poteškoća i izazova. Jedna od tih poteškoća jest

veličina samog proizvodnog procesa. Naime, proces proizvodnje poluvodičkih komponenata,

koji je uznapredovao od 10 µm procesa iz 1971. godine, do današnjeg 28 nm (odnosno 32 nm u

slučaju aktualnih procesora) proizvodnog procesa, ne može se reducirati beskonačno. Samim

time, i broj tranzistora koji se mogu postaviti na čip je fizički ograničen veličinom proizvodnog

procesa.

Page 19: Višeprocesorski računalni sustavi

11

Drugi, i trenutno najvažniji izazov, jest količina disipirane snage, odnosno topline. Slika 1.4

vrlo slikovito prikazuje postojeći problem.

Treće, na frekvencijama reda veličine nekoliko GHz, udaljenosti na čipu (tj. zbroj duljina

vodova, ili kanala), između izvora informacije i korisnika, postaju ograničavajući faktor i utječu

na mikroarhitekturalne odluke.

Slika 1.4. Disipacija snage na primjeru Intelovih mikroprocesora (izvor: [2])

Sada je poznat razlog postizanja frekvencijskog platoa 2003. godine. Energetski zahtjevi,

prikazani slikom 1.4, i rast broja tranzistora predviđen Moore-ovim zakonom ograničavaju

brzine koje se mogu postići zbog toga što dinamička disipacija snage raste eksponencijalno i

izravno je ovisna o visini frekvencije. S druge strane, statička disipacija (curenje) ovisi o broju

tranzistora na čipu. Nažalost, dimenzije tranzistora sada su toliko reducirane da je njihovo

djelovanje podložno kvantno-mehaničkim pojavama. Prema pravilima kvantne mehanike, sitne

čestice poput elektrona, na kratkim udaljenostima mogu spontano i nasumično tunelirati. Baza i

emiter tranzistora sada su dovoljno blizu da bi izvjesna količina elektrona mogla tunelirati

između njih, samim time uzrokujući malu struju curenja između baze i emitera, odnosno mali

kratki spoj.

Smanjenjem dimenzija tranzistora, struja curenja se povećava. Ukoliko su radni naponi

preniski, razlika između logičke jedinice i logičke nule postaje prebliska samoj visini i rad

procesora je onemogućen. Naposljetku, ovaj složeni skup problema neće onemogućiti daljnji rast

broja tranzistora na određenoj površini, no tada radna frekvencija mora ostati ista, odnosno mora

se sniziti da bi se disipacija snage držala pod kontrolom, a procesor ostao „hladan“.

Page 20: Višeprocesorski računalni sustavi

12

Stoga su Intel i ostali proizvođači zaustavili kontinuirani porast frekvencija na razini iz 2003.

godine. Iznimka je IBM-ov Power6 procesor predstavljen 2007. godine, s frekvencijom od 4.7

GHz, no čak i uz takvo dostignuće, može se reći da je eksponencijalan rast brzine zaustavljen.

Međutim, to ne znači da je time ujedno zaustavljen i rast performansi mikroprocesora.

Ustrajnost Moore-ovog na povećanju količine logike na čipovima dovela je do pojave posve

novog trenda u razvoju mikroprocesora – višeprocesorskih tehnologija i čip multiprocesora, tj.

CMP-a.

1.4 Novi pristup – višeprocesorska tehnologija

Navedene poteškoće i ograničenja doveli su do situacije u kojoj je sve veće i brže uniprocesore

jednostavno bilo nemoguće izgraditi. Računalni inženjeri i dizajneri, stavljeni pred nove izazove,

sada se okreću novoj paradigmi u dizajnu mikroprocesora: višeprocesorskim sustavima.

Dodavanje još jedne procesne jedinice na isti čip bi, u teoriji, trebalo rezultirati udvostručenjem

performansi i redukcijom disipirane topline; u praksi, realna brzina svake jezgre je uvijek manja

od najbržeg jednojezgrenog procesora, što će biti razmotreno u sljedećim poglavljima.

Istodobno, da bi višeprocesorski sustavi bili učinkoviti, moraju u svojoj arhitekturi

uključivati tehnike i metode paralelizma kako bi za rad kojeg je potrebno izvršiti mogli koristiti

sve raspoložive resurse, tj. procesorske jedinice. Budući da se višeprocesorski sustavi u osnovi

sastoje od više pojedinačnih procesora, ili jezgara, programeri te procesore „vide“ kao zasebne

entitete, te je stoga potrebno konvencionalan von Neumannov računalni model zamijeniti novim

modelom paralelnog programiranja. Pomoću ovog modela, programeri moraju svoje aplikacije

podijeliti na polu-nezavisne dijelove, ili dretve (engl. threads, niti), koji se mogu istovremeno

izvršavati s raspoloživim procesorima u sustavu, ili njihovi programi neće biti u mogućnosti

iskoristiti procesorsku snagu koju nudi višeprocesorska arhitektura. Naime, ukoliko aplikacija

nije multi-threaded tipa, tj. višedretvena, te nije programirana metodama paralelnog

programiranja, višeprocesorski sustavi ne mogu ponuditi znatno poboljšanje; dapače, moguća je

čak i pojava pada performansi. Jednom kada se izvrši proces threadinga, programi mogu koristiti

prednosti thread-level paralelizma (TLP) usporednim pokretanjem i izvršavanjem odvojenih niti

instrukcija.

Sljedeći faktor koji utječe na performanse cjelokupnog sustava je operativni sustav.

Memorijska arhitektura višeprocesorskih sustava je složenija, a samim time i upravljanje

Page 21: Višeprocesorski računalni sustavi

13

memorijom. Drugim riječima, operativni sustav mora biti posebno dizajniran za višeprocesorske

sustave, kako bi iste mogao prepoznati, te naposljetku iskoristiti njihov potencijal.

Upravo navedena područja, kao i mnoga druga, usko vezana uz njih, glavna su tema narednih

poglavlja.

Page 22: Višeprocesorski računalni sustavi

14

2. VIŠEPROCESORSKI RAČUNALNI SUSTAVI

Poglavlje započinje definiranjem paralelnog računalstva, paralelnih računalnih sustava te njihove

organizacije uz pomoć Flynn-ove taksonomije10

, kako bi se čim bolje mogla shvatiti

kompleksnost višeprocesorskih arhitektura i razlozi koji su doveli do njihova razvoja.

Budući da su predmet izučavanja prvenstveno višeprocesorski sustavi, posebna pažnja bit će

posvećena kategoriji multiple-instruction multiple-data (MIMD) sustava koji su sposobni

iskoristiti paralelizam na razini dretava (engl. thread-level paralelism) i čine temelj suvremenih

višeprocesorskih sustava. Također, s hardverskog gledišta će biti proučeni sustavi s

ravnomjernim adresiranjem memorije (uniform memory access – UMA) i simetrični

višeprocesorski sustavi (symmetric multiprocessors – SMP), kao i sustavi s neravnomjernim

adresiranjem memorije (nonuniform memory access – NUMA). Vrlo bitno je razmotriti i

područje interkonekcija unutar višeprocesorskih sustava, tj. načine međusobnog povezivanja

procesora, memorija i ostatka sustava.

2.1. Paralelno računalstvo

Paralelno računalstvo je oblik računanja koji se zasniva na istovremenom izvršavanju velikog

broja kalkulacija. Osnovno načelo jest podjela većih problema i zadataka na čitav niz manjih koji

se zatim rješavaju konkuretno (tj. usporedno, „u paraleli“). Paralelno računalstvo, odnosno

paralelizam, primjenjuje se već dulje vrijeme, no tek su nedavno računalni inženjeri počeli s

njegovim pomnijim istraživanjem. Zbog fizičkih ograničenja na koja je naišao razvoj

jednoprocesorskih sustava, računalni su inženjeri počeli razmatrati nove načine povećavanja

propusnosti i učinkovitosti računalnih sustava, a iskorištavanje različitih razina paralelizma

unutar koda pokazalo se dominantnom paradigmom, posebice korisnom u višeprocesorskim

sustavima.

Podjela paralelnih računala najčešće se vrši prema fizičkoj, sklopovskoj konfiguraciji

dotičnog sustava, odnosno prema razini na kojoj sklopovlje podržava paralelizam. Razlikujemo

tako višeprocesorske i višejezgrene računalne sustave koji raspolažu s nekoliko procesnih

10 Klasifikacija računalnih arhitektura. Kreirao ju je Michael j. Flynn, 1966. godine.

Page 23: Višeprocesorski računalni sustavi

15

elemenata unutar istog računala, dok clusteri, MPP-i11

i gridovi12

koriste nekoliko cjelovitih

računala za rad na istom zadatku.

Tradicionalno, računalni programi su osmišljeni za izvršavanje u serijskom, sekvencijalnom

obliku. To znači da se za rješavanje određenog problema koriste algoritmi koji se sastoje od

serijskog toka instrukcija koje, jednu po jednu, obrađuje centralna procesna jedinica – tek nakon

što se jedna instrukcija izvrši, može se početi s izvršavanjem sljedeće.

S druge strane, pri paralelnom računanju istovremeno se koristi veći broj procesnih jedinica

koje zajednički djeluju na rješavanju određenog zadatka. Takav se način rada osigurava

raspodjelom problema na niz manjih nezavisnih segmenata kako bi svaki dostupni procesni

element mogao obrađivati svoj dio algoritma usporedno s ostalim procesnim elementima.

2.1.1. Poteškoće pri stvaranju paralelnih programa

Poteškoće pri iskorištavanju paralelizma ne predstavlja snaga računala, već potreba da se

aplikacije i programi prilagode paralelnom načinu rada, kako bi mogli biti brže izvršavani na

višeprocesorskim sustavima. Pisanje softvera za višeprocesorske sustave vrlo je kompleksno, a

problem se povećava s povećanjem broja procesora u sustavu.

Koji je razlog? Zašto je razvoj programa za paralelno procesiranje toliko složeniji od pisanja

tradicionalnih, sekvencijalnih programa?

Prvo, izvršavanje paralelnih programa na višeprocesorskim sustavima mora osigurati bolje

performanse i učinkovitost; u suprotnom, čemu koristiti takve programe, ako će nam

sekvencijalni program na jednoprocesorskom sustavu ponuditi jednake performanse, uz

višestruko jednostavnije programiranje. Budući da bi paralelno programiranje prvenstveno

trebalo biti učinkovito programiranje, to ga čini mnogo složenijim – paralelni program ne mora

samo biti točan, biti u mogućnosti riješiti složeni problem, i osigurati korisno sučelje prema

korisniku i ostalim programima, već mora biti i brz.

Drugi razlog, da bi se osigurala brzina koju podrazumijeva uporaba paralelnih i

višeprocesorskih sustava, programer mora aplikaciju podijeliti tako da svaki procesor

istovremeno izvršava približno jednaku količinu posla, pritom pazeći da trošak raspoređivanja

11 MPP (eng. Massively Parallel Processor) – računalni sustav koji se sastoji od velikog broja zasebnih računala,

koja su povezana sa svrhom paralelnog izvršavanja zahtjevnih zadaća. 12

Grid računala – povezana skupina heterogenih, geografski udaljenih računala.

Page 24: Višeprocesorski računalni sustavi

16

(engl. schedule overhead) i koordinacija ne reduciraju potencijalne dobrobiti paralelizma u

prevelikoj mjeri.

Navedene poteškoće mogu se prikazati sljedećom vrlo praktičnom analogijom.

Pretpostavimo da je zadatak napisati novinski članak, reportažu. Osam novinara koji rade na istoj

reportaži potencijalno bi mogli reportažu napisati osam puta brže. Da bi se takvo ubrzanje

ostvarilo, zadatak bi trebalo podijeliti tako da svaki novinar ima svoj dio zadatka i da svi

novinari rade istovremeno. Stoga, potrebno je rasporediti (engl. schedule) pod-zadatke. Ukoliko

bi nešto pošlo po krivu, i samo jedan novinar bi kasnio s obavljanjem svog zadatka, sve

prednosti raspolaganja s tolikim brojem novinara bile bi umanjene. Upravo radi toga, teret se

mora rasporediti ravnomjerno (engl. balance the load), kako bi se postiglo željeno ubrzanje.

Također, ukoliko bi novinari previše vremena proveli dogovarajući se o redoslijedu pisanja,

pojedini dijelovi reportaže nedostajali bi dok se oni prethodni ne napišu. Drugim riječima, mora

se voditi računa i o reduciranju komunikacijskog i sinkronizacijskog troška (engl. reducing the

communication and synchronization overhead).

Kao što se vidi iz navedene analogije, izazovi paralelnog programiranja uključuju pravilno

raspoređivanje, ravnomjernu raspodjelu zadatka, vrijeme za obavljanje sinkronizacije, te trošak

komunikacije između stranaka. Intuitivno se nameće zaključak da je izazov tim veći, što je veći

broj novinara, odnosno procesora u paralelnom sustavu.

Sljedeću prepreku predstavlja Amdahlov zakon, koji podsjeća da čak i mali dijelovi

programa moraju biti paralelizirani ukoliko se želi da program iskoristi snagu višeprocesorskih

sustava u odgovarajućoj (ciljanoj) mjeri.

2.1.2. Amdahlov zakon

Posebno zanimljivu stavku metrike performansi računalnog sustava predstavlja ubrzanje (engl.

speedup). Ubrzanje se definira kao odnos performansi poboljšanog sustava i njegove izvorne

implementacije:

( )

Odnosno, ukoliko je riječ o vremenima izvršavanja zadataka:

Page 25: Višeprocesorski računalni sustavi

17

( )

Povijesno gledano, ubrzanje se je definiralo za paralelne procesore. Potencijalna dobrobit

paralelnog računanja mjeri se odnosom vremena koje je potrebno da bi se određeni zadatak

izvršio na jednom procesoru i vremena koje je potrebno da bi se isti zadatak izvršio na većem

broj procesora. Ukoliko predstavlja vrijeme izvršavanja na procesora ( ) , tada

ubrzanje za procesora iznosi:

( )

( ) ( )

U idealnom slučaju, za potpuno paralelizirani algoritam, te uz zanemarivo vrijeme

komunikacije između procesora, vrijedi ( ) ( )

, pa gornji izraz daje:

( )

To znači da bi optimalno ubrzanje korištenjem paralelnog sustava bilo linearno – svako

udvostručavanje broja procesnih elemenata (tj. procesora) prepolovilo bi trajanje izvršavanja

zadatka.

Ipak, ovako linearno ubrzanje je zaista rijetkost i postižu ga tek najnapredniji paralelni

algoritmi. Većina algoritama može postići približno linearno ubrzanje za mali broj procesnih

elemenata, a koje zatim s povećanjem njihova broja prelazi u konstantnu vrijednost. Razlozi

zbog kojih je linearno ubrzanje gotovo neostvarivo uglavnom su vezani uz problem

komunikacije i sinkronizacije među procesorima, te uz pojavu memorijskih i interkonekcijskih

kašnjenja.

Dobitak na performansama koji se može osigurati poboljšanjem određenog dijela računalnog

sustava moguće je izračunati korištenjem Amdahlovog zakona, kojeg je utvrdio Gene Amdahl,

1960. godine.

Amdahlov zakon tvrdi da je ubrzanje paralelnog programa ograničeno sekvencijalnim

dijelom programa. Pretpostavimo da je algoritam ili zadatak sastavljen od frakcije koju je

Page 26: Višeprocesorski računalni sustavi

18

moguće paralelizirati, i od serijske (sekvencijalne) frakcije . Također, pretpostavimo da je

vrijeme koje je potrebno da bi dotični zadatak bio izvršen na jednom procesoru dano sa:

( ) ( ) ( )

Gdje je:

( )

Ukoliko bi isti zadatak bio izvršen na paralelnih procesora, vrijeme izvršavanja bi tada bilo

definirano kao:

( ) ( ) (2.6),

gdje se vidi da je uzrok ubrzanja distribucija paralelnog dijela na procesora. Amdahlov zakon

za ubrzanje ( ) korištenjem sustava s procesora, glasi:

( ) ( )

( )

( )

( ) ( )

Da bi se postiglo bilo kakvo ubrzanje potrebno je zadovoljiti sljedeći izraz:

( )

Ova nejednadžba diktira da paralelni dio algoritma ( ) bude čim bliži jedinstvu, posebice kada

je velik. Slika 2.1 prikazuje funkciju ubrzanja u ovisnosti o za različite vrijednosti broja

procesora .

Page 27: Višeprocesorski računalni sustavi

19

Slika 2.1. Amdahlov zakon (izvor: [1])

Puna linija je za , iscrtana linija za , a točkasta za . Može se uočiti da

veći pridonosi većem ubrzanju. Ubrzanje je, dakle, ovisno o iznosu parametra i intuitivno se

može zaključiti da upravo predstavlja stupanj paralelizma određenog programa, odnosno

sposobnost sustava da ga iskoristi. Također, iz slike se može primijetiti da ubrzanje najviše

dolazi do izražaja za , te da dolazi do zasićenja kada , odnosno broj procesora, postane

velik.

Za velike brojeve , ubrzanje se aproksimira kao:

( )

( )

Iz svega navedenog nameće se zaključak da višeprocesorski sustavi, a pogotovo oni s vrlo

velikim brojem procesora, mogu donijeti ubrzanje i poboljšanje performansi tek ukoliko se vrlo

vješto iskoriste i primijene tehnike paralelizma unutar programa i aplikacija, što potvrđuje

poteškoće navedene u odjeljku 2.1.2.

Page 28: Višeprocesorski računalni sustavi

20

U ekstremnim slučajevima, Amdahlov zakon postaje:

( )

( )

Navedene jednakosti su ustvari očite. Kada je program u potpunosti paralelan, ubrzanje će

odgovarati upravo broju procesora koje koristimo u paralelnom sustavu.

2.1.3. Gustafson – Barsisov zakon

Vrlo važan zakon u području paralelnih računalnih sustava je i Gustafson – Barsisov zakon,

kojeg su opisali John L. Gustafson i njegov kolega Edwin H. Barsis. Zakon ukazuje na

nedostatke Amdahlovog zakona, s kojim je usko povezan.

Dok Amdahlov zakon pretpostavlja fiksnu duljinu dijela paralelnog koda i ne ovisi o veličini

problema, Gustafson je opazio da se paralelizam unutar aplikacije povećava usporedno s rastom

veličine problema.

Da bi se izveo Gustafson-Barsisov zakon, valja najprije započeti s procesora. Vrijeme

potrebno da bi se zadatak izvršio na procesora dano je sa:

( ) ( ) ( )

Kada se ovaj zadatak izvršava na jednom procesoru, serijski dio ostaje nepromijenjen, ali

paralelni dio će se povećati, prema sljedećem izrazu:

( ) ( ) ( )

Ubrzanje je sada:

( ) ( )

( ) ( ) ( ) ( )

Page 29: Višeprocesorski računalni sustavi

21

Slika 2.2 ponovno prikazuje funkciju ubrzanja u ovisnosti parametru za različite

vrijednosti broja procesora . Puna linija je za , iscrtana linija za , a točkasta za

. Primjećuje se da, u usporedbi s Amdahlovim zakonom, Gustafson-Barsisov zakon nudi

mnogo linearniji porast ubrzanja, čak i za vrlo male vrijednosti paralelizma , a ubrzanje

nastavlja rasti i za veliki broj procesora .

Slika 2.2. Gustafson-Barsisov zakon (izvor: [1])

Da bi se postiglo ubrzanje u bilo kojoj mjeri, potrebno je osigurati sljedeći uvjet:

( ) ( )

Može se uočiti da je uz Gustafson-Barsisov zakon moguće postići vrlo dobro ubrzanje čak i kada

je razina paralelizma mala, uz veliki broj procesora . Općenito, Gustafson-Barsisov zakon

nudi mnogo optimističnije predviđanje ubrzanja sustava od Amdahlovog zakona.

Page 30: Višeprocesorski računalni sustavi

22

2.1.4. Implementacije paralelizma

Prije no što bude definirana klasifikacija računala prema Flynn-u, valja proučit nekoliko

osnovnih načina implementacije paralelizma u paralelnim računalnim sustavima, koji se mogu

ostvariti primjenom različitih hardverskih i softverskih tehnika, a nazivaju se još i razinama

paralelizma (engl. levels of parallelism):

1. Paralelizam podatkovne razine (engl. data-level parallelism) – omogućuje operacije nad

skupinama bitova podataka ili nad višestrukim podacima istovremeno. Primjeri ovakvog

paralelizma su bit-paralelno zbrajanje, množenje i dijeljenje binarnih brojeva, te

sistolička polja13

za upravljanje nekolicinom uzoraka podataka.

2. Paralelizam instrukcijske razine (engl. instruction-level parallelism, ILP) – procesor

izvršava više od jedne instrukcije istovremeno. Primjer je korištenje protočnih struktura

(engl. pipelining structures), kao što je prikazano na slici 2.3.

Slika 2.3. Protočna struktura za izvršavanje instrukcija

3. Paralelizam dretvene razine (engl. thread-level parallelism, TLP). Dretva, ili nit (engl.

thread), dio je programa koji procesorske resurse dijeli s ostalim dretvama. Korištenjem

ove razine paralelizma, višestruke softverske dretve izvršavaju se istovremeno na jednom

ili više procesora. TLP se najčešće susreće u aplikacijama koje istovremeno moraju

izvršavati više nezavisnih i nepovezanih zadataka, primjerice kod web servera. Ova

razina paralelizma je trenutno vrlo zanimljivo područje istraživanja zbog razvoja sve

popularnijih višejezgrenih i višeprocesorskih sustava, koji omogućuju stvarno usporedno

izvršavanje dretava.

4. Paralelizam procesne razine (engl. process-level parallelism). Procesom se

najjednostavnije može nazvati program koji se odvija na računalu. Proces rezervira

13 Matrična polja sastavljena od podatkovnih procesnih jedinica koje se nazivaju ćelijama. Sistolička polja

predstavljaju poseban oblik paralelnog računalstva, u kojem pojedine ćelije (procesori) računaju s podacima i

pohranjuju ih neovisno o drugim ćelijama.

Page 31: Višeprocesorski računalni sustavi

23

vlastite računalne resurse, poput memorijskog prostora i registara. Ova razina paralelizma

pripada klasičnom višezadaćnom (engl. multitasking) i vremenski dijeljenom (engl. time-

shared) računalstvu gdje se nekoliko programa izvršava istovremeno na jednom računalu

ili na više računala (procesora ili procesnih elemenata).

2.2. Organizacija paralelnih računala

2.2.1. Flynn-ova taksonomija

Ideja korištenja višestrukih procesora u svrhu poboljšanja performansi i povećanja korisnosti

sustava datira još iz razdoblja najranijih elektroničkih računala. Flynn je 1966. godine predstavio

jednostavan model klasifikacije računala koji je i danas, nakon 45 godina, još uvijek koristan.

Klasifikaciju je izradio proučavajući jedinstvenost i mnogostrukost instrukcijskih i podatkovnih

tokova. Instrukcijskim tokom smatra se sekvencija instrukcija koju pojedini procesor izvršava,

dok se pod pojmom podatkovnog toka podrazumijeva niz podataka kojim upravlja pojedini

instrukcijski tok.

Promatrajući paralelizam unutar podatkovnih i instrukcijskih tokova, Flynn je sve računalne

arhitekture svrstao u sljedeće četiri kategorije, prema Kartezijevu produktu:

( ) ( )

1. Single instruction, single datastream (SISD) – kategorija SISD arhitekture odgovara

uobičajenim jednoprocesorskim sustavima s kojima smo se donedavno susretali. Model

se primjenjuje kod tradicionalnih sekvencijalnih računala koja ne posjeduju paralelizam

na sklopovskoj razini. Instrukcije se kod ovakvih sustava izvršavaju serijski, a tijekom

svakog taktnog ciklusa procesor može obraditi tek jedan podatkovni tok. Primjeri

ovakvih sustava uključuju većinom starija računala, poput izvornog IBM PC-a, starija

mainframe računala te mnoga 8-bitna računala poput popularnog Commodore-a 64 iz

1980-ih.

2. Single instruction, multiple datastreams (SIMD) – kod SIMD arhitektura, ista

upravljačka jedinica prihvaća, dekodira i izdaje instrukcije koje izvršavaju procesni

elementi (PE-i) – CPU jedinice bez upravljačkih jedinica. Nekoliko procesora obrađuje

različite podatkovne tokove koristeći istu instrukciju, odnosno instrukcijski tok. SIMD

Page 32: Višeprocesorski računalni sustavi

24

računala iskorištavaju paralelizam podatkovne razine usporedno primjenjujući jednake

operacije nad različitim dijelovima podataka. Svaki procesor posjeduje vlastitu

podatkovnu memoriju (stoga, multiple data), ali u sustavu postoji samo jedna

instrukcijska memorija i upravljačka jedinica koji prihvaća i otprema instrukcije. Kod

sustava koji zahtijevaju znatnu količinu paralelizma podatkovne razine, SIMD pristup

može biti vrlo učinkovit - SIMD metode su vrlo popularne kod grafički zahtjevnih

aplikacija, posebice kod računalnih igara, zbog mogućnosti postizanja visokih

performansi pri generiranju trodimenzionalnih okružja u pravom vremenu. Nekoliko

superračunala iz 80-ih i 90-ih godina prošlog stoljeća, od kojih popularna Illiac IV i

ConnectionMachine CM-1, izgrađena su prema SIMD modelu, a smatra se i da vektorska

računala pripadaju upravo ovoj arhitekturi.

3. Multiple instruction, single datastream (MISD) – ovakva računala mogu procesirati jedan

podatkovni tok, koristeći više instrukcijskih tokova istovremeno. Međutim, trenutno ne

postoji niti jedan suvremeni višeprocesorski sustav temeljen na MISD arhitekturi, tj.

takav koncept (još) nije realiziran, stoga se ovaj tip paralelnih računala koristi tek kao

teoretski model.

4. Multiple instruction, multiple datastreams (MIMD) – MIMD organizacija je

najopćenitija. Nekoliko procesora s pripadajućim hijerarhijama priručne memorije djeluje

usporedno u asinkronom načinu rada. Jednostavnije rečeno, MIMD računalo je sposobno

izvršavati višestruke instrukcijske tokove, istodobno obrađujući višestruke podatkovne

tokove – svaki procesor prihvaća svoje instrukcije i obrađuje svoje podatke. Ovakve

sustave razlikuje način komunikacije među procesorima, ovisno o tome dijele li

zajedničku memoriju i komuniciraju putem učitaj-pohrani instrukcija (engl. load-store)

ili komuniciraju prosljeđivanjem poruka (engl. message passing communication). Osim

toga, sustavi s dijeljenom memorijom (engl. shared-memory systems) se razlikuju i prema

načinu pristupanja glavnoj memoriji – pristup memoriji može biti ravnomjeran, s

pristupom cjelokupnoj memoriji, ili se svakom procesoru dodjeljuje dio zajedničke,

raspodijeljene memorije. Štoviše, broj procesora u sustavu, njihova homogenost,

interkonekcije između procesora te procesora i memorije, načini osiguravanja

sinkronizacije i koherentnosti priručne memorije, faktori su koji doprinose bezbrojnim

mogućnostima dizajniranja MIMD višeprocesorskih sustava. Primjeri ovakvih procesora

su višejezgreni procesori, te općenito višedretveni višeprocesorski sustavi.

Page 33: Višeprocesorski računalni sustavi

25

Slika 2.4. Flynn-ova taksonomija (izvor: [4])

U MIMD sustavima, svaki procesor izvršava vlastiti tok instrukcija i u većini slučajeva, radi

se o izvršavanju različitih procesa. Proces je segment programskog koda koji se može izvršavati

nezavisno; stanje procesa sadrži sve potrebne informacije potrebne procesoru da bi izvršio taj

program. U višeprogramskom okružju, gdje procesori mogu izvršavati različite nezavisne

zadaće, svaki proces je najčešće nezavisan o ostalim procesima.

Također, korisno je raspolagati s višestrukim procesorima koji će izvršavati isti program te

dijeliti kod i većinu njihovog adresnog prostora. Više procesa koji dijele kod i podatke na ovaj

način nazivamo dretvama ili nitima. Danas, pojam dretva se često usputno koristi kada se želi

ukazati na višestruke lokacije izvršavanja koja se mogu odvijati na različitim procesorima, čak i

kada ne dijele adresni prostor. Primjerice, višedretvena arhitektura ustvari omogućuje istodobno

izvršavanje višestrukih procesa, bez obzira dijele li višestruke dretve isti zajednički adresni

prostor ili se radi o potencijalno odvojenim adresnim prostorima.

2.2.2. Dijeljenje memorije u višeprocesorskim sustavima

U sustavima s dijeljenom memorijom, paralelni procesori (prvenstveno MIMD procesori) dijele

zajednički fizički adresni prostor, a protok podataka između procesora odvija se putem

uobičajenih učitaj-pohrani instrukcija. Glavna memorija može biti zajednička i jednako udaljena

od svakog procesora ili može biti fizički raspodijeljena sa svakim procesorom. Ovisno o tome,

razlikujemo dva sustava: višeprocesorske sustave sa zajedničkom memorijom (engl. shared-

memory multiprocessors) i višeprocesorke sustave s fizički raspodijeljenom memorijom (engl.

distributed-memory multiprocessors) koji će biti opisani u sljedećim odjeljcima.

Page 34: Višeprocesorski računalni sustavi

26

Također, postoje i paralelni računalni sustavi koji ne dijele zajednički fizički adresni prostor,

a samim time niti memoriju, već svaki procesor posjeduje vlastiti, privatni fizički adresni

prostor. Za razliku od prethodnog pristupa, koji se najčešće koristi unutar istog računalnog

sustava, ovaj se model koristi za spregu fizički potpuno odvojenih računala, najčešće clustera,

kao što će kasnije biti kratko opisano.

2.2.3. Višeprocesorski sustavi sa zajedničkom memorijom - UMA

Višeprocesorski sustavi sa zajedničkom memorijom14

, poznati još i kao sustavi s ravnomjernim

pristupom memoriji, ili UMA sustavi (engl. Uniform Memory Access), vrlo su popularni zbog

svojeg jednostavnog i općeg programerskog modela, koji omogućuje brzi razvoj paralelnog

softvera s podrškom dijeljenja koda i podataka. Zajednička memorija, ili zajednički adresni

prostor, koriste se kao sredstvo komunikacije između procesora. Svi procesori u arhitekturi sa

zajedničkom memorijom mogu pristupati istom adresnom prostoru zajedničke memorije preko

međuveza, kao što je prikazano na slici 2.5. Najčešće, međuveze sačinjava sabirnica, međutim

kod većih sustava, sabirnice će zamijeniti mreže, u svrhu poboljšanja performansi, poput količine

procesorsko/memorijskih pristupa koji se mogu obaviti po jedinici vremena (propusnost) te

vremenskog kašnjenja zbog čekanja na dozvolu pristupa memoriji.

Vrlo brzo može se doći do zaključka da će usko grlo sustava sa sabirnicom predstavljati

memorijska propusnost (engl. bandwidth), budući da samo jedan procesor može pristupiti

memoriji u danom trenutku.

Da bi se takve poteškoće izbjegle, umjesto sabirnica se koriste konfiguracije s međuveznim

mrežama (slika 2.5 b), što će većem broju procesora omogućiti istovremeni pristup mreži. Osim

toga, u ovakvim je konfiguracijama jedan memorijski modul zamijenjen nizom memorijskih

blokova, čime se omogućuje više istovremenih memorijskih čitaj/piši operacija.

Sljedeći problem, vezan ne samo uz sustave sa zajedničkom memorijom, već i uz paralelna

računala općenito, jest problem koherentnosti priručne memorije (engl. cache memory). Naime,

u paralelnim sustavima, primjerak podatka koji se nalazi u zajedničkoj memoriji mora se

podudarati sa svim kopijama tog istog podataka koje se mogu nalaziti u lokalnim priručnim

memorijama pojedinih procesora. Koherentnost priručne memorije osigurava se različitim

protokolima koji će biti kasnije opisani.

14 Manje poznati naziv za ovakve procesore jest i Paralelni strojevi s izravnim pristupom (engl. Parallel Random

Access Machine, PRAM)

Page 35: Višeprocesorski računalni sustavi

27

Slika 2.5. Arhitektura UMA višeprocesorskih sustava sa zajedničkom memorijom. (a) Procesori su

povezani sa zajedničkom memorijom koristeći jednu jedinstvenu sabirnicu. (b) Procesori i memorijski

moduli koriste međuveznu mrežu (izvor: [1])

U višeprocesorskom sustavu sa zajedničkom memorijom, bilo koji procesor može pristupiti

bilo kojem memorijskom modulu. Slika 2.5b prikazuje implementaciju arhitekture s višestrukim

memorijskim modulima u sustavu sa zajedničkom memorijom. Također, dostupnost višestrukih

memorijskih modula omogućuje većem broju procesora da pristupe većem broju različitih

memorijskih modula istovremeno. Ovakvo rješenje povećava memorijsku propusnost, međutim

ne adresira probleme vezane uz memorijske kolizije do koji dolazi kada više od jednog procesora

pokušava pristupiti istom memorijskom modulu. Glavni nedostatak kod svih implementacija

memorijskih modula jest postojanje samo jedne pristupne točke, tj. porta. Stoga, bez obzira na

veličinu memorijskog modula, u svakom trenutku je moguće pristupiti tek jednoj podatkovnoj

riječi.

Budući da je ovakav sustav najčešće sastavljen od identičnih, homogenih procesnih

elemenata, te od jedinstvene glavne memorije koja ima simetričnu vezu sa svim dostupnim

procesorima i ravnomjerno vrijeme pristupa za sve procesore, ovaj model višeprocesorskih

sustava se često naziva i simetričnim višeprocesorskim sustavima (engl. symmetric (shared-

memory) multiprocessors – SMPs), i trenutno je najpopularniji model višeprocesorskih sustava,

sa širokom primjenom u višejezgrenim procesorima.

Page 36: Višeprocesorski računalni sustavi

28

2.2.4. Višeprocesorski sustavi s raspodijeljenom memorijom - NUMA

U višeprocesorskim sustavima s raspodijeljenom memorijom svakom je procesoru dodijeljen

njegov vlastiti memorijski modul, kao što je prikazano slikom 2.6. Procesori mogu izravno

pristupiti svojim vlastitim memorijama, dok se za pristup memorijskim modulima ostalih

procesora koriste mehanizmi prosljeđivanja poruka (engl. message passing mechanism).

Slika 2.6. Arhitektura NUMA višeprocesorskih sustava s raspodijeljenom memorijom (izvor: [1])

Podsjetimo se, pojedini procesori mogu pristupati memorijskim modulima ostalih procesora

jer sustavi ovog tipa, iako s fizički raspodijeljenom memorijom, i dalje pripadaju

višeprocesorskim sustavima sa zajedničkim adresnim prostorom.

U odnosu na prethodno opisane UMA sustave, pristup memoriji kod ovakvih sustava nije

ravnomjeran, budući da glavna memorija nije centralizirana, stoga se sustavi još nazivaju i

višeprocesorskim sustavima s neravnomjernim pristupom memoriji, tj. NUMA sustavima (engl.

Nonuniform Memory Access).

Ukoliko je NUMA višeprocesorski sustav sastavljen od identičnih procesora, tada kažemo da

se radi o homogenom ili simetričnom višeprocesorskom sustavu (symmetric multiprocessor,

SMP), kao što je bio slučaj kod UMA sustava. Suprotno tome, ako sustav sačinjavaju različiti, tj.

heterogeni procesori, tada se radi o asimetričnom višeprocesorskom sustavu, ili ASMP-u (engl.

asymmetric multiprocessor). Obje implementacije opisat ćemo u sljedećem potpoglavlju.

Model NUMA višeprocesorskih sustava najčešće se koristi u sustavima s vrlo velikim brojem

procesora, gdje se memorija decentralizira i fizički raspodjeljuje na procesore, kako bi se zbog

velikog broja procesora osigurala čim veća propusnost i što manja memorijska latentnost.

Page 37: Višeprocesorski računalni sustavi

29

2.2.5. Sprega procesora u višeprocesorskim sustavima

Nakon podjele višeprocesorskih sustava prema načinu podjele memorije među procesorima u

višeprocesorskom sustavu, isto se može učiniti i s podjelom prema načinu sprege između

procesora u takvim sustavima.

Takva podjela je krajnje jednostavna, i ovisi tek o fizičkoj konfiguraciji sustava, odnosno o

fizičkoj lokaciji procesora unutar sustava.

Naime, procesori koji osim zajedničkog adresnog prostora dijele i fizički prostor, tj. nalaze se

unutar istog računalnog sustava ili čak kućišta, pripadaju skupini usko spregnutih (engl. tightly-

coupled) sustava. Takva računala sadržavaju veći broj procesora koji su najčešće povezani

sabirnicom, te mogu imati zajedničku ili raspodijeljenu memoriju, što odgovara upravo

prethodno definiranim UMA i NUMA modelima računala. Najekstremniji, i najsuvremeniji

oblik usko spregnutih računala jesu čip multiprocesori, poznatiji i kao višejezgreni procesori,

koji uključuju veći broj jednakih procesora na istom čipu, unutar istog kućišta.

Sljedećoj skupini pripadaju računalni sustavi koji su fizički potpuno odvojeni i udaljeni, ne

dijele zajednički adresni prostor niti resurse, a veza se ostvaruje uz pomoć komunikacijskih

sustava visoke brzine, poput gigabitnih lokalnih mreža. Takve sustave nazivamo široko

spregnutim (engl. loosely coupled) sustavima. Sustave najčešće sačinjavaju cjelovita, fizički

udaljena računala, poput clustera, koja se dovode u spregu s ciljem povećanja učinkovitosti pri

izvršavanju zajedničkog zadatka.

Usko spregnute sustave, u usporedbi sa široko spregnutim, odlikuju mnogostruko manje

dimenzije, a samim time i energetski zahtjevi te cijena. Međutim, u područjima primjene gdje su

potrebne enormno visoke performanse, odabir čine uvijek široko spregnuti sustavi poput

clustera, kao što će biti predstavljeno u odjeljku posebno namijenjenom tom obliku

višeprocesorskog računalstva.

2.2.6. Simetrija u višeprocesorskim sustavima

Odnos procesora u vidu njihovih sličnosti i razlika bit će razmotren na modelu višejezgrenih

procesora, koji je primjenjiv i na ostale višeprocesorske sustave.

Dva su načina implementacije višejezgrenih procesora. Prvi način obuhvaća primjenu

simetričnog višejezgrenog procesora, što uključuje geometrijsko povećavanje broja jezgara sa

svakim novim napretkom. To najčešće znači udvostručavanje broja potpuno identičnih

Page 38: Višeprocesorski računalni sustavi

30

procesorskih jezgara te njihovo povezivanje u svrhu tvorbe jačeg procesora. Drugi način su

asimetrični višejezgreni procesori, koji se sastoje od jedne jače jezgre, te niza slabijih jezgara.

1. Simetrični višejezgreni procesori – kao što samo ime podrazumijeva, ovaj model

višejezgrenih procesora uključuje povezivanje dvije, ili više identičnih jezgara na istom

čipu, poštujući pravilo da broj jezgara na čipu uvijek odgovara višekratniku broja dva.

Primjer takvog čipa prikazan je slikom 2.7.

Slika 2.7. Dijagram simetričnog višejezgrenog procesora

Zbog simetrije u broju procesora i njihovim karakteristikama, ovaj se model još naziva i

modelom homogenih višejezgrenih procesora i danas je vodeći pristup u proizvodnji

višejezgrenih procesora.

2. Asimetrični višejezgreni procesori – poznati još i kao heterogeni višejezgreni procesori,

ovi procesori se sastoje od većeg broja jezgara različitih stupnjeva složenosti.

Slika 2.8. Dijagram asimetričnog višejezgrenog procesora

U ovom primjeru, asimetrični višejezgreni procesor čine blokovi s dvije velike jezgre

visokih performansi, blok s četiri jezgre srednjih performansi, te blok s devet

jednostavnih jezgara. Koristeći ovakvu konfiguraciju, izvršavanje aplikacija, ovisno o

njihovoj kompleksnosti i stupnju paralelizma, može se dodijeliti odgovarajućim

Page 39: Višeprocesorski računalni sustavi

31

jezgrama. Primjerice, potpuno serijske aplikacije će se najbrže izvršavati na jačim

jednojezgrenim procesorima, stoga se te aplikacije dodjeljuju nekoj od najvećih jezgara.

S druge strane, paralelne aplikacije mogu se izvršavati na više procesora istovremeno, pa

je njih stoga moguće dodijeliti bloku s manjim jezgrama.

Bitno je napomenuti da se, naročito pri korištenju literature na stranom jeziku, pojam prethodno

definiranih asimetričnih i simetričnih višejezgrenih procesora (engl. asymmetric and symmetric

multiprocessors) ne smije zamijeniti s pojmom asimetričnog i simetričnog multiprocesiranja

(engl. asymmetric and symmetric multiprocessing) koji se odnosi na softverske implementacije

višeprocesorske tehnologije i upravljanje načinom izvršavanja zadataka u operacijskom sustavu.

2.3. Komunikacija među paralelnim procesorima

U ovom potpoglavlju bit će opisano na koji način paralelni procesori komuniciraju, te koji

modeli komunikacije postoje. Komunikacija među paralelnim procesorima mora postojati kako

bi takvi procesori mogli djelovati kao cjelina i izvršavati zajedničke zadatke koji im se

dodjeljuju.

2.3.1. Tipovi komunikacije

Mogu se definirati sljedeći načini komunikacije među paralelnim procesorima, prikazani slikom

2.9. :

1. Unicast (jedan prema jednome)

2. Multicast (jedan prema mnogima)

3. Broadcast (jedan prema svima)

4. Prikupi

5. Reduciraj

Page 40: Višeprocesorski računalni sustavi

32

Slika 2.9. Različiti tipovi komunikacije među paralelnim procesorima: (a) jedan prema jednome, (b)

jedan prema mnogima, (c) jedan prema svima, i (d) prikupi i reduciraj (izvor: [1])

Jedan prema jednome (Unicast)

Unicast komunikacija uvijek uključuje samo dva procesora: pošiljatelja i primatelja. Unicast

komunikacija se ponekad još naziva i točka-prema-točki komunikacijom, ili P2P (engl. point to

point). S ovakvim načinom komunikacije se često susrećemo kod SIMD računala gdje svaki

procesor razmjenjuje podatke sa svojim susjedom. Slika 2.9a prikazuje unicast način

komunikacije među procesorima. Iako slika prikazuje samo komunikaciju između jednog para

procesora, u stvarnosti svi procesori mogu sudjelovati u unicast komunikaciji istovremeno.

Komunikacija se najčešće izvodi iterativno, i stoga mora biti izvedena efikasno. U većini

slučajeva, ovom komunikacijom se u svakom koraku omogućuje jednostavna razmjena podataka

između izvora i odredišnog registra, uz pretpostavku da je osigurana sinkronizacija između

udaljenih procesora. U ostalim slučajevima, potrebno je osigurati dvostruko rukovanje (engl.

two-way handshaking) ili čak četverostruko rukovanje (engl. four-way handshaking). Kod

dvostrukog rukovanja, komunikacija se između primatelja i pošiljatelja odvija u dva koraka – za

svaki primljeni podatak, primatelj mora pošiljatelju poslati potvrdu o primitku, pa se radi o data-

ackonowledgement komunikaciji. U drugom slučaju, komunikacija se odvija u četiri koraka, gdje

se pošiljatelju najprije mora odobriti zahtjev za slanjem podataka, a po primitku podatka,

primatelj ponovno šalje potvrdu, tzv. request-grant-data-acknowledge komunikacija.

Jedan prema mnogima (Multicast)

Multicast komunikacija uključuje jedan procesor u ulozi pošiljatelja i nekolicinu procesora-

primatelja, kao što je prikazano na slici 2.9b. Kao i u prethodnom slučaju, slika prikazuje

Page 41: Višeprocesorski računalni sustavi

33

multicast komunikaciju između samo jednog pošiljatelja i skupine primatelja, no u stvarnosti, svi

procesori mogu obavljati ovakav vid komunikacije istovremeno. Broj procesora-primatelja ovisi

o detaljima algoritma, te o načinu na koji je mapiranje procesora realizirano. Kao i u prethodnom

primjeru, i ova se komunikacija obavlja u koracima, tj. iterativno, na opisani način.

Jedan prema svima (Broadcast)

Kod broadcast načina komunikacije, prikazanog na slici 2.9c, isti se podatak šalje svim

procesorima u sustavu. Ovaj način može biti koristan kada je svim procesorima u sustavu

potrebno osigurati istovremeni pristup istoj informaciji.

Prikupi (Gather)

Prikazan na slici 2.9d, ovaj vid međuprocesorske komunikacije uključuje prikupljanje podataka

od nekolicine, ili svih procesora u sustavu. Uz pretpostavku da sustav raspolaže s procesora,

vrijeme prikupljanja svih podataka može se procijeniti sljedećim izrazom:

( ),

gdje je vrijeme potrebno da se jedan podatak pošalje i primi.

Reduciraj (Reduce)

Operacija reduciranja vrlo je slična prethodno opisanoj operaciji prikupljanja, osim što se u

ovom slučaju izvršavaju i pojedine operacije nad prikupljenim podacima. Primjer operacije

reduciranja jest tvorba konačnog ishoda na temelju podataka koje su svi procesori poslali, što

može potrajati dulje vrijeme ukoliko se prikupi mnogo podataka koje treba reducirati. Uz

ponovnu pretpostavku da sustav raspolaže s procesora, vrijeme reduciranja procjenjuje se sa:

( ) (2.15),

gdje je vrijeme potrebno da procesor obradi jedan par dobivenih podataka.

Page 42: Višeprocesorski računalni sustavi

34

2.3.2. Mehanizam komunikacije prosljeđivanjem poruka (Message

Passing Communication)

Komunikacija mehanizmom prosljeđivanja poruka najčešće se koristi u sustavima s

raspodijeljenom memorijom (NUMA), te posebice kod sustava koji ne dijele zajednički adresni

prostor, poput clustera. Kod takvih sustava, budući da memorijske lokacije nisu fizički povezane,

sav promet podataka mora se odvijati eksplicitnim prosljeđivanjem poruka između pojedinih

procesora.

Ovaj mehanizam komunikacije karakteriziraju poruke kojima udaljeni procesori zahtijevaju

određenu radnju, dostavu podataka ili pristup memorijskoj lokaciji u okolini nekog drugog

procesora. Komunikacija prosljeđivanjem poruka može se objasniti sljedećim jednostavnim

primjerom – procesor koji želi obraditi podatak u udaljenoj memorijskoj lokaciji poslat će

poruku procesoru u čijoj se memoriji dotični podatak nalazi. Prozvani će procesor tada, u ime

procesora koji je inicirao prijenos, izvršiti tražene radnje nad podatkom u svojoj memoriji, te u

konačnici polaznom procesoru poslati povratnu poruku s ishodom.

2.4. Međuvezne mreže

Kao što se može vidjeti u prethodnim odjeljcima, višeprocesorski sustavi zahtijevaju određeni

vid komunikacije i povezivanja kako bi se omogućila sinkronizacija i razmjena podataka između

procesora, te procesora i pripadajućih zajedničkih ili raspodijeljenih memorija. U ovakvim

sustavima ta se komunikacija ostvaruje putem međuveznih mreža (engl. interconnection

networks).

Mogućnosti i obilježja međuveznih mreža imaju izravan utjecaj na rezultirajući učinak

višeprocesorskih sustava. Kod višejezgrenih procesora, međuvezne mreže se nazivaju još i

mrežom-na-čipu (engl. Network-on-chip, NoC), budući da su kod takvih procesora međuvezne

mreže implementirane na istom čipu na kojem se nalaze i procesorske jezgre. NoC arhitekture

mogu se definirati pomoću četiri parametra: svojom topologijom, algoritmom preusmjeravanja,

protokolom kontrole toka, te mikroarhitekturom preusmjerivača podataka.

Topologija definira strukturu mreže, načine povezivanja čvorova te određuje sve raspoložive

putanje između čvorova, u ovom slučaju procesora ili jezgara. Također, vrsta topologije uvelike

utječe na parametre učinkovitosti sustava, poput razine propusnosti podataka, kašnjenja i

energetskih zahtjeva mreže. I dok topologija definira sve raspoložive putanje u mreži, algoritam

Page 43: Višeprocesorski računalni sustavi

35

preusmjeravanja (engl. routing algorithm) odabire najpovoljniju, odnosno najkraću putanju

(rutu) za prijenos poruka između pošiljatelja i primatelja. Protokol kontrole toka (engl. flow

control protocol) određuje na koji način poruka ustvari putuje dodijeljenom rutom, te u kojem

trenutku poruka mora biti poslana, a u kojem primljena u međuspremnik (engl. buffer). Drugim

riječima, ovaj protokol osigurava prohodnost veze, kako ne bi došlo do zagušenja ili čekanja

ukoliko postoji razlika u brzini kojom pošiljatelj šalje, odnosno primatelj prima poruke.

Naposljetku, mikroarhitektura preusmjerivača podataka (engl. micro architecture of a router)

realizira sve prethodno navedene stavke: fizičku vezu, te protokole i algoritme.

2.4.1. Klasifikacija međuveznih mreža prema logičkim topologijama

Topologija međuvezne mreže se najčešće prikazuje grafom na kojem su prikazani odgovarajući

čvorovi, tj. procesori (na grafovima u nastavku označeni slovom P), i prospojnici (engl. switch) s

pripadajućim vezama (linkovima).

Pojam koji je često prisutan pri definiranju mrežnih topologija je pojam mrežnog dijametara,

koji predstavlja najveću udaljenost između dva čvora u mreži, odnosno broj čvorova i

prospojnika kroz koje poruka mora proći pri svom putu od polazišta do odredišta. Pojam se često

definira i kao broj skokova, ili hopova, koji poruka obavi pri svojem putu kroz mrežu.

U nastavku će biti predstavljene najčešće mrežne topologije u višeprocesorskim, a posebice

višejezgrenim procesorskim sustavima. Te su topologije: sabirnička (engl. bus), zvjezdasta (engl.

star), prstenasta (engl. ring), isprepletena (engl. mesh) i matrična (engl. crossbar).

Sabirnička topologija (Bus)

Najjednostavniji oblik međuvezne mreže je sabirnica, prikazana slikom 2.10. Zasjenjeni

kvadratići predstavljaju kontrolere za upravljanje pristupom mediju, tj. MAC kontrolere (engl.

Medium Access Contol).

Slika 2.10. Sabirnička mrežna topologija (izvor: [1])

Page 44: Višeprocesorski računalni sustavi

36

Osim jednostavnosti, ovu topologiju karakteriziraju i niska cijena, jednostavnost uporabe, te

mogućnost korištenja jednostavnih protokola za osiguravanje koherentnosti priručne memorije,

koje će biti predstavljene u sljedećem poglavlju.

Svi procesori u sustavu i njihovi memorijski moduli priključeni su na sabirnicu. Međutim,

sabirnica u svakom trenutku dozvoljava pristup zajedničkom mediju isključivo jednom

procesoru, kako bi se spriječila pojava kolizija, tj. sukoba (engl. collisions). Svaku jedinicu,

odnosno procesor koji je priključen na sabirnicu, karakterizira njegova jedinstvena MAC adresa,

koja služi kao svojevrstan vid identifikacije i raspoznavanja u mreži.

Na učinkovitost sabirničke mreže umnogome utječu sljedeći čimbenici:

Skalabilnost mreže, odnosno broj procesora – sa širenjem mreže učinkovitost opada,

prvenstveno zbog fizičkih ograničenja kao što je duljina i propusnost linije;

Učestalost zahtjeva za pristupanje mreži – preveliki broj pristupa može dovesti do

zagušenja;

MAC protokol upravljanja pristupom – pristup mediju se određenom procesoru može

osigurati na temelju lokacije, prioriteta operacije, kružnim redoslijedom ili slučajnim

odabirom.

Zvjezdasta topologija (Star)

Slika 2.11 prikazuje primjer zvjezdaste međuvezne mreže, sa svim procesorima povezanima na

središnji uređaj, tzv. parični obnavljač (engl. hub).

Sav promet u mreži sa zvjezdastom topologijom odvija se putem središnjeg uređaja, što ga

čini najslabijom točkom ovakve topologije. Naime, središnji uređaj mora biti u stanju

istovremeno komunicirati sa svim procesorima u sustavu i odgovarati na njihove zahtjeve.

Slika 2.11. Zvjezdasta mrežna

topologija (izvor: [1])

Page 45: Višeprocesorski računalni sustavi

37

Prstenasta topologija (Ring)

Prstenasta topologija, prikazana na slici 2.12., predstavlja jednostavno poboljšanje ranije opisane

sabirničke mrežne topologije.

Slika 2.12. Prstenasta mrežna topologija (izvor: [1])

Za razliku od sabirničke topologije, u mrežama ovog tipa omogućena je istovremena

komunikacija većeg broja procesora. Svi procesori povezani su u prsten pomoću prospojnika koji

većem broju procesora omogućuju da šalju i primaju podatke u istom trenutku, jer procesori

nemaju izravan pristup mediju, već se sva komunikacija odvija posredno, putem prospojnika.

Također, niti međusobna komunikacija između procesora se ne odvija izravno, nego preko

prospojnika koji u tu svrhu procesore prozivaju na osnovu procesorskih MAC adresa.

Isprepletena mrežna topologija (Mesh)

U isprepletenim mrežama poruke putuju od polazišnog do odredišnog procesora korištenjem

naprednih routing algoritama koji su implementirani u svakom prospojniku i preusmjerivaču.

Radi se o algoritmima koji će utvrditi najpovoljniju i najbržu putanju (rutu) kroz isprepletenu

mrežu, kako bi se osiguralo najkraće moguće vrijeme putovanja poruke. Takvi algoritmi mogu

biti deterministički, s unaprijed predefiniranim rutama, ili adaptivni, koji će dinamički prilagoditi

rutu, ovisno o stanju u mreži.

Page 46: Višeprocesorski računalni sustavi

38

Zašto su routing algoritmi vrlo bitni u ovakvim mrežama može se vidjeti i na samom

primjeru isprepletene mreže koja je prikazana na slici 2.13.

Slika 2.13. Isprepletena mrežna topologija (izvor: [1])

Naime, dva susjedna procesora mogu komunicirati izravno, korištenjem najkraće moguće

rute između njih. Međutim, jednako tako, oni mogu komunicirati i korištenjem bilo koje druge, i

mnogostruko duže rute u mreži, što dovodi do velikih gubitaka u vidu kašnjenja i usporavanja

komunikacije. Upravo zato je bitna upotreba naprednih routing algoritama.

Napredniji od dvodimenzionalnih isprepletenih mreža jesu isprepletene mreže u obliku

torusa.

Slika 2.14. Torusni oblik isprepletene mreže (izvor: [2])

Kao što se vidi iz slike, procesori koji se nalaze na rubovima sada mogu izravno

komunicirati, što u prethodnom slučaju nije bilo moguće. Samim time, ovakav oblik isprepletene

Page 47: Višeprocesorski računalni sustavi

39

mreže omogućuje višestruko bržu komunikaciju među najudaljenijim procesorima, zbog manjeg

broja skokova koje poruka mora obaviti pri svojem putu kroz mrežu.

Matrična topologija (Crossbar)

Matrična mreža dimenzija sastoji se od ulaza i izlaza, od kojih svaki ulaz može biti

spojen s bilo kojim slobodnim izlazom.

Primjer matrične mreže dimenzija prikazan je na slici 2.15. Mrežu sačinjava polje

sjecišta (engl. crosspoints) povezanih u rešetku, ili matricu. Pozicija svakog sjecišta u matrici

jednoznačno je definirana njegovim retkom , i stupcem .

Slika 2.15. Matrična mrežna topologija dimenzija (izvor: [1])

Sjecišta mogu raditi u jednom od načina prikazanih na slici 2.16. X konfiguracija je izvorna

konfiguracija koja omogućuje istovremeni protok podataka u okomitom i vodoravnom smjeru,

bez interferencije. Kada bi sjecište (3,5) bilo u X konfiguraciji, tada bi vodoravni prijenos

podataka započinjao u izvoru 3 i podaci bi bili dostavljeni svim sjecištima u tom retku.

Istovremeno, okomita komunikacija u stupcu 5 može započeti u bilo kojem ulazu ispod ili iznad

retka 3.

Page 48: Višeprocesorski računalni sustavi

40

Slika 2.16. Konfiguracije sjecišta u matričnoj mreži (izvor: [1])

Korištenjem T konfiguracije, protok podataka može se odvijati vodoravno, ali se prekida

okomiti protok podataka. Podaci koji putuju okomito prema izlazu su ustvari kopije podataka u

horizontalnoj komunikaciji. Na primjer, ukoliko bi sjecište (3,5) bilo u T konfiguraciji,

vodoravni protok podataka bi započinjao u izvoru 3. Podaci koji bi putovali silazno, prema

izlazu, bili bi kopija podataka iz vodoravne komunikacije. Na ovaj način, izlaz 5 vidi kopiju

podataka koji putuju kroz redak 3.

Multicast podataka u ovakvim je mrežama vrlo lako ostvariti. Pretpostavimo da ulaz 3

zahtijeva multicast svojih podataka prema izlazima 1, 2 i 5. Ulaz 3 će tada od sjecišta (3,1), (3,2)

i (3,5) zahtijevati T konfiguraciju, uz sva ostala sjecišta u retku 3 u X konfiguraciji.

Matrične mreže su mreže vrlo velikog kapaciteta, zbog činjenice da mogu podržati N

istovremenih konekcija. Međutim, to ide na trošak vrlo velikog broja sjecišta, koji se rapidno

povećava s kvadratom broja ulaza, odnosno izlaza, zbog čega se komunikacija u mreži može

usporiti. Stoga se ovakve mreže najčešće koriste u zahtjevnim aplikacijama koje zahtijevaju

relativno mali broj ulaza i izlaza (do 10). Ipak, napredci u VLSI tehnologiji te elektro-optici čine

matrične mreže vrlo atraktivnom alternativom.

2.4.2. Preusmjeravanje (Routing)

Preusmjeravanje u mrežama vrši se pomoću algoritama za preusmjeravanje. Cilj algoritama za

preusmjeravanje, odnosno routing algoritama, jest ravnomjerna raspodjela prometa među

putanjama koje definira odabrana mrežna topologija.

Takvu raspodjelu prometa je potrebno osigurati kako bi se poboljšala propusnost i smanjila

latentnost mreže. Također, routing algoritmi su kritična komponenta u slučaju pogrešaka: nakon

identifikacije pogreške, algoritam mora biti sposoban pronaći novu odgovarajuću rutu i zaobići

čvorove i veze u kvaru, bez znatnijeg narušavanja mrežnih performansi.

Page 49: Višeprocesorski računalni sustavi

41

Postoje brojni routing algoritmi, međutim najzastupljeniji algoritam u NoC mrežama je

dimension-ordered routing (DOR), zbog svoje jednostavnosti. Kod DOR algoritma, poruka

putuje kroz mrežu po dimenzijama, dostižući odredište prije ponovne promjene dimenzije. Broj

promjena dimenzija, odnosno smjera, ovisi o broju dimenzija od kojih se mreža sastoji. To znači

da će u dvodimenzionalnoj X-Y mrežnoj topologiji, kao što je isprepletena mreža na slici 2.17,

DOR algoritam podatke najprije slati po X dimenziji, a zatim po Y dimenziji, bez ponovne

promjene dimenzije.

Slika 2.17. Routing algoritmi u NoC mrežama (izvor: [3])

Podatak koji putuje od (0,0) do (2,3) najprije će učiniti dva skoka po X dimenziji, do pozicije

(2,0), a zatim će učiniti tri skoka po Y dimenziji, što će ga dovesti do odredišne lokacije (2,3).

Budući da broj promjena dimenzija ovisi o samom broju dimenzija u mreži, podatak će uvijek

načiniti najveći broj skokova po pojedinoj dimenziji prije no što promjeni dimenziju.

DOR algoritam pripada skupini determinističkih routing algoritma, kod kojih će svi podaci iz

čvora A prema čvoru B uvijek putovati istom putanjom. Drugu skupinu routing algoritama čine

promjenjivi (zaboravljivi, engl. oblivious) algoritmi koji koriste različite rute između čvorova A i

B, ali odabir rute ne ovisi o trenutnoj situaciji u mreži, što znači da ovakvi algoritmi ne

predviđaju moguće prekide u komunikaciji. Štoviše, ovakvi algoritmi mogu koristiti potpuno

Page 50: Višeprocesorski računalni sustavi

42

nasumičan pristup odabiru putanje. Slika 2.17 prikazuje primjenu promjenjivih algoritama, gdje

podaci do odredišta mogu putovati ili Y-X putanjom, ili X-Y putanjom.

Mnogo naprednije routing algoritme čine adaptivni (prilagodljivi) algoritmi koji odabir

putanje vrše isključivo na temelju stanja i pojava u mreži. Takvi algoritmi ujedno vrše i

dinamičku prilagodbu putanje, čime je isporuka podataka na odredište zajamčena. Na primjer,

podatak može putovati X-Y putanjom, međutim na lokaciji (1,0) „vidi“ prekid koji mu

onemogućuje da nastavi vodoravnim smjerom. Adaptivni algoritam tada će dinamički prilagoditi

putanju podatka tako što će ga preusmjeriti alternativnim pravcem, kao što je prikazano na slici

2.17. Takve mogućnosti ove algoritme čine potpuno imunima na poteškoće koje se mogu

pojaviti u mreži.

Pri odabiru routing algoritama, u obzir se osim njegova utjecaja na kašnjenje, trošak energije,

propusnost i pouzdanost, mora uzeti i sposobnost algoritma da izbjegne potpune zastoje u mreži.

Do potpunih zastoja (engl. deadlocks) dolazi kada nekoliko poruka u mreži napravi kružnu

putanju. Slika 2.18 prikazuje četiri poruke u potpunom zastoju, koje čekaju da se oslobode veze

koje su trenutno zauzete preostalim porukama.

Slika 2.18. Potpuni zastoj (deadlock) (izvor: [3])

Paket koji u preusmjerivač A ulazi s južnog ulaza, čeka svoj odlazak kroz istočni izlaz , ali

drugi paket se nalazi na istoj vezi dok čeka na odlazak kroz južni izlaz preusmjerivača B. Taj

izlaz je ponovno zauzet sljedećim paketom koji čeka na odlazak preko zapadnog izlaza

preusmjerivača C, i tako dalje.

Izbjegavanje potpunih zastoja se može osigurati korištenjem algoritama koji ne generiraju

kružne putanje u mreži. DOR algoritam nije podložan pojavi potpunih zastoja budući da on ne

može generirati kružne putanje – kao što je objašnjeno, promjena smjera kod ovakvog algoritma

ovisi o broju dimenzija u mreži. Primjerice, u dvodimenzionalnoj mreži bi za kružnu putanju bilo

Page 51: Višeprocesorski računalni sustavi

43

potrebno izvršiti tri promjene dimenzije, što DOR algoritam ne dopušta – u takvoj mreži

dozvoljena je tek jedna X-Y ili Y-X promjena dimenzije korištenjem DOR algoritma.

S druge strane, promjenjivi i adaptivni algoritmi su zbog svoje prirode modificiranja putanja

skloni stvaranju potpunih zastoja. Korištenje takvih algoritama zahtijeva prisustvo protokola

kontrole toka, koji će biti opisani u sljedećem odjeljku.

2.4.3. Kontrola toka (Flow control)

Kontrola toka uređuje alokaciju mrežnih međuspremnika i veza. Određuje kada će

međuspremnici i veze biti dodijeljene određenim porukama, te kako se mrežni resursi dijele

među mnogim porukama koje koriste mrežu, kako bi se osigurala što veća propusnost i što bolje

funkcioniranje mreže. Također, kontrola toka usklađuje brzinu komunikacije između pošiljatelja

i primatelja. Naime, ukoliko pošiljatelj šalje poruke većom brzinom no što primatelj može

osloboditi međuspremnik, doći će do zagušenja, odnosno zastoja. Zadatak kontrole toka je

izbjegne pojavu takvih situacija.

Kod kontrole toka metodom pohrani-i-proslijedi (engl. store-and-forward), svaki čvor čeka

da prihvati cijeli paket, prije no što bilo koji od njegovih dijelova proslijedi idućem čvoru.

Posljedica su velika kašnjenja pri svakom skoku, što ovaj model čini neprikladnim za upotrebu u

NoC mrežama. Da bi se kašnjenja pri svakom skoku smanjila, koristi se kontrola toka modelom

virtualnog presijecanja (engl. virtual cut-through) koja omogućuje da slanje paketa započne

prije primitka cijelog paketa. Latentnost se u tom slučaju drastično smanjuje, kao što je

prikazano na slici 2.19.

Sljedeća metoda kontrole toka koja je široko primijenjena u NoC mrežama, a koja je vrlo

slična virtualnom presijecanju, jest metoda crvotočine (engl. wormhole). U usporedbi s

navedenom metodom kontrole toka, koja šalje podatke i alocira međuspremnike na razini paketa,

kod metode crvotočine se komunikacija i alokacija međuspremnika odvija na razini flit-ova

(engl. flit – flow control digit). Flit je vrlo mala podatkovna jedinica, nastala dijeljenjem velikih

mrežnih paketa.

Page 52: Višeprocesorski računalni sustavi

44

Slika 2.19. Vremena prijenosa za kontrolu toka metodom (a) pohrani-i-proslijedi, i (b) presijecanja. tr

predstavlja vrijeme slanja vodećeg flita, ts predstavlja vrijeme slanje preostalih flitova u paketu, a tw

predstavlja vrijeme propagacije signala kroz mrežu (izvor: [3])

2.5. Vrste višeprocesorskih računalnih sustava

U sljedećim odjeljcima bit će predstavljeni najčešće korišteni tipovi višeprocesorskih računalnih

sustava,

2.5.1. Višejezgreni procesorski sustavi

Višejezgreni sustav najčešće podrazumijeva višeprocesorski sustav u kojem su sve procesorske

jedinice smještene na istom čipu, unutar istog kućišta. Ova bliska konfiguracija i smještaj

procesorskih jedinica omogućuje vrlo brzu međuprocesorsku komunikaciju bez prevelikog

troška energije. Dvojezgreni i četverojezgreni sustavi, zbog svojeg malog broja jezgara, najčešće

koriste načine povezivanja jednostavnom sabirnicom, dok sustavi s većim brojem jezgara koriste

NoC mreže. Oba načina povezivanja opisana su u prethodnim odjeljcima.

Višejezgreni sustavi su se počeli razvijati prvenstveno zbog potrebe da se omogući povećanje

performansi u sustavu, istovremeno ograničujući trošak energije u sustavu, odnosno disipaciju

snage. Drugim riječima, višejezgreni sustav postiže visoke performanse iako su jezgre koje ga

sačinjavaju ustvari klasični procesori niske učinkovitosti. S druge strane, višeprocesorski sustavi

koji koriste zasebne jednojezgrene procesore u sklopu istog sustava, visoke performanse

Page 53: Višeprocesorski računalni sustavi

45

ostvaruju uz mnogo viši trošak energije. Tablica 2.1 sumira temeljne razlike između takvog

višeprocesorskog te višejezgrenog pristupa u građenju računalnih sustava.

Tablica 2.1. Usporedba višeprocesorkih i višejezgrenih sustava

Višeprocesorski sustav Višejezgreni sustav

Jedan procesor po čipu Svi procesori na istom čipu

Visoke Niske

Vrlo visoke Vrlo visoke

Visok Nizak

Relativno visok Relativno nizak

Razina integracije

Performanse procesora

Performanse sustava

Trošak energije procesora

Ukupni trošak energije

Slika 2.20. predstavlja principijelnu shemu i teorijski model višejezgrenih sustava, čija

konfiguracija može uključivati sljedeće elemente:

1. Programabilne jezgre opće namjene,

2. Akceleratorske jezgre posebne namjene,

3. Dijeljeni memorijski moduli,

4. NoC (međuvezne mreže),

5. Ulazno/Izlazno sučelje

Slika 2.1. Principijelni model višejezgrenih sustava (izvor: [1])

Prije no što u četvrtom poglavlju budu opisane konkretne višejezgrene arhitekture pojedinih

proizvođača, nužno je predstaviti osnovni model višejezgrenog procesora. Iako se pristupi u

dizajniranju višejezgrenih procesora mogu razlikovati od proizvođača do proizvođača, postoje

Page 54: Višeprocesorski računalni sustavi

46

određene osnovne značajke koje su zajedničke svim višejezgrenim procesorima i čine temelj

višejezgrenih arhitektura.

Osnovni model konfiguracije višejezgrenog procesora prikazan je na slici 2.21. Srce samog

sustava čine procesori, odnosno jezgre. Ovisno o tome je li višejezgreni procesor homogen ili

heterogen, jezgre će biti jednakih, odnosno različitih mikroarhitektura i značajki.

Slika 2.21. Osnovni model višejezgrenog procesora (izvor: [4])

Najbliže samom procesoru nalaze se priručne memorije kroz nekoliko razina (engl. levels,

stoga oznaka L). Najraniji višejezgreni procesori sadržavali su L1 memoriju u sklopu samog

procesora (jezgre), dok je L2 memorija bila zajednička svim procesorima. U modernijim

višejezgrenim procesorima uvedena je još jedna razina priručne memorije, L3 memorija, koja je

sada zajednička svim raspoloživim jezgrama, a L1 i L2 memorije se nalaze u sklopu svake

pojedine jezgre.

L1 priručna memorija je vrlo brza memorija koja se koristi za pohranu i pristup podacima

koje procesor najčešće koristi. Priručne memorije druge i treće razine imaju sličnu ulogu, ali uz

nešto nižu brzinu pohrane i pristupa podacima.

Organizacija priručne memorije kroz nekoliko razina izvršava se iz više razloga. Prvo,

izvedba priručne memorije sastavljene od samo jedne veće L1 memorije preskupa je i presložena

– razdioba priručne memorije na više razina neće generirati prevelike gubitke u učinkovitosti, a

izvedba će biti mnogo jednostavnija i jeftinija. Drugo, svi podaci koji su procesoru potrebni

nemaju jednaku važnost. Drugim riječima, procesor ne pristupa svim bitnim podacima jednako

Page 55: Višeprocesorski računalni sustavi

47

često, stoga je vrijedni prostor L1 memorije poželjno osigurati podacima koji su procesoru

najčešće potrebni, dok se L2 i L3 memorije dodjeljuju podacima koje procesor koristi manje

često.

Glavna memorija predstavlja ustvari RAM memoriju, odnosno memorije s izravnim

pristupom podacima. U usporedbi s priručnom memorijom, ova memorija je mnogo sporija i

veća – RAM memorija je najčešće reda veličine nekoliko GB, dok priručne memorije u novijim

višejezgrenim procesorima mogu biti, kako slijedi: L1 – 32 KB, L2 – 256 KB i L3 – 8 MB.

2.5.2. Cluster računala

Računalni cluster je skupina koju čine najmanje dva računala povezana za svrhom zajedničkog

rješavanja zadanog problema.

Računala, odnosno procesori u clusteru mogu komunicirati međusobno ili putem dijeljene

memorije. Komunikacija se najčešće ostvaruje slanjem poruka i paketa korištenjem

komunikacijskih veza kao poput LAN mreža, kao što je prikazano na slici 2.22. LAN mreže se

pritom obično implementiraju u vidu serverskog računala velike brzine koje će biti u stanju

komunicirati sa svim dostupnim procesorima istovremeno. Osim samih računala i procesora koji

se u clusteru koriste isključivo za izvršavanje zadataka, u sustavu mora postojati i dijeljena

memorija koja će biti sposobna odgovarati na zahtjeve svih računala istovremeno, te client

računalo koje je zaduženo za raspodjelu zadataka među računalima i prikupljanje njihovih

rezultata.

Slika 2.22. Arhitektura računalnog clustera

(izvor: [1])

Page 56: Višeprocesorski računalni sustavi

48

Cluster računala, kao i grid računala koja su predstavljena u nastavku, zbog načina na koji

realiziraju tehnike paralelnog i višeprocesorskog računalstva, spadaju u skupinu široko

spregnutih paralelnih računala o kojima je bilo riječi u odjeljku 1.2.5.

2.5.3. Grid računala

Grid računalstvo, poznato još i kao cloud računalstvo, ili računalstvo u oblaku, odnosi se na

sustave pružanja pristupa računalnim resursima koji su distribuirani preko WAN (Wide Area

Network) mreže. U tom smislu, grid računalo je skup velikog broja procesora raspodijeljenih

preko širokog geografskog područja. Grid računala su, zbog enormnog broja procesora koje

posjeduju (deseci tisuća računala), sposobna rukovati problemima velikih razmjera, kao što su N-

body simulacije15

, te simulacije seizmičkih, atmosferskih i oceanskih pojava. U usporedbi s

cluster računalima, grid računalo je poput mnogo većeg clustera, koji umjesto LAN mreža

koristi WAN mreže, poput Interneta.

Ono što clustere i grid računala čini različitima od ostalih paralelnih višeprocesorskih sustava

i superračunala, jest upravo činjenica da se radi o cjelovitim i geografski udaljenim računalima

koja kao vid povezivanja koriste komunikacijske mreže poput LAN i WAN mreža, dok ostali

višeprocesorski podrazumijevaju čvrstu spregu procesora i njihovo lociranje unutar istog

računalnog sustava.

15 Simulacija dinamičkog sustava čestica, najčešće pod utjecajem sila poput gravitacijske sile. Velika primjena u

simulacijama kozmičkih pojava.

Page 57: Višeprocesorski računalni sustavi

49

3. POTEŠKOĆE I IZAZOVI U VIŠEPROCESORSKIM

RAČUNALNIM SUSTAVIMA

Nedvojbeno je da višeprocesorski pružaju mnoge dobrobiti i prednosti u odnosu na

konvencionalne, jednoprocesorske sustave. Međutim, da bi se takve prednosti osigurale,

višeprocesorski se sustavi susreću s mnogo složenijim poteškoćama i izazovima od svojih

prethodnika.

O kakvim se poteškoćama i izazovima radi, te jesu li, i na koji način riješeni, pitanja su na

koja odgovor valja potražiti kroz primjere najvažnijih problema koji se pojavljuju u

višeprocesorskim sustavima.

3.1. Koherentnost priručne memorije

Upotreba većeg broja procesora, osim brojnih pogodnosti, dovela je i do pojave potpuno novih

poteškoća, nepoznatih u prethodnim jednoprocesorskim sustavima. Veći broj procesora

podrazumijeva i veći broj njihovih privatnih memorija, što dosljednost i koherentnost podataka

na tim memorijama dovodi u pitanje, no prije opisivanja samog problema koherentnosti među

podacima, bit će kratko opisan koncept priručne memorije.

Priručna (engl. cache) memorija je mala i brza memorija u sklopu procesora, koja služi kao

posrednik između procesora i glavne, u ovom slučaju dijeljene, memorije. Ova memorija je

ujedno i najbrža memorija u hijerarhiji što je čine priručna, glavna te sekundarna memorija.

Budući da centralna procesna jedinica podatke i instrukcije obrađuje brže nego što se oni

mogu izravno pribaviti iz glavne memorije, priručna memorija će uskladiti brzinu procesora i

latentnost glavne memorije, čime će se omogućiti brži rad procesora. Stoga, čitaj/piši operacije

uz korištenje priručne memorije traju približno isto vrijeme kao i same aritmetičko-logičke

operacije.

Tablica 3.1 sumira terminologiju koja se koristi pri opisivanju koherentnosti priručne

memorije. Priručna memorija je vrlo korisna jer uz pomoć nje brojni zadaci i aplikacije prikazuju

i definiraju svoj vremenski i prostorni lokalitet (engl. temporal and spatial locality). Vremenski

lokalitet predviđa ponovno korištenje trenutnog podatka u bliskoj budućnosti, dok se prostornim

lokalitetom predviđa korištenje podataka u budućnosti koji se nalaze u blizini trenutno

Page 58: Višeprocesorski računalni sustavi

50

Pojam (engl.) Značenje

Block

Broadcast

Cache

Cache coherence

Cache coherence protocol

Coherent system

Global data

Line

Local data

Modified block

Multicast

Replacement

Spatial locality

Temporal locality

Unicast

Valid

Write-back

Write-thorugh

Prostorni lokalitet - podatak unutar istog bloka će biti uskoro korišten

Vremenski lokalitet - definiranje podatka koji će se uskoro koristiti

Slanje podataka samo jednoj priručnoj memoriji

Ispravnost - sadržaj bloka je ažuriran

Blok u dijeljenoj memoriji je ažuriran tek nakon što se isti blok premjesti iz priručnem memorije

Blok u dijeljenoj memoriji je ažuriran čim se modificira sadržaj istog bloka u priručnoj memoriji

Podatak pohranjen u dijeljenoj memoriji

Linija - blok pohranjen u priručnoj memoriji, zajedno sa svojom oznakom i bitom ispravnosti

Lokalni podatak - podatak pohranjen u priručnoj memoriji

Modificirani blok - podaci iz bloka u priručnoj memoriji koji nisu ažurirani u dijeljenoj memoriji

Slanje podataka odabranoj skupini priručnih memorija, ali ne svima

Zamjena - premještanje bloka iz priručne memorije zbog osiguravanja prostora za novi blok

Blok - skupina graničnih riječi ili podataka pohranjenih u dijeljenoj memoriji

Slanje podataka svim dostupnim priručnim memorijama

Priručna memorija - mala memorija velike brzina implementirana na istom čipu s procesorom kojemu pripada. Koristi

se kako bi se skratilo vrijeme pristupa memoriji i kako bi se izbjegle kolizije između procesora pri pristupanju dijeljenoj

memoriji

Koherentnost priručne memorije - povezanost sadržaja blokova u dijeljenoj memoriji i pojedinim priručnim

memorijama

Način osiguravanja kojerentnosti priručne memorije

Koherentan sustav - pravovaljano ažuriranje podataka u dijeljenoj i priručnoj memoriji pri svakom pristupu pojedinog

procesora

korištenog podatka. Takva analiza podataka uvijek će procesorima osigurati trenutni pristup

najpotrebnijim i najčešće korištenim podacima. Iz ovog razloga, operacije učitavanja i pohrane

podataka između dijeljene memorije i priručnih memorija odvijaju se putem blokova podataka,

umjesto pojedinačnih podataka ili riječi (engl. words), kako procesor ne bi morao pristupati

svakoj riječi pojedinačno. Slika 3.1 prikazuje odnos blokova pohranjenih u dijeljenoj memoriji i

njihovih kopija u priručnim memorijama pojedinih procesora. Priručna memorija pohranjuje

pojedine blokove koristeći oznaku (engl. tag), koja sadrži adresu dotičnog bloka u dijeljenoj

memoriji. Svaki blok koji se nalazi u priručnoj memoriji, pohranjen je u obliku retka, ili linije

(engl. line).

Linija sadrži sljedeće elemente:

1. Bit ispravnosti (engl. valid bit, V) koji ukazuje na koherentnost podatka u liniji i bloka

pohranjenog u dijeljenoj memoriji

2. Indeks, koji sadržava adresu linije u priručnoj memoriji

3. Oznaku, s adresom bloka u dijeljenoj memoriji

4. Podatak, koji sastoji od podataka iz dotičnog bloka u dijeljenoj memoriji

Tablica 3.1. Terminologija u opisivanju koherentnosti priručne memorije

Page 59: Višeprocesorski računalni sustavi

51

U sustavima s dijeljenom memorijom, priručna memorija pomaže i u eliminaciji memorijskog

nadmetanja pri kojem dva ili više procesora istovremeno pokušavaju pristupiti istom

memorijskom modulu.

Slika 3.1. Odnos podataka pohranjenih u glavnoj memoriji i njihovih kopija u priručnoj memoriji

(izvor: [1])

Kopije podataka pohranjenih u dijeljenoj memoriji moraju se podudarati s kopijama

pohranjenim u lokalnim priručnim memorijama pojedinih procesora, što se definira kao

koherentnost priručne memorije (engl. cache coherency). Kopije dijeljene varijable će biti

koherentne ukoliko su sve kopije identične. Sukladno tome, priručne memorije će biti

koherentne ukoliko svaka operacija čitanja koju procesor izvrši pronađe vrijednost generiranu

prethodnim pisanjem.

Koherentnost priručne memorije vrlo je bitna, kako bi se zajamčilo točno izvršavanje

programa i osigurale visoke performanse sustava. Pretpostavimo da dva procesora, i ,

koriste istu dijeljenu varijablu koja je pohranjena u njihove dvije različite priručne memorije.

Ukoliko bi modificirao svoju lokalnu vrijednost, mora se osigurati da bude „svjestan“ te

promjene.

Razmotrimo slučaj sustava s dijeljenom memorijom sastavljen od četiri procesora i jednog

memorijskog modula. Tablica 3.2 ilustrira probleme do kojih dolazi kada blok iz dijeljene

Page 60: Višeprocesorski računalni sustavi

52

memorije učitaju svi procesori, a zatim ga jedan ili više procesora modificira. Pretpostavlja se

write-through način ažuriranja podataka (pogledati tablicu 3.1).

Tablica 3.2. Primjer problema koherentnosti priručne memorije s write-through načinom ažuriranja

Tablica 3.3. prikazuje sličan problem, uz korištenje write-back načina ažuriranja podataka.

Sadržaj različitih priručnih memorija u različitim trenucima, prema tablicama 3.2 i 3.3, je

objašnjen u nastavku.

Trenutak 0. Priručna memorija C0 u procesoru P0 učitava blok b za korištenje tijekom obrade

podataka.

Trenutak 1. Isti blok iz dijeljene memorije sada učitavaju i priručne memorije C1 i C3. Sada u

sustavu postoje tri kopije bloka b.

Trenutak 2. Procesor P3 mijenja svoju kopiju b u priručnoj memoriji C3. U ovom trenutku

više ne postoji dosljednost između podataka u dijeljenoj memoriji i podataka u priručnoj

memoriji.

Trenutak 3. P3 izvršava write-through ažuriranje kako bi podatke u C3 i dijeljenoj memoriji

učinio dosljednima.

Trenutak 4. Koji procesor bi trebao ažurirati dijeljenu memoriju (tablica 3.3)? Pri korištenju

write-back načina ažuriranja, to je onaj procesor koji uradi premještanje ili zamjenu bloka iz

priručne memorije. U ovom slučaju, to je procesor P1.

Trenutak 5. Procesor P2 želi učitati blok b, ali središnji kontroler sada obavještava sve

procesore o novoj vrijednosti b1. Što P0 i P3 moraju učiniti? Zamijeniti svoje podatke, ili

obavijestiti dijeljenu memoriju da koriste svoje vlastite verzije bloka b.

C 0 C 1 C 2 C 3

0 b b - - -

1 b b b - b

2 b b b - b 3

3 b 3 b b - b 3

4 b 3 b 3 b 3 - b 3

Procesor P3 modificira svoju kopiju b. Sustav postaje nekoherentan.

Procesor P3 izvršava write-through ažuriranje. Sustav je i dalje

nekoherentan budući da C0 i C1 posjeduju neažurirane kopije.

Kontroler dijeljene memorije ažurira C0 i C1. Sustav je sada koherentan.

Dijeljena

memorijaVrijeme

Priručne memorije

Stanje

Blok b se učitava u C0

Blok b se učitava u C1 i C3

Page 61: Višeprocesorski računalni sustavi

53

Tablica 3.3. Primjer problema koherentnosti priručne memorije s write-back načinom ažuriranja

Jasno je iz prethodne dvije situacije (tablice 3.2 i 3.3) da osiguravanje koherentnosti priručne

memorije predstavlja veliki problem, posebice u višeprocesorskim sustavima. Ispravna

vrijednost memorijskog sadržaja ne bi se smjela definirati prema prvom procesoru koji je učinio

zapisivanje sadržaja svoje priručne memorije u dijeljenu. Na primjer, u tablici 3.2, se vidi da je

P3 prvi učinio ažuriranje bloka b, a zatim su slijedili P0 i P1. Ovo ne mora biti ispravan redoslijed

ažuriranja bloka b u dijeljenoj memoriji, iz razloga što procesori nisu međusobno sinkronizirani i

raspodjela zadataka i dretava u svakom procesoru nije usklađena s istima u nekom drugom

procesoru. Stoga, postavlja se pitanje – koji je ispravan redoslijed ažuriranja bloka b? Dva su

načina koja mogu ponuditi odgovor na to pitanje:

1. Ispravno ažuriranje bloka temeljeno na sekvencijalnom tijeku izvršavanja aplikacije

2. Ispravno ažuriranje bloka temeljeno na međuovisnosti podataka

Sekvencijalni tijek izvršavanja programa podrazumijeva pokretanje programa na

jednoprocesorskom sekvencijalnom stroju, koji ne posjeduje višeprocesne i višedretvene

mogućnosti. Točnost redoslijeda pristupanja i ažuriranja varijabli unaprijed je određena od strane

programera koji je aplikaciju osmislio. Takvog redoslijeda bi se trebalo pridržavati pri

implementaciji iste aplikaciju u višeprocesorskim sustavima, te pri određivanju načina ažuriranja

dijeljene varijable u memoriji i svim priručnim memorijama. Ispravan pristup

priručnoj/dijeljenoj memoriji je osiguran ukoliko su rezultati koji su prikupljeni u paralelnom

sustavu uvijek identični rezultatima prikupljenim u sekvencijalnom sustavu.

Točno ažuriranje bloka b temeljeno na međuovisnostima podrazumijeva definiciju odnosa i

veza među podacima, te korištenje naprednih algoritama raspodjele podataka među različitim

C 0 C 1 C 2 C 3

0 b b - - -

1 b b b - b

2 b b b - b 3

3 b b 0 b 1 - b 3

4 b 1 b 0 b 1 - b 3

5 b 1 ? b 1 b 1 ?

Vrijeme

Priručne memorije

Stanje

Blok b se učitava u C0

Koju vrijednost b je potrebno koristiti da bi se ažurirala dijeljena i

priručna memorija?

Blok b se učitava u C1 i C3

Procesor P3 modificira svoju kopiju b. Sustav postaje nekoherentan.

Procesori P0 i P1 modificiraju svoje kopije bloka b

P1 izvršava write-back ažuriranje prema dijeljenoj memoriji

Dijeljena

memorija

Page 62: Višeprocesorski računalni sustavi

54

priručnim memorijama. Drugim riječima, ukoliko se određeni podatak podijeli na međusobno

ovisne dijelove A, B i C i rasporedi na tri različite priručne memorije, tada će primjerice brisanje

dijela A uzrokovati istovremeno brisanje dijelova B i C iz preostale dvije priručne memorije.

Koherentnost priručne memorije u višeprocesorskim sustavima moguće je osigurati

korištenjem protokola koji će osigurati dosljednost podataka u priručnoj i dijeljenoj memorije.

Dva su osnovna protokola za ostvarivanje koherentnosti priručne memorije:

1. Direktorijski protokoli (engl. directory protocols)

2. Protokoli prisluškivanja (engl. snoopy protocols)

3.1.1. Direktorijski protokoli (directory protocols)

Osnovne komponente uz pomoć kojih direktorijski protokoli osiguravaju koherentnost priručne

memorije prikazane su slikom 3.2 Lokalne priručne memorije, povezane s procesorima,

posjeduju lokalne kontrolere koji koordiniraju ažuriranjem kopija dijeljenih varijabli u pojedinim

priručnim memorijama. Središnji kontroler je zadužen za održavanje koherentnosti priručne

memorije u cijelom sustavu. Direktorij je dio dijeljene memorije što pohranjuje unose koji

označavaju stanje svakog dijeljenog bloka. Struktura svakog unosa u direktoriju ovisi o detaljima

implementacije samog direktorijskog protokola koji se koristi. Također, središnji kontroler

rukuje zahtjevima lokalnih priručnih memorija te je zadužen za pravovremeno obavještavanje

lokalnih kontrolera o svim promjenama stanja dijeljenih varijabli. Međuvezna mreža omogućuje

komunikaciju između kontrolera te između priručnih memorija i dijeljene memorije.

Slika 3.2. Komponente sustava pri korištenju direktorijskih protokola

(izvor: [1])

Page 63: Višeprocesorski računalni sustavi

55

Sljedeća slika prikazuje detalje tzv. full-map direktorijskog protokola. Svaki unos sadrži

bita, gdje označava broj procesora. U konkretnom primjeru sa slike pretpostavljeno je

. Bit s oznakom D ukazuje je li podatak ispravan (0) ili modificiran (1).

Slika 3.3. Model full-map direktorijskog protokola (izvor: [1])

Bit s oznakom X ukazuje je li potrebno svim procesorima (broadcast komunikacija, B)

poslati poruku o ažuriranju podatka, ili se radi o no-broadcast komunikaciji (NB). Iz primjera sa

slike je vidljivo da će, ukoliko je blok koji odgovara prikazanom unosu modificiran, samo

procesori 1 i 4 morati biti obaviješteni o toj promjeni.

Full-map model direktorijskog protokola u svakom trenutku poznaje točne lokacije kopija

dijeljenih blokova. Priručne memorije koje su povezane s tim kopijama su uključene u radnje

kojima se osigurava koherentnost danog podatkovnog bloka. Ipak, ovakvo rješenje nije

fleksibilno budući da se sve transakcije vezane uz koherentnost preusmjeravaju na središnji

kontroler, koji stoga može predstavljati slabu točku sustava. Također, veličina svakog unosa je

izravno proporcionalna o broju procesora i mora se mijenjati s promjenom broja procesora.

3.1.2. Protokoli prisluškivanja (snoopy protocols)

Slika 3.4 prikazuje osnovne komponente pri osiguravanju koherentnosti priručne memorije

pomoću snoopy protokola, odnosno protokola prisluškivanjem.

Može se primijetiti da, u odnosu na prethodno opisane protokole, protokoli prisluškivanja ne

koriste direktorije u dijeljenoj memoriji, kao ni središnji kontroler. O aktivnostima i mjerama

osiguravanja koherentnosti se komunicira između lokalne priručne memorije i dijeljene

memorije. Istovremeno, ovu komunikaciju prate ostale lokalne priručne memorije . Međuvezna

mreža mora biti u stanju podržati broadcast komunikaciju kako bi svi prisutni procesori mogli

pratiti mrežne aktivnosti. Za te svrhe je prikladno korištenje zajedničke sabirnice, budući da svi

Page 64: Višeprocesorski računalni sustavi

56

procesori povezani na sabirnicu mogu na taj način vrlo lako opaziti svaku mrežnu aktivnost. U

sustavima sa sabirnicom, ovi se protokoli često nazivaju i protokolima prisluškivanja sabirnice

(engl. bus snooping protocols). Ipak, valja se podsjetiti, zajednička sabirnica ima vrlo ograničenu

propusnost, zbog mogućnosti obavljanja tek jedne podatkovne transakcije u svakom trenutku.

Slika 3.4. Komponente sustava pri korištenju protokola prisluškivanja (izvor: [1])

Kada određeni procesor izvršava operacije memorijskog pisanja (write), svi ostali procesori

povezani na sabirnicu bit će „svjesni“ te radnje te će imati priliku odlučiti je li ta radnja njima

relevantna ili nije. Operacija pisanja procesora Pi je relevantna procesoru Pj ukoliko taj procesor

posjeduje kopiju bloka b kojemu Pi pristupa. Postoje dvije opcije za Pj, ovisno o njegovoj metodi

ažuriranja priručne memorije. Ukoliko Pj koristi metode poništavanja (engl. invalidation-based

policy), poništit će vlastitu kopiju bloka b čim prisluškivanjem sabirnice uoči da drugi procesor

modificira dotični blok. U slučaju korištenja metode ažuriranjem (engl. updated-based policy),

Pj će vlastitu kopiju b zamijeniti s podacima prisutnima na sabirnici u trenutku ažuriranja

dijeljene memorije od strane nekog drugog procesora.

3.2. Snaga

Kao što je opisano u uvodnom poglavlju, upravljanje troškovima energije i snage postalo je

vodećom poteškoćom i ograničenjem u gotovo svim vrstama računalnih sustava. Ovo se

posebice odnosi na višejezgrene procesorske sustave, budući da oni podrazumijevaju pružanje

visokih performansi uz održavanje relativno niske i ekonomski prihvatljive razine troška

energije.

Kada su višestruke jezgre integrirane na istom čipu, raspoloživi izvor energije mora se dijeliti

sa svim raspoloživim jezgrama i ostalim resursima na čipu. Potrošnja energije je funkcija

kapaciteta, frekvencije sklapanja i kvadrata visine napona. Posljedično, čak i malo sniženje

Page 65: Višeprocesorski računalni sustavi

57

razine napona može rezultirati dramatičnim smanjenjem troška energije. Istovremeno, snižavanje

napona uzrokuje i linearan pad radne frekvencije, a samim time i pad performansi

jednojezgrenog sustava16

. Proizvođači čipova ubrzo su shvatili da mogu žrtvovati nekoliko

stupnjeva brzine (otprilike 10% radne frekvencije) po jezgri kako bi se omogućila proizvodnja

višejezgrenih procesora koji će imati jednaki trošak energije kao i jednojezgreni procesori.

Ipak, s porastom broja jezgara po procesoru, energetska ograničenja postaju sve izraženija.

Na primjer, četverojezgreni procesori moraju dijeliti energetske resurse na četiri jezgre, a

šesterojezgreni na čak šest. U svakom od ovih slučajeva, radni naponi i frekvencija, kao i

performanse pojedinih jezgara, moraju nastaviti opadati kako bi se trošak energije održao pod

nadzorom. Međutim, još je bitnije prepoznati praktično ograničenje CMOS tehnologije u vidu

minimalnog radnog napona (Vddmin). Ako višejezgreni procesori budu nastavili snižavati radne

napone kako bi osigurali prostor za veći broj jezgara, eventualno će dostići ovu granicu. Iza te

točke, redukcija troška snage postaje linearnom funkcijom snižavanja radne frekvencije. Drugim

riječima, jednom kada se postigne razina Vddmin, udvostručavanje broja jezgri po procesoru

rezultirat će otprilike upola nižim radnim frekvencijama.

Postaje jasno da razvoj višejezgrenih procesora podiže potrebe za učinkovitom optimizacijom

energetskih potreba na sasvim nove razine. Određene fine-grain i coarse-grain tehnike

smanjivanja radnog takta (engl. clock gating) postoje u većini današnjih višejezgrenih procesora,

međutim te tehnike zahtijevaju kontinuirano usavršavanje sa svakom novom generacijom

procesora. Također, potrebno je koristiti i tehnike smanjivanja radnog napona (engl. voltage

gating) koje će omogućiti potpuno isključivanje neiskorištenih dijelova procesora (npr. jezgara)

u bilo kojem trenutku. Naravno, primjena ovakvih tehnika podrazumijeva i određene ustupke u

vidu smanjenog odziva sustava te povećanih latentnosti koju uzrokuju ciklusi uključivanja i

isključivanja. Osim toga, ovakvo upravljanje radnim naponima može utjecati i na naponsku

stabilnost cjelokupnog sustava. Svi ovi čimbenici čine pouzdano dizajniranje budućih

višejezgrenih sustava vrlo složenim.

U pojedinim pristupima dizajniranju višejezgrenih procesora, upravljanje energetskim

zahtjevima je podignuto na novu razinu korištenjem dinamičkog rezerviranja snage kao resursa.

U ovakvim sustavima, sustav upravljanja snagom nadzire trošak snage po pojedinim

komponentama sustava, te vrši dinamičku prilagodbu radne frekvencije i napona u ovisnosti o

potrebama promatrane komponente. Ranije izvedbe takvih upravljačkih sustava omogućile su

16 Zanimljivo je spomenuti da su se u prvoj polovini prošlog desetljeća visoke performanse procesora osiguravale

podizanjem napona, dok je današnji trend spuštanje napona.

Page 66: Višeprocesorski računalni sustavi

58

podizanje radne frekvencije jedne jezgre ukoliko bi druge jezgre bile u stanju mirovanja (engl.

idle).

Vjeruje se da upravo ove tehnike, iako složene, predstavljaju vodeći trend pri dizajniranju

novih generacija višejezgrenih procesora.

3.3. Softverski stog

Proširena skalabilnost višeprocesorskih i višejezgrenih sustava, osim novog načina postizanja

visokih performansi, istovremeno znači i potpuno nove zahtjeve na softverski stog. Štoviše,

višejezgreni pristup može omogućiti bolji odziv i propusnost sustava, brže izvođenje zadataka, te

veću učinkovitost u izvršavanju višedretvenih aplikacija – ali isključivo ako ta poboljšanja mogu

omogućiti softverski stog i alati. U ovom potpoglavlju, bit će razmotreno nekoliko ključnih

stavki u softverskom stogu.

3.3.1. Operativni sustav

Kernel, odnosno jezgra operativnog sustava (OS) je zadužena za upravljanje resursima,

raspoređivanje (engl. scheduling), umrežavanje, integraciju komponenti i upravljanje

mnogobrojnim sklopovskim sučeljima niže razine. Dok mnogi suvremeni OS-i uvelike koriste

vremenski raspoređenu višezadaćnost (engl. time-sliced multitasking), dodatak višestrukih

procesora i jezgara dodaje sasvim novu dimenziju područja djelovanja kojim OS mora upravljati.

U unutrašnjosti OS-a, nekoliko ključnih podatkovnih struktura OS-u pomaže pratiti nadzor

nad dinamičkim stanjem računalnog sustava. Podatkovne strukture (engl. data structures)

upravljaju raspoređivanjem procesa, migracijom procesa, prijevodima virtualne memorije,

granicama zaštite, ulazno/izlaznim zahtjevima te ostalim oblicima raspodjele resursa. U

simetričnim višeprocesorskim sustavima, OS se može raditi na bilo kojem procesoru u sustavu, a

u pojedinim slučajevima, OS može raditi i na svim dostupnim procesorima u sustavu. Da bi se u

ovakvim situacijama izbjeglo podatkovno nadmetanje (engl. data races) na ključnim

podatkovnim strukturama, te kako bi se dotične podatkovne strukture zaštitile, OS upotrebljava

mehanizme zaključavanja, tzv. brave (engl. locks). S porastom broja procesora u sustavu, raste i

potencijalni broj nadmetanja na bravama tih ključnih podatkovnih struktura, što može ugroziti

cjelokupnu stabilnost i propusnost sustava.

Page 67: Višeprocesorski računalni sustavi

59

Da bi riješili ovakve poteškoće, suvremeni operativni sustavi moraju biti usmjereni korištenju

sofisticiranijih brava na ključnim podatkovnim strukturama. Prošlost i iskustvo pokazali su da

ostvarivanje prikladne optimizacije na takvim sofisticiranim bravama nije nimalo trivijalan

zadatak. Napredni operativni sustavi pokazuju brojne napretke u skalabilnosti i općim

performansama, međutim, za postizanje takve razine potrebne su godine usavršavanja i finih

podešavanja od strane mnogobrojnih stručnjaka, a izazovi postaju još složeniji sa svakom novom

i naprednijom generacijom višeprocesorskih sustava.

Osim podatkovnih struktura, moraju se usavršiti i mehanizmi raspoređivanja (engl.

schedulers) unutar operativnog sustava. Umjesto vremenskog raspoređivanja aktivnog procesa

na jednoj CPU jedinici, ovi mehanizmi sada moraju „shvatiti“ kako otpremati, te kako upravljati

višestrukim procesima na većem broju CPU jedinica. Relativno mali broj procesora ponudit će

značajni napredak u razini odziva sustava. Međutim, kod vrlo velikog broja procesora, sam

mehanizam raspoređivanja može postati kritična točka zbog nemogućnosti da u istom trenutku

rasporedi mnogobrojne aktivne procese.

Štoviše, dostupnost višestrukih procesora u sustavu otvara vrata i paralelnim aplikacijama

koje, pored procesa, postavljaju dodatne zahtjeve na mehanizme raspoređivanja. U idealnom

slučaju, ove aplikacije podrazumijevaju istovremeno odvijanje višestrukih dretvi na različitim

procesorima ili jezgrama. Međutim, da bi se osiguralo optimalno izvršavanje paralelnih

aplikacija, potrebno je implementirati naprednije metode dinamičke raspodjele i preraspodjele

resursa, kao i mogućnosti grupnog raspoređivanja.

U svjetlu navedenih rastućih zahtjeva, može se zaključiti da će operativni sustavi posebnu

pažnju morati posvetiti arhitekturi i strukturi mehanizama raspoređivanja u budućim

višeprocesorskim i višejezgrenim sustavima.

3.3.2. Aplikacijski softver

U višeprocesorskim sustavima, više aplikacija bi trebalo biti u mogućnosti koristiti prednosti

pravog paralelnog procesiranja. Međutim, razvoj i osiguravanje kvalitete paralelnih aplikacija

vrlo je teško, iz nekoliko razloga. Prvo, iako su tehnike paralelnog programiranja danas već vrlo

razvijene, polazišna točka većine programera i dalje je vezana uz serijske programe. Naime,

izuzetno je teško, čak i neprirodno, program koji je prvotno osmišljen i realiziran kao serijski,

pretvoriti u paralelni oblik. Kao što je ranije spomenuto, Amdahlov zakon, formuliran 1960.,

tvrdi da je maksimalno ubrzanje izvođenja programa pomoću većeg broja procesora ograničeno

Page 68: Višeprocesorski računalni sustavi

60

njegovom sekvencijalnom, odnosno serijskom frakcijom. Na primjer, ukoliko 80% programa

može biti paralelizirano, maksimalno ubrzanje može biti 5, bez obzira koliko je velik broj

procesora prisutan u sustavu (izraz (2.7)). Drugo, zbog nedeterminizma u interakciji dretava, vrlo

je teško utvrditi da će svi programi biti točni pod različitim okolnostima. Treće, optimiziranje

paralelnih programa je vrlo složeno zbog među-dretvene sinkronizacije i komunikacije.

Ispostavlja se da su primitivi17

koji čine paralelne programe jedni od najsporijih i, što je ironično,

u najvećoj mjeri serijski izvedeni upravo u suvremenim računalnim sustavima. Iako su se

tijekom proteklih godina učinili značajni pomaci nabolje u razvoju paralelnih aplikacija, svjetska

računalna industrija je još uvijek u velikoj mjeri nespremna za širi razvoj potpuno paralelnih

aplikacija.

17 U računalstvu, primitivi su najjednostavniji elementi dostupni u programskom jeziku. Primitiv se može definirati

kao „najmanja procesna jedinica“ određenog sustava, koja je dostupna programeru.

Page 69: Višeprocesorski računalni sustavi

61

4. IMPLEMENTACIJE VIŠEJEZGRENIH PROCESORA

Kao i kod ostalih tehnologija, implementacije višejezgrenih arhitektura se uvelike razlikuju od

proizvođača do proizvođača. Iako pripadaju istoj tehnologiji, različiti pristupi u dizajniranju

procesorskih mikroarhitektura rezultirat će u konačnici potpuno različitim proizvodima.

Budući da je područje višejezgrenih procesorskih arhitektura mnogo kompleksnije i šire no

što bi ga i cijeli ovakav rad mogao obuhvatiti, ovo poglavlje će predstaviti jednostavan pregled

suvremenih mikroarhitektura višejezgrenih procesora te njihovih osnovnih i najzanimljivijih

karakteristika, ali i ponuditi uvid u trendove razvoja na području višejezgrenih procesora te

pokušati otkriti što donosi budućnost višeprocesorskih računalnih sustava.

4.1. Osnove IBM Cell arhitekture

Cell arhitektura, punim imenom Cell Broadband Engine Architecture, udruženi je projekt IBM-a,

Sony-a i Toshibe, započeo s razvojem 2000. godine. Namjera je bila definirati arhitekturu Sony-

eve igraće konzole PlayStation 3, koja je trebala biti dva reda magnitude brža od tada vrlo

popularne konzole Playstation 2.

Cell arhitektura koristi heterogenu višejezgrenu procesorsku konfiguraciju, što znači da

umjesto konvencionalnih višenamjenskih jezgara, koje su identične, Cell arhitektura koristi dva

tipa jezgri koje su optimizirane za različite primjene: veliku upravljačku jezgru, koja se ističe

naprednim rukovanjem dretvama, te je stoga prikladna za uporabu s operativnim sustavom, i niz

manjih, jednostavnih SIMD jezgara zaduženih za procesiranje multimedijskih zadataka.

Ovakvom konfiguracijom, svaka jezgra ima svoju posebnu zadaću, kojoj u potpunosti može

posvetiti svoju procesorsku snagu.

4.1.1. Struktura Cell procesora

Heterogena Cell arhitektura u osnovi se sastoji od jedne upravljačke procesorske jezgre, Power

Processor Element (PPE), i 8 računskih procesorskih jezgara, Synergistic Processing Element

(SPE) s pripadajućim lokalnim spremnicima, Local Storage (LS). Sabirnica velike brzine, zvana

Page 70: Višeprocesorski računalni sustavi

62

Element Interconnect Bus (EIB), koristi se za međusobno povezivanje ovih procesora unutar Cell

arhitekture, te za vezu procesora s glavnom memorijom i vanjskim ulazno/izlaznim jedinicama.

Slika 4.1. Struktura Cell procesora (izvor: [2])

Detalji svakog elementa strukture opisani su u nastavku.

4.1.2. Power Processor Element (PPE)

PPE implementiran u Cell arhitekturi je procesor opće namjene, radne frekvencije 3.2 GHz, s

funkcijama ekvivalentnim onima u 64-bitnoj Power PC arhitekturi18

. Poput konvencionalnih

procesora, PPE omogućuje izvršavanje operativnog sustava i aplikacija, te ulazno/izlaznu

komunikaciju i upravljanje kada procesor pristupa glavnoj memoriji i vanjskim jedinicama, ali i

koordinira radom dostupnih SPE jedinica.

4.1.3. Synergistic Processing Elements (SPE)

Osam sinergističkih SPE elemenata je dizajnirano kako bi optimiziralo SIMD procesiranje. SPE

se sastoji od izvršne jedinice koja izvršava dodijeljene zadatke– Synergistic Execution Unit

18 Power PC (Performance Optimization With Enhanced RISC – Performance Computing) – RISC arhitektura

dizajnirana 1992. u udruženom Apple-IBM-Motorola projektu.

Page 71: Višeprocesorski računalni sustavi

63

(SXU), lokalnog spremnika – Local Store (LS), koji nije priručna memorija, te od globalne

memorije i sabirničkih sučelja za izravni pristup memoriji (Direct Memory Access, DMA).

SPE su mnogo jednostavnije procesorske jedinice od PPE elemenata, budući da nisu

dizajnirane za izvršavanje upravljačkih zadaća, već isključivo za obavljanje jednostavnih

operacija nužnih za procesiranje multimedijskih podataka.

Lokalni spremnik, LS, veličine 256 KB je programibilna lokalna memorija koja se koristi

umjesto priručne iz nekoliko razloga. Prvo, može se bolje optimizirati za protočne namjene, tj. za

rukovanje velikim brojem sekvencijalnih podataka putem programiranih blokovskih prijenosa iz

glavne memorije. Drugo, sama fizička veličina (veličina čipa) ovakve memorije upola je manja

od ekvivalentne priručne memorije, jer je pristupna i upravljačka logika pojednostavljena i nema

potrebe za korištenjem oznaka (tags). Treće, u usporedbi s priručnom memorijom, programibilni

DMA omogućuje konkurentnost većeg broja različitih programa. Naime, lokalni spremnik

uključuje uski (16 byte) i široki (128 byte) podatkovni tok. Uski podatkovni tok namijenjen je

izravnoj učitaj-pohrani komunikaciji s izvršnom SXU jedinicom; široki podatkovni tok koristi se

za istovremeni prihvat instrukcija, te DMA transakcije s glavnom memorijom, PPE elementom, i

ostalim SPE elementima.

4.1.4. Element Interconnect Bus (EIB)

Sva komunikacija između PPE i osam SPE elemenata, memorijskog kontrolera, te

ulazno/izlaznih sučelja, odvija se putem sabirnice koja se naziva Element Interconnect Bus

(EIB). Sabirnica je donekle nepravilan naziv za ovakav pristup, budući da se EIB sastoji od četiri

kružna prstena, po dva za komunikaciju u suprotnim smjerovima.

Slika 4.2. Element Interconnect Bus (izvor: [20])

Page 72: Višeprocesorski računalni sustavi

64

Svaki prsten može podržavati do tri transakcije istovremeno, pod pretpostavkom da su

pravilno razmaknute (korištenjem prikladnih metoda multipleksiranja). Svakom se transakcijom

može prenijeti 16 byte-ova podataka, radnim taktom dvostruko manjim od procesorskog.

Teoretski, propusnost EIB je

byte-ova podataka po procesorskom taktu. Ipak, u

stvarnosti se takva propusnost ne može dostići zbog različitih ograničavajućih čimbenika, poput

konfliktnih transakcija i fizičkih ograničenja ulazno/izlaznih sučelja i memorijskog kontrolera.

4.2. Intel Nehalem

Nehalem je naziv Intelove mikroarhitekture višejezgrenih procesora iz 2008. godine. Procesori

bazirani na ovoj mikroarhitekturi predviđeni su za uporabu u računalima opće namjene, tj.

osobnim i prijenosnim računalima, ali i u posebnim namjenama, poput serverskih platformi.

U odnosnu na prethodne višejezgrene mikroarhitekture, imenom Core, Nehalem

mikroarhitektura posjeduje integrirani memorijski kontroler s podrškom 3 DDR3 kanala, tri

razine priručne memorije, obnovljenu Hyper-Threading tehnologiju, novu vanjsku sabirnicu pod

imenom QuickPath, i ostale novosti koje će biti predstavljene u nastavku.

Osnovne značajke Nehalem mikroarhitekture, od kojih će one najbitnije biti detaljnije

opisane u nastavku, sažete su u sljedećoj listi:

Bazirana na Intel Core mikroarhitekturi

Dvije do osam jezgara

Integrirani trokanalni DDR3 memorijski kontroler

Zasebna L2 priručna memorija veličine 256 KB po jezgri

8 MB priručne memorije treće razine, L3

Novi SS4 4.2 set instrukcija (sedam novih instrukcija)

Obnovljena Hyper-Threading tehnologija

Turbo Boost način rada (automatsko podizanje radnog takta procesora)

Nova QuickPath vanjska sabirnica

PCU upravljačka jedinica (power control unit)

Proizvodni proces u 45 nm tehnologiji, odnosno 32 nm za buduće procesore (Westmere

arhitektura)

Novi 1366 pinski socket

Page 73: Višeprocesorski računalni sustavi

65

4.2.1. Integrirani memorijski kontroler

Još od najranijih procesora, Intelova rješenja su koristila vanjsku sabirnicu, zvanu Front Side Bus

(FSB), koja je bila dijeljena između memorijskih i ulazno/izlaznih zahtjeva. Međutim,

višejezgrene arhitekture zbog same svoje paralelne prirode mogu propusnost zajedničke

sabirnice opteretiti znatno više od jednojezgrenih, stoga je bilo potrebno pronaći novi pristup.

Procesori bazirani na Nehalem mikroarhitekturi koriste ugrađene, tj. integrirane memorijske

kontrolere i stoga raspolažu s dvije vanjske sabirnice: memorijskom sabirnicom za povezivanje

CPU jedinica s memorijom, i I/O sabirnicu za povezivanje CPU jedinica s ulazno/izlaznim

sučeljem, odnosno „vanjskim svijetom“.

Ova promjena donosi značajno poboljšanje performansi sustava, iz dva razloga. Prvo, sada

postoje razdvojeni podatkovni tokovi za memorijske i ulazno/izlazne pristupe čime je osigurana

veća propusnost. Drugo, pristup memoriji je mnogo brži, budući da CPU ne mora više

komunicirati s vanjskim memorijskim kontrolerom. Slika 4.1 uspoređuje konvencionalan

pristup, s jednom vanjskom sabirnicom, te novi trend s korištenjem dvije vanjske sabirnice i

integriranim memorijskim kontrolerom. Valja pritom napomenuti da ova tehnologija, strogo

gledano, ustvari ne predstavlja način komunikacije sabirnicom, već P2P (point-to-point) vezama.

Novo rješenje, pod nazivom QuickPath Inteconnect (QPI), osigurava dva odvojena

podatkovna toka što CPU jedinici omogućuje da istovremeno šalje („piše“) i prima („čita“)

ulazno/izlazne podatke.

Svaki od tokova može prenositi 20 bitova u taktu. Od tih 20 bitova, 16 bitova sačinjava

podatak, dok se preostala 4 bita koriste za CRC korekcijski kod (Cyclic Redundancy Check), koji

primatelju omogućuje da provjeri ispravnost primljenog podatka.

Najranija verzija QuickPath-a imala je radni takt od 3.2 GHz, šaljući dva podatka po taktu

(tehnika poznata kao DDR, Double Data Rate), što je ekvivalentno korištenju radnog takta od

6.4 GHz za slanje pojedinačnih podataka. Budući da se šalje 16 bita po taktu, maksimalna

teoretska brzina prijenosa iznosi 12.8 GB/s po toku ( ). Teoretski, takva

brzina prijenosa odgovara brzini FSB sabirnice, međutim dok se FSB sabirnica istovremeno

koristi svu međuprocesorsku i ulazno/izlaznu komunikaciju, te pristupe memoriji, kod QPI

pristupa ti su zadaci podijeljeni na zasebne tokove.

Page 74: Višeprocesorski računalni sustavi

66

Slika 4.3. FSB sabirnica (lijevo) i integrirani memorijski kontroler (desno) (izvor: [13])

Integrirani memorijski kontroler omogućuje podršku za tri memorijska kanala istovremeno,

što znači da procesor može paralelno pristupiti trima memorijskim modulima, kako bi se

osiguralo poboljšanje performansi u sustavu. U teoriji, trokanalna memorijska arhitektura nudi

50% povećanje propusnosti, u odnosu na dvokanalne arhitekture koje djeluju na istim radnim

frekvencijama.

4.2.2. Tri razine priručne memorije

Dvorazinske hijerarhije priručne memorije, kojima su se koristili raniji dvojezgreni procesori,

nisu prikladne za višejezgrene procesore koji sadrže više od dvije jezgre. Naime, u takvim

hijerarhijama, L2 priručna memorija je zajednička svim procesorima, odnosno jezgrama.

Intuitivno se nameće zaključak da kod takvih pristupa može doći do velikih poteškoća ukoliko

dijeljenoj memoriji istovremeno pristupa velik broj procesora – zagušenje sabirnica, prevelik

broj memorijskih nadmetanja, koherentnost priručne memorije, niska propusnost – tek su neki od

problema s kojima bi se ovakve arhitekture susrele.

Nehalem mikroarhitektura te poteškoće izbjegava korištenjem nove razine priručne

memorije. L2 memorija sada se dodjeljuje svakoj dostupnoj jezgri, i uz L1 postaje privatna

priručna memorija, dok najniže mjesto u hijerarhiji zauzima nova razina priručne memorije – L3

memorija. L3 memorija zajednička je svim jezgrama i koristi se za međuprocesorsku

komunikaciju i ažuriranje dijeljenih podataka. Također, ova memorija uključuje i sadržaje

privatnih memorija, što znači da procesori ne moraju posezati za određenim podatkom u privatnu

priručnu memoriju drugog procesora, već je sav sadržaj dostupan na zajedničkoj L3 memoriji.

Page 75: Višeprocesorski računalni sustavi

67

Drugim riječima, ukoliko određeni procesor ne pronađe traženi podatak u L3 memoriji, ne mora

tražiti ni u privatnim memorijama ostalih procesora, što znatno ubrzava rad u ovakvim

arhitekturama. Naravno, L3 memorija ne sadržava cjelovite podatke pojedinih privatnih

memorija, već samo određene bitove – točnije, po bit za svaku jezgru – koji će ukazivati na

lokaciju traženog podatka.

Slika 4.4. Razine priručne memorije u Nehalem mikroarhitekturi

Ova tehnika ujedno osigurava i koherentnost privatnih priručnih memorija budući da

ograničava potrebu za razmjenom podataka između procesora. Kao što se može primijetiti, kod

ovakvog pristupa postoji izvjesna redundancija, budući da se sadržaj privatnih priručnih

memorija ponovno pohranjuje u L3 memoriji, no taj se nedostatak donekle može zanemariti

veličinom L3 memorije u usporedbi s privatnim memorijama – svi podaci u privatnim

memorijama četverojezgrenog procesora zauzet će tek 1,25 MB od ukupno 8 MB veličine kojom

L3 raspolaže.

4.2.3. Upravljanje snagom

Jednu od poteškoća prilikom dizajniranja procesora svakako predstavljaju struje curenja. Struje

curenja se pojavljuju kod tranzistora, koji su primarni gradivni element svakog procesora.

Naime, tranzistori u procesorima se ponašaju kao sklopke koje djeluju kroz dva stanja: stanje

Page 76: Višeprocesorski računalni sustavi

68

Slika 4.5. Power Gate tehnika

(izvor: [13])

vođenja (zasićenja) kada vode struju i stanje zapiranja kada nema protoka struje. Problem

predstavlja upravo stanje zapiranja, kada teoretski ne bi smjelo doći do pojave bilo kakvog

protoka struje. Ipak, u stvarnim okolnostima dolazi do protoka vrlo slabih struja koje nazivamo

strujama curenja. Uzevši u obzir enorman broj tranzistora od kojih je procesor izgrađen,

kumulativan utjecaj ovakvih struja može biti značajan, te dolazi do neželjenih pojava u vidu

suvišne disipacije snage i topline, a problem postaje još i veći sa sve manjim dimenzijama

tranzistora.

Kako bi izbjegla takve poteškoće, Nehalem arhitektura posjeduje napredne mehanizme

upravljanja naponom i snagom procesora, u obliku PCU jedinice (Power Control Unit) Power

Gate jedinice koje su integrirane u sklopu samog procesora. Upravljačka jedinica u osnovi

dinamički upravlja visinama napona pojedinih jezgara, ali i ostalih komponenata, poput

memorijskog kontrolera, priručnih memorija i ulazno/izlaznih jedinica. U prethodnim

arhitekturama, sve su jezgre morale raditi na istom radnom taktu, no procesori bazirani na

Nehalem arhitekturi posjeduju modularne jezgre koje svoje radne taktove mogu prilagoditi

opsegu radnog opterećenja. Štoviše, upravljačka jedinici može po potrebi u potpunosti isključiti

pojedine jezgre, koje su u stanju mirovanja. S druge strane, Power Gate tehnika, u odnosu na

Clock Gate tehniku iz prethodnih arhitektura, eliminira gubitke uzrokovane strujama curenja i

omogućuje da jezgre u stanju mirovanja generiraju zanemarive troškove snage, gotovo jednake

nuli.

Kao što je ranije spomenuto, struje curenja postaju sve veći problem sa svakim novim

smanjenjem dimenzija tranzistora, odnosno duljina kanala, te Power Gate tehnologija

upravljanja snagom postaje esencijalnom komponentom svake nove generacije procesora.

Page 77: Višeprocesorski računalni sustavi

69

4.2.4. Turbo Boost

Napredno upravljanje snagom i Power Gate, obje prethodno opisane metode, osnovne su

komponente Intelove Turbo Boost tehnologije. Turbo Boost način rada se koristi kada je

operativnom sustavu potrebno osigurati bolje performanse, odnosno, jednostavnije rečeno, više

snage. Intelov Turbo Boost tada, uz pomoć Power Gate tehnike i PCU jedinica podiže radnu

frekvenciju aktivnih jezgara (ali i potrošnju snage) i njihovu učinkovitost, a samim time i ukupnu

učinkovitost sustava.

Slika 4.6. Turbo Boost način optimizacije (izvor: [13])

Ovakva poboljšanja mogu pružiti rast performansi od 3% do 11%, što nije mnogo, međutim

može biti od velike važnosti u aplikacijama koje posjeduju malenu, ili nikakvu, razinu

višedretvenosti, i gdje se ne mogu sve jezgre koristiti usporedno. Frekvencija se podiže

inkrementalno, u koracima od 133 MHz, do granice koja je određena mnogo puta dosada

spomenutim poteškoćama – disipacijom snage i topline.

4.2.5. Hyper-Threading tehnologija

Intelova Hyper-Threading tehnologija omogućava istodobno izvršavanje višestrukih dretava na

pojedinoj jezgri. Točnije, u slučaju Nehalem arhitekture, Hyper-Threading omogućuje

istovremeno izvršavanje dvije dretve po jezgri, te na taj način poboljšava performanse i

energetsku učinkovitost sustava.

Page 78: Višeprocesorski računalni sustavi

70

Slika 4.7. Hyper-Threading tehnologija (izvor: [13])

Osnovna zamisao ove tehnologije jest što bolje iskoristiti složenost svake jezgre, odnosno

razinu paralelizma koju ovakve arhitekture nude, kako bi procesorske jezgre bile konstantno

zaposlene". Umjesto korištenja preklopljenih, zajedničkih dretvi, svaka jezgra sada može

izvršavati dvije zasebne dretve, što uvelike povećava učinkovitost i iskoristivost sustava u

teškim, višedretvenim primjenama.

Pregledom opisanih značajki Nehalem mikroarhitekture, može se zaključiti da se radi o vrlo

modularnom rješenju, čije osobine i parametri nisu jednoznačno definirani, već se na

inteligentan način dinamički prilagođavaju prisutnom radnom opterećenju.

4.3. AMD Bulldozer arhitektura

Arhitektura kodnog imena Bulldozer, najnovija je arhitektura tvrtke AMD19

, potpuno različita od

trenutne AMD64 arhitekture koja je u uporabi još od prvog Athlon 64 procesora iz 2003. godine.

U ovome odjeljku bit će na jednostavan način objašnjeno kako ova nova arhitektura izgleda, te

koja je njezina osnovna značajka.

19 AMD – Advanced Micro Devices, poput Intela, proizvođač popularnih procesorskih rješenja za osobna i

prijenosna računala, te servere.

Page 79: Višeprocesorski računalni sustavi

71

4.3.1. Gradivni „višejezgreni“ moduli

AMD je kod svoje najnovije, Bulldozer arhitekture, odlučio uzeti potpuno novi pristup pri

dizajniranju višejezgrenih procesora. Nova arhitektura u potpunosti je usmjerena većem stupnju

integracije i dijeljenju resursa unutar višejezgrenih procesora u najvećoj mogućoj mjeri, kako bi

se osigurale visoke performanse, a istodobno smanjile dimenzije samih čipova i troškovi

energije.

Slika 4.8. Gradivni modul AMD Bulldozer arhitekture (izvor: [16])

Tradicionalan pristup dizajniranju višejezgrenih procesora je vrlo jasan: svaka jezgra djeluje kao

samostalna jedinica i s ostalim jezgrama dijeli samo najnužnije: sabirnicu, memorijski kontroler,

L3 priručnu memoriju i slično. Međutim, kod Bulldozer arhitekture, jezgre dinamički dijele

blokove za prihvat i dekodiranje instrukcija, priručne memorije i ostale jedinice.

Temelj arhitekture čini „dvojezgreni“ modul, koji se sastoji od dvije Integer izvršne jedinice,

odnosno „jezgre“ (dijele funkcionalnosti prihvata, dekodiranja i L2 memorije) s dodijeljenim

jedinicama za raspoređivanje (engl. schedulers), te dvije 128-bitne FMAC „cijevi“ s jednom FP

(Floating Point) jedinicom za raspoređivanje. Bitno je napomenuti da, iako AMD ovakve

module naziva dvojezgrenim CPU jedinicama, ustvari se ne radi o klasičnom dvojezgrenom

procesoru, jer ne postoje dvije cjelovite CPU jedinice u istom procesorskom kućištu.

Integer izvršne jedinice su dvije potpuno identične grupe sastavljene od AGU i ALU jedinica.

Kao što se iz naziva može zaključiti (engl. Integer – cjelobrojni), ove jedinice izvršavat će

većinu cjelobrojnih operacija u sustavu. Točnije, AGU jedinice (Adress Generation Unit,

Page 80: Višeprocesorski računalni sustavi

72

jedinica za generiranje adresa) izvršavat će kalkulacije adresa koje će zatim slati u hijerarhiju

priručne memorije, dok će ALU jedinice (Arithmetic Logic Unit, aritmetičko-logička jedinica)

izvršavati cjelobrojne operacije u sustavu.

Slično kao Integer izvršne jedinice, FP jedinice zadužene su za raspoređivanje operacija s

pomičnim zarezom, a srce tog bloka čine dvije FMAC jedinice (Floating point Multiply-

Accumulate) koje su sposobne izvršavati 128 bitne floating point operacije, zajedno s

operacijama korijena i dijeljenja.

Priručna memorija je, kao i kod Intelove Nehalem arhitekture, organizirana u 3 razine, s time

da se L1 i L2 nalaze na modulu i L2 je dijeljen između jezgara, a L3 memorija je izvan modula i

ona je zajednička svim modulima.

Ovakav „dvojezgreni“ modul neće biti učinkovit kao dvije tradicionalne jezgre, ali će trošiti

znatno manje snage te zahtijevati manje prostora na čipu, što znači da će proizvođači moći

implementirati više takvih modula unutar istog procesorskog kućišta. Navedene karakteristike

čine Bulldozer arhitekturu vrlo skalabilnom – dva Bulldozer modula, koja bi s konvencionalnim

pristupom činila dvojezgreni procesor, sada čine „četverojezgreni“.

4.4. Intel Sandy Bridge – korak u budućnost

Sandy Bridge je ime najnovije mikroarhitekture Intelovih procesora koja je s primjenom

započela 2011. godine. Radi se o evoluciji opisane Nehalem arhitekture, koja je korištena u

popularnim Core i3, Core i5 i Core i7 procesorima.

Budući da se radi o posljednjoj Intelovoj višeprocesorskoj arhitekturi, vrijedi učiniti kratak

pregled rješenja koja su joj prethodila. Nakon Pentium 4 procesora, koji je bio temeljen na

Intelovoj mikroarhitekturi sedme generacije, imenom Netburst, Intel je odlučio vratiti se svojoj

šestoj generaciji arhitekture (korištenoj na Pentium Pro, Pentium II i Pentium III procesorima)

koja se pokazala učinkovitijom. Iz te mikroarhitekture, Intel je razvio Core arhitekturu koja se je

koristila u popularnoj seriji Core 2 procesora (Core 2 Duo, Core 2 Quad i slični). Nakon daljnjih

usavršavanja, stvorena je Nehalem arhitektura, a iz nje zatim i najnovija Sandy Bridge

mikroarhitektura.

Sa svakom novom generacijom Intelovih procesora, do izražaja dolazi njihova Tick-Tock

strategija. Princip je u stvari krajnje jednostavan: Intel naizmjenično usavršava svoje proizvode,

najčešće u razdobljima od dvije godine, koristeći potpuno novu mikroarhitekturu, ili evoluciju

Page 81: Višeprocesorski računalni sustavi

73

trenutnog proizvodnog procesa (nanometarske tehnologije). Tick pritom označava usavršeni

(smanjeni) proizvodni proces, a Tock predstavljanje potpuno nove mikroarhitekture. Drugim

riječima, ukoliko je nova Nehalem mikroarhitektura bila predstavljena 2008. godine (Tock), u 45

nanometarskom proizvodnom procesu, a 2010. su se počeli proizvoditi Westmere procesori

temeljeni na istoj mikroarhitekturi, ali u 32 nanometarskom procesu (Tick), sada je red na

potpuno novu mikroarhitekturu – Sandy Bridge (Tock). Istovremeno, to znači da će sljedeća

generacija procesora biti temeljena na Sandy Bridge mikroarhitekturi, ali će biti izrađeni u

manjem proizvodnom procesu od trenutnog 32 nm procesa.

Slika 4.9. Intelova Tick-Tock strategija (izvor: [13])

U nastavku se nalazi sažetak osnovnih značajki Sandy Bridge mikroarhitekture (slika 4.10), od

kojih će pojedine biti detaljnije opisane:

Integrirani sjeverni most (engl. northbridge) – memorijski, grafički i PCI Express

kontroler nalazi se na istom čipu s ostatkom CPU jedinice, što nije bio slučaj kod

prethodne, Nehalem arhitekture

32 nm proizvodni proces

Integrirana grafička procesna jedinica

Ring arhitektura

Mikroinstrukcijska priručna memorija L0, veličine 6 kB, što je dostatno za pohranu 1536

mikroinstrukcija

32 kB instrukcijske i 32 kB podatkovne priručne memorije po jezgri (bez promjene u

odnosu na Nehalem)

Page 82: Višeprocesorski računalni sustavi

74

L2 priručna memorija se sada zove „priručnom memorijom srednje razine“ (engl. mid-

level cache, MLS) i veličine je 256 kB po jezgri.

L3 priručna memorija postaje „priručnom memorijom posljednje razine“ (engl. last-level

cache, LLC), dijeljena između CPU jezgri i grafičke jedinice. Veličine je od 3 MB do 15

MB, ovisno o izvedbi procesora, i podijeljena je u blokove jednakih veličina

Turbo Boost tehnologija nove generacije

Novi AVX (Advanced Vector Extensions) set instrukcija

1155 pinski socket

4.4.1. Ring arhitektura

Trend povećanog stupnja integracije, koji je Intel započeo s Nehalem mikroarhitekturom,

zahtijeva i naprednije oblike komunikacije među komponentama u procesoru. Naime,

konvencionalne sabirnice nisu dostatno rješenje za najnoviju, Sandy Bridge mikroarhitekturu,

koja na istom čipu integrira procesorske i grafičke jezgre, priručne memorije i odgovarajuće

kontrolere.

Procesori bazirani na Sandy Bridge mikroarhitekturi stoga koriste Ring arhitekturu za

ostvarivanje komunikacije među internim procesorskim komponentama. Komunikaciju ovakvom

prstenastom sabirnicom mogu koristiti sve komponente integrirane u Sandy Bridge procesoru:

procesorske jezgre s pripadajućim priručnim memorijama, L3, odnosno LLC priručne memorije,

System Agent (integracija memorijskog i PCI Express kontrolera, PCU jedinice (display

jedinice), te grafička jezgra (kontroler).

Slika 4.10 prikazuje Intelovu Ring arhitekturu (crna linija) sa svojim „stanicama“ (crveni

pravokutnici). Važno je shvatiti da je Ring arhitektura fizički smještena iznad blokova LLC

memorije, iako bi se prema slici mogao steći dojam da prsten prolazi kroz memoriju, što nije

slučaj.

Također, svaki LLC blok nije jednoznačno vezan uz određenu procesorsku jezgru – svaka

jezgra može koristiti bilo koji blok LLC memorije.

Ring arhitektura ustvari se sastoji od četiri prstena: podatkovnog prstena (engl. data ring),

prstena za zahtjeve (engl. request ring), prstena za potvrde (engl. acknowledgement ring), te

prstena za prisluškivanje kanala (engl. snoop ring). Arhitektura se temelji na ranije opisanom

QPI protokolu (QuickPath InterConnect).

Page 83: Višeprocesorski računalni sustavi

75

Slika 4.10. Sandy Bridge mikroarhitektura s pripadajućom Ring prstenastom sabirnicom (izvor: [13])

4.4.2. Nova generacija Turbo Boost tehnologije

Sandy Bridge mikroarhitektura uvela je i određene novosti u Turbo Boost tehnologiju, opisanu

kod pregleda Nehalem mikroarhitekture.

Kao što je opisano, Turbo Boost tehnologija omogućuje automatsko podizanje radnog takta

procesora, u cilju postizanja boljih performansi kada je to potrebno. Dok je kod prethodne

izvedbe takvo podizanje radnog takta bilo dozvoljeno samo do definiranih granica disipacije

snage i topline, tj. do definiranog TDP (Thermal Design Power), nova verzija omogućuje jezgri

da prekorači tu granicu, u trajanju do 25 sekundi. Drugim riječima, pojedinoj jezgri je

dozvoljeno da disipira više topline, no što je to službeno dozvoljeno, ali samo u slučajevima kada

su procesorske komponente, tj. procesor u cjelini, dovoljno ohlađene.

4.4.3. Integrirani grafički procesor

Integrirani grafički procesori unutar CPU jedinica nisu novost. Međutim, tek sa novom, Sandy

Bridge mikroarhitekturom, grafički procesori su u potpunosti integrirani s procesorskim

jezgrama i ostalim komponentama na istom silicijskom čipu, s mogućnošću korištenja

zajedničke prstenaste sabirnice u svrhu međusobne komunikacije. Usporedbe radi, prethodna

rješenja su koristila zasebne procesorske jezgre i grafičke module unutar istog CPU kućišta, što

ih je činilo tek „prividno“ integriranima.

Page 84: Višeprocesorski računalni sustavi

76

Slika 4.11. Sandy Bridge integrirana grafička jedinica (izvor [13])

Primarni element grafičkog procesora su izvršne jedinice (engl. execution units, EU na slici

4.9) čiji broj ovisi o samoj izvedbi procesora (na primjer, Core i5 procesori će imati više izvršnih

jedinica od slabijih, Core i3 procesora). Općenito, Sandy Bridge procesori mogu sadržavati do

12 grafičkih izvršnih jedinica.

Također, pomnijim proučavanjem slika 4.8 i 4.9, može se uočiti da se „Display“ i „Graphics“

jedinice nalaze u zasebnim dijelovima procesora. Takva organizacija može se protumačiti kao

„2D“ i „3D“ konfiguriranje procesora, koje omogućuje da se grafički (Graphics) procesor

isključi kada grafički zahtjevne, ili 3D, aplikacije nisu prisutne, i na taj način smanji disipaciju

snage i topline.

Sljedeća karakteristika ovakve inovacije jest izravan pristup grafičkog procesora dijeljenoj

LLC memoriji. Na taj način grafički procesor može pohraniti podatke, posebice teksture, što

uvelike poboljšava 3D performanse, budući da grafički procesor ne mora posezati za udaljenom

RAM memorijom za prihvat podataka, već ih izravno prihvaća iz priručne memorije (naravno,

ukoliko se ondje nalaze).

Zbog činjenice da se procesorske jezgre nalaze na 32 nanometarskom poluvodičkom čipu,

radne frekvencije takvih grafičkih jedinica mogu dosezati i 1.35 GHz, što ih čini izravno

usporedivima s jeftinijim zasebnim grafičkim karticama. Intel u budućim izvedbama planira

implementirati i naprednije grafičke funkcije poput FSAA algoritama ( Full-scene Anti-aliasing)

za poboljšanje prikaza, zbog čega se predviđa da bi procesori temeljeni na Sandy Bridge

mikroarhitekturi mogli eliminirati tržište slabijih i jeftinijih grafičkih kartica.

Page 85: Višeprocesorski računalni sustavi

77

4.5. Zaključne misli: budućnost – CPU ili GPU?

Općenitu budućnost računalne tehnologije uvijek je teško predvidjeti. Međutim, što nam donosi

bliska budućnost najčešće se može naučiti iz prošlosti.

Pomnijim promatranjem prethodno opisanih mikroarhitektura i tehnologija, može se uočiti da

su trendovi razvoja usmjereni sve većem stupnju integracije na procesorima. Dok su raniji

procesori imali tek dvije razine priručne memorije, s novijim procesorima (poput opisanih

Nehalem procesora) na čip se je integrirala još jedna razina memorije i memorijski kontroleri,

zatim i veći broj jezgara s naprednim tehnologijama, te naposljetku i grafički procesori, kojima

je vrata otvorila najsuvremenija Sandy Bridge mikroarhitektura. Pretpostavlja se da će upravo

daljnje povećavanje stupnja integracije, i korištenje heterogenih CPU/GPU procesora, biti budući

trend razvoja višejezgrenih procesora.

Štoviše, predviđa se da će integracija otići toliko daleko da više neće postojati klasična

CPU/GPU podjela, pa čak ni konvencionalna CPU jedinica, već će sav posao obavljati napredna

GPU jedinica. Sklopovski gledano, GPU jedinice jesu složenije i naprednije od CPU jedinica, i

mogu ponuditi znatno veće performanse pri izvršavanju zadataka, jer su u svom uobičajenom

radu prilagođene za izvršavanje težih paralelnih zadataka i obradu zahtjevnih grafičkih

aplikacija.

Takav koncept naziva se GPU računalstvom, ili točnije, GPGPU računalstvom (engl. General

Purpose computation on Graphic Processing Units) koje koristi GPU jedinice za svrhe

računanja u općim i znanstveno-istraživačkim primjenama. GPU računalstvo temelji se na

zajedničkoj upotrebi CPU i GPU jedinica u heterogenom ko-procesnom računalnom modelu.

Sekvencijalni, odnosno serijski dio aplikacije izvršavala bi CPU jedinica, dok bi za računski

zahtjevniji, paralelni dio aplikacije, bila zadužena GPU jedinica. Iz korisničke perspektive,

aplikacija bi se izvršavala brže jer koristi visoke performanse GPU jedinica.

Ipak, proći će još mnogo vremena dok GPU koncept u potpunosti ne zamijeni sadašnje

pristupe u dizajniranju procesora – integrirane CPU/GPU konfiguracije koje polako ulaze na

tržište još uvijek nisu dovoljno snažne da bi u potpunosti eliminirale tržište klasičnih grafičkih

kartica, a tek nakon što se to dogodi, potpuna integracija u vidu GPU računalstva će moći postati

temelj računalnih arhitektura.

Page 86: Višeprocesorski računalni sustavi

78

5. Zaključak

Kao što je spomenuto u samom predgovoru, osnovna namjera pri izradi ovog završnog rada bila

je ponuditi jednostavan i kratak, a opet stručan pregled suvremene tehnologije višeprocesorskih

računalnih sustava. Jednostavan i kratak, jer sama područja koja su bila predmet izučavanja, a u

to sam se i sam uvjerio prilikom prikupljanja literature i proučavanja materije, mnogo su šira i

kompleksnija no što bi ih jedan završni rad ovakvog opsega u potpunosti mogao obuhvatiti.

Upravo zbog te širine područja višeprocesorske tehnologije, vodeći motiv pri izradi ovog

zadatka bio je napisati rad koji će čitatelju, a u konačnici i meni samom, ponuditi temelje,

polazišnu točku za daljnje proučavanje ove vrlo zanimljive i atraktivne tehnologije.

Rad je ponudio opise temeljnih značajki višeprocesorskih računalnih sustava, njihovih

osnovnih modela i arhitektura, načela rada te poteškoća i ograničenja. Osim toga, rad je proučio i

razloge iz kojih je došlo do pojave višeprocesorske tehnologije i nestanka jednoprocesorskih

rješenja, ali i ponudio uvid u blisku budućnost tehnologije, čime je zaokruženo područje

višeprocesorskih računalnih sustava.

Page 87: Višeprocesorski računalni sustavi

79

Literatura

[1] Fayez, G.: „Algorithms and Parallel Computing“, John Wiley & Sons, Inc., Hoboken,

New Jersey, USA, 2011.

[2] Baer, J-L.: „Microprocessor Architecture – From Simple Pipelines to Chip

Multiprocessors“, Cambridge University Press, New York, USA, 2010.

[3] Keckler, Stephen W.; Olukotun K.; Hofstee, Peter H.: “Multicore Processors and

Systems“, Springer, New York, USA, 2009.

[4] Hennessy, John L.; Patterson, David A.: “Computer Architecture: A Quantitative

Approach (fourth edition)“, Morgan Kaufmann Publishers, San Francisco, USA, 2007.

[5] Patterson, David A.; Hennessy, John L.: „Computer Organization and Design: The

Hardware / Software Interface (fourth edition)“, Morgan Kaufmann Publishers,

Burlington, USA, 2009.

[6] Olukotun, K.; Hammond, L.; Laudon, J.: „Chip Multiprocessor Architecture:

Techniques to Improve Throughput and Latency“, Morgan & Claypool, Wisconsin,

USA, 2007.

[7] Tanenbaum, Andrew S.: „Modern Operating Systems (third edition)“, Pearson

Education International, Upper Saddle River, NJ, USA, 2009.

[8] Books LLC: „Flynn's Taxonomy“, Books LLS, Memphis, Tennesee, USA, 2010.

[9] Culler, D.; Pal Singh, J.; Gupta, A.: „Parallel Computer Architecture: A Hardware /

Software Approach“, Morgan Kaufmann Publishers, USA, 1997.

[10] Ribarić, S.: „Arhitektura Mikroprocesora (četvrto dopunjeno izdanje)“, Tehnička

knjiga, Zagreb, 1990.

[11] Ribarić, S.: „Naprednije Arhitekture Mikroprocesora (četvrto, neizmijenjeno

izdanje)“, Element, Zagreb, 2006.

[12] Schauer, B.: „Multicore Processors“, Internet,

http://www.csa.com/discoveryguides/discoveryguides-main.php, 2008.

[13] Intel: http://www.intel.com

[14] Mueller, P.: „Basics of Cell Architecture“, Internet,

http://moss.csc.ncsu.edu/~mueller/cluster/ps3/doc/, 2006.

[15] Torres, G.:„Inside AMD Bulldozer Architecture“, Internet,

http://www.hardwaresecrets.com, 24. kolovoza 2010.

Page 88: Višeprocesorski računalni sustavi

80

[16] Shilov, A.:„AMD Reveals Details About Bulldozer Microprocessors“, Internet,

http://www.xbitlabs.com, 24. kolovoza 2010.

[17] Torres, G.: „Inside Intel Nehalem Microarchitecture“, Internet,

http://www.hardwaresecrets.com, 26. kolovoza 2008.

[18] Torres, G.: „Inside Intel Sandy Bridge Microarchitecture“, Internet,

http://www.hardwaresecrets.com, 30. prosinca 2010.

[19] Andersson, R.; Gai, S.; Salli, T.: „Cisco Data Center Virtualization Server

Architectures“, Internet, http://www.informit.com, 1. srpnja 2010.

[20] Nvidia: „What is GPU Computing“, Internet,

http://www.nvidia.com

[21] Roberts, T.: „Multicomputer Programming, Cell BE Processor Boost Signal

Processing“, Internet, http://www.cotsjournalonline.com/, svibanj 2007.