You are on page 1of 26

Data hazards, Stalls, Forwarding

Student: Dragana Vui br. inde sa: !"#$

Profesor: prof. dr Veselin Ivanovi

Pipeline hazardi
Posto%e situa&i%e u pipelining'u ada se sl%edea instru &i%a ne (o)e izvr*iti u sl%edee( ta tu. +va vi dogad%a%i su dobili i(e hazardi , onfli ti-. Posto%e tri vrste hazarda, i to: #. Stru turni hazardi .. Data hazardi $. /azardi ontrole 0 ovo( radu e biti opisani data hazardi, ao i (etode za n%ihovo r%e*avan%e.

Data hazardi
Do data hazarda dolazi ada planirana instru &i%a, t%. instru &i%a o%a %e sl%edea na redu ne (o)e da se izvr*i zato sto poda&i o%i su potrebni za n%eno izvr*avan%e %o* uvi%e ni%esu dostupni. 1ada pipeline (ora da se zaustavi, %er sl%edei ora (ora e ati na izvr*avan%e ne og od prethodnih. 2a pri(%er, pretpostavi(o sl%edei niz instru &i%a, gd%e na on instru &i%e sabiran%a add, od(ah sli%edi opera&i%a oduzi(an%a ,t%. instru &i%a sub- o%a oristi izraunatu su(u:

add $9, $10, $11 sub $12, $9, $13

3ezultat add instru &i%e se upisu%e u registar 45, a zati( se rezultat te instru &i%e, iz registra 45, oristi u sl%edeo% instru &i%i, sub. 6ez interven&i%a, ova av data hazard (o)e ozbil%no usporiti pipeline. Instru &i%a add ne upisu%e svo% rezultat u registar sve do pete faze

,writeba& ' 76-, sto znai da bis(o pipeline'u (orali dodati tri (%ehuria. Dodavan%e (%ehuria ,bubble- %e %edan od naina a o zaustaviti pipeline, t%. izvr*avan%e sl%edee instru &i%e, sve do ne stigne rezultat o%i %e potreban. 8ogli bis(o se osloniti na o(pa%ler da ri%e*i ova ve situa&i%e, (ed%uti(, rezultati ne bi bili zadovol%ava%ui. +va ve zavisnosti se de*ava%u suvi*e esto, i a*n%en%e %e previ*e veli o da bis(o (ogli da prepusti(o stvar o(pa%leru.

0 pra si posto%i vi*e naina a o ri%e*iti proble( hazarda. Pri(arno r%e*en%e se bazira na in%eni&i da ne (ora(o e ati da se zavr*i svih pet faza izvr*avan%a instru &i%e da bis(o po u*ali da ri%e*i(o data hazard. 9a prethodni niz instru &i%a, i( arit(eti o'logi a %edini&a ,:;0napravi su(u za add instru &i%u, (o)e(o %e uzeti ao ulazni podata za instru &i%u sub. Dodavan%e hardvera da bi se rani%e dobio podata iz unutra*n%ih resursa se naziva forwarding ,prosl%ed%ivan%e- ili b<passing.

+vo (o)e(o predstaviti i grafi i, a na sli&i #. %e pri azana grafi a reprezenta&i%a pipeline'a u slua%u instru &i%e add $9, $10, $11. =rafi a reprezenta&i%a prosl%ed%ivan%a ,forwarding- %e pri azana na sli&i ..

Slika 1.
=orn%a s ala predstavl%a vri%e(e. >ori*teni su si(boli o%i predstavl%a%u fizi e resurse sa s raeni&a(a za pipeline faze. IF predstavl%a instru&tion fet&h fazu, a predstavl%ena %e si(bolo( o%i oznaava (e(ori%u instru &i%e. ID %e instru&tion de&ode"register file read faza, do &rte) predstavl%a itan%e iz registar fa%la? @A sto%i za eBe&ution fazu, odnosno fazu izvr*avan%a instru &i%e, a na sli&i %e reprezenta&i%a :;0? 8@8 %e (e(or< a&&ess faza, odnosno pristup (e(ori%i? 76 C write ba& faza, a predstavl%ena %e sli o( registar fa%la u o%i se upisu%u poda&i. 1a(ni%a podru&%a po azu%u o%i se ele(enti oriste za trenutnu instru &i%u. 1a o, 8@8 faza ni%e os%enena zato sto add instru &i%a ne pristupa (e(ori%i. S%enen%e na desno% strani registar fa%la ili (e(ori%e znai da se ele(ent ita u to% fazi, do s%enen%e na li%evo% strani znai da se u to% fazi upisu%e u registar fa%l ili (e(ori%u. 9bog toga %e os%enena desna polovina ID faze, %er se u to% fazi ita iz registar fa%la, a li%eva strana 76 zato *to se upisu%e u registar fa%l.

add $9, $10, $11

sub $12, $9, $13 Slika 2.


Veza po azu%e stazu prosl%ed%ivan%a od izlaza @A faze add instru &i%e do ulaza u @A fazu za sub, za(%en%u%u&i vri%ednost iz registra 45 proitanu u drugo% fazi instru &i%e sub.

0 ova vo% grafi o% reprezenta&i%i onoga *to se dogad%a, staze prosl%ed%ivan%a su validne sa(o a o se odredi*na faza nalazi asni%e u vre(enu od izvorne faze. 2a pri(%er, ne bi (ogla da posto%i validna staza prosl%ed%ivan%a od izlaza 8@8 faze trenutne instru &i%e do ulaza u @A fazu sl%edee, po*to bi to znailo putovan%e unazad u vre(enu. Prosl%ed%ivan%e fun &ioni*e veo(a dobro, i to e asni%e biti detal%no ob%a*n%eno. 8ed%uti(, ne (oze da spri%ei sva a*n%en%a u pipeline'u. 2a pri(%er, pretpostavi(o da prva instru &i%a u prethodni( pri(%eri(a ni%e add, ve& load. >ao *to (o)e(o i za l%uiti pos(atra%ui sli u .., )el%eni poda&i bi bili dostupni te nakon etvrte faze prve instru &i%e u ovo% zavisnosti, *to %e pre asno za prosl%ed%ivan%e na ulaz tree faze instru &i%e sub. 9ato, a i uz prosl%ed%ivan%e, (orali bis(o zaustaviti %ednu fazu za data hazard o%i se %avl%a prili o( upotrebe load tipa instru &i%a. 2a sli&i $. %e pri azan va)an pipeline on&ept, nazvan pipeline stall, ali se esto naziva i bubble ,(%ehuri-. I ova% on&ept e biti detal%ni%e ob%a*n%en u dal%e( izlagan%u, t%. a o r%e*avati ova o te* e slua%eve, oristei hardvers u dete &i%u i (%ehurie, ili softver o%i tretira a*n%en%e izazvano load instru &i%o( ao a*n%en%e povodo( granan%a.

Lw $9, 20($10)

Sub $12, $9, $13 Slika 3.


Potreban na( %e bubble a i uz prosl%ed%ivan%e ada podata po u*a da is oristi instru &i%a 3'tipa, o%a sli%edi na on load. 6ez (%ehuria, staza od izlaza is (e(or< a&&ess faze do ulaza u eBe&ution fazu bi i*la unazad u vre(enu, sto %e ne(ogue. +vo %e zapravo po%ednostavl%en slua%, po*to ne (o)e(o znati da li e (%ehuri biti neophodan sve do trenut a ada %e instru &i%a sub fet&hovana i de odirana.

Control (branch) hazardi


6ran&h hazardi se %avl%a%u prili o( ori*en%a instru &i%a granan%a. Proble( %e u to(e *to se (ora poeti sa fet&hovan%e( instru &i%e o%a sli%edi na on instru &i%e granan%a ve u sledee( ta tu. :li, pipeline ne (o)e znati o%a %e sl%edea instru &i%a, po*to %e te pri(io bran&h instru &i%u iz (e(ori%e. Dedno od r%e*en%a %e da se zaustavi pipeline od(ah na on *to se fet&hu%e grana, i e ati da pipeline odredi rezultat granan%a, i do ne sazna o%a %e adresa instru &i%e o%u sl%edeu treba uzeti. Pretpostavi(o da postavi(o dovol%no dodatnog hardvera ta o da (o)e(o testirati registre, izraunati adrese granan%a, i izvr*iti update PE adrese to o( druge faze pipeline'a. Fa i uz sav dodatni hardver, pipeline o%i u l%uu%e uslovna granan%a bi izgledao ao na sli&i G.

add $9,$10,$11 beq $12,$13,40

or $15,$16,$17 Slika 4.

Instru &i%a o%a se izvr*ava u oli o uslov granan%a ni%e ispun%en, se odla)e dodatnih .HHps. : o ne (o)e(o da odredi(o rezultat granan%a u drugo% fazi, ao *to %e esto i slua% od du)ih pipeline'a, suoie(o se sa %o* vei( usporavan%e( u oli o oristi(o ova% on&ept. 9a veinu o(p%utera, &i%ena ori*en%a ovih za a*n%en%a %e preveli a, ta o da %e uveden novi on&ept za r%e*avan%e &ontrol hazarda: predikcija. >o(p%uteri zaista oriste predi &i%u ada se bave granan%e(. Dednostavan pristup %e da se uvi%e pretpostavi da nee doi do grananja. 0 oli o s(o u pravu, pipeline nastavl%a dal%e bez zaustavl%an%a, u puno% brzini. Sa(o u oli o dolazi do granan%a, pipeline se zadr)ava. Dedan ova av pri(%er %e pri azan na sli&i I.

add $9,$10,$11 beq $12,$13,40 lw $14,300($0)

add $9,$10,$11 beq $12,$13,40 (40)or $15,$16,$17 Slika 5.


=orn%a sli a pri azu%e pipeline ada uslov granan%a ni%e ispun%en. Don%i pri az %e pri az pipeline'a ada dolazi do granan%a.

8alo vi*e sofisti&irana verzi%a predikcije grananja %e pretpostav a da e do ne ih granan%a doi, a do ne ih ne. 2a pri(%er, na ra%u petl%i se uvi%e nalazi uslov granan%a, o%i u oli o %e ispun%en, treba da s oi na poeta petl%e. Po*to %e (nogo vea v%erovatnoa da e ta vi uslovi biti ispun%eni, a vraa%u se ponovo na poeta izvr*ava%ui isti set instru &i%a, (o)e(o uvi%e pretpostaviti da e doi do s o a na ne u rani%u adresu. +va o rut pristup predi &i%e granan%a se oslan%a na tipino pona*an%e i ne uzi(a u obzir individualnost sva e bran&h instru &i%e. 2a drugo% strani, d<na(i& hardware predi&tor ,hardver

o%i vr*i dina(ino predvid%an%e- pretpostav e postavl%a u zavisnosti od pona*an%a sva e grane, i (o)e %e pro(i%eniti to o( )ivotnog vi%e a progra(a. Dedan od popularnih pristupa dina(i o( predvid%an%u %e uvan%e istori%e pona*an%a za sva u granu posebno, a zati( ori*en%e s orog pona*an%a da se predvidi budue. +va av pristup %e veo(a dobar, zato *to %e pro&enat usp%e*nosti, odnosno tanosti predvid%an%a pre o 5HJ.

Hard erske i!ple!entaci"e


0 nastav u e biti pri azane hardvers e *e(e za r%e*avan%e data hazarda. :lteranativa ovo(e %e da se uop*te ne dozvoli posto%an%e hazarda: o(pa%leru %e zabran%eno da generi*e se ven&e o%e predstavl%a%u hazarde. 2a pri(%er, o(pa%ler bi sa( uba&io tri nezavisne instru &i%e iz(ed%u sub i and, i(e bi hazard nestao. >ada se ne (ogu nai ta ve instru &i%e, o(pa%ler uba&u%e instru &i%e o%e su sigurno nezavisne: nop instru &i%e. +vo %e s raeni&a za Kno operationsL, zato sto nop ne ita iz registra, ne (odifi u%e podat e, niti upisu%e rezultat. Don%i od oristi nop instru &i%e da bi se dobio )el%eni rezultat: sub $9, $10, $11 nop nop nop and $12, $9, $13 or $14, $15, $9 add $16, $9, $9 sw $17, 100($9) Ia o ova% od radi a o treba, ove tri nop instru &i%e zauzi(a%u tri ta ta, a ne ine ni*ta orisno. 0 idealno( slu&a%u, o(pa%ler e nai instru &i%e o%e treba da izvede da bi po(ogao u raunan%u, za(%en%u%ui ove tri.

Data hazards i #or$ardin%


>reni(o od sl%edeeg pri(%era, gd%e su zavisnosti oznaene plavo( bo%o(: sub and or add sw $9, $10, $11 $12, $9, $13 $14, $15, $9 $16, $9, $9 $17, 100($9) M 0 registar 45 se upisu%e rezultat opera&i%e sub M Prvi operand zavisi od sub M Drugi operand zavisi od sub M Prvi i drugi operand zavise od sub M 6aza zavisi od rezultata sub

9adn%e etiri instru &i%e zavise od rezultata u registru 45 iz prve instru &i%e. 2a pri(%er, a o bi registar 45 i(ao vri%ednost #H pri%e instru &i%e za oduzi(an%e, i '.H na on, progra(er, naravno, na(%erava da rezultat '.H oristi u naredni( instru &i%a(a o%e oriste registar 45. >a o bi se ova se ven&a pona*ala u na*e( pipeline'uN Sli a O. po azu%e izvr*avan%e ovih instru &i%a u vi*eta tno( pipeline'u. 3adi de(onstra&i%e izvr*avan%a se ven&e u trenutno( pipeline'u, na vrhu sli e O. %e pri azana vri%ednost o%a se nalazi u registru 45, o%a se (i%en%a na sredini petog ta ta, ada sub instru &i%a upi*e svo% rezultat. Poten&i%alni onfli t bi se (ogao ri%e*iti diza%no( registar fa%la u pogledu hardvera: *ta se de*ava ada se iz registra ita, i u n%ega upisu%e u isto( ta tuN Pretpostavl%a(o da se upis de*ava u prvo% polovini ta ta, do se itan%e vr*i u drugo% polovini, ta o da opera&i%a itan%a da%e ono *to %e upisano. >ao *to %e to slua% sa (nogi( i(ple(enta&i%a(a registar fa%lova, ni u ovo( slua%u se ne %avl%a onfli t. 1a t: Vri%ednost 45:

sub $9, $10, $11

and $12, $9, $13

or

$14, $15, $9

add $16, $9, $9

sw

$17, 100($9) Slika &.


9avisnosti u pipeline'u za set od I instru &i%a, oristei po%ednostavl%eni datapath. Sve zavisne a &i%e su pri azane u bo%i, do KCC iL na vrhu predstavl%a redni bro% ta ta. Prva instru &i%a upisu%e u registar 45, do sl%edea ita iz istog. 0 registar se upisu%e te u ta tu bro% I, ta o da %e prava vri%ednost nedostupna sve do tog ta ta. ;ini%e u bo%i predstavl%a%u zavisnosti ostalih datapath'a u odnosu na prvi. +ne zavisnosti o%e idu unazad u vre(enu predstavl%a%u pipeline data hazarde.

2a sli&i O. %e vidl%ivo da vri%ednosti o%e su uzete iz registra 45 nee biti rezultat instru &i%e sub, osi( a o se itan%e ne vr*i to o( ili na on ta ta I. 1a o, instru &i%e o%e e dobiti tanu i potrebnu vri%ednost ,'.H- su add i sw? instru &i%e and i or e dobiti netanu vri%ednost o%a %e prvobitno bila upisana. +va vi proble(i posta%u oigledni od ta vih reprezenta&i%a, zato *to %e vidl%ivo da lini%e zavisnosti idu unazad u vre(enu. Pogleda%(o pa)l%ivi%e sli u O.: ada %e rezultat instru &i%e sub zapravo dostupanN 2a ra%u @A faze, ili na ra%u treeg ta ta. >ada su poda&i potrebni instru &i%a(a and i orN 2a poet u n%ihove @A faze, t%. ta tovi(a G i I, respe tivno. 9bog toga, (o)e(o izr*iti ova% seg(ent bez a*n%en%a a o %ednostavno proslijedimo podat e i( oni postanu dostupni, a ne (ora(o e ati n%ihovo itan%e iz registar fa%la. >a o fun &ioni*e prosl%ed%ivan%eN 9bog %ednostavnosti, raz(atrae se sa(o izazov prosl%ed%ivan%a opera&i%i u @A fazi, *to (o)e biti :;0 opera&i%a ili izraunavan%e adrese. +vo znai da ad instru &i%a po u*a da oristi registar u svo%o% @A fazi, a ne a druga instru &i%a po u*ava da upi*e u isti u svo%o% 76 fazi, zapravo na( treba%u vri%ednosti ao ulazi u :;0. 2ota&i%a o%a oznaava pol%a pipeline registara dozvol%ava pre&izni%u nota&i%u zavisnosti. 2a pri(%er, KID"@A.3egister3SL se odnosi na bro% registra i%a se vri%ednost nalazi u pipeline registru ID"@A, t%. onu iz prvog read porta registar fa%la. Prvi dio i(ena, li%evo od ta e, %e i(e pipeline registra? drugi dio %e i(e pol%a u to( registru. >oristei ove ozna e, dva para hazarda su: #a. @A"8@8.3egister3d P ID"@A.3egister3s #b. @A"8@8.3egister3d P ID"@A.3egister3t .a. 8@8"76.3egister3d P ID"@A.3egister3s .b. 8@8"76.3egister3d P ID"@A.3egister3t Prvi hazard u rani%e raz(atrano% se ven&i %e na registru 45, iz(ed%u rezultata opera&i%e sub $9, $10, $11 i prvog operanda and $12, $9, $13. +va av hazard se dete tu%e ada %e and instru &i%a u @A fazi, a prethodna instru &i%a u 8@8 fazi, pa %e ovo hazard tipa #a: @A"8@8.3egister3d P ID"@A.3egister3s P 45

Pri(%er: Pri(%er:
>lasifi >lasifi ovan%e ovan%ehazarda hazardau usl%edeo% sl%edeo%se se ven&i ven&inaredbi: naredbi: sub $9, $10, $11 M 0 registar 45 sub $9, $10, $11 M 0 registar 45se seupisu%e upisu%erezultat rezultatopera&i%e opera&i%esub sub and M and $12, $12, $9, $9, $13 $13 MPrvi Prvioperand operandzavisi zavisiod odsub sub or $14, M or $14, $15, $15, $9 $9 MDrugi Drugioperand operandzavisi zavisiod odsub sub add $16, $9, $9 M Prvi I drugi operand zavise add $16, $9, $9 M Prvi I drugi operand zaviseod odsub sub sw $17, M sw $17, 100($9) 100($9) M6aza 6azazavisi zavisiod odrezultata rezultatasub sub >ao >ao*to *to%e %egore gorepo(enuto, po(enuto,sub-and sub-and%e %ehazard hazardtipa tipa#a. #a.+stali +stalisu: su: Sub or %e hazard tipa .b: Sub or %e hazard tipa .b: 8@8"76.3egister3d 8@8"76.3egister3dP PID"@A.3egister3t ID"@A.3egister3tP P45 45 Dvi%e zavisnosti iz(ed%u sub i add ni%esu hazardi zato *to Dvi%e zavisnosti iz(ed%u sub i add ni%esu hazardi zato *toregistar registarfa%l fa%lobezb%ed%u%e obezb%ed%u%e potrebne .. potrebnepodat podat eeto to o( o(ID IDfaze fazeadd add 2e 2eposto%i posto%ini nihazard hazardiz(ed%u iz(ed%usub sub iisw swzato zatosto stosw swita itaiz izregistra registra45 45 %edan %edanta ta ttna na on on *to sub upi*e rezultat. *to sub upi*e rezultat.

Po*to ne e instru &i%e uop*te i ne upisu%u u registre, ovo ni%e na%pre&izni%a reprezenta&i%a. Pone ad e prosl%ed%ivati a ia o to ni%e neophodno. Dedno od r%e*en%a %e da se %ednostavno prov%eri da li %e 3eg7rite ontrolni signal a tivan: ispitivan%e 76 ontrolnog pol%a pipeline registra to o( @A i 8@8 faze odred%u%e da li e 3eg7rite biti u l%uen. 1a od%e, 8IPS zahti%eva da sva a upotreba registra 4H ao operanda (ora znaiti upotrebu vri%ednosti H. >ada instru &i%a u pipeline'u zahti%eva 4H ao destina&i%u u o%u upisu%e rezultat ,npr. sll $0, $23, $24-, )eli(o da izb%egne(o prosl%ed%ivan%e (ogue nenulte vri%ednosti. 2e prosl%ed%ivati rezultate o%i su na(i%en%eni registru 4H %e ono *to treba uiniti a o bi se i progra(er i o(pa%ler oslobodili zaht%eva da se izb%egne 4H ao destina&i%a. =orn%i uslovi u to( slua%u rade a o treba u oli o doda(o uslov @A"8@8.3egister3d Q H prvo( hazard uslovu, i 8@8"76.3egister3d Q H drugo(. Sada ada (o)e(o dete tovati hazarde, polovina proble(a %e ri%e*ena C ali i dal%e sto%i izazov da se prosli%edi pravi, odnosno )el%eni podata . 2a sli&i !. su pri azane zavisnosti iz(ed%u pipeline registara i ulaza u :;0 za istu onu prethodno raz(atranu odnu se ven&u, na sli&i O. 3azli a %e u to(e *to zavisnost poin%e iz pipeline registra, u(%esto e an%a da se zavr*i 76 faza a o bi se uzeo pravi rezultat. 1a o potrebni poda&i posto%e u vre(enu za asni%e instru &i%e, sa pipeline registri(a o%i dr)e podat e za prosl%ed%ivan%e.

1a t: Vri%ednost 45: Vri%ednost @A"8@8: Vri%ednost 8@8"76:

sub $9, $10, $11

and $12, $9, $13

or

$14, $15, $9

add $16, $9, $9

sw

$17, 100($9) Slika '.


9avisnosti (ed%u pipeline registri(a idu napri%ed u vre(enu, ta o da %e (ogue obezbi%editi da ulazi u :;0 za and i or instru &i%e prosl%ed%ivan%e( iz pipeline registara. Vri%ednosti u pipeline registri(a po azu%u da %e )el%ena vri%ednost dostupna pri%e nego *to %e upisana u registar fa%l. Pretpostavl%a(o da registar fa%l prosl%ed%u%e vri%ednosti o%e su proitane i upisane u isto( ta tu, ta o da add ne zadr)ava pipeline, ali vri%ednosti dolaze iz registar fa%la, a ne iz pipeline registra.

: o bis(o (ogli uzi(ati ulaze za :;0 iz bilo og pipeline registra, a ne sa(o iz ID"@A, onda bis(o (ogli prosli%editi prave podat e. Dodavan%e( (ultiple sora na ulaze :;0, uz potrebne ontrolne signale, (o)e(o oristiti pipeline bez zaustavl%an%a i a*n%en%a a i u prisustvu ovih zavisnosti. 9a sada, pretpostavl%ae(o da su %edine instru &i%e o%e treba da prosl%ed%u%e(o G instru &i%e 3'tipa: add, sub, and, or. Sli a 5. po azu%e :;0 i pipeline registre pri%e i na on dodavan%a hardvera za prosl%ed%ivan%e. 1abela R. po azu%e vri%ednosti ontrolnih lini%a za :;0 (ultiple sore o%i odred%u%u da li e se vri%ednost uzi(ati iz registar fa%la ili e se uzeti %edna od prosli%ed%enih vri%ednosti.

Slika (.
>ontrolne vri%ednosti za (ultiple sore za prosl%ed%ivan%e.

+va ontrola prosl%ed%ivan%a e biti u @A fazi zato *to se i :;0 prosl%ed%iva i (ultiple sori nalaze u isto% fazi. 9ato, (ora(o preni%eti bro% registra o%i sluzi ao operand iz ID faze pre o ID"@A pipeline registra da bi utvrdili da li da prosl%ed%u%e(o. Ve& i(a(o rt pol%e ,biti .H'#O-. Pri%e prosl%ed%ivan%a, ni%e bilo potrebe da ID"@A registar obezbi%edi prostor za rs pol%e. 9ato, rs ,biti .I'.#- se doda%e ID"@A registru. 2api*i(o sada uslove za dete tovan%e hazarda za%edno sa ontrolni( signali(a za n%ihovo r%e*avan%e: #. @A hazard: if ,@A"8@8.3eg7rite and ,@A"8@8.3egister3d Q Hand ,@A"8@8.3egister3d P ID"@A.3egister3s-- Forward: P #H if ,@A"8@8.3eg7rite and ,@A"8@8.3egister3d Q Hand ,@A"8@8.3egister3d P ID"@A.3egister3t-- Forward6 P #H

0 ovo( slua%u se prosl%ed%u%e rezultat prethodne instru &i%e na ulaze :;0. : o e prethodna instru &i%a upisivati u registar fa%l, a bro% registra u o%i se upisu%e se po lapa sa bro%e( registra iz o%eg se ita sa :;0 ulaza : ili 6, a obezbi%ed%eno %e da to ni%e registar H, tada us(%eri (ultiple sor da odabere tu vri%ednost, u(%esto one iz pipeline registra @A"8@8.

Slika ).
2a vrhu su :;0 i pipeline registri pri%e dodavan%a hardvera za prosl%ed%ivan%e. 2a dnu, dodati su (ultiple sori da bi se dodale staze za prosl%ed%ivan%e, a pri azana %e i %edini&a za prosl%ed%ivan%e ,forwarding unit-. 2ovi hardver %e pri azan u bo%i. Izostavl%en %e puni datapath, radi %asni%eg pri azivan%a. ID"@A.3egister3t %e pri azan . puta, %edno( da bi povezao (ultiple sore, a drugi put ao %edinstven signal, (ed%uti(, to %e sa(o %edan signal.

.. 8@8 hazard: If ,8@8"76.3eg7rite :nd ,8@8"76.3egister3d Q H:nd ,8@8"76.3egister3d P ID"@A.3egister3s-- Forward: P H# If ,8@8"76.3eg7rite :nd ,8@8"76.3egister3d Q H:nd ,8@8"76.3egister3d P ID"@A.3egister3t-- Forward6 P H# >ao *to %e ve po(enuto, ne posto%i hazard u 76 fazi zato *to pretpostavl%a(o da registar fa%l obezb%ed%u%e pravi rezultat, u oli o instru &i%a u ID fazi ita isti registar u o%i upisu%e instru &i%a u 76 fazi. 1a av registar fa%l izvodi drugi obli prosl%ed%ivan%a, ali se to odvi%a unutar sa(og registra. >o(pli a&i%e su poten&i%alni data hazardi iz(ed%u rezultata instru &i%e u 76 fazi, rezultata instru &i%e u 8@8 fazi, i izvornog operanda instru &i%e u :;0 fazi. 2a pri(%er, ada su(ira(o ve tor bro%eva u %edno( registru, itav set instru &i%a e itati i upisivati u isti registar: :dd 4.., 4.., 4.G :dd 4.., 4.., 4.I :dd 4.., 4.., 4.O . . . 0 ovo( slua%u, rezultat se prosl%ed%u%e iz 8@8 faze zato *to %e rezultat u 8@8 fazi na%s ori%i. 1a o bi ontrola za 8@8 hazard bila ,sa dodat o( oznaeni( plavo( bo%o(-: If ,8@8"76.3eg7rite :nd ,8@8"76.3egister3d Q H:nd ,@A"8@8.3egister3d Q ID"@A.3egister3s:nd ,8@8"76.3egister3d P ID"@A.3egister3s-- Forward: P H# If ,8@8"76.3eg7rite :nd ,8@8"76.3egister3d Q H:nd ,@A"8@8.3egister3d Q ID"@A.3egister3t:nd ,8@8"76.3egister3d P ID"@A.3egister3t-- Forward6 P H#

2a sli&i #H. %e pri azan hardver potreban da bi se vr*ilo prosl%ed%ivan%e za opera&i%e o%e oriste rezultate to o( @A faze.

Slika 1*.
Datapath unapri%ed%en za r%e*avan%e hazarda uz po(o prosl%ed%ivan%a.

Data hazardi i stall


2a poet u s(o ve re li da prosl%ed%ivan%e ne (o)e uvi%e da po(ogne, a to %e slua% ada na on load instru &i%e o%a upisu%e u ne i registar, sli%edi ne a instru &i%a o%a po u*ava da ita iz istog tog registra. 2a sli&i ##. %e ilustrovan ta% proble(. Poda&i se %o* uvi%e ita%u iz (e(ori%e u to u ta ta G do :;0 izvodi opera&i%u za sl%edeu instru &i%u. 8ora se dodati ne a o(ponenta o%a e zadrzavati pipeline ada %e u pitan%u o(bina&i%a load i ne e instru &i%e o%a ita n%en rezultat.

1a t:

lw

$9,20($10)

and $11,$9,$12

or

$13,$9,$14

add $15,$11,$9

sl! $16,$14,$" Slika 11.


Pipeline seri%e instru &i%a. Po*to zavisnost iz(ed%u load i instru &i%e o%a sli%edi ,and- ide unazad u vre(enu, ova% hazard se ne (o)e ri%e*iti prosl%ed%ivan%e(. 9ato, o(bina&i%a (o)e rezultirati a*n%en%e(.

9ato, pored %edini&e za prosl%ed%ivan%e, potrebna na( %e i %edini&a za dete &i%u hazarda ,hazard dete&tion unit-. +va %edini&a radi za vri%e(e ID faze, ta o da (o)e uba&iti (%ehuri iz(ed%u load instru &i%e, i orien%a n%enog rezultata. >ontrola za hazard dete&tion unit %e sa(o sl%edei uslov: #$ (%&'().*e+,ead and ((%&'().,e-#s!er,! . %/'%&.,e-#s!er,s) or (%&'().,e-#s!er,! . %/'%&.,e-#s!er,!))) s!all !0e p#pel#ne Prvi red %e prov%era da li %e instru &i%a load: %edina instru &i%a o%a ita iz (e(ori%e %e load. Sledea dva reda prov%erava%u da li se pol%e odredi*nog registra load instru &i%e u @A fazi po lapa sa bilo o%i( izvorni( registro( instru &i%a u ID fazi. : o %e uslov taan, instru &i%a se zadr)ava za %edan ta t. Posle ovoga, prosl%ed%iva a logi a (oze preuzeti

zavisnosti i izvr*avan%e. 0 oli o ne bi bilo prosl%ed%ivan%a, instru &i%e sa sli e ##. bi (orale da se zadr)e za tra%an%e %o* %ednog ta ta. : o se instru &i%a u ID fazi zadr)ava, onda se i instru &i%a u IF fazi ta od%e (ora zadr)ati. 0 suprotno( bis(o izgubili fet&hovanu instru &i%u. >a o spri%eiti ove dvi%e instru &i%e u napret u dal%e roz pipelineN Dednostavno: spri%eiti pro(%enu vri%ednosti PE registra i IF"ID pipeline registra. 0 oli o se ovo obezbi%edi, instru &i%a u IF fazi e se nastaviti itati oristei isti PE, a registri u ID fazi e se nastaviti itati oristei ista pol%a instru &i%a iz IF"ID pipeline registra. Postavl%a se pitan%e: *ta se za to vri%e(e de*ava u zadn%e( di%elu pipeline'aN Izvr*ava%u se instru &i%e o%e ne(a%u efe ta: nop instru &i%e. >a o uba&iti ove nop instru &i%e, o%e se pona*a%u ao (%ehuriiN Deaserta&i%a ,postavl%an%e na H- svih 5 ontrolnih signala u @A, 8@8 I 76 faza(a e zapravo stvoriti nop instru &i%u. Identifi u%u&i hazard u ID fazi, (o)e(o uba&iti (%ehuri ,bubble- u pipeline (i%en%a%ui @A, 8@8, 76 ontrolna pol%a ID"@A pipeline registra u H. 0 to( slua%u, a o su ontrolne vri%ednosti H, ne (o)e se upisivati ni u registre ni u (e(ori%u. Sli a #.. po azu%e *ta se zapravo de*ava sa hardvero(: dio pipeline o%i %e vezan za izvr*avan%e and instru &i%e %e pretvoren u nop, a sve instru &i%e poev*i sa and su odlo)ene za %edan ta t. /azard e nat%erati and i or instru &i%e da u etvrto( ta tu ponavl%a%u ono *to su radile u tree(: and ita i de odira, do or biva ponovo fet&hovana iz (e(ori%e. 1o ponavl%an%e %e zapravo ono *to ini stall, ali pravi efe at %e produ)avan%e vre(ena izvr*avan%a and i or, ta o da se odlo)i fet&h add instru &i%e. 8o)e(o to uporediti sa (%ehurie( vazduha u vodeno% &i%evi, ada stall (%ehuri odla)e sve *to se nalazi iza n%ega, i nastavl%a niz stazu instru &i%a %ednu po %ednu fazu sve do ne izad%e na drugo( ra%u.

lw

$9,20($10)

and be1o+es nop and $11,$9,$12 or $13,$9,$14

add $15,$11,$9 Slika 12.


>a o se zapravo postavl%a stall u pipeline'u. 8%ehuri se uba&u%e u ta tu br. G, (i%en%an%e( and instru &i%e u nop. Pri(i%eti(o da se and instru &i%a zaista fet&hu%e i de odira u drugo( i tree(

ta tu, ali %e n%ena @A faza odlo)ena za peti ta t. Isto ta o, or instru &i%a se fet&hu%e u tree( ta tu, ali IF faza %e odlo)ena za peti. 2a on postavl%an%a (%ehuria, sve zavisnosti idu napri%ed u vre(enu, i ne dolazi do hazarda.

2a sli&i #$. su pri azane pipeline veze za hazard dete&tion unit i forwarding unit ,%edini&a za prosl%edivan%e-. >ao i rani%e, forwarding unit ontroli*e :;0 (ultiple sore o%i slu)e za za(%enu vri%ednosti iz obinog registra sa vri%edno*u iz odgovara%ueg pipeline registra. /azard dete&tion unit ontroli*e upisivan%e u PE i IF"ID registre, ao i (ultiple sor o%i treba da odabere iz(ed%u stvarnih ontrolnih vri%ednosti i svih nula. /azard dete&tion unit zadr)ava i vr*i deaserta&i%u ontrolnih pol%a u oli o se po%avi hazard prili o( upotrebe load instru &i%e.

Slika 13.
Pregled ontrolnih lini%a i ontrolnih ele(enata pipeline'a, pri azana dva (ultiple sora za prosl%ed%ivan%e, hazard dete&tion unit i forwarding unit. Ia o su ID i @A faze po%ednostavl%ene, sli a po azu%e su*tinu potrebnog hardvera za realizovan%e prosl%ed%ivan%a.

+ranch hazardi
Do sada s(o raz(atrali sa(o hazarde o%i se tiu arit(eti ih opera&i%a. 8ed%uti(, posto%i %o* %edna vrsta hazarda o%i se %avl%a%u prili o( opera&i%a o%e podrazu(i%eva%u granan%e. 2a sli&i #G. %e pri azan pipeline u slua%u niza instru &i%a, i vidi se gd%e e doi do granan%a. Instru &i%a (ora biti fet&hovana u sva o( ta tu da bi pipeline uop*te posto%ao, ali u na*e( pipeline'u, odlu a o to(e da li e doi do granan%a se donosi te na ra%u 8@8 faze. +va vo a*n%en%e u odred%ivan%u o%u sledeu instru &i%u fet&hovati, se naziva &ontrol hazard ili bran&h hazard, nasuprot data hazardi(a o%e s(o prethodno opisivali. +vi hazardi su relativno %ednostavni za razu(i%evan%e, de*ava%u se red%e u odnosu na data hazarde, i ne posto%i ta o efe tivno r%e*en%e ao *to %e prosl%ed%ivan%e za data hazarde. 9ato su i *e(e %ednostavni%e.

40 beq $19,$10,2"

44 and $12,$",$13

4" or $14,$15,$"

52 add $16,$",$"

72 lw $9,50($20) Slika 14.


0ti&a% pipeline'a na instru &i%u granan%a. 6ro%evi na desno% strani instru &i%a predstavl%a%u adrese instru &i%a. Po*to instru &i%a granan%a odluu%e da li e doi do granan%a te u 8@8 fazi C etvrti ta t za beS instru &i%u C sl%ede&e tri instru &i%e e biti fet&hovane i poee izvr*avan%e. 6ez interven&i%a, te tri instru &i%e e poeti izvr*avan%e pri%e nego *to beS s oi na lw naredbu na lo a&i%i !..

Pretpostav a: ne(a granan%a


9adr)avan%e pipeline'a do se grana ne izvr*i previ*e %e sporo, i ni%e efi asno. 9ato %e uvedeno pobol%*an%e: u(%esto zadr)avan%a, treba pretpostaviti da do granan%a nee doi, i ta o nastaviti izvr*avan%e( svih narednih instru &i%a. 0 oli o ipa dod%e do granan%a, instru &i%e o%e su bile fet&hovane i de odirane (ora%u biti odstran%ene. Izvr*avan%e se nastavl%a na lo a&i%i s o a. +va opti(iza&i%a (o)e prepoloviti &i%enu &ontrol hazarda, a o u pola slua%eva ne dolazi do granan%a, i u oli o &i%ena u lan%an%a instru &i%a ni%e veli a. Da bis(o odstranili instru &i%e, potrebno %e sa(o da pro(i%eni(o originalne ontrolne vri%ednosti na H, ao *to s(o uradili sa data hazardo( od load instru &i%a. 3azli a %e u to(e da ta od%e (ora(o pro(i%eniti tri instru &i%e u IF, ID i @A faza(a ada instru &i%a granan%a dod%e do 8@8 faze. +dstran%ivan%e instru &i%a znai da (ora(o u loniti i instru &i%e u IF, ID i @A faza(a pipeline'a.

S(an%en%e a*n%en%a od granan%a


Dedan od naina za pobol%*an%e perfor(ansi %e po u*a% s(an%en%a &i%ene o%u plaa(o ada dod%e do granan%a. Do sada s(o pretpostavl%ali da se sledea PE adresa za granu odred%u%e u 8@8 fazi, ali a o izvr*avan%e grane po(%eri(o rani%e u pipeline'u, i(ae(o i (an%e instru &i%a za ba&an%e. 8IPS arhite tura %e diza%nirana ta o da podr)ava brze %ednota tovne grane o%e (ogu biti pipeline'ovane sa (alo( &i%eno(. Diza%neri su pri(i%etili da se veina grana oslan%a na %ednostavan test ,%edna ost, na pri(%er-, i da ta vo testiran%e ne zahti%eva puno anga)ovan%e :;0, ve (o)e biti izvr*eno sa ne oli o portova. Po(%eran%e odlu e o granan%u unapri%ed zahti%eva izvr*avan%e dvi%e rani%e opera&i%e: izraunavan%e adrese na o%u treba s oiti a o %e uslov ispun%en, i evalua&i%a odlu e o granan%u. ;a *i dio ove pro(%ene %e po(%eran%e unapri%ed izraunavan%a adrese s o a. Ve i(a(o vri%ednost PE i i((ediate pol%a u IF"ID pipeline registru, ta o da treba sa(o da po(%eri(o naredbu granan%a iz @A u ID fazu. 1e)i dio %e sa(a odlu a o granan%u. 9a bran&h eSual ,beS- uporedili bis(o dva registra to o( ID faze da bis(o vid%eli da li su %edna i. Dedna ost se (o)e prov%eriti a o prvo izvr*i(o opera&i%u Kekskluzivno ili n%ihovih odgovara%uih bita, a zati( opera&i%u Kili na rezultate. Po(%eran%e prov%ere granan%a u ID fazu i(pli&ira dodatan hardver ,forwarding i hazard dete&tion unit-, po*to grana o%a zavisi od rezultata o%i %e %o* uvi%e u pipeline'u, (ora raditi a o treba sa ovo( opti(iza&i%o(. Dva su o(pli ovana fa tora: #. 1o o( ID faze, (ora(o de odirati instru &i%u, odluiti da li %e potrebno pre(ostiti %edini&u za prov%eru %edna osti, i zavr*iti pored%en%e %edna osti, ta o da a o %e instru &i%a zapravo granan%e, (o)e(o postaviti vri%ednost PE na adresu destina&i%e granan%a. Prosl%ed%ivan%e

za operande granan%a %e rani%e bilo posao :;0 prosli%ed%iva e logi e, ali uvod%en%e %edini&e za ispitivan%e %edna osti u ID fazi zahti%eva novu prosli%ed%iva u logi u. .. Po*to su vri%ednosti za pored%en%e od granan%a potrebne to o( ID faze, ali se (ogu generisati i asni%e, (ogue %e da se dogodi data hazard, *to e zahti%evati novi stall. 2a pri(%er, a o :;0 instru &i%a, o%a neposredno prethodi instru &i%i granan%a, zapravo proizvodi rezultat o%i e biti operand za pored%en%e u grani, bie potreban stall, po*to e @A faza za :;0 instru &i%u doi na on ID ta ta grane.

0pr os ovi( te* oa(a, po(%eran%e izvr*en%a grane u ID fazu %e pobol%*an%e po*to s(an%u%e &i%enu na sa(o %ednu instru &i%u a o dolazi do granan%a, t%. onu o%a se trenutno fet&hu%e. 9a odstran%ivan%e instru &i%a u IF fazi, doda%e(o ontrolnu lini%u, nazvanu IF.Flush, o%a e instru &i%s o pol%e IF"ID pipeline registra postaviti na H. KPra)n%en%eL registra transfor(i*e fet&hovanu instru &i%u u nop, instru &i%u o%a ne (i%en%a stan%e.

D<na(i& bran&h predi&tion


Pretpostav a da nee doi do granan%a %e %edan od %ednostavnih obli a bran&h predi &i%e, odnosno predi &i%e granan%a. 0 to( slua%u predvid%a(o da nee doi do granan%a, i iz pipeline'a u loni(o sve ostalo u oli o nis(o u pravu. 9a %ednostavan pipeline od I faza, ta av pristup %e v%erovatno ade vatan. >od slo)eni%ih pipeline'a, &i%ena se poveava sa bro%e( ta tova. 9ato, ada se radi o agresivno( pipeline'u, %ednostavna stati a predvid%an%a &e protraiti previse resursa. Dedan od pristupa bi (ogao biti da se potra)i adresa instru &i%e a o bi se vid%elo da li %e do*lo do granan%a zadn%i put ada %e instru &i%a izvr*ena, i u to( slua%u, da se pone sa fet&hovan%e( novih instru &i%a sa istog (%esta ao i pro*log puta. +va tehni a se zove d,na!ic branch prediction. 8ogua i(ple(enta&i%a tog pristupa %e bran&h predi&tion buffer,buffer za predi &i%u granan%a- ili bran&h histor< table,tabela istori%e granan%a-. 6ran&h predi&tion buffer %e (ala (e(ori%a inde sirana di%elo( adrese bran&h instru &i%e. 8e(ori%a sadr)i i %edan bit o%i po azu%e da li %e u s ori%o% pro*losti do*lo do granan%a. +vo %e na%%ednostavni%a vrsta bufera? (i zapravo ne zna(o da li %e predi &i%a ona prava C (ogue %e da %e to predi &i%a ne e druge grane o%a i(a isti niz adresnih bita. 8ed%uti(, ovo ne utie na tanost. Predi &i%a %e sa(o po u*a%, za o%i se pretpostavl%a da %e taan, ta o da fet&hing poin%e u to(, predvid%eno( prav&u. : o se ispostavi da %e pretpostav a netana, netano predvid%ene instru &i%e se bri*u, predi &ioni bit se invertu%e, a zati( se prava se ven&a fet&hu%e i izvr*ava.

+pisana #'bitna predi &iona *e(a i(a i (anu: a ia o s oro uvi%e dolazi do granan%a na to( (%estu, na%v%erovatni%e e(o dva puta pogre*no pretpostaviti, u(%esto %edno(, ada ne dolazi do granan%a. 0 idealno( slua%u, tanost predi tora bi odgovarala uestanosti usp%e*nog granan%a, ada su u pitan%u one instru &i%e o%e u veli o( bro%u slua%eva zaista dovode do granan%a ,npr. petl%e-. Da bi se u lonile ove slabosti, esto se oristi predi &i%a uz po(o . bita. 0 ovo% *e(i, pretpostav a (ora biti netana dva puta, pri%e nego *to e biti pro(i%en%ena. 2a sli&i #I. %e pri azan di%agra( stan%a za .'bitnu predi &ionu *e(u.

Slika 15.

6ran&h predi&tion buffer (o)e biti i(ple(entiran ao (ali, spe&i%alan buffer o( bi se pristupalo pre o adrese instru &i%e to o( IF pipeline faze. 0 oli o se pretpostavi da e doi do granan%a, fet&hing poin%e od &il%a grane i( vri%ednost PE postane poznata? to (o)e biti a i u ID fazi. 0 suprotno(, se ven&i%alan fet&hing i izvr*avan%e se nastavl%a%u. 0 oli o se ispostavi da %e pretpostav a bila netana, predi &ioni biti se (i%en%a%u ao *to %e pri azano na sli&i #I.

-z.zeci (e/ceptions)

Do* %edan obli instru &i%a:

&ontrol hazarda su i izuzeci. 2a pri(%er, pretpostavi(o da sl%edea

add $9, $10, $9 i(a arit(eti i overflow. 2a on ove instru &i%e, treba od(ah preba&iti ontrolu di%elu o%i obrad%u%e izuzet e, %er ne )eli(o da vri%ednost o%a ni%e validna onta(inira druge registre ili (e(ori%u. >ao *to s(o to radili za slua% ada dolazi do granan%a, treba iz pipeline'a izba&iti sve instru &i%e o%e sli%ede, i poeti fet&hing instru &i%a sa nove adrese. >oristie(o isti (ehaniza( o%i s(o oristili i rani%e za granan%e, ali ova% put izuzeta e izazvati i deaserta&i%u ontrolnih lini%a. >ada s(o se bavili pogre*ni( pretpostav a(a o granan%u, vid%eli s(o a o izba&iti instru &i%u u IF fazi, ta o *to %e pretvori(o u nop. Da bis(o iz pipeline'a izba&ili instru &i%u u ID fazi, oristi(o (ultiple sor o%i %e ve u ID fazi, a o%i ontrolne signale postavl%a na nulu, radi u(etan%a (%ehuria. 2ad novi( ontrolni( signalo(, nazvani( ID.Flush, i stall signalo( iz hazard dete&tion %edini&e, se izvr*i opera&i%a ili , da bi se izba&ila instru &i%a u ID fazi. Da bi se izba&ila ona u @A fazi, oristi(o novi signal nazvan @A.Flush da bis(o nat%erali nove (ultiple sore da ontrolne lini%e postave na H. 9a zapoin%an%e fet&hing'a instru &i%a sa lo a&i%e RHHH H#RHheB ,*to %e lo a&i%a izuzet a za arit(eti i overflow- %ednostavno treba dodati %o* %edan ulaz PE (ultiple soru o%i *al%e RHHH H#RHheB u PE. Sli a #O. ilustru%e ove pro(%ene. +va% pri(%er u azu%e na proble( sa izuze&i(a: a o ne zaustavi(o izvr*avan%e u sred instru &i%e, progra(er nee (oi da vidi prvobitnu vri%ednost registra 45 o%a %e i izazvala overflow zato *to e biti u lon%ena %er %e u isto vri%e(e to i &il%na destina&i%a za add instru &i%u. 9bog pa)l%ivog planiran%a, overflow izuzeta %e dete tovan to o( @A faze? zbog toga (o)e(o oristiti @A.Flush signal da spri%ei(o instru &i%u u @A fazi da upi*e svo% rezultat u 76 fazi. 8nogi izuze&i zahti%eva%u da instru &i%u o%a %e izazvala po%avu izuzet a izvr*i(o ao da ni%e

doslo do toga. 2a%la *i nain da se to postigne %e da se instru &i%a odstrani, a zati( se ponovo po rene na on sto %e izuzeta u lon%en.

Sli a #O.
Datapath sa ontrolni( signali(a za handlovan%e izuzeta a. =lavni doda&i u l%uu%u novi ulaz, vri%ednosti RHHH H#RHheB, na (ultiple soru o%i obezb%ed%u%e novu vri%ednost za PE? Eause registar za sni(an%e uzro a izuzet a? i @B&eption PE registar za uvan%e adrese instru &i%e o%a %e izazvala izuzeta .

9adn%i ora %e uvan%e adrese instru &i%e o%a %e izazvala po%avu izuzet a u @B&eption Progra( Eounter ,@PE-. 0 realnosti, ustvari sauva(o adresu TG, ta o da dio za obradu izuzeta a (ora prvo oduzeti G od sauvane vri%ednosti.

2e i drugi uzro&i izuzeta a (ogu biti: 9aht%evi I"+ ured%a%a Pozivan%e servisa operativnog siste(a iz orisni og progra(a >ori*en%e nedefinisane instru &i%e >var na hardveru

I(a%ui u vidu da su u sva o( ta tu a tivne etiri instru &i%e, izazov %e povezati izuzeta sa pravo( instru &i%o(. I %os, vi*e izuzeta a se (o)e desiti istovre(eno u to u %ednog ta ta. 2or(alno r%e*en%e bi bilo da se postave prioriteti, ta o da %e la o odluiti o%i e se prvi obrad%ivati? ova strategi%a %e dobra i za pipeline pro&esore. >od veine 8IPS i(ple(enta&i%a, hardver sortira izuzet e, ta o da se na%rani%a instru &i%a pre ida. 9aht%evi ulazno'izlaznih ured%a%a i varovi od hardvera nisu povezani sa odred%eno( instru &i%o(, ta o da i(ple(enta&i%a (o)e biti fle sibilna u pogledu toga ada pre inuti pipeline. 9ato ori*ten%e (ehaniza(a za druge izuzet e fun &ionise sasvi( dobro. @PE hvata adresu pre inute instru &i%e, a 8IPS Eause registar sni(a sve (ogue izuzet e u %edno( ta tu, ta o da softver za izuzet e (ora povezati izuzeta sa instru &i%o(. Va)an trag %e poznavan%e u o%o% pipeline fazi %e (ogue napraviti o%i tip izuzet a. 2a pri(%er, nedefinisana instru &i%a se ot riva u ID fazi, a pozivan%e operativnog siste(a u @A fazi. Izuze&i se sa upl%a%u u Eause registru ta o da hardver (oze pre idati instru &i%e na osnovu sli%edeih izuzeta a, na on *to se zavr*i obrada prvog.

0akl".1ak2
Posto%e stru turni hazardi, data hazardi i &ontrol hazardi. Data hazardi su esta po%ava, usporava%u pipeline, a to )eli(o da izb%egne(o. Data hazarde r%e*ava(o uz po(o dvi%e tehni e: forwarding i stalls, i to su sasvi( pouzdane (etode. 6ran&h hazardi ni%esu ta o esti ao data hazardi, i la *e se r%e*ava%u, uz po(o zadr)avan%a instru &i%a u pipeline'u, ili predvid%an%a o%i e biti ishod naredbe. +vo %e naroito orisno od petl%i, od o%ih se isti set naredbi ponavl%a vi*e puta, pa se ista pretpostav a (o)e postaviti sve do ne dod%e do gre* e. 1reba izb%egavati zadr)avan%e, %er poveava u upno vri%e(e izvr*avan%a oda.

3iterat.ra2
#.Eo(puter organization and design, /ardware"software interfa&e C David :. Patterson, Dohn ;. /enness< .. www.web.&s.dal.&a"U(he<wood"ESEI$#.#"Pipe"H.'Data/azards.pdf $. www.sr.wi ipedia.org"wi i">onfli tiVproto&neVobrade G. www.&s.&&su.edu"U(ar ov"&&suV&ourses"$RIS;#I.pdf I. www.iitg.ernet.in"asahu"&s...";e&ts";e&.$.pdf O. www.plRR!.pairlitesite.&o("tea&h"&s$I.'HI'spring"le&tures";e&ture#..pdf

You might also like