Sei sulla pagina 1di 389

Jos jcdtu izuzetnJ knjigJ profcsorJl\mcnbauma.

RJcUtLlr se posmatra bo hijerarhip u koJOJ st


JU -;v.1kon1 nivou obJvljJ neka dohro funkLij,l. Det:tljno su r:1zn1otreni nivoi digita1nc
logikc. nukroarhitekture, arhitcktun: skup.1 instrukcija, oper.1tivnog srsktnJ i J.')t'tnblcrskog Jl'Zlk,L
Dat je pregkd I'ltonje arhitekttu-e r.t(uu,\ra. s poscbnin1 ru Sirok spcktJr cLlnaSnjih raL:u-
IULl. Kroz celu knjigu \ll k:to priJJH?ri kori;Ccni S,lvrcnll'Ili proceson- Pentiutn 4 i Ultr.tSPAIZ.C
Ill, Lw i Intel kuj1 nijc nov, .1h jt inoko rJsprmtr.111JC11 zbog niske Ltl1e i obilj<1 suti:ser:J.
0 autoru
Knjigu posebno odlikuju:
\JVft.'lllt..>llih uLI!IlU-i!Ltzlllh Ltu su dtg-It.tlnl foto.1pJrati, I )Sl_
1 lntcrih.'t
I kLlljiLI ob_J.tSll_]l'IJ}i PC: I i nov1h L' () t":JI)l)Vc\
lCtznutLHljt:' uguLkllih \l'itL'llU ulngc lntLl H().) 1
UnutL1;llJO:-.l l\ntiunu -+- nl!kroJrlutcktur.t
r.lZitUtr,UlJl' 1qL1klnih ,trhitt'k.tur.t 1
a PrJtl'l:I C:l) 'iJ ,JLtkanu ZJ 'lllllllhr:lllJl' IZ\T;.JV,l11}t pmgr:mu
ILl pn>ll''oOrlllLl 1 {\lie-!
Predavaci mogu da traze nastavni materijal od izdavaca,
na adresi www.prenhall.com/tanenbaum
/\ndrt'\\' s.-Lilll'llluu11l jl' prufL''olH LH."ll\Llr.'.Lih \LtllLllU UnJ\"l'rLitctll \"riJC ll
J(l gollin.t prcd.tje pr'-dlllL"tc 17 nbLt'>Li oq.::;.lllLLlLIJC r:ll:utLtra, opcrJtlvnlh "istL'lll,l i
je 1 _:) hL''itSt'kLl knj1 .'>ll tl'iVO_pli hru_11ll' .ISt.lLlj:Kije /\l J'v\ 1 :'\trul'ndt
111Z.1CIJ.l. (1.11l.IL' """1j.1cIjc .ACiVI, 1mtitut.1 llL;F. 1 Hoi.!lhhk, kr.Ji],nh .tk.1dL'1lli]C n.1Llk.1
ILIJlll'tiln'>tl.
Nivo
assmblerskog
jezika
NIVO
operativnog
s1stema
il

t

.
' ,.
Povezite se s Mikro knjigom
www.mk.co.yu
Pogledajte nasa najnovija izdanja i narucite ih preko
lnterneta.i
www.mk.eo.yu/forum
Prikljucite se nasem forumu; nasi urednici i saradnici
odgovorice na vasa pitanja.
www.mk.eo.yu/recnik
Nadite termine iz razlicitih oblasti racunarske tehnike
i informatike u nasem recniku na Webu.
www.mk.eo.yu/bilten
Prijavite se da biste primali obavestenja o nasim
novim izdanjima i popustima.
www.mikro.co.yu
Posetite Web prezentaciju naseg casopisa Mikro.
Ostali Tanenbaumovi bestseleri
Racunarske mre:Zc, 4. izd:mje
(Computer Networks)
c:etvrto izdanjc ovog klasicnog bestsckra idealan je uvocl u Janasnje. a i buduc'c
mrde. Detaljno jc objasnjcna struktura savremenih mrcza. Poccv ud fizickog shJja,
svc do najviscg sloja aplikacija, obradcne mnogc vaLnc teme. ukljucujuc'i be1icnu
komunikaeiju, opticka vlakna, protukole sluja vcze podataka. Ethernet. algoritme za
performanse rnrda. bezbeclnost. DNS. clektronsku postu, USENET ve-
sti, Web i multimediju. Temcljno su opisani i TCP/lP i Internet.
Operativni sistcmi: projcktovanjc i rcalizacija, 2. izdanjc
(Operating S\stems: Design and lmplementnlion)
Ova pupularna knjiga. pis;u1a u saradnji sa Alhcrtom S. Woodhulllllll, jedina je koja
obuhvata i principc uperativnih sistema i primenu till principa na .sisteme. U njoj
su detaljno opisani svi klasicni operativni sistcmi. Kao ilustracija principa korisc'en jc
MINX- UN!X-u slican operativni sistern zasnovan na POS!X-u. koji je namcnjen za
PC racunarc i dostupan wima. Uz knjigu se Jobije i CD s potpunim sistcmorn !'vllN X.
zajedno sa izvomim kodom. Listing izvornog koda prilo7en je u dodatku na kraju knji-
ge i detaljno je uhjasnjen u Lckstu.
Savremcni sistcmi, 2. izdanjc
Uv!odcm Opemting Systems)
U ovum iscrpnom delu detaijno su obradeni principi savrernenih operativnih sistema.
a ilustrovani su brojnirn prirncrima iz prakse. U prvih pet puglavlja (posk uvuclnog).
aulor sc bavi osnuvnim pojmovima: procesima i nitima. kruznim blokadama. upra-
vljanjem memorijum. ulanw-izlaznim operacijama i sistcmima clatotcka. U narednih
scst pnglavlja obratluje ';lo,'cni.JC tcme: multimedijske sisteme. sistc-
me. be1bednost itd. Na kraju detaljno analizira dva konkrctna operativna sistema:
UNIX/Linux i \Vinduws 2000.
Distrihuirani sistemi: principii modcli
(Distributed Systems: Prillciplcs and Paradigllls)
Ova nova knjiga, ko.JU je autor napisao Lajednu 'i Maartenorn \an Steenom. ohuhvata
principc i modele savremcnih distribuiranih sistema. U prvnm delu se detaljno govori
o principima komuniciranja. procesima. imenovanju. sinhronizovanju, closkdnosti i
replikuvanju. otpornosti na greskc i bezbednosti. Autori 1.atirn u drugum delu razma-
traju ra1.licite modele distribuiranih siskma. kao slll su objektno zasnm ani sistemi.
distribuirani sistcmi datott:ka, si::.tcmi zasnovani na Jokumcntirna i sistemi ;asnovani
na kunrdinaciji. Detaljnu se razmatraju i brojni primeri.
j ;{) ''-I ,)--:)
,-- /
KfbMI A CA CO-om
ARHITEKTURA
I ORGANIZACIJA RACUNARA
Prevod petog izdanja
Andrew S. Tanenbaum
Univcr::.itcr Vrije
Am.\te n!wn, H o!ondiju
Prc\eo
Dejan Smiljanic
-------''
i
1 -1 . \'
I .-.::.11r:1. x:- \\- tsyo -l
I
i1 1/,'-m. 6p. L<1.{1Lil.( --i
.,.. , ____.._) I
I__ !
! - . I
l C> p. )I . --
I t [--------
\ ' . ,..., :. '\ i I !')
! ';: . L
Arhitcktura i organizadja raCunara, prevnd 5. iLdanja
Reccnzent
Glavni urednik
Redaktori
Lektor i korektor
Tehnicki urcdnik
Realizacija knrica
Prclom teksta i obrada slika
IzUavaC
Direktor
Stampa
Darkn MilutinoviC
Olga Milanku
SpasiC i SncZana I3isemC
DukiC
Milica Decansk:i
NataSa Pavlov
Sanja TasiC
Milica DeCanski
N;HdSa Pavlov
Mikrn knjiga, Beograd
Dragan Tanasko')ki
Puhlikum, l3eograJ
Ako imate pllanja iii komentare, iii ako Zditc da dubijetc besplatan k.ata!(Jg, piStte n:..tm
ili se javite:
Mikro knji2!a
P. fah 20-87
JJ()}(J Beograd
tel: llii/JS-10-54-1
p1 sma@l:li k roknj 1 y,l. co .yu
Mikrn k.njiga
Jcvrej'b hh
7XIIOO Hanja Luka
tel: 1!51/220-%0
pl smalar:i krPknJ 1 yn ba
Mtkru knjiga
Mabimirska 13
I 0000 Zag rc h
tel: 01/23-14-023
pi sma@rni kroknJ i ga hr
Autnri;nvan prcvod \a cnglcskog jczika knjigc Structured Computer Orp-anization. 5th edition.
Cnpyright (i) 2007 :\'likro J...njiga. Sv.1 prava LaJrLana. Nije doLvoljcnn da nijedan cleo ove knjige hudc
rcpwduko\ an ili emitovan na hilo knii naCin. ili rnchaniC:ki. ukljuCujuL:i fotokopiranje. snimanje i!i
hilu h.oj1 drugi sistem La bele/:r:n.Jc. bez prcthoJne pismene doz\ole iLd:nal:a.
Authori7ctl translation !rom the English language edition. entitled Strurtured Computer Organization. 5th
edition by r\ndrc\V S .. by 1-'e;trson Educati1H1, Inc.. as Prentice Hall PTR,
Copyright ti'l 2tHIIl.
All nght." re:-.crvctl. No p;1rt of thi." hooh. may be reproJun'd or transmitted in any forlll or hy any means,
electronic or mechanicaL includint! ph1Hncopying.. rccordint!, or by any information storage retrieval system,
v..ithout penni:-.,i<)n Crom Pettr: .. on Education, hll'.
t 'IP K,n ;L,rPntj,li(ltj<l
I l<lplll!lol l)I!Cl.Hilll'CK:t
OO,L:2
IJV0.'ll!1o._,ll(IIJI1
f_;Cllf'j).t11
('
Ar!utekllail 1 llrg,un.c.tclj,l ra('tlll<lr,l /
<\:1dnw S T.Hwnh;llilll pr:VtHi jwtog LtdilllJd
Smi!J<l.i1i!'. -
(Ikugrad
str :lu.str 21 un
Prcvo<i dt>Jd -.;trul'lur:d
Or:_;,llll7dlifrl S - Ti1az
SOU - (_) ;_1uton1 str T(tl -
ISBN qiK-SI)-IS;):) :) l 'l-i
5 .J-' 2

Po.\'\'ec'eno Su::.wzi. Burha;i i Marvinu, kao i uspomeni na Brama i Sviti rr





,;",;-

; . .;<;-

'"+.!

, .. Jt I
1

_,j '
' ;:. .
1 i

1
: _;, : ..
SADRZAJ
PREDGOVOR
UVOD
I. I STRUKTURIRANA ORGANlZACIJA RACUNARA 2
I. I. I kzici, nivoi i virtuelne 2
1.1.2 Savrerneni racunari s vise nivoa 5
I. l.l Evolucija racunara s vise nivoa 8
1.2 KLJUC:--.IE TACKE RAZVOJA ARHITFKTURE RACL
1
NARA
1.2.1 Nulta gcneracija- rnehanicki raC:unari ( 1642-ll)45) 14
1.2.2 Prva gcneracija -elektronske ccvi (1945-ll)55) lfJ
1.2.3 Drug:a generacija- ( l955-1l)65) 1l)
1.2.4 Treca generacija- integrisana kola ( 1965-1980) 21
' -._ ; :
xvii
1
13
1.2.5 Cctvrta gcneracija- vrlo visok stepen intcgracije ( 1980-'')
2.1
1.2.6 Peta gcneraeija- nevidljivi racunari 25
1.3 RACUNARSKI ZVERfl\i.JAK 26
1.3.1 Tchnoloske i ekonornske sik 26
1.:1.2
1.3.3
1.3.4
1.3.5
1.3.6
Spcktar racunara 28
RaC:unari za JCdnokratnu upntrebu
Mikrokonlruleri 31
Racunari za igranje 32
LiC:ni racunari 33
1.3.7 Scrvcri 33
1.3.8 Skup radnih stanica 34
1.3.() C:entralni raC:unari 35
vii
29


'
I
..P.'


.J
#
}j .
\' '
''f j
i
[_f. l
i
!'vco 1
1

..


2

1.4 ODABRANI PRIMERJ PORODICA RACUNARA 36
1.4.1 Uvod u Pentium 4 36
I .4.2 Predstavljanjc cipa UltraSPARC Ill 41
!.4.3 Cip sos1 43
1.5 METRJCKE JEDIN!CE 45
1.6 PREGLED SADRZAJA KNJIGE 46
ORGANIZACIJA RACUNARSKIH SISTEMA
2.1 PROCESORI 49
2.1.1 Organizacija procesora 50
2.1.2 Izvrsavanje instrukcija 52
2.1.3 RISC i CISC 56
2.1.4 Principi projektovanja savremenih rai"unara
2.1.5 Paralelizam na nivou instrukeija 59
2.1.6 Paralelizam na nivou pruccsora 63
2.2 OSNOVNA MEMORIJA 66
2.2.1 Bitovi 66
2.2.2 lvkmorijske adrese 67
2.2.3 Postrojavanjc bajtova 69
2.2.4 Kodovi za ispravljanje grcsaka 71
2.2.5 Kes memorija 74
2.2.6 Mcmorijski pakcti i vrste memorije
2.3 ME:vlORIJA 7S
2.3.1 Hijerarhija memorije 7S
2.3.2 Magnctni diskovi 79
2.3.3 Diskcte S2
2.3.4 IDE diskovi S3
2.3.5 SCSI diskovi S5
2.3.6 RAID S6
2.3.7 Kompakt disl-.mi 90
2.3.X Upisi,,i kompal-.t dio,kuvi
2.3.9 Prepisivi kom]Xtkt disknvi
2.3.10 DVD diskovi 97
2 .. i.ll Blu-Ray 99
2.-t ULAZ I lZLAZ ')9
2.-+.1 C\lagistrak
!()()
2.-+.2 Terminali 102
2.-U :Vl isevi 107
2.-+.--1 Stampaci 109
94
')7
77
57
49

2.4.5 Telekomunikaciona oprema II S
2.4.6 Digitalni fotoaparati 123
2.4.7 Kodiranje znakova 125
2.5 SAZETAK 12R
3 NIVO DIGITALNE LOGIKE 133
3.1 LOGICKA KOLA I BULOV A ALGEBRA 1]4
3.1.1 Logicka kola 134
3.1.2 Bulova algebra 136
3.1.3 Implementiranje Bulovih funkeija
3.1.4 Ekvivalcntnost clektronskih kola 140
3.2 OSNOVNA KOLA DIGITALNE LOG IKE 143
3.2.1 lntegrisana kola 143
3.2.2 Kombinaciona kola 145
3.2.3 Aritmcticka kola !50
3.2.4 Gencratori radnog takta 155
3.3 MEMORI.JA 156
3.3.1 Lee kola !56
3.3.2 flip-tlopovi 159
3.3.3 Rcgistri 161
3.3.4 Organizacija memorije 161
I 3.3.5 Mcmorijski Cipovi 165
3.3.6 RAMi ROM memorija 168
3.4 PROCESORSKI CIPOVI I MAGISTRALE 171
3.4.1 Procesorski cipovi 171
3.4.2 Racunarske magistrale 173
3.4.3 Sirina magistrale 175
3.4.4 Vrcmensko usklactivanjc rada magistrale 177
3.4.5 Arbitriranjc magistral om I
3.4.6 Operacijc na magistrali I
3.5 PRIMER! PROCESORSKIH CIPOV A I
3.5.1 Pentium 4 I S6
3.5.2 UltraSPARC Ill 193
3.5.3 197
'
.1.6 PRIMER! MAGISTRALA 199
I
3.6.1 ISA magistrala 200
I
3.6.2 PC! rnagistrala 201
,,
3.6.3 Magistrala PC! Express 209
3.6.4 Uni vcrzalna serijska magistrala 213
X
Sadr:laj
3.7 POVEZ!VANJE 217
3.7.1 Ulazno-iz1azni cipovi 217
3.7.2 Dekmliranje adresa 219
3.8 SAZETAK 222
4 NIVO MIKROARHITEKTURE 227
4.1 PRIMER MIKROAR!I!TEKTURE 227
4.1.1 Putanja podataka 229
4.1.2 Mikroinstrukcije :2_15
4.1.3 Upravljanje mikroinstrukcijama: 1Vlic-l 237
4.2 PRIMER !SA ARHlTFKTURE: UVM 242
4.2.1 Stckovi 242
4.2.2 :\lemorijski model TJVM ariJitekture 244
4.2.3 Skup l.JVM instrukcija 246
4.2.4 Prevodcnje .lave u l.JVM 24<J
4.3 I'RliVIER liV1PLE:\1ENTACl.JE 25!
4.3.1 Mikroinstrukcije i notacija 2S2
4.3.2 Impicmentir,mje .-;kupa IJV:'vl in:.;trukcija
pomocu i\ lic-1 25f>
4.4 PRO.IEKTOV,\:--.J.JE NJVOA .\IIKROARlinEKTL,RE 2(1S
4.-ll Odnlls b;,-inc: i ccne 2116
4.-1.2 Skr accnje priUlljC anja .?.70
+.-LJ RcScnjc "l prcu1.in1anjcn1
proccsm :\lic-2 277
4.4.4 Par:ddna obrad:t: pmces<;r i\lic-.c 2"7'
4.-t.S SLdill<J-;kpc:n:t (lhnda: procc':,or :\ltc-4 26h
4.5 POBOL.lSc\NJE FERJUl\.,\ll\l\:Sl 2c>()
l i'-:c\ lllL'!1h_-_,ri_ja 2
1
)0
.. '1.2 Sh:.dka 2l)()
-+.5.3 . i _)() 1
4.5.+ Sj'ck.ulativrw i1vr,;a1anj.: 3011
4.() l'RL\lUU 0J'vfli\ i\JI:r..RU 30c>
4.n. I il.likrcarhitcltii::. prJCe;;ora 3()')
-:.o.2 pnlt:t:St>l':t UkaSPA.l\C-111 C>r 3 !-+
-1-.!1._; .\lik.::o:trilitektu;a JWlc:csill.l SO:' I 320
-1.7 PUEl:DE!\JE f'RUCL:SUR...\ PE0iTIL I\1, liLTR,\Sl',-\kL I ::-.05l 3 22
-1-.S SX?ET\K :123

I
I
i
J
l
Sadrzaj
5 NIVO ARHITEKTURE SKUPA INSTRUKCIJA
5. I PREGLED N!VOA ISA 331
5.l.I Svojstvanivoa!SA 331
5. I .2 Memorijski modeii 333
5. I .3 Registri 335
5. I .4 [nstrukcije 336
5. I .5 Prcgled nivoa ISA procesora Pentium 4 337
5.1.6 Pregied nivoa ISA procesma UltraSPARC Ill 339
5. I. 7 Pregicd ni voa ISA procesora 805 I 342
5.2 TlPOVl PODATAKA 346
5.2.1 Numcricki tipovi podataka 346
5.2.2 Ostali tipovi podataka 347
5.2.3 Tipovi podataka Pcntiuma-+ 348
5.2.4 Tipovi ptJdataka procesura UltraSPARC Ill 348
5.2.5 Tipovi podataka procesora 805 I 349
5.3 FOI<MXrl INSTRUKCIJA 350
5.3.1 Projcklni kritcrijurni za format instrukcija 350
5.3.2 Prosirivanjc opkodova 352
5.3.3 Furmati instrukcija Pcntiurna 4 355
S.3.4 fonnati instrukcija procesora UitraSPARC lH
5.3.5 Formati instrukcija proccsora 805 I 357
5.4 ADRESIRANJE 358
5.4.1 Nacini adrcsiranja 358
5 .4.2 Neposrcdno adrcsiranje .159
5.4.3 Direktno adresiranjc 359
5.4.4 Registarsko aJrcsiranjc 350
5.4.5 lndirektno rcgistarsko 360
5.4.6 lndebnu adresiranjc 36!
5.4.7 Bazno-inJcksno adre-,iranje 363
5.4.8 Adresiranje na steku 3113
5.-+.9 Nacini adresiranja za instrukcijc grananja 366
356
5.4.!0 Ortogonalnost opkodova i nacina adresiranp 367
5.4.11 Nacini adresiranja Pentiuma 4 369
5.4.12 Nacini adresiranja pmcesora UitraSP/\RC Ill 37 I
SA. I 3 Nal'ini ;tdrcsiranja proccsora S05 I 37l
5.4.14 napomenc onacinima adrcsiranja 371
5.5 T!POVI INSTRUKCIJ.\ 372
5.5.1 lnstrukcije za premcstanJC pmlataka 37 3
5.5.2 Binarnc opcracijc 374
XI
329

iM,'


'$
r!;
xii
6
5.5.3 Unarne operacije 375
5.5.4 Poreuenje i uslovni skokovi 377
5.5.5 Instrukcije za pozivanje procedura 378
5.5.6 Upravljanje petljama 379
5.5.7 Ulaz/izlaz 381
5.5.8 lnstrukcije procesora Pentium 4 384
5.5.9 lnstrukcije procesora UltraSPARC III 387
5.5.10 Instrukcijeprocesora8051 390
5.5.11 Poredenje skupova instrukcija 390
5.6 TOK IZVRSA VA.N.IA 394
5.6.1 Sekvencijalni tok izvrsavanja i grananje 394
5.6.2 Procedure 395
5.6.3 Korutine 400
5.6.4 Programske klopkc 402
5.6.5 Sistemski prekidi 403
5.7 DETALJAN PRIMER: l-IANOJSKE KULE 407
5.7.1 Problem l-Ianojskih kula na asemblerskom
jeziku Pcntiuma 4 407
5.7.2 Problem Hanojskih kula na ascmblerskorn jeziku
proccsora UltraSPARC III 408
5.8 ARHITEKTURA IA-64 I lTANIUM 2 410
5.8.1 Problems Pcntiumorn 4 411
Sadrzaj
5.8.2 Model arhitekture lA-64: forsiranje paralelnog rada 413
5.8.3 Proredivanje obracanja memmiji 413
5.8.4 Rasporcdivanje instrukcija 414
5.8.5 Smanjenjc broja uslovnih skokova: predikacija 416
5.8.6 Spekulativno ucitavanje 418
5.9 SAZETAK 419
NIVO OPERA TIVNOG SISTEMA RACUNARA
6.1 VlRTUELNA MEMORIJA 426
6.1.1
6.1.2
6.1.3
6.1.4
6.1.5
6.1.6
6.1.7
Straniccnjc 427
lmplcmcntiranje straniccnja 429
Stranicenjc na zahtcv i model radnog skupa
Pravila zamcnjivanja stranica 434
Velicina stranicc i fragmentiranjc 436
Segmcntiranje 436
Imp!emcntacija segmentiranja 440
432
425
!
Sadr:laj
6.1.8 Virtuelna memorija Pentiuma 4 442
6.1 .9 Virtuelna mernorija na procesoru UltraSPARC III 447
6.1.1 0 Virtue1na memorija i ke;iranje 450
6.2 VIRTUELNE ULAZNO-IZLAZNE INSTRUKCIJE 450
6.2.1 Datoteke 451
6.2.2
6.2.3
lmp1cmcntiranje virtuelnih u1azno-izlaznih instrukcija
lnstrukcije za rad s direktorijumima 456
452
6.3 V!RTUELNE INSTRUKCIJE ZA PARALELNU OBRADU 457
7
6.3.1 Zapocinjanje procesa 458
6.3.2 Utrkivanje' 459
6.3.3 Sinhronizovanje procesa pomocu semafora 463
6.4 PRIMER! OPERATIVNlH SISTEMA 467
6.4.1 Uvod 467
Primeri virtuelne mcmurije 4 76 6.4.2
6.4.3
6.4.4
Primeri virtuelnih ulazno-izlaznih upcracija 479
Primeri uprav1janja procesima 491
6.5 SAZETAK 497
NIVO ASEMBLERSKOG JEZIKA 505
7.1 UVOD U ASEMBLERSKl JEZIK 506
7.1.1 Sta je asemblcrski jet.ik'
1
506
7.1.2 Za sta treba knristiti asemblerski jezik'l
7.1 .3 Format naredbe na asemblcrskom joiku
7.1.4 Pscudoinstrukcije 513
7.2 M.\KROl 515
507
5l0
7.2.1
7.2.2
7.2.3
7.2.4
Ddini,anjt:. pozivanje i prusirivanjc makroa
Makroi s pararnetrima 517
Naprdne mogucnosti
lmplcmcntiranje mchanizma za rad s rnakroima
u asembkru 519
7.'3 PROCES ASEI\Il3LIRANJA 520
7 .. l.l /\:,cmbkri 'Lh a prola:,ka
52()
7.3.2 Prvi prolazak 520
7.3.3 Drugi prolazak 524
7.3.4 Tabcla -,imbola 526
515
xiii
. [
" i :
J I
'
!!
(
li
.. \!i
\;
xiv
Sadr:laj
7.4 POVEZIYANJE I UCITA YANJE 521\
7.4.1 Posluvi koje obavlja program za povczivanjc 529
7.4.2 Struktura objcktnog modula 532
7.4.3 Yreme povczivanja i dinamicko relociranje 533
7.4.4 Dinamicku povezivanjc 535
7.5 SAZETAK 53lJ
8 ARHITEKTURE PARALELNIH RACUNARA
X. I Pi'\RALELIZAM NA PROCESORSKOM CIPU 544
S.l.l Paralelizam na nivou instrukcija 545
1\.1.2 rad na jed nom cipu 552
S.l.3 Vise proccsora na jcdnom cipu 5'iR
1\.2 KOPROCESOR! 563
8.2. I lvlrczni procesori 564
8.2.2 Multimcdijski procesori 571
8.2.3 Kriptoprucesori 576
SISTEMI S VISE PROCFSORA KOJI DELE iVIEMORIJU 577
S.3.1 Multiproccsori i multiracunari 577
8.3.2 Scmantika memurije 584
1\.3.3 Arhitckturc simctricnih UMA multipmccsora 588
8.3.4 NlJMA multiproccsori 5Y7
iU.5 COMA nntltipmcc,ori 605
X.4 :VILJLTIRACUNARI ZASNOVANI NA RAZ!\IENI 606
8A.I
8.-U
1\.4.3
1\.4.4
8.4.5
8.4.6
8.4. 7
Mrczc Dt intcrrw pmezivanje kompunenata
MPP nntltiral"un;tri -- cvrstu sprcgnuti paralclni pruccsnri
Klastcri racunara 621
Kumunikacioni soth er za multiracunare 626
Raspurcdivanjc p<>'ila 628
Memorija na nivou aplikacijc 62l)
Performam:e 6.16
S.5 RESETKE RAC'UNARA 642
S.6 SAZETAK 644
543
607
611
9 SPISAK KORISCENE I PREPORUCENE LITERATURE 649
lJ I STA Bl.IOS TREB \LO PROC!TAT! 64'J
lJ. 1.1 Uvod i opsta lit<:ratura 649
9.1.2 Organizacip racunarsJ..ih sistema o'i l
Sadr:laj
liV
9.1.3 Nivo digita1ne 1ogike 652
9.1.4 Nivo mikroarhitekture 653
9.1.5 Nivo arhitekturc skupa instrukcija 6'i3
9.1.6 Nivo operativnog sistema racunara 654
9.1.7 Nivo asemblerskog jczika 655
9.1.8 Arhitekturc para1e1nih racunara 655
9.1.9 Binarni brojevi i brojevi u formatu pokrctnog zareza 657
9.1.1 0 Programiranje na asemb1erskom jeziku 658
9.2 ABECEDNI SPISAK LITERATURE 658
A BINARNI BROJEVI
671
A.l HROJEVI KONACNE TACNOSTI 671
A.2 BROJC:ANI SISTEMI DATE OSNOYE 673
A.3 PRETVARANJE BRO.JEYA IZ JEDNOG BROJC:ANOG
SISTEMA U DRUG! 675
A.4 NEGATIVNI B!Ni\RNI BROJEVI 677
A.5 BTNAR:"--A ARIT!v!ETIKA 67lJ
B BROJEVI U FORMATU POKRETNOG ZAREZA
683
B.l PRINCIPT RADA S POKRETNII\i ZAREZOtvl 684
B.2 IEEE STANDARD 75..1 ZA BROJE\E l; FORil.l.'\.TU
POKRETNOG ZAREZ.A, 6S6
c
PROGRAM!RANJE NA ASEMBLERSI<OM JEZIKU
693
C.l PREGLED 694
C. I.! Asembkrski jczik. Cl'J4
C.l.2 Kratak pmgram na ,1Scmbkr:;kclll1 jeLiku 695
C.2 PROCESOR g()l\8 6'J6
C.2.1 Procc'iorski ciklus 6l)(J
C.2.2 Registri opsk namcnc hlJ'
C.2.J Pokazivacki regi,tri 6i)!J
C.3 1\!E:\IOI\!J,'\ I ADRESli<ANJE 7UI
Organizacija mcnJorijt' i 'c:::::nc'rHi 7U I
C.3.2 712



I'
I
1:
I
i'
li

xvi
Sadr:laj
C.4 SKUP lNSTRUKCIJA PROCESORA 8088 706
C.4.1 Premestanje, kopiranje i aritmeticke instrukcije 706
C.4.2 Logicke operacije. opcracije nad bitovima
i operacije pomeranja 709
C.4.3 Petlje i operacije ponavljanja sa znakovnim nizovima 709
C.4.4 Instrukcije za skokove i pozive 710
C.4.5 Pozivi potprograma 712
C.4.6 Sistemski pozivi i potprogrami 713
C.4.7 Zavrsne napomenc o skupu instrukcija 716
C.S ASEMBLER 716
C.5.1 Uvod 716
C.5.2 ACK-asembler. as88 717
C.5.3 Neke razlike u odnosu na druge asemblere
za procesor 8088 720
C.6 SlMULATOR 722
C.6.1 Komande sirnulatora 723
C.7 POCINJEMO 725
C.8 PRIMER! 726
C.8.1 Primer Hello World 726
C.8.2 Primers registrima opste namene 729
C.i\.3 Instrukcija Call i pokazivacki registri 73 I
C.8.4 Otklanjanjc gresaka iz programa za ispisivanje niza 734
C.i\.5 Rad sa .makovnim nizovima i odgovarajuce instrukcijc 736
C.8.6 Tabele za usmeravanje 739
C.i\. 7 Baferisan i direktan pristup datotekama 7-J.l
SPISAK TERMINA KORISCENIH U KNJIZI 747
INDEKS 755
PREDGOVOR
U prva cctiri izdanja ove knjige negovali smo idcju da se racunar moze posmatrati
kao hijerarhija vise nivoa, od kojih se na svakom obavlja neka dobro
funkcija. Ta osnovna koncepcija vazi Janas bas kao sto jc vazila i u vreme kada jc
knjiga prvi put ugledala svetlost dana. pa smo je zadriali i u pctom izdanju. Slicno
prethodnim izdanjima, i ovde su detaljno razmotrcni nivo digitalne logike. nivo mi-
kroarhitekture. nivo arhitckturc skupa instrukcija. masinski nivo operativn6g sistema
i nivo asernblerskog jczika.
Iako je osnovna struktura knjige zadrzana, u pelo izdanje uncle su mnogc sitnc i
krupne izmene. pa knjiga potpuno prati brz razvoj racunarske industrije. Tako su. re-
cirno. za primcre u ovom izd:mju uzeti racunari sa savremcnim komponcntama. To su
Intelov Pentium 4. Sunov Ultra-SPARC Ill i lntelllV 8051. Pentium 4 je primer popu-
larnog mikroprocesora koji sc koristi u stonim racunarima. UltraSPARC Ill Je primer
popularnog servera koji se naveliko koristi u srcdnjim i velikim multiprocesorima. tj.
u sistemima s vise proce!>ora.
Mozda ce nekog iznenaditi to ;to pominjemo jJfOCesor jer se taj cip dostojan
postovanja vee decenijama nalazi na trzistu. zahvaljujuci hrzom razvoju
ugradenih sistema, on je pronasao svoje mesto i u savremcnim uredajima. Danas.
kada racunari upravljaju svime, pocev od radio-budilnika do mikrotalasnih pecnica.
vlada vclika glad za ugradenim si,tcmima. a S051 jc superizbor zbog svoje izuzctrm
ni,ke ccnc (nekoliko CL'nti), obilja softvcra i pcrfcrijskih urcdaja: uz to. brojni pru-
grameri have se ovim cipom.
Mnogi predavaci knji koriste m u knjigu, godinama su \apili za materijalom o rro-
gramiranju u asemblem. U petom izd::mju knjigc eto kon<tcno ito!! matcrijJla nabzi
se u dodatku C i na priluzenom kompakt Ji,k:J.
lzabran je a,emblerski jczik mikroproccsora po\to jc cip ogoljcna vcrzija
i;uzctno populanwg Pentiuma. Mogao sam prikazati a'cmbler za
MIPS iii La ncki treci mikroprocesur /.a koji niko nikad nijc cuo. ali je zbog motivacije
bolje izabrati 1\01\S. posto vcliki broj studcnata ima kod kuce Pentium. a Pentium
nm/e da iz\Tsava programc pisane ?a mikroprocesor 80i\8. Postu je pronaLtzenje i
XYii



f

i
Q

fl
ij
,_
'"*

t;.

B
l
l l
I
.. l"

,.

!
!
j i,
i !
'i
j

1
1
1
.,
'f l

,., .
,l'

..

4 ;,



xviii
Predgovor
grdaka u asemblerskom kmlu veoma slozen posao. uz knjigu sam pri-
loho i nekoliko alatki za ucenje programiranja u asembleru, a medu njima asembler
i -;irnulator za 8W\8 u verzijarna za Windows. UNIX i Linux_ Ove alatke nalaze c;e na
pratdem CD-u ina Web lokaciji posvecenoj knjizi tpogledajte dalje).
Ova knjiga je :-. vremcnom poprilicno narasla, sto je bilo neizbezno jer se sama
lc'rna neprestano razvija i znanje o njoj gomila. Zbog toga, kada se knjiga koristi
!ircr:ttura za kurs, moz.da nec'e uvek biti moguc'c prec'i _je cclu tnkomjedinstvenog
kur:.a rn;;r. u sistemu trimestara). Jedno rdenje bi bilo da se tukom kursa bar predu
pog!:t\ :_ja I. 2 i .l. prvi deo poglavlja 4 (zakljucno sa odeljkom 4.4) i poglavlje 5.
i'reu.-<taio vreme se moze ispuniti ostatkom poglavlja 4 i clelovima poglavlja 6, 7 i 8,
prcma <lllOlllt' na S!a instruktor ze!i da Stavi leZiste.
U nastavku se navode vdc izmene cctvrtog izdanja. Poglavljc I i claljc sadr-Zi pre-
glcd i.,tmije arhitckture racunara, u komc isticcm nacin na koji se stiglo do danasnjeg
stanja i navudim kljucne tacke na tom putu. Dalje opisujem sirok spektar danasnjih
racun:mt i ukratko obraJujem racunare kujc izabrao za glavne prcdstavnike
tium-1, UltraSPARC Ill i 8051).
U poglavlju 2 azuriran jc materijal koji sc odnosi na ulazno-iLlazne uredaje i
istaknuti su proizvodi savremene tehnulogijc, kao sto :-.u digitalni fotoaparati, DSL i
kablovski Internet.
l'oglavlje :1 pretrpelo je izvesnc izmcnc i sada se u njcmu bavrm
gisrralama i savremenim u!azno-i;laLnim cipovima. Uncia su tri nova primera sa ob-
ja.,njcnjima na nivou cipa. Doc!at jc i nov den o magistrali PC! Express La koju sc
ocekujc dace uhrzo zameniti magistralu PC!.
l'oglavlje-+ mluvek jc bilo omil_jenu mesto za objasnjavanje rada racunara, pa jc
uglavnom ostalo istu kao i u cctvrtum i7danju. Ipak, postoje i novi odeljci u kujima
opisujem nivu mikroarhitekture proccsora Pentium-+. Ultra-SPARC Ill i 8051.
Puglavlp :'i, 6 i 7 w;tala su skoro nciLinenjcna_ osim stu su osavrcmenjena novim
primerima. U poglavlju 6 se kao primer umestu Winduw'a NT sada koristi Windows
XP. ali to mimmalnu utice na nivo objasnjavanja.
Poglav!_je 8 je tcmcljno preraJeno kako bi odrazilo sve aktivnosti u ve1.i s
nim racunarima. Ono ohuhvata pet razlicitih klasa paralclnih sistema, od parale!izma
na jednum l'ipu 1 paralcli;.am na nivou instru kcija, viseni tni raJ na jed nom cipu i
tiprucesore na jednom cipu), prcko koprncesora, sistema dc!jene memorijc i klastera,
.we du kratkog izlaganja o sistemima rt'Setki. Ovcle uvodirn brojne nove primere, od
mikroprocesura Trii\ledia, do klastera RlueGcne/L. Red Storm i Google.
Reference u poglavlju lJ korcnito su azurirane. Organi1.acija racunara je polje ne-
pre-;tanih pr<lJllena. ud polovine refercnci Ll ovom. 5. izclanju. cine knjige i clanci
Kl'ji ,;u napi:.ani nakon objavljivanja 4. iLdanja.
Dodaci A i R nisu izmenjeni ud pros log izdanja, ali je dodatak C o programiranju
na asemblcru potpuno nuv. To je praktican, plP;tupan prirucnik za programiranje na
asembkrskom jeziku pomocu ;datki koje pos!Oje na pratec'em ina \Veb lnkaciji
posvecenoj knjiLi. Dodatak C je napi:.ao dr Evert \Vattel sa univerzireta Vrije u Am-
stc:rdamu. Dr Waite] dugu godina koristi te alatkc na svojim predavanjima. Koristim
priliktr d;t mu ,;c zalwalim na pisanju uvog d<ldatka.
I
I
I
Predgovor xix
-------
Osim alatki za programiranjc na asembleru. na Web lokaciji se naiaD i grat[cki
mulator koJi se koristi uz poglavlje -+.Simulator jc napisao prof. Richard Salters ko-
!edb Oberlin. Studenti ga mogu koristiti da bi shvatili principe koje objasnjavam u
tom poglavlju. Zahvaljujcm se prof. Salteru na softveru.
Osim slika koje postoje u knjizi. na Web Jokaciji se nalaLe i prczentacije u PO\ver-
Pointu. poscbno namenjene predavacima. Aclresa lokacije je
h!lp :IH \'\ 1 .pre 11 hoi/. ( 1Jilt!! 1111 e n/Ja wn
Na Web strani pritisnite hipervezu ka uvoj knjizi i u meniju potrazite informacije
1.a instrukture.
Predavaci koji na osnovu pve knjige drzc univerzitetske kursevc. mogu dobtti
prirucnik s rcsenjima problema od predstavnika izdavacke kuc'e Pearson Education.
Mnogi procitali ovaj rukupis (ili njegovc clelove) i dali mi korisnc predlogc iii
S\l mi na drugi nacin pomogli. Moju;:ahvalnost po,cbno Lasluzuju Nikitas
di:.. Shckar Bmkar, Herbert Bus, Scott Cannon, Doug Carmean. Alan Charleswt1rth .
Eric Cota-Roblcs. Michael Fetterman, Quinn Jacobson. Thilo Kiclmann. ltlat K:ui.
Saul Levy, Ahmed Louri. Abhijit Pandya, Krist Petersen, Mark Russinovich. Ronald
Schrucder i Saim Ural. Hvala svima na nesebicnuj pomoci .
Zelim takodc da se zalwalim Jimu Goodmanu ;a njegov doprin<lS ovoj knjizi, na-
rocito u poglavljirna-+ i 5. Njegovaje idcja da upotrchimo Javinu virtuelnu masinu i
knjiga)C zbog toga postala samo holja.
Na kraju. zelim da se jos jednom zahvalim Suzanne. 7.a SVll ll_)Cilll Ijubav i strplic-
nje koji nisu nestali ni posle 15 objavljenih knjiga. Rarhara i Man in su :noja vecn<1 r:t-
dost, a :.ada znaju i to sta profcsori racJe da bi prdivc]i. !Joi:HhbJ....t kraljevsJ..a
akademija urnetnosti i nauke dodelila mi jc .2004. godiue tnliko l:eljcnu prufesuru,
nslobodivsi me tom prilikom nekih njcnih m:m_)e po:l.cljnih asp-;:kata (Ll<l sto '11 bcs-
k,macni i dosadni sastanci), zbog cega sam im ncinncrno zall\ ;tlan.
Andrevv S.
'
'''!.
, I
~ . ; '
I
I
,.
I :
a :
~
L
; i
~ ,
l'
,,:
~
r
l
f
..
~
~
i
i,
I'
L
L\
1
UVOD
Digitalni racunar je masina koja Ijudima pomaz.e tako stu izvrsava zadatc instruk-
cije. Niz instrukcija cijim sc izvrsavanjem obavlja odrel1eni posao naziva se program.
Elektronska kola racunara mogu prepoznati i dircktno izvrsiti samo ograniccn skup
jednostavnih instrukcija, pa svaki program, da bi bio izvrscn, treba prcvcsti u takav
skup instrukcija. Te o:movne instrukcije retko su slozenije od slcdccih:
Sabeti dva broja.
Pro veri da li je zadati broj nula.
Kopiraj skup podataka iz jednog dcla mcmorijt: racunara u drugi.
S \ c osnovne i m;trukcije koje racunar razumc, obrazu ju jezi k pomocu koga !judi
knmuniciraju s racunarom. To jc masinski jezik. Konstruktori novog racunara uvek
moraju brinuti o tome kojc cc instrukcije ukljuciti u njegov masinski jezik. Oni obic-
nu pokusavaju da osnovne instrukcije ucine stn jednostavnijim i usaglase ih s name-
nom konkrelnog racunara i njegovim pcrformansama, kako bi smanjili slozcnosl i
ccnu e!cktronskih kornponcnata potrebnih za njcgovu izgradnju. Posto je masinski jc-
zik racunara izuzetno jednostavan, !judi se njime sluzc tt:Sko (narocito ako racunaru
treha da ;:adaju iole slozeniji 7.adatak) .
2 Poglavljc I: Lvod

Navedeno zapazanje JC s vremenorn dovelo do strukturiranja racunara u niz thije-
rarhijski urectenihJ apstrakcija kojc se nadgraduju jedna na drugu. Na taj nacin se
ovladava slozenoscu racunara da bi se racunarski sistemi mogli projektovati sistemal-
ski, na organizovan nacin. Pomenuti pristup nazivamo strukturirana organizacija
racunara (engl. strucrured computer organiz.mion). U slcdecem odeljku objasnicemo
taj naziv podrazumeva, a poslc toga cemo se pozabaviti razvojem racunara. sada-
snjim stanjem ll loj oblasti i ponuditi neke vazne primere.
1.1 STRUKTURIRANA ORGANIZACI.JA RACUNARA
Kao sto je pomenuto. vel ika je razlika izmedu onoga sto odgovara ljudima i unoga
odgov<.mt racunaru. Ljudi bi zeleli da urade neko X, ali racunari mo.!!u da urade
samo V To otvara prublcme. Svrha ove knjige je da objasni kako se takvi prohlcmi
mogu prevazici.
1.1. I .Jezici, nivoi i virtuclnc masine
Prohlemu se mo:l.c prici na dva nacina. a oba zahtevaju da se stvuri nov skup in-
strukcija koji ljudima vise odgo1 ara od .skupa ugradenih masinskih insrrukcija. Taj
skup novih takode form ira jedan jezik koji cemo zvati L l. 1.a razliku od
masinsh1g je;.ika LO kuJi razume racunar. Ova prildza prohlemu razlikuju sc: unacinu
na koji ral'unar i1.vrsava programe napisane n:t jeziku 1.1. iako vee znarno da racunar
rnoze da samo programe napisane na nje;s,1vum ma;imktlm.wziku LO.
.Jedan nacin izvr.\avanja prograrna pisanih na jc.ciku L -da Se najpre S\aLt
njegova zameni ekvivalentnim ni:wm najaiku LO. T'tko ce se
rezultujuci prugram sastojati iskljul'ivo od itbtrukcija na jeziku UJ. Racunar Ltlb
nov prugram najeziku LO prograrnd najcziku Ll. Ova tchnika
se nazi va prcvodcnje (engl. tmnslutionl.
Drugim nacinom se prugram pi san najeLiku L l ucitava imtrukci_ju P"
sv,tka se instrukcija rcdom ispituje i mlmah njoj ,kup irbtmk-
cija najeziku LO. Na taj nacin se i1bega1a pretlwJno cit<.l\og nuvo::: pro-
grama na jeziku LO. Tdmika se zovc simuit:l!HJ prevodcnje, direktnu tum:.Jcenje ili
interprctinmje tengl. inrcJprctotion). a program kuji je J...,Jristi naziq sc
(engl. intt'tpreterl.
Prevodenje i intnprctiranje stt slicnc tehnikc. l' ,lb:l _,iul:aja ncu!iar izvrsa1 a in-
strukci_je najc7.iku L l sro izvrsava ckvivalcnt!Je ni;u1e rn:;trukcija najcnku Ul.
R.a;likajc u tome stu :;c pri prevudenju ceo prugra:11 p1s"n najcziku Ll najp1c prcve-
dc u program na jl'liku UJ. odbaci prvi I L I)_ a nPvi 1 LO 1 uciu ::;e
u mcmuriju racunara i izvrsi. 1\Jkom i7vrsa,,mja . novi (Lil) i <l!l
upravlja re,ursima
Pri interprctiranju. svaka instruhija na joiku L I :uuli;ir<t sc' i J'l"l.'VCJJi. a ;:Him
oclmah i.cvrsava. Ne se nuv program. Ovdc m1crprcicr upr<.tvlja r't:'unan,m.
I
i
I


i


'
l
j;
;
l
t
l.l Strukturirana org:mizacija ral'unara
3
Program napisan na jeziku L l za njCga samo ulaznc podatke. U praksi o;e
koriste oba nacina. a svc cesce i njihuve kumhinacije.
Umesto da razmisljatc o prevodenju i interprctiranju, cesto je jednoslavnije zami-
sliti hipoteticki racunar - Yirtuelnu masinu (engl. rirtuul machine J koja razume
rna\inski jezik Ll. Nazovimo tu rnasinu l'vll (a neku drugu koja razume je-
zik LU, masinom MO). Kada hi se takva ma;i;;a mogla konstruisati uz niske troskme,
uupste ne bi bilo potrcbe zajczikom LO iii koja izvrsava programc pi sane na
jcziku LO. Ljudi hi pisali svoje progr,trnc: n:t i!-..u L l i racunar bi ih direktno izvrsa-
vao. Cak i kacla bi kon-;truisanje mas inc 1-..uja jezik L l hilo pre vise skupo iii
slo/cno. !judi hi i dalje mogli pisati pwgr,lm: Ll nju. Tt: programe bi mogao interpre-
tirati iii prevesti program napisan najc;.iku LO, koji se i sam direktno mnze izvrsavati
na clatorn racunaru. Drugim rccima. !judi mugu pisati programe za virtuclne masire.
bas Lw dit one \t varno postuje.
[)a hi prevm1cnjc i interpretiranje u prako,i hilo etikasno, jczici LO i L l ne srneju se
medw;obno pre vise razlikovati. Chu cesto znaci dace jezik L 1, iako bolji
od je1.ika LO. i clalJe hiti daleko 0(1 idealnog za veeinu primena. Ta cinjcnica moz.Ja
oheshrabruje kada 'e uzmc u obzir prvobitna svrha pravljenjajezika L I -- oslobadanjc
programera rmrke da algnritarn iska/e jczikom koji mnogo vise odgovara masini
ljudskllj prirmli. ivlcdutim. ,ituacija ipak nije beznaddna.
Pnu hi nam palona um da trc'ba napravitijusjeclan skup instrukcija kojije, tarn-
liku ldje,rika Ll. vi;e priLtgnllen ljudima. a manje racunarima. Taj trdi skup takoJe
obr<.lluje iuik kuji cemo nazvari L2 t i zamisliti virtuelnu rnasinu M2 koja ga razume).
Liudi :;ada mogu da pisu progcan:e na jeziku L2 bas kao da stvarno postoji virtuelna
ciji je masin'ki joik L2. Takvi programi se mogu prevoditi najeL.ik Ll iii ih
oircktno mozc ir:terprL'ler pisan najcziku Ll.
S rrav1Jenjcm niLa _ioiJ...a, pri ccmu jc svaki skdeei pogodniji za !jude Jd
njegu\ og prclhoc!n i kct. m lfe 'c il'i ll nedogled i l i sve dok se nc oformi jed an je1ik knj i
jc dcov(l)_in" ?a ljud,ku upotrebu. Svaki odjezika u ovom nizu kmisti prethcd-
lll JCI.ih bo ustw\ u. taku koji primenjuje mu tehniku mozcmo po>matrlti
slnjeYa !engl. Iii nivoa (engl. i<Tefs). poredanihjedan na drugi. kao na
slici i-1. jelil-: i ni'. ,, ,u najjcdnostavniji. a najvisi jezik i nivo su. naravrlll. naj-
\!o7,_nij i.
va!ctn CHino' itmer.iu jczika i virtuclne masine. Svaka masina ima S\Oj
lll<l:;,iihki jc;ik. ,,ts[adjt:ll od )<..iit instrukcija koje 111\lZC da izvrsava. J'vJa;ina l1 Slvari
jc'/lk.] nh-nu'O. juik masinu tj. masinu koja lllOZC da izvrsa\a SvC
pn';2l'alllC iU tom jciiku. :\ara\'110, mas ina koju definise odredcni jczik TllOZC
da buJe i!.U/d!W slo.icnd a r:jc:no riLicku h:onstruisanje od ekktronskih kompuncnata
!11< '-'C i. j:: bl; uhLira na to ipa!-. rnozemo zamisliti. Mas ina s jezik0rn
C di C+-'- ili '> je;ikrm Lt;;t L:t) svojim masinskirn jezikom bila bi zaista slu?:em, .t!i
hi se bkll ll1U;2l" n.tpra\ ;ti p,,mocu savremcnc tehnolugijc. Ipak. posloji dobar razl,)g
cia ;,c racunar rr:: !: '"i cenum ne bi ruogao kunkurisati drugim racunari-
ma. TD Ii<:.<:tu \11t)ie. niJ: dovuljrw ukoliko u praksi nije i isplativo.
r
.
'
I
!i
t
l
4
Nivo n
Nivo 3
Nivo 2
Nivo 1
Nivo 0
Virtuelna masina Mx
s masinskim jezikom Ln
Poglavlje 1: Uvod
Programi na jeziku Ln
__... interpretiraju se
interpreterom koji se
izvrsava na nizoJ masini
iii se prevode na njen
masinski jezik
Programi na jeZiku L2
interpretiraju se interpreterom
_- koji se izvrsava na masini
__... M1 iii MO, iii se prevode
na njen jezik L1 iii LO
Programi na jeziku L1
interpretiraju se interpreterom
koji se izvrsava na masini MO
iii se prevode na jezik LO
Elektronska kola mogu
direktno da izvrsavaju
programe na jeziku LO
Slika l-1. Masina s vise nivoa.
Racunar san nivoa moze se u izvesnom smislu posmatrati kao niz od n razlicitih
virtuelnih mas ina, od kojih svaka ,govori'' drugacij im masinskim jc.cikom. Smatracc-
mo da izrazi ,nivo" i .. virtuelna masina" znace isto. Elcktronska kola mogu dircktno
da izvrsavaju sarno prograrne pi sane na jcziku LO- nema potrcbe za prevodcnjcm iii
intcrpretiranjem. Programe pisane na jezicima Ll, L2 ..... Ln mora interprctirati in-
terpreter koji se izvrsava na nizemnivou iii se rnoraju prevcsti najezik koji odgovara
nizem nivou.
Osoha koja pise programe za virtuelnu masinu nivoa n ne mora da brine o skrive-
nim interprcterima i pmgramskim prevodiocima. Sarna struktllra masine llbezbeJujc
da se ovi prograrni izvrsavaju na odredeni nacin. Programera ne treba da zanima da li
cc njegove programe izvr;avati (korak po korak) interpreter koga i.cvrsava drugi in-
terpreter iii ce ih dircktno izvrsavati elcktronska kola. Raultati SLI Ll oha slucaja isli:
programt sc tzvrsava.JU.
Yccinu programera koji kuri,tc masine san nivoa. zanima samo najvisi slnj. onaj
koji sc najvisc razlikuje od masinskogjezika u najnizemnivou. Mel!utim, ako L.elitc da
razumcte kaku racunar runkcinnisc, udubiti u sve nivoc. Ljudi koji kunstruisu
nove racunarc ili nove racunarske slujevc (tj. mwc virtuclne masine) takode muraju cln-
bro poznavati sve nivoc. Konccpcije racunara i tehnikc njihovog konstruisanja iz niza
uzastopnih ninJa, kao i dctalji samih nivoa. glavne su teme ove knjigc.
I
i
1.1 Strukturirana organizacija tacunara
5
1.1.2 Savremeni racunari s viSe nivoa
VcCina savremenih racunara irna elva iii vise nivoa. Postoje racunari i sa sest nivoa,
kao na slici 1-2. Nivo 0, u samom dnu, predstavlja hardver racunara. Njegova elek-
tronska kola izvrsavaju programe na masinskom jeziku nivoa l. Istine radi, treba reci
da postoji i nivo ispod nivoa 0. Taj nivo, koji nije prikazan na slici 1-2 zato sto spada
u elektrotchniku (i zato izlazi iz okvira ove knjige), zovc se nivo uredaja (engl. de-
vice level). Na torn nivou, konstruktor vidi pojedinacne tranzistore koji za njega pred-
stavljaju najosnovnije komponcnte racunara. Ukoliko nekoga zanima kako tranzistor
radi iznutra, morace da prede na polje fizike cvrstog stanja.
Nivo 5 I Nivo jezika prilagodenog problematici
Prevodenje (prevodilac)
Nivo 4
Nivo asemblera
Prevodenje (asembler)
Nivo 3
Nivo operativnog sistema racunara
Delimicno interpretiranje loperativn> sistem)
Nrvo 2
Nivo arhitekture skupa instrukcrja
lnterpretiranje lmikroprograrn) iii direktno izvrsavanje
Nrvo 1
Nivo mrkroarhitekture
Hardver
Nrvo 0
Nivo digitalne log ike
Stika l-2. Rctl:unar sa sest nivoa. hpod svakog nivoa naznacenje poJr.lani nacin i1.vrsavanja
(zajedno sa imenom programa)
Na najniz.em nivou o komc cemo govoriti. na nivou digitalne logike. zanimace
nas tt.v. logicka kola (engl. gutes). lako su izgradcna od analognih komponenata. kao
slu su tran.ci;,tPri. logicka kola sc mogu precizno modelovati kao digitalni urectaji.
Svako logicku kolo imajcdan iii vise digitalnih ulaza (na koje se clovode signali koji
prelbtavljaju 0 iii I) i izlaz na kome sc pojavljuje neka jednostavna funkcija u\aznih
podataka. npr. AND (konjunkcija) iii OR (clisjunkeija). Svako logicko kolo sastoji sc
oJ najvisc nckoliko tranzistora. Kombinovanjcm nekoliko logickih kola moze se na-
praviti jcdnobitna memorija. u koju sc mozc smestiti jedna nula iii jedna jedinica. Jed-
nnbitnc memorije se mogu kombinovati u grupe od npr. 16. 32 iii 64 da bi se dobili
I
6
Poglavlje I: Uvod
registri. Svaki registar moze Ja cuvajedan binarni broj ogranicenc velicine. Kombi-
m;vanjem logickih kola moze se napraviti i mikroprocesor racunara. Logicka kola i
nivo digitalne logike detaljno cemo doraditi Ll poglavlju 3.
Naredni visi nivo je nivo mikroarhitekture (engl. microarchitecture !ete/). On po
pravilu sadrzi skupove od do 32 registra koji cine lokalnu memoriju i elektronsko
kolo zvano ALU (aritmcticko-Iogicka jedinica. engl. Arithmetic Logic Unit) koje
moze da obavljajednostavne aritmeticke operaeije. Registri su povezani sa ALU jc-
dinicom i obrazuju putanju podataka (engl. datu path) kojom teku podaci. Osnovni
zadatak putanjc podataka je da izabcre jed an ili dva registra s kojima cc ALU jedinica
raditi (na primer, da sabere njihov sadrzaj) ida rczultat srncsti u neki registar.
Na nekim racunarima, radom putanje podataka upravlja tzv. mikroprogram. Na
drugim racunarima, putanjorn podataka upravlja dircktno hardver. u prva tri izdanja
ove knjigc. ovaj nivo smo zvali ,nivo mikroprogramiranja' jerje do sada to uvek hio
sortverski interpreter. Posto putanjom podataka sada cesto (dclimicno) upravlja di-
rcktno hardver. vee u cetvnom i.(danju smo na odgovarajuci nacin promcnili ime
ovog ntvoa.
li racunarima u kojima se putanjom podataka upravlja softvcrski, mikroprogram
je interpreter instrukcija na nivou 2. On preuzima, ispituje i jednu po jeclnu
instrukciju. koristcci 1.a tu putanju pmlataka. Na primer, im:trukcija ADD ;.,e najprc
pronalaLe se njeni operandi i prcnose u registrc. iaacunava sc zhir u ALU
jedinici i na kraju se rczultat upucujc na oclredeno mesto. Na racunaru s hardver:-,kum
kontrulom putanjc podataka se isti kmaci. aline postoji odreden (zaseban)
program La intcrprctiranje instrukeija na nivou 2.
Na nivou 2 imamo tzv. nivo arhitckture skupa instrukcija (c'ngl. lmrruclion Set
Ar<"lzilect!lrc feTe!. /SA /,,vel). Svaki proizvodac 1.a SVLlje ral'unare st:m1p,1 prirucnik
koji se, na primer. LOve ,,Referentni prirucn1k rnasinskog jczika" iii . .Principi rada
racunara Western Worn hat :vlndel I OOX". U prirucnicima sc ne govnri o n1/Jm
nivoima. vee upravo o nivou !SA. Kada se u njima opisujc skup rnasinskih instrukc'i-
ja. u stvari :-,e upisuju instruk.cije kojc interpretira mikroprngr:lm iii Kojc
hardverska dektronska kola. Ako hi proiLvodac neki nd svojih modele;
mio s dva interpretera, koji intcrpretiraju d\a razliCiU nivoa ISA. morao bi da ohcz-
hcdi i dva rderentna prirucnika za ,masinski je1.ik''. po jedan za svaki interprcteL
Naredni nivoje obicno hihridan. Vecina im;tmkcija na lljC!,:<J\"unljezik.u j,wvrerne-
no pripada i nivou IS,-\. tNema razloga da inqrukcija k,ja :;e p<)icnljttje na jednom
nivou ne postoji ina drugim nivoima.) Osim tnga. tu pt><-:tnJi i skup 11lWih
drugacija organi1.acip mcmorije. mugucnost islovremenog iLvrscJV:tllp lh a il1
prug:rama i jos stosta. Detinicija nivoa 3 varira nmogo vi:;c od dctiniL'ija nivoa I il1 2.
Nove mugucnosti nivoa 3 irvrsava interpreter nivoa :2. kc>ji ;e i; ist<,riiskih rcvl,ga
upnativni sistcn1. lnstrukcijc nivoa .1 koje su identicne instrukc.:tj,una nivua 2 ,ii-
rektno izvr;ava mikrupro)lram (iii hardver). Jok nove instrukcije i;:vr'a\a opera! I\ ni
sisrem. Drugim rdima. neke od instrukc:ija nivua .1 inr'a\a upcr:ttivni a nc'L'
dird.tno mikmprogram. Zato ka/.emo cb je ovaj ni' '' ,,hihidc:n ... Du kr.tja knjigc.
ovaJ ni \ 'J L'emu na;i vati nivo operativnog sistema ra(unara ! engl. OfH' uu sn1 cn1
muchine icl'cli.
I
I
f;
I




"



i

J.
t


;;;
}{'

lJl

2
6


j
I
I

I
"
1.1 Strukturirana racunara
7
-----------------
J
7
.rncL1u nivoa 3 i 4 postoji fundamentalna raz!ika. Najniza tri nivoa nisu namenje-
na proscenom programeru. Oni su prven;.,tvcno mesto za it.vrsavanje i
programskog prevodioca u cilju pmlrske vi;im nivoima. Te interprctere i prograrns(c
prevodioce pisu sistemski programeri. !judi kPji :-,u se specijalizovali za projek-
tuvanje i ugradivanjc novih virtuelnih rnasina. Nivo 4 i nivoi iznad njega namenjeni
su programcrima aplikacija koje treba da rcsaV::IJLI ra;.licite prohleme.
Druga nnvost na nivou 4 jcste nacin pmli zav;;nja visih nivoa. Nivoi 2 i 3 uvek sc
interpretiraju. Nivoi 4, 5 i vi;i obicno -;e. m;;da Jll: uvck, rrevode.
Josjednu r;l7liku izmedunivoa I. 2 i 3. sjednc str,mc. i nivna4, 5 i visih. s
cini prirocla koriscenug jezika. lvlasinski nivoa I, 2 i 3 u nsnovi su numericki.
Programi pisani na tim JCzicima sastojc se od dugih nimva hrojeva koji sc dopad;ju
racunarima. ali ne i ljudima. l'ocev od nivua .f. je;ik se sao;toji od reci i tekstualrih
skrac'enica koje za !jude imaju odreLtcno t.nacenje.
4 (nivo asemhlera) sadrzi je;.ik iz nizih nivoa preveden u skup
tckstualnih simbola. Ovaj nivo pru7a ljudima da pisu programc za nivcJC
I, 2 i 3 u tlbliku koji nije tak,, ncprijatan kao je;.ici virtuelnih masina. Programi ra-
pisani u asernhlcru najpre se prevocle na jezik ninJa I, 2 iii 3. a zatim ih intcrpret1ra
odgovarajuca virtuelna masina ili stvarni racunar. Program koji obavlja prevodenje
zove se ascmbler (engl. !Jssemhfer).
Nivo 5 ohicno sadrzi jezike namenjenc programerima aplikacija, kojc treba da
resavaju konkrdne pmhkme. Takvi je;:ici se obicno zovujezici visokog nhoa (en,;!.
high-level louzgunge.l) i ptbluji ih bukv:dno na sturine. Nekoliko poznatijih su C, C++,
Java, LISP i Pnllng. Programe na ovimje;.icima, najet.ikc nivoa 3 iii 4 obicno
prcvodc programski prcv,>dioci poznati kao kompajlcri (engl. compilers), mada sc
pnnckad i interpretiraju. Primcrcl radi, prugrami pisani na Javi po pravilu se prvo
vode na JCL.ik 'iican jeziku nivna lSi\ (tzv. Javin bajtkod) koji :-,e zatim interpretir:J.
U nekim slucajev:ma, nivo od interprctera 1.a speci11l'nu oblast pri!llc-
nc, sto Je On ubczbc't!Uje pmlatke i operacije za re'iavanjc
pmbkma iz te obhsti na nacin koji .,trlll'njaci iL te oblasti lako razumcju.
Sv u svcmu. osrw1 no jc: npamti;i da su racunari projektovani kao nizovi uzasl(lp-
nih 11ivoa. Svak.i niHJ pn:dsic:vijajJ>nn odvojenu apstrakciju, s drugacijim objektima
i opc!-ac:J.UT!.t. Pwjd.tujuci i anaiiz!rajuci ral'unare rn ovaj naCin, u stanju smo da rri-
vremcnJ D\hcravimo ru net:i:1e rktalj<: i da tako slozen prohlem svcdemo na nc'sto
.srnislc:no.
Skup i ['0\ '' ;-ndatak::. cpcraci::1 i mogucnllsti -;vakog ni voa naziva se njegova artli-
tektura. -;c: [J,,,,i 1-coji su vidljivi do tog nivoa. (hob ne
nivt>a 1-;ojc: 1 idi prngr:tmer (ll['>f". kul icina ra-,poluztve memorije) delnvi su arhitekture.
Aspekti (npr. vrsta lelll1oiogije kuja se koristi za ugradnju mcmorije)
nisu den Skll!' /n:u:jct putrcbnih .ta prujcktovanje delu\"a racunarskog sistc-
lna kuji ::-,U dt,slnpni 1 ;ove sL arhitcktura raCunara (engl. coJn-
!'illa urcf,;rcLw rc 1. L: prak arhitc:ktura racunara i organizacija raclllura
!1:1aju i-.,h1 /rLt('\:!ljl'.
!Jr .. ;;
I)''


I>
I
\
l
8
Poglavljc 1: Uvod
1.1.3 Evolucija racunara s viSe nivoa
Da bismo racunarirna s vise nivoa dali ,trecu" dimeni'.iju, ukratko cerno sc pozaba-
viti njihovim istorijskim razvojern i opisati kako je s vrcmenom rastao broj nivoa i
kako se uporcdo menjala njihova priroda. Programe pi sane na pravom masinskom je-
ziku racunara (nivo l) rnogu dircktno da izvrsavaju njegova elektronska kola (nivo 0)
bez ikakvog interpretiranja ili prcvodcnja. Elektronska kola, zajcdno s memorijom i
ulazno-izlaznim uredajima Cine hardver racunara. Hardver se sastoji od opipljivih
objekata: integrisanih kola, stampanih ploca (kartica). kablova, uredaja za napajanje,
memorijskih cipova i starnpaca. u hardver ne spadaju apstraktnc ideje, algoritrni iii
instrukcije.
Nasuprot tome, softvet se sastoji od algoritama (detaljnih uputstava kako da se
ndto uradi) i njihovih racunarskih realizacija- programa. Programi se mogu skla-
distiti na disku, na diskcti, na kompakt disku i drugim mcdijumima, ali susti-
na je cia je sortver skup instrukcija kojc sacinjavaju programe, a ne fizicki medijum na
kome se programi bclde.
Na prvim racunarima, granica izmedu hanlvera i softvera bila je kristalno jasna.
Ipak ona se s vremcnom prilicno izgubila, prvenstveno zbog dodavanja, uklanjanja i
rnedusobnog prekrivanja nivoa. Danas je cesto tdko rcci sta je hardver, a sta softver
(Vahid, 2003 ). Centralna tema ovc knjige je sledeca:
llurdvcr i sojiver su logi(ki chivalnztni.
Svaka operacija koja se izvrsava sortvcrski mozc se i direktno ugraditi u hardver.
narucito posto se detaljno shvati svaki njcn korak. Kao sto kazc Karen Panetta Lentz:
.. Hardvcr nijc nista drugo do okamcnjeni softvcr'. Naravno. vazi i obrnuto: svaka in-
strukcija koju izvrsava hardver mozc se i softvcrski simulirati. Odluka da sc oclreclenc
funkcije realizuju hardvcrski, a neke drugc softverski, zavisi ud cinilaca kao sto su ce-
na. brzina. pouzdano:;t i uccstalost occkivanih promena. Postoji nekoliko cvr-
srih pravila o tome mora da ide u hardvcr. a sta izricito mora cia se prograrnira.
Takve odlukc se mcnjaju s trcndovirna u ekonomiji prozvodnje, s potraznjom i naci-
nom racunara.
Nastanak mikroprogramiranja
Pn i digitalni racunari iz god ina pros log veka imali su samo dva nivoa:
nivo !SA. rcz.crvisan /.a programiranjc i nivo digitalne logikc koji je izvrsavao pro-
Elektrunska kola na nivou digitalne logike bila su slozena, tdko ih je bilo ra-
zumcti i proizvesti i su nepouzdana.
l'vlaurice Wilkes. istrazivac na Kembridzu. 1951. godine predlozio je projekto-
vanjc racunara s tri nivoa kako bi sc drasticno pojcclnostavio hardver (Wilkes. 195 l ).
Takva masina je trcbalo da ima ugracten, nepromcnljiv interpreter (mikroprogram).
cija bi runkeija bila da interpretiranJelll izvrsava programe na nivou !SA. Posto bi
hardver. umesto da programe na nivou lSi\, rnorao da izvrsava samo rnikro-
prugrame -,a uzim skupom instrukcija, bilo bi potrebno manje elektronskih kola. u to
1.1 Strukturirana organizacija racunara
9
vreme su elektronska kola pravljena od elektronskjh ccvi, pa bi precllozeno pojedno-
stavljenje znacilo manji broj elektronskih cevi i vecu pouzdanost (manji broj dnevnih
otkaza sistema).
Tokom pedesetih goclina napravl_ieno je nekoliko racunara s tri nivoa, a znatno vise
tokom sezdesetih. Icleja da se nivo ISA interpretira mikroprogramski umcsto direktno
elektronikom, dominirala je tokom sedamdcsetih. Svi glavni racunari tog doba kori-
stili su takav sistem.
Nastanak operativnog sistema
Tih ranih dana racunarsko vreme se uglavnorn iznajmljivalo, sto znaci da je svaki
programer morao lie no cia radi' s racunarom. Pored svakog racunara nalazila sc svcska
za upisivanje. Programer koji bi zeleo da izvrsava program rezervisao bi u svesci
odredeno vrernc (npr. u sredu izmedu 3 iS sati ujutru jcr su rnnogi programeri najvise
volcli da rade u tisini racunskog centra). Kada bi njcgovo vreme doslo, programer bi
krenuo u racunski centar sa ,.spilom" ud 80-stubacnih husenih kartica (medijum za
unosenje podataka s pocctka racunarskog doba) Ll jcdnoj ruci i zasiljenom olovkom Ll
drugoj. Kada bi stigao u racunski centar, ljubazno bi izgurao napoijc svog prcthodni-
ka i seo za racunar.
Ako bi programer zeleo cia isproha program napisan na PORTRAN-u, morao bi da
uradi sledece:
I. Otisao bi do ormana gde se cuva bibliutcka programa, izvadiiJ veliki
registrator sa oznakom ,.FORTRAN compiler', stavio bi kanice iz njega u ci-
tac i pritisnuo dugme START
7 Stavio bi svoj program napisan na FORTRAN-u u citac kartica i pritisnuo
dugme CONTINUE. Program hi tada bio ucitan.
3. Kada se racunar zaustavi, ponovu bi ucitao svoj program. Jako je za neke prc-
vodioce (kompajlcre) dovoijno da sc program ucita samo jcdnom, /a mnoge
su potrebna dva i vi;e .. prolaza. Pri svakom prolazu treba ucitati veliku gru-
pu kartica.
4. :--Jajzad se pre\odenje programa primice kraju. Programera ohicno hvata ner-
voza- ako prevodilac tada pronade gresku, programer mora da je ispravi ida
ponovo zapocne citav postupak prevodenja. Ako ne pronade grdke. prevocli-
lac busi nove kart ice. upisujuci program prcveden na masinskijc1.ik racunara.
S. Programer tada program preveden na masinski jezik stavlp u citac kartica
zajedno s grupom kartica koje sadi"Ze potprograme iz biblioteke i ponuvo ih
ucitava.
6. Program pocinje da se izvrsava. U velikom hroju slucajeva on nc radi kako
trcba i neocekivano se zaustavlja usrcd rada. Programer bi se tacla malo po-
igrao s prekidacima na konzoli i posmatrao signalna svelia. Llkoliko bi imao
srece. otkrio bi u cemujc problem. ispravio grdku i okrenuo sc ormanu s ve-
likim 1elenim registratorurn da hi pustupak zapoceo iznova. Ako ne bi imao
srece, bio hi prinuden da Starnpa statUS radne JilCIUIH'ijc racunara (engl.
core dll!llf!) koj i bi min eo kuci da ga prostudira na miru.
l
l
f
t
t
!
I
i


rJ'....,.."""'-'
10
Poglavlje l: U vod
Opisani scenario. uz manje izmene. bio jc godinama uohicajcn u mnogim racun-
slim ccntrima. Uz njega su programcri monli da uce rad s racunarorn ida znaju sta da
prcduzmu kada on prestanc da radi. sto se cestu dogadalo. Racunar je cesto radio u
pra7110l11 hodu doJ..: Sll programcri nu;,a[j J..:articc po prostoriji j[j Se zhunjeno CeSkali iza
uvcta pokusavajuci da pronal1u njihovi pnJgrami nc rade kako trcba.
Negdc oko llJoO. god inc doslo se na idcju da sc hod racunara smanji tako sto
cc sc autumatizovati po;,ao opcratera. Poschall program. nazvan operativni sistem
(engl. Ofi!'mting sYstem). sve vrcme se nalazj,, u r::cun:tw. Programer je zajedno s pro-
gramom unosio i kontrolne karticc koje jc cit<:u i opcrativni sistem. Slika 1-3
pril-.azujc primer posla koji je ohavljao jedan ,,d prviil operativnih
si:,tcrna, FMS tFORTRAi\i Monitor System). na racunaru IBM 709.
Program !lOfliS3n
no jenku
FORTRAN
KHt:ce
s
JOB. BARBARA
*XEO
FOSTRA.t\J
DAT.4

Sl:k:t

f'riPJu jt-d:>()g F\h!:t k1lji (lh,1vlja uperati\ni Fl'vlS.


i 11! 'i''cmjc: Luticu
1
'1013 i infornwcije s nje koristio ,ra brojanjc.
1 K<111lruinc tic1: 'u cJZlt:ICd\'<lttc L\c:zdicum dane bi bile protumacenc lao kart icc
s pmc:ramc'tll li1 ' J'ldacima.l S1s:cm jc kasnijc ueitavao karticu *FORTRAN -in-
u-a;;.c uc!u nrcvodilac FORTRAN-a. Ucitani prevodilac bi
t,;cLt p:.._;, c" P"'O'L<i!i ,,i,;;;it na Kada bi prevmlilac zavrsio svoj zadatak.
H<:ti" bi k<liltrolli <.lf':rat!\nom -;i:,icmu. knji bi tada ucitao karticu *DATA. Tojc hila
/d I/\!',,!\ ;lnjc [.,,.C\ CdCilu: j1l'U[2I':lll1a lt1j i [)0! reh!lC podatke UCi ta Va S h<if-
\l' n;tL:/t..' :<]).-\T\..
Ltk" iL PPc'Ltl:\ 11i .;i,k:ll :tulom:til/.UVao posan \)peratcra (odatle mu i imc). Dn jc
i:.t
1
;' :,men(; ""' ['I', i k. II ;;k ka u.<' ;:rcnju nove \irtuclnc masine. Karticu ''FORT-
R:-'\N !l1t:
1
/cLc \ill,;:rati , !nuctno!1l ln-..tru"-cijcqn tipa ,,prcvedi progr:..un.
11
l.l Strukturirana racunara
----------------
Slicno tome, karticu *DATA mozete smatrati virtudnorn instrukcijom tipa ,izvrsi
program". Nivo sa samo dve instrukcije i nije bas ncki nivo, ali je vazno poccti.
Narednih godina, operativni sistemi su svc vise usavrsavani. Nivou !SA dodavane su
nove im;trukcije, pogodnosti i mogucnosti sve dok nije pocco cia lici na nov nivo. Neke
od instrukcija novog nivoa bile su iste kao i instrukcijc na nivou !SA, ali druge (narocito
ulazno-izlame) bile su sasvim razlicite. Nove instrukcije su se cesto zvale makroi ope-
rathnog sistema (engl. operutillg system 11Utcros) iii programerski pozivi (engl. su-
pervisor calls). D<mas se uobicajerl\l zovu sistemski pozivi (engl. svstem culls).
Operativni sistcmi su se razvijali i u drugim pravcima. Prvi su iscitavali grupc kar-
tica i rezultat starnpali na linijskorn stampacu. Takva nrganiL.acija rada poznataje Lto
sistcm paketne ohradc poda.taka (engl. hwch system). Obicno hi proteklo vise sati
od trenutka kada jc program stavljcn na ucitavanje do dobijanja rczultata. Pod takvim
oknlnostima bilo jc tdiko razvijati softver.
Pocetkom godina, istrazivaci na koledzu Dartmouth. na Tchnickom in-
stitutu iz Masacusctsa i na drugim mestima, razvili su opcrativni sistem koji jc orno-
gueavao da vise programera istovremcno komuncira s racunarom. U tim sistemirna
udaljeni tcrminali su s cenlralnim racunarom pnvezi vani pomocu tclcfonskih linija.
Racunaru su istovrcmcno pristupali mnogi knrisnici. Programer jc rnogao da
program i da skoro trcnutno dobije odstampane rczultate u kancelariji, u svojoj garaz.i
iii na hilo kum mestu gde je instalirao terminal. Takvi sistcmi su se zvali sistcmi s po-
deljenim vremenom (engl. tunes/wring svstems).
Nase zanimanjc za opcrativne sisterne ogranicicemo na one njcgove ddove kuji
intcrpretiraju instrukcije i mogucnosti nivoa 3 koji nc postojc na nivou !SA-ne 7a-
nimaju nas aspekti deljcnja wcmen:1. lako tone nag!a;avamo, imajtc na umu da ope-
rativni sistcm, osirn interpretiranja instrukcija i moguc'nosti dodatih nivou !SA, radi
jos stosta drugo.
Prenosenjc funkdonalnosti u mikrokod
Kadaje mikroprogr::tmiranjc vee postalo obicna stvar (Sedamdesetih godina). pm-
jektaP.ti su shvatili da nove instrukcije mogu dodavati jednostavnirn
rnikroprugrama. Drugim recirna, mogli su da dodaju .,hardver" !nove masinske in-
strukcije) pn,stim prograrniranjem. To otkrice je izaHalo pravu eksploziju
masinsk!h instrukcija. stc je bio rcLU]tal rnedusobnog takmiccnja programera cia <l<l-
pravc vcc'i i bolji skup. Mnoge instrukcije nisu bile u pravom smislu nove- njihov
efekat se rnog<tn postici i koriscenjcm postojec'ih instrukcija. ali su nove im,trukcijc po
pravilu davale re.w!tatndto brze od postojec'ih. Na primer, mnogi racunari imajtl in-
strukciju INC ( uvecanJe za jedan. engl. INCrement). koja JC .cadati broj uvecaval<: za
jedan. Posto su takvi racunari imali i opstu instrukciju ADD. uvudcnje nove instrukcij':
za doda\anjc brojajedan (iii, npr. broja 720) nije bilo ncopliodno. :VkJutim. instruk-
cija INC jc po pravilu radila nesto brze ml instrukcije ADD, pa je zadr:lana.
_..
ffii'
t'

;;
j,

j
12
Poglavlje 1: Uvod
Iz slicnih razloga mikroprogramu su dodavane i mnoge druge instrukcijc. To su
cesto bile:
1. !nstrukcije za mnozcnje i deljenje celih brojeva.
:2. lnstrukcije za racunanje s brojevima u formatu pokretnog zareza.
3. Instrukcije za pozivanje procedura i vracanje rczultata iz njih.
4. Instrukcijc za ubrzavanjc rada u petljama.
5. lnstrukcije za rad sa znakovnim nizovima.
Stavise, kada su konstruktori racunara uvideli koliko se lako mogu dodavati nove
instrukcije, poceli su da trazc nove mogucnosti kojc bi dodali svojim mikroprogrami-
ma. Evo nekoliko primcra takvih Jodataka:
1. Ubrzanje racunanja s nizovima (indeksiranjc i indircktno adresiranje ).
2. Mogucnost premcstanja prograrna u memoriji nakon pocctka njegovog
izvrsa van ja ( mogucnost rclokacijc ).
3. Sistemi prekida koji salju signal racunaru cim se zavrsi ncka ulazna ili izlaz-
na operacija.
-+. Mogucnost da se privrerneno zaustavi jedan program i zapocne drugi po-
mocu malog broja instrukcija (zamena procesa).
5. Specijalne instrukcije za obradu zvuka, slike i multimedijskih datoteka.
Tokom god ina, dodavane o;u i mnoge druge osobine i mogucnosti, najccsce da bi se
uhrzala odrcdena akti vnost.
Napustanje mikropmgramiranja
Mikroprogrami '>ll '>G prilicno U\'ccali tokom zlatnog doba mikroprogramiranja
(sczdesctih i '>cdamdeo,ctih godina). Zbog toga su se izvrsavali svc sporije i sporijc.
Konacno '>l! ncki strui:njaci shvatili dace racunari raditi brze ukoliko se eliminisu mi-
kroprogrami, smanji skup imtrukcija i direktno izvrsavaju preostale instrukcije (tj.
ak.o se han.hcrski kontrolisc putanja podataka). Projektovanje racunarajc tako u izve-
snom smislu zatvurilu krug. vracajuci se na mesto gde je hilo pre nego sto je Wilkes
smislio mikwprugramiranje.
lpak. taj krug se i dalje ukrece. Programi pisani na Javi ubicno se izvrsavaju tako
stu se prevodc u medujezik. (Javin bajtkodl koji se zatim intcrprelira.
U ovum izlaganjn i'takli smo proizvoljnost granicc izmcdu hardvera i softverajer
sc ona stalnu pomc:ra. Danasnji softver rnoze postati hardver sutrasnjice i obmuto.
,Stavise. ncjasne i izmedu pojeJinih nivoa. S programcrskog stanovista, ne-
vazno JC J..Jkn sc uJreLkna instrukcija implementira (osim, mo/:da. ako postoje razlikc
u brzini iz\ r\avanja}. Onaj ko program ira na nivou!SA. mozc da upotrebi njegovu in-
strukciju za rnno:l.enje kao da je hardverski ugradena ida o njoj vise ne brine (cak ne
mora ni da li jc LlJJLt '>tvarno harJverska). Hardver jednog programcra je softver
drugog. Na s\c ovc teme vraticemo se kasnije.
1.2 Kljui'ne tai'ke razvoja arhitekture rai'unara
1.2 KLJUCNE TACKE RAZVOJA ARHITEKTURE
RACUNARA
13
Da bi se stiglo do digitalnog racunara kakav postoji danas. projektovano je na
stotine razlicitih vrsta. Vecina je davno pala u zaborav, ali je nckoliku vrsta imalo i
znacajan uticaj na savremene ideje. U ovom odeljku ukratko cemo prikazati neke epi-
zode istorijskog razvoja racunara da bismo potpunije razumeli kako smo stigli do
onoga sto imamo danas. Ne treba posebno isticati da se ovde samo doticemo najsvet-
lijih primera, zapostavljajuCi brojne detalje. Na slici l-4 nabrojani su neki od kljucnih
racunara o kojima ce biti govora u ovom odeljku. Slaterov tekst ( 1987) dobro je stivo
za upoznavanje sa osobama kqje su zapocelc cru racunara. Njihove kratke biogratije.
uz prcdivne kulor-fotografije Louisa Fabiana Bachracha, potrazite u Morganovoj
knjizi ( 1997).
Napomena
Prvi pokusaj da se napravi digitalni racunar
Prva masina za racunanje s relejima koja je
radila
Prvi elektronski racunar
Prvi americki racunar opste namene
--- ._, , Savremeni racunar; istorija pocinie ovde
----1-----------+-P_rv_i_r_a_c_u_n_a_r ,
Prvi racunar koji je radio u real nom vremenu I
I
Vecina danasnjih racunara koristi ovu
konstrukciju

Prvi mini racunar (prodato 50 komada) I
lzuzetno popularan mali poslovni racunar l
Dominirao u naucnim proracunima ranih I
sezdesetih godina I
Prvi racunar projektovan za jezik visokog
nivoa
Prva proizvodna linija projektovana kao
1
l
porodica racunara
Prvi naucni superracunar
Prvi mini racunar za siroko trziste (prodato j
50.000 komada\ 1
. -1
Dominantan mini racunar sedamdesetih j
1 godina . . --j
1 Prvi 8-bitni racunar opste namene na
Slika 1-4. Nckc kljucne tackl: razvoja savrcmcnih digital nih racunara.


i};




rfl
;f
I

14

119
G-9-

11983
CRAY1 I Cray
I VAX DEC
/IBM P_C IBM
'Osborne-! Osborne
Lisa Apple
Poglavljc 1: Uvod
- r-
------------ ----------
I Prvi vektorski superrai':unar
1------------
Prvi 32-bitni supermini rai':unar
------- -----
Poi':inJe era savrernenih licnih rai':unara
----
Prvi prenosivi
Prvi licni racunar s grafii':kim korisnii':kim

1
ik serije Pentium
!1985. /386 .
MIPS------- MIPS komercijclni R:SC


r;-987 _[ - I Sun Pr-:-1 zasnovana na .
tehnologiji SPARC
RS6CJ_0(}_ ________ i IBM _____ _
- 1992. f Alpha ! DEC I Prvi 64-bttnt licni racunar ___ _
- -T Apple j
-
Slika 1-4. kljuCnc tadc ra/\"oja savrcmenih digilalnih racun<tra. ( IIU.\tavuk)
1.2.1 N ulta gencracija - mehanicki n1cunari ( l6-t2-19-t5)
Racun,J..:u masi:1u koja stvanw radi prvi jc napravio f"rancuski naucnik Blaise Pas-
cal 1 162.1 I hh2). pa je u njcgmu cast jcdan progranbki jezik nazvan Pascal. Urt:>daj
koJ i jc napra viu I (J-l2. Ltd a jc i m;11' samo l l) gudina, trcbalo je da pomogne
njcgoV(Jni ucu. P<'rcznif-.u francuske \ iadc. Uredaj jc bio p<llpuno mchanicki. sasta-
vljen od !Upc:liliLt. i P"krctatJ SL' pil!,!<lllno postavijenom rucicom.
l'asc:t!ov;, racunska rnngla jc samo da sabira i oduzirna, ali je trideset go-
dina ka,nijc llCJli:tc!-i baron Goll!"ricd Wilhelm von Leibniz
(I (;-l-6---l 71 h) li:tpr:n io m:hanicku koja je mogla i da mnozi ida deli.
l.cihn:;r u stvari jo:; pre tri vcka ;;aprJ' :u :nchanicki danasnjeg dzcpnog
Ltlkt!ialm,t.
Tnk< >Ill skdc:c'ih lSi: gudin:1 nijc sc: do_'!odilo nista macajno, svc dok profesor ma-
kmatikc Jl:l l<emh:id/u, Cnarlc, Bahi_-ag,; i17LJ2-1871 ), pronala;:ac brzinomera. nije
KUibirui.
1
-,'l) i i/gradi.J difuennm masinu lcngl. di(f"crell<"C engine). Taj meha-
ni..'h.i uredaJ. koji jc !::m 1 F:tsc:tlo'. a mugau samo da sabira i oduzima brojcve,
trd)ai<) _j, da JW.T:iL"l!IE!''a t:thc:ie hruj:'\'a koje su sc koriqile za pomorsku navigaciju.
J,:,_,n.-,u ukc:;:t m:;:;;nc hila jc jl<llireJ::1n i;srsav:l!lju jcdnot_: jedinog algoritma-
i;racuna'- :tnJU I>\ccndlll;l J.;,_Hiacnih ra;:lika. Najzanimljivija osobi-
na di r"c:-::tiL';lc ma<1 nc h;,, JC na.:i 11 na h.c ;j 1jc i "P' ,ruci vala raul tat: una ga jc pomocu ee-
l i..'nc rrutricc L" ,,:kJ; ct!a u b:,k:trnu ;rnjc na ncki nacin preteca svih ncizbrisivib
mcdi.J uma 1" "lnje P cLtt aka. ctu buscnc bnice ili k.ompakt diskuvi.
Iako jc dikr-,:11L'!i<t ma:;:11a r11dila pn1icno dd'm. Bahhage usknro nijc vi;c bio za-
Jllvcllpn kuj;: iC :,c;m<l jcdan alg,lritarn. Pocco jc da ulazc svc
\1" :1 ne i ''- c f..:u! i.:' inc: ;'<m H licnug i mdLI l da ne pominjcmo 17.000 funti
il1u.j ... \Lh_Lt) i konstruisanje njenng naslednika -ana ..
l!tii.;Kl' ;iul; <'fic;!nc). ,-\naJiticf..:C! imaJa Ct:tiri komponen-
l'.-': ,k Ltd;: l<: : li\C!11UJ"!j ll;' ;a,ini cleo I racurbkll jt.'di nicu ). uLlLn i odcljak ( citac busenih
I
I
J
I
1.2 Kljucnc tackc razvoja arhitckturc racunara
15
kartica) i izlazni odeljak (busac kartica i stampac). Skladiste ulaLnih podataka i rezul-
tata sadrzalo je 1000 rcCi sapo 50 decimal nih cifara. Radni dco jc mogao da prihvati
opcrande i;: skladista, da ih sabira. oduzima. mnozi iii deli ida rczultat na kraju vrati
u Slicno clifcrcncnoj masini, i analiticka masinaje bila potpuno mehanicka.
Analiticka masinaje imala tu prcdnost stu je bila opstenarncnska. Onajc ucitavala
instrukcije s buscnih kartica i izvrsavala ih. Neke instrukcije Sll masini naredivale da
uzme dva broja iz skladista, da ih prcncsc u radni dco. cia s njirna nesto uradi (npr. da
ih sabere) i da rcwltat vrati u skladiste. Druge instrukcije su .JOj mogle narediti da
ispita broj ida s njim uradi jcdnu ili clrugu operaciju, zavisno od toga da li je broj pozi-
tivan ili negativan. Kada hi se u masinu stavile buscne karticc s razlicitim progra-
mima. analiticka masina je nwgla da obavlja razlicita izracunavanja, stu difcrencna
masina nije mogla.
Posro ;,c analiticka masina mogla programirati pomocu jcdno,tavnog ascmbkr-
skog jczika. za nju jc trebalo napraviti sortver. Za taj posao Babbage jc anga/uvao
mladu zenu, Adu Augustu Lovelace. cerku cuvcnog britanskog pcsnika. lorda Byro-
na. Ada Lovelace jc tako postala prvi svetski programer. Programski jc;:ik Ada@ do-
bio je ime ll njcnu cast.
Nazalost, kao i mnogi savrcmeni konstruktori, ni Babbagc svoj hardvcr nikada nijc
potpuno ocistio od grcsaka. Problem je bilo to sto je njcgova masina Lahtevala na
hiljade preci1no izradcnih klinova. tocknva i zupeanika bkvc tehnologija devetna-
estog veka nije mugla da proiLvcdc. Bez obzira nato, onjc sa S\ojirn idejama bio da-
lcko ispred svog vremena. pajc cak i danas konstrukcija mnogih savrcmenih racunara
ostala Hlo slicna analitickoj masini. tako da se mozc rcci daje Rabbagc (pra)otac sa-
vremcnog digitalnog racunara.
Slcdcci vdi skok u razvo.JLI racunara dogodio sc krajem tridc:-,ctih godina pro;Jog
wka. kada je nemacki student tehnike Konrad Zuse napravio niz autnmatskih
racunskih masina koristeci elcktromagnctskc rcleje. On nijc mogao da dobije pmlrsk.u
vlacle ;:a svoj projekat jcr jc rat vee pocco. a dr!avne birokratc su bile uverenc cia on
nece trajati dovoljno dugo da masina bude dovrscna pre njegovog kraja. Zusc nije
znao 1.a Babbageov rad. a njcgow masine su unistene u savcznickom bombanlovanju
fkrlina 19-t-J.. gudine, tako da njcgov doprinos niJe imao nikakvog uticaja na dalji raz-
voj racunara. lpak, trcha ga pomenuti kao jednog od pion ira u ovoj oblasti.
NL'SIO kasnije, u SAD SLI se pojavila d\a covek:l koji su Lakudc konstruisali kalku-
latore: John Atanasoll s Dr/amug kuledza /\jove i Geurgc Stihbitz i; Bclovih lablJ-
rawrija. Atana:-:offljcva masinaje hila zapanjujuce moderna za svojc vremc. Koristila
je binarnu aritmdiku i imalajc kondenzatorsku memoriju kPja je zhog elcktricne di-
sipacije povremeno osve/.anna. sto jc postupak koji sc zvao .. ciscenjc memorije'.
Sa\ rem en i cipovi ' di namickom memorijom (DRAM! rade na isti nacin. Masir:a,
nazalo:,t, nikada nijc sl\'arno pustcna u r<td. /\tanasotljc na i;:vestan nacin prosao :,lie-
no ka<J i Babba)!c: ohojica su bili vizionari koje je purazila ncodgovarajuca hardvtr-
ska tehnulogiJ:l tug vremcna.
Sribbitzov racunar. iako primitivniji ud J\tanasoffljev<Jg. ipak je radiu. Stihhitzje
jav no demunstrirau svoj rad na konkrenciji u kt,Jedlu fJartmouth 1
1
!-J.O. gocline. Kon-
fcrcnci.Ji jc prisustVl)ao i John Mauchky, potpuno ncpuznat prokso1 Ji7,ikc s Pcnstl-
vanijskllg univerzitcta. () njemu ce racullarski svet tck cuti.
r
I!
!

ILl
18
Poglavljc I: Uvod
Osnovna zamisao koju je on prvi opisao sada je poznata kao Von Ncumannova
masina. Ona je iskoriscena za racunar EDSAC, prvi racunar koji je memorisao pro-
grame i jos uvek je osnova za skoro sve digitalne racunare- cak i dan as, posle vise od
pola veka. Von Neumannova masina (i masina lAS, napravljena u saradnji s Herma-
nom Goldstineom) imala je toliki uticaj na razvoj racunarstva cia je vredi ukratko opi-
sati. Iako seta masina uvek vezuje za ime Von Neumanna, vaz.an doprinos u njenom
ostvarivanju takode su dali Goldstine i drugi. Blok-dijagram njene arhitekture prika-
zan jc na slici 1-5.
C Momorija I
. j 1 j
Upravljacka
jedinica
Aritmeticko
I Yl
1 ' J Rezultat J
Akumulator
Slika l-5. Originalna Von Neumannova masina
Von Neumannova masina ima pet usnovnih delova: memoriju. aritmeticko-logic-
ku jedinicu. upravljacku jedinicu, ulazne i izlan1e urcd,ue. Memorija sc sastoji od
40l)6 reci od po 40 bitova, od kojih svaki moze biti 0 iii I. Svaka rcc sadrzi dvc
20-bitne instrukcije iii 40-bitni oznacen hroj. Osam hitova svake instrukcije odreduju
njen tip, a prcostalih 12 bitova deflnisu jednu od 40l)6 reci iz memorije. Aritmetic-
ko-logicka jedinica i upravljacka jedinica zajedno cine ,.mozak" racunara. U savre-
mcnim racunarima one se nalaze na jcdnom cipu zvanom centralni proccsor (engl.
Centro! Processing Unit, CPU).
U aritmetickoj logickoj jedinici nalazi se specijalan unutrasnji 40-hitni registar
nazvan akumulator. Tipicna instrukcija dodajc memorisanu rec u akumulator iii
sadrzaj akumulatora smcsta u memoriju. Mas ina nc podrzava operacijc s brojevima u
formatu pokrctnog zareza jer je Von Neumann smatrao da svaki pristojan matema-
ticar moze da pamti decimalni zarcz (u stvari, hinarni zarez).
Otprilike u isto vreme kada je Von Neumann pravio masinu lAS. na
Masacu.-,etskum tchnickom imtitutu (MIT) pravili sujosjedan racunar. Za razliku od
lAS-a, ENIAC-a i drugih slicnih masina kojc su radile s clugackim rccima i sluzile za
slozena numericka izracunavanja, masina razvijcna na MIT-u, Whirlwind r. radilajc
sa 16-hitnim recima i hilaje namenjena upravljanju u rcalnom vremenu. Taj projekal
je podstakao pronalazcnjc memorijc s magnetnim jezgrom (lay a kasnije
i razvoj prvog komercijalnog mini racunara.
Dok se svc ovo dogadalo. IBM je bio mala kompanija koja se bavila proizvmlnjom
busaca kartica i mas ina za njihovo sortiranjc. lako jc kompanija IBM del om tinansirala
Aikena, nije bila previse zaitcresovana za racunare svc dok 1953. godine nije na
1.2 Kljucne tacke razvoja arhitekture racunara 19
izbacila model 701, davno posto je kompanija Eckerta i Mauchleyja postala broj jedan
na trz.istu s racunarorn UNIVAC. Model 70 l je imao 2048 36-bitnih reci, s dve instruk-
cije po jednoj reci. To je bio prvi iz serije naucnih racunara koji ce dominirati sledecom
decenijom. Tri gocline kasnije pojavio se model 704 koji je u pocetku imao 4096 reci
osnovne mcmorije, 36-bitne instmkcijc i jeclnu novost - harclver za rad s brojevima u
formatu pokretnog zareza. Godine 1958, IBM je poceo proizvodnju svog poslednjeg
racunara s elcktronskim cevima, moclela 709, koji je bio unapredcni model 704.
1.2.3 Druga gencracija- tranzistori (1955-1965)
Tranzistor su 1948. godinc 1-1 Belovim laboratorijama prvi napravi1i John Bardeen,
Walter Brattain i William Shockley. za sta Sll 1956. godine dobili Nohclovu nagradu za
fiziku. Tranzistor je za samo 10 godina rcvolucionarno izmenio industriju racunara,
tako cia su krajcm pcdcsctih godina racunari sa elcktronskim cevima smatrani preva-
ziLknim. Prvi racunar s tranzistorima izraucnje jc ulaboratoriji Linkoln Masacusctskog
tchnickog instituta. To je bila 16-bitna masina. napravljcna po uzoru na Whirlwind I.
Nazvana je TX-0 (Transistorized eXperimental computer 0- tranzistorizovani ek-
sperimentalni racunar 0) i predstavljalaje probni uredaj za razvijanje mnogo slozcnijcg
model a TX-2.
S racunarnm TX-2 nije sc mnogo udmaklo kadajejedan od inzcnjera koji su radili
u laboratoriji, Kenneth Olsen, 1957. godine osnovao kompaniju Digital Equipment
Corporation (DEC) za proizvodnju komercijalnog racunara veoma slicnog modelu
TX-0. Prosle su cetiri gudine dok je taj racunar. PDP-I' uglcdao svctlost dana, uglav-
nom zato sto su invcstitori DEC-a cvrsto vcrovali da za racunare ne postoji trziste.
Uostalom, i siim T. J. vVatson, hivsi predscdnik IBM-a jednom je izjavio da svetsko
trziste racunara zauzima samo pet ili scst pwcenata ukupnog trzista. DEC je zbog
toga uglavnom prodavau male stampanc ploce.
Kada se model PDP-I konacno pojavio 196 l. godine, imao jc 4096 18-bitnih reci
i mogao je da izvrsava 200.000 instrukcija u sckundi. Pcrformansc su mu bile dvo-
struko slahijc od IBM-ovog modela 7090, tranzistorizuv;111ug naslednika modela 709
i u to\ rcme najbr7.cg racunara na svetu. PDP-I Je kostao 120.000 do lara; model 7090
je kostao milione. DEC je prodao vise dcsctina model a PDP-I i tako jc rodcna indu-
:-.trija mini racunara.
Jed an od prvih mmlela racunara PDP-1 dat jc Masacusetskom tehnickom institutu,
gde je: ubrzo privuk.ao pa/.nju neh.oliko nadohudnih genijalaca, tako cestih na MIT-u.
!edna ocl brujnih novotarija modcla PDP-I bio je ekran rczolucije 512 x 5 12 tacaka.
Nije dugo potrajalo. a studenli su pt"<lgramirali PDP-! f.a .. zvudane ratovc'" i tako jc
sc pojavila prva video igrica.
Nckoliko godina kasnijc DEC jc predstavio model PDP-8. 12-hitni racunar, ali
rnnogu jeftiniji od moclcla PDP-I ( 16.000 dolara). PDP-X je imao udarnu inovaciju:
jc:dinstvcnu magistralu, tzv. omnihus. prikazanu na siici l-6. Magistrala (engl. hus)
skup je paralelnih zica kojima se povezuju kumponentc racunara. Primcnjcna arhitek-
tura JC jasno OLblupi Ia od arhitekture mas inc lAS, us me rene na mcmoriju. i od tog doba
JC bila prihvacena za skuro sve male racunarc. DEC je proclao 50.000 modela PDP-8.
stu ga jc ucvrstilo na prvom mcstu meLtu proi;.vmtacima mini racunara.





f
I
I
!
20
Poglavljc l: Uvod
Omn1bus
Stika 1-6. omnibus.
U n1Lduvremenu, !Btvl jc na pojavu tranzistnra rcagovao tako sto je kao
rizovanu vcrziju moJela 709 zarnislio model 7090, a kasnije i model 7004. MoJel
7094 imao je si.stemski ciklus od 2 mikrosekuncle i osnovnu memoriju od 32.536
36-bitnih reci. MoJeli 70LJ() i 7094 oznacili Sll kraj masina tipa ENIAC, ali SLI ipak to-
kom sezdesetih godina dominirali naucnim racunarstvom.
U vreme I--ada je IBM postala glavna kumpanija u oblasti naucnog racunar:,tva sa
svojim model om 7094, zaradivala je i velike kolicinc nove a od malog poslovnog ra-
cunara l...fO I. Taj modelje mogao da cita magnctske trake ida upisuje podatke na njih.
da cita kartice i cia ih busi, ida rctultate stampa skoro isto tako brzo kao model 7094
- i to sve samo za de lie njcgove cene. Za naucnc proracune je bio katastrofalan, ali je
odlicno vudio poslovne knjige.
Model l...fO I bio jc neobican po tome stu uopste nijc irnao registre, cak ni fiksnu
du/inu rcci. Memorija muse sastojala od 4000 X-bitnih bajtova, mada su kasniji mo-
deli podr/avali i tada ne.camislivih 16.000 bajtova. Svaki bajtje sadrzao 6-bitni znak,
administrativni bit i bit kojirn jc oznacavan kraj reci. lnstrukcija MOVE je, na primer,
dohivsi izvorisnu i odredisnu adresu, prebacivala bajtove sa izvorista na odredi;te sve
dok ne bi naisla na bajt u komc je hit predviuen za oznacavanje kraja reci bio l.
Godine 1 9fJ...f, mala i nepoznata kompanija Control Data Corporation !CDC) pred-
stavila je racunar 6600 koji je bio skoro .cared vclicine brzi od mocnog model a 709...f
i svakog drugog tadasnjeg racunara. On jc .ca racunardzije bio .,ljubav na prvi pogled'
i kornpaniji CDC uspeh je hio osiguran. Tajna njegow brzine i razlog sto je bio mno-
go hrzi od model a 70Y4 lezali su u njegovom central nom pwcesoru koji je u velikoj
meri koristio paralelan rad. On je sadrzao vise funkcionalnih jedinica za sabiranjc,
mnozenjc i deljenje. a sve su rnogle raditi paralelno (istovremeno). Iako jc za iz-
vlacenje maksimuma iz takve masine bi}o potrebno pazljivo programintlljC, liZ malo
truda mogln postici da ona istovremeno i;vrsava !0 instrukcija.
f kao da to nije bilo dovoljno. model 66(lf) je imao i nit. mal ill pomocnih racunara,
tako da je podsccao na Snezanu i sed am patul_1aka; to je ;:nacilo da je centralni proee-
sor nesmctano mogao da .. mclje" brojeve, prcpustajuci detalje upravljanja i ulaz-
no-i;.lazne opcracije malim racunarima. I1 sadasnje perst'ektive moglo bi se mirne
duse reci da je model 6600 bio deset godina i:,pred svog vremcna. JVlnoga kljucna
rescnja koja nalazimu u savremenim racun:1rima direktnu pnticu od modela 6600.
modela 6600. Seymour Cray. bio je legendarna osoba, unekoliko sli-
can Von 1\ieumannu. Citav svoj zivot je pravljenju sve brzih racunara. naz-
vanih superracunari (en;cl. sltpcrcomfllltersl. ukl_iucujuci modele 6600, 7600 i
1.2 tai'kc razvoja arhitckturc rai'umua 21

Cray-1. Izumeo je i cuveni algoritarn za kupovinu koi:J: odete do najhlizcg prodavca,
udete i pokazcte prvi autornobil, govoreci: ,.Uzimam ova(. Taj algoritam trosi mj-
manje vremena na nevaz.ne :;tvari (kao sto je kupovina kola) ostavljajuci vam maksi-
mum vremena za resavanje vaznih (kao sto je projektovanje supcrracunara).
Doha razvoja obiluje i drugim racunarima, ali se jedan od njih istice iz sasvim dru-
gih razloga i zato ga treha pomenuti: model Bunoughs BSOOO. Konstruktori masina
kao sto su PDP-I, 7094 i 6600 bili Sll preokupirani hardvcrom, bilo zbog njegcvc
cene (DEC) ili zbog njegovc brzinc (lBM i CDC). Na softver uopste nisu obracali
paznju. Konstruktori rnodela BSOOO prirnenili su clrugaciji pristup. Oni su napraYili
masinu specijalno namenjenu programiranju na Algolu 60, prcthodniku jezika C i
Java, i u hardver su ugradili n;moge funkcije cia hi programsi--om prevodiocu
posao. Tako sc spoznalu da i softver ncsto vredi. Nazalost. to je gotovo odmail i
zaborav l_ieno.
1.2.4 Trcca generacija- intcgrisana kola (1965-1980)
Zahvaljujuci otkricu Ruberta Noycea iz 195i\. godinc - silicijumskim intcgrisanim
kolima- desetint: tranzistura muglo se smesti na jedan cip. Takvu zgusnuto
omogucilo je gradnju racun:tra koji su bili manji, br/.i i jertiniji od njihovih prethndr. ka
:, tranzistorima. U nastavkunpisujcnw ncke znacajnije modele racunara ovc
I B:VI jc 196<-(. god inc bila vodeca racunarska kompanija i imala _je ve!iki problem sa
svoja dva vcoma uspdna racunara: rnodcli:na 70').1. i 140 I. Oni 'u mectu:;obno bili vrlo
nekompatihilni:Jcdanjc bio visokobrzinski .,mlin Ja brojcvc i koristio je paraiclnu bi-
narnu aritmetiku sa _1(J-bitnim reg1strillla. dokje clrugi bio proslavijcni obradiva( uLtz-
no-izlaznih podataka kujije dccim,tlnu aritmdiku primenji'.JU na men1t1ris:me
rcl'i promenljivc du/.inc. l\1nugi m,Vl-ov i kupci imali ;.u ob:t i nikak" im se
nijc dnpadalt> to Slll !reba cla imaj:i dva putpuno r:\?.!icita rm'gr:tll!er,LJ
Kalla je vrelllL' ,b ove chc scrijc pruiz.1 ocl:t ?:un<eilL' no vi moddi. ll3\l jc po-
vuk:tu r:1dikaian polc:t. l;v,;o jc: Jcdinsl\t:llli proi/vodnultmju Systcm/3(Jd. n;.n<JVUJU
na kolim:t, je :rcb,tlo da zadoVlllji 1 n;wcne i [J<l.,lovne j'Uirebc ku-
paca. S;stc:m/360 ,;adrLlll .ie mnngc, inu\acija. a naj\ahtijc je l<J Ju purodica t'<i :Je-
knliko ra.ciicitc: vd:Cme i kmistila !,.ti :Jse,nL!l.'rc,lu jezik. K('lii[;:alij,, .JC
rnogla d:..l z:..Ulh.:ni rnudcl ! -+J l thn/Jf11 J(;U ;\Io(_Li a
360 \1ndcl 7'3.. \1ud:_:i 15 jc hiu vc:.=i i bl'Zi \a i J. ali je pi--;an /.a
bilu ku_ji raCunar i1 :--.criJe u 1 n,t L)llo kui1l drugt11ll iL i:--te
serijc. U prtik..:-:i je to Ln;.u.:ilo d:..1 CL \Pft.\Tr za c1anji n1od ....'l he/. pn)hlcJd:t raJni i
nJ veccJn. ali da pi\!Ul z:._l neCe Ja u llll'JlJ(niju
n1any.:_:;. Ipak, i tu je vciiko puhol_j,:;;..ttijC u na s i
1-+01. raCun:tra -::c prirnio i /a \c:jna
nuJiLt

:-,liCnih kuji .-1c sa1110 pu i


prvih Clano" a 3ht) \iici l-7.
moJc:ii su uvcdc'ni ka;.nijc.
"'"
i

II.
22
Poglavlje 1: Uvod
Svojstvo Model30 Model40 Model 50 Model65
Uporedne performanse 1 3,5 10 21
Trajanje sistemskog ciklusa (nanosekunde) 1000 625 500 250
Maksimalna memorija (bajtovi) 65.536 262.144 262.144 524.288
Preuzeti bajtovi po ciklusu 1 2 4 16
Maksimalan broj kanala za podatke 3 3 4 6
Slika 1-7. Pocetna ponuda IBM-ove proizvodnc linije 360.
Druga velika inovacija u racunarima serije 360 bilo je multiprogramiranje (engl.
nzultiprogrwnming), tj. mogucnost da se u memoriji istovremeno drzi vise programa,
tako da dokjedan od njih ceka cia se zavrse ulazno-izlazne operacije, clrugi za to vreme
moze da koristi procesor. To je rezultovalo boljim iskoriscenjem centralnog procesora.
Modeli iz serije 360 bili sui prvi racunari koji su mogli cia emuliraju clruge racunare
(da simuliraju njihov rad). Manji racunari su mogli da emuliraju model J 40 I, a veci
model 7094, tako da su kupci mogli nastaviti da koriste svoje stare binarne programe
pri prclasku na racunar iz serije 360. Neki modeli su programe pisane za racunar 1401
izvrsavali toliko brze od njega da mnogi kupci nisu ni menjali stare programe.
Emuliran je je s tim mode lima islo lako jer su svi pocetni mocleli iz serije 360 -a i
vecina kasnijih- bili mikroprogramirani. IBM je trebalo da napise samo tri mikro-
programa: osnovni skup za seriju 360 i po jedan instrukcija za mo-
dele 1401 i 7094. Takva fleksibilnostje i bilajedan od osnovnih motiva za uvodenje
mikroprogramiranja.
Modeli iz scrije 360 razresili su clilemu ,binarno-paralelno iii seri.Jski-decirnalno"
jer se usvojilo kompromisno rescnje: racunari su snabc!eveni sapo 16 32-hitnih rcgi-
stant za binarnu aritmetiku. ali im je mernorija organizovana po bajtovima, kao kod
modela 1401. lsto tako, koristili sui serijske instrukcije u stilu modcla 1401 za pre-
mdtanje zapisa promenljivc duzine u memoriji.
Jos jedna vazna osobina racunara iz serije 360 bioje (za to vrernc) ogroman adres-
ni pros tor od 2
24
( 16.777.216) bajtova. Liz ondasnju cenu od nekoliko do lara po hajtu,
tolika mcmorijaje izgledala nezamislivo velika. Seriju 360 je, nazalost, zamenila se-
rija 370, a zatim i serijc 4300. 3080 i 3090 (sve sa istorn arhitekturom). Sredinom
osamdcsetih godina ogranicenje memorijc je postalo ozbiljan problem, pa je lBM
morao delirnicno c!a odustane od kompatibilnosti kada je presao na 32-hitnc adrcse
neophodne za adresiranjc novih 2
32
bajta memorije.
Gledajuci unazad, moglo bi se primetiti da je vcrovatno vee trchalo da imaju i
32-hitnc adresc jer su imali 32-bitnc reci i registre. ali u to vreme niko nije oz:biljntl
mogao zamisliti racunar sa 16 miliona bajtova memnrijc. Kriviti IBM za nemanje vi-
zije, bilo bi kao okrivljavati danasnjeg proizvodaca licnih racunara sto ima samo
32-bitne adrese. Za nekoliko godina, licnim racunarirna mozcla ce trebati mnogo vise
od 4 rnilijarde bajtova memorije. pace 32-bitne adrese postati neprihvatljivo kratke.
I svct mini racunara se dobro pokazao u trecoj generaciji. kroz seriju DEC-ovih
model a PDP-II, 16-hitnog nasleclnika model a PDP-8. Serija PDP-II umnogome je
1.2 Kljucne tackc razvoja arhitekture racunara
23
podsecala na mladeg brata serije 360, slicno odnosu model a PDP- 1 i 7094. Modeli se-
rija 360 i PDP-II irnaju registrc koji rade s recima i memoriju organizovanu po hajto-
vima, a svi pokrivaju znatan raspon parametra cena!perforrnanse. Modeli iz
PDP-11 pokazali su se kao veoma dobri, narocito u akademskoj sredini i odrzali su
komaniju DEC na samom vrhu mec..lu proizvoc..lacima mini racunara.
1.2.5 Cetvrta generacija- vrlo visok stepen integracije (1980-'?)
Tehnologija, nezgrapno, ali tacno nazvana vrlo visok stcpen intcgradjc (engl.
Very Large Scale Integration, VLSI) osamdesetih godina omogucilaje da se najedan
cip smeste desetine hiljada, stotine hiljada i na kraju milioni tranzistora. Ova-
kav napredak tehnologije uskoro je duveo do proizvodnje manjih i brzih racunara. Pre
modela PDP-I racunari su hili toliko veliki i skupi da su kompanije i univerziteti mo-
rali da predviltaju posebne prostorije za njih, tzv. racunske centre. S pojavom mini
racunara, svako oc!eljenje je moglo samostalno da kupi racunar za svoje potrcbe.
Osamdesetih godina cene su pale toliko nisku da je i pojedinacni korisnik mogao sebi
da priusti racunar. Tako je zapucela era licnih racunara.
Licni racunari su korisccni sasvim drugacije od velikih racunara. Oni suuporeblja-
vani za obradu teksta, za tahclarnc proracune i za hrojne vne aplikacije
(npr. igrice) s kojima se vcliki racunari nisu najbnlje slagali.
Prvi licni racunari obicno su proclavani u ,kompletu'". Svaki komplet jc sadrzao
plocu sa stampanim kolima. pregrst cipova mec..lu kojima jc ohicno bio Intelov cip
80::->0, par kablova, napnjnu jedinicu i mo/.da disketnu jedinicu od 8 inca. Sastavljanje
racunara od delova prepustano je kupcu. Uz racunar nije isporul'i van nikakav softver.
Ako vam je softver bin potrehan, morali ste ga sami napisati. Kasnijc je Gary Kildall
napisan operativni sistcm CP/M koji je stekao veliku popularnost na racunarima s
proccsorom 8080. To jc bio pravi operativni sistem za podrsku (disketnoj) jcdinici, sa
sistemorn datoteka i komandama koje je korisnik s tastaturc zadavao komandnom
procesoru ikomandnom ukruL.enju).
Pujavio se i licni racunar druge vrste. prvo Apple. a kasnije i Apple [l (oba su kon-
struisali Steve Jubs i Steve Wozniak, ito u garazi). Ti racunari su pustali veoma popular-
ni medu kucnim korisnicima I u skolama, pajeApple prcko noci postao ozbiljan takmac.
IBM, tada vodeca snaga u industriji racunara. posle mnogo oklevanja i osvrtanja
knnacno je prelomio i oJ!ucio da se upusti u posao s licnim racunarima. Umesto cia
svoj licni ral:unar projektuje od pocetka, koristcci samo sopst\ene komponcnte, sto hi
prcdugo trajalo, !Bi\Ije uradio ndto uopste nc lici na ovu kompaniju . .Jedan od ru-
kovodilaca, Philip Estridge, snabdeven je dlakllm punim nuvca i oteran daleko ml bi-
mkrata iL 'edista lirme u /\rmonku (dr?ava Njujurk), uz napomenu da sene vraca dok
nc dunese kakav god upotr.:bljiv licni rat"unar. Estridgcjc usnmao radionicu daleko
od scdista lirnw. u Huca Ratonu (Florida). i;abrao Intelov cip RO::->X za centralni pro-
ccsur i napravio lHM-ov licni racunar (IGM Personal Computn. ]13,\1 PC) od kompo-
ncnata koje je nasau na tr:li;lu. On j.: predstavljcn ! 9S I. gudine i odmah je postao
najprodavaniJi racunar u istoriji.
15"
r.;o
24 Poglavljc 1: Uvod
IBM je povukao jos jedan neohican potez. ali jc zbog toga kasnije zazalio. LTmcsto
da projekat racunara dr/i u tajnosti (iii harem da ga zastiti patentima). sto jc inace ra-
dio. ohjavio jc kompletnc planove, zajedno sa clcktricnim semama u knjizi koju jc
prudavao za 49 do lara (
1
). Zamisao jc hila da sc tako c!rugim kompanijama omoguc'i
pravljcnjc dodatnih kartica za ll3M PC kako bi se povccala njcgova fleksihilnost i po-
pularnost. Na nesrccu, posto jc projekat sada hio dostupan svima i posto su se svi
delovi mogli lako naci na trZistu. brojne kompanijc su poccle da pravc PC klonovc,
cesto jcftinije od originala. Tako je nastala citava industrija.
[ako SLI i drugc kompanijc praviJc Jicnc racunarc korisleci drugc (npr.
Commodore, Apple i Atari). dominacija imlustrije licnih IBM racunara bilaje toliko
velika da su svc one naproslo zbrisane. Ostala ihje samo nekolicina i one danas poslu-
ju na marginalnim lrzistima.
Jcdan takav racunarje. iakojcdva, ipak prelivco, a tojc Appleov Macintosh. Ma-
cintosh je prec!stavljen 19X4. godine kao naslednik zlosrecne Appleove Lise, koja je
hila prvi racunar s gratickim korisnickim nkruzenjcm (engl. Gruphical User lnter-
jilCe, GUI) slicnim danasnjem Winclowsu. Lisa je propala jer je hila prcskupa, ali je
jel'tiniji koji se pojavio godinu dana kasnije veliku slavu pa su mu
brojni obozavaoci postali vrlo privrzeni.
Rano trziste licnih racunara uskoro jc izncdrilo do tada nei,kazanu zelju za pm,e-
dtJvanjcm prenDsivog racunara. lJ to doba KllllCCJlt .. prcnosivog racunara' imao je is tO
toliku smisla bo i sintagma ,.prcnosivi frizidcr .. c!anas. Prvi stvarno prenosivi licni
racunar bio jc (}ihorne-1, koji je, buduci tezak II kg, vise ;:asluzivao atribut .. pnljaz-
ni". lpak, on je dokazao da je konccpt prenosivog racunara Osborne-! je po-
stigao skruman uspeh, ali je godinu dana kasnije kompanija Compaq na
trzisk izhacila svoj prvi prenosivi IBM PC klnn i ubrzo postala lider na polju preno-
:,i vih racunara.
Prva verzija licnog IBM racunara prodavanajc sa operativnim sistemom MS-DOS,
koji je isporucivala tada mala kumpanija Micrmnft. Kako je Intel proizvodio svc sna.l-
nijc rnikropmcesore. IBM i Microsuft suunapredivali i\!S-DOS i napravili mu naslecl-
nika - operativni sistcm OS/2, koji je radio u gralickom okru/.cnju slicnmn okruzenju
Appleovog !Yiacintosha. U mcduvremcnu Microsoftje razvio i sopstveni opcrativni si-
stem, Windows, koji se izvrsavao preko iv!S-DOS-a, 1:a slucaj da OS/2 ne bude prihva-
cen. Da skratirno pricu, OS/2 zaista nije La.livco. IBM i Microsoft su se LIL mnogo buke
javno .. razveli" i Micrusoft se okrenuo Windowsu. i prcko njega postigao veliki u'peh.
Kako su malecki Intel i jos rnanji Microsoft uspeli cia s prestola svrgnu IBM, jcdnu od
najveL'ih, najbogatijih i najmocnijih kompanija u i:-.toriji, ncsLO je stu se be;: sumnje de-
taljno proucava ll poslovnim skolarna simm .-.;veta.
Drzeci u ruci uspesan cip RO::S::S. Intel je 1-.rcnuo da pravi njcgove naprcdnije bolje
verzije. Posebno jc paznjc vreclan procesllr 3X6. prcdstav ljcn 1985. godine, koji je u
sustini hio prvi Pentium. lako su savrcmeni l'entiumi mnogo brl:i od pmcesora 386,
oni su u pogkdu arhitekturc samo Ulldpredcni procesori 386.
l.''ft"
I
i
I

1.2
tacke razvoja arhilekture racunara
25
Sredinom osamc!esetih god ina pojavila se nova jcdnnstavnija i brza arhitektura R 1-
SC. i zamenilaje staru, komplikovanu arhitekturu CISC. Dcvedcsctih godina pojavili
su se superskalami rnikroprocesori. Racunari s njima mogli su istovrcmeno da iLvrSa-
vaju vise instrukcija. cesto redoslcc!om drugacijim od njihovog rcdosleda u progranu.
Pojmove CISC, RISC i superskalaran dclinisacemo u poglavlju 2 i ohjasnjavati ih knz
Citavu knjigu.
Sve do 1992. godine, licni racunari su hili 8-bitni, 16-bitni ili 32-bitni. Tadajc kom-
panija DEC predslavila revolucionarni 64-hitni racunar Alpha, pravu 64-bitnu RISC
masinu kojaje po performansama daleko iza sebe ostavila sve tadasnje licne racuna:e.
Alpha je postigla skroman uspeh i pros Ia jc skuro dcccnija dok 6-+-bitni racunari
bili na pravi nacin prihvaccni,. a i tada uglavnom samo kao vrhunski scrvcri.
1.2.6 Pcta generacija- nevidljivi racunari
God inc !9X l. japanska v lad a je saopsti Ia da je uclvDji Ia 500 mil iuna dulara kao po-
moc domacim kompanijama koje razvijaju racunare pete gcracijc - zasnovanc na pri-
meni VeSlacke inteligL'I1Cijc. StU Ce prcdstavJjati pravi 1-.valltlli ,;kok U udl1lSii
..glupave .. racunare cetvrtc generacije. Gledaju,:i godinama kako japanskc Kclmpanije
malo po malo preuzimaju tr/.iste u mm,gim obla:.;tima (od kamcra. prcko
daja do telc\ iziJe), americke i prnizvodace racunara u trenu jc .r.1hvatila ra-
nika i svi .su ud svojih vlada odmah zatra;:ili iinansij>kupumoL' za nstvarivanje i.s1og
cilja. L;prkos pompeznoj najavJ. japanski pn1jekat racull..lra pete generacije u osnovi
jc pwpao i tihu jc S njim se u izvcsnum dugmlilu ;to i ' Babbagw-
vom ancllitickom masinnm- idcjaje hila \i;:ionarska. ali tuiil-.o isrrcd svDg vrcrmna
da tehnt'lc'gija nijc nwgla daje rcaliLtljl'.
Bdu k.ako bllo, onu Sto sc n1olc IL.tL\'ati pLtonl ir1ah. sc Uugodilo i
prili,no ncocekivan nacin: su se smanjili. ,'\prkov NL'Wtun. en
I ')lJ3. godinc. poLuau jc da .'.e mP2c napraviii racunar velik kolil-.u preno-.ivi
fun. Kurisnikje u 0!ewt<Jil unu.-:io p<Klatkc pi;uci ih n:kL'Ill. :;to se pol-.az:do priliCn,;m
ali :.u ka:-niji racunari uvc kla:.c, n;:;:vani licni digilalni pomocuici ;ergl.
Per.,unnl F'igilal. \ssisrunis. ). t!:,bili pubu]/'ano okruzcnJl' i poo ali
veoma pnpulan:i. i\.lnogi ocl niih "u '>ada IJlc)cni kni1J,.o i licni racunari od pre ncJ.-:llH.<l
godir:a.
\lcciutim. cak ni liCni J1git:lln1 pomocr!lci ni;.u <>tvarno U l!i!l
smidu n:ci ,,stavlj:tjii .. nevidljivi" ugrackni u ap:,ra!e. s:ttll\_', !-..rc-dicne
i u bru.Jnc drugc UleLbiL' (l:kLhini ct .!l .. 200-i l. T:b i pruccsnri u m;;ugim pri-
lihubcduju pmu'anu t'unkcionalno:;tuz ni/.c J)j,h,utabiliw jc d 1 ii
Pni stvarnP pred,;tavl_jaju nuvu g:...'ncraciju C:tpO\ a ( svuda :-.u oklJ na:-) (yJ
ali ipak "u naC:in hilj .. tdtt i drugih urcLtaja.
h(lV \'L( fHJ--;taj(' guL!inarna Cc i daljc neuiiCan
u\'ih jc>.;tc 11.1 nlihov harchcr i uporl'do pro-
jektt}Vani \engl. cod:.'signed) (ih:nkcl ct a!.. 200_,). Na niill L;crnu \Tati!i ka'-'n1jc.

il!l'
'


26
Poglavlje 1: Uvod
Ako kao prvu generaciju smatramo racunare sa elektronskirn cevirna (npr. ENIAC),
kao drugu tranzistorizovanc racunare (npr. IBM 7094 ), kao trccu prve racunare sa in-
tegrisanim kolirna (npr. IBM 360), a kao cetvrtu licne racunarc (npr. sa lntelovim pro-
cesorima), pcta generacija bi vise predstavljala promenu njihove namene ncgo neku
specificnu novu arhitekturu. Racunari ce u buducnosti biti svuda, ugradcni u razne
proizvode, i zaista- nevidljivi. Oni ce predstavljati rutinski cleo svakodnevice, pocev
od otvaranja vrata, paljcnja (gasenja) svetla, pa do manipulacije novcern i hiljada dru-
gih stvari. Ovaj model je prcdlozio pokojni Mark Weiser i nazvao ga sveprisutno
racunarstvo (engl. ubiquitous romputing, pervasive computing) (Weiser, 2002). Sma-
tra se da ce on promeniti svct bas kao sto ga je izmenila industrijska revolucija. Na
ovom mestu necemo vise govoriti o sveprisutnom racunarstvu, a detalje o njemu po-
trazite kod Lyytinena i Yooa, 2002; Sahae i Mukherjeeja, 2003; i kod Sakamure, 2002.
1.3 RACUNARSKI ZVERINJAK
U prethodnom odcljkuukratko smo prikazali proslost racunarskih sistema. U ovom
cemo pretresti njihovu sadasnjicu i baciti pogled u huducnost. lako su najpoznatiji lic-
ni racunari. clanas postoje i clruge njihove vrste, pa ih treha poglcdati.
1.3.1 Tehnoloske i ekonomske sile
lndustrija racunara napreduje hrze od hilo koje druge industrijc. Njena pokretacka
snaga su proi.cvodaci cipova koji svake godine uspevaju da smcstc na cip sve vise i
vise tranzistura. Stu vi;c tranzistora, tih prckidaca. to je veca memorija.
odnusno snazniji pmcesor. Gorc!Pn Moore. suosnivac i bivsi preclsednik lntcla, jed-
nom sc ovako nasalio- da se avionska industrija razvija kao inclustrija racunara, na-
pravili hi avion koji ohleti zemlju za 20 mimna uz potrosnju od litara
goriva i kosta samo 500 dolara, a ne bi hio veci od kutije za cipelc.
Dok jc priprcmao govor za jednu industrijsku grupaciju. Moore jc primctio da se
nova generacija memorijskih cipova po pravilu uvodi svakc trcce godinc. Posto nova
gcneraeija uvek donosi cetiri puta vise mcnmrije ud prcthmlnc. on jc zapazio da se
hroj tranzistora na cipu puvecava lincarno ida ce sc takav trend nastaviti dcccnijama.
Ovu njcgovo zapa/anjc po;.;taloje je punnto kao !\looreov zakon. Dan as se on tuma-
ci tako da se bwj tran,:istora na cipu udvustrucava svakih 1 X mcseci, sto je ekviva-
lcntno godi;njcm povcc'anju hrnja tranzistora za oko 60'/r. Vclicina memorijskih
cipova uzavisnnsti ud datuma njihovog modenja u pruizvudnju (slika 1-X) potvn.luje
vazenjc f\lourcuvog /.akona tokom perioda oJ preku tri Jecenijc.
Mourcov .cakon nije tcorijski izvcdcn- to JC cmpirijsko zapa;:anjc hr zinc kojom ti-
zicari i procesni inzenjeri unapreduju svoju spccilicnu ohlast. a kojc omo-
gucava da sc i u huducnosti ocekuje slican trend. Ncki analiticari industrijskog
rai.V<lja smatraju dace se vazCllje Momeovog Z<ikona pmduziti harem tukumjos jed-
ne Jeccnije. Tada L'c rranzistori biti tolikCl mali dace postati nepouzdani, mada ra1.voj
1.3 Racunarski zverinjak
=>
0.
ro
<=
ro
0

;::;
<=
ro

e
(])
1.000.000.000
100.000.000
10.000 000
100.000
10.000
100
10 -
1K
51 2M

__ _L __ ____ L_ __ __ _L __
1965. 1970. 1975. 1980. 1985. 1990. 1995. 2000.
Godina kad se poJavio pojedini cip
27
Slika J-8, Moorcov prcdvida da godisnjt: povec'anje broja tranzistora na cipu iznoo.i 60%.
Tacke na dijagramu prcdstavljaju velicinu mcmorije u bitovima.
kvantnog racunarstva to mo/.e sustinski da izmcni (Oskin et al., 2002). Drugi anali-
ticari, medutim, ocekuju dace se mnogo ranijc pojaviti prohlcmi s disipacijom toplo-
te i .,curcnjem" strujc te drugi ncpozcljni efekti koje ce biti potrebno resavati (Bose,
2004; Kimel al., 2003).
Mooreov zakon ostvarujc ono sto bi ekonomisti nazvali povoljno kruzenje (engl.
virtuous circle). Naprcdovanje tehnologije (tranzistora/cipova) donosi boljc proizvo-
de i nize cene. Nize cene vode novim primenama (niko nije pravio racunarske igrice
onda kada je racunar koslao 10 miliona do lara). Nove primene otvaraju nova trzista i
podsticu osnivanje novih kompanija da ih iskoriste. Nove kompanije znace povecanu
konkurenciju, sto podstice ekonomsku potrebu za holjim tehnologijama. Time sc
krug zatvara.
Drugi cinilac tehnoloskog razvoja je Nathanov prvi zakon soft vera (po Nathanu
Myhrvoldu, bivsem Microsoftovom visokom rukovodiocu). On tvrdi: .,Softverje kao
gas koji sc siri dok ne ispuni sud u kome se nalazi". Davnih osamdesetih godina, tekst
je obradivan programima kao sto jc troll (korisccn je i za ovu knjigu). TrotT zauzima
nckoliko kilohajta memorije. Savremeni programi za ohradu teksta zauzimaju mega-
bajte mcmorije. Za naredne ce, nema sumnje. biti potrcbni gigahajti. (Pretiksi kilo.
mega i giga u prvoj aproksimaciji znace hiljadu. milion i rnilijardu. a dctaljc pogleda-
jtc u odcljku 1.5.) Softver komc se stalno dodaju nove mogucnosti (slicno hrodskom
korituna koje sc ncprcstano lcpc skoljk.e) stalno tra/.i sve brzi procesor, vise memorije
i vise ulazno-izlaznih kapacitcta.
lako je hrzina rasla hroja tranzistora po cipu vee godinama dramaticna, ni razvoj
drugih racunarskih tehnologija nije bio sporiji. Na primer. 1982. godine predstavljen
je racunar IBM PC/XT sa cvrstim diskom od 10 megahajta. Dvadeset godina kasnijc,
naslcdnici ovog racunara vee uohicajeno imaju disk od 100 gigahajta. Prirastaj od ce-
tiri rcda vclicine za 20 godina znaci godisnji prirastaj od 58%. lzrazavanje po-
boljsanja u tehnologiji proizvodnje diskova samo njihovim kapacitetom, varljivo je
r:
I
:,




1Jij

28
Poglavljc I: Uvod
jer Sll ll igri j drugi pararnctri, kao StU SU brzina prenosa poJataka, Vrcrne njihovog
pronalazcnja i cena. Cotovo svaka primcnjena mctrika poka;,aee da se minos ccna/
perforrnanse od 1982. godine poveeavao po stopi ud harem Ovakav
rast perforrnansi diskova, zajedno sa cinjcnicom da je vrednost cli-;kova koji sc ispo-
rucuju iz Siiicijumskc doline prevazisla vrcclnost isporuccnih procesorskih cipova,
naveo je Ala Hoaglanda da posumnja u ispravnost njenog imcna: trebalo bi je nazvati
Doli nom nksida gvo7.da (pusto se na diskovima on koristi kaomedijum za zapisivanje
podataka).
Jos jedna oblast koja se spcktakularno razvijala jesu tclckomunikacije i tchnologija
umrezavanja. Za manje od dve dccenije, od modema br:tinc 300 bitova/s, preku ana-
lognih modema br;inc 56.000 hituva/s, stigli smo do mrcza od optickih vlakana brzinc
I 0
12
bitova/s. Transatlantski opticki telefonski kablovi, TAT-12/13, kostaju uko 700
miliona do lara, l 0 gudina i mugu istovremcno da prenesu 300.000 poziva po ceni
manjoj od ccnta za I 0-minutni medukontinentalni razgovor. DoLvana je moguenost
rada optickih komunikacionih siskma prcno'>a l 0
12
bitova/s na daljinama ucl
preko 100 km bcz popcavaca. Eksponencijalni rast ne ni puminj:1ti.
1.3.2 Spektar racunara
Richard !-lamming. svnjcvrcmeno i\trazivac u Rell'l'imlahor:ltorijama,jcdnom pri-
likom .JC primetill da kvantitativ na promena ud jcdnug rcda \elicinc iJ.aziYa kvalitali-
van skok. Tako trkacki autonwhil koji juri brlinnm 1000 km/h kroz pustinjuu
prcLbtavlja '>asvirn dntgu vrslu autom->bila nd nurmalne k(Jja 'e autoputem
kreec: hrzinom I ()t) km/h. Slic1w tome. ohlakodcr od l ()() '>pratova '::nw LI'-'ccana
..1zgrada od I 0 KaLla l) nc lni,-.;1irno na dL'SClo-
suuki i",1ktor vee na uvec'anjc Pd mili"Il puu wknm tri
Ra.-;t koji predv ida l\.ln(JJnJ\ zakun '"' iskurisiiti na n.tcina . .lcd:u1 jC pra-
.. jaCih p(j istt>j ccni. jt._' koji Cc
gPdinc u gJ,!Jnu '"'" manjc. R:tl:unarsl-.;t !nd1Nrip Jt' j,,k,,n,til:l 1 jcd:!n i clrc.tgi
prislup. a i \ iSe uJ l!)ga. zhug \eurrLt ra/liCite :-iJ>.-
\illl ..,-:rub.t klasilikaLija '.bna\nji
1
1 ra_'unara prika;ar::tj.: na ,;l!ci 1-LJ.
__________
I Za upotrobu : 0.5 :
r -0-
1
RuCni satovt. 1i
uredaJI
. ----
Jrar.;e_ ---l 50 ___________ 11deo .grice
i L1cr:i r.::tc:....n.:r , SOJ : St:'..1ni iii prenosivi r;JCUndr
----!- --------- ----
L- --------------------1------- ----------i----------
1 r2Jr!h :' SO.CC0-500 OGO I roslu,nl superrdCunar
- --
1
1
:' P2het13 ..... _1
Slika .-pcU,1r pinnitJ .s rc ..:.._T\Um
./i
1
''-
.
,,
""'
I
i
tl'._'_.

"'
""
;)""
I
I
I

ti
fit
;oi

1.3 Racunarski zvcrinjak
2?
lJ nareclnim odeljcima opisaeemo svaku od navcdenih kategorija i ukratko ohj<l-
sniti njcnc osobine.
1.3.3 Racunari za jednokratnu upotrebu
Sasvim u dnu lcstvice nailazimo na pojedinacnc cipovc nakpljcnc sa unutrasnje
stranc i'estitki, koji reprodukuju melodiju ,Sreean rodcndan .. :, ,Evo nevestc ... " i i
nd:u drugu prigodnu pesmicu. Nisarn jos naleteo na luksuzni telegram sa izjavmn
saucesea koji svira posmrtni mars, ali izgleda da nina to neecmo dugo cekati. Za SV<.-
koga ko je odrastao uz centralni racunar od vise rniliona dolara, sama ideja o rai'unaru
za jednokratnu upotrebu ima s;nisla koliko i avion za jednokratnu upolrcbu.
Medutim, racunari zajcdnokratnu vee su oko nasi tu ee i ostati. Najva;'-
nije otkriee na polju ovakvih ral:unara verovatno je i'ip za radiofrckvcntnu idcntili-
kaciju (engl. Radio Fn'LJU1.'11CY !Denrificution, RFJD). Danas se za nckoliko ccnti moie
napraviti RFID i'ip tanji od 0.5 nun koji sadrzi minijaturni primoprcdajnik i jedinstvtn
121\-bitni broj, a radi bcz baterije. Kada od spoljnc antcne primi signaL taj erl\.:rgcto,-.i
podsticaj jc dovoljan da i'ip anteni cmituje svoj identilikacioni broj. lako je cip
sieusan da sc ncma sta videti, posledice njegove primenc nisu nimalo naivne.
Pocnimo od jcdnc svakodnevne primene: uklanjanja bar-kodova s proizvoda. Vee
su ohavljani cksperimenti u kojima su proizvodi u samou"lugama urnesto bar-kodo
1
'a
bili snabdcveni RFID cipovima. Kupac bi izabrao stavio ih u kolica i pm-
gurao kolica kroz prolaz pored knntrulnc ,kasc''. Tu hi citac sa antcnom poslao signed
trazeei od proizvmla da se identilikuju, SlO Sll oni i cinili cmitujuei povralne signal.:.
Kupac bi se takode identi likovao prcko cipa na svojoj bankovnoj iii kreditnoj kartiri.
:-.ra kraju mcseca, sarnousluga bi kupcima slala detaljne racunc za proizvode kupljcnc
u tom mesccu. Ako kupac ne bi imao vazecu hankovnu iii kreditnu RFID karticu,
oglasio hi sc alarm. Ovaj sistem nc samo da otklanja potrebu za kasirkom i i'ekanjem
u redu, vee obezbcdujc samouslugu i stili od krmle jcr se artikli skriveni po dzcpo\i-
rna i tc1rhama takmte identilikuju.
Zanimljivo je da sc ovim sistemom, uz 12X-bitni hroj, mo/.e pojcdinai'no idcnti i-
kovati svaki artikal, clok sc har-kodom identilikuje samo tip artikla. To znaci da sva(a
kuuja, rccimo, aspirina na polici u nel-.oj supempotcci irna drugaciji RFID kod. Uk..J-
Iil-.u bi proizvoclac aspirina naknadno otkrio neku grdku u proizvodnji, morao bi :Ia
svim :,uperapotckama sirom svcta nalozi da :,istem podesc tako da sc ukljuci alaun
k:.Jd ncko kupi pakovanje aspirina ciji RFID broj pripada odredenom opsegu. c;.tl: i
ako sc ln dogodi mesecima kasnije u nekoj udaljenoj zemlji. Aspirini izvan defekt1e
grupe nc bi pozivali na uz.hunu.
Obele/,avanje pakovanja aspirina, keksa i hranc za psc, mcdutim. tck jc
Ltst\1 ,..; zaustaviti na hrani za pse, kada mozcmu da obelczimo psa') Vlasnici kuerih
ljubinlaca vee zahtevajuod veterinara da njihovim zivminjama RFID cip
bi ill lakse pronasli ako se izgube ili ak.o ih ncko T stocari zcle da obclcl:e svvja
grla. Ociglcdan -;lcdcei korak su uvek hrizni koji od pcdijatara tra/,c da nji-
ilovoj dcci ugradc RFID cip za slueaj da ih neko kidnapuje iii se sama izgube. KJ=!a
Bll!"!'"
!IJ''

30
Poglavlje 1: Uvod
smo vee kod toga, zasto se novorodenoj deci ne bi odmah ugradivali Cipovi i tako iz-
begla zhrka sa zamenom beba u porodilistima'' Vlada i policija bi, nema sumnje, nasli
stotinc razloga za neprestano i pracenje krctanja svih gradana. Nadamo
se da su posledicc mogucih ,primena" RFID cipa sada malo jasnije.
Jedna (nesto manje kontroverzna) primena RFID cipova mogla hi hiti pracenje
kretanja vozila. Kada kompozicija zeleznickih vagona sa ugradenim RFID cipovima
prode pored citaca, racunar vezan za njega moze da sastavi listu vlasnika tih vagona.
Takav sistem omogucava saznavanje lokacije svakog zeleznickog vagona, sto po-
maze snahdevacima, njihovim mustcrijama i zeleznici. Slican sistem se moze primc-
niti i na kamionski transport. Kod putnickih automobila sistcm bi mogao naci
primenu za clcktronsko naplacivanje putarinc.
Transport p1tljaga avionom i drugi sistcmi transporta prtljaga takodc mogu imati
koristi od RFID cipova. Ekspcrimentalni sistem koji jc testiran na londonskom aero-
dromu Hitrou omoguCio je putnicima da sc oslobode nosenja tc!ikog prtljaga. Koferi
putnika koji su se opredclili za ovu uslugu obelc:l.eni su RFID cipovima, upuccni po-
sebnnm rutom kroz aerodromsku zgraclu i direktno isporuceni u njihove hotclc. U
druge primcne RfiD cipova spadaju: obelezavanjc automobila na proizvodnoj traci
prema boji kojomtreba da hudu ofarbani, proucavanje migracija zivotinja, odcca koja
sarna saopstava ves-masini temperaturu pranja i stosta drugo. Neki cipovi se mogu in-
tegrisati sa scnzorima tako da se u njihove manje znacajnc bitovc belc7.e temperatura,
pritisak. vlaznost i drugi pararnctri okoline.
Napredniji RFID cipovi imaju i stalnu rncmoriju. Ta mogucnost je navel a Evrop-
sku centralnu banku da RFID cipove umecc i u nove an ice evra. Cipovi treba da beleze
mesta gdc su bili. To cc falsiJikovanje evra uciniti gulovll nemogucim, ali cc omo-
guciti i praccnjc opranog nove a i novca od ucena i pljacki, i mo;da omoguciti njcgovo
daljinsko obezvrt:divanje. Kada novae vise ne bude anoniman, stanclardna policijska
procedura u buducnosti bice utvrdivanje gde jc neki sumn.1ivi novae prethodno bora-
vio. trcba ugradivati cipovc u ljucle, kada su njihovi dzcpovi puni cipova?
Naglasavamo. kadjavnost na pravi nacin sazna sta sc 'vc moze postici pornocu RFID
cipova. vcrovatno cc to pobuditi izvcsnu raspravu.
Tehnologija proizvodnjc RFJD cipova sc brzo ra...:vija. Najmanji cipovi su pasivni
(ne koristc hatcnje; i svoj jcdinstvcni broj emituju kad pu,tuji antenski signal.
Veci cipovi su aktivni, imaju batcriju i rudimentaran racunar, i nmgu da obavc odrede-
na izracunavanja. lnteligentnc karticc koje sc koriste u Jinansijskim transakcijama
spada.JU u ovu kategoriju.
RFID cipovi po tome cia li su pasivni iii aktivni. ali i po opscgu ra-
dio-frek vencija na koje sc odazi vaju. Oni koji rade na nizim frckvencijama odlikuju sc
malom brzinlllll premha ]Xlclataka. ali su na antenski sig-nal. Kod onih knji
rade na frekvenujama situacijaje ubrnuta: im.ina prcnosa podatakaje vcca. ali
je domct otkrivanja kraci. Cipovi se razlikujujos p<l rnnogo cemu i sve vreme sc izmi-
slja ncsto novo. lntcrnetje prcpun inforrnacija o RFID cipovima. a tt'll'tt'.tjid.Oip, je do-
bra polazna adrcsa za istrazivanjc.
1.3 Racunarski zvcrinjak
31
1.3.4 Mikrokontroleri
Sledeci na lestvici su racunari koji se ugraduju u urectaje i koji se inace ne prodaju
kao racunari. Ugradcni racunari, ponekad zvani mikrokontrolerL upravljaju urectajem
i komuniciraju s korisnikom. Mikrokontroleri se mogu naci u razlicitim urectajima,
ukljucujuCi i uredaje s narednog spiska. U zagradi je navedeno nckoliko konkretnih pri-
mera za svaku kategoriju.
1. Kucni aparati (radio-sat, ves-masina, masina za susenje vesa. mikrotalasna
pecnica, alarm).
2. Komunikacioni urectaji (hezicni telefon, mobilni telefon, faks, pejdzer).
3. Racunarski periferijski UJ'edaji (stampac. skcner, modem, CD urectaj ).
4. Uredaji za rawnodu (video-rikordcr, DVD, muzicki stub, MP3 plejer, lokal-
ni TV konvcrtor).
s. Uredaji za rad sa slikama (televizor, digitalni fotoaparat, kamkorder, aparat
za fotokopiranje).
6. Medicinski urcdaji (rcntgen. magnetna rezonanca, kardio-holter. digitalni
termometar).
7. Oruzje (krstarece raketc, interkontincntalni balisticki projektili, torpeda).
8. Uredaji za prodavnice (automati koji rade na novcicc, kasc).
9. Igracke (lutka koja govori, igracka konzola, teledirigovani automobilcic iii
brodic).
Neki sasvirn cudan autmnobil mogao bi sadrzali i do 50 rnikrokontrolera koji upra-
vljaju njegovim podsistcmima. kao sto su sistem za deblokiranje kocnica, ubrizga-
vanje goriva, radio i GPS urectaj. Mlaznjak hi ih mogao imati i vise ocl 200. U jednoj
porodicnoj kuci, takvih mikrokontrolera moglo bi biti i vise stotina ada ih ukucani i ne
budu Za nckoliko godina prakticno ce svc sto racli na struju iii baterije imati mi-
krokontroler. Broj proclatih mikrokontrolera iz godine u godinu premasuje broj svih
clrugih prodatih racunara (osim onih zajeclnokratnuupotrebu) za vise redova velicinc.
Dok su RFID cipovi zaista minimalni sistemi, mikrokontroleri su mali. ali potpuni
racunari. Svaki mikrokuntroler ima procesor. mcmoriju i ulazno-izlaznc mogucnosti.
Ulazno-izlazne mogucnosti obicno obuhvataju rcgistrovanje ukljucenosti dugmadi i
prckidaca uredaja i upravljanje njcgovim i zvucnim signalima. ekranom i
motorom. Softvcr. u vccini slucajcva u obliku memorije samo za Citanjc, ugrauen jc
u cip jus tokom proizvodnje. Mikrokontrolcri spadaju u jcdnu od dve upste klase: za
opstuupotrchu i za spcLijalne namene. U prvu klasu spadaju mali. ali uohicajeni racu-
nari; mikrokontrolcri druge klase imaju arhitckturu i skup instrukcija kuji su spccijal-
no prilagndeni ndrcdcnoj aplikaciji (na primer. multimcdiji). Postoje 4-bitne, 8-bitne.
16-bitne i 32-bitne verzije rnikrokontrolera.
lpak. cak sc i mikrokontrolcri opstc namene znatno razlikuju od standardnih PC
racunara. Njihova cena je veoma vazna. Kompanija koja nabavlja milione takvih
proizvoda rnozc da promeni dobavljaca samo zbog ra...:like odjednog centa po koma-
du. To proizvodace mikrokontrolera tcra cia arhitekturu biraju rukovodcci se mnogo
I
!
t

rr ..
I
h
!
32
Pnglavljc 1: Uvod
vise proizvodnim troskuvima nego ccnom cipa koji kosta na slotine dobra. premcla
ccna mikrukontrolcra uvcliko zavisi i ocl lLJga' koliko t>itova istovremcno radi, koliko
memorije ima, i od drugih cinilaca. Da biste bar ncku prcd,tavu. reci cu cia
8-bitni mikrokontrolcr (ako ih odjcdnom kupitc dovoljno) verovatno mozete dobiti za
oko I 0 centi po komadu. Zbog takve cene mozetc da ugraditc racun<tr u kuji
kosta samo I 0 do lara.
Naizgled svi mikrokontrolcri rade u n.:alnom vremcnu. Kada dobiju podsticaj, occ-
kuje sc da odrnah rcaguju. Na primer, kacla korisnik priti,ne neko dugmc, ceslo sc
upali signalna lampica i ne sme postojati nikakva neobjasnjiva vrcmcnska zadrska iz-
mcc1u pritiskanja dugmela i paljenja lampice. Potreba da se radi u realnum vrerncnu
ccslo utice na izbor arhitckturc.
Za sistcmc u kojc sc ugraduju rnikrokuntrokri ccstu sc puslavljaju lizicka ogra-
nicenja u pogledu velicinc. tc/jnc, potrosnje energije i s:. Zbug wga se pri projckto-
vanju njihovih mikrokontrolcra to mora imati u vidu.
1.3.5 Racunari za igranje
Na slcdcL'oj stcpcnici nabzc sc racun<tri za igranje. To obicni ral"unari, -.: poseb-
nim gratiCkim i zvucnim mogucnostima. ali sa ogranrccnirn Sl)lherom i malim mo-
gucnostim:t 1.a pmsirenje. Oni su ud jeflinih prncesura namc:njenih igranju
akcionih igara, Lto slo je ping-pong, na TV ekranu. Tokom godina su sc ra;vrli u
lllllll)!<l moL'nijc sistcmc kll.Ji s11 stali u isti rc'd s licnim racunarima ili ih cak nadma<ili
u nekim aspeJ...tim:1.
Da histe stckli predstavu o tu1ne se nal;vi unutar racunara n,lmcnjc'nih ?a igra-
njc, ralnl<Jtritc' spcTilikacijc in P<'pulama rroi;:1oda. SonyJcv PlaySt<:tiun 2 sadrzi
12X-hitni Sun;-jcv proc:csor (t:azvan En]()l!clD Eng;nc) na 205 !\lllz. k,ji :.c zasniva net
RlSC mikn>pnll"C\:'I"ll \Ill'S IV. PlayStati"n 2 im:J i 32.\18 rnemorijc, <pc'Ctjal<m gra-
lil"ki cip hr;tnc !(1() \Ilk audil cip i DVD pkit'r. \!icms,fr,,v
Xl30X :-;adr:i.i lntcluv pn'ccsor l'cnlrum ll! na 7_',_1 i\lHt q 6-t \18 rncmorijc, SJXCi-
Jalan gra!JC:li Cip hzin..:: J()ll :\!ilL, 256-kanalni :ip, DVD plcjc; i
(vrsti di::k od S GB. ,\inlcnduv GameCuhc sadr2i o,pccijalan 32-bitni mikrupmc:::s,;r
(nazvan C:::kk.P! na ..J.i-\5 MH1. iLvcdcn iz [B,\1-twog R!SC pwcc::ma PoV\c:rPC. 24
\IB il1cnrorijc, gr<:riCJ,;i cip brzinc 20U .\1!1L o-i-karnlni audio C:ip i tv!icn'-
so!"tPv OJ'tiCki dick'"! l ,5 giga:,ajt;l.
Iaku ovc L:ko kau -liCni raCunari u i-_;tu I)Jl\._'
nc nln;>gl njin;a, u ;-,U i hnljc (:1pr. Inikro-
pnlCt'\\11" u J,..<lili<lii Play'itall,,n 2 ima \ ccc rcgistrc <lli hilo kng PC
raCunctLI. t;,k.o muje radni 'akt mnugu Jti/i.l. CLl\II:l r;uliLt i;!ncliu igrackih nn'ina
i PC ra .... i 11ijc rnik:--oproLT"PL nc;(-) {.lit su igrnCkc n1a;;nc
slenll. K,,ri:'lnicJ ih nc proSiri\ dudatniJn prL'iihJa ncLi i:r.(tju U.)i)
ili 1-'irc\VirL \'t'/U. JC . nlaSjnc ;:a igru pa/ljivu ,)ptin1!/.o-
va:1e J[J vi>oJ...ukv:ditLI:ln c;tcJ\?O
zvuk. S1c ,;c.t<d,, je '[hlrcdno. Zhug navc,knih ugraniccnja u pPgicdu hardvera i
I'



jiJ,j
J



}l


J"f


jj


'?$



k>



':-i
JiJ
i

i
I
1.3 Racunarski zverinjak 33
,
0
t"tvera, malog radnog takta, male kolicine memorije, nepostojanja monitora visoke
remlucije i (po pravilu) nepostojanja cvrstog diska, ove mas inc su mnogo jeftinijc ocl
licnih racunara. Uprkos navedenim ogranicenjima, do danas je proclato na milione
lwakvih rnasina.
Kompanije koje proizvode velikc igracke masine. prave i prenusivc verzije kojc
rade na baterije. One su ipak bliY,C ugractenim sistemima o kojima srno ranije govmili
ncgD licnim racunarima.
1.3.6 Licni racunari
Stigli Sll10 do licnih racunar<) na koje vecina !judi pomisli kad cuje fCC ,racunar'. u
njih spadaju stoni i prenosivi modeli. Obicno se ispontcuju sa slotinama megabajta me-
murije, c\Tstim diskorn na koji moze da se srnesti oko I 00 gigahajla podataka. kornbi-
novanim CD/DVD-uredajcm, mmlcmum, zvucnum i mrcznom karticom, moniturom
visoke rezolucije i drugim pcriferijskim kornponentama. Oni irnaju slozcn operativni
sistem. brojne mogucnosli za prosirivanjc i gomilu suftvera na raspolaganju. Neki pod
izrazom ,,PC racunar"' podrazumevaju masine sa fntclovim mikroproccsorom, a .. rad-
nim stanicama" nazivaju racunare oprcmljene skupim RISC cipovima, kao sto jc Sun-
ov UltraSPARC. Koncepcijski, razlika i,r.mectu njihje minimalna.
Srce svakog licnog racunara je (maticna) ploea sa stampanim kolima u dnu kuci-
;w. Ona obicno sadrzi mikroprocesor. memoriju, razne ulazno-izlazne uredaje (kao
sto 'u zvucna kartica i modem), kao i prikljucke za tastaturu, misa, disk, mrdu i nc-
koliko poclnozja za prosirivanjc. Na slici 1-10 prikazanaje jedna ploca.
Prenosivi racunar (laptop) u osnovi je PC racunar u manjem pakovanju. U njemu
su harclverskc komponcnle. sarnu manje. Na prcnosivim racunarima radi isti soft-
ver kao ina stonim racunarima.
Jns jedan srodan urec1aj je i licni digitalni pomocnik (PDA). lako jc on manji eak
i Pel prenosivog racunara. ima rnikruprocesor, memoriju, tastaturu, ekran i vecinu dru-
gih elcmcnata licnog racunara. Posto je vecina citalaca dobro upnznata s licnim racu-
narima, u uvodu nccemo o njima vise nista reci.
1.3.7 Serveri
,Nahudzeni'' licni racunar iii radna stanica cesto sluzi kao mrdni server ulokalnuj
mreZ.i (po pravilu, unutar male kompanije) iii na Internetu. Servcri mogu imali jedan
ili \ ise procesora. gigahajtc memurije, stotine gigabajta na L-vrstom disku i mogucnost
hrwg rada u mreii. Ncki od nJih mogu da obavljaju na hiljade tran,akcija u sckundi.
iz perspektive arhitekture, servers jednim proccsmom ne razlikujc se prl'vise
od licnog racunara s jednirn proct'soroni. On je samu br/.i. veci. ima vise prostora na
disku i rntlzda hr7i pristup mrezi. Scrveri raclc pud istim operativnim sistemima kao i
licni racunari, najcescc pod nekmn varijantom UN! X-a iii Windowsa.
r
u!
fj(/
H'
!
'
;
at.
34
Poglavlje 1: Uvod
Slika 1-10. Stampana mutiCna ploca nalazi 'e u sredislu svakog licnog racunara. Na slici JC
fotografija Intelovc maticnc ploce D875PBZ. Sva prava na fotografiju zadr?.ava korporacija Intel,
2003. a ovde jc upotrebljcna uz njcnu dozvolu.
I. Podno7je za proccsor Pentium 4
2. Cip R75P Dl podr.,ku
3. Podno?ja ;:a rnemorij,kc Cipove
-L AGP uticnica
1.3.8 Skup radnih stanica
5. Prikljucak za disk
o Ciigahitni Ethernet
7. Pet PC! uticnica
8. USB 2.0 prikljucci
lJ. I-IIadcnjc
10. BIOS
Zbog svc povoljnijeg ounosa ct:na/pcrfonnanse kod raunih slanica i licnih racunara,
klm\lruktori siskma su ud nedavno poceli da ih uvcliko povczuju u skupove radnih
stanica (engl. Clusters of Workstations, COWs), ponckad zvane klasteri (engl. clu-
sters). Oni su sastavljeni od standardnih lie nih racunara iii radnih stanica povezanih gi-
gabitnim mrcl:ama i izvrsavaju spccijalan softver koji svim racunarima u skupu
omogucava da radc na zajednickom problemu, cesto iz oblasti nauke iii inzenjerstva.
Ti racunari su obicno ono sto hismo nazvali potrosna roba (engl. Commoditv Of/The
She!;; COTs), tj. mogu sc nahaviti od svakog proizvmtaca racunara kao dncvnc novine.
1.3 Racunarski zvcrinjak
35
Glavna razlika je u mrdnom prikljucku velike brzine, ali je ponekad i to standardna
komercijalna mrezna kartica. Klasteri se lako mogu prosirivati, od samo nekoliko, pa
do hiljadu racunara. Obicno je samo novae ogranicavajuCi cinilac. ZahvaljujuCi niskoj
ceni komponenata, sada i pojedinacna odeljenja u organizaeijama mogu da imaju tak-
ve racunarc.
Konfiguracija COW se koristi i za Web servere na Internetu. Kada na Weh lokaciju
stize hiljade zahteva u sekundi, cesto je najekonomicnije resenje dzinovski klaster od
stotinu, pa cak hiljadu servcra. Dolazni zahtevi se tacla raspodeljuju na vise servera
kako bi se istovrcmeno mogli obraditi. Kada se koristi na ovaj nacin, COW se cesto
zove i farma scrvera (engl. serverf(mn).
1.3.9 Centralni racunari
Evo nas kod ccntralnih racunara (engl. nwinfmmes)- racunara velicine sohc koji
postoje jos ocl sezdesetih godina. U mnogim slucajevima oni su direktni potomci
IBM-ovih centralnih racunara iz serije 360 od pre nekoliko decenija. Uglavnom nisu
mnogo hrzi od mocnih servera, ali uvek imaju veci ulazno-izlazni kapacitcl i cesto su
opremljcni prostranim farmama diskova na koje se mogu smestiti hiljadc gigabajta
podataka. lako su skupi, cesto se odrzavaju u radnom .-;tanju da bi se opravdala
ogromna ulaganja u softver, podatkc, radne procedure i osoblje. Mnogim kompanija-
maje jeftinije cia povremcno placaju par miliona do lara za nov centralni racunar, nego
da rcprogramiraju sve svojc aplikacije za rad na manjim racunarima.
Ovo je klasa racunara koja je prouzrokovala cuvcni problem ,:?.000. godina' jer Sll
prograrncri na COBOL-u iz sezdesetih i sedamdcsetih godina godinu u datumu pred-
stavljali pomocu dvc clecimalnc cifre (u nameri da ustede memoriju). Nisu ni po-
misljali dace njihov softver z.ivcti tri iii cctiri decenijc. lako se predviltana katastrofa
nijc dogodila zahvaljujuci ogronmom trudu ulozenom u resavanjc problema, mnoge
kompanije Sll ponovile istu gresku tako sto Sll dodalc godini jos dve cifre. Zato sam
slobodan da prcdvidim kako cc sc 31. dccemhra 9999. godinc okoncati civilizovan
svet kakav poznajemo. Toga dana cc istovremeno otkazati svi, 8000 godina stari pro-
grami napisani na COBOL-u.
Uz to stu sc na njima izvrsava softvcr star prcl..o 30 godina. recirno i to da od ne-
davno, zahvaljujuci lntcrnetu. ccntralnim racunarima nadenc su nove namcnc. Sada
radc kao mocni Internet servcri, na primer, za obradu ogromnog broja transakcija
elektronske trgovine u sekundi. narocilo u poslovnirn oblastima gdc sc barala og-
rornnim bazama podataka. Jako su glavnc tcme ove knjigc licni racunari, servcri i mi-
krokontrolcri, u poglavlju 5 jos malo ccmo govuriti i o ccntralnim racunarima.
Do ncdavno jc pw;tojalajos jcdna kategorija racunara, cak mnogo mocuija ml cen-
tral nih racunara, a to su superrai:unari (engl. .\upercumputers). Oni su imali izuzetno
brzc mikroprocesore, mnogo gigabajta radne memorije i vrlo brze diskove i mrczc.
Korisceni su za ohimna naucna i tchnil'ka izracunavanja. kao su suda-
ra galaksija. pravljcnjc novih lckova iii moclelovanjc toka vazcluha oko avionskih kri-
la. r'vlcdutim. godina klasteri ral'unara obczbectuju istu racunarsku snagu
po mnogo nizoj ccni, pa su pravi superracunari na pragu izumiranja.


. '

36
1: Uvod
1.4 ODABRANI PRIMER! PORODICA RACUNARA
U ovoj knjizi cemo obraditi tri vrste racunara: licne racunare, servere i ugradene
racunare. Licni racunari nas zanimaju jer svaki citalac nesumnjivo ima jedan takav.
Servcri nas zanimaju jer izvrsavaju svc usluge na lntcrnetu. Najzad. ugradcni racuna-
ri, iako skriveni od poglcda korisnika, upravljaju automobilima, lelevizorima, mikro-
talasnim pecnicama, ves-masinama i skoro svim drugim elektricnim uredajima koji
ko::.wju vise od 50 dolara.
u ovom odeljku. ukralko cemo prelbtaviti tri racunara koje cemo koristiti kao pri-
mere kroz citavu knjigu, po jedan iz svake od tri kategorije. To su racunari s pruce-
sorima Pentium 4, UltraSPARC Ill i 8051.
1.4.1 U vod u Pentium 4
Rnbert Noyce. pronalazac silicijumskog integrisanog kola, Gordon Moore (cuvcn
po svom zakonu) i Arthur Rock, invcstitor iz San Franciska, 1968. godine osnovali su
kompaniju Intel da bi proizvodili rnemorijske cipove. U prvoj godini poslovanja Intel
je prodao cipovc u vrednosti od samo 3000 dolara. ali jc posle toga posao krenuo.
Krajem sezdesetih godina kalkulatori su bili nczgrapne elcktromehanicke masine
vel icine sadasnjeg laserskog stampaca i tdke dvadesetak kilograma. U septembru
Jl)69. god inc, japanska kompanija Busicom uputila jc zahtev Intelu da za nju proiz-
vede 12 specijalnih cipova za ugradnju u buduci clektronski kalkulator. Intelov in-
zenJer Ted HolT koji je bio zadu!.en za ovaj projckat zakljucio je dace 4-bitni procesor
opstc namene na jedan jedini cip obaviti isti ptlsao uz manje komplikacija i
troska. Tako jc Jl)70. godine roden prvi mikroprocesor na jednom cipu - proccsor
4004 sa 2300 tranzistma ( Faggin ct a\., ll)l)6 ).
Treha primetiti da ni Intel ni Busicom nisu bili svesni sta su postigli. Kadaje Intel
odlucio da ipak pukusa da upotrcbi cip 4004 ill drugim projektirna. on je ponudio da
Busicomu vrati sve sto je ova firma ulo/.ila u lntclt:a ra...:vijanje tog cipa ((}0.000 do-
lara) kao naknadu za sva prava na njcga. Intelova ponudajc prihvacena i onje odmah
poceo da razvija X-bitnu verziju cipa 8008. kojaje predstavljcna 1972. godine. Na sli-
ci 1-11 pri kazana je porodica [ntelovih cipova, pocevsi od prvih: 4004 i 8008.
[ntelnijc ocekivao vc\iku potraznju cipa 8008. paje izgradio proizvodnu liniju ma-
log kapaciteta. Potr:tznja je. na opste zaprepascenje. bib iznad svih ocekivanja. pa je
Intel zapocen projektovanjc novog mikroprocesnra kl'ji bi prevazisau ogranicenja cipa
8008 ( 16 KB mcmorije) nastala zbog malog broja nozica. Tako je n)Ltcn 8080. mali mi-
kroprocesor opste namene. koji je prcclstavljen 1974. godine. Slicnn racunaru PDP-8.
i uvaj proizvod jc munjevito osvojio tdistc i mlmah postau roba ;iroke potrosnjc. Sa-
rno. umeshl da kan DEC prod<yc hiljadc komada. Intel je prodavao na milione.
G<)dine 1978. pojaviu sc ROX6. pravi 16-bitni mikrnprocesor na jednum cipu. 801\6
je projcktovan po uwru na R080. ali nije bio potpunu kompatibilan s njim.
t
I


'
'I

! __


I
1.4 Odahrani primeri porodica racunara
37
------
Cip Datum MHz Tranzistori Memorija Napomene
4004 4/1971 0,108 2300 640 Prvi mikroprocesor na cipu
8008 4/1972 0,108 3500 16 KB Prvi 8-bitni mikroprocesor
---
8080 4/1974 2 6000 64 KB
PNi mik<op<oceem
namene na cipu
8086 6/1978 5-10 29.000 1MB 16-bitni mikroprocesor na
ClpU
8088 6/1979 5-8 29.000 1MB Koriscen u IBM-ovom PC
racunaru
-
80286 2/1982 8-12 134.000 16MB Postoji zastita memorije
80386 -t 1 0/1985
16-33 ' 275.000 4GB Prvi 32-bitni mikroprocesor
--
80486 4/1989 25-100 1.2M 4GB Ugradenih 8 KB kesa
. -
Pentium 3/1993 60-233 3,1M 4GB Ova procesna taka; kasniji I
modeli imaju skup MMX
1--------'---
instrukcija
Pentium Pro 3/1995 150-200 5,5M 4GB Ugradena dva nivoa kesa
Pentium II 15/1997 233-450 7,5M l4 GB Pentiu-m_ Pro plus skup tv\MX l
1 . mstrukct]a
Pentium Ill 2/1999 650-1400 9,5M 4GB instrukcije za 30 graflku
1
11/2000
------l
Pentium 4 42M 14GB I Hipernitni rad; dodatne SSE
I 1 mstrukcl]e -
Stika 1-11. Porodica [ll[ciovih milropnKcsma. Radni takt je izra?cn u Mll7 tmegahcrcirn.il
pri ccmu I iVI Hz OJ:nacava mil ion ciklw;a u sek.undi.
Posle cipa 8086 pojavio se cip 8088 iste arhitckture koji je izvrsavao istc proga-
mc, alijc umcsto 16-bitne imao 8-bitnumagi.stra\u. zb,lg cegaje bio spunji ijeftiniji
od svog prethodnika. Kadaje IB!YI izabr:m cip 808?> lew mikroprucc'ior svoj pF<!-
bitni IBM PC. taj cip je ubrzo po.stao standard u industriji liCnih racunara.
Proccsori 8088 i 8086 nisu mogli adrcsirati \ i'c nd jcdnog mcgabajta mernurje.
Pocetknm osamdesetih goclina lo je pustajalo sve oLhiljniji problctn. pa jc Intel po-
jektovao prucesor 80286. kompatibilan s procesnwm 8fJ86. Osnovni skup instrukcija
u osnovi je bio isti kao kod procesora 8086 i 8088. ali je urganizacija memuriJe til a
sasvim clrugacija- prilicno ne...:grapna. zbog zahtcva za sa stari;im
cipovima. Procesor 80286 iskorisccn je za racunare lBM PC/ Xr i za mod:lc
PS/2. Slicno procesoru 8088, i model 8028(1 je postigao veliki usreh, uglavn):n vto
sto su korisnici smatrali eta je to br!:i pwccsor 8088.
Slcclcci logiean kmak bio je pravi 32-bitni procesnr. model preclstavljcn
ll)85. godinc. Slicno procesoru 80286. i onje bio komratibilan sa stari im
verzijama svc du mode !a 8080. Ta kompatibilnosr bila je blagoslov za k_c,risnike 1.oji
sujos uvek na njemu izvrsavaju stariji sortvcr. alit velika smctnja onirna koji
su tezili za jcdnostavnom. cistom i savremenom arhitckturum, ncoptcrec..:mlm fi'C-
skama i tehnoltlgijom vrcmena.
IIIII::!!!"''"''"-

r

38 Poglavlje 1: Uvod
Nakon cetiri gmline, pojavio se procesor 80486. To je bila znatno br:la verzija pro-
cesora 80386. s podjcdinicom za racunanje u formatu pokretnog zareza i kes merno-
rijom od 8 kilobajta na samom cipu. Kes memorija iii jednostavno kes (engl. cache
memory) korisccnajc za cuvanje najcesce upotrcbljavanih mcmorijskih reci u samom
mikroprocesoru iii u njegovoj neposrednoj blizini kako bi se izbeglo (sporo) pri-
stupanje glavnoj memoriji. Cip 80486 imao je i ugradenu podrsku za viseprocesorski
rad kako bi sc proizvodacima omogucilo da sklapaju sisterne u kojima vise proccsora
deli zajednicku memoriju.
U to doba Intel je na neprijatan naCin saznao da sc brojcvi (npr. 80486) ne mogu
pravno zastititi (izgubivsi sudski proccs u vczi sa zastitom irnena proizvoda), pa jc
sledeca generacija procesora dobila ime Pentium (od grcke reci za pet). Za rcu.liku od
procesora 8041\6, koj i je imao jedan unutrasnji kana! za podatke (engl. pipeline), Pen-
tium je dobio dva takva kana! a pa je bio dvostruko brzi (o kanalima za podatke govo-
ricemo u poglavlju 2).
Kasnije, tokom proizvodnje ovog procesora, Intel je dodao i specijalan skup in-
strukcija za pod1sku multimcdiji (engl.lvlu/rilvlcdia eXtension, MMX). One su bile
namenjene ubrzanju obradc zvuka i slike da bi se izbegla ugradnja specijalnog kopro-
cesora za obradu mutimedijskog sadrzaja.
Kada se pojavila slcdeca gcneracija proccsora, razocarali su se korisnici koji su
ocekivali da cc to biti ,Sexium" (sex jc latinska rcc za scst). I me Pentium je vee bilo
toliko pozna to da su marketinski strucnjaci zeleli da ga zadrzc, pa je no vi cip nazvan
Pentium Pro. Bez obzira na neznatnu promenu imena, konstrukcija je bila radikalno
drugacija. U rnesto elva i vise kana !a za podatke, Pentium Pro je clobio sasvirn drug a
ciju unutrasnju organizaciju i mogao je istovrerneno da izvrsava do pet instrukcija.
Druga novost u procesoru Pentium Pro hilaje clvostepcna kcs memorija. Proeesor-
ski cip je imao 8 kilobajta hrze memorije za cuvanjc koriscenih instrukcija i
drugih 8 kilobajta za cuvanje najcdce koriscenih podataka. U pakovanju s Penti-
umom Pro (aline na samom cipu) nalazila se i druga kes-memorija od 256 kilobajta.
Iako je Pentium Pro imao veliki kes, nije dobio MMX instrukcije (posto Intel nije
mogao da proizvede tako veliki cip po prihvatljivoj ceni). Kadaje tehnologija napre-
dovala dovoljno cia su se na istom cipu mogle smestiti i MMX instrukcije i kes, kom-
binovani proizvod je predstavljen svetu kao Pentium II. Da bi se uhrzao rad sa 3D
graf1kom, kasnije je dodato jos instrukcija za podrsku multimediji. One su nazvane
SSE instrukcijc (engl. Strea111ing SIMD Extensions) (Raman et al., 2000). Novi cip
je postao po1.nat kao Pentium III. ali je u sustini to i dalje bio Pentium ll.
Slcdeci procesor Pentium zasnuvan je na potpuno clrugacijoj unutrasnjoj arhitek-
turi. Da bi obdezio taj dogadaj, Intelje s rimskih brnjeva na arapske i ncu:vau
ga Pentium 4. Kao sto se i ocekivalo. Pentium 4 je bio brzi od svih svojih prcthodnika.
U verziju koja je imala radni takt od 3,06 GHz uvedena je i zanimljiva nova mo-
gucnost- istovremeni rae! s vise programskih niti. Onaje ornogucavala programima da
svoj rae! podele u elva programska toka kojima je Pentium 4 rnogao paralclno da upra-
vlja, sto jc ubrzavalo izvrsavanjc. Osim toga. dodat jc jos jedan poclskup SSE instruk-
cija za dopunsko ubrzanje obrade zvuka i slike. Na slici 1-12 prikazanaje fotogralija
cipa Pentium 4. Onje dimcnzija 16 111111 X 13,5 nun- jedan izuzetno veliki cip.
I A Odahrani primeri porodica racunara
Slika 1-12. C:ip Pentium 4. Sva prava na fotografiju z.'rdr/.ava korporacija Intel. 2003.
ovde jc upotrcbljcna UL njihuvu duLvolu.
39
Osirn glavne serijc svojih procesora 7.a licnc racunarc koju smo upisali, Intel je pro-
izvodio i verzije Pentium cipova namenjene specijalnim trzistima. Pucetkom 199:-l.
godine Intel je predstavio novu seriju pro..:csora nazvanu Ccleron. jcrtiniju i pn per-
forrnansama slabiju verziju I'entiuma IL namenjcnujeftinim PC racunarima.
Posto Celeron ima istu arhitckturu kao i Pentium II, neccmo ga u ovoj 1-.njizi vise
razmatrati . .luna 1998. godine Intel je proizveo speLijalnu verziju Pentiuma II za za-
htevnijc trz.iste. Ovaj procesor, nazvan Xeon. irnao je vecu kes mernoriju. br/u mag:i-
stralu i holju podrsku1.a rad. ali jc u o'tan Pentium II, tako da
ni njega necemo poscbno izdvajati. Pentium III jc takocte imao svPju verziju Xeon.
Novembra 2000. godine Intel jc prcdstavio Pentium 4 koji je izvrsavao iste pru-
grame kao Pentium III i Xeon, ali je imao sasvirn novu konstrukciju. U vcrziji kojajc
imala radni tal-.t od 3,06 GHz uvedcn je istovrcmeni rad s vi;e programskih niti (o
tome cemo govoriti u puglavlju X).
Clodine 2003. Intel jc proizveo procesor Pentium :\1 (!\11 oznaeava Mubile). cip na-
menjcn prenosivim racunarima. On je hio cleo arhitekturc Ccntrino. a ciljevi su bili
manja potrosnja radi duzcg trajanja baterija. manji i laksi racunari i ugradena podrska
za be:l.icno umre:l.avanje prema ( WiFi) stanc!ardu IEEE 802.11. Intel je nameravao da
ponudi skupove cipova i za drug:e buduce spcciticnc primene- na primer, za uredaje
za kucnu L<tbavu i prcnosive racunarc po stanclardu IEEE S02.16 ( WiMaxJ.
40
Poglavljc l: Uvod
Svi Jntdovi cipovi su kompatibilni sa st<uijim verzijama sve do procesora R0l)6_
Drug:im recima, Pentium 4 moze bez izmene da izvrsava programe pisanc za proccsor
:-\086. Takva kompatihilnostje za Intel uvek bila projektni imperativ kako bi sc korisni-
cima ornogucilo da i na novim procesorima izvrsav<uu softver u koji su ulozili novae.
Ram me se daje Pentium 4 za tri reda vclicine slozcniji od procesora 80R6, pa rnoze da
mnogo toga sto procesor 8086 nc moze. Da bi se postigla kompatibilnost, dnbi-
_jenaje arhit-:ktura koja nijc tako elegantna kao sto bi mogla biti daje neko konstrukto-
riJ:icl Pcntiuma 4 ciao 42 miliona tranzistora i naredio im da sve urade iz pocetka.
Zanimljivo Je primetiti cia Monreov zakon ne vazi samo za broj bitova mcmorije,
v l'C i z:l prncCSlli'Ske cipove. Kada na polulogaritamskoj skali prikazemo broj ugradc-
nih (slika 1-12) u zavisnosti od datuma proizvodnje L'ipova, uvericemo se
da ;\J,,orcov zakon vazi i ILL Ta zavisnost je prikazana na slici 1-13.

0
;;;

m
2
OJ
lOOM
10M
1M
lOOK
lOK
lK
100
10
1 1- 8080
4004
......-
8008
8086

8088
Mooreov zakon
80286

80386
Pentium 4
Pentium Ill
Pentium
Pro
1970. 1972. 1974. 1976. 1978. 1980. 1982. 1984. 1986. 1988. 1990. 1992. 1994. 1996 1998. 2000.
Godina kad je cip predstavl1en
Slika 1-13. Mooreov .cakon za (lntclovcJ proccsorskc cipove.
lakl1 ce Moun:ov zaknn verovatno \azitijos neko vreme. ubrzano se pojavljuje sve
veci problem s disipacijom toplotc. Manji tranzistori omogucavaju rad pri visim
za sta neophodni vcci naponi. Snaga i proizvedena toplota rastu s
kvadratom napona, tako da brZi rad izaziva i veci problem sa odvodcnjem toplote. Na
radnomtaktu od 3,6 GHz. Pentium-+ ima snag.u od 115 vati. To znaci daje zagrcjan
pribJizno Llo .sijalica od 100 vati. Povecavanje radnog takta samo dodatno pogor.\ava
stvari.
Novembra 2004. god inc Intel jc prckinuo razvoj Pentiuma na 4 GHz zbog proble-
ma sa odvodcnjcm toplote. Vclik1 ventilatori mogu da pomognu. ali sum koji prave
nijc bas omiljen medu korisnicima. a vodcno hladenje kojc se koristi u centralnim
racun<trima nije has neko rdenje za stone racunare ta gotovo nikakvo za prcnosive).
lA Odabrani primed porodica rai'unara

41
Zakljucakjc cia sc nezadrzivi rast radnog takta mora privremeno obuzdati, bar dok h-
tdovi inzenjeri ne otkriju kako da na etikasan nacin odvcdu oslobodenu toplotu.
Umesto poveeaja radnog takta, Intel bi u buducnosti mogao da stavi elva procesora 1a
isti cip, zajedno s velikom deljenom kcs memorijom. Zbog zavisnosti snage od napJ-
na i radnog takta, dva procesora najednom cipu manje su snage odjcdnog dvostruto
brzeg proccsora. Prcma tome, razvoj koji predvida Mooreov zakon u buducnosti .;e
moze holjc iskoristiti ukoliko sc bude na L'ip ugradivala sve veca i veca kcs memoriJa,
nego ako se povecava radni takt (posto memorija ne trosi toliko snage).
1.4.2 Predstavljanje cipa UltraSPARC III
Sedamdesctih godina pros log veka UNJX je hio popularan na univcrzitetima. ,tli
ga nikako nije bilo na !il'nim racunarima, pa su poklonici UNIX-a morali da kori<tc
(cestu prcopterecenc) vrcmenski dcljenc mini racunare kao sto su PDP-IIi VAX. Go-
dine I. Ncmac Andy Bechtobheim, diplomac sa Stanforda koga jc ncrviralo
mora da ode u ral'unski centar kad god hnce cia koristi UNfX. odlucio je da rt.'Si aj
problem tako sto ce sJm napraviti radnu stanicu pod UNIX-om od komponcnata hje
se mogu naci na trzistu. Nazvao ju jc: SUN-\ (Stanford University Network).
Bcchtolshcim jc ubr1"0 privukao pa.i.nju 27-godisnjcg Inclusa Vinoda Khoslae, k'1ji
je goren od zcljc da se h.ao milioncr pcnzionise u tridesetoj godini. Khosla je ubccio
Bechtolsheima da osnuju kompaniju za proizvodnju i prodaju radnib stanica Stn.
Khosla je unajmio Scotta McNcalyja, drugog diplumca sa Stanfnrda. da vodi pro z-
vodnju. Za pisanje softvera angazovali su Billa Joyja, glavnog projcktanta
UNIX-a. Njih cetvorica SLI 1982. godine osnovali kompanijtl Sun Microsystems.
Prvi proizvocl Iinne Sun, radna stanica Sun-! s procesorom J'vl(lloroLt ()6020, po,ti-
gao je munjevit uspeh. bas kao i narcdni modeli Sun-2 i Sun-J, tahock s l'vlutowlin m
procesorima. Za razliku od licnih ral'unara iz tog vremena, ove masine su bile
mocnijc (otuda i naziv ,.radna stanica"l i od samog pucetl-;a ,,u bile prcdvidcne za ud
u mre/:i. Svaka radna stanica Sun bila jc opremljena mrel:nim Ethernet prikljul'koJ.1 i
imalajc TCP/!P softvcr za na mrdu prc'tccu lntcrneta.
Godinc 1987 firma Sun, koja je tada prodav:da u \ od pola mili-
jarde dolara godi;njc, odlul'ila je da napravi Sl)pstYeni miJ,.ropmcesor knji hi s.: ;a-
snivao na revolucionarnom novom pmjektu izrac1e:wm na Cnivcrzitctu Kalifornijt u
Berkliju (RISC ll). Taj mikroprocesur. naz\an SP.\RC (Scalable Prncc:sstl!. ARCili-
tccture. prosiriva arhitektura proeesora). bio je jczgru racine stan icc Sun-4. Nijc mm-
go proslo, a sve racine stanice SUN kori::tik su prncl;sur SPAR C.
Za razliku od mnogih drugih racunarskib kornpani_i;:, !irma Sun jc o.ilul'ib da r;c
pruizvodi sama procesor SPr\RC. Ona jc za njcg;>vu rroizv<'dllJU n.ckoJiqJ
proiz.vodaca poluprovodnika. nadajuci sc dace ku::k.tir<.:ncija uC:initi ida ce (ip
postajati sve bolji i jeftiniji. Proizvodal:i -;u napra\ ili nil L:ipovcl koji .-<use
zasnivali na razlil'itim tchnulogijama. radiii m r:vlicitim i nara .. 10
razlicito kn;tali. iVledu njima SLI bili l:ipovi wlicmSP,\RC, H:Jr.:rSf',\RC, Supt'i-
SPARC i TurboSPARC. fako su se rnalu razlikovali, ,;\i h!narn<lllllli'iOU mecu-
sohno hili kompatibilni i mogli su izvrsa\ati iste k<lri:.,niC:kc pwgrame beL ibk1ih
!Zmena.
!!'!'" ...
Poglavljc 1: Uvod
Sunje uvek tezio da arhitekturu procesora SPARC odr:li otvorenu, s mnogo doha-
vljaca dclova i sistema, kako hi podstakao razvoj industrije i stvorio konkurenciju u
svetu licnih racunara u kome su vee' dominirali Intelovi mikroprocesori. Da hi stckao
povcrenje kompanija kojc su se zanimale za procesor SPARC, ali nisu zclele da ulazu
novae u konkurentski proizvod, Sun je stvorio industrijski konzorcijum SPARC In-
ternational koji c'e upravljati razvojem huduc'ih verzija arhitekture proccsora SPARC.
Shodno tome, vazno je uociti razliku izmedu SPARC arhitekture koja predstavlja spe-
cifikaciju skupa instrukcija i drugih moguc'nosti vidlji vih programerima, i konkretne
realizacije tc arhitekture. U ovoj knjizi havic'emo se i opstom SPARC arhitekturom, i
(u okviru teme o procesorskim cipovima u poglavljima 3 i 4) konkretnim SPARC ci-
povima ugradcnim u radne stanicc Sun.
Prvi SPARCje hio 32-hitna masina kojaje radila na 36 MHz. Procesor nazvan ce-
Iobrojna jedinica (engl. Integer Unit, IU) hio je mali, sa samo tri osnovna formata za
instrukcije i ukupno 55 instrukcija. Pored toga, jedinica za racunanje u formatu po-
krctnog zareza imalaje i svojih 14 instrukcija. Ovo sc mozc uporediti sa razvojcm In-
telovih procesora, koji jc poe eo 8-hitnirn i 16-hitnim cipovima (S088, 8086, 802S6 ),
da hi 32 hita dostigao tck sa procesorom 80386.
Prvi SPARC-ov raskid s proslosc'u desio se 1995. godine, kada je stvorcna de veta
verzija SPARC arhitekture. prava 64-hitna arhitektura sa 64-hitnim adresama i rcgi-
strima. Prva Sunova radna stanica u kojuje implcmcntirana arhitektura V9 (verzija 9)
hila je stanica UltraSPARC I, predstavljena 1995. godine. (Tremblay i O'Connor,
1996). !ako je hila 6-+-bitna, ona je na hinarnom nivuu hila potpuno kompatibilna
s postojccim 32-hitnim SPARC raclnim stanicama.
UltraSPARC je bio namcnjcn novim trz.istima. Dok su dotadasnji racunari radili sa
alfanumerickim podacima i izvrsavali program za obradu tcksta i program za unakrs-
na izracunavanja, UltraSPARC jc ohraL1ivao slikc. zvuk, video zapis i multimediju u
celini. Osim 64-bitne arhitckturc. bilo jc tu jos nov ina kao sto su 23 nove instrukcije,
medu kojirna i nckc za pakovanje i raspakivanje pikscla iz 64-bitnih reci, za menjanjc
velicine i rotiranje slika. premdtanjc hlokova tc za komprimovanje i dekomprirno-
vanje video zapisa u rcalnom vremcnu. Ovc tzv. VIS instrukcije (Visual Instruction
Set. skup .,vizuclnih' instrukcija) bile su namenjene za opsti rad s multimedijom. ana-
logno lntelovom skupu MMX instrukcija.
UltraSPARC je bio namenjcn najl'ahtevnijim aplikacijama, (npr. velikirn Web \cr-
vcrima s desetina proccsora i tizickommcmorijom do 8 TB (I Tl3 terabajt,jednak
je !0
12
bajtova). Mcdutim. njegovc slabijc vcrzije moglc su sc koristiti i u prcrwsivim
racunarima.
UltraSPARC J su tprirodno) naslcdili UltraSPARC II, LlltraSPARC' Ill i Ultra-
SI'ARC IV. Ovi modcli su se prvcnstvcno razlikovali po radlll'lll tak.tu, ali je u svaki
clodato .JOS pondto. Kada budcmo govmili o SPARC arhitckturi u ovoj knjizi, uglav-
nom c'cmo kao primer koristiti 64-hitni V9 model UllraSPARC Ill Cu. UltraSPARC
IV je u osnovi procesor u k<Jmc dva UltraSPARC-a Ill na zajednickom cipu dele istu
memoriju. 0 njcmu ccrno govoriti u okviru temc o multiproccsurima u poglavlju 8.
1.4 Odahrani primeri porodica racunara
43
1.4.3 Cip sost
Nas treci primer se veoma razlikuje od prvog (Pentium 4, namcnjen licnim racu-
narima) i drugog (UltraSPARC Ill, namenjen serverima). To je cip 8051, koji se ko-
risti u ugradenirn sistemima. Prica o cipu 805 l pocinje 1976. godine, u vreme kadaje
8-bitni cip 8080 vee oko dve godine bio na tr:listu. Proizvodaci kucnih aparata poceli
su da ugraduju cip 8080 u svoje uredaje, ali da hi sistem hio potpun, nijc hio dovoljan
samo cip 8080. vee ijeclan iii vise memorijskih, kao ijcdan iii vise ulazno-izlaznih ci-
pova. Troskovi za ugraJnju harem tri cipa i njihovo medusohno povezivanje nisu hili
mali, pa su racunari ugradivani u vcce i skuplje modele aparata. Mnogi proizvodaci su
predlagali lntelu da ceo racunar (procesor, mcmoriju i ulazno-izlaznu jcdinicu) stavi
na isti cip kako bi smanjio tn)skove.
Intel je oclgovorio tako sto jc napravio cip 8748- mikrokontrolcr sa I 7.000 tranzi-
stora, procesorom slicnim procesoru 8080, jednim kilobajtom programske memorije
samo za citanje, 64 bajta memorije za citanje i upisivanjc namcnjenc promenljivama.
8-bitnim mcracem vrcmcna (tajrnerom) i 27 ulazno-izlaznih vodova za kontrolne pre-
kidace. dugmacl i signalne lampice. Jako primitivan, ovaj cip je postigao komercijalan
uspeh, sto je Intel podstaklo da !980. god inc na trzistc izbaci cip 805 I. Nov cip je irnao
60.000 tranzistora, rnnogo brzi proccsor, 4 KB memorije samo za citanje, 128 hajtova
mcrnorije za citanjc i upisivanjc, 32 ulazno-izlazna voda, serijski prikljucak i elva
16-bitna mcraca vremcna. Uskoro su usledili i drugi clanovi porodice cipova
MCS-51, kako ju jc lntelnazvao (slika l-14 ).
T
I



I 875,
!so 2

)
L___
Programska Tip memorije RAM Meraci
memorija vremena
(tajmeri)
---
0 KB 128 2
-
4 KB ROM 128 2
8 KB EPROM 128 2
0 KB 256 3
8 KB ROM 256 3
---
+-----' +--
8 KB EPROM 256 3
Stika 1-14. Clanovi porouicc cipova MCS-51.
- ---
Programski
prekidi
--f----
5
5
--
5
6
: __ ===]
Svi ovi cipovi imali sumernoriju samo za Citanjc (namenjenu programu) i malu ko-
licinu RAl'\1 mernorijc (Random Access Memory, rncmorija s dircktnirn pristupom)
za citanjc i upisivanjc (namenjenc podacima). Kod cipova 8031 i 8032 programska
mcmorija je hila izveclcna kao spoljna. s rnogucnoscu ukljucivanja i dodatnih 8 KB
jc neophodno. Mcmorijc ROM (Read Only Memory, memorija samo za citanje)
i EPROM ( Erasahlc Programmable ROM, izhrisiva programabilna memorija samo
za citanje) obradic'crno u poglavlju 3. Zasad jc dovoljno reci da su mikrokontroleri
S05! i S052 na jcdnom cipu i korisceni su u kucnim aparatima. Svaka grupa
c1pova namenski je pravljena za poznatog kupca (npr. za odredenog proizvodaca kuc-
nih aparala) i svaki cip jc sadrzao program koji je isporuCivao kupac.
4-t Poglavlje 1: Uvod
Da bi napravio sortvcr, kupac jt: morao imati i razvojni sistem. Tu su na scem1
stupali cipovi 875 l i 8752. Oni su bili mnogo skuplji od cipova 805 I i 8052, ali ihje
kupac mogau programirati za potrche ispitivanja softvcra. Kada bi se nasla grcska u
kodu, program se iz cipova '11,75 I i 8752 mogao tako sto Sll se cipovi izlagali
ultraljubicastoj svetlosti, poslc cega bi se u njih mogao upisati nov program. Kada hi
ispitivanje solhera bilo zavrseno, softvcr hi bio prosledcn proizvodacu cipova, h.oji bi
tada napravio namcnskc cipovc 805 I ili 8052 s clatim koclom.
U pogledu arhitckture, prikljucivanja i programiranja, svi pripadnici poroclice
MCS-5 I hili Sll vrlo sl icni. Zbog jednostavnosti najvise c'emo pominjati cip 8051'
isticuci po cernu sc razlikujc od drugih cipovc gde je to potrebno.
Nekima cc Ufimanje za primer 8-bitnog cipa starog barem 20 godina zvucati po-
malu cudno, ali za to postoje dobri razlozi. Godisnje se proda mikrokontrolera oko 8
milijardi. a taj broj i dalje rastc. Ovaj hroj za reel vdicine prevazilazi broj godisnje
prodatih Pentiuma. Tck je 2001. gmline broj 8-bitnih mikrokontrolera prevazi.;;m broj
prudatih 4-hitnih mikrokontrolera. Trenutno prodaja 8-bitnih mikrokontrolera preva-
zilazi sve druge mikrokontrolere zajcdno. a porodica cipova MCS-51 najpopularnija
je porodica 8-hitnih cipova. Kada unncmo u obzir vaznost ugradcnih sistema. svako
ko proueava arhitckturu racunara mora da poznajc cipovc koji se unjima koriste, a cip
8051 jeclan jc od najpopularnijih La tu svrhu.
Mnogo sta je doprinelu uspcsnosti cira 8051. Prvajc i najvaznija njcgova cena. U
zavisnosti od broja naruccnih komada, Cip 8051 moze ;,e dobiti .-:a I 0 do 15 centi,
pa cak i jeitinije ako jc narudzbina vclika. Nasuprot tome. 32-bitni mikrukontrolcri po
pravilu kostaju oko 30 pula vise, dok su I o-bitni ncgde innedu. Za pn>il\'C>JC cijaje
cena na slobudnnm tr7.istu manja od 50 dulara. smanjcnje proizvodniil troskuva i za
par dolara znaci mnogo u pogledu cenc i pnxi:lje. To je glavni razl<>g
cipa I -on je iw1.etno jeftin.
Drugo, vise od polovinc kompanija koje prave cip X05l proiL'vndc ga po IntchJvoj
licenci. NjihPvi proizvocli pokrivaju sirok raspon brzinc. ud prvobitnih i 2 MHz do
100 M!-lz, a prave se razlicitim tehnologijama i dru!:'-acijc ;:e pakuju. Cena j" nisb
upra\'u zbog konkurcncije, a i \cliki kupci vi;c vok da nc .-:avi:;e iskljucivo <ldjedn<Jg
o-nabdevaca.
Trece. -.,e cip 1\051 vee' dugo primenjuJe. ;a nje.c:a po'.tojJ mnogn \Pftvcra.
ukljucujuci asemblcrc, programske prevoJiocc za program,f.:i jczik C i dm.c;c jaikc,
svih vrsla, programe za otkrivanic grcs,tka. oi11JU!atore. sother
i drugo. Na je i raz\ ojnih si,tcrna knji uhrzava:u
hardvera i sothcra koji se ugraltujc. 0ia mnogi prugramcri i inzcnj<:'ri dnhru
poznaju cip 8())], S[() olaksa\ a pmna]azenje .'dlag".
Ovakva popularno.c,t ra:.tc sama nd sehe. R:.vvojni ini:enjcri koy rack na
sislt'lllima cesto bimju cip c()5[upravo t:hc)g njegliVC da bi. na pri-
11lt?I'. isprobali novu tdmologiju kojom skdi (J\Lmin et al., ::'003) iii
otp,,rnust na (Lima et al..200::').
Na lnternet11 se mozc pronaci mnogo inhJrmacija u cipu 8051. Dobra poLtzna
adresaje H'\m:8U5/.,onl. Pored toga. o njemu j,,::, uvek pi;u tAyala, 200--1-;
C:alcutt et al., 200--1-; Mac Kenzie et al., 2005 i l\Lwd1 ell .. 2UU5 1.
""'toi
I
.
.
I
.
I
;;
.
.

I
i

-

I
11
1.5 Metrii'ke jedinice
45
l.S METRICKE JEDINICE
Da bismo i;.begli zabunu, treba jasno i glasno rec'i da sc u ovoj knjizi. kao i inace
u racunarstvu, koristc mctrickc jcdi nice ( umesto tradiciona1nih anglosaksonskih jecli-
nica u stilu arsin-livra-pinta-dan hoda). Osnuvni pn:hksi metrickih jcdinica prikazani
su na slici 1-15. Oni sc obicno skracuju na pllcctno s1ovo, iza koga sledi vc1iko slovo
zajcdinicu ako je ona vcea od 1 (KB. MB ild.). Od ovoga se (iz istorijskih raz1oga)
izuzima kb/s (kilobiti u sekuncli). Tako kana] brzinc I Mb/s propusta
[(i
1
bitova/s. a radni takt periode od 100 ps otkucava svakih 10-IO sekundi.
Posto oba pretiksa mili i mikro pocinju .,m", dogovoreno je da skrac'enica za
mili hude ,m', a za - ,!J" (grcko s10\o mi).
Prefiks Decimatni Decimalni format
I
Cljall11 : I I Cljall11
1
mnozitelj ! \ I mnozitelj ,
001

1.000 Kilo .
'1 0 I 0,000001 I mikro \10
6
1.000.000 Mega


-- 1.ooo.ooo.ooo - Giga J
\

___ f 1 000.000.000 000 Tera J


r 10
15
i 0.000000000000001 I femto )1 0
15
1.000.000.000.000.000 Peta J
o.ooooocooooociooo

1.ooo.ooo.ooo.ooo.ooo Eksa 1
I I 001 I ------+ .000 __j
i1o
21
___ ! ! cepto 1-102
1
1.000.000.000.000.000 Ceta - 1
! ! 000001 I I .000.000 I J
-------- -- --- - I I
! 10 d i O.OOOOOOOO.JOOOOCO : jokto 11

1.000.000.000.000.000 I Jot a j
I i 000000001 I . .000.000.000
L---- __ ____L ___ -- ______ _:_ ____ __j_______ -
Slika 1-15. Osnmni prcfiksi metriCkih jedinica.
Trcba na,<:Ll-;iJi i da pri izra/avanju vclicine memorijc, cliskova. datotcka i baza
pPdauka. Ll U()hi(::tj;:noj rrak,;i imaju nesto drugacije znacenjc. Tako kilo 0/.na-
C:JV<l 2
11
J ( 10::'-+J umestJ) Ju-' ( iOOOJ jer je kapacitct memorije uvek stcpen broja dva.
ud l 1<13 saJr/.i 1 bajta, a nc 1000 bajtova. Slicno tome, mcmorija od
1 \I B saJr;i.! 2
21
i ( I .04R.5 7 (l) memorija od 1 G B sadr:l.i 2-'
0
(1.073 .7 41.824) ba-
jt' 1va. a ba;a podata\.:t :1d ! T8 sadrz.i 10-1 ( J.()l)9.5 11.627 .776) bajtova. Medutim,
brtinc I kb/.o, mozc da pmpusti I 000 hitova u sekundi. a loka1na
lll!'L'Ll brzi<1c I() \lh/o; pn1p11:;la 10.000.000 jer ove dvc brzine nisu stepeni bm-
jct 11\ ;\lnugi. na?di'SL Llkn ove ,;isteme. naroCito kada se radio ve1icini dis-
kc.. a. Da i;he;:!i ch 1>,;;msknust. u ovoj knjizi cemo koristiti sirnbo1e KB, iVlB.
i TB 1.a 2
10
::.:o.2'
0
i 2-1
11
bctjt.JVa. a simhole kb/s, Mb/s, Gb/s i Th/s za 10
3
,1 d', lOY
i I{) i
2
hitm<t/s. .

.. , I
46
Poglavlje 1: Uvnd
1.6 PREGLED SADRZAJA KNJIGE
Ovo je knjiga o racunarima s vise nivoa (sto obuhvata skoro sve savremcne racu-
nare) i o njihovoj organizaciji. Analiziraeemo prilicno detaljno svaki od cetiri nivoa
racunara- nivo digitalne logike, nivo mikroarhitekture. nivo !SA i nivo operativnog
sistema. Neke od osnovnih tema koje eemo razmotriti obuhvataju opstu organizaciju
nivoa (kao i motive za bas takvu organizaciju), raspolozive vrste instrukcija i podata-
ka. organizaciju mcmorije i adresiranje i nacin na koji se nivo implemenlira u praksi.
Proucavanje ovih i slicnih tcma zaokruzuje oblast koja se zove organizacija racunara
iii arhitektura racunara.
Prvenstvcno ee nas zanimati koncepti, a ne dctalji iii formalna matematicka iz-
vodcnja. Zbog toga ee neki primeri biti pomalo uproseeni kako vas detalji ne bi
spree iii da jasnije uocite osnovnu zamisao.
Da biste stekli izvesnu predstavu o tome kako se principi izneti u ovoj knjizi ne
samo mogu primcniti, vee se i primenjuju u praksi, kroz citavu knjigu eemo kao prak-
ticne primere navoditi procesore Pentium 4. UltraSPARC Ill i 805 I. Ova tri cipa SL\
izabrana iz vise razloga. Prvo, svi sc siroko koriste i citalac je vcrovatno dosao u dodir
s baremjednim od njih. Drugo. svaki od njih ima svoju jedinstvcnu arhitckturu koja
prcdstavlja osnov za poredenje. Knjige kojc obrac1uju sarno jednu vrstu racunara ce-
stona citaoca lazan utisak da Sll naisli na pravi racunar, StO je apsurdno ako
imamo u vidu rnnoge komprornise i proizvoljne odluke koje su konstruktori prinucte-
ni da donosc. u ovoj knjizi citaoca podsticemo da kriticki prouci i sve druge racunare
i poku;a da razumc zasto sve izglcda onako kako izgleda, kao i to da je u clatim okol-
nostima sve moglo izgledati i drugacije.
Od samog pocetka treha cla hmlc jasno da ovo nije knjiga o programiranju Pentiu-
ma 4, UltraSPARC-a III iii cipa 8051. Njih eemo koristiti kao pogodne primere tamo
gcle nademo za shodno, ali ih neeerno podrohno opisivati. Citalac koji zeli da se de-
taljno upozna s jednim ocl tih cipova treba da potrazi informacije koje je 0 njima ob-
ja vio proizvodac.
U poglavlju 2 predstavljenc su osnovne komponcntc racunara- proccsori, memo-
rije i ulazno-izlazni urcdaji. Ono trcba da ponudi preglcd arhitekture sistema ida bude
uvod u naredna poglavlja.
Svako od poglavlp 3, -1-. S i 6 havi sc jcdnim od nivoa prikazanih na slici 1-2. Nas
pristup je odozdo navisc jer se i racunari po tradiciji tako projcktuju. Projekat ni voa
k umnogome je odrcden wojstvima nivoa k-1. pa ecte tesko ra;umeti bilo koji nivo
ukoliko vee prilicno clohro nc poznajete prethndni nivo koji i predstavlja osnnvni mo-
tiv za sledeei. lsto tako. i didakticki je ispravno najprc jednostavnije nize
nivoe, pa postepcno prelaziti na sve slo/enije nivoc.
Poglavlje 3 govori o nivou digitalne logikc -- pravom hardveru racunara. U njemu
se objasnjava sta su logicka kula i kako se una mugu kombinovati da rade nesto kori-
sno. U tom poglavlju predstavljamo i Bulovu (!ogicku) algcbru. alatku 7a analiziranje
digitalnih kola. Objasnjavamo i racunarske magistrale (sabirnicc 1. narocito popularnu
PClmagistralu. a navodimo i brojnc primere iz industrijske prakse, ukljucujuci i tri po-
mlnpna pnmcra racunara.
Prcglcd sadrzaja knjigc 47
u poglavlju 4 govorirno 0 arhitekturi mikroarhitekturnog nivoa i nacinima upra-
vljanja njimc. Posto je funkcija ovog nivoa da interpretira instrukcije nivoa 2 u visem
sloju, usredsredicemo se na tu temu i ilustrovaeemo je primerima. Tu je i objasnjenje
nivoa mikroarhitekture nekih rcalnih racunara.
Poglavlje S obraduje nivo !SA koji veCina proizvodaca predstavlja kao masinski
jezik. Ovde eemo dctaljno ispitati racunare koje smo uzeli za primere.
Poglavljc 6 pokriva nekc od instrukcija. organizaciju memorije i mehanizme upra-
vljanja koji postoje na nivou operativnog sistema racunara. Za primere srno izahrali
Windows XP (popularan na zahtevnijim serverima s Pentiumom 4) i UNIX. koji se
koristi na UltraSPARC-u fll.
Poglavljc 7 opisuje nivo asemblera. U njemu sc objasnjavaju i asembler i proces
prevodenja. Tu je svojc mcsto nasao i postupak povezivanja programa s programskim
bibliotekama.
Poglavlje X llhjasnjava paralelnc racunarc. jcdnu od sve vaznijih danasnjih tema.
Neki ud paralelnih racunara imaju vise procesora koji dele zajednicku memoriju.
Drugi imaju vise procesora koji nemaju zajednicku memoriju. Neki od njih su supcr-
racunari. neki su polpuni siotcmi na cipu, a treci su skupovi radnih stanica.
U poglavlju l) dat je spisak rcferenci za daljc citanjc, kriticki srec1en po tcmama i
abeccdno ureden spisak citirane literature. To je najvaznije poglavlje knjige.
VEZBANJA
I. Objasnitc sopstvcnim recima svaki od slcdccih izraza:
a. Prcvodilac.
b. Interpreter.
c. Virtuclna masina.
2. Kakva jc ra7lika izmec1u interpretiranja i prevoclenja'J
3. !\lnzc: lise da programski prcvodilac (kompajler) gcncrisc rczultat za nivo
mikroarhitekturc umcsto za nivo ISA'I Objasnitc prednosli i nedustatkc ovog prcd-
loga.
\lt!lctc li cla zarnislitc: racunar s nivoa u komc: nivo urectaja i nivo digitalnc: lo-
gike nisu najni/.i nivoi'' Obrazlozite.
5. raCunar s nivoa u k.ome su svi nivoi razliciti. Svak.i nivu ima instruk-
ctjc kojc SUI/I Jlllla moenije Od onih S nivoa ispod njcga; (O Z!laCi clajcdna instrukcija
nivoa r moze da uradi koliko i 111 instrukcija nivoa r l. i\ko se program nivoa 1
;_a /.:. SL'kundi. za koliko ce se vrcmcna izvrsiti ckvivalentni programi na
nivllu :'.,-' i -1- .. ukuliku sc prctpostavi clajc potrcbno n inslrukcija nivoa r za interpn.:-
Jednc instrukcijc n!voa r + I''
6. Nckc: instruk.cijc na nivnu operativnog sistema racunara idcnticnc su instrukcijama
!SA joika. Tt' instrukcijc ne izvrsava opcrativni si.stcm. vee direktno mikropro-
gracn. Kada uLmctc u o\)lir svoj odgovur na prethoclnu pitanjc. recite za;tu mislite
ua jc taku')

48
Poglavl.ie I: Uvod
7. Zamislite racunar sa identicnim interpretcrima na nivoima I, 2 i 3. Interpreter .,po-
trosi' n instrukcija da bi preuzco. ispitao i izvrsio jednu instrukciju. Instrukcija
nivoa I se izvrsava za !._ nanosekundi. Koliko ce izvrscnje jcdnc instrukcije trajati na
nivoima 2, J i 4'1
8. Na koji nacin harciver i softver jesu iii nisu ckvivalcntni?
9. Babhageova diferencna mas ina imala je fiksan program koji se nijc mogao menjati.
Jc lito susrinski isto kao i savn:meni kompakt disk ciji sc sadrzaj ne mozc rncnjati?
Ohrazlozite odgovor.
HI. Jcdna ml poslcdica Yon Neumannove iciejc da progam smesti u memoriju jcstc i to
stu se takav program moze mcnjati, has kao i podaci. Mo?.cte li da smislitc primer si-
tuacije u kojoj bi to hilo korisno'J (Pomoc': razmisljajte o aritmctici nizova.)
11. Odnos peitonnan:,i modcla 75 i modcla JO iz fB:Vl-ove serije racunara 360 iznosi
50, iako je radni takt prvog mmkla samo pet puta veci. Kako ohjasnjavate ovo nes-
laganje?
12. Dva osnovna projekta sistema prikazani su na slikama 1-5 i 1-6. Opisite kako hi se
na svakom od elva sistema mogle odvijati ulazno-izhune opcracije. Koji od dva si-
stema ima potencijalno holje ukupne perfonnansc'J
13. Pretpostavite da svaki od 300 rni liona gradana Amcrikc dncvno potrosi dva pako-
vanja robe s RFID oznakama. Koliko se RFID oznaka mora proizve,ti godisnje cia
hi sc zadovoljila ova potraznja'' Ako je ccna jedne oznakc I cent. koliki -;u ukupni
troskovi za proizvodnju oznaka? Uzimajuci u obzir bruto nacionalni proi1.vod
(GDP). da lice ova suma novca postati prepreka ;:a njihovu korisccnjc na svakmn
pakuvanju trgovackog proi;voda'J
14. Navcdite tri kucna urcdaja kao kandidate za ugradivanjc mikn,pmccsura.
15. U jcdnum trcnutku tranzistor na mikroprocesuru imao je precnik od 0, I milrometa-
ra. Prema Mooreuvom /akonu, koliki ce biti tran;:i.,;tor na nwdt:lu iz sledccc gC>dinc>
16. Pravni spur o tome ku je racunar poccu Jc apriia 1973. godinc. a sudio je
Earl Larson. On jc prcd sobom imao prijavu o kr;enJU prava kclju jc pnd-
nela kompanija SpeiTY I\ and. naslcdniJ.. palcnata La EN I r\C. Njeno jc bilo
da svako ku pravi racunar trcba da joj isplat i nadoknatlu jcr t'na ;JtJ:.eduje kljucnc p:t-
tentt:. Tnkom sudcnjajc izneto prcko 30.000 dol-;aza. Dokumcntacija proccsa ima!a
jc vise ud 20.000 stranica. Proucite pazljivo vaj o;lucaj slul.eci ->c ohimnim infornia-
cijama o njcmu kojc postoje na lnternetu i napisitc i1.vcstaj o njCgovim tchnid..im
aspcktima. Sta su tacno Eckert i Mauchky i jc sudija stck:10 uti:,:tk
da se nJihov sistcm zasniva na Atanasuffljcvom radu''
17. Navcdite tri osobe za kojc mislite da su najvi;c na st\aranjc racu-
narskug hardvcra, ukratko opisite njihuv dop1inos i obr-tzlohtc zasto ste ih odabrali.
18. Punll\ ite vd:banjc 17. ali za racunarski solh cr.
I
i
.
I
I
2
"'
ORGANIZACIJA RACUNARSKIH

Digitalni racunar JC sistem mcdusohno povezanih mikroprocesora, rncmorijt i
ubzno-i.cla;:nih urcdaja. LJ O\om pogla\ lju prcdstavic'cmo vam ove tri komponente i
ubja:,niti njih<>vc medusobne vczc kau pPdlogu za detaljno proucavanjc spccilicnih
nivoa u -,lc:Jccih pet pogl:t\ lja. Pruccsori, memorije i ulazno-izlazni urcdaji kljucni su
c:lcmenti b>ji pustuje na svakt,m nivuu. pa c'cmo nase proucavanjc arhitckture racu-
n:tra pl>Ccti tako slo c'cmo ih red11111 analizirati.
:!.1 PROCESORi
Org:1ni/acija racunara s JCdnnsLtvn,;m magistral om prikazanajc na slici 2-1. Pru-
ccsor kugl. Ce!ltrul Unit. CPU) .. muzak" je racunara. Njegova ulogajc
da radi' programima u 2'-l:tvnoj mcmoriji. preuzimajuci njihove instrukci-
je. ispitujuc'i ih i iz-vr<oavajuci ih j<.:dnu ta drugom. Komponentc racunara su povezane
magistra!om iii sa hi rnicom 1 engl. rus 1 - :;kupom paralelnih vodova za prenoserje
adrc,a. pudaiaka i upra'.'!jacLh ,ignala. l\!agistrak u odnosu na procesor mogu biti
,puijnc- t;tda g.a p01ouju s mcnll>rijum i ulazno-izlaznim urcdajima, alii unutrasnJC,
o ccmu ccmll uhu.,J rec'i \
.J9
~
;;;1,r
~ ~
Poglavlje 2: Organizacija racunarskih sistema
Proccsor je sastavljen od vise razlicitih del ova. Upravljackajedinica jc odgovorna
za preuzimanje instrukcija iz glavne memorijc i utvrdivanje njihovog tipa. Aritmetic-
ko-logicka jedinica ohavlja operacije kao sto SLI sahiranje i logicko AND (1), koje SLI
neophodne za izvrsavanje instrukcija.
Centralni procesor
Upravljacka
jedinica
Aritmeticko
logicka
1
edinica (ALU)
~
___ _A._ ------,
Registn
DD
Glavna
Otsk Stampac
memorija
DD
ll
Jt Jl
JL
Magistrala
Slika 2-1. Organizacija jednost'-lvnog racunar'-l s jednim proccsorom
i dva ulazno-izlazna ureuaja.
Prucesor sadrzi i malu memoriju velikc hrzinc koja se koristi za skladistenje pri-
vrcmenih rczultata i upravljackih podataka. Ta memorija se sastoji od niza registara,
a svaki ima udrcttenu velicinu i ulogu. Svi registri su po pravilu istc velicine. Svaki re-
gistar mozc da cuva jedan broj cija je maksimalna velicina jednaka velicini registra.
C'itanjt' registara i upisivanje podataka u njih odvija se velikom hrzinorn posto su oni
unutrasnje komponente procesora.
Najva7.niji registarje programski hrojac (engl. Program Counter. PC); on ukazuje
na instrukciju koju upravo treha preuzeti za izvrsavanje. (Tme ,.programski brojac" po-
malo t.hunjuje jcr nema niccga sto bi trcbalo hrojati, ali se ono ipak univerzalno kori-
sti). lsto taku. vazan je i regis tar instrukcija (engl. Instruction Register. IR); on cuva
instrukciju koja se trcnutno izvrsava. ( Vecina racunara ima i druge registre, neke za
upste. a nckc 1.a specijalne namcnc.)
2.1.1 Organizacija proccsora
Unutrasnja urganizacija jednog del a tipicnng Yon Neumannovog procesora detaljni-
je je prika1.ana na slici 2-2. Taj deo se zovc putanja podataka (engl. duta path) i sastoji
sc od registara rohilcno od I do 32), aritmcticko-logickc jcdinicc (engl. Arithmetic
Logic Unir. ALt:l i vise magistrala koje pove;:uju komponentc. lz rcgistra se uzimaju
2.1 Proccsori 51
podaci za dva ulazna ALU registra, obeldena na slici sa A i B. Registri cuvaju podatke
dok ALU ne obavi svoja izracunavanja. Putanja podataka je veoma vazna za sve racu-
nare i 0 njoj cemo govoriti kroz citavu knjigu.
A+B
A
Registri
B
Ulazni ALU registar
Ulazna ALU magistrala
-lzlazni ALU registar
Slika 2-2. Putanja pod a taka tipicnog Von Ncumannm og racunara.
Aritmeticko-logicka jcclinica (ALU) ohavlja sabiranjc, oduzimanjc i drugc jcdno-
stavne operacije s podacima na njenom ula;:u. dajuci rezultat u svom izla;:num regi-
stru. lz njega se rezultat opel moze vratiti u drugi registar. Kasnijc ~ e sadrzaj registra
mozc upisati (tj. smestiti) u memoriju ako se to zeli. Ne postoje u svim konstrukcija-
ma registri A. B i i1.lazni registri. U primcru sa slike ilustrovano je sabiranjc.
Vccina instrukcija se moze svrstati u dvc kategurije: registar-mcmorija ili rcgi-
star-rcgistar. lnstrukcije tipa registar-memorija kopiraju rcci iz menwrije u registre.
gde se one, na primer. rnogu iskoristiti kao ulaz.ni ALU podaci za instrukcije kojc sk-
de (Reci su jedinicni podaci koje razmenjuju memorija i rcgistri. Rec moze da !Jude
ncki ceo bruj. Na organizaciju memorije preci cemo kasnijc.) lnstrukcije tipa rcgi-
star-rncmorija omogucavaju da sc sadrzaj registara vrati u rnernoriju.
lnstrukcije tipa registar-registar drugacije su. Tipicna instrukcija tog tipa preuLi-
ma dva operanda iz registara, dovodi ih u ulazne ALU registre, ohavlja s njima neku
operaciju (na primer. -;abiranje iii logicktl AND) i rczultat vraca ujedan od registara.
f'
52
Poglavljc 2: Otganizacija racunarskih sistema
Pruccs provlaccnja dva opcranda kroz ALU i smcstanja rezultata zove se ciklus toka
podataka tengl. data path eve/e) i predswvlja samu sustinu vecine procesora. On u
znatnoj meri delinise sta racunar mol:c da uradi. Stu sc brze izvrsava ciklus toka poda-
taka. i racunar brz.e radi.
2.1.2 Izvrsavanje instrukcija
Svaku instrukciju procesor izvrsava kruz Ill! nulih koraka. Pojednostavljeno. ti
kuraci su sledcci:
I. Prcu;mi iz memorije skdeeu instrukci ju i smesti je u registar instrukcija.
2. Pumcri programski brojac taku da uLvujc: na sledccu instrukciju.
3. Odr.:di tip upraVtl prcuzetc instrukcije.
4 .. 'l.ko instrukcija kuristi ref iz memnrije. odredi gde se una nala;i.
5. Ako jc putrt'hm\ pr.:uzmi rcc u registar procc-,ura.
(J. in-,uukciju.
7. ldi na

1 da bi poceo izvrsavanj.: narcdne instrukcije.


Ov aj n1z koraJ...a (csto sc' zovc c i kl us preuzmi-dekodiraj-izvrsi (engl. ji:tch-de-
cudl'-c.\ccwc 1. Cln JC rujva/niji ;;1 r;1d svih racunara.
r:td pn ,,t',, bli.-;kJ) 1 prugramu pisanom na cngleskorn jeziku. Sli-
ka 2-3 priLvuie ukav nd,,nna!an programu uhliku Javine mctode (tj. procedure)
ne inliTJ!'Ci. R:tcunar kilji -,c intcrprctira ima dva r.:gistra vidljiva korisnickirn
prngran:i rm: j'rngram:;ki hrujal: 1 PC) Dt ukazi vanje na adresu sledcee instrukcije i aku-
muLLi'; (JI.CJ z.a cuvanjc :tritmetickih raultata. On ima i Jva unutrasnja rcgistra za cu-
\.lllJc t\'J...L:(c: ln,
1
:ukcijte dPI-. -.e ona ilvr;ava (instrl, tipa tckucc instrukcijc (instr_type),
:1dreo;c J]Xran:L
1
j
11
-.truf-,jjc (.]at'!_ icc; i -;amog tckuceg operanda (data). Pretpostavlja
d.t sv :t!,:t in,,t
1
:;J...c:iia tn;a ;cdinstvcnu adr..:su u mcmoriji. Adresirana lokacija u rnc-
rnt >n: i \.ldr/.i "
1
primer. pp,!at:J k trcba dodati akumulatorul.
lt ,;iJnC L::njcntcc d.> J11tl('Ut.'e napi-,ati program koji irnitira funkciju procesora
-;k:E cb i.l'. r'-it;
1
,- pa-.:r:li;i:t lie' mora da hudc .. hardverski" procesor- kutijica puna
ekktron,kih tk!:\ct iur'ii.:-: pri!:;rama nw/e hiti i neki drugi program koji ce rcdom
!'lc'uLim,tti. i in r<.a'. e ino;trukc:ije. Pmgram (kao onaj na slici 2-3)
i iz\T<ava !nstruLije drugug prugrama zove se interpreter
(C::ngl. i.::[i'r.' 1 (.-'fl'rL kau u j.
pt ... cl';c c:ass i::;er;.: \
stat:-: ?C':
3t:J::c. ;nt
stl.Tis
st;ltic: int ;rstr .J'/pe
int d:..tla 1cc:
3latir: 1r:1 Car?...
.ststic LJcc.:eJ.n :11L-::: uue:
1. ;:Jrog:amski bropc cuva adresu sledece instrukcije
" akur<lulator, regrstar za aritmetrcka izracunavanja
:. regtstar koJi cuva tekucu 1nstrukciju
-'/tip ( opkod;
.1 aoresa t-JOdataka iii- 1 aka ih nema
/,' i':uva ;ekuci operand
; bit ko
1
i se maze iskijui':iti da bi se zaustavio program
2.1 Proccsori
public static void interpret(int memory[), int starting_ address) {
II Ova procedura interpretira programe za jednostavan racunar, kod koga instrukcije
II imaju jedan operand u memoriji. Racunar ima registar AC (akumulator), koji se koristi
II za aritmeticka izracunavanja. lnstrukcija ADD, na primer, dodaje broj
II iz memorije registru AC.
II Interpreter se izvrsava dok se bit run ne iskljuci instrukcijom HALT.
II Stanje procesa koji se izvrsava na ovom racunaru cine memorije,
II programski brojac, bit run i registar AC. Ulazni parametri su
/1 slika u memoriji i pocetne adrese.
starting_address;
while (run_bit) {
instr memory[PC]:
II preuzmi sledecu instrukciju u instr
53
PC+ 1;
instr_type get_instr_type(instr);
data_loc find_data(instr, instr_type);
if (data_loc 0)
II uvecaj za jedan sadrzaj programskog brojaca
II odredi tip instrukcije
data= memory[data_loc];
execute(instr _type, data);
}
II pronadi podatke (- 1 aka ih nema)
II aka je data_loc 1, nema operand a
II preuzmi podatke
II izvrsi instrukciju
private static int get_instr_type(int addr) { .. }
private static int find_data(int instr. int type) { .. }
private static void execute(int type, int data) { ... }
Slika :!-3. Interpreter 1.a jednusla\ an racunar (pi,an na Javi )_
Ova mcL1usobna funkcionalna zamenjivost hardverskih procesora i ( softvcr,kih 1
intcrpretera znacajno utice na organizaciju racunara i projcktovanje racunarskih siste-
ma. Posto projcktantski tim postigne dogovor oko masinskog jeztka L za nov racu-
nar, mozc odluciti da li ce ll njega ugraditi hardverski procesor za dircktr,o
iz.vrsavanje programa pisanih na jeziku L ili L'c mozcla napisati interpreter za
voclenje programa s jezika L. Ako projektantski tim odluCi da napise interpreter. moa
preclvickti i hardverski urectaj na kome ce se on izvrsavati. Mogucc su i izvesnc hi-
bridnc konstrukcijc s delom harclverskog izvrsavanp i delom softverskog prevodenj.L
Interpreter razla/.e instrukcijc svog ciljnog racunara na vise manjih koraka. Zh1g
toga racunar na kome sc interpreter izvrsava mole da bude jcdnostavniji i jeftiniji ld
harclverskog proccsora za ciijni racunar. Ustedaje posebno uocljiva ako ciljni racumr
ima mnogo srazmerno slol:enih instrukcija s vise opcija. Ustedaje direktna posledica
toga sto je hardver zamenjen solherom tinterpretcrom) i stu je skuplje
hardvcr nego soft vcr.
Prvi racunari su imali mali i jednostavan skup instrukcija. Potraga mocnijim
racun;Jrima. izmedu ostalog. podstakla je st varanje mocnijih pojedinacnih instrukciyt.
Vrlo rann je otktivc'no da sluzenije instrukcije cesto \ode brzem izvrsavanju
.
p1fr
I



54
Poglavlje 2: Organizacija racunarskih sistema
cak i ako se pojedinacne instrukcije izvrsavaju duze. Instrukcija za izr:1cunavanje u for-
matu pokretnog zareza primer je slozenije instrukcije. Drugi primer je direktna podrska
za pristupanje elementima niza. Ponekad su takve slozene instrukcije nast:1jale na
osnovu jednostavnog zapazanja da se dve iste instrukcije cesto izvrsavaju jedna za dru-
gom, pa bi isti posao mogla da obavi i jedna kombinovana instrukcija.
Slozenije instrukcijc bile su bolje jer se pojcdinacne operacije mogu izvrsavati
preklapanjem iii paralelno uz korisL'cnje drugaCijeg hardvera. Za skupe racunare vi-
sokih performansi, ovaj dodatni hardver bi se lako isplatio. Zbog toga skupi racunari
visokih performansi po pravilu imaju mnogo vise instrukcija od onihjeftinijih. Medu-
tim. rastuca cena razvijanja soft vera i zahtevi za kompatibilnosc'u instrukcija stvorili
su potrcbu da se slozene instrukcije ugraduju i'ak i u jeftinije rai'unarc kod kojih je
cena mrwgo va.Znija od brzinc.
Krajem pedesetih godina, lBM (tada vodeca racunarska kompanija) shvatio je da
podrzavanje jedinstvene porodice racunara koji izvrsavaju iste instrukcije donosi
mnogo prednosti i kompaniji i njenim klijentima. lBM je uveo izraz arhitektura da
bi opisao takav stcpcn kompatibilnosti. Trebalo bi da nova porodica rai'unara ima istu
arhitekturu implemcntiranu na razlicite naCinc i svi njeni clanovi mogli bi izvrsavati
isti program. a razliknvali bi se jcdino po ceni i hrzini izvrsavanja. Ali kako napraviti
jcftin racunar koji bi mogao izvrsavati sve slozene instrukcije ugradene u skupu
masinu visnkih performansi?
Odgovur jc u interpretiranju. Ova tehnika. koju je prvi predlozio Wilkes ( 1951 ).
omogtll'ila jc projektovanje jednostavnih. jeftinih racunara koji su ipak mugli da
izvrsav<Jju vdiki hroj instrukcija. Rezultat je bio arhitektura lBM-ovog sistema 360,
kornpatibilne poroclicc racunara ciji su clanovi obuhvatali dva reda velicine i po ceni
i po nJPguciHJ'itima. Direktna hardverska implementacija (bez intcrprctera) koriscena
je ;,amo u najsk.upljim modclima. Jednostavniji racunari sa interpretiranim instrukci-
jama irnali su jus prcdnosti, medu kojima su najvaznijc bile sledece:
I. Mogucnost da se na lieu mesta pronadc neispravno implementirana instruk-
cija iii Cak da se prikriju projcktni nedostaci osnovnog hardvera.
2. Prilika da sc uz minimalnc troskovc dodaju nove instrukcije. cak i nakon
isporuke racunara kupcu.
3. Strukturiran dizajn koji omogucava etikasno unapredivanje. tcstiranje i do-
kumcntmanjc slo/enih instrukcija.
Kadajc tr,;;iste r:tcunara scdamdcsetih godina eksplodiralo, a mogucnosti racunara
nag!o porra/nja La jeftinim proizvodima podstakla je projektovanje racunara
koji "-ori;.;tc Moguc'nost cia se hardver i interpreter fino usaglase sa oclre-
denim -.k.upom in-;trukcija pokazala se vcoma isplativom pri projektovanju proccsora.
Ka"-o je tehnolngija poluprovodnickih materijala brzo naprec!ovala. snizenje proizvod-
nih prnagnuio jc nad teznjom za boljim performansama a arhitektura za-
snuvana na interprdiranJLI postala je uobicajen nacin projektovanja racunara. Skoro
'\ i no\ i racunari pwjc"-tovani seJamdcsetih godina. od mini racunara do centralnih ra-
l:unara. Dslanjali su sc na interpretiranjc.
2.1 Procesori
55
Krajem sedamdcsctih, jednostavni procesori na kojima su se izvrsavali interpreteri
prosirili su se skoro na sve racunarc, izuzev na najskuplje modele visokih performan-
si, kao sto SLI Cray-1 i serija Cyber korporacijc Control Data. ZahvaljujuCi interpreti-
ranju. ncstala su ogranii'enja karakteristicna za slozene instrukcije i u arhitekturama
Sll poceJe da SC koriste mnogo slozcnije instrukcije, narocito nacini na koje SC zadaju
potrehni operandi.
Ovaj trend je dostigao kulminaciju s racunarom VAX korporacijc Digital Equip-
ment, koji je imao vise stotina instrukcija i koristio vise od dvesta nacina za zadavanje
operanada potrebnih za njihovo izvrsavanje. VAX arhitekturaje, naz.alost. od samog
pocetka hila usmerena na implemcntiranje pomocu interpretera i niko nije razmisljao
o njenoj implcmcntaciji u mode lima visokih performansi. Zbog toga jc nastalo mno-
go instrukcija marginalnog znacaja koje su se vrlo tesko dircktno izvrsavale. Previd
takve vrste bio je poguban za VAX, a i za kompaniju DEC (Compaq jc kupio DEC
!998. godine, a Hewlett-Packard je kupio kumpaniju Compaq 200 I. godine).
Iako su najraniji 8-bitni mikroprocesori hili veomajednostavni, s vrlo prostim sku-
pom instrukcija, krajem sedamdesctih godina cak su sci mikroprocesuri okrenuli in-
terpretiranju. Tokom ovog pcrioda. glavni izazov projcktantima mikroprocesora bila
je mogucnost usloznjavanja njihuve konstrukcije pomoc'u integrisanih kola. Najvec'a
prednost pristupa zasnovanog na intcrpretiranju bi lo je konstruisanje jednostavnog
procesora. dok je slozenost prcpustana sadrzaju memorije- interpreteru. Na taj nacin
sc slozen hardverski projekat mogao pretvoriti u slozen projckat.
Uspeh procesora Motorola 68000, koji jc imao veliki intcrprctirani skup instrukci-
ja. uz istovremeni neuspeh Ziloga Z8000 (koji jc imao is to tako veliki skup instrukcija,
ali bcz intcrpretera) jasno je ukazao na prednosti interpretera kada nov mikroprocesor
trcba brzo izbaciti na trziste. Uspch je bio tim pre iznenadujuci jerje Zilog imao bolji
,start"' (Z80. prethodnik procesora Z8000. bio je mnogo popularniji od proccsora
6800. prcthudnika procesora 68000). Naravno. tu sui drugi i'inioci odigrali svoju ulo-
gu. a nije nevazno ni to dajc Motorula oduvck bila proizvodac cipova. a Euon (vlas-
nik Ziloga)- naftna kompanija.
Drugi cinilac koji je isao u prilog interpretiranju tokom tog perioda. bio jc posto-
janje memorije samo za citanjc. tzv. upravljackog skladista (engl. control store), u
kome se nalazio interpreter. Pretpostavimo da tipicna intcrpretirana instrukcija obuh-
vata I 0 intcrpreterovih instrukcija, tl.v. mikroinstrukcija, i elva obracanja glavnoj me-
moriji. Ako se svaka mik.roinstrukcija izvrsava 100 ns, a obracanje memoriji traje 500
ns. ukupno vr<::me izvrsavanja intcq1rctirane instrukcijc trajc :2000 ns. sto je sanm elva-
put sporije od dircktnog instrukcije. Da upravljacku skladi.\tc nijc bilo na
raspolaganju, izvrsavanje instrukcijc hi potrajalo 6000 ns. };est puta sporije mnogu
gore zvuci od .,dvaput spurije"'.
56 PoglaYljc 2: Organizacija racunarskih sistema

2.1.3 RISC i CISC
Krajem sedamdesetih, eksperimentisalo se s veoma slo/enim instrukeijama jer je
interpreter to omogucavao. Projektanti su pokusavali da popune ,.semanticki jaz"'
izmedu onoga sto racunar moze da uralli i onoga sta /.alncvaju programski jezici vi-
sokog nivoa. Skoro niko nije razmisljao o projektuvanju jednostavnijih racunara, bas
kao sto ni danas niko ne razmislja o pravljenju slahijih oper<tttvnih sistema, mreza,
program a za obradu teksta i dr. ( nm/.da. nazalost).
Jednu grupu koja se oduprla opstcm trcndu i koja je cla sprovede u dclo
ncke zamisli Seymoura Craya (i napravi mini racunar visokih pcrformansi) vodio je
John Coch.e iz IBIVI-a. Ova grupa .JC napravila eksperimcntalni mini racunar, nazvan
SOl. lako1B:VI uvaj racunar nikada nije i.rbacio na tri.istc. a rezultate je objaviu tek
godinama kasnije (Rctdin. 19X2), stvar se prucula i druge grupt' su pocelc da ispituju
slicne arhitckture.
Na Bcrkliju je I 'JXO. gouinc grupa koju su prcdvodili [)a,id Patterson i Carlo Sequin
poccla da projcktujl' procesorske Vl.SI cipovc u kujima nije knrisccno interprctiranje
(Pattcrsun. Jl)X5: i Sequin, Oni su za tabu konstrukciju skovali skra-
(enicu RISC i svoj proccsmski cip na;vali RlSC 1: .ra njim sc ubrzo pujavio RISC II.
Nesro J..asnijc. I ')X l. g,Kiinc, John Hennessy JC s druge stranc za!iva u San Francisku ( u
Stanfnrdu). pmJdlovao i napravio drugaciji cip i nazvau ga MIPS (Hennessy,
ll)S-+J. Ti cipuvi su itrasli u komercijalnll va,inc proizvodc SPARC i MlPS.
No\ i l:ipovi su sc ;.natno razliJ..uvali od procc-;ura koji su tada bili na trzistu. Posto
nisu murali da hudu J.,.ompatihilni s post<>jecim proiz\odima, projek:tanti su mogli da
biraiu z.a njih nove itstrukcijc k:tk" bi p<,hnlj;:di ukupnc perfonnansc sistema. Iako su
u pocctJ..u bile hitne jcdnostavnc instrukcijc kojc bi se brzo izvrsavale, uskoro sc
zaJ..Iju<.'iJ,, d<tjc Z<t visukc pl:ri'Dnll<tnsc v:t2no lt:tpraviri instrukcijc koje hrzo zapocinju
izvrsa\ :mjc. Dul:ina i.rvr;av:mja instrukcija manje je od toga koliko instrukcija
u sckundi !llo/.c ;apoccti
KaJ:1 \U o1i jL'<hll'sla'. ni procesmi u!:'icdali wctlost uana. svima je palo u oCi da uni
im:tJll su;mc;rn,; tnali P'' praviln oko 50. To je hilo znatno manjc ou
21)() ili JOil kud po;nalih raCLl!lal:t bo st.o Sll hili DEC-ov VAX i veliki
L'l'lllralni racun.:ri. ::..krc:ccnica R!SC ll stvari Ol:!1acava racunar sa smanjc-
nlm skupom instrukdja (engl. linfliL'Cd Instruction Set Comtmtcr), stu predstavlja
suprotnust skr;tcenici ClSC - tj. raC:waru sa sloLcnim skupom instrukcija (engl.
CiJIIIJ>f,\ ln.lirlU'Iio'l Sc! Cmnt'llit'I'J. Lak<; prcpm.naje aluzija na VAX, koji je u to
vrcllle dominiLw na univerzitehJ..im za racunarstvo. Danas malo strucnjaka
snwi ra da vl'iicin;t itblrui-.:Lija predsta\ lj:t problem. ali se ime zadrzalo.
D:: ,kratimu razbukt;:o .;e pra\ i rat u klJillC su poklonici RISC arhitekture na-
rad:di Ji'''it1jcc'i mvrdcni 1 V\X, Intel, vclii..i ccntralni lBl\1-uvi racunari). Pti-
suliLe RISC arhitch.turc t\rdik su da jc rnjb,;IJi nacin za projektovanje racunara
upotrch::malng: brujaJcdnu-;ta\ni!J im;trukcij:t kujc :;c iznsavaju ujednom ciklusu toka
P'lcbw:,<l t.'lika 2-21: prcu1.im:mjc sadrLaja d\a r<';;islra. obrada preuz.ctih pudataka
2.1 l'rocesori
57
(npr. njihuvo aritmcticko ili lugicko sabiranje) i vracanje rezultata u registar. Argument
imje bio sledeci: cak i onua kaua RISC racunaru za obavljanje istog posla treba cetiri
iii pet instrukcija umestu jedne CISC instrukcije, ipak pobectujc RISC racunar jer se
njcgovc instrukcije izvrsavaju !0 puta brze (posto sc nc interpretiraju). Treba takode
naglasiti da je u to vreme brzina glavne memmije dostigla brzinu upravljackih
rijskih Cipova namenjcnih samo cilanju, tako da su nedostaci interpretiranja postali jos
izrazitiji, stu je izrazito islo u prilug RISC racunarima.
Moglo bi se pomisliti da cc zbog prcdnusti u pugledu performansi RISC racucari
(kao sto jc Sunov UltraSPARC) CISC racunare (primera radi, Intclov
tun) s trzista. ali se to nije dngodilo. Zasto'!
Pre svega, z.bog problemas kornpatibilnoscu sa starijim vcrzijama i milijardi dolara
kuje su kompanije ulozile u softver za lntclove pruizvodc. Drugo, Intelje na opste
nadcnje uspeo da primcni iste icleje i u CISC arhitekturi. Pocev od procesora 4X6.
Intelovi proccsori sadrze RISC jc.rgro koje izvrsava najjcdnoslavnije (i po pravilu
zastupljenije) instrukcije u jednom ciklusu tuka pudataka, cluk se slozenije instrukcije
intcrpretiraju na uuhicajcn CISC nacin. Ukupan cfekal jc da Sll ceste instrukcije brzc,
a one manje cestc- spore. lako ovakav hibridni pristup ne omogucava toliko brzo
savanjc kao cista R!SC arhitektura, on ukupnc perfonnanse sistema cini konkurcntnim
i istovremcno ornogucava da se stari suftver izvrsava u neizmenjenom obliku.
2.1.4 Principi projektovanja savremcnih racunara
D<mas. uve decenijc nakon predstavijanja prvog IUSC racunara. iskristalisali su sc
odrcdcni principi projektovanja uobtih racunara ll uslovima sadasnjeg stanja tehnulo-
gije hardvera. Kada hullc pomak:lu lehnologiji (npr. buue otkriven ncki postupak po-
rnocu kog ce memorija biti desct pula brza od procesora), svc ce se ponovo prumeniti.
Zbug toga projcktanli racunara uvek moraju buunim okom cla prate razvoj tchnolo,L:ije
jer on mo;.e da ugrozi trcnutni sklad komponenata.
Kad se ovo ima u vidu. jos uvck postoji nckoliko principa projektovanja, ponekad
z;anih principi RISC projcktovanja, kojih se uglavnom prid!'Zavaju projckt:mti
procesora opstc namcne. Douatni uslovi (npr. zahtcv za kornpalibilnoscu s nckom
stojceom ver1ijom arhitckture) s vremcna na vrernc izneure kompromisna resenja, ali
pomcnuti principi predstavijaju upsti cilj komc projcktanti uglavnum teze. U
ku ccmo detaljnije obraditi ncke vaznije principe.
Svc instrukcije direktno izvrsava hardver
Sve uobicajcne instrukcije direJ.,.rno izvrsava hardvcr. One se ne prevode u
in:,trukLije. Vecina instrukcija se mnogo brze iLvrsava kaua sc nc prevodi. Na
ma sa ugradenim skupom CISC in,trukcija. slozenijc instrukcije sc mogu rastaviti na
viSL' jednostavnijih. koje se zatim iz\rsavaju kao niz mikroinstruk.cija. Poslcdnji k<'rak
uspmava racunar. ali sc moze prihvatiti za instrukcijc koje se rctko koriste.
rn
58
Poglavlje 2: Organizacija racunarskih sistema
Povccanje brzinc zadavanja instrukcija
Kod savremenih racunara pribegava se brojnim trikovima za poboljsanje perfor-
mansi, a osnovno je postici da se u sekuncli zacla (zapocne) sto vise instrukcija. U kraj-
njoj liniji, ako mozete da zaclajete 500 miliona instrukcija u sckundi, to znaci da ste
napravili procesor od 500 MIPS-a, bez obzira na to za koje se vreme instrukcijc
izvrse. (MIPS poticc ocl engl. Millions of Instructions Per Second, milioni instrukcija
u sekundi; MIPS procesor je clobio ime prema ovoj skracenici.) Navcdeni princip
ukazuje nato cla paralelizam moze cia ima znacajnu ulogu u poboljsanju pcrformansi
jer je zadavanje velikog broja sporih instrukcija u kratkom vremenskom intervalu
mogucc samo ako sc vise instrukcija moze izvrsavati istovrcmeno.
lako se instrukcije pojavljuju redosleclom koji oclreduje tok programa, one se ne
izvrsavaju uvck tim reclosledom Uer neki neophoclan resurs moze u datorn trenutku
biti zauzet). niti se tim redosledom moraju zavrsiti. Naravno, ako instrukcija I posta-
vlja saclrzaj rcgistra, a instrukcija 2 taj rcgistar koristi, moraju se preduzeti oclgova-
rajuce mere cia instrukcija 2 ne procita sadrzaj rcgistra sve clok on ne clobije ispravnu
vrednost. Sve ovo zahteva dosta posla. ali se isplati, zato sto se performanse rnogu po-
boljsati ako se istovrerneno izvrsava vise instrukcija.
Dekodiranjc instrukcija mora da bude lako
Kritican faktor pri zadavanju instrukcija jcste brzina dekodiranja pojedinacnc in-
strukcije - utvrctivanje potrebnog za njeno izvrsavanje. Korisno je sve sto
moze cia ubrza taj proces, a tu spacla i standardizovanje formata i cluzine instrukcija.
kao i smanjenje broja neophodnih polja u njima. Bolje je ako postoji samo nekoliko
formata
Memoriji trcha pristupati samo pri ucitavanju i smcstanju podataka
Operacijc se najlaksc rastavljaju u vise koraka ako se postavi zahtcv da se oper<mdi
za vecinu instrukcija uzimaju iz procesorskih registara i u njih vracaju. Operacija pre-
nosenja operanada iz" mcmorije u registre muze se obaviti posebnim instrukcijama.
Posto pristupanje mcmoriji moze cia bucle sporo i posto sene moze preclvideti kada cc
se proces prcuzimanja zavrsiti, najbolje je cia se te instrukcije (buduci da sarno prcno-
se saclrzaj izmcdu memorije i registara) kombinuju s drugim instrukcijama. Ovakav
zakljucak waci da memonji treba da pristupaju samo instrukcije LOAD tucitaj) 1
STORE (smesti). Sve ostale instruk.cije trcba cia raclc iskljucivo s registrima.
Ohczhedivanjc dovoljnog hroja registara
Posto se memoriji pristupa srazmcrno sporo, treba obezbediti mnugu registara (ba-
rem 32). tako da preuzcta rec rnoze cia ostane u registru sve dokje potrebno. Steclnja
na broju rcgistara, zbog cegaje povremeno potrebno njihov saclr!aj prepisivati u me-
moriju .->amo da bi se kasnije vratio u registre, donosi ncpotrebne prohlerne. Zbog toga
je najholjc od pocerka imati dovoljan hroj rcgistara.
2.1 Proccsori
2.1.5 Paralelizam na nivou instrukcija
Konstruktori racunara stah1o teze cia poboljsaju njihove performanse. Ubrzavanje
racla Cipova kroz povecavanje radnog takta jeclan jc od nacina da se to postigne, ali u
svakom novom projektu postoji granica do kraja se moze racliti grubom silom; tu gra-
nicu oclreduje istorijski trenutak. Zbog toga projektanti racunara cesto koriste parale-
lizam (istovremeno izvrsavanje elva iii vise procesa) kao nacin da se pri zaclatom
raclnom taktu clobiju sto bolje performanse.
Paralelizam se javlja u elva opsta oblika: na nivou instruk.cija i na nivou procesora.
Prvi oblik paralelizma koristi se unutar pojeclinacnih instrukcija cla bi se moglo zaclati
sto vise instrukcija u sekundi. U drugom slucaju vise proccsora istovremeno racli na
zajednickom zaclatku. Oba pristupa imaju svoje dobre strane. U ovom odcljku po-
zabavicerno se paralclizmom na nivou instrukcija, a u sledecem - paralclizrnom na
nivou procesora.
Paralclna obrada podataka
Ciodinarna je poznato cia je pri izvrsavanju instrukcija usko grlo njihovo preuzi-
manjc iz mcmorije. Da bi se ovaj problem prcvazisao, jos su stari racunari (npr.
IBM-ov Stretch, iz 1959) imali rnogucnost da unapred preuzimaju instrukcije iz me-
morijc, tako da budu pri ruci kacl zatrebaju. lnstrukcijc su cuvane u skupu registara,
nazvanom prirucni bafcr (engl. [Jt"ij"ctch buffer). Na taj nacin se instrukcija (kadaje
to bilo potrebno) brzo mogla ucitati iz prirucnog bafera, umesto da se clugotrajno uci-
tava iz memorije.
Izvrsenje instrukcijc uz prethoclno preuzimanje deli se na dva deJa: preuzimanje i
;tvarnn izvrsavanjc. Ova osnovna stratcgija daljc se razraduje k.roz koncept paralcl-
nc uhradc podataka (engl. umcsto cla se it:vrsenje instrukcije podeli
samo na dva de !a, ono sc cesto deli na dcsetak i vise dclova koji sc na obradu upucuju
u istn toliko namenskih komponenata koje svc mogu raditi istovremeno.
Slika 2-.:J.(a) prikazujc niz od pet koraka obradc. nazvanih i faze ohradc (engl. sta-
ges). U fazi I inslrukcija se preuzima iz mcmorijc u bafer i tamo cuva do upotrebe. U
fazi :2 instrukcija ,-,e clckodira i odreduje se njen tip i potrebni operandi. U 3 ope-
randi "e pronalazc i preuzimaju iz rcgistara ili iz menhlrije. U fazi 4 instrukcija se
stvarno izvrsava, tako sto sc operandi najcesce propustaju putanjom podataka sa slike
:2-:2. Na kraju, u fazi 5 rczultal ;,e upisuje u odgovarajuci registar.
Na slici 2-4-(b) vidimo kako paralelna ohrada podataka racli tokom vremena. Tokom
prvog ciklusa radnog takta. S I radi na instrukciji I prcuzimajuci je iz memorije. To-
korn drugog cik.lusa. S2 dekodira insrruk.ciju I. duk istovremeno S I preuzima instruk-
ciju :2. Tokom treceg ciklusa, SJ preuzima operandc za instrukciju I, S2 clekoclira
insrrukc:iju :2, aS I preuzima trecu instrukciju. Tok.om cetvrtog ciklusa. S-+ izvrsava in-
strukciju I. S3 prCLuirna operande za instrukciju 2, S2 dekodira instrukciju 3. a S I
preuzima instrukciju-1-. Na kraju, tokom petog cikluo;a. faza S5 zapisujc rezultat izvrsa-
vanja instrukcije I. dok ostale faze rade na instrukcijama koje slecle.
60 Poglavlje 2: Organizacija racunarskih sistema
Sl S2 S3 S4 S5
Jedin1ca Jedinica Jedinica Jedinica Jedin1ca
za preuzimanje za dekodiranJe za preu11manje za izvrsavanje za zapisivanje
instrukcija instrukc1ja operanada mstrukcija rezultata
(a)
s 1 QJ IT] []] 0 ITJ ITJ [I] [I] [I]
S2 QJ ITJ [}] 0 ITJ ITJ [I] [}]
S3 QJ ITJ [Ij [Ij ITJ [}] [Ij
S4 QJ ITJ [Ij [Ij ITJ ITJ
S5 QJ IT] [I] 0 ITJ
Time-
(b)
Slika 2-4. (a) Para kina ubrada podawka u pet laza. (b) Sranje wake faze u funkciji vrelllcna.
Prikazanoje dcvcl ciklusa radnog takta.
RazmotritJHl jcdnu analugiju da hi nam paralelna obrada podataka postal a jasnija.
Zamislite fahrik.u u k.ojoj su pecenjc i paknvanje k.eksa razdvojeni. Pretposta-
vimo da odeljenje za pak.ovanje ima dugacak sto s pokretnom trakom duz koje je
rasporedeno pet radnika (jedinice za ohradu). Svakih I 0 s (ciklus radnog taktaL rad-
nik. I stavlja praznu kutiju na traku. Kutija putuje do radnika 2 koji u nju stavlja keks.
Ncsto kasnije kutija sti/c do radnika 3 koji je zatvara i umotava. Kuti)a pu-
tovanje Jo radnika 4 koji na nju lepi etiketu. Na kraju, radnik 5 skida kutiju s trak.c i
stavljajc u veliki kontejncr ;.a isporuku trznom centru. U osnovi, na taj nacin radii pa-
ralelna obraJa pudataka: svaka instrukcija (kcks) prolazi kro1. nekoliko faza obrade
dok se nc dovrsi njeno izvrsavanje.
Vratimo se paralelnoj obradi sa s1ike 2-4 i prelpostavimo da radnog takta
racunara trajc 2 ns; onda c'e za potpunu uhradu jedne im,trukcije u pet faz.a biti po-
trebno 10 ns. Ako il.vrsavanje Jedne instrukcije trajc I 0 ns, mog1o hi nam u prvi mah
izgledati da racunar moze da radi brzinom od 100 M1PS-a, ali on u stvari radi mnogo
brze. Pri svak.om otkucaju radnog takta (2 ns) dovrsava se izvrsavanje jednc nove in-
strukcije. paje stvarna brzina obrade 500 MIPS-a.
Parale1na obrada omoguc'ava kompromis izmec1u vrcmcna potrebnog za izvrsava-
njc instrukcije, tLV. kasnjenja (engl. lotenn) i propusnog opsega pmcesora (engl.
processor bandwidth) izraY.enog u MIPS-ovima. Uz Lrajanje ciklusa od 'T ns in uza-
stopnih faza ohraJe, obrada jedne instrukcije traje nT ns jcr svaka imtrukcija prolazi
kroz n faza, ud kojih svaka trajc- Tns.
Posto po jedna zavrsava izvrsavanje pri svakorn ot"-ucaju radnog takta,
au sckundi ima HP!T otkucaja, broj instrukcija izvr;enih u jcclnoj sekundi jc 10
9
/T
Na primer. ako je T = 2 ns, onda se svake sekunde izvrsava 500 mi1iona instrukcija.
. :;


;
i
..
-
,.
I



2, l Procesori
61
Da biste clobili broj MIPS-ova, podelitc hroj izvrscnih instrukcija u sekundi sa milicn.
sto daje ( 1 0
9
/7) I 10
6
= 1 000/'f Teorijski, brzimt izvrsavanja instrukcip mcg-
li bismo da izrabvamo i BIPS-ovima (milijardama instrukcija u sekundi), ali posto to
niko ne radi, drzacemo se MJPS-ova.
Supcrskalarna arhitektura
Ako jeclna linija para1e1ne obrade radi dobro, dve izvcsno rade jos holjc. Jeclna ,Jd
moguc'ih konstrukcija procesora s dve linije obrade koja po1azi od slike 2-4, prikazana
je na slici 2-5. Zajcdnicka jedinica za preuzimanje prihvata istovremeno par instn;k-
cija i svaku u njenu 1iniju obrade koja sadrzi i sopstvenu aritrneticko-1ogick.u
jedinicu kako hi se omogucila paralelna ohrada. Da bi sc rnogk izvrsavati paralclno.
dve instrukcijc se ne smeju sukohljavati oko rcsmsa ( npr. oko rcgistara) i nijcdncwd
njih ne sme zavisiti od rczu1tata izvrsavanja druge. Kao i u slucaju jednc linijc pau1-
elnc obrade podataka. i ovde prevodi1ac (kompajler) mora garantovati bezhedan rad
(stu znaci da hardver ne proverava i dace dati neispravnc rezultate uko1iko 11-
strukcije nisu meclusohno kompatihi1ne) iii ce ncki dodatni hardver otkrivali i Jt-
klanjati sukobe tokom samog
Iaku se obicnc i1i dHJStruke 1inijc za paralc1nu obradu najcesc'e kmiste u RISC
racunarima (proccsor 3fl6 i njegovi prcthudniLi ill nemaju), lntc1jc L'd proccsora 4:-\6
pocco da uvodi para1dnu ohradu pudataka u procc-sorc. Pnxcs<Jr -J.X(l imajednu
takvu liniju obracle, a prvohitni Pcntium ima dve petufazne linije ubradc koje prit,li-
znurack Llo na :Jici ::::-5, iakoje pndcla pos1a izmcdu faza 2 i 3 (zvani!J
i dekmliranjc-2) kud njega nc;to drugal:iJ'l ncgl' u primcru. Glavna linija ob,a-
de je illlaLt preliks u (engl. II ei;>c!inc) i !lJOg1aJe da billl kuju Pentiumuvu in-
strukciJU. fJruga linija s prcliLnm Y \l'tJgi. l' pijwlinc) mogla JC da i!Vrsi :,anm
jednustavnc in:-.trukcije s cc1im brojevima (i jednu jcdinu instrukciju s brojcvima u
!'ormatu pukn:tnog zarcza- FXCH).
Sl S2 S3 S.J S5
Jedmica rl Jc;,cii11CJ I i 1 I J<edinica
za dekoCira_ n,ie .::a zu_ ;:a upts;vani.e J .
L
I . I
. . '! ! ! .
instrukC!Jn I 11pe; _j IIIStrukcJa j l
j ,Jt:n:n1ca
1 za preiJ?!rlai1J8
I
i I Jedin
1
ca j [ Jed n1c.,
. f-----1 za za
I
I . k . I
_____ __j J 1nstru Gila Oflt:l dlll"!d2
I Jedinica j l j.,dinica
1 Z3 IZVrS:w:nle r--1 Zd
I i!iStrtJ.\CiJi1 1 1
Siiha 2-5. 1 uka lini.ia uhr:ldc 'd jl:dinicllm
za
pr:t\ iia jc- (Jdrc(tivall da ii :.;u dvc in.c.,trukcJje dnvolJno kumpatihil::e da se
mogu Aku instrukc.:iJL' i1. bile dm oljtlll jcdno;,'avne ili su
bile nekompal i nilne. van a je prvii ( u l iniJ i !l ). Drug:t je iciJrLtvana i Uplri-
'. .111" :;a sledc>com instrukcijorn. lnstrukcije uvek i1vrsav:mc pn,o>raJn.;kim rcJ,l,Ie-
dorn. N:1 taj naL:in su prevodioci spcciricnu namcllJL'tlt Pentiumu. kn'l: lonnir:mje
r7
P'!:: '
:;/' I
.,
I
IL
62
Poglavlje 2: ()r-ganizacija racunarskih sistema
kompatibilnih parova instrukcija mogli da generisu izvrsni kod koji se brze izvrsavao
od koda generisanog pomocu starijih prevodilaca. Mercnjima je utvrdcno da jc Penti-
umov optimizovani izvrsni kod bio tacno dvaput brzi za programe koji su radili s celim
brojcvima, od procesora 486 koji je radio na istoj frekvenciji (Pountain, 1993 ).
Povecanje brzine se iskljucivo pripisivalo postojanju druge linijc paralc1ne obrade
podataka.
Prirodan nastavak- paralelan rad s cetiri linijc obrade podataka nije tesko zamisliti
- ali se pokazalo da sc pri tome mora udvostruciti previsc hardverskih komponenata
(racunardzije, za razliku od folklorista, ne veruju u broj tri). Umesto toga, za najsavrse-
nijc proccsore je primenjen drugaciji pristup. Zamisao jc bila da postoji samo jcdna li-
nija obrade, ali da sc u odrcdenim fazama obezbecli vise funkcionalnih jedinica (slika
2-6). Pentium If, na primer. ima takvu strukturu. 0 njemu ccmo govoriti u poglavlju 4.
Za ovakav pristup jc 1987. godine (Agerwala and Cocke, 1987) skovan izraz su-
perskalarna arhitektura (engl. supersca/ar architecture). Njegovi korcni poticu iz
racunara CDC 6600, starog vise od 40 godina. On je preuzimao jeclnu instrukciju na
svakih 100 ns i prosledivao je jednoj od I 0 funkcionalnih jeclinica za paralelno izvrsa-
dok je procesor preuzirnao novu instrukciju.
Izraz ,superskalaran" pojavio se negde u tom cetrdesetogodisnjcm periodu. On sc
danas koristi za proccsore koji u jednom ciklusu radnog takta zadaju vise instrukcija
- najcescc cetiri ili sest. Naravno, superskalarni procesor mora imati isti broj paralel-
nih funkcionalnih jeclinica kojima bi predao instrukcije. Posto superskalarni procesori
najcdce imaju samo jednu liniju obrade, njihova organizacija prilicno lici na onu sa
slike 2-6.
S4
. , __
S5
Jedinica
za zapisivanjr;
rezultilta
Slika 2-6. Superskalarni pmce'or s pet funkcionalnih jedinica.
2.1 Procesori 63
Imajuci u vidu prethodnu definiciju, racunar 6600 ne bismo striktno mogli smatrati
superskalamim jer je njegov procesor zadavao samo jednu instrukciju u jednom
ciklusu radnog takta. Mectutim, efekatjc bio skoro isti: instrukcije su zadavanc mno-
go brzc nego sto bi mogle biti izvrsavane. Mala je razlika izmedu procesora s ciklu-
som ocl 100 ns, koji grupi funkciona1nih jeclinica zaclajejcdnu instrukciju po ciklusu
i procesora s ciklusom od 400 ns koji istoj grupi funkcionalnih jedinica zaclaje cetiri
instrukcije po ciklusu. U oha slucaja instrukcije se zaclaju mnogo brze nego sto mogu
da se izvrse, pri cemu sc opterec'enjc izvrsavanja prebacuje na skup paralclno vezanih
funkcionalnih jedinica.
Za koncepciju superskalarnog proccsora karakteristicno je to sto faza S3 mo/.e cia
zadaje instrukcije znatno brzc, ncgo sto faz.a S4 moze da i h obradi. Ako bi faza S3
zadavala po jeclnu instrukciju na svakih 1 () ns, a svc funkcionalne jedinicc bile u
stanju cia svoj posao obavc takode za 10 ns. nikada istovrcmcno ne hi bilo upos1jcno
vise jedinica. pa bi citava ideja izgubila smisao. u stvarnosti, funkcionalne jedinice iz
faze 4 uglavnorn nc mogu cla obavc svoj posao u jed nom ciklusu radnog takta, naroci-
to ne one koje pristupaju mcmoriji ili one koje rade s hrnjevima u formatll pokrctnog
zareza. Kao stu vidite na slici. faJ:a S4 mozc imati vise aritmcticko-logickihjcdinica.
2.1.6 Paralelizam na nivou proccsora
Izgkda da zahtevi za sve brzim racunarima nikada ncce hiti potpuno 7.adovoljeni.
Astronomi zcle da simuliraju dogadajc u prvoj mikrosekundi posle Velikog praska.
ekonomisti uporno hoce da modeluju globalnu ekonomiju, a tincjclzeri zele da prcko In-
terneta igraju intcraktivne 3D igrice sa svojim virtuelnim prijatcljima. lako procesori
postaju sve br?.i. ipak nccc rnoci da prcvazidu ograniccnjc koje postavlja hrzina svetlo-
Stl, a to je 20 ll bakarnoj zici ili oplickom kablu- bcz obz.ira na kreativnost In-
tdovih inzenjera. Br/i cipovi proizvodc i vise toplote kojujc svc te/e odvcsti.
Paralclizam na nivou instrukcija je od izvcsnc pomoci, ali sc s paralclnom ohra-
clom podataka i supersk.alarnim radom retk.o postii:u ubrzanja veca od pctostrukih ili
desett>c,trukih. Da hi postiglo ubr;anje ocl pedesct. sto iii vise puta. jedino rdenje
jc pravljenje racunara s vise pnJCCStJra, pa ccmu se sada osvrnuti i na takve racunare .
Rarunske opcracijc nad matricama
l'vlcttu prohlcmima iz oblasti li7.ickih nauka i inzcnjLTStva znatan bruj otpada na
matricc ili na neki drugi vid visnkourcdcnc strukture podataka. (:estu sc ista vrsta
proral:una istovremeno izvudi ' mnogo skupova podataka. R.egularnost slrukturc ovih
programa cini ih posebm> pogodnim J:a ubrzavanje kroz paralclnu iJ:vrsavanje. Zasad
se zna za dve mct<Jdc ko_1c su J:a brzo izvrsavanjL' naucnih programa. lako
su one sliCne. svojcnsna je ironija da sc jedna smatra samo unaprcdenjcm procesora.
dok se druga smatra kvalitativnim prelazom na paralelno racunanjc.
l\latricni proccsor (engl. armv JlTOU:.I.\Or) sastoji sc od velikog broja idcnticnih
pruccsora koji isti niL instrukcija iLvrsavaju s razlicitim skupovima podataka. Prvi ma-
tricni pruccs<Jr radio je u racunaru ILLIAC LV na Univerzitctu u llinoisu (slika 2-7)

;; l
64 Poglavlje 2: Organizacija racunarskih sistema
(Bouknight ct al., 1972). Plan je bio da se napravi racunar sa cctiri kvadranta. od kojih
bi svaki imao kvadratnu matricu sa X x 8 proccsorsko-memorijskih clemenata. Trebalo
je da upravljacka jedinica, jedinstvena za svaki kvadrant, emituje instrukcije kojc
sinhrono izvrsavaju svi proccsori- svaki sa sopstvcnirn podacima i pomocu sopstvene
memorije (koja se popunjava podaeirna tokom faze inicijalizovanja). Ovakva k<m-
strukcija. kojajasno odstupa od standardnog Von Neumannovog racunara. ponckad se
naziva SIMD pruccsor (engl. Singll' bts/ruction-.ltrewn l'vlultiple Duwstrewn, jedan
tok instrukeija- tokova podataka). Zahvaljujuci tome sto je budZet za ovaj proje-
kat ,.prohijcn", izgraden je samo jedan kvadrant, ali je on postigao brzinu rada od 50
megat1opsa (miliona operacija s brojevima u ronnatu pokretnog zareza u sek.undi). U to
vreme navodilo da bi takav racunar, da jc dovrsen. postigao projektovanu hrzinu od
jednog gigal1opsa i time udvostrucio racunarsku snagu eclog sveta.
Procesor
1\ilemorija
Control unit
Emitovane mstrukc1je
ElElElElE3ElE3El
ElElElE3E3E3E3E3
ElElElElE3ElE3El
E3ElElE3E3E3E3El
1\ilatnca sa 8 x 8
EJ EJ EJ E3 E3 E3 E3 EJ procesorsko-memoriJskih elemenata
.. El El El E3 El E3 E3
ElElElE3E3E3E3Ell
El El El E3 E3 El E3 EJJ
Slika 2-7. MatriCni proccsor tipa ll.I.L-\C IV.
Vcktorski proccsor (engl. vector processor) programeru hi veoma licio na matric-
ni proccsor. Kao i matricni procesori i on vrlo hrzo niz operaeija s pamm
zadatih podataka. !paL za razliku od matricnog proccsora. u njemu se sve operacije
sabiranja izvrsavaju ujedinstvenom sahiracu koji obradu obavlja paralclno. Cray Re-
search. kompanija koju je osnovao Seymour Cray, proizvela je brojne vektorskc pro-
cesorc. pocev od procesora Cray-1 iz davne 197..J.. godine. pa sve do danasnjih modela
\ Cray Research je dan as cleo kompanije SCI I).
Matricni i vektorski procesori rade s matricama podatak.a. Oni izvrsavaju samo jecl-
nu instrukciju (na primer. sabiraju odgovarajuc'e clemente dva vektoraJ. Dok matricni
proeesor to radi tako sto ima onoliko sahiraca koliko i elemenata u vektoru, vektorski
pmcesor koristi koncept vektorskog rcgistra (engl. l'ector register); on se sastoji od
skupa uobicajenih u koje se sadrzaj iz memorije moze ucitatijcdnom instruk-
ciJom ( sadr:l.aJ memorije se u registre ucita\a ). Posle toga, instrukcija za sa-
biranje vektora sahira odgovarajuce elcmcnte zadatih vektora, propustajuc'i ih iz dva
2.1 Procesori
65
vektnrska registra kroz sabirac koji obavlja paralelnu ohradu. Rezultat 'ahiranja je ta-
kmle vektor koji se rnoze smestiti u vektursk.i regislar iii neposredno upotrcbiti kco
operand u sledecoj vektorskoj operaeiji.
Iako se veklorski procesori trcnutno ne pmi?vodc. nikakn nisu prcpusteni zabon-
vu. Njihov model izvrsavanja koristi :;e kocl MMX i SSE in,trukeija kojc postoje r.a
Pcntiumu 4 da hi sc uhrzao multimcdijski softver. Zato mo/emo smatrati da je raca-
nar JLLIAC IV u ovom pogledu jedan od prcdaka Pentiuma 4.
Multiprocesori
Procesori koji ohraduju podatkc u malricnom procesoru nisu jcr njima
komanduje jedinstvena upravljacka jcdinica. Prv i paralelni sistem s vise proeesora je
multiproccsm (engl. multiprocessor)- sistem s vise procemra kPji dele zajeclnictu
rnemoriju, slicno grupi daka kuji u uCionici koriste istu tablu. Posto svaki proccs)r
mozc da cita sadr?.aj memorije i cla u nju upisuje podatke, oni (softversk.i) mora1u
medusobno koordinirati svuj rad da ne bi omctali jedan drugoga. Kada dva iii vise
procesora mogu mcdusobno blisko da .saraduju, kao u slucaju rnultiprocesora, ka/.>
mo da su tcsno povezani.
Po;,toji vise nacina rcalizacijc rada. Najjcdnustavnijc rdenjc je
da su svi proccsori i memorija za zajcdnick.u magi.'-.tralu. Sema takvog mul i-
prucesora prika1.anaje na slici 2-X(a).
Nije tcsko shvatiti dace nekuliko brzih procesura k.oji istllvrcmenn
pristupc memoriji preko iste magistrale. nei1bdno dmesti dn sukoba. Zato su projek-
tanti multiproccsura predlo/ili hrojne nacine za sukohljavanja i poboj-
_:;anJC petforman-.;i. Premajednom od njih slika 2-X(b) -s\ak.i procesur ima i supstVclll
lllcllhJriju koja nijc:: dostupna Jrugim pn>cesorima. Ona 'e mu.l.e kc>ri,titi !'a prugr,un,ki
kod i p.Jdatke koji nisu namc::njeni ;_a delJCI1JC. Toj privauwj mcmoriji o.;e nc pri:;luxt
preko glavne magi'-lraie. stu umnof'Ollle sm,miuje njcnu oplerecenjc. hhtojl' i dngi
i npr. kcsiranje).
Loka!ne mernorije

DeiJena
ll , 0
1

II 9 Dm,o
,--LJ--, l I , I rn ''ll'J lo
I
'AVl I Nllll,)
p-;E !POII'"'I 1-"!l-c'

1
I l____j L___i ---
ivlJrjistula iVlog1str a a
!a) ib)
Slik,t 2-X. 1,\) jc:dinst':cr:o1n ib) 1\lu!tirc\cunar
-; luka!:liJl1

']'
i
66
Poglavlje 2: Organizacija racunarskih sistema
Multiproccsori su u prednosti nad drugim vrstama paralelnih racunara jer se uz
jedinstvenu rnemoriju koju deli vise procesora lako programski radi.
Zamislite, na primer, program koji trazi celijc raka na fotografiji nekog tkiva
snimljenog kroz mikroskop. Digitalizovana fotogratija sc moze cuvati u zajcdnickoj
memoriji, pri cemu se svakom proccsoru moze dati zadatak da pretrazujc samo jedan
njen manji deo. Posto svaki procesor irna pristup celoj mernoriji, nije problem analizi-
rati celijc koje presecaju granice dodeljenih oblasti prctra?.ivanja.
Multiracunari
Iako sc multiprocesori sa umcrcnim brojem proccsora (256) srazmcmo lako pravc,
vece multiprocesore jc zacudujuce tesko konstruisati. Tdkocu stvara povczi vanje svih
proccsora s mcmorijom. Da bi izbegli ovakvc probleme, rnnogi projcktanti su napustili
ideju o zajednickoj memoriji i poceli su da prave sistcmc koji se sastoje ocl vclikog bro-
ja mcdusohno povczanih racunara s njihovim mcmorijama, ali bez zajcdnicke memo-
rije. Takvi sislemi su nazvani multiracunari (engl. multicomputers). Za procesore
multiracunara ponckacl se kaze da su labavo povezani, da bi sc napravila razlika s tc-
snopovezanim procesorima multiproccsora.
Proccsori unutar multiracunara medusobno komuniciraju slanjcm poruka- nesto
slicno elektronskoj posti, samo mnogo brze. Posto veliki sistcmi u kojima jc svaki
racunar pove;:an s drugim racunarima nisu prakticni. koristc se topologijc 2D i 3D re-
sctaka, lopologijc stabla, prstcna i dr. Zbng toga poruka koja se salje nekom drugom
racunaru cesto mora da prode kroz jcdan iii vise posrednika (racunara, skrctnica)
kako bi od izvnrisla stigla do svog odredista. Ipak, hcz tc;koca se moz.c postici da po-
ruka na odrediste stigne za nckoliko mikrosekundi. Do 'ada su pravljcni multiracu-
nari i sa desctak hiljada pojedinacnih proccsnra u'pesno su radili.
Posto sc multiprocesori laksc programiraju, a multiracunari laksc prave, mnogo sc
razmisljalo o hibridnim sistemima koji bi objedinjavali dohrc strane i jednih i drugih.
Takvi racunari poku;avaju da (spoljnom svetu) stvorc iluziju kako imaju dcljenu me-
moriju- posto je nema.Ju,jcl"tiniji su. U poglavlju 8 dctaljnu ccmu sc pozabaviti mul-
liprocesorima i multiracunarima.
2.2 OSNOVNA l\IEIVIORIJA
l\lcmorija (engl. lllelllorr) deo je racunara u kome seem aju pn>grami i podaci. Ncki
strucnjaci ( naroCi to 13 ritanci) korislc izraz skladistc (engl. store, 1/orage ), mad a se nj imc
sve ccscc o;.nabva na disku. Bez memorijc iz kojc proccsor moze da ucita in-
formacije ida ih 1.apise u n.Ju, ne hi bilo ni racunara sa uskladistenim programima.
2.2.1 Bitovi
Osnovna jedinica raC,unarske mcmorijc je binarna cifra, zvana hit. Bit mozc da
bude 0 iii I. To najjcdnostavnija moguca jedinica. iUredaj koji bi mogao cia skla-
disti sanm nule nc bi mogao da bucle osnova za sistcm memorijc; t.a lakav sistem su
potrcbne harem dvc vrcdnosti.)
2.2 Osnovna memorija
67
Cesto cujete da racunari koriste binarnu aritmetiku jer je ona .,etikasna". Ono sto
se pod tim podrazumeva (ali su korisnici toga retko svesni) jcstc da se digitalna infor-
macija moze uskladistiti tako sto se neka neprekidna tizicka velicina (npr. napon iii
jacina strujc), ,razbija" na niz uzastopnih pojedinacnih vrcdnosti. Sto je vee'i broj
vrednosti na koje trcba razbiti velicinu, one sc manje medu sobom razlikuju i mcmo-
rija postaje sve nepouzdanija. Binarni brojni sistem razlikuje samo dve vrcdnosti.
Prema tome, on predstavlja najpouzdaniji nacin za zapisivanje digitalnih informacija.
Ako niste dovoljno upoznati s binarnim sistcmom brojeva, pogledajtc dodatak A.
Neki racunari, poput velikih central nih IBM-ovih racunara, mogu da racunaju i bi-
namo i decimal no. Taj trik sc izvodi pornocu 4 bita za smdtanje jedne decimalne cifrc
prema tzv. semi BCD (engl. Binury Coded Decimal, binarno kocliranc dccimalne ci-
frc). Od cctiri bita moze se napraviti 16 kombinacija, od kojih se I 0 koristi za oznaca-
vanjc decimalnih cifara 0 do 9, dok se sest kombinacija ne koristi. U nastavku je
prikazan broj 1944, kodiran pomocu BCD scme i ispisan u binarnom sistemu, u oba
slucaja sa 16 bitova:
BCD-decimalno: 0001 1001 0100 0100 binarno: 0000011110011000
Pomocu sesnaest bitova u decimalnom BCD formatu mogu sc prcdstaviti brojevi
od 0 do 9999 (sa samo l 0.000 kombinacija), dok 16-bitni binarni broj moze da prikaze
65.536 razlicitih kombinacija. Zato kaze daje rad u binarnom sistcmu etikasniji.
Medutirn, razmotrite sta bi se dogodilo kada hi neki briljantan mladi clcktroinzenjcr
smislio visokopouzdani clcktronski urcdaj koji bi dircktno mogao da skladisti cifre od
0 do 9 tako sto bi interval od 0 do I 0 volti izdelio na I 0 podintcrvala. C:ctiri takva
urcdaja mogla bi da uskladiste bilo koji broj izmedu 0 i 9999, ijos bi omogucili posto-
janje I 0.000 komhinacija. Oni bi mogli da skladistc i binarne brojevc, koristeei samo
nule i jcdinicc, i u tom slucaju bi cetiri takva urcdaja mogla da usklacliste 16 kornhina-
cija. Kada bi takvi urectaji postojali, decimalni sistem bi ociglcdno bio cflkasniji.
2.2.2 Memorijske adrese
Memorija se sastoji od velikog broja celija iii lokacija. od kojih svaka moze da
sacuva de lie informacije. Svakuj ccliji jc pridruzen broj, nazvan ad1esa: pomocu njc
programi mogu da pronadu datu c'eliju. Ako mcmorija ima n celija, njihove adrese ce
biti brojcvi od () du II - I. Svc cclije Ll memoriji sadrze isti broj bitova. Ako sc celija
sastoji od k bitova, ona mozc da cuva bilo koju od 2A kombinacija bitova. Slika 2-9
prikazuje tri ra;.licita nacina organizovanja 96-bitnc memorije. lrnaJIC na umu da su-
sedne cclijc imaju (po deflniciji 1 uzastopne adresc.
Racunari koji koriste binarni hrojni sistern (takodc u njihovom oktalnom iii heksa-
dccimalnom zapisu) izrazavaju memorijske adrese u obliku binarnih brojcva. Ako
sadrzi 111 hitova. maksimalan broj celija koje sc mogu adresirati je 2'"- Na pri-
mer. za adresu memorije na slici 2-l)(a) potrehna su najmanje 4 bita da hi sc i;:razili svi
brojevi od 0 do II. Za mcmorije na slikama 2-9(b) i (c) clovoljnaje i 3-bitna adresa.
Broj bituva adrcse odrcduje maksimalan broj celija memorije kojc sc mogu direktno

' . --'- ._ I
'
: I
!
68 Poglavljc ::!: Organizacija ral'unarskih sistema
aclresirati i nezavisan je od broja hitova po c'eliji. I 1a memoriju sa 2
12
eel ija od po hi-
tova i za memoriju sa 2
12
c'elip od po 64 bita. ncophmlno je koristiti 1:?.-bilne adrese.
Adresa Adresa Jedna celija
,--- --"-
o I I I I I I I I o I I I I I I TDTTD
11 I I I I I I I 1 I I I I I I I I I I I I
21 I I I I I I I 2 I I I I I I I I I I I I
31 I I I I I I I 3 I I I I I I I I I I I
41 I I I I I I I 4 I I I I I I I I I I I
5 I I I I I I I I I 5 I I I I I I I I I I I I
Bl I I I I I I I I Bl I I I I I I I I I I I
1 I I I I I I I I I 11 I I I I I I I I I I I
s I I I I I I I I I - --- 12 bitova -
9 [T I T I 1-I I l
10 I I I I I I I I I
111 I I I I I I I I
- 8 IJrtOVil --
(a)
(b)
Adresa
ol I I I I I Ill iII liTO
11 I I I I I I I I I I I I I I I I
21 I I I I I I I I I I I I I I I I
31 I I I I I I I I I I I I I I I I
41 I I I I I I I I I I I I I I I I
51 I I I I I I I I I I I I I I I I
-16 brtova- ----
lei
Slika 2-9. Tri 96-bltilc !11Cinorijc.
Broj pn ccliji za neke komncijalne racurnre prikcu:mje na sliei 2-10.
Racunar
B 17000
IBM PC
DEC PDP-8
IBM 1130
DEC PDP-15
XDS 940
: Eiectrclog:ca X8
Broj bitova po celiji
3
12
16
18
2-1
' -
2"7
--- -- -------,-------------------- ---:
! XDS S,qrra 9 i 32 ___j
_
: CiY.:, 3clJO 4d
60
Siika 2-10. Bn)j p() ,:,.'hJi i:t
Dtnim!_ji\L' 1-._,)JlLTLij:;inc
I
I
1
-


I
I

s
2.2 Osnovna mcmorija
69
Ce1ija je zato sto predstavlja najmanju jec!inicu koja se moze adresirati.
Protek.lih godina skoro svi proizvodaci racunara slo:l.ili su se da se usvoji celija,
kojaje nazvana bajt (engl. byte). Bajtovi se grupisu u (racunarske) rcci (engl. words!.
Racunar s 32-bitnim recirna ima 4 bajta po reci, dok racunar sa 64-bitnim recima ima
8 bajtova po reci. Reci SLI hitne zato sto vecina instrukcija radi sa celim reCima (na pri-
mer. sabira dve reci). Tako c'e 32-bitni racunar irnati 32-bitne rcgistre i instrukcije za
ratl sa 32-bitnim recima, dok c'e 64-bitni racunar imati 64-bitne registre i instrukcije za
premcstanje, sabiranje, oduzimanje i drugo rnanipulisanjc 64-bitnim recima.
2.2.3 Postrojavanje bajtova
Bajtovi se u reci mogu brojati sleva udcsno ili zdesna ulevo. U prvi mah se moze
uCiniti daje ovaj reclosled ncvabn, ali on, kako cemo viddi, ima dalekosdne pos1e-
dice. Slika 2-ll(a) pribzujc deo mcmorije 32-bitnog racunara ciji se bajtovi broje
sleva udesno, kao u SPARC-u iii u velikim centralnim IBM-ovim racunarima. Slika
2-ll(b) prikazuje den memorije 32-bitnog racunara u kome se bajtovi broje zdesna
ulevo, kao s!D je to s1ucaj u lntelovoj porodici racunara. Racunari koji koriste prvi si-
stem, gde brojanjc pocinje s ,velikog kraja'" (engl. big end), tj. od najznacajnijeg
oajta. dobijaju alribut big endian. za razliku ocl little cndian racunara na slici
2-11 (b). Ovc poma1o cuclne termine dugujemo Gu!il'l'rovim f!lllOVUI1jima Dzonatana
Svifta gde su ismcjani roliticari koj i su zapoceli pravi rat zbog prepirke da li kuvano
jajc trcba razbiti s vrba (little end) iii sa sotke (big end). lzrazc je u okviru racunarske
arhitekture prvi put upotrebiu Cohen, u svom nadabnutom c1anku iz I.
Adresa Big endian
Little endran Adresa
0 1 2 3 3 2 1 0 0
4 5 6 7 7 6 5 4 4
8 9 10 11 11 10 9 8
12 12 13 14 15 15 14 13 12 12
Ba}t BaJt
---- 32-bitna rec 32-bitna rec
Ia)
(b)
Slika .!-I I. (aJ :'vlcmorija tipa .. hig cndian". thl :Vkmorija tipa .. little cndian.
Trcba rcl!umeti cia je u oba sistema 32-bitni ceo broj. recirno broj 6, predstavljen
bitOVII11<t 11() na dCSl10111 (najmanje znacajn<llll) kraju reci, dok 11Ule popunjavaju
preostalih 29 bitova ulevo. u semi .. big end ian" bito\ i ll () su u bajru 3 (ili ll bajtu 7,
ll itd.), dc1k su u semi . .little endian oni u bajtu 0 (iii u hajru 4, itd.). Rec koja sadrzi
uvaj hruj. u oba slu(aja ima adresu 0 (iii 4, itd.).
-
I :
I: i
I

70
Poglavlje 2: Organizacija racunarskih sistema
Kada bi racunari skladistili samo cele brojcve, ne bi bilo nikakvih problema. Meuu-
tim, u mnogim aplikacijama koristi se mesavina cclih brojeva, znakovnih nizova i dru-
gih tipova podataka. Zamislitc, na primer, jcdnostavan ,karton" zaposlenog u komc su
zapisani znakovni niz (imc zaposlenog) i dva cela broja (starost i broj odcljcnja). Zna-
kovni niz se nulama dopunjava do cele reCi. Memorijski zapis za 21-godisnjeg Jima
Smitha koji radi u odeljenju 260 ( 1 X 256 + 4 = 260) po semi ,big endian" prikazan je
na slici 2-2(a), a po semi ,little endian" na slici 2-l2(b).
Svaki od dva prikaza izglccla skladno i u redu. Prohlemi nastaju onda kada jedan
od ova dva racunara pokusa da posaljc zapis preko mreze drugom racunaru. Prctpo-
stavimo da .,big endian" racunar svom . .little endian" kolegi salje zapis bajt po hajt,
pocevsi od bajta 0 i zavrsavajuci s bajtom I 9. ( Bil'emo optimisti i prctpostaviti da se
bitovi u bajtu nece menjati tokom prenosa jer ionako imamo pre vise problema.) Tako
ce bajt 0 s ,big endian" racunara stiCi u bajt 0 memorije ,little cndian" racunara itd ..
kao sto jc prikazano na sl ici 2-12( c).
Kacla ,little enclian' racunar pokusa da odstampa imc. hice sve u redu. alice za sta-
rost dohiti 21 x 2
24
godine i nemoguc hroj odeljcnja. Ova situacija nastaje jer jt: to-
kom prenosa obrnut redosled znakova u reci (kao sto treba da hude ), ali je izvrnut i
redosled hajtova u celom broju (;tone treba da se dogodi).
OCigledno je da treba imari softver koji ce obrnuri redoslecl bajrova u rcci vee na-
pravljene kopije poruke. Rezultat je prikazan na slici 2-12( d) gde viclimo da je sve u
rcdu se rice hrojeva. ali se znakovni niz prel vara u .J'v1IJTIMS, clok ,Ir ostaje da
visi. Ovo se dogada zato sto racunar pno cita bajt 0 (razmak), 1.atim bajr 1 (MJ itd.
Big endtan Little endian
j I M M I j
4 s M I T T I M s 4
H 0 0 0 ' 0 0 0 H
Prenos zapisa s .. big endian
na .. little endian" racunar
M I j
T I M s
0 0 0 H
j
s
H
Pre nos
i obrtanJe
I M
M I T 4
0 0 0
12
16
0
0
0
0
0 21 ;
1
4 I
0 0 0
I o
0 1
21
4
12
16
21 0 0 0
4 1 0 0
0 0 0
o 1 o
1
21
4
12
16
(a) (b) (c) (d)
Slika 2-12. (at Kart:>n l:lfl'"lc:no!' na .. hi!' cndian r'tl'unaru. I hi hti k.trtnn na ,.litt!e endian"
rac'unaru ICI Ro.ulial fJIL'llu,cnja ;api"t s .. cndi,uf' racun,tra na .. little cndian"' LtCunar. (d)
Rezultat ohtanja redusleda hallO\a (ct.
Za on1 situaciju ncnujednostavnug resenja. Jedno provereno i ncdiLtsno
jc da se ispred svaktlg pndatka stavi ;aglavlje sa uhjasnjenjem kuji tip pulbtaka sledi
(znakovni ni1. ceo hroj iii nesto drugo) i kolika mu je duzina. S.tl11<) tako bi racunar
primalac llhlgao tacno da obavi sva potrehna U wakeom slucaju. nadamo
se da smo dovol.Jno istakli cinjenicu da neprhtojanje standarda za rcdosled hajrova
p1nbtavlja glavnu prepreku za podataka izmeuu razlicitih racunara.
2.2 Osnovna memorija 71
2.2.4 Kodovi za ispravljanje gresaka
Racunarske memorije su povremeno podlo:i:ne greskama izazvanim strujnim udari-
ma u mrezi i drugim uzrocima. Za zasritu od takvih gresaka neke memorije korisre rzv.
kodovc za otkrivanje, oclnosno za ispravljanje gresaka. pri cemu svaka memorijska rec
Jobija dodatne bitovc Cija se vrednost formira na specijalan nacin. Kada se rec cita iz
memorije, dodatni hitovi se proveravaju kako hi se utvrdilo cia li je sadr:laj memorije
ispravan.
Da biste razumeli kako se grdka moze ispraviri, neophodno je da shvarire sra je
zapravo greska. Pretpostavimo da se mcmorijska rec sastoji od m hitova podaraka ko-
jima cemo clodati jos r birova koji iskljucivo sluze za proveru. Neka ukupna duzina
reci bude n (tj. n = m + r) bitova. Jcdinica od n hitova koja sadrzi m bitova podataka
i r bitova za proveru, cesto sc naziva n-bitna kodna rcc (engl. codeword).
Ako imamo dve koclne reci, recimo 10001001 i 10110001, uvek mozemo da utvr-
dimo koliko se odgovarajucih bitova u njima meuusohno razlikuje. U ovom slucaju
razlikuju se 3 bita. Kada zelirc da utvrdite koliko se hitova razlikuje, na dve kodnc
rcci treba primeniti logicku iskljucivu disjunkciju (XOR) i prehrojatijcdinice u renii-
tatu. Broj uparenih bitova po kojima se razlikuju dve kodne reci zove se Hammingo-
vo rastojanje (engl. Hamming dislunce)- Hamming. I 950. Ovaj pojam je znacajan
jer na osnovu njega shvatamo cia se dve kodne reci izmedu kojih je I-lammingovo ra-
stojanje d mogu izjednaciti poslc d jednobitnih gresaka. Na primer, izmedu kodnih
reci I III 000 I i 00 II 0000 I-lammingovo je rastojanje 3 jer se sarno ponmcu tri jedno-
bitnc greske prva rec moze poklopiti s drugom.
U m-birnoj memorijskoj reci mogu se koristiti sve 2
111
komhinacije bitova. ali zbog
nacina na koji se izracunavaju kontrolni hitovi, od 2" kodnih reci ispravno jc samo 2
111

Ako ucita neispravnu kodnu rec, racunar zna daje nastala greska u memoriji. Pod pret-
postavkom da je poznat algoritam za izracunavanje kontrolnih hitova, moguce je sa-
staviti polpunu lisru ispravnih kodnih reci ill njoj pronaci dve kodne reci izmectu kojih
JC Hammingovo raslojanje minimalno. To je 1-lammingovu rastojanje celog koda.
Spnsobnost koda da otkrije i ispravi gresku zavisi od njegovog Hammingovog
rastojanja. Da bislc otkrili d jednobitnih gresaka, potrehan vam je kod s rastojanjem
d + I jer se raJa ne moze desiti dad jednohirnih gresaka izmene ispravnu kodnu rec
u drugu ispravnu kodnu rec. Slicno tome. da histe ispravili d jednobitnih grdaka, po-
treban vam jc kr)d s rastojanjcm 2 d + I jer su na raj nacin ispravne kodne reci toliko
medusobno udaljene cia je cak i posle d promena prvohitna kodna rcc bliza originalu
nego hilo kojoj drugoj kodnoj reci, pa 'e nwze nedvosmisleno prunaci.
Razmotrite 'ada primer jednostavnog koda za otkrivanje gresaka koji podacima
dodaje jedan bit pamosti (engl. pori!\' hi!). Bit parnosti se hira tako da hroj jedinit:a
u kodnoJ reci bude paran (iii neparan). Takav kCld ima rastojanje 2, posto svaka jed-
nohitna grdka proizvmli kodnu rec pogre'ine parnosri. Drugim recima, potrebne su
dve jednohirne grdke da bi se od jedne ispravne koclne reci dobila druga. Ovaj k6d se
moze upotrebiti t.a orkrivanje pojeclinacnih gresaka. Kat! god se iz memorije ucita rec
pogresne parnosti, signalizira se greska. Program ne moze da ispravi gresku. pa se tu
t.austavlja. ali se barem ne inacunava pogre'ian rendtat.

I
'
!
72 Poglavlje 2: Organizacija racunarskih sistema
Kao primer jednostavnog koda za ispravljanje gresaka razmotrite kod sa sarno ce-
tiri ispravne kodne reci:
0000000000,0000011111,1111100000 i 1111111111
Ovaj kod ima 5, sto znaci da mole da ispravlja dvostruke grdke. Ukoli-
ko dobije kodnu rec 0000000111' prim alae zna da je originalna kodna rec hila
0000011111 (ako je nastala samo dvostruka greska). lpak, ako trostruka grcska pro-
meni rcc 0000000000 u rec 0000000 Ill, greska se nc moze ispraviti.
Prctpostavitc da pravimo kod sa m hitova podataka i r kontrolnih hitova koji ce
dozvoljavati ispravljanje jednobitnih gresaka. Svaka od 2'" ispravnih memorijskih
reci ima n ncispravnih kodnih rcci na rastojanju 1. One se dobijaju sistematskim
obrtanjcm svakog od n hitova u n-bitnoj kodnoj reei napravljcnuj od nje. Tako za sva-
ku od 2
111
ispravnih mcmorijskih reci postoji I! + 1 rasporcda hitova (L:a n mogucih
grcsaka i jcdnu ispravnu rec). Pus to je ukupan broj rasporccla hit ova 2", morarno irnati
(n + I )2'" <::: 2
11
rasporcda. Uz 11 = 111 + r uvaj zahtev (In+ r + I) <::: 2'". Ako jc
zadato 111, postavlja sc donja granica broja kuntrnlnih bitova potrebnih za ispravljanje
jednostrukih gresaka. Slika 2-IJ prikazuje broj kontrolnih bitova putrcbnih za pw-
vcru men1orijskih rcci razlicite velicine.
Duzina reci Broj kontrolnih bitova Ukupna duzina Procenat povecanja duzine
8
i
4 12 50
16
l
5 21 31
I
32 6 38 19
I
64 7 71 11
I
128 8 136 6
256
-- ,t
9 255 4
512 10 522 2
Slika 2-U. Broj l-..11lruinih bit<J\a J..,HJa 1--<lji moLe cia i.-pravJ jcdnlOilllLI grci,ku.
Ova tcurij.-;Lt granica moze sc pt1Stici illdlXll1111 k.oju jc Sl\ orin H.ichard
Hamming I I lJ)()J. Pre negD pr..:Licmo na ()bjasnjavanjc l-lamrningovog algnritma.
poglcdajmo jcdnustavan gra!ick.i prik.az koji J.,:,)d za gr..:';r-
ka u 4-bttnim re.:ima. dijagramna slici 2-l4taJ sadrzi tri k.ruga: A. 8 i C. J...;;ji
zajcdno dctinisu scdam oblasti. Primera r,tdi. memorijsk1.1 n:c ! l ()(l
u oblastima -'1/J. :\!3C, ;\C i BC, sme;tajuci pn jcd;rn bitu svakti nblast (abcccdnim rc-
dnnll. Kodir;lll]c' je pnk:uano na slici 2-14(a).
Dodajmn hil1Xlnll
1
,tl -;vakuj od ui pr;t/J1l' obl;tsti da bismo dohili rarnu-;t Lro !LI -;li-
ci 2-14(!)). Sadajc' p<) Jt:tiniciji ;:bir hiklVa u '\ akum ml tri krug;r (i\, B i C! paun b;,,j.
U krugu. I imanw L'eti;i broja: 0. U. I i I, ciji je zhir 2 idakle. paEm hrujl. L' krngu B
Sll bruje\ i l, 1. u i 0. c"iji .JC zbir takudc 2. NajLad, Ll krugu c imamo istu
LJ <l\om primcru se dc:-;ilu da '>Ll ,., i krugu'.'i isti, ali ti drugim slucajevima ;.hir mu/.c
biti i 0. od!lUO,ihJ ..J.. Slib udgovara kodnoj reci sa 4 bita P<'datak.t i 3 hila parnnsti.

11


'
;

'
if
.,J;t;,
1
':1.""
,.
.


.
2.2 Osnovna memorija 73
Pretpustavimu sada da je nastala greska u oblasti AC i da je bit u njoj promenio
vreclnost od 0 u I, kao na slici 2-14(c). Racunar sada vidi da krugovi A i C imaju pJ-
grdinu parnost (ncparan broj). Jeclinajednobitna promena koja to moze da ispravije-
ste cla hit u oblasti AC ponovo dobije vrcclnost 0, cime se ispravlja nastala greska. Na
taj nacin, racunar mozc automatski de; ispravljajednobitne grcske u memoriji.
A
A
c
B B
(a) (b)
Bitovi
parnosti
A
B
c
(c)
Slika 2-14. (a) Kodiranj.: reci llOO. (bJ Dudati bitovi parnosti. lcJ Grdka u ubh,ti AC.
Pogledajmo sada kako se Hammingov algoritam mozc upotrebiti za pravljcnjc
kocla za ispravljanjc grcsaka u mcmorijskirn recima bilo koje velicinc. U HarnminfO-
vmn kodu se r bitova pamosti dodaje m-bitnoj rcci i tako sc dobija nova rcc duzinc
m + r hitova. 13itovi se numerisu ne od nultog, vee od prvog, pri cemuje na levom ka-
ju pn i bit ( naj;nacajniji ). Svi bitovi ciji jc redni broj stcpen broja 2 jcsu bitovi pan o-
sti: O'>lali bitovi se koriste za podatke. Na primer. 16-bitnoj reci sc dodaje 5 bitcva
parnusti. Bitovi s rednim brojevima I. 2, 4, 8 i 16jesu bitovi parnosti, a svi ostalisu
bitovi podataka. Memorijska rec ima ukupno 21 bit ( 16 bitova podataka i 5 bitcva
parnosti). LJ ovom primeru cemu se (proizvoljno) oprccleliti za to da bit parnosti Jo-
punpva zbir do parnog broja.
Svaki bit parnosti proverava bitove na specificnim poz.icijama: bit parnosti se pu-
stavlja lako da ukupan broj jedinica na specificnim pozicijama bude paran. Pojedin;tc-
lli bitovi parnosti proveravaju slcdece pozicije:
B1t 1 proverava bitove 1, 3, 5, 7. 9, 11, 13, 15, 17. 19, 21.
f3it 2 proverava bitove 2, 3, 6, 7, 10, 11, 14, 15. 18, 19.
Bit 4 proverava bitove 4, 5, 6. 7, 12, 13, 14, 15, 20, 21.
Bit 8 proverava bitove 8, 9, 10, 11, 12, 13, 14, 15.
Bit 16 proverava bitove 16, 17, 18, 19, 20. 21.
Po pravilu, bit b provcravaju bitovi b
1
h
2
... , b) tako da bude b
1
+ b
2
+ ... + b
1
= b.
Na primer, bit 5 provcravaju bitovi l i 4 zato stu je I + 4 = 5. Bit 6 proveravaju bitovi
2 i 4 zato sto je 2 + 4 = 6 itcl.
Stika 2-15 prikazuje prav!Jenjc Harnmingovog k.oda za 16-bitnu memorijsku cc
l i i l 0000 l 01 0 Ill 0. Dvadesetjednohitna kodna rec je 00 lO Ill 00000 I 0 II 0 11!0. Da
Cistc l"llZUll1Cli kak.u radi ispravljanjc gresaka, razmutritc sta SC dcsava kada izncnadni
"'
I
II
:: I
\.:1
'
'
L
Poglavljc 2: Organizacija racunarskih sistema
naponski uclar obrne hit 5. U mesto prvobi tnc reci 00 I 0 Ill 00000101101110 nastac'e
nova kodna rec 00 I 00 II 00000 I 0 II 0 Ill 0. Bic'e provereno 5 bitova parnosti i dobiec
se skdeei rezultati:
Bit parnosti 1 neispravan (1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21 sadrze pet jedinica).
Bit parnosti 2 ispravan (2, 3, 6, 7, 1 0, 11, 14, 15, 18, 19 sadrze sest jedinica).
Bit parnosti 4 neispravan (4, 5, 6, 7, 12, 13, 14, 15, 20, 21 sadrze pet jedinica).
Bit parnosti 8 ispravan (8, 9, 10, 11, 12, 13, 14, 15 sadrze dve jedinice).
Bit parnosti 16 ispravan (16, 17, 18, 19, 20, 21 sadrze cetiri jedinice).
Ukupan broj jedinica u bitovima I, 3, 5, 7, 9, II, 13, 15, 17, 19 i 21 treba da bude pa-
ran jcr smo se opredelili da parnost tako utvrdujcmo. Neispravan bit mora hiti jcdan od
bitova kojc proverava bit pamosti 1 daklc, jed an od hitova 1, 3, 5, 7, 9. II, 13, I 5, 17,
19 iii 21. Bit parnosti 4 je neispravan, sto znaci da je neispravan jedan od bitova 4, 5,
6. 7, 12, 13. 14, I 5, 20 iii 21, koje on proverava. Pogresan mora cia bude bit koji se nala-
zi u obe listc: 5. 7, 13, I 5 iii 21. Mectutim. bit parnosti 2 je ispravan, sto eliminise bitove
7 i 15. I bit X je ispravan. sto elirninise bit 13. Najzacl. i bit 16je ispravan. pa se elimi-
nise bit 21. Preostao je samo bit 5. sto znaci cia je on pogresan. Posto je njegova vred-
nost I, on u stvari treba cia bude 0. Greskc sc ispravlj<0u na opisani nacin.
MemoriJska rec 1111000010101110
[] [OJ _1_ [-oj _1_ 1_ _1_ [OJ o _o_ _Q_ _(l_ _1_ o 1 [il _(l_ _1_ _ 1 1 o_
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
B1tovi parnosti
Slika 2-15. Pravijcnjc Hammingovog 1-.llda L.a Il!CillOrijsku rcc Ill!()()()() lO 10 Ill 0
tal-.o je dodato 5 kontrolnih hitova na 16 hitova podataka.
Jednostavan postupak za pronalazenjc neispravnih bitova jeste provera bitova par-
nw.ti. Akn su svi hitovi parnosti ispravni. grt::Saka ncma. Ukoliko ima neispravnih bi-
tova parnusti. trcba ih sve sabrati. uzimajuei vrcdnost I za bit I. vrednost 2 za bit 2,
vrednost 4 za bit 4 itd. Rezultujuci zbir predstavlja poziciju neispravnog bita. Na pri-
mer. ako suneispravni bitovi pamosti I i 4. a ispravni 2, S i 16, pogrcsan je bit 5 ( 1 + 4 ).
2.2.5 Kd memorija
tvlikroprocesori su uvek bili brzi od memorija. Kako se memorija unaprel1ivala.
poboljsavali su se i procesori. U stvari. po;to su projektanti proccsora imali moguc-
nost da pnstave svc vise elcktricnih kola na cip. iskoristili su je za paralelnu obradu
podataka i superskalarni rad, zbog ccga su proccsori postali jos brzi.
Projektanti memorija sunove tehnologije obicno koristili za povecanje kapaciteta,
a ne brzinc. tako da je problem hrzine memorije s vremenom postajao sve veci. Ova
Osnovna mcmorija 75
nesrazmera u brzini prakticno znaci da ee procesor izdati zahtev za rad s memorijom
i cekati vise ciklusa raclnog takta da bi dobio odgovor. Sto je sporija memorija, pro-
cesor ec morati duze cia ccka.
Kao sto smo rekli, postoje clva nacina za resavanje ovog problema. Najjednostav-
nije je da se zapocnc citanje saclrzaja memorije kada se naide na oclgovarajuc'u instruk-
ciju i cia se nastavi izvrsavanje programa, ali da se procesor zaustavi ukoliko neka
instrukcija pokusa cia upotrebi memorijsku rec pre nego sto se ona ucita. Sto je merno-
rija sporija. takve situacije c'e biti cesc'e a stete vec'e. Na primer, ako memorija kasni I 0
ciklusa, veomaje verovatno cia ee jeclna od sledec'ih I 0 instrukcija pokusati da upotrcbi
rec koja se ucitava.
Drugo rcsenje je cia se um,esto racunara, koji ec sc u takvoj situaciji zaustaviti.
upotrehi prevodilac koji ncc'c generisati k6cl dnk potrcbnc rcci nc stignu iz mcmorijc.
Samo. to jc mnogo lakse reCi ncgo uciniti. Poslc instrukcijc za ucitavanjc (LOAD) po
pravilu ncma sta clrugo da se radi, paje prevodilac prinucten da umec'e instrukcije NOP
(ne radi nistal, koje samo zauzimaju mesto u kodu i trosc vrcme. Ovakav pristup. u
stvari, umesto zaustavljanja hardvera prouzrokuje zaustavljanjc softvera, ali se to na
isti nacin oclrazava na performanse.
Problem zapravo nijc tehnoluskc, vee ekonumske prirode. Inzenjeri znaju da na-
prave memorijc kojc su brzc kao proccsori, ali Ja bi radile punom brzinom. one sc
moraju smestiti na pmccsorski cip (posto je putovanje magistral om do mcmorije vrlo
dugo). Kada sc na pmcesmski cip stavi memorija, ne postaje vcei i skuplji. C'ak ida
cena ne predstavlja problem, pustoji ogranicenje velicinc procesorskog cipa. Prcma
tome, opcijc su mala kolicina hrze memmije ili velika kolicina spore mcmorije. Ami
bismo najvise zeleli veliku kolicinu brze memorijc po niskoj ccni.
Zanimljivo je da postoje tehnike za kombinovanjc male kolicine brze memnrijc
s velikom kolicinom spore memorije da bi se dobila (skoro) brzina brze memorije i ka-
pacitct velike memorije, a svc pu umcrenoj ccni. Mala. brza memorija zovc se kcs
(engl. cache. ocl francuskog cuchcr. sto znaci sakriti). u nastavku eemo ukratko obja-
sniti kako se kes koristi i kako radi. Detaljniji opis pronac'i c'de u poglavlju 4.
Kcs je nacinjcn da bi se u njernu cuvale najccsec koriscene memorijskc rcci. Kacla
procesoru zatreba rcc. on je najpre trazi u kesu. Procesor pristupa glavnoj memoriji
samo ako traz.enu rec ne nade u kesu. Ako se u k6u bitan cleo najccsee koriscc-
nih reci, prosecno vreme pristupanja znatno se skraeujc.
pronalazcnja reci u kesu. clakle, zavisi od toga koliko sc memorijskih
rcci u njcmunalazi. Vee godinama se ma da programi ne pristupajumcmoriji potpuno
nasumicno. Ako sc vee pristupalo menwrijskoj adrcsi i\. postoji vcrovatnoca da ee i
sledcei pristup memoriji biti u oknlini adrese A. Najjcdnostavniji primer pruza sam
pmgram. Osim u slucajevima grananja i prilikom pozivanja procedura, instrukcije sc
preuzimaju sa u;.astopnih rncnmrijskih lokacija. Stavise. program veei deo vremcm
tokom izvrsavanja provodi u petljama. u kojima se ogranicen broj insrrukcija stalno
iznova izvrsava. Slicno tome, program za rad s rnatricama vcrovatno ee vise puta pri-
stupati istoj matrici pre negu Sto prede na clrugi zaclatak.

76 Poglavlje 2: Organizadja racunarskih sistema
--------
Zapa:lanje Ja program u nekom proizvoljnom, kratkom vrcmcnskom intervalu obic-
no pristupa bliskim memorijskim zonarna zove se princip lokalnosti (engl. locality
principle); to je osnova za sve sisteme kesiranja. Zamisao je sleJec'a: kada se vee pri-
stupalo nekoj reci, ona i njene susedne reCi oJmah se prebacuju i1. velike i spore memo-
rije u kes, tako da im se sleJeCi put, ako zatreha, rnoze brze pristupiti. Uobicajen
procesora. kesa i glavnc memorije prikazan je na sliei 2-16. Ako se rcc cit a iii
upisujc k puta u kratkom vrernenskom periodu, racunar c'e morati da jednom pristupi
sporuj :nemoriji i k- l pula brzoj rnemmiji. Sto je vece k, ukupne perfonnanse su bolje.
Glavna
memorija

Kes
Magistrala
Stika 2-16. Kcs se logicki sme,;ta izmcdu proccsora i glavnc memorijc.
Posloji vise mugucih mcsla gde se on mozc naci fizicki.
Ovaj racun mol:emo da fmmalizujemo tako sto cemo uvesti vrcrne pristupanja
kesu (c), vreme pristupanja glavnoj memoriji (m) i It- stepen pogadanja (engl. hit
rutio). koji preJstavlja udeo svih pristupa memoriji koji moze biti zadovoljcn iz kesa.
U nasem knitkom primeru iz pretbodnug pas usa h = (k - l J/k. Neki autori delinisu i
stepen promasivanja (engl. miss ratio). I -h.
lmajuci u vidu ove delinicije, mo/,enw da izracunanw pmsecno vreme pristupa na
nacin:
prosecno vreme pristupa = c + (1 - h) m
Kada h ---o> I. svi pristupi se mugu zadovoljiti iz kesa i vreme pristupa se priblizava
vrednosti c. S druge strane. kada h ---o> 0, svaki put je putn:hno pristupiti glavnoj memo-
riji. pa se vrcme pristupa prihlil:ava vrednosti c + m. jer se prvo (neuspesnu) pristupa
kdu (c), pa onda glavnoj memoriji (m). lJ nekim sistemima moze se istovrernenu
pristupati i glavnoj i kes mcmoriji, taku da je, kad usledi prornasaj u kesu, ciklus pti-
stupanja glavnoj memoriji vee zapocet. Medutim, ova strategija zabteva da sc pri
uspesnom pronalazenju instrukcijc u kesu prekine pristup glavnoj memoriji, sto otda-
va njenu implementaciju.
Postuju(i princip lokalnosti, glavne i kes menwrije se dele u hlukovc fiksne velici-
ne. Kada guvorimu o takvim blokovima unutar kda. ohicnu ih zovemo redovi kesa
(engl. niChe lines). Kada dude do promasaja u kesu. iz glavne memorije se u kes uci-
tava ne samo trazena memorijska rcc, vee citav red. Na primer. ako je reel duZ.ine 64
hajta. a pristupa sc memorijskuj adresi 260. u kd ce se prebaeiti citav red rdi od mire-
se 256 do adrese 319. Nekc od njih c'e vam. uz malo srece. ubrzn zatrebati. Rad na
2.2 Osnovna memorija
77
ovaj nacin je ehkasniji od preuzimanja pojedinacnih reci zato sto je bri.e preuzeti k
reci odjednom nego pojedinacne reci k pula. Tako i odredniee u kesu sadrze vise reci,
paje i iskoriscenje kesa vecc.
Projektovanje kesa postaje sve vaznijc za proeesore visokih perfnrmansi. JeJna od
va7nib je velicina kesa. Sto je kd vec'i, bolje su mu performanse, ali jc i
skuplJi. Druga vazna osobinaje duzina reda kcsa. Kd od 16 KB moze sc podcliti .Ja
llJ2-+ reda po 16 bajtova. na redova po 8 bajtova itd. Treca osubinaje organiza-
cija kesa i svodi se na pitanje: kaku kes vodi rae una o turne koje su reci trenutno u nJc-
mu'l Kes memoriju cemo detaljno obraditi u poglavlju 4.
Cetvrto pitanje koje se javlja prilikom projektovanja kesa glasi: da li i
podatke treba drbti u islom ke};u ili odvojenu. Jedinstven kes (engl. unified coche). u
kome -;c nalaze i instrukcijc i podaci. jednostavniji jc i automatski udrzava ravnotezu
izmedu preuzetib instrukcija i podataka. Ipak danas se tezi razdvujenom kesu (end:!.
split cache J - instrukcije u jednorn. a podaci u drugom kcsu. Tak va konstrukcija se
zove Harvardska a.-I1itektura. prema starom racunaru Mark Ill Howarda Aikena,
koji je imao zasebnu memoriju z.a instrukeijc, a zasebnu za podatke. Ono sto pmjck-
tante g:ura u ovom smeru je,te masovno koriscenje procesora koji pmlatke obraduju
paralelno. Jedinica za preuzimanje instrukcija treba da pristupi instrukLiji istovremeno
jedinicom za preuzimanje operanada koja pristupa podacirna. Razdvojeni kes on,o-
gucava takav paralelan pristup, dnkjedinstveni kcs tone dozvnljava. lsto tako. pohu
se instrukcije tokom izvrsavanja ne menjaju, sadrl:aj kesa sa instrukcijama nikada se
ne vraca u mernuriju.
Na kraju. peto pitanjc je hroj jedinica kes memorije. Dan as nije neobicno da naille-
te na cip s primarnim kdom na njemu, sekunc!arnim izvan nJeg:a. ali u i'-.tom
pakctu s cipom, i tercijarnim ke,;om na nekum drugurn mestu.
2.2.6 Mcmorijski paketi i vrstc mcmorije
Ocl sarnib pocetaka razvoja poluprovodnicke memurije. pa dll pocctka de1
godina prosing veka, memorip sc proi;vodila. kup<>vala i ugr;ldivala u obliku pojc:-
dinacnib cipova. Gustina menwrije je bila l kilobit. l megabit itd., ali se S\'ctki cip
prodavao kao zaschna jediniea. Prvi PC racunari c..::slll su imali pra;na pudnu/.ja
cloclatne memorijske cipovc, ukoliko hi kupac tll /.eleu.
Dan as sc koristi drugaciji pristup. Grupa cipova ! najcesce X il i 16! priCvrscuje -;e
na malo kolo i prodaje kao celina. Takva memorija sc skraceno ;ove SE\IM
(Single lnline Memory Module. menwrijski modul s jednim redum nol:i.:a) iii
Dll\Il\1 (Dual Inline l\"lemory Module. memurijski mudLII s dva red:1 rwZieal. u
7
<t-
visnosti od toga da li se konektori nahze samo s jedne strat<e plocicc sa
kolom ili sa obe. SIMM moduli imaju jednostrani prik!jucak. sa 72 kuntakta koji pre-
32 bita po jednum ciklusu radn"g: takta. Df\l:vlnHduli po pravilu na svakoj ud
dve imaju prikljucke sapo X-+ konukta (ukupnn 168l, i preno-;e o-l bita po jed-
nom ciklusu. Na slici 2-17 prikazan je primer SL\J:'vlmemorije.
r




78
Poglavlje 2: Organizacija racunarskih sistema
D D Memorijski
... J
/ ::,:::::"'"
Slika 2-17. SIMM mmlul kapacitcta 256MB. Osam Cipova su stvarna memorija,
dok dva cipa upravljaju modulorn.
Tipican SIMM iii D!MM modul sadrzi osam cipova za podatke, svaki kapaciteta
256 megabita (32 MB). Kapacitct celog modula tada iznosi 256MB. Mnogi racunari
imaju mesla za cetiri modula (dakle, za kapacitet od 1 GB kada se koriste moduli od
po 256MB, iii vise ako se koriste moduli veceg kapaciteta).
U prenosivim racunarima koriste se po dimenzijama manji D!MM moduli, nazva-
ni SO-DIMM (Small Outline DIMM, smanjeni D!MM moduli). SIMM i DIMM
moduli mogu imati ugraden kod za provent bita parnosti iii za ispravljanje grdaka,
ali se takvi moduli uglavnom ne ugraduju u racunare za masovnu upotrebu jer se gre-
ske u mernorijskim modulimajavljaju u prosekujednom u deset godina.
2.3 SEKUNDARNA MEMORIJA
Bcz obzira na to kolika je, memorije nikad nije dovoljno. Korisnici uvek zele da
sacuvaju vise infomwcija ncgo sto una mozc da prihvati, narocito zato sto pod utica-
jem novih tehnologija misle da u memoriju mogu srnestiti sve ono o cemu su nekada
samo mastali. Na primer, posto pravila koriscenja americkog budzeta teraju vladine
agencijc cia same brim1 o sopstvcnom prihndu. mogli bistc zamisliti cia Kongresna bi-
bliotekajednog dana odluci da digitalizujc citav svoj sadrzaj i ponudi ga sirokoj publi-
ci (,Celokupno ljudsko znanjc za samo 99,95 dolara"). Za oko 50 miliona knjiga,
svake sa l MB teksta i l MB komprimovanih slika, potrebno je uskladistiti l 0
14
bajto-
va ili l 00 terabajtova. Na takav nacin se razmislja i o sk!adistcnju svih dosad napra-
vljenih 50.000 filmova. Ovakva koliCina informacija ncce moci da stane u glavnu
memoriju, harem ne za jos nekoliko dcccnija.
2.3.1 Hijerarhija mcmorije
Klasicno resenje za skladistcnjc vel ike kolicinc podataka jestc hijerarhijsko orga-
nizovanje mcmorijc, kao na slici 2-l ::S. Na vrhu sc nalazc rcgistri proccsora, kojima
procesor moze pristupati pun om brzinom. Is pod njih jc kd memorija, cija se velicina
trenutno krcce od 32 KB do nckoliko megabajta. Sledcca je glavna rnemorija. od 16
MB za najjednostavnije sisteme, pa do desctina gigabajta za najsavrsenije. Posle njc
su na Jelu magnetni diskovi, danasnji glavni mcdijum za trajno skladistcnje podataka.
Na kraju se nalaze magnctnc trakc i opticki diskovi za potrebe arhiviranja podataka.
2.3 Sekundarna mcmorija 79
Kes
Glavna memorija
Magnetni disk
Traka Optickt disk
Slika 2-18, Petostcpcna hijcrarhija rncmorijc.
Kako se krecemo niz hijerarhiju, rastu vrednosti tri kljucna paramctra. Prvo, pove-
cava se vrcmc pristupanja memoriji. Rcgistrima proccsora mo?.c se pristupiti za ncko-
liko nanosekundi, kes mcmoriji za samo nekoliko puta vise vremena, dok pristupanje
glavnnj memoriji po pravilu traje nckoliko desetina nanosekundi. Sada nastaje vcliki
skok,jerje vreme pristupanja disku najrnanje 10 ms, a pristup traci ili optickom disku
mozc se meriti sekundama ukoliko mcdijum trcba odneklc preuzcti i staviti u citac.
Drugo, kako idemo niz hijcrarhiju, tako raste i kapacitct skladistenja. Rcgistri pro-
cesora su dobri za cuvanje do 128 bajtova, kd memorije za nckoliko megabajta, glav-
na memorija za desctine iii hiljade megabajta, a magnetni diskovi za nekoliko dcsctina
gigabajta. Trake i opticki diskovi obicno se cuvaju posebno. pa samo korisnikova tin
ansijska situacija ogranicava njihov kapacitet.
Trece, broj bitova mcmorije koje mozete kupiti za dolar. raste niz hijerarhiju. lako
se konkretne ccne hrzo rnenjaju, one se za glavnu mcmoriju mere u dolarima po mc-
gabajw, za magnetne diskovc u ccntirna po mcgahajtu. a za magnetnc trakc u dolari-
ma po gigahajtu.
Vee smo ukratko obradili registrc, kt:S mcmoriju i glavnu memoriju. U narcdnim
odcljci.ma pozabavicerno sc magnetnim diskovima, a poslc toga cemn prcci na optic-
ke diskove. Trake necemo opisivatijer scone uglavnom koristc za pravljenje rezcrv-
nih kopija, a o njima ionako nema mnogo sta da sc kazc.
2.3.2 Magnetni diskovi
Magnctni disk se sastoji od jedne ili nekoliko aluminijumskih ploca prevuccnih slo-
jem koji se moze namagnetisati. Ploce su prvohitno bile precnika i do 50 em. ali jc nji-
hov prccnik danas od 3 do 12 em, clok je precnik diskova za prenosive
racunare vee manji od 3 em i jos uvek se smanjuje. Glava diska koja sadrzi indukcioni
,,t
so
Poglavlje 2: Organizacija racunarskih sistema
kalem klizi nepos red no iznad njegove povrsine na vazdusnom jastuku (izuzev kod dis-
k eta, gde dodirujc povrsinu diska). Kada kroz glavu prolazi struja u jednom ili drug om
smcru, ona magnctil.lljc povrsinu neposrcdno ispod scbe, usmeravajuc'i magnctne cc-
stice uievo ili udc,no. Kada glava (pasivno) prelazi iznad namagnetisanih podrucja, u
njoj se indukuje struja jednog iii drugog srnera, sto joj omogucava da procita ranijc
uskladisk'nc biton: infonnacija. Na taj nacin, clok disk rotira ispod glave, na njega sc
moLe upisaii ni;: bitu'-a i kasnijc ponovo s njcga procitati. Ueomctrija jednc stazc na
disku J'-' na slici 2-llJ.
/

Sirina ' /
staLe Je
1--2 mrkromr.tara
\
I
1 bit zauzima
na stazi duZinu
od 0,1 to 0,2 mikrometra
Razmak rzmedu sektora
---
"'
Glava za citanje
i uprsivanje
- Rucica
diska
Slika 2-19. Dell staze diska. Prik:w111a .su dva sektora.
Upisan niz bitova tokom jedne pune rotacije diska naziva sc (kruzna) staza (engl.
trud). Svaka stazaje podeljena na izvestan broj sektora tiksne duzine koji po pravilu
'>ctdr/.e 5 12 bajtova podataka, a isprcd koj ih nalazi tLv. preambula - uvodni cleo
kojt omoguL'ava sinhronizovanjc glavc pre citanja iii upisivanja bitova. Iza podataka
skdi k)d za ispravljanje gresaka (engl. Error-Correcting Code, ECC) Hammingo-
vog tipa iii cesc'e, kou za ispravljanje visestrukih gre:iaka, Reed-Solomonov
kf>d. !nneuu uzastopnih sektora nalazi se mcdusektorski razmak (engl. inlcrscctor
1. Ncki proizvodaci navode kapacitct svojih diskova u ncformatiranom stanju
' da svaka staza sadr7.i iskljucivo podatke ), ali jc tacnije govoriti 0 kapacitctu ror-
diska- on ne racuna preambule, kodove i razmake kao podatke. Kapacitet
[',nmatiranog diska najcesce je oko 15 procenata manji od kapaciteta neformatiranog.
i diskuvi imaju pokrernc rue ice koje mugu dosegnuti razlicita radijalna rasto-
t'd usuvine rotirajucih cliskova. Na taj nacin sc na cliskove mogu zapisivati r;uli-
Citt: suzc. Staz.e su, prema tome, nizovi konccntricnih kruguva oko osovine. Sirina
,tazl /.aVI'ii ud velicine gla\e i prcciznnsti njenog radijalnog poLicioniranja. Na
nivou rat.voja telmike, diskovi imaju i.r,mcuu 5000 i I 0.000 staza po ccn-
tin,dru. sto !llaci claje sirinajcdne staze izmcdu I i 2 rnikromctra. Treba naghtsiti da
sU/.a ne prc:dstavlja tizicku ,brazdu'" na povrsini, vee prsten namagnctisanog matcri-
pl;t. odvoicn uskim razmacima od susednih staza.
2.3 Sckundarna memorija
81
Linijska gustina bitova duz staze razlikuje se od gustine bitova u radijalnom
smeru. Ona je uglavnom odredena cistocmn povrsine i kvalitctom sredine (vazduha)
u kojoj disk rot ira. Danasnji Lliskovi dostizu gustine ocl50.000 do I 00.000 bitova/cm.
Tu znaci da je hit oko 50 puta duzi u radijalnom srneru ncgo duz staze.
Da bi postigli jos vecc gustine, proiz.vodaci diskova raz.vijaju tehnologije pomocu
kojih jcclnu od dve dimcnzije bita ne usmeravaju duz staze, vee vertikalno, u dubinu
magnetnog materijala- oksida gvozda. Ova tehnika sc zove vcrtikalno iii perpendi-
kuhuno zapisivanje i uskoro cc biti komercijalno dostupna.
Da bi se odrzala cistoca povrsinc diska i okolnog vazduha, vecina proizvodaca her-
rneticki z.atvara diskovc jos u fabrici i time sprecava prodiranje prasinc. Takvi diskovi
se zovu Winchester diskovi. Prvi takvi uredaji (koje je napravio IBM) imali su 30MB
hcrmeticki zatvorenog i 30MB liksnug izrnenjivog prostora za skladistenje podataka.
Navodno su ovi diskovi podseeali korisnike na puske Winchester 30-30, koje su odi-
grale vaJ.nu ulngu u sircnju granica Amcrike, pa je ime Winchester brzo prihvaceno.
Diskovi uglavnom imaju vise vertikalnu naredanih ploca, kao na slici 2-20. Svaka
od uvc povrsine plol:e ima svoju rucicu i svoju glavu. Svc rucice su medusobno cvroto
povezanc tako da se sve krecu zajcdno. Skup traka na datom radijalnom odstojanju
naz.iva se cilindar. Danasnji diskovi za PC racunare imaju najcdcc od 6 do 12 ploca
po urcdaju (ukupno, od 12 do 24 povrsinc za zapisivanje).
Povrsina 7
Povrsina 6
Povrsina 5
Povrsina 4
Povrsina 3
Povrsrna 2
Povrsina 1
Smer krelanja ruCice
Slika 2-20. Disk sa Cctiri pl,,Cc.
Pcrl'ormanse diska zavisc od vise cinilaca. Da hi sc zapisan ncki -;cktur, nawrc sc
rul:ica mora dovcsti na odrcuenn radijalno rastojanje od os,wine. Taj postup<tk sc ZO\ e
trazcnje (engl. seek). Srcdnje vreme tra/.enja (izmedu nasumil:nl) odabranih :;ta7a)
ktccc se iLincdu 5 i I() ms. dok jc vrcmc traz.enja i1.nh.:du UDlstnpn[h sta;a pal'l
ispod I ms. Kada se glava poslavi u udredeni radijalni polu/.:tj. sicdi pa!!za, nazvana
rotaciono kasnjenjc (engl. rulutionulllllency), tok.(>m kojc zclJcni '>d.rm na mtira-
juccm disku dolazi ispod glavc. Veeina diskova brzinama ud 5-+f)(J, 7200 iii
1 O.SOO u/min, tako da srednjc rotacionu kasnjenje 1 vrcmc rolovi ne jcdne roucije) !Z-
nosi od 3 du 6 ms. Brzina prenusa podataka zavisi od !inijske gustine i buine

L
82 Poglavlje 2: Organizacija racunarskih sistema
Kad se ima u vidu da su tipicne brzine prenosa od 20 do 40 MB/s, sektor od 512 baj-
tova moze se preneti za 11s. Prema tome, vreme trazenja i rotaciono kasnjenje
odreduju vreme prenosa. Zato je jasno da je nasumicno citanje sektora na disku ncefi-
kasan nacin rada.
Treba naglasiti da zbog postojanja preambula, kodova za ispravljanje gresaka, me-
duscktorskih razmaka, vremena trazenja i rotacionih kasnjenja, postoji velika razlika
izmedu maksimalne rafalne brzine prenosa podataka (engl. burst rate) i maksimalne
trajne brzine prenosa (engl. sustained rate). Maksimalna rafalna brzina prenosajavlja
se u trenutku kada je glava iznad prvog bita podataka u sektoru. Racunar mora da po-
drzi tako veliku brzinu prenosa. Medutim, disk moze da odrzi tu brzinu samo u okviru
jednog sektora. Za neke aplikaeije (npr. za multimediju) vaznija je brzina koja se
moze odr7.ati tokom vise sekuncli, gde svoju ulogu takode imaju trazenje i rotaeiono
kasnjenje.
Zclrav razum, potpomognut formulom za izracunavanje obima kruga (2n:r), kaze
nam cia su spoljne staze duze od unutrasnjih. Posto se svi magnetni Jiskovi rotiraju
istom ugaonom brzinom, bcz obzira na radijalni polozaj glava, ovo zapazanje stvara
problem. Na starijim diskovima proizvodaci su u stazi najblizoj eentru koristili mak-
simalnu rnogucu linijsku gustinu, a manje gustine u stazama blizim perifcriji. Ako jc
disk, na primer, imao 18 sektora po stazi. svaki jc zauzimao 20 lucnih stepeni, bez ob-
zira nato u kom se cilindru nalazio.
Dan as se koristi drugacija tehnika. Cilindri se dele u zone (po pravilu ocl 10 do 30
zona po uredaju) a broj scktora po stazi je tim veci sto je zona u kojoj se scktor nalazi
bli/.a perifcriji Jiska. Zbog ove izrnene informaeije se teze prate, ali se povecava ka-
pacitct diska. sto sc smatra vaznijim. Svi sektori Sll isle velicine. Na sliei 2-21 prika-
zan jc disk s pet zona.
Uza svaki disk ide i njegov kontroler (engl. disk controller), tj. Cip koji upravlja di-
skom. Neki kontroleri sadrze i prave procesore. Kontroler trcba da prihvata komande
programa, kao sto su READ, WRITE i FORMAT (upisujuci sve preambule). upravlja kre-
tanjem ruciee diska, otkriva i ispravlja grdke, te pretvara 8-bitne bajtove procitane iz
memorije u 'erijski niz bitova i obrnuto. Ncki kontroleri baferuju visestrukc sektore,
kesiraju ucitane sekture za eventualno bucluce koriscenje i prcslikavaju lose sektorc.
Poslednja funkcija postoji zbog sektora s losom (trajno namagnetisanom) tackom.
Kada kontroler otkrijc los scktor. on ga zamenjuje jednim od sektora rezervisanih za
ovu svrhu u svakom cilindru iii zoni.
2.3.3 Diskete
Uporcclu s razvojem licnih racunara nastala je i potn:ba Ja sc distribuira sortver.
Pronadeno je sredstvu: disketa iii savitljivi disk tengL//oppl' disk), mali. izmcnljivi
medijum knji je tako nazvan jer su prve diskete zaista bile savitljive. su iz-
misljcne u IBM-u da bi 'e na njima cuvale infonnaeije o odr/.avanju eentralnih racu-
nara. potrebne servisnoj sluzbi. Vrlo su ih brzo brzo prigrabili i proizvodaci licnih
racunara kao pogodno sredstvu za distriburanje komcreijalnog softvera.
Sekundarna memorija
83
Stika 2-21, Disks pet zona. U svakoj zoni jc veliki broj staza.
Opste karakteristikc disketa iste su kao i karakteristikc diskova koje smo upravo
opisali, osim sto kocl njih glava za citanje/upisivanje ne lebdi na vazdusnom jastuku,
vee klizi po samoj povrsini diskete. Zbog toga se i medijum i glava srazmerno brzo
habaju. Da bi se habanje svelo na sto manju meru, kod licnih racunara se glava cli-
sketne jediniee vraca u prvobitni polozaj i disketa se zaustavlja kad god nema ucita-
vanja iii zapisivanja podataka. Kada se zacla sledcca naredba za citanje ili upisivanje
podataka, javlja se kasnjenjc od oko pola sekunde da bi motor postigao potrebnu
brzinu rotacije disketc. Diskete su se mnogo koristile tokom prethodnih 20 godina, ali
savremeni racunari obicno nemaju disketne jediniee.
2.3.4 IDE diskovi
Svi diskovi savremenih licnih racunara vode poreklo odjednog diska u IBM-ovom
racunaru PC XT- Seagatcovog diska kapaeiteta l 0 MB sa Xebeeovim kontrolerom na
dodatnoj kartiei. Taj disk je imao 4 glave, 306 eilindara i 17 sektora po stazi. Kontrolcr
je mogao da upravlja s dva disk a. Operativni sistem je citao podatkc s cliska i upisivao
ih na njcga, smestajuCi parametre u registre procesora i zatim pozivajuci osnovni ula-
zno-izlazni sistem (engl. Basic Input Output System, BIOS) koji se nalazio u memoriji
sarno za citanjc, ugradenoJ u racunar. BIOS je potom izdavao masinske instrukeije za
ucitavanje sadrzaja regislara kontrolera i tako stvamo zapocinjao prenos poclataka.
Tehnolugija je brzo napredovala ocl kontrolera na posebnoj kartiei do njegove tesne
integracije s diskom, pocev od IDE (Integrated Drive Electronics, elektronika inte-
gri.c.ana na ureclaju) diskova osamdesetih godina. Medutirn, nacin pozivanja BIOS-a
nije menjan zbog kompatibilnosti sa starijim verzijama hardvera. U tom nacinu raJa,
84 Poglavlje 2: Organizacija
sektori su se adrcsirali navodenjcm hrojcva glavc, cilindra i sektora, pri cernu ;,u glave
i cilindri brojani od 0. a scktori pocevsi od l. Za takav i1hor molemo vero-
vatno zahvaliti programcru onog prvog BIOS-a koji je svoje /.ivotnu delo napisao na
ascmbleru za proccsor 8088. Sa 4 bita za glave, 6 bituva za scktore i l 0 bitova za ci-
lindre. najVCL'l disk bi imao 16 g!ava. 63 sektora j 1024 ciJindra, S(O dajc Uk.Upt10
1.032.192 scktora. Njcgov kapacitct bi hio 504MB. sto je u to doba hilo ravno besko-
nacnusti. ali danas nijc. (Da li histe danas kritikovali racunar koji nc mole da rukujc
disk-jedinicama vecim od pctabajta?)
Nije trebalo dugo cekati na diskove kapaciteta 504MB. ali Sll oni stigli' ,.pogre-
geometrijorn (npr. 4 glave. 32 sektora. 2000 eilindara). Operativni sistem ni
na koji nacin nije mogao da adrcsira takve diskove zbog okamenjenih konvcncija
puzivanja koje je koristio BIOS. Zato su kontroleri diskova poceli da la/.u, praveci sc
dane primec'uju novu geometriju i realnu geornctriju su preslikavali u virtuelnu - je-
dinu koju su pumavali. lako je ovakav pristup funkcionisao, potpuno je poremetio
operativne sisteme koji su pa/.ljivo rasporedivali podatkc na disku da bi skratili vrcmc
njilwvug tra/.enja.
IDE diskovi su konacnu evoluirali u EIDE diskove (Extended IDE, prosireni
JDE). koji su podr/.avali i drugaciju semu adresiranja nazvanu adresiranje logickih
hlokova (engl. Logical Blod Addressing. LBAL su je:clnostavno oznacavani
rednim brojevima ml 0 domaksimalnu 2
2
'- I. Za primenu ove seme hilo je potrebno
da kuntroler pn;tvara LBA u adres<.: glave. sektora i cilindara i za nju nije j)\J-
stojalo ogranicenje ud 504MB. Na/.alust. onaje st\orila nmu u-;ko grlu za kapacilet
ud 2
2
X x 2'' bajtova ( J 2S GB). Kada je 1994. godine prihvaccn EIDE 'itandard, niko
nije mogao cla zami,]i disktlVe od l2S GB. Kumiteti za standanle te:le da (kao i poli-
ticari) pruhlem samo ndgurnu u buclucm>st da hi ga .,Jedece generaLi.iL'.
EIDE c!iskovi i kontroleri sui na druge nacine. Na primer. E!DE kllll-
troleri su mogli imati elva kanala. svaki sa svujim primarnim i sLkundarnim di,k,nn. U
tak voj organi;.aciji moglo se koristiti najvise cctiri ro jednom kuntrolcru. Kontro-
leri su podrzavali i CD i DVD uredaje. a brzina Jt.' poveC:;ma 'a 4 na I 0.6 7 i\1!3/s.
Kako -,e razvijala tehrwlogija proi;.vodnje diskova, tako jc unapr,,div:m i ElDE
:-.tandard. ali je iz nekog razloga naslednik EIDL standurcb .\TA-3 1.AT At-
tachment. AT dodatak ). \ aljda i1 poca,ti prema om PC! AT 1 gdc JC
AT skracenica za tada naprednu tehnologiju- engl. Adrunn'rl f[ d'nnlogr l b-hitnog
proce-;ura na 8 iV!Hll. Standardje u sledcc'em i.tdanjunazvan AT\Pf--4tATA Packet
Interface. paketni ATA interfcj,;). a hr;ina pretl\lSa je j)(lVeL'<tna na .iJ :-,I B/:.,. L stan-
dardu ATAPl-:'i onaje clostigla 66 i\JB/s.
Ncgde u to vreme. g:ranica od CiB koju je posl;tvilo 20-hiino LBA adrc,[ranJC
pocelaje we vise da -,meta. takd d:t :.;u u \LtmLtnlu .-\f.\J'J .. () LB:\ C!cb:se P'lvec;mc
48 hitova. Novi standard c'e zapasti u kada kapacitc:t di,kova du,tig:nc 2-J,-; x =c'J
b:qtova ( 128 PB ). Kad sc zna da se kapacitct di>kova pO\CC<\\ a ?a 5()<,:;. godi.;nje.
48-hilna g:ranica vcrovatno neee hiti clnstignuta do 2IJ.i5. g:o(Lih:. Aku 1 tada bulkte
zeleli da saznate kako JC problem pogledajte ll. i,rdanJe ,we knjige. Strucnjaci
vee racunaju na LBA od 64 bita. Standard AT:\PI-6 pn\ ec'au je i hrzinu rrc:nusa
na 100 MB/s i prYi put se pnceo razm;ltrati problem sa (digitalnimJ ;umom na disku.
1
'-,
.
.
I
I
.
'
' .
.
I
;

I

fj
1
' ..'
,
.

f{l

a



I
.
.
'
.
2.3 Sckundarna memorija
85
-
St<mdard .-\TAPI-7 potpuno raskida s prosloscu. Urnesto cla prosiruje prikljucak d
1
s-
ka (da hi se povecala hr;ina prenosa podataka). ovaj standard koristi scrijsku A.TA
tehnologiju za prenosenjc jednog po jednog: bita preko prikljucka sa 7 nozica, brzim,rn
ud !50 MB/s (ocekujc sc da ce s vremcnom narasti do 1.5 GB/s). Zamcnjivanjem
postojcccg pljosnatog kabla sa 80 zica nkruglim kahlom clebelim samo nekoliko mili-
metara. omog:ucava se bolji protok vazduha za hladenje unutrasnjosti racunara. Pored
tm!a. serijski ATA prikljucak koristi naplln od 0.5 vulti za signaliziranjc (dok clishvi
p(; standanlu ATAPl-6 koriste napon ml 5 Vlllti I. smanjuje potrosnju struje. Zane-
koliko god ina. verovatno ce svi racunari L1ristiti serijsku ATA tehnologiju. Struja koju
disk trusi postaje svc vaznija stavka kako za naj;.a!ttevnije racunske centre sa ogrom-
nirn farmama diskova, tako i 1,a pojedinacne korisnike prenosivih racunara, za kt1je
smanjcnje p<ltrosnje postaJC imperativ (Ciurumurthi et al., 2003).
2.3.5 SCSI diskovi
SCSI diskuvi sc od !DE ne ra.dikuju toliko po organizaciji cilindara. st:1za
i o;cktura koliku po intcrfcjsu i mnug:o vecim brzinama prcnosa podataka. Tehnologlju
SCSlmo/.emPunazad pratiti do IIuwarda Shugarta, pronalazaca diskcte. cijaje kom-
panija 1979. godinc pwizvela disk po irnenu SASI (Shugart Associates System
Lcc) l'\lsk odreLknih prcurelicnja i mnogo diskusija, organiz.acija ANSI ga je
standardimvab gudine i promcnila mu imc u SCSl (Small Computer System
Interface, inter!cjs z:1 male sistcme). SCSI se cita .. skazi". Od tog vremc-
na. standardiLuvcmc su we brzc vcrzije ovc tehnologije. pod imenima Fast SCSI (10
t\!H;J. Citra SCS! I\!! L.c). Ultra2 SCSI (40 MHz). Ultra3 SCSI (RO M!Izl i Ultra4
SCSI \ J 60 !l; ). S \ <Jka navedcm ver1ija i malaje i siru ( 16-bitnu) Va/.nije
kombinacijc su prikaune na slici 2-22.
istrala Brzina prenosa
z) (MB/s)
----- -----,-:-
i lme standarda ! Broj bitova t Mag
i za podatke I (MH
5 5
------
10 10
' '
:SCSI-1 i 8 +
I ------ - ------
! Fast SCSI I 8 ,
----- -------+
I
I
20
)
20
40

::-.
l ___ 40- I
; '''hjs l..!ltr2.2 SCSI i 16 , 40 I SO .
sc;Si----1 a i 80 so
-=- =LI .';; =1- -_::: . -
''f'rirL"t


1
16 160 320
1 ra.=_ cv_. _ _l___ _ ___ __j___ ____ _
Sliha >kki od nwguc'ih SL'SI pararnetara .

;i

86
Poglavlje 2: Organizacija racunarskih sistema
Posto SCSI diskovi imaju vece brzine prenosa. oni su postali standardni diskovi
veCine UNIX radnih stanica firmi Sun, HP, SGl i drugih. Oni su takode i standardni
diskovi za racunare Macintosh i najsavrsenije lntelove PC racunare, a narocito za
mrezne servere.
SCSI nije samo interfejs za cvrsti disk. To je i magistrala na koju se mogu pri-
kljuciti SCSI kontroler i jos sedam uredaja (to mogu biti jedan iii vise cvrstih SCSI
diskova, CD citaci. CD pisaci, skeneri, jed in ice trake i druge periferijske SCSI korn-
ponente). Svaki SCSI uredaj ima svoj jedinstveni identifikator, od 0 do 7 ( 15 za prosi-
reni SCSI). Svaki urec1aj ima i dva prikljucka: jedan ulazni i jedan izlazni. Kablovi
povezuju izlaz jednog uredaja sa ulazom sledeceg u nizu, a svc to izglcda kao niz
elektricnih ,svecica" na novogodisnjoj jelki. Poslednji uredaj u nizu mora se blokirati
kako uticaj s krajeva SCSI magistrale ne bi ometao druge podatke na njoj. Kontrolcr
sc najcesce nalazi na dodatnoj kartici na pocetku niza uredaja. mada standard ne pred-
vida izricito bas takvu konfiguraciju.
Kabl za 8-bitni SCSI prikljucak najcesce ima 50 zica. od kojih su 25 uzcmljenja
uparena s drugih 25 ziea, cime se odlicno suzhija pojava suma pri obavUanju visoko-
brzinskih operacija. Od 25 zica. 8 ziea prenosi podatke, I prenosi bit parnosti, 9 su
upravljacke. a preostale su predvidene za napajanje iii su rezervisane za buducu upo-
trcbu. Za sesnaestobitni (i 32-hitni) uredaje, potreban jc jos jedan kabl namenjen pre-
nosenju dodatnih signala. Kablovi mogu biti dugacki vise metara, sto omogucava
prikljucivanjc spoljnih uredaja, skenera itd.
SCSI kontroleri i periferijski uredaji mogu da rade kao inicijatori iii kao odredista.
Kontroler je po pravilu inicijator i izdaje komande diskovima i drugim periferijskim
uredajima koji su odredista. Kornande su hlokovi velicine do 16 bajtova koji oclre-
distima saopstavaju sta trcba cia radc_ Komandc i odgovori na njih razmenjuju se u fa-
zama, pri cemu razliciti upravljacki signali dele pojedine faze i odlucuju ko pristupa
magistrali u slucajevima kada uredaja to istovremeno trazi. Takvo odlucivanje je
neophodno jer tchnologija SCSI omogucava svim uredajima da rade istovremeno, sto
umnogorne poboljsava performanse u okruzenju s vise aktivnih procesora (npr. na
UN I X-u ili u okruzcnju Window sa XPJ. Po standardima !DEi EIDE _je da
postoji samo _jedan aktivan uredaj u jednom trenutku.
2.3.6 RAID
Performanse procesora su dt:sctak godina eksponencijalno rasle. pri-
blizno >e udvostrucu_juci svakih 18 meseci. Diskovi sc ni'u tako brzo razvijali. Use-
damdcsetim godinama proslog vda. srednjc vreme trazcnja podataka na diskovima
mini racunara hiloje izmedu50 i 100 ms. Saclaje to vrerne 10 ms. U .,najtehnickijim"
oblasti ma industri_je ( rccirno. u industrij i automobi Ia i li aviona) povecanjc perfor-
mansi od 5 do I 0 puta za dve decenije bila bi udama vest. ali bi u industriji racunara
ona vise preclstavljala razing za zabrinutost. Tako je ncsklad izmedu performansi pro-
cesora i performansi diskova tokum godina postajao sve veci.
Sckundarna memorija
87
Kao sto smo ranije videli, za poboljsanje performansi proeesora cesto je u pomoc
pozivana paralelna obrada podataka. Zato je rnnogima tokom goclina palo na pamet
da bi moz.cla imalo smisla paralelno ohavljati i ulazno-izlazne operacije. u svom clan-
ku iz !988. godine, Patterson i njcgovi saradnici predlozili su sest specificnih organi-
zacija diskova koje su mogle clop;-ineti poboljsanju performansi i pouzdanosti
(Patterson et al., 1988). Industri_ja je brzo prihvatila te ideje, sto je dovelo do pojave
nove klase ulazno-izlaznih uredaja. naz.vanih RAID. Patterson i njegovi saradnici su
RAID definisali kao redundantan niz jeftinih diskova (engl. Redundant Array of
Inexpensive Disks). ali je u industrijskoj praksi ,,I'' proglaseno za skracenicu ocl reci
,nezavisan" (engl. Independent), mozda zato da bi mogli da koriste skupe cliskove.
Posto uz dobrog momka uvck ide i onaj los (kao RISC i CISC, takode prema Patter-
sonu), los rnomakje ovde nazvan SLED (Single Large Expensive Disk, jeclan velik
i skup disk).
Osnovna kontiguracija sistema RAID hila bi da se pored racunara (najcesce serve-
ra) instalira puna kutija diskova, da st: kontroler diska zameni RAID kontrolerorn. da
se podaci na RAID diskove ida se nastavi normalan rad. Drugim recima, si-
stcrn RAID bi operativnom sistemu trcbalo da izgleda kao i sistem SLED, samo u;
boljc pcrformanse i vecu pouzdanost. Posto Sll SCSI diskovi imali dobre performan-
SC, nisku ccnu i mogucnost da preko is tog kontrolt:ra upravljaju cak sa 7 dodatnih je-
clinit:a (iii sa 15 pomocu kontrolera prosirenog SCSI sistema), priroclno je sto Sll se
sistcmi RAJD sastojali ocl RAID SCSI kontrolcra i SCSI diskova koji su se operativ-
nom sistemu preclstavljali kao _jedinstvcn veliki disk. Na ovaj nacin nije trebalo nista
soft vcrski menjati da bi sc koristio RAID, cime je stecena naklonost brojnih admini-
stratora sistema.
UZ tO S(O SU St: softvcru prikaziva!i kao jedan disk, podaci Sll hili rasporedeni na
sve diskove iz skupa kako bi im sc umogucio paralelan rad. Patterson i saradnici clc-
tinisali su vise scma za raspotn1ivanje poclataka i one su Llanas poznate kao razliciti
RAID nivoi ( od 0 do 5 ). Osim pomenutih. postoji jos nekoliko rnanje vaznih nivoa o
kojima ovdt: necemo govoriti. .. nivo" pomalo _jer sene radi ni o kakvoj
hijnarhi_ji: naprosto, postoji ;est razlicitih organizacionih sema.
RAID() prika1an je na slici 2-23(a). Kod njega se virtuelni disk koji RAID simu-
lira 'matn izdeljcnim u scgmente po k sektora, pri cemu sektori od 0 do k- I precl-
ljaju scgmt:nt 0. scktori od k clo 2 k- I segment I itd. Kadaje k = I, svaki segment
je ,c,cktor; kadajc k = 2. segment ima dva sektora itd. U organizat:iji RAID 0 segmenti
sc redom 1.apisuju na u;.astopnc diskove i tako ukrug, kao sto jc na slici 2-23(a) pri-
kazarw za sistern RAID sa cdiri diska. Raspllln1ivanje puclataka izmedu vise diskova
na ovaj nacin zovc sc segmcntiranje (t:ngl. striping). Na primer, ako softver zada ko-
mandu za ucitavanjc blllb podataka koji se sastoji od cetiri uzastopna eel a
RAID kontmln ct: Jc pocleliti na cetiri zasebnc komande. po jcdnu svaki od cetiri
disb i pustiti ih da sc izvrsavaju paralelno. Tako ce se dobiti cetiri paralelnc ula-
zno-iJhvnt: opcracijc, a soft ver o nece nista znati.
r=r'Tj'
:
!
SX
Poglavlje 2: Organizacija racunarskih sistema
------'-
(a)
RAID nivoa 0
(b)
lei 8 8 8 8 8 8

RAID nivoa 3
(e)
(f)
RAID n1voa 4
RAID nivoa 5
Slika 2-2J. Si,lcill RAID di,k<Jva, nivoa od nultog do pdug. Rc"!crvni di,knvi
i diskovi provcro1n parnosti, uscw::cni ')ll.
RAID
nivoa 1
,;.
.f
I
I
2.3 Sekundarna memorija
89
RAID 0 najholje radi s velikim zahtcvirna: sto jc zahtev veei, utoliko holje. Ako jc
zahtev veci od proizvoda broja diskova i velicine scgmcnta. neki diskovi ce dobiti
vise zahteva- kad zavrse s jcdnim, preci ce na druge. Kontrolcr treba da ispravno ro-
deli izvorni zahtcv i cla zadaje prave kornancle pravim diskovirna ispravnim redos e-
dom, pa da zatirn na ispravan nacit; prikupi podatke u memoriji. Pcrformansc su
odlicne. a implcmentacija jednostavna.
RAID 0 najgore radi sa operativnim sistcmima koji po pra\ilu uvck zahtevaju
samo jcdan sektor podataka. Sve ce racliti ispravno, ali ncma paralcli,cma, pa nece biti
ni puboljsanja performansi. Druga mana ove organiL.acije je tu je njena pouzda-
nost potencijalno manja od pouzdanosti sistema SLED. Ako se sistem RAID sastJji
od cetiri disk a (waki s prosecnim pcriodom ispravnog rada od 20.000 sati), onda ce
u proscku na svakih 5000 sati rada otkazi vati jeclan disk i propadacc svi podaci. SLED
disks prusccnim periodom ispravnog rada od 20.000 sati bio hi cetiri puta pouzdaniji.
Po;to u prikazanuj organizaciji nema rcdundancijc, ona u stvari nije pravi sistcm
RAID diskova.
Sledcca konligmacija. RAID I, prika1.ana na slici 2-23(b), predstavlja pravi sistem
RAID. U njuj sc svi disl--ovi. pa posiOJC cetiri primarna i cctiri rezenna
disk:L Pri ;:apisivanju sc sval--i segment zapisujc dv,tpul. Pri citanju se moze koristiti
hilo koja od dvc ktpiJC. pa se optcrccenjc raspnrcctuje na vise cliskova. Prcma tome,
pcrfurmanse nisu bolje ncgn kod jedrwg di,ka. ali performansc cita:Jja
mogu hiti i dvostruko holje. Otpornostna jc odlicna: ako ncki disk otkazc. k.o-
risti ,e njegova kupija. Oporavak posle otka...:a sastuji se od zamenc ncispravnog di'ka
i kopiranp odgovarajuc'cg ro.ervnog
Za ct;:lil:-.u \>d nivo:t () i I koji ra,Ic sa scgmcntima sastavljcnim od sektora. RAID
2 ra,Ji s rccima, cak i sa samitn ba}tmima. Z,1mislite da ste svaki bajt najcdinstvennm
virtuclnum disku pDdelili na dva -1--htna ntl.la. zatim svakom dodali Hammingov kild
histc d<>bi li 7 -hi tnu rec, cij i Sll bitov i I. 2 i -1- hi [0\ i parnosti. Zamislitc daljc da Sll
c,c.:dalll disJ..:uva na sJiLj 2-2J(C) Si!lhrt)lliZ(>V]j]j U pogJcdU polozaja ntCiCC i polo/aja
pri rotaciji. Tada bi btlo nwgucc npi-,ati 7 -hitnu rcc kudiranu Hammingovim kod<llll
sccLim di,J:tva- po Jnlan bit na sval--\lll1 disku.
Ral:unar Cl\-1-2 kompanijc Thinking \Ltchincs kuristio je ovakvu semu,
32-hJtnim rc:cirna 6 bituva pdrnoc,ti d;, b1 sc d1)bik 3X-bitnc Hammingove reCi, a zalim
1 jCdan hit La parnusl rcci. i rasporcdu:uci ,;vaku dohijCrlll rcc na 39 diskova. Uku-
pan prutul:-. pod:tuka bj,-, jc ,,gruman jcr jc tuk\>111 vrcmena potrchnog za upisivanjc
jcdthg scktura uvaj rac:unar moga11 upi:<lli 32 c;cktura s podacima. lsto tako, othzi-
jcdnug disk:t nij<: st \ aralo prubktnc' jcr jc to 7nacilu gubitak jednog bita u sva-
1Y-hitnuj rcci. 1:-.t)J mu./c cla i.,pravi u hodu.
l\kJu k>.;c c;tranc uvakvc nrganil:tci)e trd1a ulwjati cinjenicu da sc svi diskJvi
>inhronu ruttr:1ti ida <Jna ima sn;i;la ,amu\:t vcltkim brojcm diskova (cak sa
32 diska s pud:lCJ!lla i 6 di,kuva z.a hcsi.1risno trosi 19 procenata kap:,ci-
teu,_ Ova mganiLacij:t p<lSt,tvip i \ic,oke ;ahtc\C kontrcJleru koji mora da provcrava
svaki prncitani hit.
r
90
Poglavlje 2: Organizacija racunarskih sistema
RAID nivoa 3 je uproscena verzija sistema RAID 2. On je prikazan na slici
2-23(d). Ovde se izracunava samo jedan bit parnosti za svaku rec s poclacima i upisuje
na disks podacima o pamosti. Kao i u sistemu RAID 2. i ovdc diskovi moraju biti pot-
puno sinhronizovani jer se pojcdinacne reci s podacima rasporeduju na vise diskova.
U prvi mah moze izgledati da se pomocu samo jeclnog bita parnosti greska moze
otkriti, ali ne i ispraviti. Kada je rec o slucajnim neotkrivenim grdkama, ovo za-
pazanje je tacno. Medutim. u slucaju otkazivanja diska, mogu se potpuno ispraviti
1-bitne grcske jcr jc poznata pozicija ncispravnog bita. Ako otkaze neki disk,
lcr ce se ponasati kao da su svi njegovi bitovi nule. Kacla rec ima gresku pamosti, to
znaci da bit na disku koji je otkazao mora biti jeclinica, pa se na tu vreclnost i postavlja.
Iako sistemi RAID 2 i 3 obeLbeduju velike brzinc prenosa podataka, broj pojedinac-
nih ulazno-iLlaznih zahteva kojc oni u sekundi mogu da obraclc nije veci nego kod
jedi nstvenog cliska.
Sistemi RAID 4 i 5 racle sa segmentima, a ne s pojeclinacnim recima s proverom
parnosti i nc zahtevaju sinhronizovane diskove. RAID 4 pogledajte sliku 2-23(c)
- slican je sistemu RAID 0, s proverom parnosti svakog segmenta koji se zapisuje na
disk. Na primer, ako je svaki segment clugacak k bajtova. na sve segmente se medu-
sobno primenjuje iskljuciva disjunkcija (XORJ, cime se dobija segment parnosti
duzine k bajtova. Ako disk otkazc. izgubljeni bajtovi se mogu rckonstruisati pomocu
diska s podacima o parnosti.
Ovakva organizacija obezbeltuje zastitu pri otkazivanju diska. ali je neetikasna
kada se azurira mala kolicina podataka. Pri promcnijednog sektora podataka
no je ocitavanje svih diskova cia bi se izracunali poclaci o parnosti. koji zatim moraju
biti i zapisani. Pored toga. mogu se ocitati i stari korisnicki podaci i stari podaci o par-
nosti, i iz njih dobiti nove informacije o pamosti. Cak i uz ovakvu optimizaciju, za azu-
riranjc male koJicinc podataka potrebna Sll elva citanja j dva upisivanja, StO je
ocigledno losa organizacija.
Buduci da jc disks podacima o parnosti toliko optereccn. on mozc da us pori citav
sistern. Ovo potencijalno usko grlo eliminise se u sistemu RAID 5 tako sto se bitovi
rasporcctuju po svim di,kovirna. kao sto je prika;.ano na slici 2-23(1). Mcdu-
tim, u slucaju da disk otkaL.e. njegovo rekonstruisanje je vrlo slozeno.
2.3.7 Kompakt diskovi
Opticki dis!-.ovi su napravljeni za snirnanjc televizijskih programa, ali im se moze
naci i .,korisnija" upotreha- za cuvanje racunarskih podataka. Zahvaljujuci vclikom
bpacitctu i niskoj ceni, opticki diskovi se masovno koriste za distrihuiranje softvera.
knji)!a. lilmova i podataka svakc vrste, kao i za pravljenje t-eLervnih kopija cvrstih

Prvu generaLiju optickih diskova napravio jc holandski elektronski gigant Philips.
da hi sc na njih srndtali Jilmovi. Oni su bili precnika 30 em i prodavani su pod ime-
nom LascrVision. ali nisu bili sire prihvaceni. osim u Japanu.
2.3 Sckundarna memorija
91
Philips jc 1980. godine, zajedno sa Sonyjem, stvorio kompakt disk (engl. Compact
Disk, CD). kojije brzo zamenio klasicne gramofonske ploce kao medijum za cuvanje
muzickih numera. lscrpni tehnicki detalji o kompakt diskovima objavljeni su u zva-
nicnom Meclunaroclnom standarclu (IS I 0149 ), zhog boje korica popularno nazvanom
Crvena knjiga (engl. Red Book). (Medunarodne stanclarcle objavljuje Medunarodna
organizacija za standardizaciju koja predstavlja protivtezu grupcijama za donoscnje
nacionalnih standarcla. kao sto su ANSI, DfN i dr. Svaki standard ima svoj IS broj.)
Smisao objavljivanja specifikacija za disk i njegov citac u obliku meclunarodnog stan-
darcla bio je da sc omoguCi meclusobna saraclnja proizvoclaca muzickih diskova i pro-
izvodaca plejera. Svi kompakt cliskovi su precnika 120 mm, debljine I ,2 mm i irnaju
centralni otvor precnika I 5 mm. Kompakt diskovi za snimanje zvuka prvi su uspesan
meclijum velikog kapaciteta za smestanje digitalnih podataka. Veruje se da mogu tra-
jati I 00 goclina. Molim vas da 2080. godine provcritc koristi li se jos uvck prva pro-
izvedena grupa kompakt cliskova.
Kompakt disk se pravi tako sto se snaznim infracrvenim lascrom buse rupc prec-
nika O,R mikrona u staklenom disku - matrici - prevucenom posebnim slojcm. Od
matrice se uzima otisak, koji ima ispupcenja na mestima gde su u matrici bile rupe.
Otisak je u stvari kalup u koji se ubrizgava stopljena polikarhonatna mas ada hi se do-
bin kompakt disk cija jc povrsina izbuscna na isti nacin kao i staklena rnatrica. Pot om
se na polikarhonat nanosi tanak sloj rellektujuceg aluminijuma, zatim zastitni sloj
!aka i na kraju, etiketa. Uduhljenja u polikarhonatnoj podlozi zovu se urezi (engl.
pits); netaknuta podrucja izmcdu ureza su ostrva (engl. lands).
Pri reprodukovanju cliska, slaha laserska dioda osvetljava urcze i ostrva
nom svetloscu talasne duzine 0,78 mikrometara. Lascrom sc osvctljava zadnja (po-
likarbonatna) strana diska, tako da se urczi koji sc protczu ka lascru ocitavaju kao
uzvisenja na ravnoj povrsini. Posto je dubina ureza jednaka cetv11ini talasnc duzine
laserske svetlosti. svetlost koja se rellektuje ocl dna ureza fazno je pomerena ;:a polo-
vinu talasne duzine od svetlosti koja se rcflektuje od okoline. Svetlost zbog intcr-
ferencije prigusuje pa je ona koja se vraca u fotodetektor plejera rnanjeg intenzitela
ncgo svetlost odbijcna od ostrva. Na taj nacin plejer razlikuje ure;:e i ostrva. lako
moze izgledati najjeclnostavnije da se urezi iskoriste za upisivanje vrednosti 0, a ostr-
va za upisivanje vrcdnosti I, pouzdanije je da se za vrednost I korist i prelazak iz urc-
za na ostrvo ili sa ostrva na urez. a za vrednost 0 odsust vo takvog prelaza. pa se tak va
scma i 1-.uristi.
Urezi i ostrva izmedu njih zapisuju se duzjedinstvene spirale koja pocinje u blizini
centralnog otvora i siri sc radijalno ka ivici u du:l.ini od 32 mm. Takva spirala ima
22.18R navoja ( oko 600 po mm). Kada biste je razmotali, hila hi clugacka 5.6 1-.m. Spi-
rala jc prikazana na slici 2-24.
Da bi se muzika reprodukovala ravnomernom brzinom. neophodno je cia urezi i
ostrva prolaze ispod glavc za citanje konstantnom linearnom brzinom. Zbog toga se
brzina rotacije kompakt diska mora neprestano smanjivati uporedo s pomeranjem
glavc od njegovog centra ka periferiji. Kaclaje glava blizu centra, disk rotira brzinom
od 530 o/min da bi se postigla linearna brzina citanja od 120 cm/s; kada je glava na
92 Poglavlje 2: 01ganizacija racunarskih sistema
-------------
Sptralntzieb

:::1
Blok sa 2K
konsnickih
podatnka
/1
Slika 2-2-t. Struktura zapi"r na kornpakt dtsku.
pcril"criji. br1.ina rolaLije Ji,ka opada na 200 o/min Ja bi sc postigla isla linearna brzi-
na ocitavanja. Opticki di\k Kl'ji odrzava KOil\lantnu linearnu brzinu citanja podataka
pnlpurm sc r;vJikujc od magnctnl'!:' diska koji radi konstantnom ugaonom brzinorn.
ho oh1.ira n.tlrcnutni poi<JZaj glavc 1.a citanje. lsto tako. navcJenih 530 o/min samo
jc dL'iiL' Od _)(>()()iii 7__2()() ()/tllif1. S(() jl' br/ill:t rD(ifaflj:t \L'Cii1C magnC(flib diSkOVa.
Philips i Suny su 1 '.JS-t. gt)dine Sh\ atili rotcncijal kompakl diskova za smdtanjc
F'lll:tl.tk::. Jn -;u ohjavili t1.v. Zutu knjigu i u njoj prccizno Jcfinisali stan-
lbrd /a ()Jl() mi d<tna' ZO\ CillO kompakt disk samo za citanje (engl. Compact Di-
sc-1\,ud Onir \li'inon. CD-ROM!. lh bi se iskoristila steecna populamosl kornpakt
na CD-R0\1 -;u inrhratre tizil'ke Jimcnzijc postojccih audio-disko-
va. tako da nJima hili mchanicki i t>pticki kompalihilni a proizvodili su se od po-
likarhnnatne na ''tim ?bog tc ndiukc, pocdi su sc traziti rnotori
pn1:nctllji1o,:: hr::inc. <lli je i ccna CD-R.0\1-a u mrcclnjim pmzvodnirn 'erijama pala
p1 il iLnu jLdnog dcdara.
Chirn st<l jc kniiti dc!inioanu f,rmatiranjc ruJataka. onaje do-
princLt i flt'bolj:;<:iljll :;p<Nl]ll0\
1
i da ispravija grcske, S[() jc bilo zaista 11C-
upl;ud!1tl. LjuiJikl_ji muzii-,._; l11>lZda nc lll<trc aku tu i tamu usput izgube ncki bit. ali
rJ(unard2ijc- ;l,ng t(lga umcju cia dignu vcliku galamu. Osnovno formatiranjc
CD-ROi\1-ajcstc: prdvaun_1e 'vctk<'g bajta u l-1--bitni simbol. Kao sto vee' znamo. 14
hitu\ _:c cl<!\t Lb ": X-hitni bajt kodira l''l pri L'emu preoslaje 2 hita.
U ,tva:-i. k')ri;ccn jC J:;nq:< mu..'n1ji n:1cin kodiranja. Preslikavanje iz 14 u 8 bitova
Ijut1u j.: h._ti:._)\-.?!:-,J. itn t.Jr(:tr:Lfivanjcni
CJrup,, "d -+2 'imlhlla sicdc..'cm. viscm nivou. obrazuje 588-hitni ok-
vir i. ,,k\ir _,aclr/i 192 bita podatab (::2-t bajta). Prcostalih 396 hi-
kuri.,ii sc za i uprav ljanje. Do ove tackc, fom1atiranje je
idcnti2no /Ll auditl-di.-....kove i di'"'kovc s
2.3 Sekundarna mcmorija
93
U Zutoj knjizi dodatno je definisano za CD-ROM-ove cia sc okvira grupise uje-
dan CD-ROlVl scktor (slika 2-25). Svaki CD-ROM sektor pocinjc 16-bajtnorn premn-
bulom na cijcm SC j)OCC(KU naJazj J 2-bajtni (hcksadccima]ni) :1iz
OOFFFFFFFFFFFFFFFFFFFFOO na osnovu koga plcjcr prcpoznajc pocctak CD-ROM
sektora. Sledeca J bajta sadrze rcdni broj sektora neophodan za prctraziva:rje
CD-ROM-a s jec!instvenom spiralom podataka. sto je mnogo tezc od pretrazivanja
skupa konccntricnih staza na magnctnom Jisku. Pri trazenju odrcdcnog podatka, soft-
ver optickog diska priblizno izracunava gde se podatak nalazi. dovodi giavu za citanje
na odredcnu poziciju i tada pocinje da cita okolne preambule dok ga stvarno ne
pronade. Poslcdnji bajt preambule definise rdim rada.
Zuta knjiga clctinisc dva raclna rczirna. u rczimu 1 koristi sc organizacija sa slike
2-25. sa 16-bajtnom preambulom, bajrova podataka i 2XX-bajtnim kodom za
ispravljanjc grdaka (unakrsno prcpletcn Reed-Solomonov kCld). U re:l.imu 2, polja
s poJacima i kodom za ispravljanje grcsaka kombinuju se u polja sa 2336 bajtova
rodataka za one aplikacije kojima nijc potrebno ispravljanje grdaka (iii knjc nemaju
vrcmena za to). kao sto su audio i video aplikacijc. Primctimo da se za obezbedivanje
visoke pouzclanosti rada koristc tri nczavisnc semc za isrravljanje grdaka: unctar
simbola, unutar okvira i unutar CD-ROM scktora. Jcdnobitne grdkc sc ispravljaju na
najni.i.crn nivou, kratke rafalnc greskc na nivou okvira. a prcostalc grdke na nivou
sektora. Cena za tako visoku pouzdanost je niska efikasnost (samo 289!:): za rrc-
2048 bajtova putrebno jc 98 ok vira sapo 588 bitova ( ukupno 7203 bajta).
14bltni simboli
DOD ODD
an okvir ima 42 Slmbola
t
DCJDCJCJDCJD OOOODDOO
Preambula 98 okvira cine sektor

.. ---- I K6dzo
Podac! ispru,:IJ<Hlle
gresukll
Bajtovi 16 2048 288
Slika 2-25. Lll:;icki ra,porcd podataka na CD-ROM-u.
588-bitni okviri
sa po 24 baJta
podataka
Sektor
u reiimu I
(2352 bajta)
Jednobrzinski CD-ROM urcl1aj ima brzinu citanja od 75 scktora/s. cime se ostva-
ruje prenos od 153.600 bajtova/s u rezimu 1 i 175.200 bajtova/s u re2irnu 2. Urcdaji
dvostruke brzine clvaput su brzi i tako redom, sve do najvcce brzine. Na standardni
audio-disk staju 74 minuta muzikc. a ako se iskoristi za smestanje podataka u rezimu
I. moi.e da stanc 68 I .9?\4.000 bajtova iii oko 650MB jcr I MB ima 2
20
( 1.048.576
bajtova), a ne 1.000.000 hajtova.
Napomcnimo Ja cak i CD-ROM uredaj brzine 32x (4.915.200 bajtnva/-;) nc mc)ze
da Sc' rneri s hrzim SCSf-2magnetnim diskom brzine prenosa od I 0 MB/s, iako mnogi
CD-ROM ureLt0i koriste SCSI interfcjs (postoje i IDE CD-ROM uredaji). Kada se
r
I
94 Poglavlje 2: Organizacija racunarskih sistema
uzme u obzir da trazenjc cesto potraje i po vise stotina milisckundi, jasno je da
CD-ROM uredaji. uprkos svom velikom kapacitetu, po performansama ne mogu da
se mere s magnetnim diskovima.
Philips se 19S6. godinc ponovo oglasio. ovog puta sa Zelenom knjigom, u kojoj
je dodao definisanjc za grafiku i mogucnost preplitanja zvuka, video zapisa i podataka
u istom sektoru, sto je stvorilo mogucnost da se CD-ROM-ovi koriste u multimedij-
ske svrhe.
Poslednji element slagalice zvanc CD-ROivl jeste sistem datoteka. Da bi se omo-
gucilo koriscenje CD-ROM-a na razlicitim racunarima, morala se postiCi saglasnost
o njegovom sistcmu datoteka. Zato su sc prcdstavnici brojnih racunarskih kompanija
okupili na jezeru Taho u oblasti Visoka Sijera (High Sierras) na granici Kalifornije i
Ncvade i dogovorili o sistcmu datoteka koji su nazvali High Sierra. On je kasnije
evoluirao u medunarodni standard (IS 9660). Sistcm High Sierra ima tri nivoa. Na
prvorn nivou se koriste imena datoteka s najvise 8 znakova i neobaveznim nastavkom
od najvise 3 znaka (konvcncija imenovanja datoteka u MS-DOS-u). Imena datoteka
su mogla sadrzati samo velika slova. cifrc i donju crtu. Direktorijumi su mogli imati
do osam nivoa, ali irnena direktorijuma nisu smela imati nastavke. U prvorn nivou da-
toteke su sledilc neposredno jedna za drugom, sto nije stvaralo probleme kod mediju-
ma na kojc se podaci upisuju samo jednom. CD-ROM sc u skladu s prvim nivoom
standarda IS 9660 mogao citati iz MS-DOS-a, na racunarima Apple, na UNIX racu-
narima. tj. skoro na svim drugim racunarima. Izdavaci CD-ROM-ova su ovo smatrali
velikom prednoscu.
Drugi nivo standarda IS 9660 omogucavao je da imena datoteka budu dugacka i do
32 znaka, a treci nivo je znao da radi i sa nesuscdnim clatotckama. Prosirenja Rock
Ridge (hirovito nazvana po gradu iz Mel Brooksovog tilma Vruc'a sedla) ornoguca-
vaju koriscenje vrlu dugackih imena clatotcka (!.a UN IX), uvode korisnicke i grupne
identitikatorc, kao i simh<Jiicl-.e vezc. ali sc diskovi koji nisu u saglasnosti s nivoom I,
ipak mugu citati na svim racunarima.
2.3.8 Upisivi kompakt diskovi
Oprcma za narczivanje matricc CD- ROM-a (a i muzickog kompakt diska) na po-
cetkuje bila izu;etno skupa. Ipak, kao i obicno u racunarskoj industriji. nista vecno ne
ostajc skupo. Sredinom devedesetih godina, CD snimaci, nc veci od CD plcjcra. po-
stali su uobicajena pcrifcrijska komponcnta u vecini pmdavnica racunara. Oni su sc
i dalje ra;:likovali ud magnctnih cliskovajer sejcdnomnarezan CD-ROM nije mugao
ubri:;ati. Be1 oht:ira nato. hrzo sunasli svoje mesto kaumedijum za cuvanje rezervnih
kopija velikih cvrstih diskuva. ana njima sui pojedinci i mali kompanije mogli dana-
prave svoje originalne diskove iii matrice i kasnije ih posalju spccijalizovanoj tirmi na
umno/,avanje. Ovakvi uredaji poznati su kao CD-R urcdaji (engl. CD-Recordables)
tli CD snimaCi.
CD-R urectaji raJe sa 120-milimetarskim polikarbonatnim diskovima, slicnim
CD-R0!\1-ovima. usim sto CD-R diskovi imaju zleb sirine 0,6 mm za vmtcnje lascr-
;kog snopa kojim se vrsi upisivanje. Zleb je oblika sinusoidc sa amplitudom od OJ mm
2.3 Sekundarna mcmorija 95
i ucestaloscu od tacno 22,05 kHz kako bi CD snimac mogao da prati brzinu rotacije i
dajc po potrebi prilagodava. Prvi upisivi kornpakt diskovi licili su na CD-ROM-cJVe,
osim sto sus gornje strane bili pozlaceni umcsto ,posrebrcni". Boja zlata nije irnitacija
_ za reflektujuci sloj je umesto aluminijuma koriscena stvarna pozlata. Za razliku od
srebrnih kompakt diskova, koji su na svojoj povrsini imali stvarna udubljenja, na upi-
sivim kompakt diskovimaje razlicito odbijanje svetlosnog snopa od ureza i ostrva mo-
ralo biti simulirano. Kod njih je izmedu polikarbonata i reflektujuceg sloja ubacivanjos
jedan sloj boje (slika 2-26). Koriscene su dve bojc: zelcni cijanin i zucK.astonarandzasti
ftalocijanin. Hemicarima ostavljamo da se do beskonacnosti prepiru oko toga koja je
boja bolja. Ovc boje Sll slicne onim koje se koriste u fotografiji, sto objasnjava cinjeni-
cu da kompanijc Kodak i Fuji u glavne proizvoc1ace CD-R diskova. Na kraju
je aluminijumski refkktujuci sloj zamenjen zlatnim.

1.2 Ill ill
1
I
Zastitni sloj laka
Retlektujuci slo1
I I I I
Sloj
I
boje
I
Stampana etiketa

I
I I T-:;r
Polikarbonatna podloga Substrate
Smer
<I
...,. ___ kretan1a
>---- Socivo
Fotodetektor ---0
j--Prizma
''
Tamna mrlja
u sloju boje
koju je stvorio
laser pri
UpiSIVanju
Stika 2-26. l'oprccni pn:sck CD-R diska i lascra (nije u srazmcri). CD-ROM ima strukturu slicnu
ovoj. samo bcz slnja boje i sa izbu.,enirn aluminijumskirn slojem umcsto rctlektujuccg sloja.
Sloj bojc je na pocetku prozracan. tako da propusta laserski snor do rctlektujuccg
sloja i nazad. Kada se podaci upisuju. laser CD-R uredaja radi vecom snagom ( S- 16
mW). Podrucje sloja bojc pogocteno laserskim snopom zagreva sci hemijska vcza sc
kida. Na tom mcstu se zbog promene molekulske strukture stvara tamna mrlja. Pri
ocitavanju podataka (uz snagu od 0,5 mW), fotodctektor uoeava razliku izmcdu tam-
nih mrlja u kojima je boja iz.menjcna i prozracnih podrucja koja su ostala nctaknuta.
Tu razliku uredaji tumacc kao razliku izmedu ureza i ostrva, cak i onda kada se CD-R
disk ubaci u obican CD-ROM citac iii CD plejcr.
Nijedna nova vrsta kompakt diskova ne bi mogla da uglcda svctlost dana bez neke
,knjige u boji", pa i za CD-R diskove postoji Narandzasta knjiga, objavljena 19o9.
godinc. Taj dokumcnt definise CD-R diskove, ali i nov format CD-ROM XA, koji
omogucava da se podaci na disk upisuju postupno (nekoliko sektora danas, nekoliko
I
I
f' '




!
? l

f'
96
Poglavljc 2: Organizacija racunmskih sistema
sutra, a ostali sledeceg meseca), Grupa uzastopnih sektora upisanih odjednom zove sc
CD-ROM staza (engl. CD-!W:'v! truckl.
Upisivi CD-ovi najpre su sc koristili u Kodakovom sistemu l'h()toCD. Korisnik hi
ovlasccnom fotografu doneo rolnu snimljcnog tilma. zajedno sa svojim starim Pho-
toCD diskom i dobio ga dopunjenog novim slikama s lilma. Nove slike, dobijene ske-
niranjem negativa, na PhotoCD disk su upisivane kao poscbna CD-ROM staza.
Postupno upisivanje bilo je ncophodno zato sto su upisivi diskuvi bili pre.visc sku pi da
bi sc isporucivali uz svaki tilm.
Mectutirn, postupno upisivanjc podataka stvara problemc. Pre objavljivanja Naran-
dzask knjige, svi CD-ROM-ovi su na pocctku imali jcdinstven spisak saddaja diska
(engl. Volume 7iihlc of Contents, VTOCJ. Takva scma sc nijc mogla odrzati u disko-
vima za postupno upisivanjc podataka (u sta;:a). U Narand,/a:;toj knjizi jc odrecte-
no da se svakoj CD-ROI\1 slazi pridrui njcn poscban VTOC. Takctv VTOC jc mogao
sadrzali i nckc (iii sve) dalotekc it. prethodno slctJ:a. Kada se CD-R disk stavi
u citac, opcrativni sistcm tra,/i po CD-ROM slaLama najsvdiji spisak sadrzaja koji hi
trehalo da prikazc tckm'e stanjc diska. Ukljucivanjcm u o,pisak sadr.2.aja samo nel--ih
datnteka i; prethodno upisanih sta7.a, mo,/e sc stvPriti iluzija da su neke datotckc obri-
sane. Sta;:c se mogu grupisati u sesijc (engl. ses.1iuns). pa sc tako dobija pojam
CD-R0:\1 s vise sesija. Standardni plcjcri rmuickih di:.;kova nc mogu ispravno da ci-
taJU diskove s vi;c scsija jcr occkuju samo jedan o,pio,ak sadr/.aja na poC:etku diska.
Svaka sla.t.a sc mora upisali u jednum pmla;:u. bl'! prckidanja. Zbog toga cvrsti disk
'kuga dola;:e podaci mma da hmlc dovoljno brz da hi ih pravovrcmeno isporucio. Ako
Sll datotckc koje prcnoo,c na kompaKl di,J... o,vuda po cvrstom disku i treha
ih duc>o lrct/.iri. t\lk podauka 1--a CD-R mclbju mole prcsusi ida i;:awve ndeljeno
praznjcnjc ulal.fHlc' hakra. Pri pra/.njcnju uiaznog hak:'a mo/.cte neuC:ckivano da dobi-
jc'lc' svctluc.tv tpo111alo \kupl podmctaC: ;:a rivo iii I :'U-milimctarski poLlaccni ili
posrchrcni l'ri;:hi. Suftv cr CD pisaC:a lliiC:Illl ulc;:hcdrqe mogucnosl da sve potrchne
Jatutcke tlhjcciini u .. J'nlJCkat" (sa/ctu lilgitalnu s!iku CD-ROM-a od 650MB) pre
\ttl ih upi;e na ciisk. ali ovaj po praviiu tiLho.-,trucuje vrcrne upisivanja.
neophudrHljc 6.'iil :'vl8 sluhlldn,Jg c'vr'>tum cbku. a i dalje niste zasticeni od
situacijc u K<lj<lj -,e cv rsti dis!-- usp:miC:i i udluci i;vr(i tCillperaturnu rekalihraciju
Ltda sc prc:gr-.'JC,
0ia uDic-il c f..lHllpakt diskll\C i pojcdinci i J..ompanijc mugu da lako kopiraju korner-
cij:ticlc di.skilvc (s p<ldch.:im't ill sa ;:vukom; ida takcl u nacelu autorska prava izda-
vaC:a. jc nacina cb "' tal--va piralc'rija ukL:a. lao ida sc otel:a citanjc
CD-ROl\l-ova hi!,J l'tm drugimusim /V:micntlll sui'twrom i1davaca. Pujcdnorn od tih
nacina. datr ;td:c. n:: CD-R I ,,, prika/u bel lllllilgu duze (pu vise gigabajta).
:::tll <JStijccujc sv :1ki p!>ku\aJ kupiranj:t net (qqj disk uuL,icajcnim softvcrorn. Stvarne
du/illl' d:tlilkka s[,rivaju C,l' U 'tli,lVcTU i;c[aV:\C:a iii (nm/d:IU sifrlwanotn obJiku) na llC-
k,qn ncoC:ckiv:mum na kompakt di,kLL Drugi n:1Cin jc da .-,e u mlredene
n:t disku upi . .;u nctacni pp,bci o u nad1 da ce softvcr ;.a kopiranjc
kumpakl dt.-,ka .. i'>pravit; Sul'tvci tL<.ia\:tCa Lbk:t i :,;un pruverava ove podatke,
,,dbij:IJlll'i da racli ctko nclllc Ja 'Ll taCni. Drugc llH'g:uc'n"sti -;11 pravlJenje ncstandanlnih
izn1cdu :-;t1za j drugih .,nlana.
2.3 Sckundarna mcmorija
97
2.3.9 Prcpisivi kompakt diskovi
[akn su korisnici u nacclu naviknuti na mcdijume ;:a jcdnokratno upisivanje, k:to
sto su hartija i fotografski tilm, sve vise se trazc kornpakt diskovi na koje sc podaci
mugu upisivati vise pula, kao na disketu, is njih hrisati. Demas sc za prepisive kon-
pakt diskove koristi i tehnolngija CD-RW (CD-ReWritahlc, prepisivi kompakt dis-
kovi). i oni su iste velicinc kao i CD-R diskovi. Mcdutim, na CD-RW disku se za sloj
na koji sc upisuju podaci umcsto boje cijanina ili ftalocijanina koristi lcgura srebta,
indijurna, anti mona i telura. Ona ima dva stahilna stanja: kristalno i amorfno, u koli-
ma razlicito rcflektuje svctlost.
Laser C:D-RW uredaja radi s tri nivoa snage. Na najvisem nivou laser topi kristalnu
lcguru prctvarajuci je u amorfan oblik koji lose rcftcktujc svetlost i tako predstavlja
urez. Legura se pri srcdnjoj sna;:i lasera topi i spontano vraca u svoje prirodno kristal-
no stanjc, i ponovn postaju ,ostrva". Na najni/.em nivou snage laser samo ,,oscea"
rnedijum (ocitava ga), ali se ne menja njcgova faza.
CD-RW disk nije potpuno potisnuo CD-R diskovc zato sto jc prazan CD-RW disk
skuplji od praznog CD-R diska. lsto tako, za nekc prirncne, kao sto je pravljcnjc rc-
zervnilr kopija cvrstog diska, gdc bi slucajno hrisanje kopijc bilo katastrofalno, CD-R
disk je nezamenji v.
2.3.10 DVD diskovi
Osnovni fonnal kornpakt diska, odnosno CD-ROM diska, postoji od 1980. gmlinc.
Od tada se tchnologija ra;:vila, tako da su danas opticki diskovi vcceg kapaciteta cko-
nomski isplativi, i vrlo su tra/.eni. Holivud bi rado zamcnio analogne video trake digi-
talnim diskovima posto su oni kvalitctniji. jcftiniji, trajniji. zauzirnaju manjc prostora
i ne rnoraju sc premotavati na pocctak. Proi;:vodaci clektwnskih uredaja za siroku r'o-
trosnju tra7.c nov udami proizvod, a mnogc ral'unarske kompanije zelc da svorn soft-
veru dodaju i multimcdijskc mogucnosti.
Zahvaljujuci dostupnoj tehnologiji i zbog zahtcva tri izu;:ctno mocna industrijska
segmcnta. pojavio se DVD disk; skraccnica jc prvobitno ol.l1acavala digitalni video
disk ,engl. Digital Video Disk). a sada zvanicno oznacava digitalni viscnamcnski
disk (engl. Digital Versatile Disk). DVD diskovi izgledaju isto kao i 120-milime-
Larskt kompakt diskovi od polikarbunata, sadr:l.e ureze i ostrva kojc ohasjava lascrska
dioda i ocitava fotodetektm. Novosti su:
1. Manji urezi (0,4 mikrornetra. 0.8 mikrornctara kud kumpakt diskova).
! Gusca spirala (0,7-+ mikromctra i;medu navoja. a I ,6 mikrometara na kom-
pakt diskovima).
3. Crveni laser (talasnc duzinc 0.65 rnikrornctra, a 0,78 mikromctara na kom-
pakt diskovima.
Ova tri poboljsanja zajedno povecavaju kapacitct scdam pula- na 4.7 GB. DYD
un:daj jednostrukc hrzine irna brzinu prcnosa od 1 ,41\lB/s ( 150 KB/s na CD uredajul.
Na/alu:.;t. prelazak na crvcne lascre koji se koriste ina kasama superrnarketa maci da
DVD plcjcri treba da irnaju dodatni laser ili slozeniju optiku kako bi rnogli da citaju
98
Poglavlje 2: Organizacija racunarskih sistema
postojece kompakt i CD-ROM diskove, sto mnogi proizvodaci mozda ne bi mogli da
obezbede. Isto tako, na DVD ureltaju sene bi mogli citati CD-R i CD-RW diskovi.
Da li je 4.7 GB dovoljno? Mozda. Uz komprimovanje po standardu MPEG-2 (IS
13346), na DVD disk od 4,7 GB moze da stane 133 minuta video zapisa koji se pri-
kazuju na celom ekranu u visokoj rezoluciji (720 x 480), uz propratni zvuk na osam
jezika i titlove najos 32 jezika. Oko 92 procenta svih holivudskih t1lmova traje manje
od 133 minuta. Ipak, za nekc primene (npr. za multimedijske igre iii enciklopedije)
potrebno je vise prostora, a i Holivud bi zcleo dana isti disk smesti vise filmova. tako
da su definisana cetiri formata:
1. Jednostrani, jednoslojni ( 4, 7 GB ).
2. Jednostrani. dvoslojni (8,5 GB).
3. Dvostrani, jednoslojni (9,4 GB ).
4. Dvostrani. dvoslojni ( 17 GB ).
Cemu toliki formati? Jedrwm recju: politika. i Sony su kao verziju velikog
kapaciteta zeleli jcdnostrane dvoslojne diskove. ali su Toshiba i Time Warner zeleli
dvostrane jednm,lojnc diskove. Philips i Sony su smatrali da korisnici nece biti oduse-
vljeni ako treba da okrecu disk, clok Time Warner nije verovao dace dva sloja na istoj
strani diska moci da rallc. Doncto je kompromisno rdcnje: na trziste ce se pustiti sve
kombinacije, pa neka prezivi najholja.
Dvoslojna tehnologija na dnu irna retlektujuci sloj, a preko njega drugi- polupro-
ziran, poluretlektujuci sloj. Zavisno od toga kako se laser fokusira, njegov snop sc re-
flektuje odjednog ili od drugog sloja. Urezi i ostrva u donjem sloju rnoraju biti nesto
veci da bi se pouzdano prepoznavali ( ocitavali), tako da je kapacitet clonjeg sloja
nesto manji od gornjeg.
Dvostrani diskovi se prave tako ;to se slepc pozadine dvajednostrana diska deblji-
ne 0,6 mm. Da hi sve verzije DVD diskova imale istu dcbljinu, na pozadinu jcdnostra-
nog diska od 0,6 111111 nalepljenaje prazna podloga iste clebljine (iii ce u buducnosti to
rnozda biti takodc jednostrani disk sa I :n min uta reklama, nalepljen u nadi da ce ra-
doznali korisnici pozckti da vide je s clonje stranc). Stmktura clvostranog dvo-
slojnog DVD diska prikazanaje na slici 2-27.
''""'""'"' = AIL
1
miniJurnskl disk debljrne ,.. reflektor
0,6 mm , , , , . ,
' ' "' . ' . " '' '- '
" ' ' ''
PolureflektujuC1
slo1
Jednostrcu\1
drsk debljrne
0,6 mm
Polikarhonatna podloga 2
Slika 2-27. Dvostrani uvoslojni DVD disk.
AlumlrliJUITlski

Polureflektu juc1
sloJ
2.4 IJiaz i izlaz
99
DVD disk plod je konzorcijuma od cleset kompanija za proizvodnju elektronskih
urcctaja siroke potrosnje, mcdu njima sedamjapanskih. Konzorcijum je saradivao s ve-
likim holivudskim studijirna (neke poseduju japanske kompanije iz konLOrcijuma).
Kompanije iz industrije racunara i tclekomunikacija nisu pozvane na zurku, pa je kon-
senzusorn prisutnih odluceno da se na DVD diskove snimaju filrnovi koji ce se iznaj-
mljivati u videotekama. Na primer, standardne mogucnosti su obuhvatale preskakanjc
nedolicnih scena tokorn sarnog prikazivanja (da bi roditelji film sa oznakom ,samo za
starije od 18 godina" na lieu mesta pretvorili u film za poletarce), sestokanalni zvuk i
podrsku za promenu veliCine prikaza. Na osnovu ove poslednje mogucnosti, DVD ple-
jer je u hodu odlucivao kako da oclsece levu i dcsnu ivicu filma (Cijije odnos 3:2) cia bi
ga uklopio u standardni TV (minosa 4:3).
Jedan ocl problema o komc industrija racunara verovatno nijc rnislila jestc namerna
nekompatibilnost diskova namenjenih arnerickom i evropskom trzistu. kao i postojanje
drugacijih standarcla za ostale kontinente. To je zahtevao Holivud jer su novi tilmovi
uvck prvo pustani u americkc bioskopc, a u Evropu tek onda kada su sc u Americi po-
javili na video traci. Oni nisu zclcli da Evropljani nakupuju video trake u Americi pre
nego sto nov film ostvari prihod u evropskim bioskopskim salama. Da Holivud upra-
vlja racunarskom industrijom. u Americi bi se koristilc 3.5-incne diskete, dok bi
Evropljani jos uvek vrteli diskcte od lJ em.
2.3.11 Hlu-Ray
U racunarskom biznisu nista ne mirujc. pogutovo se tehnologip skladistenja poda-
taka. Tek sto jc uveclcn DVD disk, a naslednik vee preti da ga i'tisne. Naslednik DVD
diskajc Blu-Ray, nazvan tako jer se umcsto crvenog lascra u DVD uredaju, koristi pia-
vi laser. Plavi laser cmituje svctlw,t manje talasne cluzinc nego crveni, sto omogucuje
tacnije fokusiranje, pa i urczi, ndnosno podrucja netaknutih ostrva mogu biti manji. Na
jeclnostranc Blu-Ray disk.ove mol:e da sc smcsti oko 25GB podataka; dvostrani disko-
vi irnaju kapacitct od oko 50GB. Brzina prenosa podatak:ajc oko 4,5 MB/s. sto je do-
bro za optick.c diskove. ali je jos uvek sponJ za magnetne diskovc (uporedite ATAPl-6
diskove brzine lOO MB/s i prosircne Ultra..J- SCSl diskove brzine 320 MB/s). Ocekuje
se dace Blu-Ray potpuno zameniti CD-ROM i DVD diskove, ali to ce se desiti tek za
nekoliko godina.
2.4 ULAZ I IZLAZ
Kao sto smo pomcnuli na pocetku ovog poglavlja, racunarski sistem sc sastoji od
tri glavnc komponente: procesma. memorije (prim arne i sckundarnc) i ulazno-izlaz-
nih (U/1) urel1aja kao sto Sll stampaci, skcncri i modcmi. Dosad smo upoznali proce-
sor i memoriju, a sada treba da obradimo ula.mu-izlazne uredaje i nacin njihovog
povezivanja sa ostatkom sistema.
[A
if I
cl
ij I
i!
100 Pnglavljc 2: Organizacija racunarskih sistema
2.4.1 Magistntle
Licni racunari i radne stanice u nacelu im<0u tiLicku strukturu kao na slici 2-21\.
Uobicajeni delovi su mctalno kuciste s veiikom stampanom plocom na dnu. L:vanom
osnovna iii maticna ploca (engl. motherboard). Na maticnoj ploci nalazi se pruce-
sorski cip, kao i nekoliko podno/ja za memorijske DlMM module i druge pomocne
cipove. Duz maticne ploce prott:Ze se magistrala iii sabirnica (engl. hus) sa uticni-
cama u koje se mugu umetnuti ulazno-izlazne kartice (PCI magistrala). Stariji PC
racunari imaju i drugu magistralu (!SA), namenjenu starijim ulaLno-izlaznim kanica-
ma, ali je savremeni racunari nemaju i ona poiako izumire.
SCSI kontroler
Zvucna kartica
Modem
o=
D D D D
(
I
Konektor
Mesto za kartice
Slika 2-2!1. Fizicka 'truktura licnog racunara.
Logicka struktura jednm;tavnog licnog racunara namcnjcnug ohicnim korisnicima
prikazana je na siici 2-29. Ta struktura irna jcdnu magistraiu kuja povezuje procesor,
memuriju i ulazno-izia;ne uredaje; vecina realnih sistema ima dvc i vise magistrala.
Svaki uiazno-izla;:ni uredaj sastoji sc od dva de! a: jedan sadrzi gotovo svu elektruniku
i zove se kontroler (engl. nmtml/er). a drugi jc sfun ulazno-izlazni uredaj, npr. disk.
Kontroieri se obicno smdtaju m kartice koje se umecu u slobodnc mien ice, osim ako
je ulaLno-izlazni uredaj obavcwn (npr. tastatura). kada se kontrolcr ponekad smdta na
samu maticnu piocu. lako je monitor obaveLan. video kontrolcr se ponckad srndta
na dodatnu karticu kaku bi se korisniku omogucio izbor kartica s grafickim akcclcra-
torom iii bez njega, s dodatnom memnrijom iii hez nje itd. Kontroler sc sa svojim ulaz-
no-izlaznim uredajcrn povezuje kablum koji sc umece u odgovarajuci prikljucak na
pozadini kuc'ista.
Posao kontrolera jc da upravija ulazno-izLtznim urcdajcm i zahtevima za pristu-
panje koji rnu stizu s rnagistralc. Kada, na primer, programu ;:atrcbaju podaci s diska,
on zadajc komandu kontroleru diska. a on Lada di:<ku ;:aclaje komandc ;:a pretra/.ivanjc
i siicno. Kada pronade odgov<m0ucu staLLt i scktor. disk pocinje da salje podatke kon-
troieru u ohiiku scrijsk,Jg toka hitova. Kontrolcr tacla treba da razbije tok bitnva u
odgovarajuce jedinice ida svaku jcdinicu na propisan nacin upise u memoriju. Ta je-
dinica je nbicno jcdna iii racunarskih reci. Kontroler koji u memuriju upi<.;uje
ZA Ulaz i izlaz 101
Monitor
Maglstr313
Stika 2-2'J. Logicb struklura jcdno,tavnog licnog ral'unara.
podatke iii ih i;: nje cita bez pomoc'i procesora ima tzv. clircktan pdstup memoriji
(engl. Direct 1Henwrv Access), pnznatiji po skracenici Di\L\. Kada se prenos podata-
ka zavrsi, kontmler obicno itaziva sistcmski prckid (eng:!. intampt). prisiljavajuci
procesor da privremeno zaustavi izvrsavanje td..uceg programa i zapocne iz.vrsavanje
specijalne procedure nazvane obrada sistcmskog pre kid a (engl. interntt'' lwtlllie'")
koja pmverava grcske, eventualno preduzima neophodnu specijalnu aktivnost i oba-
ve;tava operativni sistem da je uiazno-izia;:ni uredaJ ;:avr.,iio posao. Kada se zansi
obrada si,k'tmk.og prekicla. proce'm nastavija da izvrsava program koji je
vljcn pri pujavi sistemskog prckida.
i\lagi.straiu ne kuri\le samu ulazno-i;lazni kontruleri. veL' i procesur :ca
manJc i pt,dataka. Sta se kada procesor i kllntrnier ulazno-i,dc:;n,Jg
uredaja pozcic da isll)Vf"ClllCilO magi.-,tra!u"
1
0 tome lld!ucuje poseban cip lla-
zvan arbitar magisiralc \engl. bn1 urhilLT). UiaLIHl-izia.cni urcdaji imaJU prcclnost
rwd prucc,url'lll jer -;e disktwi i drugi pokremi elcmcnti ne mogu Dlthtaviti u hndu
ada sene itgubc po,jaci. Kada nijed,m uiazno-iziaz.ni urcctaj ne radi, mul.c
da iskmi.s1i sve ciklusc magi-;trak da bi pr:.-;tupao mcmurij;. i\ledutim. ak,,u i.stu vre-
me nek.i ulazno-izlazni uredaj. on c'c po\'r<:mcnu na magl':trJu
i sv:lki pu: cc mu hili uduvoljcn'' Ovaj pruc,?s koji u:;plrava raJ racunara zove se
krada (engl. cYcle s//'(1/ing).
Opi:<ma <1r:;ani1.acija mllicno jc t'dgovar:tla prvim iicnim racunarima jLr su .s\ c
komponcnte bile priblizno uravill)tczenc. MeJutim. kada su pruccsc>ri, tnemurije i
uhunn-iilaLni uredaji brzi. puja\ iu prublern: m:tgi.-,trala vi;c nijc mogLt tL:
ohtadtijc s:mbracaj. U tatvurenom sistemut nrr. u nekcj radnuJ
stanici). rc,enjc bi hi!o da se /.a sledcci l11Ldel projcktujc i napr:tvi lrh magi';tr:iLt.
111kada nik,l nijc prebacivao ;,tare ula;no-izlazn:: urcdaj,. .,a :-.tarog mudcla na
nov. ovakav rri:.;tup .ic hiu opr:tvdan.
Ll S\etu PC K\riSJ1ici ccstu nadgraclc!ju SVl\jC pmc'i"SlX<.:. ali r-:t-
Stanq;alc, i nloJc-nte. jc nasLda ogn)lll!1a indu.-.;!rija
r
IJ!i

Jill
!;:1
I
102
Poglavlje 2: Organizacija racunarskih sistema
ulazno-izlaznih ureltaja za IBM PC magistralu, a ona nije imala bas ni malo intcresa
da sve sto je investirala odbaci i pocne iz pocetka. IBM je naucio jednu takvu nepri-
jatnu lekciju kad je trzistu kao naslednika IBM PC racunara, predstavio sistcm PS/2.
PS/2 je imao novu i br:lu magistralu, ali su proizvodaci klonova uglavnom i dalje ko-
ristili staru PC magistralu, sada nazvanu ISA (Industry Standard Architecture).
Vecina proizvodaca diskova i ulazno-izlaznih uredaja i dalje je pravda kontrolere za
njih, tako da se IBM nasao u cudnoj situaciji: postao je jedini proizvodac PC racunara
koji nisu bili kompatibilni sa IBM-ovim PC racunarom. Najzad je morao da poklekne
i da na sistemu PS/2 obezbccli poclrsku za ISA magistralu. Pomenimo uzgrcd cia je
- u kontekstu masinskog nivoa racunara- ISA akronim ocl Instruction Set Architec-
ture (arhitektura skupa instrukcija). a Industry Standard Architecture (standardna
racunarska arhitektura) kada se govori o magistralama.
Uprkos velikom pritisku trzista da se nista ne menja, stara magistrala je hila zaista
previse spora, pa se nesto moralo uciniti. Zhog toga Sll druge kompanije poccle cia pra-
vc racunare s vise magistrala. ocl kojih je jedna hila stara ISA magistrala iii njen sled-
henik EISA (Extended ISA. prosirena !SA magistrala), koja je bila kompatibilna sa
starom verzijom. Najpopulamija od drugih magistrala sada je PCI magistrala (Peri-
pheral Component Interconnect, povezivanje pcriferijskih komponenata). Projekto-
vao ju je InteL ali je odlucio cia sve patente koji se odnose na nju prebaci u javno
vlasnistvo i tako podstakne citavu industriju (ukljucujuCi i konkurcnciju) dajc prihvati.
PCI magistrala se moze iskoristiti u mnogim kontiguracijama. a tipicna kontigu-
racija prikazana je na slici 2-30. Procesor s kontrolerom memorije kornunicira preko
narnenskog voda velikc brzine. Kontroler direktno kornunicira s memorijom i PCI
magisrralom, tako da saobracaj od proccsora ka memoriji ne ide preko PCI magistra-
le. Medutim, periferijski uredaji koji ostvaruju veliki protok podataka mogu se direkt-
no povczivati s PClmagistralom. Osim toga, PC! magistralaje mostom povezana sa
!SA magistralom, pa se i dalje mogu koristiti !SA kontroleri i njihovi uredaji, iako je
vee receno daje !SA magistrala prevazic1cna. R.acunar ovakve konstrukcije po pravilu
bi sadrzao tri iii cetiri prazne PCI uticnicc i jeclnu do dve ISA uticnice kako hi kori-
snici mogli da u njih utaknu i !SA karticc (obicno za sporije ulazno-izlazne uredajc)
i nove PCI kartice (za brze uredaje).
Danas postoje brojne vrstc ulazno-izlaznih uredaja. U nastavku govorimo o neko-
liko uohicajenih.
2.4.2 Terminali
Racunarski tcrminali irnaju dve komponentc: tastaturu i monitor. U svctu cen-
tralnih racunara ovc dve komponente su cesto integrisane u jeclinstven uredaj koji je
s glavnim racunarom povezan serijski, telcfonskom linijom. Pri rezervisanju avionskih
karata. u bankarstvu i u clrugim aktivnostima kojc se obavljaju na velikim racunarima
ovakvi uredaji se i dalje cesto koriste. U svetu licnih racunara, monitor i tastatura su
nezavisni uredaji. Bez ohzira nato, nacin rada ove clve komponentc uvek je isti.
2.4 Ulaz i izlaz
SCSI
magistral a
103
Memorijska magistrala
I
I I I I PCI magistrala

____j L___
ISA magistral a
Slika 2-30. Tipican savremcni PC koji ima i PCJ i !SA magistralu.
Mmlcm i zvucna kartica su !SA urcdaji; SCSI kontrnlcrjc PC! urctlaj.
Tastaturc
Postoji vrsta tastatura. Uz miginalan IBM-ov PC racunar isporucivana je tzv.
klik tastatura koja je korisniku jasno stavljala do znanja da je ispravno pritisnuo taster
- osecao hi to pod prstima i i cuo bi odgovarajuci zvuk. Danasnjc jeftinije tastaturc nc
daju takvc povratnc informacije- korisnik mora vise cia pazi. Bolje verzijc imaju sluj
elastomera (slicnog gumi) izmedu tastera i stampane ploce ispod njih. lspod svakog ta-
stera nalazi se svojevrsan ,driker" koji se zakopca kada se taster thwoljno pritisnc
- tada SL' u njcmu spoje dva mala kuntakta i 1.atvmc elektricno kolo. Neke tastaturc
ispod svakog tastera imaju magnet koji pri pritisku pnllk kroz solenoid i tako indukuje
ekktricni signal. Primcnjuju se i druge razlicite mchanicke i elektmmagnetne metode.
Na licnim racunarima, pri pritiskanju tastcra generisc se sistemski prekid i pokrecc
se procedura za njcgovu obradu (kratak program koji jc deo operativnog sistema).
Pmcedura za ubradu sistemskog prckida ocitava hardverski registar unutar kontrolera
tastature i iz njega uzima broj pritisnutog tastcra (od I do I 02). Kada 'e taster otpusti.
gcncrise sc drugi sistemski prekid. Tako, kada korisnik priti,ne taster SHIFT, zatim
pritisne i otpu,;ti taster M a onda otpusti taster SHIFT opcrativni sistem zakljucu.Je da
korisnik ne zeli da llllCSC malo slovo ,.m", vee vcliko .,M". Obrada nizova pritisnutih
tastera, mcdu kojima su tastcri SHIFT. CTRL i AIT, izvodi sc potpunu softvcrski
(tikljucujuci i kombinaciju tastcra CTRL-i\LTDEL kojom se ponovo pokrecu svi
lB:Vl-ovi PC racunari i njihovi klonovi ).


'
'!
104 Poglavljc 2: Organizacija racunarskih sistema
CRT !\Ionitori
Monitorje kutija u kojoj se nal<v:i katodna cev (engl. Cathode Rav 1itbe. CRT) i
sistcm za njcnu napajanje. Katodna cev sadrzi tzv. elektronski top koji emituje snop
elektrona na fosforescentni ekran na njenorn prednjem kraju. kao na slici 2-3 1 (a).
(Monitori u boji imaju tri elektronska topa, po jedan za crvenu. zclenu i plavu boju.)
Tokom hori;.ontalnog skeniranja. elektronski snop prec1e preko ekrana za oko 50 ps
skuro horiJ:untalnom linijom. Zatim se vraca na levu ivicu ekrana da hi zapoceo sle-
dceu hurizontalnu liniju. Uredaj koji generise sliku na ovaj nacin. red pored. zove sc
uredaj za rastcrsko skeniranje (engl. raster scan).
Horit:ontalnim krctanjem elektronskog mlaza upravlja linearno rastuci napon iz-
mcuu dve vertikalne ploce postavljcnc levu i desno od njcga. Vertikalnim kretanjem
upravlja i napon koji rastc linearno (ali mnugo sporije) na horizontalnim plocama po-
stavljcnim ispod i iznad mlaza clektrnna. Poslc izmedu otpri1ike .:1-00 i 1000 sctnji
clektronskog rnlaza po ekranu. napon na horizonta1nim i vcrtika1nim plocama za
upravljanje istuvremeno se mcnja i mla; elcktrona se vraca na pocctak slikc- u levi
gornji ugao ekrana. Celokupna slil-ca na ekranu obicno sc iscrtava od 30 do 60 puta u
sekunui. Kretanje dektronskog mlcu"a prikazano je na sliei 2-31 (b). lako smo (zbog
razurncvanja) naveli da ,,c elektronski mlaz skrec'e promenom jacine elcktric-
nog pulja iL'Jnedu horimnta1nih i vertikalnih ploca. u mnogim mndclima katodnih
cevi u tu svrhu se koristi elcktromagnetno pnlje. narncito u zahtevnijim monitorima.
Elektronsk1 top
Par ploca
za verlikalno
skr eta nje elektronskog
mlaza
Ia)
Resetka
/ /Ekran
Tacka
/ na ekranu

Horizontal no skeniranje
\
Povratak na pocetak Povratak na pocctak
sledece slike ib) sledeceg reda
Stika 2-31. (a) Poprecni prcsck katodn.: n:vi. (b) NaCin iscrtavanja :-.like pornoc'u katodne cevi.
Da bi ekktronski mlaz na ckranu iscrtavao tacke. na njegovom putu u katodnoj cevi
nala1i sc rcsetka. Kaua je po;.itivno naelektrisana. mlaz clektrona sc ubrnva i oni
udaraju u ekran prinudujuci gada nakratko zasvetli. U drugom slucaju,
negativan napon resetke kuci e1cktronski mlcll. i on tada uopste ne stize Jo ekrana
- ncma svdlc tacke na njemu. Taku sc lllcnja napon pa se na ckranu pojavljujc
bitmapirana (rasterska) slika. Ovaj mehanizam omogucava da se binarno kodiran si-
gnal vil.lwlno prikaze kao skup SYL'tlih i tamnih tacaka.
2.4 Ulaz i izlaz 105

Monitori s ravnim ckranom
Katodna cev je previse kabasta i tdka Ja bi se mogla koristiti u prenosivim racunar[-
ma. pa je za njihove ekrane iskoriscena potpuno drugacija tehno1ogija. Najpoznatiji
ekrani s tecnim kristalima (engl. Liquid Crvstul!Jisplay, LCD). LCD tchno1ogijae
vrlo slozena. javlja se u brojnim oblicima i svakoga dana se unapredujc, tako da cemo
je opisati ukratko i veoma uprosceno.
Tecni kristali su viskozni organski molekuli koji mogu cia teku. slicnu tccnosti. ali
i da zadrzavaju svoju prostornu strukturu, slicno kristalima. Otkrio ih je Rhcinitzcr,
austrijski botanicar, 1888. godine. a prvi put su primcnjeni sezdesetih godina za rm.-
licitc ekrane (kalkulatora. rucnih satova itd.). Kada su svi molekuli poravnati u
pravcu. npticka svojstva tecno'g kristala t.avise od smcra i polarizacijc dulazne svct-
losti. SpolJllasnje clcktricno poljc moze da promeni rasporecl molcku1a. a to znaci i
njihova o
1
Jticka svojstva. Konkretno. kada tccni kristal osvctljavamo s jcdnc stranc.
pomocu spoljasnjcg elektricnog polja mozemo upravljati intent.itetom propustene
svetlosti. Ta pojava se moze iskoristiti za kon,truisanjc pljosnatih (ravnih) ckrana.
LCD ekran se sastoji ml dve paralelnc staklene ploce innedu kojihjc zatvuren tccni
kristal. Na ploce su postaviJene providne clcktrude. lzvor (prirodne iii vdtackc) svc:-
tlosti usvetljava ekran od po;:adi. kroz zadnju plocu. Prcku pruviclnihclel-ctwda na stak-
lenim plucama dovodi se napon koji u tccnom kristalu izrnedu njih stvara clcktricno
polje. razlicito na raz1icitim deluvima ekrana. slo omogucujc upravljanje slikom na nje-
mu. S.1 obe strane ravnog ekrana nalcp1jeni su polarit.atori jer semora kuristiti pulari-
zovana svet1ost. Opisanu konstrukciju jc laksc razumeti sc pogleda slika 2-32(aJ.
Tecni knsta!
Zadnja
staklena ploca
Zadnja
elektroda
Zadn!i
polar'lzator \ \
-, -,' 1
I
I
lzvor
svetlost1
Prednja staklenil ploca
Predn1a elektroda
PrednJi poianz.ltor
r t .
Ill G
\Ill Tarn'
10

I

Ia i
//h
'
[I]
IW:t I /z
I
(/ I '
lili
Slika 2-J:!. 1 a 1 nd,'--ijct Lt 'D 1 h J /.:CL( lVi n;1 1.:1dnjuj i pr..._'Jnj( ! p!l 'li
<.;u jcdni ru drngc.
r

j
! '
106
Poglavljc 2: Organizadja racunarskih sistema
Iako sc koriste brojne vrste LCD ekrana, sad a cemo prim era radi razmotriti jednu
konkretnu vrstu, ekran sa uvijcnim ncmatickim kristalima (engl. 1\vistcd Nematic,
TN). Njegova zadnja ploca je izbrazdana finim horizontalnim zlebovima, a prednja
vcrtikalnim, kao na slici 2-32(b ). Kada nema elektricnog polja, LCD molekuli teze da
sc poravnaju sa zlebovima. Posto zlebovi na zadnjoj i prcdnjoj ploci stoje pod pravim
uglom, molekuli se rasporeduju od jednc do druge ploce na ,uvijeno( niti (i pri tom
zadr:lavaju svoju kristalnu strukturu).
Na zadnjoj strani ekrana nalazi se horizontalni polarizator koji propusta samo ho-
rizontalno polarizovanu svetlost. Na prednjoj strani je vertikalni polari;r.ator koji pro-
pusta samo vertikalno polarizovanu svetlost. Kada izmedu ploca ne bi bilo tecnog
kristala, horizontalno polarizovanu svetlost koju propusta zadnji polarizator blokirao
bi prednji polarizator i ekran bi bio ravnomerno zatamnjcn.
Mcdutim, uvijena kristalna struktura LCD molckula vodi svetlosne aake i obrce
ravan njihove polarizacije, tako da kroz prednju plocu oni prolaze vcrtikalno polari-
zovani. Na taj nacin, kada nema elektricnog polja, LCD ekran jc ravnomerno osvet-
ljcn. Kada se na dclove plocc primeni napon, moze se razoriti lokalna struktura
uvijcne niti pa jc ekran u tim delovima zatanmjen.
Napon sc mozc primeniti na dva nacina. Elektrode (jeftinijihJ ekrana s pasivnom
matricom (engl. passive matrix disf!luy) sadrz.c skupove paralelnih zica. U ekranima
rezolucijc 640 x 480 tacaka, na primer. L:adnja elcktruda moze da irna 640 ver1ikalnih
zica. a prednja 480 horizontal nih. Ako jednu od horizontal nih zica stavimo pod napon,
a zatim krozjeclnu od vertiLt!nih /jca propustimo elektricni impuls, promenicemo na-
pon u jcdnoj tacki ckrana i ona ce zakratko pntamneti. Kako se elektricni impuls pro-
pusta kroLuzastopne vertil-.alne l'ice. na ckrarm se pojavljujc tamna horizontalna linija,
onako kako bi je iscrtala katodna ccv. Ceo ekran se obicno isc11ava 60 puta u sckundi,
pa oku izgleda da slika na njemumirujc- opet, na isti nacin kao stu dclujc katndna cev.
Druga scmaje eknm sa aktinwm matricom (engl. octil'C nwtrix
displur). Onje skuplji. ali daje bulju sliku. Umesto dva skupa uzajamno normalnib zi-
ca, on na mcstu svakog pikscla na jcdnoj od elektruda irna sicusan prekidacki ele-
ment. Lkljucivanjem i iskljuci,anjcm ovih prckidaca na ekranu se moze iscrtati
proizvoljna bit mapa. Prckidacki dementi se zovu tankoslojni tranzistori (engl. thin
.filllltmnsistors), a ravni el-.rani u kojima se koriste- TFT ckrani. U vecini prcnosivih
racunara i ravnih ekrana za stone racun<lfC danas jc prime:;jcna TFI' tchnologija.
Uspcli srno da objasnimn kako rade monohromatski ckrani. Za ekrane u boji, do-
voljno jc rcci da rade na istim opstim principima, ali su im dctalji mnogo kompliko-
vaniji. Pri razlaganju bclc svctlosti na crvenu, ;r.clenu i plavu kclmponentu koristc se
opticki riltri na mc.slu sv;lkog piksela tako da se oni mogu prikazivati potpuno neza-
visnu jedni od drugih. Svaka boja se mol.e dobiti linearrwm supc-po;:icijom pomcnu-
te tri osnuvne bojc.
Ulaz i izlaz
107
Video RAM
Slika na CRT i TFf ekranima osvdava se 60-1 00 pula u sekundi iz specijalne me-
morijc, nazvane video RAM, koja nalazi na kontroleru ekrana. Ta memorija sadrzi
jednu iii vise bitmapa koje predstav!jaju sliku na ekranu. Za ekran sa, recimo, 1600 x
1200 elcmenata slike, zvanih pikseli (engl. pixels), video RAM bi sadrzao 1600 x 1200
vrednosti - po jcdnu za svaki piksel. On, u stvari, moze da sadrzi vise bit mapa kako bi
se omoguCio brz prelazak s jedne ekranskc slike na drugu.
Na skupljim ekranima svaki piksel je predstavljen 3-bajtnom RGB vrednoscu, po
jedan bajt za intenzitet crvene, zelene i plave. Iz fizike jc poznato da svaku boju rnozc-
mo sastaviti lineamim supcrponiranjem crvene, zelene i plave svetlosti.
Video RAM za cuvanje slike od 1600 x 1200 piksela, uz 3 bajta po pikselu, bio bi
velik skoro 5,5 MB, pa bi sc procesor prilicno namucio da bilo sta s njom uradi. Zbog
togaje kod nekih racunara napravljcn komprornis- zeljena boja se oznacava 8-bitnim
brojem koji se koristi kao indcks u hardverskoj tabcli, nazvanoj paleta hoja (engl. co-
lor pa/e!le), kuja sadrzi 256 stavki s razlicitim 24-bitnim RGB vrednostima. Takvo in-
dcksiranje boja (engl. indexed color) smanjuje potrcban video RAM za 2/3, ali se na
ekranu istovrcmcno vidi samo 256 nijansi. Svaki prozor na ekranu ima sopstvenu
semu prcslikavanja boja, ali se uzjednu hardversku paletu boja i vise otvorenih prozo-
ra na ekranu cesto samo aktivni prozor prikazuje u pravim bojama.
Za bitmapirani video prikaz neophodanje vcliki propusni opscg za podatkc. Da bi
se na celom ekranu rezolucije 1600 x 1200 piksela prikazao multimedijski sadrzaj u
svim bojama, potrebno je da se za svaki okvir u video RAM-u kopira 5,5 MB podataka.
Za filmje neophodna brzina prikazivanja od barem 25 slika u sekundi iii protok poda-
taka od 137.5 MB/s. To jc rnnogo vise nego sto (E) ISA magistrala mo2e da podrli, eak
vise i od mogucnosti prvobitne PCf magistrale ( 127,2 MB/s). Naravno, za rnanje slike
potreban jc manji propusni opseg, ali propusni opscg i dalje ostaje problem.
Da bi obczbedio veci propusni opseg od procesora do video RAM-a, Intel jc od
Pentiuma II uveo novu magistralu ka video RAM-u, tzv. prikljucak za ubrzanu gra-
tiku (engl. Anelaoted Graphics Port, AGP hus), koji je mogao da prcno-;i 32 bita
podataka- 252 MB/s- ucestaloscu od (J6 MHz. Njene naredne verzije radile su dvo-
strukom, cctvorostrukom. pa cak i osmostrukom brzinom i tako obezbedivalc do-
voljan propusni opscg za visokointcraktivan rad s gratikom, ne prcoptcrecujuci pri
ton1c glavnu PC! magistralu.
2.4.3 MiScvi
Kako vreme prolazi, na racunarima radi svc vise korisnika koji sve manje znaju o
tome kako oni rade. Racunare generacijc ENIAC koristili su samo oni koji su ih i pra-
vili. Pedesetih godina proslog veka. racunare su koristili samo dobro obuceni profe-
sionalni programeri. Demas racunare koriste !judi koji pomocu njih treba da zavrse
neki posao i nc znaj u ( cak i ne ;;e]c da znaj u) mnogo o tome kako racunari rade i kako
se prograrniraju.
l'11
mll
"'}!i

H;i
f'
108
Pnglavljc 2: Organizacija racunarskih sistema
Nekada Javno, svi racunari su imaii kurisnicko okruzcnjc s konnndnom linijom na
koju su k01isnici unosili tekstualne komande. su ohicni korisnici (dakle, nc
strucnjaci za racunare) cesto takvo okruzcnje smatrali prilicnu nezgudnim ;a raJ, cak i
odbojnim, neki proizvndaci racunara smislili su okruzenja u kojima se nesto na ckranu
moze pokazati i zatim pritisnuti, npr. Macintosh i vVindows. Za takav model bio je ne-
ophodan i urcdaj kojim se nesto na ekranu moze pokazati, a najccsci takav uredaj je mis.
Mis (engl. mouse) mali je piasticni uredaj koji stoji na stoiu pored tastature. Kada
ga pomerate pn stolu, zajedno s njim krece se i mali pokazivac na ekranu, sto koris-
nicima omogucava cia pomocu misa pokazu neki clement na ekranu. Mis imajedan,
elva iii tri tastera s gornje stram: pornocu kojih korisnici mogu cia biraju stavke iz me-
nija. Mnogo racunarske krvi je proliveno u zucnim raspravama o tome koliko tastera
treba cia ima mis. Pocctnici najvise vole jedan taster (tdko je pugresiti ako imatc
samo jedan), ali se iskusnijima dopada vise lastera.
Do sada su pravljene tri vrste miseva: mchanicki, opticki i uplomehanicki. l'vkha-
nicki misevi se oslanjaju na elva gumena tockica. cije su usovine medusobno n<mnal-
ne. Kada se mis pol-.n:c'c parakino s glavnom osom. okrcc'e 'e .JCdan tockic. Kada se
pokrccc normalnu na glavnu osu. okrecc se drugi. Za svaki tockic vc;anje prmnenljivi
olpornik (potencinmclar). Tako merenjem promenc elektricnog utpora moze inacu-
nati stepen rotaeijc svak<Jg tockica i put koji je prcsau mis u svakom pravcu. U n<wije
vreme nvakva konstl"l!kcija uglavnumje zamcnjena drug:tcijomu knjoj mis pu rndlot.i
klizi na gumennj kuglici koja svoje kretanje prenosi na dva normal no postavljcna vaij-
ka u unutrasnjosti Takav jc pril-.azan na slici 2-33.
Pokaz1vac kojim up1 avl1a ill IS
P1 o1or Meni
T en
fv1,s
Gurnena ktlg;ica
k:dji kuri:-.ti La ,-.,Lld,J iz na
Drug:t vrsta su ,;pticki Oni ncm:1ju ni ltlChiL'c ni kuglicu. ncgt' u Jonjcm
delu imaju svetlosnu rli.,du (engl. Light Emirring f)wde. LED I i f,ltoJctcklor. Opti:'ki
2.4 Ulaz i izlaz
109
mis se koristi u pant sa specijalnom plasticnom podlogorn na kojoj se nalazi
ousto iscnanih linija. Kada semis pokrece prcko mrde, fotodetektor registruje linije
osnovu promene intenziteta odbijcne svetlosti koju ernituje cliocla. Elektronika
unutar misa broji linije preko kojih mis predc u svakom pravcu.
Trcca vrsta su optomehanicki misevi. Kao i noviji mehanicki i oni imaju
kuglicu koja svoje kretanjc prenosi na dva valjka postavljena pod pravim ugiom. Yalj-
ci . .;u povezani sa elcmentima za kodiranjc- prorezima kroz koje prola;i svetiost. Dok
sc mis krece i valjci rotiraju, svetlosni impuisi pogadaju fotodetektore svaki put kada
sc pojavi prorez inncdu LED diode i njenog detektora. Broj registrovanih impulsa
proporcionalan je putu koji mis prede.
[ako postoje razliciti nacini, uobicajeno je da mis racunaru salje niz od 3 bajta kad
sc pomeri za ncko minimalno rastojanje (npr. za 0,0 I inC), ponekacl zvano miki
(engl. mickey). Ovc informaeijc se ohicno salju serijski, bit po bit. Prvi bajt je oznacen
ceo broj (engl. signed integer) koji racunaru saopstava koliko se jeclinica mis pomcrio
u pravcu x od posiednjeg pula. Drugi bajt saopstava slicnu informaciju za pravae y.
Treci bajt sadrzi trenutno stanje tastera. Ponekad se za svaku koorclinatu knriste 2 baJla.
Racunarski soft ver niskog nivoa prihvata ovc inforrnacije i rclativno krctanje rntsa
pretvara u njegovu apsolutnu poziciju na ekranu. On zatim na tom mestu ekrana pri-
kazuje strelieu. Kada se strelica nalazi iznad odgovarajuce stavkc na ekranu i korisnik
pritisnc taster misa, racunar moze cia zakljuci stajc to korisnik izabrao na osnovu po-
znavanja pozicije strclice.
2.4.4 Stampaci
Kada samostalno naprave neki dokument iii ga prcunnu s Wcba, korisnici obicno
:l.de ida ga odstampaju, tako da svaki racunar omogucava prikljucivanje stampaca.
U ovom odeljku opisacemo ncke od uobicajenih vrsta crnobelih stampaca i stampaca
u boji.
Crnobcli stampaci
Najjeftinija vrsta stampaca je matricni stampac (engl. ll!atrix printer). cija glava
za \tampanje ima izmedu 7 i 24 igiice (aktiviraju se elektromagnctnim putcm) i pre>
lazi prcko svakng reda koji se stampa. Jeftini stampaci ove vrste imaju scdam igliea
pomol"u kojih u matrici S x 7 u jednurn redu mogu cia odstampaju g() znakova. Red
preku koga prclazi giava sastoji se od 7 horizontainih linija sapoS x go= 400 hiptl-
tcrickih tacaka. Svaka tacka rno/.e da bucle iii da ne bude odstarnpana, cime sc ohli-
kuju znakovi. Slika 2-3-t(a) prikazuje siovo ,A'" odstampano u matrici S x 7.
Kvalitct starnpanja se mozc poboljsati pomocu dve tehnike: ukoiiko se ugradi VISC
iglica u matricu i ako sc preklapa njihuv otisak. Slil-.a 2-34(b) prikazuje slovo ,X'
odstampano pomocu 24 igiice ciji se otisci prekiapaju. Preklapanje otisaka sc posti/t:
visekratnim proiazom glave za stampanje duz istog rcda, tako da bolji kvalitet znaci
spurije stampanje. Vdina matricnih stampaca ima vise radnih rdima, s razlicillm
k.Jmpmmisima il.meclu kvaliteta srarnpe i brzinc.
r
l
.I
[l
r
1:
l
t
I
0
0
0
0
0
0
0
00000
0 0
0 0
(a)
Poglavlje 2: Organizacija racunarskih sistema
(b)
Slika 2-34. (a) Slovn ,.A .. u matrici S x 7. (bJ Slovo .,A'" odstampanu pomul'u 24 iglice
ciji sc otisak preklapa.
Matricni stampaCi sujeftini (narocito u eksploataciji) i veoma pouzdani, ali su spo-
ri, bucni i nekvalitetno stampaju slike. U danasnjirn sistemima uglavnom se koriste u
tri svrhe. Prvo, veorna su popularni za stampanje velikih obrazaca (duzih od 30 em).
Drugo. dobri su za starnpanje i na hartiji malog formata, kao sto su tiskalni racuni,
racuni iz automata, izvdtaji o transakcijama kreditnom karticom iii privremene karte
za ukrcavanje u avion. Trcce, za stampanje obrazaca u obliku originala s vise kopija
na beskonacnom papiru, oni su obicno najjeftinije resenje.
Za jcftino stampan jc kod kuce najorniljeniji su mlazni stampaci (engl. inkjet prin-
ters). Pokretna glava za stampanjc koja nosi patronu s mastilom krece se horizontalno
preko papira i istovremeno ispusta na njega mastilo kroz hne mlaznice. Kapljice masti-
la su zapremine oko jednog pikolitra, sto znaci da I 00 miliona stajc u kap vode.
Postoje dve vrste mlaznih stampaea: piezoelektricni (Epson) i termicki (Canon,
HP i Lexmark). Piezoelektricni mlazni stampaCi pored kornore s mastilom imaju i
specijalan kristal. Kada se na kristal primcni clektricni napon. on sc malo deforrnisc
i istisne kapljicu mastila kroz mlaznicu. Veci napon daje krupniju kapljicu, sto omo-
gucava da se njenom velicinom upravlja softverski.
Svaka mlaznica termickih mlaznih stampaca sadrzi mali otpornik. Kada se na
otpornik primeni napon, on se izuzetno brzo ugreje i tempcraturu okolnog mastila po-
digne do lackc kljucanja, tako cia se u m!aznici stvori mehuric pare. Zbog stvorenog
pritiska mastilo izlecc kroz mlaznicu na papir. Mlaznica se tada hladi i stvoreni vaku-
um usisava drugu kap iz rczervoara s mastilom. Zhog toga se tlVakav stampac pone-
kad ZO\'C i stampac s mlazom mehurica (engl. hubblejet printer). Brzina stampanja
mlaznim modelima zavisi od toga kojom sc brzinom mogu smenjivati ciklusi uza-
stopnog zagrevanja i hladenja mlaznica. Sve kapljice sujcdnakc vdicine, ali su ohic-
no sitnije od onih kojc stvaraJLI piezoelektricni stampaci.
Mlazni ~ t m p c i po pravilu imaju rezoluciju od najmanje 1200 tacaka po incu
(engl. dots per inch. dpi), a oni najsavrseniji i 4800 dpi. Jeftini su. tihi i kvalitetnn
stampaju. ali su i spori. a patrone s mastilom su skupe. Kada se na najkvalitetnijem
Ulaz i izlaz 111
mlaznom stampacu odstampa fotograhja u visokoj rczoluciji na specijalno premaza-
nom papiru, rezultat sene rnoze razlikovati od originalne fotografije, veliCine cak 8 x
JO inca (1 inc=2,54 em).
Laserski stampac (engl. laser printer) verovatno je najveCi napredak u stampar-
stvujos od Gutenberga, kojije u petnaestom veku izmislio izmenjiv slog. On daje vi-
sokokvalitctan otisak, izuzetno je fleksibilan i brz, a troskovi su umereni. U lascrskim
stampacima primenjena je skoro ista tehnologija kao u aparatima za fotokopiranje.
Mnoge kompanije proizvode kombinovane uredaje za kopiranje i starnpanje (a pone-
kad i za slanje faksova).
Osnovni princip rada prikazan jc na slici 2-35. Glavni cleo stampaca je rotacioni
valjak (iii u nckim vrhunskim modclima, sirok beskonacni kais). Na pocetku stam-
panja svake stranice, on se staticki naclektrise naponom od oko !000 volti i prekrije
fotoosetljivim matcrijalom. Potom sc valjak skcnira lascrom po celoj duzini, slicno
kao sto elektronski mlaz skenira ekran katodne cevi, sarno se umesto rastuccg napo-
na, za horizontalno porncranje po duzini valjka koristi rotaciono osmougaono ogle-
dalo. Svetlosni snop se modulira da hi sc dobio niz svetlih i tamnih tacaka. Tacke na
valjku pogodcnc svetlosnim snopom gube naclcktrisanje.
Laser
( D
Cist
paprr
0
Rotirajuce osmougaono
_ ogledalo
Skidanje viska tonera
Neutralisanje naelektnsanra
~
Naslagan
odstampani
papir
Slika 2-JS. Princip rada lascrskog starnpaca.
Po skeniranju jcdnog rcda tacaka, valjak se zaokrene za mali ugao da bi se mogao
skenirati sledeci red. Pri takvom postupnom rotiranju valjka. prvi red tacaka stize do
rezervoara s tonerom- elektrostaticki osetljivim crnim prahom. Tacke na valjku kojc
jos uvek imaju elcktricni naboj privlace cestice tonera. Kako se cesticc tonera lepe za
uza,tupne redove tacaka na valjku, tako na njemu pocinje da se pojavljuje skenirana
strana. Rotirajuci dalje, valjak pritiska papir i prenosi toner na njega. a papir se zatirn
r
1
" I'
"i
I
"I
112
Puglavlje 2: Organizadja racunarskih sistema
propusta izmedu zagrejanih valjaka da bi se toner istopio i slika na njemu tibirala.
Valjak nastavlja da se okrece, elcktricno se neutralise is njcga .;;e skida sav visak to-
nera da bi se pripremio za skeniranje sledece strane.
Ne treha naglasavati da je opisani postupak izuzetno slozena kombinacija fizike,
hemije, pecizne mehanikc i optike. Ipak, kompletan uredaj, tzv. masina za stam-
panje (engl. print engine), moze se nabaviti od vise proizvodaca. Oni ih kornbinuju
sa sopstvenom elektronikorn i softvcrom da bi napravili kompletan starnpac. Elektro-
nika sad6.i brz ugrac1cn mikroprocesor i vise megabajta mernorije koja mozc da pri-
hvati citavu bitmapiranu stranu, kao i hrojne fontovc, od kojih su neki ugracteni. a
neki se mugu preuzeti s mrcze. Vecina takvih starnpaca prihvata komande koje opi-
suju stranu za stampanje (za razliku od prihvatanja bit mape koju je pripremio glavni
procesor racunara). Komande se zadaju na raznim jezicima, kao slo su PCL kompa-
nije Hewkt-Packard i Adobeov PostScript.
Lascrski stampaci rezolucijc 600 dpi i bolje, mogu odlicno da stampaju erno-bde
fotogratije, ali je stvarnost kmnplikovanija nego sto na prvi pogled izgleda. Zamislite
da fotugratiju skeniranu rezolueijom 600 dpi treba udstampati rczolueije
(J00 dpi. Skenirana slika sadrz.i 600 x 600 tacaka po incu. a svaka tacka na crno-bL'ioj
skali ima svoju .,sivu" vrednust iZI11l'lht () (belo) i 255 (crnol. Stampac rnoze da stam-
pa u remluciji 600 dpi, ali cc svaka odstampana tacka biti iii cma (lDnerjc tu) iii bela
(nema toneraJ. Nijansc sive boje ne mogu se odstampati.
Slikc kojc imaju sivc polutonme obiCn1' stampaju postupkom rasterizovanja
(engl. lwljioning), slicno komercijalnim posterima. Slika se deli na pulutpnske celije.
naj("csl'e \elicinc 6 x 6 piksela, tako da -.;vaka L'elija moze da sadr/i izmcdu 0 i 36 crnih
tacaka. Oko vidi L'cliju' vise taCaka bo tamniju ml celijc koja manjc Ltcab. Ni-
janse sivog s vrednostima innedu () i 255 dohijaju sc takD sc ov<tj inlcrva: pudcli na
37 zona. Yrednosli sivog izmedu 0 i 6 nalazc se u ll\!li 0, vrcd:wsti ud 7 do l.l Ll !Llni
I itd. (Zona 36 je nl'Stu uza od ostalih jcr 256 nije Jeljivo -.;a .17 he; ,J:;tatka.J Kad g1)d
se na slici naide na nijansu sivc br>jc koja u ;onu 0. njena napa-
piru ostaje bela. kao na slici 2-36(a). Nipn-;e iz mne ! sc s jednum tacJ...um
u celiji. Nijansc iz zonc 2 se s dve tackc u cc!iji, k:to slici 2-361 h). \'rcd-
nosti nijansi ;a jos nekc zone prik:uane :;una slikama 2-.<(J(..:H n. Naravnu. re;.oiuc:ija
lotogratije 'kenirane u ruoluciji 600 dpi rasteri;nvanjcm clc:ktivno se snLmjuje na
\0() cclija po incu. SlO SC zuve Jinijatura iJj gustina rastera /u/fionc Sli'i'Ci!jil'-
(/lll'llt\") i uobicajerm i;razava ulinijama po incu kn!:!l. lin1'S /'i'l" i111k !pi).

(a) (b) (c) (dl (e) lfl
Slika 2-J6, Poluionokc rrrhkr:kcl ;a r:t/!iCite op'c"gc> nqrli1'i ,;,og. Ia) 0-n. I hi
(L') .20--J-f. (dJ :'h-62. [ J.
2A tilaz i izlaz
113
Stampaci u boji
Slike u hoji mogu \e glcdati na dva nacina: u propustcnoj svetlosti iii u odbijenoj
svetlosti. Slikc u propustenoj svctlosti- kao one na ckranu katodne cevi- stvaraju se
linearnim wpcrponiranjem lri aditivne osnovne boje: ervcnc, zelene i plavc. Slike
oJbijenoj svetltlSli. kao SIO Sll fotograf!je U boji i s]ike ll casopisima, apsorbuju odrc-
dene talasnc duzine bel.: svet!tlsti. a ostale odbijaju. Odhijena svetlostje sastavljena otl
lincarno superpon i ranc tri ''smwne suptrakti vne boje: cijan. tj. azurnoplavc (apsorbo-
vana je sva crvcna buj.ti, /ute (ap,orbovana je sva plava boja) i magente, tj. tamno-
ruzicaste (apsorbmanajc -.,va zclena boja). Teorijski sc svaka nijansa mozc ohrazovati
mdanjcrn azurnoplavog (eijanl. /.utog i tarnnoruzieastog (magenta) pigrnenta. U prak-
si je. medutitn, dubiti ove 'pigmente u cis tom obliku da bi se njihovim ravnomer-
nim rncsanjcm sva upadna svetlost i na podlozi dobila erna boja, Zbo;
toga skoro svi ;a slampanjc U boji koriste cctiri pigmenta: cijan, /uti, magenLI
i crni pigment. Takvi sistcmi se zovu CMYK stampaci (engl. Cvun. 1Vlagenta. Yellow,
blacK, da ncku nc bi emu boju pornc:Sao s plavom- Blue). Za razliku od stampaca, Ill
mtJJli\Orima 'c slike priJ...azuju u propustenoj svctlosli, pa se kod njih koristi RGB st-
stem boja (engl. Red- crvena, Green- zelena i Blue- plava).
Skup bnja koji moze da se prikaze na ekranu ili da sc odstampa na stampacunazi\d
'-'l' gama iii npscg boja (engl. gwHut). Nijedan uredaj ncrna gamu koja odgovara re-
alnum opscgu nijansi jcr svaka od njih rnozc imati 256 nivoa intenzitcta, sto ukupncl
,_'Hli I (J. 777 (J razlicitih nijansi. Tehnologija je ncsavrscna, pa se dodatno smanjuje
ov:tj hroj. ,1 i ono sto ostane nijc uvek ravnomerno rasporedeno duz spektra. Osim tc-
g:t. vtd..:njc boje umnogomc zavisi i od nacina rada stapica i cepica u mrdnjaci ljuc-
skog oka. a 11c samo od zakona lizicke optike.
Kacl sc> ima u vidu sve receno. jasno je da prctvaranjc slike u boji koja na ckranu
izgil'da fant ;-;tiCno u sliku na papiru uopste nije jednostavan zadatak. U problemc sc
nwl:c sledece:
1. :Vlonitmi Ll boji prikazuju sliku ll propustenoj svetlosti. a starnpaci Ll boji u
Cldhijcit' 1j svctlosti.
2. CCVi generisu 256 intcnziteta svake bojc; stampaci ll boji intenzitete
hop1 prika;uju rasterizovanjern.
.1. SliLt ;1a monituru ima emu pozadinu. a slika na papiru svct!LL
+ RGB i CMYK boja (game) nisu isti.
hi ;ranpane slike u boji odgovarale stvarnosti (iii barcm slikama na ckranul,
un:J:ui .;e nwrc0u kalibri.;ati, mora se koristiti slozen softver, a i korisnik mora imaLi
ish.u."lYo.
Zct u boji dana' sc primcnjuje pet raJ.!icitih tehnologija, a svc se zasnivaju
na C\lYK ,;i,tc:mu boja. Najjcftinija tclmologija koristi se za rnlaznc starnpace u boji.
Gni raLk na i'ii naCin kao i crno-bcli mla;ni stampaCi, ali imaju cetiri patrone s hojarm
I tJ tlJ:t".,'lllU. zutu i ernul. Dubro stampaju crtel.e u boji i urnereno dobro foto-
g;ali;c' u bil(i. ito uz skromne troskovc (starnpaci su jeftini, ali su patronc skupe).
114 Poglavlje 2: Organizacija racunarskih sistema
Za dobijanje najboljih rezultata mora se upotrebiti specijalno mastilo i specijalan
papir. Postoje dve vrste mastila. Mas til ana bazi boje sadde ( organsku) boju rastvo-
renu u tecnom razredivacu. Ona na papiru daju jarke boje i lako teku kroz mlaznice
glave stampaca. Glavna mana im je to sto blede pod dejstvom ultraljubicastog zrace-
nja iz sunceve svetlosti. Mastila na bazi pigmenata sadrze cvrste cestice pigmenta
suspendovanc u tecnom nosiocu koji isparava s papira, ostavljajuci na njemu pig-
ment. One ne blede s vremenom, ali nisu tako jarke. Cestice pigmenta lako zacepljuju
mlaznice, pa je glavu stampaca neophodno periodicno cistiti. Fotografije se moraju
stampati na prcmazanom ili sjajnom papiru, koji je specijalno napravljen da se kapi
mastila ne bi razlivale po njemu.
Sledecu stepenicu predstavljaju stampaci sa cvrstim mastilom. Oni se pune spe-
cijalnim vostanirn mastilom u obliku cetiri cvrsta bloka, koje se pre rada mora rastopiti
u posebnim rezervoarima. Zato je za pri premu ovih stampaca potrebno i do I 0 min uta.
Rastopljeno mastilo se prenosi na papir, gde ocvrscava, a zatim se propustanjem izme-
du valjaka utiskuje u njega.
Trecu vrstu stampaca u boji predstavljaju laserski stampaci u boji. Oni rade slicno
kao i njihovi cmo-beli rodaci, osim sto se za svaku od cetiri CMYK boje na valjku
obrazuje zascbna slika koja se stampa odgovarajucim tonerom. Posto se bit mapa ci-
tave strane po pravilu generise unaprecl, strana velicine i)O kvadratnih inca (516 cm
2
)
i rezolucije 1200 x 1200 dpi ima ukupno 115 miliona piksela. Uz 4 bita po pikselu,
stampacu treba 55 MB mcmorije samo za bit mapu, ada ne govorimo o memoriji za
unutrasnje procesore, fontove itd. Zbog togaje lasersko stampanje u boji skupo, ali je
brzo. veoma kvalitctno i slikc ne blede s vremcnom.
C:etvrta vrsta stampaca u boji su stampaci s vostanom trakom (engl. wax prin-
ters). Oni imaju siroku cetvombojnu traku podeljenu na delovc velicine stampane
stranc. Dok papir i traka prolaze k.roz njega, hiljade termickih elemenata tope vosak
koji ocvrscava na papiru u obliku tacaka prema CMYK sistcmu. Ovakvi stampaci su
ranije bili glavna tehnologija za stampanje Ll boji, ali su ih danas potisnuli drugi stam-
paci, na koje se trosi manje novca.
Peta vrsta su stampaci sa suhlimacijom hoja (engl. d_ve suhlimution printers). Iako
izraz ,sublimacija" mozda podseca na Frojda i psihoanalizu, tim imenom se oznacava
proces direktnng prelaska cvrstog tela u gas bez prolaska kroz tccno stanje. Suvi led
(smrznuti ugljen-dioksicl) dobro je pozna! materUal koji sublimise. U stampacu ovakve
vrstc, specijalan nosac sa CMYK bojarna prelazi preko glave za stampanje koja sadrzi
na hiljade termickih elemenata cijc se zagrevanje moze prograrnirati. Boja pri zagrc-
vanju trenutno isparava i prelazi na blisko postavljcn specijalni papir. Svaki tennicki
element moze se zagrejati do jcdne ml 256 razlicitih temperatura. Sto je temperatura
visa, vise boje prelazi na papir i stampana boja je intcnzivnija. Za razliku ocl ostalih
stampaca u boji, ovde se svaki piksel moze obojiti nijansom iz skoro neprekidne skale
boja. tako da rasterizovanje nije potrebno. Mali prirucni stampaci koji se koriste LIZ fo-
toaparate, pomocu opisanog procesa prave visokorealisticnc fotografije na specijal-
nom (skupom) papiru.
2.4 Ulaz i izlaz
115
2.4.5 Telekomunikaciona oprema
Vecina racunara je dan as umre:.i.ena, cesto i sa lnternetom, sto se postizc specijal-
110111 oprcmom. U ovom odeljku razmotricemo kako ta oprema radi.
Modcmi
S razvojem racunarstva, poslednjih godina je narasla i potreba da racunari medu-
sobno komuniciraju. Na primer, mnogi korisnici imaju kucni racunar preko koga
komuniciraju sa svojim racunarom na poslu, sa svojim davaocem Internet usluga iii
s mre?nim sistemom svoje banke. U mnogim slucajcvima ta komunikacija se ost-
varuje preko telefonske linije. ,
Telefonska linija po prirodi nijc namenjcna prcnosenju racunarskih signala koji u
nacelunulu predstavljaju naponom od 0 volti, ajedinicu naponom ocl3 do 5 volti (sli-
ka 2-37(a)). Signali sa samo dva nivoa znatno se izoblicavaju kada sc prcnose tele-
fonskom linijom namcnjenom za prenos glasa, pri cemu nastaju greskc. Mct1utim,
takvom linijom se uz srazmerno malo izobliccnja moze preneti i sinusoiclni talas
ucestalosti izmcdi 1000 i :2000Hz; on se naziva nosed signal iii nosilac (engl. car-
rier) i i cini osnovu vecine telckomunikacionih sistema.
Posto je oscilovanjc sinusoidnog talasa potpuno predvidljivo, cist sinusoidni si-
gnal ne prenosi nikakvu informaciju. Ali, ako mu mcnjamo amplitudu, frekvcnciju iii
fazu, pomocu njega mozemo preneti niz jedinica i nula, kao na slici 2-37. Ovaj postu-
pak se zove modulacija. Pri amplitudnoj modulaciji pogledajte sliku 2-37(b) za
nulu i jcdinicu koriste se dva razlicita naponska nivoa. Ko osluskuje digitalne poclatke
poslate veoma malom brzinom, cuje glasan sum kacl stigne jedinica, a kacla stigne
nula ne cuje nista.
Kod frekventnc modulacije (slika 2-37(e)) nivo naponaje konstantan, alije frek-
vcncija noseceg signal a razlicita zajedinice i nule. Ko bi osluskivao digitalne podatkc
cuo bi dva tona koji odgovaraju nulama i jcdinicama. Frckventna modulacija se cesto
naziva modulacija s frckventnim pomeranjem (engl. frequency shift keying).
Kod jednostavne faznc modulacijc (slika 2-37(cl)) amplituda i frckvencija se ne
rnenjaju, ali se faza noseceg signala pornera (obrce) za 180 stepeni kada nula prede u
jedinicu ili jedinica u nulu. U slozenijim fazno-modulisanim sistcmirna, na pocctku
svakog nedeljivog vremenskog intervala, faza nosec'eg signal a naglo se pomera za 45,
135, 225 ili ] 15 stepcni da bi sc fazno kodirala 2 bita po vremenskom intervalu (tzv.
dibit). Na primer, fazni pomak od 45 stepeni moze z.naciti 00, a fazni pornak od 135
stepeni - 0 l itcl. Postoje i seme za pre nos 3 i vise bitova po jednorn vremenskum in-
tervalu. Broj vremenskih intervala (tj. potencijalnih promena signala) u \ekundi oz-
nacava brzinu prenosa u bodima (engl. buud). Uz dva ili vise bitova po intervalu,
brzina prenosa u bitovima prcvazilazi brzinu prenosa u bodima. Mnogi mdaju ova
dva termina.
116
(a)
(b)
(c)
(d)
V2
c Vl
0
O-
ro
z
Poglavlje 2: Organizadja racunarskih sistema
Vreme ----
Vel1ka
amplituda
frekvenclja
\\ /"
Promena faze
0
Mala
amplituda
frekvencija
Slika 2-J7. hinarnog broja 0 I()() I() II()()() I 00 tekfonskom linijom. bit po bit. (a) Signal
;, dva nivoa. (b) Amplitudn<1 modulacij<1. (c) FreJ...ventna modulacija. (d) fa7na modulacija.
Ak.n se podaci koje treba preneti sastoje od niza S-hitnih Lnakova. bilo bi zgmlno
imati vezu kojnm se istovremcno rno/.e prcneti S bitova (npr. kabl sa osam parova zi-
ca). Poslo tekfunske linijc imaju samojedan kana!, bitovi se moraju slati serijski, je-
dan za drugim (iii u grupama po dva ako se koristi dihitno kodiranje). Urectaj koji
prihvata Lnakove od racunara u obliku signata s dva naponska nivoa. bit po bit, i hi-
rove prenosi pojedinacno iii u grupama od po dva hita pomocu amplitudne. frekvent-
ne iii fazne modulacije, zove sc modem. Da hi se oznacili pocetak i kraj svakog znaka,
t\-bitnom znaku se na pocetak ina kraj dodaju dva specijalna bita. sto ukupno cini 10
bitova po znaku.
Modem salje pojedinacnc bitovc znaka u ravnomerno rasporectenim inter-
valima. Na primer, kada je hrzina prcnosa 9600 boda signal sc menja svake I 04 f.!S.
Prijemni modem na drugom kraju veze ponovo pretvara modulisani noseei signal u
hinaran hroj. Posto bitovi u prijcmni modem stizu u jednakim intervalima, kada pri-
jemni modem utvrdi pocctak nekog Lnaka, njegov radni takt ce mu odrediti u kojim
intervalima treba da s linije ocitava dolazece bitove.
Savremeni modcmi raclc brzinama prenosa od 2t\.XOO do 57.600 bitova u sekundi
(po pravilu, brzina u budima je mnogo manja). Da bi po jcdnorn bodu poslali vise bi-
t ova. oni kombinuju amplitucbku, frekvcnlnu i faznu rnodulaciju. Skoro svi modcmi
racle ll potpunom dupleksnom rezimu (engl. fit// duplex), stu znaci da mogu prenositi
podatke istovremeno u oba smera (kuristeci razlicitc frek vencije). Modemi i prenusne
2A t:Iaz i izlaz
117
linije koje u jcdnom trenutku mogu da obavljaju prenos samo u jednom smcru (b11J
jednukolosecna pruga na kojoj se vowvi propustaju samo iz severnog iii juznog srne-
ra. ali nikako iL oba istovrcmeno) zovu se poluduplcksne (engl. hal{duplex).
Digitalnc prctplatnickc linijc
Kadaje telcfonija konacno dostigla brzinu od 56 kb/s, cestitalaje sama sebi na dc-
bro ohavljenom poslu. U isto vreme. kahlovska televizija jc obezbcdivala brzine
1 () Mb/s na zajcdnickoj kahlovskoj mre:li, a satclitske kompanije su planiralc da pc-
nude hrzinc slanja i do 50 1\!lb/s. Kako je pristupanje lntcrnetu postajalo svc vaL:niji
deo njihovog poslovanja, telcfonskc kompanije (engl. telephone companies, tclcm)
pocele su Ja shvataju kako im je potreban mnogo konkurentniji proizvod od obicnog
nwdema. Zbog toga su pocek cia nude nuvu uslugu pristupanja lnternetu. Usluge s
vecim propusnim opsegum od prupusnog opsega obicnc telefonske linije ponckad 'e
nazivaju sirokopojasnc (engl. bmw/band), iako ovaj atrihut ima pre marketinsko
nego strogo tchnicko znacenje.
U pocctku jc bilo vise ponuda kojc su se medusobno preklapale. a sve su imale
opsti naziv digitalne pretplatnickc linije (engl. Digital Subscriher Line, xDSL), ]Xi
cemu se razlikuvala samo vrednust x. U nastavku cemo opisati uslugu koja ce
rovatnije postati popularnija od svilt slicnih usluga. To je asimetricna digitalna pret-
platnicka linija (engl. Asvmmetric DSL, ADSLJ. Posto se ADSL neprestano razvi a
i nije jos :-.ve standardizovano. neki od detalja koje cemo lt nastavku izneti mozda ce
se s vremenom promeniti, alice opis u osnovi ostati isti. Vise infonnacija o ADSL li-
niji mozcte naCi u odgovarajucoj litcraturi (Summers. 1999; Vettc:r et al., 2000).
Modemski prenos Jigitalnih podataka je loliko spor zato sto su tclefonske liniie
projektovane za prenos ljudskog glasa i citav sistem je optimi.l()van za tu S\rhU. Di-
gitalni podaci su uvek hili tretirani kao nuzno zlo. Lokalna tdefonska linija (Cllfl.
local loop) koja povezuje pretpLttnika s telcfunskum centralorn uduvek je u centrdi
tiltrirana tako da propusta ucestalosti :-.amo do oko .'<000 l!L Upravo raj tiltar ogu-
nicava hrzinu prenosa podataka. Stvarni propw-,ni opseg lokalne telefonskc linijc z.t-
visi od njene duzine. ali je za najce\ca rastojanja. od nekoliko kilometara. kruz nJ u
moguce ostvariti vrednosti od 1.1 MHz.
Najc6ci pti;;tup realizaciji ADSL usluge prikazan je na :-;lici 2-3X. U usnuvi ;e
uklanja tillar i raspolozivi spektar frekvcncija na lokalnoj liniji (1.1 !'vlHz) deli ,e na
256 nezavisnih kanala od po 4312,5 Hz. Kana! 0 se kl'risti za klasicnu uslugu prcnma
glasa (engl. Pfoin Old 11'/cp/wne Service, POTS). Kana!i 1-5 sc ne knr!ste, da bi 'c
sprecilo medusobno umctanje govornog signcda i signata podataka. Od preostalih 25ll
kanala, jedan se koristi za upravljanje i jos jedan za upravlj,tnje prijcmom
podataka. Ostali su raspolozivi za podatke. ADSL linija .,zamcnjuje" :25()
nmdemskih veza.

118
Poglavlje 2: Organizacija racunarskih sistema

0 25 1100kHz
Slanje Primanje
Slika 2-38. Rad ADSL linijc.
Svaki od preostalih kanala se u principu moze koristiti za potpun dupleksni prcnos
podataka, ali postojanje visih harmonika, preslusavanje i drugi efekti potiskuju realne
sisteme znatno ispod teorijskc granice. Davalac ADSL usluge odreduje koliko ce ka-
nala upotrebiti za slanje, a koliko za prijcm podataka. Moguc je i odnos I: 1, ali vecina
davalaca dodeljuje oko 80% do 90% propusnog opsega kanalima za prijem podataka
zato sto veCina korisnika mnogo cesce preuzima podatke nego sto ih salje. Zbog toga
u oznaci ADSL postoji slovo ,A" (asimctricna). Po pravilu se 32 kanala namenjuje
slanju, a ostali primanju podataka.
Kvalitet prcnosa unutar svakog kanala stalno se prati i shodno tome podesava se
brzina prenosa, pa razliciti kanali mogu prenositi podatke razlicitim brzinama. Koris-
nicki podaci se salju kombinacijom amplitudske i fazne modulacije sa do I 5 bitova po
bodu. Ako, na primer, postoji 224 kanala za preuzimanje podataka, 15 bitova po bodu
i 4000 boda, propusni opseg za prijem podatakaje 13,44 Mb/s. Zbog odnosa signata i
suma na liniji, prakticno se nikada nc postizc navedena vrednost, ali su mogucc brzine
prenosa od 4 do 8 Mb/s u kratkim intervalima ina visokokvalitetnim lokalnim linijama.
Tipicna instalacija ADSL linije prikazana je na slici 2-39. Prema ovoj semi, slu-
zbcnik telefonske kompanijc mora kod korisnika instalirati mrezni interfcjs (engl.
Network Interface Device, NlD). Ta plasticna kutijica oznacava kraj vlasnistva tcle-
fonske kompanije i pocetak privatne svojine korisnika. Pored mreznog interfejsa (iii
ponckad u kombinaciji s njim) koristi se i razdelnik (engl. splitter)- analogni filtar
koji razdvaja frekventno podrucje od 0 do 4000 Hz (rezervisano za POTS) od frek-
ventnog podrucja rezervisanog za podatkc. Govomi signal se upucujc na postojeci tc-
lefon iii faks, a signal podataka ka ADSL modemu. ADSL modem je procesor
digitalnih signata koji radi kao 250 paralelnih modema na razlicitim frekvcncijama.
Posto su danasnji ADSL modemi uglavnom spoljasnji, racunar mora biti spojcn s mo-
demom visokobrzinskim prikljuckom. U tu svrhu se mrezna Ethernet kartica racunara
i ADSL modem povezuju u vrlo malu lokalnu Ethernet mrez.u sa samo dva cvora.
(Ethernet je standard za popularnu i jeftinu lokalnu mrdu.) Ponekad se umesto Ether-
net k<trticc koristi USB prikljucak racunara. U buducnosti ce, nema sumnje, postojati
ADSL rnodemi kao unutrasnje racunarske kartice.
Na drugoj strani linije, u tclefonskoj kompaniji, takode je instaliran razdelnik.
Tu se govorni deo signala tiltrira i salje u telefonsku centralu. Signal frckvencijc iz-
nad 26 kHz upucuje se u multiplekser pristupa digitalnoj pretplatnickoj Iiniji
2.4 Ulaz i izlaz 119
(engl. Digital Subscriber Line Access Multiplexer, DSLAM) koji ima isti proccsor di-
gitalnog signal a kao i ADSL modem. Kada se digitalni signal pretvori u tok bit ova, od
njih se formiraju pakcti i salju davaocu lntemet usluga.
r-dekoder)
tiM
_....-OS LAM

Telefonska kompanija
ADSL
modern
Uredaji kod korisnika
Slika 2-39. ADSL linije.
Kablovski Internet
Mnoge kablovskc televizijskc kompanijc danas nude i kahlovski pristup lnternctu.
Posto se ta tehnologija vcoma razlikujc od ADSL tehnologije, vredi jc pomenuti.
Kablovska TV kompanija u svakom mestu ima svoju centralu i brojne kutijc prepune
elektronskih kumponcnata- centralne razvodnike (engl. hcodends), rasute svuda po
teritoriji koju pokiiva. Centralni razvodnici su povezani s centralorn zicanim kablo-
vima velikog propusnog opscga iii optickim kablovima.
lz svakog centralnog razvodnika pruza se jedan iii vise kablova koji pro laze pored
stotina domova i kancclarija, gdc sc prikijucuju pretplatnici, slo znaci da stotine koris-
nika deli, isti kabl do ccntralnog razvodnika. Kabl obicno ima propusni opseg od ok<>
750 Mllz. Ovaj sislem se polpuno razlikuje ocl ADSL linije jer svaki tclefonski pret-
platnik ima sopstvenu (znaci, nedeljenu) liniju do telefonskc centrale. U praksi se,
m.cdutim, vas kana! opsega I, I MH1, do telefunskc centrale ne r<vlikuje
mnogn ocl kahla propusnog opsega ::?.00 MHz koji deli 400 kurisnika, ga u svakom trc-
nutku ga poluvina ne koristi. To, medutim, znaci da cc korisnik kablovskog lntcrncta
imati kvalitctniju uslugu u 4 sata ujutru nego u 4 sata popodnc, dokjc kvalitcl 1\DSL
us luge uvek isti. Oni koji /elc da optimal no iskoristc kabiovski Internet moz.da trcha da
se presele u drugo naselje (gde su kuce udmaknutije, pa jc i manje na
kablu) iii pak u siromasniji kraj (gdc niko sebi nc mole da priusti uslugc Intcrneta).
J 20 Poglavljc 2: Organizacija rarunatskih sistema
----
Posto jc kahl Jcljeni medijum. vcliki jc problem odrcditi ko i kada nesto salje prc-
ko njega i na kojuj frd:vcnciji. Da bistc razurneli kako se to radi, moraccmo da sc
kratko upoznamo i ' funkcionisanjem kablovske televizijc. Kanali kablovske televi-
zijc u Americi po pravilu zauzimaju opscg od 54 do 550 MHz (izuzimajuci opscg
predviden za Fivl radiu od 8:-i do 10:-i MHz). Kanali Sll sirine 6 MJ-Jz, ukljucujuci i
za;titne pojascve 1-;oji sprccavaju mdanjc signala izmedu susednih kanala. U Evropi
jc donja granica najcc':,cc 65 MHz. a kanali su sirinc 6-8 MHz kako bi mogli
da prihvatc visu rewluciJLl s k1ji!na raclc tclcvizijski sistcmi PAL i SECAM, ali jc u
svcmu ostalom str:Jtt:gija dodcljivanja kanala slicna nnoj u Amcrici. Donji deo pod-
rucja se nc koristi ;a tclcvi;.ijskc prcnose.
Kada knmp:lllijc kablovskc tclcvizije uvode kablovski Internet. susrecu se s dva
problema:
l. Kako ustvariti pri,tup lntcrnctu hcz losih posleclica po televizijske programe.
2. Kako ost\ariti dvusmcrni saobracaj kada pojacivaci po svojoj prirodi radc
Jednosmcrno.
Odgovuri na uva pitanja mogu se sazcti na slcdeci nacin. Savrcmcni kablovi rade
dc1bm pri l'rcbcncijama visim od 550 !\1Hz, cesto i pri 750 Mllz i vise. Kanali za
slanjc (od ka ccntralnom razvodniku) smcstaju se u podrucje 5-42 MHz (u
Lvropi jc o':aj frckvcntni opscg pomeren ka nesto visim frckvencijama). a kanali za
prijcm (od ccntralnog razvodnika ka korisnicima) smestaju se u gornji kraj podrucja,
kao \t() jc prikazano na slici 2-40.
5 47 08
1[)8
550 750 MHz
.-,,---,--1
I il. I
I ,i i
TV
I TV lfMI
: 'L
J
rwrl FrekvenciJe za preuzlmanje
2
/
- -=1Pcee>':'""
Slika 2--tO. R:t.sp<llicl:t u tipicnolll sistcmu bblovskc tclcvi,-:ijt:
koji se koristi i za pristupanje lntcrnctu.
sc rclnizijski signali samo preuzimaju. u podrucju 5-42 l'vlHz mogu se ko-
n-;titi s;l:!lc) r'c:pt:ivaci za slanje. au podrucju od 54 MHz pa navise iskljucivo pojaci-
;a priic'lll signala. Otuda asimctriju izmeda pudrucja za slanje i podrucja za
pr;manje ,,igna!a: vcci cleo frckventnog spcktra ostao je iznad oblasti rc;:ervisanc za
tckviiiJU a manji i.-;pod nje. S druge strane. occf;ujc sc mnogo vise saobra(aja ka ko-
tisniku nee"'' ,_,J korisnika. pa se kablovsl-;i operateri uopste ne ble na ovakvu raspo-
ddu ;w sn1o ranijc rekli. i tclcfonske kompanije obicno nude asimetricne DSL
uslugc. iak,, iil nato nisu prinudili tehnicki razlozi.
2A Ulaz i izlaz 121
Za pristupanje lnternetu potreban je kablovski modcnl. uredaj koji sadrzi dva in-
tcrfejsa: jedan ka racunaru i drugi ka kablovskoj mrcl.i. lntcrfejs izmel1u racunara i
kablovskog rnodcma je jednostavan. To je obicno Ethernet kartica, kao kod ADSL li-
nije. u buducnusti ce se rno/,da citav modem naci na kartici koja se mozc utaknuti Ll
racunar, slicno danasnJim unutrasnjim Y.9x modemima.
Drugi interfejs je slozeniji. Veliki cleo standarda koji se odnosc na kablove spadaju
u radio-inzenjcrstvo, oblast koja prcvazi!azi okvire ove knjigc. Samo valja pomenuti
da su kablovski modemi. slicno ADSL modemima, uvek ukljuccni. Oni uspostavljaju
\ ezu kada sc ukljucc i odrzavaju jc sve dok su ukljuceni jer kablovski opcrateri ne na-
placuju svojc usluge na osnovu vremcna koje provedcte na lnternetu.
Da biste bolje razumcli bkp kablovski modem racli, razmotrimo sta se dogada kada
ga utaknete u kablovsku mrczu i ukljucitc. Modem skenira kanalc za prijem trazeei
specijalan paket sa sistemskim parametrima koji ccntralni razvodnik periodicno salJC
modemima upravo uk!jucenim u mrezu. Kada pronadc taj paket, novi modem oglasa-
va svojc prisustvo prcko jcdnog od kana !a za slanje. Ccntralni razvoclnik odgovara pri-
druz.ujuci mu odredcne kanale za slanje i prijcm. Ova dodela se kasnije moze i
promeniti ako centralni razvoclnik utvrdi daje u nekom trcnutku potrebno uravnotc!:iti
opterecenje.
Modem zatim odreduje svoje rastujanje od centralnog razvodnika saljuci mu spe-
cijalan paket i mereCi vremc za odgovor. Taj proces sc zuve ()(hedivanjc rastojanja
(engl. ronging). Modem treba da zna svojc rastojanjc od centralnog razvodnika da bi
mu prilagodio rad kanala za slanjc i utvrdio vremenski redosled opcracija. Rad kanala
se vremenski deli u mini-intervale (engl. minislots). Svaki poslati pakct mora da sc
uklopi u jedan iii vise uzastopnih mini-intcrvala. Centralni razvodnik periodicno ob-
javljujc pocetak nove serije mini-intervala. ali njcgova objava ne stize istovremcno
do svih modema jcr sc oni nalazc na razlicitim rastojanjima od njega. Znajuci koliko
je udaljen od ccntralnog razvodnika. svaki modem moze da izrai':una kadaje zapravo
poceo prvi mini-interval seri_ie. Du/.ina mini-intervala zavisi od mreL:c. Lobicajcna
korisna kolicina podataka iznosi 8 bajtova.
Tokom inicijalizacije, centralni razvodnik svakom modemu clodcljujc i mini-in-
terval kojim ce modem zahtevati prupusni opscg za slanje. lsti mini-interval sc po
pravilu vewje za vise modema. zbog cega nastajc sukobljavanje. Kada pui:cli
da posalje paket, on ga prenosi modemu koji tada zahteva potrehan bruj mini-imer-
vala za njcgovo slanje. Ako sc zahtcv prihvati, centralni ranodnik potvrdu prijc:-
mnim kanalom. saopstavajuci modemu koje mini-intervale mo:fe da kllrioti za slanjc
pakcta. Tada se paket salje, pocevsi od prvog dudeljenog mini-imcrvaLL Pri tnme se
mole iskoristiti odredeno polje u paketu da bi oclmah poslao zabt.:.:\ za _,J:\njc clo-
chttnih pakcta.
S druge strane, ako nastane sukobljavanje zbog mini-intervala 1.<1 ,[anjL' ;:ahtcv ;:.
modem nece duhiti potvrdan odgovor i ostaje rnu samu da posie odabra
nog intervala ponovo pokusa da posalje zahtev. Posle svakog ncuspcsnDg
nasumicno odabrani vremenski interval oe udvaja da bi sc u saubracajnc>m spicu mrc
/.c;
122
Poglavlje 2: Organizacija racunarskih sistema
Kanalima za primanje podataka upravlja se drugacije nego kanalima za njihovo
slanje. Prvo, postoji samo jedan posiljalac (centralni razvodnik), pa nema mogucnosti
sukobljavanja niti potrebe za mini-intervalima, koji nisu nista drugo do statisticko
multipleksiranje pode\om vremena. Zatim, saobracaj ka korisnicimajc obicno mnogo
veci od saobracaja koji oni generisu, pa se koristi paket flksnc velicine od 204 bajta.
U njemu se nalazi i Reed-Solomonov kod za ispravljanje gresaka, kao i neki upra-
vljacki podaci, tako da za korisnicke podatke preostaju 184 bajta. Ovi brojevi su iza-
brani zbog kompatibilnosti s digitalnom televizijom koja koristi standard MPEG-2,
tako da se TV i kanali za prijem digital nih podataka formatiraju na isti nacin. Logicko
povczi vanje prikazano je na slici 2-41.
Koaksijalni kabl Prijemni kana! bez sukobljavanja: 27 Mb/s uz QAM-64
OptJckt kabl
i korisnu kolicinu podataka od 184 bajta
1
__
1
f----\..:...--1 Centraln1
["""'' C <= O' Modom I
- Paket Kana! za slanje uz sukobljavanje:
8 Mb/s uz QPSK i mini intervale od 8 bajtova
Stika 2-41. Tipicni tktalji kanala za slanjc i prijem pmlataka u Amcrici. QAM-64
amplitudna modulacija) omoguc'ava prenos nd 6 bitova/Hz, ali se mo7.e koristiti
samo pri visokim frekvcncijama. QPSK (kvadraturna fazna modu!acija) koristi se pri nisk.im
frekvcncijama, ali omogucava prcnos od samo 2 bita/Hz.
Vratimo se jos jed nom inicijalizovanju mode rna. Kadaje modem odredio rastojanje
i dobio kanale za slanje i primanjc podataka, kao i svoje mini-intervale, mozc poceti da
salje paket. Paketi odlazc ka centralnom nu:vodniku, koji ih narnenskim kanalom pro-
slcduje u centralu kablovske kompanije i daljc davaoeu lntemet usluga (koji moze da
bude i sama kablovska kompanija). Prvi paket je namenjcn davaoeu Internet usluga i
njime se zahteva mrezna adresa (preci1.nije, IP adresa) koja se dodcljuje dinamicki.
Istovremcno se trazi i dohija tacno dncvno vreme.
Sledeci korak se tice bezbednosti. Postoje kabl deljeni medijum. svako kn hocc da
sc malo pomuci mo/.e da presn:tne sav saobracaj koji se preko njcga odvija. Kako bi
sc korisnici sprecili da spijuniraju svoje suscde (upravo njih), saobracaj sc u oha sme-
ra sifruje. Deo postupka inicijalizovanja Lato ohuhvata i uspostavljanjc kljuCeva za
frovanje. U prvi mah izglcda kako se dva potpuna stranca (modem i centralni
razvodnik) tdku mogu diskretno dogovoriti o 1--ljucu za sifrovanjc. ito u po bela dana
pred ocima hiljada radu1.nalaca. lspada, mcL1utim, da to i nije tako Iesko, ali
tehnika (Diftic-Hcllmanov algoritam) prevazilazi okvirc ove knjige. Ako stc radozna-
li, pogledajte kod Kaufmana et al. (2002).
2.4 Ulaz i izlaz
123
Na kraju, modem mora da se prijavi ida saopsti svoj jedinstveni identiflkator prc-
ko obezbedenog kanala. Ovde se postupak inieijalizovanja zavrsava. Korisnik moze
da se prijavi davaocu Internet usluga i pocne da radi.
0 kablovskim rnodemima moze se jos stosta reCi. Neke od referenci su Adams i
Dulchinos, 200 I; Donaldson i Jones, 200 l; Dutta-Roy, 2001.
2.4.6 Digitalni fotoaparati
Racunari sc sve cescc koriste i za digitalnu fotografiju, tako da se digitalni fotoapa-
rati danas mogu tretirati kao racunarske peri ferne komponente. Osvrnimo sc ukratko na
nacin njihovog rada. Svi imaju objektiv koji stvara sliku predmeta na nje-
govoj pozadini. Na zaclnjoj strani kuCista klasicnih fotoaparata nalazi se film na kojem
se skiivcna slika kada se film osvetli. Skrivena slika postaje vidljiva pod dcj-
stvom odredenih hcmikalija prilikom razvijanja tllma. Digitalni fotoaparat radi slicno,
osim stu jc film zamcnjen pravougaonom matricom scnzora (engl. Charge- -Coupled
Devices, CCDs) osetljivih na svetlost. (U nckim digitalnim fotoaparatima koriste se
CMOS senzori, ali ovde ccmo govoriti samo o uobicajcnim CCD senzmima.)
Kada svetlost pogodi ceo senzor, u njemu se stvara elektricni naboj. Sto vise
svctlosti, veci je i naboj. Naboj se pomocu analogno-digitalnog prctvaraca mozc oci-
tati kao ceo broj u rasponu od 0 do 255 na jeftinijim fotoaparatima iii u rasponu 0 do
4095 na digitalnim refleksnim (SLR) aparatima. Osnovni sklop digitalnog fotoapara-
ta prikazan je na s lici 2-42.
Objektiv
Jed an piksel stvaraju
cetiri ceo elementa:
l_ jedan .. crveni",
jedan .. plavi"
i dva .. zelena"

--.+-- Procesor
Matrica CCO elemenata
Digitalni fotoaparat
- Memorija
- Fles memorija
iii mikrodrajv
Slika 2-42. Digitalni f()toaparat.
...
124
PoglaYije 2: Organizacija racunarskih sistema
Svaki CCD element gene rise jednu vrednost. nezavisnu od boje wctlosti koja pad-
ne na njcga. Da bi sc obrazuvala slika u boji. CCD scnr.ori se organizuju u grupe od po
cetiri elemcnta. Preko CCD senzora postavlja se Bayerov filtar Ja bi do jcdnog od ce-
tiii elcmenta iz svake grupc dopirala samo crvcna svetlost, do drugog samo plava. a do
preostala dva samo zelcna. Dva ,zclcna elemcnta koriste se zato sto je mnogo lakse
napraviti CCD scm:or s grupama od po cctiri nego od po tii elcmcnta i zato je oko
mnogo osetlji vije na ;:clcnu svctlost nego na crvcnu iii plavu. Kada proizvodac Jigi-
talnih fotoaparata l vrdi da aparat ima, recimo. 6 miliona piksela. on ne govori istinu.
Aparat ima 6 miliona CCD clcmenata koji zajedno Jaju I ,5 milion piksela. Slika ce biti
ocitana kao matrica od 2828 X 2121 piksela (na jcftinim aparatima) iJi 3000 X 200{)
piksela (na cligitalnim SLR modelima). ali se doclatni pikseli stvaraju suftverski.
Kada sc pritisnc okidac na aparatu, softver u njemu uradi tri stvari: podcsi fokus
(tj. ostrinu). odredi eksporiciju i uravnotdi bclu boju. Autumatsko izostravanje za-
sniva se na analiziranju uccstalosti smcnc osvetljenja susednih cielova slike i pomera-
nju objektiva Jok sc nc dobijc njen maksimum. sto tnaci slika s najvisc Jctalja.
Podeiiavanje obuhvata merenje jacinc svctlosti koja pada na CCD senior
i podcsavanjc otvura blcndc i vrcmena ckspuzicije tako da jacina upadnc svctlo:,ti
buclc u srcdini pudrucja CCD scnzora. Uravnotel:avanje bcle buje svodi se
na merenjc spd.tra upadne svetlosti da bi sc kasnije mogla korigovati hoja.
Slika sc zatim ocitava sa CCD scnzora i kao matrica pikscla prcbacujc u unutra-
snju memoriju fotoaparata. Kvalitctni ciigitalni SLR aparati (koriste ih roturcportcriJ
mugu da tokom pet sckuncli u svakoj sckundi snime osam slika re;.olucije. pri
ccmu im za cuvanjc slika pn: obrade i tinalnog skladistl'nja 'luzi memorija ud llko I
CJB . .Jeftiniji aparati imaju manju memoriju.
Kada se napravi sirov snimak, softver aparata na njcmu .. uravnotc!ava bclu b<lju"
- koriguje boje, narocito crvenkastu iii pLtvica;;tu (u senkama ili od hlica itt!.). Zatim
se snintak obradujc algoritmom za smanjcnJc suma i drugim, koJi ispravlja nedo\\atkc
CCD senzora. Posle log a suftver poku;ava Ja sliku 1 osim aku mu je ta opcip
iskljuccna) tako stu trazi ivice detalja i kuntra,tuku njlh.
Na kraju se slika moze kumprimovati cia bi zauzima!a manJe mcrnorije. Cobicaje-
ni algorilam za komprimuvanjc jc .JPEG (.Joint Photographic Experts Croup) kod
koga sc na sliku primenjuje Fouricr01 a transformacija. pri ccmu
sc neki njeni detalji imstavljaju. Slika u fnrmalll JPEG Latuima nunjc proslora u mc-
moriji, ali se prikazuje manjc detalja.
Kaclajc ubrada slikc u foloaparatu;a\ r\cn.t, siibt sc Lapi,ujL na medijum ;:a :-kLt-
distenje, po pravilu u mcmoriju iii na minipturni i11nenjivi cvr:-ti Lii:-k nazvan rni-
kmdisk (engl. microdrire). Naknadna obrada i skladi.;renje mugu potrajati
'ekund1.
Kada korisnik dude kuci, on mole da po,e2e fotuaparal s racuJJaf()lll, obicnJ po-
rnucu LJSB kabla iii Fire\Vire \e/.C. Slike St' tada prelltl:-e iz folllaparata na cvr,ti disk
racunara. Pomocu specijalnog softvera, kaJ je .'\.J,,beuv kuri,nik
mozc da opsecc sliku. pode:-i svetlocu i konrrasL uravnote7i hujc na ..,]ici, izostri je.
l!laz i izlaz
125
dcfokusira ili s njc ukloni ncke delove. kao i cia primcni brojnc tiltre. Kada buLk za-
dovoljan rezultatom. sliku mole oclstampali na slampacu u boji. poslati je preko In-
temeta nekome na obraciu ili je arhivirati na CDROM iii DVD disk.
Racunarska snaga, vclicina rncmorijc i prostora na cvrstom disku, kao i softver di-
gitalnog SLR futoaparata neverovatno 3U dubri. Racunar digilalnog SLR modela tre-
ba da radi nc samo ono sto smo nabrojali, vee i da u real nom vrcmenu komunicira'
procesorima unutar objektiva i blica. osvcbva sliku na LCD ekranu i upravlja taste-
rima. tockiL'ima, lampicama, ckranom i drugim lchni-:kim detaljima fotoaparata. (}1
prcdstavlja izuzetnn mocan sistem. koji se CL'St<l nwzc mcriti sa stonim racunarom oJ
pre nekoliko godina.
2.4.7 Kodiranje znakova
Svah:i racunar koristi odredcn skup t.nakova (engl. character set). Taj skup obuhv:L-
ta bar 26 velikih slova, 26 malih slova i cifrc od 0 do 9, kao i podskup spccijalnih sim-
bola kao sto su rannak, tacka, minus. zarez i simhol La vracanje na pocetak reda (CR).
Da bi ovakve Z!lake racunar razumco, njima sc docieljuju brojevi: na primer, a= I,
b = 2 ... ., z = 26, + = 27. = 2S. Preslikavanjem znakova u cek brojcvc dubija se kod-
na tahela znakova 1 engl. clwruclcr code). Od presudne je vaznosti da racunari koji
medusobnu komuniciraju koristc istu kodnu tabelu. inace se nece rawmeti. Zbog toga
su ;:a kodnc tabck ;.nakova uspustavljcni standardi i u nastavku cemo obraditi d''e
najva;nije takvc tabelc.
ASCII
Jcdna n,J J;,1dnih tabclajeASCII tahcla (engl. American Stuz-
dunf Cc>t!eF'r !nfimnutiun !nterclwngc- Americki standardni k6d za razmenjivanjc
intormacij:l). Svakom ASC!I Lnaku dudeljujc se 7 bitova, tako cia sc moze dobiti !2S
r:;Lli(itih 1nakova. Tahcia ASCII kociova je na slici 2-43. Kodovi ocl 0 do
1 F (heks:tdccimal nll: jesu upra' ljacki l kontrolni l wakovi koji se ne stampaju.
Heks. k6d !me Znacenj<>
Heks.k6d I me
Znacenje
---
() NUL
10
OLE
Data Link Escape
SOH Start Of Headir,g
:11 DC1
Device Control 1
2 STH Start 0! Te/t
. 12 DC2
Dev1ce Control 2
3 ETX End Of TeXt
13
DC3
Device Control 3
.i EOT
End Of Transrniss:on
14 DC4
Device Control 4
5
El,iO Enquiry
. 15
NAK Negative
AcKnowledgment
6 .t>..CK ACr<nowledJ8f11ent i 16
SYN
SYNchronous idle
BEL BELl
17
ETB
End of Transmission
Block
8

BackSpace 00
. 18
CAN
CANcel
9 HT
Horizontal Tab ; 19
EM
End of Medium
---
126
Poglavlje 2: Organizacija racunarskih sistema
lA LF
Line Feed 1A SUB SUBstitute
B VT Vertical Tab 1B ESC ESCape
: C FF
--
Form Feed 1C FS File Separator
Carriage Return
f
GS Group Separator
Shift Out E RS Record Separator
Shift In F us Unit Separator

21 I 31 1 A
22 " 32 2 :42 B
lk Heks. Znak Heks. Znak Heks. Znak
50
p
60 70 p
51 0 61 a 71 q
52 R 62 b 72 r
23 # 33 3 143 c
24 $ 34 4 144 D
25 % 35 5 i 45 E
53 s 63 c 73 s
54 T 64 d 74 t
55 u 65 e 75 u
26 & 36 6 '146 F
27 37 7 47 G
28 ( . 38 8 48 H
56 v 66 f 76 v
57 w 67 g 77 w
58 X 68 h 78 X
I
,29
39 9 ! 49 59
y
69 i 79 z
i2A
128
i2C
I2D
[2E
+
3A
.3B
I
3C
3D
3E
3F
<
>
4A
4B
4C

J
K
L
M
N
0
5A
58
5C
50
5E
z
[
I
}
A
6A j ?A y
6B k 78 {
6C I 7C
I
60 m 70 }
6E n 7E -
I

i4F
_j__ ___
?
5F
-
6F 0 7F DEL
-- --'---------
__ __j
Slika 2-B. Skup ASCII makova.
Mnogi kontrolni ASCII znakovi namcnjcni su prenosu podataka. Na primcr. poru-
ka mo'/e sadrzati znak SOH (Start of Header - pocdak zaglavlja), ;aglavlje. znak
STX (Start of Text- pocetak teksta). sam tckst. znak ETX (End of Text- kraj teksta)
a zatim i znak EOT (End of Transmission- kraj prenosa). U praksi mcctutim. po-
ruke koje se salju telefonom iii kroz mrez.u, formatiraju sasvim drugacijc, tako da sc
ASCII znakovi za upravljanje prenosom vise i ne koriste.
Sa ASCII znakovima koji se stampaju. nema zabune. To su velika i mala slova abe-
cede, (dccimalne) cifre, znakovi interpunkcije i nckoliko matcmatickih simbola.
UNICODE
Tabela ASCif kodova nastala je u Americi zato sto je i racunarska industrija uglav-
nom tamo nastajala. ASCll kodovi su dobri za korisnike koji sc sluze engleskim jczi-
kom. ali ne i za one koji se sluze drugirn jezicima. Za francuski jczik su potrcbni
akcenti ( npr. u reci systemc), za nemacki dijakritici (npr. fi.ir) itd. Neki evropski jezici
2.4 Ulaz i izlaz
:__------------
127
sadrze i slova koja sene nalaze u ASCII tabeli, kao sto su nemacko 13 i dansko 0. Neki
jezici imaju sasvim drugacijc pismo (npr. iii a neki nemaju gla-
sovno pismo (npr. kmeskt). Kada su se racunan prosml1 na sve cetm stranc sveta i
prodavci pozeleli da ih prodaju Ll zemljama ll kojima vecina zitelja ne govori englc-
sb. postao je neophodan nov skup.
Prvi pokusaj da se prosiri skup ASCll znakuva bio je medunarodni standard IS
646, po kome je ASCII tabeli dodato 12S znakova; skup je pretvoren 8-bitni kod na-
zvan Latin-1. Dodatni znakovi su bi1i ug1avnom latinicna slova sa akcentima i dija-
kritickim oznakama. Sledeci je bio standard lS 8859 s kojim je uvedcn pojam kodna
strana (engl. code page). sto je skup od 256 znakova svojstvenih odredenom jeziku
ili jczickoj grupi. Standard IS 8859-l je Latin-I. Standard IS 8859-2 obuhvata slo-
venskc jezike s latinicnim pismom (ceski, poljski i slovacki). Standard IS 8859-3
sadrzi znake svojstvenc turskom, maltcskom. galicijskorn jcziku, esperantu itd. Pro-
blems koclnim stranamaje to sto softver mora da vodi racuna s kojom kodnom stra-
norn radi, sto kodna strana ne mozc da sad!"l.i znakove iz vise jezika i sto sistcm
kodnih strana uopste nije obuhvatiu japanski i kincski jezik.
Grupa racunarskih kompanija odlucilajc cia taj problem rcsi, paje obrazovala kon-
zorcijum za stvaranje novog sistema zvanog UNICODE i najzad ga pretvorila u
medunarodni standard IS I 0646. UNICODE dan as podrzavaju neki programski jezici
(npr. Java), neki operativni sistcmi (npr. Windows XP i Mac OS X) i brojne aplikaci-
je. Izvesno dace biti sve vise prihvacen zbog globalnog sirenja racunarskc industrijc.
UNICODE sc zasniva na ideji cla se svakom znaku i simbolu dodeli jedinstvena
16-bitna vrednnst. nazvana kodna tacka (engl. code point). U njemu ncma visebajt-
nih znakova niti kontrolnih (Esc) sekvenci. Kada svakom simbolu odgovara 16 bito-
va, softver se laksc pise_
Buduci da koristi 16-bitne sirnbule. UNICODE ima 65.536 kodnih tacaka. Posto u
svctskim jczicima ukupnn 200.000 sirnbola, kodne tacke su skroman resurs koji se
mora pazljivo trositi. Skoro polovina ukupnog broja kodnib tacaka vee jc .,pojedcna",
a konzurcijum za UNICODE stalno predloge za nove dodele. Da bi ubrzao
prihvatanje sistema UNICODE. konwrcijum je lukavo skupu Latin-I dodelio kodnc
tal:ke od 0 do 255, olaksavajuci tako prelazak sa ASCII skupa na UNICODE. Da se
kodne tackc ne bi dodcljivale bcspotrebno. svaka dijakriticka owaka ima svoju kodnu
tacku. l'\a softveru je da ih kombinujc sa susedima i tako obrazuje nove znakove.
Prost,Jr hxlnih tal:aka podcljen je na blokove. od kojih je svaki umnozak od 16
kodnih tacaka_ Svako znacajnije pismu u sisternu UNICODE prcdstavljeno je nizom
uzastupnih 1nna. U primerc (Lajcchw s dodcljenim kodnim tackama) spadaju latinic-
no U36 ). grcku t 1-+-1- ). ciri I icno ! 25(J ), jermcnsko ( 96 ), hcbrejsku ( 112 ), devanagari
( 12Xi, gurmukhi ( 12XJ. nriya ( 12Si. tclugu (128) i kannada ( 12S). Svakom od ovihje-
zika dodeljenu jc vise kodnih tacaka ncgo sto njcgovo pismo ima znakova. To _jc
uratkno delimicno zato sto u mnogim is to slovo ima vise oblika. Na primer,
svako slovn u engkskom jeziku mozc biti malo i VELIKO. U nekim jczicima postoje
tri i vise oblih.a istog slova, sto zavisi od toga da lise slovo nalazi na pocetku. u sreclini
ih na kraju rcei.
'!'
128 Poglavljc 2: Organizacija racunarskih sistema
-----
Osim pisrnima, kodne tacke su dode1jene i dijakritickim oznakama ( 112), znako-
vima intcrpunkcije ( 112), indeksima i eksponentima (48), simbo1ima va1uta (48). rna-
tematickim simbo1irna (256). geometrijskirn oblieima (96) i ornamentima ( 1 92).
Poslc njih slede za kineski, japanski i korejski jezik. Prvih 1024 su fonet-
ski simboli (npr. katakana i bopomofo), a za njima s1ede objedinjeni han ideogrami
(20.992), koji sc koriste u kineskom i korejski hangul s1ogovi ( 11.156).
Da bi korisnici mogli da smisljaju specija1ne znakove 1.a specija1ne potrcbe, za 1o-
ka1no koriscenje je ostavljcno 6400 kodnih tacaka.
lako tabcla UNICODE rdava brojnc problcmc intcrnacionalizacijc, ona ne moze
(i ne pokusava) cla rdi sve svetskc problcme. Na primer, dok jc latinicno pismo
ureueno, han idcogrami nc slec!e recnicki redos1cd. Zbog toga cnglcski program moze
da analizira reci ,cat" i ,dog' ida ih uredi po abeeednnm redosledu tako ce upore-
diti vrednosti njihovih pocetnih slova u tabeli UNICODE. Analogni japanski program
morao bi da knristi dmlatne tabelc kako bi saznao koji se ocl dva simbola pojavljujc
prvi u recniku.
Drugi problem je to se neprestano pojavljuju nove reci. Pre pedeset godina
niko nijc govorio l> aplctima. kibernctskom prosturu. gigabajtirna, laserima. modemi-
ma. emotikonima iIi o video trakama. Dod a vanje novih reci u englcski iIi srpski jezi k
ne stvara potrebu za novim kodnim tackama. U japanskom, nove kodne tacke bivaju
neophudne. Osim novih tehnickih izraza, postoji zahtev da sc u japanski doda naj-
manje 20.000 novih (uglavnom kineskih) licnih imcna i imena meo;ta. Slepi misle da
bi i Brajova a;:buka morala da nade svoje mcsto u sistemu UNICODE, a i druge in-
teresnc grupe svih vrsta ;:ahtevaju svoje pravo u prostoru kodnih tacaka. Kon;:oreijum
za UNICODE rannatra i odlucuje u svirn novim predlozima.
UNICODE koristi istu kodnu tacku za znakove koji i;:gledaju skoro potpuno isto.
ali imaju rcvlicito ;:naccnje iii se pisu ndto drugacijc na kineskom jeziku
(kao kada bi engleski programi za ohradu teksta rcc ,blue"' uvck zamenjivali recju
,blew"' jer zvuct' islo). Neki ovo smatraju optimizovanjem radi ustede koclnih l<teaLt.
dok drugi to vide kao anglosaksonski kulturni irnperijalizam (a vi -;te mo/.da mislili dct
dodelji vanje 16-bitnih vrednosti znakovima nije politicki obojeno'! ). Da bi sve bi lo
jos gore, morali SLI biti ucinjeni neki kotnpromisi jer polpllll japanski tecnik ima
50.000 kanji 1.nakova (bel. licnih imena), a samo je 20.992 kudnih tacaka rC/.ervisano
za han icleograme. Ne misle Japanci cla je konzorcijurn racunarskih kompanija
iclealan forum za donoscnJe ovakvih odluka (iako unjemu ima i nckoltko japan skill).
2.5 SAZETAK
Racunarski si:-,temi se od tri vrstc kompunenata: procescra. mc:mc,rijc i
ulazno-izlaznih uredaja. Procesor i; memorije preuzima jednu po jednu itbtrukciju,
dekodira ih i izvrsava. Ciklus preuzmi-dekodiraj-izvrsi moze se uvck opisati u uhli-
ku algoritma. koji ponekad izvrsava programski interpreter na ni/.em nivou. Zbug
129
postil.anja vece brzine. mnogi racunari clanas imaju linija paralclne obrade poda-
taka iii supcrskalarnu strukturu s vise funkeionalnih jedinica kojc rade paraklno.
Sve su cesci i sistcmi s vise proccsora. Paralclni racunari obuhvataju matricne pro-
cesore koji istu opcraeiju izvrsavaju istovremcno nad vise skupova podataka. multi-
procesore u kojima procesora deli istu rncmoriju i multiracunare u kojima svaki
racunar ima snpstvenu memoriju i svi medusobno komunieiraju slanjem poruka.
Memorija moze biti primarna i sekundarna. Primarna menwrija sadr/i prugram
koji se trenutno izvrsava. Njoj se pristupa vrlo brzo (najvise za nek,,Jiku dc:setina na-
nosekundi) i to vrerne ne zavisi od adresc kojoj se pristupa. Kes menwrija jos vise
skracuje vreme pristupanja. Neke memorije sadrze kCld za ispravljanje gresaka, sto im
povecava pouzdanost rada.
Vreme pristupanja sekunLbrnoj memoriji je, nasuprot ovume. mnogo du/.e (meti
se milisckundama) i zavisi ml lokacije podataka koji se citaju ili upis11ju. Trake i ma-
gnetni i opticki disknvi glavni su prcdstavnici sekundarne mcn]()rije. Postoji llli!Ofi
ohllci magnetnih diskova (Winchester diskuvi. IDE diskovi, SCSI diskovi i sistetri
RAID diskova). L: opticke diskove spacbju CD-ROM. CD-R i DVD diskovi.
Ulaznu-i;.lami uredaji slu7c 1.a uno.senje infonnaeija u ral:unar i 1.a njilmvo citanjc.
Oni sus procesurum i memurijum povezani pomoL'u jednc iIi vi;c magistral a. Primeri
ulaLnu-i;:[azni!J uredaja Sll tcrminali. starnpaci i modcmi. l;Jazno-iziazni
uredaji vecinom koriste skup ASCII 1.nakova. iako se s globctlnirn sirenjem racunar-
skc inclustrije sve prihvaLt i skup UNICODE 1.t1akova.

1. Ra7motritl' r;td racun;ua s putclllJOI!l podataka kao n:; slici 2-2. Pretpostavite da uc;-
tavanjc uuiaznc ALU rcgistre lr:tjc 5 ns. da i;Hsavanjc u :\LU jcdinici traje 10m i
da upi-;ivanjc rcmltata u regislar tr:t.ie 5 ns. Kuliko naj\isc 1\l!PS-ova moze ca
o-.lv<tri nvaj raC:unar ako nc ub;<tduje pmlatkc par;tlclnu''
2. StclJC '\Tin .2 na lisll i; <lLkljka 2.1.2'' St:l hi sc desilu kada bismo taj kor,,k
p;cskoc iIi)
3. t\a racun;mt I itistmL-ijctrajc ill ns. racunaru 2 izvrsavanje inslruL-
cijc traJC 5 ns. li hit; potpuno sigurni da jc rae tillar 2 brzi'
1
Obrazlozite ot!-
gnvor.
-t Zctmisiitc da ircha da rrojLktuietc r.r(unar na cipu ;:ajLdan ugradcni sistem. Cip lre-
ba da ima .,:Tl ,\tlJU !llC!llllr!JU na L'ipu ida radi istDrn hrzinom kao procesor, ba
ka;njc:nja ,-LJ,,g pri:-.i\ljlc!ll.J.l. ,-\nalilir:tj<.c s:akt pri:1cip u odcljku 2.1.4 i oll-
govorik da ii lh \C t;.::ba tak.o rrlJrZa\a[i (pod prctpo'-;tavkon1 da i
Lttl_1e /Llc \
S. Odrcdcni prora.:urr je -;ckvencijalan - drugim -;vaki njcgov korak z.t-
visi od prethudnog. Da li hi ;a !lVai proral'un hie' pL>gudniJi matricni procesor iii pro-
ccsnr b>ii Dbr:rdujc pud:rtke parakino'
1
Obpsnitc.

130 Poglavlje 2: Organizacija racunmskih sistema
6. Da hi se takmicili s tck izmisljenom stamparskom masinom, u jednom srednje-
vekovnom manastiru su odlucili da masuvno prepisuju knjigc kako bi ih umnozili,
i zato ce skupiti na jedno mestu ugroman broj prepisivaca. Stares ina manastira bi
tada glasno izgovoriu prvu rcc i svi prepisivaci bi jc zapisaii na svoj primerak. Sta-
res ina bi tada izgovorio drugu rec i svi bi je prepisivaci zapisali. Taj postupak uza-
stopnog izvikivanja rcci i njihovog zapisivanja ponavljao hi se svc dok eela knjiga
ne hi bila naglas prucitana i zapisana u mnogo primeraka. Koji od sistemas paralei-
nim procesorima iz udeljb 2.1.6 najvise odgovara ovom sistcmu'7
7, Kako silazimo niz pctostepenu hijerarhiju mernorije opisanu u tekstu, tako rastc i
vremc pristupa. Procenite odnos vremcna pristupanja optickom disku i memoriji rc-
gistra. Pretpostavite da je disk vee aktivan.
S. Sociolozi mogu da dobiju jedan od tri odgovora na tipicno ankctno pitanje tipa
,Vcrujete li u Novi svetski poredak?"' (da, ne i ne znam). Imajuci ovo u vidu, ,So-
ciomagnetska racunarska kompanija"' odlucila jc da napravi racunar za obradu re-
zultata ankete. Taj racunar ima trinarnu memoriju - tj, svaki bajt (trajt?) sadrzi 8
tritova, a svaki trit mo/.e da hude 0, I iii 2. Koliko tritova treba za cuvanjc 6-hitnog
hroja"
1
Napisitc izraz za izracunavanje broja tritova potrcbnih za cuvanje n bitova.
9. lzracunajte brzinu prijema podataka ljudskim okom na osnovu slcdecih infonnacija.
Vidno polje sadr!.i oko I 0
6
elcmenata (piksela). Svaki piksel rcaguje na supcrpozi-
ciju tri osnovne hoje. od kojih svaka ima 64 stepena intenziteta. rezolu-
cija je I 00 ms.
10. Na osnovu slcdecih informacija izracunajtc brzinu kojom ljudsko uho prima podat-
ke. C'ovek mo7.e da cuje zvucne frekveneije do 22kHz. Da hi se uhvatilc sve infor-
maciJe iz zvucnog signala frekvencije 22 kHz, neophodno je uzorkovati ga dvaput
visom ucestaloscu. tj, uccstaloscu od 44 kHz. Sesnaestobitni uzorak je verovatno
dovoljan za hvatanje vecine zvucnih informacija (tj, uhu ne mo7.e da razlikuje vise
od 65.535 nivoa intcnziteta).
11. Genetskc informacije u svim zivim hicima kodiranc su u molekulima DNK. Mole-
kul DNK predstavlja linearan niz cetiri osnovna nuklcotida: A. C, G iT Ljudski ge-
nom sadr/i priblizno 3 x 10
9
nukleotida rasporedenih u oko 30.000 gena. Koliki je
ukupni informaticki kapacitet ljudskog genom a (u hitovima)"
1
Koliki je maksimalan
informaticki kapacitct prosccnog gena (u bitovima)?
12. Neki racunar se moze opremiti sa 26k.435.-156 bajtova mernorije. Zasto bi pruizvoJac
il.abrau takav cudan broj, umesto okruglog broja, kao sto je recimo 250.000.000")
U. Smislitc 7-bitni llammingov ki'ld za proveru parnosti (s dopunjavanjern do parnog
brupl /.a ciiiT od ()do 9.
14. Smi:-.lite k(ld 1a cifn:: 0 do 9, cije je Hamrningovo rastojanje 2.
15. (I Hamming0\on1 kodu neki bitovi su .. protraceni"' jer se koriste za proveravanje, a
nc 1.a informacijc. Koliki .Je procenat protracenih bitova za poruke cija je ukupna
du/.ina (podaci + bituvi za proveru) 2"- ]"INa osnuvu dobijenog izraza izracunajte
pnJccnat protiaccnih bituva 1.a vrednusti 11 od 3 do I 0.
I 6. Disk na slici 2-19 ima I 02-+ sektma po stazi i rot ira brzinom od 7200 o/min.
Kulif-a je mii/iva brzina prenosa Jl(Jdataka s jedne staze"
1
Vezbanja 131
17. Racunar ima magistralu s eiklusom od 5 ns, tokom koga moze da ucita iz mcmorije
iii da u nju upise 32-bitnu rec. Racunar ima Ultra4-SCSI disk koji koristi rnagistralu
i ima brzinu prenosa od I 60 MB/s. Procesor preuzima i izvrsava jednu 32-bitnu in-
strukciju svake nanosekunde. U kojoj meri disk usporava rad procesora?
18. Zamislite da pisete deo opcrativnog sistema koji sc odnosi na rad diska. Disk logicki
predstavljate nizom blokova: nultim pri osovini i nckim maksimalnog rednog broja
na periferiji. Datotekama koje se obrazuju na disku treba dodeliti slobodne sektore.
Hocete li sektorc dodeljivati pocevsi od perife1ijc ka osovini iii od osovine ka pe-
riferiji'7 Ima li znacaja koju cere od dve strategije upotrebiti? Obrazlozite odgovor.
19. Koliko ce trajati ocitavanje diska sa 10.000 eilindara, od koji svaki sadrzi cetiri staze
sapo 2048 sektora? Prvo treba oCitati svc sektore staze 0, poccvsi od sektora 0, za-
tim sve sektore staze I, pocevsi od sektora 0 itd. Vreme rotacije je l 0 ms, a trazenjc
traje I ms izmedu susednih eilindara, i 20 ms u najnepovoljnijem slucaju. Iz staze u
stazu na istmn cilindru prclazi se trcnutno.
20. RAID 3 moze da ispravlja jednobitnc greske pomucu samo jedne disk jedinicc
s podacima o parno:-.ti. Kakav je onda smisao RAID-a 2"1 U krajnjoj liniji, ion moze
da ispravlja samo jednu grdku, a za to koristi vise disk jedinica.
21. Koliki tacno kapacitet (u bajtovirna) ima CD-ROM u rdimu 2 ako je to danas stan-
dardni 80-minutni medijum? Koliki je kapacitet ovog diska za korisnicke podatke u
rdimu 1'1
22. Da bi upisivao podatke na CD-R disk, laser semora velikom brzinorn ukljucivati i
iskljucivati. Ako radi desetostrukom brzinom u rdimu l, koliko nanosekundi trajc
jedan impuls?
23. Da biste 133 rninuta video zapisa smestili najednostranijednoslojni DVD disk. mo-
rate prilicno komprimovati sadrzaj. Izracunajte potreban stepcn kompresijc. Pretpo-
stavite daje za video staZll prcdvideno 3,5 GB prostora, daje slika rezolucije 720 x
480 piksela sa 24-bitnim bojama i cia se siike smenjuju brzinom od 30 kadrova u
sekundi.
24. Blu-Ray ima brzinu prenosa od 4,5 MB/s i kapacitct od 25 GB. Koliko traje ocita-
vanje eelog diska?
25. Brzina prenosa podataka izmcdu procesora i njemu pridruzene mcmorijc. za vise re-
dova velicine prevazilazi hrzinu prenosa kod mehanickih ulazno-izlaznih uredaja.
Na ko.Ji nacin ova neravnotda moze cia prounokuje neefikasan rad'
1
Kako se ona
moze otkloniti'l
26. Proizvodac navodi da njegov terminal u boji moze da prikaze 2
24
razlicitih boja.
lpak, hardverski svaki je pikscl prcdstavljen samo jednim bajtom. Kako se to moze

27. Terminal ima hitmapirani ekran rezolucije 1600 x 1200 tacaka. Slika na ekranu se
iscrtava 75 puta u sekundi. Koliko trajc impuls koji odgovara jed nom pikselu"
7
28. Crno-beli la:-.erski stampac mozc da odredenim fontom odstampa 50 redova na stra-
ni. svaki sapo 80 znakova. Znak prosecno zauzima kvadrat velicine 2 x 2 mm. od
cega je oko 2Yfr, prekri veno toncrom, dok je ostatak cist. Sloj toncra .Je debeo 25 mi-
krometara. Pravougaoni rezervoar za toner je dimcnzija 25 x 8 x 2 em. Za koliko L'e
strana tcksta biti clovoljan jedan rczervoar tonera'!

132
2: Organizacija racunarskih
-------
29. Kada se ASCII tekst ncparne parnu.-,ti pn:nosi asinhronu brzinom od 5600 znakova
u sekundi preko modema brzine 56.000 b/s. koliki proccnat primljenih bitova stvar-
no sadrzi podatkc (a koliko ihje visak)''
30. Kompanija Hi-fi Mudem upravu je napravila frekvcntno modulisani modem koji
untcsto 2 koristi 6--1- frckvcncije. Svaka sckunda sc deli nan JCdnakih intervala, od
kojih svaki sadrJ:i jedan od 64 moguca tona. Kolikl1 biwva u sekundi ovaj modem
moze da prcncsc ako koristi sinhroni prcnos'
31. Korisnik fntcrneta sc prctplatio na ADSL u.,lugu br;inc 2 Mh/s. Njcguv suscd se prct-
platio na uslugu bblovskog Interncta s dL'ljcnim pwpmnim opsegom od 11 MHz.
Koristi sc sema mmlulacijc QAM-6--1-. Na kabi pri:,lju:'cno n domova. svaki s jcd-
nim racunarom. Lf svakomtn:nutku na rnrc/i sc naLt!ljraCunara. Pod kojimuslovi-
ma cc korisnik kahlo\skog Int.:rncta proci boijc ,,d kmisnika :\DSL us luge''
32. Digitalni fot\laparal ima rczoluciju _)()()() X 2()()() pibcb. sa bajta po piksclu za
RGB bojc. l'rui;.vodaC fotoaparata [eli cia OllW1,CliL'i zapisiv anjc 5x komprimuvane
JPEG slike u mcmoriju t.a 2 s. K,>liku jc hrzinu prcnosa potrcbno ostvariti da bi
se tll postiglu .. '
33. Skup digitalni ima sen.wr od 1 h miliona pi bela i 3 bajta po piksclu. Ko-
liku sc sitka nw/.c smcstiti u tks mcnHJriju na kartici od I GB ako jc stepcn kom-
prcsi_ic slikc 5,., lisvojitc da I CJB 11nCi 2
111
bajtova.
3-1. l'mccnitc koliko zajLdno ' r:umacima. sadrzi tipicna racunarska knjiga.
Koliko jL' hitova putrc'hno da sc knjiga prewdc u ASCII kod zajedno s podacima o
parnosti'.' Koliku jc kompakt diskon potrebno za arhiviranJc racunarske biblioteke
<.,a J().()()\) knjiga.' K"liktl hi di.,kuva ;.a w hilo polrcbno. ako bi sc knjigc prenosile
na dvtlslt'_inc D\'D diskovc'
1
JS. Napi\itc pr,,ccduru filllllliling (us,ii. encoded) kuja prctvara 7 najmanjc 1:nacajnih
hitm a argumcnta u.wi!" u llbitnu cclobrujnu kodnu rcc koja sc zapisujc u rezultat
encoded.
36. ftlnk--:tju ,/n/,;nd' {itJ<!c. 11. k! kuja kao ulazni argument prihvata matricu
c(}(/e tJd n "d po 4 b!lu\Ct. a k:t<J r..:;.ultat vraca (llammingovo) rastojanje

3
NIVO DIGITALNE LOGIKE
LJ dnu hijcrarhijc prikazane na slici l-2 nalazi se nivo digitalne logike- pravi hard-
vcr racunara. U ovom poglavlju ohradicemo hrujnc aspekte digitalne logike knja pred-
stavlja pndlogu za proucavanjc visih nivoa u narcdnim poglavljima. Ova tema z:mzima
granicno podrucje izrnedu racunarstva i cistc elektrotehnikc. alije prilicno zaokruzena.
pa vam ncce biti ncophodna prethodna znanja ni o hardvcru ni o clcktrotdmici.
Osnovni elementi od kojih su sastavljeni svi digitalni racunari zacudujuce su jcd-
nostavn i. N asc prouca vanjc cemo poccti od nj i h i specijalnc vrste algebre koja opense
sarno s dve vrednosti (Bulova algebra), a sluzi za njihovo opisiv:mje. Zatim ccmo
nekoliko fundamentalnih elektronskih kola koja sc mogu napraviti jedno-
stavnim komhinovanjcm logickih kola. ukljucujuci i kolo za aritmcticke operacijc.
Posle toga slcdi razrnatranjc kombinovanja logickih kola za cuvanjc informacija, tj.
organizacije rnemnrije. Na kraju c'emo sc pozabaviti procesorom i nacinom na koji
procesorski cip komunicira s memorijom i periferijskim urcdajima. U drugom dclu
poglavlja proucicemo brojnc primcre iz prakse.
133
r
li:
W".JI
t
l
i..
134
Poglavlje 3: Nivo digitalnc logike
3.1 LOGICKA KOLA I BULOVA ALGEBRA
Digitalna kola se mogu konstruisati od rnalog broja osnovnih elemenata, kornbi-
novanih na razne nacine. U narcdnim odcljcima opisacemo osnovne elemcntc, po-
kazati kako se mogu kombinovati i upoznati vas s mocnom matematickom tehnikom
pomocu kojc se moze analizirati njihovo ponasanje.
3.1.1 Logicka kola
Strujno kolo je digitalno ukoliko u njemu postoje samo dve logicke vrednosti. Jed-
nu od dve vrednosti (npr. binarno 0) najcesce predstavlja signal napona od 0 do 1
volta, a drugu (npr. binarno l) signal napona izmec!u 2 volta i 5 volti. U kolu nisu do-
zvoljene vrednosti napona izvan pomenuta dva intervala. Sicusni elektronski uredaji,
nazvani logicka kola (engl. gates). mogu da izracunaju razlicite funkcije ova dva si-
gnala. Logicka kola su temdj hardvera od koga se sastoje svi racunari.
Detalji rada logickih kola ne spadaju u ovu knjigu, vee u neku drugu koja bi se ba-
vila nivoom uredaja ispod naseg nivoa 0. Bez ohzira nato, ipak cemo kratko zaviriti
u logicka kolajer princip njihovog rada nije tdko razumeti. Savremena digitalna lo-
gika poe iva na cinjenici da sc tranzistor mozc navcsti da radi kao vrlo brz binarni pre-
kidac. Na slici 3-1 (a) prikazan je bipolarni tranzistor (krug) ugradcn u jednostavno
kolo. Tranzistor ima tri veze sa spoljnim svetom: kolektor, bazu i emiter. Kada je
ulazni napon V" ispod odredcne kriticne vrednosti, tranzistor se ,iskljucuje" i ponasa
se kao bcskonacan elektricni otpor. Zbog toga izlazni napon Vi ima vrednost veoma
blisku naponu V,.,.. koji je za ovu vrstu tranzistora najcesce spolja postavljen na +5
volti. Kada napon Vu prcdc kriticnu vrcdnost, tranzistor se ,ukljucujc" i ponasa se kao
provodnik, zbog cega napon vi pada do napona uzemljenja (po pravilu, () volti).
+Vee
+Vee
+Vee
V,
V1
v,
vi
V2 V1 --+1 ) V2
(a) (b) (c)
Slika J-1. I a) Traru.isturski invertor. rh) Logicko knlo NAND. (c) Logicko kolo NOR.
3.1 Logicka kola i Rulova algebra 135
Treba primetiti daje napon vi visok kada je VII nizak i ohmuto. Ovo kolo je dakle
invertor jer logicku nulu pretvara u logicku jedinicu, a logicku jcdinicu u logicku nu-
lu. Neophodno jc koristiti otpornik (testerasti element na slici) da prejaka struja ne bi
unistila tranzistor. Po pravilu tranzistor prede iz jeclnog slanja u drugo za nekoliko na-
nosekundi.
Na slici 3-l(b) dva tranzistora su povez.ana serijski. Ako su oba napona V
1
i v
2
vi-
soki. oba tranzistora ce se ponasati kao provodnici i napon Vi ce opasli. Ukoliko je,
pak, bilo koji od ulaznih napona nizak, odgovarajuci tranzistor ce sc iskljucili i izlazni
napon ce biti visok. Drugim recima, napon Vice biti nizak samo ako su visoki i napon
V
1
i napon V2.
Na slici 3-l (c) dva tranzislnra su, umcsto serijski, vez.ani paralclno. U ovakvoj kon-
figuraciji, ako je hilo koji ulazni napon visok, odgovarajuci tranzistor cc se ukljuciti i
oboriti izlazni napon. lzlazni napon ce hili visok samo ako su oba ula7Jla napona niska.
Ova tri kola iii njihovi ekvivalcnli prcdstavljaju tri najjednostavnija logicka kola i
zovu se NOT (NE), NAND (Nl) i NOR (NlLI). Kola NOT se cesto zovu invertori; mi cemo
koristiti oba irncna. Ako sada prihvatirno konvenciju da ,visoki napon" (Vee volti)
predstavlja logicku jedinicu, a ,nizak napon" (napon uzemljenja) logicku nulu. izlazne
vrednosti napona moci cemo da izrazimo u funkciji ulaz.nih. Simboli koji se koristc pri
opisivanju ova lri logicka kola prikazani su na slikama 3-2(a)-(c), zajcdno s funkcio-
nalnirn ponasanjcm svakog kola. Na ovim slikama suA i lJ ulazne vrcdnosti. a X je iz-
lazna vrcclnost. Svaki red daje rezultat za drugaciju kombinaciju ulaznih vrcdnosti.
NOT
iY =iY D-x =6--x
B B B B


1
0
A B X
0 0 1
0 1 1
1 0 1 I
A B X
0 0 1
0 1 0
1 0 0
A B X
0 0 0
0 1 1
1 0 1
A B X
0 0 0
0 1 0
1 0 0
1 1 o I
1 1 0 1 1 1 1 1 1
(a) (b) (c) (d) (e)
Slika 3-2. Sirnholi pet osnovnih logickih kula i njihuvo funkcionalno ponasanjc.
Kada izlaz kola sa slikc 3-1 (b) povdcmo na ulaz invcrlora. dobija se kolo koje
ubavlja suprotnu funkciju od logickog kola NAND- tj. kolo cija ce izlazna vrednost
biti I sarno ako su oha ulaza I. To je logicko kolo AND (I); njegov simbol i funkcio-
nalnost su na slici 3-2(dJ. Slicno invcrtoru. na ulaz sc moze prikljuciti lo-
gicko kolo NOR da bi se dohilo kolo cijaje izlazna l ako jc harjedan od ulaza
I. a 0 ako su oba ulaza 0. Simbol i funkcionalnost ovog logickog kola OR (ILl) prika-
zani su na slici 3-2(e). KnL:>ici koji se koristc kao dco sirnbola za invertor i logicka
kola Ni\ND i NOR zovu se inverzioni kruziCi (engl. inversion bub!Jies). Oni se koriste
iLl drugom kontekstu da hi oznacili inverziju (obrtanje) signala.
136 Poglmljc J: Nivo digitalnc logike
Petlogickih kola prikazanih na 3-2 osnovni su gr:1divni blokovi nivoa digital-
ne lug ike. lz prethodnug opi'a se vidi da su za svako od kola :-J.\ND i NOR polrebna dva
tranzistora, dok su za kola AND i OR potrebna po lri. Zbog toga se mnogi racunari za-
snivaju na kolima NANDi !':OR ume,to na uobicajenijim kolima AND i OR. (Logicka
kola se u praksi, u stvari, realizuju malo drugacijc, ali su kola NAND i NOR i u tom
-;lucaju jednostavnija od kola c\!'ID i OR) Naglasimo ito da logicka kf,]a mugu imati i
vise od dva ulaza. LogiCJ.,o kolo N.\0iD. na primer, mole imati proiz\ oljan bruj ulaza.
ali u praksi retko ima vise od osam.
lako konslrukcioni detalji logickih kola spadaju u nivo uredaja. /.cli!ll>> da
mo bar glavnc le!Jnologije koje se na torn polju Dve glavnL' nste su hipolarni
tranzistori i lran;i,lori za . .,mwani na MOS tehnologiji (i\letal Oxide Semiconductor.
poluprovudnik na bazi metalnog oksida). Cilavne vrsle hipolarnih lram'i,.;tora su TTL
(Transistnr-Transi s\or Logic tran/istorsko-lranzistorska logika ). knja jc godinama
prednjacila u digitalnuj elcktronici i ECL (Emitter-Coupled Logic, emil<:rski sprcg-
nuta lugika). ku1a je kurisc'cna za i;uzetno hrz rad. D<mas se u racunarima najcesce
koristc MOS tranziswri.
Logicka kula zasrlov;ma na khnulogiji sporij<t su (ld "-ola iz.radcnih tclmolo-
gijama TTL i ECL ali \rose m,llljc ,trujc i 1natno su manja. pa ih mo/.c vise stati na cip.
Posloji nc"-oliku vrsta i\lOS tranzistora. ukljucujuc'i Pi\ lOS. Ni\IOS i Ci'vlOS. lako su
i\IOS tramist\1ri pu kunstrukciji drugal'iji od bipolarnil1 tran;istura. sposobnost da sc
LH' clcktr"<Jils"-i prekidal:i im jc isla. l; vccini savrcmenih proccsora i mcmo-
ri_ja primenju_1e sc Ci'v!OS tchnolugija ktJja kmisti napon ud +.1,3 vulta. To bi bilo sve
smo htdi d<t Y<tlll kai.cnm o nivou urcdaja. (itaoci l-;tJji fL'lc da prudube svoje
;nanjc o uvom nivou da pngledaju spisak prLdltzenc literature u pnglavlju lJ.
3.1.2 Bu!ova algebra
l:<t upisivanjc s"-l''PO\a k(1ji sc mugu clllhiti komhmovanjcm logickih kola potreb-
rnje nova vrst.t aigchre u klljOJ pr()mcni;ive i tun"-cijc mugu lt/imati samo vrednusti
() i ! . Takn JC RuloYa algebra (engl. H<h'lcun olgchru), koja jc dobila line po svom
ul'ctniku. c'l1!2lc';kpm makmaticaru 1 ). Stn1go govoreci.
u1dc c'elll<J ,c h:tviti ,pcciti,'nom H'>tum Rulnvc algcebrc. V1. prekidackom alge-
brom (en(!!. SH"iicliing ul;,-hnt), ali sc una IT!() CC''>l<' poi-;tu\CL'ujc s Bulovom algc-
brom. pa ni mi nccemo pr:l\ iti raz!i"-u.
Kao funLijc pu.s:ojL' u .. uhicn,)j"" (tj .. 1 :ligcbri. tako postojc i u
Bulovoj :d(!chri. Buk,va lu'llcija i:na jcdan iii vise ar:;umcnata. ,tnjen rczultat zavi'>i
iskijttcivo ,KlnjihO\ ill vrdnmti. Jcdnu:,tavna funL::ija.f mo/c :-.c clelinisati sledecim
isk:uum:j(. \) = I a"-ll Jc'. \ = ll 1 f(;\) = () a"-o jc A= I. Tu je lunkcIJ<l \:OT sa slike 3-2(a).
P<J;to Hukw:1 funkcij:1 11 promcnlji\ih ima '>amu 2
11
lllU<,!llc'!il kumbinacija ulaznih
vrcdnusti. ona ;c rno!:c polpirno pnmncu tahck nd ::n redo> as razlicitim vrcd-
funkcijc svc' arg11n1enata. Ta tabela se zuvc
tahda btinitosti (eng!. trllllt tuhin. Svc tahele na 3-2 primcri su lakvih tabcla.
r\l-..c' se sl,l!:imo cb rcduvc u tabeli istinitusti uvd: hin:1rnim r<Cdoslcdom tnpr.
/.ad\ <2 promc'l1lj; rcdoslcd<)!1l 00. ()I. 1 0 i I I ). \l!lda sc t"unhIja muze putpuno opisati
2"-bitnim hinarnim hmjc'm koji sc dobija kada sc kolona rc;uli:il<t u tabeli istinitusti
J.l Lngicka kola i Bulova algebra 137
cita odozgo nadole. Za funkciju NAND taj broj je !110, za funkciju NOR 1000, za i\J\D
000 I i za OR 0 Ill. Ocigledno je cia postoji samo 16 Bulovih funkcija dvc prumenljive
koje oclgovaraju svim kombinacijama 4-bitnog rezultata. Nasuprot tome, u obicnc)j
algebri postoji beskonacno mnugo funkcija clve promenljive. a nijedna od njih se ne
moze opisati tabelum rezultala za sve moguc'e vrednosti argurnenata jer svaki arg:J-
ment mo7.e imati hilo koju od beskonacno mnogo vrcdnosti.
Slika J-3(a) prikazuje tabelu istinitosti za Bulovu funkciju tri promenljive: M = }(4..
H. C). To je tzv.logicka funkcija vc6ne: rczultatjc 0 ako je vecina njenih argumenataO,
dok je rezultat I ako veCina njenih argumcnata ima vrednost I. Jako se svaka Bulova
funkcija moze potpuno opisati pomocu tabele kako raste broj argumerna,
tako opisivanjc postajc sve nepreglednije. Umesto toga, ccsto se koristi drugaciji naLin
oznaca vanJ a.
ABC ABC

4
ABC

M
A 8 c M
0 0 0 0
0 0 I 0
0 I 0 0
0 l I I c ---1"-------lr-t--;
1 0 0 0
1 0 I I
I 1 0 I
ABC
E
1 I I I
(a) (b)
Slika 3-3. (a) Tab.:b islinih>sti ta funkciju \"<'<'ine tri prumenljivc. tb) Kolo koje realizuje tahdu
islinilo,ti (a)
Da bismo videli kako sc on koristi. istaknimo da sc svaka Bulova funkcija !11<lZe
zadati tako sto c'e se rcCi koje kombinacije argumenata daju rczultat I. Za funkciJU sa
slike J-3(a) postoje cctiri kombinacije argumenata pri kojima ,\1 postajc I. Prcma USV()-
jcnoj knnvcnciji. iznad argumenta cijaje vrednost invcnnvana. stavljac'emo crtu. Ktda
crk nema. to znaci da vrednost argumcnta nijc invertovana. Pored toga. podrazumc:va-
no cemo koristiti rnnozenje (bez operalora) iii tacku da oznacirno Buluvu funkciju A\ID.
r
,,,,
'
'
:;;I
138
Poglavlje 3: Nivo digitalne logike
a znak + da oznaCirno Bulovu funkciju OR Tako, na primer, izraz ABC ima vrcdnost l
samo kada je A = l, B = 0 i C = l. Is to tako, izraz AB + BC ima vrednost 1 samo kada
je (A= I i B = 0) iii kadaje (B = I i C = 0). C:etiri rcda na slici 3-3(a) koji rezultat
1 jesu: ABC. ABC, ABC i ABC Funkcija M ima vrednost I ako bilo koji od ova cetiri
uslova ima vrednost I; prema tome, mozemo da napiserno izraz
M =ABC +ABC +ABC +ABC
kao sazet nacin prikazivanja tabele istinitosti. Funkcija n promenljivih se, dakle, moze
opisati ,zbirom" od najvise 2" ,proizvoda'' n promenljivih. Kao sto cerno se ubrzo
uveriti, ova fonnulacija je posebno vazna jer direktno omoguc'ava realizovanje funk-
cija pomocu standardnih logickih kola.
Trcba imati na umu razliku izmcdu apstraktne B ulove funkcije i njcnc realizacijc
elektronskim kolom. Bulova funkcija se sastoji od promenljivih, kao sto suA, B i C,
i Bulovih operatora, kao sto su AND, OR i NOT. Bulova funkcija se opisujc tabelom
istinitosti ili Bulovom funkcijorn, kao sto je npr.
F =ABC+ ABC
Bulova funkcija se moze realizovati elcktronskim kolima (po pravilu na vise naci-
na) tako sto naponski signali prcdstavljaju ulazne i izlazne vrednosti, a logicka kola
operatore, kao sto su AND, OR i NOT. Po pravilu, sa AND, OR i NOT oznacavacemo
Bulove opcratorc, a sa AND, OR i NOT odgovarajuca logicka kola, ali cc vas to cesto
dovoditi u ncdoumicu.
3.1.3 lmplementiranje Bulovih funkcija
Kao sto JC rcccno, forrnulisanjc Bulove funkcije kao zbira od najvise 2
11
proizvoda
dircktno vodi njenoj mogucoj implcmentaciji. Primer sa slike 3-3 omogucava nam da
shvatimo kako se to radi. Na slici 3-3(b) ulazi A, B i C prikazani sus !eve strane, a iz-
lawa funkcija M s dcsne. Posto su potrebni komplemcnti (invertovanc vn.:dnosti)
ulaznih promcnljivih. one su dobijene tako sto su ulazi povezani s invcrtorima I, 2 i 3.
Da bi serna bila pregledna, ucrtali smo sest vertikalnih vodova, ocl kojih su tri povcza-
na sa ulaznim promenljivama, a tri s njihovim komplcmentima. Ti vodovi su pogodan
izvor ulaznih signala za nareclna logicka kola na sliei. Na primer, logicka kola 5, 6 i
7 koristc /\ kao ula;:. U prakticnoj rcalizaciji, ova logicka kola bi verovatno bila cli-
rektno spojena s vodom A, hcz posredovanja ,vertikalnih'' vodova.
Kolo sadrzi cetiri logicka kola AND, po jed no za svaki sabirak u jednaci n i za AI ( tj. po
jed no za svaki red tabelc istinitosti koji u koloni rczultata ima bit I). Kao sto je receno.
svako logicko kolo AND odgovara jcclnom redu tabcle istinitosti. Na kraju, na svc pro-
izvode (sabirkc u jednacini) primenjujc se operacija OR da hi sc dobio konacan rez.ultat.
U semina slici 3-3(b) uvodirnu konvenciju koju cemo koristiti u ovoj knjizi: kada
se elva voda prcsecaju, izmeclu njih ne postoji kontakt, osim ako sc u njihovom prc-
seku nalazi pun kruzic. Na primer, izlaz iz logickog kola 3 prcseca svih sest vertikal-
nih voclova, ali je spojen samo s vodom C. lmajtc na umu da drugi au tori koristc drugc
kun vencijc.
lz primcra sa slike 3-3 moze se zakljuciti kako se implementira elektricno kolo za
bilo k.oju Bulovu funkciju:
3.1 Logicka kola i Bulova algchra
139
1. Napisati tabelu istinitosti funkcije.
2. Pomocu invertora generisati komplemcnte svih ulaznih vrednosti.
3. Predvideti po jcdno logicko kolo AND za svaki red u tabeli koji u koloni re-
zultata ima bit I.
4. Spojiti logicka kola AND sa oclgovarajuCim ulazima.
5. Sve izlaze logickih kola AND dovesti na logickog kola OR.
Iako smo prikazali kako se svaka Bulova funkcija moze implementirati pom,x'u
Jogickih kola NOT, AND i OR, cesto jc zgodno ako se funkcije mogu implcmentirati ko-
riscenjcm samo jednog tipa kola. Na srecu, elektricna kola dobijena navedcnim algo-
ritmom sasvim se jecinostavn.o prctvaraju u cist NAND iii NOR oblik. Da bismo to
uradili, moramo naCi nacin da funkcije NOT, AND i OR implcmcntiramo pomocu samo
jcdnog tipa logickog kola. Prvi red na slici 3-4 prikazujc kako se svc tri funkcije mogu
realizovati iskljucivo pomuc'u logickih kola NAND; poslednji red prikazujc kako se to
moze postici iskljucivo pomoc'u kola NOR. ( Ovu je jednostavan nacin. ali ima i drugih.)
Jedan od nacina da se Buluva funkcija implementira iskljucivo pomocu logickih
kola NAND iii NORjcste da sc prvo sprovede navcdcni postupak za njeno k.onstruisanje
pomoc'u logickih kola NOT, AND i OR, ada sc zatim logicka kola s vise ulaza zamenc
ckvivalcntnim kolima s dva ulaza. Na primer, funkcija A+ B + C + D mo7.c sc izracu-
nati kao (A+ B)+ (C +D) pomocu tri logicka kola OR sapo dva ulaza. Na kraju, lo-
giCka kola NOT, AND i OR treba zameniti kolima sa slike 3-4.
A
B
A
B
(b)


(a)
A
B
A
B
(c)
Slika 3-4. Konstruisanje Jogickih kola (a) NOT, (h) AND i (c) OR iskljucivo pomocu logickih kola
NANDi NOR.

v
140 Poglavljl' 3: Nivo digitalnl'
Iako ovim postupkom neccrno dohiti optirnalno elektronsko kolo koje sadrzi naj-
manji broj logickih kola.jasno jc da rcscnje uvek postoji. Za logicka kola NANDi NOR
kale se da su potpuna jer sc svaka Bulova funkcija moze izracunati korisccnjcm jcd-
nog od njih. Nijcdno drugo logicko kolo nema ovo wojstvo. pa nc cudi sto sc ona naj-
ccsce koriste kao gradivni blokovi slo?.enijih dcktronskih kola.
3.1.4 Ekvivalcntnost elcktronskih kola
Projektanti tezc da u svojim konstrukcijama smanje hroj logickih kola kako hi sni-
zili cenu rcalizacijc, ustcdeli pro . ..,tor na kartici sa stampanim kolom. smanjili po-
trosnju strujc itd. Da bi pojednostavili kolo. projcktanti mnraju smisliti tlrugo, koje
izracunava istu funkciju, ali pomocu manjcg broja logickih kola (iii mo?.da jedno-
stavnijim logic kim kolima, na primers dva. umcsto sa cetiri ulaza). Bulova algchrajc
ncproccnjiva alatka katla trcba pronaci takvo ekvivalcntno kolo.
Da bistc razurncli kako se Bulova algebra mo7.e iskoristiti pri projektovanju, raz-
motritc kolo i tahclu istinitosti za funkciju A/3 + AC prikazanu na slici 3-S(a). lako to
nismu dosad pomcnuli. mnoga pravila obicne algcbrc va;/.e i u Bulovoj algcbri. Kon-
krctno. u izranutR +A C mogu se primeni ti pravila distributi vnosti pa cc sc zajednic-
ki cinilac izvuci isprcd zagrade: A W + C). Slika 3-S(b) prikazuje kolo i tahelu
za funkciju A (B +C). Posto su dve lunkcije ck vivalcntne samo ako daju iste
rezultatc za svc moguce ulazne vrednosti. iz poredcnja tabela na slici 3-5 lako jc
zakljuciti daje funkcija A ( 8 +C) ekvivalcntna funkciji AB +A C. lako su ekvivalent-
na. kolo na slici 3-5(h) ociglcdno je bolje resenjc od kola na slici 3-5(a) jcr sadrzi
manjc logickih kula.
U nacclu. pnljcktovanjc sc zapocinjc od zadate Bulovc funkcije. a zatim se na nju
primenjuju pravila Bulove algebrc da hi sc dobilajcdnostavnija ekvivalentna funkci-
ja. Na kraju na nje se konstruise clektricno kolo.
Kada sc koristi ovakav pristup. potrehni sui ncki identitcti iz Bulove algchrc. Neki
od najvaznijih prikazani su na slici 3-6. Zanimljivo je da sc svaki identitct pojavljuje
u dvojini- ima dva oblika. Zamenjujuci AND sa OR i 0 sal (iii obrnuto), dobijamoje-
dan iii drugi oblik. Sva pravila sc mogu lako dokazati ako se konstruisu njihove tabcle
istinitosti. Izuzev DeMorganovog zakona i zakuna apsorpcijc i distributivnosti (u oh-
liku AND). do rczultata se moze doci intuitivnim putem. DeMorganov zakon se moze
prosiriti na vise ud dve prumenljive, na primer (ABC= i\ + B +C).
DeMorganov zakon omogucava korisccnje alternatin10g oznacavanja. Na slici
3-7( a) oblik AND je prikazan s negacijom oznacenom inverzionim kruzicima i za
ulaz i za izlaz. Na taj nacin. logicko kolo OR sa invertuvanim ulazima ekvivalentno jc
logickorn kolu NAND. Sa slike 3-7(bJ, altcrnativnog oblika DeMorganovog zakona,
mozemo zakljuciti cia sc lugicko kolo NOR mo7.e nacrtati kao logicko kolo AND sa in-
vertovanim ulazima. Negacijom oba oblika DcMorganovog zakona dobijarno slikc
3-7(c) i (d), na knjima su dati ekvivalcntni prikazi logickih kola AND i OR. Analogni
simboli postuje i za oblike DcMorganovog zakona s vise promenljivih lnpr. logicko
kolo NAND san ulaza postaje logicku kolo OR san invertovanih ulaza).
J.l Logicka kola i Bulova algehm
A
B
141
AB > AC
c
:;;ro A(BcC]
C B+C
A B c AB AC AB+AC A B c A B+C
0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 ' 0 0 0 1 0 1
0 1 0 0 0 0 0 I 0 0 I
0 1 1 0 0 0 0 1 1 0 I
1 0 0 0 0 0 I 0 0 I 0
1 0 1 0 1 1 I 0 1 I 1
1 1 0 1 0 1 I I 0 1 I
1 1 1 1 I I 1 1 1 I I
- -
(a I (b)
Slika 3-5. Dvc ckvivakntnc runkcijc. lc:) .\B +.\C. (hi i\ 1li + Ci.
,-
: lme Oblik AND
Pravilo identicnosti ! 1
' Pravilo nule OA=O
: Pravilo ic!ernpotentnosti AA.=A
, Pravilo invewje A A =A
Praviio komutativnost1 .1\B=BA
Praviio asocijativnosri
Praviio rlistnbu;ivnosti
Pravilo apsorpcqe


(A.BIC=A(BCl

A(A+B;=/\
AB=A-rB
Oblik OR
:O+A=A
: 1.,_A=1
A+A=A
. A.,_ f.. =1
A+B=B+A
, (ATB)+C=A-r(B+C)
1
A(B+C)oAB+A.C
,' -- -

'A+B=AB
Slika 3-6. Ncki idcntitcti Rul.>vc algehre.
A(B +C) i
0
I
0
0
0
0
1
I
1

- - -1
Pomocu slike .'-7 i analugnih praviLr;a lugicka knla-; \ ik ulaza. priktz
tabck istinito'>ti u oblil--u sumc pmizvuda bko mo:l.e prcrvotiti u obiikc u kojiilt:t
po-.;tojc sarno kola :\.\ND iii NOR. Primcra r:tdi. funkciju EXCLL:SIVE OR
liskljucivo IL!l sa slikc 3-8ia\. Sund,trdnn kulo 1asnmano na prika1u u ohlil-.u Lb.r,t
proizvoda jc na stici 3-'11 h).
r
~
142
Poglavlje 3: Nivo digitalne logikc
AB A+B A+B AB
=C>- =L>- =L>- D-
(a) (b)
AB A+B A+ B AB
=D- :D- n- =LY-
(c) (d)
Slika 3-7. Altcrnativni simboli za neka logicka kola: (a) NAND. (b) NOR. (c) AND. (d) OR.
Da bismo kolo prctvorili u oblik NAND. vodove koji spajaju izlaze iz kola AND sa ula-
zirna u kolo OR treha dopuniti inverzionim kruzic'ima, kao na slici 3-X(c). Na kraju, po-
mocu kola sa slike 3-7(a) dobija se kolo na slici 3-X(d). Promenljive A i B mogu se
dobiti od promenljivih A i B pomocu kola NAND iii NOR kada im se ulazi objedine. Obra-
titc paznju nato da se inverzioni kruzici rnogu slobodno pomerati duz voda, (na ptimcr,
od izlaza iz ulaznih logickih kola na slici 3-X(d) do ulaza u izlazno logicko kolo).
A
B
A
B
A
0
0
1
1
8
0
1
0
1
(a)
(c)
XOR
A
B
0
1
1
A
0
8
---------
(b)
A
B
A
8
--
(d)
Slika 3-S. (a) Tabcla istinitosti za f"unkciju XOR. (b)-(d) Tri kola za njcno izrai'unavanje.
3.2 Osnovna kola digitalne logikc
143
Na kraju teme o ekvivalentnosti kola dcmonstriracemo izncnadujucu cinjcnicu da
isto fizicko logicko kolo moze da izracunava razlicite funkcije u zavisnosti od upo-
trebljenc konvcncije. Na slici 3-9(a) prikazan je izlazni rewltat nekog logickog kola
F za razlicite kombinacijc ulaznih napona. I ulazi i izlazi prikazani su u voltima. Ako
prihvatimo konvenciju da napon od 0 volti predstavlja logicku nulu, a 3,3 volta ili
5 volti logicku jedinicu (pozitivna logika), dobicemo tabelu istinitosti sa slikc
3-9(b), funkciju AND. Ako, medutim, prihvatimo ncgativnu logiku, gde 0 volti pred-
stavlja logicku jedinicu. a 3,3 volta iii 5 volti logicku nulu, dohijamo tabelu istinitosti
sa slike 3-9(c), funkciju OR.
A B F A 8 F A 8 F
ov ov ov
0 0 0 1 1 1
ov sv ov 0 1 0 1 0 1
sv ov ov 1 0 0 0 1 1
sv sv sv I 1 1 1 0 0 0
I
(a) (b) (c)
Slika 3-9. (a) Elektricne karakt<:ristikc uredaja. (b) Pot.itivna logika. (cl Ncgativna logika.
Na taJ nacin funkciju odrcduje konvcncija kojorn sc napon u voltima prcslikava u
logickc vrednosti. Ukoliko nc naglasimo drugacijc, uhuduce ccmo se drzati pozitivnc
lugike, tako dace nam izrazi logicka jcdinica. istinito i visok napon oznacavati is to,
has kao i izrazi logicka nula, lal:no i nizak napon.
3.2 OSNOVNA KOLA DIGITALNE LOGIKE
lJ prethodnim odcljcima videli smo kako se implemcntiraju talKie istinitosti i jed-
nostavna elcktronska kola pornoc'u elemcntarnih logickih kc1la. LJ praksi se, mct1utim.
elektronska kola retko pravc ml osnovnih komponcnata, mada se nckada radilo basta-
ko. Danas su graclivni blokovi po pravilu moduli koji sadrze brojna logicka kola. U
narednim odcljcima detaljnije cemo prouciti gradivnc biokove i saznati kako se kori-
ste i kakn se mogu napraviti od pojedinacnih logickih kola.
3.2.1 Integrisana kola
Logicka knla sene pravc i ne prmlaju pojedinacno. vee u ohliku modula nazvanih in-
tegrisana kola kngl. lnfLgmted Circuits. lCl iii samo cipmi. lntcgrisano knlo je sili-
cijum,;ka plocica velicinc oko 5 x 5 mm na koju su naneta logicka kola. Mala
integrisana kola obicno su po-.;tavljcna na pravougaonu plasticnu ili kt:ramicku plocicu
siroku izmettu 5 i 15 mn1. i dugacku od 20 do 50 mm. Du7. ivica plocice nalaze se dva
paraklna rccla nozica. dugackih oko 5 mm, knje se moguumetnuti u udguvarajuce pod-
nozje iii zalcrniti na karticu sa stampanim kolom. Svaka nozica jc ulaz ili i:rlaz jednog
144
Poglavlje 3: Nivo digitalnc logikc

od logickih kola na cipu. iii sluzi za napajanjc. odnosno uzemljenjc. Cip s dva red a nozi-
ca spoija i intcgrisanim kolom iznutra. ll tehnici je poznat kao paket s dva red a nozica
(engl. Duallnline Package, DIP), ali ga svi zovu samu cip. zanemarujuci tako razliku
izmcdu silicijumske plocicc i njenog kucista (paketaJ. Ovakvi cipovi najCesc'c imaju 14,
16, 18, 20. 22. 24. 28, 40. 64 iii 68 nozica. Vcc'i cipovi Sll kvadratnog ohlika, s nozicama
na svc cctiri ivicc iii na donjoj strani.
Cipovi sc mogu grubo svrstati u prema broju logickih kola koja sadr:lc. Tak-
va klasifikacijajc zaista gruha, ali jc ponckad korisna.
Kola s niskim stcpcnom intcgracijc (engl. S111all Scale lntegrarcd, SSI ): ud I do I 0
logickih kola.
Kola sa srednjim stepenorn integracijc (engl. J'v!idiwn Scale lntegruted, MSI): od
lO do I 00 logickih kola.
Kola s visukim stcpcnorn intcgracije (engl. Large Smlc lnrcgrurcd, LSI): od I 00
do l 00.000 logickih kola.
Kola s vcoma visokirn stepcnorn intcgraci.Je (engl. Vcrv Lurge Smlc lntegruted.
VLSI ): vise ml l 00.000 logickih kola.
Ove klase imaju ra;Jicita svojstva i koriste sc na razlicite nacina.
SSI cip obiCno sadr.i:i ocl dva do sest nczavisnih logickih kola, od kojih sc svako
mozc koristiti pojedinacno. kao sto je navcdenu u prcthodnim odcljcirna. Stika 3-10
prika:wjc SCillll uohicajenog SSI cipa sa cdiri logicka NAND kola. Svako od ovih kola
ima dva ulaza i jedan izlaz. znaci da ukupno 12 nozica. Osim toga. potrcb-
najc i no/.ica za napajanje ( V("(.) i jcdna za ULClllljenjc ( G N D). stu imaju svi ci povi. N a
cipu sc pored prvc no/.ice ohicno nalazi urcz kako bi sc laksc uocila njcguva orijcn-
tacija. Da bi sc u clcktricnim semama i;.heglo pretrpavanjc. obicno sc na njima ne pri-
kazuju ni napajanjc ni uzcmljenjc. niti logicka kola.
Vee
f
Urez
UzemljenJe
Slika 3-10. SSI cifl sa c'ctiri logicka kola.
3.2 Osnovna kola digitalne logikc 145
-----
Postojc brojni cipnvi slicni ovom. po ceni od nckoliko ccnta. Svaki SSI cip ima
brojna logicka kola i do dvadcsctak no/.ica. Racunari su sedamdesetih godina kon-
struisani pomocu vclikog broja ovakvih cipova, ali sc danas na jcdan cip stavlja citav
proccsor i velika kolicina (keS) memorije.
Sva logicka kola u nasim razmatranjima nmzcmo smatrati idealnimjer se signal na
izlazu pojavljuje odrnah cim sc dovede signal na ulaz. U rcalnosti se signal na izlazu
nc pojavljuje odmah jer postoji kasnjenjc logickog kola (engl. gate de far) zbog vrc-
mcna prostiranja sign alai vremcna obavljanja prekidacke funkcijc. Najcesc'e vrcdno-
sti kasnjcnja su izmcdu I i I 0 ns.
Sadasnji nivo tchnologije omogucava da se na cip srncsti skuro l 0 miliona tranzi-
stora. Pu;to sc svako elektronsko kolo moze sklopiti ud logickih NANil kola, mogli hi-
stc pomisliti da cc proizvodaci napraviti viscnamenski cip sa, na primer. 5 miliuna
;-.;
1
\ND kola. Na7.alost, takav cip hi moran imati 15.000.002 nozice. Uz stamlardan raz-
mak od 2,5 rnm izmcdu nozica. cip bi bio dugacak preko ll) km, pa se rnol.da nc bi do-
bro prodavao. Da bi se tehnologija iskoristila na pravi nacin. ociglcdno je cia odnos
innedu broja logickih kola i hroja no7ica trcha da bude stu veci. u narednirn t>deljcima
razmotriccmo jednostavna MSI kula u kojima sc logicka kola internu komhinuju da hi
obavila funkcijc za kojc je potreban samu ogranicen broj spoljnih izvoda (nozica).
3.2.2 Komhinadona kola
U mnogim primcnama digitalne lug ike potrcbno jc kori,titi kclla s visc ul<Va i vi:;e
izlata. kod kojih su i;lazni signali jednuznacno trcnutnim vrednustima
nih signata. Tak vo kolu sc wve kornhinaciono kolo (engl. cn111hinutinnul circuit). Nc
pnnasaju se sva kola taku. Na primer, kolo mcmorij..,kim clcmcntima mole da ge-
nerise izlaznc signale koji zavi:,L nc ud ula:r.nih signata. vee i od fapatm'enih
\Tcdnosti. Kolu b'Jilll '>C impkmcntira tahela bo sto jc npr. kulo sa -;li"-e
3-3(aJ. tipican je primer kumbin:tcionog kula. U mom odeljku anali;iraccmo n.::ka
cesto korisc'cna kmnbi naciona kola.
l\Iultiplekscri
Na nivou digitalne lugtke. multiplekser je klllo sa 2" ulaza. jednim izLlLlHll i 11
upravljackih ulMa pumocu k''.Jih ,c birajcdan ud ulaza ku_ii c'e rnjaviti na i;lazu.
Na slici 3-11 ;emat.-;J._j je priLu::tn nwltiplcL,r:r .-:a u.-;am ulaza. Tri upr.l\ljacka signa-
la .. I. B i C. kodir:tjn 3-hitni broj koji ,,dreduje kuji cc <id osam ulaznih signata hiti
usmcr.::n ka lugiCknm kolu OR i mLttle ka izlazu. Bc.r ubfira na upravljackc stgn:tk.
'edam od O'>alll lugickih kola X'D uvd. .5c d:tti nulu; pre<ht:tlu kl'I'J .-\'ill d:tL't: vrcd-
nust ()iii l, stu ;:avisi ml \TL'dll<l\tl \Jcbbr:uwg ulaznog signala. Svako j._,l[O
vira se drug,tci_jum kumhin:tci_Jilnl upr:tvljc1ckih '>ignalct. Scma mullipkf.::.cr:t
pril-;azana je na ,lici 3-11. Kc1da -;c dnd:1ju napajanjc i u?emljcn.Jc. multipkber -;e
mo/.e na l:ip sa 14 nn/.iL':L

146
Poglavlje 3: Nivo digitalne logike
Do
D1
D2
D3
D4
Ds
D6
DJ
A!Aisttn
A B c
Stika 3-11. Kolo 'a osam ulaza.
Pornocu multiplcksera mozemo implementirati runkciju \'ci'inc sa slike 3-3(a), kao
sto je prika,cano na slici 3-12! b). Za svaku kombinaciju signala A, B i C bira se jedan
od ulaznih signaLt. Svaki ulazjc spojen iii .w V,c (lugickajedinica) iii jc uzcmljcn (lo-
gcka nula). Algoritam ozicenja ulaza je jednostavan: ulaz Di isti jc kao i vrcdnost u
rcdu i tabcle istinitusli. Na slici 3-3(a), rczultati u rednvima 0. I. 2 i-+ su nule, tako da
su odgnvarajuci ula.r.i uzemljeni; rczultati u ostalim rcdnvima sujedinicc. pa sc ula.r.i
pwezuju s logickomjcdinicom. Na taj naC:in sc pomocu C:ipa sa slikc 3-12(a) moze im-
plementirati svaka tahcla istinitosti s tri promcnljive.
Upravu smo ohjasnili kako se multiplckserski cip mozc upotrebiti za biranje jcd-
nug ocl vise ulaz.nih signala i kako sc pomocu njega moze implcmcntirati tabcla isti-
nitusli. njegova rnoguca primcna jc u obliku paraklno-serijskog prctvaraC:a
podataka. Kada seX bitova podataka doveck na uLvc. a 1atim sc upravljaC:ki signali
kumbinuju tako da redom daju binarne vrednosti od ()()()do Ill, X ulaznih hitova cc
sc na izlam pojavljivali serijski -jedan za drugim. Paralclno-sc:rijski prctvarac poda-
taka obicno se koristi u tastaturi, gde se pritiskom na hilu koji taster po pravilu defi-
nise 7-bitni iii 8-bitni broj koji semora poslati preko telefonskc !inijc hit po hit.
3.2 Osnovna kola digitalne logike
Do-
Dl
Vee
I
147
I
Do
D1
Dz
D3
D4
1------- F
Ds
D,-
DJ-
A B C
Ia)
Ds
D6
DJ
A B C
I b)
Slika 3-12. (a) MSJ multiplt:kscr. (h) Isti multiplekscr povczan tako Lia izracunava funkciju
vcCine.
Uredaj koji funk.cionise suprotno od multiplek.scra jeste demultiplckser; on jedan
ulazni signal upuc'uje najedan od 2" izlaza, sto zavisi od vrcdnosti n upravljackih si-
gnala. Ako je binarna vrednostupravljaC:kih signata k, bira se izlaz k.
Dekoderi
Sada cemo. kao drugi primer, anali.r.irati kolo koje kao ulazni podatak prihvata
n-bitni broj a zatim na osnovu njega bira samo jedan od 2
11
iLlaza koji postavlja na
vrednost logicke jedinicc. Takvo kolo koje je na slici 3-13 prikazano zan= 3, zove se
dekoder.
Da biste razumeli C:ernu sluzi dekocler, zamislitc malu mcmoriju sa osarn C:ipova od
po I MB. Cip 0 ima adrese od 0 do I MB, cip l ima adrese od l MB do 2 MB itd.
Kada sc od memorije zatrazi sadrzaj s neke adrese, lri njena najznaC:ajnija bita omo-
gucavaju biranje jednog od osam C:ipova. Ta tri bita u kolu na slici 3-13 jcsu tri ulazna
signa\:1- A, B i C. Zavisno od njihovih vrcdnosti. na samo jednorn od osarn izlaza
- D0, .... D7 - pojavice se logiC:kajedinica; na ostalirn izlazima pojavice sc logicka nu-
la. Svaki izlaz aktivira jedan od osam memorijskih cipova. Poiito sc samo na jednom
izlazu pojavljuje logiC:ka jedinica, aktivira sarno jedan cip.
Rad kola sa slike 3-13 jednostavan je. Svako logicko kolo AND ima tri ulaza, od
kojih je prvi A iii A . drugi B ili B, a treci C iii C. Svako logicko kolo se aktivira dru-
gacijom kombinacijom ulaznih signala: D
0
komhinacijom A 8 C, D
1
kombinacijom
ABCitd.
!'
148
Poglavlje 3: Nivo digitalnc logike
-----------------
A--.------
B D

Slika 3- U. .. u
Komparatori
Jus jcdno koristw kol,, je i llv. komparator: on fl''rcJi che uLvnc reci .. kdnusta-
van komparatnr s:t slikc ima d':a ula:.na signala. ,\ i B. bita. i gcneri;c
logicku jeclinicu ako su signali j<:dnaki. ili logicku nulu ak<l nisu. K<lmpar:thli. Dls-
niva na logickom k<llu .\:uR 1 i,kl_ju-:'ivu ILl). kojc: lugicku nulu ako su ulazni
signali jcdnaki. a l\gicku jcdinicu ak\> su nejcdnaki. Aku su dve ulaznc reci jednc,h\
sva cetiri kola XUR mnraju gcncri,;tti vrednnst 0. i'h cctiri sc taJa mn/c pri-
menili dperacija OR: ak\1 _:e rc;cultat IJ. uLt;nc rcci su jcdnake. 11 suprntihlll1 U
na.:;cm primcru. n:t kraju snwupmrchili logick\l K<Jio :\('!\ da bismo (sa aspeku k:ns-
nika) testu cbli :i(c ,misLt. tj. da hi \(>giCka jcdinica o7nal:av:ib j<dnak,,q, a !ogicb
nula ncjcdnakDst.
Programabilni logil-ki uiwv i
Vee SilHJ viLkli ,!a sc proiuoijne funL.ije 1 labcle nwgu kt>n:-,trui-,ati
tako ;tu se pornucu lugiCkih J..ola .\-'D izrctCunaju na kuje se zari:n pt in1cni
uperacija \JR. Op\ti cip J.."jim ,c mole ohrazovali 1.bir prutzvocLJ zove programa-
hilni logicki niz kng-1. f'rn::,twnllw/;/c {t>!.;iiArru\. PLA1. ajedan njeg<J\'prirner pri-
kaLan jc na .-;liei 3- i .". On i:nc1 ula;c: _,a I_:> prumenljivih. K,Hnplcmenl sv:tkog ulaza
3.2 Osnovna kola digitalne logike
------------------------
A0 ------\
8
0
___).)
A,------\
B,___).)
A2 ------\
B
2
__j)
AJ------\
BJ__j)

kola EXCLUSIVE OR
--
A=B
Slika 3-14. Jclinustavan -1-bitni kornparatur.
149
se u l:ipu. tako cb ukupno ima 24 ula;na signala. Srz ovog kola cini niz od 50
logickih kola AND. od kojih svako mole kaoulaz irnati bilo koji podskup od 24 ulazna
signala. Knji ulazni signal ide u koje logicko kolo AND, odredujc matrica od 24 x 50
bitova koju ;adajc korisnik. Svaki ulaz u 50 logickih kola AND ima osigurac. Kada cip
dodc iz fabrike. svih 1200 osiguraca radc. Da bi programirao matricu, korisnik izlaze
cip visukom naponu. pri ccmu osiguraci prcgorevaju.
lzlaLni deo kola sastoji se ocl sest logickih kola OR. od kojih svako ima do 50 ulaza
koji odgovaraju broju izlaza iz Iogickih kola AND. Matrica (50 x 6) koju zadaje kori-
snik. udrcctuje koji od potencijalnih spojeva stvarno postoje. Cip ima 12 ulaza. 6 iz-
l:tza, izvod za napajanjc i izvod za (ukupno 20 izvoda).
Da hismo na primeru vidcli bko se moze koristiti PLA cip, razmotrimo ponovo
kolo sa :-.like .3-3(b). Ono ima tri ulaza, cctiri logicka kola AND,jcdno logil:ko kolu OR
i tri invertor-a. Uz odgovarajuca unutrasnja spajanja, PLA cip lllOZC da izracuna istu
funkciju pomocu tri od svojih 12 ulaza. pomocu cetiri od svojih 50 logickih kola AND
i pomocu samo jednog od svojih scst logickih kola OR. (Cetiri logicka kola AND sluze
;a izral:unavanje proizvoda ABC. ABC. ABC i ABC, koji se kao ulazi u logic-
b kula OR.) U stvari, isti PLA cip mozc sc tako interno prcspojili cia islovremcno iz-
l:etiri funkcije s!icnc slozenosti. Ogranicavajuci faktor za jednostavne
funkcije jeste hroj ulaznih promenljivih clok za neke slozcnije funkcijc ogranicavajuci
Ltktor mugu biti logicka kola A:--.ID iii OR.
lako 'e PLA cipovi kuji se mugu programirati na lieu mcsta jus uvek koristc, za
l11llt>gc primcnc Sll pogodniji vee namenski programirani PLA cipovi. Njihovu malri-
Cll J.adaje kupac i proizvodac ih pravi prcma njegovoj specilikaciji. Takvi PLA cipovi
sujcftiniJi od onih koji oc programiraju na lieu mcsta.
j,
150
A
8
~ ~
Poglavljc 3: Nivo digitalnc logikc
49
aj osigurac
nije ulaz
Ia 1
6 izlaza
Slika J-15. Programahilni logicki niz sa 12 ulaza i 6 izlaza. K vadratici precbtavljaju o'iguracc
kn]i sc mogu programirano istopiti da bi se odrcdila zadata funkcija. OsigurCJci su urcJeni u dvc
matrice: gornju za logicka kola .-\ND i donju za kola OK.
Sada mozcmo da uporcdimo tri razlicita nacina na kojc smo implcmentirali tabelu
i'tinitosti sa slike 3-3(a). Kada koristimo SSI kompunente. trcbaju nam cctiri cipa.
S druge strane. mozerno proci i s jednim MSI multiplekserskim cipom. kao na slici
3-l:?.(b). Najzad. mozemo iskoristiti i samo cetvrtinu jednog PLA cipa. Ako je potreb-
no implement irati vise funkcija. ocigledno je da su PLA cipovi najpovoljniji izbor. Za
jednostavnije funkcije. verovatno su pogodniji SSI iii MSI cipovi.
3.2.3 Aritmeticka kola
Vreme je da sa MSI kola opste namcne preL1emo na kombinaciona MSI kola spe-
cijalno podesena ;:a aritmeticke operacije. Pocecemo s jednostavnim 8-bitnim pome-
racem (engl. shijier). zatim cemo preci na sabiracc (engl. adders), ana kraju cemo
analizirati aritmeticko-logicke jedinice koje u racunaru zauzimaju central no mesto.
Osnovna kola digitalne logike
151
Do D, o, D, D, Ds o, o,
c ~ - - - r ~ - - - - r - ~ - - - + ~ - - - - - r ~ - - - - ~ - - - - T - ~ - - - - ~
So s, s, s3
s, Ss s, s,
Slika J-16. kdnohitni pumerai' ulevo i lllksno.
Pomeraci
Nase prvo aritmeticko MSI kolo je pomerac sa osam ulaza i osam izla;:a (slika 3-16).
Osam ulaznih bitova dovocle se na ulaze 0
0
, ... , lh. Rezultat, koji nije nista drugo do
ulazna vrednost pomerena za I bit, dobija se na izlazima S
0
, ... , S
7
. Upravljacki signal
(bit) C odreduje smer pomcranja, pri cemu 0 oznacava pomak ukvo, a I udesno. Pri po-
meranju ulevo, na mesto 7. bita unosi se 0. Slicno tome, pri pomeranju udesno, na mesto
nultog bita umecc se I.
Da biste razumeli kako kolo radi. obratite paznju nato da postoje po dva logicka
kola AND z.a svc bitove, osim krajnjih. za koje postoji po jedno. Kadajc C = I, aktivira
se desni clan svakog para logickih kola, koji ulazni signal direktno propusta na izlaz.
Posto je des no kolo AND iz svakog para povezano na ulaz kola OR des no od njcga, po-
meranje se izvodi udesno. Kada je C = 0, ukljucujc sc levi clan iz para kola AND i po-
meranje se izvodi ulevo.
Sabiraci
Skoro jc nezamisl i v racunar koj i ne rnoze da sabira celc brojeve. Prema tome,
sustinski dco svakog procesora je hardversko kolo za sabiranje. Tabela istinitosti za
operaciju sabiranja 1-bitnih celih brojeva prikazanaje na slici 3-17(a). U njoj za svaki
red pustoje dva rezultata: zbir ulaznih vrednosti A i B i !Xenos na slcdecu (levu) po-
ziciju. Kolo koje izracunava i bit zbira i bit prenosa prikazano je na slici .3-17(b ). Ovo
jednustavno kolo jc poznato pod opstim imenom polusabirac (enlg. fwlfwider).
lako polusabirac moze da se iskoristi za sabiranje najmanje znacajnih bitova dve
visebitne reci. on sene moze upotrcbiti za sabiranje bitova u sredini rcci jer ne obracluje
izracunati prenos. Za to je potrcban potpuni sabirac (engl.jidl adder) koji je prikazan
na slici 3-18. Analizirajuci sliku. mozemo zakljuCiti daje potpuni sabirac napravljen od
dva pnlusabiraca. lzlazni signal Zbir ima vrednost I akoA, B i Unos imaju neparan broj
bitova l. Pre1ws ima vrednost I ako A i B istovremeno imaju vrednost I (levi ulaz u
logicko kulo OR) iii ako samo jed no od njih ima vrednost I, a Unos takode ima vrednost
I. Dva polusabiraca zajedno generisu bit zbira i bit prenosa.
-r:"1
I.
I
11
. I
I I
I I
I
r:
,,.
152
A
0
0
0
0
1
1
1
1
Poglavlje 3: Nivo digitalne logikc
A B
0 0
0 1
1 0
1 1
--
Zbir
0
1
1
0
Prenos
0
0
0
1
: l ' ]
Pre nos
Logicko kola XOR
1'//
Zbir
Stika 3-17, (a) Tahcla istinitosti za 1-hitno sahiranjc. (b) Knill polusabiraca.
B Unos
0 0
0 1
1 0
1 1
0 0
0 1
1 0
1 1
-
(a)
Zbir
0
1
1
0
1
0
0
1
Prenos
0
0
0
1
0
1
1
1
; l ' ))
Pre nos
Unos
I
\bl
Slika 3-lll. (aJ Tahcla istinitosti 1.a potpuni sahirac. (h,i Kolll putpu:J<>g ;:.biraca.
Zbir
Da bi sc napravio sabirac. na primer. za dvc 16-bitnc reci. treha I(, pula un11w!iti
ko1o sa slike 3-1 XibJ. Bit pt'<-'nusa sc tada korisli ka,, unns za puziciJU na lc\oj .strani.
Unos za krajnju dcsnu p()!iciju hardverski je mck pmlcsen na nulu. Ova\..av tip sabi-
raca ZOVC SC sahiraC S postupninl prcnOSOnl (engl. rif>p/c c'UIT\' utfdcr) jl'f, U ll:l]g<'l't'nl
s1ucaju, dodavanje 1 hroju Ill .. 111 !binarno) ne mu7c Ja se 1avrsi we dok se nc i;vrsi
sukccsivno prcnoscnjc ud bit a ra dec;nnm kraju do btta na lcvom kraju. Post,Jje
koji ncmaiu ()\ill vrcmcthkll ;adr\ku ( r:ldc br::c) i zaro se po pravilu cesce kuristc.
3.2 Osnovna kola digitalnc logikc
153
Da bismu Llobili jednostavan primer brzeg sabiraca. podelimo J::Z-bitni sabirac na
dve 16-bitne polovine: gornju i donju. Kada sabiranjc zapocne, gornja polovina nccc
moci nista da radi tokom 16 ciklusa sabiranja jer ne zna unos za svoj prvi bit.
Medutim, skdecu rnodifikaciju ovt: seme. Udvostrucimo gornju polo-
vinu u dvc paralclne grane. Tako ce se kolo sastojati od tri 16-bitna sabiraca: jedne
donje polovinc i dve gornje polovine, UO i U 1, koje rade paralelno. U UO se kao pre-
nos dovodi nul a: u U j sc kao pre nos clovodi jedinica. Sada obc gornje polovinc mogu
zapoccti s radnm ;_,tllvrcmeno kada i donja polovina. alice samo rezultatjeclne od njih
biti tacan. Posle i6 ..:iklw.a sabiranja bice poznat prenos u gornju polovinu, pace se
moci izabrati ispra-.an ud cha rezultata. Ovim trikom se dvostruko skracuje vreme
hiranja. Takav sabirac -;e 7.ovc sabirac s biranjcm prcnosa (engl. carry selel'! wider).
Opisani trik se mnze ponO\ iti da bi sc 16-bitni sabirac napravio od udvojcnih S-bitnih
sabiraca itd.
Aritmcticko-logicke jedinice
Vccina racltnara ima samo jedno kolo koje ohavlja opcracijc AND, OR i sahiranja
dvc masinskc rcci. Takvu kolo za n-hitnc rcci najcescc sc sastoji od najvisc n identic-
nih kula 1.a bitove na pojedinim pozicijama. Slika 3-19 jednostavan je primer takvog
kub. naL'<ttwg aritmeticko-logicka jedinica (engl. Arithmetic Logic Unit. ALU ).
Ona mu,ie da llbavlja bilo koju od cetiri funkcijc: A AND B. A OR B./] iliA+ B, sto za-
visi m! ;,1ga da li ulazi F
0
i F
1
za hiranje funkcije sadrze bitovc 00, 0 I. I 0 iii II (hi-
narnu). Obratite nato da A+ B oznacava aritmeticki zbir bmjeva A i B. a nc
l3ukl<ll ('jlcraciju OR.
L lev om donjcm uglu sl ike. nasa ALUjedinica sadrzi 2-bitni dckodcr koji gcnerise
;,ignalc 1:.1 aktiviranjc (:etiri operacije na osnovu upravljackih signala F
0
i F
1
U zavis-
nosti ml 1 signal a F
0
i F
1
hira se samo jedan od cetiri ulaza za aktiviranje. Na
laJ nacin sc umugucava da rczultat izabrane funkcije prode kroz kraJnje logicko kolo
OR du
le1 uili gurnjem delu slike nalazi sc jcdinica za izracunavanje funkcijaA AND B,
. \ CJ!< L) i iJ. ali se samo jedan od rezultata propusta do krajnjeg logickog kola OR. u
za1 i'n<lsti c>d toga kuji jc nd ulaza dekodera aktiviran. Posto samo jcdan izlaz deko-
der:t i ma 'rc:dnost I, bicc akti virano samo jed no od cetiri logicka kola AND koja su po-
venna s j.:,,Jom OR: izlaz iz ostala tri kola bicc 0, bez obzira na vrednosti ;\ i B.
CJsim sto se .\ i B mugu koristiti kao argumenti za logicke iii aritmetickc opcracijc.
'' ki od JI th ulaza moguce je negiranjcm (EN.\ iii ENB) postaviti na vrcdnost 0. Moze
'e duiJiLi i ,\ ako se 'ignaiiNVA postavi na vrednost I. Upotrcbu signala !NVA, ENA i
ENB ubr:tdiL'emo u pogla\lju ..J.. U normalnim okolnostima. signali ENA i ENB irnaju
H;ednust 1 ,J:t hi se omogucila oba ulaza. dok signal !NV,\ ima vrednost 0. U ovom
slut:aju. ,\ i !l sc duvode neizmcnjcni u logickujcdinicu.
lJ ,kstllllll dunjcm uglu ALU jedinice nalazi se potpuni sabirac za izracunavanje
zhira, \ i n. ukljucujuci i obradu prenosa jer postoji vcrovatnoca dace vise nvah ih
J..ola biti meJusohno povezano radi obavljanja operacija nad cclirn rccima. Kula sa
<>like _i-1 \1 srvarno sc proizvode i poznata su kao jednohitnc sekcije (engl. hit slices).
154
Poglavlje 3: Nivo digitalnc logike
I NV
A

B '
ENB ;,a - II I
Fo I : I I I
Ft l I
I
I
I
I
l ____ f ________________ _
Dekoder
Unos
Zbir
,------------t--------------t---:
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
Potpuni __ :
sabirac :
I
I
I
I
_______________________ )
Pre nos
Slika 3-19. Jednohitna aritmcticko-logicka jcdinica.
lzlaz
01a projcktantu omogucavaju da konstruise ALU jcdinicu bilo koje sirinc (u bitovi-
nn). Na slici 3-20 prikazanaje 8-bitna ALU jedinica izgradena od osam 1-bitnih ALU
sekcija. Signal INC sluzi iskljucivo za operacije sabiranja. Kada postoji, on uvecava
rcwltat za I, omogucavajuci izracunavanje zbirova. kao sto suA + I i A + B + I.
C

A
7
8
7
O, O, O, O, 01 00
Unos Pre nos
Slika 3-2(1. Osam I hitnih ALl J sekcija povezanih u i-1-bitnu ALL' jcdinicu Signali za aldiviranje
i invcrtovanjc nisu prikazani.
3.2 Osnovna kola digitalne logikc
155
3.2.4 Generatori radnog takta
u mnogim digitalnim kolima. sustinski je vaz.an redosled kojim se odvijaju do-
gadaji. Ponekad jedan dogadaj mora prethoditi drugorn, a ponekad se dva dogadaja
moraju desiti istovremeno. Da bi projektanti mogli da uspostave vrcmenske odnose
izmeltu dogadaja, u rnnogirn digitalnim kolirna se za sinhronizovanje koristi radni
takt. Radni takt (engl. clock) u ovorn kontekstu predstavlja kolo koje neprekidno
emituje impulse odredene duzinc u odrcdcnim vrcrnenskim razmacima. Vremenski
interval izmedu dve odgovarajuce ivice dva uzastopna impulsa poznat je kao ciklus
radnog takta (engl. clock cycle time). Ucestalost impulsa je najccsce izmcdu I i 500
MHz. sto odgovara ciklusima duzjne izmcdu I 000 i 2 ns. Ucestalost se prccizno odr-
L.ava pomocu kristalnog oscilatora.
U racunaru se mozc dogoditi vise stvari unutar jcdnog ciklusa radnog takta. Uko-
Iiko se one moraju odvijati odredcnim redosledom, ciklus se mora podeliti na pod-
ciklusc. Uobicajeno je da se veca vremenska rczolucija ostvaruje tako sto se na
osnovni vod gencratora radnog takta povezc kolo s dctinisanim kasnjcnjcm kojc ge-
nerise sckundarni signal radnog takta, fazno pomercn u odnosu na primarni signal,
kao na slici 3-2l(a). lz vrcmenskog dijagrama na slici 3-21(b) vidi sc Ja sc na taj
nacin obezbcduju cctiri vrcmenske reference za diskrctnc dogadaje:
I. Uzlazna ivica signaLt C I.
2. Silazna ivica signala Cl.
3. Uzlazna ivica signala C2.
4. Silazna ivica signala C2.
Cl Sl__ll____lL_
C2 __s-u-L__fL
(a) (b)
I
I I
__r:i_r-7-L__n-
A I : I I : I : : i


.
I
B ', : : : : : : :
: r--1 : M : M
....i....J !__i_j L-.l...J L-
c : 1 i 1 ', I I I I
I I I I I I I I
1 I I I
I 1 I I
(c)
Slika 3-21. tal Generator radnug takta. (bi Vremcnski dijagram gencratora radnog takta.
(L') Gcnerisanje asimetrilnog radnog takta.
"!"i
156
Poglavljc 3: Nivo digitalnc logikc
VcLivanjem Jogauaja za ra1.1icite ivice signala mozc se postici njihovo ispravnn
rasporeuivanje, Ako je potrebno vise od cetiri vrcmenske reference unutar
jednog ciklusa radnug takta, na njegov osnovni vod moze se povczati jns sekundarnih
vodova s kolima razlicitog kasnjenja.
U nekim kolima projcktanti su zainteresovani za vremenske intervale nego za
tackc na vrcmcnskoj osi. Na primer, uslov za neki dogadaj mo7.e biti visok nivo si-
gnaL, C 1. a Ill' njcgova uz1awa ivica. Us1ov za Jrugi dogadaj mozl:' biti visok nivo si-
gnaL, C2. ,\ku su potrebna vise od dva razlicita intervala. obezheduje se vise radnih
tak.\u\ a ili s:: omogucava da se nivoi dva radna takta dclimicno preklope u vre-
mcnu. U ovum po,lcdnjem slucaju rnogu se razlikovati cctiri razlicita intcrvala: Cl
C2, .\:--.:D C2, c I !\Nil C2 i c 1 ,\ND C2.
Naglasimo da su radni taktovi simetricni ako je trajanjc visokog nivoa signalajed-
nako njihovog niskog nivoa, kao na slici 3-21 (b). Da hi sc gcnerisao asimc-
trican ni; osnovni radni takt se fa1no poruera ponhK'u kola za kasnjcnje, pa
se na taj osnuvni signal primeni operacija AND, kao stoje slucaj sa signalorn C na slici
J-21 (c).
3.3 MEMORI.JA
Memorijajc najva7.nija komponcnta svakog racunara. lkz njc racunari ne bi izgle-
dali onako kako danas izglcdaju. l'vknwrija se koristi i za skladistcnjl' instrukcija na-
mcnjcnih izvrsavanju i za skladi;tenje podataka. U narednim odeljcima obradicemo
o-;nnvne kmnponentc mcmmijc, poce\si od nivoa logickog kola. da bisrno shvatili
kaku ona radi i kaku se njcnc jedinice kombinuju u vel ike memorijske module.
3.3.1 Lee kola
Za memoriju velicinc jcdnog bita polrebno nam jc elektronsko kolo kojc moze ne-
kaku da Japarnt i" prcthodnc ulazne vrcdnosti. Takvo kolo se mozc sklopiti od dva
1ogicka kola "lOR, prema slici 3-22(a). Shena kola se rnogu napraviti i pomocu logic-
kill kola NAND, ali o njima nccernu govoriti jer su koncepcijski identicna udgovara-
juc'im NOR verzijama.
Kolo na slici 3-22(a) se zove SR Icc (engl. SR latch). Onu ima elva ulaza: S (Set-
Ling) za aktiviranjc i R (Resetting) za dcaktiviranje. Kolo irna i elva izlaza: Q i Q koji
se, kako cemo ubrzo videti. me(tusobno elopunjuju. Za razliku od kombinaeionih ko-
la, izla711i signali iz lee kola odredeni trcnutnim ulaznim signalima.
Da biste ra;umeli o ccmu se radi, prctpostavimo da S i R imaju vrednost 0, slo je
tokom vcceg Jc!a vremena i tacno. Objasnjenja radi. prctpustavimo dalje da je i Q =
0. Posto se signal Q vraca u gomje kolo NOR, oba njegova ulaza imaju vrednost 0, pa
njcgov i.dazni signal ima vrednost I. Ta vrednost sc dovodi u donjc logicko kolo, koje
tada na ulazirna irna vrednnsti 1 i 0, sto znaci dace na izlazu hiti vrednost Q = 0. Ovo
stanjc je konsistcntno- -;lika 3-22ta).
3.3 l\lemorija 157
-----
s
A B NOR l

'D--.-'- Q """' u Q
0 0 1
0 1 0
1 0 0
1 1 0
Q
R
R----1
Ia) (b) (c)
Slika 3-22. (a) !\OR kc u 'lanju 0. (b) :--lOR kc u stanju I. (c) Tabcla istinitosti za opcraciju 1\0R.
Zamislirno sada da Q nerna vrcdnost 0, vee La daR iS jos uvek imaju vrednost 0.
Gornjc: logicko kolo na ulazima ima vrcdnnsti 0 i L pajc na izlazu Q = 0 ita vrednost
sc pruslec1uje u donje logicko k,Jlo. Ovo stanje, prikazano na slici .1-22(b), takodc je
konsistentno. Stanjl' u kurnc oha i;1aza imaju vrednost 0 nije konsistentno jer tada oba
logicka kula na oba ulaza mor,0u imati vredno:-.t 0, sto bi dalo vrednost I, a ne 0. Slic-
no. oba izlaza nc mogu imati vrcdnost I jer ce tada oba logicka kola na ula;ima imati
vrednosti 0 i I, sto dajc vrednost 0, a ne 1. Zakljucak jc jednostavan: za R = S = 0 lee
ima dva stabilna stanja koja cemu uznaCiti sa 0 i L u zavi.-,nosti od vreclnosti signala Q.
Analizirajmo sada uticaj ulaznih vrednosti na stanje lcea. Pretpnstavimu da S do-
bija vrcdnost 1 dokje Q = 0. Ulazni signali u gurnjc logicko kolo tada imaju vrednosti
l i 0. pa je izlaz. Q = 0. Zbog toga oha ulazna signal a u donje lugicku k.olo dobijaju
vrcdno'>l 0. pa na njegovom izlazu dobijamo vrednost 1. Na taj nacin, ,,aktiviranjem"
(postavljanjern vreelnosti ulaz.nug signala S na I) prebacujemo lee i1. >tanja 0 u
i. ,Deaktiviranjcm" (postavljanjem vreclnosti ulaz.nog signala Rna I)- tj. kadaje lee
u stanju 0 - ne postizerno nista jer izlazni signal iz donjcg kola NOR ima \ rednust 0,
bez obzira nato da li su na ulazima vrednosti 10 iii 11.
Slicnim rezonovanjem zakljucujemo da postav ulaznog signala S na vrcd-
nost 1 kadaje Icc u stanju Q = l ne postizemo nista, ali da pustavljanjem ulaznog sig-
nala R prebacujemo lee u stanje Q = 0. Sve u ,vcnw, kada ,e S za Lrenutak pode.>i na
vrcdnost 1, ll'i' u stanju Q = 1, bez nbzira na stanje u kom je prethodnu biu.
Slicnu. po'>tavljanjem ulaza I< na vrednost 1 prehacujcmo lee u stanjc Q = 0. Na laJ
nacin kolo .,panni' Ja li je prethodno bilo aktivirano iii deaktivirano. Racunarskumc-
moriju rnozemo napraviti na o'novu ovog svuj,tva.
Sinhroni SR lecevi
C:e,to je pogodno imati lee koji moze da llll'llja ,;voje stanjc: \alllo ll odredc:nim
periodima. Da bi se to postigl,), treba malo inncniti u'nuvnu ;emu kula prema '>lici
3-23: na taj nacin se dohija tzv. sinhmni SR \engl. clud,cd SR Ltuch).
158
s
Radni Jl
takt
R
3: Nivo digitalne
X) I Q
JJ I Q
Stika 3-23. Sinhroni SR lee.
Ovo kolo ima dodatni ulaz z.a radni takt. Kada signal radnog takta ima vrcdnost 0.
izlazi iz oba logicka kola AND takodc imaju vrcdnost 0, bcz obzira na vrcdnosti ulaza
S i R. i lee nc menja zateceno stanjc. Kada signal radnog takta ima vrcdnost I. efckat
kola AND nestaje i Icc reaguje na signalc SiR. Uprkos svom imenu (Clock), dodatni
ulaz u kolo ne mora cia bucle povezan sa generatorom radnog takta. Kada ulaz ima
vrednost I, kazemo daje kolo aktivno (engl. enable, strobe), a to znaci da reagujc na
signalc SiR.
Dosad smo uspdno izbegavali pitanje sta se dogada kada S i R istovremeno imaju
vrednost I. Za to postoji dobar razlog: kada se signali R iS vratc na nulu, stanje kola
postajc neodredeno. Jeclino konsistcntno stanjc za S = R = I jcstc Q = Q = 0, ali cirn
se oba ulazna signal a vrate na nulu. lee mora da predc u jedno ocl svoja elva stabilna
stanja. Ako bilo koji od dva ulazna signata clostigne vrcclnost 0 pre onog drugog, si-
gnal koji je duze zadrzao vrcdnost l ima prednost, on diktira stanje kola. Ukoliko bi
sc oba ulazna signata vratila na vrednost 0 istovremeno (sto je sasvim ncverovatno).
lee bi presao u jedno od elva stabilna stanja na slucajan nacin.
Sinhroni D Iecevi
Stanje neodredenosti SR lcca (kada je S = R = l) ne mozcmo potpuno da razrcsi-
mo, ali ako moditikujemo kolo, mozcmo da ga izbegnemo. Na slici 3-24 prikazano je
lee kolo sa samo jednim ulazom /J. Posto je ulaz u donjc AND kolo uvek komplcment
ulaza u gornjc kolo, vrcdnosti na ulazima nikada nc mogu istovrcmcno biti 1. Kada je
D = I, a istovremcno i signal radnog takta i ma vreclnost I, lee se prcbacuje u stanjc Q
= I. Kada je D = 0, a signal radnug takta irna vreclnost I. Icc sc prcbacuje u stanjc Q
= 0. Drugim rccima. kada signal radnog takta ima vrednost I. m:urkuje se tekuca
vrcdnost signala [) i skladisti u lecu. Ovakvo kolo, nazvano sinhroni D Icc (engl.
clocked D latch), predstavlja pravu Uskladistena vrednost uvckjc
raspolozi va na izlazu Q. Da bi se tekuca vrednost ulaza D ucitala u memoriju, na ulaz-
ni radni takt dovodi sc pozitivan impuls.
Za opisano kolo potrebno je II tranzistora. Slozenija (ali manje jasna) kula mogu
da usklacliste jedan bit pomocu samo sest tranzistora. U praksi se obicno koriste bas
takvi sklopovi.
3.3 Memorija
159

b ' Q
Jl-r-----.
X)---+-- Q
Stika 3-24. Sinhroni D lee.
3.3.2 Flip-flopovi
U mnogim kolima neophodno je uzorkovati signal u odrcdcnorn trenutku i tu
vrednost uskladistiti. U takvim kolima, zvanim llip-ftopovi, stanje se nc mcnja u
nutku kada radni takt ima vrednost I, vee tokom prelaska iz nule ujedinicu (uzlazna
ivica signala) iii iz jedinice u nulu (silazna ivica signata). Tada trajanjc impulsa rad-
nog takta postaje nevazno sve dok se prclazak odvija brzo.
Da histe boljc shvatili razliku izmedu flip-f1opa i leca. ponovic'emo jos jeclnom.
flop reagujc na iviru impulsa. a lee na nivo impulsa. lmajte na umu. medutim.
da se u literaturi ovi izrazi ccsto mdaju. Mnogi autori govore o a mislc na
lee i obrnuto.
flip-flop se mozc napraviti na razlicitc nacine. Na primer, ako postoji nacin da se gc-
vrlo kratak impuls na uzlaznoj ivici radnog takta, taj impuls bi sc mogao dovcsti
u D lee. Takav nacin zaista postoji i odgovarajuL'e kolo jc prikazano na slici 3-25(a).

(a)
I i

I '
d
bMJD c I i

, T
-Jl I
I I
1.- - I
Vrerne
(b)
Stika 3-25. Ia) CJ..:ncrator .,ignala. (bJ Sinhroni prika1. signala na cctiri mcsta u kolu.
160
Poglavljc 3: Nivo digitalnc logike
lJ prvi mah moze it:gledati dace izla;: iz logickog kola AND uvek biti 0 jer operacija
,\ND primenjena na signal i njegpvu invertovanu vrcdnost uvek daje nulu, ali je situa-
cija ipak malo slozenija. lnwnor izaziva malo, ali def1nisano kasnjenje signala i to
kasnjenje zapravo i omogucuje rad kola. Prctpostavimo da merimo napon na cetiri me-
sta u kolu: a. b. c i d. L'l<uni signal. koji se meri na mcstu 11, preclstavlja dugacak impuls
radnog takta, prikazan u dnu slike .l-25(h). lznad njega je prikazan signal meren na
mcstu b. Obratitc painju nat" Liaje on invertovan ida istuvn.:rneno malo kasni za si-
gnalom raclnog takta. nc:kl1!iko nanosekundi. sto 1.avisi od vrste invertora.
Signal na mcstu c ta!--m!c k:t,nt. ali samo zbog konacne brzine kojom se prostire
(brzinc svctlosti). Ako ''' !lJcrna mesta u i c medusohno uda!Jcna, recimo. 20 mikm-
mctara. to kasnjenje cc hiti \:iltHl (),()()()I ns. je apsolutno zanemarljivo u odnosu na
vrcrnc pmlaska signab kro1 invertor. Na taj nacin. 1.a potiehl' ovog primcra, signal na
mcstu c rnu/:cmo smatrati identicnim signalu na mcstu a.
Kada sc na ul:lzc /J i c primcni operacija AND, rczultat ce biti kratak impuls. kao na
slici 3-25(bl. cijajl' sirina odredcna kasnjcnjcm invcrtora (najcdce 5 ns iii manje).
lzlaz iz logic!--ug kola AND je takav impuls, samo pomcren za u
mom kulu ,\ND: un jc prik:u.an u vrhu slikc .l-25(b). Opisano vremcnsko pumcranje
;nal:i dace D kc biti aktiviran posle fiksnog intcrvala nakon uzlazne ivice signala
radnog tal--t:t. ali ono nc utice na sirinu impulsa. Kocl mcmorije sa ciklusom radnog
takta lld 5() tb, impuls duzine 5 ns koji upravlja uzorkovanjem mozc da budc dovoljno
kratak. a onda i celo kolu moze napraviti prcma slici 3-26. Napominjcmo da je
1--unstrukcija f1ip-flopa jcdnostavna i zato se lako ra;:ume. ali se u praksi ko-
ristc mnug" slo2:cnije konstrukcije.
D
Xl Q
b I Q
Slika 3-26. D tlip-tlup.
Standardni simbuli p(>mocu kojih se oznacavaju lecevi i f1ip-f1opovi prikazani su
n:1 sliL'i S!ika 3-27ta) pribzuje lee koji mcnja stanjc kadaje nivo radnog takta
!Cl\1 J..:dnak I. ;\a slici 3-27(hJ prikazan jc lee koji- kada radni takt padne na tJ-
mc:nj:1 st:tnjc Siike 3-27tc) u (dJ pribzuju simbole za tlip-llopove radnog takta koji
11.1 ui:11U imajL; karaktcristicne .,'iiljkc"'. Flip-tlup na slici .l-27(c) mcnja stanje pri
nailas\.:u u;:I:I/Ilc' ivice signala radnog takta (prclaz iz nivoa 0 u 1 ). duk onaj na slici
3--27tdJ 'lanje pri naibsku silazne ivice signala gcncratora radnog takta (prelaz
3.3 Memorija
161
iz nivoa I u 0). Mnogi lecevi i flip-flt)povi (aline svi) imaju i izlaz Q, a neki imaju i
dva dodatna ula!,a: Set iii Preset za aktiviranjc (prelazak u stanje Q = I) i Reset ili
Cfeur Dl deaktiviranje (prelazak u stanjc Q = 0).
3.3.3 Registri
Flip-llopovi postoje u raznim kontiguracijama. Jednostavna kontiguracija koja
saclr2i dva nezavisna D tlip-flopa sa signalima za deaktiviranje (CLR) i aktiviranje
(PRJ, prika1anajc na slici .l-2X(a). lako sc nalazc na istom cipu sa 14nozica, ova dva
flip-tlopa ncmaju nikakve mcdusobne veze. Potpuno je drugacija situacija kod oktal-
nog flip-flopa prikanmug na slici 3,-2X(b). Osamtotuda izraz ,oktalni") D flip-flopo-
va ne samo da ncmaju svoje izlazc Q i signalc za aktiviranje, vee su svi ulazi raclnih
taktova povczani zajednn i spojeni s no/:icom II. Flip-llopovi izgledaju kao onaj sa
slike 3-27(d). ali efekte invcrzionih kruzica ponistava dejstvo invcrtora vczanog na
noz.icu II, tako da llip-flopovi mcnjaju stanjc prilikom pre Iaska iz nule u jcdinicu.
Svih osarnulaza za deaktiviranje (CLR) takode su povezani ;:ajcdno, tako da svi 11ip-
flopovi prela;:e u stanjc 0 kada se na nozici I pojavi vrednost 0. Ukoliko se pitatc
sc signals nozice II oclmah invertuje na ulazu, a zatim ponovo invertujc na sva-
kom CK signalu, znajtc da prvi, skupni invertor u stvari slu;!.i kao pojacavac jer signal
mozda nije dovoljno da aktivira svih osam paralelno vezanih tlip-11opova.
-f1-
-tJ -t_j -t:J
Ia) (b) I c) I d)
Slika 3-27. D kcc\ i i t"lip-tlopmi.
lako :,e ohjedinjavanje ulaza za signal radnog takta i dcaktiviranje u kolu na slici
3-2StbJ obavlja da bi cip imao manjc nozic:L osam tlip-llopova nisu nczavisni i u OV\>j
kont1guraciji ima_1u sasvim odredcnu funkciju. Ovakav cip se kau S-bitni regi-
star. Dva tak\-a cipa mogu se koristiti paralelno kao 16-bitni rcgi:,tar ako im ,-.pojc
udgovarajuce nuZice. I i II. Registre i njihovu uputrebu detaljnije L'emo 'lbraditi u
puglavlju 4.
3.3.4 Organizacija memorije
lzve,no je da smu napredovali od sasvimjnlnostavnl' 1-bitne memurijc na :-,lici 3-2-+
do X-bitne memnrije na slici .l-28(h). Ali. da bi,mo napravili stvanw \eliku mcnwr:JIL
potrehnajc clrugacija nrganizacija ll kujoj CC lllOCi da SC adrcsiraju pojcdinacne IT(i. {!J-
bicajcll nacin organizacijc memorije koji ispunjava ovaj usluv prib1anje na slici .l-20.
Na slici jc p1ikazana mcmorija sa cetiri 3-bitne reci. Svaka opcractja cita ili
162
Poglavlje 3: Nivo digitalne logikc
potpunu 3-bitnu rec. lako ukupan kapacitet ove memorije od 12 bitovajcdva nadmasujc
kapacitet naseg oktalnog flip-flopa, za nju je potrebno manje nozica i, sto je jos vaznije,
konstrukcija se lako moze prosirivati i tako napraviti mcmorija zeljene vclicine.
Vee
GND
Ia)
Vee
GND
lbl
Stika 3-2S. (a) Dvojni D tlip-llop. (hi Oktalni llip-flllp.
3.3 Memorija
163
Iako organizacija memorije prikazana na slici 3-29 u prvi mah moze izgledati sloze-
no, onaje u stvari jednostavnajer se njena struktura ponavlja. Memorija ima osam ula-
za i tri izlaza. Tri ulaza su za podatke (I
0
, I
1
i 1
2
), elva za adrese (A
0
i A
1
), a preostala
tri ulaza za upravljanje: cs za biranje cipa (Chip Select), RD za razlikovanje operacija
citanja i upisivanja, a OE za omogucavanje izlaza (Output Enable). Tri izlaza su za
podatke: 0
0
, 0
1
i 0
2
. Ova memorija se zajeclno s napajanjem i uzemljenjem moze
smestiti u paket sa 14 nozica, sto je znatno manje od 20 nozica oktalnog flip-flopa.
Memorijski cip se bira tako sto spoljna logika postavi vrednost l na ulaz cs i po-
desi ulaz RD za citanje (logicka jeclinica) iii za upisivanje (logicka nula). Moraju se
podcsiti i dva adresna ulaza kako bi se za citanjc iii upisivanje izabrala jedna od cetiri
3-bitnc memorijske reci. Za opera,ciju citanja ne koriste se ulazi za poclatke vee se iza-
brana rec salje na izlaz. Kada jc rec o operaciji citanja, ulazni podaci vode u odabranu
mcmorijsku rec; tada se ne koristc izlazi.
Analizirajmo sada detaljnije sliku 3-29 da bismo razumeli kako mcmorija radi.
Cetiri logicka kola AND za biranje reci na levoj strani mcmorije obrazuju clckodcr.
Ulazni invertori su tako postavljcni da se svako logicko kolo aktivira (izlazje logicka
jcdinica 1 clrugacijom adresom. Izlaz svakog logickog kola sluzi za biranjc jednc rcci:
odozgo nadole, za reci 0, I, 2 i 3. Kada se izabere cip za upisivanje, na ulazu oznace-
nom sacs RD bice logickajedinica, cime se aktivirajedno od cetiri logicka kola za
upisivanjc. sto zavisi od toga koji signal za hiranjc rcci irna vrcdnost I. lzlaz iz logic-
kog kula za upisivanje dovodi se na svc CK ulaze izabrane reci i izaziva ucitavanje
poclataka u odgovarajuce Jlip-flopove. Upisivanje se obavlja samo ako signal cs irna
vrednost I, a signal RD vreclnost 0, pa i tad a sc upisuje samo rec izabrana signalima A
0
i A
1
: ostale rcci sene menjaju.
Citanje je slicno upisivanju. Adresa se clekodira potpuno isto kao prilikom upi-
sivanja. Mct1utim, sada se na ulazu cs RD nalazi logicka nula, pa su sva logicka kola
za upisivanjc onesposobljena i nijedan t1ip-flop ne menja svoje stanje. Umesto toga.
izabrani ula;" za biranje reci aktivira logicka kola AND koja su povezana sa Q bitovima
izabranc reci. Zbug toga, izabrana rei' svojc podatke salje u logicka kola OR sa cctiri
ubza tprikazana na dnu slikc). dok ostalc tri rcci na izlaz salju nule. Shodno tome, iz-
laz iz koL1 OR ickntican jc vreclnosti srncstenoj u izabranoj reci. Tri ,neizabrane" reci
ne uticu na reLUltat.
lako jc nasc kolo moglo imati i tri logicka kola OR direktno povezana sa izlazima,
takvo rescnjc punckac! stvara probleme. U nasem kolu razdvojili smo ulaze od izlaza,
ali u rcalnim memorijskim cipovima ulaz i izlaz nisu razdvojeni. Da smo logicka kola
OR povczali sa izlazima, cip bi pokusavao cia isporuci podatke, tj. na svakom izlazu bi
gcncri:,a,l spccilicnu logicku vreclnost, cak i pri upisivanju, sto bi ometalo ulaz poda-
taka. Zbug togajc poz.cljno da postoji mogucnost povezivanja kola OR sa izlazirna pri
citanju i potpunug odvajanja od njih pri upisivanju. U stvari, treba nam elektronski
prekidac koji ce moCi da uspostavlja iii da raskida vezu za nekoliko nanosekuncli.
.......
164
Poglavljc 3: Nivo digitalnc logikc
Ulazni podac1
1,----
lo
A,
Ao


OE Omogucav"nje izlaza CS RD OE
Rec 2
Rec 3
Slika 3-29. Logickt Jijagrant Incmorijc velicine-+ :X. 3. Svaki red preLbtavlja JCtli:u"d
3-hitnc rcci. Opcracijama citanja I urisivanja uwk sc cita ili upisujc ccb rc(.
0"
Takvi prekidal'i. na -,recu. postnjc. Slika 3-:\0(al prikazujc simbol neinvertujuceg
hafcra (engl. nonimating hu!f(T). On ima ulaz i izlaz ,:a Lt<' i za upra-
vljal'ki signaL Kada upravljacki .signal ima vrcclnw;t I. hafcr sc punasa kan provod-
nik. prcma slici 3-30(bl. A kada upravljacki stgnal ima vrc:dn<'st 0, bafcr ,;e l'<ltusa
kao otvoreno kolo, prcma .slici 3-30(cJ: to iLglcda kao da jc od-,ckal'
Z.icu za izlaz podataka. Mcl1utim. za razliku od pristupa s vcza sc mo/.c ro-
novo uspostaviti za nekDliko nanosekundi tako sw cc sc prumcniti nivo uprav ljaCkog
signata s logickc nule na logiCku jcdinicu.
3.3 i\lcmorija
165

Slika 3-30(d) prikawjc invcrtujuCi hafcr (engl. inverting buffer). koji sc ponasa
kao obican invert<x kada upravljacki signal ima vrednost I, a odvaja izlaz od kola
kada nivo uprav!jackog signala paclnc na lugicku nulu. Obc vrste bafera spadaju u
trostatickc urcdajc (engl. tri-state del'icesl. tj. urcdajc s tri stanja, zato sto njihov iz-
!az mozc hiti 0, l ili nijcdna od tc dvc vn:dnosti (otvorcno kolo). Bafcri i pojacavaju
signak. pa sc istovremeno mugu koristiti za uiaLa. Oni sc ponekacl bas iz tog raz-
loga i koriste, iako jc u toj situaciji njihova prckidacka lunkcija ncvazna.
Vratirno sc mcmorijskom kolu. pa po:-;taje jao.no ccmu sluzc tri neinvertuJLH.'a bafe-
ra na izlazima. Kada sc na ulazima cs. RD iCE i:-;tmrcmeno nalazi logicka jedinica.
signal za omugucavanje izlaza na istom je nivnu. pa se bafcri aktiviraju i rcc sc pros-
kduje na izlaz. Kacla je na bilo kpm od uLJLa cs. !W i ()[ logicka nula, izlazi se odva-
jaju od ostatka kola.


=r-
Upravljan)e
(a) (b)
lei (d)
Slika J-JO. 1:11 NcinvcOrtujuci bafer. (hi Efckat nLinvertujuL'eg hafcra kadajc upravlpCki signal
visnk. lei Etckatncinvertujuc'c" hakra bclaje upravljacki signal nizak. (d) lnvertujuci hafer.
3.3.5 Mcmorijski cipovi
\lemurija prikazana na slici '-2LJ zgodnajc Lalo slo sc lako mozc prosirivati. Toje
mcnwrija ..J. :<: .::.. tj. mernorija od celiri rcci sapo 3 bita. Da bismo od njc napravili me-
moriju + ;( S. treba da Judamo jos pet kolnna sapo cetiri tlip-t1opa i jos po pet ulaza i
izlan. Da bisono -;a scrnc: ..J. X 3 f1!CS!i llcl scmu R X 3, moramu da Jodamo jos cctiri reda
_,a po tri 1lin-rl()pa i ;a adrc:siranje .--\:'. U ovakvoj strukturi naje!ikasnijc jc da broj
rcl:i u memoriji bude stepen hwja 2. hruj bitova u rel:i mozc Ja bude proizvoljan.
Tchnulngi)a J,.oia dubm se mozc i.->koristiti u cipovima cija unutrasnja
olfUKtura Jl<llla\ Jp isti dvodinKiLcionaJni ohrazac- memorijski cipovi Sll ideaJan pri-
mer n1cne primcne. S n;qxetkPm tcl11h1logijc. broj bitova koji se mogu srnestiti na cip
r'tstc, pn f1Ll\'ilu Lh:t[:llll na svakill IS mcscci (Moorcov zakon). Vcci cipovi ne isti-
skuju uvek 01\C 11\JlljC s trzisLtjer /.avisi oJ brujnih cinilaca. kao stu Sll kapa-
citet. brzina. ,naga. cena i pug,1dnuq prikljucivanja. Najveci cipovi obicno sc prodaju
[!ll vi;im cerurna, pa su takP pn bitu skurlji ud onih starijih i manjih.
Z.l SVctku velictlllllllc''llUrije PStnji vise nai'ina organiwvanja cipa. Slika 3-31 pri-
bzuje dve mugucc jednog .slarijcg mcmorijskog cipa kapacitcta 4 Mb:
:5 L2K < s i ..J.I))()K X l. n n:q)[)nll'llllli da sc veliCina mernorijskih cipova obicno
n:t\odi u bilu\ima. a nc u baitm ima. pa ccmo se ovclc drzati tc konvencije.) Na slici
3-3 i I a) viclimu da jc pot reb no 1 ') ulaza za adrcsiranje jcdnog oJ 2
19
bajtova i osam
ul;ua pndarkc: !a citanje iit upi:<i\ai1JL' izabranog bajta.
166
Poglavlje 3: Nivo digitalne logike
Trebalo hi nesto reCi i o terminologiji. Na nekim nozicama aktivnost izaziva visok
napon, ana drugim nizak. Da bismo izbegli zabunu, umesto da navodimo daje napon
visDk iii nizak, U oba slucaja CCffiO govoriti daje signal prisutan (engl. asserted), S[O
znaci da izaziva nekakvu aktivnost. Tako za ncke nozice prisutnost signala znaCi daje
napon na njima visok, dok za druge to znaci daje napon na njima nizak. NoZice na ko-
jima je prisutan signal niskog nivoa oznacene su simbolom s gornjom crtom. Tako je
signal CS prisutan na visokom nivou, a signal cs na niskom. Suprotan izraz od pri-
sutan je odsutan (engl. negated). Kada se nista posebno ne desava, signali na nozica-
m<. su odsutni.
Vratimo se sada nasem memorijskom cipu. Posto racunar po pravilu sadrzi vise me-
morijskih cipova, neophodanje signal za biranje cipa. Za to se koristi signal CS (Chip
Select). Kadaje taj signal prisutan, Cip sc aktivira. Isto tako, potrebanje i nacin za raz-
likovanje operacija citanja i upisivanja. Signalom WE (Write Enable) oznacava se da
se podaci ne citaju, vee upisuju. Na kraju, signalom OE (Output Enable) omogucava
sc izlaz podataka. Kada taj signal nije prisutan, izlaz iz cipa je odvojen od kola.
Na slici 3-31 (b) koristi se clrugaCija sema adresiranja. Ovaj Cip je interno organi-
zuvan ll matricu od 204i\ X 2048 1-bitnih celija, sto ukupno claje kapacitet od 4 Mb.
Da bi se adresirao cip, prvo sc izabere odgovarajuci reel tako sto se njegov l 1 -bitni
bmj postavi na ulaze za adresiranje, a zatim se aktivira signal RAS (Row Address
Strobe). Posle toga se na ulaze za adresiranje postavi broj odgovarajuce kolone i
a1tivira signal CAS (Column Address Strobe). Cip reaguje tako sto prihvata ili ispo-
rucuje jcdan bit podataka.
AO---+-
At---+-
A2--
A3-
A4-
A5-
A6---+-
A7---+-
AS---+-
A9---+-
A tO---+-
All-
A12--
A13---+-
At4--
A15
A16--
A17-
Memorijski
cip 512K x 8
(4Mb)
-oo
l-ot
-o2
-o3
-o4
-o5
-oB
-o7

CS WE DE
(a)
RAS-
CAs-
Memorijski
cip 4096K x 1
14Mb)
t
---
CS WE DE
(b)
-o
Stika 3-31. Dva nacina organiwvanja illt:lllorijskog cipa kapacitcta .t Mh.
Memorija
167
Veliki memorijski cipovi cesto sc organizuju u obliku matrice n x n koja se aclre-
sira po redovima i kolonama. Na taj nacin se smanjuje broj potrebnih noziea na cipu,
ali se i usporava adresiranje za koje se u torn slucaju trose dva ciklusa- jedan za adrc-
siranje reda i drugi Z<l adresiranje kolone. Da bi sc bar malo ubrzao rad u ovakvoj or-
ganizaciji, nekim memorijskim cipovima moze se zadati adresa reda, a zatim niz
adresa kolona kako bi se pristupilo uzastopnim bitovima u redu.
Pre mnogo godina najvcci memorijski cipovi bili su organizovani na nacin prika-
zan na slici 3-31 (b). Kako su rnemorijske reci narasle od 8 do 32 bita pa sui to pre-
masile, cipovi l-bitne sirine postali su ncpodesni. Da bi sc od cipa 4096K X 1
napravila mernorija sa 32-bitnim rccima, potrcbna su 32 paralclna cipa. Oni imaju
ukupan kapacitet od bar 16MB, dok su kod cipova 512K X R potrebna samo cetiri pa-
ralclna cipa, ali jc njihov ukupan kapacitct samo 2MB. Da hi izbcgli pravljcnje me-
morije od 32 cipa, proizvoctaci sada imaju porod ice cipova sirine 4, 8 i 16 bitova.
Situacija sa 64-bitnim recima je, naravno, jos gora.
Na slici 3-32 prikazani su primeri dva cipa kapaeiteta 512 Mb. Oni
imaju cetiri interne memorijske banke od po 128 Mb, za cije su biranje potrebna dva
ulaza. Organizacija na slici 3-32(a) tipaje 32M x 16, sa 13 ulaza za signal RAS, 10
ulaza za signal CAS i 2 ulaza za biranje bank c. Ovih 25 signal a zajedno omogucavaju
adresiranje 2
25
internih l(J-bitnih celija. Nasuprot tome, na slici 3-32(b) prikazanaje
sema tipa 12RM x 4, sa 13 ulaza za signal RAS, 12 ulaza za signal ('As i 2 ulaza za bi-
ranje bankc. U ovom slucaju, 27 signala omogucavaju adresiranjc 2
27
internih 4-bit-
nih cclija. Odluka o broju redova i kolona za dati kapacitet donosi se na osnovu
inzenjcrskih argumenata. Matrica ne mora da bucle kvadratna.
AD-
-oo
At-
-ot
A2--
A3- -o2
A4--
-o3
A5-
-o4
AB-
MernoriJski
A7-
-o5
AS-
cip32M x t6
-oB
A9-----
Ala- 1512Mb) -o7
All-
--os
A12-
-o9

RAS-
CAS- -012
-ot3
Banko- -Dt4
Bankt-
-ot5
t t t
cs WE DE
Ia)
A5-
A6
A7
AS
A9
AlO
Alt-
At2-
RAS-
CAS--
Bank a-
Bank 1
Memorijski
cip 128M x 4
(512Mb)
f
- -
CS WE DE
(b)
-oo
-ot
-o2
-o3
Slika 3-32. Dva nacina organimvanja cipa kapaciteta 5 I 2 Mb.
I !
168
Poglavlje 3: Nivo digitalnc logikc
Prikazani primeri isticu dva 1.asebna i nezavisna problema pri projektovanju me-
morijskih cipova. Prvi je sirina izlaza \ u bitovima): Ja li cip isporucuje l. 4. 8, 16 ili
neki drugi broj hitova? Drugo. da lise svi adresni bitovi istovremeno dovode na ulaze
ili podaci za rcdove i kolonc Jolaze jedan za drugim. kao u prirnerima na slici 3-32"?
Projcktant mora da odgovori na oba pitanja pre nego sto pocne da projektuje mcrno-
rijski cip.
3.3.6 RAMi ROM mcmorija
Memorija koju SlllO d<lsad proucavali OlllOgucava]a je i citanje i upisivanje poda-
laka. Tak va vrsta memorije se zove RAM (Random Access Memory. memorija s di-
rektnim pristupom). lme pomalo jer se svim memurijskim cipovima moze
direktnn pristupati, ali je i;raz toliko uobicajen da gaje nemoguce pmmeniti. Postoje
dve vrste RAM mcmorije: staticka i dinamicka. Staticka RAl\1 memorija (SRAM)
intcrno sc konstruise ponwcu kola sliC:nih osnovnim D tlip-llupovima. Ova vrsta me-
morije cuva svoj sadr/.aj sve dnk postoji napajanje: nekoliko sekundi. minuta. sati.
cak i dana. Staticke RAM memorije su vrlu bu.e. Tipicno vreme pristupanja tim me-
morijama iznosi nekoliko nanosekundi. Zbug toga je staticka RAM memnrija popu-
larna kao kes mcmorija drugog nivoa.
Za dinamicku RAM memoriju (DRAM) ne koristc se f1ip-l1opovi. Dinamicka
RAM mcmorija, za razliku od .'>laticke, sastoji sc od niza celija, a svaka sadrzi jedan
tranzistor i mali knndenzator. Komknzator se mul:e puniti i pra;.niti. cime se omo-
gucava C:uvanjc logickih nul a i jedinica. Pustu elektricni naboj tezi disipaciji. svaki hit
u dinamickoj RAM memoriji mora se osvc:lavati (engl. rcjiesll) na nekoliko rnili,.,e-
kundi - da bi se odgovarajuci knndenzator ponovo punio ( kako bi se sprecilo gublje-
nje podataka). o osvczavanju mora da brine spoijna logika, dinamicka RA.vl
memorija se slu?.cnije realizuje od statil:ke. mada se u mnogim primenama uvaj nc-
dostatak kumpenJ:uje veeim kapacitetum.
Posto su za dinamil:ku RAM memoriju potn::hni samo jcdan 1ranzistnr i jedan k(\n-
Jenzatm po bitu (a sest tran;istorJ po bitu za najhnlju statiC:ku RAM memonju ). di-
namiC:ka RAM memorip ima vrlo visnku gustinu (mnugo bitma po cipuJ. /bog tnga.
glavnu memoriju 'koro mek cini dinamicka RAM mernorija. MLdutim. Dvako \eliki
kapaeitet inn svoju cenu: dinamicka RAivlmemorija jc spora (de set inc nanusckunJi I.
Prema tome. kombinacija statickc RAM rnemorije za kes rnemoriju i dinamiC:l,.c RA\l
mcmorije za glavnu, optimalno je re;enje jer se iskoriscav,tju dobra svnjstva 1 jednc i
druge vrste.
Postuji vise tipova cipova s clinamicknm RAM memorijum. Najstariji. FPM (Fast
Page Mode) DRAM. jus uwk pnstoji u naj"larijim racunarima. On JC organi-
zovan u obliku matrice bitova kojnj hardver n:t adrese reda. a 1atim
i adresc kolone. slicno semi i l'AS signala koju smo opisali u konkks\U ,;l:kc
3-31. Namenski signali izaziv,tju rad mernorije. tako da ona nijc sinhronizo'.'ana ,;
glavni m radn im tak tom.
3.3 l\lcmorija
169
FPM DRAM zamenjen je cipom EDO (Extended Data Output) DRAM. koji
omogucava pristup memoriji iako prethudni ciklus citanja ili upisa nije zavrsen.
Ovakva jednostavna paralelna ohrada ne ubrzava pojedinacno ohracanje memoriji,
vee se siri njen propusni opseg. cime se omogucava citanje iii upisivanje veceg broja
rel'i u sekundi.
FPM i EDO cipovi su prilicno dubro radili dok je eiklus memorijskih C:ipuva bio
12 ns iii manji. Kada su procesori postali toliko brzi da im je st\arno brza
mernurija. FPM i EDO C:ipovi zamenjeni su SDRAM (Synchronous DRA:\i1 cipom
_ hibridom staticke i dinamicke RA!Vl rnemorije kojim upravlja glavni radni takt. Os-
novna prcdnost SDRAM mernorije jcste to sto radni takt uklanja putrebu za upra-
vljackim signalirna: jcdnusravno saup;tava memoriji kulik<l ciklusa radnug
takta treba da radi. Na taj nacin. memmija u svakom ciklusu isporul:uje 4. X ili I (J bi-
tova. zavisno od toga koliko ima izLva. Uklanjanjem upravljaC:kih signala postizc sc
veci protok podataka i;mcdu prueesora i niemorije.
Skdece poholjsanje SO RAM memonje bilaje DDR ([)ouhle Data Hate) SDRAM
memorija. Ona isporucuje podatke i pri LIJ.laznoj i pri silazrmj ivici signala radnog tak-
ta. C:ime se protok podatctka udvostrucuje. Taku DDR cip sirine X bitova koji radi na
ucestalosti od 200 lVIHz isporucuje dve 8-bitnc vrednosti 200 miliona pula u sekumli
(naravnu. tokum kratkog vrerncnskog intervala). stn teorijski odguvara rafalnom pro-
toku podataka od 3,2 Gb/s.
Cipm i s postojanom memorijom
RAivl nije jedina vrsta memPrije. lf mnugim prirnenama (na primer, 1:a igral:ke.
km'nc aparate i automobile). pwgram i podaci muraju se '>acuvati i kada sc napajanje
iskljuci. Pllred toga. jcdnDm instalirani. program i podaci se ne menjaju. Ovakve
potrebe su Jo\ cle do razvoja H.(}\1 (Read-Only l\lemory. mcmorije samo za citanje)
menmrije ciji se sadr?.aJ ne \11(1LC prumeniti niti obrisati islucajr]l) iii namerno). Podaci
sc: ll R0;\1 C:ip llllllSC tok, 1111 njq2ll\ l: poslirpkom cije Sll raze osvctljava-
nje full"''ctlji,ug materijala kru;mCLsk.u kuja saclrzi udreden ra.-;porcd bitma i nagri-
z:rnje OS\'etljenih (ill lll'llS\ctljcnih I podruc_ia povr\ine cipa.
Rl)i\.lcipu\i ,;u mrwguje!"tiniji od RAi\1 kada -,e proizvodc: dovoljnu vel ike
'.crijc koje nad,Jkn,;duj:I iaadc uni sui manje tleksibilni
jcr '>e nc nmgtl pu i;lasht 11 proi;vocinje. a nwgu pnlL'i i nedelje izmedu tre-
nurka naruci1anja i Da bi ,-; f.:<'lllpanipma olaksalu razvijanje proizvoda
na ROM metrwri_ii. jl' tFv. PROM (Programmable ROi\I) cip.
PRU\-1 C:ip je slil:an ROM cipu. usim sto <>c nmz.e (jednnm 1 programirati na terenu.
cimc -;e elimini;e na pr:Jg:Etmrranje C:ipa. Mnogi cipovi sadr.i:e matricu
sicu:;nih o'igural:a. ud wal,.i mu/.e .. pregon:ti"' bda se izabcre njegov red i ku-
ina -;pecijalnu nu.i:i...:u C:ipa ciuve:-ti v i:,uk napun.
SledcL'e unapredenjc bio jc El'ROc\l 1 Erasable I'ROi\Ii cip. koji ne samo st<l 'e
moze na vcL' se Lunu nje_::u\ s:tdr7aj moZL' i hrisati. Kada se kvar-
cni prPLOr EPROM cipcl itlui.i -;n,:/noj ul:raljubicaswj S\Ttlosti llcl 15 minuta, svi nje-
gOi i bitmi ch,bijaju vrednost l. .-\k,l se tokom razvij:mja odrcdenug
,,


... ,
IIIII"""
170
Poglavlje 3: Nivo digitalne logike
ocekuju brojne izmene, EPROM cipovi su mnogo ekonomicniji od PROM Cipovajer
;e mogu iznova upotrcbljavati. EPROM cipovi po pravilu imaju istu organizaciju kao
i staticki RAM cipovi. EPROM 27C040 kapacitcta 4Mb, na primer, ima organizaciju
prikazanu na slici 3-32(a), koja jc svojstvcna statickoj RAM rncmoriji.
Od EPROM cipajos je holji EEPROM (Electrically erasable PROM) Cip ciji sc
sadrzaj urnesto izlaganja ultraljuhicastoj svetlosti u specijalnoj komori moze obrisati
JCdnostavnim dovodenjem impulsa. Osim toga, EEPROM se moze programirati na
lieu mcsta, dokje EPROM potrebno staviti u specijalan uredaj za programiranje. Nc-
Jostatak je to sto najvcci EEPROM cipovi imaju jedva 64. deo kapaciteta obicnih
EPROM cipova i dvostruko su sporiji oct njih. EPROM cipovi ne mogu da konkurisu
DRAM iii SRAM memoriji jcr su lO pula sporiji, 100 pula su manjeg kapacitcta i
mnogo su skuplji. Oni se koriste samo u situacijama kada je postojanost memorije
primaran cinilac.
Najnovija vrsla EEPROM cipa jc ticS memorija (engl. flash rnernory). Za razliku
od EPROM memorije, koja se hrisc izlaganjem ultraljubicastoj svctlosti, i EEPROM
memoriJe kod koje se brisu pojedini bajtovi, kod tles memorijc se brisu i upisuju ci-
tavi blokovi. Slicno EEPROM mcmoriji, fte!i memorija sc moze hrisati bez vadcnja
cipa iz kola. Mnogi proizvmlaci prave kartice s ftd memmijom kapaciteta do 2GB,
koje se u digitalnim fotoaparatima koriste urnesto filma za snimaka, alii
u druge svrhc. Jcdnorn ce tlcS memorija mozda zameniti cvrsti disk, sto ce biti izuzet-
nn pobuljsanjc, s obzirom nato dajoj sc vrlo hrzo pristupa (50 ns). Glavni inzenjcrski
problems flcs memorijom jeste lll sto se ona ,,trosi" posle oko I 00.000 hrisanja, dok
cvrsti diskovi traju mnogo god ina, be; obzira nato koliko se puta njihov saclrzaj hrise.
Pregkd raz.lil:itih vrsta rncmorije dat je na slici 3-33.
--.----------
Tipicna upotreba Brisanje Menjanje Neposto-
pojedinacnih janost
bajtova

[vrsta Kategorija
I I
Elektricno Da Da Kes drugog nivoa

Elektricno Da Da Glavna memorija
1---
(stara)
--
Elektricno Da Da Glavna memorija
(nova)
'I SRNA--( Cit;;nje/ . -

1 DRAM 1 CltanJel
[
JSDRAM I Citanje;
l ___
I ROM I Samo citan
r Nije Ne Ne Kucni aparati (velike
moguce serije)
Ne Ne . Oprema (male serije)
I
-----+--------
1 PROM 1 Samo titan

i EPROM i Ugiavnom
L _ [citan1e
[
1 1 CltanJe

1 Fles ; C1tan]e/
: _l! up1sivan1e
1---- -----
----t--- __
I UV Ne Ne Prototipovi uredaja
svetloscu
j_ Da _:_:__ __ uredaja
I Elektricr:_te Ne Film za digitalne
fotoaparate
_L___ _ ___ ______L___
Slika 3-33. Upuredni pn.ogkd razlicitih vrsta memorije
3.4 Procesorski cipovi i magistrale
3.4 PROCESORSKI CIPOVI I MAGISTRALE
Naoruzani informacijama o SSI, MSI i memorijskim cipovirna, mozemo poceti da
sklapamo sliku potpunih sistema. U ovom odeljku najpre ccmo se pozabaviti opstim
aspektima racla procesora na nivou digitalne logike, sto ukljucuje i logicki raspored
nozica (engl. pinout), tj. znacenje signala na njima. Posto su procesori tesno povezani
s magistralama, u ovom odeljku ukratko cemo predstaviti i principe projektovanja
magistrala. U narednim odeljcima, na detaljnirn primerima konkretnih procesora i
111
agistrala objasnicemo kako se oni povezuju.
3.4.1 Procesorski Cipovi
Svi savremeni procesori prave se na zasebnnrn cipu. Na taj nacinje njihova komu-
nikacija sa ostatkom sistema dobro definisana. Svaki procesorski cip ima vise no?.ica
(izvoda) preko kojih se mora obavljati sva komunikacija sa spoljnim svetom. Neke
nozice sluze za izlazne signale; druge pak sluze za ulaznc signale a nekc i za jedne i
druge signalc. Kac!a shvatimo funkciju svih nozica, razumecemo kako procesor sa-
raduje s memmijom i ulazno-izlaznim urcltajima na nivou digitalnc logike.
Postojc tri vrstc izvocla proccsorskog cipa: za adrcsiranje, za podatke i za upra-
vljanje. Svi izvocli sc spajaju sa oc!govarajucim izvodima memorijskih iii uLu.no-izlaz-
nih cipova pomocu skupa paralelnih linija (magistrale. engl. hus). Kada treha da
preuzme odredenu instrukciju, procesor prvo njenu adresu u memmiji smdta na svoje
ulaze za aclresiranjc, a zatim preko jeclnog iii vise upravljackih ulaza salje signale koji-
ma obavestava memoriju kako zcli da procita rec (na primer). Mcmorija odgovara tako
sto datu rec smciita na ulazc procesora predviclene za podatke i signalizira da jc opera-
cija ubavljena. Kada proccsor primi signal, on preuzima rec i izvrsava instrukciju.
Mozda ce pri izvrsavanju instrukcije hiti potrebno cia sc ocitava iii upisuje vise
rcci. pace sc opisani postupak ponoviti za svaku rcc. Citanje i upisivanjc podataka
kasnije cemo detaljno objasniti. Zasad je va/,r1o razumeti da procesor s mcmorijom i
ulazno-izlaznim ureclajima komunicira tako sto saljc signale na svoje izlaze iii ih
prihvata sa svojih ulaza. Nijc moguc niJcdan drugi oblik komunikacije.
Ova glavna pararnetra koji odreduju performanse procesora jesu hroj ulaza za
adresiranje i hroj ulaza i izlaza za podatke. Cip sa rn ulaza za adrcsiranjc mozc cia
adresira do 2
111
memorijskih lokacija. Uobicajcne vrednosti za m su 16, 20, 32 i 64.
Slicno, cip san ulaza iii izlaza za poclatke u jeclnoj operaciji mozc da procita ili upise
jcdnun-bitnu rcc. lJohiC:ajene vrednosti zan su 8, 16, 32, 36 i 64. Procesor sa 8 ulaza
za IJlldatke procitace 32-bitnu rcc u cetiri operacijc, clok c'e onaj s 32 ulaza za podatke
to uracliti u jcdnoj jeclinoj opcraciji. Prema tome, cip sa 32 ulaza za podatke jc, mnogo
brli, ali i neosporno skuplji.
Osirn ulaza koji sluze za adresiranje i za prijem, odnosno slanjc podataka, svaki
procesor ima i odreden broj upravljackih ulaza. UpravljaC:ki ulazi btinu o protoku i pra-
vovremenosti prenosa poclataka u proccsor i iz njega, a imaju i druge namcnc. Svi pro-
ccsori sadrze po jedan ulaz za napajanje (ohicno naponom od +3.3 volta iii +5 voltil,

!

t?"l
172
Poglavljc 3: Nivo digitalne logikc
za uzcmljenjc i za signal radnog takta (kvadratni talas detinisane frckvencijc), a ostali
izvodi se vcoma razlikuju od cipa do cipa. lpak. upravljacke ulazc mozcmo grubo svr-
stati u sledcce glavne katcgorijc:
I. Upravljanjc magistralom.
2. Sistemski prckilli.
3. Arbitriranje magistrale.
4. Signaliziranje koproccsora.
5. Status.
6. Ostalu.
lf nastavku c'emo ukratko opisati svaku od navedcnih katcgorija. Kada kasnije bu-
dcmo razrnatrali Pentium-+. UltraSPARC Ill i cip 8051. objasnjcnja cc biti detaljnija.
Na slici .\-3-+ prikazan jc proccsorski cip koji kuristi navedcnc grupe signala.
Adresiranje
Podaci
Upravljan:e magtstralom
---
Sistemski prekiclt =:::.
Simbci za /
radnog laktJ
'1.> +5v

Status
____ Ostalo
----
- "
Simbolza elektncno
uzemljenje lmasu)
Napajnn:e naponom od +5 volti
Slika ..3-J..t. ..' prikazuju signala (ulaL iii izla1.).
k,,,,llinijct ozn."'"'" da ,._,/.a l..,n,ti vi.\c i;voda. Taj hroj sc uvck navmli
u;
ll\Odi 1:1 UfravljctnjC prcno.se signale od proccsora kama-
gi:-.trali 1 t<> 'll ula:.ni c.ign;ili 1.a rnemorijskc i ulcuno-illazne cipove) kojima se saop-
itct\a da pn:n:sccr tlUCC da fli'Ocita pDJat:!l.; iL memorije, da ga U nju upise iii da obavi
1vku tlrugu tlpc'raciju. Procc:sor uvc izvode kPristi da bi upravljao drugim delovima
sistcm:t. tj. c!a bi im koje opc:racije trc-ha da obave.
Lcvodi /.a :;i-;km\kl' j1l'<C:kicL' SLI ui:ui z:t si;rnk kljc procesoru salju ulazno-izlazni
uredap. U vec'ini si-;tcrna pr>e.:s,,r 111\J/:c da ilcdu/:i ulazno-iL.laznomuredaju da tapoc-
ne udrcdcnu op<O'r:tciju. :1 sam ,!a se iskijuci i da radi ncstn drugo dok ulazno-izla:.ni
urcCaJ n:.: obavi s\ t'j po:;:t<l. Kada u],lltw-i:Ltzni uredaj zavrsi posao. njegov kontrolcr
pref-<> ydnog l'U tih i;:vDtLt sal.Je signa/ kujim prckida rad proccsma cia bi procesor
nwgcto da nl'radi t 11.1 prim:cr. ,b prnvc:ri jcsu li tokom preutimanja iii slanja
pndat:tLtllct,t;tl,_, >Jch:i proccsl'll inwju spccijalan izvod preko koga potvrdu-
ju :;ignaia ;a sistcmc.ki prckiJ tcn:cl. iu:crrttjil signa/).
3A Procesorski i'ipnvi i magistralc 173
Izvodi za arbitriranjc neoplmdni su za regulisanje saobracaja na magistali kako bi
se situacija kada elva urcdaja istovremeno zele daje koriste. Kada se obavlja
arbitraza na magistrali, i procesor (kao i svaki drugi uredaj) mora uredno da podncse
zahtev za njeno korisccnjc.
Neki proccsorski cipovi projektovani Sll za saradnju s koproccsorima specijalizo-
vanim na primer. za racunanjc u formatu pokretnog a ponekad i za rad s gra-
fikom. Da hi se olaksala komunikacija izmedu procesora i koprocesora, na proce,oru
postoje specijalni izvocli za prihvatanjc zahteva i odgovaranje na njih.
Osim nabrojanih, neki procesorski cipovi imaju i dodatne izvodc. Preko nckih od
njih sc salju iii primaju informacijc 0 statusu. prcko drugih sc moze ponovo pokrenuti
racunar. a ncki pak postoje samo ,zbug kompatibilnosti sa starijim ulazno-izlaznim
uredaj i rna.
3.4.2 Racunarske magistrale
Magistrala (engl. hus) iii sabirnica, Lajcdnicki je ckktricni ,autoput" kuji pove-
zujc vise uredaja. Magistrale se mogu ra1.vrstati prema funkciji. U odnosu na proccsnr
one mogu biti interne (unutrasnjc), kada sluzc za razmcnu pmlataka izmeltu
j aritmeticko-logicke jedinicc, iii eksternc (spoljasnjc), kada ga povezuju s memori-
jom i ulazno-izlaznim uredajima. Svaka vrsta magistrale ima svoja svojstva i zahtcve.
U ovorn i narednim odeljcima u'red,rediccmo se na magistrale koje povczuju proce-
sor s memorijom i ula;:no-izlatnim uredajima. U sledccem poglavlju dctaljnijc ccmo
se pozabaviti magistralarna unutar procesora.
Prvi licni racunari imali sujedinstvenu spoljnumagistralu nazvanu sistcmska ma-
gistrala (engl. system bus). Ona se sastojala od 50 do 100 paralelnih bakarnih vodova
odstampanih na maticnoj ploci, s pravilno rasporccknim konektorima za prikljuci-
vanje memorijskih i ulazno-izlaznih butica. Savrcmcni licni racunari po prav ilu ima-
ju namcnsku magistralu izmedu procesora i memorije. i (bar) jednu magistralu za
ulazno-izlaznc uredajc. Na slici J-35 prikazan jc minimalan sistem s jednom memo-
rijskom i jednom ulazno-izlaznom magistralom.
Magistrale se u litcraturi simbolicno prikazuju ,debclim" strclicama, kao na ovoj
slici. Postoji. mcdutim. tina razlika izmedu simbola debele strelicc i linije s kosom cr-
ticom i brojem bitova pored nje. Kada su svi bitovi istog tipa (na primer, bitovi adresc
iii podataka), tada sc obicno koristi kosa crtica. Kada postoje vodovi za adrcse. podat-
ke i upravljanjc, po pravilu sc koristi dcbcla strelica.
Projektanti procesora mogu da koriste proizvoljnu internu magistralu; ali, da bi se
na sistcmsku magistralu mogle prikljucivati i maticne ploce nezavisnih proizvodaca,
moraju postojati strogo definisana pravila o nacinu rada magistrale koja moraju
postovati svi uredaji koji se na nju prikljucuju. Sva ta pravila nalazc se u tzv. proto-
kolu magistralc (engl. bus pmtocol). Osim njega. moraju postojati i speciiikacije di-
mcnzija i ozicenja da bi maticne plocc razlicitih proizvodaca mogle da sc uklopc u
kucistc i pove/:u mehanicki i elektricno (u pogledu napona, rcdosleda signaLt itd.).
-=
Poglavlje 3: Nivo digitalne logikc
Registri
Procesorski cip
Magistrale
/
Ulazno-izlazna magistrala
Kontroler
magistrale
Memorijska
magistrala
Slika 3-35. Eacunarski sistem :; vii;e magistrala.
Memorija
U racunarskorn svetu naveliko se koriste razlicite magistrate. Meuu nekoliko po-
znatijih, prevazilknih i aktuelnih magistrala spadaju: Omnibus Unibus
(PDP-II). Multi bus VME magistrala (oprema tizickih laboratorija), iBM PC
magistrala (PC/XT), ISA magistrala (PC/AT). ElSA magistrala (R0386), Microchan-
ncl (PS/2), Nubus (Macintosh), PClmagistrala (mnogi PC racunari). SCSI magistrala
(rrnogi PC racunari i radne stanice). Universal Serial Bus (savremeni PC racunari) i
Fire Wire (elektronski ureuaji siroke potrosnje). Svet bi verovatno lepse izgledao kada
bi we rnagistrale, osirnjcdne. jcdnostavnn nestale s lica zemlje (iii mozda osim dve'l).
N azalost, u ovoj oblasti nema velikih izgleda da c'e standardizacija uspeti jer je u na-
VL:dene nekompatibilne sistcme vee ulozeno previse novca.
Pocnimo sada objasnjavanjem nacina rada magistrala. Ncki od ureuaja prikljuce-
nih na magistralu aktivni su i rnogu da iniciraju prenos podataka preko nje, dok su
dLrgi pasivni i rade tek kada dobiju zahtev. Aktivni ureuaji su glavni (engl. masters),
a pasivni su sporcdni iii podrcdcni (engl. slaves). Kada procesor zatrazi od kontro-
lcra diska da procita iii upise blok podataka. on se ponasa kao glavni ureuaj, a kon-
troler diska kao spor..:dni. Mcuutim, kasnijc se i kontroler cliska rnoze ponasati kao
ghvni kada trazi od memorije da prihvati reCi procitane s diska. Na slici 3-36 nave-
deno jc vise tipicnih kombinacija glavnih i sporednih urcuaja. Memorija ni u jed nom
slucaju ne mole da bude glavni urectaj.
i Glavni uredaj
P'ocesor
Procesor
T - ------ ,
, Sporedni uredaj Primer
Memorija Preuzimanje instrukcija i podataka
Pro cesar
, Ulazno-izlazni uredaj i Memorija
,_ -- --- 1--
, Koprocesor _l_Procesor
i11iciranje prenosa podataka
Oavanje instrukcija koprocesoru
------ ------- ----
Direktno pristupanje memoriji (OMA)
Koprocesor preuzima operande od procesora
Slika 3-36. Primeri glavnih i spurednih uredaja na magi,trali.
Procesorski cipovi i magistrale
175
Binarni signali koje salju racunarski uredaji cesto su preslabi da pokrenu magistra-
lu, narocito ako je ona prilicno dugacka iii ako je na nju prikljuceno mnogo uredaja.
Zbog toga Sll glavni ureuaji s magistral om po pravilu povezani preko cipa koji se zove
predajnik signala za magistralu (engl. bus driver). koji nijc nista clrugo do cligitalni
pojacavac. Slicno, sporedni uredaji su na magistralu vezani preko prijemnika signa-
ta s magistrate (engl. hus receiver). U ureuajima koji mogu biti i glavni i sporedni,
koristi se kombinovani cip nazvan primopredajnik signata magistrate (engl. hus
transceiver). Cipovi za spajanje s magistralom po pravilu su trostaticki uredaji kako
bi se rnogli (iskljuciti) kada ne treba da radc, ili su povezani na poseban nacin, kao
otvoreni kotektori (engl. open colfectors). cime se postize slican efekat. Kacla elva ili
vise uredaja istovremeno posalju signal vodu na kome se nalazi otvoreni kolektor, re-
zultat je logicka disjunkcija (OR) svih signala. Takva organizacija sc cesto naziva
oziceno OR (ILl) (engl. wired-OR). Na vecini magistrala neki vodovi Sll trostaticki,
a neki drugi, gde je potrehno oz.iceno OR- otvoreni kolcktori.
Magistrala, slicno procesoru, ima vodove za adresiranje, za podatke i za upravlja-
nje. Meuutim. nc mora obavezno postojati poklapanje izmectu hroja izvoda procesora
i signala na magistrali. Na primer, neki procesori pomocu tri izvoda saopstavaju zele
li da citaju iii da upisuju podatke u memoriju. zele li da citaju podatke sa ulazno-iz-
laznog urel1aja iii da u njega upisuju. Tipicna rnagistrala moze da imajedan vod za ci-
tanje podataka iz memorije, drugi za upisivanje podataka u nju. treci za citanje
podataka ulazno-izlaznog ureuaja. cetvrti za upisivanje poclataka ll njega. u takvom
slucaju hi izrnedu procesora i magistrale morao da se nade cip za dekodiranje koji hi
usaglasio signale, tj. prctvorio 3-bitno kodirani signal procesora u pojedinacne signa-
lena magistrali.
Projektovanje magistrala i njihov rad vrlo su slozcne temc kojima su posvecene ci-
tave knjige (Anderson et al., 2004; Solari i Willsc, 2004 ). U osnovna pitanja pri pro-
jektovanju spadaju i sirina magistrate, njena radna rrekvencija, arbitriranje i operacije
sa samom magistralom. Svaki od ovih cinilaca sustinski utice na hrzinu i propusni op-
seg magistrate. Detaljnije cemo ispitati svaki od njih u narcdna cetiri odeljka.
3.4.3 Sirina magistralc
Sirina magistrale je nesto na sta se pri projektovanju odrnah obraca paznja. Sto
rnagistrala ima vise vodova za adrcsiranje, to ce procesor moci direktno da adrcsira
vise memorije. Ako magistrala ima n vodova za adresiranje. procesor ih moze iskori-
stiti za adresiranje 2
11
razlicitih memorijskih lokacija. Za rad s velikim rnemorijama
magistrala mora imati mnogo vodova za adresiranje. Ovaj zakljui'ak je ocigledan.
Problem je to sto za sire magistrale treha vise zica nego za one uze. Sire magistrale
zauz.imaju vise mesta (npr. na maticnoj ploci), a potrebni su im i veCi konektori. Zbog
toga magistrala biva skuplja. Prema tome. mora se nac'i kompromis izmeuu rnaksi-
rnalne vclicine memorije i cene sistema. Sistem s magistralorn koja ima 64 voda za
adresiranje i 2
32
hajtova mcmorije kostac'e vise od sistemas magistralom koja ima 32
voda 7.a adresiranje i istih 2
32
bajtova mernorije. Mogucnost kasnijeg prosirivanja si-
stema takodc nije bcsplatna.
176
3: Nivo logikc
Na osnovu ovog zapaianja mnzemo zakljuciti da su mnogi konstruktori sistema
hili kratkovidi, sto je kasnije duvelo do nezeljenib posledica. Prvohitni IBM PC ral:u-
nar imao je proccsor 8088 i 20-hitnu magistralu za adresiranje, kao sto jc prikazano na
slici 3-37(a). Navedenih 20 bitova omogucavalo je cla adrcsira l MB mcmorije.
Kada se pojavio sleclcci prucesorski cip (802861, lntdje odlucio da aclrc,ni prustor
prosiri na 16MB, pa je morao dodati jus cetiri voda na magistrali (ne dirajuei prvo-
bitnih 20 vodova zbog: kompatibilnosti sa starijim sistemima), kao stu jc pnkat:tnu na
slici 3-3 7 (b). N azalost, zbug dodatnih adresnih vmlova moralo se dod at i i upra-
vljal:kih vmlova.
20-b1tne adres8
20-b1tne adres
20-b1tne adrese
Upravljrm)e
Upr av!janje 4-bltne adrcse
8088 80286 80386

Upravljan)c
8-bitne adresE
4-bitne adrese
UpraviJ31lJC
Up1 a'll)an)e
UpraviJan)e
(a) (b) (c)
Slika J-J7. Pr(\Sin\anjc aJrcsne magistrak tukulll
Kada .'e p<ja\ j,, prl1cc-;ur 80_18(1. dudato je jo.\ .\est adrc,nih vodo\a i jns upra-
vljal:kih kan na -;iici 3-)7(c). Reztdtujuea magi:trala (EISA) izgledala je
mnug<l ncurednije nl'gu da jc ud puC:ctka projektn\ ,;a 32 \ oda.
T<>ko1;1 putreba vec'im brojem adre,mh voduva, ali takoJe i za
veeim brujem vodova 1.1 pud:1tke. iz drugih !'ropthni opseg magimale
u odnw:u na pudatke mui.e ->e p<n eeati na Jva aaC:111a: ciklusa magi,trale
( \"eei hroj prem1.-,a u sckundi) iii pmsirivanjern magistr:lle podataka (vise bitova po
prLnuo,u 1. Rad lllagi-;tr;llc sc 1nu/.c ubrzali. ali postojc tdkt>ee t.;\lo ;u, signali duz raz-
liC:ilih Vtlduva putuju ne7tl:tlml raziil:itim brzinama. ;loy prubkm poznat kao ncsi-
magistralc (l'n:c:l. !ms 1h:c\\ ). Stu je magi.-:tral:.i brL:, njcna nesimetricnust
je i;.r;t:>enija.
c:brzanjem rad;t magic,tLlil' onemoguc'uje "e i kurnpatihilno-;r sa starijirn sio,temi-
ma. Starijc m<ttil:;lc piuCc. pru.Jcktov.ule za spurijc magi,tr:tie. neee raditi s novom
maglsLr:thlm. l)isb,ll:iif..,wanje ploCa unesrec'iee Llktl nji!mvc vlasnikt:. tako i
njiilu\e pruizvu,lac...:. pa ,c pcrt"urm,uJsc po pr;l\ i!u poholj::;,,._,:1_ju takL1 sto "c dodaje jos
vmllVa /.a pndatkc \ -;Jika 3-,' 7 ). Ka<l JlJL)Lele occkivali. pu,illiJilll prosirivanje ma-
gistr,dc ne tbjc ()ptim:d:w IG'vl PC racunr1ri 1 r.ji:wvi ,lcd!oenici prctrpeli su.
na prim.:r. lllhCJh> pr,;\irivanjc prakticno i:;te magi:;tr;tie ,a 3 na I fJ linija za podatkc,
a ntim i na 3:2 linije.
3A Procesorski cipnvi i magistrale
177
Da bi sc problem s prdirokim rnagistralama, projektanti se ponckada
opredeljuju za tzv. multipteksirane magistrale (engl. multiplexed bus). U ovom
rdenju, vodovi za adresiranje i podatke nisu razdvojeni vee zajednicki (postoje, reci-
mo, 32 voda i za aclresiranje i za podatke). Kad magistrala pocne da racli, vodovi se
za prenos adrese, a kasnije se za prenos podataka. Na primer, za ope-
raciju upisivanja podataka u memoriju to znal:i da se adresa mora preneti do memorije
pre nego .<to SL' na magistralu postavc poclaci. Kada bi postojali odvojeni vodovi, adre-
sa i pndaci bi se mogli istovrerneno nalaziti na magistrali. Mullipleksiranjem vodova
srnanjuje sc tlzicka sirina magistralc i njcna cena, ali se usporava sistcm. Kada sc pro-
jektanti ocllucuju za tip magistralc, moraju pazljivo cla razmisle o svcmu.
3.4.4 Vremensko uskladivanje rada magistrate
Prcma tome kako sc rad magistrala vremenski usklaJuje, one sc svrqavaju u dve
jasno podcljene kategorije. Sinhronc magistrate (engl. svnchronous bus) imaju vod
pove:ran s kristalnim oscilatorom. Signal jc kvadratni talas cija je frekvencija obicno
izmcdu 5 i l 00 Ml-lz, a svaka aktivnost na magistrali trajc ceo broj njegovih ciklusa,
tzv. ciktusa magistrate (engl. hus cycles). Druga vrsta, asinhrone magistralc (engl.
asynchronous bus), nernaju ustaljeni radni takt. Ciklus magistrale moze biti hilo koje
potrebne duzine, a ona ne mora biti ista za sve parove urcuaja koji komuniciraju. Una-
stavku cemo detaljnije objasniti oba tipa magistrala.
Sinhronc magistralc
Kao primer rada sinhronc magistrale, razmotrimo vrcrnenski sled dogaJaja na slici
3-J8(a). U ovom primcru koristicemo radni takt frekvencije l 00 MHz. sto znaci da
ciklus magistralc traje 10 ns. lako ovo izgleda pomalo sporo u poredcnju s radnim
taktom procesora brzine _:; GHz i vise, malo je PC magistrala s kracim ciklusom. Na
primer, popularna PC! mag:istrala obicno radi s taktom od 33 ili 66 l'vii-Iz. Razlogc
zbug kojih danasnje magistrale rade sporo vee smo naveli: nesimetricnost magistrate
i potreba za kompatihilnoscu sa starijim sistcmima.
u nasem primcru dalje c'erno pretpostaviti cia citanje podataka iz memorije traje
15 ns ud trcnutka kada se adresa stabilizuje. Kau sto cemo ubrzo videti. za citanje reei
hiee potrebna tri ciklusa. Prvi ciklus pocinjc: nailaskom uzlazne ivicc signala raclnog
takta T
1
, a treei se zavrsava nailaskom uzlazne ivice signala T+, kao sto je prikazano
na slici. Obratite paznju nato da mlazne i silaznc ivice signala nisu vertikalne. jer ni-
jedan clektricni signal ne moz.e trcnutnn promcniti svoju vreclnost. U ovnm primeru
tJretpostavicemo data promena traje I ns. Na istoj vrcmenskoj skali uporedo su pri-
kazana stanja radnog takta i signal a ADDRESS, DATA. 1\tREQ. RO i WAfT.
Pol:etak ciklusa T
1
detinisan je uzlaznum ivicom sign ala radnog takta. Tokum dela
ciklusa T
1
proccsor smdla adresu 7.eljenc reci na vodove za adresiranje. Pus to adresa
nijc jedna vrednost, kao signal radnog takta, na slici jc ne mo7.emo prikazari jednom
linijom. vee pomoeu dvc liniJe koje se ukrstaju u trenutku kada se aclresa menja.
Osencena podrul:ja su nehitna, pa tako vidimo da jc sadrzaj voclova za podatke nebi-
tan sve dok dohro ne zadcmo u ciklus T
1
.

!
178
Poglavlje 3: Nivo digitalne logike
Posto su signali za adresiranje dobili sansu da se stabilizuju na svojim no vim vrcd-
nostima, uspostavljaju se signali MRE<.) i RD. Prvi oznacava da se pristupa memoriji
(a ne ulazno-izlaznom uredaju), a drugi, kad postoji, oznacava citanje, a kad ne posto-
ji. upisivanje. Posta memoriji za isporucivanjc adrese treba 15 ns od trenutka kada
adre'a postane stabilna (sto je negde unutar prvog ciklusa radnog takta), podaci sene
mogu isporuciti tokom drugog ciklusa T
2
. Da bi procesoru saopstila da ne ocekuje
podatke, memorija na pocetku drugog ciklusa T
2
uspostavlja signalna WAIT. Na taj
nacin se umecu dodatni ciklusi. tzv. stanja cekanja (engl. wait states), sve dok me-
morija na zavrsi posao i ponisti signal wAIT. U nasem primeru, umetnuto je jedno
stan,1e cekanja (T
2
) jer je memorija spora. Na pocetku ciklusa T
3
, kada je sigurna da
ce imati podatke tokom tekuceg ciklusa. memorija negira signal WAIT.
ADDRESS Memonjska adresa za uCitavanje
DATA I I I I tr' '!'-+--
MREQ
RD -!----__;.-
WAIT -f.----f----..
Simbol
TAo
TML
TM
T RL
T OS
TMH
TRH
ToH
Parametar
KaSnjenje zadavanja adrese
Vreme ---
(a)
Adresa stabillzovana pre signata MREQ
KaSnjenje signala MRECl1za s1lazne 1vice signala (D u ciklusu T
1
KaSnjenje signala RD 1za sliazne 1vice s1gnala (I) u ciklusu T
1
Vreme smeStan]a podataka pre silazne IVICe s1gna\a (I)
KaSn]enJe s1gna\a MREQ 1za si\azne 1V1ce signa!a (l) u c1klusu T
3
KaSnjenje s1gnala RD IZa sdazne iv1ce Signa Ia <!> u ciklusu T
3
Vreme zadrZavanja podataka nakon negacije signala RD
I b)
Min Max Jedinica
4 nsec
2 nsec
3 nsec
3 nsec
2 nsec
3 nsec
3 nsec
0 nsec
Slika 3-JX. (a) Yrcrnenski sled Jogatlaja na sinhronoj magistrali. (h) Spccifikacija nekih va;i.nijih
dogadaja.
3.4 Procesorski cipovi i magistrale
179
Tokom prve polovine ciklusa T
3
, memorija postavlja podatke na odgovarajuce vo-
dove. U trenutku kada signal radnog takta u ciklusu T
3
opadne, procesor Cita podatke
i procitane vrednosti smesta u interni registar. Kada procita podatke. procesor negira
signale MREQ i RD. Potom, ako je potrebno, pocinje drugi ciklus rada s memorijom
pri slcdecoj uzlaznoj ivici signala radnog takta. Opisani postupak se moze ponavljati
u nedogled.
Na slici 3-31\(h) detaljno je objasnjeno osam simbola koji se pojavljuju na vrc-
menskom dijagramu. T AD na primer, predstavlja interval izmedu uzlaznc ivice ciklu-
sa T
1
radnog takta i trenutka uspostavljanja signata na adresnim vodovima. Prema
specifikacijama, TAD je 4 ns. To znaci da proizvodac procesora garantuje kako ce u
svakom ciklusu citanja procesor zadavati adresu za ucitavanje u okviru vremenskog
intervala od II ns od sredine uzlazne ivice ciklusa T
1
.
Po specifikaciji, poclaci moraju biti raspolozivi na odgovarajucim vodovima naj-
manje T DS (2m) pre nailaska silazne ivice ciklusa T
3
, kako bi se mogli stabilizovati
pre nego sto ih proccsor preuzme. Kombinacija ogranicenja clelinisanih parametrima
TAD iT os znaCi sledcce: ocl trenutka pojavljivanja adrese, memorija u najnepovolj-
nijem slucaju ima samo 25-4- 2 = 19 ns da isporuci podatke. Posto jc u najnepovolj-
nijcm slucaju dovoljno l 0 ns, memorija brzine I 0 ns uvek ce odgovoriti tokom
ciklusa T
3
. Memorija brzine 20 ns cc, mcdutim. malo zakasniti, pace morati da um-
etnc jos jedno stanjc cekanja i odgovori tokom ciklusa T 4.
Vrcmenski sled dogadaja daljc garantujc dace adrcsa biti na odgovarajuCim vodo-
vima najmanje 2 ns pre uspostavljanja signala MRE<.). To vremc moze da budc vazno
ukoliko signal inicira biranje memorijskog cipa jer je nekim memorijama neophodno
odreckno vreme za uspostavljanje aclrese pre biranja Cipa. Jasno je cla projektant treha
da izbegne rnemorijski cip za koji vrcmc uspostavljanja mora hiti 3 ns.
Ogranicenja detinisana vremcnima TM i T RL znacc da cc signali i RD biti
uspnstavljeni u okviru vremcnskog perioda od 3 ns od silazne ivice ciklusa T
1
signal a
sistcmskog radnog takta. Memorijski cip ce nakon signctla MREQ i RD
unajnepovoljnijem sluc,uu imati samo 10 + I 0- 3- 2 = 15 ns da svojc pndatke postavi
na magistralu. Ovo ogranicenje dopunjava zahtcv za intervalom od 15 ns nakon sta-
bilizovanja adrese i nezavisno je od njega.
Vremena TMII i TRH odreduju trajmue negiranja signala MRH.) i RD nakon ocita-
vanja podataka. Najzad, vreme T Dll definise koliko dugo memorija mora da drzi
podatke na magistrali nakon sto se punisti signal RD. Kad je rce o procesoru iz naseg
primera, memorija mo;,c da ukloni poclatke s magistrak cim se ponisti signal RD: u
nekim clrugim procesorima, medutim. podaci moraju ostati stabilni jos malo.
Trcba istaci da slika 3-38 vrlo uprosccno prikazuje vremcnska ogranicenja. U
stvarnosti se uvek zadaje rnnogo vremenskih parametara. lpak, na usnovu slikc
l1llrZcte stcci prilicno dobar utisak o nacinu rada sinhrone magistrak.
Na kraju treba naglasiti cia sc upravljacki signali mogu aktivirati hilo visokim. hilo
niskim nivoom napona. Projektant magistrate treba da odluci sta je u datom slucaju
pogodnijc, izbor nema sustinski znacaj. To se moze posmatrati kao hardverski ekvi-
valcnt programerovog dvournljcnja da li da blokovc prawog prostora na disku popu-
ni nulama ili jedinicama.
:r ,,m
'I I ,
:1: l'
!I; \II
ii II;
1 ! i
i :::
180 Poglavlje 3: Nivo digitalne logikc
Asinhronc magistralc
Jako se sa sinhronim magistralama lako radi jer irnaju diskretne vremenskc inter-
vale, one imaju i svojih problema. Na primer, sve operacije sc obavljaju u vre-
menskim intnvalima koji su umnosci ciklusa rnagistrale. Ako procesur i memorija
mogu da ohave razmcnu podataka za .1, I ciklusa, oni je moraju produziti na 4 ciklusa
jer se operacije izvrsavaju unutar celog hroja ciklusa.
Stu je jos gore, kaJa se jednom izahere ciklus magistrale i za njega memo-
rija i ulazno-izlazne kartice, pre\azak na noviju i bolju tehnologiju iJc tdko. Pretpo-
stavimo. na primer, da je nekoliko godina posto je napravljcn sistcm sa slike ]-38
proizvcdena nova mcmorija s vremenom pristupa od 8 ns umesto dotadasnjih 15 ns.
Ona hi potpuno raskrstila sa stanjima cekanja i ubrzala hi Citav sistcm. Zamislimo da
sc pojavila i memorija s vremenom pristupa od 4 ns. Ona nc bi mogla Ja unapredi
ovaj sistcm jer se po njegovom projektu citanje obavlja u dva ciklusa.
Ako ovc cinjenice osmotrinm na drugi nacin. viJimn da sinhrona magistrala na ko-
joj se razliciti uredaji mora cia bude prilagm.lcna najsporijem, a brzi uredaji
necc moc'i da iskmiste svojc pune potencijale.
lpak, razlicite uredajc moze da pomiri asinhrona magistrala, koja ne radi na osno-
vu signala radnog takta (slika ]-_\lJ). Cim uredaj koji jc trenutno glavni na magistrali
na nju postavi adresu, MRE(i. i sve druge potrebne signale, on L'e, umcsto da ceka
cikluse radnog takta, na magistralu postaviti i specijalan signal koji cemo nazvati
i\1SYN (Master SYNchroni;ration). Kada sporedni uredaj vidi taj signaL on trazcni po-
sau obavlja najbrze sto moze. Kad ga zavrsi, on na magistralu salje signal SSYN (Sla-
veS YNchronization).
ADRESA Memorijska adresa za c1tan)e
MREQ
RD
MSYN
PODACI
SSYN
Slika 3-39. Rad astnhwnc magistrak.
Cim glavni uredaj primi signal S:..;YN. on ;:na da su mu podaci na raspolaganju, pa ih
preuzima i ponistava signale na adrcsnim voduvima. kao i signale :V1RE<.), RD i MSYN.
Kada sporedni uredaj vi eli (negaciju 1 signal a r\i'lYN, on zna da je ciklus
3.4 Proccsorski cipovi i magistralc
181
zavrsen. pa i sam ponistava (ncgira) signal SSYN; tako se vrac'amo u prvobitnu situa-
ciju. kada su svi signali negirani i ceka se skdec'i uredaj koji c'e preu;.eti magistralu.
U vremenskim dijagramima dogactaja na asinhronimmagi:,tralama (a ponckad ina
sinhronim) koriste se strelice za isticanje uzrocno-posledicnih veza. kao na slici 3-39.
Slanje signala MSYN uzrokuje postavljanje podataka i izaziva sporcdni uredaj da po-
salje signal SSYN. Signal SSYN uaokuje negiranje adresnih signa Ia i signata MREQ.
RD i MSYN. Na kraju, negiranje MSYN signala uzrokuje negiranje signala SSYN. koji
zavrsava citanje i vrac'a sistem u prvobitnu stanjc.
Skup ovako povczanih signata wve se potpuno usaglasavanjc (engLjitl/ hand-
shake). Osnovni deo sastoji se od cetiri dogadaja:
l. Salje se signal MSYN.
2. Signal SSYN se salje kao odgovnr na signal MSY,'J.
.1. Signal MSYN se ncgira kao odguvor na SSYN.
..\.Signal SSYN se negira kao odgovor na negiranje signala MSYN.
Iz opisa bi trcbalo da buclc jasno da potpuno usaglasa vanje ne zavisi od vrcmena.
Svaki dogadaj je izazvan prethodnim dogadajem. a ne impulsom raclnog takta. Ako je
ncki par uredaja (glavni i sporcdni 1 spor, to ni na koji ne urice na sledeci par
uredaja koji mogu biti matno brzi.
Prednost asinhrune magi,-,trale sada bi trehalo da bude ociglcdna. ali stoji i cinje-
nica da su magistralc vecinom -;inhrone. Razlog je lakoc'a pravljenja sinhronog siste-
ma. Proccsor sarno saljc SVOJC signak. a memorija samo na njib udgovara. Ne postuji
povratan (U/rucno-pusledican) tok informacija, ali ako su komponente pravilno oda-
brane. sve radi i bcz usa:::Iasavanj't. p,lred tuga. u tchnologiju sinhronog rada ul,J.Leno
jc miwgo novca.
3.-LS Arbitriranje magistralom
Svc do sada smo podrazumc\a]i da ma!Cistralomupravlja sai1ll< glavni medaJ
-- U stvarnosri. mcdutim. i ulalnu-i;bLni cipU\ i mora.Ju pond.ad da postanu
ghl\ni da bi proCitali plldatkc. upisivaJi ih u mcmuriJU i izazivali .sistcmske hto
vazi i 7a kopmcesore. Tako dolazimo do pirania. sc dogada bela elva iii vise uredaja
istovremeno iluc'e da

Odguv<)f gLtsi- mora postojati nd.i mc-
haniLam arhitriranja magistralom (c:ngl. !.>us ur!Jirrutiun) L1ko hi sc i;.bcgao haus.
Mehantzam arbitriranja muzc da bucic i dcccntra]i;:o\an. Razmotri-
mu prvo centralizcJ\:llln arbitriranje. P<)'>t'hfl<l jecliwstavan oblik centraliL()\anog arbi-
triranja prik:tLanjc nt slici 3--+0ta). Prcma ovoj semi,jed:m uredaj- arbit.tr- mln:duje
ko sl.cdcc'i i;l:u.i na angistralu. l\llwgi pnlL"C',<Jri imaju :trbitar uircktno ugr:1llcl1 na cip.
cdi jc pmekxl jllltrcban i p"scban cip. :\lagi.straLt i vod ;.a pri stupa
sa ugr:tcknim 1-culum OR. na kujijec!,m il1 vi:;c urcdc1ja mogu sLtti .,vojc' z::h-
lcv.: U '>\:tknm irenutku. /\rbitar nc ITIUZc' znati kllltko urcclajajt' lStuvremeno :cahtevah1
pri,tup. On dva st:lnJa: ,Jilla zahtcva i .. nema
11
182
Poglavlje 3: Nivo digitalne logike
Zahtev za pristupanje magistrali
Duzvola za pnstupan1e magistrali
Arbitar
t I t I t I t I l

I
'
,_/
I
'
,_/
I
'
,_/
I
Dozvola -
za pristupanje maze 1
2 3 4 5
i ne mora putovati
duz Janca uredaja
Ulazno-izlazni uredaji
(a)
Zahtev za onstuoanie mag1strali mvoa 1
Zahtev za pristupanw mag1strall n1voa 2
Arbitar Dozvola za pnstupan)e mag1strall ntvoa 2
I
''
I I
\ '--/ I
--- --- --- ---
1 2 3 4 5
(b)
Stika 3-4(). (a) Ccntralizovani arbitar magistrale s jcdnim nivoom koji koristi tehniku ulancavanja
uredaja. (b) lsti arbitar, ali s dva nivoa.
Kada arbitar dobije zahtev za pristupanje magistrali, on daje dozvolu tako sto na
vod za izdavanje dozvola salje odgovarajuCi signal. Taj vod je povezan sa svim ula-
zno-izlaznim uredajima. Kada uredaj koji je tizicki najhlizi arbitru vidi dozvolu, on
prO\'erava da li je sam poslao zahtev. Ukoliko jeste, on preuzima magistralu, ali do-
zvolu ne prosleduje drugim uredajima. Ako utvrdi da nije on poslao zahtev, dozvola
za pristupanje se prosleduje do sledeceg uredaja, koji se ponasa na isti naCin; ceo po-
stupak se ponavlja dok neki ne prihvati dozvolu i preuzme magistralu. Ovakva
sema se naziva ulancavanje uredaja (engl. daisy chaining) i karakterise je to da prio-
ritet dobija uredaj koji se nalazi najblize arbitru.
Da bi se zaobisao podrazumevani prioritet uredaja koji su najhlizi arhitru, na mno-
gim magistralama postoji vise nivoa prioriteta. Za svaki nivo postoji vod za zahte-
vanje pristupa i vod za davanje dozvole. Sistem na slici 3-40(b) ima dva nivoa, l i 2
(stvarnc magistrate cesto imaju 4, 8 ili 16 nivoa). Svaki uredaj se prikljucujc najedan
od nivoa zahteva pristupa magistrali, pri ccmu sc vremenski kriticni uredaji prikljucu-
ju na nivoe viseg prioriteta. Na slici 3-40(b) uredaji I. 2 i 4 imaju prioritet I, dok
ureclaji 3 i 5 imaju proritd 2.
Ako istovremeno stignu zahtevi razlicitih prioritcta, arbit<u daje dozvolu samo
ureclaju s najvisim prioritetom. Uredaji istog prioritcta se ulancavaju. Na slici 3-40(bJ,
u slucaju sukoha, prioritet prvo dobija uredaj 2, zatim uredaj 4 ina kraju uredaj 3. Ure-
daj 5 ima najnizi priori tel zato sto se nalazi na kraju Janca najnizeg prioritcta.
Recimo uzgred i ovo: s tehnickog stanovista nije ncophodno da se vodom za slanje
dozvole na nivou 2 serijski povezu uredaji I i 2, posto oni preko njega ne mogu da
3.4 Proccsorski cipovi i magistrate
-
183
- salju zahteve. Medutirn, implemcn:iranje pogodnije da se vod za davanje dozvole
ovde sa svim uredajlllJa, bez ohztra na nJLhov pnontet.
p Neki arbitri imaju i treci vod preko koga uredaj salje signal da je prihvatio dozvolu
i preuzeo magistralu. Cim uredaj postavi takav signaL signali na vodovima za_ zahte-
vanje i davanJe dozvole mogu se negmltL Tako, dok prv1 uredaJ konst1 mag1stralu,
nista ne sprecava druge uredaje da istovremeno zahtevaju pristup. U trenutku kada se
tekuCi prenos podataka zavrsi, vee' c'c se znati koji od sledecih uredaja izlazi nama-
gistralu. Uredaj preuz,eti magistralu cim se ncgira na vodu potvrdi-
vanje, kada zapoctnJC sledecL krug arbttnranp. Za ovakvu semu potreban JC dodatni
vod na magistrali i dodatna logika u svakom uredaju, ali se ciklusi holje iskoriscavaju.
u sistemima u kojima se memorija nalazi na glavnoj magistrali, procesor semora
nadmetati sa svim ulazno-izlaznim uredajima skoro u svakom ciklusu. Za takvu si-
tuaciju opste jc resenje da se procesoru dodeli najnizj prioritet, tako da on dohija ma-
gistralu samo kada je niko neee. Ovakav pristup se zasniva na misljenju da procesor
uvek moze da ceka, dok ulazno-izlazni uredaji najce:ice moraju da pristupe magistrali
brzo iii ce izgubiti podatke. Diskovi koji rotiraju velikim hrzinama, ne mogu da ce-
kaju. Ovaj problem sc u mnogim savrcmenim racunarima izbegava tako sto sc mc-
morija i ulazno-izlazni uredaji smcstaju na zasehne magistrale, pa ne da sc
nadmecu za pristup.
Moguce je i decentralizovano arbitriranjc magistralom. Na primer. racunar moze
da ima 16 prioritetnih vodova za zahtevanje pristupa magistrali. Kada urcc1aj hoc'c da
koristi magistralu, on salje zahtcv preko odgovarajuceg voda. Svi uredaji prate stanjc
svih vodova za slanje tako dana kraju svakog ciklusa magistralc svaki uredaj
zna da Ji zahtcv salje uredaj najviseg primitcta i, prema tome, da li mu je dozvoljeno
da u sledeccm ciklusu koristi magistalu. Za razliku od centrali;.ovanog arbitriranja, za
ovu metodu je potrcbno vise vodova na mag:istrali, ali se climinisu potencijalni tro-
skovi za uredaj za arbitriranje. U ovom slucaju, hroj uredaja ogranicen _jc brojcm vo-
dova za slanje zahtcva.
Pri drugom nacinu dcccntralizovanog arhitriranja magistralom, prikazanom na sli-
ci 3-41, koriste sc samo tri voda, hez obzira na broj prikljuccnih urcdaja. Prvi vod ma-
gistrale sluZi za zahtcvanje pristupa i ima ugradcno logicko knlo OR. Drugi vod se
zovc BUSY (zamet) i na njega salje signal uredaj koji trcnutno koristi magistralu.
Treci vod se knristi za arbitriranje i na njcga su povezani svi uredaji. Na njemu uvek
postoji signal od +5 volti jcr jc povezan s napajanjem.
T5V
.of
/
Vod za
arbitnran1e
I
t r l r
Ulaz lzlaz Ulaz lzlaz Ulaz lzlaz
I
'
I

1 2 3
t I
Ulaz lzlaz
4
t
Vod za slan1e
hteva za pnstup Zi
v od BUSY
Ulaz lzlaz
I s
Slika 3-41. arbitriranje magistrctlom.
i_ I
! l
:1
!
ar-----
184
3: Nivo digitalne logikc
Kada nijedan uredaj nc zeli pristup magistrali, signal na vodu za arhitriranje pro-
la;.i do svakog urcuaja na tom vodu. Ako trazi izlaz na magistralu, uredaj najpre
proverava da li je ona slohodna ida li prima signal INs voda za arhitriranje. Ako je si-
gnaliN negiran, uredaj nc moz.c da izide na magistralu i negira signal our. Ukoliko jc,
signal IN prisutan, uredaj i tada negira signal OUT, pa njcgov suscd na vodu za arbi-
triranjc vidi negiran signal IN i ncgira svoj signal OUT. Na taj nacin svi uredaji na vodu
za arbitriranjc vide neg iran signal IN i zbog toga ncgiraju svoj signal our. Kada se sle-
gne prasina, postojacc samo jedan uredaj s potvrdcnim signal om IN i ncgiranirn signa-
lorn OUT. Taj uredaj prcu;:ima magistralu. salje signale R\JSY i OUT i zapocinjc svoj
prcnos podataka.
Ako malo boljc razmiolimo, vidimu dace rnagistralu, ukoliko je trazi, dobiti kra-
jnji levi urcdaj. Po tomcje ova scma slicna ulancavanju urectaja s poi\:tka ovog odelj-
ka, :, tim slo ovck nc postoji arbitar. pa je zato jcftinija, radi br7.e i nijc osetljiva na
otka;.ivanje arbitra.
3.4.6 Operacijc na magistrali
Dosad srno govorili sanw o obicnim ciklusima magistrale, kada glavni uredaj (naj-
ccscc proccsor) cita podatke sa sporednog urcdaja (najce;il'c iz mcmorijcJ ili ih upi-
suje u njcga. Postoji vise drugih vrsta ciklusa magistralc, pa ccmo sada obraliti paznju
na neke od njih.
1\lagistralom sc po pravilu prcnusi jcdna po jedna rce. Mcdutim, kada sc koristi
kdiranjc, pozcljno je da se ujcdnom trenutku prcut.im<t citav red kda (npr. 16 uza-
slopnih J2-bitnih rcci). Prcnos cclih blokova ccsto jc clikasniji od prenosa vise poje-
dinacnih reci. Kada zapocnc citanjc bloka pudataka. glavni uredaj na magistrali
saopstava sporednomuredaju koliko ce reci hiti prcneto (na primcr, tako ;to cc tukom
ciklusa T
1
staviti hroj rcci na vodove ;:a podatkc). Umeo.;to da odgovara samo jcdnom
recju, spurcdni urcuaj cc ll svakom ciklusu isporucivati po jcdnu rcc sve dok ne ispo-
ruci t.adat hmj reci. Slika 3-42 prikazuje izmcnjenu verziju .>like 3-3X(a), s dodatnim
signalom llToc"K., koji sc salje kao znak da sc zahteva pre nos bloka. U ovom primeru
citanjc bloka od 4 rcci obavlja se za 6 ciklusa, umcsto 1.a 12.
Postoje i drugc vrste ciklusa magistrale. Na primer. kada su u visepruccsorskim si-
slemima za istu magistralu vczana dva iii vise procesora, ccslll je polrebno obezbediti
da u jed nom trcnutku samo jcdan proccsor koristi neku vaznu strukturu podataka u
memoriji. To se po pravilu radi tako sto u memoriji postoji prumcnljiva cija je vred-
nost 0 kada nijcdan pruccsor ne koristi strukturu podataka, a I kada je neki procesor
koristi. Ukoliko procesor treba da pristupi strukturi podataka, on mora da procita
vrcdnost promcnljive i daje promcni u l ako je ona 0. Problemje to sto dva procesora
mogu procitali vrednost promenljivc u dva uzastopna eiklusa. Ako svaki proce;,or
vidi vrednustll. tada cc Je svaki od njih promcniti u I i smatrati daje onjedini koji ko-
risti trazenu slrukturu pudataka. Takav rcdosled dogal1aja dovodi do haosa.
Procesorski cipovi i
185
<D
ADRESA
PODACl
MREil
RD
WAIT
I I i I,.------+--+---+---:-
! I
BLOCK
Slika J-42. Prcnus hluf-a.
Da bi sc opisana situacija izbegla. viseproccsorski CL'Slo imaju ciklus ma-
gistralc tipa ,procitaj-izmcni-upisi, koji svakom pmccsoru omogucava da i1. mcmu-
rije procita rec, dajc ispita i izmcni pa daje pOilOVll Ull1Cil1<ll"iju bcz prepustanja
magislrale drugomuredaju. Ovakav lip ciklusa sprecava proccs,,rc da u
meuuvremenu koristc i taku poremclc opcraciju prv(1g procesora.
Jos jedan vazan ciklus magi;.,trale sluli za obradu siskmskih prckicLt. Kada procc-
sor zahteva od ulaznu-i;:laznog ureuaja da ncstu uradi, on obicnu ul'd..ujc si<.;temski
prckid cim urcdaj pusau. Signal sistemskog prekida prenosi se magistralom.
Posto vise uredaja mogu islu,rcmcno da posalju signalc za prckicL i ovck
sejavlja problem sa arhitriranjem, kojijc postojao ununnalnim cik.lusima
Rcsenjc se obicno nalazi u dodcljivanju prioriteta urcdajima i koriscenju centra ar-
bitra koji ce davati priuritet vremcn-,ki kritil'nim urcdajima. Postoje standctrdni cipO\'i
- kontroleri si:-,tcmskih prckida koji .se powuda kori,te. IB:\1 PC racunar i svi njeg<wi
naslednici koriste lntelov cip X:2S'J.'I.. prikazan na -,Jici 3--Ll.
-
Procesor
----
----() Radn1 takt
' I 1==

Tastatwa
_ . I ---- IR2 --
t:J_ I Kontroler IR3 --
\1'{13 ___.I SIS!e'l'Sk:il iR4 __
==llprek1da IPS t:J Disk
---IR6 -- r-< . .
00-07 1....-- IR7 Stampilc
t
+5 v
Stika J--B. Nacin si,L';,d,ih prckida IC1p
p
'
r
186
Poglavlje 3: Nivo digitalne logike
Do osam kontrolera ulazno-izlaznih urectaja moze se direktno prikljuCiti na osam
ulaznih IR (Interrupt Request) prikljucaka za zahtevanje prekida na cipu 8259A.
Kada bilo koji od ovih uredaja hoce da izazove sistemski prekid, on salje signal na od-
govarajuci ulazni vod. Ukoliko se pojavijeclan iii vise zahteva, cip i:\259A salje signal
INT (INTerrupt) direktno na nozicu procesora rezervisanu za sistemski prekid. Cim
procesor moze da ohradi prekid, on cipu 8259A salje potvrdu INTA (INTerrupt Ack-
nowledge). Posle toga, cip 8259A mora da saopsti koji ulazje izazvao prekid tako sto
na vodove za podatke na magistrali salje broj ulaza. Ova operacija zahteva specijalan
ciklus magistrate. Logika procesora koristi taj broj ulaza da bi se u tabeli pokazivaca,
nazvanih vektori prekida (engl. interrupt vectors) pronasla adresa procedure za
obradu prekida.
Cip 825l)A ima vise registara ciji sadrzaj procesor moze da procita iii u njih moze
upisivati podatke koristeci obicne cikluse magistrate i ulaze RD (ReaD), WR (WRite),
Cs (Chip Select) i AO. Kada softver obracli prekid i kadaje spreman da preuzme slc-
deci. on u jedan od registara upisuje poseban kocl kojim primorava cip i:\259A dane-
gra signal INT. osim ako se u redu cekanja nalazi drugi sistemski prekid. Kada se
upisu podataei u registre, cip 8259A moze se prebacivati u vise radnih rezima. moze
se maskirati skup prekida, a mogu se aktivirati i njegove clruge mogucnosti.
Ukoliko postoji vise od osam ulazno-izlaznih uredaja, cipovi i:\250A mogu se po-
vezati kaskadno. U granicnom slucaju. svih osam ulaza cipa mogu se povezati sa iz-
lazima osam drugih cipova 8259A, sto claje moguc'nost prikljucenja do 64 ulazno-
izlazna uredaja u dvustepenu mrdu sistemskih prekicla. Cip 8259A irna nekoliko
nozica za povezivanje u kaskadu koje na slici nismo prikazali.
lako ni u kom slucaju nismo iscrpli temu projektovanja magistrala, materijal koji
smo izneli trebalo bi da pruzi dobru pocllogu za razumevanje rada magistrale i njene
saradnje s procesorom. Predimo sada sa opstih kategorija na konkretne primere nekih
stvamih procesora i njihovih magistrala.
3.5 PRIMER! PROCESORSKIH CIPOV A
U ovom odeljku ccmo na hardverskom nivou detaljnije upi,ati cipove Pentium 4.
UltraSPARC Ill 805 l.
3.5.1 Pentium 4
Pentium 4 je direktni naskdnik procesora XOXri koji se nalazio u prvobitnom lBM-
-<,vom PC racunaru. Prvi Pentium4 predstavljcn je u nmembru 2000. godine kao pro-
ccsor sa 42 miiiona lranzistura 1--oji radi na 1,5 GHz 1 ima vod<Jve
O.lS mih.rometara. Sirina sc odnosi na vodove koji povezuju tranzistore (ali je i mera
za velicinu samih tran,ristoral. Sto je sirina manja. na cip moze cia stane vise tanzistora.
l'vlooreov ,rakon govori o sposobnosti inzenjera da i dalje su7.avaju vodove. Kada su
vKlovi uzi, vec'a je ucestalo't radnog takta. Poredenja radi, recimo da Je vias ljudske
kose de bela izmedu 20 i l 00 mikrometara. pri cemuje plava vias tanja od erne.
3.5 l'rimeri proccsorskih cipova
187
Tokom sledece tri godine, kako je Intel kumulirao tehnolosko iskustvo, broj tran-
zistora na cipu narastao je na 55 miliona, njegov takt na 3,2 GHz, a sirina voclova se
smanjila na 0,00 mikrometara. lako je prueesor 8088 sa svojih 29.000 tranzistora
samo daleka proslost. Pentium 4 je potpuno kompatibilan s njim i moze cia izvrsava
neizmenjene biname programe pisane za proeesor 8088 (dane pominjemo programe
pisane za procesore koji se nalaze izmedu njih).
Pentium 4 je sa soft verskog stanovista potpun 32-bitni cip. On ima iste !SA osobine
na korisnickom nivou kao i procesori 8031:\6, 80486, Pentium, Pentium II, Pentium Pro
i Pentiumlll- ukljucujuc'i iste registre, iste instrukcije i na cipu ugradenu podrsku za
standard IEEE 754 za aritmetiku s brojevima u formatu pokretnog zarez.a. Pored toga.
on ima i neke nove instrukcije nam,enjene prvenstveno multimeclijskirn aplikacijama.
S hardverskog stanovista, Pentium 4 je delimicno 64-bitni cip jer s memorijom
razmenjuje podatke u jeclinicama ocl64 bit a. lako to za programere nema znacaja, 64-
-bitni prenos cini cip brzim od nekog 32-bitnog modela.
lnterno, na nivou mikroarhitekture, Pentium 4 se polpuno razlikuje ocl svih svojih
prethodnika. Svi njegovi neposrcdni prethodnici- Pentium II, Pentium Pro i Pentium
Ill- imali su istu internumikroarhitekturu (nazvanu P6), a razlikovali su se jedino po
brzini i nekim manje vaznim karaktcristikama. Pentium 4 ima novu mikroarhitekturu
(nazvanu NetBursl) koja se znatno razlikuje od mikroarhitekture P6. On ima potpu-
niju paralelnu obraclu, dve aritrneticko-logicke jedinice (obe rade pri dvostrukoj
uccstalosti radnog takta da bi omoguc'ile dve operacije po eiklusu) i podr7.ava hiper-
nitni rad. Za poslednju moguc'nost odgovorna su dva skupa registara i neki drugi
terni resursi, zbog cega Pentiumu 4 moze vrlo brzo da prelazi iz programa u program
(kao da racunar ima dva tizicka proccsora). Mikroarhitekturu c'emo obraditi u pogla-
vlju -+. Kao i njegovi prethodnici, i Pentium 4 rnoze istovremeno cia izvrsava vise in-
strukcija, sto ga cini superskalarnim procesorom.
Neki modeli Pentiuma-+ imaju elva nivoa kes memorije, a neki cak i tri. Svi modeli
imaju 1:\ KB ugradenc SRAM kes memorije prvog nivoa (L I). Za razliku ocl kd
rnorije prvog nivoa u Pentiumu III, koja cuva samo sirove memorijske bajtove, Pen-
tium 4 ide korak dalje. Kada se instrukcije preuzrnu iz memorije. one se pretvaraju u
mikrooperacije, pa RlSC jezgro Pcntiuma 4 moze da ih izvrsi. Kd memorija prvog
nivoa Pentiuma 4 moze da sadrzi do 12.000 dekodiranih mikrooperacija, tako da
nerna potrcbe da se one neprestano ponovo dekodiraju. Velicina kes rnemorije drugog
nivoa iznosi ml 256 KB na starijim modelima do I MB na novijim. Nista sene deko-
clira: u kes memoriji drugog nivoa cuvaju se cisti memorijski bajtovi. Ona moze da
sadrzi mdavinu koda i podataka. Pentium 4 Extreme Edition irna i kes memoriju
treeeg nivoa, velicinc 2MB, cime se performanse dodatno poboljsavaju.
Posto svi cipovi Pentium 4 imaju bar elva nivoa kd memorije, nastaje problem u
sistemima kada jedan proeesor izmeni rec u svojoj kd memoriji.
Ako drugi procesor pokusa cia procita tu rec iz memorije, once dobiti njenu zastarelu
verzijujer se reci koje se menjaju u kd memoriji ne upisuju odmah ponovo u memo-
riju. Da bi memorija ostala konsistentna. svaki procesor u viseprncesorskom sistemu
prisluskujc (engl. snoops) memorijsku magistralu trazeei reference na reci koje ima
188 Poglavljc 3: Nivo digitalnc logikc
u svojoj kes memoriji. Kaua unCi referencu. on br:ro ispnrucuje trazene pndatk.e pre
ncgo sto memorija uopste dobije sansu Ja [l) uCini. 0 prisluskivanju cemo govnriti ll
poglavlju 8.
U sistcmima s Pentiumom 4 koristc se dve primarne spoljnc magistrale (obc su
sinhrone). Za pristupanje glavnoj ( S )DRAM memoriji kuristi se mernorijska rnagi-
strala; za komuniciranje sa ulazno-izlaznim uredajima k.oristi sc PC! magistrala. Po-
nck.ad sc za PCI magistralu vezuje i nck.a prcvazidcna (engl. /ega<")') magistrala da hi
se omoguCilo prik.ljucivanje i statijih pcrifcrijskih uredaja.
Sustinska razlika izmcdu Pcntiuma 4 i njcgovih rrethodnika lczi u njcgovom pak.o-
vanju. Problem svih savrcmcnih cipovajc elektriCna snaga koju tru;e i k.olicina tnrlote
k.oju proizvouc. trosi izmcclu63 i 82 vata. zavisno ou frckvcncijc. Zbug toga
Intelncprestano trazi nacinc da ouvede toplotu kuju prucesorski cipovi gencrisu. Pen-
tium 4 SC isporucuje Ll kvaJratnOill [JakuvallJLl. ivica m\ :15 01111. S dunje Stram: plocice
nalazi sc 478 no.l:ica, od kojih su 85 za mpajanje. a 180 su uzemljenc z.bng srnanjenja
suma. No/.ice Sll ureLlcnc u matricu 26 X 26. pri Ct'lllll u srcuini nedm,taje 14 X 14 nuzi-
ca. lsto tak.o. nedostaju i dve nuzice u jednom uglu. da bi sc olak.salo pravilno pusta-
vljanje cipa ll podno/jc. Fi;.ick.i raspnn:d nozicl prikaLall je na slici :1-44.
@
.n
M








I

......
..... .
a
......
:::::: :::::: I
......
000@00
4o
......

I




Slika Jw-t..t. FiLiCb raspnred l\_ntiuma 4.
c"'ir tma ok vir fa mnntiranje hladnj<tk:l k<1Ji :tf"'J:"huje generis:mu wp\otu i
t<lra koji je odvodi. Da bistc shvatili u cemu ukljucite sijalieu od 60 -,ati. pu-
stite je da sc ugrcje i tau a sanjk sake oko n1e i aii je nc dudinlJk ). T.)pluta knJu u tom
trenutk.u <lSctite lll!ll":t se od prnccsura neprestano udvPditi. Prema tume, \.:ada Pen-
tium-+ i-;tnsi u svo.JC'j ulozi proccs,,ra. nw/.2le ga 1.1\ eJ.... k.ur:stiti k.ao grejalicu.
Prema zakun1ma s\e genaiSL' veiihu k<Jlicinu tupk1k morct i Ja tmsi mnu-
go cncrgij.:. Lf pren\y.;lvin1 raCun:1rirna. batcrijc {)grani(cnog kapacitcta. vc-
ltka potn>snja enc:rgi.:e mje po/eljn't jer se bateriy brzo prazne. !mel jc taj prubkm
pn,ce:;or SL' uo>pavljujc' svaki put kad nema pus/a i bac:a g:., u .,Juook san"'
kad g>d posloji vewvarnuc'a eLl ce besp<>slensnst putrajati. p,Jstoji zapr:1vo per stanja
budnusti prL>CC'iLlf:t. pu(ev\t <ld p< tpune ctkti\ nusti. pa du dubokug sna. U
stanjima pnlu.sna aktivne su nek.e njegove futikcije (npr. prislu.\:...ivanJe i ubcada
Pl'imcri proccsorskih cipova
189
sistcmsk.ih prekida). dok su druge funkcije iskljucenc. U stanju dubokog sna, cuvaju se
pouaci iz kes rnemorije i sadrzaji rcgistara. ali se generator radnog tak.ta i sve inteme jc-
diniLe iskljucuju. lz dubokog sna procesor sc moze probuditi samo haruverskim signa-
1om. Ne wa se da li duboko uspavan Pentium 4 ndto sanja.
Logi(],i izvoda Pentiuma 4
Od -+78 no7ica Pcntiuma 4. 198 se koristi za signale. 85 za napajanje (s nck.oliko
rallicitih nap 'lla), 180 za u;.emljcnje. a 15 zasad nc sluzi niccmu. Neki od logickih si-
"naLt kcH1.ite dve i vise noz.ica (npr. za adresiranje memorijc). tak.o cia ukupno rostoji
ra;i:Citih :-.ignata. Nesto rojednostavljen logicki raspnred izvoda rrikazanje na sli-
c:l J-4:'1. Na kvnj strani slike nalaz.; se pet glavnih grura signata memorijskc rnagi-
strak: na desnuj strani su razni drugi signali. lmena prikazana velikim shwima
origin;tllla Sll [ntelova imcna signata. lmena [Jrikazana lllCSavinolll velikih i malih slo-
va Lajcdnicka su imcna vise srodnih signala.
ArbitmanJe r
magistrale ']
'
Zahtevanje
pnstupa
Greske ,:
Odgovaranje
na zahtev
Podact J
i
BPRI#---
LOCK#-
BRO#
A#
ADS#
REOII

5
0 s ta I o ____,...._
2
R S# ____,...._
TROY#-
Parityt-
BNR-
64
0 # ____,...._
DRDY# .--
DBSY#
Panty# ____,...._
13
M isc ---+----
Procesor
Pentium 4
--RESET#
-------- Sistemski prekidt
14
Upravljanje
potrosnJotn energije
Upravljanje
odvodenjem top late
____,...._ Frekvencija
radnog takta
23
____,...._ Oijagnostika
---+---- lnicijaltzacija
2
_____,....._ Pnsluskivanje
7
_,_._.. Ostalo
l 185 100
<I> Napajanje
Siika 3-45. Logick.i ras1mred izv\lda Pcntiuma cl. lmena ispisana wlikim slnvima su zvanicna
lnteluva irnena 7.a pnjedinacne signak. lmcna ic.pisana rnesavinom vclikih i malih slova
ozna(avaju grupe sroJnih signala ili opi.se .signala.
:'11
i
!
'i
190 Poglavlje 3: Nivo digitalne logike
Treba obratiti paznju na lntel konvenciju za imenovanje. Posto se danas svi cipovi
pro_ektuju pomocu racunara, postoji potreba da se imena signala prikazuju u obliku
ASCII teksta. Koriscenje gornje erte za prikazivanje signala na niskomnivou nije po-
godno, pa lntel umesto nje iza odgovarajuceg imena stavlja simbol #. Tako se signal
BPRI oznacava kao BPRI#. Kao sto se vidi na slici, vecina signala Pentiuma 4 aktivna
jc na niskom nivou.
Analizirajmo sada signale, pocevsi od signala magistrale. Prva grupa signala se
kor:sti za zahtevanje pristupa magistrali (tj. za arbitriranje magistralom). Signal BRo
se koristi za zahtevanje pristupa. Signal BPRI# omogucava uredaju da postavi zahtev
visokog prioriteta, koji ima prednost nad uobicajnim zahtevima. a signal LOCK# omo-
gucava procesoru da zakljuca magistralu kako bi sprecio druge uredaje da joj se pri-
blize dok on ne zavrsi posao.
Kada preuzme magistralu, procesor iii neki drugi glavni ureclaj mozc da zahteva
pri,tup koristeci sledecu grupu signala. Adrese su duzine 36 bitnva. ali 3 najmanje
znacajna bita uvek rnoraju biti 0 i zato za njih ne postoje izvodi (tako signal A# ima
samo 33 izvoda). Svi podaci koji sc prenose 8-bajtni su (poravnati na granicu oci 8 baj-
tov1). Buduci cia postnj i 36 bitova adresc, moze se adresirati n;D vise 2
3
(! memmijskih
\oLtcija. pa je kapacitet mcmorije 64GB.
Kada se adrcsa postavi na magistralu, salje se signal ADS# kako bi sc ciljnom
uredaju (npr. memoriji) saopstilo cia su signali na adresnim vodovima vazeci. Tip
magislrale (npr. citanjc jedne reci iii upisivanje bloka) saopstava se signalima
REQ#. Parnosl se proverava pornocu signal a A# i REQ#.
Postoji pet vodova za obavestavanje o greiikama pri racunanju u formatu pokret-
tlllt: zareza, o internim greskama. grdkama (hardverskim) pri proveri racunara i ne-
kim drugim greiikama.
Grupa za odgovaranje obuhvata signalc pomoc'u kojih podredeni (cilj-
ni) uredaj salje i1.vcstaje glavnom uredaju. Signal RS# sadrzi ktKl statusa. Signal
TRDY# oznacava da je podredeni ututaj spreman da prihvati podatke od glavnog ure-
dajct. Ovim signalima se proverava parnm,t. Signal flNR# sc koristi za uvoctenjc stanja
cdanja u slucaju Ja adrcsirani ciljni uredaj ne mozc da odgovuri na vreme.
Poslednja grupa signata na magistrali predvidena jc za pre nos stvarnih podataka. Si-
gnal D# 'e kori'>ti za stav ljanje X bajtova podataka na magistralu. Kalla se pociaci posta-
vc. salje se ;.,ignal DRDY# da se ohjavi njihovo prisustvo. Signalom Dl:lSY# obavc.\lava se
daJe magistrala trenutno zauzeta. I u ovom slucaju podaci se proveravaju pomocu par-
no,li. Ostali signali podataka rade s vrednostima prekida i slicnim stvarima.
Signal RESET# se koristi za ponovno pokretanje procesora u slucaju probicma iii
kac!a korisnik pritisnc dugme za ponovno pokrctanje racunara.
Pentium 4 se moze pode-;iti taku da kori'>ti sistemske prckide na isti nacin kao i
pn,cesor :--\0::\X (t.hog kompatihilnosti sa :.tarijim verzijama). a mo.>.e koristiti i novu
semu sistemskih prckida pomucu urcdaja nazvanog APIC (Advanced Pn>gramma-
hk Interrupt Controller. napredni programabilni kontrulcr sistemskih prekida).
Pentium 4 mozc da radi na bilo kom od nekoliko unapred ddinisanih napona. ali
sc mora znati koJi je to napon. Signali 1.a upravljanje potrosnjom energije kori<;le se za
automatsku hiranje izvora napajanja, kako hi procesoru saopstili ciajc izvor napajanja
3.5 Primeri procesorskih cipova 191
stabilan, alii za generisanje drugih poruka koje se ocinose na napajanjc. Na tom mestu
se upravlja i razlicitim stanjima usnulosti procesora posto su ona u direktnoj vezi s
potrosnjom cnergije.
Uprkos slozenom sistemu upravljanja potrosnjom energije, Pentium 4 se moze
vcoma zagrejati. Grupa signata za upravljanje odvodenjem toplote omogucava pro-
cesoru da svojoj okolini objavi kako se opasno priblizio granici pregrevanja. Na jedan
od izvoda procesor salje signal kada njcgova unutrasnja temperatura dostignc 130' c
(266 F). Ako procesor ikada ciostigne tu temperaturu, tada vcrovatno pocinje cia sanja
0
penzionisanju i o svojoj novoj ulozi grejnog tela.
Signali iz grupe zaduzene za .,frekvenciju radnog takta" koriste se pri ociredivanju
racine frekvencije magistrate. Grupa dijagnostickih signata obuhvata signalc za te-
stiranje sistema i za otklanjanje u sklaclu sa stanciardom IEEE 1149.1 JTAG.
Grupa signata za inicijalizaciju bavi se pokretanjem sistema.
Na kraju, u grupi .,ostalo" nalaze se razni signali, od kojih jedan ohave:itava da je
podno/je procesora zauzeto. drugi radi u okviru emulacijc procesora X088, a postoje
i mnogi signali za razlicite namene.
Paralelna ohrada podataka na mcmorijskoj magistrali Pcntiuma 4
Savremeni procesori, kao sto jc Pentium 4, mnogo su brzi od savremenih DRAM
mcmorija. Da procesor nikada ne bi oslao bez podataka, neophodno jc da se ohezbedi
njihov maksimalan protok it. memorije. Zbog toga se na memorijskoj magistrali Pen-
tiuma 4 intenzivno koristi paralelna obrada podataka (engl. pipeline), pri cemu se na
njoj istovremeno obavlja cak osam transakcija. Konccpt paralelne obrade podataka
objasnili snw u poglavlju 2 kada smo govorili o procesorima (pogledajte sliku 2-4),
ali se i memorija mozc obradivati na isti nacin.
Za potrcbe paralelne obrade podataka. zahtevi da se pristupi rnemoriji Pentiuma 4,
nazvani transakcijc, mogu sc podeliti u sest faza:
I. Arbitriranje magistralom.
2. Slanje zahteva.
3. Prijavljivanje gresaka.
4. Prisluskivanje.
5. Odgovaranje.
6. Prenos podataka.
Nisu sve faze potrebne u svim transakcijama. U arbitriranja. utvrdujc se koji
ce od polencijalnih uredaja sledcci preuzeti magistralu. U fazi zahtevanja ciozvoljava
:;e uredaju da na magistralu poslavi adresu i da uputi ;:ahtev. U fazi prijavljivanja
gresaka pociredeni uredaj rnoze objaviti da adresa ima gresku parnosti ili cia nesto lint-
go nije u redu. Faza prisluskivanja omogucava jednom procesoru da spijunira cirugi-
ndto sto je potrebno samo u sistcmima s vise procesora. U fazi odgovaranja glavni
urectaj sazn;De da lice clobiti pociatke koje je trazio. Na kraju, u fazi prenosa, podaci
SC sa!JU procesoru koji ih je lrazio.

1.:
. '
1,:
I :
1''
192
Poglavljc 3: Nivo digitalnc logikc

Tajna serijske abrade podataka na memorijskoj magistrali Pentiuma 4 Jel.i u tome
sto se u svakoj fazi koriste drugi signali, tako da je svaki nezavisan od ostalih. Scst
potrebnih grupa signala prikazano je na levoj strani slike J-45. Na primer, jcdan pro-
cesor mozc pokusati da preuzme magistralu pomocu signala za arbitriranje. Kada do-
bijc pravo da nastavi rad, on oslobada vodove za arbitriranje i da koristi grupu
vodova L<t odgovaranje na zahtev. U meduvremenu, drugi procesor iii neki ulazno-iz-
lazni uredaj mozt: da ude u fazu arbitriranja itd. Slika 3-46 prikazuje kako st: nama-
gistrali istovremeno ohavlja vise transakcija.
C1klus magistrale
T2
T
4
. T
5
I T
6
, T, I T, , T9
1
T10 , T11 , T, 2 ,
-.... -.... -.... .... -:
' I ' I
T3
<I>
Tran i
1
1 I I '1
sakc11al j I 1

'.j{o""""'}:G;}I'
' I I I ' I
j ]8[81 lndgovur;L)! I
. I ' I I ....----'---..
I ro""' }:
I ; I I I i I' I '
4 I.<LJ""'' ).( "" k}:(J::::,):BI
I ! ' I I I
I
r
I
I
; :<z,,rc,),
1
1
(s .. ,,,,)/Ct::::;:,.):.
1
G:">G
I ' I I '
Slika 3-46. Scrij-.,k_;: u!1;ada DthlL'\a na ... koj
Na slici 3--H) nije prikataru arbitriranjajn uvek p<ltrchn.t. !\a primer. ak(l
tekuci vlasn1k magistralc (najC'c\CL' procc:,ur) hucc da ubavi uansakeJju, un nc
mora punovu pri:;tup magistrali, On to tn''ra uraditi ak" J;,,ce Ja j,,.
preu/me pthk nek.(lg dru;l"!:' 1 i 2 su Jasrw: pet faza unutar pet
ciklusa magistralc. l' tran,ak(iji 3 fal.a preno\a podal:!Ltje du/.a jcr jc to, na pri:ncr,
prcnus bloka iii je mcmorip umctnu!a stanje Cekanja. 7:ho"- t,_,gci
cija 4 ne nw/.c da ,voju Lt!U prcnosa pm!aLtha onda Ltda iJ,,c.'e. Ona pri-
mceujc da signal IJW,YF jll.,, U\d jl\lS[Ilji i ccka d:t on hmlc L' tr:tll,aL.:ijJ :'i
vidirno da i Inu/c da pPtrajc viSe ciklusa 1b1)g :--,('
odJa/e (J. c\a ll f ]>finJc'L'lljCllH1 da pra1nina f;(ljJ jc'
llOlll uncta ll st:njsk ll ubr;,cill l
1
Sl:.lje U njuj S\'e dok sC transakcije fWkreL'cl ncr\ >'red no
jcdna za cirugom. U ['rak'>i jc:, medutim. malt) vemvatno da (e Cc'li n<vu
transakciju ba;; u s,akum ;:i\..iusumagistrak, tako da praznine u liniji uhr:tde ll<c tr:tju
tako dugo,
3.5 Primed proccsorskih cipova
193
3.5.2 lJltraSPARC III
Kao drugi primer proccsorskog cipa, razmotricemo porodicu Cipova UltraSPARC
kmnpanije Sun. Pormlica cipova UltraSPARC sadrzi Sunove 64-bitne SPARC procc-
sore, Oni su pmpuno u skladu sa 9, verzijom SPARC arhitekture, koja vazi i za 64-bit-
ne procesore. Ovi pmcesori sc koristc u Sunovirn radnim stanicama i scrverima, kao
j za rawt: druge primene, U ovu porodicu spadaju UltraSPARC L UltraSPARC [[ i
UltraSPARC lll- po arhitckturi veoma slicni procesori koji se uglavnom ra.-:likuju po
datumu izbacivanp na po radnom taktu i po nekoliko dodatnih instrukcija koje
se uvode u svaki slcdcci model. Da hi nas opis bio sto konkretniji, u nastavku cemo
govoriti o cipu l!ltraSPARC IlL ali cc vecina int"onnacija o arhitekturi (tj. on om sto nc
zavisi od tchnologije) va7.iti i za t)stale UltraSPARC cipove.
UltraS!'.'\ RC Ill jc klasican RISC cip i na binarnom nivouje potpuno kompatibilan
sa X. ver1ijom 32-bitnc SPARC arhitekture. On bez ikakvih izmcna moze da izvrsava
binarne programe pisanc za 32-bitni SPARC Y8 jer je SPARC arhitektura verzije 9
sa arhitektururn vcrzije 8, Jcdinu u cemu Ultra-SPARC Ill odstupa ud
arhitt?kturc SPARC YlJ jeste dodatni skup instrukcija VIS 2.0 za gralicke 30 aplika-
cije. :'v!PFG dckodiranje u realnom vremcnu, komprimovanje podataka, obradu si-
gnala. i7vrsavanjc Java programa i rae! Ll mrezi.
laJ.:o se UltraSPARC III koristi i u radnim st:micama, un je u stvari projektovan za
glavni proizvod kompanije Sun- velike viseproccsorske serverc s deljenom memo-
rijlllll koji se koriste na lnternetu i u kompanijskim mrezama. Konkretnije, veCi dco
logJkc: potrehnc L1 pravljenje sistemas vise proeesora vee postoji unutar i:ipa UltraS-
Po\RC Ill, sto ulaksava njihovo mcL1usohno povezivanjc.
Prvi cip UltraSPARC 111 predstavljenje 2000, godine. Radio je na 600 MHz i imao
aluminijumske vodove sirine 0, I X mikrometara. Sadrzao je 29 miliona tranzistora.
je kompanija Sun hila previsc mala da bi joj sc isplatila izgradnja pogona za
proizvudnju cipova, ona se ogranicila na projcktovanje cipova i sol'tvera, a njihovu
p!lii.-:' '1clnjuje ugovorila s firmama koje se time profesionalno bavc. Za proizvodaCa
(ipu l.!JtraSPARC Ill izabrana JC !irma Texas Jnstrumems. Ta tinna je 2001. godine
lii1JflrL'dila tehrwlogiju i pocela da pravi cipovc za rad na 900 MHz, s vodovima sirine
0, 15 mi kmmetara. pri cemu su aluminij umski vodovi zamenjeni bakarni m. S lcdec.:
.1e vodova smanjena na 0,13 mikrometara, a radni takt procesora je
'>kl>Ciil na I ,2 GHz, Ovi cipovi su imali snagu od 50 vati i imali su problem sa od-
""lcnJem toplotc kao i Pentium 4.
jt: upurcditi ClSC cip t kao sto je Pentium 4) sa RISC cipom (kao sto je Ul-
Ill J samo na osnovu radnog takta. Na primer. UltraSPARC lll mo7,e da iL.-
clajt: c,t i ri i nstrukcije po ciklw,u. sto je po brzini izvrsa vanja ek vi valentno procesoru
'radnim od 4,X GH.-: koji zadajc jednu pojednu instrukeiju. UltraSPARC ima
i \c''.llnlc'rnih linija paralelne obrade, ukljucujuci dve 14-stepene linijc obrade za opc-
rat:ijt: ' celim bmje\ ima, dve za operacije s brojevima u formatu pokretnog zareza,
jcdl!ll Ll l1peracJje citanja i upisivanp i jednu ;:a grananja. On ima i drugaciji
i brojne druge moguc'nosti koje poboljsavaju performansc,
194
Poglavlje 3: Nivo digitalne logike
Ipak, i Pentium 4 ima svoju ,tesku artiljeriju". Ovde zelimo da naglasimo kako po-
redenje dva veoma razlicita cipa samo na osnovu njihovog radnog takta govori vrlo
malo o njihovim uporednim performansama za specificne poslove.
Cip UltraSPARC III isporucuje se u pakovanju Land Grid Array sa 1368 izvoda
3-47). To je kvadratna matrica sa 37 X 37 = 1369 izvoda s donje strane cipa, s
tim sto je izostavljen izvod u levom donjem uglu. Podnozje potpuno odgovara obliku
cipa tako da se on u njcga moze samo ispravno umetnuti.
Slika 3-47. Procesorski Cip UltraSPAR.C III.
UltraSPARC III ima dvc glavne interne kes mcmorijc prvog nivoa: 32 KB za in-
strukcije i 64 KB za podatke. Postoji i prirucna kes mcmorija od 2 KB, kao i kd me-
morija za upisivanje od 2 KB. koja u kes memoriju drugog nivoa smesta podatke za
uJisivanje da bi ih isporucila u dugackim nizovima i tako bolje propusni
oJscg. Slicno Pentiumu 4, i UltraSPARC koristi kes rncmoriju drugog nivoa izvan ci-
pJ, ali za razliku od Pentiuma 4, on nema podrazumevano ugradenu kes memoriju
cLugog nivoa. Kontroler kes mcmorije i logika za pronalazenje blokova kd memorije
smestcni su na cipu, ali stvarna kd mcmorija (SRAM memorija) nije na njcmu. Tako
sistema imaju slobodu da za kcs memoriju drugog nivoa biraju bilo koji
komcrcijalno raspoloziv cip.
Odluka da se kes mcmorija drugog nivoa integrise s Pentiumom 4, adana Ultra-
SPARC-u I I I bude izdvojena, delimicno je uslovljena tehnickim razlozima. a delimic-
n'l i razlicitim poslovnim modelirna koje slelle kompanije Intel i Sun. Tehnicki
gledano, spoljna kes memorija je vcca i Hcksibilnija (kes memorija drugog nivoa za
LltraSPARC III moze da ima kapacitet od I do 8 MB; ista kes memorija za Pentium
4ima nepromenljivu velicinu od 512 KB). Mcdutim, ona mo:l.e da bude i sporija zbog
vece udaljenosti od procesora. Kes memoriju treba adresirati vidljivijim signalima.
Konkrctnije, sirina veze izmeltu cipa UltraSPARC Ill i njegove kes memorije drugog
n1voa iznosi 256 bitova. sto omoguc'ava da se u jednom ciklusu iz keii rncrmorije pre-
ncse ceo blok od 32 bajta.
3.5 Primcri procesorskih cipova 195
S poslovnog aspekta, Intel je proizvodac poluprovodnika i irna mogucnosti da pro-
jcktuje i proizvede sopstvenu kes memoriju drugog nivoa. ida je poveze s procesorom
preko sopstvenog interfcjsa visokih performansi. Kompanija Sun. za raziiku od Intcla,
pravi racunare, a ne cipove. Sun doduse projektujc i neke sopstvene cipove (npr. Ultra-
SPARC), ali proizvodnju prepusta specij,11izovanim proizvodacima cipova. Kada to
mozc, kompanija Sun najvise voli da upotrebi komercijalno dostupne cipove cijije kva-
litet vee izbrusilo samo trziste. SRAM mcmorije za kes memoriju drugog nivoa nude
brojni proizvm1aci cipova. pa Sun nc mora da brine o tome. Takva odluka podrazumcva
da ke5 memorija drugog nivoa budc nezavisna od procesorskog cipa.
UltraSPARC Ill koristi 43-bitnu adresnu magistralu, koja omogucava da glavna
memorija ima maksimalan kapaci,tet od S TB. Magistrala za podatke jc sirine 128 bi-
tova i omogucava procesoru i mcmoriji da istovremeno razmenc 16 bajtova podataka.
Radni takt magistrale je 150 MHz, zbog cega protok podataka dostize brzinu od
2,4 GB/s, sto je mnogo vise od 528 MB/s kod PCl magistrale.
Za povezivanje (vise) procesora UltraSPARC sa (vise) mernorijskih cipova, kom-
panija Sun je razvila arhitckturu UPA (Ultra Port Architecture). Ona se moze im-
plementirati u vidu magistrale, skretnice (engl. s\vitclz) ili njihove kombinacije. Na
razlicitim radnim stanicama i serverima UPA, arhitcktura se razlicito implementira.
Nacin implcmcntacije arhitekture UPA ne utice na procesorjcr jc intcrfcjs ka UPA ar-
hitekturi prccizno definisan i procesorski Cip mora da ga podrbva.
Na s1ici 3-48 vidimo jezgro jednog sistemas procesorom UltraSPARC III: procc-
sorski cip, UPA intafejs i kcs memoriju drugog nivoa (dva komcrcijalna SRAM ci-
pa). Na slici je i cip UDB II (UltraSPARC Data Buffer II) ciju cemo funkciju ubrzo
objasniti. Kacla procesoru zatrcba rec iz mcmorije, onje prvo traL:i ujcdnoj od svojih
(internib) kes mcmorija prvog nivoa. Ako je tamo pronacte, nastavlja izvrsavanje
punom brzinom. Ukoliko se rec ne pronade u kc:i memoriji prvog nivoa, procesor ce
je potraziti u kes memoriji drugog nivoa.
[ako cemo 0 kesiranju dctaljno govoriti ll poglavlju 4, bice korisno da i ovde 0
tome kazemo bar ndto. Glavna mcmorija je podeljena na redove (blokovc) kd rnc-
morije velicine 64 bajta. U kcs mcmoriji prvog nivoa nalazi sc 256 redova s najccscc
koriscenim instrukcijama i 256 redova s korisccnim podacima. Redovi kes
memorije koji se cesto koriste, ali ne mogu da stanu u kes memoriju prvog nivoa,
smestaju sc u kes mcmoriju clrugog nivoa. Ona sadrzi nasumicno izmesane redove sa
instrukcijama i podacima. Oni se cuvaju u pravougaoniku (na slici) pod imenom
.,Podaci u ke5 memoriji drugog nivoa'. Sistem treba da vodi racuna o tome koji sere-
dovi nalaze u kes memuriji drugog nivua. Tc infurmacije se cuvaju u drugom SRAJ'vl
cipu, oznaccnom sa .. Oznake kes mcmorije drugog nivoa".
Kada ne nadc trazene pm!atke u kes memoriji prvog ni voa. procesor salje identifi-
kator reda kuji tra7j (Tag address) kes mcmoriji drugog nivua. Odgovor (Tag data)
daje procesoru informacije na osnovu kojih moze utvrditi da li se trazeni red nalazi u
kcs mernoriji drugog nivoa i, aku je tako. u kakvom je stanju. Ukoliko je red tamo,
procesor ga preuzima. Istovremeno se prenosi i 16 bajtova podataka, pa su polrcbna
cetiri ciklusa da se ceo red prcuzme u ke; memoriju prvog nivoa.
196
Oznake kes
memorije
drugog nivca
Podac:i u kes
n1ernoriji
drugog 11ivoa
Poglavljc 3: Nivo digitalnc logikc
18 Adresa oznake
Potvrdivanje oznake
25 Podaci oznake
4 Parnost oznake
20 Adresa podataka
_fotvrLfrvanJe adrese podataka
Procesor
UltraSPARC Ill
Kes memonje
p rvog nivoa
DD
/ Arbitriranje rnagistralom 5
Memorijska adresa
I
Parnost adrese
, Potvrdivanje adrese
Cekanie
Odoovor 4
_ 1,?8 Podaci +
5 f UpravljanJe
lb - Parnost
Memorljski \ Memorljskr podacr 128
baler UDB II
Mernorijski kod 16
za isoravljan1e gresaka
Slika 3--IS. (ilavne jo.gra sistema UltraSPARC IlL
UPA
interfejs
ka
glavnoj
mernoriji
Ukoliko sc tral.cni red ne nalaz.i u kd memuriji drugog nivoa. on sc mora prcuzeti
iz glavne menwrije preko UPA intcrfcjsa. UPA arhitektura tipa UltraSP/\RC imple-
mcntirana je romocu centralizovanog kontrolera_ Svi adrcsni i upravljacki signali
procesora (svih prucesura ako ih ima vise) prolazc kruz centralizovani kontrolcr_ Da
bi pristupio mcnwriji. procesm najpre mora da dobije dozvolu prcko izvoda za arbi-
triranjc. Kada dobije dozvolu. proccsur salje signale na adrcsnc izvode, zadaje tip
i daje signal preko izvoda za potvrLtivanje adrese. (lzvodi su narnenjcni dvo-
smernom prcnosu. zato sto drug:i prucc,ori u viseprocesorskorn sistcmu UltraSPARC
111 treba da imaju pristup udaljcnirn kc; memorijama zbog usagla;avanja svojih kd
memr,rija.) Adresa i tip ciklusa magistrate se u dva ciklusa stavljaju na izvocle za adrc-
sirany. pri CCI1lll SC odguvarajUL'i red adresc Salje ll prVOll1, a odg:ovarajuca .,ko!ona''
u drugom ciklusu. kao sto smo rckli prilikom objasnjavanja slikc 3-3 L
Dok ccka rezultatc. proccsor mo7.c da obavlja drugc poslove. Na primer. ukoliko u
kes memoriji ncrna instrukcijc koja se rrethodno preuzima, ne sprccava se izvrsa-
vanje _1cdne ili vise vee prcuzetih instrukcija. od knjih za svaku rnogu biti potrebni po-
daci kojih ncma ni u _iednoj kes memoriji. Tako se UPA intcrfejsu moze istovrcmcno
uputiLi vi;c transakcija_ UPA intcrtejs mo/.e da obraduje dva nezavisna toka transak-
cip (najl:escc citan_1e i upisivanjc), od kojih se svaki sastoji od vise transakcija u redu
cekanja. 0 njima treba da vodi racuna centralizuvani kontrolcr i trcba da upucujc me-
mmiji stvarne ;ahtcve najdikasnijim redosledom.
3.5 Primcri proccsorskih cipova
197
Kada podaci kunacno rocnu da stizu iz mcrnorije. oni se nalaze u grupama od po :-;
bajtova. sa 16-bitnim kodom za ispravljanje grt:Saka ( zbog vece pouzdanosti). Za
odredcnu transakciju moze biti potrehan citav blok kes memorijc, cetvorostruka rec (R
bajtova), ali i samo nekoliko bajtova_ Svi podaci idu u UDB. gde se baferuju. UDB
bafer jos boljc razdvaja procesor od sistema memorije, kako bi radili asinhrono. Na
primer. ako proccsor treba da upise rec ili red umemoriju. umesto da ceka pristup UPA
interfejsu, on podatke mozc odrnah da upisc u UDB bafer i njemu prepusti da podatke
kasnije pro,lcdi mcmoriji_ LiDB takode gencrisc i provcrava kocl za ispravljanje grt:Sa-
ka. Na kraju treba imati na umu daje navedeni opis procesora UltraSPARC Ill, bas kao
i opis Pentiuma 4 pre njcga. veoma pojednostavljcn. ali da on sustinski radi bas tako.
3.5.3 Cip so5t
Pentium-+ i UltraSPARC Ill primcri su proccsora visokih performansi za pravlje-
nje izuzctno brzih PC racunara i scrvcra. Mnogi smatraju da su Lo pravi sistemi.
Mcdutim. po,toji i jedan svct racunara koji jc mnogo vcei: ugradeni sistemi. U ovum
odeljku ukratku cemo 'c osvrnuti na taj sveL
Verovatno samo malo prcterujcmo kad kazcmo da svaki elektricni uredaj koji ku-
sta vise od 100 do lara sadr/.i racunar_ Lcvesno jc da telcvizorc. mubilne telcfnnc, licnc
digitalne pomocnike. mikrotalasne pccnice, kamkordcre. videorikurdere. lascr;ke
stampace. a\armne SiSlCITlC, SlliSI1C araratC, dcktronske igrice i drug:c llfCL!ajc kuntro-
\i.;u svojevrsni racunari. Racunari unutar uredaja optirnizUJll sc vise --:bog ccne negn
da bi se postigle visokc performansc. stu vmli drugacijim kompromisima ud onih pri-
menjenih u slucaju najbr;l.ih procesura kujc smo dosad proucavali.
Kao sto smo pomenuli u poglavlju 1. cip o051 danas je vernvatno najpopularniji
mikrokontroler. uglavnom zbog svoje veoma niske cene. Uhrm cemo vidcti ida jc to
vrlo JCdnustavan cip kome 'e lako i jcftino pristupa. Analitirajlll<l (;ip >\051. Ciji
je fizicki raspored nozica prikazan na slici 3-49.
Pl.O
P1.1
P1.2
PU
P1.4
P1.5
P1.6
PU
RST
RXD I PlO
TXO I P3.1
INTO I P3.2
iNfT I P3.3
TO I P3.4
T11 P3.5
WR / P3.6
vee
PO.O I ADO
P0_1 / ADl
P0.2 I AD2
P0.3 i AD3
POA I AD4
P0_5 / AD5
P0.6 I AD6
P0_7 / A07
Ei'\i VPP
RD I P3.7 17 24 P2.3 A II
XTAL2 18 23 P2.2 AlO
XTAL1 19 22 P2.i A9
vss 21 no As
Slika 3-49. Fizrcki ra'['"reLin<>l.ica Cipa C:ll:'i L
: I ft
198
Poglavlje 3: Nivo digitalne logike
Kao sto se vidi sa slike, cip 8051 isporucuje se u standardnom pakovanju sa 40 no-
zica (premda postoje i druga pakovanja za specijalne narnene). On ima 16 adresnih
vodova, pa moze da adresira do 64 KB memorije. Magistrala podataka je sirine 8 bi-
tova, tako da se razmena podataka izmedu procesora i mcmorije odvija bajt po bajt
(umesto istovremeno u grupama od po 8 bajtova kao kod Pentiuma 4 i gruparna od po
Hi bajtova kao kod UltraSPARC-a III). On ima brojne vodove za upravljanje koje
ccmo opisati Ll nastavku, ali se od Pentiuma 4 i UltraSPARC-a- koji SLI cisti mikro-
proccsori - razlikuje po tome sto ima 32 ulazno-izlazna voda, organizovana Ll cetiri
grupe po 8 bitova. Svaki od ovih ulazno-izlaznih vodova moze se vezati za taster, pre-
kidac, svetlosnu diodu iii drugi uredaj koji ce cipu 8051 slati signale ili ih primati od
njega. Na primer, svaki taster iii radio-budilnika moze biti spojen s drugim
ulazno-izlaznim vodom, dok neki drugi ulazno-izlazni vodovi upravljaju ekranorn.
Na ovaj nacin se vec.'inom, ako ne i svim funkcijama radio-budilnika mozc se upra-
vljati softverski, pa nije potrcbna skupa diskrctna logika.
Logicki rasporcd izvoda Cipa 8051 prikazan je na slici 3-50. Cip 8051 ima 4 KB in-
terne ROM rnemorije (8 KB na cipu 8052). Ako to nijc dovoljno za konkrctnu namenu,
na cip 8051 moze sc prcko magistrale prikljuciti do 64 KB spoljne mernorijc. Prvih se-
clam signata na levoj strani slike 3-50 koristc se za rad sa spoljnim memorijskim cipovi-
ma. ako postoje. Prvi signal A prenosi se preko 16 adresnih voclova i aclresira bajt
spoljne memorije koji treba procitati iii upisati. Osam vodova D koriste se za prenos po-
clataka. Osam manje znacajnih adrcsnih signal a multipleksiraju se na is tim vodovima da
bi se smanjio broj izvoda na cipu. Pri transakciji na magistrali. ovi izvocli u prvom
ciklusu radnog takta gencrisu aclrcsu, a zatim u sledcc.'im ciklusima prenose podatke.
A
D
Rif
WR
ALE
PSEN
Prektdt
TXD
RXD
RST
8051
<I> NapaJanje -
8
0
Prikljui'ak 1
---+-- Pnkltui'ak 2
8
-----+--- Pnkljui'ak 3
Slika 3-50. LogiCki raspored izvoda cipa 8051.
Kada se koristi spoljna memorija. cip 8051 treba da naznaci da li je rec o citanju iii
upisivanju - tj. da posalje signal RD iii WR. Signal ALE (Address Latch Enable)
3.6 Primcri magistrala
koristi se kada postoji spoljna memorija. Procesor salje ovaj signal kako bi oznacio da
je aclresa vazeca. Spoljni memorijski cipovi po pravilu ga koriste cia bi ukljucili aclres-
ne vodove. posto ce oni ubrzo biti iskljuccni kako bi se koristili za prenos podataka.
Signali PSEN i EA# takode se odnose na spoljnu memoriju. Signal PSEN (Program
Store ENable) salje se kacla cip 8051 zeli da procita podatke iz memorije. Once po
pravilu biti povczan s mcmorijskim signalom OE, kao sto je prikazano na slici 3-29.
Signal EA# (External Access) po pravilu je vezan iii za visok ili za nizak naponski
nivo tako da uvek ima istu vrednost. Ako jc vczan za visok nivo napona, internih 4 KB
(8 KB na cipu 8052) rnemorije koristi se za adresiranje unutar opsega. a spoljna me-
morija se koristi za adrcsiranje iznad 4 KB (8 KB na cipu 8052). Ukoliko jc vezan za
nizak nivo napona, spoljna memo,rija se koristi za sve aclrese, tako da se memorija na
cipu efektivno zaobilazi. Na cipovima 8031 i 8032. signal mora biti vezan za nizak
nivo napona jer ovi cipovi nemaju internu mcmoriju.
Dva voda omogucavaju spoljnirn tajmerima da salju signale procesoru. Druga dva
voda omogucavaju cia elva razlicita spoljna urcdaja salju procesoru sistcmskc prekide.
Vodovi TXD i RXD omogucavaju serijsku vezu s tcrminalom iii mmlcmom. Na kraju,
vod RST omogucava korisniku iii spoljnom hardvcrskom urcdaju da ponovo pokrene
i'ip 8051. Taj signal se najcdce koristi kada ndto krcnc naopako pa sistcm mora da
se pokrenc ponovo.
Po dosadasnjcm opisu, cip 8051 lici na drugc 8-bitne procesorc, ako izuzmcmo
postojanje scrijskih ulazno-izla:mih vodova. Ono sto cip 8051 st varno izdvaja jcsu J2
ulazno-izlazna voda, organizovana u cetiri prikljucka; prikazani su na dcsnoj strani
slike 3-50. Svaki od ovih vodova je clvosmeran i mozc sc koristiti kako za citanje.
tako i za upisi vanje podataka pod kontrolom programa. Ovo jc osnovni nacin komu-
niciranja cipa 8051 sa okolnim svetom i toga cini vrednim: dovoljan je jcdan cip da
biste imali proccsor, memoriju i ulazno-izlazne mogucnosti.
3.6 PRIMERI MAGISTRALA
Magistrale povezuju komponente racunarskog sistema. U ovom odcljku detaljnije
cemo analizirati ncke popularne magistrale: !SA. PC! i univerzalnu serijsku magistra-
lu ( Univc:rsal Serial Bus). !SA magistralaje u stvari malo unapretlena prvobitna IRM-
-ova magistrala za PC racunarc. Zbog kumpatibilnosti sa starijim urcdajima, una je
postojala u svim PC racunarima na lntclovim procesurima sve do pre
nekoliko godina kada su se Intel i Microsoft clogovorili da je izbace. l"vleclutim, ovi
racunari imaJU i drugu, brzu PC! magistralu. PC! magistralaje sira i brza od !SA ma-
gistralc. Zbog toga ona nmze da prenesc vise podataka u sekundi od !SA magistrale.
Ona je glavna radna snaga u vecini savremenih PC racunara, mada jc njcn naslednik
vee na vidiku. Univerzalna scrijska magistrala (USB) svcje popularnija ulazno-izlaz-
na magistrala za spore periferijske komponentc. kao sto su mis i tastatura. Druga vcr-
J.ija USB magistrale radi mnogo brzc. U narednim odcljcima redom cenm analizirati
jcdi1U po jednu navedenu magistralu.
200
Poglavlje 3: Nivo digitalne logike
3.6.1 ISA magistrala
magistrala bilajc defitctu stanJard u zasnovanirn na proccsuru
8088 jcr su je skoro svi proizvodaci PC klonova kopirali da bi u svojim sistcrnima
mogli da koriste brojne po-,tojece kar1icc. Ona ima 62 signalna voda, od
kojih 20 sluzi za mcmorijc, S za prenos podataka i po jeJan za oznacavanjc
citanja podataka iz memurijc. upisivanja u nju, citanja pociataka iz
ure<taja i upisivanja p<KLtt,lka 11 nJih. Na njoj postoje i vodovi za zahtevanje i
vanjt' sistcmskih prd id:1 i n kunsccnje DMA kontrokra. To je veoma jednostavna
magistral a.
iVTagistralajc na maticnu plocu i oprcmljcna je s nekoliko uticnica
sporedenih 11:1 rastujanju tld po 2 em. u koje se mogu urnetnuti razlicite kartice. Svaka
kartica imajc;ic:tk k<lji odgov:tra lllicnici. Jezicak sa svake strane ima po 31 pozlaccnu
traku preko kojih se ostvaruje ekktricni kontakt sa uticnicom.
Kada je I Bi\1 PC/AT racunar L.asnovan na procesoru X02S6, morao je cia
rcsi v e I ik i prohkm. Dajc IB !'vl sve poe co ud nule i projektovao putpuno novu
nu ma)listr:tlu. mn,,gi putcncijalni kupci bi oklcvali da je kupe jer nijcdna od velikog
bruj:t kartica kuje c,u nudili proizvodaci nc bi mogla da radi s novim racu-
narnm. S drugc vc;:ivanjem za PC magistralu s njenih 20 adrcsnih vodova i 8
vt>Jova ;;1 podatkc ne bi \C mogle iskoristiti mogucnosti proccsora 1\02:-\6 da adresira
16 [VI B !llCJil()l"ije ida prenosi reci.
OdluCeno je da sc PC magistrala prosiri. Kartice imaju ivicni knnektor sa 62
ta:.:ta. ali on nc zauzima dulinu kartice. Resenjc za PC/i\T racunare bilo je da se
d11/ istc ivi:.:c ]W'lavi jos jcdan kunektor s dodatnim kontaktima, ada sc magistrala
podc:-;i cia radi c. karticama oha tipa. Ova zamisau je sematski prikazana na slici
Uticnice
:JioCJ PC magistrate PC magistrala
Uticn1ca Kart1ca
I
j/
'
\i,
0 0
0
I
n U
0 lJ 0
' no
n II o
u u 0
0 0
0 0 :J
1
d:"UiJi C:pO'Ji
D D
c::::::J
'>
I c::::::J
Nove ut1cnice za PC/AT lvicn1 konektor
Stika 3-51. PC/A r magistrala ima dve komponcnte. PC dco i nov den.
3.6 Primeri magistrala
201
Drugi konektor na PC/ AT magistrali ima 36 vodova: 31 vud je predviden za do-
datno adresiranje. clodatni prenos podataka, doJatne sistemske prekide i dodatne
DMA kanale. kao i za napajanje i uzemljenje. vociovi treba cla pornire razliku
izme(1u i prenosa.
Kadaje IBM seriju racunara PS/2 kao naslcdnika PC i PC/AT racunara.
odlucio je cia sve pocne od pocetka. Ova odlukaje cielom bila tehnicki uslovljena (PC
magistrala je u to vreme zaista bila prevazidena). ali je delom bila prouzrokovana i
zeljom da se stanc na put proizvodacima PC klonova koji su zauzeli ncugoclno veliki
deo trzista. Tako su PS/2 racunari srednjc i visoke klase opremljeni potpuno novom
magistralom Microchannel- koju je armija advokata zastitila gomilom patcnata.
Ostatak racunarske industrije jc tako sto jc prihvatio sopstveni standard,
ISA (Industry Standard Architecture) magistralu- u osnovi PC/A:!' magistralu koja
koristi radni takt od SJ3 MHz. Velika prednost ovakvog pristupa bilaje to sto je nova
magistrala bila kompatihilna s postojecim racunarima i karticama. Ona se zasnivala na
magistrali za koju je IBM ustupio licencu mnogim kompanijama u nameri da sto vise
nezavisnih proizvodaca ukljuci u proizvodnju kartica za originalni PC racunar -- nt'Sto
sto ct' mu se vratiti kao bumcrang i kunacno ga izgurati s trzista PC racunara. Sve do
pre nekoliko godina. vecina PC racunara zasnovanih na lntelovim procesorima irnala
je ovu magistralu. mada uz jos jednu iii vise clrugih magistrala.
!SA magistrala je kasnije prosircna na 32 bita, a dodate su joj i nove
(npr. za visestruku obradu). Nova magistrala je nazvana EISA (Extended ISAJ
magistral a.
3.6.2 PClmagistrala
Na originalnom IBM PC racunaru aplikacije su uglavnom radilc s tckstom. lpak.
po uvodenju WinJowsa postajalo je sve popu larnije i graficko konsnicko okru/.enjl'.
Nijcdna aplikacija nije pre vise naprczala !SA magistralu. ali kako jc vrcme prolazilu.
rnnogc aplikacijc (narocito multimedijalne igre) pocele su da prikawju pokretn.c ,]ike
na celom ckranu racunara.
Napravinm jcdno,tavnu racunicu. Zamislile .. pokretne na c:kranu rCLdtiLije
102-+ x 768 tacaka. ptikazane u prirodnim bojama t3 bajta pu pikselu1. Jedna ;.liLt na
ekranu sadrli 2.25 MB podataka. Da bi sc postigao utisak n prirodnom krct:tlljll
phodno je smenjivanje bar 30 slika u sckundi. pa brzina prenosa poclatab I reba da
bude 67.5 MB/s. Situacijajc u stvari gora ncgo sto izglcda. posto za pribzivanJe video
;:apisa sa cvrstog di,ka. ili pndaci s disk jeJinice muraju
proci do mcnwrijc. Potum. cia bi hili prikazani. oni ponovo moraju proci magi,tralorn
du gratickc kartice. Taktl namje, sve u svemu. samo za video zapis potrehan propusni
opseg ud 1.15 MB/s. ne racunajuci opseg potrcban proccsoru i drugi;n urt'dajim"-
ISA ima maksimalan takt od S,33 MHz i molt' da prenest' 2 po
ciklusu. o'tvarujuci tako maksimalan propw;ni opseg od 16.7 1\18/-;. EISA
mo2e da prenus1-+ bajta po ciklusu, postizuci brzinu od 33,3 1\18/s. J.tsnujc da nijc:dna
od ovih magistral:! ni priblizno nc moze da zadovolji potrcbc ;a priLllom slikc Ii<l
1om ekranu.
202 Poglavlje 3: Nivo digitalnc logikc
Intel je 1990. godine ovo predvideo i zato je projektovao novu magistralu mnogo ve-
ceg propusnog opsega. cak i od EISA magistrale. Nazvao ju je PCI (Peripheral Com-
ponent Inte1conncct). Da bi je promovisao, Intel je patentirao PC! magistralu i sve
pate11te preneo u javno vlasnistvo, tako da je svako mogao cia pravi periferijske uredaje
za n:u, ada ne placa procenat. Intel je osnovao i industrijski konzorcijum- Posebnu in-
grupu za PC!, koja je trcbalo cia brine o buciucnosti PCI magistrale. Zbog ova-
kvog nastupa, PCI magistrala je postala izuzetno popularna. Skoro svaki racunar
zasnovan na lntelovom procesoru, pocevsi od Pentiuma. imao jc PC! magistralu, a ima-
li su je i mnogi drugi racunati. Firma Sunje cak imala verziju UltraSPARC-a koji je je
kori;tio PC! magistralu- UltraSPARC IIIi. PCl magistrala je cietaljno obradena u tek-
stovima Shanlcyja i Andersona ( 1999), kao i Solari ja i Will sea (2004 ).
Prvohitna PC! magistrala prenosila je 32 bita po ciklusu i imala takt od 33 MHz
(s ciklusom cluzinc 30 ns), ostvarujuci ukupni propusni opseg oci 133 MB/s. Gociine
1993. preclstavljcna jc magistrala PCI 2.0. a 1995. gocline magistrala PCI 2.1. Magi-
stra.a PC! 2.2 imalaje osobine pogocine za prenosive racunare (uglavnorn usmerene ka
stednji baterije). PCI magistrala moze da radii s taktom oci 66 MHz. pri cemu ostva-
ruje64-bitni prenos i propusni opseg od 528 MBh. Uz ovako visok kapacitet. moguce
je p-ikazivanje pokn:tnih slika preko cclog ekrana (pod pretpostavkom da disk i osta-
tak ;istema mogu cia izdrze taj tempo). U svakom slucaju, PC! magistrala vise ne bi
bila usko grlo.
lako 52R MB/s zvuci prilicno brzo, i dalje ostaju elva problema. Prvo. to nije do-
voljno brzo za memorijsku magistralu. Drugo, PC! magistrala nije hila kompatibilna
sa svim starim !SA karticama. U Intelu sc razmisijalo o izradi s tri i vise ma-
gistral a, kao na slici 3-52. Viciimo cia procesor mo:l.e cia komunicira s glavnom memo-
rijom preko specijalne memorijske magistrale i da sc !SA magistrala moze povezati
sa PC! magistralom. Takva organizacija zadovoljilaje sve zahteve i zato se masovno
kor.stila devedesetih godina.
Dve kljucnc komponente ovakve arhitekture hila dva cipa za
(koje je proizvodio Intel - otuda i njcgov interes Ll citavom projektu). PC! most po-
VC;I"Llje procesor, mcmoriju i PC! magistralu, clok ISA most povc;:uje PCI magistralu sa
!S!t magistralom i podrzava jcdan iii dva IDE diska. Skoro svi sistemi s Pentiumom 4
jednu iii vise praznih PCI uticniea Dt dodavanje novih periferijskih urcuaja Vt>
like brzine i jednu iii vise !SA uticnica za dodavanjc sporih pcrifcrijskih uredaja.
Velika prednost organineijc prikazane na slici 3-52 jeste to sto procesor ima izu-
zctJo veliki propusni opseg ka memoriji preko memorijske magistrale koju je Intel
pravno zastitio; PCI magistrala ohezbet!uje veliki propusni opscg brzim perifcrijskim
ureLlajima. kao sto su SCSI ciiskovi, graficke kartice i dr .. ajos uvek se mogu koristiti
i sUre !SA kartice. Oznaka LSR na slici odnusi se na univerzalnu scrijsku magistalu
(engl. Unil'ersal Serial flus. USB) o kojoj ccmo govoriti u drugom dclu poglavlja.
Bilo bi lcpo kada bi postnjala samo jcdna vr.sta PC: I kartica. Nalalost, to nije slucaj.
One razlikuju po naponu, sirini i vremcnskom usklat!ivanju.
Stariji racunari po pravilu kmiste napun ud 5 volti. a noviji napon od 3.3 volta,
tako cia PC! magistrala podr!ava oha napona. Uticnice za oba napona i;glcdaju isto.
izw:ev elva parceta plastike koja sprecavaju da se kartica namenjena za rad pri naponu
od 5 volti umetne u uticnicu namcnjenu naponu od 3.3 volta i obrnuto. Sreeom,
3.6 Primcri magistrala
Magistrala
ka kes memoriji
Kes
mernorija
drugog
nivoa
Lokalna magistrala
ISA
most
203
Memorijska magistrala
ISA magistrala
y/
Glavna
mernorija
Raspoloziva
PCI uticnica
Raspoloz1va
ISA uticnica
Slika 3-52. Arhitcktura starijcg sistemas proccsorom Pentium. Dchljc nacrtanc magistralc irnaju
vc:ci propusni opseg od onih tanjih, ali slika nijc u pravoj ranneri.
postoje univer;alne kartice koje rade na oba napona i mogu se umetnuti u ohe uticni-
ce. Chim sto sc kart ice razlikuju po rae! nom naponu, postoji i 32-hitna i u 64-bitna ver-
zija. Prva verzija ima 120 nozica; 64-hitne imaju istih 120 nozica i dodatne 64 nozice.
napravijcn<: na nacin na koji jc IBM-ova PC magistrala prosirena na 16 bitova (siika
3-5 l ). sa PC! koji podrzava 64-hitne kartice mo:l,e cia prihvati i
32-hitnc kartice, ali obrnuto nije mogucc. Na kraju, PClmagistrale i kartice mogu da
rade taktu od 33 iii 66 MHz. Takt se bira tako sto sc odredena nozica vezuje iii za
napajanje iii za uzemljcnje. Uticnice magistrale su iste, bez obzira na takt.
Krajem devedesctih godina, skoro svi su smatraii daje !SA magistral a zastarela. pa
su jc u novim pmjektima zaobilazili. Medutim, negcie u to vreme rezolucija monitora
se poveeala u nckim slucajevima i na 1600 x i200 pikscla. pa su porasli i zahtevi za
prika;ivanje pokrctnih slika na celom ekranu, narocito u kontckstu visokointeraktiv-
nih !gara. Zbng togajc lnteluveo jos jednu magistralu, iskljucivo za potrcbe gratickib
kartica. Ta magistala je clobiia ime AGP (Accelerated Gmphics Port). Njena prva
vczija. ACJP 1.0. radilajc hrzinom od 264 MB/s, a dohilajc oznaku lx. lako je magi-
strala AGP 1.0 bila sporija od PCI magistral e. bila je namenjena iskljucivo za graficke
kartice. Tokorn godina pojavljivale su sc nove verzije, sve do magistrale AGP .l.O koja
je radii a brzinom od 2.1 GB/s ( Sx ). Na slici 3-53 prikazan jc savremeni sis tern s pro-
cesorum Pentium 4.

I
!
204
Kes memori]a
prvog nivoa
Kes mernorija
drugog nivoa
3: Nivo digitalne
Glavna
rnemorija
Slika J-53. Struktura ralun:na ;.asnovanog na proccsoru Pentium 4.
U ovakvoj urgani;:aciji centralno mesto ;:auzima cip za prcmoscavanje. On pu-
ve;:uje pet glavnih delova sistema: pmcesor, mcm1riju. gralicku karticu. ATAPI kPn-
trokr i PC! magistralu. U nckirn slucajevima. on podr:l.ava i mrl'lnu karticu i druge
uredaje vdike br;.ine. Spori uredaji su prikljuceni na PC! magistr:ilu.
Cip za premoscavanje je internu podeljen na dva del a: na memorijski ina ubzno-
-izlazni most. mmt povezuje procesor s rnernorijom i s gralickilm karti-
com. Ulazno-izlazni most direktnim rncdusobnim vezama poveLUJC AT\ I'! k.mtrolcr.
PC! rnagistralu i (opciono) druge hr;e ulazno-izbzne uret!aje. Ova elva musta su
rnedusobno povezana veoma brzom vezom.
PC! magistral a je sinhruna, kao i sve PC magi,trale unazad dt> prvnhirnog IBZ'vl-
-ovog PC racunara. Sve transakcije na PC! magistrali udvipju izmc:llu glavnog
uredap- inicijatora. i pudredenog uredaja- cilja. Da bi srnanjio bruj vodova na
PC! magistrali, adresc i pudaci sc multipleksiraju na i-;tim vociov ima. Zatu su na PC!
karticama potcbne samu 64 no/.ice ita i za pocbtL:. iako PC!
podr/.ava 64-bitnc adrese i 6-1--bitni prenos puJatab.
Multipleksiranje adresa i podataka <)bavlja se na slcdeei nacin. P:i operaciji citania.
gl3vni ureLtaj tokom ciUusa l postavlja !let mag1stralu. li cikluO'LI :2. g:Llvni ure-
daj povlaci adresu i oslohada magistralu taku da je mo:.c kuristiti p<xircdeni uredaj. U
ciklusu 3, podrcckni uredaj trazene podatke. Pri Dperaciji up1>ivanja. glavni ure-
daj ne mora cla oslobada magistralu jcr un 'tavija adn:su i pudatke. Bez obzira na
3.6 !'rimeri magistrala 205
svc, za transakciju uvek su potrebna tri ciklusa. Ako podredeni urcdaj nc
moze da odgovori unutar tri ciklusa, on rnoze da umece stanja ''ckanja. Dozvoljen je i
prcnos blokova neograniccne vehcine. kao i vise clrugih tipova ciklusa magistralc.
Arbitriranje PCI magistralom
Da hi koristio PC! magistralu, uredaj mora najpre daje prcuzmc. Za arbitriranjc na
PCI magistrali koristi se ccntralizovani arbitar magistraie. kao sto je prikazano na sli-
ci 3-5-1-. Arbitar magistrale je u najvccem broju ugraden u jcdan od cipova
za prcmoscavanjc. Svaki PCI uredaj ima dva namenska voda koja ga spajaju sa arbi-
trom. Jedan od njih (REQ#). koristi se za pri:.tupa magistrali, a drugi
(GNTII). prihvata dot:vole za preuzin1anje magistrale.
PCI
arb1Ur

u.J
a:
PCI
,..
f-
z

uredaj

u.J
cr:
PCI

f-
z

uredaj
Stika 3-5-l. Net I'Cima:;isirali koristi .se centraliznvani arhitar.

u.J
cr:
"'
f-
z

PCI
urectaj
Kada zahteva kuri;cl.'njc magistrale. PC! uredaj (ukljucujuCi i procesor) saljc si-
snal FU)H i ceka arbitar posalje sign eli Ci'O:T#. Cirn se to dogudi, uredaj moze da ko-
risti mc:gistra!u vee u slcdcccm ciklusu .. \lguritam koji koristi arbitar nije dcfinisan
PC! specitikacij<llll. Do1voljenu je c:ikliC:nu dodcljivanje pristupa, dodcljivanje pri-
mlpa prema prioritetu. kao i drugc scme . .iasno. dobar arbitar treba daje i pravican
- nc '>11lc usiaV!Jclti nckc ctreLtaje LLl vecnu Cekaju na pristup.
DPZ\\1!a za pnslupallJC vazi :-.amo ,:a_j.;dnu transakciju. premdaje duzina transak-
cijc tL'IH"ij'ki Aku uredaj /ell da ohav i drugu transakciju, a niko drugi
ne nhtcq pristup magi.,traii, llll tu muLL' pollllvo da uradi, iako cesto izmedu uza-
stopnih mora d:l usld\ i jcdan prcll:an ciklus. U posebnim okolnostima,
LiLLI ncma !lctdmetanja magi:,tralu. un:daj mo.l:e Ja obavi transakcije jednu za dru-
gom ne prnpustajuci tai ...:iklus. ,\kn uredaj koji je preuzeo magistralu obavlja
ver,ma prenu\. a un:Lbj tadct pristup, arbitar moze da ponisti signal
Od trc:nulihl):' kmi'inika ma;istn!e t'cek.u.Je se da nadglcda vod GNT#, pa kad
utv:di dajc ,ignai na n.Jemu u .->kdecem ciklusu treba da oslobodi rnagistra-
lu. Ov:1kva ;ema tlm,cgLh.'ava ctu:; i nerrcL,!an prenos podataka (sto je etikasno) kada
samo jcdan u.'esnik 1.ahte\ a lllctg;:.lialu. ,di istuvremeno omoguc'ava i brzu reakciju
sistema na zaht-:\e k()nkurentnih urcdajcl.
.,.
206
Poglavlje 3: Nivo digitalne logike
Signali PCI magistrate
Na PCI magistrali su, kao sto se vidi na slici 3-55(a), mnogi signali obavezni, ali
ima i mnogo neobaveznih, kao sto prikazuje slika 3-55(b ). Preostalih 120 ili l iz-
voda koriste se za napajanje, uzemljenje i druge srodne funkcije koje ovde ne nahra-
jamo. U stupcima G/avni (inicijator) i Sporedni (cilj) navedeno je koji uredaj salje
signal pri normalnoj transakciji. Ako signal salje neki drugi uredaj (npr. generator
rad:mg takta), oba slupca su prazna.
')pisimo ukratko svaki signal PCI magistrale. Poceeemo od obaveznih (32-bitnih)
sig1ala. a onda cemo preci na opcione (64-bitnc) signale. Signal CLK daje takt magi-
strati. Veeina drugih signala sinhronizovani sus njim. Za razliku od ISA magistrate,
transakcija na PCI magistrali ne zapocinje na pocetku ciklusa, vee kod silaznc ivice
signala CLK koja se nalazi u sredini ciklusa.
Trideset dva signal a AD predvidcna su za adresiranje i prenos podataka (za 32-hit-
ne transakcijc). Adresa se smeiita na magistralu tokom l. a podaci tokom
cildusa 3. Signal PAR je hit parnosti za signale AD. Signal c/BE# ima dvc ratlicite na-
mtne. u ciklusu l on sadrzi komandu magistrali (citaj jednu rec. citaj hlok itd.). u
2 on sadrzi 4-bitnu bitmapu koja ukazuje na tra7.ene bajtove u 32-hitnuj reci.
Pcmoeu signala c/BE# mogu se procitati iii upisati I, 2 ili 3 bajta. kao i citava rcc.
Signalom FRAME# trcnutni vlasnik magistralc zapocinje transakciju. Tim signal om
on saopstava poclrcdcnom urcdaju da su adrcsa i komande magistrali sada potpunu u
re,.Ju. Pri citanju se ohicno, uporedo sa signalum salje i signal IRDY#. On
mnacava daje glavni uredaj spreman da prihvati poslate podatke. Pri upisivanju, sig-
nd IRDY# saljc se kasnije, kada SU podaci vee na magaistrali.
SignaliDSEL ima veze sa cinjcnicom da svaki PCI uredaj mora imati kontiguracio-
ni prostor od 256 hajtova koji mugu da citaju drugi uredaji (slanjcm IDSEL).
Ovaj kontiguracioni prostor sadr?j svojstva urectaja. Operativni 'istemi koji podrh-
vaju tehnologiju Plug-and-Play, tj. automatski prepoznaju i kontigurisu nove perife-
ri,skc uredajc, upravo u ovom konflguracionom prostoru uredaja pronalazc njcgova
s''Ojstva.
Sada dolazimo do signala koje salje podredeni uredaj. Prvim od njih (DEYSFL#). on
oojavljuje kako je postavio svoju adrcsu na AD vodove i spreman jc da ucestvuje u
uansakciji. Ukoliko sporcdni urcdaj ne posaije signal u odredenom vre-
mcnu. glavni uredaj nclustaje od transakcije jcr prctpostavlja da adresirani urec1aj
1jjc tu i li jc neispravan.
Drugi signal knji salje spuredni urcc1aj jc TRDY#. Njimc sporeclni uredaj prilikom
citanja objavljuje da su pmlaci na AD vodovima, a pri upisivanju da jc spreman da
rrihvati podatke.
Sledcea tri signata sluzc za i1vestavanje o greskama. Signal STOP# salje sporcdni
uedaj kada se dcsi nesto nepredvideno. saopstavajuei da zeli da prekinc transakciju.
Signalom PERR# izveiitava sc o pogresnoj parnosti podawka u prethmlnorn ciklusu.
\ljega pri citanju salje glavni urcdaj. a pri upisivanju sporedni. Uredaj koji ga primi
;reba da preduzme odgovarajuee mere. Na kraju. signalom SERR# izvestava se ogre-
;kama pri adresiranju i o sistemskim grcskama.
3.6 Primeri magistrala
207
i Voctovi
[- -- - - - t - --
' CLK : 1
"32-
1 PAR
1-- -
I GiBE


f1F:lov#
I
[10SEL -.
. DEVSEL# 1
I - -

l -
I STOP#
IPERR#
f-
]SERA#
I


I Signal
.RE064#
'ACK6<1#
AD
1 PAR64
f ClBE#
; LOCK
SBO#
SDONE
1INTt
JTAG
M66EN
r-
.1
11
I
! 1
i
1
1
,1
'
_l Vodovi
1
]2
32
I
11
14
]1
11
:1
4
5
Glavni
1
Sporedni
-r-
-l X
-+
-ix
I

I
--1 ..
IX
!
Radf1i_takt MHz) _______
_ _______ 1
Bit parnosti adrese iii podataka l
_( _ b_a_Jto_v_a ___ l
't Oznacava da su poslat1 s1gnal1 AD 1 C/BE
----- -- --- - --- - --- -----1
C1tan]e glavn1 uredaJ ce pnhvat1t1 podatke,
l
upiSIVanJe: podac1 postoJe
Bira se konliguracioni prostor umesto memorije
--- t--- ---- ------- -
I Sporedn1 uredaJ Je dekod1rao svoJU adresu
'__ f 1 _ _ __ __
1 C1tan]e: podac1 posloJe; up1s1vanJe: sporedni
: uredaj ce prihvatiti podatke

zeli da --
transakciju
+Primalac je otkrio gresku parnosti u podacima
I
Otkrivena greska parnosti adrese iii sistemska
greska
1
se
-1 - - - - - -- -
I Arbitriranje dodeljivanje pristupa
j - - - - -- -- .. -
Ponovno pokretanje sistema i svih uredaja
(a)
-
I Glavni i Sporedni
I - ...
i Opis
! X
:x
X
, X
X
IX
j
. Dozvoljena 64-bitna transakcija
[ iii
Parnost za dodatna 32 bita adrese iii
podataka
Dodatna 4 bita za oznacavanje trazenih
bajtova
Zakljucava magistralu zbog vise uzastopnih
I transakcija
I - - -- --- -- -
Pristup udaljenom kesu (za multiprocesore}
-- --
! Prisluskivanje obavljeno (za multiprocesore}
1 ----- -- - ---- -- --- - ---- - --
Zahteva se sistemski prekid
I JTAG signal za testiranje prema standardu
IEEE 1149.1
I
Vezano za napajanje iii za uzemljenJe I
(66 MHz iii 33 MHz} . !
(b)
!
I
Slika J-55. (a) Obavczni signali PCI magistrak. (b) Ncobavczni signali PCJ magistralc.
Tn
i
I
208
Poglavljc 3: Nivo digitalnc logikc

Pomocu signala REQ# i GNT# obavlja se arbitriranjc na magistrali. Njih ne koristi
tekuci vlasnik magistrate, vee uredaj koji to zeli da pm.tane. Poslcdnji ohavczni signal
je RST# i njime se punuvo pokrecc citav sistem tako sto korisnik pritisne taster RESET
ili sistem ohori i ponovo pokrene neki uredaj koji je pretrpeo nepopravljivu gresku.
Ovaj signal vraca sve urel!ajc u pocetno stanje i ponovo pokrccc racunar.
Stigli smo do neobaveznih signala, koji se uglavnom ticu prosirivanja sa 32 na 64
bita. Signali RH)6-l# i ACK!l-l# omogueavaju glavnom uredaju da trazi dozvolu za oba-
vljanje 64-bitne transakcije i dozvoljavaju sporcdnom urcdaju da takvu transakciju
prihvati. Signali i\D, PAR6-l i c/HE# samo su 64-bitnc verzije odgovarajucih 32-bitnih
signctla.
Narcdna tri signata ncmaju vczc s prosirivanjcm 32-hitnog u 64-bitni prcnos, vee
s multiproccsorskim sistemima koje PC! pluce nc moraju obavczno podrzavati. Sig-
nal LOCK ornogucava L:akljueavanjc magistrale da bi se prcko nje ubavilo vise tJLasto-
pnih transakcija. Slcdcca dva signata udnosc sc na prisluskivanjc magistrate u cilju
odrzavanja usaglascnosti kcsa.
Pomocu signala lNTX zahtcvaju sc sistcmski prckidi. PCl kartica moze imati do ce-
tiri zascbna logiCJ.,a urcdaja, a svaki od njih mo/.c da ima zascban vod za zahtcvanje
prckida. Signali JL\G sluzc za JTAG testiranjc prcma standanlu IEEE
1149.1. Na kraju, signal rvt66EN vczanjc direktno za napajanjc i li za uzcmljenje, cimc
sc bira takt magistrale. On se tokorn rada sistema nc sme mcnjati.
Transakcijc na PCI magistmli
PC! magistralajc veomajednostavna (kao i sve magistrale). Da histc stckli
holji utisak o njenum radu, pogledajte na slici 3-56 rcdosled dogadaja na njPj. Prvajc
transakcija citanja, iza koje sledi jcdan prazan ciklus, pa transakcija upisivanja kuju
ohavlja isti glavni uredaj.
Kada tokom ciklw;a T l pocnc da opada signal radnog takta, vlasnik magistralc po-
stavlja memorijsku adresu na AD vudove, a komandu magistrali na vud c/BEil. Putum
salje signal L<l zapocinjanje transakcije.
Tokom ciklusa T
2
, glavni uredaj oslobada rnagistralu da bi je mogaD prcuzcti spo-
rcdni uredaj tokom ciklusa Tl- Cilavni urcdaj rncnja i signal c/HE# u skbdu s bajtovi-
ma adresiranc rcci.
U ciklusu T
1
. sporedni uredaJ salje signal DEVSEL# glavni uredaj da
je dnbio adresu i da namerava da odgovnri. On smcsta podatkc na . .'..ll y,Jclove i tu
potvrdujc saljuci signal TRDY# glavnom uredaju. Ako sporedni urcdaj nc 1111J:I.c da 11d-
govori tako brz11, once poslati signal DEVSEL# da objavi svoje po:,tojanjc, ali cc se
uzdr?.ati od slanp signata TRDY# svc duk ne bulle imao spremnc podatJ,e. Takvim pu-
stupkom umccc se jed no ili vise stanja cekanja.
ll primeru (a cesto i u stvarnusti l. slcdeci ciklus je pra1an. Poccv si , ,J c:ik.lu-
sa T
5
, vidimo da isti glavni uredaj zapocinje upcraciju upisivanja tAn b1': obic-
no, na magistralu smdta adresu i kumandu.
Ipak, sada u drugom ciklusu on salje i podatkc. Pus to urcdaj postav lja sign,tle
na AD vodpvc, nep,ltreban jc prazan ciklus u komc sc menja vlasnik l'
ciklusu T7, memorija konacno prihvata podatke.
3.6 Primed magistrala
C/BE#
FRAME#
I ROY#
DEVSEL#
TROY4
I

1
Citanje
I . I
- - T2 T3
. - I
209
Ciklus magtstrale
Pauza --- - -- UpisivanJe---
-T5--I- T6-- -j-
I
Stika J-56. Primcri na PC! rwtgistrali. Prva lri ciklusa kuriste se opcraciju
ntim :;kdi prazan ciklus. pa tri ciklu.sa upisivanja.
3.fd Magistrala PCI Express
lak'J jc PCl magistr,tla dovoljna 7a mnogc savrcmenc aplikacijc, potreba za veeim
ulanw-izhvnim propusnim Ppsegomnapra,ib je hao.s od nckada ciste interne PC arhi-
tckture. Sa slikc ."\-53 jcNlO sc vidi da l'Cl magistrala nijc visL' centraini elcmelll koji dr.li
na olsupu "c dcluvc PC ra(unara. Tu ulogu jc: t'd nje prcu/eo cip ;a premoscavanje.
Sustina prnhleill<i JC to ima _,\c urcdaja koji su prebrzi za
PC! magi-.;tralu. Pt)\ c'C:l\anje radnog takta magistralc nije dohro jcr se tada
pruhlemi ,a asimctricnuscu njcnih vodrva, prcslu;:wanjem izmedu su-
scdmh vmluva i ci"ektinld kapacilivnosli. Kad gml sc pc)javi ncki ulazno-izlazni urcd,tj
koji je brz za PC! tkau ;ru -.;u grafick.a kartica. cvrsti disk, mrc:!.a
itcl.). lnll:l uvom ciru za prcrnoscavanjc doda_1c nuv -,pcciJCdan prikljucak kaJ,o bi se
urcdctJU omogucilo da zaohick Jasn,J jc da ni ovakvo rdenje nijc du-
gog veka.
Drugi problems PCl jestc t11 ;to su kart icc t:a nju prilicno velikc. One
IIC 111Ugu cia Sl? ',111\Cste U f'!"CllllSivc i d/:cpnc r:tcunare. a pmit"VoJal"i bi zark.o zeJeJi da
prave m:mjc racutwrc. bto ncki pwn-\1daci hi hteli da pteurcdc PC racunar
tako da pruccsl)r i me:n,Jriju -,ta\'' umalutatvurc'ilU kutiju, a Lvrsti u monitor. Uz
PC! karticc taho nije moguc'c.
210
Poglavlje 3: Nivo digitalne logike
Predlozeno je vise resenja, ali se ono koje najvise obecava (i to s pravom, jer iza
njega stoji Intel) zove magistrala PCI Express. Ona ima malo toga zajednickog s
PCI magistralom (u stvari, uopste i nije magistrala), ali Intelov marketinski tim nije
dozvolio da dobro poznato ime ,PCI magistrala"' nestane tek tako. PC racunari koji je
sadrze, vee neko vreme su na trzistu. Pogledajmo sada kako ona radi.
Arhitektura magistrale PCI Express
Sustina rdenja koje donosi PCl Express jeste da se napusti paralelna magistrala s
mnogo glavnih i sporednih urcdaja ida se ide na direktno serijsko povezivanje urecta-
ja brzim vezama. Ovakvo rescnje je radikalan raskid s tradicionalnom ISA/EISA/PCI
arhitckturom magistrate i konccpcijski mnogo toga duguje lokalnim mre:l.ama, na-
rocito komutiram1m Ethcrnetu. Osnovna ideja je sledeca: PC racunar je sastavljen od
procesora, mcmorije i kontrolera ulazno-izlaznih urcdaja koji moraju biti medusobno
povezani. Tuna scenu stupa magistrala PCI Express u ulozi skretnice (engl. switch)
opste namene koja spaja cipove pnmol'u serijskih veza. Uobicajena konfiguracija
rai:unara s magistralom PC! Express prikazana jc na slici 3-57.
Kes
memoriJa
drugog
nivoa
Uparene serijske veze

Grafrka Drsk Mreza USB 2 I I Ostalo
Slika 3-57. Tipican si.,tcm Lasnovan na magistrali PC\ Express.
Kau sto se vidi na slici. procesm. memorija i kes povezani su sa cipom za premo-
na k.lasican nacin. Novost je skretnica vezana za most ( mozda deo samog
cipa za prcmoscavanjc). Svaki ulazno-izlazni cip ima dircktnu namensku vezu sa
,kretnicmn. Svaka veza ima dva jednosmerna kanala (jedan ka skretnici, drugi od
njeJ. Svaki kana! ima dv<J voda (jedan za signal, drugi za uzemljcnje), cime se obcz-
beduje otpornost na sum tokom brzog prenosa. Za razliku od postojece arhitckture,
ova sledi mnogo ravnomerniji model u kome se svi uredaji ravnopravno tretiraju.
3.6 Primeri magistrala
Arhitektura magistrate PC! Express razlikuje se od arhitekture stare PCI magistrale
u tri glavna aspekta. Ova smo vel' videli: centralizovana skretnica umesto magistrale s
mnogo uticnica i upotreba elegantne serijske veze od tacke do tacke umesto siroke ma-
gistrale s mnogo paralelnih vodova. Tree a razlika je finija. Po koncepciji rada PCI ma-
gistrale, vlasnik magistrale zadaje komandu podrectenom uredaju da s magistrate ocita
rec iii blok reCi. U magistrali PCI Express, uredaj salje paket podataka drugom urecta-
ju. Koncept paketa, koji sadrl:i zaglavlje i korisne podatke, preuzet je iz sveta mrel:a.
Zaglavlje (engl. header) sadrl:i sve upravljacke infonnacije pa nisu potrebni brojni
upravljacki signali koji postoje na PCI magistrali. Korisni podaci (engl. payload) pre-
nose se magistralom. PC racunar opremljen magistral om PCI Express u stvari je mi-
nijatuma mre:Za s komutiranjem pl\keta.
Osim ova tri glavna raskida s prosloscu, postoje i mnogc rnanje razlike koje redom
navodimo. Na pakete se primenjuje k6d za otkrivanje gcsaka koji obezbcctujc vcc'i ste-
pen pouzdanosti od PC! magistrate. Fizicka veza izmedu cipa i skretnice produzena je
(mozc biti do 50 em), sto omogucava deljenje sistema na vise zasebnih celina. Sistcm
jc prosiriv jcr nov urectaj moze da bude i druga skretnica (maksimalno tri skretnice).
Uredaji se mogu prikljucivati i iskljucivati tokom rada sistema. Na kraju, posto su sc-
rijski prikljucci fizicki mnogo rnanji od starih PCI uticnica, uredaji i racunari mogu da
budu mnogo rnanji. Sve u svemu, veliki iskorak posle PC! magistrale.
Protokoli za magistralu PCI Express
Vodeci sc modelom mrel.e s komutiranjern paketa, sistem PC! Express ima svoje
protokole s vise slojeva. Protokol je skup pravila za kornuniciranje izmedu dve stra-
ne. Postoji hijerarhija protokola koji se bavc razlicitim zadacima u razlicitim slojevi-
rna. Na primer, razmotrite poslovno pismo. Konvencijom je odret1eno mesto i saclrzaj
zaglavlja, mesto za adresu primaoca, datum, pozdrav, tckst poruke. potpis itd. To se
moze smatrati protokolom poslovnog pisma. Pored toga, postoji i drugi skup konven-
cija koje sc ticu koverata. npr. njihove vclicine. formata i mesta adrese posiljaoca i
primaoca, mesta za postansku rnarku itd. Ova dva ,sloja" i njihovi protokoli nc zavise
jedan od drugog. Na primer, u isti koverat rnoze se staviti potpuno drugacije formati-
rano pismo i obrnuto. Rasporedivanje protokola po slojevima cini projekat modular-
nim i tleksibilnim, sto se vee decenijama masovno koristi u svetu mreznog softvera.
Novost jc to sto se isti princip ugradujc i u hardver magistrale. Protokoli sistema PC!
Express prikazani su na slici 3-58(a).
Sloj sottvera
Sloj transakcija I Zaglavlje ]_ Korrsni podaci I
SloJ veze !Redni broJ/ ?aglavlje I Korisni podaci I CRC I
Fizrcki sloj LDkvir /Redni brad ZaglaviJe I Korisni podaci I CRC . j Okvir /
Ia) (b)
Slika (a) Protokoli sistema PC! Express. (h) Format pakcta.
pa-------
1
212
Poglavlje 3: Nivo digitalne logike
Analizirajmo pojcdine slojcve miozclo nag ore. Prv i je lizicki sloj. On premesta bi-
tove od posiljaoca ka primaocu preko vcze od tal:kc do tacke. Svaka vcza od tackc do
tackc sastoji sc od jednng iii vise parova jcdnosmernih vcza. U najjednostavnijern
slucaju. za svaki srner postoji jed an par vcza. ali postoje i 2. 4. S. 16 ili 32 para. Svaka
veza ,e t.ovc staza (engl. !une). Broj staza u jednom i clrugom srneru mora biti isti.
Proizvodi prve gencracije moraju podrzavati brzinu prenosa podataka u svakom
smcru od 2,5 Gh/s, ali se ol:ekuje da ta hrt.ina porastc na I U CJiJ/s.
Za razliku od magistrala lSA/ElSA/PCI, PCl Ex pres-.: ncma gc'ncrator radnog tak-
ta. Urcdaji mogu poceti da podatkc Cirn hudu spremni. (h,:kva slohoda ubrzava
sistcm. ali i stvara Pretpostavinm da se bit l kodira naponom od +3 volta,
a bit 0 naponom od () volti. Ako su prvih nekoliko bajtllv:t nuk. kako primalac zna da
prima podatkc kada niz bitova 0 izgkJa isto kao i ncak.tivna \e!.a'! Problem je rdcn
takll sto je primcnjcnu kodiranjc ShilOh [L'ngl. 8h/ I (}/J 1'/lt'Odlnc: ). Prcma tnj semi. I 0
bitova sc kmisti za kodiran_1e jcdnog haJla stvarnih podataka u lll-bitni simbol. Od
l 02-+ moguc'a 10-bitna :-,imbola. ta kodiranjc su samo nni unutar kojih se sig-
nal menja dovuljno cesto da po::.iljalac i primalac budu o,inhrunizovani na granici bita
i bcz pusrcLbtva radnog tak.ta. Poslcdica kodiranja 8b/l Ub jestc to da veza nominalnog
kapacitcta 2.5 ()b/s mnz.e da prenesc S<llllO 2 (]b/s kurio,nickih puJat<tka.
D11k se tiJj(ki sloj bavi prclllht>lll hitma, sloj vezc (engl. !inA. !uver) bavi se pre-
lllhl'i11 pakcta. On prcu1.izna Dtglavljc i kmisne podatke koje mu prcJa sloj transakeija
ina njih dudaje rcdni broJ i k.t!d za i:;pr::vlj:lllJL' ;c.rcsaka nazvan CRC (Cyclic Redun-
dancy Check). CRC se gcncrisc obradom 1.agla\lja i korisnih podataka odredcnim
algt>ritnlolll. Kad:t primi pak.el. primal,tc ohav1j:\ isto iaacunavanje sa zaglavljcm i
pndacima i puredi ro.ultat s sc naia1.i u pak.ctu. Ukoliko seta vrcdnost
i rC/u!Ltl izr:tcu!la\ <tnja sluLC, Oil saljc krcttak. pakct za potvrdu ispravnog prenosa
I. udnmviedgnu:nl f!tlt-f.cl'r). i\J...u .ie vredilL"li ne _,]t,/,e. primalac zahteva ponovno
slanje pm.lataka. Na tal nat:in sc integritel pndat:tk.a povecava vise nego u sistemu s
PC! gdc- c.;e puLLtci nc n;.,gu ni pn1\ era\ ati ni punovo lati.
Da br,.:i po;iljaiac nc hi spurog prin1aoca ;Arpao paketima kuje ovaj ne moie da
ubradi. U\'edc'll 111L'hallif,lJI1 kon(ro!c toka it'llgl.j/ow COII/ro/) podataka, StO znaci da
prin1:ti,tc Lk>ckljuj" broJ k.rcJila koji odgovaraju vclicini njegovog
h;ti'cra za prijc'lll pakcta. Kada sc k.rediti ,.potro;c ... PL'Siljalac trcba Ja prckinc slanje
.-.:ve d,,:,. ne jus kredit,L. Z:thv:d.JUJUL'i lpi,anoj 'cmi koja kuristi u svim mre/a-
ma. '!'rtc:tva :.e P'".latab ;:hog lh:sra;:rnere u brzini pnsiljaoca i primaoca.
Slu.i ohrcldujc ,tk:ivnn<ti na magistrali. Za citanje rel:i iz memorije
pnrrehne 'llLhc tr:tns;d<.cije: jeJI:u inic'ira ili DMA kana! kad zahteva podat-
k...:. :t drugu inicira ureda: k.nJi pud,:Lke i'iporucuie. Sloj tr<lllsakeija, medutim. obavlja
vise: :'1tat1_i:t i tqi:,:vanja. Un a tok pakeLt koji mu dolazi ud sloja
vczc. K:H' prvu. "n zthl:':l' svaku stazu cb podc:l1 na najvise ''sam virtuclnih kola. sva-
k.o 1:t Jrugacijtt khtc.u o.;:<nhr:ccaja. Sluj :ransJk.cij,t mozc da oznaci paketc atributima u
skiat!u s ni iht" 1 'Ill ',tdrac:lJiiCm ki .. suni ( npr. visok prioritet. ni1.ak priori tel. ne pri-
,:,,;J,.uj. mu/.c ,;..: prcl-;o i dr. ). mo/.e da koristi skretnica kada
od!t!t:u:e l' tome k.c:ji ce j>:tkct ohr:tdili.
3.6 Primcri magistrala
U svakoj transakciji koristi se jedan od cctiri adresna prostora:
l. Memorijski prostor (za obicno citanje i upisivanjc).
::!. Ulazno-izlazni pmstm (za adrcsiranje rcgistara uredaja).
3. Konliguracioni prostor (za inicijalizaciju itJ.).
4. Prostor poruka (za signaliziranjc. sistemske prckidc itd.).
213
Svi danasnji sistcmi imaju memorijski i ulazno-izlazni adresni prostur. Kontigura-
cioni aJresni prostor mozc se iskoristiti za implementiranjc tehnologija poput Plug-
-And-Play. Adrcsni prostor poruka preuzima ulogu vcCinc dosaclasnjih upravljal:kih
signala. To je neophodno jcr magistrala PC! Express nema upravljal:kih vodova kak-
ve irna PC! magistrala.
Sloj softvera povczujc magistralu PCI Express sa operativnim sistcmom. On
mozc cia emu lira PCI magistralu. sto postojccim uperativnim sistcmima omogucaq
da bcz izmcna raLk s magistralom PCI Express. Naravno. raJom na takav nacin ncec
sc sasvim iskoristiti moguL'nusti ovc magistrale, ali je kompatibilnost sa si-
stcmima nuzno zlo svc clok opcrativni sistcmi ne podcsc da potpuno koristc PC!
lskustvo nas ul:i cia to nwze potrajati.
Tok informacija je prikazan na slici 3-5:--\(b ). Kada se sloju softvera zaJa komanJa,
on jc prosledujc sloju transakcija, koj i je formulise u obliku zaglav lja i korisnih poJa-
taka. Ta dva deJa se zatim prusleJuju sloju vezc koji im sprcda doclajc redni broj. a iza
CRC vrcJnost. Tak.o uvccan paket preclajc sc lizickom sloju koji na svaki kraj Jodaje
informaeije t.a uokvirivanjc i tako ohlikuje tizicki paket koji se stvarno prcnosi. KoJ
primaoca sc obavlja obrnut proccs. pri ccmu se u sloju vezc s paketa skiJaju zaglavlje
j proJuzetak a llll() S[O ()Slane proslcLJUje Se s]oju lransakcija.
Konccpt Jopunjavanja podatak:1 Jodatnim informacijama na njihovom putu niz
slojevc protokola clccenijama sc ' velikim uspchom koristi u ral:unarskim mrdama.
Velika razlika izmcdu rnrcZ.a i PCI Express Jestc to sto je u mrezama kCld
u ra;.licitirn slojevima skoru uvek (cleo operativnog sistema). KoJ magi-
strate PC! Exprc,s, on je potpurw deo hard vera uredaja.
PC! Express jc slozena tcma. infonnacija mozcte naci knd Mayhewa i Krish-
nana. 2003, i koJ Solarija i Congclona, 2005.
3.6.4 Univerzalna serijska magistrala
Magistralc PC! i PC! Expre's Jobrc su za prikljucivanjc periferijskih uredaja vel ike
brzine. ali su prcvise skupo resenjc za prik.ljul:ivanje sporih ulazno-izlaznih uredaja
bo sto su tastatura i mis. Hronoluski pusmatrano, svaki stanJarc!ni ulazno-izl;vni
uredaj spajan jc s racunarom na poscban nacin. pri (emu su ostavljane neke prazne !SA
i PC! uticnicc za povezivanje novih uredaja. Nazalost. takva semajc od samog pocetka
imala brojne mane.
Na primer. svaki fl(JV ulazno-illazni urec1aj l:esto je isporul:ivan sa sopstvcnom
!SA iii PC! k.articorn. Korisnik je ccsto rnorao sam da poddava prekiJacc i kratko-
spojnike na kartici i pazi da paramctri nove kartice nc Jodu u sukob s pustojecim kar-
ticama. Poslc toga je kurisnik morao da otvori kuciste racunara. pazljivo ubaci
r
rr
I
214
Puglavlje 3: Nivu digitalne logike
karticu, zatvori kuCiste i ponovo pokrene racunar. Mnogim korisnicimaje opisani po-
stupak mucan i tesko ga izvode ada nc pogrese. Osim toga, broj ISA i PCI uticnica
,e
0
ma je ogranicen (najcesce dve ili tri). Kanice tipa Plug-And-Play otklanjaju pro-
blem s podesavanjem kratkospojnika, ali korisnik ipak mora da otvara racunar kako
bi ubacio karticu. a broj uticnica je i daljc ogranicen.
Da bi resili opisane problemc, 1993. godine sastali su sc predstavnici sedam kom-
panija (Compaq, DEC, IBM, Intel, Microsoft, NEC i Northern Telecom), s namerom
da smisle bolji nacin prik1jucivanja sporih ulazno-izlaznih uredaja. Od tada se grupi
pridruzilo na stotine drugih kompanija. Rezultat dogovaranja je zvanicno objavljen
1998. godine i nazvan je univerzalna serijska magistrala (engl. Universal Serial
Bus, USB); od tada se USB magistrala primenjuje u licnim racunarima. Njen dctaljan
opis naci cete kod Andcrsona ( 1997) i Tana ( 1997l.
Ncki od ciljeva kompanija koje su zamis1ilc USB magistra1u hili su sledcCi:
1. Ne sme sc dozvoliti da korisnici podcsavaju prekidace i kratkospojnike na
karticama ili uredajima.
2. Korisnici ne treba da otvaraju kuciste racunara kako hi insta1irali nove ulaz-
no-iz1azne uredajc.
3. Treba da postoji samo jedna vn,ta kabla za prikljucivanje svih uredaja.
4. U1azno-izlazni urcdaji se muraju i napajati prcko istog kabla.
5. Trcba omoguciti da se na isti racunar prikljucuje do 127 uredaja.
6. Sis tern treba da podrzava uredaje koj i rade u real nom vremenu (npr. zvuk.
telefon).
7. Urcclaji trcba da budu takvi da 'c mogu dok racunar radi.
8. Treba uk1oniti potrebu da sc racunar ponovo pokrecc posle insta1iranja novog
un;daja.
9. Proiz.vodnja nove magistrate i u1azno-i;:1azni urcdaji za nju ne sme mnogo
kostati.
USB magistrala ispunjava svc nabrojane zahteve. Ona je projektovana za spore
u1azno-iLiazne uredajc kao sto su tastatura. mis, digitalni fotoaparati. skcneri, digital-
ni tclcfoni itd. Vcrzija 1.0 irna propusni opseg od 1.5 Mb/s. sto jc dovo1jno za tastaturu
i misa. Vcrzija 1.1 radi brzinom ocl 12 Mb/s, sto je dovoljno za stampace, digita1ne fo-
toaparatc i mnoge clrugc urcdaje. Ovako niski propusni opsezi su izahrani da bi tro-
skovi proizvounje hili mali.
USB sistcm se :,a,toji od osnovnog cvorista (engl. root huh) kojc se prikljucuje na
glavnu magistralu (slika 3-52). ima uticnice za kablovc koji vode do ulazno-
izlaznih ureL1aja iii do cvonsta za prosirivanje. pa se dobijaju dodatne uticnice. Zhog
toga topo1ugija USB sistema 1ici na stablu ciji je koren- osnovno cvoriste- u racu-
nanL Kahlovi kojima sc uredaji spajaJu sa cvoristem imaju razlicite utikace na krajc-
vima: stoga korisnik nc moze slucajno spojiti clvc uticnice na cvoristu.
3.6 Primeri magistrala
215
Sam kahl ima cctiri zice: dve za podatke, jeclnu za napajanje ( +5 volti) i jednu za
uzemljenje. Sistem signalizacije prenosi digitalnu nulu u trenutku promene napona, a
digitalnu jeclinicu kada takve promene nema, tako da dugacak niz nula generise regu-
laran tok impu1sa.
Kada se utakne nov u1azno-iz1azni ureclaj, taj dogadaj cletektuje osnovno cvoriste i
salje sistemski prekid operativnorn sistemu. Opcrativni sistern tada ispituje urec1aj da
bi ga identifikovao i utvrdio koliki rnu je propusni USB opseg potreban. Ako operativ-
ni sistem utvrdi da postoji dovoljan propusni opseg za racl uredaja, on mu dodeljuje
jedinstvenu adresu ( 1-127) i zajedno s clrugim pararnetrima prenosi je u konfiguracio-
ne registre uredaja. Na taj nacin se nov uredaj mozc clodati u hodu, pa sc korisnik ne
bavi kontigurisanjem niti umece novu ISA iii PCI karticu. Neinicijalizovane kartice
pocinju od adrese 0. tako da se ipak mogu adresirati. Zbog jednostavnijeg kabliranja,
mnogi USB ureclaji imaju ugradena cvorista koja prihvataju dodatnc USB ureclaje. Na
primer. monitor moze da ima dva dodatna prikljucka za levi i desni zvucnik.
USB sistcm se logicki moze posmatrati kao skup kanala za protok bitova od osnov-
nog cvorista do ulazno-izlaznih uredaja. Svaki urcdaj svoj kana! moze da podcli na na-
jvisc 16 potkanala i da ih nameni razlicitim tipovima podataka (npr. audio i video
zapisima). Unutar svakog kanala iii potkanala podaci tcku od osnovnog cvorista do
uredaja iii obrnuto. Ne postoji direktan saobracaj izmcL1u dva ulazno-izlazna urec1aja.
Na svakih I ,00 0,05 ms osnovno cvoriste emituje nov okvir da bi svi uredaji bili
sinhronizovani sve vremc. Okvir se vezujc za odredeni kana! i sastoji se od paketa, od
kojih prvi upucuje cvoriste uredaju. Slcdcci paketi istog okvira mogu takodc ici u
istom smeru, ali i u suprotnom- od uredaja ka osnovnom cvoristu. Niz od cetiri ok-
vira prikazan je na slici 3-59.
Prazan hod
l OkVIf 0
,\ ,/
'
'
' '
'lsoF(
Paket podataka
ad uredata
Vreme (rnsec)
r OkVIf 1
1
' '
/: Paketi ad '
/ Cvori_S_ta \
, . I .. ,
I II DATA
',
,/ ',
PID I PAYLOAD I
CJGW2 .. I
:\
'
\lsoF(
'
'
'
3
j Okvir 3 I
,: '
/ : Paketi ad \
,' osnovnog CvoriSta \

' "(
/ /',
,/ Od uredaja ',,,
I;:NI Pto I PAYLOAD I
Slika 3-59. Osnovno cvoristc USB magistralc saljc oi-, virc svakc: milisckunJc:.
216
Poglavlje 3: Nivo digitalnc logike
Na slici 3-59 vidi sc Ja u okvirima 0 i 2 ncma nikave pa ih ispunjava
samo pakct SOF (Start of Frame, pocctak okvira). Taj paket se uvek emitujc svim
urcdajima. Okvir 1 je poziv (na primer, zaht<Cv skcneru Ja posalje bitove koje je pro-
nasao na slici koju skenira). U okviru 3 isporucuju se podaci nckom urcdaju (na pri-
mer, stampacu).
USB sistem podrzava cetiri vrste okvira: upravljacke, iwhrone. masivnc okvirc: i
okvire za prckidanjc. Upravljacki okviri sc koriste za kontigurisanjc urcdaja. 1:1 k,l-
mandovanje urcdajima i za ispitivanje njihovog statusa. lzohroni okviri su n,tnll.:nj_ni
urectajima koji racle u rcalnom vremcnu (npr. mikrofunima, zvucnicima i tclc(,Jnima
koji trcha da primaju ili da salju podatkc u tacnim intervalima). Kod njihje kasnjcnje
sasvim prcdvidljivo. ali buclc li grdkc. nema ponovnog slanja podataka. Masivni ok-
viri slu7.e za prenos vel ike kolicine podataka u komunikaciji sa urcc1ajima kuji ne rack
u rl'alnorn vn:mcnu lnpr. stampaci). Na kraju, okviri ,r,a prckidanje su ncophmlni jer
USB sistem nc pmlr7ava sistemske prckidc. Na primer. umcslo da tastatura izaL.ove
sistcmski prekid kad gml sc prilisnc taster. opcrativni sistcm jc mo/.e ispitivati svakih
50 ms da bi prikupio cvcntualnc zaustale pritiske.
Okvir c;c sastoji odjcdnog ili viSL' paketa ( hiti poslati u oba smera).
cetiri vrsk pakcta: :l.ctnni (tokeni). pakcti s pmlacima, pakcti 7a usagLt;avanje i spc-
.:ijalni paketi. Zctt,ne uredaju salje osnovno cvmistc i oni sluze za upravljanjc
mom. Pakcti SOF li\ i OUT na sliei 3-5') jesu ,(cLoni. Pakct SOF (Start of Frame) prvi
jc u 'Yak.om okviru i t>!nacava pocdak ukvira. i\ko u tomtrcnutkuncma sta da sera-
di. pakct SOFjc i jedini okvira. :!cton IN jc poziv urcdaju da pnsaljc odrcdcne
pudatk.e. PoiJima u p:tketu IN idcntilikllJC .,c tni.Lni Llllal t:d.;.u da urcdaj wa koje
pmL!ikc trek! da (ul-;t>liku lll1a vise istU\ rc'lllL'llih tok<)\ia pt1d<ttaka). Zctonom
OUT utTLlaju se n:tjCJvljuju pudaci ).;()ji C'ctvrti lClclll, SLTl-P (ni_je na slici).
slu/i za
O'illl 7ctun:t. p<l,IPJC J<'S tri H'll' p:tketa. Tq su paket DAL\ (7a prenusenjc du
G..J. haJ(a podat:tk:t u bi J,) kum stncnt J, P":-:et /a ctnje i pakt:ti. Fonnat
pakcta 1.a podat:,:e priLt/:111 F !U slici .1-5'cl. On .-:adr/.i X-hitn<l polj: Ll sinhronizaciju.
f-:-hitn<> puljc ;a tip !'aketa (1-'!Di. kun.snc P'Jd:ttkc: i 16-bitili CI<C !Cyclic Redundan-
r.v Check i k\Ki 1:1 otkriv:mic Dc:linisat<c> su tri vr:,tc p:tkcta 1.:1 usaglasavanje:
. \C K \ ll7.n,tca v .1 da jc l'rctl1lld:Ji pakct s podaci ma ispravnn pnmljcn1. N ,\ K ( otkri veno
.JC nc:,!:tc:anJe k,)l!:tl i ST\LL (mnlit<l. :,::cckajtt: -- upr.tvo ndtu duvrsavam).
l'c>gkdajmu pt>!lllV\\ sl:ku 3-)Y. C'v,lristc mon sv-akc milisckundc poslati okvir.
cak i kaJa n.:ma pt,>ia. Okviri 0: :.'. -.aJrzc: samu pak<:t SOF. sl<l cia tada nijc hilo
radi. Ub ir l jc' pn;i\. IH i'''cinjc pakdima SOF i IN od racunam ka ul<uno-
-izLunum urc:daju. il''')c -;]cdi l'tkc: 0.-\L\ <ld urcdaj . .t ka racunaru. Pakctolll
\C:K ur.:da.Ju s.: da _,u P'''bci <.ligli bo pn>bkma. L: slucaju o'rcskc. urcdaju
bi hit> prslctl :\,\K. a pod.tc:i hi hili [H>novu p<Y.Iati aLo 'll maoi!' ni nc i ako
su i!llhl"<tni). Ok,ir _1 jL pu struktmi slil:an okviru l, osim ::t,J u :Jjcnn: ptldaci teku od
rJL'tliLtra Ll.
lJSI3 s:andarJ d"vr.;,cn i 99<). g(>dinc. oni koji su radi!i na niemu u-;ctili su se
!.apostavl.J..:ni:n. p:< -;u p<h.'t:ii cia ra;vij,ljlllhlVU visPkubrzin:;ku vcrziJll liSB magistrale.
3.7 Povczivanjc
217
nazvanu USB 2.0. Taj standard je sliean starijern standardu USB l.l i kompatibilanJe
s njim. ali uvedena je i tree' a brzina prenosa od 480 Mh/s. Postoje i neke manje raL.like
(npr. interfcjs izmcdu osnovnog cvorista i kontrolera). U standardu USB I .l bila 'u
prcdviclcna dva intcrfcjsa. Prvi, UHCI (Universal Host Controller Interface, univeral-
ni interfejs za kontroler racunara), dugujemo Intelu, koji je vec'i deo tereta prebacio na
projcktantc softvcra na Microsoft). Za drugi, OHCI (Open Host Controller Inter-
face, otvoreni intcrfcjs L.a kontroler racunara), zahvaljujcmo Microsoflu. koji je veci
deo tereta prebacio na projektantc hardvera (citaj: na Intel). U standardu USB 2.0 svi su
se slozili da se primenjuje jedinstven, nov interfcjs nazvan EHCl (Enhanced Host CorJ-
troller Interface, poboljsani interfcjs za kontroler racunara).
Jasno je da USB magistral'( koja sada radi brzinom od ..\.80 Mb/s moze da konk'.t-
rise scrijskoj magistrali prcma standardu IEEE 1394, popularno nazvanoj Fire\Vire.
koja radi hrzinom od 4-00 Mb/s. laku sada gotovo svaki nov Pentium racunar ima ma-
gistralu USB 2.0, standard 139-.J. ncc'e skoro ncstati jcr ga podrzavaju proizvodaci
elektronike siroke potrosnjc. Kamkordcri. DVD plcjcri i slicni urcdaji imace interftjs
I J94 i u bliskoj buducnosti jcr pmizvodacima ovih ureclaja ne pada na pamet da ulccu
u troskove zbog prclaska na nov !>landard koji tesko da jc holji od po,tojeccg. Po-
trosaci takodc ne vole da sc standardi menjaju.
3.7 POVEZIV ANJE
Tipican racunarski sistem nil.e iii srednjc klasc sadrzi procesorski Cip, memorijskc
cipove i nekoliko ulazno-izlaL.nih kontrolera (svi su povezani magistralom). Vee srno
prilicno dctaljno proucili mcrnorijskc cipove. procesore i magistrale. Sada treba Ja
prc,kmu na puslednji dco slagalice- na ulazno-izlazne cipovc. Preko njih racUllar
komunicira sa spoljnim svctom.
3.7.1 Ulazno-izlazni cipovi
Vee postoji veliki broj ulazno-izlaznih cipova, a uvode se i novi. U uobicajene .::i-
pove spadaju LJART. USART. CRT kontroleri. kontrolcri diska i PfO cipovi. UART
(Universal Asynchronous Receiver Transmitter, univerzalni asinhroni primoprcdJj-
nik) jeste cip koji moze Ja prul:ita bajt s magistralc ida ga bit po bit prosledi
vodom terminalu iii dana isti nacin od tenninala primi podatke. UART Cipovi on:o-
gucavaju razlicitc brzine prenosa (od 50 do 19.200 b/s), sirinu znakova od 5 do 8 bi o-
va. 1. I j iii 2 stop bita i proveru pamosti (paran. ncparan ili bez parnosti). USART
(Universal Synchronous Asynchronous Receiver Transmitter. univerzalni sinhro-
no-asinhroni cip. osim svih UART funkcija, ima i mogucnost sinlro-
nog prl'llllSa kada koristi raL.licite protokolc. Posto StllO UART cipovc vee upowali Ll
poglavlju 2. analizirajmo sada paralclni interfcjs kao primer ulaL.Ilo-izlaznog cipa.
218
Poglavlje 3: Nivo digitalne logike
PIO cipovi
Tiptcan PIO (Parallel Input/Output, paralclni ulaz/izlaz) cip jc Intel 8255A, pri-
kazan na slici 3-60. On ima 24 ulazno-izlazna voda koji se mogu povezati s bilo kojim
TTL-kompatibilnim uredajem (na primer, s tastaturom, prekidacima. signalnim lam-
picama ili stampaCima). Najkrace receno, procesorski program moze da upise 0 ili l
na svaki izvod ovog cipa iii da procita njegov status, sto pruza veliku slobodu u pri-
meni. \1ali sistem s procesorom koji ima i PIO cip cesto mozc da zamcni citavu plocu
prcpunu SSI ili MSI cipova, narocito u ugradcnim sistemima.
cs
AO-Al

RO I
-l
RESET---
00-07
Prikljucak A
Paralelni
8
ulazno-izlazni Prikljucak B
cip 8255A
8
,._,._____ Prikljucak C
Slika 3-60. PIO cip
lako procesor moze da kontigurise cip 8255A na mnogo nacina, upisujuCi podatke
u njegove statusne registre, ovclc ccmo se ograniciti na neke jednostavnijc radnc rdi-
me. Cip 8255A najjednostavnijc sc koristi kao skup tri nczavisna 8-bitna prikljucka
(engl. ports): A, B i C. Svakom prikljucku pric!ruzcnje po jedan 8-bitni Icc. Kada zeli
cia p(ldesi vrednost na prikljucku, proccsor sarno treba da upise 8-bitni broj u odgo-
varajuci Icc i broj cc se pojaviti i ostati na izlaznim vodovima sve dok se u Icc ne upisc
cirugi broj. Kada zeli da prikljucak iskoristi za unos podataka. procesor cita mlgovara-
juci lee.
Drugi radni rdimi omogucavaju usaglasavanje vcze sa spoljnim uredajima. Na
primer, da bi poslao podatke urcdaju koji nije uvek sprernan da ih primi. cip 8255A
mozc postaviti podatke na izlazni prikljucak, a zatim ceka povratni signal od uredaja
cia ihje prihvatio i hoce jos podataka. Neophodna logika za gencrisanjc takvih impul-
sa i njihovo stavljanje na raspolaganje procesoru vee sc nalazi u hardvcru cipa 8255A.
lz tunkcionalnc seme cipa 8255A viciirno da osim 24 izvocla za 3 prikljucka on ima
i 8 v,Klova koji se direktno povezuju s magistralom podataka, vod za hiranje cipa. vo-
dovc za citanje i upisivanje podataka. dva adresna voda i vod za ponovno pokrctanjc ci-
pa. Pomocu dva adrcsna voda bira sc jedan od cctiri intcrna registra koji odgm araju
prikljuccima A, B, C i statusnom rcgistru; ovaj poslednji, izmcdu ostalog. sadrzi i hitove
koji odrccluju status svakog prikljucka (upisivanje iii citanjc). Dva aclrcsna vocla su
prikljuccna na najmanje znacajne bitove adresnc magistralc.
3.7 Povezivanjc
219
3.7.2 Dckodiranjc adrcsa
Sve do sada, izbegavali smo pitanje kako se signalizira biranje mcmorijskih iii ula-
zno-izlaznih cipova o kojima smo govorili. Doslo je vreme da to dctaljno objasnimo.
Razmotrimo jednostavan 16-bitni ugradeni racunar koji ima procesor, 8-bajtni
EPROM od 2 KB za program, 8-bajtni RAM od 2 KB za podatke i PIO Cip. Ovaj mali
sistem mogao bi biti prototip ,mozga" neke jeftine igracke iii jeclnostavnog urcdaja.
Kacla racunar pocne da se proizvocli, EPROM bi se mogao zamcniti ROM memorijom.
PIO cip se mozc izabrati na jedan ocl dva nacina: kao pravi ulazno-izlazni ureclaj iii
kao cleo memorije. Ako odlucimo da ga koristimo kao ulazno-izlazni uredaj. moramo
ga birati preko namenskog voda magistrale predvidcnog za rcferenciranje ulazno-iz-
laznih uredaja, a ne mcmorije. Ukoliko odlucimo da ga koristimo na drugi nacin. kao
mcmorijski preslikan ulazno-izlazni urcdaj. tada mu u mcmoriji moramo dodcliti
4 hajta za tri prikljucka i upravljacki rcgistar. Ovaj izbor jc u izvesnoj mcri proiz-
voljan. Opredelicemo se za memorijski prcslikan uredaj jer taj pristup ilustrujc neke
zanimUive dctalje povczivanja ulazno-i,daznih urcdaja.
EPROM-u treba 2 KB adrcsnog prostora, RAM-u isto toliko, a za PIO cip su po-
trebna 4 bajta. Posto je adresni prostor u nasem primeru velicine 64K, moramo razmi-
sliti gde u njemu da postavimo ova tri uredaja. Jcdno od mogucih rdenja prika1.ano je
na slici 3-61. EPROM zauzima adrese do 2K, RAM zauzima adresc od 32 do 34 KB.
a PIO cip zauzima najvisa 4 hajta adrcsnog prostora (bajtove od 65532 do 65535). Sa
stanovista programcra. nije vazno koje se adresc koristc; mcdutim, taj izbor jc vazan za
povezivanje. Ako smo iz.ahrali da PIO cip adrcsiramo preko ulazrm-izlaznog adresnog
prostora, onda za njcga nisu potrcbnc adrcse u mcmoriji (ali c'e zauL:cli cctiri aclrcse u
ulazno-izlaznom adrcsnom prostoru).
EPROM na adres1 0 RAM na adresi 8DOOH PIO cip na adresi FFFCH
/
----


Ml_ L
t

I
l _ _l__ _ I _ L_ I __j
0 4K 8K 12K 16K 20K 24K 28K 32K 36K 40K 44K 48K 52K 56K 60K 64K
Slika 3-61. Lukacija EPROivl-a, RAM-a i PIO Cipa u adrcsnnm prusloru vclicine 64 KB.
Kada se prihvati dodcla adrcsa prema slici 3-61, EPROM bi sc rnogao birati prcko
bilo kojc 16-bitne memorijske adrese oblika OOUOOxx:xxxxxxxxx (binarno). Drugirn
recima, adresa cijih Sll prvih pet najznaCaJnijih hitova nule -;pacia Ll prva 2 KB
memorijc (dakle, odnosi sc na EPROM). Na taj nacin, izvocl za biranje EPROM cipa
mogao hi se puvczati sa 5-bitnim komparatorom ciji se ulazi stalno hardverskim pu-
tcm odr?.avaju na vrednosti 00000.
..

220
Poglavljc 3: Nivo digitalnc logikc
Bolji nacin je koriscenje logickog kola OR s pet ulaz.a koji su vezani za adresne vo-
dove od A 11 do A 15. Rczultat operacije OR bicc 0 samo kada svih pet ad res nih vodova
imaju vrednost 0, cime se generise signal CS (na niskom nivou). Na?.alost. u standard-
noj verziji SSI cipova nc postoji logicko kolo OR s pet ulaza. Najvisc muse priblizava
logicko kolo NOR sa osam ula1.a. Ako njegova tri ula1.a uzemljimo, a itlaz invertuje-
rno. dobicemo ispravan signal, kao na slici 3-61 (a). SS! cipovi Sll toliko jcftini da je
to sto se neelikasno koriste ,macajno samo u izuzetnim okolnostima. Prema konvcn-
ciji. neiskorisceni ulazi sene prikaLUju na t:lektricnim semama.
Isti princip se mozc primcniti ina RAM. Medutim, RAM treha da odgovara na bi-
narnc aelrcsc oblika 1 OOOOxxxxxxxxxxx. pa je potreban elodatni invertor, kao na slici.
Dekodiranje adrcse PIO Cipa ncstoje sloz.cnije, zato sto se on bira pomocu cetiri aelrcsc
oblika llllllllllllll xx. Moguce kolo kojim bi se gcncrisao signal CS samo kada se
na adrcsnoj magistrali pojavi ispravna adresa takodc je prikazano na slici. U njemu sc
logicko kolo OR napaja prekn elva logicka kola NAND sa osam uhv.a. Da bi se izgraJila
logika za dckodiranje adrc?sa sa slikc 3-o2(a) pomocu SS! cipova, potrebnoje sest tak-
vih cipova- cctiri cipa -;a osam ulaza, jedno logicko kolo OR i cip s tri invertora.
Meltutim, aku sc racunar stvamo sastoji sarno od procesora, elva mcmorijska cipa i
PIO cipa. clek.oeliranjc adrcsa mozemo da uprostimo jednim trikom. Koristi sc cinjcni-
ca da u svim EPROM adresama (i samo u njima) najznaeajniji bit Al'i ima vreelnost 0.
Stoga. i;.vml CS mozemo dircktno da povezcmo s voJom A IS. prema slici 3-62(b).
Sada odluka da RAM smcstimo u memoriju poccvsi oel aure.->c 8000H mozda il.-
glcua manjc prnizvuljna. Dckodiranje R/'\M mcmurijc muze se obaviti na osnovu za-
pazanja da sc jeelinc vazecc adrese ublika l Oxxxxxxxxxxxxxx nala!.e ll njoj, tako da
su ;.a dckudiranje elovuljna 2 bita.
Slicno. svaka adresa koja pocinje sa II mora biti adrcsa PlO cipa. }\Jtpuna logika
za dckodiranje sada sadrzi Jva logicka kola NAND i invertor. Pusto se invertor mozc
napraviti od logickog kola N,\ND tako sto muse povezu elva ulaza. jednostavno kolo
NAND vise jc ncgo elovoljno za taj posau.
Logika dekodiranja adrcsa prema slici 3-62(b) zove se parcijalno dckodiranje
adrcsa. zato slo se 1.a nc koristi cela aelresa. Karakteristika takvog deko-
diranja je ela ocitavanje adrese 000 I 000000000000. aurese 000 II 00000000000 iii
adn:-;c 00 I 0000000000000 daje isti rezultat. U stvari. svakom adresom iz donje pn-
lovine auresnog prostora bira se EPROM. Posto se adresc koje ne spadaju u 2 KB
EPROM-a nc koriste. nema stete. ali ako valja napraviti racunar koji bi se u buducno-
sti mogao prosirivati (sto jc malo vcrovatno za decju igracku). treha izbegavati parci-
jalno elckodiranje adresa jer uno zauzima mnogo adresnog prostora.
Druga uubicajcna tehnika za dekodiranje aclresa jcste korisccnjc dckudera (slika
3-13 J. Povezivanjcm njegova tri ula1a s tri najznacajnija adresna voela. dobijamo
osam i1laza koji odgovaraju auresama u prvih 8K, drngih 8K itd. Za racunar sa osam
RAl\1 cipova 8K X 8. duvnljan je jedan dekuder. Za racunar sa osam memorijskih ci-
pova 2K X:-\ takode je dovoljanjedan dckoJer, pod uslovom da su memori_jski cipovi
razm6tcni ujasno podelJcne elclove aelresnog prostnra velicine 8 KB. (Setitc se ranije
napomene ela treba voditi racuna o polozaju memorijc: i ulazno-izlaznih cipova u
adresnom prustl)fll.)
3.7 Pnvezivanje
Ao
Adresna
magistrala
A15
Adres11a
magistrala
A15
[
1
I
L:J
\
v
ll
'v
(a)
Ucs
I "K < 8
I RJl..M
I
lbi
-
I II
I
fl
I I
tJ

L:J
Sliha J-62. f\J) Potpunl) Jckudi!:lllJC (hi Parc:!j;t:no
221
222
Poglavljc 3: Nivo digitalne logike
3.8 SAZETAK
Racunari se prave od cipova sa integrisanim kolima koja sadrze sicusne prekidacke
clemente zvane logicka kola. Najcesc'a logicka kola su AND, OR, NAND, NOR i NOT . .Jed-
nostavna elektronska kola mogu se praviti direktnim kombinovanjem logickih kola.
Us lozenij a elektronska kola spadaju multiplekseri, demultiplckscri, kodeti, dekode-
ri, pomcraci i aritmeticko-logicke jedinice. Pomocu programabilnih logickih nizova
(PLA) rnogu se programirati proizvoljne Bulove funkcijc. Ako je potrcbno vise Bulovih
funkcija, PLA cip je cesto najetikasnije resenjc. Pravila Bulove algcbre mogu se isko-
ristiti za prctvaranje kolajednog ohlika u drugi. Na taj nacin se u vec'ini slucajeva mogu
postici ckonomicnija rcsenja.
Aritmcticke operacije u racunaru obavljaju sabiraci. Jcdnohitni potpuni sahirac
moze St: napraviti od dva polusabiraca. Sabirac visebitne rcci mozc se napraviti pove-
zivanjcm vise potpunih sabiraca tako da se prenos iz svakog sahiraca prosleduje nje-
govom levom susedu.
Komponentc (statickih) memorija su lee kola i flip-flopnvi, od kojih svaki moze da
zapamti jcdan hit podataka. Ovi elcmenti se mogu kombinovati linearno u oktalnc
leceve i tlip-tlopove ili logaritamski u potpune memorijske sklopovc za smestanjc
rcci. lvlemoriju po vrstama mozemo poucliti na RAM, ROM, PROM, EPROM, EE-
PROM i lles memoriju. Staticke RAM mcmorije se nc rnor:.1ju osve.lavati; one cuv:.Jju
zapamcenc vreunosti sve dok jc ukljuceno napajanje. Dinamicke RAM memorije, s
drugc 'trane, rnoraju se periodicno osvezavati da bi se kompenzovalo curenje nahoja
iz sicusnih kondenzatora I1:.J cipu.
Komponcntc racunarskog sistema povezuju se magistralarna. Yec'ina izvoda tipic-
nog pmcesma direktno su povezani s vodovima magistralc. Vodovi magistralc se
mogu svrstati u vodove za adresiranje, vodove za pudatke i upravljacke vouove. Sin-
bronc magistale prate radni takt. Na asinhronim magistralama. glavni i sporedni ure-
daj sinhronizuju sc postupkom potpunog usaglasavanja.
Pentium 4 je primer savremenog procesora. Savremeni sistcmi koji ga koriste ima-
ju menwrijsku, procesorsku, !SA i USB magistralu. PClmagistrala moze istovreme-
no da prencse 64 hit:.J LIZ takt ou 66 MHz. sto je cini dovoljno brzom za skoro sve
perifcrijske urcdaje, :.Jli nc i za memoriju.
Pr.:kidaci, signalne lampice, slampaci i mnogi drugi ulazno-izlazni urcdaji mogu
sc povczati s racunarom pomocu paralelnih ulazno-izlaznih cipova, kao sto jc cip
Oni sc mogu poucsiti tako da po potrehi postanu deo ulazno-izlaznog adrcs-
nog pmstora ili deo adresnug proslora u mcmoriji. Njihove adrese sc mogu potpuno
iii samo parcijalno dekodirati. u zavisnosti od primcne.
Vezbanja
223
VEZBAN.JA
1. Logicar ulazi u restoran i kaze: ,Zelim hamburger iii kohasicu i pomfrit'". Nazalost,
kuvar je napustio skolu u scstom razredu i ne zna da li operacij:.J ,i" ima prednost nad
operacijom ,ili"'. Njemu je to svcjedno. Koji od ponudenih odgovora predstavljaju
ispravno tumacenje narudzbine? (Imajte na umu da cngksko ,ili" znaci ,iskljucivo
ili"".)
a) Sarno hamburger.
b) Samo kob:.Jsicu.
c) Sarno pomfrit.
d) Kohasicu i pomfrit.
e) H:.1rnhurger i pomfrit.
f) Kobasicu i hamburger.
g) Sve to.
h) Nista- logicar odlazi glad:.Jn zato sto sc pravio pametan.
2. Misionar, izgubljcn u Juznoj Kaliforniji, zastajc na raskrscujer sc put kojimJe dosao
grana u dve staze. On 1.11a da sc tim kraJCill muvaju dve grure motociklista, od 1-.ojih
pripadnici jedne uvek govorc istinu, a pripac!nici druge uvck lazu. On zcli da sazna
koja staza vodi u Di!.lli!end. Kakvo pitanjc ce morati da postavi osohi na koju naide"'
3. Pomocu tabcle istinitusti pokazite da jc X= (.\"AND Y) OR (X AND NOT Y).
4. Postoje 4 Hulove funkcije jednc promenljivc i 16 funkcija dve promcnljivc. Koliko
irna funkcija 3 promcnljive"' Kolil-.o ima funkcija od n promenljivih"'
5. Pokazitc kako se funkcija AND mozc konstruisati od dva logicka kula NAND.
6. Pornocu multiplckscrskog cipa s tri promcnljivc: (slil-.a 3-12) rcalizujte funkciju ciji
jc rczultat parnost ulaza, tj. rc?Ldtat jc I 'amo ako jc paran hroj ulaza takode 1.
7. Stavitc svoju karu za rat.misljanjc. Multiplt:kserski cip s tri promc:nljivc (slika 3-12)
stvarno moze da izracuna proizvoljnu funkciju Hulove promcnljivc.
kako, i kao primer, nacrtajte logicki dijagram za funkciju koja ima vrednost 0 ako
engleska rec 1.a broj rcda t:.Jhelc istinilosti ima paran broj slova, :.1 vrcdnost I ako ima
ncraran broj sluva (npr. ()()()() = /.cro = cctiri slova ....._, 0; 0 Ill =seven= pet slov,t ....._,
I; 1101 =thirteen= osam slova ....._, 0). Po11w(': Al-.o cctvrtu ulaznu promenljivu 01-
nacimo saD, osarn ulcllnih vodova moze sc povLzati kao V,-c uzcmljenje, {)iii f5.
8. Nacrtajtc lugicki dijagram 2-bitnog kodera. kola sa cctiri ula;a, mll-.ojih Jc samo jc-
dan uvck na visokom nivou. i dva izlaza cija 2-bitna binarna vrcdnustukazuj..: na taj
ulaz.
9. Nacnajtc logicJ..i dijagram 2-hitnog demu!tiplcbcra. kola s jednim ulab>lll, s koga
sc signal vm!i do jednog ml cctiri iLlaza u Lavisnnsti ud stanja dva upravljacka voda.
I IL Prccrtajtc PLA cip sa slikc 3-15 s dovoi.Jnu dctalja da pokazetc kako .-,c [lUillocu
njega mole implcmentirati logicka funkcip \'('(:ina sa .-dike 3-3. Obavczno prikazitc
vczc kojc postojc u nbc matricc.
224
Poglavljc 3: Nivo digitalnc logike
tt. Sta raui ovu koln''

c
B
"=----o
12. Obican MSI cip radi kao 4-hitni sahiraC. Cetiri ovakva cipa mogu se povt:fati u
lf>-bitni sahirac. Kuliko izvoda ocekujetc na 4-hitnom sahirackom cipu'
1
Zasto'
1
13. ,Y -hitni sahirac mo/.e sc napraviti kaskadnim povetivanjcmll potpunih sabiraca u niz,
pri L'emu prcnos C
1
kuji dula;.i u fam i prcLbtavlja izla.c iz faze i- I. Prcnos C
0
u fazu
0 jc 0. Ako sc u sv akuj f<v.i ;.hir i prcnos gencrisu za T ns, prenos u Lv.u i ncce hili
val..::ci svc du iT ns ml pocctka sahiranja. Za vcliko n, vrcmc polrehno da sc prenos
prohijc do fa;.a na najznac<0nijim po;.icijama mo/.e da postanc neprihvallJivo dugo.
SmislilL' sahirac koji radi brzc. PmnoL': Svaki prcnos C
1
rnuze se izraziti prcko bitova
opcranada A
1
_
1
i U
1
_
1
, i prenosa C
1
_
1
. Preko ovog odnosa mogucc jc ina;:iti Ci u funk-
ciji ulaza u fa;:c ou 0 do faze i- I, tako da se svi prcnosi mugu istovrcmcno gcncrisati.
1-1. r\ko kmm svako logicko kolo sa slike 3-l 9 signal intcrno kasni I ns, a sva druga
Lrsnjcnja sc mugu 1.ancmariti, poslc kog ce se naJkraccg vrcmcna na i.dam sigurno
pojaviti ispravan hit''
15. i\LU sa slikc 3-20 mo,'c da obavlja h-bitno sahiranje u komplementu broja 2. Mozc
li kolo ida ouu;:ima u komplcmcntu brop 2'> Akomo,'c, objasnitc kaku kolo to radi.
Ako nc llHJLC, inm:nitc ga taku da muze da obavlja odu;:imanjc.
I 6. Scsnac:stohitna aritmericko-logicka jedinica napravljena jc od 16 1-bitnih aritmctic-
ku-logickih jedinica, nd kojih svaka sabira dva bit a za I 0 ns. Ako >C pri prcla;u iz
jcdnc u drugu aritmeticko-logicku jcdinicu izgubi .JOS po l ns, k(Jiiko cc vn:mena
proteci dnk se kao ru.ultat nt: pojavi 16-bitni zbir''
17. Pom:kadjc kori,no da h-bitna aritmc:ticko-logicka jcdinica, slicna onoj na slici 3-20,
komtantu -I. Prcdlo/ite dva razlicita nacina da .sc mo izvedc. Za svaki od
nacina naveditc vrednosti upravljackih signala.
18. Sta je stanjL' miruvanja ula;:a SiR u SR. lee napravljcn ml dva logiCka kola N.'\NlY'
19. Kulo sa slikc J-26 je llip-tlop koji se aktivira uzlaznom ivicom signala radnog takta.
lzmcnite kolo tako da se tlip-llop aktivira silaznom ivicom signala radnog takta.
20. i'vlcmmija 4 x. 3 sa slike 3-2'! itna 22 logicka kola AND i tri logicka kola uR. Ako hi
mcmorijsko k.Piu trebalo prosiriti na 256 x 8. koliko hi jcunih i drugih logickih kola
za tu hilo potrchno>
21. Da bistc isplallli svoj novi racunar. nudite savetodavnc uslugc proizvodacima SS!
cipova ko)i tck ulazc u posao. Jedan od vasih klijcnala razmislja dana zahtcv polt:n-
cijalno va2.nog. kupca napravi cip sa cetiri D tlip-llopa, od kojih svaki ima i (1 i Q
izvod. L! prl'dlozcnum prujcktu sva cetiri signala radnog takta puve;ana 'u zajcdno,
takmk na zahtcv kupca. Ne pustojt: izvodi ni za aktiviranjc, ni 1.a deaktivirmic cipa.
vi treba da date profesionalno misljcnjc () projcklu.
. '
i
!


:
I
' :;
.
'
I




' I
j
_1i'r
:a,
I
, I
'

,if. I


"X'-"

iM:
'1:'1'
i'
-!
j\t_

I
3,

..
:,-..
.-.:-
: i
r I .
Vdhanja
225
22.
23.
24.
25.

Sto se mcmorije smdta najcdan cip, rastc i broj izvocla potrebnih ;:a njcno adre-
siranjc. Cesto nijc zgouno da cip ima mnogo adrcsnih izvoda. Smislitc nacin da
adrcsirate 2" mcmorijskih reci pomocu manjc ou n izvoda.
Racunar s magistral om sirine 32 bita koristi memorijske cipovc s Jinamickorn Ro\M
mernorijom kapaciteta IM x I. Koliku n1inimalno mcmorijc (u bajtovima) mo?.e da
ima ovaj racunar?
Osvrcuci se na dijagram vremenskog sleda dogadaja sa slike 3-38, prctpm.tavimo da
ste takt usporili sa prikazanih 10 na 20 ns, ali da su vremenska ogranicenja ostcrla
ista. Koliko u najncpovoljnijcm slucaju u-cba vrcmena da memorija izbaci podalke
na magistralu tokorn ciklusa T
1
nakon popve signala MRE<:i ?
Vracajuci sc jed nom na sliku)-JS, prctpostavimu dajc takt i dalje 100 i\HL-:. ali
da sc vremc TDs povecalo na 4 ns. Mugu li se koristiti memorijski C:ipovi s vrcmc-
nom pristupa od I 0-ns'l
26. Na slici 3-38(b) prikazanujc da vrc:mc: TiVIL treba da hudc najmanje .'l ns. Mo!ctc li
zamisliti cip u komcjc to vrcme negativno'-' Poschno odgovorite moz.c li procesm da
pnsaljc signal MRE() pre ncgo adrcsa postanc slabilna'.' i\ko mole, ako nc:
moze, zasto''
27. Pretpostavinm da sc prcnos hluka na slici 3-42 odvija prcko magistralc sa slikc 3-.lS.
Koliko sc vise pmpusnog opscga dohija pri dugackog hloka nego pri pll-
jcuinacnim prcnosima'
1
Sad<! pretpostavite da magistrala ni_je sirinc I) biloV,l, vee 32
bita i odgovoritc ponovo.
28.
Oznacitc prelama adrcsnih vodova 11<1 slici .1-3() saT.\
1
i T.'\c prcla;.na vre-
mcna signaia :-.aT \IRFf)l iT it d. svc nejedmko,ti kojc SL' pu-
drazumevaju pri postupku potpunog usaglasavanja.
29.
Vccina 32-bitnih magistraLt dutvoljava I h-bitno (itanjc: i upisivanjc podaULt. l\1-
stuje li ikakvc: nedoumiLc s gdc sc ;me;ta.Ju podac1'' Ohrazlozitc odgnvor.
i\lnogi pmccsori imaju spccijalan tip Liklusa magistrak za putvrdiv:UJjc zal:t..:v.t ;a
30.
sisternski prckid. Zastu'l
31. Sa.dcselcctvornhitni ra2un<:r s lllagi.\lralmn htzinc 200 tvlllz tro'J cctiri Cl!..iusc: ;a
citanjc 64-bilne tc(i_ KDji dcu propusnog op.SL'ga magistralc kori.sti procc:snr 11 llilj-
ncpovoljni.Jcm sluCa.Jll-'
32.
33.
3-1.
35.
T1idcsctdvobilni pmccsor sc1 adrcsnim YJ)clovima .-\.:'-.-\_1 I ;ahtcva da "c ll\2lllunJ
rl'fercnce hudu poravnate. li1 1.naci da rt'ci lreha 1drc:.sirati u kuracimc1 od ru-!- hajt,t.
a polurcci na parnim Ba.Jiov i _,,. l!Hlt>U naLviti bilu gdt:. Kt'-liku P<hlo;i
io,pravnili kllmbin;,cljacit:mj,l i,- mcnH,rijc i klJiikuj..: pPlrchno i?.\uda' Pc>nuditc Jva
odgovura i sv aki poth.n.:pilc primcmm.
Za\to Pcntium4nc lllill.c' da radi na 3.2-hitnoj PClmagistrali. ada nc izilubi ncst11 <>d
svojc funkc:iunalnosti'' U kr:qnjoj lini.Ji, racunari sa 64-httnom magistrai->m
podat<lk:t lllOgU da obavlj:qu prc\Jl()'C pndat<d-.:a 3::', ] (], J':l Cak i :-\ hiWv CL
Pretpi'Sta\'iJnn Ja irna ll1t.:tunriju pppg i :-,a nd::.:Pvara-
juCinl ud l 1 2 Vrcn1c pri.-;tupanja g:L.t\ noj UJClliuriji jL i !J !L\.
Ako se u 2lJ'.:{ siul.\t_JC\a pnsrupa kcS 1nen1oriji ni,ua. au (J{)r;
jcva kcS Jnenloriji nivoa. kuliku j..; \Tenle
F\1stoji Ji Vl.'ru\':llnnL:a da .<.,i:,krn , pnH:C.-\i)rLli1l ("){))I i 2ip
(1"'1'11
; ' . 1
r
[\f,,
!l


f
l
226
Poglavljc 3: Nivo digitalnc logike
36. Izracunajtc propusni opscg magistrale potreban za prikazivanje filma u vemim
jama na VGA ekranu (640 x 480), brzinom od 30 slika u sekundi. Uzmite u obzir da
podaci moraju dvaput proci magistralom, jcdnom od kompakt diska do mcmorije a
drugi put od memorije do ekrana.
37. Sta mislite, koji signal Pentiuma 4 aktivira vod FRAME# PC! magistrale'
7
38. Koji od signctla na slici nije neophodan za rad protokola magistrale?
39. Sistem PCI Express ima veze brzine 5 Mb/s (ukupan kapacitct). Koliko jc signalnih
vodova u svakom smeru potrebno za rad brzinom 8x'7 Koliki jc ukupan kapacitct u
svakom smeru'
7
Koliki je stvaran kapacitet (za podatke) u svakom smeru'
1
40. Racunar ima instrukcije za koje su neophodna dva ciklusa magistralc: jedan za peu-
zimanje instrukcijc, drugi za preuzimanje pod a taka. Svaki ciklus magistralc traje I 0
ns, a svaka instrukcija sc izvrsava za 20 ns (tj. interno vreme obrade jc zancmarljivo).
Racunar ima i disk sa 2048 scktora od po 512 bajtuva po stazi. Yrcme rotacijc diska
je 5 ms. Na koji pmccnat od svoje normalne brzine racunar usporava rad tokom
DMA prenosa ako svaki DMA pre nos zauzima jedan ciklus magistrak?
41. Maksimalan hroj korisnih podataka izohronog pakcta s podacima na USB magistrali
iznosi I 023 hajta. Kacl se prctpostavi da ureLlaj mo/.e slati samo jedan paket podataka
unutarjednog okvira, koliki je maksimalni propusni upseg zajedan izohroni urcdaj'1
42. Kakav bi bio efckat dodavanja treceg ulaz.nog vuda logickum kolu 'lAND koje bira
PIO cip sa slike ako bi novi vod bi povczan na vod Al3'
1
43. Napisite program za simuliranje ponasanja matrice od m x n lugickih kola NAND s
dva ulaza. Ovo kolo. smcsteno na cip. irnaj ulaznih i k izlaznih nozica. Vn:dnostij,
k, m i n su paramelri simulaeije koji se zadaju tokom prevodenja. Program treba da
pocne ucitavanjcm ,liste ozicenja', u kojoj svaki vod ima svoj ulaz i izla1. Ulaz je
jcdna odj ulaznih no/.ica ili jc izlaz iz nckog logickog kola :-<A"Il. l!laz je jedna od
k izlaznih nnl.ica iii ulaz u ncko lugicko kolo N.-'\ND. Nei,korisceni ulazi su logickc
jedinice. Pu ucitavanju lisle. o1iccnja pmgram lrcba da oclstampa rezultat za svaki
od 2J mugucih ula1.a. C'ipovi s matricom logickih kola slicni ovnrn masovno 't:
riste za izradu namcnskih elektronskih kola 1.ato sto veci dco posla (;lampanje lu-
gickih kola na cipu) nc zavisi od konkretnog kola koje se pravi. Jcdinu je oi.icenje
(spajanjt:) drugacije za svaku namenu.
4-1. Napisite program za ucitavanJe dva proizvuljna Bulova izraza i provcravanje da li
oni prcdstavljaju istu runkciju. Jezik za unosenje izra/a trcha da sadrl:i pn.Jedinacna
slova kao Bulove promcnljive. opcrande AND, OR i NOT, i zagradc. Svaki unescni
raz lrcha da slane u jcdan red. Program treba da izracunava tahelc istinitosli 1a ohc
runkcij<.: ida ih poredi.
45. Napisit<.: program ,7a ucitavanjc :;piska Bulovih izraza i ilracunajle rnatricc 2-1 X 50
i 50 X 6 /.a njihovo impkmcntiranje pomm'u PL\ cipa sa slikc 15. Jczik !.a llllllS
podataka rsti jc kao u prcthodnom zadatku. matricc na linijskom
slampacu.
4
NIVO MIKROARHITEKTURE
Iznad nivoa digitalne logike nalazi se nivo mikroarhitckture. Njegov zadatakje da
iznacl sebe implcmcntira nivo arhitekture skupa instrukcija, tzv. !SA (Instruction Set
Architecture) nivo. kao sto jc prikazano na slici Dizajn nivoa mikroarhitekturc
zavisi od arhitekture skupa instrukcija koju trcba implementirali, te od cene racunara
i njegovih performansi koje treba ostvariti. Mnogi savremeni !SA nivoi, naroCito oni
s RISC tehnologijom, sadrzc jcdnostavne instrukcije koje sc po pravilu mogu izvrsiti
unutar jcdnog ciklusa radnog takta. Slokniji !SA nivoi, kakav ima Pentium 4.
vaju vise ciklusa za izvrsavanje samo jednc instrukcije. Za izvrsavanje instrukcije
potrebno je pronaci operancle u memoriji, procitati ih i rczultat ponovo smestiti u
moriju. Odredivanje redosleda operacija unutar iste instrukcije cesto vodi drugacijem
pristupu upravljanju nego najednostavnom !SA nivou.
4.1 PRIMER MIKROARHITEKTURE
Najbolje hi bilo da vam OVU temu prcdstavimo tako sto ccmo objasniti npste
cipe organizaeijc mikroarhitckture. Nazalost, takvih opstih principa ncma: svaka
kroarhitektura jc slucaj za scbe. Zato cemo sada detaljno prouciti jedan konkretan
primer. Za na; primer !SA arhitekture izabrali smo poclskup instrukcija Javine
elne masine (JVJ\1), kao sto smo obecali u poglavlju l. Ovaj poclskup sadrl:i samo
strukcije za racl s celim brojevima. pa smo ga nazvali IJYM (Integer Java Virtual
Machine). Potpunu JYM masinu obradicemo u poglavlJLI 5.
227
I
I
I
i
228
I'oglavlje 4: Nivo mikroarhitekture
Objasnjavanje cemo poceti od mikroarhitekture na koju cerno nadograJiti skup
IJVM instrukcija. Skup lJVM ima neke slozene instrukcije. Brojne slicne mikroarhi-
tekture cestO Sll bile implementirane mikroprogramiranjem, kao SlO S!TlO objasnili U
poglavlju I. Jako je skup IJVM mali, on je Jobra polazna tacka za razumcvanje upra-
vljanja instrukcijama i redosleJa njiilovog izvrsavanja.
Nasa rnikroarhitektura ce sadrLati mikroprogram (u ROM memorijil. ciji jc zaJatak
Ja preuzima, dckoJira i izvrsava IJVM instrukcije. Pri tome za mikroprogram ne
mozemo da koristinm Sunov JVM interpreter jer nam je potreban mali mikroprogram
koji ctikasno aktivira pojeJinacna lugicka kola. Sunov JVM interpreterje 1.bog preno-
sivosti pisan na jeziku Cine moze da upravlja han.lvcrom tako Jetaljno kako bismo
/.ekli. Posto sc harJvcr sastoji samo od osnovnih komponenata opisanih u poglavlju 3.
citalac bi, nakon sto savlada ovo poglavlje. teurijski mogao da ode u radnJU. nakupuje
brojne tranzistore i sam implcmentira ovaj podskup instrukcija JV\1 masine. Citaoci-
ma koji to stvarno urade, uputiccmo posebnu zahvalnosl (a nJih uputiti knd psihijatra).
Pogodan model projektovanja mikroarhitekturc jesle onaj o kome razmisljamo
kao o ;.adatku iz programiranja, gde svaka instrukcija !SA nivoa prcdstavlja funkciju
koju pot.iva glavni program. Prema ovom modelu. glavni program jc jcdnustavna,
beskunacna pcllja kuja L1drcL1uje koju funkciju tn:ba pozvati, t.atirnje pu1.iva. a potLllll
se pustupak ponavlja iz pocetka.
i\1 ikroprogram ima skup promcnlji vi h. nazvanih stanja (engl. stare) ko-
jima mogu da pri:,tupc we funkc:ije. Svaka funkciJa vreclnoq bar jcdne pro-
menljivc i tako ucestvujc u delini:-.anju stanja. Na primn. prugramski hrojac (Program
Counter. PC) den .JC stanja. On uka;uje na rncmorijsku lokaciju sa slcdccom runkci-
jom (lJ. IS/\ instrukc:iJUill) koju trcba i1vrsiti. Tukom svakc irurukcije.
PC lllL'nja vrednu:-.t da bi uk:vao na slcdccu instrukciju.
!JVivl instrukcijc su kratkc i jednostavne. Svaka instrukciFt ima par polja. ohicno
Jedno ili dva, a wako poiJe slu/i specilicnuj S\TSi. Prvu poljc S\ akc instrukcijc jc k<ld
operacije iii opkod (L-ngl. Of>Cou'e. 1'{'('/"i/tion ,ode) knji identitikuje instrukcijt!
- ozn:rcava da li jc rcc o instnrkciji 1\.DD iii instrukciji BR.4NCH iii nck)j dmgoj. \lno-
ge instrukcijc irwrju dudatrw polJc rc;-xrvi:,;rnu z:J upennd. primer, instrukcrpma
koje pristupaju lnlalnoj pn>il!l'lllji\ui pl'trd.,n<J jc: poije za ddin[sanjc konkrctnc
promenljive.
Opi:-.ani model i?\Tsa>:Jnja. ponc:Lrd zvan ciklus preunni-izvrsi (engl.
-exccurc (\de 1. zg KLtn JC Dl ap,tr:tkrna " m,>:fc-' bit i i Psnov imrk-
rnentiranjL ISA arhitekturc :,a s],J/cnim instnrkcijama. ka<
1
;1,1 .:c s-1-:up IJVJ\1 in,;truk-
cija. U 11Lhlavku c'e111u nhJasniri Ltko on rac!i, Lrko mikn,arhitektlli":J i;.gkda i kaku s<.:
njime upravljLr pomuc't: mikt"<lin-;trukcij'' ud kojih svaka upradja putanjom pndatak.r
tukmn jednug ciklw.a. Skup mikr\)instrukcij:t Ghr<llUj.: !lrikrnprogram koji cemo de-
taljnu priLtzati i llbpsniti.
.t, l Prime mikroadtitekture
229
4.1.1 Putanja podataka
Putanja podataka (engl. data fiLllh) deo je procesora koji sadrzi aritmcticko-logic-
ku jedinicu (ALlJ), njcne ulaze i izlaze. Putanja podataka za nas primer mikroarhitek
lure prikazana je na slici 4-l. lako je una brizljivo optimi;.ovana za intcrpretiranje
IJVM programa, i Jaljc jc p1ilicno slicna putanjama podataka kojc postojc u veCinr
rLu:unara. Una saJrzi niz 32-bitnih registara kojima smo dali simbolicna irnena. kao sll'
'ill PC. SP i MDR. lako varn neka oJ imena zvuce poznato, treba imati na umu da su ov1
dos:upni samo na nivou mikroarhitekture (i da im pristupa samo mikropro-
gram). smo im takva imena jer pu pravilu sadrze vrednost promenljive koja i1m
is to i me na lSi\ nivuu. Vee' ina registara moze svoj sadrzaj postaviti na magistralu B. lz
IM i; aritmetii:k.o-logicke jeJinice ulaz je za pomerac, a moze ida sc postavi na magi
stralu C, Ciji ;.,c sadrzaj mo:l.e istovremcno upisati u jedan iii rcgistara. Zasad ne
pominjl:nm magistralu A; dodac"erno je kasnije.
ALU j<:Jinica jc ista ona koja jc prikazana na slikama 3-lLJ i 3-20. Njcnim radon,
upravlja sest upravljackih signala. Kratka kosa crta .. 6' na slici 4-1 oznacava de
postoji scst upravljackih ALU signala. To su signali F
0
i F
1
za odredivanje konkretne
opcracijc ALU jedinice, ENA i ENB za pojcdinacno aktiviranje ulaza, INVA za invertu
vanje levog ulaza i INC za forsiranjc prenosa u najmanje znacajan bit, cime se rezul
tatu dudajc I. Medutim. oJ 64 mogucc kombinacijc upravljackih ALlJ signala samo
su nekc upotrebljive.
Nekc od korisnijih kombinacija prikazane su na slici 4-2. Nisu sve funh:clJC neop
hmlne za lJVi\'1 arhitckturu, ali bi mnoge od njih dobro dosle za putpunu JVl'vi
ma;inu. lJ mnogim isti rczultat sc rnoze pustici na vise nacina. U ovoj ta
beli su + i- aritmeticki znakovi plus i rninu:-,. pa. na primer -A prcdstavlja komplemcn
Lh(}jke brojaA..
Za ALU jcdinicu sa slike 4-1 polrebna su dva ulaza: levi (A) i desni (8). Za ln1
ulaz je vezan rcgistar. H. a za desni magistral a B na kojoj se rnogu nalaziti signali ii
bilo kog Od clevct izvora, na sta ukaZUJe clcvet sivih strcJica koje idu ka njoj. 0
drugacijem rasporedu s dve potpune magislralc, gdc su u igri drugaciji k(}mpromisi
bice govora u drugorn delu poglavlja.
Regis tar H sc mozc puniti tako sto se izabcrc ALU funkcija koja ce samo propustat
signals clesnog ulaza (s magistrate B I do izla1.a iz ALU jeJinice . .Jedna takva funkcijil
je sabiranjc ALU ulaLa, pri cemu je signal ENA negiran tako da je levi ulaz stalno m
nuii. Dl)davanjem nulc vrcdnosti na magistrali B, dobija se upravo vn.:dnnst na magi
stJali B. Takav re;.ultat sc moze neizmcnjen propustiti kroz pomerac i smcstiti u rcgi
star H.
Osirn pomocu navcJenih funkcija, i1.lazom iz ALU jeJinice mole se nczavisn<
upravljati i pomoc"u dva drug a upravljacka signala. Signal SLLS (Shift Left Logical'
sadrzaj ulcvo za jedan bajt, ispunjavajuci X najrnanjc znacajnih bitl)va nula
ma. Signal SRA1 (Shift Right Arithmetic) pomcra saclrzaj udesno ;a l bit. nc menja
juci najznacajniji bit.
230
Ka
glavnoj
memoriji
i iz nje
Upravljanje ALU Jedinicom
Poglavljc 4: Nivo mikroarhitekture
Registn
za upravljanje
memoriJom
Upravljacki sign ali
f Slanje na magistralu B
t Upisivanje s magistrale C
u reg1star
- Mag1strala B
B
N
/ ~ z
UpraviJanje pomeracem
Slika 4-1. Putanja podataka za primer mikroarllitcHurc u ovom poglavlju.
4.1 Primer mikroarhitekture
231
Fo F1 ENA ENB I NVA
INC Funkcija
0 1 1 0 0 0 A
9 1 0 1 0 0
B
0 1 1 0 1 0 A
1 0 1 1 0 0 B
11
1----
1 1 1 0 0
A+B
11
1 1 1 0 1
A+B+1
]1
1 1 0 0 1 A+1
H--
1 0 1 0 1 B+1
1 1 1 1 1 B-A
--
1 1 0 1 1 0 B-1
1 1 1 0 1 1 -A
0 0 1 1 0 0 AAND B
r---------- ~
0 1 1 1 0 0 AOR B
---
0 1 0 0 0 0 0
-- -----
1 1 0 0 0 1 1
----r-----
1 1 0 0 1 0 -1
-- ---
Slika 4-2. Upolrcbljivc komhinacijc ALL! signala i tunkcijc koje ohavljaju.
interpreMoguce jc u istom ciklusu procitati vrednost registra i u njega je upisati.
Na primer, dozvoljcno je poslati signal SP na magistralu B, onemoguciti levi ulaz u
ALU jedinicu, aktivirati signal INC i s m e ~ t i t i rezultat u registar SP, cime se njcgova
vrednost uvecava za l (pogledajte osmi red na slici 4-2). Kako se iz rcgistra u istom
ciklusu moze procitati i u njega upisati vrednnst. ada ne nastanc hctos'
7
Odgovor je da
sc citanje i upisivanje obavljaju u razlicito vrcme unutar ciklusa. Kada se registar iz-
abere kao desni ulaz u ALU jcdinicu, njcgova vrednost sc stavlja na magistralu B na
pocetku ciklusa i tamo stoji tokom celog ciklusa. ALU jcdinica tada obavlja svoj po-
sao. gcncrisuci rczultat koji prolazi kroz pomerac do magistralc C. Pred kraj ciklusa,
kada se izlazi iz ALU jedinice i porneraca stabilizuju, signal radnog takta zapocinje
sme!itanje sadrzaja s magistrale C u jedan iii vise rcgistara. Jedan od tih rcgistara
moze biti i onaj koji jc magistralu B snabdco njenim ulaznim poclacima. Precizno vre-
mcnsko rasporedivanjc dogadaja na putanji podataka omogucava citanjc i upisivanjc
u isti registar tokom jednog ciklusa. kan sto opisujc111o u nastavku.
Vremensko rasporedivanje dogadaja na putanji podataka
Vremenski raspored dogauaja prikazanje na slici -1--3. Pri svakom otkucaju radnog
takta generisc sc kratak impuls, koji moze poticati i od samog radnog takta, kao na sli-
ci 3-21 (c). Bitovi za napajanjc svih logickih kola priprcmaju se kada naide silazna ivi-
ca ovog impulsa. To trajc odrcdcno, poznato vrcmc .:'111-'. Zatim se bira rcgisrar za

f.


232
Poglavlje 4: Nivo mikroarhitekturc

napajanje magistrate B i njegova vrednost se propusta na magistralu. pri ccmu pro-
tekne vreme 6.x pre nego sto se ona stahiliwje. Nakon toga, ALU jcdinica i pomerac
pocinju da rade sa stabilizovanim podacima. Posle vrernenskog intervala L'.y, ALU je-
clinica i pumerac izbacuju stabilan rezultat. Nakon dodatnog vremena 1'.;::, rezultati
magistralom C Jolaze Jo registara u koje sc mogu ucitati tokorn uzlazne ivice sle-
deccg impulsa. Ucitavanje semora obaviti na ivici impulsa ito brzo. tako da se, cak
i ako se time izmene neki od ulaznih registara, cfekat ne oseti na magistrali C dugo
posle ucitavanja. Na uzlaznoj ivici impulsa, registar koji jc magistralu B napajao
ula;.nim podacima prestajc to Ja racli. priprcmajuci se 1.a slcdcei ciklus. Na slici se
vide i registri MPC. MIR i memorija; o njihovoj ulozi govoricemo uhrzo.
Ovde
pocin1e
prvr
Stablirzovan
izlaz i1
pomer3Ca
I
Regrstrr trenutno napun1enr
s magistrale C 1 iz memorije
pri natlasku uzlazne ivice
srgnala radnog takta
ciklrrs [-
I Prvr ciklus
--\. -- radnog taktil
\w c\X
--- --:- --
I
Uspos\3VIJanje
signala ta rad
putanje podataka
--- __ :
,\y f;z :
-
ALU i
porneraC
I

Ovde SP. salje
signal MPC
BrranJe regrstra H
Pre<1os podatilka
i staviJanje podatako
na m(Jgrstralu B
od aCa do rcgtstara
Drugi ciklus
radnog takta
Ovde je iskoriscen nov
registar MPC da br se
u regrstar MIR ocrtala
sledeca mikroinstrukcrja
---
Slika -1-3. Yrcmcnski rccluskd Jogaclaia ujr:c!ncllll ciklusu p<Kiaiaka.
laku u putanji podataka ncma za crh,mj..: tr-cha imati na da
prolaz podataka kro; nju lraje odreden<l vrcmc. Mcnjanje vrc:dnPsti 11:1 magistrali B tck
ce se poslc nckog vrcmc:na vrcdnost C ualwaljujuci merlji' r'ill
trapnju svakog knraka). S!wdno tuntc. i ttkrl sc zbog pudataka l'mtncni
sadrzaj jcdnog ud uLwuil registara, nJegma prerhodtla HedthJSt hice pre
nego hude mugla Ja -;c ]JPJavi na magistrali l3 (tli H) cia Jude c:lo ,\LU jl'dinicc
Dtl hi ovakva nwgb da rtldi. ]li'LrcbnrJ jc ,trog<l vrtmt:n:-,k" u,J.;la,tiv;.m;.:. du-
gacak ciklus radnog ta\..ta. po;navanje EJinimalnog vrcmcna pruL1ska km; ,\LU
nicu i hrw ucitavanje [H>d.ttak;r u rcgistre s magistraie C.
nHre sc pnqic'i cla pui.llria [x>dataka radi vrcm<:'. Stvar!li racunar: i
radc.
Po ncslo pri,tupu puranji purJatab. una ',C jWSillatn Lru skU[' P"'l;-a-
zumt:varlih i'ul'ctak. prvug potcikltba vct.an je za silaznu n icu r<tdnug

4.1 Primer mikroarhitekture
233
takta. Navodirno aktivnosti koje se dogadaju tokom potciklusa, uporeclo s trajanjem
potciklm;a ( u J:agradi).
I. Uspostavlpnje upravljackih signala (l'.w).
2. Registri prcdaju svoj sadrzaj magistrali B (6.x).
3. ALU i pomcraC: ohraduju podatke (l'.y).
4. Rczultati putuju magistralom C nazad do registara (l'.z).
Pri nailasku u.ciaore iv i..:e sledceeg ciklusa radnog takta rezultati se ucitavaju L
rcgistre.
Rekli smu da jc najbolje ako potcikluse samo podmzumevanw. To 1.naci da ni irn-
puls raclnog takta ni nd .. i drugi signal neee izazvati pocetak rada i\LU jcdinice, nit1
prenus rCI.ult<tta na magistralu C. ALU jedinica i pomcrac u stvarnosti rade svc vrcme
Mectutim. podaci kuji u njih ulazc besmisleni su svc dok od silaznc ivicc signala rad-
nog takta ne prodc vn:mc fl.rv + 6.r. Slicno tome. i pudaci koji iz njih izlaze nemaju
smisla svc duk od silaJ:ne ivicc signala radnog tak.ta nc prude vrcme fl.ll' + 6.t +t-.v. Je-
dini signali koji pokrecu pulanJU podataka zapravo su silaznc ivicc signaLr raJnng
taJ..ta knje 1:apocinju ciklus putanje podataka i u.dazne iv ice signala radnog takta koje
pun<:' n.:gistre vrcdrw:-,tima s magistralc C. Granice ostalih potciklusa podrazumevanc
su nclrc(knc vremenom prolaska signala kroz postojcca clcktronska kola. Projektanti
da se vremenc,ki interval L'.w + 6.r + :\.y zavrsi dovoljno pre uzlaznc ivice
si:;nala radnog takta tako da se poclaci sve vrernc ucitavaju u registn.:.
Rad memorije
Nas kumunicira s memorijom na elva naCina: prcko 32-bitnog prikljucb
za :tdrcsiranJe memori_1sJ..e reci i preko 8-bitnog prikljucka za adrcsiranje hajtova mc-
munJC. Tridesddvohitnim prikljuckom upravljaju Jva registra: MAR (Memory
Address Rcgi.-,kr. rcgistar za adresiranje mcmorijc) i MDR (Memory Data Register.
reghtar za mcmorijskc podatkc). kao sto jc prikazann na slici -1-l. Osmobitnim
pr:\Jp:ckom upravlja jc:dan rcgistar. PC, koji ucitavajcdan u najmanje
rcgic,tra MBR. Prcko ovog prikljucka podaci se mogu procitati iz memorije.
ali s,' ne !llLJgu i upisi\ati u nju.
S1 ak im nd ovih registara (kao i svim clrugim registrima na slici 4-l! upravljaju je-
dan iii ri'.ca upravljacka signala. Neispunjena strelica ispod registra oznacava upra-
v!ja(ki :;igilttl ko_1i diktira praL!lJCilje registra na magistralu B. Po;to registar MAR nije
puvezan , magistral om n, orr nema takav signal. Ni registar H nema takav signal jer
'L' uti st<tlnu prazni. buduci cia predstavlja jedini levi ulaz u ALU jedinicu.
PLdla . trc.:lica ispml registra oznacava upravljacki '>ignal koji diktira upisivanje
r'odalakl s magi:-,tralc C u rcgistar (dakle. ucitavanje). P11Slo rcgistar MBR ne mozc da
uCiu j'Ddatkc s magistrate Con nema signal za upisivanje (iako ima dva druga signa-
la krje <l[ltsujemo u nastavku). Da bi zapocela operacija C:itanja iii upisivanja, od-
guv memorijski moraju ucitati pndatk.e. a La tim se m.:muriji mora
p,J,Jali t.a citanjc ili upisivanje (nisu prikazani na slici -1-1 ).
234 Pnglavlje 4: Nivo mikroarhitekture
Registar MAR sadrzi adre'e reh, tako da se vrcdnosti 0, I, 2 itd. mlnose na uzastopne
rei'i. Registar PC sadrzi adrese bajtova, tako da se vrednosti 0, l, 2 itd. odnose na uza-
stopne bajtove. Na primer, ako u PC stavimo vrednost 2 i zapocnemo operaciju citanja
iz memorije, iz mcmorije ce se ucitati drugi bajt i smestiti u najrnanje znacajnih 8 bitova
registra MBR. Ako vredno:,t 2 stavimo u registar MAR i zapocnemo operaciju citanja, iz
memorije cemo procitati bajtove 8-ll (tj. drugu rec) i smestiti ih u rcgistar MDR.
Ova razlika u funkcionalnosti jc potrebna jer se rcgistri MAR i PC koriste za rcfe-
renciranjc dva razlicita dela mcmorijc. Razlika ce postati jasna kasnije. Zasad je do-
voljno rcci da se kombinacija registara MAR/MDR kuristi za citanje i upisivanje reci
s podacima s nivoa !SA, ada sc kombinacijom regis tara PC/MBR cita izvrsni program
nivoa !SA koji se sastoji od niza bajtova. Svi drugi adresni registri koristc adrcse reci,
kao rcgistar MAR.
U !izickoj implemcntaciji postoji samo jedna vrsta memorijc i ona se zasniva na
bajtovima. lako !izicka rncmorija raLli s bajtovima, rad registra MARs recima (sto je
potrchno jer je tako definisana JVM rnasina), omoguccn je zahvaljujuCi jednostav-
nom triku. Kada se sadrzaj rcgistra MAR postavi na adrcsnu magistralu, njegova 32
hita nc prcslikavaju se dircktno na 32 voda za adresiranje (0-31 ). Umesto toga, hard-
verski jc rescno da bit 0 registra MAR ide na adresni vod 2, bit l registra MARna adres-
ni vod 3 itd. Najznacajnija dva bita registra MAR odbacuju se posto su potrcbni samo
za adrese rcci iznad 2
32
od kojih nijedna nije legalna u nasem racunaru sa 4GB mc-
morijc. Uz opisano preslikavanje, kadaje u rcgistru MAR vrednost l, na magistralu se
postavlja adresa 4; kadaje u rcgistru MAR vrednost 2, na magistralu se postavlja adre-
sa itd. Ovaj trik jc prikazan na slici 4-4.
OdbacuJe se
32
b .
6 . '"" '""""'MAR (cob(
HH55557B55tJ7775
1
" "
I I I I I I I I I I I I I __ l 11_11 ((
32-bitna adresna magrstrala (bajtovi)
Slika 4-4. Prcslikavanjc bitova registra MAR ll:l adrcsnu magistralu.
Kao sto smo vee rekli. pudaci koji se iz memorije ucitavaju prcko 8-bitnog memo-
rijskog prikljucka smestaju se u 8-bitni registar MBR. Sadrzaj registra MBR mo7.e sc
preneti (tj. kopirati) na magistralu B na jedan od dva nacina: kao neoznacena i kao
oznai'cna vrcdnost. Kada je potrebna neoznacena vrcdnnst. 32-bitna rec postavljena
na
111
agistralu B sastoji se od najmanje znacajnih bitova vrednosti iz registra MBR i
od nula u sva 24 znaeajnija bita. Neoznacenc vrednosti su zgoclne za indeksiranje ta-
bela ili kada 16-hitni ceo broj treba sklopiti ocl dva uzastopna (ncoznacena) bajta.
4.1 Primer mikroarhitckture
235
Druga mogucnost za prctvaranje 8-bitne vrednosti registra MBR u 32-bitnu rcc jestc
da se vrednost tretira kao oznaccn broj izmedu -128 i + 127 i da se n jegova vrednost
iskoristi za generisanje 32-bitne reci iste nurnericke vrednosti. Pretvaranje se obavlja
kopiranjem bita za znak (kranjeg levog bita) vrednosti registra MBR u najznacajnija 24
hita magistralc B, sto se naziva prosirivanje znaka (engl. sign extension). Kada se
izaberc ova mogucnost, najznacajnija 24 bita sadrzace sve nule iii sve jedinice, zavisno
od toga da li je krajnji levi bit 8-bitne vrednosti registra MBR bio 0 iii l.
Da li ce 8-bitna vrednost registra MBR biti pretvorcna u neoznaccnu ili oznaccnu
32-bitnu vrcdnost na magistrali B, zavisi od toga koji je od dva upravljacka signata
prisutan (ncispunjene strelice is pod registra MBR na slici 4-l ). Dve strclicc postoje
upravo zbog toga sto su potrcbne,ove dve mogucnosti. Mogucnost da sc 8-bitni regi-
star MBR ponasa kao 32-bitni izvor podataka za magistralu B. oznaccna je blokom
nacrtanim isprekidanom Iinijom na lcvoj strani registra MBR na slici.
4.1.2 Mikroinstrukcije
Za upravljanjc putanjom podataka sa slike 4-l potrebno je 29 signal a. Oni se mogu
svrstali Ll pel runkcionalnih grupa:
Dcvet signala za upravljanje upisivanjem podataka s magistrale C u registre.
Devct signata za upravljanjc praznjenjcm registara na magistralu B, kojajc ulaz
u ALU jedinicu.
Osam signala za upravljanje radom ALU jedinice i pomeraca.
Ova signata (nisu prikazani) za oznacavanje citanja/upisivanja podataka u me-
moriju preko kornbinacijc registara MAR/MDR.
Jedan signal (nije prikazan) za oznacavanje citanja podataka iz mcmorije preko
kombinacijc rcgistara PC/MBR.
Vrednosti ovih 29 upravljackih signal a odreduju operacije tokorn jednog ciklusa
putanje podataka. Ciklus sc sastoji od propustanja vrednosti iz rcgistara na rnagistralu
B. pro! ask a signal a kroz ALU jcdinicu i porncrac, njihovog upucivanja na magistralu
C i konacnog upisivanja rezultata u odgovarajuc'e registrc. Osim toga, ako postoji si-
gnal za citanje podataka iz memorijc, operacija s mcmorijom zapocinje na kraju
ciklusa putanje pm!ataka, posto je rcgistar MAR ucitao vrcdnost. Podaci iz memorije
raspolozivi su na samom kraju narcdnog ciklu:,a u rcgistru MBR ili u registru MDR
i mogu se upotrebiti u ciklusu koji sledi njega. Drugim recima, nperacija citanja
podataka iz memorije preko bilo kog prikljucka koja je zapoceta na kraju ciklusa k.
clajc poclatke koji sene mugu iskoristiti u ciklusu k + l, vee samo u ciklusu k + 2 ili u
kasnijirn ciklusima.
Ovo, naizgled paradoksalno ponasanjc, mo?.c se razumcti ako se pogleda slika 4-3.
Signali za upravljanjc mcnmrijom ne gencrisu se u prvom sistemskom ciklusu sve dok
registri MAR i PC ne ucitaju vrcdnosti na uzlaznoj ivici signata, pred kraj prvog ciklusa.
Pretpostavicerno da mcmorija svojc podatkc postavlja na memorij-;ku magistralu u
tuku jcdnug ciklusa tako da regis tar MBR i(ili) regi:,tar MDR mogu cia ucitaju vrednosti
pri nailasku sledece uzlazne ivice signala radnog takta, uporcdo 'drugim rcgistrirna.
r
I 238 Puglavljc 4: Nivu mikruarhitckturc
!
<
Signali za upravljante rnemoritom (citanje, upisivanJe, preuzimanje)
J
MAR J
_t


.. ..,. ___ _.Magistral a C
_j_
Dekoder
4 u 16
J
MPC

1
Upravljacka memorija
512 x 36 bitova
za cuvanje
mikroprograma
JMPC
1
Addr I J I ALU c
J
JAMN/JAMZ
2
Jednobitn1 flip-flop
MIR
MjBl
IL__j
Upravljacki
signali
f Pre nos podataka
na rnagistralu B
t Upisivante
podataka
s magistrate C
u registar
Slika 4-li. Polpun blok-Jijagram mikroarhitdlurc Mic-1 iz
Najveci i najvazniji element u upravljackom delu rai'unarajeste memorija, nazva-
na upravljacka memorija (engl. control store). Zgodno je ako je zamislite kao me-
moriju koja sadrzi ceo mikroprogram. iako je ona ponekad implementirana kao skup
logickih kola. Nju cemo nazivati upravljackom memorijom da je ne biste pomdali
s glavnom memorijom kojoj se pristupa preko registara MBR i MDR. Medutim, u funk-
cionalnom smislu. upravljacka memorijaje samo memorija u kojoj se umesto !SA in-
strukcija cuvaju mikroinstrukcijc. Rai'unar iz naseg primera ima upravljacku
mernoriju sa 512 rcCi, a svaka rec sadrzi po jednu 36-bitnu mikroinstrukciju, tipa pri-
kazanog na slici 4-5. U stvari, nisu nam potrebne sve reci, ali (iz razloga koje cemo
kasnije ohjasniti) treha da imamo na raspolaganju adrcse za 512 zasehnih reci.
Postoji jedna vazna razlika izmedu upravljacke memorije i glavne memorije: in-
strukcije u glavnuj memoriji izvrsavaju sc adresnim redosledom (izuzev pri grananju);
mikroinstrukcijc sene izvrsavaju tako. Uvecavanjc vrednosti programskog brojaca sa
4.1 Primer mikroarhitekture
239
slike 2-3 za jedan, odrazava i'injenicu da se posle tckuce instrukcije podrazumevano
izvrsava instrukcija koja u memoriji sledi iza nje. U mikroprogramu je potrebna veca
tleksibilnost (posto su nizovi mikroinstrukcija po pravilu kratki), pa se on obii'no ne
ponasa tako, vee se u svakoj mikroinstrukciji eksplicitno navodi mikroinstrukcija koja
sledi iza nje.
Posto je upravljacka memorija u funkcionalnom srnislu memorija samo za citanje,
ona trcba da ima sopstveni registar za adresiranje i sopstveni registar za podatke. NjoJ
ne trehaju signali za citanje i upisivanje jer se njen sadri.aj samo cita. Registar za adre-
siranje upravljacke memorije zvacemo MPC (MicroProgram Counter, brojac mikro-
programa). fmc je paradoksalno posto lokacije u upravljackoj memor0i po dcfinicijt
nisu urcc!ene, tako da je besmislena sama ideja o nabrajanju. Registar za podatke iz
upravljackc memorije zove se MIR (Microinstruction Register, registar mikroin-
strukcija). Njegova ulogaje da cuva tekucu mikroinstrukciju, ciji bitovi predstavljaju
signale za upravljanje putanjom podataka.
Bitovi registra MIRna slici 4-6 podeljeni su u istih sest grupa kao na slici 4-5. Gru-
pe Addr i J (za JAM) upavljaju izborom sledece mikroinstrukcije i njih cemo ubrzo ob-
jasniti. Grupa ALU sadrzi R bitova kojima se bira ALU funkcija i pokrece pomeraC.
Bitovima c odreduju se registri koji ce ucitati rezultat obrade ALU jedinice preko ma-
gistrale C. Bitovi M upravljaju operacijama s mernorijom.
Na kraju, poslednja 4 hita upravljaju dekoderom koji odrectuje sadrzaj na magi-
strali B. U ovom slucaju izahrali smo standardni dckoder .,4 u 16"', iako namje od mo-
gucih 16 potrebno samo devet kombinacija. Kada bi se ozbiljnije radilo, vcrovatno
bismo upotrebili dekoder ,4 u 9". Ovde treba dobro mlmeriti sta jc isplativijc: stan-
dardno kolo uzeto iz biblioteke kola iii namensko kolo koje se mora posebno pro-
jektovati. Standardno kolo je jcdnostavnije i malo je verovatno da ce stvaratt
probleme. Namensko kolo je doduse manje, ali ga trcba projektovati i sacekati da se
napravi, pa i tada nc mora iz prve ispasti dobro.
Rad kola na slici 4-6 izgleda ovako. Na pocetku svakog sistcmskog ciklusa (kou
silazne ivice signala radnog takta na slici 4-3). rcgistar MIR iz upravljacke mcmorijc
ucitava rec na koju ukazuje sadrzaj registra MPC. Yrcme ucitavanja podataka u MIRna
slici je owaceno sa .6.w. Ako sve razmatramo u sistemu potciklusa, rcgistar MIR uci-
tava podatke tokom prvog potciklusa.
Kada se mikroinstrukcija konacno smesti u registar MIR, razliciti signali krecu b
putanji podataka. Na magistralu B se postavlja sadrzaj odrcctenog rcgistra, ALU jcdi-
nica sazn;1Je sta treba da radii. uopste, odjednorn se sve aktivira. To je drugi potciklus.
Posle vrcmena .6.w + .6.x od pocetka ciklusa. ulazi u ALU jedinicu se stabilizuju.
Posle clodatnog vrcmena L'.v sve se smirujc pa i ALU jeclinica, N, Z, kao i izlazi i1
pomeraca postaju stabilni. Yrednosti N i Z tada sc o,mestaju u par jednobitnih Jl ip-flo-
pova. Oni se, kao i svi registri koji ucitavaju podatke s magistrale C i iz memorijc,
smdtaju pri uzlaznoj ivici signala radnog takta, pred kraj putanje podataka.
lzlaz iz ALU jeclinice sene pamti, vee se sarno prosledujc pomcracu. Aktivnosti ALU
jeclinice i pomeraca odvijaju se tokom potciklusa 3.
r
I
I
ll
i'
l
l
..
t

"'
l
:t.

,:;

:\1
A

Pogtavtje 4: Nivo mikroarhitckture
242
-
MBR/MDR budu spremni. Ta aktivnost mo?.e biti izazvana visokim nivoom signata
(pre nego ivicom signata) ili istekom fiksnog vremena posle naitaska uzlazne ivice si-
gnala radnog takta. Jedino je bitno da se MPC ne napuni pre nego sto registri
od kojih zavisi (MBR. N i Z) budu spremni. Cim signal radnog takta padne na nisku
vrednost. MPC moze da adresira upravljacku memoriju i nov ciklus moze da pocne.
Qbratite paznju nato da je svaki ciklus potpuno zaokruzen. U njemu se odreduje
sadrzaj magistrale B, sta treba da urade ALU jedinica i pomcrac. gde treba smestiti
sadr?.aj magistrale C i na kraju. kakva ce biti vrednost registra MPC.
Treba na kraju pomenuti jos nesto u vezi sa slikom 4-6. 0 registru MPC govorili
smo kao o pravom registru koji svojih 9 bitova ucitava tokom visokog nivoa impulsa
radnog takta. U stvarnosti. na tom mestu nije potreban registar. Svi njegovi ulazni
podaci mogu se direktno sprovesti do upravljacke mcmorije. Sve je u najboljem redu
ako se oni nadu u upravljackoj memoriji kada naide sila;:na ivica signala radnog takta
i treba da se izabere i procita sadrzaj registra MIR. Nema potrcbe da se oni privremeno
smestaju u rcgistar MPC. Zbog toga se registar MPC mo?.e implemcntirati kao virtu-
elni rcgistar koji prcdstavlja samo ,zborno mesto" signala (slicnije razvodnoj tabli,
nego registru). Kada se MPC realizuje kao virtuelan registar, uproscava se vremensko
rasporeLtivanje dogadaja: sada se nesto dogaLta samo pri nailasku uzlaznc ili silaznc
ivice signala radnog takta. Medutim. ako vam je lakse da MPC posmatrate kao pravi
registar, i takav pristup je u rcdu.
4.2 PRIMER ISA ARHITEKTURE: IJVM
Nastavicerno s nasim primerom i uvesccmo nivo ISA racunara: njcga treba da in-
terpretira mikroprograrn koji se izvrsava na mikroarhitekturi sa slike 4-6 (lJVi\1). Da
bismo istakli razliku izmcLlu ISA arhitekturc i mikroarhitekture, ponekad cemo ISA
arhitekturu nazivati makroarhitcktura. Medutim. pre nego ;to predcmo na opisiva-
nje skupa IJVM instrukcija. malo ccmo zastati da biste rammeli zaslo smo bas njega
izabrali.
4.2.1 Stekovi
Skoro svi programskijezici podrzavaju konccpt procedura (metoda) koje radt s lo-
kalnim promenljivama. Prumenljivc su dostupne iz procedure, ali pw,taju ncdostupne
kada se iz procedure izade. Tako dolazimo do pitanja gde u mcmoriji treba cuvati
ovakve promenljive.
Najjednostavnije JC da sc svakoj promcnljivoj dodeli apsolutna mernorijc,ka adresa,
ali to ni1e rescnje. Problem jc to sto prucedura moze da puziva samu sebc. Takve re-
kurzuvne prucedure analiziracemo u poglavlju 5. Zasad je dovolJnO reCi slcdecc: ako
je procedura aktivna (tj. pozvana) dvaput njcne promcnljive nije moguce smestiti na
apsolutne memorijskc lokacije jer ce druga replika procedure cloci u sukob s prvom.
Zbog toga se prirnenjuje drugacija stratcgija. Jedno podrucje memorijc, na1.vano
stek (engl. stack), rezervise se 1.a promenljive, ali tako da pojedinacne promenljive nc
4.2 Primer ISA arhitekture: UVM 243
dobijaju apsolutne adresc u njemu. Umesto toga, jedan registar (npr. LV) svojim
sadrzajem ukazuje na pocctak lokalnih promenljivih za tekucu proceduru. Na slici
4-8( a) pozvana jc proccdura A koja ima lokalne promenlji veal, a2 i a3, tako da se na
steku rezervise skladiste za njene lokalne promenljive pocev od memorijske Jokacije
na koju ukazuje registar LV. Drugi registar SP ukazujc na poslednju rec iz niza Jokal-
nih promenljivih procedure A. Ako LV ima vrednost 100, a reci su 4-bajtne, u registru
SP bicc vrednost 108. Promenljive se refercnciraju preko svoje udaljenosti (engl. off
set) od vrednosti registra LV. Struktura podataka izmedu vrcdnosti u rcgistrima LV i SP
(ukljucujuCi i obe reci) naziva sc okvir lokalnih promenljivih (engl. Local variable
frame) procedure A.
Razmotrimo sada sta se desaviJ ako procedura A pozove drugu proceduru, B. Gde
ce biti smestene cetiri lokalne promenljive procedure B (hi, h2, b3, b4)'7 Odgovor: na
steku, iznad lokalnih promenljivih procedure A, kao sto jc prikazano na slici 4-8(b).
Obratite paznju na lo da je poziv procedure podesio registar LV tako da sada ukazuje
na lokalne promenljivc procedure B. Lokalne promenljive procedure B sada se mogu
referencirati navodenjem njihove udaljcnosti na steku od vrednosti registra LV. Slicno
tome. ako procedura B pozove proceduru C, registri LV i SP ponovo se poddavaju
tako da obuhvate prustor rezervisan za njene dve promenljive, kao sto je prikazano na
4-t\(c).
SP --
d5
SP- b4
E:::J
d4
b3 b3 d3
b2 b2 d2
LV b1 LV-- d1
a3
a2
a1
a3
a2
a1
a3
a2
a1
SP 108
a2 104
al 100
(a) (b) (c) (d)
Slika 4-S. Smeslanje lokalnih prorncnljivih na siek. (a) Dok je aktivna proceduraA. (b) Nakon sto
,.\ po;.ovc IJ. (c) Nal-.on sto fJ pozove C (d) Posto sc prograrmki tok vrati iz proccdura C i fl. a pro-
cedura A poLovc proccduru D.
Kada se programski tok vrati iz procedure C, procedura B ponovo postaje aktivna
i stck se ponovo poddava prema slici 4-8( b) tako da regis tar LV sada ponovo ukazuje
na lokalne promenljive procedure B. Slicno tome, kada se zavrsi procedura B, vraca-
mo 'e ponovo na situaciJLL sa slike 4-8(a). Bez obzira na okolnosti, registar LV uvek
ukazuje na pocetak okvira na steku koji se odnosi na tekucu proceduru, aSP ukazuje
na vrh tog okvira.
Pretpostavimo sada da procedura A poziva proceduru D koja ima pet lokalnih pro-
mcnljivih. Dobijamo situaciju kao na slici 4-8(d), gde lokalne promenljive procedure
D koriste istu memoriju koju je koristila procedura B, kao ideo prostora koji je kori-
stila procedura C. Uz ovakvu organizaciju memorije, ona se dodeljuje samo proce-
durama koje su trenutno aktivne. Kada se procedura zavrsi, oslobada se mcrnorija
koju su koristile njene lokalne promenljive.

]j'

J
k
,;,'

231l
4: Nivo
Drugim recima. podatke ucitavamo u rcgistar MAR pri kraju ciklusa putanjc poda-
taka i odmah zatim pokrcccrno operacije s mcrnorijom. Prcma tome, ne mozcmo sa
sigurnoscu occki vati da cc se rezultati citanja podataka iz memorije naci u rcgistru
MDR na pocetku ciklusa. narocito ako je sirina impulsa rac\nog takta mala. Za
to nema dovoljno vremena ako opcracija s memorijom trajc jedan ciklus rac\nog takta.
Jcdan ciklus podataka mora da se nade izmedu opcracije citanja podataka iz
i kuri;ccnja dobijenih podataka. Naravno. tokom tog ciklusa moze se raditi
ncsto drug()- sa11l\) nc l)[l() za sta jc potrcbna memorijska rcc.
PretpostavLt da rad s memorijorn trajc jcdan ciklus, jcdnaka je pretpostavci o sto-
postotiWill :-.tqxnu pogadanja kd memurije prvog nivoa. Ta pretpostavka u realnosti
nikad nc stu_1i. alibi u\odenje rcalnijcg, promcnljivog trajanja opcracijc s memorijom
bi]o Sll\ i;Illl komplikovanjc onoga SlO Sll10 zclcli ovde da poka;/.emo.
Pos1u rcgist1i MBR i MDR ucitavaju vrcclnosti pri uzlaz.noj ivici signala radnog tak-
ta. upnrnlo sa ostalim registrima, njihov sadrzaj se mol.e proCitati tokom ciklusa u ko-
jima :-.-: ohavl_1a nova opcracija podataka i1: mcmorije. Rcgistri sadrze stare vrcdnosti
pnsto nijc hilo vrcmena da ih zamene mJvc vrcdnosti iz memorije. Tu nema mesta
sumnji: dok se nove vrcdnusti nc ucita_1u u rcgistre MBR i MDR pri uzlaznoj ivici
sign ala radnug takta. u registrima su jus uvck stare vrcdnosti koje se mogu koristiti.
SkrLcemo varn paznju na mogucnost kontinualnog ucitav<mJa u dva uzastopna ciklu-
sa jc t.a ucitavanjc dovoljan jedan ciklus. lsto tako, ohc memorije mugu raditi
u isto vreme. :V1edutim. pokubj da se isti hajt istovrcmcno ucita i upise daje ncpred-
vidljivt::
lako jc mozda pozcljno da se sadrzaj magislr<Iie C istovremcno upise u vise regi-
st,tra. nikada nijc p<lzclpw da magistrali B poclatke u jcdnumtrenutku isporucuje vise
"d jcdnug reg istra. ( to u neki m implcrnentacijama izazi va tizicko ostccenje. l
li1 nci.Il<Jlno prosirivanje dektronskog kola mozcmo da smanjimo broj bitova potreb-
nili 1.a hiranje it.vura podataka za magistralu B. Postoji sarno dcvct mogucih ula;,nih
rLgt,tara 1.a snabdevanjc magistrale B poc\acima (gdc posebno racunaju oznacena
i ncuLnaccna MBR). Prema tome. inrormaciju za biranje izvora magi-
strale l3 mu:l:enm cla kudiramo ponwcu-+ bita i da pomocu dckodcra gcncriscmo 16
uprctVljackih od kujih SU 7 visak. U korncrcijaJnoj iLVcdhi, prujcktanti CC OSC-
lll j llc'<lllUJjj Vll potrebu da Se re;e jcdmlg od rcgistara. pa L'C J:a kodiranje izvora flOda-
laka magistralc B hili dovoljna i 3 bita. Nama, koji o tome ra,pravljamo i.'lkljucivo
lellrijski. do/.\Oljen je luksuz da potrosimu jedan bit kako bi nas projekat bio cistiji j
_!cdmNavniji.
U uvum trenutku mozemo da upravljamo putanjom podataka pomocu \J + 4 + R +
2 -r I= 2-f signaLt (dakle. pumocu2-f bita). McLtutim, ova 24 bita upravljaju putanjom
pldataka :-.amu tokomjcdnog ciklusa. U drugi dco upravljanja spada i pitanJe ;ra treba
r:tditi u sledccem ciklusu. Da bi se i ono ukljucilo u projekat kontrolera. napraviccmn
l'<Hmat z.a upi:-:ivanjc opcracija kojc trcba izvcsti koristcci 24 upravljacka bita i dva
d<'datna polja: NEXT_ADDRESS (sledeea adresa) i polja JAM. Sadrzaj svakog od ovih
p<llp uhja,nicemu uskoro. Slika -f-5 prikawje jedan moguci formaL kuji sadr7.i 36 si-
:;nala u slcdccih grupa:
4, I Primer mikroarhitcktmc

237
Bitovi
Addr- Aclrcsa sledcce potencijalne mikroinstrukcije.
JAM- Nacin biranja sledece mikroinstrukcije.
ALU- Funkcijc ALU jedinice i pomeraca.
C- Biranje registara za upisivanje podataka s magistrale C.
Mem - Funkcijc za rad s memorijom.
B- Biranje izvora podataka magistrale B; kodiranje je kao na slici.
J J J s S F
0
F, E E I I H 0 T C L S p M MW R F
M A A L R N N N N p 0 p v p c
NEXT_ADDRESS p M M L' A A B v c c s
p
C N z 8 I A
' -- -y ----- ----
'---
Addr JAM ALU c
Slika .1-5. lormal mihroinslrukcijc za 1\lic-1.
0 A R E E
R R I A
T MrJglsta-
T D C
Ia 8
E H

Mem B
Registri mag1strale 8
0 = MDR
1 =PC
2 = MBR
3 dvlBRU
4 = SP
5 =LV
6 = CPP
7 = TOS
8 = OPC
915visJk
Redosled gmpaje u principu proi1.voijan. ami smo ga vrlo pazljivu hirali da hismo
izhegli ukrstanje vmlova na slici 4-6. vodova na ;emama kao stu je -,lika 4-6
ccsto odgovara stvarnom ukr;tanju l.ica na cipu. ;to stvara problemt'. pa ga lreba svcsti
na najmanju meru.
4.1.3 U pravljanje mikroinstrukcijama: Mic-1
Do sada smo opisali kaku sc upravlja putanjnm pPdataka, ali ni:smu rwminpli k:tko
sc odlucujc koje upravljacke signak trcba u svakom cik!usu. T<> odrcL111Jt'
tzv. sckvencer (engl. sequencer) kuji jc odgovoran za voctenje si\tcnn knu nil Llia-
stopnih opcracija ncophodnih za izvrsenje jcdne ISA instrukcijc.
Sekvcncer mora da oheLbedi dve vrstc in formacija u svakom ciklu:,u:
I. Stanjc svakog upravljackog signala u sistemu.
2. Adrcsu mikminstrukcije koja dolazi na reel za izHsavanjc.
Slika 4-6 prikazuje detalJan blok-dijagram mikroarhirckture procesora iz
naseg primera. koji c'emo zvati Mil:-1. !'<a prvi poglcd. dijagram dclujc irnpo;:mtr:n.
ali ga vredi detaljno proll\:iti. Kada polpuno shvatite ulogu sv:tkDg hl"k:t i svak"g
vnda na dijagramu. na dobrom ste puw da savladatc nii'O mikmar!nrckturc 'acunara.
Blok-dijagram ima dva clela: pulanju podataka na levuj slr<tlll 1 kuju snw 1cc cleta1JI1o
objasnili) i upravljacki deo na desnoj strani. kuji ccnw -,:1da anatiZlr:ni.
I
,.---
)I
tl
<I
I
246
Poglavlje 4: Nivo mikroarhitekture
Kadaje rec o pokazivacima, treba naglasiti nesto. Registri CPP, LV i SP ukazuju na
re6. a ne na hajtove. i korak njihovog uvecanja je rec. U podskupu celih brojeva za
koji smo se opredelili, sve reference na clemente podrucja konstanti, clemente okvira
lokalnih promenljivih i stekajesu reci i sva rastojanja upotrebljena za indeksiranje u
ovim podrucjima mere se recima. Na p1imer, LV, LV+ 1 i LV+ 2 ukazuju na prve tri reci
okvira lokalnih promenljivih, a LV, LV+ 4 i LV+ 8 ukazuju na reci u razmacima od 4
reci (16 bajtova).
Nasuprot tome, registar PC saddi adresu u bajtovima i uvccanje iii umanjenje nje-
gove vrednosti menja adresu u bajtovima, a ne u recima. Adresiranjc je za regis tar PC
drugacijc nego za ostalc registre, pa je za njega u semi Mic-1 predviden spccijalan
memorijski prikljucak. Upamtite da je on sirok samo l bajt. Rezultat uvecanja vred-
nosti registra PC za jcdan i iniciranje operacije citanja jeste u preuzimanju sledcceg
bajta. Rezultat uvecanja registra SP za jedan i iniciranje opcracije citanja jestc prcu-
zimanje sledece reh.
4.2.3 Skup IJVM instrukcija
Skup IJVM instrukcija prikazan je na slici 4-ll. Svaka instrukcija sadrzi opkod,
a ponckad i operand (npr. pomak od pocctak mcmorije ili konstantu). U prvom stupcu
jc hcksadccimalni k6d instrukcije, au drugom njcn asemblerski nmemonik. U treccm
stupcu jc dat kratak opis funkcije.
Heks.kod Mnemonik Sta funkcija radi
Ox10 BIPUSH bajt Stavlja bajt na stek
Ox 59 DUP
Kopira prvu rec sa steka i kopiju stavlja na stek
OxA7 GOTO pomak Bezuslovno grananje

Ox60 I ADD
Uzima dve reCi sa steka; stavlja na stek njihov zbir
-
Ox7E lAND
Uzima dve reCi sa steka; stavlja na stek rezultat logicke
operacije AND
Ox99 IFEO pomak
Uzima rec sa steka i preusmerava programski tok ako je
1---------- ..
njena vrednost nula
--

Ox9B IFLT pomak


Uzima rec sa steka i preusmerava programski tok ako je
njena vrednost manja od nule
Ox9F IF_ICMPEQ
Uzima dve reCi sa steka i preusmerava programski tok ako
pomak su njihove vrednosti Jednake
Ox84 I INC prombroj
Dodaje konstantu lokalnoj promenljivoj
konst
Ox15 I LOAD prombroj Stavlja lokalnu promenljivu na stek
OxB6 INVOKEVIRTUAL Poziva metodu
rast
f----
Ox80 lOR
Uzima dve reci sa steka i na stek vraca rezultat operacije
OR
'-------
Slika 4-11. Skup UVM instrukcija. Operandi bujt, konsl, i prombroj su jcdnobajtni. Operandi rust,
indeks i pomak su dvobajtni.
I
4.2 Primer ISA arhitekture: IJVM
Heks. ked Mnemonik Sta funkcija radi
OxAC IRETURN Vraca iz metode celobrojnu vrednost
I Ox36 ISTORE prombroj Uzima rec sa steka i smesta je u lokalnu promenljivu
Ox64 I SUB UzirToa dve reci sa steka i na stek vraca njihovu razliku
Ox13 LDC W indeks Na stek stavlja konstantu iz podrucja konstanti
OxOO NOP Ne radi nista
Ox 57 POP Brise rec s vrha steka
I
Ox5F SWAP Menja mesta dvema prvim recima sa steka
OxC4 WIDE Prefiksna instrukcija; sledeca instrukcija ima 16-bitni
l
, indeks
Slika 4-1 L Skup IJVM instrukcija. Operandi hujt. konst. i prom/Jroj sujcdnobajtni. Op"randi rm-t,
i f'OIIl<lk su dvobajtni. (nastavuk)
Postoji vise instrukcija za smdtanjc na stek rcci koje poticu iz razlicitih iz:vora. Ti
izvori mogu biti podrucje konstanti (LDC_ W), okvir lokalnih promenljivih (ILOAC) i
sama instrukcija (BIPUSH). Promenljiva sc moze i uzeti sa steka i smestiti u okvir lo-
kalnih promenljivih (ISTORE). Mogu '-C obaviti dve aritmeticke (IADD i ISUB) i dvc lo-
gicke opcracije (lAND i lOR) s najvise dvema rccima na stcku kao operandima. U svim
aritmetickim i logickim operacijama dve rcci se uzimaju sa steka, a rewltat se vw:'a
na stck. Postoje cetiri instrukcije La grananje programskog toka: jedna za bezuslovno
(GOTO) i tri za uslovno grananjc (IFEO. IFLT i IF_ICMPEO). Sve instrukcije za
grananje, kada se nadu u programu, mcnjaju vrcdnost registra PC za velicinu svog
( 16-bitnog, oznacenog) pomaka u memoriji, koji u instrukciji dolazi iza opkoda. Po-
mak sc dodajc adrcsi opkoda. Postoje i UVM instrukcijc za zamcnu mesta dve reci na
steku (SWAP), za dupliranjc poslcdnje reci ( DUP) i za njeno uklanjanje (POP).
Neke instrukcije imaju vise fonnata da bi se za uobicajene situacije rnogao klri-
stiti njihov kraci ohlik. U skup IJV!'vl instrukcija ukljucili smo i dva od nekoliko me-
hanizama kojima JVM to pnstile. U jcdnom slucaju zanemarili smo kraci oblit u
korist duleg. ali opstijeg oblika. U drugom slucaju pokazali smo kako sc prefiksna in-
strukcija WIDE mo;l.c upotrehiti za poddavanje naredne instrukcije.
Na kraju, postoji i instrukcija (INVOKEVIRTUAL) za pozivanje druge metode i in-
strukcija (IRETURN) za vracanje iz tc metode u mctodu kojajuje pozvala. Zbog sloie-
nosti ovog mchaninna dctiniciju smo malo uprostili, sto narn je omogucilo da
pozi vanJe mctode i Hacanje iz njc izvcdemo pomocu d ve jasne instrukcijc. Za razliku
od Jave. ovde postoji ogranicenjc da metoda mozc pozivati sarno metodu koja postoji
unutar nJcnng objekta. Ovo ogranicenje watno srnanjuje mogucnost orijcntacije na
objckte. ali nam s druge strane omogucujc da veoma uprostimo sam mehanizam jer
melodu ne moramo da lociramo dinamicki. (Ako nc poznajetc objcktno-orijcntisano
programiranjc. sloboclnu zanemarite prcthmlnu napomenu. Ovde smo Javu upruvo
degradirali u jezik koji nijc orijentisan na objekte. kao sto su C iii Pascal.) Na svim
racunarima. osim ns JVM ma;ini. adrcsa procedure za pozivanje direktno se odrcduje
instrukcijom CALL, tako da nas pristup nije specijalan, vee uobicajen slucaj.
................ -------
240
Poglavlje 4: Nivo mikroarhitekturc
Po>le dodatnog intervala :'>;:, izlaz iz pomeraca stigao jt: do registara preko magi-
strak c. Na taj nacin registri mogu da ucitaju podatke pred kraj ciklusa (pri nailasku
ivice signala radnog takta na slici 4-3). U potciklusu 4 ucitava se sadr7.aj re-
gistara j !lip-tlopova zaN i Z. On se zavrsava malo posle uzlazne ivice signala radnog
takta, kada su svi rezultati obrade smestt:ni, rezultati prethoclne operacije s rnemori-
jom na raspolaganju, a registar tv! PC je ucitao svoje podatke. Ovaj se proces sada ne-
prestano ponavlja sve dok r;e iskljuci racunar.
Uporedo sa upravljanjem pmlataka, rnikroprograrn treba da odrecli i sle-
decu mikroinstrukeiju, po\to nne nc trcba da se izvrsavaju onirn redom kojirn se nalaze
u upravljackoj memoriji. adrese sledece mikroinstrukcije zapoCinje na-
kon stu je rcgistar MIR uciLtc> p()datkc i stabilizovao ih. Najprc se u rcgistar MPC k.opira
Y-hitno pulje NEXT _ADDRESS. Unk se obavlja kopiranje, ispitujc sc polje JAM . .1\ko je
u njcmu \rednost 000. nc radi sc vise ni\ta; kada sc kopiranje polja NEXT _ADDRESS
zavrsi, sadr/aj rcgtstra MPC uk.aL.acc na sledCL'u rnikroinstrukciju.
Ukoliko su jcdan i li vi\L' httova polja JAM jednaki 1, mora se raditi. Akoje bit
JAMN poslaviJCB, na naj,rnaC:ajmJi bit reg:istra MPC primcnjuje sc upcracija OR s vred-
noscu N i; jcdnobitrlllt' flip-tlupa. Slicno turne, ako jc postavljen bit JAMZ, opt:racija
OR se obavlja s Z iz JCdnubitnog tlip-llopa. Ukoliku su oba ova bita posta-
vljcna. opc:racip OR se obavlja sa svakim od njiil. N i Z tlip-llopuvi potrcbni su /.alo
sto puslc u;.la;.nc ivicc signala radnog takta (dokjc signal na visokom nivou) magi-
strala l3 vi.\c ne d' hip pudatkc, pa sc izlazi iz ALU jcdinice nc mugu vise smatrati
ispravntnl. Ako statusne indikatorc ALU jedinicc sacuvamo u flip-t1opuvima N i Z,
tspravnc vn.:drwsti ;.,c nccc rncnjati i hice na raspolaganju;.a izracunavanja u veJ:i s re-
g:i;,tmm MPC, bel ob;.tra nato sta se dcsava u okolini ALU jedinicc.
Na siicl . .J.-h. i<>gika koja ubavlp ovo i.cracunavanje u;:nacenajt: sa .. Najz.nacajniji
bit". ( )na i!TclCUllaVa sicdL'CU Bulovu runkciju:
F (J,i\MZ Z; OR (JAMN AND N) OR NEXT ADORESS[8]
Ohr,tti!c' painju n,t tu da registar MPC mo/.c da dobije samo jcdnu od dve moguce
V
l. VrcJn<"t _ADDRESS.
2. VredtHlSI 1'-IEXT ADDRESS na l'iJi je najznacajniji hit prirnenjena operacija
OR s hnjcEl l.
Drct)-.ih JW>guc;l<lsti nt'llla. Ako jc najznacajniji bit polja NEXT_ADDRESS vee I,
k\lri(L:cnje t-i1l)Va JP-.MN ili JAMZ gubi srnisat1.
KilcLt .,u .svi bittvi polja JAM nule, adresa sledece mikroinstrukcije je 9-bitni broj u
p.lljtt NE.<TA::JDF-,ESS. Kada stt JAMN ili JAMZ jednaki l. postoje dve rnogucnosti:
_.4L:DRE3S t _ADDRESS po;,le t>peracije OR s vrcdnuscu Ox l 00 I pod pretpo-
1-,_, >!ll Jaj,; \ rccl:h >>l NEXT _ADDRESS S OxlFi. ( Simbol Ox oznaca' ada iza njeg:a sle-
di hd.st\1-::il:iaLI<l hmJ ' 0':\l je prikazano na slici 4-7. Za tck.ucu mikrninstmkciju na
I >kaci;i t ix 75. vrcdnl\o.t NEXT ADDRESS jc Ox92, a bit JAMZ postavljen je na 1. Shodno
tl>!'lC. a'r,.;a ckdc:ce mikruinstruk.cije zavisi od bita Z srncstcnog: tokum prcthodne ope-
retciic' .\U jdini,.:. Akn je bit Z jcdnak 0. sledcc:t mikroinstrukcija dolazi s lokacije
t lx \: l kc ilk J jc i'it Z jednak I. slcdeca rnikroinstrukcija dol,tzi sa lclk:tcijc Ox I 92.

4.1 Primer mikroarhitektmc
241
Adresa Addr JAM Bitovi za upravljanje putanJom podataka
Ox75 I Ox92 I 001 I I Postavljen bit JAMZ
Ox92
Ox192
Jedna od
dve naredne
Jokacije
I posle Ox75),
sto zavisi
ad vrednosti Z
Slika -t-7. !VIikruinstrukcip u koj,0j ic hit JAMZ postavlicn na I ima Jvc rnogucc narednc
miJ..roinstrukcijc.
Trcci bit u polju JAM jc JMPC. Ako jc on postavljen. na 8 bitova registra MBR se hit
pu bit primenjuje operacija OR sa 8 najmanjc znacajnih bitova polja NEXT _ADDRESS
tekuce mikroinstrukcije. Rezultat se salje u registar MPC. 81ok sa oznakum .,0'' na slici
4-6 obavlja opt:raciju OR izmcdu sadr:laJa registra MBR i polja NEXTADDRESS ako je
bit JMPC jednak I, a samo propusta vrednost polja NEXT _ADDRESS do rcgistra MPC
ako je bit JMPC jednak 0. Kadaje bit JMPC jcdnak I, najmanje znacajnih X hituva polja
ADDRESS su nule. NajznacajniJi hit moze da bude 0 i li I, pa jc vrednost polja
NEXT _ADDRESS kuja sc koristi uz hit JMPC OxOOO ili Ox I 00. Zbog cc:ga sc nckada ko-
risti vrednost OxOOO, a nekada Ox I 00. bice objasnjeno kasnije.
Mogucnost da se na saclrzaj registra MBR i vrednust NEXT_ADDRESS primcni ope-
racija OR i da se rczultat smesti u rcgistar MPC omogucava etikasnu real
grananja pmgramskog toka. lmajte na umu da se nwze zadati biln koja od 256 adresa.
sto je odrcdeno bitovima u registru MBR. Registar MBR cc: pu pravi lu sadrzati opkod,
t<li-.o dace rezultat upntrebe bita JMPC biti izbor jcdinstvcnc sledcee mikminstrukcije
1.a svaki mnguci opkod. Ova metoda je korisna za brzo skakanJc na J'unkciju kuja od-
govara upravo prcuzetom opkodu.
Da hi se ra;umelo ono sto slcdi. treha imati jasan uvid u vremcnski redusied do-
gadaja u racunaru, pa ga mo/.da trcba ukratko ponoviti. Kori,;tic'enw potcikiuse jer sc
oni mogulaktl J:amisliti. ali sujeclini stvarni dogadaji silazna ivica signala radnog tak-
ta. koja ;.apocinje ciklus, i njcguva uzlazna ivica, koja puni rcgistre iN i Z tlip-ll'npove.
Treba ponovo poglcdati sliku 4-3.
Tokum potciklusa I, iniciranog silaznom ivicom signal a rachwg takta. regi,tar MIR
sc puni sa adrcse koja se trcnutno nalazi u registru MPC. Tobllll polciklusa dciUJU
signali iz rcgistra MIR ina magistralu B izlaze podaci iz izahranih rcgistara. Za vreme
putciklusa 3. rade ALU jedinica i pomc:rac i gcneri;u stahilan rc?ultar. Duk ochijcl
potciklus 4. stabilizuju sc vrednosti na magistrali C. na rncmorijskoj magistrali i .\LU
jedinici. Pri nailasku tl/Jaznc ivice sig:nala raclnog takta, pune se rLgi;;tri s
C, kao iN i Z tlip-tlopovi. a registri MBR i MOR dobijaju traL.enc ruuiL1tc rada s mc-
muriJom koji jc zapoceo pri kraju prt:thodnog ciklusa putanjc: podataka (aku jc bi-
lo). Cim vrednost rcgistra MBR bude raspolofiva, puni se rcgistar iv1PC kau priprema
za sledecu mikroinstrukciju. Taku rcgistar MPC dobip woju vrc:dno<;t ntg:d.: ()ku src-
dine intc:rvaLlu kornc je signal radnog takta na visokum nivou, ali td: rt'gistri
250
Okv1r
lokaln1h
promeniJivih
pozivaoca
-
-
,.-
Stek pre izvrsen1a
instrukcije !RETURN
Vrednost koju
metoda vraCa
Prethodna vrednost
registra LV
Prethodna vrednost
registra PC
lokalne
promenljive
pozivaoca
Parametar 3
Parametar 2
Parametar.1
- Vezni pokazivac
Prethodna vrednost
reg1stra LV
Prethodna vrednost
reg1stra PC
Lokalne
promenljive
pozivaoca
Parametar 2
Parametar 1
-- Vezni pokazivac
Ia! .
Poglavlje 4: Nivo mikroarhitekture
-sP
-<-
Pocetak steka
pre izvrsenja
instrukc1je I RETURN
Pocetak steka
posle izvsenja
mstrukcije I RETURN
,.-
-
Stek posle izvrsenja
instrukcije I RETURN
Vrednost koju
metoda vraCa
Prethodna vrednost
registra LV
Prethodna vrednost
registra PC
Lokalne
promenljive
pozivaoca
Parametar 2
Parametar 1
I- Vezni pokazivac
I b)
- - SP
--- LV
Stika -1-U. (a) Mcmorija pn: izvrsavanja in,trukcijc !RETURN. (b) Posk izvrsavanja.
15 na levuj strani asemblcrskog programa nisu deo rezultata prevodenja, kao ni ko-
mentari (koji pocinju oznakom//). Oni su uncti da biste lakse razumeli sledccu sliku.
Javin asembler bi tada prcvco ascmblcrski program u binarni. prikazan na slici
-1--14(c). (Javin prevodilac u stvari obavlja intcrno asernbliranje i odmah dajc binarni
kod.) U nasem primeru uzdi smu da je i lokalna promenljiva l, da je j lokalna pro-
menljiva 2. a dajc k lokalna prnmenljiva 3.
Prevedeni kCldje jasan s;lm po scbi. Prvo se promenljivej i k stavljaju na stek i sa-
biraju a rczultat se smcsta u promcnljivu i. Tada se na stek stavljaju promcnljiva i
i konstanta 3, a zati m se poredc. i\ ko su jednake, programski tok skace na oznaku Ll,
gdc se promenljiva k postavlja na 0. Ukolikn nisu jednake, ne desava se nista, tj. na-
stavlja se izvrsavanje koda iza instrukcije IF _ICMPEO. Na kraju program skace na
oznaku L2. gdc .-,e dclov i then i else sw,rccu.
Stek upnanada za lJVivl program sa slik.e -1--14(b) prikazan je na slici 4-15. Pre
nego sto kod pocne da se izvrsava stck je prat,all, sto jc oznaceno horizontalnom lini-
jom iznad 0. Posk prvc instrukcije ILOAD na steku je promenljivaj, sto je oznaceno
uokvircnirnj iznad l prva instrukcija). Posle druge instrukcije ILOAD, na
steku sc nalazc clve reci (j i k iznad 2). Posle instrukcije I ADD na steku sc nalazi samo
jedna rcc- Lbir; + k. Kacla seta ree uzme sa steka i smesti u promcnljivu i, stekje po-
novo prazan (hmiz.ontalna linijJ iznad -1-).
4.3 Primer implementacijc
i = 1 + k;
if (i == 3)
k = 0;
else
j = 1- j;
2
3
4
5
6
7
8
9
10
11
12
ILOADj
!LOAD k
I ADD
!STORE i
ILOADi
BIPUSH 3
IF _ICMPEQ L 1
!LOAD J
BIPUSH 1
I SUB
!STORE J
G'oTo L2
13 L1: BIPUSH 0
14 !STORE k
15 L2:
(a) (b)
IIi = j + k
II if (i == 3)
II j = j- 1
II k = 0
Ox15 Ox02
Ox15 Ox03
Ox60
Ox36 Ox01
Ox15 Ox01
Ox10 Ox03
251
Ox9F OxOO OxOD
Ox15 Ox02
Ox1 0 Ox01
Ox64
Ox36 Ox02
OxA7 OxOO Ox07
Ox10 OxOO
Ox36 Ox03
(c)
Slika 4-1-1. (a) Kratak program na Javi. (b) Odgovarajuc'i Javin ""'mblcrski program.
(c) IJYM binarni k<'>d u heksadecimalnom zapi,LL
I I I
I i I
EB
9
EB
I i: 1 1
10
I i + k 1
11
I ; I
EB
4
[ uo J
12 13 14
Stika 4-15. Stek posle uzastopnih instrukcija sa slike 4-14(b ).
15
lnstrukcija 5 (ILOAD) zapocinje nareubu if lako sto promenljivu i smesta na stek
(5). Sledeca na stek ide konstanta 3 (instmkcija 6). Stek je posle poredenja ponovo
prazan (7 ). Instrukcija 8 jc pocetak dela else Java programa. Deo else se nastavlja do
instrukcije 12, a zatim preskace deo then i prelazi na oznaku L2.
4.3 PRIMER IMPLEMENTACIJE
Posto smo dctaljno objasnili mikro i makroarhitekturu, na red je dosla implementa-
cija. Drugim reeima, kako izgleda program koji se izvrsava na rnikroarhitcktUii a intcr-
prctira makroarhitekturu, i kako sve to radi? Pre nego sto odgovorimo na ova pitanja,
moramo paz.ljivo navesti notaciju koju cemo koristiti za opisivanje implementacije.
244 Poglavljc Nivo mikroarhitckturc
Uz to sto cuvaju lokalne promenljive, stekovi imaju i drugu namenu. U njima se
mogu cuvati operandi tokom izracunavanja aritmetickih izraza. Kada se koristi na
ovaj nacin. stek se naziva stck opcranada. Pretpostavimo da je procedura A, pre po-
zivanja procedure B. trebalo da izracuna iskaz
a1 = a2 + a3:
Jedan od nacina da sc to uradi jestc da sc promenljiva a2 smesti na stek, kao na sli-
ci 4-9(a). U ovum slucaju SP sc uveeava z.a broj bajtova u reci (npr. za 4) a prvi ope-
rand sc smcsta na adrcsu na koju on uka.cuje. l'otom se na stek smesta prnmenljiva a3,
kao na slici 4-9(bl. Napomenimo uzgred da cemo sve programske delove stampati
fontom Helvetica. lsti font ccmo koristiti i za opkml i masinske registre ascmblera, ali
cc imena programskih promcnljivih i proccdura biti kur:.il'OIIl. Razliku
pravimojcr imcna promcnljivih i proccdura smislja korisnik, dok su opkod i masinski
rcgistri unaped dctinisani.
[zracunavanje sad a l1lllZ.C da obavi instrukcija kuja ce Uleti dvc reei sa Stcka, sabra-
ti ih i rezultat p<movo smestiti na sll'k, kau na slici c\-9(c). Na kraju se rcc
mozc uzcti sa stela i ponovo smc,titi u loblnu pmmenljivu u I, kao na slici 4-lJ(d).
SP -
SP- -r//:;;; o2
7
/'//jl
a3
a2
LV -
LV-
SP
'
LV-- LV -

(a) lbl lei lui
Slika Aritmc'ticku izra(unavcmjc na steku npcrnnada.
Okviri pmmenljivih i stclovi operanada mogu se mcsati. 0ia primer, pri izracuna-
vanju izr<ua kao srujc x
2
+ f (x). jedan njcgov deo (npr. x
2
) mo1c da hudc na stcku
operanada u tcnutku kada se poziva funkcijaf Vrednost koju vraL'a runkl'ip tak<lLk se
stavlja na stek. iznad x
2
pa ih slcdcca instrukcija mol.c
Treba pomenuti da svi racunari koriste stck ;.a cuvanje lukalnih pr"mcnljivih. ali
ncmaju svi stek operanada. U stvari. vccina racunara ga nema. ali JV!\1 i lJVivl r:ltk
na slican nacin. zbog ccga snw uvde ukratku ohjasnili rad sa 'tekom. 0 stckuvima
ccmo vise govoriti u poglavlju 5.
4.2.2 lVlemorijski model IJVlVl arhitekture
Sada smo spremni za analiziranjc lJVM arhitckturc. On<t se u <lSn<wi ,,t,tuji od me-
morijc koja se rnol.c posmatrati na dva nacina: bo niz od c\.294.lJ6 7.::'CJ6 l>cl)tuva
(4GB) ili kau niJ: od l.U73.74l.S2c\ reei, od kojih <.;Vaka ima 4 hajta. Za razliku od
vecinc nivua !SA . .lavina virtuelna masina ne omoguca\ ada se apsclutnc mcnwrij,ke
adresc direktno vide na nivuu !SA. ali postoji vise pmlra;.umcv ani\1 adrtsa knjc
uuju pucdno stanje pokaJ:ivaca. l.JVM instrukcije mPgu pristupiti mcmmqi samn in-
deksiranjcm 11 odnusu na poka1ivac. Uvck su detinisana sledct'a pourucjct melllorijc:
Primer ISA arhitekture: IJV\\1

245
l. Podrwjc konsranti. I.JVM program ne mul.c upisivati poclatke u ovo podrucje.
a ono >e sastoji od konstanti, znakovnih nizova i pokazivaca na druga podruc-
ja mcmurijc koja sc mogu rd'crcncirati. Ono dubija svoj sadrzaj u trenutku
kada sc program ucita u mcmoriJU i pos!c toga se sadrzaj ne menja. Postoji
podrazumevani registar CPP koji sadrzi adresu prvc rcei podrucja konstanti.
2. Okvir lokulnih pmmcnljivih. Pri svakom pozivanju rnetnde rezervisc se pod-
rucjc memorije za smdtanjc promcnljivih tnkum njihm,lg zivotnog ciklusa.
Podrucjc se wve okvir lokalnih promenljivih. /'<a pocetku okvira nalaze se
parametri (nazvani i argumenti) s kojima sc mc't<lLb potiva. Okvir lokalnih
pmmenljivih ne ohuhvata i stek operanada. lDji prcdsravlja Lasebnu strukturu.
Mcdutim, zhog clikasnosti. l) nasoj implcmentaciji pustaviccmo stck opcrana-
da neposrcdnu i;.nad \lkvira lokalnih promcnljivih. Postoji pmlrazumevani
regis tar kuji sadrzi adrcc<.;u prvc lokacijc u okviru lokalnih pmmcnljivih. Zvace-
mo ga LV. Paramctri koji se prosleduju ltlkom pu;:ivanja metodc smdtaju se na
pocetak okvira lokalnih promenljivih.
3. c'ilek Ofh'runudu. Ok vir stcka jc ugranicenc vclicinc - .Iavin prevodilac ga iz-
racunava un,tpn:d. Pmstor za stek nalazi se neposredno iznad okvira
lokalnih promtnljivih, kao na slici 4-10. u nasuj implcmcntaciji zgodno je da
;,e stck upcranada .'>matra delum okvira l<1kalnih pmmenijivih. U svakom sluca-
ju. posl<lji podra;unll'vani rcgi,tar k<>ji sadr!i po;,lcdnju rcc na steku. lmajtc na
umu to da sc. 1.a ra;liku od registara CPP i LV. vrcdnost pokazivaca SP mcnja
tukum iL.vr'.avanja mctodc duk sc upl'randi smdtaju na stck ili uzimaju s njega.
II
I
, Podcuc1c I
konslanti i
I I
I_
L__ __
CPP
Stek3 SP
T cekuci I
oper;wdi
Okw3
T &kuce
!okJ!ne
oromerii1ve I
. . ---J- - LV
/ Okvir 2 I
/ LukCJine I
I orcowrdpvo I
I
Okvic I
Lokaine
1

Slika -1-10. Rulr2ilt .icl<vt IJVM mcrnurije.
Podrucje
metoda --PC
c\. Pudnujc lllC!r
1
,iu. :\a pPstcrji 1 pudrucjc mcmurije u kome se nala;i
pnlg!'clllL a kujc' -,c u U:'silX ;,i.,ll'mima naziva . .tckstualno' podrucje. Postoji
pudLILumcv,tni registdr sa adrc:s. 'ill ii:stn;kcijc cijc prcuzimanje sledi. Ovaj
poka;.ival' se zovc pr"gr:ll1l.,ki hrrlytc iii PC. Za razliku od drugih podrucja
mcmurije. rwdrul'Jc 111etuda se kao nit. hajtova.
r
'

l
254
4: Nivo
DEST"' H
DEST"' SOURCE
DEST"' R
DEST"' SOURCE
DEST"' H + SOURCE
DEST"' H +SOURCE+ 1

DEST"' H + 1
DEST"' SOURCE+ 1
DEST"' SOURCE- H
DEST"' SOURCE- 1
----
DEST"'- H
1-------------
DEST"' HAND SOURCE
1-------'--- .
DEST"' H OR SOURCE
DEST"' 0
-
DEST"' 1
DEST"' -1
Slika 4-16. Svc dozvoljcnc opcracije. Svaka od navedcnih opcracija mo/.e se pm,iriti dodavanjem
.. << g"- da hi se rczultat pomcrio ukvo ta I bajt. l'ia primer, jeJna od uobicajenih operacija jc
H MBR 8.
Da bisnw izbcgli ubunu. podsetimo da i'vlic-1 rnoze da pristupa memoriji na dva
nacimL Za citanje i upisivanjc podataka ll obliku 4-bajtnih reci kuristi se kombinacija
registara MAR/MDR i ovc uperacije se u mikruin,trukcijama oznacavaju sa rd i wr.
Za citanjc jednobajtnog opkoda iz niza instrukeija koristi sc kombinacija registara
PC/MBR koju u mikroinstrukcijama m:nacavamo sa fetch. Obc memmijske operacije
mogu sc obavljati istovrcmenu.
Meclutim, isti registar ne moze u i'tom ciklu'u preuzimati vrednost iz memorije i
s putanje podatab. Razmotritc sledeci ktid
SP; rd
MDR H
Prvom mikroin;,trukcijom sc vreclmd iz memorijc dodcljujc registru MDR pri kra-
ju druge mikroinstrukcijc. Meduttm, u isto vreme druga mikroinstrukcija takode do-
dcljujc vrcdnost registru MDR. Ove dve narcdbe '>C sukobljavaju i nisu dozvoljene jer
je rez.ultat nepredvidljiv_
Setite se da svaka mikroinstrukcija mora da obezbedi adresu mikroinstrukcije koju
treba sledeeu izvrsiti. Obicno se do gada da mikroinstrukciju poziva samo jcdna clruga
mikroinstrukcija- ona kuja '>C nalazi u prethodnom redu. Da bi se mikroprogrameru
olaksao posao, mikrochembler po pravilu dodeljujc adresu svakoj mikroinstrukciji
(nc nbavewo redosledom kujim sc pojavljuju u upravljackoj memoriji) i ispunjava
poljc NEXT _ADDRESS. takn da se mikroim,trukcije ispisane u uzastopnim redovima
izvrsavaju jedna za clrugom.
I
I
I
4.3 Primer implcmcntacijc
255
Ponekad mikroprogramer zeli da napravi uslovni iii bezuslovni skok. Bezuslovni
skok (grananje) oznacava se jcclnostavno:
goto oznaka
Ova naredba se moze ukljuciti u svaku mikroinstrukciju cia bi sc iaicito imcnovao
njen sledbenik_ Na primer, nizovi mikroinstrukcija najcdce se zavrsavaju povratkom
na prvu instrukciju glavne petlje, tako da poslednja instrukcija takvog niza po pravilu
sadrzi i nareclbu
goto Main1
Obratite paznju nato daje putanja podataka dostupna za normal an rad cak i tokom
mikroinstrukcije koja sadrzi naredbu goto. U krajnjoj liniji. svaka pojedinacna mikro-
instrukcija sadrzi poljc NEXT_ADDRESS. Nareclba goto samo daje uputstva mi-
kroasembleru da u ovo poljc umcsto adrcsc mikminstrukcije iz slecleccg rcda postavi
zadatu vrednosL Svaki red bi u principu trebalo da ima nareclbu goto, samo sc ona (sto
je ?godno za programcra) mozc izostaviti ukoliko jc ciljna adresa sledeci reel.
Za uslovno grananje programskog toka potrcbna nam je drugacija notacija. Serite
sc da polja JAMN i JAMZ koriste bitove N i Z. koji sc podesavaju na osnovu izlaznih re-
zultata ALU jedinice. Ponekad je. na primer, potrebno proveriti da li je vrednost u nc-
kom rcgistru nula_ Vrcdnost iz tog rcgistra mogla bi sc propustiti kroz ALU jedinicu
i ponovo smestiti u isti registar. Kada napiscmo
TOS = TOS
to izgleda cudno, ali ova narcdba radi upravo ono sto smo zamislili (poddava Z tlip-
tlop na osnovu vrcdnosti TOS). Da bi mikroprogrami lcpsc izgledali, prosiriccmo MAL
clodajuCi dva nova imaginarna rcgistra. N i Z. kojima se mogu dodeljivati vrednosti_
N a primer, narcdba
Z =TOS
saljc vrcdnost rcgistra TOS u ALU jcdinicu i tako poddava Z (iN) llip-tlopovc. ali je
nigde ne smc!ita. Kada Z ili N upotrebimo kao odrediste, mi u stvari nalazemo mikro-
asembleru da svc bitove polja C sa slike 4-5 postavi na nulu. Putanja podataka obavlja
uobicajen ciklu' uza sve clozvoljene operacije, ali se nista nc upisuje u registre. Obra-
tite paz.nju nato cia je svejcdno da li je oclrediste N iii Z; rnikroinstrukcija koju gene-
rise mikroascmbler u oba slucajaje ista_ Prograrncri koji namerno izabcru ,.pogrdnu'
mikroinstrukciju, bice kaznjeni jednonecleljnim prisilnim radom na originalnom
IBM-ovom PC racunaru s raclnim taktom od 4,77 MHL
Sintaksa kojom se mikroasembleru nalaze da postavi bit JAMZ glasi:
if (Z) goto L 1; else goto L2
Posto hardver zahteva da 8 najrnanje znacajnih bitova ovc dve adrese budu jedna-
ki, rnikroasemblcr to treba da postuje_ S drugc strane, posto L2 moze da bude bilo gde
u nizih 256 rci'i upravljacke rncrnorije, mikroasembler ima mnogo slobode da pro-
nade raspoloziv par adresa.
248
Poglavljc 4: Nivn mikroarhitckturc
Mehanizam pozivanja metode je sledeci. Pozi va1ac prvo stav1ja na stek referencu
(pokazivac) na objekat koji treba pozvati. (Referenciranjc u IJVM masini nijc potreb-
no jer se ne moze zadati nijedan drugi objekat, ali jc zadrzano zbog sag1asnosti sa
JVM masinom.) Na s1ici 4-12(a) rcferenca je naznacena sa OBJREF. Poziva1ac pot om
na stek stavlja parametre mclode (u ovom primcru Pararnetar 1, Pammetar 2 i Para-
mctar 3). Na kraju se izvrsava instrukcija INVOKEVIRTUAL.
Parametri
stavl1ent
na stek
Okvtr
lokalnih
promenljivth
poztvaoca
Stek pre izvrsenja
instrukcije INVOKEVIRTUAL
Parametar 3
Parametar 2
Parametar 1
OBJREF
vrednost
LV
,..
Prnthodna vrednost
reg1stra PC
Lokalne
promenljive
poztvaoca
Parametar 2
Parametar 1
r Vezni pokaZtvac
Ia)
SP
Pocetak steka
posle izvrSenja
instrukcije
INVOKEVIRTUAL
Pocetak steka
pre izvrSonp-1
tnstrukcije
INVOKEVIRTUAL
,..
'-
,..
Stek posle instrukcije
INVOKEVIRTUAL
Registar
LV pozivaoca
Registar
PC pozivaoca
Prostor za lokalne
promenljive
pozivaoca
Parametar 3
Parametar 2
Parametar 1
1- Vezni pokazivac
Prethodna vrednost
registra LV
Prethodna vrednost
req1stra PC
Lokalne
promenlpve
pozivaoce
Paratnetar 2
Parametar 1
L...
t- Vezni poka?ivac
J
I b)
-- SP
- -LV
Slika (a) vkmorij" pr.: ilH,.:nja ""trukcij.: INVOKEVIRTUAL. I hi Poslc i;, rscnp.
lnstrukcija INVOKEVIRTUAL ohuhvata rastojanjc (rust) koJC u podrucju korhlanti
o;.nacava 1okaciju na kojoj se unutar pmlrucja metoda nalazi pocetna adrc-;a mctmk
koju lrcha pozvati. Medutim. iako na 1okaciji na koju ukazuje poka;.ivac pm,loji kC>J
metodc. prva cetiri bajta lt podrUCJU metoda specijalne poclalkc. Prva dva bajta
se tumace kao 16-bilni ceo broj koji oclrectujc hroj parametara mclode (paramelri 'u ra-
nije stavljcni na stek). Za ovu svrhu sci OBJREF racuna kao paramctar: paramctar 0.
Ovaj 16-bitni ceu broj. J.ajcdno s vrcdnoscu rcgistra SP, daje 1okaciju OBJREF. lmajre
na umu da registar LV ukazuje na OBJREF, a nc na prvi paramctar. 0 tcHnc na
ukazuje LV mo/.e sc prilicno slobndno mllucivati.
Druga Jva bajta u podrucju metoda tumacc se kao drugi 1 (1-bitni ceo hwj koji
odredujc velicinu podrucja 1oka1nih promcnljivih za mctodu koja se pr>ziva. Tb jL'
ncophodnu jer se za metodu obrazuje nov stek kuji pocinje ncposreclno iznad ukvira
luka1nih promcn1jivih. Na kra.JU, peti bajt u pudrucju metoda sadrzi opkm.i prve in-
strukcijc koju treha izvrsiti.
4.2 Primer ISA arhilckturc: I.JVM
249
Redos1ed dogadaja kada se pozove instrukcija INVOKEVIRTUAL prikazan je na slici
4-12. Dva ncoznaccna indeksna bajla koja sledc iza opkoda koristc se 1.a kon-
struisanje indeksa u tabeli poclrucja kon.slanti (prvi bajtje Lnacajniji). Jnstrukcija iz-
racunava pocelnu adresu novog okvira 1ukalnih prornenljivih oduzimajuCi broj
paramctara od vrednosli pokazivaca steka i poddavajuci registar LV taku da ukazuje
na OBJREF. Na ovoj 1okaciji, brisuci OBJREF. smdta sc adresa lokacije na kuju trcba
staviti slant vrednost registra PC. Ta adresa se izracunava tako sto se adresu u re-
gistru LV dodaje ve1iCina okvira 1oka1nih prornenljivih (paramelri + 1okainc pro-
men1jive). Neposrcdno iznad adrese na kojoj ce hili smdtena stara vrcdnosr registra
PC, na1azi se adresa na koju leba smcstiti staru vn.:clnust registra LV. Odmah iznad nje
pocinje slek za novopozvanu proq:duru. Registar SP se pustavlja tako da ukazuje na
slant vrednosl rcgistra LV. sto jc vrcdnost ncpw,rednu ispod prve prazne lokacije na
stcku. Upamtite cla registar SP uvck pokazujc na prvu rcc na sleku. Ako je 'tek prazan,
on ukazuje na prvu lokaeiju ispod njegajcr nas stek raste prL'ma visim adresa-
ma. Na nasim s1ikama slck uvck rasle prema \ isim adrcsama na vrhu strane.
l'oslcdnja opcracija pri inslrukcijc INVOKEVIRTUAL jcstc postavljanje
rcgislra PC tako da ukaL.uje na peti ba_1t prostura re.ccrvisanc1g La kCJd metode.
In.strukcija \RETURN obrce redo.sled uperacija koji i;vrbva instrukcija INVOKEVIR-
TUAL, kau sto sc vidi na slici 4-13. On a uslohada pros lor koji jc koristila po1.vana me-
lmla. Takode vraca slek u prvobitno slanjc. osirn sto -;u ( l I rcL OBJREF (sada ohrisana)
i svi njcni parametri uzcti sa steka i sto 12.1 vrcdnusl kuju vraca metoda stav1p na
vrh stc:ka ( na meslo kuje _je raniJC zau;imala rec OBJREF). Da hi p<mnvu u.sposlavi1a
staru stanje, inslrukcija iRI::TURN treba da p<lka!.ivaCima PC i LV dndeli njihove stare
vrednusti. Ona lo radi lakcJ stu pri-;tupa ve!IHJITI pukaLi\ acu. engl. Lin/... poilller (koji
predstavlja rec odredc:nu tekucom vredtw,:;l'tt pukazivaca LV). Na toj 1okaciji, gde jc
prvohiiilo bila smdtcna rcc OBJREF. instrtikcija INVOKEVIRTUAL je smc;,li1a adresu
na k<1joj se nala1.i Hcdnost pokaL.J vaCa PC. rcc i rcc iznad njc uzimaju se sa
steka da bi sc punovo uspostavi1o staro sta;;je pokazivaca PC i LV. Vreclnost koju vraca
metoda. n:t vrhu std,a. k11pira sc'" u lukaciju kujoj jc ranije hila sme\tena
vrcdnost OBJREI". a regi;,tar SP se takll da [ll'iHl\U na tu lokaciJu.
1.iprav1j:tnJe tokumje laku vracenu inc,lrukciji "''P nep<lsrcdno s1edi iza
instrukcije INVOKE'/iRTUAL.
Nas r:tCunar ncnla ub;nu-i;Lvne in.strukci.Jc. a nemar1w namcru ni da ih dodaje-
mu. One mu ne trebaju. bas bo ni .Ia\ irwj virrueln,,j ma,:;ini. au zvctnicnoj JVM spcci-
tikaciji J1L'l1l:t ni pomena o uLtzlw-izbznim Tec'I"L'tiCari smatraju da je
racunar k11ji nc pnhvala. nili isp<ll"l!Cuic podatke .,bczbcdcm. iJVM ucilava i upi'LI.JC
pmlatke P<'livajuc'i specijalnc uLttno-iz!anJc mc1m!e.t
4.2.4 Prevodcnje .l u I.JY:\l
Pog!cdajmo :;ada ve1.u i;medu .lave i l.J"Vi\1. Na 'lir:i -1--l-f(a)
van deliL' k;Kla lla J:tvi. hada '>C c)]] Jll"U[lll\[j KfO/ .Javin prevudilac, \"CI"{)VatllO ge-
llCI"isali pmgram u lJVM asembleru. prikManna sli,i .f-l-l-1. h). Bnjevi redova od l do

258
Poglavlje 4: Nivo mikroarhitekture
l. Uveeava se PC (u njcmu se nalazi adresa prvog bajta nakon opkoda).
2. Zapocinje se preuzimanje sledeceg bajta u registar MBR. Taj bajt ce zatrebati
pre iii kasnije, iii kao operand za tekucu TJVM instrukciju iii kao slcdeci op-
kod (kao u slucaju instrukcije IADD, koja nema operande).
3. Obavlja se viseslruko grananjc na adresu iz registra MBR na pocctku pelljc
Main1. Ova adrcsa jc jednaka numerickoj vrednosti opkoda koji se lrenutno
izvrsava. U regis tar MBR smeslila ju jc prelhodna mikroinstrukcija. Obratile
paznju na to da vrednost koja se preuzima ovom mikroinstrukcijom uopste
ne utice na visestruk.o grananje.
Ovde zapocinje preuzimanjc slcdeceg bajta, tako dace on biti raspoloziv na pocet-
ku trecc mikroinstrukcije. On tada moze biti potreban alii ne mora. Posto ce sigurno
biti po!reban u nckom trenutku, nece skoditi ako sc ranije preuzme.
Oznaka
Main1
nop1
iadd1
iadd2
iadd3
isub1
isub2
isub3
iand1
iand2
iand3
ior1
ior2
ior3
dup1
dup2
pop1
pop2
pop3
swap1
swap2
swap3
swap4
swap5
swap6
Operacije Napomena
PC= PC+ 1, fetch; goto (MBR) MBR sadrzi opkod; preuzmi sledeci bajt; posalji
goto Main1
MAR = SP = SP - 1, rd
H =TOS
MDR = TOS = MDR + H; wr;
goto Main1
MAR = SP = SP - 1 ; rd
H =TOS
MDR = TOS = MDR- H; wr;
goto Main1
MAR = SP = SP - 1 ; rd
H = TOS
MDR = TOS = MDR AND H;
wr; goto Main1
MAR = SP = SP- 1: rd
H = TOS
MDR = TOS = MDR OR H; wr;
goto Main1
MAR = SP = SP + 1
MDR = TOS; wr; goto Main1
MAR= SP = SP- 1; rd
TOS = MDR; goto Main1
MAR = SP - 1; rd
MAR= SP
H = MDR; wr
MDR = TOS
MAR = SP - 1, wr
TOS = H; goto Main1
na
Ne radi nista
Procitaj pretposlednju rec na steku
H = vrh steka
Saberi dve poslednje reti; rezultat upisi na vrh
steka
Procitaj pretposlednju rec na steku
H = vrh steka
Oduzmi; rezultat upisi na vrh steka
Procitaj pretposlednju rec na steku
H = vrh steka
Obavi operaciju AND; upisi rezultat na nov vrh
steka
Procitaj pretposlednju rec na steku
H = vrh steka
Obavi operaciju OR; rezultat upisi na nov vrh
steka
Uvecaj SP i kopiraj ga u MAR
novu rec na stek
Protitaj pretposlednju rec na steku
Sacekaj da se novi sadrzaj registra TOS ucita
iz memorije
Kopiraj novu rec u TOS
Posta vi MAR na SP - 1: ucitaj drugu rec sa steka
Postavi MAR na poslednju rec
Sacuvaj TOS u H: upisi drugu rec na vrh steka
Kopiraj stari TOS u MDR
Posta vi MAR na SP - 1 ; upisi drugu rec na stek
AZuriraj TOS
Slika 4-17. Mikroprogrum za procesor Mic-1.
4.3 Primer implementacije
Oznaka
bipush1
bipush2
bipush3
iload1
iload2
iload3
iload4
iload5
istore1
istore2
istore3
istore4
istore5
istore6
wide1
wide2
wide

wide_iload3
wide iload4
wide rstore1
wide _istore2
wide istore3
wide istore4
ldcw1
Ide_ w2
ldc_w3
ldc_w4
iinc1
iinc2
iinc3
iinc4
iinc5
iinc6
goto1
goto2
goto3
goto4
goto5
goto6
Operacije
SP = MAR = SP + 1
PC = PC + 1 ; fetch
MDR = TOS = MBR; wr; goto
Main1
H =LV
MAR= MBRU + H; rd
MAR = SP = SP + 1
PC= PC + 1; fetch; wr
TOS = MDR; goto M<Jin1
- ------- --
H= LV
MAR= MBRU + H
MDR = TOS; wr
SP = MAR = SP- 1; rd
PC = PC + 1 ; fetch
TOS = MDR; goto Main1
--- ---
PC= PC+ 1; fetch;
goto (MBR OR Ox1 00)
PC = PC + 1 ; fetch
H = MBRU 8
H = MBRU OR H
MAR = LV+ H; rd; goto iload3
PC = PC + 1 ; fetch
H = MBRU 8
H = MBRU OR H
MAR = LV+ H; goto istore3
PC = PC + 1: fetch
H = MBRU 8
H = MBRU OR H
MAR = H + CPP; rd; goto
iload3
H =LV
MAR= MBRU + H: rd
PC = PC + 1; fetch
H = MDR
PC = PC + 1, fetch
MDR = MBR + H; wr;
goto Mam1
OPC =PC -1
PC = PC + 1 , fetch
H= MBR 8
H = MBRU OR H
PC = OPC + H; fetch
goto Main1
Napomena
----
MBR = bajt za stavljanje na stek
Uvecaj PC, preuzmi sledeci opkod
Prosiri znak konstante i stavi je na stek
MBR sadrzi indeks; kopiraj LV u H
259
MAR = adresa lokalne promenljive koju treba
staviti na stek
SP ukazuje na nov vrh steka; pripremi se za
upisivanje
Uvecaj PC; preuzmi sledeci opkod; upisi na vrh
steka
Azuriraj TOS
MBR sadrzi indeks; kopiraj LV u H
MAR = adresa lokalne promenljive koju treba
smestiti
Kopiraj TOS u MDR; upisi rec
Procitaj pretposlednju rec na steku
Uvecaj PC; preuzmi sledeci opkod
AZuriraj TOS
Preuzmi bajt operanda iii sledeci opkod
Visestruko grananje s postavljenim
najznacajnijim bitom
MBR sadrzi prvi indeksni bajt; preuzmr drugi
H = prvi indeksni bajt pomeren 8 bitova ulevo
H = 16-bitni indeks lokalne promenljive
MAR = adresa lokalne promenljive za stavljanje
na stek
MBR sadrzi prvi indeksni bajt; preuzmi drugi
H = prvi indeksni bajt pomeren 8 bitova ulevo
H = 1 6-bitni indeks lokalne promenljive
MAR = adresa za skladistenje lokalne
promenljive
MBR sadrzi prvi indeksni bajt; preuzmi drugi
H = prvi indeksni bajt << 8
H 16-bitni indeks za smestanje u podrucje
konstanti
MAR = adresa konstante u podrucju konstanti
MBR sadrzi indeks; kopiraj LV u H
Kopiraj LV + indeks u MAR; procitaj promenljivu
Preuzmi konstantu
Kopiraj promenljivu u H
Preuzmi sledeci opkod
Stavi zbir u MDR; azuriraj promenljivu
Snimi adresu opkoda.
MBR = prvi bajt pomaka; preuzmi drugi bajt
Pomeri i snimi oznaceni prvi bajt u H
H = 16-bitni pomeraj
Dodaj pomeraj na sadrzaj OPC
Cekaj na preuzimanje sledeceg opkoda
Slika -t-17. Mikroprogram za procesor !'vlic-1.
F
u
t

' I
I'
Poglavlje 4: Nivo mikroarhitekture
252
-------------------------
4.3.1 Mikroinstrukcije i notacija
Upravljacku mcrnoriju mo/.cmo opisivati kao binamu, sa 36 bitova po reci. Ipak,
kao sto jc uubicajeno u programs kim jczicima, veoma jc zgodnu uvesti notaciju kuja
prenosi sustinu onoga cimc zclimu da se bavimo, dok i'tuvremeno prikriva detalje
kojc ne trcha razmatrati iii ih automatskoj ohradi. Prvo valja zapamtiti dajc-
zik koji smo izabrali kao primer uglavnom treha da ilustrujc knncepte; on nijc opti-
mizovan za cfikasno projektovanje. Da ga treba kuri,lili pri pmjcktovanju, upotrehili
bismo drugaciju notaciju kako hi projektant u rukama in:<h> mabimalno tlcksibilnu
alatku. Jedan od a'pl'kata gde je to vaLno jcslc izbor mcmorija nije
ureckna logicki, ne postoji ,slcdcea instrukcija' kuja se podra;umeva u nim upera-
cija. Vcliki cku elikasnu,ti pmgrama JJl>licc od 'posobnosti projcktanta (iii asemblcra)
da adresc pmnalazi na pravi nacin. Stoga cemo najpre predstaviti jcdnostavan simbo-
J1cki jczik koji potpunu opisujc svaku opcraciju. ali ne dclaljno kako se
sve adrcse mogu udJ-cL1ivati.
nntacija u jcdnum rcdu opisuje S\'C aktivnosti koje sc odvijaju lokom jednog
ciklusa radnog takta. Opcracijc bismo lcorijski mogli npisati i na nckom jcziku viso-
kog nivoa. McdutinL upravljanje pojcdinacnim ciklusirna veorna je vazno zalo sto
ostavlj:l rnoguc'nmt da obavljamu opcracip, a neuphodnaje i rnoguc-
n<lSl da analinranw c;vaki ciklus )(ako hismo i provcrili operacije. Ako namjc
cilj hr;a, elikasna impkrncntacija 1kadajc sve ostah> priblilno jcdnako, uvekjc boljc
raditi hrw i dikasno, ncgo spom i ncetlkasno). ''nda nam jc vazan svaki ciklus. U
stvarnim impkmcnLtcijama. krijc mnogc sitnc trikove i ponckad je redosled
opcracija nejasan .samn da hi ,c; ustcdco jcdan ciklus. Ustecia ciklusaje vcoma is-
plat iva: ako se inslPJLcija kuja tr:tjL' Cctiri ciklusa mol.e svesti na elva ciklusa. onda ona
radi dvaput br/.t, a l<l uhrzanjc se useti svaLi put kadjc izvrsimo.
!'o jednom m! m< >gucih pristupa, samo r<lJli,enw kc1je treba aktivirati u sva-
koin ciklw:u radll<lg takta. Pn.:tposlavimo cia I! odn.:denom ciklusu hocemo da uvec'amo
\ rcdnclSl rcgistra SP. lstu Uku, hoc'c'lllll da /ajllCI1Cil10 i operaciju citanja ida ,]edeca
bwk una :,op ::.: naLvi na lokaciji 122 u uprav!jackoj mcmoriji. :VIogli his-
n1o
ReadRegis:er SP. i'<L!_' 'lriC. WSP, "iG.id. NEXT 122
:;Llc VIJSP zuaCi .. uri\r 11 rc:::i::tar SP". nv:tkva nntaciia jc pc1tpuna, ali sc te;ko raw me.
/bng 1"ga c'emu k; mbincv:tti na pr;r.xLm. intuitivan nacin cia bismo istakli
sc stvarno
SP SP + 1. rd
na:; 1:\licr,, Language! visokog nivoa .. MAL"
( na ;to i aku budctc 111orali da na njen1u piSete
!ml<lgL> J.;o,b i. MAL <H
1
r;v<<\ a U toku svakug ciklusa
1noi .: Ut"'i...,i\Jtlll biln k11ji ali prdviiu upi;-,uje Sarnuje-
dan :nt;i.: di.l prnd,..:Ji naB :-.iranu _-\LU Na strani A. nloZe-
mo da +I. r;, -I 1 r,gi,tcu H. lctJ nrtcin. kao i u Javi. pomucu jednostavnc
I
4,3 Primer implcmentacije
253
naredbe dodele mozemo da zadamo operaciju koju treba izvrsiti. Na primer, da bismo
kopirali sadrzaj registra SP u rcgistar MDR, moLemo napisati
MDR SP
Ako zelimo da ukazerno da ALU jcdinica, obavlja i ndto drugo, LIZ prosledivanje
signata s magi,trale B mozemo, na primer, napisati
MDR H + SP
cime se sadrzaj registra SP dodaje sadrhju registra Hi rczultat upisuje u regis tar MDR.
Operator + ima svojstvo komutativnosti (slo znaci da rcdosled operanada nije
vazan), pa se gornja naredba moze napisati
MDR SP + H
pri cemu ce sc dobiti ista 36-bitna mikroinslrukcija (mada ako sc slrogo drzimo pra-
vila. H mora da bude levi operand aritrneticko-logickc jcdinice).
Trcba pazljivo da biramo samo lcgalne operacijc. Najvaznije lcgalnc opcracijc su
prikazane na slici 4-l t'J. gde SOURCE ( izvoristc) mo/,e cia bude hiln koji od rcgist.1ra
MDR, PC, MBR, MBRU, SP. LV, CPP, TOS iii OPC (MBRU je ncoznaccna verzija rcgistra
MBR). Svi ovi rcgistri preko magistrate B mogu biti ulazi u ALU jcdinicu. Slicno to-
me, DEST (odrcdiste) moze da budc bilo koji od registara MAR, MDR, PC, SP, LV, C"P,
TOS. OPC iii H. jer su svi oni povezani sa izlazom ALU jedinice preko magistrale C.
Navedeni format mozc da vas zavcde jer mnoge naizgled razumne narcdbc nisu lc-
galnc. Na primer, naredba
MDR = SP + MDR
izgleda savrseno logicna. ali ncma nacina da se ona izvedc u okviru jcdnog ciklusa na
putanji podataka sa slikc 4-6. Ovo ograniccnje postoji l'.atn slo prilikom sabiranja (;to
nije uvecanje iii umanjenje za I) jcdan ocl opcranada mora da se nalazi u registru H.
Slicno tome. i narcdba
H H- MDR
mozda bi mogla da radi ncsto korisno. ali jc i on a t.abranjena zalu sto jc registar H jc-
dino mogucc izvoristc umanjioca (vrednosti koja se odu;ima). Na a'cmblerujc cia od-
haci naredhe kojc izglcdaju ispravno, ali su u slvari nedo;voljenc.
Notaciju prosirujemo unosenjem vise znakovajednakosti da bismo dm:vulili
struko dodeljivanje. Na primer, ciodavanje vrcdno.sti I registra SP i
nje rezullata ponovo u registar SP, kao i upisivanje u rcgistar MDR mn:l.c se pos;ici
komanciom
SP MDR SP + 1
Citanje i upisivanje podataka u memoriju u obliku -i-bajtnih reei, u mikroinstruk-
ciji cemo oznacavati sa rd i wr. Preu;rirnanjc bajta preko jcdnobaJlnog prikljucka
oznacavacemo sa fetch. Dodcljivanje i memorijska opcracija mogu c;e ohavljalt u
istorn ciklusu. To oznacavamo tako stu opcracije pisemu u istom rcdu. "":"
i
i l
262
Poglavlje 4: Nivo mikroarhitekture
Na pocetku treeeg ciklusa (mikroinstrukcija iadd3) MDR sadrzi sabirak preuzet iz
memorije. On se u ovom ciklusu dodaje sadr2:aju registra H i rezultat se ponovo sme-
sta u MDR, kao i u TOS. lsto tako, pocinje i operacija upisivanja da bi se nova prva rec
na steku smestila u memoriju. U ovom ciklusu naredba goto dodeljuje adrcsu oznake
Main1 registru MPC, vracajuci nas tako na pocetak, sto je priprema za izvrsavanje sle-
deee instrukcije.
Ako je slcdcei IJVM opkocl u registru MBR jednak Ox64 (ISUB), ponovo ee zapoce-
ti skoro isti niz clogadaja. Nakon sto se izvrsi Main1, programski tok se predaje mikro-
instrukciji na aclresi Ox64 (isub1 ). lza nje slede mikroinstrukcije isub2 i isub3, a oncla
opet Main1. Jedina razlika izmedu ovog niza i prethodnog lcZ.i u tome sto se u fazi
isub3 sadrzaj registra H ne dodajc vrcdnosti registra MDR, vee se oduzima od njc.
lnterprctiranje instrukcije lAND skoro je isto kao intcrprctiranje instrukcija IADD i
ISUB, osim sto sc na dve poslcdnje rcci sa steka primenjuje operacija AND bit po bit,
umesto da se sabiraju iii oduzimaju. Slicno se ddava i sa instrukcijorn lOR.
Ako IJVC opkod odgovara instrukcijama DUP. POP iii SWAP, stck mora da se po-
desi. lnstrukcija DUP duplira poslednju rec na steku. Posto se vrednost te reci vee
nalazi u rcgistru TOS, operacija se svodi na uvecanje registra SP tako da ukazuje na
novu lokaciju, i kopiranjc sadrzaja registra TOS u nju. Instrukcija POP is to jc tako jed-
nostavna- ona umanjuje saclrzaj registra SP da bi prva rec na steku bila odbacena.
Medutim, da bi prva rec na steku uvck bila u registru TOS, neophodno je.da se nova
prva rec ucita iz mcmorijc i upise u TOS. Na kraju, instrukcija SWAP obezbeduje raz-
menu vrcdnosti izmcctu dve mcmorijske lokacije: dve prve reei na steku. Operacija je
jednostavna jcr regis tar TOS vee sadrzi jednu od tih vrednosti, pa se on a ne mora uci-
tavati iz mcmorije. Ovu instrukciju detaljnije eemo obraditi malo kasnije.
lnstrukcija BIPUSH malo je komplikovanija posto iza opkoda sledi jedan bajt, kao
sto je prikazano na slici 4-1 X. Njega treba tumaciti kao oznacen ceo broj. Taj bajt, koji
je tokom petljc Main1 vee sme'iten u registar MBR, mora imati znak prosiren na 32 bita
i treba ga staviti na stck. Daklc. instrukcija BIPUSH mora da prosiri znak bajta u regi-
stru MBR na 32 hita i cia ga kopira u registar MDR. Na kraju, SP se uveeava i kopira u
registar MAR, pace operand biti upisan na vrh steka. lstovremeno. operand mora da se
kopira i u registar TOS. Obratite paznju i nato da PC mora hiti uveean pre vraeanja u
glavni prograrnski tok registra. tako Ja petlji Main1 bude na raspolaganju novi opkod.
I BIPUSH I BAJT I
(OxlO)
Slika -t-18. Format instrukcije BIPUSH.
Razmotrite zatim instrukciju ILOAD. U instrukciji ILOAD iza opkoda takode sledi
bajt, kao na slici 4-1 t)(a), ali on predstavlja (neoznaccn) indeks za identiflkovanje one
reci u prostoru lokalnih promcnljivih koju treba staviti na stck. Posto je na raspolaganju
jedan bajt. postoji samo 2
8
= 256 razlicitih reci (tj. prvih 256 reci ll prostoru lokalnih
promenljivih). Za instrukciju ILOAD potrebne su operacijc citanja (za dobijanje reci) i
upisivanja lza stavljanjc reCi na vrh steka). Medutim, da bi se dobila adresa za citanje,
4.3 Primer implcmentacije
263
pomeraj iz registra MBR mora se clodati sadrzaju registra LV. Posto se registrima MBR i
LV mozc pristupiti samo preko magistrale B. saclrzaj rcgistra LV najpre sc kopira u H
(u mikroinstrukciji iload1 ), a zatim se dodaje sadrzaj rcgistra MBR. Rezultat sabiranja se
kopira u registar MAR i zapocinje se operacija citanja (u mikroinstrukciji iload2).
(a)
(b)
Slika 4-19. (a) lnstrukcija !LOAD sjednobajtnim indeksom. (b) lnstrukcija WIDE !LOAD
s dvohajtnim indcksom.
Registar MBR se pri indeksiranju malo clrugacije koristi nego u instrukciji BIPUSH,
gcle mu je prosirivan znak. Porncraj jc u slucaju indcksa uvek pozitivan, pa se rasto-
janjc u bajtovima mora turnaciti kao neoznacen ceo broj, dok sc u instrukciji BIPUSH
ono tumaCi kao oznacen 8-hitni ceo hroj. Veza registra MBR s magistralom B brizljivo
JC projcktovana tako da omogueuje ohe operacije. U slucaju instrukcije BIPUSH (ozna-
cen 8-bitni ceo hroj), ispravnoje prosiriti wak (tj. kopirati krajnji levi bitjcdnobajtnog
rcgistra MBR u 24 najznacajnija hita magistrate B). U slucaju instrukcije ILOAD (ne-
oznacen 8-bitni ceo broj), ispravno jc da se oni ispune nulama. Ovc dve opcracijc po-
krecu se zascbnim signalima (poglcdajte sliku 4-6). One su u mikrokodu oznacenc s,l
MBR (s prosirenim znakom, kao u instrukciji BIPUSH 3) iii sa MBRU (neoznacen broJ,
kao u mikroinstrukciji iload2).
Dok ceka Ja operand stigne iz memorije (u mikroinstrukciji iload3). rcgistar SP
uvecava svoju vrcdnost da bi ukazivao na nov vrh stcka koji trcha da prihvati rezultat.
Ta vrednost kopira i u registar MAR kao priprcma za upisivanje operanda na vrh ste-
ka. Yn:dnost registra PC ponovo semora uvceati da bi se preuzeo skdeei opkod (u mi-
kroinstrukciji iload4). Na kraju, sadrzaj registra MDR kopira se u registar TOS (u
mikroinstrukciji iload5).
I STORE jc opcracija suprotna opcraciji I LOAD (tj. rec sc uklanja s vrha steka i smc-
;ta na lokaciju odredenu zbirom sadrzaja registra LV i inJeksa navedcnog u instruk-
ciji). Ona koristi format kojije na slici 4-19(a) prikazan za instrukcijuiLOAD, osim Sll
joj opkod nije Ox I 5, vee Ox36. Ova instrukcija jc malo drugacija nego stu bi se oce-
kivalo zato jc rec na vrhu stcka vee poznata (nalazi se u registru TOS), tako da
odmah rnozc smestiti. Medutim. mora se prcuzeti nova rcc za vrh steka. Zato su neo-
phodne operacije citanja i upisivanja. ali se one mogu obaviti bilo kojim redosledom
(cak i paralelno. ukoliko postoji takva moguenostl.
Instrukcije ILOAD i !STORE ogranicene su utoliko sto mogu da k(lriste samo prvih
256 lukalnih promenljivih. Iako je za vecinu programa to i nego dovoljno, ipak
bi bilo po7.cljno instrukcije da mogu pric;tupati promenljivama bez obzira nato gde se
nalaze u prostoru lokalnih promenljivih. Da hi se to postiglo. u skupu !JVM instruk-
cija koristi se isti mchani.-'am kao i u JVM skupu: specijalni opkod WIDE, pon1at kao
prefiksni hajt (engl. byte). iza koga sledi opkod za instrukcijc ILOAD iii
256
4: Ni"o mikroarhitckturc
Obicno ce sc prethodnc dve naredbc kmnbinovati u istom rcdu, na primer,
z = TOS; if (Z) goto L 1; else goto L2
Efekat ovakvc naredbc je slcdeci: MAL gcnerise mikroinstrukciju koja salje vreu-
nost rcgistra TOS u ALU jcdinicu (ali je nigde ne smdta) tako da ona postavlja bit Z.
Ubrzo posto Z prihvati uslovni bit ALU jedinicc. na njega sc rrimenjuje opcracija OR
s najznacajnijim bitom registra MPC i tamo zbog cega se adresa sledcee mi-
kroinstrukcije mora preuzeti iii sa adrcse L2 iii sa adrcsc U (kop mora biti za tacno
veea od L2). Rcgistar MPC ee sc stabilizovati i biee sprcman za pn.:uzimanjc slc-
dece mikroinstrukcijc.
Na kraju narn trcba i notacija za korisecnje bila JMPC. Upotrebieemo rnikruin-
strukciju
goto (MBR OR vrednost)
Ovakvom sintaksom nala/.cmo mikroascmblcru da 1-rcdno.\/ upotn . .:bi za puljc
NEXT_ADDRESS ida bit JMPC polbi tako slo ec na MBR i NEXT _ADDRESS primcniti
opcraciju OR i sntcstiti u rcgistar MPC. Ako je vrnlnost = 0. ;to jc uohicajcno.
dovoljno jc napisati sanw
goto (MBR)
lmajtc u vidu da su satll<l t: najmanjc bituva rcgistra MBR hardvcrsk.i po-
vczani s rcgistrom MPC qmgkdajtc sliku ..f-6l. unk ncma problemas prosiriva-
!l.JCill waka (lj. MBR ili MBRU ). Obratitc pa/nju ina to vn.:dno.sl rcgistra MBR koja
jc raspuloz.iva na kraju ciklu:-.a. una kuja sc u njcmtl koristi. Prcu7imanjc kujc sc za-
pncnc u omj mikroin:-.trukciji mo/.c da uti-:'c tu i.chm narcJnc
4.3.2 lmplementiranje skupa 1.1 VM instrukcija pomocu
procesora :'vlic-1
Konacno smn _-,tigli dll kada mui.t:!lll cb sastavimo svc deliec. ;'\;a slici ..f-17
prikaDlll jc mikropmgr;un kuji sc na proc,.:soru IVIic-1 i tntc'rprcura skup
J.iVi'.l ithtrukcija. l!1 jc t.ac'uduprc'.: pwgram -ukupno ima samo 112 mikroin-
:-.trukcija. in:-.trukcija jc opi,ana u tri ckla: pn a je njcna -;iml)()licka oLnaka, za-
t!m skdi mikruk(\d i na kraJU jc napo111t'llcl. Ohraritc pal:nju na lu da uLastopnc
mikruinstrukciJC nc Jau;itn;tju ob.tvc'/IW uzastupnc adrcsc u upravljac'kl'J mcmoriji.
:-.111U VCC nagJasiiJ.
Sada bi izbur tmcna 1.a vccinu rcgistara na slici ..f-ltrcbalo da CPP. LV
i SP ,.; La l"u\anjc.: pnk;lziv;tca na pndruC"jc k>nstanti (C,,n:-,tl\nt Pu'll Pointer).
il.toc;d Vanahks) i n;l vrh (Slack Pointer), dPk PC !Pro-
gram(_", >untcr) -;adr/i adrc::-,il ,lcdcecg bitjt;\ kllji trebl\ preu?.cti i? ;Ji?a instrukcija. MBR
1\knwr:v Bull..:r je registarkoji pnhvala iz lli/a instruk-
llllllKcJ kako <HlC d,,]a;c' i; memorijc na intt'rprctiranje. TOS i OPC su dmlatni rc-
gistri. cijc Ccill() 'lj)lS.lli ll nasLtvku.
l i odrc:lknt m i lllt'J"\ -;v:1h.i ud U\ ih rcgi,tara gar;mto"v a no sadrii odn.:clcnu
\Tedli<lSl. ali sc :i\aki ml l1Jih mule pu potrcbi iskoristitJ i kao rrivrcmc:ni registllr. Na
4.3 Primer
257
pocetku i na kraju svakc instrukcije, regi,tar TOS sadrii vrednost memorijskc lokacije
na kOJU ukazuje SP- rec na vrhu steka (Top Of the Stack). Ta vrednost je suvisna
posto se uvck moze procitati iz memorije. ali ako postoji u rcgistru, stecli se jcr se relte
obraea memoriji. Za nekoliko instrukcija. odrzavanje registra TOS znaci vi.\'e memo-
rijskih upcracija. Na primer, instrukcija POP uzima rec s vrha steka i zato mora da
preuzme novu rei' iz memorije i stavi je u TOS.
Rcgistar OPC je privrcmcn (tj. sluzi za privrcmcno cuvanje podataka). On nema
unapred odrcdcnu funkciju. Koristi se. na primer. za cuvanje aclrcse opkmla (OPCo-
dcJ instrukcije za grananjc dok se PC uvccava cia bi sc pristupi lo paramctrima. On sc
koristi i kao privrcmcni registar u JJVM instrukcijama za uslovno grananje.
Kao svi intcrprcteri. i mikroprogram sa slikc ..f-17 ima glavnu programsku pctlju
koja preuzima, dckodira i izvrsava instrukcije interprctiranog prograrna (u ovom
slucaju. IJVM instrukcije). Njcgova glavna petlja pocinje u rcdu koji nosi oznaku
Main I. Ovde jc pretpostavi.Jctm da PC vee uka1.ujc na aJresu mcnwrijske lokacije
koja sadrzi odredcni opkud ida jc taj opkocl vee prosledcn u rcgistar MBR. Imajtc na
urnu da na toj lokaciji moramo obczbecliti da registar PC ukawje na skdcei opkod
koji trcba inlerprctirati i Ja sc bajl opkuda vee nalazi u rcgistru MBR.
Ovaj pocetni niz inslrukcija izvrsava se na pocctku svakc instrukcijc. pa je bitno cia
bulle slo kraei. Vrlo brilljivim projcktovanjem hard vera i sort vera procesora Mic-1
postigli smo da sc za obavljanje jednog ciklusa glavne pellje potrosi samo jcdna mi-
kroin-;trukcija. Kada sc racunar pokrenc, svaki put kada se i1.vrsi ova mikroinstrukci-
ja. IJVM opkod instrukcijc koju trcba izvrsiti vee se nalazi u registru MBR.
Mikroinstrukcija u stvari skace na rnikrokod za iz.vrsavanje tekuee IJViVI instrukcijc
i istuvremeno pocinJC da preuzima bajt koji sledi iza opkoda. a to mole biti ili operand
iii slcdeCi upkod.
Sada muzcmo otkriti pravi ra;log zbog koga svaka mikroinstrukcija mora cia
imenujc svog sledbenika. umcsto da sc programski tok prepusti uzastopnom izvrsa-
vanju mikroinstrukcija. Sve adresc upravljackc mcmorije kojc c.;e odnosc na upkod
moraju biti rczcrvisane za prvu rei' odgovarajuecg inteqJrctcra instrukcija. Tako na
slici ..f-11 vidimo da kCJd koji interprctira instrukciju POP pocinje od adrcse Ox57.
a onaj kuji interpretira in . ..,trukciju DUP od adrcsc Ox59. (Svctska je mistcrija zasto
MAL postavlja instrukciju POP na adrcsu Ox57 - vcruvatno negdc postoji dallltcka
k,Jja mu nalaze da to uradi.)
Nal.alust. kod za naredbu POP dugacak je tri mikroinstrukcije, tako da ec njegove
tri uzastopnc reei porcmetiti naredbu DUP. su sve adrese opkoda u upravljackoj
memoriji reLervisanc. sve rnikroinstrukciJC i1 jcJnog niza. osim prvc. moraju sc smc-
stit i u slobudan pros tor izmcdu re1.crvisanih adresa. Zhog toga ima mnogo skakanja
po upravljackoj memoriji. pa bi rnikrogrananje u korne sc svaki cas skai':c s JCdne in-
strukciju, na drugc bilo vcnma ncchkasno.
Da bistc razumcli kako radi interpreter, pretpostavimo, na primer. da registar MBR
sadrzi vrednost Ux60, tj. opkod za instrukciju IADD (slika 4-11 ). U jednom ciklusu
petlje. za sta se trosi jedna mikroin,trukcija. obavljaju se tri Pperacije:

i''
266
Poglavlje 4: Nivo mikroarhitckture
Da bi ovo bilo jasnije, pogkdajte na slici 4-22(a) situaciju na pocetku petlje Maint.
Opkod je vee u registru MBR, ali vrednost registra PC jos nije uvecana. Na slici
4-22(b) vidimo situaciju na pocetku mikroinstrukcije gotot. Sada jc sadrzaj registra
PC uveean, ali prvi bajt rastojanja jos nije smdtcn u registar MBR. Jednu mikroin-
strukciju kasnije imarno situaciju kao na slici 4-22(c), u kojoj je stara vrednost regi-
stra PC, koja ukazuje na opkod, sacuvana u registru OPC, a prvi bajt rastojanjaje u
registru MBR. Ova vrednost je neophodna zato sto jc rastojanje UVM instrukcije
GOTO relativno u odnosu na nju, a nc na tekucu vrednost registra PC. Bas zbog toga
je potreban registar OPC.
Memorija
Jed an bajt-
n+3
n + 2 BAJT RASTOJANJA 2 BAJT RASTOJANJA 2 BAJT RASTOJANJA 2 BAJT RASTOJANJA 2 BAJT RASTOJANJA 2
ll + 1 BAJT RASTOJANJA 1 BAJT RASTOJANJA 1 BAJT RASTOJANJA 1 BAJT RAS TOJANJA 1 BAJT RASTOJANJA 1
GOTO (OxA7) GOTO (OxA7) GOTO (OxA7) GOTO (OxA7) GOTO (OxA7)
Registri
.----11-----. ntl 11 nt2 11 n+2 1
OPC n II n II n I
OxA7 OxA7
H I RASTTOJANJ E 1 sl
(a) (b) (c) (d) (e)
Slika -t-22. Situacija na pocetku razlicitih mikroinstrukcija. (a) Ma1n1. (h) goto1. (c) goto2.
(d) goto3. (cl goto4.
Mikroimtrukcija kod O!nakc goto2 zapocinje prcuzimanje drugog hajta rastojanja.
sto sc vidi na slici 4-22(d l na pocctku mikroinstrukcije goto3. Postu jc prvi bajt rasto-
janja pumeren ulevo za 8 hituva i kupiran u rcgistar H. dolazi se do oznake goto4 na
slici 4-22(c). Sadajc prvi bajt rastojanja pomeren ulevo u registar H. drugi bajt rasto-
janja je u registru MBR a osnova u registru OPC. Kada konstruisemo potpuno 16-bitnu
rastojanje u registru Hi dodamu ga na osnovu. dobijamo novu adrcsu koju treha sme-
stiti u regi,tar PC u mikroinstrukciji goto5. Obratite paznju na tu da u mikroinstrukciji
goto4 ne koristimo regis tar MBR. vee MBRU. jcr nc zelimo da se prosiri znak drugog
bajta. Scsnaestobitno rastojanjc se konstruisc tako stu se na njegovc dve polovinc pri-
meni opcracip OR. Na kraju trcba cia preuzmemo slcdeci opkud pre nego sto sc vra-
timo na Maint zato stu ce mikrokod tada ocekivati da u registru MBR pronadc slcdeci
opk.od. Puslednji ciklus. goto6, ncophudan je zato sto se podaci iz mcmorije moraju
preuzcti na vrcme da bi se pojavili u regi,tru MBR tokom petljc Maint.
Rastojanja koja se koristc u LJVM instrukcijama goto nznaccne su 16-hitnc vred-
nosti izmectu i +32767. To znaci da 'kokovi na uznakc izvan ovog intervala
4.3 Primer implcmcntacije
267
nisu muguCi. Ovo svojstvu se moze smatrati i manom i prednoseu skupa IJVM in-
strukcija (a takocte i skupa JVM instrukcija). Ncki kritikuju JVM stu ogranicava nji-
hov stil programiranja, dok drugi misle da su programi bolji kada programeri stalno
strepe od ratalnc poruke prevodioca
Program is too big and hairy. You must rewrite it. Compilation aborted.
(Program je prevelik i previse razuden. Morale ga ponovo napisati. Prcvuctenjc je
prekinuto.)
Nazalost (po nascm misljcnju) ova poruka se pojavljuje samu ako su naredbe then
iii else vec'e od 32 KB, sto se po pravilu dogada posle pedesetak strana programa pisa-
nog na Javi.
Razmotrimo sada tri lJVM instrukcije za uslovno grananje: IFLT, IFEQ i IF _ICMPEQ.
Prvc dvc uzimaju prvu rec sa steka i usmeravaju programski tok u novom pravcu uko-
liko je ona manja od nulc. odnosno ako je jednaka nuli. lnstrukcija IF _ICMPEQ uzima
dve reci s vrha steka i usrncrava prograrnu novom pravcu samo ako su one medusobnu
jednake. U sva tri slucaja potrebno je da se procita nova prva rec na steku i da se smesti
u regis tar TOS.
Mehanizam rada ove tri instrukcije je slican: u registre se prvo smesti jedan ili vise
operanada, zatim se nova vrcdnost vrha steka ucita u registar TOS, a onda se provc-
rava uslov i eventualno skace na novu oznaku. Razmotrimo prvo instrukciju IFLT. Rec
koja se proverava vee je u registru TOS, ali pusto IFLT uzima rcc sa steka, mora se
procitati nov vrh steka i srnestiti u registar TOS. Citanje zapocinje rnikroinstrukcija
ifltt. Mikroinstrukcija iflt2 privremeno cuva rec koja se proverava u registru OPC, tako
da se u registar TOS muze staviti nova vrednost, ada se stara ne izgubi. Tokom mi-
kroinstrukcijc iflt3, nova prva rec stekaje u registru MDR, pa se kupira u TOS. Na kraju,
tokorn mikroinstrukcije illt4, rcc koja sc proverava - prcthodno snimljena u registar
OPC- sada se propusta kroz ALU jedinicu bez smdtanja, a bit N sc pamti i proverava.
Ova mikroinstrukcija sadrzi i grananje, u kome se bira T ako je provera protekla
uspdno iii F ako nije.
Ako je pro vera uspesna. ostatak operacije je sustinski isti kao i pocetak instrukcije
GOTO i niz se nastavlja iz sredine niza GOTO (od mikroinstrukcije goto2). Ukolik.o pro-
vera nc uspe, neophodanje kratak niz (F, F2 i F3) da bi se preskocilo preko ostatka in-
strukcijc (rastojanje) pre povratka u Maint i nastavilo raditi sa sledec'om instrukcijom.
Kiid u mikroinstrukcijama ifeq2 i ifeq3 slcdi istu logiku, samo se umcsto hita N ku-
risti hit Z. U oba slucaja, MAL asembler treba da prepozna da su adrese T i F specijalnc
i mora ubezbediti da se one smeste na adrese upravljacke memorije koje se razlikuju
samo po lcvom krajnjcm bitu.
Logika instrukcije IF _ICMPEQ ovlasno je slicna lugici instrukcije IFEQ, osim sto je
potrcbnu ucitati i drugi operand. Drugi operand se smdta u registar H u ukviru mi-
kroinstrukcije if_icmpeq3. gde zapocinje citanje nove reci s vrha stcka. Tekuc'a rei':
s vrha steka ponovo se snima u regis tar OPC, a nova smesta u regis tar TOS. Na kraju
se provera u okviru mikroinstrukcije if __icmpeq6 obavlja slicno kau provera u mikro-
instrukciJi ifeq4.
I>
260
Oznaka
iflt1
iflt2
iflt3
iflt4
ifeq1
ifeq2
ifeq3
ifeq4
if _icmpeq1
if_icmpeq2
if_icmpeq3
if icmpeq4
if_ icmpeq5
if icmpeq6
T
F
F2
F3
invokevirtual1
1nvokevirtua12
invokewtual3
invokevirtual4
invokevirtual5
invokevirtual6
1nvokevirtual?
invokevirtual8
invokevirtual9
invokevirtual1 0
invokevirtual11
invokevirtual12
invokevirtual13
lnvokevirtual14
invokevirtual15
Operacije
MAR SP SP- 1; rd
OPC TOS
TOS MDR
N OPC; if (N) goto T;
else gotoF
SP SP- 1; rd
OPC TOS
TOS MDR
Z OPC; if (Z) goto T;
else gotoF
MAR SP SP- 1, rd
MAR SP SP- 1
H MDR; rd
OPC TOS
TOS MDR
Z OPC- H; if (Zl goto T;
else goto F
OPC PC - 1. go to goto2

PC 1
PC PC + 1, fetch
goto Main1
PC PC + 1; fetch
H MBRU 8
H MBRU OR H
CPP + H; rd
OPC +1
MDR; fetch
PC PC + 1 , fetch
H MBRU 8
H MBRU OR H
PC PC + 1; fetch
TOS SP- H
TOS MAR TOS + 1
PC PC + 1: fetch
H MBRU 8
H MBRU OR H
lflVOkevirtual16 MDR SP + H + 1; wr
invokevirtual17 SP MDR;
invokevirtual18 MDR OPC; wr
invokevirtual19
invokevirtual20
invokevirtual21
invokevirtual22
MAR SP SP + 1
MDR wr
PC PC + 1 , fetch
TOS; goto Main1
Poglavljc 4: Nivo mikroarhitckture
Napomena
Procitaj sledecu rec na steku
Snimi privremeno TOS u OPC
Smesti novi vrh steka u TOS
Skoci ako je bit N postavljen
Procitaj pretposlednju rec na steku
Snimi pnvremeno TOS u OPC
Stavi nov vrh steka u TOS
Skoci aka je bit Z postavljen
Procitaj pretposlednju rec na steku
Podesi MAR da ucita nov vrh steka
Kopiraj drugu rec sa steka u H
Snim1 privremeno TOS u OPC
Stavi nov vrh steka u TOS
Aka su poslednje dve reci jednake. skoc1 na T,
inace skoti na F
Is to kao go to 1 ; za adresu odredista

Preskoci prvi baJt pomeraja
PC sada ukazuje na nov opkod
Cekaj preuzirnanje opkoda
MBR prvi indeksni bajt; uvecaj PC, preuzrni
drugi bajt
Pomeri i snimi prvi bajt u H
H porneraj pokazivaca rnetode u odnosu na
CPP
Uzmi pokazivac na metodu iz CPP podrucja
Snimi privrerneno PC za instrukcrju Return
u OPC
PC ukazuje na novu rnetodu; preuzrni bra)
pararnetara
Preuzrni drugi bajt broja pararnetara
Pomeri i snirni prvi bajt u H
H broj p3rarnetara
Preuzrni prvi ba)t broja lokalnih prornenljivih
TOS adresa OBJREF- 1
TOS adresa OBJREF (nov LV)
Preuzrni drugi ba)t broJa lokalnih prornenljivih
Pomeri i snirni prvi bajt u H
H lokalnrh prornenljivih
Preko OBJREF upisi vezni pokazivac
Postavi SP, MAR na lokaciju za cuvanje stare
vrednosti PC
Snirni PC izn3d lokalnih promenljivih
SP ukazuje na lokaciju za cuvanje stare
vrednosti LV
Snimi stari LV iznad snirnljenog PC
Preuzmi prvi opkod nove metode.
Podesi LV da ukazuje na LV okvir
Slika .t-17. \'likruprngram za procesor Mic-1. ( IIUSI!II'!lk)
i
'I
l
;-\'
'
.
: .:._
4.3 Primer implementacije
Oznaka
ireturn1
ireturn2
ireturn3
ireturn4
ireturn5
ireturn6
ireturn7
ireturn8
Operacije
MAR SP LV; rd
LV MAR MDR: rd
LV +1
MDR; rd; fetch
SP
LV= MDR
MDR TOS; wr; goto Main1
Napomena
Podesi SP, MAR za dobijanje veznog
pokazivaca
Sacekaj citanJ8
261
Podesi LV na vezni pokazivac; preuzrni staru
vrednost PC
Podesi MAR da procita stari LV
Vrati PC u prethodno stanje; preuzrni sledeCi
opkod
Podesi MAR da upise TOS
Vrati LV u prethodno stan)e
Snimi vracenu vrednost na prvobitnom vrhu
steka
Slika 4-17. Mikr:lprograrll za procesor Mic-1. ( llllstmilk)
Ako se Jcsi da je hajt u registru MBR nula, sto je opkod za instrukciju NOP. slcdccu
rnikroinstrukcija ima oznaku nop1 i preuzima se s lokacije 0. Pnsto La instrukcija nc
radi nisl:.t. programski tok sc vraca na pocctak glavne pctlje. gJe se niz. punavlja, ali
s novim opkoclom koji sc u mcduvremenu smcsta u rcgistar MBR.
Jos jcJnom naglasavamo da sc mikroinstrukcije sa slikc -+-17 nc nalal-e na u/.a-
stopnim mernorijskim lukacijama i da se o;naka Main1 ne oJnosi na adrcsu 0 upra-
vljackc memorijc lpo\to na adresi 0 mora da buclc im,trukcip nop1 ). J\1ikroasemblc:r
Lreha da smesti svaku rnikroinsrrukciju na pogudnu adresu i da ih svc povde kratkim
nizuvima slu7.eci sc poljcm NEXT_ADDRESS. Svaki n!Z pocinjc na adn.:si koja oJgo-
vara brojcarwj vrcdnosti JJV.'vl opkoda koji se intcrpretira \ll[)r. POP pul:inje na aJrest
0"<57). ali ostatak niw rnoze da hudc bilo gdc u upr:n mcmoriji. a nc na uza-
stupnim adresama.
R.tzmotrimo IJVM instrukciju IADD. Mi!-;roinstrukcija na koju se skacc iL
glavne petljc nosi oznaku iadd1. Ona rapocinjc pusao specilican l-a inslrukciju IADD
I. TOS VL'C posto_1i. ali se pretposlcdnja rec std.:u mora preuleti i; mcmorijc.
' Vrcdnosl rcgi;,tra TOS mor:J sc dudati rretpo;.]ccln_ioj reci prcuzetoj iL
mcrnurijc.
:\. Re;ultal koji s::: ;,tavlja na 'lek !lhlra \C pPnO\ o ;,mcstiti u mernuriju. kau i u
TOS.
Da hi .sc ]lrCt!!:Ctl upcrand lLrnemorijc. ncuphtldno je da se sieka umanji
L.ajedinicu ida se njcguva vrednoot u MAR. Obratite paznju na tu daje to adrcs,t
na kuju ce sc mal<' ka:;nijc upisivati. Stavisc, posw loLtcija hili nnv vrh st..:b,
i SP treha da dtlbije ovu vrcdnusr. Prem,t tome. jedna upcracija !reba da Pdrcdi novu
\Tedrhlst rcgisLtrJ SP i MAR, da umanji vrednost registra SP i Ja se upi;e u oha n:gistr:.
SVL' l)\l) \C uhavlj:t u prvorn ciklusu, iadd1. a /Cl[l()L'illjc sci upcr:tci_ja citanj:L Ositn
tog:1. MPC dnhija Hcdnost iL polj.t NEXT_ ADDRESS mikwinstrukujc i:,dd I. sto j:
adn:sa illlk:-oinslruL:;jc iado2. gdc god da sc una naLvi. Zaiim sc i; upr:t\ mc-
rnmiJC ucitava mil--ruimlrukcija iadd2. T.lklllll drugog ciklu"t. dok .'e c:.:ka na uciia-
v:mjc upcramla i; mclll\>rijc. kopira '-:L' gornja rcc _,rcka iz TOS u H. gck hiti
lla !'a'ipula:,!ailjll /a _,a[>iranje i-..aJa c,c
270
Poglavlje 4: Nivo mikroarhitckturc
Jedno od najvise proucavanih kola u istoriji jeste binarni sabirac (engl. hinarv ad-
der). Za njega postoji na hiljade projekata, a najbrzi sabiraci su mnogo slozeniji od
najsporijih. Projektant sistema treba da odluci da lice mu sc zbog vece brzine isplatiti
ulozeni novae.
Sabiraci nisu jedine komponentc gde postoji velika mogucnost izbora. Skoro sva-
ka komponenta sistema mo7.e se konstruisati da radi brze iii sporije (uz razliku u
ceni). Izazov na koji projektant treba da odgovori jeste identilikovanje komponenata
sistema cijc bi ubrzavanje najvise uticalo na perfonnanse sistema. Zanimljivo je da se
mnoge komponcnte mogu zameniti odgovarajucim brzim verzijama, a da se to ne
odrazi na brzinu celog sistema. U narcdnim odeljcima navodiccmo ncke problcme pri
projektovanju i moguca kompromisna rescnja.
Jedan od glavnih cinilaca koji odrcduje maksimalnu brzinu radnog taktajeste ko-
licina posla koju treba obaviti tokom svakog ciklusa. Jasno jc: sto valja obaviti vise
posla, to ciklus mora biti duzi. Nije to bas tako pros to, naravno, jer hardver jako dobro
radi vise stvari istovrcmcno. pa duzina zavisi od ni1.a operacija koje se u toku
jednng ciklusa moraju obaviti serijski.
Jedan od aspckata na koji se moz.e uticati jeste kolicina dckodiranja koje semora
obaviti. Serite se, na primer, slike 4-6, gdc smo vidcli cia se u ALU jedinicu s magi-
strale 8 moze ucitati sadrzaj bilu kog od devet ali jc ipak potrebno samo 4
bita u reci mikroinstrukcije da se 1.adajedan od registara. Na/.alost, takve ustede ima-
ju svoju ccnu. Kolo za dekodiranje unosi kasnjenje u kriticni deo putanje. To znaci da
ce bilo koji registar koji treba da postavi svoje podatke na rnagistalu B. komanJu za
to dobiti s malim zakasnjenjcm i dace isporuka 1.ato zakasniti. To kasnjenje sc pro-
stirc kroz sistem, pa ALLJ jedinica dobija podatkc sa ;akasnjenjem i sa zakasnjcnjem
isporucuje rezultatc. Rezultat na kraju stize sa zakasnjenjcm na magistralu C. odaklc
treba da se upise u registre. Pus to je to kasnjenjc cesto cinilac koji odreduje duzinu si-
stemskog ciklusa, ne mo7.c sc postici maksimalan radni takt, pa racunar radi sporije.
Na taj nacin se uspostavlja kompromis izmcL1u brz.ine i cene. Ukoliko se upravlpcka
memmija srnanji ;a 5 bita po reci. usporava se radni takt. Kada razmatra resenja pro-
jektant mora da unne u obzir namenu sistema. Za implcmentaciju koja treba da ost-
vari visokc per!'ormanse, koriscenje dekodera vcrovatno nije dobro rdcnje. ali moze
da bude dobro za jertinu varijantu.
4.4.2 Skraccnje putanje izvrsavanja
Procesor Mic-1 jc umereno jednostavan i umereno brz. mada priznajcmo da je ta
dva zahteva tdko pomiriti. Ukratko, jeclnostavni racunari nisu brzi, a brzi racunari
nisu jeJnostavni. Za procesor Mic-1 upotrebili smo minimalnu kolicinu bard vera: I 0
registara za ALU Jedinice sa slike 3-19, pomcrac, dekodcr, upravljacku
memoriju i ve1.nu logiku. Ceo sistem se mozc napraviti s manjc od 5000- nc u;ima-
juCi u obzir tranzistore za upravljacku (ROM) i glavnu memoriju (RAJ\[).
Posto smo se uverili da se IJVM moze jcdnostavno implemcntirati pomocu mikro-
koda i malo bard vera. vremc jc da pogledamo i druge, brze implementacijc. U nastavku
;;..,_
tF?
'iP
I
I

r



1
...., .
.
.
4.4 Projektovanje nivoa mikroarhitekture
271
cemu analizirati nacine za smanjenje broja mikroinstrukcija po jednoj ISA instmkciji
(tj. za skracenje putanje izvrsavanja). Posle toga cemo razmotriti i drugc pristupc.
Preklapanje petlje interpretera s mikrokodom
U procesoru Mic-1 glavna petlja sc sastoji od jedne mikroinstrukcije koja semora
izvrsiti na pocetku svake IJVM instrukcije. U nekim slucajcvima ona se moze preklo-
piti s prcthodnom instrukcijom. U stvari, to se vee delimicno i radi. Skrecemo vam
paznju nato da se tokom izvrsavanja petlje Main1 u registru MBR vee nalazi opkod koji
treba interprctirati. Opkod je tamo jer je preuzet u prethodnoj glavnoj petlji (ako pret-
hodna instrukcija nije imala operanada) iii tokom izvrsavanja prethoJne instrukcije.
Ovaj koncept prcklapanja pocetka instrukcijc moze se i prosiriti tako da sc glavna
petlja u nekim slucajevima moze svcsti prakticno na nulu. To se moze uraditi na sle-
deci nacin. Razmotrite svaki niz mikroinstrukcija koje se zavrsavaju skokom na oz-
naku Main1. U svakoj od njih, mikwinstrukcija za glavnu pctlju moze se ubaciti na
kraj (umesto da bude pocetak sledeceg niza), pri cemu se sada skok ponavlja na
vise mesta (ali uvek sa istim skupom zahteva). U nekim slucajevima rnikroinstrukcija
za Main1 moze se preklopiti s prethodnim mikroinstrukcijama ukoliko one nisu pot-
puno iskoriscene.
Na slici 4-23 prikazan je dinamicki niz mikroinstrukcija za instrukciju POP. Glav-
na petlp se pojavljuje pre i posle svake mikroinstrukcije; na slici je prikazano samo
ono sto sc dogada posle instrukcije POP. Obratite paznju nato da izvrsavanje ove in-
strukcije traje cetiri ciklusa: tri za specilicne mikroinstrukcije instrukcije POP i jedan
za glavnu pctlju.
Oznaka Operacije
pop1
pop2
pop3
Ma1n1
rd
goto Main1
1; fetch; goto (MBR)
Napomena
Ucitava pretposlednju rec sa steka
Ceka da se nov sadrzaj registra TOS ucita
iz memorije
Kopira novu rec u registar TOS
Registar MBR sadrzi opkod; preuzima sledeci bajt;
salje na izvrsavanje
Stika 4-23. lzvorni niz mikroprograrna za i1.vrsavanje instrukcijc POP.
Na slici 4-24 nizje svedcn na tri instrukcijc tako sto Sll preklopljene instrukcije za
glavnu pctlju, i primenjenjc sistcmski ciklus u kome se ALLJ jedinica ne koristi u mi-
kroinstrukciji pop2 za snimanjc ciklusa i ponovo u instrukciji Main1. Obratite paznju
nato da se s kraja ovog niza skace direktno na specilicni kCld sleclece instrukcije, pa
je za nju ukupno potrebno samo tri ciklusa. Ovim malim trikom, vreme iz.vrsavanja
slcdece mikroinstrukcije skracuje se za jed an ciklus (tako se npr. naredna instrukcija
I ADD izvrsava za tri, umesto za cetiri ciklusa). To je ekvivalentno ubrzavanju radnog
takta sa 250 MHz (4 nanosekunclne mikroinstrukcije) na 333 MHz (3 nanosekundne
mikroinstrukcije). bez razlikc u ccni.
264
Poglavlje 4: Nivo mikroathitekture
ISTORE. Kada se naide na ovaj niz. menjaju se detinicije instrukcija ILOAD i ISTORE,
pa iza njihovog opkoda vise ne sledi Rbitni. vee 16-bitni indeks, bona slici 4-19(b).
Pretiks WIDE se dekodira na uobicajen nacin. tako da se skace na oznaku wide1, gde
se obraduje opkod WIDE. lako opkod za sirenje vee postoji u registru MBR, mikwin-
strukcija wide1 prcuzima prvi bajt posle opkoda zato sto logika mikroprograma to
uvek 1.ahteva. Zatim nastajc drugc visestruko grananje do OJ:nake wide2, pri cemu sc
bajt koji slcdi iza prctiksa WIDE koristi za slanjc. Medutim. posto je za instrukciju
WIDE ILOAD potreban drugaciji mikrokod ncgo L.a inslrukciju ILOAD. a za instrukciju
WIDE ISTORE drugaciji mikrokod nego za instrukciju ISTORE, u drugom visestrukom
grananju opkml sc nc rnoze upotrebiti kao ciijna adresa (kao oznaka Main1 ).
Adresa UpraviJacka memorija
Oxl FF
Ox115
Ox100
OxC4
Ox15
OxOO
wide ,iload1
Main1
wide1
l
rload1
Redosled izvrsavanja
mrkroinstrukcija
WIDE
ILDAD ILDAD
Slika .t-20. l'occtni ni1 mikroinstrukcija za instrukcijc ILOAD i WIDE ILOAD.
Adresc su date kao primeri.
lJ stvari. mikroinstrukcija wide2 na opkod primcnjuje uperaciju OR s brojem Ox I 00
1 rezultat smcsta u registar MPC. Zbog toga intcrpretiranje instrukcije WIDE ILOAD
pocinje na adresi Ox II 5 ( unh.:stona adresi Ox 15), interpretir:.mje instrukcije WIDE ISTO
RE na adrcsi Ox 136 (umesto na adresi Ox36) itd. Na taj nacin. svaki opkod WIDE
pol'1!1Jc na adresi kujaje u upravljackoj memuriji za 256 ( tj. za Ox I 00 J reci vee a od ml-
govarajuccg rcgularnog opknda. Pucetni niz mikroinstrukcija za instrukcijc ILOAD i
WIDE I LOAD prikazan je na slici 4-20.
Kada sc dode do tacke implementiranp instrukcijc WIDE ILOAD (Ox 115). mora se
napraviti razlika od unhicajcne instrukciJc ILOAD tako sto se imlcks mora konstruisati
ulancavanjem 2 indeksna bajta (umesto da se jcdnom bajtu samo prosiri z.nak).
-'.3 Primer implemcntacijc
265
Ulaneavanje i naknadno sabiranje moraju se obaviti u fazama, najprc kopiranjcm
prvog indcksnog bajta u registar H ciji je sadrzaj pomeren ulcvu za 8 bitova. Pusto je
indeks neoznacen ceo broj, registar MBR sc prosirujc nulama pornocu MBRU. Sada se
dodaje drugi bajt indeksa (opcracija sabiranjaje idcnticna ulancavanju posto jc manjc
znacajan bajt rcgistra H sada nula, sto garantuje cia izmectu bajtova ncce biti prenosa),
a rezultat se ponovo smdta u H. Od ove tacke nadalje, operacija moL.e da protice pot-
puna isto kao u standardnoj instrukciji ILOAD. Da se mikrokod ne bi opterecivao po-
navljanjcm zavrsnih mikroinstmkcija (od iload3 do iload5), predvidcn je skok od
oznake widejload4 na oznaku iload3. lmajte na umu da se rcgistar PC mora dvaput
uvecati tnkom izvrsavanja instrukcije da bi na kraju ukazao na novi opkod. lnstruk-
cija I LOAD ga uvec'ava jcdnom, a 9iz WIDE_ I LOAD jo.S jednom.
lsta situacija se ponavlja i za niz WIDE_ISTORE: posto se izvrse cetiri prvc mikro-
instrukcijc (ocl wide_istore1 do wide_istore4J, ni;: postaje isti kao z.a instrukciju ISTORE
posle prvc dve mikroinstrukcije, pa od tacke wide _istore4 program skacc na owaku
istore3.
Sledeea instrukcija je LDC_W. Ovaj opkod se razlikujc od instrukcije I LOAD u dva
aspckta. Prvo. za njega vaL.i 16-bitno ncoznaceno rastojanjc (kao La prosirenu verziju
instrukcije ILOAD). Drugo. ona se indcksira iz rcgistra CPP (ume-;to iz. registra LVJ jcr
joj je zadatak da cita vrednosti iz pndrucja konstati. a ne iz okvira lokalnih promenlji-
vih. Postoji i kraci oblik instrukcijc LDC_W (LDC). ali je nismu ukljucili u skup IJVi\1
instrukcija z.ato sto njen duzi oblik obuhvata sv.c moguce vcrzijc kraceg: medutim, on
zauzima-' bajta. umesto 2.
U sklopu lJVlVI instrukcija, v1ednost lokalnc promenlJive mugu da mcnjaju in-
strukcije !STORE i liN C. Ova dmga to obavlja pomo(u dva jedrwhajtna upcranda,
bona slici 4-21.
Slika .l2!. !Ihtrukcija !INC inw cha polja La rcvliC-itc opcrandc.
lnstrukcip IINC pornucu INDEKSA zadaJC rastoianjc od pocetJ...a ukvira lokalnih
prornenljivih. Ona ucitava prll!llL'tlijivu, uvccavaJe t:a KONSTANTU (vrcclnost na\cdc-
nu u instrukciJi 1 i smdta jc ponuvo na istu lobciju. Obratite paznju na tn da irhtruk-
cija moze i eLl smanji vrcdnust l'rumen!jivc, tj. daJC KONSTANTA(>Wa(en 8-bitni broj
u rasponuud -128 do+ 127. Porpun skup .JVM insrrukcrja (Jbuhvata i vcrziJU
instrukcije I INC u kojoj JC o.vaki operand duzine 2 bctjta.
Sada dula1.imn du pne UV:\1 instrnh'iJC za grananjc: GOTO. kdina n:unena O\'t.:
instrukcije jc da prumeni vrcdn,Jst rcgistra PC, tak.o da se njmn i;vrsi IJV:-.! in-
->trukcija sa adrcsc dobijcne dml:tl'anjcm (otnaccnog) !6-hitnog na adrcsu
opknda instrukcije Dl grananjc. Ovdc' jc situ:1cija sh/t'niJa jer .JC relativnn
u odnosu na vrcdnust K<lJU je regiswr .C i;n.tu n:. P')l:ctku dekudiranja irbirukc'ijc, a nc
na adrcse na vn:dnost kujli ima poslc prcu;.irn:rnp dva b:tj\a rastupnj:L
274
Poglavlje 4: Nivo mikroarhitekture
u procesoru Mic-l, ALU jedinica se moze prilicno rasteretiti ukoliko se uvede ne-
zavisna jeclinica koja ce preuzimati i obradivati instrukcije. Ta jedinica za preuzi-
manje podataka, nazvana IFU (engl. Instruction Fetch Unit), moze samostalno da
uvecava vrednost registra PC ida unapred preuzirna bajtove iz toka instrukcija. Za nju
je potreban samo jedan jeclinicni sabirac koji je znatno jednostavniji od potpunog sa-
biraca. Kako razradujemo ovu ideju, uocavamo da lFU jedinica moze i da sastavlja
osmobitne i sesnaestobitne operande, tako cla budu spremni cim zatrebaju. To se moze
izvesti na najmanje elva nacina:
\. JFU jedinica moze da interpretira svaki opkod, da oclredi koliko se dodatnih
polja mora preuzeti i da ih sastavi u registar spremne da ih koristi glavna
izvrsna jedinica.
2. IFU jeclinica moze da iskoristi po;.nati format toka instrukcija i da za svaki
opkod ima spremne osmobitne i sesnacstobitne clodatke, hez ohzira na to ko-
liko to ima smisla za datu instrukciju. Glavna izvrsna jedinica tada mozc da
trazi sta god joj je potrehno.
Osnovni elcmenti drugc seme prikazani su na slici 4-27. Umcsto jednog 8-bitnog
registra, sada imamo dva registra MBR: 8-bitni MBR1 i 16-bitni MBR2. IFU jcdinica
vodi rae una o tome koje je poslednje hajtove iskoristila glavna izvrsna jedinica. Ona
snabdcva regis tar MBR1 slcdecim bajtom, kao kod proccsora Mic-1, automatski regi-
struje ocitavanje registra MBR1, preuzima slcdeci bajt i smesta ga odmah u MBR1. Kao
u procesoru Mic-1, i ovdc postoje dva interfejsa ka magistrali 8: to su registri MBR1
i MBR1 U. Kocl prvog je znak prosiren na 32 bita; drugi je prosiren nulama.
MBR2
lz mcmorije c::=====:>
\
\
---- Magistrala C
Ova najmanje znacajna bita
-- Magistrala B
"
Upis1van1e
u registar PC
Slika 4-27. Jcuinica za preuzimanje instrukcija pmcesora ivlic- i.
4.4 Projcktovanje nivoa mikroarhitekture
275
Slicno tome, registar MBR2 ima istu funkcionalnost, ali sadrzi sledeca elva bajta.
On takode ima dva interfejsa ka magistrali B: registre MBR2 i MBR2U, koji propustaju
32-bitnu vrednost s prosirenim znakom, oclnosno vreclnost prosirenu nulama.
IFU jeclinica ima zaclatak da preuzima tok hajtova. Ona za to koristi uohicajen 4-baj-
tni memorijski prikJjucak: unapred preuzima 4-bajtne reci i smesta uzastopne bajtove
u pomeracki registar (engl. sh1jt register) koji ih isporucuje po jedan iii po elva, redosle-
dom kojim su preuzeti. Funkcija pomerackog registraje da bajtove iz memorije zadrzi
u redu cekanja pre slanja u registre MBR1 i MBR2.
Registar MBR1 u svakom trenutku cuva najstcuriji b ~ t iz registra, a pomeracki registm
MBR2 cuva dva najstarija b ~ t a (stariji bajt je lcvo), da bi obrazovao 16-bitni ceo broJ
pogleclajte sliku 4-19(b ). Dva bajl;a u registru MBR2 mogu da poticu iz razlicitih memo-
rijskih reci posto se IJVM instrukcijc ne poravnavaju u memmiji prema granici reci.
Kad god se prncita sadrzaj registra MBR1, u pomerackom rcgistru vrednost se po-
mcri udesno za jedan bajt. Cim se procita sadrzaj registra MBR2, vreclnost se pomeri
udesno za dva hajta. Zatim se registri MBR1 i MBR2 ponovo pune najstarijim hajtorn
odnosno parom najstarijih bajtova. Ako sacla u pomerackom registru ima dovoljnc
mcsta za celu rec, IFU jeclinica zapocinje memorijski ciklus daje ucita. Pretpostavlja-
mo cla ce se bilo koji od elva registra MBR po ocitavanju ponovo napuniti na pocetku
sledeccg ciklusa, tako da se operacija citanja moze obavljati u uzastopnim ciklusima.
Konstrukcija IFU jedinice mozc se predstaviti u skladu s modelom masine konac
nih stanja (engl. Finite Swte Machine, FSM), tj. konacnog automata slika 4-28. Svi
ovakvi autnamati sastoje se od dve grupc komponcnata: stanja (engl. states). prikaza-
nih krugovima i prelaza (engl. transitions), prikazanih lukovima koji povezuju stanja
Svako stanje je jeclna situacija u kojoj se moze naci automat. Ovaj konkretan automat
ima sedam slanja, koja oclgovaraju stanjima pomerackog registra sa slike 4-27. Till
sedam stanja oclgovaraju trcnutnom hroju bajtova u pomcrackom registru (hroju izmc-
du 0 i 6).
Preuzeta rec
MBR2
Prelazi
MBR1: Dogada se pri citanju registra MBRl
MBR2: Dogada se pri citanju registra MBR2
MBR2
Preuzeta rec: Dog ada se kada se procita rec iz memori1e i njena 4 bajta smeste u registar za pomeranJe
Slika 4-2l!. Konacni all{omat za implementiranje lfU jccllnice.
-
268
Pog;lavlje 4: Nivo mikroarhitckture
Sada ccmo razmotriti implemenliranje instrukcija INVOKEVIRTUAL i IRETURN za
upucivanje poziva proceduri i vracanje iz nje, kao sto je opisano ll odeljku 4 . .2.3. ln-
strukcip INVOKEVIRTUAL je niz od 2.2 mikroinstrukcije i predstavlja najslozeniju in-
strukciju u implemcntaciji IJYM skupa. Njen radjc prikazan na slici 4-12. Ona koristi
svoj 16-bitni pomeraj za utvrdivanje adrese rnetmle koju treba da pozove. To je u
nasoj irnplcmentaciji rastojanje od pocetk.a podrucja konstanti. Ova lokacija u pod-
rucju konstanti ukawjc na mctodu koju treha pozvati. Setite sc cla prva 4 bajta svake
mctodc nisu instrukcije. To su dva 16-bilna pokazivaca. Prvi saclr?.i hruj paramctar-
skih rcci (ukljucujuCi OBJREF- poglcdajte sliku 4-1.2). Drugi daje velicinu podrucja
lokalnih promenljivih (mcrenu u recima). Ova polja se preuzimaju kroz. R-bitni pri-
kljucak i kuriste kao da su dva 16-bitna rastojanja unutar instrukcije.
lnforrnacije za povcL.ivanje, koje su ncuphmine za usposta\ ljanje prvobitnog sta-
nja racunara (adresa p(Jcetka starog podrucja lokalnih promcnljivih i stara Hcdnost
registra PC) smc:Staju se neposrcdno iznad nuvostvorenog pmlrucja lnkalnih promen-
ljivih, a ispod novog stt:ka. Na kraju se preuzima opkoJ sleJecc instrukciJe i uvceava
sadrzaj rcgistra PC pre nego slo se programski lok vrali na olnaku Main1. kako hi za-
pocelo i1.vrsavanjc sledcee instrukcijc.
IRETURN je jedn()stavna instrukcija bez opcranada. Dna kuristi adresu u
prvoj reci podrucja lnkalnih promenljivih da bi dubila informacijc za povczivanje.
Posle tog.a. vraca rcgistrima SP. LV i PC njihove prethodnc vrcdnosti. a vracenu vred-
nost kopira s vrha lekuccg skka na vrh prvohitnog kao na ,;lici 4-13.
4.4 PROJEKTOVAN.JE NIVOA MIKROARHITEKTURE
Kao i skoro svc u racunarstvu. i pmjcktovanjc nivoa mikruarhitekturc pn:puno je
kompromisa. Racunan imaju brojnc po/djnc karakteristikc, kao stu su br,.:ina. cena.
pou;danusl. jcdtt('sLtvn<Jst kc,tiscenja. potrosnja -;trujc i tizicl--a \elicina. llleL1utim. oJ
svih mogucih k,JmbinJctja ,l\"ih karaktc:ri:>rika. za projckuntc proccsora mo/.da je
va/.niji kompmmi> i;mcdu brzinc i cenc r<tcunara. li mom odcljkuLktaiJno cctnll ana-
li;.irari raj puka1.atclj da bismo utvrdili kal-.vi kompromis1 do!d;.c u ob1ir i Ltkva sc
thardverska i u pogkclu s\uzenostil mma phtriii da hi se po:.tigle \isukc pcrl\JmJanse.
4.4.1 Odnos hrzinc i ccne
Iak(' n,wc t.:hn<;lugtje podsticu stalnu ubr.cavanj.: raJa r<1cunara. lO nijc l.:ma ov,,g
odcljka. Po\ccanjc bu.ine pustig.nulu iako rnanjc
ud uttog poslignutug brz;m kolim:!. nik:tk.c' ni_;e !.a .Jdbacivanjc. Hrzina n;,l.lc m.::riti
na naCinL. ali uz .radatu tchnulugiju kt'Ll i IS.\ sluj, pusto-
.Jc tri usrmvrn n:;cina da sc izv rsavanjc instrukctja ubrz:t:
l. br1ja sistcmskih ciklltsa putrdmih za JCdnc inslrukcijc.
2. I\Jjcdnlsta\ljcnje prg:tmlaCi.Jc ko.Je vodi _,isrcmskum ctl-;lusll.
3. Prd;bpanjc il\ r;avanja instrukcija.
--

'I
4.-l Projektovanje nivoa mikroarhitckture 269
Prva dva nacina su ocigledni, ali postoji izncnadujuce velik broj mogucnosti da Se
pri projektovanju dramaticno srnanji broj sistemskih ciklusa po instrukciji. sk.rate
ciklusi ili, najccsce. uradi i jedno i drugo. U ovom odeljku na primeru cemo pokazati
kako kodiranje i dckodiranje operaeije moze da utice na sist.::mski ciklus.
Broj sistemskih ciklusa potreban za iLvrsavanje skupa operacija poznat je kao
duzina putanje (engl. path Length). Ponekad se duzina pulanje moze skratiti doda-
vanjcm specijalnog hardvera. Na primer, ako registru PC dodamo jcdinicni sabirac
(cij:t jc jcdna strana harclverski podesena da vrednost uvecava za 1 J vise ne moramo
koristiti ALU jedinicu da hismo uvecavali vrednost u njcmu, cime steclimo cikluse.
Cenu placamo hardverom. Medutim, ovim ne po;,tizcmo poholjsanje kakvo smo
moilla occkivali. U mnogim in;;trukcijama, ciklus u kome se povecava vrcdnost rc-
gistra PC koristi se i za operaciju citanja. Sledeca instrukcija nc bi se mogla zapoceti
ranijc jcr njcn pocetak zavisi od toga da li su pristigli podaci iz memorije.
Za smanjcnjc bruja ciklusa ncophodnih za preuzirnanje inslrukcija potrcbno je
mnogo vise od dodatnog hardverskog kola za menjanje vrednosti rcgistra PC. Da bi
se prcuzimanje instrukcija znacajnijc ubr;.alo, mora se iskoristiti tree a lehnika- pre-
klapanje izvrsavanja instrukcija. Odvajanje dcla clektronskog kula koje preuzima in-
strukcije (osmobitnog memorijskog prikljucka i regislara MBR i PC) daje najboljc
rezullate ako je LlVa jedinica funkcionalno nczavisna od pulanje podataka. U tom slu-
caju. ona rnozc nezavisno da preuzima slcdeci opkod iii operand. rnozda i asinhrono
u odnosu na preostali deo procesora i da jcdnu do dve instrukcije preuzme unapred.
Jedna od vrcmcnski najzahtevnijih faza izvrsavanja rnnogih instrukcija jeste prc-
uzimanje dvobajtnog rastojanja. njegovo prosirivanjc i upisivanjc u regislar H (kao
priprema za sahiranje, na primer. PC n hajtova za slcclcci skok). Jedno od mogucih
re;enja (prosirivanjc memorijskog prikljucka na 16 bitova) znatno komplikuje opera-
ciju, zato slO JC rnernorija sirine 32 bita. Potrebnih 16 bitova mogu da sc nala,.:c u dve
reei. lako da prilikom cilanja 32-bitnih vrednosti nc rnozcmo biti sigurni cia smo uci-
tali oba potrebna bajta.
Preklapanjc izvrsavanja instrukcija jesle najzanimljivijc resenjc. i nudi najvi;e
mogucnosti za dramaticno povecanje hrzine. Jednostavno preklapanje preuzimanja i
izvrsavanja instrukcija iznenadujucc je efikasno. Slozenijim lehnikama sc postize i
mnogo vise: prcklapanje izvrsavanja vise instrukcija. Ova idcja je srz savrcmenog
projcktovanja racunara. U nastavku cemo razmotriti neke osnovne tchnikc prekla-
panja izvrsavanja instrukcija i obrazloziti kmisnost slozcnijih tehnika.
Brzinaje jedna pulovina slike. a cena druga. Cena se takoLte rnoze meriti na razlicite
nacine. ali je njena tacna definicija pod znakom pitanja. Postojc neki jednoslavni po-
kazatclji kao slo je npr. broj kompunenata sistema. Oni su mo7.c!a bili odgovarajuci u
danirna kada su proccsori pravljeni od pojedinacnih komponcnata kojc su kupovane na
trl:istu i sklapanc. Demas se ceo procesor nalazi najednom cipu, ali su vcci. slozeniji ci-
povi mnog:o skuplji od man jib i jednoslavnijih. Pojedinacne komponente (npr. tranzi-
slori. logicka kola ili funkcionalne jedinice) i dalje se mogu izbmjati. ali jc njihov broj
ccsto manjc vazan od povrsine koju 1.auzimaju na Cipu. Stu je povrsina veca. vcci jc i
cip. A lroskovi proizvodnjc cipa rastu mnogo brz.e od njegove povrsinc. Zbog toga pro-
jektanti cipova. kada razgovaraju o ceni, govorc jezikom trgovaca nekrctninama, tj. o
povrsini koju zauzima elektronsko kolo.
""
278
Poglavlje 4: Nivo mikroarhitekture
glavnoJ < , MOR
Registri
za upravljanje
memorijom
Ka j
memonji J:b f
1 ad n1e I : . PC I
Upravljacki signali
Jedinica za

instrukcija
IIFU)
Posalji na magistralu B
t Upis1 vrednost s magistrale C u registar
Magistrala C -- --
1 r
--- - Magistrala B
UpraviJanJe
ALU J8dinicom
Slika 4-29. Putanja podataka za proc.:sor Mic-2.
N
z
Ubrzavanje rnozemo postici ukoliko u proccsor uvedcmo veci stcpen paralelne
obradc. Procesor Mic-2 je potpuno sekvencijalan. On sadrzaj registara postavlja na
magistrate, ceka na ALU jeclinicu i pomerac da ga obradc i zatim ponovo upisuje re-
zultate u registre. Osim IFU jedinice, drugog paralelizma nema. Prema tome, uvo-
Jenje paralelizma je obecavajuca mogucnost.
4.4 Projektovanje nivoa mikroarhitekture
279
Oznaka
nop1
iadd1
iadd2
iadd3
isub1
isub2
isub3
iand1
iand2
iand3
ior1
ior2
ior3
dup1
dup2
pop1
pop2
pop3
swap1
swap2
swap3
swap4
swapS
swap6
bipush1
bipush2
iload1
iload2
iload3
istore1
istore2
istore3
istore4
istore5
wide1
Operacije
goto (MBR)
MAR=SP=SP-1; rd
H=TOS
MDR= TOS=MDR+H; wr;
goto (MBR1)
--- --------
MAR=SP=SP-1; rd
H=TOS
MDR= TOS=MDR-H; wr;
goto (MBR1)
-- ------
MAR=SP=SP-1; rd
H=TOS
MDR= TOS=MDR AND H; wr;
goto (MBR1)
MAR=SP=SP-1; rd
H=TOS
MDR= TOS=MDR OR H; wr;
goto (MBR1)
--- --- --
MAR=SP=SP+ 1
MDR= TOS; wr; goto (MBR1)
rd
Napomena
Skoci na sledecu instrukciju
Ucitaj pretposlednju rec na steku
H=vrh steka
Saberi dve poslednje reci; rezultat upisi
na nov vrh steka
------
Ucitaj pretposlednju rec na steku
H=vrh steka
Oduzmi TOS od preuzetog TOS-a-1
Ucitaj pretposlednju rec na steku
H=vrh steka
Na TOS-1 i TOS primeni operaciju AND
Ucitaj pretposlednju rec na steku
H=vrh steka
Na TOS-1 i TOS primeni operaciju OR
Uvecaj SP; kopiraj ga u MAR
Upisi novu rec na stek
Ucitaj pretposlednju rec na steku
Cekaj na rec
TOS=MDR; goto (MBR1) Kopiraj novu rec u TOS
------ ---------- -----
MAR=SP-1; rd UC:itaj drugu rec na steku; podesi MAR
MAR=SP
H=MDR; wr
MDR=TOS
MAR=SP-1; wr
TOS=H; goto (MBR1)
- ---
SP=MAR=SP+ 1
MDR= TOS=MBR1; wr;
goto (MBR1)
MAR=LV+MBR1U; rd
na SP
Pripremi se da upises novu drugu rec
Snimi novi TOS; upisi drugu rec na stek
Kopiraj stari TOS i MDR
Upisi stari TOS na drugo mesto na steku
AZuriraj TOS
Podesi MAR za upisivanje na nov vrh steka
Azuriraj stek u TOS-u i memoriji
Premesti LV+ indeks u MAR; procitaj
operand
MAR=SP=SP+ 1 Uvecaj SP; prebaci nov SP u MAR
TOS=MDR; wr; goto (MBR1) AZuriraj stek u TOS-u i memoriji
MAR=LV+MBR1 U
MDR=TOS; wr
MAR=SP=SP-1; rd
TOS=MDR; goto (MBR1)
goto (MBR1 OR Ox100)
Podesi MAR na LV + indeks
TOS za smestanJe
Umanji SP; ucitaj novi TOS
Cekaj ucitavanje
AZuriraj TOS
Sledeca adresa je rezultat operacije OR nad
Ox1 00 i opkodom
wide_iload1 MAR=LV+MBR2U; rd; ldenticno iload1, ali uz dvoba)tni indeks
goto iload2
wide_istore1 MAR=LV+MBR2U; goto istore2 ldenticno istore1, ali uz dvobajtni indeks
Slika 4-3(1. Mikroprogram za Mic-2 (prvi od lii Jcla).

272
Oznaka
pop1
Main1.pop
pop3
Operacije
MAR=SP=SP-1; rd
PC= PC+ 1; fetch
TOS=MDR; goto (MBR)
Poglavljc 4: Nivo mikroarhitekture
Napomena
Ucitava pretposlednju rec sa steka
Registar MBR sadrzi opkod; preuzima sledeCi bajt
Kopira novu rec u registar TOS; salje opkod
Slika 4-24. Poboljsani niz mikroprograrna za izvrsavanje instrukcije POP.
Jnstrukcija POP je poscbno zgodna za ovakvo poboljsavanjc jer ima prazan ciklus
u sredini u kome sc nc koristi ALU jcdinica. Glavna petlja, mcdutim, koristi ALU je-
dinicu. Prcma tome, da bistc skratili putanju izvrsavanja neke instrukcije, potrcbno je
da unutar nje pronadetc ciklus u komc sene koristi ALU jcdinica. Takvi prazni ciklusi
nisu cesti. ali postojc. pa se isplati uklopiti Main1 na kraj svakog niza
Za to je potrcbno samo malo upravljackc mcmorije. Na taj nacin imamo prvu tchniku
za skracenje putanjc izvrsavanja:
Umetunjc pctljc intcrpretera na kraj swtkog niza mikrokodu.
Arhitcktura s tri magistralc
Stajus mozcmo uraditi da bismo skratili putanjc Druga lako uocljiva
tchnika jc da se oba ulaDt u ALU jedinicu izvcdu preko odgovarajucih magistral a A
i B. sto s magistralom C ukupno dajc tri magistral<.:. Svi registri (iii vccina njih) treba
da imaju pristup obcma ulaznim magistralama. Prednost dvc ulazne jeste
to sto u tom slucaju sadr/.aj bilo kog rcgistra muzemo dmlati sadrzaju biiD kug Jrugog
n:gistra u Dkviru jl'dnog sistcmskog ciklw.a. Znacaj ovabc mugucnosti ilustrovan je
kro; imp!t:mcntaciju instrukcijc I LOAD na prucesl>ru Mic-l (siika -+-25 ).

OperaciJe
--
Napomena I

ad1 H=LV
---"""j
Registar MBR sadrzi indeks: kopira sadrzaJ registar I
LV u reg:star H I
iload2 MAR-MBRU.,.H rd
iload3
itoad4
iload5
Main1
MAR=SP=SP+ 1
PC=PC+ 1 ;fetch;wr
TOS=MDR; goto Main1
PC= PC+ 1, fetch; goto (MBR)
tvlAR=adresa lokalne promenijive za na
stek
Reg1star SP uka:uje na nov vrh steka: ptiprema
upisivanJe
Uvecava sadrzaj registra PC; uzima sledec':i opkod:
upisuJe na vri1 steka
sadrzaj registra TOS
Rc,gtstar MBR sadrii opkod; uzima sledeCi bajt:
saiJe na inrser.Je

Slika 4-25. Kc>d pmcc:sora \iic-1 /.,\ instrukcijc !L0."1D.
Ovde vidimo da se sadrzaj rcgistra LV u ukviru iioad1 kopirctu rc-
gistar H. Tu sc radi zbog sabiranp sa sadr/.ajcm rl':;i-Ma MBRU umikruinstrukciji iioad2.
u nasem prvnbitnom projektu' dve magistralc. Ill' pusl()ji nacin da sc direktno saheru
sadrzaji dva proiLvolJna rcgistra, vee jcdan od njih nwra prvo da .sc kopira u regis tar H.
U novom pmjektu s tri magistrak, muzcmu da ustcdimo jedan ciklus (s\ik.a -+-26).
I
-?
4A Projcktovanje nivoa mikroarhitckture
Jnstrukciji !LOAD smo dudali pctlju interpretera, ali to nc uticc na duzinu putanje
izvrsavanja. !pak. Jodatna magistrala je skratila ukupno vrcme izvrsavanja instrukci-
je !LOAD sa sest na pl't ciklusa. Sada imamo jos jednu tehniku za skracenje putanje
izvrsavanja:
Upotreha tri mugis1rale wnesto dvc.
Oznaka Operacije
iload1 MAR=MBRU+LV; rd
Napomena
MAR=adresa lokalne promenljive za stavljanje na
stek
I iload2 MAR=SP=SP-ri Registar SP ukazuje na nov vrh steka; priprema za
upisivanje
I
tload3
iload4
iload5
PC=PC+1; fetch; wr
TOS=MDR
Uvecava sadrzaj registra PC; uzima sledeci opkod;
upisuje na vrh steka
Azurira sadrzaj registra TOS
L_
PC=PC+1; fetch: goto (MBR) Registar MBR vee sadrzi opkod; preuzima indeksni
bajt
Slika 4-26. K6d za i;.vrsavanje instrukcije !LOAD u projektu s tri tnagistrale.
Jedinica za prcuzimanje instrukcija
Obl' opisane tehnil--e su dobrl', ali cia bismo posligli primetno poboljsanje, moramo
upPtrebiti jos bolje tehnikc. Sagledajmo zajednicke Jelove svih instrukcija: prcuzi-
manje inc,t:ukcijc i Jekodiranje njenih polja. Uociccte da se tukom izvrsavanJa svake
tnstrukLije moze dugoditi slcdeee:
I. Sadrzaj rcgi;.tra PC propusta se krot. ALU jeclinicu i uvecava.
.2. Rcgistar PC sc koristi za preuzimanje sledcccg bajta iL toka instrukcija.
J. Operandi SL' ucitavaju iz mcmurije.
4. Opcrtndi sc upisuju u mcrnoriju.
5. 1\Ll' jCdinica obavlja izracunavanje i smesta rezultat.
r\ku ima dodatna polja (La opcrande). svako se po\je mora preuzeti.
haj1 po hajt. i punovo saslaviti pre koriscenja. Preuzirnanje i sastavljanje polja an-
gal.ujc AU; jcdinicu barernjcdan ciklus po bajtu. kako bi sc uvecala vrednost registra
PC, a zatim ida hi se sastavili rczultujuci indeh ili rastojanje. A!.T..I jcdinica se kori'>li
skom u svakom cik.lusu za razlicite operacije koje se ticu prcuzimanja instrukcija i sa-
st:tvljanja ji\llja unutar instrukL'ije. stu jc sve sporedniji posao od onoga stu joj zadajc
sama instrllkLija.
Da bi sc onwguci\o preklapanJe glavnc petlje, ncophodno je ALU jedinicu o:,lobo-
diti nt'kih po:;lm a. To sc moze izvcsti uvodenjem druge ALU jedinicc, mada potpuna
AUi _jcdiniL'a nijc' neuphodna La VeL'inu opcracija. lmajte na umu da u mnogim sluca-
jt:\ima ,\Ll; jcdinica sluzi samu za kopiranje vrcdnostijednog registra u drugi. Takvi
cikiusi 'e i111';2U ustedcti ako Sl' uvedu alternativne putanjc podataka kuje nc prnlaze
1-.nv '\LL jcdinic'u. korist se moze dobiti. na primer. pravljenjem putanjc ud re-
gi:;tra TOS rcgistra MDR iii od registra MDR do registra TOS, posto se rei's vrha ste-
ka cestn kc>pita izmcdu ova dva
I!""
:I
282
Ka
glavnot
memoriji
i od nje
Upravljacki signali
Jedinica za

instrukcija "
(IFU)
f Posalji na magistralu B
t Upisi vrednost s magistrate C
u reg1star
Magistrala C ---
Poglavlje 4: Nivo mikroarhitekturc
-- - Mag1strala B
jedm1com
Slika 4-31. Putanja podataka s lri magistrak u raCunaru Mic-3"
Druga tacka se viKc odnosi na protok pm!ataka ncgo na brzinu izvrsavanja pojecli-
nacnih instrukcij<L u proccsoru Mic-2. tokom prvog i trcccg clela svakog
cik!usa, ALU jedinica je nczapos!ena. Kada podelimo putanju podataka u tri cclinc.
ALU jedinicu cemo moci da koristimo u svakom ciklusu pa tako iz racunara clobija-
mo triput vise rczultata.
Pogledajmo sada kako radi putanja podataka procesora Mic-3. Pre toga trcba da sc
clogovorimo o oznacavanju leceva. Najlakse je da ih oznacimo sa A, B i C. ida ih trc-
tiramo kao obicnc registre, uzimajuci u obzir ogranicenja koja postoje za putanju
poclatak<L Na slici 4-32 dat je primer koda kojim se instrukcija SWAP imp!cmcntira u
procesoru Mic-2.
4.4 Prujcktovanje nivoa mikroarhitckture
Oznaka
swap1
swap2
swap3
I
I swap4
I
I swap5
I swap6
L ___ _
Operacije
rd

wr

wr
goto (MBR1)
Napomena
------- ---
Procitaj drugu rec na steku; podesi MARna SP
Pripremi se za upisivanje nove druge reci
Snimi novi TOS; upisi drugu rec na stek
Kopiraj stari TOS u MDR
Upisi stari TOS na drugo mesto na steku
AZuriraj TOS
Slika 4-32. KCHiprocesora Mic-2 za instrukciju SWAP.
283
I
___ j
lmplemcntirajmo ponovo ov;1j niz mikroinstalacija na proccsoru Mic-3. Setitc sc
da putanja podataka sada racli u tri ciklusa: jedan za punjenje lcccva A i B, jcdan za
obavljanje stvarnih operacija i punjcnje lee a C i jedan za ponovno upisivanjc rezultata
u rcgistre. Svaku od ovih faza zvacemo mikrokorak.
lmplemcntiranje instrukcije SWAP na proccsoru Mic-3 prikazano je na slici 4-3:;.
U prvom ciklusu pocinjemo s mikroinstrukcijom swap I i kopiramo sadrzaj registra
SP u regis tar B. Nijc va::::no koja vrednost ide u registar A zato sto za oduzimanje jccli-
nice od sadrhja registra 8 treba negirati signal ENA (pogledajte sliku 4-2). Zbog jed-
nostavnosti nc prikazujemo dodeljivanja koja sc nc koriste. U drugom ciklusu obavlja
sc oduzimanje. U trccem ciklusu rczultat sc smesta u registar MAR, a prcd kraj ciklusa
zapocinje sci opcracija citanja (jer je je sadrzaj registra MAR vee smcsten). Posto ci-
tanje mcmorijc sada trajc jcdan ciklus, ono se nece zavrsiti sve do precl kraj cetvrtog
ciklusa, sto jc prikazano dodeljivanjem vreclnosti registru MDR u cetvrtom ciklusu.
Vrcdnost u rcgistru MDR nc moze se procitati pre nego sto udemo u peti ciklus.
Ciklus
! 1
2
3
4
!5
;6
[11--
MAR=SP-1 ;rd MAR=SP i H=MDR; wr MDR= TOS MAR=SP-1;
l __ -s;.;,, s ... pS
wr
-- ---- ------ --- -----
;
+ --- ---------1--- t
1 '
; rd -1
+--
i
I
I
----- f -
i
B=TOS
""- - -r- -"
--- ------
H=V; wr j
Mem;MDR
--


TOS=C
I

_j _ ! goto (MBR1)
Slika 4-33. lmplementiranJC instrukcijc SWAP na procesoru Mic-:l.

'
d
280
Oznaka
idc_w1
iinc1
iinc2
iinc3
goto1
goto2
goto3
goto4
iflt1
iflt2
iflt3
lflt4
1feq1
ifeq2
ifeq3
lfeq4
if_1cmpeq1
1f _icrnpeq2
ificmpeq3
if_icmpeq4
,f _1crnpeqS
if icmpeq6
T
F
f=2
1:1vokRvirtua: 1
ln';ckevirtual2

,n\;oke..;!rtuai4
!nvcke'Jirtuai5
'nvokevirtual6
invor.:evirtual?



invokevirtual i 0
11
Operacije
rd;
goto iload2
U; rd
H=MBR1
wr;
goto (MBR1)


goto (MBR1)
1 :rd


N=OPC; if (N) goto T; else
goto F
rd

TOS=MDR
Z=OPC: 1f (Z) goto T: else
goto F
MAR=SP=SP-1: rd

H=lv1DR: rd


QPC: If (Z) goto T;
else coto F
HocPC-1. goto goto2


goto :MBR1)
t1i."'.R cCPP+MBR2U; rd



TOS+ 1
MDR=SP +MBR2U+ 1, wr
MA."i=SP+MDR


wr
L'!= TOS; goto (MBR1)
Poglavlje 4: Nivo mikroarhitekture
Napomena
lsto kao wide_iload1, ali uz indeksiranje ad
CPP
Podesi MARna LV+ indeks za citanje
Podesi H na konstantu
Uvecaj za konstantu i azuriraj
Kopiraj PC u H
Dodaj rastojanje i azuriraj PC
Cekaj da IFU preuzme nov opkod
Predi na sledecu instrukciju
Ucitaj pretposlednju rec na steku
Snimi TOS privremeno u OPC
Stavi nov vrh steka u TOS
Skoci aka je postavljen bit N
Ucitaj pretposlednju rec na steku
Snimi TOS privremeno u OPC
Stavi nov vrh steka u TOS
Skoci aka je postavljen bit Z
UCitaJ pretposlednju rec na steku
Podesi MAR da ucita nov vrh steka
Kopiraj drugu rec sa steka u H
Snimi TOS privremeno u OPC
Stavi nov vrh steka u TOS
Aka su dve gornje reci jednake, idi na T: aka
nisu, idi na F
lsto kao goto1
---------
Pristupl bajtovima u MBR2 koji su za
odbacivanje
Stavi adresu pokazivaca na metodu u MAR
Snimi stanje PC za instrukciju Return u OPC
Postavi PC na prvi bajt koda metode
adresa OBJREF-1
OBJREF
Preko OBJREF upisi vezni pokazivac
Postavi SP, MAR na lokaciju namenjenu
za cuvanje stare vrednosti registra PC
Priprerni se za snimanje stare vrednosti PC
Uvecaj SP da pokaze na lokaciju za cuvanje
stare vrednosti registra LV
Snirni staru vrednost LV
Postavi LV da pokazuje na nulti parametar
Slib 4-30. :'vtikmpmgram za Mic-2 (Lirugi tld tri ucla).
4.4 Projektovanje nivoa mikroarhitekturc
Oznaka
ireturn1
ireturn2
ireturn3
ireturn4
Operacije
rd
rd

rd


Napomena
Podesi SP, MAR da ucitaju vezni pokazivac
Cekaj na vezni pokazivac
Podesi LV, MARna vezni pokazivac; ucitaj
staru vrednost reg1stra PC
Podesi MAR da pokazuje na staru vrednost
registra LV; ucitaj staru vrednost LV
Uspostavi staru vrednost u registru PC
Uspostavi staru vrednost u registru LV
281
ireturn5
ireturn6
ireturn7
ireturn8 TOS; wr; goto
(MBR1)
Snirni vracenu vrednost na prvobitni vrh steka
'
Slika 4-30. Mikroprogram 1.a Mic-2 (trcci od tri dcla).
Kao sto je ranijc pomenuto, trajanje sistemskog ciklusa ograniceno je vremcnom
potrebnim da signali prm1u putanjom podataka. Slika 4-3 prikazujc pojedinacna
kasnjenja signala pri prolasku kroz razlicite komponentc sistema u svakom ciklusu.
U aktuelnom ciklusu putanje podataka postoje tri glavne komponete:
I. Vreme potrebno za prenos sadrzaja izabranih rcgistara na rnagistrale A i B.
2. Yremc obrade podataka u ALU jcdinici i porneracu.
3. Yreme potrchnu cia se rezultati vrate u registrc i
Na slici 4-31 prikazana je nova arhitektura s tri magistrale koja obuhvata IFU jedi-
nicu, ali U/ tri dodatna leca (rcgistra), umetnuta u sredine odgovarajucih magistrala.
Podaci sc u leceve upisuju u svakom ciklusu. U stvari. ovi rcgistri dele putanju
podataka u zasebne ccline kojc mogtt da racle nezavisno jedna od druge. Ovu semu
cemonazvati Mic-3 iii model paralclnc ohrade (engl. pipe/in('(/ mode/).
Kako mugu da pomognu ovi dodatni rcgistri'
7
Podaci sada pro laze putanjom ;:a tri
ciklusa: u prvom se pune lccevi A i B, u Jrugom ALU jcdinica i pomerac
rade svoj posao i podaci prelaze u lee C, au trccem se iz leca C vracaju u normalnc
registre. Da li smu ludi'l Ne. Evo koja je svrha lcccva:
I. Mul.e se uhrzati radni taktjerje maksimalno kasnjenje krace.
7
Tokom svakog ciklusa mugu sc kuristiti svi dclovi putan1c podataka.
Kada sc putanja podataka podeli u tri celine, smanjujc sc maksimalno kasnjcnje, pa
sc ucestalost radnog takta mDL.e povccati. da smo ciklus putanjL' poda-
taka podelili na tri dela, tako da svaki den ciklusa s,ada iznosi ok<l 1/.3 prvobitnug- to
nam omogucuje da radni takt ubrzamu triput. (Ovakva podcla ne odgovara bas pravorn
stanjujer smo u putanju dodali jos dva registra, alice za grubu pwcenu biti dnvo!jna.l
Posto srno closad prctpostavljali da sc svako citanje podataka tz. mcnwrije i upi-
sivanje u nju obavlja izmt:t!u memmijc i kd memorijc prvog ni voa ida je kcs rnemo-
rija na is tom tehnoloskom ni vou kao i rcgistri, i dalje cemo pretposta v ljati da operaciJa
s mcmorijom trajejedan ciklus. U praksi, mcdutim. to mozc da butk ....
'
~ l
286
Poglavlje 4: Nivo mikroarhitekture
jedinica i pomerac. Najzad, u cetvrtom ciklusu, njeni rezultati se ponovo smestaju u
registre. Treba primetiti daje hardver ovde podeljen u cetiri eel inc; u svakom ciklusu,
instrukcija koristi samo jednu. oslobadajuci ostale tri za druge instrukcije.
Korisna analogija nasoj semi paralclne obrade jeste fabricka proizvodna linija za
sklapanje automobila. Da bismo je sto vi;e priblizili nasem modelu, zamislimo da fa-
brickom halorn svakog minuta odjekne udarac gonga, i tada se svi automobili na traci
pomerc unaprcd zajedno radno mesto. Na svakom takvom mestu nalaze se radnici koji
obavljaju odredenu opcraciju na automobilu (npr. montiraju upravljac iii kocnice). Na
svaki udarac gonga (jcdan ciklus) na traku se postavlja nova automobilska sasija, as
njenog drugog kraja skida se potpuno zavrsen autornobil. lako za potpunu montazu au-
tornobila treba mozda na stotine ciklusa. na taj nacin. na kraju svakog ciklusa s trake
side jedan nov automobil. Fabrika moL:e da proizvede jedan automobil u minutu, bez
obzira nato koliko traje sklapanje celog automobila. To jc prednost koju donosi paral-
elna obrada i ona je jednako primt:nljiva na procesorc kao ina fabrike automobila.
4.4.5 Sedmostepena paralelna obrada: procesor Mic-4
Olako smo prcsli preko cinjt:nice da svaka mikroinstrukcija bira svog sledbenika.
One po pravilu biraju sledccu instrukciju u nizu, ali poslednja instrukcija (swap6, po
pravilu), ccsto sc viscstruko grana, sto zaglavljuje obradu jcr se pokusava preuzi-
manje nove instrukcije iako je to nemoguce. Potreban nam je bolji nacin da se izvuce-
mo iz ove situacije.
Nasa sledeca (i poslednja) mikroarhitekturaje Mic-4. Njeni glavni delovi prikaza-
ni su na slici 4-35, na kojoj je izostavljcno mnogo dctalja da hi bilajasnija. Slicno mi-
kroarhitekturi ppproccsora Mic-3. i u ovoj mikroarhitekturi postoji IFU jedinica koja
unapred preuzima rcci iz memorije i odrzava razlicitc MBR registre.
fFU jedinica prenosi bajtove u novu komponentu. jcdinicu za dekodiranje. Ona
ima internu ROM memoriju sa indeksirna IJVM opkoda. Svaka oclrcdnica (red) u njoj
ima dva dcla: duzinu IJVM instrukcije i indeks ka drugoj ROM memoriji za mikro-
operacije. Duzinu IJVM instrukcije koristi jedinica za dckodiranje da bi tok bajtova
pravilno izdelila na instrukcije. tako da se uvek zna sta je opkod. a sta su operandi.
Ako je duzina tckuce instrukcije jedan bajt (npr. instrukcije POP), tada jedinica za dc-
kodiranje zna daje slcdcci bajt opkod. Ako je. mcdutim, duzina tekuce instrukcijc dva
bajta,jedinica za dekodiranje zna daje sledeci bajt operand iza koga neposrcdno sledi
nov opkod. Kada se naidc na prctiks WIDE, slecleci bajt se prctvara u specijalan prosi-
reni opkod (na primer, WIDE+ !LOAD postaje WIDE _I LOAD).
lndeks u ROM mcmoriji za mikrooperacije, koji JC pronasla u svojoj tabeli, jcdi-
nica za dekodiranje ispurucujc slcdecoj komponcnti, jcdinici za svrstavanje u red
cekanja (engl. queueing unit). On a sadrzi malo logike i dve interne tabclc (jcdna je u
ROM, a druga u RAM rnemoriji). ROM memorija saclrzi mikroprogram. u kome sva-
ka IJVM instrukcija ima niz uzastopnih odrednica. nazvanih mikroopcracije. Odred-
nice moraju biti uredene po redosledu izvrsavanja. pa trikovi, kao sto jc wide_iload2
grananje na iload2 u procesoru Mic-2 nisu dopustcni. Svaki IJVM niz mora se potpuno
definisati, sto ponckad dovodi i do dupliranja nizova.
:i
~
~
i
l
4.4 Projcktovanje nivoa mikroarhitekture
Bit Final
lndeks za ROM I Bit Goto
287
CD
Duzina IJVM
instrukcije
Jedinica za cekanje u redu G)
lz
mernorlije
U memon1u
i iz nje
<:::==)
0

ROM za mikrooperacije
IFU jedinica
Podaci za fazu 4
Reg1stri
Slika .t-35. G Ia me komponente proce,ora Mic-4.
IADD
I SUB
I LOAD
IFLT
M1krooperac1)e
u redu Cekan1a
MIRl
MIR2
MIR3
Mikrooperacijc su slicnc mikruinstrukcijama sa slike 4-5. osim sto ne postoje
polja NEXT _ADDRESS i JAM, a postoji novo kodirano polje za biranje ulaza magistrale
A. Pustojc i dva nova bita: Final i Goto. Bit Final sc postavlja u posleclnjoj mikroope-
raciji svakog niza IJYi\lmikrooperacija kako bi se oznacilo daje rei" o poslcdnjoj in-
strukciji. Bit Goto oznacava mikroperacije za uslovno grananje. One su drugacijeg
formata od uobicajenih mikrooperacija- sastavljene su od bitova JAM i indeksa z ~ :
sadr/.aj ROM mcmorije za mikrooperacijc. l'vlikroinstrukcije koje su nekada radile'
putanjom podataka i takode izvrsavalc uslovno grananje (npr. mikroinstrukcija iflt4:
sada se moraju pndeliti u dve mikrooperacije.
Jedinica za svrstavanje u red cekanja radi na sledeci nacin: ona ocl jedinice za de-
kodiranjc dobija indcks u ROt\! mernoriji za mikrooperaciju. a zatim na osnovu in-
dcksa pronala1:i mikmoperaciju i kopira jc u interni red cekanja. Poslc toga, u rec
cckanja se kopira skdeca mikrooperacija. kao i ona posle nje . .Jedinica nastavlja du
racli sve dok nc naide na mikrooperaciju s postavljenim bitom Final. Kopira i nju, <:
zatim prcstaje da radi. Pretpostavljajuci da nijc naisla na mikrooperaciju s posta-
vljenim bitum Go to ida jos uvck ima prostora u redu cckanja, jedinica za svrstavanje

Poglavljc 4: Nivo mikroarhitckturc
Vratimo se sada drugom ciklusu. Prvo cemo rastaviti mikroinstrukciju swap2 na
mikrokorake. U drugom cuiklusu mozemo da kopiramo sadrzaj registra SP u registar
B. zatim cla sadrzaj propustimo kroz ALU jedinicu u lreccrn ciklusu i da ga na kraju
smestimo u regis tar MAR u cetvrtom ciklusu. Postaje jasno da cemo, ukoliko nastavi-
1110 ovako, novu mikroinstrukciju zapocinjati u svakom ciklusu i lako utroslrucili
brzinu racunara. Ova prednost potice od cinjenice da novu mikroinstrukciju mozemo
da zadajcmo u svakom sistcmskom ciklusu, a da procesor Mic-3 ima triput vise si-
stemskih ciklusa u sckundi od procesora Mic-2. Tako smo u stvari napravili procesor
s paraldnom ohradom podataka. "
Nazalost, u treccm ciklusu nailazimo na pn:preku. Zelcli bismo da zapocnemo mi-
kroinsrrukciju swap3, ali cc ona odmah propusliti sadrzaj regislra MDR kroz ALU je-
dinicu, a taj sadrzaj necc iz mcmorijc slici u rcgislar MDR svc do pocetka petog
ciklusa. Situacija u kojoj mikrokorak nc mozc da pocnc jcr ccka na rczultat prethod-
noi! mikrokuraka, naziva se prava zavisnost (engl. true dependence) ili zavisnost ci-
tm;ja od upisivanja (engl. Read Ajier Write. Ri\ W dependence). Zavisnosti se ccsto
nazivaju i hazardi. Ova ;.avisnost oznaeava da se u mikrokoraku pokusava citanje
vrednusti registra u koji podaci jos nisu upi!>ani. Jedino sto ovdc ima smisla raditi je-
stc odlaganjc mikroinstrukcije swap3 dok rcgistar MDR nc dobijc vrcdnost u pctom
ciklusu. Zaustavljanje i cckanjc na potrcbnu vrednost naziva sc zastoj (engl. stalling).
Poslc n.Jcga mozcmo nastaviti da i;.vrsavamo mikroinstrukcije u svakom ciklusu
posto vise nema t.avisnosti, madajc ona moguca u miJ..roinstrukciji swap6, postu cita
sadrzaj registra H nakon sto mikroinstrukcija swap3 upisuJe vrcdnost u njega. Kada bi
mikroinstrukcija swap5 pokusala da procita vrednnsl rcgistra H. hi da zastane
tokomjcdnog ciklusa.
Jako program Dl proccsor Mic-3 trosi ciklusa ncgo pn1gram za procesor
JVIic-2. on ipak radi hr/.c. Ako period ciklusa u procesoru Mic-3 oznacimcl sa ..'>.T ns.
onda proccsoru Mic-3 tre!Ja lli'l.T ns cia izvrsi instrukciJLI SWAP. Nasuprot tcll1lt\ pro-
cesoru Mic-2 za to treha 6 ciklusa po 3.'\T. sto ukupno cini ISL'>.T. Paraldna ubrada
podataka ubrzala je racunar uprkos tome stn smo jedmm1 morali zastati cia bi'-dlW i;.-
bcdi zavisnost.
obradajc glavna tchnika koja sc koristi u svim savrcmcnim procc;cJrima
i zato jc treba pravilno razumeti. Na slici 4-3-1. putanja podataka :.;a slikc 4-J l prika-
zanaJC u ohliJ..u paralclnc ohradc. Prvi stubac prikazujc sta se dc\ava u pnom ciklu-
su, Jrugi prikazuje dcsavanja u drugom ciklusu itd. qm;tpo\lav lpjuci da ncma
mswjaJ. Sivn podrucjc u prvom ciklusu za prvu instrukciju o;.nacava da jc: lHj jcdi-
nica Lauzeta preuzimanjem prvc instrukcije. Jedan otkth:<:j takta kasnijc. tokom dru-
gog ciklusa. registri potrcbni 1.a prvu instrukciju svoj sadrzaj su prcncli u kccvc A i
B. Jok jc IFU jedinica istovremeno zauzeta prcuziman.Jem druge instrukci.jc:. pri-
bzuju dva si\ a bloka u drugom ciklusu.
Tokom treeeg ciklusa. prva instrukcija koristi i'I.LU jedimcu i p11!11cra.::. kce, i .'\ i
B sc pune podacima za drugu instrukciju, a istovrcmeno 'c prcu:ima tree a instrukcija.
Najzad. ttlkom cetvrtog ciklusa, istovremcno se radi na i"<.:tiri in:.;trukcije. Eczultali
prvc ino,trukciJC smdtaju o>t:. ALU jedinica radi za drugu iw;trukciju. lcl'cvi ,'\. i B se
pune za trectt instrukciJU. a cetvrta instrukcija se tck prcuzima.

;?;
i:J:
i'
.:;;_
'
j
ll

l
4.-1 Projcktovanje nivoa mikroarhitckturc
u
"'
"'

c
[iQ}.FU1 Reian- .
F-J< )
l9

I
I f?OOi"""''
.--- I
C:k:"s I
ReqHMt}
A B
ALU
lPomE:razl

l"_':T"j Reg pJ ! ! I
rr=;;t _ _j _v i,

rnm
HA

---'"----
[_,
C:'d::s 2
Time
Ciklus 3
Slika ..J-J-1. Gr:d'icki pnbz paralclnc obauc.
285
Ciklus 4
Da smo prikaza!i pcti ciklus i cikluse, slika hi bila isla kao u cetvrtom
ciklthi.J: s':a ccttri deb ;oudataka koji nwgu da raclc nezavisno. tako bi i radili.
Opisana scma predstavlja cctvui'tl-.;tepcnu paraklnu obradu, s fazama za
ino;trukcija. ;:a pristup upcrandima. 7a o;a ALU jcdinicnm i 1.a ponovno upisivanjc
u rcgistre. Om je slicna parakirwj .\a slikc 2---1-(a), osim ;to ncma fazu za dc-
kodiranje. Za i.-'\ rsavanjc pujedinacnc itJSl! ukcije i dalje su polrebna cetiri sistemska
ciklusa. ali je \ ai.no c:iklusu nova instrukcija zapocinje izvrsa-
a i:--.to..-1'-irl'niL'no sc i;l:-,lrukcije LavrSava.
Na ,]ici -+-3-l !1lll.i:c i hoti;tlnlai:1l pratili svake instrukcije. Za prvu
u prvnr11 ciklusu za ilJU radi lH_: jedinica. U drugom ciklusu. sadrzaj
njenih regi:,<a:-a prenusi se na m;;gi,iJ:tle :\ i B. U trecem ciklusu. na njoj racle ALU
t'
290
Poglavlje 4: Nivo mikroarhitekture
Neka poboljsanja se mogu osvariti samo kroz izmenu arhitekture. Ponekad su te
izmene postupne (npr. dodavanje novih instrukcija i registara), tako da stari programi
nastavljaju da rade na no vim modelima. U ovom slucaju, da bi se izvukao maksimum,
mora se unaprediti i softver iii barcm slari prevesti pomocu novog prevodioca koji
prepoznaje i koristi novouvedene mogucnosti procesora.
Mectutim, otprilike jednom u nekoliko decenija projektanti shvate daje stara arhi-
tektura potpuno iskuriscena i da sc mozc naprcdovati samo ako se pocne od nule.
RISC revolucija iz osamdesetih godina bila je jcdan takav proboj; druga takva revo-
lucija vee lcbdi u vazduhu. U poglavlju 5 poglcdacemo jedan primer u vezi s njom
(lntclov IA-64 ).
U ostatku ovog odeljka razrnotriccmo cetiri razlicite tehnike za poboljsanjc per-
formansi proccsora. Pocecemo s tri proverena poboljsanja implementacije, a zatim
preei na jcdno koje dajc najboljc rezultate kadaje u izvesnoj meri podrzano izmcna-
ma arhitckture. Ove tehnike su: kes mernorija, predvidanje programskog skoka,
izvrsavanjc prcko reda uz prcimenovanje registara i spckulativno izvrsavanje.
4.5.1 Kd memorija
Jedan od najizamvnijih aspckata projektovanja racunara ll citavoj njihovoj istoriji
bio je da se napravi takav sistcm memorije koji isporucuje operande proccsoru onom
brzinom kojom on mo/c da ih obradujc. Nedavni veliki rasl brzine procesora nije bio
praccn odgovarajucim ubrzanjem memorije. U odnosu na proccsorc, mcmorije de-
cenijama svc vise zaostaju. Kad se ima u vidu neizmerna vaznost glavne memorije,
tak va situacija je umnogome ogranicila razvoj sistema visokih perform ansi i podsta-
kla istra/j vanja na zaobilazenje problema sa odnosom izmedu brzine me-
morije i brzine procesoreJ, koji je svake godine postajao sve veci.
Savremeni procesori postavljaju mcmoriji prevelike zahteve, kako u pogledu
kasnjcnja (pri isporuci uperanada), takn i sa propusnog opsega (kolicine ispo-
ruccnih podataka u Jcdinici vremena). Nazalost, ova dva aspekta zavise jedan od dru-
gog. Mnoge tehnike za povccanje propusnog opsega daju rezultate samo uz povecanje
kasnjcnja. Na primer, tehnike paralelne obrade iskoriscene u mikroarhitekturi Mic-3
mogu se primcniti u memoriji da bi se cfikasno obractivalo vise preklopljenih zahteva.
Na/alost. kao i kod prucesora Mic-3, i ovde je rezultat toga vece kasnjenje pojedinac-
nih operacija s rnemunjom. Kako brL.ina procesora raste, postaje svc tczc napraviti me-
monju sposobnu da isporuci operandc u jednom ili dva sistcmska ciklusa.
Jcdan od nacina da se ovaj problem resi jeste i kd memorija. Kao ;to smo videli
u mleljku 2.2.5. kes memnrija je mala i brza i cuva najskorije koriscene memorijskc
reci. Kada bi dovuljno vcliki prucenat putrcbnih mcmorijskih reci bio u kd memoriji,
efekti vnu kasnjcnje memorije drastic no bi se smanjilo.
U jednoj ud najeiikasnijih tehnika za istovremcno povecanje propusnog opsega i
smanjenje kasnjenja koristi se visestruka kd memorija. Njena osnovna verzija koja
radi veoma sadrzi zaseban kes za instrukcije i za podatke. Brojne su koristi
ud ovakve organizacije, cesto nazvane podcljcni kcs (engl. split cache). Prvo, opera-
cijc s memorijom nezavisno se mugu zapoceti u svakom od dva kesa, sto efektivno
l
J.


"!"
!

l
4.5 Poboljsanje performansi
291
udvostrucuje propusni opseg memorije. Zbog toga ima smisla uvesti dva zasebna me-
morijska prikljucka, kao sto smo ucinili u mikroarhitekturi Mic-1: svaki prikljucak
ima sopstveni kes. Imajte na umu da svaki od dva kesa ima nezavisan pristup glavnoj
mcmoriji.
Danas su memorije mnogo slozenije od nasih primera, pa se izmectu kesa za in-
strukcije i za podatke i glavne memorije mozc smestiti dodatni kes, tzv. kcs drugog
nivoa. U stvari, mogu postojati i tri i vise nivoa kesa, sto zavisi od zahteva postavlje-
nih konkretnoj memoriji. Na slici 4-37 vidimo memoriju s tri nivoa kesa. Sam proce-
sorski cip sadrzi mali kd za instrukcije i mali kd za podatke (po pravilu od 16 do 64
KB ). Tu je i kes drugog nivoa koji se ne nalazi na proccsorskom cipu, ali moze biti i
u procesorskom pakovanju, ncpQsredno do procesorskog cipa is njim povezan brzom
putanjom. Ovaj kd je u principu jedinstven: sadrzi mcsavinu instrukcija i podataka.
Tipicna velicina L2 kcsa iznosi od 512 KB do l MB. Kes treceg nivoa (L3) nalazi se
na procesorskoj ploci i sadrzi nekoliko megabajta SRAM memorijc koja jc rnnogo
br:la od glavne DRAM memorije. Kesevi SLI Ll principu hijerarhijski kumulativni, sto
znaci da se sadrzaj kesa prvog nivoa nalazi u kdu drugog nivoa, ada sc sadr:laj kesa
drugog nivoa nalazi u kdu treceg nivoa.
Procesorsko
pakovanje-
Procesorska
ploca
Procesorski Ctp
[jJJ] IL1-DI
Kontroler
!a stature
Podeljeni L 1 kes za instrukcije i podatke
Graficki
kontroler
Jedinstven
L3 kes
Glavna
memorija
l
(DRAM)
Kontroler
diska
Kes na nivou maticne place (SRAM)
Slika 4-37. Sistem s tri nivoa kcsa.
Rad kesa zasniva se na dve vrste lokalnosti adresa. Prostorna lokalnost (engl.
spatia//ucalitv) jeste zapazanje da cc se adresarna brojcano bliskim adresama kojima
je nedavno pristupano vrlo verovatno pristupati u bliskoj buducnosti. Kcs koristi ovo
svojstvo da pripremi vise podataka nego sto sc trenutno trazi, u nadi dace oni uskoro
biti iskorisceni. Vrcmcnska lokalnost (engl. temporal locality) odnosi se na ponovno
pristupanje neclavno posecenimmemorijskim lokacijama. To se moze, na primer, dc-
siti s memorijskim lokacijama bliw vrha steka iii sa instrukciprna koje se ponavljaju
u petlji. Vremenska lokalnost se pri projektovanju kda koristi uglavnom tako sto se
bira koji ce se sadrzaj iz kesa izbaciti pri promasaju. Mnogi algoritmi za zamenu sadr-
zaja kda analiziraju vremensku lokalnost i izbacuju one odrcdnice kojima u bliskoj
proslosti nije pristupano. ....-----
288
Poglavlje 4: Nivo mikroarhitekture
u red cekanja salje potvnlni signal jedinici za dekodiranje. Kada jedinica za dekodi-
ranje primi potvrdu. onajedinici za svrstavanje u red cckanja saljc indcks za sledecu
IJVM instrukciju.
Na ovaj nacin se niz IJVM instrukcija u memoriji konacno pretvara u niz mikro-
peracija u redu cekanja. Mikruoperacijama se pune rcgistri MIR koji salju signale za
upravljanje putanjom podataka. Medutim, postoji jos ndito sto treba da razmotrimo:
sva polja mikroopcracija nisu istovrcmeno aktivna. PoljaA i B su aktivna tokom prvog
ciklusa, poljc ALU je aktivno tokom drugog ciklusa, poljc C je aktivno tokom treceg
ciklusa, a eventualni rad s memorijom ohavlja se tokom cctvrtog ciklusa.
Da bi sve uvo radilo kako treba, u nasc elcktronsko kolo uveli smo cetiri nezavisna
rcgistra MIR (slika 4-]5). Na pocetku svakog sistcmskog ciklusa (vremcnski interval
DH na slici 4-] ), sadr?.aj registra MIR3 kopira se u regis tar MIR4, sadddr?.aj rcgistra
MIR2 kopira sc u rcgistar MIR3, :;,adrzaj rcgistra MIR1 kopira se u rcgistar MIR2, a regi-
star MIR1 se puni novorn mikrlloperacijom iz rcda cckanja. Zatim svaki rcgistar MIR
stavlja na raspolaganje svojc upravljacke signale, ali se samo ncki od njih koriste.
Polja A i Biz rcgistra MIR1 koriste se za biranje rcgistara ciji se sadr/.aj prcnosi u lece-
ve A i 8, ali sc poljc ALU u registru MIR1 ne koristi i nije povczano ni sajeclnom kom-
ponentorn na putanji podataka.
lJ slcdec'em sistcrnskom ciklusu mikroopcracija je pres Ia u regis tar MIR2, a rcgistri
koje jc izahrala pn:ncli su svoj sadr?.aj u kccve A i B. Poljc ALU instrukcijc sada se ko-
1.a upravljanje ALU jedinicom. U sledccem ciklusu njcno polje C upisace rczultatc
u n:gistre. Poslc toga ona L'e prcc'i u registar MIR4 i eventualno zapoceti neophodnu
opcraciju s memorijom. koristeCi napunjcn registar MAR (i MDR. za upisivanjc).
Poslcdnji aspckt mikroarhitckture Mic-4 (mikroskokovi) zahteva dctaljniju anali-
zu. Ncke IJVM instrukcijc, kao stojc IFLT, imajuuslovne skokove, u zavisnosti ocl, rc-
cimo, bita N. Kada nastanc mikrogrananje, ne mo/.e se nastaviti paralelna obrada.
Zbog toga se u taJ.. ve mikmupcracijc mora clodati bit Goto. Kada jcdinica za svrsta-
vanjc u red cekanja prilikom kopiranja mikmoperacija naidc na mikroopcraciju u ko-
joj jc bit postavljcn. una predvida cia cc nastati probkmi i zato ne saljc potHdu
jcclinici za dekodiranjc. Zbog toga racunar privrcmcno prekida rad sve dok se mikm-
skok ne
Razumljivo jc da su neJ..c !JVM instrukcije, kL)je sene mlnosc na tckucu program
sku granu, VCL' ucitanc ujedinicuza dekodiranjc. aline i u jedinicu za sv rstavanje u red
cekanja postu ona nije poslala potvrdu jer jt' naisla na mikroinstrukciju s
bitom Guill. Da bi se guzva rascistila i sve dovclu ll red. potn.:bni Sll specijalan hardver
i specijalni mchanizmi. ali ta tcma ne spacla u ovu knjigu. KadaJc Edsgcr Dijkstra na-
pisao svojc cuveno pismo ,GOTO Statement Considered Harmful (Narcdba GOTO
smatra sc stet nom)" ( Dijkstra, 19(,t)a), nijc ni znao koliko je bio u pra vu.
l'rdli Sill() dugacak pul ml mikroarhitcklure rvlic-1. Procc'or :'vlic-1 bio jc 'as vim
jcdnoslavan delic hardvera, skoru potpuno softverski kontmlisan. jc proccsor
s visokim stcpenom paralclne obrade podataka. sa sedam faza i mnogo sltlZeniJim
hardvnom. P;mtlelna ubradajc prikazana na slici 4-:16. pri ccmu sc bn '.levi mino'c na
komponcntc ,;a slike -\-\5. Proct'sor l\lic-4 auwmat,ki unaprcd preu1ima tok bajrova
' ':.'

4.5 Poboljsanje pnfonnansi
289
iz memorije, clckodira ih u lJVM instrukcije. pretvara ih u niz rnikrooperacija pomncu
ROM memorijc i ih u red cckanja za izvrsavanje. Prve tri paralclne obra-
de mogu se vezati za radni tak.t putanjc poclataka, ali nece uvck biti podataka za obra-
clu. Na primer. JFU jedinica izvcsno nc moze u ;,vakom si,tcmskom cikluSL
snahclevati jedinicu za dekodiranje novim llYN! opkodom, zato sto se !JVM instruk-
cije izvrsavaju tokom vise ciklusa i red cekanja bi se prepunio.
CD 0
G)
0 0
E}
IFU wdinrca lzvrsavanJe
Uprsivante
I Rad s I
rozultata mernorijom
Slika -t-36. Paraklna obrada na pruce"11u Mic--l.
Pri svakmn otkucaju tadnug takta instrukcijc sc pomeraju kroz rcgistre MIR, a mi-
krooperacija na pocetku rcda cckanja kopira sc u regiswr MIR1 bi zapoccla izvrsa-
vanjc. Tada sc upravlpcki signali iz cctiri rcgi.-,tra MIR sire putanjom pudatab
ratlicite uperacijc. Svaki regis tar MIR upravlp drugim dclom putanje poda-
taka ( dakle, drugim mikrokmakom).
u ovuj semi jc pmccsor sa upscl:nom paraklnum obradom, sto dozvoljava vrlo krat-
kc k()[";tkc i visoku rrekvcnciju radnog takta . .\lnogi pruccsuri su -;ustinski prnjektovar,i
na ovakav nacin, naml'ito ,mi koji trcba da impkmcntiraju .'-.tariji (CISC) skup instruk-
cija. Na primer, implemcntacija Pcntiuma li knnccpcijski jc na izvcstan nacin slicn1
imp!t:mcntaci_ji pmcCSPra \Jic-4. kao <tn CCIC Sl' j li\Ctiti Ll nastaVkll poglavlja.
4.5 POBOL.JSANJE
Svi prui1votLtci volcli bi da nj iht'v i sistemi radc st,l brze. U ovom odcljkJ
opis;Lccmo niz tchnika Koje sc danas i'iprobavaju za poboljsanjc perfor-
mansi s istcma I prvcm.rveno proc-:snra i memorije ). Zahva l_jujuci velikoj konkurenci i
koja v Ltda u racunarsJ..uj indtP;rriji. vrcme izmcdu P''javc novih predloga za ubrzallJC:
rada 1acun;1ra i njilwvng ugradi vanja u rroi7vodc 1.acudujuce jc kratko. Zbog toga se
idcje ll kojima cc:Jnnu 11<1-.;lavku govoriti uglavnom vee navcliko koristc u postojcc'im
prui;,\'()d ii11lL
Tc idcjc sc rnogu grubu svrsLlti u dvc kategonjc: pob<.'ljsanja implcmentacijc i pc-
hc,lj.,anja Poholjsanp implcmcntaciJe obuln a1:tjn nacine konstruisanja
novih pmcc'Sl'ra ili mcmllrija !.hog J,.,)jih (c sistcm raditi hr/.c i bcz izmena postojcce
arhitcJ..ture. Unaprcdiv;mJe impkmcntacijc izmcna arhitckture znaci da cc stari
prng:-ami raditi llll novim racunarima .. Slll jc Ut!Jlrni cinilac. Jcdan oJ
nacina da se pclholj\a implcm,ntacijajcste k<1risccnjc radnug takta, ali to nij..: i
jcclini nctcin poccv;i ud pmccsora R0386, preko procesora
ISO-i-iS(J. Pr:nriuma i Pcntiullla Pr,l. dn Pcnliuma !I, pnskdica je poholjsavanja implt-
menL<cije jcr je arhitektura su\tirbb u .wima nJima osl;tia i-;ta.
-
~
U.
294
Poglavlje 4: Nivo mikroarhitekture
Direktno preslikani kes je najcesca vrsta kesa koja radi prilicno elikasno jcr se
opisana situacija moze svesti na minimum, ako ne i potpuno izbeci. Na primer. neki
vcoma inteligentan prevodilac moze da uzrne u obzir potencijalne sukobc u kdu kada
u memoriju srnesta instrukcije i podatke. Treba primetiti da se opisano sukobljavanje
ne bi dogodilo u sistemu s kdom podeljenim na dco za instrukcije i dco za podatke
jer bi sukobljene zahteve obradivali razliciti delovi kcsa. Tako uvidamo da podeljeni
kcs ima jos jednu prednost nad jedinstvenim: vecu tleksibilnost pri obradi konlliktnih
mcmorijskih zahteva.
Set-asocijativni kd
Kao sto smo vee opisali, brojni rcdovi glavne mcmorije mcdusobno konkurisu za
istc redovc u kesu. Ako program koji radi s kesom sa sliJ,e 4-38(a) intcnzivno koristi
reci na adresarna 0 i 65.536, sukohi ce stalno nastajati, a svako obracanjc rncmoriji
brisace i ponovo u kt:S upisivati po jedan reel. Ova situacija sc razreava kadajedna
odrednica kesa sadrzi dva iii vise rcdova. Kcs san mogucih odrcdnica za svaku me-
morijsku adresu zove sc n-tostruki set-asocijativni kes (eng!. n-way set associlltive
cac/;e). Cetvorostruki sct-asocijativni kcs prikazan je na slici 4-39.
Brt Valid
Bit Valid BitValrd Brt Valid
2047
fi ~ r ---- J1 r
n. J
J1 r
tr r n r rr T
n ~ T
--y--
Odrednica A Odrednica B Odrednica C Odrednica 0
Slika -t-.19. Cetvorostruki sct-asocijativni kes.
Set-asocijativni kes slozcniji je od direktno prt'slikanog kda: iako se ispravna od-
rcdnica kda muzc iaacunati i,: trazt'ne memnrijske adrese, treha proveriti n odredni-
ca kda kaku bi ~ e utvnlilo da li jc tral:ena rcc u njemu iii nije. Bez obzira na to,
iskustvo pokazujc da dvostruki i CC!VOrostruki kes rade dovoljno dobru da hi St' ispla-
tilo dodatno ubganje u hardvcr.
Sct-asocijativni kcs namcL'c projektantu o,vojcvrstan problem. Kada se unosi nova
odrednica u kd, koju od postojecih stavki treha izhaciti"l Za optimalan izbor, naravno,
treba pogleclati u buducnost, ali se za predvidanje buducnosti dobrirn pokazao i algo-
ritam LRU (Least Recently {]sed). On cuva listu .-;vakog skupa lokacija u kdu kujima
4.5 Poboljsanje performansi
295
se moze pristupiti sa odredene memorijske lokacije. Kad god se pristupi nekom oc
postojeCih redova, on azurira listu, stavljajuci taj red na prvo mesto. Ukoliko odredni-
cu valja zameniti, izbacuje se reds kraja liste- onaj kome je najrede pristupano.
Ako se ode u krajnost, moguce je napraviti i 2048-ostruki ke sa samo jednim sku-
pom od 2048 redova. U njemu se sve memorijske aclrese preslikavaju u jedinstvcr
skup, tako da se pri pretrazivanju adresa mora uporediti svih 2048 redova u kesu
Ohratite paznju nato da sada svaka odrednica mora irnati logiku za poredenje. Postc
je polje LINE duzinc 0, polje TAG sadrzi potpunu adresu (kada izuzmemo polja WORC
i BYTE). Stavise, kada se zamcnjuje red kesa, svih 2048 lokacija predstavljaju potcn-
cijalne kandidate 1:a zamenu. Odrzavanje liste sa 2048 redova zahtevan je posao, P'
se za zamenu ne moze koristiti algoritam LRU. (lmajte na umu da se lista mora azuri
rati pri svakoj memurijskoj operaciji, a ne samo prilikom promasivanja kea). Za-
nimljivo je da u veeini slucajeva visokoasocijativni kes nc radi mnogo bolje m
niskoasocijativnog kda, au odredenim slucajevimaje i gori od njega. Zbog toga cete
u praksi retko sresti set-asocijativni kes sa asocijativnoscu veeom od cetiri.
Na kraju, operacija upisivanja predstavlja narocit problem za kd memoriju. Kad'
procesor upisujc rcc, a rec se nalazi u kesu, on ociglcdno mora iii da azurira rcc iii de
odbaci odrednicu kda. U skoro svim reenjima kes se u tom slucaju azurira. Ali, st;
je sa azuriranjem kopije u glavnoj rnemoriji? Ta opcracija sc moze ohaviti odmah il
ostaviti za kasnijc, kada dmtc vrt'me da algoritam LRU zameni taj red kcsa. Nije lak0
izahrati, a nijedna od dvc nmgucno,ti nema veiiku prcdnost. Trenutno azuriranjc od-
rednice u glavnoj memoriji poznato je kao direktno upisivanje (engl. write through)
Ono se jednostavnije implemantira i pouzdanijc je jer jc memorija uvek azurna. sto jt
korisno, na primer, kada nastanc grcska, pa treba restaurirati stanjc memorije. Nab-
lost, to po pravilu zahteva vise obracanja memoriji, pa postoji teznja da se u sloze
nij im implcmcntacijama primeni alternati vno, odlozeno upisivanje (engl. write
defi'rred, write hack).
Pri upisivanjunastaje problem slican opisanom: sta ako sc podaci upisuju na loka-
ciju koja trenutno nijc kesirana'
1
Treba li podatke preneti i u kd iii ih samo upisati L
memoriju'
1
Ponovo, nijedno od dva rdenja nije u svirn slucajevirna najpogodnije. l
vecini resenja u kojima se upisivanje u mcmLJriju odiaze, tezi se da se pri promasajL
prilikom upisivanja podaci prcncsu u kd, sto je tehnika poznata kao zauzimanje od-
rednice (engl. write allocution). S druge strane, u rdt'njima gde se koristi dircktm
upisivanjc postoji tdnja da sc odrcdnica nc zauzima prilikom upisivanjajer se nata
nacin komplikuje inace jcdnostavna sema. Zauzimanje odrcdnice ima najvise smislz
ako sc ccsto ponavlja upisivanje jedne iste iii vise razlicitih rcci u isti red kda.
Pcrformanse kda se direktno odrabvaju na performanse citavog sistema jer
postoji sirokjaz innedu brzine rada procesora i rncmorije. Zbog tugaje trazenjc boljc
strategije kcsiranjajos uvek vruca tcma (Aiamcldccn i Wood, 2004; Huh et al., 2004
Min et al., 2004; Nesbit i Smith, 2004. i Sub et al., 2004).
.......----
292
Poglavljc -l: Nivu mikruarhitekture
Sve vrste kda koriste sledeci model. Glavna memorija se deli u blokove fiksne ve-
licine, zvane redovi kda (engl. cache Lines). Red kesa po pravilu sadrzi od 4 do 64
uzastopna bajta. Redo vise uzastopno numerisu pocevsi od nuk. tako da- s redovima
od po 32 bajta- red 0 sadrzi bajtove od 0 do 31, red 1 sadrZi bajtove od 32 do 63 itd.
U kdu se u svakom trenutku nalaze odredcni redovi. Kada se zatrazi podatak iz rne-
rnorije, kontroler kda proverava da li se trazena rec trenutno nalazi u kesu. Ako se
nahr.i, mo/.e se odatle koristiti, bez potrebc da se pristupa glavnoj memoriji. Ukoliko
se rec nc nalazi u kdu. jedan red se brise, a iz memorije iii iz kcsa ni/.cg nivoa prcu-
zima se trazeni red koji ga zamenjuje. Postoje brojne verzije opisanc scme, ali svima
im je zajedniCka te/.nja da se u kesu sacuva sto vise najCdce redova kako
bi se povecan broj obracanja memoriji koji se mole zadovoljiti ke.\a.
Dircktno prcslikani kd
Najjl'dnostavnija kcs rnemmija poznata je pod imcnom di1cktno prcslikani kcs
(engl. direct-mupf!Cd cacht'). Primer jcdnostcpcnog. direktno preslikanog kesa prika-
zanjc na slici 4-3:-\(a). On sadrzi 204:-\ odrcdnica. SvaLt odrcdnica (red) kesa moze da
cuva tacno jedan red iz gbvnc mcmorijc. Ako je du/.ina rl'da kcsa 32 hajta (uovom pri-
mcru). kes rno/c ukupno da l:uva 64 KB podataka. Svaka Pdn.:dnica kesa irna tri deJa:
1. Bit Valid koji onncava da li u odrcdnici illla va;icc'ih podataka. Pri pokretanju
mlrcdnice pm.LaJU ncva/ece.
..., Poljc Tag sadrzi jedinstvenu 16-hitnu vrednost- identilikatm reda memorijc
iL k()ga -,u podaci prl'ncti.
3. Polje Da:a sadr/i kPpiju pudataka iz glavnc menH'rijc. Ovn polje sadr/.i jedan
red 1-.c\a du/ine J2 hajta.
Ll dircJ..tno prcslikanum kcsu. mcmmijska rec se mo.:'c cuvati samo na jednom,
ral:no Pdrcdcnom mc:tu. Kadajc P<J!llat:ttljcna urnemuriji, pustoji samojedno
IJh:St<J tt kc'iu gl!t.: j.c !n..:ba Lr:viti. Ako tamu nc prnnacic. znaci daje ncma u kcsu. Za
:-;mc;tanJC i prctuim:lliJC iz adrc,a se (kil na l:ctiri Kl)[nponentc, kao na
siici 4-31-i(b):
l. PulJt: TAG odgmara hituvim:t Tag odredntce i1
..., PlllJC LiNE <'/JiaCava odrednic.:u ke<a u kujllj ,;c nalaf.C podaci (ukoliko postoje
u kc:\u).
3. Pnl_jc WORD kujuj sc rcCi u rcdu pristupa.
Poljc BVTE >e ['I' prctvdu nc koristi. ali aJ..o se Lrazi samo jedan bajt. ovo polje
on1aca\ a K<Jji I<' ru bajt unutar n.:ci. :L1 k:.:s koji 'kzbcdujc samo 32-bitne reci,
t>VD polje c'c U\Ck biti tl.
pmcc-.<H. adrcsu u mc:ntmiji, ilar,hcr nd njc dobip ll bitova polja
ur;E i ltll\ti ih /a kesa Ja bi prona<au JCUllll od 204:-\ odn;dnica. Ako je
udre.lni.:a 'a/.:ca, pJrcde s.c poljc TAG aJrcse u mcmuriji i pllljc Tag u odrednici kesa.
L'kulij.;,., se pulja c,Jnzc. udrednica kcsa sadr/i tra?.enu rec, a takva situacija se
4.5 Pnholjsanjc performansi
BitVal1d
Odrednica 1 Po!Je Tag Podaci
Adrese podataka odrednice
2047 l, l I
1
65504-65535,131040-131071,
7
6
5
4
3
2
1
0
II I 1
96-127,65632-65663,131168-131199
t- -t----+- ---------1 64-95,65600-65631,131136-131167,
Hc------+---------1 32-63,65568--65599,131104-131135,
0-31,65536 65567, 131072-131103,.
Ia)
B 1tovi 16 11 3 2
293
I OZNAKA I RED I REt I BAJT I
(b)
Slika 4-38. (a) Dircktno prcslikani kd. (h) 32-bitna virtuclna adrc"t.
naziva pogodak (engl. cache hit). Tada sc trazena rec mo.:'e uzeti iz kesa, sto znaci da
sc ne mora traziti u glavnoj rnemoriji. lz odrednicc kesa kopira sc samo trazena rcc,
a ostatak odrednice se ne dira. Ako odrednica nije va.Lec'a iii se oznake nc slozc. tt>
znaci da trazena odrednica nije u kesu i kazcmo daje nastao promasaj (engl.
miss). U toj situaciji se iz mernorijc preuzima 32-bajtni red kesa i smdta se kao od-
rcdnica. zamenjujuCi odrednicu u kojoj se javio promasaJ. Medutim. ako je postojec':t
odrednica kt:Sa bila menjana od trenutka kada jc smdtcna u kes. ona se pre izbaci-
vanja mora upisati u glavnu memoriju.
Uprkos slozenosti odlucivanja, pristupanjc trazenoj reci rnoze da bude veoma
brzo. Cirn jc poznala adresa, powata je i tacna lokacija reei ukoliko 0/ILI postoji II
kc.\:u. To znaci da je rec mogucc procitati iz kda i proslediti jc proccsoru jos tokom
utvrdivanja (poredenjem oznaka) da li je ispravna ili nc. Tako procesor dobija rec
istovrcmeno. iii mozda cak i pre nego sto sazna da li je clobijena zahtcv:ma ree.
Prcma opisanoj preslikavanja. uzastopni redovi memorije smestaju se u uLa
stopne redove kesa. U kes se u stvari mo/.c smcstiti ncprckidan tok ud najvisc 64 KG
podataka. Medutim, dva reda cije se adrcse razlikuju za tacno 64 KB (65.536 bajtova)
iii J:a celobrojni umno:i'ak ovog broja; ne mugu se istovremeno preneti u kd (jer imaju
istu vrednost u polju LINE). Na primer, ako program pristupa podacirna na lokaciji X.
a zatim izvrsava instrukciju za koju 'ill potrcbni podaci sa aclrcse X+ 65.536 (ili
druge adrese unutar tog rcda), instrukcija cc izazvati ponovnn ucitavanjc odrednice,
brisuCi postojecu. Ako se to dogacla prilicno ccsto, performanse naglo slabc. U stvari,
kada kd radi pod najnepovoljnijirn uslovima, to je gore ncgo da uopstc nema kda,
posto se u svakoj memorijskoj operaciji ne uCitava jedna ree, vee citav red.
298
Poglavljc 4: Nivo mikroarhitckture
u stanje u kojcm jc bio kada je obavio pogrdan skok. Oba resenja su komplikovana
i neophodna jc profesionalna hardvcrska i softverska podrska da bi radii a ispravno.
Ako se naidc na drugo uslovno grananje pre nego sto se sazna da li je prvi skok
ispravno predviden, tada zaista postaje gusto.
Dinamicko predvidanjc programskog skoka
Tacno predvidanje jc, naravno, veoma vaL.no, posto omogucava da procesor radi
punom brzinom. Zhog toga sc brojna tekuca istrazivanja have poboljsanjcm algorit-
ama za prcdvidanjc programskih skokova (Chen eta!., 2003; Falcon eta!., 2004; Ji-
menez, 2003. i Parikh el a!., 200.f ). Jedan od pristupa je da procesor odrzava tahelu
proteklih dogadaja (pomocu specijalnog hardvera) ida u nju belel:i obavljcnc uslovne
skokove. tako da ih moze iskoristiti kacl do njih ponovo dmte. Najjcdnostavnija ver-
zija ovakve seme prikazana jc na slici 4-4l(a). Tabela protcklih dogadaja sadrzi po
jednu odrcdnicu svaku instrukciju uslovnog grananja. Odrcdnica sadrL.i adrcsu in-
strukcije za grananje i bit koji saopstava jc li bilo programskog skoka posleclnji put
kadajc instrukcija izvrscna. Pomocu ovakve scme prcdvida se da cc programski tok
ici istim putem kao i prethodni put. Ukoliko se pokazc cia jc prcdvidanje pogrdno,
menja se hit u tabeli proteklih dogadaja.
B1t V<Jiid Grananp;( B1t Valid
Adres<l nem<J \JriHldnJa j BIIOVI7<l
1nstrukc1]P. ! predvidilllJI:!
Odredmcn t za \JrJrHlllJe/oznakil T Odredn1ca za grani:lnJe/omaka ,
BttOVI?a
B1tVal1d predvidi:lrlJP-
AdresJ j
mstrukcl)e Adrf!Sil
zagranilnJe/ozni:lkil odred1Sta

Ia) lbl lei
Slika 4-41. (a) Jcdnohitna istorija g:rananja. (b) Dvobitna istorija g:rananja. (c) Prcsiikavanje
izmcclu adrcsc instrukcijc za grananjc i adrcsc odredista.
Tabela proteklih dogadaja mozc se organizovati na vise nacina. To su u stvari nacini
za organizaciju kesa. Razmotrite racunar sa 32-bitnim instrukcijama kojc su poravnatc
na granici reci tako cia -,u elva najrnanje znacajna bita svakc memorijske adrese 00. Uz
direktno preslikanu tabclu proteklih dogadaja koja sadrzi 2" odrednica, iz instrukcijc
za grananje mozc se izvuci n+2 najmanjc znacajnih bitova i pomeriti udesno za dva bi-
ta. Takav n-bitni broj moze se iskoristiti kao indeks za tabelu protcklih dogadaja, gde
se proverava da li takva adresa postoji. Kao ni kod kda. ni ovde nema potrehe da se cu-
vaju n+2 najmanje znacajna bit a. pa se oni odbacuju (to jest, cuvaju sc samo znacajniji
bitovi aclrese koji odgovaraju njenoj oznaci). Ako dlJLte do pogotka, grananjc se precl-
vida pomocu bita La preclvidanje grananja. Ukoliko jc oznaka adresc pogre:ina iii je
cela odrcdnica neispravna (bit Valid je 0), u pitanju je promasaj, kao i kod kesa. U tom
slucaju moze sc naknaclno iskoristiti pravilo skoka unapred (unazad).
.f


!i?



,i,
!.
i_
4.5 Poboljsanjc performansi
299
Ako tabela proteklih dogadaja ima, recimo, 4096 odrednica, instrukcije za grananje
na adresama 0, 163R4, 32768, ... sukobljavace se. slicno kao i kocl ke:ia. Resenje jc she-
no kao u slucaju kcsa: moguce je primeniti dvostruke, eel vorostruke iii n-tostruke aso-
cijativne oclrednice. Slicno kdu, granicni slucaj je jeclinstvena n-tostruka asociptivna
odrcdnica za koju je potrebno pretraziti citavu tabelu (potpuna asocijativnost).
Uz dovoljno veliku tabelu i dovoljan stepcn asocijativnosti. ova sema uglavnom
radi dobro. Medutim, jeclan problem se i dalje javlja. Kada programski tok
konacno izade iz petlje, skok na njenom kraju bice pogresno prcdviden i, sto je gore,
to ce promeniti bit u taheli proteklih clogadaja tako cia ukazuje da ,ncma grananja".
Kada program sledcci put ude u tu petlju. skok na njenom kraju hicc u prvom ciklusu
petlje pogre:ino preclvic!en. Ako 'ie petlja nalazi unutar drugc petlje iii u okviru cesto
pozivane procedure. ova greka se moze cesto clogadati.
Da bismo sprccili ovakvo pogresno preclvidanjc, odrednicama tabele mozlemo cia
pruzimo i drugu sansu. Prema ovoj metocli, hit za preclvidanjc menja vrednost samo
nakon dva uzastopna pogresna predvidanja. U takvoj situaciji moraju postojati dva
hita za prcdvidanje u tabeli protcklih dogactaja (jedan za ono sto se ,prctpostavlja" cia
ce se desiti i drugi za ono sto se stvarno clogodilo posleclnji put) kan na slici 4-4l(b).
Ndto clrugaciju sliku dobijamo ako algoritam posmatamo kao masinu s cetiri ko-
nacna stanja, kao na slici 4-42. Posle niza uzastopnih uspe:inih predvidanja tipa ,ne-
ma grananja", masina ce biti ll stanju 00 i sledeCi put ce dati predvidanje ,nema
grananja'. Ako to predvidanje bucle pugresno. ona ce preci u stanje 01, ali i slecleei
put dati predvictanje ,nema grananja". Samu ako i ovo predvidanjc bude pogrc5no.
ona ce preci u stanje II i sve vreme predvidati grananje. U stvari, krajnji levi hit stanja
prcdstavlja prcclvidanjc, a krajnji clcsni bit je 0110 sto se dogoclilo posleclnji put. lako
je ovde . .istnrija" odredene instrukcije dugacka samo 2 bita, moguce registrovati i
istmije cluzine 4 iii 8 bitova.
Ovo nije nas prvi konacni automat. Slika 4-28 takode prikazuje jedan takav auto-
mat. U stvari. Sva cctiri nasa tnikroprograma mogu SC posmatrati kau konacni auto-
mali, svaki red u tabeli iii kesu predstavlja specificno stanje u kt>me automat
moze da se nade, s clobro dctinisanim prelazima u konacan skup drugih stanja. Model
konacnng automata navcliko sc koristi u svim aspcktima projcktnvanja hardvera.
Dosad smu prctpostavljali da Je odrecliste svakc instrukcijc za uslovno g:rananje
po;:nato. najccsce kao eksplicitna adresa na koju treba skociti (postoji unutar same in-
strukcije) iIi kao rclati vno rastojanje od tekucc instrukcije I tj. kao oznacen ceo broj
koji treba dodati programskom brojacu). Tak va prctpostavka jc cesto opravdana, ali
nekc instrukcijc za uslovno grananje racunaju adresu odredista na osnovu vrednosti
registara. (:ak i ako konacni automat sa slikc -+-42 tacno prcdvicli granu kojnm treha
da ide programski tok. od toga ncma koristi ukoliko nije poznata adresa odredista.
Takva situacija :-:c mozc prevazici aku se u tabcli proteklih dogactaja i'uva i adresa na
koju je poskdnji put ohavljcn skok, kao na slici 4-41 (c). Na taj nacin. ako wbela kaze
da je posleclnji put kada jc obavljcna instrukcija za grananje na adresi 5 16 program
skocio na adresu 4000, i ako hit za preclvictanje kaze ,grananje". radna prelpostavka
cc hi ti da sc ponovo :-:koci na adresu 4000.
296
Poglavljc 4: Nivn mikroarhitekture
4.5.2 Predvidanje programskog skoka
Kod savrcmcnih racunara u velikoj meri sc koristi paralelna obrada podataka. Tak va
obrada na slici 4-35 ima sedam faza; u najsavrsenijim racunarima, obrada se ponckad
obavlja u dcsct faza pa cak i vise od toga. Paralelna ohrada daje najbolje rczultatc kada
je kod tj. kada jcdinica za preuzimanje podataka mozc redom Ja cita reci iz
mcmnrije ida ih ;alje jedinici za dekocliranjc znajuci unapred sta joj jc potrchno.
Jedini problem od kojcg pati opisani moclcljcstc to nije ni najmanje reali>tiean.
Programi nisu sastavljeni od linearnih nizova koda. Oni su prepuni skokova. Raz-
motritc jednostavnc naredhe sa slike 4-40(a). Promenljiva i se poredi s nulom (sto jc
verovatno pro vera u praksi ). U zavisnosti od rewltata poredcnja, drug a pro-
mcnljiva, k, dohija jednu od dve mogucc vrednosti.
if (i == 0)
k = 1;
else
k = 2;
(a}
CMP i.O , uporedi i sa 0
BNE Else ; skoCi na Else ako nisu jednaki
Tllen: MOV k, 1 ; stavi 1 u k
BR Next , obavezno skoci na Next
Else MOV k,2 ; stavi 2 u k
Next:
(b)
Slilm .t-41). (a) De lie progrcuJJCL ihJ 0i.J-gm prnud na upi.ti '"cmhkrskijaik.
Moguc prcvod r1V11g programa na ;N.:mhkrski jc1ik pribzan jc na slici 4-40(b).
0 ;tsembicr--J.<Jlll jc:;.iku govorict'lll<' kasnijc u <>V11j knJizi i njegovi detalji sada nisu
bitni, ali cc sc. u ;_a, Pd racunara i prLI.r'diuca, pri prcvodcnju programa sa
,]ike 4-40(al p<Jja'.Jti J ..J,d ,!Jean onom na siici 4-40(\1). Pna instrukc:ija poredi vrcd-
nost pmmcnlji vc i ' nulnm. Dru:;a na laie 'ik(Jk na oznaku F! \1: ( pol:ct ak mired be else)
ukuliko vrcdnu'il pmmctdjivc: i nijc 0. Trcc'.l instruk<:ija dndcljuje vrcdnust I pro-
menljivuj k. (ct vrl.t instrukcij_t 'Ltla;l.c :;kJk na slcdcc'u ncm::dbu. f'r.:vmlilac jc tu pa-
metno ubacio clnaku Sen. t;Jku da po .... tu_,ii mcs!<' na koje trcba '-.kuciti. Petom
instrukr:iJO!ll prnmc:niii'.rlj k dud.'iJUJC vrednusl .2.
Ovde tr;:ba zapMili da ,u 1hc ud pet sk,,kovi. StaviZc:. jcdna od njih.
BNE, usluvni jc .. ,,k 1. c;kPk k<lji sc '>havlja samu ako .Jt' ispunjen ;.adati uc;lov. uovom
sluC:aj u. akn dva opcramb u prctl:urlnnj narcdbr C1\IP ni su jctlnaki). '\iaj< !u 7.i nit. linear-
llclg kuda u ov,lln primcru sadrzi J1 c: inwukcijc. Zatn jc 11 ovom c;]uCaju vcuma tc;kn
preu7ctl in:-trrJkcije \c:!ikum bri.!ncm d:.t hi ,e (lh;t\ ijala p:traklna obr:1da.
U prvi llLJh hi 1nogln L!a :-:1-._('ku\'i - k.Ju onaj u in\1ruk.ciji BR Next
na slici +--\O(h) -ni.c,u pn>hkn:rtJCni. f'h i--.raiu krajc:va. n..:ma dilcme o tnme kuda trc-
ba Ja 1ck pr,gr:un,ki tr<..:. /a\t,J jc:dinica /a prcu;:illl:lllje nc hi na'-.tavila da ul:itava in-
<;trukci.J'-' s ciijnc ;tdrcsc ( n1c:o-ta 11,1 kujc '>C skal-c' 1)
Pwhkm kli u s::nH_i prir11di p:u;dc:!nl' uhradc pc,datak:t. Na slici -\-_'\5, na primer. vi-
di:nrl da c;c instrukciJ<' ,Jckrdiraju u drusr'.i Lui. Jl1dinica /.a prcuiimanJC trcba da
Ddiltci ..!a prctiLI11C ,iCLkcu inslruJ...c:ijll pre nego ;w s:11:na kab u jc instrukci.Ju
4.5 l'oboljsanjc performansi
297
upravo dohila. Samo ciklus kasnije, ona cc saznati da je upravo dobila instmkciju Z<J
obavezan skok, a u tom trenutku je vee pocela cla preuzima instmkciju koja sledi ne-
posrcdno iza njc. Zbog toga veliki broj racunara koji koristc paralelnu ohradu (npr. Ul-
traSPARC Ill) izvrsava instrukciju koja sledi instmkciju za obavezan skok, cak i kadz
to nema logickog smisla. Situacija posle programskug skoka naziva se vrcmenski pro
cep (engl. delay slol). Pentium II-i racunar koriscen na slici 4-40(b)- nemaju ovo svo-
jstvo. ali sc opisani problem rdava cesto na mnogo slozeniji nacin. Prevodilac koji uz
prevodenje radi i optimizaciju koda pokusace Ja prona1.te ncku instrukciju kako bi je
smcstio u vrcmcnski proccp, ali ccsto nema nista korisno na raspolaganju, pa jc
prinu(1cn cia u njcga ubaci praznu instrukciju NOP. Na taj nacin c'c progam raditi isprav-
no, ali ce biti veCi i sporiji.
Obavczni skokovi su mozda nczgodni, ali su uslovni skokovi jos gori. Vremenskt
proccp, naravno, postoji i kod uslovnih skokova, ali sada jcdinica za preuzimanje tck
mnogo kasnijc saznaje odaklc da cita slcdccu instrukciju. Prvi racunari koji su
njivali paralclnu obradu poclataka zastajali su dok ne postane jasno da lice program
pwmcniti tok iii nccc. Zastajanjc tokom tri iii cetiri cik.lusa pri svakom uslovnom skoku
(naroCitu aku su 20% instrukcija uslovni 'kokovi) potpuno unazaduje pcti'ormanse.
Zhog toga racunari, kada naidu na uslovno grananjc, po pravilu pokusavaju cia
prcdvidc cia li cc do njcga doci iii neee. Bilo hi lepo kada bismo u slobodnu PCl
nicu mogli da utaknemo kristalnu kuglu i jednim potezom rdimo predvidanjc, ali taj
ptistup dosad nije urodio plodom.
Posto ncma takve ,peri fcrijskc komponente", za predvidanje su smisljani razliciti
nacini. Jcdanjc sasvimjednostavan: prctpostavlja se cia ce svi uslovni skokovi unazad
hili i:l'l'dcni, ada <;Vi uslovni skokovi unapred nel'e hili izycdeni. Prvi dco
ke pudlogu nalazi u tome stu se skok unazad ccsto nalazi na kraju programskih petlji.
Petljc se po pravilu izvrsavaju vise puta, pa postuji velika vcrovatnoca cia c'e sc pm-
grarn s njenog kraja vratiti na njcn pocctak.
Drugi deo prctpostavke jc pomalo klimav. Neki skokovi unapred ddavaJU se kad:t
nastane soft\'crska grcska (npr. kada ne mo:l.e da se otvori datotcka). Grdke se,
tim, retko dogadaju, pa se vccina programskih skokova u vezi s njima ne obavlja.
Naravno, postoji mnogo skokova unapred koji nernaju vcze sa ohradorn grc:Saka, pa
uspdnost predvidanja u ovum slucaju nijc ni priblizna onuj kod sJ...r1kova una!,ad.
lako bas obara 'nogu, navedeno pravilo jc ipak holje ni nd ccga.
Ako sc programski tok pri grananju ispravno preclvidi. vise ne trcba nista da se
eli. lzvrsavanje se nastavlja na ciljnuj adrcsi. Pmblem nastajc kada sc predvicli
sna programska grana. Otkriti ispravan put i otici u tom pravcu nije tt:Sko. Tdko je,
meuutim, ponistiti dejstvo instrukcija koje su vee izvrscnc.
Postojc dva nacina da se ovo rt.:Si. Prvi je da ;,e dopusti izvrsavanjc im.trukcija
uzctih poslc prcdvidcnog usluvnog grananja sve clok nc pokusaju da izmcne
njc racunara (tj. dok nc pokusaju da 'mestc podatkc u registar). Umesto da im sc
dozvoli da obrisu pustojcce stanjc rcgistra, njihova vrednost se smeiita u (tajni)
Hemeni regis tar i kopira u zvanican regis tar kada se sazna da li jc predvidanjc bilo
ispravno. Drugi nacin je cla vrednosl svakog registara za koji postoji sansa da bude
ohri,an (npr. u tajnmn privrcmenom zabcldi, tako da sc racunar moze vratiti
II"""""
I
1
,.

li;
l.
302 Poglavljc 4: Nivo mikroarhitckture
Niz izvrsavanja iz naseg primera prikazan je na slici 4-43. U prvoj koloni je redni
broj ciklusa, a u drugoj broj instrukcUe. U trecoj koloni je dekodirana instrukcija.
Cetvrta kolona saopstava koja se instrukcija zadaje (najvise dve instrukcije po
ciklusu). Peta kolona saopstava kojaje instrukcija zavrsena. Imajte na umu da u ovom
prirneru instrukcije treba da se i zadaju i izvrsavaju redosledom iz programa, tako da
sene rnoze zadati instrukcija k+ I pre nego sto se zada instrukcija k, a instrukcija k+ I
ne moze se zavrsiti (njcn rezultat se ne moze upisati u odredisni registar) sve dok se
ne zavrsi instrukcija k. Preostalih 16 kolona objasnicemo u nastavku.
p
0
dekodiranju svake instrukcije, jedinica za dekodiranje mora odluciti da Ji se on a
moze iii ne moze odmah zadati. Da bi jedinica za dekodiranje donela takvu odluku,
mora da zna status svih registara. Ako je, na primer, za tekucu instrukciju potreban re-
gis tar cija vrednost jos nije izracunata, tekuca instrukcija sene moze izdati i procesor
mora da zastane.
Koriscenje registara praticemo pomocu urcdaja nazvanog scmafor s rczuitatima
(engl. scoreboard), koji je prvi put ugradcn u prncesor CDC 6600. Ovaj semafor ima
mali brojac za svaki rcgistar, koji bele7.i koliko je puta taj registar koriscen kao izvor
za instrukcije koje se trenutno izvrsavaju. Ako se, recimo, istovremeno moze izvrsa-
vati 15 instrukcija, bice dovoljan i 4-bitni brojac. Kada se it.da odredena instrukcija,
uveeavaju se vrednosti brojaca za njenc registre sa operandima. Kada se instrukcija
zavrsi, vrednosti brojaca sc umanjuju.
Semafor ima i brojace koji belcie korisccnje odredisnih registara. Posto je u jed-
nom trenutku dozvuljeno samo jedno upisivanje. ovi brojaci mogu da budu jednobit-
ni. Poslcdnjih I 6 kolona na slici 4-43 prikazuju stanje semafora.
lJ stvarnim racunarima, semafor vodi rae una i o upotrebi funkcionalm: .Jed in ice da
ne bi bila izdata instrukcija za koju nema raspulozive jedinice. Zbog jednostavnosti
cemo pretpostaviti da je funkcionalnajcdinica uvek raspoloziva, paje necemo prika-
zivati na semaforu.
Prvi red na slici 4-43 prikazuje instrukciju I I (instrukciju I) koja mno/.i sadrzaj re-
gistara RO i R1. i rezultal smdta u registar R3. Posto nijedan od ovih registarajos nije
koriscen, instrukcija se izdaje i semafor se azurira. odrahvajuci cinjenicu da su sadr-
registara RO i R1 bili procitani i daje u registar R3 upisivana vrednost. Nijedna od
narednih instrukcija ne moze da upisuje vrednost u bilo koji od ovih registara, niti da
cita sadrzaj registra R3 sve dok se instrukcija 11 ne zavrsi. Poslo se radio mnozenju.
instrukcija ce biti dovrsena prcd kraj cetvrtog ciklusa. Vrednosti semafora prikazane
u svakom redu odrazavaju njegovo stanje nakon izdavanja instrukcije iz istog reda.
Prazna mesta oznacavaju vrednost 0.
Posto je racunar iz naseg primera superskalaran i moze da izdaje dve instrukcije po
sistemskom ciklusu. tokom prvog ciklusa izdaje se druga instrukcija 1 1:2). Ona sabira
sadr?aj registara RO i R2 i rezultat smdta u registar R4. Da biste saznali da lise ova in-
strukcija moze it,dati, primenjujete sledeca pravila:
1. Ako se ncki operand trenutno upisuje, ne izdavati instrukciju (zavisnost tipa
RAWl.
"' Ako se cita sadrzaj registra s rezultatom. ne izdavati instrukciju (zavisnost
tipa WAR).
4.5 l'oboljsanje pcrfnrmansi
303
3. Ako je u tokuupisivanje u registar rezultala, ne izdavati instrukciju (zavisnost
tipa WAW).
I -
6
7
8
9
17
18
Registri ciji je sadrzaj II Registri u koje su upisane
procitao vrednosti i
0 TT'l':_c6[7!
-t_-_-
11
,

1 :1! 1: -
1

I 3 I 2j1 I 11 1 1
---J ___ 1_ l-r==l
1

-.
I 2 1 11 I I I I ! 1 I : 3 I I I I
f 1 n 1 i I - '. ll ,
-- _j.__
1
, __ ,_ '., _L_ I . --1 I -I
- -- i 2 1_,_ : 1 1--1 _ _1_1_1 .
i 1- f-1_!-1- j - t I II I I I 1
--- ! . : - .. 1- [_ - -i-
1 1 I 1 I i I
7
I R'"''"' . l : [ -l-1 i - : t'
1 - 6- -r , -
1
r--f -- 1 r
I
, -- -f J_ , -l-1 - --.'.- I
7 I I 1 i ' ! i 1 I i
, f i . I }- - l
,_ -- _L , -r-.
:1 i ! i 1
t 1 I' :
f I -, __
l_j_ --- :
7
8
8
j__
Slika -1-43. Superskalarnt procesor koji instruh.cijc izdaje i zavrsava progamiranim rcdosledom.
Vee smo se susreli sa zavisnoscu tipa RAW (citanje posle upisivanjaJ. tj. kada in-
struk.cija treba da upotrebi rezultat prethodnc instrukcije koji jos nije raspoloL:iv. Dru-
gc dve zavisnosti su manje ozbiljne. To su u stvari sukobi oko izvora podataka. lJ
zavisnosti tipa WAR (upisivanjc posle citanja), instrukcija pokusava da obrisc:
sadrzaJ registra ciju vrednost pn:thodna instrukcija mu/.da nije jos potpuno iskoristila.
Slicnaje i zavisnost tipa WAW (upisivanje poslc upisivanja). Ove zavisnosti sc cesto
mogu izbeei ako druga instrukcija svoj rczultat smesti negde drugde (mozda privre-
mcnoJ. Ukoliko ne postoji nijt:dna od tri navedenc zavisnosti i potrcbna funkcionalna
jedinica je na raspolaganju. instrukcija se izdaje. U ovom slucaju instrukcip !:2 koristi
registar (ROJ ciji sadr?.aj upravo koristi tekuca instrukcija. ali je O\O preklapanjc do-
zvoljcno. pa se instrukcija 12 izdaje. Slicno tome, tokom drugog ciklusa iLdaje se in-
strukcija 13.

'
300 Poglavljc 4: Nivo mikroarhitekture
Nema grananja
Grananje
GrananJe
Nema grananja
Slika "-"2. Dvohitni kunacni automat 1.a predvidanjc grananja.
Drugaciji pristup predvillanju grananja nalaze da se beldi da li je bilo program-
skog skuka u poslednjih k izvrsenih instrukcija za uslovno grananje. nezavisno od
toga koje su instrukcije u pitanju. Ovaj k-bitni broj koji sc cuva u pomerackom re-
gistru za istoriju grananja (engl. !mlllclz hi.1tot)' shiji register) poredi se paralelno sa
svim odrednicama tabele proteklih dogadaja pomocu k-bitnog kljuca i ako se nadc
slaganje. koristi se mlgovarajucc predvidanje. Pmnalo izncnadujttl'e, ali ova tehnika
radi sasvi m dobro.
Staticko predvidanje programskog skoka
Sve tehnikc za predvidanje grananja prugrama o kojima smo dosad govorili bile su
dinamicke, tj. koriscene su tukom izvrsavanja programa. One sc prilagmlavaju trcnut-
nom ponasanju programa. stu jc do bro. Njihova losa strana jc to sto zahtevaju skup.
spccijalitovan hardver i povecavaju slozenust cipa.
Drugaciji pristup sc svodi na traL:enje pumoci od prevodioca. Kada prevodilac
naide na ovak vu naredbu
for (i = 0: i < 1 000000; i++) { .. }
on vrlo dobro zna dace skok na kraju petlje skoro uvek biti obavljen. Kada bi posto-
jao nacin da sc to saopsti hardveru. izbegli hi se brojni problemi.
Jako to spada u izmene arhitekture (a ne samo u nacin implementacije), ncki racu-
nari, kao ;to je UltraSPARC Ill. osim uobicajenog skupa instrukcija (potrebnog za
kompatibilnost sa starijim racunarima) imaju jns jedan skup instrukcija za uslovno
grananJe. lnstrukcijc iz drugog skupa imaju i hit preko koga prevodilac muze da ukaze
da cc prema njegovum misljenju skok biti obavljen (ili da neL'e biti obavljen). Kada
naide na jednu od ovakvih instrukcija. jedinica La preuzimanje radi tacno onaku kako
joj se nalaze. Stavise. nema nikak ve potrehe da se ovak vim instrukcijama ispunjava
dragoceni pmstor u tabeli pmteklih dogadaja. stu smanjuje rnogucnost sukobljavanja.

'!i


.,._

I
l
4.5 Poboljsanje pcrformansi
301
Na kraju. poslednja tehnika z.a predvidanje zasniva se na snimanju prntila prograrna
(Fisher i Freudenhcrger. I 992). To je takode staticka tehnika. ali sc ne ostavlja prevo-
dioeu da pogacta ho(e Ji biti skoka iJi llCCC, vee 'iC program pttsta da se izvrsi (najCcSCC
na simulatoru). a tokom izvrsavanja snima se njegovo ponasanje pri grananju. Te in-
formacije se daju prevodiocu koji tada koristi spceijalne instrukcijc za uslovno
grananje da bi saopstio hardvcru sta cia radi.
4.5.3 Prekoredno izvrsavanjc i preimenovanje registara
Savremeni procesori po pravilu Sll supcrskalarni i koriste paralelnu obradu. kao sto
je prikazano na slici 2-6. To zrpci da imaju jcdinicu za preuzimanjc koja uzima reci
iz memorije pre ncgo sto su potrehne da hi ih iskoristila jeclinica za dck<Jdiranje. Je-
dinica za dekodiranjc prosledujc dekodirane instrukcijc oclgovarajucuj funkcionalnoj
jedinici na izvrsavanje. Ona u nckim slucajevima moze da ra.cbije pojedinacne in-
strukcije na vise mikrooperacip pre ncgo sto ih prosledi runkcionalnoj jedinici. za-
visno od toga sta runkcionalna jedinica mo/.c da uradi.
Naravno, organi.cacija racunara ce biti najjednnstavnip ako se sve instrukcije
izvrsavaju redom kojim su prcLuete (pretpostavimo za trcnutal-- da alguritam 1.a pred-
viLlanjc grananja nikad nc grt:Si). Medutim. izvrsavanje instrukcip tim rcduslcdom ne
daje uvck najbolje pcrfnrmanse zbog eventual nih zavisnosti izmcdu njih .. '\ko jc 1.a
neku instrukciju potrdma vrcdnost koju izracunava prcthodna instrukcija. druga in-
strukcija ne mofe poccti Ja se izvrsava sve dok prva ne izracuna potrdmu vrednost.
u ovakvoj -.;ituaciji (zavisnPS[ tipa RAW). druga instrukcija mora da cckct. Postoje i
druge vrstc zavisnosti. kao sto Cc'lllLl se uskuro uveriti.
Pokusavajuc'i da prcva;:idu m ai-- ve prublcmc i da o,;tvare pcrfunnansc. ncki
procesmi dopu.:;taju programu da preskoci zavisne instrukcije. kako bi do in-
strukcija koje ni,u /.avisnc. Ne trcba poscb11u nagbsa\ati da interni al_:':l'ritam ;a
raspPredi,,mjc instrukcija mora dati isti r-ezultat bo da jc' pn 'gram onim rc-
dorn kPjim jc: i pi ,an. Sacla CC!lhl na jed nom j:rimeru prikazati bkP t'unkLiu-
nise preurelknjc rcdusleda izvrsavanja instrukcija.
Da bismo primdu pmblcma. poci cemo nd koji lt\Ck i;dajc' in-
..;trukcijc' prugramiranim rcdoslcdom i /.ahlna cia sc: unc: tim red<hkdclill i
Znacaj drugog 1.ahtcva uhr1c1 ce pnstati jasan.
Racunar iz nasc:c: primera imJ osam rcgistara koji su dostupni pmgrameru (registri
od RO du R7J. Sve aritmetick.: 'n..;trukcije knristc tri reg1stra: dv;1 7a Pperandc i
za kau na l'vlic--L da im.trukLijc
dekudirana u cikiusu 'l!:tp<'Cinjc u ciklusun+ I. Zajedn<Jstavnc in . ..;truh'i.Jc. kao 'tD ,u
sahiranjc iii oduzim:tn.Jc. upi.,innje n:zultata u ocln:disni rc:.c:israr obavl.Ja 'e pri kraju
ciklusa n+2. ..;loienije in:-.trukcijc:, btl ;;ro jc: mnn7.enjc. upisivanje ..;e ,,ha\ pri
kraju ciklusa n+J. Da hi primer hiu reaiisticni.Ji. dopthticc:mo jcdi:1ica !'a dc;..,.odi-
ranje (_)bracluje do d\c ilbtrukcijc' ptl ciklusu. Komercij:l!ni supcrskalarn1
proccscri cc.slc' cctiri iii Cak sesl instrukcija pu ciklusu.
306
Poglavlje 4: Nivo mikroarhitekture
u instrukciji [8 ponovo koristimo preimenovanje registara. Ovoga puta regis tar R1
postaje S2 tako da sabiranje mozc poceti pre nego sto sc registar R1 oslohodi, pred
kraj sestog ciklusa. Ako se ispostavi da rezultat ovoga pula stvarno mora da bude u re-
gistru R1, sadrzaj rcgistra S2 uvek se na vreme moze kopirati. Pored toga, sve nardne
instrukcije kojima je taj rezultat potrchan mogu svoje izvore preimenovati u ime re-
gistra koji stvarno sadrzi tu vrednosl. U svakom slucaju, sabiranje iz instrukcije 18 tre-
ha da pocne ranije.
Na mnogim stvarnim racunarima, preimenovanje registara je cvrsto ugradeno u
organizaciju. Postoje brojni tajni registri i tahela koja preslikava rcgistre vidljive pro-
gramcru u tajne registre. Tako cete stvarni registar koji igra ulogu registra RO pronaci
u nultoj odrcdnici ovc tahele. Otuda ne postoji stvaran registar RO, vee samo veza iz-
medu imena RO i jednog ml tajnih regis tara. Ta veza se ccsto mcnja tokom izvrsavanja
cla hi se izhcgle zavisnosti.
Ohratitc paznju na cctvrtu i petu kolonuna slici 4-44; vicii se da instrukcijc nisu iz-
davane programskim redosledom, niti su tim redoslcdom zavrsavane. Zakljucak ovog
primcra jc jcdnostavan: zahvaljujuci prekorednom izvrsavanju instrukcija i preime-
novanju registara, uspeli smo da progam uhrzamo dvaput.
4.5.4 Spekulativno izvrsavanje
U prethodnom odeljku predstavili smo konccpt poholjsavanja performansi kroz
preurcctcnje redosleda izvrsavanja instrukcija. lakn to nismo i ~ r i c i t o napomcnuli,
vazno je hilo prcuredenje rcdosleda instrukcija unutar jedinstvenog osnovnog bloka.
Sada je prilika da to detaljnije ohjasnimo.
Racunarski programi sc mogu podeliti na osnovne blokove (engl. busic hlocA.s).
pri cemu se svaki usnovni blok sastoji od linearnog niza koda, s jcdnomulanwm tac-
kom na vrhu i jednom izlaznom na dnu bloka. Osnovni blok nc sadrzi upravljacke
,trukture ( npr. naredbc if iii while). tako da njcgov prcvod na masinski jczik ne sadrli
grananje. Osnovni blokovi su medusohno povezani upravljackim narecihama.
Program ovakvug obiika mole se predstaviti usmcrenim grafom (slika -1--15).
U prngramu se izracunava zbir kubova parnih i neparnih celih brojeva do oclrec1cne
granicc i zbirovi se sme,;;taju u promenljivc :hirpar i :hirnef'ar. lJnutar svakog osno-
vrlllg hloka, tchnike prcuredivanja rcduslcda rade sasvim clnbro.
Problemjc to sto su osnovni blokovi uglavnom kratki i izmcdu njih nerna Jovoljno
paralclizma da bi se efikasno iskmi,tila. Prema tome, sledeei korakjc da se omoguci
prcuredivanje instrukcija izvan granica hlokova kako hi se iskoristile propustcnc pri-
likc ;:a izdavanjc instrukcija. Najvise hi sc dohilo kada bi sc neka potencijalnu spura
operacija u graru pomerila nagore tako da njeno izvrsavanje zapocne ranije. To bi
mogao biti slueaj sa instrukcijom LOAD. sa instrukcijama 1.a rad s brojcvima u forrnalu
pokrctnog zarc!,a iii cak s pocetkom dugackog niza zavisno,ti. Premestanje koda u
grafu in1ad grananja zove se podizanje (cngL hoisting).
i
I
4.5 Poboljsanje pcrformansi
zbirp ar = 0;
zbirnepar = 0;
i = 0;
while (i < granica) {
k;::; i * i * i;
if (((i/2) * 2) == i)
zbirpar = zbirpar + k;
else
zbirnepar = zbirnepar + k;
i = i + 1;
(a)
zbirpar = 0;
(b)
Stika 4-45. (a) Dco programa. (b) Odgovarajuci graf osnovnog bloka.
307
Zamislite da se na slici 4-45 sve promenljive cuvaju u registrima, osim promenlp-
vih z.hirpar i zhimepar (jer nema dovoljno registara). Tacia bi irnalo smisla da se nji-
hove instrukcije LOAD prerncste na vrh petlje, pre izracunavanja promcnljive k, da hi
svoje izvrsavanje zapocele ranijc i tako ohezbedilc vrednosti promenljivih u trenutku
kada buciu potrehne. Naravno, u svakom pojcdinacnom ciklusu petlje hice potrcbna
samo jedna oci nj ih, pa jc drug a operacija LOAD suvisna, ali ako kd i memorija koriste
paralelnu ohradu i postoje prazna mesta za izdavanje instrukcija, onda sc to jos uvek
rnozda isplati. lzvrsavnJe koda pre nego sto se zna da li je on uopste potreban zove se
spckulativno izvrsavanjc (engl. speculative execution). Za koriscenje ovc tehnike
potrehni su podrska prevoclioca i harclvcra, kao i izvesna prosirenja arhitekture. Pre-
uredenje redosleda instrukcija izvan granica hlokova n<yccsce prevazilazi rnogucno-
sti hard vera, pa zato prevodilac mora cia eksplicitno prernesti instrukcije.
Uza spckulativno izvrsavanje javljaju se ncki zanimljivi prohlemi. Kao prvo,
sustinski je vazno da nijedna od spekulativnih instrukcija ne generise neopozive rczul-
tate jer se kasnije moze ispostaviti da instrukcija nije ni trehalo cia sc izvrsi. Ako pogle-
damo sliku 4-45, zakljucujemo da je u redu da se preuzmu promenljive zhirpar i
z.himepur. daje takode u redu da se izvrsi sabiranjc cim vreclnost promenljivc k bude
na raspolaganju (cak i pre naredhe if), ali da nc hi hilo u redu upisati rezultate u merno-
riju. U slucajevima slozenijeg koda, hrisanje registara koje obavlja spekulativni kfld
(pre nego sto se sazna da li je taj k6cl potrcban) obicno se sprccava tako sto se prei-
mcnuju svi ociredisni registri koje koristi spekulativni kflcl. Na taj nacin sc mcnja stanje
samo privrernenih regis tara, pa nema nikakve stete kada se kasnije ispostavi da je k6d
suvisan. Ako jc u pitanju ki'Jd koji je stvarno potreban, privrcmeni registri se kopiraju
u stvarne ociredisne registre. I sanli mozete zakljuciti cia scmafor koji sve ovo treha da
helezi uopste ne mozc da bude jednostavan. ali je uz dovoljno hard vera izvociljiv.
,......
304
Poglavlje 4: Nivo mikroarhitckture
Sada dolazimu do instrukcije 14 koja treha da pristupi registru R4. Nazalost, u
trecem redu vidimo da sc u registar R4 upravo upisuje vrednost. To maci da postoji
zavisnost tipa RAW. pajedinica La dekodiranjc Lastaje dok registar R4 nc postane ras-
poloziv. Tokom Lastoja ona ne uzima instrukcije iz jedinice w prcuzimanje. Kada 'e
interni bakri jedinicc za preuzimanje napune. i ona prestaje da preuzima instrukcije.
Treba istaci da se slcdeca in,trukcija programa (15) ne sukobljava ni s jednom tc-
kucom instrukcijom. Ona je mogla biti dekodirana i izdata ranije da se nismo clrbli
unapred ut vn.lenog pravila da sc instrukcije moraju izdavati i zavrsavati programskim
redosledom.
Pogledajmo sada sta se dogada tokom treceg ciklusa. lnstrukcija !2 (sabiranje --
dva ciklusa) zavrsava se pri kraju treceg ciklusa. Nazalost, ona se ne moze zavrsiti
( i registar R4 tako osloboditi za instrukciju !4 ). Zasto? Zato stu smo se unapred dogo-
vorili da 'e instrukcije moraju l.avrsavati prograrnskim redosledom. A zasto smo sc
tak.o dogovorili. k.ada nerna nik.ave stele ako sada smcstimo vrednost u registar R4 ion
postanc raspDl< ll.i v"!
Odgovur nije jednostavan. ali jc vazno da ga razurncte. Prctpostavimo da sc in-
strukcije mogu J:avrsavati preko reda. Tada bi, ako nastane prekid, bilo vrlo tesko
sacuvati stanjc racunara da bi se kasnije moglo obnoviti. Konkretno. tada sene bi mo-
glo reci da Sll sve instrukcije do nckc adresc izvrsene, a posle nje da nisu. Kada bi sc
to moglo, hila bi to situaciju zvana prccizan prckid (engl. precise interrupt), sto je
poleljna karakteristika procesora (Moudgill i Vassiliadis, 1906). Prckoredne instruk-
cije cine da pn:kid postanc zbog cega je za neke racunare potrebno da sc
instruk.cije 1.avrsavaju programskim redoslcdom.
Ako ,e vratimo na nas primer. pred kraj cctvrtog ciklusa sve tri tekucc instrukcije
mogu sc tako da se u pctom cik.lusu konacno mole izdati instruk.cija 14, upo-
redo s najsvc:l:ije dekodiranom instrukcijom 15. Kacl god sc neka instrukcija zavrsi.je-
dinica za dekodiranje treba da proveri postoji li ncka zaustavljcna instrukcija koja
sada mole da bude
U sestom ciklusu. instrukcija 16 je 1.austavljena jer trcba da upisuje vrcdnost u re-
gis tar R1. a on je Ona konacno zapocinje izvrsavanje u dcvetom ciklusu. Zbog
postojanja brojnih 1.avisnosti. celom nizu od osam instrukcija potrebno je 18 ciklusa
da se zavr;i. iako hardver mozc da i;.daje dve instrukcije u svakorn ciklusu. Ohratite
paznju na kolonu sa slikc 4-43; sve instrukcije su izdatc programsk.im redo-
slcdum. Slicno tome. iz kolone Zu1T.<.cna vidi se da su sve i zavrsene programskim
redoskdum.
Rannotrinw sada alternativnu semu: prek.oredno izvrsavanjl" instrukcija. Prema
toj semi, instruk.cije se mogu izdavati i zavrsavati prcko reda. Isti niz ml osam instruk-
cija prikat.an je na slici 4-4-+. ali sada u;. dcvvoljeno prekoreclno izclavanje i zavrsa-
vanjc.
Prva razlik.a sc zapaza u treccm cil-..lu,u. lako jc instrukcija !4 J.austavljena. dozvo-
ljenoje dek.odirati i izdati instrukciju 15 post<J se ona ne sukobljava ni sjednnrn tckucom
instruk.cijum. !\:kdutim. prcskakanje instrukcija stvara nove probleme. Pretpostavimo
da jc instrukcija l5 upotrcbila operand koji izracunava prcskocena im.trukcija !4. Uz


.
.;!,.

l,l:
t[


....
I

I
I
4.5 Poholjsanjc pcrformansi
305
tekucu konstrukciju sernafora tone bisrno primetili. Zbog toga moramo da prosirin.o
semafor tako da bele.l,i i upisivanje koje obavljaju preskocene instrukcije. To se moie
uraditi pomocu dodatne mape bitova, s jednim bit om po registru koji ce registrovati upi-
sivanje kojc police od zaustavljcnih instrukcija. (Ovi brojaci nisu p1ikazani na slic1.)
Sada pravilo za izdavanje instrukcija trcba prusiriti tako da se sprl"ci izdavanje instruk-
cije cije operande treba da obezbedi prethodna. prcskoi'ena instrukcija.
; I #
1
2
3
4
5
6
7
8
9
I 1
2
Dekodirana



R6;R1+R4

ShROO-R2

S2=R4+R4
i--
!
lzdata
1

I
2
3
5
6
4
8
1
3
6
7
4
5
8
7
Registri ciji se sadrzaj cita
1 I 2 ; 3 4
1
1
2 1
2 1
3 3 21
4 3 31
3 3 2.
. 3 4 2 i
1[3 4' 2
I 3 4 2
I 2 3 2
2 2
i 2 1
2
I ,
i
I 1
: --1
1
! ;
3
3
2
2 :
6 7
i
i
0
Registri u koje se upisuju i
vrednosti
i
! 1
L -t
1 1 1
1 1 1
r
I'
i 1
1 1
1 1
'1
I
I
I!
if
!
!i
il
It
il
1 I
1
- 1 -r
11
I,
'1
: 1
1
1'
1 i
1 1
1
1
1
1
1 1
1
: 1 1
1 1
i 1
I'
I'
II
,I
Jl
I 1
:I
t I
I
! 1
Slika -l--1-t ->Ur"cr:-,kaLtrnog prm:..;sor:..t u;: pn..:kur..:-dno i1.cb\ anjc i r.C.a\an_j:. inc.:rrukc:ijJ.
Pogledajmu 'ada ponovo instrukcije 16, [7 i IS na slici 4-43. Vidimo da insrrukc:p
!6 i:tracunava vrednosl u registru R1 koju k<Jrisli instruh:ci_j:ll7. MeJutim. vidimo i
se ta vrcdnost k.oristi samu jcdnom zato slo in.struk.cija lS hrise sadr/.aj registra F1.
Nema pravog razlnga zhog koga hi se raultal in<;trukcije 16 cuvan u rcgistru R1. Jy;
gori jc i1.hor registra R1 kao medure_'!.istra. taJ i;hur delujc savr\cno razumr.t'
prl"vodiocu ili prngrarncrima kuji su navikli na .sl"k vcncijalnc) i.cvr\avanJe (be; prekla-
panja) ins I rukcija.
Na slici 4-44 uvodimo novu tchniku za rc:savanjc uvog prnhlenu: prdmenovanje
registara (engl. regis/a rc11wningl. lntt'ligentna jcdini-:a ;a dd;odiranJc
umcsto rcgistra F\1 u instrukcijama !6 (trcc'i cik.lu:;l i 17 l(ctvrti cikius) tajni rcg1star Sl .
ncdostupan pmgr,,mcru. oc lh mui.c ii.dati isto' rcmeno L:da i inolntk-
cija 15. Savrerneni proccsmi imaju na tapnh regJ:;tara k.oj1 ": muc:u prr>
imemnati. Opisanumtclmi].;um ,e cest" lllllgU lllklonui Ycl'.isnosti tipa W:\R i WA\V.


;
i
.


.
!il

310
Poglavlje 4: Nivo mikroarhitekture
Ka memorijskoj magistrali
Memorija
Sistemski interfejs
t
1: -_ J<es \lrugog nivoa ':,, .,;.,
- ' ::
''" 'Y/.-e.',t ''.._,_-'..
I
Jedinica za izvrsavanje
Keil. prvtig nivo11
podatke
Jedinice za izvrSavanJe operacija
s celim brojevima 1 hrojevima
u formatu pokretnog zareza
I
Jed>n1ca
za _preuzima_ nje
i dekod1ran)e
1nstrukcqa
Pratecj; Jed1_nica
za zavrsavanje
instrukcija
I
[ Jedinica za predvidanje grananja I
l
Prip1ema
Upravljanre prekorednim izvrsavanjem instrukcija
Slika .t-.t6. Blo"-dijagram Pcntlllllla -L
odgovaraju. Za slozenije instrukcije, niz odgovarajucih mikrooperacija trazi se u mikro-
-ROM memoriji. U oba slucaja, svaka !SA instrukcija Pcntiuma 4 pretvara se u niz mi-
krooperacija koje mof.e da izvrsi RISC jezgro cipa. Ovim mehanitmom se premoscava
jaz izmedu starog skupa CISC instrukcija i savremcne RISC putanjc pndataka.
Dekodirane mikrooperacije prelaze u kes za praccnje (engl. trace cache), tj. kes
prvog nivoa za instrukcije. Posto sc ne kdiraju sirove instrukcije, vee mikmoperaci-
jc, kada se instrukcija izvrsava iz kda za pracenje, nema potrebc da se dekodira. To
je glavna razlika izmedu mikroarhitckture NetBurst i mikroarhitekture P6 (koja je u
kdu pnog nivoa drzala sirovc instrukcije ). Ovde se obavlja i prcdvidanje grananja.
Instrukcije se iz ke;a za pracenje prosleduju jedinici za vremensko rasporeclivanje,
redosledom koji diktira program, ali se tim rcdoslcdom ne nwraju izvrsavati. Kada
naick mikrooperacija koja -;e ne moze izvrsiti, vn:mcnski rasporedivac je -eadrzava,
ali nastavlja da obraduje tok izdajuci naknadne instrukcijc ciji su svi resursi (registri,
funkcionalne jedinicc it d.) raspolozivi. Ovde sc registri i preimenuju kako bi instruk-
cije sa zavisnoslima tipa WAR iii WAW moglc da '"; izvrsavaju bez zastoja.
Jako se instrukcije mogu izdavati preko reda, ISA instrukcijc se moraju
programskim redom (njihuvi rezultati tim redom moraju postajati dustupni) zbog toga
sto Pentiumova arhitektura zahteva preciznc prekide. 0 tome se brine jedinica za za-
vrsavanje instru!<-cija.
I
'1':'
f
:t'

,;$-
,t;



:t

1
Primeri nivoa mikroarhitckture
311
U gornjem desnom delu slike vidimo jedinicu za izvrsavanje koja obavlja opcra-
cije s celim brojevima, s brojevima u formatu pokretnog zareza i druge specijalizova-
ne instrukcije. Postoji vise jedinica za izvrsavanje kojc radc para Ieino. One podatke
za rad dohijaju iz registra i od kesa prvog nivoa za podatke.
Paraldna obrada u mikroarhitckturi NetBurst
Slika 4-47 detaljnijc prikazuje mikroarhitekturu NctBurst, to jest njen sistem pa-
ralelne obrade. U vrhu je podsistcm za priprcmu, ciji je zadatak da preuzima instruk-
ciJC iz memorije i da ih priprema za izvrsavanje. Podsistem za priprcmu dobija nove
l'entiumove instrukcije iz kda drugog nivoa, u delovima od po 64 bita. On ih deko-
dira u mikrooperacije namcnjenc smdtanju u kesu za praccnje koji mozc da primi
l2K mikrooperacija. Kcs za pracenje ovc velicine je po performansama jednak stan-
dardnom kdu prvog nivoa velicinc od X do 16 KB. Kcs za pracenje grupisc po sest
mikroopcracija u jed an red. Za mikrooperacije iz jednog reda ocekujc sc da sc izvrsa-
vaju po redu, cak i ako Slt rnozda izvedene iz Pentiumovih !SA instrukcija koje Sll
mcdusobno udaljene hiljadama bajtova. U duzim nizovima mikrooperacija, redovi u
kesu za pracenje mogu sc nadovczivati.
Ako je za izvrsavanje Pentiumove !SA instrukcijc potrebno vise od cetiri mikro-
opcracijc, takva instrukcija se ne dekodira i ne salje u kd za praccnje, vee se na nju
postavlja marker knji saopstava logici da mikrooperacije potrazi u ROM memoriji s
mikrokodom (mikro-ROM memoriji). Na ovaj nacin se mikrooperacije salju logici
koja upravlja redosledom izvrsavanja pomocu prcthodno dckodiranih (jednostav-
nijih) !SA im,trukcija iz kesa za pracenje iii trazenjcm (slozcnijih) !SA instrukcija u
ROM memoriji s mikrokodorn.
Ako jedinica za dekodiranje naide na uslovno grananje, ona predvideno odrediste
trazi u bafcru odrcdista skokova prvog nivoa (Ll BTB, Branch Target Buffer) i na-
stavlja rad s predvidcne adrese. L I BTB cuva 4K najskorijih programskih skokova.
Ako sc inslrukcija za skok ne nalazi u tabeli, koristi se staticko predviclanje. Za sko-
kove unazad pretpostavlja se da su deo petljc ida se obavezno izvrsavaju. Tacnost sta-
tickih prcdvidanja je izuzetno visoka. Za skok unapred se pretpostavlja da jc deo
naredbc if koji sene izvrsava. Tacnost ovih statickih predvidanja mnogo je manja od
predvidanja skokova unaL.ad. Analogan bafer za pracenjc odredista sknkova (Tra-
ce BTBJ sadrzi predvidene inf'ormacije o odredistima pojedinacnih mikroopcracija.
Drugi deo paralelne obrade, logika za upravljanjc prckorcdnim izvrsavanjem in-
strukcija, podatke dobija iz kda za pracenje koji sadrzi 12K mikrooperacija. Posto
svaka mikroopcracija dolazi iz podsistcma za pripremu (tri u svakom ciklusu), jedi-
nica za dodeljivanje/preimcnovanje (engl. allocation/reruuning unit) belcii ih uta-
belu 'a 128 odrednica, nazvanu prckorcdni hafer (ROB, ReOrder Buffei-). Ovom
mlrednicom se prati status mikrooperacijc do njenog zavrsavanja . .ledinica za dodelji-
vanje/preimenovanje proverava raspolozivost rcsursa potrebnih mikrooperaciji. Ako
su resursi raspolozivi, mikrooperacija se stavlja u jedan od dva reda cekanja na
izvrsavanje. Postoji poseban red za mikrooperacije koje rade s memorijom i poseban
za one ko.Ji s njom ne radc. Ako se mikroopcracija ne moze izvrsiti, ona se odlaze. ali
Poglavlje 4: Nivo mikroarhitekture
Prilikom primene spekulativnog koda javlja se i drugi problem, koji se ne mozc
resiti prcimenovanjem registara. Sta se desava kada spekubtivno izvrsena instrukcija
dovede do iwzetka (vanredne situacije)'? Bolan. aline i fatalan primer jc instrukcija
LOAD. koja sene nalazi u kdu u racunaru koji irna kd s dugackim redovima ( recirno.
256 bajtova) i memoriju kojaje rnnogo sporija od procesora i kda. Ako instrukcija
LOAD kojaje stvarno potrebna zaustavi racunar tokom vise ciklusa dok sene ucila red
kesa. to cemo pribvatiti jer jc rec potrcbna. Met1utim, zastajanje da hi se prcu1ela rec
z.a koJU se kasnije ispostavi da je suvisna. nijc nimalo prijatno. Previse ovakvih .. op-
moze uciniti da procesor radi spnrije nego kada uopste ne bi bio optimi-
zovan. (Ako racunar ima virtuclnu memoriju. o ccmu c'emo govoriti u poglavlju 6.
spekulativna instrukcija LOAD mo7.c da izazove gresku u zbog cega se
potrebna memorijska strana mora ponovo ucitati s diska. Lazne grdke pri stranicenju
memonJC mogu se katastrofalno odraziti na performansc, pa je izuL.etno va7.no cia ih
izbegncnHJ.)
Jedno od rdenja koje postoji u savremenim racunarirnajestc specijalna instrukcija
SPECULATIVE-LOAD koja da prcuzmc rcc iz kda, ali odw,taje kad je tamo nc
nade. Ako se vrcdnost nalazi tamo onda kada je stvarno plltrchna. una se rnoJc' isko-
ristiti, ali ako se nc nalazi. tadaje hardvcr mora preu;:eti sa izvora. Ukoliko sc ispostavi
da vrcdnost nije potehna. nema nikakvih poslcdica t.hog kcsa.
Mnogo goru situaciju mo7.cmo ilustmvati slcdccom narcdbom:
if (x > 0) z y/x;
su .r. \' i: numcricke promcnljive u formatu pokrctllllg ;:arcza. Prctpu'itavimo da
sve prumcnljive unapred prcuzcte u registre ida JC (sp"rn) dcljcnje hrujcq u fm-
matu pokretnog zarcz.a podignuto iznad w,lnva if. Nazalo:.t, x je 0 i za nbra-
du deljenja s nul om zavrsava program. Tako ]t: ispravan pro(lram 1hog
prestao da radi. lako jc iln,gramcr napi.-;ao ktKlu /clji Ja takvu situaciju preduprcdi.
ona sc ipak dog!ldila. Ovako nc;to sigurnu nc(c u-.reciti prngramera.
Jcdno nd mogucih rc;cnja je da sc naprave -.pcciplllc vcr;ijc k<'Je
mogu da pn1u1rokuju vamt'dnc 'iituacije. Osim lllga. u svaki I"L'gi,t:tr trcba L!llLLtti i
t;v. otrovni hit i engl. f)()l.lr'il hit I. Kada sc poi-.a/c da spccijalna spekulativ n:I imtru\..-
cija nije potrebna. nnda nna ne iLaJ.iva pre kid. veL' Jll':itav lp utrovni hit u regi-,!ru rc'-
zultata. ;\kll taj registar kasn:.iL kori.-:ti regulctrna itbtrukcija. prckid i
trcba da budc). i\ledutim. ako .-;e rczuitat ne uputrcbi. olruvni bit 'it: na kraju i
ncma mkak\ c stele.
4.6 PRII\IERI l'HVO.\. ;\llKROARlHTEKTi.JRE
LJ ovum uJcljkuui-.raiko C\:'ill<l priLt/ati tri -,avrcmcna pillc..:c:nra i primcnu kt>ncc-
pata opi-,amh L1 mom [WgLlv iju. c'c 7.:li,ta b[ti kratki jer su :-.tvarni racunari
i;uzt.:lllll .-,j,,jcni i :-.ctdr/.e tnilionc kola. PriLt!ctc'cnw kujc' 'ile
vee 1\ntium 4, UitraSPAi\C !ll i I.
4.6 Primcri nivoa mikroarhitekturc
309
4.6.1 Mikroarhitektura procesora Pentium 4
Posmatran spolja. Pentium 4 lici na klasican CISC procesor. sa ogromnim i ncz-
grapnim skupom instrukcija koji podriava osmohitne. 16-bitne i 32-bitne operacije 1
celim brojcvima, kau i 32-bitnc i 64-bitnc opcracijc s brojevima u formatu pokrctnog
zareza. On irna samo osam vidljivih registara. i svi su raz.liciti. Du1-ina instrukcija se
krecc izmcdu I i 17 bajtova. Ukratko, to je zastarela arhitektura koja sve radi na naiz-
gled nacin.
Medutirn. u Pentiuma 4 nalazi se savremeno RISC jezgro s paralcl-
nom ohradcHn instrukcija i vrlo brzim radnim taktom (koji cc se s vremcnomjos ubrza.
ti). Zapanjujucc je kako su Intelovi inzenjeri uspcli da naprave potpuno savremen
procc>or imp!cmcntirajuci jedmt prastaru arhitckturu. U uvom ocleljku analiziracemo
mikruarhitckturu prucesora Pentium 4 da bismo videli kako una radi.
Prcglcd mikroarhitekturc NctBurst
Mikroarhitektura Pcntiuma 4, nazvana NctBurst, prcdstavlja pot pun raskid s pret-
hodnom mikroarhitckturom Ph kurisc'enom u proccsorima Pentium Pro. Pentium l! i
Pentium Ill a istovremcno jc i osnova kuju ce Intel koristiti sledeeih nekuliko
Scmatski prikaz mikroarhitekture Pentiuma 4 dat je na slici 4-46. On uglavnom od-
govara slici 1-12.
Pentium 4 sadrzi cctiri glavna pudsistema: memoriju, pudsistem za pripremu in-
\trukcija. podsistem za upravljanje prckorcdnim izvrsavanjem instrukcija i podsistcn
za i1.vrsavanjc. Razmotrimo ih pojcdinacno, pola;.eci od gornjeg lcvug pod,istema i
krcL'uci sc oko cipa u smeru suprotnom ml smcra kretanja ka;aljke na satu.
l'odsi-,tcm memorije sadrzi jcdinstvcn kes drugog nivoa. kao i logiku z.a pri-
-.tupanje spoljnoj memoriji prcko memorijske magistra!c. U prvoj gcneraciji Pentiu-
4. veliC:im kda jc i znosi Ia 256 K B, u drugoj 512 M B, au treeoj I MB. Ke:i
nivua je osmostruko asocijativan kes s reclovima od 128 bajtova. Kada se zahtev
clv um kcsu zavr\i promasajem. on zapocinjc par operacija za pre nos 64-bajtnih
del bi iz glavnc memorije prcuz.eo putrebne blokove. Kd drugng nivoa je kess
ud[,Jh'nim upisivanjcm. Kada sc neki njcgov red promeni, to 1.naci da se nov
nc upisuje odmah u memoriju vee' kada dode vrcmc za to.
S kesom je i jcdinica za prctbodnu preuzimanje ( nijc na .-.lici) kop pc-
ku.;ava da prcmme u ke:i podatke iz glavne mcmorije pre ncgo sto su potrcbni. lz kcs.t
nivua podaci rnogu odlaziti u drugc velikom brzinom. Novo prcuzi-
iz drugog nivoa moze da zapocnc u svakom drugom sistcm,kom ciklusL,
pa uz takt od npr. 3 CiHz ovaj ke:i moze drugim kdevima teurijski da obe;bedi i do 1.5
I nil ijardi 64-bajtnih blnkova u sckundi. stu predstavlja propusni opscg od l)6 GB/s.
Jspod menmrijc na slici 4-46 nalazi sc pripremni deo, gde se in,trukcije preuzimajJ
1z f,esa drugog nivoa i dekodiraju programskim redom. Svaka Pcntiumova JSA
cija deli -.e na nil mikrnopcracija slicnih RISC opcracijama. Za jednostavnijc
c:iJe. sama jedinica za prcuzimanjc i dckodiranje utvrduje knJC im mikroopcracij-::
r
314
Poglavljc 4: Nivo mikroarhitekture
ne nade u kesu prvog nivoa, salje se zahtev kc5u drugog nivoa, koji ili odmah odgovara
ili preuzima red kesa iz memoriJe i tada odgovara. U svakom trenutku istovremeno se
mogu obradivati cetiri zahteva kda prvog nivoa upucena kesu drugog nivoa.
Posto se mikrooperaeije izvrsavaju preko reda, njihovo smdtanje u kes prvog
nivoa nije dozvoljeno sve dok se ne zavrse sve instrukcije pre instrukcije koja se
smesta u kd. Jedinica za zavrsavanje instrukcija (engl. retirement unit) ima zada-
tak da instrukcije zavrsava programskim redosledom. Ako nastane sistemski prekid,
nedovrsene instrukcije se povlace; na taj nacin Pentium 4 obezbeduje da su, u trenut-
ku prekicla, instrukcije do oclredene tacke potpuno zavrsene, a cia one iza te tacke ne-
maJLl nikavog uticaja na sistem.
Ako je instrukcija za smestanje zavrsena, ali su prethodne instrukeije jos u toku,
k.es prvog nivoa sene moze azurirati. pa se rezultati smestaju u specijalan bafer za ce-
kanje na smestanje. Ovaj bafcr ima 24 odrednice za 24 skladista koja se mogu koristiti
istovremeno. Ako naknadna instrukcija pokusa da procita smestene podatke, oni se iz
bakra za cekanje na smestanje mogu proslediti instrukciji, iako se jos ne nalaze u
kdu prvog nivoa za podatke. Ovaj proces se naziva upucivanjc iz skladista na uci-
tavanjc (engl. sl!lre-to-load). Iz svcga ovoga trcbalo bi da bude jasno da Pentium 4
ima veoma slozenu mikroarhitekturu na ciju organizaciju jc uticala potreba cia se
izvrsava stari skup Pentiumovih instrukcija na savremenom R!SC je;.gru. koje koristi
opseinu paralelnu obradu. To se pustize tako sto se Pentiumove instrukcije dele na
mikroopcracije koje se kdiraju i uvodc u paralelnu obradu kada dude red na njihovo
izvrsavanje na skupu ALU jedinica, koji u optimalnim uslovirna moze cia izvrsava do
sest mikrooperacija u svakom sistemskom ciklusu. Mikrooperacije se i1.vrsavaju prc-
ko rcda. ali se zavrsavaju programskim redosledmn a rczultati sc tim redosledom i
smdtajuu keseve prvog i drugog nivoa. Vise dctalja o mikroarhitckturi Net Burst naci
ccte kod Hintona et al. (2004 ).
4.6.2 Mikroarhitcktura proccsora UltraSPARC-111 Cu
Serija UltraSPARC je Sunova implcmcntacija clevcte verzije arhitekture SPARC.
Sa stanovista korisnika ili programera, svi mocleli sumec1usobno prilicno slicni- raz-
likuju se uglavnom po performansama i ceni. Medutim. na nivou mikroarhitekture,
oni se znatno razlikuju. U ovum odcljku cemo opisati procesor UltraSPARC Ill Cu.
Cu oznacava bakarne vezc na cipu. za razliku od aluminijumskih, kojc su koriscene
za njegovog prethodnika. Bakar ima manji elektricni otpor ocl alurninijuma, sto omo-
gucava tanje veze i brzi rad.
UltraSPARC Ill Cu je potpuno M-bitni procesor, sa 64-bitnim registrima i 64-bit-
nom putanjom podataka, mada zbog kompatibilnosti sa SPARC proccsorima verzije
g (32-bitnirn), mole da radii sa 32-bitnim operandima ida izvrsava neizmenjen soft-
vcr Dl 32-bitne SPARC procesorc. lako je unutrasnja arhitektura 64-bitna, memorij-
ska rnagistrala je sirine l2X bitova, kao sto Pentium II ima 32-bitnu arhitekturu i
64-bitnu mernorijsku magistralu; u oba slucaja, magistrala je za jednu generaciju
ispred proccsora.
I
4.6 Primeri nivoa mikroarhitckture
315
Za razliku od Pentiuma 4, UltraSPARC ima pravu RISC arhitekturu, sto znaci da
mu ne treba slozen mehanizarn za pretvaranje starih C!SC instrukcija u izvrsne mi-
krooperacije. Kljucne instrukcije su vee u obliku mikrooperacija. Medutim, u posle-
dnje vremc dodate su i gralicke i multimedijske instrukcije, za Cije je izvrsavanJC
potreban poseban hardver.
Pregled mikroarhitekturc procesora UltraSPARC III Cu
Blok-dijagram procesora UltraSPARC lli Cu prikazan nje a slici 4-4X. On je, gle-
clano u celini, mnogo jednostavniji od mikroarhitekture NetBurst Pentiurna 4. zato sto
UltraSPARC treba da implernentira jednostavniju ISA arhitekturu. Bez obzira na ll,
neke od osnovnih komponenata slicne su onima u Pentiumu4. Argumenti za slicnmti
uglavnom su tehnicki i ekonomski razlozi. Na primer, u doba kada su ovi cipovi n:t-
stali imalo je smisla ugradivati kes prvog nivoa za podatke velicine od 8 do 16 KB, pa
oba procesora imaju takav kes. Ako u buducnosti bucle tehnicki i ekonomski pogodro
da se koristi kes prvog nivoa od 64 KB, svi procesori ce ga imati. Razlike, s drtife
strane, uglavnom postoje zato sto jedan procesor mora cia premosti jaz izmectu starcg
skupa C!SC instrukcija i modernog RISC jezgra, a clrugi to ne mora.
U gornjern levom delu slike 4-48 prikazan je cctvorostruki asocijativni kes za in-
strukcije, velicine 32 KB, sastavljen od redova duzine 32 bajta. Posto su instrukcie
procesora UltraSPARC uglavnom cetvorobajtne, u kcsu irna mesta za oko XK instruk-
cija, nesto rnanje nego u kesu za pracenje mikroarhitekture NetBurst.
Jedinica za izdavanje instrukcija (engl. ins/ruction issue 1tnil) ujednom sistem-
skom ciklusu priprema La do cetiri instrukcije. Ako dodc do promasaja II
kdu prvog nivoa, izdaje se manje instrukcija. Kacla se naicte na uslovno
konsultuje se tabela grananja (engl. branch table) sa 16K odrcdnica cia bi se LZ
mlreden stepen verovatnoce prcuzela nareclna instrukcija iii instrukcija sa odredisre
aclrese. Osim toga, predvictanju grananja pomaze i dodatni bit uza svaku rec u kesu La
instrukcije. Pripremljene instrukcije se salju u bafer kapaciteta 16 instrukcija, koji
ujednacava priliv instrukcija u sistern za paralclnu obradu.
lz bafera se instrukcije salju ujedinice za obradu celih brojeva i brojeva u formatu
pokretnog zareza. kao i Ll jedinice za ucitavanje, oclnosno smestanje podataka. kako _e
prikazano na slici 4-48. Jedinice za obradu celih hrojeva su clvc ALU jedinice do-
punjene kratkim sistcmom za paralelnu obradu instrukcija grananja. Ovde se nalaze i
!SA rcgistri i nekoliko privremenih registara.
Jcclinica za izvrsavanje instrukcija s brojevima u formatu pokretnog t.areza sadr::i
32 rcgistra i tri zasebne ALU jcdinice: za sabiranje/oduzimanje. 1.a mnozenje i za
dcljenje. Grafil:ke instrukcijc sc takocte izvrsavaju u ovoj jcedinici.
Jedinica za citanje/smestanje podataka obraduje razlicite instrukcije za citanje i
smdtanje podataka. Njene tri putanje podataka vode u tri razlicita kesa. Kd za podat-
ke (engl. data cache) standardan je cctvorostruki asocijativni kd prvog nivoa za
podatke, velicine 64 KB, s reclovima duzine 32 bajta. Kes za prethodno preuzimanjc
(engl. prcfic-!ch caclzc) velicine 2 KB postoji zato sto UltraSPARC-ov nivo ISA sadrii
instrukcije za prethodno preuzimanje koje omogucavaju prevodiocu da preuzrne reci s
312
Poglavlje 4: Nivo mikroarhitekturc
se mikrooperacije koje slede ipak obraduju, sto vodi do prekorednog izvrsavanja mi-
krooperacija. Ovakva strategija je izabrana da bi sve funkcionalne jedinice bile sto
vise zaposlene. u svakom trenutku moz.e biti ll toku cak 126 instrukcija, pri cemu 46
instrukcija mo;ie uCitavati podatke iz memorije, a njih 24 mu?e upisivati u memnriju.
Priprerna
UpraviJdllJC
prekorednrrn
izvrSavanjem
Stika -1.-47. puLanjc u Pcntiu:11u -1.
Ka
rnemoriji
i ad nje
Ponekad mikrrmpcraciJa pri izvrsavanJU /.astanc jef treba da upi.:,,, pudatke u rcgi-
star i1 koga upra\O cita vredno:,t iii u ni,ga vrcdnnst uptsUJC prcthodna mikmopcra-
cija. Ovakvi sukubi se. kao ,mo \e,_: pumenuli, tu;ivaJU \V.'\E. i \V,\W l<tVisno,.,li.
A.ku preimenujemo odrcdisiL nuvc mikroupctacijc i tak<J juj da woj rl'-
zultat upise u jedan ml pri' rcmcnih rcgistara ( umesto u ()(L.:m :.:rajuci. ali ju\ uvek
zauzel mlrcdi;ni rcgi,.,tan. mo?:c:n:o odm,;h d<t uputimo na
van je. Ako ncma raspolu!i vog pri vremcm1g rcgi ,;ra iIi mi krouperacip ima L:;t-
visnost tipa R,\\V (kojct se nibdcl ne mnie zauhici). jedinica .ca doJcljivanje bclc/i

4.6 Primeri niYoa mikroarhitekturc
313
prirodu problema u odrednicu ROB bafera. Kada kasnije svi potrebni resursi postanu
raspolozivi, mikrooperacija se stavlja u jedan od redova cckanja /,a i1vrsenjc.
Jedinica za dodcljivanje/preimenovanje stavlja mikrooperaciju u jedan od dva
reda cekanja u trcnutku kada je ona spremna za i1.vrsavanje. S druge stranc redova
postoje cetiri jcdinicc za vremensko rasporcdivanje (engl. srhetlulers) koje ih pre-
UJ.imaju. Svaka od cctiri jedinice vodi racuna o odredcnim resursima:
1. Jcdinica I: ALU I i jcdinica za prcmt'Stanje operacija u fonnatu pokretnog
zareza.
2. Jedinica 2: 1-\LU 2 i jedinica za izvrsavanje operacija u formatu pokretnog
zareza.
3. Jedinica 3: lnstrukcije za ucitavanje podataka .
.:J. . .Jedinica .:J.: [nstrukcijc za smt'Stanje podataka.
Pu.\to jedinice za vremcnsko rasporedivanje i ALU jedinicc rade pri ucestalosti
dvostruko vecoi od nominalne. prve dvc jedinice za vrcmensko rasporeclivanje mogu
da ;alju dve mikroopcracije ujcdnom sisternskom ciklusu. Uz dvc cclobrojnc ALU
jcdinice koje rade dvostrukom brzinom, Pentium 4 na 3 GHz moze da izvrsi 12 mili-
jardi cclobrojnih opcracija u sekundi. To je ;aista velika brzina i zbog nje jcdinica za
upravlj<tnjc prekmednim izvrsavanjcm ima toliko problema da zaposli ALU jedinice.
lnstrukcijc za ucitavanjc i smestanje podatak.a dele izvrsnu jedinicu dvostrukc brzine
koja ll ciklusu mo7.e da izda po jcdnu naredbu za ucitavanjc i smestanje poda-
tab. Tako se u najboljcm slucaju ujednom ciklusu mnze prcdati na izvrsenjc sest ce-
lobn1jnih rnikroopcracija. uz ndtu operacija s brojevima u formatu pokretnog zareza.
Dvc cclobrojne ALU jcdinice nisu istc. ALU l mole da obraduje svc aritmeticke
i lngic'kc c>[Jcracijc i sva grananja. ALU 2 moze da obavlja samo sabiranjc, oduzi-
r!lanjt', pomeranje i rotiranje. lsto tako, nisu istc ni dve jcdinice za rad s brojevima u
furmatu pokretnog zarcza. Prva mozc cia obavlja prcmdtanja i da obraduje SSE in-
'trukcijc. Druga moze da obavlja aritmeticka izracunavanja s hrujevima u formatu
pd,rctnug r.arcza ida MMX i SSE instrukcije.
ALU .JCdinice i jcdinicc za rad s brojcvima u fmmatu pokrctnog zaret.a dobijaju
pc1d,ttkc iz clve grupc po l2X registara -jednc 1.a cele brojeve i druge za brojeve u for-
lltatupok.retnog zareza. Registri sadrze sve operandc za instrukcije koje se izvrsavaju
i i:--lm rcmcno prihvataju njihove rewltatc. Zahvaljujuci mogucnosti preimenovanja
rcgi,lara, osam registaraje dostupno na nivou !SA (EAX, EBX, ECX. EDX itd.). ali se
n..: ma tacno kojih osam rcgistara sadrzi stvarne vrednosti, jer se preslikavanj.:: menja
11 toku iz-vrsavanja.
Kcs prvug nivoa La podatkc deo je kola velike brzine ( 2x). To jt' kd od H KB i
cclc bmjeve. brojcve u formatu pokretnog zareza i druge vrstc pudataka. Za ra-
zliLu 11d kda za praccnjc, nj<::gov sadrzaj se nikako ne kodira. On sadrzi cistu kopiju
>va i; memclrije. Kt'S prvog nivoa za podatkc je cctvorostruki asocijativni kd sa 6.:J.
r'o redu kc;a. To je k.e< s dircktnim upisi vanjem. znaci da se pri menjanju red a
taj red odmah kopira naL.ad u kes drugog nivoa. Kcs mo>.e da obavi jedno ucita-
\anjc i jnlnn upisivanjt' podataka u jednom sistemskom ciklusu. Kada se tralcna rcc
1:
i
l;
.................. ---------
Poglavljc 4: Nivo mikroarhitckturc
Faza
A
Mult1plekser adresa
M
w
X
D
Sliha ..1-..19. Uprosccn prikaz paralelnc obradc instrukcija u procesoru UltraS I' ARC Ill C
U L.!Li.! (instruction stage grouping- grupisanje instrukcija po fazama) instrukcije
se uzimaj u iz reJa cekanja i priprcmaju ;:a slanje izvrsnim jeJinicama tokom sleJcccg
ciklusa. U svakom ciklusu sc u fazu R mole poslati do cetiri instrukcije. lzbor instruk-
cip ;:a slanje ograniccn je raspolozivoscu funkcionalnihjedinica. Mogu se. na primer.
istovrcmeno poslati dve celobrojne instrukcije. jedna instrukcija za raJ s brojevima u
formatu pokretnog zareza i jcclna instrukcip za citanje iii smdtanje poJataka. ali se
tri ce!obrojne instrukciJc ne mogu poslati u istom ciklusu.


,..

;:
31
-:J


I"

i

1.
4.6 Primcri nivoa mikroarhitekture
U fazi R traze se rcgistri potrebni cclobrojnim instrukcijama i proslcduju sc zahte-
vi registrima koji su potrebni instrukcijama za rad u formatu pokrctnog zare1.a. Na
ovom mestu se proverava i postojanjc eventualnih zavisnosti. Ako potreban registar
nije na raspolaganju jer ga jos koristi prethodna instrukcija (tj. postoji sukob ), instruk-
cija kojoj je taj registar potreban privremcno se zaustavlja, a one iza nje se blokiraju.
Za razliku od Pentium a 4, UltraSPARC III Cu nikacla ne izclaje instrukcije preko recta.
U fazi E (Execution - izvrsavanje) izvrsavaju se celobrojne instrukcije. Vecina
aritmetickih, logickih instrukcija i instrukcija za pomeranje koriste celobrojne ALU
jedinice i zavrsavaju se u jednom ciklusu. Svaka instrukcija po zavrsetku oclmah azu-
rira radni rcgistar. Neke od slozenijih cclobrojnih instrukcija usmeravaju sc u speci-
jalnu jedinicu. Instrukcijc za i)tanje i smestanje poclataka u ovoj fazi pocinju
izvrsavanje, ali sene zavrsavaju. Ovde se iz. rcgistara za rad s brojevima u formatu po-
krctnog zareza prcuzimaju odgovarajuCi operandi. lnstrukcije za uslovno grananje
obraduju se u fazi E, gcle se i utvrctuje cia lice skok biti obavljcn. U slucaju pogrdno
preclvidenog skuka salje se signal fazi A i linija paralelne obrade se prazni.
U fazi C (Cache- kd) zavrsava se pristupanje kdu prvog nivna. lnstrukcije kojc
citaju podatke iz memorije (tj. instrukcijc za ucitavanje), svojc re;.ultate isporucuju u
ovoj fazi.
Faza /vl (Miss - prumasaj) pocinje obradu reci s podacima koji su potrebni. a ne
nalaze se u kdu prvog nivoa. Pocinje se ocl kda drugog nivoa. a ukoliko se i tu javi
promasaj. refercncira se memorija, sto angazujc mnogo sistcmskih ciklusa. Samostalni
bajtovi, cetvrt-rcci iii polureci koje su pogodene ll kdu prvog nivoa. ali treba da im se
prosiri znak ili da se poravnaju. takode sc ovJe obraduju. !nstrukcijc kojc su poclatke
u formatu pokrctnog zareza uspdno pronaslc u kdu za prethoclno prcuzimanje. svoje
rezultate dnbijaju u ovoj fazi. Kcs za prethoJno preuzimanjc ne k.oristi se za celobrojne
podatke zbog slozenog vremenskog uskladivanja operacija.
U fazi W (Write- upisivanje) rezultati iz specijalne jedinice upisuju sc ponovo u
racine registre.
Faza X (eXtend- produzenjc) vremc je kada sc vecina instrukcija za rad s broje-
vima u formatu pokretnog zareza i instrukcija za rad s gralikom zavrsavaju. Rewltati
se salju nareclnim instrukcijama- upucuju se direktno iz skladista na ucitavanjc. tako
Ja su im raspoloz.ivi pre nego sto se tekuca instrukcija formalno zavrsi u fazi D.
U fazi T (Trap- klopka) obraduju se izuzeci u radu sa celim brojevima i brojevima
u fonnatu pokretnog zareza. Ova faza je odgovorna za preciznost obrade izuzetaka i
sisternskih prckida. Drugim recima. poslc pojave izu1etka iii nastanka sistcmskog
prekiJa, sacuvano stanje racunara mora biti takvo Ja svc im,trukcije pre tog dogadaja
buclu potpuno zavrsene i Ja nijedna instrukcija posle tog dogadaja nijc Dtpoceta.
U fazi D. sadrzaj celobrojnih rcgistara i registri za rad s brojevima u pokretn()rn za-
rezu prepisuje se u oclgovarajuce racine registre (prema arhitekturi prncesora). Ako se
javi izuzetak iii sistcmski prckid. koristc se <lYe vrednosti, a ne one iz radnih registan1.
Cin smestaja sadrz.aja rcgistara u stvarne rcgistre ekvivalentanje cinu zavrsavanja in-
strukcija u Pentiumu. Pored toga, u fazi [) bilo koja zaostala instrukcija za
podatak.a zavrsava upisivanje svojih rcmltata u kd 1.a upisivanje, a nc u prvog
316

izdavan
1
e
l
11vr v d n Je nt s , kc 1 a
LJ1l'.t5.1vrlilj.o


Poglavlje 4: Nivo mikm<1rhitckturc
Sistemsk1 interiejs
Kontroler kesa
drugog nivoa
----------
Jedin1ca za c1tanje/
smestanje podataka
Ka memoriji
Slika 4-4X. Blnk-uijagram proccsora UltraS!' ARC Ill Cu.
pudacima pre ncgu sto OllC budu potrebnc. Kada prevodilac pomisli da hi mu mozcia
dubro do;ia neka rcc, on mol:c da izda instrukciju za prethodno preuzimanjc da bi je
adrc-;irani red kda unaprcd ucitao u kd za prethlldno prcu;:imanje i tako uhrzao
pri.'illlpanjt' h:ada posit' n'ekoliko instrukcija ta rec stvarno zatn:ba. u izvesnim okolno-
.stiilla prcthcJno prcu;imanjc se ohavlja i hardver;,kim putcm da bi sc puboljsak pcr-
knnanoc stanjih pwgrama koji ncmaJU opciju prcthodno prcuzimanje podataka.
za upisivanjc (engl. It-rite mche) mali jc (2 KB) kd koji kombinuje rezultatc na-
mcnjcn,: up!sivanjuu kd drugog nivoa bko bi boljc iskoristio siroku (256-bitnu) rna-
bja vodi do njega. Njcgov jcdini tadatak je cia poholj\a perfom1ansc.
(ip sadrzi i IPgiku za upravljanjc pristupom memoriji. Ona se sastuji od tri deJa:
intcrkjsa. kontrolcra kcsa drugog nivoa i kontmlcra mcmorijc. Sistcmski
intcrt"cJ, \..uinunicira s mcmorijom preko 12X-bitnc magiotrale. Svi zahtevi upuceni
:;p<'l_Jnum ;;vclu. usim h.esu drugog nivoa, prolaze kroz ovaj intcrfejs. Uz 43-bitne f1-
1icf-c illcmorij,kc adresc. glavna mcmorija teorijski mozc biti velicine i do 8 TB, ali
jc vcli<."ina kanice sa stampanirn 1-;olom na kojoj je montiran procesor ogranicava na
1 (J Cj B. Pustuj i prujch.tuvan interfcjs koji omogucava da se vise proccsora U1tra-
SPt\RC p<lve/.c sa istom memorijom (tako nastaju multiproccsuri). Multipmccsure
c.:mo Pbraditi u osmom poglavlju.
htnllrul..:r kda drugog nivoa komunicira s jedinstvenim kdom drugog nivoa koji
:,<:: proccsorskog .:'ipa. Posto je kd drugug niv<Ja spo1jni. moz.: hiti ve1ici-
nc od I, 4 i X :Vfl:l. Duzina reda kcsa zavisi ud velicine h:csa i krece se od 64 bajta za
u,! I \-! 13 do .'i 12 bajtova za kes od X MB. Poredenja radi, kd drugog ninJa Pen-
l:tlma4 nalazi s:e na cipu. ali muje velicina ogranicena na I MB zbog nedostatka pro-
(p. de jc napravljen kompromi:,: kod UltraSP,\RC-a jc mnogo veci stcpen
t.f

'
" {
i
4.6 Pdmcri nivoa mikroarhitekture
317
pngac1anja kesa drugog nivoa ncgo kod Pentiuma (jer kd moze biti veci), ali je prist-
up kesu sporiji (jcr se nalazi izvan cipa).
Knntrolcr memorije preslikava 64-bitne virtuelne acirese u 43-bitnc tizicke adrcse.
UltraSPARC podrzava virtuelnu mcmoriju (o kojoj cemo govorili u sestom pogla-
vlju). uz velicinu mcmorijskih stranica oci X KB, 64 KI3, 512 Kl3 i 4 MB. Da bi sc
ubrzalo preslikavanje, postoje specUa1ne tahele. nazvane TLB (Translation Looka-
side Buffer) za uporedivanje tekucih virtuelnih adrcsa koje se trenutno referenciraju
i nedavno korisccnih virtuelnih aclresa. Postoje tri takve tabcle za rae! s razlicitim vc-
licinama memorijskih strana za podatkc i jos dve za preslikavanje instrukcija.
Paralelna ohrada u procesoru UltraSPARC III Cu
UltraSPARC fii Cu ima paralc1nu obradu u 14 faza, prikazanu uprosceno na slici
4-49. Ovih 14 faza oznac.:no je slovima ud A do f) na levoj strani slike. Opisimll
ukratko svaku od njih. Faza A (Address generation- gcnerisanje adrese) predstavlj1
ula;u paralelnu obraciu. U ovoj fazi se udrcduje adresa sledcce instrukcije koju treb1
preuzcti. Ta adresa se obicno nalazi oclmah iza adrcsc tckucc instrukcijc. Mcdutim. ta-
kav sckvencijalni rcdosled mo!.e biti narusen iz vise razloga (npr. aku je prcthodna in-
strukcija bila grananje za koje je prcdvidcno cia ce sc cicsiti iii je ll pitanju ohrac!J
nckog izuzetka ili sistcmskog prckida). se predvidanje grananja ne mo7.e oba-
viti jednom ciklusu, instrukcija koja slecli iza tacke grananja uvck sc izvrsava. hcz ob-
zira nato da lice biti programskog skoka iii neec.
U fazi P (Pre! imi nary fetch - prclimi narno prcuzimanje) kuristi -,c adrcsa dobijem
u fazi A cia bi sc Lapocelo preuzimanje do cetiri instrukcije po ciklusu Ll prvo;
nivoa za instrukcije ( 1-kd). Ovde sc kon-,ultuje i tabda grananja ka].;o hi se prmcri1J
cia li ncka instrukcija predstavlja uslnvni skok i- ako se nade takva instrukcija- lLl
lije skok prcdviden iii ne. U fazi F(Fetch- preuzimanje) dovrsava se preuzimanjc in-
strukcija La 1-kes.
U fazi 13 (Branch target- odrediste grananja) dck<Jdiraju se upravo prcu/elc' in-
strukcije. Ako je bilo koja od n_1ih prcdvidcn skok. ta informacija je u ,l\'(Jj Lm do-
stupna i salje se nazad u fazu /\ da bi se usmerilo huduc'e preuzimanje instrukcijct.
U fazi I (Instruction group formation- grupa im,trukcij:t) in:-trukcij:
se grupisu prema tome kojoj su od sest funkcionalnih jedinic:a narncnjenc:
1. ALU I za rad sa cclim brojc:vima.
2. ALU 2 za rad sa celim brojevima.
3. ALU I za rad s brojevima u formatu pokrctnog zareza i gralibmL
4. ALU 2 za rad s brojcvima u formatu pokretnog 1.arcza i gralikom.
5. Paralelna ohrada grananja (nije na slici).
6. Citanje, smdtanje i specijalne operacijc.
Dve cclobrojne ALU jedinice nisu '>as vim iste, a dvc ALU Jedini..:c ,:a r<,d s hrLljc-
vima u pokrctnum Lnatnu se razlikuju. Svaka .\ LU jedinica i:c,r:;<tva ,!rug.tciji
sh:up instrukcija. u I instrukcije Sc sortiraju upravo prelllJ pomcnutinl r:vli.::iti:n
sh:upovima.
322
Poglavljc 4: Nivo mikroarhitckturc
8051 je sinhroni procesor. sa instrukcijama koje uglavnom traju jedan sistemski
ciklus, rnada ima i onih kojimaje potrchno vise vrcmcna. Svaki sistemski ciklus moze
se podcliti u sest delova, nazvanih stanja (engl. states). Tokom prvog stanja, sledeea
instrukcija se preuzima iz rnemorije, postavlja se na glavnu magistralu i upueuje u re-
gistar IR. Instrukcija se tokom drugog stanja dekodira i registru PC sc uveeava vred-
nost. Tokom treeeg stanja pripremaju se operandi. Tokorn cetvrtog stanja, jedan od
operanada se postavlja na glavnu magistralu, po pravilu da bi se isporucio registru
TMP1, gde ee biti obraden da bi posluzio kao operand ALU jedinice. Saddaj registra
ACC moze tokom ovog stanja da se kopira u registar TMP2 tako da obe vrednosti budu
spremnc na ulazu u ALU jcdinicu. Tokom petog stanja ALU jedinica obavlja svoj po-
sao. Na kraju, tokom sestog stanja rezultat izracunavanja ALU jedinicc izbacuje se na
glavnu magistralu i upisuje u svoje odrediste. U meduvremenu, registar ROM ADDR
sprema se da preuzme slcdeeu instrukciju.
lako rnozemo neograniceno siriti pricu o procesoru 8051, smatramo da prethodni
opis i slika 4-50 daju dovoljne osnovne podatke o njemu. Procesor 8051 ima jedin-
stvenu glavnu magistralu (da bi cip bio stu manji) na koju je povezan heterogen skup
regislara, tri tajmera i cetiri prik.ljucka, uzjos nekoliko registara na lokalnoj magistra-
li. U svakom ciklusu putanje podataka dva operanda se propustaju kroz ALU jedinicu
i rezultat se ponovo smdta u registar, kao ina mnogo savremenijim racunarima.
4.7 POREDENJE PROCESORA PENTIUM, UL TRASPARC
I 8051
Nasi primeri se medusobno veoma razlikuju, iako imaju i slicnosti. Pentium 4 ima
prastari skup ClSC instrukcija koji bi lntelovi inzenjeri rado bacili u 1aliv San Fran-
ciska kada se tone bi kosilo s kalifornijskim Zakonom o zastiti voda. UltraSPARC Ill
je cist RISC procesor, sa malim, ali korisnim skupom instrukcij<l. C'ip 8051 jednosta-
van je 8-bitni procesor, za ugradivanje u ra;.licite aparate. lpak. srz svakog od njih
cine skup registara i jedna iii vise ALU jedinica koje obavljaju jednostavne aritmetic-
ke i logicke operacije s podacima preuzetim iz registara.
Uprkos njihovim ociglednim spoljnim razlikama, Pentium 4 i Ultra-SPARC lll
imaju prilicno slicnc izvrsne jedinicc. Obc izvrsnc jedinice prihvatajumikrooperacije
koje sadrze opkod. dva izvorisna registra i mlredisni rcgistar. Obc mogu da iz.vrse mi-
krooperaciju u jednom ciklusu. obe intenzivno koriste paralclnu obradu, imaju mcha-
nizam za preclvic1anje skokova i razdvojene kdeve za instrukcije i podatke.
Ovakva slicnost nije slucajna, niti je rczultat cinjenice da inzenjcri iz Silicijumske
dolinc cesto menjaju radna mcsta u neprcstanoj potrazi za boljim poslom. Kao sto smo
vidcli na primerima procesora Mic-3 i Mic--+, lako jc i prirodno napraviti putanju poda-
taka s paralelnom obradom koja uzima cha izvorisna rcgistra. propusta ill kroz ALU je-
dinicu i rezultate smdta u regis tar. Slika 4-34 ovu paralelnu obradu prika1uje scmatski.
Uzevsi u obzir danasnju tebnologiju, izglcda daje ovo najetikasniji nacin rada.
Glavna razlika izmcdu Pentiuma 4 i procesora UltraSPARC Ill jcste nacin na knji
ml pocetne ISA instrukcije dolaze du konacnog izvrsavanja. Pentium 4 mora da
};}
_;t


ti;:!

1
_,,:
.
!
i
4.8 Sazctak
323
podeli svoje CISC instrukcijc i preuredi ih u trorcgistarski format, koji zahteva izvr-
sna jedinica. To upravo radi podsistem za pripremu na slici 4-47 (deli dugacke in-
strukcije u male i zgodne mikrooperacije). UltraSPARC Ill ne mora to da radi jer su
instrukcije koje dobija vee u najboljem redu, u obliku mikrooperacija. Zbog toga su
novoprojektovani ISA nivoi uglavnom tipa RISC- da bi se obezbedilo bolje slaganje
izmedu skupa ISA instrukcija i interne izvrsne jedinice.
Poucno je uporediti nas konacni projekat Mic-4 sa ova dva primera iz stvamog sve-
ta. Mic-4 je najslicniji Pentiumu 4. Oba procesora imaju zadatak da interpretiraju skup
!SA instrukcija koji nije tip a RISC. Oba proccsora zbog toga dele ISA instrukcije u mi-
krooperacije kojc sadde opkod, dva izvorisna registra i odredisni registar. lJ oba sluea-
ja mikrooperacije se stavljaju ll cekanja L.a kasnije izvrsavanje. Mic-4 izdaje,
iz.vrsava i zavrsava mikrooperacije striktnim programskirn redosledom, dok ih Penti-
um 4 izdaje i zavrsava programskim redosledom, ali ih moze izvrsavati i preko recta.
Mic-4 i UltraSPARC III ne mogu se stvarno poreditijer UltraSPARC Ill ima RISC
instrukcije (tj. troregistarske mikrooperacije) kao svoj skup ISA instrukcija. One se
ne moraju deliti na sitnije delove, vee se mogu izvrsavati takve kakve su, po jedna u
svakom ciklusu putanje podataka.
Za razliku od Pentiuma 4 i procesora UltraSPARC Ill, procesor 805 l stvarno je
jednostavan. On je vise tipa RISC, nego tipa CISC, zato sto se veeina njegovih jed-
nostavnih instrukcija mozc izvrsiti u jednom sistemskom ciklusu i ne moraju se deliti
na manJe de love. Onnc koristi paralelnu obradu, ne kesira instrukcije a izdaje ih, izvr-
sava i zavrsava pmgramskim redosledom. Po svojoj jednostavnosti, mnogo lici na
proccsor Mic-1.
4.8 SAZETAK
Srz svakog racunaraje njegova putanja podataka. Ona sadrzi registre, jednu, dve
iii tri magistrate i jednu ili vise funkcionalnih jedinica kao StO Sll aritmeticko-Jogicke
jedinice (ALU) i pomeraCi. Glavna izvrsna petlja obuhvata preuzimanje operanada iz
i njihovo slanje preko magistrala ALU jedinicama i drugim funkcionalnim
jedinicama na izvrsavanje. Rezultati se tada ponovo smdtaju u registre.
Putanjorn podataka moze da upravlja sekvencer koji preuzima mikroinstrukcije iz
upravljackog skladista. Svaka mikroinstrukcija sadrzi bitove koji upravljaju puta-
njom podataka tokomjednog ciklusa. Ovi bitovi odreduju koje operande treba izabra-
ti, koju opcraciju treba obaviti i za smdtanjc rezultata. Pored toga, svaka
mikroinstrukcija 01nacava svog sledbenika, najcesee direktno pomoeu njegove adre-
se. Ncke mikroinstrukcije menjaju osnovnu adrcsu tako sto, pre koriseenja, na njene
bitove primcnjuju opcraciju OR.
l.IVM mas ina radi sa stekmn tako sto na osnovu jednobajtnog opkoda stavlja reci
na njega. uzima reci s njega iii ih na njemu kombinuje (npr. sabira ih). Prikazanaje i
njena mikroprogramsk:.t realizacija za mikroarhitekturu procesora Mic-1. Dodava-
njem jedinice za prcthodno prcuzimanje instrukcija mogu se clirninisati brojna obra-
canja prograrm,k.mn brojacu i tako znatno ubrzati rad procesora.
,
324
Poglavlje 4: Nivo mikroarhitekture
Nivo mikroarhitekture racunara mozc se organizovati na vise nacina. Tu postoje
hrojni kompromisi, ukljucujuci i organizaciju s Jve i tri magistrale, kodirana i deko-
t!irana polja mikroinstrukcija, postojanje ili nepostojanje prethodnog preuzimanja,
povrsna iii sustinska paralelna ohrada i jos mnogo toga. Mic-1 je jednostavan, soft-
verski kontrolisan proccsor sa sekvencijalnim izvrsavanjem i bez paralclizma. Za ra-
zliku od njega. procesor Mic-4 ima visokoparalelnu arhitekturu sa sedam faza obrade.
Pcrfonmtn.-;c se mogu poboljsati na razlicitc nacine. Glavni nacin je uvodenje kes
memorije. Dircktno preslikani kcs i sct-asocijativni kcs obicno se koristc za ubrza-
vanjc obracanja memoriji. Staticko i dinamicko prcdvidanje programskog skoka ta-
kode su vazni. kao i prekorcdno. tc spekulativno izvrsavanje instrukcija.
Sva tri nasa procesora iz primera 4. UltraSPARC lll i imaju mi-
kroarhitckturu koja nije Jostupna programerima u asembkru !SA nivoa. Pentium 4
ima slozenc mchanizme za pretvaranje !SA instrukcija u mikrooperacije, za njihovo
kcsiranjc i prenosenjc u supcrskalarno !USC jczgro na prekoredno izvrsavanje, za
preimcnovanje registara i za ostale trikuve kojima se iz hardvera izvlaci maksimalna
brzina. UltraSPARC lll Cu ima intcnzivnu paralelnu obradu. ali jc relativnojednosta-
van procesor koji instrukcijc izdaje. i1.vrsava i Jnvrsava programskim rcdosledom.
Proccsor :-105 I veoma je jednostavan, s jedinst venom glavnom rnagistalnm na koju je
vezano nckoliko rcgistara i jedna ALU jedinica.
VEZBAN.JA
I. Na slici -f-6. registar na magistrali B kodiranje u4-bitnorn polju. ali jc magi strata C
prcdstavljena kau mapa bitova. Zasto'
1
2. Na slici 4-6 postoji hluk .. Najznacajniji bit" Nacnajte njegovo ekktricrw kolo.
3. Kalla se aktivira polje JMPC mikroinstrukcij.?. na sadrzaj rcgistra MBR i polje
NEXT ADDRESS prirnenjuje se upcracip OR da bi se dobila adresa slcdec.: mikroin-
strukcijc. Postojc li okolnosti u kojima hi imalo smisla da NEXT _ADDRESS bulle
O:d FF i da se upotrcbi JMPC'
1
..J. Prctpo-;tavitc dajc u prirncru sa -;like 4-141a) poslc naredhe 1f dudata naredba
k 5;
Kaku hi izgledau novi ascmbkrski k1)d"! Prctpostavitc da prcvodil:.Jc istovrclll<cll<> 1
optimizujc kl1d.
5. Naveditc dva ra.dicita IJYM prcvoda skdccc Java naredbe:
1 k + n + 5:
6. Navedite Java naredbu kop generisc skdcci IJYtv1 kCJt!:
ILOAD j
ILOAD n
I SUB
BIPUSH 7
I SUB
DUP
I ADD
iSTORE I
Vc:lhanja
7. U tekstu smo pornenuli da pri prevodcnju narcdbe
it (Z) goto L 1 . else go to L2
325
u hinarni k6d, L'. mora da se nade unutar donjih 256 rcci upravljacke mcrnorije. o,
li bi hilo mogucc daje LI na adresi. rccimo. Ox-tO. a L7. na adrcsi Ox 140'-' Obrazlozitt
odgovor.
8. U mikroprogramu za proce,or Mic-1, u mikrooperaciji if __ icmpeq3. ,adrzaj
MDR kopira se u regi,ar H. Nckoliko rcclova kasnije. taj sadrzaj sc odu1.ima od sat!rzaj;,
registra TOS zbog proverc jednakosti. Sigurnu je bolje za to imau Jednu mrct!bu:
it_cmpeq3 Z TOS- MDR; rd
Zasto to nijc uradeno''
9. Za koje vrcme c'c procesor tylic-l koji rat!i na 2,5 GH1. izvrsiti Java narcdbu
i j + k;
Naveditc odgovor u nanosckundama.
10. Ponovo odgovorill: na prethudno pitanje. ali La proccsor Mic-2 koji radi na 2,5
GH1.. Na usnovu ovih proral'una odgovmitc: koliko dugo ce se program koji sc 111
proccsoru 1\lic-1 izvrsava I 00 sckundi. izvrsavati na proccsoJ"L1 Mic-2'
1
I I. N:tpi;itc rnikrokot! za procesm Mic-l koji imp!cmcntira JVM instrukciju POPTWC.
Ova instrukcija dvc rc>ci s vrha stcka.
12. Na potpunuj JVM masini. ume,to instrukcijc I LOAD postoji spccijalan jedno-
bajtni opkod za ucitavanjc lukalnih promcn!jivih od 0 du 3 na stck. Kako trcba i7-
meniti IJVi\1 da bi se uvc instrukcijc iskoristilc na pravi naCin'.'
13. [nstrukcip ISHR lcelobrojr.o aritmctido.o pomeranje udcsno) postoji u JYM skup't
itbtrukcija. ali nc i u IJY:\1 -;kupu 11blrtlkLija. Ova instrukcip sa stcka uzima t!v"
prve ncdn<hti. ;:unenjujuc'i ih jt:din,ll'l'JHlm vrcdnosL'u re;.ultatom. Prctposlednj1
rcc na 'tcku operand CIJC hitt>vc tn:ba pum;:riti. Oni sc pomeraju uclcsno za 0 d')
:II rnesL1, u /avisnu-;ti od vrcdnmri 5 najrnanjc: znac.rjnih bitova pos!r:dnje reci m
stckulprc"'talih 27 IJitD\il poskdnJc reci sc zancman1ju). 13it;a o1.nacavanje (arit-
mctiCkll) umnu7.ava sc udcsno onolik.o pula kuliku .J<.: pumcran_)e. Opkod
ISi-iRJC 122ilh
7
.\i.
al Koja_1c ariunc:ticka opcracip ckl ivakmna pumeranJU ut!csno za 2 rne,ta'-'
bJ taku da obuho, uvu in.;trukci.Ju kao dco IJV!'vl skupa .
l..J. instrukcip iSHL tcclobrujno aritmctickn pumcranJc ulcvo) postoji u JV;-..! skupu in-
strukci_ia. ;di nc 1 u J.JV!'vl -;kuputnstn:k.<:ija. Ona .<a stcka uzima dvc prw vret!nost.
?amcnjujt:L'i ih _1cdinstvenom 1 ruuit.iWill. Prt'tposlt:dnja rcc na stckujc
npcrand cijc h!lo\ c trcha pnmcriti. 0111 ..;c ponwra_1u ulc\ o 1a ()do 31 mesta. zavisn)
ud vrnlno-;ll '; najmanjc zna(,qnill bit<1Va posblnJc rcl:i na steku iprcustalih 27 br-
t,)v'' poslc'tln.J..: rcci ..;c z:mcn;,rrujt11. pralila na desnoj strani popun_i::-
V.lJU :-;c nliLiln.L CJrh.od .ijc :SHLjc 120 lCh:/S l.
a; Kup_1e :tritn:cticka upcraup ck\ iYaknlna pnmeranju ukvo La 2 mesta'l
bi rak,) cb Pbull\ ati uvu instn:kciju kao t!co IJY!'vl ,kupa.
15 . .IY,\1 INVOKEViRTUf\.L llli>ra da 1:1a k"li!..<l 1ma parametara. Za;to)
16. lmp!cmcntiur_, JV:\l in,trul,ciiu DLO,\D proccsc\1- ,\llc-2. Ona 1majcdnohajtni i1--
dcJ.;s 1 lc,ka!nu na lcl.J pc>nci.Ji ,n,,:;u net ,t-:k. Zatim na stck sme;ta i ,Ic-
reC.
!""
326
Poglavlje 4: Nivo mikroarhitekture
17. Skicirajte konacni automat za sabiranje rezultata teniskog rneca. Pravila tenisa su
slcJeca. Da bistc pobcJili, moratc osvojiti najmanje cetiri poena i morate imati ha-
rem Jva poena vise oJ svog protivnika. Pocnitc oJ stanja (0, 0) koje oznacava Ja ni-
jedan protivnik nema poene. Zatim dodajte stanje ( l, 0) koje znaCi da je A dobio
poen. Li'lk oJ stanja (0, 0) do stanja ( l, 0) oznacite sa A. Sada doJajte stanje (0, l)
koje oznacava Jajc B dohio pocn i li'lk od (0, 0) do (0, l) oznacitc sa B. Nastavite da
dodajetc stanja i lukove sve dok ne obuhvatitc sva moguca stanja.
18. Ponovo razmotrite prethodni problem. Postoje li ncka stanja koja se mogu izostaviti,
ada to nc promcni rezultat nijcdnog mcca? Ako mislite da postoje, koja su to stanja
mcdusobno ckvivalentna")
19. Skicirajte konacni automat za predvidanjc skokova. inertniji oJ onog na slici 4-42.
On trcba da promeni preclvidanjc tek nakon tri uzastopna promasaja.
20. Pomeracki registar sa slikc 4-27 ima maksimalan kapacitct od 6 bajtova. Da li bi se
mogla napraviti jeftinija jcdinica za prcuzimanjc instrukcija sa 5-bajtnirn pomcrac-
kirn registrom"J lli sa 4-bajtnirn'
1
21. Posto smo ispitali jeftinije jcdinicc za prcuzirnanjc instrukcija u prcthodnom vci-
hanju. ispitajmo sada i one skuplje. Da li bi imalo smisla dajcdinica za preuzimanje
ima mnogo veci porneracki rcgistar (recimo. sirinc 12 hajtova)'
1
Obrazlozite i pozi-
tivan i ncgativan odgovor.
22. U mikroprogramu za proccsor l'vlic-2, kfld Dt rnik.rooperaciju if __icmpeq6 odlazi na oz-
naku T kadaje hit Z postavljcn na l. Mcdutim. kfiJ za T jc isti kao za oz.naku goto1.
Da li hi bilo mogucc da sc odmah skoci na oznaku goto1"1 Da li bi to ubrzalo rad
procesora'!
23. U proccsoru l'vlic-4 jcdinica 7.a dekodiranjc prcslikava IJVM opkod u indcks u ROM
memoriju u komc sc cuvaju mlgovarajucc rnikroopcracijc. lzglcdajcdnostavnijc da
se faza dckodiranja preskoci i IJVM opkod dircktno stavi u red cckanja. Jedinica a
cekanje u rcdu mogla bi da koristi lJVl'vl opkod kao indcks za ROM mcmoriju, na
isti nacin kao i procesor 1\lic-l. Zasto ovaj predlog ne valja'l
24. Racunar ima kd u dva nivoa. Prctpostavimo da 60% od svih pristupanja mcmoriji
pogada adrcsu u kcsu prvog nivoa, 35% pogada kcs drugog nivoa. a S
0
l su proma;a.
ji. Odgovarajuca vrcmena pristupanja su 5. 15 i 60 ns. pri cemu se vrerne pristupanja
kcsu drugog nivoa i memoriji rae una od trcnutka kada se zna da je pristupanje pot-
rcbno (npr. pristupanje ke:iu drugog nivoa nc zapocinje sc svc sc dok nc javi pro-
masaj u kdu prvog nivoa. Koliko je prm,ccno vrcmc pristupanja"
1
25. Na kraju odcljka 4.5.1 rekli smo Ja zauimanje odrcJnicc ima prednost sarno ako
postoji verovatnoca dace biti vise upisivanja u isti red kcsa. Sta mislite o situaciji u
kojoj posle upisivanja nastaje viscstruko citanje"' Zar i tu ne bi postojala vclika
prednost'l
26. lJ radnoj vcrz.iji ovc knjige. na slici 4-39 bio je prikazan trostruki asocijativni kes
umesto cetvorostrukog. Jed an od rcccnzenata je tad a pobesnco. i7.javljujuci dace to
potpuno zbuniti studente jcr tri nije stepen dvojke, a racunari svc raclc u binarnom si-
stemu brojeva. Sledeci izreku ,Ydi konja gdc ti gazda kaze" sporni broj jc prume-
njen u cetiri. Da li je reccnzcnt bio u pravu"' Ohrazlozite odgovor.
Vdhanja
327
27. Racunar s petostcpenom paralelnom obradom radi sa uslovnim programskim skoko-
vima tako sto L.austavi rad tokom tri sistemska ciklusa kada naidc na grananjc. Koliko
ovo zaustavljanjc stcti perfom1ansama ako 20% svih instrukcija predstavljaju uslov-
ne skokovc'J Zancmarite sve druge uzroke zaustavljanja, osim uslovih skokova.
28. Prctpostavimo da racunar preuzirna unapred do 20 instrnkcija. Mcdutim, prosecno 4
od ovih 20 instrukcija su uslovni skokovi, svaki sa 90 procentnom verovatnocom
tacnog predvidanja. Kolika jc verovatnoca da prcthodno prcuzimanje instrukcija
radi na pravi nacin?
29. Pretpostavite da !reba da izrnenimo projckat proccsora na slici 4-43 tako da umcsto
8 ima 16 rcgistara. 1ada rncn.ramo instrukciju 16 da koristi registar RS kao svojc od-
rcdiste. Sta ce sc ctogadati od sestog ciklusa
30. Zavisnosti stvaraju ncvoljc procesorima koji imaju paralclnu obradu. Postoji li ikak-
va optimizacija u zavisnosti tipa WAW koja bi mogla da popravi ovakvo stanjc?
Koja jc to optimizacija'
1
31. Napisite ponovo interpreter proccsnra Mic-l, ali tako da LV pokazuje na prvu lokal-
nu prorm:nljivu umesto na vczni pokazivac.
32. Napisite simulator za jednostruki dircktno preslikani kd. Ncka broj oJrednica u
kcsu i duzina reda budu paramctri simulacije. Eksperimentisitc sa simulatorom i iz-
vcstitc o onome sto saznate.
..,...,
1\ii .
r
!;ji.. ::
.,
.
r

,.
f
'
5
NIVO ARHITEKTURE SKUPA
INSTRUKCIJA
U ovom poglavlju dctaljrh> .l!'Jvurirno ,, mvou skupa instrukcija (t:ngL
lnstnt<'fion Scr:\n1titccture. IS.\). Ovaj ni\ll ;e. k:m stc> sc \idi na slici 1-2. nalazi iz-
mcdu nivua rnikruarhitekturc i nivoa upnativnog ststcrn;L lstnrij.ski posmatranu. ovaj
nivo Jt' razvijen pre svih drugih nivoa -- na pucetku je tu bioi jcdini nivo sistema. Ni
danas nijc fl;cohi(no cuti da 'iC 0\':\j nivo arhitcktura iJi ponckad (IlC-
laCiiO) asemr:crski jc1.ik racunara.
Niv< IS.\ poschnt> JC 1a projc'kt;mt;:: .sisrem;t: l'll prcdstavlja vczu izmedu
:.uft vcr;r i harch c:ra. Lt"-'' bi :.c me gao napraviti hctnlvcr k:1ji dircktno progra-
mc pisanc' na juicima C. C++. Java iii na nekorn drugnm jl'liku visokog niV\Ja, to nc
bi p;tmcu:u. Tada sc nc bi rn<'gic- iskuristi:i prcdnosti J'ITV\Kknja (kompajliranja) nad
Stavi;c, da hi hili od prakticnc kuri-;ti. ral'un;rri hi uglavnom morali
bill :.posPhni da i;:vrsa1ajtr prw;rame p:sane na vt:;,, _1e1ika, a nc samo najcdnom.
Pn jck.tanti '" ih c,isknw imajujc'dinstvcn pri,;tup tom prcJblcnw. Programi napiscllli
na raziicitimJe7ic::nr, vi:.okug ni'ctXlmor;rju hiti pr::vcckni u fnnnu ujcdnicku za sve
- najc;ii,. nivoa lS.\. a l:ardhrtr.::ha cla nauci jc,cil- ni'.oa !SA i tada ce moci da
direktn<l ,;vc programc . .'\ivo !SA dciin;:;c veLu u:mc:du programskih prevo-
dilaca 1 !larch era. JC.7ik rmxaju da r;l!.umcju ubc Odnusi koji vladaju iz-
mcdu pn>granbkih prCit'dibc:a, ni\\l;tiSA i hanhcra prikazanr su na sJi,i 5-1
329
-
330
I
l
Poglavlje 5: Nivo arhitekture skupa instrukcija
Program l
na FORTRAN-u 90 /
Program na jeziku C
Program na FORTRAN-u 90
prevodi se u ISA program
Program na JDziku C
prevodi se u ISA program
Nivo ISA
I
ISA program se izvrsava
pomocu mikroprograma iii hardverski
Softver
Hardver
Hardver I
Slika 5-1. Nivo ISA je ve1.a izmcuu prograrnskih prcvodilaca i haruvcra.
U ideal nom slucaju, kada projektuJC nov racunar, projektant ce se posavetovati sa
autorima programskih prevodilaca i inzcnjcrima hardvera i dogovorice se s njima o
tome kakvc ce biti karaktcristike nivoa !SA. Ako autori prevodioea zele neke karak-
tcristi"e koje inzcnjcri ne mogu da u-,tvarc na racionalan nacin (npr. instrukciju ,skoci
i odmah me isplati''), one necc uci u nivo !SA. Slicno tome, ako strucnjaci za hardver
imaju zgodnu komponenlll koju zcle da primene (npr. memoriju sa superbrzim pristu-
pom recima cijc Sll adrese prusti brojcvi ), ali softverasi nisu ll stanju da naprave ki'Jd
koji hi tu osobinu iskoristio. i ona ce ostati na crtacem stolu. Posle mnogo pregovar-
anja i hrojnih simulacija, iskristalisace sc !SA arhitektura savrseno prilagodena iz-
abranim programskim jet.icima, koja ce moci da se realizuje.
Tako je u teoriji. i\ kako to izglcda u sivilu realnosti'
1
Kada se najavi nov racunar,
potencijalni kupci prvo pilclJU: ,Da lijc kumpatibilan sa svojim prethodnikom"? Dru-
go pitanje je: .. 1\'loguli na njcmu da "mistim svoj stari opcrativni sistem"'l Trece: ,Da
li cu bcz ikakvog podcsavanja moci na njcmu da izvrsavam sve svoje aplikacije"'J
Ako jc odgovor na bilo koje od ovih pitanja odrecan, projektanti ce morati mnogo da
ubjasnjavaju. Kupci obicno nisu skloni da potpuno odbace softver koji vee imaju ida
sve pocnu od pucetka.
Ovakvim stavom kmionici vrse vcliki pritisak na projektante da zadrzc istu ISA ar-
hitekturu za sve modele ili da nove modele ucine barem kompatihilnim sa starijim
\erzijama (engl. buchmrd cn!nputi/Jlc). Time podrazumevamo da on mora izvrsavati
stare programc bcz ikak.vih izmcna. i'vlcdutim, sasvim je prihvatljivo da nov racunar
ima i nove instrukcije. kao i drugc mogucnosti koje moze da iskoristi samo nov softver.
Prcma semi '>a slike 5-1. sve dok projcktanti uspevaju da nivo !SA bude kompatibilan
s prethudnim modelima, oni s hardvcrom mogu da rade god nadu za shodno, jer
skoro niko ne brine o stvarnom hardveru racunara (cak i ne znaju sta on sve radi). Pro-
jcktanti rnogu da pretvnre projckat zasnuvan na mikroprogramiranju u projckat zasno-
van na dircktnnm izvrsavanju i da dodaju paralclne obrade. superskalarne dodatke i
svc drugo stu 7ele, pod uslovum da ostvare kompatibilnost s prcthodnim nivoom ISA.
Osnovni cilj jc da stari programi i da!je rade na novom racunaru. Tako napraviti bolji
racunar pod uslovom da bude i kompatibilan s nekim postaje nov izazov.
-1!
. ;,;
3
!;
!
'$ii


'I
. '
;

. . .,_{
f
"
1
5.1 nivoa ISA
331
Zbog svega sto smo naveli, projekat nivoa ISA ne postaje manje vazan. Dobro
smisljen nivo ISA ima znatne prednosti nad nekirn lose projektovanim, narocito u
pogledu odnosa sirove racunarske snage i ccne. Ako je sve drugo isto, razliCiti kvali-
teti nivoa !SA mogu da promene pcrformanse i z.a 25%. Zeleli smo da istaknemo
Cinjenicu da trziste otezava (alii ne sprecava sasvim) odbacivanje zastarele !SA arhi-
tckture zarad novije. Bez obzira na to, povremeno se pojavi neki nov !SA projekat
opste namene, a to se cak mnogo ceiice desava na spccijalizovanim trzistima (npr. na
trzistima ugradenih sistema iii multimedijskih proccsora). Prcma tome, vcomaje vaz-
no razumeti kako je organizovan nivo ISA.
Sta neku ISA arhitckturu cini dobrom? Postojc elva osnovna cinioca. Prvo, dobra
!SA arbitektura trcba cia definise instrukcija koje se mogu efikasno imlementirati
uz postojecu i buducu tehnologiju - rczultat su projckti koji sc mogu isplatiti u vise
generacija racunara. Los projekat se mnogo teze implementira i neophodno jc mnogo
vise logickih kola za procesor i vise memorije za izvrsavanje prngrama. On se moze
izvrsavati i sporije jer ISA arhitektura prikriva mogucnosti za preklapanje operacija,
pa organizacija mora biti mnogo slozenija da hi se postigle iste pcrformanse. Projekat
koji iskoriscava prednosti odrec1cne tehnologije mozc da izazove bunt ll ca.si vode, i
obezbedijednoj generaciji isplativu implementaciju, da bi ga odmah potom prevazisli
!SA projekti koje su napravili dalekovicli projektanti.
Drugo. dobra !SA arhitektura treba da obczbedi jasno odrediste za prevedcni k6d.
Regularnost i potpunost palete izbora va:Lne su karakteristike kojirna se ISA arhitek-
tura ne odlikuje uvek. Te karakteristike su vazne prevocliocu koji se moze namuciti da
bi oclabrao najbolju od ogranicenog broja rnogucnosti, narocito ako neke naizgled
ociglednc mogucnosti nisu dozvoljene u !SA arhitekturi. lJkratko, posto jc nivo ISA
veza izmedu hard vera i softvera, on treba da usreci i inzenjere hardvera (lako se i eli-
kasno implementira), i autore soft vera (lako se pise k6d za njega).
5.1 PREGLED NIVOA ISA
Zapocnimo analiziranje nivoa !SA pitanjem sta on predstavlja. Pitanje mozda iz-
glcda jcdnostavno, ali odgovor mozc biti slo?.cniji nego stu zamisljate. U narcdnom
odeljku rasvetliccmo problematiku nivoa !SA. a zatim cemo anali;irati njegove mc-
morijske modele. rcgistre i instrukcijc.
5.1.1 Svojstva nivoa ISA
Nivo !SA se detinisc na osnovu utiska koji racunar ostavlja na onoga ko programi-
ra na masinskom jeziku. Posto nijedna (mental no zdrava) osoba vise nc programira
rutinski na masinskom jeziku, izmenicemo navedenu definiciju i reci cemo da je k6d
nivoa !SA ono sto kao rewltat i1.baci programski prevodilac (z.anemarivsi za trenutak
pozive operativnom sistemu i simbolicni ascmblcrskijezik). Da bi programski prcvo-
dilac mogao da k6d ni voa !SA, autor programskog prevodioca mora znati
koj i jc mcrnorijski model konkretno primenjcn, kakvi su registri i tipovi pod a taka i in-
strukcije dostupne itd. Skup svih ovih inforrnacija definise nivo !SA.

;:
332
Poglavlje 5: Nivo arhilekture skupa instrukcija
Shod no ovoj dd1niciji. pitanp kao sto su: da li je mikroarhitektura mikroprogrami-
rana iii nije, da li postoji paralelna ohrada iii nc, da li jc procesor superskalaran iii nije
itd., nisu dco nivoa !SA zato sto sene postavljaju (nisu vidljiva) autoru prograrnskog
prevodioca. Medutim. nismo hili sasvim iskreni u prethodnoj izjavi, zato sto ncb. ud
pomenutih pitanja uticu na performansc. a to jeste vidljivo autoru prcvodioca. Raz-
motrite. na primer, supcrskalarnu semu u kojoj se uzastopne instrukcijc mugu izdavati
u istom ciklusu. pod uslovom dajedna mlnjih radi s cclim hrojcvima. a druga s hmje-
vima u formatu pukrctnog zareza. Ako bi prevodilac pri prevoLknju rnogau da n<tizme-
nicno svrstava ove dve vrste instrukcija u izvrsni niz. postigao bi primctno bolje
performansc. Na taj naC:in su clctalji superskalarnog rada vidljiri na nivou!S/\.. pa razd-
vojcnost susLclnih slojeva nije tako stroga kao ;to se u prvi mah cini.
U nekim arhitckturama nivo !SA se detinisc u zvaniC:nom dokumentu kuji C:csto
dunosi ncki industrijski kon;orcijum. U drugim arhitekturama on nije taku zvaniC:no
clelinisan. Na primer. V<J SPARC (SPARC verZije <)) ima L\aniC:nu deliniciju (\Vcaver
i (lermoml. llJ<J4). !Jelinicioni dokument razlicitim realizatorima omogucuj" dana-
prave racunarc na koji ma cc se izvrsavati potpuno isti sort\ cr i dohijati potpuno isti
rezultati.
U slucaju pn1ecsora SPAR C. trebalo jc razlicitim proilvmlacima cipova omoguciti
da napravc funl;ciunalno idemicm: Sl'ARC cipnve koji bi se samo po per-
!mmansama i ceni. Zhog toga su proi;vodaci cipova morali da /naju se occkuje od
SPARC C:ipa Ina nivuu lS''I.). lllme. u detiniciPrwm dnkumentu treha navesti
uputrchljeni mcrnorijski model. registre i nJiiHlVa nacin rada in::.trukcija itd ..
ali nc i ddalJt' mikmarhitckwrc:.
Takvi dctinici,Jni duktiillL'Ilti sadr/.c normatiYne u kojima '>e iznose zva-
niC:ni ;ahtcvi r infonnativne nJcljkc' ko.ti su pumoc C:it:tocim,t. a!i nisu cleo ;.vanicnc
dctinicijc. L: norrnativnimot!.cljcima staiJ;._, se kmic.tt' rcl'i: ,c ncsto :ito .Jl' ohme-
;nu.\. nc SJII,. tza ncsto <wjc ;abranjcnlJ i irehu (;a ne.\to 't<J hi bil,> po/cljnP). Na pri-
m<:r. reC:cnicurn
1::.\'r.\u\onje i,,unog i:::Lt::\ U1 e
J,;,,J.c sc cl:t sc upk\1da ni_jc ddinis:Jn nc 11\lllc iJJw.,to zanemariti. vee
mora da il<l!twe gr6ku koja sc: na ,,dg11var:quci naC:in ,.,hr:tduje. lhakva situacija se
alte-rnativno ostaviii be/ .... :.pbcitnog i u to:n :-)IuC:aju bi g:ornja reCe-
nica trebalc da giasi. n:t prirmr. Ll\a:...o:
tTisunog Of'kodu dcflni:{( i;nph'n!cnl<tctjd.
Tu /naci da :tul,,l. plt'\"d!<ica u toj situaciji ne ruo/c da ra"una nina kakvo cleti-
ni,an<J i ud'<l d:1 '"ilavi r:!liil:Jtirn impkmcnla-:ij<iilla ,id>clliU izhorajednc
od v!\..: ;nogttc'nvti. 1 '; -;peciiibciju P" prav1iu :.,e prila/c i skup testova
potthnt ktJjih '.c mol:e 1111 rditi da !i je udrcdcna imp!em,_nr,tcija J:tista uskladena sa
spcci!ikaclJ''m.
Ja:.;n jc V9 .'il'.\RC ima dclKlllllC:Jt kcJji dctini:<c nivu lSA: da bi svi
S!'.\R( l'iptwi verZIJC ') i1vr.\av:.tlt isti soiher. Ne puquji l\'anil'ni delinicioni doku-
mcnt Dl 111\'t> f.S;'\. Pcntiuma -L zato ;l" Intel nt: !"elida .Jrugim proizvodaC:ima
5.1 l'regled nivoa lSA
333
pravljenjc takvih C:ipova. lntel je ina sudu pokusao da zabrani drugirn proizvodacima
kloniranje njegovih cipova, mada je izgubio proces.
Drugo vazno svojstvo nivoa lSAjeste cia on veCini racunara obezbeduje barern dva
radna rdima. Rezim rada jczgra (engl. kernel mode) namenjen jc izvrsavanju open-
tivnog sistema i u njcmu sc mogu izvrsavati sve instnrkcije. Korisnicki re:lim rada
(engl. user mode) namcnjen je izvrsavanju aplikacija i u njemu nije clozvoljeno
vanje izvcsnih osetljivih instrukcija (kao sto je direktno manipulisanje keom). U ovom
puglavlju uglavnom c<:mo se baviti instrukcijama i svojstvima korisnickog rdima rada.
5.1.2 Mcmor\jski modeli
Na svim raC:unarima m<:morijaje podeljena u cclije sa uzastopnim adresama. Tr:-
nutno je uobicajena ve!icina ceJijc 8 bitova, ali Sll U proslosti ce!ije
od jednog, pa do 60 bitova (pogledajtc sliku 2-1 0). Osmobitna celija se znve
(cngl./;yte). Bajt ima osam bitnva zato sto su ASCII znakovi du7jne 7 hitova. pajedm
ASCH znak i bit parnosti mogu cia sc smeste u jedan bajt. Ako u buducnosti industri-
jom zavlada UNICODE, tada cc raC:unari mozda raditi sa 16-bitnim uzastopno nume-
risanim jcdinicama memorije. Na kraju krajeva, 2
4
je izvcsno lepsi hroj od 23. pos:o
je 4 stepen broja 2, a 3 nije.
Bajtovi se grupisu u cetvorobajtne (32-bitne) ili osmobajtne (64-hitne) reC:i p)-
mocu instrukcija koj<: manipulisu citavim reC:ima. U mnogim arhitekturama nenphoJ-
no je da reci budu poravnate na svojim prirodnim granicama. tako da. na primer.
C:etvorobajtna rec moze da poC:nc na aclrcsama 0. 4, 8 itd .. aline ina adrcsi l ili 2. S!ic-
no tome. osmohajtna rec mozc: da poC:ne na aclresama 0. 8 iii 16. aline ina adrc'iama
4 ili 6. Poravnavanje osmobajtnih reci prikazano je na sl ici S-2.
8 bajtova
15. 14!13 12; 11 10 9
-
(a)
Adresa
----- --8 bajtova


I 19 18 ) 11 16
Adresa
24
16
24
16
8 15 ! 14 ' 13 12 I
-
OsmobaJtna rec
poravnata na adresi 8

'
"
ibl
Neporavnata osmobajtra
rec na adresi 12
Slika 5-2. rcc u memoriji . .littlc-endian'". (a) nata. th 1 Nepuravrwta. Na neki"1
racunarimaje neophodno da reci u mcmoriji hudu pnravnatc.
Poravnavanje je l'csto potrebno zato stu memorija tako radi Na primtr.
Pentium 4, koji u J<::dnum trcnutku prcuzima 8 bajtuva iz mcrnorije. koristi 36-hitne 1-
ziC:ke adrese. ali ima samo 33 adresna bita (s!ika 3-44). Na taj naC:in Pcntium4. i kada
bi hteu, nc bi se mogao ohratiti neporavnatoj memorijskoj reci zato .<tone moze da iL-
ricito zada najmanje znaC:ajna hita adrese. Oni su uvck nule. pa sui sve memorijske
adrese umnosci R bajtova.
r
]'
Poglavljc 5: Nivo arhitekture skupa instrukcija
Ovaj zahtev o poravnatosti ponekad izaziva probleme. Na Pentiumu 4, ISA pro-
<>ramima dozvoljava se da se obracaju recima koje pocinju na bilo kojoj adresi zbog
kompatibilnosti sa starijim verzijama sve do procesora 8088. koji je imao jednobajtnu
magistralu podataka (i, naravno, nije imao ogranicenja u pogledu poravnavanja memo-
rijskih adresa na granici od R bajtova). Kada program na Pentiumu4 cita cetvorobajtnu
rec na adresi 7, hardver mora da pristupi memoriji da hi preuzeo bajtove od 0 do 7, a
zatim ponovo da bi preuz.eo bajtove od R do 15. Posle toga procesor mora da uZine
trazena 4 bajta iz 16 bajtova ucitanih iz memorije ida ih sklopi na pravi nacin kako bi
dobio cetvorobajtnu rec.
Za mogucnost citanja reci s bilo koje adrese potrebna jc dodatna logika na cipu,
zbog cega on postaje veci i skuplji. Projektanti bi zeleli da sc toga oslobode pa zah-
tevaju da se svi programi obracaju poravnatim recima u memoriji. Zato nastaje pro-
blem. Kad god inzenjeri upitaju ,Koga jos zanimaju prastari prograrni za procesore
80R8 koji pogresno pristupaju oni iz marketinga imaju sprernan odgovor:
.. Nase kupce".
Racunari po pravilu imaju jedinstven linearan adrcsni proslor na nivoulSA, koji se
proteze od adrese 0 do nckog maksimuma. (cesto 2
12
bajtova iii 2
4
bajtova). Medu-
tim. mali broj racunara ima ;.ascbne adresne prostore za instrukcije i podatke, pa se
preuzimanje instrukcije sa adrese 8 ohavlja u jednom adresnom prostoru, a preuzi-
manje pmlataka sa adrese 8 u drugom. Ova sema je slozenija od jedinstvenog adresnog
pmstora, ali ona ima dve prednosti. Prvo, tako je moguce imati 2
32
bajtova programa
i 232 hajtova podataka. a da adrese i dalje ostanu 32-bitnc. Drugo, posto svako upisi-
vanje autornatski ide u prostor za podatke, onemogucujc se slucajno brisanje delova
program a. sto je jedan od izvora prugramskih gre:iaka.
]maJle na umu da elva adrcsna prostora -- jcdan za instrukcije i drugi za podatke-
nisu isto sto i pmlcljcni kd prvog nivoa. U prvom slucaju. ukupan broj adresa se
udvostrucava i citanjc s bilo kojc adrese dajc drugaciji rezultat. zavisno od toga da li
sc C:itaju podaci ili instrukcije. U podeljcnom kesu adresni proslor je i dalje jedin-
stvcn, samo razliciti kdcvi smestaju podatkc u njegovc razlicite delove.
Drugi aspekt rncmorijskog modela na nivou !SA vise je semanticke prirode. Sa-
svim jc lugicno occkivati da cete instrukcijorn LOAD koja se nalazi iza instrukcije
STORE na istoj adresi, ucitati upravo smdtenu vrednost. Mec1utim. kao sto smo videli
u poglavlju 4. u mnogim semama mikminslmkcije se izvrsavaju preko reda. Otuda
pmlaJc ,;a,;vim rcalnu da sc memorija nece ponasali na occkivani naCin. Taj problem
se jos vise zaostrava kod rnultiprocesora. gde svaki od vise prucesora saljc tok (moz-
da preuredenih) zabteva za citanje i upisivanjc islOJ deljenoj memoriji.
Projektanti sistema mugu da prislupe ovum problcmu na vise nacina. U jednom
grunicnom slucaju. svi memorijski zahtevi mugu se staviti u niz, tako da :-.e svaki
mora zavrsiti pre nego sto se izda sledcci zahrev. Takva strategija degradira perfor-
rnanse, ali je najcistija u scmantickum smislu (sve operacije o,e izvrsavaju striktnim
program,;kim redosledom).
U drugom slucaju nc nude se nikakve garancije. Da bi mcmoriju ,doveo u red",
program mora da i7.vrsi instrukciju SYNC koja nc dtnvoljava izdavanje nijedne nove
instrukcijc za rad s memorijom dok se nc zavrse sve prethodno zapocete memorijske
5.1 Pregled nivoa lSA
335
operacije. Ovakav pristup zadaje prevodiocima veliki posao jer moraju dctaljno da ra-
zumeju funkcionisanje rnikroarhitekture, ali, s druge strane, omogucava inzenjerima
hardvera da maksimalno slobodno optimizuju koriscenje memorije.
Postoje i mcmorijski modeli izmedu ova dva granicna slucaja, u kojima hardver
automatski blokira izvesna pristupanja memoriji (npr. ona sa zavisnostima tipa RAW
ili WAR), aline i druga. Iako sve ove osobenosti, izazvane vidljivoscu mikroarhitektu-
re na nivou !SA, mogu da stvore mnogo muke (harem autorirna programskih prevodi-
laca i programerima na asemblerskomjeziku). one sui vrlo uobicajene. Takav trendje
prouzrokovan implementacijama mikroarhitckture koje obuhvataju prekoredno izvrsa-
vanje mikroinstrukcija, opseznu paralelnu obradu, kes u vise nivoa itd. Kasnije cemo u
ovorn poglavlju imati prilike da vidimo jos primera ovih neprirodnih efekata.
5.1.3 Registri
Svi racunari imaju nekoliko registara koji su dostupni na nivou ISA. Oni upravlja-
ju izvrsavanjern programa, cuvaju privremene rezultate i rade jos mnogo toga. Regi-
stri koji su vidljivi na nivoumikroarhitekture (kao sto su TOS i MARna slici 4-1), nisu
vidljivi na nivou !SA. Medutim, njih nekoliko. kao sto su programski brojac i pokazi-
vac steka, dostupni su na oba nivoa. S druge strane. registri koji se vide na nivou ISA
uvek su vidljivi ina nivou rnikroarhitekture jer su tamo i irnplementirani.
Registri nivoa ISA grubo se mogu podeliti u dve kategorije: specijalni i opsti re-
gistri. U registre specijalne namene spadaju npr. programski brojac i pokazivac steka.
kao i drugi registri specificnih funkcija. Nasuprot njima, registri opste namene su tu
da cuvaju glavne lokalne promenljive i medurezullate izracunavanja. G!avna im je
funkcija da obezbede brz prist up cesto koriscenim podacima (tako sto se nc mora pri-
slupati memoriji). RISC racunari, sa svojim brzim procesorima i (relativno) sporom
memorijom. po pravilu imaJU najmanje 32 registra opste namene. a sadasnji trend jc
da ih procesori imaju i vise.
Na nekim racunarima, registri opste namcnc su potpuno simetricni i medusobno
zamenjivi. Ako su svi registri medusobno ekvivalentni, prevodilac moze da upotrebi
registrator R1 za cuvanjc privremenih rezultata. ali za tu svrhu isto tako moze cia upot-
rebi i registar R25. Nije vazno koji se registar bira.
Na drugim racunarima neki od registara opstc namene ipak mogu da budu u mlre-
dcnoj meri specijalizovani. Na primer, Pentium 4 ima registar EDX koji moze da se
koristi kao regis tar opsle namenc, ali sluzi ida prihvali polovinu proizvoda u operaciji
mnozenja i polovinu cleljenika u operaciji deljenja.
Cak i kada su registri opstc namene medusobno potpuno zamenjivi. operativni si-
stem iii prcvodioci cesto prihvataju konvencije o njihovoj nameni. Na primer. neki re-
gistri mogu cuvati parametre za pozvane procedure, a drugi se mogu koristiti kao
privrcmeni registri. Ako prevodilac smesti u registar R1 neku vaznu lokalnu promen-
ljivu i zatim pozove proceduru iz biblioteke koja misli da je R1 privremeni rcgistar
koji joj je na raspolaganju, onda po zavrsctku procedure registar R1 moze da sadrzi
nedefinisanu vrednost. Ukoliko u sistemu postoje konvencije o upotrebi registara.
prevodiocima i programerima se savetuje da ih se pridrzavaju kako bi izhcgli ncvolje.
....
336
PoglaYijc 5: Nivo arhitckture skupa instrukdja
Osim registara na nivou ISA koji su dostupni korisnickim programima, uvek
postoji i veliki broj registara opste namene koji se mogu koristiti samo u re:i:imu rada
jezgra. Ti registri upravljaju razlicitim mernorijom. ulazno-izlaznim urcda-
jima i drugim hardverskim komponentama racunara. Njih iskljucivo koristi operativ-
ni sistem, tako da prevodioci i kori,nici ne moraju znati ni da postoje.
Jedan upravljacki registar koji irna pomalo .. hibridnu" namenu jeste registar sa
indikatorima (engl.j/ags register) iii PSW (Program Status Word). On sadr:i:i r:v-
ne bitove potrebne procesoru. Najvalniji bitovi u njemu su kodovi uslova (engl. con-
dition codes). Oni sc postavljaju u svakom ciklusu ALL.i jedinice i odra:i:avaju statw;
rezultata poslednje opcracije. Uobicajeni bitovi koda uslova su:
N- postavlja se kadaje rezultat negativan.
Z- postavlja se kadaje rezultat nula (Zero!.
V- postavlja se kada rezultat izazove prekoracenje (oVerflow).
C- postavlja se kada ru.ultat izazuve prt:rlllS (Carry) izvan krajnjeg lcvog bita.
A- pw.tavlja se kada postoji prenos iz hita 3 (Auxiliary carTy).
P- postavlja \e kada rezultat ima parmr paritnost (Parity).
Kudovi uslova su va:i:ni za in'->trukcijc koje obavljaju porcdenjc i instrukcijc za us-
lu\ no grananjc program a ( npr. za incmukcije nog skoka). Na primer. instrukcija
CrviP odu1.irna jedan operand od dnrgog i postavlja kfld prc>ma dobi-
jcnoj razl ici. Aku su operandi jcdnaki. raziika jc nul a i on a c.'c postavit i bit L u rcg:istru
PSW. i\;aknadna instrukcija BEO (Branch Equal- ,,koci ako s11 jcclnaki) provcrava bit
L i obavlja ,kok ak<> jc hit po,;tavljcn.
R.eg:istar PSW nc sadr:ii -.amo kuduve usl"va- njcg<l\' pun sadr7.aj ZCJ\ isi od vrste
ncunara. C nj,:mu 'L' r:alazc 1 bitl1vi l-.oji odrcduju rcL.im rad:1 (kclrisnicki iii
JCL_gra). tzv. bit za praC:cnjc t koji se koristi pri otkrivanjtr i ntklanjanju pmgramskih
1 hitL>Vi koji odrcduju nivo prioritela tu jest st:rtu' mug:ucnosti
it:vr\av.mja sistcmskilr preki,Lt. SadrLtj rcgistr:t PSW c:c-.Lu se mo,ic pruCiuti u kuri-
qrid.um rt:iimu rada, ali sc u nt:Ltnd njeguvih pulja vrLdnust muze upi:;ivati samu u
n: ,;'imu rada jo.g:ra ( npr. hit koj i udrcduje rcLm rada J.
5.1.4
l\ivo IS..\, najvi;e: njcgov skup masinsf.ih instrukcija. One upravljaju
radcJill racunara. l>VOlll ni,ou uvck posrojc in.strukcijc LOAD i STORE u nd:om ob-
liku za premdtanjc pc>lL!laka i;medu mcmorije i rc!!'isnu. i instruh'ija MOVE za ko-
piranje pudataka iL jcJrm;2 u dnt;!i. lj\ck pclslojc i ctritmctickc i:;:ilrukcijc.
,, >gic'ke instrukcije i instrukcije za rodat:tka i gr"nanjc pmgrama Ll zavi-
sno-;ti ud rc'luitata. Vee' sn'u c;c upuznali s nekuliku !S.\ irbtrukc'ip sliku
+-II). au mom puglavlju ccnm taj ,;pisak.
r
!;

i
5.1 Pregled nivoa ISA
337
5.1.5 Pregled nivoa ISA procesora Pentium 4
U ovom poglavlju govoricemo o tri veoma razlicita skupa lSA instrukcija: o ln-
telovom skupu IA-32 koji je ugrauen u Pentium 4, o SPARC arhitekturi verzije 9 koja
je ugradena u procesorc UltraSPARC i o nivou lSA procesora 8051. Nije nam cilj Ja
iscrpno objasnimo bilo koji od ova tri skupa instrukcija, vee vise da istaknemo vazne
aspekte nivoa ISA ida pokazemo kako se ovi aspekti mogu rnenjati od jedne Jo druge
arhitekture. Pocnimo s Pentiumom 4.
Pentium 4 je evoluirao u ono sto jeste preko brojnih generacija, a njegovo poreklo
se rnoze pratiti unazad sve do prvih mikroprocesora, kao sto smo vee objasnili u
prvom poglavlju. Osnovni nivo LSA ne samo da i daljc potpuno podrzava izvrsavanje
prugrama pisanih za procesore R086 i 8088 (koji su imali isti skup !SA instrukcija).
vee nosi i tragove koje jc ustaviu 8-hitni procesor 8080, popularan scdarndcsetih go-
d ina. Pmcesor 8080 je napravljen uz strogo postovanje kompatibilnosti s jos stariji1r
procesorom 8om; koji je pak bio zasnovan na moclelu 4004, 4-bitnum cipu korisce-
nom jos dok su dinosaurusi hodali zemljom.
Sa stanovista softvera. 808() i 8088 su pravi 16-bitni procesori (rnada 8088 i1m
8-bitnu rnagistralu poclataka). Njihov naslednik, procesor 80286, bio je takoue 16-bit-
ni. Glavna prednost rnu je bila veci adresni prostor, iako je tu preclnost iskoriscavalo
malo programa zato sto se adresni prostor sastojao od 16.38-1- del a od po 64 KB, ume-
sto kontinualne memorije od 2-'
0
bajtova.
Cip 80386 je bio prvi 32-bitni procesor u Intelovoj porodici procesora. Svi sledec't
procesori (80486, Pentium, Pentium Pro, Pentium lf. Pentium IlL Pentium 4, Ccle-
ron, XeLlll. Pentium M. Centrino itd.) imaju sustinski istu 32-bitnu arhitekturu kao I
procesor 80386. nazvanu IA-32. pa cerno o njoj uvdc govoriti. Jedina velika izmena
arhitekturc od procesora 803811 hila je uvouenje skupova instrukcija MMX. SSE i
SSE2 u kasnijim verzijama Pentiuma. Te instrukcije su visokospecijalizovane i na-
mcnjene su poboljsanju performansi multimedijskih aplikacija.
Pentium 4 radi u tri rezima. od kojih u dva raJi kao procesor 8088. U realnom
rdimu rada iskljucuju se sve rnoguc'nosti koje su dodavane posle proccsora 8088 i
Pentium -1- 'e ponasa kao taj procesor. Ako neki program uradi nesto nepredvidcno,
ceo racunar t'e se blnkirati. Daje Intel projcktovao ljudska bica. stavio bi un.Jih hit ko-
jirn bi ona mogla prevesti u rc:i:im simpanze (veci deo mozga cleaktiviran. bez rno-
guL'nosti govora. spavanje na drvecu. is bran a uglavnom bananama itd. ).
Jedan korak dalje jc virtuelni rezim rada procesora SOl-16, koji omogucava izvrsa-
vanje programa za stari procesor 8088 u zasticenom rdimu. U ovom rezirnu racuna-
rom upravlp stvarni (postoJeL'i) operativni sistem. KaJa izvrsava neki stari 8088
program, operativni sistem pravi spcciplno izolovano okru:i:enje koje odguvara proce-
soru 8088; ak.l program prestane da radi, to nece iza;.ivati blokiranjc cclog racunara,
vee se ;,arno o tome saijc poruka opcrativnom Ukoliko kurisnik Windowsa ot-
vuri prowr MS-DOS. program koji sc u njcmu pokrene izvrsava se u virtuelnorn rezi-
mu procesora cla bi sc Window' zastitio od ncpredvidenog ponasanja MS-DOS
program a.

r

i''
!'i'


,.


.
>
.
'
'
.
338
Poglavljc 5: Nivo arhitekture skupa instrukcija
Trcci i poslcdnji rciim jc zasticeni rezim rada u kome se Pentium 4 ponasa kao
Pentium 4, a ne kao vrlo skup procesor 8088. Postoje cetiri nivoa privilegija koje
odrcduju bitovi u rcgistru PSW Nivo 0 odgovara rezimu jczgra na drugim racunarima
i u njemu je omogucen potpun pristup resursima. Njcga koristi opcrativni sistem.
Nivo 3 je namenjen korisnickim programima. U njemu je blokiran pristup izvesnim
osetljivim instrukcijama i upravljackim registrima da neki nelegalan progam ne bi
srusio racunar. Ni voi 1 i 2 se retko koriste.
Pentium 4 ima ogroman adrcsni prostor s memorijom podeljcnom na 16.384 deJa,
i sa adresama od 0 do 2
32
- I. Medutim, operativni sistemi (ukljucujuCi UNIX i sve
verzijc Windowsa) po pravilu podrzavaju samo jcJan segment, pa mnoge aplikacije
cfektivno vide lincaran adresni pros tor oJ

bajtova, pri cemu je ponekad jcdan nje-


gov dco vee zauzet opcrativnim sistemom. Svaki bajt ovog adresnog prostora ima
sopstvenu aJresu, a reci su Jugacke 32 bita. Reci se smcstaju u formatu .,little endian"
(najrnanje znacajan bajt ima najni:!.u adresu).
Registri Pentiuma 4 prikazani su na slici 5-3. Prva cctiri (EAX, EBX. ECX i EDX)
32-bitni su manjc-vise opste namene, iako svaki ima odrcdcne poscbnosti.
EAX jc glavni aritmeticki registar; EBX je zgodan za cuvanje pokazivaca ( na adrese u
memoriji); ECX igra glavnu ulogu u programskim petljama; EDX jc neophoJan za
rnnozcnje i dcljenje, gcle zajeJno s rcgistrom EAX cuva 64-bitne proizvocle i Jcljenike.
Svaki od ovih registara sadr?.i 16-bitni rcgistar u svojih 16 najmanjc znacajnih bitova
i 8-bitni registar u svojih 8 najmanje znacajnih bitova. Ti registri lako rade sa sesnac-
stohitnim i osmobitnim velicinama. Procesori 8088 i 80286 imali su samo osmobitnc
i sesnaestobitne rcgistre. Tridesetdvohitni rcgistri uvcdeni sus proccsorom 80386, za-
jedno s pref1ksom E, sto je skraceno oJ ExtenJed- produzen.
Slecleea tri rcgistra su i dalje opste namenc, ali is vise specitlcnosti. Rcgistri ESI i
EDI u nacelu cuvaju pokazivace na aJresc u memoriji. narocito za instrukcije pomocu
kojih se hardverski manipulise znakovnim nizovima. pri cemu ESI ukazuje na izvorisni
ni;:. a EDI na oJredisni. Registar EBP takode je namcnjen cuvanju pokazivaca. On se
najcdce koristi za ukazivanje na pocctak tekuceg okvira lokalnih promenljivih na ste-
ku. slicno registru LV u lJVM arhitckturi. Kada se registar (kao sto je EBP) koristi za
pokazivanje na pocctak okvira lukalnih promenljivih na steku, love sc pokazivac
okvira (engLfiwne poillter). Na kraju, ESP je pokazivac vrha steka.
Sledecu grupu rcgistara. od CS do GS, cine segmcntni registri. Oni u izvesnom
smislu preclstavljaju elektronske trilobite- fosile zaostale iz vremena kada je proce-
sur 8088 pokusavao da adrcsira 2
20
bajtova memorije koristeci 16-bitne adrese. Do-
voljno je reci cia se oni mogu slohodno zanemariti oJ trenutka kada se Pentium 4
podesi da koristi jedinstveni linearan 32-bitni adresni prostor. Sledeei registar. EIP, jc-
ste programski brojac (engl. Ertendcd Instruction Pointer). Na kraju dolazimo do re-
gistra EFLAGS. slo je u stvari registar PSW
5.1 Prcgled nivoa ISA
Bitovi ---------- 16 --
---------------------- 8 ------------
A
1
x
------ AH AL
------ B X-----
BH I BL
- c? -
CH CL
f.-.
D X
-
DH
I
DL
Siika S-3. Osnovni rcgistri proccsora Pentium-+.
5.1.6 Pregled nivoa ISA procesora UltraSPARC III
EAX
EBX
ECX
EDX
ESI
ED/
EBP
ESP
cs
ss
OS
ES
FS
GS
EIP
EFLAGS
Arhitekturu SPARC jc 1987. godinc uvela korporacija S"un Microsystcms. To je
hila prva komcrcijalna arhitektura kojajc nosila atribut RJSC Uglavnom se oslanjala
na istrazivanja obavljcna osarnclcsctih godina na Bcrkliju (Patterson. 19X5; Patterson
i Sequin. 1932). Prvohitni SPARC jc imao 32-hitnu arhitekturu. ali je liltraSPARC Ill
64-hitni proccsor koji se zasniva na arhitekturi verzije ') i u ovom poglavlju posvcti-
cemo se njemu. Da hismo sc drzali tcnninulogije koju koristimo u celoj knjizi. ovJe
cemo gnvoriti o proccsoru l!ltraSPARC Ill, iako su na nivou lSA svi proccsori ll-
traSPARC iclcnticni.
Struktura memorije proce;;ora UltraSPARC III jasna je i jcdnostavna: rnemorija
kuja oe moze u ohlikujc ncprckinutog niza duzine 2
64
bajtova. Onaje.
lost. toliko velika ( 18.446.744.073.709.551.616 bajtova). cia nijedan postojeci racumr

l

340
Poglavlje 5: Nivo arhitekturc skupa instrukcija
ne moze da je implementira. Dana;nje implementacije mogu da pristupc adresnom
prostoru ogranicene vdiCine (2
44
bajtova na UltraSPARC-u Ill), ali ce sc to buducim
racunarima pubolj.<ati. Podrazumevani rcdosled hajtovaje ,big endian", ali se rcdosled
moze promcniti u ,little endian" ukoliko se postavi odgovarajuCi bit u registru PSW.
To sto nivo !SA ima veci adresni prostor nego stu reaiizacije mogu da iskoriste
vazno je jer ce buduce implementacije iz.vcsno morati da uvecaju kolicinu memorije
kojoj procesor mo,ic da pristupa. Jcdan ocl najozbiljnijih problema uspesnih arhitck-
tura bio jc taj sto jc njihov nivo ISA ogranicavao kolicinu memorije koja se rnoze
adresirati. Jed ina greska kojoj u racunarstvu ncrna leka jcste necluvoijno bitova .. kd-
noga dana cc vas vasi unuci pitati kako su racunari uopstc ncsto mogli da rade sa
32-bitnim adresana i sa samo -1-GB realm: mcmorije. kada je samo za pokretanjc pro-
scene igricc potrcbno 8GB.
SPARC-ov nivo !SA je jasan, premda je organizacija regis tara pumalo iskompli-
kovana da bi pm,ivi proccdurarna bili etikasniji. Iskustvo pokazujc da se nekakvo
posebno organizovanje registara ne isplati, ali sc to nikako ne moze izhec'i zbog per-
mancntnog 1.ahtcva da se cuva kompatibi lnost sa starijim verzijama.
UltraSPARC Ill ima dve grupe rcgistara: 32 M-hitna registra opste namene i 32 re-
gistra za rad s brojevima u forrnatu pokretnog Lareza. Registri opste namene se ozna-
cavaju simlmlima od RO du R31. mada se u odrcL!cnim kontekstima koriste i druga
imena. Alkrnativna imena i funkeijc regi.'>tara prikaLani su na slici 5-4.
Registar ; Alternativno ime ! Funkcija
RO GO
, R1-R7 G1-G7
. RB-R 13 00-05
: R14 SP
R15 :m
R 16-R23 LO-L 7
R24-R29 10-15
'R30 FP
Hardverski povezan za 0. Njegov sadrzaj se zanemaruje.
Cuva globalne promenljive.
''-
Sadrzi parametre za proceduru koja se poziva .
i - ,,.. ., .
1
Pokazivac vrha steka.
: Privremeni registar.
- + -- ---- -----
Cuva lokalne promenljive za tekucu proceduru.
! w- --- ----- --- -----
Cuva parametre.
Pokazivac na osnovu tekuceg okvira lokalnih promenljivih
! R31 17
1
Cuva povratnu adresu za proceduru koja je u toku.
'
Slika S-4. Rc:gistri op;lc namcnc rroc:c:sora lJilraSPARC IlL
Svi op:iti registri su sirine 64 bita i. osim registra RO knji sadrzi vreclnost 0. njihov
sadrzaj sc muz.e citati iii se u njih muguupisivati vrednosti razlicitim in.-,trukcijama La
citanje i podataka. Njihuva namena. prikazana na slici 5-4. dciimicno je
uslovljena konvencijom. ali i nacinom na koji hardver tretira uve registre. U principu.
nije dobro od namena navedenih u gornjoj tabcli. osim aku ste vi
licnu pisali publikaciju .. Male tajnc procesora SPARC' i stvarno znate sta radite. Pre-
vodilac ili programer moraju biti sigurni dace program pri,tupati pravim registrima
;
1


\\

t
5.1 Prcglcd nivoa ISA
341
i da cc ih ispravno koristiti. Na primer, u registre opste namene lako se mogu smest1ti
brojevi u formatu pokretnog zareza is njima zatim obaviti celobrojno sahiranje. an:-
zultat ce, naravno, biti hudalastina, ali hudalastina koju ce proccsor generisati kao i
sve drugo sto muse naredi.
Globalne promenljive sadrze konstante, kao i promcnljive i pokazivace potrebne
svim procedurama, mada sc, ako je potrebno, mogu i smdtati i ponovo ucitavati na
ulazu u proceduru. odnosno na izlasku iz nje. Registri lx i Ox koristc se za prosledi-
vanje paramctara procedurarna da bi se izbeglo pristupanje memoriji. Kasnije cemo
objasniti kako se to radi.
Tri namenska registra koriste se za specijalne svrhe. Registri FP i SP omeduju te-
kuci okvir (lokalnih prornenljivih). Prvi ukawje na pocetak tekuceg okvira i kmisti -;e
za adresiranje lokalnih promenljivih, na isti nacin kao i regis tar LV sa slike 4-10. Drugi
pokazuje tekuci vrh steka i menja vrednost svaki put kada se rec stavi na stek iii skine
s njega. Za razliku ocl njega, registar FP menja vrednost sanm pri ulasku u proceduru
i povratku iz nje. Treci registar specijalne namene je R31. On pri puzivanju procedura
cuva njihovu povratnu adresu.
UltraSPARC III u stvari ima vise od 32 registra opste namene, ali su u svakum tre-
nutku pmgramu vidijiva samo 32 registra. Ova osobina. puznata kau rcgistarski
prozor, ehkasnaje podrska pozivanju procedura. Jlustrovanaje na slici 5-S. Osnov1a
idejaje da se simulira stek, ali uzupotrehu registara. To ;naci da po<;toji vise skupova
registara. has kao i vise okvira za lokalnc promenljive na steku. U svak,)m trLnutku
vide se tacno 32 regisrra opstc namcnc. Regislar CWP (Current Window l'uintcr- pD-
kazivac tekuceg pmzora) vodi racuna o tnrne koji sc 'ikup rcgistara trenutnn koristt.
Instrukcija za puzivanje prucedure :,kri va stari skup regtstma i obubeL1uje pro.:c-
duri nov skup regis tara tako sto smanjuje \ rednost u rcgistru CWP. !Ylec1utim. neki tc-
gistri sc prenose i; procedure puLivaoca u pozvanu proceduru i tak<l sc oh,lhedt.jc
elikasnn proslcdivanje paramctara iLineclu proccdura. Ova tehnib l'unkcionise tako
stu nekim rcgistrima menja imena: poslc ro;ivanja pnh;edure. regi'.tri s remltatin:<t,
( od RS do R 4 51 jus u vek su vidlj i \i. ali .su to ul:t..:ni registri ( od R24 do R31 1. Osam
globalnih registara '.l' ne rnenjaju- oni uve!.. predstaviiaju isti skup registara.
Za ra1.liku "r! memorije. k1 >Ja jc n:titgkd hcskonal':1a !harem SL' takn cini '>tekll '
kada se pre\ ise pn,cedura ugne;.dc jcdna u Jrugu, racunaru mu;'c ,b punestane
starskth proztlLl. l! takvnj situac:iji .;c skup regtstara kopira u metnuriju Ja hi
se mogan kmistiti kau nedost:tjuci skup. Vali i ubrnut" - posk iL vt;e tlla-
stupnih pwccdura. i,ti skup rcgistara mozda :.;e mora ucitati iz mcmorije. Sve u
svcmu. kan stu smn vee rekli. Ll'ng uvc slo7enusti vcrovatno trcba nbaviti vt;e po,ia
nego sto vredi. Onaje od pDntoc'i sant" :tku procedure ni.;u dulwko ugnd:cknc j.:d:w
u drugu.
UltLtSPARC lll ima i .'"::'. La s l,r,Jjevima u fonnatu ;okrettwg t:m:'/a.
koji mogu da sadr/.e kako .l2-bitnc: v rcdm,st it nhicuc tal'nusti 1 tak.<l i (J4hilne \ redn,l-
sti (dVihlruk.: tac::osti). Takolic:. par rcgi:a:tra mule se iskorbllfi i /a cuvaiJ]e
128-hitnih vrcdnust i ( cct vorosuuk::- tacno:;t i ).
t
RS
R13
R14
R15
R16
R23
R24
R29
R30
R31
I '""'""''"" ''""
c
I/
00 Odlazni parametar 0
OS Odlazni parametar 5 Pr
SP Pokazivac vrha steka
07 Privremeni
LO Lokalni 0

L7 Lokalni 7
10 Oolazrii parametar 0
l
15 Dolazni parametar 5
FP Pokazivac okvira
17 Povratna adresa
(a)
Poglavljc 5: Nivo arhitckture skupa instrukcija
ROI GO
R1 G1
R71 G7
WP =7
R
R1
R1
R1
R1
R2
R2
klapanje R29
R3
R3
SadrzaJ
egistra CWP
pri pollvanju
procedura
smanJuje se
ovom smeru
)
I
00
05
SP
07
LO
L7
10
15
FP
17
0
Globalni 1
Globalni 7
Pokazivac vrha steka
Privremeni
Lokalni 0
Lokalni 7
Dolazni parametar 0
Dolazni parametar 5
Pokazivac okvira
Povratna adresa
Deo prethodnog prozora
Deo prethodnog prozora
(b)
CWP =6
Stika 5-5. Rad rcgistarskih prozora procesora UltraSPARC Ill.
Arhitcktura procesora UltraSPARC III je arhitcktura tipa ucitaj-smcsti (engL
load/store urclzitt'cture). Tb znaci da mcmoriji direktno pristupaju samo operacije
LOAD i STORE, koje prcmcstaju podatke izmcdu registara i memorije. Svi operandi za
aritmetii.'kc i logii.'ke instrukcije moraju doCi iz regis tara (nikako iz memorije) iii ih
mora nositi sama instrukcija, a svi rezultati moraju ici u registre (nikako u rnemoriju).
5.1.7 Pregled nivoa ISA procesora 8051
Na; trcci primer jc proccsor X05 I. Za razliku od Pentiurna 4 (koji sc prvenstvcno
koristi u stonim racunarima i u farmarna servcra), i UltraSPARC-a II! (koji se prven-
stveno koristi u vclikim serverskim konfiguracijama, naroCito u serverima s vise
I
!
5.1 Pregled nivoa ISA 343
procesora), procesor 805 l koristi se u ugrauenim sistemima kao sto su ulicno osve-
tljenje i radios budilnikom. u kojima upravlja urectajima, signalnim lampicama i dru-
gim delovima korisnickog intcrfejsa. Njegova istorijaje jednostavna i bez izncnactenja.
Kadaje Intel 1974. godine predstavio procesor 8080. postigao je munjevit uspeh. Proi-
zvoclaci svih vrsta ugradili su ga u svoje proizvode i tada se ohratili lntelu sa zahtevom
da na cip osim procesora smcsti i memoriju i kontrolcre ulazno-izlaznih urectaja kako
bi i.'ip bio jcftiniji. Intel je na zahtev odgovorio tako sto jc napravio procesor 8048, iz
kogaje ubrzo nastao procesor 805 I. Uprkos svojim godinama, vrednim pustovanja (iii
mozda upravo zbog njih) on se jos uvek masovno koristi u ugradenim sistcmima gdc je
niska cena najvazniji cinilac. U ovom odcljku ukratko cerno s tehnickog aspekta prcd-
staviti procesor 805 I i njegove IJ!iskc roctakc.
Proccsor 805 I imajcdan jedini rcfim rada i nema nikakav zastitni hardver, posto
nikada ne izvrsava vise programa kojc bi rnogao imati neki mo:l.da zlonarnemi kori-
snik. Njegov memorijski model izuzetno je jednostavan. Postoji prostor ve-
licine 64 KB za programe i drugi adresni prostor iste velicine za podatke. Adresni
prostori za programe i za podatkc raLdvojcni su da bi se programski deo smestio u
ROM mcmoriju, a cleo za podatkc u RAM.
Mcmorija sc mo?"c implemcntirati na vise nai.'ina. U najjednostavnijem rdcnju
postoji ROM memorija od 4 KB za program i RAM memorija od 128 bajtova za po-
datkc. Obc memorije su na cipu. Za male aplikacije, ova kolicina mcmorije cesto jt:
dovoljna, a imati svu mcmoriju na procesorskorn cipu, velika je Proccscr
8052 ima na cipu dvaput vise mcrnorije: 8 KB u ROl\1 i 256 bajtova u RAM memorijt.
Kada sc koristi ovakav memorijski model, program se fabricki ugrauuje u ROM me-
moriju i korisnik ga nikada ne mcnja.
Druga krajnost je sistem X05 l sa spoljnom programskom memorijom od 64 KB u
ROM-u ili u EPROM memoriji i dodatnih 6-J. KB RAM memorije za podatke. Mo-
guce je imati i jedinstvenu spoljasnju RA:VI mcmoriju od 64 KB koja sadrzi i program
i pmlatke.
Procesor X05 I podrzava i srcdnje rcscnje: donjih 4 KB programske memorije i 128
hajtova memorije La podath.c nalazi sc na cipLL a ustatak izvan cipa, Pomocu napona
koji sc duvodi na odredene nolice cipa hint se jedan od navedenih memorijskih mode !a.
Procesor X051 radi s rcgistrima na nt:uobicajen nacin. Yecina programa za njega
pi sana je kao da je rec o procesoru sa osam 8-bitnih rcgistara. To jc prirodan nacin po-
smatranja procesorajer mnoge instrukcije imaju 3-bitnu poljc kojim se zadaju pntrcbni
registri. Registri imaju imcna od RO do R7. Medutim, postoje cctiri skupa ovakvih r-e-
gistara, iako je u svakorn trenutku samo jedan od njih vazcci. Dvobitno polje u rcgistru
PSW odreduje koji se skup registara trenutno koristi. Postoji vise skupova registara c!a
bi sc omogucila vrlo hrza obrada sistcmskih prekida. Kada nastane pre kid, pot program
La njegovu obradu ne mora da snimi sve registre; moLe samo da prebaci programski
tok na drugi skup regis tara. Zbog ovoga, procesor 805 1 muze da obradi vrlo veli ki broj
sistemskih prekida u sekundi, sto je vcoma valno svojstvo proccsora natucnjcnog za
ugradnju u sistcme koji rade u rcalnom vremenu.
Poglavljc 5: Nivo arhitckturc skupa instrukcija
Drugo zanimljivo svojstvo proccsora 8051 jcste to sto se njegovi registri nalaze u
rncmorijskom prostoru. B;ljt 0 prostora za podatke ekvivalentanje registru RO iz skupa
0. Kada neka instrukcija prmneni sadr7.aj rcgistra RO i poslc toga procita bajt 0, on a tamo
nalazi novu vrcdnost registra RO. Slicno tome, hajt l memorije jc registar R1 itd. Me-
morijski bajtovi od 8 do 15 odgovaraju skupu rcgistara 1, i tako redom do bajta 31, koji
predstavlja registar R7 iz skupa 3. Opisana organizacija prikazana jc na slici 5-6( a).
,;
't',
Programska
memorija .
. >,"<';:
-
Pros(or za privremeno
smestanje podataka
4095
127
, .!
Memorija koja se maze adresirati bit po bit
48
----- ----- 32
::::: Banke sapo 4 registra:::::
- - - --- 8 brtova - -
(a)
I c I A [XI RS JD 1221 p I PSW
lEA 1825jE2 IEs /E1JX<fEo [Xo /IE
t&l$S1 E2 I Es I El I x1 JEDH[Xo liP
/o1 I R1 I oo I Ro I EQTl }Eo JTo I TCDN
I Ta1mer 1 I Ta1mer 0 / TMOD
-- - -- -- 8 b1tova --- ----- ---
(b)
Slika 5-6. (a 1 Organizacija mcrnorij<" ugradcnc na cip 805 I. ( h 1 G lavni rcgistri pron:s<wa
Neposrcdno iznad banki sa po cetiri registra. na memorijskim adresama od 32 do
c.f7. nalazi se 16 bajtuva mcmorijc (hitovi od 0 do 127). a svaki sc moze pojedinacno
adrcsirati. Proccsor 8051 ima skup instrukcija za postavljanjc. brisanjc. primcnjivanje
opcracija AND ili OR i tcstiranje specificnih bitova adresiranih brPjem izmcdu 0 i 127.
Tc instrukcije rade s bajtuvima od 32 do 4 7. One Sll korisne jer ugradcni proccsori ce-
sto pomocu promen!Jivih du7.inc jednog bita bcleze ili pnstavljaju status prckidaca. si-
gnalnih lampica i drugih ulamo-izlaznih urcdaja. Ove specijalnc memorijske lokacije
omogucavaju proccsoru 8051 da pristupi takvim promcnljivama bez preuzimanja

i
:)I

{i

'j !
i
'-?:
: I
i
l:
5.1 Prcgled nivoa ISA
345
celih bajtova, njihovog pomeranja i uzimanja potrcbnih bitova iz njih. S obzirom na
svnju velicinu. ovaj procesor izuzetno dobro barata logickim promenljivama.
Osi m pnmenuta cetiri skupa po osam regis tara. pruccsor 805 I ima i mali broj re-
gis tara spccijalne namene. od kojih su najvazniji prikazani na slici 5-f>(b). Registar
PSW, slcva nadesno saddi bit prenosa, dodatni bit prcnosa. broj tekuceg registarskog
skupa. bit prekoracenja i bit parnosti. Svi ovi bitovi. osim hroja tekuceg rcgistarskog
skupa, postavljaju se kao rezultat odredenc aritmdicke opcracije. Srafirana polja nisu
definisana.
Regisiar IE sluzi da pojcdinacno ili skupno omoguCi ili onemoguci sistcmske pre-
kick. Kada jc hit EA nul a, svi prekidi su onemoguceni. Kada se taj bit ubrise, jednom
instrukcijom se oncmogucavaju svi dalji prckidi. Postavljanjem ovog bita. omoguca-
vaju se svi prckicli ciji su pojedinacni hitovi postavljeni. Bituvi E2. E1 i EO ornoguca-
vaju ili onemogucavaju tri tajmerska kanala. Uz tri tajmerska kanala istovrcmcno
mugu raditi tri brojaca, ud kojih svaki posle odrecknog vremcna izaziva prekicl. Rit
ES omogucujc. odnosno onemoguc'uje prekid serijskog kanala. Druga dva hila omo-
gucavaju. udnosno onemogucavaju prckidc iz<vvane spulja. Kada su ukljuccni. spolj-
ni urcdaji koji su povezani s dve nozice proccsnra 8051 rnogu da izazovu prekide. U
suprotnom, ncma spoljnih prekida.
Rcgistar IP odreduje nivo prioritcta z.a svaki prekid. Postoje elva nivoa prioritcta.
nizak i visuk. Ohradu prekida niskog prioritcta koja jl' u toku mo7c zaustaviti prekid
viseg prioriteta. ali ohrnuto nijc moguc'e. Kada se u ovom registru pustavi bit, on od-
govarajuccm prekidu dajc visok prinritet: kad bit nijc postavijen, priori let prckida je
nizak.
Registar TCON upravlja glavnim tajmcrima 0 i 1. Bitovi 01 i 00 po.'lavlj:.0u se
hardvcrski kada tajmcru istckne zadatu vreme. Pomocu bitova R 1 i RO programu se
dozvoljava da ukljucuje i iskljucujc tajmcre. Ostalim bituvima sc rad tajmera vczujc
ili za ivicu signaLt radnog takta ili za visuk nivu signala.
Poslcdnjim registrom. TMOD. odreduje sc re/.im rada svakug od dva tajmcra (osmo-
bitni. trinaestobitni ili scsnaest<lhitni). nacin rada rtajmer ili broja(). i stq:en u 1--umc
hanlverski signali mugu uprav lj<tti tajmcrima. Ost:.di rcgistri ( nisu ptiLvani! upr<tvlja-
ju potrosnjorn strujc i serijsJ...im priUjul:knm.
Svi pomenuti .'ipeLijalni registri i nekolik<l drugth rq::istara. ukljul'ujuc'i akumu-
lator i ulazno-izlazne prikljuckc. smt:Steni su u niL mcmorijskill adresa nd 1 ::;:-;do 255.
Oni .sc mogu adrcsirati kao i me:n!lriJa. slicno registnma ml RO do R7. i'i<t primn. aku-
mulator. rcgistar knji koristi vec'ina arHmetiCkih in:-;trukcija. naLt;i sc na adn:si 2-iO.
U procesoru cija sc rcalna mcmorija nalazi na adresama od l2o do 255. sreci-
jalni rcgistri se nalaze u menwrijsl-..um prostoru. K:.tdct sc: primeni dm::ktn<l adre-;iranjc.
pristupa sc specij;tlnim regi.strim;t. dok se indirektnim ;tdresiranjem mcnuHijc (prcko
pukazivaca u rcgistru) adrcsira R.\1vl mcmorija.

r
rr
'j

'

::
346
Poglavljc 5: Nivo arhitckturc skupa instrukcija
5.2 TIPOVI PODATAKA
Svirn racunarima su potrebni pouaci. U stvari, mnogi racunarski sistcmi postojc
samo da bi obradivali finansijskc, komercijalnc, naucne, tehnicke i urugc podatke.
Pouaci se unutar racunara moraju predstaviti u speciticnom obliku. U tu svrhu se na
nivou ISA koriste brojni tipovi podataka, o kojirna govorimo u nastavku.
OJ velike vaznosti je da li za odrec1enc tipove pouataka postoji ili nc postoji hard-
verska podrska. Hardverska podrska znaci dajedna iii vise instrukcija ocekuju podat-
ke u odredenom formatu koji korisnik nc sme da menja. Na primer, racunovode imaju
cudnu naviku da negativne brojeve pisu sa J:nakom minus iza broja. umesto isprcd
njega kako to cine racunarski strucnjaci. Pretpostavimo da je, u narneri da imprcsio-
nira sefa, rukovodilac racunskog centra neke racunovodstvenc firmc promcnio sve
hrojeve u svim racunarima tako da kao hit za znak koriste krajnji desni bit (umesto
krajnjeg levog bita). Ovo ce stvarnona scfa ostaviti veliki utisak- sav softver cc pot-
puno poludcti. llardver, kaua radi s celim brojcvima, ocekuje odredcn format i gene-
rise nedefinisane vrednosti ako dobije ncsto drugo.
Rannotritc sada drugu racunovudstvenulinnu kojajc upravo dobila posao da pro-
veri drzavni dug (koliko vlada SAD duguje svakorn svom gradaninu). Tridcsctdvo-
bitna aritmetika ovuc ne poma/.c jcr su brojevi s kojima trcba raditi vcci od 2'
2
(uko
4 milijarcle). Jedno re'ienjc je da sc J:a prcdstavljanje svake vrednosti upotrebe dva
32-bitna ccla broja, sto ukupno dajc 64 bita. Ako racunar (hardverski) ne podrzava
ovu vrstu brujcva dvostrukc tacnosti, sve racunanje s njima mora sc obaviti softver-
ski, ali dva deJa hroja mogu ici bilo kojim redumjer racunar za to nc hajc. Ovo
.JC primer tipa podataka koji hardver ne podr7.ava i koji zatu nema odgovarajuci hard-
verski, unapred odreden format. U narcdnim odcljeima obradicemo tipove pociataka
koje hardver poclrzava, z.ahteva da se unose u odredenom formatu.
5.2.1 Numericki tipovi podataka
Tipuvi pudataka se mogu svrstati u dve kategurijc: numericki i svi ostali. Glavni nu-
mericki tip podataka su celi hrojevi. Oni mogu biti razlicite duzine, najcdce R. 16, .32
i 64 bita. Ccli brojevi sluze za prebrojavanjc (npr. srafcigera u skladistu robne kucel, za
identitikuvanjc (npr. bankuvnih racuna) i za ;tosta drugo. Danasnji racunari cdc bro-
jcvc uglavnom cuvaju u binarnum zapisu komplcmenta dvojkc. macla su u pruslosti
koriscene i druge seme. Binarni brojcvi su dctaljnije objasnjcni u Dodatku A.
Ncki racunari podrzavaju i ncu;.naccnc i oznacene cek brojevc. Kod neuz.nacenih
cclih brojeva ncma bita koji odrcLhtjc znak i svi bitovi prcdstavljaju podatkc. Tu se
iskuriscava dodatni bit, pa, na primer. 32-bitna rcc moze cia sadrzi jedan neoznaccn
ceo broj u intcrvalu izmeL!u 0 i 1 zakljucno) 2
3
-'- l. Za razliku od toga, ta ista 32-bitna
rec u kornplcmentu dvojke mole da preclstavi uznaccne (pozitivnc) brojevc samo do
(zakljul:no sal 2
31
- I, ali. no, i njihove ncgativne ckvivalentc.
podataka
347
Brojevi koji nisu celi (npr. broj 3,5) navode se u formatu pokretnog zcucza, obrade-
nom u clodatku B. Njihova cluzina jc .32, 64 iii ponekad 128 bitova. Vecina racunara
ima instrukcije za rad s brojcvima u formatu pokretnog zareza. Mnogi racunari u po-
scbnim registrima cuvaju celobrojne operande i operande u formatu pokretnog zareza.
U nekim programskim jczicima (tipican preclstavnik je COBOL), dozvoljava se
koriscenje decimalnih brojeva kao tip poclataka. Racunari koji zele da buduusaglas,3-
ni sa COBOL-om cesto hardvcrski poclrlavaju decimalne brojcvc, najccsce tako sto
decimalnu cifru kodiraju sa 4 bita, a zatim u bajt srnestaju dve decimalne cifre (binar-
nu kodiran decimalni format). Mectutim, aritmetika ne radi ispravno s pakovanim dc-
cimalnim brojcvirna, pa su neophodne specijalne instrukcije za ispravljanje njenih
rewltata. Tim instrukcijamajc neophoclno da powaju prcnos iz bita 3. Zbog toga kf>d
uslova cesto sadrzi dopunski bit prenosa. Recimo uzgrcd cia su cuveni problem Y2K
(problem 2000. godine) i;azvali programeri na COBOL-u koji su zakljucili cia je jef-
tinije godinu prcdstaviti s dve decimalne cifre, nego pomocu 16-bitnog binarnog br,J-
ja . .I aka optimizacija.
5.2.2 Ostali tipovi podataka
lako je vccina prvih racunara zaradivala za zivot rneljuci brojevc, danasnji racu-
nari se cesto koristc i za drugc namcne (npr. za elektronsku postu, za pretrazivanje
Wcha, za digitalnu fotogratiju, kao i za pravljenje multimeclijskih sadrzaja i njihovo
reprodukovanje). Za ovakve aplikacije potrebni su clrugaciji tipovi podataka koje ce-
sto poclrzava skup !SA instrukcija. Jasno je da znakovi ovdc igraju vaznu ulogu, ali
njih nc podrzavaju svi racunari na hardverskom nivou. Najcdci kodovi kojima -;e
prcdstavljaju znakovi su ASCII i UNICODE. To su 7-bitni. odnosno 16-bitni kodovi.
Oba su objasnjena u poglavlju 2.
Za nivo !SA nije ncobicno da ima instrukcije specijalno namenjene radu sa zna-
kovnim nizovirna. tj. s nizovirna uzastopnih J:nakova. Na kraju ovakvih nizova pone-
kad se nalazi specijalan znak za razgranicavanje. Alternativno se moze upotrcbiti
poljc u koje se zapisujc duzina niza. Instrukcije rnogu da kopiraju nizove, da ih prc-
trazuju, menjaju iii na neki drugi nacin rade s njima.
Vazne sui lngicke vreclnosti. Postoje samo dve logicke vrednosti: tacno i netacno.
One se teorijski mugu predstaviti pomocu samo jednog bita, cija vrednost 0 odgovara
logickoj vrednosti netacno, a vrednost I logickoj vrednosti tacno (iii obrnuto). U
praksi se, rnec!utim, za prcclstavljanje logickih vrednosti koristi ceo bajt iii rcc,jer pD-
jcdinacni bitovi ncmaju svojc adrese i tesko im se pristupa. Uobicajena konvencijaje
da 0 J:naci netacno, clok svaka druga vrednost znaci tacno.
Logicka vrednost se preclstavlja jednim bitom u slucaju da postoji niz logickih
vrednosti, tako da 32-bitna rcc mozc cia sadrzi 32 logicke vrcdnosti. Takva struktura
podataka naziva sc mapa bitova i javlja se u brojnirn mornentima. Na primer, mapa
bitova se moze iskoristiti za pracenje praznih blokova na disku. Ako disk irna n blo-
kova, mapa bitova ima n bitova.
r1
;


f,
348
Poglavljc 5: NiYo arhitckture skupa instrukcija
Poslednji tip podataka je pokazivac, koji u stvari predstavlja u racunaru.
Vee smo sc vise puta susreli s pokazivacima. U procesorima registri SP, PC. LV
i CPP sadrze pokazivace. Pristupanje promcnljivoj koja sc nalazi na liksnom
janju od pokazivaca (kao sto radi instrukcija ILOAD) uobieajcno jc skoro na svim
racunarima.
5.2.3 Tipovi podataka Pentiuma 4
Pentium 4 podr7ava oznacene cele brojcve kao komplerncnte dvojke. ncoznacene
ccle brojevc, binarno kodirane decimalne brujcve i brojeve u fonnatu pokretnog zareza
prema standardu IEEE 754, kao sto je prikazano na slici 7. Zahvaljujuci tome sttl
vodi poreklo od osmobitnih. odnosno sesnacstobitnih procesora. on sa celim
brojevima ove du:l.inc radi c!obro i ima brojne instrukcijc za aritmeticke i logicke
racije s njima. kao i za njihovo porectenje. Operandi ne moraju da budu poravnati u
moriji. ali se postizu bolje ukoliko su adrese reci urnnosci ml 4 bajta.
Tip
Bit
Oznacen ceo broJ
Neoznacen ceo broJ
: Binarno kodiran
I decimalan broj
[ Broj u formatu
j pokretnog zareza
Jednobitni 8-bitni ' 16-bitni 32-bitni i 64-bitni 128-bitni
X i X ; X
:X
x , X
X
'x
Slika 5-7. Numencki tipovi podataka Pentiuma 4. Podrzan1 tipovi oznaceni su simbolom x.
Pentium 4 radi dnhm i sa ASCII znakovima: posll1.Je spccijainc
La k(>piranje i prdra/.ivanje ;nako\ nih ni;.m a. One -;e mc>g:u i-;c>ristiti is nizm:ima
cija duzina unaprcd pn1nata i sa t)l]im:: ciji .ie kraj oznacen p<lsetnim 111<1!-:nm.
sto 'iC nalcve u hibliutckama instrukc:ija za rad s nizovima.
5.2.4 Tipovi podataka proccsora UltraSPARC III
UltraSPARC Ill pudrzava sirok spck.L1r fnrmata p<;d;ll:tka. ka,J prika/JIW n:t
slici Samo ;:a cek hrojC::\e on podrzava usmubitnc.
hitne i setdesdCCI\!lrohitne 0/Jlaccnc i llCOL!ncene opcT!lllck. O!!lcll'c?lli ccli brojevi
su predstavljeni kump!cmcnlt>m ,lvPjkc. L'kljuce11i sui Ppc:r:Jndi u krmatupckretm>g:
1areza duzine 3:::', 64 i 1 :::'8 bitm au skbdu sa sundard!!rn lEI:E 754 (::a i
brojcvc ). I3inarnu kodirani dCc'iiiJalni brujL'\ i rodrzani. Svi llpcrandi
moraju biti poravnati u ;ncnwriji.
Procec;or ( :ltraSf'.\RC Ill prcteznn ;;c (,Janj:; n;, i ,J.,.,;m ''--:: njcgdve
cije rade sa rcgt,trima. i znakuvnc nizuvc ne P<'dr7av aJU spccija!J;e
hardverske instrukc1jc. S timtipovim:t pndat:tka rad: s,' i,kljuciv .> solhersk.i.
pod a taka
349
Tip
Bit
Jednobitni 8-bitni 16-bitni 32-bitni : 64-bitni 128-bitni
Oznacen ceo broj
Neoznacen ceo broj
Binarno kodiran
i decimalan broj.
: Broj u formatu
pokretnog zareza
- ---
I
, X
!X
X
X X
_ _l
Slika 5-S. i'iumcricki tipovi podataka proccsora UltraSPARC III.
l'c>drLtt)i tipovi oznaccni su simbolom X.
5.2.5 Tipovi podataka proccsora 8051
.i
X
Proccsor o05l poLnaje vrlo ograniccn broj tipova pudataka. Uz jed an izuzctak. svi
njegovi registri su osmobitni, pa sui celi brojevi te duzine. Znakovi su takocte duzirc
8 bitova. Sustinski. jedini tip pudataka za koji su aritmetickc opcracije hardverski po-
drzane jcstc hajt. kao sto se vidi na slici

16-bitni j32-bitnQ 28-bitni
, Bit X

: Oznacen ceo broj
i--
L NeoZ!lacen ceo broJ
i Binarr:o t-zod1ran
: decimalan broj
i-
i Broj u formatu I
i pok;etno_g ______i_
..
X
I
I
i
I
*-1-
... 1=1
Slika 5-9. NU!ncricki tipovi podataka proccsora WSI.
Podr!ani tipovi oznaceni su simbolom .x.
805 I ima i drug:i hardverski podrzan tip pudataka koji se ne knristi u ant-
m..:tiC:k im ''j'CraLijuma: bit. B lok od 16 bajtova koj i pucinje na adresi J:::> predstavlja
llltJriju urijciHisanu na hitovc. Svaki bit iz tog bloka moze se pojedinacno adresirati
rastojanja u intervalu od 0 do 127. Bit 0 jc krajnji desni bit u bajtu32, bit I
jc dtJ nicg:: itd. Za pojedinacnc hitove postojc instrukcije za postavljanje. brisanjc.
mcnjiv:mie t>peracija AND i OR. dopunjavanje do jedinice. na odredenu
;w,:i,:iju i tcstir:tnjc. U ugractenim sistemima pojedinacni bitovi se kori,tc za cuvanje
st:tlch!l prckidaca. signalnih lampica itJ., tako daje mogucnost dircktnog manipuli,anja
nj i ma J, 1hro do\ Ia.

350
Poglavljc 5: Nivo arhitckture skupa instrukcija
5.3 FORMA TI INSTRUKCIJA
lnstrukcija uglavnom sacirzi opkoci, obicno uz ncke ciodatne informacijc o tome
ociakle ciolaze operandi i gdc trcba smestiti rezultate. Opsta tematika zadavanja mesta
operanada (tj. njihovih adresa) zovc se adrcsiranje i o tome cerno govoriti detaljnijc
u ovom odeljku.
Slika 5-10 prikazuje vise mogucih formata za instrukcije nivoa 2. Instrukcije uvek
imaju opkod koji saopstava sta instrukcija radi. Osim njega, instrukcija moze sadrzati
jednu, dve iii tri adresc, a ne mora sadrzati nijednu.
I OPKOD l
(a)
[ OPKOD I ADRESA1 I ADRESA2 J
(c)
1
OPKOD -r - ADRESA
1
(b)
I OPKOD I ADR; I ADR2 I ADR3 I
(d)
Slika 5-10. Cctiri uobicaJena fonnata instrukcija: (a) lnstrukcija bez adresc. (hi lnstrukcija
s jcdnum aJresom. (c) lnstrukcija s dve adrcsc. (d) Inslrukcija s tri adrcsc.
U nekim racunarima sve in.strukcije su iste du/.ine: u drugima mogu hiti razlicite
duzine. Instrukcije rnogu biti kracc od reci. duzine rcci i duze od reci. Kada Sll sve in-
strukcije isle duzine, to je jednostavnije i lakse se dekmliraju. ali se time rasipa rne-
morijski prostor jer sve instrukcije tada treha da budu dugacke kau najduza od njih.
Slika 5-11 prikaluJe nekc rnoguce odnosc izmcdu cluzine instrukcije i duzine reci.
- - 1 rec 1 reC -- ---- 1 rec --
lnstrukciJa lnstrukcrja lnstrukci1a lnstrukci)a
lnstrukcija lnstrukci)a lnstrukcija ltnstr
lnstrukciJa lnstrukciJa
lnstrukcrJa lnstrukciJa
lnstrukCIJa
lnstrukcrja
lnstrukcrJa
(a) (b) (c)
Slika 5-11. Neki nmguci uJnosi inuetlu du/.ine instrukciJc i du/inc: rcci.
5.3.1 Projcktni kriterijumi za format instrukcija
Kada projektantski tim treba da izahere formate instrukci.Ja za nov racunar. mora Ja
uzme u ohzir vise cinilaca. Teiinu donosenja ove odluke nikako ne treba potcenjivati.
Ona sc mora duneti na samom pocetku prujcktuvanja ll<Jvog ncunara. Ako racunar
hude komcrcijalno w,pesan, skup instrukcija ce se mo/.da odriati i vise od 20 glldina.
Mogucnost dodavanja novih instrukcija i iskoriscavanje drugih prilika koje se stvaraju
tokum dugai'kog vremenskng perioda veoma jc vazno, ali samo ako arhitektura (i
kompanija koja ju je stvorila) opstanu ciovoljno dugo cia arhitektura postane uspdna.

. 4\

',-
';



1
:I
i
5.3 Formati instrukcija
351
Efikasnost konkretnog skupa !SA instrukcija veoma zavisi od tehnologije racuna-
ra na kome ce se implemcntirati. Tokorn duzeg perioda ta tehnologija trpi korcnite
promene, pa se ncki izbori na nivou ISA kasnije pokazu pogresnirn. Na primer, ako je
potrebno brzo pristupanje memoriji. dobro je da sc projekat zasniva na steku (kao
LJVM ), ali ako to nije od presudne vaznosti, onda projekat treba orijentisati tako cia
pretezno radi s rcgistrima (kao UltraSPARC Ill). Citaoci koji misle daje lako izabrati,
neka na listu hartije napisu svoja predvidanja u poglcdu (I) tipicnog radnog takta pro-
cesora i (2) tipicnog vrcmena pristupanja RAM rncmoriji za racunare koji ce se poja-
viti ;:a 20 godina. Zatim neka taj list hartije presaviju i cuvaju 20 godina, a onda neka
ga otvnre i prncili0u sta su napisali. Oni samouvereniji neka zaboravc hartiju i neka
svoja predvidanja objave na Internetu.
Naravno. ni dalekovidi projektanti ne mogu uvek sve da predvide. Cak i kada bi to
mogli. ipak moraju da razmisljaju kratkorocno. Ako taj elcgantni skup !SA instrukci-
ja bude imalo skuplji od postojeccg konkurentskog rogobatnog skupa, kompanija
mo:l.da nece docckati da zadivi svet svojim elegantnim ISA resenjern.
Kadaje svc drugo otprilikc isto. kratke instrukcije su boljc od dugackih. Program
sastavljen od n 16-hitnih instrukcija zauzima u memoriji dvostruko manje mesta od
programa san 32-hitnih instrukcija. Posto ccna memorije stalno pada, ovaj cinilac bi
s vrcmenom verovatno trebalo da izgubi vaznost. kad sc softvcr ne bi razvijao brie
nego sto opada cena memorije.
O-,im toga, minimiwvanje velicine instrukcija moze otezati njihovo dekodiranje i
njihovo eventualno preklapanje. Prema tome, stepen skraCivanja instrukcija treba pa-
flji vo uskladiti s vremenom za koje dekodiraju i izvrsavaju.
Drugi razlog koji ide u prilog skraCivanju instrukcija vee je dovoljno vazan i posta-
je sve vazniji kako procesori postaju brzi; u pitanju je propusni opseg za pristupanje
memoriji (broj bitova koji se u sekundi rnoze prcuzeti iz memorije). Imprcsivan rast
brzine procesora tokom poslednje dccenijc nije bio pracen jednako brzim povcca-
njem propusnog opsega mernorije . .lcdno od sve opstijih ograniccnja brz.ine proccsora
nastajc zato stu mcmorijski sistem nc rnoze da dobavlja instrukcije i operande onom
brzinom kojom procesor mozc da ih obradi. Propusni opseg svake mcmorije odreden
je tehnologijom na kojoj se ona zasniva i inzenjcrskim resenjima. Propusni opseg nije
usko grh1 samo glavne memorije. vee i svih kdeva.
Aku je propusni opseg ke:ia za instrukcije t bls. a prosecna cluzina instrukcije r bi-
tova. kes moze da isporuci najvise tlr instrukciJa u sekundi. Ohratite paznju nato daje
ovo gomju gmnica hrzine kojom proeesor mo7.e da izvrsava instrukcije. mada savre-
rneni istrazivaci tezc da probiju i tu naizgled ncpremostivu barijcru. Jasno je cia brzinu
ilvrsavanja instrukcija (tj. brzinu procesora) moze da ogranici duzina instrukcija.
Kral'e im.trukcijc mace i brzi rad procesora. Posto danasnji proccsori mogu da izvrsc
vise instrukcija u svakom sistemskom eiklusu, prcuzimanje vise instrukcija u svakom
ciklusu radnog takta je imperativ. Ovaj aspekt kcsa za instrukcijc cini duzinu instruk-
cija va2nim projektnim kritcrijumom koji ima veliki utieaj na pcrformanse .
Ill"""""

;:


Ill,<

352
5: Nivo skupa instrukcija
Drugi projektni kriterijum jc pros tor u formatu instrukcije neophodan za prihvata-
nje svih L,eljenih operacija. Racunar sa 2" operacija, cije su sve instrukcije krace od 11
bit ova. nije rnoguce napraviti. Tuncma dovoljno mesta za opkod koji trcba da naznaci
potrebnu instrukciju. lstorijaje vise puta pokazala daje lose ne ostaviti dovoljan broj
opkodova za dodavanje novih instrukcija postojecem skupu.
Treci kritcrijum se tice broja bitova u adresnom polju. Razmotrite projekat racu-
nara koji radi sa 8-hitnim znakovirna i irna glavnu memoriju koja mora da primi 2
12
znakova. ProJektanti mogu da hiraju da lice uzastopne adrese dodeljivati jedinicama
od 8. 16. 24 ili 32 bita.
Zarnislite sta bi se rnoglo desiti ako se projektantski tim podeli u dve zaracene
frakcije, od kojih jedna zala7e za R-bitni hajt kao osnovnu jcdinicu mernorije, a
druga za to prcdlae 32-bitnu rec. Prva bi mogla predloziti mcmoriju od 2J2 bajtova,
0. I. 2, 3, ... , 4.294.967.295. Druga hi predlozila mernoriju od 2
10
reci,
oznacenih hrojevima 0. I. 2, 3 .... , 1.073.741.823.
Prva grupa bi nmgla isticati da bi pri puredcnju dva znaka uorganizaciji sa ]2-bit-
nim rel'ima program morao ne samo da preuzima rcci sa znacima. vee hi tlrbalu i da
iz njih izvlaci wakove da bi ih poredio. To znaci vise dakle, rasipanje pro-
stora. Osmobitna organizacija, s druge strane. ohezbeduje adresu svakog 1.naka i tako
uproscava njihovo pon:dcnje.
Zagovornici 32-hitnih reci odgovorili bi da je prcma njihovom predl"gu put reb no
samo 23U pojcdinacnih adresa, duzine samo 30 bituva. dl'kje prema prcdlugu sa osmo
bitnim bajtovima /.a adresiranjc isle mcmorije potrcbnD 32 hiLa. Kraca adresa tnaci i
kracu instrukciju. stu nc samo da stccli prostor. vee sci hr/.c preu1.ima. Ako hi ipak
drzali 32-bitne adresc. mogli hi da adrcsiraju 16GB memori1e umesto tricavih 4GB
prcma osmobitnom predlogu.
Ovaj primer pukazujc da se linija rc1ulucija memorijc mora platiti du/im adrcsa-
ma i prema tome, du:i:im iJbtrukLijama. rczolucip se posti/.c mcmorijskom
organizacijum u kojoj se svaJ,;i bit mo/:c direktnu adrcs1rari (npr. Burmugh.s B 1700).
Na drugom krajuje memurija kuja se S<btuji cld veoma duga(kih rcei (npr. CDC
Cyher ima 60-bitne reci J.
Savrcmeni racunarski si-,tcmi drze -:e kt'mpromisnug kuje je, u
smislu. pokupilu n:lJlu\ijc usuhinc dva granic'na slul';0a. Za adrc:;iranje pnjcdinacnih
bajtova koriste sc svi Ilt'ophodni bitnvi. ali 'ie pri pn,turanju memuriji istpvrcmcnu l-i-
taju ceJa fCC, dve reci, a [l011Chad, CaK i cetiri rcci. ?a citanjc l bajta i1. !llCJll()!'ijc' na
UltraSPi\RC-u [][ se. na primer. preuzirna najmanjc I fJ hajrova (PL'gleda]lc -.lih.u.\-47 1.
a veruvatno i citav 64-bajtni red kesa.
5.3.2 Prosirivanjc opkodova
U prethodnom mlcljku vidcli '>lllll kak\1 sc kotnpw;ni:-.i mogu napra\iti izmcdu
kratkih adrc.-.a i visokc rcJ.n]ucijc mcmuriie. U ov<Jlll lHieljku analinrctcemo nove
kompromi-,c iLrnectu i adrcsa. RaLmlltnte instrukciju sa i:-bit-
nim <lpk<Jdom i jcdinstvenom n-hitnum <tdrc'som. Ovakva imtrukcija ko-
2/, razlicitih operacija i 2" memorijskih ccl!j:t t.a lstih 11 + k bitPva
-(
:g
5.3 Formati instrukcija 353

mo/.e se podcliti na (k-l )-bitni upkod i (n+ l )-bitnu adresu. stu znaci dvostruko manje
instrukeija. ali i dvostwko vise memorije za adresiranjc ili istu koliCinu memorije uz
dvostruko vecu rezoluciju. Opkod ud (k+ l) hitova i (n-/)-hitna adresa omogucavaju
vise operacija, ali je cena manji broj celija za adrcsiranje ili losija rezolucija uz istu
kolicinu mcmorijc. Izmedu broja hitova opkoda i adrese rnoguci sui znatno slozen.ji
kompromisi osim navcdcnihjednostavnih. Serna o kojoj govorimo u nastavku nazi;a
se prosircnjc opkoda (c:ngl. exewi<iing upcode).
Koncept prosirivanja opkuJa mo/c se najlakse shvatiti najednostavnom prime!lt.
Zamislite racunar sa instruk.cijama duzine 16 bitova i adresama du/.inc 4 bita. kao 1a
slici 5-12. Takvu situaclju hismo occbvali kod racunara sa 16 rcgistara (otuda .f-bit1e
adrcsc registara) u kojima -.c obavlja.Ju sve aritmeticke operacije. U jednom projektu
takvog racunara postoja<l bi 4-bitni opkud i tri adrese ll svakoj instrukciji. stu ukup10
daje 16 tt\)adresnih instrukciJa.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
I I I I I I I I I I I I I I I I I
'------- -.--------- ---" ---''----- - '------- ----
Opkod Adresa 1 Adresa 2 Adresa 3
Slika 5-12. lnstrukcija sa 4-biLnimopkoJom i tri 4-bitna polja za adresc.
/vlcdutim. ako pmjektantima treba !5 troadresnih instrukcija. 14 dvoadresnih in-
st:ukcija. 31 jcdnnadrcsna instrukcija i 16 instrukcija bcz adrese. oni mogu da uro-
opkodpvc od () du 14 /.a troadresne instrukcije. ali da opkml l 5 tumace drugac je
lpuglcdajle ,Jiku 5-13).
Opk,Jd l 'i u;_nacava da se upkud u stvari nalaLi u bitovima od 8 do 15. umesto ubi-
t, Jv i Ill a ud 12 do I 5. F3 itO\ i od 0 do 3 i hitovi od 4 do 7 otmuuju dve adresc, kao i oh:c-
Jlll. Svih !.+ cl\\adresnih in.-,trukcija 'adrle 11 i i u svoja krajnja leva 4 bita. a brojeve
ud l!OUU do II U l u bitovima od 8 do ll. [n,trukcijc sa ohrascem !Ill u krajnja leva
-+ hiu i ,,brasccm lllO iii llllu bitovima od 8 do 11 tumacice se drugacijc kaoda
in' :;e opL>d u bitovima od 4 do 15. Re1.ultat su 32 nova opkoda. Postu namve-
ha -;anw 3 l. opkod II llllllll1 i se tumaci kao da jc stvaran opkod u njegovim Ji-
l>ll ima od i) clo 15. sto dajc 16 instrukcija bez adrese.
Opkod .1e tokc1111 nascg postajau sve duzi: troadresne instrukcijc su
tmak -+hitni opkud. dvoadresne 8-bitni. jednoadresne i 2-bitni. a bez ad:c-
:-.c 16-bitni upkmi.
llpknda ilustruje kumpromis izmcdu velicine prostora za opkod i IC-
li.:'inc pro'itora u c1stale in fonnacijc. Prosirivanjc opkoda u praksi nije takojasno i .e-
gt!larno kao u !l<t'.cm primeru. U stvari. mngucnost koriscenja opkodova promenljivc
dul'.ine iThJLC 'c iskuristiti na dva nacina. Prvo, moze se podesiti da sve instrukcljC
hudu !SiC du/ir1c:. Ltko sto (e se naJkraci opkodovi dodeliti instrukcijama kojimajc
pcltrL'iwo ritova za druge informacije. Drugo, mo2e se minimizovati duzina
pm.,dne ;nslruJ,;Lije se najkraci opkodovi dodelc najcdce koriscenim instruk:i-
jarna. a najdul1 cJnitua kuje se retko koriste.

1
"''1:.'
(


f:
it
!'
t:
r
Q

1:

"'

-1.
'i
"i



lt.:.
Poglavlje 5: Nivo arhitekture skupa instrukcija
16 b1tova
4-bitni --t(OOOO) xxxx yyyy zzzz
opkod 0001 xxxx yyyy zzzz
8-bitn>-
opkod
12-bitni
opkod
16-bitnl
opkod
0010 xxxx
YYYY
zzzz
1100 xxxx
YYYY
zzzz
1101 xxxx
YYYY
zzzz
1110 xxxx
YYYY
zzzz
-rml__oo_llil) vvvv
zzzz
1111 0001 yyyy zzzz
1111 0010 yyyy zzzz
1111 1011 yyyy zzzz
1111 1100 yyyy zzzz
1111 1101 yyyy zzzz

zzzz
zzzz
1111 1110 1110 zzzz
1111 1110 1111 zzzz
1111 1111 0000 zzzz
1111 1111 0001 zzzz
1111 1111 1101 zzzz
1111 1111 1110 zzzz
-I- CTIT11TT1- -111 1-----oDllOJ
1T1T111T T1ff(j(j(jf
1111 1111 1111 0010
1111 1111 1111 1101
1111 1111 1111 1110
1111 1111 1111 1111
15 12 11 8 7 4 3 0
Pozicija bita
I
I
I
15 troadresnih
instrukcija
14 dvoadresnih
instrukciJa
31 Jednoadresna
instrukcija
16 instrukcija
bez adrese
Slika 5-13. Pru.,irivanjc opkoda koje ornoguL'ava koriscenje 15 troadrc,nih instrukcija, 14 clvu-
adrcsnih instrukcija, 31 jednoadrcsnu instrukciju i 16 ilbtrukcija bez adre."' Po1jauxx, .\')'VV i
jcsu 4-bitna po1ja za adrese.
5.3 Formati instrukcija 355
Ako zamisao o prosirivanju opkoda razvijemo do krajnjih granica, onda mozemo
da rninimizujemo prosecnu duzinu instrukcije tako sto c'emo kodirati svaku instrukctju
samo potrebnim brojem bitova. Nazalost. tada c'e instrukcije biti razlicite duzine i nec'e
biti poravnate cak ni na granici hajta. lako su postojali i takvi skupovi ISA instrukcija
(na primer, kod zlosrec'nog Intelovog procesora 432), poravnavanje je toliko vazno za
brzo dekodiranje instrukcija daje navedeni stepen optirnizacije gotovo sigumo kontra-
produktivan. Bez obzira na reccno, on se cesto primenjuje na nivou bajtova.
5.3.3 Formati instrukcija Pentiuma 4
Fom1ati instrukcija za Pentium 4 veoma su slozcni i nepravilni- imaju do sest polja
promcnljive duzine, od kojih pet nisu obavezna. Njihova opsta sema prikazana je na
slici 5- I 4. Takvo stanje je nastalo zbog toga sto se arhitektura ovog procesora razvijala
kroz brojne generacijc i sto je zadrz.ala neka stara, losa rescnja koja sc zbog kompati-
bilnosti sa starijim procesorima kasnije nisu mogla menjati. U instrukcijama selva opc-
randa. ako je jcdan operand u memoriji, onaj drugi nc mora da bude u memoriji. Tako
postoje instrukcije za sabiranjc sadrzaja dva registra, za clodavanje sadrzaja rcgistra
rncmmijskorn sadrzaju i za dodavanje memorijskog saclrzaja sadrzaju registra, aline i
za dodavanje jeclne memorijske reci drugoj.
Bajtovi 0 5 1-2 0-1 0-1 0-4 0 4
NEPOSREONI OPERAND
Bitovi

t t
Koji operand je izvor? I
BaJt/rec


I MNOZITELJ I INDEKS I OSNOVA I
Bits 2 3 3
I MOO I REG I R/M
Slika 5-14. Fonnati instrukcija l'cntiuma 4.
U ranijim lntelovim arhitekturama svi opkodovi su bili duzinc l bajt, iako su nckc
instrukcije cesto menjane prcfiksnim bajtom. Prefiksni bajt jc dodatni opkod ispred
instrukcije koji menja njenu namcnu. Primer pretiksnog bajta jc instrukcija WIDE u
skupu l.JVM instrukcija. Nazalost, Intel je na i1.vcsnom stepenu cvolucije ostau hez
opkodova, pa je jedan opkod, OxFF, preimcnovan u kontrolni k6d (engl. escape co-
de) cia bi instrukcija dobila i drugi bajt.
Pojcdinacni bitovi u opkodovima Pentiuma 4 ne daju mnogo informacija o .n-
strukcijama. Jedine strukture ll polju za opkod koje t\l cine jesu najrnanje znacajan bit
koji za ncke instrukcije oznacava da li jc u pitanju bajt iii rec i susedni bit kojim sc oz-
nacava da li je memorijska adresa (ukoliko postoji) izvor iii udrediste. Prema tome,
---
356
Poglavlje 5: Nivo arhitekture skupa instrukcija

opkod se mora putpuno dekodirati da bi se odrcdila klasa namcravanc operacije i na
taj nacin du1ina instrukcije. Ovo otezava implemcntacije namcnjene postizanju viso-
kih pcrformansi. posto je putrchno opsdno dekmliranje cak i pre nego sto se sazna
gcle pocinjc sledeca instrukcija.
U vecini instrukcija koje preuzirnaju operand iz memorijc. iza hajta sa opkodum
nalazi se drugi hajt koji daje int"mnacije u uperandu. Ovih 8 bitova su poclcljeni u dvo-
hitno polje MOD i dva trohitna polja. REG i RiM. Ponckad sc prva 3 bita
ovog koristc za prosirivanjc UJ'Kl'da. O::tu daje ukupno 11 hitova za opkod. Meclu-
tim, dvohitnu polje za rezim raJa tMOO) maci da postoje ukupno cetiri nacina aclresi-
ranja operanada i da jedan opt rand uvck mora biti u registru. Logicno je da se registri
EAX. EBX. ECX, EDX. ESI. EDI. EBP, ESP mugu zadavati kao i drugi rcgistri, ali pravila
kodiranja zahranjuju ncke komhinacijc koje se koristc za specija1nc s1ucajcve. Za ncke
rdimc neuphodan jc dmbtni hajt SIB (Seale, Index, Base). Ova sema nije idea1na,
vee prcdstavlja kompromis i;medti tci.nje za kompatibilnoscu sa starijim vcrzijama i
zclje da nnwguci dodavanjc novih osubina koje se ranije nisu moglc prcdvideti.
Osim :-vega navedenog. u nckim instrukcijamajos 1, 2 iii 4 bajta speciticiraju me-
nwri.Jsku adrcsu (pomcraj 1 i mozda clrugih I. 2 iii 4 bajta sadrze konstantu (ncposred-
ni operand 1.
5.3.4 Formati instrukcija procesora UltraSPARC Ill
Skup lS.\ in:-trukcip proccsora ll1traSPi\RC III sastoji sc iskljucivo od 32-hitnih
u men](lriji. lnstrukcijc su u osnovi jednostavne. za zadavanje
sam" upcracij.:. Tipil'na aritmc:ticka instrukcija zadajc dva registra DI izvori;nc
i Jnlan udredi,;ni rcgistar za rezultat. Jcdna njena varijanta omogucava za-
da-.anjc 13-hiLnc u/:Jaccnc konstante unwsto jcdnog od registara. Za instrukciju LOAD
s;thirc:ju .>C rcgistra tili sadr7.ajjcdnng registra i 13-bitna konstanta) da bi
sc: fcitLtLt lllc'\l\1 rij,ka adrcsa D.\ ucitavanje plKlatka. Podaei se upisuju Ll drugi zadati
regi:>tar.
Pnuh1tni pr .. ,,c,dr SP.c\RC imao JC vcoma ograniccn broj formata za imtrukcije.
pi i .. .';m ih na _,] ici ) -I Kako je vremc prolazilo. tako su dodavani no vi tormati. U
lr(nulJ.-u dnk <1\ll pn:-toji vee J l format i tu nije kraj. (Hocemu Ji dug:o cekati
na '').'Lts .. i\iitjs),J;'c'lliJi R.ISC racunar na svdu'""l) Vecina novih formata dobijena je
tab' st> sc preu;:elo llc'kolikn hitova i;: drugih po1ja. Na primer. u prvobitnim instruk-
cijarna .-::t g:rlinan;c' se format 3 uz 22-hitni pomeraj. Kada su clodate instruk-
cije lei prcdv:cknc uzeta su J hita nd 22. pri ccmuje jcdan bit za
pn:dvid,ti1.Jl' lsk:tci/nc' skaciJ. a dva za ;:adavanjc skupa hitova koji ndrcduju ktJd us-
l: va. Ttko jc ,,statl !'ll'llnaj ml Jl) bitova. Drugi primer su hrojne instrukcijc za pret-
1 t1i":ll;[c jcJrw2'- :ip:; pndatttka u drugi (ceo broj u broj u f,)rmatu pokretnog zarez.a i
dr. ). :\ liHlg:: t;1
1
.:ve i il.>.lru kcijc knriste verziju formata lb. u kome jc polje NEPOSRED-
t'il OPERANC p<.>,kljcnu m dva polja: 5-bitno. u kome se zadaje izvorisni rcgistar i
X-hilrtl 'a d,,,!.t! t<c hi npkoda. Za vecinu instrukcija sc. medutim.jos uvek koristc
fonnari na -..licl.
.i
,I
5.3 Formati instrukeija
357
Format L v " ' v " Troregistarska
1 a I I OOREDISTE I OPKOD IIZVORISTEl/ 0 / FP-OP I IZVnRtSTF? I instrukcija
1b 1 1 OOREDISTE 1 OPKOD IIZVORISTE111J NEPOSREONA KONSTANTA llnstrukciJe .
s neposredn1m
2 5 3 22 operandom
2 I I OOREOISTE I OP I NEPOSREDNA KONSTANTA I SETHI
2 1 4 3 22
3 I jA/ USLOV I OP I RELATIVNI POMERAJ U ODNOSU NA PROGRAMSKI BROJAC I
2
30
POZIV
4 I RELATIVNI u ODNOSU NA PROGRAM SKI BROJAC I PROCEDURE
(CALL)
Slika 5-15. hmnati inslrukcija prvuhitnog procesora SI'ARC'.
Prva dva bita svake instrukcije pomazu da se odredi njen format i saopstavaju
hardvcru gde da potra.:'i drugi deo opkoda (ukoliko postoji). U formatu 1a, oba izvo-
rista su registri; u formatu 1 b, jed no izvoriste jc regis tar. a drugo je komtanta u inter
valuod -4096 do +4095. Bit 13 sluzi za hiranje jednc od dve vcrzi.Je. ( Krajnji hit
je bit 0.) U oba s1ucaja, odrediste je registar. Pustuji dovoljno prostura t.a kodiranje
instrukeije, od kojih su neke trenutno rezervisanc za huducu upotrehu.
Kada instrukeija ima samo 3::2 bita, ncmogucejc u nju ukljuciti _'12-bitnu konstantu
lnstrukeija SETHI postav1ja 22 bita. ostavljajuci mugucnust nekoj drugoj instrukci.J
da postavi preustalih I 0 bitova. To je jcdina instrukcija koja koristi ovakav fmmat.
Za uslovno grananje bez prcdvidanja koristi sc format 3, pri cemu se u polju
USLOV nalazi uslov koji treha proveriti. Bit A sluzi da se u izvcsnim us1ovima izhegnu
vrerncnski pweepi. Za predvidcno grananjc kuristi sc isti format, sanm. kao jc vet:
navedcno. ut. 19-bitni pomeraj.
Poslcdnji format je predvidcn za instrukeiju CALL koja se koristi za pozivanjc pro
ecdura. Ta instrukeijaje specijalnajerje samo t.a nju za Ladavanje adrc:-e pntrebno 30
bitova podataka. Za nju postoji jedinstven dvohitni opkod. AdrcsaJC u '>tvari adrcsa
odredista podeljena sa cetiri. pa je opseg u odnosu na tekucu im,twkciju pribliznu =
2'
1
bajtova.
5.3.5 Formati instrukcija procesora 8051
Procesor 80) I ima sc:st jednostavnih formata za instrukcijc. prika;:anih slici 5-1 b.
lnstrukcijc su duzinc 1. 2 iii 3 hajta. Prvi format sadrzi samo opkod. Njega. na primcr,
koristi instrukeija koja uvecava vrcdnost akumulatora.
Format 2 jc takodt dugacak Jedan hajt i sastoji se od petubitnog opkoda i
brop registra. Ovaj format koristc mnog:e instrukcije kuje rade sa akumubtorum in.:-
gistrima (npr. one kojc dodaju sadrzaj rcgislra akumulatoru ili podatke iL-
medu registra i akumulatura).

7
I ,,
f!:
ir
. r .
. ;

j
ti,
f "
H

ii-
b
b

h
} ..
!
;j''
:,c
:-;:?

358
Poglavlje 5: Nivo arhitekture skupa instrukcija
Format
I Opkod I
I Opkod I Registar I
[ Opkod I Operand I
c Opkod I 11-bitna adresa I
I Opkod --- 16-bitna adresa I
C Opkod Operand 1 I Operand 2 I
Slika 5-16. hmnati instrukcija procesora I.
Format 3 ima polje za jednobajtni operand. Operand moze da bude neposredna
konstanta (koja se, na primer, ucitava u akumulator). pomeraj (na primer, rastojanje
na koje treba skociti iii bmj bita koji, na primer, trcba postaviti, obrisati iii testirati) .
Formati 4 i 5 koriste sc za skokovc i pozivc polprogramirna. Verzija sa 11-bitnom
adresom moze se kmistiti kada nc postoji spoljasnja memorija, pa sve adrese progra-
ma moraju biti is pod 40% (8051) iii is pod 8192 (8052). Kada se koristi vise od 8 KB
spoljasnje memorije, potrcban je 16-bitni format adrese.
Format 6 sadrzi dva osmohitna Koriste ga brojne instrukcije (na primer,
instrukcija za premestanje osmobitne neposredne konstante u memorijsku adresu na
cipu).
SA ADRESIRANJE
Vecina instrukcija koristi opcrande, paje potreban nacin da se zada mesto na kome
se nni nalaze. Ta lema, o kojoj cemo sada govoriti, zove se adresiranje.
5.4.1 Nacini adresiranja
Do :-.ada smo ohracali malo paz.nje na tn kako se tumace bitovi adresnog polja da
bi se pronasao operand. Vreme je da dctaljno proucimo tu temu. nazvanu nacini adre-
siranja (engl. address modes).
5.4 Adresiranjc
359
5.4.2 Neposredno adresiranje
Operand ce se najlakse zadati ako se navede u polju instrukcije za
adresu, umesto adrese mesta gde se on nalazi. Takav operand se zove neposredni
operand (engl. immediate operand) jer se automatski preuzima iz memorije istovre-
meno sa instrukcijom; zato je odmah (neposredno) raspoloziv. Moguca neposredna
instrukcija za ucitavanje konstante 4 u registar R1 prikazanaje na slici 5-17.
MOV R1
4 _j
Slika 5-17. Ncposrcdn.a instrukcija za ui'itavanjc konstante 4 u registar R1.
Prednost neposrednog adresiranja jeste to sto nije potrebno dodatno pristupati me-
morij i da bi se preuzeo operand. Mana mu je sto se tako mo/,e preuzeti samo konstan-
ta cija je vrednost ogranicena velicinom polja. lpak, ova tehnika se i dalje koristi u
mnogim arhitckturama za zadavanje malih celobrojnih konstanti.
5.4.3 Direktno adresiranje
Metoda zaclavanja operanda u memoriji u stvari je zadavanje njegove potpune adre-
se. Taj nacin se zove direktno adresiranje (engl. direct addressing). Slicno nepusred-
nom aclresiranju, i direktno adresiranje ima ogranicenja: odredena instrukcija ce uvck
pristupati istoj memorijskoj lokaciji. Dok vrednost moze menjati, lokacija ne moze.
Shodno tome, direktno adresiranje se moze koristiti samo za pristupanje globalnim
promenljivama cija je adresa powata ll trenutku prevmknja programa, lpak, mrogi
programi imaju globalne prumenijive, pa je ovaj nacin adresiranjci uobicajcn. Kas.1ije
L'emo objasniti kako racunar zna koje su adrese neposredne. a koje direktne.
5.4.4 Registarsko adresiranje
Registarsko adresiranjc konccpcijski je isto sto i direktno adresiranje, samo sto se
u ovom slucaju ne zadajc memorijska lokacija, vee rcgistar. Post,J su registri to:iko
va/.ni (zbog brzog pristupanja i kratkih adresa), ovaj nacin adresiranja je na vec'ini
racunara najuobicajeniji. Mnogi prevodioci ulazu mnogo truda cia otkriju kojim pro-
rnenljivama se najcesce pristupa i unda takve promenljive smestaju u registre.
Ovaj nacin adresiranja po7.nat je kao registarsko adresiranje (engl. rcgisrer mo-
de). U arhitekturi tipa ucitaj-srnesti, kao sto je slucaj s procesurom UltraSPARC IIL
skoro sve instrukcije koriste iskljucivo ovaj nacin adresiranja. On sene kmisti jecino
onda kada se operand preme!ita i1 memorije u registar (instrukcip LOAD) iii iz regiitra
u memoriju ( instrukcija STORE). Cak i 7.a takve instrukcijc. jedan operand je regi,tar
- mesto gde memorijska rec sti?.e iii odakle polazi.
-
360
Poglavlje 5: Nivo ad1itckturc skupa instrukcija
5.4.5 lndirektno registarsko adresiranje
U ovum nacinu rada, zadati operand dolazi iz memorije ili odlazi u nju, ali njegova
adn:sa nijc zauvek zabelelena unutar instrukcije, kao pri direktnom adrcsiranju, vee
se nala;.i u registru. Kada se adrcsa kuri;,ti na ovaj nacin, ona se naziva pokazivac
(engl. pointt'r). Velika prcdnm,t indirektnog rcgi,tarskog adresiranja je to sto se po-
moc'u njcga mo!c pristupati mcmoriji. pri .:'emu instrukcija nc mora da sadrzi punu
aclre;,u memorijske lokacije. Kada sc i.,ta instrukcija i;.vrsava vise pula, svaki put
mo/.c da koristi drugu memorijsku rec.
Da histc rawmeli zasto jc to kori,;no. pctlju koja prnlazi kroz jednodi-
mcnzioni celubroJni niz Sd 10:2-1- clcnJLnta da bi u rcgistar R1 upisa]a njcgov zhir.
V<UI pctlje postopti i registar R2, koji pokazujc0 na prvi clement niza i jos jcdan rcgistar
R3, koji pobvujc na prvu aclrcsu izvan ni;a. Ako se u nizu nalaze 1 0::?.-1- eel a broja,
svaki od po 4 bajta i aku ni; pocinjc na adresi ,\, prva adresa izvan nit.a hice A+ 4090.
Tipican ascmhlcrski k(Jd koji obavlja i-cracunavanjc ta dvoadrcsni racunar prikazanje
na slici 5-11\.
MOV R1.#0
MOV R2.#A
; zbir ce biti u registru R1, pocetna vrednost je 0
: R2 adresa ntza A
MOV R3,#A+4096 ; R3 adresa prve reci izvan niza A
LOOP: ADD R 1.(R2) . indirektno registarsko adresiranje preko registra R2 da bi se
dobio operand
ADD R2.#4
CMP R2,RJ
BLT LOOP
, uvecavanje sadrzaja registra R2 za jednu rec (4 bajta)
. jeSillO li zavrsi!i?
, aka 1e R2 < R3. nismo jos zavrsili, pa nastavljamo
SJik.l 5-1:-i. Upqj a:-.Lmblcr-"1--i la ;_bir<l c\emcnata niza.
1_: ,,,,,m nra1"fll J;ro,c::::mu koristimu vise nacina adresiranja. U prve tri instrukcije
1,1 pn i 'pcr:!nd ! (ldi.'lil :;k 1 lv1risti sc rcgistarsko a
r:lllJL' ta ''flc:rand ,kDno-:<tnta oznacena simbolom #). Druga instrukcija smd.ta
'"!re'u niz:1.\ u r:gi,t:r R2. a nc nJcgov sadr:t.aj. To asemblcru nalaze znak #. Slicno
lnmt:. trc'L',lllhlr>l\.-cipu r:cgi.\t::r R3 smesta adresu prvc rcci izvan niza.
7::11:imlji1u ic primcliti ,[a sCtmu tclo pctljc ne sadr7i nijednu memorijsku adresu.
U pcilji -,c u CL'tvrtnj 111 -:r:Ji-..ciji koristi registarsko i indircktno rcgistarsko adrcsiranjc.
U in,truk-:I:i k<>ri,li -;c ncp<lsrc:dno. au scstoj. i to dvaput, registarsko adresi-
r:m;c. Jn,truL:ij.! SLT bi uwo,:ia da koristi mcmorijsku adrcsu, ali jc verovatnije da
1<1 gr:m.uljt' z:tdajc' p<>lmll'u thmohitnog rastojanp od same instrukcije BLT.
P"tpunu it.heg:' :IJU,'i da kutistJmo mcmorijske adrcsc. stvorili smo kratku i brzu
pt:rij'L :\apom,'tl:m, ,,;!Cr.d cla jc uvaj pr\lgram u stvari napisan za Pentium -1-, samu
\lllll rrc:men.v .. lii ill\[lil:-..c i i innenili ozna(avanjc da sc laksc citajcr jc
-'iill:!isl st,:::t!;,r;li;< ';! ,t,t':nbk'i,kug jczika Pcntiuma -1- (MAS !'vi) hlago rcccno, bizar-
na. nasl.:ckt:<l Ji 11jc':2'"'' >g ranijcg /.ivota kau proccsura
5.4 Adresiranjc
361
Treba primetiti da se, teorijski, ovo racunanje rno?.e obaviti i bez indirektnog regi
starskog adrcsiranja. Petlja je rnogla sadrzati instrukciju za dodavanje A sadrzaju re
gistra R1:
ADD R1,A
Zatim se u svakom ciklusu petlje sarna instrukcija mogla uvecavati za 4, tako da b1
poslc prvog ciklusa izgledala ovako:
ADD R1,A+4
i lako daljc. do kraja niza.
Program koji se sam poddava na prikazani nacin zove se samopode!iavajuCi (engl.
se!Fmodifying) program. Taj konccptje smislio niko drugo do John von Neumann, i 011
jc imao smisla na ranirn racunarima. koji nisu koristili indirektno registarsko
ranje. Danas se smatra da korisccnje samopocld.avajucih programa spada u grozne i
tesko razumljivc stilovc programiranja. Oni nisu pogodni ni za istovremeni rad u visc-
procesorskim sistcmima. stavise, oni cak nece raditi i::.pravno na racunarirna s poclclje-
nim kesom prvog nivoa ukoliko kes za instrukcije nema hardver za povratno
(jcr njihovi tvorci nisu pretpostavljali cla program mu?.e sam sebe da menja).
5.4.6 lndeksno adresiranje
Cesto je korisno ako se rnozc refercncirati memnrijska rec na poz.natom ( adresnorr I
rastojanju od registra. Vi deli smo neke primcrc sa skupom lJVM instrukcija, gde su lt'-
kalne promenljive rcfcrencirane tako sto jc zadavano njihovo rastojanje od registra L'/.
Adrcsiranje memorije tako sto se (eksplicitno iii automatski) navodc registar i kor.-
stantno rastojanje zove se indcksno adrcsiranje (engl. illilned wldressingl.
Za pristupanje lokalnoj promcnljivoj u arhitekturi IJVM kmistio se pokazivac na
memoriju u registru t LV) i malo rastojanje unutar same instrukcije, kao na slici 4-1 9(al.
Mectutim. moguce je to uraditi i na drugi nacin: pokazivac na mcmoriju unutar instruk-
cijc i malo rastojanje u registru. Da biste razumeli kako sc to radi, razmotritc slcdeee
racunavanje. Imamo dvajednodimcnzionalna niza sa pu 10:2-1- reci (;\ i In i L:elimo ca
izracunamo ;\iAN D Hi za sva.ki par rcci. a zatim dana I 024 logicka proizvoda pri mem-
mo opcraciju OR kako bismo utvrdili da li u skupu postoji barjedan par razlicit ud nuk.
Jed an ud nacina bio hi da adresu pocetka nizaA stavimo u jedan regis tar, adrcsu pocctkt
niza 13 u drugi ida uporedo prolazimo kroz nizove, analugno primcru sa slikc 5-18. 1o
bi sigurno radilo. ali se moze obaviti na bolji, opstiji nacin, prikazan na slici 5-19.
MOV R1.#0 ; smesti rezultate operacije OR u registar R1. Cija je pocetna
vrednost 0
MOV R2,#0 ; R2 indeks (i) tekuceg proizvoda: A[i] AND B[i]
MOV R3,#4096 ; R3 prva vrednost indeksa se ne koristi
LOOP MOV R4.A(R2)
AND R4.B(R2)
. R4 A[i]
, R4 A[i] AND B[i]
Stika 5-1'1. asen1hkrski program za rezuliata upcracije OK nc,d rcwiLll!!ll.l
upcracijc A, :\NOn, za ni;.me od po lll24 elcmcnta.
r-362 Pogl"'lj' ;, Ni'o a<hil<kh"' ''"P" in't"'kc(j,o
"
~ :
.r'i
fi
"
'
~
~ l
f
!
~ '
~
1 4 ' 1
.
'
.
.
OR R1 ,R4
ADD R2,#4
CMP R2,R3
BLT LOOP
; primeni operaciju OR na sve logicke proizvode u registru R1
; i = i + 4 (uvecavaj brojac petlje za 1 rec = 4 bajta)
; jesmo li zavrsili?
; ako je R2 < R3, nismo gotovi, pa nastavljamo
Slika 5-19. Opsti asernhlcrski program za izracunavanje rczultata uperacije OR nad rczultatima
operacijc A, AND B; za nizovc od pu 1024 elcrncnta. (nasravak)
Rad uvug programa prilicno je jasan. Potrebna su nam cetiri registra:
I. R1 - Sadrzi kumu!Jtivan rezultat operacije OR nad logickim proizvodima.
2. R2- Indcks (i) koji se koristi za prolazak kroz elemcntc nizova.
3. R3- Konstanta 4096, koja pred.stavlja najnizu vrednost indeksa i koja se ne
koristi.
4. R4- Privrcmcni registar za tckucu vrednost svakog od proizvoda.
Po inicijalizovanju registara ulazimo u petlju sa sest instrukcija. lnstrukcip na
oznaci !"001' smdta A i u registar R4. Za odrcdivanje izvorista koristi se indcksno
adrcsiranjc. Regis tar R2 i konstanta (adresa A) sabiraju se, a zhir se koristi za refcren-
ciranje mcmorijc. Zbirovadvapodatka ide umcmoriju, ali sc ne cuva ni ujcdnom rc-
gistru dostupnom korisniku. lnstukcija
MOV R4,A(R2l
znaci da mlrediste koristi rcgistarsko adresiranjc s registrom R4, ada izvoristc koristi
indeksno adrcsiranjc sa adresom A kao rastojanjem i rcgistrom R2. Ako A ima vrcdn-
ost. rccimo, 124.100. stvarna masinska instrukcip koja odgovara ovurnc izgledala bi
pribliznu kao na slici 5-20.
MOV
I-
I R4 R2 124300
Slika 5-20. Moguca masinska instrukcija koja <dgovara asemblerskoJ instrukci1i fi,JOY R4,/\(R2).
U prvom prolasku kroz petlju. sadrzaj rcgistra R2 jc 0 (jer se on taku inicijalizujc ).
pa je adresirana memorijska rec A
0
. na adrcsi 12-BOO. Ta rcc sc sm.:sta u regis tar R4.
Pri sledccem prolasku kroz petlju. sadrzaj registra R2 jc 4. tako da se adresira mcmo-
rijska rcc A I, na adresi I 24.104 itd.
Kao sto smu ranije obeeali. ovde .Je rastojanjc knje sc nalazi unutar same instruk-
cijc u stvari pokazivac na memoriju. a vrcdnost u rcgistru je mali ceo broj koji se to-
kum izracunavanja uvccava. Za ovaj nacin izracunav anja jc:, naravno, potrebno da u
instrukciji postoji polje za rastojanje kojejc dovoljno veliko Ja prihvati adrcsu. pajc
on manje etikasan od onog drugog; ipak. to jc cesto najlmlji nacin izvodenja izracu-
navanja ovakvc vrste
5.4 Adrcsiranjc
363
5.4.7 Bazno-indeksno adresiranjc
Na nckim racunarima postoji i adrcsiranje kod koga se memorijska adrcsa izracu-
nava iz zbira sadrzaja dva registra na koji sc (opciono) dodajc udredeni pomeraj. Po-
nekad se ovakav nacin adresiranja naziva bazno-indcksno adresiranje (engl. hased-
-indexed addressing). Sadrzaj jednog od regis tara je baza ( osnova), a drugoga indeks.
Takav nacin adrcsiranja bi ovde bio koristan. lzvan petlje, mogli bismo smestiti adrcsu
pocetka niza A u regis tar R5, a adrcsu pocetka niza B u registar R6. Tada bismo mogli
zameniti instrukciju na oznaci LOOP i instrukciju iza njc sledcCim instrukcijama:
LOOP: MOV R4,(R2+R,5)
AND R4,(R2+R6)
ldcalno hi hilo da postoji nacin /.a indirektno adrcsiranjc prcko zbira sadrzaja dva
rcgistra bez pomeraja. Posto njega ncma, cak i instrukcija sa osmobitnim pumerajem
hila bi znacajno poboljsanje u poredenju s prvobitnim kodum. posto oba pomera;a
mozemo da i;jcdnacimo s nulom. Aku su, medutirn, oba pomcraja uvek velicine 32
bita, ovakvim adresiranjem ne bismo dobili nista. U praksi, s druge strane, racunari
koji koriste ovakvo adresiranje obicno imaju instrukcije sa osmohitnim iii .sesnaesto-
bitnim pomerajcm.
5.4.8 Adrcsiranje na steku
Vee' StllO naglasili kak.o je veuma po/eljno da masinske instrukcije budu sto kracc.
Krajnja granica smanjenja duz.ine adrcsc je kada adrcsa i ne postoji. Kao sto smo vi-
deli u poglavlju 4, moguce su instrukcije hcz adrcsc (npr. instrukcija IADD). ako rade
sa stekorn. U ovom odeljku dctaljnijc ccmo analizirati adresiranje na stcku.
Obrnuta poljska notacija
U matcmatici je odu vck. hila tradicip da se operator stav lja izmcdu opcranada (nrr.
x + vl. a ne iza njih ( tj. x v + ). Ohlik u kome jc operator izmcdu operanada zove sc in-
fiksna (engl. injixl notacija. Ohlik sa operatmom iza opcranada zovc sc postfiksna
(engl. poslfix) iii obrnuta poljska notacija (engl. re\'erse Polish nolalion). prema
poi.Jskum logicaru J. Lukasiewiczu (I 058), koji je proucavao svojstva ove notacije
Kad treba priLu.ati algeharskc formulc, obrnuta poljska notacija ima brojnc prcd-
nosti nad intiksnom notacijom. Prvo. tako sc svaka formula moze napisati hcz zagra-
da. Drugo. takva notacija je 1.godna za izracunavanje formula u racunarima sa
stekom. Trcce, intiksni operaturi imaju prioritete koji su proizvoljno izabrani i ne-
po7.cljni. Na primer. znamo da ax h + c L.naci (II x h)+ c, a ne ax (h +c), zato sto je
proizvoljno cldini,ano da mnozcnjc ima prcdnost nad sahiranjem. Ali, da li logicko
pomeranjc ulcvo ima preclnost nad npcracijom AND'' Ko bi to znao? Zahvaljuju.'i
obrnutoj poljsk.oj notaciji, nc muraju se postavljati tak.va glupava pitanja.
-

.::-
364
Poglavljc 5: Nivo arhitckture skupa instrukcija
Postoji vise algoritama za pretvaranje infiksnih fonnula u obmutu poljsku notaciju.
U nastavku prikazujemo adaptaciju idejc koju dugujemo E. W. Dijkstri. Prelpostavimo
da se formula sastoji od sledecih simbola: promcnljive. binamih (s dva operanda) ope-
ratora +-*I. i lcve i dcsne zagrade. Pocetak i kraj fomwle oznacavamo znakom .l koji
stavljamo iza njenog poslednjcg simbola i ispred njenog prvog simbola.
Slika 5-21 prikazujc zeleznicku prugu izmedu Njujorka i Kalifomije. koja na sre-
dini ima odvajanje za Teksas. Svaki simbol u fonnuli prcdstavljcn je jednim zeleznic-
kim vagonom. Voz se prugom kreee na zapad (ulevo). Svaki vagon mora da stane
kada stigne do skrctnice i da pita trcba 1i da nastavi pravo za Kaliforniju iii prvo treba
da svrati u Teksas. Vagoni s promenljivama uvck nastavljaju direktno za Kaliforniju
- nikad ne svracaju u Teksas. Vagoni sa ostalim simbolima pre nego sto udu u skret-
nicu rnoraju da pitaju ;.a sadrzaj najblizih vagona na teksaskoj
NJUJork
Skretnica
Teksas
[;]]
0 0
Stika 5-21. Svaki zc!onicki vagon predstavljajcdan sirnbulu inl"iksnoJ t"ormuli koju trcba
prcvcsti u uhmutu potjsku notaCIJU.
Tahcla na slici 5-22 pokazujc sta se dogacta. zavisno od sadrzaja najbli?cg vagona
na teksaskoJ pnui i vagona kL>ji je zastao ispred skrctnice. Prvi simhol .l uvek ide za
Tcksas. Brojevi u taheli odnosc se na slcdece situacije:
I. Vagon isprcd skretnice ide La Teksas.
" Vagon kuji je poslcdnJi usao na tcksasku prugu menja pravac i od!azi za
KaliforniJU.
3. Vagon ispred skrctnice i vagon kojijc poslednji usao na teksasku prugu spru-
vode se na sporedan kolosck i tu ostaju (tj. oba nestaju).
-L Stuj. Simb"li koji sc ,;ada u Kaliforniji predstavljajtl formulu u ohrnu-
toj pniJsknj notaciji kada sc citaju skva nadesno.
5. Stuj. Nastala Je grdka. Prvobitna fmmula nije ispravno uravnotdcna .
5.4 Adrcsiranje
j_
+
- 2

"'=>

X
.=.., Q)

-"'"'
c c
0
en
"' >
4 1
2 2
2 2
2 2
2 2
5 1
365
Vagon na skretnici
1 1 1 1 5
2 1 1 1 2
2 1 1 1 2
2 2 2 1 2
2 2 2 1 2
1 1 1 1 3
Stika 5-22. Tabela odlucivanja ko(u knristi atgoritarn za prcvmknje infiksne notacijc u obmutu
pnl_hku notaciju.
Posle svakc prcduzete akcijc ponovo se uporeduju vagon koji se nalazi na skretnici
(to mozc hili isti vagon kao u prethudnom poretlenju iii sledcci vagunl. i vagun kuji
se poskdnji nalazi na teksaskoj pruzi. Postupak se nastavlja sve dok sc ne dmte do ko-
raka 4. Mozda ste primen!li da sc tt:ksaska pruga koristi kao stek, pri cemu usmcra-
vanje ;.a Teksas odguvara operaciji -;tavljanp na 'itck. a vracanjc vagona s tcksaste
prugc i upucivanJC za Kaliforniju lXlgovara operaciji skidanja sa steka.
promcnljivih u intiksnnj notaciji istije kao i u obrnutoj poljskoj notaci_i.
Rc:dosled opc:ratma. mcdutim. niJc uvek isti. Operaluri o,e u ubrnutoj poljskoj nutaciji
pojavljuju redoskdom kojitll cc sc ::,tvarnu koristiti Lok.um izracunavanja izraza. Slita
5-23 prikazuje nckoliko primcra formula u inriksnoj rwtaciji i njihuvih ekvivalcnala
u obrnutoj pulj',kuj nntaciji.

n-o-ta_c_iial

, Ax A 8 0 +
I .AB/CD<+ I
r--- ____ , _____________ ----+------------- -------1
I (A + __ B_) _< (s:;_-_0_) ________ L__/\____:i:__C_D __ -_/ _
I AxB/C i I
-- 1
X c c :< D F + G + I I
SJiha 5-23. iJ.raz;t u i njihovi ek\-ivalenti u ohrnutoj
jllllj:-;knj
Izracunavanje fomwla u ol!rnutoj poljskoj notaciji
Obmuta r\Jlj:;ka idca]n;Ljc za izraCunavanje flT!llUla ll racunarima sa st-.:-
korn. FllrnmLL :;c ;;a:;t<Jji ud n ,.rn;bola. ocl J.,.,;Jihjc sval,i i!i opcr:lltd iii operator. AJg,_J-
riLatn L.a iLrctCunavanje fmmula u ubmulPJ Pl':jskoj jc:cinostavan jc. Prodite
kro;, nbrnuti pnljski 1aph fur:mtl-: ,Jc-,, a udc.\lhl. ..l naidcte na operand. 'lavite :;a
na stck. Kada naldctc na upcratur. Pd:;nvarajuCu instruktiju.
f"'
),
1!1
w.

f'
366 Poglavlje 5: Nivo arhitekture skupa instrukcija
------------------------------
Slika 5-24 prikazuje izracunavanje izraza
(8 + 2 X 5) I ( 1 + 3 X 2- 4)
u skupu IJVM instrukcija. Odgovarajuca formula u obrnutoj poljskoj notaciji je
825X+132X+4-I
Na slici smo uveli instrukcijc IMUL i IDIV za mnozcnje, odnosno za deljenje. Broj na
vrhu steka je desni, a ne levi operand. To je vazno za deljenje (i za oduzimanje) jer je
tu rcdosled operanada vazan (za razliku od sabiranja i mnozenja). Drugim recima, in-
strukcija IDIV dclinisana je tako da se uzastopnim stavljanjem deljenika i delioca na
stek, a zatim izvrsavanjem operacijc, dobija ispravan rezultat. Obratite paznju na la-
kocu kojom sc iz ohmute poljskc notacije generise IJYM kocl: samo treha proci kroz
fonnulu u ohrnutoj poljskoj notaciji i za svaki simbol izdati instrukciju. Ako je simhol
konstanta iii promenljiva, instrukcija je njeno stavljanje na stck. Ukoliko je simbol
operator, instrukcija treba da izvrsi odgovarajucu opcraciju.


Korak Ostatak deo formule
lnstrukcija Stek
1 825X+132X+4-I BIPUSH 8 8
2 25X+132X+4-/ BIPUSH 2 8,2
3 5X+132X+4-I BIPUSH 5 8, 2, 5
r----
, ___
4 X+132X+4-I IMUL 8, 10
5 + 1 32X+4-I I ADD 18
-
6 1 32X+4-I BIPUSH 1 18, 1
7 32X+4-I BIPUSH 3

-
8 2X+4-I BIPUSH 2
18, 1, 3, 2 -
------- - ---
9 X+ 4-1 IMUL
18, 1' 6
10 + 4 -I I ADD

,----------
_,-
11 4- I BIPUSH 4
18.74 ..
_,
12 -I I SUB 18,3
_,
13 I IDIV 6
Slika 5-:!.t. Kori.,ccnjc srcka za izracunavanje fornwle u ohrnutoj poljskoj nolaciji.
5.4.9 Nacini adresiranja za instrukcije grananja
Do sacla smo sc havili samo instrukcijama koje racks podacima. U instrukcijama
za grananjc (i u pozivima proccdura) koristi sc i odrec!isna ac!resa kuju taknde trcba
zadati. Nal:ini adresiranja o kojima smo govorili ugl:.!vnom sc mogu koristiti i pri
grananju. Direktno adrcsiranje je jec!an od nacina na koji se to moze obaviti ako sc
ac!resa oclredista umetne u instrukciju.
Mcdutirn, ima smisla primcniti i clruge nacine adresiranja. Indircktno registarsko
adrcsiranje omogucava programu da izracuna aclresu odrcdista, da jc stavi u regis tar
i daje zatirn iskoristi. Ovaj nacinje i najlleksibiJnijijer sc oc!redisna adrcsa izracuna-
va tokom programa. On je takode i najbolp prilika za pravljenje program-
skih grdaka kojc jc skoro nemoguce otkriti.
5.4 Adresitanje
367
SlcdeCi prihvatlji v nacin jc indeksno adresiranje s pozna tim rastojanjcm od sadr:Za-
ja registra. Ov<y nacin ima iste osohine kao indirektno registarsko adresiranje.
Jos jedna mogucnostje relativno adresiranje u oc!nosu na sadrzaj registra PC. Ovde
se ( oznaceno) rastojanje detlnisano unutar same instrukcije dodaje sac!rzaju program-
skog brojaca da bi se dobila adresa odrcdista. To je u stvari indeksno aclresiranje, s re-
gistrorn PC.
5.4.10 Ortogonalnost opkodova i nacina adresiranja
S gledista softvera, instrukcije i nal:ini adrcsiranja treha da imaju regularnu struk-
turu, s minimalnim hrojem formilta za instrukcije. Takva struktura olaksava prevodio-
cu gcnerisanje kvalitetnog koda. Svi opkodovi treba da clozvoljavaju svc nal:ine
aclresiranja, gdc god to ima smisla. Stavise, svi registri treba da su raspolozivi za rad
u svirn registarskim rezimima -ukljucujuci i pokazivac okvira promcnljivih (FP), po-
ka.cival: vrha steka (SP) i programski brojal: (PC).
Kao primer projckta racunara s troadresnim instrukcijama razmotritc formate
32-hitnih instrukcija na slici 5-25. Pudrzano je do 256 opkodova. U fOITilatu I svakJ
instrukcija ima dva i.-:vorisna registra i jec!an odrec!isni registar. Sve aritmetil:ke i lo-
gil:ke instrukcije u ovom su fonnatu.
Bits 8 1 5 5 5
OPKOD I 0 I ODREDISTE I IZVORISTE1 I IZVORISTE2 u J
zl OPKOO l1 I ODREDISTE I rzvoRISTE1 I RASTOJANJE J
3 I OPKOD RASTOJANJE J
Slika 5-:!5. Jeunostcl\'an pwjckat f'onnala inslrukcija s lri adrcse,
NeiskmisL'eno osmobitno polje na kraju formata moze se upotrebiti za c!alju difc-
rencijaciju instrukcija. Na primer, jcdan opkod se mo.:ie c!oc!eliti svim operacijama s
brojcvima u formatu pokretnog zareza, a za razlikovanje svake pojedinacne instrukcije
koristi se dodatno polje. Osim toga, ako se postavi bit 2J, koristi sc format 2 i u registru
nije drugi operand. vee 13-bitna oznal:ena ncposredna konstanta. Instrukcije
LOAD i STORE takodc mogu da kmiste ovaj format da bi indcksno adresirale memoriju.
Potrebanje mali broj dodatnih instrukcija (npr. instrukcije za uslovne skokove) ali
one mogu lako da stanu u fnnnat 3. Na primer, jcdan se upkod mo/.c dodeliti svakom
(usluvnom) sk\lku iii pozivu procedure, ostavljajuci 2-t bita za pomeraj u odnosu na
programski hrojac. Ako se pumeraj meri rccima, njegov opseg bi bio 32MB. Nc-
koliko opkodova treba rczervisati i za LOAD i STORE kojirnaje pntcban ve-
liki pornak furmata 3. One ne bi imalc potrebnu opstost (npr. mogle bi racliti samo s
rcgistrom RO ), ali bi sc ionako retko koristi I e.
...,.....,..._....
j '
368
Poglavlje 5: Nivo arhitckturc skupa instrukcija
Sada razmotrite projekat racunara s dvoadresnim instrukcijama u kome se za bilo
koji operand moze koristiti memorijska rec. Format instrukcije je prikazan na slici
5-26. Takav racunar bi mogao da dodaje memorijsku rec sadrl.aju rcgi,tra, da dodaje
sadrzaj registra memorijskoj reci, da dodaje sadrzaj jednog registra drugom ili cia jed-
nu memorijsku rec dodaje drugoj. Trenutno je pristupanje mcmoriji relativno skupo,
pa ovakav projekat nije previse popularan, ali ako u buciucnosti zbog napretka u teh-
nologiji kda ili rm:morije ono postane jeftinije, projekat obezbeduje lak i etlkasan
nacin prevodenja programa. PDP-II i VAX Sll bile uspesne masine koje Sll cive de-
cenije dominiralc svetom mikroracunara koristeci formate slicnc ovom.
Bitova 8 3 5 4 3 5 4
[ _______ 9 _______ [ l __ _ _i_R_A_S_T_O_JA_N_J_ [ __ __ j j
: (Opciona 32bltna direktna adresa ill rastojanje) :
.. --------------------------------------------------------------------------------_J
: (Opciona 32-bltna dircktna adresa iii rastojanje) :

Slika 5-26 . .kdnostavan pmjekat !"on nata instrukcija s c!ve adrese.
U ovom projcktu ponovo imamo mdnobitni opkocL ali sada imamo po 12 bitova za
zadavarrjc izvorista i odrcdista. Za svaki operand, 3 hila oznacavaju nacin adrcsiranja.
5 hitova o1.nacavaju rcgistar, a hita se zadajc rastojanjc. Uz 3 bita za nacin adresi-
ranja mozemo da podrzimo ncpmrcdno, dircktno, rcgistarsko, indirektno rcgistarsko,
indcksno adrcsiranje i adresiranjc na steku, a i rezervisali smo dva mcsta za huduc'e
nacinc adresiranja. Ovc0 pmjekat jc cist i pravilan, omogucava lako prcvodcnjc, a i ,a-
svimje llcksibilan, narocito ako se programski hrojac, pokazivac vrha steka i pokazi-
vac okvira lokalnih promenljivih nalaze mectu dostupnim registrima opste namene.
Jedini problem jc to sto nam pri direktnom adresiranju trcba vise bitova za adresu.
PDP-I I i VAX su za svaki direktno adresirani operand instrukciji doclavali jos jcdnu
za aciresu. Mi bismo takode nwgli upotrebiti jcdan od dva raspoloziva nacina adrc.-;i-
ranja ;.a indcksno adrcsiranje sa J2-bitnirn pornemjem koji se nalazi iza instrukcijc.
Tako bi u najnepovoljnijem slucaju (recimo, pri sahiranju dvc memorijske rcCi. gdc su
oba opcranda direktno adrcsirana) iii pri koriscenju ciugackog oblika indeksiranog adrc-
siranp, inst111kcija hila dugacka 96 bitova i potrosila hi tri ciklusa magistralc ljedan 1a
instrukciju, dva za podatkc). S druge strane, za vec'inu RISC instrukcija bilo bi potrehnu
najmanjc 96 bitova (vcrovatno i vi;e), da hi jednu proizvoljnu mcmorijsku rei' dmlalc
drugoj proizvoljnoj memorijskoj reci i potrosile hi bar cctiri ciklusa magistralc.
Moguce su mnogc zamene za resenje sa slikc 5-26. U ovom rcscnju, narcdbuje
I =.J;
moguce je izvrsiti pomocu jedne 32-bitne instrukcije, pod u:-.lov(Hl1 da se i i j nala1--:
mcdu prvih 16 lokalnih promenljivih. S druge stranc, t.a prumenljivc rednog hroja
prcko 16. mora cia se kuristi 32-hitno rastojanje. Jcdna od mogucnm.ti bio bi drugi for-
mats jedinstvcnim S-hitnim rastojanjcm umesto dva 4-hitna rastujanja, alii pra\ilo
koje kaze cla ga rnoze kori,titi iii iii odredistc (nc oba Postoji
bcskor1:1cnn mnogo mogucnosti i kompromisa. i projcktanti moraju odmeriti nuwge
ciniocc da bi pm,tigli dubre

,!,
l'j

5.4 Adrcsiranjc 369
5.4.11 Nacini adresiranja Pentiuma 4
Nacini adresiranja Pentiurna 4 potpunu su neregularni i vise od toga cia li je odre-
ctena instrukcija izdata u 16-hitnom iii u 32-hitnom rc7imu rada. U nastavku cemo za-
nemariti 16-bitni rdim; sasvim nam je dovoljan i 32-bitni. Nacini adresiranja
obuhvataju neposredno, direktno, registarsko, inciirektno registarsko, indeksno adrcsi-
ranje i specijalno acircsiranjc elemcnata nizova. Problemje to sto sene mogu svi nal'ini
adresiranja prirneniti na sve instrukcije, niti se svaki regis tar muzc iskoristiti u svakum
nacinu adrcsiranja. To uveliko ote7,ava pnsao autoru prevodioca i cini da gencrisani
k6d hudc losiji.
Bajt MODEna slici 5-14 ucireduje naCin adrcsiranja. lzvoriste jednog od opcranada
1aciaje sc kombinacijom polja MOD i RiM. drugog operanda uvek je rcgistar.
oznacen u polju REG. Tridest:tdve kumbinacije kujc se rnogu ;:adati ponmcu dvnbit-
nog polja MODi trohitnog poija RtM prikazane su na slici 5-27. Ako su. na primer. oba
polja nula, operand se cita s memmijskc adrcse J..oja se nalazi u registru EAX.
Stupci 0 l i I 0 obuhvatajunacine adrcsiranja u kujima sc saclrzaj regiqra dmlaje R-
-hitnom ili 32-hitnom pomcraju koji sc nalazi ta instrukcija. Ako jc izabran osmobitni
pomcraj, njemu se pre dodavanja prusirujc' znak do 32 bita. Na primer, instrukcip
ADDs poljima RiM= Oil, MOD= Ol i pomerajcm fJ i1racunava zhir sadr7aja rcgistra
EBX i broja 6, i cita menwrijska rd s dohijcne acircsc za jedan od opnanada. Sadrlaj
rcgistra EBX sc pri tome ne mcnja.
Stuhac MOD = II on]l)gucava da se izabere jcdan od dva registra. Za instrukciw
koje radc s recima hira sc prvi regisur; t.a in.-:trukcijc koje raclc s hajtovima, hira sc
drugi. Obratite pa/.nju nato da tahc!J nije sasvim kunsi,tcntna. :'-ia primer. ncma nal'i-
na cia se indirektnu adrcsira prc:ku regi,tra EBP, niti da se adresira u1 pnmeraj knji se
nala;.i u registru L:SP.
U nekim nacinirna adn::siranja iza bajta i\!ODE slnli clmlatni hajt SIB (Seale, In-
dex, Basel, ka<> na slici Rajtom SIB zadaju se mnu!itclj i elva n::gi-:tta (indebni
i ba?ni). Kada pustoji bajt SIB. adresa opcrancla sc iz.racunava tako sto ,;e indcksni re-
gi-.;tar mrwzi .,a l, 2, K (Zcl\ isno ,,d pulp SCALE). re/ultat sc dodaJL: baznom rcgi-
stru i tn kraju se mu/d:1 dtlda i S-hitni iii 32-bitni pomcraj tzav i:-,r1o <'d ptllja MOD).
Skmo ;;vi rcgi.;tri mugu ,c koristtti 1.a indcks i usnu' u.
RIM 00
000 M[EAX]
001 i M[ECX]
:010 M[EDX)
011 M[EBX]
100 SiB
. 101 Direktno
110 rvt[ESI]
1ii i M[EOij
01
. M[EAX + POMERAJS]
M[ECX + POMERAJS]
--- -- --
M[EDX + POMEFiAJ8j
' M[EBX + POMERAJ8]
'SIB sa POMERAJS
M[EBP + POMERAJS]
'M[ESI + P0tvtt:RAJ8]
M[EDI + POWC"RAJ8]
MOD
i10
M[ESX + POtviERAJ32]
--
M[ECX. + POfv1ERi\J32]
-
i M[EDX + P0f;IE:RAJ32J
M[EBX + POMEi'iAJ32]
SIB sa POMER,;JJ2
tvi[EBP + POMERAJ32j
M[ESI + POMERAJ32]
'M[EDI + POMERAJ32j
11
. EAX ili AL
ECX iii CL
EDX iii DL
EBX iii BL
ESP Iii AH
EBP iii CH
ESI iii DH
EDI ill BH
Slika 5-27. TriLk'-.ClJ\ubilm LldrL'Slranja l-'crHJU!Ila -t. \l[.rj jc rcC n.L !okaciji .1.
.,,.,

;
[''

'
!
I
!

'
1:
kf.
1;

"'
f.!,
370
Poglavljc 5: Nivo arhitckture skupa instmkcija
Adresiranje uz polje SIB je zgodno ta pristupanje ekmcntima nizova. Na primer,
razmotritc Javnu naredbu
for (i 0; i < n; i++) a[i] 0;
gde je a niz 4-bajtnih celih brojeva, lokalan za tekucu proceduru. Za pokazivanje na
pocetak okvira lokalnih promenljivih i nizova na steku najcescc se koristi rcgistar
EBP, kao na slici 5-28. Prcvodilac mora da cuva promenljivu i u rcgistru EAX. Da hi
se pristupilo elcmentu a I ij, iskoristicc se adrcsiranje u1. SIB, pri ccmu je adresa ope-
randa zbir cetvorostrukog sadrzaja registra EAX, sadrzaja registra EBP i broja 8. In-
strukcija sama mo/.c da smesti vrednost u clement niza a liJ.
Da li je ovaj nacin adresiranja vrcclan muke? Na tojc tt.:Sko odgovnriti. Nesumnji-
vo jc da ova instrukcija. kacla se ispravno upotrebi, stcdi nekoliko ciklusa. Koliko cc
ccsto biti upotrcbljcna, to zavisi od prcvodim:a i same aplik.acije. Problem je to sto
ova instrukcija zauzima odrcden dco prostora na cipu koji hi se mogao upotrebiti na
drugaciji nacin. Na primer, mogao bi se na njenom mcstu prosiriti kcs prvog nivoa iii
bi sam cip mogao biti manji, sto hi vcrovatno omogucilo br/.i raclni takt.
S takvim kompromisima projektanti se stalno suocavaju. Ohicno se pre izracle cipa
obavljaju brojnc simulacijc. ali da hi one funkcionisalc, mora se dohro predviclcti re-
alno radno optercc'cnjc. s visokim stepenom sigurnosti tvrditi da konstruktori
procesora 8088 u knmplet za njcgovo tcstiranje nisu ukljucili pretrazivac Weba. Bcz
obzira nato, danas sc prilil'an broj potomaka ovog procesora koristi prvenstveno za
prctral:ivanje Wcha, taku da se odluke donetc pre 20 godina mogu pokazati potpuno
pogrcsnim za danasnje aplikacije. Mectutim. u ime kompatibilnosti sa starijim verzi-
jama, 0110 stu jed nom uue ll sistcm, zauvck ostaje Ll njemu.
Okvir
lokalnih
promenlpvrh
na steku
I
Druge
lokalne
promenljive
a [01
a [1]
I
a [21
I
i
--- EBP
EBP , 8

EBP' 16
i u registru EAX
Referenciranje uz SIB
M[4 'EAX t EBP + 81
Slika 5-:!li. Pri,tupanjc l'iL'IllclltU run" I i[.
5.4 Adrcsiranje
371
5.4.12 Nacini adresiranja procesora UltraSPARC III
Za sve instrukcijc ISA skLipa procesora UltraSPARC koristi se neposreclno iii regi-
starsko adresiranje, osim za one koje radc s memorijom. Pri registarskom adresiranjJ,
5 bitova odredLiju regis tar koji treba Llpotrcbiti. Pri neposrcdnom adresiranju ( oznacem)
13-bitna konstanta ohezhcdujc poclatak. Ncma drugih nacina aclresiranja za aritmeticke,
logicke i sli<:ne instrukcije.
Memoriji se obracaju tri vrste instrukcija: instrukcije LOAD i STORE i jedna instruk-
cija za sinhronizovanje racla vise procesora. Za instrukcije LOAD i STORE postoje dva
nacina adresiranja memorije. Prvi racuna zbir sadrzaja dva rcgistra, a zatirn se preko
njcga indirektno pristupa mcmoriji. Drugi je stanclardno indeksno adresiranje, LIZ (ol-
nacen) 13-bitni pomeraj.
5.4.13 Nacini adresiranja procesora 8051
Proccsor 805 I ima prilicno sredenu strukturLI adresiranja, Ll kojoj postoji pet os-
novnih nacina. Najjednostavniji je podrazLimevani nacin LIZ L1potrehLI akLimlllatora.
Brojne instrLikcije komhinuju operand sa sadrzajem akLimulatora (dodajLici mLI ga.
oduzimajLici ga od njega i primenjujLici logickc operacije AND iii OR). Instrukcijc
kojc racle sa akumulatorom nemaju specijalnc hitove koji oznacavaju da raclc sa ovim
registrom. Ta cinjenica se Ll njihovom opkodLI poclrazumeva.
Drugi nacin je registarsko adresiranje, pri cemu se operand na1azi u registru. Rc-
gistri sc mogLI koristiti i kao izvoriste i kao odrediste. Treci nacin je direktno
ranje, pri cemu se operand nalazi u mcmoriji na adresi koja jc dco same instrukcije.
Cctvrti nacinje indirektno registarsko adresiranje, pri cemu registar saclrzi pokaziv,Ji'
na operand. Posto su normalni registri osmobitni, operandi koji se adrcsiraju na ovaj
naCin moraju se nalaziti unutar clonjih 256 bajtova mcmorije. Peti nacinje neposrcdno
adresiranje, pri cemu je operand dco same instrukcije.
Procesor R05 I ima i spccijalan nacin adresiranja koji se koristi kada jc broj in-
strLikcija za pristLipanje memoriji ogranicen. Sctite se cia proccsor R05 I moze da ima
do 64 KB spoljnc programske memorije i jos 64 KB spoljne memorije za podatke.
Ove memorijc sc moraju adrcsirati na ncki naCin. Spoljnoj programskoj memoriju
pristupaju dvc instrukcije, LJMP, koja na osnovu 16-hitnog rastojanja moze cia skoci
na hilo koju aclrcsu u memoriji. i LCALL, kop takode na osnovu 16-bitnog rastojanja
rnoze da pozovc potprogram koji se nalazi hilo gcle Ll memoriji.
Podacima u spoljnoj memoriji pristupa se drLigacije. Procesor 805 l ima 16-bitni
pok.azivacki rcgistar DPTR koji mozc da cuva 16-bitnu memorijsku aclresu. Taj regi-
star mogu puniti programi i tada indirektno adresirati bajt koji sc nalazi bilo gcle u
64 KB memorijc s podacima.
5.4.14 Zavrsne napomene o nacinima adresiranja
Analizirali smo prilican broj naCina adrcsiranja_ Oni koje koriste procesori Pcnti-
Lllll 4. U1traSPARC III i 805 I prikazani su na slici 5-29. Medutirn, kao sto smo vee
istakli, nc mogu se svi nacini adresiranja koristiti Ll svim instrukcijama.
J!lll""""-
lf''
f
!
372
Poglavlje 5: Nivo arhitekture skupa instrukcija
' Nacin adresiranja
Uz akumulator
, Neposredno
Direktno
Registarsko
i lndirektno registarsko
; lndeksno
lndeksno u odnosu na bazu
; Na steku
Pentium 4
i -
+-
X
'X
X
ix
j
X
----I
8051
:X
X
IX
Slika 5-29. Uporedni nacina adresiranja u tri ['roccsora.
Da bi skup !SA instru!:.cija hio clikasan u praksi. nc mora da kuristi mnogo nal'ina
adrl'siranJil. vecinu koda pisanog /a ovaj ni YO danas gencrisu prcvodioci (!lSi ill
mozda ;:a procesor 805 I). najvazniji aspc!:.t nal'ina adrc-;iranja kujc koristi odrcctcna
arhitl'ktura jcstc mali bruj jasnih altcrnativa. ciji sc (tj. vrcmc izvrbvanja i
duz.ina !:.oda) mugu lako itracunati. To z.nal'i da pri projektc1Vanju pwccsora valja zau-
zcti granican stav: iii da sc ponudc svc moguL'nosti. iii samo jcdna. Svc sto jc i;:mcdu.
suocava prcv-mliL'Gl s mcdu kojima on iii nc moLe ili nc umc da sc c;na(tc.
Prcma t1llllC, najl'istip ar!tit<.:klllra cc pmlr,iavat i vrlo mali hroj nacina adresiranja. s
jasnim pravilima za njihmo kori;L'Lnic. U praksi jc za skuru sve primcnc dovoljno
imati ncp,1srcdnu. dird.tnu, rcgi.,tarsku i imlcksiran,l adrc;,iranjt:. lsllJ takll, svaki regi-
star (uklju.:'ujuc'r poka;.ivac lukctlnih promcnlJivih, pt'ka;ivac vrha :,rcka i pmgramski
hrop() trcha da hudc na raspolitganju l-ead jc to potrl'lmo. SlP/eniji nacini adresiranja
mugu cld :,manic' hruj in.:,lnti.cija, ali m racun ni;<n-a opcracija kuje St' nc mogu lako
parakinu u1. drtJgc nil.l1VC Ppcrac:ija.
smo du kraja anali;c ra:dicitih komprumisa i-cllJi su muguci izmedu op-
k,,d,lva i adrcsa. i razlicitih nacina ... iranja. pristupatc no\\ltn racunaru. tn:-
ba da an;tli;iratc: instruhijc i na(!n.: nt: samo da biste o,ilJ:niilJ sta je sve
duo!Uptw, H'c' i d:t bistc raLU\llcli . .::a\iu jc <liW \lu jcstc: i koje hi bile poste-
d ice drugih rc;cnja.
5.5 TIPOVI l.'ISTRl!KCIJA
!mtn:!:.cije nin1a IS:\ lll''gu sc gruhu P''tk!iti u nck1liko grupa K<)jc su .slicne La
iaku '"C insrrukcije r11ogu ra.r:liko\ati. Chi:n ll)ga. svak.i ra-
cunar imil nc!-.11li!:.o irurukcijL< kojc :-;u dudarc zhug sa
-,ta:-i_iim n11 lckl imcL zbu02 tugil Zt" jc pl'l'i:klanl hio nad;lhnul i!i m"zda t;!iil ;to je neka
v ladin<l pialila pnli;\odacu da ih ukljuci u skup. U!:.r;,t\.cu cemo upisati nvc
in'->truk...:ljd. hcz u dctaljc.
5.5 Tipnvi instrukcija
373
------------
5.5.1 Instrukcije za preme5tanje podataka
Kopiranjc podataka s jednog mesta na drugo najosnovnija je od svih operacija.
Pod kopiranjem podrazumevarno stvaranje novog objekla koji irna idcntican rasporcd
hitova kao i original. Ovakvo znaccnjc reci ,prcmestanje" razlikuje se od uobicajc-
nog znaccnja. Kada kazcmo cia sc Marvin Mongoose .. premestio" iz Njujorka u Ka-
liforniju. ne mislimo da se kopija g. Mongoosea stvorila u Kaliforniji, dok jc original
jos u Njujorku. Kad ka/.cmo da se 'adri,aj memurijskc lokacije 2000 prcmestio u
odrcc1eni regis tar, tad a uvck mislimo da jc u registru stvorcna kopija njegovog sadr:l.a-
ja. a daje originalni sadrzaj ostao netaknul na lokaciji 2000. Instrukcije za premesta-
nje podalaka hilo bi bolje zvati instrukcije za ,.dupliranje podataka". ali se izraz
,prcmdtanje podataka'' vee previsc mlomacio.
Postojc dva razloga zbog kojih se podaci kopiraju s jednog mcsta na drugo. JcJan
je vrlo vazan: dodeljivanjc vrcdnosti promenljivama. Dodcljivanje

implementira se kupiranjcrn vrednosli s memmijs!:.c adrcsc Fi na lokaciju A zatn sto je
programer lo narcdio. Drugi ra;:log za kopiranjc podalaka jeste cfikasnijc pristupcnjc
i koriscenjc. Kao sto smo videli. hrojnc instrukcijc rnogu da prislupc prorncnljiva;na
samo aku sc one nalaze u rcgistrima. Poslu postoje dva moguca i;:vorista podataka
(mcmorija iii registar) i dva njihova moguca mlrcdista (memorija iii registar), moguce
su cetiri vrstc kupiranja. Ncki racunari irnaju poscbnu inslrukciju za svaku vrstu. Dru-
gi pak imaju jcdnu instrukciju za sve cdiri vrste kopiranja. Trcci. opel, koriste in-
slrukciju LOAD z.a kopiranje iz memorije u rcgistar. instrukciJll STORE za iz
rcgistra u mcmoriju, imtrukciju MOVE ;:a kopiranje iz regislra u rl'gistar i nemajuni-
kakvu instrukciju za kopiranje iJ: memorijc u memoriju.
lnstrukcije za prernestanje podalaka moraju nckako da oznacc k:olicinu podataka
kuje trcha prcmestiti. U nekirn JSA skupovima postojc inslrukcijc za
promcnljivc kolicine podataka koja sc krcce odjcdnog bita do sadrzaja citavc rnemo-
rijc. u racunarima s liksnom duZinom reci. ceslO se jednmn instrukcijom premesta
samo jcdna ree. Svc sto jc vist.: iii manjc. od toga mora se ohaviti softvcrski- polpnl-
gramom koji pomera i spaja hitove. Neke !SA arhiteklnrc irnaju dodatnu moguc'nost
Dt kopiranjc koliCina podataka manjih odjcdne rcci (uhicno mcrenih u bajtovima) i za
kopiranje vise rcci. Kopiranjc vise rcci nije jednustavno. narocito ako je maksimalan
broj rcci Dl kopiranje veliki. zato sto takva operacija mo:i.e da potraje i S(() se 111\lfC
uka1.ati potreba da se usrcd rada prckine. Neki racunari s promcnljivom duzinom r:Ci
imaju instn1kcijc koje poznaju samo izvorisnu i odredisnu adresu. ali ne i kolic:nu
podataka kuje trcba kopirati. Prcmdtanje trajc sve dok sc ne naide na oznaku pdja
.. kraj podataka'.
l
4
fT
f

f:;


t
1\

Poglavljc 5: Nivo arhitckturc skupa instrukcija
5.5.2 Binarne opcracije
u binarnim (engl. dvadic) operacijama rezultat se dobija kombinovanjem elva ope-
randa. Svi skupovi ISA instrukcija imaju instrukcije za sabiranje i ocluzirnanje celih
brojeva. Mnozenje i deljenje celih brojeva takode su skoro standardne operacije. Pret-
postavljamo da nije potrebno obrazlagati zasto racunari imaju aritmeticke instrukcije.
Druga grupa binarnih operacija obuhvata logicke instrukcije. Iako postoji 16 Bu-
lovih (logickih) iunkcija dve promenljive, malo racunara irna instrukcije za svih 16
(ako takav racunar uopste postoji). Obicno postoje instrukcije za operacije AND, OR i
NOT; ponekad postoje i instrukcije za operacije EXCLUSIVE OR, NOR i NAND.
Operacija AND je vazna za dobijanje vrednosti bitova iz reci. Razmotrite, na pri-
mer, racunar zasnovan na 32-bitnim rccima, kod koga svaka rcc sadrzi cetiri osmo-
bitna znaka. Pretpostavimo da je neophodno it.dvojiti drugi znak od ostala tri iz reci
da hismo ga odstampal i; to znaci, potrchno jt: napraviti udcsno poravnatu rec, koja
znak sadrzi u krajnjih dcsnih 8 bitova, a null: u preostala 24 bita.
Da bismo izdvojili zadati znak, na rcc koja ga sadrzi primenjujcmo opraciju AND
s konstantom, nazvanom maska. Rezultat ove operacije je to da st.: svi neieljeni bitovi
prctvaraju u nule (zaklanjaju se maskom):
1 0 II 0 t l l l 0 l I I l 00 II 0 l l 0 l l l 000 I 0 l l A
()()()()()()()() l I llllll 00000000 00000000 B ( maska)
00000000 l 0 ll I I 00 00000000 00000000 A AND B
Kao sc vidi, rczultat treba pomeriti 16 hitova udcsno da bi sc znak koji trcba
izdvojiti p()ravnao s dt:snim krajem reci.
Opl:racija OR jc vazna za pakovanjc bitova u rcc, pri ccmu jc ,pakovanjc" operacija
invcrzna izdvajanju. Da histc promcnili krajnjih dcsnih X bitova 32-bitne rcci, ada pri
torn nc poremditc njcna preostala 24 bita, najprc treba da zaklonitc maskom 8 nczc-
ljenih birova, a zatim dana njihovo n1csto postavite nov znak pomocu operacije OR:
1 0 l l 0 I I l lO I I l l 00 110 I l 0 l l l 000 I 0 I l A
l l I l I ll I l l ll I l I I I l I l l Ill 00000000 13 ( maska)
10 ll 0 ll l I 0 l ll l 00 ll 0 l I 0 I I 00000000 A AND B
00000000 00000000 00000000 0 l 0 l 0 l I l C
!0110111 10111100 llOllOilOIOIOlll tAANDB)ORC
Operacija AND tczi da uklanja jcdinicc, zato sto u rezultatu nikada ncma vi;e je-
dinica ncgo u bilo kom opt:randu. Operacija OR tezi da umece jcdinicc, zato stu re-
zultat sadrzi baiTill unoliko jedinica kuliko i operand s najvisc jcdinica. Operacija
EXCLUSIVE OR jc sJmctricna i u pmscku nc tczi niti da umcce jedinice, niti da ih
uklanp. Ova simetrip izmcttu nula i jcdinica ponekad jc korisna ( na primer, kada tre-
ba gencrisati slul'ajnc brujeve).
Vecina ral'unara podrz.ava i sknp instrukcija za rad s brojcvima u formatu
pukretnug zarCJa koji grubo odgovara arirmctickim operacijama s celim brojevima.
Racunari pm!rzavaju bar dve duzine brojna u fonnatu pokretnog zareza (kracu kada
instrukcija
375
je potrebnije brw izracunavanje i duzu kada je potrcbniji visok stcpcn tacnosti). lako
su moguce bczbrojne varijacije formata brojeva s pokretnim zarczom, dan as je za njih
skoro univerzalno prihvacen jcdinstven standard: IEEE 754. Brojevi u formatu po-
kretnog zareza i standard IEEE 754 detaljnije su objasnjeni u dodatku B.
5.5.3 Unarne opcracijc
Unarne (engl. monadic) operacije imaju jedan operandi daju jedan rezultat. Posto
se u ovom slucaju zadajc jedna adrcsa manje nego u binarnim operacijama, instruk-
cije su ponekad kracc, mada cesto treba zadati i druge informacije.
Instrukcije za pomeranje ili rotiranje sadrzaja reci ili bajta vcoma su korisne i zato
cesto postoje mnoge varijante. Pomeranje (logicko) jcste operacija tokom koje se biro-
vi pomeraju ulcvo ili udesno, pri cemu se gubc bitovi koji pret1u (levu ili desnu) granicu
reci. Rotiranjc (logicko) jcste pomeranje pri komc se bitovi koji ispadnu s jednog kraja
pojavljuju na clrugom. Razlika izmcdu pomeranja i rotiranja p1ikazana je u nasravku.
00000000 00000000 00000000 0 l ll 00 l t A
00000000 00000000 00000000 000 Ill 00 A pomcreno 2 hita uclesno
ll 000000 00000000 00000000 000 Ill 00 A rotirano 2 bita udcsno
Pomeranje ulevo i udesno kao i rotiranje ulcvo i udesno, imaju svoju primenu. Ako
se n-bitna rec rotira ulcvo za k bitova, dobija se isti rewltat kao da je rotirana udcsno
za n-k bitova.
Pomeranje udesno cesto sc izvodi liZ prosirivanje !.naka. To znaci da se upraznjena
mcsta na levom kraju reci popunjavaju originalnim bitom za znak (nulom ili jedini-
com). lzglcda kao cia sc bit za znak umnozio udesno. lzrnedu ostalog, to znaci da cc
negativan broj ostati negativan. Ova situacija je u nastavku ilustrovana za dvobitno
pomeranje udesno.
l l l !Ill l l II l l 1 l I l Ill I l l I l I ll 0000 A
00 llllll llllllll llllllll llllllOO A pomereno bcz prosirivanja znaka
llllllll llllllll llllllll llllll 00 A pomereno uz prosirivanje znaka
Va.l.na primena pomeranja je rnnozenje i deljenjc stepenom broja 2. Ako se poziti-
van broj pomeri ulevo za k bitova, rezultat ce ( osim ako dode do prenosa) biti prvo-
bitni broj pomnozen sa 2k Ukoliko sc poziti van ceo broj pomeri udesno z.a k bitova,
rczultat je originalni broj podeljcn sa 2k
Pomeranjc se moze iskoristiti za ubrzavanje izvesnih aritmetickih operacija. Raz-
rnotrite, na primer, izracunavanje formule 18 x n za neki pozitivan ceo broj n. Posto
je 18 x n = 16 x 11 + 2 x n , 16 x 11 se moze dobiti pomcranjcm kopijc n za 4 bita ulevo.
2 x n se moze dobiti pomcranjem broja 11 za l bit ulevo. Zbir ova dva brojaje 18 x 11.
Mnozenjc je izvecleno pomocu prcmestanja (kopiranja), dva pomcranja i jednog sabi-
ranja. sto je cesto bde nego standarno mno:l,enje. Naravno, prevodilac moze da izve-
de ovaj trik samo ako je jedan cinilac konstanta.
-
376
Poglavljc 5: Nivo arhitekture skupa instrukcija
Pomeranje negativnih brojcva, cak i uz prosirivanje 1naka. daje sasvim drugacije
rezuitate. Razmotritc:, na primer, negativan hroj u kornpicmentu jcdinice, -I. Kada se
pomeri I hit uicvo, dobija se- 3. Drugim jcdnobitnim pomeranjcm uievo dohija sc -7:
Illlllll lillllll llllllll IllllllO- I kao komplemcnl jedinice
llllllll llllllll IIII!lll III11100-I pomercnl bitulcvo=-3
11111111 IIIIIIII 1111IIll 11111000- I pomercn 2 hila u1evo = -7
Pomeranjc ulcvo negativnih brojeva izra:l.cnih Lto kompiement jedinice nije isto
sto i mnozenje sa 2. Pomeranje udesno, pak. ispravno simu1ira dcijcnje.
Sada razmutritc broj -1, prikazan kao komp1emenl dvojke. Kada se pomeri o hito-
va udesno u1. prosirivanje znaL1. dobija se -I. ;ro je nctacno jer je mudul celubrojnug
dc1jcnja -I I 64 jcdnak 0:
11111Il1 IIIIIIII IIIIIIII lllllll1 - 1 kau komplerncnt dvujke
lllll II I I I I I II II II I Ill I I Ill II Ill - I pomcrerw 6 bitova udesno = -I
Pomcranjc udcsno po pravilu duvodi do grcskc jcr sc udsccanJCill hinarnih cifara
rczultat pumcra ka hrojcvima .. sene slaze s pravilima aritmctikc s cc-
lim nc:gativnim brojcvima. Pomc:ranjc: ulevo. mcJutim. ispravnu simuiira rnnnzc:njc s
brujcm 2.
Opcracijc rotiranJa kurisne Sll Dl pakmanje nizova bitma u reci. Aku je potrchn()
tt.:stirati \VC hitoVC nckt' rc(i, U/aC>lOJ1Tlirnjcdnobitnim rotiranjt'lll svaki hit CC dolclliti
na mcsto hila za znai-., gdc sc mo/.e lakn testir,tti. a po testiranJU svih bitova n:c o'tajc
jcdnaka originalu. Operacije rotiranja cistije su ud operacija pomerania jer q; tokum
njihovog ne gubc informaLije: proi;vuljna .\C po-
nistiti drugum npcracijom rotiranja.
!':dec binarnc <lJlcTacije nhavljaju sc toliko cc.,tu s:t udrcdcnim upcran,iima u
skupu IS;\ in:-.tnt\.;cija [>nnckad pt>stojc' un:m1.: inslrukt'ijt' kojc ih ohav br..;c. l'rc-
mcstanje nuk u mc'lllllrijsi--u rei' iii u rcgi:-.Ltr iJll/.Ctnu je uubicajcllll pri inicipli;.u-
v:lil.Jl! Prcmc,;tanjt' nuk .J.?. 11.1ravnu. spccijalan -;lucaj instrukcij,t za
Zbng el!b:-.nusti pustoji operacija CLR. kuja sadrzi ,am!l
jednu ,tdrc:su koju trehct ubri:;ati (tj. pude,iti njcnu vrednust na 111tlu).
J)mbvanjc jcdinict: udrcdc'TlOj rcei lctkodc JC \C(l!l1a uobicaiern oper<.Jcija pri bru-
j:tll.Jll Unarni clhiik in:;truf-ciJC ADD JC uperacijct INC ciji jc jedan sahirctk uvck 1. Upe-
racija NEG je jDs jl'cbn primer. (ohrt:mje Lnaka) promen1Jive Xu \lvari jc
1/f'clCUila\anjc' r'urrnuie ()-X (binarncl <ldu;im:llljC.i. ali opel. zb<lg cc;te prilllt:i1C ()\ c
ptmt'kad pustt>jl p"sdma NEG. Va7IHl je uo(ifi i1mc:du
aritmetil:ke ''lxr:H:i.Jt' i lugickc ''P<='raCije NOT. Oper,tcip NEG dajc aditivnu in-
vefliju ;aLL toil bmp I hruj k.1ji () kada se dmLt origin:lltt i. Opcracija NOT ">:tlllu
i;Hc,: svc rujcdinal:nc: bitm c u rel:i. Dvc pumem:k upcra.'iJc ,u vrlu siil:nc i u ,i-
c,ttnm koji llL'g:tli'> :te hn,j,vc prccbt:tvlp u kumplcmcntu jedinicc. tt!lc set i<knticnc.
1 U aritmctici s prikat:ttti:n u L11npicmc:ntu dvoJke. irLtruk:_'iJa NCG ,,. uha-
\lp l<!ku ot: pr'u illl.:rltlJU ,vi pujcdinac:1i bitovi, pCt sc /ctllm I,)
5.5 Tipovi instrukcija
377
Binarne i unarnc instrukcije cesto se grupisu prema upotrebi. a ne prema brojL
opcranada s kojima ra<ie. Jcdna grupa obuhvata aritmcticke operacije, uk1jucujuci .
negiranje. Druga grupa obuhvata logickc operacijc i pomeranje, posto se ove dve ka,
tegorije najcesce zajedno koriste za dobijanje podataka.
5.5.4 Poredenje i uslovni skokovi
U skoro svim programima ponckad se ukaze polrcba da se provere podaci i preck
na alternativni niz inslrukcija na osnovu te proverc. Jednostavan primer je funkcija Z<L
izracunavanje kvadratnog korcna, '1/x. Ako je x negativan bruj, proccdura daje poruku
o grdci; ako je x pozitivan broj.,ona izracunava kvadratni koren. Funkcija S<Jrl trcba
da proveri urednost promcnljivc xi da tada obavi skok. prcma tome da li je vrednos:
x negalivna ili nije.
To se po pravilu radi pomocu instrukcija La uslovno grananje koje proveravCJju
odrecteni uslov i upucuju prugramski tok na odrcdcnu memorijsku adresu ako jc on
ispunjen. Ponekacl se jednim bitom unutar instrukcijc ukazujc na to da Ii cc sc skok
obaviti ako je usluv ispunjen iii ce se on obaviti ako usiov nije ispunjcn. Odrcdisna
adresa cesto nije apsolulna. vee se racuna u odnosu na tekucu instrukciju.
lnnedu raziicitih uslova. najccsce se provcrava da 1i je odrcdcni hit u racunaru 0 iii
nijc. ;\ko instrukcija proveri bit za znak broja i usmcri prograrnski tok na oznaku LA-
BEL ukuliko nadc da je on I. naredbc koje pocinju kod oznakc LAJJF.L izvrsice se
ukoliko je broj negativan, a naredbc kojc neposrcdno slcde instrukciju za uslovno
grananje izvrsice sc ukoiiko je proveravani broj 0 iii je pozitivan.
Mnogi racunari imaju biluvc za kodove uslova koji sc koriste cia oznace postojanje
odrcdenih uslova. Na primer, moze postojali bit za prekoraccnjc koji ce biti postavijen
na I kacl god aritmeticka opcracija gcncrise neispravan rezu1rat. Testiranjem ovog bitt
pnwerava se postoji li prckoracenje u aritrnetickuj operaciji. tako da pri njcgovom ot-
krivanju programski tok mo/.c da se skrene na potprogram za obradu greske.
Siicno tome. neki proccsori imaju bit za prenos koji sc postavija kada pri nekt'j
aritmetickoj operaciji prenesena vrednost ..ispaclne' s Ievog kraja registra (na primc:r.
kada se sabiraju elva negalivna broja). Prcnos iz lcvog bila sasvimje uobil'a-
jcna pojava i ne trcba je mt'Sati s ranijc pominjanim prekoracenjem. Testiranje hiLt
prcnosa pulrebno je La aritmctiku visoke preciznosti (tj. kada se ceo hmj prt'dslavlj<t
s dve ili vise rcci ).
Testiranje s nuiom va7.no je za programske pctije, a sluzi i u mnogc druge svrhe.
Kada hi sve instrukcijc za uslovne skokove testiralc samo jeclan bit. da bi se proveriio
da li jc odrectena rec nula. morali bi se teslirati svi bitovi pojedinacno (bko bi se pro-
vcriio da nijedan nije I). Ovakva situacija .,e rcsava tako slo mnogi racuncui imaju in-
strukciju koja proverava ceiu rce i usmcrava programski tok u drugom pravcu ukoliko
je njcna vrcdnost nula. Naravno, ovo resenje samo prchacujc ,.vruc krompir" na nivo
mikruarhitekture. U pr:tbi. hardver obicno sadr/.i registar na cije se sve bitove zaJedntl
primcnjujc operacija OR: una daje jedan hit koji da Ii registar sadrzi barem
jednu jcdinicu. Bit Z na c,Iici normaino bi bio i1racunavan takn stn hi se svi rcml-
tujuci hitovi ALU jcdinice zajeclno podvrgii operaciji OR i invcnovao dobijeni reLU1tat.
.,
.

f
f
if
l

?''
:t
.I
il
Poglavljc 5: Nivo arhitekturc skupa instrukcija
Za potrebe ureuivanja (sortiranja) potlataka, na primer, vazno je testiranje jednakosti
dve reci iii znaka iii, ukoliko nisujednaki, utvrdivanje koja (koji) otl njihje veca (veci).
Za obavljanje ove provere potrebne su tri atlrese: dve za potlatke koji se porede i jetlna
kao oclrediste programskog skoka ukoliko je uslov ispunjen. Racunari s fonnatom in-
strukcija koji dopusta zadavanje tri atlrese, bez problema obavljaju ovo poredenje, ali se
za one koji takve instrukcije nemaju mora snlisliti neki nacin resavanja problema.
Jetlno od uobicajenih rdenja jc tla (dvuadresna) instrukcija ohavi poredenje ire-
zultat poredenja zabeldi u jedan iii vise bitova uslova. Sledeea instrukcija moze cia
proveri bit(ove) uslova ida usmeri programski tok na novu adrcsu ukoliko su dve po-
redene reci jednakc, odnosno ako nisu jednake iii ako je prva vee a od druge. Pentium
4 i Ultra-SPARC Ill koriste ovaj pristup.
Za operaciju poredenja dva broja vazni su neki tini dctalji jer se porel1enje ne mozc
tako jednostavno svesti na oduzimanje. Ako se vrlo veliki pozitivan broj porecli s vrlo
velikim negativnim brojem, operacija otluzimanja ce rezultovati prckoracenjem. Bez
obzira nato, instrukcija za poredenje mora utvrditi da li je zatlati uslov ispunjen i vra-
titi ispravan odgovnr- pri poredenju nema prekoracenja.
Jos jedan vazan tletalj koj i se ticc poreucnja brojevajcste odluci vanje da li brojeve
treha smatrati oznaccnim iii neoznacenim. Trobitne binarne brojcve moguce jc svr-
stati u rastuci rcdoslcd na dva nacina:
Neoznaccni 0.-:naccni
()()() 1 00 ( naj manj i)
001 1 0 I
010 1 1 ()
0 I I Ill
100 ()()()
101 001
110 010
Ill 011 (najvcci)
Levi stu hac prika?.uje pozitivne cele brojeve od 0 do 7 u rastucem rcdosledu. Desni
stubac prikazujc oznacene cele brojcve kao komplemente dvojke: od- 4 do +3. Od-
govor na pitanje ,,Da li je 011 vecc od 1 ()()'/" zavisi otl toga :,matramo li da su brojevi
oznaccni iii nisu. U vecini skupova !SA instrukcija postoje posebne instrukcije za oz-
nacene i neoznacenc hrojeve.
5.5.5 Instrukcijc za pozivanje procedura
Procedura je grupa instrukcija k.oja obavlja odredeni posao i koja se moze pozvati
s vise mesta u programu. Umesto izraza procedura cesto se koristi izraz potprogram
(engl. subrollline), narocito kada se radio programima pisanim na asemblerskom jc-
ziku. U .lavi se sa istim znacenjem koristi izraz metoda. Kada procedura zavrsi svoj
instrukcija
379
posao, ona mora cia vrati programski tok na instrukciju koja neposredno sledi iza in-
strukcije kojom je pozvana. Prema tome, povratna adresa semora saopstiti proceduri
iii ncgde sacuvati, tako da se moze pronaci kada ckxtc vreme povratka .
Povratna adresa se moze smestiti na bilo koje od tri mesta: u memoriju, u
ili na stek. Najlosije resenjc je cia se om smesti na, fiksnulokaciju u memoriji. PrcTJa
ovoj semi, ako procedura pozove drugu proceduru, clrugi poziv bi doveo do gubika
povratne adrese prve procedure.
Malo je poboljsanje ako instrukcija koja poziva proceduru smesti povratnu adresu
u prvu rec procedure, pri cemu se prva izvrsna instrukcija nalazi u drugoj reci. Po-
vratak iz procetlure tada se moze obaviti tako ;to ce procedura indirektno skociti na
svoju prvu rec iJi (Ukoliko hardver ll prvu rec postavi opkod za grananje zajedJD S
povratnom adresom) tako sto ce dird.tno skociti na puvratak adresu. Procedura moze
da poziva druge procedure, posto svaka procedura ima prostora zajednu puvratnuld-
resu. Ako procetlura pozove samu sebe, taj poziv ce propasti zato sto ce drugi
unistiti prvu povratnu adresu. Mogucnost procedure da po...:iva samu sebe, zvana re-
kurzija, izuzetno je vazna kako ;.a teoriju programiranja, tako i za prakticno pro-
gramiranje. Stavise, ne prolazi ni postupak u kome proccduraA puzove procedurL B,
zatim procedura lJ pozove proceduru C, pa procedura C powve proceduru A (irdi-
rektna ili nadovezana rekurzija).
Bitnije pobDljsanje jc aku instrukcija koja poziva proccduru postavi svoju povrat-
nu adresu u registar, prepustajuci procecluri odgovornost daje smcsti na sigurnije ne-
sto. Ako jc proccdura rekurzivna, ona ce povratnu adresu pri svakorn poziva1ju
rnorati da smdta na novo mestu.
Najbolje je ako instrukcija koja poziva proccduru stavi povratnu adresu na stck.
Kada procedura zavrsi svoj pusao, ona uzima povratnu adresu sa steka i smcsta u
prograrnski brojac. Ako postoji takav oblik pozivanja procedura, rekurzija nc iza7iva
nikak \'C posehne prob]eme; povratna ad res aCt' automatski biti sacuvana i IlcCC Se )0-
nistiti prethodna povratna adresa. U ovim uslovirna rekurzija o,e obavlja hez problcn1a.
Takav oblik srndtanja povratnc adrese u arhikkturi JJVM videli smo na slici -+-12
5.5.6 Upravljanje petljama
Cesto valja vise puta ponoviti niz instrukcija, pa neki racunari imaju posehne in-
strukcije koje tn olaksavaju. Svc takve seme sadrze brojac cija vrcdnost raste iii se
smanjuje 1a udredenu konstantu svaki put kada se udc u petlju. U svakom ciklno,u
petlje proverava se i vrednost brojaca, pa k.ada ona dostigne zadati uslov. se
1avrsava.
Prema jednoj metudi, brojac se inicijalizuje izvan petlje i udmah sc prelazi na
tela petije. Poslednja instrukcija pctlje azurira brojac i, ukoliko uslov jos
nije dostignut, vraca programski tok na prvu instrukciju petlje. Ukoliko jc uslov ,fo-
stignut, petija sc z.avrsava i program prelali na prvu instrukciju izvan petlje. Oval.> a
....,..
}:'
;,;

Poglavlje 5: Nivo arhitekture skupa instrukcija
petlja s testiranjem na kraju u jeziku C prikazana je na slici 5-30(a). (Ovde nismo
mogli koristiti Javu posto u tom jeziku ne postoji naredba goto.)
i = 1'
L 1: prva naredba;
poslednja naredba;
i = i + 1;
if (i < n) goto L 1;
(a)
L1:
L2:
i = 1;
if (i > n) goto L2;
prva naredba;
poslednja naredba
i = i + 1;
go to L 1;
(b)
Stika 5-30. I a) Pctlja s tt:stiranjem na kraju. (h) Pctlja s lcstiranjc:m na poCctku.
Za petlju s testiranjcm na kraju karakteri:-.ticno je to da ce se uvek harem jednom
izvrsiti. cak i ako je n manje iii jednako 0. Razmotritc. na primer, program koji odrza-
va kartone zaposlenih u nckoj firmi. U nekom trenutku program cita infnnnacije o
mlrcdenom :-.lul:beniku. On ucitava promenljivu n (broj dcce cloticnog zaposlcnog) i
izvrsava pctlju ll puta, po jcdanum za svako dcte. ucitavajuci imc deteta. njegov pol i
rodcndan da bi lllll lirma mogla poslati rmlendanski poklon, sto je jcdna od prcdnosti
rada u toj rinni. Ako sluzhcnik uopste ncma dcce, n L'c biti 0. alice se petlja ipakjcd-
nom izvrsiti i sluzbenik ce grcskom dobiti poklon.
Slika 5-30(h) prikazujc drugi nacin tcstiranja kuji racli ispravno cak i kada jc 11
manjc iii jcdnaku 0. Obratitc paznju nato da se u dva navcdena slucaja tcsriranjc nc
obavlja na i:-.ti nacin, pa ako jcdna ISA instrukcija trcba ida uvcea brojac ida obavi
testiranjc. projcktanti moraju da sc oprcdele za jcdnu od dvc mctodc.
Razmotritc ktld kuji bi bio gcncrisan 1.a narcdbu
for (i = 0; i < n; i++) { naredbe}
Ako prevodilac ncma nikakav podatak o broju n, on mora da upotrcbi sa
slikc 5-3001) da hi dao ispravan rezultat za slucaj kada jc n ::; 0. Ako. medutim. on
nH>Z,c da utvrdi da JC' 11 > 0 (posrnatrajuci. na primer. mesto gcle JC promenljivoj n do-
ddjcna vrednost). mozc da koristi kvalitctniji kt'\cl. kao sa slikc 5-30(a). Standard za
FORTRAN nckadaje zahtcvan da se sve petljc moraju izvr,siti haremjednom kako bi
uvek bio gencrisan elikasniji k<1cl. kao sa slike 5-30(a). Godine 1977.ovaj stanclarclje
ispravljen. kadajc cak i zajednica korisnika FORTRAN-a shvatila kako imati narcd-
bu w rad u petlji s vanzemaljskom semantikom koja ponckad daje ncispravan odgo-
vor, nijc bas najbolja ideja, cak i ako >C SlCLli jcdna instrukcija za grananje po cik.lusu.
L' jaicima C i Java. osnovne situacije su mek tretirane na pravi nacin.
5.5 Tipovi instrukcija 381
5.5.7 Ulaz/izlaz
Nijedna druga grupa instrukcija ne razlikuje se toliko ocl jeclnog racunara do dru-
gog kao ulazno-izlaznc instrukcije. Na PC racunarima trenutno su primcnjenc tri raz-
licitc seme ulazno-izlaznih instrukcija. To su:
l. Programiran ulaz/izlaz sa cckanjem na oslobadanjc rcsursa.
2. Ulaz/izlaz izazvan sistemskim prekidom.
3. Ulaz/izlaz prcko direktnog pristupanja memoriji (DMA).
Sada cemo dctaljno analizirati svaku od ovih sema.
Najjcdnostavnija ulazno-izlazna metoda jc pogramirani ulaz/izlaz (engl. rru-
granu!led 110). koja se po pravllu koristi u jeftinijimmikroprucesorima (na primer. u
ugradenim sistemima iii u sistemima koji moraju brzo da rcaguju na spoljne prorncne
- sistemima koji rade u realnorn vremenu). Ovakvi proccsori obicno imaju jcdinstvc-
nu instrukciju 1.a ucitavanjc podataka i jedinstvcnu instrukciju .ca njihov izlaz. Svaka
od ovih instrukcija bira jedan oclulazno-izla1.nih uredaja. U jed nom trcnutku prenosi
se samo jedan znak iLinedu llksnog rcgistra u pmccsoru i i1.abranog ubzno-izla,mog
urcdaja. Proccsur mora potpuno da izvrsi odredcni ni.c instrukcija za waki znak koji
se ucitava iii upisujc.
Kao jednostavan primer ove mctode razrnotrite s cctiri jednobajrna rq.;i-
stra (slika 5-31 ). Ova rcgistra se knri;;tc .ca ulaz. status i p<ldatkc. a ch a z.a izlaz i La-
kolle status i podatkc. Svaki imajcdinstvcnu adresu. Ukoliko sc kori.,ti ulalllo-izlazni
uredaj koji jc prcslikan u mcmuriju. sva cctiri rcgistra su deo adrcsnog pmst<'ra mc:-
rnorijc racunara i mogu sc ucitavati ili se u njih niJgu upisivati pudaci ponHK'u ucJ-
bicajcnih instrukcija. Ako niy takJ. za citanje rcgistara i upisivanje u njih i-;Dristc sc
spccijalne ulazno-izlamc instrukcijc. rccimo in,-;trukciJc IN i OUT. l.i oha slucaja uLlz
i izlaz sc dobijaju tako ;lo .se pm!aci i statw;ne irJfurmacije prcnosc izmcJu proccsora
i ovih rcgistara.
, Btt ZcJAK JE STIGAO Btt SPREr,1/,N U, SLEDEC! ZNAK
Status tastature StutL:s dtsple]a
1'1.1 . -]
I 'I J -l
' Btt OMOGUCCN PREKIO Bit OfVIOGUCtN PREKID
Safer tJ::itJture Bafer Jts;_;ie1a
I Preuzet znak ] I Znar: za pr1kazivanje J
Slika 5-Jl. Rcgistri uretbja tcn:1inal.
L.a taSLtlure !;ua hiL.t h.ojt k.utl."'ic t (J bi1ova k..,ji sc. nc h.l
1
t-i:/t_:.
KraJnJi levi bit 0) hardvcr,ki ,e pnst:tvlpn<l l s\ ak.t put kad ;xi,rigne n1ak. Akljc
hoJno. oolhcrski. poot.lvljen bit6. geilc:ri:-:c sc si,;tcmski prckid. \c' prekid ne gc-
nerisc (o prekidima ccmu gov\>riti malu bc,nijcl. Kada <;<.: kllristi pmgramii;.ni
,,

.,


"
'
JY
,

,;
t
l'\

382 Poglavlje 5: Nivo arhitckture skupa instrukcija
uladizlaz, procesor se, ua hi preuzeo podatke, po pravilu vrti u kratkoj petlji, nepresta-
no citajuci saurzaj registra statusa tastature, cekajuCi da se postavi bit 7" Kaua se to do-
godi, softver ucitava registar bafer tastature da hi preuzeo znak" Citanje vrednosti
registra u komc se nalaze podaci s tastature, prouzrokuje cia se bit ZNAK JE STIGAO po-
stavlja na vreunost 0"
Slanje podataka radi na slican nacin" Da biste znak poslali na ekran, sortver prvo
mora ua procita sadrzaj registra sa statusom ekrana ida utvrui da li bit SPREMAN ima
vrednost I" Ako to nijc slucaj, on ga ispituje u pctlji svc dok nc utvrdi claje on dobio
vreunost I, sto znaci da je uredaj spreman da prihvati znak" Cim terminal postane
spreman da prihvati znak, softver ga upisuje u registar bafer ekrana, odakle se prika-
zuje na ekranu, a istovremeno se brise bit SPREMAN u registru sa statusom
KadaJe znak prikazan i terminal pripremljen za preuzimanje sledeceg znaka, kontro-
ler autumatski ponovo postavlja bit SPREMAN na vrednost I.
Kao primer programiranog ulaza/izlaza razmotrite proceduru na Javi sa slike 5-32.
Ova procedura se poziva s dva parametra: znakovni niz koji treba poslati i broj znako-
va niza (najvise I K). Telo procedure je petlja koja salje jedan po jedan znak. Pre nego
posalje bilo koji znak, procesor mora sacekati ua uredaj bude sprcman. Procedure
in i oul obicno su asemblcrski potprogrami za citanje sadrzaja regi,tara uredaja i upi-
sivanje vrednosti u njih, pri ccmu se regis tar za citanje zadajc prvim parametrom, are-
gistar za upisivanje drugim. Deljenjem sa 128 oslobadamo se 7 najmanje znacajnih
bitova, ostavljajuci bit SPREMAN na poziciji bita 0.
public static void output# buffer( char buf[ ], int count) {
II Posalji blok podataka uredaju
int status, i, ready:
for (i = 0: i <count; i++) {
do {
status= in( display# status# reg);
ready= (status 7) & Ox01;
} while (ready '= 1);
out( display# buffer# reg, buf[i]):
II preuzmi status
II izdvoj bit SPREMAN (ready)
Stika 5-32. Primer prograllliranog ulaza/izlaza.
Osnovna mana programiranog ulaza/izlaza jeste to sto se proccsor vec'inu vremena
vrti u petlji, cckajuc'i da uredaj bude spreman. Takav pristup se zovc cekanje na os-
lobadanje resursa (engl. lmsv waiting). Ako prucesor nema nista clrugo da radi (npr.
pruccsor Ll masini za pranje), onuajc cekanje Ll redu (mada cak i jednostavan kontro-
ler cesto mora da nadzire vise istovremcnih dogadaja). ako procesor ima i
drugog posla (npr. da izvrsava da se resurs osloboui je
vremena. pa druga ulazno-izlazna metoda.
instrukcija
383
Procesor c'e se osloboditi cekanja ukoliko pokrene ulaznn-izlazni uredaj i naloii
mu da generise prekicl kada zavrsi posao. Kako se to radi, vidimo na slici 5-31. Pc-
stavljajuci bit OMOGUCEN PREKID u registru uredaja, softver nalaze hardveru da mu
signalizira kad ulazno-izlazni uredaj zavrsi posao. Sistcmske prekide cemo detaljno
obraditi kacla buuemo govorili o upravljanju tokom podataka.
Treba reci da se na veCini racunara signal prekida generise tako sto se na bitme
OMOGUCEN PREKID i SPREMAN primeni operacija AND. Ako softver prvo omoguci
prekide (pre nego sto pokrene ulazno-izlazni uredaj ), oclmah ce nastati prekid, zato
sto ce bit SPREMAN imati vrednost I. Zbog toga je ncophodno prvo pokrcnuti urcd;1j,
a odmah poslc toga omoguc'iti prekide. Upisivanje bajta u statusni registar ne men a
vrednost bita SPREMAN. jer se pn moze sarno procitati.
laku jc ulaz/izlaz podataka koji je zasnovan na prekidima veliki napredak u orl-
nosu na programirani ulaz/izlaz, dalcko je od savrsenst va. Problem je u tome sto treba
generisati prckid za svaki preneti znak. Obrada sistcmskog prekida je skupa. Zato
nam treba nacin da se oslubodimo veeine prekida.
Resenje je vracanje na programirani ulaz/izlaz, ali da u tome ne ucestvuje procescr.
(Rdcnje i mnogih drugih problema lezi u tome da ih rdava neko drugi.) Slika 5-:3
prikazujc kako se to radi. Ovuc postoji dodatni cip, DIVIA kontroler (Direct Memory
Accl'ss -- direktno pristupanje memoriji), koji ima direktan pristup magistrali.
DMAcip ima (najmanjc) cetiri registra kuje mozc da puni softver koji izvrsava pr<)-
ccsor. Prvi registar sadrzi memorijsku adresu za ocitavanje iii upisivanje u mcmoriju.
Drugi sadrzi broj bajtova (iii reci) kojc treba prencti. Trecim se zadaje broj uredaja li
ulazno-izlazni adresni prostor (dakle, opel :l.cljeni ulazno-izlazni u
registru se naznacava da lise zeli citanje iii upisivanje u ulazno-izlazni ureltaj.
Da bistc blok od 32 bajta s mcmorijske adrese 100 upisali u terminal (recimu. na
uredaj 4 ), procesor u prva tri DMA registra upisuje brojcve 32, lllO i 4, au cetvrti kild
za operaciju WRITE (recimo, I), kao na slici 5-33. Kada se jednum inicijalizuje na
opisani nacin, DMA kontroler salje zahtev magistrali da procita bajt 100 iz rnemorije
(na isti nacin na koji bi ga i procesor ocitao iz mcmorije). Kada dobijc ovaj baJt. DMA
kontroler salje ulazno-izlazni zahtcv uredaju 4 za upisivanjc bajta u njcga. Kada 'c
obe ove opcracije zavrse, DMA kuntrolcr uveeava sadrzaj svog adresnug registra
I i smanjuje vrednost svog hrojackog registra za I. Aku je vredno;,t u brojackom re-
gistru jos uvck veca ml 0. iz memorije se cita drugi hajt i upisuje u uredaj.
Kada brojac konacno dostigne vrednost 0. DMA kontroler prestaje da prcnr si
podatkc i aktivira Vlld za prekid na proccsorsknm cipu. Kada postoji DMA cip. pr)-
cesor mora samo ua inicijalizuje nekoliku rcgistara. Posk toga rnoze da radi sta ho,:e
sve dok sene zavrsi prcnos podataka ion dobije signal za prekid ml DMA kontrulera.
Ncki DMA kontroleri imaju dva, tri iii vise skupuva registara. pa mogu da upravljaju
s vise istovremenih prenosa podataka.
ff'
384
Poglavljc 5: Nivo arhitckture skupa instrukcija
Terminal
0
Procesor
BroJac
Ureda1
Mag1strala
Stika 5-JJ. Sistem s DMA kuntrokmm.
lako DMA cip u vclikoj mcri oslubat1a procesor ulawo-izlaznih operacija. postupak
nije potpuno van kontrole. Ako Dl'v!A cip upravlja ulazno-izlaznim ureJajem velike
brzine. kao sto je cvrsti disk. polro.'iice sc mnogo ciklusa magistrale na referenciranje
memorije i uredap. Za to vremc ce procesor morati da ceka (pri pristupu magistrali.
DMA kontroler uvek it.na visi primitet od procesorajer ulazno-izlazni uredaji cesto ne
mogu da tolerisu kasnjenje ). Proces u kmne DMA kontroler odu1.ima procesoru cikluse
magistralc zove sc krada ciklusa (engl. nde stcu/ing). Bcz obzira nato. dobitak ost-
varcn tako sto za svaki prencti bajt (ili rec) ne mora da se gencrise sistemski prekid,
mnogo premasujc gubitke iza;vane kradom ciklusa.
5.5.8 Instrukcije proccsora Pentium 4
U ovom i u sledeca dva udeljka upoznaccmo se sa skupovima inslrukcija tri pro-
cesora iz nasih primcra: Pentiuma 4. UltraSPARC-a i procesura 8051. Svaki skup ima
osnovnu jczgro instrukcija kuje prcvodioei unbicajeno generisu, ali i skup instrukcija
koje se retko koriste iii ih koristi i,kljucivo operativni sistern. U nasoj analizi drzace-
mo se samo uubicajcnih instrukcija. Pocnimo s Pentiumum 4.
Skup instrukeija Pentiuma 4 mdavina je instrukcija koje imaju smisla u 32-bit-
nom rezimu rada i unih koje .-;u ostatak iz doba u kome je Pentium 4 bio procesor
SOK8. Na slici 5-J...J. prikazujemo mali izbor uobicajenih instrukcija za rad s celim hro-
jevirna kojc danasnji prevmlioci i programeri vole da kori,te. Spisak instrukcija ni
izbliza nije put pun jer nisu obuhvacene instrukcije za rad s brojcvima u formatu po-
kretnog l.are/.a, upravljacke instrukcijc. pa eak ni neke od cgzoticnijih instrukcija ta
rad s celim hrojevima (kao sto jc koriscenje osmobitnog haJla u rcgistru AL za pre-
trazivanjc tabelaJ. lrak, navedeni spisak instrukcija dace varn dobru preclstavu u tome
sta mo/.c cia uratli Pentium 4.
i

i
ii:

i
;ii
I


.,
instrukcija 385
Mnoge od instrukcija Pentiuma 4 referencirajujedan ili dva operanda koji se nalaze
u rcgistru ili u memorUi. Na primer, instrukcija ADD, koja ima dva operanda, dodaJe iz-
voriste odredistu, a instrukcija INC, koja ima jedan operand, uvecava svoj operand za
I. Neke od instrukcija postoje u nekoliko blisko povezanih varijanti. Na primer, in-
strukcije za pomeranje bitova to rnogu Ja rade ulevo ili udesno i mugu da tretiraju bit
za znak na poseban ili na uobicajen nacin. VeCina instrukcija se kodira na vise nacina,
prema prirodi operanada.
Na slici 5-34 polja SRC su izvorista informacija i ne menjaju se. Nasuprot tome,
polja DST su odredista i menjaju se pod dejstvom instrukcije. Postoje pravila o tone
sta IIIUZC biti izvuriste, a sta odrediste, koja se prilicno razlikuju ocl instrukcije do in-
strukcije, ali u to necemo sada u)aziti. Mnoge instrukcije tri varijante: za osmo-
bitne, za scsnacstobitne i za tridcsetdvobitnc operandc. One se razlikuju po opkodJ
i(ili) odrcdcnom bitu u instrukciji. Na listi sa slike 5-3-J. u prvi plan su savljenc tri-
dcsctdvobitne instrukcije.
lnstrukcijc snm, preglednosti radi, svrstali u vise grupa. Prva grupa sadrzi instruk-
cijc koje prcmestaju podatke izmel1LI registara. memorije i steka. Drugu gruru
aritmetickc instrukcijc sa oznaccnim i nemnaccnim brojevima. Za mnozcnjc i dclje-
njc, 6-J.-bitni proizvod ili dcljcnik smeslaJU se LI rcgistar EAX (manjc znacajan dco) i
registar EDX (znacajniji deo).
TrCl'a grupa instrukcija obuhvata aritmctiku s binarnu kodiranim dccimalnim ( l3inc-
ry Coded Decimal, BCD) brojevima, gdc sc svaki bajltrctira kao spoj dva cetvorubitna
nibla (engl. nihh/e). Svaki nib! sadrzi jl:.'dnu dccimalnu cifru (od 0 do Y). KomhinaciJC
bitova od l 0 I() do Ill! nc koristc >e. Tak<l scsn:testohitni ccu broj (kao tip podatabJ
moze da sadr:l.i decimalan bmj izmcdu 0 i YY'!'!. lako jc ovakvo smestanje nedikasno.
tako se otklanja polreba da se pretvaraju dccimalni uL1zni podaci u binarne i nbrnuto rri
slanju. Ove instrukcije sc koriste 1.a aritmctid.e upcracije sa BCD bmjev ima k<Jjc intcn-
zivno koriste programi pisani na COBOL-u.
Logicke t bulove) i nstrukcijc i inst rukcije /a pomeranje/rPliranjc raclc s pojedinac-
nim bituvima u rel'i iii bajtu. Postoji vi;e k<mll,inacija mih imtrukc:ija.
Sledece dvc grupc cine instrukcije za tc>tiranJe i porcdcnjc. a potom i grananc
prugramskog toka. prcma dobijenurn rel.liiUtu. Rezultali provcrc i puredcnj:t cuvaJLI
sc u razlicitim bitovim registra EFLAGS. Jxx omaCava -;kup in>trukcija za uslovre
skokove, zavisno od rezullata prctliudnog purcdenj<t ( bituva u rcgistru EFLAGS).
Pentium-+ ima vise instrukCip za uC'itavanjc. smc'Stanje, premcstanje. porcc!en;c i
pretra/.ivanjc znakovnih ni;Pv:J iii reci. Ove irF.trukcije mogu imati specijalan pre-
hksni baJl. REP. i tada sc punavljaJU 'i\'C duk se ne ispuni odrcdeni w;luv (npr. tkk
vredno:,t regislra ECX. kuja se pn svakon; ponavljanju. ne pustane !i).
ovaj nacin sc mogu i pored itt pn,i;:v oiJni blukovi pmlataka. Skdn'.: grura
im,trukcija bavi se kodovima Lhinva.
Poskdnp grupa sastoji ud instrukcija koje c-ent' mugu ni ujcdnu drugu
grupu. Tu su instrukcije za pret\ Jcdnt'g ftmn:lla u drugi. 1.a rad >a ok vi run; prn-
menljivih na ;,teku, za zau:,tavljanJC proccs,1ra i ;:a ulaznu-i;laznc <!peracijc.
r
"'
'
(
Poglavlje 5: Nivo arhitekture skupa instrukcija
Premestanje podataka
MOV DST,SRC PremeSta SAC u OST
PUSH SRC Stav!Ja SAC na stek
POP DST UZJma reG sa steka i smeSta Je u DST
XCHG DSt ,DS2 RazmenJuje OS 1 1 DS2
LEA DST.SRC UCitava etekt1vnu adresu SAC u DST
CMOVcc DST.SRC Uslovno prerneStan)e
Antrneticke
ADD DST,SRC Doda)e SAC na OST
'sus osT.SRC - OduZima SAC ad DST

MUL SRC MnoZ1 EAX sa SAC (neoznaCeno)
IMUL SRC MnoZi EAX sa SAC (oznaCeno)
Dell EDX"EAX sa SAC {neoznaCeno)
IDIV SAC Deli EDX:EAX sa SAC {oznaCena)
ADC DST,SRC Dodaje SAC na DST, zatim
bit prenosa
SBB-DST,SRC Oduz1ma SAC i prenos
INCosT Doda1e 1 na DST
-
DEC DST OduZifnct 1 ad DST

1-:':- ---- ---
Neg1ra DST (aduZima ga ad 0)
L__ _________ i______ _________________
kodirane decimalne
Decimalno
Dec1malno podeSavanJe za oduz1manw
za
ASCII podeSav3n)e Z30du-Ziman]e
ASCII podeSavanJe za rnnoZenJe

za deiJenJe
Logicke
r
Loq1cko AND nod SAC 1 DST j
(rezultat 1de u DST)
OR DST.SRC--rLogtcko OR nad SRC I DST -
(rezultat ide u OST) j
I v,......R DST.SRC Logu::ko XOR nad SAC 1 DST I
OST) ________ j
ZarnenJUJB OST f;ornplernentom
Za pomeranje/rot1ranje
'"1
I_ A DST za
r SHL/SHR DST,# Log1Ck1 pornern DST ulevo/udesno
I ______ --- --------
ROL,ROR DST,# I Rot1ra DST ulevo/udesno za # b1tova
--------- -------------
RCURCR DST.# Rot1ra DST kroz prenos za # b1tova
Za testlranJe/poredenje __ "" __ _

i operandif11a,
1 postavlp irldlkdtore
CMP .. -
1 sr1c:. SRC2 I

Za usrneravanje programskog taka
JMP ADDR SkaCe na ADDR
Jxx ADDR
--.-----
Skok uslovljen 1nd1katomna
CALL ADDR Poz1v procedure na ADDR
RET Povratak IZ procedure
I RET Povratak 1z potprograrna za
obradu prek1da
LOOPxx KruZenJe u petl]i do ispunJen]a uslova
--

lniciran]e softverskog prekida

f----...'----. - ------
Prek1dan1e aka J postaviJen
bit prekoraCenJa
Znakovni nizovi
LOD-S -- Uc:tava ntz
STOS Srnesta n1z - ----
MOVS Prernesta n1z -----
-- ---- ---
CMPS Pored1 dva n1za
SCAS Pretrazu]e n1zove
--
STC
CLC
CMC
SAHF
Za uslove kodova
Postav11a b1t prenosa u reg1stru
Bnse brt pr;;ncsa u registru EFLAGS . I
[)0punJava b1t prenosa
-
Postavl1a bit z<> smer prenoscl
podataka u reg1stru EFLAGS
t-B-n-se-brt -p,-e-no_s_a J
I
u reg1stru
011 za pre ..
EFLAGS
Razne

torm.at OS. 1 (1z


. u litt1e-end1nn 1 obrnuto)
CWo
CWDE SesndE:S!ODitnl oro] u reg1S1ru r'\X .
i , U iE'QIS!ru _j
r---ENTER -SiZE. LV I' -Pravi ste-Ku I
I __ pamocu __________J
8
1 LEAVE Pom3tav.a okv1r nil stehu
iflStrukCi]Orn ENTER
------- --------
NOP
T Za.ustaVIJO rad ------- .
b
- ORT- PORT ____ ]
u <-<gistar AL
I OUT PORl AL- t ::;aile baJI ;:: regiSlr<1 AL
I na prikljucak PORT
-------=-t Ct=!k.a na s1stemsK1 prek1d - ---
SRC = 1zvonSte
DST = odred1Ste
# = broJ qomeran]a/rotlranJa
I_V = # lok3m1h promeniJiVIIl
Slika 5-34. lzbor in,trukcija Pcnttutna .J za rad s celim brojcvitna.
;
5.5 Tipovi instrukcija
387
U skupu instrukcija Pentiuma 4 postoje hrojni prefiksi, od kojih smo jedan (REP)
vee' pomenuli. Svaki od pref1ksaje specijalan hajt koji moze da prethodi vec'ini instruk-
cija, slicno bajtu WIDE u skupu IJVM instrukcija. Pretiks REP nalaze instrukciji ispred
koje se nalazi da se ponovo izvrsava sve dok registar ECX ne dohije vrednost 0. Uz pre-
tikse REPZ i REPNZ, instrukcija koja ih sledi ponavlja se sve dok se ne postavi (ili
obrise) kod uslova Z. Prefiksom LOCK rezervise se magistrala za celu instrukciju da bi
se omoguc'ilo sinhronizovanje raJa viseprocesora. Ostali pretiksi zahtevaju od instruk-
cija da rade u 16-bitnom ili u 32-bitnom rdimu, stone samo da menja duzinu opera-
nada, vee' i potpuno drugacije detlnise nacine adresiranja. Na kraju, Pentium 4 ima i
potpunu semu podele na segmente za ki'Jd, podatke i stek, kao i dodatni segment, stu je
sve nasledio od procesora 8088. Zato postoje prefiksi koji instrukcije za pristupanje
memoriji usmeravaju na njene odredcne segmente, ali nas to (srec'om) ovdc ne z.anima.
5.5.9 Instrukcije procesora UltraSPARC III
Sve cclobrojne instrukcije procesora UltraSPARC III u korisnickom rdimu rada
koje prevodilac mozc da generisc navedene su na slici 5-35. lnstrukcijc za rad s hroje-
virna u formatu pokretnog zareza nisu prikazane, kao ni upravljacke instrukcije (npr.
za odrzavanjc kda i ponovno pokretanjc sistema), instrukcijc koje sezu izvan kori-
snickog adrcsnog prostora. niti zastarele instrukcije. Skup je zacudujuc'e mali: Ultra-
SPARC Illje u pravom smislu rcci racunar sa smanjenim skupom instrukcija (RISC).
Instrukcijc LOAD i STORE standardnog su tipa, s verzijama za l, 2, 4 i 8 bajtova.
Kada sc broj krac'i od 64 bita ucita u (64-bitni) registar, moze se prosiriti njegov znak
iii se sam broj moze prosiriti nulama. Postoje instrukcije i za jcdno i za drugo.
Sledec'aje grupa aritmetickih instrukcija. Instrukcijc koje u imenu imaju oznaku CC
postavljaju bitove NZYC za uslove kodova. One druge tone cine. Na CISC racunari
ma vec'ina instrukcija postavlja kodove uslova, ali je to na RISC racunarima nepozelj
no jer ogranicava slobodu prevodioca da premesta instrukcije dok pokusava da popun1
vremenske proccpe. Ako jc originalni redosled instrukcija A ... B ... C, pri cemu A po
stavlja kodove uslova, a B ih testira, prevodilac ne moze da umetne instrukciju C iz
medu instrukcija A i B ukoliko instrukcija C postavlja kodove uslova. Zbog toga
postoje dve verzije mnogih instrukcija, pri cemu prevodilac standardno koristi onu
verziju u kojoj se ne postavljaju kodovi uslova, osim ako nijc planirano da se oni ka
snije proveravaju. Podrzani su mnozcnje, deljenje oznaccnih i neoznacenih hrojeva.
Oznaceni aritmeticki (engl. tagged arithmetic) format specijalan je samoidentifi
kujuc'i format tridcsetohitnih brojeva. On se moze koristiti s programskim jezicima,
kao sto Sll Smalltalk i Prolog, u kojima sene odreltuje tip promenljivih tokom prcvo
clenja. vee' tokom izvrsavanja Sa ,aritmcticki o;:nacenim" brojevima pre-
vodilac moze da generise instrukciju ADD za koJU c'c tek u trenutku izvrsavanja
programa racunar utvrditi da li jc to celobrojna instrukcija ADD iii instrukcija ADD z,1
rad s brojevima u formatu pokretnog zareza.
r."'-

388
Poglavljc 5: Nivo arhitckture skupa instrukcija
I
ADDR,DST
DUW ADDR,DST
OX ADDR,DST
_L__ ___ _
smeStanje
I
S :TBsRC.ADDR Smesta baJI (8 bitova)
Smestapolure"_(_1_6 bitova). _
STW SRC,ADDR i Smesta rec (32 b1ta)
sn<S'Rc7\oof17raslreno5rii8'Iianje (64 b1ta)- ' z . k k
L________ _ _____ _j a usmeravanJe programs og to a
A
_ fBF'cc:'ADDR--1- Skok s pred;;1danjem--
ntmet1cke IRi- ---j
f
jDD R-t-s2 osrTsabira ______ -- --- -:.--.1 na_e_d_resc_'_'':_"_'U_I_St_ra_ - _j
-DOCC----c.- - --t-s-abir;i; post:1vlj:)TCC-- ---- CALL __i f-'o_"'_varlJ8cProcedur<0 .. ____
1
.
---- --.. - ------------_- RETURN ADDR r Pov1atak 12 p_roce_dure
DDC Sab11a s prenosom -- -- ----Lee--.. --
-----.. --- cc---- -.--- .. - rJMPL ADDR,DST I :Okok I poveZIV30J8
DDCCC s prenosom 1 postaviJa tee --- ---- -r----- ---------- ----!
-UB-RS2 -------.. ---- SAVE i'\1 ,S2,DST PomeranJe prozora i
__ . _ ,_.__ _____ - _ ___ __ ; I url3pred I
1
__LJB_c;c;_____ OdtlZima 1 IRESTORE-.---Tvracan
1
e registarskih-prozora--i
1 SUBC ___ .._____ s prenosom l1___ __ l_l!_P!"__hod_no stanJe __ _ _ _J
rUBCCC " Oduzimas -. CC: __ e:ogran>Ska _ __j
___ j PREFETCH ' Prethodno preuz1mmte 1
R I ,S:' _DS_T_;_MC()ZI_ __ ____ j fir _ _ __ _[ _I'C_Olelnorije c
. 1 :'3D IVX Del! oznaCf:ne broJeve _ _l ______
1
i MI\Si<_ __ t MernCJIIjsk_'l_bariLe!Cl__ !
[ J . -.
SRC "'- 1zvonSni rHQIStar
DST = odred1Sn1 reg1star
Ri = 1Zvor1Snl rr::g1st..1r
S2 1zvonSte. regis tar
Iii neposredna konstama
ADDR -o. rnernoriJSka n.dresd
TRAP;:;> - btoJ iJrD":Jr,'l.rnskf; !<.:Iapka
FCN = lt.wkctJe
=tip OpAUCij8
CO!'J -- konstJ.nta
'.J .o-. oz::.ahJ rt=:g1str:1
CC -= hod usiov:t
R -= odrediSnl ;eg1stzu
c:.. -= usiov
r = LZ,LEZ,Z,NZ.CZ,GEZ
Stika 5-J5. { )snn\ IlL' in .... u:-..LJ jt_' rrdL:>:-:>Ura L ltLtSP, \ RC tiL
5.5 Tipovi instrukcija 389
Grupa za pomeranje sadr7i jcdnu instrukciju za pomeranje ulevo i dve za pomcranjc:
svaku u 32-bitnoj i u 64-bitnoJ produzenuj vcrziji. U instrukciji SLL pomeraju
se sva 64 posto jc takav pristup kompatibilan sa starim softverorn. Pomeranja se
najcesc'e koristc za manipulisanje bitovima. CTSC racunari po pravilu imaju brojne
strukcije za pomcmnje i rutiranje, gotovo svc potpuno bcskorisne. Malo je autora prc-
voclilaca koji cc patiti zato sto ih nema.
Grupa logickih i nstrukcija analogna je aritmetickoj grupi. U njoj su instrukcije AND,
OR, EXCLUSIVE OR. ANON, ORN i XNORN. Poslednjc tri instrukcije sumnjive su vred-
nosti, ali se mngu UJCdnom ciklusu i skoro cia ne zahlevaju prosirenje hardvera,
tako da su zatlrzane. C'ak i tvorci RISC racunara ponekad podlegnu iskuscnjima.
Skdeea gupa in,ttukcija namcnjena je upravljanju programskim tokom. BPcc
predstavlja grupu in,trukcija za preusmcravanje programskog toka ako jc odredcni
uslov ispunjcn i instrukcija sadrzi prcdvic1anje prevodioca da 1i c'e do skoka doci. BPr
test ira regio,tar i prcusmcrava program ako nac1c da je zadati uslov ispunjcn.
Za pozivanjc procedura prcdvidena su dva nacina. lnstrukcija CALL korisli formal
4 sa slike 5-15 sa pomcrajcm (racunatirn u rdinw) od registra PC.
Ova vrednust jc dovuljna da se dodc do svake procedure koja sc nalazi unutar 2 gt-
gahajta ml puzivaoca. lnstrukcija CALL odla2c svoju povratnu adrcsu u registar R15.
koji pw;Je poziva postaje rcgistar R31.
Drugi nacin pozivanja proccdura je pomocu inslrukcije JMPL koja kuristi format
1 a i1i 1 h, i omogucava srndtanjc povratnc adrese u hilo koji registar. OvaJ oh1ikje ko-
rislan kada sc adrcsa odrcdista izracunava tokom izvrsavanja .
lnstrukctje SAVE i RESTORE rade s registarskim pruzorom is pokazivacem steka.
Ohe up;tdaju u pmgrarnsku k1opku kada s1edcci (prcthodni) pruzor nijc raspuloL.iv.
lnstrukcija
: MOIJ SRC,DST
Ctv1P SRX1.SRC2
. TST SRC
NOT DST
i'JECi DST
INC OST
DEC DST
CL.R DST
NCP
RET
1 Kako se simulira
, Primenjuje se OR na SRC i GO, a rezultat se smesta u DST
Oduzima SRC2 od SRC1 instrukcijom SUBCC i rezultat se smesta
u GO
i Primenjuje se ORCC na SRC i GO, a rezultat se smesta u GO
.,

l
i Oduzima se DST od GO instrukcijom SUB i rezultat se smesta u DST
lnstrukcijom ADD dodaje se 1 na DST (neposredni operand)
i lnstrukcijom SUB oduzima se 1 od DST (neposredni operand)
- ---
Primenjuje se OR na GO i GO i rezultat se smesta u DST
-------- -- -- --
lnstrukcijom SETHI postavlja se GO na 0
JMPL %17+8,%GO
Slika 5-36. Nekc 'imulirane instrukcijc prucesora UltraSPr\RC IlL
l'u,]c:dnja grupa sadrzi razm,rodne instrukcije. lnstrukcija SETHI je neophodna jcr
sc !lC:fh>.,redni 32-hitni operand ne mozc smcstiti u rcgistar. Zato sc pnrnucu instrukcije
SEThi P('clcsav<ljtl bitovi mi I 0 do 31, dok naredna instrukcija sadrzi ostalak ncposrecl-
nt)g t1pcranda. I'!"'-
Jii;
1;:


390 Poglavlje 5: Nivo arhitekture skupa instrukcija
lnstrukcija za broj elemenata populacije je cudna. Ona brojijedinice u zadatoj reci.
Sapucc se da je ova instrukcija dobra za simuliranje eksplozije bombi i da zato Na-
cionalna laboratorija u Los Alamosu (veliki ,potrosac" takvih dogadaja) rado gleda
na racunare koji je imaju. Poslcdnje tri instrukcije sluze za citanje specijalnih regista-
ra i upisivanje vrednosti u njih.
Mnoge poznate ClSC instrukcije kojih nema na listi lako se mogu simulirati iii po-
mocu rcgistra GO iii pomocu konstantnog opcranda (format I b). Nekoliko takvih in-
strukcija prikazano je na slici 5-36. Njih prepoznaje asembler procesora UltraSPARC
III i zato ih prcvodioci ccsto gcnerisu. Mnoge od njih koriste cinjenicu da je GO hard-
verski postavljen na 0 ida smestanje vrednosti u njega ncma nikakav efckat.
5.5.10 lnstrukcije procesora 8051
Proccsor 8051 ima jcdnostavan skup instrukcija ciji jc prvi deo prikazan na slici
5-36. Svaki red tahcle na slici sadrzi mnemonik instrukcije. njen k.ratak opis i pri-
menljiv nacin adrcsiranja izvorista iii odredista, zavisno od toga da li sc u opisu po-
javljuje rec src iii d.11. Kao se moze occkivati, pnstoje hrojne instrukcijc MOV za
prcmdtanje podataka izmcdu akumulatora ACC. registara i memorije. Postoje in-
strukcijc za smdtanjc podataka na stek i uzirnanje s njega, pri cemu na stck u!..azuje
namenski rcgistar. Memorija iznad adrcse 256, koja je uvek spoljna po;to proccsor
8051 ima samo 128 hajtova (8052 ima samn 256 bajtnva). uvck se aclresira indirektno
preko 16-hitnog rcgistra DPTR. Jos nekc instrukcijc za zamenjivanje dclova registara
zakljucuju ovu grupu instrukcija za prcmcstanje podataka.
Proccsor 805 I ima jednostavnc aritmctickc instrukcije za sahiranjc. oduzimanje,
rnnozenje i deljcnje, pri CC!llll St.: za poslednje dve instrukcijc koriste tiksni registri.
Postojc i ccsto sc koristc i mogucnnsti nt postupno uvecavanjc, (ldnosno smanJivanjc
sadrla.ja rcgistara. Tu su i logicke instrukcije, kao i instrukcije za rotiranje.
Ostale instrukcijc proccsora 1-:051 prikazane suna slici 5-36. To su instrukcije za rad
s bitovima. Na primer, instrukcijom
SETB 43
po.-,tavlja se samo hit 43. hcz rcmeccnja ostalih bitova u hajtu. Zatim slcde instrukcijc
za upravljanje programskim tukom. ukljucujuci instrukcije za skukove i pozivanje
proccdura, kao i dvc instrukcije za uslovnc skokovc koje porede izvoristc s nekom
vrednoscu i jcdnu instrukciju (LJJNZ), koja se koristi za rad u pctlji.
5.5.11 Porcdenje skupova instrukcija
Tri skupa instru!..cija za procesorc iz nasilt primera veoma sc razlikuju. Pentium 4
jc klasican dvoadresni 32-bitni CISC procesor. s dugom istorijom. s pomalo cudnim
i veoma ncrcgularnim nacinima adresiranja, kao i s rnnogo instrukcija za obracanje
memorij i.
instrukcija 391
; ()pis - - 1 ACCl Reg.-f_[)_i_r_ @A c _IBil I
l MO_V : s!c I _ 1 x _ [x _ x j x I j l
1 MOV_ r src;u __ G _ l lx f x _ _J ___
' MOV LPremesta src u memonJU . V + x x I x . -----l
r-MOV -! .;rc ---. I X -1 .X. --r.
! 1 memonju . , ' ,
Mov i +- -r_--J --1- - _
MOVC , Premesta k6.d na adre su u D.PTR I , l J
j uve6anu za pomeraj u ACC I I
MOVC Premesta k6d na adresu u PC uve6anu
1
I
i MOVX
1
t }-- -+] j
1 memorije u ACC ! I , I
II MOVX Premesta bajt iz spoljasnje RAM ___ , --
, memorije u ACC @DPTR
Premesta bajt iz ACC u spoljasnje RAM x
Premesta baJt iz ACC @DPTR u
spoljasnje RAM memorije
Uzima bajt sa steka u dst
1

. ,_RazlllenjtJj_e_ sacjrzaj i d_st ____ - k -


XCHD l Razmenjuje najmanje znacajnu cifru '
_ _

i ds_t __ _ __
I SWAP Zamenjuje mesta niblovima u dst
ADD
1
ADDC
:suss
--- ---- -- ---- --
Dodaje sadrzaj src u ACC
Dodaje sadrzaj src u ACC uz prenos
- I
,x
t
L-

X
,X
X X I X
X 'X I X .__
Oduzima sadrzaj src od ACC uz
pozajmljivanje
x I x !x x
f - -- - )-
; INC Uve6ava sadrzaj dst (za 1)
DEC . Umanjuje sadrzaj dst (za 1)
. INC --! DPTR
'MUL Mnozi
DIV Deli
Decimalno podesava dst
X
0--
X
1-
-1
-- j _ _,
----- -+
DA
MJL
1 ACC
Pri.menjuj.e AND na src i ACC. i rezultat I x
; ANL Primenjuje AND na ACC i dst, i rezultat
smesta u dst :
ANL Primenjuje AND na neposrednu
konstantu i dst, i rezultat smesta u dst I
L --
Slika 5-37. Skup instrukcija proccsura 8051, prvi dco.
X
I
I
T
I
J
w--

,.
392
i0st._
IORL
ORL
ORL
XRL
XRL
ixRL
!
CLR
CPL
RL
RLC
RR
[RRC
Poglavlje 5: Nivo arhitekturc skupa instrukcija
Opis
PrimenJUJe OR na src i ACC, i rezultat
smesta u ACC
Primenjuje OR na ACC i dst, i rezultat
smesta u dst
Primenjuje OR na neposrednu
konstantu i dst, i rezultat smesta u dst
, ACC _Reg.
(
IX
!
:x
jx
!
X
:X
--+
Primenjuje XOR na src i ACC, i rezultat
smesta u ACC
l
x
I X
Primenjuje XOR na ACC i dst. i rezultat
smesta u dst
Primenjuje XOR na neposrednu
, konstantu i dst i rezultat smesta u dst
: Brise dst
Dopunjava dst (do 1)
Rotira dst ulevo
Rotira dst ulevo kroz prenos
:X
'X
]x
I X
1 Rottra dst udesno x
I Rotira dst kroz pre nos x
1
I
X
X
i
X
Slika 5-37. Skup itL,truk,Jja proccsora I, prvi Jeo. (nu.1till uk!
c
-
i
I
I
-t
I
I
L
I
UltraSPARC Ill _jc :,avrcrnen tmadre:,ni (J..1.-bitni R!SC prucc:,ur, sa arhitclturom
tipa ucitaj-uskladi;ti. santo spar nacina adn.:siranja i' kompaktnim i dika'ittim sku-
pnm instrukcija. i\rhitcktura procesora XO:'i I Pdgovara proccsotu namcnjeJHJfll za
ugradnju i takn jc puddcna da sva staje na cip.
In st.
CLR
SETB
I CPL
ANL
ANL
1
0RL
I
ORL
MOV
MOV
JV
, Opis
i Brise bit
Postavlja b1t
1 Dopun1ava btl (do 1)
I - -.. .
i Primenjuje AND na src i prenos.
' i rezultat smesta u prenos
: Primenjuje AND na komplernent src
i prenos, 1 rezultat smesta u prenos
Primenjuje OR na src i prenos. i rezultat
srnesta uprenos
' Primenjuje OR na komplement src
1 prenos. i rezultat smesta u prenos
Prernesta src u prenos
! P;ernesta prenos u src-
1 Skate na relativnu adresu ako je
postavljen bit prenosa
ACC: Reg. Dir @R ,#
--- -+--
Slika 5-3S. Sl-.up in ... trukLija pncesor._l XO:'l, dr11gi dC\l.
;c
:Bit
X 'X
,x X
:X ; X
X
I X
X
X
X
5.5 Tipovi instrukcija

In st.
JNC
Opis
[_
ACC Reg. c
193

-rsit
I
!.is
!
Skace na relativnu adresu ako nije
1
postavljen bit prenosa
H
: adresu ako ie
prenosa podat",ka
- "--- --e.-
_,
,. -
I JNB
I
i JBC
1
Skace na relativnu adresu ako nije
bit prenosa podataka
i Skate na relativnu adresu ako J8
I postavljen bit srnera prenosa oodataka i
I ako je bit prenosa prazan
ACALL Poziva potprogram (11-bttna adresa)
LCALL Poziva potprograrn (16-brtna adresa)
RET Vraca se tz porprograrna
RETI Vrata se iz potprograma za obradu
prekida
: SJMP Kratak skok na relativnu adresu (8-bitna
adresa)
AJMP , Skate na apsolutnu adresu ( 11-bitna
I
I-
1 LJtvlP
JMP
adresa)
Sl\ace na apsolutnu adresu ( 16-brtna
adresa)
lndirektatl skok na relativnu adresu u
odr1osu na DPR.,.ACC
: JZ , Sk.ace ako je ACC nul a
JNZ : Skate ako ,1\,CC nije nula
: CJNE , Poredi src i ACC, skace ako nisu
CJNE

NOP
:
' Poredi src s neposrednom konstantom,
' skate aka nisu iednaki
UmanJ'Jje sadrzaj dstt skace ako nije
nul a
Ne r.J.di n1Sta
;

j --
t I
- , I l
I
t-
i
_,
,.
!
I
I
--r--
I
I
I
!
_ _,
X ,X
X X
Slika 5-JS. Sf-up instrukcija proccsora SO'i I. drugi cleo. (nllsU/vilk)
X
I
J
I
, _ _-j
-t - - I
I
!
i
-----
S; aki cJd rri proccscra , razlogom je napravljen onakav kakav je. Arhitckturu Pcn-
tiuma-+ ndrcduju tri giavna i:inioca:
I. K,,n,patibilno;,t :,a ,,Llrijim ver1.ipma.
2. Kumratihilnnst 'a c;tarijim vcrzijama.
J. K,lmparib:lnost :-:a ;tarijim verzijama.
ni\\JU/!tanja niko lLmas ne bi napravio taL1v ncskladan pruccsor. s
t<JlikD P<'ljllllh' rc,;J;,:itih rcgistara. To utciava pisanje pn:vodilaca za proccsor
l'cntiutn -i . .'lcJ:J-:LrUk takodc tcra prcvodioce da promenljivc stalno upisuju

394
Poglavlje 5: Nivo arhitektme skupa instrukcija
u rnemoriju i da ih odatle ponovo ucitavaju, sto je jeftino, cak i uz dva ili tri nivoa
kesiranja. Potvrda kvalitikovanosti Intelovih inzenjeraje to sto je Pentium 4 tako brz,
cak i uz ogranicenja njegovog nivoa !SA. Mcdutim, kao sto smo vidcli u poglavlju 4,
implementacija ovog nivoaje izuctno slozena.
UltraSPARC III predstavlja poslednju rec ISA arhitckture. On ima potpunu 64-bit-
nu !SA arhitekturu (sa I 28-bitnom magistralom). Uz to ima brojne registrc i skup in-
strukcija koji favorizuje troregistarske operacijc, kao i malu grupu instrukcija LOAD i
STORE. Svc instrukcijc su iste duzine, mada je broj formata za njih malo izmakao
kontroli. lpak. ovaj skup instrukcija se lako i efikasno implementira. Vecina novih
projekata radi se po uzoru na UltraSPARC Ill, ali uz manje formata za instrukcijc.
Proccsor 8051 ima jednostavan i prilicno uravnotden skup instrukcija s relativno
malo instrukcija i samo nekoliko nacina adrcsiranja. On se istice po tome sto ima ce-
tiri skupa registara namenjenih brzoj obradi sistemskih prekida, po nacinu pristupanja
registrima u memorijskom prostoru i iznenadujuce mocnom podskupu instrukcija za
raJ s bitovima. Njegova glavna odlika je to sto se moze implementirati s vrlo malim
brojcm tranzistora, zbog cega jc cena proizvodnje po cipu veoma niska.
5.6 TOK IZVRSAVANJA
Tok izvrsavanja (engl. jlmv of" control) odnosi se na niz kojim se instrukcije dina-
micki izvrsavaju. U opstem slucaju. ako nema grananja i pozivanja procedura, in-
strukcije koje sleclc jedna drugu preuzimaju se sa uzastopnih memorijskih lokacija.
Pozi vanje procedure izaziva izmenu toka tako zaustavlp proceduru
koja je u toku i zapocinje izvrsavanje pozvane procedure. Korutine su slicne proce-
durama i izazivaju slicne izmene toka One su zgudne za simuliranje pa-
ralclnih procesa. Programske klopkc i sisternski prekidi takode izazivaju promenu
toka izvrsavanja kada se stcknu odrec1eni specijalni uslovi. Sve ovo cemo obraditi u
narednirn odeljcima.
5.6.1 Sekvencijalni tok izvrsavanja i grananje
Yecina instrukcija ne uticc na tok Posto se jedna instrukcija izvrsi,
preuzima se instrukcija koja je slcdi u memoriji i zatim sc izvrsava. Poslc svakc in-
strukcije. sadr:7.aj programskug hrojaca uvecava sc za duzinu instrukcije. Kada se po-
smatra tokom duzcg perioda. sadrzaj prngramskog brojaca je skoro linearna funkcija
vremena. kuja raste za prosecnu duzinu instrukcije unutar prosecnog vremena izvrsa-
vanja instrukcije. Ukol iko to iskazemo na drugi nacin, undaje dinamicki redo sled ko-
jim procesm stvarno izvrsava instrukcijejcdnak redosledu kojim se one pojavljuju u
listingu prograrna- slika 5- 39(a). Ako program sadrzi grananja, tada vise ne vazi uvaj
jcdnostavan minos izmedu redosleda kojim su instrukcije poredane u memoriji ire-
dosleda kojim se izvrsavaju. Kacla postoje grananja, sadrzaj programskog brojaca
prestaje da bude monotono rastuca funkcija vrcmena - slika 5-39(b ). Zhog toga,
postaje S>'e teze pratiti redosled izvrsavanja instrukcija na osnovu listinga prugrama.
5.6 Tok izvrsavanja
"' >U
"' a
..0
"'


"' 2
0.

"D
"' (/)
Vreme
Ia)
"' >U
"' 0
..0
en
0
""'
E
"'
en
2
0.


(/)
395
/:
I I
I I
I I
I I
I I
I I
:
I I
I I
:!;/
V
: I I
I I
I I
I I
I
Vreme
I b)
Stika 5-3'). Sadrzaj prograrnskog brojaca u funkciji vrcrnena. (a) Bcz grananja. (b) S grananjem.
Kada prograrneri sarno uz velike tdkoce mogu da prate sekvencu kojom procesor
izvrbva instrukcije. onda lako naprave gresku. Ovo zapal.anje je navelo Dijkstru
( 196Ra) da napise tacla kontraverzno pismo pod naslovom .,GO TO Statement Conside-
red Harmful" (Da li je naredha GO TO u kome predlaze programerima da iz-
begavaju naredbu goto. To pismo je zacelo revoluciju strukturiranug programiranja ciji
je jed an od proklamovanih ciljeva bio da se naredba go to zameni potpunije strukturira-
nim oblicima toka izvrsavanja kao sto je, npr. petlja while. Naravno. ovakvi programi se
prevodc u programe drugog nivoa koji mogu imati brojna grananja, zato sto to zahteva
implementiranje naredaba if, while i drugih upravljackih struktura visokog nivoa.
5.6.2 Procedure
Najvaznija tehnika strukturiranja programa je procedura. S jcdne strane. pozivanje
procedure menja tok izvrsavanja na isti nacin kao i grananje. ali za razliku od grana-
nja, kada zavrsi posao zbog kojeg je pozvana, procedura vraca tok iLvrsavanja na na-
redbu iii instrukciju koja slecli neposredno iza poz.iva procecluri.
Medutim. s druge strane. telo procedure se moze posmatrati kau dcfinicija nove in-
strukcije na viscm nivou. S tog procedura se mole smatrati jedinstvenom
instrukcijom, iako ponekacl prilicno slozenom. Da biste rawmeli deo koda koji sadrzi
poziv proceduri, dovoljno je da znatc ona racli, a ne i kako to radi.
Posebno zanimljiva vrsta procedure je rekurzivna proecdura. tj. procedura koja
poziva samu sebe, clirektno iii imlirektno preko lanca drugih procedura. Proucava-
njem rekurzivnih procedura moze se steCi dobar uvid unacin implemcntiranja poziva
procedura i znacenje lokalnih promenljivih. Sada cemo dati jedan primer rekurzivne
procedure.

396
Poglavljc 5: Nivo arhitekturc skupa instrukcija
.. Hanojskc kule" su drevni problem koji, zahvaljujuci rckurziji, ima jednostavno
resenje. U jed nom manastiru u Hanoju postoje tri zlatna stubica. Na prvi oJ njih su na-
nizana 64 zlatna Jiska, svaki sa otvorom u ccntru kroz koji prulazi stubic'. Svaki naniza-
ni disk nesto je manjeg prccnika od onog neposrcdno is pod njcga. Drugi i trcci stubic su
na pocetku prazni. kaludcri provode vremc tako sto prebacuju jcdan po jedan
disks prvog na trcci stuhic. ali tako da nikada vec'i disk ne bude manjeg. Kada se
zavrsi ovaj posao, vcruje c;e da ce doci kraj sveta. Ako zclite iskust vo iz prvc ruke,
mozete da se posluzite plasticnim diskovima (ito manjim brojem), ali se nece nista do-
goditi kada prnhi,:m. bistc prizvali ,kraj sveta", moratc da upotrebite 64 diska
ito od pravog 1.lata. Slib 'i-40 prikazujc pocctnu kuntiguraciju zan= S diskova.
Stub1c 1 Stubic 2 Stubic 3
I I
Stika 5--10. PcCctna za prohkn1 ltanojskih kula,; pet diskma.
;a prchacivanje n diskova sa prvog stubica na treci glasi ovako: prvo se
11- l prcmcsti s pnog stubiea na drugi. 1.atim sc jedan disk premesti s prvog
stubiL'a 11a urci, 1.atim sc premestc n- I diskova s drugog stubica na treci. Ovo rt.'Senje
j: i!usln,vanu na slici 5-41.
Da bisillu rdili problem. potrebna nam jc procedura za premdtanjc n diskova sa
::.tuhic:1 i na stubic j. Kada sc ova proccdura pozlJVe naredbom
towers.,n. i, j)
lr.:ha da ::.e udstampa. Proceclura prvo proverava da li je 11 = l. Ako jcste,
trivijalno. sarno treba premestiti jedan disk sa i naj. Ako jc n tc I. rescnje
se :;ctslllJi ud t1: koraka koja srno maloprc opisali. od kojih svaki prcdstavlja pozivanje
rtkurt.iVIh:." pn1cedurc.
PotDun') rc,cnjc prikazano je na slici S-42. Da bi se rdio problem sa slikc 5-41.
pu/i v pmcedun:
tcwers\3, 1, 3)
j<:'. tn poziva. On. k.nnkretno, generise slcdece po1.ive
towers'-2, 1, 2)
tO\NBi"S\ i. 1, 3)
tower:;(2, 2, 3J
5.6 Tok izvrsavanja
Pocetno stante
Prvo premesti 2 diska J
sa stubica 1 na stub1c 2
Zatim premest1 1 d1sk
sa stubica 1 na stubic 3
Na kraju, premesti 2
diska sa stubica 2
na stubiC 3
&
I -

I
.
_L

_L
L3
[
&

[


ck

l

397

GkJ
cb cl
.
---- - __ I, __________ .
I"



C
1_2=J __
I

I' .
.
-- - ---j----- - --
Stika 5--11. Ncuphl)(tni za re,;avanje p!"lJbkma tlanoj,kih kui,t s tri di,ka.
Prvi i treci po1.iv- ponnvo ce gcnerisati pu tri poziva, ;w ukupno daje scdam pu,civa.
public void towers( in! n, inti. int j) {
int k;
if (n 1)
System.out.println("Premesti disk sa"+ i +" na" + j):
else {
k 6- I- j;
r-
. _l
398
towers(n- 1, i, k);
towers(1, i, j);
towers(n- 1, k, j);
}
Poglavlje 5: Nivo arhitekture skupa instrukcija
Slika 5-42. Procedura za rdiavanjc probkma llanojskih kula.
Da bismo nwgli da kuristimo rckurzivne procedure, potreban nam je stek za cu-
vanje paramctara i lukalnih promcnljivih za svako pozivanje (isto to smo imali u ar-
hitekturi UVM). Kad god se pozove procedura, na vrhu steka sc oformi nov okvir za
proccduru. Najsvcije formiran okvir je tekuci okvir. U nasim primerima stek raste
navise. ml memorijskih adrcsa ka visim, kao u arhitckturi IJVM. Tako najsvdiji okvir
ima adrcsu visu od svih drugih okvira.
Osirn pokazivaca steka koji ukazuje na vrh steka, cesto je zgodno imati i pokazi-
vac okvira, f<P. koji ukazuje na liksnu lukaciju unutar okvira. On moze da ukazuje na
vezni pokazivac. kao u arhitekturi IJVM, iii na prvulokalnu promenljivu. Slika 5-43
prikazuje okvir stcka za procesor sa 32-bitnim recima. Pucctni poziv procedure
toHers stavlja promenljivc n, i i j na 'tck i insrukciju CALL koja na stek (na
adrcsu 10 12) stavlja povratnu adresu. Pozvana procedura prvo upisuje staru vrednost
registra FP na stek ( na adrcsu l 0 16) a /.a tim pomera poLu:i vac steka da bi rezervisala
prostor z.a lukalne promcnljive. U1. samo jednu 32-bitnu lokalnu prumenljivu (kl, SP
se uvecava z.a 4 do adrcse 1020. Situacija nastala posle svih ovih aktivnosti prikazana
je na slici 5-43(a).
SP -
FP
s p -f--c--_:.:_-----::-::-1
1 StarCJ '.JredrJOst FP
PovrJtna <1rlresa

I= 1
FP -I n 3
(a(
s p -1----"---1
FP
r-----j
StJravrednostFP 1000
Povratna ad res a
I- 2
I= 1
11=2
k=2
Starn vrednost FP
Povratna adresa
I= 3
i = 1
11=3
lbl
S!aravrednostFP-10/4
Povratna adresa
jd
i = 1
n = 1
k=3
St,HJvrednustFP 1000
Povratna adresa
i = 2
i = 1
n=2
k=2
Stara vrednost FP
Povratna adrr.sa
j=3
I= 1
n=3
lei
Adresa
SP - k 1068
StmvrednostFP=\024 1064
Povratna adresa 1060
1=2 1056
I= 1 1052
.---:----'F.:..P i-1 11 = 1 1 048
k=3 1044
StHf'lVfP.!lliOStFP 10f\Q
Povratna adresa
i = 2
i = 1
11=2
k=2
Stara vrednost FP
Povratna adresa
i = 3
i = 1
11=3
ldl
Star a vrednastFP 1000 1040
Povratna adresa 1036
1032
1028
1024
1020
1016
1012
1000
lei
Stika 5--B. Stck u nckuliko situ:tcija tokom izvrsavanja procdure sa slikc 5-42 .
5.6 Tok izvrsavanja 399
Kad se procedura pozove, prvo treba da snimi prethodno stanjc registra FP (cia bi
se stanje moglo restaurirati po izlasku iz procedure), da kopira sadrzaj registra SP u
regis tar FP i da ga mozda uveca za jednu rei', sto zavisi od rnesta u nov om okviru na
koje ukazuje FP. U ovom primeru, FP ukazuje na prvu lokalnu promenlji vu, dok je u
arhitckturi IJVM, LV ukazivao na vezni pokazivac. Razliciti racunari se prema po-
kazivacu okvira mlnuse razlicito (ponekad on ukazuje na pocetak ili na kraj okvira, ::1
ponekad na njegovu sredinu, kao na slici 5-43 ). Uputno je uporediti slike 5-43 i 4-12
i videti dva nacina na koje se tretira vezni pokazivac. Moguc'i sui drugi nacini. U svirn
slucajevima kljucna je mogucnost da se kasnije programski tok vrati iz procedure ida
se uspostavi stanje steka kakvo je bilo neposredno pre tekuceg pozivanja procedure.
K6d koji snima staru vrcdnost pokazivaca okvira, postavlja njegovu novu vrednost
i uvecava pokazivac steka da bi raervisao prostor za lokalnc promenljive zove se
prolog procedure. Kada se proccdura zavrsi, stek se ponovo mora obrisati, a to se
zove epilog procedure. Jednu od najvaznijih karakteristika racunara predstavljaju
duzina i brzina izvrsavanja koda koJim se obavljaju prolug i epilog. Ako je taj ki'ld
dugacak i spmo radi, pozivanje procedura cc biti skupo. Programcri koji efikasnost
stavljaju na prvo mesto naucice da izbegavaju upotrebu brojnih, kratkih procedura i
da umesto njih pisu velike, monolitne, nestrukturirane programc. lnstrukcije ENTER i
LEAVE Pcntiuma 4 namcnjene su ohavljanju veceg dela prologa i epiloga procedura
na efikasan nacin. Naravno, one koriste posebnu semu rada s pokazivacem okvira, pa
se, ako prevodilac koristi drugaciju ;emu, ne mogu upotrebiti.
Vratimo se sada problemu Hanojskih kula. Pri svakom pozivanju procedure, na stek
se doclaje nov okvir. koji se s njega skida pri povratku. Da bismo ilustrovali upotrchu
steka pri realizovanju rekurzivnih procedura. praticemu pozive, pocevsi od poziva
towers(3, 1, 3)
Slika 5-43(a) prikazuje stek neposredno posle ovog poziva. Procedura prvo prove-
rava da lije n = I, pa kada utvrdi claje n = 3, dodeljuje vrcdnost promenljivoj k i poziva
towers(2. 1, 2)
Posle ovog puziva stek izglecla kao na slici 5-43(bl i pruccdura pocinje rad iz pocet-
ka (pozvana procedura uvek pocinje rad od pocetkal. Ponuvno pruveravanje da !i je
11 = I clajc negativan rezultat, pa se promenljivoj k opet dmleljuje vrcdnost i poziva se
towers(1, 1, 3)
Stek tada izgleda kao na slici 5-43(c) i programski brojac ukazuje na pocetak pro-
cedure. Ovoga pula proveravanje dajc puzitivan rezultat i stampa 'e jedan red. Zatim
se programski tok vraca iz procedure. Pri tom se uklanja jedan okvir sa steka i re,tau-
riraju stare vrednosti registara FP i SP, kao na slici 5-43(dl. Program zatim nastavlja
da se izvrsava s povratne adrese knja predstavlja drugi po1.iv:
towers( 1, 1, 2)

!:i-
400
Poglavljc 5: Nivo arhitckture skupa instrukcija
Ovime se na stek dodaje nov okvir promenljivih. kao na slici S-43(e). Stampa se
drugi red: posle povratka iz procedure okvir se uklanja sa steka. Pozivanje proccdura
nastavlja se na opisani nacin sve dPk prvobitno pozvana procedura ne zavrsi izvrsa-
vanje i sa stcka sene ukoni okvir prikazan na slici 5-43(a). Da histe sasvim razumcli
kako radi rekurzija, preporucujemo da izvrsavanje procedure
towers(3, 1, 3)
simulirate koristeei olovku i hartiju.
5.6.3 Korutine
Pri uohicajenom redoslcdu pozivanja postoji jasna razlika izmedu procedure koja
poziva i pozvane procedure. Rawwtritc pruccduru ;\, koja poziva proccduru B na
slici 5-44.
(a)
Procedura
ko1a poLiva
.A JC pozvana
il qlcwnog
program a
I
i
I
I
I
I
I
!
I
I
!
I
A .se
u qiJVi11 ;)rJgrarn j
I
L _____ __j
(b)
Pozvana
procedura
Siika -.;c LH)/.1)\C i;:vrSavanjc uvck poLinje prvom nan.xlhnm.
-:?.
;.:
':;;
? :


i
l
5.6 Tok inrsavanja 401

Proccdura B obavlja odreL!cno izracunavanje i vraea se u proceduru A. Za tu sitLa-
ciju u prvi mah mo7.cte pomisliti da je simetricna, posto ni A ni B nc prcdstavlj;;ju
glavni program. vee procedure. (Procedura A jc mogla biti pozvana iz glavnog pro-
grarna, ali to ne menja sustinu.) Stavise, prvi put je programski tok presao iz A u B
(pozivanje) a kasnije se vratiu iz B u A (povratak).
Asirnetrija nastaje zato sto pri prelaw prograrnskog toka iz procedure Au B, proce-
dura B pocinje da se izvrsava od pocetka; s druge strane, kada se programski tok iz pro-
cedure B vrati u proceduru A, izvrsavanje ne pocinje od pocetka prueedure A, vee od
naredbe koja sledi iza poziva. Ako sc proceduraA izvrsava neko vremc i ponovo pozove
proceduru B, izvrsavanje zapocinje ponovo od pocetka proced.ure B. a nc od naredbe
koja sledi prethodnu naredbu za povratak. Ako tokom izvrsavanja programa procedura
A pl)f.iva proceduru B mnogo pula, procedura B svaki put pocinje da se izvrsava od
poi:ctka, dok procedura A svoje izvr;avanje nikad ne poCinje od pocetka.
Ova razlika se odral.ava na metodu kojom se programski tok prcnosi izmedu pro-
cedura A i B. Kacla proeedura A put.i va proccduru B, on a koristi instrukciju za pozi-
vanje procedure koja povratnu adresu (tj. adresu narcdbe koja slcdi iza puziva) smdta
na rmgmlno mcsto tna primer, na vrh steka). Ona tada stavlja adresu procedure B u
programski brujac i time zavrsava njenu pozivanjc. Kada procedura 8 nbavi posao.
ona La povratak nc koristi instrukciju za pozivanje (CALL), vee instrukciju za vraeanjc
(RETURN), koja samo uzirna povratnu adrcsu sa steka i smdtajc u prugramski broj,tc.
Ponekad je korisno imati dve procedure. A i B, od J..ojih svaka pu;iva onu drugu
kao proccduru (slika 5-45 ). Kada sc prncedura B vrati u procccluru A, una skuce na na-
rcdbu koja skdi iza pot.iva proct'llurc R, kao sto Sill() vee vidcli. Kada sc pmgramski
tok vrati iz prucedure ,\ u proceduru 8. on se nc vraea na pocetak (osim prvi pull. \ec
na naredbu knja sledi poslednji ,pnvratak, tj. na poslcdnji puziv pruccdurc A. Dvc
procedure k<1jc rack na ovaj nacin zovu sc kmutine (engl. comulinc.ll.
Korutine sc uobicajeno koriste za simuliranje paralelne obradc najc'dnorn
prucesoru. Svaka korutina radi poeudoparalelno sa svim ostalim korutinama. kao da
procesor ima samu za sebc. Takav nacin rada programiranjc nekih aplikacip.
On je koristan i za te,tiranjc -;oftvera koji ee se kasnije iL.vrsavati na vise
Korutinc sc ne mogu pm.ivali uobicajenim instrukcijama CALLi RETURN, zato
adrcsa z.a grananje dolazi sa stcka. kao u instrukciji RETURN, ali za razli!..u <XI nje. sam
poziv korutine stavlja negde povratnu adresu kako bi je pri povratku pronasao. Bil<J bi
kpo kad bi postojala instrukcija za razmenu sadrzaja vrha steka i prug;arlbh)g bru-
jaca. Ona bi. konkretno. prvo prcbacila slaru povralnu adrcsu sa steka u ink'mi regiotar.
zatim na stek smestila sadr!.aJ programskog brojaea i na kraju. kopirala sadrzaj intcr-
nog rcgistra u prograrnski brojac. Posto se sa steka skida jedna rec i ponovo jedna rcc
stavlja na nJega. programski brojac ne menja vrednost. Ovak va instrukcija r::tku po:-.to-
ji, pa se u veeini slucajeva mora :.imulirati pomocu vi;e instrukcija.
J
402
Poglavljc 5: Nivo arhitekturc skupa instrukcija
(a) (b)
Ajepozvana----+--+-------.
iz glavnog programa
A se vraca
u glavni program
Slika 5-45. Kada se nastavi korutinc. izvrsavanje poCinje od narcdbc na kojoj je koru-
tina privremcno prckinuta, a nc ml pocctka.
5.6.4 Programskc klopke
Programska klopka (engl. tmJI) vrsta jc automatskog pm:ivanja procedure iza-
zvanog vaznim dogadajem tokom i;:vrsavanja programa, koji hi trehalo da se retko
ddava. Dobar primer takvog dogad<lJaje neki oblik pn:koracenja. U tmwgim racuna-
rima, ako rezultat aritmeticke operacijc prcmasi najveci broj koji se moze preLbtaviti,
program upada ll klopku. sto znaci da :,e tok izvrsavanja. urnesto se sckvcncijalno
nastavi, skrece na tiksnu memorijsku lokaciju. Na toj liksnoj lnkaciji nalazi se adresa
za grananje u proceduru za obradu grcskc (engl. trap lwndicr) koja preduzima od-
govarajucu akciju (npr. stampa poruku o grdci). Ako se rezultat nekc <lperacije nalazi
u prihvatljivim granicama. program nc upada u klopku.
Sustinska stvar je to stu klopku aktivira ncki izuzetak koji je izazvao _,am pwgram,
a koji otkriva hardver ili mikroprogram. Druga mogucnost za obradu prckoracenjajc-
ste da postoji jcdnobitni rcgistar cija sc vrednost postavlja na I kad god nastane pre-
koraccnje. Programer koji ;feli da provcrava prekoraccnjc, pmle svakc arilmetickc
instrukcije mora da umetnc instrukciju tipa ,skoci aku je pm,tavljcn bit prckorace-
nja''. RadeCi tako, on uspurava izvrsavanje i traCi dragoceni prostor. Klopkc, s druge
strane, za razliku ud programskog pruvcravanja, stede i vremc i mcmoriju.
5.6 Tok izvrsavanja 403
Klopka se moze realizuvati u vic!u cksplicitnog testa koji obavlja mikroprogram (ilt
hardver). Kada se otkrije prekoracenje, adresa klopke se ucita na programski brojac.
Ono sto je najednom nivou samo klopka. na nizcm nivou moze da bude programirana
aktivnost. Kada mikroprogram obavlja testiranje, to jc jos uvek usteda vremena, jer se
testiranjc u samom programu lako moze prcklopiti s nekom drugom opcracijom. Tako
se stedi i mcmorija jer je za obradu greskc potrebno samo jcdno mesto (na primer,
glavna petlja mikroprograma), bez obzira na to koliku se aritmetickih instrukcija po-
javljuje u glavnom programu.
Nekoliko uobicajenih uslova koji mogu da izazovu programske klopke su: prcko-
racenje na jeunoj iii drugoj strani pri radu s brojcvima u pokretnom zarczu, preko-
raccnjc pri radu s celim brojcvin)a, narusavanje zastite, neuetinisan opkod, prelivanjc
steka, pokusaj da se pokrcne nepostojcci ulazno-izlazni uredaj. pokusaj da se preuz-
me rec s neparne adrese i deljenje s nulom.
5.6.5 Sistemski prekidi
Sistemski prckidi (engl. interrupts) promene su toka izvrsavanja koje nc izazivJ
tekuci program, vee ndto drugo, obicno u vezi s ulazno-izlaznirn opcracijama. NJ
primer, program rnoze da nalozi disku cia zapocne pre nos podataka ida ga tako podesi
da izazove prekid kada 1avrsi prenos. Slicno programskoj klopci. sistemski prehl
zaustavlja izvrsavanje programa i usmcrava ga na potprogram za obradu prekidc1
(engl. interrupt hwul/cr) koji preduzima odgovarajucu akciju. Kada zavrsi posao,
potprogram za obradu prckida vraca kontrolu prekinutorn programu. On mora ponc-
vo da pokrenc prekinuti proces ll stanju ll kome je bio kaclaje nastao prekicl, sto znaci
da treba da restaurira sve intcmc registrc u stanje pre prekida.
Sustinska razlik.a iJ:Incdu prugramskih klopki i sistemskih prckidajc sledeca: klop-
ke sc aktiviraju sinhrono s programom, aprekidi su asinhroni. Ako se program ponov'J
izvrsava rnilion puta sa istim ulaznim podacima, klopke ce se svaki put aktivirati na
istom mestu u njcmu, dok c'e se pre kid javljati u razlicito vreme koje zavisi, na primer,
od toga kada je operatcr na kunzoli pritisnuo taster. Klopkc se mogu reprodukovaj
1.ato sto ih direktno izaziva program, a prekidi ne mogujer ih. u najboljem slucaju, pro-
gram i;aziva samo indircktno.
Da biste detaljno sagledali kako rade prekidi, razmotrimo jednu uobicajcnu situa-
ciju: racunar zcli da posaljc red tcksta tcrminalu. Sistemski softver najpre smdta J
bafer svc znakcwc namenjene za ispisivanje na tcrminalu, inicijalizuje globalnu pru-
menljivu prr koja ukazujc na pocctak bafera i postavlja vrednost druge globalne pro-
mcnljivc cow1tna broj znak.ova za slanje. Zatim proverava da li jc terminal spreman,
i ako utvrdi da jeste. saljc prvi znak (npr. pomocu rcgistara kao na slici 5-31). Postu
zapucnc ulazno-izlaLnu operaciju. procesor mo7.c da izvrsava c!ruge programe.
Poslc odredcnog vrcmcna. znak sc pojavljujc na ekranu te1minala. Sada mozc da
se aktivira pre kid. Dogada.Ji koji delle prikazani su u pojcdnostavljenom obliku.
404
Poglavljc 5: Nivo arhitckturc skupa instrukcija
HARDVERSKE AKTIVNOSTI
I. Knntrnler uredaja aktivira vocl za sistemski prekid na sistemskoj magistrali
cia bi zapoceo sekvencu prekida.
2. Cim procesor bmle spreman za obradu sisternskog prekicla, on na magistralu
salje signal za potvrdu prekida.
3. Kada kontroler uredaja vidi daje njegm signal za sistemski pre kid pot vrden,
on na vud za podatke stavlja mali ceo broJ kao svoju identihkaciju. Ovaj broj
se zove vcktor prckida (engl. interrupt vector).
4. Procesor skida s magistrate vcktor prekida i privrerneno ga cuva.
5. Procesor prehacujc sadrzaj programskog hrojaca i registra PSW na stek.
6. Procesur 1.atim pronalazi novu vrednost programskog brojaca koristeci vek-
tm prckida kao imleks u taheli koja se nalat.i na dnu mcmorije. Ako je vred-
nost programskug recimo. 4 bajta, onda vektor prekida n odgovara
adrcsi 4n. Nova vrednost programskog brojaca ukazuje na pocetak potpro-
grama za obradu prekida .ra uredaj koji jc izazvao prekid. Cesto se ucitava ili
mmlitikuje i sadrl:aj regi:-.tra PSW (npr. da hi se onemogucili drugi prekidi).
SOFTVERSKE AKTIVNOSTI
7. Potprogram za obradu prckida prvo cc snimiti sadr;l.aje svih registara koje
koristi kako bi kasnijc mogao da ih rcstaurira. Oni se mugu snimiti na :-.tck ili
u sistemsku tabelu.
R. Svaki vektor prckida dele svi urctlaji odrcdcnl'!! tipa, takD da se jos uvck ne
zna koji je terminal iza1.vao prekid. Broj lcrminala se nm/.c sa;:nati kad se
procita odrcdeni regi:-.tar urcdaja.
tJ. Sada se mogu ucitati i druge informacijc o prekidu (npr. koduvi statusaJ.
10. Ako je doslo do grcskc pri ulazno-i.rlaznim operacijama. on a ;;e mole obra-
diti sada.
II. Al:uriraju se glohalne promenljive Jilr i wunt. Prva sc uvceava cia hi ukazab
na slcdeci hajt. a druga se umanjuje oznacava_)uci da se kolicina ;a sbnJe
smanjila za jedan bajt. Ako je promenljiva count jus uvek vee a od 0. tD
cia imajos znakova .ra slanjc, pa sc znak na koji sada uka;:uje fJ!r kopira u re-
gis tar koji sluzi kao barer za izlazne podatkc.
12. Ako jc potrcbno. saljc se specijalan ki\d da bi se urcdaju iii kontw-
leru prekida da jc pre kid obraden.
13. Re.stauriraju sc svi snimljeni registri.
14. lznsava se instrukcija RETURN FROM INTERRUPT k.oja pmc<:st 'r ponuvo po-
stavlja u radni rc/im i u stanjc kojc jc imao pre nastavlja;;
radom od tackc u kujoj je nastao pre kid.

5.6 Tok izvrsavanja 405
Kljucna odluka sistemskih prckida jeste njihova nevidljivost iii transparentnost
(engl. transparC/lcv). Kada nastanc prekid. obavc sc nekak.vc akti\nosti i izvrsi ncka-
kav ki)d. ali kada to prude. racunar treba da bude u is tom stanju kao i pre prekida. Uko-
liko putprogram za obradu sistcmskog prekida ima tak vu osohinu. kazemo da j;:
nevidljiv (transparentan). Kada su svi prckidi neviclljivJ. laksc ih razumemo.
Ako racunar irna samo Jedan ulazm,-izlazni uredaj. onda prd.idi uvck rade na nai'iil
koji smo upravo opisali i o njima vise nerna sta da se ka?.e. :vkdutim. vcliki racunar
moze da ima brojne ulazno-izlazne urcdajc, od kojih nckoliko muLe da radi
no, mozda za racun razlicitih korisnika. Prema tome. postoji vcrovatnoca da
ce tokom obradc jcdnog prckida drugi urcdaj pozeleti da gencri(c: .\OfJ.ll\eni prekid.
Ovom prubkmu se mo;ic p1jstupiti na dva nacina. Prvi prislllp jc da se
potpmgrami za obradu prckida ciji cc prvi zadatak. cak i pre snimanja rcgistara, bi:i
da onemoguce druge prck.idc. Ovako 'c ne komplikuju stvari. posl<l sc prckidi tada
preuzimaju sekvcnci_jalnn. ali mol.c da stvori problcmc sa urcdajima koji ne tolerisu
kasnjcnje. Na primer. komunikacionim vmlom propu.snog opscga od lJ6()() h/s ;.nakc-
vi ;;tizu svakc I 042 ps. hio racunar spreman za njih iii ne. Ako prethodni znakjos uvek
nijc ubradcn u trcnutku kad pristignc skdcci mak. pmlaci sc mogu i;.gubiti.
Kada racunar irna ulanw-izlaznc urcc1ajc kojima je vrcmc kritican cinilac. bolje je
da se svakom ula;:no-izla.cnum uredaju dudcli odredeni primite! (visok onirna ciji rad
nc trpi kasnjcnje, a nizak onim:t koji nwgu cia cekaju1. S!icno tome, i proccsor trcba da
ima prioritctc koji su mlrcdcni poljcm u registru PSW. Kada pre kid i;.awvc uredaj prio-
ri tela 11. putprogram za njcgovu obradu takc)(lc trcba da irna priori tel/!.
Dok se i;vrsava rotpn'gretm .ra J'rckida prioritcta 11, 1.anemarujc se svak.i
urcLbja niLcg priori leta cia izaL<l\'e nov prekid -;ve dok polprogralll nc obavi
svuj pusao i pFlCe\or \e ne \Tali n,t izv r\avanJC koda ni/,cg priori leta. S drugc slrane,
pr,kidi k<>jc: poku\aju da it.azovu urcda:i viseg prioriteta beL odlaganja se dopustaju.
Kada i sam putprPgr:nn ;a obradu prckida mo!:e bit I prckunut. najbolji nacin da
\a admiui,trati1nng \VC dri.i P''d Kclllln>lutn jestc da sc obezbedi nevi-
di_Jivnst svih prckid:L kaL!llOlrinw jcdno'-of,)\;[11 rrinler \iscstrukih prekida. Racunar
ima tri ula;no-i/b;:na urc:ctaja: s:ampa.:. disk i RS2J2 (serijskiJ vml, s prioritetima 2.,
-+ i 5. Na pocctku (I =0) izvr;a\aSe korisnicki rr()gram. kadal;djednom (t= 10) stam-
pac izanva prekiJ. P<Jkrccc sc: putpn');ram za ,,bradu prekida (POP) iza;vanog slam-
pacem. kao na slici 5-4(>.
Pri 1 = l5, vud RS::'32 gcncri.'c prckid. p,,:;to H'd RS2J2 ima visi pril,ritct (5) co
(::'i. preki\1 \C d,,;vcllpv:t. kuji u ovom trcnutku izvr;ava
['Otpn,gram ,:a ohradu prckida i;azv anog '>tal lja sc na >..tck i pokrece pot-
prPgram ;a ul,radu pr<_kida i;_.J/\Jiitl:,! 1 ,Jdom R S232.
Lt,nije. pri 1 = 20. di,!-_ .ravrsava r"cl i traii nhadu. !Vlectutim. njegov prio-
ritctje ni/.i (41 od prioritcra kPji ,c trc:nut;w (5). tako da hardvcr
proccsora nc dozvol_java i '->11 Pri! = 25, '/_avr;av'a se pot-
program za obradu prckida voc!<lm RS2Y2. t<'K se vraca u
,t:tnjc u KllJClll je bio pre n.:go Vc>d R:-::.2_<::' prck1d (tacnije. nastavlja >e
,--
406
Pre kid izazvan R$232 vodom,
prioriteta 5
Poglavljc 5: Nivo arhitekture skupa instrukcija
Prekid izazavan diskom,
prioriteta 4, na cekanju
POP voda RS232 se zavrsava,
disk izaziva prekid
POP diska se zavrsava
Prekid izazvan stampacem,
prioriteta 2
POP stampaca se zavrsava
1
0 1 0 15 20 25 35 40
I
'----y----''"--v-----'1' - - v - - - ~ - 1 - - v - - __.)1'----...,--''--v------'vreme---
Korisnickl : POP : POP : POP : POP : Korisnicki
program fStampaGa: voda RS232 f diska fstampaCa: program
I I 1 I I
' '
--'IKonsnkl
1
Korismk
------- Stek
t
Slika 5-46. Sled dogadaja u primcru vi,,c,trui-.ih prckida.
izvrsavanjc potprograma za obradu prekida koji jc izazvao stampac, prioritcta 2). Cim
proccsm prcdc na primite! 2 (pre nego sto sc izvrsi ijedna instrukcija) disk dobija do-
LVOIU za pre kid prioriteta 4 i pol program za obradu tog prckida pocinjc s radom. Kada
sc potprogram Lavrsi, nastavlja se potprogram La obradu prckida stampaca. Najzad,
pri t = 40, zavrsavaju se svi potprogrami La obradu prekida i korisnicki program na-
stavlja da radi od tackc na kojoj je prekinut.
Jos od procesora RORR. lntelovi procesorski cipovi dele prckiclc u dva nivoa (prio-
ritcta): prekidc koji se mogu maskirati i prckide koji se nc mogu maskirati. Prekidi
koji sene mogu maskirali u principu se kmiste samo za signaliziranje gresaka (npr.
kad sc javi grdka parnosti u memoriji). Svi ulazno-izlawi uredaji kmistc jeclan pre-
kid koji sc mozc maskirati.
Kada ulazno-izlaLni uredaj posaljc signal za pre kid, proccsor pomocu vektora pre-
kida pronalaLi u tabeli sa 256 odrcdnica aclresu potprograma La njegovu ohradu. Ocl-
rcdnice tahcle su R-bajtni deskriptori scgmenata, a tahcla moze da pocne bilo gdc u
memoriji. Jedan globalni registar ukazuje na njen pocctak.
Uz samo jedan nivo prckida koji moze da iskoristi, proccsor nc.:ma nacina dado-
zvoli ulazno-izlaznom uredaju visokog prioritcta da prekine potprogram za obradu
prekida src.:dnjcg prioriteta, ada to islo ne dozvoli i nekom drugum urcdaju nizeg prio-
ri tela. U lntclovim procesorima. ovaj problem se resava pomocu spuljasnjeg kontro-
lera prckida (npr. cipa R259A). Kada stigne prvi prckid, prioritcta II, procesor prekida
izvrsavanjc glavnog programa. Ukoliko sledeci prckid koji stigne bude viseg priori-
tela, kontroler izaziva nov prckid. Ako je c!rugi prekid niz.eg prioriteta. on sc drzi na
cekanju dok se prvi prekid nc obradi. Da bi ova sema radila. kontmler prekida mora
znati kada se zavrsava potprogram za ohradu prckida, tako da mu procesor mora
poslati komandu kacl potpuno obradi tekuci prekid.
5.7 Uctaljan primer: hanojske kulc 407
5.7 DETALJAN PRIMER: HANOJSKE KULE
Posto smu proucili nivu !SA tri racunara. sklopimo sacla sve kockice i detaljnijc
analizirajmo isti primer na dva veca racunara. Nas primer je program za rdavanjc
problema Hanojskih kula. Verziju ovog programa na Javi prikazali srno na slici 5-42.
U narednim ocleljcima prikazacemo asemblcrski k6d ovog programa.
Medutim, malo cemo varati. Umcsto da vam damn prevod programa na Javi, za pro-
cesure Pentium 4 i UltraSPARC Ill clacemo vam prevod verzijc pisane najcziku C kako
bismo izbegli ncke probleme s Javinirn ulazno-izlaznim operacijama. Jed ina razlika je
zamcna poziva Javinom potprogramu za stampanjc f1rintln standardnom C naredbom
printf("Premesti disk sa %dna %d\n", i, j)
Za nas je sintaksa znakuvnog niza za formatiranje u naredhi printj'nevazna (niz s-:
u osnovi stampa doslovce, osim sto 'Yad waci: ceo broj koji slcdi stampaj u decimal-
nom formatu). Ovde nas zanima to da se pmcedura poziva s tri paramdra: Lnakovnim
nizom z.a formatiranje i dva cela broja.
Koristimo verziju programa za Pentium 4 i UltraSPARC Ill pisanog na jeziku C,
zato sto za ovc racunare ne postoji odgovarajuea vcrLija Javinc ulazno-iz.lazne biblio-
tcke potprograma. Razlika koju smo time uveli jc minimalna (tice se samo jedne na-
rcdbc z.a stampanje).
5.7.1 Problem Hanojskih kula na asemblerskom jeziku Pentiuma 4
Na slici 5-4 7 prikazan jc jedan od mogucih prevoda programa za rdavanje probk-
ma Hanojskiil kula za racunar Pcntium4. pisanog najeziku C. veci dco sc lako shvata.
Kao pokativac okvira promenljivih koristi se rcgistar EBP. Prve dvc reci se koristc za
puvczivanjc, tako da se prvi stvarni parametar, n (ili ovde N. _jcr ascmblcr MASM ne
razlikuje vclika i mala slova). nalaLi na adresi EBP+:-\. a zatim skde paramctri i i j na
aclresama EBP+ 12 i EBP+ 16. Lokalna promcnljiva jc.: na adresi EBP + 20.
Procedura pocinjc uspostavljanjem novog okvira na kraju starog. To se radi kopt-
ranjc.:m ;,adrl.aja rcgistra ESP u pokazivac okvira EBP. Zatim se promenljiva n porecli ;a
I i prela;i se na deo else al-co _je 11 > I. Kod u clelu then na stek stavlja tri vrednosti: ad-
rcsu 1.11akovnog niza za formatiranje i promenljivc i ij, a zatim poLiva funkciju printf.
Paran1ctri sc na stek stavljaju ohrnutim redllslcdom, jcr tako zahtcvaju programi
pisani na jeLiku C. To _jc neophmlno da bi pokazivac stcka ukazivao na niz za fomJa-
tiranJe na njegovom vrhu. Pus to fun kcija f'rintf' i ma promenlj i v broj paramctara. kada
bi oni hili stavljani na stck redoskdom iz prog:rama. funkcija nc bi znala gde na steku
pllCillJL: nit. za formatiranjc.
Posk poLiva. rcgistru ESP dodaje se 12 da bi sc.: sa steka uklonili parametri. Oni sc.
naravno. time nc bri;u iz mc.:morije. vee samo posta_ju ncdostupni pri norrnalnom raclu
sa stekom.
Deo eise, koji pocinjc na oznaci L!, _jasan jc sam po schi. On prvo izracuna\a
vn:dnost i;rraza 6- i -j i smesta ga u promc.:nljivu k. Bez obzira na vrednosti promenlji-
va i i j, trcci stubic uvek ima vrednost 6- i -j. Kada tu vrednost smestimo u promenlJi-
vu k, ne moramn jc vise izracunavati.

f'
I
408 Poglavlje 5: Nivo arhitekture instrukcija
Posle toga, funkcija triput poziva :-,amu sehc, svaki puts drugacijim parametrima.
Stek se cisti poslc svakog poziva. [to bi hilo sve.
Rekurzivne funkcija u prvi mah zbunc !jude, ali kada se posmatraju na ovom
nivou, postaju prilicno jasne. Samo se parametri smei:itaju na stek, a zatim runkcija
pozi va samu sebe.
5.7.2 Problem Hanojskih kula na ascmhlcrskom jcziku
proccsora UltraSPARC III
Prodirno kroz problem punovo, ovoga put ana proccsoru UltraSP/\RC II!. Kild je
prikazan na slici 5-4X. Posto jL' ktKi za UltraSPARC lil izuzetno necitljiv, cak i za
ascmhkrski ki'Jd i pusle mnogo iskustva, na pucctku :-.mo detinisali nekoiiko simbula
cia hismo ga rnalu procistili. Da bisnw to mogli da uradimo, program smo pre asem-
bliranja provukli kroz C pretproccsor, program cpp. Osim toga, ovde smo kuristili
samo mala slova jcr tako zahtcva asembler ?a UltraSPARC llf (La slucaj da neki ci-
talac pol:eli da uncsc program).
.586
.MODEL FLAT
PUBLIC _towers
_pnntf:NEAR
.CODE
_towers: PUSH EBP
MOV EBP, ESP
CMP [EBP+8], 1
JNE L1
L1.
MOV EAX, [EBP+ 16]
PUSH EAX
MOV EAX, [EBP+ 12]
PUSH EAX
PUSH OFFSET FLAT:format
CALL_ print!
ADD ESP, 12
JMP Done
MOV EAX,6
SUB EAX, [EBP+ 12]
SUB EAX, [EBP+ 16]
MOV [EBP+20J, EAX
PUSH EAX
MOV EAX, [EBP+ 12]
PUSH EAX
MOV EAX, [EBP+8]
DEC EAX
; preved1 za Pentium (za razliku ad 8088 i drug1t1)
, izvezi funkcitu 'towers'
; uvezi funkciju print!
, sacuvaj EBP (pokaZivac okvira) i umanji ESP
; nov pokazivac okvira postavi iznad ESP
; aka je (n == 1)
; skoci aka n nije 1
; print!(" ... ", i, j)
; smesten1 su parametri i. j i niz za fonnatiranje
; gurnuti na stek
; obrnutim redosledom. To je konvencija za
poz1van1e u jeziku C
: "offset flat" oznacava adresu forrnata
: pozovi pnntf
; ukloni parametre sa steka
; zavrsili smo
; k = 6 I- j
; EAX = 6- i
; EAX = 6- i- 1
; k = EAX
. pokreni funkciju towers(n 1. i, k)
; EAX = i
, smesti 1 na stek
; EAX = n
; EAX = n- 1
5.7 Detaljan primer: hanojske kulc
Done:
.DATA
format

PUSH EAX
CALL_towers
ADD ESP, 12
MOV EAX, [EBP+ 16]
PUSH EAX
MOV EAX, [EBP+ 12]
PUSH E.A.X
PUSH1
CALL towers
ADD ESP, 12
MOV EAX, [EBP+ 12]
PUSH EAX
MOV EAX, [EBP+20]
PUSH EAX
MOV EAX, [EBPt-8]
DEC EAX
PUSH E.A.X
CALL _towers
ADD ESP, 12
LEAVE
RETO
; smesti n - 1 na stek
; pozovi funkciju towers(n - 1, i. 6 - i - J)
; ukloni parametre sa steka
; pokreni proceduru towers(1, i, j)
; stavi j na stek
; EAX= i
; stavi i na stek
; stavi 1 na stek
; pozovi funkciju towers(1, i, j)
; ukloni parametre sa steka
; pokreni funkciju towers(n - 1, 6 - i - j, i)
; stavi i na stek
; EAX = k
; stavi k na stek
; EAX = n
; EAX = n- 1
, stavi n - 1 na stek
; pozovi funkciju towers(n - 1, 6 - 1 - j, i)
; podesi pokazivac steka
; pripremi se za izlazak
; vrati se pozivaocu
DB "Premesti disk sa %d na ; znakovni niz za format1ranje
%din"
Slika 5--H. P!<Jbkm I !.tnoJ'kih J..u!.t La Pentium-+. 1 "'''tu,uk!
409
AigDritam t.a UltraSl'ARC III isti je Lto ?a Pentium-+. U uba algoritma najpn: sere-
:-.t ira proll1L'I1 !Ji v a 11 i :-.kaCe ;,c na cleo .else ako n > I. z:t LltraSPA RC je slozc-
na zhug odrc:Lknth svojsrav a nivoa IS.-\.
Pocninw ud toga da UitraSPt\RC lllmura eLl prosbi! adre'l! niza ;a furmatiranjc
funk.ciji Jninit: ali nc nH>Le samo da stavi adrc'u u registar kuji cuva parametrc za
slanjc, ;at,J nema nacina da JCdnom in:>truk.cijom smec,ti 32-hitnu Kllllstantu u ce-
gistar. Za ttl tmt trchaju rhe instrukcijt:': SETHI i OR.
Dai!e. trcha zapazitt da sc stek nc nwra P<'de:iavati poslc pcuiva. Dtto sto se regi-
starsl-.i pro;.ur poddava instrukciy1111 RESTORE na kraJu i'unkcije. :\!ogucnu:-.l da 'epa-
1,1 slan1,. nc u.-:imaju i1. mcmutije. \cC ,b :;e sme:itaju u regi.,lrc. bitno poboljs<'Va
pert'urnwthc. pud LL\Iovum da ncm:t UDISI<'Pllih pt>ziva. ali. glcdano.
citav taj si.-;tem n.:gitarsk.ih pmluLl vcruvatno nijc Hcdan svujL' slul:cnu,ri.
Obtatitc p<:/.njG na itt,trukciJU NOP i1a si..oka na LWl:LKLI Dune. T > )C \ rcmen:;ki pnl-
ccp. Ta instrukcija cc oc uvek (ak i ako ,;e nalazi iza instrukciJc za ohave;:an
,i-,.ul-.. Problem :.tvara tu sto LltraSP.-\RC lil p.tralcir:.c i u tre-
nut\,:u Ltda h:trdv-:r utkrije da ima P'''!:l , skukom. i;J-.tr;tkcij.t k.oja ga
sledi pr;tkticno jt.: Dl\rscna. Dubro u .,C:udesni .svet RJSC r,,

410
Poglavljc 5: Nivo arhitckture skupa instrukcija
Ova duhovita osobina odnosi se i na pozivanje funkcija. Pogledajte prvi poziv
funkcije towers u dclu else. Tu se vrednost n- 1 smcsta u %o0. a vrednost i u %ol, ali
se funkcija towers poziva pre nego sto se postavi poslednji paramctar. Na Pentiumu 4
prvo se proslcduju parametri, pa se salje poziv. Ovde se prvo prosleduju neki od para-
mctara, zatim sc salje poziv, pa se saljc poslednji parametar. Dok procesor shvati da
ima posla sa instrukcijom CALL, instrukcija koja je s!cdi vee jc toliko duhoko usia u
liniju obradc da mora hiti izvrscna. Ako jc tako. zasto nc iskoristiti vremenski procep
cia bi se prosledio poslcdnji paramctar? Tada cc paramctar biti na vreme na svom
mcstu, cak i ako ga prva instrukcija pozvane procedure koristi.
Konacno, kod oznakc Done vidimo da instrukcija RET takmtc sadrzi vrcmcnski
procep. On sc koristi za instrukciju RESTORE koja uveeava vrednost registra CWP da
bi se registarski prozor vratio u stanjc kojc korisnik ucekuje.
5.8 ARHITEKTURA IA-64 I ITANIUM 2
Intel sc ubrzano priblizava tacki kada cc isccditi i poslednju kap pcrformansi iz
!SA arhitckturc lA-.12 i scrije pmccsora Pentium 4. Novi modeli jos uvck mugu da
koristc plodovc naprctka savrcmene telmologije, stu znaci rnanjc tranzistore (daklc,
hrl:i radni takt). l'vlcltutim. pronalazenjc sve novijih i novijih trikova da hi sc uhrzala
implcmcntacija. postaje svc tde jer su ograniccnja !SA arhitckturc IA-.12 svc veea.
#define N %i0
#define I %i1
#define J %i2
#define K %10
#define ParamO %o0
#define Param1 %o1
#define Param2 %o2
#define Scratch %11
proc 04
global towers
towers: save %sp. - 112. %sp
cmp N,1
bne Else
sethi %hi(format).
ParamO
or ParamO
%1o(format). ParamO
mov I, Param1
call pr1ntf
mov J, Param2
b Done
nop
I' N je ulazni pararnetar 0 'I
I' I je ulazni pararnetar 1 'I
r j je ulazni parametar 2 ;
I' K je lokalna promenljiva 0 'I
r ParamO je izlazni parametar 0 'I
r Param1 je izlazni parametar 1 '/
/' Param2 je izlazni parametar 2 '/
" uzgred, cpp za komentare koristi konvenciju jezika C ;
1 if (n 1)
1 if 1) goto Else
I printf("Premesti disk sa %dna %d\n", i, j)
I ParamO adresa znakovnog niza za formatiranje
I Pararn1 i
I pozovi printf PRE pre zadavanja parametra 2 (j)
I pomocu vremenskog procepa posle poziva zadaj
I parametar 2
I zavrsili smo
I ispuni vremenski procep
5.8 Arhitcktura IA-64 I Itanium 2
Else:
Done:
mov 6,K
sub K, J,K
sub K, I,K
add N, - 1, Scratch
lpocetno k 6 i - j
lk 6- j
!k 6- i- j
I pokreni towers(n - 1, i, k)
mov Scratch, ParamO I Scratch n - 1
mov I, Param1
call towers
mov K, Param2
mov 1, ParamO
mov I, Param1
call towers
mov J, Param2
! parametar 1 = i
! pozovi towers PRE zadavanja parametra 2 (k)
! pomocu vremenskog procepa posle poziva zadaj
I parametar 2
! pokreni towers(1, i, j)
! pararnetar 1 i
! pozovi towers PRE zadavanja parametra 2 (j)
I parametar 2 j
mov Scratch, ParamO I pokreni towers(n - 1, k, j)
mov K, Param1
call towers
mov J, Param2
ret
restore
! parametar 1 k
! pozovi towers PRE zadavanja parametara 2 (j)
! parametar 2 j
I vrati se
I pomocu vremenskog procepa posle ret restauriraj
I prozore
format: .asciz "Premesti disk sa %d na %d\n"
Slika 5-48. Prohlem Hanojskih kula na proccsoru UltraSPARC Ill. (nuslavak)
411
Jedino pravo rescnje je da sc arhitektura IA-.12 napusti kao glavna razvojna linija i tiJ
se ide na potpuno novu IS/\ arhitekturu. To je, u stvari, ono sto Intel i zeli da ucini. U
stvari. on ima planove za dve nove linije. EMT-64 je sira verzija Pentiuma 4, sa 64-bil-
nim registrima i 64-bitnim adrcsnirn prostorom. Ovaj procesur rdava problem adre-
snog prostnra, ali jos uvck stvara komplikacijc pri rcalizaciji kao i Pentium 4.
je ako ga smatrate sirokim Pcntiumom.
Druga nova arhitcktura koju su zajednickim snagama razvili Intel i Hewlett Packard,
zove sc IA-64. To je 64-bitni procesor od glave do pete, a ne prosirena verzija postc-
jeccg 32-bitnog proccsora. Stavise, ovaj procesor sc u vise oblasti drastic no razlikuje oJ
Pentiuma 4. Namcraje da sc u pocetku ponudi trzistu najkvalitetnijih servcra, alice ver-
ovatno na kraju zavrsiti u svetu stonih racunara. Bilo kako bilo, njegova arhitektura tc-
liko sc razlikuje od svega sto smo dosad videli, daje samo zbog toga trcba prouciti. PrvJ
implcmentacija arhitekture IA-64 jeste serija procesora ltanium. U ostatku ovog
ka havicemo se arhitekturom IA-64 i proccsorom ltanium 2 koji je implementira.
5.8.1 Problem s Pentiumom 4
Pre nego stu predcmo na dctalje arhitckture IA-64 i procesora Itanium 2. korisn)
je podsetiti se losih strana Pentiuma 4 da biste sagledali kakve probleme Intel zeli d1
rdi uvm:lenjem nove arhitekture. Glavna cinjenica koja izaziva svc problcmejeste t)
It
412
Poglavlje 5: Nivo arhitekturc skupa instrukcija
sto jc !A-32 prastara !SA ni s jednim svojstvorn koje bi pogodovalo sa-
vremenoj tehnologiji. To je ISA arhitektura tipa C!SC. sa instrukcijama prornenljivc
duzinc i mnostvom razlicitih furmata koji sc samo uz tdkoee dekodiraju u hodu.
Danasnja tchnologija najbo!Je radi sa !SA arhitekturom tipa RISC knja ima jednu
du:linu instrukcija i opkmlove isle koji se lako dekodiraju. lnstrukcijc arhitck-
ture !A-T:: mogu sc u toku izvrsavanja razlozili u mikrooperacijc tipa RfSC. ali je ;a
to potrehan hardver (prostor na cipu). guhi se vremc i usloznjava sc organi;.acija. Ovo
je prvi problem.
I A-32 jc. uz to. dvoadresna. memorijski orijentisana !SA arhitektura. Vee ina in-,tnlk-
cija sc obraea memoriji. a vecina programcra i prevodilaca ne razmisljaju o stalnom
pristupanju memoriji. Savremena tchnulogija favorizuje !SA arhitekturc tipa ucildJ-
-smcsli koje sc Llhraeaju mcmuriji samu da hi operande prebacik u registre. inace oha-
vljaju sve pm,lovc pornoeu tmadresnih rcgislarskih in:,trukcija. Posto radni takl proce-
sora rastc mnogo hrzc od br;.inc memonJc. problem sc s vremcnorn samo DIOSlrava.
Ovoje drugi problem.
IA-3::'. lakode ima mali i ncrt:gularan skup registara. To ne samo da \uujc rukc
prevmliucima. vee m<di hruj registara opste namerw (Cetiri iii ;est. zavisno od toga u
sla registre ESI i EDIJ zahlcva da se medurezulwti izracunavanja stalno salju
u mcmoriju, sto i1a1.iva Li<ldatno pristupanje memoriji cak i kada lugicki ono nijc pu-
trehno. To je treei problem. f\rhitdtura lt-\-.12 je na i;disaju.
lpak. nastavimo. Zhog malog hmja nastaju bmjne zavisnosti. narocito
ncpotrchnc ;avism1sti lipa \Vt\R. ;.alo :::to rc1:ultati 111oraju nc.:gde da se a nema
raspolul:i \ih registara. Za preva;ilai.enjc man.Jka potrchnll je da realizacija
intcrno prcimcnuJC rc,:istre 1 u ujnL' unutar hafcra La
mcnjanje rcdllskda. Da bi .se i;bcglu Cesl<l blokir.mje pti kesa. instruk-
cIjl' o;c nwt,IJU i;vr;;ava!i prd.<J reda. IVIcdutim. scm<!nlik:t skupa lr\-32 instrukcija
pr,c:i;nc ptckide. da se instrukcijc KLljc su preko reda moraju
rnlom i l<t\rsiti. we <)\Pje pnlrehno lllll<l!}Ll VCOJila .,lo:ienog harLlvera. Toje cctvr-
ti prllhkm.
Za br1u S\ il1 nabmjani11 pusll' a p<l!rehn<tjc inten,:i\na paralclna obra-
d:J. On:1, "drugc' o;trane, ;nal'i Ja instrukcijc. J..DJC 11 nju udu. iz njc' i,rittu tek posk mno-
gn :-:i..;temskih ,iklthCJ. 7hog luga .Jt' P"lrcbnu l<ll'llL' prcd\ ideti skL1kme kako bi:-dl1<1
bili sigurni daje u uhr:1c!u u\!.1 pr<t\a ln . f'"'>tt> -.;e pri pnJina.(ajtlll
cda nhradc. mn<lg<l ko(ta. l'ak i mala uce'lalust promasaja
n-;o/c da unal:..H_li To jc pcti prnhkn1.
D<l hi pmhkm:;

u pre<c:esm mora da sc okrene


spekuLittvnom r,;a\ aniu i s\im l'rohkmirna h>Jt' "n.l d"nJ.Si. tlar<.Jcilo kada ohra-
1ncrnori_ji dnk '-'1: f_rar;a i;a;uvc i!.uzetak. TP jc
;csti prllt.lcm.
.'k ici i 11\0 0\ de ,LJ 'I\ :tr ra;vlacimu Ll .. ,!tna ,Tc'\ C:<l. ;di bi vee oad trd1a!o da bude
k:..d\.\l :-,U rr,'!hlc;11i i11Sillu 32-birnc adrcse
ajti pojcdinaLnc prDgC.lillt' 1:,1-L (1!3 n1ctnorijc. Sto pnstajc
g()rLk:: pn;bkr;! P:\cc"or L0.lT-(.,4 taj problcn1. ali
nc i
5.8 Arhitektura lA-64 I Itanium 2
413
Sve u svemu, situacija sa arhitekturom IA-32 zgodno se moze uporediti sa stanjem
nebeske mehanike pre Kopemika. Prcma tadasnjoj teoriji. Zemlja je smatrana telom
fiksiranirn u prostoru oko kojeg druge planete kru/.e prateei epicikloidu. Meciutirn, kako
su posmalranja postajala sve bolja i hrojnija, otkrivano jc sve vise oclstupanja. pa su, da
hi se ona uzda u obzir, na cpicikloicle dodavane nove epicikloide, sve dok se citav si-
stern nije urusio pod tcretom sopstvene slo:l,enosti.
Intel se sada nalazi u istoj zamei. Ogroman den svih tranzistora Pentiuma 4 na-
menjcn je razlaganju CISC instrukcija, otkrivanju moguenosti paralelne ohrade, raz-
resavanju sukoba, predviL1anju. pnpravljanju posledica netacnih predvidanja i osalim
,.knjigovmbtvcnim'' aktivnostima, pa ostaje zacudujuee mali broj tranzistora za oha-
vljanje stvarnih poslova koji zanimaju korisnika. Zakljueak daje s Pentiumom 4lntel
duhoko zapao u skripac, jedini JC razuman. Prema lome. najholje je potpunu odhaciti
citavu arhitekturu (IA-32) i Lapoceti sve ocl pocetka s novorn .,plocieom (IA-64).
Procesor EMT-64 dajc nt'Sto malo prostora za disanje, ali se problem njcgove slo/.c-
nosti rdava sarno na papiru.
5.8.2 Model arhitekture IA-64: forsiranje paralclnog rada
Pri razvijanju arhitckture fA-64 osnovni ciljjc bio da se glavnina posla t..oji sc oha-
vlja tokmn izvrsavanja uracli ranije - lokorn prevodcnja. Pentium 4 u sarnom toku
prugrama menja rcdoslcd instrukcija. prcimenuje registrc. rasporectuje rad
funkciLmalnih jedinica i radi jus stosta drugo da bi sve hardvcrske resurse vise za-
poslio. U modelu arhiteklure lA-64, sve to unaprcd radi programski prevodilae da hi
gcncrisao kdd koji se moze i;vrsavati kakav jeste, bez pntrehe da hardvcr tokom
izvrKavanja ulvrduje sta i kako treba cia sc uradi. Na primer, umcsto da sc prevodiucu
da racunar ima S registara. iako ih u stvari ima l2S. pa da se tnkorn izHsavanja
u hodu nastale zavisnosti. prcma modelu arhitekturc IA-64 prevodiocu se
saopstava pravi broj n.:gistara racunara. tako da moze da generik kod u kome od sa-
mog pocetka ncma sukohljavanja registara. Slicno lome. prema ovom moddu prevo-
dilac vodi rae una o funkcionalnim jedinicama i ne izdajc instrukcije ;a tajne
jedinice. iVIodelu korne prevodilac vidi parale!iJ:am koji postoji u hardveru. naziva se
EPIC (Explicitly Parallel Instruction Computing- rad s paralelnim instruk-
cijama). EPIC se u izvesnom smislu mol:e smatrati naslcdnikom modela ruse.
Model IA-64 ima brojne osohine koje poboljsavaju performanse. U njih spadaju:
prnreLtcno obracanje memoriji. rasporcdivanje izvrsavanja instrukcija, smanjenje
broja uslovnih -,kokova i spckulativno izvrsavanje. Svaku od ovih osobina redom
eemo obraditi i objasniti kako je una implementirana u proccsoru ltanium 2.
5.8.3 Proredivanje obracanja memoriji
ltanium 2 imajednostavan mcrnorijski model. On ima linearnu memoriju kapaci-
tcla do

bajtcwa. lnstrukcije mogu pristupati mernoriji adresirajuei jedinice od I. 2.
-1. S. 16 i I 0 bajtova (adresiranje od I() bajtova koristi sc za :'-10-bitne hrojeve u formatu
414
Poglavljc 5: Nivo arhitckturc skupa instrukcija
pokretnog zareza prema standardu IEEE 745). Mcmorijske reference ne moraju biti
poravnatc na svojim prirodnim granicama, ali su pcrformanse losije ako nisu porav-
nate. Memorija moze biti tipa ,big endian" ili ,little endian .. , sto odrcctujc bit u regi-
stru koji sc ucitava pod komandom operativnog sistema.
Pristupanje mcmoriji je ozbiljno usko grlo na svim danasnjim racunarima jer jc
procesor visestruko brzi od memorije. Jedna od mogucnosti da se proredi obracanje
memoriji jeste da postoji veliki kes prvog nivoa na cipu i cak i veei kcs drugog nivoa
u blizini cipa. Ova dva keiia sc predvidaJU u svim savremcnim projektima. l'v1et!utim,
obraeanje memoriji se mozc prorcditi nc samo kada postoji veliki kes, vee i prime-
nom drugih reiicnja, a IA-64 koristi upravo neka od njih.
Najbolji nacin da se iz.begne usporavanje rada zbog obracanja memoriji jestc da se
memoriji uopste ne pristupa. Pri realizaciji arhitckture lA-64 na Itaniumu 2 predvidc-
no je 12:-) 64-bitnih registara opstc namene. Prva 32 registra su staticki, ali se ostalih
l)6 koriste kao stck registara, veoma slicno semi regi,tarskih prozora na procesoru Ul-
traSPARC III. Medutim, za razliku od situacije s procesorom UltraSPARC Ill, broj
rcgistara kujc vidi program je promenljiv i moze se menjati od jedne do druge proce-
dure. Na taj nacin svaka procedura ima prist up do 32 staticka rcgistra i do nekog (pro-
menljivog) broja registara koji se dodcljuju dinamicki.
Kada se pozove procedura, pokazivac registarskog steka promcni vrednost tako da
se ulazni parametri vide u registrima, ali sc nijedan registar ne dodeljujc lokalnim
promenljivama. Sarna prucedura odreduje koliko joj registara treba i menja vrednost
pokaz.ivaca registarskog steka da bi ih sebi dodelila. Ovi rcgistri sene moraju cuvati
na pocetku procedure, niti restaurirati na njenom kraju, kan sto semora raditi sa sta-
tickim registnma ukoliko procedura mcnja nJihov sadr/.aj. Postu jc broj raspolozivih
regi.stara prorncnljiv i prilagudcn flL'trebama procedura. dragoceni rcgistri sene trose,
a procedura mo7.e ic'i dubljc pre nego sto se rcgistri potrose i nastane potreba da se nji-
lmv .sadr7.aj smcsti u memoriju.
ltanium 2 ima i 12:-) rcgistara za brojcve u formatu pokretnog LareLa prema stan-
dardu IEEE 745. Oni nisu nrganizovani u stek. Ovaj veoma vcliki broj registara znaci
da se pri racunanju s brojevirna u fonnatu pokrctnog zareLa svi mcdure;.ultati mogu
cuvati u registrima, umcsto da sc smdtaju u mernoriju.
Postojc i 64 jednubitna rcgistra za predikaciju, registara 1.a skokove i 12:-) speci-
jalnih rcgistara namcnjenih aplikacipma koji se koristc za razlicite svrhc (npr. za pro-
sledivanjc parametara od aplikacije ka Pperativnom sistcmu). Na slici 5--1.9 prikazan
jc pregled registara ltaniuma 2.
5.8A Rasporedivanjc instrukcija
Proccsnru Pcntium-J. jcdan ud velikih prublema stvarajutdkoce pri rasporedivanju
razlicitih instrukcija u razlicitc funkcionalnc jedinicc Ll/. istovremeno iLbegavanjc za-
vi.snosti. Te pnslove u toku i-evrsavanja programa obavlja vcoma slo/.en hardver, za
koji je na cipu ostavljen vdiki cleo prostora. U arhitekturi [A-64 i kod proccsora Itani-
um 2 takvih problema nema Jer sav taj posan obavlja prevodilac. Osnovni koncept je
S.S Arhitektura IA-64 I Itanium 2
128 registara
opste namene
9
5 registara. I
"'"'"''"''"" ..
"''"k -
32 stat1cna
registra
128 registara za rad
s brojevima
u pokretnom zarezu
128 registara
namenjenih
aplikacijama
Slika 5-49. Registri procesora ltanium 2.
64tednobitna
reg1stra za
predikaciJu
I
415

8 reg1stara
za skokove
/
I
postojanjc grupa instrukcija ciji niz cini program. Unutar odredenih granica. nijedna
se instrukcija iz grupe ne sukobljava s drugim instrukcijama, ne zahteva vise funkcio-
nalnihjcdinica i resursa nego sto ih racunar ima, nc sadrzi zavisnosti tipa RAW i WAW
i ima samo ograniccnc zavisnosti tipa WAR. Uzastopne gmpe instrukcija ostavljaju
utisak da se izvrsavaju strogo sekvencijalno, tj. da sledeca grupa instrukcija ne za-
pocinje rad dok prethodna nije potpuno zavrsena.
Procesor, medutim, moze da (delimicno) zapocne narcdnu grupu instrukcija cim
proceni dace sve proc'i dobro.
Drzeci se ovih pravila, procesor slobodno moze da rasporeduje instrukcije unutar
grupc kako god zeli (moL:da da se izvr;avaju paralelno ako tomogu) i ne mora da bri-
ne zbog sukobljavanja. Ako grupa instrukcija narusava pravila, ponasanje programa
sene moL:e predvidcti. Prcvodilac je duzan cia preuredi asemblerski kod generisan i;:
iLvornog programa tako da postujc sve zahteve. Pri hrzom prevodenju. dok se u pro-
gramu traze gre;ke, prevodilac mole svaku instrukciju da svrsta u zasebnu grupu, sto
je lako uraditi, ali daje bednc pcrformansc. Kada dode vreme za generisanje proiz-
vodnog koda, prcvodilac moze da provede dugo vremena optimiLujuci ga.
Instrukcije se organizuju u 128-bitne svdnjeve (engl. hwulles), kao sto je prika-
zano u vrhu slike 5-50. Svaki svdanj sadrzi tri instrukcijc po 41 bit i petobitni sablon.
Grupu instrukcija ne mora da cini ceo broj svdnjcva; ona mo.l.e da zapocne ili da se
zavrsi usrcd sveL:nja.
Postoji preko l 00 formata za instrukcije. Tipican format, u ovom slucaju za ALU
operacije kao sto jc ADD, kojc sadrzaj dva registra sabiraju i smestaju u treCi, prikazan
je na slici 5-50. Prvo polje GRUPA OPERACIJA oznacava opstu grupu kojoj pripada in-
strukcija ( npr. celobrojna ALU operacija). Sledec'e polje, TIP OPERACIJE. navocli kon-
kretnu zahtcvanu operaciju (npr. ADD ili SUB). Zatim slede tri rcgistarska polja. Na
kraju jc REGISTAR ZA PREDIKACIJU, koji cemo ubrzo objasniti.
U sablonu sveznja uglavnom se navode funkcionalne jedinice potrebne svc:lnju. kao
i gramca grupe instrukcija ukoliku postoji. Cilavne runkcionalne jedinice su: celobrojna
ALU jeclinica. jedinica za cclobrojne instrukcije (kuja nije ALU), jedinica za rad s
J!'
416
Poglavlje 5: Nivo arhitekture skupa instrukcija
----- -
B1tovi 41 41 41
lnstrukciJa 2
/
/
/
Bitovi /4 10
TIP OPERACIJE
GRUPA OPERACIJA
lnstrukcija 1 lnstrukc<Ja 0
Sablan
REG I STAR 3 REGISTAR 2 REGISTAR 1

REG I STAR ZA PREDIKACIJU /
Stika 5-50. Sv,,/anj L\-ocf in,tru,cija ,adrl.i tri inotrukcijc:.

memorijom.jeJinica za rad s bruJcvima u t'ormalu pu"rctnog zareza.jcdinica za .s"o"o-
ve itd. Naravno. LIZ sest jcJinica i tri inslrukcije. /a potpunu ortogunalnost potrebno je
216 kombinacija. i jos 21 o za O/Jlacavanjc markera grupc instrukcija posk in.,trukcijc
0 i trdih 21 (J 1.a omacavanjc markcra grupc im,trukcija po;lc instrukcijc I i jos 21 h 1.a
oznacavanjc mar"era grupc instru"cip po,lc instrukcije 2. Posto jc na raspolaganju
samo) bituva. dopustcnjc samo mali broj ovih kumbinacija. S drugc strane. tri instruk-
cije ;a rad s bwjcvima u t'urmatu pllkrctnog ist()m :-.ve;nju ne hi nH1gk da ratlc,
cak i kada hi SC lllllglc Dtdati.jer pr< ll'CSOI' 11l' lllOll' Ja ;:;;poC!lt.' 1ak \C: tri in-
Slrukcijc. Dozvo!.Jt:nc kombinacijc su <lllL' kojc SL' prakticno mugu
5.8.5 Smanjcnjc broja uslovnih skokova: prcdikacija
Druga va/na '''obina arilitc:kturc jc:-.tc nal'in na "oji sc: on a nosi :-.a tt.slt>l nim
skoknvima. K;tda bi pustnpn naCin LLi ,;c ICCJI1a LLdo1 nih sk,1kova i1baci i;
prucc:sm hi bio jcdnostavniji i hi l;rl:e. L: prvi mailnLJ/.da izi'kda dajc nalctkni
zabtev ncrazuman jcr su prcpuni If. :Vkdu1im. u arhitd,tmi l.\J,..l.
k11ri:-.li sc tdmika ;vana predikacija (engl. f!ru!inltionl. pumt'Cll koje sc broj t:.slnv-
nih skokuva mo:.c ;nattw sm;;njiti eta! .. jl)l)X: llwu. !l)9X). S;1da ccnwj<.'
ukratko ubjasniti.
Na raCunarima svc instrukcijc 'll hems!clVIK u skdcccm smislu: kada
proccsur naidc n;! instrukclill. <'ll je jL'diHJ>l,lVll\1 ifvr;i. 7a ra;liku od toga. u pn:dika-
ti vnuj arhitektmi i nslrukci.Je sadr it: mlm ,. 1 prcdikak) koj i ndrt:Ltuju k.llla cc ilblru!..ci_p
hiti a kadd 11CCe. prdtck \ bC/li',JO\flOg mode:\;! na !lludcl nih
instn:kcija omuguca1 a da '><c oslt;bt 'dimo ( uslovnih skokt1va. Umcslu da
moLtlllO hirati jcdan iii dnt;,:i niz bc:Lu..,lm nih svc 111:-.truL;ijc: su smC::il'ne n
isti niz pn.'dikati\ nih instrukL'i.ia."' r:l71il'itc in:-,truJ...ci;L:.
JJa hi.',L..' vidcli radi p<'g!cdajJno j,:-dnoqavan prin1cr na sli ..:i )-) l.
l!v. uslm no izvrsavanje. (tJ .Jl' prc:lhodnic:a rredibcijc. ?'h siici 5-) I i a\ vidimPJcd-
nu n;1redhu ;f :\;t slici 5-5lt
1
1 1 vidimu njcn ;m:vod u tri in:,trukcijc: porc:LLnjc. u:.lm
skok i rrc:me::.tanj,.
5.8 Arhitektura IA-64 I ltanium 2 417
-----------------------------
if (R1 == 0)
R2 = R3;
(a)
L1
CMP R1 ,0
BNE L1
MOV R2,R3
(b)
CMOVZ R2,R3,R1
(c)
Stika 5-51. (a) Narcdba if. (bJ Asemhlt.?r,ki k6d za (a). (c) Uslovna instrukcija.
Na slici 5-51 (c) prikazano je kako se oslobauamo uslovnog skoka pomocu nove
instrukcije, CMOVZ. za uslovno premcstanje. Ona proverava da li je sadrzaj treceg rc-
gistra. R1. nula. Ukoliko jeste, una kopira sadrzaj registra R3 u R2. Ako sadrzaj regi-
stra R1 nijc nula. ona ne radi ni.<ta.
Kada irnamo instrukciju mo/.e da kopira podatke pod uslovom da jc sadrzaj
nekog registra 0. lako je u sledeccm koraku napraviti instrukciju koja kopira podatke
pod w,lovom da sadrzaj odredenog registra nijl' 0 (npr. instrukciju CMOVN). Uz dve
ovakve instrukcijc, na dohrom smo putu da potpuno ostvarimo uslovno izvrsavanje.
Zamislite naredbu if s vise dodela u dclu then i vise drugih dodela u delu else. Citava
narcdba se moze prevcsti u ki'ld koji sadrzaj odrcdenog registra postavlja na 0 ako us-
lov nije ispunjc:n ili na ncku drugu vrcdnost ako jc ispunjen. Posle podesavanja regi-
stra, dodelc iz dela then mogu se prevesti u niz instrukcija CMOVN, a dodcle iz deJa
else u niz inslrukcija CMOVZ.
Sve ovc instrukcijc (poddavanje registra, instrukcijc CMOVN i instrukcijc CMOVZ)
cine jeclinstvcn osnovni hltlk hez uslovnih skokova. Rcdosled instrukcija jc cak mo-
guce promeniti, sto ce uraditi prcvodilac ( ukljucujuCi i podi;anjc dodela pre tc-
stiranja) iii ce to hiti uradeno tokom i;.vrsavanja. Jedino je vafno da uslov mora hiti
poznatu trenutku zavrsetka uslovnih instrukcija (prcd kraj paralclne obradc). Jcdno-
stavan primers dclom then i dclom else prikazan je na slici 5-52.
if (R1 == 0){
R2 = R3:
R4 = R5:
} else{
R6 = R7;
RS = R9;
(a)
CMPR1,0
BNE L1
MOV R2.R3
MOV R4.R5
BR L2
L 1. MOV R6.R7
MOV R8,R9
L2:
(b)
CMOVZ R2,R3.R1
CMOVZ R4.R5.R1
CMOVN R6.R7,R1
CMOVN R8,R9,R1
(c)
Stika 5-52. (a) Nareclba If. (b) Asemhlcrski kl)d za (a). (cl u,lovno izvr,avanjc.
lako smo ovdc prikazali samo vcurnajednostavnc uslovne instrukcijc (;a Pentium-!,
u stvari), u arhite"turi lA-6-l sve instrukcije su prcdikativne. To znaci cia sc i;vrsenjt:
svake instrukcije lllOY.e uciniti uslovnim. Pomocu clodatnog sc:stobitnog polja koje smo
ranijc pomcnuli bira sc sadrzaj jednog od 11-l jcdnobitna rcgistra za preJikaciJU. Tako cc
naredba if biti prevedcna u k6d koji sadrzaj jednog od registara za predikaciju postavlj"t
na 1 ukoliko je uslov ispunjcn. ana 0 ukoliko nije ispunjen. [stovremcno. on automatski
postavlja na inverznu vrcdnost i drugog regi.stra za predikaciju. Uz predikaciju.
r
-
'

!:
,.
i,
'
418 Poglavlje 5: Nivo arhitekture skupa instrukcija
masinske instrukcije sa odredbama then i else bice spojene u jedinstven tok instrukcija,
pri cemu ce prve koristiti predikat, a druge njegovu inverznu vrednost.
Iako jcdnostavan, primer na slici 5-53 ilustruje osnovnu ideju kako sc moze isko-
ristiti predikacija da bi se eliminisali skokovi. lnstrukcija CMPEQ poredi dva registra
i sadrzaj registra za prcdikaciju P4 postavlja na l ako je sadrzaj dva poredena rcgistra
isti iii na 0 ako je razlicit. Ona takode i sadrzaj uparcnog registra (npr. P5) postavlja
na inverzan uslov. Sada se instrukcije za de love if i then mogu pustiti jedna za drugom.
svaka uslovljcna jednim od dva rcgistra za predikaciju (prikazano u uglastim zagra-
dama). Ovde se moze ubaciti proizvoljan kod, pod uslovom da svaka instrukcija ima
ispravan predikat.
U arhitekturi IA-64 ova idejaje dovedena do krajnosti tako sto su uvedcnc instruk-
cijc za poredenje koje postavljaju sadrzaj registra. kao i aritmeticke i druge instrukcijc
cije zavisi od nckog rcgistra za pn;dikaciju. Instrukcijc s predikatom
mogu se sekvencijalno uvesti u paralelnu obradu, be;. zastajanja i ikakvih problema.
Zhog toga je prcdikacija toliko korisna.
if (R1 == R2)
R3 = R4 + R5;
else
R6 = R4- R5
(a)
CMP R1,R2
BNE L1
MOV R3,R4
ADD R3,R5
BR L2
L 1: MOV R6,R4
SUB R6,R5
L2:
(b)
CMPEQ R1 ,R2,P4
<P4> ADD R3,R4,R5
<P5> SUB R6,R4,R5
(c)
Slika 5-SJ. (a) Narcdba if. (b) Opsti asemblerski k(>d 1.a (c) Prcdikativno izvrsavany.
U arhitekturi lA-64 predikacija radi tako sto se svaka instrukcija stvarno izvrsava.
Na samom kraJU paralelne ohradc, kada instrukciju treha zavrsiti, proveri se predikat
da bi se saznalo da Ii je uslov ispunjen. Ukoliko je ispunjen. instrukcija se normal no
;:avrsava i njeni rezultati se upisuju u odrcdisni registar. Ako uslov nije ispunjen (pre-
dikatje 0), ncma upisivanja rezultata. pa instrukcija kao da i nije izvrsena. Detaljnije
razmatranje predikacijc naci cete kod Dulonga (I 998).
5.8.6 Spekulativno uCitavanje
Jos jedna osobina arhitekture !A-64 koja ubr;:ava izvrsavanje jeste pnstojanje spe-
kulativnih instrukcija LOAD. Kadaje instrukcija LOAD spekulativna, pane hude pogot!c-
na. onda una ne izaziva izuzetak. vee sc samo zaustavlja i postavlja se bit priclruzen
registru u koji se ucitavaju podaci da bi se registar oznacio nevazec'im. To je onaj otrov-
ni bit koji smo pomenuli u poglavlju 4. Ako se takav registar kasnije koristi, tada se ja-
vlja izuzetak; inace iwzetak sene generise.
Spekulisanje se normalno koristi tako sto prevmlilac podigne instrukcije LOAD na
rnesto u programu pre mesta gcle su stvarno potrebne. Ako se zapocnu rano. mogu se
zavrsiti pre nego sto njihovi rezultati zatrehaju. Na mestu gde prevodilac treba da
$
1i


L
.'iii

:i

' .
tit
l
5.9 Sazctak
419
upotrebi sadrzaj upravo ucitanog rcgistra, spekulativne instrukcijc umccu instrukciju
CHECK. Ako na tom mestu postoji vrednost, CHECK se ponasa kao instrukcija NOP i
izvrsavanje se odmah nastavlja. Ako na tom mestu jos nema vrcdnosti, sledeca in-
strukcija mora da saceka. Ukuliko su stvoreni uslovi za izuzetak i postavljen je otrov-
ni bit, na tom mestu nastaje izuzetak koji ceka cia se aktivira.
Sve u svemu, racunar na kom je implementirana arhitektura IA-64 svoju brzinu do-
bija iz vise izvora. Osnova arhitekturc IA-64 je savremcn troadresni RISC procesor
tipa ucitaj-smesti, s paralelnom obradom. Osim toga, lA-64 sledi model cksplicitnog
paralelizma po kome se od prevodioca zahteva da utvrdi koje se instrukcije mogu isto-
vremeno izvrsavati bez sukobljavanja i trazi se dG ih grupise u svcznjevc. Na taj nacin
proccsor moze naslepo da raspo_redi izvrsavanje svcznja instrukcija, bez velikog ra-
zmisljanja. Zatirn, predikacija omogucava da se naredbe iz obe grane naredhe if spoje
u jedinstven tok, eliminisuci uslovna grananja i predvidanja cia Ii treha ici na jednu iii
na drugu stranu. Najzad, spekulativna instrukcija LOAD omogucava preu;:imanje opc-
ranada unapred. bez ikakvih posledica ukoliko se kasnijc poka/c da nisu bili potrebni.
Vise informacija o ltaniumu 2 i njegovoj mikroarhitekturi naci cete kod McNairyj,l
i Soltisa. 2003. kao i kod Rusua eta!., 2004.
5.9 SAZETAK
Ni YO arhitekturc skupa instrul-..cija jc 0110 stu vecina smatra ,masinskim jezikom"
Na ovom nivou racunar ima memoriju izdeljenu na bajtove iii reci koja se sastoji od
nekoliko desetina megabajta, i instrukc:ije, kao sto su MOVE, ADD i BEO.
Savremeni racunari po pravilu imaju mcmoriju organi;:ovanu u niz bajtova, pri
cemu su po 4 ili 8 bajtova grupisani u reci. Oni irnaju od 8 do 32 registara. svaki
jcdne reei. Na nekirn racunarirna (npr. na Pc:ntiumu4) referenciranJe rcci u memori)
ne nwra da sc odvija na njihuvim normalnim granicama. dok na drugirna mora ( npr.
na UltraSPARC -u III).
Instrukcije ohicno imaju jedan. dva iii tri operanda. kojima se nwze pristupiti ne-
ro,rcdnim. direktnim. registaP;kim. indeksnitn ili nekim urugim nacinom adresi-
ranja. Ncki racunari imaju veliki broj slozenih nacina adresiranja. U opstem slucaju,
pustoje instrukcijc za prcmestanje podataka. za binarne i unarne operacije. ukljucu-
juci i aritmeticke i logicke operacije, za grananje. La pozivanje procedura i za raLI u
pctlji i ponek.ad za ulamo-izlazne operacije. Tipicne instrul-..cije premcstaju rec iz mc-
muriJe u registar (iii obrnuto), sabiraju. oduzimaJU. mnoze ili dele sadrzaj dva
iii sadrzaj regi-,tra i mcnwrijske reci. ili porede sadrzaj registara iii mcmorijc. Nijc rel-
ko da racunar Ll wom repertoaru ima i preko 200 instrukcija. crsc racunari ih CCStll
llllaJu 1 mnogu vise.
UpravljanjL' izvrsavanjcm se na nivou 2 poslize razlicitim osnovnim programskim
elementima. ukljucujuci skokove. pozive procedura. pozivc korutina. klopke i si-
steimke prekide. Skokovi se koriste da hi se prekinuo jedan niz instrukcija i zapoce.J
novi. Procc:dure se koriste kao clement apstrahovanja. da hi sc jcdan DliJkruleni de.J
F.

41
H

ti


420
Poglavlje 5: Nivo arhitekturc skupa instrukcija
programa izolovao i mogao pozivati iz razlil'itih tacaka glavnog programa. Korutine
omogucavaju da istovrcmeno postojc dva toka izvrsavanja. Programske klopke se ko-
ristc za signaliziranje izuzctnih situacija, kao sto je aritmcticko prekoracenje. Sistem-
ski prekidi omogucavaju da se ulazno-izlazne operacije mlvijaju uporedu s glavnirn
programom, pri cemu procesor dobija signal cim se takva opcracija zavrsi.
Hanojske kule su zabavan mali problem koji smo rdili zahvaljujuci rckurzivnoj
proccduri.
Na kraju trcba rcei da sc arhitcktura IA-64 sluzi racunarskim modclorn EPIC koji
programima olaksava iskoriscavanjc paralclizma. On predvicta grupisanjc inslrukcija,
prcdikaciju i spekulativno ucitavanje kao sredstva za ubrzanje rada. Sve u svemu, to
mozc da budc veliki napredak u odnosu na Pentium 4, ali se time brerne ostvarivanja
paralclinna prebacuje na prevodiocc.
VEZBAN.JA
L Na racunaru koji podatkc bclezi u f'ormatu ,Jittlc-cndian" n.:c ima numericku vred-
nm,t _'\. t\J...o ,-;c una, hajt po bajt. prcbaci u racunar koji radi s furmatom ,big-cndian''
i tanm 'mcsti, tako da bajl 0 budc u bajtu 0 itd., kop cc biti njcna nurncricka vrcd-
nost na tom racunaru'
1
2. Na Pcntiumu4. instrukcije mugu da sadr/.c bilo koji hroj haJlova- paran iii ncparan.
Na UltraSPARC-u Ill. sve instrukcije sadr7.e ceo broj rcci (tj. paran hruj bajtova).
NavcditL jcdnu prcdnost scmc koju kori,ti Pentium 4.
J. Smislitc prosircni upkmL talu da '-C sve ono stu slcdi mole kodirati unutar 3(,-bitne
instrukcijc:
7 tnstrukcija s dvc 15-bittll' adrcsc i jcdnim 3-bitnim brojcm rcgistara
500 im,trukcip s JCdnom I 5-hitnom adrcsom i jednim 3-hitnim brojcm registara
40 in,trukcija he;: adrcse iii registara
4. Ncki r;tcunar ima I h-bitnc instrukcijc i (l-bitnc adrese. Nckc instrukcijc imaju jcclnu
adrcsu, dok drug:c imaju dve. r\ko ima 11 dvnadrcsnih inslrukcip. koji je maksimalan
broj Jednoadrcsnih instrukcija''
5. Da lijc mogucc smisliti pmsireni upkod tako da sc sve sto slcdi nmzc kodirati unutar
12-bitnc instrukcije'' Za rcgistar jc pulrchno 3 bit;L
4 instrukcijc s tri rcgistra
255 in,trukcija s jednim registmm
I (J instruJ...cija ba regis tara
6. Uz naveclcnc memorijskc vrcdnosti i jednoadrcsni racunar sa akumulatorom, kojc
cc vrcclnosti sledcce instrukcije ucitati u akumulator''
rei' 20 :,adr?i 40
rcc 30 sadrz.i 50
rcc 40 sadrzi 60
rce 50 sadrzi 70
%;


:&
::r

a
I
Vc'lbanja 421
a) LOAD IMMEDIATE 20
b) LOAD DIRECT 20
c) LOAD INDIRECT 20
d) LOAD IMMEDIATE 30
e) LOAD DIRECT 30
f) LOAD INDIRECT 30
7. Za 0-adresni, l-adrcsni, 2-adrcsni i 3-adrcsni racunar napisitc program koji svaki od
njih trcba da izracuna
X= (A+ B X C) I (0- EX F).
i uporcdite ih.
Mozcte koristiti skdcee ir;strukcijc:
0 Address 1 Address 2 Address
PUSH M LOAD M MOV (X= Y)
POP M STORE M ADD (X= X+Y)
ADD ADD M SUB (X= X- Y)
SUB SUB M MUL (X= X. Y)
MUL MULM DIV (X= X!Y)
DIV DIV M
3 Address
MOV (X= Y)
ADD (X= Y+Z)
SUB (X= Y- Z)
MUL (X= Y Z)
DIV (X= YtZ)
Mjc 16-bitna !TlL'morijska adre:,a, a X. I' i su iii 16-hilltc adrcsc iii 4-bitni rcgi,tri.
Racunar sa 0 adrc'a kuristi stck, jcclnnadrcsni racuthtr kPristi akunwlator. a m.tala
dva imaju 16 regi,tara i in,trukcije koje rade sa svim komhinac:ipma menl<Jrij,kih
lokacija i rqc:istrara. SUB X,Y odu,tirna V ml X. a SUB X.Y. Z oduLima Z nd Y i
rezultat u X. UL S-hitne opkmluvc i du/.inu in,trukcip K<l_I;[JC Llll11lll7.ak 4 bira. !-.uliko
bitova cc svaki racunar da bi iuaCunao X"
8. Sntislitc nacin adn:siranja koji cc omoguc'iti da sc u poiju moi'c
proizvolpn sl-;up ud h4 adrc,e. k"jc nc ntPraju oh,,vc,:.no hiti 'usc:dne. a naLt!.c >e u
velikum aJrcsnom pnbtoru.
9. Naveditc losu ,tranu qmopudc,ctvajuL'eg koda knp niJe n.tvcdcna u tckstu.
lO. Slcdccc i.crate napisanc intik.stH>Ill nuLtcijom napi\itc knri,tcci ohrnutu polj,J..u
notaciju.
aiA+B+C+D-E
b)(,',-B)X(l'+Dl+E
c:) (A X B !+ ( c X u J+ E
d
1
tA-Bl.xli<C-D/[)IrJ/Ci
1
xH
ll. Kuji su od parma J/r;\/a napisanih ohnuttJ!1\ ['"ij.,kom notacijorn meclu-
Si>hnu makmatic'h.i cJ...v:\alcntni'
1
''I A B + C + i A l3 C + +
biAB-C-i:\13C--
c) i\ B X c + i ;\ E c + :<
12. SlL'deCc dhrnL:tnin poljskon1 nutacijoin. inlik-.;noin
a I A B - C + D ;'
h 1 , \ 13 !C D I +
C) '" B c [> l + < "I
di ABC D L .< 1
1
; + Ci- [!I x +
r
'
'
'
'


'

422 Poglavlje 5: Nivo arhitekture skupa instrukcija
13. Koristcci obrnutu poljsku notaciju napisitc tri izraza koji sc ne mogu napisati infik-
snom notacijom.
14. Slcdecc logickc izrazc, napisane infiksnom notacijom, napisite koristcci obrnutu
poljsku notaciju.
a) (AANDB)ORC
b) (A OR B) AND (A OR C)
c) (AAND 13) OR (C AND D)
15. lzraz, napisan infiksnom notacijom, napisitc obrnutom poljskom notacijom i gene-
risite IJYM k6d za njegovo izracunavanje.
(5 X 2 + 7)- (4 I 2 + 1)
16. lnstrukcija na ascmhlcrskomjcziku
MOV REG,ADDR
znaci na Pentiumu 4: ucitaj sadrzaj memorijskc adn.:se u registar. Medutirn. na
UltraSPARC-u Ill, da histe u registar ucitali sadrzaj mcmorijske adrese, pisctc
LOAD ADDR,REG
Zasto sc u ove dve instrukcijc razlikuje redosled operanada'7
17. Koliko rcgistara ima racunar ciji Sll formati imtrukcija prikazani na slici 5-2.5'!
IS. Na slici 5-25 bit 23 se koristi za hiranje formata I iii formata 2. Ne postoji bit kojim
sc bira format 3. Kako hardver bira taj format''
19. U programiranjuje cest slucaj da program trcba da zna gde se promcnljiva X nalazi u
odnosu na interval od A do B. Ako postoji troadrcsna instrukcija sa opcrandima A., B
i X, koliko bitova za kodovc uslova trcha ova instrukcija da postavi''
20. Pentium 4 ima bit za k6d uslova koji vodi racuna o prcnosu iz hita 3 poslc neke arit-
rneticke operacijc. c\mu on slu7,i'l
21. UltraSPARC III ncrna instrukciju kojom hi 32-hitni broj ucitao u rcgistar. Umcsto
takvc instrukcijc obicno sc koriste dvc instrukcijc. SETHI i ADD. Postoji li jos ncki
nacin da se 32-bitni broj ucita u registar'' Obrazlozite odgovor.
22. Prijatclj jc banuo kod vas u 3 ujutru. i zadihano vam ohjasnjava idcju koja rnu jc
upravo blesnula: instrukcija s dva opkoda. Treba li prijatelja da uputitc u Zavod za
paknte iii da ga bez reci izbacite'l
23. Proccsor 805 I ncma instrukcije s pomcrajem vccim od 8 bitova. Znaci li to da on nc
moLe da pristupi mcmorijskim adresama vecim od 255'' Ako pak mozc, kako to radi'?
24. Testovi sleclccib tipova
if (k == 0)
if (a> b).
if (k < 5).
cesti Sll ll programiranju. Srnislite instrukciju koja cc ih t.:likasno obavljati. Koja
polja ce sadrzati vasa instrukcija''
25. Za 16-bitni binarni broj 1001 0101 1100 0011, pokalite efekat:
a) Pomerania uclcsno za 4 bita uz popunjavanjc nulama.
b) Pomeranja udcsno za 4 bita uz prosirivanje znaka.
c) Pomeranja ulevo za 4 bita.
d) Rotiranja ulevo za 4 bita.
e) Rotiranp udesno za 4 bita.
Veibanja 423
--------
26. Kako mozcte da obrisete mcmonjsku rec na racunaru koji nc poznaje
CLR'I
27.
28.
29.
30.
31.
32.
33.

35.
36.
37.
38.
Izracunajte logick.i izraz (A AND B ) OR C za
A= 1101 00001010 0011
B = 1111 1111 0000 1111
c = 0000 0000 001 0 0000
Smislite nacin da zamenitc vrednosti dve promenljive A i B, ada pri tome ne kori-
stite trccu promenljivu iii rcgistar. Porrun': Pokusajte sa instrukcijom EXCLUSIVE
OR.
U nckom racunaru broJ se mozc premcstati izjednog rcgistra u drugi, sadrzaj svakog
rcgistra pomerati ulevo za razlicit iznos i rezultati sabirati za manJC vremcna nego
sto jc potrebno za mnozenje. Pod kojim uslovima je ovaj niz instrukcija koristan {.a
iaacunavanjc izraza: ,konstanta x promenljiva'"!
Razliciti racunari imaju raz.licitu gustinu instrukcija (broj bajtova potrcban za
odrcdeno izracunavanje). Svaki nd skdccih dclic'a Java k.oda prcvedite u ascmbkr-
ski jezik Pcntiuma 4, UltraSPARC-a Ill i IJYM. Zatim izraC:unajtc broj bajtova pot-
rcbnih za izracunavanJe ovog izn11,a na svakom nd racunara. Pretpostavite da sui i
j lokalne promenljive u memoriji, ali ostaln nptimizujtc kako najboljc znatc
a. i = 3;
b. i = j;
c. i = j- 1;
Instrukcijc za rad u pctlji o kojimajc bilo reci u tekstu mlnosilc su sc na petlju for.
Smislite sada instrukciju koja ce raditi za uobicajcnu petlju while.
Pn.:tpostavite da kaludcri u Hanojumogu da prcmdtaju l disk uminutu (oni nc :lure
da zavrsc posao jcr su iLglcdi za zaposljavanjc osoba s njihovim u
Hanoju minimalni). Za kujc vrcme c..: rditi probkm prcmdtanja 64 diska'' Inazite
rczultat u godinama.
Zastu ulazno-izlazni urcdaji pnstavljaju vektor prckida na magistralu'' Da li hi tuln-
formaciju mozcla mogli da smcste u tabclu u mcmmiji''
Racunar za citanje podataka s diska koristi DMA. Disk u svakoj stazi irna 64 scktora
od po 512 bajtova. Period rotacije diska je 16 ms. tvlagistrala je sirinc 16 a
;,vaki prenos magistralorn traje 500 ns. Svaku instrukciju procesor izvrsava proscc-
no za dva ciklusa magistrate. Koliko Div!A usporava rad proccsora
1
Zasto sc potprogramima ;:a obradu prckida dndeljuju prioritcti. dok normalne p:o-
cedun.: takvc prioritctc nemaju'l
Arhitektura li\-64 sadrl:i ncobicno veliki broj rcgistara (6-l). Da li njihov vcliki bmJ
ima vezc s kurisct.:nJem prcdikacl!e'? Ako ima. kakva je veza'
1
Ako nema. za,;to ih
ima tnlik.o>
U tckstu sc ohjasnjava konccpt spekulativnih instrukcija LOAD. Medutim. nigdc sc nc
pominju spckulativne instrukcije STORE. Zasto> Jcsu li one u su;tini isle kao i speku-
lativnc instrukcije LOAD iii pmtoji ncki drugi razlog zbug kojih nisu pomenutc''
Kada treba mcdusobno povczati dve lokalne rmele, izmcdu njih se postavlja racu-
nar, ;van most, koji jc povezan sa ohe mrcze. Svaki paket kuji dmk s bilo koJC od
dve mret: izaziva sistemski prekid na mostu kako bi most mogao da utvrdi da li pa-
kct trcba Liputiti u drugu rmc/.u. Prctpostavicemo da za obradu prekida i ispitiv:_UlJC
424 Poglavljc 5: Nivo arhitekture skupa instrukcija
jcdnog paketa treba 250 IJS. ali da upucivanjc (ukoliko jc polrebno) radi DMA hard-
ver, ne optcreeujuci lime proccsor. Ako su svi pakcti vclicine I KR, kolika se mak-
simalna brzina prenosa podataka na svakoj od mrda moze tolcrisati ada sc pakcti
nc izgube na mostu'
1
39. Na slici 5-43 pokazivac okvira promenljivih ukazuje na prvu lokalnu promenljivu.
Koja je informacija potrcbna programu da hi se vratio iz procedure'/
40. Napisitc potprogram na ascmblcrskom jeziku za pretvaranje oznacenog binarnog
celog brop u ASC:ll format.
41. Napisite potprogramna ascrnblerskomjcziku za pretvaranjc izraza, napisanog u in-
tiksnoj notaciji, u obrnutu poljsku notaciju.
42. Hanojskc kulc nisu i jcdina mala rckurzivna proccdura koju toliko vole kompjutc-
rasi. Drug a sc lice izracunavanja faktorijela n 1. pri ccmu je n I= n ( 11- l) I , uz ogra-
niccnjc daJC ()I= I. proccdun1 na svorn orniljcnorn ;:a
izracunavanjc faktorijela n I_
43. ,c\ko nistc ubcdcni daje povrcrncno nc:izbdno pribcci rckurziji, pokusajlc da program-
ski rditc prohkrn Hanojskih kula bcz rekurzije i bez simuliranja rekurzivnog rdenja
lako sto cctc odr/.avati >lck u nizu. Upozoravamo da mozda ncL'etc naci rcscnjc.
6
NIVO OPERATIVNOG SISTEMA
v
RACUNARA
Kro;: citavu ovu knjigu provlaci sc nil da >C racunar sasluji ud ni;a nivoa,
a svaki dudajc Tl<lVU prclhudnunl nivou. Uponrali smo sc 'niHJOlll dl-
gitalnc logikc, s nivoom mikruarhilckturc i o nivoom arhitckturc skupa instrukcija.
Vrcrnc jc da predemo na sledeci nivo. na komc vlada opcrativni
Opcrativni sistcm (engl. opemting system) je koji sa slanuvista pro-
gramcra na nivo !SA i iz1 an njcga dodaje brojnc nove instrukcije i mogm'nosti. Ope-
rativni sistcm se po pravilu implementira suClverski. ali lcorijoki ncrna razloga ?.asi"
se nc bi implemcntirao i hardverski. has kao stu se ubicno implcmcntiraju rnikropm-
grami postoje). 0!ivo na komc se opcrativni si.,tem racunara kraL-
ko cerno zvati nivo OSM (Operating Sy-;tern :\lachine - operarivrwg
sistema). Onje prikazan na slici 6-l.
lako sui nivo OSM i nivu !SA nivoi (zatn sto pravi hanhcrsli
nivoi), inncdu njih postojijedna va:Cna razlika. Skup instntkcija nivoa OS\l p<ltpuno
jc na raspolaganju programcrima "plikacija. On s:tdri:i skt1ro sVL' niv,,a
IS A, kao i nov >kup instn1kcija kojc dndajc 1ni Tc nove in,trukci c
zovu se sistcmski pozivi (engl. s\Sii'JII cul!"1 ). Sistcmski pll;jv ,e upucuje unaprcd Jc-
tini,;muj usluzi opcrativnog sistema (tacnije. jcdnoj od n_!enih itbtrtlkcija). Tipil':m >i-
stemski poziv jc ucit<tlanje podataLt iz Si:-,tcmske flilLive c'cmo Ll tlVOJ
knjizi stampati malim slovima, !'tllll()lll Helvet1ca.
425
r-
r'
!:
!;.
I:
i'
!
426
Poglavljc 6: Nivo opcrativnog sistema racunara
Nivo 3
Nivo operativnog SIStema racunara
Operativni sistem
Nivo 2 Nivo arhitekture skupa instrukcija
Mikroprogram iii hardver
Nivo 1 N1vo mikroarhitekture
Slika 6-1. Polo?aj nivoa operativnog sistema racunara.
Nivo OSM uvck se intcrpretira. Kada program izvrsi ncku instrukciju
nivoa OSM (npr. procita neke podatke iz datoteke), opcrativni sistcm cc raditi korak
po korak. na isti nacin kao sto hi i mikroprograrn izvoclio instrukciju ADD korak pu ko-
rak. Medutim, kada program izvrsava neku instrukciju nivoa ISA, nju dircktno izvodi
prethudni nivo mikroarhitekture, bcz ikakvc pomoci operativnog sistema.
LJ ovoj knjizi cemo vas u najosnovnijirn crtama upoznati sa operativnirn sistcmi-
ma. Glavnu pal:njuubraticcmu na tri vazne teme. Prva se tice virtuelne memorije, teh-
nike kuju prirnenjuju rnnogi savrerncni operativni sistemi da bi izgledalo kau da
racunar ima vise memorijc nego stu je stvarnu ima. Druga suulazno-izlaznc opcracijc
s datotckama - koncept viseg nivua ncgo sto su ulazno-izlazne instrukcije koje smo
proucavali u prethodnom poglavlju. Treca tcma je paralelna obrada- nacin na koji
vise procesa mogu da se izvrsavaju, da mcdusobno kornuniciraju ida se sinhronizuju.
Vazanje i konccpt procesa pa cemo ga dctaljno Dhjasniti uuvurn pogiJVIJU. Zasad pod
prucesom mo/.ete podra,:umevati program koji izvrsava i sve informacije koje
odrcduju njcgovo stanje ( memorija, registri, programski hrojac, status ulazno-izlaz-
nih urcdaja itd). ovc principc razmotrimo u nacclu. pokazacemo kaku se uni
odrazavaju na opcrativnc sisteme dva nasa racunara kujc smo uzeli za primerc, Pcn-
tiuma 4 (Windows XP) i Ultra-SPARC-a Ill (UNIX). Postu se procesor 8051 obicno
koristi u ugradcnim sisrcmima. on nema operativni sistem.
6.1 VIRTUELNA MEl\lORI.JA
Mcmmije ;,u u prvim danima racunara bile male i skupe. IBM 650. vodeei naucni
racunar iz tih dana (kasne pedcscte), imao je samo 2000 memorijskih reci. Jedan ud
prvih programskih prcvndilaca za ALGOL tJO bio je napisan za racunar sa samo I 024
memorijske reci. Jedan ocl prvih sistema koji je radios deljenjcm procc:sorskug vre-
mena izvrsavao se sasvim cl()hro na racunaru PDP-I sa samo 409(-, osamnaestohitnih
reci predvidcnih i za opc:rarivni sistem i za kori;,nicke programe. Tih dana su pru-
grameri najveci deu vremena provodili da smeste prngrame u uskudne
memurije. (:esto je bilo ncophodno kc1ristiti algoritam koji se izvrsavao /.nat no spori_1e
ocl drugog. boljeg alguritma. sanm zato stu se program s tim boljim alguritmum nije
mogao smestitJ u raspolozivu memoriju racunara.
6.1 Virtuelna mcmnrija 427
Ovaj problem se pu pravilu resavao pomocu sekundarne memorijc (npr. diska).
Programer je svoj program dclio u niz uzastopnih epizoda (engl. overlays), velicine
koja moze da stane u memoriju. Pri pokretanju programa prvo se uCitavala prva epi-
zoda i izvrsavala. Po njenom zavrsetku, ona je ucitavala drugu epizodu i pozivala je,
i tako redom. Programer je bio odgovor:m za razbijanjc programa na epizode, za po-
pojeclinih epizocla u sekundamoj memoriji, za prcnos epizoda izrnedu sekuncl-
arnc i glavnt: memorije i za upravljanje citavim postupkom racla s programskim
epizodama, bez ikakvc pomoCi racunara.
lako jc koriscena mnogo god ina, ova tehnika je zahtevala mnogo clodatnog posla
oko upravljanja epizodama. Godinc 1961. grupa istrazivaca u Mancesteru. u Engle-
skoj. prcdlozila je metodu za au,tomatsko smcnjivanje epizoda programa. za ciji rad
programer cak nijc morao ni cia zna (Fotheringham, 19fJ I). Ova metoda, danas po-
znata kao virtuelna mcmorija (engl. virtual memory), imalaje ocite prednosti jer je
programera oslobadala obimnog i mucnog usklactivanja epiwda. Onajc najpre tokom
Sc:zdcsetih godina isprobana na nizu racunara iz domcna istrazivackih projckata po-
svecenih racunarskim sistemima. Pocetkom seclamdesetih godina, virtuelna rnemori-
ja se pojavila u veeini racunara. Sacla cak i racunari s jednim Cipom, ukljucujuc'i
Pentium 4 i LJ!traSPARC Ill, imaju vrlo slozcne sisteme virtuclne memorijc. 0 njinM
cemo govoriti u clrugom delu poglavlja.
6.1.1 Stranicenje
Zamisao istrazivacke grupe iz Mancestera hila je da sc razclvoje konccpti adresnog
prostora i memorijskih lokacija. Zamislitc kao primer tipican racunar tog doba, koji je u
svojirn instrukcijama mogao imati adresno polje ocl 16 bitova i 4096 mcmorijskih rec1.
Program je u tom racunaru mogao adresirati 65536 memurijskih reci. Daklc, postoji
65536 (2
16
) 16-bitnih adresa. od kojih svaka odgovara drugoj memorijskoj reci. Broj
reci koje se mugu adresirati zavisi samo ocl broja bitova u adresi i nema nikakve veze
s brojem stvanm raspolozivih reei u memoriji. Adresni prostor (engl. uddress space)
ovog racunara sastoji se ocl brojcva 0, l, 2, ... , 65535, jer je to skup rnogucih adresa.
Racunar jc, medutim, mogao imati znatno rnanje od 65535 rcci u svojoj memoriji.
Pre uvodenja virtuelne memorije pravila se razlika izmedu adresa do 4096 i onih
vecih. Iako to niko nije zvanicno tako dcfinisao, ova dva deJa su smatrana kmisnim, od-
nosno beskorisnim adresnim prostorom (adrese iznad 4095 bile su hcskorisne jer nisu
mlgovarale stvarnim memorijskim adresama). Nije pravljena razlika izmeclu adrcsnog
prostora i memorijskih adresa, zato sto je harclver izmedu njih znakjednakosti.
Razdvajanje adresnog prostura i memorijskih adresa sastoji se u sledccem: u sva-
kom trenutku postoji 4096 memorijskih rcci kojima se moze direktno pristupiti, ali
one ne mmaju da odguvaraju memorijskim adresama od 0 do 4095. Mogli bismo, na
primer. naloziti racunaru da od sada pa nadalje, kad god se referencira adresa 4096, on
upotrehi memorijsku rcc na aclrcsi 0. Kacl god se refcrencira adresa 4097, da upotrebi
memorijsku rec na adrcsi I, kad god se refercncira adresa K 191, da upotrehi memu-
riJsku rec na adrcsi 4095 itd. Drugim recima, definisali srno preslikavanje (engl. map-
ping) adresnog prostora u stvarne mcmorijske aclresc (slika 6-2).

r

4
r
428
Poglavlje 6: Nivo operativnog sistema racunma
Adresni prostor
Adresa
8191 -L=J._Pc"l ..i.kav. anje 4K glavne
4096 _ -- --- memonJe
--- .. -. - . 4095
0----- -------...._
L_ ____ _l ___ 0
Stika 6-2. Preslikavanje pumocu koga se virtudne adrese od .:1096 do 81 'J I prevode u adrese
glavne memmijc od 0 Jo 4095.
Za uvakvo prcsiikavanje adresa i adrcsnog prostora u stvarnc mcmorijske iokacijc.
racunar s memorijom od 4 K8 koji nema virtuelnu memoriju koristi fiksno prcslika-
vanjc adresa izmcdu 0 i 4095 u40<)(1 stvarnih mcmorijskih reci. Postavlja se ;:animijivo
pitanje: ,Sta ddava ako programski tuk 'koci na neku adresu izmedu l:\ 192
i 122l:\7') Na racunaru hez virtuelne memorije program ce upasti u klopku, korisnik ce
dobiti puruku u grt'Sci, na primer: ,.Pukusaj pristupanja nepostujec'oj memuriji" i pro-
gram ce prekinuti rad. U racunaru koji ima virtucinu mcmoriju dogodice sc slcdec'c:
I. Sadrzaj glavne memorije hicc snimljen na disk.
2. Na disku ce hiti ponack-nc reci u intcrvaiu izmcdu Ill <)2 i 122S7.
3. Reci i;: intervala ml S llJ2 do 122S7 ucitace sc u glavnu lllt'lllnriju.
4. Mapa adresa hicc taku innenjena da prc;,iikava adrese od S llJ2 du 122o7 u
memorijskc iukaciJL' od () du 4095.
5. lzvrsavanje cc 'e nastaviti kau da se nista neobiC:no nije d,Jgudilo.
Ova tehnika smcnjivanja programskih cpi!Ll(_b Love se stranii'cnje
(engi.Jhlging). a dck>Vi programa koji St.' UCitavaju S diska Sll stranice
(engl. pages).
J'vloguc Jc i slo7.eniji naC:in prl'slikavanja aJrcsa i; adrc,!Hl_!! rro:;tora u stvarne rne-
morijskc adrcsc. Radi jasnijeg nulikm anp. adrese kDJc? program nwi.e da rderencira
zvacemo prostor virtuelnih adresa 1engl. \'irtuo! wldrns sr,ace), a stvarn.:, hard-
vcrske (fi;icke; memorijskc adrc:,e prostor adresa \engl. elzysica/ wldress
.lfh/1'1'). lVIapa memorije I engl. 1/li'l!lon lllllfi) ili tabela stranica (engl. pat;e !uhlcl
tizicku adrL'SU k,;ja mi)!"V:\r:t svakDJ virtuelnuj adrc:si. Prctpnstavij:mw da
na disku inn dm oljno nJe.';ta i.a Cell prustPr virtuelnih adrc:s:t :iii b:trem njegu\' den
koji se koristi ).
Programi sc pi;,, Lto Lb ceo ptw,tor virtuelnih adrcsa m<1/c da ,-;tanc u gia1nu me-
moriju, iako to nijc slucaj. Programi mugu da uC:it-tvaju rt:Ci bilo KO)! dt:!a pmstnra
virtuelnih adre;.;a ili da ih u njcg:1 upisuju ili da skacu na bilu k\ljll instrukciju biiu ;;de
unutar prm,tnra virtucinih adrc:sa. bcz uhzira na hJ stvanH' n-:ma dovoljno ti;icke
memorijc. lJ stvari. programeri lllD)!U da pisu pl'\lgrame inc znajuci da pustoji virtu-
dna memorija. sc pona\a kao cb ima veliku menhlriju.
6.1 Virtuelna memorija 429
Ova cinjenica je kljuC:na i ccmo je uporediti sa segrncntiranjcm. gde pro-
gramer mora da budc svestan postojanja segmenata. Da istaknemo jos jed nom. stra-
nicenje stvara programcru iluziju velike. neprekidne. linearne glavnc memorije, iste
velicine kao prostor virtue I nih adresa. Raspoloziva glavna memorija moze u stvarno-
sti hiti manja (iii veca) od prostora virtuelnih adresa. Simuliranje velikc glavne rne-
n1<lrije straniC:enjtm. program ne moze da otkrije (osim pomocu vremenskih testova).
Kad god c;e refcrencir,l ncka adresa. pojavljuje se odgovarajuca instrukcija iii rcc po-
dataka. Posto pn1gran1t'r mo/.c da pise program kao da stranicenje i ne postoji, kaze se
da je mc:l;an i zarn :;tranicenja transparcntan.
Tosto programer moze da koristi nepostojecu mogucnost i dane brine kako una radi.
ne bi trehaio nam hucle novosl. Skup !SA instrukcija cesto ima instrukciju MUL iako
u mikroarhitekturi knja ga podr!ava ne postoji hardverski urcdaj za mnozenjc. lluziju
da racunar moze da mnozi hrojeve podrz.ava mikrnkod. SliC:no tome, virtuelna masim
koJU ohabt:\1uje operativni sistem moze da stvori iluz.iju da svim virtuelnim adresamt
odgovara stvarna mcmorija. iako to nije tacno. Samo autori operativnih sistema (i oni
koji ih prouC:avaju) moraju da znaju kako se takva iluzija podrava.
6.1.2 Implcmentiranje stranicenja
Neophodan preduslov za koriscenjc virtuelne memorije jeste poslojanje disk_t
s programom i svim podacima na njemu. Lakse jc z.amisljati cia se na disku nalaLi
izvnrni program, C:iji se delovi povremcno kopiraju u memoriju. nego obrnuto. Narav-
nu. neophodno je da izvorni program uvek budc azuran. Kada se inneni kopija .1
glavnuj memoriji. izmena semora (na kraju) pojaviti i u izvornom programu.
Prostor virtueinih adresa podeljen je u udreden broj jednakih stranica. Danas SJ
unhicajene stranice veiiC:ine izmedu 512 bajtova i 64 KB. mada se povremeno knrisc
i velicinc 4 M8. Velicina stranicc je uvek stepen broja 2. Prostor tizicki1
:tdre;.,a na slican nacin je podeljen u deluve velicine stranice, tako da svaki deo glavno:
mcnl\Jrijc moic da primi tacno jednu stranicu. Ovi deiovi glavne memmije u koji
,me'.taju stranice na;.ivaju se okviri stranica (engl. pugeji-umes). Glavna
na 6-2 sadrzi samo jcdan okvir. U praksi bi obiC:no ;,adrzala na hiljade.
Slik:t 6-3(aJ iiustruje jcdan od mngucih naC:ina deljcnja prvih 64 KB prostnra vir-
lilclnih adrcsa u stranice od po 4 KB. (Obratite pa/.nju nato da ovde guvorimo .J
64 KH i 4K adresa. Adre-.;a nwze da bude i bajt. alii rcC: u raC:unaru na kome
reci imaju uzastopne adrcse.) Virtuelna memorija sa slike 6-3 bila hi implementirana
pomucu tabele stranica k\lja ima onoliko odrednica koliko prostor virtuelnih adrcsa
ima 'tranica. Ovde smo zbog jednostavnosti prikazaii samo prvih 16 odrednica. KacL!
ram pokusa da refercncira reC: iz prvih 64 KB svog pmstora virtuelnih adresa da
hi prcuzeu instrukcije, preuzeo ili smcstio podatke, on najpre gcnerise virtuelnu ad-
rcsu i;medu 0 i 65532 1 uz pretpostavku da su adrese reci delji ve sa 4 ). Za generisanje
ove adrese mn7.e se koristiti imkksiranje iii indirektno aclresiranjc. kao i sve druge
uPbicajc:ne tehnike.
r
'
'
'
'

,,
l
i
I !

430
Poglavlje 6: Nivo operativnog sistema racunara
Stranica Virtuelne adrese
1 l J
c
15 61 440 - 65535
14 57344-61439
13 53248 - 57343
12 49152-53247
11 45056-49151
10 40960 - 45055
9 36864 - 40959
Donjih 32K
Okvir glavne memorije
8 32768 - 36863 stranice Fizicke adrese
7 28672 - 32767 7 28672- 32767
6 24576- 28671 6 24576 - 28671
5 20480- 24575 5 20480- 24575
4 1 6384 - 204 79 4 16384-20479
3 12288 - 16383 3 12288 - 16383
2 8192-12287 2 8192-12287
1 4096- 8191 1 4096- 8191
0 0- 4095 0 0- 4095
(a) (b)
Slika 6-3. (a) Prvih 64 KB prostura virtuclnih adrcsa podeljenih u 16 slranica Dd po 4K. (bi 32 KB
glavnc rncmorijc podcljena u osam okvira t.a stranice Dd po 4 KB.
Slika 6-3th) prikazuje tizicku memoriju koja se sastuji ou osam okvira za stranice
po 4 KB. Ova memorija moze da butie ogranicena na 32 KB (I) zato ;to je to sva me-
morija koju racunar ima (procesoru ugradennrn u ves-masinu iii mikrotalasnu peenicu
ne bini trchalo vise) iii t2) zato sto je ostatak memorije dodeljen drugim programima.
Sada razmotrite kako se 32-bitna virtuelna adrcsa moJe preslikati u tizicku adresu
glavne mcmorije. Najzad, memorija ne razume virtuclne adresc. vee jedino adrcse
glavnc mcmorije, pajoj se to mora i dati. Svaki racunar s virtuelnom memorijom ima
ureJaj za preslikavanjc iz virtuelnih adrcsa u tizicke.
Taj ureJaj se 1.ove jedinica za upravljanje memorijom (engL A1enwn ,Hanuge-
ment Unit, l\IMU). On moze biti na procesorskom cipu iii na posebnorn cipu koji
blisko saraduje s procesoronL Posto MMU jcdinica iz naseg primera preslikava 32-
-bitne virtue Inc adrcse u 15-bitne fizicke adrcse, treba da ima 32-bitni ulazni i 15-bitni
izlazni registar.
6.1 Virtuclna memorija 431
Da biste vi deli kako MMU jcdinica radi, razmotritc primer na slici 6-4. Kada MMU
jedinica dobije 32-bitnu virtuelnu adresu, ona ih deli na 20-bitni broj virtuelne stranice
i na 12-bitno rastojanjc unutar stranice (posto su straniee u nasem primeru velicine
4K). Broj virtuelne stranicc koristi se kao indcks za tabelu straniea da bi se pronasla
odrednica trazenc stranicc. N a slici 6-4 broj virtuelne stranice je 3, pa se, kao sto je pri-
kazano, bira odrcdnica 3 iz tahele stranica.
- 15-bitna memorijska adresa
Virtuelna
stranica
l1l1lolo io[o I o lolol o l1lol1l1lo I
Bit I
, d I
pnsustJa/o
15
14
13
12
11
10
9
8
7
6
5
4
3
2
0
[I
1
"'
1 110 -
----
------20-bitna virtuelna stranica- .,_i--12-bitno rastojanje _,._I
i- --------- ---- 32-bitna virtuelna adresa -----
Slika 6-4. Formiranjc adresc u glavnoj rncmoriji od virtuclnc adrcse.
Ulazni
registar
,
432 Poglavlje 6: Nivo oper:Jtivnog sistem:J
Kada dobije odrcdnicu tabelc stranica, MMU jedinica ee prvo provcriti da li se
trazena stranica vee nalazi u glavnoj mcmoriji. Na kraju krajeva, uz 2
20
virtuelnih
stranica i samo osam okvira za stranice, ne mogu sve virtuclne stranicc biti odjcdnom
u mernnriji. MMU jedinica to provcrava ispitujuci bit prisustva!odsustva u odred-
nici tabelc stranica. U nascm primeru ovaj bit je I, sto znaci da sc stranica vee nalazi
u memoriji.
Slcdeci knrak je uzimanjc vrednosti okvira stranice iz izabrane odrednicc (6 u
ovom slucaju) i njeno kopiranje u gornja 3 bita l 5-bitnog izlaznog rcgistra. Tri bita su
potrcbna zato sto u lizickoj rncmoriji ima osam okvira za stranice. Uporedo sa ovom
operacijom, 12 najmanjc znacajnih bitova virtuelne adrcsc (po1je za rastojanjc unutar
stranicc) kopira sc u 12 najrnanjc znacajnih bitova izlaznog registra. Ovakva 1 5-bitna
adresa sada se sa1jc kcsu i1i memoriji za potrebe pretrazivanja.
Slika 6-5 prikazuje moguee prcs1ikavanjc izmedu virtuc1nih stranica i fizickih ok-
vira za stranicc. Yirtudna stranica 0 je u okviru l. Yirtuelna stranica 1 je u ukviru 0.
Yirtuclna stranica 2 nijc u glavnoj memoriji. Yirtuclna stranica 3 je u ukviru 2. Virtu-
dna stranica 4 nijc u glavnoj memoriji. Virtuclna stranica 5 je u okviru (J, i tako dalje.
6.1.3 Stranicenjc na zahtev i model radnog skupa
U prethodnom i;laganju preeutno jc pretpostavljanu da sc rcfen:ncirana stranica
nala;:i u glavnoj mcnwriji. Mcuutim. ta pretpostavka llL'CC UVt'k odgmarati istini jer u
glavnuj memoriji ncma dovoljnu prostura za sve virtue1ne stranice. Kada se rcferen-
cira adrec;a na stranici kuja sene nalaJ:i u g1avnoj mcnwri.Ji, tal\ va sc zove pro-
masivanje stranice (engl. pilgejiudt). Kada -''C promasi c,tranica, opcrarivni si,.;tcm
nwra ucitati tra:1cnu stranicu s disb, upisati u tahelu stranica nJcno novo rnc:-to u ii-
zickoj nlcnwriji i ponoviti instrukciju kc1ja je i?a,tvala grcsku.
lJ racunaru koji irna virtuclnu llll'll10rijll Illllgth.'e .Jl' J'LlKrCilllli cak i k;lci<l
sc nikakav pwgram nc nalazi u glavnuj memuriji. Sanw tahdu trcba pPdcsiti
tako da za svaku virtuelnu straninr ukazujc sckundarnu mcrnoriju. umcsto da J:a
nd.:c m1 nJih ukazuje i na glavnu menwriju. Kad:r pruct'-"Or da prcu1me prvu
instrukciju, udmah '>l' jav1ja ;tnjc slranicc, ;bel;; ceg:t se str:mica \ prvorn in-
strukcijum ucitava u mcnwnju i unusi u tabelu \lranica. 7aiim prva in:-truh'ija muL:c
da pocne. Ako prva instrukcija ima d\ e ,tdrcsc kojc c;c nal:tLe na ra;!icitim c,tranicama,
ud kojih nijedna nije ,.;tranica sa instrukcijc>Tll, srranic;r .'>L' dvaJ'UI prom:t\ujc i u.:i-
tavaju sc jos Jve stranice pre ncgo siu instrukcija hulk da sc Sicdcca in-
strukcija takm!c moc da proma;i :-tranicu itd.
Ova metuda rada s vinuclnom memuriJtllll 1.mc c,c stnwiCenjc na zahtev (en!CI.
dnnund puging), po analogiji 'dubrn pu;natim algorillll()ill za hr:mjcnje reba: kad:t
bcha zaplace, vi je nahranite lumcstu da jc hrani!C prc:ma udrv'tknom vrc-
menskum rasporcdu). Pri strani.:cnju na ;aille\, ,tranicL' .;e Uil<l-"L' u i11Clill'riju '<lllill :;a
izricit Lahtcv, niLrku
6, I Virtu dna memorija
Tabela stranica
Virtuelna Okvir
stranica za stranicu
de J J
15 0 0
14
13
12
11
10
9
8
7
6
5
4
3
2
Pnsutan u glavnoJ memoriji
0 Odsutim iz glavne memorije
433
Okvir
za stranicu
7
6
5
4
3
2
0
Slil-.a 6-5, .klinu "d prvill 16 virtuclnill stranica u glavnu menh>ri.Jll
huja ima dsam ok. vira J,a
Pitanje d:1 li trcba kmistiti straniccnje na zahtev, ima smisla samo na pocetku
i;H;a\:lllja [lfl>;,':Ll:na. !'Pc,lc toga CC potrehnc stranice vee biti ll g1avnoj lllCT!1oriji.
AkD racunar racli u rciimu deijenja vn:mena I izmedu vise korisnika) i procesi se sme-
njuju :;vaLill. npr. !()() ms, s\aki program ee sc tokom svug izvrsavanja mnogu puta
ponr,vopukremrti :ncmorijc,l\a mapajedinstvena za :;vaki pwgram i menja se
kada jccLm pn>gr:li:I ,.;urcni dru;;:i, pitanje s pucctka ovog pasusa opet dobija smisao
kacla -,i,tcm rad; n re!im;: dc:ljcnog vremena.
r\lte:11aii\ ni pri,IUJ' 'L' :a:-niva na z:tpa/anju da vccina prngrama ne refcrencira svoj
adre,ni l'rlhliH. 1 a' EDilH:rno, vee se uglavnum usredsreduje na manji broj >tranica.
Ov;1j ,c ;uve prindp lokalnosti (engl. lonzlitv principle). Pristupanjcm me-
muriji I1'r<lze sc prc:u,:.:ti instnrkciJa, ona muze da prcuzmc podatkc ili ih pak mo,'ic smc-
stiti. l' bile' kt'tn trcnutl-.u r ['Ll>toji skup u ko.JCill su svc stranice kojimaje pristupanu
po>binjih k puw. { l96X i je clvaj skup naLvao radni skup (engl. H"orking set). p
fi'.
t
P,:,
~
~
!'
1
434 Poglavlje 6: Nivo operativnog sistema racunara
Posto se raclni skup lagano menja s vremenom, moze se razumno proceniti koje ce
stranice biti potrehne kada se program ponovo pokrene, i to na osnovu radnog skupa
u trenutku kacla je poslcdnji put zaustavljen. Te stranice se tada mogu ucitati pre nego
sto se program ponovo pokrene (pod pretpostavkom da mogu da stanu).
6.1.4 Pravila zamenjivanja stranica
llkalno bi hilo kada bi se skup stranica koje program aktivno i intenzivno koristi,
zvan radni sknp, mogao drzati u memoriji jer bi se tako proredilo promasivanje stra-
nica. Medutirn, programeri retko znaju koje su slranice u radnom skupu, tako cia ope-
rativni sistem to mora da otkriva u hodu. Kada program pristupa stranici koja nUe u
glavnoj memoriji, trazenu stranicu treha ucitati s diska. Da hi se napravilo mesto za
nju. neka druga stranica ee morati da bude vraeena na disk. Prema tome, potreban je
algoritam 1a odlucivanje koju stranicu treba ukloniti.
Uklanjanje slucajno izabrane stranice verovatno nije dobra idcja. Ako sc desi da to
budc stranica sa instrukcijom koja je izazvala grdku, nastaec nov promasaj cim se
pokusa prcu;.imanjc sledeec instrukcijc. Opcrativni sislemi uglavnom pokusavaju da
predvidc kojajc od stranica Ll rnemmiji najmanje kurisna, tj. cijc ee uklanjanjc imati
najmanje nepozeljne cfckte na program koji se izvrsava. Jcdannacin da se to uradi jc-
ste da sc za svaku stranicu proceni kada ee joj se sledeei put pristupiti, te da se udbaci
una kojoj sc zadugo neec pristupati.
Jedan popularan algoritam izbacuje stranicu kojajc najdavnije koriseenajcr posto-
ji velika verovatnoea da ona ne spada u tekuci radni skup. Ovaj algoritam se skraeeno
zove LRU (Least Recently Used- najdavniJe koriscen). fako LRU obicno daje du-
bre rczultatc, postoje situacije. kao sto je ona koju opisujemo u nastavku, kada ne radi
do bro.
Zamislite da program izvrsava veliku petlju koja se proteze preko dcvet virtuclnih
stranica u racunaru koji u tl;.ickoj memoriji ima prostora samo za osam stranica. Kada
program stignc na stranu 7, glavna mcmorija ee izgledati kao na slici o-6(a). Pokusaj
da sc pn.:uzmc instrukcija s virtuelne stranice 8 zavrsava promasajcrn. Mora se doneti
odluka o izbacivanju jedne stranice. Algoritam LRU ee izabrati virtuclnu stranicu 0
jer jc ona najdavnije korisecna. Virtuelna stranica () se uklanja i zamenjuje virtuelnom
stranicom X, sto daje situaciju kao na slici 6-6(b).
Po izvr;enju instrukcije s virtuelne stranicc X, program ponovo .-;kace na vrh petlje,
na virtuelnu stranicu 0. To izaziva nov promasaj. Virtuelnu stranicu 0, kojaje upravo
odbacena. treha ponovo preuzeti. Algoritam LRU oclbacuje stranicu I, sto izaziva si-
tuaciju na slici 6-6(c). Program se na slranici 0 zadrzavajos malo. Zatim pokusava da
prcuzme instrukciju s virtuelnc stranice I, sto dovocli do promasaja. Stranicu I treba
ponovo preuzeti, zbog cega ec biti odhacena stranica 2.
Vee vam jc postalo jasno da algoritam LR U konstantno pravi najgmi moguei izhor
(i drugi algoritmi uovim okolnostima ne raLic nista bolje). Ako, medutim, raspoloziva
glavna memorija premasuje velicinu radnog skupa, LRU smanjuje hroj promasaja.
s,-"
g
'if.
.It
!-
~
;1
i
tf
!l
t
l
6.1 Virtuelna memorija
Virtuelna stranica 7 Virtuelna stran1ca 7 Virtuelna stranica 7
Virtuelna stranica 6 Virtuelna stranica 6 Virtuelna stran1ca 6
Virtuelna stranica 5. Virtuelna stranica 5 Virtuelna stranica 5
Virtuelna stranica 4 Virtuelna stranica 4 Virtuelna stranica 4
Virtuelna stranica 31 Virtuelna stranica 3 Virtuelna stranica 3
Virtuelna stranica 2 Virtuelna stramca 2 Virtuelna stranica 2!
Virtuelna stranica 1l Virtuelna stranica 1 Virtuelna stranica 0 I
Virtuelna stranica 01 Virtuelna stran1ca 8 Virtuelna stranica 81
(a) (b) (c)
Slika 6-6, Potpun krah algoritma LRU.
Drugi algoritam za zamcnjivanje stranica je FIFO (First-In First-Out, prvi ulazi
- prvi izlazi ). FIFO uklanja najdavnije uhtunu stranicu, bcz obzira na to kada JOj je
poslcdnji put pristupano. Svakom okviru za stranice pridruzen je brojac. Na pocetku
se svi brojaci postavljaju na 0. Posle obrade svakog promasaja, hrojac uza svaku stra-
nicu kojaje trenutno u mcmuriji povceava se zajedan, a brojac za upravn ucitanu stra-
nicu vraea se na 0. Kada neku stranicu treha izbaciti, bira se stranica s najvccom
vrednoseu brojaca. Posto njen brojac ima najveeu vrcdnost, ta stranicajc svedok naj-
veeeg broja promas<0a. To znaci daje ona ucitana pre svih drugih stranica u memoriji
ida zato (nadajmo se) postoji najveca verovatnoca da vise nije potrehna.
Ako je radni skup veci od broja raspolozivih okvira J:a stranice, nijedan ljudsko:n
rukom stvoren alguritam neec dati clobre rezultatc i prumasaji ee biti hrojni. Za pro-
gram koji stalno i ccsto promasujc stranice kaze sc da tresira (engl. thrashing). (1\Ii
bismo ga mogli nazvati i ,,udi cistac" jer skoro da nista drugo inc radi osim sto po-
gresno brise memoriju da bi ponovo ucitavao iste virtuclne stranice.) Ne treba post:b-
no naglasavati cia je trdiranje nepozeljna pojava u sistemu. Ako program kori;ti
veliki deo prnstora virtue I nih adresa, ali ima mali radni skup koji se sporo menja i sta-
je u raspolozivu glavnu memoriju, on ncee praviti problemc. Ova tvnlnja vazi cak i
ako tokom svog rada program upotrebi stotinama puta vise reci iz virtuclnc mcmorijc
nego sto racunar ima reci ll glavnoj memoriji.
Ako sc stranica koju !reba oclbaciti nije menjala od trenutka kacl je ucitana (slo je
pri lie no verovatno ukoliko ne sadrzi podatke, vee program), nc trcba je upisi vati na
disk, jer tamo vee postoji njena verna kopiJa. Ukoliko je bila menpna od trenutka kad
je ucitana, kopija na disku vise nije azurna, pa se :,tranica mora ponovo upisati na disk.
Kada hi postojao nacin cia se saopsti kako stranica nijc menjana od trenutka ucita-
vanja (tj. claje cista), odnosno daje unju upisivano (tj. daje prljava), moglo hi sc izbeei
ponovno upisivanje svih cistih stranica i tako bi sc ustedclo mnogo vremena. Mnogi
racunari u MMU jedinici im<uu jcdan hit za svaku stranicu koji se postavlja na 0 kada
se stranica ucita, a postavlja na I kada se u nju nesto upise (kada se stranica zaprljaJ. sto
radi mikroprogram iii ndgovarajuei hardver. lspitujuei ovaj bit, operativni sistem m o ~ e
da sazna da li je stranica cista iii prljava i da je shod no tome udbaci iii pusalje na disk.
!r:
,.
436
Poglavljc 6: Nivo opcrativnog sistema racunara
6.1 .5 Vclicina stranice i fragmentiranje
LTkoliko kmisnicki program i podaci kojim slucajem ispune tacno ceo broj strani-
ca, nec'e hili proslura kada se nac1u u mcmoriji. Ako, s druge strane,
oni ne ispunc ceo broj stranica. na poslcdnjoj stranici ce ostati nesto neiskorisccnog
prostora. Na primer. ak.o je Ia program i podatke potrehno 26.000 bajtova u racunaru
sa 4096 bajlova po stranici. prvih stranica bice popunjcne sa ukupno 6 x 4096 =
24.576 bajtova. a poskJnja str:,nica ce sadrzati 26.000-24.576 = 1424 bajta. Posto na
svakoj stranici ima mcsta 1-a -!006 hajtova, 2672 bajta ce biti prolracenu. KaJ god seJ-
ma slranica hude u i lice bajtuvi hili u njuj, ali ncec nicemu sluziti. Problem
nciskoriscenih ha.JtO\ a :.;c intcn10 fragmcntiranje (engl. intenwlj/ugmentu-
tioll J I poslo jc neiskurisccn prm.tor u ok viru samo jcdne stranicc).
Ako je stranica \ dicine 11 bajtova, prosecan pros lorna poskclnjoj slranici programa
knji nije i,k,niscen ;.hog internog fragmentiranp iznusi 11/2 hajlova- sama siluacija po-
ka:wje da valja koristiti manic slranicc kako bi sc minimizovali gubici. S druge stranc,
male slranice .mace i veliki broj slranica, kao i veliku tabclu stranica. Ako sc tabela stra-
nica odriava harcherski, velik.a tahela znaci da ima vise regi,tara u kojima sc cuvaju
njcne odrcdni,c, stu puvccava ccnu racunara. Osim toga. vise vrcmena cc se utrositi za
ucitavanjc i :.;mcslanjc sadriaja registara svaki put kad sc program pokrcne ili zauslavi.
Stav i;c. male stranicl' ncclika:.Jlll koristc propusni upseg za pristupanje disku. Ako
uzntcmn da pre svakog prenosa poclataka treba cckati oko l 0 ms (tra7.cnje + rotacionu
veliki prcnosi su etikasniji od malill. Uz hrzinu prenosa podalaka ml
10 i\11:3/s, prcnu;cnjl' X Kl:3 pudalaka traje samo 0,7 ms duzc od prcnosenja l KB.
,\lcdutim. male slranicc imaju i sledecu prednost: ako sc raclni skup sastoji od vc-
likug hroja malib. zasehnill podrucja prostora virtuelnih adrc:.;a, mo::c biti manjc tresi-
ranp ncgo k:tJ .>c skup sastoji tld vclikih stranica. Razmolrite, na primer. matricu A
vcliC: inc l 0.1)\ )() x l 0.000. ispunjenu e lemcntima i\ [I, 11. A [2, l], A 13, I J it d. kao UL-
a't"pnim 0-hajtnim recima. Ovu skladiste, uredcnu po kolonama. znaci Ja ce elemcn-
ti I: ,\ ! I. II. ;\ 11.21. i\ 11.31 itcl. bili medusohno udaljcni 80.000 bajtova.
Program kn.J; hi ubavljao upsezno izracunavanje sa svim clemcntima ovog reda kori-
stio bi ](; IJ()() podrucja, od kojih je svako uclaljeno ocl najbli/.cg suseda 70.9LJ2 bajta.
je ,rnniea vclicine R KB. za cuvanjc wih stranica hilu bi putrcbno
:.;kladi;tc veli2II1C xn MB.
Kcltla JC st ran ica v e lie inc l K B, polrcbnu je samo I CJ M 1:3 mcmorije za cu vanjc svill
stranica .. \ko jc ml'murija J2 MB. program hi uz straniLu od X KB trdi-
rao. ali u; 'tranicu od I KB nc bi. Uzmcmo li u obzir svc o cemu smu govorili. ipak
je bllljc J,;oli,tili vece slranice.
6.1.6 Segnwntiranje
'v inuelna lllCIIH>rija o kojoj smu do sada govorili jcdimJimcn;.iunalna je jer se
adre:,, J.;r\c'u , 'd () dt> neh.e maksimalne vredno,ti ( uzastopne adrcsc ). U mnogim slu-
e a1c v im<t L'latn' > y bolJc da ,e umestu jednog vcnog prostura v irtuclnih adresa
6.1 Virtuelna mcmorija
437
koristc elva ili vise oclvojenih adrcsnih prostma. Na primer. programski prevodilac to-
kom prevodenja moze da napravi brojne tahde. ukljucujuci i:
l. Tabelu simbola La imena i atribute promcnljivih.
2. lzvorni tekst sacuvan za potrcbc stampanja listinga.
J. Tahelu sa svim korisccnim konstanlama, kako celobrojnim. tako i onim u
formatu pokretnog zareza.
4. Leksicko slablo koje sadrzi sinlaksnu analizu programa.
5. Stck za po;.ive koje procedurama upucuje programski prevodilac.
Svaka oJ prve cetiri tabele stalno raste lokorn prevodcnja programa. Poslcdnja r,l-
stc i smanjuje se na ncprcdviLtljiv nacin. U jcdnodimenzionalnoj rnemoriji, za ovth
pet tabela moral a bi sc odvojiti 'usedna pmlrucja adrcsnog prostora, kao na slici 6-ry.
Slobodno
Trenutno iskorisceno
Prostor virtuelnih adresa
Stek za pozive t
Leks1cko stablo t
Tabela konstanti
lzvorni tekst
Tabela simbola t
t
t
) Adresni prostor
r dodeljen steku
J za pozivanje
procedura
Stika 6-7. Tahck knJL u jcdnoJinlciJ/ionalnum adn.:-<.;J1(_)11l pnl.c...turu Ja :-.-2 'udarc.
Puglcdajtc sla :.;e dugada ak11 program ima iluzetno vclik bwj prcllllcnijivih. Deu
adresnog prostora odvojen ;.a tabelu simbula mogac) bi sc pnpunili. cak i kacLI
mnogu slob!ldnog prustura u tJStalim tahelama. PrenldiLlc bi. naravno, mt>g:Hl jcclnl\-
slavno poslati poruku kako 1.bl\g pr"C\'clikog broja promenljivih ne mote da nast;tvi
prcvodenje. ali tone bi hilo fer kada u drugim tabclama ima JUS dosta ptchtora.
Druga mogucnost je da prevodilac it.igrava Rubina !Imla ida ;;lobodan pw'\(lf iz
tahela koje ga imaju previse dncleljuJe tabelama kojima on neJoslajc. Ovaha
prcra,pmlcla se me>zc izvesti. ali hi tolicilu na sopslvc:nih
epiLoda- dosadan posao \ako Ielimu pristujnil iii- grutotajedn:l J,;,Jju
niko ne placa ( ako smo na kraJU ncrava).
U ovakvom slul'a.JU. programer nc treba da ranm;Jja o labcbma ku_1c rasu i
smanjuju se -na isti nacin gajc v irtuelna mcnwrija 1\sl,!Jndi!a hrigc' u
programa u epizude.
rr
438 Poglavlje 6: Nivo operativnog sistema racunara
Resenje je da se obezbedi vise potpuno nezavisnih adresnih prostora, zvanih seg-
menti. Svaki segment se sastoji od lineamog niza adresa, pocevsi od 0, pa do nekog
maksimuma. Duzina svakog segmenta moze da bude izmedu 0 i maksimalno dozvo-
ljene duzine. RazliCiti segmenti mogu da budu, a obicno i jesu, razlicite duzine. Sta-
vise, duzina segmenata moze se menjati tokom izvrsavanja. Duzina segmenta za stek
moze se povecavati kad god 'e ndto stavi na njega i smanjivati kadgod se nesto
s njega uzrne.
Posto svaki segment predstavlja zaseban adresni prostor, razliciti segmenti mogu da
menjaju veliCinu nezavisno jedan od drugog. Ako je steku u odredenom segmentu po-
trebno vise adresnog prostora, on ga moze dobiti jer u njegovom adresnom prostoru
nema nicega s cim bi se sudario. Naravno, i segment se moz.e potpuno popuniti, ali su
segmenti po pravilu veoma vcliki, pa se to retko dogaL1a. Da bi pristupio adresi u ovak-
voj, segmentiranoj iii dvodimenziona!noj memoriji, program mora da zada adresu iz
dva del a: broj segmenta i adresuunutar segmenta. Slika 6-R prikazuje segmentiranume-
morijuupotrebljenu za tabele programskog prevodioca o kojirna smo malocas govorili.
20K
16K
12K t- Tabela
BK Lsimbola
4K
0 '-----'
Segment
0
I- lzvorni
tekst
Segment
1
Stek
za
ozive
1\UII::ild/llll
Segment Segment Segment
2 3 4
Slika (>-8. Scgmcntirana mcnH>rija omogucava da svaka tabcla raste iii se smanjuje nezavisno od
drugih tahe Ia.
Naglasavamo da je segment logi(ki pojam koji programer poznaje i koristi na
Jcdinstven nacin. Sam segment moz.e sadrzati proceduru. niz. stek iii skup skalamih
prumenljivih. ali obicno nc sadr?.i mdavinu razlicitih tipova podataka.
Segmentirana memorija, usim sto olaksava rukovanje strukturama podataka koje
se sire i skupljaju. nudi i druge prednosti. Ako svaka procedura zauzima zaseban seg-
ment. u kumc pocinje na adrcsi 0. povczivanje procedura kuje se odvojeno prevode
umnogume jc ulaksano. Postu se prevcdu sve procedure koje se koriste u programu i
povc7.u s njim. za pozivanje procedure u scgmentun koristicc sc dvodelna adresa (n.
0) da bi se adresirala rec 0 (ulawa tacka).
Ako se procedura u segmentu 11 z.atim izmeni i ponovo prevede, ne treba menjati
ostale procedure (jer niJe promenjena pocetna adresa), cak i ako je nova verzija vee a
mi prerhndne. U jednodimcnzionalnoj memoriji procedure se gusto pakuju jedna do
druge, bez slobodnog adresnog prostora izmedu njih. Zbog toga menjanje velicine

i
'i
::t

'
l
6.1 Virtuclna mcmorija 439
jedne procedure moze da utice na pocetne adrese drugih procedura koje s prvorn ne-
maju nikakve veze. To, sa svoje str<mc, zahteva menjanje svih procedura koje pozi-
vaju bilo koju od pomerenih procedura da bi u sebe ugradile njihove nove pocetne
adrese. Ako program ima na stotine procedura, ovaj proccs moze da bude skup.
Segmentiranjem se takode olaksava dcljenje procedura ili podataka izmedu vise
programa. Ako se u racunaru paralclno izvrsava vise programa (stvamo ili simulirano)
koji koriste odredene procedure i1. isle biblioteke, glavna memorija sene bi domacin-
ski ponasala kada bi svakom programu obezbedivala njegovu kopiju procedura. Uko-
liko je svaka procedura u zasebnom segmentu. one se lako dele pa ne mora postojati
vise od jedne fizicke kopije bilo koje deljene procedure u glavnoj memoriji. Na taj
nacin se stedi memorija.
Posto je svaki segment logicka celina na koju programer racuna (procedura, niz ili
stek). razliciti segmenti mogu imati razlicite vrste zastite. Segment s proeedurom sc
moze ograniciti samo na i tako ce se spreciti da ga program cita ili da u
njega upisuje podatkc. Za niz brojeva u formatu pokretnog zareza moze se dozvoliti
citanje i upisivanjc, aline i njegovo izvrsavanje, pri ccmu se programski skokovi u taj
'egment hvataju i sprecavaju. lltkva lastitaje cesto korisna pri lovljenju programskih
grdaka.
Pokusajte da shvatitc zasto t.astita ima srnisla u scgmentiranoj memoriji. ali ne i u
jednodi menzionalnoj ( linearnoj) stranicenoj memoriji. Kada je mernorija segmentira-
na, korisnik je svestan sta sc nalazi u svakom segmcntu. Segment. na primer. po pra-
vilu nece sadrzati i proceduru i stek, vee jedno i/i drugo. Posto svaki segment sadrzi
samo jedan tip objekta, moze da ima L.astitu koja odgovara tom tipu. Stranicenjc i seg-
mentiranje uporedeni su na slici 6-':1.
--=1
Aspekt Stranicenje Segmentiranje
Programer treba da bude svestan proces_a_.
Broj linearnih adresnih prostora 1 . Vise 1
Pco<lo<'<rtoeloih '''"""'';do P'""ide De . J;' . '
memorije ---- ___ _________ I
Lako rukovanje tabelama promenlj1ve velicine Ne Da I
Motiv za stvaranje tehnike velike I
memonje adresnih prostora J
Slika 6-9. Pllredenje stranicenja i 'egmcntiranja.
Sadrzaj stranice je u izvesnom smislu slucajan. Programer nije svcstan ni cinjcnicc
da straniccnje postoji. lako hi bilo mogucc da sc u svaku odrednicu tabcle stranica
upise nekoliko bitova koji odreduju vrstu pristupa. da bi to iskoristio. programer hi
morao da vodi racuna o granicama izmedu susednih stranica u adresnom prostoru.
Ova ideja ne valja upravo Lato sto programcru zadajc administrativni posao zbug
kogaje stranicenjc i izmisljeno. Posto korisnik segmentirane memorije ima iluLiju cia
se svi segmenti sve vreme nalaz.e u glavnoj mcmoriji. rnoze ih slobodno adresirati. nc
hrinuci o tome kako cc se oni stvarno prcklapati.
r
t
440
Poglavlje 6: Nivo opcrativnog sistema rai'unara
6.1.7 Implcmcntacija segmcntiranja
Segmentiranje sc moze implcmcntirati na jeJan od dva nacma: razmenjivanjcm
segmcnata izmel1u memnrijc i diska i stranicenjcm. U prvom slucaju, u svakom trenut-
kuumcmniiji postoji odrcdcn skup scgmcnata. Ako se rcferencira segment koji trenut-
no nijc u mcmonji, taj segment 'c ucitava s Ji-;ka. Ukoliko za njega nema mcsta u
men](lriji, prcthodno se na disk mora upi,:tti ili vise segmenata iz memorije (osim
ako su cisti, kada se samo odbacuju). R.u.nlL'niiv:mjc segmcnataje u izvesnom smislu
slicno stranicenjuna zahtev: segrncnti sc tt!lleilH,nju ucitavaju i iz njc brisu po potrebi.
l'vlcLtutim. pri implemcntaciji, izmedu i stanicenja postoji hitna razli-
ka: stranice su tlksne velicinc. dok segmc-n:i nisu. Na -;lici h-IO(a) datje primer ti;icke
me1norijc kPja na pocetku sadr/i pet scgmcnata. Razmotrite ;ta se dogada ako sc
mlhaci segment I, ana lljegovo me,tu dmk segment 7, koji jc manji. Ta situacija jc
prikazana na slici 6-1 0( b). lzmcdu 'cgmcnta 7 i -;cgmenta 2 nalazi sc nciskorisceno po-
dml'Je - prat.nina. Tada sc segment -1 ;;unenjujl' :.;egmentom :'i. kao na slici 6-1 O(c),
a segment J segmenturn A. kao na ,Iici (J-IO(d). Nakon stu si,tem buclc neko vreme
radio, i/Jllc'du segmenata u menlUriji pupvice sc vi;e praznina (engl. hole).
Ta rwj:tva sc /,me spoljasnje flagmenliranje (jcr 'e trusi prustnr i;van segmcnata
- u praznin:una izmcdu njih). 1\t:pravilna slruktura naizmenicno poredanih segmcnata
i slvurena .'>j)()Ijnim fraglllc'lltiranjemlici na sah-tablu (engl. chcckahourd).
Segment 4
(7C<)
I
j Sc>JC":Ie:ll 3!
I (SKI I

I 2i
: I
I I
. I
, I
i St?G;nent 1 I
I
- ". I
I lor,: j
I I

I '"I
l ____ j
;:'1)
[---.J
I
Segmert 41
(71\)
I
l
i s-'qr,ent 21
-,oK\ I
I c., i
! i
r---------<
! 2!
l (SK) I
> . I
v; 3K) i
t,"//,
I '
f Segment 71
1
I ''iK
I '- ) I

i .. ' /I

;hi
Seamen! 5
(4K)
Segment 3
(8K)
Segment 2
(5K)
j Segment 0

(c)
;;:;;(31<)%
'//. :%
Segment 5
(4K)


2///LL'/
Segment 6
(4K)
Segment 5
(4K)
Segment 6
Segment 2 (4K)
(5K)

Segment 2
(5K)
Segment 7 Segment 7
(5K) (5K)
Segment 0

Segment 01
(4K)
(d) (e)
Slih.a 6-1 h. 1 \-1 d: L u ruku ( c l Lk po"lcdica "P' JljaSnJLg fragnh.'!l-
!i;,tn_:,t l)<)!llULll
6.1 Virtuelna mcmorija 441
Razmotrite sta bi se c!ogodilo kada hi program refcrencirao segment 3 u trenutku
kadaje memorija prilicno spoljasnje fragmentirana, kao na slici 6-1 O(cl). Ukupan pro-
stor u prazninama jc velicine I OK. sto je vise ncgo sto je potrehno za segment 3, zli
posto je taj pros tor rascepkan na nckorisnc komadic'e. segment 3 sene mozc uCitati na
jednostavan nacin. Pre toga treba ukloniti jedan segment iz mcmorijc.
Evo jednog nacina za sprceavanje spoljasnjeg fragmentiranja: kad god se pojavi
praznina, segmente iza nje treha primaci memorijskoj lokaciji 0 tako da je popune: to
ce, medutim, na kraju rncmorijc stvoriti prazninu koja s vrcmenom raste. Altemativno
se moze cckati da fragmentiranje dostignc odrcdeni procenat pre nego sto se preduzme
sazimanje memorijc ( istiski vanjc praznina iz nje ). Slika 6-1 0( e) prikazuje kako izgleda
memorija sa slike 6-1 O(d) posk sa/imanja. Svrha sazirnanja je da se od hrojnih neko-
risnih pral.llina razhacanih po mcmoriji stvori jcdna vclika praznina na njenom kraJU,
u koju se tad a moze smestiti jcdan iii vise segmcnata. Ocigledna mana sazimanjajc to
sto moze da potraje. Saz.imanje poslc svake nastale praznint: obicnn se nc isplati.
Ako sa:l:imanje memorije ncprihvatljivo dugu trajc, onda nam Ln.:ha algoritam koji
ce L.a zahtevani segment pronaci odgovarajucu pra1.ninu. Rad s praminama se 1e
nHrl.t: zamisliti bcz liste njihovih adresa i vdicina. Jcdan popularan algoritam. zv,m
najbolji pogodak (engl. hcstji!l, bira najmanju prazninu u knju moL:c da se smcsti
tra/cni segment. On upurcduje vclicinu praznina i scgmenata, iz.bcgavajuc'i da malim
segmentomukrnji ncku vcliku prazninu koja ce mu.Tda kasnije biti pogmlna za veliki
segment.
Drugi pupularni algoritam, t.van prvi pogodak (engl. first IJil), prcgleda ukrug li-
stu praznina i hira prvu koja mo/.e da primi segment. To. ocito. trajc od pregle-
danJa cele lisle da bi se pronasao najbulji pogmlak. Mo/.da imenaduje, ali prvi
pogodakje, kada se uporedc ukupne performansc, takode bolji od algoritma najbPIJ2g
pogotkajer ovaj drugi tcl:i da u memonji stvori vcliki broj potpuno he,korisnih pr:;-
nina (Knuth. llJl)7).
I prvi pogodak i najbolji pogodak te/e da smanje prosecnu velicinu prazninc.
god 'e segment sme,ti u prazninu koja jc vee' a od IlJCga. stu se do gada ''kow svaki put
( potpuno uklapanJe je retko ). praznina sc deli na dva dt:la. Jed an dco zauzima segment.
a drugi dco jc nova prat.nina. Nova prazninajc uvek manja od stare. Ukolikn nc pust Jji
proces koji c'e povratno od mal ill praznina generisati vel ike. onda oba algl>tlt-
ma na kraju i,punjavaju memoriju hrujnim malim i potpuno heskorisnim pramin,um.
Jedan takav kmnpenzatnrski proces je sledeci: kad god sc iz mcmurijc ukloni seg-
ment koji sc s jedne iii -;a obe stranc granici s prazninama. stvorene suscdne praznine
mogu se objeJiniti u vecu praLninu. i\ko se ukloni segment :'i sa slike 6-IO(d). ,he 'u-
seclne prazni ne i -1 KB kOJC je kuristio segment mugu sc objcdiniti u nu\ u veiiku pru-
ninu velicinc II KB.
Na pocetku ovog odeljka rekli smo da se segmcntiranje moze implementirati na ckl
nacina: razmenjivanjem i straniccnjcm. Do sada smo govorili iskljucJvo n ralmenjiY:t-
nju. Prcma tuj \emi. celi scgmenti se po potrebi selc s diska u mcmoriju i ohrnuto. Dru-
gi nacin za implementaciju segmenliranja jcste sc svaki ;,cgment iLdcli na
tiksne velicinc J...oje Ce se ucitavati na zahteV. l'rcma P\Oj semi, neke -;tranicc i:;tog '<cg-
menta bic'e u mcmoriji. a nekc na disku. Da histe segment itdelili u stranic:c. za S'dki
!
i
!
!'.
i--
i'
l
442
Poglavlje 6: Nivo opcrativnog sbtema racunara
segment vam treba zasebna tabela stranica. Posto segment prctlstavlja samo linearan
adresni pros tor, svc tehnike stranicenja o kojima smo govorili vaze i za stranicenje sva-
kog segmenta. Jed ina novost je to stu sad a svaki segment ima svoju tabelu stranica.
Jedan otl prvih opcrativnih sistema u kome su kombinovani segmentiranje i stra-
nicenje bio jc MULTICS (MULTiplexed Information and Computing Service),
nastao zdruzcnim naporima strucnjaka s MIT-a, iz Bellovih laboratorija i General
Electrica (Corbat6 and Vyssotsky, 1965; Organick, 1972). MULTICS-ovc adrese su
imale dva dcla: broj segmenta i atlresu unutar segmenta. Za svaki proces postojao je
segment koji je satlrzao tleskriptorc za svaki segment. Kada bi hardvcr tlobio virtuclnu
adresu, koristio bi broj segmenta kao indeks za segments cleskriptorima da bi pronasao
Jeskriptor za segment kome treba pristupiti. kao sto je prikazano na sliei 6-11. Oe-
skriptor je ukazivao na tabelu straniea, omogucavajuci uobicajcno stranicenje svakog
segmcnta. Oa bi sc poboljsale perfonnanse, najsvezijc kombinacije korisccnih seg-
menata/stranica cuvanc su u han.lverskoj asocijativnoj memoriji (engl. associative
memory) sa 16 otlrcdniea koja se mogla brzo prctrazivati. lako MULTICS vee dugo ne
postoji, njcgov duh i dalje zivi jer jc virtuelna memorija svih Inteluvih procesora.
pocev od procesora Intel pravljena pu uwru na njega.
Deskriptor
Brat
c_ _____ .....J segmenta
Segment
s deskriptonma
18-bitni broJ segmenta
Okvir za stranicu
Tabela
stran1ca
Dvodelna MULTICS-ova adresa
Rec
"- t RaslojanJe
Stranica
Slika 6-1 I. Pretvaranje dvmlelnc MLJLTICS-ove adrese u adrcsn glavnc menhlrije.
6.1.8 Virtuclna mcmorija Pcntiuma 4
Pentium 4 ima siozen sistem virtuelne memorije koji pudrtava str:micenje na ;.a-
htcv. cisto segmentiranje i segmentiranjc uz stranicenjc. Srz virtuclnc memorije Pen-
tiuma 4 cine dve tahek: tabela Iokalnih deskriptora (engl. Local Descripwr J(l!JI<',
UYJ) i tabela giobalnih dcskriptora (engl. G!o/)(1/ Descriptor Tahle, GDT). Svaki
program ima sopstvenu LDT tabclu. ali postoji samo jedna GDT label a koju dele svi
Virtuclna mcmorija 443
programt u istom racunaru. U LOT tabeli navode se scgmenti koji su lukaini za
odredeni program, ukljucujuci i segmente s kodom, podacima, stekom itd., dok su u
GOT tabeli sistemski segmcnti, ukijucujuci i segmente sa operativnim sistemom.
Kao sto smo opisali u poglavlju 5. program koji se izvrsava na Pentiumu 4 pre
nego sto pristupi scgmentu, mma da ucita selcktor za taj segment u jedan od regis tara
za segmente. Tokom izvrsavanja, CS cuva selektor za segments kodom, OS cuva se-
lektor za segments podacima itd. Svaki sclektor jc I 6-bitni broj, kao sto je prikazano
na slici 6- I 2.
Bitovi 13 1 2
I II I
0 = GDTl_J L_ Nivo privilegija (0-3)
1 =LOTI
Slika 6-12. Selektor na Pentiumu 4.
Jednim od bitova selektora saupstava se tla li je segment lokalan iii globalan (tj. da
lise naiazi u tabeli LDT iii u tabcli GDT). Orugih 13 bitova su broj odrednicc u LOT
iii GOT tabeli, tako da svaka od tih tabela moze da cuva najvise 8 KB (2
13
) dcskrip-
tora scgmcnata. Preostala 2 bita sluze za zastitu i njih cemo objasniti kasnije.
Ocskriptm 0 je ncva.i:eCi; ako se koristi, program upacla u klopku. On se mozc bez-
bedno ucitati u registar La segmente i tada oznacava cia registar za segmente nije tre-
nutno raspoloziv, ali ako sc upotrebi, program zavrsava u klopci.
U trenutku dok sc selektor ucitava u rcgistar za scgmcnte, iz LOT iii GDT tabcie
preuzima se odgovarajuCi deskriptor i srndta u interne registre MMU jedinicc, tak.o
da je lak.u dostupan. Deskriptor se sastoji od 8 bajtova koji sadrze osnovnu adresu
segmenta, njcgovu vclicinu i drugc informacijc, kao stu jc prikazano na siici 6-13.
0 :LIMIT je u bajtovima _j
:LIMIT je u stranicamaj
0 16-bitnl segment l
1 : 32-bitni segment
L ___ ____j
BASE 16-23
Nivo privilegija (0-3)
Relat1vna
adresa
0
4
0 : Segment nije u memoriji
: Segment je u memoriji
Slika 6-13. Deskriptor scgn1enta,; kodoll! na Pentiumu 4. Segmenti s podacima su ll!alo drugaciji.
Format sekktora mudro je izabran da bi se olaksalo pronalazenje dcskriptora. Prvo
se LOT iii GDT tabela na osnovu bita 2 seiektora. Zatim se seiektor koptra u
r
44-t
Poglavlje 6: Nivo operativnog sistema racunara
privremeni registar MMU jedinice i 3 najmanJe znacajna bita postave se na 0, sto daje
efekat mnozenja 13-bitnog broja selektora brojem osam. Na kraju se tome doda adre-
sa LDT, odnosno GDT tabele (koja se cuva u intcrnim registrima MMU jedinice), da
bi se dobio direktan pokazivac na deskriptor. Na primer, selektor 72 ukazujc na od-
rednicu 9 u GOT tabeli, koja se nalazi na adrcsi GDT + 72.
Sledimo korake kojima se par selcktor-rastojanje pretvara u tizicku adresu. Cim
harclver sazna koji se registar za segmente koristi, on u svojim internim registrima
moze da pronade potpun deskriptor koji odgovara torn selektoru. Ako segment ne
postoji ( selektm 0) iii se trcnutno ne nalazi umemoriji (P je 0), program upada u klop-
ku. Prvi slul:aj je programska grciika; u drugom slucaju operativni sistem trcba Ja
preuzme segment.
On tada proverava da li rastojanjc (pomcraj) seze van granica scgmcnta. i u tom
slucaju program opet upacla u ldopku. Logicno jc da u deskriptoru trcba da postoji 32-
-bitno polje ;:a velicinu scgmenta. ali jc na raspolaganju samo 20 bitova, pa se koristi
drugacip scm a. Ako jc u polju G (Granularity - u;.;itnjenost) vrednost 0. poljc LIMIT
predstavlja tacnu velicinu scgrncnta. sve do I MB. Akuje u njcmu vrednost I, polje LI-
MIT daje velicinu segmcnta u stranicarna, a ne u bajtovima. Stranica na Pentiumu-+ ni-
kada nije rnanja od-+ KB. paje :w bitova dovoljnu ;:a segmenle velicinc do 2-'
2
bajtova.
Pod prelpustavkoJJl dajc ;,cgmcnt umemoriji i dajc raslopnje u dozvoljenim gra-
nicama, Pentium-+ tada sabira .12-bitno polje BASE u dcskriptoru i rastDjanje da bi do-
bio tzv. lincanlU adrcsu, kao na slici 6-1-+. Poljc BASE jc pmkljeno na tri dela,
rastrkana po deskriptoru zbog kompatibilnosti s proccsorom X02:-\6, kml kogaje polje
BASE velicine samo 2-+ bita. Uloga polja BASE jc da sc omoguci da svaki segment
pocnc na proiLvoljnom llll'stu unutar lincarnog pmstora .12-bitnih adrcsa.
[L
Deskriptor
Ostal3 polja
Osnovna adresall 9
UM" )
32-bltna !!nearna adresa
Stika 6-l.t. Pretv.trelllJc para sekhinr-rastnjany u linearnu adrc:.su.
Ako .JC straniccnjc oncmoguL'enu (pomocu bita u globalnum upnvlpck,Hn rcgl-
'tru). Jincarna ;rdresct SC !Uillaci kao lizicka adresa i SC U lllClllllliju ll ciJju ucila-
vanja iii upisi\anja pmlataka. Tako, kad je stranicenjc onemogucenu. i1namu l'islu
segmcntiranja, sa rlsnrJvnom adrcsom svakug scgmenta u njcgovtllll dco;krip-
tonJ. Segmenl i sc mugu pnvremenu preklopili. verovamo zato sw bi se u;. mno-
go mukc i vremena moglo usigurali suprotnrl.
6.1 Virtuclna mcmorija
445
S druge strane, ako jc stranicenjc omuguceno. lincarna adresa se turnaci kao virtu-
e Ina adresa i preslikava u tizicku aclrcsu pomncu tabela stranica. vrlo slicno situaciji
unasim primerima. Jedini probicmje to SID LIZ J2-bitnu virtuclnu aciresu i stranicu od
4 KB. segment moze da sadrzi rnilion stranica. pa se u cilju smanjcnja tabele stranica
za male segmcntc koristi preslikavanje u dva nivoa.
Svaki aktivan program ima katalog stranica (engl. page directorv) ;a 102-+ odrecl-
nicc od po 32 bita. On se smesta na adresu na koju ukazuje glubalni regislar. Svaka
oclrcdnica iz ovog clircktorijuma ukazuje na tabclu stranica kuja t;1kude sadr!:i 102-+
odrednicc sa po 32 bita. Odrednice tabele stranica ukawju na nkvire t;r slranicc.
Semaje prikazana na slici 6-l 5.
Linearna adresa
Bits 10 10 12
[ DIR I PAGE I OFF
(a)
Direklorijum stranica Tabela strantca Okvir za stranice
DlR
l
J. i.
1
1 -l __ ,'"b'"""'
PAGE ,, I
' OFF
i I
L/ (b) L/
Slika 6-J5. Prc:-.lik,t\dllJL' !inc:trnih adrc.'-a u
Na ,lici h-I 5t a) vidimr> !Jnc::rnu adrc,;u p.xkljenu utri puija: DIR. PAGE i OFF. Prv(l
sc l..orioti p<ll.Jc DIR k:to indcks za l...atah1g ;tranica. d:1 bi se pronasao pokazivac na od-
guv araj uctl ubelu ;,lranic:a. Lrti Ill kuri,ti pui.Je PAGE ka<l indeks za tabclu stranica dJ
hi sc pr<l!la\Lt h,cil:l...a adrc:'a nk '-ira za ,rr:mi,c:. 'b kra_i;J \c pui.JC OFF dodaje na adresu
obira stranicc da bi sc dublia fiz:cr.a adr.;o;;, adresiranug hajLl iii rcci.
Odr.cdnice tabelc imaJU P" '2 bi:a. ud ctga 2il hit<lva sadrze bn>j nkvira za
stranicc. '\lcJu rremtalim bitnlima \ll bit ,I;] pri,tup i ,.prljavi'" bit koje hardver pu-
sLt\ija da bi 1h ktlritiu rpcr:ltJvni '>i.<>tcln. bit<lvi La za.\tiLU i Jrugi slicni bitovi.
Sv;tkttahcla :ma l>drc:dnJcc za it 1.2.+ svaki 11d po-+ Kl3, tako daJedna
tabt-:a radi ..,a-+ rne:norij.:. Scgnlclll je kra:i ud -+1VI itnaCc h.atalog slra-
nic:r sall11l o;a jednom p\lkazivaCcm :1:1 :-,\Ujll J<.:dinu tabelu stranica. Na
lldL'i:l .sc n;t kratke ;c:o-:mcJltc rn;:c sanHJ cht: ;;tr;,nice. dclk bi milioni stra-
nica hili uiudu putru;cni bi sc kunstila dx:la niHJa.
-
446 Poglavlje 6: Nivo operativnog sistema racunara
Da bi se izbeglo ponovljcno pristupanje istoj lokaciji u memoriji, MMU jedinica
Pentiuma 4 ima specijalnu hardversku podrsku za brzo pronala?,enje ncdavno ko-
riscenih kombinacija polja DIR-PAGE i njihovo preslikavanje u tizicke adresc odgo-
varajuceg okvira za stranice, Koraci prikazani na slici 6-1 S preduzimaju se samo onda
kada trazena kombinacija nije skoro hila koriscena,
Uz malo razmisljanja, zakljucicete da polje BASE u deskriptoru ne mora biti raz-
licito od nulc ako se koristi stranicenje, Polje BASE pri trazenju odrednice samo po-
mera pocetak procesa negde ka sredini kataloga stranica, pa pretrazivanje ne pocinje
od njegovog pocetka, Polje BASE postoji da bi se omogucilo cisto segmentiranje (bez
stranicenja) i povratna kompatibilnost s procesorom 80286 koji nije poznavao stra-
nicenje,
Treba takode pomenuti cia za aplikacije kojima nije potrebno segmentiranje, vee se
zadovoljavajujedinstvenim, stranicenim prostorom 32-bitnih adresa, to mozc lako da
se ostvari. Sve registre za segmentc treba tada napuniti istim selektorom, u cijem de-
skriptoru jc pulje BASE = 0, a polje LIMIT je poslavljeno na maksimalnu vrednost
Rastopnje svake instrukcije tad ace biti linearna adresa unutar jcdinstvenog adresnog
prostora- u stvari, klasicno stranicenje.
Stigli smo do kraja opisa virtuelne memorije Pentiuma 4. Medutim, trebajos ndto
reei o zastiti, posto je ta tema blisko povezana s virtuelnom memorijorn, Pentium 4
podrzava cetiri nivoa zastite, pri cemu je nivo () najvisc privilegovan, a nivo 3 naj-
manje. To je prikcu.ano na slici 6-16. Aktivni programje u svakom trcnutku na nekom
nivou zastite koji odgovara dvobitnom polju unutar njegovog registra PS'\V (Pro-
gram Status Wotd), hardverskog registra koji cuva kodove uslova i razne druge sta-
tusne bitove. Stavise, i svaki segment sistema ima sopstveni nivo zastite.
Nivo
Moguce primene
razlicitih nivoa zastite
Stika 6-16. Zastita na Pentiumu-L
6.1 Virtuelna mcmorija
447
Sve dok program koristi iskljucivo segmente na sopstvenom nivou, sve tece u rcdu,
Pokusaji cia sc pristupi podacirna na visem nivou clozvoljavaju se, Pokusaji da se pri-
stupi podacima na nizem nivou nelegalni su i hvataju se u klopku. Pokusaji da se po-
zovu procedure na drugacijem nivou (visem iii nizcm) dopusteni su, ali na brizljivo
kontrolisan nacin. Da biste ostvarili poziv izmedu razlicitih nivoa, instrukcija CALL
mora cla sadrzi selektor umesto adrese. Ovaj selektor ukazujc na zvan pro-
Jaz za pozive (engL call gate); on daje adresu procedure koja se poziva, Na taj nacin
nije moguce skociti usred proizvoljnog segmenta koda koji sc nalazi na nekom dru-
gom nivou. Njemu se moze pristupiti samo preko zvanicnih ulaznih tacaka.
Na slici 6-16 prikazanajc moguL'a primena ovog rnehanizma, Na nivou 0 nalazimo
j.:zgro operativnog sistema koje rukuje ulazno-izlaznim operacijama. radi s memori-
jom is drugim va7.nim procesima, Na nivou I nalazi se potprogram za obradu sistem-
skih poziva. Korisnicki programi mogu pozivanjem proccdura aktivirati sistemske
pozive, ali se mozc pozivati samo odreden. zasticen broj procedura, Na nivou 2 nala-
ze se biblioteke proceclura- njih mozda dele mnogi programi koji se uporedo izvrsa-
vajtL Korisnicki programi mogu da pozivaju ove procedure, ali ne smeju da ih
mcnjaju, Na kraju, na nivou 3 izvrsavaju se korisnicki programi koji imaju najmanju
zaslittL Slicno semi upravljanja memorijom na Pentiumu 4, i sistem zastitc je stvorcn
po uzoru na opcrativni sistem MULTLCS.
Programske klopke i sistemski prekidi koriste mehanizam slican prolazima za po-
zive, Ni oni ne referenciraju apsolutne adrese, vee deskriptore. a deskriptori ukazuju
na spcciticne procedure koje treba izvrsiti. Polje TYPE na slici 6-13 sluzi za razliko-
vanje segmenata s koclonL segmenata s podacima i s razlicitim vrslama prolaza,
6.1.9 Virtuelna memorija na procesoru UltraSPARC III
UltraSPARC lllje 6-1-hitni procesor i podrLt\a stranicnu virtuelnu memoriju za-
snovanu na 6-1-bitnim virtuelnim adresama, Medutim. iz inzenjerskih i ekonomskih
ra1.luga. programi ne mogu da koriste ceo prustor 6-1-bitnih virtuclnih adresa. Poclrza-
na su samo -1-1 hit a. tako da programi ne smcju biti veci od I ,8 X I o
13
bajtova. Do-
zvoljena virtue ina memorija jc: podeljena u dve zone po 2-lJ hajtova: jedna je na vrhu,
a druga na samum dnu prPstora virtuelnih adresa, lzmedu njih je praznina sa adresa-
ma kojc sc ne koristiti. Pokusaj da se one upotrebe izaziva grdku stranicenja,
Maksirnalna liLicka mcrnurija koja se rnoze koristiti LIZ procesor UltraSPARC Ill
iznosi 2-!
1
bajtova (oko 2200GB), je dovnljno za vecinu uobicajenih aplikacija.
Pudr:l.ane su cetiri velicinc stranica: 8 KB. fl4 KB. S 12 KB i 4MB. Preslikavanja ove
Cetiri vrste stranica prikazana Sll na :;]ici 6-]7,
Zbog izuLettHl velikog prustora vinuelnih adresa, direktna tabela stranica kao na
Pcntiumu -1 uwle ne bi bib prakticna. Zbog toga :V1:\1U jedinica procesora Ultra-
SPARe Jl[ mora da kuristi sasvim drugai'iji pristup, Ona sadrzi hardversku tabelu
zvanu TLB (Translation Lookaside Butler- bafer za prcvodenjc adrcsa) kuja bro-
jeve virtuclnih stranica presliktva u bwjeve liLickih okvira za stranice, Za stranc ve-
licine 8 KH po-,toji 2'
1
brojcva virtue I nih stranica (maci vise od 2 milijarde). Jasno je
da se ne mugu sve preslikati.
r
448
Poglavljc 6: Nivo opcrativnog sistema racunara
----
Bitovi
Virtuelna
adresa
Fiz16ka
adresa
-- -
Bitovi 28 13 25 16 22 19 19 22
Stika 6-17. Prcslikavanp iz virtudne u fiicku memoriju proce,ora UltraS!' ARC:.
Zhog toga TLB cuva samo nedavno korisccne brojevc virtuclnih stranica. 0 stra-
nicama sa instrukcijama i podacima vodi se poscbna evidcncija, pa TLB cuva 64 naj-
skorije koriscena broja virtuclnih stranica svake kategorije. Svaka TLB odrednica
sadrzi broj virtuelne stranice i oclgovarajuci hroj tiLickog okvira za stranicc.
Kada se hroj proccsa. ;.van kontckst, i virtue Ina adrcsa unutar kontcksta proslcde
MMU jcdinici. una pomocu spccijalnog hardvcra odjcdnom poredi broj virtuclnc
<;tranc iz nje sa svim TLB odrednicama La dati kontekst. Ako sc pronade slaganje. broj
okvira ;a stranice iz te TLB odrednice kombinuje se s rastojanjcm uzetim iz virtuelne
adrcse lLt hi se dobila 41-bitna ti?.icka adresa i generisalo nekoliko indikatora. kao sto
su hitovi /.a zastitu. Tabela TLB je prika1.ana na slici 6-18( a).
TLB (hardver MMU J8dlnlceJ TSB (MMU J8dlnica t sottver)
Kontekst
Kontekst
Virtuelna] lndikaton
stranica 1 FizH:ka
Vdlidnost I I stran1ca
I l , 1 l
.L' l
(ai
Oznakal .
virtuelne' lndlkaton
stran1cej F1z1cka
Val:dnost i stran1ca
i l I
I II t4
"
Odredn1cu 0 dele sve
virtuelne stran1ce koJe
...
Odredn1cu 1 dele sve
se zavrsavaJu sa 0 ... 0000
virtuelne stran1ce koje
se zavrSdV3JU sa 0 ... 0001
(b)
Tabela za prevodenJ8
(Operativni sistem\
Format
potpuno
odredu1e
I
I "''"''""'"'o<em I
(c)
Siika 6-IS. Strukturc fl"clatab kllJC se kuriste LJ prevmknjc virtue! nth adresa na prucesmu
lJitr"SP.\RC. Ja) TLB. tbi TSB. (c) Taht:l,1 La prcvndenje.
6.1 Virtuclna mcmorija 4..J9
Ukoliko sc ne pronade poklapanje. nastaje TLll promasaj i program pada u klclp
ku koju obraduje opcrativni sistem. Skrecemo vam paznju nato cia jc TLB promasaj
sasvim drugai'ije primde od promasaja pri straniccnju. Do TLB promasaja mo7.c doci
i kada se referencirana stranica nalazi umcmoriji. Operativni sistem teorijski mozc
uradi sta god z.eli da bi ucitao novu TLB odrednicu La Lahtevanu virtuelnu stranicu.
Mcdutim, da bi se ova vazna opcracija ubrzala. ubezbedena je izvesna hardvcrska po-
drska ukoliko i softver saraduje.
OJ operativnog sistema se, konkretno, occkujc da u tabeli TSB (Translation Stora-
ge Buffer- bafcr za smcstanjc prevoda J odrzava softverski kt:S sa ccsto koriscenim
TLB odrcdnicama. Ova tabelajc organizovana kao direktno preslikani kd vir1uclnih
stranica. Svaka 16-bajtna TSB odn:dnica odnosi se najcdnu virtuelnu stranieu i sadr/i
bit validnosti, bmj konteksta, oznaku virtuelne adrese, broj lizickc stranicc i nckuliko
indikatorskih bitova. Ako kes moze da primi, na primer. 81 l.J2 odrcdniec. onda sve vit-
tuclnc stranicc cijih sc 13 najmanjc znacajnih hitova prcslikavaju ll 00000000()()()()1)
knnkurisu za <>drednicu 0 tabck TSB. Slicnu tome. sve virtuclnc stranicc cijih sc U
nctjmanje !Ilacajnih bitllva preslikavaju u IJUIJIJOIJOOOOOOI konkurisu za odrcdnicu I
tabele, kao \tt> jc priLv.ann na o-lici 6-1 :-lib). Vclicinu tabclc TSB mlrellujc soltver i
saopstava jc M!vH.: jedinici prcku specijalnih rcgio-t<tra dm,tupnih <oamo uperativnon
si'.temu.
Kada na-,tanc TLR proma::,aJ. operativni sistcm da li odgovarajuca TSB
odrednica sadrzi potrcbnu virluclnu :;tranictt. !\1:\lU jcdinica ovdc tgudtw
tah:o sto izracunava adresu udrednice i stavlp je u interni :\l:VlU registar do,tupa1
opera! i v Ill>lll sistcmu. Ak.\1 TS H :-,adr/i t'drcdnic"u s trahnom adresom. jedna TL B
mlrednict hri'.e i pronadcna TSB udn.:dnica se kupira u Tl.B. 1-Lmhcr p01na?.c i
tako sto bira TLB odrnlnicu za brisanjc kmisteci JL'dnohitni LRlJ algclritam.
i\ko i ptc:trazivanjc tabclc TSB prude he;, u:-,pcha, c1perativni >;istcm pre!a?i na
gu tabclu tb hi prontsau inft>rrnacijc o strani. k,>ja sc mo/c nab1.iti u glavnoj mcmorij.
alii ne nwra biti 1<11110. Tabc!a kuja se ktJristi kao pt>>kdnjc sr .:dst\t'. 1.nve sc tahela l'l
prevodenje kng!. rr,lil.>iurion lcii>!cl. Pn;;tn 1a njcnu pretr;t?i,;,njc ncma
rudr.:.kc. ,;istcm ;a njunw?.c da izabcre ft'nnat po ?clji. Na printer. onmo/:
d.t hmj virtt;,.:lnc stranicc delcc'i :.'a nckitll pwsti111 brojem I' ida o . .sLttak upotreli
Ltu in,kh 11 whclt :wk;Vt\a-:a, t>d kujih svaki uLvuic na ]i,,tu odrednio
,., pndacima o virtuclnim :-,tranicama kujc sc do f! lmaj!L' n:tttllll!lb Ll\C
niL"c ni,.,u >:unc srranicc, vel' TS13 udrcdnice. Kada sc straniLa tr:t/i u t:tbcli 1a
deny ta slr;mica .se prunac'i u i11L!I1loriji; u tlllll siul"aju ,e T:-;B ndrcdnic.t
u sut"lh'rskunJ kesu. Prctr:t:;a nHY/.;; da ot!--rijc i da se str:lllie<l nc n:tl;vi u mcmorij:.
kadd Sc' JWhcLT 'landardna akci_ja 1.a pruma;i v anjc
upcJt-.,dili si-.tcmc vinuclnc mcnwri.JC Pentiuma -+ i procc:-.ura
SP/\RC Ill. Pt.nriunl .+ poJrl_a;;llistu lt.-;tu i SJ
l'llraSP.\RC Ill J'O:;ajc :-<tmu slL!Iltl'cnjC. Pc'til;Liil!-+ takclc:e hardvcrsl,j
pml>tic'e taixlu <tr;:nica d;tJlilllti\"t' ucila TLB tahclu u ..;lucaju pnlma:.aja.
S Po\ RL' ll! pri TL D .<amo pred.ijc upra v lp:1_1e opcrau v;;, 1111 'i:,t:mu.

.. -
:
'
'
i
:f
i
l

450
Poglavljc 6: Nivo opcrativnog sistema racunara
Ova razlika postoji zato sto Pentium 4 koristi 32-bitne segmente, a tako malim seg-
mentima (sa samo milion stranica) moze se rukovati pornocu standardnih tabela stra-
nica. Pentium 4 bi teorijski imao problema kada bi program koristio na hiljade
segmenata, ali posto nijedna verzija Windowsa ili UNIX-a ne podrzava vise od jednog
segmenta po procesu, takvi problemi sene javljaju. Za razliku od njega, UltraSPARC
III je 64-bitni procesor i moze da ima do 2 milijarde stranica, tako da standardna tabela
stranica ne bi bila prakricna. U buducnosti ce svi procesori imati prostore sa 64-bitnim
virtuelnim adresama, pace sema koju primenjuje UltraSPARC postati standardna.
6.1.1 0 Virtuelna memorija i kesiranje
lako u prvi mah moze izgledati da virtuelna memorija (stranicena na zahtev) nema
ve1.e s ke:iiranjem, ove dve tehnikc su konccpcijski vcoma slicne. Uz virtuclnu me-
moriju ceo se program drzi na disku, podeljen na stranice fiksne velicine. Odreden
podskup stranica nalazi se u glavnoj mcmoriji. Ako program uglavnom kuristi strani-
cc iz memorije, bicc manjc promascnih stranica i program ce sc izvrsavati hrzo. Uz
kt.:Siranje, citav program je u glavnoj mcmori.Ji, podeljen na hlokove za kcsiranje liks-
ne vclicine. Odrcden podskup ovih blokova nalazi se u kcsu. Ako program uglavnom
koristi hlokove iJ: keSa, bice manje pmmasivanja kcsa i program ce se izvrsavati brzo.
Ovc dvc tehnikc kom:epcijski su isle, samo se obavljaju na razlicitim hijerarhijskim
m v mma.
Naravno, izmcLlu virtuelne memorije i kesiranja postojc i izvcsne razlike. Jedna je
to sto promasaje kda obraduje hardver, dok jc za obradu promasap strana ladu/.en
opcrativni sistcm. lsto taku, blokovi ke:ia su najcescc mnugo rnanji od stranica (npr.
6-1- bajta, za rcvliku od S Kl-h Osim toga, preslikavanje virtuelnih stranica i
ukvira za stranicc drugacijc je jer indeks za tahele stranica dobija iz najznacajnijih
bitova virtue Inc adrese, dok sc indcks za kes zasniva na najrnanje znacajnim bitovima
memorijskc adrc.'.e. ra;.liJ.-e su nastalc ;.bog ra:dicitug nacina implementacije, a
usnovni konccpt jc skoro isti.
6.2 VIRTUELNE ULAZNO-IZLAZNE INSTRUKCIJE
Skup instrukcija na nivou !SA putpunojc rclt:licit od skupa instrukcija mikroarhitck-
turc. Nama dva nivoa p(Jtpuno su razliC:ite i uperacijc knjc sc mogu izvesti, kao i for-
mali instrukcija. Spmadil:nn poslojanjc istih instrukcija na dva nivoa samo je slucajnn.
Nasuprnt tome, skup instrukcija nivoa OS !'vi sadrzi vccinu instrukcija nivoa !SA, uz
nekulikL' rmvih. ctli va/.nih dmbtnih instrukcija i bcJ: nekoliko potcncijalnn opasnih in-
strukcija. opL'racijc su jcdno od pudrucja na kome sc dva nivoa znatno
razlikuju. Tc razlikc nastaju iL sasvimjednustavnih raLloga: kurisnik koji bi mogao da
izvrsava stvarne instrukcijc nivoa !SA. nwgao bi citati pnverljive
sakrivcne bilo gde u sistcmu, upis1vati podatkc na tcrminale drugih korisnika
6.2 Virtuelnc ulazno-izlaznc instrukcijc
451
i uopste, postao bi prava napast po bezbcdnost sistema. Drugo, norrnalni. razumni pr0-
grameri ni sami ne zele da ulazno-izlazne operacije obavljaju na nivou ISAjer je tel
izuzetno slozeno i tesko. To se radi tako sto se podcse polja i bitovi u brojnim registn-
ma uredaja, zatim se saceka da se operacija zavrsi i onda sc proveri sta se stvamo dr'-
godilo. Kao primer navcdimo da diskovi najcesce imaju bitove u registrima kojima se,
izmedu ostalog, otkrivaju i sledece gre8kc:
I. Glava diska nije ispravno sprovela trazcnje.
2. Za bafer je zadata nepostojeca memorija.
3. Ulazno-izlazne operacijc s diskom zapocete Sll pre nego sto Sll se prethoclne
zavrsile.
4. Greska u pravovremenosti citanja.
5. Adresiran je ncpostojeci disk.
6. Adresiran je nepostojeci cilindar.
7. Adresiran jc nepostojeCi sektor.
8. Pogresan kontrolni zbir pri citanju.
9. Posle upisivanja otkrivcna je grcska u zapisu.
Kada nastane neka od ovih grdaka. postavlja se odgovarajuci bit u registru ured,.-
ja. Malo je korisnika koji bi prihvatili da vode racuna o svim ovim bitovima grdaka,
kao i o ostalim ohirnnim statusnim informacijama.
6.2.1 Datoteke
Jcdan od nacina organiLOvanja virtuelnih ulazno-izlaz.nih operacija za potrebe smc-
stanja podataka, omogucava apstrakcija zvana datotcka (cngLjile). U svom najjedm,-
stavnijcm obliku, datotcka se sastuji od niza bajtova upisanih na ulazno-izlazni uredaJ.
Ako je to uredaj za smestanje podataka (npr. disk), datotcka se s njega moze procitat;
ako nijc u pitanju takav vee, npr. stampac. datoteka se s njega. naravno, nc
mozc ponovo procitati. Disk moze da sadrzi mnogo datoteka, svaku s podacima druge
vrste (na primer, sliku, tabelu iii tekst poglavlja neke knjige). Razlicite datotcke imaju
razlicitu duzinu, kao i druga svojstva. Apstrakcija datoteke omogucava da se
ulazno-izlazne operacije jednostavno organizuju.
Za operativni sistem, datoteka je samo niz bajtuva. kau sto smo upravo naveli. Za
svaku strukturu kojaje vise od toga, odgovoranje korisnicki program.
operacije s datotekama obavljaju se preko sistemskih poziva za otvaranje i citanje d<t-
toteka, za upisivanJC pudataka u njih i njihovo zatvaranje. Pre nego sto se clatotek:t
ucita, ona se mura otvoriti. Proces otvaranja datoteke omogucava operativnom si-
stemu da pronac1c datotekuna disku ida u memorijuunese informacije pomocu kojil1
joj se mozc pristupiti.



452 Poglavlje 6: Nivo operativnog sistema racunara
---
KaJa sc clatutcka otvori. rlJCn sadrzaj moL:e cia se procita. Sistcmski poziv read
mora Ja ima harem sledccc parametrc:
]. l\iaznaku tl tome knju mi otvorcnih datotcka trcba procitali.
2. Pokazivac na mcmorijski bafcr u koji cc podaci biti ucitani.
3. Bruj bajtova kojc tn:ba procitati.
Po;iv read smdta trazcne podatke u bafcr. On obicno saopstava broj ucitanih haj-
tova. koji mozc biti manji ncl broja trazcnih bajtova (ne mozcte da ucitate 2ll1J0 hajto
va iz datntekc dulinc !000 bajtova).
Svakuj ntvon:noj datotcci priJrul.cnjc poka;,ivac na sledcei hajt koji treba pn H'itali.
Poslc pm:iva read on sc rumcra za broj procitanih bajtova, tako da uzaslupni t'ozivi
read citaju uzastopnc blnkov c podataka iz datotckc. Obicno rostoji nacin da sc ovaj
rokazivac post a vi na miredenu vrednost. tako cia programi mugu proi;.voljno prislllpa
li bilo 1--um dduLbtoteke. Kada program ;:avr\i citanjc datotcke, on mnzc daje zalvori,
obavcsti opcrativni sistcmLLl jc nccc vise 1--uristiti ina taj nacin omoguci opcrativnom
sislt'Illll da oslnbodi pmslm u lahcli u ktljUJ su ;,acuvanc infurmacijc o datulcci.
Za upcralivnc sisll:mc racunara. dat(llcka jc nc\lu slo/.eniji pojam. Za
njih datolcka mn/.c budc ni/ logickih zapisa. m! kojih s\ aJ...i ima duhro dcfinisanu
strukluru. Na primer. logicki ;api:, bi mugL1 hili _,truklura pudatab s pet stavki: selva
znakO\na ni;a l . .lmc." i .. Nad;ornik')'; elva L'L'la hmja ( .. Odcljcnjc" i .,Kancclarija")
i pudalkum .. )cnskiRml". Ncki upcrativni si\tcmi pravc razlil--u iLmt.:du da-
lntcl--a u ko.Jillla .\vi 1apis1 imaju istu stmkluru i kojc sum6.avina raznih lipo-
va
Omuv na uLt;na instrukcii<t Ciu sicdcci ;:api.s i;. ;ad<dt.: datokkc i .smcsla
y:a u gl<!vnu mcrnoriju p<'CC\ od ;.adalt' ad!,:sc. 1--au na slici (1-ILJ. Da bi ovu izvcla.
juj .sc KUJU trdJa cit ali i lllt.::-,i() ll llll'll1()l'iji na 1--ujc trcba SlllC
stili ucitan zapis. Ccstu l''''t'1jc upcijc t.a oc:ita\
l"ii:mjc sc 1.adajc bilo
im u datutc<:i. hiJ,, p<'lll<'L'u l-.,ljuca.
viilLh.:lna i/.Lt/na !.t!pi:-. i1. u datoleku.
U;.astuprw tn:,truJ....:ije write llZctstupnc ioc;Jl:k..: :apisc u cLtt.'tci--u.
6.2.2 Imph.:nwntiranje -virtudnih ul:lzno-izlaznih instrukcija
hstc ran:mcli kakil ,,, implemt:nliraJli virtuclnc ubzno izLrznc instrukcijt.:.
prvo naul:iti .... (}-.,nc'Vih) \l
"udi t i s \'i ,JdLOlL' :"''"L jc:--.\c ni.._ a (JIEt nh I.e cL.t Pdgovara jed-
num ,ckt<!rcillct di,ku. ali jc I' po pr:ivilu h],lk u!:;:;t(pnih ,d;t,,ra.
.')\ u gde sc dato-
tcf...a u i!i ne:. fl-20 jcdnP.-.,tavan jcdno-
di.-J. , -..rala 1hl ;1u 12 dodclc
ku.i('! j,_' "L'ktdr .l:--.fln\-n;t JCliinica u dulL:ljuju uzastopni

di-J:_,,-..inla. Sllk._t h-2\hbi
h[, ku\ a :)c na kon1pakr
dndclc u jc sd,tur skladiSna
:_dl U dat\)teka n:l)Ll da Ul.a:-,U1pnc ()v'akva ;crnaje
(\ r-;Lc
6.2 Virtuelne ulazno-izlazne instrukcije
Glavna memonja
Jed an
logicki
zapis
Sleded logicki
zapis koji treba
/ proCitati
I ''"'I Jl:
Glavna memonja
453
Logicki
zapis 18

I
,----- r Bater
(a) (b)
Slika 6-1'!. CitanJc datutckc koja sc "'stoji od f,lgickih zapisa. (a) Pre citanja zapisa 19.
(h) Poslc citanja zapisa l9.
Glava za
citanje -
i upistvanJe
Sektor 11 Sektor 0
..........__...
Smer rotrranJa diska
(a)
Staza 0
Glava za
Citanje-
1 upisivanje
Sektor 11 Sektor 0
..........__...
Srner rotiranJa diska
(b)
Slika 6-20. Stralegije dodclji\',llt)a prostora na dtsku. (a) Datolcka zauzima uzastopne scklorc.
(hi Datotd.a zauzima ncsuscune scktorc.
Po;,tuji va/.na izmcdu kako programer glcda na dalotcl--u i kako jc po
smalra operativni sistem. Programer daltlteku vidi kao lincaran niz bajtova ili log:ickih
zapisa. Operativni sistcmje posmalra k:Jo uredcnu. premda ne obavcnw uzastopno na
nizanu 1.hirku jcdinica .-:a smesranjc na disku.
r
Poglavlje 6: Nivo operativnog sistema racunara
Da bi operati vni sistem na zahtev isporucio bajt n iii logicki zap is n iz odredene da-
toteke, on mora da ima mctodu za pronalazcnje takvih podataka. Ako su datoteci do-
deljene uzastopne jcdinice za smdtanje, opcrativni sistem samo treba da zna mesto gde
pocinje datoteka kako bi mogao da izracuna poziciju trazcnog bajta iii logickog zapisa.
Ako datoteci nisu dodeljene uzastopnc jedinice za smcstanje, nije moguce izracu-
nati proizvoljnu poziciju trazcnog bajta iii logickog zapi!>a samo na osnovu pozicije
pocctka datoteke. Da bi se pronasao proizvoljan bajt iii logicki zap is. potrebna je ta-
bela zvana indeks datoteka (engl. jile indl'x). u kojoj se uporedo nahvc jcdinice za
smestanje i njihove stvarne adresc na disku. Jndeks datoteka se rnozc organizovati
kao lista adresa blokova na disku (kao sto to radi UNIX) iii kao lista logickih zapisa
koji sadrzc adrcsu diska i rastojanje izmedu njc i svakog zapisa. Plmekad svaki logic-
ki zapis sadrzi i kljuc, pa programi mugu cia pristupaju zapi'u prcko kljuca. umcsto
preko njcgovog broja. U tom slucaju neophodan je drugi sistcm organizacijc, pri
ccmu odrcdnica nc sadrzi samo lokaciju zapisa na disku, vee i njegov kljuc. Takva or-
ganizacijaje uobicajena na centralnim racunarima.
Altcrnativna metoda pronala/.enjajedinica na disku u knjimajc smdtcna datoteka
jestc organizovanjc datotekc u obliku povezane liste. Svaka dodeljenajedinica sadrzi
i adresu svog slcdbcnika. Ova sema se IllOZt.: efikasno implemcntirati tako sto ce se u
memoriji odrzavati tabda ,a adresama wih sledbenika. Za disk sa 64 KB jcdinica za
smestanjc, opcrativni sistem bi u mcmuriji mogao da ima labelu sa 64 KB odrednica,
ml kojih svaka sadrzi indcks svug sledhcnika. Na primer. ako bi datoteka zauzimala
jedinicc 4, 52 i 19, odrednica 4 u taheli bi sadrzala indeks 52. odrednica 52
bi sadr7.ala indeks 19. a odrednica 19 sadr/.ala bi spccijalan kCKI (npr. 0 iii - I), kao
owaku kraja datutcke. Sistemi datotcka koje koriste MS-DOS, Windows 95 i Win-
dmv' 9N racle na uvaj nacin. \Vindows XP podr7.ava taj sistcm datotcka. ali ima i svoj
supstvcni sistcm koji radi slicno kao na UNIX-u.
Dosad smo govmili u datotckama smc\tcnim u uzasU,pnc jedinice i onim drugim,
ali nismo navcli za\to <>e koriste obc vrstc. Za datotckc smestcne u uzastopne jeclinice.
admini<>triranje blokovima je jednostavnije, ali seta tchnika rctko moze koristiti ako
niJt: unapred po/nata mabimalna duzina datotcka. Ako st.: smc'itanje datuteke zapoc-
ne u sekturu j. a ona -;c daljc' smc.:;ta u uzastopnim scktorima, ona se mo!.e sukobiti
s drugom datlltckom u scktoru k pa vise ncce moci da rastc. Da ovoj datoteci nisu do-
deljivani uzastopni scktori, problema ne bi hilojer bi se blnkovi koji iz memorije do-
Lue jedan za mogli razhacati svuda po disku. Akll disk sadr?.i vise datoteka
kujc sc sire. a ne zna sc maksimalna vclicina nijedne, njihovo smdtanjc u uzastopnim
jedinicama na disku hilo bi skoro nemogucc. Premdtanjc: P<lstojcl'e datoteke po disku
ponekadje mugucc, ali je uvek skupo.
S druge slrane. ako maksimalna velicina svih datotcka zna unapred, kao sto je
slw:aj kada sc snima kompakt disk, program za snimanje mozc unaprcd cludeliti wa-
koj datotcci ncprekidan niz sektura koji Jo.i tacno mlgnvara po duzini. Tako. ako na
kompakt disk trcba -;mcstiti clatoteke duzina 120\l, 700. 2000 i 900 scktora, njihovo
snimanjc nwzc poceli ocl sektora 0. 1200, 1900. odnosno 3900. (zancmarujuc'i tabelu
sa sadrl:ajcm diska1. Kada sc: zna prvi sektor svake dat<lteke. lako je pronaci bilo kuji
njen deu.
6.2 Virtuclnc ulazno-izlaznc instrukcije 455
Da bi datoteci clodelio prostor na eli sku, operativni sistem mora da zna koji su blo-
kovi slobodni, a koji vee sadrze datoteke. Za kornpakt disk, ova racuniea sc obavlja
unapred, jednom i za svagda, ali na cvrsti disk clatoteke stalno do laze iii s njega odla-
ze. Jedna metoda se sastoji u oclrzavanju liste svih praznina, pri cemu prazninu pred-
stavlja bilo koji hroj uzastopnih, sloboclr,ih skladisnihjcdiniea. Ova lista se zove lista
slobodnih mesta (engl. .fi-ee list). Slika 6-21(a) prikazuje listu slobodnih mesta za
disk sa slike 6-20(b).
Alternativno se moze oclrzavati mapa bitova sa I bitom po jedinici za smestanje,
kao na slici 6-21 (b). Tad ace I oznacavati daje jedinica zauzeta, a 0 daje raspoloziva.
Staza Sektor Broj sektora
u praznini
0 0 5
0 6 6
1 0 10
1 11 1
2 1 1
2 3 3
2 7 5
3 0 3
3 9 3
4 3 8
(a)
Staza 0
0
1
2
3
4
r-
0
0
1
0
1
0
0
0
0
1
Sektor
2 3 4 5 6 7 8 9 10 11
0 0 0 1 0 0 0 0 0
1
0 0 0 0 0 0 0 0 1
1 0 0 0 1 0 0 0 0

0 1 1 1 1 1 1 0 0
1 0 0 0 0 0 0 0 0
(b)
Stika 6-21. Dva nacina rcgistrovanja raspolozivih scktora. (a I Lista slobmJnih mcsta. (b) Mapa
bitova.
Prva metoda ima prednost JCr olaksava pronalazenje praznine odredcne duzine.
Njena mana je to sto je lista promenijive duzine. Kako sc datotekc srncstaju i brisu,
duzina lisle se menja, sto je nepozeljno. Prednost tabele bitovaje konstantna velicina.
Osim toga. kada se status jedinicc za smdtanje promeni iz .. zauzet'' u ,raspoloziv',
potrebno je izmeniti samo jcdan bit. Medutim, tcsko jc pronaci blok zadate velicine.
llista i tabela se moraju azurirati cim se neka datoteka snimi na disk iii s njega obrise.
Pre ncgo sto zavrsirno pricu o implementiranju sistema clatoteka, trcba nesto
reCi i o velicinijedinica za smestanje. Na nju utice vise cinilaca. Prvo, pristupom clisku
upravlpju vreme trazenja podataka na njemu i brzina rotacije. Kadaje potrebno 10 ms
da se pronade pocetak jcdinice ;:a smdtanje. mnogo je boljc cia se tacla procita 8 KB
(za oko I ms) ncgo I KB (za oko 0.125 ms). postu je za citanje 8 KB u obliku jedinicJ
od po I KB potrcbno osam tra7.enja. Etikasnost prcnosa govori u prilog vecihjedinica.
Vel ike jedinice za smestanJe zgodnc Sll i zbog cinjenicc da malih jeclinica treba clJ
budc mnogo. Poslcdica koriscenja vel ikog broja jedinica jesu velike indcksne clatote-
kc iii vel ike povczane listc u memoriji. U stvari. MS-DOS je morao da prcde najedi-
nicc za smcstanje od vise sektora zato sto se adrese na disku cuvaju u obliku 16-bitnih
brojeva. Kacla sektori na disku prerastu vclicinu od 64 KB. mogu se prcdstaviti samo
vecim JCdinicama da njihov broj ne bi pre sao 6-+K. Windows 95 je u svojoj prvoj ver-
ziji imao isti problem, ali jc u sledecoj koristio 32-bitne brojeve. Windows 98 podrza-
va ohe velicine.
1
.

'
.
I
L
J
I
Mt


r


i
'



,.
:.-

t
1;;,"


!
'

!
!
i

456
Po!!;lavlje 6: Nivo operativno!?: sistema rai'unara
Argument u prilog malih jedinica za smdtanje jeste cinjenica da nekoliko dalnte-
ka zauzima ceo broj jcdinica. Prema tome, ostacc nesto prostora u
poslednjoj skladisnoj jcdinici skoro svakc uatoteke. Ako je datoteka mnogo veca od
jedinice za smcstanje, prosecan neiskorisceni prm,tor bice oko jedne polovine jedne
jcdinice. Sto je jcdinica za smdtanje vee a, vcci je i nciskoriscen prostor. Ako je pro-
sccna datoteka mnogo manja od jcdinice za smdtanje, najveci deo prostora na disku
ostacc neiskori;cen. Na primer, na particiji ud 2GB u MS-DOS-u iii u prvoj verziji
Windowsa 95,jedinice za smestanje bile su veliCine 32 KB, paje pri smdtanju dato-
teke sa I 00 tekstualnih wakova uludo bacano bajtova pros lora na disku. Efi-
kasnost smcstanja govori u prilog rnalih jedinica. Sve u svcmu, izgleda da je dan as u
prvom planu pnbuljsanJe elikasnosti prcnosa podataka. tako;da se velicina blokova za
srndtanja s vremenum povccava. I
6.2.3 Instrukcijc za rad s direktorijumima
U ranim danima racunarstva korisnici su s\oje programc i podatkc cuvali na bust-
nim karticama, lcpo slo/:cnim u L1ncclarijskim urmarima. Kako su hroj i vcliCina [lnl-
grama. kao i kulicina rudataka rasli, ovakvo jc postajalo sve manjc
prihvall.Jivo. KPnacnu sc rudila idcja da sc umcsto bnccL:rij-:kih llrmara ta
prugrama i pmlataka upotn:hi sckundarna racunarsk,1 mcnH>rija (npr. diskuvi). Za in-
fonnaciju koja racunaru dostupna hc; pomoci Cl>Vc'ka kazt: sc da je dirl'ktno do-
slupna (eng-l. on-line). ;a iku ud indirektno dostupnl' (cngL oj(lincl infunnacije.
kad:1 jc potrebna ljudsb intenencija (npr. umetanje kompakt diskal da bi raCunaru
postal a dirL'ktno duslupna.
Uirektnu dostupnc inlmmaciJC snJe.\la.JU sc u dat<Jlc"c. ih c'ini dlbtupnilll pn-
gramima prckll uLu.!hl-iiLI/nili iilslrukcija o ko.Jiill:.t Sllltl prclhudil\l g"vori!i. \kdu-
tim. p<llrcbne -:u dudamc ms:rukci.JC n pracl'njc intcrnncija J..<,jc su kao
dirdiilll za njihuvl oiljcdinjav\Injc uruglld!lL' jcdinicc, i DlnjilWI'LJ/a\titu
od korisc'cnp.
Dm:klno dustupnc datokkc l>pcTati'.ni sistcm l,hi-'IHJ Dr,'!'aniiujc' u grunc. ;sane di
rektorijunti direcTdFit'Si. Slika ()-22 rrikaJ.ujc


PusllJjt: sist>.:m.ski po!.ivi h:tr ,!cdeL'c'
I. f'ravljenjc dat .. tcka i lljth:no s:nc,;ianjc u dird.ltlriJU11L
J flrisanjc datntcka iz
-' Prt>mcna imc'Il.l daL<llL'ka.
-L i\!cnjanJe bc:zbedn<JS!lll;2 'ta:::,a dallHt:ka.
Kuri:-.tc ra.;liCitc . .Jcdna !1h)gtk:!li1.-.t \
ln!.iLkc Kada p11ku;a da pri:--.Lupi prngi:tlll rr,tr:: tL.t U1h_'\C lP/ii1ku ntl ,y . .;nuvu
koj'"" 1nu opcrativni :-.isrc-111 Drui;i \ L:;;nik
tclc Dhla spi:-..ak. o:..;oha -,rneju LLl pristupaju
Svi l)j'c'LHivni \JllluguCuju k.nri-.;;1iku ;._L napr:t\i vi.::c
S\ak: dirl'ktdrijlllll Je po pr:l'- ilu i .. a i kao Ltk:tv sc rnol:c prik:v.ati
pa :-;t_' d(lLl;i do stab!a Poqo_i.Jnjc

6.3 Virtuelnc instrukcije za paralelnu obradu
457
direktorijuma narocito je zgodno za programere koji radc na vise projekata. Tako u isti
dircktorijum mogu da stave sve datoteke koje se odnose na isti projckt. Dok budu radili
na tom projektu, nece ih ometati neval:ne datoteke. Direktorijumi su i zgodan nac:n
deljenja datoteka izmcdu vise korisnika iz iste grupe.
lme datoteke: Gumeni patak
Datoteka 0
Datoteka tl
Duzina: 1840
Datoteka 2
Tip: Anatidae dataram
Datum nastanka: 16. mart 1066
Datoteka 3
Datowka 4
Poslednje
1. septembar 1492
I
pnstupanJe datotec1:
Ddtoteka 5
Datoteka 6
Datoteka 7
Posledn]a
4. jul1776
izmena datoteke:
Broj pnstupan]a
144
datotec1
Blok 0: Staza 4 Sektor 6
I
Datoteka 8
Blok 1 Staza 19 Sektor 9
Datoteka 9
Blok 2: Staza 11 Sektor 2
Datoleka 10
-
I
Blok 3: Staza 77 Sektor 0
Slika 6-22. Kurisnicki direktmijum s datukkama i njeguve slandardne udtwlnicc.
6.3 VIRTUELNE INSTRUKCI.JE ZA PARALELNU OHRADU
Ncka izracunavanJa se najpugodnijc mogu program irati u vidu dva iii vise upored-
nih proc.:sa k.<Jji mcdusobno saraduju (daklc, odvijaju se istovremenu na razlil'itim
proccsorima). Neka druga i1racunavanja mugu se podeliti u cclinc, kojc ce sc mlvi}tti
paralelno da hi sc skratilo ukupno izracunavanje. Da bi se vi;c procesa istoviTlllt:I10
odvijalu uz mcdusohnu saradnju. neophodne su virtuelne instrukcije. 0 !im instruk-
cijama govoriccmo u narcdnim odcljcima.
Zakoni fizike dodatno opravdavaju danasnje zanimanje 1.a paralclnu obradu pot.la-
taka. Prcma AjnstajnuvPj spccijalnoj teoriji rclativiteta, clcktricni signalne moze pu-
tovati br?.e od svetlosti, sto inmsi oko 0,3 m/ns u vak.uumu. a manje nd tnga
bakamu zicu iii optil'ku vlakno. Ova granica ima vazne pusledice po organizaciju ra-
cunara. Na primer, ako su proccsoru potrebni podaci iz glavne mcmorijc udaljcne Jd
njega oko 30 em, trcbace bar jedna ns da njegov zahtcv stigne do memorijc i jos I ns
da sc dobiJe odgmnr. Shodno tome, racunari sporiji od nanosekunde mnraJU da budu
izuzctnn malih dimenzija. Racunari sc moguubrzati i ako se oprcme s vise procesora.
Ral:unar koji ima hiljadu proccsora s radnim taktom od I ns moze da ima istu racu-
narsku snagu kao i jedan proccsllr s radnim taktum od 0,00 I ns. s tim stu ga jc mozda
lakse i jeftinije napraviti.
I.
" - ""'.(,,, "'"-....
1
-..,. .. ""' - jl' <
458
Poglavljc 6: Nivo opcrativnog sistema racunara
Na racunaru s vise proccsora. svaki od vise procesa koji mcdusobno saraduju
moze sc dodcliti zasebnom procesoru i tako omoguciti njihov paralclan rad. Kacla bi
na raspolaganju bio samo jcclan procesor, efekat paralelne obrade mogao bi 'e simu-
lirati tako sto bi procesor izvrsavao na smcnu svaki proccs tokom kratkog intcrvala.
Drugim rccima, procesor hi svojc vrcmc delio izrnedu vise proccsa.
Slika 6-23 prikazuje razliku izmedu stvarne paralelne obrade na vise tizickih pro-
cesora i simuliranc paralelne obradc na samo jcdnom fizickom proccsoru. Cak i onda
kada se paralelna obracla simulira, korisno je poclr:lavati iluziju da svaki proces ima
svoj virtuclni procesor. lsti problemi u komuniciranju koji nastaju pri stvarnuj para-
lelnoj ohradi javljaju se i prilikorn njenog simuliranja.
Proces 3
l
Proces 2
l
Proces 1
Vreme
(a)
Proces 3
Proces 3 ceka na procesor

,--A -,
II 11.1! II !II
'
'
' '
' '
'
Proces 2 I I I : I I ' I I : ! I I I : I
Proces 1 I I I I I I I I I I I I

J
Proces 1 se izvrsava
Vreme
(b)
Slika b-23. (a) Sivarna parctlelna obrada na v1se (b) Paralelna obrada simulirana
jcJnog pruccsura izmcdu tri pruccsa.
6.3.1 Zapocinjanjc proccsa
Kada program trcba da st; on mora da hudc cleo procesa. Proccs je opisan
svojim stanjern i adresnim prostomm u komc sc pristupa programu i poclacima.
Stanje, kao apsolutni minimum, obuhvata pmgramski brojac i registrc opstc namene.
Savrcmcni opcrativni sistcmi pn pravilu onmgucavaju dinamicko zapocinjanje i
zavr,avanjc prnccsa rada. Da bi se ova mogucnPst porpuno iskori.'t ila pri paralclnoj
obradi, potrt'banjc sistem:;ki poLiv za zapucinjanjc: rada nuvog prucesa. Taj sistemski
poz.i v mnic da napra" i nov proces jcdnostavni m kllptranjcm pozi vaoca ili procesu
poLivaocu mo:l.c pruziti mogucnost da Lada pocetnn stanjc novug proccsa, sto uklJU-
cuje njeg1lV prugram. podatkc i p0Ct:'[11U adresu.
U izvcsnim slucajcvima. roditcljski proct's zadrzava delimicnu. pa cak i potpunu
kontrniunad proccsum pot<H1ll-._om. Postoje virtuclnc inslrukcije ;a l'austavljanjc, po-
novno pokrctanje. ispitivanjc i zavr;avanje ko.JC roditcljski proccs da primcni
na svoJC pm,Hnkc. l! drugirn slucajcvima. roditt:ljski proces im.l manje kontrulc nad
.WOJim potomcima: kada stV<lri potnmka, rmliteljski pwccs vise m:ma nacina da ga si-
lom zaustavi, ponovo pokrene. ispita njeguv status iii ga zavrsi. Ova pruccsa (iL dve
gcneracije) tada sc- nezavisno jedan ud drugog.
6.3 Virtuclnc instrukcije za paralelnu ohradu 459
6.3.2 Utrkivanje
U mnogim slucajevima, procesi koji sc paralelno izvrsavaju moraju medusobno cia
komuniciraju i da se sinhronizuju kako bi obavili zadatak zbog kog su pokrenuti. U
ovum ocleljku analiziracemo sinhronizovanje procesa ina detaljnom primeru ukazati
na neke tdkoce koje se pri tome javljaju. Rescnje tih tdkoca prikazacemo u oared-
nom odeljku.
Razmotritc situaciju u kojoj dva nezavisna proccsa (proces I i proces 2), medusob-
no komuniciraju prcko deljenog bafera u glavnoj memoriji. Da bi sve bilo jcdnostav-
nije (iii slikovitije), proces 1 cemo Lvati proizvodai', a proccs 2 potrosai'. Proizvodac
izracunava proste hrojeve i smcsta ih u bafer. Potrosac ih uzima iz bafera jedan po JC-
dan, i zatim ih stampa. '
Ova elva procesa se izvrsavaju uporedo, ali razlicitom brzinorn. Ako proizvodac
utvrdi clajc hafer pun, on ide ,cia se odmara'", tj. privrcmcno prestaje cia radii ocekuje
signal ocl potrosaca. Kada potrosac uzme broj iz hafcra, on proizvodacu salje signal
da bi ga ponovo pokrenuo. Slicno tome, ako potrobc utvrdi claje bafer prazan, on ide
na odrnor. Kada proizvodac stavi broj u prazan bafer, on budi zadremalog potrosaca.
U ovom prirneru, za komuniciranje izmedu procesa koristicemo kruzni bafer. Po-
kazivaci in (u) i out (iz) koriste se na sledeci nacin: in ukazuje na slcclecu slobodnu rec
(mesto gde proizvodac treba cia stavi sledeci prost broj), a nut ukazuje na slecleci broj
koji potrosac treha cia prcuzme. Kadaje in= out, bafer jc prazan, kao na slici 6-24(a).
Nakon stu proizvodac generise nekoliko prostih brojeva. situacija je kao na slici
6-24(h). Slika 6-24(c) ilustrUJC situaciju u baferu nakon sto potrosac iz njega uzme
nekoliko brojeva da bi ih odstampao. Na slikama 6-24(d)-(f) prikazan je tok aktivno-
sti bafcra. Yrh hafera se logicki clodiruje s njegovim clnom, sto znaci cia on cini zal\0-
ren krug. Kada proizvodac naglo posalje rafal podataka i in prelece skoro ceo krug,
zaustavljajuci se ncposredno iza pokazivaca out (npr. in= 52, out= 53), bafer je pun.
Poslednja rcc se ne koristi; kada bi se koristila, ne bi hilo moguce zakljuciti da li
in = out oznacava pun iii prazan bafer.
In,
Out
(a) (b)
L______j
(cl (dl
Slika 6-2-t Konscen.1e kru7.n<>g bafera.
(e) (f)



pt


..
:.'
l





j:
r


l
;;t
....
460
Poglavlje 6: Nivo operativnog sistema racunara
Slika 6-25 prikazuje jednostavan nacin realizacijc problema proizvodac-potrosac
najcziku Java. U ovom rescnju cktini;u sc tri klase: 111. producer (proizvudac) icon-
swner ( polrosac). G lavna ldasa 111 (engl. main) sadrzi deli nicije konstanti. pokazi vace
bafcra in i out i bafer (engl. buffi'r). koji u ovom primeru mole da primi I()() pro-
stili brojeva (od buffer [0] do buffer [l)9]).
U ovom rdcnju. Javine programske niti simuliraju paralelne proccsc. Postojc kla-
se producer i nmswner, Cijc se instance pojavljuju u promcnijivarna p i c. Svaka od
ovih klasa izvcdena jc iz osnovne klasc l'hread (programska nit). koja ima mctodu
run (izvrsi). Metoda run sadrzi k(Jd /.a programsku nit. Kada sc pozove metoda start
objekta koji je izveden iz klasc lhrew/, zapocinjc se nova pmgra1mka nit.
Programske niti su slicne procesima. osim sto se sve programske niti u jed nom Java
programu izvrsavaju u is tom adresnom prostoru. Ovo je 1godno jer tako mogu da dele
zajednicki hafer. Aku racunar ima dva iii vise procesora. svaka programska nit mo/.e se
usmerili na drugi procesor i tako ustvariti pravi paralelizam. Ako postoji samo jcdan
proccsor, programske niti ga kori.'ite clclcci ga u vremenu. Pruizvodaca i
i nadalje nazi vamo pmccsi (pus to nas u stvari zanimaju paralelni prncesi ). iako Java
podrzava samo paralcint" progr,umke niti. a ne i st vame paralelnc pruccse.
Pomocna funkcija next (sledeci) omoguC:'ava laku povecavanJe vrcdnosti pokazivaca
in i out, ada sc nc mora svaki put proveravati da li jc nastalo krul:no prckuracenjc. i\ko
jc paramctar funkcije nnt 9X iii manji. ona skdcci vi\i ceo hroj. Ako. mcdutim.
panuttelar ima vredn()st 'J'). stigli snw do krap haft:ra i funkcip naL'a vrcdnust 0.
Trcba spruvesti da bilo koji proccs scbe Lhpava tii-.olil-.o ne mufe da nastavi rad. Ja-
vini programeri su shvatili koliku jl' putrcbna ova mogucnost i u kla'lt 7'/un[(/uklju-
cili Sll metode Sll.\f'Cll<l ( spavaJ) I /"('.\11111<' I prubudi se ). One Sll prikataflcl!la slici 6-25.
Sada stil:cttlll do stv,trnog koda ;a pn>blem pmizvodaca i l'roiz.vmlac
prvu nov prost broj u naredhi Pl. Skrccemo vam pa/nju na k!lnstrukciju
IILMAX_P/\1.\11:'. l'rcliks Ill. oznacavct claje i--tli1Stallla M.\X P!?li'v!f:" dclitlisana ll kLsi
111. I; ising ratlugct je uj pretiks putreban i t.a promcnljivc in. out. bu,'/(,. i ncrr.
Zatim proinmbC:' Ill nareclbt P2! pr,Jicrava J.t li i11 zaosuje ;a I j;,t I'Ut. Akd je
tako (npr. in"' 62. a our= 63). bakr JC :'lill i pruizv,,dac ide na spdV<li1JC po;ivajuci
Yl!S/h'f!tf u narcdbi P..2. J(aJ<-t h.._tfcr nijc pun. u -.,c 11\.h' prost
( ndrcdhJ l i in u ( P-t .1. L b )j i kc jt: nuv a Ln T.(t 1 vcL\i c)d \ r:._
1
ti(i'-.t i
Oil! (P5) (ll_rJr. in= j 7. out= 16). in i our su hiti r;c n.:go j2 irz
Ll\cC<IIl. PwizvoLLiC nkljttL"ujc L!ajc hafcr bu> praza11 i daJC putnJ_:,,,(' ?asp<hJ. ''dno:>tw
U\Ck '!1''' Lt. l'rem,ttom.;. pr,>i/\"tlcb.' po/.i,a n;cttJdu 1"/'S!IIIIC da bi pruhudi,) pu-
tro\aCJ t p_-=) ). '1C nkrL'c:e traZcnju novog hroja.
1\,tr\ pr;. 'li'ukturnu jl: ...,Jit.\.tn o\ un1. ()n prvo pro\era\:a ( C I) da
li Jc b<tkr prct/<til. :\k,, JCsrc. oncb tlll nc'lliJ <u ,Lt radi. pa ide na .\i-.:u hat"5
n ljc t '11 ut:inla \C2) i uvec'ava ou/ ( C 3) . .. -\ko
SL' our ilalazi d\:.1 rnc:-;La i-..prL--d in to ?.llJL'i dajc hiP jcd!lo i11Cstn i:-..prL'd iu 11rc
!!Jlra \ n u PoStq in = nut - 1 znaCi .. jc pun. !lHJr:J hit 1 Ja je pP)-
iL'-t:daC /:lttt bddi n_sunlt'. :\a .'-le
i cik:Lh r'tlila\ !_j:t.
'tampa t_(')l
6.3 Virtuelne instrukcije za paralelnu obradu
public class m {
final public static int BUF _SIZE= 1 00;
final public static long MAX_PRIME = 1 OOOOOOOOOOOL;
public static int in= 0, out= 0;
public static long buffer(] = new long(BUF __ SIZE];
public static producer p;
public static consumer c;
public static void main(String args( ]){
p =new producer();
c =new consumer();
p.start( );
c.start( );
}
II bater ima 100 mesta
II (od 0 do 99)
II ovde se zaustavi
II pokazivai':i na podatke
461
II prosti broJevi se smestaju ovda
II ime proizvodaca
II ime potrosaca
II glavna klasa
II napravi proizvodaca
II napravi potrosaca
II pokreni proizvodaca
II pokreni potrosaca
II Ovo je usluzna funkcija za kruzno uvecavanje sadrzaja promenljivih in i out
public static int next(int k) {if (k < BUF _SIZE- 1) return(k+ 1 ); else return(O);}
class producer extends Thread{
public void run( ) {
}
long prime = 2;
while (prime< m.MAX_PRIME) {
prime= next_prime(prime);
if (m.next(m.in) == m.out) suspend();
m.buffer[m.in] =prime;
m.in = m.next(m.in):
if (m.next(m.out) == m.in) m.c.resume( );
private long next_prime(long prime){ .. }
class consumer extends Thread(
public void run( ) {
long emirp = 2:
while (emirp < m.MAX_PRIME) {
if (m.in == m.out) suspend();
emirp = m.buffer[m.out]:
m.out = m.next(m.out);
if (m.out == m.next(m.next(m.in))) m.p.resume( );
System.out.println(emirp);
II klasa objekta producer
II k6d objekta producer
II privremena promenljiva
II naredba P1
II naredba P2
II naredba P3
II naredba P4
II naredba P5
II funkcija koja racuna sledeci
II pros! broj
II klasa objekta consumer
II kod objekta consumer
// privremena promenljiva
II naredba C1
II naredba C2
II naredba C3
II naredba C4
II naredba C5
Slika 6-25, Paralelna ohrada koja dovodi do fatalnog utrkivanp.
J

J

I

..

L

r
t
i
t

t
f


;1
t;:
fl


e
li


"'fl
rtt
I
462 Poglavlje 6: Nivo opcrativnog sistema racunara
Nazalost, ova sema saurzi fatalnu gresku, prikazanu na slici 6-26. Setite se ua dva
proccsa nisu sinhronizovana ida se izvrsavaju razlicitim, mozda promenljivim brzi-
nama. Razmolrite situaciju kada je u baferu ostao samo jedan broj, na mcstu 21, pri
cemu je in= 22, a out= 21, kao na slici 6-26(a). Proizvodac je stao na naredbi PI
trazeCi sledeci prost broj, a potrosac je (C5) zauz.et stampanjem broja name stu 20. Po-
trosac zavrsava stampanje broja, dobavlja proveru (C l) i uzima poslednji broj iz bafc-
ra (C2). On zatim uvecava out. U torn lrenutku i in i out imaju vrcdnost 22. Potrosac
stampa broj i ide na narcdbu C l, gde iz rncmorijc prcuzima in i out da bi ih uporedio,
kao na slici 6-26(b ).
22
21
99
0
Proizvodac je na P1
potrosac je na C5
Proizvodac
na P5 budi
potrosaca na C1
Proizvodac je na P1
potrosac je na C1
99 ,.-----, 99
23- Baler I
je prazan
In Out 22 ----1
22-1 Prost broj
Prost broj
!
!
I
U baferu je
jedan broj j
U
je jedan broj
01
I
I
0
(a) (b) (c)
Slika 6-2fo. Krah mchaniLnw komunikacijc inncdu proizvodab i potrosaca.
U is tom lrenutku, nakon S(O je potrosac prcuzeo ill i Oltl, J!i ih jos nijc uporedio, pro-
izvodac pronalazi slcdcCi pmst broj. On ga (P3) stavlja u bafer i uvecava in u naredbi
P4. Sadajc in= 23, a our= 22. U narcdbi P5 proizvmlac otkriva daje in= next (out).
Drugim rccima, in je za jed an veci ml Oil/, slo znaci da bater sadrzi jcdnu stavku. Proi-
zvodac iz toga (pngresno) zakljucujc da jc potrosac spavao. pa mu salje signal za
budenje (po:riva metodu reswne), kaona slici 6-26(c). Naravno, potrosac je sve vremc
budan, pa signal za budenjc ncrn<t ct"ekta. Proizvmlac pocinje da trazi skdcci prost broj.
lJ ovom trenutku potroS<lC nastavlja s radom. On JC iz mcmorije vee prcuzeo in
i out ito pre ncgo stn jc proizvouac staviu nov broj u hafer. Posto oba pokazivaca ima-
ju vrednost 22, potrusac pada u san. Sada proizvt>ctac pronalazi nov prost broj. On
proverava pokazivace i nalazi daje in= 24. a out= 22: zato zakljucuje da su u bal"eru
elva broja (tacno) i dajc budan qmgrcsno). Proizvodac nastavlja da kru/.i u
pctlji. lJ jcdnom trenutku on puni bafer do vrha i odlazi na spavanje. Sada oba procesa
spavaju i ncma niceg stu bi ih muglo probuditi.
!!_;;
.::..:.------
6.3 Virtuclne instrukcije za paralclnu obradu 463
Problem ovde nastaje zato sto izmectu trenutka kada je pntrosac preuzeo in i out i
trcnutka kadajc zapao u san uskace proizvodac, otkriva da je in= out+ 1, pretposta-
vlja da potrosac spava (sto jos uvek nije tacno) i salje signal za budenjc koji se gubi
jer je potrosac jus uvek budan. Ovaj problem je poznat kao stanje utrkivanja (engl.
race condition), posto uspeh metode zavisi od toga ko ce pre proveriti in i out nakon
sto je pokaJ:i vac out uvecan.
Prohkm utrkivanjaje dobro poznat. Onje u slvari toliko ozbiljan da je vise godina
po na>tanku Javc. korporacija Sun izmenila klasu Thread i potpuno potisnula pozive
mctodama .\"USfletui i resume jer su prcterano cestn izazivale stanje utrkivanja.
Ponudcno jc rt:Scnjc zasnovano na prograrnskom jcziku Java, ali pnsto ovde prou-
cavamo opcrativnc sisteme, govoricemo 0 drugom resenju koje podrbvaju brojni
opcrativni sistemi, medu njima i UNIX i XP.
6.3.3 Sinhronizovanje procesa pomocu semafora
Stanje utrkivanja moze se prcvazici na najmanje dn nacina. Jedno je rcsenje dase
svaki pmces opremi ,bitorn za naknadno budenje". Taj bit se postavlja kad god scsi-
gnal za budenje posalje procesu koji se jos uvek izvrsava. Kada proces obavi posao i
ode na spavanje, a bit za naknadno hmlenjc je postavljen, proces se odmah ponovo
pokrece, a bit za naknadno budenje se brise. Ovaj bit radi upravo ono sto mu ime kaze
- cuva suvisan signal J:a budenje za eventualnu kasniju upotrebu.
[ako ova metoda re!iava problem utrkivanja kada postojc samo dva procesa. ona
nije dobra za opsti slucaj za n procesa knji medusobno komuniciraju jer bi mozda
istnvremeno trebalo smestiti in- 1 signala za budenjc. Naravno, svaki proces se moze
opremiti san- 1 bitova za naknadno budcnje kako bi mu se omoguCilo da u unanwrn
sistcrnu broji don- l, ali je to resenje prilicno rogobatno.
Dijkstra (l968b) predlozio je opstije re!ienjc problema sinhronizacije paralelnih
procesa. Negde u mcmoriji na!aze "e nenegativne celobrnjne promenljive zvane se-
mafori. Opcrativni sistem obezbedujc dva sistemska poziva, up i down. koji rade sa
semaforirna. Up sernaforu dodajc I, down mu oduzima I.
Ako se opcracija down primcni na semafor cija je vrednost veca od 0, ona sc sma-
IlJUje 1.a I i proces koji izvrsava down nastavlja s radom. Ako je, medutim, vrednost se-
rnafora vee 0, down ne moze da sc zavrsi: proces koji je pozvao down salje se na
'pavanjc i spava sve dok ncki drugi proces ne pozove up za taj semafor. Uspanni pro-
ccsi se po pravilu stavljaju u red cckanja da bi sc sacuvao njihov redosled.
lnstrukcija up proverava da li je scmafor na nuli. Ako to utvrdi, a za taj semafor
postoji i drugi. uspavan proces. vrednost semafora se povecava za l. Uspavani pro(es
tada rnnze da zavrsi opcraciju down koja ga je privremeno zaustavila. tako sto ce se
vratiti semafor na 0 i omoguciti i .sebi i drugorn procesu da nastave rad. Kada se :n-
strukcija up primeni na semafor cija vrcdnost nije nula, ona jc samo povcca za l. Se-
mafor u stvari prcd.stavlja brojac signala za naknadno budenjc, wku da sc uni ne gube.
Bitno svojstvo in,trukcija kojc rade sa scmaforomjeste slcdece: kada proces zapocne

"
"t

Iff:

;<i
..f":

.:
:;"



:,.

464
Poglavljc 6: Nivo operativnog sistema racunara
instrukciju na semaforu, nijedan drugi proces ne moze da pristupi semaforu dok prvi
proces ne zavrsi instrukciju ili ne bude privremeno zaustavljen zbog pokusaja da
izvrsi operaciju down s vrcdnoscu 0. Slika 6-27 surnarno prikazuje bitna svojstva si-
stemskih poziva up i down.
lnstrukcija
Up
Down
Semafor=O
Semafor=semafor+ 1;
aka je drugi proces zaustavljen u poku-
saju da dovrsi instrukciju down na ovom
semaforu, on to maze da uradi ida
nastavi s radom
Semafor>O
Semafor =semafor + 1
Proces se zaustavlja sve dok drug1 proces i Semafor=semafor-1
ne primeni na semafor operaciju up.
Slika 6-27. Efekat rada scmafura.
Kao sto jc rccenu. Java ima rcsenje za prcvazilazcnjc problema utrkivanja, ami
sada govorimo o operativnim sistcmima. Prema tome. treha nam nacin da u Javi ko-
ristimo scm afore jcr njih ncma ni u jcziku ni u standardnirn klasama. Prctpmtaviccmo
da postojc napisanc dve osnovne mctodc. up i down. kojc .. e po-
zivc isl<>g imena. Pnzivajuci ovc metnde s cdobrojnim parametrima, dohijamo nacin
za koriscenje semafora u .Java programima.
Slika h-2X prikazuje kako sc stanje utrkivanja mole izheci kurisL'cnjem semafora.
Klasi 111 su dmlata dva semafura. ll\'llifuble (raspoloziv), ko.Ji na puC:etku ima ncdnllst
I 00 ( kapacitL't hafera) i j1Llcd ( ispunjen ). C:ija jc vrednosL na pocetku 0. Pr<li.cvndaC:
pocinjc izvrsavanjc naredhom PI (s!ika a potrnsaC: naredbom C I, kau i raniJe
Po1.ivanje metode dmcn s paramciiOill/illed trenutnu 1austavlja potrosal:ev procesclr.
Katla proitvoctaC: pronadc SvOJ prvi pm'l broJ. on po1.iva dml"!l.., paumctrom muiiu-
/>lc, po-.;tav ljajuc'i -.;cmat"nr lli"Uilu/Jic na vrcdtlllst <!lJ. L narcdbi P5 on putiva mL't<lllu
ups parametrom.fil/ed i semaforuj;i/edmenja na 1. Na taj nacin '"
potrosal', koji sada da duvrsi svoj privremc:nu taustav ljen pu;.iv mt.:todi dut 11.
U uvum trcnutku sc:maforjii/ed JC 0 i oba pmce,;a .,u aktivna .
Objasnirno jus jcdnum bl..t' n<btajc sLtnie utrkivanja. U odrcdenom trcnutku .1e
in= '22. our= 21, pnltzv ndac jc n.t Pl. a potrosac na naiedbi C5. Potro.\:::c
L.avr\ava nno -'to jc zapo(cu i prclazi na narcdbu C 1 :;Jc: p<'tiva n1cltldu d{l\111 ;a sc-
mafurutn;i/lcd. koji jc pre pu;;va illlau vL:dnust 1. a pdsic ima vndtw:-.1 iJ. Pu-
trosaC: tada u;ima posledn.Ji hn.J i.e bdfcra i povc:c'a-, vn:dtltl'ot :-.c:tnafur:J mui!u!J/, na
i OU. h>trosac ;tampa hroJ i 1de na nc.redbu C!. Ncpw.rcuno pre nc!!O putms<tC: pn-
7.PV<' met< H.lu d, 1;n. pruizvodac prunahu.1 sledeci pru't hro.J i br.ccJ. jcunu za drugum.
izvr\ava narcdbe P2, P.i i P..f.
l: ovum trenutku semar<Jt)ii/n/ ima 0. Pn1izvmlac >c: spretua d ..J pnz,wc
up da hi tu vreJnost povecao, a pntn1,;ac :-.e :;;pr'"ma da pt1;:ove nKtudu i\J...u pu-
i1.vrsi svoju iJb!lllkciju, un cc biti privrcmell'' -.,ve duk :ca pm-
i,:vndac ne lJS!uh<>di ip<>LJvajuc'i elf'!. Ako proizvndal' prvi izvr;j :-.vuju instr<1Lijil,
6.3 Virtuelnc instrukcijc za paralclnu ohradu 465
semafor ce biti postavljen na vrcdnost l i potrosac uopste ncce biti zaustavljen. Ni u
jednum slucaju se ne gubi poziv za budenje. To je, naravno, i bio nas prvenstveni cilj
kada smo uvodili semafore.
Bitno svojstvo semafora je to sto su nedeljivi. Kada sc semafor pukrene, nijedan
drugi proccs ne moze da ga koristi svc dok prvi proces ne zavrsi svoju operaciju ili dok
njcgov pokusaj da to uradi ne hmic privrerneno zaustavljen. Osim toga, pri k01iscenju
scmafora ne gubi se nijcdan signal za hudenje. Za razliku od ovoga, naredhc if na slici
t-25 nisu ncdeljivc. U vremenskom intervalu izmedu proveravanja uslova i izvrsa-
vanja izabranc naredhe neki drugi proces mozc da posalje signal za hudenje.
Problem sinhroniLacije proccsa je otklonjcn tako sto je dcklarisana ncdeljivost si-
stcmskih poziva up i down pompcu metoda up i down. Da bi ove operacijc bile nedelji-
ve, operativni sistem mora zahraniti da dva iii vise procesa istovremeno koriste sti
semafor. U najmanju ruku treha obubcditi da sc posle poziva up iii down ne dozvoli
izvrsavanjc bilo kog korisnickog koda sve dok sc poziv mctode nc zavrsi. U sistemi-
ma sjednim procesorom semafori se ponckacl implemcntirajutako sto se onemoguca-
vaju sistemski prekidi tokom rada semafora. Na sistemima s vise procesora taj trik ne
nm/.e koristiti.
Sinhronizovanje pomocu semaforaje tehnika koja sc moze koristili za proizvoljan
broj proccsa. Vise procesa istuvremeno mugu da budu uspavani tokom pokusaja da
sistemski potiv down na istom semafmu. Kada neki proccs najzad izvrsi up nad
tim semafurom, jcdnom od uspavanih procesa dozvoljava se da zavrsi svoj poziv down
i da nastavi rad. Vredno;,t scm a fora je ponovu 0 i drugi procesi nastavljaju cla cekaju.
Jcdna analogija moze da razjasni prirodu rada semafura. Zamislite kako se, u i1e-
deljno popodnc, 20 udbojkaskih ekipa nadrncc'e u 10 mcccva (pruccsi) na 10 tercna,
a tu je i velika korpa (semafor) za loptc. Nazalost, postoji samo sedam lopti. U sva-
kumtrcnutku u korpi postoji izmedunula i scdam Jopti (semafor ima vrednost izmedu
0 i 7). Stavljanje Jopte u korpujc analogno pozivu upjcr povecava vrednost -;emafora;
uzimanjc lopte iz korpe odgovara pozivu down jcr smanjuje njcgovu vrednost.
Na pocetku tumira. sa svakog terena po jcdan igraC: ide do korpc da uzmc loptu.
Sednmro uspdno obavlja nalog (zavrsavaju poziv down); tri igraca su primorana da
cekaju na slohodnu loptu (tj. ne uspevaju da zavrse poziv down). Njihova utakmica inc
poC:inje. Najzad, neki od drugih mcC:eva se zavrsava i lopta sc pojavljuje u korpi
( izvrsava se up). To omogucuje jcdnom od igraca koji cekaju oko korpc da uzmc lnptu
(da zavrsi nezavrscn poziv down). pa njegov rnec moz.e da poC:nc. Dve prcostale igre i
dalje ne poC:inju :-.ve dclk sc u korpu ne spuste jos clve loptc. Kacla i one stignu (izvrse
se jos dva poziva up), poskdnjc dve igrc mogu da pucnu.
public class m {
final public static int BUF _SIZE= 1 00; II kapacitet baiera je 100 (0 to 99)
final public static long MAX_ PRIME= 1 OOOOOOOOOOOL; II stani ovde
public static int in= 0, out= 0; II pokazivaci na podatke
publtc static long butter[]= new long[BUF _SIZE]; II prosti brojevi se ovde cuvaju







.i





j



466 Poglavlje 6: Nivo operativnog sistema racunara
public static producer p;
public static consumer c;
public static int filled = 0, available = 1 00;
public static void main( String args[ ]){
p =new producer();
c =new consumer();
p.start( );
c.start( );
II ime proizvodaca (producer)
II ime potrosaca (consumer)
II semafori
II glavna klasa
II napravi proizvodac
II napravi potrosac
II pokreni proizvodac
II pokreni potrosac
II Ovo je usluzna funkcija za kruzno povecavanje in i out
public static int next( in! k) {if (k < BUF _SIZE- 1) return(k+ 1 ); else return(O);}
class producer extends Thread{
native void up(int s); native void down(int s);
public void run( ) {
long prime = 2;
while (prime< m.MAX_PRIME) {
prime= next_prime(prime);
down(m.available);
m.buffer[m.in] =prime;
m.in = m.next(m.in);
up(m.filled):
II klasa objekta proizvodac
II melode za rad sa semaforima
II k6d proizvodaca
II privremena promenljiva
II naredba P1
II naredba P2
II naredba P3
II naredba P4
II naredba P5
private long next_prime(long prime){ ... }II funkcija koja izracunava sledeci pros! broj
class consumer extends Thread{
native void up(int s); native void down(int s):
public void run( ) {
long emirp = 2;
while (emirp < m.MAX_PRIME) {
down(m.filled);
emirp = m.buffer[m.out];
m.out = m.next(m.out); II naredba C3
up(m.available): II naredba C4
System.out.println(emirp); II naredba C5
II klasa objekta petrosae
II metode za rad sa semaforima
II kod potrosaca
II privremena promenljiva
II naredba C1
II naredba C2
Slika 6-28. Paralelna ohrada sa semal'orima.
6.4 Primeri operativnih sistema
467
6.4 PRIMERI OPERA TIVNIH SISTEMA
U ovom odeljku nastavljamo da objasnjavamo procesore koje smo uzeli za primere
(Pentium 4 i UltraSPARC lll). Ovoga puta cemo obratiti paznju na operativne sisteme
koji se za njih koriste. Za Pentium 4 smo izabrali Windows XP (u nastavku, skraceno:
XPJ, a za UltraSPARC lii- UNIX. Posto je UNIXjednostavniji i po mnogo cemu ele-
gantniji operativni sistem, pocecemo od njega. UNIX je. takode, prvi napravljen i im-
plementiran, i mnogo je uticao na XP. tako da je ovakav redoslcd izlaganja opravdan.
6.4.1 Uvod
U ovom odeljku ukratko ce'mo predstaviti dva operativna sistema koje smo uzeli
za primere (UNIX i XP), obracajuCi paznju uglavnom na njihovu istoriju, strukturu i
sistemske pozive.
UNIX
UN!Xje razvijcn u Bclovimlaboratorijama pocetkom scdamdesctih godina. Prvu
verziju za mini racunar PDP-7 u asembleru je napisao Ken Thompson. Ubrzo je usle-
dila verzija za PDP-ll, napisana na novom jeziku. zvanom C. koji je smislio i imple-
mentirao Dennis Ritchie. Godinc 1974, Ritchie jc s kolegom Kenom Thompsonom
objavio clanak u komc su UNIX-u udareni temelji (Ritchie i Thompson. 1974). Za rad
opisan u clanku kasnijc su dobili prestiznu nagradu Udruzenja za racunarstvo (ACM
Turing Award) (Ritchie. 1984; Thompson, 1984 ). Sadrzaj ovog rada stimulisau je
mnoge univerzitete da od Belovih laboratorija zatraze kopiju UNLX-a. Posto kompa-
niji AT&T. roditeljskuj kompaniji Belovih laboratorija. zakonom o monopolu nije
bilo dozvoljeno da ulazi u poslove s racunarima. on a je bcz problema i po umerenoj
ccni licencirala UNIX univerzitetima.
Jedna od koincidencija koje cesto oblikuju istoriju bilaje to sto se racunar PDP-11
nalazio na katedrama za racunarstvo skoro svih univerziteta i sto su operativne sistc-
me kuji ;,u isli uz njcga. i profesori i studenti jednako smatrali grozomornim. UNiX
je ubrzo ispunio tu prazninu. verovatno ne samo zato sto je isporucivan s kornpletnim
izvornim kodom; to je korisnietma omogucavalo da beskrajno prckaju po njemu, sto
Sll oni sa uzivanjem i ciniJi.
Jedan od mnogih univerziteta koji su odmah prihvatili UNIX bio jc i Univerzitet
Kalifornije u Berkliju. Pus to jc na raspolaganju bio potpun izvorni kCld. na Berkliju su
mogli da sustinski innt:ne ,;istem. Neke od najvaznijih izmena su bile prikljucak za
mini racunar VAX i dodavanje podrske za virtuelnu memoriju sa straniccnJem, pru-
duzavanje imena datoteka sa 14 na 255 znakova i ukljucivanjc mreznog protokola
TCP/IP koji sc Janas koristi na lnternetu (vdikim delom zbog toga stoje napisan na
Berkeley UNIX-u).
Dok su na Berkliju cJbavljane sve te izmcne, kompanija AT&T je i sa rna nastavila
da razvija UNIX, pa se 1982. pojavila verzija System fU. a 1LJX4. System V 1984. go-
dine. Krajcm osarndesetih g,Jdina navcliko su sc kotistiie dve razlicite i medusobno
potpuno nekompmibilne verzije UNIX-a: Berkeley UNIX i System V. Ovaj rascep u
,,

j;,
468
Poglavljc 6: Nivo opcrativnog sistema racunara
svetu UNIX-a. zajedno s nepostojanjcm standarda za formate binarnih programa. u
vclikoj rneri je urnanjio komcn:ijalni uspeh UNIX-a, posto proizvodaci nisu mogli da
pisu i pakuju programe za UNIX ocekujuci da rade na svakom UNIX sistemu (kao sto
sc rutinski radilo za MS-DOS). Posle mnogo trvenja, Odbor za standarde instituta
IEEE napravio jc standard POSIX (Portable Operating System-IX- prcnosivi opc-
rativni sistem-IX), pozna! i po oznaci odguvarajuceg IEEE standarda- P 1003. On jc
k:L,nije postao medunarodni standard.
SJm standard ima mnogo dclova, a svaki deo pokriva drugo podrucje UNIX-a.
Pni dcu, PlO<n.l, definist: sistemske pozivc; drugi deo, Pl003.2, osnovne
u:-.luznc programe itd. Standard P l 003.1 dctinisc oko 60 sistemskih poziva koje svi
p<llCil<:iplno kompatihilni sistt:mi moraju da podrze. To su osnovni pozivi procedura
za citanje i upisivanje datoteka. pravljenjc novih proccsa itd. Skoro svi UNIX sistcrni
sada pmlrzavaju sistemske pozive prema standardu P 1003.1. Mcdutim, mnogi UNIX
si,temi podrL:avaju i dodatnc sistcmske pozivc, namcito one definisanc u Systemu V
i/ili Berkeley UNIX-u. Tako skup po pravilu rastc do 200 sistemskih poziva.
Godine au tor ove knjige nbjavio izvorni k6d za malu verziju UNIX-a, zvanu
l\!IN!X. nam..:njcnu univerzitetima (Tanenbaum, 1987). Jcdan od studenata koji je
proucavao MINIX na svom univezitetuu Hclsinkiju i koristio ga na svom kucnom PC
racunaru bio je Linus Torvalds. Posto jc dobro upoznao MINIX. Tmvalds je odlucio
da napise klon 1\llNIX-a i nazvao ga Linux. Linux je postao veoma popu-
laran. l ivllNIX i Linux standard, i skom sve stou ovum poglavlju kazcrno o
UNJX-u odnosi se i na njih. osim ako naglasimo drugacije. Iako se sve ove verzijc
UNIX-a interno veoma razlikuju. u ovom poglavlju cemo uglavnom razmatrati okru-
/.cnje njihovih sistemskih poziva. koje u svim slucajevima predstavlja (skoro) isti
nadskup instrukcija.
Oper<ttivni sistem Dt UltraSPARC Ill zasniva se na Systemu Vi zovc se Solaris.
On podr?.ava i mnoge siskmske pozivc Berkeley UNIX-a.
Pregkd sistemskih poziva u Solarisu, grubo svrstan po kategorijama. prikazan je
na slici 6-29. Sistemski pozivi za rad s datotckama i direktorijumima najvece sui naj-
vazni_lc kategorije. Vee ina ovih poziva do laze iz standarda PI ()(l.1.l. Snmncrnn vcliki
deo ostalih poziva potiCu iz Systema V.
Podrucje u kome dominiraju pozajmiee iz Berkeley UNIX-ajestc r::td u mrcii. Na
Bcrkliju jc -.misljen pojam uticnicc (engl. socket), koja prcdstavlja krajnju tacku
prikljucka na mrciu. Pojamje stvnren po uzoru na zidnu telefonsku uticnieu sa cctiri
no/.icc. UNIX proces mo7.c cia napravi uticnicu. da se prikljuci na nju ida prcko nje
uspostavi vezu s drugom uticnicom na udal.Jenom racunaru. Preko te vcze on moze da
ranllenjuJe pudatke u oba smera slu/.eci se najcescc prutoJ..olom TCP/IP. Posto teh-
nologija rada u mrel.i funkcionisc u UNIX-u vee dccenipma. gdc je sazrcla i stabili-
se. vcliki broj servera na Intcrnctu koristi UNIX.
Postu postoji vise implementat:ija UNIX-a, tesko je nesto vise rcci o strukturi opc-
rativnog si:-.tema jer je svaka implerncntacija pomalo drugacija od ostalih. Meclutim,
siika 6-30 ugJavnom oclgovara vccini implementaCiJ<L U dnu je shlj upravljackih pro-
grama (engl. drivers) ,ca urcclaje koji razdvaja sistem datoteka od hardvera. Prvuhitnn
je svaki upravljacki program pisan kao Lasebna celin::t, potpuno nez.avisna od ostalih.
6.4 Primcri opcrativnih sistema 469
Kategorija Neki primeri
' --
, Rad s datotekama Otvaranje, Citanje, upisivanje, zakljucavanje
Rad s direktorijumima Pravljenje i brisanje; premestanje datoteka izmedu direktorijuma
-I
Rad s procesima
, Ra_d slllemorijorT1
Preuzimanje/
zadavanje parametara
Datum i vreme
Rad u mrezi
Razno
Stvaranje, zavrsavanje, pracenje, signaliziranje .
-- - ____ j
Preuzimanje identifikatora korisnika, grupe i procesa; zadavanJe '
prioriteta
------- ---------- ------------
Zadavanje vremena pristupanja datotekama; koriscenje tajmera;
, izvrsavanje profila
f poruka
_; __________ L __ -------- ------- - --
: Omogucavanje obracunavanja; rad s kvotama na disku; ponovno
--' pokretanje sistema
Slika 6-29. Kratak prcglcd sistetmkih poziva u UNIX-u.
Takctv pristup je ccsto stvarao dupli posao, pusto rnnogi upravljacki programi monju
i upravljati tnkom izvrsavanja, obratlivati grdke, voditi racuna o prioritetima, razdva-
jati podatkc i upravljanje itd. Ovo zapazanjc navelo je Dennisa Ritchicja da raz\ije
strukturu tokova (engl. streams) kako bi se upravljacki programi mugli pisati modu-
larno. Uz takvu strukturu, moguce je uspostaviti dvosmemu vew izmedu korisnidog
procesa i hardverskog urcdaja, i u nju ubaciti jed an iii vise modula. Kurisnicki pruccs
usmt:rcl\a podatke u tok, gde ih svaki mudul na pu!u obraduje i transformisc, sve ciok
ne stignu do hard\er<L Ulazni podaci se obraduJU na obnnl! naCin.
j Komandno okruZenJe I r Konsr1Cki program
t t
lnterfejs za sisternsl<.e pozive
Sistem datoteka Rad s procesirna
I
Kes blokova
I I
IPC
I
r Rasporedivanje I
'-
Upravljacki programi za uredaje
I
Signali
i
[Rad s me'Tlonjoml
Hardver

Slika 6-30. Struktura tipicnog u.;tx <i.\lc:na.
Korisnibi
reZ1r.1
rada
Rezim
jezgra
lznad uprav ljackih programa za ureuaie nalazi 'e si:-.tem dato!eka !engl. jiie
srstc111). On rukuje imenima d<!ll)kka. Jirektt>lijumima. duJeijujc lJJ,Ji-:LJ\e diska. po-
desava i slicno. Deo sistema datuteka jc i kes blokova ( eno:L hiud me he): un
l:uva blnkove pudataka koji su pnslednji uc1tani di,J..a. ;:a 'lucaJ da ubrzo r,mo-,o ;a-
trebaju. Tukom godina su kori;ceni ra;liciti si,teini LLl:Pteka. ukljucuju..'i i b11:i
Berkeley sistcm datutcka (McKu,ic:k et .. !98-+:. ka<1 1 ,;stcme
na dnt:\ nicirna I Rt,scnblum i Ou:-.tcrhout, I 'Nl. teo Seltzer c:t ,ti.. 1993 ).
i;j

7;t
''

i'j
',
:




1

.;.:
, I
l:tlll"l'l"
li'

470
Poglavlje 6: Nivo operativnog sistema racunara
Drugi tleo jezgra UNIX-a namenjcn je raclu s proccsima. Izmcclu ostalog, on upra-
vUa komunikacijom izmeclu procesa (InterProcess Communication, IPC), sto im omo-
gucava da sc mcdusobno sinhronizuju i cia izbcgnu stanjc utrkivanja. Postoje i razni
drugi mehanizmi. Kod za rad s procesirna obavlja i njihovo rasporedivanje na osnovu
prioriteta. Signalima, koji predstavljaju jctlan oblik (asinhronih) softverskih prekida.
takode se upravlja otlavde. Tu je, na kraju, i upravljanje memorijom. YeCina UNIX si-
stenm podrzava vi11uclnu rnemoriju stranii'enu na zahtev, ponekad i uz dodatne rno-
gucnosti (npr. moguenost cia vise procesa dele isto podrucje adrcsnog prostora).
UNIX je od samog zacetka trebalo da bude mali sistem, kako bi mu perfonnansc i
pouzdanost bili sto bolji. Prve verzijc UNIX-a bile su potpuno tckstualne i izvrsavale
su se na terminalirna koji su mogli cia prikazu 24 iii 25 redova s po ASCII znakova.
Korisnikjc sa operativnim sistemom komunicirao pomoeu korisnickog programa zva-
nog komandno okruzenje (engl. shell), sto je u stvari bio interfejs u obliku komandne
linije. Posto kornandno okruzenjc nije deo jezgra, svako gaje mogao birati prcma svo-
jim potrcbama. tako da su tokom godina smisljana svc sloz.enija komandna okruzenja
za UNIX.
Kasnije, kada su se odomacili graticki orijcntisani terminali, na MIT-u je razvijcn
sistem prozora za UNIX, zvan X Windows. Jos kasnije, sistem X Windows nado-
graden je potpunim gratickim korisnickim okruzenjem (Graphical User Interface,
GUll, zvanim Motif. U skladu sa osnovnom filozolijom UNIX-a koja propoveda da
jezgro treba da bude malo, skoro sav k[Jd sistema X \.Yindows i Motif izvrsava sc u
korisnickom rezimu rada, izvan jczgra.
Windows XP
Kadaje IBM PC lansiran I 081. godine imao je operativni sis tern MS-DOS 1.0 koji
jc radio u 16-bitnum rcalnom rciimu i u kome jc korisnik mogao izdavati komande
s komandne linijc. Svih 8 KB ovog operativnog sistema tokom rada sc nalazilo u me-
moriji. Dvc godine kasnijc pojaviu se mnogo mocniji sistem MS-DOS 2.0. velicine
24 KB. Njegov komandni procesur (komandno okruzcnjel bio je u obliku komandne
linije, s mnugim osobinama pozajmljenim ud UNIX-a. Kada je 1984. godine IBM
predstavio PC/ AT s procesorom 286, on je imao MS-DOS 3.0. sada vee velicine 36
KB. MS-DOS je tokom godina prosirivan novim mugucnostima, ali je to i daljc bio
sistem urijentisan na komandnu liniju.
Podstaknut uspehom Appleovog Macintosha, Microsoft jc odlucio da operativ-
nom sistcmu MS-DOS pripoji graticko kurisnicko okruzenje koje je nazvao Win-
dows. Prve tri verzije Windowsa, zakljucno s Windowsom 3.x, nisu u punom smislu
bili operativni sistemi, vee graficka korisnicka okruzenja kojima je prikrivan
MS-DOS - operativni sistem koji je i dalje upravljao racunarom. Svi programi su se
izvrsavali u istom adresnom prostoru i grcska u bilo kom od njih moglajc da zaglavi
citav sistem.
t,_, --------
6.4 l'rimeri operativnih sistema
471
Ni Windows 95, koji se pojavio 1995. godine nije eli mini sao MS-DOS, mada je to
sada bila njegova nova verzija (7.0). Windows 95 i MS-DOS 7.0 zajedno su imali
veeinu osobina putpunog opcrativnug sistema, ukljucujuei i virtuclnu memoriju, rad
s procesima i moguenost istovremenog rada s vise programa. Medutim, Windows 95
nije bio potpuno 32-bitni program. On je sadrzao veliku kolicinu starog 16-bitnog
koda i jos uvek je koristio MS-DOS-ov sistem datoteka, uz skoro sva njegova ogra-
nicenja. Jedine znacajnije izmene na sistemu datoteka su bile omogucavanje dugackih
imena datoteka (umesto fonnata 8 + 3 znaka u MS-DOS-u) i mogucnost postojanja
vise od 65.536 blokova na disku.
MS-DOS je ostao cak i u Windowsu 98, koji je predstavljen 1998. god inc, doduse
u verziji 7 .I i sa 16-bitnim kodom. lako se ovde neSto vise funkcionalnosti prcselilo
iz MS-DOS-a u Windows, a podrska za veee diskove vee je pustala standard, Win-
dows 98 bez sminke se nije prcvise razlikovao od Windowsa 95. Korisniei su glavnu
razliku zapazali u svom okruzenju, u kome su bili sacla tdnje integrisani radna
povrsina, Internet i TV. Upravo je ovo integrisano okruzenje privuklo paznju Ame-
rickog ministarstva pravosucla, koje je tada optuzilo Microsoft za nedozvoljenu mo-
nopolsku delatnost. lza Windowsa 98 usledilo je milenijumsko izdanje Windowsa
(Windows Millennium Edition, ME)- duneklc poboljsana verzija Windowsa
Uporcdo sa svim ovim izdanjima, Microsoft je vrednu razvijao potpuno nov 32-
-bitni operativni sistem, pisuci ga od nule. Nuvi sistem je nazvan Windows New
Technology (nova tehnologija Windowsa), iii Windows NT. On jc u pocetku bucno
najavljivan kao zamena za sve druge operativne sisteme na Intelovim PC racunarima,
ali je pomalo sporu prihvatan i kasnije je preusmeren na zahtevniji cleo trzista, gde jc
konacno pronasao svoje mesto. Druga verzija upcrativnog sistema NT, nazvana Win-
dows 2000, postalaje i najcesce korisccna verzija. takocte ina trzistu stonih racunura.
Naslcdnik Winclow\a 2000 bio je operativni sistcm Windowsa XP, ali su uvcdene iz-
menc bile srazmerno male. XP je u sustini nalickani Windows 2000.
Postoje dve verzije XP-a: za servere i za klijente. Ove dve verzije su skoro identicne
i generisu \e iz is tog izvornog koda. Serverska verzija je namenjena racunarima koji u
lokalnoj mrcii rade kao serveri datoteka i usluga stampanja i zalo ima brojnije mo-
gucnosti upravljanja od klijentske verzije koja Jc namenjena stonim racunarima. Ser-
verska verzija ima i vcrziju (Enterprise), namenjenu velikim lokacijama. Ove venijc
Sll ra.dicitu podeSCliC, StU zavisi od ocekivanog okrul;enja U komc ec se pri koriscenju
naei, ali je kod svih njih k6d isti. U stvari, skoro sve izvrsne datotcke su n -;vim verzi-
istc. Opcrativni sistem XP s:1m otkriva sopstvenu verziju tako sto potrazi odrc-
denu promcnljivu u internoj strukturi podataka (bazi Registry). Korisnicimt-,e
liccncom zabranjujc da menjaju uvu promenljivu cia ne bi klijentsku (jcftiniju)
na taj nacin pretvorili u (mnogo skuplju) serversku iii Enterprise vcrziju. 0 razlikama
izmcdu ovih vcrzija vise necemo govoriti.
l'viS-DOS i we prcthodne ver;ije Windowsa hili su sistemi namenjcni jcdnmn ko-
risniku. XP pudr7.ava viseprogramski rad. tako da vise koriomika mogu istovrcmcno
raditi na racunaru. Na primer, mrczni server moze preko mrczc cia usluzuje vise ko-
risnika istuvremeno. takn tla svaki korisnik pristupa svojoj datuteci.
'
l\'.
..

...____ -
-i""'J ... ,_ Poglavlje 6: Nivo operativnog sistema racunara
XP je pravi 32-hitni operativni sistem namenjen viseprogramskom radu. On po-
drlava vise istovremcnih korisnickih procesa, od kojih svaki ima potpun 32-hitni pro-
stor vinuelnih adresa straniccn na zahtcv. toga, i sam sistem je potpuno napisan
kao 32-himi kod.
Prcdnust sistema NT nad Window,om 95 koja je postojala od samog pocctka, bila
je njegova rnodularna struktura. Sistem se sastojao oJ skromnog jezgra koje je radilo
u sopstven<'m rezimu (rdimu jezgra) i niza serverskih proccsa koji su radili u koris-
nickom rel:imu. Korisnicki procesi su saradivali sa serverskim procesima shodno mo-
delu l-.li_iemhcn cT klijent je slao zahtev scrveru, a server je obavljao posao i vracao
rezultat posebnom porukom. Modularna struktura je olaksala njegovu pri-
menu i na racunare koji nisu lntelovi. kao sto jc DEC-ova Alpha, IBM-ov PowerPC
i tv! IPS k<lmranije SGI. Medutim, rocevsi od verzije NT --+.0, vcci deo sistema pono-
Hl je v:-ac'en ujczgro zbog poboljsanja performansi.
Mt1.lcnm nadugacko i nasiroko raspredati o internoj strukturi Windowsa XP i njc-
govom interkjsu ;:a sistemske pozive. Posto nas ovcle najvise z:mima virtuelna masi-
na ktlJU nude ra.cliciti operativni sistcmi (tj. njihovi -;istemski pozivi ), zaclrl:acemo sc
sanhJ l-;ratko na .-;trukturi sistema i udmah prcci na objasnjavanje interfejsa za sistems-
ke pozive.
Struktura operativnog sistema Windows XP prikazana je na slici 6-31. Ona se sa-
stoji od vise modula rasporcdcnih u slojevc i medusobno povezanih tal-;o cla obrazuju
opcrativni sistem. Svaki modul ima odrcLienu funkciju i cltJhro definisan interfcjs ka
drugim modulima. Skoro svi moduli su napisani na jefiku C. mada _je cleo interfejsa
za graJicke uredaje napisan na jeziku C++. a deli( nizih slojeva na ascrnbleru.
I
Win32 program I
t
I Win32 podsistem I
t
I
Sistemskt interleJs
t
Sistemske usluge
!zvrSn1 deo
Proces1 i
Kes
Virtuelna
UI0Z-1::Iaz
datoteka memonja
programske Bezbednost
nit1
Sistem1
Rad sa objektima
datotekG
Upravtjacki programi za uredaje I Jezgro
I
SloJ apstrakcije hardvera
Hardver
Slika 6--H. Struktura Windo'"'" XP.
lntetlejs
za
Win32
i graticke
uredaJe
I
I
!
Korisnicki
re.Zim
Rezim
jezgra
6.4 Primeri uperativnih sistema 473
Na samom clnu je tanak sloj zvan sloj apstrakcije hardvera (engl. hardware cih-
straction layer). Njegova uloga je cla ostatku operativnog sistema predstavi apstrakt-
ne harclverske uredaje, oslobodcne svih pojedinosti kojirna stvarni hardver obiluje.
Izmeclu ostalog tu su modeli samostalnih keiieva, tajmera, ulazno-izlaznih magistrala.
kontrolera sistemskih prekida i DMA kontrolera. Kada se ovi uredaji ostatku opera-
tivnog sistema prikazu u idealizovanom obliku, XP se lakse prenosi na druge hard-
verske platforme, posto se vcCina potrebnih izmena moze obaviti najeclnom mestu.
lznad sloja apstrakcije hard vera nalazi se sloj u kome su jezgro i upravljacki pro-
grami za uredaje. Jezgro i svi upravljacki programi, ako je to potrebno, mogu clirekt:1o
pristupati hardveru jer sadrze kod koji se oslanja na hardver.
.Jezgro (engl. kernel) podr.tava osnovne objekte jezgra: sistemski prekid, pro-
gramsku klopku (engl. trap) i obradu izuzetaka, rasporedivanje i sinhronizovanje pro-
cesa. sinhronizovanje vise procesora i vremensko uskladivanje. Ovaj sloj treba da
ucini ostatak operativnog sistema potpuno nezavisnim od hard vera i, stoga. lako pre-
nosivim. Jczgro je stalno u glavnoj memoriji i ne moze mu sc preoteti kontrola, rnada
je ono s<1mo povremeno predaje pri opsluzivanju ulamo-izlaznih prekicla.
Svaki upravljacki program za uredaj. tj. drajver device dril'er) moze da
upravljajeclnim iii s vise ulazno-i;laznih uretlaja. ali on mo/.e da obavlja i poslove k'Jji
se ne odnose clirektno na konkrctan uredaj (npr. da sifruje tok podataka. pa cak ida
obezbeduje pristup strukturama podataka ujezgru). Posto korisnici mogu da instalir:Lju
nove upravljacke programe. oni imaju moe cla uticu na jezgro i da tako ostete npera-
tivni sistem. Zbog toga upravljacke programe treba pazljivo pisati.
lznadjezgra i upravljackih programa naLv.i se gornji deo operativnog sistema, LLv.
izvrsilac (engl. executive). On ne zavisi od arhitel-;ture i moze se preneti na nov raCu-
nar uz minimalan trucl. Sadrzi tri sloja.
Na najnizem sloju su sistemi datotcb i si,tem za rad sa objektima. Sistemi dato-
teka (engl. _file svsrems) podrzavaju koriscenje clatoteka i direktorijuma, duk sisttm
za rad sa objektima (engl. obiect mwwger) upravlja objektima kuje Jezgro poznaje.
U njih spadaju procesi. programske niti (jednostavni pmcesi unutar adresnog prosio-
ra). datoteke, direktoriJumi, semafori, ulazno-izlazni uredaji, tajmeri i mnogi drugi
objekti. Sistem ;:a rad sa objektima upravlja i prostorom imena u koji se smdtaju r:o-
vostvoreni objekti cla bi se kasnije mogli rekrencirati.
Sledeci sloj ima glavnih clclova. prikazanih na slici 6-31. Sistem za ula.wo-iz-
lazne operacije (engl. //0 IIUllwger) predstavlja okvir u kome r:tde ulazno-izLuni
uredaji i u kome su obezbedene opste ulazno-iYlazne uslugt'. On kori,ti sistem daio-
tcka koji. sa svoje strane, koristi usluge upravljackih programa za uredaJe i sistema/.a
rad sa objektima.
Sistcm za ke5iranje datoteka (engLjilc cuche nwnugerJ upravlja blokovima
toteka i pomaze sisternu virtuelne memorijc da odrcdi ktlJC ce blol-;ovc zadrzati u n;e-
moriji za buducu uplltrebu. On ucestvuje i u radu s datotekama kojc' se prcslikavaju u
memuriju.
, ...

;:.,_;
'
;:
474
Poglavlje 6: Nivo operativnog sistema racunara
XP se moze podesiti za rad s vise sistema datoteka i u tom slucaju sistem za kesi-
ranje ih sve opsluzuje. Kada je potreban blok podataka, on se zahteva od sistema za
kesiranje. Ako blok ne postoji u kesu, sistem za kesiranje ga trazi od odgovarajuc'eg
sistema datoteka. Posto se datoteke mogu kopirati u adresne prostore procesa, sistcm
za kesiranjc mora da saraduje sa sistemom virtuelne mcmorije kako bi postigao od-
govarajucu saglasnost.
Sistem za rad s virtuelnom memorijom (engl. virtual memory manager) imple-
mentira stranicnu (na zahtev) arhitekturu virtuelne memorije operativnog sistema XP.
On upravlja prcslikavanjem virtuclnih stranica u fizicke okvire. Prerna tome, on spro-
vodi pravila zastite i obezbeduje da svaki proces dobije pristup samo onim stranicama
koje pripadaju njcgovom adresnom prostoru (osim u posebnim okolnostima). On
obraduje i sistemskc pozive koji se ticu virtuclne mcmorije.
Sistem za rad s procesima i programskim nitima (engl. process and thread ma-
nager) izme(tu ostalog stvara i unistava objekte. On se vise havi mehanizmima po-
moc'u kojih se njima upravlja nego pravilima njihovog koriscenja.
Rcferentni hczbcdnosni nadzornik (engl. security reference monitor) jcsle si-
stem koji primenjuje slozena hezhednosna pravila operativnog sistema XP, navedena
u poglavlju 2 Narandzaste knjige Americkog ministarstva odbrane. NaramLhtsla knji-
ga sadrzi mnoga pravila koja potencijalni sistem mora da ispuni, pocevsi od prove-
ravanja idcntiteta prilikom prijavljivanja, preko nacina upravljanja pristupom. pa do
ohavcze da sc virtuelne stranice moraju isprazniti pre nego sto se ponovo upotrebe.
Interfcjs za gralicke urcdajc (engl. graphics device intetj1ce) radi sa slikama
koje se salju monitoru i stampacima. On obczbeduje sistcmske pozive pomm'u kojih
korisnicki programi mogu da ispisuju podatke na monitoru i stampacu na nacin kuji
ne zavisi od urcdaja. On obuhvata i hardvcrskc upravljackc programe za graficki is-
pis. U vcrzijarna XP-a pre verzije 4.0, ovaj intcrfcjs sc nalazio u korisnickorn pro-
storu. ali su perforrnanse bile rcuocaravajuc'e, pa gajc M icrusoft prcbacio u jezgro da
bi uhrzao njcgov rad. Modul Win32 takmk obradujc vec'inu sistcmskih poziva. On je
najpre bio u korisnickom prostoru, ali je ka:.;nijc prebacen u jez.gru zhog poboljsanja
performansi.
Na vrhu izvrsnog dela nalazi se tanak sloj sistemskih usluga (engl. svstm; ser-
vices). Njcgovct uloga jc da bude interfejs ka irvrsnom delu. On prihvata pravc XP-
-ove sisternske pm:ive i poziva druge dclovc izvrsnug dela t:a njihovo izvrsenjc.
lzvan jezgra sc nalazc korisnicki programi i podsistem okruzcnja. Podsistcm
okruzcnja (engl. emimn111enwl pustoji zato stcJ se korisnickim prugramirna
ne dopusta da dircktno pozivaju sistcm (iako oni to tehnicki mogu Ja urade). vee llVclJ
podsistcm skup funkcip prcko kojih oni to ucine. Prvohitno Sll postujala tri
podsistema okru/.enja. Win32 (La prugrame pisane za NT, Windows 2000. XP iii cak za
Windows 95/<JX/1\IE). POSIX (za prencte prograrne pi sane za UNIX) i OS/2 (za prenete
pmgrame pisane za OS/2). Od tri podsistcma podrzan je samo Win32. Mellutim. sada
postoji nov modul Services za UNIX koji obezheltujc neslll podrskc: i za UNIX.
6.4 Primeri operativnih sistema 475
Programi za Windows koriste Win32 funkcije i poziv<l:iu sistem preko podsisterna
Win32. Podsistem Win32 prihvata pozive Win32 funkcija (pogledajte dalje) i konsti
bibliotecki modul sistcmskog interfcjsa (u stvari, DLL datoteku- pogledajte pofla-
vlje 7) da bi generisao neophodne prave XP-ove sistemske pozive koji se zatim
izvrsavaju. Na ovaj naCin se u XP-u izvode sistemski pozivi.
Posto smo sc ukratko osvrnuli na strukturu operativnog sistema Windows XP,
okrenimo se nasoj glavnoj temi- uslugama koje on ohezbeduje. Ovaj interfejs je pro-
gramerova glavna veza sa sistemom. Nazalost, Microsoft nikada nije objavio potrun
spisak XP-ovih sisternskih poziva, a i menja ga od vcrzije do verzije. U takvim okoi:Jo-
stima, pisanje programa koji direktno pozivaju operativni sistem gotovo je nemoguc'e.
Microsoft je, medutim, detinisao i objavio skup poziva zvan Win32 API (Appli-
cation Programming Interface - interfcjs za programiranje aplikadja). To su bi-
bliotecke procedure koje iii pozivaju sistem da bi obavile zahtevani posao iii gt u
izvesnim slucajevima direktno obavljaju unutar korisnickog prostora, odnosno u pod-
sistcmu Win32. Pozivi interfejsu Win32 API ne menjaju se od verzije do verzije k:.ko
hi sc programeri ohrabrili da ga koriste. Medutim, postoje i XP-ovi API pozivi koj. sc
rnogu menjati od jedne do druge verzije opcrativnog sistema. Iako nisu svi Wir.32
API pozivi istovremeno i XP sistemski pozivi, bolje je drzati se Win32 API pozivajer
su dobro dokumcntovani i ne menjaju se. Kada je Windows prenet na 64-hitne racu-
nare, Microsoft je promenio ime modula Win32 tako da obuhvati i 32-bitnu i 64-hi nu
verziju, ali je za nase ciljeve dovoljno da posmatramo samo 32-bitnu verziju.
PiloLolija interfc:jsa Win32 API polpuno se razlikuje od UNIX-ove filozotije (]
ovom drugom slucaju. svi sistemski pozivi su javno poznati i obrazuju interfejs tni-
nimalne velicine: uklanjanje samo jednog poziva primetno bi umanjilo funkcional-
operativnog sistema. Win32 filowtija ide na to da se stvori veoma iscrpan
intcrfejs ll komc se isti posao lllOZC uraditi na tri iii cetiri nacina i ll koji Sll ukijuctne
funkcije koje nikako ne bi trebalo da budu (a i nisu) sistemski pozivi (npr. API por.iv
z.a kopiranje citave datoteke).
J'l,lm,gi Win32 API puLivi prave objckte jc;:gra jedne iii druge vrste, medu koji:na
su cLttokkc: procesi. programske niti, kanali itd. Svaki poziv koji pravi ohjekatjezgra
vraca po;iv<1ncu rczultat u ohliku identifikatora objekta (engl. handle). Taj se iden-
tifikatur zatim mo/.e koristiti za obavljanje operacija nad objektom. ldentitikatori su
spccit!cni za proces koji je napravio objekat. Oni sene mogu direktno proslediti elm-
gum procesu na korisc'enjc (kao sto se ni dcskriptori datoteka u UNIX-u ne mogu pro-
slediti drug om procesu i tamo korstiti). Medutim, u izvcsnim okolnostima moguce je
duplirati identitikator i kopiju proslediti drugim procesima na zastic'en nacin. 01110-
guc'uJUCi im tako knntrolisan pristup ohjektima kojc nisu sami napravili. Svakom ob-
jekiu mo2e -.e pridruziti hezbednosni deskriptor koji detaljno opisuje ko smc cia
izvudi kakvc operacije nad objektom.
Za XP se ponekad kaz.e daje objektno orijentisanjer se u njemu objektimajczgra
mo/.e manipulisati jedino pozivanjem metoda (API funkcija) uz njihove identifikato-
rc. S druge strane, njemu nedostaju neka najosnovnija svojstva ohjcktno orijentisanih
sistema. kao <tel su naslellivanje i polimor1iLam.
r
'
'
"
.
'
I
''_
'
!
l''

'


J
i:



F.
(
"

..

,!,
.
j'
;-"'

<'
'!,
,,
476
Poglavlje 6: Nivo operativnog sistema racunara
lnterfejs Win32 APL uz ndto izuzetaka, postoji i za Windows 95/98/ME (kao i za
Windows CE, operativni sistem elektronskih uret!aja siroke potrosnje). Na primer,
Windows 95/98 su sistcmi bez ikakvog ohezbedenja, pa na njima API pozivi koji se
ticu hezbednosti vracaju samo kodove grdaka. lsto tako, za imena datoteka u sistemu
XP koristi sc skup Unicode znakova koji ne postoje u sistemima Windows 95/08.
Postoje i razlike u parametrima koji se prosleduju nekim pozivima API funkcija. U si-
stemu XP su. na primer, sve ekranske komdinate u grafickim funkcijama pravi 32-bit-
ni hrojevi; u sistemima Windows 95/9:-\ koriste se samo 16 najmanje znacajnih bitova
(zbog kompatibilnosti s Windowsom 3.1 ). Postojanje interfcjsa Win32 API za vise
operativnih sistema olaksava prcnosenje programa s jednog sistema na drugi, ali
i istice cinjenicu daje on ponesto labavije vezan sa stvarnim sistemskim pozivirna.
6.4.2 Primeri virtuelne memorije
U ovom odeljku pozabavicemo se virtuelnom mernorijom UNIX-a i Windowsa
XP. Sa stanovista programcra, oni su prilicno slicni.
Virtuelna memorija u operativnom sistemu UNIX
Memorijski mudcl UNIX -a jc jednmtavan. Svaki proces ima tri segmenta: za kod,
za podatke i za stek (slika fJ-]2). Na racunaru -,jcdinstvcnim. linearnim adresnim pro-
storom, k<'Jd se u principu smdta pri dnu mcmorije, a za njim slcde pmlaci. Stek sc po-
stavlja u vrh mcmorijc. VLIil'inct koda jc tihna, ali i podaci i stck mugu da rastu- u
suprotnim smerovima. Ovakav model se lako implementira na skoro svak,)!ll ral'u-
naru i taj model koristi Solaris.
Adresa

I
K6d
0 '-----'
Slika 6-32. AUre:-:ni jcdw)g prUl.-TSa u L::"ifX-u.
uJ...oliku racunar podrzava stranicenic. citav adrv;ni ;xostor muzc se pllde-
liti na straniLe. ada korisnicki programi za to i ne lne0u. Oni c'e jcdinu primetiti de! im
sc nudi prustor kojije v.cci od fizickc: rnenwrije racunara. L:0lJX si,tcmi k(l1i nc pmlrb-
vaju straniccnje uglavnom razmenjuju cit,l\e proc:c:sc izmcdu mcmPrijc i diska k<Jko hi
proizvnlpwm broju procesa omogucili da ,;e izvrsa\ aJU u pok i ;enum
6A Primeri operativnih sistema 477
Za Berkeley UNIX. prcthodni opis (na zahtev stranicena virtuelna memorija) skoro
je svc sto bi sc o tome moglo reci. Medutim. System V (a i Solaris) korisnicima nude
vise mog:ucnosti za slo?.cnijc upravljanje vinue!nom memorijom. Na1vaznije je to sto
proccs moze da preslika ( deo) datotcke u deo svog adresnog prostora. Na primer. ako se
datoteka od 12 KB preslika na virtuelnu adresu 1-IAK. ocitavanjcm reci na aclresi l.:t4
KB dobice se prva rec datuteke. Na ovaj nacin s.: ulazno-izlazne operacije s datotekama
mogu izvuditi bez pozivanja sistema. Postn neke datoteke mogu biti vece od prostora
virtuelnih adresa, umesto cele clatoteke mo,/c: sc: prcslikati samo njen cleo. Za pre-
slikavanje je potrebno najpre otvoriti datntcku da hi sc dubio njen deskriptor dd koji se
tada koristi za identirikovanje datutekc koja se preslikava. Zatim proces generise poziv
padr duzina, nstita, indikatori, dd, rastojanje)
kuji preslikava duzinu datoteke (hmj bajtova) pocc:vsi od rastojanja u datoteci u pro-
stor virtuelnih adresa od virrul'inl'_wiresc. Alternativno, parametar indikatori
muze se podesiti tako cla od _,istcrna zatra/.i virtuelnu adresu, koja se tada vraca kao
padr. Preslikano podrucjc mura obuhvatati ceo broj straniea poravnatih na granici
stranicc. Paramctmm mozc se ;.adati bilo koja kombinacija dozvola za citanje,
upisivanje i izvrsavanje. Preslikavanjc se kasnije moze ponistiti sistemskim pozivom
unrnap.
Vise prncesa ,e istovrcmenu mu/.e preslikavati u istu clatoteku. Postoje dve opcijc
1a njeno deljcnJe. !\lugu da sc dele sve stranice. tako da ono sto jedan proces upisc u
datotcku vide -;vi ostali proce-;i. Ova opcija ohczbecluje visokopropusnu komunika-
ciJU illncdu pwccsa. Druga mogucnost je da se stranice dele sve dok ih neki proces ne
izmcni. Mc:ltutim. cim ncki proces pokusa cia ndto upise u stranicu. nastaje grdka
tbog naru;avanp i ,,perativni sistem procesu daje svoju privatnu k,Jpiju stra-
nicc koju mole ,Juhodnu d;1 incnp. Ovakvo gcnerisanje kopije po upisivanju (engl.
<'Of'\ on HTite) k,,risti St' kadajc svakom od vise istovremenih procesa potrebno stvo-
riti ilu::iju da ,c sanw un pr.:,Jikctva u datnteku.
Virtueina memorija operatinwg sistema 'Windows XP
\' \\ in,h>w:,r! XI' :>\:lki ktrisnicki proces ima sopstvcni prostor virtuclnih adresa.
Vinucl!1c ad:"C\C 'li duJ,in-c 32 hila. tako da svakum procesu pripada 4GB prostcra.
D(lnla C1B 'ill rercrvisan;t /a k,,d i podatke. dok gornja 2 GR omogucuju (ogranicc-
nol pri.stupanj.: jagn. osim u scrverskoj verziji Windowsa, u kojoj ndnos
r::spockk 111::'111\lriJ-' me_;__, biti < GH za korisnika i I GH zajezgro. Prostnr virtuelnih
aLb:-;a 't1;11:il'i sc :1a nhk. s v.:lil'inom stranice (4 KB na Pentiumu 41.
S\aLt vinucln:t stranic:.t !lli'Le hiti slnbudna, re;crvisana iii popunjena. Slobodna
stranica 'iL' trenutnP nc J.;,Jri,ti 1 njeno referenciranje generi;e g:rdku promasaja stra-
ni:l'. i\:adet ,,c prucl's pokrnc. S\ c njcgmc otranice su slobudne svc dok se program i
p,iccmi pod:tci nc prcslikaju crnj.:guv adrt:sni prostor. Pusto se k6d ili podaci preslibju
11 .trar!icu. \.::1/.e se daie Dn:t popunjena. Referenca na popunjenu stranicu preslikava
SC p<>llHX'll r,lld,er:t k:>ji radi S Vil1uelnom mcmmijulll i prcs[ikavanje uspeva ako Se
stnmica 11aLt,j u gb\n.Jj li'C!Jhlr'ji Ckuliku se stranica nc nalazi u glavnoj mcmoriji.
f,


,,
.ir
r
11.
'
I

t




I


t
r



f'
b
'

,.
H
,,



z;
f;
M
;

r.i



ii

l'i

w


478 Poglavlje 6: Nivo operativnog sistema racunara
stvara se greska promasivanja i operativni sistem pronalazi stranicu na disku odakle je
ucitava. Virtuelna stranica moze da bude i rezervisana, sto znaci da nije na raspo-
laganju za preslikavanje sve dok se rezcrvacija izricito ne ukloni. Osim atributa slobo-
dna, rezervisana i popunjena, stranice imaju i drugc atribute, kao sto su citljiva, upisiva
i izvrsiva. Gornja 64 KB i donja 64 KB memorije uvek su slobodni da bi mogli da ulo-
ve grdke pokazivaca (neinicijalizovani pokazivaci cesto imaju vrednost 0 ili - I).
Svaka popunjena stranica ima svoju skrivenu kopiju (engl. sluulow page) na disku
gde se cuva kada sene nalazi u glavnoJ memoriji. Slobodne i rezervisanc stranice ne-
skrivene kopije, tako da njihovo refcrenciranje izaziva gresku promasivanja (si-
stem ne muzc da unese stranicu s diska ako je tamo nema). Skrivene stranice na disku
rasporeLtene su u okviru jedne iii vise datoteka sa stranicama. Operativni sistem vodi
racuna o tome koja se virtuelna stranica preslikava u koji deo (koje) datoteke sa stra-
nicama. binarna datoteka prograrna sadrzi skrivcne stranice samo za njegov
izvrsni deo: za stranice s podaeima koriste se specijalne datoteke sa stranicarna.
XP. kao i System V, omogucava da se datoteke direktno preslikaju u de love prostora
virtue! nih adresa ( tj. kao ncprekidan niz stranica). Kada se datotcka preslika u pros tor
virtuelnih adresa. mo7e joj se pristupati kao svakom drugom podatku u memoriji.
Datoteke preslikane u memoriju implementiraju se na isti nacin kao i druge po-
punjcne stranicc, osim ;to skri vene stranice mogu da se nahue u datoteci na disku
umesto u datotcci sa stranicama. Zhog toga, kada se datoteka preslika, njena verzija
u memor-iji ne mora da ostanc identicna njenoj verziji na disku (jer je u prostoru vir-
tue! nih adresa nesto moglo biti i menjano). Medutim, kada se preslikavanje datoteke
ponisti iii se ona izricito ubrisc, ver.(ija na disku sc prethodno azurira.
XP dopusta da se dva iii vise pmcesa istovrcmcno prcslikavaju u istu datoteku.
mo?da pristupajuci njenirn razlicitim virtuelnim adresama_ C'itajuci i upisujuL'i memo-
rijske reci, procesi mogu rneL1usobno da komuniciraju ida razmcnjuju poclatke vrlo vc-
likom hrzinom. posto pri takvoj razmeni nema kopiranja. Raziiciti procesi mogu da
imaju r<ulicite pristupne doivnle. Posto svi procesi koji koriste prcslikanu datotcku
dele iste stranice, izmene kojc uncsc jeclan proces mimah su vidijive svirn ostalim pro-
cesirna, cak i pre nego sto se azurira odgovarajuca datotcka na disku.
Win32 API sadrzi vise funkcija pomocu kojih proces mo/e da upravlja . .;vojom ,ir-
tuelnom memorijom. Najvaznije od ovih funkcija navedene su na slici 6-33. Sve radc
nad jednom ili nad vise uzastopnih stranica u prostoru virtuelnih adresa_
Prve cetiri API funkcije ja.snc su same po scbi. dve omogucuju proccsu da
.. zamrznc"' izvestan broj stranica u tako da se ne mugu ponistiti. kao i Ja ih
naknadno ,.odmrzne". Ovu mogucnost mogu. na primer, isknristiti programi koji racie
u reainom vremenu. Sarnu prugrami 1--oji se izvdavaju u ime admilllstratora mugu da
zamrzavaju stranicc u menwriji, a postuji i granica kDju postavlja opcrativni sistem
kada ovakvi proccsi postanu previse gramzivi. lakn to nijc naVL'ck:no na slici 11-33, XP
ima i API funkcije kcJje proLesu unwgu(avaju da pri,tupi virtuelnuj memoriji drugog
procesa nad kojim mu je data kontrola (ndnosnu, ciji ima).
6.-1 Pdmcri upcrativnih sistema 479
API funkcija Sta radi
:, VirtuaiAIIoc [
-j
I __ _ _ .. __ _ _ _ __
1
I ; Menja pristupne dozvole (Citanje/upisivanje/izvrsavanje) za podrucjEJ
1 V1rtuaiOuery i Vraca status podruCJa 1
r ------------,--- ---------- V -.- i
! Virtuallock 1 Sadrzaj podrucja i':ini rezidentnim (onemogucava njegovo stranlcenJe)
1
-- ---,- --------- .. --- -------- _,_ -------- _,____ -1
VirtuaiUnlock 1 Omoguc!vaponovo _ __ _ - j
CreateFileMapping i Pravi objekat za preslikavanje datoteke i (opciono) dodeljuje mu ime
MapViewOfFile I Preslikava datoteku (iii njen deo) u adresni prostor
UnmapViewOfFile
! OpenFileMapping
Uklanja prestikanu datoteku iz adresnog prostora
Otvara prethodno napravljen objekat za preslikavanje datoteke
Slika 6-33. Glavnc API funkcijc La rad s virtuclnom mcmorijom u Windowsu XP
Poslcdnje cctiri navcdene API funkcijc koriste se za rad s datotekama preslikanirn
u memoriju. Da bi se prcslikaia datoteka, prvo se funkcijom CreateFileMapping mora
napraviti objekat za prcslikavanJe datotekc.
Ova funkcija vraca idcntil1kator objekta za preslikavanje datoteke i opciono unosi
njegovo ime u sistem datotcka kako bi ga mogao koristiti drugi proccs. Sledece dve
funkcijc prcslikavaju datoteke. odnosno ponistavaju njihovo preslikavanje. Poslednju
runkciju moze da iskoristi proces da bi se preslikao ll datotcku u koju se vee preslika-
va neki drugi proccs. Na ovaj nacin, dva iii vise procesa mugu uzajamno cla dele svoja
podrucja adrcsnog prostora.
Navcdene API funkcijc suosnovne -na njima se gradi citav sistem upravljanja vir-
tuclrwm memorijum. Na primer, postoje API funkcije pomocu kojih se mcmorija moze
po potrebi dinarnicki dodcljivati strukturama podataka. Takva privremena memorijska
skladista (engl. heat") koristc se z.a cuvanje struktura podataka koje se dinamicki stvar-
CJju i hrisu. Automarski mehanizam za ciscenjc memorije zaobiiazi privremcna skla-
dista. pa korisnik c:ksplicitno treba da oslobodi te hlokove memorije 'kada sc vise ne
koristc. Koriscc:nje privremenih skladista (dinamicke memorije) u Windowsu XP slic-
no je 1--uriscenju funkcijc malloc u UNrX sistcmirna, osim sto tamo moze biti vise skla-
di;ta s kujirna se naza, isno racli.
6.4.3 Primeri viltuelnih ulazno-izlaznih operacija
Osnovna uloga o.;vakog operati\ nog sistema je da pruza us luge korisnickim pro-
to su ulazrlll-iL.lazne usluge kao Sill su citanje datotcka i upisivanje
poLL<taka u niih. l_)N!X i XP nude sirok raspon ulazno-iLlaLnih usluga korisnickim
Za \ccrnu si'itemskih funkcija u UNIX-u, XP ima ekvivalentne funkci-
jc, a! i Dhrnuln ne stoj i JCr XP ima mnogo vise funkcip i svaka od njih je mnogo slozc-
nija nego odguvarajuca funkcija u UNIX-u.


,,
!mY
'

,, :
..
"''
480
Poglavljc 6: Nivo opcrativnog sistema rai'unara
Virtuelnc ulazno-izlazne operacije u UNIX-u
Veliki Jeo popularnosti UNIX sistemi duguJu svojoj jednostavnosti koja je, opel,
dircktan rczultat organizacije sistema datoteka. Obicna datotekaje linearan niz bajtova
cija se Juzina moze kretati od 0 do maksimalno 2
32
- l. Operativni sistem Jatotekama
nc pripisujc strukturu zapisa, mada mnogi korisnicki programi posmatraju tekstualne
Jatoteke kao ni1. rcdova, od kojih se svaki zavrsava znakom za prclazak u slcdeci red.
Svakoj otvorenoj datoteci pridruzcn jc pukazivac na sledeci bajt koji tn:ba proci-
tati iii upisati. Sistemskc funkcije read i write citaju i upisuju podatke od tacke u dato-
teci na koju uka1.uje poka;.ivac. Ohc funkcije posle obavljene operacije pomcraju
pokazivac unapred hroj prenctih hajtuva. Mcdutim, datotekama sc moze pristupati
ina nacin tako sto se datotcke zada odrcdena vrcdnost.
Osim obicnih datoteka, operativni sistcm UNIX podrzava i spccijalne Jatotekc koje
se kuriste pristupanje ulazno-izlaznim uredajima. Svakom ulazno-izlaznom urcdaju
ohicno je pridru/.cna jcdna iii vise specijalnih datuteka. (:itajuci spccijalnu pridruzcnu
dalotcku i upisujuci u nju. program mo7.c da cita i upisuje podatkc na ulazno-izlan1i
urcdaj. Diskovi, stampaci, lcnninali i mnogi drugi ureLtaji radc na ovaj nacin.
Cilavnc sistcmske fukcijc za rad s datotekama u UN! X-u navedenc su na slici 6-J-1-.
Funkcija creat (bcz zavrsnog c) mozc da se iskoristi za pravljcnjc nove datotckc. Stro-
go govorcci, ona vise nijc neophodna Jer sada i funkcija open mozc da napravi novu
datotcku. Funkcija unlink uklanja datotcku, pod uslovom cla se tllla nalazi samo li.JCd-
nom dircktmijumu.
I funkcija
I ..
i creat(ime, zastita)
unlink(ime)
'open(rme, zastita)
close(dd)
; read(dd, baler, broj)
write(dd, baler. broj)
lseek(dd, rastojanje. w)
stat(ime. baler)
: chmod(ime, zastita)
fcntl(dd, kmd, ... )
1 Znacenje
! Pravi datote"_u: zastita oznacava nacin zastite
Bnse datoteku (uz pretpostavku da ka njoj postoji samo jedna veza)
Otvara iii pravi datoteku i vraca nJen desknptor
-- - -
Zatvara datoteku (dd deskriptor datoteke;
1 Ucitava broj bajtova u bater
Upisuje broj bajtova iz baiera
I
Premesta pokazivac datoteke u skladu s rastojan_1em i vrednoscu w
Vraca rnlormaciju o datoteci
Menja nacin zastite datoteke
! lzvrsava razne upravljacke operacrje s datotel<.o-11 nor.
i (deo) _ .
Slika Glavne funkcijc La rad.., t_i<ttot..:i,_amLt u l'N lX-u.
Funkc1ja open se koristi za pu-.;toJccih dawtd.:t; i Dl rrav !jenje nuvihl.
lndikatur zastita nalaze kako je trcha otvoriti (Za Citan:c. Dl upl'iiv it d. 1. funkcija
vraL'a mali bn'.i zvan deskriptor datotekc koji identitikuic datltcku pti slcdecim po-
zivima. Kada clatotcka vise nc budL' putrchna, funkLij l ,:lose '"lobacla liJCil dc:-:kriplllr.
Stvarnc ulazno-izla>'nc upcracije obavljaju '>t: funkc:J;.ma 'ead i wme. ud kt'.Jih s::t-
ka ima dcskriptor koji odrcuuJC Jatoll'ku. bafcr La pc,datkt: koji duld:.c ili <'dl:vc: i
hajtova koji sc tmn prilikum prenoo>e. Funkcija !seek kuri:-:ti se ;a poLicioniranjc po-
kazivaca cLilotcke. sto omogucujc pristupanje datutcci na proizvnlpn mCin.
6.4 Primcri opcrativnih sistema
481
Funkcija stat vraca informacije o datoteci, ukljucujuCi njenu velicinu, vreme pc-
slednjcg pristupanja, vlasnika i dr. Fukcijom chmod mcnja sc nacin zastitc datotekc ua
bi se. na primer, omogucilo ili zahranilo korisnicima koji nisu vlasnici datoteke daje
citaju. Na kraju. funkcijom fcntl s datotckom se mogu izvoditi razlicite opcracije (npr.
zakljucavanje i otkljucavanje).
Slika 6-35 prikazujc kako rack glavne funkcije ta Dianw-iLiaznc opcracije s dato-
tekama. Prikazani k6d je krajnje svcden i ne obuhvata ncophodnu proveru gresab.
Pre nego stc1 ude u petlju, program otvara postojecu llalntcku dora i pravi novu dato-
teku neHf Svaka funkcija vraca cleskriptor datoteL: inid. )dnosno outfit. Drugi pan-
metar u ove clve funkcije je 1.astitni bit koji nalazc: da prvu datotcku lreba citati, au
drugu upisivati. Obe funkcijc vracaju Jeskriplor datPtcke. t\ko sc funkcije open ili
creat ne zavrse uspdno, vraca se negativan dcskriptor datotckc.
t Otvori deskriptore datoteka. ;
infd = open("data", 0):
outfd = creat("newl", ZastitniBitovi);
r Petlja za koprranje. '/
do (
broj = read(infd, baler, bajtovr);
if (broj > 0) write(outfd, bafer, broJ):
} while (broj > 0);
( Zarvori datoteke. '/
close(infd);
close(outfd):
Slika 6-35. Dl'D prugrallla 1.a k"l'iranjc dalutc'e punllJc'u UNIX-ovih sistemskih funkcija.
0\ :tj tko pi...:an <' JCr .hva ,iqcm:;kc funkcljc nish.ng nivoa, ami upravo
poknSavanJn d.t ih prih.a?cn11J.
Funkcija .ca Citanjc (read' ima tri parametra: dcskriptor Jatolckc. bafcr i brnj hajlr)-
v:<. Funkcrp pr)kusava ;adati bn'J bajlova iL nan1acenc datotcke u bafer. Bnj
st\ :m111 hajiova st: kao hroj. koji L'e biti manji od paramctra bajtovi alo
JC datdreka prekratka. Funkcij:< write ,me':ta novoucitane bajtove u izlaznu datotek.t.
Pctlj:r sc' n:t',lavlja :-:ve d"k se ulazna datorci-a polpuno nc uCita, a zalim se obe dalr)-
tckc tell varaJU.
Dcskript<'ri datotcka u L:NIX-u su m;di L'"ii bmje\ i (obicrwmanji od 2()). Dc:skriJ-
tJri IJ. 1 i 2 su specijalni i aJU staudardni ulaz. standardni izlaz i standard11i
izlaz la greske. Oni ndgovarajr1 ustaturi, ekranu i ekranu, ali ih korisn k
U.SJilcTiti ra1.licitc datotc:ke. ]\:!nugi UNIX-ovi programi dDbijaju podatke ;a
uLu:l. d rentltate upisuju na standardni izlaz. Takvi programi sc ceso
hJ\11 nltri.
I 'hicm dm:kturi.Juma jc bli.sko povenn -;a datoteka. Svaki kDrisn k
m,L, inu \ise .iird;tmijurn:<. "d 1-,ujih ;v.tJ.,i nwzc: da sadrzi i datotckc i pndclire(-
t<,rJjlmiL'. ,;[,tc:mi standardno imaJU _c:lavni direktoriJLIIll. zvani nsnnvni iii k!>-
renski direktorijum 1 roul ciirccrorv ). k< Jji sadrzi poddirektorijume hin (Ia ccs o
;.u..-:r, ..n=nernz __________ _
""if

1
";_,_.
'
s

.
.
;U
482 Poglavlje 6: Nivo operativnog sistema racunara
izvrsavane programe), dev (za datoteke specijalnih ulazno-izlaznih uredaja), lib (za
bibliotekc) i usr (za korisnicke direktorijume), kao stu jc prikazano na slici 6-36. u
ovom primeru, clircktorijurnusr sadrzi podclircktorijume za korisnike ast ijim. Direk-
torijum ast saclrzi dve datotcke, data i foo. c, a poclclirektorijum bin cctiri igricc.
Osnovni direktorijum
bin
F\
dev
{7.,
lib
usr
\
/dev /bin
(
ast
jim
1\
/usr/ast /usr/jim
(
bin jotto
\
data
foo.c
/usriast/bin
igrica 1

igrica 2

I igrica 3

igrica 4

I
DODD

Datoteke s podacima
Slika h-36. Dco standardnog sistema dircktorijurna u UN I X-u.
6A Primeri opcrativnih sistema
483
Datotekc se mogu imenovati zaclavanjem njihove putanjc (engl. path) od osnov-
nog direktorijuma. Putanja sadrii imena svih clirektorijuma, razdvojena kosim crta-
ma, koje treba proci ocl osnovnog direktorijuma do datoteke. Na primer, ime datoteke
igrica2, izrazeno u obliku apsolutne putanje, glasi /usr/ast/bin/igrica2. Putanja Ciji JC
pocetak u osnovnom clirektorijumu zove se apsolutna putanja.
Svaki aktivan program u svakom trenutku ima svoj radni direktorijum. Imena
datoteka u obliku putanja mogu se izrazavati i u odnosu na radni direktorijum i tada
ne pocinju kosom crtom da bi se razlikovala od imena izrazenih pomocu apsolutmh
putanja. Takve putanje se zovu rclativnc putanje. Ako je /usr!ast radni direktorijum,
do datoteke igricaJ moze se stici putanjom binligrica3. Korisnik moze cla napravi
vezu (engl. link) do datotekc drugog vlasnika koristeci sistemski poziv link. U gor-
njem primeru, i /usrlastlhinligrica3 i /usr/jim/jotto pristupaju istoj datoteci. Da bi sc
sprccio nastanak petlji u sistemu direktorijuma, ne clozvoljava sc stvaranje veza s di-
rektorijumirna. Funkcije open i creal kao argumente prihvataju i apsolutna i relativna
imena datotcka.
Glavne sistemske funkcije za rad s direktorijumima u UNIX-u navedcne su na slici
6-37. Mkdir pravi nov direktorijum, a rmdir hrise postojcci (prazan) direktorijum. Sk-
dece tri funkcije koriste se za citanje odrcclnica direktorijuma. Prva otvara direktu-
rijurn, slecleea Cita odrednice iz njcga, a poslednja zatvara dircktorijum. Chdir menja
raclni direktorijum.
I
r- -- --- - --
! mkdir(ime, zastita)
rmdir(ime)
opendir(ime)
readdir(pokazivac_direktorijuma)
closedir(pokazivac_direktorijuma)
chdir(ime_direktorijuma)
link(ime1, ime2)
[ __
I unlink(ime)
Brise prazan direktorijurn
-------- -----
Otvara direktorijurn za citanje
Cita sledecu odrednicu iz direktorijuma
Menja radni direktorijum u ime_direktorijuma
--- --
1 Pravi odrednicu direktorijuma ime2 koja ukazuje
'na ime1
Uklanja ime iz direktorijuma
Slika h-37. Glavnc funkciJC La rad s dircktorijumima u UNIX-u.
- -1
Funkcija link pravi u direktorijumu novu oclrednicu koja ukazuje na pootojecu t'a-
toteku. N a primer, odrcdnica /usr/jim!jotto rnogla JC hiti napravljcna funkcijom
link("iusr/ast/bin/igrica3", "/usr/jimijotto")
iii ekvivalentnorn funkcijorn u kojoj se koriste irncna s rclativnim putanjama. sto za-
visi od radnog clirektorijuma prograrna. Unlink uklanja ndreclnicu iz clirekturijuma.
Aka datotcka ima samo jcclnu vezu, datoteka se potpuno brise. Ako ima dve iii vi;c:
veza, datoteka ostaje (brise se sarno veza). Nijt: znacajno da li jt: uklonjena ve/.a b !a
4


I
'
i
. '
1


.
'
lr
*
m


m







r
:
-.:
c;;..d
iL:
,,>,
J
484
Poglavljc 6: Nivo opcrativnog sistema racunara
original ili kopija kojaje naprav ljena kasnije. Kada se veza stvori, ona postaje ravno-
pravna i ne mozc se razlikovati od originala. Funkcija
unlink("lusr;asl!bin/igrica3")
cini igricu3 dostupnom samo preku putanje lu1-rljim/jotto. Funkcije link i unlink mogu
sc na ovaj nacin koristiti za .,preme'itanje .. datoteka i1. jednog direktorijuma u drugi .
Svakoj clatoteci (a i direktorijumi su datot.ckc) pridrulena je mapa bitova koja
saupstava kP mo?.e da priswpi datoteci. Mapa sadrzi tri polp RWX (Read- citanje,
Write - upisivanje. Execute - izvrsavanjc l. od kujih pr\ll uznai':ava dozvole za vla-
snika. clrugo do..:volc za pripadnike vla.snikove grupe. a trcee za sve ostalc korisnikc.
Na taj nacin ... sifra'" RWX R-X --X znaci da v!asnik muz.e da cita clatoteku, da u nju
upisujc podatke i Ciaje iLvrsava (datuteka. ocigkdno. prcdstavija program, inace bi bit
X hi<l iskljuccn l. duk clanovi njet:uve grupe rnogu da je citaju i izvrsavaju. a stranci
mugu samo daje LT1 ovakvc clozv<ic. stranci mogu da koristc program. ali
nc nwgu da ga ukradu (kopirajlll. Lato stu duLvolu za njeguvo citanje. Uklju-
civanje korisnika L1 plljl'dine grupc fllbaU je aJministratora sistema. ohicno /,Vanog
superkorisnik (engL supemser). Superkori:;nik ima i nacin da zaohide mehanizam
tastite. tako da mole da cita. menja iii izvrsava hilo k<1ju datoteku.
RaLmotrinw >ada ukratku kako sc LLitntckc i direktorijumi implemcntiraju u
LjJ\:JX:-u. Potpuni.Ji opi, r'tltrazitc kud Vahaiiac (I
1
JlJ6J_ Svakoj clatoteci (i dircktoriju-
mu. jn jc i nn dalutcka 1 pridruc11 je 6-1--ha.Jlni blok infurmacija, tzv_ i-cvor (engL
i-nodcl. 1-cvt'r ku je vlasnik datotckc. koje pristupne dozvole postoje, gde
trc:ha tra.l,iti pPdatkc i ,1_ Na svak<>111 di>;ku i-cvornvi za clatnteke smesteni su nume-
rickinl n:dc'lll na pucetku di,ka i!i, ako je chk podclJcn u grupe cilindara. na pocctku
.!'rllfH: ulindara. Stoga UNJ.\. Ltl:a d,,Jijc hruj i-cvora. lllllte da pronade sam i':vor
taku inacun;t njc:go' u adrc:su tn di,ku_
OdrcdlltC\ 11 dircktnriit::nu SCL'->toji 'cod dv;1 deJa: imena datoteke i hroja i-cvora_
pr(\gran1 I'('/t)VC
open1"b:lost2.c". 0)
'tstcm u radnom dircklni;untu dahllc'ku, imen<lm .,bi1ost;u:" da bi pronasao
Pcio<Pv K:1cla dndc' c!t' bwia i -c1 ora. on moic cia ucita sam cvor i da
l/
-.;..: k<'rac:i se vise puta punavljaju svc duk se nc
rredc c'it;\\ ,l :;riiJ<c:r_ l'i hroj 1-c1ora ;.a datoteku /usr/usrl
t>or/r:(i, ...d',ietn pr\\1 u dir..._ktnr:junlu tra/i odrednicu usr. PoSto nade i-Cvor
da l""''citacL.itd.u 1u t'>il".:-UJC i direkturijurndatotcka)_ U OV(lj da-
t<>Lci on tra!i <'drcdni.:u usr. tak" bmj i-CI"llra t.a clatokku /usrlust. Cita-
,l:ihltcLu ius;/u.,t ,i,tcm m<'l.c ,L; udrcdnicu za poduci. pa i broj i-cvora
/a /;isrlo 11"1. i111a h;,, j.,:-,ora datutcke. moie da sazna s1e o njoj.
i 1 eleJth':!;l' a l:'. n1a nwgu malo da se menjaju od sistema
dd ali se u svakorn i-Cvoru najCeSCc nala-
7_:.: -..Jedt:L::__, -..,Li \
6.4 Primeri opcrativnih sistema 485
I. Tip datoteke, 9 zastitnih RWX bitova i nekoliko drugih bitova_
2. Broj vcza ka datoteci (hroj oclrednica u direktorijumima koje se oclnuse na nju).
3_ Identitct vlasnika.
4_ Grupa kojoj pripada vlasnik_
5. Dui.ina datotcke u bajtovima_
6. Trinaest adresa na disku_
7. Vrerne poslednjeg Citanja clatoteke_
8_ Vremc poslednjcg upisivanja u clatoteku_
9_ Vrcme kada je i-i':vor poslcdnji put menjan.
Tip obuhvata obicne datoteke, direktorijume i dve vrstc 'pecija1nih datoteka: L.a
ulazno-izlazne uredaje koji radc s hlokovima podataka i za one druge. 0 broju veza i
identitikovanju vlasnika vee smo govorili. Duzina datotekc je 32-bitni ceo broj koji
odgnvara najvisem bajtu u dalOteci s vrcclnoscu raLlii':itom od nuk_ Sasvimje isprav-
no napraviti datoteku, poLivom !seek. namestiti pokazivac na hroj I_()()()_()()() i upi,ati
I bajt. sto c'e dati datoteku duzine LOOO.OO I_ Datoteka, 111l'L1utim, ne('e zahtevati pro-
s tor za sve one .,nedostajucc" bajtove.
Prvih 10 adrcsa na disku ukaL.uju na hlokovc podataka. Uz hlokove velicinc 102-l
hajta, na ovaj nacin se rnoze rukovati s datotekama velicine do I (),2-lO hajtova_ Adresa
II ukazuJC na hlok diska, zvan indirektni hlok. sa 256 adresa na disku_ Pomocu njega
se rukuje datotekama vclicine do I ()_2-\0 + 256 x I 02-l = 27 2_38-l bajta_ Za jos vccc Ja-
totekc, aclrcsa 12 ukazuje na b1uk sa aclrcsama 256 indirektnih hlokova kuji hrinu o cla-
totckama vclicine do 272.384 + 256 x 2:16 x 102-l = 67.3;) 1.2-l;) hajtova. Ako je ova
sema dvostruko indircktnih blokova jos uvek mala. adresa 13 se koristi za ukazi-
vanjc na trostntko indircktni blok koji sadrzi adrcse 256 dvostruko indirektnih hln-
kova. Koriscenjem direktnih, jcdnostruko, dvostruku i trostruko indirektnih aclresa
1110Ze Se adresirati do ]6.843.() 18 biOkOVa. S[U Lbje leOl"l'tSk.i maksimainU VCiicillll UCI-
toleke od 17_2-l-7_2:)0.-1-32 hajta. PtJstn su poLtLivaci datotcka og:raniceni na 32 bita.
gornJa granicaje ll c;tvari -1-.294.967_295 hajtOia. Slobudni b1okovi na disk.u cuvaju '.C
u povezanoj listi. Kad zatreha nov hlok. uzima se sarno sledeei blok s lisle. Zbog toga
su blokovi koji odgovaraJu istoj datotcci ra;.bacani pn clisku_
Da hi se ulazno-i;.lazne operacije s diskom obavljale efikasnijc. kada se otvori da-
toteka. njen i-cvor sc kopira u tabelu u glavnoj mcrnoriji i tamo cuva za brzo rcfcrcn-
ciranje svc duk jc datotcka utvorena_ Osim tnga. u mcmoriji se C:uva i skup nedavno
rcfercnciranih hlukova na disku. Posto sc datotcke uglavnom i':itaju sekvencijalno. :e-
:;to e dogada clajc za uzastopno refrenciranje iste datoteke pntreban i:;ti blok. Tdi :;e
cak da se ovaj efekat pojaca tako sto sistem pnkusava da uCita i slcdn'i hlok. pre nego
sto je refercnciran- da bi se uhrzala njcgova ohrada. Korisnik ne vidi svu ru nptimiza-
ciju; kada pnzove funkciju read. program se privremenu zaustavlja dok trazeni pc,claci
nc stignu u bafer_
,f

!
i


j
li::,



M


1:
r



'

j,,,
D

t
;:
'
.,
486
Pnglavlje 6: Nivo operativnog sistema racunara
Posle ovih dodatnih objasnjenja, mozcmo pec'i na opis ulazno-izlaznih operacija s
datotekama. Funkcija open tcra sistcm da u direktorijumima potrazi zadatu putanju.
Ako se pretraga zavrsi uspesno, i-cvor se ucitava u internu tabelu. Za operacije read i
write potrebno cia sistcm izracuna broj bloka iz tekuc'e pozicije u datotcci.
Adresc prvih I 0 blokova na disku uvek se nalaze u glavnoj memoriji (u i-cvoru); za
blokove viseg reda potrchno jc da se prcthodno ucitaju jeclan iii vise indirektnih blo-
kova. Operacija lseek sarno mcnja tekuc'u poziciju pokazivaca nc prenoseci podatke.
Operacijc link i unlink sada se mogu !ako shvatiti. Link analizira svoj prvi argument
da bi dosla do broja i-cvora. Zatim pravi odrcdnicu u clirektorijumu za drugi argu-
ment, stavljajuc'i hroj i-cvora prvc datotckc u nju. Na kraju, ona uvec'ava broj veza u
i-cvoru za jcdan. Unlink uklanja oclrednicu iz dircktorijuma i smanjuje za jcdan hroj
ve;:a u i-cvoru. Ako jc taj hroj nula, datotcka se brise i svi se blokovi vrac'aju na slo-
bodnulistu.
Vittuelne ulazno-izlazne operadje u "VVindowsu XP
XP podr7ava vise sistema datoteka, od kojih su najva?.niji NTFS (NT File System
- sistcm datotcka NTl i FAT (File Allocation Table- tabela za dodcljivanje datote-
ka). Prvi je nov i nacinjen je specijalnn za XP; drugi je stari sistem datoteka koji se ko-
risti za MS-DOS, a i za Windows lJ5/9X (u;: podrsku ;:a dugacka imena datoteka). Posto
je sistem datoteka !;AT zastareo. u nastavku c'emo govoriti samo o sistemu NTFS.
lmena datoteka u sistemu NTf'S mogu da budu dugacka do 255 znakova. Za njih se
koristi skup Unicode znakova, pa oni kujima je latinica strana (npr. Japanci, Inclijci i
lzradci) mogu pisati imcna datoteka na svom marernjemjeziku. (U stvari, XP svuda
interno primcnjujc skup Unicode znakuva; verzije pocevsi od Windowsa 2000 imaju
jcdinstvcnu binarnu datokku koja se mol:e upotrebljavati u bilo kojoj zemlji, a ipak se
moze koristiti i lokalni jezik jcr se svi meniji, poruke o greskama i dr. cuvaju u konfi-
guracionim datotekama razlicitim za razlicite jezike.) NTFS u imenima datoteka pot-
puno podrzava razlikovanje vdikih i malih slova (tako da se bilo_sla razlikuje od
BILO _:n:-1 ). Nazalost, interkjs Win32 API ne podrzava potpuno nvu razliku u ime-
nima datoteka, a ne podrzava je u imcnirna direktorijurna, tako da ova prednost
ne postoji u programima koji koristc modul Win32.
Kau i u UN I X-u. i ovde je datoteka linearan niz bajtova, ali moze biti duzine do
2
11
'
1
- I. Posllje i pokazivaci datoteka, kao u UNIX-u, ali nisu sirine 32 vee' 64 bita
kako bi mogli da se s duzim datotekama. Funkcijc interfcjsa Win32 API za rad
s datotekama i direktorijumima slicne su odgovarajucim funkcijama u UNIX-u, osim
sto uglavnum im<tju vise parametara i sto sc koristi Jrugaciji model zastite. Pri otvar-
anju dalotcke dDbija se identilikator koji sluzi za njeno citanje iii menjanje. Medutim,
za razliku od situacije u li;\I!X-u, identitikatori nisu mali celi hrojcvi, a standardni
ulaz. standardni iz!az i standardni izlaz za poruke o greskama moraju se eksplicitno
zadati JCr nisll unapred detinisani identitikatorima 0, I i 2 (iwzev u konzolnom reli-
mu rada, kacla ,;e unaprcd otvaraju). Glavne funkcue intcrfejsa Win32 API za rad s da-
totekama su na slici 6-3R.
6.4 Primcri opcrativnih sistema 487
I API funkcij; . UNIX
__ Pravi datoteku iii otvara postojecu; vraca
.- _ '_unlink Brise postojecu datoteku
CloseHandle Zatvara datoteku

.- _ _ iz _
: ___
1
V>frite r __
l na u__cj_<1totec1
i GetFileAttributes sta_t_ __ i Prikazuje a_tribute datoteke __ _,
j Loc:File . __ I
liJnlockFile ifcntl i Otkljucava prethodno zakljucano po9rucje da(oteke __ j
Slika 6-33. Glavnc funkcije intcrf"ejsa Win32 API za ulazno-izlazne uperacije s datotckama.
U drugom stupcu su UNIX-ovc funkcije koje im priblizno odgovaraju.
Razmotrimo ukratko ove funkcijc. Funkcija CreateFile rnozc se iskoristiti za pr:t-
vljenje nove datoteke i clohijanje njenog identilikatora. OvomAPI funkcijom mogu >e
i otvarati i postojec'e datoteke jer ne poslo.Ji API funkcija open. Nismo navodili para-
metre API l'unkcija u operativnom sistemu XP upravo zato sto su toliko brojni. Na pri-
mer, CreateFile ima sedam parametara:
I. Pokazivac na ime datoteke koju treba napraviti iii otvoriti.
2. lndikatori koji saopstavaju da li se clatotcka moze citati. rnenjati iii i jeclno
i drugo.
3. lndikatori koji saopstavaju cia li istovremeno vise proeesa rnogu da otvore
datoteku.
4. Pokazivac na bezbednosni deskriptor koji saopstava ko moze da pristupi
datoteci.
5. lndikatori koji saopstavaju sta treba raditi ako datoteka postoji iii ako ne
postoji.
6. Jndikatori koji SChave atributima. kao sto SU arhiviranje. komprirnovanje itd.
7. Jdentitikator clatotcke cije atrihute treha klonirati za novu datoteku.
S!edec'ih sest API funkcija na slici 6-3X prilicno su slicne odgovarajucim sisterr.-
skim funkcijama u UNIX-u. dve funkcije omoguc'avaju ;,akljucavanje pl-
drucja datoteke da bi sc procesu garantovalo iskljucivo pravo njegovog koriscenja.
Pomoc'u ovih API funkcija moze se napisati procedura za kopiranje datoteke, an<:-
logna verziji za UNlX sa slikc 6-35. Takva procedura (hez mchanizma za prover.r
gresaka) prikazana je na slici 6-3lJ. Onaje i napisana po uzoru na strukturu procedure
sa slikc 6-35. U praksi se, meclutim, ovo ne bi moralo raditi jer postoji i\Pi funkL'ijJ
CopyFile (koja. kao bibliotecka procedura, radi slicno ovom programu).
Z:



4SS
Poglavljc 6: Nivo opcrativnog sistema racunara
--------- ------------
XP podr:l.ava bijerarhijski sistem Jatoteka, slican sistemu datoteka u UNIX-u. Se-
parator komponenata u imenu je \ ( obrnuta kosa cna ), a nc I (knsa crt a)- relikt naslc-
den iz MS-DOS-a_ Postoji koncepcija tckuceg (rallnog) dircktorijuma, a putanje
mogu imati apsolutna i relativna imcna. Jellna znacajna razlika jc to sto UNIX do-
pusta da se si:-.tcmi datotcka na razlicitim diskovima i racunarima puvdu ujedinstve-
no stablo imena i tako sc sakrije struktura diskova od soft vera. duk XP --1-.0 nema ovo
svojst vo, pa apsolutna imena datotcka moraju poceti slovom omaeava logicki
disk (npr. C:\Hindows\\_vslcllzVJi!osta_dfl). Pocevsi od Windllwsc; 2000, i opcrativni
sistem XP ima mogucnost objedinjavanja vise sistema datotck,t, L\0 i l_:"ilX.
/' Otvori datoteke za ulaz i izlaz podataka. ;
inllandle = CreateFile("data", GENERIC_READ, 0, NULL, 0, NULL);
outllandle = CreateFile("newf ", GENERICWRITE, 0, NULL. CREATE_ALWAYS,
FILE_ ATTRIBUTE NORMAL, NULL);
/' KoprraJ datoteku. '/
do {
s = ReadFile(inllandle, baler, BUF _SIZE, &broj, NULL\:
if (s > 0 && broj > 0) VVriteFile(outllandle, baler, broj, &ocnt. NULL):
) wllile (s > 0 && broj > 0):
r Zatvori datoteke. 'I
CloseHandle(inllandle):
CioseHandle(
Slika 6-39. Lk'tl prog!ama f;t \._\)piranjt: kuji kon..,ti ,\PI \Vinduw"'a XP. Ovaj deo
jc naphan na_jc11ku C. funk.ci_jt: ni.',J...ug nivn,l k.ojc upravu :ldjmo Ja
pri ka2c:mo_
(}b'-llC API funk:.ijc ;a rad 'Jirektmijumima prikacane .-,una slici 6-c.)O, uporedo
' nJiiwvi:lJ ncqbli/:im ckvl\ ;:kntirna u Ul\L'\-u. FunkciJt: hi trcbalo da su jasne same
pl1 :.;cl
1
i.
API :unkcija

SernO'ieD!rt-;Ct'Jrj
,

MO'/SF:is
SetCurr8ntDJrect:Jry
UNIX , Znacenje
rnkcrr Pravi n0
1
i direktonjum
r t3riSe prazan dtrektoriJUirl
ODSndir Vrsi inicijalizovanJ8 Z2 odrednrca U direktorrjumu
re2dd1r (';ita siedecu odrear1icu J direktorijumu
Premesia datoteku iz j>?dnog direktorijuma u drugi
chdir tekGCi radni
.Sliha (J];l-d\C \Vin_-,2 .\P! ict rad ,Jir.:ktPri_jiln:ima. U drugnm stupcu su najhli7i
uh.ul!J...o
6A Prirncri opcrativnih sistema 489
XP ima mnogo slozcniji bezbednosni mchanizam od veCine UNIX sistema. Iako
postojt: stotinc bezbcdnosnih API funkcija, opsti utisak sc moze stcCi na osnovu sledc:-
ceg kratkog opisa_ Kada se korisnik prijavi, opcrativni sistem njegovom proccsu daje
pristupni zcton (engL access token). Pristupni zeton sadrzi korisnikov bczbednosr1i
idcntifikator (engL Security ID, SID), listu bezbcdnosnih grupa u koje korisnik spada,
eventualne spccijalnc privilcgije korisnika i jos nekoliko drugih stavki_ Pristupni zcton
postoji da bi se sve informacijc u vezi s bezbednoscu sku pile na jcdnom lako dostm-
nom mcslu. Svi pmcesi koje generise ovaj proces nasleduju isti pristupni zcton.
Jed an od parametara koji se moze gcncrisati pri pravljcnju bilo kog objckta jeste i
njegov bczhcdnosni dcskriptor (engL security descriptor). Bczbednusni deskriptx
sadrzi listu za kontrolu pristupa (eng!_ Access Control List, ACL). Svaka odredni:a
u toj listi odredenom korisniku iii grupi dozvoljava iii zabranjuje izvestan skup
racija. Na primer, datoteka moze da ima bezbednosni dcskriptor koji nalazc da EloJ-
nura nema pristup datotcci, da Ken rno/.e dajc cita. da Linda moze daje cit1 i
da upisuje podatke u nju. ada svi clanovi grupe XYZ mogu samo da saznaju kolito
je dugacka.
Kada proces pokusa da obavi neku operaciju nad objektom slu/.eci se identitikat:J-
rorn koji je dobio kada ga je otvorio, bezbednosni mehanizam uzima pristupni zeton
procesa ina osnovu njcga pocinjc rcdom da pretrazuje ACL listu. Cim u njoj naick 1a
pozivaocev SID iii najcdnu od pozivaocevih grupa. pristupna dozvola kuju prona.1e
u toj odrednici dctinitivnaje_ Zbog togaje uobicajeno da se u ACL listi odrednice klje
zabranju_ju pristup stavljaju pre odrednica koje ga dopustaju, tako da korisnik komeje
zabranjen prist up ne mozc cla se provuce na mala vrala ako je clan neke grupe kop_j
jc pristup dozvoljcn. Bezbnlnosni deskriptor sadrzi i podatak koji se koristi za pru-
veru pristupanja objcktu.
Razmotrimo sada ukratko kako su u Windowsu XP implementirane datotcke i lli-
rcktorijumi. Svaki disk je staticki podeljcn u nezavisne logicke cliskove, koji su icto
sto i particije diska u UNlX-tL Svaki cvrsti disk sadrzi mape bitova, datoteke, dirck-
tori_jume i druge strukturc koje su potrebne w rad s podacima. Svaki hard disk jc vr-
ganizovan kao lincaran niz klastera (engl. clusters), pri cernu _je velicina klastcra
liksna ;_a svaki volumcn i krece sc izmedu 512 bajtova i h4 KB. zavisno od velici1c
samog logickog diska. Klasteri sc referenciraju prcko njihovog rastojanja od pocct.;a
logickog diska i pri tom se koriste fl"t-bitni brojevi_
Najvaznija struktura rodataka na svakom logickom diskuje glavna tabela datote-
ka (engL Moster File Tuhlc, MF7). koja sadrzi po jeclnu odrednicu za svaku
i svaki direktorijurn logickog diska. Ovc odrednicc su analogne i-cvorovima u UNI"<-
tL Tabela MFT jc dawtcka. pa se moze smt:stiti bilo gcle unutar ltlgickog ,Jiska, cimese
izbegava problem koji postoji u UN!X-u kada se los blok diska nade usred i-cvoro1a .
Tabda MFT prikazana je na slici 6-41. Ona pocinje zaglavljem sa informacijana
o logicknm disku. kao stu su pokazivaci na osnovni clirektorijum, na datntcku za f,O-
kretanjc sistema, na datnteku s listom losih blokova, na rnesto za aclministriranje li:tc
slohudnih mesta itd_ Poslc zaglavlja rcdaju se odrednicc. po jedna za sva!--u
c;

i
,\;';



d,
ftW-.
490
Poglavlje 6: Nivo operativnog sistema racunara
iii dircktorijum, vclicine I KB, osim kadajc velicina klastera 2 KB iii vi:k Svaka od-
rcdnica saddi sve metainformacije (administrativne informacijc) o datoteci iii dirck-
torijumu. Postoji vise formata, od kojih je jcdan prikazan na slici 6-41.
Prvo polje sadrzi standardne infonnacije, kao sto su vremenske oznake potrebne
za ostvarivanje cvrstih vcza, hit ,samo za citanje' i arhivski bit itd. To polje je fiksne
duzine i uvek postoji. Polje za ime datoteke je promenljive duzine (najvise 255 Uni-
code znakova). Da bi takve datoteke bile dustupne i 16-hitnim programima, one
mogu imati i svoje MS-DOS-ovo ime koje se sastoji od osam alfanumerickih znako-
va, iza kojih opciono dolaze tacka i nastavak, duzine najvise tri alfanurnericka znaka.
Ako pravo ime datoteke odgovara pravilu 8+3 kojc vazi za imena u MS-DOS-u, ne
koristi se sekundarno MS-DOS-ovo imc.
I I
c------;],
MFT
zaglavlje
Glavna
label a
datoteka
Standardne MS-DOS-ovo
1nformacije I me datoteke 1me Bezbednost Podaci
MFT odrednica za jednu datoteku
Stika 6-41. Glavna tabda datotcka u Windowsu XI'.
Zatim do laze bczbcdnosne informacijc. Ovo polje je, zakljucno s verzijom XP 4.0.
sadrzalo aktuclni bczbednosni deskriptor. Pocevsi od Windowsa 2000. svc bczbed-
nosne informacije objedinjcnc su ujedinstvenu datoteku, pa poljc za bczbednost ';ada
samo ukazuje na odgovantjuc'i Jeo te datuteke.
Kada je datoteka mala, svi njeni podaci sc smdtaju u MfT odrednicu. pa se ne
moraju traziti na disku. Takva Jatotcka ;,e wve dostupna datotcka (engl.
imnwdiale ji/e) (Mulknder and Tanenbaum, 1984). Kada je datoteka ncsto vee a, ovo
poljc sadrzi pokazivace na klastere s njenim podacima ili cesce. na nizove klastcra.
tako da podatak koji se sastoji od rednog hroja (pocetnog) klastera i duzine (ukupnog
hroja u nizu) moze da predstavlja proizvoljnu kolicinu podataka. Ako jedna l\'IFT od-
rednica nijc dovoljno velika da primi sve neophodne podatke. na nju se mogu n<tdo-
vezati jedna ili vise dodatnih odrednica.
Maksimalna vdicina datoteke je 2
6
-+ bajtova. Da biste dobili prcdstavu o velicini
takve datotcke. zamislitc je kao niz binarnih cifara. od kojih i 0 i l zauzimaju po 1 mm
duzine. Takav niz je dugacak 2
7
mm. lKlnosno 15 svetlosnih godina. pa bismu ga
mogli iskoristiti kao laso da najblizu zvezdu Alfa Kentaura privucemo Zemlji.
6.-t Primeri operativnih sistema 491
Sistem datotcka NTFS ima i mnogc druge zanimljive osobine, ukljucujuCi kompri-
movanje podataka i tolcrisanje gresaka pomocu elementarnih (atomicnih) transakcija.
Dodatne informacije o njemu mozete potraziti kod Russinovicha i Solomona (2005).
6.4.4 Primeri upravljanja procesima
UNIX i XP ornogucavaju deljenje posla izmedu vise procesa koji se mogu izvrsa-
vati (pseudo)paralclno. medusobno komunicirajuci u stilu proizvodac-potrosac. o
komc smo ranije govorili. ll ovom odeljku govoricemo o tome kako se procesima
upravlja u svakom od pomenuta dva sistema. Oba sistema podrZ.avaju i paralelizam
programskih niti unutar jednog, procesa, pa cerno govoriti i o tome.
Upravljanje proccsima u UN1X-u
Proccs u UNIX-u u svakom trenutku sisternsklllll funkcijom fork mol:c da napravi
potproces koji je njegova verna kopija. Prvi proces se zove roditelj, a drugi dcte ili
potomak. Ncposredno posle izvrsenja sistemske funkcije fork, dva proccsa su potpu-
no identicna. cak dele i istc deskriptore datotcka. Posle toga. svaki ide svojim putem
i radi sta hoce, nczavisno od onog drugog.
U mnogim slucajevima proces potomak se na odredcni nacin poigra s deskriptori-
rna datoteka i tada pozove sistcmsku funkciju exec. kojom svoj program i podatke za-
meni programom i podacima pronadenim u i-cvrsnoj datoteci zadatoj paramctrima
funkcije exec. Na primer. kada k01isnik na terminalu upise komandu xyz. komandni
interpreter izvrsava funkciju fork da hi napravio proces potomak. Zatim taj proces po-
tomak izvrsava exec da bi pokrenuo program xy;.
Dva proccsa sc izvrsavaju paralelno. ako roditcljski proccs pozeli da saceka
zavrsctak proccsa-potomka da hi nastavio S\'O]C izvrsavanJC. Akn roditelj /elida ceka.
on poziva sistemsku funkci.JU wait iii waitpid, sto izaziva njegovo privremeno zausta-
vlpnjc dok se proces-potomak ne /,avrsi pozivajuci funkciju exit. Kada se proces po-
tumak 1avrsi. roditelj,ki proces nastavlja rad.
Procesi mugu da po;.ivaju procecluru fork koliko god pula hL'c'e. Cime nastaje stahlo
procesa. Na slici 6-42. na primer. proces .-\je dvaput pozvao proceduru fork, pa su na-
stala dva potomka. B i C. Zatim je proccs JJ takode proccduru fork dvaput. a
proces c jedanput, ;bog cega jc nastalu stablo ;,a sesl proce;,a.
A Prvobitni proces
B C l Deca procesa A
D E - ----- Unuc1 procesa A
Stika 6-42. Stablo u UNtX-u.
........-
.

,.t
"'

f:
492
Poglavlje 6: Nivo operativnog sistema racunara
Procesi u UNIX-u mogu medusobno da komuniciraju pomocu strukture zvane
meduprocesni kana! (engl. pipe). MeLtuprocesni kana! (cev za podatke) vrsta baf'era
je u koji jedan proces upucuje tok podataka. a drugi ih iz njega uzima. Bajtovi se iz
meduprocesnog kanala uvek uzimaju onim redom kojim su u njega upisivani. Proiz-
voljan pristup podacima u kanalu nije nwguc. l\lleduprocesni kanali ne vode racuna o
granicama poruka. pa ako jedan proces u cetiri navrata upise po bajtova, a drugi
proces odjednom ucita 5 12 bajtova, taj drugi proces nece primetiti da su podaci u
bafer uncti kao cetiri porukc.
U S ystemu V i Solarisu procesi mogu mcdusobno da komuniciraju i na drugi nacin
- pomocu redova za poruke (engl. message queues). Proces mo?.e da napravi nov red
za porukc iii da otvori postojeci red pozivom funkcije msgget. Poruke se u red mogu
slati pozivom funkcije msgsnd, a iz njega preuzimati puzivom funkcije msgrecv. Poru-
ke kojc sc salju na ovaj nacin razlikuju se po vise aspckata od podataka poslatih preko
meL1uprocesnog kana !a. Kao prvo, gran icc poruka ostaju ocuvane, duk je sadr:laj cevi
samo tok bajtova. Drugo, poruke imaju svoje prioritete. pa hitne mogu da sc prcmeste
ispred onih manje va7.nih. Trec'e, poruke su a pozivom funkcijc msgrecv
mo?.e se zadati odredeni tip ukoliko se to z.eli.
Kao jos jedan mehaniwm medusobne komunikacije procesa moze se iskoristiti
mogucnost svakog proce'ia Ja deli odredeno podrucje svog adresnog prostora. UNIX
radi sa ovom deljenom memorijom tako sto prcslikava istc stranicc u prostor virtuel-
nih adresa svih procesa koji je dele. Na taj nacin iz.mcna koju jedan proces unese u
deljeno podrui'jc odmah JC vidljiva drugim procesima. Ovim mchanizmom se mozc
obez.bediti vrlo veliki protok podataka izmedu procesa. Sistemskc funkcije koje sc
odnose na deljcnje memorije no:-,e imena kao sto su. npr. shmat i shmop.
Jos jedna karakteristika Systema V i Sularisa jesu njihovi semafori. Oni racle na
nacin koji je vee opisan kroz primers proizvodacem i potrosacem.
Mugucnost koju imaju svi UNIX sistemi usklackni sa POSIX-om jesu procesi ..,
vise pi'Ogramskih niti (engl. threads). Pmgramske niti odgovaraju jcdnostavnim
procesima koji dele ZCljt:dnicki adresni pros tori SVC StO je povczano S njim ( dakle, de-
skriptorc datotcka, prumenljive okruzenja i stalne tajmere). Medutim. svaka nit ima
sopstveni prugramski brujac. sopstvene regisrre i sopstveni stek. Kada se programska
nit privremeno zaustavi (npr. dok sene operacija iii se dogocli
nesto drugu ), drugc niti istog procesa i daljc mugu da sc Dve niti is tog pro-
cesa koje rade kao par proizvodac-potrosac lice na dva jednonitna procesa koji dele
memorijski segments bal'en1m, ali nisu istu sto i oni. Razlike se ogledaju u tome sto
u drug:om slui'aju svaki proces ima sopstvcne deskriptore datoteka itd., dok se u
prvom slucaju svc ovc stavke dek. U nasem ranijem primeru
upoznali smo se s koriscenjcm Javinih prog:ramskih niti. Javin izvrsni 'istem cesto za
svaku od svo_1ih programskih niti koristi po jt?dnu prograrmku nit operativnog siste-
ma. a! i to nijc oba \ eznu.
Kao primer situaciJC u kojoj programske niti mugu da budu kmisne
Web server. 'vVeb -;erver mol:e da ima kd sa cesto tra/.enim Web stranama u giavnoj
memmiji .. A.ko se 7ahteva Web strana koja je vee' u kdu. ona se odmah isporucuje.
6.4 Primeri operativnih sistema
493
U suprotnom, ona sc prcuzima s diska. To. nazalost. prilicno traje (najcesL'c 20m,), i
tadaje proces blokiran i ne moze da opsluzi nove zahteve. cak ni za Web strane L)jc
se nalaze u kt:Su.
Resenje je da se serverski proces podeli u programskih niti koje dele isti l:d
s Web stranama. Kada se jedna nit blokira, druge niti mogu cia obradujunove zahte;c.
Da hi se izbeg:lo blokiranje i bez pomoCi programskih niti, moglo bi se generisati v1se
serverskih procesa. alibi za to verovatno bilo potrebno napraviti vise kopija kesa, ito
je rasipanje dragocene memorije.
UNIX-ov standard za programske niti su programske p-niti (engl. pi/treads iii
POS!X threads - prograrnske niti prema standardu PO SIX, P l 003.1 C). One sadrze
funkcije za rad s nitima i njihovo sinhronizovanje. Nije delinisano da li programsk1m
nitima upravlja jezgro iii se potpuno nalaze u korisnickum prostoru. Najcesc'e kil'i-
scenc funkcije za rad S programskim nitima prikazane Sll na s]ici 6-43.
I za r.;;d s
! programskim nitima
1 pthreadcreate
pthread __exit
pthread_join
pthread_mutex_,init
prhread_mutex._destroy
: ----- -
1
pthread_mutex lock _
'pthread_mutex_unlock
- --
pthread _ cond _in it
cond _destroy
'pthread_cond_wa1t
I -
I Znacenje
_j Pravinovu programsku rllt u adresnon1 prostoru pozivaoca
' Zavrsava pozvanu nit
Ceka da se nit zavrsi
Pravi nov muteks
Ukida muteks
i Zakljucava
: Otkljucava muteks
'
Pravi promenijivu uslova
Ukida promenljivu uslova
, Ceka na prorneniiivu usiova
: ()slobada jednu nit koja ceka na promenljivu us leva
Slika 1>--B. o,novnc funkcijc !J rad; f''"-'gramskim nitima ['rema slanJardu POSIX.
R:J;motrimu ukratku tunkc"ije za rad s programskim nitima prika;ane na ':lici h--13.
Prva funkci_ja. pthread_create. pravi novu nit. PGsto se funkcija uspes11<' zavrsi. u
adreo;nom prnstoru po;ivaoca izvr<ava se jcdna Il<JVa prngramska nit.
nit kuja je obavila posao zbog kug je napravljena i /.eli tLt sc zavrsi. up11cuj:: pm1 v
funkcije pthread_exit. Pro!.!ramska nil moLe ceLtti da se zavr\i drug:t nmgramska 1 it
upul'tquci poziv pthread_Join. Ako .se nit na k,Jju sc cek:t vcr..' ;:avr\ila. pmccdUi'a fun;_-
cija pthreadjoin odmah se za\T;ava. U ..,uprot;wrn Iiila ''-' bltlkira.
Progran1skc niti :-.:c rnt)gu pon;oCu brtt\'a 2vanil: n1uL:ksi nu-
re.r,s). \lutd.s J'l' praviiu pazi na nek1 rc.urs, kao \toje bai"c:r knji dele the program-;l.e
niri. Da hi".' usiguralo d:t ujedJhJ!ll trcnutku s.unujedna nit rristup<ickljenorn rc:.su;st,
od pmgram,kih niti '" clcckuj:: da zakl.jucaju mutcks pr.? ncgo \to pridu re:-ur:,u ida
pPIWvu Llikljul:aJU kada s t-e-;ursom posau. Dok god s\e niri p(v<tnju ovaj proto-
ko!, ne pnstuje 11sluvi ;a stanjc utrbvanja. Mutcksi su slicni bin:1rnim
tj. semat()rima ku.Ji mogu imat: ,amo vr:ednosti () i l. !me .. mutcks" je ,:J
r
-
'
'
. .
.
I


It
w


r.
!,,
i
it
;!

f:;;
'1,
,..._
494
Poglavlje 6: Nivo opcrativnog sistema racunara
engleskog izraza ,mutual exclusion" ( uzajamno iskljucivanje) jer ova brava obczhcLtu-
je da u jcdnom trcnutku sarno jedan od potcncijalnih korisnika koristi resurs.
M uteksi se mogu praviti i ukidati pomoeu funkcija ptilread_mutex _in it i
ptilread_mutex_destroy. Mutcks moze biti zakljucan ili otkljucan. Kada programska nit
treba da zakljuca otkljucani muteks (funkcijom ptilread_mutex_lock), hrava se zaklju-
cava (postavlja na l) i nit nastavlja da se izvrsava. Medutim, kad programska nit po-
kusa da zakljui":a vee zakljui":an mutcks, ona sc blokira. Kada nit koja je zakljucala
muteks zavrsi posao s deljenirn resursom, ocekuje sc da otkljuca muteks pomoeu
funkcije ptilread_mutex_unlock.
Muteksi su predvideni za kratkotrajno Lakljucavanje (npr. ll cilju zastite deljenc
promenljive). Oni nisu namcnjeni za dugotrajno sinhronizovanje (npr. za cckanje da
se oslobodi jedinica trake). Za dugotrajno sinhronizovanje predvidenc su promenlji-
vc uslova (engl. condition variables). One se prave i ukidaju pozivima funkeije
ptilread_cond_init i ptilread_cond __destroy.
Promenljiva uslova se koristi tako sto jedna programska nit ceka na nju, dok druga
signalizira. Na primer, kada programska nit otkrije da jc jedinica trake koju hoee cia
koristi zauzeta. i1.vrsiec proceduru pthread_cond __wait nad promenljivom uslova za
koju su se sve programske niti slozile da je povezana s jcdinicom trake. Kada nit koja
trcnutno koristi jedinicu trake obavi pusan (rnozda i posle vise sari J. ona koristi signal
pthread_cond_signal da bi oslobodila tacno jednu programsku nit koja ceka na tu pro-
mcnljivu uslova (ako takva nit postoji). Ako na oslobadanje ne ccka nijedna pro-
gramska niL signal sc gubi. Promenljive uslova ne spadaju u scmafore. Postoji jos
nekoliko operacija s prograrnskim nitima, muteksima i prorncnljivama uslova.
Upravljanje procesima u Windowsu XP
XP podrzava vise procesa koji medusobno mogu kumunicirati i sinhronimvati se.
S vaki proces sadrzi harem jednu programsku nit koja pak sadrzi bar jedno programs-
ku vlakno (jednostavnu nit). Procesi. programske niti i vlakna zajedno predstavljaju
prilicno kompletan skup alatki za paralclan rad, kako na racunarima sa sarno jednim
proccsmom. tako i na onima s vise proccsora.
No vi pmccsi se prave kmiseenjem API funkcije Create Process. Ona ima l 0 para-
metara. ml kojih svaki ima vise opcija. Ovakva organizacija ocigledno je mnogo kom-
plikovanija od seme u LJNIX-u. gde funkcija fork nema parametara. a fu!lkcija exec
ima samo tri: pokcv.ivace na ime datotcke koju rreba izvrsiti. niz (rasclanjenih) para-
metara komandne linije i nJakovnc nizove okruzenja. Deset parametara funkcije
CreateProcess su, najkraee reeeno, sledeei:
I. PoLuivac na ime izvrsne datoteke.
2. Sama kumandna linip (nerasclanjena).
3. Puk,vival' na bezbednosni deskriptor procesa.
4. Pokazivac na bezbednosni deskriptor inicijalne programske niti.
5. Bit koji saopstava da li nov pnJCes nasledujc identitikatore svog tvorca.
6. Razni inclikatori (npr. rCZ.im za obradu grcsaka. prinritet. otkrivanje i ispra-
vljanje grdaka, kunzole).
6.4 Primcri operativnih sistema
495
7. Pokazivac na znakovne nizove okruzenja .
8. Pokazivac na ime tekueeg radnog direktorijuma mJVog procesa.
9. Poka1.ivac na strukturu koja opisujc inicijalni prozor na ekranu.
10. Pokazivac na strukturu koja pozivaocu vraca 18 vrednosti.
XP ne stvara hijcrarhiju tipa rocliteU--Dete, niti neku drugu. Svi procesi su od pocet-
ka ravnopravni. Medutim, posto jedan od l g para me tara koji sc vraeaju proccsu tv or
cu preclstavlja identifikator novog procesa (i omogueava znatnu kontrolu nad njiml,
postoji irnplicitna hijcrarhija podataka o tome ko ima i":iji identitikatur. Iako se iden-
titikatori ne mogu tek tako direktnu prosledivati drugim procesima. postoji nacin ua
proces podesi identi tikator prema drug om procesu i tada mu ga preda, tako da pome-
nuta implicitna hijerarhija procesa ne mora da traje dugo.
Svaki u Windowsu XP napravljen je tako da ima samo jcclnu programsku
nit. ali kasnijc moze da ih napravi vise. Pravljenje programske niti je jednostavniJe
ncgo pravljenje procesa: funkcija Create Thread ima samo sest parametara: bezbednm-
ni deskriptor, velicinu steka, pocetnu adresu, parametar koji detinise korisnik, poce:-
no stanje programske niti (spremna za rad ili blokirana) i identitikator programske
niti. Jezgro je tvorac programskih niti, pa zato zna za sve postojeee niti (drugim rec.-
ma, programske niti sene implcmentiraju iskljucivo u korisnickorn prostoru, kao stD
je to slueaj kod nekih drugih sistema).
Kadajezgro rasporcc!uje izvrsavanja, ono za slcclccc izvrsavarije nc bira samo prc-
ces, vee i programsku nit unutar tog procesa. To znai":i da jezgro u svakom trenutkJ
zna koje suniti spremne za rad. a koje su hlokirane. Prugramske niti su objekti jezgr<.,
pa imaJU bezbednosne deskriptore i identitikatore. Posto -;e iclentitikator
niti moze pros led ill drug om proccsu. mozc nastati situacija cia jedan proces upravljct
programskim nitima drugog procesa. Ova osobinajc. na primer. korisna programinu
7a otkrivanje i ispravljanje grdaka.
Programske niti u Windnw-;u XP srazmcrno su skupe jer za njihPvo ukljucivanjc.
odnusno iskljucivanje. treba uci u jezgro i ponovo iz njega izaei. Da bi sc obezhedio
sawim jednostavan peseudoparalelizam. u \Vindowsu XP su smisljena pmgramska
vlakna (engl.jibers) knja lice na programske niti. ali ih program koji ih pravi (ili nje-
go\' izvrsni sistem I rasporeduje u korisnickom prostoru. Svaka programska nit moze
da ima vise vlakana. isto kau proces moze da ima vise progamskih niti. ali kada se
\ lakno l(1gicki hlokira. ono o,c s[unu svp;tava u red blokiranih vlakana i bira se drugo
v laknu La iLvrsavanjc u kontebtu svuje prugramskc niti. Jezgro svesno ove pro
mcne jl'r seniti dalje izvrsava. iaku to mo/e hiti prvo krozjednu vlaknu. a zatim krm
drugo . .Jezgru se brine o prucesima i programskim nitima -- vlakna ga ne zanimaju
Vlakna dubro dodu Ltd;., se. na primer. program koji sam upravlja svojim program-
skim nitima prcnosi na opcrarivni -;islem XP.
Procesi medusobno mogu da komunciraju na veoma razlicite nacine. sw obuhvata
komunikacione kanak. imcnovane cevi. postanske sanclucicc, uticnice. pnzivanje
udal_1enih procedura i dciJenje datl1tcka. Komunikcioni kanali (eevi) imaju jedan od
cl\ a radna reiima: re!:im bajtova i rezim poruka. koji se bira u trenutku prv!jenja ka-
naia. Kcmali koii rade u rcimu bajtuva rade na isti nacin kao u UNIX-u. Cevi kojc
r
l
il! ..
!I







:!f\t
::r.
i




t

;-.:

..
l";
F:

f:
(.:

};;
.
496
Poglavlje 6: Nivo operativnog sistema racunara
rade u rdimu poruka rade slicno, ali cuvaju granice poruka, tako dace cetiri upisa od
po 128 bajtova hiti procitani kao cctiri 128-bajtne poruke, a ne kao jedna 512-hajtna
pnruka. stu bi se dogodilo u rezimu bajtuva. Postoje i imenovane ccvi (imcnovani
komunikacioni kanali) koje takode rade u isla dva rdima kao i obicni komunikacioni
kanali. Imenovane cevi se mogu koristiti i u mrdi; obicne ne mogu.
Postanski sanduciCi (engl. muilslots) deo su Windowsa XP koji ne postoji u
UNJX-u. Oni su u izvesnom smislu slicni komunikacionim kanalima. Kao prvo, oni
,ujednosmerni, dok su kanali dvosmemi. Mugu se koristiti i u mrezi, aline garantuju
isporuku. Najzad, oni posiljaocu ornogucavaju da poruku posaljc difu;,nu, svima,
umesto samo jednom primaocu.
Uticnice su slicne komunikacionim kanalima, osim sto povczuju procese na raz-
licitim racunarirn<L 1\ledutim. one sc mogu iskoristiti i za proccsa na
is tom racunaru. U pincipu, obicno jc ndto povoljnijc ako sc procesi unutar is tog racu-
nara povczu uticnicom, umcsto pomocu komunikacionog kanala i li imcnovane cevi.
Pozivanje udaljene pmcedure je naCin da proces A nalozi procesu H da pozove pro-
ceduru u svom adresnom prostoru ida rczultat vrati proccsu A. Ovde postoje razlicita
ograniccnja u poglcdu parametara. Na primer. bcsmisleno jc drugnm procesu pro-
slcdivati pokazivac.
Na kraju. procesi mogu da dele mcmoriju prcslikavajuci sc i'itovremeno u istu da-
totcku. Sve stu jedan procc;, tad a upisc, pojavljujc se u adresnom prostoru drugih pro-
ccsa. PomoL'u ovog mehanizma deljcni bafcr koji smo iskoristili u primcru s
pruizvodaccm i potrosaccm nlO'zc sc lako implemcntirati.
Kao sto ohct.bedujc brojnc mehaninne za medusobno komuniciranjc procesa, XP
uhcthcdujc i hrojnc nacinc sinhronimvanja. knji nbuhvataju .'icmafore, mutckse, b..ri-
ticna podrucja i dogadaJC. Svi ovi mehanizmi radc s nitima, a ne s procesima, pa kada
sc jedna programska nit blukira scmaforom, ostale niti tog procesa (ukoliko postoje)
nisu pmcmccenc i mogu se izvrsavati.
Semafm sc pravi API funkcijom CreateSemaphore koja ga mole inicijaliwvati na
L.adatu vrcdnust i detinisati mu maksimalnu vrednosL Semafori su objekti jezgra i
zato imaju be;,bcdnosne deskriptme i idcntilikatore. ldentitikator semafora mole se
duplirati funkcijom DuplicateHandie a njegova kopija proslediti drugom procesu, tako
da se vise proccsa moze sinhmnizovati na istom scmaforu. Pm,toje funkcije za up i
down. mada imaju pomalo imena: ReleaseSemapl1ore (up) i WaitForSingleOb-
ject (down). Funkcijom WaitForSingleObJect moguce je zatra/iti .Japnaut", tako da -.e nit
pozivalac odmah oslohada, cak i ako scmafor ostane na nuli (iaku ovakvi tajmcri po-
novo dovode do utrkivanjaJ.
Mutcksi su takode objekti jczgra koji s.luzc za sinhronizovanje, ali su jednostavniji
od semafma jer ncmaju brojacc. To su u stvari brave, sa API funkcijama za zakljuca-
vanje ( WaltForSingleObject) i ntkljucavanje ( ReleaseMutex J. Slicno scmaforima, i iden-
tiiikaturi muteksa mogu se duplirati a knpi1e prosledivati drugim prucesima, tako da
programske niti iz razlicitill procesa mngu da pristupaJU istom rnuteksu.
Treci mchanizam sinhronizovanja zasniva -,c na kriticnim podrucjima (engl. cri-
tint! sl.'cti"ns ). On je slican mutcksima. osim sto jc lokalan za adrcsni prustor pro-
gramske niti koja ga je napravila. Pnsto b..riticna pudrucja nisu ohjekti jezgra, ona
6.5 Sazetak
497
nemaju idcntitikatorc, niti bezbednosne deskriptore i ne mogu se prosledivati izmeL1ll
procesa. Njihovo zakljucavanjc i otkljucavanje <,e obavlja funkcijama EnterCriticaiSec-
tion i LeaveCriticaiSection. Posto se te API funkcije izvrsavaju iskljucivo u korisnickom
prostoru, ovaj mehanizam radi mnogo brze od mutcksa.
Poslednji mehanizam za sinhronizovanje koristi objektc jezgra, zvane dogadaji
(engl. events). Funkcija WaitForSingleObject omogucava da nit ceka na neki clogadaj.
Programska nit moze da oslobodi jednu nit koja ccka dogm1aj tako sto ce pozvati
funkciju SetEvent ili da oslobodi sve niti koje cekaju dogadaje tako sto cc pozvati
funkciju Pulse Event Dogadaji se javljaju u vise verzija i imaju rnnogo opcija.
Dogadaji, muteksi i semafori mogu se imcnovati i smestiti u sistem vcrzija dato-
teka, isto kao i imenovane cevi, Ova ili vise dogadaja mogu se sinhronizovati tako sto
ce otvoriti isti dogadaj, muteks ili semafor-nije potrebno da iko od njih pravi nov ob-
jekat ida kopijc njegovog idcntilikatora salje drugima. madajc i takav pristup moguc.
6.5 SAZETAK
Operativni sisem se mole smatrati interpreterom nekih komponenata arhitckturc
kujih nema na nivou !SA. Glavne od njih su virtuelna mcnwrija. vinuelnc ulazno-if-
lazne instrukcije i srcdstva za paralclnu obradu podataka.
Virtuelna memorija jc kumponenla arhitcl-turc kuia umogucava prograrnima cia
koristc adresni prostor veci od Jizicke memorijc racunara iii cia uhczbcc1uje stalni.
fleksibilan mehanizarn zastite i dcljenja rnemorij.:. Virtuelna mcmorija sc mo7e im-
plemcntirati cistim stranil'enjcm, cistim scgmcntiranjem i kumhinacijom jcdnug i
drugog. Pri cis tom stnniccnju, adrcsni prostor se deli na virtuelne stranice jednakc
vclicinc. Ncke od str<mica 'e prc.-.likavaju u 1-izid .. c C>kvire za srr:mice. Drug:c se nc
preslikavaju. Referencu na prcslikanu stranicu, :\1:\ILI jcdinica prnudi u ti-
zicku adresu. Rckrcnca na stranicu kuja nije prcslikana i;a/iva grc:Sku
1 Pentium-+ 1 L:JtraSP1\RC If! imaJU :\!C\!L' jcdinicc' k<ljc poJr:favaJU \ irtucl-
nu mcmortiu i straniccn_1e.
Najva/nija ap.;tLJkcija koja .,;c til:c ul:tZll<'-illa;nih opcraLija OH'lll nivuu je,te
datoteka. Datut.:-kaje ntz haJlOva ili logil:b..ih opi-..:t sc mui'v i::itati i menjal! ada :,e
;na kako radc disk<JVi, lrake i drugi ul:tzrw-izlalni utctLji. ]):Jl<>lckama sc muze pri-
stupati sekvcrlL'ij:dtJU. nq>o-,rcdrHl prck,J hruja Zc'ijenug ;apl'<l i!i ncposrcdno Jlll!TlOl'u
kljuca. Za grupis.tn.Je tLtltJtcka nmpt se dirc>.torijumi. Dat,)teK<: nwgu hiti
u uz<tstopnttn ,ekrorima na cbb..u ili u sd,t:;rima ra/hdcanim pu njernu. c:
drugunt ,]u(aju, k11ji jc uohicajcn za o;mesl<ll:Je pmbtaka na c',rsti disk, potrchnc :;u
udrL'Ucne strukturc podataka da bi sc ll<t disku svi hL'k'-wi Jatoteke. Velil'rna
sll)hodnog na di:.ku -..;e pratili pnnH_'-Cu i!i hlhJ'1a.
C\:stu je pmJr7atEI i paralclna o!'rad<t impicrnct<tit:tna taku ;ruse rad ':i;.c
proccs<'i'<l -,imulira dcijc'nj..:m prPce-.,Jrskog vrcmcn:tjCtluug pt\iLC'iora. i\ck:HHmlisa-
na inlc'rakcij:t \ pr<Jc..:sa mu;;e -:!a don:dc Ju -,tanja utd,.iv:t.Jj.t. D<t hi s2 rrohlcm
olkloniiJ, U\ udc \"1'-;!lL)\ ni \Jhjc:hti za j..._: -- Jsla\ prink'!" jc -,enlcl-
for. Pu1nncu problcini rip.t pnli/\tK!JC- p<ltru;,.Jl: ...
i ckgantnu.
R
r,


r
'

I" '
I; .
p
.

"



f



!f
" ,_,_





:i
18
'

ll
i'

[;

v [t,

!!,:;
15.5
L_
498 Poglavlje 6: Nivo opcrativnog sistema rai'unara
Dva primera slozenih operativnih sistema su UNIX i Windows XP. Oba podrzava-
ju straniccnje i clatotcke prcslikane u mcmoriju. Takocle, oba podriavaju i hijcrarhij-
skc sisternc datotcka s clatotekama koje su nizovi bajtova. Na kraju, oba podrzavaju
proccse i programske niti, i obczbeduju nacine da ih sinhronizuju.
l.
2.
3,

VEZBANJA
Zaslo opcrativni sistem intcrprctira samo ncke od instrukcija treccg nivoa, dok mi-
kroprogram intt:rpretira sve instrukcijc nivoa lSA'
1
Racunar ima 32-bitni pros tor virtuelnih adrcsa u kome se moze adrcsirati svaki bajt.
Velie ina stranice je 4 KB. Koliko stranica postoji za ceo prostor virtuclnih adresa'
1
Da li je ncoplmdno cia vclicina stranice budc stepen brop 2'' Da li bi sc tcorijski
mogla implernentirati, na primer, stranica vclicine 4000 bajtova'
1
Ako bi mogla. da
li bi to bilo prakticno'
1
Virtue ina memorija ima stranicu velicine 1024 n::ci. osam virtuclnih stranica i cdiri
lizicka nkvira za stranice. Tabcla stranica izgleda ovako:

-------,
___ll_elna
0
strani:_ir za
3
st.ranicu 1

nije u memori;l
--- ----------
1
3 nije u glavnoJ memoriji

4 2
: . - e>je o
7 nije u glavnoj memoriJi
.
a) Sastav itc Ji>,tu svih virtuclnih ad:csa kojc ce dovcsti do gre;kc promasivanja stra-
nice.
b) Kujc tizickc:: adresc ndgnvaraju virtuelnim adrcsama 0, 372S. 1023. ltl24, 1025.
7800 i ..j.()l)6'
1
5. Racunar inn 16 stranica prostora virtuclnih adrc::sa. alt ,amo cctiri uk.v ira za slranicc.
Menmrija je 1n pucetku prama. Program pristupa \ irtuclnim stranicarua sleJccim
redum:
0, 7, 2, 7, 5, 8, 9, 2, 4
a) Kojc rekrcnc<: cc izazvati rn,ma;ivanje stranice po algoritmu LRU'1
bi Kujc ce i1.azvati ;tranice rll alg"ritmu FiF0'
1
6. U odcljku 6.I.-+ prikaDm JC algoritam za impkmcntiranjc FIFO stratcgijc zarncnc
;tranica. Smislik clikasnijc re:::enjc. !-'nnw<': Bropc nuv"ucitanc stranice mnzc se
a/urirati. ada sc nc azmiraju brujaci ostalih stranica.
Vezbanja
499
7. lJ stranicnim sistemima o kojima govorimo u tekstu, icientifikator promasaja strani-
ce bio je deo ni voa ISA i zato ga nema u adresnom prostoru programa koji se izvrsa-
va na nivnu OSM. lcientifikator promasaja u stvarnosti takocle zauzima stranice p.: u
odredenim okolnostima (npr. kacia se za zamenu stanica koristi FIFO strategija)
moze i sam biti uklonjen. Sta ce se clesiti kacia nema icientifikatora promasaja, a dodc
do promasivanja stranice'
1
Kako sc taj problem moze resiti'?
8. Nemaju svi racunari hardverski bit koji sc automatski postavija kada se podaci upi-
suju u stranicu. Bez obzira nato, trcba pratiti koje su stranicc men jane kako bi se iz-
bcglo najgore moguce reenje, a to jc da se sve stranicc posle korisccnja ponovo
upisuju na disk. Ako pretpostavimo cia svaka stranica ima harciverske bitove koji ne-
zavisno jeJan od drugog omogucavaju pristup za citanje, upisivanje i izvrsavanje,
kako operativni sistcm vodl racuna o tome koje su stranice ciste, a koje zaprljane' 1
9. Segmcntirana mcmorija ima segmentc poddjcne na stranice. Svaka virtuclna aciresa
ima dvobitni broj segmcnta, dvobitni broj stranice i 11-bitno rastojanje unutar stn-
nicc. Glavna memorija jc veiicine 32 KB. izdeljena na stranice ocl po 2 KB. Svaki
segment se moze iii samo citati, citati i izvrsavati, citati i menjati iii citati, menjat: i
izvrsavati. Tabele stranica i zastita izglcJaju ovako:
Segment 0 Segment I Segment 2
Segment 3
Samo citanje (:itanje/izvrsuvanje
Citanjc/menjanjc/
Citanjcinlcnjanjc
izvrsavan je
Yirtudna Okvir za Virtue Ina Okvir za
Virtuelna Okvirza
stranica stranicu stranica stranicu
stranica stranicu
()
9 ()
Na disku Tabela slranica nijc 0 lcf
I 3 I () u glavnoj tnemoriji
I I
-----
t--
2 Na disku 2 IS
2 6
3 12 3 8
3 I Na disku
Za svako od slcclecih pristupanja virtuelnoj memoriji navedite odgovarajucu fizicku
adresu. Ako nastane proma;aj. naveditc vrstu promasaja.
Pristup
Segment Strunica Rastojanje na strani
l. pn:uzimanje podataka 0
2. prcuzimanje pudataka I I IO
3. preuzimanje podataka
3 3 20-+7
4. sm<.'Stanjc pociataka 0 I -+
5. smdtanjc podataka
J I 2
6. smdlanjc podataka ] {)
1-+
7. grananje na
l 3 100
8. pn:uzimanje podataka ()
2 50
l)_ prcuzimanje pndataka 2 0 5
I 0. grananjc na
J ()
60
10. Neki racunari dozvoljavaju da se ulazno-izlaznc opcracije obavljaju din:k.tno u ko-
risnickum pn1stmu. Na primer. program moze da zapocne prenos podataka s diska
u bafcr unutar korisnickog proccsa. Da li to stvara problemc ako sc za impkmenti-
ranje virtuelnc memorijc kmi,ri sabijanje? Obrazlozitc odgovor.
:t:
'
.,
:,
500
11.
12.
l3,
14.
15.
16.
Poglavlje 6: Nivo opcrativnog sistema racunara
U operativnim sisternima kojima je chozvoljeno pres!ikavanjc datoteka u mcmoriju
preslikavanje se uvek mora obavljati na granicama stranica. Na primer, kada su stra-
nice vclicine 4 KB, datoteka se rnozc prcslik:lti poccvsi od virtuclne adrcse 4096. ali
nc i pocevsi od virtuelne adrese 5000. Zasto"'
Kada se u registar segmenata Pentiuma 4 ucitavaju podaci, prcuzima se odgovara-
juci dcskriptor koji se smesta u nevidiljivi deo registra. Sta mislite, zasto su se ln-
telovi inzenjeri odlucili za ovakvo rdenje'?
Program na Pentiumu 4 refcrencira lokalni segment l () s rastojanjem 8000. Poljc
BASE tabclc LDT za segment 10 sadrzi vrednost 10000. Koju ce odrednicu katalog
stranica upotrebiti Pentium 4"
1
Koji je hroj stranice'' Koliko jc nJeno rastojanjc"
1
Razrnotritc nckc od mogucih algoritama za uklanjanjc scgmenata u ncstranicnoj,
scgmcntiranoj menHJriji.
Uporeditc interno i spoljasnje fragmcntiranjc. Sta se mo.le uciniti da hi se svako od
njih iz.bcglo"
1
Supermarkcti se stalno suocavaju s problemom slicnim zamcnjivanju stranica Ll si-
stcmima virtuclnc mcnmrije. U njima postuji flksna kolicina prostora na gondolama
na kojima trcba izlo/.tli anikk ciji broj stalno rastc: . .-'\ko :;e pojavi m1v artikal
(rccimo, l 00% ctikasna hrana La P'CJ. ncki izlu/.eni artikli moraju sc povuci lb bi -;c
izlo.lio ovaj nov. Prvo sto nam pada na pamctjcsu algoritmi LRli i Koji bistc
od njih vi i.cahrtli"'
17. i strani.:'cnje su u i.cvesnnm srnislu veuma slicni. U oba slucaja !lOstojc dva
nin1a mcmorije i glavna mcrnorija u prvom slucaJU. a glavna mcmorija i disk u
drugoml. U mom poglavlju smo rannatrali argument-: koii idu u prilog vclikim
stranicama na Jisku i one koji idu u prilog malim stranicama na di.-;ku. Dt li sc tsti
ar;;urnenLi n1ugu i vcliCinu rcdova kcSa'.)
18. Zastu jc unmdgtill si:;kmima clatuccka ncuplh>dno da o.c datutcka otvoti pwivom :-;i-
stemskc t"unkctjc open kako hi rnogla da sc ciu"-'
19. Upurcc.litc mqlll hit<>\ a i listu pr:!Znina kal) metodc nt praccnjc sh>bodnog pwstnra
na disktl ;.a cilindara. t>d kojih S\ ;;ki ima 5 sta"l Sll rl sc;,.rnra. Koliku Ct: pr.l-
Lnina biti poLI\:bnu da Ji';La ...t ,)d !nape
je :\L'i-..hH. _jcdiniC:l :.!Li._kJe j daje /a pr:uo[nU da plhhJjj
u tahcii
20. Da hi,'lt..: n1ogli da rr:t'. itc prclpn ....,ta\ kl' ll tJc:rurn1an.<llllLl di')k;_L k\1ri:-;no j: da itnaf.e
llll )del d. H.} ... ]c Pr.:qJ()StavlnlO Ja :.;c di:-;k !1h.iLC
pro,tur "J ,Y >> I scktor,t. koji ''-' o;astnjc ud u?astopnih hlokovct
hl"\k()\a pnLbt:Jka itd. Ako pu-
jc raspt)tk!a dt1i:inu i duLinu pra.:.nina 1_-.;LL
._\.'l11l! -;c .Jl;),in:t .. i di dru::;.:c.l i_jUii ..' :'l 2 i,
jc hnj lla
21. rctl:u:laru Jnulc da g1Hl n;u tn:ha i svc
()J1(; da r._lS1l! \.:Jnatni.':ki '>C pri ll,'n;:
n' Hn 'i' lt..:rnu nL' nikal-._ va c: nj itJ.U' oj vciiC i ni. 0,1 i -.;: l i ._Lt :--;;..::
O\c t'l!;;ov(IL
Vdhanja
501
22. Proucavanjern razlicitih sistema datotcka utvrdilo se daje vise od polovine datoteka
manjc od nckoliko KB, a ubedljiva vccina datotcka je manja od oko 8 KB. S druge
stranc, samo 10 procenata svih datoteka z.auzima oko 95 procenata citavog
nog prostora na disku. Kakav zakljucak o vclicini bloka na disku mozete izvesi iz
ovih podataka"l
23. Razmotrite sledccu mctodu pornoc'u koje operativni sistem rnozc da
instrukcije za semafore. Kad god proccsor zeli da izvrsi instrukcije up iii down e1acl
scmaforom (cclobrojna promenljiva u memoriji), on prvo tako podesi svoj prioritet
i li mask ira bitove da onernoguci sve sistemskc prekide. Zatim prcuzima vrednost sc-
mafora, mcnja je, i shod no tome, obavlja skok. On na kraju ponovo omogucujr si-
stcmske prekide. Da li cc ova metoda raditi aku
a) Postoji samo jedan prdcesor koji svakih 100 ms prclazi s procesa na proces''
b) Dva proccsora dele zajednicku mcmoriju u kojoj je srndten i semafor''
24. Mustcrijc tirmc Neohorivi Operativni Sistcm pocele su da se zalc na naJnoviju rer-
ziju, kojaohuhvata i rad sa scmaforima. Mustcrijc dajc nemoralno doz\oliti
proccsima da sc blokiraju (kako kazu, ,cia spavajuna pm,lu"). Kako je politika Iinne
da k!ijcntima pruzi SVC sto zcJc. predlozcno jc da se LIZ up i down doda i treca
cip, peek. Opcracija peek ispitujc semafor ne mcnjajuci mu vrcdnost i nc blokira"uci
proces. Na taj nacin programi koji misle daje ncmoralno hlokirati proccs mogu plvo
da ispitaju scmafor kako bi vidcli da li je bezbcdno izvrsiti down. Da li cc ovD racliti
ako semafor koriste tri i vise procesa'' A ako sernafm kuriste dva proccsa"'
25. Napravirc tabelu i u njnJ prikazitc koji se od proccsa PI. P:2 i P3 izvrsava a koji je
blokiran, u funkciji vrcmena innedu 0 i 1000 ms. Sva tri procesa izvrsavajutnstLlk-
cije up i down nad istim semaforum. Kada su blokirana dva procesa i izvrsi se up. Jo-
krcee sc proccs s nizim brojcm, tj. P l inta prednust nad 1'2 i P3 it d. Na poccth se
sva tri procesa izvrsavaju i scmafor ima vreclnost l.
Pri 1 = I 00 P l izvrsava down
Pri 1 = 200 PI izvrsava down
Pri 1 = 300 P:2 izvr.sava up
Pri t = 400 P3 izvrsava down
Pri 1 =)()()PI down
Pn 1 = 600 P2 izvrsava up
Pri 1"' 700 P:2 izvrsava down
Pri 1 = 800 Pl izvrsava up
Pri t = 900 PI izvrs!tV a up
26. lJ sistemu rezervacijc avion-'kih karata neophmlno jc obezbecliri sledeee: kad JCcan
proccs koristi datoteku, nik,l drugi nc moze da jc koristi. Da toga ncma, elva razliCita
proccsa, koji radc za dva razlicita prodavca karata, mogli bi dvaput prodati poslcdaje
sedisre za ncki let. Smislitc nacin sinhronizovanja pomocu o;emafora koji osigur,,v a
da sam<> jedan proces ll jed nom trenutku moze da pristupi datoteci (prctpostavljajttci
cia proccsi postuju praviillJ.
r


t<
i:':
f' .
f,

7
NIVO ASEMBLERSKOG JEZIKA
U pnglavljima 4. S i 6 govorili smo o tri ra.dicita nivoa koji postojc u vecini savre-
rncnih racunara. Ovo poglavljc je uglavnom posveccno jos jednom nivou koji sc nala-
zi u svim danasnjim racunarima - nivou asernhlerskog jezika. Nivo ascmblerskog
jezika wacajno se razlikujc od nivoa mikroarbitekturc, nivoa !SA i nivoa operativnog
sistema racunara- on sc ne implemcntira interpretiranjem, vee prevodenjem.
Prugrami koji pretvaraju korisnicki program pisan na nekomjcziku u program na
nekom drugomjeziku ;:ovu se prcvodioci (engl. translators). Jezik na kome je origi-
nalni program napisan zove se izvornijezik (engl. smtrce language), ajezik u koji se
un prctvara zuvc se ciljni jezik (engl. tun;ctlanguage ). lzvorni jezik i ciljni juik dc:-
dva nivoa. Ako postoji procesor koji moze direkrno Ja izvrsava program pisan
na izvornom jcziku. onda nerna potrebe da sc izvorni program prevodi rya ciljni jezi<.
PrevoJenje se koristi kada postoji procesor (kao hardvcrska komponenta ili kao in-
terpreter) za ciljni jezik, ali ne i za izvorni. Ako se prevodenJe izvede ispravno, kada
>e izvrsi prevedcni program Job icc se potpuno isti rezultati kao da jc program izvrsa-
van na proccsoru koji razurne izvurni jezik. Sbodno tome, nov nivv za koji ne postPji
fJfOCC,OJ' ll10Ze SC implement irati tako S!O l;C SC programi pisani za taj niVO preVCSti ra
ciljni jc;:ik_ a zatim takvi programi na ciljnomjeziku izvrsili.
Trcba istaci razliku izmeL!u prevodenja i intcrprctiranja. Pri prevodcnju sc origt-
nalni program. napisan na izvornom jcziku. nc izvrsava direktno. On se najpre pre:-
vara u ckvivalentan program. zvan objektni program (engl. ohject progrwn) ili
5()5
. '
1

. '
l
t
t
'-
il
'

t-
l

!'.

L
502
Poglavljc 6: Nivo opcrativnog sistema racunara
27. Da bi omogucili implementiranje semafora na racunaru s vise procesora koji dele
zajednicku memoriju, projektanti racunara cesto uvode instrukciju Test and Set
Lock. TSL X testira lokaciju X. Ako je njcn sadriaj nula, postavlja se na I u jedin-
stvenom, nedeljivom memorijskom ciklusu, a sledeca instrukcija sc preskace. Ako
njen sadrzaj nijc nula, TSL dejstvuje kao instrukcija NOP. Pomocu instrukcije TSL
mogu sc napisati procedure lock i unlock sa sledccim svojstvima. Prucedura lock(x)
provcrava da li je x zakljucano. Ako x nije zakljucano, ona ga zakljucava i vraca
kontrolu pozivaocu. Ako je x vee zakljucano, ona ceka da ga ncko otkljuca, zatirn
zakljucava x i vraca kontrolu. Procedura unlock otkljucava zakljucanu bravu. Ako
svi procesi zakljucaju tabelu semafora pre nego sto jc upotrebe, samo se jcdan pro-
ces u jcdnom tcnutku moze poigravati s promenljivama i pokazivacima, i tako
spreciti utrkivanjc. Napisite procedure lock i unlock na asembkrskom jeziku. (Ako
je potrebno. napravite i dodatne pretpostavke.)
28. Prikazite vrcdnosti poLu:ivaca in i out za kruzni bafcr duzine 65 rcci posle svakc od
slcdecih opcracija. Oba pokazivaca pocinju od nuk.
29 .
a) 22 reci sc smestaju Ll bafer
b) 9 rcci sc uzimaju iz bafera
c) 40 rcci se smc;taju u bafcr
d) 17 reei se uzimaju iz bafcra
e) 12 n:ci sc smcstaju u bafcr
f) 45 rcci sc uzimaju iz bafcra
g) 8 reci se smcstaju u bakr
h) II rei'i sc uzimaju iz bafera
Pn;tpostavimo da nd.a vcrzija UNIX-a koristi blokovc na disku od 2 Kl3 ida na (bk
smdta 51:2 adrcsa po (Jcdnostruko, dvostruko i trostruko) indircktnum bloku. Koli-
ka ce biti maksimalno moguca vclicina datutd.:e'
1
(Pn:tpostavitc da su pokazivaci
datotcka sirine 64 bita).
30. Prctpostavitc da je UNIX-ov puziv sistcmskc funkcije
unlink("/usr/astlbin/garne3")
31.
32.
u kontckstu slikc 6-36. Opisitc dctaljno kakvc su sc promcne dcsilc u si-
stemu direktorijuma.
Zami:;lite da trcba da impkmentiratc UNIX sistcm na mikroracunaru gde jc glavna
mcnwrija mala. Posk vise ncuspdnih pPkusaja, nasumicno birate sistcmsku funk-
ciju koju c'etc izbaciti za opstc dnbro. lzabrali stc funkciju pipe za pravljenje komu-
nikacionih kana !a kroz kojc se salju tokovi bajtova odjednog do drugog rroccsa. Da
li sci pusk toga mol.e na neki nacin implement irati preusmeravanJe ulazno-izlaznih
operacija' 1 A sta JC s obmdom'
1
!{azmislite o problcmima i mogucim
rcscnjima.
Kt>rnitct za dcskriptnra datoteka organizuje prutesl protiv U:--HX sistema zato
sto prilikom vracanja deskriptora datutcke. on ima najmanji br,Jj od svih deskriptma
kl1ji sc trenutno nc koriste. Zbog toga sc dcskripturi vec'ih brojeva rctko koristc. Nji-
hov preJ!og jc da se vraea najmanji broJ koji jos nij.: kori;c'en u programu umc,to
najmanjeg broja koji se trenutno nc koristi. Oni tvrde da je 1111pkmcntiranje njiho-
vog predloga trivijalna stvar, da se ncc'e ncpovuljno odraziti na postojcc'c programc
i daje pravicniji. Sta vi o tome mislite"'
Vezbanja
503
33. U Windowsu XP mole se napraviti !isla za kontrolu pristupa na takav nacin da Rada
uopste nema pristup datoteci, ali da svi drugi imaju potpun pristup. Sta mislite, kako
je to ostvareno'
1
34. Opisite dva nacina za programiranje problema proizvodac-potrosac uz koriscenjc
deljenih bafcra i semafora u Windowsu XP. Razmislite kako ccte implementirati
deljcni bafcr u svakom od dva slucaja.
35. Uobicajeno jc da se algoritmi za zamenjivanje stranica proveravaju simuliranjem. U
ovom vdbanju treba da napiscte simulator za virtuelnu memoriju zasnovanu na
stranicama na racunaru sa 64 stranice od I KB. Simulator treba da oddavajednu ta-
belu sa 64 odrcdnice. po jednorn odrednicom za svaku stranu, sa brojem fiz.ickc stra-
nice koji odgovara datoj virtuelnoj stranici. Simulator treba da ucitava datotcku koja
sadrzi virtuelne adrese u llecimalnom obliku, jednu adresu po redu. Ako je odgo-
varajuca stranica u memoriji, simulator sarno bclezi pogodak. Ako stranica nije u
rnemoriji. on pm.iva proceduru za zamenjivanjc stranice da izabere stranicu za od-
bacivanje (tj. odrednicu u tabeli preko koje cc biti upisana nova) i beldi promasaj.
Nc dcsava se nikakvo stvarno prcnoscnjc stranica. Gencrisite datoteku s nasumicno
izabranim adrcsama i provcrite performansc algoritama LRU i FIFO. Zatim gcnc-
risite datoteku sa adrcsama u kojoj je x procenata adrcsa za 4 bajta vise od prethod-
nih (da bi sc sirnulirala lokalnost). Sprovcdite tcstiranjc za razlicitc vrednosti x i
napisitc izvdtaj o tome.
36. Program sa slike 6-25 dovodi do stanja fatalnog utrkivanja jer dvc programskc niti
pristupaju deljcnirn promenljivama na nckontrolisannacin, bcz semafora iii upotrebe
ncke druge tehnikc za uzajamno iskljucivanjc. Pokrcnite ovaj program i posmataJle
za koliko ce se zagl a viti. Ako sc ipak nc Laglavi. izmenite ga povccavajuci mu ranji-
vost tako sto cetc izmcdu podesavanja m.in i m.olll i njihovog tcstiranja staviti neka-
kvo izracunavanje. Koliko takvog racunanjajc potrebno dodati pre nego sto program
pocne da se svakog sata zaglavljujc'
1
37. Napisite program za UNIX iii za XP koji kao ula;: uzima ime nekog dircktorijuma.
Program treba da odstampa spisak datotcka u direktorijumu, u svakom redu po jcd-
nu datoteku ida posle irncna datoteke upise i njenu velicinu. Program trcba da stam-
pa datoteke rednslcdom kojim sc nalaze u direktunjumu. Nekorisc'enc odrednice u
dirckturijumu trcba da o,tnaci sa (nckoriscen).

.... ..
"'

i!>:
f
t
,.
r
W
;,

508 Pog;lavlje 7: Nivo asemblerskog; jezika
kategoriju. Drugo, nekim procedurama je potreban pot pun prist up hardveru, sto obic-
n<l nije moguce ostvariti na jezicima visokog nivoa. Na primer. u ovu kategoriju
spadaju potprogrami niskog nivoa za obradu sistemskih prekida i programskih klop-
ki. kao i kontrolcri uredaja za brojne ugradene sisteme koji rade u realnom vremenu.
Prvi r:1zlog za programiranje na asemblerskom jeziku (za postizanje visokih per-
forrnansi) obicno je i najvazniji, pa zato treha da ga razmotrimo detaljnije. U veeini
progra!lla '>rannerno je mali procenat ukupnog koda odgovman za veliki procenal
vrcmcna i;\'fsavanja. Po uobicajenom odnosu, l% koda odgovoran je za 50% vrcmc-
na raJa p1 ogr:1ma. a I 0'/rJ koda odgovorno je ta 90% vrcmena izvrsavanja.
Prctpu-;tavimo. na primer, da je za pisanjc nekog programa na jeziku visokog
nivoa putrcbno I 0 programerskih god ina i cla rezultujuci program prolazi refercntno
testi ranjc za I()() s. Referentni test, test hrzine (engl. benchmark) jestc program za
testiranje kDji sc koristi za porcdenjc racunara, prcvodilaca itd. Za pisanjc celog pro-
grama na asemhlcrskom jeziku mozcla hi trebalo 50 programerskih god ina zhog nizc
produktivnosti prugramera kada pisu na ovom jcziku. Dobijcni program bi referentni
test ohavio nwda za :n s zato sto inteligentan programer moze od inteligentnog pre-
vodiuca biti triput pametniji (iako cetc za ovo cuti razlicite procene). Ova je
prika;ana na -.;lici 7-1.
-l
1
1 I godine Trajanje izvrsavanja
potrebne za 1zradu programa
I programa I' u sekundama
1
: 50
JeZik VISOkog n1v0a I 10
I
Mesov1to resenJe bez podesavanJa
Knt16111h 1 0% 1
I Ostailh 9C
01
o 9
I Ukupno 10
! Mesovito resenje uz podesavanje
1 Kriticnih 10% 6
1 Ostalih 90% 9
Ukupno
15
33
100
90
10
100
30
10
40
Sliha 7-1. PurctknJe progranmanp na a'embkr,kum jeziku 1 programiranja naje;iku vi,okog
nivoa. s poJeSavanjcm i hez njcga.
Kada se unnc u obzir navedeno zapazanje da jc samo mali deo koda udgovoran Dl
najveci dco vremcna izvrsavanja programa, onda je moguc i drugaciji pristup. Pro-
gram se prvo napi;e najcziku visokog nivoa. Zatim sc izvrsi niz merenja da hi se utvr-
diio koji dclovi programa najvisc ucestvuju u njegovom izvrsavanju. U takvim
mercnJima, za izracunavanjc vremc:na izvrsavanja svake procedure. hrojanje ciklu!oa
svakc petljc i slicnc paramctrc. 11bicno sc knristi i radni takt.
7.1 Uvod u asemblerski jezik
5()9
Prim era racli, pretpostavirno da je I 0% programskog kocla odgovorno za utrosak
00'7, vremena izvrsavanja. To znaci da se tokom posla koji traje 100 s. 90s provodi
u ovih kriticnih I 0% program a, a !0 s u preostalih 00% programa. Kriticnih I 0% sada
se mogu poboljsati ako se taj deo programa ponovo napise u asemblerskom jeziku.
Ovaj postupak, koji se naziva podesavanjc (engl. tuning), prikazan je na slici 7-1.
Ovde je potrebno clodatnih pet programerskih godina da bi se kriticne procedure po-
novo napisale, ali se time njihovo vreme izvrsavanja skrac'uje sa 90s na 30 s.
Poucno jc uporcditi mcsovito rdenje (jczik visokog nivoa + asemblerski jczik) sa
cis to ascmblerskim resenjem (slika 7 -I). Ovo clrugo je oko 20% brzc (33 s umesto +0
s). ali je cena za njega triput vec'a (50 programerskih goclina umesto 15). Stavise.
prcdnost mesovitog rdcnja vil;e je nego naglascna jer je prepisivanje procedure iz
kojc su na visokom nivou vee uklunjene greske u asemblerski k6clmnogo je laksc )d
pisanja iste procedure od pocctka na asemhlerskom jeziku. Drugirn recima, procena
kako je potrebno 5 programerskih godina da se ponovo napisu kriticne proccclLI:c.
izuzetno jc konzervativna. Ako hi za to stvarno bila potrebna samo jedna programa-
ska godina, odnos izmcdu cene mdanog i cisto asemhlerskog resenja hio hi 4: I.
Programer koji pisc na jeziku visokog nivoa nije optereccn premestanjcm bitova
levo-desno i ponekad mu sine ideja koja stvunzo poboljsava pcrforman>,e. To se rctKo
do gada programerima na asemblcrskom jcziku, koji ohicno zongliraju instrukcijana
kako hi ustedeli nekoliko ciklusa.
Sve u svemu, i dalje ostaju bar cetiri dobra razloga k.ojih !reba cla proucavHe
asemhlcrski ja.ik. Prvo. posto uspch iii neuspeh nekog velikog projc:kta mozc cla za-
visi od toga jestc: li sposobni da dvaput iii triput poholjsate neku kriticnu pruceduru,
vazno je umeti da napisetc do bar asemblerski k6d oncla kada je to stvarno potrcbnt).
Drugo, a;.emblerski k6d je ponckacl jedino rdenje kada ncma dovoljno memoriJC.
Sve inteligentne kartice imaju proccsor, ali malo koja imajedan megabajt memori:c.
a jos manje kartica ima cvrsti disk koji bi podrz.ao strani..:'enjc memorijc:. lpak, o;Jc
moraju da obavljaju slo/.ena kriptografska izracunavanja is takt) ogranicenim rest.r-
sima. Procesori koji su ugradcni u kucnc aparate cesto zhog cene imaju vrlonnlo
morijc. Licni digitalni pomocnici i drugi batcrijski bezicni elcktr,,nski uredaji ccsto
imaju malo memurije da hi se pristedela baterija. tal-.o da je i za njih ncophodan rnJii
i efikasan k6d.
Trecc, prevodilac mora da izbaci rczultat koji cc zatim iskuristiti a.c;emhler iii mua
sam da ohavi ascmbl iranje. Prema tome. razumcvanJC asem blerskllg Je;:i ka ncupllllcl-
nu je za razumevanjc rada prevodioca. Najzad. neko mora i Ja prcvodilac (kw
i njegov asemhlcr).
Na kraju, kada proucavate ascmblerski jc.cik, imate pred ncima citav racunar. Za
one koji proucavaju arhitel-.turu racunara. pi,anje ascmbkrskog k.od,t Jedim je nacn
da ;,tcknu stvaran utisak u racunaru na nivou

r,1.
t{:'


f?



.,
i'
t:O
,.
if
,,
i;
1:,
(i


'?.
ii






il
..
i
li
,,
I;
!t

I
---
506
Poglavlje 7: Nivo asemblcrskog jezika
izvrsni binarni program (engl. executable binary program), koji se izvrsava tek
kada je prevodenje zavrseno. Pri prevodenju postoje dva jasno razgranicena koraka:
1. Generisanje ekvivalentnog programa na ciljnom jeziku.
2. lzvrsavanje novonastalog programa.
Ova dva koraka se ne odvijaju istovremeno. Drugi korak ne pocinje pre nego sto
se prvi potpuno nc zavrsi. U interprctiranju postoji samo jedan korak: izvrsavanje ori-
ginalnog izvornog programa. Nije potrebno najpre generisati ekvivalentan program,
mada se ponekad izvorni program pretvara u meduohlik (npr. Javin hajtkod) koji se
lakse intcrprctira.
Kada se izvrs<iva objektni program, ucestvuju samo tri nivoa: nivo mikroarhitek-
ture, nivo ISA i nivo operativnog sistema racunara. Prema tome, tokom izvrsavanja se
u memoriji racunara mogu naci tri programa: korisnicki objcktni program, operativni
sistem i mikroprogram (ukoliko postoji). Od originalnog izvornog programa ne ostaje
ni traga. Na taj nacin se broj nivoa koji postojc tokom izvrsavanja rnoze razlikovati od
broja nivoa koji postoje pre prevodenja. Treba primctiti da mi nivoc clcfiniserno sku-
porn instrukcija i jezickih konstrukcija koje su dostupne programeru (ne ulazeci u
nacin implcmentacijc), dok drugi au tori ponekad nivoe jasno dele prema tome da lise
implemcntiraju tehnikom interprctiranja u hoclu ili tehnikom prevodenja.
7.1 UVOD U ASEMBLERSKI JEZIK
Programskc prcvodioce mozemo grubo svrstati u dve grupc, prema medusobnom
odnosu izvornog i ciljnog jezika. Kada je izvorni jeL.ik u sustini simbolicka prcdstava
numerickog masinskogjczika, prevodilac se mtL.iva ascmblcr (engl. assembler). a iz-
vorni jczik sc naziva ascmhlerski jczik (engl. assembly lwzgua;;e). Kada sc kao iz-
vorni jezik koristi programski jezik visokog nivoa, kao sto su Java iii C, a ciljni jezik
jc ili numcricki masinski jezik iii njegova simbolicka prcdstava. prcvodilac se naL.iva
kompajler (engl. compiler).
7.1.1 Sta je asemhlerski jczik'?
u cis tom ascmblerskom jeL.iku, svaka naredba proizvodi tacno jednu masinsku in-
strukciju. Drugirn recirna, izmeL1u rnasinskih instrukcija i narcclaha u ascmbkrskom
programu postoji preslikavanjejedan najedan. Ako svaki red u programu napisanom
na asemblerskom jeziku sadrzi samo jednu naredhu. a svaka masinska rec sadrzi
samo jcdnu masinsku instrukciju, onda ce n-redni asemblerski program proizvesti
masinski program od ll reci.
Programi se pisu na ascrnblerskom jeziku. a nc na rnasinskom (u obliku heksade-
cimalnih brujcva). t.ato sto je na asemblerskom jcziku mnogo laksc programirati.
Vclikaje olaksica kada koristite simholicka imena i adrese umesto hinarnih iii oktal-
nih. Vccina programera moze da zapamti da su ADD. SUB, MUL i DIV skracenice za
7.1 Uvod u asemblerski
507
sabiranje, oduzimanje, mnozenje i cleljenje, ali malo ko pamti ekvivalentne brojcmc
vrednosti masinskog jezika. Programer na asemblerskom jeziku treha samo da pamti
simbolicka imena, a ascmbler ih automatski prevocli u masinske instrukcije.
lsto vazi i za aclrese. Programer koji pise program na asemhlerskom jeL.iku m.Jze
davati memorijskim lokacijama simbolicka imena i prepustiti asembleru da promL1e
njihove ispravne numericke vrednosti. S clruge strane, programer na masinskornjezi-
ku uvek mora cia racli s nurnerickim vrednostima adresa. Zbog toga clanas vise nikc ne
programira na masinskomjeziku, maclaje pre par clecenija, clokjos nisu hili izmisljeni
asembleri, to bilo uobicajeno.
Osim svojstva preslikavanjajedan najedan u masinske instrukcije, asernblcrskije-
zici irnaju jos jedno svojstvo koje ih jasno razlikuje od programskih jezika visokog
ni voa. Prograrnerima na asemblerskom jeziku clostupne su sve mogucnosti i instr,Jk-
cije ciljnog racunara, sto nije slucaj s programcrima na jezicima visokog nivoa. Na
primer, ako ciljni racunar ima bit prckoraccnja, program napisan na asemblerskomje-
ziku moze ga proveravati, ali program napisan na Javi to ne moze da ucini clirektllO.
Ascmblerski program mozc cia izvrsi svaku instrukciju iz skupa instrukcija ciljnog
racunara, sto program napisan na jeziku visokog nivoa nc moze. Ukratko, sve stu se
moze uraditi na masinskom jeziku mo:l.e se uracliti i na asemhlcrskom jeziku, wk
mnoge instrukcije, rcgistri i slicne mogucnosti nisu dostupni programeru najezikuvi-
sokog nivoa. Jezici za programiranjc sistema, kao sto je C, cesto su na pola puta iz-
medu ove dve krajnosti; sintaksa irn je kao u jezicima visokog nivoa, a pris:up
racunam slicniji asemhlcrskom JC/.iku.
Pomenimo na kraju jos jcdnu vaznu razliku. a to je cia program napisan na asem-
hleru moze cia se izvrsava samo na jcclnoj porodici racunara, dok program napisanna
jeL.iku visokog nivoa potcncijalno mozc da se na razlicitih racunara. Za
mnoge primenc, mogucnost prenosenja softvera s jcdnog racunara na clrugi od ve!Jkc
je prakticnc vaznosti.
7.1.2 Za sta treba koristiti asemhlerski jezik'?
Programiranj.: na ascmblerskom jcziku je tcsko. U tone trcha sumnjati. Ono nijc
za ncodlucnc i malodusne. Osim tuga. pisanjc programa na asembkrskomjeziku ow-
zima mnogo vise vrcmena ocl pisanja programa najeziku visokog nivoa. Takodc treha
mnogo vremcna da se u njemu pronadu i isprave greske, a takvi programi S? i
mnogo tdc Lldrzavaju.
Kadaje vee we tako crno. zasto bi iko pozeleo da pise pmgrame na ascmhlcrshm
jeziku'! Za to postoje dva razlogu: poboljsanjc pcrfonnansi i ;iri pristup racunaru. Pre
svega, iskusan programer na asemblcrskom jcziku cesto moze da napravi mno;;o
kraci i mnogu brzi kt)d od programcra najeziku visokog nivoa. Brzina i velicina sura
ncke primenc presudan cinilac. Mnogc ugradcne aplikacije, kao sto su kod na intdi-
gentnoj kartici, kod u nmbilnom tckfimu, upravljacJ,;i programi za nrcJaje. potpro-
grami BIOS-a i unutra;nje petljc aplikacija visokih performansi. spadaju u o,u
F
'
t
.
It




I

ri'l;

[!';i
:fr:
e
;!,

fl
.;-
J

r
,.
0
.:'

,,
'
,.



512
Poglavlje 7: Nivo asemblerskogjezika
jcr su virtuclne aurcse 32-bitne (SPARC verzije 8) iii 44-bitne (SPARC verzije 9) a in-
mngu Ja sadrze najvisc 22 bita ncpnsrednih podataka. Zato su uvek potrehne
Jve instrukciJe da bi se zadali svi bitovi virtuclne aurese. Instrukcija
SETHI %HI(I).%R1
anulira 32 najznacajnija hila i 10 najmanje znacajnih bitova (64-bitnog) registra R1, a
zatim umccc gornja 22 bita 32-bitne aurcse argumenta I u pozicije bitova ou I 0 do 31
iz regi stra R 1 .
Sledc<3a instruhip
LD (%R1T%L0(1)],%R1
sabira sadr,laj registra R1 i I 0 najmanje znacajnih bitova adrese argumenta Ida bi
(>hraL,Pvala njcgovu punu auresu, preuzima rec s te aurese u mcmoriji i smestaje u re-
gis tar R 1. Na konkursu :r.a izbor lepotice. ovakve instrukcije bi. na skali od 0 do I 0, L.a-
radile -20 poena. ali SPARC ne postoji zbog lepute svug asemblerskog jczika. On je
tako napravljcn radi pnstizanja visnke brzine izvrsavanja i taj posao obavlja dnbru.
PorndiL"a proL"esma Pentium, 680x0 i SPARC dnzvoljavaju rnanipulisanje bajtovi-
ma, recima i dugackim opcranclima. Kako da ascmblcr zna staje sta'i I ovde. kan ira-
nijc. autmi asemblera biraju razliCita rcscnja. Na Pentiumu 4 registri razlicitc duzine
nu,c razlicita imcna, pa sc registar EAX koristi za manipulisanjc 32-bitnim stavkama,
AX 1a 16-hitne, a rcgistri ALi AH za 8-bitne stavke. Autori Motorolinog ascmblera od-
lucili su se za suliksc.Tako. umesto da se podskupovima DO i slicnim daju drugacija
imena. svakom opkodu sc doclajc nastavak L za ,dugacak", nastavak. W 1,a rec ili na-
stavak ./1 za bajr. SPi\RC ima razlicitc opkodovc za razlicitc duz.ine (npr. LDSB, LDSH
i LDSW Ja hi se ucitali o;.naceni hajtovi. polurcci iii reci u 64-bitni rcgistar). Sva tri
ptstupka su ispravna, ali opel ukazuju na proizvuljnost nacina organizovanja ascm-
hlcrskPg jezika.
Tri ascmblcra sc ratlikuju i po tome kako rczcrvisu prostor za podatke. Autori ln-
tei<J\ ug asemhlerskog jczika Dl to su izabrali DO (Detine Double- cletinisi dvostruku
rcC ' posto je rcc na proccsoru 8088 bila 16-bitna. U Motorolinom asernblerskom je-
z.iku su komandu DC (Deline Constant- de!inisi konstantu). Autori SPARC-
asemblcra su od samng pocetka gravitirali komanui .WORD. Naravno, nvc raz-
like su takoJe proizvoljnc.
Polje La operande u narcdbi na asemblerskom.Jcziku sluzi za :r.adavanje adrese ire-
ko.Ji su operandi masinskc instrukcije. Polje za operande u instrukciji za ce-
luhmjno S<tbiranjc dctinise sta treba sahrati. Polje za operande instrukcijc grananja
mlrc:dujc gdc treha skociti. Operandi mugu cla budu registri, konstante. memorijske
kbcije i dr.
U poljc z.a komcntarc programcri upisuju objasnjcnja o radu programa, kmisna
pmgramerima. koji ce tnozda kasnije upnlrebJjavati i poddavali program (iii
mu!o'u koristiti i samum autoru nakon godinu dana). Program na ascmblcrskomjeziku
jc: be,' ta\.- vc dokumentacijc neratumljiv i iskusnim programcrima. ukljucujuci i autu-
ra programa. Polje La komcntarc je namcnjeno iskljucivo ljudima: onn nc uticc na
ptP:C'> prcvodenp. ni na generisani program.
7.1 lJvod u asemblerski jezik 513
7.1.4 Pseudoinstrukcije
Pored simbolickog zadavanja instrukcija koje racunar treha da izvrsi, program :1a
asemhlc:rskom jeziku moze da saclrzi i komande samom asembleru (na primer, da d:J-
deli neki smdtajni prostor ili cla listing stampa na posebnim stranicama). KomanJe
asembleru zovu se pseudoinstrukcije ili ponekad direktive asembleru. Tipicnu
pseudoinstrukciju vee smo videli na slici 7-2(a): ow. Jos ncke pseudoinstrukcijc na-
vedene su na slici 7-3. One su uzetc iz Minnsoftovog asemblera MASM za porodicu
Intclovih procesora.
Pseudoinstrukcija Znacenje.
SEGMENT Zapocinje nov segment (k6d, podaci sa zadatim atributima
ENDS Zavrsava tekuci segment
ALIGN Upravlja poravnanjem sledece instrukcije iii sledecih podataka
EQU Definise nov simbol jednak zadatom izrazu
DB Dodeljuje smestajni pros tor za jed an iii vise (inicijalizovanih) bajtova

----=---=. Dodeljuje smestajni pros tor za j.ednu iii vise (inicijalizovanih) 16-bitnir I'
(reci) podataka
DO Dodeliuie smestajni prostor za 1ed1
t 1' . '.,
nn
1u iii vise (inicijalizovanih) 32-bitnir .
(avosirUKin reCi) podataka ___ j
, _ 1 Dodeljuje smestajni prostor za jednu iii vise (inicijalizovanih) 64-bitnir I
_____J (cetvorostrukih reCi) podataka -------1
PROC I Zapocinje proceduru ... _ . J

ENDM Zavrsava definiciju makroa . J
ENDP Zavrsava proceduru
MACRO Pocinje deliniciju makroa
PUBLIC lzvozi ime definisano u ovom modulu j
1 EXTERN 1 Uvozi ime iz drugog modula -1
I Preuzima i ukljucuje drugu datoteku l
Zapocinje uslovno asembliranJe zasnovano na zadatorn
I ELSE_ Zapocinje uslovno asembli:anJe ak_o gornji IF nije
I ENDIF Zavrsava uslovno asernbliranje_______ (
Definise nov znak za pocetak komentara
I PAGE Generise prelom strane u listingu
'
lEND Zavrsava asernbler l
Slika 7-3.
__________ _j
Nekc p,euJoinstrukcijc kojc pustuje u a.scmbkru <.'>J.\S\li a l'enuum-l ascn;hkr
ilVIASi'viJ.
Pseudoinstrukcijum SEGMENT 1.apocmje nov segment. a Lavrsava sc pc,t:udninslruk-
cijom ENDS. Dozvoljeno je zapuceti nov segmem s kodom, zatim zapoceti sc'gment;
podacima, pa se opet vraliti na segments kodom itd.

;H.

ff




510
Poglavljc 7: Nivo ascmblerskog jezika
7.1.3 Format naredhe na asemblerskom jeziku
lako struktura naredbe na asemblerskom jeziku jasno odrazava strukturu masinske
instrukcije koju predstavlja, asemblerski jezici za razlicite racunare i razlicite nivoe
medusobno su dovoljno slicni da se moze govoriti o asemblerskim jezicima uopste.
Slika 7-2 prikazuje fragmente programa na asemblerskomjeziku za Pentium 4, Mo-
torolu 680x.O i (Ultra)SPARC, koji izracunavaju N =I+ 1. U sva tri primera, naredhe
koje se nalaze iznad praznog reda obavljaju izracunavanje. Naredbe koje se nalaze is-
pod praznog reda jesu komande asembleru da rezervise memoriju za promenljive I, J
iN- to nisu simbolicke predstave masinskih instrukcija.
Postoji vise asemhlera za porodicu Intelovih procesora, svaki sa svojom sintak-
som. U primerima iz ovog poglavlja koristicemo Microsoftov asemblerski jezik
MASM. !ako se usredsredujemo na Pentium 4, sve sto imamo da ka7.emo o njemu
jednako je primenljivo ina procesore 386, 486, Pentium i Pentium Pro. Za primere s
procesorom SPARC izabrali smo asembler firrne Sun. Sve sto kaz.emo vazi i za ranije
(32-bitne) verzije procesora SPARC. Zbog konsistentnosti, u ovoj knjizi cemo opko-
clove i registre svuda pisati velikim slovima (konvencija koja vazi La Pentium 4), iako
tu Sunov asembler ocekuje mala slova.
Naredbe asemblerskog jezika imaju cetiri dela: polje za oznaku (engl. Label),
polje za operaciju (opkodl. polje za operande i polje za komentare. Oznake, pomocu
kojih se memorijskim adresama daju simbolicka imena, neophodne su u izvrsnim na-
redbama da bi se na njih moglo skociti. One su potrebne i reCima podataka kako bi se
pudacima moglo pristupiti preko njihovih simbolickih imena. Ako je nareclba oznace-
na, oznaka ( obicno) pocinjc u koloni I.
Svaki od tri dela na slici 7-2 ima cetiri oznake: FORMULA., I, .I i N. Obratite
paznju nato da u asemhlerskim JCZicima za SPARC iza svake uznake obavezno sledi
dvotacka, sto nije slucaj kod Motorole. U asemblerskimjezicima za Intel, dvotackaje
potrebna samo it.a oznake za k6d, aline i iza oznake za podatke. Nikakvi fundamen-
talni razlnzi ne stojc iza ovih razlika. Jednostavno, autori razlicitih asemblera cesto
imaju razlicit ukus. Ni zbog jednog detalja arhitekture uvih procesora nije potrehno
cia dvotacka postoji iii dane postoji. Zapis s dvotackmn ima izvesnu prednost jer se
tako oznaka rnoze pojaviti samostalno u jednom redu, pri cernu se opkod pojavljuje u
koloni I sledeceg reda. Takav stil ponekad odgovara prevodiocima. Bez dvotacke se
ne bi moglo znati jL' oznaka, a sta opkod, kada stoje u jed nom redu. Dvotacka ot-
klanja ovu potencijalnu zabunu.
Nezgoclna osobina nekih asemblerajeste to sto oznaka moze da ima najvise sest iii
osam znakova. Nasuprot tome, u vecini programskihjezika visokog nivoa dopustena
su proizvoljno dugacka imena. Dugacka. clobro izabrana imena cine programe citlji-
vijim i drugi !judi ih lakse razumeju.
Svaki racunar ima registre, ali svi oni imaju razlicita imena. Registri u Pentiumu 4
wvu se, na primer, EAX, EBX, ECX itcl. Motorolini registri se zovu. izmedu ostalog,
DO, 01, 02, dok registri na prucesoru SPARC imaju po vise imena. Ovde smo za njih
koristili imena %Rt i %R2.
7.1 Uvod u ascmblerskijczik
5ll
Oznaka Opkod
Operandi
Komentari
FORMULA: MOV
EAX,I
; registar EAX = I
ADD
EAX,J
; registar EAX = I + J
MOV
N,EAX
; N =I+ J
I DO
3
; rezervise 4 bajta inicijalizovana na 3
J DO
4
; rezervise 4 bajta inicijalizovana na 4
N DO
0
; rezervise 4 bajta inicijalizovana na 0
(a)
Oznaka Opkod
Operandi
Komentari -----
FORMULA
MOVE.L I, DO
; registar DO = I
ADD.L
J, DO '
; registar DO = I + J
MOVE.L DO,N
; N =I+ J
I DC.L
3
; rezervise 4 bajta inicijalizovana na 3
J DC.L 4
, rezervise 4 bajta inicijalizovana na 4
N DC.L 0
; rezervise 4 bajta inicijalizovana na 0
(b)
Oznaka Opkod Operandi
Komentari

FORMULA: SETHI
%HI(I).%Rt
1 Rt = najznacajniji bitovi adrese I
LD
(%R1+%LO(I)],%R1
! Rt =I
SETHI
%HI(J).%R2
! R2 = najznacajniji bitovi adrese J
LD
(%R2+%LO(J)],%R2
! R2 = J
NOP
1 cekaj da J stigne iz memorije
ADD
%Rt,%R2,%R2
! R2 = Rt + R2
SETHI
%HI(N),%Rt
! Rt = najznacajniji bitovi adrese N
ST
%R2,(%Rt +%LO(N)]
1: .WORD3
I rezervise 4 bajta inicijalizovana na 3
J: .WORD4
I rezervise 4 bajta inic1jalizovana na 4
N: .WORDO
1 rezervise 4 bajta inicijalizovana na 0
(c)
Stika 7-2. lnacunavanje izr:ua N =I+ J (a) Pcnliurn -l. lhJ Motorola
(cJ SPARC.
Polje za opkod sadrzi iii simbolicku skraL'enicu opJ..oda (ako je naredba simbolick.l
predstava rnasinske instrukcije) iii komandu asembleru. lzbor odgovarajuceg imen.1
je stvar ukw,a autora asemblera ito se i vidi na razlicitim asemblerima. Autori lntelo-
vog asemblera ocllucili su da ime MOV oznacava citanje sadrzaja registra iz memorije,
alii upisivanje sadrzaja registra u memoriju. Autori Mutorolinog asemblera su za
operacije izabrali ime MOVE. Za razliku od njih. auturi asemhlera za SPARC odlucil:
su da citanje saclrzaja registra iz memorije uznace sa LD, a upisivanje sadrzaja registr"
umemoriju sa ST. I ovde imena nema nikakve veze s konstrukcijom konkretnng
racunara.
Nasuprot tome, potreba cia se za pristupanje memoriji upotrebe dve m<tsinske in
strukcije. od knjih je prva SETHI. predstavlja speciticnn svojstvo arhitekture SPAR(





f.

'

f

\'i'

,,



;).
:
1:
;j,

"t;




'('<';;
516
MOV EAX,P
MOV EBX,O
MOV Q,EAX
MOV P,EBX
Poglavlje 7: Nivo asemblcrskogjezika
Programer je dctinisao makro SWAP kao skracenicu za cetiri gomjc naredbe.
MOV EAX,P
SWAP MACRO
MOV EBX,O
MOV EAX,P
MOV O,EAX
MOV EBX,Q
MOV P,EBX
MOVO,EAX
MOV P,EBX
MOV EAX.P
ENDM
MOV EBX,O
MOV O,EAX
SWAP
MOV P,EBX
SWAP
(a)
(b)
Stika 7-4. K<HJ na ascmbkrskom je;.iku ta dvostruko ra;.mcnjivanjc vrcdnusli pronllnljivih Pi 0.
(a) Bcz makroa. ib I S rnakrootn.
laku se ascmbkri pomalo razlikuju po nacinu dclinisanja makroa. svima imje za-
jednicko slcdeee:
l. Zaglav lje makrua koje predstavlja imc makroa.
2. Tekst koji predstavlja tclo rnakma.
3. Pseudoinstrukcija koja oznacava kraj ddinicije makroa (npr. ENDM).
Kada asernbler naide na deliniciju makroa. on JC smcsta u tahclu s dciintcijama rna-
kroa da hi je kasnije mogao koristiti. Od tog trenutka. kad god sc kac1 upkud i tme
makrua u primeru sa slike 7-4). ascmb\er ga zamenjuje tclum makwa. Kil-
riscenje imena makroa kao npkucla L.ove se pozivanje makroa (engl. nwrTo cal/). a za-
menjivanjc imena telom makroa- prosirivanjc makroa (engl. l!l<l<Til e.>:JWnsion).
1\lakro se rn>siruie tokorn asembliranja. a nc tuknm izvr\avanja Ovo
poscbno naglasavamo. Programi sa slika 7-4(a) i 7-4tbl dace pntprr11<> i'ti ma;in>ki
kt1d. ,\ku pusmatratc sanw masinski k6d. ne moi:etc zakljuciti da li Je u program bto
ukljuc<Cn makro iii nijc. Kada asembkr tokom prev >denja prosiri sve Jnakr.Jc, t'll if. u-
bele bri;c sve njihmc definicije. tako da nista ocl njih ne prela:i u gencrisani kfJJ.
Pozivanje makroa nc treba me:iati s poziv<mjem prdccdura. Osnu\ :1a JC to
sto pu1i vanje makroa prcdstavlja instrukciju asembkru Lb zamcn! irne JWlknJa tel om
makroa. Poziv prt'ccdurc jc masinska instrukcija ];, >ja se ugradujc u ohjcktni prugram
7.2 Makroi
517
da bi sc kasnije tokom njegovog izvrsavanja pozivala proceclura. Na s!ici 7-5. pozivi
makroa uporedeni su s pozivima procedura.
Aspekt
Pozivanje makroa : Pozivanje procedure
Kada upucuje? ase_IT'bliranJa I Tokom izvrsavanja programa
Da li se telo ugraduje u objektni nn7;.,') I Da : Ne
program svaki put kada se uputi poziv?
1
I
oa li se instrukcija za pozivanje --)[);-
procedure ugraduje u objektni I I
I
program da bi kasnije bila izvrsena?
1
Mora li se posle poziva umetnuti 'loa
instrukc!Ja za povratak u glavn1
_
I Koliko se kopija
1
Jedna za fl:l Je._d_n_a ________ _
j u objektnom pro:::.g_ra_m_u_? ______ _J_____ _
Slika 7-5. mal-.rua i po1.ivanjc procedura.
Koncepcijski je naJholje da proLes ascmbliranja po:-,matrate kao cla se odvija u dva
prnlaska. Pri prvom prolasku snimaju se dd1nicijc svih makroa i prosiruju odgovara-
juci poL.ivi. U clrugom prola.sku rezultujuci tekst se obraduje bas kao claje postojaou
prvubitnont programu. To znaci da je izvorni prugram ucitan i pretvoren u drugi pro-
gram iz koga su izhacenco svc delinicijc: makroa. a pozivi makroa zamenjeni njihov m
telima. Re,,ultal[prugramna asembkr,komjcziku koji uupste ne saclrzi makroe) taJa
se kruz asemblcr.
Treba stalno na umu daje Frogram znakovni niz sastavljen ocl slova, ciLL-a,
meduprt),tora. L.nakuv a interpunkcije i makuva za prclazak u no vi red. Prosiriva11je
rnakroa znal-i d:t se udrcdeni podnizmi ovo;Jniza zamenJuju clrugim znakovnim ni-
.cminn !\!chani1am za r:rd s mal-..roiJ,Ja manipuli;e znakovnim nizovima, bez nbzira
na njilwvrl
7.2.2 :\lakroi s parametrima
:\lehaniLam raJ s nnkruuna h,ji sttiu mahlpre opisali moze sc upotrebiti 1.a
skraci '- :mje prc>g;am:, u kojima sc i-,t t ni1 vise put a ponavlja. Ccsto, medu-
lllll. prugr:un sdrL:i v 1\e nizuva instrukcija ko1e su skoro identicne, ali ne i potpuno.
kau na ,!ici 7-6ta!. Pr'vi ni; instmkcij:r rannenjujc vrednosti promcnljivih Pi Q.
a drug1- prllmenlji-, ;hI< iS.
,\bkn) :hemhlcri prublem ,;a -;k,ml j,]enticnim nizuvima instrukcija tako
stu se u dc!iniciji mahrna nH>gu UPr>irc:bija,;rti formalni paramctri, a pri pozivanju
makr< >a- -;tvarni paramdri. se ma\r,J prusiri. ,;vaki rormalni parametar u nje-
teiu ;;u1lCitJUjL :-....: pan.1n1ctrorn. Stvarni pararnctri .:;e
>'\;::".
'."i'

;.
"ti
_li
514
Poglavlje 7: Nivo asemblcrskog jezika
Psemloinstrukcija ALIGN omogucava da se sledeCi red, obicno s podacima, vde za
adresu koja je umnozak njenog argumenta. Na primer, ako tekuci segment vee ima
61 bajt podataka, onda ce posle pseudoinstrukcije ALIGN 4 sledeca dodeljena adresa
biti 64.
EQU se koristi za davanje simbolickog imena odredenom izrazu. Na primer, posle
pseudoinstrukcije
BASE EQU 1000
simbol BASE moze se svuda koristiti umesto vrcdnosti 1000. Izraz koji slcdi iza EQU
moze da sadrzi vise definisanih simbola povezanih aritmetickim i drugim operatori-
ma, kao u izrazu
LIMIT EQU 4 * BASE+ 2000
Za vecinu asemblera, ukljucujuci i MASM, vazi pravilo da se simbol deiinise pre
nego sto se upotrebi u izr,rzima slicnim prethodnorn.
Sledece cetiri pscudoinstrukcije, DB, OW, DO i DO, rezervisu smdtajni prostor za
jednu iii vise promenljivih, ve\icine I, 2. 4 iii 8 bajtova. Na primer, pseudoinstrukcija
TABLE DB 11, 23, 49
dode\juje prustor za 3 bajta i inicijaliwje ih na vrednusti II, 23 i 49. Ona definisc
i simbol TABLE izjcdnacujuci ga sa adresomna kojoj je smdtena vrcdnost II.
Pscudoinstrukcijc PROC i ENDP definisu pocetak i kraj procedura pisanih na asem-
blerskomjeziku. Procedure na asemblerskomjeziku imaju istu ulogu kao i procedure
pisane na clrugim programskim jczicima. Slicnu tome, pseudoinstrukcije MACRO
i ENDM uok viruju ddiniciju makroa. Makroe cemu objasniti kasnijc.
Sledecc dve pseudoinstrukcije, PUBLICi EXTERN, odreduju hoce li simbol biti vi-
dljiv. Uobicajeno je da se pisu programi koji su u stvari zbirka datoteka. U tom sluca-
ju, procedura iz jedne datoteke cesto treba da pozove proccduru iii da pristupi
podacima iz clruge datotcke. Da bi se omoguc'ilo ovakvo unakrsno refercnciranje.
simbol koji treba cia je raspolozi v drugim datotekama izvozi se pseudoinstrukcijom
PUBLIC. Slicno tome, da se asemhler ne bi bunio stu se koristi simbol koji nije ddi-
nisan u tekuc'oj datoteci. taj simbol se moze deklarisati kao spoljni- EXTERN- na os-
novu cega ce asemblcr znati da jc on delini,an u drugoj clatoteci. Simboli koji nisu
deklari,ani jeclnom od ove dvc P'eudoinstrukcije smatrJju sc lokalnirn za tekucu da-
toteku. Tak vo podrazumcvano ponasanje znaci da, rccimo, isti simbol FOO. koji se
pojavljuje u vise datoteka ne izaziva sukobljavanjc jer je u svakoj clatoteci ogranicen
samo na nju.
Pseudoinstrukcija INCLUDE nalaze ascmbleru da preuzmc drugu clatotcku i daje li-
zicki ukljuci u tekucu clatoteku. Takve ukljucene datotcke obicno sadrze svojc detini-
cijc, makrne i druge stavkc.
Mnogi asembleri. mcdu njima i MASi\/1. pmlrzavaju uslovno asembliranje. Na pri-
mer, kod
WORDSIZE EQU 16
IF WORDSIZE GT 16
WSIZE: DO 32
7.2 Makroi
ELSE
WSIZE: DO 16
END IF
515
dodeljuje Jednu 32-bitnu rec na adrcsi simbolickog imena WSIZE. Rec se inicijalizuje
na 32 iii na 16 bitova, zavisno od vrednosti WORDSIZE, kojaje u ovom slucaju 16. Ova
konstrukcija ce se obicno koristiti za pisanjc programa koji se moze ascmblirati na 16-
bitnim racunarima (kao sto jc 80XR) iii na 32-bitnim racunarima (kao sto je Pentium 4).
Stavljajuci cleo koda koji zavisi od racunara unutar IF i ENDIF, i zadajuci vrednost
WORDSIZE, omogucavamo programu da izvrsi asembliranje za jeclan iii za drugi racu-
nar. Na ovaj nacin je moguce odr?.a vati sarno jed an izvorni program za vise (razlicitih)
ciljnih racunara. sto olaksava razvijanje i odrzavanje soft vera. U mnogim slucajevima,
sve definicijc koje zavisc od racunara, kao WORDS!ZE, sakupljaju se u jednu datoteku
koja postoji u razlicitim verzijama za razlicite racunare. Kada ukljuCimo odgovarajucu
datoteku s definicijama, program mozemo lako prevesti za biln koji racunar.
Pseudoinstrukcija COMMENT umogucava korisniku cia podrazumevani znak za
pocetak komentara (tacka i zarez) promeni u nesto drugo. PAGE sc koristi za podda-
vanje listinga koji ce stampati asembler ako se to od lljega zatrazi. Na kraju, END
oznacava kraj programa.
U asembleru MASM postoje i brojne druge pseudoinstrukcije. Drugi asemblcri za
Pentium 4 imaju drugacijc skupove pseudoinstrukcija, sto uglavnom zavisi od ukusa
autora. a ne od arhitekture procesora.
7.2 MAKROI
Programcri na asemblerskomjeziku cesto vise puta treba da niz instrukcija ponove
u toku programa. Najlakse je ako taj niz upisu kad god irn je potrcban, ali ako jc on
dugacak iii se mora upotrebiti vise puta. to postaje mucno.
Alternativa je da niz instrukcija pretvore u proceduru koju ce pozivati gde god im
zatreba. Ovakav pristup ima manu jer je- da bi sc procedura svaki put po-
trcbno upisati instrukciju za njeno pozivanje, kao i instrukciju za vracanje iz nje. Ako
je niz instrukcija kratak (sastoji se, na primer. od dve instrukcije) ali se koristi cesto,
stalno P('Zivanje procedure i vracanje iz nje moze znatno cia uspori program. Tu uska-
cu makmi- jednostavno i etikasno resenje problema cestog izvrsavanja istog ili skoro
istog niza instrukcija.
7.2.1 Definisanje, pozivanje i prosirivanje makroa
Definisanje makroa je nacin da delu teksta date ime. Posto detinise makro. pro-
gramer umesto dt'la programa moze cia upisuje samo imc makroa. Makro je u stvari
skrac'cnica za deo teksta. Slika 7-4(a) prikazuje program na asemblerskom jeziku za
Pentium 4 koji dvaput razmenjuje vrednosti promenljivih pi q. Ovi nizovi instrukcija
tnogu se definisati kao makroi. kao na slici 7-4(b). Posle delinisanja. svaka pojava
rel:i SW4P zamenjujc se sa sledeca cetiri reda:
""""" ..
tt:'
t;:-.

r:!
520
Poglavljc 7: Nivo ascmblerskog jezika
7.3 PROCES ASEMBLIRANJA
U narednirn odeljcima ukratko cemo objasniti kako radi asembler. lako svaki racu-
nar ima drugaciji asemblerski jaik, proces asembliranja je u svima njima dovoljno
slican da bismo ga mogli objasniti u opstim crtama.
7.3.1 Asembleri s dva prolaska
Posto se program na asemblerskom jetiku sastoji od nizajcdnorednih naredaba, na
prvi pogled bi bilo logicno da asembler ucita jednu naredbu, prevede je na masinski
jezik i uputi je u datoteke za cuvanje i!ili La stampanje listinga. Opisani postupak bi
se ponavljao, red pored. svc dok sene prevedc ceo program. Nal.alost, ovakva stra-
tegija je pogrdna.
Razmotrite slucaj kada je prva naredba skok na naredbu L. Ascmbler ne moze da
prcvede ovu naredbu sve dok ne sazna adrcsu narcdbc L. Naredba L se moze nalaziti
pri kraju rrngrama, ra ascmbler nc mozc da sazna njcnu adresu dok ne procita skoro
citav program. Ova teskoca nosi imc problem zbog refcrcnciranja unapred (engl.
jimmnl rcfi'ri'IICI' pmhlcm) jer je simbol L upotrcbljen pre nego sto je detinisan; dru-
gim recima. referenciran je simbul cija ddinicija tck sledi.
Sa ovakvim. tzv. isturenim rcferencama muze se postupiti na dva nacina. Prvu.
ascmbler mole dvaput da procita izvorni program. Citanje izvurnug programa znve se
proJazak (engl.[J(ISS); prevodiJac ko.Ji program Cita dvaput ZOVC Se prevodilac
s dva prolaska (engl. 1\vo-puss translutor). Pri prvom prolasku. u tabclu sc 'mdta.JU
dcfi.nicijc simbola, mcJu kojima su i mnake nan:daba. Na pocctku drugog prolaska
poznatc su vrednosti svih simbola, tako dane postllje isturcnc n:fcrcncc i svaka narcd-
ba sc mo?.e procitati, asemblirati i uputiti u izvrsnu datotcku. lako jc u opisanom pri-
sturu neophodan dndatni prolatak ascmblera, on je knncepcijski jcdnostavan.
Drugi pristup podrazumeva prvo citanje izvornog programa i pretvaranjc u medu-
ublik koji se smesta u tabclu u memoriji. Zatim se u drugom prolasku kroz
propusta tabela. a ne izvorni prugram. Ako p,;stoji dmoljno mernnri.Jc (iii virtuclnc
memorije). ovim pristurorn sc stcdi vremc potrebno za ulazno-izlaznc opcraciJC.
Ukoliko se zahteva i listing. onda trcba snimiti ceo iL.vorni program. Lajedno , ku-
mentarima. U slucaju da listing nije potreban, onda sc meduoblik programa n11ic
svesti samo na bitne clemente.
Bez obzira na pristup, u prvorn prolasku asemblcra snimaJU se sve detin1cije ma-
kroa i svi pozi vi makroima se prosiruju. Na taj nacin se dctinisanjc simbola i
vanje mak.roa kornbinujc u jcdnom rrolasku.
7.3.2 Prvi prolazak
Osnovna uloga prvog prolaska jc rravljenjc tabelc simhola knja saJ!'li vr,dn<.J'ti
svih sirnbola iz izvornog programa. Simbol je iii Ol'naka iii vrcdnm,t kc,juj se dudc!ju-
je simboJicko j 111C pseud<.1instrukcijom kao StU jC:
BUFSIZE EOU 8192
7.3 Proces asemhliranja 'i2l
Pri dudeljivanju vrednosti simbolu u polju za oznaku instrukcijc, ascmbler mora da
zna koju ce adresu ta instrukcija imati tokom izvrsavanja programa. 0 adresama koje
ce tokom izvrsavanja imati instrukcije kojc upravo asemblira, on vodi racuna pornocu
promenljive zvanc ILC (Instruction Location Counter- hrojac lokacija sa instruk-
cijama). Ova promenljiva na pocetku prvog pro Iaska dobija vrednost 0 ita vrednost za
svaku obradcnu instrukci.Ju raste u iznosu jednakom njennj du/ini, kao sto jc prikazano
na slici 7-7. Na slici je primer za Pentium4. Nadalje necemo davati prim ere za SPARC
(iii za Motorolu) posto razlike izmedu ascmblerskih jezika nisu vclikc. Dovoljan ce
biti i jcdan primer. Osim toga, kada bi pustojao globalni knnkurs La najmanje citljiv
asemblerski jezik, jezik procesora SPARC bio bi siguran favc,rit.
Oznaka Opkod Operandi Komentari Duzina ILC
----
MARIA: MOV EAX,I EAX =I 5 100
MOV EBX.J EBX = J 6 105
ROBERTA: lviOV ECX,K ECX = K 6 111
IMUL EAX,EAX EAX = 1'1 2 117
IMUL EBX,EBX EBX=J'J 3 119
IMUL ECX,ECX ECX = K 'K 3 122
MARILYN ADD EAX,EBX EAX = I I + J J 2 125
ADD EAX.ECX EAX = I I + J ' J + K ' K 2 127
STEPHANY: JMP DONE skoci na DONE 5 129
Slika 7-7. Brnj:rC lobcija \01 inslrukcijama ,,ILCJ vodi racuna o rncnmrijskirn adrcsarna na kojece
sc instrukcije ucilati. U ovom pr-imcru. naredba pre onwke :VI ARIA zauzima 100 bajlova.
Vc'c'ina u prvom prolasku kori-;ti bar tri interne tabele: tabelu simbola.
tabclu pscuduin.strukcija i tabelu opkmlova. Pu potrcbi sc dodajc i tabcla s literalima.
Tabcia simbula ima pu jcclnu odrednicu La svaki simbol, kao slU je prikal'ano na slici
7-S. Simboli '" ebplicitno tnpr. [N:uduinstrukcijom EOU) iii tako se
uputrebc kao (en;!. labcisl. SvakJ odrcdnica tabcle simbola sadrzi sam sim-
bul 1 iii p< 1Ltzi vac na n1cga 1. njcglrcu broJI:anu Hednost, a ponekad i drugc informa-
cije. Dudatn:2 inf<,rmacij.: mugu da ubulnate
l. Duiinu JWlja podalke. p<>vezanog sa simlwlom.
1
Bituve ta relpJ..:aciju. (Da li stmbul mcnp \rcdnost ako se program ucita na
adte'iu drugaciju ()done k.o.JU je ctsemhier prctpnsta,io'?)
cl. Da li .JC simbol d<lSlUpan i/:\a[] prucedure.
1 Vrednost i Druge
--t1
0
,"----t
! I> I . :, ..) I
rP"os-Ei=i=rA ! 111
r----------;-------;---- -------1
! MARILYN ::25
_____ j
Siika 7-S. T:Lbcia '\imbnla -.;a slike 7-/
'



f
..
'
, ..



I
I
-
522
Poglavlje 7: Nivo asemblerskog jczika
Tabela opkodova sadrzi bar jednu odrednicu za svaki simbolicki opkod (mncmo-
nik) koji postoji u asemblerskom jeziku. Slika 7-9 prikazuje deo tabele opkodova.
Svaka odrednica sadrzi simbolican opkod, dva operanda, brojcanu vrednost opkoda,
duzinu instrukcije i broj tipa koji razvrstava opkodove u grupe. u zavisnosti od broja
i vrste njihovih operanada.
Razmotrimo, kao primer, opkod ADD. Ako instrukcija ADD ima registar EAX kao
prvi operandi 32-bitnu konstantu (irnmed32J kao drugi, onda se koristi opkod Ox05, a
duzina instrukcije je S bajtova. (Za ri-hitne i 16-bitne konstante koriste sc razliCiti op-
kmlovi, sto nije prikazano.) Ako sc instrukcija ADD koristi s dva registra kao opcran-
dima, instrukcija je duzinc 2 hajta. a opkod jc OxOL (Proizvoljno izahrana) klasa
instrukcija 19 obuhvata sve kombinacije opkodova i operanada koji postuju ista pra-
vila i obraduju sc na isti nacin kao i instrukcija ADD koja kao operandc ima elva regi-
stra. Klasa instrukcija u stvari oznacava proceduru unutar asemblera koja se poziva za
obradu instrukcija te klasc.
Opkod Prvi operand+Drugi ;;perand f Heksadeci- Duzina Klasa
I____ __ -=f:mfalni opkod instrukcije instrukcija
- - 37 1 6
___ 05 . 5 4 ---1
-------,---- .
reg ,01 2 19
AND 1 EAX _
i AND Jreg reg 21
L,: __ ----- ----- .

Stika 7-9. Dclovi tahek opkodova La '"emhkr Pentiurna 4.
Pri upotrcbi nckih ascmblera. programcri mogu da koristc instrukcije s neposred-
nim adrcsiranjem cak i kacla takva instrukcija ne postoji u ciljnom masinskom jeziku.
S takvim .. pscudoncposrednim'' instrukcijarna radi se na slcdeei nacin. Asembler rc-
zervise mcnwriju za nep<lsredni operand na kraju programa i generisc instrukciju koja
je referencira. Na primer. ccntralni racunar IBM 3090 nema instrukcije s ncposrcd-
nim opcrandima. Ipak. prngramcri mngu da napisu
L
kaku bi u n:gistar 14 ucitali konstantu 5 kao celu ree. Na nvaj nacin programer nc
nwra da ck:.plicitno upi,;ujc ps.:udoinstrukciju za dodeljivanjc reci inicijalizovane na
vrcdnl>st :5. da j<lj dajc nznaku ida zatim koristi oznaku u instrukciji L. Konstante za
kPjc a.,cmblcr auttllnahki re;:crvise mcmoriju zovu se literati (engl. lireru/s). Osim
sto programera pnstcduju malu pisanja. literali pobnljsavaju citljivost programa jcr
omoguca\aju da -,c vrednost konstante pojavi u izvornoj naredbi. Ascmblcr u prvom
mora da napravi tabclu svih litcrala koji sc kuriste u programu. Sva tri racu-
kuje smo ize!brali 1a primere imaju instrukcije s neposrednim operandima, tako
da njihovi a-;cmbkri radc s literalima. Instrukcije s neposrcdnim operandima danas su
uobicajcne. ali -;u nebda bile retkc. Verovatno su zbog masovnc upotrebc litcrala
knnstruktori ra(unar.t :-.inatili daJC ncposredno adresiranje dobra ideja. Akn '>LI literati
putrcbni, tabcb s literalima odrZa.va se tokom asembliranja, pri cemu se u njoj pravi
7.3 Proces asembliranja
523
nova odrednica kad god se naide na nov literal. Posle prvog prolaska, ova tabela se
urcduje i iz nje sc izbacuju duplirane odrednice.
Slika 7-10 prikazuje proceduru koja moze da posluzi kao osnova za prvi prolazak
asernblera. Stil programiranjaje posebno vrcdan paznje. [rnena procedura su tako iza-
brana da se odmah moze prepoznati sta procedura radi. Najvaznije je to sto slika 7-10
predstavlja marsrutu prvog pro1aska koja, mada nijc potpuna, preclstavlja dobru po-
laznu tacku. Ona je dovoljno kratka da se lako shvati i da istakne sledeci korak
- pisanje procedura koje se u njoj pozivaju.
public static void pass_one( ) {
II Ova procedura je marsruta prvog prolaska jednostavnog asemblera.
boolean more_input II indikator koji zaustavlja prvi prolazak
String line, symbol, literal, opcode; II polja instrukcije
int location_counter, length, value, type; // razne promenljive
final int END_STATEMENT = 2; II signalizira kraj ulaznih podataka
location_counter = 0;
initialize_tables( );
while (more_ input){
read_next_line( );
length= 0;
type= 0;
if (line_is_not_cornment(line)) {
symbol= check_for_syrnbol(line);
if (symbol null)
II asemblira prvu instrukciju na adresi 0
II opsta inicijalizacija
II more __input se postavlja na vrednost false
II instrukcijom END
II preuzmi red ulaznih podataka
II# bajtova u instrukciji
II kog tipa (!armata) je instrukcija?
II da li ovaj red predstavlja oznaku?
II ako predstavlja oznaku, zabelezi simbol
IIi vrednost
enter_new_symbol(symbol, location_counter)
check_for_literal(line): /Ida li red sadrzi literal?
if (literal II aka sadrzi literal, unesi ga u tabelu
enter_new_literal(literal):
II Sada se odreduje tip opkoda. 1 znaci nelegalan opkod.
opcode extract_opcode(line); // pronadi rnnemonik opkoda
type= search_opcode _table(opcode); // pronadi format (npr. OP REG1 ,REG2)
if (type < 0) // ako nije opkod, da li je pseudoinstrukcija?
search pseudo_table(opcode):
switch(type)( // odredi duzinu ave instrukcije
case 1. get_length_of_Jype1 (line); break;
case 2: get_length_of_type2(1ine); break;
II druge slucajeve uneti ovde
write_temp_file(type. opcode, length, line); // korisne informac1je za drugi prolazak
location_ counter= location_counter +length; // azuriraj location_counter
if END .. STATEMENT){ // jesmo li zavrsili sa ulaznim podacima?
more_input II aka jesrno, dovesti stvari u red
524
):
sort_literal_Jable( ) ;
remove redundanUiterals( );
Poglavljc 7: Nivo asemhlcrskog jezika
II npr. premotaj privremenu datoteku (temp)
II sortira1 tabelu literala
II i ukloni duplikate iz nje
Slika 7-10. Prvi prolaz.ak jcdnostavnog ascmh!t'ra.
Ncke od ovih procedura bice relativno kratkc. kao JC procedura
chl'ck_Jin kop samo vraca simbol kao znakovni niz ako simbol postoji, a
vraca null ako simbol ne postoji. Drug:c procedure. puput gct_lcngth_of'_typel i
ger_ll'ngth_of"_t)pe2. mogu da hudu du?.e. a i one mogu da pozivaju druge procedure.
Broj tipova, u opstcrn slucaju, naravno ncce hiti dva, vee cc zavisiti od jezika koji se
ascmhlira i tipova instrukcij<t kuje on ima.
Strul-.turiranjc programa na nvaj naC:in. usim olaU.am)g: prug:ramiranja, ima i druge
prcdnosti. Al-u ascrnblcr pi;e grupa !Judi, razliC:itc pmccdure ce pisati razliciti pro-
grarm:n. S vi ( nC/godn i) detalji prcu/i manp podataka skri vcni su irncnum
rew!_tw>:r_/ine. ;"\1-.u hude potrehno da sc oni promcnc (na primer. zbog promene ope-
rativnog sistc!lla). tO Ce pogoditi SJillO JCJilll sekundarnu pruccJuru. a gJavna proce-
dura fhlSS_!>IZC ostace kakva je i hila.
Dol-. cila progral11. procedura prvog pwbska Il1l'f"a da rasclani svaki red da hi u
njcmu upk"d i npr. ADD). utvnlila njcgov tip (u osnuvi, kombinaciju opera-
nada) i i/l"aCunala du/inu infonnaci_1c su potrebne i za drugi prolazak,
pa hi sc m"gle c'kspiicitnu ;.api-;ati da se rl'd nc bi pnnmo morao analizirati od
LL r>kdulllli. uplsivanje prd.u ulalllc dalokkc iza:vacc vise ulazno-izlaLnih opera-
cija. J)a lt _ic bdljc vi;e uLuno-i;Lv.nih <lpcracija uz manjc analiziranja iii manje
ub!tlo-i;b;niil Ol'c'l"Clcip uz arLtli!;ran;.t. ;avi:;i oJ relativnih br;:ina proccsora i
diska. ud eiiLhiwsti sistema datutcka i drug1h C:inilaca. U nasem primeru ispisacemo
privrem.cnu k<'_)a ;,adrzati tip. upkud. du/.inu reda i s:lm red ulaznih poda-
takcl. J'rocccliira c: U drugrlll pn,Jask\1 Ul1h.':;tJ sir<lVUg rcda podataka UCitavati OVako
innc:njcn r.:d.
Kada se uC:iu i pseu<kitblruL.:ija END. prvi prolazak. Tada se. akojc to
pPtichno. mugu tdhclc :,imhula i liter:.da. U ,mriranoj tabeli litcrala mogu se
potn/.iti durlik:tli i iz.nj, i.'bilciti.
7.3.3 Drugi prolazak
t: jc 1.1ljc"ktnog i, n1o?.Ja, Stampanje li-
stinga a-;c:n>:>kr_,;.;,,g k('<L'- o,.im toga. n dn.Ig<11ll l'mbsku sc prugramu za povezi-
\anjc ilinl-..c"ni) !lH'<"aju ,,hczhediti inft'rma,:lic !ll>lrehnc ta povcLivanje procedura
koJC sc: ascmhliLtju JeJna od Jrugc "jldin:,tvcnu i1vrsnu datotel-..u. Slika
7-l l prikazu_iL drugi proLuak..
7.3 Proces asembliranja 525
Drugi prolazak manje-visc lici na prvi: procedura ucitava i obraduje jedan po je-
dan red. Posto smo tip, opkod i duz.inu zapisali na pocetku svakog reda (privremene
datotekc), svi ti podaci uC:itavaju se da bi se manje vremena trosilo na analiziranje.
Glavninu posla pri generisanju koda obavljaju procedure evul_typel, eval_type2 itd.
Svaka od njih ohraduje odredenu kombinaciju (npr. opkod selva registra kao operan-
di rna). One generisu binami kod instrukcije i vracaju ga u promenljivu code, koja se
tada ispisuje na izlaz. Verovatnije je. medutim, da procedura write_nl.ttput samo aku-
mulira binarni kod u haferu i datoteku upisuje na disk u krupnim komadirna. cimc se
prorcduje pristupanje disku.
Originalna naredba izvomog programa i objektni kod koji je od nje generisan
( u heksadecimalnom formatu) tad a sc rnogu odstampati iii smestiti u bafer t.a kasniJC
stampanje. Posto se podcsi promenljiva !LC, preuzima se sledeca narcdba.
public static void pass_two( ) {
II Ova procedura je marsruta drugog prolaska jednostavnog asemblera.
boolean more_input =true; II indikator koji zaustavlja drugi prolazak
String line, opcode; II polja instrukcije
int location_counter, length, type; II razne promenljive
final int END_STATEMENT =- 2; II signalizira kraj ulaznih podataka
final int MAX CODE = 16; II maksimalan broj bajtova koda po instrukciji
byte code[]= new byte[MAX_CODE]; II cuva generisani k6d za svaku instrukciju
locat1oncounter = 0;
while (more _input){
type= read_type( );
opcode = read_opcode( ):
length= read_length( );
line= read_line( ):
II asemblira prvu instrukciju na adresi 0
II more _input se postavlja na vrednost false
II instrukcijom END
II uzmi polje za tip sledeceg reda
II uzmi polje za opkod sledeceg reda
II uzmi polje za duzinu sledeceg reda
II uzmi red ulaznih podataka
if (type I= 0) { II tip 0 je za redove s komentarima
sw1tch(type){ II generise izlazni k6d
case 1: (opcode, length. line, code): break:
case 2: length. line. code); break;
II ovde dolaze drugi slucajevi (case)
wnte_output(code); II upisivanje binarnog koda
write_listing(code, line): II stampanje jednog reda listinga
location_counter = location_counter +length; II azuriranje promenljive location_counter
if (type== END _STATEMENT)( II jesmo li zavrsili sa ulazom podataka?
more _input= false; II ako jesmo, napravimo red
finish _up( ) : II otpaci
Slika 7-11. Dwgi prolazak j<.Odnustavnog asembkra.
t!;
'l
,




li

til


,.

I!'




i
l
1-
l
- I
' . :
....
526 Poglavljc 7: Nivo asemhlerskog jezika
Do ovog trenutka, pretpostavljali smo da izvorni program ne sadrzi greske. Svako
ko je ikada pi sao program na bilo kom programskom jeziku zna koliko je takva pret-
postavka realisticna. U uobicajene greske spadaju:
I. Simbol je upotrebljen, ali nije c!etinisan.
2. Sirnbol je detinisan vise puta.
3. !me u polju za opkoc! ne predstavlja va:leci opkod.
4. Uz opkod nisu definisani svi operandi.
5. Uz opkod je detinisano previse operanada.
6. Oktalni broj sadrzi cifru 8 ili cifru 9.
7. Nclcgalno koriscenje registra (npr. skuk na rcgistar).
8. Ncdustaje naredba END.
Samo programcri mogu da smislc ovakvc i drugc grcske. Greske u definisanju sim-
bola cesto nastaJU zhog pri unosenju, pa bi inteligentni asemblcr mogao da
uporcdi neprepoznat sirnbol s definisanim simbolima i da umesto njcga upotrebi naj-
priblizniji dcfinisan sirnbol. Sa ostalim navedcnim grei:kama malo sta moze da uradi.
Najvise se od njega nmze ocekivati da, kad naiLte na grdku, prikazc poruku o njoj i po-
kusa da nastavi asembliranje.
7.3.4 Tabela simbola
Tokom prvug pro Iaska ascmblcr prikuplJa informacijc o simbolima i njihovim vrcd-
nostima koje sc moraj11 smcstiti u tahclu simbola kako bi mu bile na raspolaganju pri
drugom prolasku. Tabela simhola sc moze organizovati na vise nacina. U nastavku
cemu nekt: od njih ul--ratJ..;o opisati. U svakorn od njih pokusava se imitirati asocijativna
mcmorija (engl. us.wciutivc mcmotT). koja koncepcijski predstavlja skup parova sirn-
KadjPJ sc zada sirnbol. asncijativna mernorija mora da vrati vrednost.
Tabcla simhola se zaista najlak;c implcmentira kao niz (jednodimenzionalna ma-
trica) parova, ciji prvi element ukazujc na simbol iii predstavlja simbol. a drugi uka-
zuje na vrcdnost iii jc.ste vrcdnost itd. Kada se zada simbol, potprogram tabele
simbola treba '>amu da linearnu prctra,;i tahclu kako bi pronasao poklapanje. Ova mc-
hJda .-;e lako program ira. ali je spora jcr se pri svakorn trazenju u proseku pretrazuje
polovina tabclc.
Drugi nacin jC da sc tabcla simhoLt sortira prenw simbolima i da se za njihovo
trazcn_IC upotrehi algoritam binarnog prctrazivanja (engl. hinarv search). Ovaj al-
goritam radi sto sa simholnm prvo pmcdi srednjuodrcdnicu tabcle. Ako se sirn-
bnl prema aheccdnurn rcdo:;ledu naLv.i ispred srcdnje mlrednice, on je u prvoj
po!ovini tabele. l'koliko sc simbc)l nalazi posle srednje odrednice, on je u drugoj po-
iovini tabele .. L\ko je simbul jednak sreclnjoj odrcdnici, pretrazivanje se zavrsava.
Ukoliku pretpnstavimo da simbo! nijc jednak srcdnjoj odrednici tabele, bar smo
saznali u kojnj ;;c jlll!< vini tabele naiazi. Binarno pretrazivanje sc tada mozc primeniti
na .,sigurmr' polovinu, a rezultat ce biti ili pogodak ili ,sigurna" cetvrtina tabele.
7.3 Proccs asembliranja 527
Kac!a algoritam primenimo rekurzivno, tabela san odrednica moze se pretraziti u pri-
blizno log
2
n pokusaja. Ocigledno da je ovo pretrazivanje mnogo brie od linearnog,
ali tabcla uvek mora da buc!e sortirana.
Potpuno drugaciji nacin simuliranja asocijativne memorije koristi se u tehnici hes-
-kodiranja (engl. hash coding) iii he5iranja (engl. hashing). Tu je potrebno imati
,he5" funkciju koja preslikava simbole u eele brojeve iz intervala od 0 do k - 1. Jedan
oc! mogucih nacina jc cia se pomnoz.e ASCII kudo vi znakova u simbolirna (pri tom se
zanemaruje prekoracenje) i uzme ostatak deljenja sa k ili deljcnja nekim prostim bro-
jem. U stvari, pogodna je svaka funkcija ulaznih podataka koja daje ravnomernu
raspodelu hesiranih vrec!nosti. Simboli se mogu cuvati u tabeli sa k kofica (engl.
/;uckets) numerisanih od 0 do k,- 1. Svi parovi ciji se simboli hesi-
ranjem prctvaraju u vrednost i cuvaju se u povezanoj listi na koju ukazujc odrednica i
te hd tahcle. Uz n simbola i k odrednica u hes tahcli, prosecna lista ce biti duzine nA.
Kada je k priblizno jec!nako n, svaki simbol se moze pnmaci prosccno samo jcdnim
prctrazivanjcm tabele. Podesavajuci k mozemo da smanjimo velicinu tabclc naustrb
sporijeg pretrazivanja. Hdiranjc je ilustrovano na slici 7-12.
Andy 14025 0
Anton 31253 4
Cathy 65254 5
Dick 54185 0
Enk 47357 6
Frances 5644:> 3
Frank 14332 3
Gernt 32334 4
Hans 44546 4
Henri 75544 2
Jan 17097 5
Jaco 64533 6
Maarten 23267 0
Rernd 63453 1
Roel 76764 7
Wrllem 34544 6
Wiebren 34344 1
Hes (a)
tabela Povezana tabela
Andy 14025 I 3--1 Maarten I 23267 I +I Drck I 54185 I
Reind 63453 I 3--1 Wrebren I 34344 I I
Henrr 75544 I I
Frances 56445 I 3--1 Frank I 14332 I I
Hans 44546 I 3--1 Gernt I 32334 I +I Anton I 31253 I I
Jan 17097 I 3--1 Cathy I 65254 I I
Jaco 64533 I 3--1 W>llem I 34544 I +I Enk I 47357 I I
I Roel I 76764 I I
(b)
Slika 7-12. Hdiranje. (al Simbnli. vrcdnosti i hd kljul:evi izvcdcni iz ;;imbola.
(hi He\ tabcla sa lJSant odrcdnica i povezanim list:mw simbula i vrednosti.

528
Poglavljc 7: Nivo asemhlerskog jczika
7.4 POVEZIVANJE I UCITAVANJE
Programi uglavnom ne sadrzc samo jcdnu. vee vise procedura. Prevmlioci i asem-
b!cri po pravilu prcvode samn jednu proceduru ujednorn trenutku i rezullate smc:itaju
na disk. Pre nego sto se program pokrenc, svc prevedene procedure moraju se pronaci
i na pravi nacin mcdusobno povezati. Ako nc postoji virtuelna memorija. tako pove-
zan program mora se i eksplicitno ucitati u glavnu memoriju. Programi koji ohavljaju
ove funkcijc poznati su kao programi za povezivanje (engl. Linker, Linking ioude;;
Linkuge edilOr). Potpuno prevodcnje izvornog programa odvija se u dva kuraka. L.w
na slici 7-13:
I. Prevodenjc iii asembliranje izvornih proccdura.
2. Povezivanjc objektnih modula.
Prvi korak ohavljaju prcvodilac iii ascmbler. a drugi obavlja program za
povczivanje.
lzvrsni
brnarni
program
Slika 7-IJ. Ct..nt..ri:..:mje binarnng prugr,uua od ')h.upa nczavi-.;no prc\cdcnih i....:vnrnih
pnJct..'dura prngram ;a p\l\ L'Li\ :u:jc.
Prevt>cknje il'\<1rnc procedure u (lhjcktni nwdtd prcd.,ta"lp nivoajer iz-
\Orni i iilldju raz.li.:'itc instrukcijc i Pt\>c-.:s poh:zivanja. medutim,
nc predstav lj:l ptumc:nu 11iv "a posto su i uiaL u O\ aj pn '"-'"m i ::jcgov rezultat pm-
grami ;:a ISILJ vinuelnu masiilll. Ulug:1 prugrarn:: ;a p(>ve;:ivanje da sakupi proce-
dure k<1Je su nuavisnu prC\ldene i dJ th rnc:dust,bnu f'U\'C:f.c u cclinu
zvanu izvrsni hinarni program (engl. ,'.rc, ltiu!Jil' 1. U opcrativnim
si.-,temima 1\lS-DOS. Windows 05/lJK i \; r. ohjcktni muduli im:tiu nastavak .ohj. a
hin,\i"lll prugrami n:,: caval.: .c.rc. U l';"\l !X-u. uhjcktili moduli imaju nastavak
.o: ht!.:rlll prugr:rmi nc:maju nasta,ak imen:t.
Prc:vudil>Cl i iz dllbrih ra;:lu)2a rr-:Hnk svaku il\l)rillJ proceduru kao po-
sehuu Lclinu. hi prc'.'odiliK ili ni/ i/vurnih procedura i gene-
ri:<H) n:i nla:: in..;korn jcL.iku k_pjj rnu/.c \ ;.:li. ld pro1nenu jednc
naredbc Li sanl\1 izvornoj biltl bi putrci>nu cb se '"" izvorne proce-
dure il.llU\ a
A.ko '.e knri-;r; tchnika nc;:rvisnih llbjcktnih fll<.>dula 'd sl;kl' 1.0. tada hi hilo po-
trt:bn< pntwvu prt:vc.,ti sam( izmcnj.:nLJ pru(t:dun!. d nc i <;t:e kujc: ,,c nisu menjale.
7A Povezivanje i ucitavanje
529
mada ipak sve treba pnnovo povezati zajcdno. Povezivanje je obicno mnogo hrze od
prevodenja. pa se primenom dvostepenog procesa prevodenja i povezivanja stedi
mnogo vrcmena tokom razvijanja progmma. To je narocito uocljivo u programima sa
stotinama i hiljadama modula.
7.4.1 Poslovi koje obavlja program za povezivanjc
Na pucctku prvog prolaska asemblera, brojac lokacija za inslrukcije postavlja se
na 0. To je ekvivalentno prctpostavci da cc objcktni modul tokom izvrsavanja biti
smesten na (virtuclnnj) adresi 0. Slika 7-14 prikazujc cetiri objektna modula za gene-
ricki racunar. U ovom primcru svaki modul pocinjc instrukcijom skoka (BRANCH) na
instrukciju ta premestanje (MOVE),unutar rnodula.
Objektni modul A Objektni modul 8
400 600
300
CALL 8
500 CALLC
200 MOVE PTO X
400
tOO
300 MOVE 0 TO X I
0
BRANCH TO 200
200
500
Objektni modul C
100
0
BRANCH TO 300
400 CALL D
Objektni modul D
300
300
200
MOVER TO X
200 I MOVE s TO X I
100
100
0 BRANCH TO 200
0
BRANCH TO 200
Stika 7-1-t S\aki modul ima sopslvcni adrcsni prostnr koji pocinjc adrcsom 0.
Da hi pokrenuo program. program w povezivanje prenosi objektne muduk u glav-
nu menwriju Lako da obrazuje sliku izvrsnog hinamog programa. kao na slici 7-1 5( a).
!deja je da se unutar prograrna za pnvezivanje stvori verna slika prostora virtuclnih
adn:sa iLvr;nog prngrama ida se svi objcktni moduli pustave na svcJja odgovarajuca
mesla. Ako ncma dovoljno (virtuelne) m<:'murije da sc obralllje slika, muzc seta flJU

'II
]
.
I
.

tit
11
t':


.,





11

j"
;'
if(

t
t


fi





/;
I



I
!..L-
530
Poglavlje 7: Nivo asemblcrskog jezika
upotrebiti datoteka na disku. Najcesce se delic memorije, pocev od adrese nula, kori-
sti za vektore prekida, komuniciranje sa operativnim sistemom, pronalazenje neinici-
jalizovanih pokazivaca i u druge svrhe, tako da programi cesto pocinju negde iznad
adrese nula. Na ovoj slici, program smo (proizvoljno) zapoceli na adresi 100.
Program sa slike 7-IS(a), iako ucitan u sliku izvrsne biname datoteke, jos uvek
nije spreman za izvrsavanje. Razmotrite sta bi se dogodilo kada bi izvrsavanje ot-
pocelo instruk.cijom na pocetku modula /\. Programski tok ne bi skocio na instrukciju
MOVE kao sto biste ocekivali jer se ta instrukcija sada nalazi na aclresi 300. U stvari,
iz istog razloga bi promasile sve instrukcije koje referenciraju mernoriju. Ocito jc cia
nesto treba precluzeti.
Ovaj problem, poznat kao problem nastaje zato sto svaki objektni
modul sa slike 7-14 predstavlja poseban adresni prostor. Na racunaru sa segmentira-
nim adresnim prostorom, kao sto je Pentium 4, teorijski bi svaki objektni modul
mogao imati sopstveni adresni prostor ako bi bio smesten u poseban segment. Medu-
tim, OS/2 je jedini operativni sistem za Pentium 4 koji podrzava ovaj koncept. Sve
verzije Window sa i UNIX-a podrzavaju samo jeclan linearni adresni prostor, pa se svi
objektni moduli moraju povezati u jed an adresni pros tor.
Stavise, nece raditi ni instrukcije za pozivanje procedura sa slike 7-15(a). Na adre-
si 400 programer je nameravao da pozove objektni modul B, ali posto se svaka pro-
cedura prevodi ponaosob, asembler nema nacina cia zna koju adresu da unese u
instrukciju CALL B. Adresa objektnog modula B ne zna se do trenutka povezivanja.
Ovaj problem je poznat kao problem spoljasnjeg rcfcrcnciranja. Oba pomenuta
problema, mcdutim, lako resava program za povezivanje.
Program za povezivanje ( kako mu ime kaze) povezuje zasebne adresne pros tore ob-
jektnih modula ujedinstven linearan adrcsni prostor, preduzimajuci sledece korake:
l. On konstruise tabelu sa svim objektnim moduli rna i njihovim duzinama.
2. Na osnovu ovc tabele, on svakom objektnom modulu dodcljuje pocetnu
adresu.
3. On pronalazi sve instrukcijc koje rcfcrenciraju memoriju i svakoj clodaje
konstantu relokacije (engl. relocalion conslwlt), JCdnaku pocetnoj adresi
odgovarajuceg rnodula.
4. On pronalazi svc instrukcije koje ref'erenciraju drugc procedure i u njih ugra-
duje adre>.e tih proceclura.
Prikazana tabela objektnih modula koja sc konstruise u prvom korakuodnosi se na
module sa slike 7-15. U njoj su ime, duzina i pocctna adresa svakog modula.
Modul
A
B
c
D
Duzina
400
600
500
300
Pocetna adresa
100
500
1100
1600
7.4 Povezivanje i ucitavanje 531
Slika 7-15(b) prikazujc kako adresni prostor sa slike 7-15(a) izgleda nakon sto
program za povezivanje obavi navedene korake.
1900
1800
MOVES TOX
Objektni
modul
D
1700
1600
BRANCH TO 200
1500
CALL D
1400
Ob;ektni
modul
MOVER TO X c
I
1300
I
BRANCH TO 200 I
j
1200
1100
1000
CALLC
900
Ob;ektni
800 MOVE QTO X
modul
B
I
700
I
BRANCH TO 300
j
600
500
400
CALL B
Ob]8ktni
300 MOVE PTO X
modul
A
2UO
TO 200
100
0
1900
1800
MOVES TO X
1700
1600
BRANCH TO 1800
1500
CALL 1600
1400
1300
MOVER TO X
1200
1100
BRANCH TO 1300
1000
CALL 1100
900
800 MOVE 0 TO X
700
600
TO 800
'
500
400
CALL 500
300 MOVE PTO X
200
BRANCH TO 300
100
0 I I
I
""
Ob;ektni
modul
D
Objektnl
modul
c
Objektni
modul
B
Objektni
modul
A
Slika 7-15, (a) Objd.tni moduli .,a slike 7-1+ nakun sill su smdteni u binarnu sliku, ali pre ncgo
stu su relocirani i povezani. (b) Isti objektni moduli nakun povezivanja i relociranja.

l
."\<
f:
::

i1
l>"
"

'


;:i
:.,;
::

1



532
Poglavlje 7: Nivo asemblerskng jczika
7.4.2 Struktura objektnog modula
Objcktni moduli se cesto sastojc od scst dcluva, kao na slici 7-16. Prvi dco sadrzi
ime modula. izvesnc infonnacije potrebne prograrnu za povezivanje, kao sto su duzi-
ne razlicitih dcluva modula i, ponekad, datum asembliranja.
Kraj modula
,Recnik"
za relociranje
Masinske instrukcije
i konstante
Tabela spoljasnjih referenci
Tabela ulaznih tacaka
ldentifikacija
Slika 7-16. lntcrna 'truktura uhjcKtuog rnoJula hoji je generisao prnodilac.
Drugi dco objcktnug nwdula jc lista simbola definisana u modulu. koje mugu da
rcfcrcnciraju drugi moduli, zajedno s njihovim vn:dnostima. Na primer. ako modul
preLbtav lja procecluru cudoneviJjeno, tabela sa ula;.nim tackama sadrzace znakovni
niz. ,cudonevidjcno'' i adresu te procedure. Programer na asernbler-;kom jeziku ddla-
risace ovak ve simbolc koji sluze kao ulazne tackc t engl. entrv points) pomocu pseu-
dninstrukcijc slicne pseudoinstrukciji PUBLIC sa slike 7-3.
Treci dco Pbjcktnog modula je lista simbola kuji se koriste u modulu. ali su deti-
nisani u drugim modulima; uz nju je i lista u kojoj su za svaki simbol navedene i in-
strukcije koje ga koriste. Ova druga lista je potrebna programu za povezivanje da bi
u instrukcije koje koriste spoljne simbole uneo ispravne adrcse. Procedura mole cia
poziva druge nezavisno prcvedcne procedure deklarisuc'i njihova imena kao spoljna.
Programer ce takve spoljne simbolc (engl. ntcnwl svmho/s) naznaciti posebnom
pseudoinstrukeijom, slicnom pseudoinstrukeiji EXTERN na ';lici 7-3. Na nekim racu-
narima. ulazne tackc i spoljne reference kombinm ane su u jedinstvenu tabelu.
Cetv11i dco objektnog modula su asemblirani kl)d i konstante. Samo ovaj cleo ob-
jektnog modula sc u memoriju za Ostalih pet dclova olaksavaju
pnsao programa za povezivanjc i odbacuju se pre ncgo sto pocne izvrsavanje.
Peti deo objektnog modula je ..recnik" za relociranje. Kao sto je prikazano na slici
7-l'i. instrukcije koje sadrze memorijske adrese mor,lju imati dodatu konstantu za rc-
lociranje. Postu program za povezivanje ne zna sta su u cetvrtum delumodula masinskc
instrukcije a \ta konstantc. u ovoj tabeli se nalaze infPnnacije o tome koje adrese treba
relucirati. Te informacije mugu da budu u ohliku tabde bitova. sapo jednim bitorn za
adrese koje potencijalno trcba rclocirati. iii u obliku liste takvih adresa.
7.4 Povczivanjc i ucitavanje
533
Sesti deo sadrzi znak za kraj modula, mozda kontrolni zbir za otkrivanje gresaka
prilikom ucitavanja modula i adrcsu od koje pocinje izvrsavanje.
Vecina programa za povezivanje radi u elva prolaska. U prvom prolasku progr<LITI
ucitava sve objektne module i pravi tabelu njihovih imena i duzina, kao i tabelu glo-
balnih simbola koja sadrzi sve ulazne tacke i spoljasnje reference. U drugom prolasku
ucitava se jedan po jedan modul, rclocira se i povezuje.
7.4.3 Vreme povezivanja i dinamicko relociranjc
u sistemu koji istovremeno radi s vise programa. jedan program moze biti ucitan u
glavnu memoriju. izvrsavan od,redeno vremc. zapisan na disk i zatirn ponovo ucitan u
glavnu rnemoriju da bi ponovo bio izvrsen. U velikom sistemu, u kome se izvr;Jva
mnogo programa, tesko je obezbecliti da se isti program svaki put ucita na istc lokacije.
Slika 7-17 prikazuje sta bi se dcsilo kada bi se vee relociran program sa slikc
7-15(b) ponovo ucitao na adresu400 tunesto na adre'iu 100. gde gajc program za po-
vezivanje prvobitno smestio. Sve memorijskc adrcse postaju ncispravne; stavise. m-
formacije o relociranju su davno obrisane. Cak i da nisu obrisane. ecna relnciranja
svih adresa kad gud se program uCita s diska, previsoka je.
Problem 'prernt:Stanjem programa koji su vee .JCdnom bili povczani i relocir<lni.
tesnn je povezan s trenutkom u korne se simbolicka irnena kPnacno povezuju sa ,lp-
solutnim lizickim adrc:-;ama u memuriji. Kada se program pise. u njcnnt umestu fiLic-
kih adresa postoje simbolicka imena ( na primer, BR L). Trenurak u kome se odrcd
1
.1je
stvarna adresa koja udgovara L mve se \Tcmc vczivanja (engl. binding till!<').
Za njL'ga postoji bar sest prilika:
I. Kada se program pise .
2. Kada sc prevodi.
3. Kada <,e program j1ll\'C!Uje. ali jo::: nije ucitan.
4. Kalht se program ucitava.
5. 'e uCita vrcdr1ost u osnuvni registar kdji slu-'! adrc.,ir:mje.
6. sc itvrsa\ a im;trukcija k()ja ;:ldrzi adrc,u.
LkolikL' ,c instrukcija kop sadr/j memunj:,ku ad;e:,u premcsti po.,;le vcziva;:ja.
ona cc: nci.srmnJu (Ul pretpnstavku daje premesten i '-'bJcl-;at na kuji una uka-
/Ujc'l. _.\}._u prcvndilac ka,, re1ul:at genctise biuarnu clatuteku. v:Li'.anjc: se
ubavlja wkum ptc'voclen_id i prugratLl :--c mora izvT\avati ud adn:se kPjujc pretpu'il:.i'. io
progtam:..ki prc':udilac. :'vlet11da ;1ove!ivanj:.t npisana u pret!wcln,1m udeljku \e!uje
sin1holilJ-..<-l i:ncna :tp,.,olu:ne adrc-.;c tukun1 po\'tzivanja. 1.hog l:cga
pnsk puvuiv:mp ,!uvucii do njihovug ktaha t:-.lika 7-171.
Chdc su u tgri ch a mcdL:sLlhtw srodna mcha;1iLm:L Prvo je pitall.JC kada se :..imbn-
licka in1c::1a veL.Ujll r.a vinuclnt' aclrc":, clrugu. Ltda se virtuclnc adrc:se \'CZli.Jll n
lizicke. VeLi\CW)C jc pu[illli1<> .s:uno Ltda ,t' ob,t prucc,a zavrs:. Kacb pro>;ram 1a po-
\.cJ:ivanjc objt'dini adresne ehjt."ktnlh rnnduL..l u jcdan lincarnt prn-
:-.tor on u "t\ari pravi prn:-,tor vinuclnih adn_.:,i.L Rch,ciranjc i p\)Veitvanjc
-------------------
tt
.,
.t
;l
J
:t


. ,
;j
;j
t4



"i r
'4"
534 Poglavlje 7: Nivo asemblerskogjezika
da vezu simbolicka imena za odgovarajuce virtuelne adresc. Ova tvrdnja vazi bez
obzira nato da li se koristi virtuelna memorija iii ne.
2200
2100
MOVES TO X
2000
1900 BRANCH TO 1800
1800
CALL 1600
1700
1600 MOVER TO X
1500
1400 BRANCH TO 1300
1300
CALL 1100
1200
1100 MOVE OTO X
1000
900
800
BRANCH TO BOO
700
CALL 500
600 MOVE PTOX
500
400
BRANCH TO 300
1
J
l
J
>
Objektni
modul
D
Objektni
modul
c
Objektni
modul
B
Objektni
modul
A
Slika 7-17. Rclociran binarni program sa slike 7-lS(b) saclaje premesten 300 adrcsa navise.
:Vlnoge instrukcijc sada ukazuju na neispravnu memorijsku adrcsu .

7.4 Povezivanje i ucitavanje 535
Pretpostavimo za trenutak da je adresni pros tor slike 7 -15(b) stranicen. J as no je da
su virtuelne adrcsc koje odgovaraju simbolickim imenimaA, B, C i D vee bile odred:::-
nc, iako ce njihovc fizicke adrese u glavnoj memoriji zavisiti od sadrzaja tabele stra-
nica u trenutku kada se budu koristile. U izvrsnom binamom programu, simboliC(a
imcna su stvarno vezana za virtuclne adrese.
Bilo koji mehanizam pomocu koga se preslikavanje virtuelnih adresa u tlzicke me-
morijske adrese moze lako menjati, umnogornc bi olaksao premdtanje programa po
glavnoj memoriji, cak i nakon sto se oni vezu za pros tor virtue! nih adresa. Straniccrje
je jedan takav mehanizam. Posle prcmestanja programa u glavnoj memoriji, treJa
promeniti samo njegovu tabelu stranica, a nc i sam program.
Drugi mehanizamje korisc'enje registra za relociranje tokom izvrsavanja. Racunar
CDC 6600 i njegovi naslednici imaju takav registar. U racunarima koji koriste o;u
tehniku relociranja, registar uvek ukazuje na fizicku memorijsku adresu pocetka tc-
kuceg programa. Na sve memorijske adrese se pre njihovog slanja u memoriju
sadr?.aj registra za rclociranje. Korisnicki programi uopste ne vide proccs rclociran;a.
Oni cak i ne znaju da se to dogada. Kada se program premesti, operativni sistem mcra
da azurira sadrzaj registra za relociranjc. Ovaj mehanizam je manjc univerzalan od
stranicenja jer se citav program mora premestati kao jedinstvena celina (osim aw
postoje zasebni rcgistri za relociranjc knda, odnosno podataka, kao kod Intcla sms.
kada sc program premdta u dve celine).
Treci mehanizam sc moze primeniti u racunarima koji mogu da rcferenciraju rrc-
rnoriju u odnosuna programski brojac. Mnoge instrukcije za grananje zavise od sadr-
zaja programskog hrojaea, sto podrzava ovaj mchanizam. Kada se program prcme,ti
u glavnPj memoriji, treba azurirati samo programski brojac. Program. cije su sve ne-
morijske reference relativnc u odnosu na programski brojac ili su apsolutn..: (npr. re-
ference na apsolutnc adrese registara ulazno-izlaznih urcdaja) naziva sc pozicio!lo
nezavisan (engl. position independent). Poziciono nezavisna procedura moze se
smestiti bilo gde u prostor virtue! nih adresa i ne mora se relocirati.
7AA Dinamicko povezivanje
Strategija povczivanja o kojoj smo gnvmili u poglavlju 7.4.1 cini da se progr;:m
pre izvrsavanja powzujc sa svim proccdurama koje bi mogao po;vati. U racunaru
koji ima virtuclnu mcmuriju. pri ovakvom potpunom povczivanju pre poc.:tka
vanja ne koriste se potpuno moguc'nosti vinuclnc memorijc. ivlnogi programi irmju
procedure kuje se puzivaju samo u sasvim neuobicajcnim okolnostima. Na prim:r,
prevmlioci imaju proccdur10 za prevocknje rctko korisc'cnih narc:daba. kao i proc:c:dtre
za ohradu grdaka koje se rctkcl dogadaj u.
flekoihiiniji nacin povczivanja nezavisno prevcdenih proccdura bi lo bi pove:.i-
vanjc svake prucedurc u trenutku kada sc prvi put pozovc. Ovaj pustupak je pozr.at
kau dinamicko povezivanje.
Prvi put je uvcdcn u uperativnom sistcmu l\1 ULTfCS i ta implcmentacija je i cbn-
uanas u izvesnom smislu neprcvazidcna.
536
Poglavlje 7: Nivo asemblerskogjezika
Dinamicko povezivanje u IVIULTICS-u
U lv!ULTICS-ovoj izvedbi dinarnickog povezivanja. svakum programu je pridru-
zen tzv. vezni segment (engl. linkuge segment); on sadrzi blok informacija za svaku
proceduru koja moze da hudc pozvana. Na pocetku bloka jc rec rezervisana za virtu-
dnu adresu procedure, iza koje sledi ime procedure u obliku znakovnog niza.
Kada se koristi dinamicko povezivanje. pozivi procedurama na izvornom jeziku
prevode sc u instrukcije koje inclirektno adresiraju prvu rei' odgovarajuceg bloka za
povezivanje. kao na slici 7-1 Prevodilac popunjava ovu rec nekom neispravnom
adrcsom iii specijalnim nizom bitova koji izaziva upadanje programa u klopku.
Kada se powve procedura u nckom drugom segmentu, pokusa.J da se inclirektno
adrcsira neispravna rec skrecc programski tok u klopku- ka programu za dinamicko
povezivanje. Taj program zatim pronalazi znakovni niz u rei'i koja sledi iza neisprav-
ne adrese i po korisnikovorn direktorijumu s datotckama traii prevedcnu proceduru
tog imcna. Njoj sc tada dodeljujc virtuclna adrcsa. obicno u njcnom sopstvcnom pri-
vatnom scgmcntu, i ona sc upisuje preko ncispravne aurese u veznom segmcntu, kao
stu je pokazano na sl ici 7 -I 8(b ). Poslc toga se instrukcija koja je izazvab dinamicko
povezivanjc ponovo izvrsava. sto omogucujc programu da nastavi izvrsavanje od tac-
ke na kojuj je hio pre nego sto je upao u klopku.
Svako sledde pristupanjc proccduri proci ce ba greske jer indirektna rec sada
sadrzi ispravnu virtuclnu adresu. Prema tmnc. program za uinamick.o povczivanje po-
krccc se .'iamo kada sc pmccdura prvi put pozovc.
Dinamicko povczivanje u Windowsu
Sve ver;,ije opcrativnog sistema Windows. ukljucujuci i NT, podr/.avaJU dinamii'-
ko puvezivanje ina njega se oslanjaju. Za dinamicko povczivanje koristc sc datoteke
spccijalnog furmata. tzv. DLL (Dynamic Link Library) iii dinamickc datotekc. DLL
datotcke mugu da sadrze procedure. podatke iii i jell no i drugo.
One ohicnu omogueavaju da dva iii vise prucesa uele hiblioteckc procedure iii
podatke. iVhh)gL' DLL datoteke imajunastavak .d/1. ali postuje i drugi nastavci. na pri-
mer .dn (ta biblioteke upravljackih programal i .Jim (za biblioteke fontova).
Najval.niji oblik DLL datotcke je bihlioteka sa zbirkom proccdura koja 'e mo;;e
ucitavati u memoriju cia bi istovremeno hila dostupna mnogim prncesima. Slika 7-19
ilustruje dva programa koji dele istu DLL datoteku sa cetiri procedure: A, B. C i D.
Program I u ovum slucaju kori,ti procecluru A. a program 2 proceduru C. alibi ISto
tako mugli da istovrcmeno koristc jednu proceduru.
DLL datoteku sastavlja program 1.a povezivanje od vise ulaznih datoteka. Pra-
vljenjc DLL datoteke je u stvari veoma slicno pravljenju izvrsnog binarnog progra-
ma. osim stll sc programu za povezivanje posebnim indikatorom oznacava da trcba da
napravi DLL datotcku. DLL datuteke se obicno prave od zhirke biblioteekih procc-
dura kojr: primcnJuju uglavnom svi kurisnicki pmcesi. Procedure koje pristupaju
Windowsmoj hiblioteci sistemskih poziva 1 velike gralicke bibliote. uubicajcni su
primen DLL datmcka. DLL datoteka se memurija i prustor na
7.4 Puvezivanje i ucitavanje 537
Segment procedure Vezni segment
CALL EARTH
lndirektna rec
- -r - _ ----- II lnformaciJe .
' ' " ' v ' J za poveZ1Va111e
procedure AIR
CALL FIRE
CALL AIR
lme procedure
CALL WATER
1 ' 1 ' 1 '' 1 '- vuY<:.<f-- se cuva kao
znakovni niz
CALL EARTH
CALL WATER
(a)
Segment procedure Vezni segment
CALL EARTH
" Ka proceduri earth
CALL FIRE
CALL AIR
CALL WATER
CALL. EARTH
CALL WATER
ibi
Slika 7-1 S. pn\ eli ( aJ Prl' Jl' pt l'f\ana pr 1ccJura E.\ l?.Tf f. (h) :;w
jl 1-./\l?TH i
disku. Ka,L! bi 'iC n.:b bil>li<'tcka prucedura >Llticn'' vuala za 'ivaki pn,grau
koji .JC kuri,ti. on a bi sc pojav i:a u nlll<)gim it\ hinamim dat,,rch.ama di>ku i
u n1cn1oriji. njihoY drag11Ccni L:z [)LL tLttot.:k.:. S\':tka bihiiotcka :;.:
pojav 'amu jcdnum na dio,kLI i jed nom u mcnwri 1i.
538
Poglavlje 7: Nivo asemblerskog jczika
Korisnicki proces 1 Korisnicki proces 2
------------

Zaglavlje
A
B
)
c
D
Slika 7-19. Ova proccsa koristc istu DLL datolcku.
Osim slo stedi prostor, ovaj pristup omogucava lako azuriranje biblioteckih proce-
dura, cak i posto Sll programi k.oJi ih koristc prcvedeni i povezani. lJ komercijaJnim sofl-
vcrskim paketima s kojima korisnici obicno ne izvorni kod. proizvodac mozc
naknadno da ispravlja greske u bihliotckama i da ih ispravljcnc distribuira prcko lntcr-
neta kao DLL datotekc. a pri tom ne mora da ispravlja binarni kod glavnog programa.
Glavna razlika izrnedu DLL datotekc i izvrsnc binarne datoteke jeste to sto se DLL
datoteka nc mozc samostalno pokrcnuti (jer ncma glavnog pmgrarna koji bi je po-
zvao). Osim toga. ona u zaglavlju ima drugacije informacije od glavnog programa, a
i u cclini ima vise dodatnih procedura kojc nemaju vezc s procedurama iz bibliutcke.
Na primer, postoji proccdura koja sc automatski poziva kad god se nov proces vde za
DLL datoteku i druga koja se automatski poziva kad god se proces od nje odvcie. Ove
procedure mogu dodcljivati proccsima memoriju i od njih jc oduzimati, i mogu cia
upravljaju drugim resursima potrehnim DLL datotcci.
Program se za DLL datuteku moze VCJ:ati najcdan od dva nacina. Na prvi, J:\'Llll im-
plicitno (automatsko) povezivanjc (engl. implicillinking), korisnicki prugram .'e sta-
ticki pnvezujc sa speciplnom datotckmn zvanom uvozna biblioteka (engl. illlport
lihmrv) kuju gcnni.;c usluzni program izvlaceci udrcdene informacije iz DLL
ke. Uvozna bihliuteka predstavlja .. vrata' kroz kop k:orisnicki program pristupa DLL
datotcci. Kmisnicki program muzc biti povezan s vise uvuznih biblioteka. Kada se
program koji kori.sti implicitnu povoivanje ucita u memoriju za izvrKavanjc. \Vinduws
utvrcluje kujC DLL dat,,tekc on upotrebljava i provcrava da ii su svc unc vee u memo-
riji. One koje se ne nala;c u mcmoriji odmah se ucitavaju (ali ne obavezno eel e. pus to
su straniccne). Tada se unekoliko mcnjaju strukture podataka iz uvoznih biblicteka da
bi sc pozvane procedure moglc locirati (ndto slicnn prikazanom na slici 7-18). One sc
takmtc preslikavaju u prnstur virtuelnih adresa programa. U ovom trcnutku korisnicki
program mo:.l:c da pocne odnosno puzivanje procedura iz DLL datotcka.
bas kao da sus njim staticki vezane.

d .. er ----
7.5 Sazetak 53?
Altemativa implicitnom povczivanju jc (bas necekivano!) eksplicitno povezi-
vanje (engl. explicit linking). Za uvaj pristup nisu potrebne uvozne biblioteke, niti se
DLL ciatoteke ucitavaju uporedo s korisnickim programom, vee korisnicki program
tokom izvrsavanja upucuje eksplicitan poziv DLL datoteci, a zatim i dociatne
cia bi dobio adrese potrebnih prucedura. Kada ih pronade, mozc da poziva procedure.
Posto sve to uradi, on upucuje poslednji poziv cia bi se odvezao od DLL datoteke.
Kada se i poslednj i proces odvcze od DLL datotckc, on a se moze ukoniti iz memorije.
Vazno je razumeti da proceciura u DLL datotcci nema nikakav sopstveni identitet
(kao sto ga ima programska nit iii proces). Ona se izvrsava u programskoj niti pozi-
vaoca i koristi njeguv stek za svoje lokalne promenljive. Ona moze da ima
podatke specificne za proces (kao i zajednicke, deljene podatke) i uopste se ponas1
kao staticki povczana prucedura. Jedinu sustinsku razliku cini nacin vezivanja pro-
grama za nju.
Dinamicko povezivanje u UNIX-u
Opcrativni sistem UNIX ima mehanizam koji je u sustini slican DLL datotekanu
u Windowsu. On se zove deljena biblioteka (engl. shared library). Slicnu DLL cia-
tote kama, i deljcna biblioteka je arhiva s mnugo pmcedura iii modula podataka koji
se tokom izvrsavanja nalaze u memoriji i mogu se istovremeno vezati za Yisc pruces<.
Standardna bibliotekajczika C i veliki deo koda za rad u mrdi deljene su hibliotekt.
UNIX podrzava samo implicitnu puvezivanje, pa se dcljena biblioteka sastoji od
dva del a: prirucnc biblioteke (engl. hosllibrary), kuja je staticki vezana za izvrsnJ
datutcku i ciljne bihlioteke (engl. target library), koja se puziva tokom izvrsavanj'.
laku se detalji razlikuju. konccpcija clcljene bibliotckc i DLL datuteke u sustini je ist<.
7.5 SAZETAK
lako vecina programa mozc i trcba da se pise na jeziku visokog nivoa, postoje si-
tuacije u kojimaje neophodan asemblerski jezik, bar cielimicno. Programi za
racunarc sa skrornnim resursima. kau sto su inteligentne kanicc, procesori ugradeni u
kucne aparate i bezicni prenosivi digitalni pornocnici, potcncijalni su kandidati. Pro-
gram na asemblerskomjcziku simbolickajc predstava programa na nekom masinskom
jeziku. On se prevodi na masinski jezik ponwcu programa zvanog asembler.
Kaclaje za uspeh odrectene aplikacije neophodno brzo izvrsavanje, nc trcba pisali
ceo program na asemblcrskum jeziku. vee ga prvo treba napisati na jeziku visokog
nivoa, zatim izmeriti gde program provodi vccinu vremena tokom izvrsavanja i samo
te njcgove delove ponovo napisati na asemblerskomjeziku. Prema iskustvu iz prakse.
za najvcci deo vremena izvrsavanja programa udgovoran je samu mali deo pmgram-
skog koda.
Mnogi asemhleri mogu da koriste makroe - cesto koriscene delove koda kojinu
programeri daju simbolicka imcna i pomocu njih ih kasniJe ukljucuju u glavni pro-
gram. Makroi se obicno mogu snabdeti parametrima na jcdnostavan nacin. Makroi se
implcmentiraju pomncu jcdne vrste algoritma za obradu literal a.
.,
540
7: :'1/ivo ascrnblcrskog jczika
Asembleri obraduju izvorni program najcesce u c.lva prolaska. Prvi prolazak je
posvecen pravljenju tabele simbola za oznake. literale i eksplicitno c.leklarisane iden-
tifikatore. Simboli se mogu cuvati bez uredivanja i pretrazivati lineamo iii prvo sorti-
rati. pa pretrazivati binarno. iii hesirati. Ako se sirnboli ne moraJU odbacivati tokom
prvog prolaska, hesiranje je obicno najbolja metoda. U drugom prolasku se
kod. Neke pseudoinstrukcijc izvrsavaju se tokom prvog, a neke tokum drugug prola-
ska asemblcra.
Zasebno asemblirani programi mogu sc povezati u izvrsni binarni program Taj po-
sao ubavlja program za povezivanje. Njegovi osnovni zadaci su relnciranjc koda i vc-
zivanjc imena. Dinamicko povezivanje je tehnika kojom se procedure ne povezuju
sve dok ih glavni program stvarno ne pozovc. U Windnwsovim DLL datotekama
i UNIX-ovirn deljenim hihliotekama koristi se dinamicko powzi vanje.
VEZBANJA
L U nekom programujc 2o/r koda odgovorno 7a 50"+ ncmena izvrsavanja. ljporcdite
slcdcec tri :-.trategijc po trajanju pmgramiranja i trajanju izvrsavanp k<llb. Prctpu-
stavite da jc potrcbno I 00 programers kill rnescci da -;c k{ld napise na jcziku C. ada
se ascmblcrski ki\d pisc I 0 pula sponje. ali jc cctiri put a efika,niji.
a) Ceo program na jC?iku C.
b) Ceo program na a;-.cmbkr:,kcJm je;.iku.
c) Najprc ceo prugram na jcziktl C. t.atim ponuvo kljucnih Y'o na ascmhkrskum
jcziku.
2. Da li razmatranJa k<lja vaze za ascmhlcrc s dva pmlaska vaze i la prcvm!iPct: ..'
a) Prctpostavitc da prcvodioci ohjcktnc module. a nc asL,mhkr;ki kcKt.
b) Prctpustavitc .ta nrcvodioci gcnc:nsu simb<llil'ki
3. Yel'ina .hemhlcra z.a lntclmc procesore kao prvi irna <>drcdi;nu adn:.su. a
kao drugi il\Ori;nu. Ko_1e btstc prubkmc mur:di n:1jpr: rcsiti, pa da hudc ohrnuto''
l\1o/c li ;.;c -;kdL'L'i aslmhlit-al i u dva pwlthb.'' EQI; jC ;H.:udoit!strukcija
koja izjL:dnaC:t\ '' nzn.tku sa izrazom u polju za uper:mdc.
P EOU 0
0 EOU R
R EOU S
S EOU 4
5. Softverska krli<IJ':llljj.t .\Ltgla planira Ja n;tpravi a-;cmi,kr za ral:unar "'
reCima. L\1 bi '-1\r_: g:lavni pro_JcktanL dr odluCin jc Ja
duzinu simih:ia tak,, da ::vai--i 'itn>bol -;tanc u j<:dnu rcc. :Vluti,Pdaje oh-
javio "in1hnli san1o od o.'illl :-.!ova Q. Ko_jc jc zabranj-:11o
(da hi Jlllk:uau klijcnti;'ltt k.tko k<'l1l[1ttnija ;,rinc o
Kuj<.t Ct: blli dtt/.ina sin:hoia'? ()pi\i!c :--.V(l_jll .;L!nu k_lidiran_ja.
6. Kakva jL r;li!!J,.a il.nh_.._itt i
Vdhanja 541
7. Ako ima razlike izmedu brojaca lokacija za instrukcijc i programskog brojaca. ako
uopste postoji'' Na kraju krajeva, oha vode racuna o sledecoj instrukciji u programu.
8. Prikazite tabelu simbola nakon prolaska slcdecih narcdaba za Pentium 4. Prvoj na-
redbi JC doc.leljena adresa I 000.
EVEREST: POP BX (1 BYTE)
K2: PUSH BP (1 BYTE)
WHITNEY: MOV BP,SP (2 BYTES)
MCKINLEY: PUSHX (3 BYTES)
FUJI: PUSH Sl (1 BYTE)
KIBO SUB Sl,300 (3 BYTES)
IJ. Mozetc li da zamislite okolnosti u kojima ce u ascmbkrskom Jeziku biti dozvoljcno
da oznaka glasi istu kao i opkod (npr. da MOV bude uznaka)"' Obrazlozite odgovor.
10. Navcdite knrake za pronalazenjc elemcnta Bcrk.clcy hinarnim pretrazivanjcm sle-
decc li;,tc: Ann Arbor, Bcrkeky. Cambridge. Eugene, Madison, New Haven, Palo
Alto. Pasadena. Santa Cruz, Stony Brook. Westwood i Yellow Springs. Kada odre-
dujctc srcdnji clement lisle s parnim hrojem elcmenata, izaberitc clement neposred-
no iza srcc.lnjcg indeksa.
I I. !vloze li sc binarno prctrazivati tabela cija je vclicina prost broj''
12. lzracunajte hes k6d za svaki od sledecih simlmla sabirajuci sluva tA= I. B = 2 itd.)
i uzimajuci za rezultat ostatak celobrojnog dcljcnja zbira s velicinorn hd tabele. l-Id
tahcla ima 19 redova. numcrisanih od 0 do 18.
els. jan, jclle, maaik.c
Da li sc od svak.og sirnbola generisc jcdinstvcna hd vrednost'.' Ako tu nijc slucaj.
kaku sc probkm sukobljavanja moze resiti'
1
13. Metodom hesiranja opi:-.anom u tc:kstu. svc odrednice sa istim hes kodom srncstaju
sc u povezanu listu. Alternativaje jcdinstvena tabela san redova. pri ccmu u svakom
rcdu ima mesta zajcdan kljuc i njcgovu vrcdnost (iii za pokazivacc na njih). Ako al-
guritam za hdiranjc gcncrisc red hes tahcle knji je vee pupunjen. za ponovni po-
kusaJ se kmisti drugi algoritarn za hesiranjc. Kad ni on ne uspe da gcnerise prazan
red, koristi sc sledeci algoritam itd., svc dok se jednom ne dohije prazan red. Uko-
liko jc udeo popunjcnih redova R. iz koliko cc uzastopnih pokusaja moci da se unese
nuv simbol (navedite proscean broj)?
Kako tehnika napreduJc. jednug dana cc mozda hiti mogucc c.la se na cip smcstc
hiljadc ic.lcnticnih proccsora, svaki s nckoliko rcei lokalm: memorije. Ako svi proce-
snri dele tri registra za citanje i upisivanje. kttko 'c tu mozc implcmentirati asocija-
tivna memorija?
15. Pentium 4 ima scgmentiranu arhitekturu s vise nczavisnih scgrnenata. i\scmhlcr La
maj racunar mugao bi imati i pseudoinstrukciju SEG N koja bi asemhlcru nalagala
da k<)J i podatke koji slede smesti u segment N. Da li ovakva sema ima ikakvog uli-
caja na brojac lokacija za instrukcije (!LC)")
16. Programi sc cesto vezuJU za vise DLL datotcka. Zar ne bi bilo cfikasnije staviti sve
pmccdure u jcdnu veliku DLL dttt<Jtcku i omla sc vezati samo za nju"'
17. li se DLL datuteka preslikati u prostnre virtuelnih adrcsa dva proccsa na rar-
licitc virtuelnc adrcse'' Ako mozc, kakvi problcrni nastaju"
7
Mogu li ,c ti prublerni
rditi'.' Ako nc rnogu. kako se otklanjaju)
p
iJ:
11



I
542 Poglavljc 7: Nivo asemhlcrskog jezika
18. (Staticko) povezivanje mozc se izvesti i ovako. Pre nego sto skcnira biblioteku, pro-
gram za povezivanje pravi listu potrebnih procedura, tj. imena koja su deJinisana
pseudoinstrukcijom EXTERN u modulima koji se povczuju. Program tada prolazi li-
nearno kroz biblioteku, izvlaceci iz nje svaku proccduru s lisle potrebnih imena. Da
li ovakva sema Ako ne radi, zasto nc radi, i sta se moze uciniti da bi se to
popravilo?
19. Moze li se regis tar upntrebiti kao tekuci para me tar u pozivu makroa'? Sta je s kon-
stantom'l Obrazlozite odgovor.
20. Trcha da implemcntirate ascmbler koji radi s makroima. Va; sefje zbog estetikc od-
lucio da definicije makroa ne !reba da prcthode pozivima. Kakve posledice irna ova
odluka na irnplementaciju?
21. Razmislite kako biste makro asemblcr smesti li u bcskonacnu pctlju.
22. Program za povezivanje ucitava pel modui<r, cijc Sll duzinc 200, 800, 600, 500 i 700
reci. Ako sc ucitavaju navcdenim rcdoslcdom, kolikc su konstantc rclokacijc'
1
23. Za tabclu simbola napisite sot'tverski pakct koji sc sastoji od dva potprograma:
unesi(.li!llbol. vrednosl) i pronudji(sim/Jol, vrednost). Prvi unosi now simbole uta-
bclu, a drugi ih u njoj tral.i. Upotrebite ncki oblik hdiranja.
24. Napisitc jcdnostavan asemhlcr za racunar 1vlic-l iz pnglavlja 4. Osim obradc ma-
sinskih instrukcija, m:ka irna i mehanizanr koji cc konstantc dodeljivati simholirna u
tuku ascmbliranp. kao i nacin cia konstantu asemblira u masinsku n:c.
25. Asernblcr iz prcthudnog vt:Zbanja Jupunitc jednustavnim mchanizmom La rad
s makroima.
8
ARHITEKT,URE PARALELNIH
v
RACUNARA
Iaku su racunari svakim danom sve brzi. zahtcvi kuji im se postavijaju rastu bar
isto toliko brzo. Astronomi zele da simuliraju citavu istoriju univerzuma, cak od Ve-
likog praska, pa dok sc zavesa ne spusti. Farmaceuti bi zeleli da za svaku boljku od-
mah u svom racunaru pronadu odgovarajuci lek, a ne da za tu svrhu zrtvuju armije
pacova. Vazduhoplovni inzenjcri bi svakako postigli znatnijc ustedc goriva za svoje
avione kada bi racunari obavili sav posao. ada sene mora svaki prutotip ispitivati u
acrodinamickom tunclu. Koliko god cia se racunarskc snagc ponudi, za mnoge kori-
snike, narocito u nauci. inzenjerstvu i industriji, to nikad nije dovoljno.
Iako radni takt procesora stalno raste, brzina rada elektronskih kola ne moze se
beskonacno povecavati. Brzina svctlosti je vee realan problem za konstruktore vr-
hunskih racunara. a uzdanjc u to dace se elcktroni i fotoni jednom krctati br.Ze. cista
je fantastika. Prohlcmi sa odvodenjem toplotc svrstavaju savremcne superracunare
pomalo i u klima uredajc. Na kraju. kako postaju sve manji, u jednorn trc-
nutku cc se tranListor sastojati od tako malo atoma da ce u prvi plan iLbiti kvantno
mehanicki efckti ( npr. I-leisenbergov princip neodrcLknosti ).
Shodno tome. da bi resili prohlemc koji se svakim danom sve vise gomilaJLI, kon-
struktori racunara sc sve vise olrecu paralelnim racunarima. lako mozda neec biti
moguce napraviti racunar s jednim procesorom ciklusa 0,00 l ns, sasvim ce biti mu-
guc'e napraviti racunar s 1000 procesora ciklusa l ns. Mada su u clrugom racunaru
543
&<


"'
ill



544
Poglavlje 8: Arhitckture paralelnih rai'unara
procesori sporiji ncgo u prvom, njihova ukupna racunarska snaga teorijski je isla. Eto
na koju stranu treba glcdati.
Paralclizam se moze uvesli na vise nivoa. On sc na najnizem nivoumoze realizovati
na samom procesorskom Cipu, uvodenjcm paralelnc obrade i superskalarne seme
s vise funkcionalnih jedinica. Moze se ostvariti i uvodenjcrn veoma dugackih reci za
instrukcije s podrazumevanim paralelizrnom. Procesoru se mogu dodati specijalne
mogucnosti za istovrcmeno upravljanje s vise programskih niti. Na kraju, na isti cip se
mozc smestiti vise procesora. Kada se primene sve nabrojane mogucnosti, one nmzda
mogu da perforrnanse desel puta u odnosu na cisto linearnu rada.
Na sledceemnivou sistcm se moze dopunjavati dodatnirn procesorskim karticama
za prosirivanjc njegovog kapaciteta obrade podataka. Ove kartice za prosirivanje
obicno imaju spccijalizovane funkcije. kao Slo SU obrada mreznih paketa, obrada muJ-
timedijskog sadrz.aja iii kriptogra!ija. Kod spccijalizovanih ,tplikacija, perf(\rmanse
time mngu poboljsati rnozda pel iii dcsd put a.
Mcdutim. da hi sc pt'rformanse poboljsak sto. hiljadu ili mi lion pula, ncophodno
je da se citav procesor umno:l.i vise pula i we rcplike upregnu da radt: 1ajednn. Ova
idep duvodi do koriscenja miltiprocesPra i multiracunara (k!astcra ral-unara). Nc trc-
ba ni reei da udruZivanjc hiljada proccsl1ra u jcdan veliki sistem donosi svojcvrsnc
probleme koje takodc trcha resavati.
Ina kraju. danas sc citavc or12anizacijc (sa svojom upremum) mugu prcko lntcrnt'-
ta povezati u labave mrdc. Ovakvi sistcmi tek p<inJu da se p<ljavljuju.
ali prcdstavljaJu potcncijalnu nadu za buducnost.
Kada se dva proccsora ili dva element a .ca tizi..:'ki .JCdan do
drugog. kada razmenjuju pndatke ve!ikom br1.inom i bcz zadrske i kada u racunskum
smislu hlisko saraduju. kazc:mo da su tesno spregnuti (engl. rightlY Stqmll-
no tome. ako su tizicki lllLt!jcni jcdan t>cl dmgog. aku pnLbtke rannenju;u sp<lfO i
i ako su u racut1skum smi-;lu udaijeni jed an <ld undct Lt/cmo Ja su
laban> sp-egnuti (engl. /o01dr ,ottflled). U morn poghY!JU ra/tllL'tri<_:"ctn<J prinLipe
prn.Jeklovanja razlicitih <lblika i pruu-:'iu vi;;c PoccL'Clll<J od mj-
tesnjc srrcgnutih si>tcma. <mih kud kojihjc paraieli;.a:n ugradcnna samum ci['ll. if'<'-
stcpenP Ccn1o prcL.11iti na ")\L i Ltb:._tvijc da

!I.J.
pnsvetili nckoliko reei: l!V. Ovaj 'PL'klar .ic' upru;,'cno prika!:tll
na _,!ici ::\-1.
Citava prublemarika ud jcdtwg do dntgog krai<t 'Pd:tra. pr:::d>tav
vruc'e podrucjl?. Shndr111 l<)tnC. uvom p,_,glavl_;tr 'll d,,,bie illli<)',:C
svcze rdc:rencc u vczi s tenwm. s!icnih rderenci navedcno Jc' i u
8.1 PARALELIZA:\1 PROCESOKSi..:.Ol\1 ('H'U
Jcdan <1d naCl!la da :sc flO\CCa jli'UhlK KWZ 2tp JC.S<C d:, !11U .>t' d:t
oba\lja podova L; ov()nl odlljku nck.t' ubr/a-
vanja obrac!c pwLlLti..:t !-..rJi p;iilicnu IU 11icou pn,ct'StI\kug cip:l.
ul!juCujuL:i i paraiciiLi.llllna niv'uu itblruk ..:ija. i vi\c
8.1 l'aralclizam na procesorskom 545
na isti cip. Ove tehnikc se medusobno potpuno razlikuju, ali svaka na svoj nacin do-
prinosi krajnjcm cilju- umnozavanju aktivnosti koje sc odvijaju u svakom trenutku.
Privatna
memorija
Racunar
\
Koprocesor
k ni'
;r_
Programs a '
\


8

L_
FPDJ
,/
I
I
Procesor
Glavni procesor
Labavo
-- - -
spregnuti
Tesno _
-
(a) (b) (c) (d) (e)
Slika ll-1. (a) l'araklilam na cipu. (bi Kopmcesor (cl Vii;c proccsora. (d) Vii;e rai'unara.
(c) Rcsctb.
8.1.1 Paralclizam na nivou instrukcija
:'-i sanHlm pocctku. paraleli1.am mozcmo da postignemo ako po jed nom sistem-
si--wn ciidusu izdajemn instrukciJa. Procesori koji po jednom sistcmskom ciklusu
mt)gu d,t izdaju instrukcija spadaju u dve grupe: superskalarni i VUW procesori.
Na ohc vrste smo se Vt:L' osvrnuli u ovoj knji1.i. ali nije 1.goreg to sada ponoviti.
Sa superskalarnim prucesorima srcli smo se ranije ( pogledajte npr. sliku 2-5 ).
U na_:cc::;c,)j konliguraciji. instrukcija kuja prob-ci kroz paralclnu obradu u jcdnom
tr.:-nmJ..u je sprcmna 1.a izvrsavanje. Superskalarni proccsori mogu da u jednom si-
'itcmsk:Jm ciklusu upute vise instrukcija i-cvr.snim jcdinicama. Broj instrukcija stvar-
IH' upucenrh na izvrsavanje zavisi nd kunstrukcije procesora i trenutnih okolnosti.
I bnh cr odrcduje maksimalan brnj instrukcija kujc se mugu izdati, a to je po pravilu
od ch c do se;;,t instrukcija. 1\lcdutim, ako je za izvrsavanje instrukcije neophodna
funk,,,qJaina jedinica koja trenutno nijc na raspolaganju iii joj jc neophodan rezu!tat
nije instrukcija neee biti upuccna na izvr\avanje.
D:ugi ublik paralclizma na ni vou instrukcija nalazimo kod VLIW (Very Long In-
:structJc'!l Word- veoma dugai'ka rec za instrukcije) procesma. U svom prvobi(nom
ol,liLu. \Ll\V racunari imali dugacke reei sa instrukcijama kojc su knristile
'> isc lunkcionalnih Jedinica. Razmotritc. na primer. paraklnu obradu na slici 8-2(a).
:,:de ima pet funkcionalnih jcdinica i mo/.c istovn:menu da izvrsava dve ce-
lob:<'jnc opcracije ijcdnu s brojevima u pokrctnom zarezu. jedno ucitavanje i jedno
:;n;e<:t:<jt: pudataka;. VLl\\;' instrukcija La ovaj racunar sadrzala bi pet opkodova i pet

lm'!
1
:
!,
i);:''
l
ir


;
..
,,
I
t
'
r'
...
r

546
Poglavlje 8: Arhitektme paralclnih racunara
parova opcranada, po jedan opkod i operand za svaku funkcionalnu jedinicu. Sa 6
bitova po opkodu, 5 bitova po registru i 32 bita po memorijskoj adresi, instrukcija bi
naras1a na 134 bita, sto je zaista popri1icno.
Prazna instrukcija
(b) I --L I- L- 1-FL-IIIF-S T--L-
(c)
VLIW instrukcija
SvezanJ
Slika 8-2. (a) Proccsurska paraldna obrada. (b) Niz VLIW instrukcija. (c)
Tuk instrukcija s markiranim svdnjcvima.
Ovakva sema sc pokazala previse krutajcr nije svaka instrukcija mogla da iskoristi
svaku funkcionalnu jedinicu. zbog cega je dugacka instrukcija popunjavana rnnogim
praznim instrukcijama, kao na slici X-2(b). Zbog toga savremcni VLIW racunari
nacin da markiraju svdanj instrukcija kao celinu_ npr. pornocu .,bita za kraj svel.nja'',
kao na slici X-2(c). Proccsor tada mo;;e da preuzrne citav svezanj i da ga odjcdnom
uputi na izvrsavanje. Na prevodiocu je da pripremi odgovarajuce sveznjeve medusob-
no kompatibilnih instrukcija.
VLlW racunar u stvari prcbacujc tcret odredivanja instrukcija kojc se istovremeno
mogu upucivati na izvrsavanje s procesora na prevodioca. Na taj nacin se omoguc'ava
koriscenje jednostavnijeg i brzeg hard vera, ali ne samo to prevodi1ac moze da radi ko-
\iko god je potrebno da bi obezbedio mnogu bolje svdnjeve nego sto to moze da uracli
hardvcr tokorn samog izvrsavanja. Naravno, tako velika izmena arhitekture procesora
tesko se prihvata u praksi, o cemu svcdoci sporo prihvalanje procesora ltanium.
Treba naglasiti da paralclizam na nivou instrukcija nije i jedini oblik paralelizma
na niskom nivou. Drugi oblik je paralclizamna nivou memorije, kod koga sc istovre-
meno izvrsava vise operacija memorijom (Chou et al., 2004).
8.1 Paralelizam na procesorskom 547
VLIW proccsor TriMcdia
Primer jednug VLIW procesora, Itaniuma-2, analizirali smo u poglavlju 5. Predimo
sada na jedan sasvim dmgaciji VLIW procesor, na procesor TriMedia konstruisan u
Philipsu, holandskoj elektronskoj kompaniji koja je takode konstmisala audio CD i
CD-ROM. Procesor TriMediaje namenjcn ugradivanju u uredajc s visokim zahtevima
u poglcdu slikc. zvuka i video zapisa, kao sto su CD, DVD i MP3 plejeri, CD i DVD
rikorderi, interaktivni TV aparati, digita1ni fotoaparati, kamkorderi itd. Kada pogleda-
mo sve te primene, ne iznenaduje sto se ovaj procesor toliko razlikuje od Itaniuma-2.
nespecijalizovanog procesora narnenjenog veorna optercccnim serverirna.
TriMedia je pravi VLIW procesor, kod koga svaka instrukcija sadrzi do pet ope-
racija. U sasvim optima1nim okeJlnostima u svakom sistcmskom ciklusu zapocnc se
jedna instrukcija i na izvrsavanje se uputi pet opcracija. Radni takt procesora je 266
iii 300 MHz, ali posto on moze da uputi na izvrsavanje pet operacija po ciklusu, cfek-
tivni radni takt je do pet puta veci. U daljem razmatranju govoricemo o TM3260 pro-
cesora TriMcdia; drugc verzijc se neznatno razlikuju od njc.
Tipicna instrukcija prikazana je na slici R-3. Konkrctna instrukcija moze biti stan-
dardna osmobitna. sesnaestobitna iii tridesctdvobitna instrukcija a rad s celim broje-
vima, instrukcija za rad s brojevima u pokretnom zarezu prcma IEEE slandardu 754
iii paralelna instrukcija za rad s multimcdijom. Zbog moguc'nosti upuc'ivanja na izvr-
savanje do pet opcracija istovremeno i postojanja paralelnih multimedijskih instruk-
cija, proccsor TriMediajc dovoljno brz da softvcrski u hodu dekodira digitalne video
zapise s kamkordera i prikaze ih punom brzinom u punoj vclicini.
Polje 1 Polje 2 Polje 3 Polje 4 Operacija u polju 5
\ \ \
\
I I Porneranje I Multimedija I Ucitavanje Smestanje ]
lnstrukcija
Slika 8-3. TipiCna procesora TriMedia koja sadrzi pel rnoguc'ih opc:racija.
Proccsor TriMedia ima mcmoriju u kojoj se adrcsiraju bajtovi. sa ulazno-izlaznim
registrima koji se preslikavaju u memorijski pros tor. Polurcci ( 16 bitova) i cele reci (32
bita) rnoraju biti poravnatc na svojtm prirodnim granicama. On moze da radi kao .. little
endian" ili kao ,big end ian" procesor, zavisno od PSW bita koji postavi si-
stem. Ovaj bit menja samo nacin prcnosa podataka izmedu memorije i registara tuknm
operacija citanja iii smestanja podataka. Pn,cesor ima pt,ddjcni, osmostruki, sct-aso-
cijati vni kes, koji i za instrukcijc i za podatke racli s reduvima od 64 bajta. Kes za in-
strukcije ima 64 KB, a kes za podatke 16 KB.
Pustoji 12t\ registara upste namcnc. sirine 32 bita. Registar RO je hardverski po-
dden na 0. Registar R1 je podden na l. Pokusaj da se izmenijedno iii dru-
go, dnvodi procesor u prcdintarktno stanje. Prcostalih 126 regislara rnectusnbno su
funkciona1no ekvivalcntni i mogu :.e koristiti za bi1o koju svrhu. Osim toga. postoje i
548
Poglavlje 8: Arhitekture paralelnih racunara
cetiri spc:c:ijalna 32-bitna registra. To su programski brojac (PC), statusna rei" programa
(PSW) i dva rcgistra koji rade sa sisternskim prckidima. Na kraju, jcdan 64-bitni rcgi-
star broji cikluse procesora od trenutka kadaje poslcdnji put pokrenut. Njemu, uz takt
od JOO MilL treba oko 2000 godina da popuni svoj kapacitct.
Trii'vkdia Tl\B260 ima I I razlicitih funkcionalnih jedinica za aritmeticke i logicke
opcracijc i opcracijc upravljanja programsk.im tokom (kao i jcdnu za upravljanje ke-
som, o kojoj mde necemo govoriti). One su navedene na slici 8-4. U prve dve kolone
su (skracen'J 1 liTh? .1edinice i kratak opis njene funkcije. U trecoj koloni je broj hardver-
skih jedinice. Cetvrta kolona prikazujc kasnjenje, tj. broj ciklusa potreban za
potpunu ubradu ulaznih podataka. Ovdc treba primetiti da sve funkcionalne jedinice.
usim jed111icc fP sqrt!div, koriste paralelnu obradu .. ,Kasnjenje" govori koliku ciklusa
treba ccbti d<lk se ne pojavi rewltat operacijc, ali se nova operacija moze zapoccti u
svakum ciklusu. Tako, na primer, svaka od tri uzastopne instrukcijc mnze da sadrz.i dve
opcracijc C1tanja. pa se dohija sest istovrcmcnih citanja koja se nalaze u razlicitim fa-
;ama JzvrscnJcL
! Opis
! Constant I Operacije s r
! ___
1 2
5
i kons_tantama
I ----
!Integer 132-bltne arit
, ALU operacije
L---------t-.'"---- ---
i Shifter I Visestruko p
11
meticke i logicke 1
1-- ____ --
1 Load/ I Operacije s
--
! trtcFP i Operacije sa
Jmeranje !2 1
! 2 3
32-bitnim celim 12
i 3
X X
X X
---
,x_-f
I I
+ I
I I X
l!+f:l
X X X
I i
' I '-
I X X
X --t---:--
: MUL I brojevima in ___ ,- _ -,- __ , I
r u formatu pokretnog zareza I . r--
1
,------- ---
; FP ALU Aritmetika brojeva u formatu 2 x ! x
I pokretnog zareza
1
I I 1
i 1 i -- i x : i--l
compare I pokretnog zareza I I I I r I +--
. diV I Deljenle r I
1
I korena brojeva u formatu I , i i I I
1
i pokretnog zareza I I I
1
1
1
13 I x I x j l
1
: tokom I I I
'DSP ALU I Mult.imed. ij.ska sa j2 13 r x----1 ----r; i --jl
j dvostruk1m 16-bitnim I I 1
operandima Iii cetvorostrukim I ' I I !
_____ 8-bitnirn operandima . -l--- __ 1----:
, DSP MUL I Multmledijsko mnozenje '12 I' 3 , 1 x x i
I dvostruklh 16-bitnih ; I ' j '
iii cetvorostrukih I I I I I _j'
1 8-o1tn1h operanada I i 1 1
----- '-. ..---"-.--------.--..L- ______ ______j______l__
Slika 8--t 1-'unkcionalne jcdinice procesora Tvl32hil. njih:J\ hroi. ka,njenjc i polja instrukcijc
u kojima .'-C mugu h.liri.-.,tlti.
8.1 Paralclizam na procesorskom cipu
549
Na kraju, poslednjih pet kolona pokazuju koja se polja instrukcije mogu koristi i
za koju funkcionalnujedinicu. Na primer, operacije poreLtenja brojeva u formatu p<-
kretnog zareza mogu se pojaviti samo u trecem polju instrukcije.
Jcdinica Constant se koristi za operacije s neposrednim konstantama. kao sto
upisivanjc u registar broja smdtenog u samoj opcraciji. Integer ALU ohavlja ope-
racije sabiranja. oduzimanja, uohicajenc logicke operacijc i operacije
odnosno raspakivanja. Shifter moze da pomcra sadrzaj registra udesno iii ulevo z:1
zadati broj bitova.
Jcdinica Load/store upisuje memurijskc reci u registre a iz njih ponovo u memorijt.
TriMedia je u osnovi pojacani RISC procesor, pa uohicajene operacije rade s registn-
ma, a jedinica Load/store koristi ;;e za pristupanje memoriji. Istovremeno se mogu prt-
nositi 8, 16 iii 32 bita. Aritmeticke i logickc instrukcije ne pristupaju memoriji.
Jcdinica lnt/FP MUL mnozi cele brojeve i brojeve u formatu pokretnog
Sledece tri jcdinice racle s brojevima u formatu pokretnog zareza: sahiraju ih i oduz:-
maju, porcde ih i iL njih vade kvadratni koren, odnosno dele ih.
Programskc skokove obavljajedinica Branch. Posle skoka postoji
od 3 ciklusa. tako cla se posle skoka uvek izvrsavaju tri instrukcije (do 15 nperacija',
eak i kada skok nije uslovni.
Na kraju dolazimo du dvc multimcdijske.jedinice koje obavljaju specijalne mult-
medijske operacijc. DSP u njihovom imenu skral'enicaje za Digital Signal PnKcs-.cr
(procesor digitalnih signa!a), koji multimedijske opcracije efektivno zamcnjujr.
J\ilultimedijske opcracije ukratko cemo objasniti u nastavku. Njihova vana osobina
je koriscenjc saturacione aritmetike (engl. saturated urithlllclic) umcsto aritmetik:
komplemcnta dvojke. koja se koristi u rad11 s celim hrojcvima. Kada se rczultat opt-
raLijc ;bog prekoracenja ne mo/.e prikat.ati, umesto da se generi;e izuzetak ili
pogrc:Sna vrednost, prikazuje se najblizi ispravan broj. N:t primer. kada sc oa
X-bitnim ncoznacenim hrojevima. sahiranje hrojcva 13() i 130 dajc 255.
Pus to sc ne moze svaka operacija pujav iti u svakom pulju. cestu sc da ir-
strukcija nc sadrzi svih pet potencijalnih uperacija. Kada sc polje nc k,Jristi. ow>
sa/.ima da bi se ustedeo prostor. Operacijc knJe po,tojc zauzimaju 26. _:q iii -12
Prema hroju stvarno prisutnih operacija. instrukcije za proccs"r Tri'\lcdia mngu hi.i
dugacke od 2 do 28 bajtova. ukljucujuci i mali tik;,ni cleo.
TnMcdia tok\lm izvrsavanja ne proverava dati su operacije unularjednc
mcuusobno kompatibilne. Akn Se ispostavi cia nisu. on ih izvrsava kacl tb jcsu i dni'iJ l
pogresan udgovur. lzostavljanje provcrc hiiaje svc:sna udluka da bi Jl"vccala brzinJ
i da hi sc ustcdeli tranzistori. Pentium u tuku provcrava da li ,u we _,Li-
perskalarne uperacijc kompatihilne, ali za to v isoku ccnu kad :,u u pitctnju slo/c-
nost. vreme i hardver. TriMedia izbegava ovaj prebacujuci rasporcdiva!ijJ
operacija na prevodioca kuji ima na ra,pulagar;ju svc' vremc S\ eta da pa;'ljivJ
optimi;ujc pojc:dinacnih operacija u rcLima inqruLije. S clruge str::nc. ako_i:
za neophodna funkci,malna jedtnica kuja trcnul:l\1 nijc raspu:ag:mj'.
instrukcija cc se privremeno ?austaviti dok sc mlg:Jvar;Ijul'ajcdinica nc oslt'hmli.

550
Poglavlje 8: Arhitekture paralelnih racunara
Kao i kod ltaniuma-2, operacije za procesor TriMedia koriste prcdikaciju. Svaka
operacija (uz dva manja izuzetka) navodi registar koji se ispitujc pre izvrsenja opera-
cije. Ako je najmanje znacajan bit registra postavljen, operacija se izvrsava; u suprot-
nom, ona se preskace. Na svaku od (do) pet operacija u instrukciji zasebno se
primenjuje predikacija. Primer operacije u kojoj se koristi prcdikacija je
IF R2 IADD R4, RS -> R8
koja proverava sadr?.aj registra R2 i, ako je njegov najmanje znacajan bit I, sabira
sadrzaje registara R4 i RS i rezultat smesta u registar R8. lz opcracijc se moze ukloniti
uslov ako se upotrebi rcgistar R1 (koji jc uvck I) kao registar za predikaciju. Ako se
upotrebi registar RO (koji je uvek 0), operacija ncc'e raditi nista (NOP).
Multimedijske operacije za proccsor TriMcdia mogu se svrstati u 15 grupa prika-
zanih na slici 8-5. Mnogc operacije ukljucuju svojevrsno ,.opsecanjc''; u njima se
zadajc operand i interval, a operacija prisilno smesta operand u interval, menjajuc'i
mu vrcdnost u gornju iii donju granicu intervala ukoliko je prvobitno bio izvan njega.
Opsecanje sc moze izvoditi sa osmobitnim, sesnacstobitnim iii sa tridesetdvobitnim
opcrandima. Na primer, kada se na brojeve 40 i 3ci-O primcni interval opsecanja od 0
do 255. rcwltat su brojevi 40 i 255. Grupa Clip izvodi opcracije opsecanja.
Grupa I Opis
Clip (Opsecanje) I Opseca cetiri bajta iii dve polureci
DSP absolute value (Apsolutna vrednost) Opsecena apsolutna vrednost oznacenog broja

DSP add (Sabiranje) Opseceni zbir oznacenih brojeva

DSP subtract (Oduzimanje) Opsecena razlika oznacenih brojeva
DSP multiply (Mnozenje) Opseceni proizvod oznacenih brojeva
Min, max (Minimum, maksimum) Minimalna iii maksimalna vrednost cetiri para
bajtova
Compare (Poredenje) Poredenje dva registra bajt po bajt
- -- ----1
Shift (Pomeranje) Pomeranje para 16-bitnih operanada
Sum of products (Zbir proizvoda) I Oznacen zbir 8-bitnih iii 16-bitnih proizvoda
Merge, pack, swap (Spajanje, pakovanje, I Rad s bajtovima i polurecima
razmena)
I Byte quad.averages (Srednja vrednost srednja vrednost cetiri bajta,
jta) izracunata bajt po bajt

Byte averages (Srednja vrednost bajta) Neoznacena srednja vrednost cetiri elementa,
izracunata bajt po bajt
Byte multiplies (Mnozenje bajtova) Neoznaceno 8-bitno mnozenje
1 Motion estimation (Procena pokreta) Neoznacen zbir apsolutnih vrednosti oznacenih
L 8-bitnih razlika .
Ostale aritmeticke operacije j
Slika S-5. Glavne grupc namenskih operacija za procesor TriMedia.
8.1 Paralelizam na prncesorskom 551
Sledec'e cetiri grupe sa slike 8-5 obavljaju oznacene operacije nad operandima raz-
licite velicinc, opsecajuci rczultat tako da stane u odrecleni intervaL Grupa Min, mJx
ispituje dva registra i za svaki bajt pronalazi najmanju iii najvecu vrednost. Slicno to-
me, gmpa Compare posmatra dva registra kao cetiri para bajtova i poredi svaki par.
Multimcdijske operacije se retko obavljaju nad 32-hitnim celim brojevima jer JC
vecina slika sastavljena od ekranskih RGB tacaka sa 8-bitnim vrednostima za crvenu,
zelcnu i plavu boju. Kada se slika obraLtuje (npr. komprimuje), ona sc obicno predst:t-
vlja pomoc'u tri komponentc, po jedne za svaku boju (RGB prostor) iii u logicki ek-
vivalentnom obliku (YUV prostor, o kome cemo govoriti u nastavku poglavlja). U
svakom slucaju, glavnina obrade ohavlja se nad pravougaonim matricama koJC
sadr?.c 8-bitne nem:naccne cele brojeve.
Za procesor TriMcdia postoji mnogo operacija spccificno namenjenih efikasnoj
obradi matrica 8-bitnih neoznacenih celih brojcva. Kao jednostavan primer. razmotr.-
te gornji levi ugJo matricc 8-bitnih vrcdnosti smestenih u (,big endian") memoriji,
kao sto je prikazano na slici 8-6(a). Blok velicinc 4 x 4 prikazan u uglu sadrzi sesnae>t
8-bitnih vrcdnosti oznacenih simbolima od A do P. Pretpostavimo, na primer, da ma-
trica treba da budc transponovana kako bi se dobila mat rica kao na slici 8-6(b ). Kako
se to moze i;:vesti'l
A B C D
E F G H
I J K L
M N 0 P
(a)
,-- - r- --,--
A E I M
B F J N
rc G K 0
D H L p
r-
(b)
/ 32-bitni registar
I'
R2 [A[BJCIDJ R2 [AJE'JITMl
R3 I E I F I G I H I R3 [l:Ujj_J !Nl
R4 II I j I K I L I R4
RS I M I N I 0 I Pl R5 I D I H lil='J
(c) (d)
Slika S-6. (a) l'vlatrica 8-bitnih dcmcnala. (bJ Transponovana matrica. (c) Originalna matrica
u Cctiri rcgistra. (d) Trart-.;pono\ ana matnca "imcStena u Cctiri rcgistra.
Transponmanje se mo?.e obaviti tako sto ce se kro;: 12 opcracija ucitati bajtovi u re-
gistre, a zatim krozjos 12 operacija smestiti na prava mc:sta. (Napomcna: cetiri bajta na
dijagonali matrice tokom transponuvanja se nc: pomcraju.) Problem sa ovakvim pristL-
pomje to sto on zahteva 24 (dugacke i spore) operacije rekrenciranja memorijc.
Altcrnativaje da se puC:nc sa cetiri opcracijc koje ce ucitati po jednu rcc u cetiri r<--
zlicita rcgistra (od R2 do RS) kao na slici 8-6(c). Zatim se te cetiri reci pretvaraju opt-
racijama maskiranja i pomeranja da bi sc dobio trazcni rezultat. kao na slici 8-6(cl). Na
kraju se ove reci ponovo smestaju u memoriju. lako na ovaj naC:in broj obracanja mc-
moriji smanjujerno sa 2-+ na 8, maskiranjc: i porneranjc su skupe operacijc zbog mnc-
gobrojnih operacija potrebnih za izvlacenje svakog hajta i ponovno umctanje na
njegovo pravo mesto.
..;;!.:
I

552
Poglavlje 8: AIhitckture paralelnih racunara
Proccsnr TriMcdia ima rcsenjc bolje od oba navcdena. On prvo u registre ucitava
cctiri reci. Medutim, umcsto da trazeni raultat dobije maskiranjem i porneranjcm, on
za to koristi specijalne nperacije za uzimanje i ponovno umetanje bajtova u registre.
Tako sc nab matrica mozc transponovati uz samo osam obracanja memoriji i osarn
specijalnih multimcdijskih operacija. K6d prvo sadrzi instrukciju s dvc operacije uci-
tavanja u poljima -1 i 5 ida hi se upisalc reci u rcgistre R2 i R3), iza cega slcdi drug a ope-
racija za upisivanjc n;ci u registre R4 i RS. Instrukcije koje sadrl:e ove operacijc mogu
da koriste polja 1, 2 i ' u ciruge svrhe. Kada sc sve reci ucitaju. osam specijalnih mul-
timedijskih opcracip llHll.e :-.e spakovati u dve instrukcije da bi se dubio trazeni re.wl-
tat, a zatim sktk dvc in:,trukcije za smdtanje rezultata u memoriju. Svc u svemu,
potrebno jc sanw sc:st instrukcija. a 14 od 30 polja u instrukcijama raspoloziva su za
drug<.:: opcrctcijc. Ceo pusan St:: rnozc obaviti korisccnjcrn oko tri instrukcijc. Druge
multimcdijske upcracijc isto su tako etlkasne. Buduci da irna ovako ctikasnc opcracije
i pet pulja /a njih po procesor Tri-Mcdia izu1.etno je efikasan za specijali-
zovana izracunavanja neuphodna /a obradu multimedijskog sadrzaja.
8.1.2 Viscnitni rad na jednom Cipu
Svi savrcmcni pruce:-.ori kuji paralelnu ubraJu imaju zajednicki problem:
kada ,,, pri rckrenciranju mcmorije promasc kesevi i prvog i drugog nivoa, onda se
dugu ceLt da sc tra.lena rel: (is njum povezan red keiia) ucitaju u kd. tako da se linija
ohradc Jedan od nacina za prevazilazcnJe ove situacijc, zvan visenitni
raJ lla cip11 (engl. 011-clzip 11111/titlzrel/Jing), O!llOgucava procesorU da radi istovrcme-
llll s programsk.ih niti, pokusavajuci da tamaskira pumenute zastoje. Ukratko,
JL' pna nit blokirana. procesor jos uvck ima sanse da i.cvrsava dmgu nit i tako u
punoj mcri uposlpva hardvcr.
L1k.<J jc u,;novna 1amisao prilicnu postojc brujne varijantc koje cemo
r.::d,1m r:il!l1utriti. Prvi pristup, zvan viSenitni rad visoke rezolucije (cngl.jinl.'-grai-
"''" lllulrirlzru!ding). priLllanje na slici X-7 za procesor koji moze da izdajejednu in-
pu si:-.t.::mskum ciklusu. Na slikanJa o-71a)-\C) \idimo tri niti, A. B i C.
td,J nn I 2 ma\inskih ciklusa. Tukom prvog ciklusa nit A izvrsava instrukciju A 1. Ta
in.,tmkcija se za\ rsava u jednom ciklusu. pa u drugom ciklusu zapocinje instrukcija
A..?. ,'i:tblc<st, ova instrukcija promasuje kes prvog nivoa, pa ceka dva ciklusa da se
rc:( prcu1mc iz drugug nivoa. Nit nastavlja s radllrn u petom ciklusu.
:-lLu
1
' \(ltiie, niti Hi C takuLtc povremeno zastaju, kao sto jc prikazanu na slici. Prcma
ovom me >tklu. akll instrukcija zastane. ne mnzc sc izdati slc:deca instrukcija. Naravno,
Ul nck.i ';lu?cniJr scmafor u tak. voj situaciji bi se jos uvek ponekad mogle izdavati
nmc: ir-,;trukcije. ali takvu mogucnost nccemu dozvoliti u ovum razmatranju.
rad visokc rewlucije maskira ;astoje tako stu niti izvrsava ukrug (tj. u
u;;t>'"IH:il: ciklusima i1.vrsavaju se razlicik nitiL kao na slici g-7(d). lJ trcnutku kad
,,aid-: cikius. memorij:-.ka operacija 1apoceta u instrukciji AI zavrsila se, pa se
1\hl:'.: instrukcija A2, cak. i ak.u joj treba re!Uitat instrukcije AI. u UVO!ll
: sc !cbL1jc naj\i;c dva ciklusa, pa sc s tri prugramske niti zaustavljena opera-
It'. cf.. na vremc. Kada bi J:astoj zbog cek.anjJ na memoriju trajao l"etiri
c:ikluc"' /.cl ube;:beLtivanje neprekidnog rada trebale hi nam cetiri niti.
8.1 Paralelizam na proccsorskom
553
(a) [JA3[A4[As[ [ [A6[A7[As[ (d)
(b) TJB2[ [
(ci [ [cs[c6[TJC7]CBJ (e) [MJA2[JID[JC2JC2J[C4[A3[A4[As[
Ciklus _,.._ Ciklus ____.,.._
Slika 8-7. (a)-( c) Tri programske niti. Pr,une kucice znace daje nit zastala da saceka memoriju.
(dJ Yi.,cnitni rad visokc n:zolucije. (c) Yisenitni rad niske rczolucije.
Posto 'u razlicitc programske niti potpuno nezavisne jedna od druge, za svakL je
potreban zaseban skup rcgist<(ra. Kada se izda ncka instrukcija. s njom se mora pro-
slcditi i pokazivac na njen skup registara, tako da hardver pri referenciranju
zna u kom skupu ce ga naci. Shodno tome. maksimalan broj niti koje sc mogu istmre-
mcno i:rvrsavati, unaprcd je udreden konstrukcijom cipa.
Opcracije s mcmorijom nisu i jedini uaok zastoja. lnstrukcija zna da hude polre-
ban rc:zultat druge instrukcije koja jos nije Ponekad instrukcija ne moze da
zapocne rad zatu sto treba da skol'i na adresu kojajos nijc poznata. U principu, akc li-
nija paralelne obradc irna k faza, a ima najmanje k programskih niti kojc se i1.vrsavaju
ukrug, u liniji obrade nec'e nikada biti vise od jedne instrukcije po prograrnskoj r:iti,
pa necc biti sukohljavanja. u takvoj situaciji procesor moze da radi bez /astoja
- punom brzinorn.
Naravno, mozda ima manje programskih niti nego faza obradt:, pa m:ki k.onstr.tk-
tori vise vole drugaciji pristup. poznat kao viscnitni rad niskc rezolucijc (engl. ,uor-
,\C!;ruined nwltitlzreuding), ilu.-;trovan na slici 8-7(c). Ovde nit A zapocinje rad
i nastavlja da izdaje instrukcijc sve dok nc zastanc, propustajuci jedan ciklu:-. U tLlll1
trenutku dol<lli d() skoka na drugu programsku nit i se instrukeija Bl. Pes to
sc prva in:-trukcija niti B zaustavi, dolazi do sJ..oka na sledccu programsku nit i use-
stum ciklusu izvrsava se nit C/. Postu se t kad goJ instrukcija zastanc i pwpu:-.ti
ciklus. vi;cnitni rad niske rczolucije potencijalno jc manje cfika;;an ud vis.:niuwg
rada visoke remlucije. ali ima tu veliku preclnust da jc potrcbno manjc rro-
grmm:kih niti da bi se pruccsor potpuno uposlio. U situaciji kaJa ncma dovoljno ,tk-
tivnih programskih niti, lakse je pronaci nit koja se nwze ak.o .sc primet;i rad
u niokoj rczoluciji.
lako smo istak.li da se u visenitnom raduu niskoj rezoluciji pri svaLum 1astuju pre-
lazi na drugu programsku nit, to nije ijedina mogucnust. Druga nwgucnc>-;tje da '' na
drugu programsku nit prectc cim sc naiLte na instrukciju koja bi mogla !zauati zastoj
(npr. instrukcijll za ucitavanjc, smdtanjc Iii grananje), ito cak i pre ncgo stu ,c; utndi
da lice on a stvarno izazvati zastoj. Ova strategija umogucava raniji prebzak. s jc:dnc
niti na drugu (cim sc instrukcija dekmlira) i mozda mozc da spreci propu<:tanjc c:iklu-
sa. lJ stvari, moto ove strategije je: ,,l;:vrsavaJ sc dok ne narJju;is probkm, a za
svaki slucaj skoci na drugu programsku nit". Na taj nacin vi;,cnitni r;td u niskLj rc/u-
luciji pocinje da lici na rad uvi,okoj rczoluciji, njcg\l\iml:c,;timukljuCi\a!l.Jcml'as
jcdne. cas druge programske niti.
'

554
Pog;lavlje 8: Arhitckture paralelnih ral'unara
Bez obzira na rezoluciju visenitnog rada, uvek mora postojati nacin da se zna koja
operacija pripada kojoj programskoj niti. U visokoj rezoluciji, jedino je ozbiljno re-
senje da se svakoj operaciji pridruzi identifikator programske niti, tako da identitet
operacije sve vreme bude siguran kako se ona krece kroz faze obrade. Pri radu u ni-
skoj rezoluciji postoji jos jedna mogucnost: kad se prelazi s jedne programskc niti na
drugu. treba pustiti da se linija obrade ocisti i tek onda zapoccti sledccu nit. Na taj
nacin je u jednom trenutku uvek samo jedna nit u liniji obrade i nema problema sa
identifikovanjcm operacija. Naravno, pustanje da se linija obrade ocisti kad god se
prelazi s jedne niti na drugu ima smisla samo ako se prelazak odvija u intervalima koji
su mnogo cluzi od vrcmcna praznjcnja linije obrade.
Dosacl smo pretpostavljali da procesor moze da izclaje samo jednu instrukciju po
sistcmskom ciklusu. Medutim, kao sto smo vidcli, danasnji procesori mogu da izdaju
vise instrukcija po ciklusu. Na slici 8-8 pretpostavljamo da procesor moze da izdaje
dve instrukcije po sistemskom ciklusu, ali i daljc vazi pravilo da pri zastajanju jcdne
instrukcijc slcdeca instrukcija ne moze da se izda. Na slici 8-8(a) vidimo visenilni rae!
u visokoj rezoluciji sa superskalarnim proccsorom koji izdaje clve instrukcije po
ciklusu. U prvom ciklusu se za nit A mogu izdati prve dvc instrukcije. ali u slcdecem
ciklusu nit B odmah stvara problem, tako da se izdaje samo jcdna instrukcija ire!.
Ciklusi
(a)
Ciklusi -----
(c)
Ciklusi
(bJ
Slika 8-S. Vi,cnitni rad na supcrskalarnom proccsmu s U\'C itblnt"-cijc po ciklusu. (et) Viiknitni
rad u viso"-oJ (b) Vi.\cnitni rad u n"koj renJiuciji. (cl Simultatl vi;cnitni rad.
Na slici 8-8(b) vidimo kakn se oclvija visenitni rad uniskoj rewluciji na procesuru
s dvc imtrukcije po ciklusu. ali sada sa statickim rasporectivacem koji ne U\'Odi prazan
ciklus posle zastajanja neke instrukcije. Programske niti se u osnmi smenjuju ukrug.
pri cemu pmccsor izdajc dve imtrukcije po niti sve dok ne naide na neku koja izaziva
zastoj- tada prelazi na drugu nit na pocetku sledeceg ciklusa.
Sa supcrskalarnim proccsorima moguc je i trcL'i nacin rada s vise programskih niti.
tzv. simultan viSenitni rad (engl. .1imullitneous mul!irhreuding). ilustrovan na ;,lici
8-8(c). Ovaj pristup. koji sc moze smatrati pobnijsanjem rada u niskoj rczoluciji. umo-
gucavajednoj niti da izdaje po dve instrukcije u ciklusu sve dok to moze. ali kada ;Jsta-
ne. instrukcijc se odmah uzimaju iL. sledcce niti u redu da bi se procesor sve vreme
dr7ao zaposlen. Simultani visenitni rad takmte pom:tze i da se s1e funkcionalne Jedi-
nice potpuno uposle. Kada neka instrukcija ne moze da sc zapocnc jer je odgovarajuc':l
8.1 Paralelizam na proccsorskom
555
funkcionalna jedinica zauzeta. umesto nje se moze izabrati instmkcija iz clruge pro-
gramske niti. Na slici pretpostavljamo cia se instrukcija 88 zaustavila u jedanaestom
ciklusu. tako da je u dvanaestom ciklusu zapoceta instmkcija C7.
Dodatne infonnacije o radu s vise programskih niti mozete naci kocl Deana (2004).
Kallae et al. (2004) i Kapil a eta!. (2004 ). So hi i Roth (200 I) ispitivali su kombinaciju
visenitnog rada i spekulativnog izvrsavanja.
Hiperniti na Pentiumu 4
Posto smo rad s vise programskih niti razmotrili uopsteno, pogledajmo jedan prak-
tican primer: procesor Pentium 4. Nakon sto je krenula proizvodnja Pentiuma 4. ln-
telovi konstruktori Sll poceli cia traze nacine da ga ubrzaju, ada pri tome ne promer;e
interfejs za programiranje, jer to nikada ne bi bilo prihvaceno. Ubrzo su se kristalisale
sledcce mogucnosti:
I. Povecanje brzine radnog takta.
2. Stavljanje dva na cip.
3. Dodavanjc funkcionalnih jcdinica.
4. Produzavanje linije paralelne obrade.
5. Rad s vise program:;kih niti.
Ocigleclan nacin poboljsavanja pcrformansijcste ubrzavanje radnog taktajer se pri
tome nc mora nista drugu menjati. Taj naCin je srazmerno jcclnoslavan i razurnljiv.
tako da je svaki nnv cip pomalo brzi od svog prcthodnika. Nal:alost. ubrzavanje rad-
nog takta ima dve mane koje i postavljaju granicu ubrzavanja. Prvo, brzi radni takt
lrn;i vise energije. sto je veliki problem za prenosive racunare i druge urectaje koji
rade na batcrije. Drugu. dodatna potrosnja cncrgijc znaci i vece oslobactanje toplotc
koju treba oclvoditi.
Sta\ ljanje dva pnKC'>Ora na cip srazrnerno je jednostavno. ali se svodi na udvo-
struC'avanje puvr;ine cipa ukoliko svaki procesor treba da ima svoj kes ina taj nacin
se broj cipova koji sc mogu iseci iz silicijumske plocice i udvostrucuju
sc po jcdinici proizvoda. Ako dva cipa dele isti kes prvobitne velicine, po-
vrsina cipa se nc udvl'strucava, ali se kolicina kda po proccsoru prcpolovljuje, sto se
lose odrazava na pcrf,,rmansc. Osim toga, dok zahtevne serverske aplikacije cesto
mogu p<ltpuno da iskurisre vise procesora, ncmaju svi stoni racunari clovoljno para-
lclimu da Ppravdaju uputrebu elva paralelna procesora.
Dndavanje nuvih !unKL'icmalnih jedinica takocte jc prilicno lako izvoc!ljivo. ali je
mde vazno odrzati ispravnu ravnot6u. Deset ALU jedinica malo ce pomnci ako cip
nijc u stcnjil da u liniju ubradc saljc dovoljno instrukcija koje bi ih sve uposljavale.
Du:fa linija ('brade s vi;e faza. od kojih svaka obavlja manji cleo posla u kracem
vremcnu, takude performanse. ali povecava i negativne efckte izvazvanc
pogresnim predvidanjem grananja. promasivanjem kesa, sistemskim prekiclima i dnt-
gim ciniocima kPji remde tuk obrade podataka. Stavise, da bi se putpuno iskoristila
prndu/ena linija ohr;tdc. mora se ubrzati radni lakt, sto uzrokujc vecu potrosnju ener-
i \ ise o;;lobmkne toploie.
ft<


:

D<ll

'
f





t


556
Poglavlje 8: Arhitekture paralelnih racunara
Na kraju. rnoze se uvesti i rad s vise programskih niti. Njegova je vrcdnost to sto
.. drug:!'' programska nit moze da iskoristi hardver koji inacc ne bi nista radio. Nakon
izvesnog ekspcrimentisanja postalo je jasno da se sa 5% povecanja povrsine cipa po-
trehnog za visenitni rad postizu 25% bolje performanse u mnogim aplikacijama, sto
opravdava uvmlcnje ovakvog nacina rada. Intelov prvi procesor s podrskom za vise-
nitni rad hio jc Xeon 2002. godine, ali je visenitni rad kasniJe dodat i u Pentium 4,
pocevsi ud verzijc s taktom od 3.()6 (1Hz, nastavljajuci sc u svim brzim verzijarna
procesora Pentium. Svoju implementaciju visenitnog rada u Pentiumu 4 Intel je na-
zvan rad s hipcrnitima (engL lzyperthrewiin!{).
Osnovna idejaje bila da se omoguci istovremen rad dve programske niti (iii, rnoz-
da, procesa jer pmcesor ne pravi razliku innedu procesa i programske niti). Hipernit-
ni cip Pentium 4 operativnom sistemu izglec!a kao dvostruki u kome oba
procesora dele zajednicki kcs i glavnu mcmoriju. Opcrarivni sistem rasporectuje pm-
niti z.a nezavisno izvrsavanje. Ako su istovremcno otvorcnc dve aplikacije.
operativni ohe mo?e istovremeno izvr<avati. Na primer. ako sistemska usluga
iii prima clcktronsku pnstu u poz.adini, dok korisnik aktivno rac!i u nekom pro-
gramu, oba programa se mogu izvrsavati paralclno, kau da svaki koristi svoj sopstve-
m pmccsor.
Aplikacioni softver projcktovan uz poclrsku za visenitni rad mu/,e da koristi uba
virtuclna procesora. Na primer, pmgrami za obradu video zapisa obicno korisniku
omogucavaju da primcnjuje odrcdene tiltrc na svaku -.liku iz mlrectenog intcrvala. Fil-
tri mugu da menjaju osvetljcnost, komrast. ravnotd.u boja i c!rugc' karakteristikc sva-
ke slike. Program tada moze da udredi jedan procesor za obradu parnih slika, a drugi
za ohradu ncparnih i cia oha deJa programa tcku uporcdn. nczavisnu jcdan Dd drugog.
Posto dvc programske niti dele svc hardvcrskc resursc, p<Jtrcbna jc stratcgija za
upravljanje delJCiljem. Intel je udredio cctiri korisne strategijc La dcljcnjc ll
okviru rada s hipcrnitima: dupliranje re.;;ursa. panicionisanjc r.:sursa. ograniccno
deljenje i potpuno dcljenjc. Svaku cemo ponaosoh ukratko ubjasniti.
Prvo i,;ticenw da sc Ddredeni resursi dupliraju sanw ;a viscnitni rad. Na primer.
posto svaka programska nit ima sVOJLI knntrolu toka. mora se d<ldati i cirugi progr:uJJ-
ski brojac. Osimtoga. mora se udvu<.tnrciti i tabela koja preslikava registre delinisane
arhitekturom ( 1\X. f.'BX itd.) u tizicke registrc. kao i kontrolcr sisternsld1 prckida jcr
svaka nit moie biti nezavisno prckidana.
Sledccc je particionisanjc deljenih resursa (cngl.[>urtilionnl rcwtun: .\!turing\.
gJe sc .,vaki hardverski resurs stmgu deli izmedu aktivnih niti. primer. aku
sor ima red ccLmja iLil1eL!U dve funkcionalne faze paralelne olxadc. pnllnina ;nc;ta
u njima moze se namcniti prvoj programskoj niti, a polov ina drut:ui prc;crarnskoj niti.
Particiuni.,anjc se lako ohavlja. bez uvodcnja beskorisnog rada. i UL n.Je::;a 'U pro-
gram;,kc niti dubro izolovam:jedna od druge. Kada su svi rcsursi panicioni,ani. ckk
tivno dohijamu dva Lasebna prucesora. Lose jc to slo se mn/.e lksiti da ll jedm>lll
trenutku Jedna prograrnska nit ne koristi sasvirn svuje rcsup;e, duk ih i.-:tm rcmcno
druga prugramska nit tral:i. ali im ncma prist up. Dakle. k<Jji mogli l.;mi-
sno upotrchiti. ostaj u neiskorisceni.
K 1 Paralclizam na procesorskom Cipu
557
Suprutnost particionisanju dcljenih resursaje potpuno dcljcnje resursa (engl. jill/
resource sharin!{ ). Kacla se koristi ova serna. svaka programska nit moze da pristupi
svakom potrebnorn resursu. MeLtutim, zamislite brzu programsku nit sastavljenu
uglavnom od sabiranja i ucluzimanja i sporu programsku nit sastavljenu uglavnom oc!
mnozenja i cleljenja. Ako se instrukcijc ucitavaju iz rnemorije brze negu stu se mogu
ohaviti uperacije mnozenja i clcljenja. one ce se za sporiju nit nagornilavati u reduce-
kanja ispred linije obrade. Najzad, popunice red cekanja. pa cc: Sl' br/a prograrnska nit
zaustaviti zhog ncdostatka mesta u redu za instrukcije. Putpuno deljenje resursa resa-
va problems resursom, kada gajec!na prc1gr:1m.sb nil nc koristi, a dru-
ga ga trazi, ali otvara nov problem kada jedna prograrmka nit tnl1ko uptereti resurse
da drugu znatno uspori iii cak potpuno zaustavi.
Srednje rdenje jc ograniccno deljenjc (engl. thrc.\ltold slwrin!{), prema kome
programska nitmo/.e dinamicki da pristupa rcsursima tkcJJi nisutiksno particionisJ-
ni), ali sarno do odrcdenog maksimuma. Za resurse koji su replicirani, ovakav nactn
rada daje potrcbnu lkksibilnost- prog:rarnsLt nit sc zaustaviti 'ato stone moze
da pristupi rcsursirna. t\ko, na primer. nijcdn:1 nit nc moze da zauzme vise od 3/4 reda
za instrukcije. brza nit ce se uvck i7.vrsavari, bez ohzira nato sta radi spora nit.
Za rad s hipcrnilima Pentium-+ koristi raz!icile stratcgije dcljenja resursa da hi na
raL.Iicitc nacinc resio pomcnuk porenc:ijalnc problcme. DuplirariJe se koristi za rcsurse
koji .su S\e vrerne potrehni svakoj niti, kao stu su pwgramski brojac, mapa registar<: i
kontroler prekid:t. Dupliranje ovih rcsursa uvcc'ava povrsinu cipa samo za
5r:{ . je mala cerw za rad s programskih niti R.csursi kojih irna toliko c!a nc po-
stoji npa:;nost da i!t potpunu ang:a!uje bilo kuja prugramska nit, kao sto su redovi kesa,
potpuno sc dele dinamicki. S dn:gc strane. rc,ursi koji upravljaju radom liniJe za par.l-
!t:lnuuhradu. kao stu su raLliciti redo\ i cekanja unutar linije, particionisu se, uz dode-
ljiv:mje poh)\ inc m-.:sta S\akoj pwgramskoj niti. Glavna linija obrade mikroarhiteklurc
Nethurst '" koristi u + na slici t;-9. pri cemu hcle i sive po-
n\i:JC' ukazuju na tu Ld;o se rcsur:.i dudcljc.tjtt reluj. odnosno sivoj programskoj niti.
r:'ro:Jrc":;Jr1st: brc1-cC
.. ..
- i ! -)-,
f-,!-f-J mnr1 ' i __j 1 ;.111,1'1-' .
_j '"""L:L
c::::!j] :lUUWJ 1 1 'll]n!'n i'!ljl'l 1 c=::==. r-+)
... :----=-j
' I ! lJ !i.!l!r!il ,j;U '':1 ! I

Kc>s z;;. r:;,::.u
pio2:J2lfTUr1jt!
lzvrSavanw D-keS Red za
zavrSavar,e
SJih.a 8w9. DcljCllj: rt..''-'UL'->:t lt.mc(!l! pr;)gJ . ..,h.lil nili u 1111krourhitc-kturi \rctBurst Pentiuma -1-.
:--b JllC:iiJ,ldll<'j .-;Jici vidir;Jp LLi Sll S\i red11Vi cekanja pa11icinnisani. S poJovinom
meq,t u svakolli rc'ciu 1a .J<.:tln;r nir. 7'1,1 taj nacin nijcdna od dve niri nc
llH'J,' cia iLhaci drugu i/ rc:da .. kd1nica /.a d,,kljivanje i preimenovanJe registara ra-
kmk: jc l'&itcJ:ni:-.:liJ:t. R,tSJurnlivac sc deli dinamicki, ali u1. ogranicenJe. dane bi
jt'dll,l nit .'V:l lllCS[J. 0'ol:tk ia; linije obrade pntpllllll Se dele.
i
i
L
l_.i
u

f!:w\'
558
Poglavljc 8: Arhitckture paralclnih racunara
RaJ s vise programskih niti nije, medutim, samo ,med i rnleko". !rna on i svojih ne-
dostataka. Jako je particionisanjc jcftino. Jinamicko dcljenje resursa, narocito LIZ po-
stavljanje granice koriscenja za jednLI nit, zahteva da se koriscenje resLirsa tokom
izvrsavanja brizljivo prati. Osirn toga, mogLI nastati situacUc LI kojima program rnnogo
losije radi s programskim nitima ncgo bez njih. Na primer, zamislite dve programske
niti od kojih svakoj treba 3/4 kda da bi dobro radila. Kada se izvrsavajLI pojedinacno,
svaka radi odlicno LIZ mali broj (skupih) promasaja kcsa. Kada se pokrenu uporedo,
svaka promasLije kd mnogo pLita. pa rezultat moze biti znatno losiji.
DoJatne informacije o radu s vise programskih niti na PentiumLI 4 mozete naci kod
Gerhera i B instocka (2004 ). Koufatyja i Marra (2003 ), i kod Tuck a i Tullscna (2003 ).
8.1.3 Vise proccsora na jed nom cipu
Jako visenitni rad znatno poholjsava performanse po umerenoj ceni. za neke apli-
kacije je potrebno poholjsanje pnformansi koje on ne mo;:;e da obezbedi. Za takve si-
tuacije su smisljeni cipovi s vise procesora, tzv. viscprocesorski cipovi. Dve oblasti
koje su interesamnc za primenu cipova s dva iii vise procesmajcsu najzahtevniji ser-
veri i clektronika sirokc potrosnje. U nastavku cemo sc na njih kratko osvrnuti.
Homogcni viscprocesorski cipovi
Kako je VLSI tchnologija napredovala. danas se na jedan cip mozc smcstiti
mocnih procesora. Pusto oni uvek dele i,ti kes prvog nivoa. isti kcs drugog nivoa i
glavnu mcmoriju, oni cine viseprocesorski cip. kao sto smo ohjasnili ll poglavlju 2.
Tipicna primena za njih je farma Web scrvcra koja sc sastoji od hrojnih pojcdinacnih
scrvera. Kada u istu ,.kutijicu" smestitc dva procesora koji ne dck samo mcmoriju.
vee i Jiskove i rnrdne kartice, performanse scrvera se ccsto mogu duplo poboljsati
bcz dupliranja troskova (postu, makar i po dvostrukoj ceni, procesorski cip pred,ta-
vlja samo .JCclan deo ccnc sistema).
Za vise proccsura na jedinum cipu. pred kuje ,c postavljaju skromniji zahtevi,
preovladuju Jve kunstrukcije. U prvoj, pnkazanoj na slici zaista postoji samo
jedan cip. ali je na njernu i druga linija ohradc. cime se potencijalno udvostrucava
be-'. ina izvrsavanja instrukcija. U drugoj konstrukciji. prikazanoj na sl ici O(b ),
postoje 1.aschna jezgra na cipu, a svakc1 sadr/.i procesm. Jczgro (engl. core) veliko je
elektronsko kolo. kao sto 'll proccsor, konlroler ulanw-izla/.nih operacija iii kd. kojc
se na cip mo/"e sme-,titi kaujedinst\en modul, po pravilu upmcdo s drugimjc/.g:rima.
Prethodna konstrukcija omogucavalaje proccsurima da dele n:'sup;e (npr. funkciu-
nalne jedinicc) i tako dopustalajednom pruce,oru da koristi resur.sc koji drug om prn-
cesoru nisu polrebni. Takva sama rada, s drugc stranc, zahteva izmcnc u projektu cipa
koje sene mogu lako primeniti na cip s visc od dva proccsora. tome. dv:1 iii
vise jczgara se bez te:ikoca pustavljaju na isti cip.
Q Cipovima S vise proccsora govoriccmo U OVOill pog:JavJju. Jako SC tO rcll-
matranje prilicno oslanja na cipove s vise proccsora izgradcnc od jednoprocesorskih
cipova, veliki deo razmatranja primenljiv je i na viscproce,orske L'ipove.
8.1 Paralelizam na procesorskom
Linija,
obrade
Procesor
I
I
c::::
Kes memorija
(a)
559
Linija obrade Procesor
(b)
Slika 8-Hl. Vi,;e procesPra najednom cipu. (a) Cip s dve linije obradc. (b) Cip s dvajezgra.
Hcterogcni viseprocesorski cipovi
Jedno potpuno drugacije podrucje primene koje vapi za cipovima s vise procesora
JCSU ugradcni sistcmi. narocito Olli ugradeni U audio i video clcktroniku sirokc potrC-
snje. kao sto su TV prijemnici. DVD plejcri. kamkorderi, konzok za igru, mobilni
tclefoni i dr. Ovim sistemima neophodne su visoke perforrnanse i imaju stroga ogra-
nicenja. Jako sviti uredaji izglcJaju potpuno razlicito. u stvarnosti oni sve vise posta-
ju minijaturni racunari. s jednim ili v i;e prc1ccsora, mernorijom. kontrolerima ulaznc-
-izlaznih opcracija i odredenirn, namenskim ulazno-izlaznim uredajima. Mobilni
telcfon, na primer. nije nista drugo do PC racunar s proccsorom. memorijom. minija-
turnom tastaturom, rnikrofonom. zvucnikom i bezicnim prikljuckom za mrezu- sve
u malnm pakovanju.
Razmotrite. na primer. prenosivi DVD plejer. Racunar u njemu mora da obavlja
sbieee funkcije:
I. Upravljajeftinirn. nepouzdanim scrvomehanizmom za vodenjc glave uredaja.
2. Prctvara analogni ,ignalu digitalni.
3. lspravlja grl.'Ske.
-+. Ddifru.Je i <)bradujc digitalnih autorskih prava.
5. Dckomprimuje vicko zapis prema standarclu MPEG-2.
h. Dekomprimuje zvuk.
7. Kodira izlaz za TV prijcnmike prcma standardima NTSC. PAL iii SECAJ\11.
Svi ovi po.-;10\ i moraju sc obavljati u realnom vremenu. uz ohczhedenje kvaliteLt
usluga, 'miktnu stcdnju encr;iJe. odvoclcnje toplote i ogranicenja u pogledu vclicine.
rczine i ccnc uredaja.
DVD diskuvi C:uvaju infonnacijc u clugackoj spiralnoj putanji, kao sto je (za kom-
pakt disk) prik.azano na slici 2-2-1-. Kaku disk rutira. glava za citanje mora tacno
prati 'ipiralu. Ccna uredajcl je niska zahvaljujuci tome sto se koristi srazmcrno jedno-
stavan mchanicki -;istcm pomocu loga se glava cvrsto ndrzava u pravoj poziciji soft-
\cT;kim putem. C!aYa gcncrise analng.an signal koji se pre ohradc mora pretvoriti 11
560
Poglavljc 8: Arhitckturc paralclnih racunara
digitalan. Po digitalizovanju. iz signala se, softverskim putem. moraju ukloniti grdl-.e
kojih ima rnnogo u komprirnovanom DVD zapisu. Video L.apis je komprimovan pre-
ma standardu MPEG-2. pa su La dekomprimovanje potrebna slozena izracunavanja
(slicna Fourierovim transformacijama). Audio Lapis se komprimuje prema psihoaku-
sticnum modelu i takode se dekomprimuje pomocu slozenih izracunavanja. Na kraju.
audio i video zapisi se moraju preraditi za reprodukovanje na TV uredajima prema
standardima NTSC. PAL ili SECAM. u zavisnosti od zemlje u koju se DVD plejcr
isporucuje. Nc bi trcbalo da budete izncnadeni kad kazemu da sav ovaj posao nc moze
softverski i ureal nom vremenu uraditi jeftin proccsor opstc namcne. Potreban jc hc-
terogeni cip s vise jczgara. od kojih je svako specijalizovano za odreden posao. Pri-
mer jednog DVD plejcra prikaLan je na slici 8-ll.
Kader kompozitnih
video zap1sa
Dekoder NTSC/PAUSECAM
Dekoder MPEG zvuka I Kontroler diska
v
1
deo zapisa \ 1
Up""''"'"' / I _fl Keo -. ---,.
Heterogeni cip lf
sa sest Jezgara u _ __

<' .

Slika S-1 J. Logil:ka .-.truktura jeJnustavnug DVD plc.Jcra sadrli hl'fl'rugc!11 Cip:; v i\c
za razlicitc funkcije.
Funkcije svih jezgara na slici 8-ll su rclLlicite. a svako je;gro je hri/ljivo nptimi;n-
vano cia svoju funkcijuubavlja najbolje mole uz najnizu cenu. Na primer. DVll vi-
deu zapisi komprimuju se prema semi pol.llatoj kao i\IPE(;-2 (skraccnica od
njenog tvorca. Motion Picture Experts ()roupL Sema Lako "' svaka :;li-
ka deli na blokove piksela koji sc zatimna sluzen nacin tran;fprmisu. Slika se nn>/c sa-
stojati iskljul'ivo od blokova iii mole sadrfari i inf(>mlaCI)U lLi )C
odrcdcni blok isti kao i blok u prethmlnoj slici. samo stu je pnrneren <HIIlJC za (_\.\:,
i sto ima nekoliko izmenjenih pibela. Kada sc uvCJko ndto radi snt'tvcr:;ki. tn trajc i,u-
7.etno dugo, ali se nwl:c naprCJviti hardverskajedinica ;ra :V!PEG-2 d.:kndiranJe kPj:t i,u
posao obavlja veoma brzo. Slicnn tome, dekmliranje zvuka i ponuvnu kodiranjc- k<llll-
pozitnog audio i video signala prcma svetski prihvacenim TV standardnna mule sc
ohaviti bulje pomocunamenskih thardvcrskih) pmcesora. Ova zapa/anj:! hrh' du-
vode do zakljucka da trcha osmisliti hderogeni cip s vi;;e jczgara speciriC:ncJ
nih pojcdinim audio i video aplikacijamtl. ;vkdutim. posto ,ie up!:tvlpcki prc<.:c'llr u
stvari procesor namene koji se lllcllC pmgramirati. cip se mule
iskoristiti i za druge. slicne namene (npr. za ugradnju u DVD nku1Jer1.
8.1 Paralclizam na proeesorskom 561
Sledeci urectaj kome je potrchan hetcrogeni cip s vise proct.'sorajeste modemiji mo-
bilni telefon. Danasnji telefoni ponekad irnaju ugrauene fotoaparate, video
konzole za igranje. Web citace klijente. citac e-poste i digitalne satelitskc radioprijem-
nike, a koriste i ugradenu tehulog:iju La mobilnc telcfone (COMA iii GSM) iii za bezic-
ni Internet (IEEE f\02. I I. zvan i WiFi): u buducirn mobilnim telefunima mozda cc s1e
ove funkcijc postojati istovremenu. Kako uredaji postaju sve funkcionalniji. uz rucr.e
casovnike koji su u stvari GPS ured:0i za navudenje i naocare koje :.;adrzc radioprijem-
nike. potreba za heterogenim cipovima s vise procesora moze samo da rac;te.
Prilicno hr;:o cc cipovi na sebi imati i 500 miliona tranzistora. T,tKVi cipPvi ;,u prc-
velik zalogaj za konstruktore koji bi da projektuju jedno po jcdnn logicku kolo iii
vezu. Zbog kolicine ljudskog rat,la potrebnog za pmjektovanje cipa na takav nacin. on
bi zastareo pre nego stu bi i usao u proizvodnJLI. Jedino rammno re;enjc je cia se ko-
ristc jezgra (sustinski biblioteke) koja sadrze poprilican bwj podsklopova ida se una
po potrebi smest:0u na cip i 111CL1Usohno povezuju. ProjekttJnli tada lreba da odluce
kojt: ce procesorsko jezgro upolrebiti za upravljacki proeesur i koji to proce;,ori spe-
cljalne namenc trcba da mu pomugnu. Kada se veci deo 1.adataka prepusti softveru
koji -;e izvrsava ll upravljackmn procesunt. sis!Lm ,-;e usporava, ali cip postaje lllllllji
ti jcftiniJi ). Vise proccsora spccijalne namcne za obradu zvuka i video ntpisa tmie
prustor na C:ipu i puvecavaju njegovu cenu, ali obc-cbeuuju bo!Je perfnrmanse Ui' nir.i
tJI...t procesnra. sto 1.nal'i i uz manju potrosnju i manje uslubadanje tuplote.
Stoga se projcktanti cipnva sve cesce suocalaju sa m:tkvim kompromisima. a Sve
manje hrinu o tome gdc da smestc koji tranzistor.
Audiuvin1elne aplibcije ITiu intenzivnD rade s pod:Kima. U jcdinici vremcca
m"ra sc ohr:tdit.i wlo vcli\.;i hr,)j potLttaJ,.a. pa se obicno llll SW'r do 75'7, povrsine cipa
mlv,tja za memmiju. a taj procenat i da!je raste Ovde sc .iavljaju bmjni problemi. Ko-
liku nivca J...e::,a urotrehiti'' Tn:ba li 1-.d pndditi iii ohjcdiniti'
1
Koliki treha cia buJe
svat:i nd dva ke(a i k(,Jik<l brL
1
Da ii ina scull cip trcba staviti memorije'l Da li
d'ttn huc!c SHA:.l iii SDRr\\1 memnrija'
1
OdgPv.lr 1111 sv,:ku od ovih pitanja znacajno
llli:c !let pcrfufl1ldl1SC. Cllt'l'gije j (),,]uh:tdanjc (pp]ute na cipu.
Osin1 p'<xsora i sisL'ma menwtije. l'inilac jc i komunikacioni
si:;tcm- nacin na koji sva jcrgra infunnacije. U malim s:-
'tc::ninltt p.) pr:11 i!u cc biti i JCdna ali ona u vecim sistemima
ubr;u l:esto n1nZc rc<iti pon1oCu viSe n1agistrala ili
prslc'tH.'Ill kuji p(l'l'lujc svajcelgra. L' drugm;J slucaju 'c arbitriranje ustvaruje tako sto
:,e du7. l'l''itcna prn,;ktlujc mali pakct. 1.van zcton (engl. lilACI/). Jezgro koje !.eli da
]Wtl::Lke lllr:: 11:1jpre J:t dohije zcto1l. Kada dt1hije i po\alje pndatke, .Jezgr:J
\T;:l'a lc'tDn u ;'f ;tc'tl. uh.,, nn da kruli Ch :tj protokol sprc:cava
vanj(_' u pr"\L __
KetO prin>cr moduLI ita l'ipu rnO'!;;,Jajmu fH:Vl-mu re:;enje CorcCon-
nect, :--i ici K- 1 2. Tu je arhilcktura /a :nvc/ivanje: jczgara hlterogenog viSt-
tJ kuji ..... c na jcdan Cip. (_-,orcC'onnect
jc Cipuvt_ s \ pruce:-,ur,t u ..... llC'in nnu jc PCf Inagistrala za Pentium
- :cpct:, knji P''vcuj<: s\C deime. ?vkdutinl. razliku od PC! mag:islrak.
r[
r-:,
Lj
"
' ..
::
i
..

I
L
"''.'
i

---- .
562
Poglavlje S: Arhitckture paralclnih rai'uuara
pri projektovanju arhitekturc CorcConnect nisu pustojali zahtevi za kompatibilnoscu sa
st<uijom opremom iii protokolima, niti ograniccnja kuja se ticu magistral a ugradenih na
maticnu plocu, kao sto je bruj nuzica na ivicnom konekturu.
Procesorska
magistrala

\
Magistrala
za pristupanJe
Uredaj
Magistral a za periferijske
ureda1e
Slika S-12. Primer ll:ltvl-ovc arhitckture CorcConnect.
CorcConncct ima tri magistrate. Proccsorska magistrala jc sinhrona magistrala
vclikc hrL.ine, s paraklnom ohradom i 32,64 iii 128 vodova za podatke koji rade takt-
om od 66, 133 iii 18.3 MHz. :Vlaksimalan protuk podataka jc, shodno tome, 23,4 Gb/s
(a kod PCI magistrale inwsi 4,2 Gb/s). Postojanje paralelne obradc omogucavajczgri-
ma da zahtcvaju pristup magi-;trali jos dok se na njoj obavlja prenos a istovremeno ra-
zlicita jczgra mogu da koriste njcnc razlicitc vodove, slicno kao kod PCI magistrate.
Procesmska magistrala jc optimi;.ovana za pre nos kratkih blokova. On a je namenjcna
povezivanju brzih ju.gara, kao sto Sll procesori. MPEG-2 dekoderi, hrze lllfeZe i slicnc
komponcnte.
Ra;:vlaccnjc proccsorskc magistrale po celom cipu pokvarilo bi njene pcrforman-
se. pa zahl postuji druga magistral a za spore ulazno-izlazne uredaje, kao sto su UART
Cipovi. tajmeri. USB kontrokri, scnjski ulazno-izlazni uredaji i dr. Ova magistrala
za perifcrijske urcdajc uproscava pristupanje osmobitnim. sesnaestobitnim i tridc-
sttdvohitnim pcrifcrijskim urcdajima, ada se za to nc utrosi vise od nekoliko stutina
logickih kola. To jc takudc sinhmna rnagistrala maksimalnog protoka od 300 Mb/s.
Dvc magistrak su mcducohno puvuanc mostom, slicnim mostu kojim su pre vise go-
dina p<Jvczi v;mc PC! i IS;\ magistrate u PC racunarirna pre nego sto je ISA magistraL!
povuccnd it UJWlrebc.
Treca je magistrala za pristupanje registrima urcdaja. vrlo spora, asinhrona
magistrala s primcnom koju koriste procesuri da bi pristupili registri-
ma svih urcdaj<t i tako upravljali njima. Onaje namenjena povremcnom
prcmsu -.amn po nekoliko bajtova.
Ohczhcdujuci .standanlnu nwgistralu na samom cipu, interfejs i kostur sistema.
IBM se nada da c'c stvoriti minijatumu verziju PCI zajednice. u kojoj ce mnogi pro-
i;:voc1aci praviti pnKe:.orr: i konrmktc koji se medusobno lako uklapaju. Bitna rcvlika
je. mcdutim, to u PCI 1.ajcdnici pn,izvodaci zaista pravc i prodaju ph1ce kDJe
8.2 Koproccsori 563
distributcri PC racunara i kupci kupuju. U CoreConnect zajednici, nezavisni timovt
projektuju jezgra, ali ih ne pravc, vee ih kao intelektualnu svojinu licenciraju kompa-
nijama za proizvodnju elektronskih urcdaja siroke potrosnje i drugim kompanijama,
koje tada projektuju namenske heterogene viseproccsorske cipove zasnovane na nji
hovirn sopstvenim ili od trecih lica licenciranim jezgrima. Posto je za proizvodnju
tako velikih i slozenih cipova potrcbno ohimno investiranje ll pogone, u vecini sluca-
jeva kompanije za proizvodnju clektronskih uredaja siroke potrosnje sarno ih projek
tuju. prepustajuc'i proizvodnju specijalizovanim proizvodacima cipova. Postoje
jezgra koja udgovaraju hrojnim procesorima (ARM, MIPS, PowerPC itd.), kao i
jezgra namenjena za MPEG dekodere, procesore digitalnih signala i za sve standard-
ne ulazno-izlazne kontrolerc.
IBM-ov CoreConnect nije i jedina popularna rnagistrala na cipu koja se moze naci
na trzistu. Naveliko se koristi i arhitektura Al\IBA (Advanced Microcontroller Bus
Architecture) (Flynn, 1997). U drugc, nesto manje popularne magistrale na cipu, spa
daju i VCI (Virtual Component Interconnect) i OCP-IP (Open Core Protocol-Inter
national Partnership). koje sc takode bore za svoje mesto na trzistu (Kogel i Mcyr,
2004; Ouadjaout i Houzet, 2004 ). Magistrate na cipu tck su pocetak; sad a se cak raz
mislja i o kompletnim mrdama najednom cipu (Benini iDe Micheli, 2002).
Buduci da proizvmtaci cipova imaju sve vecc mukc da povecaju radni takt proce-
sora zhog problema sa odvoclenjem toplote, cipovi s vise procesora veoma su popu
lama tcma. Vise informacija o tome naci cete kod Claascna (2003), Jcrrayae i Woll'a
(2005 ). Kumara ct aL (2004) Lavagnoa (2002), Linesa (2004) i Ravikumara (2004 ).
8.2 KOPROCESORI
Posto smo razmotrili nekoliko nacina postizanja paralelizma na cipu, krenimo
dalje i poglcdajmo kako se racunar moze ubrzati dodavanjem drugog, specijalizova
nog procesora. Ovih koprocesora (engl. coprocessors) ima mnogo vrsta, malih i ve-
likih. Na ccntralnim IBM racunarima serije 360 i svim njihovimnaslednicima, za sve
ulamo-izlazne operacije postoje nezavisni ulazno-izlazni kanali. Slicno tome, CDC
racunari serije 6600 imaju I 0 nezavisnih procesora za ulazno-i;:lazne operacijc. Rad
s grati.kom i aritmctika brojeva u formatu pokrctnog zareza druga su elva podrucja u
kojima su koprocesori nasli siroku primenu. Cak se i DMA cip mozc smatrati kopro-
cesorom. U nckim slucajevima proccsor prcdaje koproccsoru instrukciju ili skup in-
slrukcija i nalaze mu da ih izvr.si; u drugima je koprocesor nczavisniji i radi po
sopst venom nahodenj u.
Koproccsori, ti;:icki. mogu imati sopstveno kuciste (ulazno-izlazni kanali !Bl\1
racunara 360), rnogu biti smdteni na dodatnu karticu (mrdni procesori) ili zauzimal!
rnesto na glavnom cipu (rad s brojcvima u formatu pokretnog zareza). U svim sluca
jcvima, pored njih uvck postoji glavni pmcesor komc oni samo pomaztL Analiziract.>
mo 'ada podrucja u kojirna je moguce ubrzavanje rada: obradu mreL.nih podataka.
multimediju i kriptografiju.


_,,-,

564
Poglavlje 8: Arhitckturc paralelnih racunara
-----------------------
8.2.1 Mrdni procesori
Danas su racunari ug:1avnom povezani u mrc/.e i1i sa Internetom. Zahvaljujuci raz-
voju tehnologije mrcl:nog hardvera, rnrde su sada toliko brze da postaje svc tcZ.e sort-
vcrski obraditi podatkc koji se salju i primaju. Zbog toga su 1.:1 obradu mrdnog
sanbracaja srnislJeni spccijalni mrdni procesori i rnnogi vrhunski racunari sada imaju
jcdan takav proeesor. U ovom odcljku dacemo kratak prika.c rada u mreii. a zatim
cemo ubjasniti kaku rade mre/.ni prucesuri.
Osnovc rada u mrczi
Racunarske mre/.c se mugu svrstati u jcdan od dva op;ta tipa: lokalne mrezc
(engl. Lonil-ur!'u ncfHorks, LAN I. kojc povewju vise racunara unutclr zgradc i1i orga-
nizacijc i mre:lc sirokog opsega iii regionalnc mrezc (engl. \\'idc-urC(I lll'lworks,
n:.-LVI. koje povczuju racunarc rasute sirum vclikug gcografskog pm1rucp. Najpopu-
larnija LAN mreht je Ethernet. Pn ubitni Ethernet se sa:.tojao nd Lkhclog kahla u
koji su !:ice kojc do1azc iz ra;licitih racunara si1om umctane pomocu ckmenta. od
milj;1 naJ.vatwg ubodna (vampirskal racva (engl. twnpirc I<Zf!). U savrcmenom
Et!JcnKtu, raCun<tri -.;u povczani s ccntraltwnt sk.retnicom (engl. .\'\rirch ). kao sto jc pri-
kazano na dcsnom delu s1ike :1. Prvubitni EthcrndJC miko brzinmn od 3 Mb/s, ali
jc pna knmcrcijalna v-cuija veL' pusti;.ab 10 :\lb/s. On<t je kasnije zamcnjcna brzim
Eth,:mctnm od iOO i\lb/:.. a potunt i gigahitnim Uhcrnctomml1 Gb/s. Ethernet brzine
l 0 Ch/-; vee jc na trzistu, <1 onaj od HI Gb/s nalazi se u zavrsnoJ fazi.
Davalac aplikac'la
----------------
!
lnternst Ruter
Server
'
Zast1tna ban1era ]' '
I /
---- /
I I ' /
,-- iS.,,olaCI ,l ,./ / -. -
1
----
1
,-----( 'fi,
;li"J, ICl!"n'd , ' I , r--1 -_--, ;!j
i . -......... \ // // J L _ __j L.....T------l'-. 1
l__ ----/ ( " .
I
'"<'P \ / ____ __) Skretrwca ... tl1
'/ l
Te,.do,-,::;k,_:
'

Pacdt
r<or:sn1Kov <acunJr
Ve:.a '\3b!oin
Slika s.IJ. Nalin na kuji "c knli-.nici povc;:uju \,i '..,(_.'f\enm;t na lntcrnLtU.
R.cc1ut1alne sc organizuju drugaci_je. One !nLtju :-pecijali;nvane racunarc.
zv ._trK' nsmcri>a(i ili rull:ri (cugl. i'I'Lii,rs). L.ic<tllta iii uptickim kab1tJ\ ima.
k:h> u sndnjcn1 d(lu X-13. Sl-..up\'!\i .rvani pakcti
I engl. 1. tipic!:c' vcli.:inc i;:ncdu h-+ i tlku baj!uva. krcc'u .se ml it.vornog
jcdtn1 iii rurcra nc dPdu na pdrcdiSle. Pakct pri
.:1\ :tkc1n u.:c u n1Cil10riju rutcr:t i ?alinl rutcru na purall.Jl
8.2 Koprocesori 565
Cim se ndgovarajuca prenosna linija oslobodi. Ova tehnika se zove komutiranje pa-
keta sa smestanjcm i proslcdivanjem (engl. packet swirching).
Iako mnogi misle da je Internet velika jedinstvena regionalna mreza, on je u
tchnickom smislu skup brojnih mcdusobno povczanih rcgionalnih mreza. Medutim,
ova raz1ika nije bitna za ono o cemu cemu govoriti. Slika 8-13 prikazuje Internet iz
pticje perspektive. onako kako ga vidi kucni korisnik. Korisnikov racunar se sa Web
serverom najct'Sce povezuje preko telefonskog sistema, pnmocu modcrna brzinc
56 kb/s ili ADSL linije. o ccmu smo govorili u poglavlju 2. (Za povczivanje se more
koristiti i kablovska TV. i u tom slucaju leva strana slike 8-13 izgleda nt'Sto drugaCije
i davalac Internet usluga je kablovska kornpanija.) Korisnikov racunar deli podatk.e
koje treba da posalje serveru u pakete i saljc je svom davaocu Internet usluga (engl.
!Ill erne/ Service Prmidcr, lSI'). kompaniji koja kmisnicima obebeduje vczu sa lntcr-
netom. JSP ima visokobrzinski (najcesce opticki) prikljucak na jednu od regionalnih
iii glavnih mre/.a koje sacinjavaju Internet. Korisnicki paketi sc proslcduju u skokv-
vima preko Intemcta dok ne stignu do odg:ovarajuceg Web scrvera.
Vecina kompanija koje ohczbcduju vezu sa Internetom imaju spccija1i.covan racu-
nar ;:van zastitna barijera (engl..firnvu/1), koji tiltrira sav dolazni saobracaj, uk1anjJ-
juL'i iz njega nepozeljne pakcte (npr. one od napadaca koji pokusavaju da upadnu u
sistem). Zastitna harijcra jc povezana s lokalnom mrt'Zom. najcesce preko Ethernet
skretnice koja pakete usmcrava ka zeljenom serveru. Naravno, rea1nost je
od onoga sto smo prikazali, ali osnovna ideja sa :-like 8-13 i dalje stoj i.
Mrt'Lni softver se sastoji od brojnih protokola. od kojih svaki sadrzi skup formata.
pravila za razmenu poruka i informacije o tome sta koji paket znaci. Na primer, kada
knrisnik Zt.:li da prcuzme Web stranu sa servera. korisnikov Web citac pomocu prnt,l-
kola HTTP (HyperText Transfer Protocol- protokol za razmcnu hipertcksta I salje
paket sa zahtcvom GET PAGE (preuzimanje strancl serveru koji zna da takav zahtcv
obradi. Kuriste se hroJni protokoli, samostalno i komhinovano. U vceini slucajeva
uredcni su po slojevima. pri cemu visi slojevi isporucuju pakcte ni7.im slojevima u
cilju obrade, a najnizi sloj obavlja stvarno slanje paketa. Kod primaoca pakcti kroz
slojew putuju ohrnutim rcdom. odozdo nagore.
Posto mreL.ni procesori .. zaraduju !a zivor' taku sto ohraduju protokole. trcbalo )i
nesto vise da saznamo o sarnim pmtokulima pre nego sto prcdemu na proccsore. Vrct-
timo se za trenutak na zahtev GET PAGE. Kako se on salje Weh serveru'
1
Web Citac
najprc uspostavlja veJ.u sa servcrom pomocu protnk.ola TCP (Transmission Contn1l
Protocol- protokol za upravljanje prcnosom). Softwr koji implcrncntira ovaj pro-
tokol vodi racuna o tome da svi paketi budu primljeni u ispravnom stanju i
rcdo,Jedom. Kada se pakct izgubi. TCP softver trazi njegovu ponovno s1anjc svc clch:
ga na kraju ne dobije.
Tu u praksi ;:naCi da Web citac zahtcv GET prctvara u ispravan fornut
HTTP poruk.e i predaje ga TCP so!tveru za s1anje preh:o vcz.e. TCP soltvcr dudajc i;-
prcd poruke 'vojc zaglavljc u knmc se nalaze redni hroj pakcra i druge
Ovo zaglavije sc ( prirodno 1 zuve TCP zaglavljc.
Kada to uradi, TCP ,oftver uzima TCP zaglav ljc i kori.sne podatke (k.uji sadrzc
1.ahtev GET PAGL') i pmslcduje ih drugoj vrsti snft\ era kop imp1cmcntira protokol
i,.
''
.,,
:, :'
k
'
"''

566
Pog!avlje 8: Arhitl'kture paralelnih racunata
IP (Internet Protocol- protokol za Internet). Ovaj softver na pocetak paketa dodaje
IP zaglavlje koje sadrzi adresu izvorista (racunara od koga paket potice). adresu ocl-
redista (racunara kome se paket salje), broj skokova do kraja zivotnog veka paketa
(da bi se sprecilo beskonacno lutanje izgubljenih paketa), kontrolni zbir (za otkri-
vanje gresaka u prenosu) i druga polja.
Pakct (koji sada ima IP zaglavlje, TCP zaglavlje i zahtev GET PAGE) posle toga se
prosleduje nanize sloju veze, gcle muse pre stvarnog slanja na pocetak dodaje zagla-
vlje sloja veze. Sloj veze na kraj paketa dodaje jos jedan kontrolni zbir, zvan CRC
(Cyclic Redundancy Code- ciklicni redundantni kfld), koji se koristi za otkrivanje
grdaka u prenosu. Mozcla mislite cia je immi dva kontrolna zbira (u sloju
veze i u IP sloju), ali se pokazalo da oni poveeavaju pouzdanost. Pri svakom skoku
proverava se CRC zatim sc uklanja ?aglavljc sloja veze i CRC i ponovo sc generisu
u formant koji odgovara odlamoj vezi. Slika 1>-l.f pribmje izgled paketa u Ethernet
mrel:i; takav je i na telefonskuj liniji. osim stu umesto zaglavlja Eternet mrcZ:e ima
,wglavlje telefunske linije". Rad sa zaglavljimaje va/.an i predstavljajcdnu od stvari
koje mogu da obavljaju mrdni procesmi. Ne !reba posebno naglasavati da smo ovom
prilikorn samo z.agrcbali povrsinu racunarskih mreza. Njihov iscrpniji prikaz potrazi-
te kod Tanenbauma (2003 ),
Korisni podaci
Slika 8-14. Pakct na Ethernetmrel.i.
Osnovc mreznih proccsora
Na rnreZ:e se prikljucuju razni uredaji. Krajnji korisnici, naravno, imaju licne racu-
narc (stone i pr<Ono-:ivel. ali sve ce,ct: i racunare za igranjc, licne digitalne pomocnike
i mobilne tdcfonc. U prcduzecima se koriste PC racunari i Medutim,
i bro_1ni ureltaji koji u mrdama sluz.e bo posrednicki sistemi. a to su rutcri, skrctnice.
zastitnc barijcrc. zastupnicki Wch serveri (engl. proxv servers) i racunari w urav-
notciavanjc saobracap. Zanimljivo jc da su upravo oni i najzahtevniji jer kroz njih
proiazi naJvcc'i bruj pakett u sckundi. Zahtevni sui saveri. ali korisnicki racunari nisu.
kdan doLuni pakct. u od mrdc i vrste samog paketa, moze zahtcvati
r:ulicitu ubr.1du pre nego ;to ,;c uputi na ul!lazni vod iii u aplikaciju. Obrada moze da
obuhvati odlucivanjc o meslll slanJa pakcta. o njegovom fragmentiranju iii sasta-
vlj:mju od dcillva, o manipulaciji u okviru kvaliteta usluga (narocito za audio i video
ltlkove). () he;:bcdnosnim poslupcima (npr. sifrovanje iii ddifrovanje). 0 komprimo-
vanju iii dekomprimovanju itd.
Uz brzinc u lokalnirn mrczama koje sc prihlizavaju cifri ocl 40 gigabita/s i paketi-
ma vclicinc I KB, mrdni racunar mozc Joci u priliku da ohradujc skom 5 miliona pa-
keta u sckundi. Za paketc velicinc 6-1. hajLl, broj paketa koje treba ohraditi u sekundi
raste na 'koru ?ifi miiiona. Obavljanjc ru.licitih upcracija za 12-200 ns (zajedno s vi-
;cstrukim kt,piranjem pakt:ta kJje uvek ne moze sc izvesti softverski. Neop-
bodna JC hard verska podrska.
8.2 Kopmccsori 567
Jeclno od hardverskih resenja 1.a brzu obradu paketa jeste namensko integrisano
kolo ASIC (Application-Specific Integrated Circuit). Takav cip je nalik na harclverski
realizovan program koji izvrsava ono za sta je programiran. Brojni clanasnji ruteri
sadrze Cipove ASIC. Oni, medutirn. donose i veliki broj problema. Prvo. za njihovo
projektovanje i proizvodnju trcba mnogo vremcna. Oni sui potpuno netleksibilni, pa
ako je potrebna neka nova funkcionalnost. mora se projektovati i proizvesti nov cip.
Osim toga, ispravljanje gresaka u njima preclstavlja nocnu moru, posto se moze obaviti
jedino projektovanjcm, izradom, isporucivanjcm i instaliranjem novih cipova. Oni m
i sku pi, osim ako je potreba za njima clovoljno velika cia pokrije troskove razvoja.
Drugo resenje je cip FPGA (Field Programmable Gate Anay)- skup logickih kcla
koja se na lieu mesta mogu orgqnizovati u potrebno kolo. Ovi cipovi mnogo brze
na trziste nego cipovi ASIC i rnogu se podesiti na terenu tako sto se izvade iz sistema
i umetnu u spccijalan uredaj za programiranje. S druge strane, oni su slozeni. spori i
skupi. znaci neprivlacni. osim za speciticnc, ogranicenc primene.
Na kraju doiazirno do mrdnih proccsora. programabiinih uredaja koji cloiazne i
odiazne pakctc mogu da obraduju brzinorn kojom sc oni prenose kroz mrdu (tj. u re-
al nom vremenu). Uobicajeno sc postavljaju na clodatnu karticu zajedno s mcmorijom
i logikom za podrsku. Na karticu se ptikljucuju i jeclan iii vise mrdnih kablova i saD-
hracaj s njih sc upucuje u mrezni proccsor. U njemu se iz paketa uklanjaju cloclaci, pa-
keti sc obraduju i blju iii u drugi rnrdni prikljucak (npr. ka ruteru) iii na glavnu
magistralu sistema (npr. na PCI magistralu) ukoliko je krajnji uredaj korisnicki PC
racunar. Tipicna kartica i cip mrd.nog procesora prikazani suna slici X-15.
Kartica mreznog procesora ,,
'
l
;::::ct:t:t--1
' PCI prikljucci
Slika 8-15. Tipicna kartica i Cip mrcznog procesura.
Na kartici sc koriste i SRAM i SDRAM memorijski cipovi (po praviluna raL.licite
nacine). SRAM cipovi su brzi. alii skuplji od SDRAM cipova, pa ih zato ima manje.
SRAM memorija se koristi ;:a cuvanje tabela za rutiranje i drugih kljucnih struktura
podataka. dok SDRAM mcmorija (privremeno) cuva pakete koJi se obraduju. Posto
----
568
Poglavljc S: :\xhitckturc paralclnih racunara
su SRAl\1 i SDRAM cipovi smesteni izvan cipa s mrdnirn procesorom, projektanti
imaju slobodu da odluce koliko koje memorije zele da upotrebe. Iz to1!a sledi dajed-
nostavnije kartice sa sanm jednim mrdnim prikljuckom (npr. za PC racunar iii ser-
ver) mogu irnati malu kolicinu memorije, za razliku od vrlo slozene kartice vclikog
rut era koja je ima mnogo vise.
Cipovi s mrdnim procesoromoptimizovani su za brzu obradu velikog hroja dola-
znih i odlaznih paketa (to .maci, miliona paketa u sekundi najednom mr6nom vodu,
a ruler lako moze imati i 5-6 takvih vodova). Tako velike brzine ohrade llHl\::ll "' po-
stici jedino ako se unutar mrdnog procco.ora ostvari visok stcpcn paralel i1.nu. Zatn
svi mrczni procesori imaju vise PPE sklopova (Protocoi/Programmablc/Pad.ct Pru-
cessing Engines), od kojih svaki ima (mozda izmenjcno) RISC jezgro i malu k,.Ji(inu
interne mcnwrijc za cuvanjc programa i nekoliko promenljivih.
PPE sklop(lvi se mogu organizovati na jed an od dva nacina. Najjcdnostavnije je da
svi PPE sklopovi budu isti. ICtda paket (ulazni- s rnrdnog kabla iii odlazni- s rnagi-
strale). stigne u mrezni procesor, on se pmslcduje nezaptblenom PPE sklopu na obra-
du. Ako su sv i PPE sklupuvi zauzcti, pakt:t se stavlja u red ceLmja u lnkalrwj SDRAM
memoriji sw ci<Jk se PPE sklDp nc oslobodi. lJ ovakvoj organi;,aciji ne postojc hnri-
zonlalne veze innedu PI'E sJ..:lopuva. kau one na slici S-1 5, jer ,k]opuvi ncmaju potre-
be da medusobno komunicir:tju.
Drugi nacin org,rni;,manja PPE sklupovajestc: smestanJ-: uliniju p:rralelne obrade.
U prikazanoj semi svaki I'Pf: sklop jc 7aduzcn zajednu LtlUDhr,:de. posle kujc sledc-
ccm PPE sklupu upuc't:jc puLui vac na paket kuji jc upravo obradiu. Ovako organi-
;mana lintj'r PPE ,klopma n:rtaj nacin radi vrlo sltc!hl lini.Jt ohr:rde unutar proccsora,
o ccmu Slllo guvorili u p"glavlju 2. U ubc pomenute orgratri;act]e. PPl: sJ..:lopuvi se
polpuno mugu pr<>grallnrati.
U naprcdnijim PPE ,,klopmi rade' vise pmgram,.;kill niti, zn,tl'i da
rad.: s v i\c o-J..:up<'va r.:;ist,tra i imaju hardverski rc>gistar kuji pubzuje koji se skup
trcnutno uputrcbljav:1. Ova os"bina :'c koriqi la istuvremcrhl i1.1T\av 'mjc> vise prugra-
ma; [l!W!ram (;.apra\'ll, pr'gr:mbka nit) knji CC SC Sicl!eci j;yr\avati hir:t SC tako Slll SC
pru!n.Cili pronrcn!Jiu .. tckuc'i c-kup rcgi;;ara". Kada Pl-'1-: c-kll'P nst;,ne jer pri.stupa
menmriji (.:'to tra.JL' \i;c cik!u-;ai. flilj,'c>':cc sc preJ:v,i na sledecu pro-
nit 11H"'ZL i.1\T-::i1i. :\a naCin PPE n:o/l da budc iskoriSCcn u
vi,"kum stcpenu ,\rk i k;tcla pri-s\q;t SDRA:\1 mnn<Jriji ilr nlnvlja Jrugc spore
"a ')p1)lj1Ji n;
Osim FIT skiuph<t. ,vi mrc/ni prOL'eS<Jri saJrze i upc:tv!pCki pn,ce,or- ubicno
standardni R ISC p;uces, ,,. n'rmenc. koj i "ba\ !j :r c, \ c: po,.;]uv e nc'Vl'!:tne za ohradu
pakcta { ltpr. Llbt:Li Ll rutiLtnje). progran1 :-.<..: pntrchnin1
ph.Ltcinla u na saJnoJn Cipu. n1nng1 n1rc>n( procc . ..;ori saclrLe
i } ..:cL:n ili ;,a 11pr. podataka i
\L,:nc v a/.nc ()\' i su u q vari 111al!. \S lC C ipt )\ i. iLn i ;_a po jedan
puo..;atl. k.l!} \to j'.? odrcdiSne adrcse u J:a nH;:anjc. Sve kon1-
pioc> ..>'l(Ji'a .... LJn1uniciraju prcK;,) jcdnc i:i \i\c paralclnih
hr1inc g:g:thila u kojc nala;.c na :,anl\_)rn 2ipu.
8.2 Koprocesori 569
Obrada paketa
Kada paket stignc. on prolazi kroz niz faza obrade, bez obzira na to da li mrezni
procesor ima paralelnu obraclu. Kod nekih mreznih procesora faze su podeljene u
operacije koje se izvrsavaju nad paketima sto dolaze s mrdnog prikljucka iii sa si-
stemske m'tgistralc i koje se zovu dolazna obrada (engl. ingress processing), i na
operacije nad odlaznim paketima, zvane odlazna obrada (engl. egress processing).
Svaki paket prvo prolazi kroz dolaznu, pa kroz odlaznu obradu. Granica izmedu ove
dve vrste obrada nije cvrstajer pojedine operacije mogu pripastijednoj iii drugoj vrstt
obrade (npr. prikupljanje statistike o saobracaju).
U nastavku c'emo razmotriti moguci redosled razlicitih faza obrade, ali imajte na
umu da sve faze nisu potrebne' za sve pakete i da se opcracije mugu obavljati 1
drugacijim redosledom.
I. Provcravanjc kontrolnog zbira. Ako paket Jnlazi sa Ethernet mreze, CRC
zbir se ponovo izracunava da bi se uporedio sa CRC zbirom iz paketa i tako
se utvrdi lo cla je pre nos prosao bez grcske. Ako je CRC zbir Ethernet pakcta
ispravan iii ne postoji, ponovo se izracunava kuntrolni zbir TP paketa i poredi
sa odgovarajucim zbirom u paketu kako bi se utvrdilo da IP paket nije mozda
ostecennekim pogresnim posiljaoca nakon sto je CRC zhir
kod njega iJ:racunat. Ako su svi kontrolni zbirovi ispravni. paket se prihvata
za dalju ohradu; u suprotnom on se odbacuje.
' Proveravanje polja. Analizira se odgovaraJUCc zaglavlje i na osnovu njega
sc iL paketa uzimaju J..:ljucna polja. Ll Ethernet skrctnici i-;pituje se samo
zaglavljc Ethernet pak<:'la, dok se u IP rutcru ispituje IP taglavlje. Kljucna
polja se cuvaju u registrima (organizacija paralelnih PPE sklopova) iii u
SRAI\1 mcrnoriji (organizacija s paralelnom obradom).
3. Klasifikovanjc paketa. Paket se klasi1ikujc prema pravilima koja se mogu
programirati. U najjednostavnijem slucaju paketi se razvrstavaju na pakcte
s podacima ina upravljackc pakcte, ali obicno postoji i 1inija klasitikacija.
4. Biranjc hrzc iii spore putanjc. Vccina mreznih procesora ima specijalnu
brzu putanju koja je optimimvana za raJ sa -;tarim. do brim i jednostavnim pa-
ketima, dok se sa svim drugim paketima radi Jrugacije. obicno pomocu upra-
vljackog proccsora. Prcma tome, mora sc izabrati iii brza iii spora putanja.
:'i. Utvrdivanjc odrcdisnc mrezc. lP paketi sadrze 32-bitnu odrcc!isnu aclresu.
Nijc moguce (iii nije pozeljnu) imati tabelu sa 2
32
odrednicc u kojoj bismo
trazili odn.:distc IP paketa, tako cia levi deu IP adrese predstavlja
mreini broj, a ostatak identitikuje racunar u mreii. Mrt:Zni brojcvi mogu da
budu bilo koje duLine. tako da njihovo odredivanje nije trivijalan zadatak. a
oteiava ga i l'injcnica da pri puredcnju mo7e nastati visestruko poklapanje,
pri cemu St' racuna samu ono s najdu/.im preklopljenim delom. Cesto sc za
ovaj korak koristi namenski ASIC Cip.

.. ,
.
'
_j


.
'
.
'
I
.
l










t,"'<,
;I

;,;
;f,
;
,.,!
j
lt

570
Poglavlje 8: Arhitekture paralelnih racunara
6. Pronalazenje putanje. Kada se sazna broj odredisne n1reZ.e, tada se u tabcli
putanja u SRAM mernoriji trazi putanja do nje. I ovde se za taj posao moze
upotrebiti namenski ASIC cip.
7. Deljcnje i ponovno sklapanjc paketa. Programima je lakse da TCP sloju
salju podatke u velikim ,komadima" jer tako stede sistemske pozi ve. ali pro-
tokoli TCP, IP i protokol za Ethernet n1re:le imaju ogranicenje u pogledu ve-
licine paketa koje mogu da obrade. Zbog toga korisne podatke. odnosno
pakete. mozda treba izdeliti prilikom slanja, a prilikom prirnanja ih ponovo
skiopiti. Ove poslove moze da obavi mrdni procesor.
8. Racunanjc. Ponekaci se s korisnim podacirna opsdna izracuna-
vanja (na primer, kompromovanje i dekmnprimovanje podataka. njihovo
sifrovanje iii ddifrovanJe). Te poslove moze cia obavi mrezni procesor.
9. Rad sa zaglavljima. Zagiavija ponekad treha ciociati, ponekad ih ukloniti iii
treha izmeniti neko njihovo polje. Na primer, jedno polje IP zaglavija sadr:i:i
broj skokova koji preostaje paketu pre nego sto hude odbacen. Svaki put
kada se paket primi i ponovo posaijc, vrednost u ovmn poiju mora se smanji-
ti, a to moze cia uratii mreZ.ni procesor.
10. Rad s rcdovima cckanja. Dolazni i odlazni paketi cesto se moraju stavljati
u redove cekanja na ohradu. U multimedijskim aplikacijama potrehno je da
sc paketi pravilno vrcrnenski raspureduju kako hi se izhegio .,scckanje".
Zastitna harijera i li ruler mol:da treba da raspodelc dola-cni saobracaj na vise
odlaznih vodova u skladu sa odredenirn pravilima. Sve su to poslovi koje
moz.e da obavi mrezni procesor.
il. Gcnerisanje kontrulnog zbira. Odlami paketi moraju sadrLati kontrulni
zhir. IP kontrolni zbir moze da generise mrdni procesor, ali se CRC zbir u
Ethernet mrezi obicno generise hardverski.
12. Obracunavanje. U nekim slucajcvirna neophodno je tacno registrovanje
saohracaja paketa. narocito ako mrda proslecluje saobracaj drugirn mrc?:arna
pod trLisnim uslovima. Mre/:ni procesor moze i u tom slucaju da obavi obra-
cunavanje.
13. Prikupljanje statistickih podataka. Na kraju, mnoge organizacije vole da
skupljaju statisticke podatke o svom saobracaju. a rnre[ni procesorje kao po-
rucen za taj posao.
Poboljsanje pcrformansi
Mrezni procesori upravo postoje zhog performansi. Sta se mo.'.e uciniti da bi se one
pre nego stu to pokusarno. trebalo hi da cleJinisemo cilj. Performanse.
premajcdnom nacinu merenja. mozemo izraziri kao broj pmsledenih paketa u sckundi.
Prema drugom, to hi bio broj prosledenih bajtova u sekundi. Ovo 'ill dva razlicita naci-
na merenja. a sema koja radi dobro s malim paketima mozda nc radi dobro s vclikim.
Konkretno. ako kod rnalih paketa ubrtamo pronalazenje odredisne adrese. to mo::e
mnogo da poboljsa perfnrmanse. ali kod velikih pakcta tu resenje nije uputrehlji\o.
8.2 Koprocesori 571
Najocigledniji nacin poboljsanja perfonnansi mrdnog procesora jeste uhrzanje
njegovog radnog takta. Performanse, naravno, nece rasti proporcionalno brzini rad-
nog taktajer na njih utice i vrcme memorijskog ciklusa, kao i cirugi cinioci. Osim to-
ga, brzi radni takt znaci i vise oslobodene toplote koja semora odvesti.
Uvodenje vise PPE sklopova i vise paralelizma cesto je dobitna kornhinacija, na-
rocito ako su PPE sklopovi povezani paralclno. Linija obrade s vise faza takode moze
da pomogne, ali samo ako se obrada paketa moze podeliti na sitnije korake.
Drugi pristup je da se uveciu specijalizovani procesori iii ASIC cipovi za specitic-
ne, vremenski zahtevne operacije koje se cesto ponavljaju i koje se mogu obaviti brze
hardverski nego softverski. Pretrazivanja, izracunavanja kontrolnih zbirova i sifm-
vanje/ddifrovanje tipicni su kapdidati za ove cipove.
Uvodenjem dodatnih internih magistraia i prosirivanjem postojec'ih. moze se po-
vecati protok paketa na cipu, pa i ceo sistern ;:bog toga rnoze raditi brze. Na kraju, za-
mena SDRAM memorije SR/\M memorijom po pravilu daje bolje performanse, ali
to, razumc se. kosta.
0 mre?:nim procesoraima ima jos stosta da se kal:e. Koga ova tema ;:anima. neka
dodatne informacije potrazi kod Comera (2005), Cruwleyja et al. (2002). Lekka:;a
(2003) i kod Papaefstathioua et al. (2004).
8.2.2 Multimedijski procesori
Drugo podrucje primcne koprocesora jeste u multimcdiji: za obradu slika u viso-
koj rezoluciji i audio i video Lapisa. Obicni procesori nisu posebno dohri za opsezna
izracunavanja koja su polrchna pri obradi velike koiicinc podataka za ove apiikacije.
Zbog l<lga danas neki PC raC:unari imaju posebne multimedijske koprocesore koji
mog:u da obave vec'i cleo tog: pnsla, dok ce ih u buducnusti imati vecina racunara.
i\Iultimedijski procesor Ncxpcria
Ovo podrucje koje se sve brze razvija proucicemo na primcru e porociice
pruce:-.ora Nexperia koji imaju razlicit radni takt. Nexpcria je heterogcni cip s
procesora kao na slici On ima vise jezgara. ukljucujuci i upravljacki YLIW pro-
ccsor TriMedia. ali i brojna je1.gra -ca obradu slike. zvuka. video zapi:-.a i mrel:nih
podataka. On se mol:e upotrebiti kao samostaian glavni procesor u CD, DVD iii MP3
plejerima iii rikorclerima. u tclevizorima. u fotoopcratima iii video kamerama iii kao
u PC racunarima za ohradu slika i multimcdijskih podataka. U oba slucaja
on koristi sopstvcni mali operativni sistem koji radi u realnom vremcnu.
Nexperia obavija tri funkcije: prihvata ulazne poclatkc i strukturira ih u mcmoriji,
obraLiujc strukture podataka i na kraju ih salje u ohlicima pogndnim za razlicite
prih:lju(enc i-clazne urccL0t:. Na primer. kada se PC racunar koristi kao DVD plejer.
Ncxperia se mo/.e pmgramirati da cita sifrovan. komprimovan tok podataka s DVD dis-
ka. cia ga de.sifruje i dekomprimujc ida ga Lalim(u odgovarajucem obliku) po;aljc na
ekran na kome treha da :,e prikaze. Kada -;e program DVD plcjera ucita u proce,ur Nex-
peria. on to sve moze da uradi u pD;:adini. hez angazuvanja glavnog: pron:sora raCunara.
572
Poglavljc 8: Arhitekture paralelnih racunara
Svi ulazni podaci sc pre obrade smdtaju u mcmoriju; nema direktne veze izmedu
ulaznih i izlaznih un:c1aja. Prcuzimanje ulaznih podataka obuhvata dekodiranje njiho-
vih brojnih video rormata (l'v!PEG-1, MPEG-2, MPEG-4 dr.). audio formata (AAC.
Dolby. MP3 dr.) i pretvaranje u strukture podataka pogoc!ne za smestanje i obradu.
Ulazni poc!aci mogu doci s PC! magistrale. sa Ethernet mrc:7.e iii s namcnskih ulaznih
vodova (npr. od mikrofona iii mrcznog sistema. direktno prikljuccnog na cip). Cip
Nexpcria ima 456 nozica, oc! kojih su neke predvidene za direktno primanje iii slanje
rnultirnedijskih (i drugih) podataka.
Obradom podataka upravlja pmcesor TriMedia. ciji se softver moze program irati
za razlicite potrcbc. Tipicni zadaci ovog procesora su .,rasplitanjc'' (engl. deinterla-
cing) video slike radi postizanja ostrine. korigovanje osvetljaja. kontrasta i boje slika.
menjanje velicine slike. pretvaranje slike jednog video format a u drugi i smanjenje
suma. Procesor je u ovom slucaju glavni izvmtac radova koji za odredene poslove an-
gaz.uje brojnc podizvodace -- specijalizovana jczgra na cipu.
lzlazna obuhvata kodiranje struktura podataka u oblik koji odgovara izlaz-
nom uredaju (video. audio. slike, 20-gratika), objcdinjavanjc podataka iz vise izvora
i uprav lpnjc izlaznim urcdajima. lzlazni pudaci sc mogu slati na PC! magistralu. na
Ethernet mrczu i li na namcnske vodovc ( npr. ka zvucni ku iIi pojacalu).
cipa Nexperia PNX I 500 prikazanaje na slici 8-16. Njeguve drugc ver-
;:ijc malo su drugacije. pa kada u ovum udeljku pomcncmo .. Nexperia'. mislimo na
implementaciju ovog proccsora ll obliku cipa PNX 1500. Cip obuhvata cctiri glavna
pmlrucja funkcionalnosti: upravljanje. ulaz, obradu i izlaz. Proccsor na cipuje 32-bit-
ni V Ll W proccsor Tril'vlcdia s radnim taktom od 300 lVI Hz. o kome smo govorili u
odcljku 8.1.1. Njcgov program. pu pravilu napisan na jcziku C iii C++. odredujc
funkcionalnust cipa Nexperia.
Nexperia Ll<lpstc ncma glavnu mcmorije na cipu. izuzev dva kesa unutar procesora
TriMedia. Zbog toga postoji intert"ejs ka spoljnoj DDR SDRAM memoriji. velicine
8-256 1\IB. stojc sasvim duvuljno La tipicne multimedijskc aplikacijc. U;: takt od 200
1\lH;. s memorijom st.' mozc komunicirati brzinomod 1.6 GB/s.
Na cipu se nalazi i interfejs ka PCI magistrali. namcnjen ;:a usmobitni, sesnaesto-
bitni i tridcsctdvobitni prcnos podataka uz radni takt od 33 i\11-lz.. Kada se cip koristi
kao glavni proccsor u uredaju siroke potrosnje (npr. u DVD pleJeruJ. interkjs ka PCI
magistrali mo/.c da radii kao arbitar magistralc. Ovaj intcrfejs se rnol:e. na primer. ko-
ristiti 1.a komuniciranje s DVD uredajcm.
Dircktnu \'CZU sa Ethernet mrdom obezbeduje namensko jczgro koje mofe da radi
sa Ethcrnt:t vezama brzine 10 i !00 ivlb/s. Na taJ nacin. kamkorder Pprcmljen cipom
Ncxperia prcko Ethernet mrei'e mol:c da posaijc tok digitalnih podataka uredaju Let
prnuimanjc iii nJihovo prikazivanje.
Sledec"e jc;.gro jc Laduzeno La pokretanje i ponovno puk.rl'tanje sistema. za gcne-
risanJC radnog takta i nekoliko drugih manjc vaznih opcracija. Ako sc na odn:dcnoj
nozici Cipa Nexperia pojavi signal, sistem ce se punovo polrcnuti. Jezgro se mo/.c
programirati i tako da radi kao programirani prckidac. Aku proce;.,or propusti da mu
u odreckrwm vremcnskom intervalu po.(alje sign<d. jczgro L'e pretpostaviti da ;.,c :-.i-
stem zaglavio i ponuvo cc ga pukrcnuti. U uredajima ponovno pokre-
tanje sistema moze se obaviti iz tles memurijc.
8.2 Koproccsori
573
--------
I Upravljanje "'"'
/[
__ I /__.- Ubz

Ka SDRAM memoriji
Kristal,
uCestalosti
27 MHz
Obrada

' = ' '
' ' '
lnterte1s ka Video ulaz
CJ
' I
'
:I
Ulaz opstih podataka

, ... :1


@L
3
&j Lstolo, ulaz-lzlaz,
!w -
DVDdekoder --------------------- 'I
__ "' : - ' 11: 32
L___o;:>ooec ";'e'0'f _ g,..oo'""
--J [ : lzlaz
-- -. -r- 1 '
[U?ffiviJallJ8 , _ ; !
""" I .... : : I ...
JTAG [7 -_-
';::2 ---------
L .. --
Slika X-J(,, I ktrogt'ni viScpruce-.,orski l'ip Nc'\pLTia.
8 audio
kanala
lzlaz
8 audio
kanala
Radom jezgra uprailja spulp\ni kristalni oscilator uce:-.ta]o-;ti ?.7 1\1!1;:: nva ucc;.,ta-
lost se interno umnol:a\ a 6-t put ada hi 'iC dobiu signal ucestalosti 1.72'1> Gl-lz koji :,e
dalje kori-;ti svuda 11a C:ipu. Na ovPm mc:;tu .>c uprav lp i potro:::njom energije. Proc:csPr
po pravilu radi punom brzinum. a u\tale komponentc brzin<lm koja im je [l<'trchna da
bi obavile posau. i\lcdutirn. i proccsor mu/.c da snizi W<Jj radni ukt d:1 hi ustedco encr-
giju. P(lstoji i relim .. spav:mja. bda prucesnr nc:ma pravug P'''la pa iskljucujL'
vec'inu svujih funkcija bi produziu batt:rije na prcnnsivim urda.Jima.
Ova jedinica ima i I t1 .. semat"ora"" -ca :-inhroni1.m anjc rad:1 1m:daja. Kada jez-
gro pokusa da upi;e vrednost r:ulicitu od u scmafor cija Jl' vrcdno-;t nuLl, nc:cc:
hiti problema: u ,.,jm drugim -;lucajcvima. u semaf,Jru se pret!wdna vred-
nost. S druge ,tram:. upi,i vanjc' nuk U\ ck uspeva. Pustrl samo jcdnn JC!gro u jedntHll
trenutku mn/.e da i..t)ri,ri sistcmsku ove operaLije s11 clcmcntarnc (atom-
skc) i prcdstavljaju dul'ru llc.ilO\'U za postuanJC llh.'du:-ohll<)g i,;kljuCivanja. Da bi do-
bilo pristup re>ursu. jc;gro da upise vrcdnost ra:licitu nd mde u ndreckn
semafor. ;.\k<> upisivany: uspc, jo.gro c\llhij:t i.skljuciv pristup resursu sve dok ga nc
u:;Jnhodi upi,;uj::-'i :wlu u Kadct ne dohijc pri-.tup rc:-,ur:;u. jc1.gro je da
upi,tvanjc ncnuitc vrcdnmti 11 :;emaf<'r pcriodicno ponavlj,t sv: dok u tome ne mpe.
tako da ovdc nis<t u pit:rnju kbsicni sclll:I!"ori u kojima sinl gmurili u pog!aviJll h.
Pogiedajmu -;ad:t ul:uni dco (ipa. Ju.gn' za video ula;:;e prcuLima Jolcvni tuk di-
gitalnih podatala. \irlne 10 biiO\'a. ga na bilova punto(u al-
goritma i P'da<kL' sme'.ta u spoljasnju SDRA:vl memurijtt Digitalfll ulazni poLLI<.:i u
I

.,
i
'

574
Pnglavljc !!: Arhitckture paralclnih racunara
vec'ini slucajeva poticu od spoljasneg analogno-digitainog pretvaraca koji koristi ana-
Iogni, vazdusni iii kablovski TV signal.
Jezgro za opste ulazne podatke s taktorn od I 00 MHz rnoze da prihvati nestrukturi-
rane podatke sirine 32 bita koji poticu iz proizvoijnog izvora ida ih smesti u SDRAM
memoriju. Jezgro mo/.e da preuzme i strukturirane podatke s markerirna koji razgra-
nicavaju uzastopne zapise. Ruter koji se nalazi ispred dva digitaina video uiaza sluzi
za njihovo demultipleksiranje, a rnozda i za odredenu usputnu transformaciju video
zapisa. Demultipleksiranje je neophodno jer se isle nozice cipa koriste za ulaz video
zapisa i opstih podataka.
Jezgro za audio ulaz koje radi taktom do 96kHz moze da uzorkuje do osam kanala
stereo mu.>:ike iii glasa uz osmobitnu, sesnacstobitnu iii tridesetdvobitnu preciznost i
da poclatke smesti u SDRAM mernoriju. Jezgro moze i da dekomprimujc formate,
mesa kan<Lle, menja brzinu uzurkovanja, i primcnjuje liitre - sve pre nego sto audio
pmiatke smesti u memoriju.
Jezgru za digitalni SP ulaz prihvata cligitalne audio signale prema standaruu Sony-
-Philips (!EC I 937 ). Na taj nacin se Jigitalni auuio podaci mogu prcnositi iz jeunog
uredaja u drugi be1. gubitka kvaliteta.
Kada se audio, video iii drugi podaci smeste u memoriju, trebaio bi Ja se obrade.
0 CC!llll brine slcdcca grupa komponenata na cipu. Filmovi koji se prodaju iii iznaj-
mijuju na DVD cliskovima sifrovani su (skrembiovani) da hi se spreeiio kopiranje.
DVD dckoder uklanja sifrovanjc i restaurira originalan lilm, komprimovan aigorit-
mom MPEG-2. Ddifrovanje je operacija koja se obavlja izmedu dva dcla mcmorije,
pri cemu se podaci uzimaju iz jcdnog bafera, a posle obrade salju Ll drugi.
Dckodcr du:l.inc ide korak clalje i uklanja rnoguL'nost kodiranja promcnljivc duzine
karaktcristicnu za MPEG-2 (iii MPEG-1) komprimovanjc. gencrisuci poludckompri-
movane podatkc 7a jezgro MPEG ohradc koju sortvcrski obavlja procesor TriMedia.
Ovo je uradeno 1ato sto se pri uklanjanju mogucnosti kodiranja promenijive duzinc
(1-luffmanovog i kodiranja tokom izvrbvanja) nc koriste ctikasno mogucnn:,ti procc-
sora TriMedia. pa JC odluceno da se potrosi nekoliko kvauratnih milimctara sili-
cijumskog cipa i kodiranje implementira hardverski. Svc operacije koje se obavlpju
izmedu dva dcla memorije, gcncrisu obicnu mapu pikscla.
Mapa piksela moze da buclc u bilo korn od tri opsta formata, odnosno ujcdnoj od tri
iii cetiri vcrzije svakog od njih koje postoje za razlicite velicinc i parametrc slika. Prvi
je format sa indeksiranim bojama (engl. indexed color). u kome svaka vrcdnost pred-
stavlja indeks u CLlJT taheli (Color Look Up Table) sa 24-bitnim vrcdnostima boja i
maskama alfa kanala, kojc se koriste za odreclivanje providnosti pri prekla-
panju vise slojeva. Drugi fmmat, RGB, oponasa nacin na koji radi monitor ral'unara:
postoje zaschnc vrednw;ti ;ra intcnzitct crvcnc. i plave buje s\ akog pikscla.
Treci format jc YUV. napravljen prcma nacinu kodiranja TV :-.ignala. Umesto cia se
zaschno kodiraju vrednosti crvcnc, zelene i plave boje. kamcra ih prctvara u jeclan
kana! za luminansu (osvetljaj) i dva kanala za hrominansu (obojenost). Ovaj sistem
obczbeduje vec'i propusni opseg za luminansu nego za hrominansu, sto daje vecu
ntpornost na ;um tukom preno:-.a. Za apiikaciju kop obavlja TV ulaz i izlaz. format
Y UV pravo je resenje. Pnsto se pri smestanju razlicitih fonnata ogranicava hroj njiho-
vih opcip, svako jezgro rnoze da cita izlazne podatke iz svakog drugog jezgra.
8.2 Koprocesori
575
Jeclinica za podesavanje velicine video zapisa prihvata Iistu odgovarajucih zaclata-
ka i zatim ih izvrsava (maksimalnom brzinom do 120 miliona piksela/s). LJ ove zadat-
ke spaua:
I. ,Rasplitanje".
2. Promena horizontaine i vertikalne climenzije slike.
3. Promena linearne i neiinearne srannere slikc.
4. Pretvaranje iz jcclnog formata u drugi.
5. Prikupljanje podataka za histogram Iuminansi.
6. Ub1azavanjc trepcrenja slike.
Difuzno emitovani TV su prepleteni (engl. intcrluced). sto znaci da se za
svaku sliku na ekranu, sastavijcnu ou 525 horizontalnih Iinija (625 u sistemima PAL
i SECAM), prvo prenosc sve parne, a zatim sve neparne Iinije . .,Rasplitanjem'' se pu-
stize bolje progresivno skeniranjc (engl. fJrogrcssive scan) slike. kocl koga se svc
njene linije ohraduju i prenose pravirn redosledom i osvdavaju brzinom dvustruko
vecom od broja prepietenih siika u sekundi (29.97 siika/s za NTSC i 25 slika/s za PAL
i SECAM). Horizontalno i vcrtikalno poddavanje omugucavaju da se siike povecaju
iii smanje. mo/.da uz opsecanje. Stanclardna teievizija ima odnos (duzina/sirina) slikc
4:3, ali je on kod uredaja sa sirokim ekranom 16:9. sto mnogo pribliznije odgovara
odnosu 3:2 s fiimova od 35 mm. Jedinica za veiicine pretvara ounosc jc-
dan u drugi kmistcci linearan iii nclinearan aigoritam. Ona takmlc mo.l.e da pretvara
formate indcksiranih boja. RGB i YLJV jedan u drugi ida pravi histogram luminansi
pomocu koga se moze poboljsati kvalitet slike na izlazu. Na kraju. mogu sc obaviti i
neke tran,formacijc da hi sc smanjilo trcperenje slikc.
Deo upravljanje gratikom iscrtava dvDdimenzionalne slike na osnovu opisa
objekata. On mo/e ida ispunjava zatvorcna podrucja sadrbjem ida obavlja tJ.v. gra-
lickc hitblt (BitBlnckTransfcr) opcraci.JC. koje se svodc na Iogtcko kombinovanjc
(AND. OR. XOR i dr.1 che pravougaone mape piksela.
Nc postojc spccijali7ovana jczgra ;ra obradu audio pndataka. Tabu obradu kuja
nijc nba1 IJena sortverski. na ulazu obavlja procesor Tri[VIedia. Audio t.api,i sadr.'e
sraz.merno malo pmlataka. pa njihova softvcrska obralb ne predstavlja pru-
blem. (}.;im toga. za nmuge aplikacijc obrada zvuka uopstc nijc potrebna (osim mol-
da. J:a pret1 aranje jednog format a u drugi).
Jczgro ;a ispravljanjc grcsaka pomaze projckLtnlima i programerima da pronadu
i isprav'" u hardveru i :;oftveru. Onu obczbcduje vezu do alatki kuje pudrbvaju
IEEE standard 1149. I. poznatiji pud imcnom JT:\G (.luint Test Action Croup).
1;lazna grupa prcuzi111a ohratknc podatl\c iz memorije i upucuje ih i;laz. Jogru
1.a kt!mpu;itne video zapisc preuzimajednu iii vise :-.truktura pmlataka kujc prcdsta-
vljaJU piksele. normalizujc ih. 1atim mesa na Ladati nacin 1 saljc. Pmlaci u indd>i-
ranom formalu u hodu se pretvaraju 11 stvarr.c vrcdnosti pikscla. a istuvremeno se. ah.o
je pntrcbno. ohav lja i prctvaranje nekompatibilnih formata. Ovo je;gro. ukoiikn je
potrchnu. mo/.c da konguje i owetljaj i boJU. Ono jc sposohno i za ciekat
.. hroma ki" I t:ngJ. c!zmll!il keY). kod koga Se osoba koja Sl(lji isprcd cistu pJavc poZJ-
Jine i/.()lujc sa sltke i postavlja ispred nckt: pozadinc iL drugog iz\ ora.
.,, ....,.,,.,....

;
576
Poglavljc 8: Arhitckturc paralclnih racunara
Slicno tome. ovde se mogu generisati i crtani filmovi u kojima se lik u prednjem planu
krece ispred nepokretne iii pomicne pozadine. Naravno. krajnji rezultat se pretvara u
potreban format video zapisa ili TV signala (npr. NTSC, PAL iii SEC AM). sto uklju-
cuJe i dodavanje signala za vertikalnu i horizontalnu sinhrunizaciju slike.
Posto tone kosta nista. ocekuje se dace sistemi sa cipom Nexperia rnoci automat-
ski da racie sa sva tri telcvizijska formata, tako da se u neizmenjenum obliku mogu
prodavati sirom sveta. Slicno tome, dodavanje opcije HDTV (High Definition Tele-
Vision- tclevizija visokc definicije) znaci samo dodavanje softvera za pretvaranje
memorijskih struktura podataka.
Jczgro za izlaz opstih podataka salje 8, 16 ili 32 bita po cikJusu. uz takt od l 00 MH...:,
ostvarujuci maksimalan propusni opseg od 3,2 Gb/s. Kada povdemo izlaz opstih poda-
taka jednog cipa Nexperia sa ulazom opstih podataka drugog takvug Cipa. rnogu se
ostvariti brzine prenosa vece nego u gigabitnoj Ethernet rnrdi ( !Gb/s). Ovaj interfejs
omogucava prucesuru da softverski generise namenski formatirane izhu.nc podatke.
Izlazni ruler multiplcksira podatke sa izlaza i1. elva izvora i dalje ih obraduje. do-
da.Juci podatke J:a osvdavanje ravnih (TFT) ekrana reznlucije do x 76X piksela
i osvc?.avanja od 60Hz ili za TV ekrane koji rade uz preplitanje ili progresivno
skeniranje. Multipleb.iranje jc neophodno jcr kompot:itni signal i opsti pmlaci do laze
sa isti h no7ica ci pa.
Jezgm Dt izlaz audio podataka mo.h: da napravi stereo kana Ia sa 32-bitnom pre-
cil.noscu uz brzinu uzmkovanja do lJ6 kHz. Ovaj i;laz se pu pravilu vezujc ;.a spoljasnji
digitalno-analogni pretvarac. Izlaz digitalnog SP signala moze se spojiti sa ulazom cii-
gitalnog SP signala na uredaju koJi radi po standardu Sony- Philips za ciigitalni zvuk.
Poslcdnje jezgro slu?.i za opste uLv.IHl-izla;ne operacije. Za njega je predvideno
cak 16 nozica na koje 'e mogu prikljuciti tasteri. prckidaci ili svdlece (LED) diode;
tako se nJihovo stanje mozc sortverski pratiti. Nuzice se mogu cak iskoristiti i za
suftverski upravljanih mrdnih protokola srednje (20 Mb/s). Ovde
sui razltciti tajrncri. brojaci i komponcntc za obradu
Sve u svcmu. cip Nexperia ima ogromnu racunarsku snctgu pogodnu Dl audio-vi-
zuelnc aplikacije i. slicno mrc:i:nim procesorima. rasterecuje proccsor od mnogih
puslova. Njegova racunarska ,nagaje cak veca ncgo se u prvi mah mo/.c naslutiti
jcr svajezgra mogu da radc paraklno. kako medusobno. tako is procesorom. Mozda
i.tnenaduje to stu je on jeftiniji od 20 clolara kada sc nabavljaju vct.'e kol1cine. Sada
vam JC verovatno jasnije sta mogu koprocesori, narocito oni napravljeni na osnuvu
hderogenih viscproc'esorskih cipova. Obavestcnja 0 analognom cipu nalllCilJenom
vise telefoniji ncgo multimedi.Ji potrazite kod Nickollsa ct al. (2003).
8.2 . .3 Kriptoprocesori
Trece ptldrucje u komc Sll koprocesori ,tekli populanwstjestc babcdnusl. a naruci-
to be.chcdrH'Sl u mrczi. Kada se izmcdu klijcnta i senera usposlavi veLa, u mnogim
slucajcvim<l uni jedan drugom muraju da potvrdc ,Vt'j identitct. Zatim
sifrovanu vcL.u kako bi podatke kuje razmenjuju ;,a.;titili od uljCia kuji jc mogu pri-
sluski vali.
8.3 Sistcmi s vise proccsora koji dele mcmoriju
577
Problem s bezbcdnoscu je to sto se za nju mora koristiti sifrovanjc, a to je u racu-
narskom smislu veorna zahtevan posao. Postoje dve sifrovanja: sifrovanje si-
metricnim kljuccm i sifrovanjc javnim kljuccm. Prva verzija se zasniva na vrlo
detaljnom mesanju bitova- elektronskorn ekvivalcntu baeanja poruke ll kuhinjski
mikser. Druga se zasniva na mnozenju i stepenovanju velikih (npr. 1024-bitnih) bro-
jeva, sto trajc veoma dugo.
Za obavljanje izracunavanja neophodnih za bezbcdno sifrovanje poclataka pri njl-
hovom prcnosenju i smdtanju, kao i za njihovo naknadno desifrovanje, razne kom-
panije su napravile kriptoprocesore. ponckad u obliku kartica koje se prikljucuju na
PC! rnagistralu. Kriptoprocesori sadrze specijalan hardver zahvaljujuci kome mogu
da .sifruju mnogo brze od obicni,h procesora. Nazalust, za detaljno objasnjavanje raca
kriptoprocesora neophodno je najpre prilicno opsirno objasniti principe kriptogra!!jc,
sto prevazilazi okvire ove knjige. Vise informacija o kriptoprocesorima naci ccte knd
Dancshheha i Hasana (2004 ). i kod Lutza i Hasan a (2004 ).
8.3 SISTEMI S VISE PROCESORA KO.JI DELE MEMORI.JU
Dosad Sill() govorili 0 paralclinnu kuji sc 11\lJZe ustvariti na sa!llOll\ cipu ill pojcdi-
nacnim sistemima kroz dodavanjc koproeesora. Slcdece trcba da r<vmotrimo komhi-
novanje vise procesora polpunih nmgucnnsti u vece sisteme. Racunari s vise proccsma
mogu se podc:liti na sistemc s vise proccsora (multiprocesori) i vi;c ral'unara (multi-
racunari ). Posto detaljnijc objasnimn znace ovi i;ra.ti, preci cemo na si,stcme' ,i;c
procesora. a zatirn i na si:>teme s vise racunara.
8 . .3.1 l\Iultiproccsori i multiracunari
U bilo kom paralclnum racun;trskc'lll .<,istemu. prcJcesori koji uba\ ljaju c>
delove istog pusla nw;aJU i;.mcL!u -,ebe ranncnjiv:n: KnnkrcLtn nac'Jn J'a
koji oni tu radc predmet jc -.dike rasprave u kru;cu,ima ral:unarskih .strucnjaLL Pn:d-
loicna -,u i implementir<!na d'. a ja,flt) ddini,aua re\c'!lj:l: multipruu.:Sl'ri i ;mtitiJ ctC:u-
nari. Osnuvnu;azhku illncdu niih i'Lli to da li sc mcnwrija deli ili ne. Ta raz!ik,l utJcC
na nacin njihovug pw_jcJ...tovanp. implemcntiranja i programiranja. kal i n<J njih(l\LJ
veliCinu i centt.
1\lultiprocesori
P<tralclni raCunar u k>l!Jlt:: s'>i i1J'cJ''- i procc.,Dri dele mcn1c1riju nazi,:t
'>C mulliproccsur. kao stu JC -oimbnliCki prika/:tnu na 'ilici 8-17. S\ i pn,:esi kPji ,c
istuvrcrneno uhavlpju u lllultipruccs()rU mtJgu da dele jcdinsl\Cll J'l'tlSltlr virwcin:h
adrcsa u zajednil-1-..u nH.::11111riju. S\'akl pt\lC.:s nlu/.c it
ili da_je u nju in,,t;t:kt.:i;u LOAD, oclrHY.rlo STORE:. hard-
vcr. Dva nlcdu\cbrh' tak-1.) Ce
ti pmuJ...c u mcnwriJU. dclk ;h dru:;i i.t :1jc <5iiclti.
lljll'-.1\.t-
1!
.

578
Poglavljc 8: Arhitckture paralclnih racunara
Mogucnost da dva (iii vise) proeesa medusobno komuniciraju preko upisivanja
poruka u mcmoriju i citanja poruka iz nje, i jeste glavni razlog popularnosti multipro-
cesora. Model njihovog raJa programeri lako razumeju, a moze se primeniti na veliki
broj problema. Razmotrite, na primer, program koji analizira rastersku sliku (mapu
bitova) i prikazuje sve objcktc koje pronade na njoj. Jedna kopija slike cuva se u me-
moriji, kao sto je prikazano na slici 8-17(b). U svakom od 16 procesora izvrsava sc po
jedan proces- analizira jedan od ! 6 dodcljenih de! ova slike. Bez obzira na to, svaki
proces ima pristup celoj slici. sto jc sustinski vazno, zato sto ncki objckti mogu da sc
prostiru na vise njcnih delova. Ako proces utvrdi da se jedan od njegovih objekata
pruz.a izvan granica dodeljenog mu podrucja slikc, once ubjekat ispratiti u susednom
podrucju sanw tako sto ce ucitati reci iz tog podrucja. u takvim slucajevima neke ob-
jektc ce otkriti vise proccsa. pa je potrebna koordinacija cia sc utvrdi koliko na slici
ukupno ima kuca, stabala i aviona.
Procesor
(a) (b)
Slika S-17. (a) i'vlultipruc-csor sa lh proccsora koji dele zaJcdnickumcnwriju.
tl') Slika podcljcna na Ill Jelova. od 1-.ojih svaki clflalit.irct Jrugi proccsur
Pnsto svi pmcesmi multiproc.:sora vide istu memorijsku slil-u, pl>stoji .-;amo jedna
kopija operativtwg sistema. Shodno tome. postoji sanw jedna mapa stranica i samo
jcdna label a Kada se proccs blokira, 11_1egov proccsur omima svojc uta-
bek uperativnug sist.:ma i u nJima lra1i drugi pmces koji hi izvrsavao. Jcdinstvenusl
sistema Je ono po ccmu sc multipmccsor r:ulikujc od multiracunara, u komc svaki
racunar tma sopsrvcnu hopijtt opcrativnog si,tema.
ivlultiprocesor, kau i svi rctC:un,ui mura imati uLunu-i,-:\aznc urcJajc lnpr. Jj..;J.;ovc.
mrezne kart icc i Jrugu oprcmu ). lJ nekim multiprocesurskim sistemima samo neki
procesori im,tju pri.stup ulazno-iz\;u:nim urcdajitna i zato imaJU ,pcciplnc lunkcije za
obavlpnJL' ulazno-i,r\a/Jlih uperacija. U drugim sistcmima svaki procesur ima ravnu-
pravan prislup .svakom uLtnw-izbi.IHlll1 Kada waki proccsor ima ravnopra-
van prislup svim mcnwrij.skim mudulima i svim ulazno-i,rlaznim uredajima i hada e
sa aspckta opcrativnog sistcma p<ltpuno zarnenjiv svakim drugim procesornm, ll) e
onda simcrdcni multiprocesor 1 engl. S\'11!/lll'lric Mulrif'mcessm; S!v!l').
8.3 Sistcmi s vise procesora koji dele mcmoriju
579
Multiracunari
Paralelna arhitektura moze se ostvariti i tako sto ce svaki proccsor imati svoju pri-
vatnu memoriju, kojoj moze da samo on i nijedan drugi procesor. Takvo
resenje se zove multiracunar ili, ponekad, sistem distribuirane memorije, i prika
zano je na slici 8-l8(a). Kljucni aspekt multiracunara po kome se on jasno razlikujt
od multiprocesora jcste to sto svaki procesor multiracunara ima sopstvenu privatrm
lokalnu mcmoriju kojoj pristupa izvrsavanjem instrukcija LOAD i STORE, ali kojoj po
mocu tih instrukcija ne mozc da pristupi nijedan drugi procesor. Na taj nacin multi
procesori imaju jedinstven prostor rizickih adresa koji dele svi procesori, dok svak
proccsor multiracunara ima svoj prostor fizickih adresa.
Privatna mernorija
(a) (b)
Stika S-IS, ( .1) 1Vlultiracunar sa 16 proce,ora. svaki sa sopstvenom privatnorn mcmorijom.
(bi Mapa bitova sa slikc 8-17 podeljcna na lo mcrnorija.
Posto procesori u multiracunaru ne mogu medusobno da komuniciraju kroz. upi
sivanje podataka u zajednicku memoriju i citanje iz nje, za njih jc potreban drugacij1
mehanizam. Oni u stvari medusobno komuniciraju prcko mrt:Ze koja ih sve povezuje.
U multiracunare mozemo ubrojati IBM-ov BlueGene/L, Red Storm i Googleov klastet.
Nepostojanje hardverski deljene memorije u multiracunaru ima vazne posledice
po strukturu softvera. U multiracunaru je nemoguce da svi proccsi koriste isti pros to
virtuelnih adresa u kome bi mogli da Citaju podatkc iz memorije ida ih u nju upisuju
jednostavnim instrukcijama LOAD i STORE. Na primer, ako procesor 0 (u gomjcm Je.
vom uglu) sa slike 8-17(b) otkrije da deo njegovog objekta zauzima i pndrucjc do-
deljeno procesoru 1, on moze samo nastaviti da cita podatke iz memorije kako bt
dose gao rep aviona. S druge strane, ako procesor 0 na slici 8-18( b) d0l1c do is tog
otkrica, on ne moze da procita podatke iz memorije procesora I. Do potrebnih poda-
taka on mora doci na drugi nacin.
580
Poglavlje 8: Arhitekture paralelnih racunara
On. konkretno, mora da utvnli koji procesor ima poJatke koji nJemu trebaju i Ja
mu zatim uputi zahtev da mu posalje njihovu kopiju. On se po pravilu blokira dok ne
dobije oJgovor na zahtev. KaJa poruka stigne procesoru !, njegov softver treba Jaje
analizira i Ja posalje trazene podatke. Posto odgovor stignc procesoru 0. softver se
oslobada blokadc i procesor moze da nastavi raJ.
Na multiracunaru se za komuniciranje izmedu proccsa cesto koristc osnmnc soft-
verske metoJe send i receive. To softveru daje drugaciju. mnogu sluzeniju strukturu
nego stu je una kod multiprocesora. To takude znaci da pravilno raspodeljivanje po-
dataka i njihovo smestanjc na optirnalna mesta na multiracnuaru predstavlja prilican
problem. Taj problem nije toliko izrazen kod multiprocesora jer mesto podataka ne
utice na ispravnost rada i na moguenost programiranJa. vee mozda samo na perfor-
mansc. Ukratko. nmogo je tcze programirati multiracunare nego multiproce;.,orc.
Ako jc vee tako. zasto bi iko pravio multiracunare kada se multipwcesori lakse
programiraju? Odgovor je jcdnostavan: vcliki multiracunari mugu sc mnogo i
jcftinije napraviti nego multiproce;.,\lri sa istim broJem procesora. Realimvanje mc-
morije koju trcha da deli samo nckoliko ;,totina procesora impozantan je Ladatak, dt'k
jc pravljenje multiracunara sa I 0.000 iii vrse pmcesura ubiman. ali -;;bl im jasan pu-
sao. Kasnije eemo u ovorn poglavi.Ju proul:iti multira(unar-, vise od 50.000 pn,cc!>ma.
Tako dulaLimo do dve krajnosti: rnultiprnccsori se te\ko prave. ali -.;e lak1 !'I'U-
gramiraju. dok sc multiracunari la!-..o pravc. a sc prcJgramiraju. Posto nijeJna
krajnost nije optimalna. mnogo jc rruda ulo/.cno u srcdn.Jeg re\enja- sistema
koji hi sc srazmcrnu laku pravio i programirao. Zakljucak je da se deljena memDrija
mPze implemcntirati na razlicite nacinc. od kt'.Ji svaki ima svojc prc'dnostJ i mane. U
stvari. 1eliki dco islrazivanja u ohla\li paraklnih arhitektma dana" !>C 1 rti (1(...,, pri-
hlizavanp rnultipruccsura i multir:tc'lltJara hrhridnPlll rc\cnju kPjc' hi k.nnbirh>v:tlu
njihove dubre slranL'. Ovde je glavni ciii da se pronadu skalahilna k1ja cera-
diti dobro i kacla sc bucle dodavalu svc vise i vi:;c pwcesura.
Jcd,tll Od jll'iSllljla pravJjenjll hibridnih siq.cma /aSlliVa SC !la da '<tl'fL'illL:-
Ili raCunarsl-.i si.,tern nije tnnth)liLI!L \'t.:'...: od ni/a (1\C
1-.njigcL r\a [aj naCin \t' ol\aLl in1pletnentiranja dclj.:nc llh?Tl1\ n:t hiin
kum ud 1i;;e oi"-JCia. kao pribz:u:o llct s!ici X-ll)_ -,iici ;-.;_]L(::i vidi:Ji,, jc
dcljcna mcm.,rija impkmenrirana h:tnh-er:;ki. k:w kiJd pran'g mu!tipn'lT\l'ra. l' Lk-
voj pcstPj i jcdn:: kopija opcr:tti n:o;c ,j:-,:cma s jcdi:ht\ cnim ,(...upom rahL' i,1 i jed-
nom tahclom ;a dmk:l.Jilanje memurijc. K::1la prnce,u zatreba v1..;c nk'lil<trijc. nn c,'
obraL'a si,r.:mu. k'.1ji tada u ''oi".l l:thcli rr:/i :;l:hudnt: ni<?nwrij,ku stra-
nicu i kDpira je u adrc;.,ni prostur <<<1Cl. .':it<1 upc-rati\ Ell;2 '>1\klii<l. pl>Stt>.Ji
:-..an1ojedna i Sl)ftvLT',h.i \,,d[ o knji pnl\ .. in1,.1 slrani-
cu. Lkljcn:: se. kau stn ecmu ka.-,p:_je vidcti. 11HlfC implcmc'll:i-
rati na
Drut!:t --;c t!potrcbi hare_hcr !lniltirJ(unar], a d:t ...;i.;tlnl :-.i-
nndira dcljcnu CiLtv j.:dinslven,
prostor vimdllltJ ctdrc,:t. L; :11"-J ?.laJJ>.J dis!ribuirana ddjcna menwrlja !Di-,-
trihutt:d Sh:u,_cl :'llcm<ry. DSI\l) (Li :l!ld Sla:,:l strc;niL':lj.C smestc:Ja Ll
8.3 Sistemi s viSe proeesora koji dele mcmoriju
RaCunar I
Aplikac!Ja
lzvrSno
okruZenJe
programskog I
J8Zika
Operativni
SIStem
Ha.rdver
Racunar 2
AplikaciJa
I
,zvrsno
ok1u:':RnJe
I
pngrcwskog
j8ZIKa
Operativn1

Hardver
Oeljr=ma memorija
(a)
Racunar 1 Racunar2
Aplikacija AplikaciJa
lzvrSno lzvrSno
okruZenJ8 okruZ:enje
programskog programskog
jezika jez1ka
'
l
Operat1vni Operativni
sistem
I
sistem
Hardver Hardver
DeiJena memoriJa
(b)
581
Racunar 1 RaCunar 2
Aplikacija Aplikacija
lzvrSno
1
lzvrSno
okruZ:enJe okruZenw
programskog programskOJ
1ezika Jezika
Operativni Operativr.
sistem SIS!em
Hardver Hardver
DeiJena memorija
(c)
Slika !i-19. Razni sh1jevi na kojima se mo/.e impkmentirati ddjcna mcmorija. (a) lhrdvcr.
(hi Opcrativni sistcm. (c) L'vrsno okru/cnjc program,kogjcLika.
Jcdnu Pd memorija sa slike 8-1 Si a). Svaki racunar i ma sop,.,tvcnu virruelnu mcmori]u
i ;.,op,tvenc tahele stranica. Kada procesor zcli cia obavi instrukciju LOAD iii STORE
,rranicom koju nema, potprogram za obradu greske upueuje poziv uperativnom si-
skmu. Operativ ni sistem pronalazi trazenu stranicu i zahteva od procesora koji je tre-
numu ima da je oslobodi i dajc pusalje prelo interne mrde koja povezuje
Kada ,rranica stigne, preslikava sc u adresni prostor p();.i vaoca i ponovu se pokrece in-
-;trnkcija koja je izazvala grcsku. Ovdc. LI ;,tvari. opcrativni sistem usluzuje procesor
;,tranicom koja nije na disku. vee u udaljenoj mcmmiji. Kurisniku to izglcJa kao ca
racur1ar ima dcljenu memoriju. Sistem DSM dctaljnij:: eemo prouciti u drugom delu
n\\)g poglavlja.
T:.:ca moguenost.JC da korisnicko izvrsno okruzenje implementira (mozda.jczicki
spcLifican I oblik deljene mcnwrije. Ovdc programski jezik obezbedujc apstrakci.JU
dci!..:ne mcmorije koju tad a impkmentira prevodi lac i izvrsno okruzenje. Na primer.
!n,;dcl Linda sc Lasniva na apstralciji deljcnog prustora n-torki. tj. zapisa kuji sadr2c
II polja /.a poclatke. Proces na bilo korn racunaru moze da ucita torku iz deijenog pru-
q,;ra l<lrki i da torku upisc u njcga. Po,lo se pristupanJcm prostoru torki upravlja i'-
kljucivo softverski iprcko izvrsnog ohuzenja Linda), nepotrebna je bilo kaba
iii hardverska pm!rska.
I

t
,,
;I
;!
:.j
11



'"
,:""


582
Poglavlje 8: Arhitekture paralclnih racunara
Drugi primer jczicki specificne deljene rnemorije koju implemantira izvrsno ukru-
zenje jeste Orca- model deljenih objekata s podacima. U modelu Orca procesi ne
dele torke, vee opste objekte nad kojima mogu da izvrsc specificnc mctodc. Kada me-
toda promcni interno stanje objekta, izvrsno okruzenje brine o tome da sc sve kopije
objekta na svim racunarima istovremeno az.uriraju. Opel, posto su objekti striktno
softverski koncept, implementaciju muze da obavi samo izvrsno okruzenjc. bez po-
moCi opcrativnog sistema iii hardvera. 0 modelima Linda i Orca ponovo cemo govo-
riti u drugom delu poglavlja.
Taksonomija paralelnih racunara
Vratimo se sada nasoj glavnoj temi, arhitekturi paralelnih racunara. Tokom godina.
predlozcne su i napravljene brojne vrste paralelnih racunara. pa jc prirodno da se za-
pitamu mogu li se svi oni razvrstati prema nekoj taksonomiji. Mnogi su to pokusali,
s promenljivim rczultatima (Flynn. 1972: Treleavcn, 19H5). lzglcda, na7.alost, da Karl
Line' paralelnog racunarstva tck trcba da se rodi. Jedina scma koja se iole koristi jeste
ona flynnova. a i onaje, u najmanju ruku, samo grubo apmksirnativna (slika H-20).
r----
Tokovi Tokovi I me Primeri
instrukcija podataka
----
1 11
SISD i Klasicna Von Neumannova masina
1 Visestruki SIMD Vektorski superracunar, matricni procesor
r-------- ---
Visestruki 1 MISD Nema?
-- -----------------
I Visestruki

Visestruki Multiprocesor, multiracunar
-------
Slika 8-20. Flynnova laksnnnlllija paralelnih racunara.
Flynnova kla:-.ilikacija za:-.niva sc na dva konccpta- na tokovima instrukcija i lll-
kovima podatab. Jcdan tok instrukcija odgovara jed nom programskmn brojacu. Si-
stcm san proc-csura ima n programskih brujaca, pa i n tokO\ a instmkcija.
Tokovi instrukcija i tokovi podataka do izvesne mere su nezavisni, pa pm,tujc ce-
tiri kombinacijc. kao sto je pnkazano na slici S-20. S!SD je klasican. sckvcnc:ijalni
Von Neumannov racunar. On ima jedan tok instrukcija. jedan tok podataka i obavlja
jcdan zadatak u jcdnom trcnutku. SltvlD racunari imaju jcdnu upravljacku jcdinicu
koja izdaje jednu po jcdnu instrukciju, ali imaju vise ALU jcdinica kllje istovrcmcno
obraduju v1sc skupova pcdataka. ILLIAC IV (slika 2-71 prototip je SEvlD racunara.
Scrij:,ki pwi;,\ctkni Sl:VlD racunari we su redi, ali konvencionalni racunari pnn.c-
kad imaju mlredcnc Slrv!D instrukcije za obradu matcrijala. Penti-
unmv skup SSE instrukcija su Sll\-ID instrukcije. Hez ob;ira na hl, postuji llLlVll
podruCJC primenc u kome nekc idcjc iz SL'vlD 'iVCta mugu biti kori:,nc:: proccsori tokova
Karl I-inL {CJru1u:--,! innilcus. 1707--177Xl, smi ..... lill j'- :-.i."\tc/Il kn_1i se JJ.n;h kori"-li /a kbsiJi-
h!lj.:kJ. i u car':>t\a, h.ola, k!._bt_', redove. fll(JO\C 1 \.T',te.
8.3 Sistemi s vise procesora koji dele memoriju
583
(podataka). Ovi racunari su projektovani za rad s mullimedijom i u buducnosti mogu
postati vazni (Kapasi et al., 2003).
MISD racunari su pomalo cudna kategorija, gde vise instrukcija radi sa istim sku-
pom podataka. Nije jasno cia li takvi racunari uopste postoje, mada neki smatraju da
tu spadaju racunari koji podatke obraduju paralelno.
Na kraju. postoje i MIMD racunari, gde vise nezavisnih procesora medusobno sa-
raduju kao delovi veceg sistema. VeCina paralclnih proccsora spada ll OVLI kategoriju.
l\lultiprucesori i multiracunari su MIMD racunari.
flynnova taksonomija se ovde zavrsava, ali mi smo je produzili na slici 8-21. Ka-
tcgorija SIMD podeljenaje u dve podgrupe. Prva obuhvata numcricke superracunare
j drugc racunare za rad s vektor)ma, koji obavljaju istu operaciju sa svakimnjihovim
elementom. U drugu spadaju paralelni racunari. kao sto je ILLIAC IV, gde glavna
upravljacka jcdinica izdaje instrukcije brojnim nezavisnim ALU jedinicama.
DeiJ8rlJ8 mernonje ProsledrvanJe poruka
Slika 8-21. Tabonomija paralclnih ral'lmara.
Prema nasoj takslmomiji, kategorija Ml1v!D podeljcnaje na multiprocesore (siste-
mc s deljenommcmorijom) i multiracunare (sistcme koji razmenjuju poruke). Posto-
je tri vrstc multiproccsora koJC sc medusobno razlikuju po nacinu implcmentiranja
dcljene memorije. One sc sc zovu UlVIA (Uniform Memory Access- ravnomcran pri-
stup memorijil. NUMA (NonUniform Memory Access- neravnomcran pristup me-
moriji) i COMA (Cache Only Memory Access - samo prist up kcsu). Ovakva
kategorizacijaje napravljena zato ;ro je u velikim multiprocesorima memorija obicno
podeljcna na viSe rnodula. UMA racunari sc odlikuju time sto svaki procesor ima isto
;:
"'-!
584
Poglavlje 8: Arhitekture paralelnih racunara
vreme pristupa bilo kom memorijskom modulu. Drugim recima, brzina citanja me-
morijskih reci uvek je ista. Ako sc ovo ne moze tehnicki postic'i. najbr7.c reference se
usporavaju do brzine najsporijih. tako da programer mcdu njima ne uocava razliku.
To ovde znaci ,ravnomerno". Ravnomernost omogucava da se predvide perforrnanse,
sto jc vazan preduslov za pisanje efikasnog koda.
Nasuprot tome. NUMA multiprocesor nema ovo svojstvo. Cesto se memorijskim
moclulima smestenim blize procesorima pristupa mnogo br/.e nego ostalim moclulima.
Zbog toga jc sa aspekta pcrformansi kod njih vazno gclc sc u memoriji smdtaju k6d i
podaci. COMA racunari su takmle neravnomerni u ovom ali na drugaciji nacin.
Svaki od ovih tipova. kao i njihove potkategorije, kasnije c'emo detaljnije analizirati.
Druga glavna kategorija MIMD racunara oduhvata multiracunare koji. za razliku
od multiprocesora, ne dele primarnu memoriju na nivou arhitcl--ture. Drugim rccima.
operativni sistem jednog proeesora multiracunara ne moze da pristupi mcmoriji pri-
druzenoj clrugom rrocesoru tako sto ce samo i1.vrsiti instrukciju LOAD. On muta da
po;a]je poruku i da saceka oclgovor. Sposobnost operativnog sistema da procita uda-
ljenu rec lakP sto ce samo izvrsiti imtrukciju LOAD jestc ono \tp cini razliku i;meL!U
multipmcesora i multiracunara. Kao ;;to Sill() vee naromenuli. korisnicki pmgrami cak
i na multiracunaru mogu imati sposobnost da pristupaju udai.Jenoj memoriji pomul'tt
instrukcija LOAD i STORE, ali tu iluziju llllrl:ava operativ ni sisLcm. a ne hardver. Cha
razlika mu2.da prnlstavlja linesu. ali je vcoma val.n<L Buduci da multiracunari nemaju
dtrckLan pristup udaljcnuj mcmori.Ji. oni se punckad ;ovtt NOI{\1.\ (NO Rcnll>te 1\lc-
mmy Access - bc,r pristupa udaljenoj metnuriji) racunara.
Multiracunari se mogu podeliti u dve katcgorijc. Prva -;adrzi l\IPP (1\Ja-;sively
ralkl Processors- cvrsto spregnuti paraldni proceso1i) racunarc. skupc supcrracu-
nare S hnljllitn j)rllet:sorima mcclusohtlll teSI1ll 'ijlfcgnutitn prcko vi,-;ukclbr,rinc-ke interne
mrezc veza sopstvene k,mstrukcijc. IBM SP/3 JC duhro pp;nal Klltllercip!:1i pr:mcr.
Drugu J.;ategoriju cine (>bicni PC ral:unari iii radnc stanice. rno/da rasrotTtkni n<l
pulieama kao moduli i medusobno pove!ani nckom ncspecilil'tll'l11 komcrc.:ijaltl:J!l1
tL'hnologiJOill. l! lugiCkom smi.slu tunc prcd-;[<tV lja vclil--u ali sc "L:rc'i1111i ,;u-
perracunari J.;uji Jolara koristc drugacije od I'C r.tCll!1ara l.(>.ic je
korisnik umrcl:iu 1.a tklic ccne \!PP nCunar<L lhakv c 1111\:;:, racunata .,i; d)t,,acc:
ditw,ti" tlll\C imena. kt> (t\) :-,u '\0\\ t "id\',ork ui'\Vmk::t;uinn.;- utnr<:/ene
radne 'itaniee ). CO\V (Cluster,,( \\-,:rkst:ttions -- klastct 1adnih stanica) iii j'tlll:bJ
sanm klaste1.
8.3.2 Semantika memorijc
lai--o svi muiiipmcLsmi s'.ujim proc<.:,llrima ube?hcduju.Jnliil'itvc:n proslllt' ckl_ic-
nih aclrcsa. cesto pmtoji vi(e mcmnnj,l--iil mPdub. od !,.:ujtll ,vaki ,.,adr/.i dco
n1cinorijt:. i L---::-;1;, su intcrnd!11
S(O SlllO objasni]i U llllcljkll S.] \'i(c pr<lC:.:,ura 111\!lc da pml'ita !11Ct!lt'ljj-
Skll rec ll trcnutku kacla visL: ;crCC-?Stlt';, lll istu re: d:1 U tl1ell1<'-
riju. a neke mlpmuka _,a ll1llflU da 'L mim,1idu na ]'Lilli 1 cLt :1L:du i,puruc'cnc
8.3 Sistemi s viSe procesora koji dele memoriju
585
redoslcclom clrugacijim ocl redosleda slanja. Ovim problemima clodajte
vise kopija nekih memurijskih blokova (npr. u kesu) i reLUltat ce hiti totalni haos uko-
liko se ne preduztnu stroge mere predostroznosti. U ovom odeljku detaljno cemo
objasniti sta je dcljena memorija i kako ona u ovim okolnostima moze da reaguje Ill
raLuman naCin.
Po jcdnom tumacenju semantike memorije. onajc ugovor izmedu softvera i hard-
vera memorije (Adv'e i Hill. I ')l)0). Ako sc snftver obave7.e cia ce postovati odreclem
pravila, memorij<t se -.ll.lziii da isporucuje odrcclcnc rczultate. Dalja ra;.matranja se
oko p<.nnenutih pravila ponasanja. Pravila se izrazavaju kroz modele
doslednosti i vel ii--i brPJ Lak vih mode !a precllo/.enje i realizovan.
Da histe stekli uti.>Cl!.: P tmne sta je problem, zamislite da procesor 0 upisuje vrcd-
nost I uncku mcmnriJsku rec. ada malo kasnije procesor l u istumcmorusku rec upi
SLIJC vredno-.t 2. Sada prncesor 2 cita tu rec i dohija vrednost I. Treba li ll tom slucaju
vlasnik da odncse svoj racunar na servis'> Odgovor zavisi ud onoga s cim se memorija
.. slozila".
Striktna doslcdnost
Na.Jjedtlllstavni.Ji je model stl'iktnc doslednosti (engl. strict consistency). Kod
nJega se pri svakom citanJU it1kaeije x uvek dobija poslcdnja vrcdnost upisana u tu lo-
kaciju. mnogo vole ovaj model. ali sc on u praksi ne moze implementirati
na drugi nacin nsim krozjcdinstven memorijski modul koji na pozive odgovara strikt-
no na tbnovu njihovog redosleda, bcz kc:Sa iii bilo kakvc druge rcplikaeije podatak:1.
Tal-- va implc:mentacija bi prcdstavljalajedno ogromno usko grlo i zbog toga. nazalost.
nije o7bilpr1 kandidat za ra/.lnatranje.
Doslednost rcdosleda
Prvi tprt'tna doskdnusti) losiji model jeste model doslednosti rcdosleda (engl.
.lcglll<'llliu/ ,onsistenni (Lamport. I Y79). Ukoliko postoji vise zahteva za citanje i
upisi\ anjc. h:mlver (na nedctem1tnisticki nacin) ispremesta sve zahteve. ali tako da
sv i prt:Cc's 1ri vide isti led.
Da hi hilo ja.;nije to znaci. razmotrite jcclan primer. Pretpostavimo da pro
cc.;ur I upi>UJ.? vredno,;t I()() u rei: x. a l ns kasnije procesor 2 vrednost 200 u
r:c x. S,1da rr-ctrostavinm da I ns nakon drugog zahteva za upisivanje (koji ne
bill zavrsen) dva drug a rrneesora. 3 i .+_ citaju rec X [JO dvaput, ncposredno jed an D:
drtlf'111. bu na slici X-22(a). Tri moguca redoslcda ovih sest dogadaja (dva upisivanja
i cit:mjaJ pribzana Sll na slikama 8-22(b)-(d). Na sliei X-22(b). proccsor 3 do
V'redn''!i 1200.2001. i proccsor4 dobip vrcdnosti (:200. 20()). Na slici X-22(c) on:
dnbip;u \Tc:dnosti ( 100. 200) i t200. 200). Na slici 8-22(di dohijaju se vrednosti ( 100.
ili!JJ i t20il. llJOl. Svt:: kombinacijc suu ovommodelulcgalnc. kao i nekc druge
k'.l" nisu p:ti-.azane.
J
l
.
,
'
''

d


';
.!
:f


586
Poglavlje 8: Arhitekture paralelnih racunara
Procesor
'
W100 W100 W200
W200 R3 = 100 R4 = 200
R3 = 200 W200 W100
R3 = 200 R4 = 200 R3 = 100
R4 = 200 R3 = 200 R4 = 100
Cita 2x
0
R4 = 200 R4 = 200 R3 = 100
0
(a) (b) (c) (d)
Slika 8-22. (a) Dva procesora upisuju, a dva procesora citaju istu memorijsku rec.
(b)---(d) Tri moguca nacina za vremensko preplitanje dva upisivanja i cctiri citanja.
Evo sta je sustina doslcdnosti rcdoslcda: memorija koja dosledno postujc redosled
ncce nikada dopustiti da procesor 3 dobije vrednosti (I 00, 200), a procesor 4 vrcdnosti
(200, 100). Kada bi sc to dopustilo. za procesor 3 bi to znacilo da jc procesor 1 zavrsio
upisivanje vrednosti I 00 tek nakon sto jc procesor 2 upisao vrcdnost 200. Ncka je tako.
Ali. da lito za procesor 4 istovremeno znaci dajc procesor 2 zavrsio upisivanje vred-
nosti 200 pre nego stojc procesor I upisao vrednosl 100. Takav rczultatje, sam po sebi.
moguc. Nevolja jc to stu doslednost redoslcda garantujc jcdinstven globalni redoslcd
svih upisivanja, vidljiv svim procesorima. Ako procesor 3 unci daje vrednost 100 prva
upisana. tada i proccsor 4 mora da vi eli isti redosled.
Iako doslcdnosl rcdosleda nc predstavlja tako cvrsto pravilo kao sto .JC striktna
doslcdnost. on a jc i dalje vrlo korisna. Njom se zapravo tvrdi da pri istovremenorn od-
vijanju vise dogauaja postoji neki njihov stvaran redosled (odreuen kako vrcmcnskim
ciniocima, tako i slucajem) ali, ipak, dovoljno stvaran da ga svi proccsori vide na isti
nacin. lako prethodna tvrdnp moze zvucati kao detinicija ocigledmlg, ll nastavku
ccmo razmatrati i modele doslcdnosti koji cak ni to ne garantuju.
P1ocesorska doslednost
Procesorska doslednost (Goodman. 1989) model je laba vijc doslcdnmti koja .-;c.
ipak, laksc implemcntira na velikim multiprocesorima. Ona ima dva svojstva:
I. U pisi vanja koja nbav l.Ja _1edan proccsor drugi pmcesori vide redmlcdom
njihovog izdavanja.
1
Svi procesori vide isti rcdoslcd upisivanja u datu memurijsku rcc.
Oba ova svojstva su vazna. Prvn znaci sledece: ako procesor l izda instrukcije za
upisivanje vrednosti I A. I B i IC u istumemorijskulnkaciju (tim rcdosledoml. svi drugi
pruccsori ta upisivanja ce vidcti takmtc tim rednslcdom. Ncki drug.i procesor, koji u
kratkoj pctlji cit a upisane reci, uvek ce vidcti sekvcncu I A. I 8 i I C, a nikada I B. pa I A
iii nesto drugn. Drugo svojstvo je neophodno da bi svaka mcmorijska rcc posle vise
sivanja imala ncsumnjivu vrednost. Svi se moraju sloLiti s tim staje poslednje upisano.
8.3 Sistemi s viSe procesora koji dele mcmoriju
587
Projektant, cak i LIZ ova ogranicenja, ima mnogo slobode. Razmotrite sta se desava
kada procesor 2 pokrene upisivanje vrcdnosti 2A, 2B i 2C uporedo s tri upisivanja
procesora I. Ostali procesori koji vredno citaju memoriju zapazice preplitanje sest
upisivanja (npr. lA, lB, 2A, 2B. lC, 2C iii 2A, lA, 2B, 2C, lB. IC, iii slicno).
cc:-.orska doslednost ne garantujc dace svaki procesor videti isti redosled (za razliku
od doslednosti redoslcda, gde se to garantujc). Prema tome, s hardverskog
sasvim jc u redu da ncki procesori vide prvi od navcdenih rcdosleda. da neki vide
gi, a neki, opet, treci redosled. Garantuje se da nijedan procesor nece vidcti sekvencu
u kojoj I B dolazi pre I A i druge slicne sekvence. Rcdosled kojim svaki procesor vrsi
svoja upisivanja na isti nacin se vidi svuda.
Treha naglastiti da neki autqri definisu procesorsku doslednost na drugi nacin ida
ne ut.imaju u obzir drugo navcdcno svojstvo.
Slaba doslednost
Nas sledcCi model, slaba doslednost, ne garantuje cak ni da se upisivanja i,tog
cesora svuda vide istim redosledom (Dubois et al., 1986). U slabo doslednoj mcmoriji
jedan procesor moze da vidi vrednost l A pre vrednosti I B, a drugi vrednost I A poslc
vrednosti I B. Da bi sc u taj hans uvco nckakav red. slabo dosledne memorijc irmtju
promenljive iii operaciju za sinhronizovanje. Kada se pokrenc sinhronimvanje. nova
upisivanja sc nc zapocinju duk se nc zavrse ona koja su u toku, kao i samo
vanjc. Sinhronizovanjcm se u stvari ,prazni" linija paralclne obradc i memorija se
vodi u stahilno stanjc u kome ncma nezavrsenih operacija. Operacije sinhronimvanja
interno dosledno postuju redosled: kada vise procesora pokrene sinhroni1.0vanjc. b:ra
sc odreueni redoslcd, ali taj isti redosled vide svi proccsori.
Kod slabe doslcdnosti vremc sc deli na dobro detinisane ,epohc", razgranicenc
sinhronizacijama tkoje doslcdno postuju redosled). kao sto je prikazano na slici
Za upisivanja I A i I B ne garantuje se nikakav meLlusobni redosled i razliciti
sori vrcdnosti mogu videti u sek\ enci I A. I B iii u sekvcnci I B. I A. To je do;:voljcno.
Meuutim. svi proccsori vide da je vredtw>t I B pre vrcdnosti I C zato stu prva
sinhronizacija zahteva da sc upisivanja vrednosti I A, I B i 2>\ zavrsc pre nego
pocnu upisivanja I C. 2B. 3.-\ iii JB. Na taj nacin softver smhronizovanjemnwze da
uvedc nesto razuma u redoslcd odvijanja dogauaja, mada St' Z<t to mora i ndto platiti
jer praznjenje memorijskc linije paralelne obrade traje izvesno vrcme.
Doslednost uz oslohadanje
Slaba doslednost pati od neetikasnosti jcr se tokom sinhronizovanp svc nme upe-
racije s memorijom mnraju t.au:,taviti dok se tckuce ne zavrsc. T>oslcdnost uz oslo-
hadanjc popravlp stvari taktl sw koristi model srudan nmdelu kriticnih sekc:p
I Gharachorloo eta!., 1990 ). Prema tom modeiu. kad proces izadc i.e kriticne sek.:ije,
nije ncophodno da se sva upisivanja odmah zavrsL'. Potrebno jc samo obezbediti da se
ona zavrse pre nego sto neki drugi proces ude u kriticnu sekciJU.

i:y.,..,
588
Puglavlje 8: Arhitekture paralclnih racunara
UpisivanJ8
//I
)' I
'"'
Procesor A 1A 18 1C 10 1E
I
1F
Procesor 8 2A 28 2C 20
Procesor C 3A 38 3C
'" Tacka sinhron1zaci)e
Vreme----
Stika S-23. SL1bn do.,kdna mcn1mija kmisti operacijc /,a sinhroniwvanJC dcleci vreme
u Uf.<ISlopnc cpohe.
U ovom llHldc:lu opcracija sinhrnnizovanja iz modcla slahe deli na
dvc llflL'racije. Da bi procitao deljenu promenljivu s podacima iii upisivao
vrednost u nju, pruce'm (tj. njegov soflver) mora prvo Ja izvrsi operaciju acquire nad
promenljivum za sinhronizovanje kak.o bi dobio i'kljucivo pravo za pristupanje clc-
ljcnim Tada ih proccsor moze koristiti po zei.Ji (cia ih cita iii mcnja). Pro-
cesnr poslc luga izvrKava operaciju release nad promcnljivom za sinhronizovanje.
cimc vrac'a ,;voje pravo pristupa i oslobada poclatk.c.
reiease nc: tc:ra upisivanja koja su u toku da se uclmah zavrse, ali se ni
scima nc svc dok se sva prcthodna upisivanja ne zavrse. Stavise, nove ope-
racije' n1Ci1l'lrij,Hn mugu udmah da zapocnu.
Kada sc puk_rene sledeca opcracija acquire, proverava se da li su sve prethodnc ope-
r,Kije miease /,avrs-:ne. Ukolik.o to nijc slucaj, opcracija acquire '-C zadrzava sve clok sc
ne ,:ctvr\c (Ll<J i -;va upisivanja k.op se zavrsavaju pre toga). Na taj nacin, ako se sle-
l>pcraci_p acquire pokrcnc dovoljno dugo poslc poslednje operacije release, neee
hiti nikah<>g C,;kanja. pa se odmah moze uci u kriticnu sckciju. Ako se pak pokrcne
ui>J7.0 it.a release, opcracija acquire (i sv..: instrukcijc k.oje je slcdc) hice
s \C J,J., sc tekuce opcracije release ne t.avrsc i tako obezbedi da sve pwmcn-
I.Ji"'-' u sekciji budu azuri!'ane. Ova sernaje nesto sloz.enija od slabe closled-
n":;ti. ali nucajnu prednost jcr nc zaclrzava previse cesto instrukcijc kak.o bi se
d<"lc,lnLJSl.
\lemilnjsl"' dl)slcurwst i daljc nije razrescna, pa se prcdlazu novi nmdeli (Cain i
200-1-: lbmmond ct aL, 200-1-).
simetricnih liMA multiproccsora
multipn,cesori t:asnivaju se na jedinstvcnoj magistrali, kao sto je
tu 0-:2-1-taJ. Dva iii vise procesora i jedan iii vise memurijskih rnodula
ll!c',
1
u,chlh; \.,;mutliciraju preko isle magistralc. Kada proccsor po:i:eli da procita me-
re,:. ''11]'1"\'l pr,Jvcrava da li je magistral a zauzeta. Ako je magistrala slobodna,
8.3 Sistcrni s vise prncesora koji dele rncmoriju 589
procesor na nju stavlja aclresu trazene reci. postavlja nekolik.o upravljackih signala i
ceka da memurija tu rec stavi na magistralu.
Oeljena memorija
t
(a)
Privatna memorija
(b) (c)
Stika S-2-t Tri vrsk multiprocesora koji dele jednu magistralu. (a) l3ez kesiranja.
(b) S kesiranjcrn. (c) S kcsiranjem i privatnom memorijom.
Ako je magistral a zauzeta u trenutk.u kada procesor hoce da pristupi memoriji, on
ceLt da sc magistraL! oslobodi. U tome i lczi problem sa ovom semom. Kada postoje
Jva iii tri pmcesora, nadmetanje za magistralu moze se podneti; sa 32 iii 64 proccsr-
ra, nadmetanje postajt: nepodnosljivo. Prupusni opseg magistralc usporice citav SJ-
stem i vecina pmcesora najveci deo vrerm:na necc raditi nista.
Ovaj problem se rcsava tak.o sto ce svak.i pmcesor dohiti svuj k.c:S. k.ao na slici
8-2-1-ib). Kes se moze nalaziti na samom proeesorskom cipu, pored njcga. na k.artici
s procesorom iii u nekoj drugoj kombinaciji. Posto sada na brojne zahteve za cilanje
moY.e da odgovori lok.alni kcs, bice rnnogo manje saobracaja na magistrali i sistcm ce
mm'i da podrzi vise proccsora. Na taj nacin. k.t:Siranjcm je ovdc postignut vcliki uspeh.
Jos Jednu mogucnost nudi na slici 8-2-f(c), gde svaki procesor ne samo da
ima k.es, vee i lokalnu, pri vatnu mcmoriju k.ojoj pristupa pmnocu namenske ( pri vatne)
magistmle. Da bi sc ova kontiguracija optimal no isk.oristila, prevmli lac treba da sme-
sti u privatnumemoriju programski tekst, znakovne nizove. k.onstantc i druge pOLLitke
k.oji su samo ta citanje. stekow i lokalne promcnljive. Deljena memorij,J se tada 1-,l'-
risti samo z.a dcljene promcnljive cije sc vrcdnosti mogu upisivanJem mcnjati.
va organi1acija ce u vccini slucajcva Lnatnu smanjiti saohracaj na magi,trali. ali je ;a
nju putrcbna aktivna sarJclnja prevodioca.
Kcs za prisluskivanje
fako je navedeno razmatranje perfurmansi sigurno na mcstu. prchrm \lll<l naisli m
fundamcntalan problem. Prctpostavimo cia se memorija dnsledno pr!drlava rcdmkda
operacija. Sta ce se dogoditi ak.o proccsur I irna ncki rt:d u svom kdu, prnceo;m pu-
k.usa Ja pmcita rei' iz is tog reda Ukoliko nema posebnih pravila un t.'c:
u wnm k.csu dobiti knpiju datug reel a. Tu nema niceg nepravilrwg 1 L: principu jL' pn-
hvatljivo da sc isti red k.csira clvaput). Prctpostavimo saua da prL>cc::--ur i izmeni dati red
ida neposrcdno posle toga pmcesor 2 procita k.opiju istog reda i; svug On do-
biti tzv. zaslarclc podatkc (engl. s/u/1.' dula) i na taj n<tl:iti .,ugm llr" iflncdu
soft vera i mcmorije. Tu cc naravno unesJ"l:citi program koji pmcc,or iL\ rsavJ.
IF'



!!!;'
r;::

i'

f'
tl
f
H
r:
fl
590
Poglavlje 8: Arhitekture paralclnih racunara
Ovaj problem, koji je u literaturi poznat kao kohercntnost kesa iii doslcdnost
kcsa (engl. cuche coherence, cache consistency), izuzetno je ozbiljan. Ukoliko nije
resen, kesiranje se ne moze koristiti. a multiprocesori s jedinstvenom magistralom
ograniceni su samo na dva iii tri procesora. Zbog takve vaznosti, tokom godina su
predlozena brojna resenja ovog problema (npr. Goodman, 1983; Papamarcos i Patel,
19X-i 1. lako se svi algoritmi, poznati kao protokoli za oddavanje koherentnosti
kesa (engl. cache coherence J!rotocols) razlikuju u detaljima, svima im je zajcdnicko
da sprecavaju naizgled istovrcmcno pojavljivanjc razlicitih verzija istog recta u dva iii
vise kdeva.
LJ svim postoji kontroler kesa koji prisluskujc magistralu i prati sve zah-
tevc dmgih procesora i keseva. preduzimajuci u odredenim slucajevima i interventnc
mere. Ovakav uret!aj se, shodno svojoj ulozi, naziva ke8 za prisluskivanje (engl.
snooping cuche, snoopy cache). Skup pravila koja namecu kesevi, procesori i memo-
rija kako bi se sprecio nastanak razlicitih verzija podataka u razlicitim kesevima cini
prutokol za odrzavanje koherentnosti kesa. Jedinicni podaci koje kes razmenjuje i
smdta nazivaju se rcdovi kcsa i njihova velicinaje po pravilu 32 iii 64 bajta.
Najjednostavniji protokol za odrzavanje kohcrentnosti kcsa jeste protokol za di-
rcktno upisivanje (engl. write through). On sc najlakse mozc objasniti kroz razma-
tranje cctiri slucaja prikazana na slici X-25. Kada proeesor pokusa da ucita rec koja se
nc nalazi u kesu (tj. kad promasi 1--d), kontroler njcgovog kesa ucitava u kd red koji
tu rei' sadrzi. Tu rec isporucujc memmija, za koju se u ovom protokolu smatra da je
uvek a?.urna. Naknadna citanja reci sc obavljaju iz kesa (tj. postize se pogodak u kesu).


---- -- -----
Lokalni zahtev Udaljeni zahtev
---..-.
-
>ri citanju Preuzmi podatke iz memorije

1 Proma
ri citanju Upotrebi podatke iz lokalnog kesa
lri upisivanju Azuriraj podatke u memoriji
fPo'godctt ri upisivanju AZuriraj kes i memoriju Ukini vaznost odrednice kesa
Slika S-25. Dircktno upisivanje- protokol 1.a ndrzavanJe kollerentnosti kesa. Kada u polju nema
niSla. to 1.naCi Ja st_; niSta nc prcJuzima.
Kml kesa pri upisivanju, izmenjcna rei' se upisuje u glavnu memoriju.
Red koji sadrzi rcfercnciranu rei' ne ucitava se u kd. Kada se kd pri upisi vanju po-
godi, on se alurira i a/.uriran red se dircktno upisujc u glavnu memoriju. Sustina ovog
protokolajc to da -;e pri svakoj operaeiji upisivanja innenjena ree direktno salje ll me-
morijll, tako da ona sve vreme ostaje azurna.
Rannotrimo jos jednom sve ovc opcracije, ali ovoga puta sa aspekta kesa za prislu-
skivanjc (krajnJa desna kolona na slici R-25). Neka kd koji obavlja operaciju bude kd
I. a kcs za prisluskivanje neka bude kes 2. Kada kes I bulle promasen pri citanju, on
zahteva pristup magistrali da bi nedo,tajuci red preuzeo iz memmije. Kes 2 to vidi, ali
nc rcaguje. Kada kes I bude pogoden pri citanju, na taj zahtcv sc odgovara lokalno i kes
I ne zahteva pristup magis(rali, tako da kd 2 i ne zna za pogotke kesa I pri citanju.
8.3 Sistemi s viSe procesora koji dele memoriju
591
Upisivanje je zanimljivijc. Ako procesor I nesto upise, kd I cc na magistralu pu-
stiti zahtev za upisivanje i kadaje pogoden i kadaje prornasen. Keii 2 pri svakom upi-
sivanju provcrava da li postoje reci koje se menjaju. Ako ih nema, s njegovog gledista
to je promasaj udaljenog zahteva za upisivanje ion ne preduzima nista. (Da bi sve bilo
jasnije, obratite paznju nato dana slici 8-25 udaljeni zahtev znaci da rei' ne postoji u
kcsu za prisluskivanje; da li ona postoji u pozivaocevom kesu, nije vazno. Prema to-
me, isti zahtev moze da bude lokalni pogodak i istovremeno promasaj u kesu za pri-
sluskivanje, i obrnuto.)
Pretpostavimo sada da kes I upisuje rei' koja postoji u kesu 2 (pogodak udaljenog
zahteva za upisivanjc). i\ko kcs 2 ne uradi nista, once imati zastarele podatke, pa on
zato odrednicu kesa koja sadrzi izmenjenu rec oznacava kao nevazecu. To je isto kao
da je odrcdnicu uklonio iz kcsa. Posto svi kesevi osluskuju sve zahteve za pristupanjc
magistrali. kad god se upisc rce, rezultat se svodi na azuriranjc inicijalnog kcsa. na
azuriranje rcci u memoriji i njeno izbacivanje iz svih drugih keseva. Na ovaj nacin sc
spreeava postojanjc razlicitih verzija istog reda kesa.
Naravno, kc5 proccsora 2 ima pravo da procita istu rei' odmah u slcdcccm ciklusu. U
takvoj situaciji kes 2 ce je ucitati iz rnemorije, kojaje sada azurna. Tada ce i kes I ike\
2 i memorija imati njene identicne kopije. Ako hilo koji procesor sada obavi upisivanje,
kes drugog procesora bice ociscen na odgovarajuci nacin. a memorija ce se azurirati.
Moguce su hrojne verzijc ovog osnovnog protokola. Na primer, kada dot!e do po-
gotka pri upisivanju, kes za prisluskivanje cc uznaciti neva7.eeom svuju odrcdnicu
koja sadrzi mcnjanu rei'. Alternativno. on moze da prihvati izmenjenu vrcdnost ida se
tako azurira. Azuriranje kesaje u stvari isto sto i oznacavanje rcda ncvazec'im. a zatim
njegovo ponovno ucitavanje iz memorije. lJ svim protokolima za odrzavanje kohe
rentnosti kt?Sa mora se birati it.met!u strategije azuriranja i stratcgijc ukidanja
vaznosti ke8a. Ovi protokoli se ponasaju razlicito u razlicitim radnim uslovima. Po-
ruke za aLuriranje nose korisne podatke i zato su veee od poruka kojima se ke\
proglasava ncvazecim. ali zato mogu da u buducnosti prorede prumasajc kda.
Druga verzija je da kcs za prisluskivanje ucitava red kada dode dtl
pri upisivanju. Sama ispravnost algoritma time se ne menja. menjaJU se samo p.:r
formanse. Postavlja se pitanje: .. Kolika je verovatnoca da ce upravo upisana ree
uskoro biti ponovo menjana''" Aku jc ona velika, onda to ide u prilog ucitavanju reda
kcsa prilikom promasaja pri upisivallJll. sto je poznato kao pravilo dodeljivanja pri
upisivanju (engl. write-ullocute policr). Akn je verovatnoca mala. bolje je da sc kd
ne azurira prili kom promasaja pri upisi I anju. Ukoliko data rec budt: ubrw ponovo 6
{({/1{/, una cc prilikom promasaja pri citanju ionako biti ponovu ucitana; malo sc sta
dobija time da se on a ucita prilikom promasaja pri upisi vanju.
Slicno mnogim drugim jednustavnim i ovo je ncetikasno. Za ''ak.u
operaciju upisivanja. zahtev memoriji se salje pr.::ko tako dace i sa ume
rcnim hrojem proccsora magistrala pustati usko grlu. Da bi sc '>aobracaj na magistral.
odriao u prihvatljivim granieama, smisljcni su drugi protokoli ...:a lldrzavanje kohe
rentnosti kda. Za sve njihje karakteristicno to da sc upisivanJC ne ubavlja dircktno t.
mcmoriji. Umcsto toga, kada se izmeni red kesa. postavljanjcm JCdnog hita
i'
.,
592
Poglavljc 8: Arhitekture paralclnih racunara
se daje on ic,pravan. a daje njegov dvojnik u memoriji neispravan. Takav .,prljav" red
se na kraju mora prchaciti u memoriju, ali mozda tek posto budc jos nekoliko puta iz-
mcnjcn. Ova vrsta protokola po/.nata jc kao protokol s naknadnim upisivanjem
(engl. writf'-hack pmwcol).
Protokol MESI za odrzavanje kohcrcntnosti kcsa
.Jcdan od popularnih pmlokula za <lllr;lavanje koherentnosti kesa koji radi s naknad-
nim upisivanJem jcste MESI. a imc je dobio prerna inicijalima imena cetiri stanja (M.
E, S i I) koja koristi (Pap;un.;rc,Js i PateL On se zasniva na ranijem protokolu
za jcdnokratno azuriranje pri upisivanju (engl. write-once protocol) (Goodman,
1983). Pentium 4 i mnugi drugi proccsori koristc protokol MESL za osluskivanje ma-
gistrale. Svaka odrcdnic.:a kcsa muze se nalaziti u jednom od sledcca cetiri stanja:
I. Ncv!L;;ccc (lnvalidJ- Odrednic.:a kda ne sadrzi ispravne podatke.
2. Deljeno (Shared)- lsti red mo/.c postojati u vise kdeva; rnemorijaje azurna.
3. Isldjucivo (Exclusive)- Samo ovaj kd sadr?.i red; memorijaje azurna.
4. lnnenjeno (!\lodilied)- Odrcdnica je ispravna; memorija jc neispravna; ne
pw;tuje kopije.
Kada pnxe'or pokrene. sve oc!rninice kcsa oznacavaju se nevazecim. Prvi put
kada se procita pmiatak it. rnernorije. rderencirani red se preuzirna u kes procesora koji
cita memoriju i o/nacava se kao :,tanje E (iskljucivo). posto se jed ina kopija rcda nalazi
u lurll kc;u; na ,lici K-2hta) prikazano je to stanje za slucaj kada proccsor l cila red A.
Pri sll'lkcimcitanjima proce.';or koric,ti red iz 1-.csa inc salje zahtev na magistralu. Dar-
gi pmcTsor lakL'Lk mo/.c da preuzmc i kesira isri red, ali prvobitni vlasnik koji oslu-
skujc (pruce.,Pr I 1 vidi da vise nije jedini vlasnik i objavljuje na magic,trali da ion ima
koprjutog Ohc korije se tada oznacavaju da su u stanju S (deljcno), kao stoje pri-
h:llann na .'>lici ; .. h). Drugim rccima .. stanje S znaci da se red moze citati izjednog
il i iz vise ke<na. ada je memurija azurna. Kada procesor naknadno bucie Citao taj kt:'Si-
rani red 11 s<anju S. nccc i.daziti na magistralu, a nece se menjati ni stanje kesa.
<rda su sc do gada kad proeesor 2 upise rcc u red kesa koji je u stanju
S. On tada na mac:istralu po.'>tavija signal .,nevazece' kojim ostalim proccsorima
sat psta v da ndb.tce sopstvene kl1pije tog reda. Kc:Sirana kopija sada prdazi u stanje
i'vl (i;.r:1enjcnDI. Lro prikazano na slici 8-26(c). Red sene prepisuje u mcmoriju.
Trelxr primetiti c,lcdece: kad sc red u koji se upisuje nalazi u stanju E. nijc potrchno
slati si"nal .. ne\a;ccc" na magistralu jer se zna da nema drugih kopija.
,\ta Sc' dogacla kada procesor 3 ucita red. Proccsor :2, koji je sada vlasnik
reda. zna Lla knpija u mernoriji nije ispravna, pa signalizira na magistrali mo-
lec'i pr,,cc''''r C:i'L .l da saceka dok rrazeni red ne upise u rncmoriju. Kada se to ohavi,
pr"C.:c':,.lr _, pr<.''J:.i:1]ll kopiju ired sell oha kc:Sa oznacava kao dcljeni. kao sto je prika-
/;ii]() na ,li,:i S-26rciJ. Poslc toga. procesur 2 ponovo upisuje u red. zh<Jg cega njegova
pr:>C,:-nra _l pustaje nevazcea, kao SlO je prikazano llll s)ici 8-26(e).

8.3 Sistemi s vise procesora knji dele memnriju
593
(a)
Procesor 1 Procesor 2
'"""'''
MemorrJa
OJ CJ CJ
ilskljucivo
I I ----
Procesor 1 cita blok A
Kes
fvlagistrala
Procesor 1 Procesor 2 Procesor 3
(b)
MemoriJa
CJ OJ CJ
Procesor 2 cita blok A
.IDeljeno 1 Deljeno
r I
Magistrala
(c)
Procesor 1
'"'"""' """"" e
MemonJa
CJ OJ CJ
]_ lzmenjeno _j
--- - ------- --
Procesor 2 upisuje blok A
Magistrala
Procesor 1 Procesor 2 Procesor 3
(d)
Memorija
CJ OJ OJ
Procesor 3 Cita blok A
1
T Deljeno I Deljeno
I
Magistrala
Procesor 1 Procesor 2 Procesor 3
(e)
Memorija
CJ OJ CJ
Procesor 2 upisuje blok A
I
llzmenjeno
I I
Magistrala
Procesor 1 Procesor 2 Procesor 3
(f)
Memorija
OJ CJ CJ
!
Procesor 1 upisuje blok A
jlzmenjeno
I I I
Magistrala
Slika S-26. Protokol MESI za odrzavan1e koherentnusti J.cesa.
594
Poglavlje 8: Arhitekture paralelnih rai'unara
----------
Na kraju procesor I upisujc ree u taj red. Procesor 2 uocava taj pokusaj upisivanja
i signalizira na magistrali moleCi procesor 1 da saccka dok on ne azurira memoriju.
Kada to uradi, on sopstvenu kopiju oznacava kao nevaz.ecu, posto zna dace je drugi
procesor upravo izmeniti. U ovom trcnutku imamo situaciju da procesor upisuje u
nekdirani red. Ako je na snazi pravilo o dodeljivanju pri upisivanju, red ce biti ucitan
u kes i oznacen kao izmenjen (M), kao sto je prikazano na slici 8-26(f). Ako sc pome-
nuto pravilo nc koristi, upisivanjc cc se obaviti dircktno u memoriju ired nigde necc
biti kesiran.
Multiprocesori UMA sa unakrsnim prekidacima
.Jedinstvcna magistrala, cak i uza svc moguce optimizacije, ogranicava velicinumul-
tiprocesora UMAna 16-32 pojedinacna procesora. Preko te cifre potrebnaje drugacija
interna mreza za njihovo medusobno pove;.ivanje. Najjednostavnije kolo za pove-
zivanje n procesora sa k rncmorijajcste unakrsni prekidac (engl. crossbar switch), pri-
kazan na slici 8-27. Unakrsni prekidaci su dccenijama k01isceni u tclefonskirn
centralama za proizvoljno povezivanje skupova ulaznih i izlaznih telcfonskih linija.
U prcseku horizontalnc (uLu.nc) i vcrtikalnc (izlazne) linijc nalazi se tacka
ukrstanja (engl. crosspoint). Tacka ukrstanja je mali prckidac koji se mo7.e otvoriti iii
zatvoriti clcktricnim putem, sto zavisi od toga da li ulazna i izlazna linija treba da hudu
povezane iii nc. Na slici 8-27(a) vidimo tri istovrcmeno zatvorcne tacke ukr;tanja kojc
u is tom trcnutku spajaju odgovarajucc proccsnre i mcmorijc (00 I. 000), (I 0 I, I 0 I) i
(II 0, 0 I 0). Moguce su i hrojne druge komhinacije. U stvari, broj kombinacija jednak
je broju razlicitih nacina na koje se osam topova mogu bezbedno razmestiti po sahuv-
skoj tabli (da nijcdan top ne pujcde drugog: topa).
Kod unakrsnog prekidaca najlepse jc to sto on predstavlja nehlokirajucu mrezu:
to zna(i da 'e nijcd!lOill proCCSOI'll llC Pdbija prist up zato SIO jc neka tacka UKrSlanja iii
linija vee (pod prcpostavkom da jc sam memorijski moclul raspolo/.iv). Sta-
visc. nijc potrebno nikakvo planiranjc unapred. C'ak i kada je vee w.postavljeno se-
dam proizvoljnih veza. uvek je rnugucc da sc preostali proccsor povcic s prcostalom
mcmnrijom. Kasnije ccmo vidcti i druge seme povezivanja koje ncmaju ova svojstva.
Jed no ocl najgorih sHJ_)stava unakrsnog prekidaca jeste to sto broj tacaka ukrstanja
raste sa n
2
. Unakrsni prekidac radi duhro u si,tcmima srednje velicine. Kasnijc ccmu
u OVlllll poglavlju analizirati jednu takvu semu. Sunov Fire E25K. l\ledutim, akcl ima-
1110 JOOO procesora i lOOO memorijskih modula, trebace nam mil inn racaka
Tako vcliki unakrsni prekidac ne mo7.c se napraviti. Trcba nam ndto ,as vim drugacije.
Multiprocesori UMA s viSestepenim komutacionim mrczama
To ,.nesto sasvim drugacije" moze se zasnivati na prekidacu 2 x 2, prikazanom na
slici S-2S(a). Ovaj prckidac ima dva ulaza i dva izlaza. Puruke kt1je stii.u na bilo kuji
od dva ulaza rnogu sc prw-lediti na bilo koji od dva izlaza. Za nase sadasnjc
mozcmo smatrati da se porukc sastoje od najvisc cetiri deJa. kao qo jc prikazano na
slici S-2S(bJ.
8.3 Sistcmi s vise procesora koji dele memoriju
Memorije

" Ell
g[Q22] Ell Ell Ell Ell
Ell Ell
[iOO]
/
Zatvorena
tacka
ukrstanja
(a)
Otvorena
tack a
ukrstanja
595
I
-
----------

/
(b)
Tacka ukrstanja

tvorena

J
/
(c)
Slika 8-27. (a) tJnakr,ni prekiJai' X. (b) Otvorena tai'ka ukrstanja. (c) Zatvorcna tacka
ukrstanja.
Poljc Afodu/ukazujc na memorijski modul koji se koristi. Adresa je adresa unutar
moduLt. Opkod ukazuje na opcraciju (npr. READ iii WRITE). Na kraju, opciono polje
Vrednost mo!c da sadrzi Ppcrand t npr. 32-bitnu rec za upisivanje operacijom WRITE).
Prekidac i,pituje polje !v/odul i punmcunjcga utvrLlujc da li poruku treba slati na izlaz
_y iii na iziaz Y

I tvlodul I Adresa I Opkod I
(a) (b)
Slika S-2S. (a! Prckidac 2 X:?.. (b) Fornwr porule.
Prd.idaci tipa 2 x 2 rnq.:u sc ra,porcditi na brojne naCine u tzv. visestepene komnta-
cione mrdc (engl. lllllilisruge sHit.-!Iing nerworks) . .!edna od moguL'nosti jc osnovna
omega mrda, ckonomske klasc. prikazana na slici 8-2lJ. U njoj se osam procesora
povczuje sa osam rnem01ija pomocu 12 prek.idaca. Opstije, za povezivanje 11 procesora
i 11 mcmorija treha nam logoll nivoa. sa n/2 prckidaca po nivou (stepenu) - ukupno
(n/2)]og211 prckidaca, S[O boJje ocln
2
lacaka UKrStanja, narocito za veliko II.
596
Pog;lavlje 8: Arhitekture paralelnih racunara
3 stepena (nivoa)
___
Procesori
Memorije
Slika S-29. Komutaciona mncga rnrcZa.
Ozicenje omega mre/.e cesto se ;:ove savrsena mesavina ( engl.J>I'Ijf>ct shuffle L ;:a to
sto mcsanje signala ll svakom stepenu odgovara prcsceanju i detaljnom mesanju spila
karata. Da bismo razumeli kako radi omega mreza, pretpostavimo da proccsor 0 ll .?.eli
da procita rec iz. mernorijskug rnodula II 0. Procesor prouku READ prckidacu I D
koji u polju 1Hmlul sadrzi broj 110. Prekidac uzima prvi (tj. krajnji levi) bit broja ItO i
k01isti ga z.a rutiranje. Ako je bit 0, porub se usmerava na gomji izla1., a ako jc I. na
dPnji. Posto jc ovaj bit I. p\1ruka ce kroz donji i.da1: biti upuc'cna prekidacu 20.
Svi prekidaci drugog stepena. ukljucujuci i 2D, za rutiranje kuriste drugi bit. On je.
takodc. 1. pa sc poruka prckn donjcg izlaza upucujc ka prckidacu JD. Sada se ispitujc
treci bit i otkriva sc da je on 0. Shodno tome, poruka odlazi na gurnji iz.laz i stizc u
memuriju II 0. kao stu i treba da bude. Putanja ove poruke na slici X-29utnacenaje slu-
vom a.
Kako sc poruka krecc kroz komutacionu mrezu, bilOVi s le\ og kra_ja brnja kPji
o.cnacava memorijski modul postepeno postaju suvisni. Oni se mogu dohro uposliti
da se pomocu njih na lieu mesta zabelezc ulazi u odgovarajuce prekidact: bko bi
go\'\Jr na puruku z.nao kuda da ide pri povratku. Za putanju u ula1.nc linijc su 0 (gurnji
ulaz u I 0). 1 (donji ulaz u 20) i I (donji ulaz u 30). Shouno tome. odgovor sc usme-
rava brojt:m 0 II koji se ovog puta cita zdesna ukvo.
lstovremcno dok se we nvo clcsava. proecsor 00 I .?.eli da upise rec u mernorij:;ki
modul 00 l. Tu se odvija ana logan proces: poruka sc usmcrava kroz gornji. gornji i
donji izhu (putanja b). Kada poruka 'itigne. unjcnom polju .Morlul nalazi _,e vreunPsl
00 l. broj koji predstavlja pn:denu putanju. Posto sc u ova dva zahteva ne koristc isti
prekidaci. vodovi i memorijski moduli. oni se mogu odvijati paralelrw.
Rcv.motrite sada bi se desilo kad bi procesor 000 istovremeno po7.elco da pristupi
memorijskom modulu CJOU. Njcguv zahtev bi dusao u sukob sa zahtcvom proccsora 00 I
u pogledu prekidc!Ca 3A. Jedan od n.Jih bi morao da saceka. Za razliku <Jd unctkrsnog
prekidaca, omega mrcza je hlokirajuca mreza. Ona ne moze isu,vrcmenu da prencse
svaki :.kup zahteva. tvlnze biti sukobljavanja zbog korisccnja voda ili prekidal'a. kau i
izmedu zahteva koji idu f..u memuriji i odguvora koji dnlaze od mcmmije.

II
Jj
IL__
8.3 Sistemi s vise procesora koji dele nwmoriju
597
Apsolutno je pozcljno da <;e menwrijske reference ravnomerno ra'podcle pu
lima. Uobicajenaje tehnika da se za brojeve modula iskoriste najmanje wacajni bitovi.
Razmotrite, na primer, adresni prostnr organizovan po bajtovima za racunar na kome
se najcdce pristupa 32--bitnim rccirna. Ova najmanje znacajna bita obicno L'e biti 00,
alice slcdeea tri bita biti ravnomerno raspodeljeni. Ako ta 3 bita isknristimo za broj
moclula. uzastopno adresirane reCi nalazice se u uzastopnim modulima. Za sistem
morije u komc se uzastopne reci nalaze u razlicitim moduli rna kaze se daje prcpleten
(engl. inrerlem'et/). Preplctene memorije maksirnalno podrza vaju paralel iz.am jer ..;e u
mcmoriji uglavnom pristupa uzastopnim adresama. l'vloguce je kon;;truisdti i
rajucu kmnutacionu mrt:Zu u kojoj. da bi se saobracaj ravnomernije ra:.porcdio.
medu svakog procesora i svakog mcmorijskog modula postoji vise putanja.
8.3.4 NUMA multiprocesori
Pretpostav ljamo da jc sad a jasno kako UMA multiprocesori s jcdinsl\ en om
:.tralum u osnovi ne mogu imati vise ocl nekuliko dcsetina pruccsora, ada je za mul-
tiprocesore sa unakrsnim prekidacirna i komutacionim mrt'Lama potrebno clmta
(skupog) hardvera l:ip ccna prevazila.ci dobitak. Da bi multiproccsor dubio vise od
100 proceo;ora. nc\tn treba znvovati. Obicno :.e 7.rtvujc princip cla svi mcmorijski
duli imajujeclnako vremc pri;;tupa. sto direktno vmli do koriscenja tzv. NUMA (Non-
Uniform !\lcmmy ,-\Lcess- neravnonJ<:ran pristup merunriji) multiprocesora. Slicno
njihovim L'!\!A srodnicima. oni ohcz.bc,duju.Jcdin..;t\Til adresni proslor z.a sve pmce-
sore. ali za od l'!\IA multiprucc'\Ura. Lod nJih se lokalnim memori.Jskim ll1ll-
duiima pristupa br/c llc'gl> udaljenilll. taj nacin cc :.vi ljj\[,\ prugrami bcz ikakvih
izmena radit1 na NU!\IA racun,trima. alice im pri i,tPm radn<"'lll taktu performan'e
biti lusi_je na Ui\lA raCun:lrima.
NU,\L-'1. mliltiprocc:,Pri imaju tri kljuc;-tc usnbinc po knjima ;;c razlikuju od svih
drugih multiproc.:snra:
I. Ptbtuii jedimt\en adrt'-;ni pmstor vidljiv S\ l!ll prul't'><Jr:ma.
2. ILCilii'riji ;;<: pri;;tupa pulthlCLI ilbtrukcija L0.4D i STORE.
::1. :nc!nuriji :)(' pr:\tL;pa :-.,pi)ri;c luka1ucj.
Kada ncmc' p:i,;tupnja ud,djenuJ nh:mmiji nije >krivenu jer nema kc:iiranja (engl.
N,, C ' sJ:.tcr;l '" m' e Kacb pchtuje kuh-:rcntni kescvi (engl.
izcrclli ( ). si.,tem se zove CC-NUt\1.-\ ( har LO\ Li hMdverasi). Softverasi
ga cest<l /l!Vll hanherski DSM _:cr jc to u usnu,i i:.to stn i :.nftvcrski distribuirana
ddjcna mLmunja Disir:iJli!<'<i Shurnl i\!t'I!Wr\ 1. ali hardverski
u;, nl;_llu strani(a.
1L'dan pn ih L ;'viA multiprucc:'< ,n ( k"ji jl\; ni_je dul>iu ime) bio je Cm' sa
uni1 je pri!,atar; na :,]icJ (Swan et al., 197/).
On :.c :.a:,tuj:t<' od skupa proce..;ora LSI-! I. ,,d Jc' imau n6to memorije
kojLI.JC adrcoiran prcku j,,blnc nragistr:dc. (LSl-!; jc u stvcJri DEC-uv II.
niracunar popularJn ,cdam,ksctib goJrna. itll
1
J!cmc:rnrra:r najcdnum cipu). Osim to-
siste.r;i L.Sl-11 su povcmni si,tcn;..;k:Hn magistuiLllll. Kada hi zahtcv



1
)'$.._._
598
Poglavlje 8: Arhitekture paralclnih racunara
upuccn mcmoriji stigao u (posebno podcsenu) MMU jedinicu, proveravano je da lise
trazena rec nalazi u lokalnoj memoriji. Ako je nalaz bio pozitivan, zahtev je upuCivan
lokalnom magistralom da bi se dobila rec. Ukoliko je utvrdeno da se rcc ne nalazi u
lokalnoj memoriji, zahtcv je usmeravan prcko sistcmske magistrale ka sistemu koji ju
jc sadrzao, a taj sistem jc odgovarao. Naravno, ovo drugo je trajalo mnogo duze ncgo
ono prvo. lako se program mogao izvrsavati iz uclaljene mcmorije, to je trajalo 10
puta cluzc ncgo kada se izvrsavao iz lokalne memorije.
Procesor Memorija Procesor Memorija Procesor Memorija Procesor Memorija
jedin1ca
Sistemska magistrala
Slika S-30. NUMA multiprocesor s magistralama u Llva nivoa. Cm* jc bill prvi ovako
projeldovan multiprocesur.
NC-NUMA multiprocesor garantuje kohercntnost mcmorije JCr ne postoji kcs.
Svaka mcnwrijska rec postoji samo na jednoj lokaciji, pa ncma opasnosti da negdc
zaostanu zastareli podaci: kopijc nc postoje. Naravno, sada postaje veoma vazno gdc
se koja memorijska stranica nalazi jcr sc za pogrcsno mesto placa visoka cena u per-
fonnansama. Zhog toga, da bi maksimirali pcrformansc. NC-Nlfi\L\ multiprocesori
koristc slozcn softver za razmestanje memorijskih stranica.
Najcdce postoji sistemski proccs (engl. daemon process), zvan skener stranka
(engl. page scanner), koji se pokrec'e svakih nekoliko sekundi. Njcgova uloga je da
anali;:ira statistiku kmisc'enja i da stranice premdta u nadi da ce puboljsati perfor-
mansc. Ako se pokaze da je neka stranica na pogresnom me>tu. skcner ponistava
njeno preslikavanje tako da slcdec'a rcferenca upucena na isto mcqo izaziva gresku
straniccnja. Tada se clonosi odluka gcle cla sc postavi trazcna stranica, mozda u neki
clrugi rncmonjskj modul. Da bi se izbeglo ,trdiranje" menjanje stranica), obic-
no je na snazi pravilo koje kaze dajednom postavljena stranica na tom mcstu mora da
ostane harem tokom perioda DT Proucavani su hrojni algoritmi, a zakljucak je da ni-
jcdan od njih nije optimalan u svirn okolnostima (LaRowe i Ellis, 199! ).
NUMA multiprocesori s kohcrentnim kcsom
Multiprocesori napravljeni prema semi sa slike 8-]0 nisu najpogodniji za uvcca-
vanje zato sto ncmaju kd. Ako sc svaki put kada se lokalno ne pronack rec mora iCi
u udaljenu mernoriju, to znatno uticc na performanse. ]'vledutim. ukoliko se uvedc
kdiranjc, tada kesevi rnoraju biti kohercntni. Koherentnost se moze obCLbediti ako
kdcvi osluskuju sistemsku magistralu. To se tehnicki moze lako ostvariti. ali postaje
8.3 Sistemi s vise procesora koji dele memoriju 599
nerdivo kada broj procesora prcde odrcdenu granicu. Prema tome, da bi se naprav1o
stvarno veliki multiprocesor, potreban je iz osnova drugaciji pristup.
Trenutno najpopularniji pristup ppravljenju velikih CC-NUMA multiprocesora
jeste koncept multiprocesora s katalugom (engl. directory-based multiprocessor).
Osnovna zamisao je da sc oclrzava baza podataka s lokacijama svih redova kesa i nji-
hovim statusom. Kada se referencira red kesa, prelrazuje sc baza cla bi se utvrdilo gde
se red nalazi ida li je cist iii prljav (izmcnjen). Postu se baza mora prctrazivati pri svl-
koj instrukciji koja referencira memoriju, ona se mora cuvati u izuzetno brzom, 11:1-
menskom hardveru koji reaguje u delic'u ciklusa magistrale.
Da bismo boljc razumcli koncept multiprocesora s katalogom, razmotrimo slede5i
jednostavan (hipoteticki) primer: sistem sa 256 cvorova, u kome sc svaki cvor sastcji
od jcdnog proccsora i 16MB memorije povezane s procesorom prcko lokalnc magi-
strate. Ukupna memorija od 2
32
hajta pocleljcna jc u 2
26
redova kesa od po 64 bajt:.t.
l'vlemorija je staticki rasporeltena iz.meuu cvorova, sa adresama O-l6M u cvoru 'J,
16M--32M u cvoru I itd. Cvorovi su mcdusobno povezani intemom rnre:l:om, kao na
slici R-] l(a). lnterna mre/.a mo/e cia bude tipa rdetke, hiperkocke ili neke drugc to-
polugijc. Svaki cvor cuva i odrednicc kataloga za 2
18
redova kda od po 64 bajta, so
ukupno iznosi 2
24
bajta mcmorijc. Za trenutak cemo pretpostaviti da se red mote
nalaziti najvise u jed nom kdu.
Cvor 0 Cvor 1
Memor1)a
LokC!Ina mag1strala
lnterna mreZa
(a)
BttOVI 8 18 6
I Cvor I Blok IRastD]on[el
(b)
Cvor255
Procesor Memonja
2'
8
1J 1 J
4
3
2
0
0
0
1
0
0
82
i
(c)
Stika 8-Jl. (a) btalt>gum i 2.'\h cvorova. (b) Podcla 32-hitnc mcmurij,kc
aJrcsc ll:l pulja. (C) Katalog ll cvoru J(r.
,,.'
'_, ..
,";'
:X'
600
Poglavljc 8: Arhitekture paralelnih racunara
Da bismo videli kako radi katalog, pratimo instrukciju LOAD procesora 20 koja rc-
ferencira red kesa. Procesor koji izdaje instrukciju prvo je predaje svojoj MMU jedi-
nici. koja refcrencu prevodi u fizicku adresu (rccimo, Ox24000 I 08). MMU jcdinica
deli adresu na tri del a. kao na slici 8-31 (b). U decimalnom brojcanom sistemu, tri del a
su cvor 36, red 4 i rastojanje 8. MMU jedinica vidi da sc rcfercncirana rec nalazi u
cvoru 36, a ne u cvoru 20. pa kroz intenlll mrdu salje poruku maticnom cvoru reda
(cvoru 36), pitajuci gada li je njegov red 4 kdiran i, ako jeste. gdc se nalazi.
Kada cvoru 36 stigne zahtev preko interne mrde, on se upucuje hardveru katalo-
ga. Hardver pretrazuje indeks svoje tabele sa 2
1
X odrednica (po jedne za svaki red
kda). i uzima odrcdnicu 4. Na slici 8-31 (c) vidimo dared nije kdiran, tako cia hard-
ver prcuzima red 4 iz lokalne memorije RAM-a, saljc ga cvoru 20 i u katalogu azurira
odrednicu 4 oznacavajuci cia je taj red sad kcsiran u cvoru 20.
Razmotrimo sada drugi zahtcv kuji se ovog puta odnosi na red 2 cvora 36. Na slici
8-31 (c) vidimo da je taj red kdiran u cvoru 82. u ovom trenutku hanlver muzc da
azurira odrednicu 2 kataloga da je taj red sada u cvoru 20 i da posalje
poruku cvoru 82 nala/.uci mu da prosledi red cvoru 20 i da njegov kes oznaci ne-
vazecim. Obratite paznju nato da se cak i kocl .. multiprocesora s deljenom memori-
jom" iza scene razmenjuje dosta poruka.
lzracunajmo usput na brzinu koliko rnemorije 7au7imaju katalozi. Svaki cvor ima
16MB memorije i 2
1
X udreclnica ocl po 9 bitova koje registruju sta se dogada unjoj.
Prema tome, katalog t.au/.ima oko Y x 2
1
X bitova iii u poredenju sa 16 :\I B- oko I .76
proccnata. sto je u principu prihvatljivo (macla to mora da bmle brza, pa samim tim
skupa memorip). ('ak i uz 32-bajtnc reduve kcsa. katalog ne zauzirna vise ocl 4 pro-
centa memorije. Uz 128-bajtne redove kda, to bi palo ispml I prncenta.
Ocig:Jedno ogranicenje ovak ve seme jeste to se red mule kdirati samo u Jed nom
cvoru. Radovi bi se mogli kesirati u vise cvorova kada bismo imali ncki nacin da ih ;,ve
]ociramo. da bismo ih, na primer. progJasiJi l1t'Vazecim iJi azuriraJi pri upi;,ivanJU.
Posl(ljt' raJ:ni nacini za omuguc'avanJe istovremenug: kdiranja u vise cvorcwa.
Jedna od mogucnosti je da se svaka odrednica kataloga dnpuni sa k pulja 1.a Ll/In-
cavanje drugih cvorova. tako da svaki red mo/.e da se kesira u najvisL k l'vuruva. Dru-
ga mugucnost jt.: da se broj cvora u nasoj jednostavnoj semi zameni rnapum bituva.
s Jednim bitom po cvoru. Ovde nije ogranicen hroj knpija, ali ;auzLce mernorije
postaje 7.nacajno. Katalog s dodatnih 256 bitova /.a svaki 64-hajtni [5 I 2 bitov a) red
kesa zauzcce dodatnih 50 procenata memorije. Tree' a mogul'nost je da se u s vaknJ
odrcdnici kataluga jedno 8-bitno polje upolrcbi k:tP pocetak liste kuja povezujc sve
kopiJC reda Za ovu stratcgiju potrcbno je cia c;e u svakom cvmu obabedi dodat-
na memorija za pokazivace povc/.ane lisle, a i da o-c pnvc;ana lista prati kaku bi se
pronasle sve kopije kada je to potrcbno. Svaka od navedenih mngucnu:.;ti irna :,voje
prednosti i mane i svaka je koriscena u n:alnim ;;istemima.
.los jedno poboljsanje seme s katalogom posti?e se ako sc prati cia li jc red kcs;r (iq
(maticna mcmorijaje azurna) iii prljav ( maticna memorija nijc a/urirana \. Alo zahtcv
za citanje Stignc /.a cist red kesa. lllaticni C\'()1' 1110/.e da t.adovo\ji /.ahtcv iz i:lCJTiurijc,
ne proslcdujuci ga ke;u. Zahtev za citanje prljavog: reda kcsa. medutim. mPra da budL'
upuc'cn cvoru koji cuva red jer samo on ima njegovu ispravnu kopiju. Akn se
S.J Sistemi s vise procesora knji dele memmiju 601
dozvoljava samo kopija u jeclnom kdu, kao na slici 8-31. onda vudenje rae una o ci-
stoc'i reda gubi smisao jer se pri svakom novom zahtevu mora poslati poruka pmto-
jel'oj kopiji da bi sc on a oznaci Ia nevazccom.
Vodenje rae una 0 tome da li Sll redo vi kda cisti iii prljavi podrazumeva
vanjc maticnog cvora u slucajevima kada se odrcdeni red menja, cak i kada posroji
kopija samo u jcclnom kdu. Ako postoji vise kopija, kada se promeni jcdna. ostalc se
moraju proglasiti nevazecim, pa trcba cia postoji protokol koji l'e spreciti c;tanjc utrki-
vanja. Na primer, kada jedan od uccsnika zeli cia izmeni deljeni red kesa. mugac hi
traziti iskijuciv pristup tom reclu pre nego sto ga iz.mcni. Takav L.ahtcv hi
vao prcstanak va/enja svih drugih kopija pre izdavanja dm:vole za pristup. Ostale Iil<J-
gul'nosti optimizacije CC-NU;\11:\ procesora nac'i cete kod Stcnstroma et al. ( J.
NlJMA multiproccsor Sun Fire E25K korpnracijc Sun
Kao primer NUMi\ rmrltiprocesora s dcljenom memorijum. poglcdajmo porodicu
nrultiprocesora Sun Fire koqJPracije Sun Microsystems. Iako postojc razliciti modeli,
mi c'emo se ograniciti na model E25K sa 72 procesmska cipa UltraSPARC JV. Jedan
UltraSP;\RC JV u stv;tri jc par procec;ora UltraSP.'\RC Ill Cu sa ;ajcdnickirn kc;orn i
;,ajedniCkllm mcmm0()[n. El.'iK jc isti sistcm, s tim ;w ima cipuvc s pujedinacnim
procesorirna, umesto s njilwvirn parovima. Poswje i clanovi uve pun.-dice s manjim
brojem pn,ccsura, ali nam jc u ovom trcnutku cilj da objasnimu kako radi multirro-
cesor koji ih ima najvise.
Sistem E25K irnad(' IX kntnj>lcta kartica. pri ccmu sc svaki kumpkt sastuji od pro-
ctsursko-memorijsle karticc. ulanw-i1bzne karticc sa cctiri PCI prikljucb i sp\jne
brtice koja sluzi da ohe pnl-.ljuCi na cc:nttJJnu piPcu u k'l.JOj -;e naia;.i prekidacka ln-
;c:ika. Svab pruccsorskP-illC!llOI'ij'.b kartica sadr/.i cctiri proccsor;.ka cipa i cetiri me-
morijska mr-dula nJ PL' X GB. Prema tome. '>\aka proce-;orc;k<J-menwrij,ka kartiu. na
sistcmu E25K ima o;,am proccsma i 32 CiB mcmmije (cetiri prL;Cc,ura i cetiri mm.ula
po 32GB mcmorijc si;;tcrnu Sistem E25K tak,, ';adr/i l-1-1 proccsora. 576
GB n:ell1L'rijc i 72 PC! Onje priLJ;,mna s!ici X-'2. Lmin:ljivoje dajc broJ
I:-\ itabran ;bug ograniCenja u pakl'\ ar:_!ll bnica: ;,io-tcm sa 16 kurnpleta kartica ll<lj-
\Cci je :>i:,fCill k1Jji UjediJOill kunudu Il1<'-'.e da ['f\\JC knv kuc'na vr:tta. !)ok programeri
r:,;mi;Jj:0u samo <l nulama i in/c:njcri rnoraju d,t brit:u i o tome kako ce nji-
hovi uneti racunar u Lgretdu.
Cc:ntraln:t piuCa c;adr/i tri .skl<;'a unakrsnih 1 :( IS ;;t povczivanjc 18
k,mlplcta kJrtica . .lccLlll unakr,ni prckida( JC za adrec.iranjc', t.a ndg:ovaranjc. a
lrel'i La prcll<J'i podataka. Osim I:.; ,;pojruh kartica. u ccnlralnu ploCujc utaknul i knm-
plct Ltnica za upra1 ljatljc sto-ren;L'ill. O"aJ kompkt imaJcdan pncc")r, alii intcrkjse
b CD urc:cbjnna i o.nirkim i paikrij,J:im urcdajima po-
;.a P"krc:!an.:e i odr!aanie sio-LC!ll,l. kan i upravljanjc .
Sr2 sv..tkog rnliltiproccsnra jl' njcgc)\, Kaku 144 proccsora
f'O\ezuje s distribuiranurn menhnijnm' OprobancJ (velil.:ct ckljcna magistrala
za pnsluskivanje iii un,tl ... Nli prckidac l +-1 x 72) ovdc nio-u duhra. :Vlagistrala puo-Laje
usku grlo. a pL!trL'ilfl<':OC se pra\e i sl--upi <tt. Ltko vdiki mul-
l: procl'suri kao ;tn je E25 K moraj u da kuriste sluzc:n ij i puds1 '>fCtn lPc'lllLirijc.
):




c
H
;.;
;l
tf,

i'

t
11-_
I',
-
602
' PCI prikljucak
Poglavlje 8: Arhitekture paralclnih racunara
Komplet kartica
_ za upravljanje sistemom
if


( I
I
II
,, I
I

}

kartica
Slika S-32. 1\!lultiproccsor E25K korpnracijc Sun 1\!licrosystcms.
Na nivou komplcta kartica koristi se iogika za prisluskivanjc. pa svi lokaini procc-
sori tnllgu da provcravaju sve zahtcve koje kompkti k.artica upuc'uju memoriji za blo-
kovc koji su vee' kcsirani. Na taj nacin. kada proccsor zatrazi ree iz memorije, on prvo
virtucinu adrcsu iz z.ahtcva prcvodi u lizil'ku. a zatim proverava sopstvcni kes. (Fizickc
adrese su duzine -Ll ali ograniccnp pri pakovanju svodc memoriju na 576GB.)
Ako sc tra/.cni bluk kcsa nalali u njcgovom sopst YC!Hllll kt:Su, procesor dobija rec. u
suprotnPm. iogika za pris!uskivanje provcrava da li sc rec mozda nalazi negde drugde
u komplctu. A ku jc lU prunade. na zahtev <.:c odgovara. Kad se ne nade. zahtev se pro-
sleduje prcko unakrsnog prckiuaca 18 x 18 za adresiranje, kao sto ccrno opisati u na-
stavku. Logika .w nw/.c da prisluskuje jednom u svakom sistemskom
ciklusu. R.adni takt inMucestalust ud i50 i\11-lz. pa se pu kornpietu kartica moze obaviti
i50 pri:-;luskiv:mp u sekundi iii 2.7 milijardi u sekundi u celom sistemu.
lako je iogi ka za usk.i vanjc iugid.i magistraiom na slici 8-32, on a fi-
zicki pn:dstavl.p stabio UITLtaja s komandama koje se prenosc uza stahlo i niz njega.
Kada pmcestlf ili PC! pioca zadaju adresu. ona preko ve"c od tacke do tacke ide do re-
petitora adresa. kau na :'iici X-33. D\ a repetitora adresa sul'eljavaju sc na spojnoj kar-
tici. oJaklc se adresc ;aiju niza stablo da bi ih .svaki urectaj mogao provcriti. Ovakvorn
ScnHJI11 sc i;.hega\'a n1agi"rra!a koja bi angaiuvala tri karticc.
Za poJataka kurist;: se vue na cctiri nivoa, kao sto jc prikazano na siici
S-.\.i. Takva izabrana 1.hog pustizanp visukih perforrnansi. Na nivou 0 nalaze
sc parmi prucesmskih cir'o>a i memc,rija pmezani malim unakrsnim prekidacem
koJi ima 1 vczu ka ni vnu l. Dve grupe prucesursko-memorijskih clcmenata povczane
!!.3 Sistemi s vise procesora koji dele memoriju 603
sus nivoorn 1 pomocu drugog unakrsnog prekidaca. Unakrsni prekidaci su namenski
ASIC cipovi. Njihovi ulazi su rasporcdeni i po redovima i po kolonama, rnada sene
koriste sve kombinacijc (cak sve nemaju ni smisla). Sva prekidacka logika na karti-
cama napravljena je od unakrsnih prekidaca 3 x 3.
Svaki komplet kartica ima tri karticc: procesorsko-memorijsku karticu, ulazno-iz-
laznu karticu i spojnu karticu koja povezuje prethodnc dve. Mecluveze nivoa 2 su u
obiiku jos jednog unakrsnog prekidaca 3 x 3 (na spojnoj kartici) koji povezuje aktu-
elnu memoriju sa ulazno-izlaznim prikljuccima (koji se preslikavaju u memoriju na
svim UltraSPARC procesorima). Svi podaci koji doiaze na komplet kartica iii odiaze
s njega, bilo u memoriju iii na uiazno-izlazne prikljucke, prolazc kroz prekidac nivoa
2. Na kraju, podaci koji sc saij.u udaljenoj kartici iii doiazc s nje propustaju se kroz
unakrsni prekidac za podatkc 18 x IS na nivou 3. Podaci sc prenose po 32 bajta isto-
vremeno, tako da su potrebna dva sistemska cikiusa za prenosenje uobicajene prcr.ll-
sne jcdinice od 64 bajta.
CJ
0
3
(J)

Nivo 3
Nivc 1
N
::J
'?
N
w
'::II
N!VC 0

Slika S-33. Sun fire E2:'iK ima unutrasnjc vc1e na cetiri nivoa. lsprek1dano su oLnaccnc putanje
adrcsa. Pune linijc su pulanje poJataka.
Posto smo saglcdali kako su razmt:Stcne komponcnte, obratimo pa;;.nju na ad
deijcne memorije. U samoj osnovi, 576GB memorije podcljeno jc na 2
29
biokova od
po 64 bajta. B iokovi su elementarnc ( atomskc) jedinice sistema memorije. S vaki bluk
ima maticnu karticu na kojoj bora vi kada sene koristi na nckom drugom mestu. Vcci-
na biokova najveci dco vrcmcna provodi na svnjim maticnim karticama. Mcdutun.
kada procesoru zatreba hlok memorije, b!lo s njegove licne karticc iii s jedne od 17
udaljenih. on prvo trazi kopiju za sopstveni kd, pa onda pristupa kdiranoj kopiji.
Iako svaki proccsmski cip na muitiprucesoru E25K sadrzi elva proccsora. oni dele isti
fizil'ki kes (dakle, i sve blokove kuji su u njemu).


- :;
'>
i$

it
i .. '.,.



.; '\1
..
:5:f
i" ..
!!'!!
!!',



'
604
Poglavlje S: Arhitcktu1e paralelnih racunara
Svaki mernorijski blok i red kesa svakog proce,orskog cipa mugu biti u jednom od
tri 'tanja:
I. TskUuciv pristup (za upisivanje).
2. Deljeni pristup (za citanje).
3. Nevazece (tj. prazno).
Kada proce'or treha da procita iii da upise mcmorijsku rec, on prvo proverava
sopstveni Ako rcc ne naL1e u njemu, on upucuje lokalni zahtev svim 11
okviru svog kumpleta kartica i lra/.i lizil-ku adresu. llkuliko kd na kompktu kartica
ima trazcni red, logika 1.a prisluskivanje utvrdujc da je kd pngoden i na
zahtev. Kad je red u stanju iskl.Jul'ivog pristupa za upisivanjc, njegova kopija -.;c pre-
nosi, a original sc m:nacava kao nevazcci. Ako jc u Jcljenom za citanjc, nc
odgovara jer memorija uvck odgovara kada jc red cist.
Ako logika z.a ne mtYLC da pmnadc red kcsa iii un postoji. ali je
deljcn. ona z.ahtcv saljc prcko centralnc pluce maticnoj kartici pitajuci gdc sc nalazi
tral:eni blok. StanJc svakog mcm<'rijs!mg hloka cuva sc u FCC bituvima bltl\._a. pa ma-
ticna \._artica mole odmah Ja utvrdi nJcgovo Aku blok nijc deljcn iii jt' dcljen
izmcdu jcdnc il i vise udaljen i h \._artica. mat iCna nll.:nwrija Ct' biti i na zahtcv 'e
muzc odgD\:oriti i1 lllc'llhJrije matiCne kartic:c.:. U ov<lm ;,luCaju kupija rcda salje se
prcko unakrsnog prckidab ;.a pudatkc dva -;i.';tcmska cikluo,a i konacnu .,tize do pro-
cesora kuji jc uputiu ?ahtcv.
Ako jc ...:ahtcvano citanjc, u direkll,rijumu na nwticnoj kartici unusi sL odrcdnica
s u;.na\._um da l1<lV .. korisni\._"' lkli red kcsa i sc f\lcdtttim. akuje
z;thtcvano upisi 1 anje. puruka '' prc:;tanku v a/cnja mor:1 se pu,Ltti sv im datgim karti-
cama (ukultkD P"'I"-JC! kDic imaju njcg<lvu koriJII. ovaj na(in, kartica.., koje pu-
tice zahtcv ;:a upi-;ivanjc jcdina kraju \._upiju rcda.
Razmotrimu -,;tda LtditJC tailtcvani lJj,,k u rl:'/:n111 i,kijitCivog za
upisivanjc dru.:;('.i kartici. KaJa rnat:Cna kaniLa doh!j'-' zahtcv. ona u
torijunlu tr;t/i iuka .. :Ju ttdaljcne kartice i /.,thlel \;tije pcll'!tku mu
gde se red kc;a. ZahtcvaLtt sada \aije ;r:thtev pra','lll1 kumpL:Ui kanica. Kad
t.ahtcv stignc. \._a;tic;l tra/eni red. !\kt' JC u :.ahkv ;a citanjc. rc:d se ozna-
Ka() lki:cn I ll)'t'OI d kupija .'C mati::Jiclj karcici. lJk,,jiku SC radi 0 zahtCVU
/CI upi,iv;tnjl'. ncq ku Pdgov;tra tl/na.::tva nc\a/ccom S<lp:-,lvenu kupiJU tako da za-
iltcvalac j'tlilajc v :;t'>nik jcdtnc :..upijc.
svakCJ ktrtt,:a lllta :
2
'
1
11\t:liHJri.J:ikili L+>LU'ia. u tui:lql>\oljnijcm -;lucaju ka-
tai<Jg koji u njiliu irdn da 'dJdi ima,'c: 2.'! p,,.\to .JC btalog mnngo
,,J t,,gct, ii1P/.c :;c: ch:-,iti cb pcnckad u njc,nu nc hude mc'>Ia (Dn :;c a:-.ociptivno
deli) Za nckc Odtcdiil<.'C. [: l()!ll ;ju(;:ju lllclllCill Ka!alug trcha da pronadc blllk saljuci
:tahtev ka -..\ ih J7 kart1La. t:nakrsn: p;ckid,lC za tada i_:;ra ulogu
u dJr'/avanju i u prlllnku!u ;a tako Stn c1braduje ve-
liki dco pm ratnug \Clohr;lL'a:a k11 posilj:J\JCU "" ;:r.:dvidcn protokolom
lL:I J., c nt.t:;i .trak t. La aJrc:-;irailjc i l\'antnjc ). pcH1a..:i treCorn. po-
\z.Ca\i!l .')C
8.3 Sistemi s vise prot:csora koji dele memol"iju 605
RaspodeljujuCi opterccenjc na vise urcdaja na razliCitim karticama, Sun Fire E25K
moze da postigne vcoma visoke performansc. Osim 2.7 milijardi prisluskivanja use-
kundi, centralna plllca moze da ohradi do dcvet istovremenih prenosa, pri cemu dewt
kartica salje. a devet kat1ica prima podatke. Buduci daje unakrsni prekidac za podatke
sitine 32 bajta, u svakom sistcmskom ciklusu kroz centralnu plocumol:e sc prcncti 288
hajtova. Pri taktu od 150 MHz, postize se vrsni ukupni propusni opseg od 40 GB/;,
kada se iskljucivo pristupa udaljenim karticama. Ako softvcr moze da razmesti stran-
ce na takav nacin da pristupanja vccinom budu lokalna, propusni opseg sistema mo2e
porasti znatno iznad 40 GB/s.
Vise tehniCkih informacija o Sunovim multiproccsorima Fire nac'i cete kod Char-
lcswortha (2002) i Charleswortha (200 l)
8.3.5 COMA multiprocesori
NUMA i CC-NUMA multiprocesori imaju manu sto sc udaljena mcmorija refe-
rencira mnogo sporije od lokalne. U sistemima s multiprocesorima CC-NUMA, ov1j
nedostatakje u izvesnoj meri skriven kcsiranjcm. Bez ob;.ira nato, ako kolicina traze-
nih udaljenih pndataka umnogomc nadmasuje kapacitet kcsa, promasaji kcsa ce &c
redati jedan za drugim i perfurmansc cc biti lose.
Taku imamo situaciju da UMA multiproccsori imaju udlicne perfurmanse, ali i11
je velicina ograniccna i priliCnu su skupi. NC-NUMA multiprocesuri mogu da sc vile
uvecavaju, ali sc kod njih stranice moraju razmt'Stati rucno iii puluautornatski, sto
sto daje promenljive rezultate. Problem jc to sto je tesko prcdvidcti koja ce strana u
kmn trcnutku biti potrcbna, a stranica nikada nije mala kada1e treba premcstati.
-NUMA multiproccsori, kao sto jc Sun Fire E25K, mugu da ispolje performame
ako istovremeno mnogo proce:;ora tra7.i udaljene podatkc. Svc u svcmu, svaka od m-
vedenih sema ima ozbiljna ugranicenja.
PomtJL'u jedne altemativnc vrste multiprocesora pokusava se da se prcvaziLlu ovi
probkmi tako sto se glavna mcmorip svakog proecsora upotrebljava kao kd. U ovCJj
semi, zvanoj COMA (Cache Only l'vlcmory Access- samo prist up kdu). stranice
maju liksnc maticne procesore, kao kod NUMA i CC-NUMA multiproccsora. One, u
stvari. potpuno gube /.nacaJ.
Ovde je ceo 11zicki prostor adn:sa podeljen u rcdove kda koji se po potrebi krecu
sistemom. Blokovi ncmaju svuje maticne prucesore vee im jc- kao nomadima- dum
tamu gdc sc trcnutnu nala;:e. Memorija kuja ,privlaci" rcdovc samo onda kada su pcl-
trcbni zovc se atrakciona memorija (engl. attraction mel/lorY). Kada se glavna
morija kmisti kao veliki kes, umnogome se puvecava broj pugodaka ke:ia, sto znm."i
da su pcrformanse bolje.
Nazalost, nikada nije sve savrscno onako kao sto izgleda. COMA sistcmi donmc
dva nova problema:
I. Kako se pronaL11.e linije kdaJ
2. Kada ,e red izbri;::c: iz memorije, sta sc desava ako je to bila njegova pusk-
dnp koptja
1

'?.!'
':!



".1


::.
606 Poglavljc 8: Arhitckturc paralelnih racunara
Prvi problem sc odnosi na sledcee: posto MMU jedinica prevede virtuelnu adresu u
tizicku, dati red sene nade u pravom hardverskom kesu, tada nije lako odgovoriti na pi-
tanjc da li se on uopste nalazi u glavnoj memoriji. Hardver za stranicenje ovde uopste
ne pomaze jer se svaka stranica sastoji od brojnih pojedinacnih redova kcsa koji lutaju
unaokolo. Stavisc, cak i kada sc zna da reel nije u glavnoj memoriji, gdc se on onda nala-
zi? Ne da uputimo pitanjc maticnom procesorujer on ne postoji.
Predlo/.ena su neka rcsenja za problem pronalazcnja reda. Da bi se 'aLnalu da li sc
red kcsa nalazi u glavnoj memoriji. moiese dodati nov hardvcr koji ec voditi racuna
o oznakama svakog ke.<iranog recla. MMU jcdinica tacla muze da uporcdi oznaku
trazcnog reda sa oznakama svih redova kesiranih u memoriji i da tako utvrdi evcn-
tualni pogodak. Za ovakvo rescnje potreban jc dodatni hardver.
Ncsto je drugacije rdenjc za kojc je neophodno preslikavanje celih stranica, aline
taku da unjima budu svi redo vi kcsa. Prcma ovom rt:Scnju, hardver treba cla ima mapu
bitova za svaku stranicu, u kojoj ec po jedan bit oznaeavati da li jc red tu ili nijc. U
uvoj zvanoj jcdnostavna COMA, ako red kesa postoji, on sc mora nalaziti na
ispravnom mestu na svojoj stranici. ali ako ne postuji. a refcrcncira se, program upacla
u klopku. pri ccmu sc tra/.eni red pronalazi softverski i preslikava.
Na taj nacinjavlja se potrcba za redova koji su stvarno udaljeni. Jed-
no od rdenpje da wa"oi straniei pridru/.i maticni pwcesur, tj. da se zna gde se nala-
zi njc'na odrednica kataloga. ali ne i gdc sc nalaze njeni podaci. Tada se maticnom
pn1cesoru moze poslati poruka da hi sc red kt:Sa bar prona;ao. Druge seme organizuju
memorijuu stablo 1\oje sc prctrazuje u uzLunom smeru svc dok sene pronade red kcsa.
Drugi problem na prethodnom hatkom spisku udnosiu se na (ne)brisanjc posle-
dnjc kupije. Kao kod CC-NUMA multiproccsora, i uvde sc red kesa mozc istovreme-
no nalaziti u Kada se kes rcu semora prcuzeti, sto obicno znaci
da se ncki drugi red mora udhaciti. Sta sc de;ava ako red koji je izabran za odbaci-
vanje prcdstavlja poslednju kopiju te vrstc"' U takvom slucaju on sene moze odbaciti.
Jed no rescnjc je vncanjc katalogu i provcravanje da li postoji jus ncka kopija.l\ko
1-;npija postoji. red se bc/bcdno moze odbaciti. U suprotnom, on semora premestiti
neg de drugdc. Drugn predvida da Sc' jedna kopija wakog reda oznaci kao
glavna i da se ona nikada ne odbacujc. Na taj nacin sc ne mora proveravati katalog.
Sve u svcmu. CO.\L\ tnultiprocesori obeeavaju bolje performanse nego sema CC-
NLJMA. ali jc do sada napravljcno malo CO :VI;\ rnultiprocesora. pa treba sacekati da
se nagnmila is!-..ttsiVtl. Prva dva COJ'viA racunara su hili KSR-1 (Burkhardt eta!.,
llJ'J:2J i Data Dillusiun \lachine (Hagcrsten ct a!.. Jl)<J2J. Noviji takav racunar je
SDAARC (EsLhmann ct a!., 2(){)2).
8.4 MULTIR.\(:UNARI ZASNOVANI NA RAZMENI
Kao stu snhJ vi deli na ,Jici i\-21, dve vrste paraleln!lJ i\TII'viD procesnra jesu mul-
tiproccs<Jri i multiracunari. U prethodnom odc:ljktt pruucavali smo multiprocesore.
\'ideli snw Lia "' oni opnativnom -;istemu prikazuju kao da imaju dcljcnu memoriju
kujoj .sc pristupati uobicajenim istrukcijama LOAD i STORE. Deljena memorija
Multiracunari zasnovani na razmeni
607
se, kao sto smo videli, muze realizovati na razlicite nacine, pomoeu magistrala za
prisluskivanje. unakrsnih prekidaca za podatke, visestepenih komutacionih mrda i
pomoeu ratJicitih scma u kojima se koriste katalozi. Bez obzira nato, programi pisani
za multiprocesor mogu da pristupaju lokacijama u mernoriji, ada nista ne znaju o nje-
noj internoj topologiji ili semi implementacije. Ta iluzija je 0110 zbog cega Sll multi-
procesori privlacni i zbog cega prograrneri toliko vole ovaj model programiranja.
S druge strane, i multiprocesori imaju ogranicenja, pa znacaj clobijaju multiracu-
nari. Prvo i najvaznije, multiprocesori sene mogu mnogo uvccavati. Vee smo videli
koju je neverovatnu kolicinu hard vera korporacija Sun morala da upotrebi da bi svoj
multiprocesor E25K ,dotcrala" do cifre od 72 proccsora. Nasuprot ovome, u nastavku
cemo govoriti o multiracunaru s,a 65.536 procesora. Proc'i ce godine pre nego sto neko
uspc cia napravi komercijalni multiprocesor sa 65.536 cvorova, a tacla ee vee multi-
racunari s milion cvorova biti uobicajeni.
Osim toga. takmiccnje za memoriju kod multiprocesora moze da znatno oslahi
performansc. Ako istovrcmeno I 00 procesora stalno zclc da citaju i menjaju iste pro-
menljivc, sukobljavanja oko razlicitih memorija, magistrala i kataloga neizostavno
izazivaju ozbiljan pad performansi.
Posledica ovakvog stanja, kao i drugih cinilaca, jeste veliki porast zanimanja za
para!clnc racunarc kod kojih svaki procesor ima sopstvenu privatnu memoriju, kojoj
direktno ne moze da pristupi nijedan drugi procesor. To su tzv. multiracunari. Pro-
grami koje izvrsavaju procesori multiracunara mcctusobno saraduju preko osnovnih
metoda za razmenu poruka. kao sto su send i receive, zato sto ne mogu da pristupaju
tudim mcmorijama pomoeu instrukcija LOAD i STORE. Ova razlika potpuno menja
model programiranja.
Svaki cvor multiracunara sadrzijeclan iii nekoliko proccsora. nesto memmije (koja
se deli samo unutar tog cvora), disk i(ili) druge ulazno-izlazne uredaje i procesor za
komuniciranje. Svi komunikacioni procesori medusobno su povezani internom mre-
L:om vclike brzine- o njenom tipu smo govorili u odeljku 8.1.2. Koriste se brojne to-
pologije. prekidacke sernc i algoritrni za rutiranjc. Multiracunarima je zajednicko to
sto u trenutku kada korisnicki program izvrsi osnovnu mctodu send. komunikacioni
procesor to saznajc i odmah prenosi blok korisnickih podataka oclrcdisnom racunaru
(mozda, nakon sto za to zatrazi i dobije clozvolu ). Opsta sema multiracunara prikaza-
na je na slici 8-34.
8.4.1 Mre:le za interno povezivanjc komponcnata multiracunara
Na slici 8-3c.J. videli smo da sc pojedinacni racunari multiracunara drze na okupu
pomoeu interne mre/.e. Sadaje trenutak da tc interne mrde za povezivanje dctaljnije
proucimo. Zanimljivo je da su u ovom pogledu rnultiprocesori i multiracunari iznena-
dujuee slicni jer multiprocesori cesto imaju vise mcn10rijskih modula koji takodc mo-
raju hiti povezani mcdusobno i s prucesorima. Na taj naCin se onu stu govorimo u
ovom odeljku cesto mozc primcnitii na jedan i na drugi sistem.
"
.,.
(
'
!"
'

!
1
I'
..
[j
608
Procesor
Komunikacioni
procesor
Poglavljc S: Arhitckturc paralclnih racunara
Memorija
Cvor
lnterna mreza visokih periormansi
Stika S-J-1. ;coma multiral'unara.
Fundamcntalna slicnost intcrnih mrc:l.a multiproccsora i multiracunara ldi u cinjc-
nici da sc na samom njihovont dnu i ujcdntm i u drugim si.stcmima koristi mchanizam
proslcoi vanja poruka. C'ak i bda procesor u racunaru sa Scllll<l jcdnim procc:surom ieli
da procita iii da upise rec, on mora da aktivira odredcne vmlove magistr:Jic ida ceka
odgovl>L Ova operacija lici na razmcnu puruka: inicijator salje tahtcv i ct::ka odgovor.
U vclikim multiproccsorima. kumunikacija innedu procesnra i udalJicne mcmorijc
uvd. se sastoji ocl toga slll procc,ur mcmonji salje pllruku. zvanu pakct. kujom Dl-
htcva odredcnc' podatkc. a lllCJllOnja \llU sai.JC pakct Sa odgUVllWlll.
Topologija
Tuplugijajcdnc interne: mre!:c upisujc medus(lhni rasporcd vcza i i mole
biti. na primer. ublika jJt'\ttna iii oblika rc(ctkc. sctnc sc mugu ll1<Jdclirati
grafovima, pri ccmu o,c predstavl,iaju lukuviilla. a prckidaci Cvoru">il1t tslika
). Svaki C\ nr interne n1rc/,c ( i n.knog :;raCJ 1 jc iL
1
;e...;nug \'('Za. \'la-
hi taj bwj nazvali l:vma; ga /llHl rasplet I enc:l.fuzout). t;
lbllllvi :;tujc vcci ra:-,plel.lo ima /a r11tiranjc i Sl' Jak;c tnkri;u,
tj. st'ilc'!ll cc funkcioni;-,ati i aku neka vua otk:t2c. ;'a .,c uputiti LaPbi!a1.nim
putcm. Ako :-,vakt Cvor ima k a uiic'<:nJC .,c uvc'tk i.spravno. mc-guL'L' jc: pro-
jckt<walt nm:/.u kuja cc u:,tatt JWli'll!Hl JlllVC/:l/la cc.J,; i aku PlLt/e k- I V<'/,a.
Skdccc svoj.stvt> intcmc mrc/e (i njcnu:: gr:tLtl prccnik (engl. rlirii'Lc:,T).
i'\.h:u ra,tojanjc iLmnlu dva CHJra m:::rimu hruFill iuk,lva k<)je trc:ba d:1 hi se iL
Jcd;J<;g cvura :-,tiglo u drugi, ondJ pr.:ctuk gr:1fa prccbtavlja rasruj;mjc i;mcttu civa naj-
ud:dwnij:t cvura u nnc/i 'JJ. cvomva i/tnedu kojih je naJieCe rasit)janJc:i. l':-:c:1ii-- in-
terne mre/c odrcclujC ka;njcnjc u naJrtt:p<lVoljnijcm kac!a 'c' od
jcdnn2:2- dt) drugot: i!i t'J \_lP 11lCilit)rije. ;.atn JC :;\ .tki .'1kok.
potrehno vrc'lllC. SL(J jc rnan_Ji prc-.:i1ik nucl;.::, CL ',e po-
u n .. tjncpo' 1.)\jnt]etn sL.JLJju. Vah.tn jc i prose(nt) l;n1edu
Llv:t (:.,ora. !at() \l\) t)drc.Ju.ic \ pakc-La ktoz n1relu.
8.4 Multiracunari zasnovani na razmeni
*
(a)
(c)
EHJ
(e)
@
(g)
(b)
0
(d)

(f)
...... -----;:-:::::------
/ / ....... .......


(h)
609
Slika S-35. RazliCite topologije. prctht,tvljaju prd;idaCc. Procesori i mcmorije nisu
(a) Zvczda. (b) Potpuno povczana mre.b. (c) (13inarno) stablo. tel) Prsten. (c) Rdctka.
If) Dvnstruki torus. I g) Kocb. (hi 40 hipcrkocka.
Jns jcdno vazno svojst vo intcrnih mre/a jcste njihov prcnosni kapacitct, tj. kol ici-
na poclataka koja se kr01 njih moze preneti u sckundi. Jedan cest pokazatclj ovog ka-
pacitcta jc tzv. hisekdoni propusni opseg (engl. bisection bandwidth). Da bismo ga
izracunali. najpre mmamo mrelu (u mislimai podeliti na dvajednaka (u poglcdu bro-
ja cvoroval. ali ncpove;ana del a. IJko stu CClllll ukloniti skup lukova il njenog grafa.

'
i
L

L
610 Poglavljc 8: Arhitekturc paralelnih racuuara
Zatim izracunavamo ukupan propusni opscg uklonjenih lukova. Mreza se na Jva jed-
naka del a mozc podeliti na mnogo nacina, a bisekcioni propusni opseg je minimum
koji se dobija izracunavanjem svih tih moguc'nosti. Znacaj ovog pokazatelja moze se
vidcti iz sledeeeg. Ako jc bisekcioni propusni opseg. recimo, 800 bitova/s i postoji
jaka komunikacija izmedu Jvc polovine mreie, onda ukupan protok podataka moze u
najgorem slueaju da bulle ogranicen na samo 800 bitova/s. Mnogi projektanti smatra-
ju hisckcioni propusni opseg najvaznijim pokazateljem internih rnrel.a, a mnoge
mrezc su konstruisanc s Jirektnim ciljem da se on maksimira.
Interne mreie se mogu opisati i njihovom dimenzionalnoscu. Dirnenzionalnost sc
za nase svrhe detinise brojern izbora koji postoje za stizanje od izvora do odreclista.
Ako sc nikada ne rnozc birati (tj. kada od svakog izvora do svakog odrcdista postoji
samo jedna putanja), mrez.aje nula-dimenzionalna. Ako postoji samo jedna Jirncnzija
u kojoj jc mogue izbor (na primer, cia sc ide na zapad iii na istok), mreia jc jcclnodi-
menzionalna. Ukoliko postoje clve use, pa pakct moze Ja ide na istok iii na zapad, iii
alternativno. na sever iii najug, mrezaje dvodimcnzionalna itd.
Na slici 8-35 prikazano je vise topologija. Prikazanc su samo veze (linije) i prcki-
daci (tackc). Ncprikazanc mcmorijc i prucesori obicno bi bili pripojeni prckidacima
pomoeu odgovarajueeg interfcjsa. Na slici 8-35(a) imamo nula-dimenzionalnu kon-
figuraciju zvczdc, u kojoj bi proccsori i memorije bili pridruzeni spoljnirn cvorovima,
dok bi centralni cvor obavljao komutiranje. lako je ll pitanju jednostavna sema, ll ve-
likom sistcmu bi ccntralni komutator vcrovatno post au usko grlo. Is to tako, sa aspekta
tolerancijc gresaka. ovo je scmajer i najmanji otkaz ccntralnog prekidaca potpu-
no obara sistcm.
Na slici 8-35(b) prikazani je druga nula-dimenzionalna ;ema koja predstavlja clru-
gu krajnost. potpuno povezanu mrc:lu. Ovde svaki cvor ima clirektnu vezu sa sva-
kim drugim cvorom. Scma maksimira bisckcioni propusni opscg. minimizujc precnik
i izuzctno je otporna na greske (moze cia otkal:e bilo kojih sest veza, ada ona i daljc
budc potpuno povezana). Nal:alost, hroj VC/a potrebnih za k cvorovaje k(k . I )/2, stu
br;,o prelazi prakticnu granicu kako broj k rastc.
Sledcea topologijaje stablo, prikazano na s!ici S-35(c). Problem sa ovakvommre-
zom jc to sto jc kapacitct vezajednak bisekcionom prop us nom opsegu. Posto ee ohic-
no hiti dosta saobraeap blizu vrha <,tabla, gornjih nekoliko cvorova postaee usko grlo.
Ovaj problem sc moze prcvazic'i tako sto se gornjim vezama dodeli vcei propusni op-
seg. Na primer, veze najnizeg nivna mugu imati kapacitet b. sledcei nivo kapacitct 2h,
a svaka veza naJviscg nivoa kapacitct 4/J. Takva sema se zove dcbelo stahlo i korisce-
naje kmncrcijalno za (sada nepostnjeei) multiracunar CM-5 tim1e Thinking Machines.
Prsten sa slike 8-35(cl) prcma nasoj dctiniciji jestc jednodimcnzionalna topologija
jer svaki poslati paket ima izbor da ide levu iii cia ide desno. Resetka ili mrezica sa
slikc X-35(e) Jvodimezionalnaje sema kojaje koriseena umnogim komercijalnim si-
stemima. On a jc veoma pravilna. lako se uveeava u bilo kom stcpcnu i ima precnik
koji se poveeava tek s kvadratnim korenom broja cvorova. Verzija resetkc je dvostru
ki torus sa slike 8-35(f), koji preclstavlja rc.Sctku sa spojenim ivicama. Nc samo daje
otpornija na grdke od resctke, vee joj je i prccnik manji jcr suprotni uglovi sada mogu
da komuniciraju u elva skoka.
I
f
i

;

i

i
'

!
'1:
!
.c_,.
1
t
q
il
II
IL
8.4 Multiracunari zasnovani na razmcni
611
Jos jedna popularna toplogijaje trodimenzionalni torus. Topologija se ovde sastoji
od 30 strukture sa cvorovima u tackama (i,j, k), pri cemu su sve koorclinate celi bro-
jevi u intervalu od ( l, l, I) do (I. m, n). Svaki cvor ima sest suseda, elva cluz svake
Cvorovi na ivicama imaju veze koje povezuju suprotnu ivicu, kao kod 20 torusa.
Kocka na slici 8-35(g) pravaje trodimenzionalna topologija. Prikazanaje kocka2
x 2 x 2, ali u opstem slucaju to moze biti kocka k x k x k. Na slici 8-35(h) prikazana
je cctvorodimezionalna kocka konstruisana od dve trodimenzionalne kocke ciji su
odgovarajuc'i cvorovi povezani. Mogli smo napraviti i petodimenzionalnu kocku klll-
nirajuc'i strukturu sa s!ike 8-35(h) i povezujuei odgovarajuee cvorovc cia bismo doblii
blok od cctiri kocke. Da bismo dostigli sest dimenzija. rnogli smo udvojiti hlok od
tiri kocke i povezati odgovaraj.uee cvorove. N-climenzionalna kocka obrazovana na
ovakav nacin naziva se hiperkocka. Mnogi paralelni racunari koriste ovakvu topolu-
giju jer precnik raste linearno s brojem dimem.ija. Drugim recima, precnik je loga-
ritam broja cvorova za osnovu 2. tako da, na primer, I 0-dimenzionalna hiperkocka
ima I 024 cvora, ali joj jc precnik samo I 0, zbog cega je kasnjenje u tak voj mrcii izu-
zetno malo. U poredite s njom rdctku 32 x 32, koja takodc ima I 024 cvora. ali joj je
precnik 62, vise od scst pula vec'i ncgo precnik hiperkocke. Ccna koja sc plac'a za
manji precnik je veliki rasp let- broj veza iz svakog cvora (as time i cena) mnogo -;u
veei kod hiperkockc. Bcz ohzira nato, hiperkocka je uobicajeni izbor za sisteme vi-
sokih performansi.
Postoje brojni oblici i velicine multiracunara. pa ih je tdko prccizno klasitikovali.
lpak, medu njima se izdvajaju elva opsta ,.stila": MPP multiracunari i klastt:ri.
Prouciccmo ih jeclan za drugim.
8A.2 MPP multiracunari - cvrsto spregnuti paralelni procesori
Prvu kategoriju cine CV!'Sto sprcgnuti paralelni procesori (engl. l'vfa.\si\'ely Par-
allel Processors, /v!PP). koji predstavljaju ogromnc supcrracunare vredne vise mil:o-
na dolara. Oni se koristc u nauci i tehnici. kao i u industriji za veoma opsezna
izracunavanja. za obradu veoma vclikog brojJ transak.cija u sekundi iii za smestanje
ogromnih kolicina podatab i odrzavanje velikih baza poclataka. MPP multiractuuri
su na pocetku prvenstvcno korisccni kao naucni !>uperracunari, ali se clanas uglavnom
koriste u komcrciplne svrhc. Ove masinc su u izvesnom smislu sledbcnici mocnih
ccntralnih racunara iz sezdcsetih god ina (mada je ova veza nategnuw. otprilike kao
kad bi paleonwlozi rckli da je jato vrabaca slcdbcnik Tyrannosaunts Rexa). 1\!PP
multiracunari su u velikoj meri zamcnili S!MD racunarc, vektorske supem1cunare i
matricne pmcesorc na celu cligitalnog evolutivnog niza.
Veeina ovih racunara koristi standardne proccsore. Mcdu njima su pupularni lnteluv
Pentium, Sunov UltraSPARC i !BM-ov PowerPC. MPP multiracunare poschnim cini
upotrcba vanserijsk.e interne mrde vrlo visokih per!"orman::,i. namcnsk.i konstruisJne
za razmcnjivanje poruka LV vcliku propusnu moe i nez.natno kasnjenje. To jc vano JCf
su najbrojnije poruke kratke (znatno kraee od 256 bajtova), ali glavninu ;,aohracap1e
guzve stvaraju velikc porukc (duze od 8 KB). 1\!PP multiracunati opremljcni i obim-
nim vlasnickim softvcrom i hibliotekama.
:;'
612
Poglavlje 8: Arhitekture paralelnih racunara
Drugo stu karakterise MPP multiracunare jestc njihov ogroman ulazno-izlawi ka-
pacitet. Problemi koji opravdavaju kmiscenje MPP rnultiracunara neizostavno su po-
vczani sa ogromnim kolicinama, cesto tcrabajtovirna podataka koje treba obraditi.
Toliki podaci se moraju distribuirati izmedu vise diskova i prcmdtati po racunaru vc-
likom brzinom.
Na kraju, MPP masine izdvaja i tokrisanje grcsaka. Kada imate hiljacle procesora,
neizbc:.l:no ce svake scdmice biti nekoliko urkaza. Prekinuti neko 18-casovno izracu-
navanjc zato sto je jedan proccsor otkazao potpuno je neprihvatljivo. naroCito aku se
tako nesto moz.e ocekivati svake sedmice. Zbog toga, veliki MPP multiracunari uvek
imaju specijalan harclvcr i sol'lver za nadziranje sistema, otkrivanje gresaka i glatko
oporavljanje od njih.
Iaku bi sada bilo bas zgodno prouciti osnovne principe rada MPP multiracunara. u
stvari i nema mnogo toga da sc prouci. Kada sc postavitc ispred njcga, MPP multi-
racunar jc samo skup manje vise standardnih racunara povezanih vrlo brzom inter-
nom mrdom, jcdnog od tipova koje smo vee proucili. Zbog toga cemo. umcsto na
principe, vasu paznju usmeriti na dva konkretna prirnera ovakvih rnultiracunara:
BlucGenc/L i Red Storm.
BlueGenc
Kao prvi primer i\IPl' sistema. ramotricemo IBM-ov BlucGenc. IBM je I ')99. go-
dine zapocco projekat rnasivno paralclnog supcrracunara da bi pomocu njega rdavao
probleme koji zahtevaju op,;czna iaacunavanja. innedu ostalog ina polju bioloskih
nauka. Riolozi. na primer. veruju cia trodimcnzionalna struktura proteina odredujc
njihovu funkcionalnost. ali je iaacunavanjc 3D strukturc .JCdnog malog proteina na
w,novu zakona fit.ike trajalo goclinama. cak ina superracunarima tog cloba. Broj rro-
tcina u ljudskom telu prela1.i pol a miliona i mnogi od njih su izuzctno veliki molekuli,
a po1.nato je da su poremccaji njihove prostorne konfiguracije oclgovorni za odredena
obuljenja ( npr. za cisticnu librozu) Naravno, da bi se odredila 3D struktura svih ljud-
skih protei na. hi lo bi potrebno da se svetska racunar<.;Ka snaga poveea za vise redo' a
velicinc. a modelovanjc prostorne strukture proteina samo je jedan od problema koje
jc BlueGenc trcbalo da rdi. lsto tako, slozcni problemi iz oblasti molckularne di-
namikc. modelovanja klime. astronomije. pa cak i iz oblasti tinansija, zahtevaju po-
vccanje snage superracunara za vi\e redova velicine.
fB!Yl je osctio da postoji clovoljno vdiko trzi.\te za masivne superracunarc. pa je
ulozio 100 milil>na dolara u projektovanje i izgradnju sistema BlueGene. Novembra
200 I. godine. NaciPnalna lahoratorija Livermore, koja je u nadldnosti Americkog
ministar-;rva energetike. stavila je svoj partnerski potpis da bi postala prvi korisnik
prve vepije superracunara porodice BlucGene. zvane BlueGcne/L.
Cilj projekta BlueGcne nije bio samo cia se proizvede najbrzi svetski MPP multi-
racunar. vee da on bude i najelikasniji po broju teratlopsa pu dolaru. teralh>psa po \atu
i terafl,lpsa po m
3
. Zbog togajc IBM odbacio tilomtiJu kopjc le/.ala u <lsnuvi pretl]()d-
nih MPP multiracunara. tj. da kuristi najbrze komponente koje se mogu naci na trzistu.
vee -;e oprcdeli(l da napravi namensku komponentu- ceo sistem 113 cipu- koja bi radila
8.4 Multiracunari zasnovani na razmcni 613
umerenom brzinom i trosila malo energijc. kako bi napravio vrlo veliki racunar vel ike
gustine pakovanja. Prvi Cip je napravljen juna 2003. godine. Prva cetvrtina sistema
B lueGene/L. sa 16.384 racunarskih cvorova, bila je potpuno u funkciji novembra 200+.
godine. kada jc proglasena za najbrzi superracunar na svetu sa 71 teragopsa/s. Trose..'i
jedva 0,4 megavata, ovaj racunar je pobedio i u elikasnosti korisccnja energije u 'vojtlj
klasi sa 177,5 megaftopsa po vatu. Ostatak sistema. namenjen da zbir cvorova dopu1i
do 65.536. trebalo je da bude isporucen uleto 2005. godine.
Sri. sistema BlueGene/Lje cvor- namenski cip prikazan na slici 8-36. On se sastcji
od dvajczgra PowerPC 440 koja rade na 700 MHz. PowerPC 440 je superskalarni pm-
cesor sa paralelnom obradom i dve operacije koje se zapocinju istovremeno, popularan
u ugradenim sistemima. Svako jczgro ima par jediniea za racunanje s brojevima u fcr-
matu pokretnog zareza koje istovremeno zapocinju po dve operacije. tako da ukupno
u svakom sistemskom eiklusu mozc da se izdaju cctiri instrukcije s brojevima ll fc,r-
matu pokretnog zareza. Ove jedinice za racunanje s brojcvimJ u furmatu pokrctnog
L.areza ojacane su brojnim istrukcijama tipa SIIVID kojc su ponekad korisne
u naucnim proracunima s matricama. lako po perfonnansama i nije taku los, uvaj cip
izvesno nije vrhunski multiproeesor.
Gre lnterlejs ka
7
Radni procesor KeSevt nivoa 1 I Narnensk1 C:p I mre .... t
\ \ i j' topolug1je
- \ . 3D torusa
Jed>e""" t \ \ . j
'""'""'' ,- --, I
'"'""""" --1 FPU I
0
Kes ; 1.
""'' -----1 : drugog I j I
F
-p-u. I PowerPC 440 1
0
1 . T I K ,
l
, 1 ntvoa , es
1 l(j) 1 I
_ ---- i:o. 1 treceg 1
Zapad ... --+. i mv?a lstok
---. ,:....Y-l L..J I Jellc:ne I K- DDR tvl
i . J.. 4 fvlB I '<t '-' rdl
I FPU 1 Jezgro ! Kes W men'Or>!i ll
PowerPC 440 ! n drugog 1-4 . f ! n1vou kart,cc
LPU 1 L n,voa L___j i
/ - IB .I
/ t T
Komunikacion1 procesor / t y
Ju9 \'e:::a krt. Ethernet mrb.':::l Dole
Siika 8-.'11. (ip Bluc(]c:JC/L.
Dva prucesorska;e.cg:ra na cipu identi('lla su prl Scrukturi. ali 'c programiraju r:.z-
licilo. Jednu JC radno- za i a::cu:uv:tnp; drugo lldrzava komuni k:tctj u izmcdtt (>:'i.:'i.l(J
C\orova.
Na Cipu postoje tri nivua kcsa. Prvi nivu je d.:ljcni Ll sa .12 KB n in-;rw;,.cijc
i 32 KB z:t podatke. kuhcrentltnsti it.mcdu L I dva pwees<>ra jcr sl::n-
dardna jagra Power PC 4-1\l lu nc' podrl:av:l_Ju. a odluceno je d:t sc kmisrc sl:lmLtrL!:Ja
jezgra. Drugi nivo je ohjcdinjcni k.cs \Cl:l'ii1e 2 KB. L2 k.:Sevi su pre b;tkri Dl
hndno preuLimanje podat;;ka. ncgu pr;tvi !-..c;evi. Oni prislu<kuju jc:dan drugu:? i zahl
su medusobno kuthistentni. T:Tc.'! nivo jc ubjeclmjen. kotbi,;en:ctn cJ 4 :V!S iz



;,1

!"':-

l::
':,


614
Poglavlje S: Arhitekture paraldnih racunara
koga podatkc dobijaju oba L2 kesa. Referenciranje memorije u kome se prornasuje
Ll kd, ali se pogada L2 kes, traje oko II sistemskih ciklusa. Prornasivanje L2 kesa
i pogadanje L3 kesa traje oko 28 ciklusa. Najzad, promasivanje L3 kesa i putovanjc
do glavne SDRAM mcmorije i nazad traje oko 75 ciklusa.
L2 kesevima je pridruzcna mala SRAM mcmorija. Ona jc povczana preko JTAG
nozica za pokrctanje sistema, otklanjanje grdaka, komuniciranje s glavnim racuna-
rom, odrzavanje sisternskog steka i obezbedivanjc semafora, barijcra i drugih opera-
cija sinhronizovanja.
IBM je na sledccem visem ni vou projektovao namensku karticu koja nosi dva cipa
sa slike 8-36 i l GB mcmorije. Buduce verzijc kartiee mozda ce imati i 4GB. Cip i
kartica su prikazani na slikama 8-37(a)-(b ).
512MB
Cip: Kartica:
2 cipa
ukupno 1 GB
(a) (b)


I : .. 1 iii L"" I
['l'' ''1"1
lc;
1
1 ..11
[.., ,J;J fJ

1."1
,.io: I.I.J .. 1 ,'!!ij




;:;:;






Ploca: Ormaric:
16 kartica 32 place
32 cipa 512 kartice
ukupno 16 GB 1 024 cipa
ukupno 512GB
(c) (d)
............ j ....
Sistem:
64 orrnarica
2048 ploca
32.768 kartica
65.536 cipova
32 TB
(e)
Slika S-37. BlucCcnc/L (a) cip. (b) kartica. (c) pl<lCa. fdi orrnaric. (c) 'istcnt.
Karticc se montiraju na ugradnc ploce, 16 kartica po ploci sa ukupno 32 cipa (tj. sa
32 radna procesora) po ploci. Posto svaka kartica sadrzi I GB SDRAM rnemorijc, na
svakoj pluci jc !6GB. Plocajt: prikazana na sliei 8-37(c).
Na slcdcct:m nivou, 16 ovakvih ploca se ugraduje s gornje strane centralne ploce,
a drugih 16 s njene donje stranc, ispunjavajuci tako ormaric dimcnzija 60 em x 90 ern
sa 1024 procesora, sto je izuzetno visoka gus tina pakovanja. Dvt: grupe od po 16 plo-
ca razdvojcne SLI prckidacem koji jednu grupu 1110ZC da iskJjuci iz sistema U cilju
odrzavanja, dok istovrcmcno u sistem uk1jucujc drugu grupu. Onnaric jt: prikazan na
slici 8-37(d).
8.4 Multiracunari zasnovani na razmeni
615
Na kraju, na s1ici 8-37(e) prikazanje potpun sistcm sa 64 ormarica i 65.536 radr:ih
procesora, kao i sa drugih 65.536 komunikacionih procesora. Uz 131.072 eelohrojrih
proct:sora s dve instrukcijc po ciklusu i 262.144 slicnih procesora za rad s brojevima
u formatu pokretnog zareza, trebalo bi da ovaj sistem moze da izdajt: do 786.432 in-
strukcijc u svakom sistemskom ciklusu. Medutim, jedna od ce1obrojnih jedinica daje
podatke za jedinice za rad s brojevima u forrnatu pokretnog zareza, smanjujuCi broj
ildatih instrukcija na 655.360 po sistcmskom cik1usu, ili 4,6 x 10
14
izdatih instrukci-
ja/s, sto ovaj sistem Cini najvecim ikad naprav1jenim racunarom.
Sistcm odgovara de!iniciji rnu1tiracunarajcr nijedan procesor ne moze direktnoda
pristupi bilo kojoj memoriji osim sopstvenoj na kartici (512MB). Ni elva procesora
ne dele istu mcmoriju. Osim toga, nema stranicenja na zahtev jer ne postoje lokalni
diskovi s kojih hi se ono obavljalo. Umesto toga, sistem ima 1024 u1azno-izlazna C\O-
ra koji su povezani s diskovima i drugim periferijskim uredajima.
Sve u svemu, iako jc sis tern izuzetno velik, on je koncepcijsk.i jcdnostavan je- u
njemu nema novih tcbno1ogija, osim u podrucju pakovanja visokc gustine. Zdp da sc
sistem odrzi jcdnostavnim nije hila s1ucajna, posto je najvaznije bilu postiCi visoku
pouzdanost i raspolo7jvost. Zbog toga je vcliki inzt:njerski trud u1ozcn u napajanje,
ventilator<:, hladcnje i ozicenje, sve sa ciljem da se postigne bar I 0-dncvni prosdan
interval izmct1u elva otkazivanja sistema.
Za medusobno povczivanjc svih cipova potrcbna je interna mreza visokih pcr-
formansi koja sc mo7"c uvt:L'<wati. U projcktu je za nju iskmisccn 3D torus velic nc
64 x 32 x 32. Zbog toga svaki proccsor mora imati scst prikljueaka, po dva za proce-
sore koji se logicki na1azc iznad i ispod njcga, severno i juzno od njega i istocno i ca-
padno od njt:ga. Ovib sest prikljueaka na slici 8-36 oznaceni su kao istok, zap.td,
sever. jug, gore i dole. Svaki mmaric sa I 024 cvora fizicki prcdstavlja torus 8 x 8 xI().
Parovi suscdnih ormarica obrazuju torus R x 8 x 32. para ormarica u istom rcdu
ubrazuju torus R x 32 x 32. Na kraju, svih o:-.am rt:dova obraz.uju torus 64 x 32 x 32.
Na taj nacin su svc vezc tipa od tackc do tackc i rade brzinom l ,4 Gb/s. Posto sv1ki
od 65.536 cvorova ima tri vezc ka hijcrarhijski visim cvorovima, po jednu u svakuj
dimcnziji, ukupni prcpusni opscg sistema je 275 tcrabita/s. Kolicina podataka u o.oj
knjizi iznosi oko 300 miliona bituva, ukljucujuci i svt: slike u kapsuliranom Pt,st-
Script formatu. tako da hi BlueGcnc/L mogao da s mcsta na mcstu prcbaeuje cak
900.000 kopija ove knjige u sckundi. Kuda bi to! ike kopijc mngle ici i ko bi ih
neka za domaci zadatak smisli citalac.
Komunikacija kroz 30 torus Ddvija sc kau jcdan od oblika virtuelnog prolaZIJOg
rutiranja (engl. l'irtuol cur through routing). Ova tchnika pomalo lici na kumutir,njc
pakcta tipa .,smcsti i prosledi", osim ;to sc pre proskdivanja nc celi pakcti.
C'im u JCdan .:vor stigne prvi bajt, on st muzc proslcditi slcdec'cm cvoru na putanji. Cak
i pre neg<) pristignt: citav pakel. Za to 'iC mozc knristiti kako dinamicko (adaptivr:ll).
tako i detcrministicko (liksno) rutiranje. Virtuelnu prolazno rutiranjc implcmcntirci st:
tako sto St: lla cip Jodaju male hardvcrske komponenle specijaJnc namcnc.
Osim glavnug 3D torusa koji se koristi za prenos podataka, pn,LOjc jos l:ctiri drugc
komunikacionc mre/.c. Dru;:a mrcla u ohliku stabla JC mrda za kombinu\'anjc. Za
{
w

f,.

'
!:J;
,.;
616
Poglavljc 8: Arhitckturc paralclnih racunara
mnoge operacije koje se izvode u visokoparalelnim sistcmima. kan sto je BlueGenc/L,
pntrcbno jc ucestvovanje svih cvornva. Na primer. razmotrite pronalaz.enje minimalne
vrednosti u skupu od 65.536 vrednnsti. od knjih se svaka nalazi u po jcdnom cvoru.
Mreza za kombinovanje povezuje sve cvorove u stablo i kad god dva cvora posalju
svoje vrcdnosti cvoru viseg nivoa, nna bira manju vrednnst i prosleduje jc navise. Na
ovaj nacin do korena stabla stize mnogo manji saobrac'aj nego kada bi mu svih 65.636
cvorova poslali poruke.
Trcc'a mrdaje za globalne barijere i sisternske prekide. Neki algoritmi koji rade sa
svim cvorovima. rade u fazama ito tako stn semora cekati da se jedna faza ;:avrsi nad
svim cvorovima pre nego stu se zapocne sledt.:ca. Mrcb za barijere omogucava soft-
veru da detinise ove faze ida obezbedi nacin knjim ce privrerneno ;:austaviti sve rad-
ne procesorc koji su c!ustigli kraj faze dok ga ne dostignu svi prucesori. a zatim ih sve
ponovo osloboditi. Sistemski prekic\i takode koriste ovu mrezu.
Cetvrta i peta mrda kmiste gigabitne Ethernet mrde. Jedna od njih spaja ulazno-
-izla;:ne cvorove sa servcrima datoteka koji su za BlueGene/L spoljni uredaji, i dalje
sa lnternetom. Druga se koristi za otkrivanje i otklanjanje gre::iaka u sistemu.
lJ svakom od radnih i komunikacionih cvmova izvrsava se malo. namensko, jcd-
nostavno (opcrativno) jezgro koje podrzava jednog korisnika i jcdan proces. Ovaj
proces ima clve niti, od kojih se svaka izvrsava u po jcdnom prnccson.1 cvora. Ovako
struktura ohezbeL!UJ<: visoke perl"ormanse i visoku pouzdanost.
Radi postizanja vec'e pouzdanosti. aplikacija mozc da napravi kontrolnu tacku po-
zivanjcm bibliutckt.: procedure. Kada sc iz nude pociste sve zaostalc poruke, mo/.t' se
napraviti i sacuvati glubalna kontrolna tacka, tako da se u slucaju otkazivanja sistema
posao moze nastaviti ud nje, umcsto od pocetka. Na ulaznu-i;:laznim cvowvima
izvrsava se operativni sistcm Linux koji pudrzava vise procesa. Dodatnc inl"ormacije
o racunaru BlucGcne/L potrazite kod Adigae ct al. (2002): Almasija et al. (2003a),
(2003b) i kod Blumricha ct al. (2005).
Red Stonn
Kao drugi primer iv!PP multiracunara, razmotrimo masinu Red Storm (Crvena
OlujaJ. 1.vanu i Turov Cekic. koJa se nalazi u Nacionalnoj labmatoriji Sandia. Tu la-
b,)ratoriju drzi korporacija Lockheed Martin koja za tvlinistarstvo SAD
ohavlja i poverljive i javnc poslovc. Neki od povcrljivih poslova ticu se projcktovanja
i snnuliranja nukkarn<.>g oruzja. stu su u racunskorn smislu vcoma zahtevni pmlovi.
Laboratorija Sandia je u tom poslu vee prilicno dugo i t\lkom godina je za njcga
koristila vise vrhunskih superracunara. Deccnijama su juJ bili omiljeni vektorski
supcrracunari, ali su zbog raLvoja tehnologije MPP multiracunari postali isplativiji.
Gudine 2002. tada aktuelni MPP multiracunar, zvan ASCI Red, vee je pocinjao da
,.kasljuca'". laku sa 9460 cvorova, ukupno je imao sanro I ,2 TR memurijc i 12.5 TB
prostora na disku. pa je jedva mogao da i/gura 3 teratlup:-.a/s. Tako jc leta 2002. go-
dine. Sandia izabrala linnu Cray Research, dugogmlisnjeg proizvudaca superracuna-
ra. da napravi zamcnu za ASCI Red.
8.4 Multiracunari zasnovani na razmcni 617
Zarnenaje isporuct.:na avgusta 2004. godine. izuzctno brz kad je u pitanju projek-
tovanje i izrada tako vclikog racunara. On je mogao biti tako brzn projektovan i ispo-
rucen zato sto su za Red Storm skoro iskljucivo koriscenc komercijalne komponenre,
osim jednog namenskog cipa za rutiranje.
ZaRed Stormje izabran AMD-ov procesor Opteron. Opteron ima nekoliko kljuc-
nih osobina zbog kojih je bas on izabran. Prvo, on ima tri radna rczima. U rezinu
,prcdaka" on izvrsava standardne neizmenjene binarnc programe za Pentium.
lJ kompatibilnom re?.imu. operativni sistem rac!i u 64-bitnom rdimu i moze da adre-
sira 2h
4
bajtova memorijc. ali korisnicke aplikacije radc u 32-bitnorn rezimu. Na kra-
ju, u 64-bitnom rezimu, ceo racunar je 64-bitan i svi programi mogu da adrcsiraJU c2o
64-bitni adresni prostor. lJ 64-bitnom rdimu rada programi se mugu mesati i poredi-
ti: istovremenll se mugu izvrsavati i 32-bitni i 64-bitni programi. sto onwgucava lak
prdazak na nove verzije.
Druga kljucna osobina Optcronaje to sto ohraca paL:nju na problem propusnog (}p-
sega pri komuniciranju s memorijom. Kako poslcdnjih godina proccsori postaju >VC
brzi. memorija sve vise zaostaje. sto se ozbiljno sveti kada dmlc do promasaja
drugog nivoa. Ai'v!D jc: integrisao kuntroler mcmorije u Opteron tako da moze raciti
u taktu procesora umesto brz.inom memorijske magistralc, sl() je pcrhJJ-
manse u raclu s mcmorijom. Kontrolcr mo/.c cia upravlja sa osam Dl:Vl\IS nmdula od
po 4GB, sto cini maksimalno 32GB memorijc po Opteronu. lJ sistcmu Red Storm,
svaki Opteron ima samo 2-4 GB. l\leuutim. kako mernorija pojct'tinjuje, ncma
surnnje dace je ubuducc biti vise. Moguc je i prelazak na Opterunc selva jezgra. ;to
bi udvostrucilo siruvu racunarsku snagu.
Svaki Opteron ima sopstveni namenski mre7ni proccsm zvan Scastal". knji pruiz-
vodi lHi'vl. Scastar je va/:na komponenta posto :-,koro sav sauhracaj pndat.rka innedu
procesora ide preko Scastar mrcl:c. Bo venma br;.e mtcrne mrel:c koiu obczbcduju
pumcnuti namcnski cipuvi. sistcm bi v rio br1.o pokkkao prcd podacima.
lako je proct.:sor Oplt.:ron serijska komerciplna kl'llll'<ll1l'llta. pak,wanje multira('LJ-
nara Red Sturm je po-.,ebno. Svaka kanica Red Sturma sadrzi cetiri Opterona. -1-GB
mcmmi.Jc. cdiri Scastara. RAS I Reliability. Av<iil:Jbility. pou/cbn:J,t, r.h-
poluzivost, usluznust) procesor i Ethernet cip buine ](){) :V!
1
1/s, kao na ,}ici 8-.10.
Skup od usam kanica utice -;e u plo<"u i smdta u odgovaEt.JUL'i kave,1. Svaki orma-
ric sadrZi tri takva kaveLa. sto ukupno cini LJIJ Opter<>lla. Cl.'lllll lrcln dlldati i potrdno
napajanjc i ventilatmc. Potpun si,;tem saJr?i l\l>) ormarica 1.a radnc C\lll\1\c, <tc1
uk.upnu iznosi I 0 . .16K Opteruna sa I tJ TB S!) R, \c'vi llll'lliOrijc. S' a!-. i rm >L"CS( 1r ima pri-
stup samo sop:-,t\ennj SDR:\:Vlmenlliriji. t'vkm\lrip se nc deli. Tellrij,sLJ
snag a sistema je -1-1 terai1ups/s.
Za medusobno povo;v,tnjc Optcrona k.uristc se nilmcnski Se:tslilr rutcri. po }:Jan
ruter La svaki procesor. Oni su pm czani u ublik .10 torus.t vclicine 27 I fl ;< ::'I. c,;t po
jcdnim pmcesuw;n S<:astar u svak,,m (HJJ"LI nm:/:c'. Svaki Seastar im'1 scdam dvo,n'cr-
nih vezc1 brt.ine 2-1- CJbis, b1jc se pru:i:ajuna sever. ist<JL jug. zap<cd. gore. dole i ka Op-
tcronu. Vreme prolaoLl inncdu dvd :;usc:dna c\ur:! rnrczc in1osi 2 mik.ru,.eLttn,:.c. Prrko
Citavug shupa radnih 2voruva ono sailll) 5 !)ruga lllrt_/a koja :-;:n-
nsti Ethernet brzinc l ()()\!his. prcdvidenaje ;:a opsluli vanje i odriav anjc si-tcma.

:t



;.
J'
.---"
r
;.:,:

i'
618



E
b
Poglavljc 8: Arhitckturc paralclnih racunara
GB
:lJ

-
Slika X-38. Pakuvanje kulllponenata Red Stortllcl.
Osim I 08 radnih mmarica, sistern 'adrzi i I (J ormarica za ulcu:no-izlazne i servisne
proceson.:. S1aki od ovih ormarica sadrzi 32 Optemna. Od ukupno 512 proccsora, 256
je za ula;-izlaz, a 256 za upslul:ivanjc. Ostatak prostora popunjavaju diskovi, organi-
zovani u grupc prema standardima RAID 3 i RAID 5, zajedno sjedinicom za proveru
pamosti i aktivnim rc;:ervnim diskovima. Ukupan prostor na disku je 2..f0 TB. Uku-
pan odrzivi propusni u komunikaciji s diskuvima iznosi 50 GB/s.
Sistem je podeljcn na poverljiv i javni deo, s prekidacima izmectu njih kako hi se
dclovi mogli mchanicki spojiti iii razcll ojiti. Ukupno 26?>:-i radnih prPcesora uvck su
u poverijivom dclu, dok su drugih 268S uvek u javnom dclu. Prcostala ..fl)92 radna
procesora nmgu se pridru/.i vati jed nom ili drugmn dclu, kao sto je prikazano na slici
8-3LJ. Svaki ocl 2688 Opteron:J u p\lverljivom delu sistema ima ..f GB mcmorijc: svi
ostali procesori imaju po 2GB. Ulazno-izlazni i servisni proccsori takodc su raspo-
deljcni u pomenuLl dv:J dela sistema.
Sve ovo je u novu, namcn-,ki gradenu zgradu puvrsine 2000 m
2
. Zgrada
i lokacija su tako prujcktuvani da -,e sistt'Ill mui.L' u buduc'nusti du
30.000 proce,ora. Radni cvmuvi trosc l ,6 mega1 ala struje: dioktlli tro;e jos jedan
mega vat. Uz vcntilatllre i hladenJt' vazduh<t, ceo :,istcm trnsi 3.5 lVl W.
Hardn:r i soltver racunara kustaju ')() miliuna doiara. Zgrada i ra,hladni sistcm
ko;taju dodatnih 9 milinna, tako da ukupni troskovi iznuse manje od I 00 rnilio-
na do!ar,t, nntia deo tlga lltpad<l i na ncpovratnc inz.enjcrskc tmskove. Kada biste
L.deli da izgradite istovctan klun. histe oko 60 miliona dtllara. Cray namerava
da manjc verzije sistema. pod imennm X3T ponudi drugim drzavnim i komercijal-
nirn kupcima.
li. -----
..
I
I
I
-t
I
i
"'t

'il:

l
it



,, l
lj


!i

I

SA l\Iultiracunari zasnovani na razmeni
619
Ulazno-izlazni i servisni cvor Prekidac
I I
Radni cvor
\
D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D
DO DDDDDDD DDDDDDDDDDDDD DDDDDDD DO
DO DDDDDDD DDDDDODDDDDDD DDDDDDD DO
DO DDDDDDD DDDDDDDDDDDDD DDDDDDD DO
U 28 52 ormarica promenljive ./
Skiad1ste (2688 Opterona) namene (4992 Opterona)
ad 120 TB

28 javnih ormarica
(2688 Opterona);
u
Skladiste
ad 120 TB
Slika 8-39. Sistcm Red Storm posrnatran odozgo.
Na radnim cvorovima izvrsava se jednostavno (operativno) zvano divlja
macka (engl. ('(/[({1/ll!lllll). u ulazno-izlaznim i servisnim cvorovima izvrsava se stari
dobri Linux uz male dodatke za podrsku interfejsu MPI (o kome govorimo unastavku
poglavlja). lJ RAS cvorovima izvrsava se ogoljeni Linux. Obi man softver ASCI Rcda
raspoloziv je i za koriscenje na Red Stormu, sto ukljucuje programe za rasporec1ivanje
programe 1.a vremensko rasporedivanje aktivnosti, MPl hibliuteke, mate-
maticke hiblioteke i pojedine aplikacije.
lJ tako vclikom sistemu od sustinske je vaznosti postici visoku pouzdanost rada.
Svaka kartiea ima RAS procesor za odrzavanje sistema, a za to postoje i specijalne
hardverske komponente. Cilj je da se prosecno vreme izmedu dva otkaza (Mean Time
Between Failures, MTBFJ produzi na 50 sati. ASCI Red je imao MTBF za hardver od
oko 900 sati, ali ga jc zato otkazi vanjc operativnog sistema obaralo svakih 40 sati.
lako je nov hardver znatno pouzclaniji od starog, slaba tacka i dalje ostaje softver. Vise
infonnacija o rnultiracunaru Red Storm naci cete kod Bright\vella et al. \2005 ).
Poredenje multiracunara BlueGene!L i Red Storm
Red Storm i BlueGcnc/L su i slicni i razliciti, pa je zanimlji1o upon.:diti njihovc
osnovne parametre (slika 8-40) .
lsia_v __
;sor
iTakt
I Radn
,------
ti procesori
Proc esora po kartici
;ora po ormaricu
---
Proc
L___
\ Radnil
I

L Mem
1 ormarica
,psals
rija po procesoru


-bitni PowerPC
1700 MHz


. 24
4
1
-
is12 MB
___j___
Red Storm

64-bitni Opteron
--------
2 GHz
10.368
--
4
----------
96
---
108
41
----------
2-4GB ______ __j
Slika 8-40, Poredcnjc multiracunara BiueGenc/L i Red Siollll.
620
Poglavljc S: Arhitcktmc paralelnih racunara
- --------
----1 I --- - -- ----
Ukupna memoriJa !32 TB 10 TB
---------
Ruter
PowerPC Seastar
---- ---
Broj rutera
65.536 10.368
----------
3D torus 64 x 32 x 32 3D torus 27 x 16 x 24
--
gigabitni Ethernet brzi Ethernet
Ne Da
--- -
Namenski Namenski
Linux Linux
I
IBM Cray Research
I
Da
IDa

-------- ------------
Slika S-40. PorcdcnJe mulliracunara BlucGcnc/L i Red Sto.-n1. (nusturuk)
Ovi racunari su izgracteni otprilike u isto vrcme. taku Ja njihnvc razlike ni:-,u plod
ratlicite tehnologije, razlicitog vitknja projektanata. au iLvesnnj rneri nastale su
i zbog ra;lika il'nJCt1u proi;.vmlaca. kompanija 18M i Cray. BlucGcne/Ljc od pocctka
bio komercijalni racunar: IHM se nadao dace veliki broj prodati biotdmoloskim, far-
i drugim kompanijama. Red Storm izrtdcn p<l -;pccijalnom ugovuru
s laburaturijom Sandia. nuda Cray planira da pravi i manjt..: vcrzijc L.a prodaju.
Vizija !BM-ajt..: ja:-,na: kombinuj postujec'ajc;:grt u namcnski cip koji sc muze jef-
tino proizvuditi. pusti gada radi malom brzinnm i puve7.i tajcdnrl vrlo velik hroj tak-
vih je-egara komur1ikacionom rmdum c,krunmt..: hrzinc. Stav lahuratorijc Sandia je
takodc jasan, ali drugaciji: upolrchi muean kumcrcijalni 64-bitni pmccsor, projektuj
vrlo brz, namensl--i ruterski cip i uhaci dov ol.Jno mcnwriJc da ustvari\ m1wgu mo-'niji
cvor m:go kod Gluc(}cnca/L. tako d,t ih hudc rotrchnu m:tnje i da kumunikacijc
mcdu nJih bude hr!.a.
Ovakvc odlukc 'iC odrazilt: ina pak.ovanjc. Pi>Std jc IB:Vlnapr'wiu namcmki Cip
knmhinujuCi pmccsur i rukr. posiigao jc vccu gu-,tinu pak,,v,mja: 1024 procesora po
onnaricu. se Sandia upredc!i!a za 1-."merujabn procc"Jr-;J..i cip i 2----t CH mc-
pu cvuru. mogla J<.' 'ipal--ovati :;am<> 'Jh radnih pnlCcsora p.l m;ll,,ric'u. Zhog
toga Red Storm 1auz.ima vi.se prostura i tnrsi 'nagc negll BlueCJcnc.'/1..
U cg?uticnorn wetu r;tcuntrstva u naciPnalr:im Lti'<>r;l[,,riprna. odlucuittc'i puka-
z.atelJ su pcrftJrm;msc. U ov om po;-lt.:du pnhcdui- _,a 7! TF/s prema
TFh,, ali trcha irnati u vidu da jc' Red SltJrm siotcm. pa hi dudetvanjem jus
10.36:-\ Optcruna (na pri;ncr. prddJ>Ill nt ; d-.a jL'!.c>:raJ. '>atH!ia vcrov:ttntl
mogla da povcca njcgove pcrt'orm;tnse n;t l-\.2 TF. !B,\1 bi lllJg"" ud:,:c>Voriti uhrza-
njem radnug takta t700 i\U l1 stvarnu nijc n.c\w \to pr-cv ;vi lazi mnc:u,'nosti ,avrcmcne
Ukratl--o. \JPP superracunari sc Ju.:: ni,u ni svojitn iizil:l-.im
ograniCcnjin1a i u slcdeCin1 iu d:L
-f
'"
A
;:;r

SA l\lultiracunari zasnovani na razmeni
621
8.-t3 Klasteri racunara
Jos jedan stil multiracunara jcstc klaster racunara (engl. cluster computer) (An-
derson et al., l9lJ5: :V!artin et al.. Jl)97). On se obicno sastoji od stotina ili hiljada lie-
nih racunara iii radnih stanica medusobno povezanih komcrcijalno raspolozivom
mrcZ.nom plocom. Razlika izmcL1u MPP multiracunara i klaslera analogna je razl1ci
izmedu centralnog racunara i PC' racunara. Oba imaju procesor, memoriju, diskovc,
opcrativni sistcm itd. Kod ccntralnog racunara ove komponcntc su samo br/,c (osim,
mozda. opcrativnog :. lpak. oni se kvalitativno razlikuju, a i razliCito pri-
menjuju. Isla razlika pustuji izmcdu MPP multiracunara i klastera.
lstorij-,ki kljucni clcmcnt zhog koga su MPP racunari postali tako specijalni hilaje
njihuva imcrna mrda, ali taj argument slabi s dolaskom komercijal-
nih. gutuvih, visokohrzinsl--ih intcrnih nue?.a. Po svcmu izgleda da cc klastcri poti-
snuti l\IPP multiraCunare u svc duhljc nisc, kao sto su PC racunari pretvorili
centr:tlnc racunarc u ezutcricne objekte. Glavno podrucje primene
MPP nmltiracunara .JCSII vistJkobudzctni superracunari, gdc vrsnc performanse znacc
sve. a ccna mje hitna, iako je ogromna.
l\lada pustnjc tnnoge vrstc klastcra, dve dominiraju: ccntralizovani i decentraliw-
vani klastcri. Ccmralimvani klastcrje skup radnih stanica iii PC racunara, montiranih
na vclikuj polici ujednoj prostoriji. Ponekad se oni pakuju kompaktnije da hise us:e-
dcu proswr i du;l.ina kahlov:.L Racunari u skupu najct:Scc su humogeni i od pcrifc:rij-
sj._ilt 1-.umponcnata ubicrw imaju samo mrcinu karticu, mozda i disk. Gordon Bell,
konstruktm ral'unara PDP-ll i VAX, nazvao je takvc racunare hezglavc radne sta-
nicc (jcr ncmaju vlasnikcl.
Dc:centr;tlimvani Uastcri :-,e sastoje od radnih stanica iii PC racunara rasutih po
1;2radi iii tcritoriji organizacije. Yecina njih nc radi tokom vise casova svakug
cl<t;Et. n:trncitP nocu. Svi su obicno povezani u lokalnu mrcl:u. Najcesce su heterogeni
i int<tju ,q_. rxrir'cnjskc uredajc, iako sc klastcr sa 1024 nc ponasa nista holjc od
kl:tst..:rt bo. ijcdnog misa. Va7.nije jc to sto mnugi od njih imaju vlasnike koji su za
S' C'Jc' .:mutivno vezani i sa neodobravanjcm gledaju astronome koji pokusa-
da n;t ttjiJl,,\im racunarima ;,imuliraju Veliki prasak. Koriscenjc bcsposlcnih r;,cl-
nih sLmica z:t nhrat.ovanje klastera neinlstavno znaci da mora postojati nacin da sc
rn;!uvi ukLtnJlJU s racunara kada ih vlasnici racunara povuku. Puslovi se mogu pre-
mc:;uti. :di time sulher poo;taje slozeniji.
KLL,!Cri \U najmanJi multiracunari i obuhvalaJU od desetak, pa do mo:ida 500
l'C rJ(un:tra. J\kdutim. takodc jc moguce napraviti vrlo vdil--i klasta od obicnih PC
ra{>Jnar:L je to madi,) na jeclan zanimljiv nacin koji cemo sad a analizirati.
( ;(J(JO!C
...
c;, 'ugk _ic pcprrlarni prcrra/.ivac Internet a. lako popularnust dclimicno duguje svom
h.< >risnicktllll okruLenju i brzom rcagovanju, konstrukcija ovog pretral:i-
v:tc':t ;i.Jt..: n<:na:,l jcdne>stavna. Sa stanovista Googlea, problem jc to sto on treha da
, 1!1k-ksi;a i :-,n;e,ti citav World Wide Web (vise tKi :-\ milijardi stranica i tmli-
jarciu ,Jik:tr. cLt ga pretrazi La manjc od 0,5 s ida u sekundi nbradi hiljadc zahtcva koji

f

.
___ _
622
Poglavlje 8: Arhitekture paralelnih racunara
dolaze 24 sata dnevno iz svih krajeva sveta. Osim toga, on nikada ne sme da zakaze,
cak ni tokom zemljotresa iii havarija elektricne i telefonske nude, niti zhog hardvcr-
skih kvarova iii softverskih gresaka. Naravno, on sve navecleno mora da radi sto jefli-
nije. Pravljenje klona Googlea sigumo nije vdba koju bismo namenili citaoeu.
Kako Google sve to racli? Pocnimo od toga sto Google odrzava vise ecntara s po-
daeima sirom sveta. Takav pristup ne samo sto obezbeduje rezervnu kopiju podataka
kada jedna od njih nestane u zemljotresu, vee i pri pozivanju lokacije www.goog-
le.com, na osnovu!P adrese pozivaoca obezbedujc adresu najhlizeg centra. Pretrazivac
tada svoj zahtcv saljc na tu adresu.
Svaki centar za podatkc ima bar jednu opticku vczu OC-48 (2,488 Gb/sJ sa Intcr-
netom, prcko kojc prima zahteve i salje odgovore, kao i rczervnu vczu OC-12 (622
Mb/s) drugog tclekomunikacionog operatera, za slucaj da primarna vc,;:a zakaze. Bes-
prekidni izvori napajanja i dizel-agregati za slucaj ncstanka struje postojc u svim cen-
trima kako bi se njihov rad mogao nesmetano odvijati i u incidentnim situacijama.
Shodno tome, za vrcmc velikih prirodnih katastrofa performanse ce biti losije, ali cc
cak i tada Googlc racliti.
Da biste bulje shvatili je Google izabrau arhitekturu kakvu je iL.abrao, dobro
bi bilo cia kratko opiscmo kako se obraduje zahtev kada stignc u odredeni centar
s podacirna. Po stitanju u ccntar s podacirna (korak I na slici 8--+ I), rasporedivac op-
terecenja upucujc zahtcv jcdnoj od mnogih jedinica ;:a ohraJu (2). a zatim. paralelno,
jedinici ;a pruveru pravopisa (3) i serveru rcklama (4). Potom sc zadate reci paralclno
tra/.e na scrverima indeksa (5). Ovi serveri imaju po jednu odrcdnicuza svaku rcc na
Webu. Svaka odrcdnica navodi sve dukumente (Web PDF datoteke, Power-
Point itd.) koji sadrze zadatu rcc. rednsledom rangiranja stranica. Rang
stranice sc oJredujc slozcnnm (tajnom) formulom. u kujoj ipak broj veza ka stranici
i njihovi rangovi igraju veliku ulugu.
Radi postizanja boljih performansi. indeks je podeljen na delove (engl. shurds)
koji sc mogu pretra/.ivati paralelno. Koncepcijski. prvi deo sadr/,i sve reci i; indel-.sa,
a iza svake sleek identilikatori 11 najvise rangiranih dokumenata koji sadrze tu rei::.
Drugi deo saclrzi s\c rcci i identitikatore 11 slcdec'ih dokumcnata po ran!!u i
tako redom. Kako Web raste. svaki ocl ovih del ova kasnijc sc mo/.c ra1hiti tak.o da pn i
skup dclll\a sadr!.i prvih k rcci, sledcci skup narednih k reei i tako redom, da hi ,e pri
pretrazivanju m,tvario jos veei paraleli/am.
Scneri indek'a kao ndgovor vraL'aju skup idemi!ikator:t dokumenau t6) koji s.?
tada komhinu1u prema iogickim osohinama zahteva. Na primer. ako je ;a tra/.enjL'
bil,l zadatn +digital +capyh:tra +dance. za skdcci k<'rak se uLimaju sarn'' ickntilika-
tori cJ,Jkumcnata koji sc popvljuju u sva tri skupa. U 1\'lll kPr::ku (7) pristupa se ,a-
mim dukumcnrim:t da hi se izvukli njihuvi llchluvi, URL adrese i ndtt1 teksta uku
pmnadenih ;adatih rcci. Serveri dukumenata u ccntrima s pmLlcima ko-
pije cclog \Vchct. cini stotine tcrabaJ!a p,llbtctka. Dnkument i .'m podeljcni na
ddovc da hi paralcli.cma u pn;trazivanje. lako obrada /ahlcva ne znaci
da sv:rki put !rcha pr,>(itatl ceo \Veb (cak ni dcsellnc terahajta na scrvcrima indcksct).
sasvim jc nurmalno da kro2: ohradu prode I 00 ;\!8 podataka.
8.4 Multiracunari zasnovani na razmeni
Jedinica za
proveru pravoprsa

rdvark 154.3016
eoco 973.67231
I
73403,89021
14783.
"
----------
Serveri :
indeksa
Slika S-41. Obrada '"ahtcova prctrazivacu Googlc.
623
Kada se rczultati vrate jcdinici za obraclu zahteva ( 8). prunadene stranc se urcL1uju
prema rangu. Ako se utkriju potcncijalnc pravopisnc grcske (<J). one se najavljuju i
i'tovremeno se dodaju odguvarajucc rcklame (I 0). Googlc ;araduje tako sto prikazu-
jc propagandne porukc oglasivaca zaintcresovanih za kupovinu odrcdcnih izraza za
prctrazivanjc (npr. .,hotel" iii .. kamkordcr'"). Rczultati se na kraju formatiraju u
HT\TL (HyperText Markup Language- jczik za oznacavanjc hipcrtcksta) i salju ko-
ri;,niku u ohliku Web strane.
Znajuci sve ovo, sada mozemo da analiziramo arhitekturu Googlea. Vecina kom-
panip bi. pri suocavanju sa ogromnom bazom podataka. gigantskom brzinorn preno-
sa i potrehnm za visokom pmtJ.danoscu. nabavila B<lJVccu, najbrzu i najpouzdaniju
oprcmu koja se mo/.c naci na trzistu. Googlc jc uradio upravo suprotno. On je kupio
Jeitine l'C r:tcunare skromnih pcrformansi. Mnogo njih. Pomocu njihje izg:radio naj-
ICci svetski klaster sa,tavlJen od serijskih komercijalnih kPmponenata. Iza ovc odlu-
ke Jc stajao jednostavan motiv: optimizovati minos cena/performanse.
Logika koja ga je upravdavala lezi u ekonumiji: serijski proizvedcni PC: racunari
vc,l!na su jcrtini. Vrhunski serveri to sigurno nisu. a jos manje multiprocesori. Tako,
dok vriturbki server ima dva iii tri pula bolje performanse od stonog PC racunara src-
dn]C k]ase. Oil jc ocllljCg:a skupJji 5-10 pula, StO ga cini manjc isplativim.
l\ara1no. jdtini PC racunari Lakazuju mnog:o cesce ml vrhunskih scrvera, ali i
,rhunski ser1 cri ipak LaLuuju, pa je Googlcov soft vcr morao biti spreman 7a rad i
u slucaju hardverskog kvara, be1 ohzira na vrstu hardvcra. Kacla jednom napisete
ij'
,.
;i


,;,t
i'
"'
62-t Poglavlje S: Arhitekturc paralelnih rai'unara
suftver za obradu grcsaka. prcstaje da bude vazno cia li se grcske javljaju sa uccsta-
luscu od O.S'Yo ili 2% po gmlini- one se u uha slucaja moraju ohraditi. Gongleovo
iskustvo je da svake godine zakaze oko 2% PC racunara. Vise od polovine kvarova ot-
pac!a na neispravnc c!iskove, zatim dolazi napajanje, pa memorijski cipovi. Kada
produ zavrsni test pre ugradivanja, procesuri nikada ne otkazuju. U stvari, najcdci
uzrok havarija uopstc nijc harc!ver, vee softver. Prva rcakcija na pad sistema je njcgo-
vo ponovno pokrctanjc, sto ccsto rdava problem (elektronski ckvivalent lckarskog
sa veta: ,Uzmi dva aspirina i idi u krevet").
Tipican savrerncni Googlcuv PC racunar ima Pentium s taktom od 2 GHz. S 12MB
mcmorije i disk ud oko 80 GB - racunar koji moze cla nabavi i vasa baka ako povrc-
mcno prati svoju clcktronsku pustu. U njcmu je jedini specijalitct Ethernet cip, a i on
nije bas vrhunac tehnikc, ali je zato jcftin. PC racunari su smc:Stcni u kucista dchljine
oko S em i po 40 narcdani u police sirine oko pola metra, jedan slog spreda, drugi od
pozadi. sto ukupno iznosi 80 PC racunara po polici. PC racunari na polici mcdusohnu
su povezani komutiranom Ethernet vemm, a sama skrctnica (komutator) nalazi se
unutar police. Police u centru s podacima takodc: medusobno povczuJC komutirana
Ethernet veza, za koju u svakom ccntru postojc dvc rezcrvne skrctnicc.
tipicnog C1oogleovog centra s podacima prikazana jc na slici 8-42.
Ulazni opricki kabl OC-48 visokc propusnc moci usmcrava se u dve Ethernet skrct-
nicc sapo 128 prikljucaka. RcLervni kabl OC-12 na isti nacin .sc usmcrava ka nhe
skrctnice. Ulazni kahlovi sc vczuju Dl specijalne ulamc kartice inc ;au7imaju nije-
dan ml l2X Ethernet priJ..Ijucaka. Svaka polica ima cctiri Ethernet vczc. the ka levoj
skrctnici i dve ka desnoj. U takvoj konliguraciji si',tcm moze da prc/ivi
bilo koje skrctnice. svaka polica ima ct:tiri Vc'LC sa skrctnicom (dYe.'> prcdn.Jih
40 PC racunara i dvc sa 40 r<tl:unara sa L.adnjc stranel. cia hi hila potpuno izbal:ena it.
rada, potrebno jc da crknu cctiri veze ili dve veze i jcdna skrcrnica. U7 par skretn!ca
sapo 128 prikljucaka i cctiri vc1.e ud svake pnlicc. mogu sc podri<tti J,, tJ-lpulice. lJ;
80 PC racunara po polici. centar t.a poJatke moic irnati do 51 2U PC racunara. Narav-
no. police ne moraju sadr.lati has SO racunara i skr,tnicc mogu imati m.mjc ili ocl
128 prikl.Jucaka; vrednosri l;,,)Jc smu navcli s<llllll su tipicne ;a Clt>ugbJv kLhtcr.
Jcdna ud kljucnih stvari jc i gus tina snagc: si'-.lc'llH TipiC'an PC ul"l
120 W. a LO je oko to kW po pulici. Oko roiice Jll(ILl hili har J m
2
da bi jJj
osoblje muglo pri lcviti i da hi oko nje nwg<t., eLl ,_irk ul i se v a;duh ra h iaLknjL'. ()-. i p:t-
r<unetri daju gu,tinu snage od prc:ko Jt'OO W/m
2
. \,:,'ina ccntara /.a podarkc pru;d.to-
vana Je /.a 600-l 200 \V/m
2
. pa se rnur:tjll preliu/ell poscbne mere za hLtcknje polic.t.
CJo,lglc je naucio tri stvari koje su kljucnc "' ma,ivni!J \'"b '"rver<l:
I. Komponcnte cc sc: neizosldvnn kvariti. pa t<l unaprcd planirajte.
.:!. L:mJto/jte svaku kPmponemu da bi uvek biLl rao,poloziva. a rroto!-..ru,L:L!Lt
osta<l neizmenjen.
3. Optimirujtc odnos c:en<u';xrfumtdnsc.
.l


y,


i__
SA Multiracunari zasnovani na razmcni 625
Optick1 kabl OC-1 2 -
----1
1
__.. ____ - - Opticki kabl OC-48
I

I I
Skrelnica gigabttnog l
Ettlerneta sa 128 prikljuC:aka
;r-;r---,---,-----r-.----'
/...-;//'
\
\
i
[!J
J---< r


. '
_d


l
=.=
. .
. .
""?.='__i


i_j_
I==J i
I


-->-_/ / ////

<_r--v)<._
._ /"
X

..... ..___[! __ c
I
: i I : I :
I ==_
/ Dvogigabitne
Ethernet veze

Polica sa
80 PC racunara
=

I : I
L== I

bJ I== I l:J l:J



/ [:]


'e:::"'
CJ
! : I : L:J
I'== =C"l =
Slika X--12. TipiCan Guogleov klasler.
l-'rva L.n<Jl:i da treba irnati softvcr otporan na greske. C'ak is najboljum oprc-
nmm. Lhia imatc veliki bmj kmnpunenata, neke od njih ce otkazivati i softver mora
hili u ,l<l!lju da to prevazidc. Bez oh;.ira na tu da li imate Jedan iii dva otkaza nedcljno,
,of;' .,:r mor.t biti u stanju da obradi greske u sistcmima ovc vclicine.
IJru;a suvka Ln;,C:i cia i hanlver i oothcr treba da hudu visukoredunc!antni. Time se
ilt? ]1lli
1
PijS<t\a Sl[lll(l lltpurnust 11<.1 grcSkC, Vee SC pOVCCaVa j protok podataka Knl/ Sl-
,t;:lli. L' :,lucajJt Gnogk,t. svi PC racunari, diskovi. kablovi i skretnicc repliciraju se
vt;e ;1ula. Osim indc:ksi i dokumcnti \C dele na dcluvc koji sc vi;e pula UlllllOZa-
u svak,)m ctnl ru za pndatkc. a i sami ccntri sc rcpliciraju.
Trc:c;t -;ravkl.Jt' poolc'dica prve dve. Ako je -;istcm ispravno projektovan za borbu
s <liJC skupih kumpunenata, kao sto su RAID iii SCSI diskuvi.
pugr'-<,no je. C:.tk i takvi diskov icc otk.tzivati. ali putmsiti ill puta vise novca da bi se
ucc:sLiilst utkazi,;mjct samu prc:pulovila. !usa je ideja. Bulje je kupiti 10 puta vise
ktrdvcr< 1 i''lriti :;c kada 'e clogude. Akn nista drugo, vise hard vera cc daLi
loijc: pc:rl.<'llll<llbc " e buclc radilo.
Vise int,,rnl.tcija D Go<lgku putrazitc kud Barrosua ct al. ( 2003) i Ghc:mawata ct al.

,.
t

626
Poglavlje 8: Arhitekture paralelnih racunara
8.4.4 Komunikacioni softver za multiracunare
Za prograrniranje multiracunara, tj. za odrzavanje komunikacije izmedu procesa i
sinhronizovanjc, potreban je specijalan softver, obicno u obliku biblioteka. U ovom
odcljku rcci cemo ponesto o torn softvcru. Isti softverski paketi uglavnom se izvrsa-
vaju ina MPP multiracunarima ina klastcrima, pa se korisnicki programi mogu lako
pr.:nositi izmedu ove dve platforme.
Sistemi koji prosleduju poruke imaju dva iii vise proccsa koji se izvrsavaju neza-
visno jeclni ocl drugih. Na primer, jedan proces moze da generise podatke koje upo-
trebljava neki drugi proces iii vise njih. Ne postoji garancija da ce primaoci biti
spremni da prime podatke onda kada ih posiljalac ima jos, zato sto svaki od njih
izvrsava sopstvcni, nezavisan program.
VeCina sistema za proslcdivanjc poruka irna dve osnovnc metode (obicno su to po-
zivi bibliotcci), send i receive, ali je s njima moguca razlicita sernantika. Tri glavne
vertije su
I. Sinhrono prosledivanje poruka.
2. Baferisano proslectivanje poruka.
3. Slobodno prosledivanjc porub.
Pri sinhnmom prosledivanju poruka. ako posiljalac izvrsi operaciju send. a pri-
malac jos nijc izvrsio operaciju receive, posiljalac se zaustavlja (blokira) dok primalac
ne izvrsi operaciju receive, kada se kopira poruka. Kada posiljalac nakon poziva ponovo
dobijc kontrolu. on zna daje poruka poslata i ciaje ispravno primljena. Ova metoda ima
najjcdnostavniju scmantiku i za nju nije potrcbno baferovanje. Ozbiljna mana joj je to
sto posiljalac ostajc blokiran sve dok primalac nc dobije i ne potvrdi prijcm porukc.
Pri haferisanom prosledivanju poruka, kacla sc poruka posalje pre nego sto jc pri-
malac spreman, nna sc neg de baferujc ( na primer. u postansko sanducc) dok je prima-
lac odatlc ne preuzme. Na taj nacin. knd bafcrisanog proslcdivanja poruka posiljalac
mo/.e da nastavi rad posle operacijc send, cak i ako jc prima lac trenutno zauzct. to
je puruka sl varno poslata, pusiljalac slobodno odmah mo/.e da koristi bafer.
Ova sema srnanjuje vremc tokorn kojcg posiljalac treba cia ceka. U osnovi, posi-
ljalac moze da nastavi rad cim sistem posalje poruku. Mcdutim, posiljalac sada mora
da garantujc da JC poruka ispravno primljcna. Cak i ako jc komunikacija stopustotno
pouzdana, primalac moze da sc pokvari pre ncgo sto dobijc poruku.
l'ri slohodnom prosledivanju puruka, posiljalac moze da nastavi raci cim uputi
poziv. Bihliotcka u ovom slucaju sanw operativni sistem dajoj poziv upu-
ti kasnije. kad bude imala vrcmena. Zbug toga posiljalac prakticno nije ni sa cim
ograniccn. Mana ove mctode jc slcdcea: kad posiljalac nastavi rad poslc opcracijc
send. on nc trcba da koristi bafcr za porukc. pu<to poruka l11l)7da jos nije posiata.
Posiljalac mora nckako da sazna bda ponuvo smc da koristi bafcr. Jcdna idejaje da
powve i pita sisten1. Druga je cia dobiJe sistemski pre kid kada se bafcr oslobodi. Ni-
jcdna ml njih ncec uprostiti
U nastavku cemo ukratko razmotriti sisteme za proslcctivanjc poruka (MPI) popu-
larne na mm>gim multiracunarima.
II
.ell
t


s I
8.4 Multiracunari zasnovani na razmeni 627
MPI - Interfejs za prosledivanje poruka
Prilicno dugo najpopularniji komunikacioni paket za multiracunare bio je PVM
(Parallel Virtual Machine - paralelna virtuclna masina) (Geist et al.. 1994; Sun-
derram, 1990). Medutim, poslednjih godina u velikoj meri ga zamenjuje MPI (Messa-
ge-Passing Interface - interfejs za prosledivanje poruka). MPI je mnogo bogatiji i
slozeniji od PVM-a, s mnogo vise poziva bibliotekama, mnogo vise mogucnosti i mno-
go vise paramctara po pozivu. Prvobitna verzija interfejsa MPI, sada zvana MPI-1, do-
punjena jc 1997. godine do verzije MPI-2. U nastavku cerno dati vrlo kratak uvocl u
verziju MPl-1 (koji saddi sve osnove). a zatim istaCi staje clodato u vcrziji MPI-2. Vise
informacija o interfejsu MPI potrazite kod Groppa et al. ( 1994) i Snira et al. ( 1996 ).
MPI-1 ne uccstvujc u pravljenju procesa i radu s njima. kao PVM. Korisnik trcba
cia pravi procese sluzeci se lokalnim sisternskim pozivima. Kada ih napravi, procesi
se svrstavaju u staticke, nepromenljivc grupe, a MPl radi s tim grupama.
MPl se zasniva na cetiri glavna konccpta: kmnunikatorima, tipovima pnruka.
komunikacionim opcracijama i virtuelnim topologijama. Komunikator je grupa pro-
cesa zajedno s kontckstom. Kontckst je oznaka koja nesto iclcntitikuje (npr. huu
izvrsavanja). Kada se porukc salju i primaju, kontcksl pomaze da se ncsrodne poruke
ne pomdaju.
Postoji vi;e tipova poruka. pri ccmu su za njih pod6.ani mnogi tipovi pndataka.
ukljucujuci znakove. kratke, obicne i dugacke ccle brojcvc. brojeve u furmatu pokret-
nog ;.arcza, obicne i dvostruke lacnosti itd. Od ovih tipova podataka mogu sc izvoditi
i drugi tipovi.
MPI podriava sirok skup komunikacionih opcracip. Najosnovnija od njih korioti
se za slanje poruka, otprilike ovako:
MPI_Send(bafer, broj, tip_podataka, odrediste. oznaka, komunikator)
Ovaj poziv salje sadrzaj ha[l'm koji cini odgovarajuCi bruj stavki odrcdenog
tipa_podutaka ka odredi.\tu. Pomocu o;nake pri malac ce moci da kako hlK'e
da prima samo poruke s tom oznakom. Poslcdnje polje saopstava u kojoj sc grupi pm-
ccsa nalazi odrediste (poljc odrcdUite je samo indcks u listi pruccsa L.aciate grupc ).
Odgovarajuci poziv za primanje porukc glasi:
MPI_Recv(&bfer. broj, tip_podataka, izvoriste, oznaka. komunikator, &status)
ion objavljujc da primalac ccka poruku odrel1enog tipa od odrcdcnog izvora i sa odrc-
denom oznakom.
MPI pmlr/.ava cetiri osnovna kl>munikaciona rc:l.ima. Rdim I je sinhnm i u njemu
posiljalac ne mozc poceti da saljc podatke sve dok primaiac nc uputi poziv MPI __ Recv.
Rdim 2 je bakrisan i u IlJCillLI prethodno ogranicenJC ne vah 3 standardni
i zavisi od implemcntacijc. stu znaci da mole da hude sinhron iii bafcrisan. Rc/im -1-
je slobodan; u njcmu posiljalac zahteva da primalac bude raspolo/.iv (kao u sinhro-
nom rci.imu l, ali to nc proverava. Svaki od ova cctiri osnnvna rez.nna postoji u bloki-
rajucoJ i ncblokirajucoj verziji. sto ukupno cini osam osnovnih rcL:ima. Za primanje
poruka postojc samo clvc varijantc: s blokiranjcm i blukiranja.

628
Poglavlje S: Arhitckture paralelnih racunara
MPI podrz,ava kolektivno komuniciranje, ukljucujuci neusmereno emitovanje
( engL broadcast), rascjavanjc/prikupljanjc, totalnu razmcnu i met ode agregacije i ba-
rijerc. U svim oblicima kolektivnog komuniciranja svi procesi u grupi moraju da upute
isti s knmpatihilnirn argumentima. 1\ko se tone uradi. nastaje grcska. Tipican
oblik kolektivnog komuniciranja postoji za procese organizovanc u obliku stabla, kroz
kojc vrcdnosti napreduju ml Ji,,tova navisc ka korenu stabla i u svakom koraku prolaze
ncku obradu (npr, kumulativuo se ,abiraju iii se nalazi njihov tekuci maksimum).
Cctvrti osnovni konccpt intcrfcj,a \!PI jeste virtuelna topologija, prema kojoj sc
proccsi mugu ra,pon:diti u obliku 'tabla. prstena. rcsetke, torusa itd. Takvo rasporedi-
vanje obcLhedujc nacin da sc 1-.umunikacione putanje imenuju i, uopste, olaksava
komuniciranje,
U vcrziji MPI-2 dodati ,u dinamicki proccsi. pristupanje udaljenoj mcmoriji, ne-
kolektivno komuniciranje. skalabilna podrska za ulazno-izlaznc opcraci-
JC, ohrada u realnom vrcmenu i mnogc drugc nove mogucnosti koje izla;:c iz okvira
(lVC knjigc. U krugovima ptl!.navalaca,
godinama
se vodi zucna diskusija o MPI
i l'V:-.,L 7agovornici PVM nacina kazu cia se PVM lakSe uci i laksc koristi, Oni drugi
ka/u da i\!PI radi vi\c i naglasavaju da je MPI formalan standard sa svojim komitc-
tom za standanlizovanje i zvanicnim dclinicionim clokumentom. PVM strana se
s time :,;Jazc. ali istiC'C da nepostojanjc zvanicnih birokratskih tela Dl standardizovanjc
nije ohavC/.JW mana, Kada se svc sabcre i oduzme, izglecla cia na kraju pobec1ujc MPL
8A.5 Rasporedi\ anjc posla
l'rogr:uncri KtJ_ji kori,,tc intcrfcjs :V!Plmogu lako da prave poslove u kojirna se ko-
ri,ti vi\c pr<iCC"'ra ftlkom duzcg perioda, Kada korisnici uputc vise nezavi-
sniJ, z:tlitcva. i -;vaki trazi drugaciji broj proccsora za drugaciji vremenski period,
Pud:l kL:stcr 111<>r:, imati ntehani;am za rasporedivanjl:' kada ce se koji posao obavljati,
Prcm:t JJ:ljjcdrw.,;avnijem rnodclu, rasporedivac poslova zahteva da svaki posao
ncLt P"t:c'h,tn hcJj procc:,ora. Poslo\i ;,t: tada izvrsavaju strog:im f"'FO rcdoslcdom, kao
;'rik.:c/:mn ;,li.:i X--1-3(a). Posto se posao zapocne, proverava se cia lije ostalo do-
' uij no pr"cc,ord 1:1 'ikdeci pusao koJ i (eka, Ako jest e. i on L,apocinjc rad, U suprotnom,
,j,Jun cd,:t da <-: t\/_!r<clkn broj procesora oslobodi, Uzgrccl, iako smo prcdlo/.ili da ovaj
kl:hlc'r in,:', s:,n1. i'H tc.:sura. on bi ih mog:ao imati i I :?X rasporeclcnc ujedinicama od po
!rJ ,,,:nn ::rupa proccsura), ili hi mogao imati ncku clrugu kombinaciju,
1-l<llii ai;2nrium ra:-.porcdivanje i;bcgava HOL blokiranje preskacuci po:-.love
k")i sc rr.'liltliJ" r1c mugu obaviti i birajuci prvi posao koji moze. Kad god se pw,ao
/:l'- ;<;i. P<"i'J' a J..,,jt Cekaju proverava se redosledom FIFO. Ovaj algoritam daje
rczr!ltat ptrkaLll1ll:l ;!ici 0-43(bJ,
J,,, i tnc!i:!lliLarn za rasporedivanje trazi od poslova cla opisu woj oblik. tj,
k<>!Jl,,,' cc !'r"c,_;,ur:l !"'ri;;titi tokom perimla vremena, Kada ima tc informacijc,
ra ;', f'':' '; ,,;: il-" ,, ,, ,, mo!c pokusat i da popuni pravougaonik proccsori-vrerne, Ukla-
i':;n_;: jc' I'' <ch,,;, cJJL:hiHl kada se tukorn dana Ladaju poslovi koji treba da se iLvrsa-
' h .. :..,"" il< "';. da rasporedivac unaprcd ima sve infonnacije o poslmima
i m,,;e iil optimalnim recJu-;ledom, kao je prikazano na slici 11-4_:\(c),
S.4 Multiracunari zasnovani na razmeni
629
Grupa procesora Grupa procesora Grupa procesora
Q,1t2'3i4i5t617
2, 3!4151617
u l I;;,, .j i 'II J Oi I
-
1
I
4
-
7

-
1
I
4
7
- 3
-
3
"' E
"'
>
5
1
9
1
'------1
--
2
l
6
-
8
I
5
l
6
-
8
I
_:_ 91 2
-
- -
- -
- -
-
(a) (b) (c)
Slika S-43. Ra,poredivanje po,Jova u kl:"tem (a) FIFO, (b) BeL HOL hlokiranp, (c) Cklapanje,
podrul:jc oznaCava s!ubodne
8.4.6 MemorUa deljena na nivou aplikacijc
Da multiracunari mogu porasti vise ud multiprocesora, trcbalo hi cla budcjasno iL
nasih primera, Takvo stanje stvari clovelo jc clo sistema za prosledivanJc poruka, kao
sto je MPL l'vlnogim programerima se taj model ne svida i zclcli bi da imaj.r iluziju
deljene memorije, cak i kada ona rcalno ne postoji. Time hi se objcdinilc prednosti
dva rcsenja: veliki. ali jeftin hardver (naravno. po cvorul. uclruzen s lakoclrn pro--
gramiranja, Ovo je cilj svakog paralclnog progratniranja,
lako se rnemorija dcljena na nivou arhitekture ne pona;a bas najbolje pn uv e(,t-
vanju, mnogi istrazivaci su zakljucili da mozda postojc drugi nal'ini da se pnst:gn<: isti
cilj, Na slici X-19 vidirno da postoje i drugi nivoi na kojimll -;e mo;',c uvc-;ti deljcna
memorijct, U sleclecirn odcljcima nckoliko nacina pomol'u kujih sc
deljcna memorip mo;:;e uve,ti u model programiranja na multiracunaru. ;ako nc
na ni vou hard vera,
Distrihuirana deljena memorija
Jcdnu t>d l.lasa sistema deljenja memorijc na nivou prcd;,tavlja
zasnov an na straniccnju, On je poznat pod imenom distrihuirana deljena mcmorija
(Distributed Shared J'vlcmmy, DSl\-IJ, Zamisao jc ;,kup pn>CL''ora na
multiracunaru deli zajednicki. ostranicen prust<X virtuelnih adreca, U najjcdrw;tavni-
joj vcrziji. svaka stranica sc (uva u mcmoriji jednog l'<a ,Jici \ idi-
mo dciJen prostur vinuclnih adresa koji sc sastuji ud 1<1 stranica, raspndcljcuil1
izrncdu cctiri procesora,
Kada pn,ccsor rcfcrcncira 'tranicu u svojoj lokalnuj memPriJi. opcracije cir:mj:l iii
upisivanj:t obavljaju se hez ikakvog J:J,toja. :V1edutim. kada prPccsur :cfercncir.t tra-
nicu u udaljcnoj mcmuriji. dolazi do grdkc ,tranil:enja, Tad:J sc ncJt>staJuca str:mica
'

630 Poglavlje H: Arhitekture paralelnih racunam
--------------------------------
ne uzima s diska, vee izvrsni iii operativni sistem salju poruku cvoru koji cuva stra-
nicu daje posalje i kod sebe ponisti. Stranica se po stizanju preslikava i ponovo se za-
poCinje instrukcija koja je izazvala gresku, kao u slucaju uobicajenog promasivanja
stranice. Na slici 8-44(b) vidimo situaeiju nakon sto je CPU 0 promasio stranicu 10:
on a je tad a premt:Stena s procesora 1 na procesor 0.
Osnovna ideja je prvi put implernentirana u sistemu IVY (Li and Hudak, 1986,
1989). On na rnultiracunaru obezbeduje potpuno deljenu memoriju koja postuje redo-
sled zahteva. Medutim, u cilju poboljsanja performansi moguce su brojne optimizaci-
je. Prva, koja postoji u sistemu IVY, omogucava da stranice oznacene samo za citanje
istovremeno postoje u vise cvorova. Tako, kada nastane promasaj, nedostajuca stra-
nica se salje procesoru, ali njen original ostajc gcle jc i bio jer nema opasnosti od suko-
hljavanja. Situacija u kojoj dva procesora dele jednu stranicu namcnjcnu samo za
citanje (stranica 10) prikazanaje na slici 8-44(c).
Perfonnanse su. cak i LIZ ovakvu optirnizaciju, cesto neprihvatljive, narocito ako
jedan proces aktivno upisuje nekoliko reci na vrh neke stranice, dok drugi proces na
clrugom procesoru aktivno upisuje nekoliko reci na dno iste stranice. Posto postoji
sarno jedna kopija stranice, stranica se stalno prcnosi. sto je situacija poznata kao laz-
no deljenje (engl. false sharing).
Probkmu laznog deljenja moze se prici s vise strana. U sistemu Treadmarks, na
primer. doslcdrwst redosleda pri zahtevanju mernorije napustena je, i sada jc prime-
njcna doslcdnost uz oslobadanje (Amza, 1996). Stranicc potencijalno namenjene za
upisivanjc mogu istovremeno biti u vise cvorova. ali proccs pre upisivanja mora izvr-
siti operaciju acquire da hi signalizirao svoju namcru. U tom trenutku se sve kopijc.
osim poslednje, oznacavaju ncvazecim. Nove kopijc sene mogu praviti sve dok sc ne
i/vrsi odguvarajuca operacija release, posle cega se stranica ponovo moze deliti.
Druga optimizacija izvrsena u sistcmu Treadmarks jeste slcdcca: svaka stranica u
ku.1u se moze upisivati. na pocctku se preslika u rezimu samo za citanje. Kada se u
takvu stranicu prvi put nesto upise, narusava se zastita i sistem pravi kopiju stranicc,
;:vanu hlizanac. Tada se preslikava originalna stranica u rczimu za citanje i upisivanje
taku d,t naredna upisivanja mogu teci bcz zastajanja. Kada kasnijc nastane promasaj
na udaljenom mestu i stranica trcba da se tamo posalje, tekuca straniea se rec po rec
porcdi ' blizancem i salju se samo izmenjcne reCi. sto umnogome skracuje poruke.
Kad<I nastane promasaj stranice. ncdostajucu stranicu trcha pronaci. To se moze
raditi na razne nacine. ukljucujuci one koriscene u NUMA i COMA multiracunarima.
bo stu Sll katalozi (zasnovani na maticnosti). U stvari. brojna rcsenja koja se koriste
u sistcmu DSM primenljiva su i na sisteme NUMA i COMA zato jc DSM samo
soft vcr.,ka implcmentacija mehanizma NUMA iii COMA. pri ccmu se svaka stranica
lrLtira k:to red kc!ia.
DS1\I je vruca istrazivacka tcma. Mcdu zanimljivc takvc sisteme spadaju
CAS!li'vlliR.E (Kontothanassis. et al., 1997: Stets et al.. Jl)l)7). CRL (Johnson et al..
Jl)'!5). Shast't (Scales et al., 19'!6) i Treaclmarks (Amza. 1996; Lu et al.. Jl)l)7).
H.4 Multiracunari zasnovani na razmeni
631
Globalno deljena virtuelna memorija koja se sastoji od 16 stranica
Memorija
CPU 0
CPU 1 CPU 2
CPU 3
Mreza
(a)
[9J[I][I] [2]00 00El
@]@]
0Ci2J 0

CPU 0
CPU 1 CPU 2 CPU 3
I I I 1
(b)
Mreza
[9J[I][I] [2]00 00El
@]@]
0Ci2J

CPU 0
CPU 1 CPU 2
CPU 3
I
I
-I
I
(c)
Mreza
Slika 8-.f-1. Prostor virtuelnih adrc:sa koji se sastPji od 1(, slranica raspllrcdc:nib izmc:rtu cetiri
cvnra multiracunara. (aJ Pocctna situacija. ib) Pu.sto troccsor 0 rekrcncira stranicu 10.
(C) Posto proccsor I rcferc:ncira .stranicu 10. ;a koju "11" ovrk prctpostavili dajc salllO /a citanJC.
Linda
DSM sistemi zasnovani na straniccnju. kao IVY i Treadmarks. k<Jriste
Mi'viU hardver za obradu zahteva za nedm.tajuce stranice. lako slanje izmedu
stranica umesto celih stranica dosta pomale. i dalje stoji cinjcnica da su stranice ne-
primdna jedinica za dcljcnjc. tako da su poJ.;usani drugi pribzi.
Jcdan takav prilazje sistem Linda koji za proccse na muitiracunarima ube;:bcduje
visukostruk.turiranu, distribuiranu deljcnu memoriju (Carriero and Celcrntcr. I 9})() ).
632 Poglavljc 1!: Arhitckturc paralclnih racunara
Toj memoriji sc pristupa pomocu malog skupa osnovnih operacija koje se mugu do-
dati postojccim programskim jczicima. kao sto su C i FORTRAN, cia bi se dobili pa-
raklni jezici, u ovom slucaju C-Linda i H)RTRAN-Linda.
konceptna kome sc asniva Linda jcste apstraktni prostor torki (engl. fllJ!le
space). koji je global an za citav sistem i pri,tupacan svim proccsima u njemu. Prostor
torki slican je globalnoj cldjenoj memoriji, samo ima odrclknu ugradenu strukturu.
Prostor torki saclrzi oclreLtcn broj torki (engl. tuples). od kujih svaka sadrzi jedno ili
vise polja. U jcziku C-Linda tipuvi pulja cclc brojcvc, dugacke ccle bro-
jeve j brojcve ll ronnatu pokrctnog ZJICI.<l, Llll i tipove, kao sto su nizovi
(ukljucujuci znakovne) i strukture (ali ne drugc torke). Na slici 8-45 kao primer su
prikazane tri tnrke.
("abc", 2, 5)
("rnatrica 1 ", 1, 6, 3.14)
("porodica", "je sestra", Karolina. Elinor)
Slika 8--t5. Tri Lind inc ltlrkc.
S torkama su moguce (-etiri upcracije. Prva. out, smcsta torku u pmstnr torki. Na
pn mer.
out("abc". 2, 5):
postavija torku (,abc". 2. 5) u pmstor torki. Pulja operacijc out su konstante, pro-
mcniJiVe iii i/.ra7.i, kanunarcdbi
out("matnca-1". i, J. 3,14);
kujum ,c gcncris,: tmLt :, cctiri polja, pri cemu :-,u vrednosti drugog i treceg polja
udrcdcnc tckuc'itn vrcdnt>,tima promcnljivih i ij.
Torkc ,;c iL pnbl<>r:t turki u:it:tvaju osnovnom opcracijom in. Njih nc identitikuje
imc iii \c'C .adr/:t_]. Puija tlj'c'racije in mogu da budu izrazi iii formalni para-
liJCtri. R:ll.!llillritc. na prtmcr. n.u"t.:dhu
1n("abc". 2, 7 i);
Ona .. rrctra>.rq..:" ptw;tor t.Jrki trazcci torku koja <;c sastoji od znakovnog niza
.. abc:". n:J,,g bmja :' i trcccg polja kuje moze sadrzati bilo koji ceo bmj (pod pretpo-
-.;ta\kum rL: je i ceo ). :\kn pronade. tmka se uklanja iz prostora torki, a pro-
n:cn iJ i "' >J l -.;c d,1ck I j UJC \Jc,ilwst trc.:ccg polja. U pmcdivanjc i uk lanjanje su atomskc
tlJ'_-racijc. per c'c: "d clv"ctl';,lc.'Sa 1-.uji istovrcmcno izvrsav:lJll istu llpcraciju in, samo je-
dan ud lljih uspcti. 1 ::.1,, s..: nc:cc: dc:siti ako po-;tuji vise torki koje odgovaraju pore-
dcnju). Prostor i<'rki ll1<l7L' cak s:rdr.'ati i vise kopija iste torke.
;\lgtlri::ml _;a pPrcrknjc.: kPti,;ti opcraci_ta in sa:,vimjc Jednostavan. Polja osnov-
nc ;n_ ;v :tn;t 1 !;Dnccpcijski) se porede sa odgovarajucim polj ima sv ake
lorkc' u llu tu1k1. sc dc.:;ava ako su istovremeno ispunjena tri uslm a:
I. S,rl'!"n i lurk:t irnaiu isti
[W!ja.
' Tipu\ i pnlja _j..__dnaki.
ili
u odgu\ ara svom parnjaku u torki.
S.4 Multiracunari zasnovani na razmcni 633
Formalni parametri, koji se prcpoznaju po znaku pitanja iza koga sledi irnc pro-
menljive ili tip, nc uccstvuju u porcllenju (iwzev pri proveri tipa), mada se oni koji
sadrie ime promenljive doclcljuju posle uspcsnog poredcnja.
Ako odgovarajuca torka nc postoji, proces koji je uputio poziv privrerneno se za-
ustavlja dok neki clrugi proces ne unese torku, a tada se automatski budi
da bi prihvatio novu torku. Cinjcnica da se proces automatski blokira i deblokira,
znaci sledcce: kada jedan proccs treba cia isporuCi torku, a drugi da jc preuzme, nije
vazno koji cc od njih biti prvi pnkrenut.
Osirn osnovnih operacija out i in, Linda ima i operaciju read, koja je is to sto i opc-
racija in, osim sto sc posle citanja torke ne uklanja iz prostora torki. Postoji i osnovna
nperacija eval, koja omogucava p,aralclno odreLtivanje njcnih paramctara i smcstanje
rczultujuce torke u prostor torki. Ovaj mehanizam se mozc iskoristiti za bilo kakvo iz-
racunavanje. Na ovaj nacin se u sistemu Linda prave paralelni proccsi.
Opsti uzor za programiranje u Lindi jeste model umnozcnog radnika (engl. re-
plicated worker model). Ovaj model se zasni va na konccptu tor be s poslovima (engl.
rusk bug) koje treba obaviti. Glavni proccs zapocinje racl tako sto izvrsava pctlju koja
sadr?.i naredbu
out("task-bag". posao);
i koja pri svakom ponavljanju izbacuje u prostor torki drugaciju cletiniciju posla. Sva-
ki radnik pocinjc posao tako sto u;.ima torku sa opisnm posla pomocu narcdbc
in("task-bag", ?posao):
i ;.atim ga iLvrsava. Kada tavrsi la.J posao, uz.ima sleclec'i. U torbu se nakon pocetog
iz.vrsavanja mogu stavljati novi poslovi. Na ovaj jcdnostavan nacin posao -;c dinamic-
ki deli izmedu radnika i svaki radnikje sve vremc zaposlcn, a sve touz rclativno malo
rada.
Postoje razliCite impkmentacije sistema Linda na multiracunarima. L' 'vima jc
kljucno to kako se torkc distribuiraju izmcdu racunara i kako se pmnalaze kadrr zatre-
baju. U mogucnosti spadaju ncusmereno emitovanJe poruka i direktorijumi. Umno/.a-
vanje torki takodc je vazna lema. Sve ovo je sire objasnjeno kod Bjornsnna ( lL)9_,).
Orca
Nesto drugaciji prist up memoriji deljcrwj na nivou aplikacije multiml'unara .JCstc
cla se umesto torki. kao jeclinica dcljenja koristc potpuni ohjekti. Objckti se uJ
unutrasnjeg (skrivenog) stanja i metoda za rad s tim stanjem. Kada 'ic programcru nc
dopusti da direktno pristupa stanju. otvaraju se mogucnosti L.a deljcnje podataka iz-
meLlu racunara koji nemaju fizicku deljenu mcmoriju.
kdan od sistema zao,novan na objcktima koji stvara iluziju deljcnc memmijc n<
multiracunaru jeste Orca (Bal. 1991: Sal ct al.. 1992: Bal i Tanenbaum. Ore<
je standardni programski jezik (zasnovan na jcziku Modula 2l kome su dodatc dvc
nove osobinc: objd.ti i spo;,obnost pravljenja novih prucesa. Ohjekat jc;:ika Orca jc
apstraktan tip pmlataka, analogan Javinim ohjcktima ili Adinim paketima. Onl-..afhll
lira interne strukture pmlataka i mctodc koje JC napisao korisnik, zvane operaci_je
''
tl:
, ..
jj:


634 Poglavlje 8: Arhitekture paralelnih racunara
Objekti su pasivni, sto znaci dane sadrze prograrnskc niti kojima bi sc mogle slati po-
ruke. Umesto toga, procesi pristupaju intemim pouacima objekata pozivajuci met ode.
Svaka metoda jezika Orca sadrzi listu parova (uslov, blok naredaba). Uslov jc lo-
gicki izraz koji ne sadrzi sporedne efekte a prazan uslov znaci is to sto i vrcdnost ta6w.
Kada se pozove operacija, izracunavaju se svi njeni uslovi proizvoljnim redosledorn.
Ako svi imaju vrednost netacno, proces pozivalac se zaustavlja dok jedan od njih ne
dobije vrednost tac"rw. Kaua se pronade uslov s vrednoscu tacno, izvrsava se blok na-
redaba koji slcdi iza njega. Slika 8-46 prikazuje objekat stek koji ima dve operacijc,
push ipop.
Stek za implementaciju objekata;
vrh:integer;
stek: array [integer O .. N 1] of integer;
operation push(stavka: integer);
begin
guard vrh < N- 1 do
stek[top] stavka;
vrh vrh + 1 ;
od;
end;
operation pop(): integer:
begin
guard vrh > 0 do
vrh vrh - 1:
return stek(vrh];
od;
end;
begin
vrh := 0;
end;
# smestanje steka
# funkcija koja ne vraca nista
# stavi stavku na stek
# uvecaj pokazivac steka
# funkcija vraca ceo broj
# zaustavi ako je stek prazan
# smanji pokazivac steka
# vrati gornJU stavku
# inicijalizovanje
Slika ll--16. Poj.:Jnostavljen ORCA oh.Jch.at stck. .sa intcrnim puuacima i dvc <>pcraciJ<-'.
Kada je slekjcdnom dcfinisan, mogu sc dcklarisati promcnljive tug tipa npr.
s, t: stek;
cime sc stvaraju dva objekta tipa stck i promcnljiva n-!z ll oha tniciplizuje sc na
vrcdnost 0. Celobrojna promenljiva k moc se staviti na stek pm1wc'u naredbc
s$push(k);
Opcracija pop ima uslov, pa cc pokusaj da se s pranwg stcka uzmc promen!_1iva
uzrokovati zaustavljanje po;civaoca svc dok neki drugi procc:, nc suvi nest,J na std--
8.4 Multiracunari zasnovani na razmeni
635
Orca ima naredbu fork za pravljenje novog procesa na koji zada kori-
snik. Nov proces izvrsava proceduru navedenu u naredbi fork. Novom procesu se
mogu prosledivati parametri, ukljucujuci i objekte, sto jc nacin distribuiranja objekata
izmedu racunara. Na primer, naredba
fori in I .. n do fork ndto(s) on i; od;
gencrise nov proccs na svakom racunaru, od I don, koji na svakorn od njih izvrsava
program neIo. Posto se ovih n novih procesa (i proce:, roditelj) izvrsavaju paralelno,
svi mogu da preuzimaju vrednosti s deljenog steka s i da ib 'tavljaju na njega, kao da
sc svi izvrsavaju na multiprocesoru s deljenom memorijom. lzvrsni sistem treba da
odrzi iluziju deljene memorijc; kada nje u stvari ncma.
Operacije s dcljenim objektima su atomske i dosledno postuju redosled izvrsa-
vanja. Ako vise proccsa obavljaju operacije nad istim deljcnim objcktom skoro
istovremeno, sistcrn garantujc da cc odahrati neki redoslcd ida ce tada svi proccsi vi-
deli raj redoslecl clogadaja.
Orca intcgrise ddjenc podatke i sinhronizaciju na nacin koji ne postoji u DSM si-
stemima zasnovanim na straniccnju. Kod paraklnih programa potrcbne su dvc vrstc
sinhrnnizovanja. Prva sc mlnmi na medw.,obnu iskljucivost, kako dva proccsa nc bi
istovrcmeno izvrsavali istu kriticnu sekciju. U jcziku Orca, svaka opcracija nad
ddjcnim objcktom ima osobine kriticnc sekcijc jer sistcm garantuje da cc rezultat hiti
isti kao da se sve kriticnc sckcijL i.cvrsa\aju p<'jcdinaC:no (tj. jcdna za drugom). Sa
ovog aspckra, Orca objckat lici na distribuirani oblik nmnitora (Hoare, Jl)75).
!)ruga vrsta sinhroni.covanja odnosi se na uslove. pri cemu sc proces blokira sve
d<lk sc ne ispuni ncki uslov. U jcziku Orca obavlja :,<.: sinhnmizovanjc uslova. U pri-
nwru sa slike proce;, koji poku'.ava da uzrnc stavku s praznog steka bice zausta-
vljcn svc dok stck vise nc budc pra.can.
lzvrsni Orca sistcm radi sa umno/avanjcm ob_Jckata, tc njihovim prcnosenjcm na
drugc racunarc, vodi racuna n doslcdnosti izvrsavanja i poziva opcracije. Svaki objc-
kal :,e muzc rwci u _1cdnum ud ch a stanja: jcdinstv en a kopija ili unmo/.cn objckat. Ob-
jebt u stanJLI jcdin.stvcnc kopiy postuji sanhl na jednorn racunaru, pa svi zahtcvi koji
sc udn,lSL' na njq::1 .sri/u tarno. l.!nmo/.cni nhjckat pustoji na svim racunarima s pro-
cesum k,>.ji ga kmi,ti. sl<l ulaksava opcraci_1e l:ilanja (mugu sc ubavljati lokaliw), na
racun skupljl'g aluriranja. Kada sc' i;\ neka operacija kuja rncnja umnozeni ob-
jt:kat, ona najprc ill<Jra d:1 duhijc rnlni bruj ()d ccntralizuvanog procesa koji ih deli.
Zatim sc svakom racun:1ru koji sadrl.i kopiju ,1hjd.:ta saljc pnruka da izvrsi opcraciju.
Po;io :-,ve tc nperacijc a/uriranja rl{1SC rtdnL brPjevc, svi raCunari izvrSavaju
upcrac.:ijc: datim :"t:do',kdum, -;c garanrujc d<lslcdnost redusleda izvrsavanja.
Globe
Vecina DS:\'1. Linda i Orca sistema itvrsavaju sc na lokalnim si:-,tcmima, tj. unutar
zgradc iii podrucja. ivkdutim, si,L<clll mcmorije dcijcnc na nivou apli-
kacijL mo/.c se mpraviti ina multiracunaru knji radi globalno. U sistcmu Globe, objekat
;..._
H
636
Poglavlje 8: Arhitekture paralelnih racunara
se moze pronaci u adresnom prostoru vise istovremenih procesa, koji se mozda izvrsa-
vajuna razlicitim kontinentima ( Kermarrec et al., 1998: Popescu et al., 2002; Van Steen
et al., 1999). Da bi ptistupio podacima deljenog objekta, korisnicki proces mora da
prode kroz njcgove metode. koje razlicitirn objektima ornogucuju razlicite strategije
implementacije. Na primer, jcdna od mogucnosti jc postojanje jedinstvenc kopije poda-
taka koji se dinamicki /.ahtevaju po potrebi (c!obro za pnc!atke koje jedan vlasnik cesto
az.urira). Druga rnngucnost jc Ja svi podaci postoje u svim kopijama objekta koje se
a:i:uriraju prcko poruka slatih pouzdanim protokolorn a visesmerno slanje.
Globe se srnatra pomalo amhicioznirn sistemorn jcr mu je cilj Ja se prosiri na mi-
lijardu korisnika i bilion (mo:i:da, mohilnih) objekata. Pronalazenjc objekata, rad
s njirna i uvccavanje sistema najva/niji su poslovi. Globe ih obavlja tako sto odrbva
opsti okvir u kome svaki objekat rnoze da ima sopstvenu stratcgiju umnozavanja.
sopstvenu bezbednosnu stratcgiju i dr. Time se prevazilai problem s nedovoljnom
skalabilnoscu koji toliko upterecuje druge sisterne. a istovrcmcno .sc 1.adr:i.ava lakoca
programiran.1a koju omogucava dcljcna mcmorija.
Neki drugi sistemi koji se mogu distribuirati na siroka podrucja jesu (Jiobus (Fo-
ster i Kesselman, 1998a: Foster i Kesselman. 199t\h) i Legion (Grimshaw and Wulf,
llJ96; Grimshaw i Wulf, 19<J7 ). ali oni ne podr?.avaju iluziju o postojanju deljene mc-
morije, kao stu to C:ini Globe.
8.4.7 Pcrformanse
Paralclni racunar sc pravi zatu sto je njeguva occkivana brzina veca od racunara
s jcdnim procesorom. Ako par<delni racunar ne ostvaruje taj cilj, onda ga je hcsmis-
leno praviti. pnsti;anje tng cilja mora ida se isplati. RaC:unar koji je dvap11t
brzi od jednoproccsorskog racunara, ali ko.\ta 50 pula vise, izvcsno sc ncc'c ba; mmJ-
go prndavati. U ovom odeljku ra7nwtricemo neke aspekte performansi koji -.e odno.se
na arhitckturu paralclnih racunara.
Hardverski pokazatelji
Kada se radi o hardveru. na pcrfmmanse naJvi;e uticu brzina procesora i ulazn"-
-i;:la/nih operacija. kao i br;ina interne mrc/e. Brzina prucesora i ulanm-izla;.nih
operacija istc su kao i ujcdnoprocesorskom sistcmu. tako da su u paralelnim sistem-
ima kljucni parametri oni koji su povuani s intcrnommrdom. Kada g,Jvorimu o per-
formansama. dva parametra su najvaznija: ka.:::njenjc i prupusni opseg. pa c'emu ih
rcdom razmorriti.
Vreme obilaska JC ono 1.a kuje procesor paket i na njcga dobije mlgco\ r>r.
Ukolik<) sc pakct saiJC menwriji, onda u kasnjenje ulazi vremc za knje se rec iii hlnk
reci procita iii upisc:. Ako sc saije drug('ITl pruccsuru, vreme obilaska pokazuje vreme
komuniciranja i;medu proccsora za pa"ct date velicine. Ohicno nas z<mima kasnjcnie
pakcta minimalne vclicine kuji nose, npr. samu jednu rcc iii krata" red kda.
Na ka:::njenje utice niz cinilaca i nno je razlicito za interne mrcZ.c ra.dicitog
mre/.c: s komutiranim kolima. mreze t1pa ,smcsti i prnsledi", virtuclnc prolazne mre/e
f;;



SA Multiracunari zasnovani na razmcni
637
1 mre!.e sa usmeravanjcm kroz tune] (engl. H'onnhole). U komutiranirn mrel.ama
kasnjcnje je bir vremena podc;avanja i vrcmena prenu:,a. Da bi sc kolo pmlcsilo,
mora se puslati prohni paket koji rezervise rc:sursc i o tome izvoristc. Kaua
se to obavi, moze se sklapati paket s podacima. Cim on buuc spreman, hitmi mogu
potcci pun om brzinom. Ako je ukupno vreme podesavanja T,., veliCina pakcra p hito-
va, a propusni opseg b bitova/s, kasnjcnje u jcdnom smeru jeT,+ plb. Ako jc kulo poL-
puno dvosmcrno. onda nema vremena pmlcsavanja za odgovor, pa je minimalno
kasnjenje za slanje pakcta od p bitova i dobijanje odgnvora ou p bitova + 2 f! /b s.
Pri komutiranju paketa nije potrebno unapred slati probni paket do odredista. ali
jos uvek postoji interno vremc potrebno za sklapanje paketa, Yrcme prc:nosa u jc:J-
nom smcruje 7;, + p/b, ali je to.samo vreme do Iaska paketa u prvu skrctnicu. U samoJ
skrctnici post,lji dc.linisanu kasnjenjc. recimu

a zatim sc pruces ponavlja na sk-


dccoj skretnici itd. Kasnjenje r
11
uzrokuje vremc obrade i vrcme cckanja u rcdu da ;c
oslobndi izl:l!.ni prikljucak. ;\ku ima n skrctnica, onda jc ukupno kasnjenjc u jednum
smeru 1;, + 11 (p/h + Td) + f!lb, gdc se poslcdnji clan odnosi na kupiranjc s pusledn1e
skretnicc na odrccliste.
Jcdnu-.merno Jt' kucl virtuelnih prolaznih i tunchkih mre/.a u najboljem
slucaju vrednosti 1;, + f'll> jcr ne pustoji probni paker 1.a u-;postavljanjc kola, a
ni kasnjcnje bug i pruslec1ivanja. U osnuvi postnji -,amo vrcme sklapanp
pakcta i vrcrnc: za kojc sc bitovi izhacc na mrdu. U svim -,lucajcvima trcba dodati i
vrcme prustir;l!lja sign,da. ali je onu obicno malu.
Drugi po"azatclj perfurmansi hard vera je pwpusni f>lnugi progr;uni La pa-
ralclnc ra.:unare. n:Jrucitu u ubia.sti primdnoih nauka, stalnu vclikc kolici-
ne podatal-.a. taku da _ic bruj b<tjt,J\ a kclji '<=' u \t:"undi ;nogu prcmt:.\tati kru1 sisrcn
l.:l perfurn1Jnsc. Postoji pnlpusnug op:-..cga. \/eC
smo :-.c SINeL s jeclnim od njih. to je bisckciuni propu-,ni opsl.'g. Drugi je zhitni pro-
pusni opseg tc'llt'i. og<.:rc:;uic hund11 idi/i). koji se ci<JhipjecirHJ>tanlilll .,,;hiranjem kl-
paciteta svi!1 vt:.'a. Ovaj hrrl.J cbje najVt:ci broj bituva k".Ji i'tovr:.Tne:lu mugu biti u
pokrctu. J,); \d/ . ln je propusni upscg S':ih proccsora. ,\ko
sv;lh pruc,:";;n)(l/, da gcneri\c i Hl3/c;. ()ndav hesmi.,J..:no Ja 1111Lrrnimc:i:a ima bi-
sckci1111i prt)f'll\!li od lOIJ CiB/s. Kl)il\UII:Llcija c':: biti '':zraniccna brLinom ko-
jonl Sal_iu
t' JC posti!anjc bi!u stu se propu;nom opsegu
ve:1rna f'n:.Ioji nHH'go koji smanjujUl!kupa;l kcxist,\il kapacilcl. Na pti-
mcr. skictp<Lnjt: pakcta. pravljcnjc n}c_l!llvUg zag!avlja i La slanjc. Slanjern
102-+ -+-hajlna p;lkcta niLtda sc nc mo/.c pustici ta"av pwlnk pudal,ika ka<l slanjc11
jednug .+t)U(J-bctj llh 'g p:1kcla. aLdost, mali h pak.:LJ JC ;.hug manj(g
kasnjt'nJaje; veliki pu,cti prcdt:go bhlkiLlJU voduvc i skrct:1i..:c. f'rcm:.l rume. po-.u,ji
intcrni :-;uki)h iJ.Inc-ctu n'an.it:g pro'-lcCnt)g kaSnjt:>nja i \ieCcg isko-
rlSCcn.Ja nr'lpu:--not: Za nckc jc va/niJc llUll) a za ncke,
opet. Trcha itnati na un1u pn'pu.-..ni c:K iltuictc duku-
piti ( vi.\e dcb(j-: /iceL ali ti.J nc va'i:i i za law jc h()!jc i.)drnah po-
brinuti o nla:1jcn1 a o I:roptb!loln l1j=:-\cgu
638
Poglavlje 8: Arhitekture paralelnih rai'unara
Softvcrski pokazatclji
Hanlverski pokazatelji, kao sto su kasnjenje i propusni opseg, ukazuju na sposob-
nosti hardvera. Medutim, korisniei gledaju na stvar drugim ocima. Oni zele da znaju
koliko ce se puta brze programi izvrsavati na multiracunaru nego na jednoprocesor-
skom racunaru. Za njih je glavni pokazatelj povecanje brzine: koliko put a brze se pro-
gram izvrsava na n-proeesorskom nego na jednoproeesorskom sistemu. Takvi rezultati
se obicno prikazuju na dijagramima slicnim onom na slici 8-47. Na slici je nekoliko
razlicitih programa pisanih za paralelne racunare koji se izvrsavaju na multriracunaru
sa 64 procesora Pentium Pro. Svaka kriva prikazuje ubrzanje programa zavisno od
broja procesora k. Savrseno (linearno) ubrzanje oznaceno je tackastorn linijom: kori-
scenje k procesora ubrzava program k puta, za svako k. Malo programa postize savrse-
no ubrzavanjc, ali muse neki prilicno primicu. Jedan ud njihje problem N tela, a to u
nesto manjoj meri vazi i za awari (africka igra s tablom), ali sc kod invertovanja ,sky-
line'' matrice ne postize uhrzanje vece od pet pula, bez obzira na broj upotrebljenih
procesora. Ovi programi i dobijeni rezultati preuzeti su od BaJa el al. ( 1998).
60
50'-
40'-
(j)
c-
m
N
.0 30
:::J
20
10
Lmearno (savrseno) ubrzavanje
___ .... --
10
/._.,/
//
20
_...----
_,.......-----/
30 40 50
Broj procesora
60
N tela

lnverzija ,skyline" matrice
Slika X--17. Stvarni programi ne posti/.u savrScnu uhrzanjL taCkastm11limjnm.
C.Jotovo jc tiCillOguce postici SaVfSCIIO u!Jr7.avanje !alo Sill vccina programa ima i
ncku sekvencijalnu komponenlu, kao sto je faza inicijaliiOvanja. ucitavanp pudatab
ili prikuplpnp rcJ.ultata. Ovdc bruj proccsora ne poma/.e mnugu. Prctpostavimo da se
program i;vr;ava tokom 1; najcdnopmce,urskom racunaru, pri ccmu udcufpmvodi u
sek vcncij<dtmm kodu, a udco (I - .f) u kudu koji se potencijalnu muze izvr;avati


i

8.4 Multiracunari zasnovani na razmcni 639
paralelno, kao na slici 8-48(a). Ako sc ovaj drugi kod moze izvrsavati nan proccsora uz
stoprocentnu ctikasnost, njegovo vreme izvrsavanja ce se u najboljem slucaju smanjiti
sa (I -./) Tna ( l -./) Tin, kao sto je prikazano na slici 8-48(h ). Ukupno vrerne izvrsavanja
za oba del a koda (sekvcncijalnog i paralclnog) bilo bijT +(I -f) Tin. Ubrzanje je samo
vreme izvrsavanja prvobitnog programa, T, podcljeno vremenom izvrsavanja:
n
Ubr:anje = 1 + (n- I)./
Zaf= 0 dohijarno linearno ubrzavanje, ali zaf> 0, savrseno ubrzavanjc nije mo-
guce zbog poswjanja sekvcncijalne komponentc koda. Ovaj rezultat je pozna! kao
Amdahlov zakon.
SuStinski Deo koj1
sekvencijn.lan se maZe
deo paralelno 1zvrSavati

I t I 1 -t J
----T-
(a)
Akt1vno JB n procesora

I _n___ I
Aktivan
J8 1
procesor

f 1 -f
(1- f)T/n
(b\
Slika (a) Pmf:ram ima 'elvencijalni cko i cko koji ,;e mozc izvrsavali paralclno.
(h) Ekbt paralclnog iznsavanja dela programa.
Amdahlov 1.akon nije i jcclini razlug zbog kuga -;e nc mo/.e postici savrscno uhu.a-
vanjc. \"aznu ulogu igraju i konacno kasnjcnjc pri komuniciranju. konacna vrednost
prc)pusnog opsega i ncetikasnusti algoritarna. lsto tako, cak i kada jc na raspolaganju
I ()(J() pruce->ora. ne mogu ih svi programi iskoristiti, a zadrska tokom koje se svi oni
pukrceu moze da hudc: tnatna. Stavisc. ponckad Sc najbolji poznati algoritam ne muze
d,Jbr,l pnde'iiti paralclan rad, pa sc u tom slucaju svcsno mora koristiti algoritam
koji nijc oplimalan. lmajuci svc ovo u vidu, z:1 mnoge aplikatije jc vcoma pozeljno
imati program koji \C izvrsaVd II pula br)c, cak i ako jc ?a tU potrehno uposJiti 211 fJfO-
l'L'c:ur,l. Pmccsori. naj1.ad. nisu ni lllliko skupi, a llllll>f',C kompanijc /.ivc uz znatno
manjc: ud l ()()';( clikasncdi u drugim dclclVima svog pos],Jvanja.
Postizanje visokih pcrformansi
Na.Jl>ciglcdniji nacin 1a povcc'anjc pcrfonnansi da c,c u sistcm doda vise pro-
cc:'('fa. ivlcdutim, dPdavanje sc mora i1.vesti na takav nacin da sc izbt'gnu uska grla.
Za >iC>lCill u komc sc dodavanjc:m proccsora dohija .'>ra;mernu vise racunarskc snagc
b/cmo da je skalahilan (cEgl. sculu/Jic ).
:.J
640
Puglavlje 8: Arhitekturc paralelnih racunara
Da bistc uocili neke posledice skalabilnosti, razmotrite cetiri procesora povezana
magistralom, kao na slici 8-49(a). Sada zamislite uvec'anje sistema do 16 procesora
(dodavanjem jos 12), kao na slici X-49(b). Ako je propusni opseg magistrale b MB/s,
onda smo i propusni opseg raspoloziv svakom procesoru njihovim ucetvorostruca-
vanjcm smanjili sa h/4 MB/s na h/16 MB/s. Takav sistem nijc skalahilan.
Procesor
t
1 1 1 1
t
Magistrala
(a)
o
(b) (c) (d)
Slika S--19. (a) Sistcm z.asnuvan na -l procc't>ra i magistrali. ib) Sistcm z.asnovan na 16 proce">ra
i magislrali. (C) s uJ -1- (dJ Si.-,tcnl s rc\ctl-._oJn od !() prucc.-.,ora.
Uradimo sada isto s re:ietkastim sistcnwm sa slikc 8-49(c)- 8-49(d). U ovoj topn-
logiji dodavanjc pruccsora ide u; dodavanjc novih vcza. tako da sc uveeavanjcm si-
stenla nc smanjujc ;.birna propusna moe po proce;..oru. kao u slucaju magistrak. U
stvari, oc1nos hroja veza prema proccsorima rastt: od 1.0 sa 4 proccsora ( 4 procesura.
4 vezc) do 1.5 sa 16 proccsora ( 16 prucc;..ora. :?.4 vcze ). tako da dodavanjem pmcesora
rastc zhirna propusna moe po proccsnru.
l'ropusna moe. naravnu, nije i jcdini problem. Dodavanjc procesora magistrali nc
povceava prccnik interne rnrclc iii ka;njcnj<.: kad n<.:ma saubraeaja. dok. ih kod n;;ct-
kastc mrc:Zc poveeava. Za rt.:Sctku n x n prccnik je 2(11- I), pa se u najnc-
povoljnijem ( i u prosccnorn) slucaju poveeava pribli?.no s kvadratnim korcnom broja
proccsora. Rdetka sa 400 procesora ima precnik 38. dokjt.: on za rdctku sa I hOO pro-
cesora jednak 7X. tako da ucctvorostrucavanje hroja procesora priblizno udvo;..trul:a-
va precnik. a time i prosccno kasnjenje.
Ideal no :,kalabilan sistem moran hi da zadrzi istu prosecnu propusnu mue po pro-
cesoru i konstantno prosceno kasnJenje. bez ohzira na broj dodatih prncesora. U
si se. rncdutim, mole odrzati dovoljna propusna moe po pmccsonr. ali kasnjt.:nje u
svirn projektirna rastc s velicinorn. Najvi;e \to sc moze uciniti jt.:ste da se ra;..t
kasntcnja ogranici na logaritarnsku krivu. kau kod hiperkocke.
To stt' k.asnjcnje prati vclicinu sistema, cesto je pogubno za purormanse aplikaci.Ja
kojc rade s lino i srt.:dnjc granulisanorn memorijom. Ako su programu potrebni pmLlLi
koji sc nc nalazc u njt.:govoj lc)kalnoj memoriji, ccsto postuji primetna zadr\ka d,,k ill
ne duhije, a ;to je sistcrn veei, kao sto srno videli. veeajc i Ladrska. Ovaj prublem
i L.a multiproccsurc i za rnultiracunare. pusto je u oba slucaja ti;:il:ka memmip rasccp-
kana na medusobno udaljt.:ne module.
8.4 Multiracunari zasnovani na razmcni
Ml
Zhog svega ovoga projektanti sistema cesto na svc nacine pokusavaju da smanJC
iii da bar prikriju kasnjenje sluzeci se tchnikama k.oje eemo u nastavku pomcnu!l.
Prva tehnika prikrivanja je umnozavanje podataka. Ako se kopije bloka
podataka mogu cuvati na vise lokacip, proscemJ vrcmc pristupanja podacima biri:
krac'c. Jedna takva tchnika umnozavanjaje kdiranje, kod koga sc jedna ili vise kopija
bloka podataka cuvaju blizu mesta na kome se koriste i gde .,pripadaju'. Mcdutim.
druga strategija je odrzavanjc vise ravnopravnih kupija (kopija s istim statusom) kao
suprotnust asirnetricnom odnosu primarno-sckundarno koji se koristi pri kesiranju.
Kada se odrzava vise kopija u bilo kom obliku. najva!.nijc je to gdc se blokuvi poda-
taka smdtaju. kada se to radi i ko to radi. 0Llguvori na ova pitanja se/u od hardve:-
skog dinamickog smestanja na zahtev, do namc:rnog smdtanja u trenutku ucitavan a
programa prcma direktivama prcvodioca. Doslednost kopija u svim slucajevin,a
predstavlja problem.
Druga tchnika skrivanja prcthodno preuzimanjc (engl.
Ako se podaci mugu preuzeti pre nego ;to su putn:bni. prt.:uzimanje se moze prcklo-
piti s uohicajcnim izvrsavanjcm. tako da podatak hudt.: pri nrci kada L.atrcha. PrcthoJ-
no sc mozc ohaviti autornahki iii pro:,rramski. Kada kc:s ne uctta samo
rcfcrct1l'iranU fCC, Vee citav red koji jc sadr7.i. <Hl ra(una lla tO da L't.: i OStale feCi iz rcdd
uskoro biti potrehne.
Prcthm1nirn pr<.:uzimanjem mo?.e 'ic i cksplicitno. Kada prevodilac shvJ-
ti da cc nm biti potrchni udrcdcni pmlaci. on mu/.e da uhaci ekspiicitnu in;..trukciju
pn;uzimanjc i dajc u progran1u iskori'-li unaprcd kaku bi potrebni podaci stis-
li pravovrcmenn. Ova stratcgip zalneva da pn.:\Pdilac pntpunu puwajc raCunar i ll]c'-
snv \ rcmcnski r:t''l'orcd. kao i da ima kontrnlu nad S\ im mestima gdc st.: Cuvaju
p<'tbci. Ttkve spckulativnc instrukLijc LOAD radc najhuljc kada sc _,isurnu ;.n:t da .'c
odrcJcni ptlLL:ci hrti potrcbni. Pruma,ivanje prr in,truk..:iji LOAD t.a puunju kcJ-
.J'llll '-.C na ne pode. k<)Sta lllll<lg:u.
T rcca tchniLt koja nw2c da prikrijc jc. kao \to 'lllll 'idcli. rad s \ pt\1-
niti .. \ku se s jcdtl\1;2 proccsa na drugi nio/c prdtliti dovoljn<l hr;u (uhcz-
hcdi"-.<tnjcn1 proLcs itna n1apu i han:Jv._'J"sh.e registrL),
tad:t. hl1)kirana nit C-.-k:J. hard:cr hrzo uk.ljul:iti
drut_:u koj;t da i :-- r:ldurn. lJ :..lulaju procesor pn.'U in-
'lruk,iju i; prvc niti. ,Jrug:u instrukciju i/ drug:c niti itd. Na l)Va.J nacin procLsmjc \\C
uprh.us pri dbraC,lnju 1112n1oriji pojcdinJCnih r"IU-
nitj.
tL'ili1iKa jc' (.'i"bod:H'>!) upi-
Pri STORZ-::. procc-.,()r ohilno LLl v ona
pre ;tn rad. Knd upJSi'.<!nja \C upcracija s !Tt.'-
nwiIJ"nL ali prPgr:untLhla\lj<l r:td. :"i:t>t:nak pthk inotruLije LO .. veL' JC tcli
ali _jc i tu d'/. ....,dnu

';.
;



j
H
\L
I;
"
"

;;; .. p


642
Poglavlje X: Arhitekturc paralclnih racunara
8.5 RESETKE RACUNARA
Mnogi od Janasnjih problema u nauci. inzenjerstvu, industriji. ckologiji i u drugirn
podrucjima velikih su razmera i interdisciplinarne prirode. Za njihovo rcsavanje po-
trcbni su strucnost. iskustvo. wanje, oprema, softver i podaci iz vise organizacija, ce-
sto iz razlicitih zemalja. Evo nekoliko primera:
I. Naucnici koji priprcmaju misiju na Mars.
2. Konzorcijum koji realizuje slozen projekat (npr. branu iii letclicu).
3. Medunarodni tim koji koordinira slanje pornoci u podrucja pogodena prirod-
nim katastrofama.
Neke od ovih aktivnosti su dugorocne saradnje. a neke druge su pak jcdnokratne,
ali im je svima zajednicko to da brojne pojcdinacnc organizacije i resursi moraju
udruziti rad kako hi ostvarili zajednicki cilj.
Doncdavno je bilo vrlo tcsko m.tvariti razmcnu podataka i dcljenje res ursa izmcctu
razlicitih organizacija ciji racunari imaju razliCite operativne sistemc, haze podataka
i protokolc. Mcdutim, narasla put reba za saradnjom velikog ohima izmedu vise orga-
nizacija podstaklajc razvoj sistema i tt:hnologija za povezivanje udaljcnih racunara u
mrezu zvanu resetka (engl. grid). Rdctka u i/vesnom smislu predstavlja sledeci ko-
rak du7. osc na slici 8-1. Ona se moze zamisliti kao veoma veliki, medunarodni, laba-
vo povczan, hcterogeni klaster.
Svrha rc;ctkc jc da obezbedi tehnicku infrastrukturu grupi organizacija koje zbog
zaJednickog cilja .l:cle da sc udruze u virtuclnu organizaciju. Virtudna organizacija
s hrojnim i promcnljivim clamtvummora biti tlcksibilna tako da omoguc'i clanovima
saradnju u podrucjima koja im sc cine odgovarajuc'im i da im istovrcrneno omoguci
kontrolu nad njihuvim supstvcnirn rcsursima koliku god .l:ele. Da hi takva virtuelna
organi1.acipmogla da istralivaci mre;ia razvijaju mlgovarajuce uslugc.
alatkc i protnkole.
Resetka je multilatcralna tvurevina ciji su svi uccsnici ravnopravni. Ona potpuno
odskacc ud postujcc'ih racunarskih mrel.a. U modelu klijenthcrvcr, transakcija uklju-
l:uje dve strane: .scTver. koji nudi odredene uslugc i klijcnta. koji te uslugc zeli da ko-
risti. Tipii:::.Jn primer modeL1 khjent/servcrje Vv'cb. gde korisnici upuc'uju zahtcvc Web
servcrima da hi dobili infonnacijc. Rc:iclka se ra;.Jikuje i od aplikacija kojc raclc iz-
mt'du ravnopravnih ral:unara. gdc parovi usoha razmenjuju datoteke. Elcktronska
pu:;ta je uuhiCajen primer takvc aplibciJc. Pusto se rcsetka razlikuJC od navcdenih
mut.kla. za nju su nuvi prutokoli i tclmolugije.
R-:st.tki JL' potrcban pr1:;tup :;imkom spl'ktru resursa. Svaki resurs ima spccilican
si"L'Ill i vLtc;tucku urganizaciju odlul.'uje o \lllllt.' kllliki c'e dt'o rcsursa staviti na
raspolaganje rc'\L'tkL tuk,llll kog pcriudci u tuku dana, k:w i to ko ce koristiti rcsurse.
Na izvcslclll clpstLlktan nacin. cak. sc mo/.c smatrc:ti Jajc sustina rci;ctke pristup i rad
s
Jcdan od nacina :.:;ctke jl' pomoL'u hi_ierarhi.Jc sl<>jeva, kao na slic:i
K-50. Stiukturni slnj icngl.johric larer) u Jnu pn:,btavljcnjc skupom kompunenata
kuje graJe reset ku. On ohuhvata prucesmc, diskov e, mrczc i senzorc kao hardvcrske
,...., ...

3{;
_L__
8,5 Resctkc rai'unara
643
komponentc te programe i podatke kao softverske. Svi oni predstavljaju resurse koje
mrda stavlja na raspolaganje na kotrolisan nacin.
Sloj Funkcija
Aplikacija
I Aplikacije koje dele raspolozive
resurse na predvidiv nacin
Otkrivanje, posredovanje, nadgledanje
i upravljanje grupama resursa
Kolektivni
Bezbedan, podrzan pristup
pojedinai':nim resursima
Resursa
---
Fizicki resursi: racunari, skladista, mreze,
senzori, programi i podaci
Strukturni
Stika 8-50. Slojevi resetke.
Na sledcc'em nivou je sloj resursa koji upravlja pojedinacnim resursima. Rcsur-
som koji uccstvuje u resctki u mnogirn slucajevima upravlja lokalni proces koji omo-
gucava kontrolisano pristupanjc udaljcnih korisnika rcsursu. Ovaj sloj obczbeduje
jednoobrazan interfcjs ka visim slojevima, kroz koji sc sloju mogu slati upiti o karak-
teristikama i statusu pojedinacnih res ursa i kroz koji se oni mogu nadgledati i koristiti
na bezbedan nacin.
SledcCi je kolcktivni sloj kuji rukuje grupama res ursa. Jedna od njcgovih funkcija
je pronala/.enje rcsursa, pomocu koje kmisnik mo/.e da otkrijc raspolozive proccsorske
cikluse, prostor na disku ili speciticne podatkc. Kolektivni sloj za tu svrhu mo/:c da
odrz.ava clircktorijume i drugc haze podataka. On mo?.c da nudi i posrcdovanje, povc-
mjuc'i davaoce i korisnike odgovarajucih usluga, mozda cak i upravljajuci koriscenjem
skromnih resursa vise konkurcntskih korisnika. Kolektivni sloj je mlgovoran i
za umnozavanje podataka, za primanje novih clanova i resursa u resetku. za ohral:una-
vanje i oclrzavanjc baza poclataka s pravilima 0 tome ko sta mozc da koristi.
Sasvim na vrhu je sloj aplikacija u komc sc nalaze programi korisnika. On kmisti
nize slojeve da bi pribavio potrchne dozvole za upolrebljavanjc odredenih resursa.
podrlllsio zahtcve za korisccnjc, nadgledao kretanje ovih zahteva. obractivao grcske i
(lbavdtavao korisnika o rezultatirna.
BcJ:bcdnost jc osnuva uspdne resetke. Vlasnici res ursa skoro uvek ocekuju da im
sc omoguci stroga kontrola njihovih rcsursa i zelc cia oni odreduju ko moze da ih ko-
risti, koliku dugo i u kum stepenu. Bl'Z dobrog obe;bedenja, nijcdna organizacija
nec'e staviti svojc rcsurse na raspolaganje. S druge strane. ako kurisnik !reba da ima
nalog i lozink.u J:a svaki racunar u re;etki koji huce cia knristi. upotrehljavanje resctkc
c'e pm.tati ncpodno;Jjivo. Shodno tome, n:sctka treba da stvori bezbcdnosni model
koji cc pomiriti ove dvc suprotstavljcne potrcbc.
.Jcdna od kljucnih karakteristika bezbcdnm.nug model a jeslc jedinstveno pripvlji-
vanjc rdctki. Prvi korak pri korisccnju resetkc je potvrt.tivanje idcntiteta korisnika i
dobijanje dozvola, digitalno potpisanog Jokumenta u kome stoji za koga se posao
644 Poglavlje S: Arhitekture paraldnih racunara
-----
obavlja. Dozvolc se mogu prenositi (dclegirati). tako da se, kada pri nekorn izracuna-
vanju zatreba i dodatno izracunavanje, lako mozc identitikovati proces potomak.
Kada se dozvolc pokazu na udaljenom racunaru, one trcba da se prcslikaju u loblni
sistcm bczhcdnosti. 1\ia UNIX sistcmima. na primer. korisnici sc identilikuju lh-bit-
nim knrisnickim identitikatorima. ali drugi sistemi imaju i drugc semc. 1\ia kraju. u
rdctkama su potrchni i mchanizmi za stvaranje pravila pristupa, ;.a njihovo o,lr/.t-
vanje i
Da hi se obe;:bedila interopcrabilnost (mogucnost izmedu razliciuh ur-
ganizacija i racunara. potrcbni su kako u pogkdu ponudenih mluga, i
u pogkdu proto kola za pristupanje. Zajcdnica korisnika st vorila je organit.a-
ciju Global Grid Porum koja trcba da vodi postupak donuscnja Una sc
oglasila svojim opstim raJnirn uslovima- ohorenom arhitekturom us\uga 11
kama (Open Grid Services Architecture. OGSAJ- pomocu kojih ra;vrstava razlicit:
stanJarde kuje razvija. Cide )!t>dje to moguc'e, standardi za primenjuju posto-
jeee stamlardc. na primer. kmistcci WSDL (\Veb Services Dcliniton Language- jc1.ik
za opisivanjc Web uslugaJ za opisivanjc OCiSA usluga. Us luge kojc sc st:mJarJizuju,
trcnutno se ra;:v rstavaju u jcdnu "d sledccih osam katcgllrija, ali nl'ma sumnjc
da cc sc pojaviti i nove.
I. usluge (omoguc'avaju komuniciranjc izmedu resursa).
2. Us luge za s rcsursima (rczervisclll.JC i rcsur.;ai.
.\. Usluge za rad s pl'cl:!cima lprenuscn.JC i J...upiranje pmbraka. gdc i kadajc to
pot rchno I.
-+. l'slugL k<>nteKsta i<'I'isivan1c zaht:vanih resursa i pra;ila kllrisc'enja).
5. lnftrmaciune U'iu;,:.c (dohiJilflJc' inl'ormacip '' r;tspt>lo/:ivo:.;ti resursa).
6. Interne uslug(: dckbrisanom J..:valitctuusluga\.
7. Bczhcdnusne u,lugc 1 sr1w, odt:!ljC prd\ bubcLlnosti 1.
X. Cslugc 1a upr:l\lpnj<: iznsavanjettl lupta\ lj:u:.Je tckum radnih akti\nusti).
ntnu::;o :-,C rno/.c (l cdi ada SC 0\'0111 tC-
!l10ili <._llr/.e hdvin10. \'i;c inforn1acijantJ o cctc h.(1d Bennana et a!.
i 2illJ3 ), i Kc".dman:t i 2003' 1 kt1d h>,Lcra c:r al. 1 2l !I 12 i
X.6 SAZETAK
Sve jc tc/.._- taktajcr se h'lllC suprot-
.lavl:a l'n,hlcm sa ud'''c!enjcm osluhodcnc :oplute. a j:tvliaju ';C i prohlcmi.
Zhot: tot:a .\e pi<ljck',mti. u ciiju ubrza\:Jtlja r:\Cun;trtt, ,-,.; vi;c' okrccu ka parttlelnom
r:1du. :-;c n1\-,f'c U\c'sti n;l \/i:_c 1Jd sasvint n;, J,:, 'tile su procc-
ci._'lilCJlfi vrkJ tcsth) do\ ,.i."'Pkng. na kPI11l' su vcze
n,;ih VC(l!na l:lba\-'e.
Na n:qni/.c.__'ill ni\'PH parak!i;anl najLdnutTl Cipu "-C l: .... tt)\ren1cno tpa-
Ialelno) uha\ li;.titt ."'hnl Jcda:1 nhl1k paralclili11:l jL paralclizan1 na

:J
L_
Ve:lhanja MS
nivou instrukcija, gde jedna instrukcija iii niz instrukeija zapoCinju vise operaetja
kuje mogu paralclno izvrsavati razlicite funkeionalne jeJinice. Drugi oblik paraleli-
zma na cipu je raJ s vise programsk.ih niti: procc'or mo2e stalno Ja skace s jedne riti
na drugu izvrsavajuci jednu instrukciju ovde, a jcdnu tarno, stu ga cini virtucln.m
multiprocesorom. TrcCi oblik paraleliw1a na cipu je rnultiprocesor na jcdnorn cipu,
gde se na cip smdtaju Jva ili vise procesorskih jezgara koja rade paralelno.
Na sledcccm visem nivou su koprocesori. najcesc'e smesteni na dodatnc kartice.
Oni osnovnom sistemu ohczbeduju dodatne procesorske kapcitetc za raclu oJredenim
specijalizovanim podrucjima, kao sto su mrc7.ni protokoli iii multirnedija. Dodalni
procesori rasterecuju glavni procesor i umoguc'uju mu Ja raJi svoJ posau dok se oni
bavc specijalizovanim
Na slcJccem nivou su multiproccsori s deljcnom memorijom. Sistemi sadrzc eva
ili vise proccsora koji dele zajcdnicku memoriju. UMA multiproccsori komuniciraju
prcko dcljene magistralc (za prisluskivanjc) unakrsnih prckidaca ili viscstcptnc
komutacionc mre/.c. Njihovo :;vojstvo je da imaju isto vrcme pristupa svim m.::mo-
rijskim lukacijama. Nasuprot njima su NUMA multiprocesori koji svim procesima
ubczbeduju isti deljcni adresni prostor, ali koJ njih pristupanjc i;: daljine traje
vise od lokalnog pristupanja. Na kraju, COMA multiproecsori predstavljaju jos jclinu
verziju, gde se redovi kda prcnuse na zahtev i nemaju svoj maticni procesor karl u
pretht llln i m verzij am a.
Multiracunari su sistcmi s velikim brojem proccsura koji ne Jclc zajcdnicku me-
moriju, vee svaki procesor ima sopstvenu privatnu mcmoriju. a komuniciranje mn.lu
njima sc obavlja proslcdivanjcm poruka. MPP racunari su veliki multiracunari sa s_x-
cijalizovanim komunikacionim mrdarna, kao sto je IBM-ov BlueGene/L. Klasrcr: Sll
jctlnostavniji sistcmi. izgradeni od postojecih komercijalnih kumponenata (npt. racu-
nari koje koristi Coogle).
Multiracunari se ccsto prugramiraju pomocu interfcjsa za proslcdivanjc poruka
kao sto je MP!. Alternativan pristup je koriscenje deljene mcmorije na nivou aplika-
cije. bo ;to je sistem DSM na straniccnju. prostor torki Linda. iii objckti
Orca. oclnosno Globe. DSI\1 simulira deljenu mcmoriju na nivou stranica, sto ga cini
slicnim racunaru NUI\1A, osim sto je mnogo nccfikasniji pri referenciranju
mcmnrije
Na kraju. na najvisem nivou su rdctke (najsbbije su povczaneJ. To su sistcmi u
kojima su celt: organi1.acij..: povezane preko lnterncta da bi udruzivak racunar;ku
-.nagu. podatke i drugc resurse.
VEZBAN.JA
I. Instrukcijc 1.a Pentium mogu cia budu 17 bajtova. Da li je Pentium VLIW
pmccsor''
2. Kojc opsccene vredno.sti odgovaraJU brujcvima 96. -9, 30() i 256 ako je interval op-
sccanja tl-255')
646 Poglavlje 8: Arhitckturc paralclnih racunara
3. Jesu li sledeee instrukcije za procesor TriMedia dozvoljene i ako nisu, zasto nisu?
a) Integer add. integer subtract. load, floating add, load immediate
b) Integer subtract. integer multiply. load immediate. shift. shift
c) Load immediate. floating add, floating multiply, branch, load immediate
4. Slike 8-7(d) i (c) prikazuju 12 ciklusa instrukcija. Za svaku naveditc sta se ddava u
naredna tri ciklusa.
5. lnstrukcija koja na odrcdcnom procesoru promasujc kcii prvog nivoa i pogada kes
drugog nivoa, trajc ukupno k ciklusa. Ako se za maskiranje promasaja prvog nivoa
kda koristi visenitni rad, koliko se programskih niti u tinoj rezoluciji istovremcno
mora izvrsavati da bi se izbcgli prazni ciklusi?
6. Jednog jutra, pccla matica sakupi sve svoje peck radilice i saopsti im daje danasnji
dncvni zadatak da sakupljaju polcn nevena. Radilicc odlec'u u razlicitim srnerovima
da traze neven. Jc li ovo sistem SIJ'v!D ili MIMD?
7. Tokom objasnjavanja mode Ia doslednosti pri radu s memorijorn, rckli smo dajc mo-
del doslcdnosti ncka vrsta ugovora izmcdu soft vera i memorije. Zasto je takav ugo-
vor neophodan'l
8. Zamislitc multiprocesor koji koristi deljenu magistalu. Sta sc ddava ako dva proce-
sora pokusaju da tacno u islom trenutku pristupe globalnoJ memuriji':'
9. Pretpostavimo da je kdu za prislu;kivanje iz tehnickih razloga moguc'c da prislu-
skuje samo adrcsne vodove, a nc i vodovt: za podatke. Da li bi to uticalo na protokol
direktnog upisivanja'
1
10. Zajednostavan model multiprocesora s magistralom i bez kesiranp prctpo-
stavitc da jcdna od cc:tiri instrukcije refcrcncira mcmoriju i Ja refcrenciranje memo-
rijc zauzima magistralu tokom citavog izvr;avanja instrukcije. Ako je magistrala
zauzcta, zahtcv proccsura sc stavlja u FIFO red cckanja. Koliko pula c'e br/.c raditi
sistem sa 6-+ pn >ccsora od jc'dnuprocesorskug sistema':'
11. Protokol .ca kohcrcntnost kesa MES! ima cctiri stanja. Drugi protokoli za koherent-
no.st kcsa koji rade s naknadnim upisivanjcm irnaju tri stanja. Koje sc od cetiri
stanja protol-.uia J\IESI mozc zrtvovati i Ltkvc c'c biti pos!t:dice u svakorn pojedi-
nacnom slucaju'
1
,\ko lreba cia iLah.:retc samo tri stanja. hoja c'c to stanja biti''
12. Postnjc li situacijc k.od protukola za kohcrcntll<lSl kda J\IES! u kojima red kda
pPstnJi u lob! nom k6u, ali jc ipak potrebna transahcija s magiotalnm'' Ako mislitc
da pPstojc, ih.
13. Pretposta\imo da zay.:dnicka magistrala povezuje 11 pr,x.:sora. Verovatnoc'a da cc
ncki od pruccsora pokusati da koristi magistralu u datum cik!usu je p. Kolika jc
vcrovatnoca da
a) Magi,trala hwk (0 zahtevaJ''
b) Pr"toji _iccbJ zahlcv''
c') Pustoj i vi,;c ud Jednog zcthtcva'l
14. prckidaca irna jl(llpun procesor Sun Fire E25K'
1
15. Pretp\l<ilavimo da sc zica innedu prckidaca 2.\ i prckidaca .18 omega rnrdc prckinc.
Ko je tada od kuga odscccrl''
.;3.:':.;;


:K-::.

i'
L "
Vczbanja
647
16. Jasno jc da su vruc'c tacke (cesto referencirane memorijske lokacije) glavni problem
u viscstepenim kornutacionim mrc:'iarna. Jesu li one problem i u sisternirna zasnova-
nim na magistrali''
17. Komutaciona omega mre:la povezuje 4096 RISC procesora, svaki sa ciklusom od
60 ns. sa 40% bcskonacno brzih memorijskih modula. Svaki prekidacki clement
iLaziva kasnjenje od 5 ns. Koliko jc kasnjenje za instrukciju LOAD''
18. Zamislitc racunar koji koristi komutacionu omega mrdu, kao onu na slici 8-29.
Pretpostavitc da se program i stck za procesor i nalaze u memorijskom modulu i.
Prcdlozitc malu izmenu topologije koja c'e znatno uticati na pcrformansc (IBM-ov
RP3 i BBN-ov Butterfly koriste tu izmenjenu topologiju). Po cemu jc nova topolo-
gip slabija od originalne'
1
19. U multiprocesoru NU!VII\ referenciranje lokalne memoriJe trajc 20 ns, a udaljcne
120 ns. Program tokom svog izvrsavanja referencira memoriju N pula, od cega su
l procenat reference na stranicu P. Ta stranica je na pocctku u udaljenoj rncmoriji i
njeno kopiranje u lokalnu mcmoriju trajc C ns. Pod kojim uslovima cc stranica biti
kopirana lokalno ukoliko je drugi proccsori nc koristc cesto''
20. Razmotritc multiprucesor CC-NUMA, kao onaj na slici samo neka vas irna
512 cvorova sapo 8MB. Ako su rcdovi kesa duzine 64 bajtova. koji jc proccnat vi-
ska u odrednicama kataloga'
1
Da li se povecanjcm broja cvorova povcc'ava visak.
srnanjuje sc iii sc nc uticc na njcga'l
21. Za svaku topologiju na slici izracunajte precnik nm;/c.
22. Za svaku topolog:iju na slici odreditc stepen tolcrancijc grdaka, ddinisan kao
maksimalan broj veza kojc se mogu prekinuti. ada sc mreza ne rasccpi na dva
23. Raz.motritc topologiju dvostrukog torusa sa slikc ali velicinc k x k. Knliki jc
prccnik mrc7.c'' Pomoc': Razmatrajtc: poscbno parno i ncparno k.
24. lnterna mrc7.a jc ohlika kocke x x Svaka vo.a je dvosmcma i ima propusnu
moe od I GB/s. Koliki je bisekcinni propusni opseg mrc/c''
25. Amdahlov zakon postavlja granicu ubrzavanja paralclnih racunara. lzracunajte u
funkciJifmaksimalrm mog:uce ubrzanjc kada hroj proccsora rastc u bcskonacnost.
Kabc su pnslcdicc ovc gran icc z.a(= 0. 1'
1
26. Slika prikazujc kako uvec'avanje nc dajc raultatc: s magistralom. ali dajc
s rcsctJ..om. Pod prctpostavkom da svaka magistral a iii veza irnaju propusni opscg h,
itracunajtc prosei'an propusni opseg po pmcest1ru za svaki ml C:ctiri slucaja. Zatim
svaki sistem pro;irik do 64 proce:-.ora i ponovitc izracuna\ anjc. Sta je granica kada
broj procesora rastc u bcskonacnost'
1
27. U tckstu srno govorili o tri verzije osnovnc mctodc send: :-.inhronoj. blokirajuc'oj i
ncblokirajuc'oj. Prcdlozitc i cctvrtu mctmlu. slicnu blokirajuc'oj metodi send. ali
s nc;to drug:acijim svojstvima. Uporcditc svoju mctodu s blokirajucom m..:todom
send i navcditc prcdnosti i nedustatkc svojc mctodc.
2S. Razmotrite multiracunar koji radi u mrdi s hardvc:rsl-.im ncusmcrcnim ernitu-
vanjem. kao sto jc Ethernet. jc va/.an ndnos operacija citanp (kojc nc mcnpju
interne prmnenljivc stanja) i upisivanja (kojc menjaju interne promenljivc stanja)''


"' '
'


9
SPISAK KORISCENE
I PREPORUCENE LITERATURE
U prethodnih osam poglavlja obradivali smo hrojne teme s razlicitim stepenom clc-
talja. Ovo poglavlje je namenjeno citaocima koji ;iele da pmduhe pojedinc tcmc i1. Jb-
lasti organi1.acije racunara. Odcljak Y.l sadr7.i spisak prcdlozcnih naslova uretlcn
prerna poglavljima ove knjigc. U odeljku Y.2 dat je spisak svih knjiga i clanaka to1i
se pominju u ovuj knjizi. urcdcn abcccdnim reclom.
9.1 STA BI JOS TREBALO PROCITATI
U nastavku predlazerno sta bi jus bilo dohru procitati. Navedcni su udzbcnici. xi-
rucnici i pregkdni clanci. grupisani prema tcmarna obraclenim u uvoj knjizi.
9.1.1 Uvod i opsta literatura
Borkar. ,.Getting Gigascak Chips" (Cipovi giga klase)
Mooreov z.akon cc vcrovatno vaziti bar jos jcdnu deceniju i mozda dovesti dolipa
s milijardu tranzistora. Takvi cipovi nude i izazuvc i mogucnusti. G OVOlll Clanku jc-
dan ml !ntchJVih vodeL'ih istrazivaca razmatra huduce izazovc:, kau sto jc
tuplotc. vcci otpur i kapacitet sve manjih i sve bli;ic pm.tavljenih .i.ica itd. On rnislt da

650
Poglavlje 9: Spisak koriScene i preporucene literature
je buc!ucnost u visenitnom radu. u multiprocesorima najedinorn cipu i u boljoj struk-
turi memorije, a ne u sirovom povecanju rac!nog takta.
Colwell, The Pentium Chronicles ( Hmnike Pentiwna)
Robert Colwell je bio voda tima koji je projcktovao Pentium. U ovoj knjizi on go-
vori o !judi rna, strastima i politici iza ovog cipa.
Hamacher eta!., Computer 5th ed. (Organi::.acl)a rahuwra, 5. iz.danje)
Klasican uc!zbenik o organizaciji racunara: memoriji, ulazno-izlaznim
uredajima, aritmetici i periferijskirn uredajima. Glavni primeri su procesori 68000 i
PowerPC.
Heath. Embedded Systems Design ( Projektovanje ugradenih sistema)
Dan as prakticno sve sto radi na stru ju i skuplje je od 50 do lara ima u sebi ugraden
racunar. Takvi racunari su tema ove knjige. PocinjuCi od osnova ugradenih procesora,
mernorije i periferijskih uredaja. autor prelazi na interfcjse. operativne sistemc za rae!
u realnorn vrcmenu. softver i otklanjanje gresaka.
Hennessy i Patterson, Computer Archilecture A Quanlitntilc i\pproaclz, 3rd ed.
( K1antitutivni prist up arhitckturi racunam. 3. i::.danje)
Ovaj fakultetski udzbenik zalazi u detalje projektovanja proccsora i memorije. Po-
sebno sc istice vaznost visokih performansi. narocito kroz iskoriscavanje paralclizma
i paralelne obradc. Ako lelite da saznatc sve o projcktovanju savrsenog procesora, za-
virite u ovu knjigu.
Null i Lobur. The Esscnlial.\ of' Computer Organi::.ation and Architecture ( 0.\'!Wl'i or-
gani::.acije i arhitckture m(wwra)
Jos JCdan udzbcnik o organizaciji racunara koji obraduje slicne teme kao prcthod-
na knjiga, ali s manjc detalja.
Patterson i Hennessy. Computer Organi::.ation and Design, 3rd ed. (Otgani::.uciju i
projektovwzje raCwwra. 3. ialanje)
Ovo vise nije kn.Jiga od I 000 strana kao 2. izdanje; u 3. izdanju veliki deo matcrijala
je prenet na pratcci kompakt disk. U tckstualnom clelu knjige autori sc have mnogim
aspcktima arhitekture racunara, ukljucujuci aritmetiku, pcii'onnansc, putanju podata-
ka. paralelnu obradu. memorije. periferijske uredajc i klasterc. lako se o Pcntiumu 4
govori na vise mcsta, glavni primer koji se koristi ;:a objasnjavanje pojmovaje MIPS.
procesor koji jc projektovao Hennessy i koji je bio prvi komercijalni RJSC procesor.
predstavljcn 19?\5. goc!ine.
Price ... A History ot' Calculating Machines" t lstorija racunskih mas ina)
lako sumoderni racunari nasrali u 19. veku ( Babbagc), !judi su racunali jos od po-
cetka civili;:acije. Ovaj fascinantan. ilustruvan clanak prati istoriju brojanja. matcma-
tikc. kalcndara i iaacunavanja ml 3000 p. n. e .. pa do pocctka 20. veka.
Slater. f'ortmirs in Silicon (Si!icijwnski portreti)
Zasto Dennis Ritchie nije uspeo da diplomira na Harvardu> Zasto je Steve Jobs
postao vcgetarijanac'' Odgovor cete naci u ovoj fascinantnoj knjizi koja sadrzi kratke
biogralije 34 osobe kojc su uoblicile industriju racunara. od Charlcsa Babbagea do Do-
nalda Knutha.

:t
il
9.1 Sta hi jos trehalo procitati 651
Stallings, Computer Organization and Architecture, 6th ed. ( Orgwzi:acija i arhitek-
tura rac'wzara, 6.
Opsti tekst o arhitekturi racunara. Neke od tema kojima se bavimo u knjizi koja jc
pred varna obradene sui u Stallingsovoj knjizi.
Wilkes, ,Computers Then and Now'' (Rac'unari onda i sada)
Licno videnje istorije racunara od 1946. do 1968. godinc iz pera racunarskog pro-
jektanta-pionira i pronalazaca mikroprogramiranja, Mauricea Wilkesa. On nam prica
o ranim bitkama izmedu ,svemirskih kadeta", koji su verovali u automatsko pro-
gramiranje (pre-FORTRAN-ski prevoclioci). i tradicionalista, koji su programirali u
oktalnom brojcanom sistemu.
9.1.2 Organizacija racunarskih sistema
Buchanan i Wilson. Advanced PC Archirenure ( Napredna PC urlzirckwm)
lako pornalo nabacano. ova knjiga sadrzi dosta matcrijala o procesorima. magi-
stralama (PCL SCSI i USB). rrikljuccima (za igru. paralclnim i scrijskim) i drugim
komponentama PC racunara.
Ng. ,Advances in Disk Technology: Performance Issues" (Naprcdak u tehnologiji
diskova: problcmi performansi)
Ljudi vee najmanje 20 godina predviLlaju kraj magnctskih diskova. lpak. oni su i
dalje okn nas. A. prema ovom clanku, njihova tchnologija brm napreduje. tako da
cenm ih verovatno i u buducnosti vidati.
Messmer. The !tulispcnsu/Jic PC Hanhmre Book, -lth eel. ( o PC lwnlH'rll koju
nwrutc inwri. 4. i;:danje)
Ova knjiga od 1296 stranica (kojc obuhvataju 37 poglavlja i 7 priluga) mozda Valli
je potrcbna. mo/.da i nije, alije izvcsno dcbela. Gotovo sve sto treba znati o pruce,orima
XOx86. mcmorijama. magistralama. cipovima za podrsku i perikrijskim urcLlajima, de-
taljnu je nbjasnjeno u ovoj knjizi. Akn stc procitali slcdccu knjigu s nascg spiska i 7:clite
da predcte IU narcdni nivo tchniCkih detaija. pocnitc odavde.
Norton i Gcx>dman, !ll.li,fe rhe PC. 8!11 ed ( Unurur PC Ul("wwm, 8.
Vecina knjiga o hanhLru PC racunara pisanaje za osuhc ko.Jc se razumcja u e!ck-
trotehniku: njih tcsko citajtl softvcrasi. Ova knjigajc drugaciFL lilljOj je hardvcr ob-
ja;njen tehnickim. ali svima ralllmijivim jc1.ikom. Obulnaccni su procesori,
memorija. magi.,rrale, diskovi. monitori. ulazno-izlazni urcdaji, prenosivi PC racllln
ri, rad u mrc:Zi itd. Rctka i vrcdna !.,njiga.
Rubinson ... Tmvc:rd the Age of Smarter ( Ka pamctnijem sme.\tanju podataka)
pmbtaka pre;Iu jc dugacak putud dana kacla .;u J:a njega korisccnc me-
moriJe s rnagnctskim je7.grima i busene kart ice. Ovaj kratak C:lanak ra;.matra pros lost
sadasnjl>St i buducnostlchnologije sme:itanja pmlataka.
Scheible, ,A Survey of Sturagc Opti<ms" (!vlogucnosti smc;tanja pudatakaJ
Jos jedan prcgled telmolugije mcmorisanja podataka. !\utor ,;e bavi sz-
Luacijom. Ovde se raLmatraju razlicitc varijantc RA1v1memorijc. tles memorija, trake.
cvrsli diskuvi. diskete, kumpakt diskovi i DVD disk<ni.
)
d
:
I
,I
. -. .1
652 Poglavljc 9: Spisak koriscene i prcporucenc literature
Stan i Skadron, ,.Power-Aware Computing .. ( Racunarstvo koje brine o potrosnji
energije)
Racunari su bukvalno postali previse mocni- trose previse elektricne energije. sto
je rastuci problem u svetu. Ovaj clanak je uvodnik gostujuceg urednika za speeijalan
broj casopisa ft'EE Compuler Maga::.ine posvecen racunarstvu koje brine o potrosnji
energije.
Triche!. The 8038o, 80-18o, and Pemium Processor ( Procesori 8038o, 80-18o i Penlium)
Tdko jc ovu knjigu svrstati u neku kategoriju jer se ona bavi hardverom, softve-
rom i interfejsima. Posto autor radi u lntelu, neka ovo bude knjiga o hardveru. U njoj
cetc naci sve 0 procesorima, mcmorijama, ulazno-izlaznim urectajima i interfcjsima
cipova SOxS6. ali i o njihovom programiranju na ascmhlerskom jcziku. lako ima
samo!) 15 stranica, ona sadrzi skoro is to toliko matcrijala kao i Messmcrova knjiga jer
su stranice vcce.
9.1.3 Nivo digitalnc logikc
Floyd, Digilaf Fwulwnenluls, ?:!ih cd (Osnovi digiwlne Logikc. 8. i;danje)
Za citaoce hardverase koji /.ele dajos bolje proucc digitalnulogiku, ova ogromna,
izuzetnu ilustrovana, cetvorobojna knjiga pravi je dragulj. u brojnim poglavUima
opisujll sc kombinaciona logika, programabilni logicki urectaji, tlip-tlopovi, pomerac-
ki rcgistri, memorije, interfejsi i stosta drugo.
Mano i Kimc, rogic Ulld Colllplller Design FundWIIC!l/(l/,\, 3rd ed (Osnovi logike i
pmjektovunja mc'wwm, 3. ialwzjc)
lako ova knjiga nijc clcgantna kau Fluydova, i onaje dobar matcrijal za prouca-
vanje ninJa digitalne logike. U njoj se opisuju kornhinaciona i sekvencijalna kola, re-
gistri. memorije, konstrukcija proccsora i ulazno-izlazni urcctaji.
!Vlayhcw i Krishnan . .,PC! Express an<J Advanced Switching" (PC! Express i naprcd-
no komutiranje)
Magistrala PCI Express verovatnu cc zamcniti PC! magistralu u bliskoj buducno-
sti. a uvaj clanak je prirucnik o njoj: govuri se o slujevirna. kontroli programskog to-
ka. virtuelnim kanalima, komutiranju i usmcravanju.
Mazidi i Mazidi. The 80t8(J !Bl'v! PC und Conzpuribfc Computers, -lrfz ed. ( !BM-01' PC
80x8(j i A.olli{Jatibilni rucunuri, 4. izdanje)
Citaoci koji zdc da upoznaju sve cipove u PC racunaru. u ovoj knjiz.i cc pronaci
poglavlja posvecena glavnim cipovirna. kau i obiljc drugih infnnnacija o IB:\1 PC
hardveru i programiranju na asemblerskorn jeziku.
Roth. Fundumcnluls of Logic Design ( 0.\!W\'i projcktomnju log ike)
Ovaj ud.i:hcnik obraduje osnove prujc"-.tovanp Jigitalne logikc. od Bulovc algchre,
prcko logickih kola. brojaca, .-,abiraca. tlip-tlupova i drugih tipova kombinaciunih i
sckvcncijalnih kola.
653 9.1 Sta hi jos trehalo prucitati

9.1.4 Nivo mikroarhitekture
Burgeri Goodman, ,Billion-Transistor Architectures: There and Back Again'' (Arti-
tekture s milijardom tranzistora: tamo i natrag)
Zami,Jite da vam je 1997. godine neko ciao milijardu tranzistora i rekao: .. Napravi
cip". Ka"-vu li biste vrstu arhitekture tad smislili'J Septernbra 1997. godine, takvopi-
tanje je postavljeno sedmorici vrhunskih istrazivaca arhitckture racunara i oni su svJ-
jc odgovore objavili u casopisu IEEE Compzaer L'vlugaz.ine. Poslc sedam godina.
njihova predvidanja su uporectcna sa stvarnim stanjcm.
Handy, The Cache Mcmorv Book, 2nd ed. ( Knjigu o kd memonji, 2. i:dwzje)
Projcktovanje kesa dovoljm1 je vazna tema da joj sc posvete citave knjige. U o>oj
se uporeduju logicki i tizicki kes, raspravlja sc o duzini redova, uporcctuju se stratc-
gije direktnog i naknadnog upisivanja, sjcdinjeni i podcljeni kes. a razmatraju sc i
sollverski aspckti. Postoji i poglavljc o koherentnosti kda rnultiprocesora.
Juhnson, Sup!'rsculur L'vficropmccssor Design ( Projcktovanje Sllfh'r.\!-_ulun ih
procesora)
Za citaoce koje zanimaju Jcralji konstrukcija superskalarnih procesora. ova knjiga
je dollar pocctak. To sc govori o preu;.imanju i dckodiranju instrukcija, prekorcdnl>Tl1
izdavanju instrukcija. prcimcnovanju registara. rezervisanju resursa, prcdvictanju s}.D-
kova itd.
Shriver i Smith. ,The Anatomy of a High-Performance :'vlicroprocessor"' L-\natomija
procesora visokih performansi)
Ova knjiga jc dobra studija mikroarhitckture savremcnog proccsorskog l'i['<L U
njoj 'it: detaljno analizira klon Pentiuma- cip A1viD K6- s po.scbnim osvrtom na Jla-
ralelnu ubradu. r<ISporedivanJC instrukctja i optimiwvanjc perJ'urmansi.
Sima ... Superscalar lnstructiun Issue .. t Pmhlemi sa superskalarnim instrukcijama:
Supcrskalarne instrukcije su we va/nijc 1a procesore. :'vli snw se tc
temc clotakli u ovoj nasoj knjizi (prctmcnovanje. spekulativno izvr;avanjc iU.). a i
ovaj (Janak SC bavi lime. kau i 11\tlllgim drugim lCil1a!lla.
Wilson, .. Challenges and Treml:; in PnJces:,cH Design .. (lzazovi i trcmluvi u projcKlO-
vanju procesora)
Da li se proj.:ktuvanje pn_,ccsora !.aglibilo u 7.ivi pesak.'J Ni slucajno. Scst vr-
hunskih strucnjaka za arhitc"-.wru pron:sura i; kompanija Sun. Cyrix. l\luwruLt. Mi-
ps, Intel i Digital raspredaju o tutnc kuda skJccih nekoLko gudina stremc pr"c:esiJri.
Ovo bi bilo zgndnu procitati 200S. godinc tali isto taku i :-.ada).
9.1.5 Nivo arhitekturc skupa instrukcija
Antonakos. The !'t'ntium ivlicropmcessor ( ?mcesor !'enliwn)
U prvih dcvct pnglavlp UVL' knjige opisuje sc pmg:rallliranjc Penliuma na <bem-
blersknm jeLiku. Poslcdnp dva sc bavc Pcnliummim hardverom. Sve je Jopunjcno
brojnim primerima k,Jda i "bpt.njc'llJima f3lUS-a.

"
i.-:.
:if
654 Poglavlje 9: Spisak koriscene i preporui'ene literature
Ayala, The 8051 Microcontroller, Jnl ed. (Mikrokontroler 8051, 3. izdwzje)
Ako vas zanima programiranje cipa 8051, ova knjiga prcdstavlja dobar pocetak.
Bryant i o Hallaron, Computer Syslcms A Programmer's Perspeclive ( Racunarski si-
stemi i::. perspektive programera)
lako nije sasvim jasno organizovana, ova knjiga obradujc brojnc teme koje se ticu
nivoa ISA, ukljucujuci njegovu aritmetiku, razne vrste instrukcija, kontrolu toka i op-
timizaciju programa.
Paul, SPARC Architecture, Assembly Programming, and C (Arhitektura
SP/1.RC, asemblerskije::ik, progrwnirunjc i C)
Cudo nevidcno! Evo knjige o programiranju na ascmblerskomjeziku. a ona nijc o
!ntelovim procesorima 80x86. Ona govori o procesoru SPARC i nacinu njcgovog
programiranJa.
Weaver i Germond, The Archilccturc Manual ( Primc"nik ::.a SPARC arhilckturu)
Kako racunarska industrija probija granice izmedu drzava, standardi postaju sve
vazniji- toliko va2ni da sc s njima trcba upoznati. Ova knjiga jc definicija 9. verzije
procesora SPARC i nudi dubar opis unoga na sta treba da lici standard, alii obilje in-
formacija o radu 64-hitnog procesora SPARC.
9.1.6 Nivo operativnog sistema racunara
llart. .,Win32 System Programming"' (Pmgramiranje sistema Win32)
Za razliku ml gotovo svih knjiga o Windowsu, ova nc insistira na njcgovom gra-
lickom okruzcnju (cak sci ne pominje). Autor se usmcrava na sistcmske pozive koje
Windows ubezbeduje i na njihovo koriik'cnje za pristupanjc datotekarna. rad s memo-
rijom, upravljanje proccsima. mcduproeesnu komunikaciju, hipernitni rad. ulazno-iz-
lazne operacijc itd.
Jacob i Mudge. ,Virtual Memory: of Implementation"' (Virtuclna rnemorija:
prohlcmi sa implernentacijom)
Savrcmen i dobar uvod u sisteme virtuelne memorijc. Objasnjavaju sc razlicitc
strukture tahela stranica i TLI3 strukture, a objasnjcnja su ilustrovana konkrctnim pri-
merima proccsora MIPS. PowerPC i Pcntiuma.
Me Kusick et a!., Design and Ime!cJncniUtion of" thr .f..4 !JS/J Opemling Sv.\lc/11 ( l'ro-
jekto\'WJjc i imfJiemcntucija upcruti1nog sislcllla 4.4 /JSJ))
Za razliku od vec'ine knjiga o UNIX-u. ova pocinje l"otogratijom cetvorice autora.
snimljenoJ na konfcrenciji USENIX, od kojih su trojica mnogn toga napisali o sistemu
4.-1 HSD i potpuno su kvalifikovani da objasne kako on radi. Knjiga obrac1uje sistem-
ske po/.ivc, proccsc, ula/.-izlaz, a ima i izu/.etno dobar dco posvccen radu u rnrezi.
Ritchie i Thompson, ,.The UNIX System"' (Sistem deljenja vrcmena u
UNIX-u)
Jedan od prvih radnva o UNIX-u. Jos uvck ga vredi citati. lz ove male ,.semenke""
inastan jc rnocan operativni sistem.
1), I Sta bi jos trebalo proCitati 655
Russinovich i Solomon. Inside Microsoft Windows, 4th ed. ( Unutar Microsoftovog
Windowsa, 4. i::.danje)
Ako zelite da saznate kako Windows radi iznutra, ovo je knjiga za vas. U njoj se iz-
medu ostaiog govori o arhitekturi sistema, sistemskim mehanizmima, procesima,
programskim nitima, upravljanju memorijom. bezbednosti, ulazno-izlaznim operaei-
jama, kesu i sistemu datoteka. Knjiga je predvidena kao udzbenik za studentc racu-
narstva iii IT profesionalce.
Tanenbaum i Woodhull, Opcraling Systems: Design and Implementation, 2nd ed
(Operalivni sistcrni: projektomnjc i implcmcntacija, 2. iz.danje)
Za raziiku od mnogih knjiga o operativnim sistemima kojc se iskljucivo bave teo-
rijom. ova obraduje samo reie</antnu teoriju i ilustruje je razmatranjem koda jednug
stvarnog UNIX-u slicnog operativnog sistema, MINIX-a. koji se izvrsava na IBM
PC, alii na drugim racunarima. DetaljnP objasnjen izvorni k(kl srncsten je u dodatak.
9.1.7 Nivo ascmblerskog jezika
Levine. Linkers and Load!'rs ( Progmmi i uhluvanjc)
/\ko je povezivanje problem kojim sc bavite. a uzivate u razlicitim furmatima ob-
jckata oko sehc. razlici izmectu statickog i dinamickog povczivanja, razlicitim forma-
t i ma bibliotcka, ova knjiga je namenjena vama.
Saluman. Asscmhlers und Louder.\ (Ascm!Jieri i pmgnuni u(iluvwzje)
Svc sto 2elite da znate o radu ascmblera sjnlnim iii s dva prolaska, kao i o programi-
ma za ucitavanJc. na!at.i sc ovdc. Objasnjeni sui makroi, kao i uslovljeno ascmbliranjc.
9.1.8 Ad1ilckture paralelnih racunara
Advc i Gharaclwrlon, ,Shared l'vkmory C\msistcncy Mndcls: A Tutorial" (Mudcli
doslcdnosti del.Jcnc memmijc: prirucnikl
l\lnogi savrcmeni racunari. narucito multipruccsori. podr?avaju model slabije do-
slednosti od doslednosti rcdosleda. U ovum prirucniku razmutrcni su razli(iti mudcli
dmlcdnosti i uhja,:;njcno .JC bko radc. U knji/.i sc argument<lvano potvrduju i odha-
cuju hrojni mitovi duslednoj mcnwriji.
CPmer. Nel\wrk Sr.lll'lll.l nc.1ign ( l'mJckfmanje mrc;nih
Prvi dco ovc: knjigc govuri n klasicnnj uhradi paketa u mrcl.ama. au drugom dc:lu
se predstavljaju mrc:l.ni pmccsori i opisuju njihm a svrha, arhitektun; i kompromisi
k.oji sc moraju pra1 iti pri prujcktovanju. U trecem dclu knjige. kao primer iz prakse
opisan .1e mrc/ni pmc:csur ,'\gcre.
Dally i Tuwlc,, /'rinci;Jics um! Pmcti< es of fntcrcollnct"!ioll Selii"OI"ks ( Pri11ci{'i i
prukti<'nu l'rimeno inlernih
Ako se 1.animak 1.a interne mrd:c. treha ovo da pogledate. PLlsk U\'Oda u topolD-
giJU. dctaljnu se upisuju mrc/.c tipa kptira i tPrusa. kao i nehlukiraJliL'e mrcie. Zatim
skdi nekulik1l pogla\ ija o usmt'ravanju. kontroli toka. baferovanju, kruznom biuki-
ranju i srodnim temama.
' t:
656 Poglavljc 9: Spisak korisccnc i prcporuccne literature
Dongarra ct al., The Source hook of Purallel Computing ( Biblija paralelnog
ral'unurstva)
Programiranje multiprocesora i klastera prilicno sc razlikujc od programiranjajed-
noprocesorskog sistema. U ovoj knjizi, scdam vodecih strucnjaka il oblasti paralcl-
nog programiranja govorc o njcgovim razlicitim aspektima. izmcdu m.talog o
paralclnim arhitckturama, sortvcrskim tehnologijama, paralclnim algoritmima i izve-
snim aplikacijama.
Hill. Should Support Simple Memory-Consistency Models'" (Mul-
llprucesori treba da podi'Zc jednostavne modele doslednosti mcmorije)
Opustena scmantika memorijc aktuelna je i kontmverzna lema u oblasti pro-
jektovanja memorijc multiprocesora. Modeli slahijc doslednosti dopustaju izvesno
hardversko optimizovanje (npr. preurcdcnje redosleda zahteva upucenih memoriji),
ali to otezava programiranje. ll ovum clanku autor razmatra mnoge teme kojc se od-
nosc na doslcdnostmcnwrije i zatim zakljucuje da opustena scmantika mcmorije do-
nosi vise stele nego koristi.
Hwang i Xu. Sculahle l'umllel Colllflllting (Ska/uhi/no pllralebw ro{wzurslvo)
Duticuci se i hardvcra i softvera, autori daju iscrpan, ali citljiv priLlz paralclnog
racunarstva. Nekc od lema se odnose na UMA i NUMA multiprocesorc, MPP multi-
raCunarc i klastcre radnih stanica, na prosledivanje poruka i paralclno prograrniranje.
Lawton. ,Will Network Processor Units Live up tn Their Promise''" (Hl1ce li mre/ni
pruccsori ispuniti oceki vanja'
1
)
lako su mrezni procesori napravljeni da hi ubrzali obradu mre:1.nih pakcta, njihov
uspeh nije garantO\ an. U ovom clanku au tori kriticl-.i razmatraJU tchnulogiju i ncke ci-
nioce koji mogu da uticu na uspch iii new.pch ovih procesora.
i\lcKnight ct a!., ,Wircles.'i Grids' (Beticne
Rdctke Sll tek usle u praksu. a lljihova sledeca gcneracija- ht:Zicne mrde- vee
je na horizontu. Slicno ohicnirn i ove poveLuju vise organizacija u jedin-
stvenu virtuelnu organizaciju da bi Lajednicki koristile resurse. s tim stn sc za poveli-
vanje mobil nih kmisnika sa odgm arajucim resursirna koristi heiicna tehnologija.
f elva slcJcca (Janka Sll 0 bezicnim resetkama.
Pfister, In Seurc!t of C/us/ers, 2nd ed I U ()()fru:.:i :.:n k/us/erinw. 2. i:.:dunje)
lako cete definiciju klastera naci tek na T2. stranici (skup racunara koji radc lajed-
nul. ova knjiga ohuhvata i svc uohicajcne multiprocesorske i rnultiracunarske sistcme.
Dctaljno se opisuju njihov hardver. soft\er, perfmmanse i raspolozivust. Upuzorava-
IIlo citaoca da autorov ncfonnalan stil koji Je u pocctku zabavan. potpuno do
petc,lute strane.
Snir et al., Mf'/: The Co111plcte Monual (/v/1'1: l'otpun reji'tnztni prim('nik)
ll nasluvu jc svc receno. Akn /elite da naucite programiranje u okruzcnju MPL
pngkdajte uvu knjigu. Ona pol-.riva komunikaciju od tacke do tacke i kokktivnu
komunikaciju, komunikatore, rad sa okruzenjcm. pravljenjc protila itd.
9.1 Sta hi jos trehalo procitati

657
Stenstrom et aL .,Trends in Shared Memory Multiprocessing" (Trcndovi u razvou
multiprucesora s deljenom memorijom)
lako sc na multiprocesorc,; dcljenom rnemorijmn cesto gleda kau na superracunl-
re namenjene obimnim naucnim izracunavanjima, naucne primene su samo mali deo
njihovog trzista. U ovom Clanku autori razmatraju gdc !eli stvarno trziste ovih rai:J-
nara i kakve to ima posledice po njihovu arhitekturu.
U ngcrer et a!.. ,A Survey of Processors with Explicit Multithreading" (Prcglcd pu-
cesora sa eksplicitnim visenitnim radum)
lJ clanku je objasnjeno kako radi svaki od glavnih tipova viscnitnog rada (u vis,J-
koj rczoluciji, uniskoj rezoluciji i simultanog) i dati su brojni primeri
nih i racunara kl'lji koristc ove tehnike.
Wolf, ,The Future of Systems-on-Chips: ( I3uduL'nost multiprocesor-
skih sistema na jednom cipu)
Posto JC opisao projektc tri postojeea sistema na jcdnom cipu, au tor analizira hard-
verske i softverskc izalove za huduce sisternc. U hardvcrske problemc spadaju raL u
rcalnom vremcnu i oslobadanjc loplote. lJ softverske spadaju prublematika opcrat:v-
nog sistema i eventualni bezbcdnosni prohlemi.
9.1.9 Binarni brojcvi i brojcvi u formatu pokretnog zareza
Cody, ,Analysis of Proposals for the Floating-Point Standard" (Analiza prcdlcga
standarda za format pohetnug lare/a)
Pre nekuliko godina. institutlEEE projckto,aojc arhitekturu s kmi;cenjcm hrojc-
va u forrnatu pukretnog z.areza kojaJe postala de ;;lt'tu stancbnl t'a sve savrcmenc pro-
cesorske cipove. Cody rannatra razlicitc pruhkmc. predluge i knntroverzt: kuji su "c
pojavili tokllm pnslupka qandardit.acije.
Koren .,Computer Arithmetic Algorithms" (1\lgnntmi racunarskc aritmcttke)
Potpuna knjiga o aritmetici. pw.ebnu usmercna na 1a br;o sahirar;jc.
mnozenje i deljenjc. Veoma prcporucijivo svaf-Dn:c: ku misli dajc sve stu trcha 1.:".<tli
u aritmctici naucio u srednjuj
IEEE. f'mc. o{ tile n-rlz SmlfJI.'.Iillt't on Colllf!lll<'r Aritfz111etic ( tw!tnu 11<1'?
Simpo:.zju11w o ru{znwnkoj ariiiiii'Iici)
Nasuprot pnpularnum mis!jcnju. aritmctiLt jc' vcuma /.ivu istraiYa"ko u
kome se rada mnogo clanab kdjC pisu ali 1 koje drll[!i pi>u lLl
bi ih rnatt'matit.'ari citali. U <>V'Dj senji ralh>va sa Simpuzijuma sc. i!lllc'dtt ostaluC!. pri-
kazuju nova s:unanja na podmcju vriu brzog sabiranja i mnoienja. arirmcr,o.,,i'-
VLSI hardvera, koprocesnra. tukrancije i
Knuth. Sclllinwncri<al :\lgoritluns. 3nl ed. I n!goritmi. 3. i;dun!t' 1
Obiljc matcrijala o puz.ici,>ntm hrujl::milll ,;istL:nima, aritm,tic:i :1r<'icva u f,mn.ttu
pokretnog zaro.a. aritmctici i slu.:':lJnim n::ticripl
LahtevJ i LasluL:ujc da ga u procilate.
\,"::
' >l''
658 Poglavlje 9: Spisak koriscene i preporucene literature
Wilson, ,Floating-Point Survival Kit" (Komplct za prdivljavanje medu brojcvima u
formatu pokretnog zareza)
Lep uvod u brojcvc u fonnatu pokretnog zareza i standardc, za one koji mislc da
se svet zavrsava brojcm 65.535. Razmatraju se i neki popularni testovi performansi
pri radu s brojevima u formatu pokretnog zareza, kao sto je Unpack.
9.1.10 Programiranje na asemblcrskom jeziku
Blum, Professional Assembly Language ( Profesionalni asemblcrskije-:ik)
Vodic za programiranje Pentiuma na asemblerskom jeziku za profesionalce. Posto
je knjiga namenjena profesionalcima, autor pretpostavlja da na svom Pentiumu
izvrsavatc Linux i usrcdsreduje se na Linuxov asemblcr i GNU alatke, kao i na ob-
jasnjavanje Linuxovih sistemskih poziva.
Irvine. Assembly LanguugcjiJr In tel-Bused Complllcrs, 4th ed. (Asemhlcrski je::ik z.a
rw'wzarc nu /){lz.i lntclmih procesora)
Tema ovc knjige je prugramiranje Intclovih procesora na ascmblerskom jeziku.
Obraduju sc i programiranje ulazno-izlaznih operacija. makroi. datoteke. povezi-
vanjc. sistemski prekidi i mnoge druge srodne tcme.
9.2 ABECEDNI SPISAK LITERATURE
ADAMS, JH., DULCHINOS, D.: ,.OpenCabJc: !!o.fT Comnwn. Muguz.inc. vol. Jtl, pp.
05, jun 200 l.
ADIGA, N.R. et al.: .. An Overview of tile RlueGcnc/L Supercomputer." Fmc. Super-
conztmting 200:!, ACM. pp. J-22. 2002.
ADVE, S.V., CHARACHORLOO, K.: ,Shared Memory Consistency !vlodcls: /\Tuto-
rial:' !EFT Cmnputo Mugaz.inc. "''!. 2LJ, pp. (;(;-76. dcccmbar l9LJ6.
ADVE, S.V., HILL, \1.: .. Weak Ordering: A New DclinitiPn," !'me. 17th ,\nn. tnt'!
Snnp. on Colilpulcr,-\n-h.. AC:M. pp. 2-1-+. l'JLJO.
A(;ER\VALA, T., COCKE, J.: .. fligh Pcrfllrmancc Reduced lnstructi<Jn Set Prnccs-
sors:IB:Vl T.J. Watson Research CenkrTcchnical Repmt RCI2--!3--l. l')i)7.
ALAi\ I ELI>EE:-.1, A.R, Wood, D.A.: .,Adaptive Ctchc C<mlp!u.,ion fm lligh-l'erforman-
cc Processor,: Fmc. 31st i\nn. ln!"/.)\ttl. on Colllflltter Arclz. ;\C\1, pp. 212-223, ..J()0--1.
ALMAS!, G.S. ct al.: .,Systclll lvLtnag:::mcnt in the BlueCcnc/L Supcrcumput:r: l'rr>,.
f7!1z In!' I l'uru/!,1 Disl!: !'tw. S\11/f' .. lEfT. 2<i0.1a.
AL\IASI, C.S. et al.: ... \n Overviev, Of The lllucgtnc/L Syskm S<llhvc,rc Or_c;ani;ati-
nn: P111: Pmc. Lell<'i"l', vol. U. 56!-)74. april 2()0.\b.
Ai\IZA, C., CO\:,,\., D\\'ARKADAS, S., KELEilER, P., LU, II., RA.J,\t\IO"''Y, H..
YL:, \V., Z\Y\Ei\iEPOEL, \\.: .. Shatnl i\kntur;- Cllmpuring on a Net-
work of statinJh, .. ffcL'E ComjJ!iler vol. 29, pp. ichruar l 'J')!J.
it
.,,
' '
' -
."":"'*

9.2 Abecedni spisak literature 659
ANDERSON, D.: Universal Serial Bus System Architecture, Reading, MA: Addison-
Wesley, ll)97.
ANDERSON, D., BUDRUK, R., SHANLEY, T.: PC! Express System Architecture,
Reading. MA: Addison-Wesley, 2004.
ANDERSON, T.E., CULLER, D.E., PATTERSON, D.A., the NOW team: .,A Case for
NOW (Networks of Workstations)," fEEt; Micro Magazine, vol. 15, pp. 54-64, januar
1995.
ANTONAKOS, J.L.: The Pentium Microprocessor, Upper Saddle River, NJ: Prentice
Hall, !997.
AUGUST, D.I., CONNORS, !,).A., MSHLKE, S.A., SIAS, j.W., CROZIER, K.M.,
CHENG, B.-C., EATON, P.R., OLANIRAN, Q.B., HWU, W.-M.: .,Integrated Pre-
dicated and Speculative Execution in the IMPACT EPIC Architecture," Proc. 25th
Ann. lm"! Symp. on Computer Arc/1.. ACM, pp. 227-237,
AYALA, K: The 8051 Micmcontml!cJ; 3rd ed .. Clifton Park, NY: Thomson Delmar
Learning. 2004.
BAL, H.E.: PmgraJ!lllling Distribu!cd Srslcms, Heme! Hempstead, England: Prentice
Hall Jnt'l. !99!.
HAL, ll.E., BHOED.JANG, R., HOFMAN, R, .JACOBS, C., LANGENDOEN, K.,
RUHL, T., KAASHOEK, IYI.F.: ,.Performance Evaluation of the Orca Shared Object
System," ACM Tmns. on Computer Syslelll.\, vol. !6. pp. l-40. januar-fcbruar
BAL, H.E., KAASHOEK, M.F., TANENBAUM, A.S.: ,.Orca: A Language for Parallel
Prugramming of Distributed Systems: !EfT Truns. on Sofilmrc Engineering, vol.
pp. 190-205. mart !992.
BAL, H. E., TANENBAUM, A.S.: .. Distributed Programming with Shared Data, Proc.
IYI'iR lnr'! Conf on Compttler l.angzwges, IEEE, pp. 1988.
BARROSO, L.A., DEAN, .1., HOLZLE, U.: ,.Web Search for a Planet: The Googlc Clu-
ster Architecture," !EEl: Micm Maga:inc. vol. 23, pp. 2003.
BECHINI, A., CONTE, T.l\1., PRETE, C.A.: .. Opportunities and Challenges in Embed-
eke! Systems," JELL /'v!icm Mugu;int', vul. 24. pp. jul-avgust 2004.
BENIN!, L.. DE 1\IICHELI, G.: .. Netvvorks un Chips" A New SoC Paradigm, !FE!:'
Compwer Mugu:inc. vol. 3:i, pp. 70- n, pnuar 2002.
BERMAN, F., FOX,(;., HEY, A . .J.G.: ,.Grid Computing: Making the Global Infrasttruc-
ture a Reality," 1-lobukcn. NJ: .John Wiky. 2003.
BJORNSON, R.D.: ,Linda 011 Di.stributcd Memory i\1ultiprocessors," Ph.D. Thesis. Yak
!Jniv .. lSlLJ3.
BLUl\1, R.: fJwjt's.\ionu! As.\etll/J!r (wzguuge. New York: Wiley, 2005.
BLE\IRICH, M., CHEN, D., CHIU, C., COTEUS, P., GARA, A., GIAJ\IPAI'A,
1\I.E., HARING, R.A., HEIDELBERGER, P., HOENICKE, D., KOPCSAY, G.V .
OHI\IACHT, M., STEINMACHER-BlJROW, B.D., TAKKEN, T., VRANSAS, P.,
LIEBSCII, T.: ,.An Overview of the BlucCcne/L System,', IBM J. Research mulDe-
vei., vol. 40. mart-maj, 2005.
660
Poglavljc 'J: Spisak kol"isccnc i prcporuccnc literature
HOHKAR, S.: .,Getting Gigaseale Chips,"' Queue. pp. 26-:l.l, Oct. 2003.
BOSE, P.: ,Computer architeclllrc research: Shifting priorities and newer challenges."
JE12' 1Hinn vol. 24. p. 5. novcmbar-decembar 2004.
BOUKNIGHT, W . .J., DENENBERG, S.A., MCINTYRE, D.E., RAl'iDALL, J.l\L,
SAMEH. A. H., SLOTNICK, D.L.: .. The llliac IV Systc:m, ,, Pmc. lf:'EF. pp.
april 1972.
BRIGHTWELL, R., CAMP, W., COLE, B., D E BENEDICTIS, LELAND. R,
TOMPKINS, ,J.: ,Architectural Specitication for Massively Parallel Computers- An
Experience and Measurement-Based Approach.'' [Prihvaccno za stampanjcj.
BRYANT, R.E., O'HALLARON, D.: Computer Srstems ;\ Prugran1mer\ l'er.\'f!iTiile
Upper Saddle River, NJ: Prentice Hall, 2003.
BUCHANAN, \V., WILSON, A.: Admnced PC Arcliilcclw-e. Reading. MA: Addison-
Wc,Iey. 200 I.
D., COODMAN .J.R.: ,Billion-Transistor Architectun;,: There and Back
Again," ll:LF Computer vol. 37, pp. 22-20. mart 2004.
BCRKHARDT, H., FRANK, S., KNOBE, B., ROTHNIE, .J.: ,Overview of thl' KSR-
1 Computer System," Technical Report KSR-TR-920200 I. Kendall Square Research
Corp. Cambridge. MA, 1992.
CAIN. H., LIPASTI, 1\1.: .,Memory Ordering: A Value-Based Approach," Pmc. 31 rh
;\Ill!. fnt'l S\'lllf!. on Co!llf'lllcr ;\rei! .. AC\1, pp. 90-lO I, 200-t
CALCVTT, D . COWAl\, F., Pi\RCHIZADEH, H.: 8051 IYiinwonlmlli-'r' .In .lf'f'li-
cutions Bused lntmduclioll. ()\ford: i'icvv ncs. 2004.
CARIUEHO, N., GELER.'JTER, ll.: .. Linda in Conte.\t," Collllllw:. o/thl' ACM. vol. 32.
pp. 444 I
CU.\RLESVVORTH, A.: ,The Sun Fireplanc lntc-rconncct.'' fLTE Micro ,\/,!g<nne. vol.
22. pp. pnuar-fc:hruar ...'li02.
CHARLESWORTH.:\.: .. The Sun Fircr,Jant' Interconnect." l'rcc Con( 1111 High i'cr(
:Yetworki11g !lnd Colllf!llling. AC:\1. 2()1) I.
CHARLESWORTH, A .. PHELPS. A .. \VILLIA:\IS. R .. GILBERT. G.: .. Ctg:Jpl:Jnc-
XB: Extending the l iltr:: Ent-:rprisl' fan,i:v ... Fmc. f!or f,lii'I"CI>il!lcc/.\ \', ILL!:, I ')91\.
CHEN. L., DROPSHO. S., .\I.BO"<E.'-;1, D.H.: ,Dyn:tmJc DaLt llqccndcnce Trad .. i11g
and its Application to Branch Prcdiciir!ll ... Pro,. ,\'ill[/i h:'l S\"!llf'. uil
lllutlce Conl[>!llerAn-li., IEEE. pp. IJ)-7X . ...'I10.i.
CHOU, Y .. FAHS. B., ABR.\H.\.\1, S.: .. Optiminttioth fur Ex-
ploiting i\!cmon-Lcvell'araiL:i>,tll,I''ICI) f':;,,. 3/sr. 11111. fnr'l Svlllf.'. 011 Co'"f'll'cr
,.\rei!.. ACvl, pp. 76-"!/, 2004.
CLAASE:'Ii, T.A.C.l\1.: .. Sy,Lcm <'11 :1 Chip: Changing IC De,ign l""cLty and in tk h.t-
ture," !!':FE ,'v/icm Jlm;u:::ine. 10!. 23. pp . ...'li-26. rmj-Jllll 2\JO.i.
CODY. \V . .J.: .. Analysis llt" Prc'P"'"\' l"ur the Huating-f'uint StamLtrd ... !LLL' Cu111pu:u
Mugu.:inl.', vol. 14, pp. 63-M-\, m:.rt I'1S I.
9.2 Abeccdni spisak literature
661
COHEN, D.: ,On Holy W:1rs and a Pka rur Peace." fEEt'. Computer vol. I+.
pp. oktobar I.
COLWELL, R: Th" l'eruium Clzmnicles New York: Wiley, 2005.
COMER. D.E.: .. Network Sy:'tcms Design Using Network Processors: Agerc Vcrsior,"
Upper Saddle River. N.l: Prentice !Iall. 2005.
CORBAT<Y, F . .).: .. PUI a' a Toul for System Programming," Duwmation, vol. 15. rP-
68-76. n1aJ 1%9.
CORBAT<Y, F . .J., VYSSOTSKY. V.A.: ,,ntroduction and Overview of the MULTlCS
System." Proc. FJCC. I' I' 1 S5-l'J6, 1965.
CROWLEY, P., ;\I.A., HADll\liOGLll, H., ONUFRYK, P.Z.: Net1wrk
l'mcessor D<'sign : [.,suo and Frut"tices, Vol. I, San Francisco: Morgan Kaufmann.
2002.
DALLY, W.J., TO\VLES, B.P.: Principles and !'mcticcs of Interconnection Networks,
San l\lurgan Kaufmann. 2004.
lMNESHBEH, A.K .. IL\SA.'IJ, 1\I.A.: ,An:a Efficient lligh Speed Elliptic Curve Cup-
tuprocessor for R.andorn Curves.'' Proc. lnt'l Con( on In( Coding speculalive
ncc;ttion und Com;nuing, IEEE, pp. 2004.
DE.\=". A.<;.: .. Erti.:icnt Rc<tl-Timc Fine-Craincd Concurrency on Low-Cost
tmlkr,," Jf:LE Micro Mugu:.ine, vol. 24. pp. I 0-22, Jlll-avgust 2004.
DE.'i."\ilNC, P..J.: .. The Working Set Model for Program Behavior,"' Commun. of the
ACM. vol. II. pp. 32.1-.l.B. maj
Dl.l KSTRA. E. W.: .. GOTO Statement Considered Harrnful." Conunun. of" the .-\CM. vnl.
II, mart 196ila.
l)I.JKSTRA. E.\V.: ,Co-operating Sequential Processes,'' in Progrwnming Lungua<es.
I C.i.cnuys (,;d. 1. i\cw York: Academic Press, l968b.
DO'<.\LDSO"'. C., JONES. D.: .. Cable Television Broadband Network Architectures:
I t:Lt.' Colllll'llll .. vol. 39, pp. 122-126. jun 200 I.
I>ONC \1-HU. J., FOSTER, I.. FOX, G., GROPP, W., KENNEDY, K., TORCZON,
L.. \-V HIT E..\.: The Source hook oj"Parullel Cnlll[JU!ing. San Francisco: Morgan Kauf-
rnan. 2t)()_1.
DLIH)!S, :\L, SCHEURICH .. C., BRIG<;S, F.A.: .,l\kmory Access ButTering in Multi-
pnccs'< Pro- I 3th ;\nn. lnt'l Sv1np. on Computer Arc/1., ACM. pp. 434-442, I
J)l; l .0:\C. C.: .. The L\-64 .-\rchitecturc at Work." !ED-: Computer 1Hugu:.ine. vol 31,
l'P 2+-32. jUJ JL)'Ji).
DL'TT.\-ROY. A.: ,An Overview or Cable Modem Technology and Market Perspecti-
ves ... ! EFF C.mulllt/1. Alugldne. vol. :19, pp. 1-80. jun 200 I.
ESC!l\L\N:\. F., KL\t:ER. B . MOORE, R.. W:\LDSCII\l!DT, K.: .. SDi\ARC: An
I>..c.:iidLd C:Jche-Only JVkmory Architecture,'' /t.TE Micro A!ilg<I:.inc, vol. :?.2. PI= 62-
70. n1:tj-jun. 2002.
662 Poglavlje 9: Spisak koriScene i preporucene literature
FAGGIN, F., HOFF, lVI.E., Jr., MAZOR, S., SHIMA, lVI.: ,The History of the 4004,"
IEEE Micro !vlaga:::ine, vol. 16, pp. 10-20, novembar 19Y6.
FALCON,A., STARK, J., RAMIREZ, A., LAI, K., VALERO, M.: ,Prophet/Critic Hy-
brid Branch Prediction," Proc. Jlth Ann. lnt'l Symp. on Computer Arch., ACM, pp.
250-261, 2004.
FISHER, J.A., FREUDENBERGER, S.M.: ,Predicting Conditional Branch Directions
from Previous Runs of a Program," Proc. Fijih lnt'l Conf on Arch. Support./(Jr Frog.
Lang. and Operating Syst., ACM, pp. 85-95, 1992.
FLOYD, T.L.: Digital Fundmnentuls, Rtlz ed., Upper Saddle River, NJ: Prentice Hall. 2002.
FLYNN, D.: ,AMBA: Enabling Reusable On-Chip Designs:' IEEE Micro Maga:::ine,
vol.l7,pp.20-27,jull997.
FLYNN, M.J .: ,.Some Computer Organizations and Their Effecti vencss," I Elc'F Truns. mz
Computers, vol. C-21, pp. 948-960, septembar 1972.
:FOSTER, I., KESSELMAN, C.: The Grid 2: Blueprint ji'r a New Computing !nfru
strucrure, San Francisco: Morgan Kaufman, 2003.
FOSTER, I., KESSELMAN, C., NICK, .J.M., TUECKE, S.: ,Grid Services lor Distri-
buted Systems Integration," !ELE Computer Maga:::ine, vol. 35, pp. 3 7-46, jun 2002.
FOSTER, 1., KESSELMAN, C.: ,Globus: A Metaeomputing lnfrastructun; Toolkit.
!nt'l J. ofSupacumputer A[!plicutions, vol. II. pp. 115-128, 19l)8a.
FOSTER, I., KESSELMAN, C.: ,.The Globus Project: A Status Report." !I'PS/SPDP
'98 Col!lfJUting V\()f"kslwp, IEEE, pp. 4-11\, 1998b.
FOTHERINGHAM, .J.: ,.Dynamic Storage .<\!location in the Atlas Computer Including
an Automatic Usc of a 8acking Store." Coi!ZIIIll!l. of' the ACM, vol. 4. pp. 4.<5-4.i(,, ok-
tobar 1961.
GEIST, A., BEGUELIN, A., DONGARR,\, .J., .JIANG, \V., MANCHECK, R., SUN-
DERRA:\1, V.: PV!vl: Parallel Virtual MLI<'hine -A Usa\ Guidt! and iitioriulji1r N<'l
worked Purallel Co!llpllling, Cambridge, MA: i'vi.I.T. i l)l)4.
GERBER, R., BINSTOCK, A.: Pmgrwmning H'ith J-I,per-Thr{'({ding SanLI
Clara, CA: Intel Press. 2004.
GHEMAW\T, S., GOBIOFF, H., LEUNG, S.-T.: .,The Google Fiic System." Pmc.
19th Svll!l' on Operating Sssre111.\' Princi1>lc.\. i\Cl\,l, pp . ..:''l-43. 200.1.
GOODMAN, .).R.: .. Using Cache Memory to Reduce PrucessPr Mc'lll<'ry Trat'lic." Pmc.
lOth Amr. lm 'I ,)'vlilp. on Colllf'llta Arch .. 1\Cl\l. pp. 124-! 3 i.
GOODi\L\N, J.R.: .. Cache Consistcncy and Sequential C"nsistency." T<?ci!. Rep. 61,
IEEE Scalable Coherent Interface WorJ..ing Clruup, IEEE,
GRIMSHAW, A.S., Wl'LF, \\.: .. Legion: A Vic\\ from 50.000 1-'cct." Pro,. Fifth !nt'/
Sv111p. on I-ligh-l'erfimnuncc Distn!Jured CJ/!lf!!tling. IEEE. pp. il'J-'llJ, avgust i
GIU:\ISH.\ W, A.S., \\LLF, \\'.: .. The Legion Visit n of a \Vorldwidc Virtual Computer,"
Cmnm1111. o/!h(.} .-\CM. vol. 40, pp. 39-45. januar 1997.
.
9.2 Abecedni spisak literature 663
GROPP, W., LUSK, E, SK.JELLUM, A: ,Using MPI: Portable Parallel Programming
with the Message Passing Interface." Cambridge, MA: M.I.T. Press, 1994.
GURUMURTHl, S., SIVASUBRAMANIAI\1, KANDEMIR, M., FRANKE, H.: ,Re-
ducing Disk Power Consumption in Servers with DRPM," IEEE Computer Magazine,
vol. 36, pp. 5Y-66, decem bar 2003.
HAGERSTEN, E., LANDIN, A., HARIDI, S.: ,DDM -ACaehe-Only Memory Archi-
tecture," !Ff:F Computa Magazine, vol. 25, pp. 44-54, septembar 1992.
HAMACHER, V.V., VRANESIC, Z.G., ZAKY, S.G.: Cumfmler Organization, 5th ed.,
New York: i\kGraw-Hi1l. 2001.
HAMMING, R.W.: .. EITm l)etecting and EITor CmTecting Codes," Bell Syst. Tech . .T.,
vol. 29, pp. 147-160, april1l)50
HAMMOND, L., WONG, V., CHEN, M., HERTZBER<;, B, DAVIS, J., CARL-
STROi\1, B . PRABHU, M., WIJAYA, II., KOZYRAKIS, C., OLUKOTUN, K.:
,Transactional Memory Cuhercnce and Consistency.'' /'roc. 31th Ann. In 'I Symp. on
Computer Arch., ACM, pp. 102-113, 2004.
HANDY, J.: The Cache Memory Book. 2nd t'd., Orlando, FL: Academic Press. I
HART, .l.i\1.: Win32 Sy.1renr Pmgrwmning, Reading, MA: Addison-Wesley, 1997.
HEATH, S.: l:'m!Jnldcd S\'.\ICIIIS nc.1ign, Oxford: Newncs, 2003.
HENKEL, .J., Hll, X.S., BHATTACH,\RYYA, S.S.: ,Taking on the Embedded System
Challenge," fEU:' Computer Magu;ine, vol. 36. pp. 35-37, april 2003.
HENNESSY, J.L.: .. VLSI Processor Architecture," IEEE Trans. on Complllers, vol. C-
.n. pp. 1221-1246. decem bar 1 9X4.
llEN.'IESSY, .J.L., PATTEJ{SON, D.A.: Computer Arclritecturc A Quwztitatin ;\p-
pmw-h. 3rd cd. San Francisco: Morgan Kaufmann. 2003.
HILL, i\1.: .,Multiprocessors Should Suppurt Simple tvkmory-Consistency Models,"
!f.Ef:' Computer Mugu:.inf. vol. 31. pp. 28-34. avgust
J!l:\T! >N, G., SAGER, D., UPTON, i\1., BOG<;S, D., CARMEAN, D., KYKER, A.,
ROUSSEL, 1'.: ,.The Micruarchtcctun; of the Pentium 4," Inti!! 7(cluwlogr Joumal.
vol. :i. pp. 1-12. januar-mart. 200 I.
C.A.R: ,.i\lonitors, An Operating System Structuring Concept." Cmnmwz. of'
rile A CAl, vol. 17. pp. 54'!-557, oktobar ]l)74; I'ITatum in Coll/1111111. of'ihf i\Civl, vol.
p. Y5. Feb. i<J75.
iiUJI, ,1., lHJRGER, D., CHANG, J., SO HI, G.S.:,. Speculative Incoherent Cache Pru-
ttlcois: I U:L Micro ,'v/ugu:.inL', vol. 24, pp. I 04-109, novcmbar-dccembar 2004.
1!\\'\:'-;(;, K., XU, Z.: Sculu/Jif Puml/el Computing, New Ymk: i'vlcCJraw-Hill, 199X.
!1\Yti. \V.-M.: .. lntroductitm lo Predicated ExcLutiun," ILEF Computer /'v/(lgu::ine. vol.
31. pp. 49-50, pnuar
JRVlNE. K: A \.\1'/llbi\' Lunguuge .fin lntcl-l!osed Computers. 4tll ed.. Upper Saddle
River, NJ Prentice Hall, 2002 .
664 Poglavljc 9: koriscenc i pteporucene literature
JACOB, B., MUDGE, T.: .. Virtual :\1emory: Issues of Implementation,"" IE/,1, Co!llfntta
Maga::inc. vol. J I, pp. J3-43, jun 1998a.
JACOB, B., MUDGE, T.: .,Virtual Memory in Contemporary Microprocessors: IEEE
Micro vol. 18, pp. 60-75. jul-avgust !998b.
JERRAYA, A.A., W.: MulliJ'rocessor S_vstems-mHr-Chip, San Francisco: Mor-
gan Kaufmann, 2005.
JIMENEZ, D.A.: ,l'ast Path-Based Neural Branch Prediction," !'roc. J(J[h /nr'l Svmp. on
Micmau:hitec"fure, IEEE., pp. 243-252. 2003.
JOHNSON, K.L., KAASHOEK, M.F., WALLACH, D.A.: ,CR.L: High-Performance
All-Software Distributed Shared Memory," Pmc. 15ih Svmp. on Operating Svstnns
Principles, r\CM, pp. 1995.
JOHNSON, M.: SuJ!cr.lmlur /vlicmprocessor Design, Upper Saddle River, NJ: Prentice
Hall. !9'JI.
KALLA, R., SINIIA ROY, B., TENDLER, J.M.: ,.IBM PowerS Chip: ;\ Dual-Cure
Multithreaded Processor." /FIT tlticm vol. 24, pp. 40-47. mart-april 2004.
KAPASI, lJ.J., RIXNER, S., DALLY, W.J., KHAILANY, B.,AHN, J.IL MATTSON,
P., 0\VENS, J.D.: .,Programmable Stream Processor.,; IE/:'E Computer
vol. J6. pfl. 54-62, avgust 2il0c\.
KAPIL, S., l\1 C GHAN, H., L:\WRENDRA, ,J.: ,A Chip Multithreaded Processor for
Network-Facing Workloads," ILF!c' AliCTO vul. 24. pp. 20-.10, mart-april 2004.
KATZ, R.H., BORRIELLO, (;.: Cmuunf'"ran f_ogic Design, Upper Saddle River, :\J:
Prentice Hall. 2004.
KAUF;viAN, C., PERLMAN, R .. SI'ECINER, l\L: Net>wrk St'curity, 2nd cd., tipper
Saddle River. NJ: Prentice Hall, 2002.
KER!VL\RREC., A.-M., KUZ, 1., VAN STEEN. :VI., TA!\'Ei\B.\ L\1, r\,S.: .A h:ulle-
work for ConsislL'nt Replicated \Vcb Objects," Proc. 1 'I C{)l1t: uu Uisn: Crmrpu-
ting Sui., JEEF, pp. 271J-21\4,
KIM, N.S., T., BLAAl'W, D., \IUDGE, T., FL\LTT:"iFR, K., II(,, J.S., IR-
WIN, i\LJ., KANI>Ei\llR, \1., V.: ,.Leakage Current: Lt\'
Meets Static Power." /ric/:' Conrpurer vol. _1(). (1X-75. dcc.cmh:tr
KNUTH, D.E.: .. An Empirical Study or FOR.TR.c\N Prugr:uns: SIJji>t urc. !'r,;<"!i, e c\
Erpcn,nce. vol. I. pp. I ()j.J.B. I 'J71.
KNUTH, D.E.: The .\rr o{Conl['llli'r Pmgrrunming: Fwulunrc!l!ui ,\/goriilunt. _::,d ui.,
Reading. MA: Addison- \Vesky. l')lJ7.
KNL:rl'll't l).E.: The Art of Colll,nttrer ProgrunJIJUn!_{: .Scnzinif!neri, u! ,\/giJriri;n: 3ul cd ..
Reading, ""I.\: Addison- Wl:'slcy,
KOGEL, T., :\IYER, H.: .. Hctcr<>:,!cnctu., \11'-SoC: the ,uiuri<ltlltJ si:,;nal
rrocessing,"' {'roc. -1/.\t Ann. Con( Oil lksrgn Ailtllli!lill{l/1, IFEY, I'Jl hX6-(Jl) I . .20114.
9.2 Ahecedni spisak literature 665
------ - ---
KONTOTHA:\'ASSIS, L, HUNT, G., STETS, R., HARDAVELLAS, N., CIERi\1-
AD, .\1., PARTHASARATHY, S., MEIRA, W., DWARKADAS, S., SCOTT, M.:
V1H-Based Shared Me!lwrv on Lo11 Lat.ncv Remote 1Hemorv Access Nenmrks. Pmc.
2-Jih Ann. In! 'I S\mp. on Conrpuler ,\rclz., ACM, pp. 157-l6'J. 1997.
KOREN, L: CompWI'r Arithmetic Algorirh111s, :--.l:ilick, MA:A.K. Peters, 2002.
KOllFATY, D .. :VL-\ RR, D. T.: Technology in the Ncthurst Microarchi-
tecturc," llo'E.t ivlicm Muga:/ne. vul. 2.1. pp. 511-65, mart-april 2003.
KUMAR, R., JOUPPI. N.P., TULLSE!\, D.:\1.: .. Conjoined-Core Chip Multirroccs-
sing: Pmc. :17th ln!'l Srmf' on Micn!i/rc!tuecnln'. IEEE .. pp. 195-206, 2004.
LAMPORT, L.: .. flow to a i\lultirrr,ccssur Computer That Con-ectly Executes
Multipnxc" Prugrams." IEEE Tmns. on Com[>llters. vol. C-28. pfl. 690-691. sc:ptcm-
bar 197').
LA ROWE, R.P., ELLIS, C.S.: .. Cum pari sun of Memury
Policies for NUf'v!A tvlultipmcL'S."'rs:' ACM Trans. on Conrpwcr Systems. vol. 9, pp.
J 19-363. nnvemhar 199 I.
LAVAG.'\10, L.: .. Systems on a Chip: Thl' l'int Electronic Frontier,'" /Et.L' Alicro 'Vlaga-
:.:ine. Ill!. 22. pp. 14-1 S. scptemhar-ukluhar 20tl2.
LA\\'TON, C.: .. Will Network Units Live up to Their Promise''," /LEE Com-
f!lllc'r Vlli. 37, pp. I J-15. arril 2004.
LEKK.\S. P.C.: Net1mr/.: f'mcnsor.1: :\rchitec/ures. Pru!ocols, and f'latjimn.t. New
'{or!-.: 2\JtJi.
LE\T\E, .l.R.: l.n:kcts ,,nd Lot:u'ers. San Fr:mcisco: Morgan Kaufmann. :2000.
Ll, K., llUD.\K, P.: .,\km.>l') Cohcrcncc in Shared Virtual 1\kmory SystL'lllS, .. ACM
"Ji-uns. "II Cn'''imler .'l\s!en;.,_ vol. 7. pp. 321-359. novembar 19S9.
Ll:VL\, F., C.-\ RltO, L., \'EL\ZCO, R., RELS, R.: ,,Injecting i\-lultiple Upsets in :1 SEU
Tolcr:tnt :-)()51 \licT<C.>nlrnllcr:' Pmc. Eiglllh lf.EL'Int'l On-Line 7isting \Vrwkshop
!FIT. p ll)J.Jul2Cil.'2.
LI:\E..::. c\.: ... \') Jl,::1r<>tH>ti>i lnkrconncct for Synchronuus SoC Design: IEEE Jficro
.\f,rc;:::u. \PI 2-L i'!' i2--:i.pnuelr-fchmar 2004.
LU, JL COX, \.1., IH'v.\RK.\DAS, S., RAJA\IONY, R., ZWAENEPOEL, W.:
,.S, :uc D1 -.t: i!t:tl'c! Sh:u<:d 'vkmory Support for Irregular Arplications: !'roc. Si.<lir
C"n( on fJri11. unri /'uu ''' c o{l'umllel Pmgt:, pp. 4:\-56. jun 1997.
iXKASlE\'.lCZ, ,1.:. \ii_,;,>r
1
.\ Sdlogistic, 2nd cd., 0\ford: 0.\ford Univer.sity Press.
I'J5rs.
IXTZ, .l., 1-L\S.\ '1. ,-\.: . .H:gi l'erfonnancc bi'(j,\ based Elliptic Curve
Cu-Pr''-'"""r." !'rc lnt 'I(',;:( on In/. Tech.: C 'oding uml Cotnf!Uiing. IEEE, pJ. 4S6-
-J.-lJ2. 2\Jil-l-
LY\'"IT'i:;:>:, K., loo, Y.: _ _i,,c:c:, and Ch.t!kngcs in Ubiquitous Computing.'" Cmzmun.
nfrlu.\CJ!. "':. 1:'_ pp. ckcemhar ::'002.
:
r,

:;;r,
n
666 Poglavlje 9: Spisak korisccne i prcporucene literature
MACKENZIE, l.S., PHAN, R.: The 8051 Microcontrolln; 4th ed. Upper Saddle River,
NJ: Prentice Hall, 2005.
MAJ'I,"O,l\l.M .. KIME, C.R.: Logic and Computer Design Fundwnentals, 3nl ed, Upper
Sacldk River. NJ: Prentice Hall, 2003.
MARTIN, A.J., NYSTROM, M., I'APADANTONAKIS, K., PENZES, P.I., PRA-
KASH, P .. WONG, C.G., CHANG, J., KO, K.S., LEE, B., OU, E., PUGH, J, TAL-
VALA, E- \'.,TONG, J.T., TURA,A.: ,The Lutonium: A Sub-NanojoulcAsynchronous
8051 f\iicrocontrollcr." Proc. Ninth lnt'L S_vmp. on Asvnchronous Circuits and Systems
IEEE. pp. 14-23, 2003.
MARTIN, R.P., VAHDAT, A.M., CULLER, D.E., ANDERSON, T.E.: ,Effects of
Communication Latency, Overhead. and Banclwidth in a Cluster Architecture," Proc.
24th, \nn. fill 'I Symp. 011 Computer Arch .. ACM. pp. 85-97, 1997.
MAYHEW, D., KRISHNAN, V.: , PC! Express and AJvanceJ Switching: Evolutionary
Path to Builcling Next Generation Inlet-connects," Proc. 11th Symp. on High Per( ln-
tacmutc<"ls IEEE, pp. 21-29, avgust 2003.
l\IAZIDI, M.A., M C KIN LAY, MAZIDI, J.G.: 8051 iv!icrocontroll<'r and t"m!Jeddcd
Svstems Upper Sacldle River, NJ: Prentice Hall, 2005.
MAZIDI. l\l.A., MAZIDI, .J.G.: The 80x86 IBM PC and Compatible Colltl>uters, 4th
ed.. Upper Saddle River. N.J: Prentice Hall, 2002.
l\1 C KNIGHT, L.W., HOWISON, J., BRADNER, S: ,Wireless Grids." IEEE Internet
Com1mting. vol. X, pp. 24-31. jul-avgust 2004.
l\1 C KUSICK, M.K., BOSTIC, K., KARELS, l\1., QUARTERMAN, J.S.: .,The De-
sign and Implementation of the 4.4 BSD Operating System," Reading. MA: Addison-
\Vcsky. I 996.
M C KUSICK, l\I.K., .JOY, W.N., LEFFLER, S . .J., FABRY, R.S.: .. A Fast hie System
for UNIX," ACM hans. on Computer Srstcl!ts. vol. 2, pp. l X l-197. avgust 1984.
l\1 C NAJRY, C .. SOLJ'IS, D.: . .ltanium 2 Processor Microarchitecture.'' IEEE Micro
Magu:inc. \Ol. 23. pp. mart-april 2003.
1\IIN, R., .lone, W.-Ben., HU, Y.: .. Location Cache: A Low-Power L2 Cache System."
!'ron. 201!-1/nt 1 Snnp. on Low Pml"er t"/c<"lrullics and Design, IEEE. pp. 120-125. av-
gust 2004.
;\IESSMER, H.-1'.: Tlu lm/ispm.lihle PC Hunllturc Hook, -ltlz cd., Reacling. MA: Addi-
son- Wcslcj. 200 I.
1\IOlJD(;JLL, i\1., YASSILIADIS, S.: .. Prcci,e Interrupts ... IEEE" .lo,ficm vol.
I h. pp . . .Januar 1996.
i\ll.!LLENDER, S . .J .. TANENBAUM, A.S.: . .lnuncdiatc Files: Sojimtrc -1-'rcl!"ti{"(' wul
Elj)('l"ience. vol. 14. pp. 365-36X. 1984.
NESBIT. K . .J .. SMITH, .J.E.: .,Data Cache Prcfctching Using a Glohal History HutTer,"
I'm,. /l){h lnt"i Swt;>. on High 1'1'1./ Con11>11tcr Arch .. '" !EEl:, pp. 96-106. 2004.
NG, S.W.: .. Advance' in Disk Technology: Performance bsucs." IEEE Collljltllt'l" lv!uga-
vul. 31. pp. 75-81. maj 199:--i.
-it


9.2 Abecedni spisak literature 667
NICKOLLS, .1., MADAR, L.J. III, Johnson, S., RUSTAGI, V., UNGER, K.,
CHOUDHURY, M.: ,.Calisto: A Low-Power Single-Chip Multiprocessor Communi-
cations Platform," IELE Micro Magaz.inc, vol. 23, pp. 29-43, mart 2003.
NORTON, P., GOODMAN, .J.: Inside the PC, Sth ed., Indianapolis. IN: Sarm. 1999.
NULL, L., LOBUR, j.: The Essentials uj"Computer Organization and Architecture, Sud-
bury, MA: Jones and Bartlett, 2003.
O'CONNOR, .J.M., TREMBLAY, M.: ,.PicuJava-1: The Java Virtual Machine in Harcl-
ware.'' IEEE Micro vol. !7, pp. 45-53, mart-april 1997.
ORGANICK, E.: The MUL71CS System, Cambridge, MA: M.l.T. Press, !972.
OSKIN, M., CHONG, F.T., CHUANG, I.L.: ,A Practical Architecture for Reliahlc
Quantum Computers," Computer vol. 35, pp. 79-87, januar 2002.
OUAD.JAOUT, S., 1-lOUZET, D.: ,Easy SoC Design with VCI SystcmC Adapters."
Proc. Digital Sv.1tem Design, IEEE, pp. 316-323. 2004.
PAPAEFSTATHIOU, 1., NIKOLAOU, N,A, DOSHI, B., GROSSE, E.: ,.Network Pro-
cessors for Future High-End Systems and Applications," lEI:"!:" /VIicro ,'-'faga::.ine, vol.
24, pp. 7-9. scptembar-oktohar 2004.
PAPAMARCOS, M., PATEL., j.: .. A Low Overhead Coherence Solution for Nlultipro-
ccssurs with Private Cache Memories," Pmc. 11th !Inn. lnt 'I Sv111p. on Complllcr Arch ..
ACI'vl. pp. 348-354. l9t-:4.
I'ARIKII, D., SKADRON, K., ZHANG, Y., STAN, l\1.: .. Power-Aware Branch
tion: Characterization and Dc:-.ign." IE FE halls. on ( 'omputcrs, vnl. 53. I 186. fe-
bruar 2004.
PATTERSON, D.A.: ,.Reduced Instruction Set Conlputcrs: Coii/11/Llll. of" the ACA1, vul.
28. pp. X-21, januar
PATTERSON, D.A., GIBSON, G., KATZ, IL ,A case for redundant arrays of inexpen-
sive disks (RAID) ... Pruc. ACM SIGMOn lnt"l Co11j: 011 Managnncnt o(f)ara, ACM,
pp.
PATTERSON, D.A., HENNESSY, J.L.: Colltputer and Design. 3rd ed.,
San Francisco: Morgan Kaufmann, 2005.
PATTERSON, D.A., SEQUIN, C.H.: .. A VLS! RISC: IFFF ContJ>Itta vol.
15. pp. X-22. scptcmbar Jl)X2.
PAUL, R.P.: SPARC i\rcltite,ture. ,l..;selltbil" Language. Pmgrwwtting, and C. Upper
Saddle River. N.l: Prenttcc Hall. 19')4.
PFISTEH, G.F.: In Seurd1 o/Ciu.1tas, 2nd cd.. Upper Saddle River. 01.1. Prentice Hall.
I i)LJX.
POPESCU, B.C., STEEN, l\L VAN, T\NENB.\ Ui\1, A.S.: .. A Security Architecture lur
Object-Based Di,tributed Sysll:'ms,"' Prot. 18th Anlluill Com{llttcr Securitv :\ppl.
Cont. ACM. pp. 161-171,2002.
POlJNTAIN, D.: ,.Pentium: More RISC than C!Sc: Bvte. vol. l S. pp 1'!5-204, seplcm-
bar 1'!93.
< '

"
.,
"'

:.;,:
!.
-
66S l'oglavlje 9: Spisak koriscene i preporucene literature
--------
PRICE, D.: ,.A History c1f Calculating Machine-;," IEEE Micro Mugaz.ine, vol. 4, pp. 22-
52, januar 19S4.
R,\DIN, G.: .,The 801 !'vlintct1n1puter ... Cn111puter Arch. News, vol. 10. pp. 3lJ-47. mart
lLJS2.
HAi\L\N, S.K., PENTKOVSKI. V .. KESHAVA, .f.: .. Implementing Streaming Sfl'vlD
Extension:, on the Pentium ill Processor." IEEE lvficm /v/aga;ine, vol. 20, pp. 47-57,
jul-avgust 2000.
RAVIKlii\L\R, C.P.: .. !'vlultipr<'CC""r -\n.hitectures for Embedded System-on-a-Chip
Applications." /'me. 11111 Ill!'! ( 'n:f oil 'vl.SI Design. IEEE, pp. 512-5ILJ, pnuar 2004.
RITCIIIE, D.l\1., K.: .. The UNIX Time-Sharing System," Commun. of
lite ,J,CM. vol. 17. pp. Jhj-.' 75, jul 197 -l.
ROBIJ\SON. <:.S.: ,.Tmvrtrd the .-'\gc of Smarter Storage," Computer
vol. .l5, pp. 35--+ I. dc:cell!har 2002.
ROSENBLUi\1, \f., (HJSTERIJOliT, .J.K.: .. The Design and Implementation of a Log-
File: Sy.stL'Ill," /'me. Thinecnth Sl'lllfJ. 011 Of)('raling Systl'lll Principlcs,
AC!'vl. pp. ILJ91.
ROTH, C.l I.: Fundwucnru/s of' Design. 5Lh cd .. Florence. K Y:Thomson Enginee-
ring, 2003.
Rl :ss1 :\0\ ICH. :\I.E .. SOLO:\ION, D.A.: ivfi<To.loji Windows lntalla!s, 4Lil nl .. Red-
nwn<l. \VA: !'vltcrosoll Press. 2005.
Rl SU. S .. :\ll:L.JONO. H . CllERKAliER. B.: . .ltanium 2 Processor 6M." !ElcF Micro
vul. 24. pp 11)-1 S. mart-april 2004.
S.\ll \. n .. \It::-;l!EIUEE,A.: .. Pervasive Computing: A Paradigm fur the 21st Cc:ntu-
r; .... I!Jt Cuneur; r ,i/u:;u;inc. vul. :16, pp. 25-.l I, mart 200J.
S.\K.\0-ll'R.A. I\.: CompulcTs lnvisihlc," IEEE Micm /vlugu::ine, vol. 22, pp. 7-
1!. 2!111:2.
D.: ,\\.11'11/i>lt'r\ und Loaders. Upper Saddle River. NJ: Prentice Hall, 1993.
SC-\LFS. D . .l., C!L\K'\CIIORLOO, K.. THEKKATH, C.A.: ,.Shasta: A Low-Ovcr-
l'ca' I Si!rlwa<c:-( lnl> .\pproach for Supporting Fine-Grain Shared Memory." Prt}('_ Se-
,enilt 1m 'I C 'on( on. \;,ft. SttJ>port.Ji'r Pmg. Lung. alld Opo: Svst., ACi'vl, pp. I 74-185.
jqllh.
SCJ!E!BLE . .J.P.: .. .'\ Sur:c; of Storage Options, .. llc.l:l:' Conzput!'r :Hugu;ine. vol. 35.
pp. -4 2--f.h. 200.2.
SLLTZER, 'd., BOSTIC, K., l\1 C KUSICK, t\LK . STAELIN, C.: .. An Implcmenta-
tiun,,f" .1 L"g-Structutcd 1-"ilc System fm l..JNIX," I' me. Winrer Ji)93 USENIX Teclzniml
I'P- _107-326. 19{)3.
S!l.\0<1 .EY. T., A'ilJERSON, D.: PCJ S1srcm .\rchitei'lurc. 4Lh I'd., Reading. !'viA: Ad-
dJ j)qq_
Sl!ld\ ER, B.,-.:\! l"i.lL B.: Tlte. \tult!/11\' oj'a 1/ig/z-Pntimtwnu Microprocessor: A Sr-
''"''1.'. /',nJ'<'c'l!\'c', l.o_, .-\ larnitus, CA: IEEE Computer Society. ILJLJS.
,r
.'f
!
.;



9.2 Ahecedni spisak literature 669
SI!\IA, D: ,.Supcrscalar lnstructiun Issue," 1!-:t.'/i ivlicro Maga;ine, voL 17, pp. 28-39, sep-
tembar-oktohar I 9LJ7.
SIMA. D .. FOUNTAIN. T . KACSUK, 1'.: Admnced Complller Architectures: A Desig,z
Space ApJJrouch, Reading. M;\: Addison-Wesley. I LJ<J7.
SLATER, R.: PorLmits in Si!icull, Cambridge, MA: M.LT. Press, 191\7.
SOHI, G.S., ROTH, A.: ,.Speculative Multithreaded Processors," !EHE Computer 1\llit-
ga::ine. voL 34. pp. 66-73, april2001.
SNIR, l'vl., OTTO, S.W., HUSS-LEDER\IAN, S., WALKER, D.W., DONGARRA,
.J.: ,I,./ PI: The Complete Reference Mwlllal. Cambridge. MA: M.l.T. Pn:ss, 1996.
SOLARI, E., CONGDON, B.: PCJ t.'xpress Design & Svstem Architecture. Research
Tech. INc., 2005.
SOLARI. E., WILLSE, G.: PC! and PC!-X Hurdwwe wul Software, 6th ed., San Diego,
C A: Annabooks, 2004.
STALLINGS, \V.: Compuler Orguni::urion and Arcilirecture, 6th ed., Upper Saddle
River. NJ: Prentice Hall, 200.1.
STENSTROM. 1'., HA<;T<:H.STE:\1, E., LIL.IA, D . .J., MARTONOSI, M., VENUGO-
PAL. M.: .. Trends in Sharc:cl Memory !'vlultiprocessing." JEFF Compwer Magu;inr,
vol. .10, pp. 44-50, dccembar 1997.
STETS, H .. D\VARKADAS, S., HARDAVELL\S, N .. HUNT, G., KONTOTHANAS-
SIS, L., PARTHASAIUTHY, S., SCOTT. :\1.: .,C ASHMERE-2L: Software Cohcn:at
Shared Memory m1 Clustered Rcmute-Write Netwurks." Proc. 16Lh Swnp. on Of>emrit:g
!'rinci;J/es, ACM. pp. 170-1 X3, I <)LJ7.
SUII, T., LEE, H.-H. S., HLOliGH, D.M.: ,.Integrating Cache Coherence Protocols for
Hetcrugcncmrs Multiprocessor Systems, Part !." IEJ-.'t.' iv!icro JVIagu::illc, vol. 24, pp.
33-4 I, jul 2004.
SUMMERS, C.K.: ADS'!.: Stuntlard1, ftlljllonclllulion. and Arcluleclure, Boca RatPJ,
FL: CRC Press. ILJ')'J
Sl'NDERRA!\1, V.H .. : ,PVM: A Framework for Parallel Distributed Computing." Cnn-
cw-renn: Prunicc and Experience, vol. 2, pp .. "l15-.B9, decem bar i 990.
SWAN, R.J . FULLER, S.H., SIEWIOREK, D.P.: .,Cin* -!\Modular Multiprmoc,sor ...
Proc. NCC. pp. 645-655, 1977.
TAN, W.l\1.: Dnelof'ing USB PC Paiplwraf.,, San Diego, CA: Annah,,uk-;. 19LJ"7.
TANENBAU:\l,A.S.: .. Computcr Networks: Upper Saddle River. NJ: Prentice Ib!l. 21)()1.
TANENLL\UM, A.S.: ,.Implication;, uf Structured Programming for Machine
ture," Colllllll(ll. oft he ACM, vol. 21. pp. 237-246, marl 1978.
T,\NENII.\l.:M . \.S.: Opemlillg Sv.lll'III.\: Design and illlplctll,'llilllion. Uppc1
Riwr. NJ: Prenticc Hall. !987.
TANENBAU:\L A.S. \VOOOHULL. A.VV.: S,,,tem.\: !\sign und lmpf,llu'.t-
tuiion. 2nd cd. ll ppcr Saddk Ri vcr. NJ: Prentice ! JaiL I 'JlJ7.
'

670 Poglavljc 9: Spisak korisccnc i preporuccne literature
THOMPSON, K.: ,UNIX Implementation," Bell Syst. Tech. 1., vol. 57, pp. 1931-1946,
jul-avgust I 978.
TRELEAVE:"i, P.: ,Controi-Driwn, Data-Driven, and Demand-Driven Computer Archi-
tecture," Parallel Computing, vol. 2. I 9X5.
TREMBLAY, M., O'CON!'>;OR, J.M.: ,UltraSPARC 1: A Four-Issue Processor Suppor-
ting Multimedia," IEEE !V!icm Maga:::.ine, vol. 16, pp. 42-50, mart 1996.
TRIEBEL, \V.A.: The 80386, 80486. and Pentium Processor, Upper Saddle River, NJ:
Prentice Hall, 1998.
TUCK, N., TULLSEN, D.i\1.: . .Initial Observations of the Simultaneous Multithreading
Pentium 4 Processor." Pmc. 12th lnt'l Conf on Parallel Arch. and ConiJ>ilution Tech-
nitfW'S, IEEE, pp. 26-35. 2003.
UNGER, S.H.: ,A Computer Oriented Toward Spatial Problem:-.: Pmc. IRE, vol. 46, pp.
1744-1750. 195X.
VAHALIA, U.: UNIX Internals. Upper Saddle River, NJ: Prentice Hall, 1996.
VAHID, F.: ,.The Softening of Hardware," IEL'lc' Complller Magazine. vol. 36, pp. 27-34,
april 2003.
VAN STEEN, M., HOMBURG, I'. C., TANENBAUM, A.S.: ,.The Architectural Design
of Globe: A \Vide-Area Distributed System," Concurrencr, vol. 7, pp. 70-78, ja-
nuar-rnart 1999.
VETTER. P., GODEIUS, D., VERPOOTEN, L., GRANGER, A.: .. Systems Aspects of
APON/VDSL lkploymenl," IEEE Commun. Muga:::.ine, vol. 38. pp. 66-72, maj 2000.
\VEAVER, D.L., GERMOND, T.: The SPARC Architecture ivlwuwl, Version 9. Upper
Saddle River. NJ: Prentice Hall, 1994.
WEISER, M.: .. The Computer for the 21st Century: !tEE Per\'ilsi1e Conzpuring. vol. I.
pp. I 'J-25. Jan.-M..Jrch 2002: probitno objavljcno u casopisu Srientific American, sep-
ternbar I'J'Jl.
\\ ILKES, i\1. \'.: .. C:ompukrs Then and Now,"./. ACM. vul. 15, pp. 1-7, januar 1968.
WILKES, i\1. V.: .,The Best Way to Design an Automatic Calculating Machine,'' Pmc.
Mwzdzn'ler I
1
ni1'. Cn!lll>uler lnuugural Con(. 195 I.
WILSOi\1, J.: .. Challenges and Trends in Processor Design," IEEE Compurcr Magu:::.ine.
vol. 31, pp. 3'J--+8, januar 1998.
WI I .SON. P.: .. Floating-Point Survival Kit,'' 8\'le. vol. 13, pp. 217-226. mart 19:--18.
\\ OLF. \V.: .. The h1ture of Multipr()cessur Systcms-on-Chip.s," /'mr. -11.\r Ann. ('on/ on
\ur""'uliou, IEEE. pp. CJS l-6:-:5. 2004.


f

-:; '
l
1
:
.
" '-:t

A
BINARNI BROJEVI
Aritmeti!-.a koju koristi racunar u izvesnom poglcdu se razlikuje od aritmctike koju
koriste !judi. Najvaznija razli!-.a jc to slo racunari rade s brojevima konacne i fiksnc
tacnosti. Druga razlikaje to sto racunari ta pred:-.tavljan1e brojcva umesto dccimalnog
sistema po pravilu koriste binarni brojcani sistem. To su teme ovog dodatka.
A.l BRO.JEVI KONACNE TACNOSTI
Dok obavljamo neku aritmcticku opcraciju. obicno malo mislimo nato koliko jc
decimalnih mesla potrebno da se broj prcdstavi. Fizicari mogu da izjave kako u
svcrniru ima !07X elektrona, nc brinuci o tome sto se taj broj u razvijenom ohliku pisc
sa 79 decirnalnih mesla. Nc:ku ko ,.pdice" i.cracunava neku funkciju s od
sest znacajnih cifara. medurczultate ce iaacunavati sa sedam iii sa osam cifara. iii sa
onolii-.<l cifara k.oliko jc potrehno. Nikada sc neee pojaviti problem :ito list hartijc nijc
dovoljno sirok za zapisivanje sedmocifrenih brojc1a.
Kod racunara stvari stoje sasvim drugacije. U vecini racunara. koiicina memorije
raspol<l7ive za smestanjc brojeva obicno sc fiksira u trenutl-.u projektovanja racunara.
Uz odrcden napor. programer mo.'e da prikaze dva. tri i vise pula preci1.nije hrojeve
nego slo to diktira ta fiksna velicina. ali tone menJa prirodu ovc teskoce. Konacna pri-
ruda resursa racunara prisiljava nas da radimo samo s brojevima kuji 'e mogu pred-
staviti tik.snim brojem cifara. Takvc hrojeve zovemo brojevi konacne tacnosti (cngi.
jiniz e-JJreci.l it m llltlllhe rs).
671
'!
672 Dodatak A: llinarni hrojcvi
Da bismo proucili svoj-,tva brojeva konacne tacnosti. ispitaJmo skup pozitivnih ce-
lih brujeva koji se mogu predstaviti s tri Jecimalne cifre. daklc, bez decimalnog zarcza
i bcz znaka. Ovaj skup ima tacn(l 1000 clanova: 000, 001, 002. 003, ... , 999. U njcrnu
je ncmoguce izraziti oJrcdenc vrstc brojcva, na primer:
I. BroJCVC vcce od 999.
2. Ncgativnc brojcve.
3. Razlomkc.
4. lracionalne brojcve.
5. Knmpleksne brojevc.
Vazno aritmcticko svojstvo skupa svih cclih bnJjcvajestc zatvorcnost u odnosu na
operacijc sabiranja. mlu;.imanja i mnuzcnja. Drugim rccima. ;.a svaki par cclih hroje-
va i i j, i.;. j. i- j i i xj takmlc su ccli bmjcvi. Skup celih brojcva niJC zatvoren u od-
nosu na deljenje jcr postojc vrcdnosti i i j za kojc se ilj nc moze izraziti celim hrnjem
(npr. 7/2 i 1/0).
HmJcvi ktm<IClll' tacnosti nisu zatvurcni ni ta Jednu od cctiri osnuvne opcracijc.
kao Stu SC \ idj j; skdcL'cg primcra S trucifrcnim brojevima:
600 + 600 = 1200 fprcvclik l
003- 005 =- 2 (ncgativ,lll)
050 x: 050 = 25()() (prcvdikl
()()7 I ()1)2 = 3.5 (nijc cct> hruj)
Ncodgmarajuci rcn:ltati nH'gu sc '\ rslati u dve klasc kojc se medusobno iskljucu-
.JU: ruult,:tjc' vcL'i ,>LJ najvcL:cg broja i.1 :J,upa prekoracenja gornje granice) iii
.Jc' m:t11ji od najlll:mjeg hn>ja i1. <;J,upa tgn:\l-.a prckoraccnja donjc granicc), iii rezultat
liijC ni .JCd!il> lli drugu. \l'l: Jc'd!:O\LI\llll!IC Spada l1 SKll[1. U CCliri gornja primera. prva
tri rclL:itata -;padajtl u pn 11 U:hu. a pn,kdnji u drugu.
!'oslo ra(unari illlaJU kona.::'ne menH1rije i 'toga mnraju raJiti s hrojevima konacne
tacJH'iti. roultati odrcLknih i;ral'un:tvanj't bic'c pogrcsni. s tacke gledista klasicnog
l.Ircdaj za racunanjc h:uji daje pugrdan oJgovor. a tclmicki jc u savrsc-
IH>m st:tllju. mozc na prv: pug led tgktLtti k,;mislerw. ali je greska logicna posledica
nkgn1c konacnc primdc. :\cki racur1a:i imaju -;pc'CIJalan hardvcr koji otkriva grdkc
rn:kt)fi.t..:'C!1Ja.
hn>jc1a kunac'lll' ta.:'no-;ti r:vli"uje -;cod uobicajene algebre. Kao primer.
pra\ ild asnci_jativtH)sti:
u + (h- c)= (u + />)- ,.
l;r:lt'-:t:>apno <>he 1:: u = /00. h = -1-00. c = .100. Da biste izracunali
kvu -;t::,nu jcdn<tcinc. naj[>rc iu:t..'t::>aj:c t/J- c). stu dajc 100, a zatim to dodajtc vred-
!](lsti u. d:t !Ji,tc dl,hili :'U!l. Da bi;,tc i;r<JCurlali dc;,nu str:mujcdnacinc, prvo izracu-
n:r_:tc ( ,, + h 1. d:rjc prc:"cra.:'cnjc u aril!lletici trocifrenih cclih brojeva.
RL;ullat [11()f," Za\ isiti <ld r:cC:utLH:t. ali necc biti ll 00. Oduzirnanje 300 od
lmop Lt>Ji ni;c lliJIJ d:r1i >:(J(). Prcm:: 1<11ne. pr<tvihl asocijarivnosti nc va7.i. vecje
\'a/.an n_du<..;L..:J opL'rJcija.

A.2 Brojcani sistcmi date osnove
Kao drugi primer. razmotrite pravilo distributivnosti:
il X (/J - c) = a X iJ - U X C
673
Izracunajrno obe strane jcdnacine za 11 = 5, h = 210, c = l 05. Leva strana cc dati 5 x
I 5, Jakie, 75. Desna strana nece dati 75 jer opcracija a X h izaziva prekoracenjc.
Sudeci po ovim primerima, moglo bi se zakljuciti da racunari, kao urcdaji opste
namene, nisu bas pogodni za aritmcticke operacije. Ovakav zakljucakje, naravno, po-
grdan, ali smo ga namcrno izveli da pokazerno koliko jc vazno razumeti kako racu-
nar radi i koja su mu ograniccnja.
A.2 HRO.JCANI SISTEMI DATE OSNOVE
Obiean dccimalan broj koji svi poznajemu :,astoji sc od niza decimalnih cifara i
(mozda) dccimalnog zarcza. Njeguv opsti oblik i uubicajcno tumaccnje prikazani su
na slici A-1. Broj I() izabran je kao osnova (engl. radix) za stcpenovanjc t.ato sto mi
koristimo decimalnc brojeve sa osnovum 10. U racunarimaje ccsto pogodnijc kuristiti
drugaciju osnuvu. Najvaznijc tak vc osnovc su 2, 8 i 16. Bn,jeani sistemi na tim oSIHl-
varna su hinarni. oktalni i heksadccimalni.
Stotine
dn ...
d"
Desetice
d,
Deseti
Jedinice delovi
t t
do
d,
n
Broj L d, x10'
i -k
Stoti
delovi
d_2
Slika A-L Op,li ohlik dccimalrhlg hroja.
Hiliaditi
delovi
d.3 ... d.k
Brnjcani sistcrn usnovc k mora imati k razlicitih sirnbula za prcdstaviJcmjc cifara
od 0 do k- I. DcLimalni hrojevi su sastavljcni od 10 clccimalnih cifara
012345671-19
Za raL.Iiku od toga. u binarnim bmjevirna sene pojavljuje ovih dcset cifara. Svi su
uni sastavljcni sarno od dve binarnc cifrc
0 l
Oktalni brojevi su sastavljeni od osarn ok.talnih cifara
Ol2_'l.+So7
'I

lp


674 Dodatak A: Rinarni
Za hcksadecimalne brojevc potrebno je sesnaest cifara. Znaci, treha nam sest do-
datnih simbola. Obicno se za sest cifara koje dolaze posle cifre 9 koriste velika slova
od A do F. Prcma tome, heksadccimalni brojcvi su sastavljcni od cifara
0 123456789ABCDEF
,Binarna cifra" (dakle. I iii 0) obicno sc naziva bit. Na slici A-2, dccimalan broj
200 I izrazen jc u binarnom, oktalnom. decimal nom i heksadecimalnom obliku. Broj
789 je ocigledno heksadecimalanjer se simboi B rnoze pojaviti samo rnedu heksade-
cimalnim brojevima. Medutim. broj Ill moze poticati iz bilo kog od cetiri pominjana
sistema. Da bi se izbegla dvosmislcnnst kada brojcani sistcm nije jasan iz konteksta,
u indeks sc stavljaju osnove: 2. 8, 10 iii 16.
Binarni
Oktalni
Decimalnr
0 1 0 0 0 1
1 X 2
10
+ 1 X 2
9
+ 1 X 2
8
+ 1 X 2
7
+ 1 X 2
6
+ Q X 2
5
+ 1 X 2
4
+ Q X 2:1 + Q X 2
2
+ Q X 21 + 1 X 2
1024 + 512 + 256 + 128 + 64 + 0 + 16 + 0 + 0 + 0 + 1
2
3 X 8
3
+ J X 8? + 2 X 8
1
+ 1 X 8
1536 + 448 + 16 + 1
0 0
2 X 10
3
+ Q X 10
2
+ Q X 1 Q l + 1 X 1 Q
0
2000 + 0 + 0 + 1
Heksadecirnalni 7 0
J X 16
2
-t- 13 X 16
1
+ 1 X 16
1792 + 208 + 1
Slika A-2. Broj 2001 11 binarnom. oktalnom. decimalnom i hcks;,ckcimalnom obliku.
Kao primer binarnog. oktalnug, c!ccimalnog i hcksadecimalnog unncavanja.
poglcdajtc sliku A-3, gdc su mlabrani nencgativni hrojevi prikazani u svakom od cc-
tiri sistema. Mo/da ce neki buduci arheoluzi jednom nalclcti na nju i pmtupati s njum
kao s trojczicnom stelom iJ: Rozetc da bi saznali kakvi su sc to bmjcani sistemi kori-
stili na prclam iz clrugog u trcc'i milenijum.
i Decimalni : Binarni
Oktalni : Heksadecimalni
0
0 0 0
1 i
2 10 2 2
3 I 11 I
3 3
4 I
100
4 4
5 i
101 ; 5 5
6 110
6 6
7 111 7
7
8 I
1000 10
8
Slih.a A-3. Dc:cimalni hrojevi ! njihovi hinarni, ok_t,tlni i hcl-.sad,__-ci:natni l'.'<tlcnti.
I .:1-

.. ............................

'i(
.';:..
,;.fl



A.3 Pretvaranje hrojeva iz hrojcanog sistema u drugi
60 !
70
80
90
100
T----
l Oktalni
1-
1001 I
1010 1 -

1111 1
1oooo 1
--- '
10100 I
t
11110 i
10-1aoaT
110010 I
i-- --
111100
1000110
1010000
1011010
11001000
1000 : 1111101000
i
2989 101110101101
16 t
17
20
24
106
120
132
144
1750
5655
E
F
10 I
14
1E
28
32
3C
46
50
5A
64 :
3E8 i
BAD
675
Slika A-J. Dccilllalni bmjcvi i njihovi binarni. oldalni i hcksadccilllalni ekvivalcnti. (nasllll'<lki
A.3 PRETVAH.ANJE BROJEVA IZ JEDNOG BRO.JCANOG
SISTEMA. U DRUGI
Ni1c tcsko prctvorili brujcvc i; oktalnog iii hcksadecimalnog sistema u binarni i
ohmuto. Da histe binami bwj prcvc!i u ok.t:.llni. pPclclitc ga u grupe od po 3 prvu
grupu cine: 3 hila lc\o (iii dc,,tw) ,,d dc:cimainog zarcza (ccsto ;vanog binarni zarcz) .
a drugu grupu 3 lcvo od njc. Svaka grupa od pn 3 hila rnozc :-,c dircktno prevcsti u jcd-
nu oktalnu cifru (od 0 c!o 7). prema rrimcrirna it prvih redDva sa slikc A-3. Pri pmleli
na grupc nhJI.da cc hiti potrcbncJ da sc nck.c od njih dopunc vodecirn iii dodatnim nu-
lama do 3 cifrc. Prctvaranjc uklalnog hnlja u hinarni isto jc tako jcdnostavno. Svaku
oktalnu cifrutrcha Lamcniti ckvivaknrnim trocifrenim binarnim brojem. Prctvaranjc
hd.saclccimalnih hn>jtva u hinarnc su;tim,kiJe isto kao i p1etvaranjc oktainih 11 binar-
nc. s tim sto 'c svaka hcbadccimalna cifra zamcnjujc grupom od po 4 hila. Na slici
A-4 su ncki primcri.
Pretvaranjc decimal nih hrojcva ll hinetrne lllUl.l' se obaviti na elva nacina. Prvi nacin
skdi din:ktno i;. lklinicije hinarnih hro.1c:va. Od broja se najvcci stepen dvojke
l-..o.Ji jc manji ud hroja. f'<Jstupak ,e Lati:n ponavlja nad razlikom. Kada sc broj na
stcpenc lhojk:::. binarni broj sc sklapa tak1l stu ,;c cifra I stavlja na pozicijc bitova koji
odgPvaraju ,;tcpcnima dvoJke iskorisccnim Dt razlaganjc a cifra 0 na ostala mcsta.
676
Dodatak A: Binarni brojcvi
Primer 1
Heksadecimalan
9 4 8 B 6
,------"-' ,---"-- ,---_A
Binaran
0001100101001000.101101100
---,---' ' -r--' '----.,----'

Oktalan 4 5 0 5 5 4
Primer 2
Heksadecimalan
7 B A 3 B c 4

Binaran 0111101110100011.101111000100
'-------,-----' ..... _/ '-.___/ J '- --., J '-v---' '-,--'
Oktalan 7 5 64 3.5 70 4
Slika A-4. Prilllcri prctvaranja brojeva iL okta!nog i heksadccimalnog sistcnw u binarni.
Drugi nacin (va/,i samo za ccle brujcve) svodi sc na broja sa 2. Kolicnik se
upisuje dircktno i.spod originalnug broja, a ostatak (0 iii I) pored kolicnika. Pustupak
se ponavlja svc dok sc na kra_)u nc dobijc 0. Rczultat uvog postupka su dve kolone hm-
jcva- koiicnika i ostataka. Binaran hruj sc sada direktno mo/.c ocit<lli iz kolnnc sa osta-
cima. citajuci udo;r.do. Slika i\-5 je primer prctvaranja dccimalnog broja u binarni.
Kolicnici
i
I
i
1 4 9 2
746
373
1 8 6
93
46
23
1 1
5
2
0
Ostaci
0
0
0-

1
0-
:=ill j l j j
1 0 1 1 1 0 1 0 1 0 0 = 1492;o
Slika A-5. Prctvaranje dccimalnog hroja 1492 u binaran UL'ast"pnim Jcljcnjctn, p<'cinjuc'i <d vrha
i iduc'i ka dnu. Na pri111er, 93 poddjetH> sa 2 dajc 46 uz ostalak l, sto se upisujc u red ispod.
i\.4 Negativni binarni hrojcvi
677
Binarni ceii brujevi mugu se pretvarati u decimalne na dva nacina. Jcdan nacinje
sabiranje stepena dvojke koji odgovaraju bitovima i u broju. Na primer,
lO li () = 2
4
+ 2
2
+ 2
1
= 16 + 4 + 2 = 22
Prema drugom nacinu, binarni bruj se pise vertikaino, po jed an bit u wakom redu,
s krajnjim levim bitom u dnu stu pea. Najnizi redje prvi, onaj iznad njega dn1gi itd.
cimalni broj sc gradi u paralelnom stupcu. Pocinje se up1sivanjem cifrc I u i red.
Upis u red n sastoji scud dva upisa iz redan- i i bita iz recla 11 (0 iii 1 ). Upi' u najv ;i
red claje odgovor. Siika A-o prikazujc primer pretvaranja binarnog broja u
na ova.J nacin.
0 0
I
0 1 1 1
llll : ::: ... 1 :::9
1+2x374=749
..
0 + 2 X 187 3/4
"
1 + 2 X 93 = 187
"
1 + 2 X 46 = 93
"
0 T 2 X 23 = 46
"
1 + 2 X 11 = 23
..
1 + 2 X 5 = 1'1
"
1+2x2=5
"
0;2x1=2
"
1 + 2 X 0 o'1
Rezultat
- Pocet1 odavde
Sliha A-6. hn)_j:l ltl\ l l\ll :ulllu dL'Cirnalan uJa:-.llpniHl Lllhu:->truLava!lJCill.
uJ dr;.L S\:tl-.1 rcJ ')l' Ltho .::,!t1 -.c i'-'rnd nic:;<t uchu:-.tlu.L:i ina Jnda odgo\,lfa-
bil. :\,\ rn:lllL'I", -;...;.q jJ\lt:l pli:s hit i U j,-,tllil1 r::du jL j 1-49.
Prdvar<mi<c iz ckcimallH':c' u uktaim lit iz u heksadccimalni sistrm
"c i;.vc.-..ti takd Sto :.:.c brt1j prcrvnri pr\U u hinarni. a u broj siqe:na
iii taK<> st" ,c pdu;imdJU sll:pcni bn,id S. mln<J>I1" I 6.
AA 1\ECATl\'j\:l BROJEVI
i-..;tl)rije digiLt\niil u '-U Lctiri -;istcina za
!lc':c'ctlivlliil bi"cliL'\:l. i'l''dl St: l'i!j OZH:ICCili IJlt)(lH!i \igncd
tl{(/<'). Lc l)\'()Jll .'-.i<lclltll kr:tjnji k\ i hit hiu JC jL' znac:iu +.a 1 jc znacilo -).
duk :-.u usialL bif<l\'i Hcdn<hl llJh'dul i bruJ<<.



!F;

II;!
678 Dodatak A: Binarni brojevi
Drugi sistem, zvan komplemcnt jedinice (engl. complement), takode je imao
bit za znak, gde je 0 znacilo plus, a l minus. Kada od pozitivnog ?elite cia napravite nc-
gativan broj, samo jedinice zamenite nulama, a nule jedinicama, sto vazi i za bit znaka.
Sistem s komplementom jedinice je zastareo.
Trec'i sistcm, zvan komplement dvojke (engl. two j complement), takode ima bit
za znak, gde 0 stoji za plus, ajedan za minus. Pretvaranje pozitivnog u negativan broj
ovde je dvostcpen postupak. Prvo se svaka jcdinica zameni nulom, a svaka nula jedi-
nicorn, kao u sistcmu kornplementa jcdinice. Zatim se rczultatu doda I. Binarni bro-
jevi se sabiraju is to kao i decimalni, s tim sto se prenos na vise mesto do gada kada zbir
premasi l, a ne 9, sto hi bilo u decimalnom sistcmu. Na primer, pretvaranje broja 6 u
-6 u komplementu dvojke obavlja sc u dva koraka:
00000 II 0 ( +6J
IIlii 00 I (- 6 u komplemcntu jedinice)
Ill II 0 10 (- 6 u komplcmentu dvojke)
Ako se opcracijom na krajnjem levom bitu stvmc uslovi za prcnos. on se zane-
maruje.
U cctvrtom sistemu, koji se za m-bitne brojeve zove visak zm-l (engl. excess 2"'-
1
),
broj sc cuva kao zbir dobijcn njegovim uvecanjcrn za 2m-l Na primer, za X-hitne bro-
jeve (111 = R). sistcm se zovc visak l2X i brojevi se cuvaju uveeani /.a 1211. Prcma tome,
-3 postajc- 3 + l2X = 125, a- 3 sc prcdstavlja X-bitnim binarnim ekvivalentom hroja
125 (01111101). Brojcvi izmcdu- 12X i +127 prcslikavaju se u interval od 0 do 255 i
svi sc mogu izraziti kao X-bitni pozitivni hrojevi. Zanimljivo je daje ovaj sistem idcn-
tican sistemu komplementa clvojkc kod koga jc bit znaka invertovan. Slika A-7 prika-
zujc primcre negativnih brojeva u sva cetiri sistema.
Sistem oznaccnog rnodula i sistem komplcrnenta jedinicc predotavljaju nulu na
dva nacina: kao pot.itivnu nulu i kao negativnu nulu. Takvo stanje nijc puzeljno. Si-
stcm komplernenta dvojke nema taj nedostatak jcr je u njenw pozitivna nula u kum-
plementu dvojkc takode pozitivna nula. Sistem kumplemenla dvojkc. rnedutim. ima
drugujedinst\enu osobinu. Niz hitova koji pnCinjc jedinicorn. a iza nje su nulc. pred-
stavlja svoj sopstvcni komplcment. ZbPg toga opsezi pozitivnih i negativnih brojcva
nisu simctricni; pustoji ncgativan broj koji nema svog pozitivnog parnjaka.
Nijc tesko pronaci otkud ovakvi problemi: 7.climo da napravimu sistcm kodiranja
koji ima sledcca elva svojstva:
I. Predstavljanje nuk na samo jcdan nacin.
2. Tacno isti broj pm.itivnih i ncgativnih hrojcva.
Problemnastajc ;ato sto svaki skup sa istim hrojem pozitivnih i nc:gativnih brojc:\'a
i samo jednorn nulom ima neparan hroj clanova, dnk 111 bitova omugucava paran broj
raspl>reda bitova. Uvek ce_1edan specilican raspored bitova biti iii cc nedostaja-
ti. be; ohLira na nacin prikazivanja. Taj jedan suvisan rasporcd hitova moze se upo-
trebiti ;a predstavljanjc:- 0 ili vdikog negativnog hroja (iii neccga sasvim drugng) ali
cc uvck zadavati glavobolje.
',\f,
;<;:.

A.5 Binarna al'itmetika 679
N -N
- --- l
-N -N
N -N '
i decimalno binarno oznaceni komplement ' komplement visak 128
modut jedinice dvojke
r
----
1 00000001 10000001 11111110 1111111 1 01111111
I
--- ------- ---- ---- --
2 00000010
11111101 1111111 0 01111110
--------,
3 00000011 11111100 1111110 1 01111101
00000100
00000101
--------
7 00000111
01111001
8 00001000 ' 10001000
01111000
---------4--
I
. -- ----
11110110 01110111
00001010 l 11110101 01110110
00010100 11101011 01101100
30 ! 00011110 11100001 1110001 0 ! 01100010
40 00101000 11010111 11011000 01011000
50 00110010 11001101 1100111 0 01001110
60 00111100 11000011 11000100 01000100 '
70 01000110 11000110 10111001 1011101 0 00111010
80 01010000 11010000 10101111 10110000 00110000
90 01011010 11011010 10100101 10100110 00100110
100 01100100 11100100 10011011 10011100 00011100
127 011111111 111111111 10000000 10000001 00000001
128 Ne postoji Ne postoji Ne postoJi 10000000 00000000
Slika A-7. NL:gativni S-hitni hrujc\-i u Cc!iri
A.5 BINARNA ARIT!\IETIKA
Tahc!a ;a binarnih hro_1cva prika1ana je na slici A-X.
Prvi sabirak 0 0
Drugi sabirak +0 +1 +0 +1
Zbir 0 1 1 0
Pre nos 0 0 0
A-S. T;thcla :--ahiranja.
binarna -;c tak,J \to SL'- <ld dcsnug hila- sabi-
raju hituvi dva '<tbtrka. Eventualni se prcnusi jednn mestu ulevo.
kau u aritmcttci decimalnih hn,jeva. U aritrnt'lici kotnpkmc:ntajcdinicc. visak stvorcn
pri sabiranJLI krajnjth lcvih bitov'a prcnosi St' u kraJnji dcsni bit. Ovaj postupak se zovc
---------------------------------------------
I
I
I
'I
680
Dodatak A: Binarni brojcvi
cirkularni prcnos. U aritmetici komplementa dvojke, zanemaruje sc visak stvoren sa-
biranjem dva krajnja leva bita. Primcri biname aritmctikc prikazani su na slici A-9.
Oecimalni sistem
10
+ (-3)
+7
dvojke
00001010
11111100
00000110
1
00000111
00001010
11111101
00000111
odbaceno
Slika A-9. Sabiranjc u sistemu kompkmcntajcdiniLe i u sistetnu komplemcnta dvojkc.
Kad su dva sabirka razlicitog znal--a, nc nastajc prckoraccnje. Ako su oni is tog znaka.
a rczultat jc suprotnog znaka, nastaje prekoracenjc i dohip sc pogrcsan odguvur. U si-
stcmu komplemcnta jcdinicc i u sistemu komplcmenta dvojkc. pre.koraccnjc sc javlja
samo ako se prcnos u hit waLt razlikujc od prcnosa iz bita znaka. Vecina racunara cuva
prenos gcncrisan iz hita za znak. ali sc prcnos u bit znaLt nc vidi iz rczultata. Stoga sc
obicno koristi i specijalan bit prckoracenja.
VEZBAN.JA
I. Napisite hinarnc ekvivalcnte slcdceih decimalnih hrojcva: 19S4, 4000, X 192.
2. Koji jc dccimalni ckvivalcnt hinarnug broja l 00 II 0100 I, a koji su njcgovi oktalni 1
hcbaLkcimalni ckvivalcnti''
3. Koji su ud O\ ih zapisa punova?:ni heksadecimalni hrojevi'' BED, CAB. DEAD, DE-
CADE. ACCEDED. BAG. DAD .
.t. Dccimalni hroj I()() izrazite u hrojcanim sistemima sa osnovama od 2 do 9.
5. Kuliko se razlicitih poLitivnih hrojeva mo/.c pomocu k cifara u brojcanom si-
stemu osnove
6. Vee ina !judi umc da racuna do l 0 na prstc: rncdrrtim. kompjutcrasi umcju i vise. Ak<)
svaki pN posmatrate kao jcdan binami hit. pa ispru7en prst znaci l, a savi.Jcn prst
/llaci 0, do knliku molck brojari sa obe ruke'
1
A sa obe ruke i obe nPgc
1
Sad a upu-
trehitc uhe ruke i obe nogc. a palac vase !eve noge neka huLk bit za z.nak u kompk-
mcntu Jvojke. Koliko brojeva rnozetc na taj nacin predstaviti''
7. lt.vrsitc slcdcca izracunavanja .sa S-hitnim brojcvima u kornplcmcntu dvojJ..c.
00101101
+ OI!Ollll
!IIIII II
+ !l.ll..l.l.l.!
()()()()()()()()
ll.!..lll..1..l
I I I I 0 I II
- lli!Olll
R. Ponovitc racunicu iz prcthodnog vc?.b,mja. ali sada u komplementu jcdinicc.
Ve:lhanja
681
9. Razmotrite sledeea sabiranja 3-bitnih binarnih brojcva u kumpkmcntu dvojke. Za
svaki zhir navedite
a. Da li Je bit znaka u rezultatu jednak I.
b. Da li su najmanjc znacajna tri bita 0.
c. Da li je nastalo prckoracenjc.
()()()
+ 001
000
+!II
Ill
+ll.Q
100
+Ill
100
+ !00
10. Omaccni decimalni hrojevi san cifara rnogu sc prcdstaviti san+ I cifara hez znaka.
Krajnja leva cifra pnzitivnih brojevaje 0. Negativni brojevi sc fmrniraju tako sll1 se
svaka cifra odu;.mc od 9. Tako se od broja 0!4725 dobija njegov m:gativni parnjak
9S5274. Takvi brojcvi su dcvetke" i analogni su binarnim brojcvima
u kompkmcntu jedinicc. lzra;.ik sledcee brojcve kau trocifrenc kompkmcnte clc-
vetke: 6.- 2. 100.- !4.- I, 0.
11. Formuli.\ite pravilo La sabiranJ<.: hrojeva u kornplemcntu deVL'tkc" 1.cttin1 obavitc 'k-
dcca sabiranja.
()()()]
+ 99'!9
()()()]
+ 99'!:-\
9997
+ 9996
92-1-l
+ UK02
12. Kornpkmcnt dcsctkc analogan je J..ornpkmentu dvojkc. l\egativan broj u klllnpk-
dcsctkc l'ormira se doda\ anJ<:IIl jcdinice na odgovarajuci hroj u kornplcmcntu
dco,ctl--c:. ut.L.anemanvanJe cvcntualnug prcnosa. Kako gla.'i pravilu La sabiranjc kom-
pkmcnata dcsetkc'l
13. K<'nstrui\itc tablicc nmozcnp brojcva sa usnovom 3.
l-1. Putnno/itt: bl!larrw 0 Ill i ()(J II.
15. Napi:::itc progrctm k<>ji prihvata n;n:rccn dccimalni broj kau Lnakuvnt ASCII ni1 i
stalllp:t binami hm_i ll kompklllt:lllli dVOJkC, kacl uJ..taJan i k:tll hcbadccilllaian bmj
16. prugram k<>Ji prcu;imct dva ASC!Inizct od Jl'' 32 sadr/c nulc i jc-
dinicc (svaki prnlst:rvlja '2-hitni binarni hroj u kompkmc:Hu JvojJ..c >.
da ,,d'.tctmpa nJii:m /f1 ir kau makovni ASCll niz 32 nule ii tiliJCdinicc:.
700
Dndatak C: Programiranjc na ascmblcrskom jcziku
Slcdcci registar u ovoj grupi je BP, bazni pokazivac. On pu pravilu sadrl.i jednu
adresu sa steka. Dok SP uvek ukazuje na vrh steka, BP mole da pokazuje na bilo koju
lokaciju na stekt1. U praksi, registar BP obicno ukazuje na pocetak okvira steka tekuce
procedure, da bi se olaksalo pronalazenje lokalnih promenljivih te procedure. Na taj
nacin BP cesto ukazuje na dno tekuceg okvira steka, aSP ukazuje na vrh. Tekuci okvir
steka je tako ,uokviren" vredno:,tima rcgistara BPi SP.
U ovu grupu rcgistara spadaju i dva indeksna registra: Sl, indcks izvorista (engl.
source index) i 01, indcks odrcdista (engl. destination index). Ovi rcgistri se cesto ko-
ric,te u kombinaciji s registrorn BP za adresiranje podataka na steku iii s n:gistrom BX
za izracunavanjc adn.:se podataka u rnernoriji. Opsirnijc cemo ih opisati u odeljku o
nacinima adrcsiranja.
Jedan od najvaznijih registara, koji :,am predst:wlja grupu, jeste pokazivac in-
strukcija, sto je Intelnvo ime za programski brojac (PC). Ovaj registar instrukcije ne
adresiraju direktno. vee on sadrzi adn.:su u kodnom segmentu prograrna u memuriji.
Ciklus izvrsavanja pmcesor zapocinje tako sto pn.:uzirna instrukciju na koju ukazujc
PC. Ovaj rcgistar tada povecava vreclnost, pre nego stu sc izvrsi ostatak instrukcijc.
Na taj nal'in. prograrnski brojac uvck ukazujc na prvu instrukciju iza tckucc.
Registar sa indikatorima (engl. flag register) iii registar s kodovima uslova
(engl. condition code register) prcLbtavlja skup jednobitnih registara. Nekc od ovih
bituva postavl.pju aritmc:tiCkc instrukcijc i uni se mlnost' na re.wltat:
Z - rezultat je nul a
S - rezultat je negattvan (bit znaka)
V - rezultat je izazvao prekoracenje
C - rezultat je izazvao prenos
A- pomocni prenos (iz bita 31
P - parnost rezultata
Drugi bituvi O\'ug rt.:gislra upr:tv ljajll rad<'ill c-L:rcden!h aspckata proccsura. Bit I
ornogucava sistcmskc prc'kidc. Bit T akllvira rt'/im prac.:np koji sc kuristi pri <Jtkri-
vanju gr6;aka. Na kraju, bit/) upravlja smerom '.a /.11:tkPv;Jim n:1m :\c
koriste se svih 16 hitova o,og rcgistra <t hit()\i su hard-:e:-
ski postavljeni na nulu.
U grupi scgmcntnih rcgistara postoje cc:tiri rc;i.,tr::. '>c'lite sc da "-' i stck. i pml:tci
i k(\d sa instnrkcijatna nctlaze u glavnoj JllC!Ih>ri.ti. ci1i Jhicn1 u llJt::niin razlicitim deiu-
vima. Segrnentni registri uprallpju ovim ra..:IICitim dcl,"ima n;cpmnje kuji se iOHI
scgrnenti. ()v'i rtgistri se zovu CS 7:t h.nd:1i \._gnk'nl), DS
Ill<.:nt podataka). SS (registar La o;cgrncnt 'l:ka) 1 ES \rc!:Ii-.,:ar za dud:,tni 'egmcnt ).
Njihn\,C vrednosti sc tukorn n:tivcc:cg del a\ r ... nc n1t:11jaju. lJ praksi.
i scglltL'l1t za stek kuristc iqj cleo r'ri L.:n:u u dnu
menta, a -.;td, na n.Jeguvum IT!UI. Vi<e u <JI irn ;cgio;tr::1ia govoriL'emo ll l>dcliku C.3.l.

!
I'
'
I
!
!
i.;
'.[
,,
C.3 l\lcmorija i adresiranje 701

C.3 i\IEMORI.JA I ADRESIRAN.JE
Procesor 80:-)8 ima purnalo ne;grapnu organizaciju mernorijc zbog kombinactje
mcmorije od 1 MB i 16-bitnih rcgi.-;tara. U rnemuriji od 1 MB potrcbnoje 20 bitova
za predstaljanje rnemorijskc adrcse. Prerna tome. pokazivac na memoriju nije mo-
guce smestiti u bi1o koji 16-bitni regi,tar. Da bi se ovaj problem preva;isao. mcmorija
je organizovana u segmcnk od pu 6..+ KG. tako da sc adresa unutar segrnenta moze
pred,taviti pomocu 16 bitova. Sada ct.:mu dctaljnije objasniti arhitekturu memorije
proccsora 8088.
C.3.l Organizacija memorije i segmcnti
f'vlcrnorija procesora 8088 je ni; 8-bitnih bajwva koji se mogu adresirati i sluzi za
smdtanje podataka i steka. Da bi se razdvojila pudrucja memorijc koja se
k<)riste za razlicite svrhe, u proce:;oru 8088 knristc st.: scgmcnti- delovi mcmorijt.: re-
zcrvic.anc z.a posehne namcne. U slucaju procesora 8088 takvi segmenti se sastoje od
65.536 uzastopnih bajtova. Pu,c,toje cetiri scgmenta:
I. Kodni segment.
2. Segment Dt pudatkc.
Segment ;.a stck.
..\. Dodatni :-,egrm.:nt.
Kodni segment .sadr:::i Instrukcije programa. Sadr.Zaj registra PC uvek se tumaci
kao memorijska u segmentu koda. Vrednost 0 u regi,;,tru PC mlnosi se na naj-
ntzu adrcsu kudnug Sc'gl1lcnLt. a ne n.t najnizu apsolutnu adresu memorije. Segment
pmlataka ,,,drzi iniLij,tlizov<me i neiniL'tjalizovanc poclatke za program. Kada rcgistar
BX sad6i on uk:1zuje na segment podataka. Segment steka sadrli lokalne
pr<)mcnlJiVc i mcJurctuktc>: ljene na stck .. -'\drcse u registrima SP i BP uvek su u
'.l'6!11l':Hu -;:cka. D:d<ltni 'q:mentm regtstar namenjen je cuvanju adrcse dudatnog
..n t.l nlt. IL lj ati bilo gde u n1etnoriji.
Za S\<iki cd pustLlji odgovarajuL'i scgrnentni registar: 16-bitni registri
CS, L'S. SS i ES. p,lc"Ctna ctdr.:sa segnwntaje 20-bitni neoznacen ceo broj koji se pravi
p< 11 re ;i,tD-+ bita ulevo i unosenjern nula na cctiri poslednja me-
:,u s ck,ne Cl\ ,; !ILCl da segmentni registri u 20-bitnom adresnom pmsturu
uvek ukalll;u na umtmskc' 16. Segmt.:ntni registar ukazuje na o'novu segrncnta.
;\drc::,<: u:Hil,:r :.;cgmcnla 1111 Jgu :-,c pretvaranjem 16-hitne vrednosti segmentnog
rcg1'tr:! u nJcguvu u 2U-bitnu adrcsu tako stu se dodaju cctiri nulta bita na kraj i
dodaje ra,tui<ln}: lli1\1Llr 'egrn<.:nta. Apsolutna memurij,;ka adrcsa izracunava se tc1ko
,l'grnc:lll:li I"l.':Chl<;: pumnu:i.i "' I hi rezultatu se duda rastujanjc. Na primer, ako
Jt' ,rr,t c:3 jedn:tk 7, a registra BX jc: 12. tad a je adrcsa na kuju ukazuje BX
':< I il + 12 == 12-f. Drugirn rcCima, 20-bitna hinarna adresa koju pmlrazumeva OS= 7
jc.-;te UIII)UCUIJI)()(J!jl)il]! it)()()()_ Dudavanje 16-bilnog rastojanja 0000000000001100
tLkci nnlnu ! 2 1 ILl pc<ctc:k. scgmcnta dajc 20-bi tnu adrcsu 0000000000000 I 111100
idcc:im<IInll 12-1-1.
i;;
;L
8
BROJEVI U FORMATU
POKRETNOG ZAREZA
U mnogim proracunimaje dijapazon korisccnih brojeva veuma sirok. Na primer, u
ncka astronomska i1xacunavanja mo>.c da hude ukljuccna mas a i elektrona (Y x I

g)
i Sunca (2 X I o
33
g), sto je raspon od I()(,() Ovc brojeve lllOZCJll() predstaviti ovako
()()( )()()( )( )( )( )()()( )()()()()( )()( )()()( )( )( )( )()()()()()()()()(), ()( )( )()()( )()()( )()()( )()()( )()( )( )()()( )( )( )()()()( )9
2 ( )()()()( )()( )( )()()()()()()( )()( )( )()()()( )()()()( )()( )()( )( )()(), ()( )( )( )( )( J()( )( )( )( )()( )( )( )( )()( )()( )()( )( )()( )()( )()
i sva iaacunavanja racliti cuvajuci 3-1- cifrc lcvo od decirnalnog zareza i 2X mesta desno
od njega. Na taj nacin ccmo irnati rezultat sa 62 znaeajne cifre. Da bi se obczbedilo do-
voljno znacajnih cifara na racunaru koji radi s binarnim brojcvima, moze se upotrcbiti
aritmetika visestrukc tacnosti. Medutim, masa Sunca nije po1.nata ni sa scst /nacajnih
cifara. a kamoli sa 62. U stvari.malo je merenja bilo koje koji mogu (iii treba) da
daju rezultat tacan sa 62 znacajne cifre. !ako bi bilu moguce da se svi mcdurezultati iz-
racunavaju sa 62 znacajne cifre kojc ce se u konacnom rezultatu J.aokru/.iti na 50 iii 60
eifara, time hi samu uludo trosilo proccsorsko vremc i memorija.
Prema tome. potreban je sistcm 1.a prcdstavljanje brojeva u komc je opseg brojeva
koji sc mogu predstaviti nczavisan od broja znacajnih ci fara. U ovom dmlatku ra;-
motriccmo takav sistcm. On se tasniva na naucnom oznacavanju kojc se koristi u fi-
zici, hcmiji i inzcnjerstvu.
683
704
Dudatak C: Programiranje na ascmblcrskom jeziku
i -Nai:in adresiranja
! - - -- - - -----
i Registarsko adresiranje
' 8-bitni registar
116-bitni registar
'-- - ------- -
, Adresiranje segmenta za podatke
! Direktno adresiranje
llndirektno registarsko
Registarsko s pomerajem
Registarsko indeksno
Registarsko indeksno s pomerajem
: Adresiranje segmenta za stek
BP indirektno
BP s pomerajem
BP indeksno
BP indeksno s pomerajem
-- -- - ----
Neposredni podaci
Neposredni bajt/rec
Podrazumevana adresa
lnstrukcija push/pop
lndikatori load/store
Prevodenje XLAT
Ponovljene instrukcije za znakovne
nizove
lnstrukcije za ulaz/izlaz
Pretvaranje bajta, reci

8-b1tni registar
16-bitni registar
Adresa sledi opkod
Adresa u registru
i Adresa je
registar+pomeraj
Adresa je BX+SI/DI
BX+SI Dl+pomeraj
!
'
Adresa u registru
Adresa Je BP + pomeraj
Adresa je BP +SliD I
BP+SI/DI+pomeraj
: Podac1 su deo
instrukcije
'
-!
#
-- _I
: lndirektno adresira (SP) PUSH, POP. PUSHF. POPF ,
Registar sa indikatorima LAHF, STC, CLC, CMC
statusa ! XLAT
AL. BX : MOVS, CMPS. SCAS
(SI). (DI). (CX) , IN#, OUT#
AX. AL CB'vV. CWO
. AL, AX, OX
- J
Slika C-3. Nacini :1drcoiranja opcranada. SJJllhol I! o1naeava brojcanu ncd1rost iii <>/n,\l,u.
Kod indirektnog rcgistmskog adresiranja adrcsa opcrand:t se tul:11i ll nckom ml
regis tara BX. Sl iii Dl. l i sva tri slucaja ClpLrand se nal:vi u .'l?_l'lllL':Hu 1.a pod<ttke. Kun-
stanta sc mozc postaviti i isprcd rcgislra: u tom slucaju adresa sc prr:iJ:tb?i doda-.:tnjcm
sadrzaja registra konstanti. Ov;tj tip :tlh:sir:mj:t. Z\al1 regist:llsko adresinl!1jt' s po-
merajem (engl. rcgisicr diYJ'''"'t'I!!Ci!li. l_l'l"lan jc 1.a adrcs!f:m:e nil.<)\' a. na pri-
mer. regis tar Sl sadrzi vrednost 5. tad a peti mak niza 11:1 lJI.Ilaci FUf\1,/, \ T llto/c
ucitali u registar Al_ i nstrukcijum
MOVB AL,FORM/\T(SI).
Kroz ceo znaknvni niz moze '>e pruc'i uv<cc'avanjem ili vrcdrwsti r,gi-
stra u svakom koraku. Kada se ka" DpcT:tndi koriste rt'ci. 'redtJ<st reci:-.tra uS\ akom
koraku treba menjati za :2.
Moguce je. u rcgiswr BX st::\ iti 1>sno'u (tj. br:_j<::mu adn2:,u i n!La.
a registar Sl ili rcgistar Dl upulrthiti ;a brnj::nje. (htl s.: ;:uve regi,t:rr"ko im!t:ksno
adnsiranje. Na primer. instrukcip:
PUSH (BX)(DI)
{
f
k


C.3 \lemorija i adresiranjc
705
preuzima sadrzaj lokacijc u segmentu pudataka Cija se adresa dobija
s:uJrbja rcgistara BX i Dl. Ova vrednost se tada smt:Sta na stck. Poslednja dva tipa :lllre-
siranja mugu sc kumbinovati u registarsko indcksno s pomerajem. kao u instruk:iji
NOT 20(BX)(DI)
koja dajc komplemcnt rcci na lukacijama BX + Dl + 20 i BX + Dl + 21.
Svi nacini inclircktnog adrcsiranja koji sc koristc u scgmentu poclataka postoje i u
scgmentu 1.a stck. samo sto sc u turn slucaju umesto baznog rcgistra BX koristi pokazi-
vac osnDve BP. Na ovaj naCin je (BP) jcdini indir<Oktni registarski naCin
steka. ali postoje i slozeniji nacini. sve do Bl' indcksnog adrcsiranja spu-
merajcm -1 (BP)(SI). Ovakvi nacini :,u dragoc"cni za adresiranje lokalnih promenljivih
i parametara funkcija koji sc' u potprogramima :;me;taju u adrese na steku. Tu d.tlje
opisujemo u odeljku C.-+.5.
Sve adrc:se koje su u ,;agla:;nosti s nacinima adrcsiranja o kujima smo dosad gcvo-
rili mugu se uputrebtti kao iivurista iii odredista opcracija. One sc /.ajednu delinisu
kao efcktivne adrese. Nacini adrcsiranja u prc,JStala dva bloka ne omogucavaju de-
lini,anje odredista i ne -.matraiu se ckktivnirn adres:nna. Oni detinisu samo iLvoriste.
Nacin adresiranja u kume je operand knnstantan bajt ili rec u samoj instrukciji
zove se ncposredno adrcsiranje. TakD, na primer. instrukcija
Cl\tlP AX.50
pnredi sadriaj rcgistr,l AX s kunstantom 50 i postavlja bitovc u rcgistru sa indikatori-
ma u l.avi:;n,)sli ml ruu\Uta.
Na kraju, ncke ud in,trukuFt kuriste podrazumevano adresiranje (engl. imJ;/ied
uddrcs.1ing). Za ovc operand i!i operandi se pudrazumevaju. Na primer.
instrukc:ip
PUSH AX
:;ta,!ja sadrzaJ AX stck tako sto smanjujc vrcdnost regisrra SP, a 1.atim ko-
pira o,adriaj re'"i'tra .A.:\ !1a na ,ada ukaLUje SP. Rcgistar SP sc, mcdutim.
u ;w:rukc:iji iiL' !'''min;.:: u in,trukciji PUSH sc upotreba rcgistra SP podnzu-
mev:c. S\i,':ru i_llll1:. u>,crnkl';j,: Ktljc" indikatore pmlrazumcvano koristc rcgi-
star indiLtt,Jrin:.t njc:;o'<)g n:t\<cknja. 13rojnc druge instrukcije taknde ir1aju
)dra;un1cv
Prucc:;or in:r in:;trukcije 1.:1 prcm.:stanjc (MOVS). poredenjc
(CMPS: i prcgkd:miL' 1SC."-Sl F:lk,l\nillniDlVa. Kad se koristc instrukcijc ;a r:<d sa
Zll<lkocnim nimvima. imlch,ni rcgi,tri Si i Dl aulumatski menjaju vrednost puslt: 1pe-
raLijc'. Ov::l-.' ' r'' Hl:l;:mic :;.:: iU/i v :t rc:'11n automatskog uvccanja. mlrwsno autn-
mabk"g -,man.knja. i):, li L'c ,,: ,;al!r.'':tj rcgistra Sl i Dluvecavati iii smanjivati, nvisi
cKI indikatora smera :, n u n:gistnr sa indikaturima status:\. Al.o jc
uvaj rndik::t<>r t1, j, ,, povec''' .: ;1;,;,, jc I. o smanjivanju. Prirastaj JC I Zl in-
'>trukciie kujc racks h:qt.>vima i 2 u irl:-.lrukciJC kuje radc s n.:cima. Pukazivac 'teLl
autnm:Jt-.\.: ,;,lml,nl> ,,nan;u:, \ rcdno\l: una :.e smanjuje za 2 na pucctku
PU.3H i r'u\ na instrukcije POP.
694 Dodatak C: Programiranje na asemhlerskom
naiCi na proccsor 8088, svaki Pentium mozc da izvrsava programc pi sane za njcga, tako
da se ono sto cctc ovdc nauciti i dalje mozc primeniti na savrcmcnim racunarima. Sta-
vise, vccina Pentiumovih osnovnih instrukcija iste su kao i za procesor 8088. samo sto
umesto 16-bitnih koristc 32-bitnc rcgistrc. Zbog toga ovaj p1irucnik mozetc smatrati i
uvodom u programiranje Pentiuma na ascmblerskom jcziku.
Da bi bilo koji procesor mogao da sc programira na ascmblcrskom jeziku, progra-
mer mora da detaljno poznavati njegovu arhitckturu skupa instrukcija. Shodno tome,
odcljci od C. I do C.4 ovog dodatka posvcccni su arhitckturi 8088, organi-
zaciji njcgovc mcmorije, nacinima adrcsiranja i instrukcijama. U odcljku C.5 razma-
tramo ascmblcr koji se koristi u ovorn dodatku i koji sc, kao sto kasnije objasnjavamo,
mozc dobiti bcsplatno. Koristimo oznacavanje kojc se upotrebljava u pomcnutom
asembleru. U drugim ascmblera sc koristi drugacijc oznacavanjc, pa citaoci koji vee
poznaju programiranJe proccsora 8088 na asemblcrskom jcziku trcba da obratc
paznju na cvcntualnc razlike. U odcljku C.6 govorimo o alatki za interpretiranjc, pra-
cenjc i otkrivanje grc;aka koja sc mozc preuzeti sa Interncta; pomocu nje, pocetnik ce
lakse otkloniti grcske u programu. U odcljku C.7 opisuje se instaliranjc alatki i poce-
tak rada s njima. Odeljak C.S sadrzi prograrnc, primere, veZ.banja i rescnja.
C.l PREGLED
Nase putovanjc kroz programiranjc na ascmblerskom jeziku zapocecemo s neko-
liko reci o samom jeziku i jednim kratk.im prirnerom.
C.l.l Asemblcrski jczik
Svaki asembler korisri mnemonike, tj. kratke reci kao stu su ADD. SUB i MUL za
masinske kao StO Sll sabiranjc, oduzimanjc i 111IlOZCiljC, da bi SC Jakse pam-
tile. Osim toga, asemblcri dozvoljavaju koriscenje simbolickih imena za konstantc i
oznaka koje se odnose na instrukcije i memorijske adrese. Isto tako, vccina asemblera
podrzava izvestan broj pseudoinstrukcija koje se nc prevode u ISA instrukcije, vee
predstavljaju komande ascmblcru pomocu kojih se upravlja procesom asembliranja.
Kada se program napisan na asemblerskom jeziku prosledi programu zvanom
asembler, ascmbler ga pretvara u binarni program pogodan za dircktno izvrsavanjc.
Ovaj se program tada mozc izvrsavati na stvanwm hardveru. l'vledutim, kad ga pocet-
nici programiraju na asemblerskom jeziku, cesto prave grcske i binarni program 'c
tada zaustavlja. bez ikakvog obavestenja o tome stajc bilo pogresno. Da bi se pocet-
nicima olaksao hvot. ponckad je moguce da se binarni program nc izvrsi na pravom
hardveru, vee na simulatoru, koji izvrsava instrukciju po instrukciju i daje obaveste-
nja o tome sta se dogalta. Na taj nacin se grdke mnogo lakse otkrivaju. Programi se
na simulatoru izvrsavaju veoma sporo. naravno, ali ako jc eilj da se nauci programi-
ranje na asemblcrskom jeziku. brzina nije vaz.na. Ovaj dodatak je zasnovan na kom-
pletu programskih alatki koje obuhvataju simulator. zvan interpreter ili program za
pracenje (engl. tmcer), postu on intcrpretira i prati izvrsavanje binarnog programa
C.l Pregled
695
-----------------------------
korak po korak. Izrazi ,simulator", ,interpreter" i ,program za praccnjc koristicc se
u ovom dodatku kao sinonimi. Obicno cemo, kada govorimo o izvrsavanju programa,
govoriti o .,interprcteru", a kada ga koristimo za otkrivanje gresaka, pominjaccmo
,program za pracenje", mada je to u oba slucaja isti program.
C.1.2 Kratak program na asemblerskom jeziku
Da bismo konkretizovali neke od ovih apstraktnih ideja, razmotrimu program i is-
pis sirnulatora kada mu se proslcdi program (slika C-1 ). Slika C-l (a) prikazuje jed-
nostavan asemblerski program za proeesor 8088. Iza uzvicnika su brojevi redova
izvornog koda koji olaksavaju snalazcnje s razlicitim delovima programa. Kopiju
ovog programa mozctc naci na'prateeem CD-u, u direktorijumu CXC/1/lf'les, ll datoteci
sa izvornim kodorn Hllo Wrld.s. Ovaj asemblerski program, kao i svi ascmblerski pro-
grarni o kojirna govorimo u ovum dodatku. ima sutiks .s, koji ukazujc nato da se r<ldi
o izvornom kodu pisanom na asemblerskomjeziku. Ekran simulatora, prikazan na sli-
ci C-1 (b), ima sedam prozora, od kojih svaki sadi'Zi razlicite int'ormaeije o stanju bi-
narnog programa koji se izvrsava.
1
WRITE 4
STDOUT 1
.SECT .TEXT
start:
MOV ex dehw
PUSH ex
PUSH hw
PUSH STDOUT
PUSH WRITE
SYS
ADD SP. 8
SUB CX.r\X
I)
cs 00 DS"SS"ES 002
12 AH 00 Al oc AX 12
I 3 BH:OO Bl.OO BX 0
14 CH:OO Cl Oc ex 12
I 5 . DHoo DL.OO OX: 0
I 6 SP 71d8 SF 0 D S Z C ">0004
I 7 BP 0000 CC > p 0001
I 8 iS I 0000 IP OOOc PC 0000
19 01 0000 s t 3rt
' 7
OOOc
! 1 0
!11
! 12
! 13 hw
r-
MOV CX,de hw
PUSH CX
PUSH HW
PUSH STDOUT
-
PUSH WRITE
..
SYS
=> ADD SP ,8
SUB CX.AX
PUSH ex
PUSH ex ! 14
> Hello World.r1
PUSH EXIT I 15 nw -t- 0 = DODO 48 65 6c 6c 61 20 57 01 Hello World
SYS I 16
SEC!' DATA '17
nw 18
ASCII "Hello World\n" 19
1 de .BYTE 0 20 ,
(a) (b)
I
6
I 7
I
8
I 9
I 10
111
I 12
I 13
' 14
25928 '
Slika C-1. 1a1 Pt\Jgriillllla IN:mbkrsk.nmjc!.iku.lh) OJgovaraJtH'i prikaz u simulahxu.
Objasnimo ukratko ;,edam pw1.ora na slici C-1 (b). Na vrhu su tri prozora. dva ve..'a
s manjim u src:dini. Gornji levi pruzor prikazuje sadrzaj pwccsora: tekucc vrcdno<ti
scgmentnih registara CS. DS, SS i ES, aritmcLickih rcgistara .'IH, AL, AX i drugih.
Srednji prozor u gornjem redu prikai.Lije stck, pmlrucje memnri.Je kojc -;c korisli L.a
privrcmenu vrcdnosti.
Desni promr u gomjcm rcdu sadr?.i dco prugrama na asemblcrskom jcziku. sa stie-
licorn koja pokazu:e instrukciJU koja se trenutno Tokom racia programa
ll1cllja SC tckuca instrukcija i ,;trclica SC p<Hl1Cra. ivJoc simuJalura JC U tulllC Stll ptiti-
SkOill na ta>tcr Return \lla PC je to Enter) izvrsavatc jednu instrukciJU i ,vi
SC prozori a;iuriraju, sto Olllogucava izvrsavanjc programa instrukciju po instrukcijll.
708
Mnemonik
MOV(Bi
XCHG(Bi
LEA
PUSH
POP
PUSHF
POPF
XLAT
ADD( B)
ADC(B}
SUB(B!
SBB(Bt
IMUL!B)
MUL(El!
IDIV[BI
[)IV\BJ.
CBIV
CWO
I NEG(B)
NOT(B!
INCB!

AND( B)
ORt,Bi
XOR181
s,R
1
Bi
S,\'i.B)
SAL d::3l (
RCL181
ROR1B1
RCL:Bi
,!_
iEc;TIBi
cr,:JP(R.t
STCI
CI_D
STC
CL::
CMC
i_(X)P
L::Cf'Z L(H)f'E
1
_:J(_)?NE
s:Pz


:31
i_OC.:)i8',

::-;c.;.:- :2,



CALL

.SY.S
Dodatak C: Programiranje na asemblcrskom
Opis
PremeSta reC, bajl
RazmenJUJe reC
UCitva elektivnu
SmeSta na stek
Uz1ma sa stek3
Stavip md1katore na steK
Uz1ma ind1katore sa stE-:ka
Prevodi AL
Dodaje reC
Oodaje reC s prenosom
Oduz1ma reC
Oduzrma reC s
MnoZ1 oz.-lJCene cele brO!L''<!J
MnoZ1 neoznaCene r:ele brott-Ne
Dt:il ozna.Cene cele brctevt;
Dell cele
ProS1ruje znak IZ oa.Jta oJ rec
Pro::WUJe zr.dK 1z rt::Ci u jvostr:Jkll ret:
B1narna negac113
komplernent
Uvecav3 oJrediSte
Operandi
r- e, e..-.
r .... e
r- #e
e.#
e e ,.__ r, e #
e, c .... r. e --- #
r e. e r, e #
e, e <;-- r, e
SmanJuJe omeUISte

Log1Cko ,J'
Log,Cko ,.ill"
Log1Cko ,Jski[UC:ivo i11"
Log1Cko por'lPr,'Wi>? t,desno
ArJtmetJCKo udesno
POrT'8f:1flJ8 lJI8VO
Roman
1
e uJe.;u
PotlfC'lf1J8 ud8vll0
RotJranJe uievo s prcnosotn
pmno'>Om
oc(:_:lride
0
ored1 OD<H:lfld':o'
Posravlja irk:llkCJ.tor srnH a
1
1
t3i:Sl> ( )
PosLJVI[d ,r;dn<ator prenosa
Sr::;e 1'1G;I\dt>Jr ;:nen.Jsa

S,..,.Jce 1 klZdd 1ko ;e uman1en CX20
Z=l I DEC.CX)c:'"O
lkO JP z_ 0 I DEC(CXLe:O
0
:JrJv
1
!.l Li1 rad
-:;-3 znak'J\fl1> n,zom
.liZ ':JCi
L:C1tava n1:: reu
;11Z rt>C:
P-oi:J.L: ,lZ reci,
?oreJ1 n1znw: -eCI
S\aC.e u z:l'< ISf\LJStl ad uslova
Sr..COJCC: na czn.1ku
Sr-;;,_(t' f:Cl. ;=:octorJqr
vraca se 2 pot;_;rogrnrna
_ ;< f?OZIV
e ,.__ r ...
e
e
e -- 1, e <;- CL
1,e-CL
e..- e -- CL
e 1, e- CL
e- 1. e- CL
e.
e CL
e- e- CL
e ..--- r. e #
e..- .. r, e- #
oznaka
oznaka
oznaka
1ns1rukci:a koja radi
sa znakovrwn r.Jzov1rna,
oznaka
e, oznaka
e, oznaKa
, #
i
lndikatori statusa
0
I
s
LJ_C_I
I I
I
'
i
I
u u
I
u u
u i u u u
u ! u u u
i
t
I

Slil-.a C--1. ud rujvalnrjih in.,trukci)'l proccsura XIJXS.
t

J
CA Skup instrukcija procesora SOSS
C.4.2 Logicke operacije, opcracije nad bitovima
i operacije pomeranja
709
Sledeci blok sadrzi instrukcije za prosirivanje znaka. negiranjc. nala2enje logiCkog
komplementa, postupno uvecavanje i postupno umanjivanje. Operacije prosirivanja
znaka nemaju izricito zadate operande. ali rade s kombinacijama registara OX :AX ili
AH : AL. Jcdan operand potrchan za druge operacijc iz ove grupe moze se uzeti s bilo
koje ekktivne adrese. lndikatnri se u slucaju operacija NEG, INC i DEC mcnjaju na
occkivan nacin, osim sto Ll operacijama postupnog povccavanja i postupnog umanji-
vanja nc reaguje indikator prenosa; to je sasvim neocekivano i neki smatraju daje to
greska u projektovanju.
SledeCi bluk instrukcija ob'uhvata grupulogickih operacija s dva opcranda koje se
SVC ponasaju prema occkivanju. l_; grupi ;:a pomeranje i rotiranje, SW operacijc za lld-
rediste imaju efcktivnu adresu. ali jc izvoriste ili R-bitni registar CL iii broj I. Pri [)O-
mcranju reaguju sva cetiri indikatora; pri rutiranju reaguju samo indikatori pn:nosa i
prekoracenja. lndikalor prenosa uvek dobija bit koji je pomercn ili rotiran sa naj-
znacajnijeg, odnosno najmanje znacajnug mesta. sto zavisi od smera pomeranja iii ro-
tiranja. U operacijarna rotiranja uz prcnos. RCR. RCL. RCRB i RCLB. prenos zajedno sa
operandom na eft.:ktivnoj adresi formira 17-bitnu iii lJ-bitnu registarsku kombinaciju
la cirkularno porncranje koja olaksavJ visekratno pomeranje i rotiranje rcci.
Sledeci blok instrukcija sluzi zJ manipulisanje indikatorima. najce'ice kao priprc-
ma za uslovni skok. Dvostruka strdica (H) oznacava dva operanda u operacijama pu-
redcnja i testiranja koji se tokom operacije nc menjaju. U uperaciji TEST izracunava
se logicko AND operanada ina osnovu rezultata se postavljaju iii brisu indikatori nuk
i znaka. Sama izracunata vrednm.t ne smdta se nigde. a operand ustaje neizmenjcn.
U operaciji CMP izracunava se razlika upcranada i sva cctiri indikatura se menjaju na
osnovu rczultata. lndikator smcra koji odreclujc da lice sc registri Sl iii 01 povecavati
iii umanjivati uoperacijama sa ;nakovnirn nizovima, mo2e se postaviti ili ()hri>ati kn-
mandom STD, odnosno CLD.
Procesur 80XR ima i indikator parnosti i pomocni indikator pcnosa. lndibtor
parnusti saopstava parnost rezultata (neparan iii paran). Pomocnim indikaturr>m ;xe-
nnsa proverava se da li je do prenosa do;]o u ni2em niblu I 4-hitnom) mln::di;ta. Postll-
je i instrukcijc LAHF i SAHF koje kopiraju nizi hajt registra sa indikatorirna u AH i
obrnuto. Jmlikatur prekoracenja se nalazi u gornjem bajtu rcgistra s kodovima uslnva
i tokom ovih instrukcija se ne kopira. Ove instrukcije i indikatmi ugla\ nom pmlOJC
zbog povratne kompatibilnosti s pmcesorima 8080 i
C.4.3 Petlje i operacije ponavljanja sa znakovnim nizovima
Naredni blok sadrzi instrukcije za rad s pctljama. lnstrukcija LOOP umanjuje vn::d-
nost registra CX i ()bavlja skok na udgovarajucu oznaku ako JC rezultal pozirivan !n-
strukcije LOOPZ. LOOPE. LOOPNZ i LOOPNE tcstiraju indikator nule da bi eventuaLm
prekinule petlju pre nego sto vrednost registra ex postane 0.
698 Dodatak C: l
1
rogramiranje na ascmhlcrskom jeziku
Registri opste namene
AX AH AL
----
BX BH BL
ex CL
---- -------
ox OL
15 8 7 0
Pokazivacki i indeksni registri
E
Pokazivac
- -------------
Bazni pokazivac
-------------
s 1 ti - _ lndeks 1zvorista J
0 I - ___ /
-- - --- ___ ___j
SP
BP
15 0
cs
OS
ss
ES
SF
Segmentni registri
Kodni segment
Segment za podatke
Segment za stek
Oodatni segment
-----
15 0
Kodovi uslova
Ill_ r ll
l _ 0 0 I TIS Z A P cj
statusa -0
Pokazivac instrukcija
I P brojac
-15--------------------,0
Slika C-2. Rcgistri proccsora ::;oss_
cc
PC
__ j
Cetvrti registar u opstuj grupi _je OX, registar za podatke lengL dutu register)_ On
sc zajcdno s rcgistrom AX koristi za instrukcije duline dve reci (lJ. 32 bita). lJ ovom
slucaju ox sadrzi znacajni_jih 16 bitova, a AX manje znacajnih 16 bitova_ Obicno se 32-
-bitni celi bro1evi oznaca\aju izramm dugacak (engl. long). dvostruk 1 engl.
douhle) obicno rezervisan za !J.j.-bitnc nednosti u ronnatu pokrctnog zareza. iako
n.cki ovaj iuaz knriste za oznacavanje 32-bitnih celih brojeva. U ovorn prirucniku _je
zabuna tak ve vrste i->kljucena jcr uopste necemu gmllriti u broje\ ima u formatu po-
kretnog zarcLcL
Sve registre opste namenc mozemo po.,matratz kao I6-L'ilne iii kao parow S-hitnih
rcgistara_ Takn proccsnr SOl'/\ tacno osam S-bitnih registara, koji :-,e mogu koristni
za instrukcije koje ralk' hajlovima i znak.uvima_ NIJcJan od clrugih registara nc mozc
se poJeiiri na dvc :-1-hitne pPiovine_ Neke instrukci_jc koriste L'CL> _Jedan regi,tar I npr.
AX), ali drugc instrukcijc koristc samo jednu njegovu poiovinu (npr. AL ili AH I Low,
engl. donja i fligh. engl. gomjo))_ Vazi princip da ariunetickc instrukci_jc koriste cek
C.2 Proccsor 8088
699
16-bitne registre, a da instrukcije koje rade sa znakovima obicno koriste 8-bitne
registre. Vazno je razumeti da su registri ALi AH samo imena za dve polovine registrJ
AX. Kada sc u AX ucita nova vrednost, ALi AH ce se promeniti u skladu s donjom, od-
nosno gornjom polovinom I6-bitnog broja ucitanog u AX. Da biste vi deli kako AX, AH
i AL medusohno saraduju, razmotrite instnzkciju
MOVAX.258
koja u regis tar AX ucitava dccimainu vrcdnost 258. Poslc ove instrukcije, 8-bitni (bajt)
registar AH sadrzi vrednost I, a S-bitni (bajt) registar AL sadrzi hroj 2. Ako zatim siedi
instrukcija za sabiranje bajtova
ADDBAH,AL
S-bitni registar AH bice uvecan za vrednost u AL (2), tako cia ce sada saclrzati broj )_
Rcgistar AX ce sada sadrzati vreclnost 770, sto je u binarnom obliku OOOOOOII
000000 I 0 iii u heksadecimainom obiiku Ox03 Ox02_ Osam regis tara sirinc ba_jta skoro
su potpuno medusobno ekvivalcntni, samo sto AL uvck sadrzi jedan od operanada in-
strukcijc MULB i zajcdno s registrom AH preclstavija poclrawmevano odrecliste ove
operacije_ Opcracija OIVB takode koristi registarski par AH: AL za smdtan_jc deljenika_
Nizi bajt brojackog registra CL mozc se iskoristiti za cuvanje broja ponavljanja in-
strukcija La pomeranje i rotiranje.
U drugom primeru iz odeljka C.8 prikazuju se neka svojstva registara opstc name-
ne kroz razmatranje programa GenReg.s_
C.2.3 Pokazivacki registri
Drugu grupu registara cine pokazivacki i indeksni rcgistri. Najvazniji registar iz
uve grupc _je pokazivac steka (engl. stack pointer). koji sc oznacava sa SP. Stekovi su
vaL.ni u vecini programskih jezika_ Stek je segment memorijc koji sadrzi informacije
o kontekstu programa koji se izvrsava. Kada se pozove proccdura. cleo steka se po
pravilu rezervisc za cuvanje njenih Iokainih promenijivih. adrese za povratak po za-
vrsctku procedure i druge upravljacke informaci_jc. Deo steka koji se odnosi na proce-
duru zove se okvir steka (engl. stackji'ume )- Kada pozvana proeedura pozove clrugu
pmcecluru. rezcrvis.c se dodatni okvir na steku, obicno neposredno ispod postojeceg.
Duclatni pozivi rezcrvisu cloclatne okvire na steku ispod tckuceg. lako to nije ubavc-
;.nu. stckuvi po praviiu rastu nanile, od visih ka nizim adresama_
LJ;. Iokaine promenljive, stt:kovi rnogu da cuvaju i privremene rezultate. Procesor
80S:; ima instrukciju PUSH kojom smcsta 16-hitnu rec na vrh steka. Ova instrukcija
prvv _-,manJujc SP za 2, zatim skladisti operand na adrcsi na koju SP trenutno pokazu-
_jc Siicno tome, instrukcija POP poviaci 16-bitnu rec s vrha steka prcuzimajuci vrcJ-
nost, vrha steka i uvecavajuci SP za :2_ Registar SP pokazuje na vrh steka i njegova
vrednost se moze menjati instrukcijama PUSH, POP i CALL: instrukcija PUSH je sma-
nju_jc. POP je uvecava, CALLje smanjuje_
712

I JNBE, JA
' ---- -- --- ---
' JNE, JNZ
L ----- ---- ---
: JL, JNGE
i JLE, JNG
I - - --
JNo
I
Dodatak C: Programiranjc na asemblersknm jcziku
Opis
lznad
Nenula, nejednako
Manje od
------
Manj8 iii jednako
NeprekoracenJe
Nenegativno
Skate kada je


---------

SF'i"OF
SF,OF iii ZF=1

SF=O
Slika C-5. u,lovni skokovi. (IIU.\[U\'(i/.;)
C...t.S Pozivi potprograma
Procewr XOXX ima instrukciju za pozivanje pron:dura. 1-;ojc se u asemblerskomje-
ziku obicno n<tJivaju potprogrami (engl. sulmmtincs). Kao 1-;oJ instrul-;cija za sko-
kovc. i ovdc postuje in,trukcije za hlisko pozivanjc 1 engl. ncar call) i instrukcije za
udaljeno pozivanje (engl. j1r cull). U imerprctt:ru jc implementirano samo hlisko
po;.ivanjc. Odrcdistcjc iii o1.nab iii se mole n;K'i na clektivnuj adresi. Parametre pot-
rcbne potprugr;unirna trcha najpre '>taviti na stck obrnutim rcdosil'Jom, kao sto je pri-
1-.a;arm na siici C-(J. U a'cmbkrskom jcziku parametri se ohicno zovu argumcnti,
kad oha izr;ua inMJU i,to ;nacenjc. Posk smc:.:tanja parametara na stek izvrsava se in-
strukcij;t CAL.L. lnstrukciJa poCinje tako stl' sc: na stek tekuL'a vrednnst pm-
gramskclg hwjaCa. Na taj nacin sc cuv;t pPVT<ttna adrcsa. Povratna adresa je ona na
KOjll SC: tok \T<!Ca iz pPlJ'r<'!,!!al\1:!.
BP+8
I
BP+6 r Argument 2
I
BP+4 Argum;,nt t
BP+2 ' ?ovrat;:a aoresa
i
I
ElP , St0ra vrednosc BP ' c-- BP
BP - 2 Lokair.a cromeilljiva 1
BP- 4 Lokalna pron:enijiva 2
BP- 6 pron tHlljiva .3
1
BP - 8
1
Pnvc;meni '<-- SP
Slika C-6. f';imn 'teLL
Po.,k ,,. crcit:tv.tnuv pro,"rarmki hroj;Jc ['reko oznakc: iii sa efektivne adrc,e.
jc l'u/iv ucLtltt'll. CS se 11:1 stek pre registra PC i tada sc nova
vrcdlitll i'rcjai"a i rcgiotr;t La kodni segment ucitav aju iz ncpu,rednih
il1 ni:1 Tin1l :-:c iiL')trukcija CALL zavrSava.
in:olruLtl.t RET '"'II" uzima -.:a stcka i smcstajc u program,ki bro-
nasl:tvija 'a ud inslrukcijc koja se naiazi nepo-
srnli:u i/a CALL. Pond.;tda iiblntkcija RET saJrzi bmj kao
C.4 Skup instrukcija proccsora 8088
713
neposredne podatke. On treba da predstavlja broj bajtova argumenta koji su stavlje:1i
na stek pre pozi va, i dodaje se na vrednost SP da bi se stel-; ocistio. Pri udaijenom po-
zivu RETF, posle programskog brojaca uzima se registar za kodni segment, kao sto Ci-
ste i ocekivali.
Argumenli trcba da budu Jostupni potprograma. Prema tome, potprogram
cesto prvo na stek stavija bazni pokazivac i kopira trenutnu vreclnost registra SP u re-
gistar BP. To znaCi da hazni pokazivac ukazuje na svoju prethoJnu vrednost. SaJa je
povratna adresa na BP + 2, a prvi i drugi argument rnogu se nac'i na efektivnim aJresa-
ma BP + 4 i BP + 6. Ako su proceJuri potrebne lokalne promenijive, ncophodan broj ba-
jtova moze se oduzeti od steka i te promenljive adresirati u odnosu na
bazni pokazivac s negativnim pomerajem. U primcru na slici C-6 postoje tri iokahe
promenijive duzine rcci, na adresnim BP- 2, BP- 4 i BP- 6. Na taj nacin ceo skup te-
kucih argumenata i iokalnib promcnljivih dostupan je preko registra BP.
Stek se koristi na uobicajcni nacin za cuvanje medurezuitata iii w pripremanjc :tr-
gumcnata za sledeci poziv. Stek se moze vratiti u prvobitno stanje bez potrebe da sc
izracunava koiiko je njegovog prostora zauzco potprogram, tako sto sc bazni pokazi-
vac kopira u pokazivac steka, sa stcka uzme stara vrednost rcgistra BPi na kraju se
izvrsi instrukcija RET
Tokom pozivanja potprograrna ponekad se menjaju vreJnosti registara procesma.
Dobru JC ako se uspostavi neka konvencija o tome da po1.ivajuc'i pot program ne zna
nista o rcgistrima J-;oje koristi pozvani potprogram. Najjednostavniji nacin da se to
uradi jestc da se ista konvcncija primeni i za sistemskc pozive i za uobicajene potpro-
Pretpostavlja se da registri AX i OX mogu promeniti vrednost u pozvanom pnt-
programu. Ako jcdan ud ovih registara sadrzi dragocene informacije, onJa bi bilo
clobro Ja potprogram koji poziva stavi tc informaciJe na stek pre nego sW na njega sta-
vi argumente. Ukuliku potprogram kuristi i druge registre, njihov sadrzaj sc: moze
smestiti na stek na pocctku potprugrama is njega povuci pre RET Drugim
recima. dobra konvcncija bi bila da pozivalac sacuva vrednosti regis tara AX i OX uko-
iiko oni sadrzc vazne podatkc, ada potprogram sacuva vrednost svakog re-
gistra u koji upisujc.
C.4.6 Sistemski pozivi i potprogrami
Kako hi se posiuvi otvaranja, zatvaranja. citanja datoteka i upisivanja u njih rard-
VOJili od programiranja na asemblerskom jeziku, programi se iznaJ opera-
tivnog sistema. Da bi interpreter mogao da radi na razlicitim platfurmarna, Llll poJriava
scdam sistemskih poziva i pet funkcija, navedenih na slici C-7.
Ovih dvanaest potprograma moze S(; aktivirati standardnim postupkorn pozivanja:
najpre na stek treba staviti neophodnc argumente uhrnutim rcJoskdom. zatim broj
poziva ina kraju po;vati sistemsku klopku SYS bez operanada. Sistemski potprogram
pronaiazi sve ncophodnc informacije na steku, ukljucujuci i broj poziva J:ahtevane si-
stemske usluge. Povratne vrednosti sc iii u registar AX, iii u kumbinaciju re-
gistara OX :AX (kada je vraccna vrednost dugacka rec).
-ii

%'';-


+;
:!iii
;tt,
;{;f


706 Dodatak C: Programiranje na asemblerskom jeziku
C.4 SKUP INSTRUKCIJA PROCESORA 8088
Srcc svakog racunara je skup instrukcija koje moze da izvrsava. Da bistc stvarno
razumeli racunar. neophodno je da prvo dobro razumcte njegov skup instrukcija. U
narednim odeljcima razmotric'emo najvaznijc instrukcije proccsora i5088. Nekc od
njih su prikazane na slici C-4, gde su razvrstane u 10 grupa.
C.4.1 Premdtanje, kopiranje i aritmeticke instrukcijc
Prva grupa instrukcija udnosi se na premcstanjc i kopiranje podataka. Najcdcaje in-
strukcija MOV, koja ima svojc eksplicitno izv01iste i eksplicitno odrediste. Ako je izvo-
riste registar, odrcclistc mu/.e da budc dektivna adresa. U ovoj tabcli je rcgistar kao
operand oznacen sa r. a efektivna aclresa sa e, tako dajc kombinacija operanada oznacc-
na sa e<-r . To jc prva odrcunica u kuloni Opemndi za instrukciju MOV. Posto je u
sintaJ...si instrukcija odrcdistc prvi operand, a izvoristc drugi, strelica <c- se koristi za uka-
zivanjc na opcrande. Tako, c<c-r znaci da sc registar kopira u efektivnu adresu.
Izvoristc za instrukciju MOV mo7.c da budc takode efektivna adresa, a njeno Dlire-
distc registar. SIL' sc m:nacava sa r<cce, kao druga odrednica u koloni Operandi. Treca
mogucnost /.a izvmistc su ncposredni podaci. a efektivna adrcsa kao odrediste, sto se
oznacava sa c<c-#. Neposrcdnu dostupni podaci u tabeli su oznaceni ,tarabonl'' (#).
Pusto postuji instrukcija MOV za prcmdtanjc rcci, kao i instrukcija MOVB za pre-
mdtanjc bajrova. mncmonik instrukcije sc zavrsava sa B u zagradi. Na taj nacin, red
stvarno prcdstavlja scst razlicitih instrukcija.
Nijcdan od indikarora u registru s kodovima uslova nije pod uticajcm instrukcije
za tako da poslednjc cctiri kolone imaju odrednicu ,-". Imajte u vidu cia
instrukciJC za premt:Stanje nc prcmestaju podatke. One samo pravc kopije, pa se iz-
voriste ne mcnja. sto hi bio slucaj kada bi doslo do pravog premdtanja.
Druga instrukcija u ovoj tabcli Je XCHG, koja razmenjujc sadrhj rcgistra sa sadrza-
jcm cfcktivnc adrcsc. Za razmcnu sc u tabeli kllristi simbul H. U ovom slucaju posto-
ji vcrzija .ca razmcnjivanje bajtnva. kao i verzija za razmcnjivanjc rcci. Na taj nacin,
instrukcija sc o.cnacava sa XCHG. a polje Operandi sadrzi rHe. Sledcea instrukcijaje
LEA. (to jc skraL'cno lld Load Efkcti ve Address ( ucitaj efekti VIlLI adresu ). On a izracu-
na 1 a hrojca nu vrcdnost cfckti vne adrcse i smdla je u regis tar.
S kdi instruJ.:cija PUSH koja svoj operand smesta na stek. Eksplicitno navedeni
operand mu.l.e da bude konstanta (# u koloni Operundi) iii ckktivna aclresa (e u ko-
lonJ Oncrw,di). Postoji i podrazumevani operand SP koji sene pmninjc u sintaksi za
instruJ.:c-ijc. Jnstrukcija umanjuje sadrzaj rcgistra SP za :2, zatim smcsta operand na lo-
ka:_'IJU na k' >ju sada uka.cuje SP.
Sil'dcc'aje instrukcip POP, koja uklanja operand sa steka i smesta ga na .cfcktivnu
:Jdn:su. dvc instrukcijc, PUSHF i POPF. takudc imaJU podrat.umcvanc ope-
randc: Dnc smcstajuna ,;tck is njega uklanjaju registar sa indikatorima. To vazi i za in-
struLiju XLAT koja ucitava 8-bitni rcgistar AL sa adrcse AL+BX. Ova instrukcija
umoguL'a,a brzu pretrazi vanje tabcla velicine 256 bajtova.


C.4 Skup instrukcija procesora 8088 707
Zvanicno definisanc za procesor 8088, ali neugradcne u interpreter (i zato va.1
spiska na slici C-4). jesu instrukcije IN i OUT. To su instrukcije za premdtanje pod<J-
taka izmectu memorije i ulazno-izlaznih ureL1aja. Podrazumevana adresaje uvek regi
star AX, a drugi operand u instrukciji je broj prikljucka zcljenog rcgistra uredaja.
U drugom bloku na slici C-4 nalaze sc: instrukcijc za sabiranje i oduzimanje. Svab
od njih ima iste tri kombinacijc operanada kao i instrukcija MOV: sa cfcktivne adresc u
registar, iz rcgistra na cfektivnu adresu i konstanta na efektivnu adresu. Na taj nacir.,
kolona Operandi tabelc sadrzi r<c-e, e<c-r i e<c-#. U sve ovc cctiri instrukcijc indikat0r
prckoraccnja 0, indikator znaka S, inclikator nule Z i indikator prenosa C postavljaj'J
se zavisno od rezultata instrukcije. To, na primer, znaci da se indikator 0 postavlja m
I ukoliko se rczultat ne moze ispravno prikazati pomocu dozvoljenog broja bitova, a
na 0 ukoliko mo?.e. Kada sc najveci 16-bitni broj, Ox7ftt (32.767 decimalno), sabere sa
samim sobom, rezultat sc nc mozc kao oznacen 16-bitni broj, pa sc indikator ()
postavlja na I da ukaze na grdku. Slicno se desava is drugim statusnim indikatorima
u ovim opcracijama. Ako instrukcija utice na indikator statusa, u odgovarajucoj kolmi
se pojavljujc zvczdica (*). U instrukcijama AOC i SBB indikator prenosa se na pocctkLJ
operacijc koristi kao dodatno I (iii 0), za prenos iii pozajmicu od prethodne opcracijc.
Ova mogucnost je narocito korisna ;a prcdstavljanje 32-bitnih iii duzih cclih brojcva
pomocu nekoliko rcci. Za sva sabiranja i odut.imanja postoje i odgovarajuc'c verzije La
bajtovc.
Sledcc'i blok sadrzi instrukcije za rnnozcnje i deljenjc. Za oznaccnc cclobrojne
opcrande koristc sc instrukcije IMUL i IOIV; za ncoznacene sc koriste MUL i OIV. Kom
binacija registara AH : AL podrazumcvano je odredistc u verzijama ovih instrukcija
kojc rade s bajtovima. U vcrzijama koje rmle s rccima, podrammcvano odrcdtste JC
kombinacija rcgistaraAX: OX. Cak i kadaje rczultat mno:l.enja samo rec iii toko1n
operacije sc obavlja upisivanjc u rcgistar ox iii AH. Mnozcnje je uvek mogucc jer oc-
rcdiste sadrzi dovoljno bitova. Bitovi prekuraccnja i prenosa postavljaju se kad ;e
proi7.VOd ne moze izraziti jed nom recju iii jednim bajtom. Poslc mnozenja Sll indib
tori nule i znaka ncdcfinisani.
Pri dcijenju se takodc za odrediste koristi kombinacija registara OX: AX iii AH: AL.
Kolicnik ide u AX iii AL, a ostatak u ox iii AH. Posle operacijc deljenja, sva cetiri ind,.
katora (prenosa, prekoracenja, nule i znaka) ncdcfinisani su. AJ.:o jc delitclj tl iii h
I icnik ne moze cia staJJC u regis tar. operacija upada 11 klopku i program se zaw,Ja v IJI
ukuliko nc postoji potprogram za obradu klopke. Stavisc. ima smisla da se negativaLJ
znak ubradi softverski pre i poslc dcljcnja, jcr je po deliniciji pruccsora 8m\R ;nak
ostatka jednak znaku dcljenika. dok je 11 matcmatici ostatak uvek nenegati van.
lnstrukcije za binarno kodirane decimalnc brojeve, npr. Ascii Adjust for Additi,,n
(AAA) i Decimal Adjust for Addition (OAA), nisu implcmentiranc pomoL'u intcrprcte1a
i nisu prikazane na slici C-4.
716 Dodatak C: Programiranje na asemhlcrskom jeziku
C.4. 7 Zavrsne napomene o skupu instrukcija
U zvanicnuj Jdiniciji procesora 8088 postoji preliks za zanemarivanje ddlnicije
segmcnta koji olaksava mogucnost koriscenja efektivne adrese iz nekog drugog seg-
menta; to znaci da se prva memorijska aJresa iza komanJe za zancmari vanje izracu-
nava naznaccnog segmcntnog rcgistra. Na primer, instrukcija
ESEG MOV DX,(BX)
najpc izracunava adresu rcgistra BX pomocu doJatnog segmenla, a zatim sadrzaj pre-
mcsta u DX. Met!utim. ne mogu sc zane-mariti Jetinicijc scgmenta za slek u slucaju
Ltd adrcsa koristi registar SP i clodatnog segmcnta u slucaju instrukcija za rad sa zna-
kovnim nizovima kuje koriste rcgistar Dl. U instrukciji MOV mogu sc koristiti
scgmentni registri SS, DS i ES, ali niJC mogucc- u scgmcntni registar ucitati ncposred-
ne podatkc-. a segmentni registri sene mogu koristiti ni u operaciji XCHG. Programi-
ranje uz menjanje saddaja segmentnih registara i delinicija segmenata prilicno je
ri;icno i treha ga izbegavati kad god je mogucc. Interpreter koristi tiksne segmcntnc
rcgistre. tako da se kod njcga ovi prohlemi nc javljaju.
(nstrukcije za rad S brojcvima ll furmatu pokrctnog Lare;a jlllStoje U \'CCini racu-
nara, ponckacl direktno u procc,oru, ponekad u pm.chtHllll knproccsoru. a ponekad
samo kao softverski interpretiranc instrukcije kro; specijalnu vrstu klopke za pokret-
ni zarcz. Ra11natranjc tih osobina rrc:va;ila;i okvirc ovog dudatka.
C.S ASEMBLER
Zavr.sili smo ohjasnjavanjc arhitekture procesora Sledcca tema je suftver
koji sc kuristi za programir:mje proct'sora na asemblcrskom jc;iku. a namcito
alatkc kujc- :-.mo izabrali ;a poucavanjc programiranja na asemblerskum jaiku. Prvo
ccmo govuriti o asembkru. ;atim o simulaturu (interpreter). a onda cemo preL'i na
prakticne savctc za njihovo
C.S.l Uvod
Do sada snHJ sa instrukcijama radili pomocu njihovih mncmonika. tj. kratkih i lako
pamtljivih simholil'kih imena kao stu su ADD i CMP. Takodc smo koristili simbolicka
imena registara, kao stu su AX i BP. Program u komc su koriscena simhu\icka imcna 1.a
instrukcije i rcgistre zovc sc program na ascmhlciskom jeziku. Da bi sc takav pro-
gram mogau izvr'iiti. potrebno gaje prvo prevesti u binamc brojeve k(ljc procesor ra;u-
me. Program kuji prcl\ara program pisan na asemblcrskomjcziku u hinarnc brojeve
zow se asemhler. !;!ami re t.ultat asemblera je datotcka sa ohjcktnim kodom. 1\lnogi
prograrni pozivaju potprogramc koji stt pretlmdno hili a:-.cmblirani i sacuvani u hihli(l-
tekema. Da bi ih mugli kuristiti, a:-.emblirana objd..tna datoteka i bibliotccki putpru-
grarni kujc <lna koristi (t:tkode k::(l objcktne datoteke) nmraju se kombinovati u
jedinsl \'Cttu izvrsnu hinarnu datoteku: tu radi program za povezivanje (engl. linker).
Prevm!cnje jc- potpuno zavrscno kada program za povczivanje napravi tzvrsnu hinarnu
"'
f';
i:<
.;


f
'
1
l.
l

i
l
)
'

t
l.
r
1
'
;
I
!
i
i

,,
, ..
.
.

15,
C.5 Asembler 717

datotcku od jcdnc iii vise objektnih datuteka. Operativni sistcm tada mo'i'.c da uCit:t
izvrsnu binamu datotcku u memoriju i daje izvr;i.
Prvi zaclatak ascmbleraje da napravi tahclu simhola koja se kuristi za preslikavan1c
imena simbolickih konstantni i oznaka u binarne brojcve koJC prcdstavljaju. Konstant.:
koje 'e dircktno dcflnisu u prog:ramumogu se staviti u tabclu simbola bez. ikakve obr;c-
dc. 1\ledutim. oznakc prcdstavljaju adresc koje se nc mogu oclmah znati. Da bi izracL-
nau njihove vrednosti, asembler u prvom prolasku prolazi kmz pmgram red po red.
Tokom ovug prolaska on vodi racuna o hrojacu lokacija, obicno oznacennm simbo-
lom ,." (itgovara se .,dot" prcma engl. dui). Za svaku instrukciju i memori_ c
koja sc pronade u ovom prolasku. brojac lokacija sc povecava La vcli(inu memort c
potrebnu da prilwati pronadenu.stavku. Na taj nacin, ako Sll prvc dve instrukcijc
2 i :1 bajta. oznaka 1a tn:cu instrukciju imala bi brojcanu vrednost 5. Na primer. ako :.c
dco koda nalazi na pol:etku prugrama, vreclnost nznake L bila bi 5.
MOV AX,6
MOV BX,500
L:
Na pocetku drugog prolaska po;nataje hrojcana vrnlnost svakng simbula. Pos'u
su hrojcanc vrednusti mnenwnika instrukcija konstante, moze sc poccti s generi-
san.il'fil koda. lnstrukcije sc- ponuvo citaju. jcdna pu jedna, i njihove binarne vrcdnJ-
sti 'e zapisUJLI u ohjcktnu datolL'ku. Kada je a'cmblirana i poskdnja instrukcia.
ohjc-ktna dawtcka je zavrscna.
C.5.2 ACK-ascmhlcr,
U ovom <llkljktt upisacenm l'ro;;rJma za ascmblir:tnje i pPvclivanjc o.d8
kUJije prilu!:cn na kumpat-.t disku :nalazi sci ll:J \\c.:b lukaciji). a radi UL 'imLtbtor. O'aj
asc:mhkr jt' uv. komplL'l za pL'\;J,lcnjc \Amstcrd:lll: C:umpilcr Kit,
ACK) kuji jc" napra\ ljen pu ugkdu na asc:n:hlcre let nl.' p'> l!':'kllu na asc:mblcrc za
MS-DOS iii Wimi<'\\S). Sirnboi <1 kumentar u ,J\;Jlll ct,ernhkru je u;v;(nik \' ). s,e )h1
sl.:.di i;:a uz\'iC:1ik<1 Jo kraj:..t teLuC::g j2'-.LL' k.Julc:Ha: k1)_j! ni koji ne utCc
na nhjektni ht."\J. L'1 to, doz\o1jcni su prazni rc:dc)\ i koji sc .
Ovaj asc:nblcr 1-..ori\ti tri oJeljk.a za 1-dllLl i
()ni sc ()dnn..,t: na Pr\; i j.: odeljah za ( TEX.T). Dl
in,;t mk.cije p;u<: ,.,,;ret. S kc!cci j-? odeljak za pnd,ll ke ( D:\T \.1 ;,a inicipl i mv:u1_ie mc-
Ll pudat:tk.a. jc r)!,)/natu l:'OCLtak j)Ph ..'t:S.l. P\J:-.lcdnji jc odcJj,lk
BSS Started by L u k\ -.;L rc/t:n/i\::e u sc:;1ncntu p,;data-:2..,
ali Lj. se n:.1 0;. S\':..lh:i ud iL l)lk'!jak:..t i111a
P<J.Si<Jji mklpka bkn hi Se dopuslil<l J,t gcncri;c: nJ,t!<J
pa n:;du /atilll dpc: n1.1lP !n:--trukLija, /.atin1 .. tL.tk ..t it d .. pa
cLt .... e ;a }'1 prcpu:'lli p:t'UJ\.::di\ anjL ki.?d:t L\a S\'C
cijc dodu 7.:..ljL'dllo u za tl'!::-;t. a .<..:Yl u ;;1 Sv,1ki
1\g g ....'nc;-i;c rc,/uLaL z.a ()de!j;tk, :tii :-,c rt.:Lh}'.'i ;-.. kndu1n i
pnda(in1a preplitati. U il\ odc1jaK Tr::XT se u
z:;J tL"kst. a 1 ndi..ljal-.. f3SS {jt:dno i;.a JrugLg) u ;:a
710
Dodatak C: Programiranje na asemblerskom jeziku
Odretlistc za sve instrukcije LOOP mora biti unutar 128 bajtova od tckuce pozicije
programskog brojacJ, zJto .sto instrukcijJ sadrzi 8-bitni oznaceni porneraj. Broj in-
strukcija (a ne bajtova) preko kojih se mozc preskociti ne moze se tacno izracunati,
zato sto fJLlicitc instrukcijc imaju razlicitu duzinu. Ohicno prvi bajt definise tip in-
strukcije, pa neke instrukcije u koclnom segmentu zauzimaju samo jcdan hajt. Cesto
se drugim hajtom dcfinisu registri i njihov rdim rada sa instrukcijama, a ako instruk-
cijc sadrzc pomeraje iii nepo,n.:dne poJatkc, cluzina instrukcijc moze da naraste na
cetiri iii sest bajtova. Prosccna duzina instrukcijc je oko 2,5 bajta. tako da odrediste
instrukcije LOOP moze biti smt.:Stcno najvise oko 50 instrukcija unazad.
Postojc i specijalni mehaninni za rad u petlji sa znakovnim nizovima. To su in-
strukcije REP, REPZ. i REPNZ. Slicno tome. svih pet instrukcija za rad sa znakovnim
nizovima u sledecem bloku na slici C-4 imaju podrazumevane adrese i sve koriste au-
tomatsko uvecavanje ili autnmatsko umanjivanje vrednosti indeksnih registara. U
svim ovim instrukcijama n.:gistar Sl ukazuje na segment za podatke, a registar 01
ukazuje na dodatni segment. ciji se pocctak nalazi u registru ES. Kada sc upotrebi sa
instrukcijom REP. instrukcija MOVSB moze sc iskoristiti za premestanje celih nizova
jednom instrukcijom. Duzina znakovnog niza nalazi se u registru CX. Posto instruk-
cija MOVSB ne menja stanje indikalora, tokom opcracijc kopiranja nc moze se po-
mocu instrukcije REPNZ provcravati postoji li nula (ASCII), ali se to moze srediti ako
se prvo upotrebi REPNZ SCASB da bi se u registru CX dobila razumna vrednost. a poslc
toga REP MOVSB. Ovaj postupak ce biti ilustrovan primerom kopiranja znakovnog
niza koji it.nosimu u oddjku CX Za sve ove instrukcije posebnu paznju treba posve-
titi scgmentnom registru ES, osirn ako ES i OS sadrze istu vrednost. Interpreter koristi
mali memorijski model, paje ES =OS= SS.
C.4.4 lnstrukcije za skokove i pozive
Poslcdnji blok sadrzi uslovne i bczuslovne skokove, pozive potprograma i povratak
iz njih. Najjednosta\ nija operacija je instrukcija JMP. Ona kao moze da ima
oznaku iii sadriaj bilo koje efcktivne adrese. Ovde sc pravi razlika izmedu kratkih
skokova (engl. ncar jlllllf!) i dugackih skokova ( cngl . .fiujwnp ). Kod kratkih skokova
odredisk se nala;i u tckucem kodnom segmcntu koji se nc menja tokom operacije. To-
kum Jugac'kog skoka. menja sc registar CS. U verziji direktnog adresiranja sa ozna-
kom. nova vrednost registra za kndni segment zadaje se u pozivu i.ca oznake. u verziji
sa ekktivnom adrc.,um iz mcmorije se prcu.cirna dugacka rec, tako da nih rcc oclgo-
vara oznaci udredi.sta. a visa rec vrednosti registra za nov kodni segment.
Nije. naravno. i7!lenaJujuce sto takva razlika postoji. Da bi se skocilo na proiz-
vuljrw rnesto unutar 20-bitnog prostora adresa, mora se uvcsti dodatni nacin za zada-
vanjc vise ud 16 bitova. 1(.) se radi zadavanjem novih vrednosti registrima CS i PC.
Uslmni skokovi
Procesr SOilS ima !5 uslovnih skokova, ud kojih neki imaju po dva imena (npr.
instrukc:ija JUNIP GREATER OR EQUAL isto je sto i JUMP NOT LESS THAN). Oni su na-
vedcni na C-5. Sve instrukcijc omogucavaju samo skokove unutar 128 bajtova

C.4 Skup instrukcija prncesora 8088
711
udaljenosti od Ako se oclrediste ne nalazi u okviru ove udaljenosti, mora
se upotrcbiti konstrukcija tipa ,skok za skokom". U takvoj instrukciji se preko sle-
dcce instrukeije preskace uz obrnut uslov. Aku je slecleca instrukcija naredba za oba-
vezan (bezuslovan) skok, tada je efekat ove dve instrukcije duzi skok nameravanog
tipa. Na primer, umesto
JB FARLABEL
imamo
JNA 11
JMP FARLABEL
1"
Drugim recima, ukoliko nije moguce i.cvrsiti instrukciji JUMP BELOW (JB), onda se
izvrsava skok JUMP NOT ABOVE (JNA) na oh!iznju oznaku 1, a zatim obavezan skok
(JMP) FARLABEL. Dobija se isti efekat po nesto visoj ceni u poglcdu vremena i pro-
stora. Asembler automatski generise ove ,skokove iza skokova" kada se occkuje pre-
vise udaljeno odrcdiste. lzracunati pravo rastojanje prilicna je vestina. Pretpostavimo
da rastojanje samo malo prelazi granicu, ali suneke od meJuinstrukcija takode uslov-
ni skokovi. Spoljasnji skok sene moze razresiti duk sene ma velicina unutrasnjcg. a
takvih ,skokova umrtar skokova" moze biti vise. Da bi bin sigurniji, asemblcr gresi na
,.oprczniju' stranu. Ponekad gencrise skok za skokom i kada to nije ncop-
hodno. Dircktan uslovni skok generise samo kada jc potpuno siguran da se odrediste
nalazi u okviru potrebne udaljenosti.
Uslovni sknkuvi po pravilu zavise od indikatora statusa. pa irn prethodi instrukcija
za poredenje iii testiranje. lnstrukcija CMP oduzima izvoristc ud odredista, post a\ lja
kodove uslova i odbacuje rczultat. Operandi ostaju neizmenjeni. Ako Je rezultat nula
iii muje bit znaka postavljen (tj. rczultatje ncgativan). postavlja sc udgovarajuci in-
dikator. Ukoliko se rczultat ne moze izraziti dozvoljenim brojem bitova. postavlja se
indikator prekoraccnja. Kad postoji prenos iz najznacajnijeg bita. postavlja se indika-
tor prenosa. Uslovni skokovi mogu da testiraju sve ovc hitove.
Ako se operandi smatraju oznacenim, trebalo hi koristiti instrukcije GREATER
THAN i LESS THAN. Ako su neoznaceni. treha koristiti ABOVE i BELOW.

JNA, JBE
JNB, JAE, JNC
JE, JZ
JNLE, JG
JGE, JNL
JO
JS
JCXZ
, JB, JNAE. JC
_
1
?_pis
i Manje iii jednako
--1 . - ---
J Nije llla_nje .
I Nula. jednako
-+-
1 Vece od
1 Vece iii jednako
--i - -
L Prekoracenje
! Znak negativan
i ex je nula
I
Lis pod
Slika C-5. Uslovni skokov i.
720
Dodatak C: Progamiranje na asemhlerskom jcziku
Pseudoinstrukcijom SPACE zahtcva sc da 'c pokazivac lokacijc povcc'a za broj baj-
tova zadatih argumcntima. Ta pseudoinstrukcija jc posebno korisna u BBS scgmcntu
kada sledi i;:a oznakc i rezcrvise memoriju za promenljivu. Pseudoinstrukcija ALIGN
koristi se za dovodcnjc pokazinea lokacija do prvc dvo, cetvoro iii osmobajtne gra-
nice u mernoriji kako hi se olaksalo slaganjc reci, dugackc reci itd. u odgovarajuc'u
memorijsku lokaciju. Na kraju, pscudoinstrukcijom EXTERN najavljuje se da c'e po-
menuti pot program iii memorijska lokacija biti -,tavljeni na raspolaganje programu za
powzi vanjc kao spoljasnja refercnca. Sam a definicija nc mora da budc u toj datoteci;
ona mozc da budc i na nckom drugom mestu sve dok program za povezivanje moze
dana pravi nacin koristi lu refercncu.
lako je sam ascmblcr prilicno opsleg tipa, ako se kmisti uz simulator, trcbalo bi
neslo istac'i. Ascmblcr prihvala pseudoinslrukcije pisane i velikim i malim slovima,
ali ih simulator uvck prikazujc velikim slovima. Slicno tome, asemblcr prihvata i ,\r"
(CR) i .,\n" (LF) kao oznaku novog reda. ali simulator uvek koristi LF. Stavise, iako
ascmblcr moz.c da obradujc programe smdtcne u datoteka, kada se kuristi uz si-
mulator. ceo program mora hili u jednoj datoteci s nastavkmn ... $". Unutar nje, uklju-
ccne datotcke se mogu pozi vat i komandum
#include ime datoteke
U ovom slucaju po;.vana datoteka takmte se upisuje unutar kombinovane .,.$ .. da-
toteke na mcstu poziva. Asemhler provcrava da li jc umctnuta datolcka mo?.da vee
nbradcna i ucitava samo jednu kopiju. Ovu je narocito ako vise datoteka kori-
ste istu datoteku zaglavija. U ovom slucaju, u kombinovanu izvornu datoteku ukljucu-
je sc samo jedna kopija. Kada zelitc da ukljucilc datoleku, #include mura biti prva
oznaka u rL'du be1 vodecih bdina, a pulanja do datoteke mnra biti u navodnicima.
Ako pustoji jcdinslvena i;\\>rna datolcka (rccimo, fil:s) onda se pretposlavlja dajc
imc projckta pr ida ce kombinuvana datoteka biti rn:$. Ako postoji vise od jedne iz-
vorne datotekc. tada se za ime projekla uzima ime prve datotekc; ona se koristi i za
cldinisanje .$ datotekc koju asembler gcneris<: nadovczujuL'i izvornc datotcke. Takvo
podrazumcvano ponasanje rno/.e se izbec'i aku se na komandnoj liniji isprcd prve iz-
vorne datutcke nalaL.i indikator ,.--o ime_projckta". kada cc imc kumhinovane datolc-
kc biti i111c _projektu. $.
lmajte na umu da pw,toje i neke potdkocc ako sc koriste ukljuccne datotcke i
izvurnih datotda. Tadaje nenplwdno da im<:na ot:naka. promcnijivih i konslanti budu
rculicita za svc izvornc datotcke. Stavi.;e. datotcka kop sc a.-;emblira u iLvrsnu d;!lOle-
kuje illle_projck!u.$, tako da se brojevi reduva kuje navodi asembler u slucaju grdaka
i upozorenja odnose na ovu datotcku. Za vrlo mak projekte ponckad je najjedn<lSlav-
nije da . ..,e ceo program stavi u jedinsl venu datoteku i tako izhegne oznaka #in..Jwle.
C.5.3 Nckc razlike u odnosu na drugc ascmblere za prot:esor 8088
Ascmbler us88 radcnjc po uzoru na standardni UNIX-<l\' a'emhkr ina izH:stanna-
cin ra;:likuje od Microsoliovog makroasenthlera "vl:'\S.\1 i Bm!,mduvog asemblaa
TASM za prucesor XORX. Ova dva asemhlera su projcklovana za opcrali\ ni -;istcm
MS-DOS i na mhnknim mestima su operacijc as..:mbkra i uperacije uperativnog
C.S Asemblcr
721
sistema vrlo blisko povczane. Mi\SM i TASi\l poclriavaju sve memorijskc modele
proccsora XOXX kojc dopusta iv!S-DOS. Posloji. na p1imer. majusni (engl. tinv) mcmo-
rijski model u komc sav kod i podaci moraju da stanu u 64 KB. mali model, u komc
kodni segment i segment podataka mugu da budu velicine po 64 KB i vcliki modtli
koji imaju vise kodnih segmenata i za podatke. Ovi odcli se razlikuju po
nacinu segmentnih registara. U velikmn modclu dPzvoljeni su udaljeni
pozivi i izmenc u rcgistru OS. Sam proccsor postavlja ncka ograniccnja segrnentnim
rcgislrima (npr. rcgistar CS nc rnoze biti odrcdislc u instrukciji MOV). Da bi simuliranjc
teklo jcdnostavnije. as88 koristi mali menwrijski model. iako ascmbkr bcz simulatora
moze cia obraduje segmcntne rcgistre hez ikakvih dodatnih og:raniccnja.
Ovi drugi ascmhlcri ncrnaju,odcljak .BSS i inicijalizujumcmoriju sanw u odcljcina
DATA. Ascmblcrska datukka obicno pocinJe zaglavljem, iza kuga sledi odeljak OAT\,
uznacen kljucnom rcei .data, pa tckst p1\1grama i;a kljucnc reei .code. Zaglav ljc ina
kljucnu rec title za imenovanjc pwgrama, k]jucnu rec .model /.a U/nacavanjc lllCillOrlj-
skog mudela i kljucnu rcc .stacl< za mcrnorije namenjcne -;egmentu stela.
Ako prcvedeni program trcba da hude .cn111 cbtoteka. bita sc majusanmcmorij,ki n:o-
deL svi scgmcntni rcgistri su mcdu:;obno ravnnpravni i na pocctku ovog komhitmva-
nog segmcnta rczervisc sc 25(1 bajtova /.a .. prctiks prugramskog scgmcnta (PSPJ ...
Umeslo direktiva .WORD .. BYTE i ASCIZ. ovi asembkri imaju kl_jucnc rcci DW (za
detinisanjc reciJ i DB (za de1inisanje hajtal. Poslc dircktivc DB mo7c se definisati !l,a-
kovni niz unular navudnika. !;:a o;naka za dctinisanjc pc,cbtaka m: stavlj't se dvot::c-
ka. Vcliki delovi memlrijc lll<Jt'LI se inicijalii.\Wati kljuctwm rcci DUP. koje je
bmj bajtuva, a i1.a koj<: je inicijali;.acija: na pnmer, naredha
OZNAKA DB 1000 DUP iO)
inicijali;ujc )()()() hajtuva memorije na nznaci OlNAK,\ ASCII nuL!mJ.
Stavisc. ni iza !)/!laka Z.l potprognmc nc dvolaCka. vee ki_iucna re( PROC. '\Ja
kraju fHllPwgrama <ll.naka se pun:tvlja i i;.a nj.: se stavlp kijui:1w rec ENDP. tako da
cl'Cillhkr nwzc da vidi ta<:an np.sc:g pntprogLuna. Lokalne <1Znakc nhu pudr;'ane.
Kljuctl<' re::i La instrukci.!c .<u 1.a sva tri a;;..:mbkra. lsto t:1ko. k"J s\ih -;e u tn-
strukcijan1a JvJ plblt' .k
Ja ..;c ;a prp-..Jcdi\anj(' J l1t' ;\kn . .:.
dutim. ascmHcrc,ki pclp:,g:umi U!lUcar prDgrama pisant!l na C iii
C++. tacla jc b<>lj, stck. stu JC ':t!,!lasno mehaninmJ p<!!ivanja l'<>lprllg:r,tlllo u
C programillla. Ovn ne prc'<btavlja 'll<tim:ku razliku. J"lSlo sc u a''clllbicru <is88 n
proslcdivanjc argunlLnata takcd..: rnogu \lck._t.
ra1liha itn1cdu a:-,cnlbkra Ti\Si\i i us88 n:v:in
sislt.'mskih pu1.iva. Si-,tem -,c u cl'tcmbkrima :V!.-\S\1 i T:\S\1 !WI!\:: Ln>/ ;islc'ill'ki
:"Jaju<>hicajc>niJi uk::v prc:k:ci j: 21 H. koji twmcnjc':J l'()Zi' funk-
cij:l \IS-DOS-a. Bruj poriv:1 -;e <.,nw:;t,t u r<'i!hlar AX. takn da rrl""'l c;rcccn)(' p.J-
skdilanjc argum.:nttta Zcl rcu!icite uredajc p<JS\<)i<' r:uliciti vckto'i i
brojevi prc-kida lnpr. 1r,1T i6H n iiiOS <WC funkc:i.JC LJofaiurc i iNT 10H m<niturl. Da
hi prugr:unir:to CIVC funk.Lijc. 111ora Ja po;n:tjc !Jrojne pui._blkc spcciJi(n.._
konkr...:tnc urt'(Lt.i(_'. ton1e. pt)fi\'i kqji pnstojc q l1SUll-
bknt :1sS8 il\JJUgo ,e JCdnu,t,nni.Jc K!lri,\e.
714 Dodatak C: Programiranje na asemblerskom
i BrO] : I me I Argumellti- rvracena ... . .
rs-- r.::aPEN l'ime, 0/1/2 deskriptor datoteke Otvara datoteku
is
1
_GREAT
1
rme, rezim deskriptor datoteke Pravi datoteku
I 3 ! READ dd, baler, br bajtova # bajtova UCitava br_bajtova u baler
I 1-
14 i __WRITE dd, baler, br_bajtova # bajtova Upisuje br_bajtova iz baiera
/6
1
_CLOSE dd 0 aka se uspesno Zatvara datoteku sa deskrptorom
1 , zavrs1 dd
i 19 II _LSEEK dd, pomak(du poziciJa (duga_rec) [ Pomera pokazivac datoteke
1
, ga_rec), 0/1/2 .
11 i_EXIT status
1
Zatvara datoteke. Zaustavlja
I f' . proces
1117 _GEtCHAR cita znak I Citaznak sa standardnog ula-za
[122 [_PUTCHAR znak upisuje bajt I Upisuje znak na standardni izlaz
: 127 _PRINTF tormat, arg Upisuje formatiran argument na
I I standardni izlaz
'121
1
_SPRINTF baler, 'format. arg Upisuje formatiran argument u
I baler
1
_125
1
__ SS(;ANF baler, 'format, ar>l._ Clta argl!nl_E'flt_e izbafera
_j
Slika C-7. Ncki sislcrnski pozivi i polprogrami UNIX-a koje podrzava intcqlleler.
Posle sistemske instrukcije SYS svi registri garantovano zadrz.avaju vrednost. Isto
tako, posle poziva ce i svi argumenti biti na steku. Posto oni vise nisu potrebni, po-
kazivac steka treha podesiti posle poziva (to radi p01:ivalac), osim ako su argumenti
potrebni za sledeCi poziv.
Postoji pogodna mogucnost da se imena sistemskih poziva Jetinisu kao konstante
na pocctku asemblerskog programa, tako da se mogu pozivati po imenu, a ne po bro-
ju. U primerima cL:mo razmotriti vise sistemskih poziva, pa ovde iznosimo samo mi-
nimum neophodnih detalja.
U ovim sistemskim pozivima datuteka se otvara iii pozivom OPEN iii pozivom
GREAT. U oba slucaja prvi argument je adresa pocetka znakovnog ni1<1 koji sadrzi ime
datoteke. Drugi argument u pozivu OPEN je iii 0 (ako treba Ot\oriti za ci-
tanje), I (ako datoteku treba otvoriti za upisivanje) iii 2 (La citanJC i upisJvanje). Ako
se za upisivanje otvara datoteka kuja ne postoji, una cc biti napravljena. Po;ivmn
GREAT pravi se pra1na datotcka, uz doz\ole za rad u skladu s argumentom.
OPEN i CREAT cc vratiti mali ceo hroj u registar AX, koji se zme dcskriptor datotekc
i koji Sl' mozc iskori,titi za citanje datoteke, upisivanje ll nju i njeno zatvaranje. Nl'-
gativna vraccna vrcclnost 1.naci da poziv nijc uspcsno zavrsen. Na pocetku programa
vee su otvorenl' tri datoteke s deskriptorima: 0 za stanclardni ulaz. I za standardni iz-
laz i 2 za standardni izlaz za grcske.
Pozivi READ i WRITE imaju tri argumenta: dcskriptor datotcke, hakr za podatke i
broj bajtova koji se prenm,e. Posto se argumenti smdtaju na stek ohrmuim rcdc>slc-
clom, prvo se stavlja broj bajtova. zatim aclresa pocL:tka bafera i deskripwr datcJteke i
na kraju hroj po1.iva (READ iii WRITE). Ovaj redosled stavljanja na stek odgovara stan-
darclnim pozivima u jeziku C. u kome se komanda
read(dd, baler. bajtovi);
impkmentira taku sto se paramLtri stavljaju na stek redc)sledom haj1ovi. hafl'r. dd.
WJ-
CA Skup instrukcija procesora 8088 715
Za funkeiju CLOSE potreban je samo cleskriptor clatoteke i on pnstavlja nulu u re-
gis tar AX ukoliko se Jatoteka mozc uspt:Sno zatvoriti. Funkcija EXIT zahteva cia se na
steku nalazi status za izlazak i ne vraca vrednost.
Funkcija LSEEK u otvorenoj datoteci mcnja poziciju pokazivaca za citanje/upi-
sivanje. Prvi argument je cleskriptor clatoteke. Posto je drugi argument dugacka rec,
prvo se na stek smcsta znacajnija, pa manje znacajna rei', cak i ako pomeraj staje J
ree. Treci argument naznacava da 1i ce nova pozicija pokazivaea za citanje/upisivanjc
biti izracunata u odnosu na pocetak datotekc (slucaj 0), u odnosu na td.uL'i polozaj pu-
kazivaca (slucaj I) iii u odnosu na kraj clatoteke (slucaj 2). Vracena vrcdnost jc novel
pozieija pokazivaca ll odnosu na pocetak Jatotcke i moze sc naci kao dugacka rec J
kombinaciji rcgistara DX :AX. ,
Dolazinw do funkcija koje nisu sistemski pozivi. FunkL:ija GETCHAR cita jecla1
wak sa standardnog ulaza i smesta ga u registar AL, clok se u registar AH postavlj1
vrednost nula. Pri neuspesnom zavrsctku, rei' u registru AX postavlja se na -I. Funk-
cija PUTCHAR ispisuje bajt na standardnom izlazu. Vracena vrednost pri uspdm
zavrsenom pozivujc upisani hajt; pri ncuspcsnom zavrsctku on a jc -I.
Funkcija PRINTF generisc fromatirane informal'ijc. Prvi argument je aclresa znu-
kovnog niza za fonnatiranje, koji je u stvari sablon formata za izlaznl' podatke. Zncl-
kovni niz ,'lr .. d" znaci daje slnleci argument ceu bmj na steku, koji se pri ispisivanj'1
pretvara u ckl'imalan zapis. Na isti nacin, ,'7cx" ispisuje argument u heksadecimal-
nom. a .. '/r.o" u uktalnom obliku. Stavise, ,'ks" znaci claje sled<:'ci argument znakovr.i
niz koji sc zavrsava nulnm i koji -;e pmsleduje funkciji preko mcmorijske adrese ru
std.u. Bwj dmbtnih argumcnata na steku treba da sc poklapa s brojem oznaka ZJ
pn:tvaranje u znakuvnom nizu za formaliranje.
Na primL:r, po1.iv funkeije
printl("x %d i y %d\n", x. y);
i:ipisuje I.nakovni niz s brojcanim vrednostima xi v umesw 7.nakovnog ni;a ,'fcJJ" 11
;rnakovnom nizu ;a furmatiranjc. 7hug komp:ttibilnosti s jezikom C, rl'dosled kojim
'"' argurnenti smt'SLtju na slek je .,y" ... x .. i adrL:sa znakovnog niza za fonnatiranje.
Ova knnvenl'ija postoji zhg tnga sto funkcijaprinl(ima promenljiv broj paramctara:
pa kada 'e uni :,tavc na skk uDhrnuwm rcdusledu. znak.ovni niz za formatiranje uvek
ldanl' puskdnji i laku se rnoze pmnaci. Kada bi paramctri hili sme!itani na stek sleva
ude-;no, znakovni niz 1.a fc1rmatiranjc: hio bi duboko u -;teku i funkcija printj'ne bi L.na
ia gJc Ja ga traZi.
Prvi argJJllll'nt funkcije je bafer za prihvatanje izlaznog znakovnog niz;t
umestP ,;tandardnog i1laza. FunkciJ,l SSCAf\IF jl' suprotna funkciji PRINTF jer je prv:
argument;nakc)Vni niL kuji mo;;e sadrzati ceiL brojevc u decimal nom, heksadecirnal
nom i uktaJn,Jmohliku, a skdeci argumentje znak.ovni niz La formatiranjc u komc Sl
nwgu nalaziti uznakc' ;a pretvaranjc u drugaciji clblik. Ostali argumenti su adrL:se me
morij:-.kih reci kojc treba da prihvate prctvorene informacije. Ovi sistl'mski potpro
grctllli mugu se kuristiti na mnogo nacina. ali njilmvo dL:uljno opisivanje prevazilaz1
ukvirc' ovng dudatka. U mkljku C.8 na vi;e primcra P<'LIZHCL'ITHJ k.ako sc oni mugu
koristiti u razlicitim situacijama.
'
72-J
Dodatak C: l'rogramiranjc na ascmhlcrskom jcziku
Adresa
1
Komanda

Primer Opis

f-----
#
IT+#
IT+#
IT+#
#
lzvrsava jednu instrukci u
--
,! ,X 24 lzvrsava # instrukcija
g, I,
/start+5g lzvrsava se do red a # '
b /start+5b
1
Postavlja prekidnu tack
-t---- --- ---
lc /start+5c 1 Uklanja prekidnu tacku
g
!108g 11zvrsava program do re
b _PostaviJa prekidnu taCI
c c prekidnu tackL

osle oznake T
u u red # posle oznake T
z reda # posle oznake T
---
da #
onovo ne na1de na tekucr red
--------------
u u tekucr red

z reda . ------1
g pmg<Om dok 1
------f------- _ program do s
r r lzvrsava program do p
deceg reda !

---- -+----------r-------.- - --------- -------
strzanta istog nivoil potprograma 1
_ ----'-------"- _ -l
r--- , I I
1
-;-- _ 1 =--- ____ prog_r<m1 1 ____ ___j
[)_+-_!t __ _______ i lbuf+_. 6 __ segme;;t adresi _oznaka+!/ ___ j
D+# . r I PrikilZUJe pod a taka ra adresi !
,-= cTRL _L i R --=
I
1
9_ ____ l_q _____ . lZavrsava se .LJ _koman_9no
Slika C-1 I. Kuma11Lk ..,imuLnura. Svaka !l1dLt na ta...;tL:r Enter (CRJ.
L:L'Iij.l /n,:Ci da ,'-,;\1110 lrcha rriti.-..nut! laj taSll'J". he; li pn!jt.1 \drt'\(l ill'J1l:tju
Si rnhni # pn..'d:-,ta \ ! __ia L'l' J llbro j Il.<) ra:-.!1 \ p\ illh_'Ltj l.
g n1o/.cte :-;tiL:i do Ladalug lzvo;nc datuL.J.c. tri VLT!.ljc (JVe
h:omcmde. ,\kPjoj prcthodi bruj rcda, cHJda -,inwlator ra,L J.,h: ,,,, nc: do zada!<lg
reda. L
1
z O/llll"-u ili hL'/ +#. hroj rtda ILl sii1:u!atcr /au:-.t.J.vlja il-
'-)L' ll(l U\Jh)\U ULnahc iihtrukLijc r pcllk)a
latcr i/vr(a\a kornan..._k s\c dok nc nJ !ckuL:l brP_j rcda.
ile cL.lJC' isle i ZLl .-\ku ]'---. u !)it:ii1ju
1.:1 pt:.Lttkc.'. rcJ u pro1.oru i:-.. punja\ ili ::,c , puda-
ci kn.ii po0inju na tuj uinaci. Akt) :-,c radi u t:l ...... kau da
S!C kP11Llt1dll g. {;.a 07n:_lk_;: !1H)gll sJcditi )"du..; i Si111bnJur11 #
na :-..li(:i C'-ll ). da hi :-.c /ada!n 1.d od;,:k.. . .:.
lll:)truk....:iji "C [1)1)./2 rr1JruZiti prekidna ta,:l\:t (.._']'!\T]_ hrc;:;,",'i(;i;)[l. To "c rttdi k.-;-
!J. kojn_j tljlCilit10 :no/c r'tTthodi!i
ili bcz Kada --;c tnklH11 ntlidc:? ila red:-, pr\._kjdltOln
Da '-;C lZ\ na.'t:1viio taL: f)\.llrc:}an jL !'ri!i-.;ak na t:L\tcr
I:ntLT ili . .-\:\.,) )(: ilC i prckidna
'111dla u L.:kuc'i r,'d. l'r,;kidna Lac:J..a 'l' mo/.c uk!<ifll:i Ldman,ltl'l: <', kPJ<>i lliu,:u pre-
ih()d:ri i i, k.ud h. Pll:-,tcji l.. !J 1,
kt).JC <...c o..;vc Jpk ne :.,tignc do sicdc'(=: prck.id!lc lk)k ne 11:.1ide
na poJ:i\ J . ._t izlazak i/ iii Jok 11L' Ju .... raja kcnnandi.
C.7 Pocinjcmo ns
Simulator vodi rae una i o nivou potprograma. To je prikazano u prozoru is pod pro-
ct:sorskog, a mozc se sagledati i kroz prika;:ane brojeve u prozoru stcka. Postoje tri
komandc koje se bave ovim nivoima. Komandmn - simulator se izvrsava svc dok
nivo potprograma nc bude za JCdan manji od tekuceg. Ovum komandom simulator
izvrsava instrukcijc dok sc ne zavrsi tekuci potprogram. Na suprotnoj je komanda +:
simulator se izvrsava dok nc naide na sledcCi nivo potprograma. Komandom = simu-
lator se izvrsava dok nc naide na isti nivo potprograma, sto sc moze isk01istit1 za
izvrsavanje potprograma pozvanih instrukcijom CALL. Ako sc zada komanda =,de-
talji potpmgrama se ne vide u prozoru simulatora. Postoji srodna komanda n, u kcJjoj
se simulator izvrsava dok se ne naide na sledeci red programa. Ova h:nmanda je po-
sehno korisna kada sc: upotrc\Jljava sa instrukcijom LOOfJ; izvrsavanje se zaustavlja
tacno kada se izvrsi poslcdnja isntrukcija u pt:tlji.
C.7 POCIN.JEMO
U ovom odeljku objasnjavamo kah:o se h:oriste alatke. Pre -;vega neophmlno je da
pronadcte sol'tver za svoju platfonnu. Priprernili smo prevcdene vcrzijc za Solari,,
UNIX. Linux i 'Windows. Alatkc se nalazc: na pratecem kompakt disku ina Webu (na
adresi www.prenhull.com/tunmhautn). Kada stignete tamo, pritisnite Cmnpwzion
Weh Sile za ovu knjigu, a zatim vcn1 u meniju levu. lzabranu zip datotcku raspakujte
u direktorijum assembler. Ovaj direktorijum i njc:govi poddirektorijumi sadr/.c sav
potrcban materijal. Na kumpakt disku su glavni dirckturijumi !Jigendnx, Ulend.Yx i
MSWindos, i u svakom postoji poddircktorijum assemhler koji sadrzi materijal Tri
glavna direktorijuma -;u za ,l3ig-Endian" UNJX (npr. z.a radne stanicc Sun), za ,Litt-
lc-Endian" UNJX lnpr. za Linux na PC racunarima). i za Winduws sisteme.
Posle raspakivanja iii kopiranja, direktorijum asscnzbler trcba da sadrzi skdc:cc
poddircktorijume i datoteke: RE-\IJ_ii,!E, bin. as_src. trce_src. exalltplcs i exercise.
PrC\cdeni izvorni programi mugu sc naci ll direktorijumu hill, ali zbog pogudn lSti,
njihove kupije postoje i u dirch:torijumu exalltf>lcl.
Da bistc steh:li utisak kah:o sistcm radi, uditc u direktorijum exantples i upisite
komandu
t88 HlloWrld
Ova komanda odgovara prvom primcru u odeljku C.X.
L-:vurni kC1d asemblerajc u direktorijumu us_src. Izvornc datotekc su pi sane 1u jc-
ziku C, a mugu sc prcvesti kmnandom make. la platformc po standardu l'OSJX.
posroji komanda !'vfukefile u direh:torijumu sa i1vornim koclom h:oja obavlja isti pcsao.
Z<t Windows sistc:me postoji komandna datoteh:a 11111kc./Jilt. Mold ace biti pmrehno da
it.nsnc datotcke posle prcvmlenja prcrnestite u dircktorijum programa ili da izmcnite
promcnljivu PATH tako da ascmhlcr us88 i nJegov program La otkrivanjc: grdak<i r88
budu vidljivi iz direktorijuma koji sadrzt: i;:vornc h:odovc na asernblcrskom jc;.iku.
Altnnativno, umcsto da se upisuje 188, nlllze s,; upi,ati potpuna putanja.
722 Dodatak C: Programiranje na ascmblerskum
C.6 SIMULATOR
Simulator (program za postupno izvrsavanje programa i otkrivanje gresaka u nje-
mu) namenjcn je izvrsavanju na obicnom terminalu (VT I 00), rczolucijc 24 x XO zna-
kova, koji poznajc standardne ANSI komandc za terminale. Na racunarirna koji rade
pod UNIX-om iii Linuxom, emulator tcrminala u sistemu X-window obicno zado-
voljava ove zahtevc. Na Windows racunarima ohicno se u okviru datotcka ;:a inicija-
lizovanje mora ucilati upravljacki program (drajver) ansi.sys. bo ;to jc opi:,ano u
nastavku. U primcrima sa simulatorom vee smo videli kako izgit:da njcgov ckran.
Kao sto se vidi na slici C-10 . .:kran simulatorajc podeljen na sedam prozora.
Stek za pozive

I Komande
1- interpreter:" __
I
L __
----r------
1
Tekst programa II
Stek
___ J _ lzvorna datoteka
Polje za pnkaz gresaka I
Polje za unos I
I
Polje s rezultatima
Vrednost1 globalnih promenljivih
Segment podataka
Slika C- 10. simulat"ra.
Gmnji kvi prowr jc pronsorski prot:or i on prikaZUJC sadr/.aj registara opste na-
mcnc u decimal nom ohliku. a drugih registara u hebadccimalnom. Postu apsolutna
vrcdnust prograrnskug hrojaca nije pn:vi.;;c informali\ na. u rcdu ispud prikazan jc te-
kuci pulo?.aj u kodu u odnusu na prethodnu glohalnu oznaku. Iznad
Pllja" hrojaccm prikazano JC pel kodova usluva. Prekuraccnjc je pri-
-;a v. indikator smcra :<1 >(/.a povcc'anjc) i -,a< 1a fndikator znaka
jc n za tJCgati\ nu. pta nultu i vrcdno\l. lndibtor nulc jc z ako je postavljen,
a pw,tavl_]cn indikatm prcnm.a jc c. Simh,JI - oznaca\ a cist lrcsctovan) indikator.
Srednji pnu.ur u gornjem rcdu koristi sc za prikazi . ..;adr?.aja stcka u hcksade-
cimalnum ohliku. PolobJ pukazi1aca steka uznaCenjt: simb,,klrn strclicc =>. Povrat-
ne adrcsc P''tpr<Jgrama prcd.-,ra\ !Jcne su cifrom tsj)I'Cd hcksadccimalne vrednosti.
(jornJi dcsni pruLUr dcu i;:vornc datotd.c u ok,J!ini instrukcijc koja upravo
trcha da sc pn1g1amskog hruja(a takudc jc ptikazan simholum =>.
lJ pruzmu ispud procesmskog prikctt:ani su poluhtji najsvclijih pt)fJVa pDlprogra-
ma u iJ:vornom kudu. Ncp<lsrcdno i:-.pPd njc;;ajc prozur s komandama simulatora koji
u gurnjcm dclu prika/Ltje upr;1vo i1datu komandu. au donjcm udzivnik za unos ko-
mande. lmctjtc na umu da svaku kumandu trcba zavrsiti knntrulnim znakom CR, tj.na
PC' tasLHuri pritiskun1 na taster Enter.
t
I
i
; lj,
::u
C.6 Simulator 723
Prozor u dnu ckrana moze sadrzati sest stavki koje se ticu globalnc mcmorije s
podacima. Svaka stavka pocinje pozicijom u odnosu na neku oznaku, a zatim skdi
apsolutna pozicija u segmentu podataka. Potom dolazi dvotacka, pa osam bajtov:t u
heksadecimalnomobliku. SledeCih 1 I mestaje rezervisano za znakove, a iza njih sic-
eli decimalni prikaz cetiri reci. Bajtovi, znakovi i reci predstavljaju isti memorij;ki
sadrzaj, mada u prikazu znakova postoje tri dodatna bajta. To je zgodno, jcr ne zna1no
unaprcd da li cc sc podaci koristiti kao oznaccni iii kao neoznaceni ccli brojevi, iii kao
znakovni nizovi.
Dcsni prozor u sreclini ckrana koristi se za unos i prikaz rezultata. U prvom redu se
prikazuju greske koje otkrije simulator, drugi red je za unos podataka. a potom sledi
nekoliko redova rezervisanih ?a rezultate programa. Prikaz gresaka pocinje slovom
E, unos pocinje slovom I, a standardni izlaz rczultata simbolom >. U redu za ur.os
podataka postoji simbol ->LIZ pokazivac koji ce sledeci biti ucitan. Ako program po-
zove procedure read iii getdwr, sleclcei unos na kornamlnu liniju sirnulatora odlazi u
poljc za unos. U ovom slucaju unos takodc trcha zavrsiti pritiskom na taster En1er.
Deo rcda koji jos nijc obraden nalazi se iza simhola ->.
Simulator obicno Cita i komancle koje su mu upucene i podatkc unete kroz st:m-
dardni ulaz. Mcdutim, moz.e se pripremiti datoteka s komandama i datotcka s poda-
cima za unos koja ce biti ucitana pre nego sto se kontrola prepusti standardnorn
Komandne datotekc simulatora imaju nastavak .I. a datoteke s podacima 1a unos la-
stavak .i. U asemblerskomjcziku se za kljucne rcci, sistemske potprogramc i pscudo-
instrukcije mogu koristiti i vclika i mala slova. Tokom asembliranja gcncrise se
datoteka s nastavkom .$ u kojoj se kljucne reci pisane malim slovirna ispisuju velikim
slovima i izhacuju se svi znakovi za zavrsetak reda (CR). Na taj nacin. za svaki pro-
jekat (recimo pr) mozemo imati do sest razlicitih datoteka:
I. pt:s t:a asemblerski it:vorni kod.
2. pt:$ za kombinovanu izvornu datoteku.
3. pt:88 za izvrsnu datoteku.
4. pt:i za prethodno priprcmljen standardni unos podataka.
S. pr.t za prethoclno pripremljene komandc simulatoru.
6. J!r.# 1a povezivanje ascmblerskog koda u izvrsnu datoteku.
Simulator koristi poslcdnji navedcni progam za popunjavanje gornjcg desrog
prozora i polja programskog brojaca. Is to tako. simulator proverava da li je gencrisa-
na izvrsna clatoteka nakon poslednje izmene izvornog koda: ukoliko to nije slucaj. si-
mulator gencrise upozorenje.
C.6.1 Komande simulatora
Slika C-11 prikazujc komande simulatora. Najvaznijc su ,.prazna komanda" ( tj.
samo pritisak na taster Enter) na pm'etku tabde. koja izvrsava samo jcdnu proceoor-
sku instrukciju i komanda za napustanje simulatora, q, u dnu tahcle. Ako sc kao (0-
manda zada broj. izvrsice se dati hroj instrukcija. Lfpisivanje broja k is to je kao dastc
Enter pritisnuli k pula. Isti efekat se postizc i ako iza broja sledi uzvicnik
1
iii X.
728 Dodatak C: Progtarniranje na asemblerskorn
Obratite paznju nato da je u instrukcijama MOV i SUB prvi argument odredistc. a
drugi izvoriste. To jc konvencija koju koristi nas asembler; kod drugih ascmblera to
mo>:e biti obrnuto. Nerna posebnog ra:t.loga zasto sc koristi jcdan redosled, a ne drugi.
Probajmo sad a da asembliramo i da pokrenemo program Hila Wrld.s. Dacemo
uputstva i za UNIX i za Windows platforme. Za Linux, Solaris, MacOS Xi drugc vcr-
zije UNIX-a, postupai-- bi trcbalo da budc sustinski isti kao i za UNIX. Najpre otvorite
prozor komandnog okruzenja. U Windowsu je redosled komancli obicno
Start > Programs >Accessories > Command prompt
Zatim preditc u direktorijum exwnple.1 koristcci komandu cd (Change directory).
Argument za ovu komandu zavisice od toga gdc jc u sistcmu datotcka smdtcn kom-
plct alatki. Potom proverite cia li su izvrsne datoteke asemblcra i simulatura u ovom
direktorijumu- koristite komandc Is u UNIX-u i dir u Windnwsu. Te d:ttotcke se zovu
us88, m!nusno 188. U Windowsu one imaju nastavak .exe, ali njega nc treha upisivati
u komandama. J\ko asemblcr i simulator nisu tamo, pronadite ih i tamo iskPpirajte.
Sada asemhlirajte program iz primcra:
as88 HlloWrld.s
Ako sc aselllbler nal:ui u dircJ...tnrijumu 1'\WIIf!ln, a vi dobijctc poruku o
pokusajtc ovo:
./as88 HlloWrld.s
u UNIX-u iii
.las88 HlloWrld.s
u Window'>tl.
Ako se ctscrnhliranjc i.-;prct\ nu lavrsi, prih:vac'c sc '>b.lcc'c poruJ..e:
Project HlloWrid listfilc! Hl!oWrkJ.$
Prowct HiloWrld num file HlioWrid.#
Project HiiovVrid ioadfile HiloWrid.88
i biL:C tri J..tLUk'kL. Ah..u jt: proZlu be;: greSaka, izdajte ,...;1-
mulaturu komandu:
!88 Hl:oWrid
Pojavic:c sinl!llatora s:t :-.trcl!coLJ u gurnjc!Il pro;:oru pokalu-
je na in'>tr:rl.;c:i_iu
MO'/ CX.de-i1w
u rcdu h. I)titi:.nit..: Fnt'-r tna PC Vidc(ctc da :-.trelicJ. na
instruJ...,:i_iu
PUSH CX
ida jc u ex ll kvonJ 12. Priti ... pnl1U\i) i v!-
ck'L;Ctc da :-,r.._dn.,;i f1fU/.Pr gnrnjen1 \Llllr7i '.TL',lno.\t (}t!Uc, jc
lap! s hri ( )1 :.1j pr''/or prikazujc >ld n:r J..omc jc :<ida jLdna r.:c b'.Ja sadrzi bttl.J
Pritisnite Enter triput 1aredurn i vidcc:ctc instrukcija PUSH iz
,,.
i,"
t
!,.
'
i
t'
r
"-

t
f
1(


C.S Primeri 729
redova S, 9 i ! 0. U ovom trenutku na steku ce biti cetiri stavke i programski brojac u
levom prozuru imace vreJnost OOOb.
Kada sledeci put pritisnete Enter. hice izvrsena sistcmska funkcija i znakovni niz
.,Hello \VDrld\n" prikazace se u donjem dcsnom prozoru. Obratite paznju nato da SP
sacla ima vrednost Ox7fl0. Posle pritiska na Enter, vrednost SP sc uveeava za
S i pn:.;tajc Ox7lT8. Posle jos cetiri Entcra, sistemska funkcija exit sc zavrsava i simu-
lator prc,;taje da radi.
Da hi>tc bili sigurni jcste li dobro razumeli kako sve radi. otvmite datoteku h/h-
Wrlds u wom omiljenom editoru tcksta. Bolje jc dane koristite program za obradu
tcksta. U CNJX sistcmima pogodni su ex, vi iii emacs. U Windows sistemima postoji
jcdntbtavan editor tcksta koji se po pravilu moze otvoriti komandom
Start > Programs >Accessories > Notepad
Nc koristite Word jcr prikaz neee biti ispravan, a rezultat moze da bude pugrdno
lormatiran.
[zmenite znakovni niz u reJu ! l) tako da upucujc neku drugu poruku. a zatim sni-
rnite datotcku. ascmblirajtc je i pokrenite u simulatoru. Upravo ste poceli da pro-
na asemblerskom jeziku.
C.8.2 Primer s registrima opste namene
Slcdeci primer detaljnijc ilustruje nacin ptikazivanp registara i jedan rizik pri mno-
/,enju na proccsoru 8088. Na slici C- !3 levo priLvan JC deu programa genReg.s. De-
sn<J od njega su dva prozora simulatora s registrima, koji oclgovaraju razliCitim fazama
izvr<cnja programa. Slika C- J3(b) prikazujc stanje rcgistara posto je izvrscn red 7.
Instrukcija
MOV AX.258
u rcdu -1 ucitava vrednost 258 u registar AX. sto znaci da se u AH ucitava vrednost I, a
u AL vrednost :?.. Zatim se u rcdu 5 AL sabira sa AH. zbog l'ega sadrzaj AH postaje jednak
3. L rcdu h se sadr7.aj promenljive limes ( lO) kopira se u rcgistar CX. U redu 7 adrcsa
promenljivc muldot, kojajc 2jerje to drugi bajt .'>egmenta DATi\, uCitava .'>e u registar
BX. lJ tom trenutkujc snim!jen status prikazan na slici C-! 3( b). Skrccemo vam paznju
nato da se u registru AH sada nalazi 3. u registru ALje 2, a vrednost u registru AXje
770. S!ll sc moglu i ucekivati, je 3 X 256 + 2 = 770.
start
MOV AX,258
ADDB AH,AL
MOV CX.(t1mes)
MOV BX,muldat
MOV AX.(BX;
lip MUL 2(BX)
LOOP lip
.SECT .DATA
times .WORD 10
rncidat .. WORD 625.2
(a)
! 3 I
I 4
15
16
17
I 8
I 9
I 10
! 11
112
I 13
cs oo
AH 03 AL 02 AX: 770
BH 00 BL:02 BX. 2
CH OOCL Oa CX 10
DH:OO DL 00 DX 0
S P 7fe0 SF 0 D S Z C
BP 0000 CC ;.. p
! S I 0000 IP 0009 PC
iDIoooo start+4
(bi
c s oo Esooz
AH:38 AL.SO AX. 14464
BH:OO BL:02 BX. 2
CH OOCL 04 CX: 4 i
DH:OO DL 01 OX
SP. 7fe0 SF 0 D S
BP:OOOOCC V>P
S I 0000 I P 0 0 1 1. PC
01. 0000 start + 7
(c)
Siika C-13. (al Dco programa. (hi Rcgi,lar,ki prOblr 'imulatora postoje izvrsen red 7 ki
726 Dodatak C: Programiranje na asemblerskom
U sistcmima Windows 2000 i XP ncophodno jc instalirati upravljacki program za
terminal ansi.sys dmlajuci u konliguracionu datotcku cunfig.nt red
device=%systemRoot%\System32\ansi.sys
Putanja do ove datotcke je sledcca:
u Windowsu 2000: lwinntlsystem32\config.nt
u Windowsu XP: \windowslsystem32\config nt
U sistemima Windows 95, 98 i ME ovaj upravljacki program treba dodati u dato-
teku conjig.svs. U UNIX i Linux sistemima ovaj upravljacki program je po pravilu
standardna komponenta.
C.8 PRIMER!
U odeljcima ml C.2 do CA analizirali smo procesor 8088, njegovu mcmoriju i in-
strukcijc. Zatim smo u odeljku C.5 proucili jczik asemblera as88 koji koristimo u
ovom prirucniku. U odeljku C.6upoznali smo simulator. Na kraju, u odcljku C.7 opi-
sali smo kako sc im,taliraju alatke. Tcorijski, ove informacije bi bile dovoljnc onomc
ko pisc ascmblerskc programc i pronalazi grdke u njima sluzcci se ponudenim alat-
kama. lpak, mnogim citaocima bi verovatno bilo korisno da dcta!Jno pogledaju ncke
primerc ascmblerskih programa i da nauce kako sc iz njih pomocu simulatora mogu
ukloniti grcskc. To jc svrha ovog odeijka. Svi programski primcti koje pominjemo u
ovom odeljku postojc u clircktorijumu c_nullp!cs na prateccrn CD-u. Prcporucujcmo
citaocu da asemblira i propusti kroz simulator svaki program koji ovcle ohradirno.
C.8.1 Primer Hello World
Pocnimo primerom "t slikc C-12., 11/lu\Vr/d.s. Programjc prikazan u lcv,Jm pro-
zoru. Pus to jc a>cmhlcrov oimbul za komentar uzvicnik (
1
), on je u prozoru programa
za razdvajanjc instrukcijc ocl bmja reda kojt slcdi. Prva tri reda saclrzc cle-
iinicije konstanti kojc povczuju uobieajcna irnena elva sistemska puziva i izla;;.ne da-
totckc s njihovim odgovarajucim intcrnim olllaLnna.
Pseudoinstrukcija .SECT u redu 4 objavljuje da rcdove kPji skclc treba smatrati
sadrzajem odcijka TEXT: drugim rccima. proccsorskim instruLcijama. Slicno tome, u
redu 17 sc saopslava da ono sto slccli treba -;matrati poclacirna. U redu 19 se inicijali-
Luje znakm:ni niz s pndacima koji sc ,;astoji od 12 bajtuva, zajcdnu s razmakom i
oznaknrn ;a nov red (\nJ na kraju.
Ked,Jvi 5, 18 i 20 s:1drze oznake s L!raktcristicnom dVlJtackPm (:) na kraju. Ozna-
kc predstavlpju hroJcane vrednosti. slicno konstantama. U ovom slttCaJU. medutim.
asemblcr mora da odrcdi tc vrcdnosti. se oLnaka .llilrt nalazi na pucctku udc'ljka
TEXT, njcna vrcdnost L'e biti 0. ali c'c vredno;,t svakc narcdilt: owake u oddjku TEXT
(nema ih u ovom primeru) zavisiti od toga koliko joj bajtnva kuda prcthoc!i. Kaz-
motrimo 'ada red 6. On -;e zavrsava razlikom dve oznake. st<J brojcano predstavlja
kun,tanttt. Prema tome, red 6 je cfekti\,llO isto ;to i
MOV CX,12
'
'
I
I
>z i

C.S Primeri
727
osim sto se u prvom slucaju ostavlja asernbleru cia izracuna duzinu znakovnog niz.a.
Ta vrednost prcdstavlja kolicinu prostora za poclatke rezcrvisanog za znakovni niz iz
reda 19. MOV u reclu 6 predstavlja komanclu za kopiranje, koja zahtcva da sc de- hw
kopira Ll registar ex.
EXIT" 1
WRITE 4
STDOUT 1
SECT TEXT
start
MOV CX.dehw
PUSH CX
PUSH hw
PUSH STDOUT
PUSH _WRITE
SYS
ADD SP. 8
SUB CX.AX
PUSH CX
PUSH _EXIT
SYS
.SECT DATA
hw:
ASCII ""Hello World\n""
BYTE 0
(a)
' I I cscio- oo2-J ---I
I 2 AH:OO AL:Oc AX 12
'3 BH:OO BL:OO BX 0 I
'4 CH:OO CL:Oc CX 12,
1
'5 DH:OO DL:OO DX 0'
> 6 S P 7fd8 SF 0 D S Z C o'>0004
!7
18
!9
! 1 0
111
BP 0000 CC > p 0001
Sl: 0000 IP.OOOcPC I 0000
D I 0000 ..
MOV CX.de hw
PUSH CX
PUSH HW
PUSH STDOUT
-
PUSH WRITE
-
SYS
ADD SP .8
SUB CX.AX
PUSH CX
I 12 I
:.;,-- -1 > Hello World:n
' .. 0 = 0000.48 85 Gc 6c 6T 20 57-6tH-11o
I 1 6
I I 7
I 1 8
I 19 I I
! 20 l
World
(b)
Stika C-12. (a) 1!1\oWrtd.s. (b) Odgovarajuci prozor simutatora.
! 6
'
7
I
8
! 9
I I 0
I 11
12
13
14
i
J
25928 i
!
Redovi ocl 7 do 11 prikazuju kako sc unutar simulatura obavljaju sistcmski pozivi.
Ovih pet rcdova su prcvod na asembkrski jezik poziva funkcije
write(1, hw, 12);
pisanog najcziku C, gcle je prvi parametar deskriptor datotckc za standardni izlaz (I),
drugi je adrcsa znakovnog niza koji treba stampati (/nv), a treCi je du/.ina znakovnog
niza ( 12). U redovima 7 do 9 uva tri parametra sc stavljaju na stek obrnutim rcdoslc-
dom. sto prcdstavlja rcdoslcd pozivanp u jeziku c i istovremeno redoslecl koji koristi
simulator. U redu I 0 se na stck stavlja broj sistcmskc funkcije wnte ( 4 ), a u redu II
upucuje se poziv. lako prikazani reclosled pozivanja strogo prati nacin na koji hi
asemblerski program radiu na UNIX (iii Linux) PC racunaru, za clruge opcrativne si-
sterne on bi morao malo da se izmcni kako bi postovan konvencijc pn;ivanja kojc:
vaze za taj operativni sistem. Mcc!utim. asemblcr us88 i simulator t88 koriste konven-
cijc po;.ivanja koje vazc u UNIX-u cak i kada rade pod Wimlowsom.
Sistctm,ka funkcija u rcdu II ispisuje rezultatc. U redu 12. stck se cisti i pokazivac
vraca na vrcdnost koju je imao pre nego S(O Sll na stek slavljcnc Cetiri 2.-bajtne reci. i\ko
se funkcija write zavrsi uspdno, u rcgistar AX se upisujc bwj ispisanih bajtova. U redu
13 rezultat sistemske funkcije posle recla II oduzima se od prvobitne duzinc niza u re-
gistru ex kako bi sc utvrdilo da li je funkija uspdno dovrsila posao, tj. da li su ispisani
svi predvil!cni bajtovi. Prema tome. izlazni status programa bice 0 ako se on uspdno
zavrsi, a ndto drugo ako to nije slucaj. Redovi 14 i 15 su priprema za poziv sistcmske
funkcije exit u rcdu 16: izlazni status i k(\d funkcijc za poziv EXIT stavljaju se na stek.
732 Dodatak C: Programiranje na asemhlerskom jeziku
Prva instrukcija potprngrama je stavljanjc na stck (PUSH) haznog pokazivaca
osnove, BP, u redu 22. BP sc cuvajcr ce nam hiti potrchan za adrcsiranjc argumcnata
i lokalnih promcnljivih potprograma. Zatim sc u rcdu 23 pokazivac steka kopira u re-
gistar BP, tako da nov bazni pokazivac uka;:uje na staru vrednost.
Sada jc sve spremno za ucitavan je argumenata u registre i za rezervisanje mesta za
lokalnc promcnljive. U sledec'a tri recta svaki od argumenata se preuzima sa stcka i
stavlja u rcgistar. Sctitc se da stek radi s recima, pa adrcse na stcku trcba cia budu par-
ne. Povratna adrcsa sc nalazi oc!mah do starog baznog pnkazivaca, pa se moze adre-
sirati sa 2 (BP). Argument bmi je sledeci i aclrcsira sc sa 4 (BP). On se u rcdu 24 ucitava
u regis tar ex. U redovima 25 i 26 u Sl se ucitava vee I, au Dl vec2. Za ovaj potprogram
potrcbna je jedna lokalna promcnlj iva s pocetnom vrednoscu 0 cia bi sc unjoj sacuvao
mcdurczultat. U tom cilju se vrednost 0 u redu 27 stavlp na stek.
Stanje procesora ncposrcdno pre prvog ulaska u pctlju u redu prikazano jc na
sliei C-15. Uzak proznr u sredini reda (dcsno od registara) prikaLllje stt.:k. U
dnu stekaje adrcsa vektura vec2 (Ox0022), iwad nje adrcsa vektora vee/ (0x0018), a
zatim treci argument, broj stavki u svakorn vcktoru (0x0005). lza njega sledi povratna
adrcsa (OxOO II). Broj I kvo od ove adrcse ukaz.ujc da je to puvratna adresa udaljcna
jed an ni vo od glavnog program a. U prozoru ispnd rcgio,tara prika;:an je isti broj I, za-
jedno s njegovom simbolickom adresnm. Iznad povratne adrese na stekunala;:i sc sta-
ra vrcdnost registra BP (0x7k0), a zatim i nula stavljcna na stck u rcdu 27. Strclica
koja prika:cuje na ovu vrcdnost ukazujc na ono na sta SP pokazujc. Prozor dcsno od
pok.azujc de lie tcksta programa, sa strclicom koja ukazujc na instrukciju koja c'e
sledeca biti izvrsena.
MOV BP,SP I 5 CS 00 DSoSS-ES004 i
PUSHvec2 I 6 : AH.OO AL 00 AX 0,
PUSHvec1 I 7 BH 00 BL:OO BX 0
MOV CX,vec2-vec1 I 8 C H oo C L 0 5 C X 5
SHR CX,1 I 9:: DH:OO DL.OO OX: 01 71c0
PUSHCX 110 I SP 7fb4 SF 0 D S Z C!1 0011
CALL vecmul 111 iBP 71b6 CC > p z
vecmul
PUSH BP
MOV BP,SP
MOV CX,4(BP)
MOV S1,6(BP)
,SI 0018 IP 00.31 PC
! 21
1
'0 I 0022 vecmul+7
! 22!;
I 23
12
4
1
<= 1npstart 7_
!25'
I 26 I
0018
0022
PUSH BP
MOV BP ,SP
MOV CX,41BP)
MOV Sl 6(BPi
MOV D1,8(BPJ
PUSHO
LODS
MUL I D I)
I 22
IZJ
24
25
126
27
26
29
ADD - 2 ( B P) A X I 30
1
MOV DI,BiBP)
i PUSH 0 127: ;ec1+0 3 0 4 0 7 0 b 0 3,
'I LODS
MUL (DI)
ADD -2(8P).AX
ADD 01.2
LOOP lb
128:IV8C2+0 2 0 6 0 3 01 0 2
123 !Pimi+D 68 65 20 69 6e 20 70 Tee :n prod 26708
130
1
'plmt+18 25 64 21 a 0 0 3 0 25637
1
! 31 I
I
Stika C-15. programa J'CCf>md.s sc prvi put doJc do rcJa 2S.
Analizirajmo pctlju pocevsi ud reda lnstrukcija LODS ucitava mcmori.Jsku rec
indirektno preko registra Si iz podataka u registar AX. l'ost<J jc indikawr
smera pnstavljen. LODS je u rdimu autumatsk.og uvecavanja, pace posle instrukcije
rcgistar Slukazivati na sledeci element vek.tura vee/.
C.S Primeri
Da bistc to videli gral'icki, pokrcnite simulator komandom
t88 vecprod
Kada sc pojavi prozor sirnulatora. upisite komandu
/vecmul+7b
733
i pritisnitc Enter da bistc postavili prckidnu tacku u red koji sadrzi instrukciju LODS.
Nadaljc vise ncc'cmo pominjati da se svaka komanda mora ;:avrsiti pritiskom na taster
Enter. Tzdajte zatim komandu
g
da hi simulator izvrsavao komande dok ne tJaide na prckidnu tack.u. On cc stati 1a
redu koji sadrzi instrukciju Lobs.
U redu 29 vrednost rcgistra AX mnozi se opcranclom izvorista. Memorijska rec za
instrukciju MUL preuzima se iz podataka pn.:ko rcgistra Dl u re/imu indireh-
nog rcgistarskog aclresiranja. Poclrazumcvano odredistc instrukcije MUL je dugacka
kombinacija rcgistara DX: AX koja se u instrukciji ne pominje. ali sc pmlrazumcv<J.
U rcdu .10 rezultat sc dodaje lokalnoj pmmenljivoj cip je adrcsa na stcku -2(8=>).
Postu instrukcija MUL ne uvccava svoj operand autmnatski. to sc mora u rcdu .ll u:a-
diti rucno. Poslc toga. rcgistar Dl ukazuje na sledcci element vektora ve,2.
Instrukcija LOOP zavrsava ovaj korak. Vn.:dnost registra ex se smanju.Je i, ukultku
jc jos uvek pozitivna, pwgram skace unazad na lokalnu o;naku /u rcdu 2S. I ,okalna
oznak.a 1 h znaci .,najbliza oznaka /"'. gleclajuci s tckucc po:ticijc una/.ad. p,,;Jc pctljc
potpmgram uzima sa steka vrcdnost vracenuu registar AX (red .13), ohnavlja sadr'.aj
registra BP (red .lc.f) i vraca kontrolu programu pc'J:i\aocu (red .15).
Tada glavni program nastav lja rad sa in;,trukcijum MOV u rcdu I 2. Ova i!JStrukcija
je prva iz ni;.a od pet instrukcija kojc da rczult<tt. Sistcmska funkcija prntf
model ira se prema funkciji primf'standardnc prugr;mJ:;kc biblintekc jcziLt C. Tri
mcnta se smestajuna stek u rcduvima 1.1-1:5. Ti argumenti -,u cclobrojna vrcdnost koju
trcba ispisati. adresa znakovnog niza za fnrlllatiranJC (J'/illl) i kCJd funkcije 1.a prntf
( 127). Obratite pa/nju nato da Lrl<tkcl\lli niz t.a furmatiranjc pji}([ oadr/i \1/naku r.id
koja saopstava da se kao argument po;:iva lunkcijc pr:ntf mu/.c ncka celohrona
promeni1iva.
U redu 17 stck sc cisti. Postu jc prugramu rcdu 5 pocco rad snimanjcm vrcdtl<lsti po-
kazival'a stcka u bazni pokazival:, za ci:;ccnjc stcka mogli bismo upotrebiti i instrukc;ju
MOV SP,BP
Prednost nvakvng rescnja je to pro;,;ramcr ne treba da vmli racuna '' uravno-
te/.cnosti stcka. Za glavni program"''' ni_ic vciib prcdnost. ali jc za potprogramc: to
lak nacin da se oslobodc balasta lnpr. l1>kalnih promenljivihl.
Potprogram \'Ccllwl muzc se ukiiu,:iri u drugc pmgramc. Ako se izvum<l d:tlt>tck:l
t'ccpmd.s stavi na komamlnu liniju iza drugc datotcke sa asembJe;skim i,-,vm:ttrn k,,_
dom, potprogram mn7.e postati k.oristan .c:t mmi :n1c.: dva vek.tor:r tibne duz.inc. Pre-
poruC!jivo jc da pre toga uklnnile cklinicijc konsta:ni _EXIT i da bistc' :zbcgli
da buclu dvaput delinisanc. _c\ko je ncgdc ukljul:L'!la dalutcka laglavlja nc '1a
potrcbe da se bilo gde drugde kunotanle kujc predsta>-ljaju si-;tcmskc pu1i;e_
730
Dodatak C: Programiranje na asemblerskom jeziku
Sledeea instrukcija (red 8) kopira sadrzaj promenljivc muldut u registar AX. Kada
se pritisne taster Enter, vrcdnost u registru AX bice 625.
Sada smo spremni da udemo u petlju koja mnozi sadrzaj registra AX i rec na adresi
2BX (tj. muldat + 2), koja ima vrednost 2. Podrazumevano odrediste instrukcije MUL
je dugacka kombinacija registara OX: AX. U prvom ciklusu petlje rezultat staje u jed-
nu rec, pa regis tar AX sadrzi rezultat ( 1250), a ox ostaje 0. Sadrzaji s vih registara posle
7 mnozenja prikazani su na slici C-13.
1
PRINTF = 127
.SECT .TEXT
inpstart
vecmul:
MOV BP,SP
PUSH vec2
PUSH vec1
MOV CX,vec2-vec1
SHR CX,1
PUSH CX
CALL vecmul
MOV (inprod),AX
PUSH AX
PUSH plmt
PUSH _PRINTF
SYS
ADD SP,12
PUSH 0
PUSH _EXIT
SYS
PUSH BP
MOV BP,SP
MOV CX,4(BP)
MOV SI,6(BP)
MOV DI,8(BP)
PUSHO
1: LODS
MUL(DI)
ADD -2(BP),AX
ADD 01,2
LOOP1b
POP AX
! 1 delinise vrednost _EXIT
! 2 delinise vrednost _PRINTF
I 3 pocinje segment TEXT
I 4 delinise oznaku inpstart
I 5 snima SP u BP
! 6 stavlja na stek adresu vec2
I 7 stavlja na stek adresu vec1
! 8 ex = broj bajtova u vektoru
1. 9 CX broj reci U vektoru
I 1 o stavlja na stek broj reci
I 11 poziva vecmul
I 12 premesta AX
! 13 stavlja na stek rezultat koji se ispisuje
! 14 stavlja na stek adresu znakovnog niza za
lormatiranje
! 15 staviJa na stek k6d lunkcije PRINTF
I 16 pozivanje lunkcije PRINTF
I 17 ciscenje steka
I 18 stavljanje na stek statusnog koda
I 19 stavljanje na stek koda lunkcije EXIT
I 20 poZ!vanje lunkcije EXIT
I 21 pocetak mnozenja vecmul(broj, vec1, vec2)
I 22 stavlja BP na stek
I 23 kopira SP u BP za pristup argumentima
! 24 stavlja broj u ex za upravljanje petljom
I 25 Sl = vec1
1 26 01 = vec2
! 27 stavlja 0 na stek
I 28 premesta (SI) u AX
! 29 mnozi AX sa (01)
I 30 dodaje AX akumuliranoj vrednosti u memoriji
I 31 uvecava 01 da pokaze na sledeci element
I 32 ako je ex > 0. vraca se na oznaku 1 b
! 33 podatke s vrha steka preuzima u AX
C.S Primeri
POPBP
RET
.SECT .DATA
plmt: .ASCIZ "Inner product is: %din"
.ALIGN2
vec1 :.WORD 3,4,7, 11,3
vec2:.WORD 2,6,3, 1 ,0
.SECT .BSS
inprod: .SPACE2
! 34 obnavlja BP
! 35 vraca se iz potprograma
! 36 pocetak segmenta DATA
I 37 delinise znakovni niz
! 38 lorsira parne adrese
! 39 vektor 1
! 40 vektor 2
! 41 pocetak segmenta BSS
! 42 dodeljivanje prostora za inprod
Stika C-14. Program vecprod.s.
731
Posto je registar AX imao vrednost 625, ret.ultat poslc sedam mnozenja sa 2 jedmk
je 80.000. Ovaj rezultat ne moze da stane u registar u AX, ali se proizvocl cuva u
-bitnom registru obrazovanom nadovezivanjem regis tara OX i AX (OX sadrzi I, a P.X
I 4.464 ). Kada ih slozimo zajedno, imamo I X 65.536 + I 4.464, sto zaista dajc 80.000.
Obratitc paznju na to da jc vrednost registra CX ovde 4. zato sto jc instrukcija LOCP
smanjuje u svakom ponavljanju. Posto je pocetna vrednost hila 10, posle sedarn
izvrscnih instrukcija MUL (ali samo sest ponavljanja instrukcije LOOP) u registru CX c
vrednost 4.
U slcdeccrn mnozenju clolazi do nevolje. Za mnozenje je potreban registar AX, ali
nc OX, pa instrukcija MUL mnozi AX ( 14464) sa 2 da bi dobila 28.Y28. Dobija se vrcd-
nost 28.928 u rcgistru AX i vrednosti 0 u registru OX, sto jc brojcano neispravno.
C.8.3 Instrukcija Call i pokazivacki registri
Skdeci primc:r. J'ecprod.s, mali jc program koji izracunava unutrasnji pmizv(d
dva vektora, vee! i vec2. Onje prikuan na slici C-1-.f.
U [)I'VOTll Jelu programa obavljaju SC priprcme za pozivanje funkcije l'CCIIllt/
sto se sadriaj regista SP kopira u registar BPi adrcsc vec2 i vee! stavljaju na stek
da funkcija vecmul moze da pristupi vektorima. Zatim se u rcdu 8 duzina vektora u
bajtovima smesta u rcgistar CX. Poslc pomcranja ovog rczultata udcsno bit 1u
redu 91, regis tar ex sada sadrzi broj reci u vekwru, broj knji se u redu i 0 smcsta na
stek. Poziv funkcijc lecmulupucuje se u redu I I.
Ponovo naglasavamo da se. prcma konvenciji, argumenti potprograma sme;laJU
na stck obrnutim redoskdom kako bi bili kompatiblini s konvencijom ujc-
ziku C. Na taj nacin se veonulmoe pozvati i iz jezika C narcdbom
vecmul(broj, vec1, vec2)
Tokom instrukcijc CALL na st2k sc stavlja povratna adrcsa. Ako sc program izvrs,l-
va u simulatoru, vidi se da je ova adresa OxOO 11.
,,

;;.'
736 Dodatak C: Pmgramiranjc na ascmhlcrskom jcziku
l'vlcdutim, nas jos jcdna greska. Kada se vecprint zavrsi i kontrola vrati glav-
nom programu. simulator ima primedbu na pokaz.ivac stcka. Ovdc ocigledno treba
pnweriti da li je vrednost koja je stavljcna na stek kacla je poz.van potprogram
vecprint. vrcdnost vrha steka poslc instrukcijc RET u redu 4!. lspostavlja se eta nije.
Rdenjc .ie da se red 40 zamcni selva recta: 'i
ADDSP,10
POPS?

in,; uklanja 5 rcci stavljenih na stck tokom izvrsavanja potprograma
vnpri11t. olkrl\ ajuci tako vrednost BP sacuvanu u reclu 22. tu vrednost u
regi;,tar BP. 1 rcgistar BP na vrcdnost koju je imao pre poziva i otkrivamo.
ispravnu ac!rc-;u .ca pmratak. Sada St: program zavrsava ispravno. Otkrivanjc i isprac,
vljanje gn:saktu ascmblerskom kodu sigurnu j..: vdtina negu nauka. ali je
latur znatnu
C.8.5 Rad sa znakovnim nizovima i odgovarajucc instrukcijc ;
c;Lt, na \\rha ovog odcljka je objasnjavanje nacina rada sa instrukcijama za zna-
km nc ni;mc. f\ia slici C-17 prikaz.ana su elva jednostavna programa za rad sa zna-
kP\ ni Ill nizovima, stmgcpr.s i reJ'CI"SJn:s, koji se nahve u direktorijumu examples,l
l'mgran1 na -.Jiei C-l7(a) jcstc potprogram La kopiranje z.nakovrwg niza. On poziva'
rotpmgram .\lrillg[l/' kuji se takode moze naci u zasebnoj datuteci Slrill!Jfil:s. On nije
navcden u dndath.u. Kada zelite da asemhliratc prograrne ciji se potprogrami nalaze u
i;vornim datotekama. samo u komandi za pokretanjc ascmhkra navcdite
'.\C iLvomc datutcke, pocinjuci od iz.vorne datotcke glavnog programa, koja odreduje
imene1 i.cvrsnih i ponwL'nih datoteka. Na primer. za program sa slikc C-17(a) upotre-
bi lc' k<llllandu
as88 strngcpy.s stringpr.s
.
Program na slici C-17(h) prikazujc uLuni znakovni niz obrnutim rcdosleclom.
Raz1notric..:mu sad ove programe jedan za drugim.
Da bi,nw poLtLali kako broj..:vi rcdova u stvari predstavljaju komentarc. na slici
C-l/1aJ numerisali smo rcdove tek od prve oznake, iJ.ostavljajuci ono sto se nalazi
ispreclnjc. Glavni pmgram. u reduvima ud 2 do 8. prvo poL.iva potprogram strm;cpy
selva izvorisnim znakovnim niz.ommesg2 i odredisnim znakovnim nizom
lid'S"c; I. u na1ncri da kopira iz.voriste u
Po:c-ledajmn sada potprogram stmgcp.l', puc..:v od rcda 9. Pot program occkuje eta se
mlredisnng bafera i il'vori.snog niza vee nalaze rn ;,teku. U redovima od 10 do
13 korisccni registri se cuvaju tako sto se stavljaju na stck eta hi se mogli obnoviti
b'ni_ic. u r..-dovima 11d 27 do .lO. lJ redu 14 kopiramo sadrzaj registra SP u rcg:istar BP
nal"in. Selda se za ucitavanje argumenata mo/.c iskoristiti registar BP. U
.2(1, l'istinw '<tck tako stu :-.adrzaJ registra BP kopiramo u regi;,lar SP.
C,S Primeri
.SECT .TEXT
stcstart:
PUSH mesg1
PUSH mesg2
CALL strngcpy
ADD SP,4
PUSH 0
PUSH 1
SYS
strngcpy:
PUSH CX
PUSH Sl
PUSH Dl
PUSH BP
MOV BP,SP
MOV AX.O
MOV Dl, 1 O(BP)
MOV CX.-1
REPNZ SCASB
NEG CX
DEC CX
MOV Sl, 1 O(BP)
MOV DI,12(BP)
PUSH Dl
REP MOVSB
CALL stringpr
MOV SP,BP
POP BP
POP Dl
POP Sl
POP CX
RET
.SECT .DATA
mesg1: .ASCIZ "Have a look\n"
mesg2: .ASCIZ "qrst\n"
.SECT .BSS
(a)
! 1
I 2
13
I 4
I 5
!6
17
18
19
! 10
111
! 12
113
! 14
I 15
I 16
117
118
! 19
! 20
I 21
I 22
I 23
I 24
I 25
! 26
127
I 28
I 29
130
I 31
132
I 33
I 34
737
#include " . ./syscalnr.h" I 1
start: MOV Dl,str I 2
PUSH AX I 3
MOV BP,SP I 4
PUSH _PUTCHAR I 5
MOVB AL,i\ni I 6
MOV CX,-1 I 7
REPNZ SCASB ! 8
NEG CX I 9
STD
11(
DEC CX ! 11
SUB 01,2 I 12
MOV Sl,Dl I 1 J
1: LODSB ! 1<
MOV (BP),AX I 15
SYS I 16
LOOP 1b ! 1
MOVB (BP).i\ni 113
SYS I 19
PUSH 0
1
20
PUSH EXIT !2
SYS ! 22
.SECT .DATA I 23
str: .ASCIZ "reverse\n" I 2l
(b)
Slika C-17. (a) Kupiranje znaku\nog m;,a {hl Stampanje fii!a una/<d
(rn't'npr.)).
Sr?. potprograma je instrukcija REP MOVSB. u redu 24. Ins!rukc1ja MOVSB prc-
mdta hajt na koji ukazujt' registar Sl na menJmijsku adrcsu na kuj11 r.:gi,tar
01. Sl i Dl sc tada uvecavaju;.a I. lnstrukcija REP rravi pctlju u kojnj se ,1va
ponavlja. smanjujuci vrcdnost u registru CX 1a 1 pri svak,Jm prcmc;tcrll'fll ha ttl.
Pctlja se zavrsava kada nednost registra CX dm;tigne 0.
Pre: negu _,lu pokrenenm pctlju REP MOVSB. morarno cia p<>tle,in,u ;t.na-
dinm u rcdovima od 15 do 22. lndeks i.cvmis:a (SIJ kupira ;,c i; 'tekJ u
redu 21: imleks odrcdista \DIJ odreduje -;c u rcdu 22. Vrcdno:-.t regi-;t:a CX nc mu.'c :;c
dnbiti taku jednmtavno. lmajtc: na urnu daje kr:1j znako\ nug niz:JllZil:tcen nul a baJl<rn.
734 Dodatak C: Programiranje na asemblerskom jeziku
C.8.4 Otklanjanje gresaka iz programa za ispisivanje niza
U prelhmlnim primerima razmatrali smo jcdnostavnc, ali ispravne programe. Sada
cemo pokazati kako nam simulator moze pomoci da uklonimo greske iz neispravnog
programa. Slcdec'i program trcba da ispise niz cclih brojeva koji kao podaci postoje
iza oznake vee I. Mcdutim, prva verzija program a sadrzi tri greske. Za ispravljanje
grdaka koristic'emo asemblcr i simulator, ali c'erno najpre analizirati sam k6d.
Posto su u svakom programu potrebne sistemske funkcije, zbog cega se moraju de-
tinisati konstantc prcko kojih sc idcntitikujunjihovi brojevi. definicije konstanti za te
brojcve srncstili smo u zascbnu datotcku zaglavlja .. !lyscalnt:h. koja sc ukljucuje u
prvom redu koda. Ova datoteka dcfinise i konstante za deskriptore datoteka
STDIN = 0
STDOUT = 1
STDERR = 2
koje sc otvaraju na pocetku, kao i zaglavlja scgmcnata za tekst i podatkc. Prepo-
rucljivo je da se ona ukljuci na pocetku svih asemblerskih izvornih daloteka, poslo se
ovc dc1inicije ceslo korisle. Ako postoji vise izvornih daloteka, asembler ukljucuje
samo prvu kopiju datllteke zaglavlja kako bi izbcgao visekratno dcfinisanje konstanti.
Program armvprt prikazan jc na slici C-16. Komcntari su ovde izostavljeni. jer bi
vee trcbalo dobro da znate sta radc instrukcije. Na taj nacin smo listing mogli prikazati
u dva stu pea. U redu 4 adrcsa praznog stcka se smesta u hazni registar da bi se omo-
gucilo ciscenje steka Ll redu 10 tako slo cc se bazni pokazivac kopirati Ll pokazivac ste-
ka, kao u prcthodnllm primeru. U prcthodnom primcru smo videli i izracunavanje, to
jest stavljanje na stek argumenata pre poziva potprograma (reclovi od 5 do lJ). U redo-
vima od 22 do 25 ucitavaju se registri unutar potprograma.
#include " . ./syscalnr.h" I 1 .SECT .TEXT ! 20
vecprint: ! 21
.SECT .TEXT I 2 PUSH BP ! 22
vecpstrt: I 3 MOV BP,SP ! 23
MOV BP.SP I 4 MOV CX.4(BP) ! 24
PUSH vec1 15 MOV BX,6(BP) I 25
MOV CX.frmatstrvec1 I 6 MOV SI,O I 26
SHR CX I 7 PUSH frmatkop ! 27
PUSH CX 18 PUSH frmatstr I 28
CALL vecprint 19 PUSH PRINTF I 29
MOV SP,BP 110 SYS I 30
PUSH 0 111 MOV -4(BP),frrnatmt I 31
PUSH EXIT I 12 1. MOV DI,(BX)(SI) 132
SYS I 13 MOV 2(BP),DI I 33
SYS I 34
.SECT .DATA ! 14 INC Sl ! 35
vec1 .WORD 3.4.7.11.3 I 15 LOOP 1b I 36
frrnatstr: .ASCIZ "%s" I 16 PUSH i\ni 137
PUSH .PUTCHAR I 38
frrnatkop: 17 SYS I 39
.ASCIZ "The array contarns .. 18 MOV SP,BP I 40
frmatint: .ASCIZ "%d" 19 RET 141
Stika C-16. Program armyprt pre otk:lanJanp grcsaka.
CS Primeri 735
U redovima od 27 do 30 prikazano jc kako se niz maze ispisati. au rcdovima od
31 do .l4 upuc'uje sc poziv sistemskc funkcije print! s celobrojnom vrednoscu. Skrece-
mo vam paznju nato daje adresa niza stavljena na stek u redu27, dokje u redu3: na
stek gurnuta celobrojna vrednost. U oba slucaja adresa znakovnog niza za formali-
ranjc prcdstavlja prvi argument funkcije PRlNTF. Rcdovi oct 37 do 3l) pokazuju klko
se rnoze ispisati jedan znak pomoc'u sistemske funkcije putchar.
Probajmo sada da asembliramo i pokrenemo program. Kacla upisemo komanclu
as88 arrayprt.s
dobijamo upozorenje o pogrdnom operandu u redu 28 datoteke armyJJrt.$. Ovu da-
loteku gcnerise asembler kombinujuci ukljucene datoteke sa izvornom da bi dchio
jedinslveiJU datotcku koju zapravo obraduje. Da bismo ulvrdili gde se stvarno nalazi
red 2X. treba da ispitamo red 2X datoteke arrayprt.$. Taj red ne mozemo pronaci gle-
dajuci datoteku arrayprt.s zato sto se ove dve datotekc ne slazu zbog zaglavlja koje jc
(red pored) ukljuceno u datotcku 111-ru_vprt.$. Red 2X u daloteci arro.vprt.$ odgmara
redu 7 u datoteci arrLn'JHt.sjcr ukljucena datoteka zaglavlja. sysculw:h, sadrzi 21 red.
Na UNIX sisternima. red 2X datoteke urruvprt.$ lako se moze pronac'i komandom
head 28 arrayprt.$
koja prikawje prvih 28 redova kombinovanc datuteke. Red u dnu listinga je ontj u
komc jc greska. Na ovaj nacin (iii korisccnjcm editora tcksta da bi sc pronasao red 2Xl
vidirno da se grdka nalazi u reclu 7, koji sadrzi instrukciju SHR. UplHntivanjem ovng
koda s tabelom instrukcija na slici C--1- problem izlazi na videlo: is pus ten je broj mcsta
za koje treba izvrsi ti pomeranje. lspravan red 7 trcba da glasi
SHR CX,1
Naglasavamo kau veoma vazno da se greska mora ispraviti u originalnoj izvornoj
datoteci armrprt.s. a nc u kombinovanoj it.vornoj datoteci arrmprt.$. posto se uva
druga automatski ponnvo gencrisc svaki put kada sc pnzove asembler.
Sledeci pokusaj asembliranja treba da uspe. Pn;,le toga pokreccmo simulator kn-
mandom:
t88 arrayprt
Tokom sirnulacijc uucavamn da sc rczultati ne slaz.u s vektorom u scgmcntu plda-
taka. Vd.tur sadrzi brojeve: 3. -1-, 7. II. 3. ali prikazane vrednosti pocinju sa: 3. 1112-1-,
. Jasno je da n6to nijc u redu.
Greska 'ie moze naci ako se simulator pokrene ponovo. korak po korak. i is:Jila
stanje raCunara neposrednu pre ispi:-;ivanja neispravne vrcdnosti. Vrcdnost za i;pi-
sivanjc cuva sc u memuriji u redovirna 32 i .l3. Pust'' se ispisuje pogrdna vredno:-.t,
tu treba traziti uzruk problema. lJ drugom ciklusu petlje vidimo da registar Si sa,Jrzi
neparan hroj, iako 7.namo da treba da bude paran jer se indeksiraju reci, a ne bajt,Jvi.
Problem se nalazi u rcdu 35. U njemu sc sadr/.aj rcgistra Sl uvccava za I. a treba ;a 2.
Problem se rdava ako se ovaj red ispravi u
ADD Sl,2
Kada se m o ispravi. brojevi se ispisuju ispravno.
740 Dodatak C: Programiranje na asemhlerskom jeziku
#include " . ./syscalnr.h" ! 1 r outO: MOV AX,mesO I 25
.SECT .TEXT
I 2 JMP 9f 126
jumpstrt I 3 r out1: MOV AX.mes1 ! 27
PUSH strt ! 4 JMP 9f 12S
MOV BP,SP ! 5 rout2: MOV AX,mes2 129
PUSH PRINTF ! 6 JMP 9f 30
SYS ! 7 rout3: MOV AX,mes3 31
PUSH _ GETCHAR ! S JMP 9f 32
1: SYS ! 9 rout4: MOV AX,mes4 33
CMP AX,5 ! 10 JMP 9f 34
JL Sf ! 11 routS: MOV AX,mes5 35
CMPB AL,iOi !12 JMP 9f 36
JL 1b ! 13 rout6: MOV AX,mes6 37
CMPB AL,i9i ! 14 JMP 9f 38
JLE 2f I 15 rout?: MOV AX,mes? 39
MOVB AL,i9i+1 ! 16 JMP 9f 40
2: MOV BX,AX I 17 routS: MOV AX.mesS 41
AND BX.OXf I 1S JMP 9f 42
SAL BX,1 ! 19 erout: MOV AX.emes 43
CALL tbi(BX) I 20 9: PUSH AX ! 44
JMP 1b ! 21 PUSH PRINTF I 45
S: PUSH 0 ! 22 SYS
PUSH EXIT I 23 ADD SP,4
SYS ! 24 RET
.SECT .DATA
tbl: .WORD routO,rout1 ,rout2.rout3,rout4,rout5,rout6.rout7,routS.rout8,erout
mesO: .ASCIZ "'Th1s is a zero.\n"
mes1: .ASCIZ "How about a one ... n"
mes2: .ASCIZ "You asked for a two.'.n"
mes3: .ASCIZ "The digit was a three.ln"
mes4: .ASCIZ "You typed a four.\n"
mesS: .ASCIZ "You preferred a five.\n"
mes6: .ASCIZ "A six was encountered.ln"
mes7: .ASCIZ "This is number seven.\n"
mesS: .ASCIZ "This digit is not accepted as an octal. n"
emes: .i\SCIZ "This is not a digit. Try again.ln"
strt: .ASCIZ "Type an octal digit with a return. Stop on end of file. 1n"
146
!47
14S
49
50
51
52
53
54
!55
!;:o
I 57

! 59
! 60
! 6
Slika C-18. Program koji ilu.\lrujc u vi.\c .ta
Da bismo shvatili sta sc dogada. m"r;\IJlll biti :-,\c'\ni da inst;uk.:ij-: JtviP i CALL clci-
tavaju u PC n-:ku adrcsu i/ ... egmenta s rcbt,Jiil. "L1k\ a adrc'a j: samo hroj. a
tokom a ... embliranja sve adrese sc zamctiJUJU njilwvim binamim vrcJrwstima.
ne vn:dnu:,ti -.;c mogu iskoristiti za iniLijali/U\anjc niza u segmcntu P"lLttal-a. L\,J u
rcdu 50. Na taj nacin. niz kllji pocinjC k.rxlu/nake ri>l 'iadrzi pocctn, i!drco;e mlli 0,
rout l, m/11 2 itd. (dva hajta po adrcsil. Dvohajlllc ctdre.;e q1 razlog jcdn.,hitn.Jg i'<l-
mcranp ulcvn u redu 19. Tabela cJvog tipc; (esi,J se zme t;.;bcla za usmeravanje
(engl. di.lptilch !uhle ).
C.S Primeri
741
Kako ovi potprogrami raclc, mo1.: se vidcti iz putprograma ermtt u redovima od c!J
do 4i\. Ovaj potprugram ohraduje >lueaj broja izvan zadatog intervala. Najpre se u
redu 43 adresa poruke (u rcgistru AX) stavlja na stek. Zatim se na stek stavlja broj >i-
stermke funkcije _PRINTF. Posle toga se upucuje poziv sistemske funkcije, stek se Ci-
sti i kontrola sc vraca glavnom pwgamu. Osta1ih devet potprograma, od routO do
rout8, ucitavaju adres.: svojih poruka u regis tar AX, z.atim skacu na dru-
gi red potprograma ermlt da bi ispi:;ali poruku i Lavrsili se.
Da biste se privikli na korisct:l1ll' LJbcla ?a Wdllcravanje, program treba vrteti u ;i-
mulatoru unoseci u njcga razlicitc vcibu, program moz.ete izmeniti tako da
svaki znak izaziva ncku srnislcnu na primer, da svi znaci usim uktalnih hrojcva
ispisuju poruku o gre;ci.
C.8.7 Bafcrisan i direktan pristup datotekama
Program InFi!fJuj:.1. prikazan na :dici C-1 l). ilustrujc: dircktan pristup datntekarna
;,a citanjc i upisivanjc. Prctpostav Ija >C da datotcka sadrzi odreLkn broj r.:dova
te du.l.inc. PrPgram prvo ui:itava datotcku i pravi tahelu u kojoj odrednica n predsr.a-
vlja poziciJU u datutcci na kl'jJj pocinjc red n. Posle toga se mo/.e ;.ahtcvati odrecleni
reel. Njcgova p<uicija -.;e tacla pronala;,i u taheli i on sc ucitava pomocu sistemskih
funkcija lseek i r8ad. !me datutcke se prosledujc kao prvi red unosa na
ula;u. Ovaj program sadr:!i vise prilicno nezavisnih delova koda koji se mugu
za druge s\Thc.
U prvih pel rcdova dclini;u -.;e brojcvi sistemskih funkcija i velicina bafcra, a bawi
'" usnh.:ra\ ana vrh steka. kao i obicno. U rcduvima ud 6 do 13 ucitava sc
ime standardn<lg ula/a i smcsta kao znakovni niz kod oznake linein. Ako
im..: da\Utekc nijc prupisnn . .ratvorcno' /nakom za prelazak u novi red, generisc sc
puruka o gr6ci i -c zavrsava sa statu'.OI11 razlicitim od nule. To se u
redtl\ i;11a ud ,\o -IS. :Sh.:..:..'c:mo vam pa.'-nju nato da sc adresa imena datoteke stavlja
na slc:k u rcdu s.: u rr:du -10 na stek stavlja adresa poruke o grcsci. Ako pogle-
da!ll<l p<ruL, u gr.c\c1 :u redu 11.'). vidimo u poruci poziva _PRINTF L.ahtcv z.a
zr;,;kovni n1z ' S.!d:"i";1j t.nakmnog niza linein umece se ovdc.
.\k,l '.: imc cLttol.."kc nu::c bez problema kopirati. datoteka se otvara u rcdovi:na
od l-1 ,[o 21!. \'k<Jiikn pui!V funkcijc open ne uspe. povratna vrednllst jc ncgati\na i
sk:;c.' sc n:\ cJ u ,,du 21' eLl hi se i;..pisala poruka o grcsci. Kad poziv sistcrnske
fud .. cijc u:-:.p:. 1rac'..:n . .l jc dcskriptor datoteke koji sc sme."ita u promen1j vu
fi/ii<s. [Jeckrq'l<<i" .JC: neuphodan za po;i\e funkcija read i !seek koji slcdc.
tl\l:g:l. dat,dek:i '<:: u:'itava u hltlkovima Del po 5 l2 hajtova. a svaki blok se
u baL:r . t jc dmJeljeno dva bajta vise od potrebnih 512 bajtnva samo
da hi''' i\u;..tr"' ab mogu'tl< .,, simholicke konstante i cclog hroja u izrazu (u
1.23). [-..,ti u 2! u SluCitava adresa drugog clc1nenta niza
,adr/i I) osla.JC na kraju ovog niza. Rcgistar BX cc sadr!.ati
adrcsu l <rv"g u datoteci into se iniciplimje na 0 pre ncgo stu se
baf.:r i l'''t
u 2'2.
738 Dodatak C: Programiranje na asemblerskom jeziku
Instrukcija MOVSB ne utice na indikator nule, ali to Cini instrukcija seASB (prolazak
kroz niz bajtuva). Ona puredi vrednost na kuju ukazuje registar Dl s vrednoscu u regi-
star ALi usputuvecava vednost u registru Dl. Stavise, ona se punavlja, kao instrukcija
MOVSB. Taku se u reclu 15 cisti registar AX (clakle i AL), u redu 16 se sa steka uzima pu-
kazivac za Dl, au redu 17 se registar ex inicijalizuje vrcdnoscu -I. U redu I R je instruk-
cija REPNZ seASB, kuja obavlja porcdenje u petlji i pustavlja indikator nule kada
dostigne jednakust. Vrednost registra ex smanjuje sc u svakom koraku petljc; petlja se
zaustavlja kada se postavi indikator nulc, posto REPNZ proverava i indikator nule i re-
gistar ex. Broj koraka za pctlju MOVSB izracunava sc u redovima 19 i 20 kao razlika te-
kucc vrednosti registra ex i njegove prethodm: vrcdnosti umanjene za I.
Nije dobro to sto su ovde neophodne dvc instrukcije, ali je to cena odluke da in-
strukcija za prcmcstanje nikada ne menja kodovc uslova. Tokom izvrsavanja pctlje
moraju se uvccavati vrednosti indeksnih registara, a za to je potrebno cla indikator
smera bude anuliran (rcsetovan).
U redovima 23 i 25, kopirani znakovni niz ispisuje sc pomocu potprograma string-
fir koji se nalazi u direktorijumu examples. Taj potprogram je jasan sam po sebi i
necemo ga objasnja vati.
U programu za ubrnutu ispisi vanjc prikazanom na slici C-17(b ). prvi red uk ljucujc
brojeve uobicajenih sistemskih funkcija. U redu 3 na stek se stavlja pseudovrcdnost,
au redu 4 sc hazni pukazivac BP usmcrava na tekuci vrh steka. Pmgram treha da ispi-
suje ASCII znakove. jcdan po jcdan. pa se na stek stavlja brojcana vrcdnost
_PUTeHAR. Skreccnw vam pa/.nju na to da registar BP ukazujc na z.nak koji lreba da
se i'pise kada sc upuli poziv funkciji SYS.
U redovima 2, 6 i 7 registri 01, ALi CX pripn:maju sc inslrukciju SeASB. 13ro-
jacki rcgistar i indeks odredista ucitavaju sc na nacin opisan u potprugramu za kopi-
ranje, ali ovdc vrednosl u r.:gistru AL nije 0, vee znak t.a prclazak u novi red. Na ovaj
nacin instrukcija SeASB puredi vrcclnosti znakova niza str sa \n umesto sa 0 i posta-
vlja indikator nule uvck kad pr(lnade slaganje.
REP SeASB uvecava vrednost registra Dl. tako da pu,k pronadcnog slaganja in-
dcks odredista ukazujc na znak nule u no\om redu. U redu 12 vrcdnost rcgistra Dl
smanjuje se za dva da hi sc ukatalo na poskdnjc slovo rcci.
Ako se kmz znakovni ni1 pro Lui l>brnutim rcdn:-.ledum i ispisuje L.nak pu znak. po-
stizcmo nas cilj. pa se u redu 10 indikator srncra da ohrnc pudesav,mjc
indcksnih registara u instrukcijama s nimvima. Sada LODSB u redu 1-1 l,:o-
pira znak u rcgi.c.;tar AL. au redu 1 :'i se ovaj z.nak stavlja na ncposrednn do\ I"L'd-
nosti _PUTeHAR, tako da ga t"unkc'ija SYS ispisujc.
ln:::trukcije u reduvima 1 i\ i 19 ispisuju doclatni nov red i program se zavrsava po-
zivom funkcije na uuhicajcn nacin.
Tckuca vcr;rip prograllla sadrzi grcsk.u. Ona sc mol.c otkriti aku se program iznsa-
va u simulaloru korak pu korak.
Komanda htr qavlja makovni niz ,-,tr u poljc za na simulatura.
Postu 'c tu v icli i brojcana vrednust adresc llJozenhl da prati rno kako in-
deksni rcgislri prola1.c kroz poclatke u ,1dnosu na pPlozaj niza.

C.8 Primeri 739
Greska se. medutim, pojavljuje tek kacla taster Enter pritisnete mnogo puta. Po-
mucu komandi simulatora mozete je utkriti i brz.e. Pokrenite simulator i izdajte ko-
manclu I 3 da biste stigli u srediste petlje. Ako sada iz.damo komandu b, postavicemo
prekidnu tacku u red 15. Ukoliko unesemo elva nova reda. vidimo da se u polju za re-
zultatc ispisujc zavrsno e. Komanda r ce odrzavati simulator u radu sve dok se ne
naide na prckidnu tacku iii dok se ne dode do kraja programa. Na taj nacin moiemo
da prolazimo slova u nizu stalno ponavljajuci komandu r sve clok ne pridemo blize
prohkmu. Polom simulator muzemo izvrsavati instrukciju po instrukciju sve clok ne
utvrdirno sta se dogacta s kriticnim instrukcijama.
Prckidnu tacku mozemo da smestimo i u odredeni red, ali tada moramo imati na
Llll1ll daje ukljucena datotekjt .. hvsca/nr, zbog cega su brojevi reclova pomereni la 20
mesta. Slwdnu tome, prekidna tacka se u red 16 moze postaviti komandom 36b. To
nije clegantno re,:knje, paje boljc koristiti globalnu oznaku start u redu 2 pre imtruk-
cije i izc!ati komandu htarl+ /4b, koja prekidnu tacku postavlja na is to mesto bri-
ne o vclicini ukljucene datoteke.
C.8.6 Tabcle za usmeravanje
U vise programskih jetika postoji nan:dba case ili switch kujom se bira jedan ocl
vise programskih skokova. stu zavisi ud hrojcane vrednosti odredene promenljive. Po-
nekad jc takvo grananje s vise mogucih pravaea potrebno i u programu na asemblcr-
skom jeziku. Zamislite, na primer, skup poziva sistemskih funkcija komhinovanih u
jedinstvenuj klopki SYS. Programjwnptbl.s, prikazan na slici C-1 R daje primer kako sc
takvo grananje u vise pravaca mo.!.e ostvariti u asembleru za procesor 808X.
Program prvo ispisuje znakovni niz na oznaci strt; od korisnika se trazi da unese
oktalnu cifru (rcdovi ocl 4 do 7). Zatim se znak ucitava sa standardnog ula1a (redovi
i\ i 9). Ako je vrednost u rcgistru AX manja od 5, program je tumaci kao oznaku kraja
datotcke i skacc na m.naku R u redu 22 da bi se zavrsiu statusnim kodom 0.
Ako se nijc closlo do kraja datoteke, ocekuje se ulazni znak u registru AL. Svaki
mak ispod cifre 0 smatra se belinom i zanemaruje 'e pri skoku u redu 13, koji
skcleci znak. Svaki z.nak iznad cifre 9 smatra se neispravnim unosom. On se u reJu 16
presltkava u ASCII znak dvotacke. koji sledi iza eifre 9 u skupu ASCII
Tako u redu 17 imamo vrednost u registru AX koja se nalazi izmedu 0 i dvotacke.
Ova vrednost se kupira u registar BX. U redu 18 instrukcija AND maskira sve hitove
usim najmanje znaeajna cctiri hita. slo broj smesta Ll interval izmedu 0 i 10 (zalwalju-
juc'i C:injenici da je ASCII nul a heksadecimalno Ox."lO). Posto tabelu reci. a ne bajtma
nameravamo da pretvorimo u indeks, vreclnost u rcgistru BX mnu/.i se s dva pomc-
ranjem ulevo u rcdu 19.
U rcdu 20 je instrukcija za pozivanje. Efektivna aclrcsa se pnmalazi tako sto se
vrednost registra BX dodaje brojcanoj vrednosti oznake thl i stu se sadr7.aj ove kom-
binovane :.tdrcse ucitava u programski brojac PC.
Ovaj program hira jedan od deset potprograma, sto z.avisi od toga koji se znak
preuzrne sa stanclardnog ulaza. Svaki od potprograma stavlja adresu odrede:nc pLlruke
11a -;tck i tada poziva sistemski potprogram _PRINTF.

744
Dodatak C: Pnlgramiranje na ascmblcrskom jcziku
dugacak (tj. 32-bitni) ceo broj. tako da u rcdovima i 59 na stck prvo stavljamo rcc
0. pa onda vrednost u rcgistru AX da bismo ohrazovali 32-bitni ceo hroj. Zatim se na
stek slavljaju dcskriptor datoteke i ki'ld za pm.iv funkcijc LSEEK; poziv sc upucuje u
redu 62. Vracena vrednost funkcijc LSEEK je tekuc'a pozicija u datotcci i ona se moze
naci u kombinaciji registara ox :AX. Ako se broj uklapa u masinsku rcc (;to jc sadrzaj
za datotd.e kracc od 65536 bajtova), regis tar AX sadrzi adrcsu, pa oduzimanjc sadrzaja
ovog rcgistra ud sadrzaja registra ex (red 63) dajc broj hajtova koje treba ucitati da hi
red bin prenct u bafcr.
Ostalak program a je jednostavan. U rcciovima od 64 do 6K ucitava se red iz dato-
teke. a zatim u reclovima od 70 do 7 2 ispisuje na standardni izlaz uz deskriplor dato-
tcke I. lmajtc na umu da :-u broj makova i vrednosl bafera jos uvck na steku posle
njegovog dclimicnog cisccnja u redu 6Y. Na kraju. u redu 73 potpuno resctujemo po-
kazivac steka i spn:mni smo za sledeci korak. pa skacemo nazad na oznaku 3 i ponovo
sve pocinjcnw slcdecim poL.ivanjem potprograma gl'fnwn.
ZAHVALNICE
Ascmbler kuji koristimo u ovom dmlatku deo jc ,Amstcn.lamskog komplcla za
prevodenje" (Amsterdam Compiler Kit). Knmplct sc moze skinuti s Weba, sa adrcsc
Wtt'tus. vu.nl/u.-k. ZahvaljuJemo onima koji .'>LI bili ukljuccni u njegov prvobitni pro-
jckat: Johanu Stcvensunu. Hansu Schaminecu i Hansu de Vricsu. Posebnu
dugujc?mu Ccricl Jacobs koja odr!:ava ovaj softverski pakct i kojajc vise pula pumu-
gla cia se on prilagodi zahlcvima naslavc. a takode i Elth Ogston citanje rukopisa i
provcravanje svih primera i vdbanja.
Zelimo takmlc da se zahvalimo Ruhbertu van Rcnesseu i Jan-Marku Wamsu koji
su projektovali simulatore za PDP-II i Mutorolu Mnoge od njihuvih zan11sli
su za projcktovanje naseg simulawra. Pnvrh tuga, upucujemo zahvalnu't
puvcc'oj grupi asistcnala i prugramera kuji su narn dugi niz gudin<l pilrnagali tuk<l!ll
brojnih kurseva i1 prugrarniranja na asemhlcrskom jeziku.
VEZBAN.JA
1. Posto sc i1.vrsi instrukcip MOV AX. 702. kPjc sc dccimalnc: vrcdthlsli naLvc u rq;i-
strima AH i AL''
2. Regislar CS sadrl.i vrcdnost 4. Koliki je opscg apsulutnih mcmurijskih adr;:sa kud-
nog scgrncnta'!
3. Kuja jc najvisa mcmorijska adresa kojoj !llOlC cia pri.,rupi soss>
-t. Prl'lpostavimu da jt: CS = 40. DS = 81)()() i IP = 20.
a) Koja jc apsolutna adrcsa slcdccc inslrukcijc'l
h 1 Ak.o sc izvr;i MOV AX. ( :?.), koja se mcmurijska rcc ucirava u rcgi,tar AX"'
Vdbanja
745
----
5. Poziva se polprogram s tri cclobrojna argumenta prcma pusrupku poLivanja opisl-
nom u tekstu, tj. pozivalac stavlja argumente na stck obrnutim rcdoslcdom. a Latim
izvrsava instrukciju CALL. Pozvani pol program tada snima slaru vrednosl rcgistra EP
i poddava ga tako da pokazuje na tu staru vrcdnost. Tada se pokazivac stda
smanjujc da hi sc rezervi,.,ao pro,,tor Dl lokalne promcnl.Jive. u obzir lWe
konvcncije. oclgovorite kop cc instrukcija prebaciti prvi argurncntu regis tar AX.
6. Na slici C-1 kao operand se koristi izraz de- hw. Ova vrednostjc ra.dika dvc oznak.:.
Postojc li oklonosti u kojima hi bilo korisno upotrebiti de+ lm kao ispravan op>
rand'' ObraJiozitc odgovor.
7. Napisilc ascmblerski k<id za izracunavanjc

8. Funkcijajo.ii-.a C po;:iva se izrazom
foobar(x. y):
Napi;ilc ascmblerski k.t)d .ta upucivanJC ovug poziva.
9. Na asemhlcrsk<'lll Jcziku napisilc program ;a prihvatanjc ula;nih izrata koji sc .sa-
slnjc od _1ednog celog hrop. jcdnog opcr,ttma i drugog cclog bmja. i za gencrisarjc
vrednosti Upotrchite upcraton: +,-. x i /.
742
mtbutst: ! 4
MOV BP,SP I 5
MOV Dl,linein I 6
PUSH _GETCHAR ! 7
1: SYS ! 8
CMPB AL,i\ni ! 9
JL 9f ! 10
JE 1f ! 11
STOSB ! 12
JMP 1b ! 13
1: PUSH 0 I 14
PUSH linein ! 15
PUSH OPEN I 16
SYS 117
CMP AX,O ! 18
JL 9f I 19
MOV (fildes),AX I 20
MOV Sl,linh+2 21
MOV BX,O 22
1: CALL fillbuf 23
CMP CX,O 24
JLE 25
2: MOVB AL,i\ni 26
REPNE SCASB 27
JNE1b 128
INC (count) I 29
MOV AX.BX ! 30
SUB AX,CX ! 31
XCHG SI,DI I 32
STOS I 33
XCHG SI,DI ! 34
CMP CX,O 135
JNE 2b I 36
JMP 1b ! 37
9: MOV SP,BP ! 38
PUSH linein ! 39
PUSH errmess I 40
PUSH _PRINTF ! 41
SYS ! 42
Dodatak C: Programiranjc na asernblerskom jeziku
3: CALL getnum ! 46
CMP AX,O ! 47
JLE Sf !48
MOV BX,(curlin) ! 49
CMP BX,O ! 50
JLE 7f ! 51
CMP BX,(count) ! 52
JG 7t ! 53
SHL BX,1 ! 54
MOV AX,Iinh-2(BX) ! 55
MOV CX,Iinh(BX) ! 56
PUSH 0 ! 57
PUSH 0 ! 58
PUSH AX ! 59
PUSH (tildes) I 60
PUSH LSEEK !61
SYS ! 62
SUB CX,AX I 63
PUSH CX ! 64
PUSH but ! 65
PUSH (tildes) I 66
PUSH READ ! 67
SYS ! 68
ADD SP,4 I 69
PUSH 1 I 70
PUSH WRITE ! 71
SYS 172
ADD SP,14 I 73
JMP 3b ! 74
8: PUSH scanerr ! 75
PUSH PRINTF I 76
SYS 177
ADD SPA I 78
JMP 3b ! 79
7: PUSH 0 I 80
PUSH EXIT I 81
SYS I 82
fillbuf ! 83
PUSH butsiz ! 84
!::iY::i
ADD SP,B
MOV CX,AX
ADD BX,CX
MOV Dl,but
RET
getnum:
MOV Dl,linein
PUSH GETCHAR
1: SYS
CMPB AL,i\ni
JL 9b
JE 1t
STOSB
JMP 1b
1: MOVB (DI),i\Oi
PUSH curlin
PUSH numfmt
PUSH linein
PUSH SSCANF
SYS
ADD SP,10
RET
.SECT .DATA
errmess:
.ASCIZ "Open %s failed\1
numtmt: .ASCIZ "%d"
scan err:
.ASCIZ "Type a number\
.ALIGN 2
.SECT .BSS
linein: .SPACE 80
tildes .SPACE 2
linh .SPACE 8192
curlin: .SPACE 4
buf: .SPACE bufsiZ+2
count: .SPACE 2
Stika C-1 9. Prugram .'l ul:itavanjcm i Jirektni rn pristupom datotckama.
Punjcnjcrn bafera upravlja potpmgram.fii/bufu redovima od 83 do 93. Poslc sta-
vljanja na -,tek argumenata za funkciju read, upucuje ;,c P''ziv si"fc1mkuj funkciji koji
stvarno procitan broj t.nakuva u registar AX. Ovaj broj '>C kopira u ex i broj
Lnakova koji su jos uvck u bafcru nadaljc se cuva u registru ex. Pozic:ija u tbtutcci
prvog nepmcitanog znaka cuva se u rcgistru BX, tako da se -;adrzaj registra ex mora
dodati sadrzaju registra BX u redu 9l. U rcdu l)2 dn!l bafcra se 'tavlja u registar Dl da
bi sc bakr brzo mugao preg'ledati radi trazenja 'ledcl"L'g znaka za novi red.

C.S Primcri 743
Po povratku iz pulprograrnajill/mf u redu 24 se proverava da li su podaci stvamo
ucitani. Ukoliko nista nije ucitano, u rcdu 25 iz petlje za baferisano ucita-
vanje u drugi deo programa.
Sada smo spremni da pregkdamo bafer. Simbol \n se ucitava u registar AL u redu
26, a u redu 27 ova vrcdnost se pregleda petljom REP seASB radi poredenja sa sim-
bolima u baferu. Iz petlje se mo/.e izaci na dva nacina: kada vrednost u registru c:< do-
stigne nulu ili kada se prilikom preg!cdanja naide na znak za prelazak u no vi red. Ako
je indikator nulc postavljen. to znaci da je poslednji pregledani simbol bio \n ida se
pozicija u datoteci tekuccg simbola (nnog i;.a znaka za novi red) mora smestiti u niz
linh. Broj znakova se tada uvecava i izracunava se pozicija u datoteei iz registra BX,
a hroj prcostalih raspolozivil;! znakovaje u registru ex (redo vi od 29 do 31 ). U redo-
vima od 32 do 34 obavlja se stvarno smdtanjc, ali posto instrukcija STOS
vlja da se odrecliste nalat.i u registru Dl umesto u registru Sl, ovi registri medus.Jbno
vrcdnosti pre i posle instrukcije STOS. U redovima od 35 do 37 provt:rava
se da li u baferu podataka i skace u zavisnosti od vrcdnosti u registru ex.
Kada se dode do kraja datoteke, imamo potpunu listu pozicija pocetaka redova.
Posto smo niz linh zapoceli recju 0, znamu da prvi red pocinje na adresi 0, ada sledcci
red pocinje na poziciji /inh+2 itd. Duzina redan mo/.e sc izracunati kao pocetna .tdre-
sa redan + 1 umanJena za pocetnu adresu redan.
U ostatku programa ucitava se broj rcda. red se ucitava u bafer i ispisujc sc pomocu
poziva funkcijc write. Svc neophodm: int'ormacije nalaze se u nizu linh cija 11-l.i od-
rednica saclrzi poziciju poc.:tka redan u datoteci. Aku JC zahtevani broj 0 iii ispada iz
upscga datoteke. program zavrsava skokom na oznaku 7.
Ovaj cleo programa pocinje rad puzivum potprograma getnwn u rcdu 46. Potpro-
gram ucitava red sa standardnog ul<va i smdta ga u bafer linein (u redovima ud 95 do
I 03). Zatim se oba\ ljaju pripreme za po1.iv funkcije SSCANF. lmajuc'i na umu Olrnut
rnloskd argumenata. na :;tek prvo stavljamo adresu promenljive cur/in koja rnof.e cia
cuva C-'i<lbmjnu vrednust. zatim adresu wakovnog niza za formaliranjc celog Jroja
n:.;;n.fint 1 na kra_1u adresu bafcra linein koji sadrzi broj u decimalnom obliku. Si,tem-
ska i'unkcija SSCANF smesta binarnu vrednost u cur/in. ukoliko moze. Ako ne Llspe.
\rae' a I) u regi . .;tar AX. Vrac'cna vrednost se proverava u redu ukoliko dode de gre-
\kc. poruku o gresci preko oznake
Aku potprogram getnum vrali u cur/in ispravan ceo broj. najpre ga kopiramo u rc-
gi'itar BX. ?atim vr.:dnost tl':.tiramo u kodu u redovima od -1-9 do 53, generisuc'i poziv
funkcije EXIT ukoliko sc br\lj reda nalazi izvan dozvoljenog opsega.
f'osk toga moramo da pronallcmo kraJ izabranog reda u datoteci i broj bajtlh'a za
uCitavanje, pa mnui:imo rcgistra BX sa 2 pomocu pomeranja ulcvo ISHL1. Po-
l.tcija 11 datotcci /:cljcnug n:da kllpira se u rcdu 55 u regis tar AX. Pozicija u datuteci sle-
dc,..'c:g rcda ;,;nc;;u se u registar ex i iskoristice se za izracunavanje hroja bajtova
reda.
Da bi:.mu ii ,latotek<' ul:iiali odreucni red. potrebna nam je funkcija lseek da P'Jdcsi
P'lrncraj u na hajl koji treba sledeci da budc ocitan. Operacija !seek izvrsava se
,: udno'u na datPlL'kc. pa sc LU oznacava taku sto sc u rcdu 57 na stek stavlja
:tr:c;umcnt 0. Sledec'i argument je pomeraj u datuteci. Ovaj argumenl.JC po definiciji
748
dnslcdnost
redoslcda
drajvcr. upravljlH5ki
program za urcdaj
dugacak skok
du;(ina putanje
ekran s pasivnom
matricom
ekran s tdnim
kristalima
ekran sa aldi \'lllllll
rnatricom
eksplicitno
povez1 vanje
farma M:rvcra
faza ohrade
lle:i mcmonja
ga1na, opseg hojll
generator radnog
takta, radni takt
gcnaisanjc kopijc
po LI!JIC'JV:t11jll
)Ciavna tabcla
datotcka
gLtvni. n::dredcni

()kru/Ln_jc
segmential
consistcncv
device driver
f1ujump
path length
passive matrix
display
LicJuid C1ystul
Display. LCD
active matrix
di.1pluy
I'Xplin't linking
servcrji1nn
stuge
.flush lill'llli>r\'
gnmut
clock
COf'Y Oil wri!e
,Huster File J:thle.
\JFT
111ustcr
Gmpizi,ul Cser
/lzzertil<C. GUI
prLkoraCcnja :ozdt'tJltJH' error
dunjc granice
. error
g()rnjc

J Ltn!rningo\o

11<::;. "' 1d i r:: nj t:'
! -CvPr
lu://iunt:>
riequencr
flri'llllling LiistLL/l('f'

/i,tsli rorling

idci11i!ikatf'/' \)hjch.ta /zu;::llr
linking
\'anjL' ..
r)()\ t:'ll\:tni,:
indck' datotcka

indr:J ..
so,; r, 'I' iiHiex
Spisak termina koriscenih u
' indeks odrcdista
indeksirana boja
imkksno adresiranje
! indikator smcra
infiksno
destination index
indexed color
indexed addressing
di reel ion flag
infix
integri,-,ano kolo
intc:-fej., ;:r graticke
un:'c:ajc
i nte:no
fragmcntiranjc
, intl:'rprekr
invcrtujuci hakr
irnePioni kruzic
i;vorni je/.ik
izvrsilac
i1.vrsni hinarni
program
jedinica ;a
dodeljivanje/
prei mcnovanje
jedinica za i;:davanje
instrukcija
.Jt'dinica ;:a
svrstavanje u red
cckanja
j.:dinica 1.a
upravljanjc
memurij( 1m
jcdinica t.a
vremensko
ras pore eli vanje
Jedinica ;:a
zavrsavanje
instrukcija
jedinstvcn kes
jcdnobitna sckcija
Je;gro
jezik visokug ni voa
kana! za podatke

kasnjcnjc logickog
kola
fnlegrated Circuit,
IC
graphics device
interjilCe
internal
.fi'agmentation
intnpreter
im'crting /Juf/('r
imersimz buh/Jic
source language
executive
excnauble /Jinurr
progrwn
allocation/
renaming unit
instruction issue
llllit
queueing unit
!VI emory
Mltltugemelll
Unit, 1HMU
scheduler
retircmnll unit
umjied cache
hit slice
/...erne/
high lnel
language
pipeline
lurency
"Ute deluv ,, .
:z-
Spisak tcrmina koriscenih u knjizi
katalog 'tranica
katodna ccv
page directory
Cutlzode Ray llthe,
kcs blokova
kcs podatke
kes za pracenje
kcs za prethodno
preuzunanJe
CRT
!Jlock cache
data cuche
trace cuche
prefetch cache
kes za prisluskivanJC snooping cache,
snoopv cache
kes za upisivanJe
klasicna usluga
prcnosa glasa
klastcr racunara
k{\d operacijc.
opkod
kCKl z.a ispravljanjc
gre;aka
koclna rcc
kodna strana
kodna tabcla
z:nakova
kodna tacka
kodovi uslova
koherentni kd
kohercntnost kesa.
write curhe
Pluin Old
Ji'ieplwne
Service. POTS
cluster compzttt'r
Ol)('ode. opemtion
code
r:rmr('orreczizzg
Code. ECC
codeword
code l'agc
cfwractcr emit
code point
condition codes
coherenl cuche
cache coherencl'.
doslednnst kesa
cuche
consistency
kolo s niskim ,tepe- Smull Scale
nom intcgracijc
kolo s veoma
visokim stcpenum
integracije
kolo s visokim
stepenom
integracije
kolo sa srcdnjim
stepenom
integraciJc
komandnP
okrul.cnjc
kombinaciono kolo
/ntegruted, SSI
Very Large Snzle
lntegmred. VLSJ
Large ,'!call'
!lllegmted. LSI
McdiumScule
/ntegrult'd. ;\!!Sf
shell
'om!J i mil ion u i
citntir
1-'9
kompajler, prcvodi com1Ji/er
lac, programski
prevodilac
kompatihilnost sa
bocf...ward
starijim verzijama compatibility
komplement dvojke two\ cmnpleme1!t
komplement jedinicc one\' complemel!f
kumutiranje pakcta swrc-and-jiJn.va,-d
sa smdtanjem packet switchirzg
i prosleclivanjcm
konacni automat.
masina konacnih
stanja
konstanta rclokacijc
' kontrola tuka
kontroler diska
kontrolni kCKl
' koproccsor
korcnski direkto-
rijum, osnovni
dircktorijum
korisni podaci
korisnicki re/.im
rada
korutina
kracla ciklusa
kratak skok
kriticno podrucje
labavo spregnut
laser'>ki stampac
Iaino dcljenjc
licni digitalni
pumocnik
linija s prd[kslH11 v
linijatura, gustina
rastcra
lista slubmlnih
mcsta
lista La kontrolu
pristupa
literal
iogicki rasporcd
nozica
logil:ko koltl
Finite Sratl'
Machine, FSM
relocation con.lt,uzt
jiow control
disk umtro/ler
escape code
coprocessor
root directory
fwyloud
ttser mode
curollfilll'
cvc/e stealing
nt'urjlllllf'
aiticul section
loo.1el\ coupler!
laser fJrinter
.fitl.,c shoring
F'crsotwl lJigiliJ
Assistant. P!H
\'pipeline
lwlftonc ,., 'l'l!i'll
jiCiflli!llL)'
ji-ee list
;1ccess Contml
List, ACI.
lizeml
pinout
gate
""

Spisak termina koriscenih u knjizi
adresiranje logickih Logical Block broj konacne
finite-precision
blokova Addressing, LBA tacnosti number
adresni prostor address .IJHue brojacki registar counter register
analiticka masina analytical engine brzina u bodima baud rate
arbitar magistrate bus arbiter Bulova algebra Boolean algebra
arbitriran je bus arbitration celobrojna jedinica Integer Unit, IU
magistralom centralni racunar mainframe
arhitektura racunara computer centralni razvodnik headend
architee(ure i ciklus magistrale bus cycle
arhitektura skupa Instruction Set ' ciklus preuzmi- fetch-decode-
instrukcija ArchitectLtre, !SA -dekodiraj-izvrsi execute
arhitektura tipa load/store ciklus preunni- fetch-execute cycle
uci taj/smcsti architecture -izvrsi
aritmcticko-logicka Arithmetic Logic ciklus radnog takta dock cycle
jcdinica Unit,ALU ciklus toka podataka data path cvcle
asemblcr assem/Jler ciljna biblioteka target library
asemblerski jczik assemhly language ciljni jezik target language
asimetricna digitalna asymmetric DSL, cekanjc na busy waiting
pretplatnicka linija ADSL oslobadanjc
asinhrona magistraL! asynchronous htts res ursa
asocij ali vna associative cvrsto spregnut i iHussivelv Pam/fel
mcmorija /11CII10rV paralelni procesori Processors,
atrakciona memmija attmction memory Ml'l'
automatsko pDvczi- implicit linking davalac Internet /ntemel Service
vanje, implicitno usluga Prolider, /SP
povczivanje deljena biblioteka shared /ihrary
bazni registar base register difcrencna masina engine
bat.no-indeksno hased-i1tdcxed dinamicka mcmorija heap
adresiranje addressi1zg clirektnLJ adresiranje direct addressing
bczbednusni sccuritv descritJIOr dircktno dustupna immediate .file
dcskriptor datoteka
bezhednosni security ID, SID direktno preslikan direct-l!utppcd
identitikator kd cuche
hinarni sabirac hinurv wider eli rcktno upisi vanjc write thmuglt
binarno kodiran binary coded direktorijum directon
decimal an broj d!'ci111al distribuirana dcljcna dislrilmted shwn/
binarno binury search mcmorija me1110rV
prctrazi v anjc dogadaj tTCnl
bisekcioni propusni biseczion dolazna obrada
ingress
O[l'Cg bullllwidth doslednost kcsa,
cache cohercn(e.
bit parnosti parity bit koherentnost cuche
blisko pozi vanje near call
L'l!flSistency

_...
7
-,

procedura
za obradu grcskc
procesor
program za
povez1vanje
program za praccnjc
programabilni
logicki niz
programerski pozi v
programirani
ulaz/izlaz
programska klopka
programska nit
programski brojac
progresivno
skcniranje
rrolaz za pozive
prolazak
prumasaj u kdu
pronwsi vanjc

promcnl_ii\c ush>\a
propusn1 upscg
prdCt':-,l
pwstPr fi;ickih
adrc:-,a
prdstnr t< >rki
prosror

!t,kaiJ;ost
irenjc
tmr handler
Central Processing
Unit, CPU
linker
tracer
Pmgrwnmuble
Logic Array. PLA
SllfJervisor call
pmgranuned 110
Imp
tlunul
Progru111 Counto:
PC
prog ressi\e scan
cull gute
{HISS
Clli'fil' /IllS.\'
J>U,t:C )illlf/
condili!!ll vuriuh!n
fJ!"(J('('SS(Jr
/)(I /1[/H i.JI fl
J>linintf uddress
.\fhil'('
lllfJ/c sr>uc,
\irf!t(:l lldLiress
\'j}tll'C
spu!iu/ /oculi!r
eXJ>IIillling opcodc
pro<irivanjc n1ucn) cxpunsion
/.Il;.tka
pwtnk<i
JXULc.k<>i s naknad-
ninl upisivanjcn1
pn>toku! jcdnu-
kratnu
pri upisi van JU
f1!"l1\Pkcd
vanje ktJI:crc>nl-
kesa
sign extension
!Jus tn>tocol
H'ril
fJI"(J,'(l("tJ/

fiiDIOCtif
cnclze coht'rence
1'7 i"( )/{)( '(jl
Spisak termina koriscenih u knjizi
prvi pogodak
putanja podataka
racunar sa sma-
njenim skupom
instrukcija
rad s hipernitima
raJ sa objcktima
radiofrek ventna
idcntillkacija
jint hit
data path
Reduced
lnl'tmction Set
Computer
ltvrJerlhreiu/ing
ohicd lllmwger
Roclio FrC<fllCil(\'
I Dellli/il'Oiion.
RF!!J
' radni skup 1vorking S<'i
radni takt, generator clock
radnog takta
rafalna brzina
prenosa podataka
rasp let
! rasplitanjc
rasterizo\ anje
rastcrsko skeniranjc
ra;:dcinik
mzdn>jcn kd.
pudcijcn kd
red kl?Sa
red za porukc
rcdll!llbntan niz
di;;kuva
rcfcrcilciranic
Ull<l/'rcd
rclerentni
bubedmhn i
ntlll/Drnik
rdcrcntni test. kst
brz.inc
rcgicnalna mre/.a.


!mr.>t rote
ji111mt1
de i lllc rlucing
lwl/toning
raster scan
splillcr
spli! cuche
cache line
!tlC.\"S({ge (jllCUC
Redundant Armv
of !ncxfJCnsive
!Jisks
jiJiwurd refi'renet'
sccuritv reference
l!loniwr
henchmurk
nefHork.
W1tN
in:--lnJkci_ja Ins! me/ ion
Regislcr, IR
rcgi\Ltr "' condition codt'
u"luva register
.flag register

rcgistar za podatkc dutu register
Spisak termina korisccnih u knjizi
registarsko
adresiranje
registarsko adrcsi-
ranje s pomerajcm
rcsctka
reZ.im rada jczgra
rotaciono kasnjcnje
ruter, usmerivac
sabirac
sabirac s biranjcm
prenosa
register mode
register
displacement
grid
kernel mode
rotationallutcncy
router
adder
carrv select wider
sahirac s postupnim ripple carry adder
prcnosom
samopoddavajuci sc!Fmudifyi,,g
saturaciona
aritmetika
savrsena mesavma
segmentiranje
sckvenccr
semafor
s rczultatima
SCSljil
set -asocijati vni kes
signal z.a sistemski
pre kid
sirnctricni
multi
simultan visenitni
rad
smuratcd
arithmelic
pC!jec t slwffle
striping
SeifllellCCr
scorchcJilr!l
SCSSlii/1
set associurivf'
cuche
intcrmJ>I signal
Svmmetric Multi-
Processor, SMP
sintultanccJtlS
II!Ulrithreading
sinhrona magistrala svnchronous bus
sinhroni SR lee clocked SR lmch
sistcm datoteka
sistcm paketne
obrad..: podataka
sistem s podcljenim
vrcmenom
sistcm za kdiranje
datoteka
_file system
batch system
limesharing svstem
_file cache munager
753
sistem za ulazno- 110 manager
-izlazne opcracije
sistemska magistrala svstem bus
sistcmski poziv system call
sistcmski prckid interrupt
sistemski proces
skalabilan
skencr stranica
skladiste
skretnica
skrivena kopija
skup znakova
sloj apstrakcijc
daemon process
scalable
hard vera
sloj sistcmskih
usluga
sloj veze
spckulativno
izvrsavanje
spoljni simbol
' sporedni, poclreckni
SR Icc
stanjc cekanja
stanjc utrkivanja
status radne
page scanner
store, storage
switch
shadow page
charucti'r set
hardware
a/Jstraclion
systenz services
layer
link laver
speculative
execution
external sy111hol
slave
SR la!ch
wait s/iltc
race condition
core dump
memonjc racunara
staza track. lane
stck slack
stepen pogaJanja
hit ratio
' stcpcn promasivanja miss ratio
' straniccnje paging
stranicenje na z.ahtev demand paging
striktna closlednost striCI consistencv
strukturni sloj fabric laver
superkorisnik supcruser
superracunar
superskalarna
arb i tek tura
, sveprisutno
sistcm za rad s pro- process and threw! ,
racunarstvo
Sl/f!erCOIIlpUter
supcrscalar
architnwre
uhi<Jllitous comru-
ting, pervasi\'1'
cornputing
c;csi ma i prngram-
skim nitima
rrlil/U(I{i'r
sistem za rad s virtu- virwalmonorv
elnom mcmorijom mwwgcr
svctlosna dioda
svdanJ
Light
Diodi'. LED
/mill II c
""'
750 Spisak termina koriscenih u knjizi
lokalna mreza local-area nesi metricnost bus skew
network, LAN magistrak
lokalna telefonska local loop neusmereno broadcast
linija cmitovanje
magistrala, bus nib! nibbll'
sabirnica nivo arhitckture Instruction Set
mapa memorije memory map skupa instrukcija Architecture
masina konacnih Finitl' State level, /SA level
stanja, konacni Machine, FSM nivo microarchitecture
automat mikroarhitekture level
maticna ploca motherboard 1 nivo operativnog operating system
matricni procesor array processor sistema racunara machine level
matricni stampac matrix printer nivo urcdaja device level
mcmorijska stranica memory page noseci signal, carrier
met!uprocesni kana! pif){' nosilac
mcctuscktorski intersector gaJl objektni program object progrum
razmak obrnuta poljska reverse Polish
mikrodisk microdrive notacija notation
mini interval minislo1 oulazna obrada egress processing
mlazni stampac inkjet printer oulo/.cno upisivanjc write deferred,
model paralclnc pipelined model write hack
obradc odredivanje ranging
model umno:i:enog replicated \torker ras toj anj a
radnika model odsutan negated
modulacija jt'Nflle/ICV slzij/ ograniceno deljenje threshold sharing
s frekventnim kning okvir fiwne
p< lmcra nje m okvir lokalnih fond variable
mrc7.a ;irokog widc-ureu ll<'lll'Ork, promenljivih frame
op."\cga, rcgionalna WIN okvir steka stack ji-ame
rnre7.a nk vir stranicc page frame
mrczni interfejs Net11ork lnterj(lCe operativni sistcm operuting system
Device, Nff) ! opseg boja, gama gamut
multipkbirana multiplexed bus osnova radix
m:1gislrala osnovni blok basic block
multi prun:,or IIlli f I ifii'UC't'SSOr m.novni direkto- mot dircctorv
mull iprocesor s direcUJn-bused rijum, korenski
katalogom lllll!tiprr'ce.,sor di rekturijum
I< lui ti programiranje !ltul!iJmlgrununing osnovni ulazno- Basic Input Owput
mu!tiracunar mu I ric'OIIlf'llic r -i,dazni sistcm Svstem, BIOS
rnutcks mute.t i osnuvno cvoriste root hub
nacin adresiranja address mode ostrvo (na povrsini land
nadreJcni, glavni fllUSli'r CD-a)
neinvcrtujuci bafer bufj'er otrovni bit poison hit
ncpusrcdni operand immedime operand , otvoren kolektor open collector I
.

!
I
u
Spisak tcrmina koriscenih u knjizi
oznacen
oznacen ceo broj
oznaka
oziceno OR (ILl)
paket s dva reda
nozica
paket za potvrdu
1spravnog prenosa
paralclna obrada
podataka
particionisan jc
deljenih resursa
podcljen kes,
razdvojen kes
poddavanjc
podizanje
pourazumevano
auresiranje
podrcdeni, sporedni
podsistem
okruzenja
pogodak u kdu
pokazi va( Pkvira
pokazivac steka
pokrctni zarcz
poluuuplcksni
pomcrac
pomeracki registar
signed, tagged
signed integer
label
wired-OR
Dual/nline
Package, DIP
acknowledgment
packet
pipe lining
partitiorwd
resource sharing
split cuche
tuning, adjusting
hoisting
imfllied addressing
slave
envimnmenwl
subsystem
cache hit
fi'ame pointer
stack pointer
.floating point
halfduplex
shijler
shifi register
pomeracki registar branch historr
za istoriju grananja sltifi register
pomeraj, uualjenost o[j:>et
postfiksno postfix
postansko sanduce mailslot
potprogram
potprogram za
obrauu prekida
pPtpun duplcksni
re/.i m
putpuni sabirac
potpuno dcljcnje
res ursa
putpuno
usaglasavanje
povoljno kruzenje
suhroutine
interrupt hwuller
full dupln
filii adder
jit/1 resource
sharing
jitll fwndslwkf'
virtuous circle
poziciono nezavisan
pozivanje makroa
prava zavisnost
pravilo doueljivanja
pri upisivanju
pravougaona
matrica senzora
praznina
precizan prekid
precnik
predajnik sign,da
za magistralu
prcdikacija
pretiksni bajt
preimenovanjc
regis tara
prekidacka algebra
prekidna tacka
prelaz
prcpleten
preslikavanje
prevaziclen
prevouilac .
programski
prevouilac.
kompajlcr
prevodilac s dva
pro Iaska
prevodenjc
prijemnik signala s
magistrale
position
independent
macro call
751
true dependence
write-allocate
policy
Charge Coupled
Device, CCD
hole
precise intermpt
diameter
bus driver
predication
prefix byte
register renwninr
.1witching algebra
breakpoint
transition
interlaced,
interleaved
mapping
legacy
compiler
two-pass
translator
translation
bus receiver
prikljucak J!Ort
prikljucak Accelerated
za ubrzanu grafiku Graphics Port,
AGP bus
primoprcdajnik
signala magislrale
princip lokalnosti
prirucni bafcr
prisluskivanjc
pristupni !:eton
prisutan signal
bus transceiver
locality princiJIIc
prefetch huJTer
snooping
access token
asserted signul

756
argument. 712
arhitektura, 7, 54
arhitektura paralelnih racunara, 543-647
koprocesori, 563-577
rnrdni procesori, 564-571
multimedijski procesor, 571-576
multiprocesor, 577-606
multiprocesor na jednom cipu,
558-563
multiracunar, 606-641
paralelizam na nivou instrukcija,
545-552
paralclizam na procesorskom cipu,
544-563
taksonomija. 582-584
visenitni rad, 552-558
arhitektura racunara. 7
kljucne tacke razvoja, 13-26
arhitektura s tri magistrale,
arhitektura skupa instrukcija, 6, 693
805 I, 342- 345
Pentium 4, 337-338
UltraSPARC 339-342
arhitektura 342
aritmeticko kulo, 150-154
jedinica, 6, 50-'i2,
153-154
aritmetika. hinarna, (J7'J
aritmetika brojcva u komplemcntu
dvojke, 67S
ASCII krxL 125-126
ascmbler. 7, 506,520-527, 6<.J4
8088,
drugi prolazak, 524-526
prvi prolazak, 520-524
tahcla simbola. 526-527
asemblerski jezik, 506-51 <.J. 693-696
8088.716-721
naredhc. 510-512
osohinc, 50(J-507
pseudllin.-;trukcijc. 513-515
,C!a trcha kori:'.titi, 507-509
:\SIC, c1p, 56 7
lndcks
Asimetricna digita1na pretp1atnicka
linija, ADSL, 117
asinhrona magistra1a, 180-181
asocijati vna mernorija, 442, 526
AT Attachment (AT dodatak), 84
standard, 84
Atanasotl, John, 15, 17
ATAPI-4, standard, 84
atrakciona memorija, 605
automatsko smanjivanje, 705
autornatsko uvccavanjc, 705
B
Babbage,Charles, 14-15
hafcr, kru,:ini, 459
bafer za praccnjc odrcdista skokova, 311
hafcr za skladistcnjc prcvoda, TSB. 449
haferovano pro:,lcdi vanjc poruka, 626
bajt, 69, 333, 703
13ardecn, John, 19
Baycrov filtar, 124
baza, 134
bazni rcgi:,tar. 697
BCD. sema, 67, 703
Bcchtnlshei m, Andy, 41
hc/bcdnosni deskriptor, 4:-19
bczbednu:,ni idcntifikator, SID, 4:-\9
bezg1ava radna stanica, 621
,big cndian'' raC:unar. 69
binarna aritmctiLt, 6 7'J
binarna imtrukcija. 374-.375
binarni hrojevi, 6 71-6::1 I
negativni, 677-678
prctvaranjc iJ: jednog hrojcanog
sistema u drugi, 67J-677
sabiranjc. 6 79
binarni program, 694
binarno prctra2ivanje. 526
BIOS, osnovni ulazno-izlami sisten1, R3
bipolarni tranzistori, 136
bisckcioni propusni opscg, 609-610
topologija, 6())'1 -61 1
bit, 66-67,674

!
lndcks
bit parnosti, 71
bit 432
bithlt, graficke operacije, 575
hlisko pozi vanje. 712
blizanac, 630
hlok koji pocinje simbolom, BSS, 717
blokirajuca mrda, 596
BlueGene/L, 612-616, 619-620
99
bod, 115
Boolc, George, l 36
Brattain, Walter, llJ
broj instrukcija, u odnosu na RJSC 57-5::1
hrojac lokacija, 717
broj:1C' lokaeija sa instrukcijama. !LC,
521
brojac mikroprograma. MPC 23'J
brojacki rcgistar. ex. 6')7
bro.Jl:<ll1i sistcmi date osnovc. 6 73 7 4
hrojcvi konacne tacno'iti, 6 71-6 7 4
brojevi u formatu pokrctnog
6::13-691
BTB. bafer grananja. 31 I
Bulova algebra. I :i6-lJS
BlliT<)llghs 8500\J, 21
Byron, lord. 15
c
CCD 'cn/c)r, 123
CDC 66CU, 13, 20. (<2. 3()2, :'63
CDC Cyber, 55
'J4
c 0 [\.!, 90-'>4
prepi:,i vi, 97
..;cktor, 93
-.tan. 96
.\ ,\, l))
( Jl)
. ' . . 1 . 4'
.:.:!1JDrt.:Jna

1:nca,
c,,JL(,llni ret(nnar. 35
LJZ\cdnik. 1 i "
1
cik.Jus 177
cikluc, i)r,uzmi-izvr;L 22:-;
cildus radnog takta, 155
ciklus toka podataka. 52
cilindar. 81
cilj, 204
ciljna biblioteka, 539
ci ljni jcLi k, 505
CLUT tabela, 574
CMYK stampac, 113
COBOL, program na jcziku, 35
CO LOSS US, 16
757
COMA. rnultipruccsori. 'i:-\3, 605-606
Control Data, koqJoracija, 20
CorcConnect, 5h l
C:P/:VI, 23
Cra;, Seymour. 20
Cray-l, 21,55
CRC. ciklicna provcra rcdundansc, 212.
21 h, 5()6
C:rvcna k.njiga. l) l
c
ct:Lmjc na oslubJ<LIIJC resur-.a, 3C\2
l-ip. l4_o
cvr'lll >pn:gnuti proecc>Ori,
:Vl:VIP. 5S-l, 611 h2U
c
<'clija mcnwri_ie. (J 7
D
D kc, !58
J,\t,Jteka, -15 7
d;;t,Jtd:.a -;a dJ.jc!dni Ill kodum. 7 UJ
[nternet uolug,t. JSP, 565
DDR SDRA'\L !69
Je!xlo sta!Jl,l. 611)
Ui:C Alph;t. 25
D\T l'J
Dl::.C I'J
J1U_' VAX. 55-)h
broj. 7 I X
dekmkr. l47
''""1ft
\$11
_.,
754
sirokopojasni
tabcla globalnih
deskri ptora
tabela grananja
tabela istinitosti
tabela lokalnih
deskri ptora
broadbwul
Global Dncriptur
1l1ble, GDT
branch tahle
truth table
Local Descriptor
1c1ble, LDT
tabela rutiranja routing table
tabela stranica page tahle
tabela za prevodcnje tmnslution tuh!e
tabela za dispatch table
usmeravanJc
tacka ukrstanja
tankoslojni
tran;:istor
tesno spregnut
test brzine,
rcferentni test
CriJSSJN!lflt
thin .film transistor
tig/lllv COIIJ!Ictf
hcnclwwrk
tok strewn
tok .flow o{control
torba s poslovima rasf.. hag
torka tuple
trajna brzina prcnosa sustained rate
transparentnost
tn:siranjc
trostaticki uredaj
tuncl
1 rr IIISJH 1 rc 1 u v
thrushing
tri-state device
wormhole
ubudna (vampirska) vumpire lup
racva
udaljeno pozivanje
udaljcnost, pomcraj
ulancavanjc uredaja
ulazna tacka
unakrsni prekidac
ji1r cull
ofY:w' 1
duisr chaining
entrv poillf
crosslwr switch
unarno monudic
univerzalna scrijska Universal Serial
magistala Bus, USB
upravljacka memo- ('{!f!/ml slorc
rija, upravljacko
skladisrc
upravljacki program device drinT
,r,a uredaj, Jrajver
Spisak tcrrnina koriscenih u knjizi
upucivanje iz
skladista na
ucitavanje
urez (na povrsini
CD-a)
uticnica
uvijen nematicki
kristal
uvm:na bibliotcka
vektor prekida
vektorski procesor
vcktorski registrar
vezni segment
store-to-load
pit
socket
1kisted Nematic,
TN
import library
interrupt vector
vector processor
vector register
linkage segment
virtuclna masina virtual machine
virtuelna memorija \'irwal memory
, viscnitni rad na cipu on-chip
viscnitni rad niske
rezolucijc
visenitni rad visokc
rczolucijc
visestepena
komutaciona
mrcza
mull itlzreadi11g
coarse-grained
nutltithrcading
finc-gruincd
multithreading
multistage
swirclzing
rWtH'Ork
vrcme vezivanja hi/1(/ing time
r vremenska lukalnost /e!llf)()l'lll localitv
vrcmcnski prucep dc!ar slot
zaglavlje
zaokruzi vanjc
zastareli podaci
zastoj
zastupnicki Web
server
I zastitlla hari_jera
zauzi manje
ndrcdnice
zavisnost citanja
od upisivanja
zbirni propw,ni
upseg
zeton
header
rounding
stale data
stalling
f>roxv Wc!J server
jire1mll
\\'rite allocalion
Rciiil Ajier Write,
RAHi
dcpenden,c
uggregnte
hwlLhl'idth
10/..cn
Kumpletan sprsal< tenntnu hu;t se kons!f! ut::.dun;unu /'v!ikro knjige nula:;r sf! na wires/ ,vww .mk. co .yu/recn i k.
____,i
INDEKS
A
aditivna invcrzija, 376
adrcsa, 6 7, o96
mcmorijska,
adresiranjc, 350, 359
K05L 371
XOS8.
direktno, 35'J
indeksirano, 361
indebiranu, hawo, 363
indircktno, 360-36!, 70--1-
indircktnu, registarsko,
logi.::kih blokova, LB;\, S4
na steku, J63-36<l
ncposredno, 350
PeruiunJ4, 369-370
70--1-
rcgistarsklL 359
U ltraSP ARC, 37 I
adrcsni pmstuL 427
,\GP magistrala, 203-20--1-
Aiken. Howard. ln
akti\'llo(koloJ, 158
akumulator, 18, 320, 345, 697
alguritam,
algoritam za hranjcnje beba, 432
algoritam za zamenjivanje stranica,
43--1--435
435
LRU, 434
Alpha, 25
Ai\IBA. 5b3
Amdahlov zakon, 639
amplitudna mpJulacija, 115
komplet za prevodcnje, 717
analilicka masina, 14
A PIC programabilni kontrolcr prckida.
llJO
1\ppk [[, 23
Apple i\lacinrosh, 2--1-
apsolutna pulanja, 483
arbitar magi-.trale. I 0 I
arbitriranje nwgistralom, 181
PC!, 205
755
760
I
IA-32, 337
IA-6.f.410--41Y
model EPIC, 413
predikacija, 416--418
rasporcdivanjc instrukcija, 414--416
spekulativno ucitavanjc, 418--410
svdanj instrukcija, 415
I -cvor, .+84
!HM, 18, 20--22, 200
IBM 360. 21-23, 26, 563
IBM701, 10
IBM 70.+, llJ
IBM801,56
IBM l.f01.20,21
IBM 70lJ4. 20. 26
IBI\1 PC, 23, 27
magistrala. 200
pocctak, 23
IBM PS/2. 201
IDE. standard, 83
identifikatur objckta, 475
IEEE standard za format pokrctnog
zaraa, 686-6l)()
IJVi'vl, 227-228. 242-251
Java k{\d, 250-251
mcmmijski model, 24.+-246
Mic-1 realizacija, 256-26:-l
Mic-2 rcalizacija, 268-277
i\llc-3 rcalizacija, 277-286
l'vlic-4 realizacija, 286-28')
okvir lokalnih promcnljivih, 2.f5
pudrucje rnctmla. 245
podrucJC promenljivih. 245
putanja pudataka, 229-231
rad mcmorijc. 233-235
skup inotrukcija, 246-250
stek. 2.+2-2.+4
stck opnanada. 2.f5
vremensku raspuredivanje dogadaja.
23 I--23J
!ILIAC. I 7
ILLL\C IV. 63-(J5, 5:->2
implicitno povezivanje, 538
indcks datotcka, 454
indcks izvmista, Sl, 700
indeks odredista. DL 700
indcksiranjc hoja, 107. 574
indcksno adresiranjc, 361-362
imkksno Gdrcsiranjc, bazrw, 363
indikator pariteta, 709
indikator smera. 705
imlirektni blok, 485
Indcks
indircktno dostupna infonnacija. 456
indirektno rcgistarsko adresiranje,
360-361,704
Industry standard architecture, IS A, I 02,
201
infiksna notacija. 363
infonnativni dclovi standarda, 332
inicijator. PC! magistralc, 204
instrukcija, 336, 372-39.+
8051' 390-3lJ2
binarna, 374-375
koja radi s bajtovima, 703
koja radi s reCima. 703
rasporedivanjc. 414--41 (J
t:a grananjc, 377-378, 3tJ4-3l)5
za poredenje, 377-378
;a prcmcstanje podataka, 373
za upravljanjc pctljom. 379-3<-10
instrukcije
poredenjc skupova, 3lJ0-394
za puzivanje procedure, 378-379
za premcstanjc podataka, 373
za ulazno-iz:la.me opcracije, 38 J-384
integrisano kolo, 2 I, 1-rl- I 45
Intel 8088. 2.+. 37.337, 6')6-700
adrcsiranjc. 702 -71l5
asembler. 7 I 6-72 J
organizacija mcnwrijc. 701--705
pri meri programa. 726-7 4.f
simulatur. 722--725
skup instrukcija. 706-7 I 6
InteL kurpur.tcija, 36
In rei 8255r\. 2 I 8
lndeks
lntelov Cip 4004, 36-37
Intclov cip 8008, 36
lntelov cip 8051, 197-199
adresiranjc, 371
formati instrukcija, 357-358
instrukcije, 390-392
istorija, 43--44
mikroarhitcktura, 320-322
prcgled nivoa lSA, 342-345
tipovi podataka, 34l)
lntelov cip 8080, 36-37
Intelov cip 8086, 36-37
Intclov cip 80286, 37
lntelov cip 80186, 37
Intelov cip 80486.37-38
lntelov cip Celcron, 39
Intelov cip Xeon, 39
mrczc za intcrnt> povezi vanje
komponcnata multiracunara,
607 61 I
intcrfcjs
za graficke uredajc, u Windowsu XP.
474
;a male racunarskc sistcnJC. 85-:->6
za programiranjc apiikaciia. 475
za pruskdi\anje rhlruka, :\11'1. 627
interpreter, 2. 52-53, h')4
interprctiranjc. 2--4
inverter, 135
invertujuci hafcr. I h5
inwrzioni kru/ic'_ I 35
IP protok,JI. 56(>
IP zagiavl_ic, 566
!SA m:Jgistral<l. 21lU -20 I
istorija
1 t).f5-llJ55, I 6--J'I
I'J55-l'J65, 1'!-21
1965- I ')KIJ, 2 I -2_;
I :23-2'i
korporacije !ntcl. 36-+1
korporacijc Sun :Vlin>S\ slcll\s. 41-42
raCunarsk.i
ltanium 2 . .f!O-.fllJ
761
ivica impulsa, tlip-tlop reaguje na, 159
izbrisivi PROM, EPROM, 43, 169
izvoriste (operand), 702
izvorni jczik, 505
izvrsavanje instrukcija. 52-55
izvrsilac, u Windowsu XP. 473
izvrsna binarna datotcka. 716
binarni program, 505, 528
J
Java. 7
.lavina virtuelna masina, :227
jcdinica za dckudiranjc. 286
jcdinica za dodcljivanje/preimcn<JvanJe
Pcntiuma 4. 31 I
jedinica La dovrsa v<tnjc, 314
jcdinica za inlavanjc instrukcija, 315
jedinica za prcuziman1c im,trukcija,
273-277
jcdinica za svrstavanJC u red cekanja,
jedi nica ta upra v ljanjc memorijom,
\li\[Ll, 430
jedinica za vremensk<J raspnrcdivanje.
313
jedinstVt:n 77
jednohitna ,ckcija. I 5.f
ydnnsta v naCO!\ li'\. (J0(J
jezgro . .f/J. SSS
jc!lk. 1
_iczih visukog nivoa. 7
i asemblerski juik, 507
Jobs. 2.1
17
Juv. Bill. .fl
JPEG. slikc. 124
JTAC. standard. 57.'
K
Lthim-;ki lnkrn.:'l. li'J-123
kasnjcnJc. 60
kola. l-l-5
kat:tlot: ,rranict, 4.+5

758
dckodiranje adresa,
deljcna biblioteka, 539
deljena memorija, na nivou ap1ikacije,

DcMorganovo pravilo.
dcmultiplckser, 147
denonnalizovan broj, 688
deskriptor datoteke, 480, 714
dcte (potomak), 491
dibit, modulacija, I I 5
difercncna masina, 14
Digital Equipment, korporacija, 19, 21,
55
digitalna pretplatnicka linija. DSL,

digitalni fotoaparat, 125
digitalni video disk, 97
digitalni viscnamenski disk,
dimcnzionalnost, 610
dinamicka datoteka. DLL datotcka, 536
dinamicka mcmorija, 168
clinamicko povezivanje,
dinamicko rclociranjc,
DIP, paket s dva recla nozica. 144
dircktan pristup mcmoriji, DtviA, 101,
383
dircktiva asemblcru, 5 13
clirektno adresiranje, 359, 703
din:ktno dostupna datotcka. 490
dircktno doslupna informacija, 456
dircktno kdiranje. 295. 590
direktno pres1ikan ke5, 292
direkturijum. 456--457
disk,
CD-ROM, 90--94
DVD,
IDE,
magnetni. 79-90
opticki, 97-99
RAID.
SCSI.
Winchester, 81
lndeks
disketa, 82
distribuirana cleljena memorija, DSM,

cliv1ja macka, 619
clodatni segment. 710
dodc1jivanje upisivanja u kes, 295. 591
dogadaj. 497
do1azna obrada, 569
doslednost redos1ecla (pristupanja
mcmoriji),
doslcdnost uz os1obadanje,
dot (brojac 1okacija), 717
dozvo1a za pristupanje magistrali,

clrugi prolazak, 717
dugacak skok, 710
dugacka rec (long), 698, 703
du/.ina putanje, 269--277
dvojina, 140
dvostruk (double). 698
dvostruka tacnost, 346
clvostruki pokazivac, DPTR, 320
dvostruki torus. 610
dvostruko indircktni blok. 485
E
Eckert, .1. Prespcr. 16
EDO memorija. 169
EEPROM. 170
efektivna adresa, 705
ElDE. standard. 84
ekran
s pasi vnom matricom. I 06
s tccnim krista1ima, I 05--106
sa akti vnom matricom, I 06
sa uvijcnim nematickim kristalima,
TN. 106
eksplicitno povezivanje. 539
eksponcnt, 684
ekspresna PCI magistra1a.
ek vi valcntnost clcktronskih kola.

.----*.
Indeks
Electronic Discrete Variable Automatic
Computer, 17
Electronic Numerical Integrator And
Computer, 16
emiter, 134
emiterski spregnuta logika, ECL, 136
emuliranje, 22
end ian, 70
big, 69
little, 69
Enhanced Host Controller Interface,
EHCL 217
ENIGMA, 16
EPIC, 413-419
epilog procedure. 399
epimda, 427
Estridge, Philip. 23
Ethernet, )64
evolucija racunara, 12
Extended !SA. EISA. 102. 20 I
F
farma scrvera, 35
fa/.a paraklnc obradc podataka. 5')
fazna mudulacija, I 15
4S 1
fizicki s1oj, 212
iles memorija. 170
llip-tlop.
Flynnova taksonomija. 582-5S3
forrnalni paramctar, 5 17
formati instrukcip, 72

JS:\ nivo,
Pentium --1. 355--3)6
pmJd;,tni kritcrijumi. 350-Ti2
U!traSPARC,
Forrester. Jay. IS
FORTRAN. 9-11
FORT!.:AN monitor -;ystcm, FMS. lO--ll
fowaparat. digitalni, 12)
FPGA, cip, 567
FP!\i mcmorija. 16S
fragmentiranje
spoljasnje, 440
unutrasnje, 436
frekventna modulacija, II 5
funkcionalna jcdinica, 62
G
gama iii opscg boja, 113
generisanje koda, 7 17
759
generisanje kopije po upisivanju, 477
g1avna tabcla datoteka, MFT, 489
glavni uredaj na magistrali, 174
globalna oznaka, 718
Globe.
Goldstine. Herman. 18
Googlc, klastcr racunara.
graficko korisnicko okruzenjc, GUT, 2A.
--170
grananje,
greska prckoraccnja donje granicc. 685
grupa in,trukcija. 415
H
Hamming. Richard. 2X
Hammingov ki\d,
Hammingovn rastnjanje. 71
Hanoj,kc kulc. --107-410
Pentium. 407--408
UltraSPARC. 408.410
hanlver. 8
ckvivalentnost sa softvcrorn. 8
harverdska arhitektura, 77
harcivcr<,ki DSi'vL 597
hazardi. 284
hcksadccimalan. 673,718
hdiranjc
High Sinra. 94
hijerarhija mcmorijc, 79
hiperkocka. 611
hiperniti, 556
Hoagland. AL 28
!luff, Ted, 36
764
sekundarna, 78-99
SRAM, 168
virtuelna. 426-450
memorija s direktnim pristupom. RAM,
43, 168-169
dinamicka. 168
SDRAM, 169
staticka, 1 (J8
mcmorija samo za citanjc, ROM, 43,
169-170
rnemorijska adrcsa, 67-69
memorijski cip, 165-168
mcmorijski modeL 333-335
memorijski pakcti. 77-78
rnernorijski pn:slikan ulazno-izlazni
urcdaj, 21Y
MESL protokol za odr/avanje
kesa, 59 2- SCJ4
metoda. 37X
mctricke jtdinicc, 45
iVlic- L 237, 256-268
putanja podataka. 238
realizacija. 256-2(18
l\lic-2. 277-.2X(>
putanja p<Jdataka. 278
277-278
lVlJc-J. 281
putanja p()(L\taka. 2:-l2
realizacija. 281--286
Mic-4, 21\6-289
putanja pml:ttaka, 287
real izacija. 2i;C-2XlJ
'\1 icrosort, kllrpc >racija, 24. 4 70-471
mihoarhitckt ura
805 I. 320-322
Pentium -1-. J(JlJ-.114
314-320
mikroa:<cmhicr. 252
rnikrodisk. 124
mikrc1instrukcip. 55. 235 2T7
OLnaCavanjc, 252-25f>
mikn,J.;ontmlcr. 31 J2
mikrukurak, 2X3
mikruuperacija, 286
mikroprogram, 6, 697
mikrnprogramiranjc, 8
istorija, 11-12, 24
MIMD racunar, 582-583
MIPS
cip, 56
skracenica, 58
MlSD racunar, 582-5S3
mis. 107-IOY
mlazni stampac. I !0
mnemonik, 694, 716
mmlelumnozenog radnika. 633
nwdcm, 115-117
mmlulacija, 115
amp! itudna, I 15
fa;na. I 15
frck vcntna. l 15
Indeks
nmnitor s ravnim ekranum. 105 -106
J\luun:. Gordun. 2f>
IvlourcclV ;akon_ 26-27, -l-0
i\1()S tchnulogija, IJ(J
Ivlotil, 470
l\lclltlWia 6:-1()()()_ 55
:\li'EC!-2, format, 5(,1)
nlrL/.a rcginn<-dna
W.\N. 'irA
intcrkj.,, N ID, I I X
rnrc!ni jlroc::sori. 5h4-57l
C\ IS-DOS. 24
1\lULTICS, -l-42
571-57(>
rnultipicLrrana ! 17
1--l-5
mulliplc:La pri:-.tupa digiLilnnj
pr:.'lpLttnickoj !iniji. DSLA:\1, I IS
:\lulripk.\.:d lnl-.-mnatiun anJ Compt.ting
I"!ULTICSJ. 536
multipruccc;ori. 65-6h. 316. 577-601>
kujr ckk memuriru. 577-606
lLI.icdin..-,lvenoJn Cipt!. :'Sh-.:-163
s 605
.') n1rLL:nrn. S'J-i--5\)/
lndeks
s magistralom, 589-594
sa unakrsnim prckidacima. 594
multiprogramiranje, 22
multiracunari, 66, 579-582. 606-641
BlueCiene/L, 612-616, 620
k laster Coogle racunara, 621 -625
MPP, 611-612
Red Storm, 616-620
zasnuvani na razmcnjivanju poruka.
60(J-64l
muteks. 493
;VIyhrvold, Nathan, 27
N
adrcsiranja. 35:-\--372
805 l. 371
bazno imleksirano, 363
direktno. 359
indeksirano, 361-362
na steku. 363-366
neposrcdno. 359
Pentium 4, 369-3 70
rcgistarsko. 359
UltraSP,\RC Ill, 371
;a instrukcije grananja. 366
zavrsnc napomenc, 371-372
,najbolji pogodak'', algoritam, 441
NaN (nijc broj), 6YO
Narand/.asta knjiga. 95
Nathanov prvi zaknn softvcra. 27
neblokirajuca mrda, 594
ncgativna logika, 143
neinvertujuci bafer, 164
nekoherentni NUMA multiproccsori.
597-598
neposredni operand. 35Y
nepo'iredno adresiranje. 35lJ, 705
nesimetricnost 176
Netburst mikroarhitcktura. 309-314
nevidljivi racunar. 25
neviJlj i vost ( transparentnost). 405
Nexperia, 571-576
nib!, 3:-\5
nivo, 2-7
nivo arhitekturc skupa instrukcija, 6
nivo asemblerskog jezika, 505-542
nivo digitalne logikc, 5, 133-226
kola. 143-156
logicka kola. 134-143
magistrale, 213-217
memorija, 156-170
765
povezivanje ula;.a i izlaza, 217-220
pmcesorski cipovi, 171-173
nivo impulsa, 159
nivo ISA, 6, 329-424
adrcsiranje, 358--372
formati 350-.158
lA-64, 410--419
pregled, 331 -345
tipovi instrukcip, 372-394
tipovi pmlataka, 346-349
tok 394-410
nivo mikroarhitckturc. 6, 227-327
IJYM. primer skupa instrukcija,
227-289
kes mcmorija, 28'J-2Y5
prcdvidanje programskog skoka.
2Y6-301
primcri. 308-322
projektovanje, 268-289
nivo opcrativnog sistema racunara. 6.
425-503
nivo uredaja, 5. 134
NORMA racunar, 5))4
normaliLovan broj, 6))6
normativni dclovi standarda. 332
noseci signal, 115
n-tostruki set-asocijativni kd, 294
NU:YIA multiprocesori. 51\3, 597-605
s kohercntnim kesmn, 598--605
0
objcktni modul, 532-5.13
objektni program, 505
obrada sistemskog prekida, 1 01
obrnuta poljska notacija. 36_1-]66
--.
_..,j
762
katodna cev, I 04
kes blokova, 460
kd memorija, 38, 74-77, 290-205,
58()-504
direktno preslikana, 2lJ2-204
direktno upisana, 295
dodeljivanje upisivanja, 205, 59!
jedinstvena, 77
koja osluskujc, 580-502
MESI, protokol, 5()2-504
nivoa2,201
odlozeno upisana, 205
povratno upisivanje. 295, 592
razdvojena, 77, 200
skupno-asocijativna, 204-295
strategija azuriranja. 50 I
stratcgija ukidanja vaznosti. 5LJ I
vise ni voa. 291
za podatke, 3 15
za prace njc, 3 1 0
za prethodno prcuzimanje. 315
Khosla, Vi nod, 41
Kilda!L Gary, 23
klasicna usluga prenosa glasa. POTS, I 17
klastcr
Ciooglc. 621 625
NTFS, 400
radnih stanica. COW, .H-35. 584.
6.21 -6.25
klon, 24
klJuc. 454
kljucnc tal'ke razvoja arhitckture
26
kocka. (J II
J.-:i\d uslova, 33h
k6d za ispravljanjc gresaka, 71-74
k,xJiranje znakova, 1.25-128
kodna rec. 71
kudna strana. 1.27
kudna tacka. 127
kofica. 5.27
kohercntnust kcsa, 500
knlekrivni .sloj. 643
kolektor, 134
kolo
aritrneticko, 150-153
kornbinaciono. 145-150
komandno okruzenje, 470
komparator, 148-150
dckoder, 14 7, l4R
rnultiplekser, 145
lndeks
kompatibilnost sa starijirn verzijama.
330
komplerncnt jcdinice, 6 7X
komunikator, 627
komutaciona rmda. 5()4-507
kornutiranje paketa, 565
konacni automat
jcdinica za prcu.cirnanjc instnrkcija,
275-276
predvidanJe programskog skoka,
.209-300
konstanta rclokacije, 530
kontekst, 44X
kontrola toka, 212
kontroler. I 00
kontrolcr diska,
km11rolni kCKI, 355
koprocesmi. 563-577
korisnicki rcLim 333
koristan terct, 211
korutine, 400-40 I
kraua ciklusa, I 0 I. 3X4
kratak skok. 7 I 0
kripwpmccsori, 576-577
kriticno podrucjc, 496
L
Ll BTB. 311
!aha\'() spreg:nuti sistcmi. 544
bserski :itampac, I II
Latin-], 127
la.i:rw dcljt'njc. 6.i0
lee. 156--ISS
Lcihniz. Gottfried. 14
..
lndeks
leva vrednost, 702
licni digita1ni pomocnik. PDA, 25
licni racunar, 33
linda. 631-633
linearna adresa, 444
linija po incu, !pi, 1 12
linijatura (gustina rastera), I 12
lista slobodnih mesta, 455
lista za kontrolu pristupa, 4WI
literal, 522
,.little end ian" racunar, 69, 703,
logicki raspored izvoda, 17 I
logicki zapis, 452
logicko ko1o, 5, 134-136
1okalna mre:la, LAN, 564
lokalna oznaka, 718
lokalna tclefonska linija, I 17
Lovelace. Ada, IS
LRU, algoritam, 2')4, 434
M
Macintosh, Apple, .24
magistrala, !0, 4(), 100-102, 101-1()2,
199-217
AGP, 203-204
asinhrona, 180-1 X I
ElSA, 201
IBM PC. 200
IS A. 200-20 I
rnultipleksirana. 177
nesirnetricnost, !76
PCL 201-208
PC! Express. 200-213
Pentium 4, 101-1 ()2
prcnos blokova, !84-1 X6
protokoL 173
sinhrona, 177-179
usag1asavanje, 181
USB, 2!3-217
za pcriferijske ureuaje, 562
za pristupanje registrima ureuaja, 562
magnetni disk. 7()-90
majusni model, 721
makro, S IS-S ll)
definisanje, SIS
implementiranje, S I 0
operativnog sistema, 11
pozi vanje, 5 16
prosiri vanje, S 16
makroarhitektura, 242
MANIAC, 17
mantisa, 6R4
mapa bitova, 347
mapa memorije, 428
Mark I, 16
maska, 374
maska alfa kanala, 574
MASM, 510
mastila na bazi hoje, 114
mastila na hazi pigmenta, I 14
masina s vise nivoa, 4, 8-12
mas ina za stampan je, 112
masinski jezik. I. 6'>3
matricni stampac, 1 00
Mauchley, John, 15-17
McNealy, Scott. 41
MCS-51. porodica cipova. 43
meduprocesni kana! (cev), 492
medusektorsk i razmak, RO
rnemorija. 156-!70
X088, 70 1--705
asocijativna, 442, 526
atrakciona, 605
DDR, 160
DRAM. l6X
EDO, 169
EEPROM. 170
EPROM, 169
tlcs, 170
FPM, 168
763
kd. 3X, 74-77,290-295, 589-594
osnovna, 66-78
PROM, 169
SDRAM. !6LJ
,.

768
predikacija, 416-418
pred vidanje programskog skoka,
2lJ6-30l
dinarnicko. 2lJ8-300
staticko, 300-30 l
prefiksni hajt. 263, 355, 387
preimcnovanje registra, 301-306
prckidacka algebra, l36
prekidna tacka, 724
prckorcdni bater, 311
prckoredno izvrsavanjc, 30 l-306
prclaz, 7.75
prenos blokova magistralom, 184-186
prepisivi CD diskovi, 97
prepletena rnemorija. 597
preplctcni signal. 575
pretvaranjc broJcva i; jednog hrojcanog
sistema u drugi.
preunni-dekodiraj-izvrsi. ciklus. 57.
prcvazidcna magi strala. 188
prcvmli laL, 505
kompajlcr. 7. 506
s dva prolaska. 520
prevodcnjc, 2-4
prijcrnnik signala s magistrak, 175
prikrivanjc kasnjcnja. 641
primnpn:dajnik signala magi,trak. 175
princip lnkaln<hti. 76. 433
principi projcktovanja. RlSC, 57-58
prirucna bihliotcka. 53'!
prirucni hafcr. 59
prisluskivanje I K7
pristupni /eton. 489
prisulan signaL l 66
problem 2000. gudine . .\5
problem pruizvodac-rotm,<tc. 45l)
problem referenciranja 52()
problem relociranja. 5.ilJ
prucedura. :'95-4()0
za ohradu gr6kc. 4112
proces. 426
pruces asemblirallJ'I. 52() -527
procesor. II( 49-57. 171 173
proccsor matrica, 63-65
procesorska doslednost. 586
procesorska magistrala, 562
procesorski cip, 17 [ -1 73
program, l
na ascrnblcrskom je;.iku, 716
PSW, 320, 336. 4-+6

za povczivanjc, 528-539, 7!6
programabilni logicki niz. l4X-150
prugramabilni ROM, PROM. 169
programerski poziv. II
programiranjc na ascmbkrskorn jeziku,
6')3-696
prcgkd. 694-696
programitan ula;./izlal. 381
pmgramska klopka. 402. 707
programska nil. -+92
pmgramske p-niti. 493
programski bwjac. PC. 50. 2JS . .'20. 696
prngramsko vlaknu. 495
pmgrc:-;ivnu skcniranje. 575
prola1. za pm:ive. 447
pro!:v:lk asemblcra. 52()
pn,log proccdttre. _illl)
pn>nta;aj 29.1
pmmasiv<mjc stranicc,
prt'IIIC11ljiVa Lhll>v:\. .fl)4
pr1pu.sni op.'>C,Z proc2sora. (J(l
pro"lcd!va:ljt' h2(1
prustor ti;ickih adrc:,a. -r2X
prostur l<lrki. 6.)2
[iiPsLur virtuclnih aJrcsa. -+2:-\
pro,r,)rna lokalnost. 29 l
a;hitektura proccstlra, SP.-\RC'.
-+1-42
upkuda. l5.2--J55
pr<1sin\ anJC znaka.
protukol, ! IJ. 21 i. 565
prdtl)k_ol n1agi.-drak. l7J
prntukul ;a lnlcrnct, !iJ. 5!1(,
pn,kkPl ;a udr/av<mjc kohcrcntnosti
590
592
_.,
i
f
f
f'
i

t
t
:
I
'r
lndcks 769
protokul za razmcnu hipet1eksta, HTTP,
565
protnkol za uprav ljanje prenosom. TCP.
565
zaglavljc. 5h'i
prsten, 610
prvi prolazak. 7 l 7
.. prvi pogudak --. al:>ritam, +-+ l
.,prvi unutra- prvi il,lpuljc", algoritam,
435
5 13-5 15, 694" 719
putanja, 483
putanja pudataka. 6. 50. 229-242
Mic-1, 238
Mic-2, 278
Mic-.1, 282
i\lic-4. 287
vn.:mensko rasporcuivanje dogadaja.
2Jl-233
putanja s paralclnom obradom podataka,
2SI
R
r<tl'unai I \S. 17
rctcunar prv e generacije. 16-19
ra.:u:iar sa slo/.cnim skupom instrukcija.
CIS(, 56
r::.:un<:r :-.a smanjcnim skupnm
in.,tru]-:c:ija, RfSC. 'i6
i ClSC, 56-57
i'rinc.:ipi prdJCktovanja, 57-58
raCi11u:i ..:'ctvrtc gcncracije. 23-25
raCuturi druge gcneracije, 19-21
r,t(un,tri trCL'e gencracije. 21-23
raCunari za igranjc . .\2
ra,::u:urikt zverinpk.
raCunski ccntar, 23
radi<1]r,k 1 cntna identi rikacija. 2lJ-3()
r<:dni d:r<:kturijum, 483
rad:ll skup. 432--+34
radni taU. l 55--156
raspid. f.ll8
rasporcdivanjc posla na multiracunaru.
628
rasterizovanje. l 12
rastersko skeniranjc, 104
razdclnik. l 18
razdvojeni kd, 77, 290
raz1omak. 684
realni rdim rada, 337
rcc. 6l), 703
red kc:Sa. 76, 292, 590
Red Storm, 616--620
red za poru kc, 492
rcdundantni niz jeftinih diskova,
Reed-Solonmnov ki\d, SO
refcrentni test, 50S
rcgistar, 6, 161. 335-336. 696
rcgistar H. 238
rcgistar instrukcija. 50. 320
registar mikroinstrukcija. MfR. 239
rcgistar opste namcne, 697
regis tar pomcrac za istoriju grananja. 30C
n:gistar s kmlovima uslova. 700
registar sa indikatorima .. 136, 700
rcgistar sirinc bajla. 703
rcgistar sirinc rcci, 703
registar za adresiranjc memurije. 233.
238
registar za bafcrovanjc mcmorijskih
podataka. MBR. 235, 238
rcgistar za memorijske podatke. 233.
rcgistar za opkod, OPC, 238. 257
registar za podatke, DX. 6l)8
rcgistarski prozori, 341
registarsko adrcsiranje, J5l)
rcgistarsko adrcsiranje uz indcks, 704
registarsko pomcranje. 704-705
rckurzija, 379
rckurzivna procedura, 395
relativna grdka, 685
relativna putanja. 483
rclociranje, dinamicko. 533-539
rc;ctka, (Jl 0, 642-64-+
rczcrvisana stranica. 478
-..,..
J
766
OCP-IP, 563
odeljak za podatke (DATA), 717
odeljak za tekst (TEXT), 717
odlazna obrada, 569
odlozeno kesiranje, 295
odrediste (operand), 702
odredivanje rastojanja, 121
ograniceno deljenje rcsursa, 557
oktalni brojevi, 673, 718
okvir, lJ2
lokalnih promenljivih, 243, 245
stcka, 699
stranice, 429
omega nuda, 595
Omnibus, PDP-8, 19
Open Host Controller Interface, OHCI,
217
operacija, 547, 633
operacije na magistrali, 184-186
opcrativni k6d. 228
opcrati vni sistem, I 0, 425, 46 7 --4')8
CP/M, 23
istorija. 9-11
OS/2. 24
UNIX, 467--470,476, 480--48(,,
491-494
Windows. 4 70--4 79, 486--49 I.
4lJ4--4'J7
opkod. 228
opseg boja. I 13
opticki disk, 07-99
Orca. 633-b35
organi;.acija men1orije. 161-165
OS/2. 24
Osborne-!, 24
osnova hmjcanog sistema. 673
pretvaranje iz jednog sistema u drugi,
675-677
osnovni ( korcnski) direktorijum. -1-81
osnovni hlok. 30()
osnuvni razvodnik. 214
osnovni ula.cno-i/.lazni sistem. BIOS. 83
ostrva (na povrsini CD-a). 91
osvdavanje memorije, 15. 168
otrovni bit, 308
Indeks
otvorena arhitektura usluga u resetkama,
OGSA, 644
otvoreni kolektor. 175
m:naceni moduli, 677
oznaka, 694
p
paket, 21 I, 564, 608
paket selva reda nozica, DIP, 144
paket za potvrdu, 212
palcta boja. I 07
paralelizam
na nivou instrukcija. 59-63, 545-552
na nivou procesora. 63-o6
na pmcesorskom cipu, 544-563
paralelna ohrada pudataka, 59-61
!\.1ic-3. 285
Mic-4. 280
Pentium4, 311-314
Pentium I. 61-62
sedmostepena, 286--280
UltraSPARC. 317-320
zaHnj, 297
paralclna vinuclna 627
paralelni ul;u/izlaz, PIO, 218
pararnetar makroa. 517
parcijalno dckodiranje adresa. 220
particioni>anje deljenih resursa. 556
Pascal. Blaise. 14
PCJ magistral a. 102, 20 l--208
signali. 206-208
transakcije. 208
PDP-I, I')
PDP-8. !9
PDP-I!, 23
Pc1Hium 4. 186-192. 384-387
adrcsiranje, 369-J 70
formati instrukcija. 355-356
futografija. 3':!
Hanujske kule, 407---1-08
I
J
lndeks
instrukcije, 384-387
istorija, 38--41
logicki raspored izvoda, 180-1 tJ I
magistrala. 19 1-192
mikroarhitektura, 309-314
prcdstavljanje, 36--41
preglcd nivoa ISA, 337-338
pmblemi, 411--413
tipovi podataka, 348
virtuelna memorija, 442--447
performanse multiracunara, 636,641
Amdahlov zakon, 638-639
hardverski pokazatelji, 636-637
pobo!jsavanje, 636-641
postizanjc, 639-641
prikrivanje kasnjenja. 641
sol'tvcrski pokazatelji, 638-639
peta generacija racunara, japanski
projckat, 25
petlja, 379--380
piksel. I 07
PlayStation 2, konzola. 32
podesavanje programa, 509
podizanJe prograrm.kog koda. 306
podrazumevano adresiranje, 705
podrucje konstanti. 245
podrucje metoda, 245
podsi-;tem okruzenja. u Windowsu XP.
474
podsistem Win32, 475
pogodak u kdu. 293
pokazivac, 360
pokazivac instrukcije. lP, 696. 700
pokazivac na lokalne promenljive. LV.
238. 243. 256
pokazi vac na podrucje konstanti. CPP,
238.245.256
pokazivac okvira. 338
pokazivac baze. BP, 700
pokazivac steka, SP. 238, 243, 256. 699
pokazivac vrha steka, TOS, 238. 256
pokazivac za citanje/upisi vanje. 715
pokazivacki i indeksni rcgistri. 699
poludupleksna linija, [ 17
polusabirac. 15 1-152
poljska notacija. 363-366
pomerac, 151
pomocni indikator prenosa. 700
popunjena stranica, 4 77
767
poredenje arhitekture, 322-323
poredenje i uslovni skokovi, 377-378
POSIX, standard, 468
postfiksna notacija, 363
postojana memorija, 169-170
postrojavanje bajtova, 69-70
pustansko sanduce, 496
potprogram, 37X, 712
za obradu prekida, 404--406
potpuna clupleksna linija, 116
potpuna povezanost, 610
potpuni sabirac. 151
potpuno deljenje rcsursa, 557
potpunu usaglasavanjc. 181
potrosac, 459
potrosna roha, 34
povezivac, 528
povezi vanje
dinamicko. 535-530
MULTICS, 536
objektnih modula, 532-533
poslovi koji se pri njemu obavljaju.
528-531
u UNLX-u. 539
u Windowsu, 536-539
vreme vczivanja. 533-535
povoljno kruzenje. 27
povratno kesiranje, 295. 592
poziciono nezavisan kod. 535
pozitivna logika, 143
poLivanje procedure. 378
PPE sklop. 568
prava zavisnost. 284
preambula, 80
precnik mrde, 608
precizan prekid, 304
predajnik signala za magistralu. 175
,
-
772
T
tahcla
glubalnih dcskriptora, 442-444
grananja, 315
istinitosti, 136
loLLinih deskriptora, LDT, 442-444
simhola, -'i20, -'i26-527, 717
qranica. 428
za d<Jdeljivanje datotcka, rAT, 486
;a prcvodenje, 44l)
ta rutiranjc, 740
tack a po incu, dpi, II 0
tacka ukrstanja, 5lJ4
takson01nija paralclnih racunara, 582-584
tankoslojni tran;.istor, I 06
1 astatura, I 03
TAT-12/13, 28
tclcfonska kompanija, 117
lelckomunikaciona oprerna, 115-123
tdcvi;.ija visokc vcrnosti, HDTV. 576
tcsno spregnuti, 544
TFT ekran. I 06
tipovi instrukcija, 372-394
tipovi pudataka, 346-349
brojcani, 346-34 7
ostali, 347-348
TLB hater, 317,447-450
proma;aj, 449
tl)k, 469
tok i;:vrsavanja, na nivou \SA, 3lJ4-406
grananje, 394-3l)5
korutinc. 400-40 l
procedure, 395-400
programskc klopke, 402
sistcmski prekidi. 403---1-06
torba s poslovima, 633
turka. 632
transparentan, 42l)
tran;:istor, pronalazak. 19
tranzistursko-tranzisturska logtka. TTL
136
trazcnJe. R I
trc;iranjc. 435
TriMedia, proccsur. 547-552
tristabilni ureL1aj, 165
trostruko indirektni blok, 485
TX-0. 19
TX-2, 19
u
u pipeline. 61
UART, 217
uhodna (varnpirska) racva, 564
ucitavanje. 528--539
pozi vanje, 712
udesno poravnata rcc, 374
ugractcni racunar. 25
ugradcno OR, 175
ulancavanjc urcdaja. 182
ulaz/izlaz, 99-128, 31\1 -31\4
ulazna tacka, 532
u1aznu-i;lazni uredaj i
CRT monitor, I 04
digitalni fotoaparati, 123-125
magnctni diskovi, 79-90
rnisevi. I 07-109
modcmi, I I 5-117
lndeks
monitors ravnim ckranom, l 05-106
opticki diskovi. 98-99
starnpaci. I 09 -I 14
tastaturc. I 03
telekomunikaciona oprema. I 15--12_3
tcrminali. I 0:2-107
UltraSPARC 31\7--390
UltraSPARC l, -+2
UltraSPARC Ill, 193-197
adresiranje. 371
hafer za podatkc. 195
furmati instrukc:ija. 356-357
Hanojskc kulc, 408. 410
im,trukcije, 387-390
istorija, 42
mikrotrhitektura, 314-320
prcgled nivoa lSA, 339-342
tipovi podataka, 34:-\
virtuelna mcmurija. 44 7 -450
Indeks
UltraSPARC Data Buller IL UDB II, 195
UMA procesuri, 583
urnrdenc radne stanice, NOW. 584
unakrsni prekidac, 594
unama instrukcija, 375-377
UNICODE, 126-121\
uni verzalna serijska magistrala, 213-217
USB 2.0, 217
UNIX
poveL.ivanje, 539
ulamo-izlaznc operacije s
480-41\<1
upravljanje procesorn, 491-494
uvod.4h7-470
virtuelna mernorija, 4 76--+ 77
unutrasnjc fragmenliranje, 436
UPA arhitcktura. 195
upisivi CD, 94
uporedno projektovanje. 25
uprav1jacki program za ureLtaj (drajver).
473
uprav1jacko skladistc, 55, ns
upravljanje proce,om
UNIX. 491-494
Windows XP, 494-497
upravljacki signal, 233
upravljanje mikroinstrukcijama. 2:17-242
upucivanje iz sk!adista na ucitavanJC. 31-+
urezi (na povrsini CD-a). 91
USART. 217
uslovno izvrsavanje. -+ 16
uticniea. 468
utrki vanje. 459-463
uvozna bib1iotd.a, 538
uzajamno i.'>k1jucivanje, 49J
v
v pipeline. fJ I
VAX, 55
VCL 5h3
vcktllr prekida, 186, 404
vektnrski procesor, <14-(,5
vektor-,ki rcgistar, <14
velicina stranice, 436
vcoma dugacka rec za instrukcije,
VUW, 545
vertikalno iii perpendikularno
zapisivanje, 81
veza,4R3
vezni segment, 536
video RAM, l 07
virtuelna masina, 3
virtuelna mcmorija, 426-450
i kcsiranje, 450
Pentium 4. 442-447
UltraSPARC IlL 447-450
UNIX, 476-477
Windows XP, 477-479
virtuclna organizacija, 642
virtuelna topulugija. 62S
virtuclnc ulazno-izLune opcracije,
450-457
imp!cmentacija, 45:2-457
UNlX. 480-486
\Vindmvs XP. 486-491
vinuclni registar, :2-i2
773
virtuc\ni rt:Zim rada procesora SOR6. 3c7
virtuelno kolo. 212
vinuclno prulanw rutir::nJc, 61 'i
VIS instrukcijc. 42
visak. prcdstavljanje 678
visenitai rad. 'i52-55S
najcdnonl 552-558
ni,ke rem1ucije. 553
vi-,oke rezoiuciJC- 552
vi;cstcpcna 1-..omuttcHHla mrcLt, 594
Vun Neumann, John, 17
Vc\n0<cuman:mva ma;in::. 18
vremc vczi vanrt. 533
vrcmensLa !tJkaltwsr, 29 I
vrcmen,ki D 151\
vrcmensk.i pruccp. 297
vrcmetd .. i SR kc. 157-1:'\S
vremcnsku uskladivanje racLt
17'7-179
vr!() visuk '>lcpen inkgr,tci;e. 23

774
w
Wattcl, Evert, 693
WEIZAC, 17
Whirlwind l, 18
Wilkes, Maurice, 8, 54
Win32 API, 475
Winchester disk, 81
Window.-;, 25,470. Vidcti i Windows XP
istmija, 24
puvezivanje, 536-539
Windows 95. 471
Windows 98.471
Windows NT, 471
Windows XP
ulazno-izlazne opcracije s datotekama,
486-491
upravljanjc procesom, 404-497
uvod,470-476
virtudna mernorija, 477-479
Wozniak, Steve, 23
X
X Windows, 4 70
Xeon, 3lJ
r:".
Indcks
z
zaglavlje, 211
zancmarivanjc definicije segmenta, 716
zaokruzivanje, 685
zapocinjanje (pravljenje) proccsa, 458
zastarcli podaci, 589
zastoj, 284
zastoj paralelne ohrade, 297
zastitna harijera, 565
zatvorcnost, 6 72
zavisnost citanja od upisivanja, RAW,
284
zavisnost tipa WAR, 303
zavisnost tipa WA W, 303
zbirni propusni opseg, 637
Zelena knjiga, lJ4
Zilog Z8000, 55
Zuse, Konrad, 15-16
zvezda, 610
z
zcton, 561
Zuta knjiga, 92
d ,;:( ~ ~ ~ t ; ~ ~ .. t ~ ~
------J.
OAUTORU
Andrew S, Tanenbaum je diplomirao na Masacusetskom tehnickom institutu
(MIT) a doktorirao na Kalifornijskom univerzitetu u Berkliju. Trenutno je profcmr
racunarskih nauka na Univer;itetu Vtije u Amstcrdamu (Holandija), gde vodi Grupuza
racunarske sisteme. Dvanaest godina bio je dckan Vise skole za racunarstvo i digitalnu
graliku- meduuniverzitetske institucije za istrazivanja naprednih paralelnih, distribui-
ranih digitalnih gralickih sistema. Januara 2005. godine, odustao je od te funkcije.
Ranije se havio istrazivanjem oblasti programskih prevodilaca, operativnih sistema,
mrda i lokalno distribuiranih sistema. Danas svoju paznju prvenstveno usmerava na
hezhednost racunarskih sistema, narocito u dornenu operativnih sistema, mrda i vdi-
kih rl'gionalno distribuiranih si'stema. Sva ova istrazivanja su mu omogucila da objavi
prl.'ko I 00 recenziranih radova u casopisima i zbornicima s razlicitih skupova.
Prof. Tanenbaum je napisao i zamasnu kolicinu soft vera. Bio je glavni projektant
sort vera Amsterdam Compiler Kit, uveliko koriscene alatke za pisanje prenosivih pre-
vodilaca, kao i MLNLX-a, malog klona operativnog sistema UNIX, namcnjenog studcn-
Lima, za vdhanje programiranja. Taj sistemje motivisao Torvalda Linuxa i posluzionw
kao baza za njcgov Linux. Zajedno sa svojim doktorantima i prograrnerima, Tanen-
baum je pornugao pri projckwvanju sistema Amoeba, lokalno distrihuiranog uperattv-
nog sistema visnkih performansi, zasnovanog na mikro.Jezgru. Posle togaje uct.:stvmao
u projcktovanju siroko distrihuiranog sistema Globe, namcnjenog za opsluZivanje ui-
lijarde korisnika. Ovaj softwr se sada mo/.e besplatno preuzcti sa Intcrneta.
Tanenbaumovi studenti proslavili su se jos i vise nakon sto su cloktorirali i onje
Lbug toga veoma ponosan. U ovom pogledu vcoma lici na kvucku.
Prof. Tanenbaum je clan asocijacijc ACM, instituw IEEE, i cbn je H<>land>ke
kraljevske akademije nauka i umetnosti. Dohitnik je brojnih nagrada iz oblasti obrain-
vanja: ACM nagrade (Karl V. Karlstrom) za izuzetne uspehe u nastavi 199-1-. godine.
slicne ACM/SIGCE nagrade 19lJ7. godine i, 2002. gudine, nagrade Texty ;.a izv;n-
rcdne udzbenike. Clodine 200-1-, Kraljevska akadernija ga je izabrala za jcdnog ud pet
tHl\ ih profesora Akademije. Njcgmo ime se pominje i u publtkaciji Ko je A.o u S\'C'u.
a njegova Web prczentacija je na adresi h!tp:l!tt \\"l\.1".1. nt.n/1-u,!l.
I
I
t
I
!
i
I
..
Sporazum o koriscenju softvera izdavacke kuce Prentice Hall i ogranii:ena garancija
UPOZNAJTE SE SA SLEDECIM ROKOVIMA I USLOVIMA PRE NEGO STO OTVORITE OVAJ SOFTVERSKI PAKET OVAJ
DOKUMENT JE SPORAZUM IZMlDU VAS IIZDAVACKE KUCE PRENTICEHALL, INC (U DALJEM TEKSTU ..IZDAVAC"). OTVARA
JUCI OVAJ SOF I'VERSKI PAKET VI PRIHVATATE NAVEDENE OBAVEZUJUCE ROKOVE I USLOVE. AKO NE PRIHVATATE OVE
ROKOVE I USLOVE. NEMOJTE OTVARATI SOFTVERSKI PAKET ODMAH VRATITE NEOTVOREN SOFTVERSKI PAKET I SVE
PRILOZENE STAVKE TAMO GDE STE IH NAGAVILI DA BISTE POVRATILI CELOKIJPAN IZNOS KOJI STE ZA NJEGA PLATILI.
1 USLOVI KORISCENJA (LICENCA). S obz1rorn da ste kup11i ovu knJrgu i slol.rli se s rokov1ma i uslovirna IZ ovog Sporawrna, z-
davaC varn drtje prava da konst1te 1 pnkal:uJele kop1ju pr1loZ:enog softversKog prograrna (u daiJem tekstu ,Softver") na JEd-
nom raCunaru (tJ. s Jedntm procesorom), na jt:idrlOJ lokac1p, sve dok ne krS1te us love tz ovog Sporazuma. lzdavaC zadriava sva
prava kop vam fll)e 1znCito dao OVIfTl Sporazurnorn
2. VLASNISTVO NAD SOFTVEROM: Vi vlasn1k samo rnagnetskog 111 liz1Ckog rnedi1urna (prliotenog medljuma) na kame ]e
Softver zabeleZen Iii u nJeQa ut1snut. J.li lzdav:=lC 1 auton Softvera zadrl:avaju sva prava. taplje 1 vlasm3tvo nad Softverorn zabeleZerim
na origtnalnorn rnedt)Urliu 1 SVIfn sledeC:irn kop1jama Sottvera. bez obZira na obl1k ill mediJUrTl u koJirna ong1na111i kopl)e mogu poslojall.
Ovde naveden1 uslovi konScen]a ne podrazurnevaju bilo kakvu proda)LJ, nit1 ong1n.1la. n1t1 kop1J3, varna
3. OGRANICENJA U POGLEDU KOPIRANJA: Ova) Soltver 1 pnloZP-nl Stampan1 materiJal 1 pnruCn1k za koriSCenJe ( .. Dokurnenta-
clja'J podleZu prop1s1ma o autorskom pravu. Na P,ojedmaCne p1oymme na med11urnu polaZu prava nJttlovl auton. Za neke od prograrna
na met11Jumu ntwphodn, su posebn1 sporrtzum1 o konScenJU. Aka namerrtvate da koriS\ite nok1 od takv1h programa. morale da proCtt3.le
i poSiu]Pte pnloiene uslo'JP flJihovog konScenja Ne smete aa kop1mte DokurnentaciJU d1 Soltver, os11n Sto Sottver moZete kop1rall samo
jednom kJ.o rezervu iii 11 art11vske svrtm Srnatracete se zakonskr odgovornrrn La svako koprranje 11! krSenJe autorskrh prava koj1 su pa-
sredno ilr neposredno prouzrokovam nepoStovilnJern navedtmlll ogranH5enja
4. OGRANICENJA KORJSCENJA: Softver ne smete kor!sll!l preko mreZe 11! ga r1a bilo koJi naCin kor1strti IStovrerneno na vrSe od
JPdnog odnosno tem11113la. MoZete I1Z1Ck1 prem-:11 Softver s Jednog na .Jrug1 raCunar. poo uslovom da se u Jed nom trcnutku
nstr samo na Jednorn od nJih. Ne smete drstnbUiratl kopiJB Softvcm Iii Dakurnentacrje drug1m licrma Softver r1e srnete podvrgavatt re-
verLnom inierlJcnngu, disast-)fllbhranju, dekornpaJiimnJu. nJega 1 Ookufllentacqu ne smete nwnj;JII, adapt1rat1. p1evod111, n1t1 prerrtdll':ltl
beL pretllodne p1smene saglusnost1 lzdavaCa
5 OGRANICCNJE lJ POGLEDU PRENOSENJA NA DRUG!\ LICA. Na pr!loen1 Softver ptavo konScen1a dob1jate samo VII to
vo sene n10Z:e n1 na kogJ. drugog bez p1srnene Svako moodobreno prer1oSenw Sohvera 110 CIL
ga l1ca rezulluJA trcnutn1rn r,1sk1d<1nJen1 ovog Spomzuma
6_ TRAJANJE SPORAZUMA Ova ltwnca )e na snaZI sve dok tra1e Sporaz.um. L1nmca automatsk1 d<1 vaZ1 - bez o:Jd-
voStav;tnJ<1 ad strane lzdciV(l(':a - 1 poslJ]P n1Stavna ukol1ko odstup1te od uslova Iii o<::;rrtniCHflj3 nJenog Po prekidu val:er1p li
cencc obave.u11 ,;te da unrSI1!c DoKurnentclciJU 1 sve hop1JC Sottvera SVf: st.:wke SporOJ.LUrTld se odnose na garanCIJe ogran1Cenja
odgovornost1. nadoknade :li :;tP.te, kao 1 o naS11n pro.v1ma vlnsnJstv,1. ostaju s;1J.L1 1 SporaLuma
7 OSTALO. OvaJ Sporazum 1e u skLJdu so zakonuna
davaCJ., ntegove liliplc 1 opunomocen1ke.
8. OGRANICENA GARANCUA I GARANCIJE lz.ddvac garcul!Uji-J da Soitver, e1ko se Korrs!1 u <C:k.l;t(JU s
Dokumen\.::lCIJO!n, rad1t1 unaka kar..o te optsdno u DokUI11tH1trtCiJI lzdclv:-JC ne d3 et; Soitver iSPUIIil: vaSe il1 del
Ce raJ brt1 prcK1d.1 .II oreSuka. lzdavaC qarcmiUJt.l ria ,:e rrlPdijtiiT1 na k.orT:8 Seaver 1sporuCu)8 b1tr bt-'!.: u matuplu
11zrcJdl tokom Dt:r1odJ. iJrl trides.-;t 1:30'1 dc1nn. ad d;mu kupov1nc V::1Sa jeC11r'a rnogucnost 1 1r:d1nd r;oa,Lzrt l::c;,w1.ca
1este da, tzboru iii vru!Jte stavku z:a Koju '/rtZI q.:.r;tnCIJa LIZ pnvrac<Jr bib Kog iZIOSrt
nove<> ko11 za nju il na tu stavku z2mHn1te novorn. Zamena Softver<J .II rnedqur11;1 u rokll ne prndi;Z,'iV,l.
rantnr rok NctvP.dtorld oqran1CC;na CJ3ranCIFl ne obuhv,-,I<J Soltver ?a lzJavaC u
krmScen. ln::>tdltr<Jfi. mef1Ji11l !II c;te gil v1 uoropdst:il GAR.A,NCIJA. iZI\J,\'-"-G NE SA. IE
NIKAKVE GAflANCtJE. N!TIIZRICJTE. NtTI UKLJUClJJUCI HEZ
GARANC!JE U POGLEDU TR2:1SNE VREDNOSTI I POGODNOSTt ZA OLlF{EU!.:NLJ S\/:-lHLJ OSIM :\IAVt;::DE:".ih-1 G.C.,RN<CUA IZ
OAVAC NE l1ARANT\JJE. N! 11 iSTA U POGLEUU KOR!SCENJA Ill FH2Ulif\TA t<::JF:IS(:;HJJA SUFI v'E!1A J.'\/I,.SPb<-
TA NJIHOVE ISPRAVNO.S II I. POUZOANOSTI AUTENTit.NOSTI I
IZDAVAl; Ill r-.jJEGOVI NAf\.1ES l ENICt, AC;ENTI. DOGAVLJACIILI Nl U KGM BrT: S:V1J\TRA-
NI ODGOVOHNiM Zt\ 81LG KAKVE: SLUCAJNE, POSREON[, IL! ETE iviOGU N;:...S-1\T:
Z80G. ll_l U \/EZI SA DATOM lJ OKVIRU OVOG SPORAZUMA. ILl ZA f:\NAi< KOF::;JsCi:N.,A., 'JlJB1 lA:<
TAKA. GUB!l.i\K PHil iOCA ill PHOFITA ill ORUGE GUBtTKE. NAS IAL!:: KAO RlLULfA r PO\/;:_,EOIV!N.jA BlLO f<L\_;E JS()8E IU
t<AO P.EZUL-:-..\T GUSt fKA iLl DSTECENJA IMOV!Nf:: Ill ZAHTEVA TRECIH LICA C!\K I r ADA iZL<\VA,:: IL! NJCL10V
Ni PREDSTAVNIK 810 GPOZUF-1EN NA MOCllJCNOST NASTANKA TtKVE STE fE. Ni U Sl_U(;,\JLJ l_iC(lQ\J()qNOS I It:
DAVACA ZA S fEn= NASTALE U VEZI S KORISCENJEM SOF I VC:RA NE MO.ZE

i'IOVC,\NJ I.Zr-.J( )S KC.JI .STC \/\Ill 81LC


DHlJGI PLAT ILl ZA SOFTVER
NEKI Zt\KONODA'/NI SISTEMI Nl OOZVOLJAVAJLJ OllRt\NICENJE PODRAZliME'vM,E G1-\Ht\NC,JE !L.' OUGOVlAiNc)STI
Z/'.. PO:SHEDNE, SPECIJALNE Ill POSLECICNE S rETE. TAKO 'JA llC'rn_::

:;<:ihJ\i'J!I'lr-.J . .'A NE Vl\.:::t:


UVEf<. GNlt\i\
1
CUE IJ OVOM SPOHAZUMU DAJLJ VAM SPECIJALNA PHf\'.'A. P>. VI i E IMATI , 08UGr\ PR\VA
KOJA VAFllflAJU U ZAVISI'JUSTI , __)D LOKALNIH LAKONA
IZJAVJ\
VI ll.J;\VLJUJETE: 0!\ STE PROCtTALI OVAJ SPORAZUM. RAZUMELI CiA 1 SLCJ.7:u SE Of, STE J,\ S[
\/ATE N.JEGUv'iH ROKOVA I I JSl_OVA. TAKODE SE Sl.AZETE DA OVAJ SPOM.,;zur,1 Pi=--it:l-S f!,I,LJt\ PO 1 1 DO-
GOVOn IZMEOU \:A.S I iZDA
1
/ACA KOJt NADIL/\ZI SVE PREDLOGE ILl <JSivi[01F: f--' 1S/1.Nl:. I --lVLi
DRUGU i"".1..Jiv1lJNIKACI.JLJ IZMEDU VAS IIZDAVACA !LI BILO KOG NJEGOVOG PREDS G :""H.E:DME:A
SPORA2U1\1f'<
Ukol1ko :kdk11ih o ovorn Sporazumu ill ZelitG del stup1te u korltakt :.: t.oir1 f..og raLioga. ,JOra::tJ I p1
I011r11 nn c;iede(u 1dre.su
Snort
Pr<:tl!!( rlnt,' PTP.
Lake Str8d
SdcJdle t-\1/er. New JP.rsey 07458

_..
0 softveru koji se nalazi na pratecem kompakt disku
Koriscenje CD-a
Da histe videli sadrzaj prilozenog CD-a, otvorite ga u Web citacu iii otvoritc datoteku
.,indcx.htm".
lmajte na umu daje na ovom CD-u postovana konvencija ,8 + 3" za imenovanje dirck-
torijuma i datoteka. 0 ovome narocito vodite racuna pri instaliranju asemhlera i simu-
iatora za proeesnr 80:-)8 na svim piatformama. Na primer, ako sledite instrukcije za
komandnu liniju operativnog sistema koji koristite, umesto ,8088_tracer" moracete cia
upisete ,8088_tra".
Sadr:laj CD-a
Komplct alatki za proccsor 8088: ascmhlcr i simulator
Moze se pokrenuti na hiio kojoJ od ;,kdecih platfurmi: Microsoft Windows. in-
tei/Linux (little endian) iii SPARC/Soiaris (big endian).
Okmzcnjc za simulaciju i\IMV za pn>ccsor Mic-1
Okru/enje jc napisano na jeziku Java n! i treha da se izvrsava na platformi Java.
Potrehan softvcr i hardver
Za izvrsavanje aplikacija sa CO-a potrehan je siedeci hardver i softver:
1-lardvcr i operativni sistemi:
Pentium llna -1)0 tv!Ht (iii hi"Zi) sa operativnim sistt:mom Microsoftc"l Win-
dow/'0: Server 2003. XP Professional, XP Home Edition, XPMedia Center
Edition. XPTablct PC Edition. 2000 Professional (za instaliranje su potrebni
SP3 iii novija vcrzijal. 2000 Server (za instaliranje su potrcbni SP3 iii novip
verzija), Windows tv! E. Windmv s lJ8 ( l. iii 2. izdanje). iii
lntci/Linux (little end ian J piatforme: Red Hat 9.0. iii
1\lacintosh: Mac OS X I 0.:1 ( samo i\'lic-1 tvllviV), iii
SPARC/Solaris (big end ian 1 plat forme: Solaris 8-10 (samo plat forma SP/\RCJ
10 1\IB sl,1bodnog prostora na Cvrstom disku
CD urecta1
Web citac 1 Internet Explorer 6.0. Firc!"ux. 1.0, fvlt,zilla 1.7.x iii Safari 1.2)
Veza sa lnkrnetom - pouchna samo ;a preuzimanje dndatnog softYera fnpr.
vcr;ija)
Rezoiucija d:ran:1 od ROO x 600 pik,ela (minimum)
JRE nkru/.enje Sunove Javcr"
1
verLij.: 1.-1 (samo ako se instal ira softvcr 1.a :\lil-1)
l!siu..'ni program za .zip daloteka ( samo akn irnatc nameru da
menjate i ponovo pre1 oditc iLvornc suftvera za pn;ccsor !vlic-1)

-,
'
Knjige Mikro knjige su drugacije.
Evo zasto ...
Svaka knJIQa Mikro knjige je paziJivo uradena.
Mi obJavljuJemo knjige naJbOIJih svetskih i domacih autora kOJi 1maJu tehn1cko
znan1e i sposobnost da svo1e znanje prenesu u jasnu pisanu rec. KnJige
stranill autora najbolji prevod1oci prevode za nas. Nasi urednici 1
saradn1c1. koji su i sarni racunarsk1 i jez1cki strucnJaci. vise puta citaJu tekst i
proveravaJu tacnost i razumiJivost. Proveravaju se svi listinzi prograrna i pri-
meri, a posebna paznJa posvecena JB demistifikaciJi upotrebe racunara.
Za svaku knJigu pravi se detaljan indeks poJmova i spisak konscen1h terrn1na.
Sve knJiqe grafick1 oblikuje i priprema za starnpu nase strucno i odlicno
opremljer1o tellnlcko odeiJBrlJB. Svaka strana nas1l1 knjiga pr1prerna se
U VISOkOj rezoiUCiji, S[O ll Slampi daje OStre i precizne tekstOVB, Slike i bOj8
KnJIQB stampamo u najboljinr stampariJama i na najkvalitetnijem pap1ru.
Dve deconije radnog iskustva 1 traJnO usmerenJe na naJvisi kvalitet, cine
Mikro knjigu vodec1m izdavacem ir1formaticke literature. lzdanJa Mikro kr;Jige
pomogla su stot1nama hiljada ljudr da uspesno koriste racur1are. Nadamo se
da ce pomoc1 i vama.
' :.J
..

Potrebbero piacerti anche