Professional Documents
Culture Documents
57 : 2 = 28
1
28 : 2 = 14
0
14 : 2 = 7
0
7:2= 3
1
3:2= 1
1
1:2= 0
1
0101
Komplement do baze-1
(jedinini komplement)
Komplement do baze
(dvojni komplement)
1111
+ 0101
1010
+ 0001
1010
Dokaz da je dobiveni broj - 5
1 0 1 1 (- 5)
+ 0 1 0 1 (+5)
1011
Operacija oduzimanja 7 - 5
0 1 1 1 ( 7)
+ 1 0 1 1 (-5)
0000
Preljev 1
0010
Preljev 1
U registru s 3 bita, ako je prvi bit predznak mogu se prikazati sljedei brojevi:
Dekadski broj
0
1
2
3
Binarni broj
000
001
010
011
-4
-3
-2
-1
100
101
110
111
001
1
110
6
111
7
000
0
100
4
001
1
0111
7
1011
B
0011
3
1110
E
Primjer: pretvaranje decimalnih brojeva koji se ne mogu prikazati konanim brojem binarnih
frakcija
Treba uoiti da se konani decimalni razlomak prikazuje kao beskonani periodiki binarni
razlomak.
Binarni broj se mnoi s potencijama baze 2 tako da se binarna toka pomakne odgovarajui broj
mjesta desno ili lijevo, zavisno da li je predznak potencije pozitivan ili negativan.
Primjer: 1 . 1 1 * 22 = 1 1 . 1
31
30
24
23
eksponent
P
Karakteristika
Mantisa
mantisa
Rezultat:
0 10000001
01110000000000000000000
ili
0100
4
Primjeri:
2 = 102 * 20 = 12 * 21 = 0100 0000 0000 0000 ... 0000 0000 = 4000 0000 hex
P = 0, K = 1 + 127 = 128 (10000000), M = (1.) 000 0000 ... 0000 0000
-2 = -102 * 20 = -12 * 21 = 1100 0000 0000 0000 ... 0000 0000 = C000 0000 hex
Jednako kao 2, ali P = 1
4 = 1002 * 20 = 12 * 22 = 0100 0000 1000 0000 ... 0000 0000 = 4080 0000 hex
Jednaka mantisa, BE = 2, K = 2 + 127 = 129 (10000001)
6 = 1102 * 20 = 1.12 * 22 = 0100 0000 1100 0000 ... 0000 0000 = 40C0 0000 hex
1 = 12 * 20 = 0011 1111 1000 0000 ... 0000 0000 = 3F80 0000 hex
K = 0 + 127 (01111111).
.75 = 0.112 * 20 = 1.12 * 2-1 = 0011 1111 0100 0000 ... 0000 0000 = 3F40 0000 hex
Poseban sluaj - 0:
-3.4*1038
-1.4*10-45
1.4*10-45
Numerike pogreke
Nemogunost koritenja svih bita kod raunanja
Primjer: 0.000110 + 0.990010
0.000110 :
(1.)101000110110111000101112 * 2-14
0.990010 :
(1.)111110101110000101000112 * 2-1
Kod zbrajanje, binarne toke moraju biti poravnate:
.000000000000011010001101 * 20 Samo 11 od 24 bita!
+.111111010111000010100011 * 20
.111111010111011100110000 * 20 = 0,990099906921410
3.4*1038
62
52
51
eksponent
P
Karakteristika
Mantisa
mantisa
Raspon:
K [0,2047].
BE = K - 1023
BE [-1022,1023]
Specijalni sluajevi: K=0 i K=2047
Kada je K = 0 i svi bitovi mantise nula radi se o broju nula
Kada je K = 0 i postoje binarne frakcije u mantisi tada je to denormalizirani broj, tj. vie ne postoji
skriveni bit
Kada je K = 2047 i svi bitovi mantise nula radi se o prikazu + ili - ovisno o predznaku P
Kada je K = 2047 i postoje binarne frakcije u mantisi tada se ne radi o prikazu broja (Nan)
Najmanji pozitivni broj razliit od nule koji se moe prikazati je:
0.0000 ...0012 * 2-1022 to je 4.9406 * 10-324
a najvei je:
1.1111.....1111112 * 21023 21024 = 1.797693134862316*10308
Tonost: 53 binarne znamenke
253 10x 53 log 2 x log 10 x 53 log 2 = 15.95458977019
tj. priblino 16 prvih vaeih tonih znamenki.
Postoji jo i long double, meutim, njegova veliina ovisi o platformi, pa se tako mogu nai
implementacije u kojima je njegova veliina 64,80,96 ili 128 bita. ANSI standard propisuje da
nije manji od double broja. Primjer raspodjele ako je njegova veliina 80 bita:
long double
80 bita
Karakteristika: 15 bita
Binarni eksponent: Karakteristika 16383
+
102
100
101
Adrese su numeriki podaci koje je mogue prikazati u binarnom obliku. Operaciju je mogue
proizvoljno kodirati kao u primjeru:
Naredba
Simbol
zbrajanje
oduzimanje
mnoenje
dijeljenje
ostatak dijeljenja
I nad bitovima
ILI nad bitovima
EXOR nad bitovima
NE nad bitovima
itd
+
*
/
%
AND
OR
EXOR
NOT
Operacijski Operacijski
kod
kod binarno
0
0000
1
0001
2
0010
3
0011
4
0100
5
0101
6
0110
7
0111
8
1000
Na ovaj nain sve informacije mogu se zapisati u binarnom obliku. Neka raunalo moe
adresirati 4Gbyta memorije slijedi da je za prikaz adresa potrebno 32 bita, a neka ima do 15
operacija pa je njih mogue prikazati s 4 bita. Sada je naredbu mogue prikazati na nain:
Operacijski kod
4 bita
Adresa rezultata
32 bita
Adresa operanda 1
32 bita
100 bita
Adresa operanda 2
32 bita
Definiranje rasporeda polja u naredbi i njihovo znaenje naziva se format naredbe. Ovakva
naredba zauzima 12 okteta i 4 bita. U praksi je dobro da naredba zauizima cijeli broj okteta, u
ovom primjeru 13, pa se polje operacijskog koda proiruje za dodatna etiri bita i naredba
sada ima sljedei format:
Op.
kod
8 bita
Adresa rezultata
Adresa operanda 1
Adresa operanda 2
32 bita
32 bita
32 bita
104 bita
Ovim je definiran prikaz varijabli i naredbi u memoriji raunala. Slijedi opis izvoenja
naredbe.
Op. kod +
0
Adr, op1. x
100
Adr, op2. y
104
rez = rez z;
Op. kod 1
Adr, op2. z
108
Slika 1.3 Poetno stanje raunala prije nego se pokrene izvoenje naredbi.
Izvoenje programa poinje od adrese 0 koja je zapisana u programskom brojilu PCu. Sa
adrese 0 13 okteta se prebaci u spremnik naredbe IR te se programsko brojilo PC inkrementira
za 13 da pokazuje na sljedeu naredbu.
Ukoliko se prebacuje oktet po oktet tada ova faza traje 13 taktova.
MEMORIJA
0
112
100
104
PROCESOR
13
PC
IR
12
13
Op.
code
adr.
rez
adr.
op1
112
100
adr.
op2
112
112
108
104
25
100
20
ALU
103
104
30
107
108
10
111
112
115
x
y
z
rez
112
100
PROCESOR
12
13
13
PC
IR
104
Op.
code
adr.
rez
112
adr.
op1
100
adr.
op2
112
112
108
104
25
20
20
ALU
30
10
0
100
103
104
107
108
111
112
115
x
y
z
rez
Slijedi dohvat drugog operanda. Adresa operanda (104) upisana je u etvrtom polju spremnika
naredbe IR. S te adrese operand se prebacuje u privremeni spremnik procesora. Za dohvat
etiri okteta potrebno je etiri takta. Ova faza prikazana je sljedeom slikom:
MEMORIJA
0
112
100
104
PROCESOR
13
PC
IR
12
13
Op.
code
adr.
rez
adr.
op1
112
100
adr.
op2
112
112
108
104
25
20
30
100
20
ALU
103
104
30
107
108
10
111
112
115
x
y
z
rez
112
100
PROCESOR
12
13
13
PC
IR
104
Op.
code
adr.
rez
adr.
op1
112
100
adr.
op2
112
112
108
104
25
20
30
20
ALU
50
30
10
0
100
103
104
107
108
111
112
115
x
y
z
rez
112
100
PROCESOR
104
12
13
13
PC
Op.
code
adr.
rez
112
IR
adr.
op1
100
adr.
op2
112
112
108
104
25
20
30
20
ALU
30
10
50
50
100
103
104
107
108
111
112
115
z
rez
faza
dohvat naredbe
izvoenje naredbe
13
1
4
4
1
4
27
Iz tablice moe se zakljuiti da cijeli ciklus relativno dugo traje, ukupno 27 taktova. Takoer.
veliki dio vremena troi se na dohvat naredbe emu je razlog relativno velika naredba 13
okteta.
Slijedi izvoenje druge naredbe. Ciklus dohvata naredbe identian je kao i za prvu naredbu.
Slijedi dekodiranje naredbe i dohvat operanada, izvoenje operacije te pohrana rezultata.
Cijeli ciklus prikazan je na sljedeoj slici:
Cilj je prilikom projektiranja raunala dobiti raunalo koje je na istoj tehnolokoj osnovi:
bre
bolje koristi resurse raunala (memoriju i spremnike procesora)
PROCESOR
PC
12
16
IR
op1/rez
op2
Acc
20
ALU
30
10
0
100
103
104
107
108
111
112
115
x
y
z
rez
Adresa rezultata
32 bita
Naredba je sada samo 40 bita odnosno 5 okteta. Na ovaj nain napravljena je uteda u
koritenju memorije, a i potrebno je znatno krae vrijeme dohvata naredbe. Takoer, nije
potrebno dohvaati jedan operand te spremati rezultat natrag u memoriju. Sukladno
navedenome trajanje izvoenja naredbe iznosilo bi:
trajanje
(takt)
faza
dohvat naredbe
izvoenje naredbe
5
1
4
1
11
naredba
load 100
zbroji 104
oduzmi 108
store 112
opis
sadraj x adr. 100 u akumulator, acc = 30
acc = acc + y , acc = 50
acc = acc - z , acc = 40
sadraj acc na adresu z (112), z = 40
trajanje
UKUPNO
10
11
11
10
42
Na procesoru koji je temeljen na naredbama s tri adrese izvoenje ovog primjera trajalo je
2*27 = 54 takta, a na procesoru temeljenom na akumulatoru 42. Slijedom navedenog ubrzanje
koje se dobiva novim konceptom je svega 54/42 odnosno oko 25%. Slino razmatranje vrijedi
i za koritenje memorije budui da procesor s akumulatorom zahtjeva etiri naredbe te
program zauzima 20 okteta usporedbi s 26 okteta kod prvobitne varijante (30% utede).
Navedena razmatranja vode zakljuku da je dobit procesora s akumulatorom to vea ukoliko
su kumulativni izrazi vei, dok ukoliko nema kumulativnog raunanja zbog potrebe uestalog
donosa operanda u akumulator i pohrane rezultata u memoriju ovakav procesor moe iskazati
ak i loije performanse.
Izvoenje naredbi na procesoru s akumulatorom prikazano je sljedeom slikom:
MEMORIJA
MEMORIJA
0
load 100
load 100
4
5
PROCESOR
5
IR
9
10
PC
4
5
PROCESOR
zbroji 104
14
15
load 100
op1/rez
Acc
IR
store 112
19
op2
20
ALU
30
10
0
100
103
104
107
108
111
112
115
9
10
PC
oduzmi 108
zbroji 104
oduzmi 108
14
15
load 100
op1/rez
Acc
20
store 112
19
op2
20
ALU
30
10
rez
MEMORIJA
IR
9
10
op1/rez
Acc
20
14
15
IR
store 112
19
op2
20
ALU
30
10
0
100
103
104
107
108
111
112
115
9
10
oduzmi 108
14
15
zbroji 104
op1/rez
Acc
20
store 112
19
op2
30
20
ALU
30
10
rez
MEMORIJA
4
5
IR
op1/rez
Acc
50
14
15
IR
store 112
19
20
30
10
0
100
103
104
107
108
111
112
115
15
rez
9
10
oduzmi 108
oduzmi 108
op1/rez
Acc
50
30
ALU
115
zbroji 104
10
PC
oduzmi 108
op2
111
112
4
5
PROCESOR
9
10
zbroji 104
107
108
load 100
zbroji 104
10
103
104
load 100
PC
100
MEMORIJA
0
PROCESOR
rez
zbroji 104
10
PC
oduzmi 108
zbroji 104
115
4
5
PROCESOR
zbroji 104
111
112
load 100
4
5
PC
107
108
load 100
10
103
104
MEMORIJA
0
PROCESOR
100
14
15
store 112
19
op2
30
ALU
20
30
10
rez
100
103
104
107
108
111
112
115
x
y
z
rez
MEMORIJA
MEMORIJA
0
load 100
load 100
4
5
PROCESOR
IR
9
10
15
PC
4
5
PROCESOR
zbroji 104
oduzmi 108
op1/rez
Acc
50
14
15
IR
store 112
19
op2
20
ALU
30
10
0
100
103
104
107
108
111
112
115
oduzmi 108
14
15
oduzmi 108
op1/rez
Acc
40
10
9
10
15
PC
oduzmi 108
zbroji 104
store 112
19
op2
10
20
ALU
30
10
rez
MEMORIJA
100
103
104
107
108
111
112
115
IR
9
10
14
15
IR
store 112
19
op2
ALU
20
30
10
0
100
103
104
107
108
111
112
115
9
10
oduzmi 108
14
15
store 112
op1/rez
Acc
40
10
zbroji 104
20
PC
oduzmi 108
store 112
op1/rez
Acc
40
4
5
PROCESOR
zbroji 104
15
rez
load 100
4
5
PC
load 100
20
MEMORIJA
0
PROCESOR
store 112
19
op2
10
ALU
20
30
10
rez
40
100
103
104
107
108
111
112
Procesor s akumulatorom
naredbe
trajanje
load y
10
zbroji z
11
pomnoi x
11
store rez
10
load b
10
zbroji c
11
pomnoi a
11
zbroji rez
11
store rez
10
130
95
115
x
y
z
rez
PROCESOR
PC
12
IR
16
R0
R1
R2
R3
20
ALU
30
10
R31
100
103
104
107
108
111
112
115
x
y
z
rez
Adresa spremnika
Adresa spremnika
rezultata
operanda 1
5 bita
5 bita
20 bita
Adresa spremnika
operanda 2
5 bita
Ovakav koncept procesora ima jo krau naredbu koja u osnovi zauzima svega tri okteta.
Izvoenje primjera kojim su opisani principi rada prethodna dva modela procesora na
procesoru sa spremnicima ope namjene prikazan je sljedeim slikama:
faza
dohvat naredbe
izvoenje naredbe
3
1
1
1
6
Primjer:
int
Op. kod +
0
Adr, op1. x
100
Adr, op2. y
104
Op. kod +
0
operand 2 104
104
Postavlja se pitanje kako razlikovati koritenje drugog operanda, odnosno u prvoj naredbi
vrijednost operanda se nalazi na adresi 104, a u drugoj je operand vrijednost 104 i zapisana je
direktno u naredbi. Ovo je mogue jedino ukoliko razlikujemo ova dva tipa zbrajanja. To
znai da e operacija u zavisnosti o kombinacije operanada imati razliiti operacijski kod.
Naredba
0p1
zbrajanje
oduzimanje
mnoenje
dijeljenje
ostatak dijeljenja
I nad bitovima
ILI nad bitovima
EXOR nad bitovima
NE nad bitovima
..
zbrajanje
oduzimanje
mnoenje
dijeljenje
..
op2
var
var
var
var
var
var
var
var
var
var
var
var
var
var
var
var
var
var
var
var
var
var
konst
konst
konst
konst
Operacijski Operacijski
kod
kod binarno
0
0000 0000
1
0000 0001
2
0000 0010
3
0000 0011
4
0000 0100
5
0000 0101
6
0000 0110
7
0000 0111
8
0000 1000
16
17
18
19
0001 0000
0001 0001
0001 0010
0001 0011
Op. kod +
0
Adr, op1. x
100
Adr, op2. y
104
Op. kod +
16
operand 2 104
104
pomak
baza = 100
+
indeks x veliina
elementa
100 = podaci
10
20
5
7
-10
35
35
podaci[0]
podaci[1]
108
podaci[2]
112
podaci[3]
116
podaci[4]
104
132
136
podaci[8]
podaci[9]
N-1
Slika 1.17 Nain zapisa polja u memoriji kao i pristup lanu polja
Za pristup lanovima polja, a slino vrijedi za strukturu dobro je uvesti zasebni spremnik u
koji e se zapisati baza, a pomak moe biti konstanta koja se zapie u okviru naredbe.
MEMORIJA
0
1
PROCESOR
Op.
code
rez
...
...
op1
...
100 = podaci
op2
16
pomak
+
baza
adresa 116
10
20
5
7
-10
100
35
35
podaci[0]
podaci[1]
108
podaci[2]
112
podaci[3]
116
podaci[4]
104
132
136
podaci[8]
podaci[9]
N-1
Slika 1.19
Slika 1.20
Indirektan pristup operandu ili rezultatu bilo posredno preko memorijske adrese ili spremnika
(pokaziva) naziva se indirektno adresiranje (indirect addressing).
Slika 1.21
Slika 1.22
Pristup operandima ili rezultatu raunajui adresu kao baza + pomak, Slika 1.18, naziva se
bazno adresiranje (base addressing). Koristi se za pristup sloenim tipova podataka.
Nakon svih ovih razmatranja za uoiti je da za svaku operaciju su mogue brojne kombinacije
pristupa operandima i rezultatu (adresnih modova) to moe rezultirati velikim brojem
operacija. Temeljem navedenoga prisutna su dva razliita koncepta raunala.
Prvi koncept je podrati to vei broj adresnih modova to rezultira velikom brojem naredbi.
Ovakav koncept naziva se raunalo s sloenim skupom naredbi (Complex Instruction Set
Computer) skr. CISC.
Suprotan koncept je podrati samo ogranieni broj adresnih modova to rezultira malim
brojem naredbi. Ovakav koncept naziva se raunalo s malim skupom naredbi (Reduced
Instruction Set Computer) skr. RISC.