Seminarski AKS

18
UNIVERZITET „ Džemal Bijedić Fakultet Informacijskih Tehnologija M O S T A R Predmetni nastavnik: Prof. Dr. Emir Humo Student: Vojislav Babić / DL Protočna organizacija procesora -Hazardi podataka ARHITEKTURA KOMPJUTERSKIH SISTEMA

Transcript of Seminarski AKS

Page 1: Seminarski AKS

UNIVERZITET „ Džemal Bijedić “

Fakultet Informacijskih Tehnologija

M O S T A R

Predmetni nastavnik:

Prof. Dr. Emir Humo

Student:

Vojislav Babić / DL

Protočna organizacija procesora-Hazardi podataka

ARHITEKTURA KOMPJUTERSKIH SISTEMA

Mentor: Leid Zejnilović

Page 2: Seminarski AKS

SUMMARY

This work is about process organisation run and contains explanations about data hazards, hazard division, the methods of hazard evasion and baypassing.

Ovaj rad govori o protočnoj organizaciji procesora, hazardima podataka, njihovoj podjeli, metodama izbjegavanja i premošćavanja.

22

Page 3: Seminarski AKS

SADRŽAJ

SUMMARY................................................................................................................... 2

SADRŽAJ..................................................................................................................... 3

Podjela hazarda podataka..........................................................................................4

Strukturni hazardi.................................................................................................................4

Hazardi podataka..................................................................................................................5

Klasifikacija hazarda podataka...................................................................................5

Otkrivanje hazarda podataka.....................................................................................6

Izbjegavanje hazarda podataka premošćavanjem......................................................6

Hazardi podataka koji se ne mogu izbjeći premošćavanjem......................................7

Izbjegavanje hazarda podataka planiranjem instrukcija.............................................8

Hazardi upravljanja..............................................................................................................8

ZAKLJUČAK...............................................................................................................13

LITERATURA..............................................................................................................14

33

Page 4: Seminarski AKS

Podjela hazarda podataka

Pri izvršavanju instrukcija pri protočnom procesoru dolazi do situacija kada ne ide sve tako glatko već se pri izvršavanju nekih instrukcija javljaju zastoji. Ovi zastoji dovode do toga da se u nekim taktnim ciklusima nekompletira nijedna instrukcija što povećava prosječan broj taktnih ciklusa po instrukciji (CPI) na vrijednost veću od 1.

Situacije pri radu protočnog procesora koji dovode do zastoja u njegovmo radu nazivamo hazardima.

Prema uzorku hazarda razlikujemo:- Strukturne hazarde- Hazarde podataka- Hazarde upravljanja

Strukturni hazardi (eng. structural hazards)

Strukturni hazardi nastaju zbog nedostatka neophodnih hardverskih resursa procesora za pribavljanje i izvšavanje bez zastoja svih mogućih kombinacija i instrukcija prisutnih u stepenima protočnog procesora. Zbog toga dvije instrukcije koje se nalaze u različitim stepenima mogu pokušati da istovremeno koriste isti resurs koji je inače nedjeljiv.Pošto pojava strukturnih hazarda pogoršava performanse protočnih procesora postavlja se pitanje da li ih treba eliminisati po svaku cijenu.

Pojava strukturnih hazarda može se eliminisati na više načina:- Uvođenjem više kritičnih funkcionalnih jedinica kao što su odvojene

memorije za programe i podatke, sabirači, množači itd.

44

Page 5: Seminarski AKS

- Povećanjem broja portova za upis i čitanje kod polja registara- Protočnom organizacijom kritičnih funkcionalnih jedinica na kojima

obrada traje više taktnih ciklusaSvako od ovih riješenja ima svoju cijenu, zato treba odmjeriti ulaganja potrebna za elimisanje ovakvih hazarda, nasuprot poboljšanja performansi protočnog procesora koje se time postiže. Pri odlučivanju da li neku funkcionalnu jedinicu protočno organizovati treba imati u vidu sljedeće.Protočno organizovana funkcionalna jedinica u poređenju sa neprotočnom funkcionalnom jedinicom ima dužu latenciju. Ovo može povećati učestanost pojavljivanja hazarda podataka što takođe pogoršava performanse procesora. To je razlog što se u nekim procesorima primjenjuje neprotočna funkcionalna jedinica, iako ona za neke kombinacije instrukcija dovodi do strukturnih hazarda.

Hazardi podataka (eng. data hazards)

Kod njih se javlja zavisnost po podacima (eng. data dependence). Hazard podataka pripada tipu čitanja nakon upisa.To se na protočnom procesoru može postići tako što ćemo pribavljanje operanda iz R3 odložiti do taktnog ciklusa u kome smo sigurni da R3 sadrži novu vrijednost upisanu instrukcijom SUB

Klasifikacija hazarda podataka

Posmatramo dvije instrukcije Ij i Ik između kojih postoje zavisnosti po podacima preko registra Ri pri čeku Ik slijedi za Ij. Ako se ove dvije instrukcije istovremeno nađu u protočnom procesoru mogu se javiti slijedeći hazardi podataka:

- Čitanje nakon upisa (eng. read after write – RAW) – instrukcija Ik pokušava da pročita izvršni operand iz Ri pre nego što Ij obavi upis tako da Ik nekorektno uzima staru vrijednost podatka. Ovo je najčešći tip hazarda podataka. Zavisnost po podacima koja dovodi do ovog tipa hazarda naziva se prava zavisnost.

- Upis nakon upisa (eng. write after write – WAW) – Ik pokušava da upiše operand prije nego što je upisala Ij, upisi su obavljeni obrnutim redoslijedom ostavljajući u odredištu određenu vrijednost sa Ij umjesto vrijednosti određene sa Ik. Zavisnost po podacima koja dovodi do ovog tipa hazarda naziva se izlazna zavisnost. Ovaj hazard je prisutan samo u protočnim sistemima koji vrše upis u dva ili više stepena ili dopuštaju da instrukcija Ik nastavi napredovanje iako je instrukcija Ij zaustavljena. Dopuštanje upisa u različitim stepenima protočnog sistema uvodi druge probleme, pošto dvije instrukcije mogu pokušati upise u istom taktnom ciklusu.

55

Page 6: Seminarski AKS

- Upis nakon čitanja (eng. write after read – WAR) – Ik pokušava upis u odredište prije nego što ga je pročitala Ij, tako da Ij nekorektno dobija novu vrijednost. Zavisnost po podacima koja dovodi do ovog tipa hazarda naziva se antizavisnost. WAR hazard nastaje kada ima instrukcija koje rano upisuju rezultat i drugih instrukcija koje kasno čitaju operande u protočnom sistemu. Zbog prirodne strukture protočnog sistema koji tipično čita vrijednost prije nego što upiše rezultate, takvi hazardi su rijetki. Protočni sistemi za kompleksne skupove instrukcija koje podržavaju autoinkrementno adresiranje i zahtjevaju da operandi bivaju pročitani kasno u protočnom sistemu mogu kreirati WAR hazard!

Otkrivanje hazarda podataka

Hazardi podataka nastaju pri protočnom izvršenju instrukcija između kojih postoji zavisnost po podacima.

Izbjegavanje hazarda podataka premošćavanjem

Upoznali smo opasnost od hazarda podataka i način na koji se hazardi podataka mogu izbjeći. Još jedan i to vrlo efikasan način da se hazardi podataka izbjegnu sastoji se u dostavljanju izorišnih operanada zavisnim instrukcijama prije nego šo ih instrukcije proizvođača rezultata upišu u odredišne registre. Ta tehnika izbjegavanja hazarda podataka poznata je kao premošćavanje (eng. forwarding, bypassing). Upravljanje premošćavanjem (da li će ga biti i kojim putem) svodi se na adresiranje multipleksera na ulazima ALU-a i memorije podataka. Adresne signale za ove multiplksere generiše jedinica za upravljanje premošćavanjem (eng. forwarding unit) smještena u okviru EX stepena.

66

Page 7: Seminarski AKS

Hazardi podataka koji se ne mogu izbjeći premošćavanjem

Izložen tehnikom premošćavanja ne mogu se izbjeći baš svi hazardi podataka. Situacija koja zahteva zastoj u instrukciji koja neposredno slijedi instrukciju LOAD, naziva se blokiranje punjenjem (eng. load interlock).U mnogim savremenim protočnim procesorima pribavljanje operanada iz memorije traje više taktnih ciklusa. Ovo je posledica rada procesora na sve višim učestanostima sad već reda GHz i nepostojanja memorija koje bi radile pri tim brzinama. potreba za zastojem u instrukciji koja neprestano slijedi za instrukcijom LOAD, pojačana je u takvim protočnim sistemima. Trajanje zastoja bi se produžilo na više taktnih ciklusa što je određeno latencijom operacije pribavljanja operanada. Pod latencijom operacije podrazumijevamo broj taktnih ciklusa koji mora proteći o početka operacije do korišćenja rezultata te operacije u drugoj instrukciji.Otkrivanje potrebe za zastojem poslije instrukcije LOAD vrši se takođe hardverom u okviru ID stepena. Umetanje zastoja nakon punjenja neophodno je ako su ispunjeni uslovi navedeni u tabeli.

77

Page 8: Seminarski AKS

Izbjegavanje hazarda podataka planiranjem instrukcija

Do pojave hazarda podataka dolazi kada se par instrukcija Ij i Ik između kojih postoji zavisnost po podacima nalazi se rastojanje ne većem od dužine lanca stepena omeđenih stepenom koji koristi rezultat i stepena koji proizvodi taj rezultat. To se može postići premještanjem nekih zavisnih instrukcija s svojih polaznih pozicija u pozicije između ovog para instrukcija. Pri tome se mora voditi računa da se time ne promijeni algoritam koji program implementira. Ovakav način izbjegavanja hazarda podataka naziva se planiranje instrukcijal (eng. instruction scheduling). Ovaj kriterijum bezbjednog rastojanja između nezavisnih instrukcija postaje znatno blaži pri korišćenju premošćavanja. Kako smo to već zaključili pri premošćavanju opasnost od hazarda postoji samo poslije instrukcije LOAD i to samo ako zavisna instrukcija neposredno slijedi za njom. Planiranje instrukcija obavljju kompilatori.

Hazardi upravljanja:

Hazardi upravljanja javljaju se pri izvršavanju instrukcija za upravljanje tokom programa. Podsjetim se da u tu grupu spadaju instrukcije grananja, skokova, poziva procedura i povratka iz procedura. Sa stanovišta protočnog izvršavanja instrukcija iz ove grupe instrukcije granjanja najbolje reprezentuju probleme koji se pri tome javljaju. Naime izvršenje instrukcije grananja uključuje izračunavanja (adrese), odredišta grananja i ishoda uslova grananja i po tome je instrukcija grananja najopštiji predstavnih instrukcija za upravljanje tokom programa. Hazardi grananja nastaju kao posledica neblagovremenog određivanja adrese instrukcije koja će biti izvršena poslije instrukcije grananja. Opasnost od nekoretnog izvršenja programa poslije instrukcije grananja naziva se hazard grananja.Zastoji koji su potrebni u probavljanju instrukcije-sledbenika grananja razlikuju se od zastoja potrebnih za izbegavanje hazarda podataka.

88

Page 9: Seminarski AKS

Zastojima zbog hazarda podataka odlaže se završetak određene faze instrukcije do prestanka uslova za nastanak hazarda. Izbegavanje hazarda grananja zahteva zastoje u pribavljanju instrukcije dinamičkog sledbenika grananja pri čemu se ignoriše već pribavljena instrukcija-sekvencijalni sledbenik grananja. Broj taktnih ciklusa od prve faze instrukcije grananja do pribavljanja instrukcije sledbenika grananja, isključujući oba ova taktna ciklusa, nziva se kašnjenje grananja (eng. branch delay). Ovo pokazuje da izvršavanje instrukcija grananja u protočnim procesorima vodi pogoršanju propusnosti procesora, koje se ogleda u povećanu prosečnog broja CPI na vrijednost veće od jedinice.

Postoji više načina za sniženje cene grananja u protočnim sistemima. Neka od njih su:

- Određivanje ishoda grananja i odredišta grananja u stepenu što bližem stepenu pribavljanja instrukcija

- Pretpostavka da grananje neće biti obavljeno

- Zakašnjeno grananje

To je koncepcija koja obezbeđuje da se poslije instrukcije grananja, nezavisno od njenog ishoda, probavi k instrukcija s puta neobavljenog grananja, prije nego što se eventualno pređe na instrukciju –odredište grananja. Ovih k instrukcija , sekvencijalnih sledbenika instrukcije grananja, nalaze se u tzv. slotovima kašnjenja grananja.

U slotove kašnjenja grananja mogu se umetnuti instrukcije uzete:a) ispred instrukcije grananja

99

Page 10: Seminarski AKS

b) sa puta obavljenog grananjac) sa puta neobavljenog grananja

Teškoće pri planiranju instrukcija kod zakašnjelog grananja javljaju se:

1010

Page 11: Seminarski AKS

- zbog ograničenja pri izboru instrukcije za premiještanje u slot kašnjenja grananja

- teškoća da se u vrijeme kompilacije programa predvidi da li su veći izgledi da grananje bude obavljeno ili neobavljeno

Da olakšaju ove probleme kreatori arhitektura sa zakašnjenim grananjem predvideli su posebne instrukcijeuslovnog grananja sa poništavanjem (eng. cancelling or nullifying branch)Implementacija zakašnjenog grananja zahtijeva nešto dodatnog hardvera. Za jedan slot kašnjenja grananja, što je jedini slučaj koji sesreće u praksi, potreban je još jedan dodatni programiski brojač (PC).

Zakašnjeno grananje je arhitekturno riješenje o kome programeri na nivou asemblerskog jezika i tvorci kompilatora moraju voditi računa. Ako je broj slotova kašnjenja potreban za prikrivanje kašnjenja grananja veći od jeda, ovo riješenje ima ograničenu upotrebnu vrijednost jer je tada teško sve slotove kašnjenja popuniti korisnim instrukcijama. Takvi slučajevi javljaju se u protočnim sistemima sa velikom dubinom (većom od 5) i u protočnim sistemima u kojima se istovremeno pribavlja i izvršava više od jedne instrukcije (tzv. superskalarni procesori)

- Predviđanje grananja

Predviđanje ishoda grananja može doprinijeti smanjenju izgubljenih taktnih ciklusa zbog grananja. Pribavljanje instrukcije-sledbenika obavljenog grnanja vrši se korišćenjem bafera odredišta grananja (eng. branch target buffer). Bafer odredišta grananja je posebna memorijska struktura u kojoj se za instrukcije grananja sa predviđenim ishodom da se grnanje obavlja, čuvaju adrese odredišta grananja. Pri pribavljanju svake instrukcije pregleda se bafer odredišta grananja i ako se za tu instrukciju u njemu nađe odgovarajuća stavka, znači da se pribavlja instrukcija grananja sa predviđenim ishodom da se grananje obavlja. Tada se iz bafera odredišta grananja, uporedo sa pribavljanjem instrukcije grananja, dobija adresa odredišta grananja.

Predviđanje ishoda grananja može biti a) statičko i b) dinamičko. Statičko predviđanje vrši se tzv. 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 ishodi grananja.Dinamičko predviđanje grananja zahteva poseban hardver, kojim se u toku izvršenja programa beleže ishodi izvršenih instrukcija grananja, tzv. istorija grananja i na osnovu nje predviđaju ishodi grananja pri slijedećem izvršenju svake instrukcije grananja.

- Pribavljanje instrukcija i sa puta obavljenog i sa puta neobavljenog grananja

1111

Page 12: Seminarski AKS

Povremeno gubljenje taktnih ciklusa u slučajevima pogrešnog predviđanja grananja može se izbeći tako što se poslije instrukcije grananja pribavljaju instrukcije i sa puta obavljenog grananja i sa puta neobavljenog grananja. i u tom slučaju treba koristiti bafer odredišta grananja.

Ovo riješenje može se primjeniti u protočnim procesorima sa zahtijevanim izrazito visokim performansama. Implementacija ovog riješenja na protočnim procesorima sa velikim kašnjenjem grananja može biti neprihvatljivo skupa.

ZAKLJUČAK:

Hazardi podataka, kod protočne organizacije procesora, igraju jako bitnu ulogu kod predviđanja izgradnje, arhitekture samog procesora i programeri na nivou asemblerskog jezika i tvorci kompilatora moraju voditi računa, jer pogrešan korak može dovesti do dovođenja pogrešnih instrukcija i disfunkcionalnosti procesora. Njihovo proučavanje nam pomaže da previdimo i na vrijeme uklonimo moguća mjesta na kojima do hazarda može doći, a da

1212

Page 13: Seminarski AKS

pri tome maksimalno iskoristimo postojeće resurse, jer nekada i samo izbjegavanje hazarda uzima mnogo resursa i predstavlja veliki trošak. Zato treba planirati i shvatiti na kojim mjestima do hazarda moze doći i do koje vrste, pa prema tome planirati metodu/tehniku izbjegavanja!

LITERATURA

Knjige:

1.Arhitektura i organizacija računara

Nebojša Milenković 2002

2.Upravljanje procesima

B. Danković, D. Antić 1996

3. Computer Hayes, J.P. 1998

1313

Page 14: Seminarski AKS

architecture and organization

4.

5.

Web:Web:

1. http://rti.etf.bg.ac.yu/

2. http://www.cs.clemson.edu/

3. www.mips.com/publicatins

4. www.wikpedia.com

1414