You are on page 1of 28

Notacija koriena u knjizi

Nota-
Znaenje Primer Znaenje
cija
Prenos podatka. Duina
prenoenog podatka Preneti sadraj R2 u R1. Duina
odreena je duinom registara je fiksna, tako da prenos
R1 R2

2. Arhitektura skupa instrukcija


odredita. Kada nije podatka kraeg od duine registara
oigledna, duina mora mora ukazati koji se bitovi prenose.
biti navedena.

procesora Polje memorijskih


lokacija u bajtovima
kojima se pristupa. Preneti sadraje memorijskih lokacija
M R1 M[x]
Poetna adresa prenosa M[x], M[x+1], M[x+2], M[x+3] u R1.
navodi se kao indeks u
ovom polju.
Prenos n - to bitnog polja; Preneti 16 bitova poev od memorijske
navodi se kad god duina lokacije x u memorijsku lokaciju y.
Neboja Milenkovi n
prenoenog podatka nije
M[y] 16 M[x]
Duine izvora i odredita moraju biti
oigledna. istovetne.
Elektronski fakultet u Niu Xn Indeks odreuje bit R131 0 Obrisati bit znaka R1.
Indeks odreuje polje Preneti sadraj memorijske lokacije x u
Xm..n R37..0 M[x]
bitova. najnii bajt R3.
Eksponent ukazuje na
Xn broj pojavljivanja bita x u R331..8 024 Obrisati tri via bajta R3.
polju
N. Milenkovi, Arhitektura i organizacija raunara 2011

Notacija koriena u knjizi Tipovi arhitektura procesora


Nota-
Znaenje Primer Znaenje
cija
Preneti sadraj lokacije M[x] u najnii
bajt R3 i obrisati tri via bajta;
Prema mestu privremenog uvanja
R3 024M[x]
Povezuje dva polja
F2F3 64 M[x]
Preneti 64 bita iz memorije poev od
lokacije x; prva 32 bita idu u F2, druga operanada, arhitekture procesora dele
32 bita idu u F3.

*, &
Indirekcija pokazivaa;
P* &x
Dodeliti objektu na koji pokazuje P se na :
dobija adresu promenljive adresu promenljive x.
<< , Logiko pomeranje (levo,
R1 << 5 Pomeriti R1 ulevo 5 bitova.
akumulatorsku arhitekturu,
>> desno).

==,!=,
Relacioni operatori:
jednako, razliito, vee, (R1 == R2) Istinito ako su sadraji R1 i R2 jednaki i
arhitekturu sa registrima opte namene.
>,<,
manje, vee ili jednako, (R3 != R4) sadraji R3 i R4 razliiti.
,
manje ili jednako
Logike bit po bit Logika I operacija izmeu sadraja R1
(,),,
operacije: I, ILI, Iskljuivo (R1(R2R3)) i rezultata logike ILI operacije izmeu
,
ILI i NE. sadraja R2 i R3.

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Akumulatorska arhitektura
Saobraaj akumulatora sa
Akumulatorska arhitektura odlikuje se memorijom
postojanjem u procesoru jednog
registra, nazvanog akumulator (engl. Prvi operand se iz memorije prenosi u
accumulator, skr. ACC), koji uestvuje u akumulator instrukcijom Load
svim operacijama procesora.
procesora LD adr ACC M[adr]
Tipina instrukcija ovakvog procesora i a rezultat operacije se iz akumulatora
njeno dejstvo je alje u memoriju instrukcijom Store
ADD adr : ACC ACC + M[adr] ST adr M[adr] ACC

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

1
Arhitekture sa registrima opte
namene Podtipovi ove arhitekture
Arhitekture sa registrima opte namene
sadre grupu registara procesora koji se Prema mogunostima kombinovanja
mogu koristiti u razliite svrhe: korienja registara i memorije za
uvanje operanada instrukcija,
za privremeno uvanje operanada
operanada, arhitekture
hit kt sa registrima
i ti opte
t namene
za uee u izvravanju operacija, dele se na:
za adresiranje operanada u memoriji, registarsko-registarsku arhitekturu,
za prenos parametara pri pozivu registarsko-memorijsku arhitekturu, i
procedura i vraanju rezultata itd. registarsko + memorijsku arhitekturu.

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Programi za sva etiri tipa arhitektura


Primer 2.1
Akumulator. Reg - mem Reg - reg Reg + mem
arhitektura arhitektura arhitektura arhitektura
Za navedene tipove arhitektura napisati LD B LD R1, B LD R1, B MOV D, B
programe
p g za izraunavanjej vrednosti MUL C MUL R1, C LD R2, C MUL D, C
izraza D=A+BC . ADD A ADD R1, A MUL R1, R2 ADD D, A
ST D ST D, R1 LD R2, A
ADD R1, R2
ST D, R1

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

ADRESNOST PROCESORA Uvoenje programskog brojaa


Umesto da se u svakoj instrukciji navodi
U sluaju binarne operacije (operacije nad adresa sledee instrukcije, koristi se
parom operanada) procesoru se instrukcijom reenje da se adresa sledee instrukcije
moraju dostaviti: dri u posebnom registru, nazvanom
informacija
j o operaciji
p j koju
j treba da izvri,, u programski broja (engl.
(engl program
vidu koda operacije (KOp),
counter, skraeno PC).
oba izvorina operanda ili informacije o
mestima odakle ih moe uzeti, Neki proizvoai raunara koriste termin
informacija o mestu gde treba da poalje Instruction Address Register ili
rezultat (odredini operand), i Instruction Pointer, to je primerenije
adresa sledee instrukcije programa. ulozi tog registra.

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

2
Formati instrukcija Troadresni i dvoadresni format

Troadresni format instrukcija. Dejstvo


troadresne instrukcije pri izvrenju
operacije , sa Op2 i Op3 kao
p
izvorinim operandima i Op1
p kao
odredinim operandom je
Op1 Op2 Op3
Dvoadresni format instrukcija
Op1 Op1 Op2

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Jednoadresni i nulaadresni format REGISTRI PROCESORA

Jednoadresni format instrukcija Raunar pored korisnikih izvrava i


ACC ACC Op sistemske programe. Programe
korisnika raunar izvrava u
U nulaadresnom formatu instrukcijaj
takozvanom korisnikom nainu rada
ne navodi se eksplicitno ni jedan
(engl. user mode), a sistemske
operand.
programe u kernel nainu rada (engl.
kernel mode) ili supervizorskom nainu
rada (engl. supervisor mode).

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Uvek prisutni registri Korisniki vidljivi registri

Svi procesori, nezavisno od arhitekture skupa


instrukcija i adresnosti procesora, imaju Skup registara dostupnih aplikacionom
sledee registre: programeru ine registri na iji sadraj
Programski broja PC, j
on moe direkno uticati instrukcijama
Registar instrukcija (oznaavaemo ga sa IR, koje mu stoje na raspolaganju. Ovi
engl. Instruction Register), registri nazivaju se i korisniki vidljivi
Adresni registar memorije (oznaavaemo ga
sa MAR, engl. Memory Address Register),
registri.
Prihvatni registar memorije (oznaavaemo
ga sa MDR, engl. Memory Data Register).

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

3
Registri opte namene FP registri
Registri opte namene (engl. general FP registri (engl. Floating Point registers) ine
purpose registers) ine najbrojniju grupu grupu registara za rad sa realnim podacima u
registara. formatu sa pokretnom zapetom. Duine su 32
Njihov broj u procesorima kree se od 8 ili 64 bita, jer to odreuje standard za rad sa
do 64
64. ovim podacima,
podacima koji danas prihvataju svi
proizvoai raunara.
Ovi registri grupisani su u polje registara
(engl. register file), sa zajednikim I ovi registri grupiu se u polje FP registara,
ulaznim i izlaznim prikljucima i sa vie ulaznih i izlaznih portova.
pridruenom logikom, takozvanim Broj FP registara u procesorima kree se od
portovima (engl.port). 4 do 32.

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Posebni adresni registri Registar koda uslova


Neke arhitekture predviaju posebne
adresne registre, koji prema svojoj
Posebni registri namenjeni upravljanju
nameni pri adresiranju mogu biti bazni
tokom programa su takoe prisutni u
registri, indeksni registri, segmentni
j
nekim arhitekturama. Najee sretani
registri i drugi.
drugi
registar ovog tipa je registar koda
Segmentni registri adresiraju segmente uslova ili registar uslova (engl.
memorije dodeljene programima, Condition Code Register, skr. CCR). On
podacima, steku itd. (npr. u Intelovoj IA- objedinjuje vei broj indikatora (engl.
32 arhitekturi). flags).

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Indikatori
Registar statusa programa
U sastavu CCR-a najee su prisutni sledei
indikatori:
U nekim arhitekturama navedeni
SF (Sign Flag) - indikator znaka, postavlja se ako je
rezultat negativan, indikatori iz registra uslova ukljueni su
ZF (Zero Flag) - indikator nule, postavlja se ako je u registar poznat kao registar statusa
rezultat nula, programa (engl. Program Status Word,
CF (Carry Flag) - indikator prenosa, postavlja se ako skr PSW)
skr. PSW). Pored ovih indikatora PSW
se javi prenos,
sadri i druge elemente stanja
OF (Overflow Flag) - indikator prekoraenja, postavlja
se ako rezultat prekorai kapacitet formata, procesora koji se iz programa korisnika
PF (Parity Flag) - indikator parnosti, postavlja se ako mogu modifikovati, kao to su bitovi
je rezultat paran, dozvole trapova u FP operacijama,
AF (Auxiliary Carry Flag) - indikator pomonog nain zaokruivanja rezultata u FP
prenosa, postavlja se ako se javi prenos iz
etvorobitne grupe pri sabiranju BCD brojeva, i drugi. operacijama, bit trapa trasiranja i drugi.
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

4
OSNOVNI

Sistemski registri Spolja{nja magistrala FUNKCIONALNI


BLOKOVI
PROCESORA

Sistemski registri uestvuju u upravljanju Ke{ memorija Sprega sa Ke{ memorija


prekidima i izuzecima, prevoenju sistema iz za instrukcije Upravljanje sistemom za podatke
supervizorskog u korisniki nain rada i memorijom
obrnuto, prevoenju virtuelnih u fizike
adrese, upravljanju ke memorijama, Izra~unavanje Load-Store
adresa jedinica
sakupljanju
pj j p podataka o korienju
j resursa
sistema itd.
Pribavljanje Dekodiranje
Za svaku od podranih aktivnosti sa ovog instrukcija instrukcija Polje
spiska, arhitektura predvia jedan ili vie celobroj. Celobrojne
registara operacione
registara. jedinice
Ovim registrima moe se pristupati samo pri Predvi|anje Upravlja~ka
grananja jedinica
kernel ili supervizorskom nainu rada FP
operacione
sistema. Polje
jedinice
FP.
registara
N. Milenkovi, Arhitektura i organizacija raunara 2011

NAINI ADRESIRANJA
Adresiranje operanada
Mesta u raunaru gde se operandi Poto se lokacije glavne memorije raunara
mogu nai su: oznaavaju numerikim oznakama
(adresama), a ista situacija je i sa registrima
sama instrukcija
instrukcija, procesora, onda
d d definisanje
fi i j mesta t nalaenja
l j
neki od registara procesora, i operanada nazivamo adresiranjem
neka lokacija memorije. operanada.
Evo primera na kome se mogu sagledati neki
od problema vezanih za adresiranje
operanada.

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Zahtevi za efikasno adresiranje


Primer segmenta programa
Postavimo sledee zahteve:
z1. za navoenje adresa operanada u
Neka na osnovu datog vektora B treba
formirati vektor A korienjem skalara C na instrukcijama koristiti to kraa adresna polja,
osnovu sledeeg postupka: z2. obezbediti pristup operandima za to
for (j=1; j100; j=j+1) { krae vreme
vreme, i
A(j) = B(j) + C z3. u instrukcijama kojima se pristupa
} operandima B i A, navoenje adresa ovih
Razmotriti mogunosti za adresiranje operanada mora ostati nepromenjeno pri
operanada koji se pojavljuju u ovom promeni komponenata vektora (zabrana
postupku. samomodifikovanja programa u toku
izvrenja).
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

5
Dve vrste adresa operanada
ta su naini adresiranja?
Ovakvi zahtevi i mogua reenja uvode potrebu
za razlikovanjem dve vrste adresa.
Efektivne adrese operanada dobijaju se
odreenim transformacijama (ili
Adrese operanada koje se navode u modifikacijama) primarnih adresa
instrukcijama su primarne adrese operanada
operanada.
(aprim
i ).
) U toku izvrenja programa one se ne
smeju menjati. Pod nainima adresiranja (eng.
addressing modes) podrazumevamo
Adrese operanada na osnovu kojih se
direktno pristupa operandima su efektivne
naine za navoenje primarnih adresa
adrese operanada (aef). U toku izvrenja
operanada u instrukcijama i
programa one se mogu menjati. transformacije ovih adresa u efektivne
adrese operanada.
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Neposredno adresiranje
Neposredno adresiranje

Kada se operand nalazi u sastavu same


instrukcije imamo neposredno
adresiranje (eng.
(eng immediate U ovom sluaju
j pprimarna i efektivna adresa
addressing). operanda odreene su sadrajem
programskog brojaa PC.
Pri pribavljanju instrukcije pribavlja se i
aprim = aef = PC
operand, i on je raspoloiv za obradu
Oznaavanje znakom # napisanim ispred
bez dodatnih aktivnosti.
vrednosti operanda.
Primer : #Konst ili #5.
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Registarsko adresiranje Registarsko adresiranje


Registarsko adresiranje (engl. register
addressing) imamo kada je operand
prisutan u nekom registru Rj procesora.
I primarna i efektivna adresa operanda
je adresa registra Rj
aprim = aef = Rj
Za adresiranje operanada u registrima Registarsko adresiranje oznaavaemo tako
potrebno je od 3 do 6 adresnih bitova. to u adresnom polju operanda navodimo
samo oznaku Rj registra koji sadri operand.
Primer : R4.
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

6
Registarsko indirektno adresiranje
Registarsko indirektno adresiranje

Registarsko indirektno adresiranje


(engl. register indirect addressing)
imamo kada je operand u memoriji
adresiran sadrajem nekog registra
opte namene Rj.
Za ovaj nain adresiranja neki proizvoai
U adresnom polju operanda u instrukciji raunara koriste termin registarsko odloeno
navodimo registar Rj. adresiranje (engl. register deferred).
Oznaavanje parom malih zagrada izmeu
aprim = Rj, aef = (Rj) kojih navodimo registar Rj.
Primer : (R7).
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Direktno adresiranje Direktno


adresiranje
Direktno adresiranje (engl. direct addressing)
imamo kada je operand u memoriji adresiran
punom adresom adr navedenom u
odgovarajuem adresnom polju instrukcije za
taj operand.
Primarna i efektivna adresa operanda su
istovetne. Za ovaj nain adresiranja neki proizvoai
aprim = aef = adr raunara koriste termin apsolutno adresiranje
Direktna adresa mora imati dovoljnu duinu (engl. absolute addressing).
da omogui adresiranje lokacija unutar celog Oznaavanje navoenjem direktne adrese
adresnog prostora memorije ili nekog izmeu para malih zagrada.
njegovog dela.
Primer: (1200).
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Bazno adresiranje Bazno adresiranje


Pomeraj predstavlja adresu lokacije
Bazno adresiranje (engl. base relativnu u odnosu na sadraj baznog
addressing) imamo kada je operand u registra.
memoriji adresiran zbirom sadraja
baznog registra BR i pomeraja (engl. Duina r pomeraja odreuje veliinu
di l
displacement) t) navedenog
d u podruja adresa L = 2r, unutar kojeg se
odgovarajuem adresnom polju lokacijama moe pristupati sa
instrukcije za taj operand. nepromenjenim sadrajem baznog
Kao bazni registar najee se koristi registra.
neki od registara opte namene.

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

7
Bazno adresiranje
Bazno adresiranje 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.
Za
Z ovajj nain
i adresiranja
d i j neki ki proizvoai
i i
Primarna adresa sadri dve komponente: raunara koriste termin pomerajno
adresu baznog registra BR i pomeraj. adresiranje (engl. displacement addressing).
Efektivna adresa operanda je zbir sadraja Oznaavanje navoenjem pomeraja ispred
baznog registra BR i pomeraja. oznake baznog registra izmeu para malih
zagrada.
aprim = BR, pomeraj ; Primer : 25(R4).
aef = (BR) + pomeraj
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Indeksno adresiranje
Indeksno adresiranje
Indeksno adresiranje (engl. index addressing)
imamo kada je operand u memoriji adresiran
zbirom sadraja registara Rj i Rk.
Pri tome registar Rj sadri poetnu adresu
podruja u memoriji dodeljenog nekoj
strukturi podataka, a Rk je indeksni registar aprim = Rj, Rk; aef = (Rj) + (Rk)
koji sadri indeks nekog elementa u toj
strukturi. Oznaavanje parom malih zagrada izmeu
kojih navodimo registre Rj i Rk povezane
U adresnom polju operanda u instrukciji
znakom +.
navodimo oba registra, Rj i Rk.
Primer : (R7+R4).

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Memorijsko indirektno adresiranje Memorijsko indirektno adresiranje

Memorijsko indirektno adresiranje (engl.


memory indirect addressing) imamo
kada registar Rj, naveden u
odgovarajuem adresnom polju
instrukcije za taj operand, adresira
memorijsku lokaciju, koja svojim
sadrajem adresira operand u memoriji.
Memorijska lokacija M[Rj] je pokaziva Oznaavanje znakom @ ispred para malih
na operand u memoriji. zagrada izmeu kojih je navedena oznaka
aprim = Rj ; aef = (M[Rj]) registra ili memorijska adresa.
Primer : @(R8) ili @(1200).
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

8
Autoinkrementno adresiranje
Autoinkrementno adresiranje

Autoinkrementno adresiranje (engl.


autoincrement addressing) izvedeno je
iz indirektnog registarskog adresiranja
dodavanjem inkrementiranja korienog
registra Rj posle (ili pre) obraanja
memoriji.
Registar Rj se moe inkrementirati
vrednou d, odreenom duinom (npr. aprim = Rj ; aef = (Rj), Rj Rj+d
u bajtovima) elemenata kojima se Oznaavanje navoenjem oznake korienog
pristupa. registra izmeu malih zagrada, dodavanjem
sufiksa +. Primer : (R3)+.
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Autodekrementno adresiranje
PC relativno adresiranje
Autodekrementno adresiranje (engl.
autodecrement addressing) slino je U instrukcijama grananja i skokova esto se
autoinkrementnom adresiranju, od koga se za odreivanje odredita grananja i skokova
razlikuje u dva detalja: korieni registar Rj se koristi adresiranje relativno u odnosu na
dekrementira, i to pre (ili posle) obraanja programski broja ili PC relativno adresiranje
memoriji.
memoriji ((engl.
g PC relative addressing).g)
aprim = Rj ; Rj Rjd, aef = (Rj) Pri ovom nainu adresiranja, u adresnom
delu instrukcije navodi se otklon (engl offset)
Oznaavanje navoenjem oznake korienog
ili pomeraj, koji predstavlja razliku izmeu
registra izmeu malih zagrada, dodajui
adrese odredita grananja (skoka) i trenutnog
prefiks .
sadraja programskog brojaa PC.
Primer : (R3).

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

PC relativno adresiranje PC relativno adresiranje


Pri tome, trenutni sadraj programskog
brojaa PC moe biti adresa tekue
instrukcije grananja ili adresa sledee
sekvencijalne instrukcije u programu. Otklon
moe imati pozitivan ili negativan znak.
PC relativnim adresiranjem obezbeuje se
upravljanje izvrenjem programa nezavisno
od dodele memorije programu.
aprim = otklon ; aef = (PC) + otklon Ovaj nain adresiranja odredita grananja
ili aef = (PC+L) + otklon. odreen je kodom operacije instrukcije, i
U drugom obliku efektivne adrese L je duina podrazumeva se u ovakvim instrukcijama.
instrukcije grananja (skoka). Kada se upotrebljeni nain adresiranja podrazumeva,
kaemo da imamo implicitno adresiranje.

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

9
Nain Primer
adresiranja instrukcije
Znaenje Kada se koristi
Primer 2.2
Kada su operandi
Registarsko Add R4, R3 R4 R4 + R3
u registrima.
Neposredno Add R4, #3 R4 R4 + 3 Za konstante.
Dvoadresni raunar ima 32 registra opte
Bazno ili
Add R4,100(R1)
R4 Za pristupanje lokalnim namene duina 32 bita. Adresni prostor
pomerajno R4 + M[100+R1] promenljivim.
Registarsko Pristupanje korienjem
memorije je 232 bajta. Instrukcije punjenja i
indirektno
odloeno
ili Add R4, (R1) R4 R4 + M[R1] pokazivaa ili izraunate
adrese.
pamenja, uz upotrebu baznog adresiranja,
Add R3
Pri adresiranju polja: R1- prikazane su formatom 1 na slici 2.5 .
Indeksno poetak polja,
polja R2-indeksni
R2 indeksni
R3, (R1+R2) R3 + M[R1+R2]
iznos. U
Uporediti
diti kkorienje
i j b baznog adresiranja
d i j i
Direktno ili
Add R1, (1200)
R1 Za pristupanje statikim direktnog adresiranja pod sledeim uslovima.
apsolutno R1 + M[1200] podacima.
Memorijsko Ako je (R3) adresa
R1
indirektno ili Add R1, @(R3) pokazivaa P, ovo daje
R1 + M[M[R3]]
odloeno operand adresiran sa P.
Za prolaz kroz polje 6 5 5 16 6 5 5 32
Auto- R1 R1+ M[R2]
Add R1, (R2)+ elemenata unutar petlje; d rd
inkrementno R2 R2 + d
je duina elemenata polja.
Op rd rs pom Op adr
Auto- R2 R2 d Format 1 Format 2
Add R1, (R2) Kao autoinkrementno.
dekrementno R1 R1+ M[R2]

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Reenje 2.2
Primer 2.2
LUI R5, # Poc.v R5 Poc.v 016;
U okviru nekog programa procesor se n puta ORI R5,# Poc.n R5 R5 016Poc.n
obraa razliitim, proizvoljno razmetenim
U ovim instrukcijama Poc.v i Poc.n su
memorijskim lokacijama unutar podruja
memorije
ij dduine
i 64 KBKB. D
Definisati
fi i ti fformatt
via i nia polure adrese Poc.
Poc
instrukcija punjenja i pamenja za sluaj Iza ovoga, svako obraanje procesora
direktnog adresiranja operanada u memoriji. memoriji vri se instrukcijama
Oceniti koji je nain adresiranja, bazno ili
LW Ri, pom(R5) i
direktno adresiranje, efikasniji sa stanovita
memorijskog prostora i vremena. SW Ri, pom(R5), i5.

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Reenje 2.2
Reenje 2.2
U sluaju direktnog adresiranja koristimo
instrukcije Bazno adresiranje je efikasnije u pogledu
memorijskog prostora za
LW Ri, (adr) sa dejstvom RiM[adr] i
21n+64 32n, 11n 64, n 6.
SW Ri, (adr) sa dejstvom M[adr] 32 Ri Bolja efikasnost baznog u odnosu na direktno
Broj bitova potrebnih za bazno adresiranje je adresiranje, iskazana procentima je
K1 = 232+n(5+16) = 21n+64, EM =[(K2 K1) / K1]100 =
a za direktno adresiranje [(11n64) / (21n+64)]100
K2 = n32 = 32n bitova.
n 10 100 1000 10000
(Ovde nije uraunato neiskorieno polje od 5 bitova u
formatu 2.) EM 16,8% 47,9% 51,9% 52,3%

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

10
Kodiranje skupa instrukcija Formati instrukcija
Izabrani naini za binarno kodiranje
Procesor moe direktno izvravati samo elemenata instrukcija definiu formate
instrukcija.
binarno kodirane instrukcije.
Formati instrukcija definiu duine instrukcija i
Naprimer, u MIPS32 arhitekturi, 32-bitni podelu instrukcija na odgovarajua polja, koja
binarni broj sadre kodove operacija i adrese operanada
ili same operande.
operande
001100 00101 00011 0000111100001111
Po jedan format instrukcija uvodi se za
predstavlja instrukciju podskup instrukcija sa elementima koji se
ANDI R5, R3, #0x0F0F , mogu predstaviti na isti nain.
Broj razliitih formata instrukcija kree se od 3
ije je dejstvo (za RISC procesore sa jednostavnom
R5 R3 AND 0x00000F0F . arhitekturom) preko 6 (u IBM S/370) do 7 (u
Intelovoj 80X86 arhitekturi).
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Primer 2.3
Kod operacije
Instrukcije nekog raunara su duine 18
Kod operacije (KOp ili Op) mora imati bitova, a adresna polja su duine 7
dovoljno razliitih kodnih slogova da bitova. Ustanoviti da li je mogue
jednoznano identifikuje svaku instrukciju iz formatima ovih duina kodirati 15
skupa
k instrukcija
i t k ij procesora. dvoadresnih instrukcija
instrukcija, 125
Polje koda operacije moe biti iste duine za jednoadresnih instrukcija i 28
sve instrukcije, ili moe imati razliite duine nulaadresnih instrukcija.
za odreene podskupove instrukcija. Skicirati karakteristine detalje naina
kodiranja instrukcija ovog raunara i
postupka njihovog dekodiranja.

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

REDOSLED BAJTOVA U
PODACIMA REDOSLED BAJTOVA U PODACIMA

U raunarima razliitih proizvoaa sreu se


dva naina za ureivanje bajtova unutar Pri adresiranju glave (engl. Big Endian
podataka sa duinama veim od bajta. byte order) adresa rei xxxx002 je i
Pri adresiranju repa (engl.
(engl Little Endian j najvee
adresa bajta j teine u rei
byte order) adresa rei xxxx002 je i (glava rei). Ostali bajtovi sa
adresa bajta najmanje teine u rei (rep opadajuim teinama imaju rastue
rei). Ostali bajtovi sa rastuim adrese (xxxx012 , xxxx102 i
teinama imaju rastue adrese xxxx112 ).
(xxxx012 , xxxx102 i xxxx112 ).

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

11
Poravnati pristupi memoriji

Pristup podatku u memoriji sa adresom a,


duine l=2k bajtova, je poravnati pristup
memoriji (engl. aligned data access) ako je
adresa a deljiva sa l, odnosno ako je
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.

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Poravnati i neporavnati pristupi Tipovi podataka podrani


memoriji arhitekturom

Arhitekturom skupa instrukcija definiu se tipovi


podataka koje procesor prepoznaje i sa njima
rukuje na odreeni nain.
Najee su to:
logiki tip podataka,
najjednostavniji tipovi celobrojnih podataka, i
standardni tipovi realnih podataka.
Uz njih, neke arhitekture uvode i niske
znakova kao standardni tip podataka.

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Celobrojni podaci Realni podaci


Celobrojni podaci razlikuju se prema duini i
prema tome da li su sa znakom to jest Realni podaci se u raunarima predstavljaju u
oznaeni podaci (engl. signed data) ili bez obliku sa pokretnom zapetom. Ovaj tip
znaka to jest neoznaeni podaci (engl. podataka je standardizovan, i sa njim emo
unsigned data). se detaljno upoznati u poglavlju 5 knjige.
Prema duini podaci mogu biti tipa bajt (8 Sve arhitekture imaju kao standardni tip
bitova), polure (16b tj. 2B), re (4B) i podatke sa pokretnom zapetom sa
dvostruka re (8B). jednostrukom i dvostrukom preciznou.
Oznaeni podaci se obino predstavljaju u
Za rad sa podacima ovih tipova u skupu
komplementu dvojke.
instrukcija procesora postoji poseban
Neoznaeni podaci najee se koriste kao
podskup instrukcija.
adresne konstante.

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

12
Niske znakova SKUP INSTRUKCIJA
PROCESORA
Niske znakova promenljivih duina do Skup instrukcija procesora ukljuuje sve
odreene gornje granice takoe se instrukcije koje je procesor u stanju da
pp
sreu kao tip podataka koje
j arhitektura prepozna i izvri.
izvri On se moe sastojati
moe podrati. od svega nekoliko jednostavnih
U tom sluaju postoje instrukcije za instrukcija do vie stotina instrukcija,
prenos niski znakova, poreenje niski, meu kojima ima i vrlo sloenih
traenje niski itd. instrukcija.

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Kompletnost skupa instrukcija


Zahtevane osobine skupa instrukcija Kompletan skup instrukcija mora ukljuivati
instrukcije kojima se moe obaviti svaka
Zahteva se da skup instrukcija bude: aktivnost koja se moe iskazati nekim
formalnim postupkom.
kompletan, On dakle mora imati instrukcije kojima se:
efikasan,
efikasan izvravaju
i j aritmetike
it tik i llogike
ik operacije,
ij
regularan, ime se vri transformacija podataka ako je
ona postupkom obuhvaena,
kompatibilan, i prenose podaci, i
prilagoen savremenoj implementaciji. upravlja aktivnostima obuhvaenim
postupkom.

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Efikasnost skupa instrukcija Regularnost skupa instrukcija


Skup instrukcija je efikasan ako se
najee sretane funkcije mogu Skup instrukcija je regularan ako ima
implementirati kratkim nizovima instrukcije odreene vrste za rad sa
j (p
instrukcija (prostorna efikasnost),
), i ako p
svim tipovima p
podataka,, ako sadri
se te funkcije obavljaju za kratko vreme standardni skup uslova u instrukcijama
(vremenska efikasnost). uslovnog grananja i slino. Na primer,
Skup instrukcija esto mora biti treba da ima instrukcije Load i Store za
kompatibilan sa nekim ranije prenos podataka tipa bajt, polure, re
definisanim skupom instrukcija. itd.

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

13
Prilagoenost implementacionim Pregled instrukcija po grupama
tehnologijama Grupa aritmetikih instrukcija sadri instrukcije
Skup instrukcija mora biti prilagoen sabiranja,
zahtevima savremenih implementacionih oduzimanja,
tehnologija. mnoenja,
Jedna od njih je protonost u radu procesora, deljenja,
sa zahtevima to vee ujednaenosti obima poreenja,
aktivnosti u instrukcijama, mogunou inkrementiranja/dekrementiranja,
preklapanja izvrenja operacija, mogunou
preureenja instrukcija u programima i komplementiranja itd.
drugim zahtevima. celobrojnih oznaenih i neoznaenih podataka.

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Primeri aritmetikih instrukcija

ADD Ri,Rj,Rk RiRj+Rk ,


Pregled instrukcija po grupama
SUB Ri,Rj,Rk RiRj-Rk ,
Grupa logikih instrukcija sadri
MUL Ri,Rj,Rk RiRjRk , instrukcije za obavljanje logikih
DIV Ri,Rj,Rk
j RiRj/Rk
j , p j I,, ILI,, NE,, Iskljuivo
operacija j _ILI itd.
COMP Ri,Rj Razlika Ri-Rj utie na neoznaenih celobrojnih podataka.
stanja indikatora Z i S, Grupa instrukcija pomeranja sadri
INC Ri RiRi+d , instrukcije za logiko pomeranje ulevo i
NEG Ri Ridvoini komplement(Ri), udesno bez i sa krunim prenosom i
aritmetiko pomeranje udesno.

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Primeri logikih instrukcija Primeri instrukcija pomeranja


Neka su Rj i Rk osmobitni registri sa sadrajima
(Rj)=01001110 i
SHL Ri,Rj,bp Ri Rj bp
(Rk)=11010101 Primer SHL Ri,Rj,5
AND Ri,Rj,Rk RiRj Rk , (Ri)=01000100 (Rj)=1010 1111 0101 0011
OR Ri,Rj,Rk RiRj Rk , (Ri)
(Ri)=11011111
11011111 (Ri)= 1110 1010 0110 0000,
(Ri)
XOR Ri,Rj,Rk RiRj Rk , (Ri)=10011011 SHR Ri,Rj,bp Ri Rj p
NOT Ri Ri invertovan_svaki_bit(Ri) Primer SHR Ri,Rj,3
10011110
pre instrukcije (Ri)= (Rj)=1010 1111 0101 0011
posle instrukcije NOT Ri (Ri)= 01100001 (Ri)= 0001 0101 1110 1010,

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

14
Primeri instrukcija pomeranja Instrukcije za prenos podataka
Grupa instrukcija za prenos podataka sadri
SHRA Ri,Rj,bp RiRj bp instrukcije Move, Load, Store, Push, Pop, In,
Out i druge.
Primer SHRA Ri,Rj,3
U novije vreme ova grupa instrukcija
(Rj)=1010 1111 0101 0011 obogaena je instrukcijama uslovnog prenosa
(engl. conditional move). One sadre uslov
(Ri)= 1111 0101 1110 1010, koji mora biti ispunjen da bi se prenos
ROL Ri,Rj,bp RiRj ! bp podatka obavio.
Naprimer, instrukcija MOVZ u MIPS
Primer ROL Ri,Rj,5 arhitekturi u obliku
(Rj)=1010 1111 0101 0011 MOVZ Ra,Rb,Rc ima dejstvo
(Ri)= 1110 1010 0111 0101, if Ra==0 then Rc Rb.

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Primeri instrukcija za prenos Druge grupe instrukcija


podataka
Grupa sistemskih instrukcija obuhvata
PUSH : POP: instrukcije za poziv usluga operativnog
sistema, zaustavljanje programa u prekidnoj
SP SP
SP-1,
1, DReg S[SP], taki upravljanje ke memorijom i virtuelnom
taki,
memorijom, povratak iz rukovaoca izuzetaka
S[SP] DReg. SP SP+1. itd.
Grupa instrukcija za rad sa dekadnim
podacima obuhvata instrukcije za korekciju
operanada pri dekadnom sabiranju,
mnoenju i deljenju.

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Grupe instrukcija prema operacijama koje se u njima javljaju


Instrukcije za upravljanje tokom
Tip operatora Primeri
Aritmetiki i
programa
Celobrojne aritmetike i logike operacije
logiki
Prenos
podataka
Punjenja, pamenja, instrukcije prenosa Grupa instrukcija za upravljanje tokom
Upravljanje Grananja, skokovi, pozivi i vraanja iz procedura, trapovi programa sadri instrukcije bezuslovnog i
Pozivi operativnog sistema, instrukcije za upravljanje
uslovnog grananja, skokova, poziva
Sistemski
virtuelnom i ke memorijom procedura (potprograma) i povratka iz
Pokretna Operacije sa pokretnom zapetom: sabrati, pomnoiti, procedura
d ((potprograma).
t )
zapeta konverzija celobrojnog pod. u pokretnu zapetu i obrnuto Tabela 2.10 sadri prikaz ovih instrukcija za
Dekadne
Dekadno sabiranje i mnoenje, konverzija iz dekadnog tipian RISC procesor.
oblika u nisku znakova i obrnuto
Niske znakova Prenos niske, poreenje niski, traenje niski
U ovim instrukcijama (osim JR i JALR) za
odredite grananja odnosno skoka koristi se
Operacije sa pikselima, operacije kompresije i
Grafiki
dekompresije
adresiranje relativno u odnosu na programski
Operacije na grupama pakovanih celobrojnih i FP
broja. Otklon je oznaeni ceo broj.
Multimedijalni
podataka

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

15
Instrukcije za upravljanje tokom programa na tipinom RISC procesoru i
njihova dejstva
Primer
Pozivanje procedura
Naziv instrukcije Znaenje
instrukcije

Jump (skok) J ime


PC PC + 4 + ime ; Pri pozivu i izvrenju procedure treba obaviti
-2p-1 ime < 2p-1 sledee aktivnosti:
Jump register (skok
odreen registrom)
JR R3 PC R3 1. Smestiti parametre na mesto gde im
if (R4==0) PC PC + 4 + ime procedura moe pristupiti,
Branch if equal zero BEQZ R4,
(grananje ako je nula) ime else PC PC + 4 ; 2. Preneti upravljanje proceduri,
-2q-1 ime < 2q-1
3 Zatraiti memorijske resurse potrebne
3.
R31 PC + 4,
Jump and link (skoi i
JAL ime
proceduri,
povei) PC PC + 4 + ime ;
-2p-1 ime < 2p-1 4. Izvriti naloeni zadatak,
Jump and link register
(skoi i povei preko JALR R2
R31 PC + 4, 5. Smestiti rezultate procedure na mesto gde
registra) PC R2 im pozivajui program moe pristupiti,
if (R4==0) R31 PC + 4, 6. Vratiti upravljanje na polaznu taku, poto
Branch if equal zero and link
(grananje i povezivanje ako
BEQZAL R4, PC PC + 4 + ime procedura moe biti pozivana sa razliitih
ime
je nula) else PC PC + 4 ; taaka u programu.
-2q-1 ime < 2q-1
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Efikasan prenos parametara i Instrukcije za pozivanje procedura


rezultata

U MIPS arhitekturi za prenos parametara Za poziv procedura na raspolaganju su


(argumenata) i vraanje rezultata, kao i za instrukcije skoka na proceduru, JAL i
uvanje adrese povratka u pozivajui
program koriste se registri procesora
program, procesora, i to: JALR, i uslovnog grananja na proceduru
$a0-$a3 (R4-R7) za prenos parametara u BEQZAL.
proceduru, U ovim insrukcijama adresa povratka iz
$v0-$v1 (R2-R3) za vraanje rezultata u procedure pamti se u registru
pozivajui program,
odreenom arhitekturom (to je ovde
$ra (R31) za pamenje adrese povratka u
pozivajui program.
registar R31).

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Pozivanje procedura sa Pozivanje procedura sa ugnjedenjem


ugnjedenjem

U sluaju ugnjedenja nove procedure, na


primer PROCj, u izvravanu proceduru, na
primer PROCi, potrebno je najpre zapamtiti
sadraj registra R31 (adresu povratka iz
PROCi) recimo u steku, pa tek onda pozvati
PROCj.
Povratak iz izvravane procedure u pozivajui
program vri se instrukcijom JR R31.
Potpuniji prikaz ugnjedenja procedure u
proceduru bio bi:

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

16
Instrukcije uslovnog grananja
Reenje sa implicitnim Registrom
Instrukcijama uslovnog grananja proverava koda uslova (1)
se ispunjenje zadatih uslova na osnovu
odreenih relacija, i ako su uslovi ispunjeni U ovom reenju aktivnosti g1. i g2. obavljaju
grananje se obavlja, inae ono izostaje. se odvojenim instrukcijama.
esto je pogodno ove aktivnosti razdvojiti na:
g1. proveru zadovoljenja odreene relacije i Primer:
upis
i iishoda
h d tte provere na predvienom
d i ADD R1R1, R2
R2, R3 / Izvrenjem ove instrukcije utie se na
mestu, stanje indikatora u Registru koda uslova CCR (Z, S, C, O) /
g2. ispitivanje ishoda prethodno obavljene
provere i grananje ako je on pozitivan.
Sreu se tri reenja, prikazana na sledeim BEQZ ime / if (Z==1) then PC PC+4+ime
slajdovima. else PC PC+4 /

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Reenje sa registrom uslova (2) Poreenje i grananje (3)


I u ovom reenju aktivnosti g1. i g2. obavljaju se U ovom reenju aktivnosti g1. i g2.
odvojenim instrukcijama. Aktivnost g1. obavljaju za to
namenjene posebne instrukcije. Ishod provere obavljaju se jednom instrukcijom, tako
upisuju u neki od registara opte namene, koji je da i ovde nema ogranienja navedenih
eksplicitno adresiran. Primer:
SLT Rk,Ri,Rj / opti oblik ove instrukcije je
za prvo reenje.
Srel Rk,Ri,Rj sa dejstvom Primer:
Pi
if (Ri rel Rj ) then Rk 1else Rk 0;
BEQ Ri, Rj, ime / if (Ri == Rj) then
rel{EQ, NE, LT, LE, GT, GE } /
PC PC+4+ime
BNEZ Rk, ime / if (Rk != 0) then PC PC+4+ime else PC PC+4 /
else PC PC+4 /

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Zakljuci izvedeni iz ovih istraivanja doveli su


CISC I RISC PROCESORI do koncepcije RISC arhitekture, ije su odlike
sledee:
Da bismo razumeli nain razmiljanja
zagovornika RISC arhitektura, ponimo sa mali broj jednostavnih instrukcija,
kratkim pregledom karakteristika izvrenja
naredbi. Aspekti koji nas interesuju su: sve operacije obavljaju se nad operandima u
registrima; obraanje memoriji samo sa
Obavljane operacije: ovo odreuje funkcije instrukcijama Load i Store,
koje treba da obavlja CPU i njegove
interakcije sa memorijom, mali broj formata
f instrukcija sa fiksnim
f
poloajem polja u formatu,
Korieni operandi: tipovi operanada i
uestanost njihovog korienja odreuje mali broj jednostavnih naina adresiranja,
organizaciju memorije za njihovo uvanje i pogodnosti za protonu organizaciju
naine adresiranja za pristupanje njima, procesora, tako da se u idealnom sluaju
Ureivanje izvrenja programa: ovo odreuje instrukcije mogu obavljati tempom od jedne
organizaciju upravljanja i protonog izvrenja. instrukcije po periodi takta,
upravljaka jedinica realizovana hardverski.
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

17
Prednosti i nedostaci Najvanije karakteristike CISC
Iz ovih osobina proistiu i druge prednosti: procesora su:
kratak rok projektovanja i testiranja
projekta, veliki broj instrukcija, od kojih su neke i vrlo
mogunost optimizacije projekta, i drugi. sloene,
Ova koncepcija ima i nedostatke: memorijski
j operandi
p mogu
g direktno
uestvovati u operacijama,
manja gustina koda (dui programi), to
veliki broj formata instrukcija sa promenljivim
zahteva veu memoriju,
elementima,
zahteva bru memoriju za uvanje
veliki broj naina adresiranja,
programa,
upravljaka jedinica realizovana
potreban vei broj registara u mikroprogramski.
procesoru.
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

SISTEM PREKIDA RAUNARA


Mogui izvori prekida
Termin prekid (engl. interrupt) ili 1. zahtevi od U-I ureaja,
izuzetak (engl. exception) koristi se u 2. pozivanje usluga operativnog sistema
irokom smislu za bilo koji redak ili iz programa korisnika,
g
neoekivani dogaaj j kojij uzrokuje
j da 3. trasiranje
j izvrenja
j instrukcija,
j ,
CP sa izvrenja tekueg programa 4. prekidne take (prekidi zahtevani od
pree na drugi program koji opsluuje programera),
prekid. 5. prekoraenje i potkoraenje u
celobrojnoj aritmetici,
Prekidi mogu biti generisani od razliitih
6. anomalije u aritmetici sa pokretnom
izvora unutar ili van CP-a. zapetom,
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Mogui izvori prekida Preciziranje termina

7. greka stranice (odsustvo stranice u Termin prekid najee se koristi za


glavnoj memoriji), asinhrone dogaaje koji nastaju van CP-a.
8. neporavnati pristup memorijij ((ako Takvi dogaaji su navedeni pod brojevima 1 i
takav nije dopustiv), 12 u prethodnom
th d spisku.
i k
9. povreda zatite memorije, Termin izuzetak najee se koristi za
sinhrone dogaaje koji nastaju unutar CP-a,
10. korienje nedefinisane instrukcije, kada on ustanovi ispunjenje jednog ili vie
11. greke u radu hardvera, unapred definisanih uslova za vreme
12. nestanak napona napajanja. izvrenja neke instrukcije.

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

18
Odgovor procesora na prekide i Maskirljivi i nemaskirljivi prekidi
izuzetke
CP se o prekidima obavetava preko
izvesnog broja ulaznih prikljuaka.
Procesor odgovara na prekide i izuzetke u Prekidi se dele na maskirljive prekide (one
sutini na isti nain. koji se mogu selektivno privremeno zabraniti)
Po signaliziranju i prihvatanju prekida ili i nemaskirljive prekide (koji se ne mogu
izuzetka procesor naputa izvrenje tekueg zabraniti
b iti maskiranjem).
ki j ) Ul Ulaznii prikljuci
iklj i
programa ili zadatka i prelazi na program procesora za podnoenje zahteva za
rukovaoca prekida (engl. interrupt handler maskirljive i nemaskirljive prekide su
odvojeni.
procedure). Po zavretku opsluivanja
prekida ili izuzetka nastavlja se izvrenje Kod sistema prekida sa prioritetima, izvor
zahteva za prekid dostavlja svoj prioritet na
prekinutog programa. odgovarajue ulazne prikljuke procesora.

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Upuivanje zahteva za prekid


procesoru
Kada procesor prihvati
Izuzeci unutar CP-a
zahtev za prekid, on to
signalizira ureajima
koji su zahtevali prekid Situacija sa izuzetnim dogaajima koji
preko posebnog nastaju unutar CP-a je drukija.
Zahtevi izlaznog prikljuka
maskirljivih
prekida
potvrde prekida. Procesor ima informacijej o tome ta se
Centralni
Zahtevi Tada se izvor dogodilo pri njegovom radu (ova
procesor prihvaenog prekida
nemaskirljivih
prekida mora identifikovati, da informacija belei se u nekom od
Potvrda prihvatanja bi procesor mogao da njegovih sistemskih registara), tako da
zahteva za prekid pree na izvrenje
odgovarajueg tu informaciju moe direktno iskoristiti
programa koji opsluuje za prelazak na program koji opsluuje
prihvaeni prekid.
nastali izuzetak.

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Pregled karakteristika izuzetaka Aktivnosti procesora po prihvatanju


Sinhroni-
Zahtevan od Maskirljiv- Unutar- Sa
zahteva za prekid
Tip izuzetka korisnika- nemaskirljiv izmeu zavretkom-
asinhroni
prinudni od korisnika instrukcija nastavkom
Zahtevi od U-I ureaja asinhroni prinudni nemaskirljiv izmeu nastavkom
1. CP alje potvrdu o prihvatanju zahteva za
Pozivanje usluga operativnog sinhroni od korisnika nemaskirljiv izmeu nastavkom
sistema iz programa korisnika prekid i identifikuje izvor prekida, a
Trasiranje izvrenja instrukcija sinhroni od korisnika maskirljiv izmeu nastavkom
Prekidne take sinhroni od korisnika maskirljiv izmeu nastavkom
identifikator izvora prekida transformie u
Prekoraenje i podkoraenje
j j aritmetici
u celobrojnoj
sinhroni prinudni maskirljiv unutar nastavkom adresu poetka prekidnog programa.
Anomalije u aritmetici
pokretnom zapetom
sa sinhroni prinudni maskirljiv unutar nastavkom
2. CP zabranjuje prihvatanje novih prekida.
Greka stranice sinhroni prinudni nemaskirljiv unutar nastavkom Sadraje registara PC, PSW i eventualno
Neporavnati pristup memoriji sinhroni prinudni maskirljiv unutar nastavkom
Povreda zatite memorije sinhroni prinudni nemaskirljiv unutar nastavkom
drugih sistemskih registara koji odreuju
Korienje nedefinisane
instrukcije
sinhroni prinudni nemaskirljiv unutar zavretkom stanje prekinutog programa pamti u steku ili
Greke u radu hardvera asinhroni prinudni nemaskirljiv unutar zavretkom za to predvienim registrima.
Nestanak napona napajanja asinhroni prinudni nemaskirljiv unutar zavretkom

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

19
Aktivnosti procesora po prihvatanju Aktivnosti procesora po prihvatanju
zahteva za prekid zahteva za prekid
3. PC, PSW i eventualno drugi sistemski 5. Izvrava se telo prekidnog programa,
registri pune se podacima koji odreuju odnosno aktivnosti zbog kojih je ovaj
program aktiviran.
prelazak procesora na prekidni program 6. Po potrebi, obnavljaju se sadraji drugih
(ovim se maskiraju zahtevi za prekidima registara CP-a, korienih u prekidnom
niih prioriteta, ili se registar prioriteta puni programu.
prioritetom prekidnog programa). 7. Zabranjuje se prihvatanje novih prekida.
Dozvoljava se prihvatanje novih prekida. Obnavljaju se zapameni sadraji PSW-a,
(Ovim se prelazi na prekidni program.) PC-a i eventualno drugih sistemskih
registara prekinutog programa (ovo
4. Po potrebi, u prekidnom programu pamte se ukljuuje vrednosti maske prekida ili
sadraji drugih (nesistemskih) registara CP- prioriteta programa). Dozvoljava se
a koji se koriste u tom programu. prihvatanje novih prekida. (Ovim se vraa u
prekinuti program, ije se izvrenje
nastavlja.)
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Automatske aktivnosti CP-a


Reenje za bri odziv na izuzetke
Aktivnosti 1, 2 i 3 u celosti ili delimino Neki procesori (npr. MIPS32_M4K_Core)
obavlja CP automatski, koristei za to sadre dodatna polja registara u vidu
postojei hardver.
Aktivnosti 4, 5 i 6 obavljaju se u okviru registara u senci (eng. shadow registers) koja
prekidnog programa. se dodeljuju odreenim tipovima izuzetaka.
Aktivnosti u okviru take 7 obavlja CP Time se umesto pamenja i obnavljanja
izvrenjem specijalne instrukcije RFE (Return sadraja registara iz arhitekturnog polja
From Exception) ili RFI (Return From registara u koracima 4 i 6 jednostavno prelazi
Interrupt).
Samo aktivnosti u taki 5 su korisne u uem sa jednog na drugo polje registara, pa se tako
smislu, sve ostale aktivnosti su reijske, skrauje reijsko vreme pri opsluivanju
odnosno one koje omoguuju ovakav nain izuzetaka.
aktiviranja prekidnog programa.

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Promena konteksta programa ARHITEKTURA SKUPA


Opsluivanje izuzetaka tipa greaka i trapova INSTRUKCIJA MIPS PROCESORA
razlikuje se od niza aktivnosti 1.7. uglavnom MIPS arhitektura je RISC arhitektura
u tome da je informacija o uzroku izuzetka proistekla iz istraivanja koja su na Stanford
prisutna u nekom od sistemskih registara univezitetu u okviru projekta Microprocessor
samog procesora, na osnovu ega se without Interlocked Pipelined Stages (MIPS)
odreuje adresa rukovaoca izuzetka. j
obavljena up
periodu od 1981.-1983. g godine
Pamenje informacije o stanju prekinutog pod rukovodstvom profesora John-a
programa i dostavljanje informacije procesoru Hennessy-a.
o stanju prekidnog programa koji se aktivira Kasnije je osnovana firma MIPS iji su
(u koracima 2 i 3), kao i obnavljanje stanja komercijalni proizvodi mikroprocesori u okviru
prekinutog programa u koraku 7, naziva se R familije: R2000, R3000, R6000, R4000,
promena konteksta programa (engl. context R8000, R10000, R12000, MIPS32 74K
switching). familija jezgara i drugi.
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

20
Centralni procesor i koprocesori Celobrojni registri
Upoznaemo se sa osnovnim elementima MIPS32 arhitektura definie sledee registre,
MIPS32 Architecture. Ona definie centralni duina po 32 bita:
procesor (CP) i tri koprocesora:
32 registra opte namene (GPR), koji
Koprocesor 0 (CP0) se zajedno sa CP
implementira u istom ipu i podrava virtuelni obrazuju polje celobrojnih registara,
j
memorijski sistem i rukovanje
j izuzecima. CP0 dva registra
g posebne namene HI i LO,, u koje
p j
se takoe naziva i Koprocesor upravljanja se smetaju rezultati operacija mnoenja,
sistemom (System Control Coprocessor). deljenja, i mnoenja i akumuliranja,
Koprocesor 1 (CP1) rezervisan je za FP programski broja PC, koji nije arhitekturno
koprocesor, vidljivi registar, na koji se samo indirektno
Koprocesor 2 (CP2) rezervisan je za utie nekim instrukcijama,
specifine implementacije.

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Registri op{te Registri FP


FP registri namene (GPR)
31 0
jedinice (FPR)
31 0
R0 F0
R1 F1
32 FP registra opte namene (FPR), koji Korisniki
obrazuju polje FP registara; svi FP registri vidljivi registri
raspoloivi su za korienje u operacijama sa u MIPS32
FP podacima jednostruke preciznosti; arhitekturi.
FP podaci dvostruke preciznosti uvaju se u
paru susednih FP registara, od kojih je prvi sa R31 F31
parnim a drugi sa neparnim indeksom,
PC FIR
5 FP upravljakih registara, ija je uloga da HI FCCR
FEXR
identifikuju FP jedinicu i upravljaju njome. LO
FENR
Registri posebne FCSR
namene FPU upravlja~ki
registri
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Registri sa posebnim ulogama


Podrani tipovi celobrojnih podataka
Dva od 32 GPR registra imaju posebne uloge:
R0 je oien na sadraj 0 (on zapravo i nije
pravi registar); on se moe koristiti kao MIPS32 arhitektura definie sledee
izvorini registar kada je potrebna vrednost 0 formate celobrojnih podataka:
ili kao odredini registar kada rezultat bit,
operacije treba odbaciti,
odbaciti
R31 je odredini registar u instrukcijama bajt,
JAL, BLTZAL, BLTZALL, BGEZAL, i polure (2B),
BGEZALL bez njegovog eksplicitnog
navoenja u ovim instrukcijama; van njih on re (4B), i
se koristi kao i drugi GPR registri. dvostruku re (8B).

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

21
Oznaeni i neoznaeni podaci
Tipovi FP podataka
Celobrojni podaci svih formata (osim
bita) mogu biti oznaeni ili neoznaeni. Arhitektura takoe definie FP podatke
Neposredni operand tretira se kao sledeih tipova:
oznaen u aritmetikim instrukcijama i 32
32-bitne
bitne FP podatke jednostruke
instrukcijama poreenja, kada se uzima preciznosti,
znakovno proiren do duine registra. 64-bitne FP podatke dvostruke
U logikim instrukcijama, neposredni preciznosti, i druge.
operand uzima se kao neoznaen, i
proiruje se nulama do duine registra.
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Redosled bajtova u celobrojnim


Smetanje podataka u memoriji
podacima
Memorija je adresiva na nivou bajtova.
Redosled bajtova u celobrojnim Arhitektura preporuuje poravnato
podacima formata polurei, rei i smetanjej i pristupe podacima formata
dvostrukih rei moe biti tipa adresiranje polurei, rei i dvostrukih rei u
glave ili adresiranje repa, to se memoriji, ali podrava i neporavnato
odreuje pri konfigurisanju procesora. smetanje i pristupe ovim podacima.
Redosled bitova u podacima duine n Instrukcije moraju biti poravnato
bitova je: LSb je bit 0, MSb je bit n-1. smetene u memoriji.

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Podrani naini adresiranja Bazno adresiranje sa varijantama


MIPS arhitektura podrava sledee naine Bazno adresiranje je jedini nain
adresiranja: adresiranja operanada u memoriji.
neposredno, Meutim, izborom posebnih vrednosti
registarsko, pomeraja i adrese baznog registra
mogu se dobiti jo dva izvedena naina
bazno (pomerajno), i
adresiranja:
PC-relativno (samo u instrukcijama
grananja). Indirektno registarsko (ako je pomeraj
nula),
Neposredno adresiranje koristi se za
adresiranje jednog izvorinog operanda u Direktno (ako se kao bazni registar
aritmetikim i logikim operacijama. koristi R0).

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

22
Formati instrukcija Formati instrukcija u MIPS
Sve instrukcije su duine 32 bita, i arhitekturi
moraju biti poravnato smetene u
memoriji raunara. 31 26 21 16 11 6 0
Postoje tri formata instrukcija za rad sa op
6b
rs
5 b
rt
5 b
rd
5b
shamt
5 b
funct
6 b
R format

celobrojnim podacima,
podacima prikazana na 31 26 21 16 0
sledeem slajdu. U sva tri formata op rs rt immediate I format
6 b 5b 5b 16 b
instrukcija kod operacije (op) i indeksi 31 26 0
(adrese ) registara, duine po 5b, imaju op target address J format
fiksna mesta, to olakava i ubrzava 6 b 26 b
dekodiranje instrukcija.

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Oznake polja u ovim formatima i njihova


znaenja Oznake polja u ovim formatima i
njihova znaenja
op - kod operacije instrukcije,
rs - indeks (identifikator) prvog izvorinog immediate - neposredni operand u
registra instrukcije, aritmetiko-logikim instrukcijama,
rt - indeks drugog g g izvorinog
g registra
g ili otklon u j
instrukcijama uslovnog
g
odredinog registra instrukcije, grananja ili pomeraj u instrukcijama
rd - indeks odredinog registra instrukcije, Load i Store,
shamt - broj binarnih pozicija za koje treba target address - primarna adresa
pomeriti izvorini operand,
odredita skoka u instrukcijama skoka i
funct - dodatno polje koda operacije
bezuslovnog poziva procedura.
instrukcije,
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Formati aritmetiko-logikih
instrukcija I i J format

Aritmetiko-logike instrukcije su I format namenjen je aritmetiko-


troadresne, sa dve varijante: logikim instrukcijama, instrukcijama
g
sva tri operanda u registrima procesora uslovnoggggrananja
j i instrukcijama
j
(R format), obraanja memoriji (Load i Store).
jedan izvorini operand neposredno J format namenjen je instrukcijama
adresiran (I format). skoka i bezuslovnog poziva procedura.
R format namenjen je aritmetiko-
logikim instrukcijama i instrukcijama
pomeranja.
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

23
Osobenosti instrukcija grananja i
Zakanjeno grananje
skoka
MIPS32 arhitektura koristi specifian oblik
instrukcija uslovnog grananja i skoka,
takozvano zakanjeno grananje (engl. da
delayed branch) i zakanjeni skok. Uslov
ispunjen
Uslov
ispunjen da
Zakanjeno grananje i pri ispunjenom uslovu ne ne

grananja najpre izvri instrukciju koja za njom


sledi u programu, pa se tek onda odgrana na
odredite grananja.
Zakanjeni skok takoe najpre izvri Standardno grananje Zaka{njeno grananje
instrukciju koja za njim sledi u programu, pa
tek onda skoi na odredite skoka.

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Inkrementiranje PC-a za 8 Dejstvo instrukcije grananja


Za instrukciju koja u programu sledi za
instrukcijom grananja ili skoka kaemo U MIPS arhitekturi instrukcije moraju
da se nalazi u slotu kanjenja grananja biti poravnate. Ovo je iskorieno za
ili skoka. poveanje otklona odredita grananja u
odnosu na PC tako to se otklon pre
Ovo
O ima i za posledicu
l di da
d se u prikazu
ik
dodavanja PC-u pomera za dve binarne
dejstva instrukcije pri neispunjenju
pozicije ulevo.
uslova grananja programski broja
inkrementira za 8 umesto za 4, kao i da Uz to, otklon mora biti znakovno
je pri pozivu procedure adresa povratka proiren do duine PC-a pre sabiranja
iz procedure PC+8 umesto PC+4. sa sadrajem PC-a, a to je za 32-16=16
binarnih pozicija:
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Dejstvo instrukcije grananja Dejstvo instrukcije skoka


U MIPS arhitekturi u instrukcijama Jump i
znak_pro(otklon) = (otklon15)16otklon. Jump and link ne koristi se PC relativno
adresiranje odredita. Umesto toga, sadraj
Imajui u vidu oba reenja, instrukcija, na 26-bitnog polja odredita skoka pomera se
primer ulevo za dve binarne pozicije i zamenjuje nia
BEQZ R4, R4 ime
i i
ima d j t
dejstvo: 28 bita sadraja PC PC-a
a posle njegovog
inkrementiranja.
if (R4==0) Na primer, instrukcija
PC PC+ 4+ (znak_pro (ime))<<2 J ime ima za dejstvo
else PC PC + 8 ; PC (PC + 4)31..28(ime << 2),
-215 ime 215-1 0 ime 226-1.

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

24
Prekidi i izuzeci u MIPS32 arhitekturi
Dejstvo instrukcije skoka
Za podrku rukovanju izuzecima (to mogu biti
Dakle, odredite skoka nije otklon u izuzeci, prekidi i trapovi) MIPS arhitektura
odnosu na PC+4, ve je pozitivan koristi grupu registara u okviru koprocesora
pomeraj u bloku memorije veliine CP0.
256MB poev
od d adrese
d Iz
I ove grupe registara,
i t tri
t i registra
i t koriste
k i t se u
(PC+4)31..280 .
28 svim izuzecima, dok se ostali registri koriste u
specifinim tipovima izuzetaka.
Granini sluaj nastaje kada su PC i Ti registri su: Exception Program Counter,
PC+4 u susednim blokovima od po Cause Register i Status Register. Njihove
256MB. uloge u rukovanju izuzecima su sledee.

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Exception Program Counter (EPC) Status Register

Sadri adresu instrukcije sa kojom e biti Sadri informacije o nainu rada, dozvolama i
nastavljeno izvrenje prekinutog programa statusu elemenata procesora. Za rukovanje
posle opsluivanja izuzetka. izuzecima znaajni su:
Za sinhrone izuzetke, EPC sadri virtuelnu indikator dozvole prekida (engl. Interrupt
adresu instrukcije koja je izazvala izuzetak.
izuzetak Enable),),
Ali, kada je izuzetak izazvala instrukcija iz maska prekida (Interrupt Mask), polje irine 8
slota kanjenja grananja, EPC sadri bitova, i
virtuelnu adresu instrukcije grananja ili skoka kd naina rada procesora.
iji je to slot kanjenja. U tom sluaju, u Brisanjem indikatora IE (IE=0) generalno se
Cause registru postavlja se bit "Branch zabranjuju prekidi, a postavljanjem ovog
Delay". indikatora (IE=1) dozvoljavaju se prekidi koji
nisu maskirani.
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Status Register Cause Register

Pri IE=1, selektivna zabrana/dozvola Sadri informacije o uzroku poslednjeg


maskirljivih prekida vri se preko izuzetka. Na uzrok izuzetka ukazuje petobitni
odgovarajuih bitova maske prekida. kod uzroka izuzetka.
Vrednou 0 ovog bita prekid se Polje
j nerazreenih pprekida IP ((engl.
g Interrupt
p
zabranjuje, a vrednou 1 se Pending), duine 8 bitova, sadri prispele a
dozvoljava. jo neopsluene zahteve za prekid iz 8
moguih izvora prekida.
Kd naina rada procesora je polje
Indikator BD (Branch Delay) vrednou 1
irine 2 bita koje sadri kd tekueg
ukazuje da je izuzetak izazvala instrukcija u
naina rada, koji mogu biti: Kernel,
slotu kanjenja grananja ili skoka.
Supervisor ili User.
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

25
Uzroci izuzetaka i njihovi kodovi
Uzroci izuzetaka i njihovi kodovi
Procesor prima izuzetke iz vie izvora,
ukljuujui promaaje u baferu za prevoenje
adresa (TLB), premaenja pri aritmetikim
operacijama, U-I prekide i sistemske pozive. 8 izuzetak sistemskog poziva,
Neki od karakteristinih uzroka izuzetaka i 9 izuzetak prekidne take,
njihovi kodovi su: 10 izuzetak rezervisane instrukcije,
0 prekid, 12 izuzetak aritmetikog premaenja,
1 izuzetak modifikacije TLB-a, 13 izuzetak trapa,
6 izuzetak greke na magistrali pri
15 izuzetak pri radu sa pokretnom zapetom.
pribavljanju instrukcije,

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Rukovalac izuzecima Rukovalac izuzecima

Kada CP otkrije jedan od ovih dozvoljenih Rukovalac izuzecima pamti kontekst


izuzetaka, prekida normalan tok izvrenja procesora, ukljuujui
instrukcija i prelazi u Kernel nain rada. sadraj programskog brojaa (kojeg pamti u
Procesor tada zabranjuje prekide, i prelazi na EPC registru),
izvrenje softverskog procesora izuzetaka, tekui nain rada (User ili Supervisor) i
nazvanog rukovalac izuzecima (engl. status prekida (zabranjeni ili dozvoljeni).
exception handler), smetenog na fiksnoj Ovaj kontekst se pamti, tako da moe biti
adresi. obnovljen po opsluivanju izuzetka.

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Prioriteti izuzetaka
Adresa programa za opsluivanje
izuzetka Svim izuzecima dodeljeni su prioriteti. Izuzeci,
navedeni po redosledu opadajuih prioriteta,
su:
Takoe se relativna adresa programa za
reset (najvii prioritet),
opsluivanje prihvaenog izuzetka upisuje u
nemaskirljivi prekidi,
vektor izuzetka, i PC se puni adresom
izuzeci p
pri p
pribavljanju
j j instrukcija,
j ,
programa za opsluivanje
l i j iizuzetka.
tk
premaenje pri celobrojnoj aritmetici, trapovi,
Ova adresa formira se sabiranjem vektora sistemski pozivi, prekidne take, rezervisane
izuzetka i adrese poetka programa za instrukcije i izuzeci pri radu sa pokretnom
opsluivanje odreenog tipa izuzetaka. zapetom,
izuzeci pri obraanju operandu u memoriji, i
prekidi (najnii prioritet).

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

26
Skup instrukcija MIPS32
Korienje prioriteta izuzetaka arhitekture za rad sa celobrojnim
podacima
Ako se u toku ciklusa instrukcije javi
vie izuzetaka, saoptava se samo Skup instrukcija MIPS32 arhitekture za
j gp
izuzetak najvieg prioriteta. rad sa celobrojnim podacima naveden
je u tabelama 2.14
2 14 do 22.18.
18 Izostavljene
Generalno govorei, rukovanje su samo neke instrukcije koje su
izuzecima vri odgovarajui hardver, namenjene reavanju problema
dok se opsluivanje izuzetaka vri specifinih za vieprocesorske sisteme.
softverom, i specifino je za svaki tip U ovim tabelama navedeni su primeri
izuzetka. svih instrukcija i njihova dejstva.

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Mnem.
Opis Primer i dejstvo
oznaka
Mnem.
Opis Primer i dejstvo
oznaka ALU instrukcije sa neposrednim operandom
CPU Load/Store instrukcije sa poravnatim pristupima memoriji ADDI Add Imm Word ADDI rt, rs, imm: R[rt]R[rs]+zp(imm)
ADDIU Add Imm Uns Word ADDIU rt, rs, imm: R[rt]R[rs]+zp(imm), (mod. aritm.)
LB Load Byte LB rt, pom(rs): R[rt]M[a]724M[a] *
SLTI Set on Less Than Imm SLTI rt, rs, imm: if(R[rs]<zp(imm)) R[rt]1 else R[rt]0
LBU Load Byte Uns LBU rt, pom(rs): R[rt]024M[a]
SLTIU Set on Less Than Imm. SLTIU rt, rs, imm: if(R[rs]<zp(imm)) R[rt]1 else R[rt]0
SB Store Byte SB rt, pom(rs): M[a] R[rt]7..0
Uns
LH Load Halfword LH rt, pom(rs): R[rt]M[a]1516M[a] ANDI ANDI rt, rs, imm: R[rt]R[rs] AND pn(imm)
And Imm
LHU Load Halfword Uns LHU rt, pom(rs): R[rt]016M[a] ORI ORI rt, rs, imm: R[rt]R[rs] OR pn(imm)
Or Imm
SH Store Halfword SH rt, pom(rs): M[a] R[rt]15..0 XORI XORI rt, rs, imm: R[rt]R[rs] XOR pn(imm)
Exclusive Or Imm
LW Load Word LW rt, pom(rs): R[rt]M[a] LUI LUI rt, imm: R[rt]imm016
Load Upper Imm
LWU Load Word Uns LWU rt, pom(rs): R[rt]M[a]
SW Store Word SW rt, ppom(rs):
( ) M[a]R[rt] Troadresne ALU instrukcije
j
CPU Load/Store instrukcije sa neporavnatim pristupima memoriji ADD Add Word ADD rd, rs, rt: R[rd]R[rs]+R[rt]
ADDU Add Uns Word ADDU rd, rs, rt: R[rd]R[rs]+R[rt] , (mod. aritm.)
LWL Load Word Left LWL rt, pom(rs): R[rt]R[rt] MERGE M[a]
SUB Subtract Word SUB rd, rs, rt: R[rd]R[rs]-R[rt]
LWR Load Word Right LWR rt, pom(rs): R[rt]R[rt] MERGE M[a]
SUBU Subtract Uns Word SUBU rd, rs, rt: R[rd]R[rs]-R[rt] , (mod. aritm.)
SWL Store Word Left SWL rt, pom(rs): M[a]some_MSbytes_from R[rt]
SLT Set on Less Then SLT rd, rs, rt: if(R[rs]<R[rt]) R[rd]1 else R[rd]0
SWR Store Word Right SWR rt, pom(rs): M[a]some_LSbytes_from R[rt]
SLTU Set on Less Then Uns SLTU rd, rs, rt: if(R[rs]<R[rt]) R[rd]1 else R[rd]0
Razne instrukcije AND And AND rd, rs, rt: R[rd]R[rs] AND R[rt]
OR Or OR rd, rs, rt: R[rd]R[rs] OR R[rt]
NOP No Operation NOP: ne obavlja nikakvu aktivnost.
XOR Exclusive Or XOR rd, rs, rt: R[rd]R[rs] XOR R[rt]
BREAK Breakpoint BREAK: izaziva izuzetak prekidne ta~ke, odmah i bezuslovno
NOR Nor NOR rd, rs, rt: R[rd]R[rs] NOR R[rt]
SYSCALL System Call prenose}i upravljanje rukovaocu izuzetka.
CLO Count Leading Ones in CLO rd, rs: R[rd] broj_vode}ih_jedinica_u R[rs]
SYSCALL: izaziva izuzetak sistemskog poziva, odmah i bezuslovno
CLZ Word CLZ rd, rs: R[rd] broj_vode}ih_nula_u R[rs]
prenose}i upravljanje rukovaocu izuzetka.
Count Leading Zeros in
Word

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Mnem. Opis Primer i dejstvo


oznaka
Mnem.
Instrukcije pomeranja Opis Primer i dejstvo
oznaka
SLL Shift Word Left Logical SLL rd, rt, sa: R[rd]R[rt]<< sa
Instrukcije skoka-skokovi unutar podru~ja od 256 MB
SRL Shift WordRight Logical SRL rd, rt, sa: R[rd]R[rt]>> sa (logi~ko)
SRA Shift Word Right Arithmetic SRA rd, rt, sa: R[rd]R[rt]>> sa (aritmeti~ko) J Jump J adr: izvr{iti instr. u slotu ka{njenja, PC (PC+4)31..28(adr<< 2)
SLLV Shift Word Left Logical Variable SLLV rd, rt, rs: R[rd]R[rt]<<R[rs]4..0 JAL Jump and Link JAL adr: kao J uz poziv procedure. Adresa povratka (PC+8) ~uva se u R[31].
SRLV Shift Word Right Logical Variable SRLV rd, rt, rs: R[rd]R[rt]>>R[rs]4..0 (logi~ko)
Instrukcije skoka na apsolutne adrese
SRAV Shift Word Right Arit. Variable. SRAV rd, rt, rs: R[rd]R[rt]>>R[rs]4..0 (aritmeti~ko)
JR Jump Register JR rs: izvr{iti instr. u slotu ka{njenja, PCR[rs]
Instrukcije za mno`enje i deljenje
JALR Jump and Link Register JALR rd, rs: izvr. instr. u slotu ka{njenja, R[rd]PC+8, PCR[rs]
MULT Multiply Word MULT rs,rt: HI,LOR[rs] x R[rt], 64b proizvod u (HI, LO) Ako se rd izostavi, adresa povratka ~uva se u R[31].
MULTU Multiplay
p y unsigned
g Word i to u HI vi{i, a u LO ni`i deo
Instrukcije uslovnog grananja sa pore|enjem dva registra
registra, PC-relativne
PC relativne
MADD Multiplay and Add Word to HI,LO MADD rs,rt: HI,LOHI,LO + R[rs] x R[rt],
MADDU Mult. unsigned. and Add Word to HI,LO MSUB rs,rt: HI,LOHI,LO R[rs] x R[rt], B Unconditional Branch B pom: izvr{iti instrukciju u slotu ka{njenja, PCPC+4+(znak_pro{(pom))<<2
MSUB Mult. and Subtract Word to HI,LO MUL rd,rs,rt: R[rd]R[rs] x R[rt], ni`a 32 bita 64-bitnog BAL Branch and Link BAL pom: izvr{iti instrukciju u slotu ka{njenja, R[31] PC+8,
MSUBU Mult. unsign. and Subtract Word to HI,LO proizvoda u R[rd] BEQ Branch on Equal PCPC+4+(znak_pro{(pom))<<2
MUL Multiplay Word to GPR DIV rs, rt: HI, LOR[rs] / R[rt], LO sadr`i 32b koli~nik, BNE Branch on Not Equal BEQ rs, rt, pom: izvr{iti instrukciju u slotu ka{njenja, if(R[rs]==R[rt])
DIV Divide Word a HI 32b ostatak BEQL Branch on Equal PCPC+4+(znak_pro{(pom))<< 2 else PCPC+8
DIVU Div. Uns Word MFHI rd: R[rd]HI, BNEL Likely*** BNE rs, rt, pom: izvr{iti instrukciju u slotu ka{njenja, if(R[rs] !=R[rt])
MFHI Move From HI MTHI rs: HIR[rs], ** Branch on Not Equal PCPC+4+(znak_pro{(pom))<< 2 else PCPC+8
MTHI Move To HI MFLO rd: R[rd]LO, Likely** BEQL rs, rt, pom: izvr{iti instrukciju u slotu ka{njenja, if(R[rs]==R[rt])
MFLO Move From LO MTLO rs: LOR[rs], ** PCPC+4+(znak_pro{(pom))<< 2 else poni{titi instrukciju u slotu ka{njenja, PCPC+8
MTLO Move To LO BNEL rs, rt, pom: izvr{iti instrukciju u slotu ka{njenja, if(R[rs] !=R[rt])
PCPC+4+(znak_pro{(pom))<< 2 else poni{titi instrukciju u slotu ka{njenja, PCPC+8

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

27
Mnem.
Opis Primer i dejstvo
oznaka
Instrukcije uslovnog grananja sa pore|enjem sa nulom, PC-relativne ODLIKE VON NEUMANN-OVE
BLEZ
BGTZ
BLTZ
Branch on LT or Eq. to Zero
Branch on Greater Than Zero
Branch on LT Zero
BLEZ rs, pom: izvr{iti instrukciju u slotu ka{njenja, if(R[rs]<=0)
PCPC+4+ (znak_pro{(pom))<< 2 else PCPC+8
BLTZAL rs, pom: izvr{iti instrukciju u slotu ka{njenja, if(R[rs]<0)
ARHITEKTURE RAUNARA
BGEZ Branch on GT or Eq. to Zero R[31]PC+8, PCPC+4+(znak_pro{(pom))<<2 else PCPC+8
BLTZAL Branch on LT Zero and Link (ograni~enje: rs31)
BGEZAL Branch on GT or Eq. to Zero and Link Raunari o kojima smo govorili u ovom
CPU Instrukcije uslovnog prenosa
MOVN Move Conditional on Not Zero MOVN rd, rs, rt: if(R[rt]!=0) R[rd]R[rs]
poglavlju esto se nazivaju raunarima sa
MOVZ
MOVF
Move Conditional on Zero
Move Conditional on FP False
MOVZ rd, rs, rt: if(R[rt]==0) R[rd]R[rs]
MOVF rd,rs,cc: if FPConditionCode(cc) = 0 R[rd] R[rs] von Neumann-ovom arhitekturom. Njih
MOVT Move Conditional on FP True
j trapa
Uslovne instrukcije
MOVT rd,rs,cc: if FPConditionCode(cc) = 1 R[rd] R[rs]
p sa pore|enjem
p j dva registra
g
odlikuju sledee karakteristike:
TGE
TGEU
Trap if Greater Than or Equal
Trap if Greater Than or Equal
TGE rs, rt: if(R[rs]>=R[rt]) then Trap
TGEU rs, rt: if(R[rs]>=R[rt]) then Trap
1. Jedinstvena adresiva memorija sa
TLT
TLTU
Unsigned
Trap if LT
TLT rs, rt: if(R[rs]<R[rt]) then Trap
TLTU rs, rt: if(R[rs]<R[rt]) then Trap
proizvoljnim pristupom. Programi i podaci
TEQ
TNE
Trap if LT Uns
Trap if Equal
TEQ rs, rt: if(R[rs]==R[rt]) then Trap
TNE rs, rt: if(R[rs]!=R[rt]) then Trap
uvaju se u istoj memoriji.
Trap if Not Equal
Uslovne instrukcije trapa sa pore|enjem sa neposrednim operandom
2. Memorija je linearna. Ona je
TGEI
TGEIU
Trap if Greater Than or Equal
Immediate
TGEI rs, imm: if(R[rs]>=zp(imm)) then Trap
TGEIU rs, imm: if(R[rs]>=zp(imm)) then Trap
jednodimenzionalna, tj. oblika je vektora
TLTI
TLTIU
Trap if Greater Than or Equal Imm
Uns
TLTI rs, imm: if(R[rs]<zp(imm)) then Trap
TLTIU rs, imm: if(R[rs]<zp(imm)) then Trap
lokacija, ije adrese obrazuju niz tipa
TEQI
TNEI
Trap if LT Imm
Trap if LT Imm Uns
TEQI rs, imm: if(R[rs]==zp(imm)) then Trap
TNEI rs, imm: if(R[rs]!=zp(imm)) then Trap
0,1,2,... .
Trap if Equal Imm
Trap if Not Equal Imm
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

Odlike von Neumann-ove arhitekture Odlike von Neumann-ove arhitekture


raunara raunara
3. Nema eksplicitne razlike izmeu instrukcija i 4. Namena podataka nije njihov neodvojivi sastavni
podataka. Oni se razlikuju implicitno pri radu deo. Nema, npr. nikakvih elemenata koji omoguuju
raunara. eksplicitno razlikovanje niza bitova, koji predstavljaju
broj sa pokretnom zapetom, od niza bitova koji
Tako, objekat adresiran instrukcijom skoka predstavljaju nisku znakova. Namena podataka
tretira se kao instrukcija; operandi, koji se odreujej se logikom
g p
programa.
g
navoded u iinstrukciji
t k iji sabiranja,
bi j ttretiraju
ti j se kkao Ako raunar pribavi iz memorije instrukciju sabiranja
podaci. brojeva sa pokretnom zapetom, pretpostavlja se da
Takav preutni dogovor omoguuje, npr. su operandi brojevi sa pokretnom zapetom, i ti
obraanje instrukciji kao podatku (i njeno operandi se sabiraju prema pravilima sabiranja
modifikovanje), komponovanje instrukcije od brojeva sa pokretnom zapetom.
rei podataka ili skok na re podatka i Na isti nain moe se obaviti sabiranje dva operanda,
tretiranje te rei kao instrukcije. koji su stvarno neto drugo, npr. niske znakova.

N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011

28

You might also like