18
1 1. MIPS i MFLOPS ....................................................................................................................... 2 2. Amdahl-ov zakon.................................................................................................................... 2 3. Tipovi arhitektura procesora..................................................................................................... 3 4. Registri procesora ................................................................................................................... 3 5. Neposredno, registarsko i indirektno registarsko adresiranje ........................................................ 4 6. Bazno adresiranje i indeksno adresiranje ................................................................................... 4 7. Memorijsko indirektno adresiranje i adresiranje relativno u odnosu na programski brojač ................ 4 8. Autoinkrementno i dekrementno adresiranje .............................................................................. 5 9. Redosled bajtova u podacima i poravnati pristupi memoriji .......................................................... 5 10. Instrukcije za upravljanje tokom programa ................................................................................ 6 11. Sistem prekida računara .......................................................................................................... 7 12. Registrovanje i opsluživanje spoljašnjih prekida i unutrašnjih izuzetaka ......................................... 7 13. Arhitektura i formati instrukcija MIPS procesora ......................................................................... 8 14. Višetaktna implementacija procesora ........................................................................................ 9 15. Upravljačka jedinica (UJ) procesora (opšte) ............................................................................. 10 16. Upravljačka jedinica sa hardverskim (direktnim) upravljanjem ................................................... 10 17. Projektovanje UJ metodom tablice stanja................................................................................. 11 18. Projektovanje UJ metodom elemenata za kašnjenje .................................................................. 11 19. Mikroprogramski organizovana UJ........................................................................................... 12 20. Formati mikroinstrukcija i paralelizam u mikroinstrukcijama....................................................... 12 21. Protočna organizacija procesora ............................................................................................. 13 22. Putevi podatak protočno organizovanog procesora .................................................................... 13 23. Upravljanje protočnim procesorom.......................................................................................... 14 24. Strukturni hazardi ................................................................................................................. 15 25. Klasifikacija hazarda podataka................................................................................................ 15 26. Izbegavanje hazarda podataka premošćavanjem ...................................................................... 15 27. Hazardi podataka koji se ne mogu izbeći premošćavanjem......................................................... 15 28. Izbegavanje hazarda podataka planiranjem instrukcija .............................................................. 16 29. Hazardi upravljanja............................................................................................................... 16 30. Smanjenje cene grananja ...................................................................................................... 16 31. Proširenje protočnog sistema za rukovanje operacijama sa više ciklusa izvršenja.......................... 18

AR Usmeni I Kolokvijum

  • Upload
    jasheem

  • View
    129

  • Download
    3

Embed Size (px)

Citation preview

Page 1: AR Usmeni I Kolokvijum

1

1. MIPS i MFLOPS....................................................................................................................... 2

2. Amdahl-ov zakon.................................................................................................................... 2

3. Tipovi arhitektura procesora..................................................................................................... 3

4. Registri procesora................................................................................................................... 3

5. Neposredno, registarsko i indirektno registarsko adresiranje ........................................................ 4

6. Bazno adresiranje i indeksno adresiranje ................................................................................... 4

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

8. Autoinkrementno i dekrementno adresiranje .............................................................................. 5

9. Redosled bajtova u podacima i poravnati pristupi memoriji .......................................................... 5

10. Instrukcije za upravljanje tokom programa................................................................................ 6

11. Sistem prekida računara.......................................................................................................... 7

12. Registrovanje i opsluživanje spoljašnjih prekida i unutrašnjih izuzetaka......................................... 7

13. Arhitektura i formati instrukcija MIPS procesora ......................................................................... 8

14. Višetaktna implementacija procesora ........................................................................................ 9

15. Upravljačka jedinica (UJ) procesora (opšte) ............................................................................. 10

16. Upravljačka jedinica sa hardverskim (direktnim) upravljanjem ................................................... 10

17. Projektovanje UJ metodom tablice stanja................................................................................. 11

18. Projektovanje UJ metodom elemenata za kašnjenje .................................................................. 11

19. Mikroprogramski organizovana UJ........................................................................................... 12

20. Formati mikroinstrukcija i paralelizam u mikroinstrukcijama....................................................... 12

21. Protočna organizacija procesora ............................................................................................. 13

22. Putevi podatak protočno organizovanog procesora.................................................................... 13

23. Upravljanje protočnim procesorom.......................................................................................... 14

24. Strukturni hazardi................................................................................................................. 15

25. Klasifikacija hazarda podataka................................................................................................ 15

26. Izbegavanje hazarda podataka premošćavanjem ...................................................................... 15

27. Hazardi podataka koji se ne mogu izbeći premošćavanjem......................................................... 15

28. Izbegavanje hazarda podataka planiranjem instrukcija.............................................................. 16

29. Hazardi upravljanja............................................................................................................... 16

30. Smanjenje cene grananja ...................................................................................................... 16

31. Proširenje protočnog sistema za rukovanje operacijama sa više ciklusa izvršenja.......................... 18

Page 2: AR Usmeni I Kolokvijum

2

1. MIPS i MFLOPS

(Million Instructions Per Second) predstavlja meru performansi procesora. Ona se izržava kao broj miliona izvršenih instrukcija u sekundi. Za dati program MIPS se dobija kao:

66 10

_tan10_

=CPI

taktaostucesizvrsenjavreme

ainstrukcijbrMIPS

MIPS se može predstaviti i preko vremena izvršenja programa: 610

._×

=MIPS

ainstrukcijbrizvrsenjavreme

Drugim rečima, MIPS je brzina kojom procesor izvršava instrukcije, računar sa više MIPS-ova izvršavaće program za kraće vreme. Potrebno je napomenuti da MIPS nije pouzdana mera performansi procesora iz više razloga:

a. MIPS zavisi od skupa instrukcija, teško je upoređivati računare sa različitim skupovima instrukcija, b. MIPS varira od programa do programa za isti računar, c. MIPS može ocenjivati promene suprotno menjanju performansi, mereno objektivnim merilima. Npr. numerički procesor (jedna instrukcija numeričkog 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. Takođe se ona koristi i za ocenu sposobnosti procesora pri računanju sa realnim podacima, tj. podacima sa pokretnom zapetom. MFLOPS se izražava kao broj miliona operacija sa pokretnom zapetom u sekundi (Million Floating Point Operations Per Second ili ti MFLOPS - megaflops).

610________.

×=

sekundamauizvrsenjavremeprogramuuzapetompokretnomsaoperacijabrMFLOPS

Objektivnost MFLOPS-ova može biti ugrožena manipulisanjem kratkim i dugim operacijama sa pokretnom zapetom.

2. Amdahl-ov zakon

Prilikom projektovanja hardvera i softvera računara potrebno je voditi se preporukom: da se aktivnosti koje se najčešće obavljaju, obavljaju brže, a aktivnosti koje se retko obavljaju mogu obavljati sporije. Amdahl je polazeći od ove preporuke dao način na koji se mogu ocenjivati sistemi. Mogućnost kvantitativne ocene uticaja pojedinih rešenja na efikasnost obavljanja posla pruža nam Amdahl-ov zakon.

Neka je ST vreme izvršenja nekog zadatka, a jedan deo tog zadatka traje PDT i želimo da to smanjimo DPB

puta tako da novo vreme traje D

PDPB

T . Ovim poboljšanjem, brzina kojom se posmatrani zadatak izvršava

je povećana, i povećanje brzine iznosi:

empoboljšanjsazadatkaceizvršenjaVremeapoboljšanjbezzadatkaceizvršenjaVremebrzinePovecanje

__log_____log____ =

Skraćenjem vremena izvršenja, performanse se poboljšavaju i povećanje brzine iznosi:

apoboljšanjbezzadatakceozaePerformansimapoboljšanjsazadatakceozaePerformansbrzinePovecanje

___________ =

Ako je novo vreme izvršenja zadatka NT ( SN TT < ), i ako PDTT SPD ×= , gde je PD učešće dela zadatka

koji poboljšavamo u ukupnom vremenu izvršenja zadatka, onda dobijamo: ])1[(D

SN PBPDPDTT +−= .

Ako sa UPB označimo ukupno povećanje brzine sa kojom se izvršava ceo zadatak, odnosno

N

SU T

TPB = ,

onda dobijamo:

D

U

PBPDPD

PB+−

=1

1 .

Ovaj poslednji izraz je takozvani Amdhl-ov zakon. On nas upućuje da, u nastojanju da poboljšamo performanse sistema, treba da poboljšamo ona rešenja koja imaju veliko učešće u ukupnim aktivnostima sistema.

Page 3: AR Usmeni I Kolokvijum

3

3. Tipovi arhitektura procesora

Razlikujemo tri tipa arhitekure procesora: 1. Akumulatorske arhitekture, 2. Stek arhitekture i 3. Arhitekture sa registrima opšte namene.

Ova podela je izvršena prema mestu privremenog čuvanja operanada.

Akumulatorska arhitektura se odlikuje postojanjem jednog ragistra u procesoru, nazvanog akumulator, koji učestvuje 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 učestvuje u obavljanju svih operacija procesora. Ovo uslovljava povećanje obima podataka koji se prenose između 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 viših programskih jezika. Centralna memorijska struktura ove arhitekture je stek (stack). Operandi koji učestvuju u aritmetičko – logičkim operacijama nalaze se na vrhu steka, tako da nije potrebno eksplicitno ih adresirati. Operacijom se gube oba izvorišna operanda sa vrha steka, a rezultat postaje novi vrh steka. Tipična aritmetičko – logička operacija (npr. ADD) ima sledeće dejstvo:

ADD S[SP+1]←S[SP+1] + S[SP], SP←SP +1

Ovde S označava 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 kaže da je nula adresni procesor. Veliki nedostatak stek arhitekture procesora su ograničenje 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 korišćenja POP pokazivač se inkrementira.

Arhitekture sa registrima opšte namene sadrže grupu registara procesora koji se mogu koristiti u različite svrhe: za privremeno čuvanje operanada, za učešće u izvršavanju operacija, za adresiranje operanada u memoriji, za prenos parametara pri pozivu procedura itd. Broj registara opšte namene ide, u zavisnosti od procesora, od osam do preko stotinu. Današnji procesori sadrže najčešće po 32 registra opšte 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 dopušta da jedan od dva izvorišna operanda bude u memoriji. Ovo omogućava da se podacima može pristupati bez prethodnog punjenja registara. Instrukcije su dvoadresne. R+M dopušta da operandi i izvorišni i odredišni mogu biti i u registrima i u memoriji. Ovo je ujedno i najkompaktnija arh. Kao prednost se može navesti da ne troši registre za privremeno čuvanje operanada, dok kao nedostak možemo 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 sledeće registre:

• Programski brojač, sadrži mem. adresu instrukcije koju treba pribaviti. • Registar intstrukcija, u ovaj registar se prenosi pribavljena instrukcija i u njemu se drži do

završetka instrukcije. • Adresni registar memorije, sadrži adresu memorijske lokacije kojoj se obraća procesor pri čitanju

ili upisu podatka iz/u memoriju. • Prihvatni registar memorije, sadrži podatak pročitan ili koji treba upisati iz/u memoriju.

Računar programe izvršava ili u korisničkom ili u supervizorskom načinu rada u zavisnosti da li se radi o korisničkim programima ili sistemskim. Programima koji se izvršavaju u korisničkom načinu rada su dostupni korisnički vidljivi registri i na njih korisnik može direktno uticati. U ovu grupu registara spadaju:

• Registri opšte namene, koriste se za privremeno čuvanje celobrojnih operanada, adresiranje operanada u memoriji, učešće u operacijama. Najčešći broj ovih registara je 32. Ovi registri sadrže ulazni i izlani port što znači da se istovremeno iz pojedinih registara podaci mogu čitati, a iz drugih upisivati podaci. S tim da važi da se iz jednog registra ne može istovremeno čitati i upisavati.

• FP registri, grupa registara za rad sa realnim podacima u formatu sa pokretnom zapetom. Dužine su 32 ili 64 bita. Broj FP registara je između 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 veći broj jednobitnih registara (indikatora)

Page 4: AR Usmeni I Kolokvijum

4

koji se postavljaju ili brišu. Neki od ovih indikatora su SF – indikator znaka, ZF – indikator nule, CF – indikator prenosa, AF – indikator pomoćnog prenosa, PF – indikator parnosti, OF – indikator prekoračenja.

Sistemskim registrima se može pristupiti samo u kernel načinu rada sistema. Ovi registri učestvuju u upravljanju prekidima, prevođenju sistema iz korisničkog u kernel u obrnuto, prevođenje virtuelnih u fizičke adrese, upravljanju keš memorijama. Npr. adresni registar rukovaoca prekida koji sadrži 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.

Način adresiranja je način na koji se primarna adresa transformiše u efektivnu adresu.

5. Neposredno, registarsko i indirektno registarsko adresiranje

Neposredno – operand se nalazi u sastavu same instrukcije. Operand je raspoloživ bez dodatnih aktivnosti. Koriste se u aritmetičkim operacijama, pri poređenjima u grananju... Aprim = Aef = PC

Registarsko – operand je prisutan u nekom registru Rj procesora. Vreme pristupa sa ovim načinom adresiranja je najkraće moguće. Aprim = Aef = Rj

Registarsko indirektno – operand u memoriji adresiran sadržajem nekog registra opšte namene Rj. Aprim = Rj; Aef = (Rj)

6. Bazno adresiranje i indeksno adresiranje

Bazno – operand u memoriji je adresiran zbirom sadržaja baznog registra i pomeraja navedenog u odgovarajućem adresnom polju instrukcije za taj operand. Bazni registar može biti poseban adresni registar ili neki registar opšte namene. Pomeraj predstavlja adresu lokacije relativnu u odnosu na sadržaj baznog registra. Omogugućava da se područje memorije menja u toku izvršavanja programa, jednostavno upisom baznog registra početnom

adresom područja memorije. Aprim = BR, pomeraj; Aef = (BR) + pomeraj

Indeksno – operand u memoriji je adresiran zbirom sadržaja registara Rj i Rk. Rj sadrži početnu adresu. Rj sadrži početnu adresu područja u memoriji, Rk je indeksni registar koji sadrži 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 odoženi adresiranje – registar Rj naveden u adresnom polju instrukcije adresira memorijsku lokaciju koja svojim sadržajem adresira operand u memoriji. Neefikasan prema kriterijumu vremena pristupa jer se dvaputa pristupa memoriji. Aprim = Rj; Aef = (M[Rj])

Page 5: AR Usmeni I Kolokvijum

5

Adr. Rel. U odnosu na PC – u adresnom polju se navodi otklon koji predstavlja razliku između adrese odredišta grananja i trenutnog sadržaja programskog brojača. Otklon može 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 korišćenog registra Rj posle (ili pre) obraćanja memoriji. Rj se može inkrementirati vrednošću d. Aprim = Rj; Aef = (Rj), Rj <- Rj+d

Autodekrementno – za razliku autoinkrementnog, registar Rj se dekrementira pre (ili posle) obraćanja memoriji. Aprim = Rj; Rj <- Rj-d, Aef = (Rj)

Ovi načini adresiranja mogu uštedeti 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 računara adresiva na nivou bajtova i oni podržavaju rad sa podacima dužine bajt, polureč, reč i dvostruka reč. Postoje dva načina uređivanje bajtova unutar podaka sa dužinom većom od bajta: adresiranje repa i adresiranje glave. Kod adresiranje repa, adresa bajta najmanje težine je adresa reči xx...xx002, dok je kod adresiranja glave to adresa bajta najveće. Redosled bajtova je beznačajan kada se radi samo sa jednim računarom, on je pak važan ako se programi obraćaju delovima podataka ili kada se razmenjuju podaci između dva računara koji koriste različite redoslede bajtova u rečima.

Takođe i za redosled bitova u podatku postoje dva načina: bit najveće težine nosi oznaku n-1, a bit najmanje težine nosi oznaku 0 i bit najveće težini nosi oznaku 0, a bit najmanje težine nosi oznaku n-1. Prvo rešenje u kombinaciji sa adresiranjem repa daje konzistentan redosled bajtova i bitova u podatku, što takođe važi i za drugo rešenja u kombinaciji sa adresiranjem glave. Međutim ovo drugo rešenje dosta usložnjava rad sa delovima podataka, pa se s toga sa adresiranjem glave koristi prvi način redosleda bitova.

Još jedna važna stavka kod arhitekture procesora je da li su podaci u memoriji organizovani kao poravnati pristup memoriji ili neporavnati. Za pristup podatku dužine l bajtova sa adresom a u memoriji kažemo da

Page 6: AR Usmeni I Kolokvijum

6

je poravnati ako je k adresnih bitova najmanje težine jednako 0. Korišćenje poravnatog pristupa memoriji je znatno bolje, vremenski efikasnije. Kod neporavnatog pristupa memoriji potreban je znatno složeniji hardver koji će pravilno pozicionirati podatak u registru u slučaju čitanja odnosno unutar memorijske lokacije za upisavanje.

10. Instrukcije za upravljanje tokom programa

Grupa instrukcija za upravljanje tokom programa sadrži instrukcije bezuslovnog i uslovnog grananja, skokova, poziva procedura i povratka iz procedura. U većini ovih instrukcija se za odredište 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 Primer instrukcije

Značenje

Jump (skok) J ime PC <- PC+4+ime

Jump register (skok određen registrom) JR R2 PC <- R2

Branch if equal zero (grananje ako je nula)

BEQZ R4, ime If (R4==0) PC <- PC+4+ime else PC <- PC+4

Jump and link (skoči i poveži) JAL ime R31 <- PC+4, PC <- PC+4+ime

Jump and link register (skoči i poveži preko registra)

JALR R2 R31 <- PC+4, PC <- R2

Branch if equal zero and link (grananje i povezivanje ako je nula)

BEQZAL R4, ime If (R4==0) R31 <- PC+4, PC <- PC+4+ime else PC <- PC+4

Pri pozivu i izvršenju procedure treba obaviti sledeće aktivnosti: 1. Smestiti parametre na mesto gde im procedura može pristupiti. 2. Preneti upravljanje proceduri. 3. Zatražiti memorijske resurse potrebne proceduri. 4. Izvršiti naloženi zadatak. 5. Smestiti rezultate procedure na mesto gde im pozivajući program može pristupiti. 6. Vratiti upravljanje na polaznu tačku, pošto procedura može biti pozivana sa različitih tačaka u programu.

U MIPS arhitekturi za prenos parametara i vraćanje rezultata, kao i za čuvanje adrese povratka u pozivajući program koriste se registri R4-R7 za prenos parametara u proceduru, R2-R3 za vraćanje rezultata u pozivajući program, R31 za pamćenje adrese povratka u pozivajući 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 određenom arhitekturom R31. U slučaju ugnježdenja nove procedure, na primer PROCj, u izvršavanu proceduru, na primer PROCi, potrebno je najpre zapamtiti sadržaj registra R31 (adresu povratka iz PROCi) recimo u steku, pa tek onda pozvati PROCj. Povratak iz izvršavane procedure u pozivajući program vrši se instrukcijom JR R31.

Instrukcijama uslovnog grananja proverava se ispunjenje zadatih uslova na osnovu određenih relacija, i ako su uslovi ispunjeni grananje se obavlja, inače ono izostaje. Često je pogodno ove aktivnosti razdvojiti na: a1 -> proveru zadovoljenja određene relacije i upis ishoda te provere na predviđenom mestu, a2 -> ispitivanje ishoda prethodno obavljene provere i grananje ako je on pozitivan.

Moguća rešenja instrukcija uslovnog grananja su: implicitni registar koda uslova – indikatori se postavljaju ALU operacijama. Prednost ovog načina je što postavljanje indikatora ne zahteva dodatne troškove, a nedostak što registar koda uslova povećava obim podataka o stanju programa. Navedene aktivnosti se obavljaju odvojenim instrukcijama. Između 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 opšte namene, koji eksplicitno adresiran; poređenje i grananje – poređenje je deo grananja. Aktivnosti se obavljaju jednom instrukcijom. Prednost je što se koristi jedna umesto dve instrukcije za grananje, a nedostak što obim posla može biti prevelik za jednu instrukciju.

Page 7: AR Usmeni I Kolokvijum

7

11. Sistem prekida računara

Termin prekid se koristi da označi bilo koji neočekivan događaj, koji uzrokuje da CP prekine tekuće izvršavanje programa i pređe na drugi program koji opslužuje prekid – rukovaoc prekida. Prekidi se koirste za neočekivani događaje koji se mogu generisati van CP, a za izuzetke unutar CP. Neki od događaja koji mogu izazvati prekid odnosno izuzetak su:

1. Zahtevi od U/I uređaja 2. Nestanak napona napajanja 3. Program korisnika zahteva usluge OS 4. Prekidi zahtevani od programera 5. Greška stranice 6. Greška u radu hardvera (može biti i asinhron i sinhron događaj) 7. Greške u aritmetici sa pokretnom zapetom 8. Neporavnati pristup memorije, ukoliko nije omogućen za datu arhitekturu 9. Korišćenje nedefinisane instrukcije 10. Prekoračenje i potkoračenje u celobrojnoj aritmetici

Asinhroni događaji: kao što su 1. i 2., a sinhroni događaji: 3-10. Klasifikacija izuzetaka se može izvršiti prema načinu na koji se izveštava o njihovom nastanku, kao i prema tome da li je instrukcija koja je izazvala izuzetak može restartovati bez gubitaka kontinuiteta programa i to na greške, trapove i izuzetke.

Greška se dojavljuje u toku izvršenja instrukcija. Dopušta da se program nastavi bez gubitka kontinuiteta programa. Adresa povratka je adresa instrukcije u kojoj se javila greška. Trap se dojavljuje neposredno posle izvršenja instrukcija u kojoj se javio trap. Dopušta da se program nastavi bez gubitka kontinuiteta programa. Adresa povratka je adresa sledbenik instrukcije u odnosu na onu u kojoj se javio trap. Pobačaj ne izveštava preciznu lokaciju instrukcije u kojoj se javio izuzetak. Ne dopuštaju nastavljanje izvršenja programa.

Prekidi se mogu klasifikovati prema sledećim kriterijumima: sinhroni-asinhroni – da li se izuzetak javlja uvek na istom mestu, sa istim podacima; maskirljiv-nemaskirljiv – da li se može zabraniti programom korisnika. Ulazni priključci procesora za podnošenje zahteva za maskirljive i nemaskirljive prekide su odvojeni; zahteva od korisnika-prinudan – da li se zahteva direktno iz korisničkog programa; unutar-između instrukcija – da li se može sprečiti dovršavanje instrukcije; sa završetkom-nastavkom – da li se izvršavanje programa zaustavlja;

CP se o prekidima obaveštava preko izvesnog broja ulaznih priključaka. Kada procesor prihvati zahtev za prekid on to signalizira uređajima koji su zahtevali prekid preko posebnog priključka potvrde prekida. Tada se izvor prihvaćenog prekida mora identifikovati, da bi procesor mogao da pređe na izvršenje odgovarajućeg programa koji opslužuje prihvaćeni prekid.

12. Registrovanje i opsluživanje spoljašnjih prekida i unutrašnjih izuzetaka

Nakon što procesor prihvatio zahtev za prekid, kreće se sa opsluživanjem prekida i to na sledeći način:

1. CP šalje potvrdu da je prihvatio prekid i identifikuje izvor prekida. Identifikator izvora prekida se transformiše u adresu početka prekidnog programa. 2. CP zabranjuje prihvatanje novih prekida. Sadržaje registara PC, PSW i eventualno drugih sistemskih registara koji određuju stanje prekinutog programa pamti u steku ili za to predviđenim 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 sadržaji nesistemskih registara CP-a koji se koristi u tom programu. 5. Izvršava se prekidni program. 6. Ukoliko su korišćeni nesistemski registri (korak 4) u ovom koraku se obnavljaju njihovi sadržaji. 7. Zabranjuje se prihvatanje novih prekida. Obnavljaju se zapamćeni sadržaji PS-a, PSW-a i eventualno drugih sistemski registri prekinutog programa, a zatim se dozvoljava prihvatanje novih prekida i vraća se u prekinutom programu.

Aktivnosti 1, 2 i 3 u celosti ili delimično obavlja CP automatski, koristeći za to postojeći hardver. Aktivnosti 4, 5 i 6 obavljaju se u okviru prekidnog programa. Aktivnosti u okviru tačke 7 obavlja CP izvršenjem specijalne instrukcije RFE ili RFI (Return from exception/interrupt). Samo aktivnosti u tački 5 su korisne u užem smislu, ostale aktivnosti (režijske aktivnosti) omogućavaju ovakav način aktiviranja prekidnog programa.

Page 8: AR Usmeni I Kolokvijum

8

Neki procesori sadrže dodatna polja registara u vidu registara u senci koja se dodeljuju određenim tipovima izuzetaka. Time se umesto pamćenja i obnavljanja sadržaja registara iz arhitekturnog polja registara u koracima 4 i 6 jednostavno prelazi sa jednog na drugo polje registara, pa se tako skraćuje režijsko vreme pri opsluživanju izuzetaka.

Opsluživanje izuzetaka tipa grešaka 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 određuje adresa rukovoaca izuzetka.

Pamćenje 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 definiše centralni procesor (CPU) i tri koprocesora: - Koprocesor 0 (CP0) se implementira u istom čipu kao i CP i podržava vitruelni memorijski sistem i rukovanje izuzecima; - Koprocesor 1 (CP1) rezervisan je za FP koprocesor; - Koprocesor 2 (CP2) rezervisan je za specifične implementacije;

MIPS32 definiše sledeće registre, dužine po 32 bita: - 32 registra opšte namene (GPR), koji obrazuju polje celobrojnih registara; - Dva registara posebne namene HI i LO, u koje se smeštaju rezultati operacija množenja, deljenja, i množenja i akumuliranja; - Programski brojač PC, koji nije arhitekturno vidljivi registar; - 32 FP registra opšte namene (FPR), koji obrazuju polje FP registara. Svi FP registri raspoloživi su za korišćenje 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 upravljačkih registara, čija je uloga da identifikuju FP jedinicu i upravljaju njome;

Dva od 32 registra opšte namene imaju posebne namene: - R0 je ožičen na sadržaj 0 (on zapravo i nije pravi registar); on se može koristiti kada je potrebna vrednost 0 ili kao odredišni registar kada rezultat treba odbaciti; - R31 je odredišni registar u instrukcijama bezuslovnog i uslovnog skoka bez njegovog eksplicitnog navođenja u ovim instrukcijama; van njih on se koristi kao i svaki drugi registar opšte namene.

MIPS32 arhitektura definiše sledeće formate celobrojnih podataka: Bit, bajt, Polureč (2B), Reč (4B), Dvostruku reč (8B). Celobrojni podaci svih formata osim bita mogu biti označeni i neoznačeni. Neposredni operand u aritmetičkim instrukcijama i instrukcijama poređenja kada se uzima znakovno proširen do dužine registara. U logičkim instrukcijama neposredni operand se uzima kao neoznačen i proširuje se nulama do dužine registra. Arhitektura takođe definiše FP podatke sledećih tipova: 32-bitne FP podatke jednostruke preciznosti i 64-bitne FP podatke dvostruke preciznosti. Redosled bajtova može biti tipa adresiranje repa kao i adresiranje glave u zavisnosti kako se konfiguriše procesor.

MIPS arhitektura podržava sedeće načine adresiranja: Neposredno, Registarsko, Bazno (pomerajno) i PC – relativno (samo u instrukcijama grananja). Neposredno adresiranje koristi se za adresiranje jednog izvorišnog operanda u aritmetičkim i logočkim operacijama. Bazno adresiranje je jedini način adresiranja operanada u memoriji. Međutim, izborom posebnih vrednosti pomeraja i adrese baznog registra mogu se dobiti još dva izvedena načina adresiranja: direktno (apsolutno) i indirektno registarsko adresiranje.

Formati instrukcija MIPS procesora

Sve instrukcije su dužine 32 bita, i moraju biti poravnato smeštene u memoriji računara. Postoje tri formata instrukcija za rad sa celobrojnim podacima prikazana na slici. U sva tri formata instrukcija kod operacije (op) i indeksi (adrese) registara, dužine po 5 bita, imaju fiksna mesta, što olakšava i ubrzava dekodiranje instrukcija. Aritmetičko – logičke instrukcije su troadresne, sa dve varijante: - Sva tri operanda u registrima procesora (R format); - Jedan izvorišni operand neposredno adresiran (I format).

R format namenjen je aritmetičko – logičkim instrukcijama i instrukcijama pomeranja. I format namenjen je aritmetičko – logičkim instrukcijama, instrukcijama uslovnog grananja i instrukcijama obraćanja memoriji (Load i Store). J format namenjen je instrukcijama skoka i bezuslovnog poziva procedura. Oznake polja u ovim formatima i

Page 9: AR Usmeni I Kolokvijum

9

njihova značenja su sledeća: - op – kod operacije instrukcije; - rs – indeks (identifikator) prvog izvorišnog registra instrukcija; - rt – indeks drugog izvorišnog registra ili odredišnog registra instrukcije; - rd – indeks odredišnog registra instrukcije; - shamt – broj binarnih pozicija za koje treba pomeriti izvorišni operand; - funct – dodatno polje koda operacija instrukcija; - immediate – neposedni operand u aritmetičko – logičkim instrukcijama, otklon u instrukcijama uslovnog grananja ili pomeraj u instrukcijama Load i Store; - target address – primarna adresa odredišta skoka u instrukcijama skoka i bezuslovnog poziva procedura.

14. Višetaktna implementacija procesora

Jasno je da višetaktna implementacija procesora poseduje određene prednosti u odnosu na jednotaktni procesora. To su pre svega: vremena ciklusa svih instrukcija su jednaka i određena su vremenom ciklusa najduže instrukcije; svaka hardverska komponenta procesora se u ciklusu instrukcije koristi samo jednom, što povećava obim hardvera procesora. Svaka instrukcija se može raščlaniti na pet faza, pri čemu se se svaka faza odvija u okviru jednog ciklusa, a aktivnosti unutar faze obavlja odgovarajući stepen procesora. Tih pet faza su: pribavljanje instrukcije (IF), dekodiranje instrukcije i pribavljanje operanada iz registara (ID), izvršenje instrukcija (EX), obraćanje memoriji podataka (ME) i upis podataka u odredišni registar (WB).

Pribavljanje instrukcije i obraćanje memoriji podataka u različitim taktnim ciklusima omogućuje da se programska memorija i memorija podataka objedine u jedinstvenu memoriju. Pribavljanje i dekodiranje instrukcija u različitim taktnim ciklusima zahteva uvođenje registara instrukcija IR. Pribavljanje podataka iz memorije i njegovo upisivanje u polje registara u različitim taktnim ciklusima zahteva uvođenje prihvatnog registra memorije MDR. A i B su prihvatni registri izvorišnih operanda pribavljenih iz polja registara, a ALUIzl prihvatni registar razultata iz ALU.

Na slici je prikazana blok šema implementacije (putevi) višetaktnog procesora sa pridodatom memorijom:

Aktivnosti po fazama su sledeće:

1. IR←Mem[PC]; PC←PC+4

Pribavlja se instrukcija na koju pokazuje programski brojač i prenosi u registar instrukcija. Paraleleno sa tim se inkrementira brojač, tako da pokazuje na sledeću instrukciju.

2. A←Reg[ 21..25IR ]; B←Reg[ 16..20IR ]; ALUIzl←PC+znak._proš.( 0..15IR )<<2.

U ovoj fazi se instrukcija dekodira. Izvorišni operandi se pribavljaju i prenose u pomoćne registre A i B. Možemo primetiti da se sadržaj polja 0..15IR znakovno proširuje, pomera ulevo za dve binarne poziciji i

sabira sa programskim brojačem, a zatim se upisuje u registar ALUIzl. Sadržaj ovog polja predstavlja pomok u slučaju da se radi o instrukciji grananja. Sve aktivnosti se obavljaju paralelno zbog fiksniih položaja u registru instrukcija.

3. Zavisno od instrukcije, obavlja se jedna od sledećih pet aktivnosti: Aritmetičko – logičke instrukcije R formata: ALUIzl←A(op,func)B; Izvršava se operacija, određena sadržajima polja op i function, nad sadržajima registara A i B. Rezultat se smešta u ALUIzl. Aritmetičko – logičke instrukcije I formata: ALUIzl←A op proš._nul.(imm); Izršava se operacija, određena kodom operacije op, nad sadržajem registra A i nulama proširenim neposrednim operandom. Rezultat se smešta u ALUIzl. Obraćanje memoriji: ALUIzl←A+znak._proš.(imm) Izračunava se efektivna adresa obraćanja memoriji sabiranjem sadržaja registra A (bazna adresa) i znakovno proširenog pomeraja. Rezultat se smešta u ALUIzl. Grananje: If (A=B) then PC←ALUIzl; Ako je uslov grananja ispunjen, PC se puni odredištem grananja instrukcije. Skok: 2|| 0..2528..31 <<← IRPCPC

Odredište skoka, pomeren za dve binarne pozicije ulevo, dopisuje se iza 4 bita najveće težine sadržaja

Page 10: AR Usmeni I Kolokvijum

10

programskog brojača. Lociranje ovih aktivnosti u okviru iste faze različitih instrukcija moguće je, jer su u napuni/zapamti arhitekturi, nabrojane instrukcije međusosbno isključive.

4. U ovoj fazi aktivne su samo instrukcije obraćanja memoriji (Load i Store). Obraćanje memoriji: Load: MDR←Mem[ALUIzl]; ili Store: Mem[ALUIzl]←B;

5. Aritmetičko – logičke instrukcije R formata: ALUIzlIRg ←][Re 11..15;

Aritmetičko – logičke instrukcije I formata: ALUIzlIRg ←][Re 16..20 ;

Load instrukcija: MDRIRg ←][Re 16..20

Potrebno je još napomenuti da instrukcije grananja i skokova sadrže po 3 faze, aritmetičko – logičke instrukcije i Store sadrže po 4 faze, a Load sadrži 5 faza.

15. Upravljačka jedinica (UJ) procesora (opšte)

Aktivnosti koje se obavljaju na višetaktonom 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 izvršiti moraju se aktivirati odgovarajuće upravljačke tačke. Upravljačke tačke su upravljački ulazni priključci elemenata hardvera koji učestvuju u obavljanju određenih mikrooperacija. Upravljačke tačke se aktiviraju upravljačkim signalima koje generiše upravljačka jedinica procesora.

Osnovni zadaci upravljačke jedinice procesora su: 1. Interpretacija instrukcija CP-a; 2. Generisanje upravljačkih signala; 3. Upravljanje prenosom podataka između procesora i memorije i procesora i ulazno – izlaznog sistema računara.

Definisanje rada UJ zahteva određivanje upravljačkih signali koje treba aktivirati i kada to učiniti i ovo se može uraditi na više načine. Jedan od tih načina je i prikaz promene stanja UJ. U svkom stanju se novode vrednosti podskupova upravljačkih signala kojima se aktivira jedna ili više mikrooperacija koje se obavljaju paralelno.

Upravljačka jedinica procesora se može implementirati na osnovu jedne od ove dve koncepcije: 1. Kao klasična sekvencijalna prekidačka mreža, što vodi direktnom (hardverskom) upravljanju; 2. Kao mašina sa zapamćenim programom, što vodi mikroprogramskom upravljanju.

16. Upravljačka jedinica sa hardverskim (direktnim) upravljanjem

Upravljačku jedinicu procesora možemo posmatrati kao konačni automat sa sledećim elementima: 1. Skup stanja upravljačke jedinice },...,,{ 110 −= nSSSS

2. Skup ulaznih upravljačkih signala },...,,{ 21 mxxxX =

3. Skup izlaznih upravljačkih signala },...,,{ 21 kyyyY =

4. Funkcija promene stanja SSXFS ⇒),(: , i

5. Funkcija izlaza :( , )YF X S Y⇒ .

Koristiti se Moor-ov automat kod koga su izlazni signali određeni samo stanjem u kome se automat nalazi, nezvisno od ulaznih signala. F-ja izlaza je oblika Fy:S=>Y.

Konačni automat može se implementirati sekvencijalnom prekidačkom mrežom, koja se sastoji od kombinacione prekidačke mreže i memorijskih elemenata, kao na slici. Memorijski elementi mogu biti flip-flopovi ili lečevi. Oni određuju stanje konačnog automata. Kombinaciona mreža implementira funkcije promene stanja i izlaza.

Upravljačka jedinica sa direktnim upravljanjem je implementacija upravljačke jedinice

Page 11: AR Usmeni I Kolokvijum

11

sekvencijalnom prekidačkom mrežom.

„Logika direktnog upravljanja“ je zapravo kombinaciona mreža sa prethodne slike. U bloku „Tekuće stanje UJ“ su memorijski elementi upravljačke jedinice. Ulazni signali u upravljačku jedinicu, vidi se sa slike, su polje registara instrukcija, stanja indikatora iz registra koda uslova i neki od upravljačkih signala sistemske magistrale. Izlazni signali idu na upravljačke linije puteva podataka procesora i na neke upravljačke linije sistemske magistrale.

Za projektovanje upravljačke jedinice sa direktnim upravljanjem može se koristiti metoda tablice stanja, metoda elemenata za kašnjenje idr.

17. Projektovanje UJ metodom tablice stanja

Upravljačka jedinica može biti data tablicom stanja/izlaza prikazanom tabelom. Sik je stanje u koje upravljačka jedinica prelazi iz stanja Si pod dejstvom ulaznih signala xk. Sa Yi označeni su izlazni signali koje upravljačka jedinica formira u stanju Si. Projektovanje uključuje minimizaciju stanja automata, kodiranje stanja i projektovanje sekvencijalne prekidačke mreže koja implementira automat.

Ulazni upravljački signali Stanje/ 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 uočljive veze između elemenata dobijene sekvencijalne mreže i dijagrama toka upravljanja UJ.

Formira se tablica koja će za svaki par (sadašnje stanje, sledeće 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 obezbeđuje.

Si Qi3 Qi

2 Qi1 Qi

0 a5 a4 a3 a2 a1 a0 Qi3 Qi

2 Qi1 Qi

0 Di3 Di

2 Di1 Di

0

... ... ... ... ...

18. Projektovanje UJ metodom elemenata za kašnjenje

Projektovanje UJ metodom elemenata za kašnjenje je jedan od načina implementacije UJ sa direktnim upravljanjem. Ova metoda svodi se na korišćenje prekidačke mreže čija konfiguracija odslikava dati digram toka upravljanja. Za svaki put u dijagramu toka upravljanja, u ovu mrežu treba uvesti po jedan put koji mu odgovora. Postupak projektovanje UJ zadate dijagramom toka upravljanja se zasniva da sledeća četiri pravila: Par sukcesivnih stanja Si i Sj zahteva uvođenje elemenata za kašnjenje. Upravljački signali {yir} i {yip} koje UJ izdaje stanjima Si i Sj uzimaju se sa ulaza i izlaza ovog elementa za kašnjenje (slika pod a); Uslovno grananje sa uslovom na primer if(f(x)==1) implementira se parom I logičkih elemenata, na čije ulaze se, pored impulsnog signala, vode uslovi f(x) i )(xf (slika pod b); Slivanje n dolaznih grana u jednu odlaznu granu implenetira se ILI logičkim elementom sa n ulaza (slika pod c); Upravljački signal koji se aktivira u više stanja upravljačke jedinice, usmerava se ka odgovarajućim tačkama preko ILI logičkog elementa, čiji broj ulaza odgovara broju stanja u kojima se taj upravljački signal aktivira.

Kao element za kašnjenje može se upotrebiti taktovani D flip-flop.

Projektovanje UJ metodom elemenata za kašnjenje daje sekvencijalnu prekidačku mrežu u kojoj je lako uspostaviti vezu između elemenata ove mreže i odgovarajućih delova dijagrama toka upravljanja UJ. Ovo olakšava 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 više od sn2log koliko zahteva metoda tablice stanja.

Page 12: AR Usmeni I Kolokvijum

12

Druga varijanta ove metode zasniva se na projektovanju sekvencijalne prekidačke mreže čija stanja nisu kodirana, već su dekodirana. Ta metoda se naziva i metoda jednog vrućeg elementa. Vrući memorijski element je onaj koji se trenutno nalazi u stanju 1.

19. Mikroprogramski organizovana UJ

Mikroprogramiranje je sistematska tehnika za implemetiranje upravljačkih jedinica računara, zasnovana na koncepciji programa zapamćenog u memoriji. Elementi mikroprograma su mikroinstrukcije smeštene u upravljačkoj memoriji računara. Osnovni zadatak mikroinstrukcija je izdavanje naloga za izvršenje određenih podskupova mikrooperacija. Ovo je moguće postavljanjem upravljačkih signala na određene vrednosti. Mikroprogram takođe mora i da određuje redosled izvršavanja mikroinstrukcija, a ovo se postiže brojačem mikroinstrukcija (µPC).

Blok šema mikroprogramski organizovane UJ prikazana je na slici. Mikroprogrami mašinskih instrukcija smešteni su u mikroprogramskoj memoriji, čije lokacije adresira brojač mikroinstrukcija. Mikroinstrukcija pribavljena iz mikroprogramske memorije smešta se u registar mikroinstrukcija RMI (nije prikazan na slici), odakle se delovi mikroinstrukcije šalju na upravljačke linije puteva podataka (US) i na ulaze logike za izbor adrese (MOp+Uslov+ASM). Sadržajem brojača mikroinstrukcija upravlja logika za izbor adrese, dok sabirač na slici samo simbolizuje mogućnost promene stanja brojača.

Prednosi mikrogromske organizacije UJ: sistemsko projektovanje UJ, lakoća implementiranja familije računara sa kompatibilnim instrukcijama, sposobnost emiliranja drugih računara, lako ispravljanje grešaka u fazi razvoja, niska cena za uvođenje dodatnih funkcija ako za njihove mikroprograme ima slobodnog prostora u mikropromskog memorije. Nedostaci: neekonomičnost za male sisteme zbog relativno visoke fikse cene mikroprogmske memorije i logike za nizanje mikroinstrukcija, vreme ciklusa instrukcija ograničeno vremenom pristupa mikropromske memorije.

20. Formati mikroinstrukcija i paralelizam u mikroinstrukcijama

Opšti format mikroinstrukcije: Mop | US | Uslov | ASM . Skraćeni format: Mop | US | ili Mop | Uslov | ASM Mop – kod mikrooperacije. Ukazuje na tip mikroinstrukcije: 00-inkrementiranje brojača mikroinstrukcija, 01-uslovnim grananjem na adresu ASM na osnovu signala Zero, 10-skokom na adresu određenu sadržajem polja Op registra IR, 11-skokom na adresu u ASM; US – polje upravljačkih signala; Uslov – ovde se mogu navesti vrednosti signala uslova pri kojima dolazi do grananja; ASM – polje adrese sledeće mikroinstrukcije

Skraćeni format je nastao iz razloga što ne postoji potreba da se svakom mikroinstrukcijom menja linearni tok mikroprograma. Prvim se aktiviraju upravljački 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 upravljački signal je rezervisan po jedan bit. Odlikuje se time da se upravljački signali sa izlaza registra

Page 13: AR Usmeni I Kolokvijum

13

mikroinstrukcija direktno vode do upravljačkih tačaka u putevima podataka procesora. Za ovakav oblik mikropromskog upravljanja se koristi termin neposredno upravljanje. Nedostatak ovog formata je velika dužina polja US. Takođe, ukoliko su pojedini upravljački signali međusobno isključivi korišćenje ovog formata baš i nema smisla. Ovi signali se mogu grupisati tako da se aktiviraju samo jednim upravljačkim signalom, ali isto tako različite grupe moraju ostati međusobno nezavisne. Na ovaj način se postiže određen stepen paralelizma, kao kod horizontalnog formata. Upravljački signali grupisani na ovaj način se moraju kodirati, čime se dobija minilmalno kodirani format mikroinstrukcije. Ostali upravljački signali koji se ne mogu grupisati ostaju u polju US kao u horizontalnom formatu. Ukoliko je arhitektura takva da se mikrooperacije mogu izvšavati istovremenim aktiviranjem samo jednog ili dva upravljčka signala, kažemo da je reč o vertikalnom formatu ili maksimalno kodirani format instrukcija. Sadržaj polja KUS mikroinstrukcije se mora dekodirati pre nego što se dostavi odgovarajućim upravljačkim tačkama.

21. Protočna organizacija procesora

Ideja protočne organizacije procesora je da svi delovi hardvera višetaktnog procesora istovremeno budu aktivni na obavljanje pet različitih faza niza od nekoliko sukcesivnih instrukcija. To znači da će protočni procesor obrađivati 5 instrukcije u jednom taktnom ciklusa, ali će pri tome obrađivati različitu fazu svake instrukciju, a to su IF, ID, EX, ME, WB (pribavljanje instrukcije, dekodiranje, izvršenje, pristup memoriji, upis u registar). Ovaj deo hardvera koji obrađuje samo jednu fazu zovemo stepen protočnog procesora. Obzirom da imamo 5 faze, s toga govorimo o petostepenom protočnom procesoru. Sa slika za sekvencijalno izvršenje instrukcija i za protočno izvršenje instrukcija se može uočiti da se pojedinačno vreme svake instrukcije ne skraćuje, već se može i čak i produžiti zbog pojave hazarda. Vreme ciklusa jedne instrukcije je označeno kao latencija instrukcije. Poboljšanje performansi protočnog procesora se ogleda u povećanoj propusnosti u odnosu na sekvencijalno izvršenje instrukcija, što se takođe može uočiti na slici. Protočni procesor unosi nekoliko novina, a to su: 1. brzina protočnog procesora ograničena je brzinom najsporijeg stepena; 2. Nejednako trajanje operacija u pojedinim stepenima umanjuje brzinu protočnog procesora; 3. Više poslova koji se obavljaju istovremeno koriste različe resurse. 4. potencijalno povećanje brzine jednako je broju stepena

Poboljšanje performansi protočnih u odnosu na sekvencijalne procesore, koje se ogleda u povećanju propusnosti procesora k puta, može se iskazati kao da se efektivno smanjuje broj taktnih ciklusa po instrukciji 1/k puta, uz nepromenjenu periodu takta. Za razmatrani petostepeni protočni procesor to daje efektivni CPI = 1, iako je latencija pojedinačnih instrukcija pet taktnih ciklusa. Za idealnu protočnu obradu instrukcija CPI=1.

22. Putevi podatak protočno organizovanog procesora

Prelazak sa višetaktnog sekvencijalnog procesora na protočni procesor zahteva određene izmene u implementaciji procesora. Umesto jedinstvene memorije za programe i podatke, protočni procesor koristi odvojene memorije za programe i podatke. Ovim se izbegavaju zastoji u radu procesora zbog jedinstvene memorije, koja može biti kritičan resurs sistema.

Za proveru ispunjenja uslova grananja u instrukcijama grananja koristi se ALU. Zato se ALU više ne može koristiti za izračunavanje odredišta grananja, već se za to mora uvesti dodatni sabirač. Ovo je opravdano ako uslov grananja obuhvata poređenje sadržaja dva registra relacijama ==, <, ≤, >, ≥. Ako se uslov grananja svodi samo na jednakost sadržaja registra nuli, uputnije je to ispitivanje obaviti posebnim hardverom, a ALU koristiti za izračunavanje odredišta grananja.

Na slici se mogu uočiti protočni registri koji razdvajaju stepene protočnog procesora. Najbitnija razlika ogleda se u potrebi uvođenja protočnih registara ili protočnih lečeva, koji razdvajaju pojedine stepene protočnog procesora. Ovi protočni registri privremeno čuvaju sve podatke i upravljačke informacije potrebne za obavljanje aktivnosti u sledećim fazama instrukcije. Sa napredovanjem takta, za sve aktivne instrukcije, kroz protočne registre se prenose rezultati do tada izvršenih faza obrade i upravljačke informacije potrebne za preostale faze obrade instrukcije do njenog kompletiranja. Pošto ovi protočni registri čuvaju podatke i informacije koje se odnose na instrukciju posle svake faze obrade, pomoćni registri koje smo uveli pri definisanju aktivnosti po fazama obrade "utapaju se" u odgovarajuće protočne registre, odnosno postaju odgovarajuća polja ovih protočnih registara. To se odnosi na IR, NPC, Imm, A, B, ALUrez, Add2rez, Cond i LMD. To su izmene koje povećavaju obim hardvera protočnog procesora.

Pojedini delovi hardvera su prikazanu u samom jednom stepenu iako se oni koriste u više njih. Npr. polje registara, ažuriranje programskog brojača. Da bi se ovo prikazalo korišćene su povratne linije.

Page 14: AR Usmeni I Kolokvijum

14

23. Upravljanje protočnim procesorom

Upravljačke signale (US) generiše UJ u ID stepenu, ali se oni prenose do onih stepena u kojima se koriste. Pored US između protočnih registara se vrši prenos i drugih vrednosti koje su potrebne za obradu tekuće instrukcije. Upravljački signali protočnog procera raspoređeni su po stepenima na sledeći način:

IF stepen U svakom taktnom ciklusu se generiše signal dozvole upisa u PC pri čemu se novi sadražaj bira između inkrementiranja prethodnog sadržaja i odredišta grananja ukoliko je prethodila neka instrukcija grananja. U ovom stepenu se javlja PCSrc (US), koji se zapravo kreirao u ME stepenu logičkim I kolom od Branch i Cond US.

ID stepen Javlja se ExtOp US koji određuje da li će se polje IR15..0 proširiti nulama ili znakovno.

EX stepen US u ovom stepenu su ALUSrc, ALUctr, RegDst. Pomoću 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 služi da izabere između rt ili rd za indeks odredišnog 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 odredišnog registra između LMD i ALUrez. US RegWR izdaje nalog za upis u odredišni registar.

Page 15: AR Usmeni I Kolokvijum

15

24. Strukturni hazardi

Situacija koje dovode do zastoja u radu protočnog 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 izvršenju pojedinih instrukcija. Ovo se javlja kada dve instrukcije koje se nalaze u različitim stepenima zahtevaju isti resurs. Pojava strukturnih hazarda se može elimisati uvođem više kritičnih funkcionalnih jedinica, protočnom organizacijom kritičnih funkcionalnih jedinica, povećanjem broja portova za upis i čitanje kod polja registara. Međutim treba voditi računa da li svaki put treba eleminisati strukturne hazarde, jer protočna funkcionalna jedinica ima dužu latenciju, što pak može povećati pojavu hazarda podataka a oni isto negativno utiču na performanse procesora.

25. Klasifikacija hazarda podataka

Posmatramo dve instrukcije Ij i Ik između kojih postoje zavisnosti po podacima preko registra Ri, pri čemu Ik sledi Ij. Ako se ove dve instrukcije istovremeno nađu u protočnom procesoru, mogu se javiti sledeći hazardi podataka: 1. Čitanje nakon upisa – instrukcija Ik pokušava da pročita izvorišni operand iz Ri pre no što Ij obavi upis, tako da Ik nekorektno uzima staru vrednost podatka. Ovo je najčešći tip hazarda podataka. Zavisnost po podacima, koja dovodi do njega naziva se prava zavisnost. 2. Upis nakon upisa – Ik pokušava da upiše 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 protočnom procesoru koji vrši upis u dva ili više stepena. 3. Upis nakon čitanja - Ik pokušava upis u odredište pre nego što ga pročita Ij, tj. tako da Ij nekorektno dobija novu vrednost. Zavisnost po podacima, koja dovodi do njega naziva se anti-zavisnost. Ova zavisnost se takođe ne može javiti u našem protočnom sistemu, obzirom da se sva čitanja obavljaju rano u ID stepenu, a svi upisi kasno u WB stepenu.

26. Izbegavanje hazarda podataka premošćavanjem

Hazardi bi mogli da se izbegnu ukoliko bi se izvorišni operandi dostavili zavisnim instrukcijama pre nego što ih je prethodna instrukcija (instrukcija proizvođač) upisala u odredišni registar. Putevi premošćavanja su na slici prikazani isprekidanim

linijama. Može se primetiti da ove linije idu na oba ulaza ALU-a što zapravo znači da premošćavanje može biti za oba izvorišna operanda. Premošćavanjem se upravlja zahvaljujući multiplekserima, tačnije njihovim adresiranjem na ulazima ALU-a i memorije podataka. Ove signale generiše jedinica za upravljanje premošćavanjem, koja se nalazi u EX stepenu. Još jedna novina na slici u odnosu na sliku bez premošćavanja je i jedinica za otkrivanje hazarda koja se nalazi u ID stepenu.

27. Hazardi podataka koji se ne mogu izbeći premošćavanjem

Instrukcija Load je karakteristična iz više razloga. Obzirom da ova instrukcija vrši čitanje iz memorije, podatak se instrukciji koji sledi prilikom premošćavanja može dostaviti nakon ME stepena. Ova pojava se označava kao blokiranje punjenjem i to je situacija u kojoj se javlja hazard i koji se zapravo ne može izbeći premošćavanjem. Takođe treba imati na umu da se kod savremenih protočnih procesora pribavljanje iz memorije obavlja u više taktnih ciklusa. Razlog ovoga leži u činjenici da današnji procesori rade na učestanostima reda GHz, a da sa druge strane ne postoje memorije koje bi ispratile ove brzine. Trajanje zastoja bi se produžilo na više taktnih ciklusa, što je određeno latencijom operacije pribavljanja

Page 16: AR Usmeni I Kolokvijum

16

operanada. Pod latencijom operacije podrazumevamo broj taktnih ciklusa koji mora proteći od početka operacije do korišćenja rezultata te operacije u drugoj instrukciji. Naprimer, ako je latencija operacije load dva taktna ciklusa, zastoj u izvršenju zavisne instrukcije-neposrednog sledbenika instrukcije Load, trajao bi takođe dva taktna ciklusa. Otkrivanje ovog karakterističnog hazarda se takođe otkriva u ID stepenu. Treba napomenuti da se ovaj hazard neće javiti ukoliko instrukciju Load sledi instrukcija Store. Naravno, ova priča važi samo ukoliko postoji zavisnot po podacima između Load instrukcije i instrukcije koja sledi.

28. Izbegavanje hazarda podataka planiranjem instrukcija

Do pojave hazarda dolazi kada je rastojanje između zavisnih instrukcija 4, odnosno kada je omogućeno upis i čitanje registra u istom taktnom ciklusu 3. Jasno je, da kada bi se ovo rastojanje povećalo ne bi došlo do hazarda, a ovo je pak moguće premeštanjem zavishih instrukcija. Treba voditi računa da se ne naruši smisao programa. Ukoliko se pak koristi premošćavanje, premeštanje instrukcija tj. planiranje instrukcija je potrebno samo za instrukciju Load i instrukciju koja je sledi. Drugim rečima, potrebno je umetnuti jednu nezavisnu instrukciju posle Load. Izbegavanje hazarda podataka planiranjem instrukcija donosi sa sobom određenu cenu, a to je da je potrebna analiza zavisnosti po podacima i razdvajanje zavisnih instrukcija na bezbedno rastojanje umetanjem nezavisnih instrukcija između njih i povaćava se broj angažovanih registara. Planiranje instrukcija obavljaju kompilatori.

29. Hazardi upravljanja

Hazardi upravljanja se javljaju pri izvršenju instrukcija za upravljanje tokom programa. U ovu grupu instrukcija spadaju instrukcije grananja, skokova, poziva procedura i povratka iz procedura. Instrukcija grananja predstavlja najopštiji predstavnik ove grupe, obzirom da ona zahteva izračunavanje adrese odredišta grananja i ishoda uslova grananja. Pa se zbog toga može govoriti o hazardima grananja.

Hazardi grananja nastaju zbog toga što se na vreme ne odredi adresa instrukcije koja će biti izvršena nakon instrukcije grananja. Ishod uslova grananja i adresa odredišta grananja se određuju u EX stepenu, a adresa sledeće instrukcije se prenosi u PC u 4 stepenu, dok se instrukcija pribavlja u 5 stepenu. Znači, odredište grananja će se odrediti tek u WB stepenu instrukcije grananja. Prema tome jasno je da će se javiti hazard grananja tj. program se neće korektno izvršiti (za slučaj instrukcije store) jer će se izvršiti naredna instrukcija kao da grananja nije ni bilo.

Jedan od načina da se program korektno izvrši 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 izvršiti. Ovaj način se naziva grananje sa zastojima do određivanje sledbenika grananja. Zastoji koji su potrebni u pribavljanju instrukcije-sledbenika grananja razlikuju se od zastoja potrebnih za izbegavanje hazarda podataka. Zastojima zbog hazarda podataka odlaže se završetak određene faze instrukcije do prestanka uslova za nastavak 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, naziva se kašnjenje grananja. U našem protočnom sistemu kašanjenje grananja iznosi tri taktna ciklusa.

30. Smanjenje cene grananja

Postoji više načina za sniženje cene grananja u protočnom procesoru. Neki od njih su: 1. Određivanje ishoda grananja i odredište grananja u stepenu što bližem stepenu pribavljanja instrukcije 2. Pretpostavka da grananje neće biti obavljeno

3. Zakašnjeno grananje 4. Predviđanje grananja 5. Pribavljanje instrukcije i sa puta obavljenog i sa puta neobavljenog grananja

1. 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

Page 17: AR Usmeni I Kolokvijum

17

uslova. 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. 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.

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 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 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. Primer hazarda i njegovog razrešenja

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 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.

2.1 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. Š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 rešenje ne unosi druge komplikacije u rad protočnog procesora.

2.2 Pretpostavka da grananje neće biti obavljeno 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. Ako, međutim, do grananja dođe, moraju se odbaciti pribavljene instrukcije, i započeti novo pribavljenje od instrukcije 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).

3. Zakašnjeno grananje Zakašnjeno grananje je koncepcija koja obezbeđuje da se posle instrukcije grananja, nezavisno od ishoda grananja, pribavi k instrukcija sa puta neobavljenog grananja, pre no pto se eventualno pređe na instrukciju-odredište grananja. Ovih k instrukcija, sekvencijalnih sledbenika instrukcije grananja, nalaze se u takozvanim slotovima kašnjenja grananja. Zbog toga što se sledbenik grananja određuje ID fazi, potreban je samo jedan slot kašnjenja. U slotove kašnjenja grananja mogu se umetnuti instrukcije uzete: a. ispred instrukcije grananja – Zahtev: Grananje ne sme zavisiti od premeštene instrukcije. Kada poboljšava perform: uvek, b. sa puta obavljanog grananja – Zahtevi: Ako se grananje ne obavi, izvršene instrukcije ne smeju promeniti stanje procesa. Može zahtevati dupliranje instrukcija. Kada pobolj. perform: kada se granje obavlja. Može produžiti program ako se instrukcije dupliraju. c. sa puta neobavljenog grananja – Zahtevi: Ako se grananje obavi, izvršene instrukcije ne smeju promeniti stanje procesa. Kada pobolj. perform: kada se grananje ne obavlja.

4. Predviđanje grananja Predviđanje ishoda grananja može doprineti smanjenju izgubljenih taktnih ciklusa zbog grananja. Ishod predviđanja može biti da se grananje neće obaviti ili da će se grananje obaviti. Situacija je složenija kada je ishod predviđanja da će se grananje obaviti. Da bi se zastoji eliminisali treba se odredište grananja odrediti još prilikom pribavljanja instrukcije, a da bi ovo bilo moguće potrebno je da se već u pribavljaju instrukcije zna da je instrukcija zapravo instrukcija grananja. Ovo se može postići uvođenjem bafera odredišta grananja. Kada se pribavlja instrukcija, pristupa se baferu i traži se odgovarajuća stavka. Ukoliko se nađe, predviđanje je da će se obaviti grananje i pribavlja se odredište 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,

Page 18: AR Usmeni I Kolokvijum

18

pri kome se za svaku izvršenu instrukciju grananja beleže ishodi grananja. Ovako prikupljeni ishodi grananja pridružuju se, u vidu dodatnog bita, svakoj instrukciji grananja u fazi kompilovanja programa.

Dinamičko predviđanje grananja zahteva poseban hardver, kojim se u toku izvršenja programa beleže ishodi izvršenih instrukcija grananja, takozvana istorija grananja, i na osnovu nje predviđaju (tj. predskazuju) ishodi grananja pri sledećem izvršenju svake instrukcije 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%.

5. Pribavljanje instrukcije sa oba moguća puta Ovo rešenje se može primeniti u protočnim procesorima sa zahtevanim izrazito visokim performansama. Implementacija ovog rešenja na protočnim procesorima sa velikim kašnjenjem grananja može biti neprihvatljivo skupo.

31. Proširenje protočnog sistema za rukovanje operacijama sa više ciklusa izvršenja

Operacije kao što su množenje, deljenje zahtevaju duža vremena izvršenja i ona se izvršavaju na posebnim hardverskim jedinicama. Takođe se i operacija sa rad sa realnim operandima u obliku sa pokretnom zapetom izvršavaju na posebnim hardverskim jedinicama. Često se ove hardverske jedinice nazivaju funkcionalnim jedinicama procesora. Neke od funkcionalnih jedinica na protočnom procesoru su: 1. Celobrojna jedinica koja obavlja aritmetičko-logičke 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. Množač celih brojeva i brojeva sa pokretnom zapetom: množenje traje 5 TC; latencija 4; 3. FP sabirač – 3 TC; latencija 2; 4. Delitelj celobrojnih i FP operanada; deljenje traje 10 TC; latencija 9; neprotočno organizovan;

Protočno organizovane funkcionalne jedinice

Protočno organizovana funkcionalna jedinica može da, kao i protočni procesor, preklapa izvršenje više operacija. U stanju je da naloge za nove operacije prihvata u svakom taktnom ciklusu. Ekvivalentna je većem broju neprotočnih istoimenih funkcionalnih jedinica. Protočni sistem sa navedenim funkcionalnim jedinicama prikazan je na sledećoj slici. Protočne funkcionalne jedinice raščlanjene su na stepene, kojih u množaču ima pet, a u FP sabiraču tri. Kao i do sada, susedni stepeni razdvojeni su protočnim registrima,

odnosno lečevima.

Obzirom da se protočni sistem iza ID stepena grana u četiri izvršne funkcionalne jedinice, smatraćemo da između ID stepena i ovih jedinica imamo četiri protočna registra: ID/EX, ID/M1, ID/A1 i ID/FPID (FPID označava Fpinteger delitelj). Takođe, između funkcionalnih jedinica i WB stepena imamo četri protočna registra: ME/WB, M5/WB, A3/WB i

FPID/WB.

Za protočne 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 tekuće operacije. Latencije se može izraziti kao broj stepena iza EX faze. 2. Interval ponavljanja je broj TC koji mora proteći između izdavanja dve operacije istog tipa.

U ovakvom protočnom sistemu može doći do:

1. pojave strukturnog hazarda zbog zauzeća delitelja, koji nije protočno organizovan; 2. zbog različitog trajanja operacija, broj istovremenih upisa u polje registara može biti veći od jedan; 3. moguća je pojava WAW hazarda, pošto instrukcije ne dospevaju u WB fazu programiranim redosledom; WAR hazardi nisu mogući, pošto se registri čitaju samo u ID stepenu, 4. redosled kompletiranja instrukcija može se razlikovati od redosleda izdavanja instrukcija, što može dovesti do problema sa izuzecima, 5. zbog dužine latencije operacija, zastoji zbog RAW hazarda dešavaće se češće.

Česti zastoji u napredovanju zavisnih instrukcija i pored korišćenja premošćavanja, govore da velike latencije operacija znatno umanjuju efikasnost premošćavanja u izbegavanju hazarda podataka u ovakvim protočnim sistemima.