Anda di halaman 1dari 18

1. 2. 3. 4. 5. 6. 7. 8. 9.

MIPS i MFLOPS ....................................................................................................................... 2 Amdahl-ov zakon.................................................................................................................... 2 Tipovi arhitektura procesora..................................................................................................... 3 Registri procesora................................................................................................................... 3 Neposredno, registarsko i indirektno registarsko adresiranje ........................................................ 4 Bazno adresiranje i indeksno adresiranje ................................................................................... 4 Memorijsko indirektno adresiranje i adresiranje relativno u odnosu na programski broja ................ 4 Autoinkrementno i dekrementno adresiranje .............................................................................. 5 Redosled bajtova u podacima i poravnati pristupi memoriji .......................................................... 5

10. Instrukcije za upravljanje tokom programa ................................................................................ 6 11. Sistem prekida raunara.......................................................................................................... 7 12. Registrovanje i opsluivanje spoljanjih prekida i unutranjih izuzetaka......................................... 7 13. Arhitektura i formati instrukcija MIPS procesora ......................................................................... 8 14. Vietaktna implementacija procesora ........................................................................................ 9 15. Upravljaka jedinica (UJ) procesora (opte) ............................................................................. 10 16. Upravljaka jedinica sa hardverskim (direktnim) upravljanjem ................................................... 10 17. Projektovanje UJ metodom tablice stanja................................................................................. 11 18. Projektovanje UJ metodom elemenata za kanjenje .................................................................. 11 19. Mikroprogramski organizovana UJ........................................................................................... 12 20. Formati mikroinstrukcija i paralelizam u mikroinstrukcijama....................................................... 12 21. Protona organizacija procesora ............................................................................................. 13 22. Putevi podatak protono organizovanog procesora .................................................................... 13 23. Upravljanje protonim procesorom.......................................................................................... 14 24. Strukturni hazardi................................................................................................................. 15 25. Klasifikacija hazarda podataka................................................................................................ 15 26. Izbegavanje hazarda podataka premoavanjem ...................................................................... 15 27. Hazardi podataka koji se ne mogu izbei premoavanjem......................................................... 15 28. Izbegavanje hazarda podataka planiranjem instrukcija .............................................................. 16 29. Hazardi upravljanja............................................................................................................... 16 30. Smanjenje cene grananja ...................................................................................................... 16 31. Proirenje protonog sistema za rukovanje operacijama sa vie ciklusa izvrenja.......................... 18

1. MIPS i MFLOPS
(Million Instructions Per Second) predstavlja meru performansi procesora. Ona se izrava kao broj miliona izvrenih instrukcija u sekundi. Za dati program MIPS se dobija kao: br .instrukcij a uces tan ost _ takta MIPS = = vreme _ izvrsenja 10 6 CPI 10 6 MIPS se moe predstaviti i preko vremena izvrenja programa: vreme _ izvrsenja = br.instrukcija MIPS 10 6

Drugim reima, MIPS je brzina kojom procesor izvrava instrukcije, raunar sa vie MIPS-ova izvravae program za krae vreme. Potrebno je napomenuti da MIPS nije pouzdana mera performansi procesora iz vie razloga: a. MIPS zavisi od skupa instrukcija, teko je uporeivati raunare sa razliitim skupovima instrukcija, b. MIPS varira od programa do programa za isti raunar, c. MIPS moe ocenjivati promene suprotno menjanju performansi, mereno objektivnim merilima. Npr. numeriki procesor (jedna instrukcija numerikog procesora zamenjuje se sa nekoliko desetina instrukcija sa celobrojnim podacima). Iz ovih razloga je uvedena nova mera performansi procesora koja je zasnovana na operacijama, a ne na instrukcijama. Takoe se ona koristi i za ocenu sposobnosti procesora pri raunanju sa realnim podacima, tj. podacima sa pokretnom zapetom. MFLOPS se izraava kao broj miliona operacija sa pokretnom zapetom u sekundi (Million Floating Point Operations Per Second ili ti MFLOPS - megaflops).
MFLOPS = br .operacija _ sa _ pokretnom _ zapetom _ u _ programu vreme _ izvrsenja _ u _ sekundama 10 6

Objektivnost MFLOPS-ova moe biti ugroena manipulisanjem kratkim i dugim operacijama sa pokretnom zapetom.

2. Amdahl-ov zakon
Prilikom projektovanja hardvera i softvera raunara potrebno je voditi se preporukom: da se aktivnosti koje se najee obavljaju, obavljaju bre, a aktivnosti koje se retko obavljaju mogu obavljati sporije. Amdahl je polazei od ove preporuke dao nain na koji se mogu ocenjivati sistemi. Mogunost kvantitativne ocene uticaja pojedinih reenja na efikasnost obavljanja posla prua nam Amdahl-ov zakon. Neka je vreme izvrenja nekog zadatka, a jedan deo tog zadatka traje TPD i elimo da to smanjimo PBD . Ovim poboljanjem, brzina kojom se posmatrani zadatak izvrava puta tako da novo vreme traje TPD
TS PBD

je poveana, i poveanje brzine iznosi:


Povecanje _ brzine = Vreme _ izvrenja _ ce log_ zadatka _ bez _ poboljanja Vreme _ izvrenja _ ce log_ zadatka _ sa _ poboljanjem
Performans e _ za _ ceo _ zadatak _ sa _ poboljanj ima Performans e _ za _ ceo _ zadatak _ bez _ poboljanj a

Skraenjem vremena izvrenja, performanse se poboljavaju i poveanje brzine iznosi:


Povecanje _ brzine =

Ako je novo vreme izvrenja zadatka T N ( TN < TS ), i ako

TPD = TS PD , gde je PD uee dela zadatka


TN = TS [(1 - PD ) +

koji poboljavamo u ukupnom vremenu izvrenja zadatka, onda dobijamo:

PD . ] PB D Ako sa PBU oznaimo ukupno poveanje brzine sa kojom se izvrava ceo zadatak, odnosno PBU = TS , TN onda dobijamo:

PBU =

1 PD 1 - PD + PB D

Ovaj poslednji izraz je takozvani Amdhl-ov zakon. On nas upuuje da, u nastojanju da poboljamo performanse sistema, treba da poboljamo ona reenja koja imaju veliko uee u ukupnim aktivnostima sistema.

3. Tipovi arhitektura procesora


Razlikujemo tri tipa arhitekure procesora: 1. Akumulatorske arhitekture, 2. Stek arhitekture i 3. Arhitekture sa registrima opte namene. Ova podela je izvrena prema mestu privremenog uvanja operanada. Akumulatorska arhitektura se odlikuje postojanjem jednog ragistra u procesoru, nazvanog akumulator, koji uestvuje u svim operacijama procesora. Procesori sa akumulatorskom arhitekturom spadaju u jednoadresne procesore. U instrukcijama je neophodno navesti samo adresu operanda u memoriji, dok je adresa prvog operanda i rezultata unapred poznata to je akumulator. Osnovni nedostatak je postojanje samo jednog registra akumulatora, koji uestvuje u obavljanju svih operacija procesora. Ovo uslovljava poveanje obima podataka koji se prenose izmeu procesora i memorije. Operand se iz memorije u akumulator prenosi instrukcijom Load, a iz akumulatora u memoriju instrukcijom Store. Stek arhitektura procesora kreirana je sa ciljem da smanji jaz u obimu aktivnosti iskazanih instrukcijama procesora i naredbama viih programskih jezika. Centralna memorijska struktura ove arhitekture je stek (stack). Operandi koji uestvuju u aritmetiko logikim operacijama nalaze se na vrhu steka, tako da nije potrebno eksplicitno ih adresirati. Operacijom se gube oba izvorina operanda sa vrha steka, a rezultat postaje novi vrh steka. Tipina aritmetiko logika operacija (npr. ADD) ima sledee dejstvo: ADD S[SP+1]S[SP+1] + S[SP], SPSP +1 Ovde S oznaava stek organizovan u memoriji, koji raste u smeru opadanja memorijskih adresa. SP je registar pokaziva steka (stack pointer), koji pokazuje na vrh steka. Zapazimo da se u instrukciji ADD eksplicitno ne navodi nijedan operand. Zato se za procesor sa stek arhitekturom kae da je nula adresni procesor. Veliki nedostatak stek arhitekture procesora su ogranienje u pristupima podacima u steku. Podatak se iz memorijske lokacije prenosi u stek instrukcijom PUSH, a iz steka u mem. inst. POP. Kada se koristi PUSH pokaziva steka se dekrementira, dok prilikom korienja POP pokaziva se inkrementira. Arhitekture sa registrima opte namene sadre grupu registara procesora koji se mogu koristiti u razliite svrhe: za privremeno uvanje operanada, za uee u izvravanju operacija, za adresiranje operanada u memoriji, za prenos parametara pri pozivu procedura itd. Broj registara opte namene ide, u zavisnosti od procesora, od osam do preko stotinu. Dananji procesori sadre najee po 32 registra opte namene. Arh. sa reg. op. nam. se dele na r-r, r-m i r+m. R-R zahteva da svi operadni budu prisutni u registrima procesora, pa su zbog toga instrukcije troadresne. Procesor pristupa operandima u memoriji samo preko instrukcija Load/Store, pa se zbog toga ova arhitektura naziva i napuni-zapamti arh. R-M doputa da jedan od dva izvorina operanda bude u memoriji. Ovo omoguava da se podacima moe pristupati bez prethodnog punjenja registara. Instrukcije su dvoadresne. R+M doputa da operandi i izvorini i odredini mogu biti i u registrima i u memoriji. Ovo je ujedno i najkompaktnija arh. Kao prednost se moe navesti da ne troi registre za privremeno uvanje operanada, dok kao nedostak moemo navesti da esti pristupi memoriji ine je uskim grlom.

4. Registri procesora
Registri su memorijski elementi realizovani brzim memorijskim elijama kao to su flip-flopovima. Glavna odlika registara jeste kratko vreme pristupa reda ns. Svi procesori imaju sledee registre: Programski broja, sadri mem. adresu instrukcije koju treba pribaviti. Registar intstrukcija, u ovaj registar se prenosi pribavljena instrukcija i u njemu se dri do zavretka instrukcije. Adresni registar memorije, sadri adresu memorijske lokacije kojoj se obraa procesor pri itanju ili upisu podatka iz/u memoriju. Prihvatni registar memorije, sadri podatak proitan ili koji treba upisati iz/u memoriju. Raunar programe izvrava ili u korisnikom ili u supervizorskom nainu rada u zavisnosti da li se radi o korisnikim programima ili sistemskim. Programima koji se izvravaju u korisnikom nainu rada su dostupni korisniki vidljivi registri i na njih korisnik moe direktno uticati. U ovu grupu registara spadaju: Registri opte namene, koriste se za privremeno uvanje celobrojnih operanada, adresiranje operanada u memoriji, uee u operacijama. Najei broj ovih registara je 32. Ovi registri sadre ulazni i izlani port to znai da se istovremeno iz pojedinih registara podaci mogu itati, a iz drugih upisivati podaci. S tim da vai da se iz jednog registra ne moe istovremeno itati i upisavati. FP registri, grupa registara za rad sa realnim podacima u formatu sa pokretnom zapetom. Duine su 32 ili 64 bita. Broj FP registara je izmeu 4 i 32. Segmenti registri, adresiraju segmente memorije dodeljene programima, podacima, steku. Registar koda uslova (ili u nekim arhitekturama: registar statusa programa PSW), registri namenjeni upravljanju tokom programa. Objedinjuje vei broj jednobitnih registara (indikatora) 3

koji se postavljaju ili briu. Neki od ovih indikatora su SF indikator znaka, ZF indikator nule, CF indikator prenosa, AF indikator pomonog prenosa, PF indikator parnosti, OF indikator prekoraenja. Sistemskim registrima se moe pristupiti samo u kernel nainu rada sistema. Ovi registri uestvuju u upravljanju prekidima, prevoenju sistema iz korisnikog u kernel u obrnuto, prevoenje virtuelnih u fizike adrese, upravljanju ke memorijama. Npr. adresni registar rukovaoca prekida koji sadri adresu programa koji se aktivira prekidom. Primarne adrese operanada adrese operanada koje se navode u instrukcijama. Efektivne adrese operanada adrese operanada na osnovu kojih se direktno pristupa operandiam. Nain adresiranja je nain na koji se primarna adresa transformie u efektivnu adresu.

5. Neposredno, registarsko i indirektno registarsko adresiranje


Neposredno operand se nalazi u sastavu same instrukcije. Operand je raspoloiv bez dodatnih aktivnosti. Koriste se u aritmetikim operacijama, pri poreenjima u grananju... Aprim = Aef = PC Registarsko operand je prisutan u nekom registru Rj procesora. Vreme pristupa sa ovim nainom adresiranja je najkrae mogue. Aprim = Aef = Rj Registarsko indirektno operand u memoriji adresiran sadrajem nekog registra opte namene Rj. Aprim = Rj; Aef = (Rj)

6. Bazno adresiranje i indeksno adresiranje


Bazno operand u memoriji je adresiran zbirom sadraja baznog registra i pomeraja navedenog u odgovarajuem adresnom polju instrukcije za taj operand. Bazni registar moe biti poseban adresni registar ili neki registar opte namene. Pomeraj predstavlja adresu lokacije relativnu u odnosu na sadraj baznog registra. Omoguguava da se podruje memorije menja u toku izvravanja programa, jednostavno upisom baznog registra poetnom adresom podruja memorije. Aprim = BR, pomeraj; Aef = (BR) + pomeraj Indeksno operand u memoriji je adresiran zbirom sadraja registara Rj i Rk. Rj sadri poetnu adresu. Rj sadri poetnu adresu podruja u memoriji, Rk je indeksni registar koji sadri indeks nekog elementa u toj strukturi. Aprim = Rj; Rk, Aef = (Rj)+(Rk)

7. Memorijsko indirektno adresiranje i adresiranje relativno u odnosu na programski broja


Mem. Ind. ili memorijsko odoeni adresiranje registar Rj naveden u adresnom polju instrukcije adresira memorijsku lokaciju koja svojim sadrajem adresira operand u memoriji. Neefikasan prema kriterijumu vremena pristupa jer se dvaputa pristupa memoriji. Aprim = Rj; Aef = (M[Rj])

Adr. Rel. U odnosu na PC u adresnom polju se navodi otklon koji predstavlja razliku izmeu adrese odredita grananja i trenutnog sadraja programskog brojaa. Otklon moe imati pozitivan ili negativan znak, pa zbog toga otklon predstavlja relativnu adresu na koju se program grana u onosu na instrukciju grananja. Aprim = otklon; Aef = (PC) + otklon

8. Autoinkrementno i dekrementno adresiranje


Autoinkrementno izvedeno iz indirektnog registarskog adresiranja, pri emu je dodato inkrementiranje korienog registra Rj posle (ili pre) obraanja memoriji. Rj se moe inkrementirati vrednou d. Aprim = Rj; Aef = (Rj), Rj <- Rj+d Autodekrementno za razliku autoinkrementnog, registar Rj se dekrementira pre (ili posle) obraanja memoriji. Aprim = Rj; Rj <- Rj-d, Aef = (Rj) Ovi naini adresiranja mogu utedeti dodatnu instrukciju za inkrementiranje odnosno dekrementiranje registra. Mogu se implementirati instrukcije PUSH i POP.

9. Redosled bajtova u podacima i poravnati pristupi memoriji


Memorija je kod savremenih raunara adresiva na nivou bajtova i oni podravaju rad sa podacima duine bajt, polure, re i dvostruka re. Postoje dva naina ureivanje bajtova unutar podaka sa duinom veom od bajta: adresiranje repa i adresiranje glave. Kod adresiranje repa, adresa bajta najmanje teine je adresa rei xx...xx002, dok je kod adresiranja glave to adresa bajta najvee. Redosled bajtova je beznaajan kada se radi samo sa jednim raunarom, on je pak vaan ako se programi obraaju delovima podataka ili kada se razmenjuju podaci izmeu dva raunara koji koriste razliite redoslede bajtova u reima. Takoe i za redosled bitova u podatku postoje dva naina: bit najvee teine nosi oznaku n-1, a bit najmanje teine nosi oznaku 0 i bit najvee teini nosi oznaku 0, a bit najmanje teine nosi oznaku n-1. Prvo reenje u kombinaciji sa adresiranjem repa daje konzistentan redosled bajtova i bitova u podatku, to takoe vai i za drugo reenja u kombinaciji sa adresiranjem glave. Meutim ovo drugo reenje dosta uslonjava rad sa delovima podataka, pa se s toga sa adresiranjem glave koristi prvi nain redosleda bitova. Jo jedna vana stavka kod arhitekture procesora je da li su podaci u memoriji organizovani kao poravnati pristup memoriji ili neporavnati. Za pristup podatku duine l bajtova sa adresom a u memoriji kaemo da 5

je poravnati ako je k adresnih bitova najmanje teine jednako 0. Korienje poravnatog pristupa memoriji je znatno bolje, vremenski efikasnije. Kod neporavnatog pristupa memoriji potreban je znatno sloeniji hardver koji e pravilno pozicionirati podatak u registru u sluaju itanja odnosno unutar memorijske lokacije za upisavanje.

10.

Instrukcije za upravljanje tokom programa

Grupa instrukcija za upravljanje tokom programa sadri instrukcije bezuslovnog i uslovnog grananja, skokova, poziva procedura i povratka iz procedura. U veini ovih instrukcija se za odredite grananja odnosno skoka koristi adresiranje relativno u odnosu na programski broja. Sve instrukcije su 4 bajta, pa se stoga naredna instrukcija dobija kao PC+4. Polje otklona je u instrukcijama skoka je irine p bitova, a u instrukcijama grananja q bitova. Opseg je -2p-1, 2p-1. Naziv instrukcije Jump (skok) Jump register (skok odreen registrom) Branch if equal zero (grananje ako je nula) Jump and link (skoi i povei) Jump and link register (skoi i povei preko registra) Branch if equal zero and link (grananje i povezivanje ako je nula) Primer instrukcije J ime JR R2 BEQZ R4, ime JAL ime JALR R2 BEQZAL R4, ime Znaenje PC <- PC+4+ime PC <- R2 If (R4==0) PC <- PC+4+ime else PC <- PC+4 R31 <- PC+4, PC <- PC+4+ime R31 <- PC+4, PC <- R2 If (R4==0) R31 <- PC+4, PC <- PC+4+ime else PC <- PC+4

Pri pozivu i izvrenju procedure treba obaviti sledee aktivnosti: 1. Smestiti parametre na mesto gde im procedura moe pristupiti. 2. Preneti upravljanje proceduri. 3. Zatraiti memorijske resurse potrebne proceduri. 4. Izvriti naloeni zadatak. 5. Smestiti rezultate procedure na mesto gde im pozivajui program moe pristupiti. 6. Vratiti upravljanje na polaznu taku, poto procedura moe biti pozivana sa razliitih taaka u programu. U MIPS arhitekturi za prenos parametara i vraanje rezultata, kao i za uvanje adrese povratka u pozivajui program koriste se registri R4-R7 za prenos parametara u proceduru, R2-R3 za vraanje rezultata u pozivajui program, R31 za pamenje adrese povratka u pozivajui program. Za poziv procedura na raspolaganju su instrukcije skoka na proceduru, JAL i JALR, i uslovnog grananja na proceduru BEQZ. U ovim instrukcijama adresa povratka procedura pamti se u registru odreenom arhitekturom R31. U sluaju ugnjedenja nove procedure, na primer PROCj, u izvravanu proceduru, na primer PROCi, potrebno je najpre zapamtiti sadraj registra R31 (adresu povratka iz PROCi) recimo u steku, pa tek onda pozvati PROCj. Povratak iz izvravane procedure u pozivajui program vri se instrukcijom JR R31. Instrukcijama uslovnog grananja proverava se ispunjenje zadatih uslova na osnovu odreenih relacija, i ako su uslovi ispunjeni grananje se obavlja, inae ono izostaje. esto je pogodno ove aktivnosti razdvojiti na: a1 -> proveru zadovoljenja odreene relacije i upis ishoda te provere na predvienom mestu, a2 -> ispitivanje ishoda prethodno obavljene provere i grananje ako je on pozitivan. Mogua reenja instrukcija uslovnog grananja su: implicitni registar koda uslova indikatori se postavljaju ALU operacijama. Prednost ovog naina je to postavljanje indikatora ne zahteva dodatne trokove, a nedostak to registar koda uslova poveava obim podataka o stanju programa. Navedene aktivnosti se obavljaju odvojenim instrukcijama. Izmeu ovih instrukcija ne smeju da budu instrukcije koje menjaju status ovih indikatora; registar uslova testiranje proizvoljnog registra. Prednost je jednostavnost, a nedostak jer koristi registar. Navedene aktivnosti se obavljaju odvojenim instrukcijama. Potrebna je posebna instrukcija za aktivnost 1 i ishod provere se upisuje u neki od registara opte namene, koji eksplicitno adresiran; poreenje i grananje poreenje je deo grananja. Aktivnosti se obavljaju jednom instrukcijom. Prednost je to se koristi jedna umesto dve instrukcije za grananje, a nedostak to obim posla moe biti prevelik za jednu instrukciju.

11.

Sistem prekida raunara

Termin prekid se koristi da oznai bilo koji neoekivan dogaaj, koji uzrokuje da CP prekine tekue izvravanje programa i pree na drugi program koji opsluuje prekid rukovaoc prekida. Prekidi se koirste za neoekivani dogaaje koji se mogu generisati van CP, a za izuzetke unutar CP. Neki od dogaaja koji mogu izazvati prekid odnosno izuzetak su: 1. Zahtevi od U/I ureaja 2. Nestanak napona napajanja 3. Program korisnika zahteva usluge OS 4. Prekidi zahtevani od programera 5. Greka stranice 6. Greka u radu hardvera (moe biti i asinhron i sinhron dogaaj) 7. Greke u aritmetici sa pokretnom zapetom 8. Neporavnati pristup memorije, ukoliko nije omoguen za datu arhitekturu 9. Korienje nedefinisane instrukcije 10. Prekoraenje i potkoraenje u celobrojnoj aritmetici Asinhroni dogaaji: kao to su 1. i 2., a sinhroni dogaaji: 3-10. Klasifikacija izuzetaka se moe izvriti prema nainu na koji se izvetava o njihovom nastanku, kao i prema tome da li je instrukcija koja je izazvala izuzetak moe restartovati bez gubitaka kontinuiteta programa i to na greke, trapove i izuzetke. Greka se dojavljuje u toku izvrenja instrukcija. Doputa da se program nastavi bez gubitka kontinuiteta programa. Adresa povratka je adresa instrukcije u kojoj se javila greka. Trap se dojavljuje neposredno posle izvrenja instrukcija u kojoj se javio trap. Doputa da se program nastavi bez gubitka kontinuiteta programa. Adresa povratka je adresa sledbenik instrukcije u odnosu na onu u kojoj se javio trap. Pobaaj ne izvetava preciznu lokaciju instrukcije u kojoj se javio izuzetak. Ne doputaju nastavljanje izvrenja programa. Prekidi se mogu klasifikovati prema sledeim kriterijumima: sinhroni-asinhroni da li se izuzetak javlja uvek na istom mestu, sa istim podacima; maskirljiv-nemaskirljiv da li se moe zabraniti programom korisnika. Ulazni prikljuci procesora za podnoenje zahteva za maskirljive i nemaskirljive prekide su odvojeni; zahteva od korisnika-prinudan da li se zahteva direktno iz korisnikog programa; unutar-izmeu instrukcija da li se moe spreiti dovravanje instrukcije; sa zavretkom-nastavkom da li se izvravanje programa zaustavlja; CP se o prekidima obavetava preko izvesnog broja ulaznih prikljuaka. Kada procesor prihvati zahtev za prekid on to signalizira ureajima koji su zahtevali prekid preko posebnog prikljuka potvrde prekida. Tada se izvor prihvaenog prekida mora identifikovati, da bi procesor mogao da pree na izvrenje odgovarajueg programa koji opsluuje prihvaeni prekid.

12.

Registrovanje i opsluivanje spoljanjih prekida i unutranjih izuzetaka

Nakon to procesor prihvatio zahtev za prekid, kree se sa opsluivanjem prekida i to na sledei nain: 1. CP alje potvrdu da je prihvatio prekid i identifikuje izvor prekida. Identifikator izvora prekida se transformie u adresu poetka prekidnog programa. 2. CP zabranjuje prihvatanje novih prekida. Sadraje registara PC, PSW i eventualno drugih sistemskih registara koji odreuju stanje prekinutog programa pamti u steku ili za to predvienim registrima. 3. PC, PSW i eventualno drugi sistemski registre se pune neophodnim podacima za prelazak na prekidni program. Dozvoljava se prihvatanje novih prekida. 4. Po potrebi se u prekidnom programu pamte sadraji nesistemskih registara CP-a koji se koristi u tom programu. 5. Izvrava se prekidni program. 6. Ukoliko su korieni nesistemski registri (korak 4) u ovom koraku se obnavljaju njihovi sadraji. 7. Zabranjuje se prihvatanje novih prekida. Obnavljaju se zapameni sadraji PS-a, PSW-a i eventualno drugih sistemski registri prekinutog programa, a zatim se dozvoljava prihvatanje novih prekida i vraa se u prekinutom programu. Aktivnosti 1, 2 i 3 u celosti ili delimino obavlja CP automatski, koristei za to postojei hardver. Aktivnosti 4, 5 i 6 obavljaju se u okviru prekidnog programa. Aktivnosti u okviru take 7 obavlja CP izvrenjem specijalne instrukcije RFE ili RFI (Return from exception/interrupt). Samo aktivnosti u taki 5 su korisne u uem smislu, ostale aktivnosti (reijske aktivnosti) omoguavaju ovakav nain aktiviranja prekidnog programa.

Neki procesori sadre dodatna polja registara u vidu registara u senci koja se dodeljuju odreenim tipovima izuzetaka. Time se umesto pamenja i obnavljanja sadraja registara iz arhitekturnog polja registara u koracima 4 i 6 jednostavno prelazi sa jednog na drugo polje registara, pa se tako skrauje reijsko vreme pri opsluivanju izuzetaka. Opsluivanje izuzetaka tipa greaka i trapova se razlikuje od aktivnosti 1do7 u tome to su informacije o uzroku izuzetka ve prisutne u nekom od sistemskih registara na osnovu ega se odreuje adresa rukovoaca izuzetka. Pamenje informacije o stanju prekinutog programa i dostavljanje informacije procesoru o stanju prekidnog programu koji se aktivira u koracima 2 i 3, kao i obnavljanje stanja prekinutog programa u koracima 6 i 7 naziva se promena konteksta programa.

13.

Arhitektura i formati instrukcija MIPS procesora

MIPS32 arhitektura definie centralni procesor (CPU) i tri koprocesora: - Koprocesor 0 (CP0) se implementira u istom ipu kao i CP i podrava vitruelni memorijski sistem i rukovanje izuzecima; - Koprocesor 1 (CP1) rezervisan je za FP koprocesor; - Koprocesor 2 (CP2) rezervisan je za specifine implementacije; MIPS32 definie sledee registre, duine po 32 bita: - 32 registra opte namene (GPR), koji obrazuju polje celobrojnih registara; - Dva registara posebne namene HI i LO, u koje se smetaju rezultati operacija mnoenja, deljenja, i mnoenja i akumuliranja; - Programski broja PC, koji nije arhitekturno vidljivi registar; - 32 FP registra opte namene (FPR), koji obrazuju polje FP registara. Svi FP registri raspoloivi su za korienje u operacijama sa FP podacima jednostruke preciznosti. FP podaci dvostruke preciznosti uvaju se u paru susednih FP registara, od kojih je prvi sa parnim a drugi sa neparnim indeksom; - 5 FP upravljakih registara, ija je uloga da identifikuju FP jedinicu i upravljaju njome; Dva od 32 registra opte namene imaju posebne namene: - R0 je oien na sadraj 0 (on zapravo i nije pravi registar); on se moe koristiti kada je potrebna vrednost 0 ili kao odredini registar kada rezultat treba odbaciti; - R31 je odredini registar u instrukcijama bezuslovnog i uslovnog skoka bez njegovog eksplicitnog navoenja u ovim instrukcijama; van njih on se koristi kao i svaki drugi registar opte namene. MIPS32 arhitektura definie sledee formate celobrojnih podataka: Bit, bajt, Polure (2B), Re (4B), Dvostruku re (8B). Celobrojni podaci svih formata osim bita mogu biti oznaeni i neoznaeni. Neposredni operand u aritmetikim instrukcijama i instrukcijama poreenja kada se uzima znakovno proiren do duine registara. U logikim instrukcijama neposredni operand se uzima kao neoznaen i proiruje se nulama do duine registra. Arhitektura takoe definie FP podatke sledeih tipova: 32-bitne FP podatke jednostruke preciznosti i 64-bitne FP podatke dvostruke preciznosti. Redosled bajtova moe biti tipa adresiranje repa kao i adresiranje glave u zavisnosti kako se konfigurie procesor. MIPS arhitektura podrava sedee naine adresiranja: Neposredno, Registarsko, Bazno (pomerajno) i PC relativno (samo u instrukcijama grananja). Neposredno adresiranje koristi se za adresiranje jednog izvorinog operanda u aritmetikim i logokim operacijama. Bazno adresiranje je jedini nain adresiranja operanada u memoriji. Meutim, izborom posebnih vrednosti pomeraja i adrese baznog registra mogu se dobiti jo dva izvedena naina adresiranja: direktno (apsolutno) i indirektno registarsko adresiranje. Formati instrukcija MIPS procesora Sve instrukcije su duine 32 bita, i moraju biti poravnato smetene u memoriji raunara. Postoje tri formata instrukcija za rad sa celobrojnim podacima prikazana na slici. U sva tri formata instrukcija kod operacije (op) i indeksi (adrese) registara, duine po 5 bita, imaju fiksna mesta, to olakava i ubrzava dekodiranje instrukcija. Aritmetiko logike instrukcije su troadresne, sa dve varijante: - Sva tri operanda u registrima procesora (R format); - Jedan izvorini operand neposredno adresiran (I format). R format namenjen je aritmetiko logikim instrukcijama i instrukcijama pomeranja. I format namenjen je aritmetiko logikim instrukcijama, instrukcijama uslovnog grananja i instrukcijama obraanja memoriji (Load i Store). J format namenjen je instrukcijama skoka i bezuslovnog poziva procedura. Oznake polja u ovim formatima i 8

njihova znaenja su sledea: - op kod operacije instrukcije; - rs indeks (identifikator) prvog izvorinog registra instrukcija; - rt indeks drugog izvorinog registra ili odredinog registra instrukcije; - rd indeks odredinog registra instrukcije; - shamt broj binarnih pozicija za koje treba pomeriti izvorini operand; - funct dodatno polje koda operacija instrukcija; - immediate neposedni operand u aritmetiko logikim instrukcijama, otklon u instrukcijama uslovnog grananja ili pomeraj u instrukcijama Load i Store; - target address primarna adresa odredita skoka u instrukcijama skoka i bezuslovnog poziva procedura.

14.

Vietaktna implementacija procesora

Jasno je da vietaktna implementacija procesora poseduje odreene prednosti u odnosu na jednotaktni procesora. To su pre svega: vremena ciklusa svih instrukcija su jednaka i odreena su vremenom ciklusa najdue instrukcije; svaka hardverska komponenta procesora se u ciklusu instrukcije koristi samo jednom, to poveava obim hardvera procesora. Svaka instrukcija se moe ralaniti na pet faza, pri emu se se svaka faza odvija u okviru jednog ciklusa, a aktivnosti unutar faze obavlja odgovarajui stepen procesora. Tih pet faza su: pribavljanje instrukcije (IF), dekodiranje instrukcije i pribavljanje operanada iz registara (ID), izvrenje instrukcija (EX), obraanje memoriji podataka (ME) i upis podataka u odredini registar (WB). Pribavljanje instrukcije i obraanje memoriji podataka u razliitim taktnim ciklusima omoguuje da se programska memorija i memorija podataka objedine u jedinstvenu memoriju. Pribavljanje i dekodiranje instrukcija u razliitim taktnim ciklusima zahteva uvoenje registara instrukcija IR. Pribavljanje podataka iz memorije i njegovo upisivanje u polje registara u razliitim taktnim ciklusima zahteva uvoenje prihvatnog registra memorije MDR. A i B su prihvatni registri izvorinih operanda pribavljenih iz polja registara, a ALUIzl prihvatni registar razultata iz ALU. Na slici je prikazana blok ema implementacije (putevi) vietaktnog procesora sa pridodatom memorijom: Aktivnosti po fazama su sledee: 1. IRMem[PC]; PCPC+4 Pribavlja se instrukcija na koju pokazuje programski broja i prenosi u registar instrukcija. Paraleleno sa tim se inkrementira broja, tako da pokazuje na sledeu instrukciju. 2. AReg[ IR25 ..21 ]; BReg[ IR20 ..16 ]; ALUIzlPC+znak._pro.( IR15..0 )<<2. U ovoj fazi se instrukcija dekodira. Izvorini operandi se pribavljaju i prenose u pomone registre A i B. Moemo primetiti da se sadraj polja IR15..0 znakovno proiruje, pomera ulevo za dve binarne poziciji i sabira sa programskim brojaem, a zatim se upisuje u registar ALUIzl. Sadraj ovog polja predstavlja pomok u sluaju da se radi o instrukciji grananja. Sve aktivnosti se obavljaju paralelno zbog fiksniih poloaja u registru instrukcija. 3. Zavisno od instrukcije, obavlja se jedna od sledeih pet aktivnosti: ALUIzlA(op,func)B; Aritmetiko logike instrukcije R formata: Izvrava se operacija, odreena sadrajima polja op i function, nad sadrajima registara A i B. Rezultat se smeta u ALUIzl. Aritmetiko logike instrukcije I formata: ALUIzlA op pro._nul.(imm); Izrava se operacija, odreena kodom operacije op, nad sadrajem registra A i nulama proirenim neposrednim operandom. Rezultat se smeta u ALUIzl. Obraanje memoriji: ALUIzlA+znak._pro.(imm) Izraunava se efektivna adresa obraanja memoriji sabiranjem sadraja registra A (bazna adresa) i znakovno proirenog pomeraja. Rezultat se smeta u ALUIzl. Grananje: If (A=B) then PCALUIzl; Ako je uslov grananja ispunjen, PC se puni odreditem grananja instrukcije. Skok: PC PC 31..28 || IR25..0 << 2 Odredite skoka, pomeren za dve binarne pozicije ulevo, dopisuje se iza 4 bita najvee teine sadraja 9

programskog brojaa. Lociranje ovih aktivnosti u okviru iste faze razliitih instrukcija mogue je, jer su u napuni/zapamti arhitekturi, nabrojane instrukcije meusosbno iskljuive. 4. U ovoj fazi aktivne su samo instrukcije obraanja memoriji (Load i Store). Obraanje memoriji: Load: MDRMem[ALUIzl]; ili Store: Mem[ALUIzl]B; 5. Aritmetiko logike instrukcije R formata: Aritmetiko logike instrukcije I formata: Load instrukcija:
Re g [ IR 15 .. 11 ] ALUIzl ;

Re g[ IR20..16 ] ALUIzl ;
Re g[ IR20..16 ] MDR

Potrebno je jo napomenuti da instrukcije grananja i skokova sadre po 3 faze, aritmetiko logike instrukcije i Store sadre po 4 faze, a Load sadri 5 faza.

15.

Upravljaka jedinica (UJ) procesora (opte)

Aktivnosti koje se obavljaju na vietaktonom procesoru su: 1. IR <- Mem[PC]; 2. PC <- PC+4; 3. A <- Reg[IR25..21]; 4. B <- Reg[IR20..16]; 5. ALUIzl = A (op, func) B; 6. Reg[IR15..11] <- ALUIzl Ove aktivnosti nazivamo mikrooperacijama. Kao to se vidi mikrooperacije mogu biti jednostavni prenosi podataka iz jednog u drugi registar, itanje podataka ili upis podataka u memoriju. Da bi se ove mikrooperacije mogle izvriti moraju se aktivirati odgovarajue upravljake take. Upravljake take su upravljaki ulazni prikljuci elemenata hardvera koji uestvuju u obavljanju odreenih mikrooperacija. Upravljake take se aktiviraju upravljakim signalima koje generie upravljaka jedinica procesora. Osnovni zadaci upravljake jedinice procesora su: 1. Interpretacija instrukcija CP-a; 2. Generisanje upravljakih signala; 3. Upravljanje prenosom podataka izmeu procesora i memorije i procesora i ulazno izlaznog sistema raunara. Definisanje rada UJ zahteva odreivanje upravljakih signali koje treba aktivirati i kada to uiniti i ovo se moe uraditi na vie naine. Jedan od tih naina je i prikaz promene stanja UJ. U svkom stanju se novode vrednosti podskupova upravljakih signala kojima se aktivira jedna ili vie mikrooperacija koje se obavljaju paralelno. Upravljaka jedinica procesora se moe implementirati na osnovu jedne od ove dve koncepcije: 1. Kao klasina sekvencijalna prekidaka mrea, to vodi direktnom (hardverskom) upravljanju; 2. Kao maina sa zapamenim programom, to vodi mikroprogramskom upravljanju.

16.

Upravljaka jedinica sa hardverskim (direktnim) upravljanjem

Upravljaku jedinicu procesora moemo posmatrati kao konani automat sa sledeim elementima: 1. Skup stanja upravljake jedinice S = {S 0 , S1 ,..., S n-1} 2. Skup ulaznih upravljakih signala X = {x1 , x2 ,..., xm } 3. Skup izlaznih upravljakih signala Y = { y1 , y2 ,..., yk } 4. Funkcija promene stanja FS : ( X , S ) S , i 5. Funkcija izlaza FY : ( X , S) Y . Koristiti se Moor-ov automat kod koga su izlazni signali odreeni samo stanjem u kome se automat nalazi, nezvisno od ulaznih signala. F-ja izlaza je oblika Fy:S=>Y. Konani automat moe se implementirati sekvencijalnom prekidakom mreom, koja se sastoji od kombinacione prekidake mree i memorijskih elemenata, kao na slici. Memorijski elementi mogu biti flipflopovi ili leevi. Oni odreuju stanje konanog automata. Kombinaciona mrea implementira funkcije promene stanja i izlaza. Upravljaka jedinica sa direktnim upravljanjem je implementacija upravljake jedinice 10

sekvencijalnom prekidakom mreom. Logika direktnog upravljanja je zapravo kombinaciona mrea sa prethodne slike. U bloku Tekue stanje UJ su memorijski elementi upravljake jedinice. Ulazni signali u upravljaku jedinicu, vidi se sa slike, su polje registara instrukcija, stanja indikatora iz registra koda uslova i neki od upravljakih signala sistemske magistrale. Izlazni signali idu na upravljake linije puteva podataka procesora i na neke upravljake linije sistemske magistrale. Za projektovanje upravljake jedinice sa direktnim upravljanjem moe se koristiti metoda tablice stanja, metoda elemenata za kanjenje idr.

17.

Projektovanje UJ metodom tablice stanja

Upravljaka jedinica moe biti data tablicom stanja/izlaza prikazanom tabelom. Sik je stanje u koje upravljaka jedinica prelazi iz stanja Si pod dejstvom ulaznih signala xk. Sa Yi oznaeni su izlazni signali koje upravljaka jedinica formira u stanju Si. Projektovanje ukljuuje minimizaciju stanja automata, kodiranje stanja i projektovanje sekvencijalne prekidake mree koja implementira automat. Stanje/ Ulazni upravljaki signali Izlazni signal X1 X2 ... Xm S0/Y0 S01 S02 ... S0m S1/Y1 S11 S12 ... S1m ... ... ... ... ... Sn-1/Yn-1 S(n-1)1 S(n-2)2 ... S(n-1)m Projektovanje UJ metodom tablice stanja vodi implementaciji UJ sa minimalnim brojem flip-flopova. Nedostatak ove metode je nepostojanje lako uoljive veze izmeu elemenata dobijene sekvencijalne mree i dijagrama toka upravljanja UJ. Formira se tablica koja e za svaki par (sadanje stanje, sledee stanje) imati po jednu vrstu, u koju unosimo ulazne signale X koji dovode do te promene stanja, i pobudni signal D koji takvu promenu stanja obezbeuje. Si ... Qi3 Qi2 Qi1 Qi0 ... a5 a4 a3 a2 a1 a0 ... Qi3 Qi2 Qi1 Qi0 ... Di3 Di2 Di1 Di0 ...

18.

Projektovanje UJ metodom elemenata za kanjenje

Projektovanje UJ metodom elemenata za kanjenje je jedan od naina implementacije UJ sa direktnim upravljanjem. Ova metoda svodi se na korienje prekidake mree ija konfiguracija odslikava dati digram toka upravljanja. Za svaki put u dijagramu toka upravljanja, u ovu mreu treba uvesti po jedan put koji mu odgovora. Postupak projektovanje UJ zadate dijagramom toka upravljanja se zasniva da sledea etiri pravila: Par sukcesivnih stanja Si i Sj zahteva uvoenje elemenata za kanjenje. Upravljaki signali {yir} i {yip} koje UJ izdaje stanjima Si i Sj uzimaju se sa ulaza i izlaza ovog elementa za kanjenje (slika pod a); Uslovno grananje sa uslovom na primer if(f(x)==1) implementira se parom I logikih elemenata, na ije ulaze se, pored impulsnog signala, vode uslovi f(x) i f (x ) (slika pod b); Slivanje n dolaznih grana u jednu odlaznu granu implenetira se ILI logikim elementom sa n ulaza (slika pod c); Upravljaki signal koji se aktivira u vie stanja upravljake jedinice, usmerava se ka odgovarajuim takama preko ILI logikog elementa, iji broj ulaza odgovara broju stanja u kojima se taj upravljaki signal aktivira. Kao element za kanjenje moe se upotrebiti taktovani D flip-flop. Projektovanje UJ metodom elemenata za kanjenje daje sekvencijalnu prekidaku mreu u kojoj je lako uspostaviti vezu izmeu elemenata ove mree i odgovarajuih delova dijagrama toka upravljanja UJ. Ovo olakava testiranje kao i izmene u implementaciji. Nedostatak je to, to ta implementaciju UJ sa ns stanja zahteva ns-1 (ili ns) flip-flopova i to je znatno vie od log 2 ns koliko zahteva metoda tablice stanja. 11

Druga varijanta ove metode zasniva se na projektovanju sekvencijalne prekidake mree ija stanja nisu kodirana, ve su dekodirana. Ta metoda se naziva i metoda jednog vrueg elementa. Vrui memorijski element je onaj koji se trenutno nalazi u stanju 1.

19.

Mikroprogramski organizovana UJ

Mikroprogramiranje je sistematska tehnika za implemetiranje upravljakih jedinica raunara, zasnovana na koncepciji programa zapamenog u memoriji. Elementi mikroprograma su mikroinstrukcije smetene u upravljakoj memoriji raunara. Osnovni zadatak mikroinstrukcija je izdavanje naloga za izvrenje odreenih podskupova mikrooperacija. Ovo je mogue postavljanjem upravljakih signala na odreene vrednosti. Mikroprogram takoe mora i da odreuje redosled izvravanja mikroinstrukcija, a ovo se postie brojaem mikroinstrukcija (PC). Blok ema mikroprogramski organizovane UJ prikazana je na slici. Mikroprogrami mainskih instrukcija smeteni su u mikroprogramskoj memoriji, ije lokacije adresira broja mikroinstrukcija. Mikroinstrukcija pribavljena iz mikroprogramske memorije smeta se u registar mikroinstrukcija RMI (nije prikazan na slici), odakle se delovi mikroinstrukcije alju na upravljake linije puteva podataka (US) i na ulaze logike za izbor adrese (MOp+Uslov+ASM). Sadrajem brojaa mikroinstrukcija upravlja logika za izbor adrese, dok sabira na slici samo simbolizuje mogunost promene stanja brojaa. Prednosi mikrogromske organizacije UJ: sistemsko projektovanje UJ, lakoa implementiranja familije raunara sa kompatibilnim instrukcijama, sposobnost emiliranja drugih raunara, lako ispravljanje greaka u fazi razvoja, niska cena za uvoenje dodatnih funkcija ako za njihove mikroprograme ima slobodnog prostora u mikropromskog memorije. Nedostaci: neekonominost za male sisteme zbog relativno visoke fikse cene mikroprogmske memorije i logike za nizanje mikroinstrukcija, vreme ciklusa instrukcija ogranieno vremenom pristupa mikropromske memorije.

20.

Formati mikroinstrukcija i paralelizam u mikroinstrukcijama

Opti format mikroinstrukcije: Mop | US | Uslov | ASM . Skraeni format: Mop | US | ili Mop | Uslov | ASM Mop kod mikrooperacije. Ukazuje na tip mikroinstrukcije: 00-inkrementiranje brojaa mikroinstrukcija, 01-uslovnim grananjem na adresu ASM na osnovu signala Zero, 10-skokom na adresu odreenu sadrajem polja Op registra IR, 11-skokom na adresu u ASM; US polje upravljakih signala; Uslov ovde se mogu navesti vrednosti signala uslova pri kojima dolazi do grananja; ASM polje adrese sledee mikroinstrukcije Skraeni format je nastao iz razloga to ne postoji potreba da se svakom mikroinstrukcijom menja linearni tok mikroprograma. Prvim se aktiviraju upravljaki signali, a drugim se samo menja linearni tok programa. Razlikujemo tri tipa formata mikroinstrukcija: horizontalni, vertikalni (minimalno kodirani) i maksimalno kodirani. Kod horizontalnog formata u polju US za svaki upravljaki signal je rezervisan po jedan bit. Odlikuje se time da se upravljaki signali sa izlaza registra 12

mikroinstrukcija direktno vode do upravljakih taaka u putevima podataka procesora. Za ovakav oblik mikropromskog upravljanja se koristi termin neposredno upravljanje. Nedostatak ovog formata je velika duina polja US. Takoe, ukoliko su pojedini upravljaki signali meusobno iskljuivi korienje ovog formata ba i nema smisla. Ovi signali se mogu grupisati tako da se aktiviraju samo jednim upravljakim signalom, ali isto tako razliite grupe moraju ostati meusobno nezavisne. Na ovaj nain se postie odreen stepen paralelizma, kao kod horizontalnog formata. Upravljaki signali grupisani na ovaj nain se moraju kodirati, ime se dobija minilmalno kodirani format mikroinstrukcije. Ostali upravljaki signali koji se ne mogu grupisati ostaju u polju US kao u horizontalnom formatu. Ukoliko je arhitektura takva da se mikrooperacije mogu izvavati istovremenim aktiviranjem samo jednog ili dva upravljka signala, kaemo da je re o vertikalnom formatu ili maksimalno kodirani format instrukcija. Sadraj polja KUS mikroinstrukcije se mora dekodirati pre nego to se dostavi odgovarajuim upravljakim takama.

21.

Protona organizacija procesora

Ideja protone organizacije procesora je da svi delovi hardvera vietaktnog procesora istovremeno budu aktivni na obavljanje pet razliitih faza niza od nekoliko sukcesivnih instrukcija. To znai da e protoni procesor obraivati 5 instrukcije u jednom taktnom ciklusa, ali e pri tome obraivati razliitu fazu svake instrukciju, a to su IF, ID, EX, ME, WB (pribavljanje instrukcije, dekodiranje, izvrenje, pristup memoriji, upis u registar). Ovaj deo hardvera koji obrauje samo jednu fazu zovemo stepen protonog procesora. Obzirom da imamo 5 faze, s toga govorimo o petostepenom protonom procesoru. Sa slika za sekvencijalno izvrenje instrukcija i za protono izvrenje instrukcija se moe uoiti da se pojedinano vreme svake instrukcije ne skrauje, ve se moe i ak i produiti zbog pojave hazarda. Vreme ciklusa jedne instrukcije je oznaeno kao latencija instrukcije. Poboljanje performansi protonog procesora se ogleda u poveanoj propusnosti u odnosu na sekvencijalno izvrenje instrukcija, to se takoe moe uoiti na slici. Protoni procesor unosi nekoliko novina, a to su: 1. brzina protonog procesora ograniena je brzinom najsporijeg stepena; 2. Nejednako trajanje operacija u pojedinim stepenima umanjuje brzinu protonog procesora; 3. Vie poslova koji se obavljaju istovremeno koriste razlie resurse. 4. potencijalno poveanje brzine jednako je broju stepena Poboljanje performansi protonih u odnosu na sekvencijalne procesore, koje se ogleda u poveanju propusnosti procesora k puta, moe se iskazati kao da se efektivno smanjuje broj taktnih ciklusa po instrukciji 1/k puta, uz nepromenjenu periodu takta. Za razmatrani petostepeni protoni procesor to daje efektivni CPI = 1, iako je latencija pojedinanih instrukcija pet taktnih ciklusa. Za idealnu protonu obradu instrukcija CPI=1.

22.

Putevi podatak protono organizovanog procesora

Prelazak sa vietaktnog sekvencijalnog procesora na protoni procesor zahteva odreene izmene u implementaciji procesora. Umesto jedinstvene memorije za programe i podatke, protoni procesor koristi odvojene memorije za programe i podatke. Ovim se izbegavaju zastoji u radu procesora zbog jedinstvene memorije, koja moe biti kritian resurs sistema. Za proveru ispunjenja uslova grananja u instrukcijama grananja koristi se ALU. Zato se ALU vie ne moe koristiti za izraunavanje odredita grananja, ve se za to mora uvesti dodatni sabira. Ovo je opravdano ako uslov grananja obuhvata poreenje sadraja dva registra relacijama ==, <, , >, . Ako se uslov grananja svodi samo na jednakost sadraja registra nuli, uputnije je to ispitivanje obaviti posebnim hardverom, a ALU koristiti za izraunavanje odredita grananja. Na slici se mogu uoiti protoni registri koji razdvajaju stepene protonog procesora. Najbitnija razlika ogleda se u potrebi uvoenja protonih registara ili protonih leeva, koji razdvajaju pojedine stepene protonog procesora. Ovi protoni registri privremeno uvaju sve podatke i upravljake informacije potrebne za obavljanje aktivnosti u sledeim fazama instrukcije. Sa napredovanjem takta, za sve aktivne instrukcije, kroz protone registre se prenose rezultati do tada izvrenih faza obrade i upravljake informacije potrebne za preostale faze obrade instrukcije do njenog kompletiranja. Poto ovi protoni registri uvaju podatke i informacije koje se odnose na instrukciju posle svake faze obrade, pomoni registri koje smo uveli pri definisanju aktivnosti po fazama obrade "utapaju se" u odgovarajue protone registre, odnosno postaju odgovarajua polja ovih protonih registara. To se odnosi na IR, NPC, Imm, A, B, ALUrez, Add2rez, Cond i LMD. To su izmene koje poveavaju obim hardvera protonog procesora. Pojedini delovi hardvera su prikazanu u samom jednom stepenu iako se oni koriste u vie njih. Npr. polje registara, auriranje programskog brojaa. Da bi se ovo prikazalo koriene su povratne linije.

13

23.

Upravljanje protonim procesorom

Upravljake signale (US) generie UJ u ID stepenu, ali se oni prenose do onih stepena u kojima se koriste. Pored US izmeu protonih registara se vri prenos i drugih vrednosti koje su potrebne za obradu tekue instrukcije. Upravljaki signali protonog procera rasporeeni su po stepenima na sledei nain: IF stepen U svakom taktnom ciklusu se generie signal dozvole upisa u PC pri emu se novi sadraaj bira izmeu inkrementiranja prethodnog sadraja i odredita grananja ukoliko je prethodila neka instrukcija grananja. U ovom stepenu se javlja PCSrc (US), koji se zapravo kreirao u ME stepenu logikim I kolom od Branch i Cond US. ID stepen Javlja se ExtOp US koji odreuje da li e se polje IR15..0 proiriti nulama ili znakovno. EX stepen US u ovom stepenu su ALUSrc, ALUctr, RegDst. Pomou ALUSrc se bira drugi operand ALU-a. Uloga ALUctr je da odredi operaciju za ALU. Ovaj US se formira od ALUop US i polja function instrukcije R formata. RegDst slui da izabere izmeu rt ili rd za indeks odredinog registra instrukcije. ME stepen US u ME stepenu su Branch (da li je re o grananju), MemRd (itanje iz memorije) i MemWr (upis u memoriju). WB stepen US MemtoReg bira podatak odredinog registra izmeu LMD i ALUrez. US RegWR izdaje nalog za upis u odredini registar. 14

24.

Strukturni hazardi

Situacija koje dovode do zastoja u radu protonog procesora se nazivaju hazaradima. Prema uzroku razlikujemo strukturne hazarde, hazarde podataka i hupravaljanja. Strukturni hazardi nastaju zbog nedostatka hardverskih resursa, pa zbog toga dolazi do prekida u izvrenju pojedinih instrukcija. Ovo se javlja kada dve instrukcije koje se nalaze u razliitim stepenima zahtevaju isti resurs. Pojava strukturnih hazarda se moe elimisati uvoem vie kritinih funkcionalnih jedinica, protonom organizacijom kritinih funkcionalnih jedinica, poveanjem broja portova za upis i itanje kod polja registara. Meutim treba voditi rauna da li svaki put treba eleminisati strukturne hazarde, jer protona funkcionalna jedinica ima duu latenciju, to pak moe poveati pojavu hazarda podataka a oni isto negativno utiu na performanse procesora.

25.

Klasifikacija hazarda podataka

Posmatramo dve instrukcije Ij i Ik izmeu kojih postoje zavisnosti po podacima preko registra Ri, pri emu Ik sledi Ij. Ako se ove dve instrukcije istovremeno nau u protonom procesoru, mogu se javiti sledei hazardi podataka: 1. itanje nakon upisa instrukcija Ik pokuava da proita izvorini operand iz Ri pre no to Ij obavi upis, tako da Ik nekorektno uzima staru vrednost podatka. Ovo je najei tip hazarda podataka. Zavisnost po podacima, koja dovodi do njega naziva se prava zavisnost. 2. Upis nakon upisa Ik pokuava da upie operand pre nego to ga je upisala Ij. Upisi su obavljeni obrnutim redosledom. Zavisnost po podacima, koja dovodi do njega naziva se izlazna zavisnost. Ovaj hazard je prisutan samo u protonom procesoru koji vri upis u dva ili vie stepena. 3. Upis nakon itanja - Ik pokuava upis u odredite pre nego to ga proita Ij, tj. tako da Ij nekorektno dobija novu vrednost. Zavisnost po podacima, koja dovodi do njega naziva se anti-zavisnost. Ova zavisnost se takoe ne moe javiti u naem protonom sistemu, obzirom da se sva itanja obavljaju rano u ID stepenu, a svi upisi kasno u WB stepenu.

26.

Izbegavanje hazarda podataka premoavanjem

Hazardi bi mogli da se izbegnu ukoliko bi se izvorini operandi dostavili zavisnim instrukcijama pre nego to ih je prethodna instrukcija (instrukcija proizvoa) upisala u odredini registar. Putevi premoavanja su na slici prikazani isprekidanim linijama. Moe se primetiti da ove linije idu na oba ulaza ALU-a to zapravo znai da premoavanje moe biti za oba izvorina operanda. Premoavanjem se upravlja zahvaljujui multiplekserima, tanije njihovim adresiranjem na ulazima ALU-a i memorije podataka. Ove signale generie jedinica za upravljanje premoavanjem, koja se nalazi u EX stepenu. Jo jedna novina na slici u odnosu na sliku bez premoavanja je i jedinica za otkrivanje hazarda koja se nalazi u ID stepenu.

27.

Hazardi podataka koji se ne mogu izbei premoavanjem

Instrukcija Load je karakteristina iz vie razloga. Obzirom da ova instrukcija vri itanje iz memorije, podatak se instrukciji koji sledi prilikom premoavanja moe dostaviti nakon ME stepena. Ova pojava se oznaava kao blokiranje punjenjem i to je situacija u kojoj se javlja hazard i koji se zapravo ne moe izbei premoavanjem. Takoe treba imati na umu da se kod savremenih protonih procesora pribavljanje iz memorije obavlja u vie taktnih ciklusa. Razlog ovoga lei u injenici da dananji procesori rade na uestanostima reda GHz, a da sa druge strane ne postoje memorije koje bi ispratile ove brzine. Trajanje zastoja bi se produilo na vie taktnih ciklusa, to je odreeno latencijom operacije pribavljanja 15

operanada. Pod latencijom operacije podrazumevamo broj taktnih ciklusa koji mora protei od poetka operacije do korienja rezultata te operacije u drugoj instrukciji. Naprimer, ako je latencija operacije load dva taktna ciklusa, zastoj u izvrenju zavisne instrukcije-neposrednog sledbenika instrukcije Load, trajao bi takoe dva taktna ciklusa. Otkrivanje ovog karakteristinog hazarda se takoe otkriva u ID stepenu. Treba napomenuti da se ovaj hazard nee javiti ukoliko instrukciju Load sledi instrukcija Store. Naravno, ova pria vai samo ukoliko postoji zavisnot po podacima izmeu Load instrukcije i instrukcije koja sledi.

28.

Izbegavanje hazarda podataka planiranjem instrukcija

Do pojave hazarda dolazi kada je rastojanje izmeu zavisnih instrukcija 4, odnosno kada je omogueno upis i itanje registra u istom taktnom ciklusu 3. Jasno je, da kada bi se ovo rastojanje povealo ne bi dolo do hazarda, a ovo je pak mogue premetanjem zavishih instrukcija. Treba voditi rauna da se ne narui smisao programa. Ukoliko se pak koristi premoavanje, premetanje instrukcija tj. planiranje instrukcija je potrebno samo za instrukciju Load i instrukciju koja je sledi. Drugim reima, potrebno je umetnuti jednu nezavisnu instrukciju posle Load. Izbegavanje hazarda podataka planiranjem instrukcija donosi sa sobom odreenu cenu, a to je da je potrebna analiza zavisnosti po podacima i razdvajanje zavisnih instrukcija na bezbedno rastojanje umetanjem nezavisnih instrukcija izmeu njih i povaava se broj angaovanih registara. Planiranje instrukcija obavljaju kompilatori.

29.

Hazardi upravljanja

Hazardi upravljanja se javljaju pri izvrenju instrukcija za upravljanje tokom programa. U ovu grupu instrukcija spadaju instrukcije grananja, skokova, poziva procedura i povratka iz procedura. Instrukcija grananja predstavlja najoptiji predstavnik ove grupe, obzirom da ona zahteva izraunavanje adrese odredita grananja i ishoda uslova grananja. Pa se zbog toga moe govoriti o hazardima grananja. Hazardi grananja nastaju zbog toga to se na vreme ne odredi adresa instrukcije koja e biti izvrena nakon instrukcije grananja. Ishod uslova grananja i adresa odredita grananja se odreuju u EX stepenu, a adresa sledee instrukcije se prenosi u PC u 4 stepenu, dok se instrukcija pribavlja u 5 stepenu. Znai, odredite grananja e se odrediti tek u WB stepenu instrukcije grananja. Prema tome jasno je da e se javiti hazard grananja tj. program se nee korektno izvriti (za sluaj instrukcije store) jer e se izvriti naredna instrukcija kao da grananja nije ni bilo. Jedan od naina da se program korektno izvri jeste da se u ID fazi instrukcije grananja ustanovi da jeste re o instrukciji grananja i da se naredna instrukcija zaustavi dok se ne utvrdi da li e biti grananja ili ne. Zbog ovoga e se izgubiti tri taktna ciklusa, ali e se program korektno izvriti. Ovaj nain se naziva grananje sa zastojima do odreivanje sledbenika grananja. Zastoji koji su potrebni u pribavljanju instrukcije-sledbenika grananja razlikuju se od zastoja potrebnih za izbegavanje hazarda podataka. Zastojima zbog hazarda podataka odlae se zavretak odreene faze instrukcije do prestanka uslova za nastavak hazarda. Izbegavanje hazarda grananja zahteva zastoje u pribavljanju instrukcije-dinamikog sledbenika grananja, pri emu se ignorie ve pribavljena instrukcija-sekvencijalni sledbenik grananja. Broj taktnih ciklusa od prve faze instrukcije grananja do pribavljanja instrukcije-sledbenika grananja, iskljuujui oba ova taktna ciklusa, naziva se kanjenje grananja. U naem protonom sistemu kaanjenje grananja iznosi tri taktna ciklusa.

30.

Smanjenje cene grananja

Postoji vie naina za snienje cene grananja u protonom procesoru. Neki od njih su: 1. Odreivanje ishoda grananja i odredite grananja u stepenu to bliem stepenu pribavljanja instrukcije 2. Pretpostavka da grananje nee biti obavljeno 3. Zakanjeno grananje 4. Predvianje grananja 5. Pribavljanje instrukcije i sa puta obavljenog i sa puta neobavljenog grananja 1. Razreenje grananja u stepenu to bliem stepenu pribavljanja instrukcija Hardver za izraunavanje adrese odredita grananja i proveru ispunjenja uslova grananja moemo premestiti iz EX stepena u ID stepen. Poto ALU mora ostati u EX stepenu, za proveru ispunjenja uslova grananja u ID stepenu uvedimo dodatni blok 16

uslova. Uteda u implementaciji bloka uslova i vremena za proveru ispunjenja uslova grananja opravdavaju reenje da se uslov grananja svede na jednakost (nejednakost) sadraja registra nuli. Zato je blok uslova na slici oznaen sa Zero. Ovim reenjem ALU, koja ostaje u EX stepenu, rastereuje se funkcije provere uslova grananja. Ako uz to obezbedimo da se ovako izraunata adresa odredita grananja upie u PC u toku ID faze instrukcije grananja, broj izgubljenih taktnih ciklusa zbog grananja moe se smanjiti sa tri na samo jedan. Napomenimo i ovde da se u IF fazi paralelno vri pribavljanje nove instrukcije i odreivanje adrese sledee instrukcije. Poto se aktivnosti u IF stepenu obavljaju za sve instrukcije, to implementacija lana "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. Taj zahtev implementira se obavljanjem logike I operacije izmeu signala Cond iz bloka Zero i upravljakog signala Branch. Ovo obezbeuje da se kao sledea instrukcija pribavi instrukcija sa adresom PC+4. Upravljaki 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. Primer hazarda i njegovog razreenja Ovo reenje moe uvesti hazard podataka izmeu instrukcije grananja i prethodne instrukcije, iji se rezultat koristi u instrukciji grananja. Evo takvog primera i prikaza izvrenja instrukcije grananja u takvim sluajevima. Ovde se podrazumeva da postoji jo jedan put premoavanja sa izlaza EX/ME.ALUrez na ulaz u blok odluivanja Zero u ID stepenu preko dodatnog multipleksera. 2.1 Pretpostavka da se grananje uvek obavlja Reenje kada polazimo od toga da se grananje uvek obavlja zahteva zastoj u prelasku na sledeu instrukciju do izraunavanja adrese odredita grananja. U razmatranom protonom procesoru taj zastoj traje jedan taktni ciklus. Istovremeno je poznat i ishod uslova grananja. ta kada uslov grananja ipak nije ispunjen? Tada se pribavlja instrukcijasekvencijalni sledbenik instrukcije grananja. Cena obavljenog i neobavljenog grananja je tada ista i iznosi cbt = cbn = 1 taktni ciklus. Osim umetanja zastoja, ovo reenje ne unosi druge komplikacije u rad protonog procesora. 2.2 Pretpostavka da grananje nee biti obavljeno Reenje kada polazimo od toga da se grananje nikada ne obavlja doputa da se posle instrukcija grananja uvek nastavi sa pribavljanjem instrukcija sa puta neobavljenog grananja, to ne zahteva zastoje. Po razreenju ishoda grananja, ako do grananja zaista ne dolazi, nastavlja se sa izvrenjem pribavljenih instrukcija. Ako, meutim, do grananja doe, moraju se odbaciti pribavljene instrukcije, i zapoeti novo pribavljenje od instrukcije odredita grananja. Cena neobavljenog grananja je cbn = 0. Cena obavljenog grananja za na protoni procesor je cbt = 1. Ovo reenje zahteva da se pri obavljenom grananju ponite pribavljene instrukcije sa puta neobavljenog grananja, i to pre no to eventualno nekorektno promene stanje programa. U naem protonom sistemu te opasnosti nema, obzirom na malo kanjenje grananja (od jednog taktnog ciklusa). 3. Zakanjeno grananje Zakanjeno grananje je koncepcija koja obezbeuje da se posle instrukcije grananja, nezavisno od ishoda grananja, pribavi k instrukcija sa puta neobavljenog grananja, pre no pto se eventualno pree na instrukciju-odredite grananja. Ovih k instrukcija, sekvencijalnih sledbenika instrukcije grananja, nalaze se u takozvanim slotovima kanjenja grananja. Zbog toga to se sledbenik grananja odreuje ID fazi, potreban je samo jedan slot kanjenja. U slotove kanjenja grananja mogu se umetnuti instrukcije uzete: a. ispred instrukcije grananja Zahtev: Grananje ne sme zavisiti od premetene instrukcije. Kada poboljava perform: uvek, b. sa puta obavljanog grananja Zahtevi: Ako se grananje ne obavi, izvrene instrukcije ne smeju promeniti stanje procesa. Moe zahtevati dupliranje instrukcija. Kada pobolj. perform: kada se granje obavlja. Moe produiti program ako se instrukcije dupliraju. c. sa puta neobavljenog grananja Zahtevi: Ako se grananje obavi, izvrene instrukcije ne smeju promeniti stanje procesa. Kada pobolj. perform: kada se grananje ne obavlja. 4. Predvianje grananja Predvianje ishoda grananja moe doprineti smanjenju izgubljenih taktnih ciklusa zbog grananja. Ishod predvianja moe biti da se grananje nee obaviti ili da e se grananje obaviti. Situacija je sloenija kada je ishod predvianja da e se grananje obaviti. Da bi se zastoji eliminisali treba se odredite grananja odrediti jo prilikom pribavljanja instrukcije, a da bi ovo bilo mogue potrebno je da se ve u pribavljaju instrukcije zna da je instrukcija zapravo instrukcija grananja. Ovo se moe postii uvoenjem bafera odredita grananja. Kada se pribavlja instrukcija, pristupa se baferu i trai se odgovarajua stavka. Ukoliko se nae, predvianje je da e se obaviti grananje i pribavlja se odredite grananja. Predvianje ishoda grananja moe biti statiko i dinamiko. Statiko predvianje vri se takozvanim profilisanjem programa. To je viekratno prethodno izvravanje programa sa zadatim ulaznim podacima, 17

pri kome se za svaku izvrenu instrukciju grananja belee ishodi grananja. Ovako prikupljeni ishodi grananja pridruuju se, u vidu dodatnog bita, svakoj instrukciji grananja u fazi kompilovanja programa. Dinamiko predvianje grananja zahteva poseban hardver, kojim se u toku izvrenja programa belee ishodi izvrenih instrukcija grananja, takozvana istorija grananja, i na osnovu nje predviaju (tj. predskazuju) ishodi grananja pri sledeem izvrenju svake instrukcije grananja. Poto stvarni ishodi grananja mogu biti suprotni od predvienih, moramo imati mehanizam za ponitavanje dejstva pogreno pribavljenih instrukcija. Ispravno predvianje grananja navedenim sredstvima moe se postii u granicama od 80% - 97%. 5. Pribavljanje instrukcije sa oba mogua puta Ovo reenje se moe primeniti u protonim procesorima sa zahtevanim izrazito visokim performansama. Implementacija ovog reenja na protonim procesorima sa velikim kanjenjem grananja moe biti neprihvatljivo skupo.

31.

Proirenje protonog sistema za rukovanje operacijama sa vie ciklusa izvrenja

Operacije kao to su mnoenje, deljenje zahtevaju dua vremena izvrenja i ona se izvravaju na posebnim hardverskim jedinicama. Takoe se i operacija sa rad sa realnim operandima u obliku sa pokretnom zapetom izvravaju na posebnim hardverskim jedinicama. esto se ove hardverske jedinice nazivaju funkcionalnim jedinicama procesora. Neke od funkcionalnih jedinica na protonom procesoru su: 1. Celobrojna jedinica koja obavlja aritmetiko-logike operacije, Load, Store, grananje; arit-log. Operacije traju po 1 TC, latencija 0; a load i store 2 TC, latencija za load 1, a store 2; 2. Mnoa celih brojeva i brojeva sa pokretnom zapetom: mnoenje traje 5 TC; latencija 4; 3. FP sabira 3 TC; latencija 2; 4. Delitelj celobrojnih i FP operanada; deljenje traje 10 TC; latencija 9; neprotono organizovan; Protono organizovane funkcionalne jedinice Protono organizovana funkcionalna jedinica moe da, kao i protoni procesor, preklapa izvrenje vie operacija. U stanju je da naloge za nove operacije prihvata u svakom taktnom ciklusu. Ekvivalentna je veem broju neprotonih istoimenih funkcionalnih jedinica. Protoni sistem sa navedenim funkcionalnim jedinicama prikazan je na sledeoj slici. Protone funkcionalne jedinice ralanjene su na stepene, kojih u mnoau ima pet, a u FP sabirau tri. Kao i do sada, susedni stepeni razdvojeni su protonim registrima, odnosno leevima. Obzirom da se protoni sistem iza ID stepena grana u etiri izvrne funkcionalne jedinice, smatraemo da izmeu ID stepena i ovih jedinica imamo etiri protona registra: ID/EX, ID/M1, ID/A1 i ID/FPID (FPID oznaava Fpinteger delitelj). Takoe, izmeu funkcionalnih jedinica i WB stepena imamo etri protona registra: ME/WB, M5/WB, A3/WB i

FPID/WB.

Za protone sisteme sa ovim funkcionalnim jedinicama potrebno je izdvojiti dve glavne osobine: 1. Latencija operacije je broj taktnih ciklusa u kojima program mora da eka na rezultat tekue operacije. Latencije se moe izraziti kao broj stepena iza EX faze. 2. Interval ponavljanja je broj TC koji mora protei izmeu izdavanja dve operacije istog tipa. U ovakvom protonom sistemu moe doi do: 1. pojave strukturnog hazarda zbog zauzea delitelja, koji nije protono organizovan; 2. zbog razliitog trajanja operacija, broj istovremenih upisa u polje registara moe biti vei od jedan; 3. mogua je pojava WAW hazarda, poto instrukcije ne dospevaju u WB fazu programiranim redosledom; WAR hazardi nisu mogui, poto se registri itaju samo u ID stepenu, 4. redosled kompletiranja instrukcija moe se razlikovati od redosleda izdavanja instrukcija, to moe dovesti do problema sa izuzecima, 5. zbog duine latencije operacija, zastoji zbog RAW hazarda deavae se ee. esti zastoji u napredovanju zavisnih instrukcija i pored korienja premoavanja, govore da velike latencije operacija znatno umanjuju efikasnost premoavanja u izbegavanju hazarda podataka u ovakvim protonim sistemima. 18