Professional Documents
Culture Documents
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
*, &
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
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011
2
Formati instrukcija Troadresni i dvoadresni format
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011
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
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
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
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
6
Registarsko indirektno adresiranje
Registarsko indirektno adresiranje
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
8
Autoinkrementno adresiranje
Autoinkrementno adresiranje
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
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
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011
11
Poravnati pristupi memoriji
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011
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
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011
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
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011
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
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011
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
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011
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
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
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
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011
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
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
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
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011
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
Formati aritmetiko-logikih
instrukcija I i J format
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
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011
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
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
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
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
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
N. Milenkovi, Arhitektura i organizacija raunara 2011 N. Milenkovi, Arhitektura i organizacija raunara 2011
28