Upload
stefan-alimpic
View
312
Download
13
Embed Size (px)
Citation preview
7/25/2019 AOR Pismeni Skripta
http://slidepdf.com/reader/full/aor-pismeni-skripta 1/32
Arhitektura i organizacija racunara
Originalna skripta: Igor Dordevic – 14290
LATEX i dopuna: Lazar Ljubenovic – 14722
verzija 0.9β
Zadatak 1 Za masinu tipa (load-store ) za koju je smesa naredbi dobijena me-
renjem 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, upore-diti vremena izvrsenja i MIPS vrednosti neoptimizovanog i optimizovanog koda. Da li se poredenja
kodova po vremenu izvrsenja i MIPS-u slazu? Objasniti.
tip instrukcije ucestanost broj ciklusa takta
ALU 43% 1LOAD 21% 2
STORE 12% 2grananje 24% 2
Resenje. Kod neoptimizovane (stare) varijante masine, broj ciklusa po instrukciji racunamo kaoCPIs = (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
T s = N s · CPIs · T C = N s · 1.57 · 2 ns = 3.14 · N s ns
i u tom slucaju je
MIPSs = N sT s · 106
= N s
3.14 · N s · 10−9 · 106 = 318.47,
pri cemu je N S ukupan broj instrukcija koji se izvrsava u programu, u neoptimizovanoj varijanti,T C = 2 ns je trajanje ciklusa takta.
Nakon sto se obavi opisana optimizacija, dobija se novi procesor. Posto on ima 50% manjeALU instrukcija, novi broj instrukcija dobijamo na sledeci nacin:
N N
= N S
− 0.5 · 0.43 · N S
broj ALUinstrukcija
= 0.785 · N S
.
Treba utvrditi koji procenat od novog broja instrukcija (N N) svaka od instrukcija cini ponaosob.To racunamo kao kolicnik novog broja tih instrukcija (menja se samo za ALU jer je samo kodnjih ucinjena optimizacija) i ukupnog bro ja novih instrukcija, odnosno:
ALU : 0.5 · 0.43 · N S
N N=
0.5 · 0.43 · N S0.785 · N S
≈ 0.27 = 27%,
1
7/25/2019 AOR Pismeni Skripta
http://slidepdf.com/reader/full/aor-pismeni-skripta 2/32
LOAD: 0.21 · N S0.785 · N S
≈ 27%, STORE: 0.12 · N S0.785 · N S
≈ 15%;
grananje : 0.24 · N S
0.785 · N S≈ 31%.
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
T N = N N · CPIN · T C = 2.72N N ns i MIPSN = N NT N · 106
= 288.6.
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 izvrsenjazakljucujemo da je druga (optimizovana) varijanta brza.
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 T A = 1 0 s iT B = 15 s, respektivno, a odgovarajuce brzine sa V A i V B. Uporedimo sada razliku njihovihbrzina sa brzinom jednog od racunara. Iz
|V A − V B |
V B=
V AV B
− 1 = T BT A
− 1 = 0, 5 = 50%
dobijamo da je racunar A za 50% brzi od racunara B , a iz
|V B − V A|
V A= 1 −
V BV A
= 1 − T AT B
= 0, 3 = 33, 3%
dobijamo da je racunar B za 33% sporiji od racunara A.Relacija V A/V B = T A/T B dobija se iz cinjenice da je brzina obrnuto proporcionalna vremenu
izvrsenja.
Zadatak 3 Cetiri takmicara treba da predu put duzine 80km podeljen u dve deonice, A = 50kmi B = 30km. Deonicu A svi takmicari prelaze peske brzinom 5 km/h. Deonicu B prvi takmicar
nastavlja automobilnom, drugi kamionom, treci biciklom, a cetvrti pesice. Ako se bicikl krece
20km/h, kamion 60km/h, a automobil 120km/h, koliko ce puta prvi takmicar stici na cilj brze
od poslednjeg takmicara?
Resenje. Posto svi takmicari deonicu A prelaze peske, za sve takmicare je vreme potrebno zaprelazak te deonice jednako
vremeA = 50km
5 km/h = 10 h.
Na isti nacin se racuna ju vremeB za sve takmicare posebno, kako je to prikazano u sledecojtabeli:
2
7/25/2019 AOR Pismeni Skripta
http://slidepdf.com/reader/full/aor-pismeni-skripta 3/32
takmicar vremeA vremeB poboljsanjeB poboljsanjeA+B
4. 10 h 30km5 km/h
= 6 h 66
= 1 1
3. 10 h 30km20km/h
= 1, 5 h 61,5
= 4 1.39
2. 10 h 30km
60km/h = 0, 5 h 6
0,5 = 12 1.521. 10 h 30km
120 km/h = 0, 25 h 6
0,25 = 24 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 setrazi, PD je poboljsani deo od ukupnog puta (ovde je to 30 km/80km), a PBPD je poboljsanjebrzine na pobosljanom delu, tj. cetvrta kolona iz tabele. Tako se za cetvrtog takmicara dobija
PBU = 1
1 − PD + PDPB
= 1
1 − 3080
+ 30/8024
= 192
123 ≈ 1.56.
Zadatak 4 Zahvaljujuci poboljsanjima, novi racunar obavlja neku aktivnost 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 ukupnopoboljsanje
PBU = 1
1 − PD + PD
PBPD
= 1
1 − 0.4 + 0.4
10
= 1.56.
Zadatak 5 Pojavila se mogucnost da upetostrucimo brzinu centralnog procesora upetostruca-vanjem 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 jeukupno poboljsanje brzine
PBU = 1
1 − PD − PDPBPD
= 1
1 − 0.5 + 0.55
= 1
0.6 ≈ 1.67.
S druge strane, pocetna (stara) cena citavog racunara C S se moze predstaviti kao zbir cene
centralnog procesora C CP(S) =
1
3 C S i cene preostalog dela C ost(S) =
2
3 C S. Cena novog procesoraC N je zbir novih cena procesora i ostatka. Posto je samo procesor zamenjen, C ost(N) = C ost(S) =23
C S, a cena procesora je upetostrucena pa je C CP(N) = 5 · C CP(S) = 53
C S. Odavde je
C N = 5
3C S +
2
3C S =
7
3C S ≈ 2.33 · C S,
pa zakljucujemo da investicija nije dobra jer je povecanje brzine (1.67) manje od povecanja cene(2.33).
3
7/25/2019 AOR Pismeni Skripta
http://slidepdf.com/reader/full/aor-pismeni-skripta 4/32
Zadatak 6(a) Razmotrimo sledece dve alternative za realizaciju uslovne naredbe grananja kod dva proce-
sora, CPA i CPB . Kod CPA, kod uslova postavlja se naredbom poredenja iza koje mora sle-
diti naredba grananja. Kod procesora C B poredenje je ukljuceno u naredbu grananja. Kodoba 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 cine 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% · 2 uslovno
grananje(BE)
+ (100% − 20%) · 1 ostale naredbe
(ukljucujuci CMP)
= 1.2,
odakle se, primenom poznate formule, dobija
T A = N A · CPIA · T CA = 1.2N A · T CA.
Sada T B treba odrediti primenom formule T B = N B · CPIB · T CB. Dakle, treba naciparametre sa desne strane jednakosti.
Poznato je da je perioda takta procesora CPB za 25% duza od periode takta CPA, tj.T CB = 1.25T CA. Procesor B umesto dve instrukcije (CMP Ri Rj i BE adr) koristi samo jednu (BE Ri Rj adr), sto znaci da je N B = N A − 20% · N A = 0.8N A.
Grananje cini 0.2N A
N B=
0.2N A0.8N A
= 25% instrukcija procesora B , pa je
CPIB = 25% · 2 uslovno
grananje
+ (100% − 25%) · 1 ostale naredbe8
= 1.25.
Odavde je
T B = N B · CPIB · T CB = 0.8N A · 1.25 · 1.25T CA = 1.25 · N A · T CA.
Posto je T A < T B, zakljucujemo da je procesor A brzi (ako se meri po vremenu izvrsenja).(b) Sa ovim izmenama je T CB = 1.1 · T CA. Zato je T B = 0.8N A · 1.25 · 1.1T CA = 1.1N AT CA.
Dakle, sada je T B < T A pa je procesor B brzi.
4
7/25/2019 AOR Pismeni Skripta
http://slidepdf.com/reader/full/aor-pismeni-skripta 5/32
Zadatak 7 Dat je racunar koji koristi (load-store ) arhitekturu. U tabeli su date
ucestanosti pojedinih naredbi i odgovarajuca trajanja naredbi izrazena brojem perioda takta. Po-
znato je da 25% ALU naredbi jednokratno koristi operande iz napunjenih registara. Ovoj arhitek-
turi dodate su ALU naredbe koje imaju jedan izvorni operand u memoriji. Ove nove registarsko-memorijske naredbe traju dva perioda takta. Ukoliko ovakva izmena pove cava broj perioda kloka
za naredbe grananja na 3, ali ne utice na trajanje periode takta (ovo je uzrokovano nekim osobe-
nostima protocne organizacije procesora), da li bi time ukupne performanse bile povecane?
naredba ucestanost perioda takta
ALU 43% 1LOAD 21% 2
STORE 12% 2grananje 24% 2
Resenje. Vrsi se sledeca optimizacija:
LD R2, adrADD R1, R2
−→ ADD R1, adr.
Jasno je da jeCPIS = 0.43 · 1 + (0.21 + 0.12 + 0.24) · 2 = 1.57
i odatleT S = N S · CPIS · T C = 1.57N S · T C.
S druge strane, kako je N N = N S − 0.25 · 0.43N S = 0.8925N S, imamo:
ALU R-R: 0.75 · 0.43 · N S
0.8925 · N S
· 100% = 36% (1 takt),
ALU R-M: 0.25 · 0.43 · N S
0.8925 · N S· 100% = 12% (2 takta),
LOAD:
stari broj 0.21 · N S −
bro j izbacenih LD 0.25 · 0.43 · N S
0.8925 · N S· 100% = 11.5% (2 takta),
STORE: 0.12N S
0.8925 · N S· 100% = 13.5% (2 takta) i
grananje: 0.24N S
0.8925 · N S· 100% = 27% (3 takta).
Odavde sada imamo
CPIN = 0.36 · 1 + (0.12 + 0.115 + 0.135) · 2 + 0.27 · 3 = 1.91
odakle jeT N = N N · CPIN · T C = 0.8925N S · 1.91 · T C = 1.7N S · T C.
Dakle, posto je T S < T N, zakljucujemo da je prvo resenje bolje.
5
7/25/2019 AOR Pismeni Skripta
http://slidepdf.com/reader/full/aor-pismeni-skripta 6/32
Zadatak 8 Na nekom racunaru merenjem su nadene (dinamicke) ucestanosti pojavljivanja po-
jedinih 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 operanadaobracanje je jednokratno, u 55% aktivnih operanada obracanje je dvokratno i u 20% aktivnih ope-
ranada 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 pobolj sane? Koliko?
naredba ucestanost perioda takta
ALU (R-R) 20% 1ALU (R-M) 28% 2
LOAD 12% 2STORE 8% 2
upravljanje 22% 2ostale 10% 2
Resenje. Lako se dobija
CPIS = 0.2 · 1 + (1 − 0.2) · 2 = 1.8 i odatle T S = 1.8 · N S · T C.
Jasno je da je N N = N S + N LD,N + N ST,N, i kako je
N LD,N = 0.75
0.25 +
0.55
2 na 2ide 1
+ 0.20
3 na 3ide 1
· 0.28N S = 0.12425N S i
N ST,N = 0.25 · 0.28N S = 0.07N S,
dobijamo N N = 1.194N S. Sada imamo:
ALU: (0.2 + 0.28) · N S
1.194 · N S· 100% = 40.2%
LOAD: 0.12N S + 0.12425N S
1.194 · N S· 100% = 20.43%
STORE: 0.08N S + 0.07N S
1.194 · N S· 100% = 12.56%
upravljanje: 0.22N S
1.194 · N S· 100% = 18.42%
ostale: 0.1N S
1.194N S · 100% = 8.38%
Sada je
CPIN = 0.402 · 1 + (1 − 0.402) · 2 = 1.59 i
T N = 1.194N S · 1.598T C = 1.908 · N S · T C.
Posto je T N > T S, u drugom slucaju imamo pogorsanje.
6
7/25/2019 AOR Pismeni Skripta
http://slidepdf.com/reader/full/aor-pismeni-skripta 7/32
Zadatak 9 Instrukcije nekog racunara su osamnaestobitne, a adresna polja duzine sedam bita.
Ustanoviti da li je moguce formatima ovih duzina kodirati dvoadresnih, jednoadresnih i
bezadresnih instrukcija. Skicirati karakteristicne detalje, nacine kodiranja instrukcija i postupak
njihovog dekodiranja.
Resenje. Trazene naredbe imaju oblik prikazan na slici desno.
KO2 OP1 OP2 dvoadresne4 b 7 b 7 b
KO2 + KO1 OP jednoadresne11 b 7 b
KO2 + KO1 + KO0 bezadresne18 b
Kod dvoadresnih naredbi, na osnovu pret-hodne slike, na raspolaganju su cetiri bita.Pomocu njih mozemo kodirati ukupno 24 = 16naredbi, pa kako je 16 > 15, moguce je isko-dirati 15 dvoadresnih naredbi.
Za jednoadresne naredbe, kod operacije jeduzine 11 b. Medutim, ne mogu se koristitisve kombinacije bitova – jedan deo kombina-cija vec je iskoriscen za kodiranje dvoadresnih
naredbi. Od 11 bitova koji su na raspolaganju,prva cetiri si koriscena za kodiranje dvoadre-snih naredbi – i to njih 15. Preostala je daklesamo 16 − 15 = 1 neiskoriscena kombinacija ova cetiri bita. Preostala sedam bita mogu iskodi-rati jos 1 · 27 = 1 · 128 = 128 naredbi, sto je vece od trazenih 125, pa je i ove naredbe moguceiskodirati.
Slicno razmatranje vazi i za bezadresne naredbe: prvih 11 bitova iskorisceno je za kodiranje125 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 28naredbi, vec ostaje mesta za jos 384 − 28 = 356 neiskoriscenih kombinacija kojima se moguiskodirati bezadresne naredbe.
Prethodno razmatranje se moze predstaviti i sledecim jednacinama:
2lKO2 = 24 = 16 > 15,2lKO2 − M
· 2lKO1 = (16 − 15) · 27 = 128 > 125 i
2lKO2 − M
· 2lKO1 − N
· 2lKO0 = 3 · 27 = 384 ≥ 28.
Sve nejednakosti sem poslednje su stroge, jer ukoliko se svi bitovi iskoriste za kodiranje nekeod naredbi, ne ostaje mesta za kodiranje ostalih naredbi nakon nje, pa nema potrebe racunatidalje. Karakteristicni detalji kod kodiranja instrukcija prikazani su na sledecoj slici.
4 b 7 b 7 b
KO2 KO1 KO0
15
0 0 0 0
dvoadresne instrukcije
0 0 0 1
· · ·1 1 1 0
125
1 1 1 1 0 0 0 0 0 0 0
jednoadresne instrukcije1 1 1 1 0 0 0 0 0 0 1
· · · · · ·1 1 1 1 1 1 1 1 1 0 0
28
1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0
bezadresne instrukcije1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 1
· · · · · · · · ·1 1 1 1 1 1 1 1 1 0 1 0 0 1 1 0 1 1
7
7/25/2019 AOR Pismeni Skripta
http://slidepdf.com/reader/full/aor-pismeni-skripta 8/32
Zadatak 10 Dat je zapis sa sledecim elementima:
• integer(* H’11121314 rec *),
• double integer (* H’2122232425262728 dvostruka rec *),
• unsigned word (* H’31323334 rec *),• array [1..7] of char (* ABCDEFG bajt *),
• short (* H’5152 polurec *) i
• integer (* H’61626364 rec *).
Prikazati smestanje ovog zapisa u masinama sa adresiranjem repa i adresiranjem glave. Memo-
rijske lokacije su duzine 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 H’08, H’0C, H’12, H’20 za sva tri slucaja.
Resenje.
7 6 5 4 3 2 1 0
11 12 13 14 00
21 22 23 24 25 26 27 28 08
D C B A 31 32 33 34 10
51 52 G F E 18
61 62 63 64 20
Adresiranje glave
0 1 2 3 4 5 6 7
00 11 12 13 14
08 21 22 23 24 25 26 27 28
10 31 32 33 34 A B C D
18 E F G 51 52
20 61 62 63 64Adresiranje repa
0 1 2 3 4 5 6 7
00 11 12 13 14
08 21 22 23 24 25 26 27 28
10 D C B A 31 32 33 34
18 51 52 G F E
20 61 62 63 64Imitacija adresiranja glave
na masini sa adresiranjem repa
Na slikama levo dat je izgled memorije nakonsmestanja datih podataka. Kako su pristupimemoriji poravnati, podatak duzine d morapoceti od adrese koja je deljiva sa d.
Kada se u masini sa adresiranjem glaveimitira adresiranje repa, nove adrese seracunaju po formuli a ⊕ i, gde je a adresa po-datka kada se koristi adresiranje repa, a i je
i =
7, za bajt
6, za polurec
4, za rec
0, za dvostruku rec.
Koristeci datu formulu, dobijamo
H08 ⊕ H07 = HOF
H0C ⊕ H04 = HO8
H12 ⊕ H07 = H15
H20 ⊕ H06 = H26
U tabelama levo su isprekidanim linijamazaokruzeni trazeni podaci, a njihov tabelarnipregled je dat u sledecoj tabeli.
duzina podatka adresa adresa repa adresa glave adresa repa
bajt H’08 28 21 28rec H’0C 21, 22, 23, 24 25, 26, 27, 28 21, 22, 23, 24
bajt H’12 32 33 32polurec H’20 63, 64 61, 62 63, 64
8
7/25/2019 AOR Pismeni Skripta
http://slidepdf.com/reader/full/aor-pismeni-skripta 9/32
Zadatak 11 Algoritam sa slike realizovati:
(a) pomocu kola za kasnjenje i potrebnih logickih elemenata
(b) pomocu PAL komponente PALRPA
(c) mikroprogramom.
Pocetak
RM ← aAK ← 0
PRm...0 ← bPR−1 ← 0
M ← m − 1
PR0 = 0 ∧ PR−1 = 1 PR0 = 1 ∧ PR−1 = 0
AK ← AK + RM AK ← AK + RM
(AK, PR) a 1
M ← M − 1
M = 0
Kraj
da
da
ne
da
ne
ne
stanje S 0
stanje S 3 stanje S 4
stanje S 6
stanje S 1
stanje S 2
stanje S 5
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. Priizradi 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 da
⇐⇒ f (x)
ne da
9
7/25/2019 AOR Pismeni Skripta
http://slidepdf.com/reader/full/aor-pismeni-skripta 10/32
S
x2 x2
x1 x1 x1x1
x3 x3
K
y1
y2
y3 y4
y5
Slika 2: Sema uz resenje zadatka 11
10
7/25/2019 AOR Pismeni Skripta
http://slidepdf.com/reader/full/aor-pismeni-skripta 11/32
(b) Stanja se pamte flip-flopovima iz PAL komponente. Ima ukupno sedam stanja (od S 0 doS 6), pa je potrebno koristiti log2 7 = 3 flip-flopa. Kodiranje je predstavljeno u sledecojtabeli.
Qn2 Qn
1 Qn0 x1 x2 x3 Qn+1
2 Qn+11 Qn+1
0 Dn2 Dn
1 Dn0
0 0 0 0 x x x 0 0 1 1 0 0 10 0 1 1 x x x 0 1 0 2 0 1 00 1 0 2 1 0 x 0 1 1 3 0 1 10 1 0 2 0 1 x 1 0 0 4 1 0 00 1 0 2 0 0 x 1 0 1 5 1 0 10 1 0 2 1 1 x 1 0 1 5 1 0 10 1 1 3 x x x 1 0 1 5 1 0 11 0 0 4 x x x 1 0 1 5 1 0 11 0 1 5 1 0 1 0 1 1 3 0 1 11 0 1 5 0 1 1 1 0 0 4 1 0 01 0 1 5 0 0 1 1 0 1 5 1 0 11 0 1 5 1 1 1 1 1 0 6 1 1 01 0 1 5 x x 0 1 1 0 6 1 1 01 1 0 6 x x x 0 0 0 0 0 0 01 1 1 7 x x x 0 0 0 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 standardnuformu, na primer PDNF.
Direktno iz stanja se izvodi
y1 = Q2 · Q1 · Q0 y2 = Q2 · Q1 · Q0 y3 = Q2 · Q1 · Q0
y4 = Q2 · Q1 · Q0 y5 = Q2 · Q1 · Q0
Na prvi prikljucak PAL komponente dovodimo clock signal. Ulaze 2, 3 i 4 koristimo zasignale 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 izvodeupravljaci signali. Mogu se izvesti bilo koji, ali ove linije treba iskoristiti za one najkom-plikovanije, 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 signaly2 realizujemo na taj nacin (pomocu troulaznog AND kola).
11
7/25/2019 AOR Pismeni Skripta
http://slidepdf.com/reader/full/aor-pismeni-skripta 12/32
(c) Postoje dva nacine kodiranja mikrositrunckija. Jedan nacin omgucava istovremeno aktivi-ranje 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 uslov adresagrananja
U tabeli nize prikazano kodiranje mikrooperacija.
KMO00 STOP01 AUS10 grananje11 AUS + grananje
Postoje tri formata za AUS polje. Sa n je obelezen broj upravljackih signala, a sa m brojistovremeno aktivnih upravljackih signala.
• horizontalni: l = n,• vertikalni: l = log2 n (zahteva kodiranje) i• dijagonalni: l = m · log2(n + 1).
Uslov se moze kodirati na dva nacina.
• bro j bitova moze biti jednak bro ju promenljivih, oblika x1x2x3 koji koristi po jedanbit za svaki uslov, pri cemu u svakom uslovu mora da ucestvuje svaka promenljiva;
• moze posto jati duplo veci broj bitova, oblika a1x1a2x2a3x3, pri cemu ai govori o tomeda li xi ucestvuje u uslovu – ovaj nacin je pogodan ako ima puno komplikovanihuslova.
Mikroprogram je dat u sledecoj tabeli.
adresa KMO AUS uslov adresa grananja prelaz stanjaH’00 0 1 1 0 0 0 0 × × × × × × × × × × S 1H’01 0 1 0 1 0 0 0 × × × × × × × × × × S 2H’02 1 0 × × × × × 1 1 1 0 0 × 0 1 1 1 BG1 → S 3H’03 1 0 × × × × × 1 0 1 1 0 × 1 0 0 0 BG2 → S 4H’04 0 1 0 0 0 0 1 × × × × × × × × × × S 5H’05 1 0 × × × × × 0 × 0 × 1 1 0 0 1 0 BG3 → BG1
H’06 0 0 × × × × × × × × × × × × × × × STOPH’07 1 1 0 0 1 0 0 0 × 0 × 0 × 0 1 0 0 S 3 → S 5H’08 1 1 0 0 0 1 0 0 × 0 × 0 × 0 1 0 0 S 4 → S 3
Za adrese grananja se gleda najveca adresa skoka. Na primer, da nije bilo skoka na H’08, 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 poslednjojkoloni gornje tabele.
U drugo j varijanti, format mikroinstrukcije je prikazan na sledecoj slici.
AUS
uslov adresaKMO
2 b
3 b + 7 b
6 b 4 b
12
7/25/2019 AOR Pismeni Skripta
http://slidepdf.com/reader/full/aor-pismeni-skripta 13/32
AUS ce biti iskodirani vertikalnim formatom jer je najkraci: potrebno je 3 b, a uslov jeoblika a1x1a2x2a3x3. Polje KMO bi bilo duzine 1 b da je moglo bez STOP signala.
U ovom slucaju, mikroprogram je predstavljen sledecom tabelom.
adresa KMO AUS ili uslov + adresa prelaz stanjaH’0 0 1 0 0 1 × × × × × × × S 1H’1 0 1 0 1 0 × × × × × × × S 2H’2 1 0 1 1 1 0 0 × 0 1 1 1 BG1 → S 3H’3 1 0 1 0 1 1 0 × 1 0 0 1 BG2 → S 4H’4 0 1 1 0 1 × × × × × × × S 5H’5 1 0 0 × 0 × 1 1 0 0 1 0 BG3 → BG1
H’6 0 0 × × × × × × × × × × STOPH’7 0 1 0 1 1 × × × × × × × S 3H’8 1 0 0 × 0 × 0 × 0 1 0 0 → S 5H’9 0 1 1 0 0 × × × × × × × S 4
H’A 1 0 0 × 0 × 0 × 0 1 0 0 → S 5
13
7/25/2019 AOR Pismeni Skripta
http://slidepdf.com/reader/full/aor-pismeni-skripta 14/32
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 mikrona-
redbe. S 0 je pocetno a S 6 krajnje stanje bloka upravljanja.
x1 x2 S 0 S 1 S 2 S 3 S 4 S 5 S 60 0 S 0 S 2 S 2 S 4 S 4 S 3 S 60 1 S 3 S 1 S 3 S 1 S 5 S 4 S 01 0 S 2 S 3 S 4 S 2 S 5 S 6 S 01 1 S 1 S 2 S 1 S 5 S 3 S 4 S 6
stanje AUS
S 0 y1
S 1 y2, y3
S 2 y1, y4
S 3 y7
S 4 y4, y5
S 5 y3, y6
S 6 y8
Resenje. Za polje AUS (aktiviranje upravljckih signala) moze se koristiti horizontalni, vertikalniili dijagonali format. Sledecim razmatranjem biramo jedan od njih:
AUS −→
horizontalni: 8 b =⇒ optimalno i najjednostavnije,
vertikalni: otpada jer nam treba vise od jednog signala istovremeno,
dijagonalni: 2 · log2(8 + 1) = 8 b =⇒ optimalno ali komplikovanije.
adresamikronaredbe KMO AUS ili
uslov+adresa komentarH00 0 10000000 S 0 00000
H01 1 0000000X grananje na S 0H02 1 0101011X grananje na S 3H03 1 1000111X grananje na S 2H04 0 01100000 S 1 00100
H05 1 0100100X grananje na S 1H06 1 1001011X grananje na S 3H07 0 10010000 S 2 00111
H08 1 0000111X grananje na S 2H09 1 1001111X grananje na S 4H0A 1 1100100X grananje na S 1H0B 0 00000010 S 3 01011
H0C 1 0100100X grananje na S 1H0D 1 1000111X grananje na S 2H0E 1 1110010X grananje na S 5H0F 0 00011000 S 4 01111
H10 1 0001111X grananje na S 4H11 1 1101011X grananje na S 3
H12 0 00100100 S 5 10010H13 1 0001011X grananje na S 3H14 1 0101111X grananje na S 4H15 1 1101111X grananje na S 4H16 0 00000001 S 6 10110
H17 1 0010110X grananje na S 6H18 1 0100000X grananje na S 0H19 1 1000000X grananje na S 0H1A 1 1110110X grananje na S 6
Za KMO je dovoljan jedanbit jer je potrebno samo razli-kovati grananje od upravljackihsignala (i nije potreban STOPsignal). Po uslovu zadatka (iztabele iz zadatka, levo), uslov
se kodira sa dva bita. Upra-vljackih signala ima 8, pa je zahorizontalni format potrebno 8bitova (iz tabele iz zadatka, de-sno).
14
7/25/2019 AOR Pismeni Skripta
http://slidepdf.com/reader/full/aor-pismeni-skripta 15/32
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 80ps, 30ps, 60ps, 50ps, 70ps i
10ps respektivno. Izlazni signali iz poslednjeg bloka F upisuju se u registar sa vremenom prosti-
ranja 20ps. Mozemo projektovati protocnu verziju ove mreze umetanjem protocnih registara savremenom prostiranja 20ps izmedu parova ovih blokova, cime ovih sest blokova delimo u stepene.
(a) Izmedu kojih blokova treba umetnuti jedan protocni registar da formiramo protocnu verziju
mreze sa dva stepena koja ce imati maksimalnu propusnost za toliki broj stepena? Kolika
ce biti latencija i propusnost takve mreze?
(b) Izmedu kojih blokova treba umetnuti dva protocna registra da formiramo protocnu verziju
mreze sa tri stepena koja ce imati maksimalnu propustost za toliki broj stepena? Kolika ce
biti latencija i propusnost takve mreze?
(c) Izmedu kojih blokova treba umetnuti tri protocna registra da formiramo protocnu verziju
mreze sa cetiri stepena koja ce imati maksimalnu propustost za toliki broj stepena? Kolika
ce biti latencija i propusnost takve mreze?
(d) Koliki je minimalni broj stepena koji ce dati protocnu organizaciju sa maksimalnom do-
stiznom propusnoscu? Prikazati tu organizaciju i izracunati njenu latenciju i propusnost.
Resenje.
– Minimalno vreme prostiranja kroz jedan stepen jednako je na jduzem vremenu prostiranjakroz 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 protocniregistar iza stepena.
– Latencija T L 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 T L = (80+30+60+50+70+10+20)ps =
320 ps, a propusnost w = 1T L
= 1320 · 10−12
= 3.125 · 109 pod/s.
(a) Protocni registar treba umetnuti izmedu blokova C i D, jer su tada latencije protocnihstepena jednake T A+B+C = (80+30+60) ps = 170 ps i T D+E +F = (50+70+10) ps = 130 ps.
Dodavanjem protocnog registra dobijamo T (a)C = 170 ps + 20 ps = 190 ps, a odatle
T (a)L = 2T
(a)C = 380 p s i
w(a) = 1
T (a)C
= 1
190 · 10−12 = 5.263 · 109pod/s,
odnosno190ps
A B C 170ps
R D E F 130 ps
.
(b) Imamo
T (b)L = 3T
(b)C = 3 · 130 ps = 390 ps i
w(b) = 1
T (b)C
= 1
130 · 10−12 = 7.692 · 109pod/s
15
7/25/2019 AOR Pismeni Skripta
http://slidepdf.com/reader/full/aor-pismeni-skripta 16/32
jer je130 ps
A B
110 ps
R C D
110ps
R E F
80ps
.
(c) Imamo
T (c)L = 4T
(c)C = 4 · 110 ps = 440ps i
w(c) = 1
T (c)C
= 1
110 · 10−12 = 9.091 · 109pod/s
jer je
A 80ps
110 ps R B C
90ps
R D 50ps
R E F 80ps
.
(d) Imamo
T (d)L = 5T (d)
C = 5 · 100 ps = 500 ps i
w(d) = 1
T (d)C
= 1
100 · 10−12 = 10 · 109pod/s
jer je
100 ps A
80ps
R B 30ps
R C 60ps
R D 50ps
R E F 80ps
.
16
7/25/2019 AOR Pismeni Skripta
http://slidepdf.com/reader/full/aor-pismeni-skripta 17/32
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 premoscavanja, ali
pretpostaviti da upis u registar prethodi citanju istog registra u istom cisklusu kloka. Kolikociklusa zahteva izvrsenje petlje?
(b) Prikazati vremenski dijagram izvrsenja ovog niza instrukcija pri postojanju hardvera za
premoscavanje. Koliko ciklusa zahteva izvrsenje petlje?
Program koji se posmatra je sledeci.
1 pon: LW R1, O(R2)
2 ADDI R1, R1, #1
3 SW R1, O(R2)
4 ADDI R2, R2, #4
5 SUB R4, R3, R2
6 BNEZ R4, pon
Resenje. U peto j 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. Uslovniskok iz poslednje linije koda ce biti ispunjen sve dok ta razlika ne dosegne nulu, sto ce se desitiu 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 ukupno17 · 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 pri-kazan je u nastavku.
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
Zakljucujemo da je u ovom slucaju potrebno 10 ciklusa za jedan prolaz kroz petlju, dakleukupno 10 · 99 + 1 = 991 ciklus.
17
7/25/2019 AOR Pismeni Skripta
http://slidepdf.com/reader/full/aor-pismeni-skripta 18/32
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 premoscavanja,
ali pretpostaviti da upis u registar prethodi citanju 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
premoscavanje. Za svako premoscavanje ukazati na ciklus kloka u kome se ono vrsi, kao i
na protocni stepen iz koga se podatak za premoscavanje uzima i protocni stepen kome se
podatak dostavlja. Pretpostaviti da se grananjima rukuje predvidanjem da ce biti obavljena.
Koliko ciklusa zahteva izvrsenje ovog programa?
Niz instrukcija koji se razmatra je sledeci.
1 pon: ADDI R3, R5, #4
2 LW R2, 100(R3)
3 SW R2, 20(R8)
4 SLL R2, R2, #45 SW R2, 0(R6)
6 SUBI R6, R6, #8
7 SUB R7, R6, R9
8 NBEZ R7, pon
9 SW R9, 100(R7)
Resenje. Razlika registara R6 i R6 smanjuje se za 8 pri svakom prolasku kroz petlju, dakle imaukupno 96/8 = 12 prolaza.
IF ID EX ME WB IF
IF ID • • EX ME WBIF • • 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 WB IF
IF ID EX ME W B
IF ID EX ME WB
IF ID EX ME WBIF ID EX ME WB
IF ID EX ME WB
IF ID EX ME WB
IF ID EX ME WB
IF ID E X ME W B
Na osnovu dijagrama je, za procesor koji ima hardver za premoscavanje, potrebno 12·11+5 =137 ciklusa za izvrsenje zadatog programa.
18
7/25/2019 AOR Pismeni Skripta
http://slidepdf.com/reader/full/aor-pismeni-skripta 19/32
Zadatak 16 Dat je deo programa koji se izvrsavana na protocnom sistemu DLX uz koriscenje
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 premoscavanja, alipretpostaviti da upis u registar prethodi citanju istog registra u istom ciklusu kloka. Koliko
ciklusa zahteva izvrsenje petlje?
(b) Prikazati vremenski dijagram izvrsenja ovog niza instrukcija pri postojanju hardvera za pre-
moscavanje. Koliko ciklusa zahteva izvrsenje petlje?
Deo programa koji se razmatra je sledeci.
1 pon: LD F0, 0(R2)
2 LD F4, 0(R3)
3 MULD F0, F0, F4
4 ADDD F2, F0, F2
5 ADDI R2, R2, #8
6 ADDI R3, R3, #8
7 SUB R5, R4, R28 BNEZ R5, pon
Resenje. Petlja ce se ponoviti 792/8 = 99 puta. Na osnovu navedenih dijagrama, potrebno je99 · 23+1 = 2278 i 99 · 19 + 1 = 1882 ciklusa za procesor bez pemoscavanja i sa premoscavanjem,respektivno.
IF ID EX ME WB IF
IF ID EX ME W B
IF ID • • M1 M2 M3 M4 M6 M7 W B
IF • • ID • • • • • • A1 A2 A3 A4 WB
IF • • • • • • ID EX ME WBIF ID EX ME • WB
IF ID • EX ME WB
IF • ID • • EX ME WB
IF ID EX ME WB IF
IF ID EX ME W B
IF ID • M1 M2 M 3 M4 M 5 M6 M 7 W B
IF • ID • • • • • • A1 A2 A3 A4 WB
IF • • • • • • ID EX ME WB
IF ID EX ME • WB
IF ID EX • ME WB
IF ID • EX ME WB
19
7/25/2019 AOR Pismeni Skripta
http://slidepdf.com/reader/full/aor-pismeni-skripta 20/32
Zadatak 17 Projektovati paralelni 32-bitni sabirac sa maksimalnim vremenom prostiranja od
70ns. 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 njihprenosi prostiru serijski;
(c) cetiri 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 najpovolj-
nije resenje i prikazati ga na nivou blokova.
Resenje. Za sabirace sa serijskim prenosom, vreme prostiranja je T = 2nT e, gde je T e vremeprostiranja kroz jedno logicko kolo i n broj bitova koji se sabiraju. Prema tome, prva varijantaiz zadatka otpada jer je 2 · 32 · T e = 128ns > 70ns.
Preostale dve ponudene varijante koriste sabirace sa paralelnim prenosom. Kod njih vremeprostiranja ne zavisi od broja bitova i iznosi T = 4T
e. Dakle, za osam sabiraca vreme prostiranja
je T = 8 · 4T e = 64 ns a za cetiri je T = 4 · 4T e = 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 izabratiosam cetvorobitna sabiraca.
Zadatak 18 Koriscenjem metoda preskoka jedinica pomnoziti
10100 × 1011110.
Resenje. Metodom prekoka jedinica se 1011110 kodira kao 1100010. Mnozenjem se dobija010100 × 01100010 = 011101011000, jer je 01111 = 10000 − 1 = 10001. Postupak mnozenja jeprikazan u sledecoj tabeli.
0 1 0 1 0 0 × 0 1 1 0 0 0 1 01 1 1
1 1 1 1 1 0 1 1 0 0 0
1 0 1 0 0 0 0 01 0 1 0 0
0 1 1 1 0 1 0 1 1 0 0 0
zbog nule na kraju(pregledniji zapis)
20
7/25/2019 AOR Pismeni Skripta
http://slidepdf.com/reader/full/aor-pismeni-skripta 21/32
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 nasledeci nacin:
+12 = 01100 − 12 = 10100 + 9 = 01001 − 9 = 10111.
Postupci za sva cetiri slucaja mnozenja dati su u nastavku.
0 1 1 0 0 × 0 1 0 0 1 01 1 0 1 1
10 1 1 1
1 1 1 1 1 0 1 0 00 1 1 0 00 0 0 0 0
1 1 0 1 0 00 1 1 0 0
1 0 0 0 1 1 0 1 1 0 0
(a) (+12)× (+9)
1 0 1 0 0 × 0 1 0 0 1 01 1 0 1 1
11 10 1 1
0 1 1 0 01 1 1 1 0 1 0 00 0 0 0 0
0 1 1 0 01 0 1 0 0
1 0 1 1 0 0 1 0 1 0 0
(b) (−12)× (+9)
0 1 1 0 0 × 1 0 1 1 1 01 1 0 0 1
1 10 1
1 1 1 1 1 0 1 0 00 0 0 0 0
0 0 0 0 00 1 1 0 0
1 0 1 0 00 1 1 1 0 0 1 0 1 0 0
(c) (+12)× (−9)
1 0 1 0 0 × 1 0 1 1 1 01 1 0 0 1
1
0 1 1 0 00 0 0 0 0
0 0 0 0 0
1 1 0 1 0 00 1 1 0 0
0 1 0 0 1 1 0 1 1 0 0
(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 bro j je 1101110 −→ 121. Postupak mnozenja je dat unastavku.
0 1 1 0 0 × 1 2 11 10 1
1 1 1 1 1 0 1 0 00 1 1 0 0 0
+ 1 0 1 0 01 1 1 0 0 1 0 1 0 0
nula zbogmnozenja sa 2
21
7/25/2019 AOR Pismeni Skripta
http://slidepdf.com/reader/full/aor-pismeni-skripta 22/32
Zadatak 21 Propratiti sadrzaj registra pri mnozenju (+13) × (−6) koriscenjem Butovog algo-
ritma.
Resenje. Brojevi se u dvojicnom komplementu kodira ju 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 smestase 0. U registar P upisuju se sve nule. Promene u registrima tokom mnozenja prikazane se unastavku.
0 0 0 0 0 1 1 0 1 0 0 m = 5
0 0 0 0 0 0 1 1 0 1 0 m = 4
1 0 0 1 1 0 1 1 0 1 0
1 1 0 0 1 1 0 1 1 0 1 m = 3
0 0 1 1 0 1 0 1 1 0 1
0 0 0 1 1 0 1 0 1 1 0 m = 2
1 0 1 1 0 0 1 0 1 1 0
1 1 0 1 1 0 0 1 0 1 1 m = 1
1 1 1 0 1 1 0 0 1 0 1 m = 0
Zadatak 22 Podeliti 37 sa 7 koriscenjem algoritma za deljenje
(a) sa obnavljanjem parcijalnog ostatka i
(b) bez obnavljanja parcijalnog ostatka.
Resenje. Binarno, dati bro jevi su 37 = 100101 i 7 = 111. Registri treba da budu dovoljno dugackida vazi uslov P < A, a s druge strane da budu sto je kraci moguci da bi se kroz pelju u algoritmuproslo 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 0 1 0 0 1 0 1 m = 3
0 1 0 0 1 0 1 0
0 0 0 1 0 0 1 1 m = 2
0 0 1 0 0 1 1 0
1 1 1 0 1 1 1 0
0 0 1 0 0 1 1 0 m = 1
0 1 0 0 1 1 0 0
0 0 0 1 0 1 0 1 m = 0
0 0 1 0 0 1 0 1 m = 3
0 1 0 0 1 0 1 0
0 0 0 1 0 0 1 1 m = 2
0 0 1 0 0 1 1 0
1 1 1 0 1 1 1 0 m = 1
1 1 0 1 1 1 0 0
0 0 0 1 0 1 0 1 m = 0
22
7/25/2019 AOR Pismeni Skripta
http://slidepdf.com/reader/full/aor-pismeni-skripta 23/32
Zadatak 23 Prema standardu IEEE -, u formatu jednostruke tacnosti dat je zapis nekog
broja na slici ispod. Odrediti koji je to broj. Brojeve a = −1 · 2−5 i 5 · 2−30 predstaviti u istom
formatu i prikazati korak po korak izracunavanje vrednosti d = a + b, g = a × b i h = a ÷ b.012345678910111213141516171819202122232425262728293031
1 1 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
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 trazenibroj −1.00101(2) × 24 = −10010.1(2) = −18.5.
Brojeve a i b treba napisati u pogodnijem obliku radi racunanja njihovih eksponenata imantisa. Dakle, iz
a = −1 × 2−5 = −1.0(2) × 2−5 i b = 101(2) × 2−30 = 1.01(2) × 2−28
dobijamo sa = 1, f a = 0, sb = 0, f b = 01,
ea = E a + P = −5 + 127 = 122 = 01111010(2),
i eb = E b + P = −28 + 127 = 99 = 01100011(2).
Izgled ovih brojeva u registrima prikazani su na sledecoj slici.
012345678910111213141516171819202122232425262728293031
1 0 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
012345678910111213141516171819202122232425262728293031
0 0 1 1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Postupak racunanja broja d = a + b prikazan je na slici nize. Prva dva registra su brojevia 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 b. Nakon toga je pronaden zbir a + b,a onda je on normalizovan. Zaokruzivanjem na osnovu tri pomocna bita koja su predstavljenasa desne strane, dobija se trazeno resenje.
1 0 1 1 1 1 0 1 0 1 0 0 0 0 · · · 0 0 0 0 0 0a
0 0 1 1 0 0 0 1 1 1 0 1 0 0 · · · 0 0 0 0 0 0b
0 0 1 1 1 1 0 1 0 0 0 0 0 0 · · · 0 0 1 0 1 0b
1 0 1 1 1 1 0 1 0 0 1 1 1 1 · · · 1 1 0 1 1 0a + b
1 0 1 1 1 1 0 0 1 1 1 1 1 1 · · · 1 0 1 1 0 0normalizovano
1 0 1 1 1 1 0 0 1 1 1 1 1 1 · · · 1 1 0
23
7/25/2019 AOR Pismeni Skripta
http://slidepdf.com/reader/full/aor-pismeni-skripta 24/32
Za izracunavanje broja g = a × b, potrebno je pronaci njegov znacajnik zg, eksponent eg iznak sg, na sledeci nacin:
zg = za · zb = 1.0 · 1.01 = 1.01,
eg = ea + eb − P = 94 = 101110(2) i
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 0 0 0
012345678910111213141516171819202122232425262728293031
1 0 1 0 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Na slican nacin racunamo komponente za predstavljanje bro ja h = a ÷ b,
zh = za ÷ zb = 1.0 ÷ 1.01 = 0.1100,
eh = ea − eb + P = 150 i
sg = sa ⊕ sb = 1,
i na osnovu toga se broj predstavlja na sledeci nacin.
1 1 0 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
1 1 0 0 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0
012345678910111213141516171819202122232425262728293031
1 1 0 0 1 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1
24
7/25/2019 AOR Pismeni Skripta
http://slidepdf.com/reader/full/aor-pismeni-skripta 25/32
10
20
32
51
62
p
10×
Zadatak 24 Program sa strukturom prikazanom na slici de-
sno smesten je u operativnoj memoriji racunara u navedenom
podrucju adresa. Operativna memorija je podeljena na me-
morijskih modula M 0, . . . , M 15 sa preklapanjem pristupa. Prika-zati smestanje naredbiovog programa po memorijskim modulima.
Izracunati vreme potreno za uzimanje naredbi prikazanog pro-
grama ako je vreme pristupa memorijskih modula 50ns, vreme ci-
klusa memorijskih modula 95ns, a vreme ciklusa procesora 17ns.
Pri uzimanju naredbe iz memorije, jedan ciklus procesora potre-
ban je za izdvajanje naloga za citanje i jedan ciklus procesora po-
treban je za slanje procitane naredbe iz memorije do procesora.
Odmah po preuzimanju jedne naredbe, procesor izdaje nalog za
uzimanje sledece naredbe.
Resenje. Modul mora biti sinhronizovan sa procesorom, pa se umesto vremena T a = 50ns i
T CM = 95 ns koriste vremena T A i T M koja se dobijaju kao
T A =
T aT CP
· T CP = 51 n s i T M =
T CM
T CP
· T CP = 102ns.
U nastavku je prikazana tabla koja ilustruje kojim su instrukcijama moduli popunjeni. Crnombo jom su naznacene vaznije instrukcije koje ce biti kljucne kod resavanja zadatka.
M 0 M 1 M 2 M 3 M 4 M 5 M 6 M 7 M 8 M 9 M 10 M 11 M 12 M 13 M 14 M 15
10 11 12 13 14 15
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
Formula po kojoj se racuna vreme potrebno za uzimanje naredbi je
T =ki=1
max(T M , T A + li · 2T CP) .
broj sukcesivnih naredbi
1 + 1 ciklus CP-aza svaku naredbu
Kako je T M < T A + li · 2T CP samo za li > T M − T A
2T CP = 1.5 odnosno li ≥ 2, zakljucujemo da se
vreme ciklusa modula T M koristi samo za li = 1, a u suprotnom vreme pristupa T A + li · 2T CP.Odavde se vreme racuna na sledeci nacin.
T = T A + (15 − 10 + 1) · 2T CP + T A + (31 − 16 + 1) · 2T CP + 9 [T A + (31 − 20 + 1) · 2T CP]
+ 10(1 − p) [T A + (47 − 32 + 1) · 2T CP + T A + (62 − 48 + 1) · 2T CP]
+ 10 p [T M + T A + (62 − 51 + 1) · 2T CP]
= 24T A + 7T M + 307 · 2T CP = 12 376 ns = 12.376 µs
za pristup instrukciji 32
Kad ne bi bilo preklapanja, vreme pristupa bi bilo T 2 = N · T M , gde je N broj instrukcijakoji se procita, odnosno
N = 19− 10+1+10(62− 20+1) − 10 p(50 − 33+ 1) = 314, i odatle T 2 = 102 · 314 = 32.098 µs.
25
7/25/2019 AOR Pismeni Skripta
http://slidepdf.com/reader/full/aor-pismeni-skripta 26/32
640
832
1152
2048
3583
40.
52.
72.
128.
223.2×
3×
Zadatak 25 Program sa strukturom pri-
kazanom na slici desno smesten je u opera-
tivnoj memoriji racunara u navedenom po-
drucju adresa. Navedene adrese su adrese reci.Racunar sadrzikes memoriju za naredbe kapa-
citeta 2 K reci sa blokovina kapaciteta 16 reci
(a) sa direktnim preslikavanjem
(b) sa skupno-asocijativnim presliakvanjem
( kes-bloka po skupu, zamena blokova
po LRU algoritmu)
Naci faktore promasaja i faktore saobracaja.
Resenje.
(a) Ukupan broj pristupa je
u = (831 − 640 + 1) do pocetka prve petlje
+ 2(3582 − 832 + 1) spoljasnja petlja dvaput
+ 4(2047 − 1152 + 1) unutrasnja petlja josdvaput po dva puta
= 9280.
Kapacitet memorije je C = 2 k reci sa blokovima od po B = 16 reci, pa ima
C B = C
B =
2048
16 = 128
blokova, sto znaci da blokove treba smestati u kes po modulu 128. Drugim recima, naredbaiz i-tog bloka bice smestena u blok i mod 128.
skup kes bloka blokovi podataka0 128
... ...39 16740 40 168...
......
52 52 180 52 180...
......
......
72 72 200 72 200...
......
......
95 95 223 95 223...
...127 127
broj promasaja 128 56 44 44
= 272
Gornja slika opisuje rad kes memorije tokom izvrenja posmatranog dela programa. Uposlednjem redu je dat broj promasaja, odakle se dobija ukupan bro j promasaja, 272. Naosnovu toga se faktor promasaja racuna kao
w = upr
u =
272
9280 = 0.029.
26
7/25/2019 AOR Pismeni Skripta
http://slidepdf.com/reader/full/aor-pismeni-skripta 27/32
Faktor saobracaja definise se kao odnos kolicine prenetih podataka izmedu kes memorije ioperativne memorije kada postoji kes memorija i izmedu procesora i operativne memorijekada ne postoji kes memorija. Dakle,
F S = upr · B
u · 1 = m · B = 0.464.
skup kes bloka blokovi podataka0 64 128 192 64 128 192...
......
......
......
8 72 136 200 72...
......
......
......
......
31 95 159 223 95 159 223...
...39 103 16740 40 104 168...
......
...52 52 116 180 52 116 180...
......
......
63 63 127 191 63 127 191broj promasaja 64 64 56 44 44 44
= 316
(b) U ovom slucaju, ima ukuno C B/A = 64 skupova. Iz gornje slike dobija se da ukupan brojpromasaja iznosi 316, pa je m = 0.034 i F S = 0.545.
27
7/25/2019 AOR Pismeni Skripta
http://slidepdf.com/reader/full/aor-pismeni-skripta 28/32
Zadatak 26 Neki program se pri izvrsenju obraca operandima (recima duzine 4 bajta) na nacin
prikazan slikom. U linearnom delu, program samo cita podatke.384
960
10 23610 240
12.
30.
319.320.
2×
U prvom prolasku kroz petlju, pocev od operanda sa adre-
som 960, pa sve do operanda sa adresom 10 236, program cita15 uzastopnih reci, izracunava rezultat i upisuje ga u sesnaestu
rec. U drugom prolasku, istim redom program cita 7 uzastop-
nih reci, izracunava rezultat i upisuje u osmu rec. Procesoru je
pridruzena kes memorija za podatke, kapaciteta 8 kB sa skupno-
asocijativnim preslikavanjem, asocijativnoscu 2 i zamenom blo-
kova po LRU algoritmu i posrednim upisom. Ostali parametri kesa
su:
• blokovi duzine 32 bajta,
• vreme ciklusa kes memorije 20ns,
• vreme citanja 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 citanju 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 B = 32 B
T C = 20ns T CB = 280ns T UB = 260ns,
odakle imamo C B = C
B =
8 k
32 = 256 blokova i S =
C BA
= 128 skupova.
U ovom slucaju se svaki drugi blok menja u prvom, a svaki blok u drugom prolazu. Detaljnidijagram 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 blokovi podataka0 128 256...
......
11 139 26712 12 140 268...
......
...30 30 158 286 30 158 286...
......
......
......
63 63 191 319 63 191 319
... ... ...127 127 255
bro j promasa ja 128 128 52 34 34 34
= 410broj zamenjenih
modifikovanih 17 17 17 34 0 0
= 85
Odavde je
n = (959 − 384 + 1) + 2(10239 − 960 + 1)
4 = 4784 pristupa (reci),
28
7/25/2019 AOR Pismeni Skripta
http://slidepdf.com/reader/full/aor-pismeni-skripta 29/32
i zatim
m = npr
n =
410
4784 = 0.0857 i F S =
(nPR + nZMB) · B
4 · n = 0.8278.
Odavde je ocigledno
T ef = pc · T C + pn · 2T C + m · T cB + pmod · T uB
= nc
n · T C +
nu
n · 2T C + m · T cB +
nZMB
n · T uB
i kako je
nc = 8
29 − 12 + 1 + (319 − 30 + 1)
15
16 +
7
8
= 4349 i
nu = 8(319 − 30 + 1)
1
16 +
1
8
= n − nc = 435,
imamo T ef = 50.43ns.
Zadatak 27 Virtuelna memorija ima 8 virtuelnih stranica duzine po 1024 reci i 4096 reci opera-tivne memorije. Na slici je prikazana stranicna tablica.
broj virtuelne stranice 0 1 2 3 4 5 6 7broj fizicke stranice 3 1 2 0
(a) Saciniti listu svih virtuelnih adresa cije bi koriscenje dovelo do promasaja stranice.
(b) Izracunati adrese operativne memorije (fizicke adrese)ako takvih ima koje odgovaraju slede-
cim virtuelnim adresama:
0, 3728, 1023, 1024, 1025, 7800, 4096.
Resenje.
(a) Adrese koje nisu u operativnoj memoriji su one adrese koje, kada se celobrojno podeleduzinom virtuelne stranice, da ju broj virtuelne stranice koji se ne slika ni u jednu fizickustranicu. 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 p o 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 ilifizicke), imamo:
avs =
av
LS
, ar = av mod LS i af = afs · LS + ar.
U sledecoj tabeli je tabelarno prikazano resenje.
av ar avs afs af
0 0 0 3 30723728 656 3 NOM1023 1023 0 3 40951024 0 1 1 10241025 1 1 1 10257800 632 7 NOM4096 0 4 2 2048
29
7/25/2019 AOR Pismeni Skripta
http://slidepdf.com/reader/full/aor-pismeni-skripta 30/32
Zadatak 28 U racunaru sa stranicno organizovanom virtuelnom memorijom fizicke stranice su
dodeljene korisniku A. Izvrsenje programa korisnika A zahteva koriscenjeme 5 razlicitih virtuel-
nih stranica 1, 2, 3, 4, 5. Niz adresa virtuelnih stranica dobijenih pri izvrsenju programa korisnik A
je2, 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 za-
menjuje 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 3 2 1 5 2 4 5 3 2 5 2
2 2* 2* 2* 5 5 5* 5* 3* 3 3 3*3 3 3 3* 2 2 2 2* 2* 5 5
1 1 1* 4 4 4 4 4* 2
2 3 2 1 5 2 4 5 3 2 5 2
2* 2* 2 2 2* 2 2 2* 3 3 3* 3*3 3* 3* 5 5 5* 5 5 5* 5 5
1 1 1* 4 4 4* 2 2 2
2 3 2 1 5 2 4 5 3 2 5 2
2* 2 2 2 2 2* 4* 4* 4* 2 2 23* 3* 3 3* 3 3 3 3 3* 3* 3*
1* 5 5 5 5 5 5 5 5
Zadatak 29 Razmotrite stranicno organizovan virtuelni memorijski sistem -bitnih virtuelnih
adresa, stranice duzine 8 KB i -bitne fizicke adrese. Kolika je ukupna velicina stranice tablice
ako su polja vazeci, modifikovani i zastita duzine ukupno bita i ako se koriste sve virtuelne stra-
nice? Pretpostaviti da se adrese podataka na disku ne cuvaju u stranicnoj tablici. Transformator
adresa sadrzi -blocnu skupno-asocijativnu kes memoriju za preslikavanje adresa (TBL) sa ukupno256 stavki. Slikom prikazati preslikavanje virtuelnih adresa u fizi cke i oznaciti sirine svih polja i
signala.
Resenje. Iz teksta zadatka imamo lVA = 42b, LS = 8KB i lFA = 32 b. TLB je dvoblocnoskupno-asocijativna kes memorija, pa je A = 2. Posto broj stavki TLB-a iznosi C B = 256,
zakljucujemo da ima C B
A =
256
2 = 128 skupova, za sta je potrebno 7 bitova za kodiranje. Zato
je kod virtuelne adrese duzina polja za indeks jednaka 7 b.
30
7/25/2019 AOR Pismeni Skripta
http://slidepdf.com/reader/full/aor-pismeni-skripta 31/32
Duzina polja je
l p = log2 LS = log2 213 = 13b i odatle su
lV S = lV A − l p = 42 − 13 = 29 b ilFS = lFA − l p = 32 − 13 = 19 b.
Kako je lV S 29 b, zakljucujemo da ima 229 razlicitih virtuelnih stranica, a posto su po uslovuzadatka iskoriscene sve virtuelne stranice, znaci da ima isto toliko i stavki u stranicnoj tablici.
avs ar
lV A = 42b
lV S l p
lFA = 32b
lFS l p
aF S ar
v m z afs etiketa indeks ar
1 b 1 b 1 b 19 b 22 b 7 b 13 b
Na slikama iznad su prikazane sirine polja, a donja slika detaljnije opisuje rad ovakvog sistema.
etiketa indeks a p
a pafs
v n z afs v n z afs
prvo se gleda TLB
ako se javi promasaj
u TLB-u, onda se podatak
standardno trazi u
stranicnoj tablici
7
2229
13
19
19
31
7/25/2019 AOR Pismeni Skripta
http://slidepdf.com/reader/full/aor-pismeni-skripta 32/32
Zadatak 30 Izracunati efektivno vreme pristupa DRAM memorije pri koriscenju strategije otvo-
rene 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 = 30ns, gde je trp vreme potrebno za zatvaranjevrste (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 politikeotvorene 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. Vrstemoraju da se zatvore jer je citanje podataka iz DRAM-a destruktivno. Odavde je
T z.v. = tRCD + CL = 50 ns
T o.v. = p · CL + (1 − p) (trp + tRCD + CL)
i zamenom brojnih vrednosti se dobija(a) T o.v. = 30 · 0.2 + 70 · 0.8 = 62ns(b) T o.v. = 30 · 0.5 + 70 · 0.5 = 50ns(c) T o.v. = 30 · 0.8 + 70 · 0.2 = 38ns
32