Você está na página 1de 25

1.

Iskazivanje performansi procesora


Raunare moemo ocenjivati na osnovu razliitih pokazatelja: po performansama, ceni, potronji energije,
teini, pouzdanosti, dizajnu itd. Za veinu korisnika, performanse su, pored cene, najvaniji pokazatelj. Stoga je
uloeno puno truda da se doe do naina za iskazivanje i merenje performansi raunara.
Kada kaemo da jedan raunar, recimo X, bri od drugog raunara, recimo Y, imamo u vidu da raunar X
izvrava programe za krae vreme od raunara Y. Pri tome kao meru koristimo vreme odziva (response time)
odreeno kao vremenski interval od poetka do zavretka izvrenja programa. Umesto ovog obino koristimo
termin vreme izvrenja (execution time). U raunarskim centrima, koji dnevno izvravaju veliki broj programa,
za meru e se radije koristiti propusnost (throughput), odreen kao obim posla obavljen u jedinici vremena.
Kaemo da je raunar X, n puta bri od raunara Y ako je vreme izvrenja za raunar X, n puta krae od
vremena izvrenja raunara Y:
Vreme _ izvrenja y
n=
Vreme _ izvrenja x
Poto su performanse reciprone vremenu izvrenja:
Performanse
n= x

Performanse y
Kako je i propusnost srazmerna recipronoj vrednosti vremena izvrenja:
Pr opusnost
n= x

Pr opusnost y
Kada kaemo da su performanse poboljane to znai da su one poveane, a ako kaemo da je vreme izvrenja
poboljano to znai da je smanjeno.
Ovo vreme izvrenja je relativna veliina jer ono zavisi ne samo od vremena rada procesora, ve i od vremena
pristupa memoriji, ulazno-izlaznih aktivnosti i intervencija operativnog sistema. Ovo znai da se vreme
izvrenja mora preciznije definisati.
Vreme izvrenja centralnog procesora (CPU time) je vreme koje procesor utroi na izvrenje programa,
iskljuujui ekanje na U-I aktivnosti i izvrenje drugih programa. Jasno je da je vreme odziva programa due
od vremena rada centralnog procesora (CP), pa e se i performanse izraunate na osnovu ovih vremena
razlikovati. Vreme rada CP-a moe se dalje raslaniti na vreme koje CP provede u samom programu, korisniko
vreme rada CP-a, i vreme koje CP provede u operativnom sistemu, izvravajui sistemske zadatke zahtevane
od programa, sistemsko vreme rada CP-a. Uticaj drugih programa na mereno vreme odziva programa iskljuuje
se na neoptereenom sistemu, koji izvrava samo taj program. Performanse dobijene u ovim uslovima na
osnovu vremena odziva programa su performanse sistema, a performanse dobijene na osnovu vremena rada
CP-a su performanse CP-a.
Performanse raunara ili procesora moemo dobiti merenjem vremena odziva programa ili vremena rada CP-a
pri izvrenju programa. Za poreenje performansi razliitih proizvoaa, trebalo bi koristiti iste programe sa
istim ulaznim podacima. Ti programi bi trebalo da obuhvataju ista programska reenja kao i tipine aplikacije
za namenu raunara ije performanse odreujemo. Program koji se koristi u te svrhe sa pridruenim ulaznim
podacima poznat je kao benmark (benchmark). Benmark programi su obino specijalno napravljeni za
merenje performansi raunara, procesora ili U-I sistema raunara i oni se nazivaju sintetiki benmark programi
(synthetic benchmarks). Oni se ne mogu koristiti u druge svrhe, kao aplikacioni programi. Sintetiki benmark
programi sadre smeu instrukcija koja treba da odgovara uestanosti pojavljivanja operacije i operanada u
velikom skupu realnih programa. Osim realnih i sintetikih programa, za merenje performansi koriste se i
jezgra (kernels). Jezgra su mali delovi programa, koja se koriste samo za ocenu performansi. Izvetaji o
performansama na osnovu SPEC skupova benmark programa treba da sadre kompletan opis raunara i
korienog softvera i broj korisnika raunara. Ovakav potpuni skup uslova u kojima je testiranje obavljeno treba
da obezbedi ponovljivost dobijanja istih rezultata.
Za projektante raunara i upuene korisnike neophodno je da znaju koji inioci utiu na vreme rada procesora
pri izvrenju programa. Rad najveeg broja savremenih raunara diktiran je taktnim signalima, taktovima,
(clock) fiksne uestanosti. Takt je periodini signal, sa odreenom periodom takta ili ciklusom takta ( TC ).
Savremeni procesori rade na vie stotina MHz do nekoliko GHz, stoga su i odgovarajue periode takta od
nekoliko ns do ispod jedne ns. Vreme rada procesora pri izvrenju programa moe se izraziti kao:
Vreme _ rada _ CP = Broj _ taktnih _ ciklusa _ za _ program Perioda _ takta ili
Broj _ taktnih _ ciklusa _ za _ program
Vreme _ rada _ CP = .
Uces tan ost _ takta
Osim merenja broja taktnih ciklusa pri izvrenju programa (BTC), moemo meriti i broj izvrenih instrukcija u
programu (BI). Znajui broj taktnih ciklusa pri izvrenju programa i broj izvrenih instrukcija u programu,
moemo izraunati prosean broj taktnih ciklusa po instrukciji, CPI (cycles per instruction):
BTC
CPI =
BI
Veliina CPI prua informacije o stilu skupa instrukcija raunara i njegovoj implementaciji.
TCP = BI CPI TC , gde je TCP vreme rada procesora. Odavde se vidi da performanse procesora zavise od
broja instrukcija u programu, taktnih ciklusa po instrukciji i periode takta ili uestanosti takta.
Vrednosti ovih parametara uslovljeni su brojem instrukcija, CPI-em i periodom takta. Kada u izvravanom
programu imamo grupe instrukcija sa istom vrednosti CPI, broj taktnih ciklusa procesora moemo izraunati
kao:
n
BTC = CPI i BI i , gde BI i predstavlja broj pojavljivanja instrukcija sa vrednou CPI i u programu.
i= 0

2. MIPS i MFLOPS
(Million Instructions Per Second) je broj miliona izvrenih instrukcija u sekundi. Za dati program MIPS se
dobija kao:
br.instrukcija uces tan ost _ takta
MIPS = =
vreme _ izvrsenja 10 6
CPI 10 6
Za dati MIPS vreme izvrenja programa je:
br.instrukcija
vreme _ izvrsenja =
MIPS 10 6
Poto je MIPS brzina kojom procesor izvrava instrukcije, raunar sa vie MIPS-ova izvravae program za
krae vreme. Meutim MIPS nije pouzdana mera performansi procesora iz vie razloga:
MIPS zavisi od skupa instrukcija, to oteava poreenje MIPS-ova raunara sa razliitim skupovima
instrukcija,
MIPS varira od programa do programa za isti raunar,
to je najgore, MIPS moe ocenjivati promene suprotno menjanju performansi, mereno objektivnim
merilima.
Za ocenu sposobnosti procesora pri raunanju sa realnim podacima, tj. podacima sa pokretnom zapetom, koristi
se mera u obliku broja miliona operacija sa pokretnom zapetom u sekundi (Million Floating Point Operations
Per Second ili ti MFLOPS - megaflops).

br.operacija _ sa _ pokretnom _ zapetom _ u _ programu


MFLOPS =
vreme _ izvrsenja _ u _ sekundama 106
MFLOPS zavisi od raunara i programa i zasnovan je na operacijama, a ne na instrukcijama. Objektivnost
MFLOPS-ova moe biti ugroena manipulisanjem kratkim i dugim operacijama sa pokretnom zapetom.
3. Amdahl-ov zakon
Jedna od osnovnih preporuka pri projektovanju hardvera raunara koji obavljaju odreene aktivnosti je:
Nai reenje koje najefikasnije deluje u optem sluaju,

2
Reenja za specijalne sluajeve mogu biti manje efikasna, ali moraju biti korektna.
Ova preporuka ide za tim da se to bre obavljaju aktivnosti koje se najee obavljaju, a da se aktivnosti koje
se retko obavljaju mogu obavljati sporije. Mada intuitivno oseamo da nas ova preporuka vodi u dobrom smeru,
ona nam ne omoguuje da ocenimo njene kvantitativne efekte na naa reenja. Mogunost kvantitativne ocene
uticaja pojedinih reenja na efikasnost obavljanja posla prua nam Amdahl-ov zakon.
Neka je TS vreme izvrenja nekog zadatka, a jedan deo tog zadatka traje TPD i elimo da to smanjimo PBD
TPD
puta tako da novo vreme traje PB D . Ovim poboljanjem, brzina kojom se posmatrani zadatak izvrava je
poveana, i poveanje brzine iznosi:
Vreme _ izvrenja _ ce log_ zadatka _ bez _ poboljanja
Povecanje _ brzine =
Vreme _ izvrenja _ ce log_ zadatka _ sa _ poboljanjem
Skraenjem vremena izvrenja, performanse se poboljavaju i poveanje brzine iznosi:
Performanse _ za _ ceo _ zadatak _ sa _ poboljanjima
Povecanje _ brzine =
Performanse _ za _ ceo _ zadatak _ bez _ poboljanja
Ako je novo vreme izvrenja zadatka TN ( TN < TS ), i ako TPD = TS PD , gde je PD uee dela zadatka
koji poboljavamo u ukupnom vremenu izvrenja zadatka, onda dobijamo:
PD
TN = TS [(1 PD) + ].
PB D
TS
Ako sa PBU oznaimo ukupno poveanje brzine sa kojom se izvrava ceo zadatak, odnosno PBU = TN ,
onda dobijamo:
1
PBU =
PD .
1 PD +
PB D
Ovaj poslednji izraz je takozvani Amdhl-ov zakon (iako ga je u svom radu neto drugaije definisao). On nas
upuuje da, u nastojanju da poboljamo performanse sistema, treba da poboljamo ona reenja koja imaju veliko
uee u ukupnim aktivnostima sistema.
4. Tipovi arhitektura procesora
Prema mestu privremenog uvanja operanada, arhitekture procesora dele se na:
Akumulatorske arhitekture,
Stek arhitekture i
Arhitekture sa registrima opte namene.
Akumulatorska arhitektura tipina je za procesore u poetnoj fazi razvoja raunarstva. Odlikuje se postojanjem
jednog ragistra u procesoru, nazvanog akumulator, koji uestvuje u svim operacijama procesora. Neposredno
pre izvrenja operacije akumulator sadri prvi izvorini operand, a po zavretku operacije sadri rezultat.
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.
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. Efikasna

3
implementacija steka, esto za dve lokacije sa vrha steka umesto memorijskih lokacija koristi registre procesora.
Veliki nedostatak stek arhitekture procesora su ogranienje u pristupima podacima u steku.
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.
5. Registri procesora
Registri su memorijski elementi realizovani flip-flopovima ili drugim brzim memorijskim elijama. Odlikuju se
kratkim vremenima pristupa reda nanosekunde ili delova nanosekunde. Zbog ove osobine, registri su prisutni u
procesorima kao sastavni deo memorije raunara. Ovo je razlog za dugo prisutnu tendenciju poveanja broja
registara u procesorima. Ali svojstvena im je i relativno visoka cena realizacije, koja diktira relativno mali broj
registara u procesorima. Mali broj registara ima i dobru stranu: za adresiranje podataka u registrima potreban je
mali broj adresnih bitova.
Programe korisnika raunar izvrava u takozvanom korisnikom nainu rada (user mode), a sistemske
programe u kernel nainu rada (kernel mode) ili supervizorskom nainu rada (supervisor mode).
Svi procesori, nezavisno od arhtekture skupa instrukcija i adresnosti procesora imaju sledee registre:
Programski broja (PC), koji sadri memorijsku adresu instrukcije koju treba pribaviti,
Registar instrukcija (IR Instruction Register) u koji se prenosi pribavljena instrukcija i
u njemu dri do zavretka izvrenja instrikcije,
Adresni registar memorije (MAR Memory Address Register) sadri adresu memorijske
lokacije kojoj se obraa procesor pri itanju podataka iz memorije i upisu podataka u memoriju,
Prihvatni registar memorije (MDR Memory Data Register) pri obraanju procesora
memoriji sadri podatak proitan iz memorije ili podatak koji treba upisati u memoriju.

Korisniki vidljivi registri


Skup registara dostupnih aplikacionom programeru ine registri na iji on sadraj moe direktno uticati
instrukcijama koje mu stoje na raspolaganju. Ovi registri se nazivaju i korisniki vidljivi registri.
Registri opte nemene (general purpose register) ine najbrojniju grupu registara. Koriste se za privremeno
uvanje celobrojnih operanada u procesoru, uee u operacijama, adresiranje operanada u memoriji, prenos
parametara pri pozivu procedura i rezultata pri vraanju iz procedure itd. Njihov broj u procesorima se kree od
8 do 64. Savremeni RISC procesori imaju 32 registra opte namene. Ovi registri grupisani su u polje registara
(register file), sa zajednikim ulaznim i izlaznim prikljucima i pridruenom logikom takozvanim portovima
(port). Ovakvo polje sa 32 registara moe imati m ulaznih portova i n izlaznih portova. To znai da se
istovremeno moe upisivati u m registara i itati iz n registara, uz ogranienje da se jedan registar ne moe itati
i istovremeno upisivati.
FP registri (Floating Point registers) ine grupu registara za rad sa realnim podacima u formatu sa pokretnom
zapetom. Duine su 32 ili 64 bita, jer to odreuje standard sa realnim podacima, koji danas prihvataju svi
proizvoai raunara. I ovi registri grupiu se u polje FP registra, sa vie ulaznih i izlaznih portova. Broj ovih
registara se kree od 4 do 32.
Neke arhitekture predviaju posebne adresne registre, koji prema svojoj nameni pri adresiranju mogu biti bazni
registri, indeksni registri, segmentni registri i drugi.
Segmentni registri adresiraju segmente memorije dodeljene programima, podacima, steku itd.
Posebni registri namenjeni upravljanju tokom programa su takoe prisutni u nekim arhitekturama. Najee
sretani registar ovog tipa je registar koda uslova ili registar uslova (Condition Code Register ili CCR). On
objedinjuje vei broj indikatora (flags), jednobitnih registara koji se postavlaju ili briu zavisno od toga da li je
odreeni dogaaj nastao ili nije. U sastavu CCR-a najee su prisutni sledei indikatori:
SF (Sign Flag) indikator znaka, postavlja se ako je razultat negativan,
ZF (Zero Flag) indikator nule, postavlja se ako je rezultat nula,
CF (Carry Flag) indikator prenosa, postavlja se ako se javi prenos,
OF (Overflow Flag) indikator prekoraenja, postavlja se ako rezultat prekorai kapacitet formata,
PF (Parity Flag) indikator parnosti, postavlja se ako je rezultat paran,
AF (Auxilary Carry Flag) indikator pomonog prenosa, postavlja se ako se javi prenos iz etvorobitne
grupe pri sabiranju BCD brojeva, idr.
4
U nekim arhitekturama navedeni indikatori iz registra uslova ukljueni su u registar poznat kao registar statusa
programa (Program Status Word ili PSW).

Sistemski registri
Sistemski registri uestvuju u upravljanju prekidima i izuzecima, prevoenje sistema iz supervizorskog u
korisniki nain rada i obrnuto, prevoenju virtuelnih u fizike, upravljanju ke memorijama, sakupljanju
podataka o korienju resursa sistema itd. Ovim registrima se moe pristupati samo pri kernel ili
supervizorskom nainu rada sistema.
Registri koji uestvuju u upravljanju prekidima i izuzecima sadre podatke o nainu rada procesora
(korisniki/supervizorski), o dozvoli/zabrani prekida, maskiranju prekida, nerazreenim zahtevima za prekid,
uzorku izuzetka itd. Adresni registar rukovaoca prekida sadri adresu programa koji se aktivira prekidom.
Sistemski registri specifini su za svaku arhitekturu.
6. Registarsko , indirektno registarsko
I neposredno adresiranje
(Register Addressing) imamo kada je operand prisutan u nekom registru procesora, R j. I primarna i efektivna
adresa operanda je adresa registra Rj:
a prim = a ef = R j
Obzirom da se broj registara opte namene u procesoru kree u granicama od 8 do 64, za adresiranje operanada
u registrima potrebno je od 3 do 6 adresnih bitova. Kako su registri procesora najbri deo memorijskog saistema
raunara, vreme pristupa operandima u registrima je najkrae mogue.
Formiranje efektivne adrese

Registarsko
adresiranje

Indirektno registarsko adresiranje


(Register Indirect Addressing) imamo kada je operand u memoriji adresiran sadrajem nekog registra opte
namene Rj. U adresnom polju operanda u instrukciji navodimo registar R j. Dakle primarna adresa operanda je
adresa registra Rj, a efektivna adresa operanda je sadraj registra Rj.
a prim = R j , aef = ( R j )

Formiranje efektivne Adrese

Indirektno Registarsko
adresiranje

Neposredno adresiranje
(Immediate Addressing) pri pribavljanju instrukcije pribavlja se i operand i on je raspoloiv za obradu bez
dodatnih aktivnosti. Naziva se jo i literalno adresiranje. Primarna i efektivna adresa operanda odreene su
sadrajem programskog brojaa, PC:

5
a prim = aef = PC
Neposredno adresirani operandi koriste se u aritmetikim operacijama, pri poreenjima (prvenstveno u
grananjima), i u prenosima kojima se registri pune konstantama. Konstante koje se koriste u izrazima obino
imaju male vrednosti, dok adresne konstante obino imaju velike vrednosti. Za oznaavanje neposrednog
adresiranja koristiemo znak # napisan ispred operanda: #Konst ili #5.

7. Bazno i indeksno adresiranje


(Base Addressing) imamo kada je operand u memoriji adresiran zbirom sadraja baznog registra, BR, i
pomeraja (displacement) navedenog u odgovarajuem adresnom polju instrukcije za taj operand. Bazni registar
BR moe biti poseban adresni registar namenjen ovom nainu adresiranja ili neki od registara opte namene, to
je danas ee zastupljeno. Pomeraj predstavlja adresu lokacije relativnu u odnosu na sadraj baznog registra.
BR svojim sadrajem odreuje veliinu podruja memorije, ijim se lokacijama moe pristupiti na osnovu
pomeraja. Referentna adresa moe biti adresa poetka memorije, kada je pomeraj neoznaena veliina, ili
adresa sredine podruja memorije, kada je pomeraj oznaena veliina. Duina pomeraja, r, odreuje veliinu
podruja adresa L=2r, unutar kojeg se lokacijama moe pristupati sa nepromenjenim sadrajem BR-a. Primarna
adresa sadri dve komponente: adresu BR-a i pomeraj. Efektivna adresa operanda je zbir sadraja BR-a i
pomeraja.
a prim = BR, pomeraj , aef = ( BR ) + pomeraj
Formiranje efektivne adrese

Bazno adresiranje

Bazno adresiranje omoguuje da se memorijske lokacije adresiraju sa manjim brojem adresnih bitova i
omoguuje jednostavnu implementaciju relokativnosti podataka u memoriji. Relokativnost je mogunost da se
podacima dodeli bilo koje podruje memorije koje se moe menjati i u toku samog izvrenja programa.
Ovo adresiranje se naziva jo i pomerajno adresiranje (displacement addressing).
Oznaavamo ga stavljanjem pomeraja ispred oznake BR-a izmeu para malih zagrada: 25(R4).
Indeksno adresiranje
(Index Addressing) imamo kada je operand u memoriji adresiran zbirom sadraja registara R j i Rk. Rj sadri
poetnu adresu podruja u memoriji dodeljenog nekoj strukturi podataka, a R k je indeksni registar koji sadri
indeks nekog elementa u toj strukturi. Primarnu adresu operanda ine adrese R j i Rk, a efektivna adresa
operanda je zbir sadraja ova dva registra:
a prim = R j , Rk , aef = ( R j ) + ( Rk )
Formiranje efektivne adrese

Indeksno
adresiranje

6
Ovo adresiranje oznaavamo parom malih zagrada izmeu kojih navodimo registre R j i Rk povezane znakom +:
(R7+R4)

8. Memorijsko indirektno i adresiranje relativno u odnosu na programski brojac


(Memory Indirect Addressing) - imamo kada registar R j, naveden u odgovarajuem adresnom polju instrukcije
za taj operand, adresira memorijsku lokaciju, koja svojim sadrajem adresira operand u memoriji. Primarna
adresa je Rj, a efektivna adresa je iskazana sadrajem M[Rj]. Memorijska lokacija M[Rj] je pokaziva na
operand u memoriji.
a prim = R j , aef = M [ R j ]
Formiranje efektivne adrese

Memorijsko indirektno
adresiranje

Ovaj nain adresiranja neefikasan je prema kriterijumu vremena pristupa operandima, koje je jednako
dvostrukom vremenu pristupa memoriji. Broj indirektnih pristupa memoriji do dobijanja efektivne adrese
operanda moe biti i vei od jedan.
Ovo adresiranje oznaavamo znakom @ ispred para malih zagrada izmeu kojih je navedena oznaka registra ili
memorijska adresa: @(R8) ili @(1200).
Adresiranje relativno u odnosu na programski broja
Registar kome se implicitno obraamo je programski broja (PC). Ovo znai da se tekua adresa instrukcije
sabira sa otklonom i na taj nain formira efektivna adresa (EA). Kod ove operacije otklon se tretira kao broj u
dvoinom komplementu. Kao rezultat EA predstavlja razmetaj u odnosu na adresu instrukcije. Najvei broj
obraanja memoriji je relativno blizu instrukcije koja se trenutno izvrava, to znai da se korienjem ovog
naina adresiranja tede bitovi u instrukciji. Efektivna adresa se izraunava: EA=(PC)+D , gde je D-otklon
specificiran instrukciji. S obzirom da sadraj PC-a deluje kao pokaziva na instrukciju koja se tekue izvrava,
vrednost otklona ukazuje na rastojanje izmeu operanda i same instrukcije.

9. Autoinkrementno i autodekrementno adresiranje

Autoinkrementno adresiranje
(Autoincrement Addressing) izvedeno je iz direktnog registarskog adresiranja dodavanjem aktivnosti
inkrementiranja korienog registra Rj posle (ili pre) obraanja memoriji. Registar Rj se moe inkrementirati
vrednou d, odreenom duinom elemenata kojima se pristupa. Primarna adresa operanda je adresa registra R j,
a efektivna adresa je (Rj).
a prim = R j , aef = ( R j ) , R j R j + d
Formiranje efektivne adrese

7
Autoinkrementno
adresiranje

Oznakama 1. i 2. prikazan je redosled kojim se vri obraanje memoriji na osnovu sadraja registra R j i
auriranje ovog registra.
Ovo adresiranje oznaavamo navoenjem oznake korienog registra izmeu malih zagrada, dodajuu sufiks +:
(R3)+

Autodekrementno adresiranje
(Autodecrement Addressing) slino je autoinkrementnom i od njega se razlikuje u dva detalja: korieni
registar Rj se dekrementira i to pre (ili posle) obraanja memoriji. Primarna adresa operanda je adresa registra
Rj, a efektivna adresa je (Rj). Pre ili posle obraanja memoriji po efektivnoj adresi dekrementira se Rj.
a prim = R j , aef = ( R j ) , R j R j d
Formiranje efektivne adrese isto je kao kod autoinkrementnog sa zamenom mesta 1. i 2. i promenom d u d.
Ovo adresiranje oznaavamo navoenjem oznake korienog registra izmeu malih zagrada, dodajuu prefiks -.
Npr. -(R3)
10. Redosled bajtova u podacima i poravnati pristupi memoriji
U raunarima razliitih proizvoaa sreu se dva naina za ureivanje bajtova unutar podataka sa duinama
veim od bajta.
Pri adresiranju repa (Little Endian byte order) adresa rei xx...xx002 je i adresa bajta najmanje teine u rei
(rep rei). Ostali bajtovi sa rastuim teinama imaju rastue adrese (xx...xx012, xx...xx102, xx...xx112).
Pri adresiranju glave (Big Endian byte order) adresa rei xx...xx002 je i adresa bajta najvee teine u rei (glava
rei). Ostali bajtovi sa opadajuim teinama imaju rastue adrese (xx...xx012, xx...xx102, xx...xx112).

Raspored bajtova u reima a) adresiranje repa, b) adresiranje glave

Veina savremenih procesora, pored adresiranja repa ili glave kao osnovnog naina ureivanja bajtova,
podrava i onaj drugi nain ureivanja.

Kada se radi sa samo jednim raunarom, redosled bajtova esto je beznaajan. On je vaan samo ako se
programi obraaju delovima podataka, npr. polureima vee ili manje teine u rei, ili drugom po teini bajtu u
rei. Npr. pri adresiranju repa, polure sa adresom 2 je polure vee teine u rei sa adresom 0. Pri adresiranju
glave, polure sa adresom 2 je polure manje teine, dok je polure vee teine na adresi 0. Redosled bajtova u
8
rei znaajan je kada se razmenjuju podaci izmeu dva raunara, koji koriste razliite redoslede bajtova u
reima. Tada se mora primeniti reenje koje e obezbediti da se podaci, koji se uzimaju iz memorije raunara
poiljaoca podataka, korektno smeste u memoriji raunara primaoca podataka.
Za redosled bitova u podatku duine n bitova, nezavisno od redosleda bajtova, takoe postoje dve alternative:
1. bit najvee teine (MSb) nosi oznaku n-1, a bit najmanje teine (LSb) nosi oznaku 0,
2. bit najvee teine (MSb) nosi oznaku 0, a bit najmanje teine (LSb) nosi oznaku n-1.
Oba reenja imaju prednosti i nedostatke. Prvo reenje, u kombinaciji sa adresiranjem repa, daje konzistentan
redosled bajtova i bitova u podatku. Isto vai i za drugo reenje u kombinaciji sa adresiranjem glave. Drugo
reenje, meutim, ima taj nedostatak da pri posmatranju n-to bitnog podatka kao binarnog broja, cifra u poziciji
i ima teinu 2n-i-1, to usloava rad sa delovima podataka.

Arhitektura procesora takoe definie da li pristupi podacima u memoriji moraju biti poravnati, ili oni mogu biti
i neporavnati. Pristup podatku u memoriji sa adresom a, duine l=2k bajtova, je poravnati pristup memoriji
(aligned data access) ako je adresa a deljiva sa l, odnosno a mod l=0. Ovaj uslov moe se iskazati i na drugi
nain: pristup podatku duine l bajtova sa adresom a u memoriji je poravnat, ako je k adresnih bitova najmanje
teine jednako nuli. Uslovljavanje da pristupi memoriji budu poravnati namee se implementacionim
zahtevima. Naime, n-to bitnom procesoru pridruuje se memorija sa lokacijama duine n bitova. Pri punjenju
registra podatkom iz memorije kraim od n bitova, potreban je odgovarajui hardver koji e uitani podatak
korektno pozicionirati u registru. Isto tako, pri slanju podatka kraeg od n bitova iz registra u memoriju,
potreban je odgovarajui hardver koji e poslani podatak korektno pozicionirati unutar memorijske lokacije.
Ovaj hardver jednostavniji je pri poravnatim pristupima memoriji. Kada podatak pri neporavnatom smetanju
zahvata delove dve susedne memorijske lokacije, pristup takvom podatku zahteva dva obraanja memoriji.

11. Skup instrukcija procesora


Skup instrukcija procesora ukljuuje sve instrukcije koje je procesor u stanju da prepozna i izvri. Najvaniji
zahtevi, koji usmeravaju izbor i dejstva instrukcija koje e biti ukljuene u skup instrukcija procesora, su da on
bude:
Kompletan
Efikasan
Regularan
Kompatibilan i
Prilagoen savremenoj implementaciji
Skup instrukcija je kompletan ako se u njemu moe napisati program na jeziku asemblera koji izraunava
vrednost bilo koje izraunljive funkcije korienjem raspoloivog memorijskog prostora. Kompletan skup
instrukcija mora ukljuivati instrukcije kojima se moe obaviti svaka aktivnost koja se moe iskazati nekim
formalnim postupkom. Dakle on mora sadrati instrukcije kojima se :
Izvravaju aritmetike i logike operacije, ime se vri transformacija podataka ako je ona postupkom
obuhvaena,
Prenose podaci,
Upravlja aktivnostima obuhvaenim postupkom.
Skup instrukcija je efikasan ako se najee sretane funkcije mogu implementirati kratkim nizovima instrukcija
(prostorna efikasnost), i ako se te fukcije obavljaju za kratko vreme (vremenska efikasnost).
Skup instrukcija je regularan ako ima instrukcije odreene vrste za rad sa svim tipovima podaka, ako sadri
standardni skup uslova u instrukcijama uslovnog grananja i sl. Poeljno je i da skup instrukcija bude
ortogonalan, u smislu da se par elemenata u sastavu instrukcija moe kombinovati bez ogranienja. Npr.

9
ortogonalnost operacija i naina adresiranja zahteva da se u svakoj operaciji na svaki operand moe primeniti
bilo koji od moguih naina adresiranja operanada.
Skup operacija esto mora biti kompatibilan sa nekim ranije definisanim skupom instrukcija. Arhitektura skupa
instrukcija treba da ima dug ivotni vek. Jedan od naina da bi se ivotni vek arhitekture produio je i proirenje
stare arhitekture, zadravajui sve njene elemente i dodajui elemente usloveljene savremenim zahtevima.
Tip operatora Primeri
Aritmetiki i logiki Celobrojne aritmetike i logike operacija
Prenos podataka Punjenja, pamenja, instrukcije prenosa
Upravljanje Grananja, skokovi, pozivi i vraanja iz procedura, trapovi
Pozivi operativnog sistema, instrukcije za upravljanje virtuelnom i ke
Sistemski
memorijom
Operacije sa pokretnom zapetom: sabrati, pomnoiti, konverzija celobrojnog
Pokretna zapeta
podatka u pokretnu zapetu i obrnuto
Dekadno sabiranje i mnoenje, konverzija iz dekadnog oblika u nisku znakova i
Dekadne
obrnuto
Niske znakova Prenos niske, poredjenje niski, traenje niski
Grafiki Operacije sa pikselima, operacije kompresije i dekompresije
Multimedijalni Operacije na grupama pakovanih celobrojnih i FP podataka
Skup instrukcija mora biti prilagoen zahtevima savremenih implementacionih tehnologija. Jedna od njih je
protonost u radu procesora, sa zahtevima to vee ujednaenosti obima aktivnosti u instrukcijama,
mogunou preklapanja izvrenja operacija, mogunou preureenja instrukcija u programima i drugim
zahtevima.
Skup instrukcija mora obuhvatati instrukcije za obavljanje aritmetikih i logikih operacija, instrukcije za
prenos podataka i upravljake insrukcije. Tipovi instrukcija u sastavu skupa instrukcija, klasifikovani prema
tipu operatora koji se u njima pojavljuje, dat je u prethodnoj tabeli.
Grupa aritmetikih operacija sadri instrukcije sabiranja, oduzimanja, mnoenja, deljenja, poreenja,
inkrementiranja/dekrementiranja, komplementiranja itd. celobrojnih oznaenih i neoznaenih podataka.
Grupa logikih operacija sadri instrukcije za obavljanje logikih operacija I, ILI, NE, Iskljuivo_ILI itd.
neoznaenih celih brojeva.
Grupa instrukcija pomeranja sadri instrukcije za logiko pomeranje ulevo i udesno bez i sa krunim prenosom
i aritmetiko pomeranje udesno.
Grupa instrukcija za prenos podataka sadri instrukcije Move, Load, Store, Push, Pop, In, Out idr. Instrukcijom
Move podatak se moe preneti izmeu para registara, ili izmeu registara i memorije. Instrukcijom Load
podatak se prenosi iz memorije u registar, a instrukcijom Store iz registara u memoriju. U novije vreme ova
grupa instrukcija obogaena je instrukcijama uslovnog prenosa (conditional move). One sadre uslov koji mora
biti ispunjen da bi se prenos podataka obavio.
Grupa sistemskih instrukcija obuhvata instrukcije za poziv usluga operativnog sistema, zaustavljanje programa
u prekidnoj taki, upravljanje ke memorijom i virtuenom memorijom, povratak iz rukovaoca izuzetaka itd.
Grupa instrukcija za rad sa dekadnim podacima obuhvata instrukcije za korekciju operanada pri dekadnom
sabiranju, mnoenju i deljenju.
12. Instrukcije za upravljanje tokom programa
Grupa instrukcija za upravljanje tokom programa sadri instrukcije bezuslovnog i uslovnog grananja, skokova,
poziva procedura (potprograma) i povratka iz procedura (potprograma). Sledea tabela sadri prikaz ovih
instrukcija za tipian RISC procesor. U ovim instrukcijama (osim JR i JALR) za odredite grananja odnosno
skoka koristi se adresiranje relativno u odnosu na programski broja. Otklon je oznaeni ceo broj. Polje otklona
je u instrukcijama skoka irine p bitova, a u instrukcijama grananja q bitova. Sve instrukcije su duine 4 bajta,
tako da je PC+4 adresa instrukcije koja u programu sledi upravljaku instrukciju. Otklon, sa vrednostima iz
opsega [ 2 p 1 ,2 p 1 1 ] odnosno [ 2 q 1 ,2 q 1 1 ] sabira se sa PC+4, odreujui odredite skoka odnosno
grananje respektivno. Kada je odredite skoka van podruja memorije koje se moe dosegnuti otklonom, koristi
se instrukcija JR. Sadrajem registra navedenog u instrukciji JR moe se adresirati odredite skoka bilo gde u
adresnom prostoru memorije. Za pozive procedura na raspolaganju su instrukcije skoka na proceduru, JAL i

10
JALR, i uslovnog grananja na proceduru BEQZAL. U ovim instrukcijama adresa povratka iz procedure pamti
se u registru odreenom arhitekturom. U sluaju ugnjedavanja nove procedure, potrebno je najpre zapamtiti
sadraj registra R31 recimo u steku, pa tek onda pozvati ugnjedenu proceduru. Povratak iz izvravane procedre
u pozivajui program vri se instrukcijom JR R31.

Naziv instrukcije Primer instrukcije Znaenje


PCPC+4+ime
Jump(skok) J ime
2 p 1 ime < 2 p 1
Jump registar (skok odereen
JR R3 PCR3
skokom)
If(R4==0)PCPC+4+ime
Branch if equal zero
BEQZ R4,ime Else PCPC+4;
(grananje ako je nula)
2 q 1 ime < 2 q 1
R31PC+4,
Jump and link (skoi i povei) JAL ime PCPC+4+ime;
2 p 1 ime < 2 p 1
Jump and link register (skoi i R31PC+4,
JALR R2
povei preko registara) PCR2
If(R4==0) R31PC+4,
Branch if equal zero and link
PCPC+4+ime
(grananje i povezivanje ako je BEQZAL R4,ime
Else PCPC+4;
nula)
2 q 1 ime < 2 q 1
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:
g1. Proveru zadovoljenja odreene relacije i upis ishoda te provere na predvienom mestu,
g2. Ispitivanje ishoda prethodno obavljene provere i grananje ako je on pozitivan.
Zavisno od toga da li se aktivnosti g1. i g2. obavljaju jedinstvenom ili odvojenim instrukcijama i kako se
obavlja aktivnost g1., sreu se tri reenja:
Reenje sa implicitnim registrom koda uslova
Reenje sa registrom uslova
Poreenje i grananje
13. Sistem prekida raunara
Termin prekid (inerrupt) ili izuzetak (exception) koristi se u irokom smislu za bilo koji redak ili neoekivano
dogaaj koji uzrokuje da CP sa izvrenja tekueg programa pree na drugi program koji opsluuje prekid.
Prekidi mogu biti generisani od razliitih izvora unutar ili van CP-a:
1) Zahtevi od U-I ureaja,
2) Pozivanje usluga operativnog sistema iz programa korisnika,
3) Trasiranje izvrenja instrukcija,
4) Prekidne take (prekidi zahtevani od programera),
5) Prekoraenje i potkoraenje u celobrojnoj aritmetici,
6) Anomalije u aritmetici sa pokretnom zapetom,
7) Greka stranice (odsustvo stranice u glavnoj memoriji),
8) Neporavnati pristup memoriji (ako takav nije dopustiv),
9) Povreda zatite memorije,
10) Korienje nedefinisane instrukcije,
11) Greke u radu hardvera,
12) Nestanak napona napajanja.
Termin prekid najee se koristi za asinhrone dogaaje koji nastaju van CP-a. Takvi dogaaji navedeni su pod
brojevima 1 i 12 u prethodnom spisku. Termin izuzetak najee se koristi za sinhrone dogaaje koji nastaju
unutar CP-a. Takvi dogaaji navedeni su pod brojevima 210 u prethodnom spisku. Dogaaj pod rednim
brojem 11 moe spadati i u jednu i u drugu grupu. Procesor odgovara na prekide i izuzetke u sutini na isti
nain. Po signaliziranju prekida ili izuzetka procesor naputa izvrenje tekueg programa ili zadatka i prelazi na

11
program rukovaoca prekida (inetrrupt handler procedure). Po zavrrtku opsluivanja prekida ili izuzetka
nastavlja se izvrenje prekinutog programa.
Neki proizvoai raunara ralanjuju izuzetke prema dodatnim kriterijumima, tako i intel u svojoj IA-32
arhitekturi ima specificira tri klase izuzetaka: greke, trapove i pobaaje. Klasifikacija izuzetaka na greke,
trapove i pobaaje vri se na osnovu naina na koji se izvrava o njihovom nastanku, kao i da li se instrukcija
koja je izazvala izuzetak moe restartovati bez gubitaka kontinuiteta programa.
14. Spoljanji prekidi (od U-I ureaja) i unutranji prekidi (trapovi)
Termin izuzetak najee se koristi za sinhrone dogaaje unutar CP-a, kada on ustanovi ispunjenje jednog ili
vie unapred definisanih uslova za vreme izvrenja neke instrukcije. Klasifikacija izuzetaka na greke, trapove i
pobaaje vri se na osnovu naina na koji se izvetava o njihovom nastanku, kao i da li se instrukcija koja je
izazvala izuzetak moe restartovati bez gubitaka kontinuiteta programa.
Trap je izuzetak koji se dojavljuje neposredno posle izvrenja instrukcije u kojoj se javio trap. Trap doputa da
se izvrenje programa nastavi bez gubitka kontinuiteta programa. Adresa povratka iz rukovaoca trapa je adresa
instrukcije koju treba izvriti posle instrukcije u kojoj se javio trap. Ako se javio u instrukciji koja upravlja
tokom programa, adresa povratka iz rukovaoca trapa bie adresa na koju se prelazi tom upravljakom
instrukcijom, a ne njena sukcesivna instrukcija u programu.
15. Arhitektura i formati instrukcija MIPS procesora
MIPS arhitektura je RISC arhitektura proistekla iz istraivanja, na Stanford univerziteta, obavljena od
1981-1983 godine. Kasnije je osnovana firma MIPS iji su komercijalni proizvodi mikroprocesori iz R familije:
R2000, R3000, R6000, R10000. Firma MIPS danas podrava dve arhitekture: MIPS64 i MIPS32, pri emu je
druga podskup prve. MIPS32 arhitektura definie centralni procesor (CPU) i tri koprocesora:
Koprocesor 0 (CP0) se zajedno sa CP implementira u istom ipu i podrava vitrueni
memorijski sistem i rukovanje izuzecima. CP0 se takoe naziva i Koprocesor upravljanja sistemom (System
Control Coprocessor).
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, na koji se samo indirektno utie
nekim instrukcijama
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.
Registri koje definie MIPS32 prikazani su na slici.
Dva od 32 GPR registra 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 JAL, BLTZAL, BLATZALL, BGEZAL i
BGEZALL bez njegovog eksplicitnog navoenja u ovim instrkcijama; van njih on se koristi kao i drugi GPR
registri.

12
Korisniki vidljivi registri u MIPS32 arhitekturi

MIPS32 arhitektura definie sledee formate celobrojnih podataka:


Bit
Bajt
Polure (2B)
Re (4B)
Dvostruku re (8B)
Arhitektura takoe definie FP podatke sledeih tipova:
32-bitne FP podatke jednostruke preciznosti
64-bitne FP podatke dvostruke preciznosti
MIPS arhitektura podrava sedee naine adresiranja:
Neposredno
Registarsko
Bazno (pomerajno)
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 izvedenanaina 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).

13
Formati instrukcija u MIPS arhitekturi
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 nemenjen je instrukcijama skoka i bezuslovnog poziva procedura.
Oznake polja u ovim formatima i 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.
16. Vietaktna implementacija procesora
Nedostaci kod jednotaktnog procesora mogu se otkloniti vietaktnom implementacijom procesora. Zavisno od
aktivnosti u okviru instrukcije, ciklus instrukcije ukljuuje neophodan broj taktnih ciklusa. Za svaku instrukciju,
aktivnosti na pribavljanju i izvravanju ralanjuju se na izvestan broj faza. Svaka faza se obavlja se u okviru
jednog ciklusa takta. Aktivnosti u okviru svake faze obavlja odgovaraji stepen procesora. Svaki par susednih
stepena procesora razdvojen je registrima. Registri koji prethode nekom stepenu su ulazni registri za taj stepen.
Registri koji slede nekom stepenu su izlazni registri za taj stepen. U taktnom ciklusu u kome je stepen procesora
aktivan, on podatke iz svojih ulaznih registara transformie i upisuje ih u svoje izlazne registre. Upisi u registre i
memoriju taktovani su taktnim signalima.
Svaka instrukcija se moe ralaniti na najvie pet faza:
Pribavljanje instrukcija (IF),
Dekodiranje instrukcija i pribavljanje operanada iz registara (ID),
Izvrenje instrukcija (EX),
Obraanje memoriji podataka (ME) i
Upis podataka u odredini registar (WB).
Na slici je prikazana blok ema implementacije vietaktnog procesora

14
Putevi podataka vietaktnog
procesora sa pridodatom
memorijom

Ovde su A i B prihvatni registri izvorinih operanda pribavljenih iz polja registara, a ALUIzl prihvatni registar
razultata iz ALU.
Aktivnosti pri pribavljanju i izvrenju razmatranih instrukcija na vietaktnom procesoru po fazama su sledee:
1. pribavljanje instrukcija (IF)
IRMem[PC]
PCPC+4
Iz lokacije programske memorije, na koju pokazuje programski broja, pribavlja se instrukcija i prenosi u
registar instrukcija. Paraleleno sa tim formira se adresa sledee sekvencijalne instrukcije, i upisuje u programski
broja PC.
2. Dekodiranje instrukcija i pribavljanje operanada iz registara (ID)
AReg[ IR25..21 ]
BReg[ IR20..16 ]
ALUIzlPC+znak._pro.( IR15..0 )<<2.
Instrukcija se dekodira. Izvorini operandi se pribavljaju i prenose u pomone registre A i B. Sadraj polja
IR15..0 (to je pomak ako se pokae da je instrukcija koja se dekodira instrukcija grananja) se znakovno
proiruje i pomera ulevo za dve binarne pozicije, a zatim dodaje sadraju programskog brojaa i upisuje u
registar ALUIzl. Sve ove aktivnosti obavljaju se paralelno. Ovo je omogueno fiksnim poloajem oznaka
registara i immediate polja u R i I formatu instrukcija.
3. Izvravanje instrukcije i izraunavanje efektivne adrese (EX)
Zavisno od instrukcije, obavlja se jedna od sledeih pet aktivnosti:
Aritmetiko logike instrukcije R formata
ALUIzlA(op,func)B
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. Reultat 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
programskog brojaa.
Lociranje ovih aktivnosti u okviru iste faze razliitih instrukcija mogue je, jer su u napuni/zapamti arhitekturi,
nabrojane instrukcije meusosbno iskljuive.
4. Obraanje memoriji (ME)
U ovoj fazi aktivne su samo instrukcije obraanja memoriji (Load i Store)
Obraanje memoriji:
Load: MDRMem[ALUIzl], ili
15
Store: Mem[ALUIzl]B
5. Upis rezultata u odredite (WB)
Aritmetiko logike instrukcijeR formata
Re g[ IR15..11 ] ALUIzl
Aritmetiko logike instrukcije I formata
Re g[ IR20..16 ] ALUIzl
Load instrukcija
Re g[ IR20..16 ] MDR
Zapazimo da instrukcije grananja i skokova sadre samo po 3 faze, aritmetiko logike instrukcije i Store
sadre po 4 faze, a samo Load sadri 5 faza. Ove aktivnosti po fazama prikazane su u sledeoj tabeli.

Logike
Instrukcije R Instrukcije obraanja
Faza instrukcije I Grananja Skokovi
formata memoriji
formata
IRm[PC]
1
PCPC+4
AR[ IR25..21 ]
2 BR[ IR20..16 ]
ALUIzlPC+zp( IR15..0 )<<2
ALUIzlA ALUIzlA If(A=B) then PC PC31..28 ||
3 ALUIzlA+zp(imm)
(op,func)B op pn(imm) PCALUIzl IR25..0 << 2
Load:
MDRM[ALUIzl]
R[rt]
4 R[rd]ALUIzl Store:
ALUIzl
M[ALUIzl]B

Load:
5
R[rt]MDR
Faza 1: pribavljanje instrukcija,
Faza 2: dekodiranje instrukcija i pribavljanje operanada,
Faza 3: izvrenje operacija, izraunavanje adresa, dovravanje grananja i skoka,
Faza 4:obraanje memoriji, dovravanje instrukcija R formata i logiih instrukcija I formata,
Faza 5: dovravanje itanja memorije.
Skraenicama pn i zp oznaeno je proirenje nulama i znakovno proirenje respektivno.
17. Upravljaka jedinica (UJ) procesora (opte)
Na primerima jednotaktnog i vietaktnog procesora se vidi da se pribavljanje i izvravanje svake instrukcije
obavlja kroz niz elementarnih aktivnosti. Ovakve elementarne aktivnosti nazivamo mikrooperacijama.
Mikrooperacije mogu biti jednostavni prenosi podataka iz jednog u drugi registar, itanje podataka ili upis
podataka u memoriju. Mikrooperacije se izvravaju tako to se aktiviraju odreene upravljake take.
Upravljake take su upravljaki ulazni prikljuci (linije) elemenata hardvera koji uestvuju u obavljanju
odreenih mikrooperacija. U upravljakim takama deluju upravljaki signali, koje generie upravljaka
jedinica procesora.
Osnovni zadaci upravljake jedinice procesora su:
Interpretacija instrukcija CP-a, to se svodi na formiranje nizova mikrooperacija za svaku
instrukciju,
Generisanje upravljakih signala,
Upravljanje prenosom podataka izmeu procesora i memorije i procesora i ulazno
izlaznog sistema raunara.
Definisanje rada upravljake jedinice zahteva navoenje upravljakih signala koje treba aktivirati i kada to
uiniti. To se moe raditi na raziite naine. Jedan od njih je prikaz promene stanja upravljake jedinice. U
svakom stanju navode se vrednosti podskupa upravljakih signala, kojima se aktivira jedna ili vie
mikroopearcija koje se obavljaju paralelno. Upravljaka jedinica zadrava se u svakom stanju za unapred
16
definisan vremenski interval ili do ispunjenja nekog uslova. Vremenske intervale odreuje taktni signal, ija
uestanost moe biti jednaka ili vea od uestanosti taktnog signala procesora. Uslov za izlazak moe biti
pristigla potvrda da je neka aktivnost, naloena u tom stanju, dovrena. Nizovi stanja kroz koje prolazi
upravljaka jedinica odreeni su instrukcijama koje se pribavljaju i interpretiraju, kao i uslovima koji pri tome
nastaju u procesoru i van njega. Zahtevano ponaanje upravljke jedinice moe se opisati i u formi nekog od
programskih jezika.
Upravljaka jedinica procesora, ije je ponaanje odreeno na neki od navedenih naina, moe se
implementirati na osnovu jedne od ove dve sledee koncepcije:
Kao klasina sekvencijalna prekidaka mrea, to vodi direktnom (hardverskom)
upravljanju, i
Kao maina sa zapamenim programom, to vodi mikroprogramskom upravljanju.
18. Upravljaka jedinica sa (hardverskim) direktnim upravljanjem
Na primeru vietaktnog procesora videli smo da je za definisanje ponaanja upravljake jedinice procesora
neophodno koristiti koncepciju stanja, koja se iroko koristi u teoriji konanih automata (finite state machine).
Upravljaku jedinicu procesora moemo posmatrati kao konani automat, zadat sledeim elementima:
-Skupom stanja upravljake jedinice S ={S 0 , S1 ,..., S n 1}
-Skupom ulaznih upravljakih signala X ={x1 , x 2 ,..., xm }
-Skupom izlaznih upravljakih signala Y ={ y1 , y 2 ,..., y k }
-Funkcijom promene stanja FS : ( X , S ) S , i
-Funkcijom izlaza FY : ( X , S ) S .
Postoje dva oblika konanih automata: Mealy-ev i Moor-ov automat. Mi emo ovde koristiti Moor-ov automat,
ija je fukcija izlaza ima oblik FY : S Y . To znai da su izlazni signali odreeni samo stanjem u kome se
automat nalazi.
Konani automat moe se implementirati sekvencijalnom prekidakom mreom, koja se sastoji od
kombinacione prekidake mree i memorijskih elemenata, kao na slici.

Implentacija konanog
automata sekvencijalnom
prekidakom mreom

Memorijski elementi mogu biti flip-flopovi tipa D, RS, JK ili T ili leevi. Oni se taktiraju taktnim signalima
odreene uestanosti. Memorijski elementi odreuju stanje konanog automata. U svakom od stanja konani
automat moe boraviti u toku jednog ili vie sukcesivnih taktnih ciklusa. Promene stanja vre se pri smenjivanju
taktnih ciklusa. Kombinaciona mrea implementira funkcije promene stanja i izlaza. Funkciju promene stanja
implementira tako to u i-tom taktnom ciklusu formira ulazne signale za memorijske elemente, koji odreuju
stanje automata u i+1-om taktnom ciklusu. Funkcija izlaza implementira tako to na osnovu stanja i ulaznih
signala u i-tom taktnom ciklusu formira izlazne signale.
Upravljaka jedinica sa direktnim upravljanjem je implementacija upravljake jedinice sekvencijalnom
prekidakom mreom. Struktura ovakve upravljake jedinice data je na sledeoj slici.

17
Blok ema upravljake
jedinice sa direktnim
(harderskim) upravljanjem

Logika direktnog upravljanja je predstavljena emom sa prethodne slike. U bloku Tekue stanje UJ
skoncentrisani su memorijski elementi upravljake jedinice. Ulazni signali u upravljaku jedinicu ukljuuju
odreena polja registara instrukcija, stanja indikatora iz registra koda uslova (ili ekvivalente ovog reenja) i
neke od upravljakih signala sistemske magistrale. Izlazni signali vode se na upravljake linije (take) puteva
podataka procesora i neke upravljake linije sistemske magistrale. Zbog ranijih implementacija logikih kola se
upravljaka jedinica sa direktnim upravljanjem naziva i oiena upravljaka jedinica.
Za projektovanje upravljake jedinice sa direktnim upravljanjem moe se koristiti metoda tablice stanja, metoda
elemenata za kanjenje idr.
19. Projektovanje UJ metodom tablice stanja
Upravljaka jedinica moe biti data na jedan od ve navedenih naina ili 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 S i. Projektovanje ukljuuje minimizaciju
stanja automata, kodiranje stanja i projektovanje sekvencijalne prekidake mree koja implementira automat. Za
sve navedene faze projektovanja mogu se koristiti za to namenjeni programski sistemi.

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.
20. Projektovanje UJ metodom elemenata za kanjenje
Ponaanje UJ dato je dijagramom toka upravljanja. Ona se svodi na korienje prekidake mree ija
konfiguracija odslikava dati dijagram toka upravljanja. Za svaki put u dijagramu toka upravljanja, u ovu mreu
treba uvesti po jedan put koji mu odgovara. Kretanju du puta u dijagramu toka upravljanja za odreenu
instrukciju odgovara prostiranje jednog impulsnog signala du odgovarajueg puta u toj mrei. Prostiranje
18
impulsnog signala mora biti takvo, da on za svako stanje S, du puta u dijagramu toka upravljanja, obezbeuje
vremenski interval ti koji odgovara tom stanju. Brzina prostiranja impulsnog signala kroz prekidaku mreu,
odnosno duina ovih vremenskih intervala, moe se definisati elementima za kanjenje.
Mrea koja implementira dati algoritam upravljanja dobija se na osnovu sledea etiri pravila:
Par sukcesivnih stanja Si i Sj zahteva uvoenje elemenata za kanjenje. Upravljaki signali {y ir} i {yip}
koje UJ izdaje stanjima Si i Sj uzimaju se sa ulaza i izlaza ovog elementa za kanjenje, respektivno (slika pod
a), ili se formiraju na osnovu njih.
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 lementom 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 kao odgovarajuih delova dijagrama toka upravljanja UJ. Ovo
olakava testiranje kao i izmene u implemntaciji. Nedostatak je to to ta implenetaciju UJ sa n s stanja zahteva
ns-1 (ili ns) flip-flopova, to je znatno vie od log 2 ns koliko zahteva metoda tablice stanja.
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.
Veliki broj stanja UJ i neregularna struktura mree UJ sa direktnim upravljanjem oteavaju i njeno
projektovanje i implentaciju. Zato su za projektovanje sekvencijalnih mrea uopte razvijeni programski sistemi
koji automatizuju ovo projektovanje.
21. 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 (mikroprogramskoj) memoriji raunara.
Osnovni zadatak mikroinstrukcija je izdavanje naloga za izvrenje odreenih podskupova mikrooperacija. To se
postie postavljanjem upravljakih signala na odreene vrednosti. Meutim mikroprogram mora odreivati i
redosled izvravanja (nizanje) mikroinstrukcija. Sekvercnijalno nizanje mikroinstrukcija najpogodnije je
realizovati brojaem mikroinstrukcija (PC). Promene adresa mikroinstrukcija grananjima i skokovima zahteva
mogunost punjenja brojaa mikroinstrukcija adresama odredita grananja odnosno skokova. Prelazak na

19
poetak mikroprograma pribavljene mainske instrukcije zahteava odreivanje novog sadraja brojaa
mikroinstrukcija na osnovu koda operacije te instrukcije, prisutne u registru instrukcija IR.
Struktura mikroprogramski organizovane UJ prikazana je na donjoj 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),
odalkle 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.

22. Formati mikroinstrukcija


Najoptiji format mikroinstrukcija (slika pod a) sadri kod mikrooperacije (MOp), polje upravljakih signala
(US) i polje adrese sledee mikroinstrukcije (ASM). MOp ukazuje na tip mikroinstrukcije. U polju uslova mogu
se navesti vrednosti signala uslova pri kojima dolazi do granja. Kako ne postoji potreba da se svakom
mikroinstrukcijom menja linearni tok mikroprograma, format mikroinstrukcija moe se skratiti sledeim
reenjem. Umesto jednog, uvedimo dva formata mikroinstrukcija: jednim emo samo izdavati naloge za
aktiviranje upravljakih signala, a drugim emo samo menjati linearni tok programa (slika pod b). Ovakvo
skraenje mikroinstrukcija poveava duinu mikroprograma, a time i vreme njegovog izvrenja.

23. Protona organizacija procesora


Protona organizacija procesora je oblik implementacije procesora kojim se preklapa izvrenje vie instrukcija.
Deo hardvera protonog procesora, koji uestvuje u obavljanju jedne od faza instrukcije, zovemo stepen
protonog procesora. Broj stepena protonog procesora odreen je brojem razliitih faza u pribavljanju i

20
izvrenju instrukcija iz skupa instrukcija procesora. Protoni procesor proistekao iz vietaktnog procesora imao
bi 5 stepena: IF, ID, EX, ME i WB.
24. Putevi podataka protono organizovanog procesora

25. Upravljanje protonim procesorom


Kod protonih procesora javljaju se upravljaki signali koji su rasporeeni po stepenima na sledei nain:
U okviru IF stepena
U svakom taktnom ciklusu generie se signal dozvole upisa u PC, nezavisno od pribavljane instrukcije.
Meutim, novi sadraj PC-a bira se izmeu inkrementiranog prethodnog sadraja PC-a i odredita grananja
eventualne instrukcije grananja koja je dospela u ME stepen. To biranje se vri multiplekserom.
U okviru ID stepena
Aktivnosti u ID stepenu obavljaju se nazvisno od instrukcije prisutne u ovom stepenu. Jedini izuzetak je
proirenje polja IF/ID.IR15.0, koje moe biti znakovno ili nulama.
U okviru EX stepena
Aktivnostima u ovom stepenu upravlja se signalima ALUSrc, ALUctr i RegDst. Signalom ALUSrc bira se
drugi operand ALU-a, koji moe biti ID/EX.B ili ID/EX.Imm. Signalima ALUctr definie se operacija koja se
nalae ALU jedinici.
U okviru ME stepena
Aktivnostima u ovom stepenu upravlja se signalima Branch, MemRd i MemWr. Upravljaki signal Branch
ukazuje da se radi o instrukciji grananja. Signalima MemRd i MemWr nalae se itanje iz, odnosno upis u
memoriju podataka.
U okviru WB stepena
Upravljakim signalima MemtoReg se za upis u odredini registar bira podatak ME/WB.LMD ili
ME/WB.ALIrez. Signalom RegWr nalae se upis ovako odreenog podatka u odredini registar.
Upravljake signale generie upravljaka jedinica, locirana u okviru ID stepena protonog procesora. Ovi
upravljaki signali prenose se do stepena, u kojima se oni koriste. Pored ovih upravljakih signala, od jednog do
drugog protonog registra prenose se i druge vrednosti vezane za odgovarajuu instrukciju. To se odnosi na
indekse registara koji mogu biti odredini registri instrukcija, rt i rd. U EX stepenu se preko multipleksera za
instrukciju u ovom stepenu bira indeks rw odredinog registra.
26. Klasifikacija hazarda podataka

21
Posmatramo dve instrukcije Ij i Ik izmeu kojih postoje zavisnosti po podacima preko registra R i, 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 I j. Upisi su obavljeni
obrnutim redosledom. Zavisnost po podacima, koja dovodi do njega naziva se izlazna zavisnost.
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.
27. Izbegavanje hazarda podataka premoavanjem
Vrlo efikasan nain izbegavanja podataka koji se sastoji u dostavljanju izvorinih operanada zavisnim
instrukcijama pre nego to ih instrukcije proizvoai rezultata upiu u odredine registre.
ADD R1, R2, R3
LW R4, 10(R1)
SW 20(R1), R4
U ovom nizu instrukcija postoje zavisnosti po podacima izmeu sledeih parova: ADD i LW i ADD i SW preko
registra R1, kao i LW i SW preko registra R4. Bez preduzimanja posebnih mera, one vode hazardima podataka
tipa itanje nakon upisa.

Izvrenje prethodnog niza


instrukcija bez zastoja.
Strelicama je pokazano odakle
uzeti podatak i gde ga dostaviti
da bi se izbegli hazardi.
ADD proizvodi rezultat u TC3, a upisuje ga u R1 u TC5. LW koristi taj rezultat u svojoj EX fazi, dakle u TC4.
Poetak TC4 je poslednji trenutak kada se LW-u mora dostaviti rezultat instrukcije ADD da bi ona obavila EX
fazu bez zastoja. Kako je u tom trenutku rezultat prisutan na izlazu protonog registra EX/ME, treba uspostaviti
put kojim se zahtevani podatak moe preneti odatle na odgovarajue ulaze ALU-a u EX stepenu. Ova tehnika je
poznata kao premoavanje.
28. Hazardi podataka koji se ne mogu izbei premoavanjem
LW R1, 10(R3)
ADD R6, R1, R2
SUB R4, R5, R1
ORI R7, R1, #32

Izvrenje prthodnih instrukcija


bez zastoja

Izmeu instrukcije LW i ostalih instrukcija postoje zavisnosti po podacima koje, osim sa instrukcijom ORI,
vode hazardu podataka. LW proizvodi rezultat na kraju TC4. Da bi se instrukcija ADD izvravala bez zastoja,
rezultat iz LW morao bi joj biti dostavljen na poetku TC4. Poto to nije mogue (ni premoavanjem ne
moemo vreme vraati unazad) EX faza instrukcije ADD mora se odloiti za TC5, kada joj se premoavanjem
moe dostaviti zahtevani podatak.
22
29. Izbegavanje hazarda podataka planiranjem instrukcija
Hazardi podataka se mogu izbei ako bi smo rastojanje izmeu instrukcija Ij i Ik mogli poveati iznad kritine
vrednosti. To se moe postii premetanjem nekih nezavisnih instrukcija sa svojih polaznih pozicija u pozicije
izmeu ovog para instrukcija. Pri tome se mora voditi rauna da se time ne promeni algoritam koji program
implementira. Ovakav nain izbegavanja hazarda podataka naziva se planiranje instrukcija.
Kako smo ranije zakljuili pri premoavanju opasnost od hazarda postoji samo posle instrukcija Load, i to
samo ako zavisna instrukcija neposredno sledi za njom. Tada planiranjem instrukcija treba iza instrukcije Load
umetnuti jednu nezavisnu instrukciju, ime se opasnost od hazarda otklanja.
Otklanjanje hazarda planiranjem instrukcija ima svoju cenu:
Analizu zavisnosti po podacima izmeu instrukcija u programu i razdvajanje zavisnih instrukcija na
bezbedno rastojanje umetanjem nezavisnih instrukcija izmeu njih, i
poveani broj angaovanih registara.
30. Hazardi upravljanja (grananja)
Javljaju se pri izvravanju instrukcija za upravljanje tokom programa. U tu grupu spadaju instrukcije grananja,
skokova, poziva procedura i povratka iz procedura. Instrukcije grananja najbolje reprezentuju probleme koji se
pri tome javljaju.
Hazardi grananja nastaju kao posledica neblagovremenog odreivanja adrese instrukcije koja e biti izvrena
posle instrukcije grananja. Opasnost od nekorektnog izvrenja programa posle instrukcije grananja naziva se
hazard grananja. 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.
31. Smanjenje cene grananja
Postoji vie naina, a neki od njih su:
1. odreivanje ishoda grananja i odredita grananja u stepenu to bliem stepenu pribavljanja instrukcija,
2. pretpostavka da grananje nee biti obavljeno,
3. zakanjeno grananje,
4. predvianje grananja,
5. pribavljanje instrukcija i sa puta obavljenog i sa puta neobavljenog grananja, itd.

1. 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 uslova. Napomenimo i ovde da se u IF fazi paralelno vri
pribavljanje nove instrukcije i odreivanje adrese sledee instrukcije. Ovakvo reenje moe uvesti
hazard podataka izmeu instrukcije grananja i prethodne instrukcije, iji se rezultat koristi u instrukciji
grananj.
2. Jednostavan pristup koji moe smanjiti zastoje zbog instrukcija grananja sastoji se u tome da smatramo
da se grananje uvek obavlja, ili da se grananje nikada ne obavlja. Imajui u vidu navedene verovatnoe
ishoda grananja, prvi pristup je realniji.
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.
Reenje kada polazimo od toga da se grananje nikada ne obavlja doputa da se posle instrukcije 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
pribavljanje od instrukcije-odredita grananja.
3. Zakanjeno grananje je koncepcija koja obezbeuje da se posle instrukcije grananja, nezavisno od
ishoda grananja, pribavi k instrukcija sa puta neobavljenog grananja, pre nego to se eventualno pree na
instrukciju-odredite grananja. Ovih k instrukcija, sekvencijalnih sledbenika instrukcije grananja, nalaze
se u takozvanim slotovima kanjenja grananja. Odloeni prelazak na odredinu instrukciju treba da
eliminie zastoje u izvravanju instrukcija iza instrukcije grananja.
U slotove kanjenja grananja mogu se umetnuti (planirati) instrukcije uzete:

23
- ispred instrukcije grananja,
- sa puta obavljenog grananja i
- sa puta neobavljenog grananja.
3. Predvianje ishoda grananja moe doprineti smanjenju izgubljenih taktnih ciklusa zbog grananja. Ako
je predvien ishod neobavljanje grananja, posle instrukcije grananja moemo nastaviti sa pribavljanjem i
izvravanjem instrukcija-sekvencijalnih sledbenika instrukcije grananja bez zastoja. Ako je predvien
ishod obavljanje grananja treba to pre doi do adrese odredita grananja. Idealno bi bilo da ve pri
pribavljanju instrukcije znamo da se radi o instrukciji grananja, kao i da adresu odredita grananja
imamo ve u tom taktnom ciklusu. Tada bismo ve u sledeem taktnom ciklusu mogli da pribavimo
instrukciju-sledbenika obavljenog grananja. To se moe postii korienjem bafera odredita grananja.
4. Povremeno gubljenje taktnih ciklusa u sluajevima pogrenog predvianja grananja moe se izbei tako
to se posle instrukcije granja pribavljaju instrukcije i sa puta obavljenog i sa puta neobavljenog
grananja. I u tom sluaju treba koristiti bafer odredita grananja. Stepeni do kojih mogu dopreti
instrukcije pribavljene posle instrukcije grananja do razreenja grananja moraju bitiudvojeni, tako da
mogu prihvatati instrukcije sa oba ova puta. Tek po razreenju grananja odbacuju se instrukcije sa
pogrenog puta i nastavlja samo sa instrukcijama sa ispravnog puta.
41. Proirenje protonog sistema za rukovanje operacijama sa vie ciklusa izvrenja
Sloenije operacije sa celobrojnim operandima, kao to su mnoenje i deljenje, zahtevaju dua vremena
izvrenja i obavljaju se na posebnim hardverskim jedinicama, takozvanim mnoaima i deliteljima.
Pretpostavimo da u protono organizovanom sistemu imamo 4 funkcionalne jedinice:
1. glavnu celobrojnu jedinicu koja obavlja aritmetiko-logike operacije, Load, Store i grananja;
aritmetiko-logike operacije traju po jedan taktni ciklus, a Load i Store po dva,
2. mnoa celih brojeva i brojeva sa pokretnom zapetom (FP), koji je protono organizovan; mnoenje
traje 5 taktnih ciklusa,
3. FP sabira koji obavlja FP sabiranje, oduzimanje i konverzije izmeu celobrojnih i realnih zapisa, koji je
protono organizovan; ove operacije traju 3 taktna ciklusa, i
4. delitelj celobrojnih i FP operanada, koji nije protono organizovan; deljenje traje 10 taktnih ciklusa.
Protono organizovana funkcionalna jedinica moe da, kao i protoni procesor, preklapa izvrenje vie
operacija.

Protone funkcionalne jedinice ralanjene su na stepene, kojih u mnoau ima 5, a u FP sabirau 3. 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 FP integer delitelj). Takoe,
izmeu funkcionalnih jedinica i WB stepena imamo etiri protona registra: ME/WB, M5/WB, A3/WB i
FPID/WB.
Prevoenje instrukcije iz faze dekodiranja u fazu izvrenja zvaemo izdavanje instrukcije. Termin okonanje ili
kompletiranje instrukcije koristiemo da ukaemo da su sve predviene aktivnosti na instrukciji obavljene.
Programirani redosled instrukcija je programom odreen redosled izvravanja instrukcija. Izdavanje
(izvravanje, okonanje) po redosledu instrukcije znai da se instrukcija izdaje (izvrava, okonava) redosledom
koji odstupa od programiranog redosleda.
Latencija operacije ili latencija funkcionalne jedinice je broj taktnih ciklusa u kojima program mora ekati na
korienje rezultata ove operacije u sledeoj instrukciji. Ona je odreena kao broj taktnih ciklusa koji se
24
pojavljuju izmeu ciklusa u kome neka instrukcija proizvodi rezultat i ciklusa u kome druga instrukcija moe
koristiti taj rezultat. Za aritmetiko logike operacije latencija je 0, a za LOAD 1.
Interval zapoinjanja ili interval ponavljanja je broj taktnih ciklusa koji mora protei izmeu izdvajanja dve
operacije istog tipa (odnosno na istoj funkcionalnoj jedinici).

25

Você também pode gostar