You are on page 1of 18

Univerzitet u Sarajevu Elektrotehni cki fakultet u Sarajevu

Vektorski procesori
Seminarski rad iz predmeta Ra cunarske arhitekture

Ajdin Kahrovi c, Azra Ibrahimovi c, Faris Cakari c Sarajevo, 25. III 2013.

Sadr zaj
0 Uvodne napomene 1 Za sto vektorski procesori? 2 Historijski osvrt 3 Osnovna arhitektura vektorskog procesora 3.1 Kako rade vektorski procesori? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Vrijeme izvr savanja vektorskih operacija . . . . . . . . . . . . . . . . . . . . . . . 2 3 5 6 8 9

4 Performanse vektorskih procesora 10 4.1 Mjerenje vektorskih performansi . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 5 Dva realna problema: vektorska du zina i problem susjednih elemenata vektora 11 5.1 Kontrola vektorske du zine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 5.2 Problem susjednih elemenata vektora . . . . . . . . . . . . . . . . . . . . . . . . . 11 6 Pobolj sanja performansi 6.1 Ulan cavanje . . . . . . 6.2 Uvjetno izvr sivi iskazi 6.3 Rijetke matrice . . . . 6.4 Vi sestruke trake . . . vektorskog procesora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 12 12 13 13

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

7 Mane i nedostaci 14 7.1 Koncentrisanje na maksimalne performanse i zanemarivanje performansi pri pokretanju . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 7.2 Pove canje vektorskih performansi bez prate ceg pove canja skalarnih performansi . 15 7.3 Mogu cnost dobivanja vektorskih performansi bez obezbjedivanja memorijske propusnosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 8 Zaklju cak 16

Uvodne napomene

Vektorski procesori su tehnologija koja je bila aktuelna dok jo s uvijek odnos cijena-performanse skalarnih procesora nije bio zadovoljavaju ci. Nakon masovnijeg kori stenja 70tih i 80tih godina pro slog stolje ca, danas se uglavnom koriste u nau cnom ra cunarstvu, obradi multimedijalnih podataka (kompresija, anliza slike i lmova, indeksiranje multimedijalnih podataka itd.), kriptograji, raspoznavanju govora, te odredenim matemati ckim opercijama. Zbog toga cemo se osvrnuti na njihov zna caj, te potrebu koja se pojavila za ovakvim tehnologijama, zajedno sa kratkim osvrtom na njihov nastanak i historijski razvoj. U nastavku cemo opisati njihovu strukturu, osobine i na cin rada. Takoder cemo razmotriti njihove najzna cajnije performanse i metode unapredenja istih. Na kraju cemo pomenuti i dva zna cajna pitanja koja su se otvorila tokom razvoja vektorskih procesora, te probleme i mane ovakve procesorske arhitekture koji su i uzrokovali njihovu nisku popularnost. Kako ova tema nije dovoljno istra zena na na sim jezicima, odredeni termini koji su u anglosaksonskoj literaturi uvedeni samo za potrebe razmatranja ove teme, a za koje su autori uspjeli prona ci odgovaraju ci prijevod, su prevedeni, dok su neki ostavljeni u svom izvornom obliku.

Za sto vektorski procesori?

SIMD ra cunari SIMD Single Instruction stream Multiple Data ra cunari se koriste da bi rije sili osjetljive ra cunske, nau cne i in zenjerske probleme koriste ci standardne strukture podataka, kao sto su nizovi i vektori. Ove ma sine imaju jednu upravlja cku jedinicu koja izvr sava jednu instrukciju, ali svaka instrukcija radi sa vi se podataka. SIMD ra cunari se dijele na: nizovne procesore i vektorske procesore. Vektorski procesori Razmotrimo problem sabiranja odgovaraju cih elemenata dvaju vektora, i pohranjivanje rezultata na odgovaraju ca mjesta u neki tre ci vektor. Ukoliko bismo koristili klasi cni procesor za rje savanje ovog problema, njegovo rje senje bi bilo: for(i=0; i<n; i++) a[i] = b[i] + c[i]; gdje su a, b i c vektori - nizovi brojeva, naj ce s ce sa pokretnim zarezom. Petlja govori ra cunaru da doda i-ti element vektora b i-tom elementu vektora c, i da rezultat spasi na i-to mjesto u vektoru a. Operaciju je potrebno izvr siti n puta. Mogu ca arhitektura vektorskog ra cunara koja je dobro prilagodena za obavljanje ovog zadatka je prikazana na slici 1. Ulaz ove ma sine su dva vektora od n elemenata. Ma sina radi sa odgovaraju cim elementima paralelno koriste ci vektorske ALU-e koji mogu raditi sa svih n elemenata istovremeno, pri cemu je rezultat vektor. Ulazni i izlazni vektor mogu biti smje steni u memoriji ili posebnim vektorskim registrima.

Slika 1: Slika dobro prilagodenog SIMD procesora. U praksi, samo nekoliko super-ra cunara je zaista izgradeno kao na slici 1. Razlog nije tehni cke, ve c ekonomske prirode. Dizajn sa 64 veoma brza ALU-a bi bio preskup, cak i za super-ra cunar. Metod koji se naj ce s ce koristi je kombinacija vektorskog procesuiranja sa proto cnim strukturama. Operacije sa pokretnim zarezom su prili cno kompleksne i zahtjevaju nekoliko koraka da bi se izvr sile. Svaka operacija od vi se koraka je kandidat za implementaciju pomo cu proto cne strukture. Vektorski procesori su uspje sno komercijalizirani mnogo prije paralelnih ma sina instrukcijskog nivoa i predstavljaju alternativni pristup za kontrolisanje multifunkcionalnih jedinica sa dubokim proto cnim strukturama. Vektorske instrukcije imaju nekoliko va znih svojstava koja rje savaju ve cinu problema navedenih ispod: jedna vektorska instrukcija je ekvivalentna jednoj cijeloj petlji. Svaka instrukcija predstavlja desetine ili stotine operacija, pa je propusnost dobavljanja i dekodiranja instrukcija, koja je potrebna za odr zavnje nekolicine funkcionalnih jedinica (proto cne strukture) zaposlenim, uveliko umanjena. 3

koriste ci vektorsku instrukciju kompajler ili programer ukazuje da je ra cunanje svakog od rezultata nezavisno od ra cunanja ostalih rezultata unutar istog vektora, tako da hardver ne mora provjeravati ostale hazarde podataka unutar vektorske instrukcije. Elementi unutar vektora mogu biti izra cunati koriste ci niz paralelnih funkcionalnih jedinica, ili jednu funkcionalnu jedinicu sa veoma dubokom proto cnom strukturom, ili bilo koju posrednu konguraciju paralelne i funkcionalne jedinice sa proto cnom strukturom. hardver jedino mora provjeriti hazarde podataka izmedu dvije vektorske instukcije. Provjera se vr si jednom, prema vektorskom operandu, a ne za svaki element unutar vektora. vektorska instrukcija, koja pristupa memoriji, ima poznat obrazac pristupa. Ako su svi elementi vektora susjedni, pristup vektora setu isprepletenih memorijskih bankova je veoma dobar. Visoko ka snjenje pokretanja glavnog memorijskog pristupa, naspram pristupa ke su je amortizovano, zbog jedinstvenog pristupa memoriji koji je pokrenut za cijeli vektor, naspram pristupa za jednu rije c. Stoga se gubitak usljed ka snjenja de sava samo jednom kod vektora. kako je cijela petlja zamijenjena sa vektorskom instrukcijom cije je pona sanje unaprijed predodredeno, ne postoje hazardi koji bi se pojavili unutar grana petlje. Zbog ovih razloga, vektorske operacije se izvr savaju br ze nego sekvenca skalarnih operacija za isti broj podataka i dizajneri su motivisan da uklju ce vektorske jedinice u procesore, ukoliko se u oblasti primjene cesto koristite. Kako je gore navedeno, vektorski procesori paraleliziraju i stavaljaju u proto cnu strukturu operacije pojedinog elementa vektora. Operacije uklju cuju, pored aritmeti ckih operacija (mno zenje, sabiranje, oduzimanje...), pristup memoriji i efektivno ra cunanje adresa. Mnogi high-end vektorski procesori dozvoljavaju da se vi se vektorskih instrukcija izvr sava istovremeno, kreiraju ci tako paralelizam izmedu operacija razli citih vektora. Vektorski procesori se naj ce s ce koriste pri velikim nau cnim i in zenjerskim primjenama, tipa simulacija sudara automobila, vremenske prognoze, za cije bi izvr senje trebalo desetine sati koriste ci super-ra cunar sa vi segigabajtnim skupovima podataka. Multimedijalne aplikacije, takoder, imaju koristi od vektorske obrade, jer sadr ze veliki broj podatkovnih paralelizama i procesuiraju veliku koli cinu podataka.

Historijski osvrt

Razvoj vektorskih procesora je zapo cet u sklopu Solomon projekta ranih 60-tih u Westinghouseu. Cilj je bio pobolj sati matemati cku izvedbu koriste ci veliki broj jednostavnih matemati ckih operacija (koprocesa), pod kontrolom CPU-a. CPU je izvr savala jednu, istu, instrukciju na svim aritmeti cko-logi ckim jedinicama (ALU), sa druga cijim podacima, za svaki od njih. Ovo je omogu cilo da Solomon ma sina primjeni jedan algoritam na cijeli skup podataka koji su u obliku niza. 1962. godine Westinghouse je otkazao projekat, ali je zapo ceti projekat nastavljen na Univerzitetu Illinois kao ILLIAC IV. Princip rada ILLIAC-a da koristi odvojene ALU-e za svaki element posebno nije cest u kasnijim dizajnima. Ra cunar za operacije sa funkcijama je razvijen i prezentovan 1967. godine. Prve uspje sne implementacije vektorskog procesora su Control Data Corporation (CDC) STAR-100 i Texas Instruments Advanced Scientic Computer (ASC). Oba su bila memorijamemorija vektorski procesori. Osnovni ASC ALU koristi arhitekturu proto cne strukture koja podr zava i skalarno i vektorsko ra cunanje, sa maksimalnim performansama koje dosti zu 20 MFLOPS-a. STAR je sporiji od nekih drugih CDC super-ra cunara, ali su u zadacima vezanim za podatke mogli dr zati korak, jer su mnogo manji i jeftiniji. STAR je koristio iste jedinice za skalare i vektore cine ci time proto cnu strukturu ekstremno dubokom. Oba procesora su imala dugo vrijeme pokretanja i radili su sa vektorima od po nekoliko stotina do nekoliko hiljada elemenata. Vektorska tehnika je po prvi put otkrivena 1976. godine Cray-1 procesorom. Umjesto ostavljanja podataka u memorije kao kod STAR-a i ASC-a, Cray dizajn je imao osam vektorskih registara od koji je svaki sadr zavao 64-bitne rije ci, cime je umanjilo vrijeme pokretanja i reducirao zahtjeve za memorijsku propusnos. Vektorske instrukcije su primjenjivane izmedu registara, sto je mnogo br ze nego komunikacija sa glavnom memorijom. Cray dizajn je koristio paralelizam proto cne strukture da bi implementirao vektorske instrukcije, umjesto vi se ALU-a. Dizajn je imao u potpunosti odvojene proto cne sturkture za razli cite instrukcije, npr. sabiranje/oduzimanje je implementirano u odvojenom modulu od mno zenja. Ovo je omogu cilo da vektorske instrukcije budu jedinstvena proto cna struktura (tehnika nazvana ulan cavanje vektora). Najva znije, Cray-1 je bio najbr zi skalarni procesor tog vremena. Usagla savanje dobrih skalarnih i vektorskih performansi je vjerovatno najve ci razlog za uspjeh Cray-1 procesora. Mnogi slijede ci vektorski procesori se baziraju na arhitekturi ovog, prvog komercijalnog, uspje snog, vektorskog procesora. 1981. CDC je zapo ceo prodaju CYBER 205 procesora. 205 je imao osnovnu arhitekturu kao i STAR, ali je nudio pobolj sane performanse, kao sto su pro sirene mogu cnosti vektorske jedinice - princip rada sa cetiri vektorske trake, svaka sa multifunkcionalnim jedinicama i sirokim load-store protokom, koje obezbijeduju multifunkcionalnost radnji tokom jednog intervala sata. CYBER 205 je svojim performasama prestigao performanse, do tad najboljeg, Cray-1 procesora. Nakon otkri ca serija Cray-2, Cray X-MP i Cray Y-MP, tr zi ste super-ra cunara se fokusiralo na masovno paralelno procesuiranje, umjesto na implementaciju vektorskih procesora. CDC je predstavila ETA-10 ma sinu, ali po sto je njena prodaja bila slaba, uskoro su napustili tr zi ste super-ra cunara. Po cetkom i sredinom 1980. japanske kompanije (Fujitsu, Hitachi i Nippon Electric Corporation (NEC)) su predstavile vektorske ma sine bazirane na registrima, sli cne Cray-1 procesorima, samo manje i br ze. Kasnije, su predstavili svoje super-minira cunare. IBM je razvio Virtual Vector Architecture za spajenje skalarnih procesora, da bi funkcionisali kao vektorski procesor kod super-ra cunara.

Osnovna arhitektura vektorskog procesora

Vektorski procesor se obi cno sastoji od klasi cne skalarne jedinice, koja se zasniva na principu proto cne strukture, i vektorske jedinice. Sve funkcionalne jedinice unutar vektorske jedinice imaju ka snjenje jednako odredenom broju ciklusa sata. Ovo dozvoljava da sat ima manji period i cini vektorski procesor kompatibilnim sa vektorskim operacijama koje zahtjevaju vi se vremena da se izvedu, a da se pri tome ne pojavi niti jedan hazard. Ve cina vektorskih procesora omogu cava rad sa vektorima ciji su elementi brojevi sa pokretnim zarezom, cijeli brojevi ili logi cke vrijednosti. Fokusirat cemo se samo na brojeve s pokretnim zarezom. Postoje dva osnovna tipa arhitekture vektorskih procesora: vektor-registar procesor i memorijamemorija procesor. U vektor-registar procesoru, sve operacije nad vektorima, osim u citavanja i spa savanja, se odvijaju uz pomo c vektorskih registara. Ove arhitekture su ekvivalent load-store arhitekturama. Svi va zniji vektorski ra cunari, proizvedeni od kraja 1980tih, koriste vektorregistar arhitekturu. Kod memorija-memorija vektorskih procesora sve operacije nad vektorima se odvijaju uz pomo c memorije. Prvi vektorski ra cunari su se zasnivali na ovome principu.

Slika 2: Shema osnovne arhitektura vektorskog procesora (VMIPS). Slika 2 prikazuje osnovne komponente vektor-registar vektorskog procesora. Ovaj procesor je sli can komercijalnom procesoru Cray-1, a nazvat cemo ga VMIPS, pri cemu je skarani dio MIPS, a vektorski dio predstavlja logi cki dodatak MIPS-u. Osnovne komponente ISA arhitekture VMIPS-a su: vektorski registri Svaki vektorski registar je bank ksne du zine koji sadr zi jedan vektor. VMIPS ima osam vektorskih registara, a svaki od njih sadr zi 64 64-bitna elementa. Svaki registar mora imati dva porta za citanje i jedan port za pisanje. Portovi za citanje i pisanje, kojih bi najmanje trebalo biti 16, odnosno 8 respektivno, su sa ulazima i izlazima iz funkcionalne jedinice povezani preko para crossbarova. vektorska funkcionalna jedinica (FU) svaka jedinica predstavlja potpunu proto cnu strukturu, iz cega slijedi da se mo ze po ceti s izvr savanjem nove operacije sa svakim ciklusom sata. Kontrolna jedinica je potrebna za detektiranje hazarda, koji mogu proiste ci iz konikata u funkcionalnoj jedinici (strukturalni hazardi) ili iz konikata nastalih prilikom pristupa registrima (podatkovni hazardi). VMIPS ima pet funkcionalnih jedinica prikazanih na slici S1. Radi jednostavnosti, fokusirat cemo se na funkcionalne jedinice za rad sa brojevima s pokretnim zarezom. Ovisno od vektorskog procesora, skalarne operacije koriste ili vektorske funkcionalne jedinice ili poseban set. Pretpostavit cemo da se

funkcionalne jedinice dijele, ali, opet radi jednostavnosti, smatrat cemo da ne dolazi do konikata. vektorska load-store jedinica (jedinica za u citavanje/spa savanje vektora) - jedinica koja slu zi za u citavanje i pohranjivanje vektora u memoriju. Ova jedinica je u potpunosti proto cna, tako da se rije ci mogu kretati izmedu vektorskih registara i memorije sa propusno s cu od jedne rije ci po ciklusu sata, nakon prvobitnog ka snjenja. Ova jedinica takoder podr zava u citavanje i pohranjivanje skalara. set skalarnih registara skalarni registri takoder mogu biti izvori podataka vektorskim funkcionalnim jedinicama. U pitanju su 32 registra op ce namjene i 32 registra namijenjena radu s brojevima s pokretnim zarezom. Slika 1 prikazuje osnovne komponente vektorregistar vektorskog procesora. Nazvat cemo ga VMIPS, pri cemu je skarani dio MIPS, a vektorski dio predstavlja logi cki dodatak MIPS-u u vidu jedinice koja podr zava rad s vektorima. Osnovne komponente ogledne arhitekture VMIPS-a su: Tabela 1 prikazuje osnovne karakteristike nekih od tipi cnih vektorskih procesora, uklju cuju ci veli cinu i broj registara, broj i tipove funkcionalnih jedinica i broj load-store jedinica. Posljednja kolona prikazuje broj traka (engl. lane ) u ma sini, koji je zapravo broj paralelnih proto cnih struktura koje se koriste za izvr senje operacija unutar svake vektorske instrukcije. Tablica 1: Neki od komercijalnih vektorskih ra cunara.
Procesor (godina) Cray-1 (1976.) Cray X-MP (1983.) Cray SVI (1998.) VMIPS (2001.) Cray XIE (2005.) Brzina sata 80 118 300 500 1130 Vektorski registri 8 8 8 8 32 Elemenata po registru 64 64 64 64 64 Vektorske load-store jedinice 1 2 load 1 load-store 1 load-store 1 store Trake

1 1 2 1 8 MSP

U VMIPS-u vektorske operacije imaju iste mnemonike kao i MIPS operacije sa razlikom slova V koje se dodaje na kraju. Tako naprimjer, ADDV.D predstavlja sabiranje dva vektora duple preciznosti. Vektorske instrukcije uzimaju za svoj ulaz ili par vektorskih registara (ADDV.D) ili vektorski i skalarni registar, sto se specicira dodavanjem VS npr. ADDVS.D. U ovom slu caju, vrijednost skalarnog registra se koristi kao ulaz za sve operacije operacija ADDVS.D ce dodati sadr zaj skalarnog registra svakom elementu vektorskog registra. Skalarna vrijednost se kopira u funkcionalnu jedinicu. Ve cina vektorskih operacija imaju odredi sni vektorski registar, iako par njih daju kao rezultat skalarnu vrijednost koja ce se smjestiti u skalarni registar. Naredbe LV i SV predstavljaju u citavanje i pohranjivanje vektora, pri cemu se u citava (ili pohranjuje) cijeli vektor duple preciznosti. Jedan od operanada je vektorski registar ciji se sadr zaj u citava ili pohranjuje, dok je drugi, koji je ina ce MIPS-ov registar op ce namjene, po cetna adresa vektora u memoriji. Tabela 2 prikazuje neke od VMIPS-ovih vektorskih instrukcija. Kao dodatak vektorskim registrima se pojavljuju jo s dva dodatna registra posebne namjene: registar s du zinom vektora (du zina vektora ) i mask vektor.

Tablica 2: Neke od vektorskih instrukcija VMIPS-a.


Instrukcija ADDV.D ADDVS.D SUBV.D SUBVS.D SUBSV.D MULV.D MULVS.D DIVV.D DIVVS.D DIVSV.D LV SV Operandi V1,V2,V3 V1,V2,F0 V1,V2,V3 V1,V2,F0 V1,F0,V2 V1,V2,V3 V1,V2,F0 V1,V2,V3 V1,V2,F0 V1,F0,V2 V1,R1 R1,V1 Funkcija Dodaje elemente vektora V2 vektoru V3 i rezultat pohranjuje u V1. Dodaje F0 svakom elementu vektora V2 i rezultat pohranjuje u V1 Oduzima elemente vektora V3 od V2 i rezultat pohranjuje u V1. Oduzima F0 od svih elemenata vektora V2 i rezultat pohranjuje u V1. Oduzima elemente vektora V2 od F0 i rezultat pohranjuje u V1. Mno zi elemente vektora V2 i V3 i rezultat smje sta u V1. Mno zi elemente vektora V2 sa F0 i smje sta rezultat u V1. Dijeli elemente vektora V2 sa V3 i rezultat smje sta u V1. Dijeli elemente vektora V2 sa F0 i smje sta rezultat u V1. Dijeli F0 sa elementima vektora V2 i smje sta rezultat u V1. U citava vrijednost iz memorije s po cetnom adresom R1 u vektorski registar V1. Spa sava vrijednost iz registra V1 na memorijsku lokaciju s po cetnom adresom R1.

3.1

Kako rade vektorski procesori?

Princip rada vektorskog procesora se najbolje mo ze razumijeti razmatraju ci vektorsku petlju na VMIPS-u. Obratimo pa znju na tipi cni vektorski problem: Y =aX +Y gdje su X i Y vektori, koji se u po cetku nalaze u memoriji, a a je skalar. Ovo je takozvana SAXPY ili DAXPY petlja koja cini unutra snju petlju Linpack benchmarka. (SAXPY dolazi od rije ci single-precision a x X plus Y ; DAXPY od double precision a x X plus Y ). Linpack benchmark predstavlja kolekciju rutina linearne algebre i rutina za vr senje Gausove eliminacijske metode, s ciljem ustvrdivanja mogu cnosti ra cunara pri radu s brojevima s pokretnim zarezom. DAXPY rutina, koja implementira prethodnu petlju, predstavlja mali dio izvornog koda Linpack benchmarka, ali zauzima ve cinu vremena izvr senja tog benchmarka. Pretpostavit cemo da broj elemenata, odnosno du zina, vektorskog registra (64) odgovara du zini vektorske operacije koja nas zanima. Odgovaraju ci kod za izvr senje ove petlje na MIPSu je sljede ci:
L.D DADDIU Petlja: L.D MUL.D L.D ADD.D S.D DADDIU DADDIU DSUBU BNEZ F0, a R4, Rx, #512 F2, 0(Rx) F2, F2, F0 F4, 0(Ry) F4, F4, F2 0(Ry), F4 Rx, Rx, #8 Ry, Ry, #8 R20, R4, Rx R20, Petlja F0, V1, V2, V3, V4, Ry, a Rx V1, F0 Ry V2, V3 V4 ;u citavanje skalara a ;posljednje u citana adresa ;u citavanje X(i) ;a x X(i) ;u citavanje Y(i) ;a x X(i) + Y(i) ;pohranjivanje u Y(i) ;inkrementiranje indeksa X-a ;inkrementiranje indeksa Y-a ;ra cunanje granice ;provjera je li kraj ;u citavanje skalara a ;u citavanje vektora X ;mno zenje vektora skalarom ;u citavanje vektora Y ;sabiranje ;pohranjivanje rezultata

a na VMIPS-u:
L.D LV MULVS.D LV ADDV.D SV

Razlike su o cite na prvi pogled, a najdramati cnija je cinjenica da vektorski procesor smanjuje dinami cku propusnost instrukcija, pri cemu se izvr sava samo sest, nasuprot 600 instrukcija na

MIPS-u. Ovo smanjenje se javlja zato sto vektorske operacije djeluju na 64 elementa i zato sto overhead instrukcije, koje cine skoro pola MIPS koda, ne postoji u VMIPS kodu. Sljede ca bitna razlika je frekvencija interlockova proto cne strukture. U MIPS kodu svaka ADD.D instrukcija mora cekati na MUL.D, i svaka S.D mora cekati na ADD.D. Na vektorskom procesoru, svaka vektorska instrukcija ce zastati samo na prvom elementu svakog vektora, dok ce ostali elementi te ci neometano kroz proto cnu strukturu. Prema tome, zastoji u proto cnoj strukturi su potrebni samo jednom po jednoj vektorskoj operaciji, a ne jednom po svakom elementu. U ovom primjeru ce frekvencija zastoja u proto cnoj strukturi biti 64 puta ve ca od one na VMIPS-u. Zastoji u proto cnoj strukturi na MIPS-u se mogu eliminirati uz pomo c proto cnog strukturiranja na nivou softvera ili koriste ci princip odmotavanja petlje. Medutim, velika razlika u propusnosti instrukcija ne mo ze biti umanjena.

3.2

Vrijeme izvr savanja vektorskih operacija

Vrijeme izvr senja niza vektorskih operacija primarno ovisi od tri faktora: du zine ulaznih vektora, strukturnih hazarda medu operacijama i ovisnostima podataka. Ukoliko je poznata du zina vektora i brzina inicijacije (engl. intiation rate ), sto predstavlja brzinu pri kojoj vektorska jedinica procesuira nove operande i daje novi rezultat, mo ze se izra cunati vrijeme potrebno za izvr senje jedne vektorske instrukcije. Svi moderni super-ra cunari imaju vektorske funkcionalne jedinice sa vi se paralelnih proto cnih struktura (ili traka) koje mogu dati dva ili vi se rezultata po ciklusu sata, ali mogu takoder imati i pojedine funkcionalne jedinice koje nisu potpune proto cne strukture. Radi jednostavnosti, na sa implementacija VMIPS-a ima jednu traku sa brzinom inicijacije od jednog elementa po ciklusu sata za pojedina cne operacije. Prema tome, vrijeme izvr senja jedne vektorske instrukcije je pribli zno proporcionalno du zini vektora. Kako bi se pojednostavila pri ca o izvr senju vektora i vremenu izvr senja, koristit ce se termin konvoj (engl. convoy ), koji predstavlja set vektorskih instrukcija koje eventualno mogu zajedno po ceti s izvr senjem tokom jednog perioda sata. Instrukcije u konvoju ne smiju sadr zavati niti jedan strukturni ili podatkovni hazard; kada bi takvi hazardi postojali, instrukcije u potencijalnom konvoju bi se morale serijalizirati i inicijalizirati u odvojenim konvojima. Punjenje konvoja vektorskim instrukcijama je analogno punjenju VLIW instrukcije skalarnim operacijama. Kako bi analiza bila sto jednostavnija, pretpostavit cemo da se konvoj instrukcija mora izvr siti prije nego sto bilo koja druga instrukcija (skalarna ili vektorska) mo ze zapo ceti svoje izvr senje. S tim u vezi je i mjera vremena, nazvana zvonjenje (engl. chime ), koja se mo ze iskoristiti za procjenjivanje performansi vektorske sekvence koja se sastoji od konvoja. Zvonjenje je koli cina vremena potrebna da se izvr si jedan konvoj. Neovisna je od du zine vektora. Prema tome, vektorska sekvenca koja se sastoji od m konvoja se izvr si u m zvonjenja, a za vektor du zine n, ovo je pribli zno m n ciklusa sata. Ako nam je poznat broj konvoja u nizu vektora, poznato nam je i vrijeme izvr savanja u zvonjenjima. Razmotrimo stoga sljede ci kod:
LV MULVS.D LV ADDV.D SV V1, V2, V3, V4, Ry, Rx V1, F0 Ry V2, V3 V4 ;u citavanje vektora X ;mno zenje vektora skalarom ;u citavanje vektora Y ;sabiranje ;pohranjivanje rezultata

Prvi konvoj je okupiran prvom LV instrukcijom. MULVS.D instrukcija je ovisna od LV instrukcije, pa ne mo ze biti u istom konvoju. Sljede ca LV instrukcija mo ze biti u istom konvoju kao i MULVS.D. Instrukcija ADDV.D je ovisna o drugoj LV instrukciji, pa se mora smjestiti u tre ci konvoj. Kona cno, SV je ovisna o ADDV.D, pa mora i ci u cetvrti konvoj. Ovo dovodi do sljede ce preraspodjele instrukcija u konvoje:

1. 2. 3. 4.

LV MULVS.D ADDV.D SV

LV

Niz instrukcija zahtjeva cetiri konvoja, a prema tome i cetiri zvonjenja. Kako se za dobivanje rezultata izvr se dvije operacije s brojevima s pokretnim zarezom, broj ciklusa po FLOP-u je 2.

Performanse vektorskih procesora

Kako bi se mogle razmatrati performase procesora po pitanju vektorskih problema, mora se uzeti u obzir cijena pokretanja i odr zavanja vektorskih procesora. Najjednostavniji i najbolji na cin prikaza performansi vektorskog procesora na petlji jeste da se uporedi vrijeme izvr savanja vektorske petlje. Za vektorske petlje ce s ce se koristi veli cina MFLOPS (milioni oating-point operacija u sekundi) nego vrijeme izvr savanja. Koristit cemo notaciju Rn za MFLOPS na vektoru du zine n. Kori stenje veli cina Tn (vrijeme) i Rn (brzina) je ekvivalentno ukoliko je broj FLOPS-a prethodno dogovren.

4.1

Mjerenje vektorskih performansi

Mjerenja vezana za du zinu se cesto koriste uz vrijeme i MFLOPS, zbog toga sto je du zina vektora bitna u razmatranju performasi vektorskih procesora. Ova mjerenja se u mnogome razlikuju na razli citim procesorima i potrebno je denisati odredene veli cine, na osnovu kojih bi se njihove performanse mogle uporediti. Tri veli cine povezane sa du zinom su: R - brzina MFLOPS-a na vektoru beskona cne du zine. Iako je ova veli cina zanimljiva prilikom promatranja maksimalnih performansi, stvarni problemi nemaju vektore beskona cne du zine. N1 /2 - du zina vektora potrebna da bi se dostigla polovina vrijednosti Rbeskonacno. Ovo je pogodna veli cina za mjerenje utjecaja overheada. Nv du zina vektora potrebna da bi se vektorski mod napravio br zim of skalarnog. Nv mjeri i ukupnu i relativnu brzinu skalara u odnosu na vektore. Pogledajmo sada ove veli cine u vezi sa DAXPY problemom pokrenutim na VMIPS-u. Prilikom ulan cavanja, unutra snja petlja DAXPY koda u konvojima izgleda ovako (pretpostavljaju ci da Rx i Ry sadr ze po cetne adrese):
LV V1,Rx LV V3,Ry SV Ry,V4 MULVS.D V2, V1, F0 ADDV.D V4, V2, V3 Konvoj 1: Konvoj 2: Konvoj 3: ulan cano u citavanje i mno zenje drugo u citavanje i sabiranje pohranjivanje rezultata

Jedna cina za performase vremena izvr senja vektorske petlje od n elemenata, Tn je: Tn = [ n ] (Tpetlje + Tpocetka ) + n Tzvonjenja MV L

Ulan cavanje omogu cava da se petlja izvr sava u tri zvonjenja, pa je prema tome: Tzvonjenja = 3. Kada bi Tzvonjenja bilo potpuna indikacija performansi, petlja bi se izvr savala za brzinu MFLOPS-a od 2/3brzina sata (jer postoje 2 FLOPS-a po iteraciji). Prema tome, samo na osnovu broju zvonjenja, 500M Hz VMIPS bi izvr savao ovu petlju tokom 333 MFLOPS-a, pretpostavljaju ci da nema strip mininga, niti vremena pokretanja. Postoji vi se na cina za pobolj sanje performansi: dodati dodatnu vektorsku load-store jedinicu, dopustiti konvojima da se preklapaju kako bi se smanjio utjecaj vremena pokretanja ilii smanjiti broj u citavanja potrebnih za vektor-registar alokaciju. Posljednja optimizacija je iskori stena u Cray-1, VMIPS-ovom bliskom saju performanse za 50%. rodaku, da se pobolj 10

Dva realna problema: vektorska du zina i problem susjednih elemenata vektora

Ovaj dio se bavi sa dva pitanja koja se pojavljuju u realnim programima: sta raditi kada vektorska du zina u programu nije ta cno 64 i kako rije siti problem nesusjednih elemenata u vektorima koji se nalaze u memoriji.

5.1

Kontrola vektorske du zine

Procesor sa vektorskim registrima ima standardnu vektorsku du zinu odredenu brojem elemenata u svakom vektorskom registru. Malo je vjerovatno da ova du zina, koja je 64 za VMIPS se poklopi sa realnom du zinom vektora u programu. Stavi se, u realnom programu, du zina speci cne vektorske operacije je cesto nepoznata u vrijeme kompajliranja. Rje senje ovih problema je kreirati registar sa du zinom vektora (VLR od engl. vector lenght register ). VLR kontroli se du zinu bilo koje vektorske operacije, uklju cuju ci u citavanje i spremanje vektora. Vrijednost u VLR, medutim, ne mo ze biti ve ca od du zine vektorskih registara. Ovo rje sava opisani problem sve dok je realna du zina manja ili jednaka maksimalnoj du zini vektora (MVL od engl. maximal vector length ) denisanoj od strane procesora. ukoliko vrijednost veli Sta cine n je ve ca od MVL? Da bi se rije sio ovaj problem, gdje je vektor du zi od maksimalne du zine, koristi se tehnika koja se zove strip mining. Strip mining je generisanje koda takvog da svaka vektorska operacija je izvr sena za veli cinu manju ili jednaku MVL-u. Da bismo na petlju primjenili strip mining kreiramo jednu petlju koja podr zava proizvoljan broj iteracija koji je umno zak MVL-a i jednu petlju koja podr zava sve ostale iteracije, sto mora biti manje od MVL-a. U praksi, kompajleri obi cno kreiraju jednu petlju na koju je primjenjen strip mining koja je parametrizirana na na cin da podr zava oba dijela promjenama du zine.

5.2

Problem susjednih elemenata vektora

Drugi problem se odnosi na to da pozicija u memoriji susjednih elemenata vektora ne mora biti sekvencijalna. Posmatrajmo sljede ci kod za matri cno mno zenje:
for(i = 1; i < 100; i++) { for (j = 1; j < 100; j++) { A[i, j] = 0; for(k = 1; k < 100; k++) A[i, j] = [i, j] + B[i, k] * C[k, j]; } }

Mo zemo vektorizirati mno zenje svakog reda matrice B sa svakom kolonom matrice C i primijeniti strip mining nad unutra snjom petljom sa k kao indeksnom varijablom. Da bismo to uradili, moramo razmotriti kako su susjedni elementi u B i susjedni elementi u C adresirani. Kada je vektor alociran u memoriji, on je lineariziran i mora biti spremljen u poretku ili po redovima ili po kolonama. Linearizacija podrazumijeva da elementi u redu ili elementi u koloni nisu susjedni u memoriji. Na primjer, ako je prethodna petlja napisana u FORTRANu koji alocira poredak po kolonama, elementima matrice B kojim se pristupa iteracijama unutra snje petlje su razdvojeni veli cinom reda pomno zenom sa 8 (broj bajtova po upisu) za ukupno 800 bajtova. Za vektorske procesore nam je potrebna nova tehnika za dobavljanje elemenata vektora koja nisu susjedni u memoriji. Udaljenost razdvojenih elemenata koji se trebaju spremiti u jedan registar se naziva korak (engl. stride ). U izlo zenom primjeru, koriste ci poredak po kolonama za matrice zna ci da matrica

11

C ima korak 1 ili jednu duplu rije c (8 bajtova), razdvajaju ci susjedne elemente, a matrica B ima korak 100 ili 100 duplih rije ci (800 bajtova). Jednom kada je vektor u citan u vektorski registar, on se pona sa kao da su mu elementi logi cki susjedni. Zbog toga vektorski procesor mo ze raditi sa koracima ve cim od 1, nazvani nejedini cni koraci. Ova sposobnost pristupanja nesekvencijalnim memorijskim lokacijama i preoblikovanja istih u gustu strukturu je jedna od glavnih prednosti vektorskog procesora u odnosu na ke sbazirani procesor (ke s-bazirani procesori rade sa podacima sa jedini cnim korakom). Na VMIPSu, na kojem je adresabilna jedinica bajt, korak za na s primjer bi bio 800 bajtova. Vrijednost mora biti izra cunata dinami cki jer veli cina matrice ne mora biti poznata u vrijeme kompajliranja, ili se mo ze, isto kao i veli cina vektora, mijenjati za razli cita izvr savanja iste linije koda. Vektorski korak, kao i vektorska po cetna adresa, se mo ze spremiti u registar op ste namjene.

Pobolj sanja performansi vektorskog procesora

Do danas je poznato nekoliko tehnika pobolj sanja performansi vektorskog procesora. To su, izmedu ostalog: ulan cavanje, izvr savanje uslovno-izvr sivih iskaza i rijetkih matrica u vektorskom modu i dodavanje vi sestrukih traka.

6.1

Ulan cavanje

Posmatrajmo jednostavnu vektorsku sekvencu: MULV.D V1, V2, V3 ADDV.D V4, V1, V5 Na VMIPS-u, ove dvije instrukcije moraju biti u dva razdvojena konvoja, budu ci da su ove instrukcije zavisne. S druge strane, ukoliko vektorski registar V1 posmatramo ne kao jedinstven entitet, ve c kao grupu individualnih registara, onda se performanse mogu unaprijediti rade cii sa individualnim elementima vektora. Ovakva perspektiva se naziva ulan cavanje. Ulan cavanje dozvoljava vektorskoj operaciji da se po cne izvr savati u trenutku kada elementi vektorskog izvori snog operanda postanu slobodni: rezultati prve funkcionalne jedinice u lancu se proslijeduju drugoj funkcionalnoj jedinici. U praksi, ulan cavanje je cesto implementirano dozvoljavanjem procesoru da cita i pi se u pojedina cne registre istovremeno, ali za razli cite elemente. Posljednje implementacije koriste eksibilno ulan cavanje koje dozvoljava vektorskoj instrukciji da se ulan ca sa bilo kojom drugom aktivnom vektorskom instrukcijom, pretpostavljaju ci da se niti jedan strukturni hazard ne ce pojaviti.

6.2

Uvjetno izvr sivi iskazi

Prema Amdahl-ovom zakonu, ubrzanje programa sa niskim ili srednjim nivoima vektorizacije ce biti jako ograni ceno. Dva razloga zbog kojih vi si nivoi vektorizacije nisu postignuti su postojanje uslova (IF iskazi) u petljama i upotreba rijetkih matrica. Programi koji sadr ze IF iskaze u petljama se ne mogu pokrenuti u vektorskom modu sa dosada obja snjenim tehnikama budu ci da IF iskazi donose kontrolne zavisnosti u petlju. Dodatak koji je cesto kori sten za ovu mogu cnost je vektor-mask kontrola. Vektor-mask kontrola podrazumijeva da uslovno-izvr sive instrukcije koriste Booleov uslov da odrede da li je instrukcija izvr sena. Kada je vektor-mask registar uklju cen, bilo koja vektorska instrukcija izvr sava se jedino na vektorskim elementima ciji korespondiraju ci upisi u vektor-mask registar su jedinica. Upisi u odredi sni vektorski registar koji korespondiraju sa nulom u mask registru su nepromijenjeni vektorskom operacijom. Ako je vektor-mask registar odreden rezultatom uslova, onda ce samo elementi koji zadovoljavaju uslov biti iskori steni u vektorskoj operaciji. 12

6.3

Rijetke matrice

Primarni mehanizam za podr sku izvr senju rijetkih matricama u vektorskom modu su scattergather operacije sa upotrebom indeksnih vektora. Cilj ovakvih operacija je podr zati kretanje cene) i normalnog prikaza (nule su uklju cene) rijetke maizmedu gustog prikaza (nule nisu uklju trice. Operacija gather uzima indeksni vektor i dobavlja vektor ciji su elementi adrese dobivene sabiranjem baze adrese sa ofsetom datim u indeksnom vektoru. Rezultat je nerijetki vektor u vektorskom registru. Nakon izvr senja ove operacije nad elementima u gustoj formi, rijetki vektor mo ze biti spremljen u pro sirenoj formi sa scatter spremi stem, koriste ci isti indeksni vektor. Hardverska podr ska za ovakve operacije se naziva scatter-gather i pojavljuje se skoro na svim modernim vektorskim procesorima. LVI (load vector indexed) i SVI (store vector indexed) instrukcije omogu cavaju ove operacije u VMIPS-u. Sosticirani kompajleri za vektorske procesore mogu vektorizirati petlju ubacuju ci run-time provjere za podatkovne zavisnosti, implementirane koriste ci softversku he s tabelu koja detektuje ukoliko dva elementa unutar iste strip-mine iteracije pristupaju istoj adresi. Ukoliko zavisnosti nisu detektovane, strip-mine iteracija mo ze zavr siti koriste ci maksimalnu vektorsku du zinu. Ukoliko je zavisnost detektovana, vektorska du zina je ponovo pode sena na manju vrijednost koja izbjegava sve zloupotrebe zavisnosti, ostavljaju ci sve ostale elemente da budu obradeni u narednoj iteraciji strip-mine petlje.

6.4

Vi sestruke trake

Jedna od velikih prednosti skupa vektorskih instrukcija je ta sto omogu cava softveru da proslijedi veliku koli cinu paralelnih zadataka hardveru koriste ci jednu kratku instrukciju. Jedna vektorska instrukcija mo ze sadr zavati desetine do stotine nezavisnih operacija, a opet biti kodirana istim brojem bita kao i obi cna skalarna instrukcija. Paralelna semantika vektorske instrukcije dozvoljava implementaciji da izvr sava elementarne operacije koriste ci duboko paralelnu i proto cnu funkcionalnu jedinicu, kao kod VMIPSa. Slika 3 ilustrira kako vektorske performanse mogu biti pobolj sane koriste ci paralelne proto cne strukture za izvr senje vektorske operacije sabiranja.

Slika 3: Paralelne proto cne strukture.

13

Skup VMIPS instrukcija je dizajniran sa osobinom da sve vektorske aritmeti cke instrukcije dozvoljavaju jedino n-tom elementu jednog vektorskog registra da u cestvuje u operaciji sa ntim elementom drugog registra. Ovo izuzetno pojednostavljuje konstrukciju visoko paralelnih vektorskih jedinica, koje mogu biti struktuirane kao vi sestruke paralelne trake. Pove canje performansi vektorske jedinice se mo ze izvr siti dodavanjem vi se traka. Struktura vektorske jedinice sa cetiri trake je prikazana na slici 4.

Slika 4: Paralelne proto cne strukture. Dodavanje vi sestrukih traka je popularna tehnika unapredenja vektorskih performansi budu ci da zahtjeva vrlo malo pove canje kompleksnosti i ne zahtjeva izmjene u postoje cim ma sinskim kodovima. Nekoliko vektorskih super-ra cunara su prodani kao niz modela koji variraju u broju postavljenih traka, dopu staju ci korisnicima da beneciraju na cijeni zbog visokih vektorskih performansi. Cray SV1 dopu sta cetiri dvotra cna CPU-a da budu kombinovana koriste ci operativni sistem koji formira jedan veliki osmotra cni CPU.

7
7.1

Mane i nedostaci
Koncentrisanje na maksimalne performanse i zanemarivanje performansi pri pokretanju

Rani vektorski procesori tipa memorija-memorija su imali dugo vrijeme pokretanja. Za neke vektorske probleme, Nv je mogao biti ve ci od 100! Na Cyber 205 vrijeme pokretanja za DAXPY je 158 ciklusa sata. Uporeduju ci CYBER 205 sa cetiri trake (procesor maksimalne veli cine) sa Cray X-MP koji je proizveden nedugo nakon CYBERa 205, 205 pri najve coj brzini je dvostruko br zi od X-MPa. Problem vremena pokretanja je glavni nedostatak memorija-memorija vektorske arhitekture, sto je i razlog njene niske popularnosti.

14

7.2

Pove canje vektorskih performansi bez prate ceg pove canja skalarnih performansi

Ovo je bio problem na mnogim vektorskim procesorima. Procesori sa visokim vektorskim performansama pokazuju slabije rezultate od procesora sa lo sijim vektorskim, ali boljim skalarnim performansama. Dobar primjer ovoga je poredenje brzih skalaranih procesora sa vektorskim procesorima koji imaju lo sije skalarne performanse. Tabela 3 pokazuje perfomanse dva razli cita procesora na ovom benchmarku. I pored visokih performansi vektorskog procesora, njegove niske skalarne performanse ga cine sporijim od brzog sklaranog procesora, sto je pokazano njihovim harmonijskim sredinama. Tablica 3: Performanse mjerene za Livermore FORTRAN jezgra na dva razli cita procesora.
Procesor Minimalna brzina za proizvoljnu petlju (MFLOPS) 0.8 0.41 Maksimalna brzina za proizvoljnu petlju (MFLOPS) 3.89 10.08 Harmonijska sredina 24 petlje (MFLOPS) 1.85 1.72

MIPS M/120-5 Stardent-1500

7.3

Mogu cnost dobivanja vektorskih performansi bez obezbjedivanja memorijske propusnosti

Kao sto smo vidjeli sa DAXPY petljom, memorijska propusnost se pokazala kao poprili cno bitna. DAXPY zahtjeva 1.5 referenciranja memorije po operaciji sa pokretnim zarezom i ovaj odnos je tipi can za mnoge nau cne kodove. Performanse procesora Cray-1 na Linpacku su imale visoka odstupanja kada bi kompajer koristio pametne transformacije mijenjaju ci ra cunanje kako bi vrijednosti mogle biti sa cuvane u vektorskim registrima. Ovo bi smanjilo broj referenciranja memorije po FLOP-u i pribli zno bi udvostru cilo performanse! Dakle, memorijska propusnost na Cray-1 procesoru je postala dovoljna za ovu petlju. Ova osobina ponovnog kori stenja vrijednosti sa cuvanih u vektorskim registrima je jo s jedna prednost vektor-registar arhitekture u odnosu na memorija-memorija vektorske arhitekture, koja mora dobavljati sve vektorske operande iz memorije, zahtijevaju ci cak i ve cu memorijsku propusnost.

15

Zaklju cak

Tokom 1980-ih i 1990-ih, brzi razvoj performansi u proto cnim strukturama skalarnih procesora je doveo do ubrzanog smanjenja razlika izmedu tradicionalnog vektorskog super-ra cunara i brzog superskalarnog VLSI mikroprocesora s proto cnom strukturom. 2002. godine je ve c bilo mogu ce kupiti desktop ra cunar po cijeni ni zoj od 1000$ koji je imao vi si CPU takt sata nego bilo koji dostupni vektorski super-ra cunar, iako su oni ko stali desetine milona dolara. Iako vektorski super-ra cunar ima ni ze takte sata, podr zavao je ve ce paralelizme koriste ci vi se traka (do 16). Ipak, niskobudetni mikroprocesor sa maksimalnim performansama sa pokretnim zarezima spada u jedan od cetiri vode ca CPU-a. Propusnost glavne memorije je klju cna osobina koja razlikuje vektorske super-ra cunare od vektorskih mikroprocesora. Br zi mikroprocesori su mogli podr zati 1 GB/s propusnost glavne memorije, dok su br zi super-ra cunari mogli podr zati oko 50 GB/s po CPU. Za neke nau cne i in zenjerske primjene, performanse su u direktnoj vezi sa nejedini cnim strideom propusnosti glavne memorije, i ovo su primjene zbog kojih su vektorski super-ra cunari ostali popularni. SRAM je imao vrijeme pristupa memoriji nekoliko puta manje nego DRAM, a ko stao je 10 puta vi se. Da bi se reducirali tro skovi glavne memorije i da bi se obezbijedio ve ci kapacitet, svi moderni vektorski super-ra cunari koriste DRAM kao glavnu memoriju, koriste ci prednosti kao sto su vi sa propusnost DRAM interfejsa npr. sinhroni DRAM. Ovaj izbor DRAM-a kao glavne memorije je primjer kako vektorski super-ra cunari biraju pogodnosti tehnologije, kako bi se odnos cijena-performanse pobolj sao. Drugi primjer je da posljednje verzije vektorskih superra cunara su uklju civale i vektorski ke s. Ke s memorija nije efektivna za sve vektorske kodove, medutim, ovi vektorski ke sevi su dizajnirani tako da dopuste visoku memorijsku propusnost, pa cak i u prisustvu mnogih ke s proma saja. Svi vode ci vektorski super-ra cunari su izgradeni sa istom CMOS tehnologijom kao i superskalarni mikroprocesori. Prvi razlog za sto vektorski super-ra cunari imaju manje brzine sata nego klasi cni mikroprocesori je taj sto su razvijeni koriste ci standardne celijske ASIC tehnike, a ne u potpunosti speci cni dizajn kola, kako bi se reducirali tro skovi dizajna. Dok se dizajn mikroprocesora mo ze prodati u desetinama miliona kopija i tako nadoknaditi tro skove dizajna, vektorski super-ra cunar bi bio smatran uspje snim da je prodano preko stotinu kopija. Suprotno tome, dizajn superskalarnog mikroprocesora je po ceo da upija neke od tehnika koje su bile popularne u ranijim sistemima vektorskih ra cunara. Npr. dozvoliti da se 64-bitni registar podijeli na dvije manje rije ci nad kojima se izvr sava neka radnja istovremeno. Vektorske instrukcije su prakti cno privla cne za ugradene procesore jer oni podr zavaju visok stepen paralelizma po niskoj cijeni i sa malim rasipanjem energije. Iskori steni su za neke ma sine za igru kao sto su Nintendo-64 i Sony Playstation 2 da bi poja cali gra cke performanse. O cekuje se da ce mikroprocesori i dalje pru zati podr sku vektorskim operacijama, jer one predstavljaju mnogo jednostavniji pristup pobolj sanju performansi u jednom cijelom podru cju primjene, a koje je vezano za hardverske probleme rada sa sve ve cim du zinama instrukcija ili softverske probleme podr ske vi sestruko paralelnim procesorima.

16

Literatura
[1] Andrew S. Tanenbaum, Structured Computer Organization. Prentice Hall, 4. izdanje, 1998. [2] John L. Hennessy, David A. Patterson Computer Architecture: A Quantitative Approach. Morgan Kafumann, 4. izdanje, 2007. [3] http://en.wikipedia.org/wiki/Vector processor [4] http://www.win.tue.nl/mhorst/documents/vector.pdf [5] http://www.fer.unizg.hr/ download/repository/VIPS 2010-11.pdf

17

You might also like