Professional Documents
Culture Documents
Arhitektura i organizacija
digitalnog raunala
Nastavnik: Prof.dr.sc. Sven Gotovac
Asistent: Goran Kraljevi, dipl.ing.ra.
Ak.god. 2011/2012
III/1
Pojednostavnjeni modeli
(mikro)procesora CISC i RISC
Ak.god. 2011/2012
III/2
Ak.god. 2011/2012
III/3
Ak.god. 2011/2012
III/4
Ak.god. 2011/2012
III/5
CISC raunala
Ope karakteristike
Povijesne injenice
Ak.god. 2011/2012
III/6
Ak.god. 2011/2012
III/7
Ak.god. 2011/2012
III/8
Ak.god. 2011/2012
III/9
Ak.god. 2011/2012
III/10
Ak.god. 2011/2012
III/11
Cjevovod (pipeline)
Superskalarne operacije
Ak.god. 2011/2012
III/12
Superskalarni RISC
izdaju i izvravaju vie od jedne instrukcije tijekom jedne
periode taktnog signala
Superskalarni CISC
CISC procesori koji koriste superskalarno RISC jezgro
CISC instrukcije se pretvaraju tijekom dekodiranja u RISC
i zatim se izvravaju u RISC jezgri
istodobno se mogu izvoditi od 1 do 3 CISC instrukcije
(u jednoj periodi taktnog signala)
Ak.god. 2011/2012
III/13
Ak.god. 2011/2012
III/14
Ak.god. 2011/2012
III/15
Model (mikro)procesora
CISC arhitekture
Ak.god. 2011/2012
III/16
Ak.god. 2011/2012
III/17
Ak.god. 2011/2012
III/18
Primjer programa
Program od samo jedne instrukcije:
INC $05FF
Ak.god. 2011/2012
III/19
III/20
Poetni uvjeti
Ak.god. 2011/2012
10
Ak.god. 2011/2012
III/21
Operacijski kod
7C = 01111100
se tumai kao:
Poveaj za 1 vrijednost operanda ija je adresa sadrana u
dva bajta koja slijede ovom operacijskom kodu.
Ak.god. 2011/2012
III/22
11
Ak.god. 2011/2012
III/23
Ak.god. 2011/2012
III/24
12
Ak.god. 2011/2012
III/25
Ak.god. 2011/2012
III/26
13
Ak.god. 2011/2012
III/27
Ak.god. 2011/2012
III/28
14
Ak.god. 2011/2012
III/29
R0
32 32 bitna
spremnika
ope
namjene
2 32
okteta
glavne
memorije
R31
PC
IR
32
2 -1
Ak.god. 2011/2012
III/30
15
Format naredbe
U osnovi se razlikuju tri tipa naredbi:
27
op
31
22
27
op
31
Ak.god. 2011/2012
c1
22
ra
27
op
ra
ra
17
rb
22
c1
17
rb
TIP 1
12
rc
TIP 2
0
c1
TIP 3
III/31
Ak.god. 2011/2012
III/32
16
Naredbe za grananje
Naredbe za grananje br i brl omoguavaju bezuvjetno i uvjetno
grananje na adresu odreenu specificiranim spremnikom
Posebne naredbe
Dvije posebne naredbe bez operanada su nop i stop
Ak.god. 2011/2012
III/33
Ak.god. 2011/2012
III/34
17
ld (load)
Puni spremnik odreen 5-bitnim poljem ra
Adresa izvorita odreena je 17-bitnom vrijednosti u polju c2
Polje rb ima dvostruku ulogu:
Ako je rb = 0 (00000B) tada (rb = 0) slui kao signal upravljakoj jedinci da je
adresa memorijske lokacije (izvorita) vrijednost c2 koja se pretvara u 32-bitnu i
to irenjem bita predznaka (engl. sign-extended)
Ak.god. 2011/2012
III/35
st (store)
la (load address)
Ak.god. 2011/2012
III/36
18
Ak.god. 2011/2012
III/37
Ak.god. 2011/2012
III/38
19
Ak.god. 2011/2012
III/39
Primjeri:
Naredba
Op
ra
rb
c1
Znaenje
Mod adresiranja
ld r1,32
ld r22, 24(r4)
st r4, 0(r9)
la r7, 32
ldr r12, -48
lar r3, 0
1
1
3
5
2
6
1
22
4
7
12
3
0
4
9
0
-
32
24
0
32
-48
0
R[1]M[32]
R[22]M[24+R[4]]
M[R[9]]R[4]
R[7]32
R[12]M[PC-48]
R[3]PC
Direktno
Indeksno
Indirektno spremnikom
Trenutno
Relativno
Adresa u spremnik
Ak.god. 2011/2012
III/40
20
Ak.god. 2011/2012
III/41
Ak.god. 2011/2012
III/42
21
Ak.god. 2011/2012
III/43
Naredbe za posmak
Naredbe za posmak izvode pomak bitova spremnika rb ulijevo,
udesno ili kruno za 1 do 31 mjesto i rezultat pohranjuju u
spremnik ra.
Za koliko mjesta je potrebno izvriti posmak odreeno je s pet
bita najmanjeg znaaja naredbe (format naredbe 7a).
Ak.god. 2011/2012
III/44
22
Naredbe za posmak
Razlikujemo dvije vrste posmaka:
logiki posmak
aritmetiki posmak
Primjer: shr logiki posmak udesno
Ak.god. 2011/2012
III/45
Naredbe za posmak
Posmak ulijevo
shl
Kruni posmak
shc
Ak.god. 2011/2012
III/46
23
Naredbe za posmak
shr ra, rb, rc posmak u desno R[rb] za iznos R[rc] (bitovi 0-4) a rezultat u R[ra]
shr ra, rb, broj posmak u desno R[rb] za broj (bitovi 0-4 naredbe) a rezultat u R[ra]
shra ra, rb, rc ar. posmak u desno R[rb] za iznos R[rc] (bitovi 0-4) a rez. u R[ra]
shra ra, rb, broj ar. posmak u desno R[rb] za broj (bitovi 0-4 naredbe) a rez. u R[ra]
shl ra, rb, rc posmak u lijevo R[rb] za iznos R[rc] (bitovi 0-4) a rezultat u R[ra]
shl ra, rb, broj posmak u lijevo R[rb] za broj (bitovi 0-4 naredbe) a rezultat u R[ra]
shc ra, rb, rc cirk. posmak u lijevo R[rb] za iznos R[rc] (bitovi 0-4) a rez. u R[ra]
shc ra, rb, broj cirk. posmak u lijevo R[rb] za broj (bitovi 0-4 naredbe) a rez. u R[ra]
Ak.god. 2011/2012
III/47
Naredbe za grananje
Format broj 5 koristi se za naredbu za grananje i vezivanje (branch & link) brl
brl prvobitno pohranjuje sadraj PC-a u jedan spremnik (ra), a zatim zamjenjuje
sadraj PC-a sadrajem spremnika rb (ove aktivnosti izvode se samo ukoliko
sadraj spremnika rc zadovoljava uvjet odreen s prva tri bita naredbe)
Naredba za grananje i vezivanje koristi se za skokove u potprograme
(sauvan je sadraj PC-a prije skoka pa je mogue nakon zavretka potprograma
ponovo se vratiti na sljedeu naredbu glavnog programa)
Ak.god. 2011/2012
III/48
24
Naredbe za grananje
Ak.god. 2011/2012
III/49
Primjer
Znaenje
Op
ra
rb
rc
c3<2..0>
brlnv
brlnv r6
R[6]PC
000
nikada
br
br r4
PCR[4]
001
uvijek
brl
brl r6,r4
R[6]PC
PCR[4]
001
uvijek
brzr
brzr r5,r1
ako je R[1]=0
PCR[5]
010
nula
brlzr
brzr r7,r5,r1
R[7]PC
ako je R[1]=0
PCR[5]
010
nula
brnz
brnz r1,r0
ako je R[0]0
PCR[1]
011
nije nula
brlnz
brnz r2,r1,r0
R[2]PC
ako je R[0]0
PCR[1]
011
nije nula
brpl
brpl r3,r2
ako je R[2]>=0
PCR[3]
100
plus
brlpl
brzr r4,r3,r2
R[4]PC
ako je R[2]>=0
PCR[3]
100
plus
brmi
brmi r0,r1
ako je R[1]<0
PCR[0]
101
minus
brlmi
brmi r3,r0,r1
R[3]PC
ako je R[1]<0
PCR[0]
101
minus
Ak.god. 2011/2012
Uvjet
III/50
25
Posebne naredbe
Naredba nop
ne izvodi nikakvu operaciju
koristi se za razdjeljivanje nekih naredbi ili za potronju
vremena procesora to je vano kod implementacije
cjevovoda!
Naredba stop
zaustavlja rad procesora
korisna je kod testiranja programa (debugger) - na kritinim
mjestima programa umetne se stop naredba te se ispituje
stanje procesora i memorije
Ak.god. 2011/2012
III/51
Ak.god. 2011/2012
III/52
26
Ak.god. 2011/2012
III/53
RTN prevodilac
Generirani procesor
SRC program
i podaci
Ak.god. 2011/2012
SRC interpreter
ili simulator
izlazni
podaci
III/54
27
oznaka
znaenje
[]
<>
n..m
:=
{}
()
grupiranje operacija
=<>
operatori usporedbe
+-*/
aritmetiki operatori
Ak.god. 2011/2012
III/55
Ak.god. 2011/2012
III/56
28
Ak.god. 2011/2012
III/57
uvjet :=
(c3<2..0> = 0 0: nikad
(c3<2..0> = 1 1: uvijek
(c3<2..0> = 2 R[rc] = 0: ako je sadraj spremnika rc jednak 0
(c3<2..0> = 3 R[rc] 0: ako je sadraj spremnika rc razliit od 0
(c3<2..0> = 4 R[rc]<31> = 0: ako je sadraj spremnika rc pozitivan ili 0
(c3<2..0> = 5 R[rc]<31> = 1:); ako je sadraj spremnika rc negativan
br (:= op = 8) (uvjet PC R[rb]): uvjetno grananje
brl (:= op = 9) (R[ra] PC: uvjet (PC R[rb])): uvjetno s
vezivanjem
Ak.god. 2011/2012
III/58
29
Ak.god. 2011/2012
III/59
Ak.god. 2011/2012
III/60
30
Simbolika
sintaksa
Naziv moda
Spremnik
Ra
Spremnik indirektno
(Ra)
Neposredno
#x
Direktno apsolutno
RTN opis
Upotreba
R[t] R[a]
Privremena varijabla
R[t] M[R[a]]
Pokaziva na strukturu
R[t] x
Konstanta
R[t] M[x]
Globalna varijabla
R[t] M[M[x]]
Pokaziva na varijablu
Indeksno s pomakom
x(Ra)
R[t] M[x+R[a]]
Polje, struktura
Relativno
x(PC)
R[t] M[x+PC]
Autoinkrement
(Ra)+
R[t] M[R[a]]
R[a] Ra + 1
Sekvencijalni pristup,
Stavljanje na stog
Autodekrement
-(Ra)
R[t] M[R[a]]
R[a] Ra - 1
Sekvencijalni pristup,
Skidanje sa stog
Indirektno
(x)
Napomena: Kod CISC procesora postoje dodatne varijacije adresnih modova prikazanih u tablici.
Tako neki procesori uz konstantu i sadraj spremnika adresu generiraju i dodavanjem sadraja
drugog spremnika (x + R[a] + R[b]) formirajui tzv. bazno indeksno adresiranje (based indexed
addressing).
Ak.god. 2011/2012
III/61
Ak.god. 2011/2012
III/62
31
Ak.god. 2011/2012
III/63
Ak.god. 2011/2012
III/64
32
Asembler:
ld r6,24
ld r7,28
add r5,r6,r7
st r5,32
Strojni oblik:
00001 00110 00000 00000000000011000
00001 00111 00000 00000000000011100
01100 00101 00110 00111 000000000000
00011 00101 00000 00000000000100000
Ak.god. 2011/2012
III/65
33