You are on page 1of 33

SVEUILITE U MOSTARU

FAKULTET STROJARSTVA I RAUNARSTVA

Arhitektura i organizacija
digitalnog raunala
Nastavnik: Prof.dr.sc. Sven Gotovac
Asistent: Goran Kraljevi, dipl.ing.ra.

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/1

Pojednostavnjeni modeli
(mikro)procesora CISC i RISC

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/2

Pojednostavnjeni modeli procesora CISC i RISC

RISC ili CISC


Komponente modela CISC
Primjer izvoenja programa
Stanje registara
Stanje na sabirnicama

Komponente modela (S)RISC


ISA model procesora
Formalan opis (S)RISC-a

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/3

CISC ili RISC

Dvije osnovne procesorske arhitekture:


CISC
Procesori sa sloenim skupom naredbi

(engl.Complex Instruction Set Computer CISC)


RISC
Procesori sa smanjenim skupom naredbi

(engl.Reduced Instruction Set Computer RISC)

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/4

CISC ili RISC

Ekonominost kodiranja naredbi i adresnih modova karakteristike


su CISC procesora. Rezultat ovakvog pristupa su naredbe koje se
meusobno razlikuju u duini i vremenu potrebnom za njihovo
izvoenje, adresnim modovima i broju pristupa memoriji.
Tadanja cijena memorije razlogom je ovakvom rjeenju. Meutim kada se
sklopovskim rjeenjima, cjevovodima i superskalarnom obradom pokuala
poveati brzina obrade, glavna prepreka bile su sloene naredbe i adresni
modovi.

Temelj RISC procesora su jednostavnije naredbe, jednake duine


te pristup memoriji pomou naredbi pii/itaj (load/store).
Projektanti su ustanovili da se jednostavne naredbe, jednake
duine bolje uklapaju u sklopovska rjeenja cjevovoda i
superskalarne obrade. Ujedno ovakav pristup dozvoljava veu
frekvenciju takta.
Istina je da ovakav pristup zahtijeva veu memoriju te uestaliji pristup
memoriji, ali bra memorija kao i tehnike preddohvata naredbi praktiki su
donijeli prevagu ovom konceptu koji je dodatno unaprijeen cjevovodom i
superskalarnom obradom.

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/5

CISC raunala
Ope karakteristike

Kod CISC procesora ISA se projektira s ciljem da naredbe imaju


to vee mogunosti Kao rezultat CISC procesori imaju iroki
opseg adresnih modova
Ovi procesori dozvoljavaju korisniku da operandi i rezultat budu
proizvoljno pohranjeni kako u memoriji tako i u spremnicima
ope namjene
Rezultat ovakve arhitekture su naredbe razliitih duina i vremena
izvoenja

Povijesne injenice

Zbog cijene memorije programeri su teili da njihov kod i podaci


zauzimaju to manje prostora
(Cijena memorije 1975.god. iznosila je $500 za 16 KB RAM-a, a tvrdi disk od 40 MB
kotao je $55000. Pet godina kasnije cijena 64 KB RAM-a je jo uvijek iznosila
nekoliko stotina dolara, a tvrdi disk od 10 MB je kotao $5000.
Cijena memorija nije vie kritina pa programeri svoje strateke ciljeve usmjeravaju
prema brzini izvoenja dok memorijski zahtjevi programa postaju nebitni)

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/6

Skalarni CISC (Complex Instruction Set Computer)

Skalarni CISC skalarni tipovi podataka


(cjelobrojni operandi i operandi s pominim zarezom)
vrlo veliki skup (strojnih) instrukcija
promjenjivi format instrukcija (16 64 i vie bitova)
brojni i raskoni naini adresiranja (od 12 do 24 i vie)
CPI (Cycles Per Instruction) od dvije periode taktnog
signala do nekoliko desetaka

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/7

Skalarni RISC (Reduced Instruction Set Computer)

Skalarni RISC skalarni tipovi podataka


(cjelobrojni operandi i operandi s pominim zarezom)
mali skup (strojnih) instrukcija
jednako trajanje izvoenja svih naredbi (CPI jedna
perioda taktnog signala potrebna je za veinu instrukcija)
Ovaj jednostavan koncept praktiki je najvaniji temelj u
projektiranju RISC-a. Prve definicije RISC-a podrazumijevale
su da se sve naredbe izvode u jednom ciklusu
Realizacija cjevovoda je jednostavnija ukoliko se u svakom
taktu starta po jedna naredba

instrukcije su fiksne duljine (npr. 32 bita)


veina instrukcija su tipa registar-registar

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/8

Skalarni RISC (Reduced Instruction Set Computer)

load / store arhitektura


projektanti RISC raunala ograniavaju se na izvoenje svih
operacija nad operandima pohranjenim u spremnicima
procesora
pristup operandima u memoriji ogranien je na operacije
njihova dohvata (load) i pohrane (store)
ova vrsta podjela izmeu pristupa operandima u memoriji i
njihove obrade minimizira broj pristupa memoriji od strane
procesora, odnosno reducira optereenje vanjske sabirnice

jednostavni adresni modovi


sloeni adresni modovi zahtijevaju vie taktova budui da se
mora provesti vie aritmetikih operacija
RISC procesori obino su ogranieni na samo dva adresna
moda: indirektno pomou spremnika (register indirect) i
indeksno

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/9

CISC ili RISC

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/10

Prijelaz s CISC na RISC procesore

Uvoenjem paralelizma u radu procesora mogue je


istovremeno obraivati vie naredbi
time se poveava propusna mo procesora, odnosno broj
naredbi koje on moe obraditi u jedinici vremena
Danas su uobiajena rjeenja:
preddohvat naredbe (prefetching)
cjevovod (pipeline)
superskalarne operacije

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/11

Prijelaz s CISC na RISC procesore


Preddohvat naredbe (prefetching)

Brzina obrade moe se znaajno poveati ukoliko se sljedea


naredba dohvati ve za vrijeme izvoenja tekue naredbe
Preddohvat naredbe predstavlja preteu cjevovoda

Cjevovod (pipeline)

Jednostavno reeno, cjevovod podrazumijeva dohvat i poetak


izvoenja sljedee naredbe prije nego to je zavrila tekua
naredba
Suvremeni procesori proces izvoenja sljedee naredbe privode
skoro kraju u trenutku zavretka tekue naredbe

Superskalarne operacije

Superskalarno raunanje podrazumijeva istovremeno izvoenje


vie naredbi
Ova raunala imaju vie cjelovitih jedinica za izvoenje to
omoguava istovremenu obradu vie naredbi

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/12

Superskalarni RISC i CISC

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

Arhitektura i organizacija digitalnog raunala

III/13

CISC ili RISC

Oba tipa procesora su komercijalno u primjeni:


Pentium procesor (Intel, AMD)

CISC arhitektura (superskalarni CISC)


- bazirani na RISC arhitekturi u samoj svojoj jezgri
- dominantni na desktop raunalima

PowerPC procesori (Apple, IBM, Motorola)

RISC arhitektura (superskalarni RISC)

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/14

Prostor oblikovanja suvremenih procesorskih porodica

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/15

Model (mikro)procesora
CISC arhitekture

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/16

Model (mikro)procesora CISC arhitekture

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/17

Pribavi i izvri (fetch & execute)


Izvoenje svake instrukcije se dijeli na:
fazu pribavljanja instrukcije PRIBAVI (fetch)
fazu izvravanja instrukcije IZVRI (execute)

Mikroprocesor za vrijeme faze PRIBAVI postavlja sadraj programskog brojila


preko interne sabirnice na vanjsku adresnu sabirnicu.
Ujedno alje i odgovarajue upravljake signale (signal ITAJ) na vanjsku
upravljaku sabirnicu. Memorijski sklop dekodira postavljenu adresu (prisutnu
na adresnoj sabirnici) u cilju pristupa do odgovarajue memorijske rijei.
Za nekolio stotina ns (npr. 500 ns) sadraj specificirane memorijske lokacije
pojavit e se na vanjskoj sabirnici podataka. Taj se sadraj pohranjuje u
instrukcijskom registru IR i to je operacijski kod instrukcije.
Za vrijeme faze PRIBAVI mikroprocesor upotrebljava svoju internu logiku i
poveava sadraj programskog brojila.

U fazi IZVRI upravljaka jedinica, u skladu s operacijskim kodom koji je


pohranjen u instrukcijskom registru, generira niz upravljakih signala.
Rezultat tog niza signala su odgovarajui prijenosi podataka, te operacije (npr.
aktiviranje pojedinih sklopova unutar aritmetiko-logike jedinice), izvravanja
(izvoenja) zadane instrukcije.

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/18

Primjer programa
Program od samo jedne instrukcije:
INC $05FF

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/19

Arhitektura i organizacija digitalnog raunala

III/20

Poetni uvjeti

Ak.god. 2011/2012

10

Stanje nakon pribavljanja operacijskog koda instrukcije

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/21

Operacijski kod instrukcije

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

Arhitektura i organizacija digitalnog raunala

III/22

11

Stanje nakon pribavljanja znaajnijeg bajta adrese operanda

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/23

Stanje nakon pribavljanja manje znaajnog bajta adrese operanda

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/24

12

Faza PRIBAVI je zavrena

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/25

Stanje nakon dohvata operanda (Faza IZVRI)

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/26

13

Stanje nakon poveanja operanda za jedan (Faza IZVRI)

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/27

Stanje na vanjskim sabirnicama

** - oznaava stanje visoke impedancije (tree stanje)

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/28

14

SRISC Simple RISC

Arhitektura i organizacija digitalnog raunala

Ak.god. 2011/2012

III/29

Programerski model raunala


31

R0

32 32 bitna
spremnika
ope
namjene

2 32
okteta
glavne
memorije

R31
PC
IR

32

2 -1

Jednostavan procesor sa smanjenim skupom naredbi ima 32


32-bitovna spremnika ope namjene, programsko brojilo PC i
spremnik naredbe IR.
Memorija (Big-Endian Byte Ordering) je kapaciteta 232 okteta,
ali procesor u jednom pristupu memoriji ita ili upisuje etiri
okteta 32 bita.
Ovaj procesor organiziran je kao procesor sa spremnicima
ope namjene tako da se memoriji moe pristupati samo
preko naredbi load i store.

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/30

15

Format naredbe
U osnovi se razlikuju tri tipa naredbi:

TIP 1 koji uz operacijski kod ima specificiran jedan spremnik i


konstantu
TIP 2 koji uz operacijski kod ima specificirana dva spremnika i
konstantu
TIP 3 koji uz operacijski kod ima specificirana tri spremnika i
konstantu
31

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

Arhitektura i organizacija digitalnog raunala

TIP 3

III/31

ISA Instruction Set Arhitecture

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/32

16

ISA Instruction Set Arhitecture

Naredbe za pristup memoriji (load i store)


Naredbe za upis u spremnike (load) ld, ldr, la, lar
Naredbe za upis podataka iz spremnika u glavnu memoriju
(store) st i str

Naredbe za grananje
Naredbe za grananje br i brl omoguavaju bezuvjetno i uvjetno
grananje na adresu odreenu specificiranim spremnikom

Aritmetike i logike naredbe


Aritmetike naredbe: add, addi, sub, neg
Logike naredbe: and, andi, or, ori, not
Naredbe za posmak: shr, sha, shl, shc

Posebne naredbe
Dvije posebne naredbe bez operanada su nop i stop

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/33

Naredbe za pristup memoriji (load i store)


Naredbe koje koriste format broj 1 sa slike formata naredbi:

ld ra, c2 direktno adresiranje R[ra] = M[c2]


ld ra, c2(rb) indeksno adresiranje (rb 0); R[ra] = M[c2 + R[rb]]
st ra, c2 direktno adresiranje M[c2] = R[ra]
st ra, c2(rb) indeksno adresiranje (rb 0); M[c2 + R[rb]] = R[ra]
la ra, c2 upii vrijednost adrese u spremnik R[ra] = c2
la ra, c2(rb) upii vrijednost adrese u spremnik R[ra] = c2+ R[rb]

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/34

17

Naredbe za pristup memoriji (load i store)

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)

Ako je rb 0 tada se adresa memorije oblikuje kao c2 + R[rb] (based,


displacement addressing mode). Zbrajanje c2 + R[rb] obavlja se TIJEKOM
izvoenja instrukcije (engl. runtime)

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/35

Naredbe za pristup memoriji (load i store)

st (store)

Instrukcija st obavlja obrnutu (u odnosu na ld) operaciju:


Ako je rb = 0 (00000B) tada se R[ra] pohranjuje na memorijskoj
lokaciji s adresom c2
Ako je rb 0 tada se R[ra] pohranjuje na memorijskoj lokaciji s
adresom c2 + R[rb]

la (load address)

Rauna adresu operanda (kao u prethodnim sluajevima), ali umjesto


dohvata operanda pohranjuje se izraunata adresa u R[ra]

la se koristi za sintezu sloenijih naina adresiranja

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/36

18

Naredbe za pristup memoriji (load i store)


Ogranienje direktnog adresiranja

c2 je 17-bitna konstanta (16 bita + predznak) tako da je direktno


mogue adresirati samo prvih 64k (00000000H - 0000FFFFH),
odnosno posljednjih 64k memorije (FFFF0000H FFFFFFFFH)

Za adresiranje preostalog memorijskog prostora potrebno je koristiti


indeksno adresiranje, odnosno pribrajanje sadraja jednog spremnika
( R[0]) konstanti.

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/37

Naredbe za pristup memoriji (load i store)


Naredbe koje koriste format broj 2 sa slike formata naredbi:

Relativno adresiranje proraunava efektivnu adresu pribrajajui


konstanti sadraj PC-a.

ldr ra, c1 upis u spremnik s adrese PC + c1; R[ra] = M[PC + c1]


str ra, c1 upis na adresu PC + c1 iz spremnika; M[PC + c1] = R[ra]
lar ra, c1 upii vrijednost relativne adrese u spremnik; R[ra] = PC + c1
Efektivna adresa izraunava se za vrijeme izvoenja programa pribrajanjem
sadraja programskog brojila konstanti c1, PC + c1 (run-time addition).

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/38

19

Naredbe za pristup memoriji (load i store)


Premjestive instrukcije (engl. relocatable instructions)

Relativne adrese (u odnosu na PC) ine kod premjestivim


Naredbe i podaci specificiraju se kao konstantna udaljenost od
sadraja PC
Cijeli se programski moduli mogu premjetati bilo gdje u
memoriji bez mijenjanja vrijednosti pomaknua (samo je
potrebno pri poetku izvoenja programa u PC upisati poetnu
vrijednost koda)
Konstanta koja odreuje pomak je duine 22 bita (21 bit
vrijednost i 1 bit predznak) tako da je mogue specificirati
naredbe i podatke unutar 221 oko trenutne vrijednosti
programskog brojila

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/39

Naredbe za pristup memoriji (load i store)

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

Arhitektura i organizacija digitalnog raunala

III/40

20

Aritmetike i logike naredbe


Naredbe koje imaju samo jedan operand

Ove naredbe koriste format broj 3 sa slike formata naredbi.

neg ra, rc negiraj tj. 2ki komplement; R[ra] = -R[rc]


not ra, rc NE logika operacija; R[ra] = R[rc]

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/41

Aritmetike i logike naredbe


Naredbe koje koriste tri spremnika
(binarne operacije)

Ove naredbe koriste format broj 6 (troadresni!)

add ra, rb, rc zbrajanje u aritmetici 2ki komplement; R[ra] = R[rb]+R[rc]


sub ra, rb, rc oduzimanje u aritmetici 2ki komplement; R[ra] = R[rb]-R[rc]
and ra, rb, rc logiko I; R[ra] = R[rb]R[rc]
or ra, rb, rc logiko ILI; R[ra] = R[rb]R[rc]

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/42

21

Aritmetike i logike naredbe


Naredbe koje koriste dva spremnika i konstantu kao dio naredbe
(neposredno adresiranje)

Ove naredbe koriste format broj 1 sa slike formata naredbi.

addi ra, rb, c2 zbrajanje u aritmetici 2ki komplement; R[ra] = R[rb]+c2


andi ra, rb, c2 logiko I; R[ra] = R[rb]c2
ori ra, rb, c2 logiko ILI; R[ra] = R[rb]c2

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

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

Ukoliko su bitovi naredbe 0-4 postavljeni u 0 tada je broj mjesta


za koji je potrebno izvriti pomak odreen s pet bita najmanjeg
znaaja spremnika rc (format naredbe 7b).

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/44

22

Naredbe za posmak
Razlikujemo dvije vrste posmaka:
logiki posmak
aritmetiki posmak
Primjer: shr logiki posmak udesno

Primjer: shra aritmetiki posmak udesno

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/45

Naredbe za posmak

Posmak ulijevo

shl

Kruni posmak

shc

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

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

Arhitektura i organizacija digitalnog raunala

III/47

Naredbe za grananje

Format broj 4 koristi se za naredbu za grananje br

br izvodi zamjenu sadraja PC-a s ciljnom adresom (sadrajem spremnika rb)

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

Arhitektura i organizacija digitalnog raunala

III/48

24

Naredbe za grananje

Postoji pet razliitih uvjeta koji se ispituju prije skoka

Mnogi procesori u svrhu grananja imaju poseban spremnik (statusni


spremnik) ije pojedine bitove (zastavice) koriste naredbe za grananje
SRC (koji se ovdje razmatra) na primjenjuje takvu koncepciju, ve ALU
direktno usporeuje sadraj spremnika rc prema postavljenim uvjetima

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/49

Naredbe za grananje Primjeri


Naredba

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

Arhitektura i organizacija digitalnog raunala

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

Arhitektura i organizacija digitalnog raunala

III/51

Formalan opis (S)RISCa


Register Transfer Notation (RTN)

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/52

26

RTN Register Transfer Notation


Neformalan opis daje vie intuitivni osjeaj kako procesor radi
i to treba raditi ali je neprecizan, nepotpun, a ponekad i
zbunjujui
Za formalan, odnosno precizan opis rada procesora koristi se
razliiti jezici ovdje e se koristiti RTN (engl. Register
Transfer Notation).
Svrha uvoenja formalnog jezika je jednostavan i
jednoznaan opis funkcioniranja procesora.
Ovakav pristup opravdan je iz sljedeih razloga:
osnovno djelovanje CPU-a je prijenos podataka (naredbi i
operanada) meu spremnicima,
RTN omoguava jednostavan i jednoznaan opis strukture
procesora i njegovo djelovanje,
RTN omoguava direktno preslikavanje funkcija u
sklopovlje (engl. hardware).

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/53

RTN Register Transfer Notation


U usporedbi sa strojnim jezikom, RTN se moe smatrati kao
metajezik ili jezik koji se koristi da opie jezike.
RTN sprjeava greke zbog pogrene interpretacije
neformalnog opisa raunala te greke u projektiranju i
implementaciji.
RTN program prevodilac moe automatski generirati C
simulator za procesor koji se projektira ili pak imati izlaz za
ureaj za izradu maski za integrirane sklopove.
SRC opisan
RTNom

RTN prevodilac
Generirani procesor

SRC program
i podaci

Ak.god. 2011/2012

SRC interpreter
ili simulator

izlazni
podaci

Arhitektura i organizacija digitalnog raunala

III/54

27

Opis RTN naredbi

oznaka

znaenje

prijenos izmeu spremnika te spremnika i memorije

[]

indeks rijei, odabire opseg spremnika ili memorijskih lokacija

<>

indeks bita, odabire bit ili niz bita rijei

n..m

opseg bitova, od lijeva na desno odabire niz bitova rijei

uvjet, ako je uvjet zadovoljen lijeva strana odreuje vrijednost

:=

definicija, izraz koji se pridruuje varijabli

konkatencija, bitovi s lijeva se povezuju s bitovima s desna

separator operacija koje se mogu izvoditi paralelno

separator operacija koje se moraju izvoditi sekvencijalno

{}

informacija o prethodnoj operaciji, tekstualni opis

()

grupiranje operacija

=<>

operatori usporedbe

+-*/

aritmetiki operatori

logiki operatori, I, ILI, NE, EXOR, JEDNAKO

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/55

RTN opis SRC-a

Stanje procesora (Processor State) predstavlja stanje svih spremnika


procesora
PC<31..0>: 32-bitovni spremnik nazvan PC (Program Counter),
IR<31..0>: 32-bitovni spremnik nazvan IR (Instruction Register),
Run: 1-bit indikator radi/stani (run/halt),
Strt: Start signal,
R[0..31]<31..0> 32 32-bitovna spremnika ope namjene.

Memorija je polje istovrsnih spremnika koji se mogu adresirati (pristupati)


po pojedinim oktetima. Kod SRC-a je odreeno da se naredbama i
podacima pristupa samo kao 32 bitovnoj rijei.
Mem[0.. 232-1]<7..0>: 232 adresabilnih okteta glavne memorije.
M[x]<31..0>:=Mem[x]# Mem[x+1]# Mem[x+2]# Mem[x+3]:
Memorijska rije se definira kao etiri uzastopna memorijska okteta.

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/56

28

RTN opis naredbi

Naredbe za pristup memoriji

ld (:=op = 1) R[ra] M[disp]: upii u spremnik s apsolutne adrese


ldr (:=op = 2) R[ra] M[rel]: upii u spremnik s relativne adrese
st (:=op = 3) M[disp] R[ra]: upii na apsolutnu adresu iz spremnika
str (:=op = 4) M[rel] R[ra]: upii na relativnu adresu iz spremnika
la (:=op = 5) R[ra] disp: upii u spremnik apsolutnu adresu
lar (:=op = 6) R[ra] rel: upii u spremnik relativnu adresu

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/57

RTN opis naredbi

Naredbe za kontrolu programskog toka (naredbe za grananje)

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

Arhitektura i organizacija digitalnog raunala

III/58

29

RTN opis naredbi

Aritmetike i logike naredbe

add (:= op = 12) R[ra] R[rb] + R[rc]:


addi (:= op = 13) R[ra] R[rb] + c2<16..0> {proirenje predznaka}
sub (:= op = 14) R[ra] R[rb] - R[rc]:
neg (:= op = 15) R[ra] -R[rc]:

and (:= op = 20) R[ra] R[rb] R[rc]:


andi (:= op = 21) R[ra] R[rb] c2<16..0> {proirenje predznaka}
or (:= op = 22) R[ra] R[rb] R[rc]:
ori (:= op = 23) R[ra] R[rb] c2<16..0> {proirenje predznaka}
not (:= op = 23) R[ra] R[rc]

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/59

RTN opis naredbi

Naredbe za posmak i posebne naredbe

n := ((c3<4..0> = 0 R[rc]<4..0>: broj mjesta posmaka je sastavni dio spremnika


(c3<4..0> 0 c3<4..0>)); broj mjesta posmaka je sastavni dio naredbe
shr (:= op = 26) R[ra]<31..0> (n @ 0) # (R[rb]<31..n>):
shra (:= op = 27) R[ra]<31..0> (n @ R[rb]<31>) # (R[rb]<31..n>):
shl (:= op = 28) R[ra]<31..0> (R[rb]<31-n..0>) # (n @ 0):
shc (:= op = 29) R[ra]<31..0> (R[rb]<31-n..0>) # (R[rb]<31..32-n>):

nop (:= op = 0) : ne izvrava nikakvu aktivnost


stop (:= op = 31) Run 0; zaustavi rad procesora

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/60

30

Opis adresnih modova pomou RTN-a

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]

Konst. u programskoj memoriji

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

Arhitektura i organizacija digitalnog raunala

III/61

Pitanja i zadaci za ponavljanje

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/62

31

Pitanja i zadaci za ponavljanje

1) Objasnite razlike izmeu RISC i CISC procesora s obzirom na:


format naredbi,
trajanje izvoenja naredbi,
broj strojnih instrukcija,
pristup memoriji,
modove adresiranja.
2) Navedite glavne karakteristike jednostavnog RISC procesora (SRISC)
opisanog na predavanju: irina podatkovne sabirnice, irina adresne
sabirnice, broj spremnika ope namjene (i njihova veliina), pristup
memoriji, organizacija i kapacitet memorije, te nabrojite sve naredbe
koje moe izvriti navedeni procesor.
3) Objasnite ADDI naredbu, njen format i ogranienja.
4) Navedite osnovne razloge uvoenja formalnog (preciznog) opisa rada
procesora i njegovih naredbi (npr. koritenjem RTN notacije).

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/63

Pitanja i zadaci za ponavljanje

5) Sljedei programski odsjeak napisan u asembleru (SRISC) prikaite u


strojnom obliku:
ld r6,24
ld r7,28
add r5,r6,r7
st r5,32

Ak.god. 2011/2012

Arhitektura i organizacija digitalnog raunala

III/64

32

Pitanja i zadaci za ponavljanje

Programski jezik vie razine:


a=b+c;

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

Arhitektura i organizacija digitalnog raunala

III/65

33

You might also like