AOR Pismeni Skripta

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 32

Arhitektura i organizacija racunara

Originalna skripta: Igor Dordevi


c 14290
LATEX i dopuna: Lazar Ljubenovi
c 14722
verzija 0.9

Zadatak 1 Za masinu tipa napuni-zapamti (load-store) za koju je smesa naredbi dobijena merenjem prikazanom u tabeli, razvijamo optimizirajuci kompilator. Kompilator eliminise 50% ALU
instrukcija dok se broj ostalih instrukcija ne smanjuje. Ako je perioda taktnog signala 2 ns, uporediti vremena izvrsenja i MIPS vrednosti neoptimizovanog i optimizovanog koda. Da li se poredenja
kodova po vremenu izvrsenja i MIPS-u slazu? Objasniti.
tip instrukcije
ALU
LOAD
STORE
grananje

ucestanost
43%
21%
12%
24%

broj ciklusa takta


1
2
2
2

Resenje.P
Kod neoptimizovane (stare) varijante masine, broj ciklusa po instrukciji racunamo kao
CPIs = (ucestanost broj ciklusa takta) = 0.43 1 + 0.21 2 + 0.12 2 + 0.24 2 = 1.57. Odavde
imamo da vreme izvrsenja starog programa iznosi
Ts = Ns CPIs TC = Ns 1.57 2 ns = 3.14 Ns ns
i u tom slucaju je
MIPSs =

Ns
Ns
=
= 318.47,
Ts 106
3.14 Ns 109 106

pri cemu je NS ukupan broj instrukcija koji se izvrsava u programu, u neoptimizovanoj varijanti,
TC = 2 ns je trajanje ciklusa takta.
Nakon sto se obavi opisana optimizacija, dobija se novi procesor. Posto on ima 50% manje
ALU instrukcija, novi broj instrukcija dobijamo na sledeci nacin:
NN = NS 0.5 0.43 NS = 0.785 NS .
| {z }
broj ALU
instrukcija

Treba utvrditi koji procenat od novog broja instrukcija (NN ) svaka od instrukcija cini ponaosob.
To racunamo kao kolicnik novog broja tih instrukcija (menja se samo za ALU jer je samo kod
njih ucinjena optimizacija) i ukupnog broja novih instrukcija, odnosno:
ALU :

0.5 0.43 NS
0.5 0.43 NS
=
0.27 = 27%,
NN
0.785 NS
1

LOAD:

0.21 NS
0.12 NS
27%, STORE:
15%;
0.785 NS
0.785 NS
0.24 NS
grananje :
31%.
0.785 NS

Primenom iste formule kao kod neoptimizovane (stare) varijante, dobijamo


CPIN = 0.27 1 + 0.27 2 + 0.15 2 + 0.31 2 = 1.73,
a odatle

NN
= 288.6.
TN 106
Zakljucujemo da se poredenja ne slazu. Naime, kod druge varijante vreme izvrsavanja je krace
(odnosno druga varijanta je brza) ali je i MIPS manji (obavi se manje instrukcija po sekundi,
pa je druga varijanta sporija). Kako MIPS nije pouzdana mera, na osnovu vrema izvrsenja
zakljucujemo da je druga (optimizovana) varijanta brza.
TN = NN CPIN TC = 2.72NN ns

MIPSN =

Zadatak 2 Racunar A izvrsava neki program za 10 s, racunar B izvrsava isti program za 15s. Za
koliko procenata je racunar A brzi od racunara B? Za koliko procenata je racunar B sporiji od
racunara A?
Resenje. Vremena izvrsenja datih programa na racunarima A i B oznacimo sa TA = 10 s i
TB = 15 s, respektivno, a odgovarajuce brzine sa VA i VB . Uporedimo sada razliku njihovih
brzin
a sa brzinom jednog od racunara. Iz
|VA VB |
VA
TB
=
1=
1 = 0, 5 = 50%
VB
VB
TA
dobijamo da je racunar A za 50% brzi od racunara B, a iz
VB
TA
|VB VA |

=1
=1
= 0, 3 = 33, 3%
VA
VA
TB
dobijamo da je racunar B za 33% sporiji od racunara A.
Relacija VA /VB = TA /TB dobija se iz cinjenice da je brzina obrnuto proporcionalna vremenu
izvrsenja.

Zadatak 3 Cetiri
takmicara treba da predu put duzine 80 km podeljen u dve deonice, A = 50 km
i B = 30 km. Deonicu A svi takmicari prelaze peske brzinom 5 km/h. Deonicu B prvi takmicar
nastavlja automobilnom, drugi kamionom, treci biciklom, a c etvrti pesice. Ako se bicikl krece
20 km/h, kamion 60 km/h, a automobil 120 km/h, koliko c e puta prvi takmicar stici na cilj brze
od poslednjeg takmicara?
Resenje. Posto svi takmicari deonicu A prelaze peske, za sve takmicare je vreme potrebno za
prelazak te deonice jednako
50 km
vremeA =
= 10 h.
5 km/h
Na isti nacin se racunaju vremeB za sve takmicare posebno, kako je to prikazano u sledecoj
tabeli:
2

takmicar
4.
3.
2.
1.

vremeA
10 h
10 h
10 h
10 h

vremeB
30 km
5 km/h = 6 h
30 km
20 km/h = 1, 5 h
30 km
60 km/h = 0, 5 h
30 km
120 km/h = 0, 25 h

poboljsanjeB
6
6 =1
6
1,5 = 4
6
0,5 = 12
6
0,25 = 24

poboljsanjeA+B
1
1.39
1.52
1.56

Poboljsanje na deonici B se racuna u odnosu na cetvrtog takmicara (tj. prvi odozgo u tabeli),
jer se u zadatku trazi ukupno poboljsanje u odnosu na njega.
U poslednjoj koloni je iskoriscen Amdalov zakon. PBU je ukupno poboljsanje brzine koje se
trazi, PD je poboljsani deo od ukupnog puta (ovde je to 30 km/80 km), a PBPD je poboljsanje
brzine na pobosljanom delu, tj. cetvrta kolona iz tabele. Tako se za cetvrtog takmicara dobija
PBU =

1
1 PD +

PD
PB

1
1

30
80

30/80
24

192
1.56.
123

Zadatak 4 Zahvaljujuci poboljsanjima, novi racunar obavlja neku aktivnost 10 puta brze nego
stari. Ako se ova aktivnost javlja u 40% vremena rada racunara, koliko je ukupno povecanje brzine
rada racunara?
Resenje. Zadatak se najjednostavnije resava primenom Amdalovog zakona, gde je PBPD = 10
(poboljsanje brzine u poboljsanom delu) i PD = 40% = 0.4 (poboljsani deo). Odavde je ukupno
poboljsanje
1
1
=
= 1.56.
PBU =
0.4
PD
1 0.4 +
1 PD +
10
PBPD

Zadatak 5 Pojavila se mogucnost da upetostrucimo brzinu centralnog procesora upetostrucavanjem njegove cene. Ako se CPU koristi 50% vremena, a 50% je U/I, i ako cena procesora iznosi
1/3 ukupne cene racunara, da li je ovo dobra investicija sa stanovista odnosa cena : performanse?
Resenje. Posto se procesor koristi 50% vremena, poboljsani deo iznosi PD = 50% = 0, 5,
a poboljsanje brzine na poboljsanom delu je PBPD = 5. Iz Amdalovog zakona imamo da je
ukupno poboljsanje brzine
PBU =

1
1 PD

PD
PBPD

1
1 0.5 +

0.5
5

1
1.67.
0.6

S druge strane, pocetna (stara) cena citavog racunara CS se moze predstaviti kao zbir cene
centralnog procesora CCP(S) = 13 CS i cene preostalog dela Cost(S) = 23 CS . Cena novog procesora
CN je zbir novih cena procesora i ostatka. Posto je samo procesor zamenjen, Cost(N) = Cost(S) =
2
cena pa je CCP(N) = 5 CCP(S) = 35 CS . Odavde je
3 CS , a cena procesora je upetostru
CN =

5
2
7
CS + CS = CS 2.33 CS ,
3
3
3

pa zakljucujemo da investicija nije dobra jer je povecanje brzine (1.67) manje od povecanja cene
(2.33).

Zadatak 6
(a) Razmotrimo sledece dve alternative za realizaciju uslovne naredbe grananja kod dva procesora, CPA i CPB . Kod CPA , kod uslova postavlja se naredbom poredenja iza koje mora slediti naredba grananja. Kod procesora CB poredenje je ukljuceno u naredbu grananja. Kod
oba procesora naredba uslovnog grananja traje dve periode takta, dok sve ostale naredbe
traju jednu periodu takta. Kod CPA , 20% svih izvrsavanih naredbi su naredbe uslovnog
grananja. Pridruzene naredbe poredenja c ine sledecih 20% izvrsavanih naredbi. Poznato je
i da je perioda takta CPB za 25% duza od periode takta CPA . Koji procesor je brzi?
(b) Posto je video rezultate analize iz prethodnog zadatka, projektant je ustanovio da se razlika
u periodi takta CPB i CPA moze svesti na 10%. Koji procesor je sada brzi?
Resenje.
(a) Poredi se sekvenca od dve instrukcije CMP Ri Rj; BE adr sa instrukcijom BE Ri Rj adr.
Jasno je da je
CPIA = |20%
{z 2} + |(100% {z20%) 1} = 1.2,
uslovno
grananje
(BE)

ostale naredbe
(uklju
cuju
ci CMP)

odakle se, primenom poznate formule, dobija


TA = NA CPIA TCA = 1.2NA TCA .
Sada TB treba odrediti primenom formule TB = NB CPIB TCB . Dakle, treba naci
parametre sa desne strane jednakosti.
Poznato je da je perioda takta procesora CPB za 25% duza od periode takta CPA , tj.
TCB = 1.25TCA . Procesor B umesto dve instrukcije (CMP Ri Rj i BE adr) koristi samo
jednu (BE Ri Rj adr), sto znaci da je NB = NA 20% NA = 0.8NA .
0.2NA
0.2NA
Grananje cini
=
= 25% instrukcija procesora B, pa je
NB
0.8NA
CPIB = |25%
{z 2} + |(100% {z25%) 1} = 1.25.
uslovno
grananje

ostale naredbe8

Odavde je
TB = NB CPIB TCB = 0.8NA 1.25 1.25TCA = 1.25 NA TCA .
Posto je TA < TB , zakljucujemo da je procesor A brzi (ako se meri po vremenu izvrsenja).
(b) Sa ovim izmenama je TCB = 1.1 TCA . Zato je TB0 = 0.8NA 1.25 1.1TCA = 1.1NA TCA .
Dakle, sada je TB0 < TA pa je procesor B 0 brzi.

Zadatak 7 Dat je racunar koji koristi napuni-zapamti (load-store) arhitekturu. U tabeli su date
ucestanosti pojedinih naredbi i odgovarajuca trajanja naredbi izrazena brojem perioda takta. Poznato je da 25% ALU naredbi jednokratno koristi operande iz napunjenih registara. Ovoj arhitekturi dodate su ALU naredbe koje imaju jedan izvorni operand u memoriji. Ove nove registarskomemorijske naredbe traju dva perioda takta. Ukoliko ovakva izmena povecava broj perioda kloka
za naredbe grananja na 3, ali ne utice na trajanje periode takta (ovo je uzrokovano nekim osobenostima protocne organizacije procesora), da li bi time ukupne performanse bile povecane?
naredba
ALU
LOAD
STORE
grananje

ucestanost
43%
21%
12%
24%

perioda takta
1
2
2
2

Resenje. Vrsi se sledeca optimizacija:


LD R2, adr
ADD
ADD R1, R2

R1, adr.

Jasno je da je
CPIS = 0.43 1 + (0.21 + 0.12 + 0.24) 2 = 1.57
i odatle
TS = NS CPIS TC = 1.57NS TC .
S druge strane, kako je NN = NS 0.25 0.43NS = 0.8925NS , imamo:

ALU R-R:
ALU R-M:

0.75 0.43 NS
100% = 36%
0.8925 NS
0.25 0.43 NS
100% = 12%
0.8925 NS
stari broj

LOAD:
STORE:
grananje:

(1 takt),
(2 takta),

broj izba
cenih LD

}|
{
z }| { z
0.21 NS 0.25 0.43 NS
100% = 11.5% (2 takta),
0.8925 NS
0.12NS
100% = 13.5%
(2 takta) i
0.8925 NS
0.24NS
100% = 27%
(3 takta).
0.8925 NS

Odavde sada imamo


CPIN = 0.36 1 + (0.12 + 0.115 + 0.135) 2 + 0.27 3 = 1.91
odakle je
TN = NN CPIN TC = 0.8925NS 1.91 TC = 1.7NS TC .
Dakle, posto je TS < TN , zakljucujemo da je prvo resenje bolje.

Zadatak 8 Na nekom racunaru merenjem su nadene (dinamicke) ucestanosti pojavljivanja pojedinih grupa naredbi navedenih u tablici. Kod ALU (R-M) naredbi, memorijski operand je u 75%
slucajeva izvorisni operand, a u 25% slucajeva je odredisni operand. Meren je i broj obracanja
ALU (R-M) naredbi neizmenjenim izvornim memorijskim operandima. U 25% aktivnih operanada
obracanje je jednokratno, u 55% aktivnih operanada obracanje je dvokratno i u 20% aktivnih operanada obracanje je trokratno. Ispitati mogucnost da se ALU (R-M) naredbe zamene naredbama
punjenja i pamcenja i ALU (R-R) naredbama. Da li bi time performanse bile poboljsane? Koliko?
naredba
ALU (R-R)
ALU (R-M)
LOAD
STORE
upravljanje
ostale

ucestanost
20%
28%
12%
8%
22%
10%

perioda takta
1
2
2
2
2
2

Resenje. Lako se dobija


CPIS = 0.2 1 + (1 0.2) 2 = 1.8

i odatle

TS = 1.8 NS TC .

Jasno je da je NN = NS + NLD,N + NST,N , i kako je

0.55 0.20
0.28NS = 0.12425NS
0.25
+
NLD,N = 0.75
+

2 } | {z
3 }

| {z
na 2
ide 1

na 3
ide 1

NST,N = 0.25 0.28NS = 0.07NS ,


dobijamo NN = 1.194NS . Sada imamo:

ALU:
LOAD:
STORE:
upravljanje:
ostale:

(0.2 + 0.28) NS
100%
= 40.2%
1.194 NS
0.12NS + 0.12425NS
100% = 20.43%
1.194 NS
0.08NS + 0.07NS
100%
= 12.56%
1.194 NS
0.22NS
100%
= 18.42%
1.194 NS
0.1NS
100%
= 8.38%
1.194NS

Sada je
CPIN = 0.402 1 + (1 0.402) 2 = 1.59

TN = 1.194NS 1.598TC = 1.908 NS TC .


Posto je TN > TS , u drugom slucaju imamo pogorsanje.

Zadatak 9 Instrukcije nekog racunara su osamnaestobitne, a adresna polja duzine sedam bita.
Ustanoviti da li je moguce formatima ovih duzina kodirati 15 dvoadresnih, 125 jednoadresnih i 28
bezadresnih instrukcija. Skicirati karakteristicne detalje, nacine kodiranja instrukcija i postupak
njihovog dekodiranja.
Resenje. Trazene naredbe imaju oblik prikazan na slici desno.
Kod dvoadresnih naredbi, na osnovu prethodne slike, na raspolaganju su cetiri bita.
Pomocu njih mozemo kodirati ukupno 24 = 16
KO2 OP1 OP2
dvoadresne
naredbi, pa kako je 16 > 15, moguce je isko4b
7b
7b
dirati 15 dvoadresnih naredbi.
Za jednoadresne naredbe, k
od operacije je
KO2 + KO1
OP
jednoadresne
duzine 11 b. Medutim, ne mogu se koristiti
11 b
7b
sve kombinacije bitova jedan deo kombinacija vec je iskoriscen za kodiranje dvoadresnih
KO2 + KO1 + KO0
bezadresne
naredbi. Od 11 bitova koji su na raspolaganju,
18 b
prva cetiri si koriscena za kodiranje dvoadresnih naredbi i to njih 15. Preostala je dakle
samo 16 15 = 1 neiskoriscena kombinacija ova cetiri bita. Preostala sedam bita mogu iskodirati jos 1 27 = 1 128 = 128 naredbi, sto je vece od trazenih 125, pa je i ove naredbe moguce
iskodirati.
Slicno razmatranje vazi i za bezadresne naredbe: prvih 11 bitova iskorisceno je za kodiranje
125 naredbi, pa ostaje 128 125 = 3 neiskoriscene kombinacije. Zajedno sa preostalih 7 bitova,
ovo je ukupno 3 27 = 384 kombinacija. Dakle, ne samo da se mogu iskodirati trazenih 28
naredbi, vec ostaje mesta za jos 384 28 = 356 neiskoriscenih kombinacija kojima se mogu
iskodirati bezadresne naredbe.
Prethodno razmatranje se moze predstaviti i sledecim jednacinama:
2lKO2 = 24 = 16 > 15,
2lKO2 M 2lKO1 = (16 15) 27 = 128 > 125


2lKO2 M 2lKO1 N 2lKO0 = 3 27 = 384 28.


Sve nejednakosti sem poslednje su stroge, jer ukoliko se svi bitovi iskoriste za kodiranje neke
od naredbi, ne ostaje mesta za kodiranje ostalih naredbi nakon nje, pa nema potrebe racunati
dalje. Karakteristicni detalji kod kodiranja instrukcija prikazani su na sledecoj slici.

15

125

28

0
0
1
1
1
1
1
1
1

4b

7b

7b

KO2
0 0
0 0

1 1
1 1
1 1

1 1
1 1
1 1

1 1

KO1

KO0

0
1

dvoadresne instrukcije

0
1
1

0
0

0
0

0
0

1
1
1

1
1
1

1
1
1

1
1
1

0
0

1
1
1

0
0

0
0

0
1

1
1
1

0
0
0

0
1
1

0
0

0
0

jednoadresne instrukcije

0
0

0 0
0 0

1 1 0

0
0

0
1

bezadresne instrukcije

Zadatak 10 Dat je zapis sa sledecim elementima:


integer(* H11121314 re
c *),
double integer (* H2122232425262728 dvostruka re
c *),
unsigned word (* H31323334 re
c *),
array [1..7] of char (* ABCDEFG bajt *),
short (* H5152 polure
c *) i
integer (* H61626364 re
c *).
Prikazati smestanje ovog zapisa u masinama sa adresiranjem repa i adresiranjem glave. Memorijske lokacije su duzine 8 bajtova. Pristupi memoriji su poravnati. Prikazati kako se u masini
sa adresiranjem glave kao prirodnim nacinom adresiranja moze implementirati adresiranje repa.
Navesti podatke koji se dobijaju pri obracanju podacima duzine 1 bajt, 1 rec , 1 bajt, 1 polurec sa
respektivnim adresama H08, H0C, H12, H20 za sva tri slucaja.
Resenje.

21
D

00
08
10
18
20

00
08
10
18
20

22
C

11
25
31

12 13
23 24
26 27
B
A
32 33
51 52
G
F
61 62 63
Adresiranje glave

14
28
34
E
64
6

27
C

28
D

11
21
31
E
61

12
22
32
F
62

13 14
23 24 25 26
33 34 A
B
G
51 52
63 64
Adresiranje repa
2

22
C

23
B
51

24
A
52

00
08
10
18
20

Koristeci datu formulu, dobijamo

12 13
26 27
32 33
G
F
61 62 63
Imitacija adresiranja glave
na masini sa adresiranjem repa

21
D

Na slikama levo dat je izgled memorije nakon


smestanja datih podataka. Kako su pristupi
memoriji poravnati, podatak duzine d mora
poceti od adrese koja je deljiva sa d.
Kada se u masini sa adresiranjem glave
imitira adresiranje repa, nove adrese se
racunaju po formuli a i, gde je a adresa podatka kada se koristi adresiranje repa, a i je

7, za bajt

6, za polurec
i=
4, za rec

0, za dvostruku rec.

11
25
31

14
28
34
E
64

H0 08 H0 07 = H0 OF
H0 0C H0 04 = H0 O8
H0 12 H0 07 = H0 15
H0 20 H0 06 = H0 26
U tabelama levo su isprekidanim linijama
zaokruzeni trazeni podaci, a njihov tabelarni
pregled je dat u sledecoj tabeli.

duzina podatka
bajt
rec
bajt
polurec

adresa
H08
H0C
H12
H20

adresa repa
28
21, 22, 23, 24
32
63, 64

adresa glave
21
25, 26, 27, 28
33
61, 62

adresa repa0
28
21, 22, 23, 24
32
63, 64

Zadatak 11 Algoritam sa slike 1 realizovati:


(a) pomocu kola za kasnjenje i potrebnih logickih elemenata
(b) pomocu PAL komponente PAL16RP4A
(c) mikroprogramom.

Pocetak
RM a
AK 0
PRm...0 b
PR1 0
Mm1

PR0 = 0 PR1 = 1

stanje S0

stanje S1
stanje S2

ne

ne

PR0 = 1 PR1 = 0

da

da

AK AK + RM stanje S3

AK AK + RM stanje S4

(AK, PR)  1
stanje S5
MM1

ne

M =0
da
Kraj

stanje S6

Slika 1: Algoritam uz zadatak 11. Sivom bojom je obelezen deo resenja.

Resenje.
(a) Logicka sema koja koristi kola za kasnjenje i pomocna logicka kola data je na slici 2. Pri
izradi seme treba imati u vidu nekoliko stvari:
kolo za kasnjenje sluzi da razdvoji dva razlicita stanja,
kad se spajaju dva ili vise signala, koristi se ILI logicko kolo,
uslovno grananje se realizuje strukturom sa slike ispod.

f (x)

f (x)

ne

f (x)
ne

da

da

y1
y2

x2

x1

x2

x1

x1

x1

y3

y4

x3

x3

y5

Slika 2: Sema
uz resenje zadatka 11

10

(b) Stanja se pamte flip-flopovima iz PAL komponente. Ima ukupno sedam stanja (od S0 do
S6 ), pa je potrebno koristiti dlog2 7e = 3 flip-flopa. Kodiranje je predstavljeno u sledecoj
tabeli.
Qn2
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1

Qn1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1

Qn0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1

0
1
2
2
2
2
3
4
5
5
5
5
5
6
7

x1
x
x
1
0
0
1
x
x
1
0
0
1
x
x
x

x2
x
x
0
1
0
1
x
x
0
1
0
1
x
x
x

x3
x
x
x
x
x
x
x
x
1
1
1
1
0
x
x

Qn+1
2
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0

Qn+1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
0
0

Qn+1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0

1
2
3
4
5
5
5
5
3
4
5
6
6
0
0

D2n
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0

D1n
0
1
1
0
0
0
0
0
1
0
0
1
1
0
0

D0n
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0

Poslednje tri kolone, D0 , D1 i D2 , predstavljaju prekidacke funkcije po promenljivim Q0 ,


Q1 , Q2 , x1 , x2 i x3 . Nije neophodno minimizovati ih dovoljno je napisati neku standardnu
formu, na primer PDNF.
Direktno iz stanja se izvodi
y1 = Q2 Q1 Q0

y2 = Q2 Q1 Q0

y4 = Q2 Q1 Q0

y5 = Q2 Q1 Q0

y3 = Q2 Q1 Q0

Na prvi prikljucak PAL komponente dovodimo clock signal. Ulaze 2, 3 i 4 koristimo za


signale x1 , x2 , x3 . Ulaz 11 je signal dozvole za flip-flopove.
Posle rasporedivanja izlaznih signala, ostaju prazne linije 19, 18, 13 i 12 tu se izvode
upravljaci signali. Mogu se izvesti bilo koji, ali ove linije treba iskoristiti za one najkomplikovanije, obzirom na to da ce preostali biti realizovani pomocu dodatnih logickih kola,
koristeci signale sa izlaza iz flipflopova (17, 16, 15 i 14).
U ovom slucaju, svi signali su jednostavni za realizaciju pa nasumice biramo da samo signal
y2 realizujemo na taj nacin (pomocu troulaznog AND kola).

11

(c) Postoje dva nacine kodiranja mikrositrunckija. Jedan nacin omgucava istovremeno aktiviranje upravljackih signala i grananje, dok drugi nacin omogucva samo jedno.
U prvoj varijanti, format mikroinstrukcije izgleda kao na slici. KMO je kod mikrooperacije,
a AUS je aktiviranje upravljackih signala.
KMO

AUS

adresa
grananja

uslov

U tabeli nize prikazano kodiranje mikrooperacija.


KMO
00
01
10
11

STOP
AUS
grananje
AUS + grananje

Postoje tri formata za AUS polje. Sa n je obelezen broj upravljackih signala, a sa m broj
istovremeno aktivnih upravljackih signala.
horizontalni: l = n,
vertikalni: l = dlog2 ne (zahteva kodiranje) i
dijagonalni: l = m dlog2 (n + 1)e.
Uslov se moze kodirati na dva nacina.
broj bitova moze biti jednak broju promenljivih, oblika x1 x2 x3 koji koristi po jedan
bit za svaki uslov, pri cemu u svakom uslovu mora da ucestvuje svaka promenljiva;
moze postojati duplo veci broj bitova, oblika a1 x1 a2 x2 a3 x3 , pri cemu ai govori o tome
da li xi ucestvuje u uslovu ovaj nacin je pogodan ako ima puno komplikovanih
uslova.
Mikroprogram je dat u sledecoj tabeli.
adresa
H00
H01
H02
H03
H04
H05
H06
H07
H08

KMO
0 1
0 1
1 0
1 0
0 1
1 0
0 0
1 1
1 1

1
0

0
0

0
1

0
0

AUS
0
0

1
0

0
0

0
1

0
0

0
0

1
1

0
0

1
0

uslov


1 0
1 1

0

0
0

0
0

0
0

adresa grananja


0 1 1
1
1 0 0
0

0 0 1
0

0 1 0
0
0 1 0
0

prelaz stanja
S1
S2
BG1 S3
BG2 S4
S5
BG3 BG1
STOP
S3 S5
S4 S3

Za adrese grananja se gleda najveca adresa skoka. Na primer, da nije bilo skoka na H08, bilo
bi dovoljno 3 bita za kodiranje adrese grananja medutim, u ovom slucaju je potrebno 4.
Adrese grananja zato treba popunjavati na kraju, u zavisnosti od komentara u poslednjoj
koloni gornje tabele.
U drugoj varijanti, format mikroinstrukcije je prikazan na sledecoj slici.
3b + 7b

KMO
2b

AUS
uslov

adresa

6b

4b

12

AUS ce biti iskodirani vertikalnim formatom jer je najkraci: potrebno je 3 b, a uslov je


oblika a1 x1 a2 x2 a3 x3 . Polje KMO bi bilo duzine 1 b da je moglo bez STOP signala.
U ovom slucaju, mikroprogram je predstavljen sledecom tabelom.
adresa
H0
H1
H2
H3
H4
H5
H6
H7
H8
H9
HA

KMO
0 1
0 1
1 0
1 0
0 1
1 0
0 0
0 1
1 0
0 1
1 0

0
0
1
1
1
0

0
0
1
0

0
1
1
0
0

AUS ili
1
0
1 0
1 1
1
0

1
0
0
0

13

uslov +


0
0

1 1


0

0

adresa


0 1
1 0

0 0


0 1

0 1

1
0

1
1

prelaz stanja
S1
S2
BG1 S3
BG2 S4
S5
BG3 BG1
STOP
S3
S5
S4
S5

Zadatak 12 Promene stanja bloka upravljanja nekog digitalnog sistema prikazane su u tabeli
levo a aktivirani upravljacki signali u tabeli desno. Definisati formate potrebnih mikronaredbi i
napisati mikroprogram upravljanja datog digitalnog sistema koristeci pritom sto krace mikronaredbe. S0 je pocetno a S6 krajnje stanje bloka upravljanja.

x1
0
0
1
1

x2
0
1
0
1

S0
S0
S3
S2
S1

S1
S2
S1
S3
S2

S2
S2
S3
S4
S1

S3
S4
S1
S2
S5

S4
S4
S5
S5
S3

S5
S3
S4
S6
S4

S6
S6
S0
S0
S6

stanje
S0
S1
S2
S3
S4
S5
S6

AUS
y1
y2 , y3
y1 , y4
y7
y4 , y5
y3 , y6
y8

Resenje. Za polje AUS (aktiviranje upravljckih signala) moze se koristiti horizontalni, vertikalni
ili dijagonali format. Sledecim razmatranjem biramo jedan od njih:

horizontalni: 8 b = optimalno i najjednostavnije,


AUS vertikalni: otpada jer nam treba vise od jednog signala istovremeno,

dijagonalni: 2 dlog2 (8 + 1)e = 8 b = optimalno ali komplikovanije.


adresa
mikronaredbe

H00
H01
H02
H03
H04
H05
H06
H07
H08
H09
H0A
H0B
H0C
H0D
H0E
H0F
H10
H11
H12
H13
H14
H15
H16
H17
H18
H19
H1A

KMO
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1

AUS ili
uslov+adresa

10000000
0000000X
0101011X
1000111X
01100000
0100100X
1001011X
10010000
0000111X
1001111X
1100100X
00000010
0100100X
1000111X
1110010X
00011000
0001111X
1101011X
00100100
0001011X
0101111X
1101111X
00000001
0010110X
0100000X
1000000X
1110110X

komentar
S0
grananje na S0
grananje na S3
grananje na S2
S1
grananje na S1
grananje na S3
S2
grananje na S2
grananje na S4
grananje na S1
S3
grananje na S1
grananje na S2
grananje na S5
S4
grananje na S4
grananje na S3
S5
grananje na S3
grananje na S4
grananje na S4
S6
grananje na S6
grananje na S0
grananje na S0
grananje na S6

14

00000

00100

00111

01011

01111

10010

10110

Za KMO je dovoljan jedan


bit jer je potrebno samo razlikovati grananje od upravljackih
signala (i nije potreban STOP
signal). Po uslovu zadatka (iz
tabele iz zadatka, levo), uslov
se kodira sa dva bita. Upravljackih signala ima 8, pa je za
horizontalni format potrebno 8
bitova (iz tabele iz zadatka, desno).

Zadatak 13 Kombinaciona logika nekog sistema sastoji se od sest blokova kombinacionih mreza,
A, B, C, D, E i F sa vremenima prostiranja signala kroz njih od 80 ps, 30 ps, 60 ps, 50 ps, 70 ps i
10 ps respektivno. Izlazni signali iz poslednjeg bloka F upisuju se u registar sa vremenom prostiranja 20 ps. Mozemo projektovati protocnu verziju ove mreze umetanjem protocnih registara sa
vremenom prostiranja 20 ps izmedu parova ovih blokova, c ime ovih sest blokova delimo u stepene.
(a) Izmedu kojih blokova treba umetnuti jedan protocni registar da formiramo protocnu verziju
mreze sa dva stepena koja c e imati maksimalnu propusnost za toliki broj stepena? Kolika
c e biti latencija i propusnost takve mreze?
(b) Izmedu kojih blokova treba umetnuti dva protocna registra da formiramo protocnu verziju
mreze sa tri stepena koja c e imati maksimalnu propustost za toliki broj stepena? Kolika c e
biti latencija i propusnost takve mreze?
(c) Izmedu kojih blokova treba umetnuti tri protocna registra da formiramo protocnu verziju
mreze sa c etiri stepena koja c e imati maksimalnu propustost za toliki broj stepena? Kolika
c e biti latencija i propusnost takve mreze?
(d) Koliki je minimalni broj stepena koji c e dati protocnu organizaciju sa maksimalnom dostiznom propusnosc u? Prikazati tu organizaciju i izracunati njenu latenciju i propusnost.
Resenje.
Minimalno vreme prostiranja kroz jedan stepen jednako je najduzem vremenu prostiranja
kroz pojedinacne blokove.
Vremena prostiranja kroz grupe blokova unutar stepena trebalo bi da budu sto ujednacenija.
Protocno organizovana mreza taktuje se signalima cija je minimalna perioda odredena
zbirom najduzeg vremena prostiranja unutar stepena i vremena prostiranja kroz protocni
registar iza stepena.
Latencija TL je kasnjenje kroz celu mrezu.
Propusnost w je broj podataka koji mogu da se obrade u jedinici vremena.
Na osnovu datih podataka, latenciju racunamo kao TL = (80+30+60+50+70+10+20) ps =
1
1
320 ps, a propusnost w =
= 3.125 109 pod/s.
=
TL
320 1012
(a) Protocni registar treba umetnuti izmedu blokova C i D, jer su tada latencije protocnih
stepena jednake TA+B+C = (80+30+60) ps = 170 ps i TD+E+F = (50+70+10) ps = 130 ps.
(a)
Dodavanjem protocnog registra dobijamo TC = 170 ps + 20 ps = 190 ps, a odatle
(a)

(a)

TL = 2TC = 380 ps i
1
1
w(a) = (a) =
= 5.263 109 pod/s,
190 1012
TC
odnosno

190 ps

z
|A

B
{z

170 ps

}|

C}

|D

E
{z

130 ps

F} .

(b) Imamo
(b)

(b)

TL = 3TC = 3 130 ps = 390 ps i


1
1
w(b) = (b) =
= 7.692 109 pod/s
130 1012
TC

15

jer je
130 ps

z
}|
A
B
| {z }

110 ps

| C {z D }

| E {z F } .

110 ps

80 ps

(c) Imamo
(c)

(c)

TL = 4TC = 4 110 ps = 440 ps i


1
1
= 9.091 109 pod/s
w(c) = (c) =
110 1012
TC
jer je
110 ps

A
|{z}

}|
{
B
C
| {z }

80 ps

D
|{z}

90 ps

| E {z F } .

50 ps

80 ps

(d) Imamo
(d)

(d)

TL = 5TC = 5 100 ps = 500 ps i


1
1
w(d) = (d) =
= 10 109 pod/s
100

1012
TC
jer je
100 ps

}|
{
z
A
R
|{z}
80 ps

B
|{z}
30 ps

C
|{z}
60 ps

16

D
|{z}
50 ps

| E {z F } .
80 ps

Zadatak 14 Dat je deo programa koji se izvrsava na ceobrojnom protocnom sistemu DLX.
Pretpostaviti da su sva obracanja memoriji pogoci kesa. Pocetni sadrzaj registra R3 je R2 + 396.
(a) Prikazati vremenski dijagram izvrsenja ovog niza instrukcija bez ikakvih premosc avanja, ali
pretpostaviti da upis u registar prethodi c itanju istog registra u istom cisklusu kloka. Koliko
ciklusa zahteva izvrsenje petlje?
(b) Prikazati vremenski dijagram izvrsenja ovog niza instrukcija pri postojanju hardvera za
premosc avanje. Koliko ciklusa zahteva izvrsenje petlje?
Program koji se posmatra je sledeci.
1
2
3
4
5
6

pon: LW
ADDI
SW
ADDI
SUB
BNEZ

R1,
R1,
R1,
R2,
R4,
R4,

O(R2)
R1, #1
O(R2)
R2, #4
R3, R2
pon

Resenje. U petoj instrukciji se vrsi oduzimanje R4 = R3 R2 . Kako se R3 ne menja, a R2


se u svakom koraku povecava za 4, zakljucujemo da ce se razlika R3 R2 smanjivati. Uslovni
skok iz poslednje linije koda ce biti ispunjen sve dok ta razlika ne dosegne nulu, sto ce se desiti
u 396/4 = 99. prolazu.
Za procesor bez premoscavanja, vremenski dijagram je sledeci.
IF ID EX ME WB
IF
IF ID
EX ME WB
IF
ID
EX ME WB
IF
ID EX ME WB
IF ID
EX ME WB
IF
ID
EX ME WB
Dakle, jedan prolaz kroz petlju se odigrava kroz 17 ciklusa. Sa 99 prolaza, to je ukupno
17 99 + 1 = 1684 ciklusa, pri cemu se jedinica dodaje zbog WB ciklusa iz BNEZ instrukcije.
Vremenski dijagram za procesor za procesor kod koga postoji mogucnost premoscavanja prikazan je u nastavku.
IF ID EX ME WB
IF ID EX ME
IF ID EX
IF ID
IF

IF
WB
ME
EX
ID
IF

WB
ME WB
EX ME WB
ID EX ME WB

Zakljucujemo da je u ovom slucaju potrebno 10 ciklusa za jedan prolaz kroz petlju, dakle
ukupno 10 99 + 1 = 991 ciklus.

17

Zadatak 15 Dat je deo programa koji se izvrsava na celobrojnom protocnom sistemu DLX.
Pretpostaviti da su sva obracanja memoriji kesa. Pocetni sadrzaj registra R6 je R9 + 96.
(a) Prikazati vremenski dijagram izvrsenja ovog niza instrukcija bez ikakvih premosc avanja,
ali pretpostaviti da upis u registar prethodi c itanju istog registra u istom ciklusu kloka.
Pretpostaviti da se grananjima rukuje predvidanjem da nece biti obavljena. Koliko ciklusa
zahteva izvrsenje ovog dela programa?
(b) Prikazati vremenski dijagram izvrsenja ovog niza instrukcija pri postojanju hardvera za
premosc avanje. Za svako premosc avanje ukazati na ciklus kloka u kome se ono vrsi, kao i
na protocni stepen iz koga se podatak za premosc avanje uzima i protocni stepen kome se
podatak dostavlja. Pretpostaviti da se grananjima rukuje predvidanjem da c e biti obavljena.
Koliko ciklusa zahteva izvrsenje ovog programa?
Niz instrukcija koji se razmatra je sledeci.
1
2
3
4
5
6
7
8
9

pon: ADDI
LW
SW
SLL
SW
SUBI
SUB
NBEZ
SW

R3,
R2,
R2,
R2,
R2,
R6,
R7,
R7,
R9,

R5, #4
100(R3)
20(R8)
R2, #4
0(R6)
R6, #8
R6, R9
pon
100(R7)

Resenje. Razlika registara R6 i R6 smanjuje se za 8 pri svakom prolasku kroz petlju, dakle ima
ukupno 96/8 = 12 prolaza.
IF ID EX ME WB
IF
IF ID
EX ME WB
IF
ID
EX ME WB
IF
ID EX ME WB
IF ID
EX ME WB
IF
ID EX ME WB
IF ID
EX ME WB
IF
ID
EX ME WB
IF
ID EX ME WB

Dakle, ukupno je potrebno 21 12 + 2 = 254 ciklusa za procesor bez premoscavanja.


IF ID EX ME
IF ID EX
IF ID
IF

WB
ME
EX
ID
IF

IF
WB
ME
EX
ID
IF

WB
ME
EX
ID
IF

WB
ME
EX
ID
IF

WB
ME WB
EX ME WB
ID EX ME WB
IF ID EX ME WB

Na osnovu dijagrama je, za procesor koji ima hardver za premoscavanje, potrebno 1211+5 =
137 ciklusa za izvrsenje zadatog programa.

18

Zadatak 16 Dat je deo programa koji se izvrsavana na protocnom sistemu DLX uz korisc enje
standardnog FP protocnog sistema. Pretpostaviti da su sva obracanja memoriji pogoci kesa.
Pocetni sadrzaj registra R4 je R2 + 792.
(a) Prikazati vremenski dijagram izvrsenja ovog niza instrukcija bez ikakvih premosc avanja, ali
pretpostaviti da upis u registar prethodi c itanju istog registra u istom ciklusu kloka. Koliko
ciklusa zahteva izvrsenje petlje?
(b) Prikazati vremenski dijagram izvrsenja ovog niza instrukcija pri postojanju hardvera za premosc avanje. Koliko ciklusa zahteva izvrsenje petlje?
Deo programa koji se razmatra je sledeci.
1
2
3
4
5
6
7
8

pon: LD
LD
MULD
ADDD
ADDI
ADDI
SUB
BNEZ

F0,
F4,
F0,
F2,
R2,
R3,
R5,
R5,

0(R2)
0(R3)
F0, F4
F0, F2
R2, #8
R3, #8
R4, R2
pon

Resenje. Petlja ce se ponoviti 792/8 = 99 puta. Na osnovu navedenih dijagrama, potrebno je


99 23 + 1 = 2278 i 99 19 + 1 = 1882 ciklusa za procesor bez pemoscavanja i sa premoscavanjem,
respektivno.
IF ID EX ME WB
IF ID EX ME WB
IF ID
M1 M2 M3 M4 M6 M7 WB
IF
ID
A1 A2
IF
ID EX
IF ID
IF

IF

A3 A4 WB
ME WB
EX ME WB
ID EX ME WB
IF ID
EX ME WB

IF ID EX ME WB
IF ID EX ME WB
IF ID M1 M2 M3 M4 M5 M6 M7 WB
IF ID A1 A2
IF ID EX
IF ID
IF

19

IF

A3
ME
EX
ID
IF

A4 WB
WB
ME WB
EX ME WB
ID EX ME WB

Zadatak 17 Projektovati paralelni 32-bitni sabirac sa maksimalnim vremenom prostiranja od


70 ns. Vreme prostiranja kroz jedno logicko kolo je 2 ns. Razmotriti sledece mogucnosti:
(a) 32-bitni paralelni sabirac sa serijskim prenosom;
(b) osam 4-bitnih paralelnih sabiraca sa paralelnim prenosom povezanih tako da se izmedu njih
prenosi prostiru serijski;
(c) c etiri 8-bitna paralelna sabiraca sa paralelnim prenosom povezanih tako da se izmedu njih
prenosi prostiru serijski.
Cena sabiraca merena brojem potrebnih logickih elemenata mora biti sto niza. Izabrati najpovoljnije resenje i prikazati ga na nivou blokova.

Resenje. Za sabirace sa serijskim prenosom, vreme prostiranja je T = 2nTe , gde je Te vreme


prostiranja kroz jedno logicko kolo i n broj bitova koji se sabiraju. Prema tome, prva varijanta
iz zadatka otpada jer je 2 32 Te = 128 ns > 70 ns.
Preostale dve ponudene varijante koriste sabirace sa paralelnim prenosom. Kod njih vreme
prostiranja ne zavisi od broja bitova i iznosi T = 4Te . Dakle, za osam sabiraca vreme prostiranja
je T = 8 4Te = 64 ns a za cetiri je T = 4 4Te = 32 ns. Oba vremena zadovoljavaju uslov zadatka
(manja su od 70 ns), pa nadalje razmatramo njih.
Za varijantu sa osam cetvorobitnih sabiraca, ukupan broj potrebnih logickih kola je
C = 8 (4 3 + 4 + (1 + 2 + 3 + 4)) = 208.
Za cetiri osmobitna sabiraca, potrebno je
C = 4 (8 3 + 8 + (1 + 2 + + 8)) = 272.
Po zadatku je najjeftinija varijanta ona koja ima najmanje logickih kola, pa treba izabrati
osam cetvorobitna sabiraca.
Zadatak 18 Korisc enjem metoda preskoka jedinica pomnoziti
10100 1011110.
Resenje. Metodom prekoka jedinica se 1011110 kodira kao 1100010. Mnozenjem se dobija
010100 01100010 = 011101011000, jer je 01111 = 10000 1 = 10001. Postupak mnozenja je
prikazan u sledecoj tabeli.
0

1
1
0
1

1
0
1
1

1
1

1
1
0
0

1
0
0
1

0
0

1
0

1
0

0
0

20

zbog nule na kraju


(pregledniji zapis)

Zadatak 19 Pomocu Butovog algoritma pomnoziti


(a) (+12) (+9),
(b) (12) (+9),
(c) (+12) (9) i
(d) (12) (9).
Resenje. Dati brojevi se u binarnom brojevnom sistemu, u potpunom komplementu, kodiraju na
sledeci nacin:
12 = 10100

+12 = 01100

9 = 10111.

+ 9 = 01001

Postupci za sva cetiri slucaja mnozenja dati su u nastavku.


0

10

1
0
0
1
0
1

1
0
0

1
1
0

0
0
1
1

0
1

1
1

0
0

0
1

1
1

1
1
0
0
0
0

0
1
0
0

1
0
0

0
0

11

10

1
1

0
0
1

1
0
1
1
0

(a) (+12) (+9)


0

10

1
1

0
0
1

0
1
1
0

0
1

1
1

0
0

0
1

1
1

1
1
0
0

1
0
0

0
0

1
0
1
0
0

0
0
0
0
0
1

(b) (12) (+9)

1
1

0
1

1
0

1
0

1
1

1
0
0
1
0
0

1
0
0
0
0
1

0
0
0
0

1
0
0

0
0

0
0
1
1

0
0
1
0
1

1
1

0
1

1
0

1
0

1
1

0
0
0
0
0
0

1
0
0
0

1
0
0

0
0

1
0
0

1
1
0

(c) (+12) (9)

(d) (12) (9)

Postupci mnozenja primenom Butovog algoritma

Zadatak 20 Metodom prekodiranja parova bitova mnozioca pomnoziti (+12) (9).


Resenje. Prilikom prekodiranja broja 101110, sa desne strane mu se dodaje pomocna cifra 0.
Kako dobijeni broj ima paran broj cifara, sa leve strane mu treba dodati i pomocnu cifru znaka
(u ovom slucaju 1). Dakle, prekodirani broj je 1101110 121. Postupak mnozenja je dat u
nastavku.

+
1

10

1
0
0
1

1
1
1
0

1
1

1
1
0
0

1
0
0
1

0
0

1
0

21

nula zbog
mnozenja sa 2

Zadatak 21 Propratiti sadrzaj registra pri mnozenju (+13) (6) korisc enjem Butovog algoritma.
Resenje. Brojevi se u dvojicnom komplementu kodiraju sa +13 = 01101, 13 = 10011, +6 =
00110 i 6 = 11010. U registar A upisuje se broj A = +13, a na raspolaganju je i negacija A
(kojom se realizuje oduzimanje). U registar B smesta se B = 6, i u dodatni pomocni bit smesta
se 0. U registar P upisuju se sve nule. Promene u registrima tokom mnozenja prikazane se u
nastavku.
0

m=5

m=4

m=1

m=0

m=3

m=2

Zadatak 22 Podeliti 37 sa 7 korisc enjem algoritma za deljenje


(a) sa obnavljanjem parcijalnog ostatka i
(b) bez obnavljanja parcijalnog ostatka.
Resenje. Binarno, dati brojevi su 37 = 100101 i 7 = 111. Registri treba da budu dovoljno dugacki
da vazi uslov P < A, a s druge strane da budu sto je kraci moguci da bi se kroz pelju u algoritmu
proslo najmanji broj puta. Registri A i P imaju 2 b vise od B. U ovom slucaju je m = 3.
U registar A se smesta 7, odnosno 00111, a u par registara (P, B) broj 37, tj. 00100|101.
Na kraju deljenja, u registar B ostaje kolicnik (ovde 5), a u registar P se nalazi ostatak (ovde 2).
Sadrzaj registara je ispracen je u nastavku (levo sa, desno bez obnavljanja).
0

m=3
0

m=3

m=2
m=2

m=1

m=1

m=0

22

m=0

Zadatak 23 Prema standardu IEEE 754-85, u formatu jednostruke tacnosti dat je zapis nekog
broja na slici ispod. Odrediti koji je to broj. Brojeve a = 1 25 i 5 230 predstaviti u istom
formatu i prikazati korak po korak izracunavanje vrednosti d = a + b, g = a b i h = a b.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

11000001100101000000000000000000

Resenje. Iz zapisa broja cija se vrednost trazi vidi se e = 131, pa je E = e P = 131 127 = 4.
S druge strane, kako je s = 1 i f = 00101, imamo da je mantisa m = 1.00101(2) , pa je trazeni
broj 1.00101(2) 24 = 10010.1(2) = 18.5.
Brojeve a i b treba napisati u pogodnijem obliku radi racunanja njihovih eksponenata i
mantisa. Dakle, iz
a = 1 25 = 1.0(2) 25

i b = 101(2) 230 = 1.01(2) 228

dobijamo sa = 1, fa = 0, sb = 0, fb = 01,
ea = Ea + P = 5 + 127 = 122 = 01111010(2) ,
i eb = Eb + P = 28 + 127 = 99 = 01100011(2) .
Izgled ovih brojeva u registrima prikazani su na sledecoj slici.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

10111101000000000000000000000000
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

00110001101000000000000000000000
Postupak racunanja broja d = a + b prikazan je na slici nize. Prva dva registra su brojevi
a i b u izvornom obliku. Treci registar predstavlja broj b nakon sto je sveden na isti eksponent
(pomeranjem za 28 5 = 23 mesta udesno), oznacen sa b0 . Nakon toga je pronaden zbir a + b0 ,
a onda je on normalizovan. Zaokruzivanjem na osnovu tri pomocna bita koja su predstavljena
sa desne strane, dobija se trazeno resenje.
a 1 0 1 1 1 1 0 1 0 1 0 0 0 0 0 0 0

000

b 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 0

000

b0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 0 1

010

a + b0 1 0 1 1 1 1 0 1 0 0 1 1 1 1 1 1 0

110

normalizovano 1 0 1 1 1 1 0 0 1 1 1 1 1 1 1 0 1

100

1 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0

23

Za izracunavanje broja g = a b, potrebno je pronaci njegov znacajnik zg , eksponent eg i


znak sg , na sledeci nacin:
zg = za zb = 1.0 1.01 = 1.01,
eg = ea + eb P = 94 = 101110(2)

sg = sa sb = 1 0 = 1.
Dakle, broj g se u registru zapisuje na nacin prikazan dole. Prva slika predstavlja medukorak,
a druga sadrzaj registra nakon normalizacije.
1 0 1 0 1 1 1 1 0 1 0 1 0 0 0 0 0

000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

10101111001000000000000000000000
Na slican nacin racunamo komponente za predstavljanje broja h = a b,
zh = za zb = 1.0 1.01 = 0.1100,
eh = ea eb + P = 150

sg = sa sb = 1,
i na osnovu toga se broj predstavlja na sledeci nacin.
110010110011001100110011001100110

011

110010101110011001100110011001100

110

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

11001010110011001100110011001101

24

Zadatak 24 Program sa strukturom prikazanom na slici desno smesten je u operativnoj memoriji racunara u navedenom
podrucju adresa. Operativna memorija je podeljena na 16 memorijskih modula M0 , . . . , M15 sa preklapanjem pristupa. Prikazati smestanje naredbi ovog programa po memorijskim modulima.
Izracunati vreme potreno za uzimanje naredbi prikazanog programa ako je vreme pristupa memorijskih modula 50 ns, vreme ciklusa memorijskih modula 95 ns, a vreme ciklusa procesora 17 ns.
Pri uzimanju naredbe iz memorije, jedan ciklus procesora potreban je za izdvajanje naloga za c itanje i jedan ciklus procesora potreban je za slanje procitane naredbe iz memorije do procesora.
Odmah po preuzimanju jedne naredbe, procesor izdaje nalog za
uzimanje sledece naredbe.

10
20
32
51

p
10

62

Resenje. Modul mora biti sinhronizovan sa procesorom, pa se umesto vremena Ta = 50 ns i


TCM = 95 ns koriste vremena TA i TM koja se dobijaju kao




TCM
Ta
TCP = 51 ns i TM =
TCP = 102 ns.
TA =
TCP
TCP
U nastavku je prikazana tabla koja ilustruje kojim su instrukcijama moduli popunjeni. Crnom
bojom su naznacene vaznije instrukcije koje ce biti kljucne kod resavanja zadatka.
M0 M1 M2 M3 M4 M5 M6 M7 M8 M9 M10 M11 M12 M13 M14
10 11 12 13 14
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62

M15
15
31
47

Formula po kojoj se racuna vreme potrebno za uzimanje naredbi je


T =

k
X

broj sukcesivnih naredbi

max (TM , TA + li 2TCP ) .


1 + 1 ciklus CP-a
za svaku naredbu

i=1

TM TA
= 1.5 odnosno li 2, zakljucujemo da se
2TCP
vreme ciklusa modula TM koristi samo za li = 1, a u suprotnom vreme pristupa TA + li 2TCP .
Odavde se vreme racuna na sledeci nacin.
Kako je TM < TA + li 2TCP samo za li >

T = TA + (15 10 + 1) 2TCP + TA + (31 16 + 1) 2TCP + 9 [TA + (31 20 + 1) 2TCP ]


+ 10(1 p) [TA + (47 32 + 1) 2TCP + TA + (62 48 + 1) 2TCP ]
+ 10p [TM + TA + (62 51 + 1) 2TCP ] za pristup instrukciji 32
= 24TA + 7TM + 307 2TCP = 12 376 ns = 12.376 s
Kad ne bi bilo preklapanja, vreme pristupa bi bilo T2 = N TM , gde je N broj instrukcija
koji se procita, odnosno
N = 19 10 + 1 + 10(62 20 + 1) 10p(50 33 + 1) = 314,

25

i odatle

T2 = 102 314 = 32.098 s.

Zadatak 25 Program sa strukturom prikazanom na slici desno smesten je u operativnoj memoriji racunara u navedenom podrucju adresa. Navedene adrese su adrese reci.
Racunar sadrzi kes memoriju za naredbe kapaciteta 2 K reci sa blokovina kapaciteta 16 reci
(a) sa direktnim preslikavanjem
(b) sa skupno-asocijativnim presliakvanjem
(2 kes-bloka po skupu, zamena blokova
po LRU algoritmu)
Naci faktore promasaja i faktore saobracaja.

640

40.

832

52.

1152

72.
3

2048

128.
2

3583

223.

Resenje.
(a) Ukupan broj pristupa je
u = (831 640 + 1) + 2(3582 832 + 1) + 4(2047 1152 + 1) = 9280.
{z
}
|
{z
} |
{z
}
|
do po
cetka prve petlje

spolja
snja petlja dvaput

unutra
snja petlja jo
s
dvaput po dva puta

Kapacitet memorije je C = 2 k reci sa blokovima od po B = 16 reci, pa ima


CB =

2048
C
=
= 128
B
16

blokova, sto znaci da blokove treba smestati u kes po modulu 128. Drugim recima, naredba
iz i-tog bloka bice smestena u blok i mod 128.
skup kes bloka
0
..
.

blokovi podataka
128
..
.

39
40
..
.

167

40

..
.

52
..
.


52

..
.

72
..
.


72

..
.

95
..
.


95

..
.

127
broj promasaja

127
128

168
..
.

180

..
.

200

..
.

223


56

5
2

..
.

180
..
.

7
2

..
.

200
..
.

9
5


223

44

44

= 272

Gornja slika opisuje rad kes memorije tokom izvrenja posmatranog dela programa. U
poslednjem redu je dat broj promasaja, odakle se dobija ukupan broj promasaja, 272. Na
osnovu toga se faktor promasaja racuna kao
w=

upr
272
=
= 0.029.
u
9280
26

Faktor saobracaja definise se kao odnos kolicine prenetih podataka izmedu kes memorije i
operativne memorije kada postoji kes memorija i izmedu procesora i operativne memorije
kada ne postoji kes memorija. Dakle,
FS =
skup kes bloka
0
..
.

6
4

..
.

8
..
.

7
2

..
.

31
..
.

9
5

..
.

39
40
..
.

103
4
0

..
.

52
..
.

5
2

..
.

63
broj promasaja

6
3

64

upr B
= m B = 0.464.
u1
blokovi podataka
 
 
6
4 128
128
192

..
..
..
..
.
.
.
.
..
 
 
136
200
7
2
.

..
..
..
..
.
.
.
.
 
 
159
223
9
5 159


192
..
.
..
.
..
.

167
104 168
..
..
.
.


116
180
5
2



..
..
..
.
.
.
 
 
127
191
6
3

64
56 44

116

180

127
44

191
44

223

= 316

(b) U ovom slucaju, ima ukuno CB /A = 64 skupova. Iz gornje slike dobija se da ukupan broj
promasaja iznosi 316, pa je m = 0.034 i FS = 0.545.

27

Zadatak 26 Neki program se pri izvrsenju obraca operandima (recima duzine 4 bajta) na nacin
prikazan slikom. U linearnom delu, program samo c ita podatke.
384
12.
U prvom prolasku kroz petlju, pocev od operanda sa adresom 960, pa sve do operanda sa adresom 10 236, program c ita
960
30.
15 uzastopnih reci, izracunava rezultat i upisuje ga u sesnaestu
rec. U drugom prolasku, istim redom program c ita 7 uzastopnih reci, izracunava rezultat i upisuje u osmu rec. Procesoru je
pridruzena kes memorija za podatke, kapaciteta 8 kB sa skupno2
asocijativnim preslikavanjem, asocijativnosc u 2 i zamenom blo10 236
319.
kova po LRU algoritmu i posrednim upisom. Ostali parametri kesa
10 240
320.
su:
blokovi duzine 32 bajta,
vreme ciklusa kes memorije 20 ns,
vreme c itanja i prenosa bloka podataka iz operativne u kes memoriju 280 ns,
vreme vracanja modifikovanog bloka podataka iz kesa u operativnu memoriju 260 ns,
pogodak pri c itanju zahteva 1, a pogodak pri upisu 2 ciklusa klika.
Izracunati faktor promasaja, faktor saobracaja i efektivno vreme ciklusa sistema kes memorija
operativna memorija.
Resenje. Iz uslova zadatka je
C = 8 kB

A=2

TC = 20 ns

B = 32 B

TCB
= 280 ns

TUB = 260 ns,

8k
CB
C
=
= 256 blokova i S =
= 128 skupova.
odakle imamo CB =
B
32
A
U ovom slucaju se svaki drugi blok menja u prvom, a svaki blok u drugom prolazu. Detaljni
dijagram je dat u donjoj tabeli, iz koga se vidi da ukupno ima 410 promasaja i 85 blokova koji
su modifikovani a moraju se vratiti u operativnu memoriju jer se izbacuju iz kesa.
skup kes bloka
0
..
.

128
..
.

11
12
..
.

139

12

..
.

30
..
.


30

..
.

63
..
.


63

..
.

267
140 268
..
..
.
.
 
 

158
286
30

..
..
..
.
.
.
 
 

191
319
63

..
.

127
broj promasaja

127
128
17

255
128
17

broj zamenjenih
modifikovanih

blokovi podataka
256
..
.

52
17

34
34

158
..
.

286
..
.

191

319

34
0

34
0

P
= 410
P
= 85

Odavde je
n=

(959 384 + 1) + 2(10239 960 + 1)


= 4784 pristupa (reci),
4
28

i zatim

npr
410
=
= 0.0857
n
4784
Odavde je ocigledno
m=

i FS =

(nPR + nZMB ) B
= 0.8278.
4n

Tef = pc TC + pn 2TC + m TcB + pmod TuB


nu
nZMB
nc
TC +
2TC + m TcB +
TuB
=
n
n
n
i kako je



15 7
nc = 8 29 12 + 1 + (319 30 + 1)
+
= 4349
16 8


1
1
nu = 8(319 30 + 1)
+
= n nc = 435,
16 8

imamo Tef = 50.43 ns.


Zadatak 27 Virtuelna memorija ima 8 virtuelnih stranica duzine po 1024 reci i 4096 reci operativne memorije. Na slici je prikazana stranicna tablica.
broj virtuelne stranice
broj fizicke stranice

0
3

1
1

4
2

6
0

(a) Saciniti listu svih virtuelnih adresa c ije bi korisc enje dovelo do promasaja stranice.
(b) Izracunati adrese operativne memorije (fizicke adrese) ako takvih ima koje odgovaraju sledec im virtuelnim adresama:
0,

3728,

1023,

1024,

1025,

7800,

4096.

Resenje.
(a) Adrese koje nisu u operativnoj memoriji su one adrese koje, kada se celobrojno podele
duzinom virtuelne stranice, daju broj virtuelne stranice koji se ne slika ni u jednu fizicku
stranicu. Ti brojevi su 2, 3, 5 i 7, pa su trazene adrese
2048, . . . , 3071,

3072, . . . , 4095,

5120, . . . , 6143,

7168, . . . , 8191.

(b) Ako sa LS obelezimo broj reci po stranici, sa av i af virtuelnu i fizicku adresu, sa avs i afs
broj virtuelne i fizicke stranice i sa ar relativnu adresu unutar stranice (bilo virtuelne ili
fizicke), imamo:
 
av
avs =
, ar = av mod LS i af = afs LS + ar .
LS
U sledecoj tabeli je tabelarno prikazano resenje.
av
0
3728
1023
1024
1025
7800
4096

ar
0
656
1023
0
1
632
0

avs
0
3
0
1
1
7
4
29

afs
3
NOM
3
1
1
NOM
2

af
3072
4095
1024
1025
2048

Zadatak 28 U racunaru sa stranicno organizovanom virtuelnom memorijom 3 fizicke stranice su


dodeljene korisniku A. Izvrsenje programa korisnika A zahteva korisc enjeme 5 razlicitih virtuelnih stranica 1, 2, 3, 4, 5. Niz adresa virtuelnih stranica dobijenih pri izvrsenju programa korisnik A
je
2, 3, 2, 1, 5, 2, 4, 5, 3, 2, 5 i 2.
Prikazati preslikavanje virtuelnih stranica u fizicke stranice, ako se virtuelna stranica koja se zamenjuje u operativnoj memoriji odreduje po algoritmu
(a) FIFO,
(b) LRU,
(c) optimalni algoritam.
Naci broj promasaja za sva tri algoritma i uporediti ih.
Resenje. Kao sto se vidi iz naredne slike, broj promasaja je, redom, 9, 7 i 6 kada se koristi FIFO
(gore), LRU (sredina) i optimalni (dole) algoritam. Zvezdicom je obelezen podatak koji ce sledeci
biti zamenjen.
2

2*
3

2*
3

2*
3
1
7

5
3*
1
7

5
2
1*
7

5*
2
4
7

5*
2
4
3

3*
2*
4
7

3
2*
4
3

3
5
4*
7

3*
5
2
7

2*

2*
3

2
3*

2
3*
1
7

2*
5
1
7

2
5
1*
3

2
5*
4
7

2*
5
4
3

3
5
4*
7

3
5*
2
7

3*
5
2
3

3*
5
2
3

2*

2
3*

2
3*

2
3
1*
7

2
3*
5
7

2*
3
5
3

4*
3
5
7

4*
3
5
3

4*
3
5
3

2
3*
5
7

2
3*
5
3

2
3*
5
3

Zadatak 29 Razmotrite stranicno organizovan virtuelni memorijski sistem 42-bitnih virtuelnih


adresa, stranice duzine 8 KB i 32-bitne fizicke adrese. Kolika je ukupna velicina stranice tablice
ako su polja vazeci, modifikovani i zastita duzine ukupno 3 bita i ako se koriste sve virtuelne stranice? Pretpostaviti da se adrese podataka na disku ne c uvaju u stranicnoj tablici. Transformator
adresa sadrzi 2-blocnu skupno-asocijativnu kes memoriju za preslikavanje adresa (TBL) sa ukupno
256 stavki. Slikom prikazati preslikavanje virtuelnih adresa u fizicke i oznaciti sirine svih polja i
signala.
Resenje. Iz teksta zadatka imamo lVA = 42 b, LS = 8 KB i lFA = 32 b. TLB je dvoblocno
skupno-asocijativna kes memorija, pa je A = 2. Posto broj stavki TLB-a iznosi CB = 256,
256
CB
=
= 128 skupova, za sta je potrebno 7 bitova za kodiranje. Zato
zakljucujemo da ima
A
2
je kod virtuelne adrese duzina polja za indeks jednaka 7 b.
30

Duzina polja je
lp = log2 LS = log2 213 = 13 b

i odatle su

lV S = lV A lp = 42 13 = 29 b

lF S = lF A lp = 32 13 = 19 b.
Kako je lV S 29 b, zakljucujemo da ima 229 razlicitih virtuelnih stranica, a posto su po uslovu
zadatka iskoriscene sve virtuelne stranice, znaci da ima isto toliko i stavki u stranicnoj tablici.
lV A = 42 b

avs

ar

lV S

lp
lF A = 32 b

aF S

ar

lF S

lp

v m z

afs

etiketa

indeks

ar

1b 1b 1b

19 b

22 b

7b

13 b

Na slikama iznad su prikazane sirine polja, a donja slika detaljnije opisuje rad ovakvog sistema.

etiketa
22

ap

indeks

29
ako se javi promasaj
u TLB-u, onda se podatak
standardno trazi u
strani
cnoj tablici

prvo se gleda TLB

v n z

afs

v n z

afs

19
19

13
af s

ap

31

Zadatak 30 Izracunati efektivno vreme pristupa DRAM memorije pri korisc enju strategije otvorene i zatvorene vrste ako je verovatnoca pogotka u bafer vrste:
(a) p = 0.2,
(b) p = 0.5 i
(c) p = 0.8.
Resenje. Poznato je trp = tRCD = 20 ns i CL = 30 ns, gde je trp vreme potrebno za zatvaranje
vrste (row precharge), tRCD je vreme potrebno za otvaranje vrste, a CL je pristup koloni.
Kod politke zatvorene vrste, zatvaranje vrste se radi odmah po citanju podatka. Kod politike
otvorene vrste, neka vrsta je uvek otvorena u slucaju pogotka, treba samo procitati podatak,
a u slucaju promasaja treba prvo zatvoriti vrstu, otvoriti novu i procitati podatak iz nje. Vrste
moraju da se zatvore jer je citanje podataka iz DRAM-a destruktivno. Odavde je
Tz.v. = tRCD + CL = 50 ns
To.v. = p CL + (1 p) (trp + tRCD + CL)
i zamenom brojnih vrednosti se dobija
(a) To.v. = 30 0.2 + 70 0.8 = 62 ns
(b) To.v. = 30 0.5 + 70 0.5 = 50 ns
(c) To.v. = 30 0.8 + 70 0.2 = 38 ns

32

You might also like