Professional Documents
Culture Documents
Zavrni rad
Zavrni rad
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.
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.
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
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.3.1.
2.3.2. 2.4.
Meuvezne mree ......................................................................................................... 34 Klasifikacija meuveznih mrea prema logikim topologijama ........................... 35 Preusmjeravanje (Routing) .................................................................................... 40 Kontrola toka (Flow control)................................................................................. 43
Vrste vieprocesorskih raunalnih sustava .................................................................... 44 Viejezgreni procesorski sustavi ........................................................................... 44 Cluster raunala ..................................................................................................... 47 Grid raunala ......................................................................................................... 48
POTEKOE I IZAZOVI U VIEPROCESORSKIM RAUNALNIM SUSTAVIMA ... 49 3.1. Koherentnost prirune memorije ................................................................................... 49 Direktorijski protokoli (directory protocols) ........................................................ 54 Protokoli prislukivanja (snoopy protocols) ......................................................... 55
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
Intel Nehalem ................................................................................................................ 64 Integrirani memorijski kontroler ........................................................................... 65 Tri razine prirune memorije................................................................................. 66 Upravljanje snagom............................................................................................... 67 ii
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
10
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.
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.
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 ( )
( )
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
. Takoer, pretpostavimo da je
vrijeme koje je potrebno da bi dotini zadatak bio izvren na jednom procesoru dano sa:
( )
Gdje je:
(2.6),
gdje se vidi da je uzrok ubrzanja distribucija paralelnog dijela na za ubrzanje ( ) koritenjem sustava s procesora, glasi:
( )
( ) ( )
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
, iscrtana linija za
, a tokasta za
predstavlja stupanj paralelizma odreenog programa, odnosno , te da dolazi do zasienja kada , odnosno broj procesora, postane
( )
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
( ) ( )
Navedene jednakosti su ustvari oite. Kada je program u potpunosti paralelan, ubrzanje e odgovarati upravo broju procesora koje koristimo u paralelnom sustavu.
( )
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
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
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).
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
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.
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.
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
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
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.
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.
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.
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])
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.
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
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
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.
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.
36
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.
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.
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.
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.
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 .
(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
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.
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.
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.
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.
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])
ostvaruju uz mnogo vii troak energije. Tablica 2.1 sumira temeljne razlike izmeu takvog vieprocesorskog te viejezgrenog pristupa u graenju raunalnih sustava.
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
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.
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.
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.
15
Simulacija dinamikog sustava estica, najee pod utjecajem sila poput gravitacijske sile. Velika primjena u simulacijama kozmikih pojava.
48
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
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
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)
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 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.
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.
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.
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
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.
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.
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.
64
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.
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.
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.
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.
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
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.
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.
19
AMD Advanced Micro Devices, poput Intela, proizvoa popularnih procesorskih rjeenja za osobna i prijenosna raunala, te servere.
70
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.
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.
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
74
Slika 4.10. Sandy Bridge mikroarhitektura s pripadajuom Ring prstenastom sabirnicom (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
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