26.4.2011
HAZARDI UPRAVLJANJA
4. PROTOČNA ORGANIZACIJA PROCESORA Hazardi upravljanja Nebojša Milenković Elektronski fakultet u Nišu
• Hazardi upravljanja javljaju se pri izvršavanju instrukcija za upravljanje tokom programa. • Sa stanovišta protočnog izvršavanja instrukcija iz ove grupe, instrukcije grananja najbolje reprezentuju probleme koji se pri tome javljaju. Naime, izvršenje instrukcije grananja uključuje i č izračunavanje j ((adrese) d ) odredišta d dišt grananja j i ishoda uslova grananja, i po tome je instrukcija grananja najopštiji predstavnik grupe instrukcija za upravljanje tokom programa. • Zato ćemo u razmatranju ovog problema dalje govoriti o hazardima grananja umesto o hazardima upravljanja. N. Milenković, Arhitektura i organizacija računara 2011
Instrukcija grananja i njeni sledbenici
• Hazardi grananja nastaju kao posledica neblagovremenog određivanja adrese instrukcije j će biti izvršena p posle instrukcije j g grananja. j koja • Razmotrimo niz od pet instrukcija Inst(i),...,Inst(i+4), pri čemu je Inst(i) instrukcija uslovnog grananja, sa Inst(i+3) kao odredištem grananja (slika 4.18). Instrukcije (i+1), (i+2),..., su sekvencijalni (statički) sledbenici instrukcije grananja. N. Milenković, Arhitektura i organizacija računara 2011
Izvršavanje instrukcija grananja bez posebnih mera
Instrukcija grananja i njeni sledbenici • Ako je Inst(i) pribavljena u taktnom ciklusu 1, u sledećem taktnom ciklusu treba pribaviti instrukciju koja (dinamički) sledi za instrukcijom grananja. Ako se grananje ne obavi, to će biti Inst(i+1), a ako se grananje obavi, to će biti Inst(i+3).
N. Milenković, Arhitektura i organizacija računara 2011
Kašnjenje u pribavljanju instrukcije sa odredišta grananja • U našem protočnom procesoru ishod uslova grananja (ispunjen, nije ispunjen) i adresa odredišta grananja određuju se u EX stepenu u TC3. Prema tablici aktivnosti po stepenima protočnog procesora (tabela 4.3) u TC4 se adresom sledbenika Inst(i) puni PC, da bi u TC5 ta instrukcija bila pribavljena. • Dakle, u slučaju obavljenog grananja, instrukcija sa odredišta grananja može se pribaviti tek u taktnom ciklusu u kome je instrukcija grananja u WB fazi.
N. Milenković, Arhitektura i organizacija računara 2011
N. Milenković, Arhitektura i organizacija računara 2011
1
26.4.2011
Hazardi grananja
Mere za izbegavanje hazarda grananja
• Bez preduzimanja odgovarajućih mera u toku izvršenja instrukcija grananja, bile bi pribavljane i izvršavane instrukcije-sekvencijalni sledbenici instrukcije grananja. • Ako Inst(i+1) u svojoj četvrtoj fazi upisuje rezultat, dakle u TC5, što je slučaj sa instrukcijom Store, u slučaju obavljenog grananja izvršenje programa bilo bi nekorektno. • Opasnost od nekorektnog izvršenja programa posle instrukcije grananja naziva se hazard grananja.
• Šta možemo preduzeti da obezbedimo korektno izvršavanje programa na protočnom procesoru pri nailasku na instrukciju grananja? • U fazi dekodiranja j Inst(i) ( ) ((TC2)) ustanovljava j se da je to instrukcija grananja (slika 4.19). U tom taktnom ciklusu već se pribavlja Inst (i+1). Pribavljanje te instrukcije možemo zaustaviti (dakle nema ni pribavljanja sledećih instrukcija) sve do TC4, kada se PC puni adresom instrukcije koja će biti izvršena posle grananja.
N. Milenković, Arhitektura i organizacija računara 2011
N. Milenković, Arhitektura i organizacija računara 2011
Grananje sa zastojima do određivanja sledbenika grananja • Sa slike se vidi da su posle instrukcije grananja izgubljena tri taktna ciklusa: jedan zbog pribavljanja možda pogrešne instrukcije, i dva zbog zastoja do pribavljanja instrukcije sledbenika grananja. • Ova izgubljena tri taktna ciklusa posmatraćemo kao dodatnu cenu grananja. • Ovo rešenje zvaćemo grananjem sa zastojima do određivanja sledbenika grananja.
N. Milenković, Arhitektura i organizacija računara 2011
N. Milenković, Arhitektura i organizacija računara 2011
Osobenosti ovih zastoja
Kašnjenje grananja
• Zastoji koji su potrebni u pribavljanju instrukcije-sledbenika grananja razlikuju se od zastoja potrebnih za izbegavanje hazarda podataka. • Izbegavanje hazarda grananja zahteva zastoje u pribavljanju instrukcijedinamičkog sledbenika grananja, pri čemu se ignoriše već pribavljena instrukcijasekvencijalni sledbenik grananja.
• Broj taktnih ciklusa od prve faze instrukcije grananja do pribavljanja instrukcijegrananja, j , isključujući j j oba ova sledbenika g taktna ciklusa, naziva se kašnjenje grananja. • U našem protočnom sistemu kašnjenje grananja iznosi tri taktna ciklusa.
N. Milenković, Arhitektura i organizacija računara 2011
N. Milenković, Arhitektura i organizacija računara 2011
2
26.4.2011
Performanse procesora uz hazarde grananja • Ovo pokazuje da izvršavanje instrukcija grananja u protočnim procesorima vodi pogoršanju propusnosti procesora, koje se ogleda u povećanju prosečnog broja CPI na vrednosti veće od jedinice. • Evo jednostavnog analitičkog modela koji omogućuje izračunavanje realne srednje vrednosti CPIb koja uključuje zastoje zbog grananja. • Idealni protočni procesor ima CPIi =1
Model za ocenu performansi • Neka su: • pb - verovatnoća da je neka instrukcija uslovno grananje, • pt - verovatnoća da je grananje obavljeno, • cbt - cena obavljenog grananja (broj izgubljenih taktnih ciklusa kada se grananje obavlja). • cbn - cena neobavljenog grananja (broj izgubljenih taktnih ciklusa kada se grananje ne obavlja).
CPIb =(1-pb )1+pb[pt(1+cbt )+(1-pt )(1+cbn )]
N. Milenković, Arhitektura i organizacija računara 2011
N. Milenković, Arhitektura i organizacija računara 2011
Posebni slučajevi Posle sređivanja, ovaj izraz poprima oblik
CPIb =1+pb[ptcbt +(1-pt )cbn] U slučaju kada je cbn = 0, gornji izraz dobija oblik
CPIb =1+pbptcbt =1+pbtcbt U ovom izrazu pbt je verovatnoća pojavljivanja instrukcija uslovnog grananja sa obavljenim grananjem.
N. Milenković, Arhitektura i organizacija računara 2011
Primer • Ako je učešće instrukcija uslovnog grananja u ukupnom broju izvršenih instrukcija 20% (pb =0,2) 0,2) i cena grananja je 3 taktna ciklusa, koliki je prosečan broj taktnih ciklusa po instrukciji realnog protočnog sistema sa zastojima do razrešenja ishoda grananja?
N. Milenković, Arhitektura i organizacija računara 2011
Vrednosti parametara modela • Prema merenjima obavljenim na grupama benčmark programa SPECint95 i SPECfp95, verovatnoće pojavljivanja (učešće) instrukcija uslovnog grananja i skokova u ovim programima su: za programe sa celobrojnim operandima: • • •
uslovna grananja unapred uslovna grananja unazad skokovi
13% 3% 4% .
pt = 60% pt= 85%
za programe sa FP operandima: • • •
uslovna grananja unapred uslovna grananja unazad skokovi
7% 2% 1%. N. Milenković, Arhitektura i organizacija računara 2011
Rešenje • U protočnom sistemu sa zastojima do razrešenja ishoda grananja, broj taktnih ciklusa zastoja nezavisan je od ishoda grananja. • Uzmimo zato da je u izrazu za CPIb cbt =cbn =cb =3. • Prosečan broj taktnih ciklusa po instrukciji CPIb uvećava se na CPIb =1+pb[ptcbt +(1-pt )cbn ]= 1+pb[ptcb +(1-pt )cb ]=1+pbcb =1+0,2⋅3=1,6 taktna ciklusa. N. Milenković, Arhitektura i organizacija računara 2011
3
26.4.2011
Načini za sniženje cene grananja Postoji više načina za sniženje cene grananja u protočnim sistemima. Neki od njih su: • određivanje j ishoda g grananja j i odredišta grananja u stepenu što bližem stepenu pribavljanja instrukcija, • pretpostavka da grananje neće biti obavljeno, • predviđanje grananja, i drugi.
Razrešenje grananja u stepenu što bližem stepenu pribavljanja instrukcija • Hardver za izračunavanje adrese odredišta grananja i proveru ispunjenja uslova grananja možemo premestiti iz EX stepena u ID stepen. • Pošto ALU mora ostati u EX stepenu, za proveru ispunjenja uslova grananja u ID stepenu uvedimo dodatni blok uslova. Ovako izmenjena mikroarhitektura protočnog procesora prikazana je na sledećoj slici.
N. Milenković, Arhitektura i organizacija računara 2011
N. Milenković, Arhitektura i organizacija računara 2011
Putevi podataka modifikovanog protočnog procesora
Dodatno ograničenje
Add2 rez
Cond
Add2
Pod
Pro{ Ra Rb
IPa
UlPod IPb
.
0
ALU 1
.
. Memorija Adr
1
podataka
0
UlPod MUX
N. Milenković, Arhitektura i organizacija računara 2011
ALUrez
IzlPod
1
Inst [15:11] Inst [20:16]
IF/ID
MUX
Rw
.
.
32
Polje registara
Adr
. .
Programska memorija
PC .
16
MUX
.
<< 2 Inst [31:0]
1 MUX 0
Zero
4
Add1
• Ušteda u implementaciji bloka uslova i vremena za proveru ispunjenja uslova grananja opravdavaju rešenje da se uslov grananja svede na jednakost (nejednakost) sadržaja registra nuli. • Zato je blok uslova na slici označen sa Zero.
0 ID/EX
EX/ME
ME/WB
N. Milenković, Arhitektura i organizacija računara 2011
Uslovi za sniženje cene grananja
• Ovim rešenjem ALU, koja ostaje u EX stepenu, rasterećuje se funkcije provere uslova grananja. Ako uz to obezbedimo da se ovako izračunata adresa odredišta grananja upiše u PC u toku ID faze instrukcije grananja, broj izgubljenih taktnih ciklusa zbog grananja može se smanjiti sa tri na samo jedan.
N. Milenković, Arhitektura i organizacija računara 2011
4
26.4.2011
Komponente aktivne u IF fazi instrukcije BEQZ Add2 rez
Komponente aktivne u ID fazi instrukcije BEQZ
Cond
Add2
0
UlPod
.
.
Adr
Pod
Rb Rw
IPa
UlPod IPb
.
0
ALU 1
.
. Memorija Adr
IzlPod
podataka
0
UlPod 1
Inst [15:11] Inst [20:16]
EX/ME
ALUrez
1
MUX
MUX
.
0 ID/EX
Ra
MUX
Adr
Memorija podataka
1
Inst [15:11] Inst [20:16]
IF/ID
ALUrez
0
1
IzlPod
MUX
.
.
Polje registara
ALU 1
.
32
16
. .
Programska memorija
UlPod IPb
.
0
Instt [31:0]
IPa
MUX
Rb
4
Add1
Ra
Rw
.
.
32
MUX
.
. .
Pro{
Polje registara
Inst [31:0]
.
16
Zero
<< 2 1
0
ME/WB
IF/ID N. Milenković, Arhitektura i organizacija računara 2011
ID/EX
EX/ME
ME/WB
N. Milenković, Arhitektura i organizacija računara 2011
Objašnjenje uz prethodnu tabelu • Napomenimo i ovde da se u IF fazi paralelno vrši pribavljanje nove instrukcije i određivanje adrese sledeće instrukcije. • Pošto se aktivnosti u IF stepenu obavljaju za sve i t k ij to instrukcije, t implementacija i l t ij člana čl "if ((IF/ID.op==branch) AND (Reg[IF/ID.IR25..21 ] rel 0) " za instrukcije koje nisu uslovna grananja mora dati vrednost koja odgovara neispunjenju uslova grananja. N. Milenković, Arhitektura i organizacija računara 2011
Objašnjenje uz prethodnu tabelu
Primer hazarda i njegovog razrešenja
• Taj zahtev implementira se obavljanjem logičke “I” operacije između signala Cond iz bloka Zero i upravljačkog signala Branch. Ovo obezbeđuje da se kao sledeća instrukcija pribavi instrukcija sa adresom PC+4. • Upravljački signal Branch koristi se u ID stepenu, a ne u ME stepenu kao na slici 4.4. • Sve aktivnosti u okviru instrukcija uslovnog grananja obavljaju se u IF i ID stepenu, tako da se u tabeli 4.7 u vrsti za EX stepen ne javlja kolona Branch.
• Ovo rešenje može uvesti hazard podataka između instrukcije grananja i prethodne instrukcije, čiji se rezultat koristi u instrukciji grananja Evo takvog primera i prikaza izvršenja grananja. instrukcije grananja u takvim slučajevima. • Ovde se podrazumeva da postoji još jedan put premošćavanja sa izlaza EX/ME.ALUrez na ulaz u blok odlučivanja Zero u ID stepenu preko dodatnog multipleksera.
N. Milenković, Arhitektura i organizacija računara 2011
N. Milenković, Arhitektura i organizacija računara 2011
5
26.4.2011
Primer hazarda i njegovog razrešenja
Pretpostavka da se grananje uvek obavlja • Rešenje kada polazimo od toga da se grananje uvek obavlja zahteva zastoj u prelasku na sledeću instrukciju do izračunavanja adrese odredišta grananja. • U razmatranom protočnom procesoru taj zastoj traje jedan taktni ciklus. Istovremeno je poznat i ishod uslova grananja.
N. Milenković, Arhitektura i organizacija računara 2011
N. Milenković, Arhitektura i organizacija računara 2011
Pretpostavka da se grananje uvek obavlja
Pretpostavka da grananje neće biti obavljeno
• Šta kada uslov grananja ipak nije ispunjen? Tada se pribavlja instrukcijasekvencijalni sledbenik instrukcije g grananja. j • Cena obavljenog i neobavljenog grananja je tada ista i iznosi cbt = cbn = 1 taktni ciklus. • Osim umetanja zastoja, ovo rešenje ne unosi druge komplikacije u rad protočnog procesora.
• Rešenje kada polazimo od toga da se grananje nikada ne obavlja dopušta da se posle instrukcija grananja uvek nastavi sa pribavljanjem instrukcija sa puta neobavljenog grananja, što ne zahteva zastoje. • Po razrešenju ishoda grananja, ako do grananja zaista ne dolazi, nastavlja se sa izvršenjem pribavljenih instrukcija.
N. Milenković, Arhitektura i organizacija računara 2011
N. Milenković, Arhitektura i organizacija računara 2011
Pretpostavka da grananje neće biti obavljeno
Pretpostavka da grananje neće biti obavljeno
• Ako, međutim, do grananja dođe, moraju se odbaciti pribavljene instrukcije, i započeti novo pribavljenje od instrukcijeinstrukcije odredišta grananja. • Cena neobavljenog grananja je cbn = 0. Cena obavljenog grananja za naš protočni procesor je cbt = 1.
• Ovo rešenje zahteva da se pri obavljenom grananju ponište pribavljene instrukcije sa puta neobavljenog grananja, i to pre no što eventualno nekorektno promene stanje programa. • U našem protočnom sistemu te opasnosti nema, obzirom na malo kašnjenje grananja (od jednog taktnog ciklusa).
N. Milenković, Arhitektura i organizacija računara 2011
N. Milenković, Arhitektura i organizacija računara 2011
6
26.4.2011
Primer 4.6 Neka je u nekom programu učešće instrukcija grananja 20%, od kojih se 65% obavlja, a 35% se ne obavlja. Koji od dva razmotrena pristupa (pretpostavka da se grananje uvek obavlja ili da se nikada ne obavlja) daju bolje performanse protočnog procesora? Zanemarite druge moguće uzroke zastoja. N. Milenković, Arhitektura i organizacija računara 2011
Rešenje primera 4.6 • Za pristup sa pretpostavkom da se grananje nikada ne obavlja cbt =1 i cbn= 0, pa je • CPIbn= 1+pb[ptcbt+(1-pt)cbn] = • =1+p 1 pb[ptcbt+(1-p (1 pt)0] )0]=1+p 1 pbptcbt= • 1+0,2×0,65×1 = 1,13 taktna ciklusa. • Dakle, nižu prosečnu vrednost CPI-a, pa time i bolje performanse procesora, daje pristup sa pretpostavkom da se grananje nikada ne obavlja. N. Milenković, Arhitektura i organizacija računara 2011
Statičko predviđanje grananja • Predviđanje ishoda grananja može biti statičko i dinamičko. • Statičko predviđanje vrši se takozvanim profilisanjem programa. • To je višekratno prethodno izvršavanje programa sa zadatim ulaznim podacima, pri kome se za svaku izvršenu instrukciju grananja beleže većinski ishodi grananja. • Ovako prikupljeni ishodi grananja pridružuju se, u vidu dodatnog bita, svakoj instrukciji grananja u fazi kompilovanja programa.
N. Milenković, Arhitektura i organizacija računara 2011
Rešenje primera 4.6 Dato je pb=0,2, pt = 0,65 i pn= 0,35. • Za pristup sa pretpostavkom da se grananje uvek obavlja cbt=cbn=cb=1, pa je • CPIbt= 1+pb[ptcbt+(1-pt)cbn] = 1+pb[ptcb+(1-pt)cb] =1+pbcb= • =1+0,2×1= 1,2 taktna ciklusa.
N. Milenković, Arhitektura i organizacija računara 2011
Predviđanje grananja • Predviđanje ishoda grananja može doprineti smanjenju izgubljenih taktnih ciklusa zbog grananja. • predviđen ishod neobavljanje grananja grananja. • predviđen ishod obavljanje grananja (bafer odredišta grananja )
N. Milenković, Arhitektura i organizacija računara 2011
Dinamičko predviđanje grananja • Dinamičko predviđanje grananja zahteva poseban hardver, kojim se u toku izvršenja programa beleže ishodi izvršenih i t k ij grananja, instrukcija j ttakozvana k i t ij istorija grananja, i na osnovu nje predviđaju (tj. predskazuju) ishodi grananja pri sledećem izvršenju svake instrukcije grananja.
N. Milenković, Arhitektura i organizacija računara 2011
7
26.4.2011
Dinamičko predviđanje grananja • Pošto stvarni ishodi grananja mogu biti suprotni od predviđenih, moramo imati mehanizam za poništavanje dejstva pogrešno pribavljenih instrukcija. • Ispravno predviđanje grananja navedenim sredstvima može se postići u granicama od 80% - 97%.
N. Milenković, Arhitektura i organizacija računara 2011
8