Anda di halaman 1dari 22

Predmet: Arhitektura raunara

Predava: Prof. Violeta Tomaevi

Podaci i instrukcije

OSNOVNI POJMOVI

TIPOVI PODATAKA

FORMATI INSTRUKCIJA
Osnovni pojmovi

Arhitektura raunara obuhvata sve ono to treba znati o raunaru


da bi za njega mogli da se piu i na njemu izvravaju programi. To
je skup atributa sistema koji je vidljiv za programera.

Organizacija raunara podrazumeva razliite naine realizacije


raunara. To su atributi transparentni za programera.
Atrubuti

Arhitekture: Organizacije:

tipovi podataka kontrolni signali


formati instrukcija veze raunara sa periferijama
set instrukcija koriene memorijske tehnologije
naini adresiranja tehnike realizacije upravljakih jedinica
programski dostupni registri tehnike realizacije ke memorija...
I/O mehanizam
mehanizam prekida...
Tipovi podataka (1)
neoznaeni celi brojevi
ceo broj sa znakom
drugi komplement
pokretni zarez
alfanumeriki nizovi...

isti binarni niz moe da predstavlja podatke razliitih tipova

Primer: 100011
neoznaeni ceo broj 35
ceo broj sa znakom -3
drugi komplement -29
Tipovi podataka (2)
podaci bilo kog tipa mogu imati razliite duine: 8, 16, 32, 64 bita
ako je duina podatka vea od duine mem.lok. podatak se smeta u
vie sukcesivnih lokacija. U ovom sluaju, kao adresa podatka koristi
se adresa najnie lokacije

Podatak: Memorija (duina lokacije 1B):


Bajt4 Bajt3 Bajt2 Bajt1 50 Bajt4 50 Bajt1
51 Bajt3 51 Bajt2
52 Bajt2 52 Bajt3
53 Bajt1 53 Bajt4

big-endian little-endian

procesor mora da bude realizovan tako da kad se zada adresa 50


oita 4 bajta sa adresa 50, 51, 52 i 53
Format instrukcije

svaka instrukcija predstavlja niz bitova (0 i 1) odreene duine

format instrukcije definie znaenje bitova u instrukciji

formatom instrukcije se specificiraju:


operacija koju treba izvriti
tip podatka nad kojima se izvrava operacija
izvorini i odredini operandi
Duina instrukcije
duina formata instrukcije zavisi od:
veliine memorije
memorijske organizacije
magistrale
sloenosti i brzine procesora

odluka o duini instrukcije utie na fleksibilnost raunara sa stanovita


programera

pravi se trade-off izmeu elje programera za monim instrukcijama i


prostora potrebnog za njihov smetaj

programer eli raznovrsne, mone istrukcije da bi mu programi bili krai


Operacija i tip operanda
operacija predstavlja neku od operacija iz skupa instrukcija koje
procesor moe da izvri
tip operanda odreuje iz koliko susednih memorijskih lokacija treba
proitati operand i kako ga interpretirati
informacija o operaciji i tipu podatka specificira se poljem u formatu
instrukcije koje se naziva kod operacije
ako se ista operacija primenjuje nad razliitim tipovima podataka, mora
se koristiti vei broj kodova operacija

Primer:
Ako procesor podrava neoznaene cele brojeve duine 8 i 16 bitova i
brojeve u pokretnom zarezu duine 32 i 64 bita, za operaciju mnoenja
potrebno je 4 koda operacije.
Izvorini i odredini operandi
u formatu instrukcije moe da postoji 0, 1, 2 ili 3 polja kojima se
specificiraju operandi

prema broju polja za operande, procesori mogu biti troadresni,


dvoadresni, jednoadresni i nulaadresni

procesor mora da zna kako da interpretira sva polja u formatu


instrukcije

kod procesora kod kojih u formatu instrukcije nisu eksplicitno


definisana sva tri adresna polja (dvoadresni, jednoadresni,
nulaadresni), implicitno se zna gde su nedostajui operandi

procesor jednog tipa ne mora da koristi samo instrukcije tog tipa, ve


moe i instrukcije sa manje operanada
Troadresni format (1)
Troadresna instrukcija: KO A1 A2 A3

Interpretacija formata:
2 adresna polja predstavljaju adrese izvorinih operanada
1 adresno polje predstavlja adresu odredinog operanda

Primer: mogue su razliite interpretacije


procesor P: A1 i A2 su adrese izvorinih, a A3 adresa odredinog operanda
procesor Q: A1 je adresa odredinog, a A2 i A3 adrese izvorinih operanada

dobra strana formata: jednom instrukcijom se izraunava izraz

loa strana formata: velika duina instrukcije


Troadresni format (2)
Procena duine troadresne instrukcije:
za adresiranje jedne lokacije operativne memorije kapaciteta nekoliko
giga lokacija, potrebno je oko 30 bitova (1G = 109 230)
tri adresna polja u formatu instrukcije zahtevaju oko 90 bitova
pretpostavimo da je polje sa kodom operacije duine 8 bitova
duina troadresnog formata instrukcije je oko 100 bitova
ako se u memorijsku lokaciju moe smestiti 1 bajt, za smetaj jedne
instrukcije u memoriji mora se utroiti bar 12 lokacija
Problemi:
za smetaj programa potreban je jako veliki prostor
mnogo vremena se gubi na obraanja M (12 puta u primeru) dok se ne
proita instrukcija, to usporava izvravanje
Dvoadresni format
Dvoadresna instrukcija: KO A1 A2

Interpretacija formata:

oba adresna polja predstavljaju adrese izvorinih operanada


odredina lokacija se ne definie eksplicitno, ve se jedna od izvorinih
lokacija koristi i kao odredina (za svaki procesor se posebno definie
koja je to lokacija)

dobra strana formata: instrukcija je kraa

loa strana formata: potrebno je vie instrukcija za izraunavanje


izraza
Jednoadresni format
Jednoadresna instrukcija: KO A1

Interpretacija formata:

adresno polje predstavlja adresu izvorinog operanda


u procesoru postoji poseban registar akumulator koji implicitno slui
za smetaj jednog izvorinog i jednog odredinog operanda

dobra strana formata: instrukcija je kratka

loa strana formata: potrebno je jo vie instrukcija za izraunavanje


izraza
Nulaadresni format (1)
Nulaadresna instrukcija: KO

Interpretacija formata:

nema eksplicitno definisanih izvorinih i odredinih operanada


kod ovih procesora, vrh steka je implicitno izvorite za oba operanda i
implicitno odredite za rezultat

dobra strana formata: najkraa instrukcija

loa strana formata: potrebno je najvie instrukcija za izraunavanje


izraza (u odnosu na ostale formate)
Nulaadresni format (2)
Nulaadresna instrukcija: KO

KO A1

Nulaadresni procesori imaju dve jednoadresne instrukcije (izuzeci):

PUSH kojom se sadraj neke lokacije smeta na vrh steka

POP kojom se sadraj steka smeta u neku lokaciju


Operacija sabiranja (1)
A+BC

Zadatak: izraunati dati izraz u procesoru sa troadresnim instrukcijama

Troadresna instrukcija: ADD A B C

kod operacije adresa odredine lokacije


sabiranja
adrese izvorinih lokacija

Izvravanje instrukcije: sadraji memorijskih lokacija ije su adrese A i B


sabraju se i rezultat se smeta u memorijsku lokaciju ija je adresa C
Operacija sabiranja (2)
A+BC

Zadatak: izraunati dati izraz u procesoru sa dvoadresnim instrukcijama

kod operacije
prenosa

Dvoadresne instrukcije: MOV C A


ADD C B adrese izvorinih lokacija

kod operacije adresa odredine lokacije


sabiranja

Izvravanje instrukcije: iz lokacije sa adresom A ita se operand i smeta u


lokaciju sa adresom C; zatim se iz lokacija sa adresama C i B itaju
sadraji i sabiraju, a rezultat smeta u lokaciju sa adresom C
Operacija sabiranja (3)
A+BC

Zadatak: izraunati dati izraz u procesoru sa jednoadresnim instrukcijama

Jednoadresne instrukcije:

KO prenosa u akumulator LOAD A


KO sabiranja ADD B adrese operanada
KO prenosa iz akumulatora STORE C

Izvravanje instrukcije: iz lokacije sa adresom A ita se operand i smeta u


akumulator; zatim se ita sadraj iz lokacije sa adresom B i sabira sa
sadrajem akumulatora, a zbir smeta u akumulator; na kraju se sadraj
akumulatora prenosi u lokaciju sa adresom C
Operacija sabiranja (4)
A+BC
Zadatak: izraunati dati izraz u procesoru sa nulaadresnim instrukcijama

Nulaadresne instrukcije:

KO prenosa na vrh steka PUSH A


PUSH B
KO sabiranja ADD adrese operanada
KO prenosa sa vrha steka POP C

Izvravanje instrukcije: iz lokacije sa adresom A ita se operand i smeta


na vrh steka; iz lokacije sa adresom B ita se sadraj i smeta na vrh
steka; zatim se itaju dva operanda sa vrha steka, sabiraju i rezultat
stavlja na vrh steka; na kraju, sadraj sa vrha steka se upisuje u lokaciju
sa adresom C
Operacija sabiranja (5)

Zakljuci:

nakon izraunavanja izraza, sadraji na memorijskim


lokacijama sa adresama A, B i C su isti bez obzira na
korienu varijantu procesora

u svim varijantama se na drugaiji nain formira traeni zbir u


lokaciji sa adresom C

varijante imaju razliite memorijske i vremenske zahteve


Mogue lokacije operanada
Operandi mogu biti:

smeteni u memorijskim lokacijama


smeteni u procesorskim registrima
neposredno zadati unutar instrukcije

Prema mestu operanda, postoje tri vrste arhitektura:

memorija memorija
memorija registar
registar registar
Vrste arhitektura
Memorija memorija:
svi operandi sa kojima se radi (izvorini i odredini) su iskljuivo u
memoriji
koriste se sve vrste formata

Memorija registar:
jedan izvorini operand je uvek registar, drugi izvorini operand je
memorija, a odredite ili registar ili memorija
postoji obino dvoadresni format ove arhitekture

Registar registar:
svi operandi su iskljuivo u registrima, a memorijskim lokacijama se
iskljuivo pristupa preko LOAD i STORE
postoji obino troadresni format ove arhitekture