Professional Documents
Culture Documents
Data Hazards, Stalls, Forwarding
Data Hazards, Stalls, Forwarding
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:
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.
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)
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.
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.
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:
or
$14, $15, $9
sw
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.
or
$14, $15, $9
sw
: 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.
1a t:
lw
$9,20($10)
and $11,$9,$12
or
$13,$9,$14
add $15,$11,$9
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)
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,$",$"
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.
+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)
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