You are on page 1of 88

SVEUILITE U RIJECI TEHNIKI FAKULTET

Struni studij elektrotehnike

Zavrni rad

VIEPROCESORSKI RAUNALNI SUSTAVI

Rijeka, srpanj 2011.

Kristijan Gaparac 0069030957

SVEUILITE U RIJECI TEHNIKI FAKULTET


Struni studij elektrotehnike

Zavrni rad

VIEPROCESORSKI RAUNALNI SUSTAVI


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

Rijeka, srpanj 2011.

Kristijan Gaparac 0069030957

IZJAVA

U skladu s lankom 9. Pravilnika o zavrnom radu, zavrnom ispitu i zavretku studija Tehnikog fakulteta Sveuilita u Rijeci od 4. srpnja 2011. godine, izjavljujem da sam samostalno izradio zavrni rad pod naslovom Vieprocesorski raunalni sustavi, prema zadatku broj 602-04/11-14/12.

U Rijeci, 14. srpnja 2011.

Kristijan Gaparac 0069030957 .

Sadraj

Predgovor ........................................................................................................................................ 1 Pregled poglavlja ........................................................................................................................ 2 1. UVOD U VIEPROCESORSKE SUSTAVE ........................................................................ 3 1.1. 1.2. Terminologija .................................................................................................................. 5 Tehnoloka dostignua .................................................................................................... 6 Von Neumannov model raunala ............................................................................. 7

1.2.1. 1.3.

Kratki pregled tehnolokih dostignua ............................................................................ 8 Osvrt unatrag radi pogleda u budunost .................................................................. 8

1.3.1. 1.4 2.

Novi pristup vieprocesorska tehnologija .................................................................. 12

VIEPROCESORSKI RAUNALNI SUSTAVI ................................................................ 14 2.1. Paralelno raunalstvo .................................................................................................... 14 Potekoe pri stvaranju paralelnih programa ........................................................ 15 Amdahlov zakon ................................................................................................... 16 Gustafson Barsisov zakon .................................................................................. 20 Implementacije paralelizma .................................................................................. 22

2.1.1. 2.1.2. 2.1.3. 2.1.4. 2.2.

Organizacija paralelnih raunala ................................................................................... 23 Flynn-ova taksonomija .......................................................................................... 23 Dijeljenje memorije u vieprocesorskim sustavima .............................................. 25 Vieprocesorski sustavi sa zajednikom memorijom - UMA ............................... 26 Vieprocesorski sustavi s raspodijeljenom memorijom - NUMA ........................ 28 Sprega procesora u vieprocesorskim sustavima .................................................. 29 Simetrija u vieprocesorskim sustavima ............................................................... 29

2.2.1. 2.2.2. 2.2.3. 2.2.4. 2.2.5. 2.2.6. 2.3.

Komunikacija meu paralelnim procesorima ............................................................... 31 Tipovi komunikacije ............................................................................................. 31 i

2.3.1.

2.3.2. 2.4.

Mehanizam komunikacije prosljeivanjem poruka .............................................. 34

Meuvezne mree ......................................................................................................... 34 Klasifikacija meuveznih mrea prema logikim topologijama ........................... 35 Preusmjeravanje (Routing) .................................................................................... 40 Kontrola toka (Flow control)................................................................................. 43

2.4.1. 2.4.2. 2.4.3. 2.5.

Vrste vieprocesorskih raunalnih sustava .................................................................... 44 Viejezgreni procesorski sustavi ........................................................................... 44 Cluster raunala ..................................................................................................... 47 Grid raunala ......................................................................................................... 48

2.5.1. 2.5.2. 2.5.3. 3.

POTEKOE I IZAZOVI U VIEPROCESORSKIM RAUNALNIM SUSTAVIMA ... 49 3.1. Koherentnost prirune memorije ................................................................................... 49 Direktorijski protokoli (directory protocols) ........................................................ 54 Protokoli prislukivanja (snoopy protocols) ......................................................... 55

3.1.1. 3.1.2. 3.2. 3.3.

Snaga ............................................................................................................................. 56 Softverski stog ............................................................................................................... 58 Operativni sustav ................................................................................................... 58 Aplikacijski softver ............................................................................................... 59

3.3.1. 3.3.2. 4.

IMPLEMENTACIJE VIEJEZGRENIH PROCESORA ..................................................... 61 4.1. Osnove IBM Cell arhitekture ........................................................................................ 61 Struktura Cell procesora ........................................................................................ 61 Power Processor Element (PPE) ........................................................................... 62 Synergistic Processing Elements (SPE) ................................................................ 62 Element Interconnect Bus (EIB) ........................................................................... 63

4.1.1. 4.1.2. 4.1.3. 4.1.4. 4.2.

Intel Nehalem ................................................................................................................ 64 Integrirani memorijski kontroler ........................................................................... 65 Tri razine prirune memorije................................................................................. 66 Upravljanje snagom............................................................................................... 67 ii

4.2.1. 4.2.2. 4.2.3.

4.2.4. 4.2.5. 4.3.

Turbo Boost ........................................................................................................... 69 Hyper-Threading tehnologija ................................................................................ 69

AMD Bulldozer arhitektura .......................................................................................... 70 Gradivni viejezgreni moduli ............................................................................ 71

4.3.1. 4.4.

Intel Sandy Bridge korak u budunost ....................................................................... 72 Ring arhitektura ..................................................................................................... 74 Nova generacija Turbo Boost tehnologije ............................................................. 75 Integrirani grafiki procesor .................................................................................. 75

4.4.1. 4.4.2. 4.4.3. 4.5. 5. 6.

Zakljune misli: budunost CPU ili GPU? ................................................................ 77

Zakljuak ............................................................................................................................... 78 Literatura ............................................................................................................................... 79

iii

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. Protona struktura za izvravanje instrukcija ........................................................................................22 Slika 2.4. Flynn-ova taksonomija ..........................................................................................................................25 Slika 2.5. Arhitektura UMA vieprocesorskih sustava sa zajednikom memorijom ...............................................27 Slika 2.6. Arhitektura NUMA vieprocesorskih sustava s raspodijeljenom memorijom .........................................28 Slika 2.7. Dijagram simetrinog viejezgrenog procesora .....................................................................................30 Slika 2.8. Dijagram asimetrinog viejezgrenog procesora ...................................................................................30 Slika 2.9. Razliiti tipovi komunikacije meu paralelnim procesorima ..................................................................32 Slika 2.10. Sabirnika mrena topologija ..............................................................................................................35 Slika 2.11. Zvjezdasta mrena topologija .............................................................................................................36 Slika 2.12. Prstenasta mrena topologija .............................................................................................................37 Slika 2.13. Isprepletena mrena topologija ..........................................................................................................38 Slika 2.14. Torusni oblik isprepletene mree .........................................................................................................38 Slika 2.15. Matrina mrena topologija ................................................................................................................39 Slika 2.16. Konfiguracije sjecita u matrinoj mrei) .............................................................................................40 Slika 2.17. Routing algoritmi u NoC mreama ......................................................................................................41 Slika 2.18. Potpuni zastoj (deadlock) ....................................................................................................................42 Slika 2.19. Vremena prijenosa za kontrolu toka ...................................................................................................44 Slika 2.20. Principijelni model viejezgrenih sustava ............................................................................................45 Slika 2.21. Osnovni model viejezgrenog procesora .............................................................................................46 Slika 2.22. Arhitektura raunalnog clustera..........................................................................................................47 Slika 3.1. Odnos podataka pohranjenih u glavnoj memoriji i njihovih kopija u prirunoj memoriji .......................51 Slika 3.2. Komponente sustava pri koritenju direktorijskih protokola .................................................................54 Slika 3.3. Model full-map direktorijskog protokola...............................................................................................55 Slika 3.4. Komponente sustava pri koritenju protokola prislukivanja ................................................................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 prirune memorije u Nehalem mikroarhitekturi .........................................................................67 Slika 4.5. Power Gate tehnika ..............................................................................................................................68 Slika 4.6. Turbo Boost nain optimizacije .............................................................................................................69

iv

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 pripadajuom Ring prstenastom sabirnicom ...................................75 Slika 4.11. Sandy Bridge integrirana grafika jedinica ..........................................................................................76

Popis tablica

Tablica 2.1. Usporedba vieprocesorkih i viejezgrenih sustava ...........................................................................45 Tablica 3.1. Terminologija u opisivanju koherentnosti prirune memorije ............................................................50 Tablica 3.2. Primjer problema koherentnosti prirune memorije s write-through nainom auriranja .................52 Tablica 3.3. Primjer problema koherentnosti prirune memorije s write-back nainom auriranja ......................53

Predgovor

U raunalnom svijetu jedna je konstanta oduvijek prisutna neutaiva glad za boljim performansama, zahtjev koji nikada nije zadovoljen. Svaki novi napredak u poboljanju uinkovitosti procesora istovremeno podie i korisnike zahtjeve na novu razinu. Postojee raunalne arhitekture nalaze se na prekretnici. Prve temeljite promjene pojavile su se 80-ih godina prolog stoljea kada je Reduced Instruction Set Computer (RISC) filozofija, dobrim dijelom potaknuta akademskim istraivanjima, proela raunalnu industriju, kao reakcija na sloenost Complex Instruction Set Computer (CISC) raunalne arhitekture. Tijekom dugog niza godina, evolucija raunala bila je obiljeena prvenstveno razvojem sve brih i brih uniprocesora1, iz generacije u generaciju okarakteriziranih sve veim brojem tranzistora i sve viom frekvencijom, tj. taktom rada. Danas, tri desetljea kasnije, to razdoblje doivljava svoj zalazak. ak i tijekom sljedeeg desetljea, Moore-ov zakon e jamiti kontinuirano poveanje gustoe tranzistora, na taj nain omoguujui integraciju milijardi tranzistora na istom silicijskom ipu. Meutim, ip multiprocesori2, poznatiji kao viejezgreni procesori, sada su jedini nain izgradnje mikroprocesora visokih performansi. Era vieprocesorskih sustava je svanula. Takve promjene u raunalnoj industriji nisu stvar izbora posljedica su ogranienja tehnolokog razvoja jednojezgrenih procesora. Naime, tehnologija izrade uniprocesora dostigla je toku u kojoj fizika ogranienja poput broja tranzistora na silicijskom ipu, kompleksnost dizajna i disipacija snage onemoguuju napredak sljedeih generacija jednojezgrenih procesora u vidu poveanja frekvencije rada, odnosno brzine i uinkovitosti. Na koji nain su navedeni problemi rijeeni, jesu li rijeeni, po emu su vieprocesorski sustavi bolji od jednoprocesorskih, te konano, to su uope vieprocesorski sustavi, tek su neka od pitanja kojima e ovaj zavrni rad ponuditi odgovor.

1 2

Uniprocessor engleski naziv za klasine, jednojezgrene procesore, odnosno procesore s jednom CPU jedinicom. ip multiprocesori (engl. Chip Multiprocessors, CMP) naziv za mikroprocesore koji na jednom silicijskom ipu mogu sadravati vei broj cjelovitih CPU jedinica.

Namjera i misao vodilja pri kreiranju ovog zavrnog rada bila je ponuditi jednostavan, ali struan pregled vrlo kompleksnog podruja tehnologije vieprocesorskih raunalnih sustava. Takoer, rad istrauje prve generacije vieprocesorskih sustava, kao i vieprocesorske arhitekture trenutno prisutne na tritu, ukljuujui i mnoge teme povezane uz tehnoloka dostignua, nove raunalne arhitekture, softverske i programerske probleme te budue tehnoloke izazove.

Pregled poglavlja

Rad je ureen oko etiri glavne teme, odnosno poglavlja: (1) Uvod u vieprocesorske sustave, poglavlje je koje e ponuditi kratak uvod u temu, razjasniti postojeu terminologiju vieprocesorske tehnologije te sumirati tehnoloka dostignua i postojee trendove u razvoju mikroprocesora. Poglavlja (2) i (3), Vieprocesorski raunalni sustavi, te Potekoe i izazovi u vieprocesorskim raunalnim sustavima, sainjavaju samu sr tematike kojom se rad bavi. U navedenim poglavljima bit e objanjena vieprocesorska tehnologija, aktualna postignua, arhitekture i implementacije, prednosti i nedostaci, ali i brojne potekoe, problemi i izazovi kojima je vieprocesorska tehnologija izvrgnuta. (4) Implementacije viejezgrenih procesora, zakljuno je poglavlje rada koje e pruati jednostavan pregled suvremenih viejezgrenih arhitektura, kratak uvid u budunost same tehnologije te pokuati odgovoriti na pitanje: to donosi budunost raunalne tehnologije? Naravno, svako od ovih poglavlja bavi se temama i podrujima koja su kompleksnija i ira no to bi jedan ovakav rad, pa i vie njih, ikada mogao biti. Ipak, nadam se da sam i na ovako skromnom broju stranica uspio ponuditi struan uvod i pregled osnova ove suvremene tehnologije.

1. UVOD U VIEPROCESORSKE SUSTAVE

Raunalna tehnologija uspjela je ostvariti nevjerojatan napredak u otprilike 65 godina od proizvodnje ENIAC-a, prvog elektronikog raunala ope namjene. Danas, iznos manji od $500 osigurat e nam kupnju osobnog raunala koje je snanije, te posjeduje vie glavne memorije i podatkovnog prostora od raunala koje je 1985. godine vrijedilo 1 000 000 amerikih dolara. tovie, dananje popularno Apple-ovo3 tablet raunalo4 iPad 2 (vrijedno $499) ima priblino iste performanse kao vektorsko superraunalo5 Cray 2 iz 1985. godine koje je vrijedilo, iz dananje perspektive, nevjerojatnih 17 milijuna amerikih dolara. Ovakav nagli napredak posljedica je uvijek prisutnih noviteta i inovacija na podruju tehnologije izrade i dizajniranja raunala. Iako su nova tehnoloka dostignua bila stalno prisutna u povijesti elektronikih raunala, znaajniji napredak u vidu poboljanja performansi i izgradnje novih raunalnih arhitektura osigurao je izum mikroprocesora, 70-ih godina prologa stoljea. Otkriem mikroprocesora, a samim time i izvanrednih mogunosti integracije sloenih elektronikih sklopova, zapoelo je razdoblje jednojezgrenih procesora, takozvanih uniprocesora, ija je svaka nova generacija bila obiljeena 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 inenjeri i znanstvenici jo tijekom 1980-ih godina predviali skori kraj jednojezgrenih procesorskih arhitektura. Ovakva su predvianja, naravno, bila neutemeljena i preuranjena. Naime, tijekom razdoblja 1986-2002, porast performansi jednojezgrenih procesora, temeljen na mikroprocesoru, imao je najviu stopu od vremena prvih tranzistorskih raunala iz kasnih 1950ih i ranih 1960-ih. Ipak, danas smo svjedoci smjene meu generacijama procesorskih arhitektura. Jednojezgreni procesori, dovedeni do samih granica svojih mogunosti, polako postaju dio povijesti.

Apple Inc. amerika multinacionalna korporacija pod vodstvom Stevea Jobsa, koja se bavi proizvodnjom i prodajom potroake elektronike, raunalnog softvera i osobnih raunala. Tvrtka je poznata po svojim popularnim proizvodima kao to su iMac, MacBook, iPhone i iPad. 4 Tablet raunalo mobilno, tj. prijenosno raunalo, dimenzijama malo veim od mobilnog telefona. Raunalom se upravlja pomou ekrana osjetljivog na dodir. 5 Superraunalo (engl. supercomputer) skupine najsnanijih raunala za izvravanje najzahtjevnijih raunskih operacija u primjenama poput simulacija kvantne fizike, vremenske prognoze, molekularnog modeliranja i sl.

Dosadanji trendovi u proizvodnji mikroprocesora bili su bazirani na praksi integracije sve veeg 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 naini hlaenja i odvoenja topline, uz pomo hladnjaka i ventilatora, postali su nedostatni i neuinkoviti, ak i neprihvatljivi zbog svojih sve veih dimenzija. S druge strane, modernije i kvalitetnije tehnike hlaenja, poput vodenih rashladnih sustava, jo su uvijek preskupe da bi bile ekonomski prihvatljive irem krugu korisnika. Jednojezgrena procesorska tehnologija time je dosegla svoj plato, nemona da zadovolji sve vee zahtjeve raunalne budunosti. Moore-ov zakon ipak nije ugroen, barem jo neko vrijeme ondje gdje su jednojezgreni procesori stali, jednakom e agilnou nastaviti vieprocesorski sustavi. Tehnologija je to koja obiljeava prekretnicu i budunost raunalne tehnologije.

Prvo, uvodno poglavlje ovog zavrnog rada predstavlja jednostavan uvod u samu temu, razjasnit e nejasnoe u nazivlju, te ponuditi opi pregled dostignua u tehnologiji i dosadanjim trendovima proizvodnje mikroprocesora.

Sve nae budue aktivnosti usmjeravamo razvoju viejezgrenih procesora. Vjerujemo da oni ine prekretnicu u raunalnoj industriji.
Predsjednik Intela, Paul Otellini, opisujui Intelove budue planove na Intel Developers Forumu, 2005.

1.1. Terminologija
Vrlo je bitno u ovom trenutku poblie definirati strunu terminologiju koja se upotrebljava na podruju vieprocesorskih raunalnih sustava, kako bi se izbjegle mogue nejasnoe, a samim time i ukratko predstavile solucije koje ova tehnologija nudi. Naime, pojam Vieprocesorski raunalni sustavi odnosi se na vrlo iroko i kompleksno podruje primjene u mnogoemu slinih, a opet razliitih tehnolokih rjeenja i implementacija. Vieprocesorski raunalni sustavi u osnovi su svi sustavi koji posjeduju najmanje dvije CPU6, odnosno sredinje raunalne jedinice, neovisno o samom tehnikom rjeenju, tj. arhitekturi. Takvi sustavi mogu biti multi CPU, viejezgreni (multicore), mnogojezgreni (manycore), MPSoC sustavi, te serveri i clusteri. U sljedeim redcima bit e predstavljen kratki opis svakog navedenog sustava.

Multi CPU solucije odnose se na sustave bazirane na najmanje dva fiziki odvojena jednojezgrena procesora koja su locirana na zajednikoj matinoj ploi. Takva rjeenja koritena su najee na serverskim platformama gdje je potreba za boljim performansama uvijek vea. Ovakvi sustavi, vrlo skupi i zbog fizikih imbenika vrlo sloeni, predstavljaju zastarjelu tehnologiju i nain poboljanja performansi sustava. Mnogo naprednija, praktinija i ekonomski prihvatljivija rjeenja su viejezgreni i mnogojezgreni sustavi. Ove sustave karakterizira integracija nekoliko CPU jedinica, odnosno jezgara, unutar istog kuita, na jednom silicijskom ipu. U osnovi jednaki, razlikuje ih tek broj jezgara dok viejezgreni procesori predstavljaju popularna komercijalna rjeenja s dvije, etiri i vie jezgara, termin mnogojezgreni sustavi se odnosi na procesore s desecima i stotinama jezgara, koritenim u naprednijim rjeenjima (superraunala, znanstveno-istraivake 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 viejezgrenih CPU i GPU jedinica, zvunih kontrolera i ostale logike, memorije, operativnog sustava i sl.). Sve popularniji u razliitim primjenama tijekom

6 7

CPU centralna procesna jedinica (engl. Central Processing Unit). VLSI (engl. Very Large Scale Integration) termin predstavlja tehnologiju vrlo visokog stupnja integracije koja omoguuje integraciju velikog broja tranzistora na silicijskom ipu. Od 2008. godine, broj integriranih tranzistora na ipu je reda veliine 109. 8 Embedded sustavi raunalni sustavi za izvravanje dodijeljenih i specifinih zadaa.

proteklog desetljea, predvia se da upravo ovi sustavi umnogome ine budunost raunalne tehnologije. Clusteri su skupine raunala organiziranih tako da sva raunala djeluju zajedniki te na taj nain formiraju vrlo napredne raunalne sustave koji mogu biti alternativa superraunalima. injenica da se radi o sustavu nainjenom od vie povezanih raunala clustere svrstava u pripadnike vieprocesorskih sustava. Kao to je vidljivo iz prethodnih opisa, sva navedena rjeenja u osnovi predstavljaju vieprocesorske sustave. Ipak, bitno je napomenuti kako e se ovaj zavrni rad ograniiti na ope podruje vieprocesorskih sustava, te na predstavljanje iroj publici korisnika najzanimljivijih i ekonomski najprihvatljivijih rjeenja, dok e zastarjele opcije, poput multi CPU sustava, te kompleksni sustavi poput clustera i servera biti tek kratko opisani. Takoer, pojedini e pojmovi, zbog nedostatka prikladnog hrvatskog nazivlja, biti zadrani u izvornoj, engleskoj verziji.

1.2. Tehnoloka dostignua


Suvremeni raunalni sustavi, izgraeni iz najsofisticiranijih mikroprocesora i naprednih memorijskih hijerarhija, postiu svoje visoke performanse kroz kombinaciju dramatinih tehnolokih dostignua i napredaka u raunalnoj arhitekturi. Tehnoloki napredci rezultirali su eksponencijalnom stopom rasta sirove snage (tj. taktne frekvencije) i koliine logikih sklopova (broja tranzistora) koja se moe 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 raunalima 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 raunalima, pa ak ih i nadmaiti funkcionalnou i performansama, i to po znaajno nioj cijeni. Moderni serveri i superraunala svoju snagu najee temelje upravo na kombinacijama takvih osnovnih mikroprocesorskih sustava.

Mainframe raunala velika, snana raunala najee koritena od strane velikih organizacija, za kritine primjene, kao to su procesiranja velikih koliina podataka, financijskih transakcija, te industrijskih i korisnikih statistika.

Slika 1.1. Mikroprocesor Intel 4004

Ipak, bilo bi pogreno pretpostaviti da su tri naela: protonost, paralelizam i princip lokaliteta, kojima su dananji raunalni arhitekti voeni pri dizajniranju novih raunalnih sustava, bila utvrena pri samom otkriu mikroprocesora. Otkria u tehnologiji omoguila su praktiniju primjenu i implementaciju tih naela te potaknula njihova budua usavravanja. Na tim naelima upravo poivanju i mikroarhitekturalne tehnike predstavljene u ovom radu.

1.2.1. Von Neumannov model raunala


Suvremeni mikroprocesori posjeduju najnaprednije tehnike znaajke. Ipak, i dananja raunala u osnovi jo uvijek prate konvencionalan von Neumannov model raunala. Von Neumannov model raunala s pohranjivanjem programa ine etiri bloka: Centralna procesna jedinica (CPU) koja sadri aritmetiko-logiku jedinicu (ALU) zaduenu za obavljanje aritmetikih i logikih operacija, registre s osnovnom zadaom vrlo brzog pohranjivanja operandi, kontrolnu jedinicu koja interpretira instrukcije i omoguuje njihovo izvravanje, te programsko brojilo (PC) koje oznaava adresu sljedee instrukcije koja se treba izvriti. Memorija za pohranu instrukcija, podataka te meurezultata i konanih rezultata. Memorija se implementira hijerarhijski. Ulaz (Input) zaduen za prijenos podataka i instrukcija iz vanjskog svijeta prema memoriji. Izlaz (Output) koji prenosi konane rezultate i poruke prema vanjskom svijetu.

U von Neumannovom modelu, ciklus izvravanja instrukcija tee prema algoritmu, kako slijedi:

1. Sljedea instrukcija (na koju ukazuje programsko brojilo) pribavlja se iz memorije. 2. Kontrolna jedinica dekodira instrukciju. 3. Instrukcija se izvrava. Takva instrukcija moe 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 vraa na korak br. 1.

1.3. Kratki pregled tehnolokih dostignua


Naravno, tijekom vie od 60 godina povijesti raunala s pohranom programa, konfiguracija navedenih blokova, kao i sadraj sekvence za izvravanje instrukcija, bili su podvrgnuti temeljitim optimizacijama. Centralna procesna jedinica poboljana je protonom (pipelining) strukturom; ALU jedinica segmentirana je na nekoliko manjih funkcionalnih jedinica; nie razine memorijske hijerarhije, poput prirune memorije (cache memorija) integrirane su na ipu. Odnedavno, tehnoloka dostignua omoguuju integraciju nekoliko mikroprocesora s pripadajuim prirunim memorijama na istom ipu, na taj nain tvorei ip multiprocesore (chip multiprocessors), tj. CMP-e. Osim navedenih (mikro)arhitekturalnih dostignua, temeljni instrukcijski ciklus proiren je do mjere gdje je mogue istovremeno izvravati vie instrukcija u svakom pojedinanom koraku.

1.3.1. Osvrt unatrag radi pogleda u budunost


Dva su podruja u kojima su tehnoloka dostignua ostvarila najvei utjecaj na performanse mikroprocesorskih sustava: poveanje radne frekvencije i poveanje broja tranzistora, odnosno logike u sustavu. Najjednostavnije reeno, via frekvencija znai bre izvravanje zadaa, a vie logike omoguuje implementaciju naprednijih funkcija u sustavu.

Slika 1.2 prikazuje evoluciju taktnih frekvencija Intelovih mikroprocesora od zaetaka mikroprocesorske tehnologije (Intel 4004), pa sve do viejezgrenih mikroprocesorskih rjeenja 2003. godine i kasnije.

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

Moe se uoiti 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 vie od 3000 puta manje od popularnog Pentiuma 4 frekvencije 3,4 GHz. Takvo poveanje otprilike odgovara trendu udvostruavanja frekvencije svakih 30 mjeseci. Meutim, iako je Pentium 4 bio najbri procesor svoje generacije, to ne vrijedi i za 4004. Tada su, naime, postojala mnoga mainframe raunala znatno bra od 4004. Poneka superraunala iz razdoblja kasnih 60-ih godina prologa stoljea, 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 jaa od 4004, bila su takoer i 6 redova magnitude skuplja, to ih ini apsolutno neusporedivima s korisnicima prihvatljivim komercijalnim rjeenjima. Nakon 2003. godine radne frekvencije su se ustalile na podruju oko 3GHz, a uskoro e biti navedeni i razlozi zbog kojih je tehnologija postigla takav plato. 9

Broj tranzistora koji je bilo mogue postaviti na ip rastao je usporedno s rastom frekvencija, ali bez ikakvih promjena u reduciranju dimenzija samih tranzistora. Godine 1965., Gordon Moore, jedan od osnivaa Intela, predvidio je da e broj tranzistora na komadiu silicija biti udvostruen svake dvije godine. Iako ponekad s manjim vremenskim odstupanjima, ova pretpostavka ostala je u sutini istinita, i danas je ope poznata kao Moore-ov zakon. Slika 1.3 vrlo zorno prikazuje Moore-ov zakon, tj. eksponencijalni napredak u broju tranzistora na primjeru Intelovih mikroprocesora (uoiti 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 moe biti odrati takav trend rasta do 2025. godine.

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

Osim to je omoguio implementaciju vie logike (samim time i naprednijih funkcija) te vie podatkovnog prostora (ublaivi tako neuravnoteenost izmeu brzine procesora i latencije memorije), Moore-ov zakon je takoer reducirao trokove i osigurao veu pouzdanost. Ipak, takav eksponencijalni rast ne dolazi bez potekoa i izazova. Jedna od tih potekoa jest veliina samog proizvodnog procesa. Naime, proces proizvodnje poluvodikih komponenata, koji je uznapredovao od 10 m procesa iz 1971. godine, do dananjeg 28 nm (odnosno 32 nm u sluaju aktualnih procesora) proizvodnog procesa, ne moe se reducirati beskonano. Samim time, i broj tranzistora koji se mogu postaviti na ip je fiziki ogranien veliinom proizvodnog procesa.

10

Drugi, i trenutno najvaniji izazov, jest koliina disipirane snage, odnosno topline. Slika 1.4 vrlo slikovito prikazuje postojei problem. Tree, na frekvencijama reda veliine nekoliko GHz, udaljenosti na ipu (tj. zbroj duljina vodova, ili kanala), izmeu izvora informacije i korisnika, postaju ograniavajui faktor i utjeu 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 predvien Moore-ovim zakonom ograniavaju brzine koje se mogu postii zbog toga to dinamika disipacija snage raste eksponencijalno i izravno je ovisna o visini frekvencije. S druge strane, statika disipacija (curenje) ovisi o broju tranzistora na ipu. Naalost, dimenzije tranzistora sada su toliko reducirane da je njihovo djelovanje podlono kvantno-mehanikim pojavama. Prema pravilima kvantne mehanike, sitne estice poput elektrona, na kratkim udaljenostima mogu spontano i nasumino tunelirati. Baza i emiter tranzistora sada su dovoljno blizu da bi izvjesna koliina elektrona mogla tunelirati izmeu njih, samim time uzrokujui malu struju curenja izmeu baze i emitera, odnosno mali kratki spoj. Smanjenjem dimenzija tranzistora, struja curenja se poveava. Ukoliko su radni naponi preniski, razlika izmeu logike jedinice i logike nule postaje prebliska samoj visini i rad procesora je onemoguen. Naposljetku, ovaj sloeni skup problema nee onemoguiti daljnji rast broja tranzistora na odreenoj povrini, no tada radna frekvencija mora ostati ista, odnosno mora se sniziti da bi se disipacija snage drala pod kontrolom, a procesor ostao hladan. 11

Stoga su Intel i ostali proizvoai 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 dostignue, moe se rei da je eksponencijalan rast brzine zaustavljen. Meutim, to ne znai da je time ujedno zaustavljen i rast performansi mikroprocesora. Ustrajnost Moore-ovog na poveanju koliine logike na ipovima dovela je do pojave posve novog trenda u razvoju mikroprocesora vieprocesorskih tehnologija i ip multiprocesora, tj. CMP-a.

1.4 Novi pristup vieprocesorska tehnologija


Navedene potekoe i ogranienja doveli su do situacije u kojoj je sve vee i bre uniprocesore jednostavno bilo nemogue izgraditi. Raunalni inenjeri i dizajneri, stavljeni pred nove izazove, sada se okreu novoj paradigmi u dizajnu mikroprocesora: vieprocesorskim sustavima. Dodavanje jo jedne procesne jedinice na isti ip bi, u teoriji, trebalo rezultirati udvostruenjem performansi i redukcijom disipirane topline; u praksi, realna brzina svake jezgre je uvijek manja od najbreg jednojezgrenog procesora, to e biti razmotreno u sljedeim poglavljima. Istodobno, da bi vieprocesorski sustavi bili uinkoviti, moraju u svojoj arhitekturi ukljuivati tehnike i metode paralelizma kako bi za rad kojeg je potrebno izvriti mogli koristiti sve raspoloive resurse, tj. procesorske jedinice. Budui da se vieprocesorski sustavi u osnovi sastoje od vie pojedinanih procesora, ili jezgara, programeri te procesore vide kao zasebne entitete, te je stoga potrebno konvencionalan von Neumannov raunalni model zamijeniti novim modelom paralelnog programiranja. Pomou ovog modela, programeri moraju svoje aplikacije podijeliti na polu-nezavisne dijelove, ili dretve (engl. threads, niti), koji se mogu istovremeno izvravati s raspoloivim procesorima u sustavu, ili njihovi programi nee biti u mogunosti iskoristiti procesorsku snagu koju nudi vieprocesorska arhitektura. Naime, ukoliko aplikacija nije multi-threaded tipa, tj. viedretvena, te nije programirana metodama paralelnog programiranja, vieprocesorski sustavi ne mogu ponuditi znatno poboljanje; dapae, mogua je ak i pojava pada performansi. Jednom kada se izvri proces threadinga, programi mogu koristiti prednosti thread-level paralelizma (TLP) usporednim pokretanjem i izvravanjem odvojenih niti instrukcija. Sljedei faktor koji utjee na performanse cjelokupnog sustava je operativni sustav. Memorijska arhitektura vieprocesorskih sustava je sloenija, a samim time i upravljanje

12

memorijom. Drugim rijeima, operativni sustav mora biti posebno dizajniran za vieprocesorske sustave, kako bi iste mogao prepoznati, te naposljetku iskoristiti njihov potencijal. Upravo navedena podruja, kao i mnoga druga, usko vezana uz njih, glavna su tema narednih poglavlja.

13

2. VIEPROCESORSKI RAUNALNI SUSTAVI


Poglavlje zapoinje definiranjem paralelnog raunalstva, paralelnih raunalnih sustava te njihove organizacije uz pomo Flynn-ove taksonomije10, kako bi se im bolje mogla shvatiti kompleksnost vieprocesorskih arhitektura i razlozi koji su doveli do njihova razvoja. Budui da su predmet izuavanja prvenstveno vieprocesorski sustavi, posebna panja bit e posveena kategoriji multiple-instruction multiple-data (MIMD) sustava koji su sposobni iskoristiti paralelizam na razini dretava (engl. thread-level paralelism) i ine temelj suvremenih vieprocesorskih sustava. Takoer, s hardverskog gledita e biti proueni sustavi s ravnomjernim adresiranjem memorije (uniform memory access UMA) i simetrini vieprocesorski sustavi (symmetric multiprocessors SMP), kao i sustavi s neravnomjernim adresiranjem memorije (nonuniform memory access NUMA). Vrlo bitno je razmotriti i podruje interkonekcija unutar vieprocesorskih sustava, tj. naine meusobnog povezivanja procesora, memorija i ostatka sustava.

2.1. Paralelno raunalstvo


Paralelno raunalstvo je oblik raunanja koji se zasniva na istovremenom izvravanju velikog broja kalkulacija. Osnovno naelo jest podjela veih problema i zadataka na itav niz manjih koji se zatim rjeavaju konkuretno (tj. usporedno, u paraleli). Paralelno raunalstvo, odnosno paralelizam, primjenjuje se ve dulje vrijeme, no tek su nedavno raunalni inenjeri poeli s njegovim pomnijim istraivanjem. Zbog fizikih ogranienja na koja je naiao razvoj jednoprocesorskih sustava, raunalni su inenjeri poeli razmatrati nove naine poveavanja propusnosti i uinkovitosti raunalnih sustava, a iskoritavanje razliitih razina paralelizma unutar koda pokazalo se dominantnom paradigmom, posebice korisnom u vieprocesorskim sustavima. Podjela paralelnih raunala najee se vri prema fizikoj, sklopovskoj konfiguraciji dotinog sustava, odnosno prema razini na kojoj sklopovlje podrava paralelizam. Razlikujemo tako vieprocesorske i viejezgrene raunalne sustave koji raspolau s nekoliko procesnih

10

Klasifikacija raunalnih arhitektura. Kreirao ju je Michael j. Flynn, 1966. godine.

14

elemenata unutar istog raunala, dok clusteri, MPP-i11 i gridovi12 koriste nekoliko cjelovitih raunala za rad na istom zadatku. Tradicionalno, raunalni programi su osmiljeni za izvravanje u serijskom, sekvencijalnom obliku. To znai da se za rjeavanje odreenog problema koriste algoritmi koji se sastoje od serijskog toka instrukcija koje, jednu po jednu, obrauje centralna procesna jedinica tek nakon to se jedna instrukcija izvri, moe se poeti s izvravanjem sljedee. S druge strane, pri paralelnom raunanju istovremeno se koristi vei broj procesnih jedinica koje zajedniki djeluju na rjeavanju odreenog zadatka. Takav se nain rada osigurava raspodjelom problema na niz manjih nezavisnih segmenata kako bi svaki dostupni procesni element mogao obraivati svoj dio algoritma usporedno s ostalim procesnim elementima.

2.1.1. Potekoe pri stvaranju paralelnih programa


Potekoe pri iskoritavanju paralelizma ne predstavlja snaga raunala, ve potreba da se aplikacije i programi prilagode paralelnom nainu rada, kako bi mogli biti bre izvravani na vieprocesorskim sustavima. Pisanje softvera za vieprocesorske sustave vrlo je kompleksno, a problem se poveava s poveanjem broja procesora u sustavu. Koji je razlog? Zato je razvoj programa za paralelno procesiranje toliko sloeniji od pisanja tradicionalnih, sekvencijalnih programa? Prvo, izvravanje paralelnih programa na vieprocesorskim sustavima mora osigurati bolje performanse i uinkovitost; u suprotnom, emu koristiti takve programe, ako e nam sekvencijalni program na jednoprocesorskom sustavu ponuditi jednake performanse, uz viestruko jednostavnije programiranje. Budui da bi paralelno programiranje prvenstveno trebalo biti uinkovito programiranje, to ga ini mnogo sloenijim paralelni program ne mora samo biti toan, biti u mogunosti rijeiti sloeni problem, i osigurati korisno suelje prema korisniku i ostalim programima, ve mora biti i brz. Drugi razlog, da bi se osigurala brzina koju podrazumijeva uporaba paralelnih i vieprocesorskih sustava, programer mora aplikaciju podijeliti tako da svaki procesor istovremeno izvrava priblino jednaku koliinu posla, pritom pazei da troak rasporeivanja

11

MPP (eng. Massively Parallel Processor) raunalni sustav koji se sastoji od velikog broja zasebnih raunala, koja su povezana sa svrhom paralelnog izvravanja zahtjevnih zadaa. 12 Grid raunala povezana skupina heterogenih, geografski udaljenih raunala.

15

(engl. schedule overhead) i koordinacija ne reduciraju potencijalne dobrobiti paralelizma u prevelikoj mjeri. Navedene potekoe mogu se prikazati sljedeom vrlo praktinom analogijom.

Pretpostavimo da je zadatak napisati novinski lanak, reportau. Osam novinara koji rade na istoj reportai potencijalno bi mogli reportau napisati osam puta bre. 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 neto polo 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. Takoer, ukoliko bi novinari previe vremena proveli dogovarajui se o redoslijedu pisanja, pojedini dijelovi reportae nedostajali bi dok se oni prethodni ne napiu. Drugim rijeima, mora se voditi rauna i o reduciranju komunikacijskog i sinkronizacijskog troka (engl. reducing the communication and synchronization overhead). Kao to se vidi iz navedene analogije, izazovi paralelnog programiranja ukljuuju pravilno rasporeivanje, ravnomjernu raspodjelu zadatka, vrijeme za obavljanje sinkronizacije, te troak komunikacije izmeu stranaka. Intuitivno se namee zakljuak da je izazov tim vei, to je vei broj novinara, odnosno procesora u paralelnom sustavu. Sljedeu prepreku predstavlja Amdahlov zakon, koji podsjea da ak i mali dijelovi programa moraju biti paralelizirani ukoliko se eli da program iskoristi snagu vieprocesorskih sustava u odgovarajuoj (ciljanoj) mjeri.

2.1.2. Amdahlov zakon


Posebno zanimljivu stavku metrike performansi raunalnog sustava predstavlja ubrzanje (engl. speedup). Ubrzanje se definira kao odnos performansi poboljanog sustava i njegove izvorne implementacije:

Odnosno, ukoliko je rije o vremenima izvravanja zadataka:

16

Povijesno gledano, ubrzanje se je definiralo za paralelne procesore. Potencijalna dobrobit paralelnog raunanja mjeri se odnosom vremena koje je potrebno da bi se odreeni zadatak izvrio na jednom procesoru i vremena koje je potrebno da bi se isti zadatak izvrio na veem broj procesora. Ukoliko ubrzanje za predstavlja vrijeme izvravanja na procesora ( ) , tada

procesora iznosi: ( ) ( ) ( )

U idealnom sluaju, za potpuno paralelizirani algoritam, te uz zanemarivo vrijeme komunikacije izmeu procesora, vrijedi ( )
( )

, pa gornji izraz daje:

To znai da bi optimalno ubrzanje koritenjem paralelnog sustava bilo linearno svako udvostruavanje broja procesnih elemenata (tj. procesora) prepolovilo bi trajanje izvravanja zadatka. Ipak, ovako linearno ubrzanje je zaista rijetkost i postiu ga tek najnapredniji paralelni algoritmi. Veina algoritama moe postii priblino linearno ubrzanje za mali broj procesnih elemenata, a koje zatim s poveanjem njihova broja prelazi u konstantnu vrijednost. Razlozi zbog kojih je linearno ubrzanje gotovo neostvarivo uglavnom su vezani uz problem komunikacije i sinkronizacije meu procesorima, te uz pojavu memorijskih i interkonekcijskih kanjenja. Dobitak na performansama koji se moe osigurati poboljanjem odreenog dijela raunalnog sustava mogue je izraunati koritenjem Amdahlovog zakona, kojeg je utvrdio Gene Amdahl, 1960. godine. Amdahlov zakon tvrdi da je ubrzanje paralelnog programa ogranieno sekvencijalnim dijelom programa. Pretpostavimo da je algoritam ili zadatak sastavljen od frakcije koju je 17

mogue paralelizirati, i od serijske (sekvencijalne) frakcije

. Takoer, pretpostavimo da je

vrijeme koje je potrebno da bi dotini zadatak bio izvren na jednom procesoru dano sa:

( )

Gdje je:

Ukoliko bi isti zadatak bio izvren na definirano kao: ( )

paralelnih procesora, vrijeme izvravanja bi tada bilo

(2.6),

gdje se vidi da je uzrok ubrzanja distribucija paralelnog dijela na za ubrzanje ( ) koritenjem sustava s procesora, glasi:

procesora. Amdahlov zakon

( )

( ) ( )

Da bi se postiglo bilo kakvo ubrzanje potrebno je zadovoljiti sljedei izraz:

Ova nejednadba diktira da paralelni dio algoritma ( ) bude im blii jedinstvu, posebice kada je velik. Slika 2.1 prikazuje funkciju ubrzanja u ovisnosti o za razliite vrijednosti broja

procesora . 18

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

Puna linija je za vei moe zakljuiti da upravo dolazi do izraaja za velik.

, iscrtana linija za

, a tokasta za

. Moe se uoiti da i intuitivno se

pridonosi veem ubrzanju. Ubrzanje je, dakle, ovisno o iznosu parametra

predstavlja stupanj paralelizma odreenog programa, odnosno , te da dolazi do zasienja kada , odnosno broj procesora, postane

sposobnost sustava da ga iskoristi. Takoer, iz slike se moe primijetiti da ubrzanje najvie

Za velike brojeve , ubrzanje se aproksimira kao:

( )

Iz svega navedenog namee se zakljuak da vieprocesorski sustavi, a pogotovo oni s vrlo velikim brojem procesora, mogu donijeti ubrzanje i poboljanje performansi tek ukoliko se vrlo vjeto iskoriste i primijene tehnike paralelizma unutar programa i aplikacija, to potvruje potekoe navedene u odjeljku 2.1.2.

19

U ekstremnim sluajevima, Amdahlov zakon postaje:

( ) ( )

Navedene jednakosti su ustvari oite. Kada je program u potpunosti paralelan, ubrzanje e odgovarati upravo broju procesora koje koristimo u paralelnom sustavu.

2.1.3. Gustafson Barsisov zakon


Vrlo vaan zakon u podruju paralelnih raunalnih 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 veliini problema, Gustafson je opazio da se paralelizam unutar aplikacije poveava usporedno s rastom veliine problema. Da bi se izveo Gustafson-Barsisov zakon, valja najprije zapoeti s potrebno da bi se zadatak izvrio na procesora dano je sa: procesora. Vrijeme

( )

Kada se ovaj zadatak izvrava na jednom procesoru, serijski dio ostaje nepromijenjen, ali paralelni dio e se poveati, prema sljedeem izrazu:

( )

Ubrzanje je sada:

( )

( ) ( )

) 20

Slika 2.2 ponovno prikazuje funkciju ubrzanja u ovisnosti vrijednosti broja procesora . Puna linija je za

parametru

za razliite , a tokasta za

, iscrtana linija za

. Primjeuje se da, u usporedbi s Amdahlovim zakonom, Gustafson-Barsisov zakon nudi mnogo linearniji porast ubrzanja, ak i za vrlo male vrijednosti paralelizma nastavlja rasti i za veliki broj procesora . , a ubrzanje

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

Da bi se postiglo ubrzanje u bilo kojoj mjeri, potrebno je osigurati sljedei uvjet:

Moe se uoiti da je uz Gustafson-Barsisov zakon mogue postii vrlo dobro ubrzanje ak i kada je razina paralelizma mala, uz veliki broj procesora . Openito, Gustafson-Barsisov zakon nudi mnogo optimistinije predvianje ubrzanja sustava od Amdahlovog zakona.

21

2.1.4. Implementacije paralelizma


Prije no to bude definirana klasifikacija raunala prema Flynn-u, valja prouit nekoliko osnovnih naina implementacije paralelizma u paralelnim raunalnim sustavima, koji se mogu ostvariti primjenom razliitih hardverskih i softverskih tehnika, a nazivaju se jo i razinama paralelizma (engl. levels of parallelism): 1. Paralelizam podatkovne razine (engl. data-level parallelism) omoguuje operacije nad skupinama bitova podataka ili nad viestrukim podacima istovremeno. Primjeri ovakvog paralelizma su bit-paralelno zbrajanje, mnoenje i dijeljenje binarnih brojeva, te sistolika polja13 za upravljanje nekolicinom uzoraka podataka. 2. Paralelizam instrukcijske razine (engl. instruction-level parallelism, ILP) procesor izvrava vie od jedne instrukcije istovremeno. Primjer je koritenje protonih struktura (engl. pipelining structures), kao to je prikazano na slici 2.3.

Slika 2.3. Protona struktura za izvravanje 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. Koritenjem ove razine paralelizma, viestruke softverske dretve izvravaju se istovremeno na jednom ili vie procesora. TLP se najee susree u aplikacijama koje istovremeno moraju izvravati vie nezavisnih i nepovezanih zadataka, primjerice kod web servera. Ova razina paralelizma je trenutno vrlo zanimljivo podruje istraivanja zbog razvoja sve popularnijih viejezgrenih i vieprocesorskih sustava, koji omoguuju stvarno usporedno izvravanje dretava. 4. Paralelizam procesne razine (engl. process-level parallelism). Procesom se najjednostavnije moe nazvati program koji se odvija na raunalu. Proces rezervira

13

Matrina polja sastavljena od podatkovnih procesnih jedinica koje se nazivaju elijama. Sistolika polja predstavljaju poseban oblik paralelnog raunalstva, u kojem pojedine elije (procesori) raunaju s podacima i pohranjuju ih neovisno o drugim elijama.

22

vlastite raunalne resurse, poput memorijskog prostora i registara. Ova razina paralelizma pripada klasinom viezadanom (engl. multitasking) i vremenski dijeljenom (engl. timeshared) raunalstvu gdje se nekoliko programa izvrava istovremeno na jednom raunalu ili na vie raunala (procesora ili procesnih elemenata).

2.2. Organizacija paralelnih raunala


2.2.1. Flynn-ova taksonomija
Ideja koritenja viestrukih procesora u svrhu poboljanja performansi i poveanja korisnosti sustava datira jo iz razdoblja najranijih elektronikih raunala. Flynn je 1966. godine predstavio jednostavan model klasifikacije raunala koji je i danas, nakon 45 godina, jo uvijek koristan. Klasifikaciju je izradio prouavajui jedinstvenost i mnogostrukost instrukcijskih i podatkovnih tokova. Instrukcijskim tokom smatra se sekvencija instrukcija koju pojedini procesor izvrava, dok se pod pojmom podatkovnog toka podrazumijeva niz podataka kojim upravlja pojedini instrukcijski tok. Promatrajui paralelizam unutar podatkovnih i instrukcijskih tokova, Flynn je sve raunalne arhitekture svrstao u sljedee etiri kategorije, prema Kartezijevu produktu:

1. Single instruction, single datastream (SISD) kategorija SISD arhitekture odgovara uobiajenim jednoprocesorskim sustavima s kojima smo se donedavno susretali. Model se primjenjuje kod tradicionalnih sekvencijalnih raunala koja ne posjeduju paralelizam na sklopovskoj razini. Instrukcije se kod ovakvih sustava izvravaju serijski, a tijekom svakog taktnog ciklusa procesor moe obraditi tek jedan podatkovni tok. Primjeri ovakvih sustava ukljuuju veinom starija raunala, poput izvornog IBM PC-a, starija mainframe raunala te mnoga 8-bitna raunala poput popularnog Commodore-a 64 iz 1980-ih. 2. Single instruction, multiple datastreams (SIMD) kod SIMD arhitektura, ista upravljaka jedinica prihvaa, dekodira i izdaje instrukcije koje izvravaju procesni elementi (PE-i) CPU jedinice bez upravljakih jedinica. Nekoliko procesora obrauje razliite podatkovne tokove koristei istu instrukciju, odnosno instrukcijski tok. SIMD 23

raunala iskoritavaju paralelizam podatkovne razine usporedno primjenjujui jednake operacije nad razliitim dijelovima podataka. Svaki procesor posjeduje vlastitu podatkovnu memoriju (stoga, multiple data), ali u sustavu postoji samo jedna instrukcijska memorija i upravljaka jedinica koji prihvaa i otprema instrukcije. Kod sustava koji zahtijevaju znatnu koliinu paralelizma podatkovne razine, SIMD pristup moe biti vrlo uinkovit - SIMD metode su vrlo popularne kod grafiki zahtjevnih aplikacija, posebice kod raunalnih igara, zbog mogunosti postizanja visokih performansi pri generiranju trodimenzionalnih okruja u pravom vremenu. Nekoliko superraunala iz 80-ih i 90-ih godina prolog stoljea, od kojih popularna Illiac IV i ConnectionMachine CM-1, izgraena su prema SIMD modelu, a smatra se i da vektorska raunala pripadaju upravo ovoj arhitekturi. 3. Multiple instruction, single datastream (MISD) ovakva raunala mogu procesirati jedan podatkovni tok, koristei vie instrukcijskih tokova istovremeno. Meutim, trenutno ne postoji niti jedan suvremeni vieprocesorski sustav temeljen na MISD arhitekturi, tj. takav koncept (jo) nije realiziran, stoga se ovaj tip paralelnih raunala koristi tek kao teoretski model. 4. Multiple instruction, multiple datastreams (MIMD) MIMD organizacija je najopenitija. Nekoliko procesora s pripadajuim hijerarhijama prirune memorije djeluje usporedno u asinkronom nainu rada. Jednostavnije reeno, MIMD raunalo je sposobno izvravati viestruke instrukcijske tokove, istodobno obraujui viestruke podatkovne tokove svaki procesor prihvaa svoje instrukcije i obrauje svoje podatke. Ovakve sustave razlikuje nain komunikacije meu procesorima, ovisno o tome dijele li zajedniku memoriju i komuniciraju putem uitaj-pohrani instrukcija (engl. load-store) ili komuniciraju prosljeivanjem poruka (engl. message passing communication). Osim toga, sustavi s dijeljenom memorijom (engl. shared-memory systems) se razlikuju i prema nainu pristupanja glavnoj memoriji pristup memoriji moe biti ravnomjeran, s pristupom cjelokupnoj memoriji, ili se svakom procesoru dodjeljuje dio zajednike, raspodijeljene memorije. tovie, broj procesora u sustavu, njihova homogenost, interkonekcije izmeu procesora te procesora i memorije, naini osiguravanja sinkronizacije i koherentnosti prirune memorije, faktori su koji doprinose bezbrojnim mogunostima dizajniranja MIMD vieprocesorskih sustava. Primjeri ovakvih procesora su viejezgreni procesori, te openito viedretveni vieprocesorski sustavi.

24

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

U MIMD sustavima, svaki procesor izvrava vlastiti tok instrukcija i u veini sluajeva, radi se o izvravanju razliitih procesa. Proces je segment programskog koda koji se moe izvravati nezavisno; stanje procesa sadri sve potrebne informacije potrebne procesoru da bi izvrio taj program. U vieprogramskom okruju, gdje procesori mogu izvravati razliite nezavisne zadae, svaki proces je najee nezavisan o ostalim procesima. Takoer, korisno je raspolagati s viestrukim procesorima koji e izvravati isti program te dijeliti kod i veinu njihovog adresnog prostora. Vie procesa koji dijele kod i podatke na ovaj nain nazivamo dretvama ili nitima. Danas, pojam dretva se esto usputno koristi kada se eli ukazati na viestruke lokacije izvravanja koja se mogu odvijati na razliitim procesorima, ak i kada ne dijele adresni prostor. Primjerice, viedretvena arhitektura ustvari omoguuje istodobno izvravanje viestrukih procesa, bez obzira dijele li viestruke dretve isti zajedniki adresni prostor ili se radi o potencijalno odvojenim adresnim prostorima.

2.2.2. Dijeljenje memorije u vieprocesorskim sustavima


U sustavima s dijeljenom memorijom, paralelni procesori (prvenstveno MIMD procesori) dijele zajedniki fiziki adresni prostor, a protok podataka izmeu procesora odvija se putem uobiajenih uitaj-pohrani instrukcija. Glavna memorija moe biti zajednika i jednako udaljena od svakog procesora ili moe biti fiziki raspodijeljena sa svakim procesorom. Ovisno o tome, razlikujemo dva sustava: vieprocesorske sustave sa zajednikom memorijom (engl. sharedmemory multiprocessors) i vieprocesorke sustave s fiziki raspodijeljenom memorijom (engl. distributed-memory multiprocessors) koji e biti opisani u sljedeim odjeljcima.

25

Takoer, postoje i paralelni raunalni sustavi koji ne dijele zajedniki fiziki adresni prostor, a samim time niti memoriju, ve svaki procesor posjeduje vlastiti, privatni fiziki adresni prostor. Za razliku od prethodnog pristupa, koji se najee koristi unutar istog raunalnog sustava, ovaj se model koristi za spregu fiziki potpuno odvojenih raunala, najee clustera, kao to e kasnije biti kratko opisano.

2.2.3. Vieprocesorski sustavi sa zajednikom memorijom - UMA


Vieprocesorski sustavi sa zajednikom memorijom14, poznati jo i kao sustavi s ravnomjernim pristupom memoriji, ili UMA sustavi (engl. Uniform Memory Access), vrlo su popularni zbog svojeg jednostavnog i opeg programerskog modela, koji omoguuje brzi razvoj paralelnog softvera s podrkom dijeljenja koda i podataka. Zajednika memorija, ili zajedniki adresni prostor, koriste se kao sredstvo komunikacije izmeu procesora. Svi procesori u arhitekturi sa zajednikom memorijom mogu pristupati istom adresnom prostoru zajednike memorije preko meuveza, kao to je prikazano na slici 2.5. Najee, meuveze sainjava sabirnica, meutim kod veih sustava, sabirnice e zamijeniti mree, u svrhu poboljanja performansi, poput koliine procesorsko/memorijskih pristupa koji se mogu obaviti po jedinici vremena (propusnost) te vremenskog kanjenja zbog ekanja na dozvolu pristupa memoriji. Vrlo brzo moe se doi do zakljuka da e usko grlo sustava sa sabirnicom predstavljati memorijska propusnost (engl. bandwidth), budui da samo jedan procesor moe pristupiti memoriji u danom trenutku. Da bi se takve potekoe izbjegle, umjesto sabirnica se koriste konfiguracije s meuveznim mreama (slika 2.5 b), to e veem broju procesora omoguiti istovremeni pristup mrei. Osim toga, u ovakvim je konfiguracijama jedan memorijski modul zamijenjen nizom memorijskih blokova, ime se omoguuje vie istovremenih memorijskih itaj/pii operacija. Sljedei problem, vezan ne samo uz sustave sa zajednikom memorijom, ve i uz paralelna raunala openito, jest problem koherentnosti prirune memorije (engl. cache memory). Naime, u paralelnim sustavima, primjerak podatka koji se nalazi u zajednikoj memoriji mora se podudarati sa svim kopijama tog istog podataka koje se mogu nalaziti u lokalnim prirunim memorijama pojedinih procesora. Koherentnost prirune memorije osigurava se razliitim 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)

26

Slika 2.5. Arhitektura UMA vieprocesorskih sustava sa zajednikom memorijom. (a) Procesori su povezani sa zajednikom memorijom koristei jednu jedinstvenu sabirnicu. (b) Procesori i memorijski moduli koriste meuveznu mreu (izvor: [1])

U vieprocesorskom sustavu sa zajednikom memorijom, bilo koji procesor moe pristupiti bilo kojem memorijskom modulu. Slika 2.5b prikazuje implementaciju arhitekture s viestrukim memorijskim modulima u sustavu sa zajednikom memorijom. Takoer, dostupnost viestrukih memorijskih modula omoguuje veem broju procesora da pristupe veem broju razliitih memorijskih modula istovremeno. Ovakvo rjeenje poveava memorijsku propusnost, meutim ne adresira probleme vezane uz memorijske kolizije do koji dolazi kada vie od jednog procesora pokuava pristupiti istom memorijskom modulu. Glavni nedostatak kod svih implementacija memorijskih modula jest postojanje samo jedne pristupne toke, tj. porta. Stoga, bez obzira na veliinu memorijskog modula, u svakom trenutku je mogue pristupiti tek jednoj podatkovnoj rijei. Budui da je ovakav sustav najee sastavljen od identinih, homogenih procesnih elemenata, te od jedinstvene glavne memorije koja ima simetrinu vezu sa svim dostupnim procesorima i ravnomjerno vrijeme pristupa za sve procesore, ovaj model vieprocesorskih sustava se esto naziva i simetrinim vieprocesorskim sustavima (engl. symmetric (sharedmemory) multiprocessors SMPs), i trenutno je najpopularniji model vieprocesorskih sustava, sa irokom primjenom u viejezgrenim procesorima.

27

2.2.4. Vieprocesorski sustavi s raspodijeljenom memorijom - NUMA


U vieprocesorskim 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 prosljeivanja poruka (engl. message passing mechanism).

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

Podsjetimo se, pojedini procesori mogu pristupati memorijskim modulima ostalih procesora jer sustavi ovog tipa, iako s fiziki raspodijeljenom memorijom, i dalje pripadaju vieprocesorskim sustavima sa zajednikim adresnim prostorom. U odnosu na prethodno opisane UMA sustave, pristup memoriji kod ovakvih sustava nije ravnomjeran, budui da glavna memorija nije centralizirana, stoga se sustavi jo nazivaju i vieprocesorskim sustavima s neravnomjernim pristupom memoriji, tj. NUMA sustavima (engl. Nonuniform Memory Access). Ukoliko je NUMA vieprocesorski sustav sastavljen od identinih procesora, tada kaemo da se radi o homogenom ili simetrinom vieprocesorskom sustavu (symmetric multiprocessor, SMP), kao to je bio sluaj kod UMA sustava. Suprotno tome, ako sustav sainjavaju razliiti, tj. heterogeni procesori, tada se radi o asimetrinom vieprocesorskom sustavu, ili ASMP-u (engl. asymmetric multiprocessor). Obje implementacije opisat emo u sljedeem potpoglavlju. Model NUMA vieprocesorskih sustava najee se koristi u sustavima s vrlo velikim brojem procesora, gdje se memorija decentralizira i fiziki raspodjeljuje na procesore, kako bi se zbog velikog broja procesora osigurala im vea propusnost i to manja memorijska latentnost.

28

2.2.5. Sprega procesora u vieprocesorskim sustavima


Nakon podjele vieprocesorskih sustava prema nainu podjele memorije meu procesorima u vieprocesorskom sustavu, isto se moe uiniti i s podjelom prema nainu sprege izmeu procesora u takvim sustavima. Takva podjela je krajnje jednostavna, i ovisi tek o fizikoj konfiguraciji sustava, odnosno o fizikoj lokaciji procesora unutar sustava. Naime, procesori koji osim zajednikog adresnog prostora dijele i fiziki prostor, tj. nalaze se unutar istog raunalnog sustava ili ak kuita, pripadaju skupini usko spregnutih (engl. tightlycoupled) sustava. Takva raunala sadravaju vei broj procesora koji su najee povezani sabirnicom, te mogu imati zajedniku ili raspodijeljenu memoriju, to odgovara upravo prethodno definiranim UMA i NUMA modelima raunala. Najekstremniji, i najsuvremeniji oblik usko spregnutih raunala jesu ip multiprocesori, poznatiji i kao viejezgreni procesori, koji ukljuuju vei broj jednakih procesora na istom ipu, unutar istog kuita. Sljedeoj skupini pripadaju raunalni sustavi koji su fiziki potpuno odvojeni i udaljeni, ne dijele zajedniki adresni prostor niti resurse, a veza se ostvaruje uz pomo komunikacijskih sustava visoke brzine, poput gigabitnih lokalnih mrea. Takve sustave nazivamo iroko spregnutim (engl. loosely coupled) sustavima. Sustave najee sainjavaju cjelovita, fiziki udaljena raunala, poput clustera, koja se dovode u spregu s ciljem poveanja uinkovitosti pri izvravanju zajednikog zadatka. Usko spregnute sustave, u usporedbi sa iroko spregnutim, odlikuju mnogostruko manje dimenzije, a samim time i energetski zahtjevi te cijena. Meutim, u podrujima 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 vieprocesorskog raunalstva.

2.2.6. Simetrija u vieprocesorskim sustavima


Odnos procesora u vidu njihovih slinosti i razlika bit e razmotren na modelu viejezgrenih procesora, koji je primjenjiv i na ostale vieprocesorske sustave. Dva su naina implementacije viejezgrenih procesora. Prvi nain obuhvaa primjenu simetrinog viejezgrenog procesora, to ukljuuje geometrijsko poveavanje broja jezgara sa svakim novim napretkom. To najee znai udvostruavanje broja potpuno identinih 29

procesorskih jezgara te njihovo povezivanje u svrhu tvorbe jaeg procesora. Drugi nain su asimetrini viejezgreni procesori, koji se sastoje od jedne jae jezgre, te niza slabijih jezgara. 1. Simetrini viejezgreni procesori kao to samo ime podrazumijeva, ovaj model viejezgrenih procesora ukljuuje povezivanje dvije, ili vie identinih jezgara na istom ipu, potujui pravilo da broj jezgara na ipu uvijek odgovara viekratniku broja dva. Primjer takvog ipa prikazan je slikom 2.7.

Slika 2.7. Dijagram simetrinog viejezgrenog procesora

Zbog simetrije u broju procesora i njihovim karakteristikama, ovaj se model jo naziva i modelom homogenih viejezgrenih procesora i danas je vodei pristup u proizvodnji viejezgrenih procesora.

2. Asimetrini viejezgreni procesori poznati jo i kao heterogeni viejezgreni procesori, ovi procesori se sastoje od veeg broja jezgara razliitih stupnjeva sloenosti.

Slika 2.8. Dijagram asimetrinog viejezgrenog procesora

U ovom primjeru, asimetrini viejezgreni procesor ine blokovi s dvije velike jezgre visokih performansi, blok s etiri jezgre srednjih performansi, te blok s devet jednostavnih jezgara. Koristei ovakvu konfiguraciju, izvravanje aplikacija, ovisno o njihovoj kompleksnosti i stupnju paralelizma, moe se dodijeliti odgovarajuim 30

jezgrama. Primjerice, potpuno serijske aplikacije e se najbre izvravati na jaim jednojezgrenim procesorima, stoga se te aplikacije dodjeljuju nekoj od najveih jezgara. S druge strane, paralelne aplikacije mogu se izvravati na vie procesora istovremeno, pa je njih stoga mogue dodijeliti bloku s manjim jezgrama.

Bitno je napomenuti da se, naroito pri koritenju literature na stranom jeziku, pojam prethodno definiranih asimetrinih i simetrinih viejezgrenih procesora (engl. asymmetric and symmetric multiprocessors) ne smije zamijeniti s pojmom asimetrinog i simetrinog multiprocesiranja (engl. asymmetric and symmetric multiprocessing) koji se odnosi na softverske implementacije vieprocesorske tehnologije i upravljanje nainom izvravanja zadataka u operacijskom sustavu.

2.3. Komunikacija meu paralelnim procesorima


U ovom potpoglavlju bit e opisano na koji nain paralelni procesori komuniciraju, te koji modeli komunikacije postoje. Komunikacija meu paralelnim procesorima mora postojati kako bi takvi procesori mogli djelovati kao cjelina i izvravati zajednike zadatke koji im se dodjeljuju.

2.3.1. Tipovi komunikacije


Mogu se definirati sljedei naini komunikacije meu 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

31

Slika 2.9. Razliiti tipovi komunikacije meu 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 ukljuuje samo dva procesora: poiljatelja i primatelja. Unicast komunikacija se ponekad jo naziva i toka-prema-toki komunikacijom, ili P2P (engl. point to point). S ovakvim nainom komunikacije se esto susreemo kod SIMD raunala gdje svaki procesor razmjenjuje podatke sa svojim susjedom. Slika 2.9a prikazuje unicast nain komunikacije meu procesorima. Iako slika prikazuje samo komunikaciju izmeu jednog para procesora, u stvarnosti svi procesori mogu sudjelovati u unicast komunikaciji istovremeno. Komunikacija se najee izvodi iterativno, i stoga mora biti izvedena efikasno. U veini sluajeva, ovom komunikacijom se u svakom koraku omoguuje jednostavna razmjena podataka izmeu izvora i odredinog registra, uz pretpostavku da je osigurana sinkronizacija izmeu udaljenih procesora. U ostalim sluajevima, potrebno je osigurati dvostruko rukovanje (engl. two-way handshaking) ili ak etverostruko rukovanje (engl. four-way handshaking). Kod dvostrukog rukovanja, komunikacija se izmeu primatelja i poiljatelja odvija u dva koraka za svaki primljeni podatak, primatelj mora poiljatelju poslati potvrdu o primitku, pa se radi o dataackonowledgement komunikaciji. U drugom sluaju, komunikacija se odvija u etiri koraka, gdje se poiljatelju 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 ukljuuje jedan procesor u ulozi poiljatelja i nekolicinu procesoraprimatelja, kao to je prikazano na slici 2.9b. Kao i u prethodnom sluaju, slika prikazuje 32

multicast komunikaciju izmeu samo jednog poiljatelja i skupine primatelja, no u stvarnosti, svi procesori mogu obavljati ovakav vid komunikacije istovremeno. Broj procesora-primatelja ovisi o detaljima algoritma, te o nainu na koji je mapiranje procesora realizirano. Kao i u prethodnom primjeru, i ova se komunikacija obavlja u koracima, tj. iterativno, na opisani nain.

Jedan prema svima (Broadcast)


Kod broadcast naina komunikacije, prikazanog na slici 2.9c, isti se podatak alje svim procesorima u sustavu. Ovaj nain moe biti koristan kada je svim procesorima u sustavu potrebno osigurati istovremeni pristup istoj informaciji.

Prikupi (Gather)
Prikazan na slici 2.9d, ovaj vid meuprocesorske komunikacije ukljuuje prikupljanje podataka od nekolicine, ili svih procesora u sustavu. Uz pretpostavku da sustav raspolae s vrijeme prikupljanja svih podataka moe se procijeniti sljedeim izrazom: procesora,

),

gdje je

vrijeme potrebno da se jedan podatak poalje i primi.

Reduciraj (Reduce)
Operacija reduciranja vrlo je slina prethodno opisanoj operaciji prikupljanja, osim to se u ovom sluaju izvravaju i pojedine operacije nad prikupljenim podacima. Primjer operacije reduciranja jest tvorba konanog ishoda na temelju podataka koje su svi procesori poslali, to moe potrajati dulje vrijeme ukoliko se prikupi mnogo podataka koje treba reducirati. Uz ponovnu pretpostavku da sustav raspolae s procesora, vrijeme reduciranja procjenjuje se sa:

(2.15),

gdje je

vrijeme potrebno da procesor obradi jedan par dobivenih podataka. 33

2.3.2. Mehanizam komunikacije prosljeivanjem poruka (Message Passing Communication)


Komunikacija mehanizmom prosljeivanja poruka najee se koristi u sustavima s raspodijeljenom memorijom (NUMA), te posebice kod sustava koji ne dijele zajedniki adresni prostor, poput clustera. Kod takvih sustava, budui da memorijske lokacije nisu fiziki povezane, sav promet podataka mora se odvijati eksplicitnim prosljeivanjem poruka izmeu pojedinih procesora. Ovaj mehanizam komunikacije karakteriziraju poruke kojima udaljeni procesori zahtijevaju odreenu radnju, dostavu podataka ili pristup memorijskoj lokaciji u okolini nekog drugog procesora. Komunikacija prosljeivanjem poruka moe se objasniti sljedeim jednostavnim primjerom procesor koji eli obraditi podatak u udaljenoj memorijskoj lokaciji poslat e poruku procesoru u ijoj se memoriji dotini podatak nalazi. Prozvani e procesor tada, u ime procesora koji je inicirao prijenos, izvriti traene radnje nad podatkom u svojoj memoriji, te u konanici polaznom procesoru poslati povratnu poruku s ishodom.

2.4. Meuvezne mree


Kao to se moe vidjeti u prethodnim odjeljcima, vieprocesorski sustavi zahtijevaju odreeni vid komunikacije i povezivanja kako bi se omoguila sinkronizacija i razmjena podataka izmeu procesora, te procesora i pripadajuih zajednikih ili raspodijeljenih memorija. U ovakvim sustavima ta se komunikacija ostvaruje putem meuveznih mrea (engl. interconnection networks). Mogunosti i obiljeja meuveznih mrea imaju izravan utjecaj na rezultirajui uinak vieprocesorskih sustava. Kod viejezgrenih procesora, meuvezne mree se nazivaju jo i mreom-na-ipu (engl. Network-on-chip, NoC), budui da su kod takvih procesora meuvezne mree implementirane na istom ipu na kojem se nalaze i procesorske jezgre. NoC arhitekture mogu se definirati pomou etiri parametra: svojom topologijom, algoritmom preusmjeravanja, protokolom kontrole toka, te mikroarhitekturom preusmjerivaa podataka. Topologija definira strukturu mree, naine povezivanja vorova te odreuje sve raspoloive putanje izmeu vorova, u ovom sluaju procesora ili jezgara. Takoer, vrsta topologije uvelike utjee na parametre uinkovitosti sustava, poput razine propusnosti podataka, kanjenja i energetskih zahtjeva mree. I dok topologija definira sve raspoloive putanje u mrei, algoritam 34

preusmjeravanja (engl. routing algorithm) odabire najpovoljniju, odnosno najkrau putanju (rutu) za prijenos poruka izmeu poiljatelja i primatelja. Protokol kontrole toka (engl. flow control protocol) odreuje na koji nain poruka ustvari putuje dodijeljenom rutom, te u kojem trenutku poruka mora biti poslana, a u kojem primljena u meuspremnik (engl. buffer). Drugim rijeima, ovaj protokol osigurava prohodnost veze, kako ne bi dolo do zaguenja ili ekanja ukoliko postoji razlika u brzini kojom poiljatelj alje, odnosno primatelj prima poruke. Naposljetku, mikroarhitektura preusmjerivaa podataka (engl. micro architecture of a router) realizira sve prethodno navedene stavke: fiziku vezu, te protokole i algoritme.

2.4.1. Klasifikacija meuveznih mrea prema logikim topologijama


Topologija meuvezne mree se najee prikazuje grafom na kojem su prikazani odgovarajui vorovi, tj. procesori (na grafovima u nastavku oznaeni slovom P), i prospojnici (engl. switch) s pripadajuim vezama (linkovima). Pojam koji je esto prisutan pri definiranju mrenih topologija je pojam mrenog dijametara, koji predstavlja najveu udaljenost izmeu dva vora u mrei, odnosno broj vorova i prospojnika kroz koje poruka mora proi pri svom putu od polazita do odredita. Pojam se esto definira i kao broj skokova, ili hopova, koji poruka obavi pri svojem putu kroz mreu. U nastavku e biti predstavljene najee mrene topologije u vieprocesorskim, a posebice viejezgrenim procesorskim sustavima. Te su topologije: sabirnika (engl. bus), zvjezdasta (engl. star), prstenasta (engl. ring), isprepletena (engl. mesh) i matrina (engl. crossbar).

Sabirnika topologija (Bus)


Najjednostavniji oblik meuvezne mree je sabirnica, prikazana slikom 2.10. Zasjenjeni kvadratii predstavljaju kontrolere za upravljanje pristupom mediju, tj. MAC kontrolere (engl. Medium Access Contol).

Slika 2.10. Sabirnika mrena topologija (izvor: [1])

35

Osim jednostavnosti, ovu topologiju karakteriziraju i niska cijena, jednostavnost uporabe, te mogunost koritenja jednostavnih protokola za osiguravanje koherentnosti prirune memorije, koje e biti predstavljene u sljedeem poglavlju. Svi procesori u sustavu i njihovi memorijski moduli prikljueni su na sabirnicu. Meutim, sabirnica u svakom trenutku dozvoljava pristup zajednikom mediju iskljuivo jednom procesoru, kako bi se sprijeila pojava kolizija, tj. sukoba (engl. collisions). Svaku jedinicu, odnosno procesor koji je prikljuen na sabirnicu, karakterizira njegova jedinstvena MAC adresa, koja slui kao svojevrstan vid identifikacije i raspoznavanja u mrei. Na uinkovitost sabirnike mree umnogome utjeu sljedei imbenici: Skalabilnost mree, odnosno broj procesora sa irenjem mree uinkovitost opada, prvenstveno zbog fizikih ogranienja kao to je duljina i propusnost linije; Uestalost zahtjeva za pristupanje mrei preveliki broj pristupa moe dovesti do zaguenja; MAC protokol upravljanja pristupom pristup mediju se odreenom procesoru moe osigurati na temelju lokacije, prioriteta operacije, krunim redoslijedom ili sluajnim odabirom.

Zvjezdasta topologija (Star)


Slika 2.11 prikazuje primjer zvjezdaste meuvezne mree, sa svim procesorima povezanima na sredinji ureaj, tzv. parini obnavlja (engl. hub). Sav promet u mrei sa zvjezdastom topologijom odvija se putem sredinjeg ureaja, to ga ini najslabijom tokom ovakve topologije. Naime, sredinji ureaj mora biti u stanju istovremeno komunicirati sa svim procesorima u sustavu i odgovarati na njihove zahtjeve.

Slika 2.11. Zvjezdasta mrena


topologija (izvor: [1])

36

Prstenasta topologija (Ring)


Prstenasta topologija, prikazana na slici 2.12., predstavlja jednostavno poboljanje ranije opisane sabirnike mrene topologije.

Slika 2.12. Prstenasta mrena topologija (izvor: [1])

Za razliku od sabirnike topologije, u mreama ovog tipa omoguena je istovremena komunikacija veeg broja procesora. Svi procesori povezani su u prsten pomou prospojnika koji veem broju procesora omoguuju da alju i primaju podatke u istom trenutku, jer procesori nemaju izravan pristup mediju, ve se sva komunikacija odvija posredno, putem prospojnika. Takoer, niti meusobna komunikacija izmeu procesora se ne odvija izravno, nego preko prospojnika koji u tu svrhu procesore prozivaju na osnovu procesorskih MAC adresa.

Isprepletena mrena topologija (Mesh)


U isprepletenim mreama poruke putuju od polazinog do odredinog procesora koritenjem naprednih routing algoritama koji su implementirani u svakom prospojniku i preusmjerivau. Radi se o algoritmima koji e utvrditi najpovoljniju i najbru putanju (rutu) kroz isprepletenu mreu, kako bi se osiguralo najkrae mogue vrijeme putovanja poruke. Takvi algoritmi mogu biti deterministiki, s unaprijed predefiniranim rutama, ili adaptivni, koji e dinamiki prilagoditi rutu, ovisno o stanju u mrei.

37

Zato su routing algoritmi vrlo bitni u ovakvim mreama moe se vidjeti i na samom primjeru isprepletene mree koja je prikazana na slici 2.13.

Slika 2.13. Isprepletena mrena topologija (izvor: [1])

Naime, dva susjedna procesora mogu komunicirati izravno, koritenjem najkrae mogue rute izmeu njih. Meutim, jednako tako, oni mogu komunicirati i koritenjem bilo koje druge, i mnogostruko due rute u mrei, to dovodi do velikih gubitaka u vidu kanjenja i usporavanja komunikacije. Upravo zato je bitna upotreba naprednih routing algoritama. Napredniji od dvodimenzionalnih isprepletenih mrea jesu isprepletene mree u obliku torusa.

Slika 2.14. Torusni oblik isprepletene mree (izvor: [2])

Kao to se vidi iz slike, procesori koji se nalaze na rubovima sada mogu izravno komunicirati, to u prethodnom sluaju nije bilo mogue. Samim time, ovakav oblik isprepletene

38

mree omoguuje viestruko bru komunikaciju meu najudaljenijim procesorima, zbog manjeg broja skokova koje poruka mora obaviti pri svojem putu kroz mreu.

Matrina topologija (Crossbar)


Matrina mrea dimenzija sastoji se od ulaza i izlaza, od kojih svaki ulaz moe biti

spojen s bilo kojim slobodnim izlazom. Primjer matrine mree dimenzija prikazan je na slici 2.15. Mreu sainjava polje

sjecita (engl. crosspoints) povezanih u reetku, ili matricu. Pozicija svakog sjecita u matrici jednoznano je definirana njegovim retkom , i stupcem .

Slika 2.15. Matrina mrena topologija dimenzija

(izvor: [1])

Sjecita mogu raditi u jednom od naina prikazanih na slici 2.16. X konfiguracija je izvorna konfiguracija koja omoguuje istovremeni protok podataka u okomitom i vodoravnom smjeru, bez interferencije. Kada bi sjecite (3,5) bilo u X konfiguraciji, tada bi vodoravni prijenos podataka zapoinjao u izvoru 3 i podaci bi bili dostavljeni svim sjecitima u tom retku. Istovremeno, okomita komunikacija u stupcu 5 moe zapoeti u bilo kojem ulazu ispod ili iznad retka 3.

39

Slika 2.16. Konfiguracije sjecita u matrinoj mrei (izvor: [1])

Koritenjem T konfiguracije, protok podataka moe 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 sjecite (3,5) bilo u T konfiguraciji, vodoravni protok podataka bi zapoinjao u izvoru 3. Podaci koji bi putovali silazno, prema izlazu, bili bi kopija podataka iz vodoravne komunikacije. Na ovaj nain, izlaz 5 vidi kopiju podataka koji putuju kroz redak 3. Multicast podataka u ovakvim je mreama vrlo lako ostvariti. Pretpostavimo da ulaz 3 zahtijeva multicast svojih podataka prema izlazima 1, 2 i 5. Ulaz 3 e tada od sjecita (3,1), (3,2) i (3,5) zahtijevati T konfiguraciju, uz sva ostala sjecita u retku 3 u X konfiguraciji. Matrine mree su mree vrlo velikog kapaciteta, zbog injenice da mogu podrati N istovremenih konekcija. Meutim, to ide na troak vrlo velikog broja sjecita, koji se rapidno poveava s kvadratom broja ulaza, odnosno izlaza, zbog ega se komunikacija u mrei moe usporiti. Stoga se ovakve mree najee koriste u zahtjevnim aplikacijama koje zahtijevaju relativno mali broj ulaza i izlaza (do 10). Ipak, napredci u VLSI tehnologiji te elektro-optici ine matrine mree vrlo atraktivnom alternativom.

2.4.2. Preusmjeravanje (Routing)


Preusmjeravanje u mreama vri se pomou algoritama za preusmjeravanje. Cilj algoritama za preusmjeravanje, odnosno routing algoritama, jest ravnomjerna raspodjela prometa meu putanjama koje definira odabrana mrena topologija. Takvu raspodjelu prometa je potrebno osigurati kako bi se poboljala propusnost i smanjila latentnost mree. Takoer, routing algoritmi su kritina komponenta u sluaju pogreaka: nakon identifikacije pogreke, algoritam mora biti sposoban pronai novu odgovarajuu rutu i zaobii vorove i veze u kvaru, bez znatnijeg naruavanja mrenih performansi. 40

Postoje brojni routing algoritmi, meutim najzastupljeniji algoritam u NoC mreama je dimension-ordered routing (DOR), zbog svoje jednostavnosti. Kod DOR algoritma, poruka putuje kroz mreu po dimenzijama, dostiui odredite prije ponovne promjene dimenzije. Broj promjena dimenzija, odnosno smjera, ovisi o broju dimenzija od kojih se mrea sastoji. To znai da e u dvodimenzionalnoj X-Y mrenoj topologiji, kao to je isprepletena mrea 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 mreama (izvor: [3])

Podatak koji putuje od (0,0) do (2,3) najprije e uiniti dva skoka po X dimenziji, do pozicije (2,0), a zatim e uiniti tri skoka po Y dimenziji, to e ga dovesti do odredine lokacije (2,3). Budui da broj promjena dimenzija ovisi o samom broju dimenzija u mrei, podatak e uvijek nainiti najvei broj skokova po pojedinoj dimenziji prije no to promjeni dimenziju. DOR algoritam pripada skupini deterministikih 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 razliite rute izmeu vorova A i B, ali odabir rute ne ovisi o trenutnoj situaciji u mrei, to znai da ovakvi algoritmi ne predviaju mogue prekide u komunikaciji. tovie, ovakvi algoritmi mogu koristiti potpuno

41

nasumian pristup odabiru putanje. Slika 2.17 prikazuje primjenu promjenjivih algoritama, gdje podaci do odredita mogu putovati ili Y-X putanjom, ili X-Y putanjom. Mnogo naprednije routing algoritme ine adaptivni (prilagodljivi) algoritmi koji odabir putanje vre iskljuivo na temelju stanja i pojava u mrei. Takvi algoritmi ujedno vre i dinamiku prilagodbu putanje, ime je isporuka podataka na odredite zajamena. Na primjer, podatak moe putovati X-Y putanjom, meutim na lokaciji (1,0) vidi prekid koji mu onemoguuje da nastavi vodoravnim smjerom. Adaptivni algoritam tada e dinamiki prilagoditi putanju podatka tako to e ga preusmjeriti alternativnim pravcem, kao to je prikazano na slici 2.17. Takve mogunosti ove algoritme ine potpuno imunima na potekoe koje se mogu pojaviti u mrei. Pri odabiru routing algoritama, u obzir se osim njegova utjecaja na kanjenje, troak energije, propusnost i pouzdanost, mora uzeti i sposobnost algoritma da izbjegne potpune zastoje u mrei. Do potpunih zastoja (engl. deadlocks) dolazi kada nekoliko poruka u mrei napravi krunu 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 junog ulaza, eka svoj odlazak kroz istoni izlaz , ali drugi paket se nalazi na istoj vezi dok eka na odlazak kroz juni izlaz preusmjerivaa B. Taj izlaz je ponovno zauzet sljedeim paketom koji eka na odlazak preko zapadnog izlaza preusmjerivaa C, i tako dalje. Izbjegavanje potpunih zastoja se moe osigurati koritenjem algoritama koji ne generiraju krune putanje u mrei. DOR algoritam nije podloan pojavi potpunih zastoja budui da on ne moe generirati krune putanje kao to je objanjeno, promjena smjera kod ovakvog algoritma ovisi o broju dimenzija u mrei. Primjerice, u dvodimenzionalnoj mrei bi za krunu putanju bilo 42

potrebno izvriti tri promjene dimenzije, to DOR algoritam ne doputa u takvoj mrei dozvoljena je tek jedna X-Y ili Y-X promjena dimenzije koritenjem DOR algoritma. S druge strane, promjenjivi i adaptivni algoritmi su zbog svoje prirode modificiranja putanja skloni stvaranju potpunih zastoja. Koritenje takvih algoritama zahtijeva prisustvo protokola kontrole toka, koji e biti opisani u sljedeem odjeljku.

2.4.3. Kontrola toka (Flow control)


Kontrola toka ureuje alokaciju mrenih meuspremnika i veza. Odreuje kada e meuspremnici i veze biti dodijeljene odreenim porukama, te kako se mreni resursi dijele meu mnogim porukama koje koriste mreu, kako bi se osigurala to vea propusnost i to bolje funkcioniranje mree. Takoer, kontrola toka usklauje brzinu komunikacije izmeu poiljatelja i primatelja. Naime, ukoliko poiljatelj alje poruke veom brzinom no to primatelj moe osloboditi meuspremnik, doi e do zaguenja, 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 iduem voru. Posljedica su velika kanjenja pri svakom skoku, to ovaj model ini neprikladnim za upotrebu u NoC mreama. Da bi se kanjenja pri svakom skoku smanjila, koristi se kontrola toka modelom virtualnog presijecanja (engl. virtual cut-through) koja omoguuje da slanje paketa zapone prije primitka cijelog paketa. Latentnost se u tom sluaju drastino smanjuje, kao to je prikazano na slici 2.19. Sljedea metoda kontrole toka koja je iroko primijenjena u NoC mreama, a koja je vrlo slina virtualnom presijecanju, jest metoda crvotoine (engl. wormhole). U usporedbi s navedenom metodom kontrole toka, koja alje podatke i alocira meuspremnike na razini paketa, kod metode crvotoine se komunikacija i alokacija meuspremnika odvija na razini flit-ova (engl. flit flow control digit). Flit je vrlo mala podatkovna jedinica, nastala dijeljenjem velikih mrenih paketa.

43

Slika 2.19. Vremena prijenosa za kontrolu toka metodom (a) pohrani-i-proslijedi, i (b) presijecanja. tr predstavlja vrijeme slanja vodeeg flita, ts predstavlja vrijeme slanje preostalih flitova u paketu, a tw predstavlja vrijeme propagacije signala kroz mreu (izvor: [3])

2.5. Vrste vieprocesorskih raunalnih sustava


U sljedeim odjeljcima bit e predstavljeni najee koriteni tipovi vieprocesorskih raunalnih sustava,

2.5.1. Viejezgreni procesorski sustavi


Viejezgreni sustav najee podrazumijeva vieprocesorski sustav u kojem su sve procesorske jedinice smjetene na istom ipu, unutar istog kuita. Ova bliska konfiguracija i smjetaj procesorskih jedinica omoguuje vrlo brzu meuprocesorsku komunikaciju bez prevelikog troka energije. Dvojezgreni i etverojezgreni sustavi, zbog svojeg malog broja jezgara, najee koriste naine povezivanja jednostavnom sabirnicom, dok sustavi s veim brojem jezgara koriste NoC mree. Oba naina povezivanja opisana su u prethodnim odjeljcima. Viejezgreni sustavi su se poeli razvijati prvenstveno zbog potrebe da se omogui poveanje performansi u sustavu, istovremeno ograniujui troak energije u sustavu, odnosno disipaciju snage. Drugim rijeima, viejezgreni sustav postie visoke performanse iako su jezgre koje ga sainjavaju ustvari klasini procesori niske uinkovitosti. S druge strane, vieprocesorski sustavi koji koriste zasebne jednojezgrene procesore u sklopu istog sustava, visoke performanse 44

ostvaruju uz mnogo vii troak energije. Tablica 2.1 sumira temeljne razlike izmeu takvog vieprocesorskog te viejezgrenog pristupa u graenju raunalnih sustava.

Tablica 2.1. Usporedba vieprocesorkih i viejezgrenih sustava


Vieprocesorski sustav Razina integracije Performanse procesora Performanse sustava Troak energije procesora Ukupni troak energije Jedan procesor po ipu Visoke Vrlo visoke Visok Relativno visok Viejezgreni sustav Svi procesori na istom ipu Niske Vrlo visoke Nizak Relativno nizak

Slika 2.20. predstavlja principijelnu shemu i teorijski model viejezgrenih sustava, ija konfiguracija moe ukljuivati sljedee elemente: 1. Programabilne jezgre ope namjene, 2. Akceleratorske jezgre posebne namjene, 3. Dijeljeni memorijski moduli, 4. NoC (meuvezne mree), 5. Ulazno/Izlazno suelje

Slika 2.1. Principijelni model viejezgrenih sustava (izvor: [1])

Prije no to u etvrtom poglavlju budu opisane konkretne viejezgrene arhitekture pojedinih proizvoaa, nuno je predstaviti osnovni model viejezgrenog procesora. Iako se pristupi u dizajniranju viejezgrenih procesora mogu razlikovati od proizvoaa do proizvoaa, postoje

45

odreene osnovne znaajke koje su zajednike svim viejezgrenim procesorima i ine temelj viejezgrenih arhitektura. Osnovni model konfiguracije viejezgrenog procesora prikazan je na slici 2.21. Srce samog sustava ine procesori, odnosno jezgre. Ovisno o tome je li viejezgreni procesor homogen ili heterogen, jezgre e biti jednakih, odnosno razliitih mikroarhitektura i znaajki.

Slika 2.21. Osnovni model viejezgrenog procesora (izvor: [4])

Najblie samom procesoru nalaze se prirune memorije kroz nekoliko razina (engl. levels, stoga oznaka L). Najraniji viejezgreni procesori sadravali su L1 memoriju u sklopu samog procesora (jezgre), dok je L2 memorija bila zajednika svim procesorima. U modernijim viejezgrenim procesorima uvedena je jo jedna razina prirune memorije, L3 memorija, koja je sada zajednika svim raspoloivim jezgrama, a L1 i L2 memorije se nalaze u sklopu svake pojedine jezgre. L1 priruna memorija je vrlo brza memorija koja se koristi za pohranu i pristup podacima koje procesor najee koristi. Prirune memorije druge i tree razine imaju slinu ulogu, ali uz neto niu brzinu pohrane i pristupa podacima. Organizacija prirune memorije kroz nekoliko razina izvrava se iz vie razloga. Prvo, izvedba prirune memorije sastavljene od samo jedne vee L1 memorije preskupa je i presloena razdioba prirune memorije na vie razina nee generirati prevelike gubitke u uinkovitosti, a izvedba e biti mnogo jednostavnija i jeftinija. Drugo, svi podaci koji su procesoru potrebni nemaju jednaku vanost. Drugim rijeima, procesor ne pristupa svim bitnim podacima jednako 46

esto, stoga je vrijedni prostor L1 memorije poeljno osigurati podacima koji su procesoru najee 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 prirunom memorijom, ova memorija je mnogo sporija i vea RAM memorija je najee reda veliine nekoliko GB, dok prirune memorije u novijim viejezgrenim procesorima mogu biti, kako slijedi: L1 32 KB, L2 256 KB i L3 8 MB.

2.5.2. Cluster raunala


Raunalni cluster je skupina koju ine najmanje dva raunala povezana za svrhom zajednikog rjeavanja zadanog problema. Raunala, odnosno procesori u clusteru mogu komunicirati meusobno ili putem dijeljene memorije. Komunikacija se najee ostvaruje slanjem poruka i paketa koritenjem komunikacijskih veza kao poput LAN mrea, kao to je prikazano na slici 2.22. LAN mree se pritom obino implementiraju u vidu serverskog raunala velike brzine koje e biti u stanju komunicirati sa svim dostupnim procesorima istovremeno. Osim samih raunala i procesora koji se u clusteru koriste iskljuivo za izvravanje zadataka, u sustavu mora postojati i dijeljena memorija koja e biti sposobna odgovarati na zahtjeve svih raunala istovremeno, te client raunalo koje je zadueno za raspodjelu zadataka meu raunalima i prikupljanje njihovih rezultata.

Slika 2.22. Arhitektura raunalnog clustera (izvor: [1])

47

Cluster raunala, kao i grid raunala koja su predstavljena u nastavku, zbog naina na koji realiziraju tehnike paralelnog i vieprocesorskog raunalstva, spadaju u skupinu iroko spregnutih paralelnih raunala o kojima je bilo rijei u odjeljku 1.2.5.

2.5.3. Grid raunala


Grid raunalstvo, poznato jo i kao cloud raunalstvo, ili raunalstvo u oblaku, odnosi se na sustave pruanja pristupa raunalnim resursima koji su distribuirani preko WAN (Wide Area Network) mree. U tom smislu, grid raunalo je skup velikog broja procesora raspodijeljenih preko irokog geografskog podruja. Grid raunala su, zbog enormnog broja procesora koje posjeduju (deseci tisua raunala), sposobna rukovati problemima velikih razmjera, kao to su Nbody simulacije15, te simulacije seizmikih, atmosferskih i oceanskih pojava. U usporedbi s cluster raunalima, grid raunalo je poput mnogo veeg clustera, koji umjesto LAN mrea koristi WAN mree, poput Interneta. Ono to clustere i grid raunala ini razliitima od ostalih paralelnih vieprocesorskih sustava i superraunala, jest upravo injenica da se radi o cjelovitim i geografski udaljenim raunalima koja kao vid povezivanja koriste komunikacijske mree poput LAN i WAN mrea, dok ostali vieprocesorski podrazumijevaju vrstu spregu procesora i njihovo lociranje unutar istog raunalnog sustava.

15

Simulacija dinamikog sustava estica, najee pod utjecajem sila poput gravitacijske sile. Velika primjena u simulacijama kozmikih pojava.

48

3. POTEKOE I IZAZOVI U VIEPROCESORSKIM RAUNALNIM SUSTAVIMA


Nedvojbeno je da vieprocesorski pruaju mnoge dobrobiti i prednosti u odnosu na konvencionalne, jednoprocesorske sustave. Meutim, da bi se takve prednosti osigurale, vieprocesorski se sustavi susreu s mnogo sloenijim potekoama i izazovima od svojih prethodnika. O kakvim se potekoama i izazovima radi, te jesu li, i na koji nain rijeeni, pitanja su na koja odgovor valja potraiti kroz primjere najvanijih problema koji se pojavljuju u vieprocesorskim sustavima.

3.1. Koherentnost prirune memorije


Upotreba veeg broja procesora, osim brojnih pogodnosti, dovela je i do pojave potpuno novih potekoa, nepoznatih u prethodnim jednoprocesorskim sustavima. Vei broj procesora podrazumijeva i vei broj njihovih privatnih memorija, to dosljednost i koherentnost podataka na tim memorijama dovodi u pitanje, no prije opisivanja samog problema koherentnosti meu podacima, bit e kratko opisan koncept prirune memorije. Priruna (engl. cache) memorija je mala i brza memorija u sklopu procesora, koja slui kao posrednik izmeu procesora i glavne, u ovom sluaju dijeljene, memorije. Ova memorija je ujedno i najbra memorija u hijerarhiji to je ine priruna, glavna te sekundarna memorija. Budui da centralna procesna jedinica podatke i instrukcije obrauje bre nego to se oni mogu izravno pribaviti iz glavne memorije, priruna memorija e uskladiti brzinu procesora i latentnost glavne memorije, ime e se omoguiti bri rad procesora. Stoga, itaj/pii operacije uz koritenje prirune memorije traju priblino isto vrijeme kao i same aritmetiko-logike operacije. Tablica 3.1 sumira terminologiju koja se koristi pri opisivanju koherentnosti prirune memorije. Priruna 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 predvia ponovno koritenje trenutnog podatka u bliskoj budunosti, dok se prostornim lokalitetom predvia koritenje podataka u budunosti koji se nalaze u blizini trenutno 49

koritenog podatka. Takva analiza podataka uvijek e procesorima osigurati trenutni pristup najpotrebnijim i najee koritenim podacima. Iz ovog razloga, operacije uitavanja i pohrane podataka izmeu dijeljene memorije i prirunih memorija odvijaju se putem blokova podataka, umjesto pojedinanih podataka ili rijei (engl. words), kako procesor ne bi morao pristupati svakoj rijei pojedinano. Slika 3.1 prikazuje odnos blokova pohranjenih u dijeljenoj memoriji i njihovih kopija u prirunim memorijama pojedinih procesora. Priruna memorija pohranjuje pojedine blokove koristei oznaku (engl. tag), koja sadri adresu dotinog bloka u dijeljenoj memoriji. Svaki blok koji se nalazi u prirunoj memoriji, pohranjen je u obliku retka, ili linije (engl. line).

Linija sadri sljedee elemente: 1. Bit ispravnosti (engl. valid bit, V) koji ukazuje na koherentnost podatka u liniji i bloka pohranjenog u dijeljenoj memoriji 2. Indeks, koji sadrava adresu linije u prirunoj memoriji 3. Oznaku, s adresom bloka u dijeljenoj memoriji 4. Podatak, koji sastoji od podataka iz dotinog bloka u dijeljenoj memoriji

Tablica 3.1. Terminologija u opisivanju koherentnosti prirune memorije


Pojam (engl.) Block Broadcast Znaenje Blok - skupina graninih rijei ili podataka pohranjenih u dijeljenoj memoriji Slanje podataka svim dostupnim prirunim memorijama Priruna 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 izmeu procesora pri pristupanju dijeljenoj memoriji Koherentnost prirune memorije - povezanost sadraja blokova u dijeljenoj memoriji i pojedinim prirunim memorijama Nain osiguravanja kojerentnosti prirune memorije Koherentan sustav - pravovaljano auriranje podataka u dijeljenoj i prirunoj memoriji pri svakom pristupu pojedinog procesora Podatak pohranjen u dijeljenoj memoriji Linija - blok pohranjen u prirunoj memoriji, zajedno sa svojom oznakom i bitom ispravnosti Lokalni podatak - podatak pohranjen u prirunoj memoriji Modificirani blok - podaci iz bloka u prirunoj memoriji koji nisu aurirani u dijeljenoj memoriji Slanje podataka odabranoj skupini prirunih memorija, ali ne svima Zamjena - premjetanje bloka iz prirune memorije zbog osiguravanja prostora za novi blok Prostorni lokalitet - podatak unutar istog bloka e biti uskoro koriten Vremenski lokalitet - definiranje podatka koji e se uskoro koristiti Slanje podataka samo jednoj prirunoj memoriji Ispravnost - sadraj bloka je auriran Blok u dijeljenoj memoriji je auriran tek nakon to se isti blok premjesti iz prirunem memorije Blok u dijeljenoj memoriji je auriran im se modificira sadraj istog bloka u prirunoj memoriji

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

50

U sustavima s dijeljenom memorijom, priruna memorija pomae i u eliminaciji memorijskog nadmetanja pri kojem dva ili vie procesora istovremeno pokuavaju pristupiti istom memorijskom modulu.

Slika 3.1. Odnos podataka pohranjenih u glavnoj memoriji i njihovih kopija u prirunoj memoriji (izvor: [1])

Kopije podataka pohranjenih u dijeljenoj memoriji moraju se podudarati s kopijama pohranjenim u lokalnim prirunim memorijama pojedinih procesora, to se definira kao koherentnost prirune memorije (engl. cache coherency). Kopije dijeljene varijable e biti koherentne ukoliko su sve kopije identine. Sukladno tome, prirune memorije e biti koherentne ukoliko svaka operacija itanja koju procesor izvri pronae vrijednost generiranu prethodnim pisanjem. Koherentnost prirune memorije vrlo je bitna, kako bi se zajamilo tono izvravanje programa i osigurale visoke performanse sustava. Pretpostavimo da dva procesora, i , koriste istu dijeljenu varijablu koja je pohranjena u njihove dvije razliite prirune memorije. Ukoliko bi promjene. Razmotrimo sluaj sustava s dijeljenom memorijom sastavljen od etiri procesora i jednog memorijskog modula. Tablica 3.2 ilustrira probleme do kojih dolazi kada blok iz dijeljene 51 modificirao svoju lokalnu vrijednost, mora se osigurati da bude svjestan te

memorije uitaju svi procesori, a zatim ga jedan ili vie procesora modificira. Pretpostavlja se write-through nain auriranja podataka (pogledati tablicu 3.1).

Tablica 3.2. Primjer problema koherentnosti prirune memorije s write-through nainom auriranja
Dijeljena memorija b b b b3 b3 Prirune memorije Stanje C0 b b b b b3 C1 b b b b3 C2 C3 b b3 b3 b3 Blok b se uitava u C0 Blok b se uitava u C1 i C3 Procesor P3 modificira svoju kopiju b. Sustav postaje nekoherentan. Procesor P3 izvrava write-through auriranje. Sustav je i dalje nekoherentan budui da C0 i C1 posjeduju neaurirane kopije. Kontroler dijeljene memorije aurira C 0 i C1. Sustav je sada koherentan.

Vrijeme

0 1 2 3 4

Tablica 3.3. prikazuje slian problem, uz koritenje write-back naina auriranja podataka. Sadraj razliitih prirunih memorija u razliitim trenucima, prema tablicama 3.2 i 3.3, je objanjen u nastavku. Trenutak 0. Priruna memorija C0 u procesoru P0 uitava blok b za koritenje tijekom obrade podataka. Trenutak 1. Isti blok iz dijeljene memorije sada uitavaju i prirune memorije C1 i C3. Sada u sustavu postoje tri kopije bloka b. Trenutak 2. Procesor P3 mijenja svoju kopiju b u prirunoj memoriji C3. U ovom trenutku vie ne postoji dosljednost izmeu podataka u dijeljenoj memoriji i podataka u prirunoj memoriji. Trenutak 3. P3 izvrava write-through auriranje kako bi podatke u C3 i dijeljenoj memoriji uinio dosljednima. Trenutak 4. Koji procesor bi trebao aurirati dijeljenu memoriju (tablica 3.3)? Pri koritenju write-back naina auriranja, to je onaj procesor koji uradi premjetanje ili zamjenu bloka iz prirune memorije. U ovom sluaju, to je procesor P1. Trenutak 5. Procesor P2 eli uitati blok b, ali sredinji kontroler sada obavjetava sve procesore o novoj vrijednosti b1. to P0 i P3 moraju uiniti? Zamijeniti svoje podatke, ili obavijestiti dijeljenu memoriju da koriste svoje vlastite verzije bloka b.

52

Tablica 3.3. Primjer problema koherentnosti prirune memorije s write-back nainom auriranja
Dijeljena memorija b b b b b1 b1 Prirune memorije Stanje C0 b b b b0 b0 ? C1 b b b1 b1 b1 C2 b1 C3 b b3 b3 b3 ? Blok b se uitava u C0 Blok b se uitava u C1 i C3 Procesor P3 modificira svoju kopiju b. Sustav postaje nekoherentan. Procesori P0 i P1 modificiraju svoje kopije bloka b P1 izvrava write-back auriranje prema dijeljenoj memoriji Koju vrijednost b je potrebno koristiti da bi se aurirala dijeljena i priruna memorija?

Vrijeme

0 1 2 3 4 5

Jasno je iz prethodne dvije situacije (tablice 3.2 i 3.3) da osiguravanje koherentnosti prirune memorije predstavlja veliki problem, posebice u vieprocesorskim sustavima. Ispravna vrijednost memorijskog sadraja ne bi se smjela definirati prema prvom procesoru koji je uinio zapisivanje sadraja svoje prirune memorije u dijeljenu. Na primjer, u tablici 3.2, se vidi da je P3 prvi uinio auriranje bloka b, a zatim su slijedili P0 i P1. Ovo ne mora biti ispravan redoslijed auriranja bloka b u dijeljenoj memoriji, iz razloga to procesori nisu meusobno sinkronizirani i raspodjela zadataka i dretava u svakom procesoru nije usklaena s istima u nekom drugom procesoru. Stoga, postavlja se pitanje koji je ispravan redoslijed auriranja bloka b? Dva su naina koja mogu ponuditi odgovor na to pitanje: 1. Ispravno auriranje bloka temeljeno na sekvencijalnom tijeku izvravanja aplikacije 2. Ispravno auriranje bloka temeljeno na meuovisnosti podataka

Sekvencijalni

tijek izvravanja programa podrazumijeva pokretanje programa na

jednoprocesorskom sekvencijalnom stroju, koji ne posjeduje vieprocesne i viedretvene mogunosti. Tonost redoslijeda pristupanja i auriranja varijabli unaprijed je odreena od strane programera koji je aplikaciju osmislio. Takvog redoslijeda bi se trebalo pridravati pri implementaciji iste aplikaciju u vieprocesorskim sustavima, te pri odreivanju naina auriranja dijeljene varijable u memoriji i svim prirunim memorijama. Ispravan pristup prirunoj/dijeljenoj memoriji je osiguran ukoliko su rezultati koji su prikupljeni u paralelnom sustavu uvijek identini rezultatima prikupljenim u sekvencijalnom sustavu. Tono auriranje bloka b temeljeno na meuovisnostima podrazumijeva definiciju odnosa i veza meu podacima, te koritenje naprednih algoritama raspodjele podataka meu razliitim 53

prirunim memorijama. Drugim rijeima, ukoliko se odreeni podatak podijeli na meusobno ovisne dijelove A, B i C i rasporedi na tri razliite prirune memorije, tada e primjerice brisanje dijela A uzrokovati istovremeno brisanje dijelova B i C iz preostale dvije prirune memorije. Koherentnost prirune memorije u vieprocesorskim sustavima mogue je osigurati koritenjem protokola koji e osigurati dosljednost podataka u prirunoj i dijeljenoj memorije. Dva su osnovna protokola za ostvarivanje koherentnosti prirune memorije: 1. Direktorijski protokoli (engl. directory protocols) 2. Protokoli prislukivanja (engl. snoopy protocols)

3.1.1. Direktorijski protokoli (directory protocols)


Osnovne komponente uz pomo kojih direktorijski protokoli osiguravaju koherentnost prirune memorije prikazane su slikom 3.2 Lokalne prirune memorije, povezane s procesorima, posjeduju lokalne kontrolere koji koordiniraju auriranjem kopija dijeljenih varijabli u pojedinim prirunim memorijama. Sredinji kontroler je zaduen za odravanje koherentnosti prirune memorije u cijelom sustavu. Direktorij je dio dijeljene memorije to pohranjuje unose koji oznaavaju stanje svakog dijeljenog bloka. Struktura svakog unosa u direktoriju ovisi o detaljima implementacije samog direktorijskog protokola koji se koristi. Takoer, sredinji kontroler rukuje zahtjevima lokalnih prirunih memorija te je zaduen za pravovremeno obavjetavanje lokalnih kontrolera o svim promjenama stanja dijeljenih varijabli. Meuvezna mrea omoguuje komunikaciju izmeu kontrolera te izmeu prirunih memorija i dijeljene memorije.

Slika 3.2. Komponente sustava pri koritenju direktorijskih protokola (izvor: [1])

54

Sljedea slika prikazuje detalje tzv. full-map direktorijskog protokola. Svaki unos sadri bita, gdje oznaava 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 auriranju 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 obavijeteni o toj promjeni. Full-map model direktorijskog protokola u svakom trenutku poznaje tone lokacije kopija dijeljenih blokova. Prirune memorije koje su povezane s tim kopijama su ukljuene u radnje kojima se osigurava koherentnost danog podatkovnog bloka. Ipak, ovakvo rjeenje nije fleksibilno budui da se sve transakcije vezane uz koherentnost preusmjeravaju na sredinji kontroler, koji stoga moe predstavljati slabu toku sustava. Takoer, veliina svakog unosa je izravno proporcionalna o broju procesora i mora se mijenjati s promjenom broja procesora.

3.1.2. Protokoli prislukivanja (snoopy protocols)


Slika 3.4 prikazuje osnovne komponente pri osiguravanju koherentnosti prirune memorije pomou snoopy protokola, odnosno protokola prislukivanjem. Moe se primijetiti da, u odnosu na prethodno opisane protokole, protokoli prislukivanja ne koriste direktorije u dijeljenoj memoriji, kao ni sredinji kontroler. O aktivnostima i mjerama osiguravanja koherentnosti se komunicira izmeu lokalne prirune memorije i dijeljene memorije. Istovremeno, ovu komunikaciju prate ostale lokalne prirune memorije . Meuvezna mrea mora biti u stanju podrati broadcast komunikaciju kako bi svi prisutni procesori mogli pratiti mrene aktivnosti. Za te svrhe je prikladno koritenje zajednike sabirnice, budui da svi 55

procesori povezani na sabirnicu mogu na taj nain vrlo lako opaziti svaku mrenu aktivnost. U sustavima sa sabirnicom, ovi se protokoli esto nazivaju i protokolima prislukivanja sabirnice (engl. bus snooping protocols). Ipak, valja se podsjetiti, zajednika sabirnica ima vrlo ogranienu propusnost, zbog mogunosti obavljanja tek jedne podatkovne transakcije u svakom trenutku.

Slika 3.4. Komponente sustava pri koritenju protokola prislukivanja (izvor: [1])

Kada odreeni procesor izvrava operacije memorijskog pisanja (write), svi ostali procesori povezani na sabirnicu bit e svjesni te radnje te e imati priliku odluiti 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 auriranja prirune memorije. Ukoliko Pj koristi metode ponitavanja (engl. invalidation-based policy), ponitit e vlastitu kopiju bloka b im prislukivanjem sabirnice uoi da drugi procesor modificira dotini blok. U sluaju koritenja metode auriranjem (engl. updated-based policy), Pj e vlastitu kopiju b zamijeniti s podacima prisutnima na sabirnici u trenutku auriranja dijeljene memorije od strane nekog drugog procesora.

3.2. Snaga
Kao to je opisano u uvodnom poglavlju, upravljanje trokovima energije i snage postalo je vodeom potekoom i ogranienjem u gotovo svim vrstama raunalnih sustava. Ovo se posebice odnosi na viejezgrene procesorske sustave, budui da oni podrazumijevaju pruanje visokih performansi uz odravanje relativno niske i ekonomski prihvatljive razine troka energije. Kada su viestruke jezgre integrirane na istom ipu, raspoloivi izvor energije mora se dijeliti sa svim raspoloivim jezgrama i ostalim resursima na ipu. Potronja energije je funkcija kapaciteta, frekvencije sklapanja i kvadrata visine napona. Posljedino, ak i malo snienje 56

razine napona moe rezultirati dramatinim smanjenjem troka energije. Istovremeno, sniavanje napona uzrokuje i linearan pad radne frekvencije, a samim time i pad performansi jednojezgrenog sustava16. Proizvoai ipova ubrzo su shvatili da mogu rtvovati nekoliko stupnjeva brzine (otprilike 10% radne frekvencije) po jezgri kako bi se omoguila proizvodnja viejezgrenih procesora koji e imati jednaki troak energije kao i jednojezgreni procesori. Ipak, s porastom broja jezgara po procesoru, energetska ogranienja postaju sve izraenija. Na primjer, etverojezgreni procesori moraju dijeliti energetske resurse na etiri jezgre, a esterojezgreni na ak est. U svakom od ovih sluajeva, radni naponi i frekvencija, kao i performanse pojedinih jezgara, moraju nastaviti opadati kako bi se troak energije odrao pod nadzorom. Meutim, jo je bitnije prepoznati praktino ogranienje CMOS tehnologije u vidu minimalnog radnog napona (Vddmin). Ako viejezgreni procesori budu nastavili sniavati radne napone kako bi osigurali prostor za vei broj jezgara, eventualno e dostii ovu granicu. Iza te toke, redukcija troka snage postaje linearnom funkcijom sniavanja radne frekvencije. Drugim rijeima, jednom kada se postigne razina Vddmin, udvostruavanje broja jezgri po procesoru rezultirat e otprilike upola niim radnim frekvencijama. Postaje jasno da razvoj viejezgrenih procesora podie potrebe za uinkovitom optimizacijom energetskih potreba na sasvim nove razine. Odreene fine-grain i coarse-grain tehnike smanjivanja radnog takta (engl. clock gating) postoje u veini dananjih viejezgrenih procesora, meutim te tehnike zahtijevaju kontinuirano usavravanje sa svakom novom generacijom procesora. Takoer, potrebno je koristiti i tehnike smanjivanja radnog napona (engl. voltage gating) koje e omoguiti potpuno iskljuivanje neiskoritenih dijelova procesora (npr. jezgara) u bilo kojem trenutku. Naravno, primjena ovakvih tehnika podrazumijeva i odreene ustupke u vidu smanjenog odziva sustava te poveanih latentnosti koju uzrokuju ciklusi ukljuivanja i iskljuivanja. Osim toga, ovakvo upravljanje radnim naponima moe utjecati i na naponsku stabilnost cjelokupnog sustava. Svi ovi imbenici ine pouzdano dizajniranje buduih viejezgrenih sustava vrlo sloenim. U pojedinim pristupima dizajniranju viejezgrenih procesora, upravljanje energetskim zahtjevima je podignuto na novu razinu koritenjem dinamikog rezerviranja snage kao resursa. U ovakvim sustavima, sustav upravljanja snagom nadzire troak snage po pojedinim komponentama sustava, te vri dinamiku prilagodbu radne frekvencije i napona u ovisnosti o potrebama promatrane komponente. Ranije izvedbe takvih upravljakih sustava omoguile su

16

Zanimljivo je spomenuti da su se u prvoj polovini prolog desetljea visoke performanse procesora osiguravale podizanjem napona, dok je dananji trend sputanje napona.

57

podizanje radne frekvencije jedne jezgre ukoliko bi druge jezgre bile u stanju mirovanja (engl. idle). Vjeruje se da upravo ove tehnike, iako sloene, predstavljaju vodei trend pri dizajniranju novih generacija viejezgrenih procesora.

3.3. Softverski stog


Proirena skalabilnost vieprocesorskih i viejezgrenih sustava, osim novog naina postizanja visokih performansi, istovremeno znai i potpuno nove zahtjeve na softverski stog. tovie, viejezgreni pristup moe omoguiti bolji odziv i propusnost sustava, bre izvoenje zadataka, te veu uinkovitost u izvravanju viedretvenih aplikacija ali iskljuivo ako ta poboljanja mogu omoguiti softverski stog i alati. U ovom potpoglavlju, bit e razmotreno nekoliko kljunih stavki u softverskom stogu.

3.3.1. Operativni sustav


Kernel, odnosno jezgra operativnog sustava (OS) je zaduena za upravljanje resursima, rasporeivanje (engl. scheduling), umreavanje, integraciju komponenti i upravljanje mnogobrojnim sklopovskim sueljima nie razine. Dok mnogi suvremeni OS-i uvelike koriste vremenski rasporeenu viezadanost (engl. time-sliced multitasking), dodatak viestrukih procesora i jezgara dodaje sasvim novu dimenziju podruja djelovanja kojim OS mora upravljati. U unutranjosti OS-a, nekoliko kljunih podatkovnih struktura OS-u pomae pratiti nadzor nad dinamikim stanjem raunalnog sustava. Podatkovne strukture (engl. data structures) upravljaju rasporeivanjem procesa, migracijom procesa, prijevodima virtualne memorije, granicama zatite, ulazno/izlaznim zahtjevima te ostalim oblicima raspodjele resursa. U simetrinim vieprocesorskim sustavima, OS se moe raditi na bilo kojem procesoru u sustavu, a u pojedinim sluajevima, OS moe raditi i na svim dostupnim procesorima u sustavu. Da bi se u ovakvim situacijama izbjeglo podatkovno nadmetanje (engl. data races) na kljunim podatkovnim strukturama, te kako bi se dotine podatkovne strukture zatitile, OS upotrebljava mehanizme zakljuavanja, tzv. brave (engl. locks). S porastom broja procesora u sustavu, raste i potencijalni broj nadmetanja na bravama tih kljunih podatkovnih struktura, to moe ugroziti cjelokupnu stabilnost i propusnost sustava.

58

Da bi rijeili ovakve potekoe, suvremeni operativni sustavi moraju biti usmjereni koritenju sofisticiranijih brava na kljunim podatkovnim strukturama. Prolost 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 opim performansama, meutim, za postizanje takve razine potrebne su godine usavravanja i finih podeavanja od strane mnogobrojnih strunjaka, a izazovi postaju jo sloeniji sa svakom novom i naprednijom generacijom vieprocesorskih sustava. Osim podatkovnih struktura, moraju se usavriti i mehanizmi rasporeivanja (engl. schedulers) unutar operativnog sustava. Umjesto vremenskog rasporeivanja aktivnog procesa na jednoj CPU jedinici, ovi mehanizmi sada moraju shvatiti kako otpremati, te kako upravljati viestrukim procesima na veem broju CPU jedinica. Relativno mali broj procesora ponudit e znaajni napredak u razini odziva sustava. Meutim, kod vrlo velikog broja procesora, sam mehanizam rasporeivanja moe postati kritina toka zbog nemogunosti da u istom trenutku rasporedi mnogobrojne aktivne procese. tovie, dostupnost viestrukih procesora u sustavu otvara vrata i paralelnim aplikacijama koje, pored procesa, postavljaju dodatne zahtjeve na mehanizme rasporeivanja. U idealnom sluaju, ove aplikacije podrazumijevaju istovremeno odvijanje viestrukih dretvi na razliitim procesorima ili jezgrama. Meutim, da bi se osiguralo optimalno izvravanje paralelnih aplikacija, potrebno je implementirati naprednije metode dinamike raspodjele i preraspodjele resursa, kao i mogunosti grupnog rasporeivanja. U svjetlu navedenih rastuih zahtjeva, moe se zakljuiti da e operativni sustavi posebnu panju morati posvetiti arhitekturi i strukturi mehanizama rasporeivanja u buduim vieprocesorskim i viejezgrenim sustavima.

3.3.2. Aplikacijski softver


U vieprocesorskim sustavima, vie aplikacija bi trebalo biti u mogunosti koristiti prednosti pravog paralelnog procesiranja. Meutim, razvoj i osiguravanje kvalitete paralelnih aplikacija vrlo je teko, iz nekoliko razloga. Prvo, iako su tehnike paralelnog programiranja danas ve vrlo razvijene, polazina toka veine programera i dalje je vezana uz serijske programe. Naime, izuzetno je teko, ak i neprirodno, program koji je prvotno osmiljen i realiziran kao serijski, pretvoriti u paralelni oblik. Kao to je ranije spomenuto, Amdahlov zakon, formuliran 1960., tvrdi da je maksimalno ubrzanje izvoenja programa pomou veeg broja procesora ogranieno 59

njegovom sekvencijalnom, odnosno serijskom frakcijom. Na primjer, ukoliko 80% programa moe biti paralelizirano, maksimalno ubrzanje moe biti 5, bez obzira koliko je velik broj procesora prisutan u sustavu (izraz (2.7)). Drugo, zbog nedeterminizma u interakciji dretava, vrlo je teko utvrditi da e svi programi biti toni pod razliitim okolnostima. Tree, optimiziranje paralelnih programa je vrlo sloeno zbog meu-dretvene sinkronizacije i komunikacije. Ispostavlja se da su primitivi17 koji ine paralelne programe jedni od najsporijih i, to je ironino, u najveoj mjeri serijski izvedeni upravo u suvremenim raunalnim sustavima. Iako su se tijekom proteklih godina uinili znaajni pomaci nabolje u razvoju paralelnih aplikacija, svjetska raunalna industrija je jo uvijek u velikoj mjeri nespremna za iri razvoj potpuno paralelnih aplikacija.

17

U raunalstvu, primitivi su najjednostavniji elementi dostupni u programskom jeziku. Primitiv se moe definirati kao najmanja procesna jedinica odreenog sustava, koja je dostupna programeru.

60

4. IMPLEMENTACIJE VIEJEZGRENIH PROCESORA


Kao i kod ostalih tehnologija, implementacije viejezgrenih arhitektura se uvelike razlikuju od proizvoaa do proizvoaa. Iako pripadaju istoj tehnologiji, razliiti pristupi u dizajniranju procesorskih mikroarhitektura rezultirat e u konanici potpuno razliitim proizvodima. Budui da je podruje viejezgrenih procesorskih arhitektura mnogo kompleksnije i ire no to bi ga i cijeli ovakav rad mogao obuhvatiti, ovo poglavlje e predstaviti jednostavan pregled suvremenih mikroarhitektura viejezgrenih procesora te njihovih osnovnih i najzanimljivijih karakteristika, ali i ponuditi uvid u trendove razvoja na podruju viejezgrenih procesora te pokuati otkriti to donosi budunost vieprocesorskih raunalnih sustava.

4.1. Osnove IBM Cell arhitekture


Cell arhitektura, punim imenom Cell Broadband Engine Architecture, udrueni je projekt IBM-a, Sony-a i Toshibe, zapoeo s razvojem 2000. godine. Namjera je bila definirati arhitekturu Sonyeve igrae konzole PlayStation 3, koja je trebala biti dva reda magnitude bra od tada vrlo popularne konzole Playstation 2. Cell arhitektura koristi heterogenu viejezgrenu procesorsku konfiguraciju, to znai da umjesto konvencionalnih vienamjenskih jezgara, koje su identine, Cell arhitektura koristi dva tipa jezgri koje su optimizirane za razliite primjene: veliku upravljaku jezgru, koja se istie naprednim rukovanjem dretvama, te je stoga prikladna za uporabu s operativnim sustavom, i niz manjih, jednostavnih SIMD jezgara zaduenih za procesiranje multimedijskih zadataka. Ovakvom konfiguracijom, svaka jezgra ima svoju posebnu zadau, kojoj u potpunosti moe posvetiti svoju procesorsku snagu.

4.1.1. Struktura Cell procesora


Heterogena Cell arhitektura u osnovi se sastoji od jedne upravljake procesorske jezgre, Power Processor Element (PPE), i 8 raunskih procesorskih jezgara, Synergistic Processing Element (SPE) s pripadajuim lokalnim spremnicima, Local Storage (LS). Sabirnica velike brzine, zvana

61

Element Interconnect Bus (EIB), koristi se za meusobno 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 ope namjene, radne frekvencije 3.2 GHz, s funkcijama ekvivalentnim onima u 64-bitnoj Power PC arhitekturi18. Poput konvencionalnih procesora, PPE omoguuje izvravanje 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 sinergistikih SPE elemenata je dizajnirano kako bi optimiziralo SIMD procesiranje. SPE se sastoji od izvrne jedinice koja izvrava dodijeljene zadatke Synergistic Execution Unit

18

Power PC (Performance Optimization With Enhanced RISC Performance Computing) RISC arhitektura dizajnirana 1992. u udruenom Apple-IBM-Motorola projektu.

62

(SXU), lokalnog spremnika Local Store (LS), koji nije priruna memorija, te od globalne memorije i sabirnikih suelja za izravni pristup memoriji (Direct Memory Access, DMA). SPE su mnogo jednostavnije procesorske jedinice od PPE elemenata, budui da nisu dizajnirane za izvravanje upravljakih zadaa, ve iskljuivo za obavljanje jednostavnih operacija nunih za procesiranje multimedijskih podataka. Lokalni spremnik, LS, veliine 256 KB je programibilna lokalna memorija koja se koristi umjesto prirune iz nekoliko razloga. Prvo, moe se bolje optimizirati za protone namjene, tj. za rukovanje velikim brojem sekvencijalnih podataka putem programiranih blokovskih prijenosa iz glavne memorije. Drugo, sama fizika veliina (veliina ipa) ovakve memorije upola je manja od ekvivalentne prirune memorije, jer je pristupna i upravljaka logika pojednostavljena i nema potrebe za koritenjem oznaka (tags). Tree, u usporedbi s prirunom memorijom, programibilni DMA omoguuje konkurentnost veeg broja razliitih programa. Naime, lokalni spremnik ukljuuje uski (16 byte) i iroki (128 byte) podatkovni tok. Uski podatkovni tok namijenjen je izravnoj uitaj-pohrani komunikaciji s izvrnom 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 izmeu PPE i osam SPE elemenata, memorijskog kontrolera, te ulazno/izlaznih suelja, odvija se putem sabirnice koja se naziva Element Interconnect Bus (EIB). Sabirnica je donekle nepravilan naziv za ovakav pristup, budui da se EIB sastoji od etiri kruna prstena, po dva za komunikaciju u suprotnim smjerovima.

Slika 4.2. Element Interconnect Bus (izvor: [20])

63

Svaki prsten moe podravati do tri transakcije istovremeno, pod pretpostavkom da su pravilno razmaknute (koritenjem prikladnih metoda multipleksiranja). Svakom se transakcijom moe 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 moe dostii zbog razliitih ograniavajuih imbenika, poput konfliktnih transakcija i fizikih ogranienja ulazno/izlaznih suelja i memorijskog kontrolera.

4.2. Intel Nehalem


Nehalem je naziv Intelove mikroarhitekture viejezgrenih procesora iz 2008. godine. Procesori bazirani na ovoj mikroarhitekturi predvieni su za uporabu u raunalima ope namjene, tj. osobnim i prijenosnim raunalima, ali i u posebnim namjenama, poput serverskih platformi. U odnosnu na prethodne viejezgrene mikroarhitekture, imenom Core, Nehalem mikroarhitektura posjeduje integrirani memorijski kontroler s podrkom 3 DDR3 kanala, tri razine prirune memorije, obnovljenu Hyper-Threading tehnologiju, novu vanjsku sabirnicu pod imenom QuickPath, i ostale novosti koje e biti predstavljene u nastavku. Osnovne znaajke Nehalem mikroarhitekture, od kojih e one najbitnije biti detaljnije opisane u nastavku, saete su u sljedeoj listi: Bazirana na Intel Core mikroarhitekturi Dvije do osam jezgara Integrirani trokanalni DDR3 memorijski kontroler Zasebna L2 priruna memorija veliine 256 KB po jezgri 8 MB prirune memorije tree razine, L3 Novi SS4 4.2 set instrukcija (sedam novih instrukcija) Obnovljena Hyper-Threading tehnologija Turbo Boost nain rada (automatsko podizanje radnog takta procesora) Nova QuickPath vanjska sabirnica PCU upravljaka jedinica (power control unit) Proizvodni proces u 45 nm tehnologiji, odnosno 32 nm za budue procesore (Westmere arhitektura) Novi 1366 pinski socket

64

4.2.1. Integrirani memorijski kontroler


Jo od najranijih procesora, Intelova rjeenja su koristila vanjsku sabirnicu, zvanu Front Side Bus (FSB), koja je bila dijeljena izmeu memorijskih i ulazno/izlaznih zahtjeva. Meutim, viejezgrene arhitekture zbog same svoje paralelne prirode mogu propusnost zajednike sabirnice opteretiti znatno vie od jednojezgrenih, stoga je bilo potrebno pronai novi pristup. Procesori bazirani na Nehalem mikroarhitekturi koriste ugraene, tj. integrirane memorijske kontrolere i stoga raspolau s dvije vanjske sabirnice: memorijskom sabirnicom za povezivanje CPU jedinica s memorijom, i I/O sabirnicu za povezivanje CPU jedinica s ulazno/izlaznim sueljem, odnosno vanjskim svijetom. Ova promjena donosi znaajno poboljanje performansi sustava, iz dva razloga. Prvo, sada postoje razdvojeni podatkovni tokovi za memorijske i ulazno/izlazne pristupe ime je osigurana vea propusnost. Drugo, pristup memoriji je mnogo bri, budui da CPU ne mora vie komunicirati s vanjskim memorijskim kontrolerom. Slika 4.1 usporeuje konvencionalan pristup, s jednom vanjskom sabirnicom, te novi trend s koritenjem dvije vanjske sabirnice i integriranim memorijskim kontrolerom. Valja pritom napomenuti da ova tehnologija, strogo gledano, ustvari ne predstavlja nain komunikacije sabirnicom, ve P2P (point-to-point) vezama. Novo rjeenje, pod nazivom QuickPath Inteconnect (QPI), osigurava dva odvojena podatkovna toka to CPU jedinici omoguuje da istovremeno alje (pie) i prima (ita) ulazno/izlazne podatke. Svaki od tokova moe prenositi 20 bitova u taktu. Od tih 20 bitova, 16 bitova sainjava podatak, dok se preostala 4 bita koriste za CRC korekcijski kod (Cyclic Redundancy Check), koji primatelju omoguuje da provjeri ispravnost primljenog podatka. Najranija verzija QuickPath-a imala je radni takt od 3.2 GHz, aljui dva podatka po taktu (tehnika poznata kao DDR, Double Data Rate), to je ekvivalentno koritenju radnog takta od 6.4 GHz za slanje pojedinanih podataka. Budui 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, meutim dok se FSB sabirnica istovremeno koristi svu meuprocesorsku i ulazno/izlaznu komunikaciju, te pristupe memoriji, kod QPI pristupa ti su zadaci podijeljeni na zasebne tokove.

65

Slika 4.3. FSB sabirnica (lijevo) i integrirani memorijski kontroler (desno) (izvor: [13])

Integrirani memorijski kontroler omoguuje podrku za tri memorijska kanala istovremeno, to znai da procesor moe paralelno pristupiti trima memorijskim modulima, kako bi se osiguralo poboljanje performansi u sustavu. U teoriji, trokanalna memorijska arhitektura nudi 50% poveanje propusnosti, u odnosu na dvokanalne arhitekture koje djeluju na istim radnim frekvencijama.

4.2.2. Tri razine prirune memorije


Dvorazinske hijerarhije prirune memorije, kojima su se koristili raniji dvojezgreni procesori, nisu prikladne za viejezgrene procesore koji sadre vie od dvije jezgre. Naime, u takvim hijerarhijama, L2 priruna memorija je zajednika svim procesorima, odnosno jezgrama. Intuitivno se namee zakljuak da kod takvih pristupa moe doi do velikih potekoa ukoliko dijeljenoj memoriji istovremeno pristupa velik broj procesora zaguenje sabirnica, prevelik broj memorijskih nadmetanja, koherentnost prirune memorije, niska propusnost tek su neki od problema s kojima bi se ovakve arhitekture susrele. Nehalem mikroarhitektura te potekoe izbjegava koritenjem nove razine prirune memorije. L2 memorija sada se dodjeljuje svakoj dostupnoj jezgri, i uz L1 postaje privatna priruna memorija, dok najnie mjesto u hijerarhiji zauzima nova razina prirune memorije L3 memorija. L3 memorija zajednika je svim jezgrama i koristi se za meuprocesorsku komunikaciju i auriranje dijeljenih podataka. Takoer, ova memorija ukljuuje i sadraje privatnih memorija, to znai da procesori ne moraju posezati za odreenim podatkom u privatnu prirunu memoriju drugog procesora, ve je sav sadraj dostupan na zajednikoj L3 memoriji. 66

Drugim rijeima, ukoliko odreeni procesor ne pronae traeni podatak u L3 memoriji, ne mora traiti ni u privatnim memorijama ostalih procesora, to znatno ubrzava rad u ovakvim arhitekturama. Naravno, L3 memorija ne sadrava cjelovite podatke pojedinih privatnih memorija, ve samo odreene bitove tonije, po bit za svaku jezgru koji e ukazivati na lokaciju traenog podatka.

Slika 4.4. Razine prirune memorije u Nehalem mikroarhitekturi

Ova tehnika ujedno osigurava i koherentnost privatnih prirunih memorija budui da ograniava potrebu za razmjenom podataka izmeu procesora. Kao to se moe primijetiti, kod ovakvog pristupa postoji izvjesna redundancija, budui da se sadraj privatnih prirunih memorija ponovno pohranjuje u L3 memoriji, no taj se nedostatak donekle moe zanemariti veliinom L3 memorije u usporedbi s privatnim memorijama svi podaci u privatnim memorijama etverojezgrenog procesora zauzet e tek 1,25 MB od ukupno 8 MB veliine kojom L3 raspolae.

4.2.3. Upravljanje snagom


Jednu od potekoa 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 ponaaju kao sklopke koje djeluju kroz dva stanja: stanje 67

voenja (zasienja) kada vode struju i stanje zapiranja kada nema protoka struje. Problem predstavlja upravo stanje zapiranja, kada teoretski ne bi smjelo doi do pojave bilo kakvog protoka struje. Ipak, u stvarnim okolnostima dolazi do protoka vrlo slabih struja koje nazivamo strujama curenja. Uzevi u obzir enorman broj tranzistora od kojih je procesor izgraen, kumulativan utjecaj ovakvih struja moe biti znaajan, te dolazi do neeljenih pojava u vidu suvine disipacije snage i topline, a problem postaje jo i vei sa sve manjim dimenzijama tranzistora. Kako bi izbjegla takve potekoe, 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. Upravljaka jedinica u osnovi dinamiki upravlja visinama napona pojedinih jezgara, ali i ostalih komponenata, poput memorijskog kontrolera, prirunih 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 optereenja. tovie, upravljaka jedinici moe po potrebi u potpunosti iskljuiti 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 omoguuje da jezgre u stanju mirovanja generiraju zanemarive trokove snage, gotovo jednake nuli.

Slika 4.5. Power Gate tehnika (izvor: [13])

Kao to je ranije spomenuto, struje curenja postaju sve vei problem sa svakim novim smanjenjem dimenzija tranzistora, odnosno duljina kanala, te Power Gate tehnologija upravljanja snagom postaje esencijalnom komponentom svake nove generacije procesora.

68

4.2.4. Turbo Boost


Napredno upravljanje snagom i Power Gate, obje prethodno opisane metode, osnovne su komponente Intelove Turbo Boost tehnologije. Turbo Boost nain rada se koristi kada je operativnom sustavu potrebno osigurati bolje performanse, odnosno, jednostavnije reeno, vie snage. Intelov Turbo Boost tada, uz pomo Power Gate tehnike i PCU jedinica podie radnu frekvenciju aktivnih jezgara (ali i potronju snage) i njihovu uinkovitost, a samim time i ukupnu uinkovitost sustava.

Slika 4.6. Turbo Boost nain optimizacije (izvor: [13])

Ovakva poboljanja mogu pruiti rast performansi od 3% do 11%, to nije mnogo, meutim moe biti od velike vanosti u aplikacijama koje posjeduju malenu, ili nikakvu, razinu viedretvenosti, i gdje se ne mogu sve jezgre koristiti usporedno. Frekvencija se podie inkrementalno, u koracima od 133 MHz, do granice koja je odreena mnogo puta dosada spomenutim potekoama disipacijom snage i topline.

4.2.5. Hyper-Threading tehnologija


Intelova Hyper-Threading tehnologija omoguava istodobno izvravanje viestrukih dretava na pojedinoj jezgri. Tonije, u sluaju Nehalem arhitekture, Hyper-Threading omoguuje istovremeno izvravanje dvije dretve po jezgri, te na taj nain poboljava performanse i energetsku uinkovitost sustava. 69

Slika 4.7. Hyper-Threading tehnologija (izvor: [13])

Osnovna zamisao ove tehnologije jest to bolje iskoristiti sloenost svake jezgre, odnosno razinu paralelizma koju ovakve arhitekture nude, kako bi procesorske jezgre bile konstantno zaposlene". Umjesto koritenja preklopljenih, zajednikih dretvi, svaka jezgra sada moe izvravati dvije zasebne dretve, to uvelike poveava uinkovitost i iskoristivost sustava u tekim, viedretvenim primjenama.

Pregledom opisanih znaajki Nehalem mikroarhitekture, moe se zakljuiti da se radi o vrlo modularnom rjeenju, ije osobine i parametri nisu jednoznano definirani, ve se na inteligentan nain dinamiki prilagoavaju prisutnom radnom optereenju.

4.3. AMD Bulldozer arhitektura


Arhitektura kodnog imena Bulldozer, najnovija je arhitektura tvrtke AMD19, potpuno razliita od trenutne AMD64 arhitekture koja je u uporabi jo od prvog Athlon 64 procesora iz 2003. godine. U ovome odjeljku bit e na jednostavan nain objanjeno kako ova nova arhitektura izgleda, te koja je njezina osnovna znaajka.

19

AMD Advanced Micro Devices, poput Intela, proizvoa popularnih procesorskih rjeenja za osobna i prijenosna raunala, te servere.

70

4.3.1. Gradivni viejezgreni moduli


AMD je kod svoje najnovije, Bulldozer arhitekture, odluio uzeti potpuno novi pristup pri dizajniranju viejezgrenih procesora. Nova arhitektura u potpunosti je usmjerena veem stupnju integracije i dijeljenju resursa unutar viejezgrenih procesora u najveoj moguoj mjeri, kako bi se osigurale visoke performanse, a istodobno smanjile dimenzije samih ipova i trokovi energije.

Slika 4.8. Gradivni modul AMD Bulldozer arhitekture (izvor: [16])

Tradicionalan pristup dizajniranju viejezgrenih procesora je vrlo jasan: svaka jezgra djeluje kao samostalna jedinica i s ostalim jezgrama dijeli samo najnunije: sabirnicu, memorijski kontroler, L3 prirunu memoriju i slino. Meutim, kod Bulldozer arhitekture, jezgre dinamiki dijele blokove za prihvat i dekodiranje instrukcija, prirune memorije i ostale jedinice. Temelj arhitekture ini dvojezgreni modul, koji se sastoji od dvije Integer izvrne jedinice, odnosno jezgre (dijele funkcionalnosti prihvata, dekodiranja i L2 memorije) s dodijeljenim jedinicama za rasporeivanje (engl. schedulers), te dvije 128-bitne FMAC cijevi s jednom FP (Floating Point) jedinicom za rasporeivanje. Bitno je napomenuti da, iako AMD ovakve module naziva dvojezgrenim CPU jedinicama, ustvari se ne radi o klasinom dvojezgrenom procesoru, jer ne postoje dvije cjelovite CPU jedinice u istom procesorskom kuitu. Integer izvrne jedinice su dvije potpuno identine grupe sastavljene od AGU i ALU jedinica. Kao to se iz naziva moe zakljuiti (engl. Integer cjelobrojni), ove jedinice izvravat e veinu cjelobrojnih operacija u sustavu. Tonije, AGU jedinice (Adress Generation Unit, 71

jedinica za generiranje adresa) izvravat e kalkulacije adresa koje e zatim slati u hijerarhiju prirune memorije, dok e ALU jedinice (Arithmetic Logic Unit, aritmetiko-logika jedinica) izvravati cjelobrojne operacije u sustavu. Slino kao Integer izvrne jedinice, FP jedinice zaduene su za rasporeivanje operacija s pominim zarezom, a srce tog bloka ine dvije FMAC jedinice (Floating point MultiplyAccumulate) koje su sposobne izvravati 128 bitne floating point operacije, zajedno s operacijama korijena i dijeljenja. Priruna 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 izmeu jezgara, a L3 memorija je izvan modula i ona je zajednika svim modulima. Ovakav dvojezgreni modul nee biti uinkovit kao dvije tradicionalne jezgre, ali e troiti znatno manje snage te zahtijevati manje prostora na ipu, to znai da e proizvoai moi implementirati vie takvih modula unutar istog procesorskog kuita. 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 budunost


Sandy Bridge je ime najnovije mikroarhitekture Intelovih procesora koja je s primjenom zapoela 2011. godine. Radi se o evoluciji opisane Nehalem arhitekture, koja je koritena u popularnim Core i3, Core i5 i Core i7 procesorima. Budui da se radi o posljednjoj Intelovoj vieprocesorskoj arhitekturi, vrijedi uiniti kratak pregled rjeenja koja su joj prethodila. Nakon Pentium 4 procesora, koji je bio temeljen na Intelovoj mikroarhitekturi sedme generacije, imenom Netburst, Intel je odluio vratiti se svojoj estoj generaciji arhitekture (koritenoj na Pentium Pro, Pentium II i Pentium III procesorima) koja se pokazala uinkovitijom. 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 slini). Nakon daljnjih usavravanja, stvorena je Nehalem arhitektura, a iz nje zatim i najnovija Sandy Bridge mikroarhitektura. Sa svakom novom generacijom Intelovih procesora, do izraaja dolazi njihova Tick-Tock strategija. Princip je u stvari krajnje jednostavan: Intel naizmjenino usavrava svoje proizvode, najee u razdobljima od dvije godine, koristei potpuno novu mikroarhitekturu, ili evoluciju 72

trenutnog proizvodnog procesa (nanometarske tehnologije). Tick pritom oznaava usavreni (smanjeni) proizvodni proces, a Tock predstavljanje potpuno nove mikroarhitekture. Drugim rijeima, ukoliko je nova Nehalem mikroarhitektura bila predstavljena 2008. godine (Tock), u 45 nanometarskom proizvodnom procesu, a 2010. su se poeli 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 znai da e sljedea generacija procesora biti temeljena na Sandy Bridge mikroarhitekturi, ali e biti izraeni u manjem proizvodnom procesu od trenutnog 32 nm procesa.

Slika 4.9. Intelova Tick-Tock strategija (izvor: [13])

U nastavku se nalazi saetak osnovnih znaajki Sandy Bridge mikroarhitekture (slika 4.10), od kojih e pojedine biti detaljnije opisane: Integrirani sjeverni most (engl. northbridge) memorijski, grafiki i PCI Express kontroler nalazi se na istom ipu s ostatkom CPU jedinice, to nije bio sluaj kod prethodne, Nehalem arhitekture 32 nm proizvodni proces Integrirana grafika procesna jedinica Ring arhitektura Mikroinstrukcijska priruna memorija L0, veliine 6 kB, to je dostatno za pohranu 1536 mikroinstrukcija 32 kB instrukcijske i 32 kB podatkovne prirune memorije po jezgri (bez promjene u odnosu na Nehalem) 73

L2 priruna memorija se sada zove prirunom memorijom srednje razine (engl. midlevel cache, MLS) i veliine je 256 kB po jezgri. L3 priruna memorija postaje prirunom memorijom posljednje razine (engl. last-level cache, LLC), dijeljena izmeu CPU jezgri i grafike jedinice. Veliine je od 3 MB do 15 MB, ovisno o izvedbi procesora, i podijeljena je u blokove jednakih veliina

Turbo Boost tehnologija nove generacije Novi AVX (Advanced Vector Extensions) set instrukcija 1155 pinski socket

4.4.1. Ring arhitektura


Trend poveanog stupnja integracije, koji je Intel zapoeo s Nehalem mikroarhitekturom, zahtijeva i naprednije oblike komunikacije meu komponentama u procesoru. Naime, konvencionalne sabirnice nisu dostatno rjeenje za najnoviju, Sandy Bridge mikroarhitekturu, koja na istom ipu integrira procesorske i grafike jezgre, prirune memorije i odgovarajue kontrolere. Procesori bazirani na Sandy Bridge mikroarhitekturi stoga koriste Ring arhitekturu za ostvarivanje komunikacije meu internim procesorskim komponentama. Komunikaciju ovakvom prstenastom sabirnicom mogu koristiti sve komponente integrirane u Sandy Bridge procesoru: procesorske jezgre s pripadajuim prirunim memorijama, L3, odnosno LLC prirune memorije, System Agent (integracija memorijskog i PCI Express kontrolera, PCU jedinice jedinice), te grafika jezgra (kontroler). Slika 4.10 prikazuje Intelovu Ring arhitekturu (crna linija) sa svojim stanicama (crveni pravokutnici). Vano je shvatiti da je Ring arhitektura fiziki smjetena iznad blokova LLC memorije, iako bi se prema slici mogao stei dojam da prsten prolazi kroz memoriju, to nije sluaj. Takoer, svaki LLC blok nije jednoznano vezan uz odreenu procesorsku jezgru svaka jezgra moe 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 prislukivanje kanala (engl. snoop ring). Arhitektura se temelji na ranije opisanom QPI protokolu (QuickPath InterConnect). (display

74

Slika 4.10. Sandy Bridge mikroarhitektura s pripadajuom Ring prstenastom sabirnicom (izvor: [13])

4.4.2. Nova generacija Turbo Boost tehnologije


Sandy Bridge mikroarhitektura uvela je i odreene novosti u Turbo Boost tehnologiju, opisanu kod pregleda Nehalem mikroarhitekture. Kao to je opisano, Turbo Boost tehnologija omoguuje 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 omoguuje jezgri da prekorai tu granicu, u trajanju do 25 sekundi. Drugim rijeima, pojedinoj jezgri je dozvoljeno da disipira vie topline, no to je to slubeno dozvoljeno, ali samo u sluajevima kada su procesorske komponente, tj. procesor u cjelini, dovoljno ohlaene.

4.4.3. Integrirani grafiki procesor


Integrirani grafiki procesori unutar CPU jedinica nisu novost. Meutim, tek sa novom, Sandy Bridge mikroarhitekturom, grafiki procesori su u potpunosti integrirani s procesorskim jezgrama i ostalim komponentama na istom silicijskom ipu, s mogunou koritenja zajednike prstenaste sabirnice u svrhu meusobne komunikacije. Usporedbe radi, prethodna rjeenja su koristila zasebne procesorske jezgre i grafike module unutar istog CPU kuita, to ih je inilo tek prividno integriranima. 75

Slika 4.11. Sandy Bridge integrirana grafika jedinica (izvor [13])

Primarni element grafikog procesora su izvrne jedinice (engl. execution units, EU na slici 4.9) iji broj ovisi o samoj izvedbi procesora (na primjer, Core i5 procesori e imati vie izvrnih jedinica od slabijih, Core i3 procesora). Openito, Sandy Bridge procesori mogu sadravati do 12 grafikih izvrnih jedinica. Takoer, pomnijim prouavanjem slika 4.8 i 4.9, moe se uoiti da se Display i Graphics jedinice nalaze u zasebnim dijelovima procesora. Takva organizacija moe se protumaiti kao 2D i 3D konfiguriranje procesora, koje omoguuje da se grafiki (Graphics) procesor iskljui kada grafiki zahtjevne, ili 3D, aplikacije nisu prisutne, i na taj nain smanji disipaciju snage i topline. Sljedea karakteristika ovakve inovacije jest izravan pristup grafikog procesora dijeljenoj LLC memoriji. Na taj nain grafiki procesor moe pohraniti podatke, posebice teksture, to uvelike poboljava 3D performanse, budui da grafiki procesor ne mora posezati za udaljenom RAM memorijom za prihvat podataka, ve ih izravno prihvaa iz prirune memorije (naravno, ukoliko se ondje nalaze). Zbog injenice da se procesorske jezgre nalaze na 32 nanometarskom poluvodikom ipu, radne frekvencije takvih grafikih jedinica mogu dosezati i 1.35 GHz, to ih ini izravno usporedivima s jeftinijim zasebnim grafikim karticama. Intel u buduim izvedbama planira implementirati i naprednije grafike funkcije poput FSAA algoritama ( Full-scene Anti-aliasing) za poboljanje prikaza, zbog ega se predvia da bi procesori temeljeni na Sandy Bridge mikroarhitekturi mogli eliminirati trite slabijih i jeftinijih grafikih kartica.

76

4.5. Zakljune misli: budunost CPU ili GPU?


Openitu budunost raunalne tehnologije uvijek je teko predvidjeti. Meutim, to nam donosi bliska budunost najee se moe nauiti iz prolosti. Pomnijim promatranjem prethodno opisanih mikroarhitektura i tehnologija, moe se uoiti da su trendovi razvoja usmjereni sve veem stupnju integracije na procesorima. Dok su raniji procesori imali tek dvije razine prirune memorije, s novijim procesorima (poput opisanih Nehalem procesora) na ip se je integrirala jo jedna razina memorije i memorijski kontroleri, zatim i vei broj jezgara s naprednim tehnologijama, te naposljetku i grafiki procesori, kojima je vrata otvorila najsuvremenija Sandy Bridge mikroarhitektura. Pretpostavlja se da e upravo daljnje poveavanje stupnja integracije, i koritenje heterogenih CPU/GPU procesora, biti budui trend razvoja viejezgrenih procesora. tovie, predvia se da e integracija otii toliko daleko da vie nee postojati klasina CPU/GPU podjela, pa ak ni konvencionalna CPU jedinica, ve e sav posao obavljati napredna GPU jedinica. Sklopovski gledano, GPU jedinice jesu sloenije i naprednije od CPU jedinica, i mogu ponuditi znatno vee performanse pri izvravanju zadataka, jer su u svom uobiajenom radu prilagoene za izvravanje teih paralelnih zadataka i obradu zahtjevnih grafikih aplikacija. Takav koncept naziva se GPU raunalstvom, ili tonije, GPGPU raunalstvom (engl. General Purpose computation on Graphic Processing Units) koje koristi GPU jedinice za svrhe raunanja u opim i znanstveno-istraivakim primjenama. GPU raunalstvo temelji se na zajednikoj upotrebi CPU i GPU jedinica u heterogenom ko-procesnom raunalnom modelu. Sekvencijalni, odnosno serijski dio aplikacije izvravala bi CPU jedinica, dok bi za raunski zahtjevniji, paralelni dio aplikacije, bila zaduena GPU jedinica. Iz korisnike perspektive, aplikacija bi se izvravala bre jer koristi visoke performanse GPU jedinica. Ipak, proi e jo mnogo vremena dok GPU koncept u potpunosti ne zamijeni sadanje pristupe u dizajniranju procesora integrirane CPU/GPU konfiguracije koje polako ulaze na trite jo uvijek nisu dovoljno snane da bi u potpunosti eliminirale trite klasinih grafikih kartica, a tek nakon to se to dogodi, potpuna integracija u vidu GPU raunalstva e moi postati temelj raunalnih arhitektura.

77

5. Zakljuak
Kao to je spomenuto u samom predgovoru, osnovna namjera pri izradi ovog zavrnog rada bila je ponuditi jednostavan i kratak, a opet struan pregled suvremene tehnologije vieprocesorskih raunalnih sustava. Jednostavan i kratak, jer sama podruja koja su bila predmet izuavanja, a u to sam se i sam uvjerio prilikom prikupljanja literature i prouavanja materije, mnogo su ira i kompleksnija no to bi ih jedan zavrni rad ovakvog opsega u potpunosti mogao obuhvatiti. Upravo zbog te irine podruja vieprocesorske tehnologije, vodei motiv pri izradi ovog zadatka bio je napisati rad koji e itatelju, a u konanici i meni samom, ponuditi temelje, polazinu toku za daljnje prouavanje ove vrlo zanimljive i atraktivne tehnologije. Rad je ponudio opise temeljnih znaajki vieprocesorskih raunalnih sustava, njihovih osnovnih modela i arhitektura, naela rada te potekoa i ogranienja. Osim toga, rad je prouio i razloge iz kojih je dolo do pojave vieprocesorske tehnologije i nestanka jednoprocesorskih rjeenja, ali i ponudio uvid u blisku budunost tehnologije, ime je zaokrueno podruje vieprocesorskih raunalnih sustava.

78

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), Tehnika 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.

79

[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.

80