You are on page 1of 389

Jos jcdtu izuzetnJ knjigJ profcsorJl\mcnbauma.

RJcUtLlr se posmatra bo hijerarhip u koJOJ st


JU -;v.1kon1 nivou obJvljJ neka dohro dctlnts,ln~l 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 u~vrtorn 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 ~IJ51, kuj1 nijc nov, .1h jt inoko rJsprmtr.111JC11 zbog niske Ltl1e i obilj<1 suti:s·er:J.

Knjigu posebno odlikuju:


• i\JLtlizc~ \JVft.'lllt..>llih uLI!IlU-i!Ltzlllh un:d~l_]<l, Ltu ~tu su dtg-It.tlnl foto.1pJrati, I )Sl_
1 kJbln\·~ki lntcrih.'t
• I kLlljiLI ob_J.tSll_]l'IJ}i Ill.l~!;l~tr:tk PC: I Expre'i~ i nov1h L' () t":JI)l)Vc\
Nivo
• lCtznutLHljt:' uguLkllih \l'itL'llU ~J objJ~11JclV,Illjem ulngc pnJl'c'~nr.l lntL·l H().) 1 assmblerskog
jezika
• UnutL1;llJO:-.l l\·ntiunu -+- nl!kroJrlutcktur.t NcrBur~t
• ()p~lrll\l r.lZitUtr,UlJl' 1qL1klnih ,trhitt'k.tur.t 1 r.ll~lllULl
a PrJtl'l:I C:l) 'iJ ,JLtkanu ZJ 'lllllllhr:lllJl' IZ\T;.JV,l11}t pmgr:mu
NIVO
ILl pn>ll''oOrlllLl .')(II')~ 1 {\lie-! operativnog
s1stema

Predavaci mogu da traze nastavni materijal od izdavaca,


na adresi www.prenhall.com/tanenbaum

0 autoru
/\ndrt'\\' s.-Lilll'llluu11l jl' prufL''olH LH."ll\Llr.'.Lih \LtllLllU UnJ\"l'rLitctll \"riJC ll Alll~(t'rd.t!llll, ~dl
Vc..'l~ J(l gollin.t prcd.tje pr'-·dlllL"tc 17 nbLt'>Li oq.::;.lllLLlLIJC r:ll:utLtra, opcrJtlvnlh "istL'lll,l i 111rc~'.l
N.1ptc.,~u1 je 1 _:) hL''itSt'kLl knj1 .'>ll tl'iVO_pli hru_11ll' iLl~',T,Hk .ISt.lLlj:Kije /\l J'v\ 1 dn1~1h :'\trul'ndt ur~~.l-
111Z.1CIJ.l. (1.11l.IL' """·1j.1c·Ijc .ACiVI, 1mtitut.1 llL;F. 1 Hoi.!lhhk,· kr.Ji],·nh· .tk.1dL'1lli]C n.1Llk.1

ILIJlll'tiln'>tl.
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.

il
~

~l)'~i
~-:~~;· .
~\;c ' ,.
j ;{) ''-I ,--,)--:)/
'/...;;~.:

Ostali Tanenbaumovi bestseleri


Racunarske mre:Zc, 4. izd:mje KfbMIA CA CO-om
(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, ARHITEKTURA
svc do najviscg sloja aplikacija, obradcne ~u mnogc vaLnc teme. ukljucujuc'i be1icnu
komunikaeiju, opticka vlakna, protukole sluja vcze podataka. Ethernet. algoritme za I ORGANIZACIJA RACUNARA
usmer:.~vanje. performanse rnrda. bezbeclnost. DNS. clektronsku postu, USENET ve-
sti, Web i multimediju. Temcljno su opisani i TCP/lP i Internet. Prevod petog izdanja

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 Andrew S. Tanenbaum
obuhvata i principc uperativnih sistema i primenu till principa na realm~ .sisteme. U njoj
Univcr::.itcr Vrije
su detaljno opisani svi klasicni operativni sistcmi. Kao ilustracija principa korisc'en jc
Am.\·te n!wn, H o!ondiju
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- Prc\·eo
ge i detaljno je uhjasnjen u Lckstu. Dejan Smiljanic

Savremcni opc1·~ttivni sistcmi, 2. izdanjc


Uv!odcm Opemting Systems)
U ovum iscrpnom delu detaijno su obradeni principi savrernenih operativnih sistema. -~--- --·----·-''i
a ilustrovani su brojnirn prirncrima iz prakse. U prvih pet puglavlja (posk uvuclnog).
aulor sc bavi osnuvnim pojmovima: procesima i nitima. kruznim blokadama. upra- I1 .-.::.11r:·1. x:- \\- tsyo ~ -l
-1 . \'
vljanjem memorijum. ulanw-izlaznim operacijama i sistcmima clatotcka. U narednih
scst pnglavlja obratluje ';lo,'cni.JC tcme: multimedijske sisteme. \·i~epmccsorske sistc-
~----- I
i1 1/,'-m. 6p. L<1.{1Lil.( --i
me. be1bednost itd. Na kraju detaljno analizira dva konkrctna operativna sistema: .,. , ____.._) -~--- I
UNIX/Linux i \Vinduws 2000. I__ !
! ·- . I
Distrihuirani sistemi: principii modcli lI[-----·--·-
C> p. )I . -·-·· --·----~ t
(Distributed Systems: Prillciplcs and Paradigllls)
\ ' . ,..., :. '\ i I !')
Ova nova knjiga, ko.JU je autor napisao Lajednu 'i Maartenorn \an Steenom. ohuhvata ! ';: . ~-\J~: ~:.: L
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.
Arhitcktura i organizadja raCunara, prevnd 5. iLdanja

Reccnzent Darkn MilutinoviC


Glavni urednik Olga Milanku
Stel;..~ SpasiC i SncZana I3isemC
Redaktori
Vc~na DukiC
Lektor i korektor
Tehnicki urcdnik Milica Decansk:i
Realizacija knrica NataSa Pavlov
Prclom teksta i obrada slika Sanja TasiC
Milica DeCanski
N;HdSa Pavlov

Mikrn knjiga, Beograd


Po.\'\'ec'eno Su::.wzi. Burha;i i Marvinu, kao i uspomeni na Brama i Sviti rr
IzUavaC
Direktor Dragan Tanasko')ki

Stampa 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 Mikrn k.njiga Mtkru knjiga
P. fah 20-87 Jcvrej'b hh Mabimirska 13
JJ()}(J Beograd 7XIIOO Hanja Luka I 0000 Zag rc h
tel: llii/JS-10-54-1 tel: 1!51/220-%0 tel: 01/23-14-023
p1 sma@l:li k roknj 1 y,l. co .yu pl smalar:·i krPknJ 1yn ba 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. ckktron~hi 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 T.lncnht~lllll. r\ndrc\V S .. publi~hcd by 1-'e;trson Educati1H1, Inc.. publi~hing 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,rPnt·j,li(ltj<l IJV0.'ll!1o._,ll(IIJI1


I l<lp•lll!lol l)I!Cl.Hilll'CK:t f_;Cllf'j).t11

OO,L:2

1.·\Hl.ll!;,\)i~l, f~Hi\j'l~ ('


Ar!utekllail 1 llrg,un.c.tclj,l ra('tlll<lr,l /
<\:1dn·w 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:_;,llll7dlif•rl T;Jf!!'!lho~,illl. -\1~tln•w S - Ti1az
SOU -· (_) ;_1uton1 str T(tl - l\·~.L!Io.;t;u

ISBN qiK-SI)-IS;):) :) l 'l-i

AORT"/c'!'i/:041i7iM~IililW116S3cl'7111 5 .J-' 2

~.~ c;;,t~-='1;~~
·~~~···~~-·

: _;, : ..
~ (~ ,~ P:~ ~<
' -._ ; -~~ : ~~;;

~-~l;;'l
il<;;'~
~?" SADRZAJ
w~

r~"':}
,r,~
,;",;-

;~..;<;-
~f-;J;~ PREDGOVOR xvii
'"+.!

~l
1 UVOD 1

I. I STRUKTURIRANA ORGANlZACIJA RACUNARA 2


I. I. I kzici, nivoi i virtuelne ma~ine 2
, ..Jt I 1.1.2 Savrerneni racunari s vise nivoa 5

=\:~
I. l.l Evolucija racunara s vise nivoa 8
1 1.2 KLJUC:--.IE TACKE RAZVOJA ARHITFKTURE RACL1NARA 13

:·'>>~ ~ 1.2.1 Nulta gcneracija- rnehanicki raC:unari ( 1642-ll)45) 14


_•,j '
' ;:. ~-

1i
. 1.2.2 Prva gcneracija -elektronske ccvi (1945-ll)55)
1.2.3 Drug:a generacija- tranzi~tori ( l955-1l)65) 1l)
lfJ

1.2.4 Treca generacija- integrisana kola ( 1965-1980) 21


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 Spcktar racunara 28
1.3.3 RaC:unari za JCdnokratnu upntrebu 29
1.3.4 Mikrokonlruleri 31
1.3.5 Racunari za igranje 32
1.3.6 LiC:ni racunari 33
1.3.7 Scrvcri 33
1.3.8 Skup radnih stanica 34
1.3.() C:entralni raC:unari 35

vii
~ s~~ ~~ ~
·--~~--~-·

1.4 ODABRANI PRIMERJ PORODICA RACUNARA 36 2.4.5 Telekomunikaciona oprema II S


1.4.1 Uvod u Pentium 4 36 2.4.6 Digitalni fotoaparati 123
I .4.2 Predstavljanjc cipa UltraSPARC Ill 41 2.4.7 Kodiranje znakova 125
!.4.3 Cip sos1 43
2.5 SAZETAK 12R
1.5 METRJCKE JEDIN!CE 45

1.6 PREGLED SADRZAJA KNJIGE 46 3 NIVO DIGITALNE LOGIKE 133

3.1 LOGICKA KOLA I BULOV A ALGEBRA 1]4


2 ORGANIZACIJA RACUNARSKIH SISTEMA 49 3.1.1 Logicka kola 134
3.1.2 Bulova algebra 136
2.1 PROCESORI 49 3.1.3 Implementiranje Bulovih funkeija 13~
2.1.1 Organizacija procesora 50 3.1.4 Ekvivalcntnost clektronskih kola 140
2.1.2 Izvrsavanje instrukcija 52
2.1.3 RISC i CISC 56 3.2 OSNOVNA KOLA DIGITALNE LOG IKE 143
2.1.4 Principi projektovanja savremenih rai"unara 57 3.2.1 lntegrisana kola 143
~

b
2.1.5 Paralelizam na nivou instrukeija 59 3.2.2 Kombinaciona kola 145
2.1.6 Paralelizam na nivou pruccsora 63 3.2.3 Aritmcticka kola !50
' 3.2.4 Gencratori radnog takta 155

I
~"'i}..P.'
2.2 OSNOVNA MEMORIJA
2.2.1 Bitovi 66
2.2.2 lvkmorijske adrese
66

67
3.3 MEMORI.JA 156
3.3.1 Lee kola !56
~~-.·
~""~ 2.2.3 Postrojavanjc bajtova 69 3.3.2 flip-tlopovi 159
·.J 2.2.4 Kodovi za ispravljanje grcsaka 71 3.3.3 Rcgistri 161
#
2.2.5 Kes memorija 74 3.3.4 Organizacija memorije 161
2.2.6 Mcmorijski pakcti i vrste memorije 77 I 3.3.5 Mcmorijski Cipovi 165
3.3.6 RAMi ROM memorija 168
2.3 SEKUNDAR~A ME:vlORIJA 7S
2.3.1 Hijerarhija memorije 7S 3.4 PROCESORSKI CIPOVI I MAGISTRALE 171
2.3.2 Magnctni diskovi 79 3.4.1 Procesorski cipovi 171
2.3.3 Diskcte S2 3.4.2 Racunarske magistrale 173
2.3.4 IDE diskovi S3 3.4.3 Sirina magistrale 175
2.3.5 SCSI diskovi S5 3.4.4 Vrcmensko usklactivanjc rada magistrale 177
2.3.6 RAID S6 3.4.5 Arbitriranjc magistral om I~ I
2.3.7 Kompakt disl-.m·i 90 3.4.6 Operacijc na magistrali I ~4
2.3.X Upisi,,i kompal-.t dio,kuvi 94
')7 3.5 PRIMER! PROCESORSKIH CIPOV A I ~6
2.3.9 Prepisivi kom]Xtkt disknvi
3.5.1 Pentium 4 I S6
2.3.10 DVD diskovi 97
3.5.2 UltraSPARC Ill 193
2 ..i.ll Blu-Ray 99
3.5.3 (:ip~05l 197
}j ·. 2.-t ULAZ I lZLAZ ')9
.1.6 PRIMER! MAGISTRALA 199
\' -~ ' 2.-+.1 C\lagistrak !()() '
2.-+.2 Terminali 102 I 3.6.1 ISA magistrala 200

''f j 2.-U :Vl isevi 107 I


,,
3.6.2 PC! rnagistrala 201
3.6.3 Magistrala PC! Express 209
~~rl i 2.-+.--1 Stampaci 109
3.6.4 Uni vcrzalna serijska magistrala 213
[_f.
~'
li
!'vco 11
(;l;~r!i_-­
~~·~_f:.~ ..
~d-
XI
X Sadr:laj Sadrzaj

3.7 POVEZ!VANJE 217 5 NIVO ARHITEKTURE SKUPA INSTRUKCIJA 329


3.7.1 Ulazno-iz1azni cipovi 217
3.7.2 Dekmliranje adresa 219 5. I PREGLED N!VOA ISA 331
5.l.I Svojstvanivoa!SA 331
3.8 SAZETAK 222 5. I .2 Memorijski modeii 333
5. I .3 Registri 335
227 5. I .4 [nstrukcije 336
4 NIVO MIKROARHITEKTURE
~ 5. I .5 Prcgled nivoa ISA procesora Pentium 4 337
5.1.6 Pregied nivoa ISA procesma UltraSPARC Ill 339
4.1 PRIMER MIKROAR!I!TEKTURE 227
5. I. 7 Pregicd ni voa ISA procesora 805 I 342
4.1.1 Putanja podataka 229
4.1.2 Mikroinstrukcije :2_15 5.2 TlPOVl PODATAKA 346
4.1.3 Upravljanje mikroinstrukcijama: 1Vlic-l 237 5.2.1 Numcricki tipovi podataka 346
5.2.2 Ostali tipovi podataka 347
4.2 PRIMER !SA ARHlTFKTURE: UVM 242
5.2.3 Tipovi podataka Pcntiuma-+ 348
4.2.1 Stckovi 242
5.2.4 Tipovi ptJdataka procesura UltraSPARC Ill 348
4.2.2 :\lemorijski model TJVM ariJitekture 244
5.2.5 Tipovi podataka procesora 805 I 349
4.2.3 Skup l.JVM instrukcija 246
4.2.4 Prevodcnje .lave u l.JVM 24<J 5.3 FOI<MXrl INSTRUKCIJA 350
4.3 I'RliVIER liV1PLE:\1ENTACl.JE 25! 5.3.1 Projcklni kritcrijurni za format instrukcija 350
4.3.1 Mikroinstrukcije i notacija 2S2 5.3.2 Prosirivanjc opkodova 352
4.3.2 Impicmentir,mje .-;kupa IJV:'vl in:.;trukcija 5.3.3 Furmati instrukcija Pcntiurna 4 355
pomocu prucc'sur~l i\ lic-1 25f> S.3.4 fonnati instrukcija procesora UitraSPARC lH 356
5.3.5 Formati instrukcija proccsora 805 I 357
4.4 PRO.IEKTOV,\:--.J.JE NJVOA .\IIKROARlinEKTL,RE 2(1S
4.-ll Odnlls b;·,-inc: i ccne 2116 5.4 ADRESIRANJE 358
4.-1.2 Skr accnje priUlljC izvr~;l\ anja .?.70 5.4.1 Nacini adrcsiranja 358
+.-LJ RcScnjc "l prcu1.in1anjcn1 in:--.trukci_l~l unapre~._i: 5 .4.2 Neposrcdno adrcsiranje .159
proccsm :\lic-2 277 5.4.3 Direktno adresiranjc 359
4.4.4 Par:ddna obrad:t: pmces<;r i\lic-.c 2"7' 5.4.4 Registarsko aJrcsiranjc 350
4.-t.S SL·dill<J-;kpc:n:t parctkl:l~t (lhnda: procc':,or :\ltc-4 26h 5.4.5 lndirektno rcgistarsko adresiranjL~ 360
5.4.6 lndebnu adresiranjc 36!
4.5 POBOL.lSc\NJE FERJ··Ul\.,\ll\l\:Sl 2c>() 5.4.7 Bazno-inJcksno adre-,iranje 363
-1..~. l i'-:c\ lllL'!1h_-_,ri_ja 2 )0 1
5.4.8 Adresiranje na steku 3113
~ ..'1.2 P:-cdYidanj~ rrn~ranhkog Sh:.dka 5.-+.9 Nacini adresiranja za instrukcijc grananja 366

I
2l)()
-+.5.3 P:-._~J...orcdno i;.vr~:_t\ ..ll1jL~ i pr2il1lL'I~\_)\<UJjc rcgiSL~~ra _)() 1 5.4.!0 Ortogonalnost opkodova i nacina adresiranp 367
4.5.+ Sj'ck.ulativrw i1vr,;a1·anj.: 3011 5.4.11 Nacini adresiranja Pentiuma 4 369
5.4.12 Nacini adresiranja pmcesora UitraSP/\RC Ill 37 I
4.() l'RL\lUU 0J'vfli\ i\JI:r..RU \P.!llTEKTU~E 30c>
SA. I 3 Nal'ini ;tdrcsiranja proccsora S05 I 37l
4.n. I il.likrcarhitcltii:·:. pr•JCe;;ora 1\~ntium-+ 3()')

Ii
5.4.14 Zavr~ne napomenc onacinima adrcsiranja 371
-:.o.2 i\lrk.-e~;,rilltc'Liur:.i pnlt:t:St>l':t UkaSPA.l\C-111 C>r 3 !-+
-1-.!1._; .\lik.:·:o:trilitektu;·a JWlc:csill.l SO:' I 320 5.5 T!POVI INSTRUKCIJ.\ 372
5.5.1 lnstrukcije za premcstanJC pmlataka 37 3
-1.7 PUEl:DE!\JE f'RUCL:SUR...\ PE0iTIL I\1, liLTR,\Sl',-\kL I ::-.05l 3 22
5.5.2 Binarnc opc·racijc 374
-1-.S SX?ET\K :123 J

l
xii Sadrzaj Sadr:laj xiii

5.5.3 Unarne operacije 375 6.1.8 Virtuelna memorija Pentiuma 4 442


5.5.4 Poreuenje i uslovni skokovi 377 6.1 .9 Virtuelna mernorija na procesoru UltraSPARC III 447
5.5.5 Instrukcije za pozivanje procedura 378 6.1.1 0 Virtue1na memorija i ke;iranje 450
5.5.6 Upravljanje petljama 379
5.5.7 Ulaz/izlaz 381 6.2 VIRTUELNE ULAZNO-IZLAZNE INSTRUKCIJE 450
5.5.8 lnstrukcije procesora Pentium 4 384 6.2.1 Datoteke 451
6.2.2 lmp1cmcntiranje virtuelnih u1azno-izlaznih instrukcija 452
5.5.9 lnstrukcije procesora UltraSPARC III 387
5.5.10 Instrukcijeprocesora8051 390 6.2.3 lnstrukcije za rad s direktorijumima 456
5.5.11 Poredenje skupova instrukcija 390 6.3 V!RTUELNE INSTRUKCIJE ZA PARALELNU OBRADU 457
5.6 TOK IZVRSA VA.N.IA 394 6.3.1 Zapocinjanje procesa 458
5.6.1 Sekvencijalni tok izvrsavanja i grananje 394 6.3.2 Utrkivanje' 459
5.6.2 Procedure 395 6.3.3 Sinhronizovanje procesa pomocu semafora 463
5.6.3 Korutine 400 6.4 PRIMER! OPERATIVNlH SISTEMA 467
5.6.4 Programske klopkc 402 6.4.1 Uvod 467
5.6.5 Sistemski prekidi 403 6.4.2 Primeri virtuelne mcmurije 4 76
6.4.3 Primeri virtuelnih ulazno-izlaznih upcracija 479
5.7 DETALJAN PRIMER: l-IANOJSKE KULE 407
5.7.1 Problem l-Ianojskih kula na asemblerskom 6.4.4 Primeri uprav1janja procesima 491
jeziku Pcntiuma 4 407
6.5 SAZETAK 497
5.7.2 Problem Hanojskih kula na ascmblerskorn jeziku
proccsora UltraSPARC III 408
7 NIVO ASEMBLERSKOG JEZIKA 505
5.8 ARHITEKTURA IA-64 I lTANIUM 2 410
5.8.1 Problems Pcntiumorn 4 411 7.1 UVOD U ASEMBLERSKl JEZIK 506
5.8.2 Model arhitekture lA-64: forsiranje paralelnog rada 413 7.1.1 Sta je asemblcrski jet.ik' 1 506
5.8.3 Proredivanje obracanja memmiji 413 7.1.2 Za sta treba knristiti asemblerski jezik'l 507
5.8.4 Rasporcdivanje instrukcija 414 7.1 .3 Format naredbe na asemblcrskom joiku 5l0
5.8.5 Smanjenjc broja uslovnih skokova: predikacija 416 7.1.4 Pscudoinstrukcije 513
5.8.6 Spekulativno ucitavanje 418
7.2 M.\KROl 515
5.9 SAZETAK 419 7.2.1 Ddini,anjt:. pozivanje i prusirivanjc makroa 515
7.2.2 Makroi s pararnetrima 517
6 NIVO OPERA TIVNOG SISTEMA RACUNARA 425 7.2.3 Naprdne mogucnosti 51~
7.2.4 lmplcmcntiranje mchanizma za rad s rnakroima
6.1 VlRTUELNA MEMORIJA 426 u asembkru 519
6.1.1 Straniccnjc 427 7.'3 PROCES ASEI\Il3LIRANJA 520
6.1.2 lmplcmcntiranje straniccnja 429 7 ..l.l /\:,cmbkri 'Lh a prola:,ka 52()
6.1.3 Stranicenjc na zahtcv i model radnog skupa 432 ! 7.3.2 Prvi prolazak 520
6.1.4 Pravila zamcnjivanja stranica 434 7.3.3 Drugi prolazak 524
6.1.5 Velicina stranicc i fragmentiranjc 436 7.3.4 Tabcla -,imbola 526
6.1.6 Segmcntiranje 436
6.1.7 Imp!emcntacija segmentiranja 440
~!i'':t:'·~
iM,'
~~.
;?.:~f"i­
'$
r!;
liV
Sadr:laj Sadr:laj
xiv

9.1.3 Nivo digita1ne 1ogike 652


7.4 POVEZIYANJE I UCITA YANJE 521\
9.1.4 Nivo mikroarhitekture 653
7.4.1 Posluvi koje obavlja program za povczivanjc 529
9.1.5 Nivo arhitekturc skupa instrukcija 6'i3
7.4.2 Struktura objcktnog modula 532
9.1.6 Nivo operativnog sistema racunara 654
7.4.3 Yreme povczivanja i dinamicko relociranje 533
9.1.7 Nivo asemblerskog jczika 655
7.4.4 Dinamicku povezivanjc 535
9.1.8 Arhitekturc para1e1nih racunara 655
7.5 SAZETAK 53lJ 9.1.9 Binarni brojevi i brojevi u formatu pokrctnog zareza 657
9.1.1 0 Programiranje na asemb1erskom jeziku 658

8 ARHITEKTURE PARALELNIH RACUNARA 543 9.2 ABECEDNI SPISAK LITERATURE 658

X. I Pi'\RALELIZAM NA PROCESORSKOM CIPU 544 671


S.l.l Paralelizam na nivou instrukcija 545 A BINARNI BROJEVI
1\.1.2 Vi~cnitni rad na jed nom cipu 552
S.l.3 Vise proccsora na jcdnom cipu 5'iR A.l HROJEVI KONACNE TACNOSTI 671

1\.2 KOPROCESOR! 563 A.2 BROJC:ANI SISTEMI DATE OSNOYE 673


8.2. I lvlrczni procesori 564 A.3 PRETVARANJE BRO.JEYA IZ JEDNOG BROJC:ANOG
8.2.2 Multimcdijski procesori 571 SISTEMA U DRUG! 675
8.2.3 Kriptoprucesori 576
A.4 NEGATIVNI B!Ni\RNI BROJEVI 677
. '~ [
1\._~ SISTEMI S VISE PROCFSORA KOJI DELE iVIEMORIJU 577
i :"
S.3.1 Multiproccsori i multiracunari 577 A.5 BTNAR:"--A ARIT!v!ETIKA 67lJ
J I
8.3.2 Scmantika memurije 584
1\.3.3 Arhitckturc simctricnih UMA multipmccsora 588
B BROJEVI U FORMATU POKRETNOG ZAREZA 683
8.3.4 NlJMA multiproccsori 5Y7
iU.5 COMA nntltipmcc,ori 605
B.l PRINCIPT RADA S POKRETNII\i ZAREZOtvl 684
X.4 :VILJLTIRACUNARI ZASNOVANI NA RAZ!\IENI 606
B.2 IEEE STANDARD 75..1 ZA BROJE\E l; FORil.l.'\.TU
8A.I Mrczc Dt intcrrw pmezivanje kompunenata multiracunar~t 607
POKRETNOG ZAREZ.A, 6S6
8.-U MPP nntltiral"un;tri -- cvrstu sprcgnuti paralclni pruccsnri 611
1\.4.3 Klastcri racunara 621
693
1\.4.4 Kumunikacioni soth er za multiracunare 626 c PROGRAM!RANJE NA ASEMBLERSI<OM JEZIKU
8.4.5 Raspurcdivanjc p<>'ila 628
·!!' 8.4.6 Memorija dL~ljena na nivou aplikacijc 62l) C.l PREGLED 694
8.4. 7 Performam:e 6.16 C. I.! Asembkrski jczik. Cl'J4
C.l.2 Kratak pmgram na ,1Scmbkr:;kclll1 jeLiku 695
S.5 RESETKE RAC'UNARA 642
(· C.2 PROCESOR g()l\8 6'J6
S.6 SAZETAK 644 C.2.1 Procc'iorski ciklus 6l)(J
C.2.2 Registri opsk namcnc hlJ'
9 SPISAK KORISCENE I PREPORUCENE LITERATURE 649 C.2.J Pokazivacki regi,tri 6i)!J

C.3 1\!E:\IOI\!J,'\ I ADRESli<ANJE 7UI


lJ I STA Bl.IOS TREB \LO PROC!TAT! 64'J C._~.l Organizacija mcnJorijt' i 'c:::::nc'rHi 7U I
lJ. 1.1 Uvod i opsta lit<:ratura 649
C.3.2 Adrcsir~tnjc 7•12
9.1.2 Organizacip racunarsJ..ih sistema o'i l

li
.. \!i
\;
~;c~

xvi Sadr:laj
~~;
~t!

I' 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
C.4.5 Pozivi potprograma 712
710
PREDGOVOR
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
U prva cctiri izdanja ove knjige negovali smo idcju da se racunar moze posmatrati
za procesor 8088 720
I· kao hijerarhija vise nivoa, od kojih se na svakom obavlja neka dobro defini~ana
funkcija. Ta osnovna koncepcija vazi Janas bas kao sto jc vazila i u vreme kada jc
C.6 SlMULATOR 722
C.6.1 Komande sirnulatora 723 knjiga prvi put ugledala svetlost dana. pa smo je zadriali i u pctom izdanju. Slicno
1: prethodnim izdanjima, i ovde su detaljno razmotrcni nivo digitalne logike. nivo mi-
I~ C.7 POCINJEMO 725 kroarhitekture. nivo arhitckturc skupa instrukcija. masinski nivo operativn6g sistema
C.8 PRIMER! 726 i nivo asernblerskog jczika.
Iako je osnovna struktura knjige zadrzana, u pelo izdanje uncle su mnogc sitnc i
C.8.1 Primer Hello World 726
krupne izmene. pa knjiga potpuno prati brz razvoj racunarske industrije. Tako su. re-
C.8.2 Primers registrima opste namene 729
cirno. za primcre u ovom izd:mju uzeti racunari sa savremcnim komponcntama. To su
C.i\.3 Instrukcija Call i pokazivacki registri 73 I
Intelov Pentium 4. Sunov Ultra-SPARC Ill i lntelllV 8051. Pentium 4 je primer popu-
C.8.4 Otklanjanjc gresaka iz programa za ispisivanje niza 734
larnog mikroprocesora koji sc koristi u stonim racunarima. UltraSPARC Ill Je primer
C.i\.5 Rad sa .makovnim nizovima i odgovarajuce instrukcijc 736
popularnog servera koji se naveliko koristi u srcdnjim i velikim multiprocesorima. tj.
C.8.6 Tabele za usmeravanje 739
C.i\. 7 Baferisan i direktan pristup datotekama 7-J.l u sistemima s vise proce!>ora.
Mozda ce nekog iznenaditi to ;to pominjemo jJfOCesor ~())_l jer se taj cip dostojan
postovanja vee decenijama nalazi na trzistu. :V1~uutim. zahvaljujuci hrzom razvoju
SPISAK TERMINA KORISCENIH U KNJIZI 747 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
INDEKS 755 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 so~s po\to jc t~iJ cip ogoljcna vcrzija
i;uzctno populanwg Pentiuma. Mogao sam prikazati a'cmbler za Ultr~1SPARC.
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

i' XYii

li
~r·~·- xviii Predgovor Predgovor
-------
xix

~:j i~pravljanje grdaka u asemblerskom kmlu veoma slozen posao. uz knjigu sam pri- Osim alatki za programiranjc na asembleru. na Web lokaciji se naiaD i grat[cki si~
~n loho i nekoliko alatki za ucenje programiranja u asembleru, a medu njima asembler mulator koJi se koristi uz poglavlje -+.Simulator jc napisao prof. Richard Salters ko-
!~
"~
f i -;irnulator za 8W\8 u verzijarna za Windows. UNIX i Linux_ Ove alatke nalaze c;e na !edb Oberlin. Studenti ga mogu koristiti da bi shvatili principe koje objasnjavam u
~ i pratdem CD-u ina Web lokaciji posvecenoj knjizi tpogledajte dalje). tom poglavlju. Zahvaljujcm se prof. Salteru na softveru.
Q Osim slika koje postoje u knjizi. na Web Jokaciji se nalaLe i prczentacije u PO\ver-
~ Ova knjiga je :-. vremcnom poprilicno narasla, sto je bilo neizbezno jer se sama
fl lc'rna neprestano razvija i znanje o njoj ~e gomila. Zbog toga, kada se knjiga koristi Pointu. poscbno namenjene predavacima. Aclresa lokacije je
ij
k~lll !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
h!lp :IH· •\'\ 1·.pre 11 hoi/. (·1 Jilt!! 1111 en/Ja wn
'"* pog!:t\ :_ja I. 2 i .l. prvi deo poglavlja 4 (zakljucno sa odeljkom 4.4) i poglavlje 5. Na Web strani pritisnite hipervezu ka uvoj knjizi i u meniju potrazite informacije
~
t;. i'reu.-<taio vreme se moze ispuniti ostatkom poglavlja 4 i clelovima poglavlja 6, 7 i 8, 1.a instrukture.

~,- prcma <lllOlllt' na S!a instruktor ze!i da Stavi leZiste. Predavaci koji na osnovu pve knjige drzc univerzitetske kursevc. mogu dobtti
U nastavku se navode vdc izmene cctvrtog izdanja. Poglavljc I i claljc sadr-Zi pre- prirucnik s rcsenjima problema od predstavnika izdavacke kuc'e Pearson Education.
B glcd i.,tmije arhitckture racunara, u komc isticcm nacin na koji se stiglo do danasnjeg Mnogi ~u procitali ovaj rukupis (ili njegovc clelove) i dali mi korisnc predlogc iii
~ l S\l mi na drugi nacin pomogli. Moju;:ahvalnost po,cbno Lasluzuju Nikitas AIL~xandri­
l l stanja i navudim kljucne tacke na tom putu. Dalje opisujem sirok spektar danasnjih
~ I
.. l" di:.. Shckar Bmkar, Herbert Bus, Scott Cannon, Doug Carmean. Alan Charleswt1rth .
~~ racun:mt i ukratko obraJujem racunare kujc ~am izabrao za glavne prcdstavnike (Pen~
~ ,. tium-1, UltraSPARC Ill i 8051). Eric Cota-Roblcs. Michael Fetterman, Quinn Jacobson. Thilo Kiclmann. ltlat K:ui.
.~
U poglavlju 2 azuriran jc materijal koji sc odnosi na ulazno-iLlazne uredaje i Saul Levy, Ahmed Louri. Abhijit Pandya, Krist Petersen, Mark Russinovich. Ronald
~ !·
• ! Schrucder i Saim Ural. Hvala svima na nesebicnuj pomoci .
istaknuti su proizvodi savremene tehnulogijc, kao sto :-.u digitalni fotoaparati, DSL i
j i, kablovski Internet. Zelim takodc da se zalwalim Jimu Goodmanu ;a njegov doprin<lS ovoj knjizi, na-
i !
l'oglavlje :1 pretrpelo je izvesnc izmcnc i sada se u njcmu bavrm racunar~kim ma~ rocito u poglavljirna-+ i 5. Njegovaje idcja da upotrchimo Javinu virtuelnu masinu i
gisrralama i savremenim u!azno-i;laLnim cipovima. Uncia su tri nova primera sa ob- knjiga)C zbog toga postala samo holja.
'i
j ja.,njcnjima na nivou cipa. Doc!at jc i nov den o magistrali PC! Express La koju sc Na kraju. zelim da se jos jednom zahvalim Suzanne. 7.a SVll ll_)Cilll Ijubav i strplic-
·~ ocekujc dace uhrzo zameniti magistralu PC!. nje koji nisu nestali ni posle 15 objavljenih knjiga. Rarhara i Man in su :noja vecn<1 r:t-
l'oglavlje-+ mluvek jc bilo omil_jenu mesto za objasnjavanje rada racunara, pa jc 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,
·1 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. nslobodivsi me tom prilikom nekih njcnih m:m_)e po:l.cljnih asp-;:kata (Ll<l sto '11 bcs-
Puglavlp :'i, 6 i 7 w;tala su skoro nciLinenjcna_ osim stu su osavrcmenjena novim k,macni i dosadni sastanci), zbog cega sam im ncinncrno zall\ ;tlan.
1 primerima. U poglavlju 6 se kao primer umestu Winduw'a NT sada koristi Windows
Andrevv S. T~tncnbaum
XP. ali to mimmalnu utice na nivo objasnjavanja.
1
Poglav!_je 8 je tcmcljno preraJeno kako bi odrazilo sve aktivnosti u ve1.i s paralcl~
., nim racunarima. Ono ohuhvata pet razlicitih klasa paralclnih sistema, od parale!izma
na jednum l'ipu 1paralcli;.am na nivou instru kcija, viseni tni raJ na jed nom cipu i mul~
'f l
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-
,l' pre-;tanih pr<lJllena. Vi~l' 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 CD~u ina \Veb lnkaciji
posvecenoj knjiLi. Dodatak C je napi:.ao dr Evert \Vattel sa univerzireta Vrije u Am- I
..

~
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
4 ;,
t~
~~
~~
,'''!.I~
~.; '

'
I
I
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.
I: Pro veri da li je zadati broj nula.
a:
~ Kopiraj skup podataka iz jednog dcla mcmorijt: racunara u drugi.

L
; i
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-
,,:l' nom konkrelnog racunara i njegovim pcrformansama, kako bi smanjili slozcnosl i
~'
rl 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) .
..f
~
~
ii,
I'
L
L\
2 Poglavljc I: Lvod l.l Strukturirana org:mizacija ral'unara 3
~----

Navedeno zapazanje JC s vremenorn dovelo do strukturiranja racunara u niz thije- Program napisan na jeziku L l za njCga prl~dstavlja samo ulaznc podatke. U praksi o;e
rarhijski urectenihJ apstrakcija kojc se nadgraduju jedna na drugu. Na taj nacin se koriste oba nacina. a svc cesce i njihuve kumhinacije.
ovladava slozenoscu racunara da bi se racunarski sistemi mogli projektovati sistemal- Umesto da razmisljatc o prevodenju i interprctiranju, cesto je jednoslavnije zami-
ski, na organizovan nacin. Pomenuti pristup nazivamo strukturirana organizacija sliti hipoteticki racunar - Yirtuelnu masinu (engl. rirtuul machine J koja razume
racunara (engl. strucrured computer organiz.mion). U slcdecem odeljku objasnicemo rna\inski jezik Ll. Nazovimo tu virtucl~>u rnasinu l'vll (a neku drugu koja razume je-
.~ta taj naziv podrazumeva, a poslc toga cemo se pozabaviti razvojem racunara. sada- zik LU, masinom MO). Kada hi se takva ma;i;;a mogla konstruisati uz niske troskme,
snjim stanjem ll loj oblasti i ponuditi neke vazne primere. uupste ne bi bilo potrcbe zajczikom LO iii mt.~inom 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 r~Jt.umc jezik L l hilo pre vise skupo iii
1.1 STRUKTURIRANA ORGANIZACI.JA RACUNARA 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
Kao sto je pomenuto. vel ika je razlika izmedu onoga sto odgovara ljudima i unoga na clatorn racunaru. Drugim rccima. !judi mugu pisati programe za virtuclne masire.
~toodgov<.mt racunaru. Ljudi bi zeleli da urade neko X, ali racunari mo.!!u da urade bas Lw dit one \t varno postuje.
samo V To otvara prublcme. Svrha ove knjige je da objasni kako se takvi prohlcmi [)a hi prevm1cnjc i interpretiranje u prako,i hilo etikasno, jczici LO i L l ne srneju se
mogu prevazici. medw;obno pre vise razlikovati. Chu ogranicenjl~ 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
1.1. I .Jezici, nivoi i virtuclnc masine oheshrabruje kada 'e uzmc u obzir prvobitna svrha pravljenjajezika L I -- oslobadanjc
programera rmrke da algnritarn iska/e jczikom koji mnogo vise odgovara masini ne:~o
Prohlemu se mo:l.c prici na dva nacina. a oba zahtevaju da se stvuri nov skup in- ljudskllj prirmli. ivlcdutim. ,ituacija ipak nije beznaddna.
strukcija koji ljudima vise odgo1 ara od .skupa ugradenih masinskih insrrukcija. Taj Pnu hi nam palona um da trc'ba napravitijusjeclan skup instrukcija kojije, tarn-

I
skup novih in~trukciFl takode form ira jedan jezik koji cemo zvati L l. 1.a razliku od liku l•dje,rika Ll. vi;e priLtgnllen ljudima. a manje racunarima. Taj trdi skup takoJe
masinsh1g je;.ika LO kuJi razume racunar. Ova prildza prohlemu razlikuju sc: unacinu obr<.lluje iuik kuji cemo nazvari L2 t i zamisliti virtuelnu rnasinu M2 koja ga razume).
na koji ral'unar i1.vrsava programe napisane n:t jeziku 1.1. iako vee znarno da racunar Liudi :;ada mogu da pisu progcan:e na jeziku L2 bas kao da stvarno postoji virtuelna
rnoze da izvr~ava samo programe napisane na nje;s,1vum ma;imktlm.wziku LO. i ma~in,t ciji je masin'ki joik L2. Takvi programi se mogu prevoditi najeL.ik Ll iii ih
.Jedan nacin izvr.\avanja prograrna pisanih na jc.ciku L i"}t:S-(-~ -da Se najpre S\aLt
njegova in~trukcija zameni ekvivalentnim ni:wm in~tru!-.cija najaiku LO. T'tko ce se
rezultujuci prugram sastojati iskljul'ivo od itbtrukcija na jeziku UJ. Racunar Ltlb
izvr.~ava nov prugram najeziku LO ume~tu ~ramg prograrnd najcziku Ll. Ova tchnika
I
~
oircktno mozc i?\T~a\·ati ir:terprL'ler pisan najcziku Ll.
S rrav1Jenjcm Cit~ivug 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 il i sve dok se nc oformi jed an je1ik knj i
jc dcov(l)_in" pugnd~m ?a ljud,ku upotrebu. Svaki odjezika u ovom nizu kmisti prethcd-
se nazi va prcvodcnje (engl. tmnslutionl. ~
lll JCI.ih bo ustw\ u. taku d~t r;t~·,tnar koji primenjuje m·u tehniku mozcmo po>matrlti
Drugim nacinom se prugram pi san najeLiku L l ucitava imtrukci_ju P" in~lrukcij•.1,
sv,tka se instrukcija rcdom ispituje i mlmah izvr.~an njoj ~kvivakman ,kup irbtmk-
i~ k~h' ni.~ slnjeYa !engl. Iii nivoa (engl. i<Tefs). poredanihjedan na drugi. kao na
~
slici i-1. :"I~ti;<t!j jelil-: i ni'. ,, ,u najjcdnostavniji. a najvisi jezik i nivo su. naravrlll. naj-
cija najeziku LO. Na taj nacin se i1bega1·a pretlwJno g,~,l<~:·i,any cit<.l\og nuvo::: pro- '¥ \!o7,_·nij i.
l
grama na jeziku LO. Tdmika se zovc simuit:l!HJ prevodcnje, direktnu tum:.Jcenje ili j;
;· va!ctn CHino' itmer.iu jczika i virtuclne masine. Svaka masina ima S\Oj
interprctinmje tengl. inrcJprctotion). a program kuji je J...,Jristi naziq sc interpr~ter
(engl. intt'tpreterl.
l
t
lll<l:;,iihki jc;ik. ,,ts[adjt:ll od )<..iit instrukcija koje 111\lZC da izvrsava. J'vJa;ina l1 Slvari
ddini~l; j•c'/lk.] nh-nu'O. juik cldini~e masinu tj. masinu koja lllOZC da izvrsa\·a SvC
Prevodenje i intnprctiranje stt slicnc tehnikc. l' ,lb:l _,iul:aja ncu!iar izvrsa1 a in- pn';2l'alllC pi~;;;]C iU tom jciiku. :\ara\'110, mas ina koju definise odredcni jczik TllOZC
strukci_je najc7.iku L l tc~ko sro izvrsava ckvivalcnt!Je ni;u1e rn:;trukcija najcnku Ul. da buJe i!.U/d!W slo.ic·nd a r:jc:no riLicku h:onstruisanje od ekktronskih kompuncnata
R.a;likajc u tome stu :;c pri prevudenju ceo prugra:11 p1s"n najcziku Ll najp1c prcve- !11< '-'C kP~Lli i. ~di j:: bl·; uhLira na to ipa!-. rnozemo zamisliti. Mas ina s jezik0rn
dc u program na jl'liku UJ. odbaci >c~ prvi progr~im I L I)_ a nPvi pro~cr"m 1LO 1 uciu ::;e C di C+-'- ili '> je;ikr·m Lt•;;t L:•t) svojim masinskirn jezikom bila bi zaista slu?:em, .t!i
u mcmuriju racunara i izvrsi. 1\Jkom i7vrsa,·,mja . ..tkll\~ltl_Je novi pru:'-r~im (Lil) i <l!l hi se bkll ll1U;2l" n.tpra\ ;ti p,,mocu savremcnc tehnolugijc. Ipak. posloji dobar razl,)g
upravlja re,ursima r~1cunara. cia ;,c !ak~t\ racunar rr:: n~;pr~t\ !: '"i c·enum ne bi ruogao kunkurisati drugim racunari-
Pri interprctiranju. svaka instruh·ija na joiku L I :uuli;ir<t sc' i J'l"l.'VCJJi. a ;:Him ma. TD ~lu ~e Ii<:.<:tu \11t)ie. niJ·: dovuljrw ukoliko u praksi nije i isplativo.
oclmah i.cvrsava. Ne generi~e se nuv program. Ovdc m1crprcicr upr<.tvlja r't:'unan,m.
.
r
!i
'
I
4

Nivo n
Virtuelna masina Mx
s masinskim jezikom Ln
__...~
Poglavlje 1: Uvod

Programi na jeziku Ln
__... interpretiraju se
interpreterom koji se
izvrsava na nizoJ masini
1.1 Strukturirana organizacija t·acunara

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-
5

iii se prevode na njen


masinski jezik
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-
Nivo 3 vice level). Na torn nivou, konstruktor vidi pojedinacne tranzistore koji za njega pred-
Programi na jeZiku L2 stavljaju najosnovnije komponcnte racunara. Ukoliko nekoga zanima kako tranzistor
interpretiraju se interpreterom radi iznutra, morace da prede na polje fizike cvrstog stanja.
_- koji se izvrsava na masini
__... M1 iii MO, iii se prevode
Nivo 2
na njen jezik L1 iii LO Nivo 5 I Nivo jezika prilagodenog problematici

Programi na jeziku L1
Prevodenje (prevodilac)
interpretiraju se interpreterom
koji se izvrsava na masini MO
Nivo 1 iii se prevode na jezik LO Nivo 4 Nivo asemblera

Prevodenje (asembler)
Elektronska kola mogu
~ direktno da izvrsavaju
/~ programe na jeziku LO Nivo 3 Nivo operativnog sistema racunara
Nivo 0

Delimicno interpretiranje loperativn> sistem)


Slika l-1. Masina s vise nivoa.
Nrvo 2 Nivo arhitekture skupa instrukcrja
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- lnterpretiranje lmikroprograrn) iii direktno izvrsavanje

mo da izrazi ,nivo" i .. virtuelna masina" znace isto. Elcktronska kola mogu dircktno
Nivo mrkroarhitekture
da izvrsavaju sarno prograrne pi sane na jcziku LO- nema potrcbe za prevodcnjcm iii Nrvo 1
intcrpretiranjem. Programe pisane na jezicima Ll, L2 ..... Ln mora interprctirati in-
Hardver
terpreter koji se izvrsava na nizemnivou iii se rnoraju prevcsti najezik koji odgovara
nizem nivou. Nivo digitalne log ike
Nrvo 0
Osoha koja pise programe za virtuelnu masinu nivoa n ne mora da brine o skrive-
nim interprcterima i pmgramskim prevodiocima. Sarna struktllra masine llbezbeJujc Stika l-2. Rctl:unar sa sest nivoa. hpod svakog nivoa naznacenje poJr.lani nacin i1.vrsavanja
da se ovi prograrni izvrsavaju na odredeni nacin. Programera ne treba da zanima da li (zajedno sa imenom programa)
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: Na najniz.em nivou o komc cemo govoriti. na nivou digitalne logike. zanimace
programt sc tzvrsava.JU. nas tt.v. logicka kola (engl. gutes). lako su izgradcna od analognih komponenata. kao
Yccinu programera koji kuri,tc masine san nivoa. zanima samo najvisi slnj. onaj slu su tran.ci;,tPri. logicka kola sc mogu precizno modelovati kao digitalni urectaji.
koji sc najvisc razlikuje od masinskogjezika u najnizemnivou. Mel!utim, ako L.elitc da Svako logicku kolo imajcdan iii vise digitalnih ulaza (na koje se clovode signali koji
razumcte kaku racunar runkcinnisc, muralL~ ~c udubiti u sve nivoc. Ljudi koji kunstruisu prelbtavljaju 0 iii I) i izlaz na kome sc pojavljuje neka jednostavna funkcija u\aznih
nove racunarc ili nove racunarske slujevc (tj. mwc virtuclne masine) takode muraju cln- podataka. npr. AND (konjunkcija) iii OR (clisjunkeija). Svako logicko kolo sastoji sc
bro poznavati sve nivoc. Konccpcije racunara i tehnikc njihovog konstruisanja iz niza oJ najvisc nckoliko tranzistora. Kombinovanjcm nekoliko logickih kola moze se na-
uzastopnih ninJa, kao i dctalji samih nivoa. glavne su teme ove knjigc. praviti jcdnobitna memorija. u koju sc mozc smestiti jedna nula iii jedna jedinica. Jed-

Ii
nnbitnc memorije se mogu kombinovati u grupe od npr. 16. 32 iii 64 da bi se dobili

t
l
1.1 Strukturirana or~anizadja racunara
7
6 Poglavlje I: Uvod ----·--------··-----

registri. Svaki registar moze Ja cuvajedan binarni broj ogranicenc velicine. Kombi- J7.rncL1u nivoa 3 i 4 postoji fundamentalna raz!ika. Najniza tri nivoa nisu namenje-
m;vanjem logickih kola moze se napraviti i mikroprocesor racunara. Logicka kola i na proscenom programeru. Oni su prven;.,tvcno mesto za it.vrsavanje interpreter~ i
nivo digitalne logike detaljno cemo doraditi Ll poglavlju 3. programskog prevodioca u cilju pmlrske vi;im nivoima. Te interprctere i prograrns(c
Naredni visi nivo je nivo mikroarhitekture (engl. microarchitecture !et·e/). On po prevodioce pisu sistemski programeri. !judi kPji :-,u se specijalizovali za projek-
pravilu sadrzi skupove od ~ do 32 registra koji cine lokalnu memoriju i elektronsko tuvanje i ugradivanjc novih virtuelnih rnasina. Nivo 4 i nivoi iznad njega namenjeni
kolo zvano ALU (aritmcticko-Iogicka jedinica. engl. Arithmetic Logic Unit) koje su programcrima aplikacija koje treba da rcsaV::IJLI ra;.licite prohleme.
moze da obavljajednostavne aritmeticke operaeije. Registri su povezani sa ALU jc- Druga nnvost na nivou 4 jcste nacin pmli zav;;nja visih nivoa. Nivoi 2 i 3 uvek sc
dinicom i obrazuju putanju podataka (engl. datu path) kojom teku podaci. Osnovni interpretiraju. Nivoi 4, 5 i vi;i obicno -;e. m;;da Jll: uvck, rrevode.
zadatak putanjc podataka je da izabcre jed an ili dva registra s kojima cc ALU jedinica Josjednu r;l7liku izmedunivoa I. 2 i 3. sjednc str,mc. i nivna4, 5 i visih. s dru~e,
I raditi (na primer, da sabere njihov sadrzaj) ida rczultat srncsti u neki registar.
Na nekim racunarima, radom putanje podataka upravlja tzv. mikroprogram. Na
cini prirocla koriscenug jezika. lvlasinski je~:ici nivoa I, 2 i 3 u nsnovi su numericki.
Programi pisani na tim JCzicima sastojc se od dugih nimva hrojeva koji sc dopad;ju
drugim racunarima, putanjorn podataka upravlja dircktno hardver. u prva tri izdanja racunarima. ali ne i ljudima. l'ocev od nivua .f. je;ik se sao;toji od reci i tekstualrih
ove knjigc. ovaj nivo smo zvali ,nivo mikroprogramiranja·' jerje do sada to uvek hio skrac'enica koje za !jude imaju odreLtcno t.nacenje.
sortverski interpreter. Posto putanjom podataka sada cesto (dclimicno) upravlja di- ~ivo 4 (nivo asemhlera) sadrzi mc1~inski je;.ik iz nizih nivoa preveden u skup
rcktno hardver. vee u cetvnom i.(danju smo na odgovarajuci nacin promcnili ime tckstualnih simbola. Ovaj nivo pru7a ljudima mogucno~t da pisu programc za nivcJC
ovog ntvoa.
I, 2 i 3 u tlbliku koji nije tak,, ncprijatan kao je;.ici virtuelnih masina. Programi ra-
li racunarima u kojima se putanjom podataka upravlja softvcrski, mikroprogram pisani u asernhlcru najpre se prevocle na jezik ninJa I, 2 iii 3. a zatim ih intcrpret1ra
je interpreter instrukcija na nivou 2. On preuzima, ispituje i izvr~ava jednu po jeclnu odgovarajuca virtuelna masina ili stvarni racunar. Program koji obavlja prevodenje
instrukciju. koristcci 1.a tu putanju pmlataka. Na primer, im:trukcija ADD ;.,e najprc zove se ascmbler (engl. !Jssemhfer).
preu~:ima, pronalaLe se njeni operandi i prcnose u registrc. iaacunava sc zhir u ALU
Nivo 5 ohicno sadrzi jezike namenjenc programerima aplikacija, kojc treba da
jedinici i na kraju se rczultat upucujc na oclredeno mesto. Na racunaru s hardver:-,kum I resavaju konkrdne pmhkme. Takvi je;:ici se obicno zovujezici visokog nhoa (en,;!.
kontrulom putanjc podataka i1vr~avaju se isti kmaci. aline postoji odreden (zaseban)
program La intcrprctiranje instrukeija na nivou 2. If; high-level louzgunge.l) i ptbluji ih bukv:dno na sturine. Nekoliko poznatijih su C, C++,
Java, LISP i Pnllng. Programe pi~ane na ovimje;.icima, najet.ikc nivoa 3 iii 4 obicno
prcvodc programski prcv,>dioci poznati kao kompajlcri (engl. compilers), mada sc
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
I
~f.
~··
pnnckad i interpretiraju. Primcrcl radi, prugrami pisani na Javi po pravilu se prvo p~e­
vode na JCL.ik 'iican jeziku nivna lSi\ (tzv. Javin bajtkod) koji :-,e zatim interpretir:J.
U nekim slucajev:ma, nivo 5-~~~:;stoji od interprctera 1.a speci11l'nu oblast pri!llc-
nc, k~lt! sto Je simh,]i~;,a m:tkm~ttika. On ubczbc't!Uje pmlatke i operacije za re'iavanjc
nivoima. vee upravo o nivou !SA. Kada se u njima opisujc skup rnasinskih instrukc'i- ~
~~
pmbkma iz te obhsti na nacin koji .,trlll'njaci iL te oblasti lako razumcju.
ja. u stvari :-,e upisuju instruk.cije kojc interpretira mikroprngr:lm iii Kojc iLvr\av~tju
hardverska dektronska kola. Ako hi proiLvodac neki nd svojih modele; ra2un~tra orr~­
mio s dva interpretera, koji intcrpretiraju d\a razliCiU nivoa ISA. morao bi da ohcz-
"
~
~
~
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-
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
i
~
vremcn•J D\hcr·avimo ru net:i•:1e rktalj<: i da tako slozen prohlem svcdemo na nc'sto
.srnislc:no.
nivou ne postoji ina drugim nivoima.) Osim tnga. tu pt><-:tnJi i skup 11lWih instru~,·ijc:. J. Skup •i ['0\ '' ;-•ndatak::. cpcraci::1 i mogucnllsti -;vakog ni voa naziva se njegova artli-
drugacija organi1.acip mcmorije. mugucnost islovremenog iLvrscJV:tllp lh a il1 vi,;;~
t~· tektura. Arhit,~kr.ur·,t -;c: [J,,,,i J'pe~tima 1-coji su vidljivi kori~niku do tog nivoa. (hob ne
prug:rama i jos stosta. Detinicija nivoa 3 varira nmogo vi:;c od dctiniL'ija nivoa I il1 2. ~;;; nivt>a 1-;ojc: 1 idi prngr:tmer (ll['>f". kul icina ra-,poluztve memorije) delnvi su arhitekture.
}{' Aspekti implem,·t:l~H.:i_:l~ (npr. vrsta lelll1oiogije kuja se koristi za ugradnju mcmorije)
Nove mugucnosti nivoa 3 irvrsava interpreter nivoa :2. kc>ji ·;e i; ist<,riiskih rcvl•,ga
1ov~ upnativni sistcn1. lnstrukcijc nivoa .1 koje su identicne instrukc.:tj,una nivua 2 ,ii- l·~Jl
~J..
nisu den arhilc~turc'. Skll!' /n:u:jct putrcbnih .ta prujcktovanje delu\"a racunarskog sistc-
lna kuji ::-,U dt,slnpni 1\·l~Jljivi) ;.1rogran1~~ru. ;ove sL arhitcktura raCunara (engl. coJn-
rektno izvr;ava mikrupro)lram (iii hardver). Jok nove instrukcije i;:vr'a\·a opera! I\ ni 2 !'illa urcf,;rcL·w rc 1. L: prak ~:i, meLhttiJ~<. arhitc:ktura racunara i organizacija raclllura
sisrem. Drugim rdima. neke od instrukc:ija nivua .1 inr'a\·a upcr:ttivni ~isrcm. a nc'L' 6
~
!1:1aju i-.,h1 /rLt('\:!ljl'.
dird.tno mikmprogram. Zato ka/.emo cb je ovaj ni' '' ,,hih·idc:n ... Du kr.tja knjigc. ~
j
ovaJ ni \ 'J L'emu na;i vati nivo operativnog sistema ra(unara ! engl. OfH' uu in.~· sn1 cn1
muchine icl'cli. II
«
I"
!Jr
. ;;
I)'' Poglavljc 1: Uvod 1.1 Strukturirana organizacija racunara 9
8
~Jii
~~
I>

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

l.l Strukturirana or~anizacija racunara


11
10 Poglavlje l: Uvod ----------------

Slicno tome, karticu *DATA mozete smatrati virtudnorn instrukcijom tipa ,izvrsi
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 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
prcduzmu kada on prestanc da radi. sto se cestu dogadalo. Racunar je cesto radio u
nove im;trukcije, pogodnosti i mogucnosti sve dok nije pocco cia lici na nov nivo. Neke
l pra7110l11 hodu doJ..: Sll programcri nu;,a[j J..:articc po prostoriji j[j Se zhunjeno CeSkali iza
od instrukcija novog nivoa bile su iste kao i instrukcijc na nivou !SA, ali druge (narocito
l uvcta pokusavajuci da pronal1u z~t.~to njihovi pnJgrami nc rade kako trcba.
Negdc oko llJoO. god inc doslo se na idcju da sc pr~van hod racunara smanji tako sto 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-
f
t
t
cc sc autumatizovati po;,ao opcratera. Poschall program. nazvan operativni sistem
(engl. Ofi!'mting sYstem). sve vrcme se nalazj,, u r::c·un:tw. Programer je zajedno s pro-
gramom unosio i kontrolne karticc koje jc cit<:u i i.c\rs~:va,) opcrativni sistem. Slika 1-3
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-
! pril-.azujc primer posla koji je ohavljao jedan ,,d prviil ~irokoprihvacenih operativnih tica i rezultat starnpali na linijskorn stampacu. Takva nrganiL.acija rada poznataje Lto
si:,tcrna, FMS tFORTRAi\i Monitor System). na racunaru IBM 709. sistcm paketne ohradc poda.taka (engl. hwch system). Obicno hi proteklo vise sati

I
od trenutka kada jc program stavljcn na ucitavanje do dobijanja rczultata. Pod takvim

•JOB. 549~. BARBARA


oknlnostima bilo jc tdiko razvijati softver.
*XEO Pocetkom ~czdesctih godina, istrazivaci na koledzu Dartmouth. na Tchnickom in-
•FOSTRA.t\J 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
i
udaljeni tcrminali su s cenlralnim racunarom pnvezi vani pomocu tclcfonskih linija.
Program !lOfliS3n Racunaru su istovrcmcno pristupali mnogi knrisnici. Programer jc rnogao da unc~e
no jenku program i da skoro trcnutno dobije odstampane rczultate u kancelariji, u svojoj garaz.i
FORTRAN
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
•DAT.4
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
KHt:ce
s pr;~_ia;::l;;la
jos stosta drugo.

Prenosenjc funkdonalnosti u mikrokod


Kadaje mikroprogr::tmiranjc vee postalo obicna stvar (Sedamdesetih godina). pm-
·E~JD
jektaP.ti su shvatili da nove instrukcije mogu dodavati jednostavnirn prusirivanj.~m
Sl:k:t l-~1 . f'riPJu· jt-d:>()g F\h!:t k1lji (lh,1vlja uperati\ni ">i..,r~..~m Fl'vlS. rnikroprugrama. Drugim recirna, mogli su da dodaju .,hardver" !nove masinske in-
strukcije) pn,stim prograrniranjem. To otkrice je izaHalo pravu eksploziju skupnv~!
i• 11! ·'i·''cmjc: :1~.;1~1\a•' Luticu 1'1013 i infornwcije s nje koristio ,ra brojanjc. masinsk!h instrukcija. stc je bio rcLU]tal rnedusobnog takmiccnja programera cia <l<l-
1K<111lruinc K~tl tic1: 'u cJZlt:ICd\'<lttc L\c:zdicum dane bi bile protumacenc lao kart icc pravc ~to vcc'i i bolji skup. Mnoge instrukcije nisu bile u pravom smislu nove- njihov
s pmc:ramc'tll li1 ' J'•ldacima.l S1s:cm jc kasnijc ueitavao karticu *FORTRAN -in- efekat se rnog<tn postici i koriscenjcm postojec'ih instrukcija. ali su nove im,trukcijc po
,rrukcijt~ de~' !il:l.~ncr,kc u-a;;.c uc!u nrcvodilac FORTRAN-a. Ucitani prevodilac bi pravilu davale re.w!tatndto brze od postojec'ih. Na primer, mnogi racunari imajtl in-
t,;cLt p:.._;, c·" P"'O'L<i!i ,,i,;;;it na r:t)R;·;.~A\1-u. Kada bi prevmlilac zavrsio svoj zadatak. strukciju INC ( uvecanJe za jedan. engl. INCrement). koja JC .cadati broj uvecaval<: za
H<:ti" bi k<liltrolli <.lf'•:rat!\nom -;i:,icmu. knji bi tada ucitao karticu *DATA. Tojc hila jedan. Posto su takvi racunari imali i opstu instrukciju ADD. uvudcnje nove instrukcij':
/d I/\!',,!\ ;lnjc [.,,.C\ CdCilu: j1l'U[2I':lll1a lt1j i [)0! reh!lC podatke UCi ta Va S h<if- za doda\anjc brojajedan (iii, npr. broja 720) nije bilo ncopliodno. :VkJutim. instruk-
ll~a kt·j~~ \l' n;tL:/t..' iL~l k~tni,_:~ :<]).-\T·\.. cija INC jc po pravilu radila nesto brze ml instrukcije ADD, pa je zadr:lana.
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: /cLc· \ill,;:rati , !nuctno!1l ln-..tru"-cijcqn tipa ,,prcvedi progr:..un··.
1

~
~
_..
ffii'· ~
t·'
~ 12 Poglavlje 1: Uvod 1.2 Kljui'ne tai'ke razvoja arhitekture rai'unara 13
;;
·j,

~ Iz slicnih razloga mikroprogramu su dodavane i mnoge druge instrukcijc. To su 1.2 KLJUCNE TACKE RAZVOJA ARHITEKTURE
cesto bile:
RACUNARA
1. !nstrukcije za mnozcnje i deljenje celih brojeva.
Da bi se stiglo do digitalnog racunara kakav postoji danas. projektovano je na
:2. lnstrukcije za racunanje s brojevima u formatu pokretnog zareza.
stotine razlicitih vrsta. Vecina je davno pala u zaborav, ali je nckoliku vrsta imalo i
3. Instrukcije za pozivanje procedura i vracanje rczultata iz njih. znacajan uticaj na savremene ideje. U ovom odeljku ukratko cemo prikazati neke epi-
4. Instrukcijc za ubrzavanjc rada u petljama. zode istorijskog razvoja racunara da bismo potpunije razumeli kako smo stigli do
5. lnstrukcije za rad sa znakovnim nizovima. 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
Stavise, kada su konstruktori racunara uvideli koliko se lako mogu dodavati nove
racunara o kojima ce biti govora u ovom odeljku. Slaterov tekst ( 1987) dobro je stivo
instrukcije, poceli su da trazc nove mogucnosti kojc bi dodali svojim mikroprogrami-
ma. Evo nekoliko primcra takvih Jodataka: za upoznavanje sa osobama kqje su zapocelc cru racunara. Njihove kratke biogratije.
uz prcdivne kulor-fotografije Louisa Fabiana Bachracha, potrazite u Morganovoj
1. Ubrzanje racunanja s nizovima (indeksiranjc i indircktno adresiranje ). knjizi ( 1997).
2. Mogucnost premcstanja prograrna u memoriji nakon pocctka njegovog
izvrsa van ja ( mogucnost rclokacijc ). Napomena
3. Sistemi prekida koji salju signal racunaru cim se zavrsi ncka ulazna ili izlaz-
na operacija. Prvi pokusaj da se napravi digitalni racunar

-+. Mogucnost da se privrerneno zaustavi jedan program i zapocne drugi po- Prva masina za racunanje s relejima koja je
radila
mocu malog broja instrukcija (zamena procesa).
Prvi elektronski racunar
5. Specijalne instrukcije za obradu zvuka, slike i multimedijskih datoteka.
Prvi americki racunar opste namene
Tokom god ina, dodavane o;u i mnoge druge osobine i mogucnosti, najccsce da bi se ---· ._, , Savremeni racunar; istorija pocinie ovde
uhrzala odrcdena akti vnost.
----1-----------+-P_rv_i_r_a_c_u_n_a_r sa_uskla?~stenim progra~9~ ,
Napustanje mikropmgramiranja Prvi racunar koji je radio u real nom vremenu I
I
Mikroprogrami '>ll '>G prilicno U\'ccali tokom zlatnog doba mikroprogramiranja Vecina danasnjih racunara koristi ovu
(sczdesctih i '>cdamdeo,ctih godina). Zbog toga su se izvrsavali svc sporije i sporijc. konstrukciju
~-------------~
Konacno '>l! ncki strui:·njaci shvatili dace racunari raditi brze ukoliko se eliminisu mi- Prvi mini racunar (prodato 50 komada) I
kroprogrami, smanji skup imtrukcija i direktno izvrsavaju preostale instrukcije (tj. lzuzetno popularan mali poslovni racunar l
ak.o se han.hcrski kontrolisc putanja podataka). Projektovanje racunarajc tako u izve- Dominirao u naucnim proracunima ranih I
snom smislu zatvurilu krug. vracajuci se na mesto gde je hilo pre nego sto je Wilkes sezdesetih godina I
smislio mikwprugramiranje.
Prvi racunar projektovan za jezik visokog
lpak. taj krug se i dalje ukrece. Programi pisani na Javi ubicno se izvrsavaju tako nivoa
stu se prevodc u medujezik. (Javin bajtkodl koji se zatim intcrprelira. Prva proizvodna linija projektovana kao l
1

U ovum izlaganjn i'takli smo proizvoljnost granicc izmcdu hardvera i softverajer porodica racunara
sc ona stalnu pomc:ra. Danasnji softver rnoze postati hardver sutrasnjice i obmuto. Prvi naucni superracunar ----~.==j
,Stavise. ncjasne ~u i gran~c·c izmedu pojeJinih nivoa. S programcrskog stanovista, ne- Prvi mini racunar za siroko trziste (prodato j
vazno JC J..Jkn sc uJreLkna instrukcija implementira (osim, mo/:da. ako postoje razlikc 50.000 komada\ 1
. -1
u brzini iz\ r\avanja}. Onaj ko program ira na nivou!SA. mozc da upotrebi njegovu in- Dominantan mini racunar sedamdesetih j

strukciju za rnno:l.enje kao da je hardverski ugradena ida o njoj vise ne brine (cak ne 1 godina . . --j
mora ni zn~ni da li jc LlJJLt '>tvarno harJverska). Hardver jednog programcra je softver 1 Prvi 8-bitni racunar opste namene na Ci~
drugog. Na s\c ovc teme vraticemo se kasnije.
Slika 1-4. Nckc kljucne tackl: razvoja savrcmcnih digital nih racunara.

~~~ j
-~
i}; 14 Poglavljc 1: Uvod 1.2 Kljucnc tackc razvoja arhitckturc racunara 15
~1:,
;;'~ii'l'
~~i'
r~_: r~g -~ CRAY1 ICray
- r- - - - - - - - - - - - - ----------

I Prvi vektorski superrai':unar kartica) i izlazni odeljak (busac kartica i stampac). Skladiste ulaLnih podataka i rezul-
rfl
;f 1------------ tata sadrzalo je 1000 rcCi sapo 50 decimal nih cifara. Radni dco jc mogao da prihvati
119
G-9-
I VAX DEC Prvi 32-bitni supermini rai':unar
------- ----- opcrande i;: skladista, da ih sabira. oduzima. mnozi iii deli ida rczultat na kraju vrati
/IBM P_C IBM Poi':inJe era savrernenih licnih rai':unara
---- u skladi,~te. Slicno clifcrcncnoj masini, i analiticka masinaje bila potpuno mehanicka.
~ 'Osborne-! Osborne Prvi prenosivi ~ai':unar
Analiticka masinaje imala tu prcdnost stu je bila opstenarncnska. Onajc ucitavala
I 11983 Lisa Apple
1
Prvi licni racunar s grafii':kim korisnii':kim
okruzer~~l (G~--
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
~
-~--------

!1985. /386 . ik serije Pentium


ih sabere) i da rcwltat vrati u skladiste. Druge instrukcije su .JOj mogle narediti da
~- 1 MIPS------- -J~vi komercijclni R:SC rai':un~ "" ~
r;-987 _[
~
::PA~. -·
MIPS

ISun ~RtS.C. radn;~;~~ica zasnovana na


Pr-:-·1·
tehnologiji SPARC
0 .
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
~~~-- RS6CJ_0(}_ ________ i IBM -----==-=-l~~~~~~~er~k~,;i~~t;-n~ _____ _ masina nije mogla.
- 1992. f Alpha ! DEC I Prvi 64-bttnt licni racunar_ _ _ _ Posro ;,c analiticka masina mogla programirati pomocu jcdno,tavnog ascmbkr-
~g~JNewt()~~--
-~-- -
- -T Apple --==--=Jrr~id~_[)ni racu~~;-- j 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-
Slika 1-4. Nc~c kljuCnc tadc ra/\"oja savrcmenih digilalnih racun<tra. ( IIU.\tavuk)
na. Ada Lovelace jc tako postala prvi svetski programer. Programski jc;:ik Ada@ do-

1.2.1 N ulta gencracija - mehanicki n1cunari ( l6-t2-19-t5) bio je ime ll njcnu cast.
Nazalost, kao i mnogi savrcmeni konstruktori, ni Babbagc svoj hardvcr nikada nijc
Racun,J..:u masi:1u koja stvanw radi prvi jc napravio f"rancuski naucnik Blaise Pas- potpuno ocistio od grcsaka. Problem je bilo to sto je njcgova masina Lahtevala na
cal 1 162.1 I hh2). pa je u njcgmu cast jcdan progranbki jezik nazvan Pascal. Urt:>daj hiljade preci1no izradcnih klinova. tocknva i zupeanika bkvc tehnologija devetna-
koJ i jc Pitsc~d napra viu I (J-l2. Ltd a jc i m;11' samo l l) gudina, trcbalo je da pomogne estog veka nije mugla da proiLvcdc. Bez obzira nato, onjc sa S\ojirn idejama bio da-
njcgoV(Jni ucu. P<'rcznif-.u francuske \ iadc. Uredaj jc bio p<llpuno mchanicki. sasta- lcko ispred svog vremena. pajc cak i danas konstrukcija mnogih savrcmenih racunara
vljen od !Upc:liliLt. i P"krctatJ SL' pil!,!<lllno postavijenom rucicom. ostala Hlo slicna analitickoj masini. tako da se mozc rcci daje Rabbagc (pra)otac sa-
l'asc:t!ov;, racunska ma~i;1a rnngla jc samo da sabira i oduzirna, ali je trideset go- vremcnog digitalnog racunara.
dina ka,nijc ,,_~liki llCJli:tc!-i illale!ll«lit~:n·, baron Goll!"ricd Wilhelm von Leibniz Slcdcci vdi skok u razvo.JLI racunara dogodio sc krajem tridc:-,ctih godina pro;Jog
(I (;-l-6---l 71 h) li:tpr:n io dn:~"u m:hanicku 1na~,im: koja je mogla i da mnozi ida deli. wka. kada je nemacki student tehnike Konrad Zuse napravio niz autnmatskih
l.cihn:;r j~· u stvari jo:; pre tri vcka ;;aprJ' :u :nchanicki ~kvivalcnt danasnjeg dzcpnog racunskih masina koristeci elcktromagnctskc rcleje. On nijc mogao da dobije pmlrsk.u
Ltlkt!ialm,t. vlacle ;:a svoj projekat jcr jc rat vee pocco. a dr!avne birokratc su bile uverenc cia on
Tnk< >Ill skdc:c'ih lSi: gudin:1 nijc sc: do_'!odilo nista macajno, svc dok profesor ma- nece trajati dovoljno dugo da masina bude dovrscna pre njegovog kraja. Zusc nije
kmatikc· Jl:l l<emh:·id/u, Cnarlc, Bahi_-ag,; i17LJ2-1871 ), pronala;:ac brzinomera. nije znao 1.a Babbageov rad. a njcgow masine su unistene u savcznickom bombanlovanju
KUibirui. -,'l) i i/gradi.J
1
difuennm masinu lcngl. di(f"crell<"C engine). Taj meha- fkrlina 19-t-J.. gudine, tako da njcgov doprinos niJe imao nikakvog uticaja na dalji raz-
ni..'h.i uredaJ. koji jc !·::m 1 F:tsc:tlo'. a m:J~II!u mugau samo da sabira i oduzima brojcve, voj racunara. lpak, trcha ga pomenuti kao jednog od pion ira u ovoj oblasti.
trd)ai<) _j,· da JW.T:iL"l!IE!''a t:thc:ie hruj:'\'a koje su sc koriqile za pomorsku navigaciju. NL'SIO kasnije, u SAD SLI se pojavila d\a covek:l koji su Lakudc konstruisali kalku-
J,:,_,n.-,u ukc·:;:t m:;:;;nc hila jc jl<llireJ::1n i;srsav:l!lju jcdnot_: jedinog algoritma- latore: John Atanasoll s Dr/amug kuledza /\jove i Geurgc Stihbitz i; Bclovih lablJ-
i;racuna'- :tnJU ;r,·dn"~r: puii:lC'lli~l I>\ccndlll;l J.;,_Hiacnih ra;:lika. Najzanimljivija osobi- rawrija. Atana:-:offljcva masinaje hila zapanjujuce moderna za svojc vremc. Koristila
"P'
na di r"c:-::tiL';lc ma<1 nc h;,, JC na.:·i 11 na h.c ;j 1jc· i ,ruci vala raul tat: una ga jc pomocu ee- je binarnu aritmdiku i imalajc kondenzatorsku memoriju kPja je zhog elcktricne di-
l i..'nc rrutricc L" ,,:kJ; ct!a u b:,k:trnu ;rnjc na ncki nacin preteca svih ncizbrisivib sipacije povremeno osve/.anna. sto jc postupak koji sc zvao ..ciscenjc memorije·'.
mcdi.J uma 1" "lnje P• •cLtt aka. ~ ctu ~[(' ~u buscnc bnice ili k.ompakt diskuvi. Sa\ rem en i cipovi ' di namickom memorijom (DRAM! rade na isti nacin. Masir:a,

I
Iako jc dikr-,:11L'!i<t ma:;:11a r11dila pn1icno dd'm. Bahhage usknro nijc vi;c bio za- nazalo:,t, nikada nijc sl\'arno pustcna u r<td. /\tanasotljc na i;:vestan nacin prosao :,lie-
Jllvcllpn lll.l~iilum kuj;: iC izn:~ava!J :,c;m<l jcdan alg,lritarn. Pocco jc da ulazc svc no ka<J i Babba)!c: ohojica su bili vizionari koje je purazila ncodgovarajuca hardvtr-
\1" :1 ne i ''- c '~~c'c f..:u! i·.:' inc: ;'<m H licnug i mdLI l da ne pominjcmo 17.000 funti ska tehnulogiJ:l tug vremcna.
il1u.j . .~ dl~•h:liL~ \·Lh_Lt) n~t t··f~).Jekto\Jnj.: i konstruisanje njenng naslednika -ana .. Sribbitzov racunar. iako primitivniji ud J\tanasoffljev<Jg. ipak je radiu. Stihhitzje
l!tii.;Kl' lli<L~inc! ;iul; <'fic;!nc). ,-\naJiticf..:C! !11:L~inaje imaJa Ct:tiri komponen-
I jav no demunstrirau svoj rad na konkrenciji u kt,Jedlu fJartmouth 11!-J.O. gocline. Kon-
l'.-': ,k Ltd;: l<: : li\C!11UJ"!j ll;' ;·a,ini cleo I rac·urbkll jt.'di nic·u ). uLlLn i odcljak (citac busenih J fcrcnci.Ji jc prisustVl)ao i John Mauchky, potpuno ncpuznat prokso1· Ji7,ikc s Pcnstl-

~· I vanijskllg univerzitcta. () njemu ce racullarski svet tck cuti.


r
I!
18 Poglavljc I: Uvod 1.2 Kljucne tacke razvoja arhitekture racunara 19

! Osnovna zamisao koju je on prvi opisao sada je poznata kao Von Ncumannova izbacila model 701, davno posto je kompanija Eckerta i Mauchleyja postala broj jedan
masina. Ona je iskoriscena za racunar EDSAC, prvi racunar koji je memorisao pro- na trz.istu s racunarorn UNIVAC. Model 70 l je imao 2048 36-bitnih reci, s dve instruk-
grame i jos uvek je osnova za skoro sve digitalne racunare- cak i dan as, posle vise od cije po jednoj reci. To je bio prvi iz serije naucnih racunara koji ce dominirati sledecom
pola veka. Von Neumannova masina (i masina lAS, napravljena u saradnji s Herma- decenijom. Tri gocline kasnije pojavio se model 704 koji je u pocetku imao 4096 reci
nom Goldstineom) imala je toliki uticaj na razvoj racunarstva cia je vredi ukratko opi- osnovne mcmorije, 36-bitne instmkcijc i jeclnu novost - harclver za rad s brojevima u
sati. Iako seta masina uvek vezuje za ime Von Neumanna, vaz.an doprinos u njenom formatu pokretnog zareza. Godine 1958, IBM je poceo proizvodnju svog poslednjeg
ostvarivanju takode su dali Goldstine i drugi. Blok-dijagram njene arhitekture prika- racunara s elcktronskim cevima, moclela 709, koji je bio unapredcni model 704.
zan jc na slici 1-5.
1.2.3 Druga gencracija- tranzistori (1955-1965)
C Momorija I 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

.j 1j 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
Aritmeticko tchnickog instituta. To je bila 16-bitna masina. napravljcna po uzoru na Whirlwind I.
Upravljacka
jedinica Nazvana je TX-0 (Transistorized eXperimental computer 0- tranzistorizovani ek-
I Y
1 l ' J Rezultat J sperimentalni racunar 0) i predstavljalaje probni uredaj za razvijanje mnogo slozcnijcg
model a TX-2.
Akumulator
S racunarnm TX-2 nije sc mnogo udmaklo kadajejedan od inzcnjera koji su radili
Slika l-5. Originalna Von Neumannova masina u laboratoriji, Kenneth Olsen, 1957. godine osnovao kompaniju Digital Equipment
Corporation (DEC) za proizvodnju komercijalnog racunara veoma slicnog modelu
Von Neumannova masina ima pet usnovnih delova: memoriju. aritmeticko-logic- TX-0. Prosle su cetiri gudine dok je taj racunar. PDP-I' uglcdao svctlost dana, uglav-
ku jedinicu. upravljacku jedinicu, ulazne i izlan1e urcd,ue. Memorija sc sastoji od nom zato sto su invcstitori DEC-a cvrsto vcrovali da za racunare ne postoji trziste.
40l)6 reci od po 40 bitova, od kojih svaki moze biti 0 iii I. Svaka rcc sadrzi dvc Uostalom, i siim T. J. vVatson, hivsi predscdnik IBM-a jednom je izjavio da svetsko
20-bitne instrukcije iii 40-bitni oznacen hroj. Osam hitova svake instrukcije odreduju trziste racunara zauzima samo pet ili scst pwcenata ukupnog trzista. DEC je zbog
njen tip, a prcostalih 12 bitova deflnisu jednu od 40l)6 reci iz memorije. Aritmetic- toga uglavnom prodavau male stampanc ploce.
ko-logicka jedinica i upravljacka jedinica zajedno cine ,.mozak" racunara. U savre- Kada se model PDP-I konacno pojavio 196 l. godine, imao jc 4096 18-bitnih reci
mcnim racunarima one se nalaze na jcdnom cipu zvanom centralni proccsor (engl. i mogao je da izvrsava 200.000 instrukcija u sckundi. Pcrformansc su mu bile dvo-
Centro! Processing Unit, CPU). struko slahijc od IBM-ovog modela 7090, tranzistorizuv;111ug naslednika modela 709
U aritmetickoj logickoj jedinici nalazi se specijalan unutrasnji 40-hitni registar i u to\ rcme najbr7.cg racunara na svetu. PDP-I Je kostao 120.000 do lara; model 7090
nazvan akumulator. Tipicna instrukcija dodajc memorisanu rec u akumulator iii je kostao milione. DEC je prodao vise dcsctina model a PDP-I i tako jc rodcna indu-
sadrzaj akumulatora smcsta u memoriju. Mas ina nc podrzava operacijc s brojevima u :-.trija mini racunara.
formatu pokrctnog zareza jer je Von Neumann smatrao da svaki pristojan matema- Jed an od prvih mmlela racunara PDP-1 dat jc Masacusetskom tehnickom institutu,
ticar moze da pamti decimalni zarcz (u stvari, hinarni zarez). gde je: ubrzo privuk.ao pa/.nju neh.oliko nadohudnih genijalaca, tako cestih na MIT-u.
Otprilike u isto vreme kada je Von Neumann pravio masinu lAS. i~tra/.ivaci na !edna ocl brujnih novotarija modcla PDP-I bio je ekran rczolucije 512 x 5 12 tacaka.
Masacu.-,etskum tchnickom imtitutu (MIT) pravili sujosjedan racunar. Za razliku od Nije dugo potrajalo. a studenli su pt"<lgramirali PDP-! f.a .. zvudane ratovc'" i tako jc
lAS-a, ENIAC-a i drugih slicnih masina kojc su radile s clugackim rccima i sluzile za sc pojavila prva video igrica.
slozena numericka izracunavanja, masina razvijcna na MIT-u, Whirlwind r. radilajc Nckoliko godina kasnijc DEC jc predstavio model PDP-8. 12-hitni racunar, ali
sa 16-hitnim recima i hilaje namenjena upravljanju u rcalnom vremenu. Taj projekal rnnogu jeftiniji od moclcla PDP-I ( 16.000 dolara). PDP-X je imao udarnu inovaciju:
je podstakao pronalazcnjc memorijc s magnetnim jezgrom (lay Forrc~ter), a kasnije jc:dinstvcnu magistralu, tzv. omnihus. prikazanu na siici l-6. Magistrala (engl. hus)
i razvoj prvog komercijalnog mini racunara. skup je paralelnih zica kojima se povezuju kumponentc racunara. Primcnjcna arhitek-
Dok se svc ovo dogadalo. IBM je bio mala kompanija koja se bavila proizvmlnjom tura JC jasno OLblupi Ia od arhitekture mas inc lAS, us me rene na mcmoriju. i od tog doba
busaca kartica i mas ina za njihovo sortiranjc. lako jc kompanija IBM del om tinansirala JC bila prihvacena za skuro sve male racunarc. DEC je proclao 50.000 modela PDP-8.
Aikena, nije bila previse zaitcresovana za racunare svc dok 1953. godine nije na trzi~te stu ga jc ucvrstilo na prvom mcstu meLtu proi;.vmtacima mini racunara.

~
ILl
~T
:if.~~~
~; 20 Poglavljc l: Uvod 1.2 Kljucm~ tai'kc razvoja arhitckturc rai'umu·a 21
~-!: ··-~~-------~ ·-~----~

~;;

f 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-

I manje vremena na nevaz.ne :;tvari (kao sto je kupovina kola) ostavljajuci vam maksi-
mum vremena za resavanje vaznih (kao sto je projektovanje supcrracunara).
I Doha razvoja obiluje i drugim racunarima, ali se jedan od njih istice iz sasvim dru-
! Omn1bus
gih razloga i zato ga treha pomenuti: model Bunoughs BSOOO. Konstruktori masina
Stika 1-6. PDP-~ omnibus.
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
U n1L·duvremenu, !Btvl jc na pojavu tranzistnra rcagovao tako sto je kao tr~mzistu­
paznju. Konstruktori rnodela BSOOO prirnenili su clrugaciji pristup. Oni su napraYili
rizovanu vcrziju moJela 709 zarnislio model 7090, a kasnije i model 7004. MoJel
masinu specijalno namenjenu programiranju na Algolu 60, prcthodniku jezika C i
7094 imao je si.stemski ciklus od 2 mikrosekuncle i osnovnu memoriju od 32.536
Java, i u hardver su ugradili n;moge funkcije cia hi programsi--om prevodiocu olak~ali
36-bitnih reci. MoJeli 70LJ() i 7094 oznacili Sll kraj masina tipa ENIAC, ali SLI ipak to-
posao. Tako sc spoznalu da i softver ncsto vredi. Nazalost. to je gotovo odmail i
kom sezdesetih godina dominirali naucnim racunarstvom.
U vreme I--ada je IBM postala glavna kumpanija u oblasti naucnog racunar:,tva sa zaborav l_ieno.
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. 1.2.4 Trcca generacija- intcgrisana kola (1965-1980)
da cita kartice i cia ih busi, ida rctultate stampa skoro isto tako brzo kao model 7094 Zahvaljujuci otkricu Ruberta Noycea iz 195i\. godinc - silicijumskim intcgrisanim
- i to sve samo za de lie njcgove cene. Za naucnc proracune je bio katastrofalan, ali je kolima- desetint: tranzistura muglo se smesti na jedan cip. Takvu zgusnuto pakova~jc
odlicno vudio poslovne knjige. omogucilo je gradnju racun:tra koji su bili manji, br/.i i jertiniji od njihovih prethndr. ka
Model l...fO I bio jc neobican po tome stu uopste nijc irnao registre, cak ni fiksnu :, tranzistorima. U nastavkunpisujcnw ncke znacajnije modele racunara ovc gener~tcijc.
du/inu rcci. Memorija muse sastojala od 4000 X-bitnih bajtova, mada su kasniji mo- I B:VI jc 196<-(. god inc bila vodeca racunarska kompanija i imala _je ve!iki problem sa
deli podr/avali i tada ne.camislivih 16.000 bajtova. Svaki bajtje sadrzao 6-bitni znak, svoja dva vcoma uspdna racunara: rnodcli:na 70').1. i 140 I. Oni 'u mectu:;obno bili vrlo
administrativni bit i bit kojirn jc oznacavan kraj reci. lnstrukcija MOVE je, na primer, nekompatihilni:Jcdanjc bio visokobrzinski .,mlin Ja brojcvc·· i koristio je paraiclnu bi-
dohivsi izvorisnu i odredisnu adresu, prebacivala bajtove sa izvorista na odredi;te sve narnu aritmetiku sa _1(J-bitnim reg1strillla. dokje clrugi bio proslavijcni obradiva(· uLtz-
dok ne bi naisla na bajt u komc je hit predviuen za oznacavanje kraja reci bio l. no-izlaznih podataka kujije :-.c~rijskc< dccim,tlnu aritmdiku primenji'.JU na men1t1ris:me
Godine 19fJ...f, mala i nepoznata kompanija Control Data Corporation !CDC) pred- rcl'i promenljivc du/.inc. l\1nugi m,Vl-ov i kupci imali ;.u ob:t r~t(·unara i nikak" im se
stavila je racunar 6600 koji je bio skoro .cared vclicine brzi od mocnog model a 709...f nijc dnpadalt> to Slll !reba cla imaj:i dva putpuno r:\?.!icita rm'gr:tll!er,LJ odcljc~lja.
i svakog drugog tadasnjeg racunara. On jc .ca racunardzije bio .,ljubav na prvi pogled·'
Kalla je dn~h1 vrelllL' ,b ove ch·c scrijc pruiz.1 ocl:t ?:un<eilL' no vi moddi. ll3\l jc po-
i kornpaniji CDC uspeh je hio osiguran. Tajna njegow brzine i razlog sto je bio mno- vuk:tu r:1dikaian polc:t. l;v,;o jc: Jcdinsl\t:llli proi/vodnultmju Systcm/3(Jd. n;.n<JVUJU
go hrzi od model a 70Y4 lezali su u njegovom central nom pwcesoru koji je u velikoj na un~~~n~anim kolim:t, kl1J<~ je :rcb,tlo da zadoVlllji 1 n;wcne i [J<l.,lovne j'Uirebc ku-
meri koristio paralelan rad. On je sadrzao vise funkcionalnih jedinica za sabiranjc, paca. S;stc:m/360 ,;adrLlll .ie mnngc, inu\·acija. a naj\ahtijc je l<J Ju .i·~ purodic·a t'<i :Je-
mnozenjc i deljenje. a sve su rnogle raditi paralelno (istovremeno). Iako jc za iz- knliko ma.~l!lc< ra.ciic·itc: vd:Cme i nh~..'i kmistila !,.ti :Jse,nL!l.'rc,lu jezik. K('lii[;:alij,, .JC
vlacenje maksimuma iz takve masine bi}o potrebno pazljivo programintlljC, liZ malo rnogla d:..l z:..Ulh.:ni rnudcl ! -+J l thn/Jf11 r~t~unaronl J(;U ;\Io(_L·i ,~0. a tn~Kiel 7t)i)-~ ra,~·u­
truda ~e mogln postici da ona istovremeno i;vrsava !0 instrukcija. n~tronl 360 \1ndcl 7'3.. \1ud:_:i 15 jc hiu vc:.=i i bl'Zi \a i ~kut·d_jl J. ali je ~uft\'~f pi--;an /.a
f kao da to nije bilo dovoljno. model 66(lf) je imao i nit. mal ill pomocnih racunara, bilu ku_ji raC·unar i1 :--.criJe nK>~~tP u n~tl:c:iu J~~ 1 ~;_'--li n,t L)llo kui1l drugt11ll rcLCun~d·u iL i:--te
tako da je podsccao na Snezanu i sed am patul_1aka; to je ;:nacilo da je centralni proee- serijc. U prtik..:-:i je to Ln;.u.:ilo d:..1 CL· \Pft.\Tr pi~an za c1anji n1od . ..'l he/. pn)hlcJd:t raJni i
sor nesmctano mogao da .. mclje" brojeve, prcpustajuci detalje upravljanja i ulaz- nJ vec·cJn. ali da pro;r~dn pi\!Ul z:._l v~Ci r:H.:u11~ir IIH~/d,J neCe !lHJ•~:i Ja ~.;lane u llll'JlJ(niju
no-i;.lazne opcracije malim racunarima. I1 sadasnje perst'ektive moglo bi se mirne n1any.:_:;. Ipak, i tu je bil~) vciiko puhol_j,:;;..ttijC u nd:-lc·~u na ~iL~IaLiju s n1udclun~~ 70~'-+ i
duse reci da je model 6600 bio deset godina i:,pred svog vremcna. JVlnoga kljucna 1-+01. K~)nCL'i'l p\)r~)di~L' raCun:tra ()dn-:~tb -::c prirnio i /a s~trllO nekoli~~) godin~1 \·c:jna
rescnja koja nalazimu u savremenim racun:1rima direktnu pnticu od modela 6600. proit::\'Oi...tJL·a_j~ nuJiLt 1 1cn]dic~ :-,liCnih ra.::un~lra kuji ~u .-1c r~tLiik(iVJli sa1110 pu L~~.·;1i i
Kon~trukt<Jr modela 6600. Seymour Cray. bio je legendarna osoba, unekoliko sli-
perC~)rn1an:~~llT"!~L Nck~ n~~_Jbin~._· prvih Clano" a puroJic~ 3ht) prikaz~d~;.: ~;una \iici l-7.
can Von 1\ieumannu. Citav svoj zivot je pos~;etio pravljenju sve brzih racunara. naz-
()~tali moJc:ii su uvcdc'ni ka;.nijc.
vanih superracunari (en;cl. sltpcrcomfllltersl. ukl_iucujuci modele 6600, 7600 i
22 Poglavlje 1: Uvod 1.2 Kljucne tackc razvoja arhitekture racunara 23

"'" Svojstvo Model30 Model40 Model 50 Model65 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-
Uporedne performanse 1 3,5 10 21
vima, a svi pokrivaju znatan raspon parametra cena!perforrnanse. Modeli iz ~erije
Trajanje sistemskog ciklusa (nanosekunde) 1000 625 500 250
PDP-11 pokazali su se kao veoma dobri, narocito u akademskoj sredini i odrzali su
Maksimalna memorija (bajtovi) 65.536 262.144 262.144 524.288
komaniju DEC na samom vrhu mec..lu proizvoc..lacima mini racunara.
Preuzeti bajtovi po ciklusu 1 2 4 16
Maksimalan broj kanala za podatke 3 3 4 6
1.2.5 Cetvrta generacija- vrlo visok stepen integracije (1980- '?)
Slika 1-7. Pocetna ponuda IBM-ove proizvodnc linije 360.
Tehnologija, nezgrapno, ali tacno nazvana vrlo visok stcpen intcgradjc (engl.
Druga velika inovacija u racunarima serije 360 bilo je multiprogramiranje (engl. Very Large Scale Integration, VLSI) osamdesetih godina omogucilaje da se najedan
nzultiprogrwnming), tj. mogucnost da se u memoriji istovremeno drzi vise programa, cip smeste desetine hiljada, z~ltim stotine hiljada i na kraju milioni tranzistora. Ova-
tako da dokjedan od njih ceka cia se zavrse ulazno-izlazne operacije, clrugi za to vreme kav napredak tehnologije uskoro je duveo do proizvodnje manjih i brzih racunara. Pre
moze da koristi procesor. To je rezultovalo boljim iskoriscenjem centralnog procesora. modela PDP-I racunari su hili toliko veliki i skupi da su kompanije i univerziteti mo-
Modeli iz serije 360 bili sui prvi racunari koji su mogli cia emuliraju clruge racunare rali da predviltaju posebne prostorije za njih, tzv. racunske centre. S pojavom mini
(da simuliraju njihov rad). Manji racunari su mogli da emuliraju model J40 I, a veci racunara, svako oc!eljenje je moglo samostalno da kupi racunar za svoje potrcbe.
model 7094, tako da su kupci mogli nastaviti da koriste svoje stare binarne programe Osamdesetih godina cene su pale toliko nisku da je i pojedinacni korisnik mogao sebi
pri prclasku na racunar iz serije 360. Neki modeli su programe pisane za racunar 1401 da priusti racunar. Tako je zapucela era licnih racunara.
izvrsavali toliko brze od njega da mnogi kupci nisu ni menjali stare programe. Licni racunari su korisccni sasvim drugacije od velikih racunara. Oni suuporeblja-
Emuliranje je s tim mode lima islo lako jer su svi pocetni mocleli iz serije 360 -a i vani za obradu teksta, za tahclarnc proracune i za hrojne vi~okointcrakti vne aplikacije
vecina kasnijih- bili mikroprogramirani. IBM je trebalo da napise samo tri mikro- (npr. igrice) s kojima se vcliki racunari nisu najbnlje slagali.
programa: osnovni skup in~trukcija za seriju 360 i po jedan ~kup instrukcija za mo- Prvi licni racunari obicno su proclavani u ,kompletu'". Svaki komplet jc sadrzao
dele 1401 i 7094. Takva fleksibilnostje i bilajedan od osnovnih motiva za uvodenje plocu sa stampanim kolima. pregrst cipova mec..lu kojima jc ohicno bio Intelov cip
mikroprogramiranja. 80::->0, par kablova, napnjnu jedinicu i mo/.da disketnu jedinicu od 8 inca. Sastavljanje
Modeli iz scrije 360 razresili su clilemu ,binarno-paralelno iii seri.Jski-decirnalno" racunara od delova prepustano je kupcu. Uz racunar nije isporul'i van nikakav softver.
jer se usvojilo kompromisno rescnje: racunari su snabc!eveni sapo 16 32-hitnih rcgi- Ako vam je softver bin potrehan, morali ste ga sami napisati. Kasnijc je Gary Kildall
stant za binarnu aritmetiku. ali im je mernorija organizovana po bajtovima, kao kod napisan operativni sistcm CP/M koji je stekao veliku popularnost na racunarima s
modela 1401. lsto tako, koristili sui serijske instrukcije u stilu modcla 1401 za pre- proccsorom 8080. To jc bio pravi operativni sistem za podrsku (disketnoj) jcdinici, sa
mdtanje zapisa promenljivc duzine u memoriji. sistemorn datoteka i komandama koje je korisnik s tastaturc zadavao komandnom
Jos jedna vazna osobina racunara iz serije 360 bioje (za to vrernc) ogroman adres- procesoru ikomandnom ukruL.enju).
ni pros tor od 2 24 ( 16.777.216) bajtova. Liz ondasnju cenu od nekoliko do lara po hajtu, Pujavio se i licni racunar druge vrste. prvo Apple. a kasnije i Apple [l (oba su kon-
tolika mcmorijaje izgledala nezamislivo velika. Seriju 360 je, nazalost, zamenila se- struisali Steve Jubs i Steve Wozniak, ito u garazi). Ti racunari su pustali veoma popular-
rija 370, a zatim i serijc 4300. 3080 i 3090 (sve sa istorn arhitekturom). Sredinom ni medu kucnim korisnicima I u skolama, pajeApple prcko noci postao ozbiljan takmac.
osamdcsetih godina ogranicenje memorijc je postalo ozbiljan problem, pa je lBM IBM, tada vodeca snaga u industriji racunara. posle mnogo oklevanja i osvrtanja
morao delirnicno c!a odustane od kompatibilnosti kada je presao na 32-hitnc adrcse knnacno je prelomio i oJ!ucio da se upusti u posao s licnim racunarima. Umesto cia
neophodne za adresiranjc novih 2 32 bajta memorije. svoj licni ral:unar projektuje od pocetka, koristcci samo sopst\ene komponcnte, sto hi
Gledajuci unazad, moglo bi se primetiti da je vcrovatno vee trchalo da imaju i prcdugo trajalo, !Bi\·Ije uradio ndto ,~lo uopste nc lici na ovu kompaniju . .Jedan od ru-
32-hitnc adresc jer su imali 32-bitnc reci i registre. ali u to vreme niko nije oz:biljntl kovodilaca, Philip Estridge, snabdeven je dlakllm punim nuvca i oteran daleko ml bi-
mogao zamisliti racunar sa 16 miliona bajtova memnrijc. Kriviti IBM za nemanje vi- mkrata iL 'edista lirme u /\rmonku (dr?ava Njujurk), uz napomenu da sene vraca dok
zije, bilo bi kao okrivljavati danasnjeg proizvodaca licnih racunara sto ima samo nc dunese kakav god upotr.:bljiv licni rat"unar. Estridgcjc usnmao radionicu daleko
32-bitne adrese. Za nekoliko godina, licnim racunarirna mozcla ce trebati mnogo vise od scdista lirnw. u Huca Ratonu (Florida). i;abrao Intelov cip RO::->X za centralni pro-
od 4 rnilijarde bajtova memorije. pace 32-bitne adrese postati neprihvatljivo kratke. ccsur i napravio lHM-ov licni racunar (IGM Personal Computn. ]13,\1 PC) od kompo-
I svct mini racunara se dobro pokazao u trecoj generaciji. kroz seriju DEC-ovih ncnata koje je nasau na tr:li;lu. On j.: predstavljcn ! 9S I. gudine i odmah je postao
model a PDP-II, 16-hitnog nasleclnika model a PDP-8. Serija PDP-II umnogome je najprodavaniJi racunar u istoriji.

i
~
II.
24 Poglavljc 1: Uvod tacke razvoja arhilekture racunara 25
1.2

IBM je povukao jos jedan neohican potez. ali jc zbog toga kasnije zazalio. LTmcsto Sredinom osamc!esetih god ina pojavila se nova jcdnnstavnija i brza arhitektura R1-
da projekat racunara dr/i u tajnosti (iii harem da ga zastiti patentima). sto jc inace ra- SC. i zamenilaje staru, komplikovanu arhitekturu CISC. Dcvedcsctih godina pojavili
dio. ohjavio jc kompletnc planove, zajedno sa clcktricnim semama u knjizi koju jc su se superskalami rnikroprocesori. Racunari s njima mogli su istovrcmeno da iLvrSa-
prudavao za 49 do lara ( 1). Zamisao jc hila da sc tako c!rugim kompanijama omoguc'i vaju vise instrukcija. cesto redoslcc!om drugacijim od njihovog rcdosleda u progranu.
pravljcnjc dodatnih kartica za ll3M PC kako bi se povccala njcgova fleksihilnost i po- Pojmove CISC, RISC i superskalaran dclinisacemo u poglavlju 2 i ohjasnjavati ih knz
pularnost. Na nesrccu, posto jc projekat sada hio dostupan svima i posto su se svi Citavu knjigu.
delovi mogli lako naci na trZistu. brojne kompanijc su poccle da pravc PC klonovc, Sve do 1992. godine, licni racunari su hili 8-bitni, 16-bitni ili 32-bitni. Tadajc kom-
cesto jcftinije od originala. Tako je nastala citava industrija. panija DEC predslavila revolucionarni 64-hitni racunar Alpha, pravu 64-bitnu RISC
[ako SLI i drugc kompanijc praviJc Jicnc racunarc korisleci drugc proce~OfC (npr. masinu kojaje po performansama daleko iza sebe ostavila sve tadasnje licne racuna:·e.
Commodore, Apple i Atari). dominacija imlustrije licnih IBM racunara bilaje toliko Alpha je postigla skroman uspeh i pros Ia jc skuro dcccnija dok 6-+-bitni racunari ni~u
velika da su svc one naproslo zbrisane. Ostala ihje samo nekolicina i one danas poslu- bili na pravi nacin prihvaccni,. a i tada uglavnom samo kao vrhunski scrvcri.
ju na marginalnim lrzistima.
Jcdan takav racunarje. iakojcdva, ipak prelivco, a tojc Appleov Macintosh. Ma- 1.2.6 Pcta generacija- nevidljivi racunari
cintosh je prec!stavljen 19X4. godine kao naslednik zlosrecne Appleove Lise, koja je
hila prvi racunar s gratickim korisnickim nkruzenjcm (engl. Gruphical User lnter- God inc !9X l. japanska v lad a je saopsti Ia da je uclvDji Ia 500 mil iuna dulara kao po-
jilCe, GUI) slicnim danasnjem Winclowsu. Lisa je propala jer je hila prcskupa, ali je moc domacim kompanijama koje razvijaju racunare pete gcracijc - zasnovanc na pri-
jel'tiniji l'vlacintu~h koji se pojavio godinu dana kasnije po~tigao veliku slavu pa su mu meni VeSlacke inteligL'I1Cijc. StU Ce prcdstavJjati pravi 1-.valltlli ,;kok U udl1l•Sii
brojni obozavaoci postali vrlo privrzeni. ..glupave .. racunare cetvrtc generacije. Gledaju,:i godinama kako japanskc Kclmpanije
Rano trziste licnih racunara uskoro jc izncdrilo do tada nei,kazanu zelju za pm,e- malo po malo preuzimaju tr/.iste u mm,gim obla:.;tima (od kamcra. prcko stcrco-u~c:­
dtJvanjcm prenDsivog racunara. lJ to doba KllllCCJlt .. prcnosivog racunara·' imao je is tO daja do telc\ iziJe), americke i evmp~ke prnizvodace racunara u trenu jc .r.1hvatila ra-
toliku smisla bo i sintagma ,.prcnosivi frizidcr .. c!anas. Prvi stvarno prenosivi licni nika i svi .su ud svojih vlada odmah zatra;:ili iinansij>kupumoL' za nstvarivanje i.s1og
racunar bio jc (}ihorne-1, koji je, buduci tezak II kg, vise ;:asluzivao atribut .. pnljaz- cilja. L;prkos pompeznoj najavJ. japanski pn1jekat racull..lra pete generacije u osnovi
ni". lpak, on je dokazao da je konccpt prenosivog racunara real~m. Osborne-! je po- jc pwpao i tihu jc napu~ten. S njim se u izvcsnum ~mi:,lu dugmlilu ;to i ' Babbagw-
stigao skruman komcrcij~dni uspeh, ali je godinu dana kasnije kompanija Compaq na vom ancllitickom masinnm- idcjaje hila \i;:ionarska. ali tuiil-.o isrrcd svDg vrcrmna
trzisk izhacila svoj prvi prenosivi IBM PC klnn i ubrzo postala lider na polju preno- da tehnt'lc'gija nijc nwgla daje rcaliLtljl'.
:,i vih racunara. Bdu k.ako bllo, onu Sto sc n1olc IL.tL\'ati pL·tonl gcr~cr~t:ijon1 ir1ah. sc Uugodilo i ~un~t
Prva verzija licnog IBM racunara prodavanajc sa operativnim sistemom MS-DOS, prili,·no ncocekivan nacin: racun~u·i su se smanjili. ,'\prkov NL'Wtun. pred~tavl en
koji je isporucivala tada mala kumpanija Micrmnft. Kako je Intel proizvodio svc sna.l- I')lJ3. godinc. poLuau jc da .'.e mP2c napraviii racunar velik kolil-.u preno-.ivi ka~ct<'­
nijc rnikropmcesore. IBM i Microsuft suunapredivali i\!S-DOS i napravili mu naslecl- fun. Kurisnikje u 0!ewt<Jil unu.-:io p<Klatkc pi;uci ih n:kL'Ill. :;to se pol-.az:do priliC·n,;m
nika ·- operativni sistcm OS/2, koji je radio u gralickom okru/.cnju slicnmn okruzenju prcpn~I\.,Jm. ali :.u ka:-niji racunari uvc kla:.c, n;:;:vani licni digilalni pomocuici ;ergl.
Appleovog !Yiacintosha. U mcduvremcnu Microsoftje razvio i sopstveni opcrativni si-
l.''ft"
Per.,unnl F'igilal. \ssisrunis. Pll,\~ ). t!:,bili pubu]/'ano kmi~.nicko 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

Ii
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 godir:a.
javno .. razveli" i Micrusoft se okrenuo Windowsu. i prcko njega postigao veliki u'peh. \lcciutim. cak ni liCni J1git:lln1 pomocr!lci ni;.u <>tvarno rcvo!tu~ion~:rni. U l!i!l
Kako su malecki Intel i jos rnanji Microsoft uspeli cia s prestola svrgnu IBM, jcdnu od smi·du n:ci uti~ak ,,stavlj:tjii .. nevidljivi" racun~:ri ugrackni u ap:,ra!e. s:ttll\•_', !-..rc-dicne
najveL'ih, najbogatijih i najmocnijih kompanija u i:-.toriji, ncsLO je stu se be;: sumnje de- kanin~ i u bru.Jnc drugc UleLbiL' (l:kL·hini ct .!l .. 200-i l. T:b i pruccsnri u m;;ugim pri-
taljno proucava ll poslovnim skolarna simm .-.;veta. men:l!~la lihubcduju pmu'anu t'unkcionalno:;tuz ni/.c tn)~kovc. J)j,h,utabiliw jc d 1 ii
Pni stvarnP pred,;tavl_jaju nuvu g:...'ncraciju C:tpO\ a ( svuda :-.u oklJ na:-) (yJ .~cdantdc:--~~tih
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,
I
~
gul:itl~li. ali ipak ·"u p~)tpunu l;~llh:nili naC:in raLL~ hilj . tdtt apar~1t~l i drugih urcLtaja. l\~ji­
h(lV \'L( fHJ--;taj(' g!oh~:l:.tn lunar·~Jnin1 guL!inarna Cc i daljc ctsti.l:d~l\1 neui•iCan

oni su u pogkdu arhitekturc samo Ulldpredcni procesori 386. i.l:-.peh.~ u\'ih ugr~tdt:?nih r~1CUr1ara jc>.;tc 11.1 ~lo ~u nlihov harchcr i ~oft\er uporl'do pro-
jektt}Vani \engl. cod:.'signed) (ih:nkcl ct a!.. 200_,). Na niill L;crnu s~ \Tati!i ka'-'n1jc.

15"
r.;o

il!l'
26 Poglavlje 1: Uvod 1.3 Racunarski zverinjak 27

Ako kao prvu generaciju smatramo racunare sa elektronskirn cevirna (npr. ENIAC), 51 2M
kao drugu tranzistorizovanc racunare (npr. IBM 7094 ), kao trccu prve racunare sa in- 1.000.000.000 •
tegrisanim kolirna (npr. IBM 360), a kao cetvrtu licne racunarc (npr. sa lntelovim pro- 100.000.000
cesorima), pcta generacija bi vise predstavljala promenu njihove namene ncgo neku 10.000 000
=>
specificnu novu arhitekturu. Racunari ce u buducnosti biti svuda, ugradcni u razne 0.

ro
proizvode, i zaista- nevidljivi. Oni ce predstavljati rutinski cleo svakodnevice, pocev <= 100.000
ro
od otvaranja vrata, paljcnja (gasenja) svetla, pa do manipulacije novcern i hiljada dru- 0
10.000
~

gih stvari. Ovaj model je prcdlozio pokojni Mark Weiser i nazvao ga sveprisutno ·;::;
<=
ro 1K
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


·e
(])
100
10 -
ovom mestu necemo vise govoriti o sveprisutnom racunarstvu, a detalje o njemu po-
1L_--~ ___ L_ _~_ _ _ _L__ _~_ __L_ _~_
trazite kod Lyytinena i Yooa, 2002; Sahae i Mukherjeeja, 2003; i kod Sakamure, 2002.
1965. 1970. 1975. 1980. 1985. 1990. 1995. 2000.
Godina kad se poJavio pojedini cip

Slika J-8, Moorcov ~akon prcdvida da godisnjt: povec'anje broja tranzistora na cipu iznoo.i 60%.
1.3 RACUNARSKI ZVERINJAK Tacke na dijagramu prcdstavljaju velicinu mcmorije u bitovima.

U prethodnom odcljkuukratko smo prikazali proslost racunarskih sistema. U ovom kvantnog racunarstva to mo/.e sustinski da izmcni (Oskin et al., 2002). Drugi anali-
cemo pretresti njihovu sadasnjicu i baciti pogled u huducnost. lako su najpoznatiji lic- ticari, medutim, ocekuju dace se mnogo ranijc pojaviti prohlcmi s disipacijom toplo-
ni racunari. clanas postoje i clruge njihove vrste, pa ih treha poglcdati. te i .,curcnjem" strujc te drugi ncpozcljni efekti koje ce biti potrebno resavati (Bose,
2004; Kimel al., 2003).
1.3.1 Tehnoloske i ekonomske sile Mooreov zakon ostvarujc ono sto bi ekonomisti nazvali povoljno kruzenje (engl.
virtuous circle). Naprcdovanje tehnologije (tranzistora/cipova) donosi boljc proizvo-
lndustrija racunara napreduje hrze od hilo koje druge industrijc. Njena pokretacka de i nize cene. Nize cene vode novim primenama (niko nije pravio racunarske igrice
snaga su proi.cvodaci cipova koji svake godine uspevaju da smcstc na cip sve vise i onda kada je racunar koslao 10 miliona do lara). Nove primene otvaraju nova trzista i
vise tranzistura. Stu vi;c tranzistora, tih ckktron~kih prckidaca. to je veca memorija. podsticu osnivanje novih kompanija da ih iskoriste. Nove kompanije znace povecanu
odnusno snazniji pmcesor. Gorc!Pn Moore. suosnivac i bivsi preclsednik lntcla, jed- konkurenciju, sto podstice ekonomsku potrebu za holjim tehnologijama. Time sc
nom sc ovako nasalio- da se avionska industrija razvija kao inclustrija racunara, na- krug zatvara.
pravili hi avion koji ohleti zemlju za 20 mimna uz potrosnju od dvade~etak litara Drugi cinilac tehnoloskog razvoja je Nathanov prvi zakon soft vera (po Nathanu
goriva i kosta samo 500 dolara, a ne bi hio veci od kutije za cipelc. Myhrvoldu, bivsem Microsoftovom visokom rukovodiocu). On tvrdi: .,Softverje kao
Dok jc priprcmao govor za jednu industrijsku grupaciju. Moore jc primctio da se gas koji sc siri dok ne ispuni sud u kome se nalazi". Davnih osamdesetih godina, tekst
nova generacija memorijskih cipova po pravilu uvodi svakc trcce godinc. Posto nova je obradivan programima kao sto jc troll (korisccn je i za ovu knjigu). TrotT zauzima
gcneraeija uvek donosi cetiri puta vise mcnmrije ud prcthmlnc. on jc zapazio da se nckoliko kilohajta memorije. Savremeni programi za ohradu teksta zauzimaju mega-
hroj tranzistora na cipu puvecava lincarno ida ce sc takav trend nastaviti dcccnijama. bajte mcmorije. Za naredne ce, nema sumnje. biti potrcbni gigahajti. (Pretiksi kilo.
Ovu njcgovo zapa/anjc po;.;taloje je punnto kao !\looreov zakon. Dan as se on tuma- mega i giga u prvoj aproksimaciji znace hiljadu. milion i rnilijardu. a dctaljc pogleda-
ci tako da se bwj tran,:istora na cipu udvustrucava svakih 1X mcseci, sto je ekviva- jtc u odcljku 1.5.) Softver komc se stalno dodaju nove mogucnosti (slicno hrodskom
lcntno godi;njcm povcc'anju hrnja tranzistora za oko 60'/r. Vclicina memorijskih korituna koje sc ncprcstano lcpc skoljk.e) stalno tra/.i sve brzi procesor, vise memorije
cipova uzavisnnsti ud datuma njihovog modenja u pruizvudnju (slika 1-X) potvn.luje i vise ulazno-izlaznih kapacitcta.
vazenjc f\lourcuvog /.akona tokom perioda oJ preku tri Jecenijc. lako je hrzina rasla hroja tranzistora po cipu vee godinama dramaticna, ni razvoj
Mourcov .cakon nije tcorijski izvcdcn- to JC cmpirijsko zapa;:anjc hr zinc kojom ti- drugih racunarskih tehnologija nije bio sporiji. Na primer. 1982. godine predstavljen
zicari i procesni inzenjeri unapreduju svoju spccilicnu tchnul<l~ku ohlast. a kojc omo- je racunar IBM PC/XT sa cvrstim diskom od 10 megahajta. Dvadeset godina kasnijc,
gucava da sc i u huducnosti ocekuje slican trend. Ncki analiticari industrijskog naslcdnici ovog racunara vee uohicajeno imaju disk od 100 gigahajta. Prirastaj od ce-
rai.V<lja smatraju dace se vazCllje Momeovog Z<ikona pmduziti harem tukumjos jed- tiri rcda vclicine za 20 godina znaci godisnji prirastaj od 58%. lzrazavanje po-
ne Jeccnije. Tada L'c rranzistori biti tolikCl mali dace postati nepouzdani, mada ra1.voj boljsanja u tehnologiji proizvodnje diskova samo njihovim kapacitetom, varljivo je
'
~

~il
~
~}t~
1Jij 28 Poglavljc I: Uvod 1.3 Racunarski zvcrinjak 2?
~'

jer Sll ll igri j drugi pararnctri, kao StU SU brzina prenosa poJataka, Vrcrne njihovog lJ nareclnim odeljcima opisaeemo svaku od navcdenih kategorija i ukratko ohj<l-
pronalazcnja i cena. Cotovo svaka primcnjena mctrika poka;,aee da se minos ccna/
perforrnanse od 1982. godine poveeavao po godi~njuj stopi ud harem 50')~. Ovakav
rast perforrnansi diskova, zajedno sa cinjcnicom da je vrednost cli-;kova koji sc ispo- '·- ./i
sniti njcnc osobine.

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
1 ,,
""'
.
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
podataka).
Jos jedna oblast koja se spcktakularno razvijala jesu tclckomunikacije i tchnologija 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

i
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 za jednokratnu upotrebu ima s;nisla koliko i avion za jednokratnu upolrcbu.
12
I 0 bitova/s. Transatlantski opticki telefonski kablovi, TAT-12/13, kostaju uko 700 Medutim, racunari zajcdnokratnu upotr~bu vee su oko nasi tu ee i ostati. Najva;'-
'~}

miliona do lara, trc~ju l 0 gudina i mugu istovremcno da prenesu 300.000 poziva po ceni nije otkriee na polju ovakvih ral:unara verovatno je i'ip za radiofrckvcntnu idcntili-
manjoj od ccnta za I 0-minutni medukontinentalni razgovor. DoLvana je moguenost kaciju (engl. Radio Fn'LJU1.'11CY !Denrificution, RFJD). Danas se za nckoliko ccnti moie
rada optickih komunikacionih siskma brzin~ prcno'>a l 0 12 bitova/s na daljinama ucl
"'
tl·'._'_.·
napraviti RFID i'ip tanji od 0.5 nun koji sadrzi minijaturni primoprcdajnik i jedinstvtn
""
preko 100 km bcz popcavaca. Eksponencijalni rast Intern~ta ne tr~ba ni puminj:1ti. 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 ta~o
1.3.2 Spektar racunara sieusan da sc ncma sta videti, posledice njegove primenc nisu nimalo naivne.
Pocnimo od jcdnc svakodnevne primene: uklanjanja bar-kodova s proizvoda. Vee
Richard !-lamming. svnjcvrcmeno i\trazivac u Rell'l'imlahor:ltorijama,jcdnom pri- su ohavljani cksperimenti u kojima su proizvodi u samou"lugama urnesto bar-kodo 1'a
likom .JC primetill da kvantitativ na promena ud jcdnug rcda \·elicinc iJ.aziYa kvalitali- bili snabdcveni RFID cipovima. Kupac bi izabrao proizvod~, stavio ih u kolica i pm-
van skok. Tako trkacki autonwhil koji juri brlinnm 1000 km/h kroz pustinjuu ~cvadi gurao kolica kroz prolaz pored knntrulnc ,kasc''. Tu hi citac sa antcnom poslao signed
prcLbtavlja '>asvirn dntgu vrslu autom->bila nd nurmalne ma~ine k(Jja 'e autoputem trazeei od proizvmla da se identilikuju, SlO Sll oni i cinili cmitujuei povralne signal.:.
kreec: hrzinom I ()t) km/h. Slic1w tome. ohlakodcr od l ()() '>pratova nij~ '::nw LI'-'ccana Kupac bi se takode identi likovao prcko cipa na svojoj bankovnoj iii kreditnoj kartiri.
st~unhcn .1zgrada od I0 ~prtliU\ ~t. KaLla ~ovorin1o l) raCun~1ri1na. nc lni,-.;1irno na dL'SClo- :-.ra kraju mcseca, sarnousluga bi kupcima slala detaljne racunc za proizvode kupljcnc
suuki i",1ktor uvdanj~t. vee na uvec'anjc Pd mili"Il puu wknm tri dccemj~. u tom mesccu. Ako kupac ne bi imao vazecu hankovnu iii kreditnu RFID karticu,
Ra.-;t koji predv ida l\.ln(JJnJ\ zakun n~u7.e '"' iskurisiiti na vi~~ n.tcina . .lcd:u1 jC pra- oglasio hi sc alarm. Ovaj sistem nc samo da otklanja potrebu za kasirkom i i'ekanjem
vlj:...~n}.~ ~\c jaCih fLH~un:tra p(j istt>j ccni. f)ru~i jt._' pr~t,·l_jl:njc~ i.~tog r~tCun:Jra koji Cc i~ u redu, vee obezbcdujc samouslugu i stili od krmle jcr se artikli skriveni po dzcpo\i-
gPdinc u g•J,!Jnu k,J~t.lli '"'" manjc. R:tl:unarsl-.;t !nd1Nrip Jt' j,,k,,n,til:l 1jcd:!n i clrc.tgi rna i tc1rhama takmte identilikuju.
prislup. a i \ iSe uJ l!)ga. zhug Ce~a dan~t\ i1n~nn~) \eurrLt ra/liCite rd~unarc. J~·dna :-iJ>.- Zanimljivo je da sc ovim sistemom, uz 12X-bitni hroj, mo/.e pojcdinai'no idcnti i-
\illl ..,-:rub.t klasilikaL·ija '.bna\nji 11 ra_'unara prika;ar::tj.: na ,;l!ci 1-LJ. 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-
~ia_ __________-_--_=j~~~i~ru~-~_:=~--=-~I~;ir;er p~~e~e -===--=~=] ;)""• Iil-.u bi proizvoclac aspirina naknadno otkrio neku grdku u proizvodnji, morao bi :Ia
Za j~:?dr:ot<r3tnu upotrobu : c~stit~e

II
I : 0.5 svim :,uperapotckama sirom svcta nalozi da :,istem podesc tako da sc ukljuci alaun
r rv1lkf~~~~t~~~:;;------- -0- ---~---------T------
RuCni satovt. a~tcrnobiii. kur~i 1i k:.Jd ncko kupi pakovanje aspirina ciji RFID broj pripada odredenom opsegu. c;.tl: i
1
uredaJI ako sc ln dogodi mesecima kasnije u nekoj udaljenoj zemlji. Aspirini izvan defekt1e
1---·-~------- . -~-~-- ----·· --r----·-----~-------
L~~L~~~~3 Jrar.;e_ --~ ---l 50 ___________)~LJc_r:e ·11deo .grice grupe nc bi pozivali na uz.hunu.
i L1cr:i
r-s~-i~~~~~
r.::tc:....n.:r , SO·J : St·:'..1ni iii prenosivi r;JCUndr
----!- Soco---~-------------~ ivirei;;~rve:: --------- ----
I~ Obele/,avanje pakovanja aspirina, keksa i hranc za psc, mcdutim. tck jc poccl~.k.
Ltst\1 ,..; zaustaviti na hrani za pse, kada mozcmu da obelczimo psa') Vlasnici kuerih
L- - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - i - - - - - - - - - -
1 S~t.:p r2Jr!h s~ar;ica :' SO.CC0-500 OGO I roslu,nl i-:1:.~! superrdCunar
tifit ljubinlaca vee zahtevajuod veterinara da njihovim zivminjama ugrad~ RFID cip ka~o
;oi
,___--~--
1
-· --------------~--------~---~-~~--------· ------~- -----~ -- --~-----~ \~ bi ill lakse pronasli ako se izgube ili ak.o ih ncko ukrad~. T stocari zcle da obclcl:e svvja
1 Ce~~t~a!n~.:~~~na_~--~~-~--~;_s_.~~o_._o_c~----- :' P2het13 ocr.~-~a P?~~·:-:_~a_k~~-~-''_:.. _1. ~ grla. Ociglcdan -;lcdcei korak su uvek hrizni rodit~lji koji od pcdijatara tra/,c da nji-
Slika l-~. Dan~t.~llj; .-pcU,1r r;.t~p~dnhvih racunar~t. ('~.~nc tr~h~i pi·nnitJ .s velik1*1l~ rc ..:.._T\Um ilovoj dcci ugradc RFID cip za slueaj da ih neko kidnapuje iii se sama izgube. KJ=!a

.
Bll!"!'"
!IJ''
30 Poglavlje 1: Uvod 1.3 Racunarski zvcrinjak 31

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

I
h! 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
, 0t"tvera, malog radnog takta, male kolicine memorije, nepostojanja monitora visoke
remlucije i (po pravilu) nepostojanja cvrstog diska, ove mas inc su mnogo jeftinijc ocl
memorije ima, i od drugih cinilaca. Da biste ~tekli bar ncku prcd,tavu. reci cu cia licnih racunara. Uprkos navedenim ogranicenjima, do danas je proclato na milione
8-bitni mikrokontrolcr (ako ih odjcdnom kupitc dovoljno) verovatno mozete dobiti za lwakvih rnasina.
oko I 0 centi po komadu. Zbog takve cene mozetc da ugraditc racun<tr u radicJ-~at kuji Kompanije koje proizvode velikc igracke masine. prave i prenusivc verzije kojc
kosta samo I 0 do lara. rade na baterije. One su ipak bliY,C ugractenim sistemima o kojima srno ranije govmili
Naizgled svi mikrokontrolcri rade u n.:alnom vremcnu. Kada dobiju podsticaj, occ- ncgD licnim racunarima.
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- 1.3.6 Licni racunari
mcc1u pritiskanja dugmela i paljenja lampice. Potreba da se radi u realnum vrerncnu
ccslo utice na izbor arhitckturc. Stigli Sll10 do licnih racunar<) na koje vecina !judi pomisli kad cuje fCC ,racunar·'. u
Za sistcmc u kojc sc ugraduju rnikrokuntrokri ccstu sc puslavljaju lizicka ogra- njih spadaju stoni i prenosivi modeli. Obicno se ispontcuju sa slotinama megabajta me-
nicenja u pogledu velicinc. tc/jnc, potrosnje energije i s:. Zbug wga se pri projckto- murije, c\Tstim diskorn na koji moze da se srnesti oko I 00 gigahajla podataka. kornbi-
vanju njihovih mikrokontrolcra to mora imati u vidu. novanim CD/DVD-uredajcm, mmlcmum, zvucnum i mrcznom karticom, moniturom
~~ visoke rezolucije i drugim pcriferijskim kornponentama. Oni irnaju slozcn operativni
1.3.5 Racunari za igranje sistem. brojne mogucnosli za prosirivanjc i gomilu suftvera na raspolaganju. Neki pod
izrazom ,,PC racunar"' podrazumevaju masine sa fntclovim mikroproccsorom, a .. rad-
Na slcdcL'oj stcpcnici nabzc sc racun<tri za igranje. To ~u obicni ral"unari, -.: poseb- nim stanicama" nazivaju racunare oprcmljene skupim RISC cipovima, kao sto jc Sun-
nim gratiC·kim i zvucnim mogucnostima. ali sa ogranrccnirn Sl)lherom i malim mo- ov UltraSPARC. Koncepcijski, razlika i,r.mectu njihje minimalna.
gucnostim:t 1.a pmsirenje. Oni su ll<t~lali ud jeflinih prncesura namc:njenih igranju Srce svakog licnog racunara je (maticna) ploea sa stampanim kolima u dnu kuci-
akcionih igara, Lto slo je ping-pong, na TV ekranu. Tokom godina su sc ra;vrli u ~ ;w. Ona obicno sadrzi mikroprocesor. memoriju, razne ulazno-izlazne uredaje (kao
~
jiJ,j
lllllll)!<l moL'nijc sistcmc kll.Ji s11 stali u isti rc'd s licnim racunarima ili ih cak nadma<ili sto 'u zvucna kartica i modem), kao i prikljucke za tastaturu, misa, disk, mrdu i nc-
u nekim aspeJ...tim:1. J koliko poclnozja za prosirivanjc. Na slici 1-10 prikazanaje jedna ploca.
Da histe stckli predstavu o tu1ne ~ta se nal;vi unutar racunara n,lmcnjc'nih ?a igra- ~ Prenosivi racunar (laptop) u osnovi je PC racunar u manjem pakovanju. U njemu
njc, ralnl<Jtritc' spcTilikacijc in P<'pulama rroi;:1·oda. SonyJcv PlaySt<:tiun 2 sadrzi ~ su i~te harclverskc komponcnle. sarnu manje. Na prcnosivim racunarima radi isti soft-
12X-hitni Sun;-jcv proc:csor (t:azvan En]()l!clD Eng;nc) na 205 !\lllz. k,•ji :.c zasniva net ~~ ver kao ina stonim racunarima.
RlSC mikn>pnll"C\:'I"ll \Ill'S IV. PlayStati"n 2 im:J i 32.\18 rnemorijc, <pc'Ctjal<m gr·a- }l Jns jedan srodan urec1aj je i licni digitalni pomocnik (PDA). lako jc on manji eak
~
lil"ki cip hr;tnc !(1() \Ilk ~pecip!:m.fS·kaiEthi audi•l 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-
~J"f 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-
~:
Jalan gra!JC:·li C·ip h·zin..:: J()ll :\!ilL, ~pccijabn 256-kanalni ;~udio :ip, DVD plcjc;· i narima, u uvodu nccemo o njima vise nista reci.
(·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, .spcc:i_j~dni gr<:riCJ,;i cip brzinc 20U .\1!1L o-i-karnlni audio C:ip i tv!icn'-
~jj 1.3.7 Serveri
\~
so!"tPv OJ'tiCki dick'"! l ,5 giga:,ajt;l. ,Nahudzeni'' licni racunar iii radna stanica cesto sluzi kao mrdni server ulokalnuj
Iaku ovc nLl~in~ ni~u L:ko l1H'Cn~ kau -liCni raCunari prc~izvcdcni u i-_;tu vr~tnc. I)Jl\._' ~
'?$
mreZ.i (po pravilu, unutar male kompanije) iii na Internetu. Servcri mogu imali jedan
nc /ao~tL~j~! nln;>gl• z~l njin;a, ~i u izYe~nin1 ~~.-.,pc-ktii1l~r ;-,U i hnljc (:1pr. l~S-hi1ni Inikro- ~ ili \ ise procesora. gigahajtc memurije, stotine gigabajta na L-vrstom disku i mogucnost
pnlCt'\\11" u J,..<lili<lii Play'itall,,n 2 ima \ ccc rcgistrc <lli mikrupn;L·e~ura hilo kng PC ~~ hrwg rada u mreii. Ncki od nJih mogu da obavljaju na hiljade tran,akcija u sckundi.
raCunctLI. t;,k.o muje radni 'akt mnugu Jti/i.l. CLl\II:l r;uliLt i;!ncliu igrackih nn'ina ·k> [p;~k, iz perspektive arhitekture, servers jednim proccsmom ne razlikujc se prl'vise
~~
i PC ra . . ·u;1~:Lt i 11ijc rnik:--oproLT"PL nc;(-) (·injcn~c~~ {.lit su igrnCkc n1a;;nc /~lt\'Prcnl ~i­ od licnog racunara s jednirn proct'soroni. On je samu br/.i. veci. ima vise prostora na
slenll. K,,ri:'lnicJ ih nc Jr~l~gu proSiri\ ~Hi dudatniJn ~anic~llna. prL'iihJa ncLi i:r.(tju U.)i)
~ disku i rntlzda hr7i pristup mrezi. Scrveri raclc pud istim operativnim sistemima kao i
~
prikiju~ak ili 1-'irc\VirL \'t'/U. ~;tu JC jo~ . nlaSjnc ;:a igru ~u pa/ljivu ,)ptin1!/.o- ':-i
JiJ
licni racunari, najcescc pod nekmn varijantom UN! X-a iii Windowsa.
va:1e Z~iJr~:dnujediJ~U ;l~ll11'...'nu: \'i:.;okuintcT~lkti\nc J[J igric~ LL~ vi>oJ...ukv:ditL·I:ln c;tcJ\?O i
zvuk. S1c ,;c.t<d,, je '[hlrcdno. Zhug navc,knih ugraniccnja u pPgicdu hardvera i ~
I i
t
t
I
r
u!
fj(/
34 Poglavlje 1: Uvod 1.3 Racunarski zvcrinjak 35

H'

! 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
Slika 1-10. Stampana mutiCna ploca nalazi 'e u sredislu svakog licnog racunara. Na slici JC
nijc dogodila zahvaljujuci ogronmom trudu ulozenom u resavanjc problema, mnoge
fotografija Intelovc maticnc ploce D875PBZ. Sva prava na fotografiju zadr?.ava korporacija Intel,
2003. a ovde jc upotrebljcna uz njcnu dozvolu. 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
I. Podno7je za proccsor Pentium 4 5. Prikljucak za disk 8. USB 2.0 prikljucci svet kakav poznajemo. Toga dana cc istovremeno otkazati svi, 8000 godina stari pro-
2. Cip R75P Dl podr.,ku o Ciigahitni Ethernet lJ. I-IIadcnjc grami napisani na COBOL-u.
3. Podno?ja ;:a rnemorij,kc Cipove 7. Pet PC! uticnica 10. BIOS Uz to stu sc na njima izvrsava softvcr star prcl..o 30 godina. recirno i to da od ne-
-L AGP uticnica davno, zahvaljujuci lntcrnetu. ccntralnim racunarima nadenc su nove namcnc. Sada
radc kao mocni Internet servcri, na primer, za obradu ogromnog broja transakcija
1.3.8 Skup radnih stanica elektronske trgovine u sekundi. narocilo u poslovnirn oblastima gdc sc barala ~a og-
rornnim bazama podataka. Jako su glavnc tcme ove knjigc licni racunari, servcri i mi-
Zbog svc povoljnijeg ounosa ct:na/pcrfonnanse kod raunih slanica i licnih racunara, krokontrolcri, u poglavlju 5 jos malo ccmo govuriti i o ccntralnim racunarima.
klm\lruktori siskma su ud nedavno poceli da ih uvcliko povczuju u skupove radnih Do ncdavno jc pw;tojalajos jcdna kategorija racunara, cak mnogo mocuija ml cen-
stanica (engl. Clusters of Workstations, COWs), ponckad zvane klasteri (engl. clu- tral nih racunara, a to su superrai:unari (engl. .\·upercumputers). Oni su imali izuzetno
sters). Oni su sastavljeni od standardnih lie nih racunara iii radnih stanica povezanih gi- brzc mikroprocesore, mnogo gigabajta radne memorije i vrlo brze diskove i mrczc.
gabitnim mrcl:ama i izvrsavaju spccijalan softver koji svim racunarima u skupu Korisceni su za ohimna naucna i tchnil'ka izracunavanja. kao .~to su simulir~rnje suda-
omogucava da radc na zajednickom problemu, cesto i·z oblasti nauke iii inzenjerstva. ra galaksija. pravljcnjc novih lckova iii moclelovanjc toka vazcluha oko avionskih kri-
Ti racunari su obicno ono sto hismo nazvali potrosna roba (engl. Commoditv Of/The la. r'vlcdutim. pu~lednjih godina klasteri ral'unara obczbectuju istu racunarsku snagu
She!;; COTs), tj. mogu sc nahaviti od svakog proizvmtaca racunara kao dncvnc novine. po mnogo nizoj ccni, pa su pravi superracunari na pragu izumiranja.


~, ;
at.
iv~ 36 Po~lavlje 1: Uvod 1.4 Odahrani primeri porodica racunara 37
.

i~'
'

---··---·
1.4 ODABRANI PRIMER! PORODICA RACUNARA Cip Datum MHz Tranzistori Memorija Napomene
4004 4/1971 0,108 2300 640 Prvi mikroprocesor na cipu
U ovoj knjizi cemo obraditi tri vrste racunara: licne racunare, servere i ugradene
8008 4/1972 0,108 3500 16 KB Prvi 8-bitni mikroprocesor
racunare. Licni racunari nas zanimaju jer svaki citalac nesumnjivo ima jedan takav. ---

'~0·l
Servcri nas zanimaju jer izvrsavaju svc usluge na lntcrnetu. Najzad. ugradcni racuna- 8080 4/1974 2 6000 64 KB
namene na cipu
PNi mik<op<oceem
ri, iako skriveni od poglcda korisnika, upravljaju automobilima, lelevizorima, mikro-
8086 6/1978 5-10 29.000 1MB ~rvi 16-bitni mikroprocesor na
talasnim pecnicama, ves-masinama i skoro svim drugim elektricnim uredajima koji
ClpU
ko::.wju vise od 50 dolara.
8088 6/1979 5-8 29.000 1MB Koriscen u IBM-ovom PC
u ovom odeljku. ukralko cemo prelbtaviti tri racunara koje cemo koristiti kao pri- racunaru
mere kroz citavu knjigu, po jedan iz svake od tri kategorije. To su racunari s pruce- -
80286 2/1982 8-12 134.000 16MB Postoji zastita memorije
sorima Pentium 4, UltraSPARC Ill i 8051.
80386
-·-
-t 10/1985 16-33 ' 275.000 4GB Prvi 32-bitni mikroprocesor
80486 4/1989 25-100 1.2M 4GB Ugradenih 8 KB kesa
1.4.1 U vod u Pentium 4 . -
Pentium 3/1993 60-233 3,1M 4GB Ova procesna taka; kasniji I
Rnbert Noyce. pronalazac silicijumskog integrisanog kola, Gordon Moore (cuvcn modeli imaju skup MMX
po svom zakonu) i Arthur Rock, invcstitor iz San Franciska, 1968. godine osnovali su 1-------- ' - - · - ·
instrukcija ~
kompaniju Intel da bi proizvodili rnemorijske cipove. U prvoj godini poslovanja Intel Pentium Pro 3/1995 150-200 5,5M 4GB Ugradena dva nivoa kesa
je prodao cipovc u vrednosti od samo 3000 dolara. ali jc posle toga posao krenuo. Pentium II 15/1997 233-450 7,5M l 4 GB Pentiu-m_ Pro plus skup tv\MX l
Krajem sezdesetih godina kalkulatori su bili nczgrapne elcktromehanicke masine 1 . mstrukct]a ~
~E instrukcije za 30 graflku
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-
Pentium Ill
Pentium 4
2/1999
11/2000
I
650-1400
~00·3800
9,5M
42M 14GB
4GB
---·---l
IHipernitni rad; dodatne SSE
mstrukcl]e -
1

vede 12 specijalnih cipova za ugradnju u buduci clektronski kalkulator. Intelov in- 1

zenJer Ted HolT koji je bio zadu!.en za ovaj projckat zakljucio je dace 4-bitni procesor Stika 1-11. Porodica [ll[ciovih milropnKcsma. Radni takt je izra?cn u Mll7 tmegahcrcirn.il
opstc namene ~mcsten na jedan jedini cip obaviti isti ptlsao uz manje komplikacija i pri ccmu I iVI Hz OJ:nacava mil ion ciklw;a u sek.undi.
troska. Tako jc Jl)70. godine roden prvi mikroprocesor na jednom cipu - proccsor
4004 sa 2300 tranzistma ( Faggin ct a\., ll)l)6 ). Posle cipa 8086 pojavio se cip 8088 iste arhitckture koji je izvrsavao istc prog·a-
Treha primetiti da ni Intel ni Busicom nisu bili svesni sta su postigli. Kadaje Intel mc, alijc umcsto 16-bitne imao 8-bitnumagi.stra\u. zb,lg cegaje bio spunji ijeftiniji
odlucio da ipak pukusa da upotrcbi cip 4004 ill drugim projektirna. on je ponudio da od svog prethodnika. Kadaje IB!YI izabr:m cip 808?> lew mikroprucc'ior ;~a svoj pF<!-
bitni IBM PC. taj cip je ubrzo po.stao standard u industriji liCnih racunara.
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
t Proccsori 8088 i 8086 nisu mogli adrcsirati \ i'c nd jcdnog mcgabajta mernurje.
poceo da razvija X-bitnu verziju cipa 8008. kojaje predstavljcna 1972. godine. Na sli- Pocetknm osamdesetih goclina lo je pustajalo sve oLhiljniji problctn. pa jc Intel p·o-
ci 1-11 pri kazana je porodica [ntelovih cipova, pocevsi od prvih: 4004 i 8008. jektovao prucesor 80286. kompatibilan s procesnwm 8fJ86. Osnovni skup instrukcija
[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
I
~I
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 kompatibiln<l~L'u sa stari;im
cipovima. Procesor 80286 iskorisccn je za racunare lBM PC/ Xr i za osrc~dnje mod:lc
r u,~·
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- PS/2. Slicno procesoru 8088, i model 8028(1 je postigao veliki usreh, uglavn•):n vto
kroprocesor opste namene. koji je prcclstavljen 1974. godine. Slicnn racunaru PDP-8. ' sto su korisnici smatrali eta je to br!:i pwccsor 8088.
i uvaj proizvod jc munjevito osvojio tdistc i mlmah postau roba ;iroke potrosnjc. Sa- ~ 'I Slcclcci logiean kmak bio je pravi 32-bitni procesnr. model ~0386. preclstavljcn
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
!_~1.1
~
ll)85. godinc. Slicno procesoru 80286. i onje manjc-vi~,~ bio komratibilan sa stari im
verzijama svc du mode !a 8080. Ta kompatibilnosr bila je blagoslov za k_c,risnike 1.oji
sujos uvek /.~:\elida na njemu izvrsavaju stariji sortvcr. alit velika smctnja onirna koji
je projcktovan po uwru na R080. ali nije bio potpunu kompatibilan s njim. ~ su tezili za jcdnostavnom. cistom i savremenom arhitckturum, ncoptcrec..:mlm fi'C-

I
skama i tehnoltlgijom pn,~lih vrcmena.
IIIII::!!!"''"''"-
~~··

r
.;~
38 Poglavlje 1: Uvod I A Odahrani primeri porodica racunara 39

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 pod1·sku 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
Slika 1-12. C:ip Pentium 4. Sva prava na fotografiju z.'rdr/.ava korporacija Intel. 2003.
drugacija. U rnesto elva i vise kana !a za podatke, Pentium Pro je clobio sasvirn drug a ovde jc upotrcbljcna UL njihuvu duLvolu.
ciju unutrasnju organizaciju i mogao je istovrerneno da izvrsava do pet instrukcija.
Druga novost u procesoru Pentium Pro hilaje clvostepcna kcs memorija. Proeesor- Osirn glavne serijc svojih procesora 7.a licnc racunarc koju smo upisali, Intel je pro-
ski cip je imao 8 kilobajta hrze memorije za cuvanjc najce~ce koriscenih instrukcija i izvodio i verzije Pentium cipova namenjene specijalnim trzistima. Pucetkom 199:-l.
drugih 8 kilobajta za cuvanje najcdce koriscenih podataka. U pakovanju s Penti- godine Intel je predstavio novu seriju pro..:csora nazvanu Ccleron. jcrtiniju i pn per-
umom Pro (aline na samom cipu) nalazila se i druga kes-memorija od 256 kilobajta. forrnansama slabiju verziju I'entiuma IL namenjcnujeftinim PC racunarima.
Iako je Pentium Pro imao veliki kes, nije dobio MMX instrukcije (posto Intel nije Posto Celeron ima istu arhitckturu kao i Pentium II, neccmo ga u ovoj 1-.njizi vise
mogao da proizvede tako veliki cip po prihvatljivoj ceni). Kadaje tehnologija napre- razmatrati . .luna 1998. godine Intel je proizveo speL·ijalnu verziju Pentiuma II za za-
dovala dovoljno cia su se na istom cipu mogle smestiti i MMX instrukcije i kes, kom- htevnijc trz.iste. Ovaj procesor, nazvan Xeon. irnao je vecu kes mernoriju. br/u mag:i-
binovani proizvod je predstavljen svetu kao Pentium II. Da bi se uhrzao rad sa 3D stralu i holju podrsku1.a viscproce~orski rad. ali jc u su.~tini o'tan Pentium II, tako da
graf1kom, kasnije je dodato jos instrukcija za podrsku multimediji. One su nazvane ni njega necemo poscbno izdvajati. Pentium III jc takocte imao svPju verziju Xeon.
SSE instrukcijc (engl. Strea111ing SIMD Extensions) (Raman et al., 2000). Novi cip Novembra 2000. godine Intel jc prcdstavio Pentium 4 koji je izvrsavao iste pru-
je postao po1.nat kao Pentium III. ali je u sustini to i dalje bio Pentium ll. grame kao Pentium III i Xeon, ali je imao sasvirn novu konstrukciju. U vcrziji kojajc
Slcdeci procesor Pentium zasnuvan je na potpuno clrugacijoj unutrasnjoj arhitek- imala radni tal-.t od 3,06 GHz uvedcn je istovrcmeni rad s vi;e programskih niti (o
turi. Da bi obdezio taj dogadaj, Intelje s rimskih brnjeva pre~ao na arapske i ncu:vau tome cemo govoriti u puglavlju X).
ga Pentium 4. Kao sto se i ocekivalo. Pentium 4 je bio brzi od svih svojih prcthodnika. Clodine 2003. Intel jc proizveo procesor Pentium :\1 (!\11 oznaeava Mubile). cip na-
U verziju koja je imala radni takt od 3,06 GHz uvedena je i zanimljiva nova mo- menjcn prenosivim racunarima. On je hio cleo arhitekturc Ccntrino. a ciljevi su bili
gucnost- istovremeni rae! s vise programskih niti. Onaje ornogucavala programima da manja potrosnja radi duzcg trajanja baterija. manji i laksi racunari i ugradena podrska
svoj rae! podele u elva programska toka kojima je Pentium 4 rnogao paralclno da upra- za be:l.icno umre:l.avanje prema ( WiFi) stanc!ardu IEEE 802.11. Intel je nameravao da
vlja, sto jc ubrzavalo izvrsavanjc. Osim toga. dodat jc jos jedan poclskup SSE instruk- ponudi skupove cipova i za drug:e buduce spcciticnc primene- na primer, za uredaje
cija za dopunsko ubrzanje obrade zvuka i slike. Na slici 1-12 prikazanaje fotogralija za kucnu L<tbavu i prcnosive racunarc po stanclardu IEEE S02.16 ( WiMaxJ.
cipa Pentium 4. Onje dimcnzija 16 111111 X 13,5 nun- jedan izuzetno veliki cip.
Poglavljc l: Uvod lA Odabrani primed porodica rai'unara 41
40 ~----------------------------

Svi Jntdovi cipovi su kompatibilni sa st<u·ijim verzijama sve do procesora R0l)6_ Zakljucakjc cia sc nezadrzivi rast radnog takta mora privremeno obuzdati, bar dok h-
Drug:im recima, Pentium 4 moze bez izmene da izvrsava programe pisanc za proccsor tdovi inzenjeri ne otkriju kako da na etikasan nacin odvcdu oslobodenu toplotu.
:-\086. Takva kompatihilnostje za Intel uvek bila projektni imperativ kako bi sc korisni- Umesto poveeaja radnog takta, Intel bi u buducnosti mogao da stavi elva procesora 1a
cima ornogucilo da i na novim procesorima izvrsav<uu softver u koji su ulozili novae. isti cip, zajedno s velikom deljenom kcs memorijom. Zbog zavisnosti snage od napJ-
Ram me se daje Pentium 4 za tri reda vclicine slozcniji od procesora 80R6, pa rnoze da na i radnog takta, dva procesora najednom cipu manje su snage odjcdnog dvostruto
ur~tdi mnogo toga sto procesor 8086 nc moze. Da bi se postigla kompatibilnost, dnbi- brzeg proccsora. Prcma tome, razvoj koji predvida Mooreov zakon u buducnosti .;e
_jenaje arhit-:ktura koja nijc tako elegantna kao sto bi mogla biti daje neko konstrukto- moze holjc iskoristiti ukoliko sc bude na L'ip ugradivala sve veca i veca kcs memoriJa,
riJ:icl Pcntiuma 4 ciao 42 miliona tranzistora i naredio im da sve urade iz pocetka. nego ako se povecava radni takt (posto memorija ne trosi toliko snage).
Zanimljivo Je primetiti cia Monreov zakon ne vazi samo za broj bitova mcmorije,
vl'C i z:l prncCSlli'Ske cipove. Kada na polulogaritamskoj skali prikazemo broj ugradc- 1.4.2 Predstavljanje cipa UltraSPARC III
nih tranzi~tora (slika 1-12) u zavisnosti od datuma proizvodnje L'ipova, uvericemo se
Sedamdesctih godina pros log veka UNJX je hio popularan na univcrzitetima. ,tli
da ;\J,,orcov zakon vazi i ILL Ta zavisnost je prikazana na slici 1-13.
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-
Pentium 4
lOOM
Pentium Ill dine Ill~ I. Ncmac Andy Bechtobheim, diplomac sa Stanforda koga jc ncrviralo ~to
mora da ode u ral'unski centar kad god hnce cia koristi UNfX. odlucio je da rt.'Si aj
10M
1M Mooreov zakon
problem tako sto ce sJm napraviti radnu stanicu pod UNIX-om od komponcnata hje
lOOK se mogu naci na trzistu. Nazvao ju jc: SUN-\ (Stanford University Network).
lOK
80286 Pentium Bcchtolshcim jc ubr1"0 privukao pa.i.nju 27-godisnjcg Inclusa Vinoda Khoslae, k'1ji
lK
~

0
;;;
100 8086
• 80386
Pro je goren od zcljc da se h.ao milioncr pcnzionise u tridesetoj godini. Khosla je ubccio
10
~ •8088 Bechtolsheima da osnuju kompaniju za proizvodnju i prodaju radnib stanica Stn.
m 1 1-4004 8080
Khosla je unajmio Scotta McNcalyja, drugog diplumca sa Stanfnrda. da vodi pro z-
2 ......- vodnju. Za pisanje softvera angazovali su Billa Joyja, glavnog projcktanta Bcrkel~y
OJ 8008
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 mno~o
mocnijc (otuda i naziv ,.radna stanica"l i od samog pucetl-;a ,,u bile prcdvidcne za ud
1970. 1972. 1974. 1976. 1978. 1980. 1982. 1984. 1986. 1988. 1990. 1992. 1994. 1996 1998. 2000.
u mre/:i. Svaka radna stanica Sun bila jc opremljena mrel:nim Ethernet prikljul'koJ.1 i
Godina kad je cip predstavl1en
imalajc TCP/!P softvcr za pove.~:ivanjc na mrdu ARPA>~ET. prc'tccu lntcrneta.
Slika 1-13. Mooreov .cakon za (lntclovcJ proccsorskc cipove. Godinc 1987 firma Sun, koja je tada prodav:da ~istl'me u \ redno~ti od pola mili-
jarde dolara godi;njc, odlul'ila je da napravi Sl)pstYeni miJ,.ropmcesor knji hi s.: ;a-
lakl1 ce
Moun:ov zaknn verovatno \·azitijos neko vreme. ubrzano se pojavljuje sve snivao na revolucionarnom novom pmjektu izrac1e:wm na Cnivcrzitctu Kalifornijt u
veci problem s disipacijom toplotc. Manji tranzistori omogucavaju rad pri visim Berkliju (RISC ll). Taj mikroprocesur. naz\an SP.\RC (Scalable Prncc:sstl!. ARCili-
ui\:stalo~tima, za sta ~u neophodni vcci naponi. Snaga i proizvedena toplota rastu s tccture. prosiriva arhitektura proeesora). bio je jczgru racine stan icc Sun-4. Nijc mm-
kvadratom napona, tako da brZi rad izaziva i veci problem sa odvodcnjem toplote. Na go proslo, a sve racine stanice SUN kori::tik su prncl;sur SPAR C.
radnomtaktu od 3,6 GHz. Pentium-+ ima snag.u od 115 vati. To znaci daje zagrcjan Za razliku od mnogih drugih racunarskib kornpani_i;:, !irma Sun jc o.ilul'ib da r;c
pribJizno Llo .sijalica od 100 vati. Povecavanje radnog takta samo dodatno pogor.\ava pruizvodi sama procesor SPr\RC. Ona jc za njcg;>vu rroizv<'dllJU <Jvla~tila n.ckoJiqJ
stvari. proiz.vodaca poluprovodnika. nadajuci sc dace ku::k.tir<.:ncija uC:initi ~vojc ida ce (ip
Novembra 2004. god inc Intel jc prckinuo razvoj Pentiuma na 4 GHz zbog proble- postajati sve bolji i jeftiniji. Proizvodal:i -;u napra\ ili nil razli~·Jtlh L:ipovcl koji .-<use
ma sa odvodcnjcm toplote. Vclik1 ventilatori mogu da pomognu. ali sum koji prave zasnivali na razlil'itim tchnulogijama. radiii m r:vlicitim rad:lii:<l~tktuvima. i nara .. 10
nijc bas omiljen medu korisnicima. a vodcno hladenje kojc se koristi u centralnim ~ razlicito kn;tali. iVledu njima SLI bili l:ipovi wlicmSP,\RC, H:Jr•.:rSf',\RC, Supt'i-
racun<trima nije has neko rdenje za stone racunare ta gotovo nikakvo za prcnosive). SPARC i TurboSPARC. fako su se rnalu razlikovali, ,;\i ~una 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 1.4 Odahrani primeri porodica racunara 43

Sunje uvek tezio da arhitekturu procesora SPARC odr:li otvorenu, s mnogo doha- 1.4.3 Cip sost
vljaca dclova i sistema, kako hi podstakao razvoj industrije i stvorio konkurenciju u
Nas treci primer se veoma razlikuje od prvog (Pentium 4, namcnjen licnim racu-
svetu licnih racunara u kome su vee' dominirali Intelovi mikroprocesori. Da hi stckao
narima) i drugog (UltraSPARC Ill, namenjen serverima). To je cip 8051, koji se ko-
povcrenje kompanija kojc su se zanimale za procesor SPARC, ali nisu zclele da ulazu
risti u ugradenirn sistemima. Prica o cipu 805 l pocinje 1976. godine, u vreme kadaje
novae u konkurentski proizvod, Sun je stvorio industrijski konzorcijum SPARC In-
8-bitni cip 8080 vee oko dve godine bio na tr:listu. Proizvodaci kucnih aparata poceli
ternational koji c'e upravljati razvojem huduc'ih verzija arhitekture proccsora SPARC.
su da ugraduju cip 8080 u svoje uredaje, ali da hi sistem hio potpun, nijc hio dovoljan
Shodno tome, vazno je uociti razliku izmedu SPARC arhitekture koja predstavlja spe-
samo cip 8080. vee ijeclan iii vise memorijskih, kao ijcdan iii vise ulazno-izlaznih ci-
cifikaciju skupa instrukcija i drugih moguc'nosti vidlji vih programerima, i konkretne
pova. Troskovi za ugraJnju harem tri cipa i njihovo medusohno povezivanje nisu hili
realizacije tc arhitekture. U ovoj knjizi havic'emo se i opstom SPARC arhitekturom, i
mali, pa su racunari ugradivani u vcce i skuplje modele aparata. Mnogi proizvodaci su
(u okviru teme o procesorskim cipovima u poglavljima 3 i 4) konkretnim SPARC ci-
predlagali lntelu da ceo racunar (procesor, mcmoriju i ulazno-izlaznu jcdinicu) stavi
povima ugradcnim u radne stanicc Sun. na isti cip kako bi smanjio tn)skove.
Prvi SPARCje hio 32-hitna masina kojaje radila na 36 MHz. Procesor nazvan ce-
Intel je oclgovorio tako sto jc napravio cip 8748- mikrokontrolcr sa I 7.000 tranzi-
Iobrojna jedinica (engl. Integer Unit, IU) hio je mali, sa samo tri osnovna formata za
stora, procesorom slicnim procesoru 8080, jednim kilobajtom programske memorije
instrukcije i ukupno 55 instrukcija. Pored toga, jedinica za racunanje u formatu po-
samo za citanje, 64 bajta memorije za citanje i upisivanjc namcnjenc promenljivama.
krctnog zareza imalaje i svojih 14 instrukcija. Ovo sc mozc uporediti sa razvojcm In-
8-bitnim mcracem vrcmcna (tajrnerom) i 27 ulazno-izlaznih vodova za kontrolne pre-
telovih procesora, koji jc poe eo 8-hitnirn i 16-hitnim cipovima (S088, 8086, 802S6 ),
kidace. dugmacl i signalne lampice. Jako primitivan, ovaj cip je postigao komercijalan
da hi 32 hita dostigao tck sa procesorom 80386.
uspeh, sto je Intel podstaklo da !980. god inc na trzistc izbaci cip 805 I. Nov cip je irnao
Prvi SPARC-ov raskid s proslosc'u desio se 1995. godine, kada je stvorcna de veta
60.000 tranzistora, rnnogo brzi proccsor, 4 KB memorije samo za citanje, 128 hajtova
verzija SPARC arhitekture. prava 64-hitna arhitektura sa 64-hitnim adresama i rcgi-
mcrnorije za citanjc i upisivanjc, 32 ulazno-izlazna voda, serijski prikljucak i elva
strima. Prva Sunova radna stanica u kojuje implcmcntirana arhitektura V9 (verzija 9)
16-bitna mcraca vremcna. Uskoro su usledili i drugi clanovi porodice cipova
hila je stanica UltraSPARC I, predstavljena 1995. godine. (Tremblay i O'Connor,
MCS-51, kako ju jc lntelnazvao (slika l-14 ).
1996). !ako je hila 6-+-bitna, ona je na hinarnom nivuu hila potpuno kompatibilna
s postojccim 32-hitnim SPARC raclnim stanicama. - ---·

IT
Programska Tip memorije RAM Meraci Programski
UltraSPARC je bio namcnjcn novim trz.istima. Dok su dotadasnji racunari radili sa memorija vremena prekidi

~
alfanumerickim podacima i izvrsavali program za obradu tcksta i program za unakrs- (tajmeri)
---· ---~--- ---~-
--f----
na izracunavanja, UltraSPARC jc ohraL1ivao slikc. zvuk, video zapis i multimediju u 0 KB 128 2
~
5
-
celini. Osim 64-bitne arhitckturc. bilo jc tu jos nov ina kao sto su 23 nove instrukcije, ROM
~~'
4 KB 128 2 5
medu kojirna i nckc za pakovanje i raspakivanje pikscla iz 64-bitnih reci, za menjanjc --
I875, 8 KB EPROM 128 2 5
velicine i rotiranje slika. premdtanjc hlokova tc za komprimovanje i dekomprirno-
vanje video zapisa u rcalnom vremcnu. Ovc tzv. VIS instrukcije (Visual Instruction
!so 2 0 KB 256 3 6

~
)
8 KB ROM 256 3
Set. skup .,vizuclnih'· instrukcija) bile su namenjene za opsti rad s multimedijom. ana-
logno lntelovom skupu MMX instrukcija. L___
---
+-----'
8 KB EPROM 256
+--
3 :__===]
UltraSPARC je bio namenjcn najl'ahtevnijim aplikacijama, (npr. velikirn Web \cr- Stika 1-14. Clanovi porouicc cipova MCS-51.
vcrima s vi~e 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 Svi ovi cipovi imali sumernoriju samo za Citanjc (namenjenu programu) i malu ko-
racunarima. licinu RAl'\1 mernorijc (Random Access Memory, rncmorija s dircktnirn pristupom)
UltraSPARC J su tprirodno) naslcdili UltraSPARC II, LlltraSPARC' Ill i Ultra- za citanjc i upisivanjc (namenjenc podacima). Kod cipova 8031 i 8032 programska
SI'ARC IV. Ovi modcli su se prvcnstvcno razlikovali po radlll'lll tak.tu, ali je u svaki mcmorija je hila izveclcna kao spoljna. s rnogucnoscu ukljucivanja i dodatnih 8 KB
clodato .JOS pondto. Kada budcmo govmili o SPARC arhitckturi u ovoj knjizi, uglav- ~tku jc neophodno. Mcmorijc ROM (Read Only Memory, memorija samo za citanje)
nom c'cmo kao primer koristiti 64-hitni V9 model UllraSPARC Ill Cu. UltraSPARC i EPROM ( Erasahlc Programmable ROM, izhrisiva programabilna memorija samo
IV je u osnovi procesor u k<Jmc dva UltraSPARC-a Ill na zajednickom cipu dele istu za citanje) obradic'crno u poglavlju 3. Zasad jc dovoljno reci da su mikrokontroleri
memoriju. 0 njcmu ccrno govoriti u okviru temc o multiproccsurima u poglavlju 8. S05! i S052 i~:vcdeni 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 1.5 Metrii'ke jedinice 45

Da bi napravio sortvcr, kupac jt: morao imati i razvojni sistem. Tu su na scem1 l.S METRICKE JEDINICE
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 Da bismo i;.begli zabunu, treba jasno i glasno rec'i da sc u ovoj knjizi. kao i inace
kodu, program se iz cipova '11,75 I i 8752 mogao izbri~ali tako sto Sll se cipovi izlagali u racunarstvu, koristc mctrickc jcdi nice (umesto tradiciona1nih anglosaksonskih jecli-
ultraljubicastoj svetlosti, poslc cega bi se u njih mogao upisati nov program. Kada hi nica u stilu arsin-livra-pinta-dan hoda). Osnuvni pn:hksi metrickih jcdinica prikazani
ispitivanje solhera bilo zavrseno, softvcr hi bio prosledcn proizvodacu cipova, h.oji bi su na slici 1-15. Oni sc obicno skracuju na pllcctno s1ovo, iza koga sledi vc1iko slovo
tada napravio namcnskc cipovc 805 I ili 8052 s clatim koclom. zajcdinicu ako je ona vcea od 1 (KB. MB ild.). Od ovoga se (iz istorijskih raz1oga)
U pogledu arhitckture, prikljucivanja i programiranja, svi pripadnici poroclice izuzima kb/s (kilobiti u sekuncli). Tako K<llllunik~,.:ioni kana] brzinc I Mb/s propusta
MCS-5 I hili Sll vrlo sl icni. Zbog jednostavnosti najvise c'emo pominjati cip 8051' [(i1 bitova/s. a radni takt periode ciklu~a od 100 ps otkucava svakih 10-IO sekundi.
isticuci po cernu sc razlikujc od drugih cipovc gde je to potrebno. Posto oba pretiksa mili i mikro pocinju ~lovom .,m", dogovoreno je da skrac'enica za
Nekima cc Ufimanje za primer 8-bitnog cipa starog barem 20 godina zvucati po- mili hude ,m·', a za mi~ro - ,!J" (grcko s10\o mi).
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 [E~;Po'ne~-1 Decimatni form~-~s1E.kspon~~- Decimalni format Prefiks
Cljall11 : I I Cljall11
prodatih Pentiuma. Tck je 2001. gmline broj 8-bitnih mikrokontrolera prevazi.;;m broj Imnozitelj ! \ I mnozitelj ,
prudatih 4-hitnih mikrokontrolera. Trenutno prodaja 8-bitnih mikrokontrolera preva- 1

zilazi sve druge mikrokontrolere zajcdno. a porodica cipova MCS-51 najpopularnija ~~=~19 001 -------~:~-~68 1.000 Kilo .
'1 0° I 0,000001 I mikro \10 1.000.000 Mega ~
je porodica 8-hitnih cipova. Kada unncmo u obzir vaznost ugradcnih sistema. svako
l~o- 9 -=~I_G:ooooo_o~_(l1-~-=~-~~anoi2_~==-.-- J
•""'toi
ko proueava arhitckturu racunara mora da poznajc cipovc koji se unjima koriste, a cip 1.ooo.ooo.ooo - Giga
8051 jeclan jc od najpopularnijih La tu svrhu.
Mnogo sta je doprinelu uspcsnosti cira 8051. Prvajc i najvaznija njcgova cena. U . \ ~~- ~ ___ j~000_0~0?000?1_ f

r 10
1
15
p_:_k_o_.=}~=--
i 0.000000000000001 I femto )1 0 15
1 000.000.000 000 Tera
1.000.000.000.000.000 Peta
J
J
zavisnosti od broja naruccnih komada, Cip 8051 moze ;,e dobiti .-:a o~o I 0 do 15 centi,
pa cak i jeitinije ako jc narudzbina vclika. Nasuprot tome. 32-bitni mikrukontrolcri po I . [-1~8-----! o.ooooocooooociooo F~-~10 18
I I 001
!o~ooooooooooooooo ! cepto
I ------+
1.ooo.ooo.ooo.ooo.ooo Eksa 1
.000 __j

I;
pravilu kostaju oko 30 pula vise, dok su I o-bitni ncgde innedu. Za pn>il\'C>JC cijaje i1o 21 _ _ _ 1-1021 1.000.000.000.000.000 Ceta - 1
cena na slobudnnm tr7.istu manja od 50 dulara. smanjcnje proizvodniil troskuva i za .
! ! 000001
·--·----;:::;--·---~: -------- - -
I
-------t-~---~--,
I
--- -
.000.000 I J I
I
I

par dolara znaci mnogo u pogledu cenc i pnxi:lje. To je glavni razl<>g popularno~ti ! 10 d i O.OOOOOOOO.JOOOOCO : jokto 11 o 2 ~ 1.000.000.000.000.000 Jot a j
cipa ~05 I -on je iw1.etno jeftin. IL-·--···- __ i 000000001 I . .000.000.000

I
____L _ _ _ ·~----- - - _ _ _ _ _ _ _:_ _ _ _ _ __j_______ -

Drugo, vise od polovinc kompanija koje prave cip X05l proiL'vndc ga po IntchJvoj Slika 1-15. Osnmni prcfiksi metriCkih jedinica.
.
licenci. NjihPvi proizvocli pokrivaju sirok raspon brzinc. ud prvobitnih i 2 MHz do .

I~
100 M!-lz, a prave se razlicitim tehnologijama i dru!:'-acijc ;:e pakuju. Cena j" nisb Trcba na,<:Ll-;iJi i da pri izra/avanju vclicine memorijc, cliskova. datotcka i baza
upra\'u zbog konkurcncije, a i \cliki kupci vi;c vok da nc .-:avi:;e iskljucivo <ldjedn<Jg pPdauka. Ll U()hi(::tj;:noj rrak,;i jl~dinice imaju nesto drugacije znacenjc. Tako kilo 0/.na-
11
o-nabdevaca. C:JV<l 2 J ( 10::'-+J umestJ) Ju-' ( iOOOJ jer je kapacitct memorije uvek stcpen broja dva.

Trece. po.~ro -.,e cip 1\051 vee' dugo primenjuJe. ;a nje.c:a po'.tojJ mnogn \Pftvcra. ~vkn1t1rija ud l 1<13 saJr/.i 1!l~-+ bajta, a nc 1000 bajtova. Slicno tome, mcmorija od
ukljucujuci asemblcrc, programske prevoJiocc za program,f.:i jczik C i dm.c;c jaikc, 1 \I B saJr;i.! 2 21 i ( I .04R.5 7(l) 1··~:jtova. memorija od 1 G B sadr:l.i 2-' 0 (1.073 .7 41.824) ba-
bihliote~c svih vrsla, programe za otkrivanic grcs,tka. oi11JU!atore. sother /~ltc.c,tiranjc
i jt' 1va. a ba;a podata\.:t :1d ! T8 sadrz.i 10-1° ( J.()l)9.5 11.627 .776) bajtova. Medutim,
i ~tosra drugo. Na tr7.i~tu je i vi.~c raz\ ojnih si,tcrna knji uhrzava:u projd,rm~tnje ~ kulm~:tikacitJI!i bn~il brtinc I kb/.o, mozc da pmpusti I 000 hitova u sekundi. a loka1na
hardvera i sothcra koji se ugraltujc. 0ia kr~1ju. mnogi prugramcri i inzcnj<:'ri dnhru
poznaju cip 8())], S[() olaksa\ a pmna]azenje kvalitik<.>V~ll1t racine~ .'dlag".
Ovakva popularno.c,t ra:.tc sama nd sehe. R:.vvojni ini:enjcri koy rack na ugr~idenim
sislt'lllima cesto bimju cip c()5[upravo t:hc)g njegliVC ra~\·i"l)',tl'ailjenusti, da bi. na pri-
11lt?I'. isprobali novu tdmologiju kojom ~e skdi cncrgij~, (J\Lmin et al., ::'003) iii
-I
~

11
lll!'L'Ll brzi<1c I() \lh/o; pn1p11:;la 10.000.000 bitov~t!s jer ove dvc brzine nisu stepeni bm-
jct 11\ ~t. ;\lnugi. na?di'SL Llkn me~aju ove ,;isteme. naroCito kada se radio ve1icini dis-
kc.. a. Da J,,~;m.l i;he;:!i ch 1>,;;msknust. u ovoj knjizi cemo koristiti sirnbo1e KB, iVlB.
(~B 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 103 ,1 d', lOY
i I{) i 2 hitm<t/s. .
otp,,rnust na gre~ke (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 ~c j,,::, uvek pi;u ~njige tAyala, 200--1-;
C:alcutt et al., 200--1-; Mac Kenzie et al., 2005 i l\Lwd1 ·~t ell .. 2UU5 1.
~
~
.. , I
46 Poglavlje 1: Uvnd Prcglcd sadrzaja knjigc 47

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

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.
2
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 ORGANIZACIJA RACUNARSKIH
50, iako je radni takt prvog mmkla samo pet puta veci. Kako ohjasnjavate ovo nes-
laganje? SISTE~J1A
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- Digitalni racunar JC sistem mcdusohno povezanih mikroprocesora, rncmorijt i
ra. Prema Mooreuvom /akonu, koliki ce biti tran;:i.,;tor na nwdt:lu iz sledccc gC>dinc·> ubzno-i.cla;:nih urcdaja. LJ O\om pogla\ lju prcdstavic'cmo vam ove tri komponente i
16. Pravni spur o tome ku je izmi~lio racunar poccu Jc apriia 1973. godinc. a sudio je ubja:,niti njih<>vc medusobne vczc kau pPdlogu za detaljno proucavanjc spccilicnih
Earl Larson. On jc prcd sobom imao prijavu o kr;enJU p~ttentnih prava kclju jc pnd- nivoa u -,lc:Jccih pet pogl:t\ lja. Pruccsori, memorije i ulazno-izlazni urcdaji kljucni su
nela kompanija SpeiTY I\ and. naslcdniJ.. palcnata La EN Ir\C. Njeno stanovi~tc jc bilo c:lcmenti b>ji pustuje na svakt,m nivuu. pa c'cmo nase proucavanjc arhitckture racu-
da svako ku pravi racunar trcba da joj isplat i nadoknatlu jcr t'na ;JtJ:.eduje kljucnc p:t- n:tra pl>C·cti tako slo c'cmo ih red11111 analizirati.
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 p;~tcntirali i DL~tu jc sudija stck:10 uti:,:tk
:!.1 PROCESORi
da se nJihov sistcm zasniva na Atanasuffljcvom radu'' Org:1ni/acija racunara s JCdnnsLtvn,;m magistral om prikazanajc na slici 2-1. Pru-

Ii
17. Navcdite tri osobe za kojc mislite da su najvi;c utic~dc
na st\aranjc sc~vrcmcnog racu- ccsor kugl. Ce!ltrul Pmcessin.~ Unit. CPU) .. muzak" je racunara. Njegova ulogajc
narskug hardvcra, ukratko opisite njihuv dop1inos i obr-tzlohtc zasto ste ih odabrali. da radi' programima 'mc~tenim u 2'-l:tvnoj mcmoriji. preuzimajuci njihove instrukci-
18. Punll\ ite vd:banjc 17. ali za racunarski solh cr. je. ispitujuc'i ih i iz-vr<oavajuci ih j<.:dnu ta drugom. Komponentc racunara su povezane
. magistra!om iii sa hi rnicom 1engl. rus 1 - :;kupom paralelnih vodova za prenoserje

I
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 nc~tll \ i~c.

I .J9
~"··

;;;1,r
~~
Poglavlje 2: Organizacija racunarskih sistema 2.1 Proccsori 51

Proccsor je sastavljen od vise razlicitih del ova. Upravljackajedinica jc odgovorna podaci za dva ulazna ALU registra, obeldena na slici sa A i B. Registri cuvaju podatke
za preuzimanje instrukcija iz glavne memorijc i utvrdivanje njihovog tipa. Aritmetic- dok ALU ne obavi svoja izracunavanja. Putanja podataka je veoma vazna za sve racu-
ko-logicka jedinica ohavlja operacije kao sto SLI sahiranje i logicko AND (1), koje SLI nare i 0 njoj cemo govoriti kroz citavu knjigu.
neophodne za izvrsavanje instrukcija.
A+B
Centralni procesor

A
Upravljacka Registri
jedinica
B
Aritmeticko
logicka
1edinica (ALU)
___ _A._ ------,
~

Registn Ulazni ALU registar

DD Glavna
Otsk Stampac Ulazna ALU magistrala
memorija

DD

ll Jt Jl JL Magistrala

Slika 2-1. Organizacija jednost'-lvnog racunar'-l s jednim proccsorom


i dva ulazno-izlazna ureuaja.
-·lzlazni ALU registar
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.
Slika 2-2. Putanja pod a taka tipicnog Von Ncumannm og racunara.
C'itanjt' registara i upisivanje podataka u njih odvija se velikom hrzinorn posto su oni
unutrasnje komponente procesora.
Aritmeticko-logicka jcclinica (ALU) ohavlja sabiranjc, oduzimanjc i drugc jcdno-
Najva7.niji registarje programski hrojac (engl. Program Counter. PC); on ukazuje
stavne operacije s podacima na njenom ula;:u. dajuci rezultat u svom izla;:num regi-
na instrukciju koju upravo treha preuzeti za izvrsavanje. (Tme ,.programski brojac" po-
stru. lz njega se rezultat opel moze vratiti u drugi registar. Kasnijc ~e sadrzaj registra
malo t.hunjuje jcr nema niccga sto bi trcbalo hrojati, ali se ono ipak univerzalno kori-
mozc upisati (tj. smestiti) u memoriju ako se to zeli. Ne postoje u svim konstrukcija-
sti). lsto taku. vazan je i regis tar instrukcija (engl. Instruction Register. IR); on cuva
ma registri A. B i i1.lazni registri. U primcru sa slike ilustrovano je sabiranjc.
instrukciju koja se trcnutno izvrsava. ( Vecina racunara ima i druge registre, neke za
Vccina instrukcija se moze svrstati u dvc kategurije: registar-mcmorija ili rcgi-
upste. a nckc 1.a specijalne namcnc.)
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-
2.1.1 Organizacija proccsora 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-
Unutrasnja urganizacija jednog del a tipicnng Yon Neumannovog procesora detaljni-
star-rncmorija omogucavaju da sc sadrzaj registara vrati u rnernoriju.
je je prika1.ana na slici 2-2. Taj deo se zovc putanja podataka (engl. duta path) i sastoji
lnstrukcije tipa registar-registar drugacije su. Tipicna instrukcija tog tipa preuLi-
sc od registara rohilcno od I do 32), aritmcticko-logickc jcdinicc (engl. Arithmetic
ma dva operanda iz registara, dovodi ih u ulazne ALU registre, ohavlja s njima neku
Logic Unir. ALt:l i vise magistrala koje pove;:uju komponentc. lz rcgistra se uzimaju
operaciju (na primer. -;abiranje iii logicktl AND) i rczultat vraca ujedan od registara.
f' 52 Poglavljc 2: Ot·ganizacija racunarskih sistema

Pruccs provlaccnja dva opcranda kroz ALU i smcstanja rezultata zove se ciklus toka
2.1 Proccsori

public static void interpret(int memory[), int starting_address) {


53

II Ova procedura interpretira programe za jednostavan racunar, kod koga instrukcije


podataka tengl. data path eve/e) i predswvlja samu sustinu vecine procesora. On u II imaju jedan operand u memoriji. Racunar ima registar AC (akumulator), koji se koristi
znatnoj meri delinise sta racunar mol:c da uradi. Stu sc brze izvrsava ciklus toka poda- II za aritmeticka izracunavanja. lnstrukcija ADD, na primer, dodaje broj
taka. i racunar brz.e radi. 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,
2.1.2 Izvrsavanje instrukcija II programski brojac, bit run i registar AC. Ulazni parametri su
/1 slika u memoriji i pocetne adrese.
Svaku instrukciju procesor izvrsava kruz Ill! nulih koraka. Pojednostavljeno. ti
kuraci su sledcci: PC~ starting_address;
I. Prcu;mi iz memorije skdeeu instrukci ju i smesti je u registar instrukcija. while (run_bit) {
instr ~ memory[PC]: II preuzmi sledecu instrukciju u instr
2. Pumcri programski brojac taku da uLvujc: na sledccu instrukciju. II uvecaj za jedan sadrzaj programskog brojaca
PC~ PC+ 1;
3. Odr.:di tip upraVtl prcuzetc instrukcije. instr_type ~ get_instr_type(instr); II odredi tip instrukcije
4 .. 'l.ko instrukcija kuristi ref iz memnrije. odredi gde se una nala;i. data_loc ~ find_data(instr, instr_type); II pronadi podatke (- 1 aka ih nema)
if (data_loc >~ 0) II aka je data_loc ~- 1, nema operand a
5. Ako jc putrt'hm\ pr.:uzmi rcc u registar procc-,ura. II preuzmi podatke
data= memory[data_loc];
(J. ltvr~iin-,uukciju. execute(instr _type, data); II izvrsi instrukciju
7. ldi na km~ 1 k 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.
Opt~;anr r:td pn ,,t',, 1r~t bli.-;kJ) 11Jgov·ar~t prugramu pisanom na cngleskorn jeziku. Sli- private static int get_instr_type(int addr) { .. }
ka 2-3 priLvuie ukav nd·,,nna!an programu uhliku Javine mctode (tj. procedure) ~:va­ private static int find_data(int instr. int type) { .. }
ne inliTJ!'Ci. R:tcunar kilji -,c intcrprctira ima dva r.:gistra vidljiva korisnickirn private static void execute(int type, int data) { ... }
prngran:i rm: j'rngram:;ki hrujal: 1 PC) Dt ukazi vanje na adresu sledcee instrukcije i aku-
muLLi';· (JI.CJ z.a c·uvanjc :tritmetickih raultata. On ima i Jva unutrasnja rcgistra za cu- Slika :!-3. Interpreter 1.a jednusla\ an racunar (pi,an na Javi )_
\.lllJc t\'J...L:(c: ln, 1:ukcijte dPI-. -.e ona ilvr;ava (instrl, tipa tckucc instrukcijc (instr_type),
:1dreo;c •J]Xran:L1 j 11 -.truf-,jjc (.]at'!_ icc; i -;amog tckuceg operanda (data). Pretpostavlja Ova mcL1usobna funkcionalna zamenjivost hardverskih procesora i ( softvcr,kih 1
"~ d.t sv :t!,:t in,,t 1·:;J...c:iia tn;a ;cdinstvcnu adr..:su u mcmoriji. Adresirana lokacija u rnc- intcrpretera znacajno utice na organizaciju racunara i projcktovanje racunarskih siste-
rnt >n: i \.ldr/.i " 111 :~ primer. pp,!at:J k ~,1ji trcba dodati akumulatorul. ma. Posto projcktantski tim postigne dogovor oko masinskog jeztka L za nov racu-
lt ,;iJnC L::njcntcc· d.> -~c J11tl('Ut.'e napi-,ati program koji irnitira funkciju procesora nar, mozc odluciti da li ce ll njega ugraditi hardverski procesor za dircktr,o
-;k:E cb i.l'. r'-it; 1,- pa•-.:r:li;i:t lie' mora da hudc .. hardverski" procesor- kutijica puna iz.vrsavanje programa pisanih na jeziku L ili L'c mozcla napisati interpreter za ~w:­
ekktron,kih tk!:·\ct iur'ii.:-: pri!:;rama nw/e hiti i neki drugi program koji ce rcdom voclenje programa s jezika L. Ako projektantski tim odluCi da napise interpreter. mo·a
!'lc'uLim,tti. ~r.ci i in r<.a'. ~ili ni,~gu> e ino;trukc:ije. Pmgram (kao onaj na slici 2-3) preclvickti i hardverski urectaj na kome ce se on izvrsavati. Mogucc su i izvesnc hi-
i iz\T<ava !nstruL·ije drugug prugrama zove se interpreter bridnc konstrukcijc s delom harclverskog izvrsavanp i delom softverskog prevodenj.L
(C::ngl. i.::[i'r.' (.-'fl'rL
1 kau ~!t) Sl11~) ll~l\'..?E u r•ngl~vlju j. Interpreter razla/.e instrukcijc svog ciljnog racunara na vise manjih koraka. Zh1·g
toga racunar na kome sc interpreter izvrsava mole da bude jcdnostavniji i jeftiniji l•d
pt. . cl';c c:ass i::;er;.: \
stat:-: ir-:~ ?C':
1. ;:Jrog:amski bropc cuva adresu sledece instrukcije harclverskog proccsora za ciijni racunar. Ustedaje posebno uocljiva ako ciljni racumr
3t:J::c. ;nt ~~c.
" akur<lulator, regrstar za aritmetrcka izracunavanja ima mnogo srazmerno slol:enih instrukcija s vise opcija. Ustedaje direktna posledica
stl.Tis ::·~t :r~st:· :. regtstar koJi cuva tekucu 1nstrukciju toga sto je hardver zamenjen solherom tinterpretcrom) i stu je skuplje umnozav~ti
st;ltic: int ;rstr .J'/pe· -'/tip ins~rukcije (opkod;
hardvcr nego soft vcr.
aoresa t-JOdataka iii- 1 aka ih nema
Prvi racunari su imali mali i jednostavan skup instrukcija. Potraga ~:a mocnijim
.1
::;ta~ic int d:..tla 1cc:
3latir: 1r:1 Car?... /,' i':uva ;ekuci operand
; bit ko 1i se maze iskijui':iti da bi se zaustavio program racun;Jrima. izmedu ostalog. podstakla je st varanje mocnijih pojedinacnih instrukciyt.
.ststic LJcc.:eJ.n -~~n :11L-::: uue: Vrlo rann je otktivc'no da sluzenije instrukcije cesto \ode brzem izvrsavanju progr~um,
.
p1fr 54 Poglavlje 2: Organizacija racunarskih sistema 2.1 Procesori 55
I
!~1
~~I cak i ako se pojedinacne instrukcije izvrsavaju duze. Instrukcija za izr:1cunavanje u for- Krajem sedamdcsctih, jednostavni procesori na kojima su se izvrsavali interpreteri
matu pokretnog zareza primer je slozenije instrukcije. Drugi primer je direktna podrska prosirili su se skoro na sve racunarc, izuzev na najskuplje modele visokih performan-
za pristupanje elementima niza. Ponekad su takve slozene instrukcije nast:1jale na si, kao sto SLI Cray-1 i serija Cyber korporacijc Control Data. ZahvaljujuCi interpreti-
osnovu jednostavnog zapazanja da se dve iste instrukcije cesto izvrsavaju jedna za dru- ranju. ncstala su ogranii'enja karakteristicna za slozene instrukcije i u arhitekturama
gom, pa bi isti posao mogla da obavi i jedna kombinovana instrukcija. Sll poceJe da SC koriste mnogo slozcnije instrukcije, narocito nacini na koje SC zadaju

Slozenije instrukcijc bile su bolje jer se pojcdinacne operacije mogu izvrsavati potrehni operandi.
preklapanjem iii paralelno uz korisL'cnje drugaCijeg hardvera. Za skupe racunare vi- Ovaj trend je dostigao kulminaciju s racunarom VAX korporacijc Digital Equip-
sokih performansi, ovaj dodatni hardver bi se lako isplatio. Zbog toga skupi racunari ment, koji je imao vise stotina instrukcija i koristio vise od dvesta nacina za zadavanje
visokih performansi po pravilu imaju mnogo vise instrukcija od onihjeftinijih. Medu- operanada potrebnih za njihovo izvrsavanje. VAX arhitekturaje, naz.alost. od samog
tim. rastuca cena razvijanja soft vera i zahtevi za kompatibilnosc'u instrukcija stvorili pocetka hila usmerena na implemcntiranje pomocu interpretera i niko nije razmisljao
su potrcbu da se slozene instrukcije ugraduju i'ak i u jeftinije rai'unarc kod kojih je o njenoj implcmcntaciji u mode lima visokih performansi. Zbog toga jc nastalo mno-
cena mrwgo va.Znija od brzinc. go instrukcija marginalnog znacaja koje su se vrlo tesko dircktno izvrsavale. Previd
Krajem pedesetih godina, lBM (tada vodeca racunarska kompanija) shvatio je da takve vrste bio je poguban za VAX, a i za kompaniju DEC (Compaq jc kupio DEC
podrzavanje jedinstvene porodice racunara koji izvrsavaju iste instrukcije donosi !998. godine, a Hewlett-Packard je kupio kumpaniju Compaq 200 I. godine).
mnogo prednosti i kompaniji i njenim klijentima. lBM je uveo izraz arhitektura da Iako su najraniji 8-bitni mikroprocesori hili veomajednostavni, s vrlo prostim sku-
bi opisao takav stcpcn kompatibilnosti. Trebalo bi da nova porodica rai'unara ima istu pom instrukcija, krajem sedamdesctih godina cak su sci mikroprocesuri okrenuli in-
arhitekturu implemcntiranu na razlicite naCinc i svi njeni clanovi mogli bi izvrsavati terpretiranju. Tokom ovog pcrioda. glavni izazov projcktantima mikroprocesora bila
isti program. a razliknvali bi se jcdino po ceni i hrzini izvrsavanja. Ali kako napraviti je mogucnost usloznjavanja njihuve konstrukcije pomoc'u integrisanih kola. Najvec'a
jcftin racunar koji bi mogao izvrsavati sve slozene instrukcije ugradene u skupu prednost pristupa zasnovanog na intcrpretiranju bi lo je konstruisanje jednostavnog
masinu visnkih performansi? procesora. dok je slozenost prcpustana sadrzaju memorije- interpreteru. Na taj nacin
Odgovur jc u interpretiranju. Ova tehnika. koju je prvi predlozio Wilkes ( 1951 ). sc slozen hardverski projekat mogao pretvoriti u slozen ~oftverski projckat.
omogtll'ila jc projektovanje jednostavnih. jeftinih racunara koji su ipak mugli da Uspeh procesora Motorola 68000, koji jc imao veliki intcrprctirani skup instrukci-
izvrsav<Jju vdiki hroj instrukcija. Rezultat je bio arhitektura lBM-ovog sistema 360, ja. uz istovremeni neuspeh Ziloga Z8000 (koji jc imao is to tako veliki skup instrukcija,
kornpatibilne poroclicc racunara ciji su clanovi obuhvatali dva reda velicine i po ceni ali bcz intcrpretera) jasno je ukazao na prednosti interpretera kada nov mikroprocesor
i po nJPguciHJ'itima. Direktna hardverska implementacija (bez intcrprctera) koriscena trcba brzo izbaciti na trziste. Uspch je bio tim pre iznenadujuci jerje Zilog imao bolji
je ;,amo u najsk.upljim modclima. Jednostavniji racunari sa interpretiranim instrukci- ,start"' (Z80. prethodnik procesora Z8000. bio je mnogo popularniji od proccsora
jama irnali su jus prcdnosti, medu kojima su najvaznijc bile sledece: 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-
I. Mogucnost da se na lieu mesta pronadc neispravno implementirana instruk-
nik Ziloga)- naftna kompanija.
cija iii C·ak da se prikriju projcktni nedostaci osnovnog hardvera.
Drugi cinilac koji je isao u prilog interpretiranju tokom tog perioda. bio jc posto-
2. Prilika da sc uz minimalnc troskovc dodaju nove instrukcije. cak i nakon
janje memorije samo za citanjc. tzv. upravljackog skladista (engl. control store), u
isporuke racunara kupcu. kome se nalazio interpreter. Pretpostavimo da tipicna intcrpretirana instrukcija obuh-
3. Strukturiran dizajn koji omogucava etikasno unapredivanje. tcstiranje i do- vata I 0 intcrpreterovih instrukcija, tl.v. mikroinstrukcija, i elva obracanja glavnoj me-
kumcntmanjc slo/enih instrukcija. moriji. Ako se svaka mik.roinstrukcija izvrsava 100 ns, a obracanje memoriji traje 500
Kadajc tr,;;iste r:tcunara scdamdcsetih godina eksplodiralo, a mogucnosti racunara ns. ukupno vr<::me izvrsavanja intcq1rctirane instrukcijc trajc :2000 ns. sto je sanm elva-
nag!o por~blc. porra/nja La jeftinim proizvodima podstakla je projektovanje racunara put sporije od dircktnog izvr~avanja instrukcije. Da upravljacku skladi.\tc nijc bilo na
koji "-ori;.;tc intcrpretir~lllJL'. Moguc'nost cia se hardver i interpreter fino usaglase sa oclre- raspolaganju, izvrsavanje instrukcijc hi potrajalo 6000 ns. };est puta sporije·· mnogu
denim -.k.upom in-;trukcija pokazala se vcoma isplativom pri projektovanju proccsora. gore zvuci od .,dvaput spurije"'.
Ka"-o je tehnolngija poluprovodnickih materijala brzo naprec!ovala. snizenje proizvod-
nih tro~knva 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.

~
56 PoglaYljc 2: Organizacija racunarskih sistema 2.1 l'rocesori 57
------~-------

2.1.3 RISC i CISC (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
Krajem sedamdesetih, eksperimentisalo se s veoma slo/enim instrukeijama jer je
iii pet instrukcija umestu jedne CISC instrukcije, ipak pobectujc RISC racunar jer se
interpreter to omogucavao. Projektanti su pokusavali da popune ,.semanticki jaz"'
njcgovc instrukcije izvrsavaju !0 puta brze (posto sc nc interpretiraju). Treba takode
izmedu onoga sto racunar moze da uralli i onoga sta /.alncvaju programski jezici vi-
naglasiti da je u to vreme brzina glavne memmije dostigla brzinu upravljackih memo~
sokog nivoa. Skoro niko nije razmisljao o projektuvanju jednostavnijih racunara, bas
rijskih Cipova namenjcnih samo cilanju, tako da su nedostaci interpretiranja postali jos
kao sto ni danas niko ne razmislja o pravljenju slahijih oper<tttvnih sistema, mreza,
izrazitiji, stu je izrazito islo u prilug RISC racunarima.
program a za obradu teksta i dr. ( nm/.da. nazalost).
Moglo bi se pomisliti da cc zbog prcdnusti u pugledu performansi RISC racucari
Jednu grupu koja se oduprla opstcm trcndu i koja je pok:t~ala cla sprovede u dclo
(kao sto jc Sunov UltraSPARC) isti~nuti CISC racunare (primera radi, Intclov Penti~
ncke zamisli Seymoura Craya (i napravi mini racunar visokih pcrformansi) vodio je
tun) s trzista. ali se to nije dngodilo. Zasto'!
John Coch.e iz IBIVI-a. Ova grupa .JC napravila eksperimcntalni mini racunar, nazvan
Pre svega, z.bog problemas kornpatibilnoscu sa starijim vcrzijama i milijardi dolara
SOl. lako1B:VI uvaj racunar nikada nije i.rbacio na tri.istc. a rezultate je objaviu tek
kuje su kompanije ulozile u softver za lntclove pruizvodc. Drugo, Intelje na opste izne~
godinama kasnije (Rctdin. 19X2), stvar se prucula i druge grupt' su pocelc da ispituju
nadcnje uspeo da primcni iste icleje i u CISC arhitekturi. Pocev od procesora 4X6.
slicne arhitckture.
Intelovi proccsori sadrze RISC jc.rgro koje izvrsava najjcdnoslavnije (i po pravilu naj~
Na Bcrkliju je I 'JXO. gouinc grupa koju su prcdvodili [)a,·id Patterson i Carlo Sequin
zastupljenije) instrukcije u jednom ciklusu tuka pudataka, cluk se slozenije instrukcije
poccla da projcktujl' procesorske Vl.SI cipovc u kujima nije knrisccno interprctiranje
intcrpretiraju na uuhicajcn CISC nacin. Ukupan cfekal jc da Sll ceste instrukcije brzc,
(Pattcrsun. Jl)X5: Pattcr~on i Sequin, ll)~2). Oni su za tab·u konstrukciju skovali skra-
a one manje cestc- spore. lako ovakav hibridni pristup ne omogucava toliko brzo izvr~
(enicu RISC i svoj proccsmski cip na;vali RlSC 1: .ra njim sc ubrzo pujavio RISC II.
savanjc kao cista R!SC arhitektura, on ukupnc perfonnanse sistema cini konkurcntnim
Nesro J..asnijc. I ')X l. g,Kiinc, John Hennessy JC s druge stranc za!iva u San Francisku ( u
i istovremcno ornogucava da se stari suftver izvrsava u neizmenjenom obliku.
Stanfnrdu). pmJdlovao i napravio nc~tn 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 2.1.4 Principi projektovanja savremcnih racunara
nisu murali da hudu J.,.ompatihilni s post<>jecim proiz\odima, projek:tanti su mogli da D<mas. uve decenijc nakon predstavijanja prvog IUSC racunara. iskristalisali su sc
biraiu z.a njih nove it•strukcijc k:tk" bi p<,hnlj;:di ukupnc perfonnansc sistema. Iako su odrcdcni principi projektovanja uobtih racunara ll uslovima sadasnjeg stanja tehnulo-
u pocctJ..u bile hitne jcdnostavnc instrukcijc kojc bi se brzo izvrsavale, uskoro sc gije hardvera. Kada hullc pomak:lu lehnologiji (npr. buue otkriven ncki postupak po-
zaJ..Iju<.'iJ,, d<tjc Z<t visukc pl:ri'Dnll<tnsc v:t2no lt:tpraviri instrukcijc koje hrzo zapocinju rnocu kog ce memorija biti desct pula brza od procesora), svc ce se ponovo prumeniti.
izvrsa\ :mjc. Dul:ina i.rvr;av:mja instrukcija manje je vct.~na od toga koliko instrukcija Zbug toga projcktanli racunara uvek moraju buunim okom cla prate razvoj tchnolo,L:ije
u sckundi !llo/.c ;apoccti itvr~a\anJC. jer on mo;.e da ugrozi trcnutni sklad komponenata.
KaJ:1 \U o1·i jL'<hll'sla'. ni procesmi u!:'icdali wctlost uana. svima je palo u oCi da uni Kad se ovo ima u vidu. jos uvck postoji nckoliko principa projektovanja, ponekad
im:tJll su;mc;rn,; tnali •:f,~tp in~trukcija. P'' praviln oko 50. To je hilo znatno manjc ou z;anih principi RISC projcktovanja, kojih se uglavnom prid!'Zavaju projckt:mti
21)() ili JOil in~trukcijcl kud po;nalih raCLl!lal:t bo st.o Sll hili DEC-ov VAX i veliki procesora opstc namcne. Douatni uslovi (npr. zahtcv za kornpalibilnoscu s nckom po~
lfl:'vl~ovt L'l'lllralni racun.:ri. ::..krc:ccnica R!SC ll stvari Ol:!1acava racunar sa smanjc-
stojceom ver1ijom arhitckture) s vremcna na vrernc izneure kompromisna resenja, ali
nlm skupom instrukdja (engl. linfliL'Cd Instruction Set Comtmtcr), stu predstavlja pomcnuti principi predstavijaju upsti cilj komc projcktanti uglavnum teze. U nastav~
suprotnust skr;tcenici ClSC - tj. raC:waru sa sloLcnim skupom instrukcija (engl. ku ccmo detaljnije obraditi ncke vaznije principe.
CiJIIIJ>f,·\ ln.lirlU'Iio'l Sc! Cmnt'llit'I'J. Lak<; ~e prcpm.naje aluzija na VAX, koji je u to
vrcllle dominiLw na univerzitehJ..im k:.~tcdrama za racunarstvo. Danas malo strucnjaka Svc instrukcije direktno izvrsava hardver
snwi ra da vl'iicin;t ~kup.l itblrui-.:L·ija predsta\ lj:t problem. ali se ime zadrzalo.
Sve uobicajcne instrukcije direJ.,.rno izvrsava hardvcr. One se ne prevode u mikro~
D:: ,kratimu r'ri~·u. razbukt;:o .;e pra\ i rat u klJillC su poklonici RISC arhitekture na-
in:,trukL·ije. Vecina instrukcija se mnogo brze iLvrsava kaua sc nc prevodi. Na racunari~
r·ad:di Ji'·''it1jcc'i mvrdcni pmcda~ 1 V\X, Intel, vclii..i ccntralni lBl\1-uvi racunari). Pti-
suliL·e RISC arhitch.turc t\rdik su da jc rnjb,;IJi nacin za projektovanje racunara
ma sa ugradenim skupom CISC in,trukcija. slozenijc instrukcije sc mogu rastaviti na
upotrch::malng: brujaJcdnu-;ta\ni!J im;trukcij:t kujc :;c iznsavaju ujednom ciklusu toka 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.
P'lcbw:,<l t.'lika 2-21: prcu1.im:mjc sadrLaja d\a r<';;islra. obrada preuz.ctih pudataka
rn 58 Poglavlje 2: Organizacija racunarskih sistema 2.1 Proccsori

Povccanje brzinc zadavanja instrukcija 2.1.5 Paralelizam na nivou instrukcija


Kod savremenih racunara pribegava se brojnim trikovima za poboljsanje perfor- Konstruktori racunara stah1o teze cia poboljsaju njihove performanse. Ubrzavanje
mansi, a osnovno je postici da se u sekuncli zacla (zapocne) sto vise instrukcija. U kraj- racla Cipova kroz povecavanje radnog takta jeclan jc od nacina da se to postigne, ali u
njoj liniji, ako mozete da zaclajete 500 miliona instrukcija u sckundi, to znaci da ste svakom novom projektu postoji granica do kraja se moze racliti grubom silom; tu gra-
napravili procesor od 500 MIPS-a, bez obzira na to za koje se vreme instrukcijc nicu oclreduje istorijski trenutak. Zbog toga projektanti racunara cesto koriste parale-
izvrse. (MIPS poticc ocl engl. Millions of Instructions Per Second, milioni instrukcija lizam (istovremeno izvrsavanje elva iii vise procesa) kao nacin da se pri zaclatom
u sekundi; MIPS procesor je clobio ime prema ovoj skracenici.) Navcdeni princip raclnom taktu clobiju sto bolje performanse.
ukazuje nato cla paralelizam moze cia ima znacajnu ulogu u poboljsanju pcrformansi Paralelizam se javlja u elva opsta oblika: na nivou instruk.cija i na nivou procesora.
jer je zadavanje velikog broja sporih instrukcija u kratkom vremenskom intervalu Prvi oblik paralelizma koristi se unutar pojeclinacnih instrukcija cla bi se moglo zaclati
mogucc samo ako sc vise instrukcija moze izvrsavati istovrcmeno. sto vise instrukcija u sekundi. U drugom slucaju vise proccsora istovremeno racli na
lako se instrukcije pojavljuju redosleclom koji oclreduje tok programa, one se ne zajednickom zaclatku. Oba pristupa imaju svoje dobre strane. U ovom odcljku po-
izvrsavaju uvck tim reclosledom Uer neki neophoclan resurs moze u datorn trenutku zabavicerno se paralclizmom na nivou instrukcija, a u sledecem - paralclizrnom na
biti zauzet). niti se tim redosledom moraju zavrsiti. Naravno, ako instrukcija I posta- nivou procesora.
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 Paralclna obrada podataka
vrednost. Sve ovo zahteva dosta posla. ali se isplati, zato sto se performanse rnogu po-
Ciodinarna je poznato cia je pri izvrsavanju instrukcija usko grlo njihovo preuzi-
boljsati ako se istovrerneno izvrsava vise instrukcija.
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-
Dekodiranjc instrukcija mora da bude lako
morijc, tako da budu pri ruci kacl zatrebaju. lnstrukcijc su cuvane u skupu registara,
Kritican faktor pri zadavanju instrukcija jcste brzina dekodiranja pojedinacnc in- nazvanom prirucni bafcr (engl. [Jt"ij"ctch buffer). Na taj nacin se instrukcija (kadaje
strukcije - utvrctivanje re~m·sa potrebnog za njeno izvrsavanje. Korisno je sve sto to bilo potrebno) brzo mogla ucitati iz prirucnog bafera, umesto da se clugotrajno uci-
moze cia ubrza taj proces, a tu spacla i standardizovanje formata i cluzine instrukcija. tava iz memorije.
kao i smanjenje broja neophodnih polja u njima. Bolje je ako postoji samo nekoliko Izvrsenje instrukcijc uz prethoclno preuzimanje deli se na dva deJa: preuzimanje i
formata in~trukcija. ·;tvarnn izvrsavanjc. Ova osnovna stratcgija daljc se razraduje k.roz koncept paralcl-
nc uhradc podataka (engl. pipclinin~::): umcsto cla se it:vrsenje instrukcije podeli
Memoriji trcha pristupati samo pri ucitavanju i smcstanju podataka samo na dva de !a, ono sc cesto deli na dcsetak i vise dclova koji sc na obradu upucuju
Operacijc se najlaksc rastavljaju u vise koraka ako se postavi zahtcv da se oper<mdi u istn toliko namenskih komponenata koje svc mogu raditi istovremeno.
za vecinu instrukcija uzimaju iz procesorskih registara i u njih vracaju. Operacija pre- Slika 2-.:J.(a) prikazujc niz od pet koraka obradc. nazvanih i faze ohradc (engl. sta-
nosenja operanada iz" mcmorije u registre muze se obaviti posebnim instrukcijama. ges). U fazi I inslrukcija se preuzima iz mcmorijc u bafer i tamo cuva do upotrebe. U
Posto pristupanje mcmoriji moze cia bucle sporo i posto sene moze preclvideti kada cc fazi :2 instrukcija ,-,e clckodira i odreduje se njen tip i potrebni operandi. U t~vi 3 ope-
se proces prcuzimanja zavrsiti, najbolje je cia se te instrukcije (buduci da sarno prcno- randi "e pronalazc i preuzimaju iz rcgistara ili iz menhlrije. U fazi 4 instrukcija se
se saclrzaj izmcdu memorije i registara) kombinuju s drugim instrukcijama. Ovakav stvarno izvrsava, tako sto sc operandi najcesce propustaju putanjom podataka sa slike
zakljucak waci da memonji treba da pristupaju samo instrukcije LOAD tucitaj) 1 :2-:2. Na kraju, u fazi 5 rczultal ;,e upisuje u odgovarajuci registar.
STORE (smesti). Sve ostale instruk.cije trcba cia raclc iskljucivo s registrima. 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-
Ohczhedivanjc dovoljnog hroja registara 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
Posto se memoriji pristupa srazmcrno sporo, treba obezbediti mnugu registara (ba-
insrrukc:iju :2, aS I preuzima trecu instrukciju. Tok.om cetvrtog ciklusa. S-+ izvrsava in-
rem 32). tako da preuzcta rec rnoze cia ostane u registru sve dokje potrebno. Steclnja
strukciju I. S3 prCLuirna operande za instrukciju 2, S2 dekodira instrukciju 3. a S I
na broju rcgistara, zbog cegaje povremeno potrebno njihov saclr!aj prepisivati u me-
preuzima instrukciju-1-. Na kraju, tokom petog cikluo;a. faza S5 zapisujc rezultat izvrsa-
moriju .->amo da bi se kasnije vratio u registre, donosi ncpotrebne prohlerne. Zbog toga
vanja instrukcije I. dok ostale faze rade na instrukcijama koje slecle.
je najholjc od pocerka imati dovoljan hroj rcgistara.
60 Poglavlje 2: Organizacija racunarskih sistema 2, l Procesori 61

Sl S2 S3 S4 S5 Da biste clobili broj MIPS-ova, podelitc hroj izvrscnih instrukcija u sekundi sa milicn.
sto daje ( 10 /7) I 10 6 = 1000/'f ~1IPS-a. Teorijski, brzimt izvrsavanja instrukcip mcg-
9
Jedin1ca Jedinica Jedinica Jedinica Jedin1ca
za preuzimanje za dekodiranJe za preu11manje za izvrsavanje za zapisivanje li bismo da izrabvamo i BIPS-ovima (milijardama instrukcija u sekundi), ali posto to
instrukcija instrukc1ja operanada mstrukcija rezultata niko ne radi, drzacemo se MJPS-ova.

(a)
Supcrskalarna arhitektura
Ako jeclna linija para1e1ne obrade radi dobro, dve izvcsno rade jos holjc. Jeclna ,Jd
s1 QJ IT] []] 0 ITJ ITJ [I] [I] [I] moguc'ih konstrukcija procesora s dve linije obrade koja po1azi od slike 2-4, prikazana
S2 QJ ITJ [}] 0 ITJ ITJ [I] [}] je na slici 2-5. Zajcdnicka jedinica za preuzimanje prihvata istovremeno par instn;k-
S3 QJ ITJ [Ij [Ij ITJ [}] [Ij cija i svaku sme.~ta u njenu 1iniju obrade koja sadrzi i sopstvenu aritrneticko-1ogick.u
S4 QJ ITJ [Ij [Ij ITJ ITJ jedinicu kako hi se omogucila paralelna ohrada. Da bi sc rnogk izvrsavati paralclno.
S5 QJ IT] [I] 0 ITJ 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
Time-
(stu znaci da hardver ne proverava ni~ta i dace dati neispravnc rezultate uko1iko 11-
(b)
strukcije nisu meclusohno kompatihi1ne) iii ce ncki dodatni hardver otkrivali i Jt-
Slika 2-4. (a) Para kina ubrada podawka u pet l·aza. (b) Sranje wake faze u funkciji vrelllcna. klanjati sukobe tokom samog izvL~avanja.
Prikazanoje dcvcl ciklusa radnog takta. Iaku se obicnc i1i dHJStruke 1inijc za paralc1nu obradu najcesc'e kmiste u RISC
racunarima (proccsor 3fl6 i njegovi prcthudniL·i ill nemaju), lntc1jc L'd proccsora 4:-\6
RazmotritJHl jcdnu analugiju da hi nam paralelna obrada podataka postal a jasnija.
pocco da uvodi para1dnu ohradu pudataka u ~voje procc-sorc. Pnxcs<Jr -J.X(l imajednu
Zamislite fahrik.u k.ck..~a u k.ojoj su pecenjc i paknvanje k.eksa razdvojeni. Pretposta-
takvu liniju obracle, a prvohitni Pcntium ima dve petufazne linije ubradc koje prit,li-
vimo da odeljenje za pak.ovanje ima dugacak sto s pokretnom trakom duz koje je
znurack Llo na :Jici ::::-5, iakoje pndcla pos1a izmcdu faza 2 i 3 (zvani!J dcklldiranj~-1
rasporedeno pet radnika (jedinice za ohradu). Svakih I 0 s (ciklus radnog taktaL rad-
i dekmliranjc-2) kud njega nc;to drugal:iJ'l ncgl' u na~em primcru. Glavna linija ob,·a-
nik. I stavlja praznu kutiju na traku. Kutija putuje do radnika 2 koji u nju stavlja keks.
de je illlaLt preliks u (engl. II ei;>c!inc) i !lJOg1aJe da i~.vr;i billl kuju Pentiumuvu in-
Ncsto kasnije kutija sti/c do radnika 3 koji je zatvara i umotava. Kuti)a na~tavlja pu-
strukciJU. fJruga linija s prcliLnm Y \l'tJgi. l' pijwlinc) mogla JC da i!Vrsi :,anm
tovanje Jo radnika 4 koji na nju lepi etiketu. Na kraju, radnik 5 skida kutiju s trak.c i
jednustavnc in:-.trukcije s cc1im brojevima (i jednu jcdinu instrukciju s brojcvima u
stavljajc u veliki kontejncr ;.a isporuku trznom centru. U osnovi, na taj nacin radii pa-
!'ormatu pukn:tnog zarcza- FXCH).
ralelna obraJa pudataka: svaka instrukcija (kcks) prolazi kro1. nekoliko faza obrade
dok se nc dovrsi njeno izvrsavanje. Sl S2 S3 S.J S5
Vratimo se paralelnoj obradi sa s1ike 2-4 i prelpostavimo da ciklu~ radnog takta
racunara trajc 2 ns; onda c'e za potpunu uhradu jedne im,trukcije u pet faz.a biti po-
. :;
~-- L Jedmica
za dekoCira_ n,ie
rl

. .::a .
Jc;,cii11CJ I i ,Je~'lliC<J 1 I J<edinica
o~eu:;::r~:aniq---.--1 zu_ L'JrS.::v'Jr'J~::; ~ ;:a upts;vani.e J.
'!
I
! ! .
trebno 10 ns. Ako il.vrsavanje Jedne instrukcije trajc I0 ns, mog1o hi nam u prvi mah
Ij .
,Jt:n:n1ca I
instrukC!Jn 11pe; a;~Jcta _j IIIStrukc•Ja j l rezuita~a
izgledati da racunar moze da radi brzinom od 100 M1PS-a, ali on u stvari radi mnogo 1 za preiJ?!rlai1J8

II
brze. Pri svak.om otkucaju radnog takta (2 ns) dovrsava se izvrsavanje jednc nove in- ~; mstruk•C~!3 i I Jedin 1ca j [ Jed n1c., I Jedinica j l j.,dinica
strukcije. paje stvarna brzina obrade 500 MIPS-a.
i
.I f-----1 za de~<odiranje I~~
kGila
.
za prrtu_:mo!lj~ 1
I
Z3 IZVrS:w:nle r--1 Zd U~Ji~IVG.nje
I_____ __j I J
.
1nstru Oflt:l dlll"!d2 i!iStrtJ.\CiJi1 1 1 rt~lL!ItJtJ
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- ,. Siiha 2-5. 1ho~rt uka p~:tuf<tnla
za
lini.ia uhr:ldc· pod~nakJ.
prcu;im~tllj-~ in.·.;truk~.._'J_]<L
'd L~ljt_·.__Lu2kum jl:dinicllm

stopnih faza ohraJe, obrada jedne instrukcije traje nT ns jcr svaka imtrukcija prolazi
kroz n faza, ud kojih svaka trajc- Tns. ~~ ~kup pr:t\ iia jc- (Jdrc(tivall da ii :.;u dvc in.c.,trukc·Jje dnvolJno kumpatihil::e da se
:1~
Posto po jedna in~trukcija zavrsava izvrsavanje pri svakorn ot"-ucaju radnog takta, mogu p~traleino izvr~avati. Aku instrukc.:iJL' i1. par~1 ni~u bile dm oljtlll jcdno;,'avne ili su
9 -~"'
au sckundi ima HP!T otkucaja, broj instrukcija izvr;enih u jcclnoj sekundi jc 10 /T bile nekompal i nilne. izvr~a van a je ~amo prvii ( u l iniJ i !l ). Drug:t je iciJrLtvana i Uplri-
Na primer. ako je T = 2 ns, onda se svake sekunde izvrsava 500 mi1iona instrukcija. '. .111" :;a sledc>com instrukcijorn. lnstrukcije ~u uvek i1vrsav:mc pn,o>raJn.;kim rcJ,l,Ie-

dorn. N:1 taj naL:in su prevodioci spcciricnu namcllJL'tlt Pentiumu. kn'l: l·onnir:mje
r7
P'!:: '
.,
:;/' I

62 Poglavlje 2: ()r-ganizacija racunarskih sistema 2.1 Procesori 63

kompatibilnih parova instrukcija mogli da generisu izvrsni kod koji se brze izvrsavao Imajuci u vidu prethodnu definiciju, racunar 6600 ne bismo striktno mogli smatrati
od koda generisanog pomocu starijih prevodilaca. Mercnjima je utvrdcno da jc Penti- superskalamim jer je njegov procesor zadavao samo jednu instrukciju u jednom
umov optimizovani izvrsni kod bio tacno dvaput brzi za programe koji su radili s celim ciklusu radnog takta. Mectutim, efekatjc bio skoro isti: instrukcije su zadavanc mno-
brojcvima, od procesora 486 koji je radio na istoj frekvenciji (Pountain, 1993 ). go brzc nego sto bi mogle biti izvrsavane. Mala je razlika izmedu procesora s ciklu-
Povecanje brzine se iskljucivo pripisivalo postojanju druge linijc paralc1ne obrade som ocl 100 ns, koji grupi funkciona1nih jeclinica zaclajejcdnu instrukciju po ciklusu
podataka. i procesora s ciklusom od 400 ns koji istoj grupi funkcionalnih jedinica zaclaje cetiri
Prirodan nastavak- paralelan rad s cetiri linijc obrade podataka nije tesko zamisliti instrukcije po ciklusu. U oha slucaja instrukcije se zaclaju mnogo brze nego sto mogu
- ali se pokazalo da sc pri tome mora udvostruciti previsc hardverskih komponenata da se izvrse, pri cemu sc opterec'enjc izvrsavanja prebacuje na skup paralclno vezanih
(racunardzije, za razliku od folklorista, ne veruju u broj tri). Umesto toga, za najsavrse- funkcionalnih jedinica.
nijc proccsore je primenjen drugaciji pristup. Zamisao jc bila da postoji samo jcdna li- Za koncepciju superskalarnog proccsora karakteristicno je to sto faza S3 mo/.e cia
nija obrade, ali da sc u odrcdenim fazama obezbecli vise funkcionalnih jedinica (slika zadaje instrukcije znatno brzc, ncgo sto faz.a S4 moze da i h obradi. Ako bi faza S3
2-6). Pentium If, na primer. ima takvu strukturu. 0 njemu ccmo govoriti u poglavlju 4. zadavala po jeclnu instrukciju na svakih 1() ns, a svc funkcionalne jedinicc bile u
Za ovakav pristup jc 1987. godine (Agerwala and Cocke, 1987) skovan izraz su- stanju cia svoj posao obavc takode za 10 ns. nikada istovrcmcno ne hi bilo upos1jcno
perskalarna arhitektura (engl. supersca/ar architecture). Njegovi korcni poticu iz vise jedinica. pa bi citava ideja izgubila smisao. u stvarnosti, funkcionalne jedinice iz
racunara CDC 6600, starog vise od 40 godina. On je preuzimao jeclnu instrukciju na faze 4 uglavnorn nc mogu cla obavc svoj posao u jed nom ciklusu radnog takta, naroci-
svakih 100 ns i prosledivao je jednoj od I 0 funkcionalnih jeclinica za paralelno izvrsa- to ne one koje pristupaju mcmoriji ili one koje rade s hrnjevima u formatll pokrctnog
v~mje, dok je procesor preuzirnao novu instrukciju. zareza. Kao stu vidite na slici. faJ:a S4 mozc imati vise aritmcticko-logickihjcdinica.
Izraz ,superskalaran" pojavio se negde u tom cetrdesetogodisnjcm periodu. On sc
danas koristi za proccsore koji u jednom ciklusu radnog takta zadaju vise instrukcija 2.1.6 Paralelizam na nivou proccsora
- najcescc cetiri ili sest. Naravno, superskalarni procesor mora imati isti broj paralel-
nih funkcionalnih jeclinica kojima bi predao instrukcije. Posto superskalarni procesori Izgkda da zahtevi za sve brzim racunarima nikada ncce hiti potpuno 7.adovoljeni.
najcdce imaju samo jednu liniju obrade, njihova organizacija prilicno lici na onu sa Astronomi zcle da simuliraju dogadajc u prvoj mikrosekundi posle Velikog praska.
slike 2-6. ekonomisti uporno hoce da modeluju globalnu ekonomiju, a tincjclzeri zele da prcko In-
terneta igraju intcraktivne 3D igrice sa svojim virtuelnim prijatcljima. lako procesori
S4 postaju sve br?.i. ipak nccc rnoci da prcvazidu ograniccnjc koje postavlja hrzina svetlo-
Stl, a to je 20 L'l11/n~ 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 ~e 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 .
S5

Jedinica Rarunske opcracijc nad matricama


za zapisivanjr;
rezultilta 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 kori.~c'cne J:a brzo izvrsavanjL' naucnih programa. lako
su one sliC·ne. 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-
Slika 2-6. Superskalarni pmce'or s pet funkcionalnih jedinica.
tricni pruccs<Jr radio je u racunaru ILLIAC LV na Univerzitctu u llinoisu (slika 2-7)

I
IL
~
f:~: ;l
64 Poglavlje 2: Organizacija racunarskih sistema 2.1 Procesori 65

(Bouknight ct al., 1972). Plan je bio da se napravi racunar sa cctiri kvadranta. od kojih vektnrska registra kroz sabirac koji obavlja paralelnu ohradu. Rezultat 'ahiranja je ta-
bi svaki imao kvadratnu matricu sa X x 8 proccsorsko-memorijskih clemenata. Trebalo kmle vektor koji se rnoze smestiti u vektursk.i regislar iii neposredno upotrcbiti kco
je da upravljacka jedinica, jedinstvena za svaki kvadrant, emituje instrukcije kojc operand u sledecoj vektorskoj operaeiji.
sinhrono izvrsavaju svi proccsori- svaki sa sopstvcnirn podacima i pomocu sopstvene Iako se veklorski procesori trcnutno ne pmi?vodc. nikakn nisu prcpusteni zabon-
memorije (koja se popunjava podaeirna tokom faze inicijalizovanja). Ovakva k<m- vu. Njihov model izvrsavanja koristi :;e kocl MMX i SSE in,trukeija kojc postoje r.a
strukcija. kojajasno odstupa od standardnog Von Neumannovog racunara. ponckad se Pcntiumu 4 da hi sc uhrzao multimcdijski softver. Zato mo/emo smatrati da je raca-
naziva SIMD pruccsor (engl. Singll' bts/ruction-.ltrewn l'vlultiple Duwstrewn, jedan nar JLLIAC IV u ovom pogledu jedan od prcdaka Pentiuma 4.
tok instrukeija- vi~e 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 Multiprocesori
megat1opsa (miliona operacija s brojevima u ronnatu pokretnog zareza u sek.undi). U to Procesori koji ohraduju podatkc u malricnom procesoru nisu ne1avi~ni jcr njima
vreme ~e navodilo da bi takav racunar, da jc dovrsen. postigao projektovanu hrzinu od komanduje jedinstvena upravljacka jcdinica. Prv i paralelni sistem s vise proeesora je
jednog gigal1opsa i time udvostrucio racunarsku snagu eclog sveta. multiproccsm· (engl. multiprocessor)- sistem s vise procemra kPji dele zajeclnictu
rnemoriju, slicno grupi daka kuji u uCionici koriste istu tablu. Posto svaki proccs)r
Control unit 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
Emitovane mstrukc1je procesora mogu mcdusobno blisko da .saraduju, kao u slucaju rnultiprocesora, ka/.>
ElElElElE3ElE3El mo da su tcsno povezani.
Po;,toji vise nacina rcalizacijc rnultipro..:e~urskog rada. Najjcdnustavnijc rdenjc je
ElElElE3E3E3E3E3 da su svi proccsori i memorija ve~ani za zajcdnick.u magi.'-.tralu. Sema takvog mul i-
ElElElElE3ElE3El prucesora prika1.anaje na slici 2-X(a).
Nije tcsko shvatiti dace nekuliko brzih procesura k.oji istllvrcmenn poku~avajula
E3ElElE3E3E3E3El 1\ilatnca sa 8 x8
pristupc memoriji preko iste magistrale. nei1bdno dmesti dn sukoba. Zato su projek-
Procesor EJ EJ EJ E3 E3 E3 E3 EJ procesorsko-memoriJskih elemenata tanti multiproccsura predlo/ili hrojne nacine za i~bega\anje sukohljavanja i poboj-
.. ~E3 El El El E3 El E3 E3 _:;anJC pet·forman-.;i. Premajednom od njih slika 2-X(b) -s\·ak.i procesur ima i supstVclll
1\ilemorija lllcllhJriju koja nijc:: dostupna Jrugim pn>cesorima. Ona 'e mu.l.e kc>ri,titi !'a prugr,un,ki
ElElElE3E3E3E3Ell kod i p•.Jdatke koji nisu namc::njeni ;_a delJCI1JC. Toj privauwj mcmoriji o.;e nc pri:;luxt
El El El E3 E3 El E3 EJJ preko glavne magi'-lraie. stu umnof'Ollle sm,miuje njcnu oplerecenjc. hhtojl' i dngi
n~tcini i npr. kcsiranje).
Slika 2-7. MatriC·ni proccsor tipa ll.I.L-\C IV.

Vcktorski proccsor (engl. vector processor) programeru hi veoma licio na matric- Loka!ne mernorije

0
//~

ni proccsor. Kao i matricni procesori i on vrlo hrzo i~vrsava niz operaeija s pamm
ll , ~
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
DeiJena lll~l
,--LJ--, l
'AVl II~
II
I
I Nllll,)
9
1

~
,I
Dm,o
rn ''ll'J lo

\ Cray Research je dan as cleo kompanije SCI I).


Matricni i vektorski procesori rade s matricama podatak.a. Oni izvrsavaju samo jecl-
p·-;·E !P·OII'"'I 1·-·"!l-c'
I
~~L;sor1
I ~ l____j L _ _ _ i ---
1

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 ivlJrjistula iVlog1str a a

pmcesor koristi koncept vektorskog rcgistra (engl. l'ector register); on se sastoji od !a) ib)
skupa uobicajenih regi~tara u koje se sadrzaj iz memorije moze ucitatijcdnom instruk-
Slik,t 2-X. 1,\) 'vlultiproc~'nr, jc:dinst':cr:o1n :1l:t~i,tral,m1. ib) 1\lu!tirc\cunar
ciJom ( sadr:l.aJ i~ memorije se u registre ucita\a ~erij~ki ). Posle toga, instrukcija za sa-
-; luka!:liJl1 mcni<lrl_;.mi~L
biranje vektora sahira odgovarajuce elcmcnte zadatih vektora, propustajuc'i ih iz dva
r~:' 66 Poglavlje 2: Organizacija racunarskih sistema 2.2 Osnovna memorija 67

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

;~'.• - '- ._ I
' 68 Poglavljc ::!: Organizacija ral'unarskih sistema 2.2 Osnovna mcmorija 69
: I
!
aclresirati i nezavisan je od broja hitova po c'eliji. I 1a memoriju sa 2 12 eel ija od po ~ hi- Ce1ija je ~:nacajna zato sto predstavlja najmanju jec!inicu koja se moze adresirati.
tova i za memoriju sa 2 12 c'elip od po 64 bita. ncophmlno je koristiti 1:?.-bilne adrese. Protek.lih godina skoro svi proizvodaci racunara slo:l.ili su se da se usvoji ~-bitna celija,
kojaje nazvana bajt (engl. byte). Bajtovi se grupisu u (racunarske) rcci (engl. words!.
Adresa Adresa Jedna celija Adresa
I Racunar s 32-bitnim recirna ima 4 bajta po reci, dok racunar sa 64-bitnim recima ima

oI I
11 I
I
I
I
I
I
I
I
I
I
I
I
I 1 I
,---

oI I
--"-

I I I I TDTTD
I I I I I I I I I I I
ol I
11 I
I
I
I
I
I
I
I
I
Ill
I I I
iII
I I I
liTO
I I I I I
I- 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

21 I
31 I
I
I
I
I
I
I
I
I
I
I
I
I
2 I
3 I
I I I I I I I I I I I
I I I I I I I I I I
21 I
31 I
I
I
I
I
I
I
I
I
I I I
I I I
I I I
I I I
I I I I I
I I I I I
1
I
~

premcstanje, sabiranje, oduzimanje i drugo rnanipulisanjc 64-bitnim recima.

2.2.3 Postrojavanje bajtova


41 I I I I I I I 4 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 I~~~ Bajtovi se u reci mogu brojati sleva udcsno ili zdesna ulevo. U prvi mah se moze
5I I I I I I I I I 5I 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 uCiniti daje ovaj reclosled ncvabn, ali on, kako cemo viddi, ima dalekosdne pos1e-
-16 brtova- ----
Bl I I I I I I I I Bl I I I I I I I I I I I dice. Slika 2-ll(a) pribzujc deo mcmorije 32-bitnog racunara ciji se bajtovi broje
lei
1 I I I I I I I I I 11 I I I I I I I I I I I sleva udesno, kao u SPARC-u iii u velikim centralnim IBM-ovim racunarima. Slika
sI I I I I I I I I ~ - --- 12 bitova - 2-ll(b) prikazuje den memorije 32-bitnog racunara u kome se bajtovi broje zdesna
(b) ulevo, kao s!D je to s1ucaj u lntelovoj porodici racunara. Racunari koji koriste prvi si-
9 [T I T I 1-I I l
stem, gde brojanjc pocinje s ,velikog kraja'" (engl. big end), tj. od najznacajnijeg
10 I I I I I I I I I oajta. dobijaju alribut big endian. za razliku ocl little cndian racunara na slici
111 I I I I I I I I 2-11 (b). Ovc poma1o cuclne termine dugujemo Gu!il'l'rovim f!lllOVUI1jima Dzonatana
- 8 IJrtOVil -- Svifta gde su ismcjani roliticari koj i su zapoceli pravi rat zbog prepirke da li kuvano
(a) 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 19~ I.
Slika 2-9. Tri n~n::ina organi/.ov~mj~ 96-bltilc !11Cinorijc.
Adresa Big endian Little endran Adresa
Broj hitu·.~, pn ccliji za neke komncijalne racurnre prikcu:mje na sliei 2-10.
0 1 2 3 3 2 1 0 0

4 5 6 7 7 6 5 4 4
Racunar Broj bitova po celiji
B•Jrro~ghs B 17000 8 9 10 11 11 10 9 8

IBM PC 3 12 12 13 14 15 15 14 13 12 12
DEC PDP-8 12
Ba}t BaJt
IBM 1130 16
---- 32-bitna rec 32-bitna rec
DEC PDP-15 18
Ia) (b)
XDS 940 2-1
: Eiectrclog:ca X8
'~ 2"7-
Slika .!-I I. (aJ :'vlcmorija tipa .. hig cndian". thl :Vkmorija tipa .. little cndian··.
--- - - -------,-------------------- ---:
! XDS S,qrra 9 i 32 ___j

,-H;n~y~~-;1~~30 _ ==-=~2--=---=--=-==--1
Trcba rcl!umeti cia je u oba sistema 32-bitni ceo broj. recirno broj 6, predstavljen
·s bitOVII11<t 11() na dCSl10111 (najmanje znacajn<llll) kraju reci, dok 11Ule popunjavaju
: CiY.:, 3clJO 4d
preostalih 29 bitova ulevo. u semi .. big end ian" bito\ i ll () su u bajru 3 (ili ll bajtu 7,
60
ll itd.), dc1k su u semi ..little endian·· oni u bajtu 0 (iii u hajru 4, ~ itd.). Rec koja sadrzi
Siika 2-10. Bn)j b;~{.\,t p() ;n~!:K•r!J·,k~)i ,:,.'hJi i:t !l,~k.: i~l~·nj..,ki uvaj hruj. u oba slu(·aja ima adresu 0 (iii 4, ~ itd.).
Dtnim!_ji\L' 1-._,)JlLTLij:;inc· r~~~·:m:uc.
-
II: :i
~,

I
70 Poglavlje 2: Organizacija racunarskih sistema

Kada bi racunari skladistili samo cele brojcve, ne bi bilo nikakvih problema. Meuu-
2.2 Osnovna memorija

2.2.4 Kodovi za ispravljanje gresaka


71

tim, u mnogim aplikacijama koristi se mesavina cclih brojeva, znakovnih nizova i dru-
Racunarske memorije su povremeno podlo:i:ne greskama izazvanim strujnim udari-
gih tipova podataka. Zamislitc, na primer, jcdnostavan ,karton" zaposlenog u komc su
ma u mrezi i drugim uzrocima. Za zasritu od takvih gresaka neke memorije korisre rzv.
zapisani znakovni niz (imc zaposlenog) i dva cela broja (starost i broj odcljcnja). Zna-
kodovc za otkrivanje, oclnosno za ispravljanje gresaka. pri cemu svaka memorijska rec
kovni niz se nulama dopunjava do cele reCi. Memorijski zapis za 21-godisnjeg Jima
Jobija dodatne bitovc Cija se vrednost formira na specijalan nacin. Kada se rec cita iz
Smitha koji radi u odeljenju 260 ( 1 X 256 + 4 = 260) po semi ,big endian" prikazan je
memorije, dodatni hitovi se proveravaju kako hi se utvrdilo cia li je sadr:laj memorije
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 ispravan.
Da biste razumeli kako se grdka moze ispraviri, neophodno je da shvarire sra je
od ova dva racunara pokusa da posaljc zapis preko mreze drugom racunaru. Prctpo-
zapravo greska. Pretpostavimo da se mcmorijska rec sastoji od m hitova podaraka ko-
stavimo da .,big endian" racunar svom ..little endian" kolegi salje zapis bajt po hajt,
jima cemo clodati jos r birova koji iskljucivo sluze za proveru. Neka ukupna duzina
pocevsi od bajta 0 i zavrsavajuci s bajtom I 9. ( Bil'emo optimisti i prctpostaviti da se
reci bude n (tj. n = m + r) bitova. Jcdinica od n hitova koja sadrzi m bitova podataka
bitovi u bajtu nece menjati tokom prenosa jer ionako imamo pre vise problema.) Tako
i r bitova za proveru, cesto sc naziva n-bitna kodna rcc (engl. codeword).
ce bajt 0 s ,big endian" racunara stiCi u bajt 0 memorije ,little cndian" racunara itd ..
Ako imamo dve koclne reci, recimo 10001001 i 10110001, uvek mozemo da utvr-
kao sto jc prikazano na sl ici 2-12( c).
dimo koliko se odgovarajucih bitova u njima meuusohno razlikuje. U ovom slucaju
Kacla ,little enclian·' racunar pokusa da odstampa imc. hice sve u redu. alice za sta-
razlikuju se 3 bita. Kada zelirc da utvrdite koliko se hitova razlikuje, na dve kodnc
rost dohiti 21 x 224 godine i nemoguc hroj odeljcnja. Ova situacija nastaje jer jt: to-
rcci treba primeniti logicku iskljucivu disjunkciju (XOR) i prehrojatijcdinice u renii-
kom prenosa obrnut redosled znakova u reci (kao sto treba da hude ), ali je izvrnut i
tatu. Broj uparenih bitova po kojima se razlikuju dve kodne reci zove se Hammingo-
redosled hajtova u celom broju (;tone treba da se dogodi).
vo rastojanje (engl. Hamming dislunce)- Hamming. I 950. Ovaj pojam je znacajan
OCigledno je da treba imari softver koji ce obrnuri redoslecl bajrova u rcci vee na-
jer na osnovu njega shvatamo cia se dve kodne reci izmedu kojih je I-lammingovo ra-
pravljene kopije poruke. Rezultat je prikazan na slici 2-12( d) gde viclimo da je sve u
stojanje d mogu izjednaciti poslc d jednobitnih gresaka. Na primer, izmedu kodnih
rcdu .~to se rice hrojeva. ali se znakovni niz prel vara u .J'v1IJTIMS··, clok ,Ir ostaje da
reci I III 000 I i 00 II 0000 I-lammingovo je rastojanje 3 jer se sarno ponmcu tri jedno-
visi. Ovo se dogada zato sto racunar pno cita bajt 0 (razmak), 1.atim bajr 1 (MJ itd.
bitnc greske prva rec moze poklopiti s drugom.
U m-birnoj memorijskoj reci mogu se koristiti sve 2111 komhinacije bitova. ali zbog
Prenos zapisa s .. big endian·· Pre nos
Big endtan Little endian na .. little endian" racunar i obrtanJe 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-
j I M M I j M I j j I M
postavkom da je poznat algoritam za izracunavanje kontrolnih hitova, moguce je sa-
4 s M I T T I M s 4 T I M s s M I T 4
staviti polpunu lisru ispravnih kodnih reci ill njoj pronaci dve kodne reci izmectu kojih
H 0 0 0 ' 0 0 0 H 0 0 0 H H 0 0 0 JC Hammingovo raslojanje minimalno. To je 1-lammingovu rastojanje celog koda.
12 0 0 0 21 ; 0 0 0 21 12 21 0 0 0 0 0 0 21 12 Spnsobnost koda da otkrije i ispravi gresku zavisi od njegovog Hammingovog
16 0 0 1 Io 0 1 4 16 4 1 0 0 o1 o 1 4 16 rastojanja. Da bislc otkrili d jednobitnih gresaka, potrehan vam je kod s rastojanjem
4 I
d + I jer se raJa ne moze desiti dad jednohirnih gresaka izmene ispravnu kodnu rec
(a) (b) (c) (d)
u drugu ispravnu kodnu rec. Slicno tome. da histe ispravili d jednobitnih grdaka, po-
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"
treban vam jc kr)d s rastojanjcm 2 d + I jer su na raj nacin ispravne kodne reci toliko
rac'unaru ICI Ro.ulial fJIL'llu,cnja ;api"t s .. hi~ cndi,uf' racun,tra na .. little cndian"' LtCunar. (d) medusobno udaljene cia je cak i posle d promena prvohitna kodna rcc bliza originalu
Rezultat ohtanja redusleda hallO\a (ct. nego hilo kojoj drugoj kodnoj reci, pa 'e nwze nedvosmisleno prunaci.
Razmotrite 'ada primer jednostavnog koda za otkrivanje gresaka koji podacima
Za on1 situaciju ncnujednostavnug resenja. Jedno provereno i ncdiLtsno re~enje dodaje jedan bit pamosti (engl. pori!\' hi!). Bit parnosti se hira tako da hroj jedinit:a
jc da se ispred svaktlg pndatka stavi ;aglavlje sa uhjasnjenjem kuji tip pulbtaka sledi u kodnoJ reci bude paran (iii neparan). Takav kCld ima rastojanje 2, posto svaka jed-
(znakovni ni1. ceo hroj iii nesto drugo) i kolika mu je duzina. S.tl11<) tako bi racunar nohitna grdka proizvmli kodnu rec pogre'ine parnosri. Drugim recima, potrebne su
primalac llhlgao tacno da obavi sva potrehna prl'lvarai~a. U wakeom slucaju. nadamo dve jednohirne grdke da bi se od jedne ispravne koclne reci dobila druga. Ovaj k6d se
se da smo dovol.Jno istakli cinjenicu da neprhtojanje standarda za rcdosled hajrova moze upotrebiti t.a orkrivanje pojeclinacnih gresaka. Kat! god se iz memorije ucita rec
p1nbtavlja glavnu prepreku za razmc:njiv~tnje podataka izmeuu razlicitih racunara. 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
~tr,,_
72 Poglavlje 2: Organizacija racunarskih sistema 2.2 Osnovna memorija 73
!'

Kao primer jednostavnog koda za ispravljanje gresaka razmotrite kod sa sarno ce- Pretpustavimu sada da je nastala greska u oblasti AC i da je bit u njoj promenio
tiri ispravne kodne reci: vreclnost od 0 u I, kao na slici 2-14(c). Racunar sada vidi da krugovi A i C imaju pJ-
0000000000,0000011111,1111100000 i 1111111111 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
Ovaj kod ima ra~tojanje 5, sto znaci da mole da ispravlja dvostruke grdke. Ukoli- taj nacin, racunar mozc automatski de; ispravljajednobitne grcske u memoriji.
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- A A A
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 c c
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-
Bitovi
ku od 2 111 ispravnih mcmorijskih reci postoji I! + 1 rasporcda hitova (L:a n mogucih parnosti
B B B
grcsaka i jcdnu ispravnu rec). Pus to je ukupan broj rasporccla hit ova 2", morarno irnati
11
(n + I )2'" <::: 2 rasporcda. Uz 11 = 111 + r uvaj zahtev po~taje (In+ r + I) <::: 2'". Ako jc (a) (b) (c)
zadato 111, postavlja sc donja granica broja kuntrnlnih bitova potrebnih za ispravljanje
Slika 2-14. (a) Kodiranj.: reci llOO. (bJ Dudati bitovi parnosti. lcJ Grdka u ubh,ti AC.
jednostrukih gresaka. Slika 2-IJ prikazuje broj kontrolnih bitova putrcbnih za pw-
vcru men1orijskih rcci razlicite velicine.
Pogledajmo sada kako se Hammingov algoritam mozc upotrebiti za pravljcnjc
kocla za ispravljanjc grcsaka u mcmorijskirn recima bilo koje velicinc. U HarnminfO-
Duzina reci Broj kontrolnih bitova Ukupna duzina Procenat povecanja duzine
vmn kodu se r bitova pamosti dodaje m-bitnoj rcci i tako sc dobija nova rcc duzinc
8 i 4 12 50 m + r hitova. 13itovi se numerisu ne od nultog, vee od prvog, pri cemuje na levom k·a-
l
16 5 21 31 ju pn i bit ( naj;nacajniji ). Svi bitovi ciji jc redni broj stcpen broja 2 jcsu bitovi pan o-
I 32 6 38 19 sti: O'>lali bitovi se koriste za podatke. Na primer. 16-bitnoj reci sc dodaje 5 bitcva
I 64 7 71 11 parnusti. Bitovi s rednim brojevima I. 2, 4, 8 i 16jesu bitovi parnosti, a svi ostalisu
I

128 8 136 6 bitovi podataka. Memorijska rec ima ukupno 21 bit ( 16 bitova podataka i 5 bitcva
-- ,t
256 9 255 4 parnosti). LJ ovom primeru cemu se (proizvoljno) oprccleliti za to da bit parnosti Jo-
512 10 522 2
punpva zbir do parnog broja.
Svaki bit parnosti proverava bitove na specificnim poz.icijama: bit parnosti se pu-


Slika 2-U. Broj l-.·.•11lruinih bit<J\a J..,HJa 1--<lji moLe cia i.-pravJ jcdn•lOilllLI grc·i,ku. stavlja lako da ukupan broj jedinica na specificnim pozicijama bude paran. Pojedin;tc-
lli bitovi parnosti proveravaju slcdece pozicije:
Ova tcurij.-;Lt donj~t granica moze sc pt1Stici illdlXll1111 k.oju jc Sl\ orin H.ichard
Hamming I I lJ)()J. Pre negD ~to pr..:Licmo na ()bjasnjavanjc l-lamrningovog algnritma. 11 B1t 1 proverava bitove 1, 3, 5, 7. 9, 11, 13, 15, 17. 19, 21.

poglcdajmo jcdnustavan gra!ick.i prik.az koji j~Nw du~lrure J.,:,)d za i~pravlj;.mj<: gr..:';r- ~ f3it 2 proverava bitove 2, 3, 6, 7, 10, 11, 14, 15. 18, 19.

l
ka u 4-bttnim re.:·ima. Vc~nnuv dijagramna slici 2-l4taJ sadrzi tri k.ruga: A. 8 i C. J...;;ji ~l Bit 4 proverava bitove 4, 5, 6. 7, 12, 13, 14, 15, 20, 21.
zajcdno dctinisu scdam oblasti. Primera r,tdi. k~'dirajm<14-bitnu memorijsk1.1 n:c ! l ()(l '
Bit 8 proverava bitove 8, 9, 10, 11, 12, 13, 14, 15.
u oblastima -'1/J. :\!3C, ;\C i BC, sme;tajuci pn jcd;rn bitu svakti nblast (abcccdnim rc- ;
Bit 16 proverava bitove 16, 17, 18, 19, 20. 21.
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- ' Po pravilu, bit b provcravaju bitovi b 1• h 2• ... , b) tako da bude b 1 + b 2 + ... + b1 = b.
ci 2-14(!)). Sadajc' p<) Jt:tiniciji ;:bir hiklVa u '\ akum ml tri krug;r (i\, B i C! paun b;·,,j. if
.,J;t;,
·':1.""
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.
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 :.itu~tciju.
1
. Stika 2-15 prikazuje prav!Jenjc Harnmingovog k.oda za 16-bitnu memorijsku ·cc

1
.~·.
LJ <l\om primcru se dc:-;ilu da '>Ll ,., i krugu'.'i isti, ali ti drugim slucajevima ;.hir mu/.c 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
.
biti i 0. od!lUO,ihJ ..J.. Slib udgovara kodnoj reci sa 4 bita P<'datak.t i 3 hila parnnsti. Cistc l"llZUll1Cli kak.u radi ispravljanjc gresaka, razmutritc sta SC dcsava kada izncnadni
"'
~
II
·:: I
I
\.:··1
Poglavljc 2: Organizacija racunarskih sistema

naponski uclar obrne hit 5. U mesto prvobi tnc reci 00 I 0 Ill 00000101101110 nastac'e
Osnovna mcmorija

nesrazmera u brzini prakticno znaci da ee procesor izdati zahtev za rad s memorijom


75

nova kodna rec 00 I 00 II 00000 I 0 II 0 Ill 0. Bic'e provereno 5 bitova parnosti i dobiec i cekati vise ciklusa raclnog takta da bi dobio odgovor. Sto je sporija memorija, pro-
cesor ec morati duze cia ccka.
se skdeei rezultati:
Kao sto smo rekli, postoje clva nacina za resavanje ovog problema. Najjednostav-
Bit parnosti 1 neispravan (1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21 sadrze pet jedinica).
nije je da se zapocnc citanje saclrzaja memorije kada se naide na oclgovarajuc'u instruk-
Bit parnosti 2 ispravan (2, 3, 6, 7, 10, 11, 14, 15, 18, 19 sadrze sest jedinica). ciju i cia se nastavi izvrsavanje programa, ali da se procesor zaustavi ukoliko neka
Bit parnosti 4 neispravan (4, 5, 6, 7, 12, 13, 14, 15, 20, 21 sadrze pet jedinica). instrukcija pokusa cia upotrebi memorijsku rec pre nego sto se ona ucita. Sto je merno-
Bit parnosti 8 ispravan (8, 9, 10, 11, 12, 13, 14, 15 sadrze dve jedinice). 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
Bit parnosti 16 ispravan (16, 17, 18, 19, 20, 21 sadrze cetiri jedinice).
rec koja se ucitava.
Ukupan broj jedinica u bitovima I, 3, 5, 7, 9, II, 13, 15, 17, 19 i 21 treba da bude pa- Drugo rcsenje je cia se um,esto racunara, koji ec sc u takvoj situaciji zaustaviti.
ran jcr smo se opredelili da parnost tako utvrdujcmo. Neispravan bit mora hiti jcdan od upotrehi prevodilac koji ncc'c generisati k6cl dnk potrcbnc rcci nc stignu iz mcmorijc.
bitova kojc proverava bit pamosti 1 ~ daklc, jed an od hitova 1, 3, 5, 7, 9. II, 13, I 5, 17, Samo. to jc mnogo lakse reCi ncgo uciniti. Poslc instrukcijc za ucitavanjc (LOAD) po
19 iii 21. Bit parnosti 4 je neispravan, sto znaci da je neispravan jedan od bitova 4, 5, pravilu ncma sta clrugo da se radi, paje prevodilac prinucten da umec'e instrukcije NOP
6. 7, 12, 13. 14, I 5, 20 iii 21, koje on proverava. Pogresan mora cia bude bit koji se nala- (ne radi nistal, koje samo zauzimaju mesto u kodu i trosc vrcme. Ovakav pristup. u
zi u obe listc: 5. 7, 13, I 5 iii 21. Mectutim. bit parnosti 2 je ispravan, sto eliminise bitove stvari, umesto zaustavljanja hardvera prouzrokuje zaustavljanjc softvera, ali se to na
7 i 15. I bit Xje ispravan. sto elirninise bit 13. Najzacl. i bit 16je ispravan. pa se elimi- isti nacin oclrazava na performanse.
nise bit 21. Preostao je samo bit 5. sto znaci cia je on pogresan. Posto je njegova vred- Problem zapravo nijc tehnoluskc, vee ekonumske prirode. Inzenjeri znaju da na-
nost I, on u stvari treba cia bude 0. Greskc sc ispravlj<0u na opisani nacin. 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
MemoriJska rec 1111000010101110
dugo). Kada sc na pmcesmski cip stavi memorija, ne postaje vcei i skuplji. C'ak ida
[§] [OJ _1_ [-oj _1_ 1_ _1_ [OJ o _o_ _Q_ _(l_ _1_ o 1 [il _(l_ _1_ _1 1 o_ cena ne predstavlja problem, pustoji ogranicenje velicinc procesorskog cipa. Prcma
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 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
B1tovi parnosti 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
Slika 2-15. Pravijcnjc Hammingovog 1-.llda L.a Il!CillOrijsku rcc Ill!()()()() lO 10 Ill 0
(engl. cache. ocl francuskog cuchcr. sto znaci sakriti). u nastavku eemo ukratko obja-
tal-.o ~to je dodato 5 kontrolnih hitova na 16 hitova podataka.
sniti kako se kes koristi i kako radi. Detaljniji opis pronac'i c'de u poglavlju 4.
Jednostavan postupak za pronalazenjc neispravnih bitova jeste provera bitova par- Kcs je nacinjcn da bi se u njernu cuvale najccsec koriscene memorijskc rcci. Kacla
nw.ti. Akn su svi hitovi parnosti ispravni. grt::Saka ncma. Ukoliko ima neispravnih bi- procesoru zatreba rcc. on je najpre trazi u kesu. Procesor pristupa glavnoj memoriji
tova parnusti. trcba ih sve sabrati. uzimajuei vrcdnost I za bit I. vrednost 2 za bit 2, samo ako traz.enu rec ne nade u kesu. Ako se u k6u nala~:i bitan cleo najccsee koriscc-
vrednost 4 za bit 4 itd. Rezultujuci zbir predstavlja poziciju neispravnog bita. Na pri- nih reci, prosecno vreme pristupanja znatno se skraeujc.
mer. ako suneispravni bitovi pamosti I i 4. a ispravni 2, S i 16, pogrcsan je bit 5 ( 1 + 4 ). Uspe~rwst 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
2.2.5 Kd memorija sledcei pristup memoriji biti u oknlini adrese A. Najjcdnostavniji primer pruza sam
tvlikroprocesori su uvek bili brzi od memorija. Kako se memorija unaprel1ivala. pmgram. Osim u slucajevima grananja i prilikom pozivanja procedura, instrukcije sc
poboljsavali su se i procesori. U stvari. po;to su projektanti proccsora imali moguc- preuzimaju sa u;.astopnih rncnmrijskih lokacija. Stavise. program veei deo vremcm
nost da pnstave svc vise elcktricnih kola na cip. iskoristili su je za paralelnu obradu tokom izvrsavanja provodi u petljama. u kojima se ogranicen broj insrrukcija stalno
podataka i superskalarni rad, zbog ccga su proccsori postali jos brzi. iznova izvrsava. Slicno tome, program za rad s rnatricama vcrovatno ee vise puta pri-
Projektanti memorija sunove tehnologije obicno koristili za povecanje kapaciteta, stupati istoj matrici pre negu Sto prede na clrugi zaclatak.
a ne brzinc. tako da je problem hrzine memorije s vremenom postajao sve veci. Ova

'
'
L
~'
76 Poglavlje 2: Organizadja racunarskih sistema
--------
2.2 Osnovna memorija 77

Zapa:lanje Ja program u nekom proizvoljnom, kratkom vrcmcnskom intervalu obic- ovaj nacin je ehkasniji od preuzimanja pojedinacnih reci zato sto je bri.e preuzeti k
no pristupa bliskim memorijskim zonarna zove se princip lokalnosti (engl. locality reci odjednom nego pojedinacne reci k pula. Tako i odredniee u kesu sadrze vise reci,
principle); to je osnova za sve sisteme kesiranja. Zamisao je sleJec'a: kada se vee pri- paje i iskoriscenje kesa vecc.
stupalo nekoj reci, ona i njene susedne reCi oJmah se prebacuju i1. velike i spore memo- Projektovanje kesa postaje sve vaznijc za proeesore visokih perfnrmansi. JeJna od
rije u kes, tako da im se sleJeCi put, ako zatreha, rnoze brze pristupiti. Uobicajen va7nib o~obina je velicina kesa. Sto je kd vec'i, bolje su mu performanse, ali jc i
ra~poreJ procesora. kesa i glavnc memorije prikazan je na sliei 2-16. Ako se rcc cit a iii skuplJi. Druga vazna osobinaje duzina reda kcsa. Kd od 16 KB moze sc podcliti .Ja
upisujc k puta u kratkom vrernenskom periodu, racunar c'e morati da jednom pristupi llJ2-+ reda po 16 bajtova. na 204~ redova po 8 bajtova itd. Treca osubinaje organiza-
sporuj :nemoriji i k- l pula brzoj rnemmiji. Sto je vece k, ukupne perfonnanse su bolje. 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.
Glavna Cetvrto pitanje koje se javlja prilikom projektovanja kesa glasi: da li instrukcij~ i
~ memorija
~-· 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:!.
Kes
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,
Magistrala 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
Stika 2-16. Kcs se logicki sme,;ta izmcdu proccsora i glavnc memorijc. paralelno. Jedinica za preuzimanje instrukcija treba da pristupi instrukL·iji istovremeno
Posloji vise mugucih mcsla gde se on mozc naci fizicki.
~ jedinicom za preuzimanje operanada koja pristupa podacirna. Razdvojeni kes on,o-
gucava takav paralelan pristup, dnkjedinstveni kcs tone dozvnljava. lsto tako. pohu
Ovaj racun mol:emo da fmmalizujemo tako sto cemo uvesti vrcrne pristupanja
se instrukcije tokom izvrsavanja ne menjaju, sadrl:aj kesa sa instrukcijama nikada se
kesu (c), vreme pristupanja glavnoj memoriji (m) i It- stepen pogadanja (engl. hit
ne vraca u mernuriju.
rutio). koji preJstavlja udeo svih pristupa memoriji koji moze biti zadovoljcn iz kesa.
Na kraju. peto pitanjc je hroj jedinica kes memorije. Dan as nije neobicno da naille-
U nasem knitkom primeru iz pretbodnug pas usa h = (k - l J/k. Neki autori delinisu i
te na cip s primarnim kdom na njemu, sekunc!arnim ke~orn izvan nJeg:a. ali u i'-.tom
stepen promasivanja (engl. miss ratio). I -h.
pakctu s cipom, i tercijarnim ke,;om na nekum drugurn mestu.
lmajuci u vidu ove delinicije, mo/,enw da izracunanw pmsecno vreme pristupa na
~ledec'i nacin:
2.2.6 Mcmorijski paketi i vrstc mcmorije
prosecno vreme pristupa = c + (1 - h) m
Kada h ---o> I. svi pristupi se mugu zadovoljiti iz kesa i vreme pristupa se priblizava Ocl sarnib pocetaka razvoja poluprovodnicke memurije. pa dll pocctka de1 eck~ctih
vrednosti c. S druge strane. kada h ---o> 0, svaki put je putn:hno pristupiti glavnoj memo- godina prosing veka, memorip sc proi;vodila. kup<>vala i ugr;ldivala u obliku pojc:-
riji. pa se vrcme pristupa prihlil:ava vrednosti c + m. jer se prvo (neuspesnu) pristupa dinacnib cipova. Gustina menwrije je bila l kilobit. l megabit itd., ali se S\'ctki cip
kdu (c), pa onda glavnoj memoriji (m). lJ nekim sistemima moze se istovrernenu prodavao kao zaschna jediniea. Prvi PC racunari c..::slll su imali pra;na pudnu/.ja ~a
pristupati i glavnoj i kes mcmoriji, taku da je, kad usledi prornasaj u kesu, ciklus pti- cloclatne memorijske cipovc, ukoliko hi kupac tll /.eleu.
stupanja glavnoj memoriji vee zapocet. Medutim, ova strategija zabteva da sc pri Dan as sc koristi drugaciji pristup. Grupa cipova ! najcesce X il i 16! priCvrscuje -;e
uspesnom pronalazenju instrukcijc u kesu prekine pristup glavnoj memoriji, sto otda- na malo ~tampano kolo i prodaje kao celina. Takva memorija sc skraceno ;ove SE\IM
va njenu implementaciju. (Single lnline Memory Module. menwrijski modul s jednim redum nol:i.:a) iii
Postuju(i princip lokalnosti, glavne i kes menwrije se dele u hlukovc fiksne velici- Dll\Il\1 (Dual Inline l\"lemory Module. memurijski mudLII s dva red:1 rwZieal. u 7 <t-
ne. Kada guvorimu o takvim blokovima unutar kda. ohicnu ih zovemo redovi kesa visnosti od toga da li se konektori nahze samo s jedne strat<e plocicc sa st~:mp;u:im
(engl. niChe lines). Kada dude do promasaja u kesu. iz glavne memorije se u kes uci- kolom ili sa obe. SIMM moduli imaju jednostrani prik!jucak. sa 72 kuntakta koji pre-
no~e 32 bita po jednum ciklusu radn"g: takta. Df\l:vlnH•duli po pravilu na svakoj ud
tava ne samo trazena memorijska rcc, vee citav red. Na primer. ako je reel duZ.ine 64
dve ~trane imaju prikljucke sapo X-+ konukta (ukupnn 168l, i preno-;e o-l bita po jed-
hajta. a pristupa sc memorijskuj adresi 260. u kd ce se prebaeiti citav red rdi od mire-
nom ciklusu. Na slici 2-17 prikazan je primer SL\J:'vlmemorije.
se 256 do adrese 319. Nekc od njih c'e vam. uz malo srece. ubrzn zatrebati. Rad na
~r 78 Poglavlje 2: Organizacija racunarskih sistema 2.3 Sekundarna mcmorija 79
~

. J
~
~0

l~,g,P,,~,g,P,W: /: ,: : :·"'"
D D Memorijski

Kes

Slika 2-17. SIMM mmlul kapacitcta 256MB. Osam Cipova su stvarna memorija,
dok dva cipa upravljaju modulorn. Glavna memorija

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 Magnetni disk
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- Traka Optickt disk
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,
Slika 2-18, Petostcpcna hijcrarhija rncmorijc.
ali se takvi moduli uglavnom ne ugraduju u racunare za masovnu upotrebu jer se gre-
ske u mernorijskim modulimajavljaju u prosekujednom u deset godina. 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
2.3 SEKUNDARNA MEMORIJA 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
Bcz obzira na to kolika je, memorije nikad nije dovoljno. Korisnici uvek zele da
mozc se meriti sekundama ukoliko mcdijum trcba odneklc preuzcti i staviti u citac.
sacuvaju vise infomwcija ncgo sto una mozc da prihvati, narocito zato sto pod utica-
Drugo, kako idemo niz hijcrarhiju, tako raste i kapacitct skladistenja. Rcgistri pro-
jem novih tehnologija misle da u memoriju mogu srnestiti sve ono o cemu su nekada
cesora su dobri za cuvanje do 128 bajtova, kd memorije za nckoliko megabajta, glav-
samo mastali. Na primer, posto pravila koriscenja americkog budzeta teraju vladine
na memorija za desctine iii hiljade megabajta, a magnetni diskovi za nekoliko dcsctina
agencijc cia same brim1 o sopstvcnom prihndu. mogli bistc zamisliti cia Kongresna bi-
gigabajta. Trake i opticki diskovi obicno se cuvaju posebno. pa samo korisnikova tin
bliotekajednog dana odluci da digitalizujc citav svoj sadrzaj i ponudi ga sirokoj publi-
ansijska situacija ogranicava njihov kapacitet.
ci (,Celokupno ljudsko znanjc za samo 99,95 dolara"). Za oko 50 miliona knjiga,
Trece, broj bitova mcmorije koje mozete kupiti za dolar. raste niz hijerarhiju. lako
svake sa l MB teksta i l MB komprimovanih slika, potrebno je uskladistiti l 0 14 bajto-
se konkretne ccne hrzo rnenjaju, one se za glavnu mcmoriju mere u dolarima po mc-
va ili l 00 terabajtova. Na takav nacin se razmislja i o sk!adistcnju svih dosad napra-
gabajw, za magnetne diskovc u ccntirna po mcgahajtu. a za magnetnc trakc u dolari-
vljenih 50.000 filmova. Ovakva koliCina informacija ncce moci da stane u glavnu
ma po gigahajtu.
memoriju, harem ne za jos nekoliko dcccnija.
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-
2.3.1 Hijerarhija mcmorije ke diskove. Trake necemo opisivatijer scone uglavnom koristc za pravljenje rezcrv-
Klasicno resenje za skladistcnjc vel ike kolicinc podataka jestc hijerarhijsko orga- nih kopija, a o njima ionako nema mnogo sta da sc kazc.
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 2.3.2 Magnetni diskovi
trenutno krcce od 32 KB do nckoliko megabajta. Sledcca je glavna rnemorija. od 16
Magnctni disk se sastoji od jedne ili nekoliko aluminijumskih ploca prevuccnih slo-
MB za najjednostavnije sisteme, pa do desctina gigabajta za najsavrsenije. Posle njc
jem koji se moze namagnetisati. Ploce su prvohitno bile precnika i do 50 em. ali jc nji-
su na Jelu magnetni diskovi, danasnji glavni mcdijum za trajno skladistcnje podataka.
hov prccnik danas najce~ce od 3 do 12 em, clok je precnik diskova za prenosive
Na kraju se nalaze magnctnc trakc i opticki diskovi za potrebe arhiviranja podataka.
racunare vee manji od 3 em i jos uvek se smanjuje. Glava diska koja sadrzi indukcioni

~.
2.3 Sckundarna memorija 81
so Poglavlje 2: Organizacija racunarskih sistema

kalem klizi nepos red no iznad njegove povrsine na vazdusnom jastuku (izuzev kod dis- Linijska gustina bitova duz staze razlikuje se od gustine bitova u radijalnom
k eta, gde dodirujc povrsinu diska). Kada kroz glavu prolazi struja u jednom ili drug om smeru. Ona je uglavnom odredena cistocmn povrsine i kvalitctom sredine (vazduha)
smcru, ona magnctil.lljc povrsinu neposrcdno ispod scbe, usmeravajuc'i magnctne cc- u kojoj disk rot ira. Danasnji Lliskovi dostizu gustine ocl50.000 do I 00.000 bitova/cm.
stice uievo ili udc,no. Kada glava (pasivno) prelazi iznad namagnetisanih podrucja, u Tu znaci da je hit oko 50 puta duzi u radijalnom srneru ncgo duz staze.
njoj se indukuje struja jednog iii drugog srnera, sto joj omogucava da procita ranijc Da bi postigli jos vecc gustine, proiz.vodaci diskova raz.vijaju tehnologije pomocu
uskladisk'nc· biton: infonnacija. Na taj nacin, clok disk rotira ispod glave, na njega sc kojih jcclnu od dve dimcnzije bita ne usmeravaju duz staze, vee vertikalno, u dubinu
moLe upisaii ni;: bitu'-a i kasnijc ponovo s njcga procitati. Ueomctrija jednc stazc na magnetnog materijala- oksida gvozda. Ova tehnika sc zove vcrtikalno iii perpendi-
disku prik~V<tila J'-' na slici 2-llJ. kuhu·no 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
---
Razmak rzmedu sektora
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.
Glava za citanje
/ Diskovi uglavnom imaju vise vertikalnu naredanih ploca, kao na slici 2-20. Svaka
i uprsivanje
od uvc povrsine plol:e ima svoju rucicu i svoju glavu. Svc rucice su medusobno cvroto
\ I povezanc tako da se sve krecu zajcdno. Skup traka na datom radijalnom odstojanju
--~- 1 bit zauzima "' - Rucica naz.iva se cilindar. Danasnji diskovi za PC racunare imaju najcdcc od 6 do 12 ploca
na stazi duZinu
Sirina '· / diska
od 0,1 to 0,2 mikrometra po urcdaju (ukupno, od 12 do 24 povrsinc za zapisivanje).
staLe Je
1--2 mrkromr.tara

Slika 2-19. Dell staze diska. Prik:w111a .su dva sektora.


Povrsina 7

Upisan niz bitova tokom jedne pune rotacije diska naziva sc (kruzna) staza (engl. Povrsina 6
trud). Svaka stazaje podeljena na izvestan broj sektora tiksne duzine koji po pravilu Povrsina 5
'>ctdr/.e 5 12 bajtova podataka, a isprcd koj ih ~c nalazi tLv. preambula - uvodni cleo
Povrsina 4
kojt omoguL'ava sinhronizovanjc glavc pre citanja iii upisivanja bitova. Iza podataka Povrsina 3
skdi k•)d za ispravljanje gresaka (engl. Error-Correcting Code, ECC) Hammingo- Smer krelanja ruCice
vog tipa iii cesc'e, kou za ispravljanje visestrukih gre:iaka, na~:van Reed-Solomonov Povrsrna 2
kf>d. !nneuu uzastopnih sektora nalazi se mcdusektorski razmak (engl. inlcrscctor Povrsina 1

,~<if' 1. Ncki proizvodaci navode kapacitct svojih diskova u ncformatiranom stanju


'· k~:o da svaka staza sadr7.i iskljucivo podatke ), ali jc tacnije govoriti 0 kapacitctu ror-
lll~ttiranog diska- on ne racuna preambule, kodove i razmake kao podatke. Kapacitet
[',nmatiranog diska najcesce je oko 15 procenata manji od kapaciteta neformatiranog. Slika 2-20. Disk sa C·ctiri pl,,C·c.
~'- 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- Pcrl'ormanse diska zavisc od vise cinilaca. Da hi sc zapisan ncki -;cktur, nawrc sc
C·itt: suzc. Staz.e su, prema tome, nizovi konccntricnih kruguva oko osovine. Sirina rul:ica mora dovcsti na odrcuenn radijalno rastojanje od os,wine. Taj postup<tk sc ZO\ e
,tazl· /.aVI'ii ud velicine gla\e i prcciznnsti njenog radijalnog poLicioniranja. Na trazcnje (engl. seek). Srcdnje vreme tra/.enja (izmedu nasumil:nl) odabranih :;ta7a)
l!~l!Ll~llJClll nivou rat.voja telmike, diskovi imaju i.r,mcuu 5000 i I 0.000 staza po ccn- ktccc se iLincdu 5 i I() ms. dok jc vrcmc traz.enja i1.nh.:du UDlstnpn[h sta;a ~:a:us pal'l
tin,dru. sto !llaci claje sirinajcdne staze izmcdu I i 2 rnikromctra. Treba naghtsiti da ispod I ms. Kada se glava poslavi u udredeni radijalni polu/.:tj. sicdi pa!!za, nazvana
sU/.a ne prc:dstavlja tizicku ,brazdu'" na povrsini, vee prsten namagnctisanog matcri- rotaciono kasnjenjc (engl. rulutionulllllency), tok.(>m kojc zclJcni '>d.rm na mtira-
pl;t. odvoicn uskim razmacima od susednih staza. juccm disku dolazi ispod glavc. Veeina diskova wtirc~ brzinama ud 5-+f)(J, 7200 iii
1O.SOO u/min, tako da srednjc rotacionu kasnjenje 1vrcmc rolovi ne jcdne roucije) !Z-
nosi od 3 du 6 ms. Brzina prenusa podataka zavisi od !inijske gustine i buine rutacij~.

,,t
~ 82 Poglavlje 2: Organizacija racunarskih sistema Sekundarna memorija 83

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 13~26 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- Stika 2-21, Disks pet zona. U svakoj zoni jc veliki broj staza.
zira nato u kom se cilindru nalazio.
Dan as se koristi drugacija tehnika. Cilindri se dele u zone (po pravilu ocl 10 do 30 Opste karakteristikc disketa iste su kao i karakteristikc diskova koje smo upravo
zona po uredaju) a broj scktora po stazi je tim veci sto je zona u kojoj se scktor nalazi opisali, osim sto kocl njih glava za citanje/upisivanje ne lebdi na vazdusnom jastuku,
bli/.a perifcriji Jiska. Zbog ove izrnene informaeije se teze prate, ali se povecava ka- vee klizi po samoj povrsini diskete. Zbog toga se i medijum i glava srazmerno brzo
pacitct diska. sto sc smatra vaznijim. Svi sektori Sll isle velicine. Na sliei 2-21 prika- habaju. Da bi se habanje svelo na sto manju meru, kod licnih racunara se glava cli-
zan jc disk s pet zona. sketne jediniee vraca u prvobitni polozaj i disketa se zaustavlja kad god nema ucita-
Uza svaki disk ide i njegov kontroler (engl. disk controller), tj. Cip koji upravlja di- vanja iii zapisivanja podataka. Kada se zacla sledcca naredba za citanje ili upisivanje
skom. Neki kontroleri sadrze i prave procesore. Kontroler trcba da prihvata komande podataka, javlja se kasnjenjc od oko pola sekunde da bi motor postigao potrebnu
programa, kao sto su READ, WRITE i FORMAT (upisujuci sve preambule). upravlja kre- brzinu rotacije disketc. Diskete su se mnogo koristile tokom prethodnih 20 godina, ali
tanjem ruciee diska, otkriva i ispravlja grdke, te pretvara 8-bitne bajtove procitane iz savremeni racunari obicno nemaju disketne jediniee.
memorije u 'erijski niz bitova i obrnuto. Ncki kontroleri baferuju visestrukc sektore,
kesiraju ucitane sekture za eventualno bucluce koriscenje i prcslikavaju lose sektorc. 2.3.4 IDE diskovi
Poslednja funkcija postoji zbog sektora s losom (trajno namagnetisanom) tackom.
Kada kontroler otkrijc los scktor. on ga zamenjuje jednim od sektora rezervisanih za Svi diskovi savremenih licnih racunara vode poreklo odjednog diska u IBM-ovom
ovu svrhu u svakom cilindru iii zoni. 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
2.3.3 Diskete
ih na njcga, smestajuCi parametre u registre procesora i zatim pozivajuci osnovni ula-
Uporcclu s razvojem licnih racunara nastala je i potn:ba Ja sc distribuira sortver. zno-izlazni sistem (engl. Basic Input Output System, BIOS) koji se nalazio u memoriji
Pronadeno je sredstvu: disketa iii savitljivi disk tengL//oppl' disk), mali. izmcnljivi sarno za citanjc, ugradenoJ u racunar. BIOS je potom izdavao masinske instrukeije za
medijum knji je tako nazvan jer su prve diskete zaista bile savitljive. Di.~kete su iz- ucitavanje sadrzaja regislara kontrolera i tako stvamo zapocinjao prenos poclataka.
misljcne u IBM-u da bi 'e na njima cuvale infonnaeije o odr/.avanju eentralnih racu- Tehnolugija je brzo napredovala ocl kontrolera na posebnoj kartiei do njegove tesne
nara. potrebne servisnoj sluzbi. Vrlo su ih brzo brzo prigrabili i proizvodaci licnih integracije s diskom, pocev od IDE (Integrated Drive Electronics, elektronika inte-
racunara kao pogodno sredstvu za distriburanje komcreijalnog softvera. 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,

L
84 Poglavlje 2: Organizacija racuna~kih si~tema 2.3 Sckundarna memorija
--------~----·· --~~-~----- -
85

sektori su se adrcsirali navodenjcm hrojcva glavc, cilindra i sektora, pri cernu ;,u glave St<mdard .-\TAPI-7 potpuno raskida s prosloscu. Urnesto cla prosiruje prikljucak d 1s-
i cilindri brojani poccv~i od 0. a scktori pocevsi od l. Za takav i1hor molemo vero- ka (da hi se povecala hr;ina prenosa podataka). ovaj standard koristi scrijsku A.TA
vatno zahvaliti programcru onog prvog BIOS-a koji je svoje /.ivotnu delo napisao na tehnologiju za prenosenjc jednog po jednog: bita preko prikljucka sa 7 nozica, brzim,rn
ascmbleru za proccsor 8088. Sa 4 bita za glave, 6 bituva za scktore i l 0 bitova za ci- ud !50 MB/s (ocekujc sc da ce s vremcnom narasti do 1.5 GB/s). Zamcnjivanjem
lindre. najVCL'l disk bi imao 16 g!ava. 63 sektora j 1024 ciJindra, S(O dajc Uk.Upt10 postojcccg pljosnatog kabla sa 80 zica nkruglim kahlom clebelim samo nekoliko mili-
1.032.192 scktora. Njcgov kapacitct bi hio 504MB. sto je u to doba hilo ravno besko- metara. omog:ucava se bolji protok vazduha za hladenje unutrasnjosti racunara. Pored
nacnusti. ali danas nijc. (Da li histe danas kritikovali racunar koji nc mole da rukujc tm!a. serijski ATA prikljucak koristi naplln od 0.5 vulti za signaliziranjc (dok clishvi
disk-jedinicama vecim od pctabajta?) p(; standanlu ATAPl-6 koriste napon ml 5 Vlllti I. ~ro smanjuje potrosnju struje. Zane-
Nije trebalo dugo cekati na diskove kapaciteta 504MB. ali Sll oni stigli' ,.pogre- koliko god ina. verovatno ce svi racunari L1ristiti serijsku ATA tehnologiju. Struja koju
.~nom" geometrijorn (npr. ~a 4 glave. 32 sektora. 2000 eilindara). Operativni sistem ni disk trusi postaje svc vaznija stavka kako za naj;.a!ttevnije racunske centre sa ogrom-
na koji nacin nije mogao da adrcsira takve diskove zbog okamenjenih konvcncija nirn farmama diskova, tako i 1,a pojedinacne korisnike prenosivih racunara, za kt1je
puzivanja koje je koristio BIOS. Zato su kontroleri diskova poceli da la/.u, praveci sc smanjcnje p<ltrosnje postaJC imperativ (Ciurumurthi et al., 2003).
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 2.3.5 SCSI diskovi

'-,
operativne sisteme koji su pa/.ljivo rasporedivali podatkc na disku da bi skratili vrcmc
SCSI diskuvi sc od !DE di.~kova ne ra.dikuju toliko po organizaciji cilindara. st:1za
njilwvug tra/.enja.
IDE diskovi su konacnu evoluirali u EIDE diskove (Extended IDE, prosireni i o;cktura koliku po intcrfcjsu i mnug:o vecim brzinama prcnosa podataka. Tehnologlju

1
JDE). koji su podr/.avali i drugaciju semu adresiranja nazvanu adresiranje logickih SCSlmo/.emPunazad pratiti do IIuwarda Shugarta, pronalazaca diskcte. cijaje kom-
.

hlokova (engl. Logical Blod Addressing. LBAL ~cktori su je:clnostavno oznacavani panija 1979. godinc pwizvela disk po irnenu SASI (Shugart Associates System Int~r­
.
rednim brojevima ml 0 domaksimalnu 2 2' - I. Za primenu ove seme hilo je potrebno Lcc) l'\lsk odreLknih prcurelicnja i mnogo diskusija, organiz.acija ANSI ga je
da kuntroler pn;tvara LBA adre~e u adres<.: glave. sektora i cilindara i za nju nije j)\J- standardimvab !l)~(J. gudine i promcnila mu imc u SCSl (Small Computer System
Interface, inter!cjs z:1 male ral:unar~ke sistcme). SCSI se cita .. skazi". Od tog vremc-

II.
stojalo ogranicenje ud 504MB. Na/.alust. onaje st\orila nmu u-;ko grlu za kapacilet
ud 22X x 2'' bajtova ( J 2S GB). Kada je 1994. godine prihvaccn EIDE 'itandard, niko na. standardiLuvcmc su we brzc vcrzije ovc tehnologije. pod imenima Fast SCSI (10
nije mogao cla zami,]i disktlVe od l2S GB. Kumiteti za standanle te:le da (kao i poli- t\!H;J. Citra SCS! (~U I\!! L.c). Ultra2 SCSI (40 MHz). Ultra3 SCSI (RO M!Izl i Ultra4
ticari) pruhlem samo ndgurnu u buclucm>st da hi ga re~a\ak .,Jedece generaL·i.iL'. SCSI \ J 60 ~.! !l; ). S \ <Jka navedcm ver1ija i malaje i siru ( 16-bitnu) var~jantu. Va/.nije
EIDE c!iskovi i kontroleri pobulj~avani sui na druge nacine. Na primer. E!DE kllll- kombinacijc su prikaune na slici 2-22.
troleri su mogli imati elva kanala. svaki sa svujim primarnim i sL·kundarnim di,k,nn. U ''. ----- --------~~~-·----

i lme standarda ! Broj bitova


-----,-:-·
Mag istrala
ro Brzina prenosa

+
tak voj organi;.aciji moglo se koristiti najvise cctiri di~;ka jednom kuntrolcru. Kontro- . t

i za podatke I (MH z) (MB/s)


leri su podrzavali i CD i DVD uredaje. a brzina preno~a 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 f1CJ/V~II1 .\TA-3 1.AT At-
I

; '
:SCSI-1
I -··-----

! Fast SCSI
- --~-~--
'

i
I
8
- - - - - -

8
~

,
5
10
------
5
10
I ----- ---~-- ---~--~---1-- - - - - - - - + --~

;~~t~~;0~SCS~I-r ~i-1 -~~-__1_-+-~


tachment. AT dodatak ). \ aljda i1 poca,ti prema IB~l-ov om r~J(un:tru PC! AT 1gdc JC I 20
~··
fj

1'.
AT skracenica za tada naprednu tehnologiju- engl. Adrunn'rl f[ d'nnlogr l b-hitnog ::-. I
) 20
,
proce-;ura na 8 iV!Hll. Standardje u sledcc'em i.tdanjunazvan AT\Pf--4tATA Packet ~ . 40
Interface. paketni ATA interfcj,;). a hr;ina pretl\lSa je j)(lVeL'<tna na .iJ :-,I B/:.,. L stan-
~ l Ulrra2_~~SI__ ___'_~_ ~--=--f· 40- I ---4o~
dardu ATAPl-:'i onaje clostigla 66 i\JB/s. f{l ; '''hjs l..!ltr2.2 SCSI 16 , 40 I SO .
~
i
Ncgde u to vreme. g:ranica od 12~ CiB koju je posl;tvilo 20-hiino LBA adrc,[ranJC
a !i~~tra3 sc;Si----1 a i 80 -~ so
pocelaje we vise da -,meta. takd d:t :.;u u \LtmLtnlu .-\f.\J'J .. () LB:\ C!cb:se P'lvec;mc n<~
~
i~~~~t~scSI~~~ -=- ~6 =LI .';; =1- -_:::
. .-
48 hitova. Novi standard c'e zapasti u ~kripac 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 ''f'rirL"t
~-~~-e ' 0 ~S' 1 16
1 ra.=_ cv_._ _ l _ _ _
160 __j___ ____
_ ___ 320 _
zeleli da saznate kako JC problem re,~en. pogledajte ll. i,rdanJe ,we knjige. Strucnjaci . Sliha ~-22. >kki od nwguc'ih SL'SI pararnetara .

I
vee racunaju na LBA adrt~sc 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. .
'
~
;i
86 Poglavlje 2: Organizacija racunarskih sistema Sckundarna memorija 87

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

~L
r=r'Tj'
:~T
'·J~

!
SX Poglavlje 2: Organizacija racunarskih sistema
------'-
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-
(a) RAID nivoa 0
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
RAID
ni puboljsanja performansi. Druga mana ove organiL.acije je tu ~lu je njena pouzda-
(b) nivoa 1 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.

lei 8888888:~~~~,
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 udvo~trucuju 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 kt•piJC. pa se optcrccenjc raspnrcctuje na vise cliskova. Prcma tome,
pcrfurmanse upi~ivanja nisu bolje ncgn kod jedrwg di,ka. ali performansc cita:Jja

ldi8EJE~8
mogu hiti i dvostruko holje. Otpornostna grc~ke jc odlicna: ako ncki disk otkazc. k.o-
risti ,e njegova kupija. Oporavak posle otka...:a sastuji se od zamenc ncispravnog di'ka
RAID nivoa 3
i kopiranp ~<tdrzaja odgovarajuc'cg ro.ervnog di~LL
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
d~t 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 sJiL·j 2-2J(C) Si!lhrt)lliZ(>V]j]j U pogJcdU polozaja ntCiCC i polo/aja
(e) RAID n1voa 4 pri rotaciji. Tada bi btlo nwgucc npi-,ati 7 -hitnu rcc kudiranu Hammingovim kod<llll
11~1 sccLim di,J:t•va- po Jnlan bit na sval--\lll1 disku.
Ral:unar Cl\-1-2 kompanijc Thinking \Ltchincs kuristio je ovakvu semu, dodaj~tci
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-
.f pan prutul:-. pod:tuka bj,-, jc ,,gruman jcr jc tuk\>111 vrcmena potrchnog za upisivanjc
jcdth•g 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-
(f) RAID nivoa 5
1Y-hitnuj rcci. ~to !-lammin~_:,•v 1:-.t)J mu./c cla i.,pravi u hodu.
l\kJu k>.;c c;tranc uvakvc nrganil:tci)e trd1a ul··wjati cinjenicu da sc svi diskJvi
mr,r~tjll >inhronu ruttr:1ti ida <Jna ima sn;i;la ,amu\:t vcltkim brojcm diskova (cak sa

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.
I 32 diska s pud:lCJ!lla i 6 di,kuva z.a parno~l hcsi·.1•risno ~e 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.

I
r 90 Poglavlje 2: Organizacija racunarskih sistema 2.3 Sckundarna memorija 91

RAID nivoa 3 je uproscena verzija sistema RAID 2. On je prikazan na slici Philips jc 1980. godine, zajedno sa Sonyjem, stvorio kompakt disk (engl. Compact
2-23(d). Ovde se izracunava samo jedan bit parnosti za svaku rec s poclacima i upisuje Disk, CD). kojije brzo zamenio klasicne gramofonske ploce kao medijum za cuvanje
na disks podacima o pamosti. Kao i u sistemu RAID 2. i ovdc diskovi moraju biti pot- muzickih numera. lscrpni tehnicki detalji o kompakt diskovima objavljeni su u zva-
puno sinhronizovani jer se pojcdinacne reci s podacima rasporeduju na vise diskova. nicnom Meclunaroclnom standarclu (IS I 0149 ), zhog boje korica popularno nazvanom
U prvi mah moze izgledati da se pomocu samo jeclnog bita parnosti greska moze Crvena knjiga (engl. Red Book). (Medunarodne stanclarcle objavljuje Medunarodna
otkriti, ali ne i ispraviti. Kada je rec o slucajnim neotkrivenim grdkama, ovo za- organizacija za standardizaciju koja predstavlja protivtezu grupcijama za donoscnje
pazanje je tacno. Medutim. u slucaju otkazivanja diska, mogu se potpuno ispraviti nacionalnih standarcla. kao sto su ANSI, DfN i dr. Svaki standard ima svoj IS broj.)
1-bitne grcske jcr jc poznata pozicija ncispravnog bita. Ako otkaze neki disk, kontro~ Smisao objavljivanja specifikacija za disk i njegov citac u obliku meclunarodnog stan-
lcr ce se ponasati kao da su svi njegovi bitovi nule. Kacla rec ima gresku pamosti, to darcla bio je da sc omoguCi meclusobna saraclnja proizvoclaca muzickih diskova i pro-
znaci da bit na disku koji je otkazao mora biti jeclinica, pa se na tu vreclnost i postavlja. izvodaca plejera. Svi kompakt cliskovi su precnika 120 mm, debljine I ,2 mm i irnaju
Iako sistemi RAID 2 i 3 obeLbeduju velike brzinc prenosa podataka, broj pojedinac- centralni otvor precnika I 5 mm. Kompakt diskovi za snimanje zvuka prvi su uspesan
nih ulazno-iLlaznih zahteva kojc oni u sekundi mogu da obraclc nije veci nego kod meclijum velikog kapaciteta za smestanje digitalnih podataka. Veruje se da mogu tra-
jedi nstvenog cliska. jati I 00 goclina. Molim vas da 2080. godine provcritc koristi li se jos uvck prva pro-
Sistemi RAID 4 i 5 racle sa segmentima, a ne s pojeclinacnim recima s proverom izvedena grupa kompakt cliskova.
parnosti i nc zahtevaju sinhronizovane diskove. RAID 4 pogledajte sliku 2-23(c) Kompakt disk se pravi tako sto se snaznim infracrvenim lascrom buse rupc prec-
- slican je sistemu RAID 0, s proverom parnosti svakog segmenta koji se zapisuje na nika O,R mikrona u staklenom disku - matrici - prevucenom posebnim slojcm. Od
disk. Na primer, ako je svaki segment clugacak k bajtova. na sve segmente se medu- matrice se uzima otisak, koji ima ispupcenja na mestima gde su u matrici bile rupe.
sobno primenjuje iskljuciva disjunkcija (XORJ, cime se dobija segment parnosti Otisak je u stvari kalup u koji se ubrizgava stopljena polikarhonatna mas ada hi se do-
duzine k bajtova. Ako disk otkazc. izgubljeni bajtovi se mogu rckonstruisati pomocu bin kompakt disk cija jc povrsina izbuscna na isti nacin kao i staklena rnatrica. Pot om
diska s podacima o parnosti. se na polikarhonat nanosi tanak sloj rellektujuceg aluminijuma, zatim zastitni sloj
Ovakva organizacija obezbeltuje zastitu pri otkazivanju diska. ali je neetikasna !aka i na kraju, etiketa. Uduhljenja u polikarhonatnoj podlozi zovu se urezi (engl.
kada se azurira mala kolicina podataka. Pri promcnijednog sektora podataka neophocl~ pits); netaknuta podrucja izmcdu ureza su ostrva (engl. lands).
no je ocitavanje svih diskova cia bi se izracunali poclaci o parnosti. koji zatim moraju Pri reprodukovanju cliska, slaha laserska dioda osvetljava urcze i ostrva infracrve~
biti i zapisani. Pored toga. mogu se ocitati i stari korisnicki podaci i stari podaci o par- nom svetloscu talasne duzine 0,78 mikrometara. Lascrom sc osvctljava zadnja (po-
nosti, i iz njih dobiti nove informacije o pamosti. Cak i uz ovakvu optimizaciju, za azu- likarbonatna) strana diska, tako da se urczi koji sc protczu ka lascru ocitavaju kao
riranjc male koJicinc podataka potrebna Sll elva citanja j dva upisivanja, StO je uzvisenja na ravnoj povrsini. Posto je dubina ureza jednaka cetv11ini talasnc duzine
ocigledno losa organizacija. laserske svetlosti. svetlost koja se rellektuje ocl dna ureza fazno je pomerena ;:a polo-
Buduci da jc disks podacima o parnosti toliko optereccn. on mozc da us pori citav vinu talasne duzine od svetlosti koja se rcflektuje od okoline. Svetlost ~c zbog intcr-
sistern. Ovo potencijalno usko grlo eliminise se u sistemu RAID 5 tako sto se bitovi ferencije prigusuje pa je ona koja se vraca u fotodetektor plejera rnanjeg intenzitela
parno~ti rasporcctuju po svim di,kovirna. kao sto je prika;.ano na slici 2-23(1). Mcdu- ncgo svetlost odbijcna od ostrva. Na taj nacin plejer razlikuje ure;:e i ostrva. lako
tim, u slucaju da disk otkaL.e. njegovo rekonstruisanje je vrlo slozeno. 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-
2.3.7 Kompakt diskovi za na ostrvo ili sa ostrva na urez. a za vrednost 0 odsust vo takvog prelaza. pa se tak va
scma i 1-.uristi.
Opticki dis!-.ovi su napravljeni za snirnanjc televizijskih programa, ali im se moze Urezi i ostrva izmedu njih zapisuju se duzjedinstvene spirale koja pocinje u blizini
naci i .,korisnija" upotreha- za cuvanje racunarskih podataka. Zahvaljujuci vclikom centralnog otvora i siri sc radijalno ka ivici u du:l.ini od 32 mm. Takva spirala ima
bpacitctu i niskoj ceni, opticki diskovi se masovno koriste za distrihuiranje softvera. 22.18R navoja (oko 600 po mm). Kada biste je razmotali, hila hi clugacka 5.6 1-.m. Spi-
knji)!a. lilmova i podataka svakc vrste, kao i za pravljenje t-eLervnih kopija cvrstih rala jc prikazana na slici 2-24.
di~kova.
Da bi se muzika reprodukovala ravnomernom brzinom. neophodno je cia urezi i
Prvu generaL·iju optickih diskova napravio jc holandski elektronski gigant Philips. ostrva prolaze ispod glavc za citanje konstantnom linearnom brzinom. Zbog toga se
da hi sc na njih srndtali Jilmovi. Oni su bili precnika 30 em i prodavani su pod ime- brzina rotacije kompakt diska mora neprestano smanjivati uporedo s pomeranjem
nom LascrVision. ali nisu bili sire prihvaceni. osim u Japanu. 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: 01·ganizacija racunarskih sistema 2.3 Sekundarna mcmorija 93
-------------·

Sptralntzieb U Zutoj knjizi dodatno je definisano za CD-ROM-ove cia sc 9~ 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
:::1 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-
/1 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
Blok sa 2K
2-25. sa 16-bajtnom preambulom, 204~ bajrova podataka i 2XX-bajtnim kodom za
konsnickih ispravljanjc grdaka (unakrsno prcpletcn Reed-Solomonov kCld). U re:l.imu 2, polja
podatnka 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
Slika 2-2-t. Struktura zapi"r na kornpakt dtsku. 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
pcril"criji. br1.ina rolaL·ije Ji,ka opada na 200 o/min Ja bi sc postigla isla linearna brzi- simbola, unutar okvira i unutar CD-ROM scktora. Jcdnobitne grdkc sc ispravljaju na
na ocitavanja. Opticki di\k Kl'ji odrzava KOil\lantnu linearnu brzinu citanja podataka najni.i.crn nivou, kratke rafalnc greskc na nivou okvira. a prcostalc grdke na nivou
pnlpurm sc r;vJikujc od magnctnl'!:' diska koji radi konstantnom ugaonom brzinorn. sektora. Cena za tako visoku pouzdanost je niska efikasnost (samo 289!:): za rrc-
ho oh1.ira n.tlrcnutni poi<JZaj glavc 1.a citanje. lsto tako. navcJenih 530 o/min samo no~cnje 2048 bajtova putrebno jc 98 ok vira sapo 588 bitova ( ukupno 7203 bajta).
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 DOD ODD
14·bltni simboli
re~cun~trskih F'lll:tl.tk::. Jn -;u ohjavili t1.v. Zutu knjigu i u njoj prccizno Jcfinisali stan-
lbrd /a ()Jl() ~tu mi d<tna' ZO\ CillO kompakt disk samo za citanje (engl. Compact Di- ~Jed an okvir ima 42 Slmbola
sc-1\,ud Onir \li'inon. CD-ROM!. lh bi se iskoristila steecna populamosl kornpakt t 588-bitni okviri
di,kov~, na tri.!~tu. ;~: CD-R0\1 -;u inrhratre tizil'ke Jimcnzijc postojccih audio-disko- DCJDCJCJDCJD OOOODDOO sa po 24 baJta
podataka
va. tako da ~us nJima hili mchanicki i t>pticki kompalihilni a proizvodili su se od po- Preambula 98 okvira cine sektor
likarhnnatne ma~c na ''tim ~pric-masinama. ?bog tc ndiukc, pocdi su sc traziti rnotori
. ---- I Sektor

~
K6dzo
pn1:nctllji1o,:: hr::inc. <lli je i ccna CD-R.0\1-a u mrcclnjim pmzvodnirn 'erijama pala Podac! ispru,:IJ<Hlle u reiimu I
gresukll (2352 bajta)
p1 il iL·nu i\j'u~.J jL·dnog dcdara.
Bajtovi 16 2048 288
Chirn st<l jc ~:Zutuj kniiti dc!inioanu f,rmatiranjc ral'unar~kih ruJataka. onaje do-
princLt i flt'bolj:;<:iljll :;p<Nl]•ll0\ 1 i si)lC111~1 da ispravija grcske, S[() jc bilo zaista 11C- Slika 2-25. Lll:;icki ra,porcd podataka na CD-ROM-u.
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 Jednobrzinski CD-ROM urcl1aj ima brzinu citanja od 75 scktora/s. cime se ostva-
CD-ROi\1-ajcstc: prdvaun_1e 'vctk<'g bajta u l-1--bitni simbol. Kao sto vee' znamo. 14 ruje prenos od 153.600 bajtova/s u rezimu 1 i 175.200 bajtova/s u re2irnu 2. Urcdaji
hitu\ ~~ _:c cl<!\t Lb ": X-hitni bajt kodira l''l Hc~mmingu. pri L'emu preoslaje 2 hita. dvostruke brzine clvaput su brzi i tako redom, sve do najvcce brzine. Na standardni
U ,tva:-i. k')ri;ccn jC J:;nq:<• mu..'n1ji n:1cin kodiranja. Preslikavanje iz 14 u 8 bitova audio-disk staju 74 minuta muzikc. a ako se iskoristi za smestanje podataka u rezimu
nh~H Ijut1u j.: h._ti·:._)\-.?!·:-,J. itn t.Jr(:tr:Lfivanjcni Label~. I. moi.e da stanc 68 I .9?\4.000 bajtova iii oko 650MB jcr I MB ima 2 20 ( 1.048.576
CJrup,, "d -+2 L:,ca,tc··;·m~t 'imlhlla n~· sicdc..'cm. viscm nivou. obrazuje 588-hitni ok- bajtova), a ne 1.000.000 hajtova.
vir (~'n!l;l. i. S'.a~i ,,k\ir _,aclr/i 192 bita podatab (::2-t bajta). Prcostalih 396 hi- Napomcnimo Ja cak i CD-ROM uredaj brzine 32x (4.915.200 bajtnva/-;) nc mc)ze
wv~t kuri.,ii sc za i'jl!~t-, !j.!:1jc~ gre~aka i uprav ljanje. Do ove tackc, fom1atiranje je da Sc' rneri s hrzim SCSf-2magnetnim diskom brzine prenosa od I 0 MB/s, iako mnogi
idcnti2no /Ll auditl-di.-....kove i di'"'kovc s pnd~1-::in1a. CD-ROM ureLt0i koriste SCSI interfcjs (postoje i IDE CD-ROM uredaji). Kada se
r
I
94 Poglavlje 2: Organizacija racunarskih sistema 2.3 Sekundarna mcmorija 95

uzme u obzir da trazenjc cesto potraje i po vise stotina milisckundi, jasno je da i ucestaloscu od tacno 22,05 kHz kako bi CD snimac mogao da prati brzinu rotacije i
CD-ROM uredaji. uprkos svom velikom kapacitetu, po performansama ne mogu da dajc po potrebi prilagodava. Prvi upisivi kornpakt diskovi licili su na CD-ROM-cJVe,
se mere s magnetnim diskovima. osim sto sus gornje strane bili pozlaceni umcsto ,posrebrcni". Boja zlata nije irnitacija
Philips se 19S6. godinc ponovo oglasio. ovog puta sa Zelenom knjigom, u kojoj _ za reflektujuci sloj je umesto aluminijuma koriscena stvarna pozlata. Za razliku od
je dodao definisanjc za grafiku i mogucnost preplitanja zvuka, video zapisa i podataka srebrnih kompakt diskova, koji su na svojoj povrsini imali stvarna udubljenja, na upi-
u istom sektoru, sto je stvorilo mogucnost da se CD-ROM-ovi koriste u multimedij- sivim kompakt diskovimaje razlicito odbijanje svetlosnog snopa od ureza i ostrva mo-
ske svrhe. ralo biti simulirano. Kod njih je izmedu polikarbonata i reflektujuceg sloja ubacivanjos
Poslednji element slagalice zvanc CD-ROivl jeste sistem datoteka. Da bi se omo- jedan sloj boje (slika 2-26). Koriscene su dve bojc: zelcni cijanin i zucK.astonarandzasti
gucilo koriscenje CD-ROM-a na razlicitim racunarima, morala se postiCi saglasnost ftalocijanin. Hemicarima ostavljamo da se do beskonacnosti prepiru oko toga koja je
o njegovom sistcmu datoteka. Zato su sc prcdstavnici brojnih racunarskih kompanija boja bolja. Ovc boje Sll slicne onim koje se koriste u fotografiji, sto objasnjava cinjeni-
okupili na jezeru Taho u oblasti Visoka Sijera (High Sierras) na granici Kalifornije i cu da kompanijc Kodak i Fuji ~padaju u glavne proizvoc1ace CD-R diskova. Na kraju
Ncvade i dogovorili o sistcmu datoteka koji su nazvali High Sierra. On je kasnije je aluminijumski refkktujuci sloj zamenjen zlatnim.
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 Stampana etiketa
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 I I

do osam nivoa, ali irnena direktorijuma nisu smela imati nastavke. U prvorn nivou da-
-~- Zastitni sloj laka
Retlektujuci slo1
Tamna mrlja
u sloju boje
toteke su sledilc neposredno jedna za drugom, sto nije stvaralo probleme kod mediju- I I I I Sloj I
I boje I I T-:;r · koju je stvorio
laser pri
ma na kojc se podaci upisuju samo jednom. CD-ROM sc u skladu s prvim nivoom 1.2 Ill ill
UpiSIVanju
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
1 Polikarbonatna podloga

Smer
...,. ___ kretan1a <I >---- Socivo
Substrate

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
Fotodetektor ---0 --~Q j--·Prizma

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 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.
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 Sloj bojc je na pocetku prozracan. tako da propusta laserski snor do rctlektujuccg
ostajc skupo. Sredinom devedesetih godina, CD snimaci, nc veci od CD plcjcra. po- sloja i nazad. Kada se podaci upisuju. laser CD-R uredaja radi vecom snagom ( S- 16
stali su uobicajena pcrifcrijska komponcnta u vecini pmdavnica racunara. Oni su sc mW). Podrucje sloja bojc pogocteno laserskim snopom zagreva sci hemijska vcza sc
i dalje ra;:likovali ud magnctnih cliskovajer sejcdnomnarezan CD-ROM nije mugao kida. Na tom mcstu se zbog promene molekulske strukture stvara tamna mrlja. Pri
ubri:;ati. Be1 oht:ira nato. hrzo sunasli svoje mesto kaumedijum za cuvanje rezervnih ocitavanju podataka (uz snagu od 0,5 mW), fotodctektor uoeava razliku izmcdu tam-
kopija velikih cvrstih diskuva. ana njima sui pojedinci i mali kompanije mogli dana- nih mrlja u kojima je boja iz.menjcna i prozracnih podrucja koja su ostala nctaknuta.
prave svoje originalne diskove iii matrice i kasnije ih posalju spccijalizovanoj tirmi na Tu razliku uredaji tumacc kao razliku izmedu ureza i ostrva, cak i onda kada se CD-R
umno/,avanje. Ovakvi uredaji poznati su kao CD-R urcdaji (engl. CD-Recordables) disk ubaci u obican CD-ROM citac iii CD plejcr.
tli CD snimaCi. Nijedna nova vrsta kompakt diskova ne bi mogla da uglcda svctlost dana bez neke
CD-R urectaji raJe sa 120-milimetarskim polikarbonatnim diskovima, slicnim ,knjige u boji", pa i za CD-R diskove postoji Narandzasta knjiga, objavljena 19o9.
CD-R0!\1-ovima. usim sto CD-R diskovi imaju zleb sirine 0,6 mm za vmtcnje lascr- godinc. Taj dokumcnt definise CD-R diskove, ali i nov format CD-ROM XA, koji
;kog snopa kojim se vrsi upisivanje. Zleb je oblika sinusoidc sa amplitudom od OJ mm omogucava da se podaci na disk upisuju postupno (nekoliko sektora danas, nekoliko
I
f'• '
~~11
I
96 Poglavljc 2: Organizacija racunm·skih sistema 2.3 Sckundarna mcmorija 97

·.~.:!iii
~"''
~;;I sutra, a ostali sledeceg meseca), Grupa uzastopnih sektora upisanih odjednom zove sc 2.3.9 Prcpisivi kompakt diskovi
i:~ ·!
? l CD-ROM staza (engl. CD-!W:'v! truckl. [akn su korisnici u nacclu naviknuti na mcdijume ;:a jcdnokratno upisivanje, k:to
~.
Upisivi CD-ovi najpre su sc koristili u Kodakovom sistemu l'h()toCD. Korisnik hi sto su hartija i fotografski tilm, sve vise se trazc kornpakt diskovi na koje sc podaci
ovlasccnom fotografu doneo rolnu snimljcnog tilma. zajedno sa svojim starim Pho- mugu upisivati vise pula, kao na disketu, is njih hrisati. Demas sc za prepisive kon-
toCD diskom i dobio ga dopunjenog novim slikama s lilma. Nove slike, dobijene ske- pakt diskove koristi i tehnolngija CD-RW (CD-ReWritahlc, prepisivi kompakt dis-
f'
niranjem negativa, na PhotoCD disk su upisivane kao poscbna CD-ROM staza. kovi). i oni su iste velicinc kao i CD-R diskovi. Mcdutim, na CD-RW disku se za sloj
Postupno upisivanje bilo je ncophodno zato sto su upisivi diskuvi bili pre.visc sku pi da na koji sc upisuju podaci umcsto boje cijanina ili ftalocijanina koristi lcgura srebta,
bi sc isporucivali uz svaki tilm. indijurna, anti mona i telura. Ona ima dva stahilna stanja: kristalno i amorfno, u koli-
Mectutirn, postupno upisivanjc podataka stvara problemc. Pre objavljivanja Naran-
ma razlicito rcflektuje svctlost.
dzask knjige, svi CD-ROM-ovi su na pocctku imali jcdinstven spisak saddaja diska Laser C:D-RW uredaja radi s tri nivoa snage. Na najvisem nivou laser topi kristalnu
(engl. Volume 7iihlc of Contents, VTOCJ. Takva scma sc nijc mogla odrzati u disko- lcguru prctvarajuci je u amorfan oblik koji lose rcftcktujc svetlost i tako predstavlja
vima za postupno upisivanjc podataka (u vi~c sta;:a). U Narand,/a:;toj knjizi jc odrecte- urez. Legura se pri srcdnjoj sna;:i lasera topi i spontano vraca u svoje prirodno kristal-
no da se svakoj CD-ROI\1 slazi pridru£i njcn poscban VTOC. Takctv VTOC jc mogao no stanjc, i ponovn postaju ,ostrva". Na najni/.em nivou snage laser samo ,,oscea"
sadrzali i nckc (iii sve) dalotekc it. prethodno upi~anih slctJ:a. Kada se CD-R disk stavi
rnedijum (ocitava ga), ali se ne menja njcgova faza.
u citac, opcrativni sistcm tra,/i po CD-ROM slaLama najsvdiji spisak sadrzaja koji hi CD-RW disk nije potpuno potisnuo CD-R diskovc zato sto jc prazan CD-RW disk
trehalo da prikazc tckm'e stanjc diska. Ukljucivanjcm u o,pisak sadr.2.aja samo nel--ih skuplji od praznog CD-R diska. lsto tako, za nekc prirncne, kao sto je pravljcnjc rc-
datnteka i; prethodno upisanih sta7.a, mo,/e sc stvPriti iluzija da su neke datotckc obri- zervnilr kopija cvrstog diska, gdc bi slucajno hrisanje kopijc bilo katastrofalno, CD-R
sane. Sta;:c se mogu grupisati u sesijc (engl. ses.1iuns). pa sc tako dobija pojam
disk je nezamenji v.
CD-R0:\1 s vise sesija. Standardni plcjcri rmuickih di:.;kova nc mogu ispravno da ci-
taJU diskove s vi;c sc·sija 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 2.3.10 DVD diskovi
'kuga dola;:e podaci mma da hmlc dovoljno brz da hi ih pravovrcmeno isporucio. Ako Osnovni fonnal kornpakt diska, odnosno CD-ROM diska, postoji od 1980. gmlinc.
Sll datotckc koje ~C prcnoo,c na kompaKl di,J... ra.~trkanc o,vuda po cvrstom disku i treha Od tada se tchnologija ra;:vila, tako da su danas opticki diskovi vcceg kapaciteta cko-
ih duc>o lrct/.iri. t\lk podauka 1--a CD-R mc·lbju mole de~ prcsusi ida i;:awve ndeljeno nomski isplativi, i vrlo su tra/.eni. Holivud bi rado zamcnio analogne video trake digi-
praznjcnjc ulal.fHlc' hakra. Pri pra/.njc·nju uiaznog hak:'a mo/.cte neuC:ckivano da dobi- talnim diskovima posto su oni kvalitctniji. jcftiniji, trajniji. zauzirnaju manjc prostora
jc'lc' svctluc·.tv tpo111alo \kupl podmctaC: ;:a rivo iii I :'U-milimctarski poLlaccni ili i ne rnoraju sc premotavati na pocctak. Proi;:vodaci clektwnskih uredaja za siroku r'o-
posrchrcni l'ri;:hi. Suftv cr CD pisaC:a lli•iC:Illl ul•c;:hc·drqe mogucnosl da sve potrchne trosnju tra7.c nov udami proizvod, a mnogc ral'unarske kompanije zelc da svorn soft-
Jatutcke tlhjcciini u .. J'nlJCkat" (sa/ctu lilgitalnu s!iku CD-ROM-a od 650MB) pre veru dodaju i multimcdijskc mogucnosti.
nc~o \ttl ih upi;e na ciisk. ali ovaj p<l~Lup~tk po praviiu tiLho.-,trucuje vrcrne upisivanja. Zahvaljujuci dostupnoj tehnologiji i zbog zahtcva tri izu;:ctno mocna industrijska
neophudrHljc 6.'iil :'vl8 sluhlldn,Jg pnlsll•r~tna c'vr'>tum cbku. a i dalje niste zasticeni od segmcnta. pojavio se DVD disk; skraccnica jc prvobitno ol.l1acavala digitalni video
situacijc u K<lj<lj -,e cv rsti dis!-- usp:miC:i i udluci de~ i;vr(i tCillperaturnu rekalihraciju disk ,engl. Digital Video Disk). a sada zvanicno oznacava digitalni viscnamcnski
Ltda sc prc:gr-.'JC, disk (engl. Digital Versatile Disk). DVD diskovi izgledaju isto kao i 120-milime-
0ia uDic-il c f..lHllpakt diskll\C i pojcdinci i J..ompanijc mugu da lako kopiraju korner- Larskt kompakt diskovi od polikarbunata, sadr:l.e ureze i ostrva kojc ohasjava lascrska
cij:ticlc di.skilvc (s p<ldch.:im't ill sa ;:vukom; ida takcl u nacelu kr:~c autorska prava izda- dioda i ocitava fotodetektm. Novosti su:
vaC:a. Sn<L~ijcno jc vi.~c nacina cb "' tal--va piralc'rija ukL:a. lao ida sc otel:a citanjc
1. Manji urezi (0,4 mikrornetra. 0.8 mikrornctara kud kumpakt diskova).
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 )~!-u Ll~:no ,,, prika/u bel lllllilgu duze (pu vise gigabajta). ! Gusca spirala (0,7-+ mikromctra i;medu navoja. a I ,6 mikrometara na kom-
:::tll <JStijccujc sv :1ki p!>ku\aJ kupiranj:t net (qqj disk uuL,icajcnim softvcrorn. Stvarne pakt diskovima).
du/illl' d:tlilkka s[,rivaju C,l' U 'tli,lVcTU i;c[aV:\C:a iii (nm/d:IU sifr·lwanotn obJiku) na llC- 3. Crveni laser (talasnc duzinc 0.65 rnikrornctra, a 0,78 mikromctara na kom-
k,qn ncoC:ckiv:mum Jli~:;tu na kompakt di,kLL Drugi n:1C·in jc da .-,e u mlredene ~ektorc pakt diskovima.
n:t disku n:11n~rno upi ..;u nctacni pp,bci o ranHJ~'Li. u nad1 da ce softvcr ;.a kopiranjc Ova tri poboljsanja zajedno povecavaju kapacitct scdam pula- na 4.7 GB. DYD
kumpakl dt.-,ka .. i'>pravit;·· gr-:~kc. Sul'tvci tL<.ia\:tCa Lbk:t i :,;un pruverava ove podatke, un:daj jednostrukc hrzine irna brzinu prcnosa od 1 ,41\lB/s ( 150 KB/s na CD uredajul.
,,dbij:IJlll'i da racli ctko nclllc Ja 'Ll taCni. Drugc llH'g:uc'n"sti -;11 pravlJenje ncstandanlnih Na/alu:.;t. prelazak na crvcne lascre koji se koriste ina kasama superrnarketa maci da
ra~nnak~t izn1cdu :-;t1za j drugih ;:li~niilllzi2kih .,nlana··. DVD plcjcri treba da irnaju dodatni laser ili slozeniju optiku kako bi rnogli da citaju
• 98 Poglavlje 2: Organizacija racunarskih sistema 2.4 IJiaz i izlaz 99

DVD disk plod je konzorcijuma od cleset kompanija za proizvodnju elektronskih


postojece kompakt i CD-ROM diskove, sto mnogi proizvodaci mozda ne bi mogli da
urcctaja siroke potrosnje, mcdu njima sedamjapanskih. Konzorcijum je saradivao s ve-
obezbede. Isto tako, na DVD ureltaju sene bi mogli citati CD-R i CD-RW diskovi.
likim holivudskim studijirna (neke poseduju japanske kompanije iz konLOrcijuma).
Da li je 4.7 GB dovoljno? Mozda. Uz komprimovanje po standardu MPEG-2 (IS
Kompanije iz industrije racunara i tclekomunikacija nisu pozvane na zurku, pa je kon-
13346), na DVD disk od 4,7 GB moze da stane 133 minuta video zapisa koji se pri-
senzusorn prisutnih odluceno da se na DVD diskove snimaju filrnovi koji ce se iznaj-
kazuju na celom ekranu u visokoj rezoluciji (720 x 480), uz propratni zvuk na osam
mljivati u videotekama. Na primer, standardne mogucnosti su obuhvatale preskakanjc
jezika i titlove najos 32 jezika. Oko 92 procenta svih holivudskih t1lmova traje manje
nedolicnih scena tokorn sarnog prikazivanja (da bi roditelji film sa oznakom ,samo za
od 133 minuta. Ipak, za nekc primene (npr. za multimedijske igre iii enciklopedije)
starije od 18 godina" na lieu mesta pretvorili u film za poletarce), sestokanalni zvuk i
potrebno je vise prostora, a i Holivud bi zcleo dana isti disk smesti vise filmova. tako
podrsku za promenu veliCine prikaza. Na osnovu ove poslednje mogucnosti, DVD ple-
da su definisana cetiri formata:
jer je u hodu odlucivao kako da oclsece levu i dcsnu ivicu filma (Cijije odnos 3:2) cia bi
1. Jednostrani, jednoslojni (4, 7 GB ). ga uklopio u standardni TV ek~an (minosa 4:3).
2. Jednostrani. dvoslojni (8,5 GB). Jedan ocl problema o komc industrija racunara verovatno nijc rnislila jestc namerna
3. Dvostrani, jednoslojni (9,4 GB ). nekompatibilnost diskova namenjenih arnerickom i evropskom trzistu. kao i postojanje
4. Dvostrani. dvoslojni ( 17 GB ). 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-
Cemu toliki formati? Jedrwm recju: politika. Philip~ i Sony su kao verziju velikog javili na video traci. Oni nisu zclcli da Evropljani nakupuju video trake u Americi pre
kapaciteta zeleli jcdnostrane dvoslojne diskove. ali su Toshiba i Time Warner zeleli nego sto nov film ostvari prihod u evropskim bioskopskim salama. Da Holivud upra-
dvostrane jednm,lojnc diskove. Philips i Sony su smatrali da korisnici nece biti oduse- vlja racunarskom industrijom. u Americi bi se koristilc 3.5-incne diskete, dok bi
vljeni ako treba da okrecu disk, clok Time Warner nije verovao dace dva sloja na istoj
Evropljani jos uvek vrteli diskcte od lJ em.
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- 2.3.11 Hlu-Ray
ziran, poluretlektujuci sloj. Zavisno od toga kako se laser fokusira, njegov snop sc re- U racunarskom biznisu nista ne mirujc. pogutovo se tehnologip skladistenja poda-
flektuje odjednog ili od drugog sloja. Urezi i ostrva u donjem sloju rnoraju biti nesto taka. Tek sto jc uveclcn DVD disk, a naslednik vee preti da ga i'tisne. Naslednik DVD
veci da bi se pouzdano prepoznavali ( ocitavali), tako da je kapacitet clonjeg sloja diskajc Blu-Ray, nazvan tako jer se umcsto crvenog lascra u DVD uredaju, koristi pia-
nesto manji od gornjeg. vi laser. Plavi laser cmituje svctlw,t manje talasne cluzinc nego crveni, sto omogucuje
Dvostrani diskovi se prave tako ;to se slepc pozadine dvajednostrana diska deblji- tacnije fokusiranje, pa i urczi, ndnosno podrucja netaknutih ostrva mogu biti manji. Na
ne 0,6 mm. Da hi sve verzije DVD diskova imale istu dcbljinu, na pozadinu jcdnostra- jeclnostranc Blu-Ray disk.ove mol:e da sc smcsti oko 25GB podataka; dvostrani disko-
nog diska od 0,6 111111 nalepljenaje prazna podloga iste clebljine (iii ce u buducnosti to vi irnaju kapacitct od oko 50GB. Brzina prenosa podatak:ajc oko 4,5 MB/s. sto je do-
rnozda biti takodc jednostrani disk sa I :n min uta reklama, nalepljen u nadi da ce ra- bro za optick.c diskove. ali je jos uvek sponJ za magnetne diskovc (uporedite ATAPl-6
doznali korisnici pozckti da vide ~ta je s clonje stranc). Stmktura clvostranog dvo- diskove brzine lOO MB/s i prosircne Ultra..J- SCSl diskove brzine 320 MB/s). Ocekuje
slojnog DVD diska prikazanaje na slici 2-27.

'" '" '" = ·


se dace Blu-Ray potpuno zameniti CD-ROM i DVD diskove, ali to ce se desiti tek za
nekoliko godina.
PolureflektujuC1
slo1

disk debljrne ,.. reflektor


AIL1miniJurnskl
0,6 mm , , , , . ,• ·
2.4 ULAZ I IZLAZ
" ' ' '' ' ' "' '~· . ' . " '' '- '

Kao sto smo pomcnuli na pocetku ovog poglavlja, racunarski sistem sc sastoji od
AlumlrliJUITlski
Jednostrcu\1 rt-~tlektor
tri glavnc komponente: procesma. memorije (prim arne i sckundarnc) i ulazno-izlaz-
drsk debljrne
Polureflektu juc1
nih (U/1) urel1aja kao sto Sll stampaci, skcncri i modcmi. Dosad smo upoznali proce-
0,6 mm
Polikarhonatna podloga 2 sloJ sor i memoriju, a sada treba da obradimo ula.mu-izlazne uredaje i nacin njihovog
povezivanja sa ostatkom sistema.
Slika 2-27. Dvostrani uvoslojni DVD disk.
[A
if I 100 Pnglavljc 2: Organizacija racunarskih sistema
c•l ZA Ulaz i izlaz 101
ij I
i!

2.4.1 Magistntle Monitor


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 Maglstr313

Stika 2-2'J. Logicb struklura jcdno,tavnog licnog ral'unara.


Modem
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-

o= ka zavrsi, kontmler obicno itaziva sistcmski prckid (eng:!. intampt). prisiljavajuci


procesor da privremeno zaustavi izvrsavanje td..uceg programa i zapocne iz.vrsavanje
DDDD
specijalne procedure nazvane obrada sistcmskog pre kid a (engl. interntt'' lwtlllie'")·
(
Mesto za kartice
I koja pmverava grcske, eventualno preduzima neophodnu specijalnu aktivnost i oba-
Konektor
ve;tava operativni sistem da je uiazno-izia;:ni uredaJ ;:avr.,iio posao. Kada se zansi
Slika 2-2!1. Fizicka 'truktura licnog racunara. obrada si,k'tmk.og prekicla. proce'm nastavija da izvrsava program koji je zau~t:t­
vljcn pri pujavi sistemskog prckida.
Logicka struktura jednm;tavnog licnog racunara namcnjcnug ohicnim korisnicima i\lagi.straiu ne kuri\le samu ulazno-i;lazni kontruleri. veL' i procesur :ca preu:~i­
prikazana je na siici 2-29. Ta struktura irna jcdnu magistraiu kuja povezuje procesor, manJc in~lrukcija i pt,dataka. Sta se des~tva kada procesor i kllntrnier ulazno-i,dc:;n,Jg
memuriju i ulazno-izia;ne uredaje; vecina realnih sistema ima dvc i vise magistrala. uredaja pozcic da isll)Vf"ClllCilO kuristc~ magi.-,tra!u" 1 0 tome lld!ucuje poseban cip lla-
Svaki uiazno-izla;:ni uredaj sastoji sc od dva de! a: jedan sadrzi gotovo svu elektruniku zvan arbitar magisiralc \engl. bn1 urhilLT). UiaLIHl-izia.cni urcdaji imaJU prcclnost
i zove se kontroler (engl. nmtml/er). a drugi jc sfun ulazno-izlazni uredaj, npr. disk. rwd prucc,url'lll jer -;e disktwi i drugi pokremi elcmcnti ne mogu Dlthtaviti u hndu
Kontroieri se obicno smdtaju m kartice koje se umecu u slobodnc mien ice, osim ako ada sene itgubc po,jaci. Kada nijed,m uiazno-iziaz.ni urcctaj ne radi, pr,JCe~Dr mul.c
je ulaLno-izlazni uredaj obavcwn (npr. tastatura). kada se kontrolcr ponekad smdta na da iskmi.s1i sve ciklusc magi-;trak da bi pr:.-;tupao mc·murij;. i\ledutim. ak,,u i.stu vre-
samu maticnu piocu. lako je monitor obaveLan. video kontrolcr se ponckad srndta me t·~:di nek.i ulazno-izlazni uredaj. on c'c po\'r<:mcnu zai1ln~tli izlaz~li·.:. na magl':trJu
na dodatnu karticu kaku bi se korisniku omogucio izbor kartica s grafickim akcclcra- i sv:lki pu: cc mu hili uduvoljcn''· Ovaj pruc,?s koji u:;pl•rava raJ racunara zove se
torom iii bez njega, s dodatnom memnrijom iii hez nje itd. Kontroler sc sa svojim ulaz- krada ciklu~a (engl. cYcle s//'(1/ing).
no-izlaznim uredajcrn povezuje kablum koji sc umece u odgovarajuci prikljucak na Opi:<ma <1r:;ani1.acija mllicno jc t'dgovar:tla prvim iicnim racunarima jL·r su .s\ c
pozadini kuc'ista. komponcnte bile priblizno uravill)tczenc. MeJutim. kada su pruccsc>ri, tnemurije i
Posao kontrolera jc da upravija ulazno-izLtznim urcdajcm i zahtevima za pristu- uhunn-iilaLni uredaji post:-~ii brzi. puja\ iu ~c prublern: m:tgi.-,trala vi;c nijc mogLt tL:
panje koji rnu stizu s rnagistralc. Kada, na primer, programu ;:atrcbaju podaci s diska, oht·adtijc· ta~,, gu~t s:mbracaj. U tatvurenom sistemut nrr. u nekcj inl:~·nierskoj radnuJ
on zadajc komandu kontroleru diska. a on Lada di:<ku ;:aclaje komandc ;:a pretra/.ivanjc stanici). rc·,enjc bi hi!o da se /.a sledcci l11L•del projcktujc i napr:tvi l•rh magi';tr:iLt.
i siicno. Kada pronade odgov<m0ucu staLLt i scktor. disk pocinje da salje podatke kon- Po~tu 111kada nik,l nijc prebacivao ;,tare ula;no-izlazn:: urcdaj,.· .,a :-.tarog mudcla na
troieru u ohiiku scrijsk,Jg toka hitova. Kontrolcr tacla treba da razbije tok bitnva u nov. ovakav rri:.;tup .ic hiu opr:tvdan.
odgovarajuce jedinice ida svaku jcdinicu na propisan nacin upise u memoriju. Ta je- ~ledutim. Ll S\etu PC racun~lra. K\•riSJ1ici ccstu nadgraclc!ju SVl\jC pmc'i"SlX<.:. ali r-:t-
dinica je nbicno jcdna iii vi~e racunarskih reci. Kontroler koji u memuriju upi<.;uje k~) ln~nj:tju Stanq;al·c, sk~nere i nloJc-nte. l>~hJVTerncnu jc nasLda ogn)lll!1a indu.-.;!rija
r
IJ!i
~11:
Jill
102 Poglavlje 2: Organizacija racunarskih sistema 2.4 Ulaz i izlaz 103

!;:1
ulazno-izlaznih ureltaja za IBM PC magistralu, a ona nije imala bas ni malo intcresa Memorijska magistrala
da sve sto je investirala odbaci i pocne iz pocetka. IBM je naucio jednu takvu nepri-
I•
jatnu lekciju kad je trzistu kao naslednika IBM PC racunara, predstavio sistcm PS/2. I
PS/2 je imao novu i br:lu magistralu, ali su proizvodaci klonova uglavnom i dalje ko- SCSI
ristili staru PC magistralu, sada nazvanu ISA (Industry Standard Architecture). magistral a

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 I I I I PCI magistrala
- 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-
____j L___
henik EISA (Extended ISA. prosirena !SA magistrala), koja je bila kompatibilna sa ISA magistral a
starom verzijom. Najpopulamija od drugih magistrala sada je PCI magistrala (Peri-
Slika 2-30. Tipican savremcni PC r~cunar koji ima i PCJ i !SA magistralu.
pheral Component Interconnect, povezivanje pcriferijskih komponenata). Projekto- Mmlcm i zvucna kartica su !SA urcdaji; SCSI kontrnlcrjc PC! urctlaj.
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. Tastaturc
PCI magistrala se moze iskoristiti u mnogim kontiguracijama. a tipicna kontigu-
Postoji vi~e vrsta tastatura. Uz miginalan IBM-ov PC racunar isporucivana je tzv.
racija prikazana je na slici 2-30. Procesor s kontrolerom memorije kornunicira preko
klik tastatura koja je korisniku jasno stavljala do znanja da je ispravno pritisnuo taster
narnenskog voda velikc brzine. Kontroler direktno kornunicira s memorijom i PCI
- osecao hi to pod prstima i i cuo bi odgovarajuci zvuk. Danasnjc jeftinije tastaturc nc
magisrralom, tako da saobracaj od proccsora ka memoriji ne ide preko PCI magistra-
daju takvc povratnc informacije- korisnik mora vise cia pazi. Bolje verzijc imaju sluj
le. Medutim, periferijski uredaji koji ostvaruju veliki protok podataka mogu se direkt-
elastomera (slicnog gumi) izmedu tastera i stampane ploce ispod njih. lspod svakog ta-
no povczivati s PClmagistralom. Osim toga, PC! magistralaje mostom povezana sa
stera nalazi se svojevrsan ,driker" koji se zakopca kada se taster thwoljno pritisnc
!SA magistralom, pa se i dalje mogu koristiti !SA kontroleri i njihovi uredaji, iako je
- tada SL' u njcmu spoje dva mala kuntakta i 1.atvmc elektricno kolo. Neke tastaturc
vee receno daje !SA magistrala prevazic1cna. R.acunar ovakve konstrukcije po pravilu
ispod svakog tastera imaju magnet koji pri pritisku pnllk kroz solenoid i tako indukuje
bi sadrzao tri iii cetiri prazne PCI uticnicc i jeclnu do dve ISA uticnice kako hi kori-
ekktricni signal. Primcnjuju se i druge razlicite mchanicke i elektmmagnetne metode.
snici mogli da u njih utaknu i !SA karticc (obicno za sporije ulazno-izlazne uredajc)
Na licnim racunarima, pri pritiskanju tastcra generisc se sistemski prekid i pokrecc
i nove PCI kartice (za brze uredaje).
se procedura za njcgovu obradu (kratak program koji jc deo operativnog sistema).
Danas postoje brojne vrstc ulazno-izlaznih uredaja. U nastavku govorimo o neko-
Pmcedura za ubradu sistemskog prckida ocitava hardverski registar unutar kontrolera
liko uohicajenih.
tastature i iz njega uzima broj pritisnutog tastcra (od I do I02). Kada 'e taster otpusti.
gcncrise sc drugi sistemski prekid. Tako, kada korisnik priti,ne taster SHIFT, zatim
2.4.2 Terminali pritisne i otpu,;ti taster M a onda otpusti taster SHIFT opcrativni sistem zakljucu.Je da
Racunarski tcrminali irnaju s~uno dve komponentc: tastaturu i monitor. U svctu cen- korisnik ne zeli da llllCSC malo slovo ,.m", vee vcliko .,M". Obrada nizova pritisnutih
tralnih racunara ovc dve komponente su cesto integrisane u jeclinstven uredaj koji je tastera, mcdu kojima su tastcri SHIFT. CTRL i AIT, izvodi sc potpunu softvcrski
s glavnim racunarom povezan serijski, telcfonskom linijom. Pri rezervisanju avionskih (tikljucujuci i kombinaciju tastcra CTRL-i\LTDEL kojom se ponovo pokrecu svi
karata. u bankarstvu i u clrugim aktivnostima kojc se obavljaju na velikim racunarima lB:Vl-ovi PC racunari i njihovi klonovi ).
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.
~
~I 104 Poglavljc 2: Organizacija racunarskih sistema 2.4 Ulaz i izlaz 105
~~ ' -~

'!
CRT !\Ionitori Monitori s ravnim ckranom
Monitorje kutija u kojoj se nal<v:i katodna cev (engl. Cathode Rav 1itbe. CRT) i Katodna cev je previse kabasta i tdka Ja bi se mogla koristiti u prenosivim racunar[-
sistcm za njcnu napajanje. Katodna cev sadrzi tzv. elektronski top koji emituje snop ma. pa je za njihove ekrane iskoriscena potpuno drugacija tehno1ogija. Najpoznatiji ~u
elektrona na fosforescentni ekran na njenorn prednjem kraju. kao na slici 2-3 1(a). ekrani s tecnim kristalima (engl. Liquid Crvstul!Jisplay, LCD). LCD tchno1ogijae
(Monitori u boji imaju tri elektronska topa, po jedan za crvenu. zclenu i plavu boju.) vrlo slozena. javlja se u brojnim oblicima i svakoga dana se unapredujc, tako da cemo
Tokom hori;.ontalnog skeniranja. elektronski snop prec1e preko ekrana za oko 50 ps je opisati ukratko i veoma uprosceno.
skuro horiJ:untalnom linijom. Zatim se vraca na levu ivicu ekrana da hi zapoceo sle- Tecni kristali su viskozni organski molekuli koji mogu cia teku. slicnu tccnosti. ali
dceu hurizontalnu liniju. Uredaj koji generise sliku na ovaj nacin. red pored. zove sc i da zadrzavaju svoju prostornu strukturu, slicno kristalima. Otkrio ih je Rhcinitzcr,
uredaj za rastcrsko skeniranje (engl. raster scan). austrijski botanicar, 1888. godine. a prvi put su primcnjeni sezdesetih godina za rm.-
Horit:ontalnim krctanjem elektronskog mlaza upravlja linearno rastuci napon iz- licitc ekrane (kalkulatora. rucnih satova itd.). Kada su svi molekuli poravnati u isto~1
mcuu dve vertikalne ploce postavljcnc levu i desno od njcga. Vertikalnim kretanjem pravcu. npticka svojstva tecno'g kristala t.avise od smcra i polarizacijc dulazne svct-
upravlja i napon koji rastc linearno (ali mnugo sporije) na horizontalnim plocama po- losti. SpolJllasnje clcktricno poljc moze da promeni rasporecl molcku1a. a to znaci i
stavljcnim ispod i iznad mlaza clektrnna. Poslc izmedu otpri1ike .:1-00 i 1000 sctnji njihova o 1Jticka svojstva. Konkretno. kada tccni kristal osvctljavamo s jcdnc stranc.
clektronskog rnlaza po ekranu. napon na horizonta1nim i vcrtika1nim plocama za pomocu spoljasnjcg elektricnog polja mozemo upravljati intent.itetom propustene
upravljanje istuvremeno se mcnja i mla; elcktrona se vraca na pocctak slikc- u levi svetlosti. Ta pojava se moze iskoristiti za kon,truisanjc pljosnatih (ravnih) ckrana.
gornji ugao ekrana. Celokupna slil-ca na ekranu obicno sc iscrtava od 30 do 60 puta u LCD ekran se sastoji ml dve paralelnc staklene ploce innedu kojihjc zatvuren tccni
sekunui. Kretanje dektronskog mlcu"a prikazano je na sliei 2-31 (b). lako smo (zbog kristal. Na ploce su postaviJene providne clcktrude. lzvor (prirodne iii vdtackc) svc:-
lak.~eg razurncvanja) naveli da ,,c elektronski mlaz skrec'e promenom jacine elcktric- tlosti usvetljava ekran od po;:adi. kroz zadnju plocu. Prcku pruviclnihclel-ctwda na stak-
nog pulja iL'Jnedu horimnta1nih i vertikalnih ploca. u mnogim mndclima katodnih lenim plucama dovodi se napon koji u tccnom kristalu izrnedu njih stvara clcktricno
cevi u tu svrhu se koristi elcktromagnetno pnlje. narncito u zahtevnijim monitorima. 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-
Horizontal no skeniranje zovana svet1ost. Opisanu konstrukciju jc laksc razumeti ~tl-co sc pogleda slika 2-32(aJ.
Resetka
/ /Ekran Tecni knsta!
Elektronsk1 top Zadnja
staklena ploca
Tacka
/ na ekranu Zadnja Prednja staklenil ploca
elektroda
Predn1a elektroda
~--Vakuum Zadn!i
polar'lzator \ \ PrednJi poianz.ltor
Par ploca -, - , ' 1
rt~ .
//h
za verlikalno
skr eta nje elektronskog
mlaza
Ia)
\
Povratak na pocetak Povratak na pocctak
sledece slike ib) sledeceg reda Ill G '~l
' ~oo\\()911

[I]
\Ill Tarn'10
IW:t I /z
L4C~
Stika 2-31. (a) Poprec·ni prcsck katodn.: n:vi. (b) NaCin iscrtavanja :-.like pornoc'u katodne cevi. I
I

Da bi ekktronski mlaz na ckranu iscrtavao tacke. na njegovom putu u katodnoj cevi


lzvor
svetlost1 ~VPoo\\ol I
(/ I '
nala1i sc rcsetka. Kaua je po;.itivno naelektrisana. mlaz clektrona sc ubrnva i oni
I
udaraju u fusforc~ccntni 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 rc~etke pa se na ckranu pojavljujc Prenc~iiJI rac~mar
lili
bitmapirana (rasterska) slika. Ovaj mehanizam omogucava da se binarno kodiran si- Ia i
gnal vil.lwlno prikaze kao skup SYL'tlih i tamnih tacaka.
Slika 2-J:!. 1a 1 K~HL\! nd,'--·ijct Lt 'D L·lr~nla. 1h J /.:CL( lVi n;1 1.:1dnjuj i pr..._'Jnj( ·! p!l 'l·i
nurit1~tlni <.;u jcdni ru drngc.
r 106 Poglavljc 2: Organizadja racunarskih sistema Ulaz i izlaz 107

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

H;i
f' Nekada Javno, svi racunari su imaii kurisnicko okruzcnjc s konnndnom linijom na mis se koristi u pant sa specijalnom plasticnom podlogorn na kojoj se nalazi mr~za
koju su k01isnici unosili tekstualne komande. Po~tu su ohicni korisnici (dakle, nc ousto iscnanih linija. Kada semis pokrece prcko mrde, fotodetektor registruje linije
strucnjaci za racunare) cesto takvo okruzcnje smatrali prilicnu nezgudnim ;a raJ, cak i ~a osnovu promene intenziteta odbijcne svetlosti koju ernituje cliocla. Elektronika
odbojnim, neki proizvndaci racunara smislili su okruzenja u kojima se nesto na ckranu unutar misa broji linije preko kojih mis predc u svakom pravcu.
moze pokazati i zatim pritisnuti, npr. Macintosh i vVindows. Za takav model bio je ne- Trcca vrsta su optomehanicki misevi. Kao i noviji mehanicki mi.~evi, i oni imaju
ophodan i urcdaj kojim se nesto na ekranu moze pokazati, a najccsci takav uredaj je mis. kuglicu koja svoje kretanjc prenosi na dva valjka postavljena pod pravim ugiom. Yalj-
Mis (engl. mouse) mali je piasticni uredaj koji stoji na stoiu pored tastature. Kada ci ..;u povezani sa elcmentima za kodiranjc- prorezima kroz koje prola;i svetiost. Dok
ga pomerate pn stolu, zajedno s njim krece se i mali pokazivac na ekranu, sto koris- sc mis krece i valjci rotiraju, svetlosni impuisi pogadaju fotodetektore svaki put kada
nicima omogucava cia pomocu misa pokazu neki clement na ekranu. Mis imajedan, sc pojavi prorez inncdu LED diode i njenog detektora. Broj registrovanih impulsa
elva iii tri tastera s gornje stram: pornocu kojih korisnici mogu cia biraju stavke iz me- proporcionalan je putu koji mis prede.
nija. Mnogo racunarske krvi je proliveno u zucnim raspravama o tome koliko tastera [ako postoje razliciti nacini, uobicajeno je da mis racunaru salje niz od 3 bajta kad
treba cia ima mis. Pocctnici najvise vole jedan taster (tdko je pugresiti ako imatc ~od sc pomeri za ncko minimalno rastojanje (npr. za 0,0 I inC), ponekacl zvano miki
samo jedan), ali se iskusnijima dopada vise lastera. (engl. mickey). Ovc informaeijc se ohicno salju serijski, bit po bit. Prvi bajt je oznacen
Do sada su pravljene tri vrste miseva: mchanicki, opticki i uplomehanicki. l'vkha- ceo broj (engl. signed integer) koji racunaru saopstava koliko se jeclinica mis pomcrio
nicki misevi se oslanjaju na elva gumena tockica. cije su usovine medusobno n<mnal- u pravcu x od posiednjeg pula. Drugi bajt saopstava slicnu informaciju za pravae y.
ne. Kada se mis pol-.n:c'c parakino s glavnom osom. okrcc'e 'e .JCdan tockic. Kada se Treci bajt sadrzi trenutno stanje tastera. Ponekad se za svaku koorclinatu knriste 2 baJla.
pokrccc normalnu na glavnu osu. okrecc se drugi. Za svaki tockic vc;anje prmnenljivi Racunarski soft ver niskog nivoa prihvata ovc inforrnacije i rclativno krctanje rntsa
olpornik (potencinmclar). Tako ~c merenjem promenc elektricnog utpora moze inacu- pretvara u njegovu apsolutnu poziciju na ekranu. On zatim na tom mestu ekrana pri-
nati stepen rotaeijc svak<Jg tockica i put koji je prcsau mis u svakom pravcu. U n<wije kazuje strelieu. Kada se strelica nalazi iznad odgovarajuce stavkc na ekranu i korisnik
vreme nvakva konstl"l!kcija uglavnumje zamcnjena drug:tcijomu knjoj mis pu rndlot.i pritisnc taster misa, racunar moze cia zakljuci stajc to korisnik izabrao na osnovu po-
klizi na gumennj kuglici koja svoje kretanje prenosi na dva normal no postavljcna vaij- znavanja pozicije strclice.
ka u unutrasnjosti mi~a. Takav mi:~ jc pril-.azan na slici 2-33.
2.4.4 Stampaci
Pokaz1vac kojim up1 avl1a ill IS

Kada samostalno naprave neki dokument iii ga prcunnu s Wcba, korisnici obicno
P1 o1or Meni
: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
Tas~ en rn:S~l
pomol"u kojih u matrici S x 7 u jednurn redu mogu cia odstampaju g() znakova. Red
fv1,s 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
Gurnena ktlg;ica iglica u matricu i ako sc preklapa njihuv otisak. Slil-.a 2-34(b) prikazuje slovo ,X'
Slik~l 2~JJ. i'vli,~ k:dji ~.._, kuri:-.ti La puLtL.J~v~mje ,-.,Ll·d,J iz nh~ni_ia na ekr~1nu.
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
Drug:t vrsta su ,;pticki lll!S•~Yi. Oni ncm:1ju ni ltlChiL'c ni kuglicu. ncgt' u Jonjcm spurije stampanje. Vdina matricnih stampaca ima vise radnih rdima, s razlicillm
delu imaju svetlosnu rli.,du (engl. Light Emirring f)wde. LED I i f,ltoJctcklor. Opti:'ki k.Jmpmmisima il.meclu kvaliteta srarnpe i brzinc.
r
[l
r
1:
l···
.I

0
Poglavlje 2: Organizacija racunarskih sistema Ulaz i izlaz

mlaznom stampacu odstampa fotograhja u visokoj rczoluciji na specijalno premaza-


nom papiru, rezultat sene rnoze razlikovati od originalne fotografije, veliCine cak 8 x
111

l
t 0 0 JO inca (1 inc=2,54 em).
I
0 0 Laserski stampac (engl. laser printer) verovatno je najveCi napredak u stampar-
stvujos od Gutenberga, kojije u petnaestom veku izmislio izmenjiv slog. On daje vi-
0 0
sokokvalitctan otisak, izuzetno je fleksibilan i brz, a troskovi su umereni. U lascrskim
00000 stampacima primenjena je skoro ista tehnologija kao u aparatima za fotokopiranje.
Mnoge kompanije proizvode kombinovane uredaje za kopiranje i starnpanje (a pone-
0 0 kad i za slanje faksova).
0 0 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-
(a) (b)
panja svake stranice, on se staticki naclektrise naponom od oko !000 volti i prekrije
Slika 2-34. (a) Slovn ,.A .. u matrici S x 7. (bJ Slovo .,A'" odstampanu pomul'u 24 iglice fotoosetljivim matcrijalom. Potom sc valjak skcnira lascrom po celoj duzini, slicno
ciji sc otisak preklapa. kao sto elektronski mlaz skenira ekran katodne cevi, sarno se umesto rastuccg napo-
na, za horizontalno porncranje po duzini valjka koristi rotaciono osmougaono ogle-
Matricni stampaCi sujeftini (narocito u eksploataciji) i veoma pouzdani, ali su spo- dalo. Svetlosni snop se modulira da hi sc dobio niz svetlih i tamnih tacaka. Tacke na
ri, bucni i nekvalitetno stampaju slike. U danasnjirn sistemima uglavnom se koriste u valjku pogodcnc svetlosnim snopom gube naclcktrisanje.
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
(
Laser
D _
0 Rotirajuce osmougaono
ogledalo

na beskonacnom papiru, oni su obicno najjeftinije resenje.


Za jcftino stampanjc 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 Skidanje viska tonera
specijalan kristal. Kada se na kristal primcni clektricni napon. on sc malo deforrnisc Neutralisanje naelektnsanra
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- Cist Naslagan
digne do lackc kljucanja, tako cia se u m!aznici stvori mehuric pare. Zbog stvorenog paprr odstampani
papir
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- Slika 2-JS. Princip rada lascrskog starnpaca.
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- Po skeniranju jcdnog rcda tacaka, valjak se zaokrene za mali ugao da bi se mogao
stopnog zagrevanja i hladenja mlaznica. Sve kapljice sujcdnakc vdicine, ali su ohic- skenirati sledeci red. Pri takvom postupnom rotiranju valjka. prvi red tacaka stize do
no sitnije od onih kojc stvaraJLI piezoelektricni stampaci. rezervoara s tonerom- elektrostaticki osetljivim crnim prahom. Tacke na valjku kojc
Mlazni ~tampaci po pravilu imaju rezoluciju od najmanje 1200 tacaka po incu jos uvek imaju elcktricni naboj privlace cestice tonera. Kako se cesticc tonera lepe za
(engl. dots per inch. dpi), a oni najsavrseniji i 4800 dpi. Jeftini su. tihi i kvalitetnn uza,tupne redove tacaka na valjku, tako na njemu pocinje da se pojavljuje skenirana
stampaju. ali su i spori. a patrone s mastilom su skupe. Kada se na najkvalitetnijem strana. Rotirajuci dalje, valjak pritiska papir i prenosi toner na njega. a papir se zatirn
r 112 Puglavlje 2: Organizadja racunarskih sistema 2A tilaz i izlaz 113
1
"I'
"i
I
"I propusta izmedu zagrejanih valjaka da bi se toner istopio i slika na njemu tibirala. Stampaci u boji
Valjak nastavlja da se okrece, elcktricno se neutralise is njcga .;;e skida sav visak to- Slike u hoji mogu \e glcdati na dva nacina: u propustcnoj svetlosti iii u odbijenoj
nera da bi se pripremio za skeniranje sledece strane. svetlosti. Slikc u propustenoj svctlosti- kao one na ckranu katodne cevi- stvaraju se
Ne treha naglasavati da je opisani postupak izuzetno slozena kombinacija fizike, linearnim wpcrponiranjem lri aditivne osnovne boje: ervcnc, zelene i plavc. Slike ~
hemije, pecizne mehanikc i optike. Ipak, kompletan uredaj, tzv. masina za stam- oJbijenoj svetltlSli. kao SIO Sll fotograf!je U boji i s]ike ll casopisima, apsorbuju odrc-
panje (engl. print engine), moze se nabaviti od vise proizvodaca. Oni ih kornbinuju dene talasnc duzine bel.: svet!tlsti. a ostale odbijaju. Odhijena svetlostje sastavljena otl
sa sopstvenom elektronikorn i softvcrom da bi napravili kompletan starnpac. Elektro- lincarno superpon iranc tri ''smwne suptrakti vne boje: cijan. tj. azurnoplavc (apsorbo-
nika sad6.i brz ugrac1cn mikroprocesor i vise megabajta mernorije koja mozc da pri- vana je sva crvcna buj.ti, /·ute (ap,orbovana je sva plava boja) i magente, tj. tamno-
hvati citavu bitmapiranu stranu, kao i hrojne fontovc, od kojih su neki ugracteni. a ruzicaste (apsorbm·anajc -.,va zclena boja). Teorijski sc svaka nijansa mozc ohrazovati
neki se mugu preuzeti s mrcze. Vecina takvih starnpaca prihvata komande koje opi- mdanjcrn azurnoplavog (eijanl. /.utog i tarnnoruzieastog (magenta) pigrnenta. U prak-
suju stranu za stampanje (za razliku od prihvatanja bit mape koju je pripremio glavni si je. medutitn, te~ko dubiti ove 'pigmente u cis tom obliku da bi se njihovim ravnomer-
procesor racunara). Komande se zadaju na raznim jezicima, kao slo su PCL kompa- nim rncsanjcm ap~orhuvala sva upadna svetlost i na podlozi dobila erna boja, Zbo;
nije Hewkt-Packard i Adobeov PostScript. toga skoro svi si~temi ;a slampanjc U boji koriste cctiri pigmenta: cijan, /uti, magenLI
Lascrski stampaci rezolucijc 600 dpi i bolje, mogu odlicno da stampaju erno-bde i crni pigment. Takvi sistcmi se zovu CMYK stampaci (engl. Cvun. 1Vlagenta. Yellow,
fotogratije, ali je stvarnost kmnplikovanija nego sto na prvi pogled izgleda. Zamislite blacK, da ncku nc bi emu boju pornc:Sao s plavom- Blue). Za razliku od stampaca, Ill
da fotugratiju skeniranu rezolueijom 600 dpi treba udstampati ~tampacem rczolueije mtJJli\Orima 'c slike priJ...azuju u propustenoj svctlosli, pa se kod njih koristi RGB st-
(J00 dpi. Skenirana slika sadrz.i 600 x 600 tacaka po incu. a svaka tacka na crno-bL'ioj stem boja (engl. Red- crvena, Green- zelena i Blue- plava).
skali ima svoju .,sivu" vrednust iZI11l'lht () (belo) i 255 (crnol. Stampac rnoze da stam- Skup bnja koji moze da se prikaze na ekranu ili da sc odstampa na stampacunazi\d
pa u remluciji 600 dpi, ali cc svaka odstampana tacka biti iii cma (lDnerjc tu) iii bela '-'l' gama iii npscg boja (engl. gwHut). Nijedan uredaj ncrna gamu koja odgovara re-
(nema toneraJ. Nijansc sive boje ne mogu se odstampati. alnum opscgu nijansi jcr svaka od njih rnozc imati 256 nivoa intenzitcta, sto ukupncl
Slikc kojc imaju sivc polutonme obiCn1' ~e stampaju postupkom rasterizovanja ,_'Hli I (J. 777 -~I (J razlicitih nijansi. Tehnologija je ncsavrscna, pa se dodatno smanjuje
(engl. lwljioning), slicno komercijalnim posterima. Slika se deli na pulutpnske celije. ov:tj hroj. ,1 i ono sto ostane nijc uvek ravnomerno rasporedeno duz spektra. Osim tc-
naj("csl'e \elicinc 6 x 6 piksela, tako da -.;vaka L'elija moze da sadr/i izmcdu 0 i 36 crnih g:t. vtd..:njc boje umnogomc zavisi i od nacina rada stapica i cepica u mrdnjaci ljuc-
tacaka. Oko vidi L'cliju' vise taCaka bo tamniju ml celijc koja s~turzi manjc Ltcab. Ni- skog oka. a 11c samo od zakona lizicke optike.
janse sivog s vrednostima innedu () i 255 dohijaju sc takD ~lD sc ov<tj inlcrva: pudcli na Kacl sc> ima u vidu sve receno. jasno je da prctvaranjc slike u boji koja na ckranu
37 zona. Yrednosli sivog izmedu 0 i 6 nalazc se u ll\!li 0, vrcd:wsti ud 7 do l.l Ll !Llni izgil'da fant ;-;tiCno u sliku na papiru uopste nije jednostavan zadatak. U problemc sc
I itd. (Zona 36 je nl'Stu uza od ostalih jcr 256 nije Jeljivo -.;a .17 he; ,J:;tatka.J Kad g1)d nwl:c uhroj~!ti sledece:
se na skL~niranoj slici naide na nijansu sivc br>jc koja spc~cb u ;onu 0. njena cclij~1 napa-
1. :Vlonitmi Ll boji prikazuju sliku ll propustenoj svetlosti. a starnpaci Ll boji u
piru ostaje bela. kao na slici 2-36(a). Nipn-;e iz mne ! ~t.unpaju sc s jednum tacJ...um
u celiji. Nijansc iz zonc 2 .~tampaju se s dve tackc u cc!iji, k:to n~t slici 2-361 h). \'rcd- Cldhijcit' 1j svctlosti.
nosti nijansi ;a jos nekc zone prik:uane :;una slikama 2-.<(J(..:H n. Naravnu. re;.oiuc:ija 2. K~\t1Jd11e CCVi generisu 256 intcnziteta svake bojc; stampaci ll boji intenzitete
lotogratije 'kenirane u ruoluciji 600 dpi rasteri;nvanjcm clc:ktivno se snLmjuje na hop1 prika;uju rasterizovanjern.
\0() cclija po incu. SlO SC zuve Jinijatura iJj gustina rastera (C:n~:J. /u/fionc Sli'i'Ci!ji·l'- .1. SliLt ;1a monituru ima emu pozadinu. a slika na papiru svct!LL
(/lll'llt\") i uobicajerm i;razava ulinijama po incu kn!:!l. lin1'S /'i'l" i111k !pi). ·+ O[h~·Li RGB i CMYK boja (game) nisu isti.

De~ hi ;ra•npane 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

••
'-·eli!\~_) ish.u."lYo.
Zct \t.u"p~:!lJC 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.
(a) (b) (c) (dl (e) lfl Gni raLk na i'ii naCin kao i crno-bcli mla;ni stampaCi, ali imaju cetiri patrone s hojarm
I tJ ,·ij~lil, tlJ:t".,'lllU. zutu i ernul. Dubro stampaju crtel.e u boji i urnereno dobro foto-
Slika 2-J6, Poluionokc rrrhkr··:kcl !aC"~c ;a r:t/!iCite op'c"gc> nqrli1'i ,;,og. Ia) 0-n. I hi l~-20.
(L') .20--J-f. (dJ :'h-62. \t_~) l~.)).-1 [ J. ~fl\h!-ih;_
g;·ali;c' u bil(i. ito uz skromne troskovc (starnpaci su jeftini, ali su patronc skupe).
114 Poglavlje 2: Organizacija racunarskih sistema 2.4 Ulaz i izlaz 115

Za dobijanje najboljih rezultata mora se upotrebiti specijalno mastilo i specijalan 2.4.5 Telekomunikaciona oprema
papir. Postoje dve vrste mastila. Mas til ana bazi boje sadde (organsku) boju rastvo-
Vecina racunara je dan as umre:.i.ena, cesto i sa lnternetom, sto se postizc specijal-
renu u tecnom razredivacu. Ona na papiru daju jarke boje i lako teku kroz mlaznice
oprcmom. U ovom odeljku razmotricemo kako ta oprema radi.
110111
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
Modcmi
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 S razvojem racunarstva, poslednjih godina je narasla i potreba da racunari medu-
mlaznice, pa je glavu stampaca neophodno periodicno cistiti. Fotografije se moraju sobno komuniciraju. Na primer, mnogi korisnici imaju kucni racunar preko koga
stampati na prcmazanom ili sjajnom papiru, koji je specijalno napravljen da se kapi komuniciraju sa svojim racunarom na poslu, sa svojim davaocem Internet usluga iii
mastila ne bi razlivale po njemu. s mre?nim sistemom svoje banke. U mnogim slucajcvima ta komunikacija se ost-
Sledecu stepenicu predstavljaju stampaci sa cvrstim mastilom. Oni se pune spe- varuje preko telefonske linije. ,
cijalnim vostanirn mastilom u obliku cetiri cvrsta bloka, koje se pre rada mora rastopiti Telefonska linija po prirodi nijc namenjcna prcnosenju racunarskih signala koji u
u posebnim rezervoarima. Zato je za pri premu ovih stampaca potrebno i do I 0 min uta. nacelunulu predstavljaju naponom od 0 volti, ajedinicu naponom ocl3 do 5 volti (sli-
Rastopljeno mastilo se prenosi na papir, gde ocvrscava, a zatim se propustanjem izme- ka 2-37(a)). Signali sa samo dva nivoa znatno se izoblicavaju kada sc prcnose tele-
du valjaka utiskuje u njega. fonskom linijom namcnjenom za prenos glasa, pri cemu nastaju greskc. Mct1utim,
Trecu vrstu stampaca u boji predstavljaju laserski stampaci u boji. Oni rade slicno takvom linijom se uz srazmerno malo izobliccnja moze preneti i sinusoiclni talas
kao i njihovi cmo-beli rodaci, osim sto se za svaku od cetiri CMYK boje na valjku ucestalosti izmcdi 1000 i :2000Hz; on se naziva nosed signal iii nosilac (engl. car-
obrazuje zascbna slika koja se stampa odgovarajucim tonerom. Posto se bit mapa ci- rier) i i cini osnovu vecine telckomunikacionih sistema.
tave strane po pravilu generise unaprecl, strana velicine i)O kvadratnih inca (516 cm 2) Posto je oscilovanjc sinusoidnog talasa potpuno predvidljivo, cist sinusoidni si-
i rezolucije 1200 x 1200 dpi ima ukupno 115 miliona piksela. Uz 4 bita po pikselu, gnal ne prenosi nikakvu informaciju. Ali, ako mu mcnjamo amplitudu, frekvcnciju iii
stampacu treba 55 MB mcmorije samo za bit mapu, ada ne govorimo o memoriji za fazu, pomocu njega mozemo preneti niz jedinica i nula, kao na slici 2-37. Ovaj postu-
unutrasnje procesore, fontove itd. Zbog togaje lasersko stampanje u boji skupo, ali je pak se zove modulacija. Pri amplitudnoj modulaciji pogledajte sliku 2-37(b) za
brzo. veoma kvalitctno i slikc ne blede s vremcnom. nulu i jcdinicu koriste se dva razlicita naponska nivoa. Ko osluskuje digitalne poclatke
C:etvrta vrsta stampaca u boji su stampaci s vostanom trakom (engl. wax prin- poslate veoma malom brzinom, cuje glasan sum kacl stigne jedinica, a kacla stigne
ters). Oni imaju siroku cetvombojnu traku podeljenu na delovc velicine stampane nula ne cuje nista.
stranc. Dok papir i traka prolaze k.roz njega, hiljade termickih elemenata tope vosak Kod frekventnc modulacije (slika 2-37(e)) nivo naponaje konstantan, alije frek-
koji ocvrscava na papiru u obliku tacaka prema CMYK sistcmu. Ovakvi stampaci su vcncija noseceg signal a razlicita zajedinice i nule. Ko bi osluskivao digitalne podatkc
ranije bili glavna tehnologija za stampanje Ll boji, ali su ih danas potisnuli drugi stam- cuo bi dva tona koji odgovaraju nulama i jcdinicama. Frckventna modulacija se cesto
paci, na koje se trosi manje novca. naziva modulacija s frckventnim pomeranjem (engl. frequency shift keying).
Peta vrsta su stampaci sa suhlimacijom hoja (engl. d_ve suhlimution printers). Iako Kod jednostavne faznc modulacijc (slika 2-37(cl)) amplituda i frckvencija se ne
izraz ,sublimacija" mozda podseca na Frojda i psihoanalizu, tim imenom se oznacava rnenjaju, ali se faza noseceg signala pornera (obrce) za 180 stepeni kada nula prede u
proces direktnng prelaska cvrstog tela u gas bez prolaska kroz tccno stanje. Suvi led jedinicu ili jedinica u nulu. U slozenijim fazno-modulisanim sistcmirna, na pocctku
(smrznuti ugljen-dioksicl) dobro je pozna! materUal koji sublimise. U stampacu ovakve svakog nedeljivog vremenskog intervala, faza nosec'eg signal a naglo se pomera za 45,
vrstc, specijalan nosac sa CMYK bojarna prelazi preko glave za stampanje koja sadrzi 135, 225 ili ] 15 stepcni da bi sc fazno kodirala 2 bita po vremenskom intervalu (tzv.
na hiljade termickih elemenata cijc se zagrevanje moze prograrnirati. Boja pri zagrc- dibit). Na primer, fazni pomak od 45 stepeni moze z.naciti 00, a fazni pornak od 135
vanju trenutno isparava i prelazi na blisko postavljcn specijalni papir. Svaki tennicki stepeni - 0 l itcl. Postoje i seme za pre nos 3 i vise bitova po jednorn vremenskum in-
element moze se zagrejati do jcdne ml 256 razlicitih temperatura. Sto je temperatura tervalu. Broj vremenskih intervala (tj. potencijalnih promena signala) u \ekundi oz-
visa, vise boje prelazi na papir i stampana boja je intcnzivnija. Za razliku ocl ostalih nacava brzinu prenosa u bodima (engl. buud). Uz dva ili vise bitova po intervalu,
stampaca u boji, ovde se svaki piksel moze obojiti nijansom iz skoro neprekidne skale brzina prenosa u bitovima prcvazilazi brzinu prenosa u bodima. Mnogi mdaju ova
boja. tako da rasterizovanje nije potrebno. Mali prirucni stampaci koji se koriste LIZ fo- dva termina.
toaparate, pomocu opisanog procesa prave visokorealisticnc fotografije na specijal-
nom (skupom) papiru.
2A t:Iaz i izlaz
117
116 Poglavlje 2: Organizadja racunarskih sistema

linije koje u jcdnom trenutku mogu da obavljaju prenos samo u jednom smcru (b11J
Vreme - - - -
0
jednukolosecna pruga na kojoj se vowvi propustaju samo iz severnog iii juznog srne-
V2 ra. ali nikako iL oba istovrcmeno) zovu se poluduplcksne (engl. hal{duplex).
(a) c
0
Vl
O-
ro Vel1ka Mala Digitalnc prctplatnickc linijc
z amplituda amplituda
Kadaje telcfonija konacno dostigla brzinu od 56 kb/s, cestitalaje sama sebi na dc-
(b) bro ohavljenom poslu. U isto vreme. kahlovska televizija jc obezbcdivala brzine d~J
1() Mb/s na zajcdnickoj kahlovskoj mre:li, a satclitske kompanije su planiralc da pc-
frekvenclja frekvencija 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)
(c) 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.
(d)
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 najv~­
/"

Promena faze
rovatnije postati popularnija od svilt slicnih usluga. To je asimetricna digitalna pret-
Slika 2-J7. l'rcno~enjc hinarnog broja 0 I()() I() II()()() I 00 tekfonskom linijom. bit po bit. (a) Signal platnicka linija (engl. Asvmmetric DSL, ADSLJ. Posto se ADSL neprestano razvi a
;, dva nivoa. (b) Amplitudn<1 modulacij<1. (c) FreJ...ventna modulacija. (d) fa7na modulacija. 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-
Ak.n se podaci koje treba preneti sastoje od niza S-hitnih Lnakova. bilo bi zgmlno niji mozcte naCi u odgovarajucoj litcraturi (Summers. 1999; Vettc:r et al., 2000).
imati vezu kojnm se istovremcno rno/.e prcneti S bitova (npr. kabl sa osam parova zi- Modemski prenos Jigitalnih podataka je loliko spor zato sto su tclefonske liniie
ca). Poslo tekfunske linijc imaju samojedan kana!, bitovi se moraju slati serijski, je- projektovane za prenos ljudskog glasa i citav sistem je optimi.l()van za tu S\rhU. Di-
dan za drugim (iii u grupama po dva ako se koristi dihitno kodiranje). Urectaj koji gitalni podaci su uvek hili tretirani kao nuzno zlo. Lokalna tdefonska linija (Cllfl.
prihvata Lnakove od racunara u obliku signata s dva naponska nivoa. bit po bit, i hi- local loop) koja povezuje pretpLttnika s telcfunskum centralorn uduvek je u centrdi
rove prenosi pojedinacno iii u grupama od po dva hita pomocu amplitudne. frekvent- tiltrirana tako da propusta ucestalosti :-.amo do oko .'<000 l!L Upravo raj tiltar ogu-
ne iii fazne modulacije, zove sc modem. Da hi se oznacili pocetak i kraj svakog znaka, nicava hrzinu prenosa podataka. Stvarni propw-,ni opseg lokalne telefonskc linijc z.t-
t\-bitnom znaku se na pocetak ina kraj dodaju dva specijalna bita. sto ukupno cini 10 visi od njene duzine. ali je za najce\ca rastojanja. od nekoliko kilometara. kruz nJ u
bitova po znaku. moguce ostvariti vrednosti od 1.1 MHz.
Modem salje pojedinacnc bitovc ~vakog znaka u ravnomerno rasporectenim inter- Najc6ci pti;;tup realizaciji ADSL usluge prikazan je na :-;lici 2-3X. U usnuvi ;e
valima. Na primer, kada je hrzina prcnosa 9600 boda signal sc menja svake I 04 f.!S. uklanja tillar i raspolozivi spektar frekvcncija na lokalnoj liniji (1.1 !'vlHz) deli ,e na
Prijemni modem na drugom kraju veze ponovo pretvara modulisani noseei signal u 256 nezavisnih kanala od po 4312,5 Hz. Kana! 0 se kl'risti za klasicnu uslugu prcnma
hinaran hroj. Posto bitovi u prijcmni modem stizu u jednakim intervalima, kada pri- glasa (engl. Pfoin Old 11'/cp/wne Service, POTS). Kana!i 1-5 sc ne knr!ste, da bi 'c
jemni modem utvrdi pocctak nekog Lnaka, njegov radni takt ce mu odrediti u kojim sprecilo medusobno umctanje govornog signcda i signata podataka. Od preostalih 25ll
intervalima treba da s linije ocitava dolazece bitove. kanala, jedan se koristi za upravljanje ~lanjem i jos jedan za upravlj,tnje prijcmom
Savremeni modcmi raclc brzinama prenosa od 2t\.XOO do 57.600 bitova u sekundi podataka. Ostali su raspolozivi za kori~nicke podatke. ADSL linija .,zamcnjuje" :25()
(po pravilu, brzina u budima je mnogo manja). Da bi po jcdnorn bodu poslali vise bi- nmdemskih veza.
tova. 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
!~'\''"

118 Poglavlje 2: Organizacija racunarskih sistema 2.4 Ulaz i izlaz 119

(engl. Digital Subscriber Line Access Multiplexer, DSLAM) koji ima isti proccsor di-

jn~
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.

0 25 1100kHz
G~r Slanje Primanje

Slika 2-38. Rad ADSL linijc.


r-dekoder)
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
tiMc~
_....-OS LAM

ADSL
modern
brzina prenosa, pa razliciti kanali mogu prenositi podatke razlicitim brzinama. Koris-
Telefonska kompanija Uredaji kod korisnika
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 Slika 2-39. Tipicn~ konfigur~cija ADSL linije.
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 Kablovski Internet
prenosa od 4 do 8 Mb/s u kratkim intervalima ina visokokvalitetnim lokalnim linijama.
Mnoge kablovskc televizijskc kompanijc danas nude i kahlovski pristup lnternctu.
Tipicna instalacija ADSL linije prikazana je na slici 2-39. Prema ovoj semi, slu-
Posto se ta tehnologija vcoma razlikujc od ADSL tehnologije, vredi jc pomenuti.
zbcnik telefonske kompanijc mora kod korisnika instalirati mrezni interfcjs (engl.
Kablovska TV kompanija u svakom mestu ima svoju centralu i brojne kutijc prepune
Network Interface Device, NlD). Ta plasticna kutijica oznacava kraj vlasnistva tcle-
elektronskih kumponcnata- centralne razvodnike (engl. hcodends), rasute svuda po
fonske kompanije i pocetak privatne svojine korisnika. Pored mreznog interfejsa (iii
teritoriji koju poki·iva. Centralni razvodnici su povezani s centralorn zicanim kablo-
ponckad u kombinaciji s njim) koristi se i razdelnik (engl. splitter)- analogni filtar
vima velikog propusnog opscga iii optickim kablovima.
koji razdvaja frekventno podrucje od 0 do 4000 Hz (rezervisano za POTS) od frek-
lz svakog centralnog razvodnika pruza se jedan iii vise kablova koji pro laze pored
ventnog podrucja rezervisanog za podatkc. Govomi signal se upucujc na postojeci tc-
stotina domova i kancclarija, gdc sc prikijucuju pretplatnici, slo znaci da stotine koris-
lefon iii faks, a signal podataka ka ADSL modemu. ADSL modem je procesor
nika deli, isti kabl do ccntralnog razvodnika. Kabl obicno ima propusni opseg od ok<>
digitalnih signata koji radi kao 250 paralelnih modema na razlicitim frekvcncijama.
750 Mllz. Ovaj sislem se polpuno razlikuje ocl ADSL linije jer svaki tclefonski pret-
Posto su danasnji ADSL modemi uglavnom spoljasnji, racunar mora biti spojcn s mo-
platnik ima sopstvenu (znaci, nedeljenu) liniju do telefonskc centrale. U praksi se,
demom visokobrzinskim prikljuckom. U tu svrhu se mrezna Ethernet kartica racunara
m.cdutim, vas kana! propu~nog opsega I, I MH1, do telefunskc centrale ne r<vlikuje
i ADSL modem povezuju u vrlo malu lokalnu Ethernet mrez.u sa samo dva cvora.
mnogn ocl kahla propusnog opsega ::?.00 MHz koji deli 400 kurisnika, ga u svakom trc-
(Ethernet je standard za popularnu i jeftinu lokalnu mrdu.) Ponekad se umesto Ether-
nutku ga poluvina ne koristi. To, medutim, znaci da cc korisnik kablovskog lntcrncta
net k<trticc koristi USB prikljucak racunara. U buducnosti ce, nema sumnje, postojati
imati kvalitctniju uslugu u 4 sata ujutru nego u 4 sata popodnc, dokjc kvalitcl 1\DSL
ADSL rnodemi kao unutrasnje racunarske kartice.
us luge uvek isti. Oni koji /elc da optimal no iskoristc kabiovski Internet moz.da trcha da
Na drugoj strani linije, u tclefonskoj kompaniji, takode je instaliran razdelnik.
se presele u drugo naselje (gde su kuce udmaknutije, pa jc i manje kori~nika na i~tom
Tu se govorni deo signala tiltrira i salje u telefonsku centralu. Signal frckvencijc iz-
kablu) iii pak u siromasniji kraj (gdc niko sebi nc mole da priusti uslugc Intcrneta).
nad 26 kHz upucuje se u multiplekser pristupa digitalnoj pretplatnickoj Iiniji
J20 Poglavljc 2: Organizacija rarunat·skih sistema 2A Ulaz i izlaz 121
--·--·

Posto jc kahl Jcljeni medijum. vcliki jc problem odrcditi ko i kada nesto salje prc- Za pristupanje lnternetu potreban je kablovski modcnl. uredaj koji sadrzi dva in-
ko njega i na kojuj frd:vcnciji. Da bistc razurneli kako se to radi, moraccmo da sc tcrfejsa: jedan ka racunaru i drugi ka kablovskoj mrcl.i. lntcrfejs izmel1u racunara i
kratko upoznamo i ' funkcionisanjem kablovske televizijc. Kanali kablovske televi- kablovskog rnodcma je jednostavan. To je obicno Ethernet kartica, kao kod ADSL li-
zijc u Americi po pravilu zauzimaju opscg od 54 do 550 MHz (izuzimajuci opscg nije. u buducnusti ce se rno/,da citav modem naci na kartici koja se mozc utaknuti Ll
predviden za Fivl radiu od 8:-i do 10:-i MHz). Kanali Sll sirine 6 MJ-Jz, ukljucujuci i racunar, slicno danasnJim unutrasnjim Y.9x modemima.
za;titne pojascve 1-;oji sprccavaju mdanjc signala izmedu susednih kanala. U Evropi Drugi interfejs je slozeniji. Veliki cleo standarda koji se odnosc na kablove spadaju
jc donja granica pmlru~j:1 najcc':,cc 65 MHz. a kanali su sirinc 6-8 MHz kako bi mogli u radio-inzenjcrstvo, oblast koja prcvazi!azi okvire ove knjigc. Samo valja pomenuti
da prihvatc visu rewluciJLl s k1•ji!na raclc tclcvizijski sistcmi PAL i SECAM, ali jc u da su kablovski modemi. slicno ADSL modemima, uvek ukljuccni. Oni uspostavljaju
svcmu ostalom str:Jtt:gija dodcljivanja kanala slicna nnoj u Amcrici. Donji deo pod- \ ezu kada sc ukljucc i odrzavaju jc sve dok su ukljuceni jer kablovski opcrateri ne na-
rucja se nc koristi ;a tclcvi;.ijskc prcnose. placuju svojc usluge na osnovu vremcna koje provedcte na lnternetu.
Kada knmp:lllijc kablovskc tclcvizije uvode kablovski Internet. susrecu se s dva Da biste bolje razumcli bkp kablovski modem racli, razmotrimo sta se dogada kada
problema: ga utaknete u kablovsku mrczu i ukljucitc. Modem skenira kanalc za prijem trazeei
l. Kako ustvariti pri,tup lntcrnctu hcz losih posleclica po televizijske programe. specijalan paket sa sistemskim parametrima koji ccntralni razvodnik periodicno salJC
modemima upravo uk!jucenim u mrezu. Kada pronadc taj paket, novi modem oglasa-
2. Kako ost\ariti dvusmcrni saobracaj kada pojacivaci po svojoj prirodi radc
va svojc prisustvo prcko jcdnog od kana !a za slanje. Ccntralni razvoclnik odgovara pri-
Jednosmcrno.
druz.ujuci mu odredcne kanale za slanje i prijcm. Ova dodela se kasnije moze i
Odgovuri na uva pitanja mogu se sazcti na slcdeci nacin. Savrcmcni kablovi rade promeniti ako centralni razvoclnik utvrdi daje u nekom trcnutku potrebno uravnotc!:iti
dc1bm pri l'rcbcncijama visim od 550 !\1Hz, cesto i pri 750 Mllz i vise. Kanali za opterecenje.
slanjc (od ~-;,,risnika ka ccntralnom razvodniku) smcstaju se u podrucje 5-42 MHz (u Modem zatim odreduje svoje rastujanje od centralnog razvodnika saljuci mu spe-
Lvropi jc o':aj frckvcntni opscg pomeren ka nesto visim frckvencijama). a kanali za cijalan paket i mereCi vremc za odgovor. Taj proces sc zuve ()(h·edivanjc rastojanja
prijcm (od ccntralnog razvodnika ka korisnicima) smestaju se u gornji kraj podrucja, (engl. ronging). Modem treba da zna svojc rastojanjc od centralnog razvodnika da bi
kao \t() jc prikazano na slici 2-40. 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
5 47 ~)4 08
uklopi u jedan iii vise uzastopnih mini-intcrvala. Centralni razvodnik periodicno ob-
• ~ ~ 1[)8
.-,,---,--1 550 750 MHz javljujc pocetak nove serije mini-intervala. ali njcgova objava ne stize istovremcno
il. Ii
- -=1Pcee>':'"" podo<:~
I
I ,i
do svih modema jcr sc oni nalazc na razlicitim rastojanjima od njega. Znajuci koliko
I TV lfMI TV 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

rwrl··: 'L korisna kolicina podataka iznosi 8 bajtova.


FrekvenciJe za preuzlmanje Tokom inicijalizacije, centralni razvodnik svakom modemu clodcljujc i mini-in-
2 '~
terval kojim ce modem zahtevati prupusni opscg za slanje. lsti mini-interval sc po
J ~ /
pravilu vewje za vise modema. zbog cega nastajc sukobljavanje. Kada racur~ar pui:cli
da posalje paket, on ga prenosi modemu koji tada zahteva potrehan bruj mini-imer-
Slika 2--tO. R:t.sp<llicl:t fn.:l,~n.:ija u tipicnolll sistcmu bblovskc tclcvi,-:ijt:
koji se koristi i za pristupanje lntcrnctu.
vala za njcgovo slanje. Ako sc zahtcv prihvati, centralni ranodnik ~aljc potvrdu prijc:-
mnim kanalom. saopstavajuci modemu koje mini-intervale mo:fe da kllrioti za slanjc
l'u~t<; sc rclnizijski signali samo preuzimaju. u podrucju 5-42 l'vlHz mogu se ko- pakcta. Tada se paket salje, pocevsi od prvog dudeljenog mini-imcrvaLL Pri tnme se
n-;titi s;l:!lc) r'c:pt:·ivaci za slanje. au podrucju od 54 MHz pa navise iskljucivo pojaci- mole iskoristiti odredeno polje u paketu da bi .~e oclmah poslao zabt.:.:\ za _,J:\njc clo-
va~·i ;a prii•c'lll signala. Otuda asimctriju izmeda pudrucja za slanje i podrucja za chttnih pakcta.
pr;manje ,,igna!a: vcci cleo frckventnog spcktra ostao je iznad oblasti rc;:ervisanc za S druge strane, ako nastane sukobljavanje zbog mini-intervala 1.<1 ,[anjL' ;:ahtcv ;:.
tckviiiJU a manji i.-;pod nje. S druge strane. occf;ujc sc mnogo vise saobra(aja ka ko- modem nece duhiti potvrdan odgovor i ostaje rnu samu da posie n~bumicnu odabra·
t·isniku nee"'' ,_,J korisnika. pa se kablovsl-;i operateri uopste ne ble na ovakvu raspo- nog intervala ponovo pokusa da posalje zahtev. Posle svakog ncuspcsnDg poku:~~0a,
ddu K~t<l ;w sn1o ranijc rekli. i tclcfonske kompanije obicno nude asimetricne DSL nasumicno odabrani vremenski interval oe udvaja da bi sc u saubracajnc>m spicu mrc·
uslugc. iak,, iil nato nisu prinudili tehnicki razlozi. /.c; r~hterctila.
122 Poglavlje 2: Organizacija racunarskih sistema 2.4 Ulaz i izlaz
123

Kanalima za primanje podataka upravlja se drugacije nego kanalima za njihovo Na kraju, modem mora da se prijavi ida saopsti svoj jedinstveni identiflkator prc-
slanje. Prvo, postoji samo jedan posiljalac (centralni razvodnik), pa nema mogucnosti ko obezbedenog kanala. Ovde se postupak inieijalizovanja zavrsava. Korisnik moze
sukobljavanja niti potrebe za mini-intervalima, koji nisu nista drugo do statisticko da se prijavi davaocu Internet usluga i pocne da radi.
multipleksiranje pode\om vremena. Zatim, saobracaj ka korisnicimajc obicno mnogo 0 kablovskim rnodemima moze se jos stosta reCi. Neke od referenci su Adams i
veci od saobracaja koji oni generisu, pa se koristi paket flksnc velicine od 204 bajta. Dulchinos, 200 I; Donaldson i Jones, 200 l; Dutta-Roy, 2001.
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-
2.4.6 Digitalni fotoaparati
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 Racunari sc sve cescc koriste i za digitalnu fotografiju, tako da se digitalni fotoapa-
povczi vanje prikazano je na slici 2-41. rati danas mogu tretirati kao racunarske peri ferne komponente. Osvrnimo sc ukratko na
nacin njihovog rada. Svi foto:,~parati imaju objektiv koji stvara sliku predmeta na nje-
Koaksijalni kabl Prijemni kana! bez sukobljavanja: 27 Mb/s uz QAM-64 govoj pozadini. Na zaclnjoj strani kuCista klasicnih fotoaparata nalazi se film na kojem
~" i korisnu kolicinu podataka od 184 bajta __
se obrazuj~ skiivcna slika kada se film osvetli. Skrivena slika postaje vidljiva pod dcj-
stvom odredenih hcmikalija prilikom razvijanja tllma. Digitalni fotoaparat radi slicno,
OptJckt kabl
osim stu jc film zamcnjen pravougaonom matricom scnzora (engl. Charge- -Coupled
f-:::=~~~=J~~~~~~~~~~~~~~c:====l=~ 1 1 Devices, CCDs) osetljivih na svetlost. (U nckim digitalnim fotoaparatima koriste se
<= ~
f----\..:...--1 Centraln1
["""'' C O' Modom I 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-
- Paket Kana! za slanje uz sukobljavanje:
8 Mb/s uz QPSK i mini intervale od 8 bajtova 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-
Stika 2-41. Tipicni tktalji kanala za slanjc i prijem pmlataka u Amcrici. QAM-64 ta prikazan je na s lici 2-42.
(kvauraturn~tamplitudna 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. Jed an piksel stvaraju
cetiri ceo elementa:
-l~/;:1,1?1':'.1- l_ jedan .. crveni",
Vratimo se jos jed nom inicijalizovanju mode rna. Kadaje modem odredio rastojanje jedan .. plavi"
i dobio kanale za slanje i primanjc podataka, kao i svoje mini-intervale, mozc poceti da i dva .. zelena"
/L.~-----·-....
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 Objektiv
njime se zahteva mrezna adresa (preci1.nije, IP adresa) koja se dodcljuje dinamicki.
Istovremcno se trazi i dohija tacno dncvno vreme. --.+-- Procesor
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 - Memorija
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 .~i­ Matrica CCO elemenata - Fles memorija
iii mikrodrajv
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 kori.~CI,·na
Digitalni fotoaparat
tehnika (Diftic-Hcllmanov algoritam) prevazilazi okvirc ove knjige. Ako stc radozna-
li, pogledajte kod Kaufmana et al. (2002). Slika 2-42. Digitalni f()toaparat.
PoglaYije 2: Organizacija racunarskih sistema l!laz i izlaz
125
124
...

Svaki CCD element gene rise jednu vrednost. nezavisnu od boje wctlosti koja pad- dcfokusira ili s njc ukloni ncke delove. kao i cia primcni brojnc tiltre. Kada buLk za-
ne na njcga. Da bi sc obrazuvala slika u boji. CCD scnr.ori se organizuju u grupe od po dovoljan rezultatom. sliku mole oclstampali na slampacu u boji. poslati je preko In-
cetiri elemcnta. Preko CCD senzora postavlja se Bayerov filtar Ja bi do jcdnog od ce- temeta nekome na obraciu ili je arhivirati na CD·ROM iii DVD disk.
tiii elcmenta iz svake grupc dopirala samo crvcna svetlost, do drugog samo plava. a do Racunarska snaga, vclicina rncmorijc i prostora na cvrstom disku, kao i softver di-
preostala dva samo zelcna. Dva ,zclcna·· elemcnta koriste se zato sto je mnogo lakse gitalnog SLR futoaparata neverovatno 3U dubri. Racunar digilalnog SLR modela tre-
napraviti CCD scm:or s grupama od po cctiri nego od po tii elcmcnta i zato ~to je oko ba da radi nc samo ono sto smo nabrojali, vee i da u real nom vrcmenu komunicira'
mnogo osetlji vije na ;:clcnu svctlost nego na crvcnu iii plavu. Kada proizvodac Jigi- procesorima unutar objektiva i blica. osvcbva sliku na LCD ekranu i upravlja taste-
talnih fotoaparata l vrdi da aparat ima, recimo. 6 miliona piksela. on ne govori istinu. rima. tockiL'ima, lampicama, ckranom i drugim lchni-:kim detaljima fotoaparata. (}1
Aparat ima 6 miliona CCD clcmenata koji zajedno Jaju I ,5 milion piksela. Slika ce biti prcdstavlja izuzetnn mocan sistem. koji se CL'St<l nwzc mcriti sa stonim racunarom oJ
ocitana kao matrica od 2828 X 2121 piksela (na jcftinim aparatima) iJi 3000 X 200{) pre nekoliko godina.
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 2.4.7 Kodiranje znakova
(tj. ostrinu). odredi eksporiciju i uravnotdi bclu boju. Autumatsko izostravanje za-
Svah:i racunar koristi odredcn skup t.nakova (engl. character set). Taj skup obuhv:L-
sniva se na analiziranju uccstalosti smcnc osvetljenja susednih cielova slike i pomera-
ta bar 26 velikih slova, 26 malih slova i cifrc od 0 do 9, kao i podskup spccijalnih sim-
nju objektiva Jok sc nc dobijc njen maksimum. sto tnaci slika s najvisc Jctalja.
bola kao sto su rannak, tacka, minus. zarez i simhol La vracanje na pocetak reda (CR).
Podeiiavanje ekspo~:icije obuhvata merenje jacinc svctlosti koja pada na CCD senior
Da bi ovakve Z!lake racunar razumco, njima sc docieljuju brojevi: na primer, a= I,
i podcsavanjc otvura blcndc i vrcmena ckspuzicije tako da jacina upadnc svctlo:,ti
b = 2 ... ., z = 26, + = 27. = 2S. Preslikavanjem znakova u cek brojcvc dubija se kod-
buclc u srcdini pudrucja usetljivo~ti CCD scnzora. Uravnotel:avanje bcle buje svodi se
na tahela znakova 1 engl. clwruclcr code). Od presudne je vaznosti da racunari koji
na merenjc spd.tra upadne svetlosti da bi sc kasnije mogla korigovati hoja.
medusobnu komuniciraju koristc istu kodnu tabelu. inace se nece rawmeti. Zbog toga
Slika sc zatim ocitava sa CCD scnzora i kao matrica pikscla prcbacujc u unutra-
su ;:a kodnc tabck ;.nakova uspustavljcni standardi i u nastavku cemo obraditi d''e
snju memoriju fotoaparata. Kvalitctni ciigitalni SLR aparati (koriste ih roturcportcriJ
mugu da tokom pet sckuncli u svakoj sckundi snime osam slika vi~oke re;.olucije. pri najva;nije takvc tabelc.
ccmu im za cuvanjc slika pn: obrade i tinalnog skladistl'nja 'luzi memorija ud llko I
CJB . .Jeftiniji aparati imaju manju memoriju. ASCII
Kada se napravi sirov snimak, softver aparata na njcmu .. uravnotc!ava bclu b<lju" Jcdna n,J naj~6cc k.)ri~ccnih J;,1dnih tabclajeASCII tahcla (engl. American Stu•z-
- koriguje boje, narocito crvenkastu iii pLtvica;;tu (u senkama ili od hlica itt!.). Zatim dunf Cc>t!eF'r !nfimnutiun !nterclwngc- Americki standardni k6d za razmenjivanjc
se snintak obradujc algoritmom za smanjcnJc suma i drugim, koJi ispravlja nedo\\atkc intormacij:l). Svakom ASC!I Lnaku dudeljujc se 7 bitova, tako cia sc moze dobiti !2S
CCD senzora. Posle log a suftver poku;ava Ja il<l.~lii sliku 1osim aku mu je ta opcip r:;Lli(itih 1nakova. Tahcia ASCII kociova prika~:ana je na slici 2-43. Kodovi ocl 0 do
iskljuccna) tako stu trazi ivice detalja i UVCC~tva kuntra,tuku njlh. 1F (heks:tdccimal nll: jesu upra' ljacki l kontrolni l wakovi koji se ne stampaju.
Na kraju se slika moze kumprimovati cia bi zauzima!a manJe mcrnorije. Cobicaje-
Heks.k6d Ime Znacenje
ni algorilam za komprimuvanjc jc .JPEG (.Joint Photographic Experts Croup) kod Heks. k6d !me Znacenj<> ---

koga sc na sliku primenjuje civodimenzionaln~l Fouricr01 a transformacija. pri ccmu 10 OLE Data Link Escape
() NUL ~'iUII

sc neki njeni detalji imstavljaju. Slika u fnrmalll JPEG Latuima nunjc proslora u mc- :11 DC1 Device Control 1
SOH Start Of Headir,g
moriji, ali se prikazuje ~ manjc detalja. Start 0! Te/t . 12 DC2 Dev1ce Control 2
2 STH
Kaclajc ubrada slikc u foloaparatu;a\ r\cn.t, siibt sc Lapi,ujL· na medijum ;:a :-kLt- 13 DC3 Device Control 3
3 ETX End Of TeXt
distenje, po pravilu u tk~ mcmoriju iii na minipturni i11nenjivi cvr:-ti Lii:-k nazvan rni- DC4 Device Control 4
.i EOT End Of Transrniss:on 14
kmdisk (engl. microdrire). Naknadna obrada i skladi.;renje ~iike mugu potrajati vi~c Negative
El,iO Enquiry . 15 NAK
'ekund1. 5 AcKnowledgment
Kada korisnik dude kuci, on mole da po,·e2e fotuaparal s racuJJaf()lll, obicn•J po- SYN SYNchronous idle
6 .t>..CK ACr<nowled·J8f11ent i 16
rnucu LJSB kabla iii Fire\Vire \e/.C. Slike St' tada prelltl:-e iz folllaparata na cvr,ti disk End of Transmission
BELl 17 ETB
racunara. Pomocu specijalnog softvera, ka•J ~to je .'\.J,,beuv Pli<>tt;~hop. kuri,nik BEL
Block
mozc da opsecc sliku. pode:-i svetlocu i konrrasL uravnote7i hujc na ..,]ici, izostri je. CANcel
n~
BackSpace . 18 CAN
8 00
EM End of Medium
9 HT Horizontal Tab ; 19
--- 126 Poglavlje 2: Organizacija racunarskih sistema 2.4 Ulaz i izlaz
:__------------
127

sadrze i slova koja sene nalaze u ASCII tabeli, kao sto su nemacko 13 i dansko 0. Neki
Line Feed 1A SUB SUBstitute
lA LF jezici imaju sasvim drugacijc pismo (npr. r~tski iii ara~ski), a neki ~op~te nemaju gla-
B VT Vertical Tab 1B ESC ESCape
sovno pismo (npr. kmeskt). Kada su se racunan prosml1 na sve cetm stranc sveta i
:C FF Form Feed 1C FS File Separator prodavci pozeleli da ih prodaju Ll zemljama ll kojima vecina zitelja ne govori englc-

~- -- =~
Carriage Return GS Group Separator sb. postao je neophodan nov skup.
Shift Out
Shift In
f E
F
RS
us
Record Separator
Unit Separator
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
:~ks. ~:::ak) ~ts. -~n~~~s. ~ lk Heks. Znak Heks. Znak Heks. Znak
50 p 60 70 p
strana (engl. code page). sto je skup od 256 znakova svojstvenih odredenom jeziku

I:~ A
ili jczickoj grupi. Standard IS 8859-l je Latin-I. Standard IS 8859-2 obuhvata slo-
21 I 31 1 51 0 61 a 71 q
venskc jezike s latinicnim pismom (ceski, poljski i slovacki). Standard IS 8859-3
22 " 32 2 :42 B 52 R 62 b 72 r
sadrzi znake svojstvenc turskom, maltcskom. galicijskorn jcziku, esperantu itd. Pro-
23 # 33 3 143 c 53 s 63 c 73 s blems koclnim stranamaje to sto softver mora da vodi racuna s kojom kodnom stra-
24 $ 34 4 144 D 54 T 64 d 74 t norn radi, sto kodna strana ne mozc da sad!"l.i znakove iz vise jezika i sto sistcm
25 % 35 5 i 45 E 55 u 65 e 75 u kodnih strana uopste nije obuhvatiu japanski i kincski jezik.
26 & 36 6 '146 F 56 v 66 f 76 v Grupa racunarskih kompanija odlucilajc cia taj problem rcsi, paje obrazovala kon-
27 37 7 47 G 57 w 67 g 77 w zorcijum za stvaranje novog sistema zvanog UNICODE i najzad ga pretvorila u
78
medunarodni standard IS I 0646. UNICODE dan as podrzavaju neki programski jezici
28 ( . 38 8 48 H 58 X 68 h X
I (npr. Java), neki operativni sistcmi (npr. Windows XP i Mac OS X) i brojne aplikaci-
,29 39 9 ! 49 59 y 69 i 79 z
je. Izvesno dace biti sve vise prihvacen zbog globalnog sirenja racunarskc industrijc.
i2A 3A 4A J 5A z 6A j ?A y
UNICODE sc zasniva na ideji cla se svakom znaku i simbolu dodeli jedinstvena
128 + .3B 4B K 58 [ 6B k 78 { 16-bitna vrednnst. nazvana kodna tacka (engl. code point). U njemu ncma visebajt-
I
i2C 3C < 4C L 5C I 6C I 7C I nih znakova niti kontrolnih (Esc) sekvenci. Kada svakom simbolu odgovara 16 bito-
70 }

1:~
I2D 3D M 50 } 60 m va, softver se laksc pise_
[2E
I
3E > N 5E A
6E n 7E - Buduci da koristi 16-bitne sirnbule. UNICODE ima 65.536 kodnih tacaka. Posto u
3F ? i4F 0 5F 6F 7F DEL svctskim jczicima ukupnn 200.000 sirnbola, kodne tacke su skroman resurs koji se
L~~ _j__ __ _ --
-
--'---------
0 __ __j
mora pazljivo trositi. Skoro polovina ukupnog broja kodnib tacaka vee jc .,pojedcna",
Slika 2-·B. Skup ASCII makova.
a konzurcijum za UNICODE stalno ra~:matra predloge za nove dodele. Da bi ubrzao
Mnogi kontrolni ASCII znakovi namcnjcni su prenosu podataka. Na primcr. poru- prihvatanje sistema UNICODE. konwrcijum je lukavo skupu Latin-I dodelio kodnc
ka mo'/e sadrzati znak SOH (Start of Header - pocdak zaglavlja), ;aglavlje. znak tal:ke od 0 do 255, olaksavajuci tako prelazak sa ASCII skupa na UNICODE. Da se
STX (Start of Text- pocetak teksta). sam tckst. znak ETX (End of Text- kraj teksta) kodne tackc ne bi dodcljivale bcspotrebno. svaka dijakriticka owaka ima svoju kodnu
a zatim i znak EOT (End of Transmission- kraj prenosa). U praksi ~e. mcctutim. po- tacku. l'\a softveru je da ih kombinujc sa susedima i tako obrazuje nove znakove.
ruke koje se salju telefonom iii kroz mrez.u, formatiraju sasvim drugacijc, tako da sc Prost,Jr hxlnih tal:aka podcljen je na blokove. od kojih je svaki umnozak od 16
ASCII znakovi za upravljanje prenosom vise i ne koriste. kodnih tacaka_ Svako znacajnije pismu u sisternu UNICODE prcdstavljeno je nizom
Sa ASCII znakovima koji se stampaju. nema zabune. To su velika i mala slova abe- uzastupnih 1nna. U primerc (Lajcchw s dodcljenim kodnim tackama) spadaju latinic-
cede, (dccimalne) cifre, znakovi interpunkcije i nckoliko matcmatickih simbola. no U36 ). grcku t 1-+-1- ). ciri Iicno ! 25(J ), jermcnsko ( 96 ), hcbrejsku ( 112 ), devanagari
( 12Xi, gurmukhi ( 12XJ. nriya ( 12Si. tclugu (128) i kannada ( 12S). Svakom od ovihje-
UNICODE zika dodeljenu jc vise kodnih tacaka ncgo sto njcgovo pismo ima znakova. To _jc
uratkno delimicno zato sto u mnogim _jc~:icima is to slovo ima vise oblika. Na primer,
Tabela ASCif kodova nastala je u Americi zato sto je i racunarska industrija uglav-
svako slovn u engkskom jeziku mozc biti malo i VELIKO. U nekim jczicima postoje
nom tamo nastajala. ASCll kodovi su dobri za korisnike koji sc sluze engleskim jczi-
tri i vise oblih.a istog slova, sto zavisi od toga da lise slovo nalazi na pocetku. u sreclini
kom. ali ne i za one koji se sluze drugirn jezicima. Za francuski jczik su potrcbni
ih na kraju rcei.
akcenti ( npr. u reci systemc), za nemacki dijakritici (npr. fi.ir) itd. Neki evropski jezici
'!'

128 Poglavljc 2: Organizacija racunarskih sistema 129


-----

Osim pisrnima, kodne tacke su dode1jene i dijakritickim oznakama ( 112), znako- postil.anja vece brzine. mnogi racunari clanas imaju vi~e linija paralclne obrade poda-
vima intcrpunkcije ( 112), indeksima i eksponentima (48), simbo1ima va1uta (48). rna- taka iii supcrskalarnu strukturu s vise funkeionalnih jedinica kojc rade paraklno.
tematickim simbo1irna (256). geometrijskirn oblieima (96) i ornamentima ( 192). Sve su cesci i sistcmi s vise proccsora. Paralclni racunari obuhvataju matricne pro-
Poslc njih slede ~imholi za kineski, japanski i korejski jezik. Prvih 1024 su fonet- cesore koji istu opcraeiju izvrsavaju istovremcno nad vise skupova podataka. multi-
ski simboli (npr. katakana i bopomofo), a za njima s1ede objedinjeni han ideogrami procesore u kojima vi.~e procesora deli istu rncmoriju i multiracunare u kojima svaki
(20.992), koji sc koriste u kineskom ijapan~kom, i korejski hangul s1ogovi ( 11.156). racunar ima snpstvenu memoriju i svi medusobno komunieiraju slanjem poruka.
Da bi korisnici mogli da smisljaju specija1ne znakove 1.a specija1ne potrcbe, za 1o- Memorija moze biti primarna i sekundarna. Primarna menwrija sadr/i prugram
ka1no koriscenje je ostavljcno 6400 kodnih tacaka. koji se trenutno izvrsava. Njoj se pristupa vrlo brzo (najvise za nek,,Jiku dc:setina na-
lako tabcla UNICODE rdava brojnc problcmc intcrnacionalizacijc, ona ne moze nosekundi) i to vrerne ne zavisi od adresc kojoj se pristupa. Kes menwrija jos vise
(i ne pokusava) cla rdi sve svetskc problcme. Na primer, dok jc latinicno pismo skracuje vreme pristupanja. Neke memorije sadrze kCld za ispravljanje gresaka, sto im
ureueno, han idcogrami nc slec!e recnicki redos1cd. Zbog toga cnglcski program moze povecava pouzdanost rada.
da analizira reci ,cat" i ,dog·' ida ih uredi po abeeednnm redosledu tako .~to ce upore- Vreme pristupanja sekunLbrnoj memoriji je, nasuprot ovume. mnogo du/.e (meti
diti vrednosti njihovih pocetnih slova u tabeli UNICODE. Analogni japanski program se milisckundama) i zavisi ml lokacije podataka koji se citaju ili upis11ju. Trake i ma-
morao bi da knristi dmlatne tabelc kako bi saznao koji se ocl dva simbola pojavljujc gnetni i opticki disknvi glavni su prcdstavnici sekundarne mcn]()rije. Postoji llli!Ofi
prvi u recniku. ohllci magnetnih diskova (Winchester diskuvi. IDE diskovi, SCSI diskovi i sistetri
Drugi problem je to ~to se neprestano pojavljuju nove reci. Pre pedeset godina RAID diskova). L: opticke diskove spacbju CD-ROM. CD-R i DVD diskovi.
niko nijc govorio l> aplctima. kibernctskom prosturu. gigabajtirna, laserima. modemi- Ulaznu-i;.lami uredaji slu7c 1.a uno.senje infonnaeija u ral:unar i 1.a njilmvo citanjc.
ma. emotikonima iIi o video trakama. Dod a vanje novih reci u englcski iIi srpski jezi k Oni sus procesurum i memurijum povezani pomoL'u jednc iIi vi;c magistral a. Primeri
ne stvara potrebu za novim kodnim tackama. U japanskom, nove kodne tacke bivaju ulaLnu-i;:[azni!J uredaja Sll tcrminali. mi~evi. starnpaci i modcmi. l;Jazno-iziazni
neophudne. Osim novih tehnickih izraza, postoji zahtev da sc u japanski doda naj- uredaji vecinom koriste skup ASCII 1.nakova. iako se s globctlnirn sirenjem racunar-
manje 20.000 novih (uglavnom kineskih) licnih imcna i imena meo;ta. Slepi misle da skc inclustrije sve \i~;c prihvaLt i skup UNICODE 1.t1akova.
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. \'1,~ZBANJA
UNICODE koristi istu kodnu tacku za znakove koji i;:gledaju skoro potpuno isto.
ali imaju rcvlicito ;:naccnje iii se pisu ndto drugacijc na kineskom ijapan~kom jeziku 1. Ra7motritl' r;td racun;u·a 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
(kao kada bi engleski programi za ohradu teksta rcc ,blue"' uvck zamenjivali recju
da upi-;ivanjc rcmltata u regislar tr:t.ie 5 ns. Kuliko naj\isc 1\l!PS-ova moze ca
,blew"' jer zvuct' islo). Neki ovo smatraju optimizovanjem radi ustede koclnih l<teaLt.
o-.lv<tri nvaj raC:unar ako nc ub;·<tduje pmlatkc par;tlclnu''
dok drugi to vide kao anglosaksonski kulturni irnperijalizam (a vi -;te mo/.da mislili dct
2. StclJC '\Tin kura~;t .2 na lisll i; <lLkljka 2.1.2'' St:l hi sc desilu kada bismo taj kor,,k
dodelji vanje 16-bitnih vrednosti znakovima nije politicki obojeno'! ). Da bi sve bi lo
p;cskoc iIi·)
jos gore, morali SLI biti ucinjeni neki kotnpromisi jer polpllll japanski tecnik ima
3. t\a racun;mt I ir<r~avanjc itistmL-ijc·trajc ill ns. ~a racunaru 2 izvrsavanje inslruL-
50.000 kanji 1.nakova (bel. licnih imena), a samo je 20.992 kudnih tacaka rC/.ervisano
cijc traJC 5 ns. :Vlu.~ete li hit; potpuno sigurni da jc rae tillar 2 brzi' 1 Obrazlozite ot!-
za han icleograme. Ne misle ~vi Japanci cla je konzorcijurn racunarskih kompanija
gnvor.
iclealan forum za donoscnJe ovakvih odluka (iako unjemu ima i nckoltko japan skill).
-t Zctmisiitc da ircha da rrojL·ktuietc r.r(·unar na cipu ;:ajL·dan 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 n;r\·,~dcn u odcljku 2.1.4 i oll-
2.5 SAZETAK govorik· da ii lh \C ;ai~t~i. t;·.::ba tak.o .-.;trn~\) rrlJrZa\·a[i (pod prctpo'-;tavkon1 da ~t i
Lttl_1e /Llc pc1~tic·i \ i--;o~c pl:rf~._:rnl;._tn:-\c).
Racunarski si:-,temi se ~asloje od tri vrstc kompunenata: procescra. mc:mc,rijc i
S. Odrcdcni prora.:·urr je :,trn~u -;ckvencijalan - drugim rc:.~:!rna. -;vaki njcgov korak z.t-
ulazno-izlaznih uredaja. Procesor i; memorije preuzima jednu po jednu itbtrukciju, visi od prethudnog. Da li hi ;a !lVai proral'un hie' pL>gudniJi matricni procesor iii pro-
dekodira ih i izvrsava. Ciklus preuzmi-dekodiraj-izvrsi moze se uvck opisati u uhli- ccsnr b>ii Dbr:rdujc pud:rtke parakino' 1 Obpsnitc.
ku algoritma. koji ponekad izvrsava programski interpreter na ni/.em nivou. Zbug
.,.~-

130 Poglavlje 2: Organizacija racunm·skih sistema Vezbanja 131

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


··-------·

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-
3
platio na uslugu bblovskog Interncta s dL'ljcnim pwpmnim opsegom od 11 MHz.
Koristi sc sema mmlulacijc QAM-6--1-. Na kabi _it~ pri:,lju:'cno n domova. svaki s jcd-
nim racunarom. Lf svakomtn:nutku na rnrc/i sc naLt!ljraC·unara. Pod kojimuslovi-
ma cc korisnik kahlo\skog Int.:rncta proci boijc ,,d kmisnika :\DSL us luge'' NIVO DIGITALNE LOGIKE
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 flc~ mcmoriju t.a 2 s. K,>liku jc hrzinu prcnosa potrcbno ostvariti da bi
se tll postiglu ..'
33. Skup digitalni roto~tparal ima sen.wr od 1h 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 ~:na~ova, zajL·dno ' 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
LJ dnu hijcrarhijc prikazane na slici l-2 nalazi se nivo digitalne logike- pravi hard-
na dvo'.tr~tn..: dvtlslt'_inc D\'D diskovc' 1
vcr racunara. U ovom poglavlju ohradicemo hrujnc aspekte digitalne logike knja pred-
JS. Napi\itc pr,,c·cduru filllllliling (us,·ii. encoded) kuja prctvara 7 najmanjc 1:nacajnih stavlja pndlogu za proucavanjc visih nivoa u narcdnim poglavljima. Ova tema z:mzima
hitm a argumcnta u.wi!" u ll·bitnu cclobrujnu kodnu rcc koja sc zapisujc u rezultat
granicno podrucje izrnedu racunarstva i cistc elektrotehnikc. alije prilicno zaokruzena.
encoded.
pa vam ncce biti ncophodna prethodna znanja ni o hardvcru ni o clcktrotdmici.
36. :--L.tpi;it·~ ftlnk--:tju ,/n/,;nd' {itJ<!c. 11. k! kuja kao ulazni argument prihvata matricu
Osnovni elementi od kojih su sastavljeni svi digitalni racunari zacudujuce su jcd-
c(}(/e tJd n lll~tk<>v~t "d po 4 b!lu\Ct. a k:t<J r..:;.ultat vraca (llammingovo) rastojanje
nostavn i. N asc prouca vanjc cemo poccti od nj ih i specijalnc vrste algebre koja opense
~kupa LilLi~·,)\'tL
sarno s dve vrednosti (Bulova algebra), a sluzi za njihovo opisiv:mje. Zatim ccmo
anali~:irati 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
134 Poglavlje 3: Nivo digitalnc logike 3.1 Logicka kola i Rulova algebra

Treba primetiti daje napon vi visok kada je VII nizak i ohmuto. Ovo kolo je dakle
135

3.1 LOGICKA KOLA I BULOVA ALGEBRA


t
l Digitalna kola se mogu konstruisati od rnalog broja osnovnih elemenata, kornbi-
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
novanih na razne nacine. U narcdnim odcljcima opisacemo osnovne elemcntc, po- unistila tranzistor. Po pravilu tranzistor prede iz jeclnog slanja u drugo za nekoliko na-
kazati kako se mogu kombinovati i upoznati vas s mocnom matematickom tehnikom
nosekundi.
pomocu kojc se moze analizirati njihovo ponasanje. Na slici 3-l(b) dva tranzistora su povez.ana serijski. Ako su oba napona V1 i v2 vi-
soki. oba tranzistora ce se ponasati kao provodnici i napon Vi ce opasli. Ukoliko je,
3.1.1 Logicka kola 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
Strujno kolo je digitalno ukoliko u njemu postoje samo dve logicke vrednosti. Jed-
V1 i napon V2.
nu od dve vrednosti (npr. binarno 0) najcesce predstavlja signal napona od 0 do 1
Na slici 3-l (c) dva tranzislnra su, umcsto serijski, vez.ani paralclno. U ovakvoj kon-
volta, a drugu (npr. binarno l) signal napona izmec!u 2 volta i 5 volti. U kolu nisu do-
figuraciji, ako je hilo koji ulazni napon visok, odgovarajuci tranzistor cc se ukljuciti i
zvoljene vrednosti napona izvan pomenuta dva intervala. Sicusni elektronski uredaji,
oboriti izlazni napon. lzlazni napon ce hili visok samo ako su oba ula7Jla napona niska.
nazvani logicka kola (engl. gates). mogu da izracunaju razlicite funkcije ova dva si-
Ova tri kola iii njihovi ekvivalcnli prcdstavljaju tri najjednostavnija logicka kola i
gnala. Logicka kola su temdj hardvera od koga se sastoje svi racunari.
zovu se NOT (NE), NAND (Nl) i NOR (NlLI). Kola NOT se cesto zovu invertori; mi cemo
Detalji rada logickih kola ne spadaju u ovu knjigu, vee u neku drugu koja bi se ba-
koristiti oba irncna. Ako sada prihvatirno konvenciju da ,visoki napon" (Vee volti)
vila nivoom uredaja ispod naseg nivoa 0. Bez ohzira nato, ipak cemo kratko zaviriti
predstavlja logicku jedinicu, a ,nizak napon" (napon uzemljenja) logicku nulu. izlazne
u logicka kolajer princip njihovog rada nije tdko razumeti. Savremena digitalna lo-
vrednosti napona moci cemo da izrazimo u funkciji ulaz.nih. Simboli koji se koristc pri
gika poe iva na cinjenici da sc tranzistor mozc navcsti da radi kao vrlo brz binarni pre-
opisivanju ova lri logicka kola prikazani su na slikama 3-2(a)-(c), zajcdno s funkcio-
kidac. Na slici 3-1 (a) prikazan je bipolarni tranzistor (krug) ugradcn u jednostavno
nalnirn ponasanjcm svakog kola. Na ovim slikama suA i lJ ulazne vrcdnosti. a X je iz-
kolo. Tranzistor ima tri veze sa spoljnim svetom: kolektor, bazu i emiter. Kada je
lazna vrcclnost. Svaki red daje rezultat za drugaciju kombinaciju ulaznih vrcdnosti.
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

iY =iY D-x =6--x


NOT
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).
~ B B B B

~
+Vee A B X A B X A B X A B X
1 0 0 1 0 0 1 0 0 0 0 0 0
+Vee 0 0 1 1 0 1 0 0 1 0 0 1 1

+Vee 1 0 1 I 1 0 0 1 0 0 1 0 1
1 1 o I 1 1 0 1 1 1 1 1 1
V,
(a) (b) (c) (d) (e)

V1
Slika 3-2. Sirnholi pet osnovnih logickih kula i njihuvo funkcionalno ponasanjc.
v, vi
Kada izlaz kola sa slikc 3-1 (b) povdcmo na ulaz invcrlora. dobija se kolo koje
V2 V1 --+1 ) V2 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 prika~:ani su na slici 3-2(dJ. Slicno invcrtoru. na ulaz sc moze prikljuciti lo-
gicko kolo NOR da bi se dohilo kolo cijaje izlazna vredno~t l ako jc harjedan od ulaza
(a) (b) (c)
I. a 0 ako su oba ulaza 0. Simbol i funkcionalnost ovog logickog kola OR (ILl) prika-
Slika J-1. I a) Traru.isturski invertor. rh) Logicko knlo NAND. (c) Logicko kolo NOR. 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.

i..
136 Poglmljc J: Nivo digitalnc logike J.l Lngicka kola i Bulova algebra 137

Petlogickih kola prikazanih na ~lici 3-2 osnovni su gr:1divni blokovi nivoa digital- cita odozgo nadole. Za funkciju NAND taj broj je !110, za funkciju NOR 1000, za i\J\D
ne lug ike. lz prethodnug opi'a se vidi da su za svako od kola :-J.\ND i NOR polrebna dva 000 I i za OR 0 Ill. Ocigledno je cia postoji samo 16 Bulovih funkcija dvc prumenljive
tranzistora, dok su za kola AND i OR potrebna po lri. Zbog toga se mnogi racunari za- koje oclgovaraju svim kombinacijama 4-bitnog rezultata. Nasuprot tome, u obicnc)j
snivaju na kolima NANDi !':OR ume,to na uobicajenijim kolima AND i OR. (Logicka algebri postoji beskonacno mnugo funkcija clve promenljive. a nijedna od njih se ne
kola se u praksi, u stvari, realizuju malo drugacijc, ali su kola NAND i NOR i u tom moze opisati tabelum rezultala za sve moguc'e vrednosti argurnenata jer svaki arg:J-
-;lucaju jednostavnija od kola c\!'ID i OR) Naglasimo ito da logicka kf,]a mugu imati i ment mo7.e imati hilo koju od beskonacno mnogo vrcdnosti.
vise od dva ulaza. LogiCJ.,o kolo N.\0iD. na primer, mole imati proiz\ oljan bruj ulaza. Slika J-3(a) prikazuje tabelu istinitosti za Bulovu funkciju tri promenljive: M =}(4..
ali u praksi retko ima vise od osam. H. C). To je tzv.logicka funkcija vc6ne: rczultatjc 0 ako je vecina njenih argumenataO,
lako konslrukcioni detalji logickih kola spadaju u nivo uredaja. /.cli!ll>> da n:~vcdc~­ dok je rezultat I ako veCina njenih argumcnata ima vrednost I. Jako se svaka Bulova
mo bar glavnc le!Jnologije koje se na torn polju kori~te. Dve glavnL' nste su hipolarni funkcija moze potpuno opisati pomocu tabele i~tinitosti, kako raste broj argumerna,
tranzistori i lran;i,lori za ..,mwani na MOS tehnologiji (i\letal Oxide Semiconductor. tako opisivanjc postajc sve nepreglednije. Umesto toga, ccsto se koristi drugaciji naLin
poluprovudnik na bazi metalnog oksida). Cilavne vrsle hipolarnih lram'i,.;tora su TTL oznaca vanJ a.
(Transistnr-Transi s\or Logic tran/istorsko-lranzistorska logika ). knja jc godinama
prednjacila u digitalnuj elcktronici i ECL (Emitter-Coupled Logic, emil<:rski sprcg- ABC ABC
nuta lugika). ku1a je kurisc'cna za i;uzetno hrz rad. D<mas se u racunarima najcesce A~-----;

koristc MOS tranziswri.


Logicka kula zasrlov;ma na ~lOS 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. ABC
4
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
puna~aju 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
.~ltl smo htdi d<t Y<tlll kai.cnm o nivou urcdaja. (itaoci l-;tJji fL'lc da prudube svoje
;nanjc o uvom nivou lrc~ha da pngledaju spisak prL·dlt•zenc literature u pnglavlju lJ. B~-----t-;

M
3.1.2 Bu!ova algebra A 8 c M
0 0 0 0
l:<t upisivanjc s"-l''PO\a k(1ji sc mugu clllhiti komhmovanjcm logickih kola potreb- 0 0 I 0
rnje nova vrst.t aigchre u klljOJ pr()mcni;ive i tun"-cijc mugu lt/imati samo vrednusti 0 I 0 0
() i ! . Takn JC RuloYa algebra (engl. H<h'lcun olgchru), koja jc dobila line po svom 0 l I I c ---1"-------lr-t--;
ul'ctniku. c'l1!2lc';kpm makmaticaru Ceur~c·u Bonk~u 1 1815~-! ~!J-1 ). Stn1go govoreci. 1 0 0 0
u1dc c'elll<J ,c h:tviti ,pcciti,'nom H'>tum Rulnvc algcebrc·. V1. prekidackom alge- 1 0 I I
E ABC
brom (en(!!. SH"iicliing ul£;,-hnt), ali sc una IT!() CC''>l<' poi-;tu\CL'ujc s Bulovom algc- I 1 0 I

br·om. pa ni mi nccemo pr:l\ iti raz!i"-u. 1 I I I

Kao ~tn funL·ijc pu.s:ojL' u .. uhicn,)j"" (tj ..sn~druu.~kt,Jskoj 1 :ligcbri. tako postojc i u (a) (b)
Bulovoj :d(!chri. Buk,va lu'll·cija 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 Slika 3-3. (a) Tab.:b islinih>sti ta funkciju \"<'<'ine tri prumenljivc. tb) Kolo koje realizuje tahdu
islinilo,ti (a)
isk:uum:j(. \) = I a"-ll Jc'. \ =ll 1f(;\) =() a"-o jc A= I. Tu je lunkc·IJ<l \:OT sa slike 3-2(a).
P<J;to Hukw:1 funkcij:1 11 promcnlji\ih ima '>amu 211 lllU<,!llc'!il kumbinacija ulaznih
Da bismo videli kako sc on koristi. istaknimo da sc svaka Bulova funkcija !11<lZe
vrcdnusti. ona ·;c rno!:c polpirno ,)pi><~ti pnmncu tahck nd ::n redo> as razlicitim vrcd-
zadati tako sto c'e se rcCi koje kombinacije argumenata daju rczultat I. Za funkciJU sa
nu:-.tiln~t funkcijc 4_~nbijtAniill/~l svc' Il1(~guc~c kutnbinacij~ arg11n1enata. Ta tabela se zuvc
slike J-3(a) postoje cctiri kombinacije argumenata pri kojima ,\1 postajc I. Prcma USV()-
tahda btinitosti (eng!. trllllt tuhin. Svc tahele na ~lic'i 3-2 primcri su lakvih tabcla.
jcnoj knnvcnciji. iznad argumenta cijaje vrednost invcnnvana. stavljac'emo crtu. Ktda
r\l-..c' se sl,l!:imo cb rcduvc u tabeli istinitusti uvd: r~-d:tmu hin:1rnim r<Cdoslcdom tnpr.
crk nema. to znaci da vrednost argumcnta nijc invertovana. Pored toga. podrazumc:va-
/.ad\ <2 promc'l1lj; VL~ rcdoslcd<)!1l 00. ()I. 10 i I I ). \l!lda sc t"unh·Ija muze putpuno opisati
no cemo koristiti rnnozenje (bez operalora) iii tacku da oznacirno Buluvu funkciju A\ID.
2"-bitnim hinarnim hmjc'm koji sc dobija kada sc kolona rc;uli:il<t u tabeli istinitusti
,,
r
:;;I
'
'

138 Poglavlje 3: Nivo digitalne logike 3.1 Logicka kola i Bulova algchra 139

a znak + da oznaCirno Bulovu funkciju OR Tako, na primer, izraz ABC ima vrcdnost l 1. Napisati tabelu istinitosti funkcije.
samo kada je A = l, B = 0 i C = l. Is to tako, izraz AB + BC ima vrednost 1 samo kada 2. Pomocu invertora generisati komplemcnte svih ulaznih vrednosti.
je (A= I i B = 0) iii kadaje (B = I i C = 0). C:etiri rcda na slici 3-3(a) koji im<~u rezultat 3. Predvideti po jcdno logicko kolo AND za svaki red u tabeli koji u koloni re-
1 jesu: ABC. ABC, ABC i ABC Funkcija M ima vrednost I ako bilo koji od ova cetiri zultata ima bit I.
uslova ima vrednost I; prema tome, mozemo da napiserno izraz 4. Spojiti logicka kola AND sa oclgovarajuCim ulazima.
M =ABC +ABC +ABC +ABC 5. Sve izlaze logickih kola AND dovesti na ula~: logickog kola OR.
kao sazet nacin prikazivanja tabele istinitosti. Funkcija n promenljivih se, dakle, moze Iako smo prikazali kako se svaka Bulova funkcija moze implementirati pom,x'u
opisati ,zbirom" od najvise 2" ,proizvoda'' n promenljivih. Kao sto cerno se ubrzo Jogickih kola NOT, AND i OR, cesto jc zgodno ako se funkcije mogu implcmentirati ko-
uveriti, ova fonnulacija je posebno vazna jer direktno omoguc'ava realizovanje funk- riscenjcm samo jednog tipa kola. Na srecu, elektricna kola dobijena navedcnim algo-
cija pomocu standardnih logickih kola. ritmom sasvim se jecinostavn.o prctvaraju u cist NAND iii NOR oblik. Da bismo to
Trcba imati na umu razliku izmcdu apstraktne B ulove funkcije i njcnc realizacijc uradili, moramo naCi nacin da funkcije NOT, AND i OR implcmcntiramo pomocu samo
elektronskim kolom. Bulova funkcija se sastoji od promenljivih, kao sto suA, B i C, jcdnog tipa logickog kola. Prvi red na slici 3-4 prikazujc kako se svc tri funkcije mogu
i Bulovih operatora, kao sto su AND, OR i NOT. Bulova funkcija se opisujc tabelom realizovati iskljucivo pomuc'u logickih kola NAND; poslednji red prikazujc kako se to
istinitosti ili Bulovom funkcijorn, kao sto je npr. moze postici iskljucivo pomoc'u kola NOR. ( Ovu je jednostavan nacin. ali ima i drugih.)
F =ABC+ ABC Jedan od nacina da se Buluva funkcija implementira iskljucivo pomocu logickih
Bulova funkcija se moze realizovati elcktronskim kolima (po pravilu na vise naci- kola NAND iii NORjcste da sc prvo sprovede navcdcni postupak za njeno k.onstruisanje
na) tako stonaponski signali prcdstavljaju ulazne i izlazne vrednosti, a logicka kola pomoc'u logickih kola NOT, AND i OR, ada sc zatim logicka kola s vise ulaza zamenc
operatore, kao sto su AND, OR i NOT. Po pravilu, sa AND, OR i NOT oznacavacemo ckvivalcntnim kolima s dva ulaza. Na primer, funkcija A+ B + C + D mo7.c sc izracu-
Bulove opcratorc, a sa AND, OR i NOT odgovarajuca logicka kola, ali cc vas to cesto nati kao (A+ B)+ (C +D) pomocu tri logicka kola OR sapo dva ulaza. Na kraju, lo-
dovoditi u ncdoumicu. giCka kola NOT, AND i OR treba zameniti kolima sa slike 3-4.

3.1.3 lmplementiranje Bulovih funkcija A~


Kao sto JC rcccno, forrnulisanjc Bulove funkcije kao zbira od najvise 211 proizvoda

A~
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. (a)

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 A
izvor ulaznih signala za nareclna logicka kola na sliei. Na primer, logicka kola 5, 6 i A
7 koristc /\ kao ula;:. U prakticnoj rcalizaciji, ova logicka kola bi verovatno bila cli-
B
rektno spojena s vodom A, hcz posredovanja ,vertikalnih'' vodova. B
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. A
A
U semina slici 3-3(b) uvodirnu konvenciju koju cemo koristiti u ovoj knjizi: kada
B
se elva voda prcsecaju, izmeclu njih ne postoji kontakt, osim ako sc u njihovom prc-
B
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
(b) (c)
kun vencijc.
lz primcra sa slike 3-3 moze se zakljuciti kako se implementira elektricno kolo za Slika 3-4. Konstruisanje Jogickih kola (a) NOT, (h) AND i (c) OR iskljucivo pomocu logickih kola
bilo k.oju Bulovu funkciju: NANDi NOR.
v
~f"~-~

140 Poglavljl' 3: Nivo digitalnl' J.l Logicka kola i Bulova algehm 141

:;;ro
Iako ovim postupkom neccrno dohiti optirnalno elektronsko kolo koje sadrzi naj-
A
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- B
AB > AC
nog od njih. Nijcdno drugo logicko kolo nema ovo wojstvo. pa nc cudi sto sc ona naj- A(BcC]
ccsce koriste kao gradivni blokovi slo?.enijih dcktronskih kola.

3.1.4 Ekvivalcntnost elcktronskih kola c C B+C

Projektanti tezc da u svojim konstrukcijama smanje hroj logickih kola kako hi sni- A B c AB AC AB+AC A B c A B+C A(B +C) i
zili cenu rcalizacijc, ustcdeli pro...,tor na kartici sa stampanim kolom. smanjili po- I
0 0 0 0 0 0 0 0 0 0 0 0
trosnju strujc itd. Da bi pojednostavili kolo. projcktanti mnraju smisliti tlrugo, koje
1 0 ' 0
izracunava istu funkciju, ali pomocu manjcg broja logickih kola (iii mo?.da .~ jedno- 0 0 0 0 0 1 0 1 0

stavnijim logic kim kolima, na primers dva. umcsto sa cetiri ulaza). Bulova algchrajc 0 1 0 0 0 0 0 I 0 0 I 0
ncproccnjiva alatka katla trcba pronaci takvo ekvivalcntno kolo.
0 1 1 0 0 0 0 1 1 0 I 0
Da bistc razurncli kako se Bulova algebra mo7.e iskoristiti pri projektovanju, raz-
1 0 0 0 0 0 I 0 0 I 0 0
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- 1 0 1 0 1 1 I 0 1 I 1 1
krctno. u izranutR +A C mogu se primeni ti pravila distributi vnosti pa cc sc zajednic- 1 1 0 1 0 1 I I 0 1 I I
ki cinilac izvuci isprcd zagrade: A W + C). Slika 3-S(b) prikazuje kolo i tahelu
1 1 1 1 I I 1 1 1 I I 1
i~tinitosti 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 (a I (b)
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 Slika 3-5. Dvc ckvivakntnc runkcijc. lc:) .\B +.\C. (hi i\ 1li + Ci.
manjc logickih kula. ,-
U nacclu. pnljcktovanjc sc zapocinjc od zadate Bulovc funkcije. a zatim se na nju : lme Oblik AND Oblik OR
primenjuju pravila Bulove algebrc da hi sc dobilajcdnostavnija ekvivalentna funkci- Pravilo identicnosti ! 1 A~A :O+A=A
ja. Na kraju na o~novu nje se konstruise clektricno kolo. ' Pravilo nule OA=O : 1.,_A=1
Kada sc koristi ovakav pristup. potrehni sui ncki identitcti iz Bulove algchrc. Neki : Pravilo ic!ernpotentnosti AA.=A A+A=A
od najvaznijih prikazani su na slici 3-6. Zanimljivo je da sc svaki identitct pojavljuje , Pravilo invewje A A =A . A.,_ f.. =1
u dvojini- ima dva oblika. Zamenjujuci AND sa OR i 0 sal (iii obrnuto), dobijamoje-
Praviio komutativnost1 .1\B=BA A+B=B+A
dan iii drugi oblik. Sva pravila sc mogu lako dokazati ako se konstruisu njihove tabcle - - -1
· Praviio asocijativnosri (A.BIC=A(BCl , (ATB)+C=A-r(B+C)
istinitosti. Izuzev DeMorganovog zakona i zakuna apsorpcijc i distributivnosti (u oh-
Praviio rlistnbu;ivnosti i".+BC-~(A+BJ(A-rC) A(B+C)·oAB+A.C
liku AND). do rczultata se moze doci intuitivnim putem. DeMorganov zakon se moze 1
,' -- -

prosiriti na vise ud dve prumenljive, na primer (ABC= i\ + B +C). Pravilo apsorpcqe A(A+B;=/\ A+AB~A
1
DeMorganov zakon omogucava korisccnje alternatin10g oznacavanja. Na slici DeMorg~n~v ~~k~n AB=A-rB 'A+B=AB
3-7( a) oblik AND je prikazan s negacijom oznacenom inverzionim kruzicima i za Slika 3-6. Ncki idcntitcti Rul•.>vc algehre.
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, Pomocu idt~ntiteLt.sa slike .'-7 i analugnih praviLr;a lugicka knla-; \ ik ulaza. priktz
mozemo zakljuciti cia sc lugicko kolo NOR mo7.e nacrtati kao logicko kolo AND sa in- tabck istinito'>ti u oblil--u sumc pmizvuda bko ~c mo:l.e prcrvotiti u obiikc u kojiilt:t
vertovanim ulazima. Negacijom oba oblika DcMorganovog zakona dobijarno slikc po-.;tojc sarno kola :\.\ND iii NOR. Primcra r:tdi. r~vmotrite funkciju EXCLL:SIVE OR
3-7(c) i (d), na knjima su dati ekvivalcntni prikazi logickih kola AND i OR. Analogni liskljucivo IL!l sa slikc 3-8ia\. Sund,trdnn kulo 1asnm·ano na prika1u u ohlil-.u Lb.r,t
simboli postuje i za oblike DcMorganovog zakona s vise promenljivih lnpr. logicko proizvoda ptikaz~tll<l jc na stici 3-'11 h).
kolo NAND san ulaza postaje logicku kolo OR san invertovanih ulaza).
r· 142 Poglavlje 3: Nivo digitalne logikc 3.2 Osnovna kola digitalne logikc 143

A+B AB Na kraju teme o ekvivalentnosti kola dcmonstriracemo izncnadujucu cinjcnicu da


AB A+B
isto fizicko logicko kolo moze da izracunava razlicite funkcije u zavisnosti od upo-

=C>- =L>-
(a)
=L>- D- (b)
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-
AB A+B A+ B AB stavlja logicku jedinicu. a 3,3 volta iii 5 volti logicku nulu, dohijamo tabelu istinitosti

=D- :D- (c)


n- (d)
=LY- 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
Slika 3-7. Altcrnativni simboli za neka logicka kola: (a) NAND. (b) NOR. (c) AND. (d) OR.
ov sv ov 0 1 0 1 0 1
Da bismo kolo prctvorili u oblik NAND. vodove koji spajaju izlaze iz kola AND sa ula- sv ov ov 0 0 1 1
1 0
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 sv sv sv I 1 1 1 0 0 0
I
dobiti od promenljivih A i B pomocu kola NAND iii NOR kada im se ulazi objedine. Obra- (c)
(a) (b)
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). Slika 3-9. (a) Elektricne karakt<:ristikc uredaja. (b) Pot.itivna logika. (cl Ncgativna logika.

A XOR
A Na taJ nacin funkciju odrcduje konvcncija kojorn sc napon u voltima prcslikava u
8
B logickc vrednosti. Ukoliko nc naglasimo drugacijc, uhuduce ccmo se drzati pozitivnc
0 0 0 lugike, tako dace nam izrazi logicka jcdinica. istinito i visok napon oznacavati is to,
0 1 1 has kao i izrazi logicka nula, lal:no i nizak napon.
1 0 1 A

1 1 0 8
--------- 3.2 OSNOVNA KOLA DIGITALNE LOGIKE
(a) (b) 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-
A A ko. Danas su graclivni blokovi po pravilu moduli koji sadrze brojna logicka kola. U
B B narednim odcljcima detaljnije cemo prouciti gradivnc biokove i saznati kako se kori-
ste i kakn se mogu napraviti od pojedinacnih logickih kola.

A A 3.2.1 Integrisana kola


B 8 -- Logicka knla sene pravc i ne prmlaju pojedinacno. vee u ohliku modula nazvanih in-
tegrisana kola kngl. lnfL•gmted Circuits. lCl iii samo cipmi. lntcgrisano knlo je sili-
(c) (d)
cijum,;ka plocica velicinc oko 5 x 5 mm na koju su naneta logicka kola. Mala
Slika 3-S. (a) Tabcla istinitosti za f"unkciju XOR. (b)-(d) Tri kola za njcno izrai'unavanje. 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

~l
1"!~

144 Poglavlje 3: Nivo digitalnc logikc 3.2 Osnovna kola digitalne logikc 145
~~--~--~~~

-----

od logickih kola na cipu. iii sluzi za napajanjc. odnosno uzemljenjc. Cip s dva red a nozi- Postojc brojni cipnvi slicni ovom. po ceni od nckoliko ccnta. Svaki SSI cip ima
ca spoija i intcgrisanim kolom iznutra. ll tehnici je poznat kao paket s dva red a nozica brojna logicka kola i do dvadcsctak no/.ica. Racunari su sedamdesetih godina kon-
(engl. Duallnline Package, DIP), ali ga svi zovu samu cip. zanemarujuci tako razliku struisani pomocu vclikog broja ovakvih cipova, ali sc danas na jcdan cip stavlja citav
izmcdu silicijumske plocicc i njenog kucista (paketaJ. Ovakvi cipovi najCesc'c imaju 14, proccsor i velika kolicina (keS) memorije.
16, 18, 20. 22. 24. 28, 40. 64 iii 68 nozica. Vcc'i cipovi Sll kvadratnog ohlika, s nozicama Sva logicka kola u nasim razmatranjima nmzcmo smatrati idealnimjer se signal na
na svc cctiri ivicc iii na donjoj strani. izlazu pojavljuje odrnah cim sc dovede signal na ulaz. U rcalnosti se signal na izlazu
Cipovi sc mogu grubo svrstati u kla~e prema broju logickih kola koja sadr:lc. Tak- nc pojavljuje odmah jer postoji kasnjenjc logickog kola (engl. gate de far) zbog vrc-
va klasifikacijajc zaista gruha, ali jc ponckad korisna. mcna prostiranja sign alai vremcna obavljanja prekidacke funkcijc. Najcesc'e vrcdno-
sti kasnjcnja su izmcdu I i I 0 ns.
Kola s niskim stcpcnom intcgracijc (engl. S111all Scale lntegrarcd, SSI ): ud I do I 0
Sadasnji nivo tchnologije omogucava da se na cip srncsti skuro l 0 miliona tranzi-
logickih kola.
stora. Pu;to sc svako elektronsko kolo moze sklopiti ud logickih NANil kola, mogli hi-
Kola sa srednjim stepenorn integracijc (engl. J'v!i·diwn Scale lntegruted, MSI): od stc pomisliti da cc proizvodaci napraviti viscnamenski cip sa, na primer. 5 miliuna
lO do I 00 logickih kola. ;-.; 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-
Kola s visukim stcpcnorn intcgracije (engl. Large Smlc lnrcgrurcd, LSI): od I 00
bro prodavao. Da bi se tehnologija iskoristila na pravi nacin. ociglcdno je cia odnos
do l 00.000 logickih kola.
innedu broja logickih kola i hroja no7ica trcha da bude stu veci. u narednirn t>deljcima
Kola s vcoma visokirn stepcnorn intcgraci.Je (engl. Vcrv Lurge Smlc lntegruted. razmotriccmo jednostavna MSI kula u kojima sc logicka kola internu komhinuju da hi
VLSI ): vise ml l 00.000 logickih kola. obavila funkcijc za kojc je potreban samu ogranicen broj spoljnih izvoda (nozica).
Ove klase imaju ra;Jicita svojstva i koriste sc na razlicite nacina.
SSI cip obiC·no sadr.i:i ocl dva do sest nczavisnih logickih kola, od kojih sc svako 3.2.2 Komhinadona kola
mozc koristiti pojedinacno. kao sto je navcdenu u prcthodnim odcljcirna. Stika 3-10
U mnogim primcnama digitalne lug ike potrcbno jc kori,titi kclla s visc ul<Va i vi:;e
prika:wjc SCillll uohicajenog SSI cipa sa cdiri logicka NAND kola. Svako od ovih kola
izlata. kod kojih su i;lazni signali jednuznacno odrcu~·ni trcnutnim vrednustima ulaz~
ima dva ulaza i jedan izlaz. ~to znaci da po~toji ukupno 12 nozica. Osim toga. potrcb-
nih signata. Tak vo kolu sc wve kornhinaciono kolo (engl. cn111hinutinnul circuit). Nc
najc i no/.ica za napajanje ( V("(.) i jcdna za ULClllljenjc (G N D). stu imaju svi ci povi. N a
pnnasaju se sva kola taku. Na primer, kolo ~ mcmorij..,kim clcmcntima mole da ge-
cipu sc pored prvc no/.ice ohicno nalazi urcz kako bi sc laksc uocila njcguva orijcn-
nerise izlaznc signale koji zavi:,L· nc ,;~uno ud ula:r.nih signata. vee i od fapatm'enih
tacija. Da bi sc u clcktricnim semama i;.heglo pretrpavanjc. obicno sc na njima ne pri-
\Tcdnosti. Kolu b'Jilll '>C impkmcntira tahela istinit()~ti. bo sto jc npr. kulo sa -;li"-e
kazuju ni napajanjc ni uzcmljenjc. niti nci~koriscena logicka kola.
3-3(aJ. tipican je primer kumbin:tcionog kula. U mom odeljku anali;iraccmo n.::ka
cesto korisc'cna kmnbi naciona kola.
Vee

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 ~c 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.
f
'edam od O'>alll lugickih kola X'D uvd. •.5c d:tti nulu; pre<ht:tlu kl'I'J .-\'ill d:tL't: vrcd-
Urez
nust ()iii l, stu ;:avisi ml \TL'dll<l\tl \Jcbbr:uwg ulaznog signala. Svako j._,l[O \~lJ clLii~
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 smc~titi na l:ip sa 14 nn/.iL':L

UzemljenJe

Slika 3-10. SSI cifl sa c'ctiri logicka kola.


146 Poglavlje 3: Nivo digitalne logike 3.2 Osnovna kola digitalne logike 147

Do Vee

D1
Do-
I I
Do
Dl D1
D2
Dz
D3
D3 1------- F
D4
Ds Ds
D4 D,- D6
DJ- DJ
Ds

D6 A B C A B C
Ia) Ib)
DJ

A!Aisttn 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.
A B c
Dekoderi
Stika 3-11. Kolo multipleks~ra 'a osam ulaza.
Sada cemo. kao drugi primer, anali.r.irati kolo koje kao ulazni podatak prihvata
Pornocu multiplcksera mozemo implementirati runkciju \'ci'inc sa slike 3-3(a), kao n-bitni broj a zatim na osnovu njega bira samo jedan od 211 iLlaza koji postavlja na
sto je prika,cano na slici 3-12! b). Za svaku kombinaciju signala A, B i C bira se jedan vrednost logicke jedinicc. Takvo kolo koje je na slici 3-13 prikazano zan= 3, zove se
od ulaznih signaLt. Svaki ulazjc spojen iii .w V,c (lugickajedinica) iii jc uzcmljcn (lo- dekoder.
g·cka nula). Algoritam ozicenja ulaza je jednostavan: ulaz Di isti jc kao i vrcdnost u Da biste razumeli C:ernu sluzi dekocler, zamislitc malu mcmoriju sa osarn C:ipova od
rcdu i tabcle istinitusli. Na slici 3-3(a), rczultati u rednvima 0. I. 2 i-+ su nule, tako da po I MB. Cip 0 ima adrese od 0 do I MB, cip l ima adrese od l MB do 2 MB itd.
su odgnvarajuci ula.r.i uzemljeni; rczultati u ostalim rcdnvima sujedinicc. pa sc ula.r.i Kada sc od memorije zatrazi sadrzaj s neke adrese, lri njena najznaC:ajnija bita omo-
p·wezuju s logickomjcdinicom. Na taj naC:in sc pomocu C:ipa sa slikc 3-12(a) moze im- gucavaju biranje jednog od osam C:ipova. Ta tri bita u kolu na slici 3-13 jcsu tri ulazna
plementirati svaka tahcla istinitosti s tri promcnljive. signa\:1- A, B i C. Zavisno od njihovih vrcdnosti. na samo jednorn od osarn izlaza
Upravu smo ohjasnili kako se multiplckserski cip mozc upotrebiti za biranje jcd- - D0, .... D 7 - pojavice se logiC:kajedinica; na ostalirn izlazima pojavice sc logicka nu-
nug ocl vise ulaz.nih signala i kako sc pomocu njega moze implcmcntirati tabcla isti- la. Svaki izlaz aktivira jedan od osam memorijskih cipova. Poiito sc samo na jednom
nitusli. Drug~\ njegova rnoguca primcna jc u obliku paraklno-serijskog prctvaraC:a izlazu pojavljuje logiC:ka jedinica, aktivira ~e sarno jedan cip.
podataka. Kada seX bitova podataka doveck na uLvc. a 1atim sc upravljaC:ki signali Rad kola sa slike 3-13 jednostavan je. Svako logicko kolo AND ima tri ulaza, od
kumbinuju tako da redom daju binarne vrednosti od ()()()do Ill, X ulaznih hitova cc kojih je prvi A iii A . drugi B ili B, a treci C iii C. Svako logicko kolo se aktivira dru-
sc na izlam pojavljivali serijski ·-·jedan za drugim. Paralclno-sc:rijski prctvarac poda- gacijom kombinacijom ulaznih signala: D 0 komhinacijom A 8 C, D 1 kombinacijom
taka obicno se koristi u tastaturi, gde se pritiskom na hilu koji taster po pravilu defi- ABCitd.
nise 7-bitni iii 8-bitni broj koji semora poslati preko telefonskc !inijc hit po hit.
!'

148 Poglavlje 3: Nivo digitalnc logike 3.2 Osnovna kola digitalne logike
-----------------
------------------------ 149

~gicko kola EXCLUSIVE OR


-- ~--/
A0 ------¥\ ~

80 ___).)

A--.------ A,------¥\
B,___).)
A=B

B D
A2 ------¥\
B2 _ _ j )

c-~----~4---~-
AJ------¥\
BJ__j)

Slika 3-14. Jclinustavan -1-bitni kornparatur.

gen~ri.~e 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
Slika 3- U. ll~k<l<kr .. ~ u ~--.
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
Komparatori
dodc iz fabrike. svih 1200 osiguraca radc. Da bi programirao matricu, korisnik izlaze
Jus jcdno koristw kol,, je i llv. komparator: on fl''rcJi che uLvnc reci ..kdnusta- cip visukom naponu. pri ccmu odred~ni osiguraci prcgorevaju.
van komparatnr s:t slikc 3-1~ ima d':a ula:.na signala. ,\ i B. du~inc ~ bita. i gcneri;c lzlaLni deo kola sastoji se ocl sest logickih kola OR. od kojih svako ima do 50 ulaza
logicku jeclinicu ako su signali j<:dnaki. ili logicku nulu ak<l nisu. K<lmpar:thli. ~c Dls- koji odgovaraju broju izlaza iz Iogickih kola AND. Matrica (50 x 6) koju zadaje kori-
niva na logickom k<llu .\:uR 1i,kl_ju-:'ivu ILl). kojc: gcneri~e lugicku nulu ako su ulazni snik. udrcctuje koji od potencijalnih spojeva stvarno postoje. Cip ima 12 ulaza. 6 iz-
signali jcdnaki. a l\•gicku jcdinicu ak\> su nejcdnaki. Aku su dve ulaznc reci jednc,h\ l:tza, izvod za napajanjc i izvod za uz~mljenje (ukupno 20 izvoda).
sva cetiri kola XUR mnraju gcncri,;tti vrednnst 0. i'h cctiri si~·nala sc taJa mn/c pri- Da hismo na primeru vidcli bko se moze koristiti PLA cip, razmotrimo ponovo
menili dperacija OR: ak\1 _:e rc;cultat IJ. uLt;nc rcci su jcdnake. 11 suprntihlll1 ni~u- U kolo sa :-.like .3-3(b). Ono ima tri ulaza, cctiri logicka kola AND,jcdno logil:ko kolu OR
na.:;cm primcru. n:t kraju snwupmrchili logick\l K<Jio :\('!\ da bismo (sa aspeku k:•ns- i tri invertor-a. Uz odgovarajuca unutrasnja spajanja, PLA cip lllOZC da izracuna istu
nika) testu cbli •:i(c ,misLt. tj. da hi \(>giC·ka jcdinica o7nal:av:ib j<·dnak,,q, a !ogicb funkciju pomocu tri od svojih 12 ulaza. pomocu cetiri od svojih 50 logickih kola AND
nula ncjcdnakDst. 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 korist~ kao ulazi u logic-
Programabilni logil-ki uiwv i b kula OR.) U stvari, isti PLA cip mozc sc tako interno prcspojili cia islovremcno iz-
Vee SilHJ viLkli ,!a sc proiuoijne funL.ije 1labcle i'tllliro~ti) nwgu kt>n:-,trui-,ati r~,cunava l:etiri funkcije s!icnc slozenosti. Ogranicavajuci faktor za jednostavne
tako ;tu se pornucu lugiC·kih J..ola .\-'D izrctCunaju pwizv~JJi na kuje se zari:n pt in1cni funkcije jeste hroj ulaznih promenljivih clok za neke slozcnije funkcijc ogranicavajuci
uperacija \JR. Op\ti cip J.."jim ,c mole ohrazovali 1.bir prutzvocLJ zove ~c programa- Ltktor mugu biti logicka kola A:--.ID iii OR.
hilni logicki niz kng-1. f'rn::,twnllw/;/c {t>!.;ii·Arru\·. PLA1. ajedan njeg<J\'prirner pri- lako 'e PLA cipovi kuji se mugu programirati na lieu mcsta jus uvek koristc, za
kaLan jc na .-;liei 3- i .". On i:nc1 ula;c: _,a I_:> prumenljivih. K,Hnplcmenl sv:tkog ulaza 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,
-r:"1
I.

150 Poglavljc 3: Nivo digitalnc logikc Osnovna kola digitalne logike 151 I
·11
. I
I I
A aj osigurac Do D, o, D, D, Ds o, o, I
I I
nije ulaz
Ia 1
c~---r~----r-~---+~-----r~----~"----T-~----~

So s, s, s3 s, Ss s, s,
Slika J-16. kdnohitni pumerai' ulevo i lllksno.

49 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 S0 , ... , S7 . 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
6 izlaza
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.

Slika J-15. Programahilni logicki niz sa 12 ulaza i 6 izlaza. K vadratici precbtavljaju o'iguracc Sabiraci
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. 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
Sada mozcmo da uporcdimo tri razlicita nacina na kojc smo implcmentirali tabelu operaciju sabiranja 1-bitnih celih brojeva prikazanaje na slici 3-17(a). U njoj za svaki
i'tinitosti sa slike 3-3(a). Kada koristimo SSI kompunente. trcbaju nam cctiri cipa. red pustoje dva rezultata: zbir ulaznih vrednosti A i B i !Xenos na slcdecu (levu) po-
S druge strane. mozerno proci i s jednim MSI multiplekserskim cipom. kao na slici ziciju. Kolo koje izracunava i bit zbira i bit prenosa prikazano je na slici .3-17(b ). Ovo
3-l:?.(b). Najzad. mozemo iskoristiti i samo cetvrtinu jednog PLA cipa. Ako je potreb- jednustavno kolo jc poznato pod opstim imenom polusabirac (enlg. fwlfwider).
no implement irati vise funkcija. ocigledno je da su PLA cipovi najpovoljniji izbor. Za lako polusabirac moze da se iskoristi za sabiranje najmanje znacajnih bitova dve
jednostavnije funkcije. verovatno su pogodniji SSI iii MSI cipovi. 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
3.2.3 Aritmeticka kola 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
Vreme je da sa MSI kola opste namcne preL1emo na kombinaciona MSI kola spe-
bitova l. Pre1ws ima vrednost I ako A i B istovremeno imaju vrednost I (levi ulaz u
cijalno podesena ;:a aritmeticke operacije. Pocecemo s jednostavnim 8-bitnim pome-
logicko kulo OR) iii ako samo jed no od njih ima vrednost I, a Unos takode ima vrednost
racem (engl. shijier). zatim cemo preci na sabiracc (engl. adders), ana kraju cemo
I. Dva polusabiraca zajedno generisu bit zbira i bit prenosa.
analizirati aritmeticko-logicke jedinice koje u racunaru zauzimaju central no mesto.
r:
,,.
Poglavlje 3: Nivo digitalne logikc 3.2 Osnovna kola digitalnc logikc 153
152

Logicko kola XOR Da bismu Llobili jednostavan primer brzeg sabiraca. podelimo J::Z-bitni sabirac na
1'//
dve 16-bitne polovine: gornju i donju. Kada sabiranjc zapocne, gornja polovina nccc
A B Zbir Prenos moci nista da radi tokom 16 ciklusa sabiranja jer ne zna unos za svoj prvi bit.
0 0 0 0
: l ' ] Zbir Medutim, razrn<~tritc skdecu rnodifikaciju ovt: seme. Udvostrucimo gornju polo-
vinu u dvc paralclne grane. Tako ce se kolo sastojati od tri 16-bitna sabiraca: jedne
0 1 1 0
donje polovinc i dve gornje polovine, UO i U1, koje rade paralelno. U UO se kao pre-
1 0 1 0 nos dovodi nul a: u U j sc kao pre nos clovodi jedinica. Sada obc gornje polovinc mogu
1 1 0 1 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 ~a­
hiranja. Takav sabirac -;e 7.ovc sabirac s biranjcm prcnosa (engl. carry selel'! wider).
Pre nos Opisani trik se mnze ponO\ iti da bi sc 16-bitni sabirac napravio od udvojcnih S-bitnih
sabiraca itd.
Stika 3-17, (a) Tahcla istinitosti za 1-hitno sahiranjc. (b) Knill polusabiraca.
Aritmcticko-logicke jedinice
Unos
I 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-
A B Unos Zbir Prenos nih kula 1.a bitove na pojedinim pozicijama. Slika 3-19 jednostavan je primer takvog
Zbir

0 0 0 0 0 ; l ' )) 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-
0 0 1 1 0
visi m! ;,1ga da li ulazi F 0 i F 1 za hiranje funkcije sadrze bitovc 00, 0 I. I 0 iii II (hi-
0 1 0 1 0 narnu). Obratite pa2t~u nato da A+ B oznacava aritmeticki zbir bmjeva A i B. a nc
0 1 1 0 1 l3ukl<ll ('jlcraciju OR.
L lev om donjcm uglu sl ike. nasa ALUjedinica sadrzi 2-bitni dckodcr koji gcnerise
1 0 0 1 0
;,ignalc 1:.1 aktiviranjc (:etiri operacije na osnovu upravljackih signala F 0 i F 1 • U zavis-
1 0 1 0 1
nosti ml 1 r~dnosti signal a F0 i F 1 hira se samo jedan od cetiri ulaza za aktiviranje. Na
1 1 0 0 1 laJ nacin sc umugucava da rczultat izabrane funkcije prode kroz kraJnje logicko kolo
1 1 1 1 1 OR du izla1~1.
- ~~ le1 uili gurnjem delu slike nalazi sc jcdinica za izracunavanje funkcijaA AND B,
Pre nos . \ 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-
(a) \bl der:t ima '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.
Slika 3-lll. (aJ Tahcla istinitosti 1.a potpuni sahirac. (h,i Kolll putpu:J<>g ·;:.biraca.
CJsim sto se .\ i B mugu koristiti kao argumenti za logicke iii aritmetickc opcracijc.
' ' ~i ki od •JI th ulaza moguce je negiranjcm (EN.\ iii ENB) postaviti na vrcdnost 0. Moze
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. 'e duiJiLi i ,\ ako se 'ignaiiNVA postavi na vrednost I. Upotrcbu signala !NVA, ENA i
Unos za krajnju dcsnu p()!iciju hardverski je mck pmlcsen na nulu. Ova\..av tip sabi- ENB ubr:tdiL'emo u pogla\·lju ..J.. U normalnim okolnostima. signali ENA i ENB irnaju
raca ZOVC SC sahiraC S postupninl prcnOSOnl (engl. rif>p/c c'UIT\' utfdcr) jl'f, U ll:l]g<'l't'nl 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.
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 sahira•~i lJ ,kstllllll dunjcm uglu ALU jedinice nalazi se potpuni sabirac za izracunavanje
koji ncmaiu ()\ill vrcmcthkll ;adr\ku ( r:ldc br::c) i zaro se po pravilu cesce kuristc. 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 3.2 Osnovna kola digitalne logikc 155

Unos
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
INV A-+---~
A lzlaz izmeltu dogadaja, u rnnogirn digitalnim kolirna se za sinhronizovanje koristi radni
takt. Radni takt (engl. clock) u ovorn kontekstu predstavlja kolo koje neprekidno
ENA~
ENB
B ' ;,a - II I emituje impulse odredene duzinc u odrcdcnim vrcrnenskim razmacima. Vremenski
interval izmedu dve odgovarajuce ivice dva uzastopna impulsa poznat je kao ciklus
Zbir
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-
,------------t--------------t---:
I L.ava pomocu kristalnog oscilatora.
I
I
I U racunaru se mozc dogoditi vise stvari unutar jcdnog ciklusa radnog takta. Uko-
I
I
I Iiko se one moraju odvijati odredcnim redosledom, ciklus se mora podeliti na pod-
I
I
I ciklusc. Uobicajeno je da se veca vremenska rczolucija ostvaruje tako sto se na
I
I
I osnovni vod gencratora radnog takta povezc kolo s dctinisanim kasnjcnjcm kojc ge-
I
I
I nerise sckundarni signal radnog takta, fazno pomercn u odnosu na primarni signal,
I
I
Potpuni __: kao na slici 3-2l(a). lz vrcmenskog dijagrama na slici 3-21(b) vidi sc Ja sc na taj
Fo I : I I I
sabirac : nacin obezbcduju cctiri vrcmenske reference za diskrctnc dogadaje:
I
I
I
_______________________ )I I. Uzlazna ivica signaLt C I.
Ft l
I
I 2. Silazna ivica signala Cl.
I
I
I
l ____ f________________ _ 3. Uzlazna ivica signala C2.
4. Silazna ivica signala C2.
Dekoder
Pre nos
Cl Sl__ll____lL_
Slika 3-19. Jednohitna aritmcticko-logicka jcdinica.

01a projcktantu omogucavaju da konstruise ALU jcdinicu bilo koje sirinc (u bitovi- C2 __s-u-L__fL
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
(a) (b)
rcwltat za I, omogucavajuci izracunavanje zbirova. kao sto suA + I i A + B + I.
I
I I

__r:i_r-7-L__n-
A~-~-~-~~-~-~
A7 8 7
A I : I I : I : : i
C
~
111111!11

~~~ f~~L-~~_fL~~J[_~~~~N I
.

B ', ~ : : : : : : :
O, O, O, O, 01 00 : r--1 : M : M
c ....i....J
: 1
!__i_j
i 1 ',
L-.l...J L-
I I I I
Unos Pre nos I I I
1
I
I
I
I
I I I
I
I 1 I I

Slika 3-2(1. Osam I hitnih ALl J sekcija povezanih u i-1-bitnu ALL' jcdinicu Signali za aldiviranje (c)
i invcrtovanjc nisu prikazani.
Slika 3-21. tal Generator radnug takta. (bi Vremcnski dijagram gencratora radnog takta.
(L') Gcnerisanje asimetril·nog radnog takta.
"!"i

156 Poglavljc 3: Nivo digitalnc logikc 3.3 l\lemorija 157


-----

Vc·Livanjem Jogauaja za ra1.1icite ivice signala mozc se postici njihovo ispravnn


s-~--\
vremen~ko rasporeuivanje, Ako je potrebno vise od cetiri vrcmenske reference unutar s 'D--.-'- Q """' u Q A B NOR l
jednog ciklusa radnug takta, na njegov osnovni vod moze se povczati jns sekundarnih
0 0 1
vodova s kolima razlicitog kasnjenja.
U nekim kolima projcktanti su zainteresovani vi~e za vremenske intervale nego za 0 1 0
tackc na vrcmcnskoj osi. Na primer, uslov za neki dogadaj mo7.e biti visok nivo si- 1 0 0
gnaL, C 1. a Ill' njcgova uz1awa ivica. Us1ov za Jrugi dogadaj mozl:' biti visok nivo si-
1 1 0
gnaL, C2. ,\ku su potrebna vise od dva razlicita intervala. obezheduje se vise radnih Q ~Q
R R----1
tak.\u\ a ili s:: omogucava da se vi~oki nivoi dva radna takta dclimicno preklope u vre-
mcnu. U ovum po,lcdnjem slucaju rnogu se razlikovati cctiri razlicita intcrvala: Cl Ia) (b) (c)
c
A~!) C2, .\:--.:D C2, c I !\Nil C2 i 1 ,\ND C2.
Naglasimo da su radni taktovi simetricni ako je trajanjc visokog nivoa signalajed- Slika 3-22. (a) !\OR kc u 'lanju 0. (b) :--lOR kc u stanju I. (c) Tabcla istinitosti za opcraciju 1\0R.
nako traj~mju njihovog niskog nivoa, kao na slici 3-21 (b). Da hi sc gcnerisao asimc-
Zamislirno sada da Q nerna vrcdnost 0, vee La daR iS jos uvek imaju vrednost 0.
trican ni; impuls~t. osnovni radni takt se fa1no poruera ponhK'u kola za kasnjcnje, pa
Gornjc: logicko kolo na ulazima ima vrcdnnsti 0 i L pajc na izlazu Q = 0 ita vrednost
se na taj osnuvni signal primeni operacija AND, kao stoje slucaj sa signalorn C na slici
sc pruslec1uje u donje logicko k,Jlo. Ovo stanje, prikazano na slici .1-22(b), takodc je
J-21 (c).
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
3.3 MEMORI.JA vrednosti 0 i I, sto dajc vrednost 0, a ne 1. Zakljucak jc jednostavan: za R = S = 0 lee
Memorijajc najva7.nija komponcnta svakog racunara. lkz njc racunari ne bi izgle- ima dva stabilna stanja koja cemu uznaCiti sa 0 i L u zavi.-,nosti od vreclnosti signala Q.
dali onako kako danas izglcdaju. l'vknwrija se koristi i za skladistcnjl' instrukcija na- Analizirajmo sada uticaj ulaznih vrednosti na stanje lcea. Pretpnstavimu da S do-
mcnjcnih izvrsavanju i za skladi;tenje podataka. U narednim odeljcima obradicemo bija vrcdnost 1 dokje Q = 0. Ulazni signali u gurnjc logicko kolo tada imaju vrednosti
o-;nnvne kmnponentc mcmmijc, poce\si od nivoa logickog kola. da bisrno shvatili l i 0. pa je izlaz. Q = 0. Zbog toga oha ulazna signal a u donje lugicku k.olo dobijaju
kaku ona radi i kaku se njcnc jedinice kombinuju u vel ike memorijske module. 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 st~tnjt.:
i. ,Deaktiviranjcm" (postavljanjem vreclnosti ulaz.nog signala Rna I)- tj. kadaje lee
3.3.1 Lee kola
u stanju 0 - ne postizerno nista jer izlazni signal iz donjcg kola NOR ima \ rednust 0,
Za memoriju velicinc jcdnog bita polrebno nam jc elektronsko kolo kojc moze ne- bez obzira nato da li su na ulazima vrednosti 10 iii 11.
kaku da Japarnt i" prcthodnc ulazne vrcdnosti. Takvo kolo se mozc sklopiti od dva Slicnim rezonovanjem zakljucujemo da postav lj~mjem ulaznog signala S na vrcd-
1ogicka kola "lOR, prema slici 3-22(a). Shena kola se rnogu napraviti i pomocu logic- nost 1 kadaje Icc u stanju Q = l ne postizemo nista, ali da pustavljanjem ulaznog sig-
kill kola NAND, ali o njima nccernu govoriti jer su koncepcijski identicna udgovara- nala R prebacujemo lee u stanje Q = 0. Sve u ,vcnw, kada ,e S za Lrenutak pode.>i na
juc'im NOR verzijama. vrcdnost 1, ll'i' zavr~ava u stanju Q = 1, bez nbzira na stanje u kom je prethodnu biu.
Kolo na slici 3-22(a) se zove SR Icc (engl. SR latch). Onu ima elva ulaza: S (Set- Slicnu. po'>tavljanjem ulaza I< na vrednost 1 prehacujcmo lee u stanjc Q = 0. Na laJ
Ling) za aktiviranjc i R (Resetting) za dcaktiviranje. Kolo irna i elva izlaza: Q i Q koji nacin kolo .,panni·' Ja li je prethodno bilo aktivirano iii deaktivirano. Racunarskumc-
se, kako cemo ubrzo videti. me(tusobno elopunjuju. Za razliku od kombinaeionih ko- moriju rnozemo napraviti na o'novu ovog svuj,tva.
la, izla711i signali iz lee kola nisujedin~tveno odredeni trcnutnim ulaznim signalima.
Da biste ra;umeli o ccmu se radi, prctpostavimo da S i R imaju vrednost 0, slo je Sinhroni SR lecevi
tokom vcceg Jc!a vremena i tacno. Objasnjenja radi. prctpustavimo dalje da je i Q = C:e,to je pogodno imati lee koji moze da llll'llja ,;voje stanjc: \alllo ll odredc:nim
0. Posto se signal Q vraca u gomje kolo NOR, oba njegova ulaza imaju vrednost 0, pa periodima. Da bi se to postigl,), treba malo inncniti u'nuvnu ;emu kula prema '>lici
njc·gov i.dazni signal ima vrednost I. Ta vrednost sc dovodi u donjc logicko kolo, koje 3-23: na taj nacin se dohija tzv. sinhmni SR le~ \engl. clud,cd SR Ltuch).
tada na ulazirna irna vrednnsti 1 i 0, sto znaci dace na izlazu hiti vrednost Q = 0. Ovo
stanjc je konsistcntno- -;lika 3-22ta).
158 Poglavlj~ 3: Nivo digitalne logik~ 3.3 Memorija 159

s o-~-----1

X) I Q b ' Q

Radni Jl Jl-r-----.
takt

JJ I Q X)---+-- Q

Stika 3-23. Sinhroni SR lee.


Stika 3-24. Sinhroni D 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 3.3.2 Flip-flopovi
S i R. i lee nc menja zateceno stanjc. Kada signal radnog takta ima vrcdnost I. efckat U mnogim kolima neophodno je uzorkovati signal u odrcdcnorn trenutku i tu
kola AND nestaje i Icc reaguje na signalc SiR. Uprkos svom imenu (Clock), dodatni vrednost uskladistiti. U takvim kolima, zvanim llip-ftopovi, stanje se nc mcnja u tre~
ulaz u kolo ne mora cia bucle povezan sa generatorom radnog takta. Kada ulaz ima nutku kada radni takt ima vrednost I, vee tokom prelaska iz nule ujedinicu (uzlazna
vrednost I, kazemo daje kolo aktivno (engl. enable, strobe), a to znaci da reagujc na ivica signala) iii iz jedinice u nulu (silazna ivica signata). Tada trajanjc impulsa rad-
signalc SiR. nog takta postaje nevazno sve dok se prclazak odvija brzo.
Dosad smo uspdno izbegavali pitanje sta se dogada kada S i R istovremeno imaju Da histe boljc shvatili razliku izmedu flip-f1opa i leca. ponovic'emo jos jeclnom.
vrednost I. Za to postoji dobar razlog: kada se signali R iS vratc na nulu, stanje kola Flip~ flop reagujc na iviru impulsa. a lee na nivo impulsa. lmajte na umu. medutim.
postajc neodredeno. Jeclino konsistcntno stanjc za S = R = I jcstc Q = Q = 0, ali cirn da se u literaturi ovi izrazi ccsto mdaju. Mnogi autori govore o llip~t1opu. a mislc na
se oba ulazna signal a vrate na nulu. lee mora da predc u jedno ocl svoja elva stabilna lee i obrnuto.
stanja. Ako bilo koji od dva ulazna signata clostigne vrcclnost 0 pre onog drugog, si- flip-flop se mozc napraviti na razlicitc nacine. Na primer, ako postoji nacin da se gc-
gnal koji je duze zadrzao vrcdnost l ima prednost, on diktira stanje kola. Ukoliko bi neri~e vrlo kratak impuls na uzlaznoj ivici radnog takta, taj impuls bi sc mogao dovcsti
sc oba ulazna signata vratila na vrednost 0 istovremeno (sto je sasvim ncverovatno). u D lee. Takav nacin zaista postoji i odgovarajuL'e kolo jc prikazano na slici 3-25(a).
lee bi presao u jedno od elva stabilna stanja na slucajan nacin.

Sinhroni D Iecevi I i
Stanje neodredenosti SR lcca (kada je S = R = l) ne mozcmo potpuno da razrcsi-
~n
I '
mo, ali ako moditikujemo kolo, mozcmo da ga izbegnemo. Na slici 3-24 prikazano je

Id
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
bMJD c i
= I. Kada je D = 0, a signal radnug takta irna vreclnost I. Icc sc prcbacuje u stanjc Q ~!---.,
, T
= 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 l~bitnumemoriju. Uskladistena vrednost uvckjc (a) -JlI I I
raspolozi va na izlazu Q. Da bi se tekuca vrednost ulaza D ucitala u memoriju, na ulaz-
ni radni takt dovodi sc pozitivan impuls. 1.-·· - I
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 Vrerne
takvi sklopovi.
(b)

Stika 3-25. Ia) CJ..:ncrator .,ignala. (bJ Sinhroni prika1. signala na cctiri mcsta u kolu.
160 Poglavljc 3: Nivo digitalnc logike 3.3 Memorija 161

lJ prvi mah moze it:gledati dace izla;: iz logickog kola AND uvek biti 0 jer operacija iz nivoa I u 0). Mnogi lecevi i flip-flt)povi (aline svi) imaju i izlaz Q, a neki imaju i
,\ND primenjena na signal i njegpvu invertovanu vrcdnost uvek daje nulu, ali je situa- dva dodatna ula!,a: Set iii Preset za aktiviranjc (prelazak u stanje Q = I) i Reset ili
cija ipak malo slozenija. lnwnor izaziva malo, ali def1nisano kasnjenje signala i to Cfeur Dl deaktiviranje (prelazak u stanjc Q = 0).
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 3.3.3 Registri
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- Flip-llopovi postoje u raznim kontiguracijama. Jednostavna kontiguracija koja
gnalom raclnog takta. nc:kl1!iko nanosekundi. sto 1.avisi od vrste invertora. saclr2i dva nezavisna D tlip-flopa sa signalima za deaktiviranje (CLR) i aktiviranje
Signal na mcstu c ta!--m!c k:t,nt. ali samo zbog konacne brzine kojom se prostire (PRJ, prika1anajc na slici .l-2X(a). lako sc nalazc na istom cipu sa 14nozica, ova dva
(brzinc svctlosti). Ako ''·' !lJcrna mesta u i c medusohno uda!Jcna, recimo. 20 mikm- flip-tlopa ncmaju nikakve mcdusobne veze. Potpuno je drugacija situacija kod oktal-
mctara. to kasnjenje cc hiti \:iltHl (),()()()I ns. ~to je apsolutno zanemarljivo u odnosu na nog flip-flopa prikanmug na slici 3,-2X(b). Osamtotuda izraz ,oktalni") D flip-flopo-
vrcrnc pmlaska signab kro1 invertor. Na taj nacin. 1.a poti·ehl' ovog primcra, signal na va ne samo da ncmaju svoje izlazc Q i signalc za aktiviranje, vee su svi ulazi raclnih
mcstu c rnu/:cmo smatrati identicnim signalu na mcstu a. taktova povczani zajednn i spojeni s no/:icom II. Flip-llopovi izgledaju kao onaj sa
Kada sc na ul:lzc /J i c primcni operacija AND, rczultat ce biti kratak impuls. kao na slike 3-27(d). ali efekte invcrzionih kruzica ponistava dejstvo invcrtora vczanog na
slici 3-25(bl. cijajl' sirina ~ odredcna kasnjcnjcm invcrtora (najcdce 5 ns iii manje). noz.icu II, tako da llip-flopovi mcnjaju stanjc prilikom pre Iaska iz nule u jcdinicu.
lzlaz iz logic!--ug kola AND upr~tvo je takav impuls, samo pomcren za kct~njenjc u ~a­ Svih osarnulaza za deaktiviranje (CLR) takode su povezani ;:ajcdno, tako da svi 11ip-
mom kulu ,\ND: un jc prik:u.an u vrhu slikc .l-25(b). Opisano vremcnsko pumcranje flopovi prela;:e u stanjc 0 kada se na nozici I pojavi vrednost 0. Ukoliko se pitatc
;nal:·i dace D kc biti aktiviran posle fiksnog intcrvala nakon uzlazne ivice signala z:t~to sc signals nozice II oclmah invertuje na ulazu, a zatim ponovo invertujc na sva-
radnog tal--t:t. ali ono nc utice na sirinu impulsa. Kocl mcmorije sa ciklusom radnog kom CK signalu, znajtc da prvi, skupni invertor u stvari slu;!.i kao pojacavac jer signal
takta lld 5() tb, impuls duzine 5 ns koji upravlja uzorkovanjem mozc da budc dovoljno mozda nije dovoljno ~nabn da aktivira svih osam paralelno vezanih tlip-11opova.
kratak. a onda s,~ i celo kolu moze napraviti prcma slici 3-26. Napominjcmo da je

-1~ ~ ~ -f1-
opis~1na 1--unstrukcija f1ip-flopa jcdnostavna i zato se lako ra;:ume. ali se u praksi ko-
ristc mnug" slo2:cnije konstrukcije.

D ----------------------~------~
Xl • Q -tJ -t_j ~
Ia) (b) Ic)
-t:J 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
b I Q 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 kori~ti kau S-bitni regi-
star. Dva tak\-a cipa mogu se koristiti paralelno kao 16-bitni rcgi:,tar ako im ~c ,-.pojc
Slika 3-26. D tlip-tlup. udgovarajuce nuZice. I i II. Registre i njihovu uputrebu detaljnije L'emo 'lbraditi u
puglavlju 4.
Standardni simbuli p(>mocu kojih se oznacavaju lecevi i f1ip-f1opovi prikazani su
n:1 sliL'i -~-27. S!ika 3-27ta) pribzuje lee koji mcnja stanjc kadaje nivo radnog takta 3.3.4 Organizacija memorije
!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 lzve,no je da smu napredovali od sasvimjnlnostavnl' 1-bitne memurijc na :-,lici 3-2-+
11.1 ui:11U imajL; karaktcristicne .,'iiljkc"'. Flip-tlup na slici .l-27(c) mcnja stanje pri do X-bitne memnrije na slici .l-28(h). Ali. da bi,mo napravili stvanw \eliku mcnwr:JIL
nailas\.:u u;:I:I/Ilc' ivice signala radnog takta (prclaz iz nivoa 0 u 1 ). duk onaj na slici potrehnajc clrugacija nrganizacija ll kujoj CC lllOCi da SC adrcsiraju pojcdinacne IT(i. {!J-
3--27tdJ menj~l 'lanje pri naibsku silazne ivice signala gcncratora radnog takta (prelaz 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 upi~ujc
162 Poglavlje 3: Nivo digitalne logikc 3.3 Memorija 163

potpunu 3-bitnu rec. lako ukupan kapacitet ove memorije od 12 bitovajcdva nadmasujc Iako organizacija memorije prikazana na slici 3-29 u prvi mah moze izgledati sloze-
kapacitet naseg oktalnog flip-flopa, za nju je potrebno manje nozica i, sto je jos vaznije, no, onaje u stvari jednostavnajer se njena struktura ponavlja. Memorija ima osam ula-
konstrukcija se lako moze prosirivati i tako napraviti mcmorija zeljene vclicine. za i tri izlaza. Tri ulaza su za podatke (I 0, I 1 i 12), elva za adrese (A 0 i A 1), a preostala
tri ulaza za upravljanje: cs za biranje cipa (Chip Select), RD za razlikovanje operacija
Vee 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 1clrugacijom 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
GND poclataka u odgovarajuce Jlip-flopove. Upisivanje se obavlja samo ako signal cs irna
Ia) 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.
Vee 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.

GND
lbl
Stika 3-2S. (a) Dvojni D tlip-llop. (hi Oktalni llip-flllp.
.......
164 Poglavljc 3: Nivo digitalnc logikc 3.3 i\lcmorija 165
--~--·

Ulazni podac1
Slika 3-30(d) prikawjc invcrtujuCi hafcr (engl. inverting buffer). koji sc ponasa
1,---- 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
lo 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 vi~c 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.

A,
Ao
Rec 2
~J
Upravljan)e
(a) (b)
~o-

lei
=r- (d)

Slika J-JO. 1:11 Nc·invcOrtujuci bafer. (hi Efckat nL·invertujuL'eg hafcra kadajc upravlpCki signal
visnk. lei Etckatnc·invertujuc'c" hakra bclaje upravljacki signal nizak. (d) lnvertujuci hafer.
Rec 3

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-
cs----------~-"
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 ul~11 ;a adrc:siranje .--\:'. U ovakvoj strukturi naje!ikasnijc jc da broj
RD----------+-~
rcl:i u memoriji bude stepen hwja 2. ~di hruj bitova u rel:i mozc Ja bude proizvoljan.
Tchnulngi)a intcgris~1nih J,.oia dubm se mozc i.->koristiti u cipovima cija unutrasnja
0"
olfUKtura Jl<llla\ Jp isti dvodinKiLcionaJni ohrazac- memorijski cipovi Sll ideaJan pri-
mer n 1cne primcne. S n;qxetkPm tcl11h1logijc. broj bitova koji se mogu srnestiti na cip
OE Omogucav"nje izlaza CS • RD • OE
r'tstc, pn f1Ll\'ilu Lh:t[:llll na svakill IS mcscci (Moorcov zakon). Vcci cipovi ne isti-
Slika 3-29. Logickt Jijagrant Incmorijc velic·ine-+ :X. 3. Svaki red preLbtavlja JCtli:u"d ~ctiri skuju uvek 01\C 11\JlljC s trzisLtjer pott~l;inja /.avisi oJ brujnih cinilaca. kao stu Sll kapa-
3-hitnc rcci. Opcracijama citanja I urisivanja uwk sc cita ili upisujc ccb rc(·. 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.
Takvi prekidal'i. na -,recu. postnjc. Slika 3-:\0(al prikazujc simbol neinvertujuceg Z.l SVctku velictlllllllc''llUrije P••Stnji vise nai'ina organiwvanja cipa. Slika 3-31 pri-
hafcra (engl. nonim·ating hu!f(T). On ima ulaz i izlaz ,:a pudat~c. Lt<' i ui~1z za upra- bzuje dve mugucc urg~mil.aL·ije jednog .slarijcg mcmorijskog cipa kapacitcta 4 Mb:
vljal'ki signaL Kada upravljacki .signal ima vrcclnw;t I. hafcr sc punasa kan provod- :5 L2K < s i ..J.I)•)()K X l. n reb~\ n:q)[)nll'llllli da sc veliCina mernorijskih cipova obicno
nik. prcma slici 3-30(bl. A kada upravljacki stgnal ima vrc:dn<'st 0, bafcr ,;e l'<ltusa n:t\odi u bilu\ima. a nc u baitm ima. pa ccmo se ovclc drzati tc konvencije.) Na slici
kao otvoreno kolo, prcma .slici 3-30(cJ: to iLglcda kao da jc n~ku kle~tim~t od-,ckal' 3-3 i I a) viclimu da jc pot reb no 1') ulaza za adrcsiranje jcdnog oJ 2 19 bajtova i osam
Z.icu za izlaz podataka. Mcl1utim. za razliku od pristupa s kk;timc~, vcza sc mo/.c ro- ul;ua .~a pndarkc: !a citanje iit upi:<i\ai1JL' izabranog bajta.
novo uspostaviti za nekDliko nanosekundi tako sw cc sc prumcniti nivo uprav ljaCkog
signata s logickc nule na logiCku jcdinicu.
Poglavlje 3: Nivo digitalne logike Memorija 167
166

Trebalo hi nesto reCi i o terminologiji. Na nekim nozicama aktivnost izaziva visok Veliki memorijski cipovi cesto sc organizuju u obliku matrice n x n koja se aclre-
napon, ana drugim nizak. Da bismo izbegli zabunu, umesto da navodimo daje napon sira po redovima i kolonama. Na taj nacin se smanjuje broj potrebnih noziea na cipu,
visDk iii nizak, U oba slucaja CCffiO govoriti daje signal prisutan (engl. asserted), S[O ali se i usporava adresiranje za koje se u torn slucaju trose dva ciklusa- jedan za adrc-
znaci da izaziva nekakvu aktivnost. Tako za ncke nozice prisutnost signala znaCi daje siranje reda i drugi Z<l adresiranje kolone. Da bi sc bar malo ubrzao rad u ovakvoj or-
napon na njima visok, dok za druge to znaci daje napon na njima nizak. NoZice na ko- ganizaciji, nekim memorijskim cipovima moze se zadati adresa reda, a zatim niz
jima je prisutan signal niskog nivoa oznacene su simbolom s gornjom crtom. Tako je adresa kolona kako bi se pristupilo uzastopnim bitovima u redu.
signal CS prisutan na visokom nivou, a signal cs na niskom. Suprotan izraz od pri- Pre mnogo godina najvcci memorijski cipovi bili su organizovani na nacin prika-
sutan je odsutan (engl. negated). Kada se nista posebno ne desava, signali na nozica- 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
m<. su odsutni.
Vratimo se sada nasem memorijskom cipu. Posto racunar po pravilu sadrzi vise me- napravila mernorija sa 32-bitnim rccima, potrcbna su 32 paralclna cipa. Oni imaju
morijskih cipova, neophodanje signal za biranje cipa. Za to se koristi signal CS (Chip ukupan kapacitet od bar 16MB, dok su kod cipova 512K X R potrebna samo cetiri pa-
Select). Kadaje taj signal prisutan, Cip sc aktivira. Isto tako, potrebanje i nacin za raz- ralclna cipa, ali jc njihov ukupan kapacitct samo 2MB. Da hi izbcgli pravljcnje me-
likovanje operacija citanja i upisivanja. Signalom WE (Write Enable) oznacava se da morije od 32 cipa, proizvoctaci sada imaju porod ice cipova sirine 4, 8 i 16 bitova.
se podaci ne citaju, vee upisuju. Na kraju, signalom OE (Output Enable) omogucava Situacija sa 64-bitnim recima je, naravno, jos gora.
sc izlaz podataka. Kada taj signal nije prisutan, izlaz iz cipa je odvojen od kola. Na slici 3-32 prikazani su primeri dva savn~mcna cipa kapaeiteta 512 Mb. Oni
Na slici 3-31 (b) koristi se clrugaCija sema adresiranja. Ovaj Cip je interno organi- imaju cetiri interne memorijske banke od po 128 Mb, za cije su biranje potrebna dva
zuvan ll matricu od 204i\ X 2048 1-bitnih celija, sto ukupno claje kapacitet od 4 Mb. ulaza. Organizacija na slici 3-32(a) tipaje 32M x 16, sa 13 ulaza za signal RAS, 10
Da bi se adresirao cip, prvo sc izabere odgovarajuci reel tako sto se njegov l 1-bitni ulaza za signal CAS i 2 ulaza za biranje bank c. Ovih 25 signal a zajedno omogucavaju
bmj postavi na ulaze za adresiranje, a zatim se aktivira signal RAS (Row Address adresiranje 2 25 internih l(J-bitnih celija. Nasuprot tome, na slici 3-32(b) prikazanaje
Strobe). Posle toga se na ulaze za adresiranje postavi broj odgovarajuce kolone i sema tipa 12RM x 4, sa 13 ulaza za signal RAS, 12 ulaza za signal ('As i 2 ulaza za bi-
a1tivira signal CAS (Column Address Strobe). Cip reaguje tako sto prihvata ili ispo- ranje bankc. U ovom slucaju, 27 signala omogucavaju adresiranjc 2 27 internih 4-bit-
I !
nih cclija. Odluka o broju redova i kolona za dati kapacitet donosi se na osnovu
rucuje jcdan bit podataka.
inzenjcrskih argumenata. Matrica ne mora da bucle kvadratna.

AO---+- AD- -oo


At---+- At-
A2-- A2-- -ot
A3- -oo A3- -o2
A4- A4--
A5- l-ot A5-
-o3
A5-
A6---+- Memorijski AB- -o4 A6
Memorijski -o2 MernoriJski Memorijski
A7---+- cip 4096K x 1 A7- -o5 A7
AS---+- cip 512K x 8 -o3 AS- cip32M x t6 AS cip 128M x 4 -oo
A9---+- -oB
(4Mb)
-o4 14Mb) -o A9----- A9 -ot
AtO---+- Ala- 1512Mb) -o7 AlO (512Mb)
All- -o5 All- Alt- -o2
--os
A12-- -oB A12- At2- -o3
-o9
A13---+-
At4-- -o7 RAS- ~o1o
A15
A16-- CAs- RAS-
CAS-
_j~on
-012
RAS-

A17- CAS--

A18~ -ot3
t
---
CS WE DE
Banko-
Bankt-
-Dt4 Bank a -
Bank 1
CS WE DE -ot5

(a) (b) t t t
cs WE DE
f
-
CS WE
-
DE
Stika 3-31. Dva nacina organiwvanja illt:lllorijskog cipa kapacitcta .t Mh.
Ia) (b)

Slika 3-32. Dva nacina organimvanja m~morijskog cipa kapaciteta 5 I 2 Mb.


,,
Poglavlje 3: Nivo digitalnc logikc 3.3 l\lcmorija 169
168

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

ocekuju brojne izmene, EPROM cipovi su mnogo ekonomicniji od PROM Cipovajer 3.4 PROCESORSKI CIPOVI I MAGISTRALE
;e mogu iznova upotrcbljavati. EPROM cipovi po pravilu imaju istu organizaciju kao
Naoruzani informacijama o SSI, MSI i memorijskim cipovirna, mozemo poceti da
i staticki RAM cipovi. EPROM 27C040 kapacitcta 4Mb, na primer, ima organizaciju
sklapamo sliku potpunih sistema. U ovom odeljku najpre ccmo se pozabaviti opstim
prikazanu na slici 3-32(a), koja jc svojstvcna statickoj RAM rncmoriji.
aspektima racla procesora na nivou digitalne logike, sto ukljucuje i logicki raspored
Od EPROM cipajos je holji EEPROM (Electrically erasable PROM) Cip ciji sc
nozica (engl. pinout), tj. znacenje signala na njima. Posto su procesori tesno povezani
sadrzaj urnesto izlaganja ultraljuhicastoj svetlosti u specijalnoj komori moze obrisati
s magistralama, u ovom odeljku ukratko cemo predstaviti i principe projektovanja
JCdnostavnim dovodenjem impulsa. Osim toga, EEPROM se moze programirati na
magistrala. U narednim odeljcima, na detaljnirn primerima konkretnih procesora i
lieu mcsta, dokje EPROM potrebno staviti u specijalan uredaj za programiranje. Nc-
111 agistrala objasnicemo kako se oni povezuju.
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 3.4.1 Procesorski Cipovi
mnogo su skuplji. Oni se koriste samo u situacijama kada je postojanost memorije Svi savremeni procesori prave se na zasebnnrn cipu. Na taj nacinje njihova komu-
primaran cinilac. nikacija sa ostatkom sistema dobro definisana. Svaki procesorski cip ima vise no?.ica
Najnovija vrsla EEPROM cipa jc ticS memorija (engl. flash rnernory). Za razliku (izvoda) preko kojih se mora obavljati sva komunikacija sa spoljnim svetom. Neke
od EPROM memorije, koja se hrisc izlaganjem ultraljubicastoj svctlosti, i EEPROM nozice sluze za izlazne signale; druge pak sluze za ulaznc signale a nekc i za jedne i
memoriJe kod koje se brisu pojedini bajtovi, kod tles memorijc se brisu i upisuju ci- druge signalc. Kac!a shvatimo funkciju svih nozica, razumecemo kako procesor sa-
tavi blokovi. Slicno EEPROM mcmoriji, fte!i memorija sc moze hrisati bez vadcnja raduje s memmijom i ulazno-izlaznim urcltajima na nivou digitalnc logike.
cipa iz kola. Mnogi proizvmlaci prave kartice s ftd memmijom kapaciteta do 2GB, Postojc tri vrstc izvocla proccsorskog cipa: za adrcsiranje, za podatke i za upra-
koje se u digitalnim fotoaparatima koriste urnesto filma za skladi,~tenje snimaka, alii vljanje. Svi izvocli sc spajaju sa oc!govarajucim izvodima memorijskih iii uLu.no-izlaz-
u druge svrhc. Jcdnorn ce tlcS memorija mozda zameniti cvrsti disk, sto ce biti izuzet- nih cipova pomocu skupa paralelnih linija (magistrale. engl. hus). Kada treha da
nn pobuljsanjc, s obzirom nato dajoj sc vrlo hrzo pristupa (50 ns). Glavni inzenjcrski preuzme odredenu instrukciju, procesor prvo njenu adresu u memmiji smdta na svoje
problems flcs memorijom jeste lll sto se ona ,,trosi" posle oko I 00.000 hrisanja, dok ulaze za aclresiranjc, a zatim preko jeclnog iii vise upravljackih ulaza salje signale koji-
cvrsti diskovi traju mnogo god ina, be; obzira nato koliko se puta njihov saclrzaj hrise. ma obavestava memoriju kako zcli da procita rec (na primer). Mcmorija odgovara tako
Pregkd raz.lil:itih vrsta rncmorije dat je na slici 3-33. sto datu rec smciita na ulazc procesora predviclene za podatke i signalizira da jc opera-
~1--·---
--.----------· cija ubavljena. Kada proccsor primi signal, on preuzima rec i izvrsava instrukciju.
[vrsta Kategorija Brisanje Menjanje Neposto- Tipicna upotreba
Mozda ce pri izvrsavanju instrukcije hiti potrebno cia sc ocitava iii upisuje vise
pojedinacnih janost
bajtova rcci. pace sc opisani postupak ponoviti za svaku rcc. Citanje i upisivanjc podataka
I I kasnije cemo detaljno objasniti. Zasad je va/,r1o razumeti da procesor s mcmorijom i
'I SRNA--( Cit;;nje/ . - Elektricno Da Da Kes drugog nivoa
ulazno-izlaznim ureclajima komunicira tako sto saljc signale na svoje izlaze iii ih
!--~£li_SIV~~e_ ~

prihvata sa svojih ulaza. Nijc moguc niJcdan drugi oblik komunikacije.


1 DRAM 1 CltanJel Elektricno Da Da Glavna memorija
[ __Lufllsivanj~- -- 1---
(stara) Ova glavna pararnetra koji odreduju performanse procesora jesu hroj ulaza za
Elektricno Da Da Glavna memorija adresiranje i hroj ulaza i izlaza za podatke. Cip sa rn ulaza za adrcsiranjc mozc cia
JSDRAM I Citanje;
adresira do 2 111 memorijskih lokacija. Uobicajcne vrednosti za m su 16, 20, 32 i 64.
l ___ ~_j_I!EI:'~anJE:_ (nova)
IROM I Samo citan rNije Ne Ne Kucni aparati (velike Slicno, cip san ulaza iii izlaza za poclatke u jeclnoj operaciji mozc da procita ili upise
I moguce serije) jcdnun-bitnu rcc. lJohiC:ajene vrednosti zan su 8, 16, 32, 36 i 64. Procesor sa 8 ulaza
~-- -----+-------- tNi;--~ Ne Ne . Oprema (male serije) za IJlldatke procitace 32-bitnu rcc u cetiri operacijc, clok c'e onaj s 32 ulaza za podatke
PROM
1 Samo titan
1

~----~---- ~oguce_--+---- ----t--- __ to uracliti u jcdnoj jeclinoj opcraciji. Prema tome, cip sa 32 ulaza za podatke jc, mnogo
i EPROM i Ugiavnom I UV Ne Ne Prototipovi uredaja brli, ali i neosporno skuplji.
L _ [citan1e svetloscu Osirn ulaza koji sluze za adresiranje i za prijem, odnosno slanjc podataka, svaki
[ EEPROMT~iavnorn- j_ Ele:ic~o Da _:_:__ _ _ ~ototipovi uredaja procesor ima i odreden broj upravljackih ulaza. UpravljaC:ki ulazi btinu o protoku i pra-
1 1 CltanJe vovremenosti prenosa poclataka u proccsor i iz njega, a imaju i druge namcnc. Svi pro-
f-~----r;;-:-·--·-----

1 Fles ; C1tan]e/ IElektricr:_te Ne Film za digitalne ccsori sadrze po jedan ulaz za napajanje (ohicno naponom od +3.3 volta iii +5 voltil,
: _l! up1sivan1e _L___ _ _ _ _ ______L___
fotoaparate
1---- -----

Slika 3-33. Upuredni pn.ogkd razlicitih vrsta memorije

~.~
...,
~L ~
~~

t?"l
Poglavljc 3: Nivo digitalne logikc 3A Procesorski i'ipnvi i magistralc 173
172

za uzcmljenjc i za signal radnog takta (kvadratni talas detinisane frckvencijc), a ostali Izvodi za arbitriranjc neoplmdni su za regulisanje saobracaja na magistali kako bi
izvodi se vcoma razlikuju od cipa do cipa. lpak. upravljacke ulazc mozcmo grubo svr- se razre.~ila situacija kada elva urcdaja istovremeno zele daje koriste. Kada se obavlja
stati u sledcce glavne katcgorijc: arbitraza na magistrali, i procesor (kao i svaki drugi uredaj) mora uredno da podncse
zahtev za njeno korisccnjc.
I. Upravljanjc magistralom. Neki proccsorski cipovi projektovani Sll za saradnju s koproccsorima specijalizo-
2. Sistemski prckilli. vanim na primer. za racunanjc u formatu pokretnog zan~za, a ponekad i za rad s gra-
3. Arbitriranje magistrale. fikom. Da hi se olaksala komunikacija izmedu procesora i koprocesora, na proce,oru
4. Signaliziranje koproccsora. postoje specijalni izvocli za prihvatanjc zahteva i odgovaranje na njih.
5. Status. 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
6. Ostalu.
racunar. a ncki pak postoje samo ,zbug kompatibilnosti sa starijim ulazno-izlaznim
lf nastavku c'emo ukratko opisati svaku od navedcnih katcgorija. Kada kasnije bu- uredaj i rna.
dcmo razrnatrali Pentium-+. UltraSPARC Ill i cip 8051. objasnjcnja cc biti detaljnija.
Na slici .\-3-+ prikazan jc proccsorski cip koji kuristi navedcnc grupe signala.
3.4.2 Racunarske magistrale
Adresiranje 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
Podaci one mogu biti interne (unutrasnjc), kada sluzc za razmcnu pmlataka izmeltu pmce~ora
j aritmeticko-logicke jedinicc, iii eksternc (spoljasnjc), kada ga povezuju s memori-

Upravljan:e magtstralom
--- Status 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-
Sistemski prekiclt =:::.
-
----
____ Ostalo


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-
Simbolza elektncno
'1.> +5v uzemljenje lmasu)
gistrala (engl. system bus). Ona se sastojala od 50 do 100 paralelnih bakarnih vodova
~ odstampanih na maticnoj ploci, s pravilno rasporccknim konektorima za prikljuci-
Simbci za si~nal /
radnog laktJ Napajnn:e naponom od +5 volti vanje memorijskih i ulazno-izlaznih bu·tica. Savrcmcni licni racunari po prav ilu ima-
ju namcnsku magistralu izmedu procesora i memorije. i (bar) jednu magistralu za
Slika ..3-J..t. Lot:l~l-...'J tna~cnj~ izv1•J~t J'rocc...,!lr~t Str~liL\..' prikazuju ~n1cr signala (ulaL iii izla1.). ulazno-izlaznc uredajc. Na slici J-35 prikazan jc minimalan sistem s jednom memo-
hra1~.1 k,,,,llinijct ozn."'"'" da ,._,/.a runk~i.JU l..,n,ti vi.\c i;voda. Taj hroj sc uvck navmli
u; >!JL~CifiLtL'i_iu h.unt..r\_~tnog procc~ora.
rijskom i jednom ulazno-izlaznom magistralom.
Magistrale se u litcraturi simbolicno prikazuju ,debclim" strclicama, kao na ovoj
ll\Odi 1:1 UfravljctnjC 111~tgistrJlOil1Uglavl1Uil1 prcno.se signale od proccsora kama- slici. Postoji. mcdutim. tina razlika izmedu simbola debele strelicc i linije s kosom cr-
gi:-.trali 1t<> 'll ula:.ni c.ign;ili 1.a rnemorijskc i ulcuno-illazne cipove) kojima se saop- ticom i brojem bitova pored nje. Kada su svi bitovi istog tipa (na primer, bitovi adresc
·itct\a da pn:n:sccr tlUCC da fli'Ocita pDJat:!l.; iL memorije, da ga U nju upise iii da obavi iii podataka), tada sc obicno koristi kosa crtica. Kada postoje vodovi za adrcse. podat-
1vku tlrugu tlpc'raciju. Procc:sor uvc izvode kPristi da bi upravljao drugim delovima ke i upravljanjc, po pravilu sc koristi dcbcla strelica.
sistc·m:t. tj. c!a bi im '~l<lp\tiu koje opc:racije trc-ha da obave. Projektanti procesora mogu da koriste proizvoljnu internu magistralu; ali, da bi se
Lcvodi /.a :;i-;km\kl' j1l'<C:kicL' SLI ui:ui z:t si;rnk kl•jc procesoru salju ulazno-izlazni na sistcmsku magistralu mogle prikljucivati i maticne ploce nezavisnih proizvodaca,
uredap. U vec'ini si-;tcrna pr•>e.:s,,r 111\J/:c da ilcdu/:i ulazno-iL.laznomuredaju da tapoc- moraju postojati strogo definisana pravila o nacinu rada magistrale koja moraju
ne udrcdcnu op<O'r:tciju. :1 sam ,!a se iskijuci i da radi ncstn drugo dok ulazno-izla:.ni postovati svi uredaji koji se na nju prikljucuju. Sva ta pravila nalazc se u tzv. proto-
urcCaJ n:.: obavi s\ t'j po:;:t<l. Kada u],lltw-i:Ltzni uredaj zavrsi posao. njegov kontrolcr kolu magistralc (engl. bus pmtocol). Osim njega. moraju postojati i speciiikacije di-
pref-<> ydnog l'U tih i;:vDtLt sal.Je signa/ kujim prckida rad proccsma cia bi procesor mcnzija i ozicenja da bi maticne plocc razlicitih proizvodaca mogle da sc uklopc u
nwgcto da nl'radi rez.u!tall~ t 11.1 prim:cr. ,b prnvc:ri jcsu li tokom preutimanja iii slanja kucistc i pove/:u mehanicki i elektricno (u pogledu napona, rcdosleda signaLt itd.).
pndat:tLtllct,t;tl,_, gr~~kc). >Jch:i proccsl'll inwju spccijalan izvod preko koga potvrdu-
ju prijc1~1 :;ignaia ;a sistcmc.ki prckiJ tcn:cl. iu:crrttjil signa/).
-=
Poglavlje 3: Nivo digitalne logikc Procesorski cipovi i magistrale 175

Procesorski cip 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.
Magistrale Memorijska
Zbog toga Sll glavni ureuaji s magistral om po pravilu povezani preko cipa koji se zove
Registri / ~ Kontroler magistrala
Memorija predajnik signala za magistralu (engl. bus driver). koji nijc nista clrugo do cligitalni
magistrale
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
Ulazno-izlazna magistrala 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,
Slika 3-35. Eacunarski sistem :; vii;e magistrala.
a neki drugi, gde je potrehno oz.iceno OR- otvoreni kolcktori.
U racunarskorn svetu naveliko se koriste razlicite magistrate. Meuu nekoliko po- Magistrala, slicno procesoru, ima vodove za adresiranje, za podatke i za upravlja-
znatijih, prevazilknih i aktuelnih magistrala spadaju: Omnibus (PDP-~). Unibus nje. Meuutim. nc mora obavezno postojati poklapanje izmectu hroja izvoda procesora
(PDP-II). Multi bus (~OR6), VME magistrala (oprema tizickih laboratorija), iBM PC i signala na magistrali. Na primer, neki procesori pomocu tri izvoda saopstavaju zele
magistrala (PC/XT), ISA magistrala (PC/AT). ElSA magistrala (R0386), Microchan- li da citaju iii da upisuju podatke u memoriju. zele li da citaju podatke sa ulazno-iz-
ncl (PS/2), Nubus (Macintosh), PClmagistrala (mnogi PC racunari). SCSI magistrala laznog urel1aja iii da u njega upisuju. Tipicna rnagistrala moze da imajedan vod za ci-
(rrnogi PC racunari i radne stanice). Universal Serial Bus (savremeni PC racunari) i tanje podataka iz memorije, drugi za upisivanje podataka u nju. treci za citanje
Fire Wire (elektronski ureuaji siroke potrosnje). Svet bi verovatno lepse izgledao kada podataka ulazno-izlaznog ureuaja. cetvrti za upisivanje poclataka ll njega. u takvom
bi we rnagistrale, osirnjcdne. jcdnostavnn nestale s lica zemlje (iii mozda osim dve'l). slucaju hi izrnedu procesora i magistrale morao da se nade cip za dekodiranje koji hi
N azalost, u ovoj oblasti nema velikih izgleda da c'e standardizacija uspeti jer je u na- usaglasio signale, tj. prctvorio 3-bitno kodirani signal procesora u pojedinacne signa-
VL:dene nekompatibilne sistcme vee ulozeno previse novca. lena magistrali.
Pocnimo sada objasnjavanjem nacina rada magistrala. Ncki od ureuaja prikljuce- Projektovanje magistrala i njihov rad vrlo su slozcne temc kojima su posvecene ci-
nih na magistralu aktivni su i rnogu da iniciraju prenos podataka preko nje, dok su tave knjige (Anderson et al., 2004; Solari i Willsc, 2004 ). U osnovna pitanja pri pro-
dLrgi pasivni i rade tek kada dobiju zahtev. Aktivni ureuaji su glavni (engl. masters), jektovanju spadaju i sirina magistrate, njena radna rrekvencija, arbitriranje i operacije
a pasivni su sporcdni iii podrcdcni (engl. slaves). Kada procesor zatrazi od kontro- sa samom magistralom. Svaki od ovih cinilaca sustinski utice na hrzinu i propusni op-
lcra diska da procita iii upise blok podataka. on se ponasa kao glavni ureuaj, a kon- seg magistrate. Detaljnije cemo ispitati svaki od njih u narcdna cetiri odeljka.
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- 3.4.3 Sirina magistralc
deno jc vise tipicnih kombinacija glavnih i sporednih urcuaja. Memorija ni u jed nom
Sirina magistrale je nesto na sta se pri projektovanju odrnah obraca paznja. Sto
slucaju ne mole da bude glavni urectaj.
rnagistrala ima vise vodova za adrcsiranje, to ce procesor moci direktno da adrcsira
T - ------ ,
, Sporedni uredaj Primer
vise memorije. Ako magistrala ima n vodova za adresiranje. procesor ih moze iskori-
i Glavni uredaj
stiti za adresiranje 2 11 razlicitih memorijskih lokacija. Za rad s velikim rnemorijama
P'ocesor Memorija Preuzimanje instrukcija i podataka
magistrala mora imati mnogo vodova za adresiranje. Ovaj zakljui'ak je ocigledan.
Procesor i11iciranje prenosa podataka
Problem je to sto za sire magistrale treha vise zica nego za one uze. Sire magistrale
Pro cesar Oavanje instrukcija koprocesoru zauz.imaju vise mesta (npr. na maticnoj ploci), a potrebni su im i veCi konektori. Zbog
------ ------- ----

, Ulazno-izlazni uredaj i Memorija Direktno pristupanje memoriji (OMA) toga magistrala biva skuplja. Prema tome. mora se nac'i kompromis izmeuu rnaksi-
,_ - - --- 1--
, Koprocesor _l_Procesor Koprocesor preuzima operande od procesora rnalne vclicine memorije i cene sistema. Sistem s magistralorn koja ima 64 voda za
Slika 3-36. Primeri glavnih i spurednih uredaja na magi,trali. adresiranje i 232 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.
I~
!

176 Poglavlj~ 3: Nivo digitaln~ logikc 3A Procesorski cipnvi i magistrale 177

Na osnovu ovog zapaianja mnzemo zakljuciti da su mnogi konstruktori sistema Da bi sc prevazi.~ao problem s prdirokim rnagistralama, projektanti se ponckada
hili kratkovidi, sto je kasnije duvelo do nezeljenib posledica. Prvohitni IBM PC ral:u- opredeljuju za tzv. multipteksirane magistrale (engl. multiplexed bus). U ovom
nar imao je proccsor 8088 i 20-hitnu magistralu za adresiranje, kao sto jc prikazano na rdenju, vodovi za adresiranje i podatke nisu razdvojeni vee zajednicki (postoje, reci-
slici 3-37(a). Navedenih 20 bitova omogucavalo je cla adrcsira l MB mcmorije. mo, 32 voda i za aclresiranje i za podatke). Kad magistrala pocne da racli, vodovi se
Kada se pojavio sleclcci prucesorski cip (802861, lntdje odlucio da aclrc,ni prustor kori~te za prenos adrese, a kasnije se kori~te za prenos podataka. Na primer, za ope-
prosiri na 16MB, pa je morao dodati jus cetiri voda na magistrali (ne dirajuei prvo- raciju upisivanja podataka u memoriju to znal:i da se adresa mora preneti do memorije
bitnih 20 vodova zbog: kompatibilnosti sa starijim sistemima), kao stu jc pnkat:tnu na pre nego .<to SL' na magistralu postavc poclaci. Kada bi postojali odvojeni vodovi, adre-
slici 3-3 7 (b). N azalost, zbug dodatnih adresnih vmlova moralo se dod at i i upra- sa i pndaci bi se mogli istovrerneno nalaziti na magistrali. Mullipleksiranjem vodova
vljal:kih vmlova. 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.
20-b1tne adres8

20-b1tne adres 3.4.4 Vremensko uskladivanje rada magistrate


Prcma tome kako sc rad magistrala vremenski usklaJuje, one sc svrqavaju u dve
Upravljrm)e jasno podcljene kategorije. Sinhronc magistrate (engl. svnchronous bus) imaju vod
20-b1tne adrese
Upr av!janje 4-bltne adrcse pove:ran s kristalnim oscilatorom. Signal jc kvadratni talas cija je frekvencija obicno
8088 80286 80386 ~
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.
4-bitne adrese Upravljan)c
UpraviJ31lJC asynchronous bus), nernaju ustaljeni radni takt. Ciklus magistrale moze biti hilo koje
8-bitne adresE

~
potrebne duzine, a ona ne mora biti ista za sve parove urcuaja koji komuniciraju. Una-
Up1 a'll)an)e stavku cemo detaljnije objasniti oba tipa magistrala.
UpraviJan)e
Sinhronc magistralc
(a) (b) (c)
Kao primer rada sinhronc magistrale, razmotrimo vrcrnenski sled dogaJaja na slici
Slika J-J7. Pr(\Sin\anjc aJrcsne magistrak tukulll vn.?:mcn~L 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
Kada .'e p<•ja\ j,, prl1cc-;ur 80_18(1. dudato je jo.\ .\est adrc,nih vodo\a i jns upra- taktom procesora brzine _:; GHz i vise, malo je PC magistrala s kracim ciklusom. Na
vljal:kih vodilV~\. kan na -;iici 3-)7(c). Reztdtujuea magi·:trala (EISA) izgledala je primer, popularna PC! mag:istrala obicno radi s taktom od 33 ili 66 l'vii-Iz. Razlogc
mnug<l ncurednije nl'gu da jc ud puC:ctka projektn\ ~tna ,;a 32 \ oda. zbug kojih danasnje magistrale rade sporo vee smo naveli: nesimetricnost magistrate
T<>ko1;1 vremen~1 ra~tc putreba z~1 vec'im brojem adre·,mh voduva, ali takoJe i za i potreba za kompatihilnoscu sa starijim sistcmima.
veeim brujem vodova 1.1 pud:1tke. m:~cla iz drugih r~Jitl)p. !'ropthni opseg magi•male u nasem primcru dalje c'erno pretpostaviti cia citanje podataka iz memorije traje
u odnw:u na pudatke mui.e ->e p<n eeati na Jva aaC:111a: si-.r~tee!1JCill ciklusa magi,trale 15 ns ud trcnutka kada se adresa stabilizuje. Kau sto cemo ubrzo videti. za citanje reei
( \"eei hroj prem1.-,a u sckundi) iii pmsirivanjern magistr:lle podataka (vise bitova po hiee potrebna tri ciklusa. Prvi ciklus pocinjc: nailaskom uzlazne ivicc signala raclnog
prL·nuo,u 1. Rad lllagi-;tr;llc sc 1nu/.c ubrzali. ali postojc tdkt>ee t.;\lo ;u, signali duz raz- takta T 1, a treei se zavrsava nailaskom uzlazne ivice signala T+, kao sto je prikazano
liC:ilih Vtlduva putuju ne7tl:tlml raziil:itim brzinama. ;loy prubkm poznat kao ncsi- na slici. Obratite paznju nato da mlazne i silaznc ivice signala nisu vertikalne. jer ni-
mctricno~t magistralc (l'n:c:l. !ms 1h:c\\ ). Stu je magi.-:tral:.i brL:, njcna nesimetricnust jedan clektricni signal ne moz.e trcnutnn promcniti svoju vreclnost. U ovnm primeru
je i;.r;t:>enija. tJretpostavicemo data promena traje I ns. Na istoj vrcmenskoj skali uporedo su pri-
c:brzanjem rad;t magic,tLlil' onemoguc'uje "e i kurnpatihilno-;r sa starijirn sio,temi- kazana stanja radnog takta i signal a ADDRESS, DATA. 1\tREQ. RO i WAfT.
ma. Starijc m<ttil:;lc piuCc·. pru.Jcktov.ule za spurijc magi,tr:tie. neee raditi s novom Pol:etak ciklusa T 1 detinisan je uzlaznum ivicom sign ala radnog takta. Tokum dela
maglsLr:thlm. l)isb,ll:iif..,wanje ,r~H·iiJ ploCa unesrec'iee Llktl nji!mvc vlasnikt:. tako i ciklusa T 1 proccsor smdla adresu 7.eljenc reci na vodove za adresiranje. Pus to adresa
njiilu\·e pruizvu,lac...:. pa ,c pcrt"urm,uJsc po pr;l\ i!u poholj::;,,._,:1_ju takL1 sto "c dodaje jos nijc jedna vrednost, kao signal radnog takta, na slici jc ne mo7.emo prikazari jednom
vml•lVa /.a pndatkc \ -;Jika 3-,' 7 ). Ka<l ~l\J JlJL)Lele occkivali. pu,illiJilll prosirivanje ma- linijom. vee pomoeu dvc liniJe koje se ukrstaju u trenutku kada se aclresa menja.
gistr,dc ne tbjc ()ptim:d:w rc~cnj~·. IG'vl PC racunr1ri 1 r.ji:wvi ,lcd!oenici prctrpeli su. Osencena podrul:ja su nehitna, pa tako vidimo da jc sadrzaj voclova za podatke nebi-
na prim.:r. lllhCJh> pr,;\irivanjc prakticno i:;te magi:;tr;tie ,a 3 na I fJ linija za podatkc, tan sve dok dohro ne zadcmo u ciklus T 1.
a ntim i na 3:2 linije.
178 Poglavlje 3: Nivo digitalne logike 3.4 Procesorski cipovi i magistrale 179 :r ,,m
'I I ,
:1: l'

Posto su signali za adresiranje dobili sansu da se stabilizuju na svojim no vim vrcd- Tokom prve polovine ciklusa T 3 , memorija postavlja podatke na odgovarajuce vo-
!I;
ii II;
\II

nostima, uspostavljaju se signali MRE<.) i RD. Prvi oznacava da se pristupa memoriji dove. U trenutku kada signal radnog takta u ciklusu T 3 opadne, procesor Cita podatke 1 !i
(a ne ulazno-izlaznom uredaju), a drugi, kad postoji, oznacava citanje, a kad ne posto- i procitane vrednosti smesta u interni registar. Kada procita podatke. procesor negira i :::
ji. upisivanje. Posta memoriji za isporucivanjc adrese treba 15 ns od trenutka kada signale MREQ i RD. Potom, ako je potrebno, pocinje drugi ciklus rada s memorijom
adre'a postane stabilna (sto je negde unutar prvog ciklusa radnog takta), podaci sene pri slcdecoj uzlaznoj ivici signala radnog takta. Opisani postupak se moze ponavljati
mogu isporuciti tokom drugog ciklusa T 2 . Da bi procesoru saopstila da ne ocekuje u nedogled.
podatke, memorija na pocetku drugog ciklusa T 2 uspostavlja signalna WAIT. Na taj Na slici 3-31\(h) detaljno je objasnjeno osam simbola koji se pojavljuju na vrc-
nacin se umecu dodatni ciklusi. tzv. stanja cekanja (engl. wait states), sve dok me- menskom dijagramu. TAD• na primer, predstavlja interval izmedu uzlaznc ivice ciklu-
morija na zavrsi posao i ponisti signal wAIT. U nasem primeru, umetnuto je jedno sa T 1 radnog takta i trenutka uspostavljanja signata na adresnim vodovima. Prema
stan,1e cekanja (T 2 ) jer je memorija spora. Na pocetku ciklusa T 3 , kada je sigurna da specifikacijama, TAD je 4 ns. To znaci da proizvodac procesora garantuje kako ce u
ce imati podatke tokom tekuceg ciklusa. memorija negira signal WAIT. 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-
ADDRESS Memonjska adresa za uCitavanje
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-
DATA I I I I tr' '!'-+-- etnc jos jedno stanjc cekanja i odgovori tokom ciklusa T 4.·
MREQ ·-~
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
RD -!----__;.- 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.
WAIT -f.----f----..
Ogranicenja detinisana vremcnima TM i T RL znacc da cc signali ~lRE<.,l 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 u~postavljanja signctla MREQ i RD
Vreme - - -
(a) 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.
Simbol Parametar Min Max Jedinica
KaSnjenje zadavanja adrese 4 nsec
Vremena TMII i TRH odreduju trajmue negiranja signala MRH.) i RD nakon ocita-
TAo

Adresa stabillzovana pre signata MREQ 2 nsec


vanja podataka. Najzad, vreme T Dll definise koliko dugo memorija mora da drzi
TML
podatke na magistrali nakon sto se punisti signal RD. Kad je rce o procesoru iz naseg
TM KaSnjenje signala MRECl1za s1lazne 1vice signala (D u ciklusu T1 3 nsec
primera, memorija mo;,c da ukloni poclatke s magistrak cim se ponisti signal RD: u
T RL KaSnjenje signala RD 1za sliazne 1vice s1gnala (I) u ciklusu T1 3 nsec
nekim clrugim procesorima, medutim. podaci moraju ostati stabilni jos malo.
T OS Vreme smeStan]a podataka pre silazne IV ICe s1gna\a (I) 2 nsec
Trcba istaci da slika 3-38 vrlo uprosccno prikazuje vremcnska ogranicenja. U
TMH KaSn]enJe s1gna\a MREQ 1za si\azne 1V1ce signa!a u c1klusu T3 3 nsec
stvarnosti se uvek zadaje rnnogo vi~c vremenskih parametara. lpak, na usnovu slikc
(l)

TRH KaSnjenje s1gnala RD IZa sdazne iv1ce Signa Ia <!> u ciklusu T3 3 nsec
l1llrZcte stcci prilicno dobar utisak o nacinu rada sinhrone magistrak.
ToH Vreme zadrZavanja podataka nakon negacije signala RD 0 nsec
Na kraju treba naglasiti cia sc upravljacki signali mogu aktivirati hilo visokim. hilo
Ib) 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-
Slika 3-JX. (a) Yrcrnenski sled Jogatlaja na sinhronoj magistrali. (h) Spccifikacija nekih va;i.nijih valcnt programerovog dvournljcnja da li da blokovc prawog prostora na disku popu-
dogadaja. ni nulama ili jedinicama.
11
180 Poglavlje 3: Nivo digitalne logikc 3.4 Proccsorski cipovi i magistralc
181

Asinhronc magistralc zavrsen. pa i sam ponistava (ncgira) signal SSYN; tako se vrac'amo u prvobitnu situa-
Jako se sa sinhronim magistralama lako radi jer irnaju diskretne vremenskc inter- ciju. kada su svi signali negirani i ceka se skdec'i uredaj koji c'e preu;.eti magistralu.
vale, one imaju i svojih problema. Na primer, sve operacije sc obavljaju u vre- U vremenskim dijagramima dogactaja na asinhronimmagi:,tralama (a ponckad ina
menskim intnvalima koji su umnosci ciklusa rnagistrale. Ako procesur i memorija sinhronim) koriste se strelice za isticanje uzrocno-posledicnih veza. kao na slici 3-39.
mogu da ohave razmcnu podataka za .1, I ciklusa, oni je moraju produziti na 4 ciklusa Slanje signala MSYN uzrokuje postavljanje podataka i izaziva sporcdni uredaj da po-
jer se operacije izvrsavaju unutar celog hroja ciklusa. salje signal SSYN. Signal SSYN uaokuje negiranje adresnih signa Ia i signata MREQ.
Stu je jos gore, kaJa se jednom izahere ciklus magistrale i za njega i~:aheru memo- RD i MSYN. Na kraju, negiranje MSYN signala uzrokuje negiranje signala SSYN. koji
rija i ulazno-izlazne kartice, pre\azak na noviju i bolju tehnologiju iJc tdko. Pretpo- zavrsava citanje i vrac'a sistem u prvobitnu stanjc.
stavimo. na primer, da je nekoliko godina posto je napravljcn sistcm sa slike ]-38 Skup ovako povczanih signata wve se potpuno usaglasavanjc (engLjitl/ hand-
proizvcdena nova mcmorija s vremenom pristupa od 8 ns umesto dotadasnjih 15 ns. shake). Osnovni deo sastoji se od cetiri dogadaja:
Ona hi potpuno raskrstila sa stanjima cekanja i ubrzala hi Citav sistcm. Zamislimo da l. Salje se signal MSYN.
sc pojavila i memorija s vremenom pristupa od 4 ns. Ona nc bi mogla Ja unapredi 2. Signal SSYN se salje kao odgovnr na signal MSY,'J.
ovaj sistcm jer se po njegovom projektu citanje obavlja u dva ciklusa. .1. Signal MSYN se ncgira kao odguvor na ~ignal SSYN.
Ako ovc cinjenice osmotrinm na drugi nacin. viJimn da sinhrona magistrala na ko- ..\.Signal SSYN se negira kao odgovor na negiranje signala MSYN.
joj se nal~ve razliciti uredaji mora cia bude prilagm.lcna najsporijem, a brzi uredaji
Iz opisa bi trcbalo da buclc jasno da potpuno usaglasa vanje ne zavisi od vrcmena.
necc moc'i da iskmiste svojc pune potencijale.
Svaki dogadaj je izazvan prethodnim dogadajem. a ne impulsom raclnog takta. Ako je
lpak, razlicite uredajc moze da pomiri asinhrona magistrala, koja ne radi na osno-
ncki par uredaja (glavni i sporcdni 1 spor, to ni na koji n~1cin ne urice na sledeci par
vu signala radnog takta (slika ]-_\lJ). Cim uredaj koji jc trenutno glavni na magistrali
uredaja koji mogu biti matno brzi.
na nju postavi adresu, MRE(i. I~D. i sve druge potrebne signale, on L'e, umcsto da ceka
Prednost asinhrune magi,-,trale sada bi trehalo da bude ociglcdna. ali stoji i cinje-
cikluse radnog takta, na magistralu postaviti i specijalan signal koji cemo nazvati
nica da su magistralc vecinom -;inhrone. Razlog je lakoc'a pravljenja sinhronog siste-
i\1SYN (Master SYNchroni;ration). Kada sporedni uredaj vidi taj signaL on trazcni po-
ma. Proccsor sarno saljc SVOJC signak. a memorija samo na njib udgovara. Ne postuji
sau obavlja najbrze sto moze. Kad ga zavrsi, on na magistralu salje signal SSYN (Sla-
povratan (U/rucno-pusledican) tok informacija, ali ako su komponente pravilno oda-
veS YNchronization).
brane. sve radi i bcz usa:::Iasavanj't. p,lred tuga. u tchnologiju sinhronog rada ul,J.Leno
jc miwgo novc·a.
ADRESA Memorijska adresa za c1tan)e

MREQ 3.-LS Arbitriranje magistralom


Svc do sada smo podrazumc\a]i da ma!Cistralomupravlja sai1ll< jc~dan glavni medaJ
RD -- procc~or. U stvarnosri. mcdutim. i ulalnu-i;bLni cipU\ i mora.Ju pond.ad da postanu
ghl\ni da bi proC·itali plldatkc. upisivaJi ih u mcmuriJU i izazivali .sistcmske pre~ide. hto
vazi i 7a kopmcesore. Tako dolazimo do pirania. ~La sc dogada bela elva iii vise uredaja
MSYN
istovremeno iluc'e da upravljajumagi:,tr~dc>m' 1 Odguv<)f gLtsi- mora postojati nd.i mc-
haniLam arhitriranja magistralom (c:ngl. !.>us ur!Jirrutiun) L1ko hi sc i;.bcgao haus.
PODACI Mehantzam arbitriranja muzc da bucic ccntr:.~li;uvan i dcccntra]i;:o\an. Razmotri-
mu prvo centralizcJ\:llln arbitriranje. P<)'>t'hfl<l jecliwstavan oblik centraliL()\anog arbi-
SSYN triranja prik:tLanjc n•t 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 p•mekxl jllltrcban i p"scban cip. :\lagi.straLt i n~:l)edan vod ;.a ~:ahtevanje pri stupa
Slika 3-39. Rad astnhwnc magistrak.
sa ugr:tcknim lu~,:ickim 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
Cim glavni uredaj primi signal S:..;YN. on ;:na da su mu podaci na raspolaganju, pa ih
pri,tup. On r~vlikujc -,~;mu dva st:lnJa: ,Jilla zahtcva·· i .. nema ;~tllle\:l"·.
preuzima i ponistava signale na adrcsnim voduvima. kao i signale :V1RE<.), RD i MSYN.
Kada sporedni uredaj vi eli poni.~tavanje (negaciju 1 signal a r\i'lYN, on zna da je ciklus
182

Zahtev za pristupanje magistrali


Poglavlje 3: Nivo digitalne logike

-
3.4 Proccsorski cipovi i magistrate

- salju zahteve. Medutirn, implemcn:iranje j~ pogodnije da se vod za davanje dozvole


183

ovde sa svim uredajlllJa, bez ohztra na nJLhov pnontet.


Duzvola za pnstupan1e magistrali
p Neki arbitri imaju i treci vod preko koga uredaj salje signal da je prihvatio dozvolu
Arbitar
t I I
t I
' ,_/ I
t I
' ,_/ I
t I
' ,_/ I
l 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,
~r',/

lI
Dozvola -
nista ne sprecava druge uredaje da istovremeno zahtevaju pristup. U trenutku kada se • i_

za pristupanje maze 1 2 3 4 5
tekuCi prenos podataka zavrsi, vee' c'c se znati koji od sledecih uredaja izlazi nama- !
i ne mora putovati
duz Janca uredaja Ulazno-izlazni uredaji gistralu. Uredaj r~oze preuz,eti magistralu cim se ncgira si~nal na vodu z~ potvrdi-
vanje, kada zapoctnJC sledecL krug arbttnranp. Za ovakvu semu potreban JC dodatni :1
(a) !
vod na magistrali i dodatna logika u svakom uredaju, ali se ciklusi holje iskoriscavaju.
Zahtev za onstuoanie mag1strali mvoa 1
Zahtev za pristupanw mag1strall n1voa 2
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-
Arbitar Dozvola za pnstupan)e mag1strall ntvoa 2
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
I

'' I I uvek moze da ceka, dok ulazno-izlazni uredaji najce:ice moraju da pristupe magistrali
---2 ---3 ---4
\ '--/ I

--- brzo iii ce izgubiti podatke. Diskovi koji rotiraju velikim hrzinama, ne mogu da ce-
1 5
kaju. Ovaj problem sc u mnogim savrcmenim racunarima izbegava tako sto sc mc-
morija i ulazno-izlazni uredaji smcstaju na zasehne magistrale, pa ne mor,~u da sc
(b)
nadmecu za pristup.
Stika 3-4(). (a) Ccntralizovani arbitar magistrale s jcdnim nivoom koji koristi tehniku ulancavanja Moguce je i decentralizovano arbitriranjc magistralom. Na primer. racunar moze
uredaja. (b) lsti arbitar, ali s dva nivoa. 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
Kada arbitar dobije zahtev za pristupanje magistrali, on daje dozvolu tako sto na svih vodova za slanje zaht~.:va, tako dana kraju svakog ciklusa magistralc svaki uredaj
vod za izdavanje dozvola salje odgovarajuCi signal. Taj vod je povezan sa svim ula- zna da Ji zahtcv salje uredaj najviseg primitcta i, prema tome, da li mu je dozvoljeno
zno-izlaznim uredajima. Kada uredaj koji je tizicki najhlizi arbitru vidi dozvolu, on da u sledeccm ciklusu koristi magistalu. Za razliku od centrali;.ovanog arbitriranja, za
prO\'erava da li je sam poslao zahtev. Ukoliko jeste, on preuzima magistralu, ali do- ovu metodu je potrcbno vise vodova na mag:istrali, ali se climinisu potencijalni tro-
zvolu ne prosleduje drugim uredajima. Ako utvrdi da nije on poslao zahtev, dozvola skovi za uredaj za arbitriranje. U ovom slucaju, hroj uredaja ogranicen _jc brojcm vo-
za pristupanje se prosleduje do sledeceg uredaja, koji se ponasa na isti naCin; ceo po- dova za slanje zahtcva.
stupak se ponavlja dok neki urec1<~ ne prihvati dozvolu i preuzme magistralu. Ovakva Pri drugom nacinu dcccntralizovanog arhitriranja magistralom, prikazanom na sli-
sema se naziva ulancavanje uredaja (engl. daisy chaining) i karakterise je to da prio- ci 3-41, koriste sc samo tri voda, hez obzira na broj prikljuccnih urcdaja. Prvi vod ma-
ritet dobija uredaj koji se nalazi najblize arbitru. gistrale sluZi za zahtcvanje pristupa i ima ugradcno logicko knlo OR. Drugi vod se
Da bi se zaobisao podrazumevani prioritet uredaja koji su najhlizi arhitru, na mno- zovc BUSY (zamet) i na njega salje signal uredaj koji trcnutno koristi magistralu.
gim magistralama postoji vise nivoa prioriteta. Za svaki nivo postoji vod za zahte- Treci vod se knristi za arbitriranje i na njcga su povezani svi uredaji. Na njemu uvek
vanje pristupa i vod za davanje dozvole. Sistem na slici 3-40(b) ima dva nivoa, l i 2 postoji signal od +5 volti jcr jc povezan s napajanjem.
(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- Vod za slan1e
ju na nivoe viseg prioriteta. Na slici 3-40(b) uredaji I. 2 i 4 imaju prioritet I, dok Zi hteva za pnstup

ureclaji 3 i 5 imaju proritd 2. vod BUSY


Ako istovremeno stignu zahtevi razlicitih prioritcta, arbit<u· daje dozvolu samo T5V

ureclaju s najvisim prioritetom. Uredaji istog prioritcta se ulancavaju. Na slici 3-40(bJ, /


Vod za
.of
I t r l r t I t
u slucaju sukoha, prioritet prvo dobija uredaj 2, zatim uredaj 4 ina kraju uredaj 3. Ure- arbitnran1e Ulaz lzlaz Ulaz lzlaz Ulaz lzlaz
I
Ulaz lzlaz ~ Ulaz lzlaz
I
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 1 2 3 4 I s
dozvole na nivou 2 serijski povezu uredaji I i 2, posto oni preko njega ne mogu da
Slika 3-41. Dt:c~ntralizovano arbitriranje magistrctlom.
ar----- p
'
Po~lavlje 3: Nivo digitalne logikc Procesorski cipovi i ma~istralc 185
184

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
<D
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- ADRESA
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- PODACl
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 MREil
prcnos podataka.
Ako malo boljc razmiolimo, vidimu dace rnagistralu, ukoliko je trazi, dobiti kra- RD
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 WAIT
otka;.ivanje arbitra.
BLOCK II i I,.------+--+---+---:-
! I
3.4.6 Operacijc na magistrali
Slika J-42. Prcnus hluf-a.
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- Da bi sc opisana situacija izbegla. viseproccsorski ~istemi CL'Slo imaju ciklus ma-
suje u njcga. Postoji vise drugih vrsta ciklusa magistralc, pa ccmo sada obraliti paznju gistralc tipa ,procitaj-izmcni-upisi··, koji svakom pmccsoru omogucava da i1. mcmu-
na neke od njih. rije procita rec, dajc ispita i izmcni pa daje pOilOVll upi~C Ull1Cil1<ll"iju bcz prepustanja
1\lagistralom sc po pravilu prcnusi jcdna po jedna rce. Mcdutim, kada sc koristi magislrale drugomuredaju. Ovakav lip ciklusa sprecava knnkurcnl~ke proccs,,rc da u
kdiranjc, pozcljno je da se ujcdnom trenutku prcut.im<t citav red kda (npr. 16 uza- meuuvremenu koristc magi~tralu i taku poremclc opcraciju prv(1g procesora.
slopnih J2-bitnih rcci). Prcnos cclih blokova ccsto jc clikasniji od prenosa vise poje- Jos jedan vazan ciklus magi;.,trale sluli za obradu siskmskih prckicLt. Kada procc-
dinacnih reci. Kada zapocnc citanjc bloka pudataka. glavni uredaj na magistrali sor zahteva od ulaznu-i;:laznog ureuaja da ncstu uradi, on obicnu ul'd..ujc si<.;temski
saopstava sporednomuredaju koliko ce reci hiti prcneto (na primcr, tako ;to cc tukom prckid cim urcdaj zavr~i pusau. Signal sistemskog prekida prenosi se magistralom.
ciklusa T 1 staviti hroj rcci na vodove ;:a podatkc). Umeo.;to da odgovara samo jcdnom Posto vise uredaja mogu islu,rcmcno da posalju signalc za sistcm~ki prckicL i ovck
recju, spurcdni urcuaj cc ll svakom ciklusu isporucivati po jcdnu rcc sve dok ne ispo- sejavlja problem sa arhitriranjem, kojijc postojao ununnalnim cik.lusima magi~trak.
ruci t.adat hmj reci. Slika 3-42 prikazuje izmcnjenu verziju .>like 3-3X(a), s dodatnim Rcsenjc se obicno nalazi u dodcljivanju prioriteta urcdajima i koriscenju centra In<·.~ ar-
signalom llToc"K., koji sc salje kao znak da sc zahteva pre nos bloka. U ovom primeru bitra koji ce davati priuritet vremcn-,ki kritil'nim urcdajima. Postoje standctrdni cipO\'i
citanjc bloka od 4 rcci obavlja se za 6 ciklusa, umcsto 1.a 12. - kontroleri si:-,tcmskih prckida koji .se powuda kori,te. IB:\1 PC racunar i svi njeg<wi
Postoje i drugc vrste ciklusa magistrale. Na primer. kada su u visepruccsorskim si- naslednici koriste lntelov cip X:2S'J.'I.. prikazan na -,Jici 3--Ll.
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
- I~T: I ' 1== :~~ 1~,
- - - - ( ) Radn1 takt
Tastatwa
_ . I - - - - IR2 - -
koristi. Ukoliko procesor treba da pristupi strukturi podataka, on mora da procita
Procesor
£t:J_
\1'{13 ___.I
I Kontroler ~~
~
IR3 - -
iR4 __
vrcdnost promcnljive i daje promcni u l ako je ona 0. Problemje to sto dva procesora
SIS!e'l'Sk:il

mogu procitali vrednost promenljivc u dva uzastopna eiklusa. Ako svaki proce;,or
~ ==llprek1da 8259A:~~ IPS t:J Disk
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.
---- 00-07 -------~
---IR6
1....-- IR7
·-- ·
~
r-< -·~ .
Stampilc
.

t
+5 v

Stika J--B. Nacin ~ol"i.~ct·nja ~ontrulcra si,L';,d,ih prckida IC1p 8~5'1.-\<.


r Poglavlje 3: Nivo digitalne logike 3.5 l'rimeri proccsorskih cipova
186 187

Do osam kontrolera ulazno-izlaznih urectaja moze se direktno prikljuCiti na osam Tokom sledece tri godine, kako je Intel kumulirao tehnolosko iskustvo, broj tran-
ulaznih IR (Interrupt Request) prikljucaka za zahtevanje prekida na cipu 8259A. zistora na cipu narastao je na 55 miliona, njegov takt na 3,2 GHz, a sirina voclova se
Kada bilo koji od ovih uredaja hoce da izazove sistemski prekid, on salje signal na od- smanjila na 0,00 mikrometara. lako je prueesor 8088 sa svojih 29.000 tranzistora
govarajuci ulazni vod. Ukoliko se pojavijeclan iii vise zahteva, cip i:\259A salje signal samo daleka proslost. Pentium 4 je potpuno kompatibilan s njim i moze cia izvrsava
INT (INTerrupt) direktno na nozicu procesora rezervisanu za sistemski prekid. Cim neizmenjene biname programe pisane za proeesor 8088 (dane pominjemo programe
procesor moze da ohradi prekid, on cipu 8259A salje potvrdu INTA (INTerrupt Ack- pisane za procesore koji se nalaze izmedu njih).
nowledge). Posle toga, cip 8259A mora da saopsti koji ulazje izazvao prekid tako sto Pentium 4 je sa soft verskog stanovista potpun 32-bitni cip. On ima iste !SA osobine
na vodove za podatke na magistrali salje broj ulaza. Ova operacija zahteva specijalan na korisnickom nivou kao i procesori 8031:\6, 80486, Pentium, Pentium II, Pentium Pro
ciklus magistrate. Logika procesora koristi taj broj ulaza da bi se u tabeli pokazivaca, i Pentiumlll- ukljucujuc'i iste registre, iste instrukcije i na cipu ugradenu podrsku za
nazvanih vektori prekida (engl. interrupt vectors) pronasla adresa procedure za standard IEEE 754 za aritmetiku s brojevima u formatu pokretnog zarez.a. Pored toga.
obradu prekida. on ima i neke nove instrukcije nam,enjene prvenstveno multimeclijskirn aplikacijama.
Cip 825l)A ima vise registara ciji sadrzaj procesor moze da procita iii u njih moze S hardverskog stanovista, Pentium 4 je delimicno 64-bitni cip jer s memorijom
upisivati podatke koristeci obicne cikluse magistrate i ulaze RD (ReaD), WR (WRite), razmenjuje podatke u jeclinicama ocl64 bit a. lako to za programere nema znacaja, 64-
Cs (Chip Select) i AO. Kada softver obracli prekid i kadaje spreman da preuzme slc- -bitni prenos cini cip brzim od nekog 32-bitnog modela.
deci. on u jedan od registara upisuje poseban kocl kojim primorava cip i:\259A dane- lnterno, na nivou mikroarhitekture, Pentium 4 se polpuno razlikuje ocl svih svojih
gra signal INT. osim ako se u redu cekanja nalazi drugi sistemski prekid. Kada se prethodnika. Svi njegovi neposrcdni prethodnici- Pentium II, Pentium Pro i Pentium
upisu podataei u registre, cip 8259A moze se prebacivati u vise radnih rezima. moze Ill- imali su istu internumikroarhitekturu (nazvanu P6), a razlikovali su se jedino po
se maskirati skup prekida, a mogu se aktivirati i njegove clruge mogucnosti. brzini i nekim manje vaznim karaktcristikama. Pentium 4 ima novu mikroarhitekturu
Ukoliko postoji vise od osam ulazno-izlaznih uredaja, cipovi i:\250A mogu se po- (nazvanu NetBursl) koja se znatno razlikuje od mikroarhitekture P6. On ima potpu-
vezati kaskadno. U granicnom slucaju. svih osam ulaza cipa mogu se povezati sa iz- niju paralelnu obraclu, dve aritrneticko-logicke jedinice (obe rade pri dvostrukoj
lazima osam drugih cipova 8259A, sto claje moguc'nost prikljucenja do 64 ulazno- uccstalosti radnog takta da bi omoguc'ile dve operacije po eiklusu) i podr7.ava hiper-
izlazna uredaja u dvustepenu mrdu sistemskih prekicla. Cip 8259A irna nekoliko nitni rad. Za poslednju moguc'nost odgovorna su dva skupa registara i neki drugi in~
nozica za povezivanje u kaskadu koje na slici nismo prikazali. terni resursi, zbog cega Pentiumu 4 moze vrlo brzo da prelazi iz programa u program
lako ni u kom slucaju nismo iscrpli temu projektovanja magistrala, materijal koji (kao da racunar ima dva tizicka proccsora). Mikroarhitekturu c'emo obraditi u pogla-
smo izneli trebalo bi da pruzi dobru pocllogu za razumevanje rada magistrale i njene vlju -+. Kao i njegovi prethodnici, i Pentium 4 rnoze istovremeno cia izvrsava vise in-
saradnje s procesorom. Predimo sada sa opstih kategorija na konkretne primere nekih strukcija, sto ga cini superskalarnim procesorom.
stvamih procesora i njihovih magistrala. 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 me~
rnorije prvog nivoa u Pentiumu III, koja cuva samo sirove memorijske bajtove, Pen-
3.5 PRIMER! PROCESORSKIH CIPOV A 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
U ovom odeljku ccmo na hardverskom nivou detaljnije upi,ati cipove Pentium 4. nivoa Pentiuma 4 moze da sadrzi do 12.000 dekodiranih mikrooperacija, tako da
UltraSPARC Ill 805 l. 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-
3.5.1 Pentium 4 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
Pentium 4 je direktni naskdnik procesora XOXri koji se nalazio u prvobitnom lBM- treeeg nivoa, velicinc 2MB, cime se performanse dodatno poboljsavaju.
-<,vom PC racunaru. Prvi Pentium4 predstavljcn je u nmembru 2000. godine kao pro- Posto svi cipovi Pentium 4 imaju bar elva nivoa kd memorije, nastaje problem u
ccsor sa 42 miiiona lranzistura 1--oji radi na 1,5 GHz 1 ima (.~tampane) vod<Jve ,~irine vi~eproce~orskim sistemima kada jedan proeesor izmeni rec u svojoj kd memoriji.
O.lS mih.rometara. Sirina sc odnosi na vodove koji povezuju tranzistore (ali je i mera Ako drugi procesor pokusa cia procita tu rec iz memorije, once dobiti njenu zastarelu
za velicinu samih tran,ristoral. Sto je sirina manja. na cip moze cia stane vise tanzistora. verzijujer se reci koje se menjaju u kd memoriji ne upisuju odmah ponovo u memo-
l'vlooreov ,rakon govori o sposobnosti inzenjera da i dalje su7.avaju vodove. Kada su riju. Da bi memorija ostala konsistentna. svaki procesor u viseprncesorskom sistemu
v•Klovi uzi, vec'a je ucestalo't radnog takta. Poredenja radi, recimo da Je vias ljudske prisluskujc (engl. snoops) memorijsku magistralu trazeei reference na reci koje ima
kose de bela izmedu 20 i l 00 mikrometara. pri cemuje plava vias tanja od erne.
:'11
i ~
188 Poglavljc 3: Nivo digitalnc logikc Pl'imcri proccsorskih cipova 189

!
u svojoj kes memoriji. Kaua unCi referencu. on br:ro ispnrucuje trazene pndatk.e pre sistcmsk.ih prekida). dok su druge funkcije iskljucenc. U stanju dubokog sna, cuvaju se 'i
ncgo sto memorija uopste dobije sansu Ja [l) uCini. 0 prisluskivanju cemo govnriti ll pouaci iz kes rnemorije i sadrzaji rcgistara. ali se generator radnog tak.ta i sve inteme jc-
poglavlju 8. diniL·e iskljucuju. lz dubokog sna procesor sc moze probuditi samo haruverskim signa-
U sistcmima s Pentiumom 4 koristc se dve primarne spoljnc magistrale (obc su 1om. Ne wa se da li duboko uspavan Pentium 4 ndto sanja.
sinhrone). Za pristupanje glavnoj ( S )DRAM memoriji kuristi se mernorijska rnagi-
strala; za komuniciranje sa ulazno-izlaznim uredajima k.oristi sc PC! magistrala. Po- Logi(],i raspon~d izvoda Pentiuma 4
nck.ad sc za PCI magistralu vezuje i nck.a prcvazidcna (engl. /ega<")') magistrala da hi Od -+78 no7ica Pcntiuma 4. 198 se koristi za signale. 85 za napajanje (s nck.oliko
se omoguCilo prik.ljucivanje i statijih pcrifcrijskih uredaja. rallicitih nap• 'lla), 180 za u;.emljcnje. a 15 zasad nc sluzi niccmu. Neki od logickih si-
Sustinska razlika izmcdu Pcntiuma 4 i njcgovih rrethodnika lczi u njcgovom pak.o- "naLt kcH·1.ite dve i vise noz.ica (npr. za adresiranje memorijc). tak.o cia ukupno rostoji
vanju. Problem svih savrcmcnih cipovajc elektriC·na snaga koju tru;e i k.olicina tnrlote ~6 ra;i:Citih :-.ignata. Nesto rojednostavljen logicki raspnred izvoda rrikazanje na sli-
k.oju proizvouc. Pentium'-~. trosi izmcclu63 i 82 vata. zavisno ou frckvcncijc. Zbug toga c:l J-4:'1. Na kvnj strani slike nalaz.; se pet glavnih grura signata memorijskc rnagi-
Intelncprestano trazi nacinc da ouvede toplotu kuju prucesorski cipovi gencrisu. Pen- strak: na desnuj strani su razni drugi signali. lmena prikazana velikim shwima
tium 4 SC isporucuje Ll kvaJratnOill [JakuvallJLl. ivica m\ :15 01111. S dunje Stram: plocice origin;tllla Sll [ntelova imcna signata. lmena [Jrikazana lllCSavinolll velikih i malih slo-
nalazi sc 478 no.l:ica, od kojih su 85 za mpajanje. a 180 su uzemljenc z.bng srnanjenja va Lajcdnicka su imcna vise srodnih signala.
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- BPRI#---
ArbitmanJe r
vljanje cipa ll podno/jc. Fi;.ick.i raspnn:d nozicl prikaLall je na slici :1-44. magistrale ']
LOCK#-
BRO# --RESET#
'
••••••••••••••••••••••••••
••••••••••••••••••••••••••
••••••••••••••••••••••••••
••••••••••••••••••••••••••
A# -------- Sistemski prekidt
••••••••••••••o•~••~o••••• ADS#
••••••••••••••••••••••••••
•••••• •••••••
••••• Zahtevanje 14
••••••
•••••• ••••••• pnstupa REOII Upravljanje
•••••• I
@ ......
••••••
··~··g
......
•••••• ...... ····~·,
••a•••
Parity#~
~
potrosnJotn energije

Upravljanje

...... ··Q~-· 5
.n
M :::::: :::::: I Greske ,: 0 s ta Io ____,...._ odvodenjem top late

......
···~··
••••••
•••••••••••••••••••••••••• I
••••••••~o••o~••••••o•eoo•
··········~··&~·~·····~···
·····~,,
•••4o•
000@00
·····~
Odgovaranje
2
RS# ____,...._
TROY#-
Procesor
Pentium 4 ____,...._ Frekvencija

23
radnog takta

____,...._ Oijagnostika
·········~~-~~-~·····~·-··
••~••••••"~•a•o••••~~~~a• na zahtev Parityt-
··········~···~·········· BNR¥-
---+---- lnicijaltzacija
Slika Jw-t..t. FiLiCb raspnred no)i~_·a l\_·ntiuma 4.
64 2
0# ____,...._ _____,....._ Pnsluskivanje
c"'ir tma ok vir fa mnntiranje hladnj<tk:l k<1Ji :tf"'J:"huje generis:mu wp\otu i '•entil;~­
t<lra koji je odvodi. Da bistc shvatili u cemu ~o\·txim. ukljucite sijalieu od 60 -,•ati. pu- Podact J DRDY#
DBSY#
.--
~ 7
stite je da sc ugrcje i tau a sanjk sake oko n1e i aii je nc dudinlJk ). T.)pluta knJu u tom i Panty# ____,...._ _,_._.. Ostalo
trenutk.u <lSctite lll!ll":t se od prnccsura neprestano udvPditi. Prema tume, \.:ada ~c Pen- 13
Misc ---+----
tium-+ i-;tn•si u svo.JC'j ulozi proccs,,ra. nw/.2le ga 1.1\ eJ.... k.ur:stiti k.ao grejalicu.
Prema zakun1ma lizi~e. s\e ~to genaiSL' veiihu k<Jlicinu tupk1k morct i Ja tmsi mnu-
go cncrgij.:. Lf pren\y.;lvin1 raCun:1rirna. 1-..t'~ji 1-..i_,n~te batcrijc {)grani(cnog kapacitcta. vc-
ltka potn>snja enc:rgi.:e mje po/eljn't jer se bateriy brzo prazne. !mel jc taj prubkm
prevazi~an- pn,ce:;or SL' uo>pavljujc' svaki put kad nema pus/a i bac:a g:., u .,Juook san"'
l 185 100
<I> Napajanje

kad g•>d posloji vewvarnuc'a eLl ce besp<>slensnst putrajati. p,Jstoji zapr:1vo per stanja
Siika 3-45. Logick.i ras1mred izv\lda Pcntiuma cl. lmena ispisana wlikim slnvima su zvanicna
budnusti prL>CC'iLlf:t. pu(·ev\t <ld njt>g•Jv~· p< •tpune ctkti\ nusti. pa du dubokug sna. U lnteluva irnena 7.a pnjedinacne signak. lmcna ic.pisana rnesavinom vclikih i malih slova
stanjima pnlu.sna aktivne su nek.e njegove futikcije (npr. prislu.\:...ivanJe ke~:t i ubcada ozna(·avaju grupe sroJnih signala ili opi.se .signala.
190 Poglavlje 3: Nivo digitalne logike 3.5 Primeri procesorskih cipova 191
~'
1.:
.1,:
~I :

Treba obratiti paznju na lntel konvenciju za imenovanje. Posto se danas svi cipovi stabilan, alii za generisanje drugih poruka koje se ocinose na napajanjc. Na tom mestu 1''

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

automatsku hiranje izvora napajanja, kako hi procesoru saopstili ciajc izvor napajanja
Poglavljc 3: Nivo digitalnc logikc 3.5 Primed proccsorskih cipova 193
192 -~-~--~~----

Tajna serijske abrade podataka na memorijskoj magistrali Pentiuma 4 Jel.i u tome 3.5.2 lJltraSPARC III
sto se u svakoj fazi koriste drugi signali, tako da je svaki nezavisan od ostalih. Scst
Kao drugi primer proccsorskog cipa, razmotricemo porodicu Cipova UltraSPARC
potrebnih grupa signala prikazano je na levoj strani slike J-45. Na primer, jcdan pro-
kmnpanije Sun. Pormlica cipova UltraSPARC sadrzi Sunove 64-bitne SPARC procc-
cesor mozc pokusati da preuzme magistralu pomocu signala za arbitriranje. Kada do-
sore, Oni su pmpuno u skladu sa 9, verzijom SPARC arhitekture, koja vazi i za 64-bit-
bijc pravo da nastavi rad, on oslobada vodove za arbitriranje i pocit~e da koristi grupu
ne procesore. Ovi pmcesori sc koristc u Sunovirn radnim stanicama i scrverima, kao
vodova L<t odgovaranje na zahtev. U meduvremenu, drugi procesor iii neki ulazno-iz-
j za rawt: druge primene, U ovu porodicu spadaju UltraSPARC L UltraSPARC [[ i
lazni uredaj mozt: da ude u fazu arbitriranja itd. Slika 3-46 prikazuje kako st: nama-
UltraSPARC lll- po arhitckturi veoma slicni procesori koji se uglavnom ra.-:likuju po
gistrali istovremeno ohavlja vise transakcija.
datumu izbacivanp na tr/i~tc, 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
C1klus magistrale
govoriti o cipu l!ltraSPARC IlL ali cc vecina int"onnacija o arhitekturi (tj. on om sto nc
T2 T3 T4 .
~-~~---
T5
-
I T6 ,
.... ---~~-~
'
T,
- I T, , T9
I
.... ---~~ - '
1
T10 , T11 , T, 2
.... -~~ .... ·--~~--
'-~ ~
-:
,

I
zavisi od tchnologije) va7.iti i za t)stale UltraSPARC cipove.
UltraS!'.'\ RC Ill jc klasican RISC cip i na binarnom nivouje potpuno kompatibilan
<I> 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
Tran· i 1 I I '1 k,Hnp~ttibilna sa arhitektururn vcrzije 8, Jcdinu u cemu Ultra-SPARC Ill odstupa ud
sakc11al j I 1
arhitt?kturc SPARC YlJ jeste dodatni skup instrukcija VIS 2.0 za gralicke 30 aplika-

1 8{~~~
1

'.j{o""""'}:G;}I' cije. :'v!PFG dckodiranje u realnom vremcnu, komprimovanje podataka, obradu si-
' I
j
.
]8[81 I

I
I '
lndgovur;L)!
' I
I

I ....----'---..
I 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
I ~8~~~)'@•9( ro""' }: glavni proizvod kompanije Sun- velike viseproccsorske serverc s deljenom memo-
I ; i I ' rijlllll koji se koriste na lnternetu i u kompanijskim mrezama. Konkretnije, veCi dco
:G~}
I I I I'

4 I.<LJ""'' ).( "" k•}:(J::·::,):BI logJkc: potrehnc L1 pravljenje sistemas vise proeesora vee postoji unutar i:ipa UltraS-
I ! ' I I I
I ·~·r;--:-\'~'{
~~~~::::/~; nn~"' r
)~
~
Po\RC Ill, sto ulaksava njihovo mcL1usohno povezivanjc.
I ~~~r::-::\~~~ l~•r-::---\1 Prvi cip UltraSPARC 111 predstavljenje 2000, godine. Radio je na 600 MHz i imao
I !eJj~i~i i~/~: aluminijumske vodove sirine 0, I X mikrometara. Sadrzao je 29 miliona tranzistora.
;
1

:<z,,rc,), (s . ,,,,)/Ct::::;:,.):.· 1
G:">G P:1~to 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
I 1' I I '

p!lii.-:' '1clnjuje ugovorila s firmama koje se time profesionalno bavc. Za proizvodaCa


Slika 3-46. Scrij-.,k_;: u!1;ada DthlL'\a na m~monj . . koj ma~;i:-.trali P~..-·ntium~t-+ (·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
Na slici 3--H) nije prikataru f:1.-:~t arbitriranjajn nij~ uvek p<ltrchn.t. !\a primer. ak(l 0, 15 mi kmmetara. pri cemu su aluminij umski vodovi zamenjeni bakarni m. S lcdec.:
tekuci vlasn1k magistralc (najC'c\CL' proc·c:,ur) hucc da ubavi dru~u u·ansakeJju, un nc g"dinr~ .1e .~irina vodova smanjena na 0,13 mikrometara, a radni takt procesora je
mora punovu z.ahtev~tti pri:;tup magistrali, On to tn''ra uraditi ..,~uno ak" J;,,ce Ja j,,. '>kl>Ciil na I ,2 GHz, Ovi cipovi su imali snagu od 50 vati i imali su i~ti problem sa od-
preu/me pthk nek.(lg dru;l"!:' urcdaJ~L Tr~moakcije 1 i 2 su Jasrw: pet faza unutar pet ""lcnJem toplotc kao i Pentium 4.
ciklusa magistralc. l' tran,ak(iji 3 fal.a preno\a podal:!Ltje du/.a jcr jc to, na pri:ncr, ·rc~k.,) jt: upurcditi ClSC cip t kao sto je Pentium 4) sa RISC cipom (kao sto je Ul-
prcnus bloka iii je adresir~ll1a mcmorip umctnu!a stanje Cekanja. 7:ho"- t,_,gci tran,~tk· tr~lSI'.\~.ZC Ill J samo na osnovu radnog takta. Na primer. UltraSPARC lll mo7,e da iL.-
cija 4 ne nw/.c da ;,~:p,,cne ,voju Lt!U prcnosa pm!aLtha onda Ltda iJ,,c.'e. Ona pri- clajt: c,·t i ri instrukcije po ciklw,u. sto je po brzini izvrsa vanja ek vi valentno procesoru
mceujc da signal IJW,YF jll.,, U\d jl\lS[Ilji i ccka d:t on hmlc P''ni~tcn. L' tr:tll,aL.:ijJ :'i 'radnim l<~ktum od 4,X GH.-: koji zadajc jednu pojednu instrukeiju. UltraSPARC ima
vidirno da i LLL~a ud~i)V~tr:utj:t Inu/c da pPtrajc viSe ciklusa rna~i:..;tralc. 1b1)g l\_·g~i :--,(' i \c''.llnlc'rnih linija paralelne obrade, ukljucujuci dve 14-stepene linijc obrade za opc-
odJa/e tr~tiiSCli--.Cija (J. c\a Kl'~ljU. ll tr~tnsakciji f ]>finJc'L'lljCllH1 da pra1nina f;(ljJ jc' rat:ijt: ' celim bmje\ ima, dve za operacije s brojevima u formatu pokretnog zareza,
llOlll uncta ll st:njsk ll ubr;,cill l 1 Sl:.lje U njuj S\'e dok sC transakcije fWkreL'cl ncr\ >'red no jcdl!ll Ll l1peracJje citanja i upisivanp i jednu ;:a grananja. On ima i drugaciji si~tcm
jcdna za cirugom. U ['rak'>i jc:, medutim. malt) vemvatno da (e pn'c~'il1r Z~IJ'' ·C·c'li n<•vu kes1r~:nj:1, ~ire magi~tralc i brojne druge moguc'nosti koje poboljsavaju performansc,
transakciju ba;; u s,·akum ;:i\..iusumagistrak, tako da praznine u liniji uhr:tde ll<c tr:tju
tako dugo,
194 Poglavlje 3: Nivo digitalne logike 3.5 Primcri procesorskih cipova 195

Ipak, i Pentium 4 ima svoju ,tesku artiljeriju". Ovde zelimo da naglasimo kako po- S poslovnog aspekta, Intel je proizvodac poluprovodnika i irna mogucnosti da pro-
redenje dva veoma razlicita cipa samo na osnovu njihovog radnog takta govori vrlo jcktuje i proizvede sopstvenu kes memoriju drugog nivoa. ida je poveze s procesorom
malo o njihovim uporednim performansama za specificne poslove. preko sopstvenog interfcjsa visokih performansi. Kompanija Sun. za raziiku od Intcla,
Cip UltraSPARC III isporucuje se u pakovanju Land Grid Array sa 1368 izvoda pravi racunare, a ne cipove. Sun doduse projektujc i neke sopstvene cipove (npr. Ultra-
(~lika 3-47). To je kvadratna matrica sa 37 X 37 = 1369 izvoda s donje strane cipa, s SPARC), ali proizvodnju prepusta specij,11izovanim proizvodacima cipova. Kada to
tim sto je izostavljen izvod u levom donjem uglu. Podnozje potpuno odgovara obliku mozc, kompanija Sun najvise voli da upotrebi komercijalno dostupne cipove cijije kva-
cipa tako da se on u njcga moze samo ispravno umetnuti. 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.
Slika 3-47. Procesorski Cip UltraSPAR.C III. 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-
UltraSPARC III ima dvc glavne interne kes mcmorijc prvog nivoa: 32 KB za in- pa). Na slici je i cip UDB II (UltraSPARC Data Buffer II) ciju cemo funkciju ubrzo
strukcije i 64 KB za podatke. Postoji i prirucna kes mcmorija od 2 KB, kao i kd me- objasniti. Kacla procesoru zatrcba rec iz mcmorije, onje prvo traL:i ujcdnoj od svojih
morija za upisivanje od 2 KB. koja u kes memoriju drugog nivoa smesta podatke za (internib) kes mcmorija prvog nivoa. Ako je tamo pronacte, nastavlja izvrsavanje
uJisivanje da bi ih isporucila u dugackim nizovima i tako bolje iskori~tila propusni punom brzinom. Ukoliko se rec ne pronade u kc:i memoriji prvog nivoa, procesor ce
oJscg. Slicno Pentiumu 4, i UltraSPARC koristi kes rncmoriju drugog nivoa izvan ci- je potraziti u kes memoriji drugog nivoa.
pJ, ali za razliku od Pentiuma 4, on nema podrazumevano ugradenu kes memoriju [ako cemo 0 kesiranju dctaljno govoriti ll poglavlju 4, bice korisno da i ovde 0
cLugog nivoa. Kontroler kes mcmorije i logika za pronalazenje blokova kd memorije tome kazemo bar ndto. Glavna mcmorija je podeljena na redove (blokovc) kd rnc-
smestcni su na cipu, ali stvarna kd mcmorija (SRAM memorija) nije na njcmu. Tako morije velicine 64 bajta. U kcs mcmoriji prvog nivoa nalazi sc 256 redova s najccscc
p~ojektanti sistema imaju slobodu da za kcs memoriju drugog nivoa biraju bilo koji koriscenim instrukcijama i 256 redova s najce~ce korisccnim podacima. Redovi kes
komcrcijalno raspoloziv cip. memorije koji se cesto koriste, ali ne mogu da stanu u kes memoriju prvog nivoa,
Odluka da se kes mcmorija drugog nivoa integrise s Pentiumom 4, adana Ultra- smestaju sc u kes mcmoriju clrugog nivoa. Ona sadrzi nasumicno izmesane redove sa
SPARC-u II I bude izdvojena, delimicno je uslovljena tehnickim razlozima. a delimic- instrukcijama i podacima. Oni se cuvaju u pravougaoniku (na slici) pod imenom
n'l i razlicitim poslovnim modelirna koje slelle kompanije Intel i Sun. Tehnicki .,Podaci u ke5 memoriji drugog nivoa·'. Sistem treba da vodi racuna o tome koji sere-
gledano, spoljna kes memorija je vcca i Hcksibilnija (kes memorija drugog nivoa za dovi nalaze u kes memuriji drugog nivua. Tc infurmacije se cuvaju u drugom SRAJ'vl
LltraSPARC III moze da ima kapacitet od I do 8 MB; ista kes memorija za Pentium cipu, oznaccnom sa .. Oznake kes mcmorije drugog nivoa".
4ima nepromenljivu velicinu od 512 KB). Mcdutim, ona mo:l.e da bude i sporija zbog Kada ne nadc trazene pm!atke u kes memoriji prvog ni voa. procesor salje identifi-
vece udaljenosti od procesora. Kes memoriju treba adresirati vidljivijim signalima. kator reda kuji tra7j (Tag address) kes mcmoriji drugog nivua. Odgovor (Tag data)
Konkrctnije, sirina veze izmeltu cipa UltraSPARC Ill i njegove kes memorije drugog daje procesoru informacije na osnovu kojih moze utvrditi da li se trazeni red nalazi u
n1voa iznosi 256 bitova. sto omoguc'ava da se u jednom ciklusu iz keii rncrmorije pre- kcs mernoriji drugog nivoa i, aku je tako. u kakvom je stanju. Ukoliko je red tamo,
ncse ceo blok od 32 bajta. 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.
:I ft
196 Poglavljc 3: Nivo digitalnc logikc 3.5 Primcri proccsorskih cipova 197

18 Adresa oznake / Arbitriranje rnagistralom 5 Kada podaci kunacno rocnu da stizu iz mcrnorije. oni se nalaze u grupama od po :-;
Potvrdivanje oznake
bajtova. sa 16-bitnim kodom za ispravljanje grt:Saka ( zbog vece pouzdanosti). Za
• Memorijska adresa ~~ • odredcnu transakciju moze biti potrehan citav blok kes memorijc, cetvorostruka rec (R
Oznake kes Parnost adrese
memorije
bajtova), ali i samo nekoliko bajtova_ Svi podaci idu u UDB. gde se baferuju. UDB
drugog nivca
25 Podaci oznake I , Potvrdivanje adrese • 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
4 Parnost oznake Procesor
UltraSPARC Ill interfejsu, on podatke mozc odrnah da upisc u UDB bafer i njemu prepusti da podatke
Cekanie kasnije pro,lcdi mcmoriji_ LiDB takode gencrisc i provcrava kocl za ispravljanje grt:Sa-
UPA
20 Adresa podataka interfejs ka. Na kraju treba imati na umu daje navedeni opis procesora UltraSPARC Ill, bas kao
Odoovor 4
_fotvrLfrvanJe adrese podataka ka i opis Pentiuma 4 pre njcga. veoma pojednostavljcn. ali da on sustinski radi bas tako.
Kes memonje glavnoj
Podac:i u kes prvog nivoa mernoriji
n1ernoriji
drugog 11ivoa
DD 3.5.3 Cip so5t
_ 1,?8 Podaci +
lb- 5 f UpravljanJe Pentium-+ i UltraSPARC Ill primcri su proccsora visokih performansi za pravlje-
Parnost
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
Memorljski \ Memorljskr podacr 128 odeljku ukratku cemo 'c osvrnuti na taj sveL
baler UDB II Verovatno samo malo prcterujcmo kad kazcmo da svaki elektricni uredaj koji ku-
Mernorijski kod 16
za isoravljan1e gresaka sta vise od 100 do lara sadr/.i racunar_ Lcvesno jc da telcvizorc. mubilne telcfnnc, licnc
digitalne pomocnike. mikrotalasne pccnice, kamkordcre. videorikurdere. lascr;ke
Slika 3--IS. (ilavne funkcij~ jo.gra sistema UltraSPARC IlL
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
Ukoliko sc tral.cni red ne nalaz.i u kd memuriji drugog nivoa. on sc mora prcuzeti
da bi se postigle visokc performansc. stu vmli drugacijim kompromisima ud onih pri-
iz glavne menwrije preko UPA intcrfcjsa. UPA arhitektura tipa UltraSP/\RC imple-
menjenih u slucaju najbr;l.ih procesura kujc smo dosad proucavali.
mcntirana je romocu centralizovanog kontrolera_ Svi adrcsni i upravljacki signali
Kao sto smo pomenuli u poglavlju 1. cip o051 danas je vernvatno najpopularniji
procesora (svih prucesura ako ih ima vise) prolazc kruz centralizovani kontrolcr_ Da
mikrokontroler. uglavnom zbog svoje veoma niske cene. Uhrm cemo vidcti ida jc to
bi pristupio mcnwriji. procesm najpre mora da dobije dozvolu prcko izvoda za arbi-
vrlo JCdnustavan cip kome 'e lako i jcftino pristupa. Analitirajlll<l o~tda (;ip >\051. Ciji
triranjc. Kada dobije dozvolu. proccsur salje signale na adrcsnc izvode, zadaje tip
je fizicki raspored nozica prikazan na slici 3-49.
~ahteva 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
Pl.O vee
P1.1 PO.O I ADO
memr,rija.) Adresa i tip ciklusa magistrate se u dva ciklusa stavljaju na izvocle za adrc- P1.2 P0_1 / ADl
PU P0.2 I AD2
sirany. pri CCI1lll SC odguvarajUL'i red adresc Salje ll prVOll1, a odg:ovarajuca .,ko!ona'' P1.4 P0.3 i AD3
u drugom ciklusu. kao sto smo rckli prilikom objasnjavanja slikc 3-3 L P1.5 POA I AD4
P1.6 P0_5 / AD5
Dok ccka rezultatc. proccsor mo7.c da obavlja drugc poslove. Na primer. ukoliko u
PU P0.6 I AD6
kes memoriji ncrna instrukcijc koja se rrethodno preuzima, ne sprccava se izvrsa- RST P0_7 / A07
vanje _1cdne ili vise vee prcuzetih instrukcija. od knjih za svaku rnogu biti potrebni po- RXD I PlO Ei'\i VPP
TXO I P3.1
dac·i kojih ncma ni u _iednoj kes memoriji. Tako se UPA intcrfejsu moze istovrcmcno INTO I P3.2
uputiLi vi;c transakcija_ UPA intcrtejs mo/.e da obraduje dva nezavisna toka transak- iNfT I P3.3
TO I P3.4
cip (najl:escc citan_1e i upisivanjc), od kojih se svaki sastoji od vise transakcija u redu T11 P3.5
cekanja. 0 njima treba da vodi racuna centralizuvani kontrolcr i trcba da upucujc me- WR / P3.6
RD I P3.7 17 24 P2.3 A II
mmiji stvarne ;ahtcve najdikasnijim redosledom. 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


Poglavlje 3: Nivo digitalne logike 3.6 Primcri magistrala
198

Kao sto se vidi sa slike, cip 8051 isporucuje se u standardnom pakovanju sa 40 no- koristi se kada postoji spoljna memorija. Procesor salje ovaj signal kako bi oznacio da
zica (premda postoje i druga pakovanja za specijalne narnene). On ima 16 adresnih je aclresa vazeca. Spoljni memorijski cipovi po pravilu ga koriste cia bi ukljucili aclres-
vodova, pa moze da adresira do 64 KB memorije. Magistrala podataka je sirine 8 bi- ne vodove. posto ce oni ubrzo biti iskljuccni kako bi se koristili za prenos podataka.
tova, tako da se razmena podataka izmedu procesora i mcmorije odvija bajt po bajt Signali PSEN i EA# takode se odnose na spoljnu memoriju. Signal PSEN (Program
(umesto istovremeno u grupama od po 8 bajtova kao kod Pentiuma 4 i gruparna od po Store ENable) salje se kacla cip 8051 zeli da procita podatke iz memorije. Once po
Hi bajtova kao kod UltraSPARC-a III). On ima brojne vodove za upravljanje koje pravilu biti povczan s mcmorijskim signalom OE, kao sto je prikazano na slici 3-29.
ccmo opisati Ll nastavku, ali se od Pentiuma 4 i UltraSPARC-a- koji SLI cisti mikro- Signal EA# (External Access) po pravilu je vezan iii za visok ili za nizak naponski
proccsori - razlikuje po tome sto ima 32 ulazno-izlazna voda, organizovana Ll cetiri nivo tako da uvek ima istu vrednost. Ako jc vczan za visok nivo napona, internih 4 KB
grupe po 8 bitova. Svaki od ovih ulazno-izlaznih vodova moze se vezati za taster, pre- (8 KB na cipu 8052) rnemorije koristi se za adresiranje unutar opsega. a spoljna me-
kidac, svetlosnu diodu iii drugi uredaj koji ce cipu 8051 slati signale ili ih primati od morija se koristi za adrcsiranje iznad 4 KB (8 KB na cipu 8052). Ukoliko jc vezan za
njega. Na primer, svaki taster iii prekid~tc radio-budilnika moze biti spojen s drugim nizak nivo napona, spoljna memo,rija se koristi za sve aclrese, tako da se memorija na
ulazno-izlaznim vodom, dok neki drugi ulazno-izlazni vodovi upravljaju ekranorn. cipu efektivno zaobilazi. Na cipovima 8031 i 8032. signal mora biti vezan za nizak
Na ovaj nacin se vec.'inom, ako ne i svim funkcijama radio-budilnika mozc se upra- nivo napona jer ovi cipovi nemaju internu mcmoriju.
vljati softverski, pa nije potrcbna skupa diskrctna logika. Dva voda omogucavaju spoljnirn tajmerima da salju signale procesoru. Druga dva
Logicki rasporcd izvoda Cipa 8051 prikazan je na slici 3-50. Cip 8051 ima 4 KB in- voda omogucavaju cia elva razlicita spoljna urcdaja salju procesoru sistcmskc prekide.
terne ROM rnemorije (8 KB na cipu 8052). Ako to nijc dovoljno za konkrctnu namenu, Vodovi TXD i RXD omogucavaju serijsku vezu s tcrminalom iii mmlcmom. Na kraju,
na cip 8051 moze sc prcko magistrale prikljuciti do 64 KB spoljne mernorijc. Prvih se- vod RST omogucava korisniku iii spoljnom hardvcrskom urcdaju da ponovo pokrene
clam signata na levoj strani slike 3-50 koristc se za rad sa spoljnim memorijskim cipovi- i'ip 8051. Taj signal se najcdce koristi kada ndto krcnc naopako pa sistcm mora da
ma. ako postoje. Prvi signal A prenosi se preko 16 adresnih voclova i aclresira bajt se pokrenc ponovo.
spoljne memorije koji treba procitati iii upisati. Osam vodova D koriste se za prenos po- Po dosadasnjcm opisu, cip 8051 lici na drugc 8-bitne procesorc, ako izuzmcmo
clataka. Osam manje znacajnih adrcsnih signal a multipleksiraju se na is tim vodovima da postojanje scrijskih ulazno-izla:mih vodova. Ono sto cip 8051 st varno izdvaja jcsu J2
bi se smanjio broj izvoda na cipu. Pri transakciji na magistrali. ovi izvocli u prvom ulazno-izlazna voda, organizovana u cetiri prikljucka; prikazani su na dcsnoj strani
ciklusu radnog takta gencrisu aclrcsu, a zatim u sledcc.'im ciklusima prenose podatke. 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
A
biste imali proccsor, memoriju i ulazno-izlazne mogucnosti.
D 8
~Pnkljucak 0
Rif
WR
ALE 3.6 PRIMERI MAGISTRALA
~ Prikljui'ak 1
PSEN Magistrale povezuju komponente racunarskog sistema. U ovom odcljku detaljnije
8051 cemo analizirati ncke popularne magistrale: !SA. PC! i univerzalnu serijsku magistra-
lu ( Univc:rsal Serial Bus). !SA magistralaje u stvari malo unapretlena prvobitna IRM-
---+-- Pnkltui'ak 2
Prektdt -ova magistrala za PC racunarc. Zbog kumpatibilnosti sa starijim urcdajima, una je
postojala u svim PC racunarima za~novanim na lntclovim procesurima sve do pre
TXD 8 nekoliko godina kada su se Intel i Microsoft clogovorili da je izbace. l"vleclutim, ovi
RXD -----+--- Pnkljui'ak 3
racunari imaJU i drugu, brzu PC! magistralu. PC! magistralaje sira i brza od !SA ma-
RST 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-
<I> NapaJanje -
na magistrala za spore periferijske komponentc. kao sto su mis i tastatura. Druga vcr-
Slika 3-50. LogiC·ki raspored izvoda cipa 8051. J.ija USB magistrale radi mnogo brzc. U narednim odcljcima redom cenm analizirati
jcdi1U po jednu navedenu magistralu.
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)
200 Poglavlje 3: Nivo digitalne logike 3.6 Primeri magistrala 201

3.6.1 ISA magistrala 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
!BM~ova magistrala bilajc defitctu stanJard u si~tcmima zasnovanirn na proccsuru
DMA kanale. kao i za napajanje i uzemljenje. O~tali vociovi treba cla pornire razliku
8088 jcr su je skoro svi proizvodaci PC klonova kopirali da bi u svojim sistcrnima izme(1u 8~bitnog i l6~bitnog prenosa.
mogli da koriste brojne po-,tojece uhu.no~izla;.ne kar1icc. Ona ima 62 signalna voda, od
Kadaje IBM prcd~tavio seriju racunara PS/2 kao naslcdnika PC i PC/AT racunara.
kojih 20 sluzi za adrcsi!-~tnjc mcmorijc, S za prenos podataka i po jeJan za oznacavanjc
odlucio je cia sve pocne od pocetka. Ova odlukaje cielom bila tehnicki uslovljena (PC
citanja podataka iz memurijc. upisivanja u nju, citanja pociataka iz ulawo~izlaznih
magistrala je u to vreme zaista bila prevazidena). ali je delom bila prouzrokovana i
ure<taja i upisivanja p<KLtt,lka 11 nJih. Na njoj postoje i vodovi za zahtevanje i dozvolja~
zeljom da se stanc na put proizvodacima PC klonova koji su zauzeli ncugoclno veliki
vanjt' sistcmskih prd id:1 i n kunsccnje DMA kontrokra. To je veoma jednostavna
deo trzista. Tako su PS/2 racunari srednjc i visoke klase opremljeni potpuno novom
magistral a. magistralom Microchannel- koju je armija advokata zastitila gomilom patcnata.
iVTagistralajc ocl.~tampana na maticnu plocu i oprcmljcna je s nekoliko uticnica ra~
Ostatak racunarske industrije r~agovao jc tako sto jc prihvatio sopstveni standard,
sporedenih 11:1 rastujanju tld po 2 em. u koje se mogu urnetnuti razlicite kartice. Svaka
ISA (Industry Standard Architecture) magistralu- u osnovi PC/A:!' magistralu koja
kartica imajc;ic:tk k<lji odgov:tra lllicnici. Jezicak sa svake strane ima po 31 pozlaccnu koristi radni takt od SJ3 MHz. Velika prednost ovakvog pristupa bilaje to sto je nova
traku preko kojih se ostvaruje ekktricni kontakt sa uticnicom. magistrala bila kompatihilna s postojecim racunarima i karticama. Ona se zasnivala na
Kada je I Bi\1 napr~tvill PC/AT racunar L.asnovan na procesoru X02S6, morao je cia magistrali za koju je IBM ustupio licencu mnogim kompanijama u nameri da sto vise
rc·si v e I ik i prohkm. Dajc IB !'vl sve poe co ud nule i projektovao putpuno novu 16~bit ~ nezavisnih proizvodaca ukljuci u proizvodnju kartica za originalni PC racunar -- nt'Sto
nu ma)listr:tlu. mn,,gi putc·ncijalni kupci bi oklcvali da je kupe jer nijcdna od velikog sto ct' mu se vratiti kao bumcrang i kunacno ga izgurati s trzista PC racunara. Sve do
bruj:t kartica kuje c,u nudili n~.:1.avisni proizvodaci nc bi mogla da radi s novim racu- pre nekoliko godina. vecina PC racunara zasnovanih na lntelovim procesorima irnala
narnm. S drugc .str~\llt'. vc;:ivanjem za PC magistralu s njenih 20 adrcsnih vodova i 8 je ovu magistralu. mada uz jos jednu iii vise clrugih magistrala.
vt>Jova ;;1 podatkc ne bi \C mogle iskoristiti mogucnosti proccsora 1\02:-\6 da adresira !SA magistrala je kasnije prosircna na 32 bita, a dodate su joj i nove mogucno~ti
16 [VI B !llCJil()l"ije ida prenosi 16~bitnc reci. (npr. za visestruku obradu). Nova magistrala je nazvana EISA (Extended ISAJ
OdluCeno je da sc PC magistrala prosiri. Kartice imaju ivicni knnektor sa 62 kon~ magistral a.
ta:.:ta. ali on nc zauzima n~lu 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 3~51.
3.6.2 PClmagistrala
Na originalnom IBM PC racunaru aplikacije su uglavnom radilc s tckstom. lpak.
Uticnice
M:1~1C1!d :JioCJ PC magistrate PC magistrala po uvodenju WinJowsa postajalo je sve popu larnije i graficko konsnicko okru/.enjl'.
Uticn1ca Kart1ca Nijcdna aplikacija nije pre vise naprczala !SA magistralu. ali kako jc vrcme prolazilu.
\i,
rnnogc aplikacijc (narocito multimedijalne igre) pocele su da prikawju pokretn.c ,]ike
'
j/

I0 ~
I nU
0
0 na celom ckranu racunara.
Napravinm jcdno,tavnu racunicu. Zamislile .. pokretne ~like'" na c:kranu rCLdtiLije
102-+ x 768 tacaka. ptikazane u prirodnim bojama t3 bajta pu pikselu1. Jedna ;.liLt na
0 lJ 0 ekranu sadrli 2.25 MB podataka. Da bi sc postigao utisak n prirodnom krct:tlljll nco~
' no
uII 0
phodno je smenjivanje bar 30 slika u sckundi. pa brzina prenosa poclatab I reba da
n o u bude 67.5 MB/s. Situacijajc u stvari gora ncgo sto izglcda. posto za pribzivanJe video
0 0 ;:apisa sa cvrstog di,ka. CD~a ili DVD~a, pndaci s disk jeJinice muraju ma~i,tr~dom
0 0 :J 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
Prc.c~JsDr 1

d:"UiJi C:pO'Ji opseg ud 1.15 MB/s. ne racunajuci opseg potrcban proccsoru i drugi;n urt'dajim"-
D D ISA magistr~tla ima maksimalan takt od S,33 MHz i molt' da prenest' 2 bajl<~ po
c::::::J ciklusu. o'tvarujuci tako maksimalan propw;ni opseg od 16.7 1\18/-;. EISA ma.:.:i:-;tr~iia
I c::::::J 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 cc~
Nove ut1cnice za PC/AT lvicn1 konektor 1om ekranu.

Stika 3-51. PC/A r magistrala ima dve komponcnte. originc~lni PC dco i nov den.
1~
202 Poglavlje 3: Nivo digitalnc logikc 3.6 Primcri magistrala 203 I

!
Intel je 1990. godine ovo predvideo i zato je projektovao novu magistralu mnogo ve- Magistrala
ka kes memoriji Lokalna magistrala Memorijska magistrala
ceg propusnog opsega. cak i od EISA magistrale. Nazvao ju je PCI (Peripheral Com-
ponent Inte1·conncct). Da bi je promovisao, Intel je patentirao PC! magistralu i sve Kes
pate11te preneo u javno vlasnistvo, tako da je svako mogao cia pravi periferijske uredaje mernorija Glavna
drugog mernorija
za n:u, ada ne placa procenat. Intel je osnovao i industrijski konzorcijum- Posebnu in-
nivoa
tere~nu 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 ).
ISA Raspoloziva
Prvohitna PC! magistrala prenosila je 32 bita po ciklusu i imala takt od 33 MHz
most PCI uticnica
(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- ISA magistrala
y/
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. Raspoloz1va
ISA uticnica
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
Slika 3-52. Arhitcktura starijcg sistemas proccsorom Pentium. Dchljc nacrtanc magistralc irnaju
sa svim starim !SA karticama. U Intelu sc razmisijalo o izradi r~tcunara s tri i vise ma- vc:ci propusni opseg od onih tanjih, ali slika nijc u pravoj ranneri.
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 postoje univer;alne kartice koje rade na oba napona i mogu se umetnuti u ohe uticni-
sa PC! magistralom. Takva organizacija zadovoljilaje sve zahteve i zato se masovno ce. Chim sto sc kart ice razlikuju po rae! nom naponu, postoji i 32-hitna i u 64-bitna ver-
kor.stila devedesetih godina. zija. Prva verzija ima 120 nozica; 64-hitne imaju istih 120 nozica i dodatne 64 nozice.
Dve kljucnc komponente ovakve arhitekture hila ~u dva cipa za premo~eavanje napravijcn<: na nacin na koji jc IBM-ova PC magistrala prosirena na 16 bitova (siika
(koje je proizvodio Intel - otuda i njcgov interes Ll citavom projektu). PC! most po- 3-5 l ). Si~tem sa PC! magi~tralorn koji podrzava 64-hitne kartice mo:l,e cia prihvati i
VC;I"Llje procesor, mcmoriju i PC! magistralu, clok ISA most povc;:uje PCI magistralu sa 32-hitnc kartice, ali obrnuto nije mogucc. Na kraju, PClmagistrale i kartice mogu da
!S!t magistralom i podrzava jcdan iii dva IDE diska. Skoro svi sistemi s Pentiumom 4 rade nc~ taktu od 33 iii 66 MHz. Takt se bira tako sto sc odredena nozica vezuje iii za
im~.ju jednu iii vise praznih PCI uticniea Dt dodavanje novih periferijskih urcuaja Vt> napajanje iii za uzemljcnje. Uticnice magistrale su iste, bez obzira na takt.
like brzine i jednu iii vise !SA uticnica za dodavanjc sporih pcrifcrijskih uredaja. Krajem devedesctih godina, skoro svi su smatraii daje !SA magistral a zastarela. pa
Velika prednost organineijc prikazane na slici 3-52 jeste to sto procesor ima izu- su jc u novim pmjektima zaobilazili. Medutim, negcie u to vreme rezolucija monitora
zctJo veliki propusni opseg ka memoriji preko memorijske magistrale koju je Intel se poveeala u nckim slucajevima i na 1600 x i200 pikscla. pa su porasli i zahtevi za
pravno zastitio; PCI magistrala ohezbet!uje veliki propusni opscg brzim perifcrijskim prika;ivanje pokrctnih slika na celom ekranu, narocito u kontckstu visokointeraktiv-
ureLlajima. kao sto su SCSI ciiskovi, graficke kartice i dr.. ajos uvek se mogu koristiti nih !gara. Zbng togajc lnteluveo jos jednu magistralu, iskljucivo za potrcbe gratickib
i sUre !SA kartice. Oznaka LSR na slici odnusi se na univerzalnu scrijsku magistalu kartica. Ta magistala je clobiia ime AGP (Accelerated Gmphics Port). Njena prva
(engl. Unil'ersal Serial flus. USB) o kojoj ccmo govoriti u drugom dclu poglavlja. vczija. ACJP 1.0. radilajc hrzinom od 264 MB/s, a dohilajc oznaku lx. lako je magi-
Bilo bi lcpo kada bi postnjala samo jcdna vr.sta PC: I kartica. Nalalost, to nije slucaj. strala AGP 1.0 bila sporija od PCI magistral e. bila je namenjena iskljucivo za graficke
One ~e razlikuju po naponu, sirini i vremcnskom usklat!ivanju. kartice. Tokorn godina pojavljivale su sc nove verzije, sve do magistrale AGP .l.O koja
Stariji racunari po pravilu kmiste napun ud 5 volti. a noviji napon od 3.3 volta, je radii a brzinom od 2.1 GB/s ( Sx ). Na slici 3-53 prikazan jc savremeni sis tern s pro-
tako cia PC! magistrala podr!ava oha napona. Uticnice za oba napona i;glcdaju isto. cesorum Pentium 4.
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,
.,.
Po~lavlje 3: Nivo digitalne lo~ikc 3.6 !'rimeri magistrala 205
204

svc, za najkr~tcu transakciju jo~ 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 ,.;!u~ajna ugraden u jcdan od cipova
Kes memori]a Glavna za prcmoscavanjc. Svaki PCI uredaj ima dva namenska voda koja ga spajaju sa arbi-
prvog nivoa rnemorija trom. Jedan od njih (REQ#). koristi se za lallkv~mjc pri:.tupa magistrali, a drugi
Kes mernorija (GNTII). prihvata dot:vole za preuzin1anje magistrale.
drugog nivoa

,.. '~
~
z"'
~ f- ~ f- f-
u.J
a:
z u.J
cr:
z u.J
cr:
~ ~ ~
PCI
arb1Ur
PCI PCI PCI
uredaj uredaj urectaj
Slika J-53. Struktura ma~istrala ~a\TClllCIJOg ral·un:n·a ;.asnovanog na proccsoru Pentium 4.
Stika 3-5-l. Net I'Cima:;isirali koristi .se centraliznvani arhitar.
U ovakvoj urgani;:aciji centralno mesto ;:auzima cip za prcmoscavanje. On pu-
ve;:uje pet glavnih delova sistema: pmcesor, mcm•1riju. gralicku karticu. ATAPI kPn- Kada zahteva kuri;cl.'njc magistrale. PC! uredaj (ukljucujuCi i procesor) saljc si-
trokr i PC! magistralu. U nckirn slucajevima. on podr:l.ava i mrl'lnu karticu i druge snal FU)H i ceka d~\ arbitar posalje sign eli Ci'O:T#. Cirn se to dogudi, uredaj moze da ko-
uredaje vdike br;.ine. Spori uredaji su prikljuceni na PC! magistr:ilu. risti mc:gistra!u vee u slcdcccm ciklusu .. \lguritam koji koristi arbitar nije dcfinisan
Cip za premoscavanje je internu podeljen na dva del a: na memorijski ina ubzno- PC! specitikacij<llll. Do1voljenu je c:ikliC:·nu dodcljivanje pristupa, dodcljivanje pri-
-izlazni most. Memorij~ki mmt povezuje procesor s rnernorijom i s gralickilm karti- mlpa prema prioritetu. kao i drugc scme . .iasno. dobar arbitar treba daje i pravican
com. Ulazno-izlazni most direktnim rncdusobnim vezama poveLUJC AT·\ I'! k.mtrolcr. - nc '>11lc usiaV!Jclti nckc ctreLtaje LLl vec·nu Cekaju na pristup.
PC! rnagistralu i (opciono) druge hr;e ulazno-izbzne uret!aje. Ova elva musta su DPZ\\1!a za pnslupallJC vazi :-.amo ,:a_j.;dnu transakciju. premdaje duzina transak-

rnedusobno povezana veoma brzom vezom. cijc tL'IH"ij'ki neugrani~·ena. Aku uredaj /ell da ohav i drugu transakciju, a niko drugi
PC! magistral a je sinhruna, kao i sve PC magi,trale unazad dt> prvnhirnog IBZ'vl- ne nhtcq pristup magi.,traii, llll tu muLL' pollllvo da uradi, iako cesto izmedu uza-
-ovog PC racunara. Sve transakcije na PC! magistrali udvipju sc~ izmc:llu glavnog stopnih tran.-;akcij<~ mora d:l usld\ i jcdan prcll:an ciklus. U posebnim okolnostima,
uredap- inicijatora. i pudredenog uredaja- cilja. Da bi ~e srnanjio bruj vodova na LiLLI ncma !lctdmetanja ~a magi:,tralu. un:daj mo.l:e Ja obavi transakcije jednu za dru-
PC! magistrali, adresc i pudaci sc multipleksiraju na i-;tim vociov ima. Zatu su na PC! gom ne prnpustajuci tai jed~m ...:iklus. ,\kn uredaj koji je preuzeo magistralu obavlja
karticama potcbne samu 64 no/.ice ita adresir<~nje i za pocbtL:. iako PC! magistr~da ver,ma du~ prenu\. a dru~i un:Lbj tadct z~ttre1/i pristup, arbitar moze da ponisti signal
podr/.ava 64-bitnc adrese i 6-1--bitni prenos puJatab. (j:~i'i'. Od trc:nulihl):' kmi'inika ma;istn!e t'c·ek.u.Je se da nadglcda vod GNT#, pa kad
Multipleksiranje adresa i podataka <)bavlja se na slcdeei nacin. P:·i operaciji citania. utv:·di dajc ,ignai na n.Jemu j1<~1li.~tci;. u .->kdecem ciklusu treba da oslobodi rnagistra-
gl3vni ureLtaj tokom ciUusa l postavlja aclre~u !let mag1stralu. li cikluO'LI :2. g:Llvni ure- lu. Ov:1kva ;ema tlm,cgLh.'ava ctu:; i nerrcL,!an prenos podataka (sto je etikasno) kada
daj povlaci adresu i oslohada magistralu taku da je mo:·.c kuristiti p<xircdeni uredaj. U samo jcdan u.'esnik 1.ahte\ a lllctg;:.lialu. ,di istuvremeno omoguc'ava i brzu reakciju
ciklusu 3, podrcckni uredaj ~aiJe trazene podatke. Pri Dperaciji up1>ivanja. glavni ure- sistema na zaht-:\·e k()nkurentnih urcdajcl.
daj ne mora cla oslobada magistralu jcr un 'tavija adn:su i ~alje pudatke. Bez obzira na
Poglavlje 3: Nivo digitalne logike 3.6 Primeri magistrala 207
Tn
206
i
I

lsig~al Glavni Sporedni


Signali PCI magistrate
Na PCI magistrali su, kao sto se vidi na slici 3-55(a), mnogi signali obavezni, ali ' CLK
i
[- -- - - - t - --
:1
Voctovi
-r- 1

Radf1i_takt (3~_MHz_iii_~6 MHz)_______ -~


ima i mnogo neobaveznih, kao sto prikazuje slika 3-55(b ). Preostalih 120 ili l ~4 iz- [~[) ~~ ~ ~ "32- -l X
M_u~tipleksirane a~r~-.se ip~.9aci _ _______ 1
-+ Bit parnosti adrese iii podataka l
voda koriste se za napajanje, uzemljenje i druge srodne funkcije koje ovde ne nahra- PAR
jamo. U stupcima G/avni (inicijator) i Sporedni (cilj) navedeno je koji uredaj salje
1--
1
- K_o~anda_m~g~~~~~-brtm~~;;-tr~en1t1_b_a_Jto_v_a___l
I GiBE _(
signal pri normalnoj transakciji. Ako signal salje neki drugi uredaj (npr. generator
1 -FRA~iE#
-----
't Oznacava da su poslat1 s1gnal1 AD 1C/BE
-- --- - --- - --- -·----1
rad:mg takta), oba slupca su prazna. f1F:lov# C1tan]e glavn1 uredaJ ce pnhvat1t1 podatke,
')pisimo ukratko svaki signal PCI magistrale. Poceeemo od obaveznih (32-bitnih) I
upiSIVanJe: podac1 postoJe
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,
[10SEL -.
-ix --- l Bira se konliguracioni prostor umesto memorije
t--- ---- ------- -
. DEVSEL# 1 I Sporedn1 uredaJ Je dekod1rao svoJU adresu
transakcija na PCI magistrali ne zapocinje na pocetku ciklusa, vee kod silaznc ivice
I - - I '__ f 1~luskuJe _ _ __ __
signala CLK koja se nalazi u sredini ciklusa. ~TROY# -~X 1 C1tan]e: podac1 posloJe; up1s1vanJe: sporedni
I
Trideset dva signal a AD predvidcna su za adresiranje i prenos podataka (za 32-hit-
l- --1 ..
: uredaj ce prihvatiti podatke
ne transakcijc). Adresa se smeiita na magistralu tokom ciklu~;a l. a podaci tokom
cildusa 3. Signal PAR je hit parnosti za signale AD. Signal c/BE# ima dvc ratlicite na-
I STOP#
·r-
IX
r
,Spo~~dni~d~J zeli da od~ah preki~e
transakciju
--

mtne. u ciklusu l on sadrzi komandu magistrali (citaj jednu rec. citaj hlok itd.). u IPERR# .1 +Primalac je otkrio gresku parnosti u podacima
ci~lusu 2 on sadrzi 4-bitnu bitmapu koja ukazuje na tra7.ene bajtove u 32-hitnuj reci. f-
]SERA# 11 Otkrivena greska parnosti adrese iii sistemska
Pcmoeu signala c/BE# mogu se procitati iii upisati I, 2 ili 3 bajta. kao i citava rcc. I
I
! I greska
1
Arbitrira~e: zahtev~ se p~ist~p magist~ali
~~~~;
Signalom FRAME# trcnutni vlasnik magistralc zapocinje transakciju. Tim signal om ! 1
-1 - - - - - -- - -

on saopstava poclrcdcnom urcdaju da su adrcsa i komande magistrali sada potpunu u 1

i 1 I Arbitriranje dodeljivanje pristupa


re,.Ju. Pri citanju se ohicno, uporedo sa signalum 1-'R'\~IE#, salje i signal IRDY#. On
j -··· - -· - -- -- .. -
~~ST~ ,1 · Ponovno pokretanje sistema i svih uredaja
mnacava daje glavni uredaj spreman da prihvati poslate podatke. Pri upisivanju, sig- '
(a)
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 ~ignala IDSEL). I Signal _l Vodovi I Glavni
ISporedni
i
- ... i Opis
Ovaj kontiguracioni prostor sadr?j svojstva urectaja. Operativni 'istemi koji podrh- .RE064# 1 ! X j ~~htev z~~ba~IJanje 64~itn~tr;~sak~ije
vaju tehnologiju Plug-and-Play, tj. automatski prepoznaju i kontigurisu nove perife- 'ACK6<1# ]2 :x . Dozvoljena 64-bitna transakcija
ri,skc uredajc, upravo u ovom konflguracionom prostoru uredaja pronalazc njcgova AD 32 X [ Dodortn~ 32-bita-;.9!~~e iii p_od~tak~- !
I
s''Ojstva. 1 PAR64 11 ,X Parnost za dodatna 32 bita adrese iii I
Sada dolazimo do signala koje salje podredeni uredaj. Prvim od njih (DEYSFL#). on podataka
oojavljuje kako je postavio svoju adrcsu na AD vodove i spreman jc da ucestvuje u ClBE# X Dodatna 4 bita za oznacavanje trazenih
uansakciji. Ukoliko sporcdni urcdaj ne posaije signal u~:VSfL# u odredenom vre-
f
14 bajtova
mcnu. glavni uredaj nclustaje od transakcije jcr prctpostavlja da adresirani urec1aj vi~c ; LOCK ]1 IX Zakljucava magistralu zbog vise uzastopnih
I transakcija
1jjc tu i li jc neispravan. I - - -- --- -- -

Drugi signal knji salje spuredni urcc1aj jc TRDY#. Njimc sporeclni uredaj prilikom SBO# 11 Pristup udaljenom kesu (za multiprocesore}
~ -- --

citanja objavljuje da su pmlaci na AD vodovima, a pri upisivanju da jc spreman da SDONE :1 ! Prisluskivanje obavljeno (za multiprocesore}
1 ----- -- - ---- -- --- - ---- - --

rrihvati podatke. 1INTt 4 Zahteva se sistemski prekid


Sledcea tri signata sluzc za i1vestavanje o greskama. Signal STOP# salje sporcdni JTAG 5 I JTAG signal za testiranje prema standardu
uedaj kada se dcsi nesto nepredvideno. saopstavajuei da zeli da prekinc transakciju. ·IEEE 1149.1
Signalom PERR# izveiitava sc o pogresnoj parnosti podawka u prethmlnorn ciklusu. M66EN Vezano za napajanje iii za uzemljenJe I
\ljega pri citanju salje glavni urcdaj. a pri upisivanju sporedni. Uredaj koji ga primi I (66 MHz iii 33 MHz} .!
;reba da preduzme odgovarajuee mere. Na kraju. signalom SERR# izvestava se ogre-
(b)
;kama pri adresiranju i o sistemskim grcskama. Slika J-55. (a) Obavczni signali PCI magistrak. (b) Ncobavczni signali PCJ magistralc.
Poglavljc 3: Nivo digitalnc logikc 3.6 Primed magistrala 209
208 ---------~-----

Pomocu signala REQ# i GNT# obavlja se arbitriranjc na magistrali. Njih ne koristi Ciklus magtstrale
tekuci vlasnik magistrate, vee uredaj koji to zeli da pm.tane. Poslcdnji ohavczni signal I

je RST# i njime se punuvo pokrecc citav sistem tako sto korisnik pritisne taster RESET ~-- Citanje Pauza --- - -- UpisivanJe--- --~

ili sistem ohori i ponovo pokrene neki uredaj koji je pretrpeo nepopravljivu gresku.
T7--~
1

I- .
- Tt----~--- T2 ·· -~~ T3
I
-T5--I- T6-- -j-
Ovaj signal vraca sve urel!ajc u pocetno stanje i ponovo pokrccc racunar.
. - I • I
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. C/BE#
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-
FRAME#
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 IROY#
odrzavanja usaglascnosti kcsa.
Pomocu signala lNTX zahtcvaju sc sistcmski prckidi. PCl kartica moze imati do ce- DEVSEL#
tiri zascbna logiCJ.,a urcdaja, a svaki od njih mo/.c da ima zascban vod za zahtcvanje
si~tcmskog prckida. Signali JL\G sluzc za JTAG testiranjc prcma standanlu IEEE TROY4
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.
Stika J-56. Primcri ~2-hitnih trar"a~cija na PC! rwtgistrali. Prva lri ciklusa kuriste se ~a opcraciju
l:it,mjc~. ntim :;kdi prazan ciklus. pa tri ciklu.sa upisivanja.
Transakcijc na PCI magistmli
PC! magistralajc u.~tvari veomajednostavna (kao i sve magistrale). Da histc stckli 3.fd Magistrala PCI Express
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 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-
ohavlja isti glavni uredaj.
Kada tokom ciklw;a T l pocnc da opada signal radnog takta, vlasnik magistralc po- tckture. Sa slikc ."\-53 jcNlO sc vidi da l'Cl magistrala nijc visL' centraini elcmelll koji dr.li
stavlja memorijsku adresu na AD vudove, a komandu magistrali na vud c/BEil. Putum na olsupu "c dcluvc PC ra(·unara. Tu ulogu jc: t'd nje prcu/eo cip ;a premoscavanje.
Sustina prnhleill<i JC to ~to ima _,\c vi:~c ubwo-i~Ja;nih urcdaja koji su prebrzi za
salje signal FR,\ME~ L<l zapocinjanje transakcije.
Tokom ciklusa T , glavni uredaj oslobada rnagistralu da bi je mogaD prcuzcti spo- PC! magi-.;tralu. Pt)\ c'C:l\anje radnog takta magistralc nije dohro rc~enJe jcr se tada
2 pogor.~avaJu pruhlemi ,a asimctricnuscu njcnih v·odr•va, prcslu;:wanjem izmedu su-
rcdni uredaj tokom ciklusa Tl- Cilavni urcdaj rncnja i signal c/HE# u skbdu s bajtovi-
scdmh vmluva i ci"ektinld kapacilivnosli. Kad gml sc pc)javi ncki ulazno-izlazni urcd,tj
ma adresiranc rcci.
U ciklusu T . sporedni uredaJ salje signal DEVSEL# obavc~taYajuci glavni uredaj da koji je prcvis<~ brz za PC! ma~i,talu tkau ;ru -.;u grafick.a kartica. cvrsti disk, mrc:!.a
1
je dnbio adresu i da namerava da odgovnri. On smcsta podatkc na ..'..ll y,Jclove i tu itcl.). lnll:l uvom ciru za prcrnoscavanjc doda_1c nuv -,pcciJCdan prikljucak kaJ,o bi se
potvrdujc saljuci signal TRDY# glavnom uredaju. Ako sporedni urcdaj nc 1111J:I.c da 11d- urcdctJU omogucilo da zaohick PClma~istralu. Jasn,J jc da ni ovakvo rdenje nijc du-
govori tako brz11, once poslati signal DEVSEL# da objavi svoje po:,tojanjc, ali cc se gog veka.
uzdr?.ati od slanp signata TRDY# svc duk ne bulle imao spremnc podatJ,e. Takvim pu- Drugi problems PCl magi~'tralurn 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
stupkom umccc se jed no ili vise stanja cekanja.
ll o~om primeru (a cesto i u stvarnusti l. slcdeci ciklus je pra1an. Poccv si ,,J c:ik.lu- prave jo~ m:mjc racutwrc. bto ta~tl. ncki pwn-\1daci hi hteli da pt·eurcdc PC racunar
sa T , vidimo da isti glavni uredaj zapocinje upcraciju upisivanja tAn ~tn. b1': obic- tako da pruccsl)r i me:n,Jriju -,ta\'' umalutatvurc'ilU kutiju, a Lvrsti di~k u monitor. Uz
5 PC! karticc taho nc~tu nije moguc'c.
no, na magistralu smdta adresu i kumandu.
Ipak, sada u drugom ciklusu on salje i podatkc. Pus to i~ti urcdaj postav lja sign,tle
na AD vodpvc, nep,ltreban jc prazan ciklus u komc sc menja vlasnik m~:gi-,trale. l'
ciklusu T7, memorija konacno prihvata podatke.
Poglavlje 3: Nivo digitalne logike 3.6 Primeri magistrala
210

Predlozeno je vise resenja, ali se ono koje najvise obecava (i to s pravom, jer iza Arhitektura magistrate PC! Express razlikuje se od arhitekture stare PCI magistrale
njega stoji Intel) zove magistrala PCI Express. Ona ima malo toga zajednickog s u tri glavna aspekta. Ova smo vel' videli: centralizovana skretnica umesto magistrale s
PCI magistralom (u stvari, uopste i nije magistrala), ali Intelov marketinski tim nije mnogo uticnica i upotreba elegantne serijske veze od tacke do tacke umesto siroke ma-
dozvolio da dobro poznato ime ,PCI magistrala"' nestane tek tako. PC racunari koji je gistrale s mnogo paralelnih vodova. Tree a razlika je finija. Po koncepciji rada PCI ma-
sadrze, vee neko vreme su na trzistu. Pogledajmo sada kako ona radi. 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-
Arhitektura magistrale PCI Express 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
Sustina rdenja koje donosi PCl Express jeste da se napusti paralelna magistrala s
upravljacki signali koji postoje na PCI magistrali. Korisni podaci (engl. payload) pre-
mnogo glavnih i sporednih urcdaja ida se ide na direktno serijsko povezivanje urecta-
nose se magistralom. PC racunar opremljen magistral om PCI Express u stvari je mi-
ja brzim vezama. Ovakvo rescnje je radikalan raskid s tradicionalnom ISA/EISA/PCI
nijatuma mre:Za s komutiranjem pl\keta.
arhitckturom magistrate i konccpcijski mnogo toga duguje lokalnim mre:l.ama, na-
Osim ova tri glavna raskida s prosloscu, postoje i mnogc rnanje razlike koje redom
rocito komutiram1m Ethcrnetu. Osnovna ideja je sledeca: PC racunar je sastavljen od
navodimo. Na pakete se primenjuje k6d za otkrivanje gcsaka koji obezbcctujc vcc'i ste-
procesora, mcmorije i kontrolera ulazno-izlaznih urcdaja koji moraju biti medusobno
pen pouzdanosti od PC! magistrate. Fizicka veza izmedu cipa i skretnice produzena je
povezani. Tuna scenu stupa magistrala PCI Express u ulozi skretnice (engl. switch)
(mozc biti do 50 em), sto omogucava deljenje sistema na vise zasebnih celina. Sistcm
opste namene koja spaja cipove pnmol'u serijskih veza. Uobicajena konfiguracija
jc prosiriv jcr nov urectaj moze da bude i druga skretnica (maksimalno tri skretnice).
rai:·unara s magistralom PC! Express prikazana jc na slici 3-57.
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
Kes budu mnogo rnanji. Sve u svemu, veliki iskorak posle PC! magistrale.
memoriJa
drugog
nivoa 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
Uparene serijske veze zaglavlja, mesto za adresu primaoca, datum, pozdrav, tckst poruke. potpis itd. To se

~/f
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!
Grafrka Drsk Mreza USB 2 I I Ostalo Express prikazani su na slici 3-58(a).

Sloj sottvera
Slika 3-57. Tipican si.,tcm Lasnovan na magistrali PC\ Express.
Sloj transakcija I Zaglavlje ] _ Korrsni podaci I
Kau sto se vidi na slici. procesm. memorija i kes povezani su sa cipom za premo-
~cavanje na k.lasican nacin. Novost je skretnica vezana za most ( mozda deo samog
SloJ veze !Redni broJ/ ?aglavlje I Korisni podaci I CRC I
cipa za prcmoscavanjc). Svaki ulazno-izlazni cip ima dircktnu namensku vezu sa Fizrcki sloj LDkvir /Redni brad ZaglaviJe I Korisni podaci I CRC . j Okvir /
,kretnicmn. Svaka veza ima dva jednosmerna kanala (jedan ka skretnici, drugi od Ia) (b)
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, Slika 3-5~. (a) Protokoli sistema PC! Express. (h) Format pakcta.
ova sledi mnogo ravnomerniji model u kome se svi uredaji ravnopravno tretiraju.
pa-------
1

Poglavlje 3: Nivo digitalne logike 3.6 Primcri magistrala


r
212 213

Analizirajmo pojcdine slojcve miozclo nag ore. Prv i je lizicki sloj. On premesta bi- U svakoj transakciji koristi se jedan od cctiri adresna prostora:
tove od posiljaoca ka primaocu preko vcze od tal:kc do tacke. Svaka vcza od tackc do l. Memorijski prostor (za obicno citanje i upisivanjc).
tackc sastoji sc od jednng iii vise parova jcdnosmernih vcza. U najjednostavnijern
::!. Ulazno-izlazni pmstm (za adrcsiranje rcgistara uredaja).
slucaju. za svaki srner postoji jed an par vcza. ali postoje i 2. 4. S. 16 ili 32 para. Svaka
3. Konliguracioni prostor (za inicijalizaciju ~istema itJ.).
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 4. Prostor poruka (za signaliziranjc. sistemske prckidc itd.).
smcru od 2,5 Gh/s, ali se ol:ekuje da ta hrt.ina porastc na I U CJiJ/s. Svi danasnji sistcmi imaju memorijski i ulazno-izlazni adresni prostur. Kontigura-
Za razliku od magistrala lSA/ElSA/PCI, PCl Ex pres-.: nc·ma gc'ncrator radnog tak- cioni aJresni prostor mozc se iskoristiti za implementiranjc tehnologija poput Plug-
ta. Urcdaji mogu poceti da ~alju podatkc Cirn hudu spremni. (h,:kva slohoda ubrzava -And-Play. Adrcsni prostor poruka preuzima ulogu vcCinc dosaclasnjih upravljal:kih
sistcm. ali i stvara problem•~. Pretpostavinm da se bit l kodira naponom od +3 volta, signala. To je neophodno jcr magistrala PC! Express nema upravljal:kih vodova kak-
a bit 0 naponom od () volti. Ako su prvih nekoliko bajtllv:t nuk. kako primalac zna da ve irna PC! magistrala.
prima podatkc kada niz bitova 0 izgkJa isto kao i ncak.tivna \e!.a'! Problem je rdcn Sloj softvera povczujc magistralu PCI Express sa operativnim sistcmom. On
takll sto je primcnjcnu kodiranjc ShilOh [L'ngl. 8h/ I (}/J 1'/lt'Odlnc: ). Prcma tnj semi. I 0 mozc cia emu lira PCI magistralu. sto postojccim uperativnim sistcmima omogucaq
bitova sc kmisti za kodiran_1e jcdnog haJla stvarnih podataka u lll-bitni simbol. Od da bcz izmcna raLk s magistralom PCI Express. Naravno. raJom na takav nacin ncec
l 02-+ moguc'a 10-bitna :-,imbola. ta kodiranjc su i1abr~llli samo nni unutar kojih se sig- sc sasvim iskoristiti moguL'nusti ovc magistrale, ali je kompatibilnost sa ~larijim si-
nal menja dovuljno cesto da po::.iljalac i primalac budu o,inhrunizovani na granici bita stcmima nuzno zlo svc clok ~e opcrativni sistcmi ne podcsc da potpuno koristc PC!
i bcz pusrcLbtva radnog tak.ta. Poslcdica kodiranja 8b/l Ub jestc to da veza nominalnog Exprc.~s. lskustvo nas ul:i cia to nwze potrajati.
kapacitcta 2.5 ()b/s mnz.e da prenesc S<llllO 2 (]b/s kurio,nickih puJat<tka. Tok informacija je prikazan na slici 3-5:--\(b ). Kada se sloju softvera zaJa komanJa,
D11k se tiJj(ki sloj bavi prclllht>lll hitma, sloj vezc (engl. !inA. !uver) bavi se pre- on jc prosledujc sloju transakcija, koj i je formulise u obliku zaglav lja i korisnih poJa-
lllhl'i11 pakcta. On prcu1.izna Dtglavljc i kmisne podatke koje mu prcJa sloj transakeija taka. Ta dva deJa se zatim prusleJuju sloju vezc koji im sprcda doclajc redni broj. a iza
ina njih dudaje rcdni broJ i k.t!d za i:;pr::vlj:lllJL' ;c.rcsaka nazvan CRC (Cyclic Redun- CRC vrcJnost. Tak.o uvccan paket preclajc sc lizickom sloju koji na svaki kraj Jodaje
dancy Check). CRC se gc·ncrisc obradom 1.agla\lja i korisnih podataka odredcnim informaeije t.a uokvirivanjc i tako ohlikuje tizicki paket koji se stvarno prcnosi. KoJ
algt>ritnlolll. Kad:t primi pak.el. primal,tc ohav1j:\ isto iaacunavanje sa zaglavljcm i primaoca sc obavlja obrnut proccs. pri ccmu se u sloju vezc s paketa skiJaju zaglavlje
pndacima i puredi ro.ultat s ncdntJ~cu k.ojc~ sc naia1.i u pak.ctu. Ukoliko seta vrcdnost j proJuzetak a llll() S[O ()Slane proslcLJUje Se s]oju lransakcija.
i rC/u!Ltl izr:tcu!la\ <tnja sluLC, Oil saljc krcttak. pakct za potvrdu ispravnog prenosa Konccpt Jopunjavanja podatak:1 Jodatnim informacijama na njihovom putu niz
(en~' I. udnmviedgnu:nl f!tlt-f.cl'r). i\J...u .ie vredilL"li ne _,]t,/,e. primalac zahteva ponovno slojevc protokola clccenijama sc ' velikim uspchom koristi u ral:unarskim mrdama.
slanje pm.lataka. Na tal nat:in sc integritel pndat:tk.a povecava vise nego u sistemu s Velika razlika izmcdu rnrcZ.a i magi~tralc PCI Express Jestc to sto je u mrezama kCld
PC! magi~tralum. gdc- c.;e puLLtci nc n;.,gu ni pn1\ era\ ati ni punovo »lati. u ra;.licitirn slojevima skoru uvek c.;olher~ki (cleo operativnog sistema). KoJ magi-
Da br,.:i po;iljaiac· nc hi spurog prin1aoca ;Arpao paketima kuje ovaj ne moie da strate PC! Exprc,s, on je potpurw deo hard vera uredaja.
ubradi. U\'edc'll jt~ 111L'hallif,lJI1 kon(ro!c toka it'llgl.j/ow COII/ro/) podataka, StO znaci da PC! Express jc slozena tcma. Vi~c infonnacija mozcte naci knd Mayhewa i Krish-
prin1:ti,tc pu~iljauct• Lk>ck·ljuj" tllir~cL-n broJ k.rcJila koji odgovaraju vclicini njegovog nana. 2003, i koJ Solarija i Congclona, 2005.
h;ti'cra za prijc'lll pakcta. Kada sc k.rediti ,.potro;c ... PL'Siljalac trcba Ja prckinc slanje
.-.:ve d,,:,. ne Juhi_l~ jus kredit,L. Z:thv:d.JUJUL'i •lpi,anoj 'cmi koja ~c kuristi u svim mre/a-
3.6.4 Univerzalna serijska magistrala
ma. '!'rt·c:tva :.e guhlF~n_le P'".latab ;:hog lh:sra;:rnere u brzini pnsiljaoca i primaoca.
Slu.i tran~;akeija ohrcldujc ,tk:ivnn<ti na magistrali. Za citanje rel:i iz memorije Magistralc PC! i PC! Expre's Jobrc su za prikljucivanjc periferijskih uredaja vel ike
pnrrehne 'llLhc tr:tns;d<.cije: jeJI:u inic'ira l'l"I'C~'or ili DMA kana! kad zahteva podat- brzine. ali su prcvise skupo resenjc za prik.ljul:ivanje sporih ulazno-izlaznih uredaja
k...:. :t drugu inicira ureda: k.nJi pud,:Lke i'iporucuie. Sloj tr<lllsakeija, medutim. obavlja bo sto su tastatura i mis. Hronoluski pusmatrano, svaki stanJarc!ni ulazno-izl;vni
vise: .xlpru'.tu~; :'1tat1_i:t i tq•i:,:vanja. Un o'!lli~lj'" a tok pakeLt koji mu dolazi ud sloja uredaj spajan jc s racunarom na poscban nacin. pri (emu su ostavljane neke prazne !SA
vczc·. K:H' prvu. "n zthl:':l' svaku stazu cb podc:l1 na najvise ''sam virtuclnih kola. sva- i PC! uticnicc za povezivanje novih uredaja. Nazalost. takva semajc od samog pocetka
k.o 1:t Jrugacijtt khtc.u o.;:<nhr:ccaja. Sluj :ransJk.cij,t mozc da oznaci paketc atributima u imala brojne mane.
skiat!u s ni iht" 1'Ill ',td•rac:lJiiC•m ki .. suni ( npr. visok prioritet. ni1.ak priori tel. ne pri- Na primer. svaki fl(JV ulazno-illazni urec1aj l:esto je isporul:ivan sa sopstvcnom
,:,,;J,.uj. mu/.c· ,;..: i~:wrc•Citi prcl-;o r.~da i dr. ). O~:nakc mo/.e da koristi skretnica kada !SA iii PC! k.articorn. Korisnik je ccsto rnorao sam da poddava prekiJacc i kratko-
od!t!t:u:e l' tome k.c:ji ce o.;ledc~'i j>:tkct ohr:tdili. 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
rr
I
214
Puglavlje 3: Nivu digitalne logike 3.6 Primeri magistrala 215

karticu, zatvori kuCiste i ponovo pokrene racunar. Mnogim korisnicimaje opisani po- Sam kahl ima cctiri zice: dve za podatke, jeclnu za napajanje ( +5 volti) i jednu za
stupak mucan i tesko ga izvode ada nc pogrese. Osim toga, broj ISA i PCI uticnica uzemljenje. Sistem signalizacije prenosi digitalnu nulu u trenutku promene napona, a
,e 0 ma je ogranicen (najcesce dve ili tri). Kanice tipa Plug-And-Play otklanjaju pro- digitalnu jeclinicu kada takve promene nema, tako da dugacak niz nula generise regu-
blem s podesavanjem kratkospojnika, ali korisnik ipak mora da otvara racunar kako laran tok impu1sa.
bi ubacio karticu. a broj uticnica je i daljc ogranicen. Kada se utakne nov u1azno-iz1azni ureclaj, taj dogadaj cletektuje osnovno cvoriste i
Da bi resili opisane problemc, 1993. godine sastali su sc predstavnici sedam kom- salje sistemski prekid operativnorn sistemu. Opcrativni sistern tada ispituje urec1aj da
panija (Compaq, DEC, IBM, Intel, Microsoft, NEC i Northern Telecom), s namerom bi ga identifikovao i utvrdio koliki rnu je propusni USB opseg potreban. Ako operativ-
da smisle bolji nacin prik1jucivanja sporih ulazno-izlaznih uredaja. Od tada se grupi ni sistem utvrdi da postoji dovoljan propusni opseg za racl uredaja, on mu dodeljuje
pridruzilo na stotine drugih kompanija. Rezultat dogovaranja je zvanicno objavljen jedinstvenu adresu ( 1-127) i zajedno s clrugim pararnetrima prenosi je u konfiguracio-
1998. godine i nazvan je univerzalna serijska magistrala (engl. Universal Serial ne registre uredaja. Na taj nacin se nov uredaj mozc clodati u hodu, pa sc korisnik ne
Bus, USB); od tada se USB magistrala primenjuje u licnim racunarima. Njen dctaljan bavi kontigurisanjem niti umece novu ISA iii PCI karticu. Neinicijalizovane kartice
opis naci cete kod Andcrsona ( 1997) i Tana ( 1997l. pocinju od adrese 0. tako da se ipak mogu adresirati. Zbog jednostavnijeg kabliranja,
Ncki od ciljeva kompanija koje su zamis1ilc USB magistra1u hili su sledcCi: 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.
1. Ne sme sc dozvoliti da korisnici podcsavaju prekidace i kratkospojnike na
USB sistcm se logicki moze posmatrati kao skup kanala za protok bitova od osnov-
karticama ili uredajima. nog cvorista do ulazno-izlaznih uredaja. Svaki urcdaj svoj kana! moze da podcli na na-
2. Korisnici ne treba da otvaraju kuciste racunara kako hi insta1irali nove ulaz- jvisc 16 potkanala i da ih nameni razlicitim tipovima podataka (npr. audio i video
no-iz1azne uredajc. zapisima). Unutar svakog kanala iii potkanala podaci tcku od osnovnog cvorista do
3. Treba da postoji samo jedna vn,ta kabla za prikljucivanje svih uredaja. uredaja iii obrnuto. Ne postoji direktan saobracaj izmcL1u dva ulazno-izlazna urec1aja.
4. U1azno-izlazni urcdaji se muraju i napajati prcko istog kabla. Na svakih I ,00 ± 0,05 ms osnovno cvoriste emituje nov okvir da bi svi uredaji bili
5. Trcba omoguciti da se na isti racunar prikljucuje do 127 uredaja. 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
6. Sis tern treba da podrzava uredaje koj i rade u real nom vremenu (npr. zvuk.
istom smeru, ali i u suprotnom- od uredaja ka osnovnom cvoristu. Niz od cetiri ok-
telefon).
vira prikazan je na slici 3-59.
7. Urcclaji trcba da budu takvi da 'c mogu in~talirati dok racunar radi.
8. Treba uk1oniti potrebu da sc racunar ponovo pokrecc posle insta1iranja novog Vreme (rnsec)
un;daja.
9. Proiz.vodnja nove magistrate i u1azno-i;:1azni urcdaji za nju ne sme mnogo 3
Prazan hod
kostati.
USB magistrala ispunjava svc nabrojane zahteve. Ona je projektovana za spore l OkVIf 0
,/
r
'
OkVIf 1
1
CJGW2 . I j Okvir 3 I
'
''
' ,:
u1azno-iLiazne uredajc kao sto su tastatura. mis, digitalni fotoaparati. skcneri, digital-
,\
/: Paketi ad ' :\ / : Paketi ad \
' o~~ovnog Cvori_S_ta \
'
ni tclcfoni itd. Vcrzija 1.0 irna propusni opseg od 1.5 Mb/s. sto jc dovo1jno za tastaturu / ' ,' osnovnog CvoriSta \
'' , . I .. ,
~,~~~~/O~T~j ~:TA liAc~']
'
i misa. Vcrzija 1.1 radi brzinom ocl 12 Mb/s, sto je dovoljno za stampace, digita1ne fo- 'lsoF( Iso~ I ,~,~)1 DATA ll,~c,K] \lsoF(
toaparatc i mnoge clrugc urcdaje. Ovako niski propusni opsezi su izahrani da bi tro- ' "(
/ /',
skovi proizvounje hili mali. ,~:" ', ,/ Od uredaja ',,,

I;:NI Pto IPAYLOAD Ic~,~l


USB sistcm se :,a,toji od osnovnog cvorista (engl. root huh) kojc se prikljucuje na ,/ ',

glavnu magistralu (slika 3-52). Cvori~tc ima uticnice za kablovc koji vode do ulazno-
Paket podataka
ad uredata
~l~vNI PID IPAYLOAD IcR~'I
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- Slika 3-59. Osnovno cvoristc USB magistralc saljc oi-, virc svakc: milisckunJc:.
nanL Kahlovi kojima sc uredaji spajaJu sa cvoristem imaju razlicite utikace na krajc-
vima: stoga korisnik nc moze slucajno spojiti clvc uticnice na cvoristu.
Poglavlje 3: Nivo digitalnc logike 3.7 Povczivanjc 217
216

Na slici 3-59 vidi sc Ja u okvirima 0 i 2 ncma nikave aktivno~ti, pa ih ispunjava nazvanu USB 2.0. Taj standard je sliean starijern standardu USB l.l i kompatibilanJe
samo pakct SOF (Start of Frame, pocctak okvira). Taj paket se uvek emitujc svim s njim. ali uvedena je i tree' a brzina prenosa od 480 Mh/s. Postoje i neke manje raL.like
urcdajima. Okvir 1 je poziv (na primer, zaht<Cv skcneru Ja posalje bitove koje je pro- (npr. interfcjs izmcdu osnovnog cvorista i kontrolera). U standardu USB I .l bila 'u
nasao na slici koju skenira). U okviru 3 isporucuju se podaci nckom urcdaju (na pri- prcdviclcna dva intcrfcjsa. Prvi, UHCI (Universal Host Controller Interface, univeral-
mer, stampacu). ni interfejs za kontroler racunara), dugujemo Intelu, koji je vec'i deo tereta prebacio na
USB sistem podrzava cetiri vrste okvira: upravljacke, iwhrone. masivnc okvirc: i projcktantc softvcra (cit~y: na Microsoft). Za drugi, OHCI (Open Host Controller Inter-
okvire za prckidanjc. Upravljacki okviri sc koriste za kontigurisanjc urcdaja. 1:1 k,l- face, otvoreni intcrfcjs L.a kontroler racunara), zahvaljujcmo Microsoflu. koji je veci
mandovanje urcdajima i za ispitivanje njihovog statusa. lzohroni okviri su n,tnll.:nj•_·ni deo tereta prebacio na projektantc hardvera (citaj: na Intel). U standardu USB 2.0 svi su
urectajima koji racle u rcalnom vremcnu (npr. mikrofunima, zvucnicima i tclc(,Jnima se slozili da se primenjuje jedinstven, nov interfcjs nazvan EHCl (Enhanced Host CorJ-
koji trcha da primaju ili da salju podatkc u tacnim intervalima). Kod njihje kasnjcnje troller Interface, poboljsani interfcjs za kontroler racunara).
sasvim prcdvidljivo. ali buclc li grdkc. nema ponovnog slanja podataka. Masivni ok- Jasno je da USB magistral'( koja sada radi brzinom od ..\.80 Mb/s moze da konk'.t-
viri slu7.e za prenos vel ike kolicine podataka u komunikaciji sa urcc1ajima kuji ne rack rise scrijskoj magistrali prcma standardu IEEE 1394, popularno nazvanoj Fire\Vire.
u rl'alnorn vn:mcnu lnpr. stampaci). Na kraju, okviri ,r,a prckidanje su ncophmlni jer koja radi hrzinom od 4-00 Mb/s. laku sada gotovo svaki nov Pentium racunar ima ma-
USB sistem nc pmlr7ava sistemske prckidc. Na primer. umcslo da tastatura izaL.ove gistralu USB 2.0, standard 139-.J. ncc'e skoro ncstati jcr ga podrzavaju proizvodaci
sistcmski prekid kad gml sc prilisnc taster. opcrativni sistcm jc mo/.e ispitivati svakih elektronike siroke potrosnjc. Kamkordcri. DVD plcjcri i slicni urcdaji imace interftjs
50 ms da bi prikupio cvcntualnc zaustale pritiske. I J94 i u bliskoj buducnosti jcr pmizvodacima ovih ureclaja ne pada na pamet da ulccu
Okvir c;c sastoji odjcdnog ili viSL' paketa ( mo~u hiti poslati u oba smera). Po~toje u troskove zbog prclaska na nov !>landard koji tesko da jc holji od po,tojeccg. Po-
cetiri vrsk pakcta: :l.ctnni (tokeni). pakcti s pmlacima, pakcti 7a usagLt;avanje i spc- trosaci takodc ne vole da sc standardi menjaju.
.:ijalni paketi. Zctt,ne uredaju salje osnovno cvmistc i oni sluze za upravljanjc si~tc­
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- 3.7 POVEZIV ANJE
di. pakct SOFjc· i jedini p~tkct okvira. :!cton IN jc poziv urcdaju da pnsaljc odrcdcne
Tipican racunarski sistem nil.e iii srednjc klasc sadrzi procesorski Cip, memorijskc
pudatk.e. PoiJima u p:tketu IN idcntilikllJC .,c tni.L·ni Llllal t:d.;.u da urcdaj wa koje
cipove i nekoliko ulazno-izlaL.nih kontrolera (svi su povezani magistralom). Vee srno
pmL!ikc trek! da po~alil~ (ul-;t>liku lll1a vise istU\ rc'lllL'llih tok<)\ia pt1d<ttaka). Zctonom
prilicno dctaljno proucili mcrnorijskc cipove. procesore i magistrale. Sada treba Ja
OUT utTLlaju se n:tjCJvljuju pudaci ).;()ji ~kdc. C'ctvrti lClclll, SLTl-P (ni_je na slici).
prc,kmu na puslednji dco slagalice- na ulazno-izlazne cipovc. Preko njih racUllar
slu/i za konfiguri~;_lnjt:-.
komunicira sa spoljnim svctom.
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 stn•cnt J, P":-:et /a us't~la:;,l\ ctnje i ~pceijalnt 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. 3.7.1 Ulazno-izlazni cipovi
f-:-hitn<> puljc ;a tip !'aketa (1-'!Di. kun.snc P'Jd:ttkc: i 16-bitili CI<C !Cyclic Redundan-
Vee postoji veliki broj ulazno-izlaznih cipova, a uvode se i novi. U uobicajene .::i-
r.v Check i k\Ki 1:1 otkriv:mic gn:~akct. Dc:linisat<c> su tri vr:,tc p:tkcta 1.:1 usaglasavanje:
pove spadaju LJART. USART. CRT kontroleri. kontrolcri diska i PfO cipovi. UART
.\C K \ ll7.n,tca v .1 da jc l'rctl1lld:Ji pakct s podaci ma ispravnn pnmljcn1. N,\ K ( otkri veno
(Universal Asynchronous Receiver Transmitter, univerzalni asinhroni primoprcdJj-
.JC nc:,!:tc:anJe C:l~C k,)l!:tl i ST·\LL (mnlit<l. :,::cckajtt: -- upr.tvo ndtu duvrsavam).
nik) jeste cip koji moze Ja prul:ita bajt s magistralc ida ga bit po bit prosledi serijsk~m
l'c>gkdajmu pt>!lllV\\ sl:ku 3-)Y. C'v,lristc mon sv-akc milisckundc poslati okvir.
vodom terminalu iii dana isti nacin od tenninala primi podatke. UART Cipovi on:o-
cak i kaJa n.:ma pt,>ia. Okviri 0: :.'. -.aJrzc: samu pak<:t SOF. sl<l 1.n:~ci cia tada nijc hilo
gucavaju razlicitc brzine prenosa (od 50 do 19.200 b/s), sirinu znakova od 5 do 8 bi o-
~~~l d~t .~c radi. Ub ir l jc' pn;i\. IH i'''cinjc pakdima SOF i IN od racunam ka ul<uno-
va. 1. I j iii 2 stop bita i proveru pamosti (paran. ncparan ili bez parnosti). USART
-izLunum urc:daju. il''')c -;]cdi l'·tkc: 0.-\L·\ <ld urcdaj ..t ka racunaru. Pakctolll
(Universal Synchronous Asynchronous Receiver Transmitter. univerzalni sinhro-
\C:K ur.:da.Ju s.: s~tt>p·-,L:va da _,u P'''bci <.ligli bo pn>bkma. L: slucaju o'rcskc. urcdaju
no-asinhroni primupred~ynik) cip. osim svih UART funkcija, ima i mogucnost sinlro-
bi hit> pr•slctl p~t~<'l :\,\K. a pod.tc:i hi hili [H>novu p<Y.Iati aLo 'll maoi!' ni i~di nc i ako
nog prl'llllSa kada koristi raL.licite protokolc. Posto StllO UART cipovc vee upowali Ll
su i!llhl"<tni). Ok·,ir _1 jL· pu struktmi slil:an okviru l, osim ::t,J u :Jjc·nn: ptldaci teku od
poglavlju 2. analizirajmo sada paralclni interfcjs kao primer ulaL.Ilo-izlaznog cipa.
rJL'tliLtra ~a ur~daj Ll.
Pu~tqje 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.
Poglavlje 3: Nivo digitalne logike 3.7 Povezivanjc 219
218

PIO cipovi
3.7.2 Dckodiranjc adrcsa
Tiptcan PIO (Parallel Input/Output, paralclni ulaz/izlaz) cip jc Intel 8255A, pri- Sve do sada, izbegavali smo pitanje kako se signalizira biranje mcmorijskih iii ula-
kazan na slici 3-60. On ima 24 ulazno-izlazna voda koji se mogu povezati s bilo kojim zno-izlaznih cipova o kojima smo govorili. Doslo je vreme da to dctaljno objasnimo.
TTL-kompatibilnim uredajem (na primer, s tastaturom, prekidacima. signalnim lam- Razmotrimo jednostavan 16-bitni ugradeni racunar koji ima procesor, 8-bajtni
picama ili stampaCima). Najkrace receno, procesorski program moze da upise 0 ili l EPROM od 2 KB za program, 8-bajtni RAM od 2 KB za podatke i PIO Cip. Ovaj mali
na svaki izvod ovog cipa iii da procita njegov status, sto pruza veliku slobodu u pri- sistem mogao bi biti prototip ,mozga" neke jeftine igracke iii jeclnostavnog urcdaja.
meni. \1ali sistem s procesorom koji ima i PIO cip cesto mozc da zamcni citavu plocu Kacla racunar pocne da se proizvocli, EPROM bi se mogao zamcniti ROM memorijom.
prcpunu SSI ili MSI cipova, narocito u ugradcnim sistemima. 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
cs ga birati preko namenskog voda magistrale predvidcnog za rcferenciranje ulazno-iz-
~ Prikljucak A
laznih uredaja, a ne mcmorije. Ukoliko odlucimo da ga koristimo na drugi nacin. kao
AO-Al
mcmorijski preslikan ulazno-izlazni urcdaj. tada mu u mcmoriji moramo dodcliti
WR~I-l Paralelni 8
4 hajta za tri prikljucka i upravljacki rcgistar. Ovaj izbor jc u izvesnoj mcri proiz-
ulazno-izlazni
RO I cip 8255A
Prikljucak B
voljan. Opredelicemo se za memorijski prcslikan uredaj jer taj pristup ilustrujc neke
RESET--- 8
zanimUive dctalje povczivanja ulazno-i,daznih urcdaja.
,._,._____ Prikljucak C EPROM-u treba 2 KB adrcsnog prostora, RAM-u isto toliko, a za PIO cip su po-
00-07
trebna 4 bajta. Posto je adresni prostor u nasem primeru velicine 64K, moramo razmi-
Slika 3-60. PIO cip ~255A. 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.
lako procesor moze da kontigurise cip 8255A na mnogo nacina, upisujuCi podatke a PIO cip zauzima najvisa 4 hajta adrcsnog prostora (bajtove od 65532 do 65535). Sa
u njegove statusne registre, ovclc ccmo se ograniciti na neke jednostavnijc radnc rdi- stanovista programcra. nije vazno koje se adresc koristc; mcdutim, taj izbor jc vazan za
me. Cip 8255A najjednostavnijc sc koristi kao skup tri nczavisna 8-bitna prikljucka povezivanje. Ako smo iz.ahrali da PIO cip adrcsiramo preko ulazrm-izlaznog adresnog
(engl. ports): A, B i C. Svakom prikljucku pric!ruzcnje po jedan 8-bitni Icc. Kada zeli prostora, onda za njcga nisu potrcbnc adrcse u mcmoriji (ali c'e zauL:cli cctiri aclrcse u
cia p(ldesi vrednost na prikljucku, proccsor sarno treba da upise 8-bitni broj u odgo- ulazno-izlaznom adrcsnom prostoru).
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- EPROM na adres1 0 RAM na adresi 8DOOH PIO cip na adresi FFFCH
/
t

~~~l
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
~
~
Ml_
0 4K
L
8K 12K 16K 20K
l_
24K
_l__
I
-~ _ I _
28K 32K 36K 40K
L_ I __j
44K 48K
~
52K 56K 60K 64K

i 8 v,Klova koji se direktno povezuju s magistralom podataka, vod za hiranje cipa. vo- Slika 3-61. Lukacija EPROivl-a, RAM-a i PIO Cipa u na.~cm adrcsnnm prusloru vclicine 64 KB.
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 Kada se prihvati dodcla adrcsa prema slici 3-61, EPROM bi sc rnogao birati prcko
prikljuccima A, B, C i statusnom rcgistru; ovaj poslednji, izmcdu ostalog. sadrzi i hitove bilo kojc 16-bitne memorijske adrese oblika OOUOOxx:xxxxxxxxx (binarno). Drugirn
koji odrccluju status svakog prikljucka (upisivanje iii citanjc). Dva aclrcsna vocla su recima, sva~a adresa cijih Sll prvih pet najznaCaJnijih hitova nule -;pacia Ll prva 2 KB
prikljuccna na najmanje znacajne bitove adresnc magistralc. 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 3.7 Pnvezivanje 221

Bolji nacin je koriscenje logickog kola OR s pet ulaz.a koji su vezani za adresne vo- Ao
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- Adresna
noj verziji SSI cipova nc postoji logicko kolo OR s pet ulaza. Najvisc muse priblizava magistrala
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 A15
I II

\
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 1OOOOxxxxxxxxxxx. pa je potreban elodatni invertor, kao na slici.
[ 1
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-
I
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). (a)
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
Adres11a
su ;.a dckudiranje elovuljna 2 bita. magistrala
Slicno. svaka adresa koja pocinje sa II mora biti adrcsa PlO cipa. }\Jtpuna logika

v
za dckodiranje sada sadrzi Jva logicka kola NAND i invertor. Pusto se invertor mozc A15
napraviti od logickog kola N,\ND tako sto muse povezu elva ulaza. jednostavno kolo
NAND vise jc ncgo elovoljno za taj posau. fl
I I

tJ
Logika dekodiranja adrcsa prema slici 3-62(b) zove se parcijalno dckodiranje
adrcsa. zato slo se 1.a dckodir~mje nc koristi cela aelresa. Karakteristika takvog deko-
diranja je ela ocitavanje adrese 000 I 000000000000. aurese 000 II 00000000000 iii ll
'v
adn:-;c 00 I 0000000000000 daje isti rezultat. U stvari. svakom adresom iz donje pn-
Ucs ~
/f:,o~ I
lovine auresnog prostora bira se EPROM. Posto se adresc koje ne spadaju u 2 KB
II "KRJl..M8
L:J
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
L:J I
lbi
osam i1laza koji odgovaraju auresama u prvih 8K, drngih 8K itd. Za racunar sa osam Sliha J-62. f\J) Potpunl) Jckudi!:lllJC ~tdre:-;~L (hi Parc:!j;t:no dekoJicu~jc ~t<.Jrc"a.
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.)
Poglavljc 3: Nivo digitalne logike Vezbanja 223
222

3.8 SAZETAK VEZBAN.JA


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

tt. Sta raui ovu koln'' 22. Sto se vi~e 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.

'I:;
~ 23. Racunar s magistral om sirine 32 bita koristi memorijske cipovc s Jinamickorn Ro\M
. '
A-~..._--i c i
! mernorijom kapaciteta IM x I. Koliku n1inimalno mcmorijc (u bajtovima) mo?.e da
B : ima ovaj racunar?
"=----o 24. Osvrcuci se na dijagram vremenskog sleda dogadaja sa slike 3-38, prctpm.tavimo da

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
I .


~~
~:
I

~~
'
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 ?
25. Vracajuci sc jo~ 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
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 C0 u fazu 26. Na slici 3-38(b) prikazanujc da vrc:mc: TiVIL treba da hudc najmanje .'l ns. Mo!ctc li
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 zamisliti cip u komcjc to vrcme negativno'-' Poschno odgovorite moz.c li procesm da
val..::ci svc du iT ns ml pocctka sahiranja. Za vcliko n, vrcmc polrehno da sc prenos pnsaljc signal MRE() pre ncgo .~to adrcsa postanc slabilna'.' i\ko mole, z<t.~to: ako nc:
prohijc do fa;.a na najznac<0nijim po;.icijama mo/.e da postanc neprihvallJivo dugo. moze, zasto''
SmislilL' sahirac koji radi brzc. PmnoL': Svaki prcnos C1 rnuze se izraziti prcko bitova 27. Pretpostavinm da sc prcnos hluka na slici 3-42 odvija prcko magistralc sa slikc 3-.lS.
opcranada A 1_1 i U1_1, i prenosa C1_1. Preko ovog odnosa mogucc jc ina;:iti Ci u funk- Koliko sc vise pmpusnog opscga dohija pri prcno~cnju dugackog hloka nego pri pll-
ciji ulaza u fa;:c ou 0 do faze i- I, tako da se svi prcnosi mugu istovrcmcno gcncrisati. jcuinacnim prcnosima' 1 Sad<! pretpostavite da magistrala ni_je sirinc I) biloV,l, vee 32
1-1. r\ko kmm svako logicko kolo sa slike 3-l 9 signal intcrno kasni I ns, a sva druga bita i odgovoritc ponovo.
28. Oznacitc prelama vr~.:mcna adrcsnih vodova 11<1 slici .1-3() saT.\ i T.'\c· prcla;.na vre-

-~ :"'r_l
Lrsnjcnja sc mugu 1.ancmariti, poslc kog ce se naJkraccg vrcmcna na i.dam sigurno
1
pojaviti ispravan hit''
~. ' I
mcna signaia :\.ll~i'(i :-.aT \IRFf)l iT ~IRf'<Jc it d. Ispi.~itc svc nejedmko,ti kojc SL' pu-
15. i\LU sa slikc 3-20 mo,'c da obavlja h-bitno sahiranje u komplementu broja 2. Mozc j .~; drazumevaju pri postupku potpunog usaglasavanja.
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. ,
•_1i'
·:a,r I
29. Vccina 32-bitnih magistraLt dutvoljava I h-bitno (itanjc: i upisivanjc podaULt. l\1-
stuje li ikakvc: nedoumiLc s tinH~ gdc sc ;me;ta.Ju podac1'' Ohrazlozitc odgnvor.
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''
I:~:! '
30. i\lnogi pmccsori imaju spccijalan tip L·iklusa magistrak za putvrdiv:UJjc zal:t..:v.t ;a
sisternski prckid. Zastu'l
31. Sa.dcselcctvornhitni ra2un<:r s lllagi.\lralmn ht·zinc 200 tvlllz tro'J cctiri Cl!..iusc: ;a

17. Pom:kadjc kori,no da h-bitna aritmc:ticko-logicka jcdinica, slicna onoj na slici 3-20,
,if. I citanjc 64-bilne t•c(i_ KDji dcu propusnog op.SL'ga magistralc kori.sti procc:snr 11
ncpovoljni.Jcm sluCa.Jll-'
llilj-

gcne1-i.~t: komtantu -I. Prcdlo/ite dva razlicita nacina da .sc mo izvedc. Za svaki od
~~·
~
·"X'-" 32. T1idcsctdvobilni pmccsor sc1 adrcsnim YJ)clovima .-\.:'-.-\_1 I ;ahtcv·a da "c ll\2lllunJ -;~:
nacina naveditc vrednosti .~est upravljackih signala. -~~
iM: rl'fercnce hudu poravnate. li1 1.naci da rt'ci lreha •1drc:.sirati u kuracimc1 od ru-!- hajt,t.
18. Sta je stanjL' miruvanja ula;:a SiR u SR. lee napravljcn ml dva logiC·ka kola N.'\NlY' '1:'1' a polurcci na parnim haJ!uvimc~ Ba.Jiov i _,,. l!Hlt>U naLviti bilu gdt:. Kt'-liku P<hlo;i
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.
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.
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 -·!j\t_
J~~~!
33. 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, dru~i racunari sa 64-httnom magistrai->m

I
za tu hilo potrchno·> podat<lk:t lllOgU da obavlj:qu prc\Jl()'C pndat<d-.:a .~irint: 3::', ] (], J':l Cak i :-\ hiWv CL
21. Da bistc isplallli svoj novi racunar. nudite savetodavnc uslugc proizvodacima SS! 3-1. Pretpi'Sta\'iJnn Ja prt)CL~or irna kc~ ll1t.:tunriju pp·pg i dru~og ni\.\)~1. :-,a nd::.:Pvara-
cipova ko)i tck ulazc u posao. Jedan od vasih klijcnala razmislja dana zahtcv polt:n- juCinl YTcnh.:ninl~l pri~tup~t ud l 1 2 n.~. Vrcn1c pri.-;tupanja g:L.t\ noj UJClliuriji jL· i !J !L\.
cijalno va2.nog. kupca napravi cip sa cetiri D tlip-llopa, od kojih svaki ima i (1 i Q Ako se u 2lJ'.:{ siul.\t_JC\a u~pc~!ll1 pnsrupa kcS 1nen1oriji pr\<\~, ni,ua. au (J{)r·; ·.,lu~a­
izvod. L! prl'dlozcnum prujcktu sva cetiri signala radnog takta puve;ana 'u zajcdno, 'tlj·.~·3,._.· jcva kcS Jnenloriji ~Jrugog nivoa. kuliku j..; pn)~l~Cno \Tenle pri~tt!~'anj~t·)
·~'
takmk na zahtcv kupca. Ne pustojt: izvodi ni za aktiviranjc, ni 1.a deaktivir•mic cipa. 35. F\1stoji Ji Vl.'ru\':llnnL:a da u~radcni .<.,i:·,krn ·, pnH:C.-\i)rLli1l ("){))I :-.adr;~i i 2ip ~-~5~.;;;A·)
.-.:-
vi treba da date profesionalno misljcnjc () projcklu. :,-.·.

.
: i
r I.
r
[\f,,
!l
226 Poglavljc 3: Nivo digitalnc logike

36. Izracunajtc propusni opscg magistrale potreban za prikazivanje filma u vemim bo~
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 3~56 nije neophodan za rad protokola magistrale?
39. Sistem PCI Express ima veze brzine 5 Mb/s (ukupan kapacitct). Koliko jc signalnih
4
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).
NIVO MIKROARHITEKTURE
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 32~bitni 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 3~62(h) 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 Iznad nivoa digitalne logike nalazi se nivo mikroarhitckture. Njegov zadatakje da
pocne ucitavanjcm ,liste ozicenja·', u kojoj svaki vod ima svoj ulaz i izla1. Ulaz je iznacl sebe implcmcntira nivo arhitekture skupa instrukcija, tzv. !SA (Instruction Set
jcdna odj ulaznih no/.ica ili jc izlaz iz nckog logickog kola :-<A"Il. l!laz je jedna od Architecture) nivo. kao sto jc prikazano na slici 1~2. Dizajn nivoa mikroarhitekturc
k izlaznih nnl.ica iii ulaz u ncko lugicko kolo N.-'\ND. Nei,korisceni ulazi su logickc zavisi od arhitekture skupa instrukcija koju trcba implementirali, te od cene racunara
jedinice. Pu ucitavanju lisle. o1iccnja pmgram lrcba da oclstampa rezultat za svaki i njegovih performansi koje treba ostvariti. Mnogi savremeni !SA nivoi, naroCito oni
od 2J mugucih ula1.a. C'ipovi s matricom logickih kola slicni ovnrn masovno 't: ku~ s RISC tehnologijom, sadrzc jcdnostavne instrukcije koje sc po pravilu mogu izvrsiti
riste za izradu namcnskih elektronskih kola 1.ato sto veci dco posla (;lampanje lu- unutar jcdnog ciklusa radnog takta. Slokniji !SA nivoi, kakav ima Pentium 4. zahtc~
gickih kola na cipu) nc zavisi od konkretnog kola koje se pravi. Jcdinu je oi.icenje
vaju vise ciklusa za izvrsavanje samo jednc instrukcije. Za izvrsavanje instrukcije
(spajanjt:) drugacije za svaku namenu.
potrebno je pronaci operancle u memoriji, procitati ih i rczultat ponovo smestiti u me~
4-1. Napisite program za ucitavanJe dva proizvuljna Bulova izraza i provcravanje da li
moriju. Odredivanje redosleda operacija unutar iste instrukcije cesto vodi drugacijem
oni prcdstavljaju istu runkciju. Jezik za unosenje izra/a trcha da sadrl:i pn.Jedinacna
pristupu upravljanju nego najednostavnom !SA nivou.
slova kao Bulove promcnljive. opcrande AND, OR i NOT, i zagradc. Svaki unescni i1~
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 4.1 PRIMER MIKROARHITEKTURE
i 50 X 6 /.a njihovo impkmcntiranje pomm'u PL\ cipa sa slikc _)~ 15. Jczik !.a llllllS
Najbolje hi bilo da vam OVU temu prcdstavimo tako sto ccmo objasniti npste prin~
podataka rsti jc kao u prcthodnom zadatku. Od~lampajlL' matricc na linijskom
cipe organizaeijc mikroarhitckture. Nazalost, takvih opstih principa ncma: svaka mi~
slampacu.
kroarhitektura jc slucaj za scbe. Zato cemo sada detaljno prouciti jedan konkretan
primer. Za na; primer !SA arhitekture izabrali smo poclskup instrukcija Javine virtu~
elne masine (JVJ\1), kao sto smo obecali u poglavlju l. Ovaj poclskup sadrl:i samo in~
strukcije za racl s celim brojevima. pa smo ga nazvali IJYM (Integer Java Virtual
Machine). Potpunu JYM masinu obradicemo u poglavlJLI 5.
~~
~\
f 227

l
I
I
I I'oglavlje 4: Nivo mikroarhitekture .t, l Prime•· mikroadtitekture 229
i 228

Objasnjavanje cemo poceti od mikroarhitekture na koju cerno nadograJiti skup 4.1.1 Putanja podataka
IJVM instrukcija. Skup lJVM ima neke slozene instrukcije. Brojne slicne mikroarhi-
Putanja podataka (engl. data fiLllh) deo je procesora koji sadrzi aritmcticko-logic-
tekture cestO Sll bile implementirane mikroprogramiranjem, kao SlO S!TlO objasnili U
ku jedinicu (ALlJ), njcne ulaze i izlaze. Putanja podataka za nas primer mikroarhitek·
poglavlju I. Jako je skup IJVM mali, on je Jobra polazna tacka za razumcvanje upra-
lure prikazana je na slici 4-l. lako je una brizljivo optimi;.ovana za intcrpretiranje
vljanja instrukcijama i redosleJa njiilovog izvrsavanja. IJVM programa, i Jaljc jc p1ilicno slicna putanjama podataka kojc postojc u veCinr
Nasa rnikroarhitektura ce sadrLati mikroprogram (u ROM memorijil. ciji jc zaJatak
rLu:·unara. Una saJrzi niz 32-bitnih registara kojima smo dali simbolicna irnena. kao sll'
Ja preuzima, dckoJira i izvrsava IJVM instrukcije. Pri tome za mikroprogram ne
'ill PC. SP i MDR. lako varn neka oJ imena zvuce poznato, treba imati na umu da su ov1
mozemo da koristinm Sunov JVM interpreter jer nam je potreban mali mikroprogram
rcg~stri dos:upni samo na nivou mikroarhitekture (i da im pristupa samo mikropro-
koji ctikasno aktivira pojeJinacna lugicka kola. Sunov JVM interpreterje 1.bog preno-
gram). Uc~li smo im takva imena jer pu pravilu sadrze vrednost promenljive koja i1m
sivosti pisan na jeziku Cine moze da upravlja han.lvcrom tako Jetaljno kako bismo
is to i me na lSi\ nivuu. Vee' ina registara moze svoj sadrzaj postaviti na magistralu B. lz·
/.ekli. Posto sc harJvcr sastoji samo od osnovnih komponenata opisanih u poglavlju 3.
IM i; aritmetii:·k.o-logicke jeJinice ulaz je za pomerac, a moze ida sc postavi na magi·
citalac bi, nakon sto savlada ovo poglavlje. teurijski mogao da ode u radnJU. nakupuje
stralu C, Ciji ;.,c sadrzaj mo:l.e istovremcno upisati u jedan iii vi~c rcgistara. Zasad ne
brojne tranzistore i sam implcmentira ovaj podskup instrukcija JV\1 masine. Citaoci-
pominjl:nm magistralu A; dodac"erno je kasnije.
ma koji to stvarno urade, uputiccmo posebnu zahvalnosl (a nJih uputiti knd psihijatra).
ALU j<:Jinica jc ista ona koja jc prikazana na slikama 3-lLJ i 3-20. Njcnim radon,
Pogodan model projektovanja mikroarhitekturc jesle onaj o kome razmisljamo
upravlja sest upravljackih signala. Kratka kosa crta .. 6·' na slici 4-1 oznacava de
kao o ;.adatku iz programiranja, gde svaka instrukcija !SA nivoa prcdstavlja funkciju
postoji scst upravljackih ALU signala. To su signali F 0 i F 1 za odredivanje konkretne
koju pot.iva glavni program. Prema ovom modelu. glavni program jc jcdnustavna,
opcracijc ALU jedinice, ENA i ENB za pojcdinacno aktiviranje ulaza, INVA za invertu
beskunacna pcllja kuja L1drcL1uje koju funkciju tn:ba pozvati, t.atirnje pu1.iva. a potLllll
vanje levog ulaza i INC za forsiranjc prenosa u najmanje znacajan bit, cime se rezul·
se pustupak ponavlja iz pocetka. tatu dudajc I. Medutim. oJ 64 mogucc kombinacijc upravljackih ALlJ signala samo
i\1 ikroprogram ima skup promcnlji vi h. nazvanih stanja (engl. stare) ra~·unara. ko-
su nekc upotrebljive.
jima mogu da pri:,tupc we funkc:ije. Svaka funkciJa rncnj~r vreclnoq bar jcdne pro-
Nekc od korisnijih kombinacija prikazane su na slici 4-2. Nisu sve funh:clJC neop
menljivc i tako ucestvujc u delini:-.anju stanja. Na primn. prugramski hrojac (Program
hmlne za lJVi\'1 arhitckturu, ali bi mnoge od njih dobro dosle za putpunu JVl'vi
Counter. PC) den .JC stanja. On uka;uje na rncmorijsku lokaciju sa slcdccom runkci-
ma;inu. lJ mnogim slucaj~:vima isti rczultat sc rnoze pustici na vise nacina. U ovoj ta·
jom (lJ. IS/\ instrukc:iJUill) koju trcba i1vrsiti. Tukom il\r<av~rnja svakc irurukcije.
beli su + i- aritmeticki znakovi plus i rninu:-,. pa. na primer -A prcdstavlja komplemcn
PC lllL'nja vrednu:-.t da bi uk:vao na slcdccu instrukciju. Lh(}jke brojaA..
!JVivl instrukcijc su kratkc i jednostavne. Svaka instrukciFt ima par polja. ohicno
Za ALU jcdinicu sa slike 4-1 polrebna su dva ulaza: levi (A) i desni (8). Za ln1
Jedno ili dva, a wako poiJe slu/i specilicnuj S\TSi. Pr·vu poljc S\ akc instrukcijc jc k<ld
ulaz je vezan rcgistar. H. a za desni magistral a B na kojoj se rnogu nalaziti signali ii
operacije iii opkod (L-ngl. Of>Cou'e. 1'{'('/"i/tion ,·ode) knji identitikuje instrukcijt!
bilo kog Od clevct izvora, na sta ukaZUJe clcvet sivih strcJica koje idu ka njoj. 0
- ozn:rcava da li jc rcc o instnrkciji 1\.DD iii instrukciji BR.4NCH iii nck•)j dmgoj. \lno-
drugacijem rasporedu s dve potpune magislralc, gdc su u igri drugaciji k(}mpromisi
ge instrukcijc irwrju dudatrw polJc rc;-xrvi:,;rnu z:J upennd. ~a primer, instrukcrpma
bice govora u drugorn delu poglavlja.
koje pristupaju lnlalnoj pn>il!l'lllji\ui pl'trd.,n<J jc: poije za ddin[sanjc konkrctnc
Regis tar H sc mozc puniti tako sto se izabcrc ALU funkcija koja ce samo propustat
promenljive. signals clesnog ulaza (s magistrate B I do izla1.a iz ALU jeJinice . .Jedna takva funkcijil
Opi:-.ani model i?\Tsa>:Jnja. ponc:Lrd zvan ciklus preunni-izvrsi (engl.
je sabiranjc ALU ulaLa, pri cemu je signal ENA negiran tako da je levi ulaz stalno m
-exccurc (\de 1. zg• KLtn JC Dl ap,tr:tkrna r~t;.matranja. " m,>:fc-' bit i i Psnov ;~r imrk-
nuii. Dl)davanjem nulc vrcdnosti na magistrali B, dobija se upravo vn.:dnnst na magi·
rnentiranjL· ISA arhitekturc :,a s],J/cnim instnrkcijama. ka< 1 ;1,1 .:c s-1-:up IJVJ\1 in,;truk-
stJ·ali B. Takav re;.ultat sc moze neizmcnjen propustiti kroz pomerac i smcstiti u rcgi
cija. U 11Lhlavku c'e111u nhJasniri Ltko on rac!i, Lrko mikn,arhitektlli":J i;.gkda i kaku s<.:
star H.
njime upravljLr pomuc't: mikt"<lin-;trukcij''· ud kojih svaka upradja putanjom pndatak.r
Osirn pomocu navcJenih funkcija, i1.lazom iz ALU jeJinice mole se nczavisn<
tukmn jednug ciklw.a. Skup mikr\)instrukcij:t Ghr<llUj.: !lrikrnprogram koji cemo de-
upravljati i pomoc"u dva drug a upravljacka signala. Signal SLLS (Shift Left Logical'
taljnu priLtzati i llbpsniti. pom~:ra 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.
Poglavljc 4: Nivo mikroarhitekture 4.1 Primer mikroarhitekture 231
230

Fo F1 ENA ENB I NVA INC Funkcija


0 1 1 0 0 0 A
Registn 9 1 0 1 0 0 B
za upravljanje 0 1 1 0 1 0 A
memoriJom
Ka 1 0 1 1 0 0 B
glavnoj
11 1 1 1 0 0 A+B
memoriji 1----
i iz nje 11 1 1 1 0 1 A+B+1
]1 1 1 0 0 1 A+1
1 0 1 0 1
H-- 1 1 1 1 1
B+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
---
Upravljacki sign ali 0 1 0 0 0 0 0
- - ----·-··
1 1 0 0 0 1 1
f Slanje na magistralu B
1 1 0 0 1 0
- - - -r - - - - -
-1
-- --·-

t Upisivanje s magistrale C Slika 4-2. Upolrcbljivc komhinacijc ALL! signala i tunkcijc koje ohavljaju.
u reg1star
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 sme~titi 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
- Mag1strala B
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
B 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,
N
Upravljanje ALU Jedinicom kada se izlazi iz ALU jedinice i porneraca stabilizuju, signal radnog takta zapocinje
/ ~ z
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-
UpraviJanje pomeracem
mcnsko rasporedivanjc dogadaja na putanji podataka omogucava citanjc i upisivanjc
u isti registar tokom jednog ciklusa. kan sto opisujc111o u nastavku.

Slika 4-1. Putanja podataka za primer mikroarllitcHurc u ovom poglavlju.


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
Poglavlje 4: Nivo mikroarhitekturc 4.1 Primer mikroarhitekture 233
232 ~~~-----

takta. Navodirno aktivnosti koje se dogadaju tokom potciklusa, uporeclo s trajanjem


napajanje magistrate B i njegova vrednost se propusta na magistralu. pri ccmu pro-
potciklm;a ( u J:agradi).
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- I. Uspostavlpnje upravljackih signala (l'.w).
clinica i pumerac izbacuju stabilan rezultat. Nakon dodatnog vremena 1'.;::, rezultati 2. Registri prcdaju svoj sadrzaj magistrali B (6.x).
magistralom C Jolaze Jo registara u koje sc mogu ucitati tokorn uzlazne ivice sle- 3. ALU i pomcraC: ohraduju podatke (l'.y).
deccg impulsa. Ucitavanje semora obaviti na ivici impulsa ito brzo. tako da se, cak
4. Rczultati putuju magistralom C nazad do registara (l'.z).
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 Pri nailasku u.ciaore iv i..:e sledceeg ciklusa radnog takta rezultati se ucitavaju L
ula;.nim podacima prestajc to Ja racli. priprcmajuci se 1.a slcdcei ciklus. Na slici se rcgistre.
vide i registri MPC. MIR i memorija; o njihovoj ulozi govoricemo uhrzo. 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
Regrstrr trenutno napun1enr prenus rCI.ult<tta na magistralu C. ALU jedinica i pomcrac u stvarnosti rade svc vrcme
s magistrale C 1 iz memorije Mectutim. podaci kuji u njih ulazc besmisleni su svc dok od silaznc ivicc signala rad-
Stablirzovan
pri natlasku uzlazne ivice
Ovde izlaz i1 nog takta ne prodc vn:mc fl.rv + 6.r. Slicno tome. i pudaci koji iz njih izlaze nemaju
srgnala radnog takta
pocin1e pomer3Ca smisla svc duk od silaJ:ne ivicc signala radnog tak.ta nc prude vrcme fl.ll' + 6.t +t-.v. Je-
prvr
ciklrrs [-
I
I
- - \ . --
Prvr ciklus
radnog taktil
I
~~--
Drugi ciklus
radnog takta
--- -~1 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
Ovde je iskoriscen nov
--- __ : registar MPC da br se pun<:' n.:gistre vrcdrw:-,tima s magistralc C. Granice ostalih potciklusa podrazumevanc
u regrstar MIR ocrtala su nclrc(knc vremenom prolaska signala kroz postojcca clcktronska kola. Projektanti
--- --:-
•\w c\X ,\y f;z :
sledeca mikroinstrukcrja
-- --~- - ~:---: obe~beduju 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.:.

I Ovde SP. salje


Uspos\3VIJanje ALU i signal MPC Rad memorije
signala ta rad porneraC
putanje podataka
Nas r~1cunar 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-
Pre<1os podatilka munJC. Tridesddvohitnim prikljuckom upravljaju Jva registra: MAR (Memory
BrranJe regrstra H
i staviJanje podatako od porm~r aCa do rcgtstara Address Rcgi.-,kr. rcgistar za adresiranje mcmorijc) i MDR (Memory Data Register.
na m(Jgrstralu B reghtar za mcmorijskc podatkc). kao sto jc prikazann na slici -1-l. Osmobitnim
Slika -1-3. Yrcmcnski rccluskd Jogaclaia ujr:c!ncllll ciklusu pula!~JC p<Kiaiaka. pr:\Jp:ckom upravlja jc:dan rcgistar. PC, koji ucitavajcdan b~0t u najmanje znac~unih
~ bitov~' rcgic,tra MBR. Prcko ovog prikljucka podaci se mogu procitati iz memorije.
laku u putanji podataka ncma elcmenat~r za crh,mj..: pm!atak~r. tr-cha imati na e~mu da ali s,' ne !llLJgu i upisi\ati u nju.
prolaz podataka kro; nju lraje odreden<l vrcmc. Mcnjanje vrc:dnPsti 11:1 magistrali B tck S1 ak im nd ovih registara (kao i svim clrugim registrima na slici 4-l! upravljaju je-
ce se poslc nckog vrcmc:na odr~viti n~' vrcdnost rnagi~;trak C ualwaljujuci merlji' r'ill dan iii ri'.ca upravljacka signala. Neispunjena strelica ispod registra oznacava upra-
trapnju svakog knraka). S!wdno tuntc. 2~rk i ttkrl sc zbog sme~Llnja pudataka l'mtncni v!ja(·ki :;igilttl ko_1i diktira praL!lJCilje registra na magistralu B. Po;to registar MAR nije
sadrzaj jcdnog ud uLwuil registara, nJegma prerhodtla HedthJSt hice uklonjcn~1 pre puvezan , magistral om n, orr nema takav signal. Ni registar H nema takav signal jer
nego ~to hude mugla Ja -;c ]JPJavi na magistrali l3 (tli H) cia Jude c:lo ,\LU jl'dinic·c 'L' uti st<tlnu prazni. buduci cia predstavlja jedini levi ulaz u ALU jedinicu.

Dtl hi ovakva .~cma nwgb da rtldi. ]li'LrcbnrJ jc ,trog<l vrt·mt:n:-,k" u,J.;la,tiv;.m;.:. du- 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
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. l'~tiljivim pr,dc:~a\:ll1jc:m uCiu j'Ddatkc s magistrate Con nema signal za upisivanje (iako ima dva druga signa-
nHr£e sc pnqic'i cla pui.llria [x>dataka i~prttVllll radi ~vc vrcm<:'. Stvar!li racunar: t~1kr1 i la kr•je <l[ltsujemo u nastavku). Da bi ~c zapocela operacija C:itanja iii upisivanja, od-
guv <traju•~i memorijski regi~tri moraju ucitati pndatk.e. a La tim se m.:muriji mora
radc.
Po ncslo drugacij·~lll pr·i,tupu puranji purJatab. una ',C jWSillatn Lru skU[' P"'l;-a- p,J,Jali ,if:"<~l t.a citanjc ili upisivanje (nisu prikazani na slici -1-1 ).
zumt:varlih pu<ciklus~r. i'ul'ctak. prvug potcikltba vct.an je za silaznu n icu r<tdnug

~
f.·
~!~'
234 Pnglavlje 4: Nivo mikroarhitekture 4.1 Primer mikroarhitckture 235

Registar MAR sadrzi adre'e reh, tako da se vrcdnosti 0, I, 2 itd. mlnose na uzastopne Druga mogucnost za prctvaranje 8-bitne vrednosti registra MBR u 32-bitnu rcc jestc
rei'i. Registar PC sadrzi adrese bajtova, tako da se vrednosti 0, l, 2 itd. odnose na uza- da se vrednost tretira kao oznaccn broj izmedu -128 i + 127 i da se njegova vrednost
stopne bajtove. Na primer, ako u PC stavimo vrednost 2 i zapocnemo operaciju citanja iskoristi za generisanje 32-bitne reci iste nurnericke vrednosti. Pretvaranje se obavlja
iz memorije, iz mcmorije ce se ucitati drugi bajt i smestiti u najrnanje znacajnih 8 bitova kopiranjem bita za znak (kranjeg levog bita) vrednosti registra MBR u najznacajnija 24
registra MBR. Ako vredno:,t 2 stavimo u registar MAR i zapocnemo operaciju citanja, iz hita magistralc B, sto se naziva prosirivanje znaka (engl. sign extension). Kada se
memorije cemo procitati bajtove 8-ll (tj. drugu rec) i smestiti ih u rcgistar MDR. izaberc ova mogucnost, najznacajnija 24 bita sadrzace sve nule iii sve jedinice, zavisno
Ova razlika u funkcionalnosti jc potrebna jer se rcgistri MAR i PC koriste za rcfe- od toga da li je krajnji levi bit 8-bitne vrednosti registra MBR bio 0 iii l.
renciranjc dva razlicita dela mcmorijc. Razlika ce postati jasna kasnije. Zasad je do- Da li ce 8-bitna vrednost registra MBR biti pretvorcna u neoznaccnu ili oznaccnu
voljno rcci da se kombinacija registara MAR/MDR kuristi za citanje i upisivanje reci 32-bitnu vrcdnost na magistrali B, zavisi od toga koji je od dva upravljacka signata
s podacima s nivoa !SA, ada sc kombinacijom regis tara PC/MBR cita izvrsni program prisutan (ncispunjene strelice is pod registra MBR na slici 4-l ). Dve strclicc postoje
nivoa !SA koji se sastoji od niza bajtova. Svi drugi adresni registri koristc adrcse reci, upravo zbog toga sto su potrcbne,ove dve mogucnosti. Mogucnost da sc 8-bitni regi-
kao rcgistar MAR. star MBR ponasa kao 32-bitni izvor podataka za magistralu B. oznaccna je blokom
U !izickoj implemcntaciji postoji samo jedna vrsta memorijc i ona se zasniva na nacrtanim isprekidanom Iinijom na lcvoj strani registra MBR na slici.
bajtovima. lako !izicka rncmorija raLli s bajtovima, rad registra MARs recima (sto je
potrchno jer je tako definisana JVM rnasina), omoguccn je zahvaljujuCi jednostav- 4.1.2 Mikroinstrukcije
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- · Za upravljanjc putanjom podataka sa slike 4-l potrebno je 29 signal a. Oni se mogu
svrstali Ll pel runkcionalnih grupa:
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 Dcvet signala za upravljanje upisivanjem podataka s magistrale C u registre.
za adrese rcci iznad 2 32 • od kojih nijedna nije legalna u nasem racunaru sa 4GB mc- Devct signata za upravljanjc praznjenjcm registara na magistralu B, kojajc ulaz
morijc. Uz opisano preslikavanje, kadaje u rcgistru MAR vrednost l, na magistralu se u ALU jedinicu.
postavlja adresa 4; kadaje u rcgistru MAR vrednost 2, na magistralu se postavlja adre-
Osam signala za upravljanje radom ALU jedinice i pomeraca.
sa ~ itd. Ovaj trik jc prikazan na slici 4-4.
Ova signata (nisu prikazani) za oznacavanje citanja/upisivanja podataka u me-

6
OdbacuJe se
32 .'""
b .
'""""'MAR (cob(
moriju preko kornbinacijc registara MAR/MDR.
Jedan signal (nije prikazan) za oznacavanje citanja podataka iz mcmorije preko

HH55557B55tJ777»»»»»»5
kombinacijc rcgistara PC/MBR.
1

I I I I I I I I I I I I I ~lJlLilU~llj__
" " 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

l 11_11 (( 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
32-bitna adresna magrstrala (bajtovi) 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
Slika 4-4. Prcslikavanjc bitova registra MAR ll:l adrcsnu magistralu. i mogu se upotrebiti u ciklusu koji sledi i~a njega. Drugim recima, nperacija citanja
podataka iz memorije preko bilo kog prikljucka koja je zapoceta na kraju ciklusa k.
Kao sto smo vee rekli. pudaci koji se iz memorije ucitavaju prcko 8-bitnog memo-
clajc poclatke koji sene mugu iskoristiti u ciklusu k + l, vee samo u ciklusu k + 2 ili u
rijskog prikljucka smestaju se u 8-bitni registar MBR. Sadrzaj registra MBR mo7.e sc kasnijirn ciklusima.
preneti (tj. kopirati) na magistralu B na jedan od dva nacina: kao neoznacena i kao Ovo, naizgled paradoksalno ponasanjc, mo?.c se razumcti ako se pogleda slika 4-3.
oznai'cna vrcdnost. Kada je potrebna neoznacena vrcdnnst. 32-bitna rec postavljena
Signali za upravljanjc mcnmrijom ne gencrisu se u prvom sistemskom ciklusu sve dok
na 111 agistralu B sastoji se od najmanje znacajnih ~ bitova vrednosti iz registra MBR i
registri MAR i PC ne ucitaju vrcdnosti na uzlaznoj ivici signata, pred kraj prvog ciklusa.
od nula u sva 24 znaeajnija bita. Neoznacenc vrednosti su zgoclne za indeksiranje ta- Pretpostavicerno da mcmorija svojc podatkc postavlja na memorij-;ku magistralu u
bela ili kada 16-hitni ceo broj treba sklopiti ocl dva uzastopna (ncoznacena) bajta. 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 4.1 Primer mikroarhitekture 239

!
Signali za upravljante rnemoritom (citanje, upisivanJe, preuzimanje) slike 2-3 za jedan, odrazava i'injenicu da se posle tckuce instrukcije podrazumevano

J _j_
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
~
_t
MAR J Dekoder
4 u 16 J ponasa tako, vee se u svakoj mikroinstrukciji eksplicitno navodi mikroinstrukcija koja
sledi iza nje.
< MPC
Posto je upravljacka memorija u funkcionalnom srnislu memorija samo za citanje,
~

1 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-
Upravljacka memorija siranje upravljacke memorije zvacemo MPC (MicroProgram Counter, brojac mikro-
512 x 36 bitova
za cuvanje
programa). fmc je paradoksalno posto lokacije u upravljackoj memor0i po dcfinicijt
mikroprograma nisu urcc!ene, tako da je besmislena sama ideja o nabrajanju. Registar za podatke iz
upravljackc memorije zove se MIR (Microinstruction Register, registar mikroin-
JMPC
1
IJ I ALU c MjBl
MIR strukcija). Njegova ulogaje da cuva tekucu mikroinstrukciju, ciji bitovi predstavljaju

~
Addr signale za upravljanje putanjom podataka.
J IL__j Bitovi registra MIRna slici 4-6 podeljeni su u istih sest grupa kao na slici 4-5. Gru-

~ JAMN/JAMZ
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.
2 Upravljacki Na kraju, poslednja 4 hita upravljaju dekoderom koji odrectuje sadrzaj na magi-
Jednobitn1 flip-flop signali
strali B. U ovom slucaju izahrali smo standardni dckoder .,4 u 16"', iako namje od mo-
f Pre nos podataka gucih 16 potrebno samo devet kombinacija. Kada bi se ozbiljnije radilo, vcrovatno
na rnagistralu B
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-
. ...,._ _ __.Magistral a C t Upisivante jektovati. Standardno kolo je jcdnostavnije i malo je verovatno da ce stvaratt
podataka
s magistrate C
probleme. Namensko kolo je doduse manje, ali ga trcba projektovati i sacekati da se
u registar 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
Slika 4-li. Polpun blok-Jijagram mikroarhitdlurc Mic-1 iz nas~g primcr~t. 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-
Najveci i najvazniji element u upravljackom delu rai'unarajeste memorija, nazva-
tava podatke tokom prvog potciklusa.
na upravljacka memorija (engl. control store). Zgodno je ako je zamislite kao me-
Kada se mikroinstrukcija konacno smesti u registar MIR, razliciti signali krecu b
moriju koja sadrzi ceo mikroprogram. iako je ona ponekad implementirana kao skup
putanji podataka. Na magistralu B se postavlja sadrzaj odrcctenog rcgistra, ALU jcdi-
logickih kola. Nju cemo nazivati upravljackom memorijom da je ne biste pomdali
nica sazn;1Je sta treba da radii. uopste, odjednorn se sve aktivira. To je drugi potciklus.
s glavnom memorijom kojoj se pristupa preko registara MBR i MDR. Medutim, u funk-
Posle vrcmena .6.w + .6.x od pocetka ciklusa. ulazi u ALU jedinicu se stabilizuju.
cionalnom smislu. upravljacka memorijaje samo memorija u kojoj se umesto !SA in-
Posle clodatnog vrcmena L'.v sve se smirujc pa i ALU jeclinica, N, Z, kao i izlazi i1
strukcija cuvaju mikroinstrukcijc. Rai'unar iz naseg primera ima upravljacku
pomeraca postaju stabilni. Yrednosti N i Z tada sc o,mestaju u par jednobitnih Jl ip-flo-
mernoriju sa 512 rcCi, a svaka rec sadrzi po jednu 36-bitnu mikroinstrukciju, tipa pri-
pova. Oni se, kao i svi registri koji ucitavaju podatke s magistrale C i iz memorijc,
kazanog na slici 4-5. U stvari, nisu nam potrebne sve reci, ali (iz razloga koje cemo
smdtaju pri uzlaznoj ivici signala radnog takta, pred kraj ciklu~a putanje podataka.
kasnije ohjasniti) treha da imamo na raspolaganju adrcse za 512 zasehnih reci.
lzlaz iz ALU jeclinice sene pamti, vee se sarno prosledujc pomcracu. Aktivnosti ALU
Postoji jedna vazna razlika izmedu upravljacke memorije i glavne memorije: in-
jeclinice i pomeraca odvijaju se tokom potciklusa 3.
strukcije u glavnuj memoriji izvrsavaju sc adresnim redosledom (izuzev pri grananju);
mikroinstrukcijc sene izvrsavaju tako. Uvecavanjc vrednosti programskog brojaca sa
r -
I
I
242
Pogtavtje 4: Nivo mikroarhitckture 4.2 Primer ISA arhitekture: UVM

dobijaju apsolutne adresc u njemu. Umesto toga, jedan registar (npr. LV) svojim
243

ll MBR/MDR budu spremni. Ta aktivnost mo?.e biti izazvana visokim nivoom signata
sadrzajem ukazuje na pocctak lokalnih promenljivih za tekucu proceduru. Na slici
(pre nego ivicom signata) ili istekom fiksnog vremena posle naitaska uzlazne ivice si-
4-8( a) pozvana jc proccdura A koja ima lokalne promenlji veal, a2 i a3, tako da se na
gnala radnog takta. Jedino je bitno da se regi~tar MPC ne napuni pre nego sto registri
steku rezervise skladiste za njene lokalne promenljive pocev od memorijske Jokacije
od kojih zavisi (MBR. N i Z) budu spremni. Cim signal radnog takta padne na nisku
na koju ukazuje registar LV. Drugi registar SP ukazujc na poslednju rec iz niza Jokal-
vrednost. MPC moze da adresira upravljacku memoriju i nov ciklus moze da pocne.
nih promenljivih procedure A. Ako LV ima vrednost 100, a reci su 4-bajtne, u registru
Qbratite paznju nato da je svaki ciklus potpuno zaokruzen. U njemu se odreduje
SP bicc vrednost 108. Promenljive se refercnciraju preko svoje udaljenosti (engl. off
sadrzaj magistrale B, sta treba da urade ALU jedinica i pomcrac. gde treba smestiti
set) od vrednosti registra LV. Struktura podataka izmedu vrcdnosti u rcgistrima LV i SP
sadr?.aj magistrale C i na kraju. kakva ce biti vrednost registra MPC. (ukljucujuCi i obe reci) naziva sc okvir lokalnih promenljivih (engl. Local variable
Treba na kraju pomenuti jos nesto u vezi sa slikom 4-6. 0 registru MPC govorili
frame) procedure A.
smo kao o pravom registru koji svojih 9 bitova ucitava tokom visokog nivoa impulsa
Razmotrimo sada sta se desaviJ ako procedura A pozove drugu proceduru, B. Gde
radnog takta. U stvarnosti. na tom mestu nije potreban registar. Svi njegovi ulazni
ce biti smestene cetiri lokalne promenljive procedure B (hi, h2, b3, b4)'7 Odgovor: na
podaci mogu se direktno sprovesti do upravljacke mcmorije. Sve je u najboljem redu
steku, iznad lokalnih promenljivih procedure A, kao sto jc prikazano na slici 4-8(b).
ako se oni nadu u upravljackoj memoriji kada naide sila;:na ivica signala radnog takta
Obratite paznju na lo da je poziv procedure podesio registar LV tako da sada ukazuje
i treba da se izabere i procita sadrzaj registra MIR. Nema potrcbe da se oni privremeno
na lokalne promenljivc procedure B. Lokalne promenljive procedure B sada se mogu
smestaju u rcgistar MPC. Zbog toga se registar MPC mo?.e implemcntirati kao virtu-
referencirati navodenjem njihove udaljcnosti na steku od vrednosti registra LV. Slicno
elni rcgistar koji prcdstavlja samo ,zborno mesto" signala (slicnije razvodnoj tabli,
tome. ako procedura B pozove proceduru C, registri LV i SP ponovo se poddavaju
nego registru). Kada se MPC realizuje kao virtuelan registar, uproscava se vremensko
tako da obuhvate prustor rezervisan za njene dve promenljive, kao sto je prikazano na
rasporeLtivanje dogadaja: sada se nesto dogaLta samo pri nailasku uzlaznc ili silaznc ~lici 4-t\(c).
ivice signala radnog takta. Medutim. ako vam je lakse da MPC posmatrate kao pravi
registar, i takav pristup je u rcdu.
SP -- d5
SP- b4
b3
E:::J
b3
d4
d3
4.2 PRIMER ISA ARHITEKTURE: IJVM b2 b2 d2
i' LV ~ b1 ~ LV-- d1

l Nastavicerno s nasim primerom i uvesccmo nivo ISA racunara: njcga treba da in- SP -~3 108
a2 104
a3
a2
a3
a2
a3
a2
l terpretira mikroprograrn koji se izvrsava na mikroarhitekturi sa slike 4-6 (lJVi\1). Da LV~ al 100 a1 a1 a1
~ .. bismo istakli razliku izmcLlu ISA arhitekturc i mikroarhitekture, ponekad cemo ISA
t

arhitekturu nazivati makroarhitcktura. Medutim. pre nego ;to predcmo na opisiva-
(a) (b) (c) (d)

nje skupa IJVM instrukcija. malo ccmo zastati da biste rammeli zaslo smo bas njega 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-


:t·.·
izabrali. cedura A poLovc proccduru D.

Kada se programski tok vrati iz procedure C, procedura B ponovo postaje aktivna


~·,:; 4.2.1 Stekovi
~-~ i stck se ponovo poddava prema slici 4-8( b) tako da regis tar LV sada ponovo ukazuje
Skoro svi programskijezici podrzavaju konccpt procedura (metoda) koje radt s lo-
:\1 na lokalne promenljive procedure B. Slicno tome, kada se zavrsi procedura B, vraca-
kalnim promenljivama. Prumenljivc su dostupne iz procedure, ali pw,taju ncdostupne
mo 'e ponovo na situaciJLL sa slike 4-8(a). Bez obzira na okolnosti, registar LV uvek
A kada se iz procedure izade. Tako dolazimo do pitanja gde u mcmoriji treba cuvati
j,~
ukazuje na pocetak okvira na steku koji se odnosi na tekucu proceduru, aSP ukazuje
ovakve promenljive. na vrh tog okvira.
Najjednostavnije JC da sc svakoj promcnljivoj dodeli apsolutna mernorijc,ka adresa,
Pretpostavimo sada da procedura A poziva proceduru D koja ima pet lokalnih pro-
ali to ni1e rescnje. Problem jc to sto prucedura moze da puziva samu sebc. Takve re-
mcnljivih. Dobijamo situaciju kao na slici 4-8(d), gde lokalne promenljive procedure
kurzuvne prucedure analiziracemo u poglavlju 5. Zasad je dovolJnO reCi slcdecc: ako
D koriste istu memoriju koju je koristila procedura B, kao ideo prostora koji je kori-
je procedura aktivna (tj. pozvana) dvaput njcne promcnljive nije moguce smestiti na
stila procedura C. Uz ovakvu organizaciju memorije, ona se dodeljuje samo proce-
apsolutne memorijskc lokacije jer ce druga replika procedure cloci u sukob s prvom.
durama koje su trenutno aktivne. Kada se procedura zavrsi, oslobada se mcrnorija
Zbog toga se prirnenjuje drugacija stratcgija. Jedno podrucje memorijc, na1.vano
koju su koristile njene lokalne promenljive.
stek (engl. stack), rezervise se 1.a promenljive, ali tako da pojedinacne promenljive nc
~
]j'
4, I Primer mikroarhitcktm·c
~ 231l
Pog\avlj~ 4: Nivo mikroarhit~kturc ~~~-------------
237
J
k
,;,' Addr- Aclrcsa sledcce potencijalne mikroinstrukcije.
~~ Drugim recima. podatke ucitavamo u rcgistar MAR pri kraju ciklusa putanjc poda-
JAM- Nacin biranja sledece mikroinstrukcije.
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 ALU- Funkcijc ALU jedinice i pomeraca.
MDR na pocetku ~lcdeeeg ciklusa. narocito ako je sirina impulsa rac\nog takta mala. Za C- Biranje registara za upisivanje podataka s magistrale C.
to nema dovoljno vremena ako opcracija s memorijom trajc jedan ciklus rac\nog takta. Mem - Funkcijc za rad s memorijom.
Jcdan ciklus rutanj~ podataka mora da se nade izmedu opcracije citanja podataka iz
B- Biranje izvora podataka magistrale B; kodiranje je kao na slici.
memorij~ i kuri;cc·nja dobijenih podataka. Naravno. tokom tog ciklusa moze se raditi
ncsto drug()- sa11l\) nc l)[l() za sta jc potrcbna memorijska rcc. Bitovi
PretpostavLt da rad s memorijorn trajc jcdan ciklus, jcdnaka je pretpostavci o sto-
J J J s S F0 F, E E I I H 0 T C L S p M MW R F
postotiWill :-.tqxnu pogadanja kd memurije prvog nivoa. Ta pretpostavka u realnosti M A A L R N N N N p 0 p v p c 0 A R E E
nikad nc stu_1i. alibi u\odenje rcalnijcg, promcnljivog trajanja opcracijc s memorijom NEXT_ADDRESS p M M L' A A B v c c s p R R I A T MrJglst·a-
C N z 8 I A T D C Ia 8
bi]o Sll\ i;Illl komplikovanjc onoga SlO Sll10 zclcli ovde da poka;/.emo. E H I
Pos1u rcgist1·i MBR i MDR ucitavaju vrcclnosti pri uzlaz.noj ivici signala radnog tak- ' -- -y - - - - - ---- --~'----
'--- -------~ ---~'---

ta. upnrnlo sa ostalim registrima, njihov sadrzaj se mol.e proCitati tokom ciklusa u ko- Addr JAM ALU c Mem B
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 Registri mag1strale 8
sumnji: ~'"-e dok se nove vrcdnusti nc ucita_1u u rcgistre MBR i MDR pri uzlaznoj ivici 0 = MDR 5 =LV
sign ala radnug takta. u registrima su jus uvck stare vrcdnosti koje se mogu koristiti. 1 =PC 6 = CPP
2 = MBR 7 = TOS
SkrLcemo varn paznju na mogucnost kontinualnog ucitav<mJa u dva uzastopna ciklu- 3 dvlBRU 8 = OPC
sa pn~to jc t.a ucitavanjc dovoljan jedan ciklus. lsto tako, ohc memorije mugu raditi 4 = SP 9·15visJk
u isto vreme. :V1edutim. pokubj da se isti hajt istovrcmcno ucita i upise daje ncpred-
Slika .1-5. l·ormal mihroinslrukcijc za 1\lic-1.
vidljivt:: re~:ultate.
lako jc mozda pozcljno da se sadrzaj magislr<Iie C istovremcno upise u vise regi- Redosled gmpaje u principu proi1.voijan. ami smo ga vrlo pazljivu hirali da hismo
st,tra. nikada nijc p<lzclpw da magistrali B poclatke u jcdnumtrenutku isporucuje vise izhegli ukrstanje vmlova na slici 4-6. Ukr~tanjc vodova na ;emama kao stu je -,lika 4-6
"d jcdnug reg istra. ( Stavi~e. to u neki m implcrnentacijama izazi va tizicko ostccenje. l ccsto odgovara stvarnom ukr;tanju l.ica na cipu. ;to stvara problemt'. pa ga lreba svcsti
li1 nci.Il<Jlno prosirivanje dektronskog kola mozcmo da smanjimo broj bitova potreb- na najmanju meru.
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 ~e posebno racunaju oznacena
i ncuLnaccna vcr~:ija regi~,tra MBR). Prema tome. inrormaciju za biranje izvora magi-
4.1.3 U pravljanje mikroinstrukcijama: Mic-1
strale l3 mu:l:enm cla kudiramo ponwcu-+ bita i da pomocu dckodcra gcncriscmo 16 Do sada smo opisali kaku sc upravlja putanjnm pPdataka, ali ni:smu rwminpli k:tko
uprctVljackih ~igltala. od kujih SU 7 visak. U korncrcijaJnoj iLVcdhi, prujcktanti CC OSC- sc odlucujc koje upravljacke signak trcba prim~niti u svakom cik!usu. T<> odrcL111Jt'
lll j llc'<lllUJjj Vll potrebu da Se re;e jcdmlg od rcgistara. pa L'C J:a kodiranje izvora flOda- tzv. sckvencer (engl. sequencer) kuji jc odgovoran za voctenje si\tcnn knu nil Llia-
laka magistralc B hili dovoljna i 3 bita. Nama, koji o tome ra,pravljamo i.'lkljucivo stopnih opcracija ncophodnih za izvrsenje jcdne ISA instrukcijc.
lellrijski. do/.\Oljen je luksuz da potrosimu jedan bit kako bi nas projekat bio cistiji j Sekvcncer mora da oheLbedi dve vrstc in formacija u svakom ciklu:,u:
_!cdmNavniji. I. Stanjc svakog upravljackog signala u sistemu.
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 2. Adrcsu mikminstrukcije koja dolazi na reel za izHsavanjc.
p•ldataka :-.amu tokomjcdnog ciklusa. U drugi dco upravljanja spada i pitanJe ;ra treba Slika 4-6 prikazuje detalJan blok-dijagram dDvr~ene mikroarhirckture procesora iz
r:tditi u sledccem ciklusu. Da bi se i ono ukljucilo u projekat kontrolera. napraviccmn naseg primera. koji c'emo zvati Mil:-1. !'<a prvi poglcd. dijagram dclujc irnpo;:mtr:n.
l'<H·mat z.a upi:-:ivanjc opcracija kojc trcba izvcsti koristcci 24 upravljacka bita i dva ali ga vredi detaljno proll\:·iti. Kada polpuno shvatite ulogu sv:tkDg hl"k:t i svak"g
d<'datna polja: NEXT_ADDRESS (sledeea adresa) i polja JAM. Sadrzaj svakog od ovih vnda na dijagramu. na dobrom ste puw da savladatc nii'O mikmar!nrckturc '·acunara.
p<llp uhja,nicemu uskoro. Slika -f-5 prikawje jedan moguci formaL kuji sadr7.i 36 si- Blok-dijagram ima dva clela: pulanju podataka na levuj slr<tlll 1kuju snw 1cc cleta1JI1o
:;nala u slcdccih ~est grupa: objasnili) i upravljacki deo na desnoj strani. kuji ccnw -,:1da anatiZlr:ni.
,.---
)I Poglavlje 4: Nivo mikroarhitekture 4.2 Primer ISA arhitekture: IJVM
246
tl
<I
I Kadaje rec o pokazivacima, treba naglasiti nesto. Registri CPP, LV i SP ukazuju na Heks. ked Mnemonik Sta funkcija radi
re6. a ne na hajtove. i korak njihovog uvecanja je rec. U podskupu celih brojeva za OxAC IRETURN Vraca iz metode celobrojnu vrednost
koji smo se opredelili, sve reference na clemente podrucja konstanti, clemente okvira Ox36 ISTORE prombroj Uzima rec sa steka i smesta je u lokalnu promenljivu I
lokalnih promenljivih i stekajesu reci i sva rastojanja upotrebljena za indeksiranje u
Ox64 ISUB UzirToa dve reci sa steka i na stek vraca njihovu razliku
ovim podrucjima mere se recima. Na p1imer, LV, LV+ 1 i LV+ 2 ukazuju na prve tri reci
Ox13 LDC W indeks Na stek stavlja konstantu iz podrucja konstanti
okvira lokalnih promenljivih, a LV, LV+ 4 i LV+ 8 ukazuju na reci u razmacima od 4
OxOO NOP Ne radi nista
reci (16 bajtova). I
Nasuprot tome, registar PC saddi adresu u bajtovima i uvccanje iii umanjenje nje- Ox 57 POP Brise rec s vrha steka
gove vrednosti menja adresu u bajtovima, a ne u recima. Adresiranjc je za regis tar PC Ox5F SWAP Menja mesta dvema prvim recima sa steka
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-
OxC4 WIDE Prefiksna instrukcija; sledeca instrukcija ima 16-bitni
, indeks l
nosti registra PC za jcdan i iniciranje operacije citanja jeste u preuzimanju sledcceg Slika 4-1 L Skup IJVM instrukcija. Operandi hujt. konst. i prom/Jroj sujcdnobajtni. Op"randi rm-t,
bajta. Rezultat uvecanja registra SP za jedan i iniciranje opcracije citanja jestc prcu- i/l{f~ks i f'OIIl<lk su dvobajtni. (nastavuk)

zimanje sledece reh.


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
4.2.3 Skup IJVM instrukcija sama instrukcija (BIPUSH). Promenljiva sc moze i uzeti sa steka i smestiti u okvir lo-
Skup IJVM instrukcija prikazan je na slici 4-ll. Svaka instrukcija sadrzi opkod, kalnih promenljivih (ISTORE). Mogu '-C obaviti dve aritmeticke (IADD i ISUB) i dvc lo-
a ponckad i operand (npr. pomak od pocctak mcmorije ili konstantu). U prvom stupcu gicke opcracije (lAND i lOR) s najvise dvema rccima na stcku kao operandima. U svim
jc hcksadccimalni k6d instrukcije, au drugom njcn asemblerski nmemonik. U treccm aritmetickim i logickim operacijama dve rcci se uzimaju sa steka, a rewltat se vw:'a
stupcu jc dat kratak opis funkcije. 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
Heks.kod Mnemonik Sta funkcija radi grananje, kada se nadu u programu, mcnjaju vrcdnost registra PC za velicinu svog
Ox10 BIPUSH bajt Stavlja bajt na stek ( 16-bitnog, oznacenog) pomaka u memoriji, koji u instrukciji dolazi iza opkoda. Po-
Kopira prvu rec sa steka i kopiju stavlja na stek mak sc dodajc adrcsi opkoda. Postoje i UVM instrukcijc za zamcnu mesta dve reci na
Ox 59 DUP
steku (SWAP), za dupliranjc poslcdnje reci ( DUP) i za njeno uklanjanje (POP).
OxA7 GOTO pomak Bezuslovno grananje -~

Neke instrukcije imaju vise fonnata da bi se za uobicajene situacije rnogao klri-


Ox60 IADD Uzima dve reCi sa steka; stavlja na stek njihov zbir
-· stiti njihov kraci ohlik. U skup IJV!'vl instrukcija ukljucili smo i dva od nekoliko me-
Ox7E lAND Uzima dve reCi sa steka; stavlja na stek rezultat logicke
hanizama kojima JVM to pnstile. U jcdnom slucaju zanemarili smo kraci oblit u
operacije AND
korist duleg. ali opstijeg oblika. U drugom slucaju pokazali smo kako sc prefiksna in-
Ox99 IFEO pomak Uzima rec sa steka i preusmerava programski tok ako je
strukcija WIDE mo;l.c upotrehiti za poddavanje naredne instrukcije.
njena vrednost nula
1---------- .. ~-
-- Na kraju, postoji i instrukcija (INVOKEVIRTUAL) za pozivanje druge metode i in-
Ox9B IFLT pomak Uzima rec sa steka i preusmerava programski tok ako je
njena vrednost manja od nule 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
Ox9F IF_ICMPEQ Uzima dve reCi sa steka i preusmerava programski tok ako
pomak su njihove vrednosti Jednake I pozi vanJe mctode i Hacanje iz njc izvcdemo pomocu d ve jasne instrukcijc. Za razliku
Dodaje konstantu lokalnoj promenljivoj od Jave. ovde postoji ogranicenjc da metoda mozc pozivati sarno metodu koja postoji
Ox84 IINC prombroj
konst unutar nJcnng objekta. Ovo ogranicenje watno srnanjuje mogucnost orijcntacije na
Stavlja lokalnu promenljivu na stek objckte. ali nam s druge strane omogucujc da veoma uprostimo sam mehanizam jer
Ox15 ILOAD prombroj
melodu ne moramo da lociramo dinamicki. (Ako nc poznajetc objcktno-orijcntisano
OxB6 INVOKEVIRTUAL Poziva metodu
rast programiranjc. sloboclnu zanemarite prcthmlnu napomenu. Ovde smo Javu upruvo
f---- degradirali u jezik koji nijc orijentisan na objekte. kao sto su C iii Pascal.) Na svim
Ox80 lOR Uzima dve reci sa steka i na stek vraca rezultat operacije
OR racunarima. osim ns JVM ma;ini. adrcsa procedure za pozivanje direktno se odrcduje
'------- instrukcijom CALL, tako da nas pristup nije specijalan, vee uobicajen slucaj.
Slika 4-11. Skup UVM instrukcija. Operandi bujt, konsl, i prombroj su jcdnobajtni. Operandi rust,
indeks i pomak su dvobajtni.
................-------
~~-

Poglavlje 4: Nivo mikroarhitekturc 4.1 Primer mikroarhitektm·c 241


240

Po>le dodatnog intervala :'>;:, izlaz iz pomeraca stigao jt: do registara preko magi- Adresa Addr JAM Bitovi za upravljanje putanJom podataka
strak c. Na taj nacin registri mogu da ucitaju podatke pred kraj ciklusa (pri nailasku
u~:lazne ivice signala radnog takta na slici 4-3). U potciklusu 4 ucitava se sadr7.aj re-
Ox75 I Ox92 I 001 I I
Postavljen bit JAMZ

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- Ox92 Jedna od
dve naredne
prestano ponavlja sve dok ~e r;e iskljuci racunar. Jokacije
Uporedo sa upravljanjem put~m.:mn pmlataka, rnikroprograrn treba da odrecli i sle- Iposle Ox75),
decu mikroinstrukeiju, po\to nne nc trcba da se izvrsavaju onirn redom kojirn se nalaze Ox192 sto zavisi
ad vrednosti Z
u upravljackoj memoriji. lzr~tCun,tvanjc adrese sledece mikroinstrukcije zapoCinje na-
kon stu je rcgistar MIR uciLtc> p()datkc i stabilizovao ih. Najprc se u rcgistar MPC k.opira Slika -t-7. !VIikruinstrukcip u koj,0j ic hit JAMZ postavlicn na I ima Jvc rnogucc narednc
Y-hitno pulje NEXT _ADDRESS. Unk se obavlja kopiranje, ispitujc sc polje JAM . .1\ko je miJ..roinstrukcijc.
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. Trcci bit u polju JAM jc JMPC. Ako jc on postavljen. na 8 bitova registra MBR se hit
Ukoliko su jcdan i li vi\L' httova polja JAM jednaki 1, mora se jo.~ raditi. Akoje bit pu bit primenjuje operacija OR sa 8 najmanjc znacajnih bitova polja NEXT_ADDRESS
JAMN poslaviJCB, na naj,rnaC:ajmJi bit reg:istra MPC primcnjuje sc upcracija OR s vred- tekuce mikroinstrukcije. Rezultat se salje u registar MPC. 81ok sa oznakum .,0'' na slici
noscu N i; jcdnobitrlllt' flip-tlupa. Slicno turne, ako jc postavljen bit JAMZ, opt:racija 4-6 obavlja opt:raciju OR izmcdu sadr:laJa registra MBR i polja NEXTADDRESS ako je
OR se obavlja s \Tedrm~cu Z iz JCdnubitnog tlip-llopa. Ukoliku su oba ova bita posta- bit JMPC jednak I, a samo propusta vrednost polja NEXT_ADDRESS do rcgistra MPC
vljcna. opc:racip OR se obavlja sa svakim od njiil. N i Z tlip-llopuvi potrcbni su /.alo ako je bit JMPC jednak 0. Kadaje bit JMPC jcdnak I, najmanje znacajnih X hituva polja
sto puslc u;.la;.nc ivicc signala radnog takta (dokjc signal na visokom nivou) magi- NEXT~ ADDRESS su nule. NajznacajniJi hit moze da bude 0 i li I, pa jc vrednost polja

strala l3 vi.\c ne d' •hip pudatkc, pa sc izlazi iz ALU jcdinice nc mugu vise smatrati NEXT_ADDRESS kuja sc koristi uz hit JMPC OxOOO ili Ox I 00. Zbog cc:ga sc nckada ko-
ispravntnl. Ako statusne indikatorc ALU jedinicc sacuvamo u flip-t1opuvima N i Z, risti vrednost OxOOO, a nekada Ox I 00. bice objasnjeno kasnije.
tspravnc vn.:drwsti ;.,c nccc rncnjati i hice na raspolaganju;.a izracunavanja u veJ:i s re- Mogucnost da se na saclrzaj registra MBR i vrednust NEXT_ADDRESS primcni ope-
g:i;,tmm MPC, bel ob;.tra nato sta se dcsava u okolini ALU jedinicc. racija OR i da se rczultat smesti u rcgistar MPC omogucava etikasnu real i~:aciju
Na siicl ..J.-h. i<>gika koja ubavlp ovo i.cracunavanje u;:nacenajt: sa .. Najz.nacajniji grananja pmgramskog toka. lmajte na umu da se nwze zadati biln koja od 256 adresa.
bit". ( )na i!TclCUllaVa sicdL'CU Bulovu runkciju: 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
F ~ (J,i\MZ .~NO Z; OR (JAMN AND N) OR NEXT ADORESS[8]
1.a svaki mnguci opkod. Ova metoda je korisna za brzo skakanJc na J'unkciju kuja od-
Ohr,tti!c' painju n,t tu da registar MPC mo/.c da dobije samo jcdnu od dve moguce govara upravo prcuzetom opkodu.
V fL~dlHY·,ti: 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
l. VrcJn<"t ~JE~<T _ADDRESS.
oni mogulaktl J:amisliti. ali sujeclini stvarni dogadaji silazna ivica signala radnog tak-
2. VredtHlSI 1'-IEXT ADDRESS na l'iJi je najznacajniji hit prirnenjena operacija
ta. koja ;.apocinje ciklus, i njcguva uzlazna ivica, koja puni rcgistre iN i Z tlip-ll'npove.
OR s hn•jcEl l.
Treba ponovo poglcdati sliku 4-3.
Drct)-.ih JW>guc;l<lsti nt'llla. Ako jc najznacajniji bit polja NEXT_ADDRESS vee I, Tokum potciklusa I, iniciranog silaznom ivicom signal a rachwg takta. regi,tar MIR
k\lri(L:cnje t-·i1l)Va JP-.MN ili JAMZ gubi srnisat1. sc puni sa adrcse koja se trcnutno nalazi u registru MPC. Tobllll polciklusa ~- dciUJU
KilcLt .,u .svi bitt•vi polja JAM nule, adresa sledece mikroinstrukcije je 9-bitni broj u signali iz rcgistra MIR ina magistralu B izlaze podaci iz izahranih rc·gistara. Za vreme
p•.lljtt NE.<TA::JDF-,ESS. Kada stt JAMN ili JAMZ jednaki l. postoje dve rnogucnosti: putciklusa 3. rade ALU jedinica i pomc:rac i gcneri;u stahilan rc?ultar. Duk ~e ochijcl
~£<T _.4L:·DRE3S t ~J<=:XT _ADDRESS po;,le t>peracije OR s vrcdnuscu Ox l 00 I pod pretpo- potciklus 4. stabilizuju sc vrednosti na magistrali C. na rncmorijskoj magistrali i .\LU
,i~t\ 1-,_, >!ll Jaj,; \ rccl:h >>l NEXT _ADDRESS S Oxl·Fi. (Simbol Ox oznaca' ada iza njeg:a sle- jedinici. Pri nailasku tl/Jaznc ivice sig:nala raclnog takta, pune se rL·gi;;tri s rn~1gistrak
di hd.st\1-:•:il:iaLI<l hmJ '· 0':\l je prikazano na slici 4-7. Za tck.ucu mikrninstmkciju na C, kao iN i Z tlip-tlopovi. a registri MBR i MOR dobijaju traL.enc ruuiL1tc rada s mc-
I• >kaci;i t ix 75. vrcdnl\o.t NEXT ADDRESS jc Ox92, a bit JAMZ postavljen je na 1. Shodno muriJom koji jc zapoceo pri kraju prt:thodnog ciklusa putanjc: podataka (aku g~1 jc bi-
tl>!'lC. a•'r,·.;a ckdc:ce mikruinstruk.cije zavisi od bita Z srncstcnog: tokum prcthodne ope- lo). Cim vrednost rcgistra MBR bude raspolofiva, puni se rcgistar iv1PC kau priprema
retciic' .\U · jdini,·.:. Akn je bit Z jcdnak 0. sledcc:t mikroinstrukcija dolazi s lokacije
,.~.

za sledecu mikroinstrukciju. Taku rcgistar MPC dobip woju vrc:dno<;t nt·g:d.: ()ku src-
t lx \: ~- l kc •ilk• J jc i'it Z jednak I. slcdeca rnikroinstrukcija dol,tzi sa lclk:tcijc Ox I 92. dine intc:rvaLlu kornc je signal radnog takta na visokum nivou, ali td: po~to rt'gistri
Poglavlje 4: Nivo mikroarhitekture 4.3 Primer implementacijc 251
250

Stek pre izvrsen1a i = 1 + k; ILOADj IIi = j + k Ox15 Ox02


instrukcije !RETURN if (i == 3) 2 !LOAD k Ox15 Ox03
Vrednost koju k = 0; 3 IADD Ox60
-sP
metoda vraCa else 4 !STORE i Ox36 Ox01
Prethodna vrednost
registra LV j = 1- j; 5 ILOADi II if (i == 3) Ox15 Ox01

- Prethodna vrednost 6 BIPUSH 3 Ox10 Ox03


registra PC 7 IF_ICMPEQ L 1 Ox9F OxOO OxOD
lokalne 8 !LOAD J II j = j- 1 Ox15 Ox02
promenljive 9 BIPUSH 1 Ox1 0 Ox01
pozivaoca
10 ISUB Ox64
Pocetak steka
Parametar 3 Stek posle izvrsenja 11 !STORE J Ox36 Ox02
pre izvrsenja
Parametar 2 instrukcije IRETURN 12 G'oTo L2 OxA7 OxOO Ox07
instrukc1je I RETURN
Parametar.1 Vrednost koju 13 L1: BIPUSH 0 II k = 0 Ox10 OxOO
- - SP
- - Vezni pokazivac -<- metoda vraCa
14 !STORE k Ox36 Ox03
Prethodna vrednost Prethodna vrednost
registra LV 15 L2:
reg1stra LV
Prethodna vrednost Prethodna vrednost (a) (b) (c)
,.- reg1stra PC
,.- registra PC
Lokalne Slika 4-1-1. (a) Kratak program na Javi. (b) Odgovarajuc'i Javin ""'mblcrski program.
Okv1r Lokalne
promenljive (c) IJYM binarni k<'>d u heksadecimalnom zapi,LL
lokaln1h promenljive
pozivaoca Pocetak steka pozivaoca
promeniJivih
pozivaoca Parametar 2
Parametar 1
posle izvsenja
mstrukcije IRETURN
Parametar 2
Parametar 1
- I- Vezni pokazivac --- LV
I i I EB I i +k 1
4
I ; I EB
- - Vezni pokazivac

Ia! . Ib)

Stika -1-U. (a) Mcmorija pn: izvrsavanja in,trukcijc !RETURN. (b) Posk izvrsavanja. I I I EB 9
I i: 1 1
10 11 12
[ uo
13
J
14 15
15 na levuj strani asemblcrskog programa nisu deo rezultata prevodenja, kao ni ko-
Stika 4-15. Stek posle uzastopnih instrukcija sa slike 4-14(b ).
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 lnstrukcija 5 (ILOAD) zapocinje nareubu if lako sto promenljivu i smesta na stek
-1--14(c). (Javin prevodilac u stvari obavlja intcrno asernbliranje i odmah dajc binarni (5). Sledeca na stek ide konstanta 3 (instmkcija 6). Stek je posle poredenja ponovo
kod.) U nasem primeru uzdi smu da je i lokalna promenljiva l, da je j lokalna pro- prazan (7 ). Instrukcija 8 jc pocetak dela else Java programa. Deo else se nastavlja do
menljiva 2. a dajc k lokalna prnmenljiva 3. instrukcije 12, a zatim preskace deo then i prelazi na oznaku L2.
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,
4.3 PRIMER IMPLEMENTACIJE
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 Posto smo dctaljno objasnili mikro i makroarhitekturu, na red je dosla implementa-
oznaku L2. gdc .-,e dclov i then i else sw,rccu. cija. Drugim reeima, kako izgleda program koji se izvrsava na rnikroarhitcktUii a intcr-
Stek upnanada za lJVivl program sa slik.e -1--14(b) prikazan je na slici 4-15. Pre prctira makroarhitekturu, i kako sve to radi? Pre nego sto odgovorimo na ova pitanja,
nego sto kod pocne da se izvrsava stck je prat,all, sto jc oznaceno horizontalnom lini- moramo paz.ljivo navesti notaciju koju cemo koristiti za opisivanje implementacije.
jom iznad 0. Posk prvc instrukcije ILOAD na steku je promenljivaj, sto je oznaceno
uokvircnirnj iznad l (izvrscnaj~ prva instrukcija). Posle druge instrukcije ILOAD, na
steku sc nalazc clve reci (j i k iznad 2). Posle instrukcije IADD 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-).
244 Poglavljc ~: Nivo mikroarhitckturc ~.2 Primer ISA arhitekture: IJV\\1
-~-----------~---
245

Uz to sto cuvaju lokalne promenljive, stekovi imaju i drugu namenu. U njima se l. Podrwjc konsranti. I.JVM program ne mul.c upisivati poclatke u ovo podrucje.
mogu cuvati operandi tokom izracunavanja aritmetickih izraza. Kada se koristi na a ono >e sastoji od konstanti, znakovnih nizova i pokazivaca na druga podruc-
ovaj nacin. stek se naziva stck opcranada. Pretpostavimo da je procedura A, pre po- ja mcmurijc koja sc mogu rd'crcncirati. Ono dubija svoj sadrzaj u trenutku
zivanja procedure B. trebalo da izracuna iskaz kada sc program ucita u mcmoriJU i pos!c toga se sadrzaj ne menja. Postoji
a1 = a2 + a3: podrazumevani registar CPP koji sadrzi adresu prvc rcei podrucja konstanti.
Jedan od nacina da sc to uradi jestc da sc promenljiva a2 smesti na stek, kao na sli- 2. Okvir lokulnih pmmcnljivih. Pri svakom pozivanju rnetnde rezervisc se pod-
ci 4-9(a). U ovum slucaju SP sc uveeava z.a broj bajtova u reci (npr. za 4) a prvi ope- rucjc memorije za smdtanjc promcnljivih tnkum njihm,lg zivotnog ciklusa.
rand sc smcsta na adrcsu na koju on uka.cuje. l'otom se na stek smesta prnmenljiva a3, Podrucjc se wve okvir lokalnih promenljivih. /'<a pocetku okvira nalaze se
kao na slici 4-9(bl. Napomenimo uzgred da cemo sve programske delove stampati parametri (nazvani i argumenti) s kojima sc mc't<lLb potiva. Okvir lokalnih
fontom Helvetica. lsti font ccmo koristiti i za opkml i masinske registre ascmblera, ali pmmenljivih ne ohuhvata i stek operanada. lDji prcdsravlja Lasebnu strukturu.
cc imena programskih promcnljivih i proccdura biti mL~tamapana kur:.il'OIIl. Razliku Mcdutim, zhog clikasnosti. l) nasoj implcmentaciji pustaviccmo stck opcrana-
pravimojcr imcna promcnljivih i proccdura smislja korisnik, dok su opkod i masinski da neposrcdnu i;.nad \lkvira lokalnih promcnljivih. Postoji pmlrazumevani
rcgistri unaped dctinisani. regis tar kuji sadrzi adrcc<.;u prvc lokacijc u okviru lokalnih pmmcnljivih. Zvace-
[zracunavanje sad a l1lllZ.C da obavi instrukcija kuja ce Uleti dvc reei sa Stcka, sabra- mo ga LV. Paramctri koji se prosleduju ltlkom pu;:ivanja metodc smdtaju se na
pocetak okvira lokalnih promenljivih.
ti ih i rezultat p<movo smestiti na sll'k, kau na slici c\-9(c). Na kraju se pn~,lednja rcc
mozc uzcti sa stela i ponovo smc,titi u loblnu pmmenljivu u I, kao na slici 4-lJ(d). 3. c'ilek Ofh'runudu. Ok vir stcka jc ugranicenc vclicinc - .Iavin prevodilac ga iz-
racunava un,tpn:d. Pmstor za stek opcran<~da nalazi se neposredno iznad okvira
SP - lokalnih promt•nljivih, kao na slici 4-10. u nasuj implcmcntaciji zgodno je da

;e-~
SP- -r/·/:;;; o2 7/'//jl ;,e stck upcranada .'>matra delum okvira l<1kalnih pmmenijivih. U svakom sluca-
a3 SP
ju. posl<lji podra;unll'vani rcgi,tar k<>ji sadr!i po;,lcdnju rcc na steku. lmajtc na
LV -
a2
LV- LV--
' LV - umu to da sc. 1.a ra;liku od registara CPP i LV. vrcdnost pokazivaca SP mcnja
~--

(a) lbl lei lui tukum iL.vr'.avanja mctodc duk sc upl'randi smdtaju na stck ili uzimaju s njega.

Slika ~-9. Aritmc'tic·ku izra(·unavcmjc na steku npcrnnada.


Stek3 ~- SP
Tcekuci I
Okviri pmmenljivih i stclovi operanada mogu se mcsati. 0ia primer, pri izracuna- oper;wdi
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 Okw3
T&kuce
stavlja na stek. iznad x 2 • pa ih slcdcca instrukcija mol.c ~ahrati. !okJ!ne
Treba pomenuti da svi racunari koriste stck ;.a cuvanje lukalnih pr"mcnljivih. ali oromerii1ve I
ncmaju svi stek operanada. U stvari. vccina racunara ga nema. ali JV!\1 i lJVivl r:ltk
. . ---J- - LV

I
, II
/ Okvir 2 I
I
na slican nacin. zbog ccga snw uvde ukratku ohjasnili rad sa 'tekom. 0 stckuvima
ccmo vise govoriti u poglavlju 5.
Podcuc1c
I
/ LukCJine
orcowrdpvo I
konslanti i
4.2.2 lVlemorijski model IJVlVl arhitekture I
I I
I
1
Okvic I
Lokaine
prnrnr~nljive
Podrucje
metoda --PC
Sada smo spremni za analiziranjc lJVM arhitckturc. On<t se u <lSn<wi ,,t,tuji od me- I_
L _ __ _ ~
CPP
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 Slika -1-10. Rulr2ilt .icl<•vt IJVM mcrnurije.
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 adrt·sa knjc ot~rc­ c\. Pudnujc lllC!r 1,iu. :\a J...r~tJLI. pPstcrji 1 pudrucjc mcmurije u kome se nala;i
uuju pucdno stanje pokaJ:ivaca. l.JVM instrukcije mPgu pristupiti mcmmqi samn in- pnlg!'clllL a kujc' -,c u U:'silX ;,i.,ll'mima naziva ..tckstualno'· podrucje. Postoji
deksiranjcm 11 odnusu na poka1ivac. Uvck su detinisana sledct'a pourucjct melllorijc: 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 posm,llr~t kao nit. hajtova.
r 254 Poglavlj~ 4: Nivo mikroarhit~ktur~ 4.3 Primer implcmcntacijc 255
'
Ponekad mikroprogramer zeli da napravi uslovni iii bezuslovni skok. Bezuslovni
DEST"' H skok (grananje) oznacava se jcclnostavno:
DEST"' SOURCE goto oznaka
DEST"' R Ova naredba se moze ukljuciti u svaku mikroinstrukciju cia bi sc iaicito imcnovao
DEST"' SOURCE njen sledbenik_ Na primer, nizovi mikroinstrukcija najcdce se zavrsavaju povratkom
DEST"' H + SOURCE na prvu instrukciju glavne petlje, tako da poslednja instrukcija takvog niza po pravilu
DEST"' H +SOURCE+ 1 sadrzi i nareclbu
~-

DEST"' H + 1 goto Main1


DEST"' SOURCE+ 1 Obratite paznju nato daje putanja podataka dostupna za normal an rad cak i tokom
DEST"' SOURCE- H mikroinstrukcije koja sadrzi naredbu goto. U krajnjoj liniji. svaka pojedinacna mikro-
DEST"' SOURCE- 1 ---- instrukcija sadrzi poljc NEXT_ADDRESS. Nareclba goto samo daje uputstva mi-
DEST"'- H kroasembleru da u ovo poljc umcsto adrcsc mikminstrukcije iz slecleccg rcda postavi
1-------------
DEST"' HAND SOURCE zadatu vrednosL Svaki red bi u principu trebalo da ima nareclbu goto, samo sc ona (sto
1-------'--- .
DEST"' H OR SOURCE je ?godno za programcra) mozc izostaviti ukoliko jc ciljna adresa sledeci reel.
Za uslovno grananje programskog toka potrcbna nam je drugacija notacija. Serite
DEST"' 0 ·- sc da polja JAMN i JAMZ koriste bitove N i Z. koji sc podesavaju na osnovu izlaznih re-
DEST"' 1 zultata ALU jedinice. Ponekad je. na primer, potrebno proveriti da li je vrednost u nc-
DEST"' -1 kom rcgistru nula_ Vrcdnost iz tog rcgistra mogla bi sc propustiti kroz ALU jedinicu
i ponovo smestiti u isti registar. Kada napiscmo
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 TOS = TOS
H ~ MBR « 8.
to izgleda cudno, ali ova narcdba radi upravo ono sto smo zamislili (poddava Z tlip-
Da bisnw izbcgli ubunu. podsetimo da i'vlic-1 rnoze da pristupa memoriji na dva tlop na osnovu vrcdnosti TOS). Da bi mikroprogrami lcpsc izgledali, prosiriccmo MAL
nacimL Za citanje i upisivanjc podataka ll obliku 4-bajtnih reci kuristi se kombinacija clodajuCi dva nova imaginarna rcgistra. N i Z. kojima se mogu dodeljivati vrednosti_
registara MAR/MDR i ovc uperacije se u mikruin,trukcijama oznacavaju sa rd i wr. N a primer, narcdba
Za citanjc jednobajtnog opkoda iz niza instrukeija koristi sc kombinacija registara Z =TOS
PC/MBR koju u mikroinstrukcijama m:nacavamo sa fetch. Obc memmijske operacije
saljc vrcdnost rcgistra TOS u ALU jcdinicu i tako poddava Z (iN) llip-tlopovc. ali je
mogu sc obavljati istovrcmenu.
nigde ne smc!ita. Kada Z ili N upotrebimo kao odrediste, mi u stvari nalazemo mikro-
Meclutim, isti registar ne moze u i'tom ciklu'u preuzimati vrednost iz memorije i
asembleru da svc bitove polja C sa slike 4-5 postavi na nulu. Putanja podataka obavlja
s putanje podatab. Razmotritc sledeci ktid
uobicajen ciklu' uza sve clozvoljene operacije, ali se nista nc upisuje u registre. Obra-
MAR~ SP; rd tite paz.nju nato cia je svejcdno da li je oclrediste N iii Z; rnikroinstrukcija koju gene-
MDR ~ H rise mikroascmbler u oba slucajaje ista_ Prograrncri koji namerno izabcru ,.pogrdnu'·
Prvom mikroin;,trukcijom sc vreclmd iz memorijc dodcljujc registru MDR pri kra- mikroinstrukciju, bice kaznjeni jednonecleljnim prisilnim radom na originalnom
ju druge mikroinstrukcijc. Meduttm, u isto vreme druga mikroinstrukcija takode do- IBM-ovom PC racunaru s raclnim taktom od 4,77 MHL
dcljujc vrcdnost registru MDR. Ove dve narcdbe '>C sukobljavaju i nisu dozvoljene jer Sintaksa kojom se mikroasembleru nalaze da postavi bit JAMZ glasi:
je rez.ultat nepredvidljiv_ if (Z) goto L1; else goto L2
Setite se da svaka mikroinstrukcija mora da obezbedi adresu mikroinstrukcije koju
treba sledeeu izvrsiti. Obicno se do gada da mikroinstrukciju poziva samo jcdna clruga Posto hardver zahteva da 8 najrnanje znacajnih bitova ovc dve adrese budu jedna-
mikroinstrukcija- ona kuja '>C nalazi u prethodnom redu. Da bi se mikroprogrameru ki, rnikroasemblcr to treba da postuje_ S drugc strane, posto L2 moze da bude bilo gde
olaksao posao, mikrochembler po pravilu dodeljujc adresu svakoj mikroinstrukciji u nizih 256 rci'i upravljacke rncrnorije, mikroasembler ima mnogo slobode da pro-
I

(nc nbavewo redosledom kujim sc pojavljuju u upravljackoj memoriji) i ispunjava I nade raspoloziv par adresa.
I
poljc NEXT_ADDRESS. takn da se mikroim,trukcije ispisane u uzastopnim redovima

~~
izvrsavaju jedna za clrugom.

l
r~
Poglavljc 4: Nivn mikroarhitckturc 4.2 Primer ISA arhilckturc: I.JVM 249
248

Mehanizam pozivanja metode je sledeci. Pozi va1ac prvo stav1ja na stek referencu Redos1ed dogadaja kada se pozove instrukcija INVOKEVIRTUAL prikazan je na slici
(pokazivac) na objekat koji treba pozvati. (Referenciranjc u IJVM masini nijc potreb- 4-12. Dva ncoznaccna indeksna bajla koja sledc iza opkoda koristc se 1.a kon-
no jer se ne moze zadati nijedan drugi objekat, ali jc zadrzano zbog sag1asnosti sa struisanje indeksa u tabeli poclrucja kon.slanti (prvi bajtje Lnacajniji). Jnstrukcija iz-
JVM masinom.) Na s1ici 4-12(a) rcferenca je naznacena sa OBJREF. Poziva1ac pot om racunava pocelnu adresu novog okvira 1ukalnih prornenljivih oduzimajuCi broj
na stek stavlja parametre mclode (u ovom primcru Pararnetar 1, Pammetar 2 i Para- paramctara od vrednosli pokazivaca steka i poddavajuci registar LV taku da ukazuje
mctar 3). Na kraju se izvrsava instrukcija INVOKEVIRTUAL. 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 nc~ adresu u re-
Stek posle instrukcije gistru LV dodaje ve1iCina okvira 1oka1nih prornenljivih (paramelri + 1okainc pro-
INVOKEVIRTUAL men1jive). Neposrcdno iznad adrese na kojoj ce hili smdtena stara vrcdnosr registra
Registar PC, na1azi se adresa na koju leba smcstiti staru vn.:clnust registra LV. Odmah iznad nje
LV pozivaoca - - SP
pocinje slek za novopozvanu proq:duru. Registar SP se pustavlja tako da ukazuje na
,.. Registar
PC pozivaoca slant vrednosl rcgistra LV. sto jc vrcdnost ncpw,rednu ispod prve prazne lokacije na
Prostor za lokalne stcku. Upamtite cla registar SP uvck pokazujc na prvu rcc na sleku. Ako je 'tek prazan,
Stek pre izvrsenja promenljive on ukazuje na prvu lokaeiju ispod njegajcr nas stek raste navi~e, prL'ma visim adresa-
instrukcije INVOKEVIRTUAL Pocetak steka pozivaoca
ma. Na nasim s1ikama slck uvck rasle prema \ isim adrcsama na vrhu strane.
Parametar 3 SP posle izvrSenja Parametar 3
Parametri instrukcije Parametar 2
l'oslcdnja opcracija pri izvr~avanju inslrukcijc INVOKEVIRTUAL jcstc postavljanje
Parametar 2
stavl1ent INVOKEVIRTUAL
Parametar 1 Parametar 1 rcgislra PC tako da ukaL.uje na peti ba_1t prostura re.ccrvisanc1g La kCJd metode.
na stek
OBJREF ' - 1- Vezni pokazivac - -LV In.strukcija \RETURN obrce redo.sled uperacija koji i;vrbva instrukcija INVOKEVIR-
Pn~thodna vrednost Prethodna vrednost TUAL, kau sto sc vidi na slici 4-13. On a uslohada pros lor koji jc koristila po1.vana me-
re~JIStr<J LV registra LV
,.. Prnthodna vrednost ,.. Prethodna vrednost lmla. Takode vraca slek u prvobitno slanjc. osirn sto -;u ( l I rcL· OBJREF (sada ohrisana)
reg1stra PC req1stra PC i svi njcni parametri uzcti sa steka i sto s~ 12.1 vrcdnusl kuju vraca metoda stav1p na
Lokalne Lokalne vrh stc:ka ( na meslo kuje _je raniJC zau;imala rec OBJREF). Da hi p<mnvu u.sposlavi1a
Okvtr
lokalnih promenljive Pocetak steka promenlpve staru stanje, inslrukcija iRI::TURN treba da p<lka!.ivaC·ima PC i LV dndeli njihove stare
promenljivth poztvaoca pre izvrSonp-1 pozivaoce vrednusti. Ona lo radi lakcJ stu pri-;tupa ve!IHJITI pukaLi\ acu. engl. Lin/... poilller (koji
poztvaoca tnstrukcije Paratnetar 2
Parametar 2 predstavlja rec odredc:nu tekucom vredtw,:;l'tt pukazivac·a LV). Na toj 1okaciji, gde jc
INVOKEVIRTUAL
Parametar 1 Parametar 1
prvohiiilo bila smdtcna rcc· OBJREF. instrtikcija INVOKEVIRTUAL je smc;,li1a adresu
r Vezni pokaZtvac L... t- Vezni poka?ivac J na k<1joj se nala1.i '>far~J Hcdnost pokaL.J vaC·a PC. T~1 rcc i rcc iznad njc uzimaju se sa
Ia) Ib) steka da bi sc punovo uspostavi1o staro sta;;je pokazivaca PC i LV. Vreclnost koju vraca
metoda. sme~tena n:t vrhu std,a. k11pira sc'" u lukaciju 11~1 kujoj jc ranije hila sme\tena
Slika ~-12. (a) vkmorij" pr.: ilH,.:nja ""trukcij.: INVOKEVIRTUAL. Ihi Poslc i;, rscnp.
vrcdnost OBJREI". a regi;,tar SP se puJc:~:,,] takll da [ll'iHl\U uk~l!ll.JC na tu lokaciJu.
lnstrukcija INVOKEVIRTUAL ohuhvata rastojanjc (rust) koJC u podrucju korhlanti 1.iprav1j:tnJe rro~~r:lm'J:irn tokumje laku vracenu inc,lrukciji "''P
nep<lsrcdno s1edi iza
o;.nacava 1okaciju na kojoj se unutar pmlrucja metoda nalazi pocetna adrc-;a mctmk instrukcije INVOKE'/iRTUAL.
koju lrcha pozvati. Medutim. iako na 1okaciji na koju ukazuje poka;.ivac pm,loji kC>J Nas r:tCunar ncnla ub;nu-i;Lvne in.strukci.Jc. a nemar1w namcru ni da ih dodaje-
metodc. prva cetiri bajta lt podrUCJU metoda ~adr/e specijalne poclalkc. Prva dva bajta mu. One mu ne trebaju. bas bo ni .Ia\ irwj virrueln,,j ma,:;ini. au zvctnicnoj JVM spcci-
se tumace kao 16-bilni ceo broj koji oclrectujc hroj parametara mclode (paramelri 'u ra- tikaciji J1L'l1l:t ni pomena o uLtzlw-izbznim in,truk~·ijama. Tec'I"L'tiC·ari smatraju da je
nije stavljcni na stek). Za ovu svrhu sci OBJREF racuna kao paramctar: paramctar 0. racunar k11ji nc pnhvala. nili isp<ll"l!Cuic podatke .,bczbcdcm··. iJVM ucilava i upi'LI.JC
Ovaj 16-bitni ceu broj. J.ajcdno s vrcdnoscu rcgistra SP, daje 1okaciju OBJREF. lmajre pmlatke P<'livajuc'i specijalnc uLttno-iz!anJc mc1m!e.t
na umu da registar LV ukazuje na OBJREF, a nc na prvi rea1~m paramctar. 0 tcHnc na ~ta
ukazuje LV mo/.e sc prilicno slobndno mllucivati. 4.2.4 Prevodcnje .l an.~ u I.JY:\l
Druga Jva bajta u podrucju metoda tumacc se kao drugi 1(1-bitni ceo hwj koji
Pog!cdajmo :;ada ve1.u i;medu .lave i l.J"Vi\1. Na 'lir:i -1--l-f(a) prikaz~mjcjednusta­
odredujc velicinu podrucja 1oka1nih promcnljivih za mctodu koja se pr>ziva. Tb jL'
van deliL' k;Kla lla J:tvi. hada '>C c)]] Jll"U[lll\[j KfO/ .Javin prevudilac, \"CI"{)VatllO C~ ge-
ncophodnu jer se za metodu obrazuje nov stek kuji pocinje ncposreclno iznad ukvira
llCI"isali pmgram u lJVM asembleru. prikManna sli,·i .f-l-l-1. h). Bn•jevi redova od l do
luka1nih promcn1jivih. Na kra.JU, peti bajt u pudrucju metoda sadrzi opkm.i prve in-
strukcijc koju treha izvrsiti.
~---<>~

Poglavlje 4: Nivo mikroarhitekture 4.3 Primer implementacije 259


258

l. Uveeava se PC (u njcmu se nalazi adresa prvog bajta nakon opkoda). Oznaka Operacije Napomena
----
2. Zapocinje se preuzimanje sledeceg bajta u registar MBR. Taj bajt ce zatrebati bipush1 SP = MAR = SP + 1 MBR = bajt za stavljanje na stek
pre iii kasnije, iii kao operand za tekucu TJVM instrukciju iii kao slcdeci op- bipush2 PC = PC + 1; fetch Uvecaj PC, preuzmi sledeci opkod
bipush3 MDR = TOS = MBR; wr; goto Prosiri znak konstante i stavi je na stek
kod (kao u slucaju instrukcije IADD, koja nema operande). Main1
3. Obavlja se viseslruko grananjc na adresu iz registra MBR na pocctku pelljc iload1 H =LV MBR sadrzi indeks; kopiraj LV u H
Main1. Ova adrcsa jc jednaka numerickoj vrednosti opkoda koji se lrenutno iload2 MAR= MBRU + H; rd MAR = adresa lokalne promenljive koju treba
izvrsava. U regis tar MBR smeslila ju jc prelhodna mikroinstrukcija. Obratile staviti na stek
iload3 MAR = SP = SP + 1 SP ukazuje na nov vrh steka; pripremi se za
paznju na to da vrednost koja se preuzima ovom mikroinstrukcijom uopste upisivanje
ne utice na visestruk.o grananje. iload4 PC= PC + 1; fetch; wr Uvecaj PC; preuzmi sledeci opkod; upisi na vrh
steka
Ovde zapocinje preuzimanjc slcdeceg bajta, tako dace on biti raspoloziv na pocet- iload5 TOS = MDR; goto M<Jin1 Azuriraj TOS
- ------- -- --~

ku trecc mikroinstrukcije. On tada moze biti potreban alii ne mora. Posto ce sigurno istore1 H= LV MBR sadrzi indeks; kopiraj LV u H
biti po!reban u nckom trenutku, nece skoditi ako sc ranije preuzme. istore2 MAR= MBRU + H MAR = adresa lokalne promenljive koju treba
smestiti
istore3 MDR = TOS; wr Kopiraj TOS u MDR; upisi rec
istore4 SP = MAR = SP- 1; rd Procitaj pretposlednju rec na steku
Oznaka Operacije Napomena
istore5 PC = PC + 1; fetch Uvecaj PC; preuzmi sledeci opkod
Main1 PC= PC+ 1, fetch; goto (MBR) MBR sadrzi opkod; preuzmi sledeci bajt; posalji istore6 TOS = MDR; goto Main1 AZuriraj TOS
--- ---
na wide1 PC= PC+ 1; fetch; Preuzmi bajt operanda iii sledeci opkod
nop1 goto Main1 Ne radi nista wide2 goto (MBR OR Ox1 00) Visestruko grananje s postavljenim
najznacajnijim bitom
iadd1 MAR = SP = SP - 1, rd Procitaj pretposlednju rec na steku
iadd2 H =TOS H = vrh steka wide ~iload1 PC = PC + 1 ; fetch MBR sadrzi prvi indeksni bajt; preuzmr drugi
iadd3 MDR = TOS = MDR + H; wr; Saberi dve poslednje reti; rezultat upisi na vrh wide~iload2 H = MBRU «8 H = prvi indeksni bajt pomeren 8 bitova ulevo
goto Main1 steka wide_iload3 H = MBRU OR H H = 16-bitni indeks lokalne promenljive
wide iload4 MAR = LV+ H; rd; goto iload3 MAR = adresa lokalne promenljive za stavljanje
isub1 MAR = SP = SP - 1; rd Procitaj pretposlednju rec na steku
na stek
isub2 H =TOS H = vrh steka
isub3 MDR = TOS = MDR- H; wr; Oduzmi; rezultat upisi na vrh steka wide rstore1 PC = PC + 1; fetch MBR sadrzi prvi indeksni bajt; preuzmi drugi
goto Main1 wide _istore2 H = MBRU «8 H = prvi indeksni bajt pomeren 8 bitova ulevo
wide istore3 H = MBRU OR H H = 16-bitni indeks lokalne promenljive
iand1 MAR = SP = SP - 1; rd Procitaj pretposlednju rec na steku wide istore4 MAR = LV+ H; goto istore3 MAR = adresa za skladistenje lokalne
iand2 H = TOS H = vrh steka promenljive
iand3 MDR = TOS = MDR AND H; Obavi operaciju AND; upisi rezultat na nov vrh
wr; goto Main1 steka ldcw1 PC = PC + 1: fetch MBR sadrzi prvi indeksni bajt; preuzmi drugi
Ide_ w2 H = MBRU «8 H = prvi indeksni bajt << 8
ior1 MAR = SP = SP- 1: rd Procitaj pretposlednju rec na steku ldc_w3 H = MBRU OR H H ~ 16-bitni indeks za smestanje u podrucje
ior2 H = TOS H = vrh steka konstanti
ior3 MDR = TOS = MDR OR H; wr; Obavi operaciju OR; rezultat upisi na nov vrh ldc_w4 MAR = H + CPP; rd; goto MAR = adresa konstante u podrucju konstanti
goto Main1 steka iload3
dup1 MAR = SP = SP + 1 Uvecaj SP i kopiraj ga u MAR iinc1 H =LV MBR sadrzi indeks; kopiraj LV u H
dup2 MDR = TOS; wr; goto Main1 novu rec na stek iinc2 MAR= MBRU + H: rd Kopiraj LV + indeks u MAR; procitaj promenljivu
pop1 MAR= SP = SP- 1; rd Protitaj pretposlednju rec na steku iinc3 PC = PC + 1; fetch Preuzmi konstantu
pop2 Sacekaj da se novi sadrzaj registra TOS ucita iinc4 H = MDR Kopiraj promenljivu u H
iz memorije iinc5 PC = PC + 1, fetch Preuzmi sledeci opkod
pop3 TOS = MDR; goto Main1 Kopiraj novu rec u TOS iinc6 MDR = MBR + H; wr; Stavi zbir u MDR; azuriraj promenljivu
goto Mam1
swap1 MAR = SP - 1; rd Posta vi MAR na SP - 1: ucitaj drugu rec sa steka
swap2 MAR= SP Postavi MAR na poslednju rec goto1 OPC =PC -1 Snimi adresu opkoda.
swap3 H = MDR; wr Sacuvaj TOS u H: upisi drugu rec na vrh steka goto2 PC = PC + 1 , fetch MBR = prvi bajt pomaka; preuzmi drugi bajt
swap4 MDR = TOS Kopiraj stari TOS u MDR goto3 H= MBR «8 Pomeri i snimi oznaceni prvi bajt u H
swap5 MAR = SP - 1, wr Posta vi MAR na SP - 1 ; upisi drugu rec na stek goto4 H = MBRU OR H H = 16-bitni pomeraj
swap6 TOS = H; goto Main1 AZuriraj TOS goto5 PC = OPC + H; fetch Dodaj pomeraj na sadrzaj OPC
goto6 goto Main1 Cekaj na preuzimanje sledeceg opkoda
Slika 4-17. Mikroprogrum za procesor Mic-1.
Slika -t-17. Mikroprogram za procesor !'vlic-1. (tzasrm·<~k!
F
u 252
Poglavlje 4: Nivo mikroarhitekture 4,3 Primer implcmentacije 253
t -------------------------
~-
'I'I· naredbe dodele mozemo da zadamo operaciju koju treba izvrsiti. Na primer, da bismo
4.3.1 Mikroinstrukcije i notacija
kopirali sadrzaj registra SP u rcgistar MDR, moLemo napisati
Upravljacku mcrnoriju mo/.cmo opisivati kao binamu, sa 36 bitova po reci. Ipak,
MDR ~ SP
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 Ako zelimo da ukazerno da ALU jcdinica, obavlja i ndto drugo, LIZ prosledivanje
kojc ne trcha razmatrati iii ih prcpu~ta automatskoj ohradi. Prvo valja zapamtiti dajc- signata s magi,trale B mozemo, na primer, napisati
zik koji smo izabrali kao primer uglavnom treha da ilustrujc knncepte; on nijc opti- MDR ~ H + SP
mizovan za cfikasno projektovanje. Da ga treba kuri,lili pri pmjcktovanju, upotrehili
cime se sadrzaj registra SP dodaje sadrhju registra Hi rczultat upisuje u regis tar MDR.
bismo drugaciju notaciju kako hi projektant u rukama in:<h> mabimalno tlcksibilnu
Operator + ima svojstvo komutativnosti (slo znaci da rcdosled operanada nije
alatku. Jedan od a'pl'kata gde je to vaLno jcslc izbor adrc,~t. Po~to mcmorija nije
vazan), pa se gornja naredba moze napisati
ureckna logicki, ne postoji ,slcdcea instrukcija·' kuja se podra;umeva u nim upera-
MDR ~ SP + H
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- pri cemu ce sc dobiti ista 36-bitna mikroinslrukcija (mada ako sc slrogo drzimo pra-
J1cki jczik koji potpunu opisujc svaku opcraciju. ali ne obja~njava dclaljno kako se vila. H mora da bude levi operand aritrneticko-logickc jcdinice).
sve adrcse mogu udJ-cL1ivati. Trcba pazljivo da biramo samo lcgalne operacijc. Najvaznije lcgalnc opcracijc su
Na~a nntacija u jcdnum rcdu opisuje S\'C aktivnosti koje sc odvijaju lokom jednog prikazane na slici 4-l t'J. gde SOURCE ( izvoristc) mo/,e cia bude hiln koji od rcgist.1ra
ciklusa radnog takta. Opcracijc bismo lcorijski mogli npisati i na nckom jcziku viso- MDR, PC, MBR, MBRU, SP. LV, CPP, TOS iii OPC (MBRU je ncoznaccna verzija rcgistra
kog nivoa. McdutinL upravljanje pojcdinacnim ciklusirna veorna je vazno zalo sto MBR). Svi ovi rcgistri preko magistrate B mogu biti ulazi u ALU jcdinicu. Slicno to-
ostavlj:l rnoguc'nmt da istovrcm~no obavljamu Yi~c opcracip, a neuphodnaje i rnoguc- me, DEST (odrcdiste) moze da budc bilo koji od registara MAR, MDR, PC, SP, LV, C"P,
n<lSl da analinranw c;vaki ciklus )(ako hismo r~vumcli i provcrili operacije. Ako namjc TOS. OPC iii H. jer su svi oni povezani sa izlazom ALU jedinice preko magistrale C.
cilj hr;a, elikasna impkrncntacija 1kadajc sve ostah> priblilno jcdnako, uvekjc boljc Navedeni format mozc da vas zavcde jer mnoge naizgled razumne narcdbc nisu lc-
raditi hrw i dikasno, ncgo spom i ncetlkasno). ''nda nam jc vazan svaki ciklus. U galnc. Na primer, naredba
stvarnim impkmcnLtcijama. progr~un krijc mnogc sitnc trikove i ponckad je redosled
MDR = SP + MDR
opcracija nejasan .samn da hi ,c; ustcdco jcdan i'~clini ciklus. Ustecia ciklusaje vcoma is-
plat iva: ako se inslPJLcija kuja tr:tjL' Cctiri ciklusa mol.e svesti na elva ciklusa. onda ona izgleda savrseno logicna. ali ncma nacina da se ona izvedc u okviru jcdnog ciklusa na
radi dvaput br/.t·, a l<l uhrzanjc se useti svaLi put kadjc izvrsimo. putanji podataka sa slikc 4-6. Ovo ograniccnje postoji l'.atn slo prilikom sabiranja (;to
!'o jednom m! m< >gucih pristupa, samo r<lJli,enw sign~lle kc1je treba aktivirati u sva- nije uvecanje iii umanjenje za I) jcdan ocl opcranada mora da se nalazi u registru H.
koin ciklw:u radll<lg takta. Pn.:tposlavimo cia I! odn.:denom ciklusu hocemo da uvec'amo Slicno tome. i narcdba
\ rcdnclSl rcgistra SP. lstu Uku, hoc'c'lllll da /ajl•lCI1Cil10 i operaciju citanja ida ,]edeca H ~ H- MDR
in::;trukcij~t bwk una :,op ::.: naLvi na lokaciji 122 u uprav!jackoj mcmoriji. :VIogli his-
mozda bi mogla da radi ncsto korisno. ali jc i on a t.abranjena zalu sto jc registar Hjc-
n1o napi~L1ti dino mogucc izvoristc umanjioca (vrednosti koja se odu;ima). Na a'cmblerujc cia od-
ReadRegis:er ~ SP. i'<L!_' 'lriC. WSP, "iG.id. NEXT ADDRESS~ 122 haci naredhe kojc izglcdaju ispravno, ali su u slvari nedo;voljenc.
:;Llc VIJSP zuaCi .. ur•i\r 11 rc:::i::tar SP". nv:tkva nntaciia jc pc1tpuna, ali sc te;ko raw me. Notaciju prosirujemo unosenjem vise znakovajednakosti da bismo dm:vulili vi~e­
/bng 1"ga c'emu <lJXr~ic:iJL' k; ·mbincv:tti na pr;r.xLm. intuitivan nacin cia bismo istakli struko dodeljivanje. Na primer, ciodavanje vrcdno.sti I sadrZ<~u registra SP i sme~ta­
I
;t~1 sc stvarno dc~;a\l~t:
nje rezullata ponovo u registar SP, kao i upisivanje u rcgistar MDR mn:l.c se pos;ici
komanciom
SP ~ SP + 1. rd
SP ~ MDR ~ SP + 1
Nazu·,in~<) na:; !ll!kt<la>~LJbkr 1:\licr,, .~\,,dnhh Language! visokog nivoa .. MAL"
( na l"ra;h.:~t):_\)llJ .J-.n1~~L.tn··. ;to ,_~e[c i p,)~L~ti aku budctc 111orali da na njen1u piSete Citanje i upisivanje podataka u memoriju u obliku -i-bajtnih reei, u mikroinstruk-
!ml<lgL> J.;o,b i. MAL <H 1r;v<<\ a br~:ktcri<Ikc mikm~trhitekture. U toku svakug ciklusa ciji cemo oznacavati sa rd i wr. Preu;rirnanjc bajta preko jcdnobaJlnog prikljucka
1noi •.: ~l; Ut"'i...,i\Jtlll biln k11ji h.-·gist~ir, ali ~cpu prdviiu upi;-,uje ':-!~uno uj~dan. Sarnuje- oznacavacemo sa fetch. Dodcljivanje i memorijska opcracija mogu c;e ohavljalt u
dan 1\:~:;i;-,t~1r :nt;·i·.: di.l prn·d,..:Ji :..,ddf'.~~tj naB :-.iranu _-\LU jGdinic~. Na strani A. nloZe- istorn ciklusu. To oznacavamo tako stu opcracije pisemu u istom rcdu.
mo da bir~uno: +I. r;, -I 1 r,·gi,tcu· H. ~a lctJ nrtcin. kao i u Javi. pomucu jednostavnc
"":"

262 Poglavlje 4: Nivo mikroarhitekture 4.3 Primer implcmentacije 263

Na pocetku treeeg ciklusa (mikroinstrukcija iadd3) MDR sadrzi sabirak preuzet iz pomeraj iz registra MBR mora se clodati sadrzaju registra LV. Posto se registrima MBR i
memorije. On se u ovom ciklusu dodaje sadr2:aju registra H i rezultat se ponovo sme- LV mozc pristupiti samo preko magistrale B. saclrzaj rcgistra LV najpre sc kopira u H
sta u MDR, kao i u TOS. lsto tako, pocinje i operacija upisivanja da bi se nova prva rec (u mikroinstrukciji iload1 ), a zatim se dodaje sadrzaj rcgistra MBR. Rezultat sabiranja se
na steku smestila u memoriju. U ovom ciklusu naredba goto dodeljuje adrcsu oznake kopira u registar MAR i zapocinje se operacija citanja (u mikroinstrukciji iload2).
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-
(a) (b)
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
Slika 4-19. (a) lnstrukcija !LOAD sjednobajtnim indeksom. (b) lnstrukcija WIDE !LOAD
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
sdvohajtnim indcksom.
ISUB, osim sto sc na dve poslcdnje rcci sa steka primenjuje operacija AND bit po bit,
Registar MBR se pri indeksiranju malo clrugacije koristi nego u instrukciji BIPUSH,
umesto da se sabiraju iii oduzimaju. Slicno se ddava i sa instrukcijorn lOR.
gcle mu je prosirivan znak. Porncraj jc u slucaju indcksa uvek pozitivan, pa se rasto-
Ako IJVC opkod odgovara instrukcijama DUP. POP iii SWAP, stck mora da se po-
janjc u bajtovima mora turnaciti kao neoznacen ceo broj, dok sc u instrukciji BIPUSH
desi. lnstrukcija DUP duplira poslednju rec na steku. Posto se vrednost te reci vee
ono tumaCi kao oznacen 8-hitni ceo hroj. Veza registra MBR s magistralom B brizljivo
nalazi u rcgistru TOS, operacija se svodi na uvecanje registra SP tako da ukazuje na
JC projcktovana tako da omogueuje ohe operacije. U slucaju instrukcije BIPUSH (ozna-
novu lokaciju, i kopiranjc sadrzaja registra TOS u nju. Instrukcija POP is to jc tako jed-
cen 8-bitni ceo hroj), ispravnoje prosiriti wak (tj. kopirati krajnji levi bitjcdnobajtnog
nostavna- ona umanjuje saclrzaj registra SP da bi prva rec na steku bila odbacena.
rcgistra MBR u 24 najznacajnija hita magistrate B). U slucaju instrukcije ILOAD (ne-
Medutim, da bi prva rec na steku uvck bila u registru TOS, neophodno je.da se nova
oznacen 8-bitni ceo broj), ispravno jc da se oni ispune nulama. Ovc dve opcracijc po-
prva rec ucita iz mcmorijc i upise u TOS. Na kraju, instrukcija SWAP obezbeduje raz-
krecu se zascbnim signalima (poglcdajte sliku 4-6). One su u mikrokodu oznacenc s,l
menu vrcdnosti izmcctu dve mcmorijske lokacije: dve prve reei na steku. Operacija je
MBR (s prosirenim znakom, kao u instrukciji BIPUSH 3) iii sa MBRU (neoznacen broJ,
jednostavna jcr regis tar TOS vee sadrzi jednu od tih vrednosti, pa se on a ne mora uci-
kao u mikroinstrukciji iload2).
tavati iz mcmorije. Ovu instrukciju detaljnije eemo obraditi malo kasnije.
Dok ceka Ja operand stigne iz memorije (u mikroinstrukciji iload3). rcgistar SP
lnstrukcija BIPUSH malo je komplikovanija posto iza opkoda sledi jedan bajt, kao
uvecava svoju vrcdnost da bi ukazivao na nov vrh stcka koji trcha da prihvati rezultat.
sto je prikazano na slici 4-1 X. Njega treba tumaciti kao oznacen ceo broj. Taj bajt, koji
Ta vrednost ~c kopira i u registar MAR kao priprcma za upisivanje operanda na vrh ste-
je tokom petljc Main1 vee sme'iten u registar MBR, mora imati znak prosiren na 32 bita
ka. Yn:dnost registra PC ponovo semora uvceati da bi se preuzeo skdeei opkod (u mi-
i treba ga staviti na stck. Daklc. instrukcija BIPUSH mora da prosiri znak bajta u regi-
kroinstrukciji iload4). Na kraju, sadrzaj registra MDR kopira se u registar TOS (u
stru MBR na 32 hita i cia ga kopira u registar MDR. Na kraju, SP se uveeava i kopira u
mikroinstrukciji iload5).
registar MAR, pace operand biti upisan na vrh steka. lstovremeno. operand mora da se
ISTORE jc opcracija suprotna opcraciji ILOAD (tj. rec sc uklanja s vrha steka i smc-
kopira i u registar TOS. Obratite paznju i nato da PC mora hiti uveean pre vraeanja u
;ta na lokaciju odredenu zbirom sadrzaja registra LV i inJeksa navedcnog u instruk-
glavni prograrnski tok registra. tako Ja petlji Main1 bude na raspolaganju novi opkod.
ciji). Ona koristi format kojije na slici 4-19(a) prikazan za instrukcijuiLOAD, osim Sl•l
joj opkod nije Ox I 5, vee Ox36. Ova instrukcija jc malo drugacija nego stu bi se oce-
I BIPUSH
(OxlO)
I BAJT I kivalo zato ~to jc rec na vrhu stcka vee poznata (nalazi se u registru TOS), tako da s~
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
Slika -t-18. Format instrukcije BIPUSH.
(cak i paralelno. ukoliko postoji takva moguenostl.
Instrukcije ILOAD i !STORE ogranicene su utoliko sto mogu da k(lriste samo prvih
Razmotrite zatim instrukciju ILOAD. U instrukciji ILOAD iza opkoda takode sledi
256 lukalnih promenljivih. Iako je za vecinu programa to i vi~e nego dovoljno, ipak
bajt, kao na slici 4-1 t)(a), ali on predstavlja (neoznaccn) indeks za identiflkovanje one
bi bilo po7.cljno instrukcije da mogu pric;tupati promenljivama bez obzira nato gde se
reci u prostoru lokalnih promcnljivih koju treba staviti na stck. Posto je na raspolaganju
nalaze u prostoru lokalnih promenljivih. Da hi se to postiglo. u skupu !JVM instruk-
jedan bajt. postoji samo 2 8 = 256 razlicitih reci (tj. prvih 256 reci ll prostoru lokalnih
cija koristi se isti mchani.-'am kao i u JVM skupu: specijalni opkod WIDE, pon1at kao
promenljivih). Za instrukciju ILOAD potrebne su operacijc citanja (za dobijanje reci) i
prefiksni hajt (engl. pr~jix byte). iza koga sledi opkod za instrukcijc ILOAD iii
upisivanja lza stavljanjc reCi na vrh steka). Medutim, da bi se dobila adresa za citanje,

i
i l
Poglavlj~ 4: Ni"o mikroarhitckturc 4.3 Primer implementacij~ 257
256

Obicno ce sc prethodnc dve naredbc kmnbinovati u istom rcdu, na primer, 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
z = TOS; if (Z) goto L 1; else goto L2
posto se uvck moze procitati iz memorije. ali ako postoji u rcgistru, stecli se jcr se relte
Efekat ovakvc naredbc je slcdeci: MAL gcnerise mikroinstrukciju koja salje vreu- obraea memoriji. Za nekoliko instrukcija. odrzavanje registra TOS znaci vi.\'e memo-
nost rcgistra TOS u ALU jcdinicu (ali je nigde ne smdta) tako da ona postavlja bit Z. rijskih upcracija. Na primer, instrukcija POP uzima rec s vrha steka i zato mora da
Ubrzo posto Z prihvati uslovni bit ALU jedinicc. na njega sc rrimenjuje opcracija OR preuzme novu rei' iz memorije i stavi je u TOS.
s najznacajnijim bitom registra MPC i tamo smc~ta, zbog cega se adresa sledcee mi- Rcgistar OPC je privrcmcn (tj. sluzi za privrcmcno cuvanje podataka). On nema
kroinstrukcije mora preuzeti iii sa adrcse L2 iii sa adrcsc U (kop mora biti za tacno unapred odrcdcnu funkciju. Koristi se. na primer. za cuvanje aclrcse opkmla (OPCo-
2.~6 veea od L2). Rcgistar MPC ee sc stabilizovati i biee sprcman za pn.:uzimanjc slc- dcJ instrukcije za grananjc dok se PC uvccava cia bi sc pristupi lo paramctrima. On sc
dece mikroinstrukcijc. koristi i kao privrcmcni registar u JJVM instrukcijama za uslovno grananje.
Na kraju narn trcba i notacija za korisecnje bila JMPC. Upotrebieemo rnikruin- Kao svi intcrprcteri. i mikroprogram sa slikc ..f-17 ima glavnu programsku pctlju
strukciju koja preuzima, dckodira i izvrsava instrukcije interprctiranog prograrna (u ovom
goto (MBR OR vrednost) 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
Ovakvom sintaksom nala/.cmo mikroascmblcru da 1-rcdno.\/ upotn..:bi za puljc
koja sadrzi odredcni opkud ida jc taj opkocl vee prosledcn u rcgistar MBR. Imajtc na
NEXT_ADDRESS ida bit JMPC polbi tako slo ec na MBR i NEXT _ADDRESS primcniti
urnu da na toj lokaciji moramo obczbecliti da registar PC ukawje na skdcei opkod
opcraciju OR i re~.ultal sntcstiti u rcgistar MPC. Ako je vrnlnost = 0. ;to jc uohicajcno.
koji trcba inlerprctirati i Ja sc bajl opkuda vee nalazi u rcgistru MBR.
dovoljno jc napisati sanw
Ovaj pocetni niz inslrukcija izvrsava se na pocctku svakc instrukcijc. pa je bitno cia
goto (MBR) bulle slo kraei. Vrlo brilljivim projcktovanjem hard vera i sort vera procesora Mic-1
lmajtc u vidu da su satll<l t: najmanjc 1.naee~jnih bituva rcgistra MBR hardvcrsk.i po- postigli smo da sc za obavljanje jednog ciklusa glavne pellje potrosi samo jcdna mi-
vczani s rcgistrom MPC qmgkdajtc sliku ..f-6l. p~1 unk ncma problemas prosiriva- kroin-;trukcija. Kada sc racunar pokrenc, svaki put kada se i1.vrsi ova mikroinstrukci-
!l.JCill waka (lj. MBR ili MBRU ). Obratitc pa/nju ina to d~l.JC vn.:dno.sl rcgistra MBR koja ja. IJVM opkod instrukcijc koju trcba izvrsiti vee se nalazi u registru MBR.
jc raspuloz.iva na kraju ciklu:-.a. una kuja sc u njc·mtl koristi. Prcu7imanjc kujc sc za- Mikroinstrukcija u stvari skace na rnikrokod za iz.vrsavanje tekuee IJViVI instrukcijc
pncnc u omj mikroin:-.trukciji mo/.c da uti-:'c tu i.chm narcJnc mikwin:-.trukcijc~. 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
4.3.2 lmplementiranje skupa 1.1 VM instrukcija pomocu
imenujc svog sledbenika. umcsto da sc programski tok prepusti uzastopnom izvrsa-
procesora :'vlic-1
vanju mikroinstrukcija. Sve adresc upravljackc mcmorije kojc c.;e odnosc na upkod
Konacno smn _-,tigli dll t~1ckc kada mui.t:!lll• cb sastavimo svc deliec·. ;'\;a slici ..f-17 moraju biti rczcrvisane za prvu rei' odgovarajuecg inteqJrctcra instrukcija. Tako na
prikaDlll jc mikropmgr;un kuji sc i;vr~ava na proc,.:soru IVIic-1 i tntc'rprcura skup slici ..f-11 vidimo da kCJd koji interprctira instrukciju POP pocinje od adrcse Ox57.
J.iVi'.l ithtrukcija. l!1 jc t.ac'uduprc'.: krat~tk pwgram -ukupno ima samo 112 mikroin- a onaj kuji interpretira in ...,trukciju DUP od adrcsc Ox59. (Svctska je mistcrija zasto
:-.trukcija. Svak~t in:-.trukc·ija jc opi,ana u tri ckla: pn a je njcna -;iml)()licka oLnaka, za- MAL postavlja instrukciju POP na adrcsu Ox57 - vcruvatno negdc postoji dallltcka
t!m skdi mikruk(\d i na kraJU jc napo111t'llcl. Ohraritc pal:nju na lu da uLastopnc k,Jja mu nalaze da to uradi.)
mikruinstrukciJC nc Jau;itn;tju ob.tvc'/IW uzastupnc adrcsc u upravljac'kl'J mcmoriji. Nal.alust. kod za naredbu POP dugacak je tri mikroinstrukcije, tako da ec njegove
~ll> :-.111U VCC nagJasiiJ. tri uzastopnc reei porcmetiti naredbu DUP. Po~to su sve adrese opkoda u upravljackoj
Sada bi izbur tmcna 1.a vccinu rcgistara na slici ..f-ltrcbalo da buclej~t\!Hji: CPP. LV memoriji reLervisanc. sve rnikroinstrukciJC i1 jcJnog niza. osim prvc. moraju sc smc-
i SP k,,r!:-.~e ,.; La l"u\anjc.: pnk;lziv;tca na pndruC"jc k•>nstanti (C,,n:-,tl\nt Pu'll Pointer). stit i u slobudan pros tor izmcdu re1.crvisanih adresa. Zhog toga ima mnogo skakanja
nuld;~linc ~'n;nh.:n!ji\c il.toc;d Vanahks) i n;l vrh ,k~<.a (Slack Pointer), dPk PC !Pro- po upravljackoj memoriji. pa bi rnikrogrananje u korne sc svaki cas skai':c s JCdne in-
gram(_", >untcr) -;adr/i adrc::-,il ,lcdcecg bitjt;\ kllji trebl\ preu?.cti i? ;Ji?a instrukcija. MBR strukciju, na drugc bilo vcnma ncchkasno.
1\knwr:v Bull..:r R~gi,;tcr)jcdm,b,tjtni je registarkoji pnhvala b~t.JlllVC iz lli/a instruk- Da bistc razumcli kako radi interpreter, pretpostavimo, na primer. da registar MBR
eij<~ llllllKcJ kako <HlC d,,]a;c' i; memorijc na intt'rprctiranje. TOS i OPC su dmlatni rc- sadrzi vrednost Ux60, tj. opkod za instrukciju IADD (slika 4-11 ). U jednom ciklusu
gistri. cijc Ccill() kuri.~c'enjcO 'lj)lS.lli ll nasLtvku. petlje. za sta se trosi jedna mikroin,trukcija. obavljaju se tri Pperacije:
l i odrc:lknt m i lllt'J"\ ~dim.t -;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
~>·­

i''

266 Poglavlje 4: Nivo mikroarhitckture 4.3 Primer implcmcntacije


267

Da bi ovo bilo jasnije, pogkdajte na slici 4-22(a) situaciju na pocetku petlje Maint. nisu muguCi. Ovo svojstvu se moze smatrati i manom i prednoseu skupa IJVM in-
Opkod je vee u registru MBR, ali vrednost registra PC jos nije uvecana. Na slici strukcija (a takocte i skupa JVM instrukcija). Ncki kritikuju JVM stu ogranicava nji-
4-22(b) vidimo situaciju na pocetku mikroinstrukcije gotot. Sada jc sadrzaj registra hov stil programiranja, dok drugi misle da su programi bolji kada programeri stalno
PC uveean, ali prvi bajt rastojanja jos nije smdtcn u registar MBR. Jednu mikroin- strepe od ratalnc poruke prevodioca
strukciju kasnije imarno situaciju kao na slici 4-22(c), u kojoj je stara vrednost regi-
Program is too big and hairy. You must rewrite it. Compilation aborted.
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 (Program je prevelik i previse razuden. Morale ga ponovo napisati. Prcvuctenjc je
GOTO relativno u odnosu na nju, a nc na tekucu vrednost registra PC. Bas zbog toga prekinuto.)
je potreban registar OPC. 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-
Memorija ~ nog na Javi.
Jed an bajt-
n+3
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-
n + 2 BAJT RASTOJANJA 2 BAJT RASTOJANJA 2 BAJT RASTOJANJA 2 BAJT RASTOJANJA 2 BAJT RASTOJANJA 2
liko je ona manja od nulc. odnosno ako je jednaka nuli. lnstrukcija IF_ICMPEQ uzima
ll + 1 BAJT RASTOJANJA 1 BAJT RASTOJANJA 1 BAJT RASTOJANJA 1 BAJT RAS TOJANJA 1 BAJT RASTOJANJA 1
dve reci s vrha steka i usrncrava prograrnu novom pravcu samo ako su one medusobnu
GOTO (OxA7) GOTO (OxA7) GOTO (OxA7) GOTO (OxA7) GOTO (OxA7)
jednake. U sva tri slucaja potrebno je da se procita nova prva rec na steku i da se smesti
u regis tar TOS.
Registri
Mehanizam rada ove tri instrukcije je slican: u registre se prvo smesti jedan ili vise
.----11-----. ntl 11 nt2 11 n+2 1
operanada, zatim se nova vrcdnost vrha steka ucita u registar TOS, a onda se provc-
OPC n II n II n I rava uslov i eventualno skace na novu oznaku. Razmotrimo prvo instrukciju IFLT. Rec
OxA7 OxA7
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
H IRASTTOJANJ E1« sl ifltt. Mikroinstrukcija iflt2 privremeno cuva rec koja se proverava u registru OPC, tako
(a) (b) (c) (d) (e) 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,
Slika -t-22. Situacija na pocetku razlicitih mikroinstrukcija. (a) Ma1n1. (h) goto1. (c) goto2.
(d) goto3. (cl goto4. 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.
Mikroimtrukcija kod O!nakc goto2 zapocinje prcuzimanje drugog hajta rastojanja. Ova mikroinstrukcija sadrzi i grananje, u kome se bira T ako je provera protekla
sto sc vidi na slici 4-22(d l na pocctku mikroinstrukcije goto3. Postu jc prvi bajt rasto- uspdno iii F ako nije.
janja pumeren ulevo za 8 hituva i kupiran u rcgistar H. dolazi se do oznake goto4 na Ako je pro vera uspesna. ostatak operacije je sustinski isti kao i pocetak instrukcije
slici 4-22(c). Sadajc prvi bajt rastojanja pomeren ulevo u registar H. drugi bajt rasto- GOTO i niz se nastavlja iz sredine niza GOTO (od mikroinstrukcije goto2). Ukolik.o pro-
janja je u registru MBR a osnova u registru OPC. Kada konstruisemo potpuno 16-bitnu vera nc uspe, neophodanje kratak niz (F, F2 i F3) da bi se preskocilo preko ostatka in-
rastojanje u registru Hi dodamu ga na osnovu. dobijamo novu adrcsu koju treha sme- strukcijc (rastojanje) pre povratka u Maint i nastavilo raditi sa sledec'om instrukcijom.
stiti u regi,tar PC u mikroinstrukciji goto5. Obratite paznju na tu da u mikroinstrukciji Kiid u mikroinstrukcijama ifeq2 i ifeq3 slcdi istu logiku, samo se umcsto hita N ku-
goto4 ne koristimo regis tar MBR. vee MBRU. jcr nc zelimo da se prosiri znak drugog risti hit Z. U oba slucaja, MAL asembler treba da prepozna da su adrese T i F specijalnc
bajta. Scsnaestobitno rastojanjc se konstruisc tako stu se na njegovc dve polovinc pri- i mora ubezbediti da se one smeste na adrese upravljacke memorije koje se razlikuju
meni opcracip OR. Na kraju trcba cia preuzmemo slcdeci opkud pre nego sto sc vra- samo po lcvom krajnjcm bitu.
timo na Maint zato stu ce mikrokod tada ocekivati da u registru MBR pronadc slcdeci Logika instrukcije IF _ICMPEQ ovlasno je slicna lugici instrukcije IFEQ, osim sto je
opk.od. Puslednji ciklus. goto6, ncophudan je zato sto se podaci iz mcmorije moraju potrcbnu ucitati i drugi operand. Drugi operand se smdta u registar H u ukviru mi-
preuzcti na vrcme da bi se pojavili u regi,tru MBR tokom petljc Maint. kroinstrukcije if_icmpeq3. gde zapocinje citanje nove reci s vrha stcka. Tekuc'a rei':
Rastojanja koja se koristc u LJVM instrukcijama goto nznaccne su 16-hitnc vred- s vrha steka ponovo se snima u regis tar OPC, a nova smesta u regis tar TOS. Na kraju
nosti izmectu -3276~ i +32767. To znaci da 'kokovi na uznakc izvan ovog intervala se provera u okviru mikroinstrukcije if__ icmpeq6 obavlja slicno kau provera u mikro-
instrukciJi ifeq4.
I>
Poglavljc 4: Nivo mikroarhitckture 4.3 Primer implementacije 261
260

Oznaka Operacije Napomena Oznaka Operacije Napomena

MAR ~ SP ~ SP- 1; rd Procitaj sledecu rec na steku ireturn1 MAR ~ SP ~ LV; rd Podesi SP, MAR za dobijanje veznog
iflt1
iflt2 OPC ~ TOS Snimi privremeno TOS u OPC ireturn2 pokazivaca
TOS ~ MDR Smesti novi vrh steka u TOS ireturn3 LV ~ MAR ~ MDR: rd Sacekaj citanJ8
iflt3
iflt4 N ~ OPC; if (N) goto T; Skoci ako je bit N postavljen Podesi LV na vezni pokazivac; preuzrni staru
else gotoF ireturn4 MAR~ LV +1 vrednost PC
ireturn5 PC~ MDR; rd; fetch Podesi MAR da procita stari LV
ifeq1 MAR~ SP ~ SP- 1; rd Procitaj pretposlednju rec na steku
ireturn6 MAR~ SP Vrati PC u prethodno stanje; preuzrni sledeCi
ifeq2 OPC ~ TOS Snimi pnvremeno TOS u OPC
ireturn7 LV= MDR opkod
ifeq3 TOS ~ MDR Stavi nov vrh steka u TOS
ireturn8 MDR ~ TOS; wr; goto Main1 Podesi MAR da upise TOS
ifeq4 Z ~ OPC; if (Z) goto T; Skoci aka je bit Z postavljen
Vrati LV u prethodno stan)e
else gotoF Snimi vracenu vrednost na prvobitnom vrhu
if _icmpeq1 MAR ~ SP ~ SP- 1, rd Procitaj pretposlednju rec na steku steka
if_icmpeq2 MAR ~ SP ~ SP- 1 Podesi MAR da ucita nov vrh steka
H ~ MDR; rd Kopiraj drugu rec sa steka u H Slika 4-17. Mikr:lprograrll za procesor Mic-1. ( llllstm·ilk)
if_icmpeq3
if icmpeq4 OPC ~ TOS Snim1 privremeno TOS u OPC
if_ icmpeq5 TOS ~ MDR Stavi nov vrh steka u TOS Ako se Jcsi da je hajt u registru MBR nula, sto je opkod za instrukciju NOP. slcdccu
if icmpeq6 Z ~ OPC- H; if (Zl goto T; Aka su poslednje dve reci jednake. skoc1 na T,
else goto F inace skoti na F 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
T OPC ~ PC - 1. go to goto2 Is to kao go to 1 ; za adresu odredista
---------~-~- ---~- ·------·-~----
s novim opkoclom koji sc u mcduvremenu smcsta u rcgistar MBR.
F PC~ PC • 1 Preskoci prvi baJt pomeraja
F2 PC ~ PC + 1, fetch PC sada ukazuje na nov opkod Jos jcJnom naglasavamo da sc mikroinstrukcije sa slikc -+-17 nc nalal-e na u/.a-
F3 goto Main1 Cekaj preuzirnanje opkoda stopnim mernorijskim lukacijama i da se o;naka Main1 ne oJnosi na adrcsu 0 upra-
invokevirtual1 PC ~ PC + 1; fetch MBR ~ prvi indeksni bajt; uvecaj PC, preuzrni vljackc memorijc lpo\to na adresi 0 mora da buclc im,trukcip nop1 ). J\1ikroasemblc:r
drugi bajt Lreha da smesti svaku rnikroinsrrukciju na pogudnu adresu i da ih svc povde kratkim
1nvokevirtua12 H ~ MBRU «8 Pomeri i snimi prvi bajt u H
invokewtual3 H ~ MBRU OR H H ~ porneraj pokazivaca rnetode u odnosu na nizuvima slu7.eci sc poljcm NEXT_ADDRESS. Svaki n!Z pocinjc na adn.:si koja oJgo-
CPP vara brojcarwj vrcdnosti JJV.'vl opkoda koji se intcrpretira \ll[)r. POP pul:inje na aJrest
invokevirtual4 MAR~ CPP + H; rd Uzmi pokazivac na metodu iz CPP podrucja
OPC ~PC +1 Snimi privrerneno PC za instrukcrju Return 0"<57). ali ostatak niw rnoze da hudc bilo gdc· u upr:n ljaC·kL~ mcmoriji. a nc na uza-
invokevirtual5
u OPC stupnim adresama.
invokevirtual6 PC~ MDR; fetch PC ukazuje na novu rnetodu; preuzrni bra) R.tzmotrimo sad~t IJVM instrukciju IADD. Mi!-;roinstrukcija na koju se skacc iL
pararnetara
1nvokevirtual? PC ~
PC + 1, fetch Preuzrni drugi bajt broja pararnetara glavne petljc nosi oznaku iadd1. Ona rapocinjc pusao specilican l-a inslrukciju IADD
invokevirtual8 H MBRU «8
~ Pomeri i snirni prvi bajt u H
H ~ MBRU OR H H ~ broj p3rarnetara I. TOS VL'C posto_1i. ali se pretposlcdnja rec n~t std.:u mora preuleti i; mcmorijc.
invokevirtual9
invokevirtual1 0 PC ~ PC + 1; fetch Preuzrni prvi ba)t broja lokalnih prornenljivih ' Vrcdnosl rcgi;,tra TOS mor:J sc dudati rretpo;.]ccln_ioj reci prcuzetoj iL
invokevirtual11 TOS ~ SP- H TOS ~ adresa OBJREF- 1
TOS ~ MAR ~ TOS + 1 TOS ~ adresa OBJREF (nov LV) mcrnurijc.
invokevirtual12
invokevirtual13 PC ~ PC + 1: fetch Preuzrni drugi ba)t broJa lokalnih prornenljivih :\. Re;ultal koji s::: ;,tavlja na 'lek !lhlra \C pPnO\ o ;,mcstiti u mernuriju. kau i u
lnvokevirtual14 H ~ MBRU «8 Pomeri i snirni prvi bajt u H
invokevirtual15 H ~ MBRU OR H H ~bra) lokalnrh prornenljivih reg:i"'t~tr TOS.
lflVOkevirtual16 MDR ~ SP + H + 1; wr Preko OBJREF upisi vezni pokazivac
Postavi SP, MAR na lokaciju za cuvanje stare Da hi .sc ]lrCt!!:Ctl upcrand lLrnemorijc. ncuphtldno je da se p(1k~uivac sieka umanji
invokevirtual17 MAR~ SP ~ MDR; vrednosti PC L.ajedinicu ida se njcguva vrednoot upi~c u MAR. Obratite paznju na tu daje to adrcs,t
Snirni PC izn3d lokalnih promenljivih
invokevirtual18 MDR ~ OPC; wr na kuju ce sc mal<' ka:;nijc upisivati. Stavisc, posw ceo\~~ loLtcija hili nnv vrh st..:b,
SP ukazuje na lokaciju za cuvanje stare
invokevirtual19 MAR ~ SP ~ SP + 1 vrednosti LV i SP treha da dtlbije ovu vrcdnusr. Prem,t tome. jedna upcracija !reba da Pdrcdi novu
invokevirtual20 MDR ~LV; wr Snimi stari LV iznad snirnljenog PC \Tedrhlst rcgisLtrJ SP i MAR, da umanji vrednost registra SP i Ja se upi;e u oha n:gistr:•.
invokevirtual21 PC ~ PC + 1, fetch Preuzmi prvi opkod nove metode.
Podesi LV da ukazuje na LV okvir SVL' l)\l) \C uhavlj:t u prvorn ciklusu, iadd1. a /Cl[l()L'illjc· sci upcr:tci_ja citanj:L Ositn
invokevirtual22 LV~ TOS; goto Main1
tog:1. MPC dnhija Hcdnost iL polj.t NEXT_ ADDRESS mikwinstrukujc i:,dd I. sto j:
Slika .t-17. \'likruprngram za procesor Mic-1. (IIUSI!II'!lk)
adn:sa illlk:-oinslruL:;jc iado2. gdc god da sc una naLvi. Zaiim sc· i; upr:t\ lj~tcL· mc-
rnmiJC ucitava mil--ruimlrukc·ija iadd2. T.lklllll drugog ciklu"t. dok .'e c:.:ka na uciia-

·i'I;-\'
v:mjc upcramla i; mclll\>rijc. kopira '-:L' gornja rcc _,rcka iz r~·gi.,tr~' TOS u H. gck c'~ hiti
c,c cil~lllje Z~tvr\i.
lla !'a'ipula:,!ailjll /a _,a[>iranje i-..aJa

l
.
:
'

.:._
270 Poglavlje 4: Nivo mikroarhitckturc 4.4 Projektovanje nivoa mikroarhitekture 271

Jedno od najvise proucavanih kola u istoriji jeste binarni sabirac (engl. hinarv ad- cemu analizirati nacine za smanjenje broja mikroinstrukcija po jednoj ISA instmkciji
der). Za njega postoji na hiljade projekata, a najbrzi sabiraci su mnogo slozeniji od (tj. za skracenje putanje izvrsavanja). Posle toga cemo razmotriti i drugc pristupc.
najsporijih. Projektant sistema treba da odluci da lice mu sc zbog vece brzine isplatiti
ulozeni novae. Preklapanje petlje interpretera s mikrokodom
Sabiraci nisu jedine komponentc gde postoji velika mogucnost izbora. Skoro sva- U procesoru Mic-1 glavna petlja sc sastoji od jedne mikroinstrukcije koja semora
ka komponenta sistema mo7.e se konstruisati da radi brze iii sporije (uz razliku u izvrsiti na pocetku svake IJVM instrukcije. U nekim slucajcvima ona se moze preklo-
ceni). Izazov na koji projektant treba da odgovori jeste identilikovanje komponenata piti s prcthodnom instrukcijom. U stvari, to se vee delimicno i radi. Skrecemo vam
sistema cijc bi ubrzavanje najvise uticalo na perfonnanse sistema. Zanimljivo je da se paznju nato da se tokom izvrsavanja petlje Main1 u registru MBR vee nalazi opkod koji
mnoge komponcnte mogu zameniti odgovarajucim brzim verzijama, a da se to ne treba interprctirati. Opkod je tamo jer je preuzet u prethodnoj glavnoj petlji (ako pret-
odrazi na brzinu celog sistema. U narcdnim odeljcima navodiccmo ncke problcme pri hodna instrukcija nije imala operanada) iii tokom izvrsavanja prethoJne instrukcije.
projektovanju i moguca kompromisna rescnja. Ovaj koncept prcklapanja pocetka instrukcijc moze se i prosiriti tako da sc glavna
Jedan od glavnih cinilaca koji odrcduje maksimalnu brzinu radnog taktajeste ko- petlja u nekim slucajevima moze svcsti prakticno na nulu. To se moze uraditi na sle-
licina posla koju treba obaviti tokom svakog ciklusa. Jasno jc: sto valja obaviti vise deci nacin. Razmotrite svaki niz mikroinstrukcija koje se zavrsavaju skokom na oz-
posla, to ciklus mora biti duzi. Nije to bas tako pros to, naravno, jer hardver jako dobro naku Main1. U svakoj od njih, mikwinstrukcija za glavnu pctlju moze se ubaciti na
radi vise stvari istovrcmcno. pa duzina ciklu~a zavisi od ni1.a operacija koje se u toku kraj ni.~:a (umesto da bude pocetak sledeceg niza), pri cemu se sada skok ponavlja na
jednng ciklusa moraju obaviti serijski. vise mesta (ali uvek sa istim skupom zahteva). U nekim slucajevima rnikroinstrukcija
Jedan od aspckata na koji se moz.e uticati jeste kolicina dckodiranja koje semora za Main1 moze se preklopiti s prethodnim mikroinstrukcijama ukoliko one nisu pot-
obaviti. Serite se, na primer, slike 4-6, gdc smo vidcli cia se u ALU jedinicu s magi- puno iskoriscene.
strale 8 moze ucitati sadrzaj bilu kog od devet regi~tara. ali jc ipak potrebno samo 4 Na slici 4-23 prikazan je dinamicki niz mikroinstrukcija za instrukciju POP. Glav-
bita u reci mikroinstrukcije da se 1.adajedan od registara. Na/.alost, takve ustede ima- na petlp se pojavljuje pre i posle svake mikroinstrukcije; na slici je prikazano samo
ju svoju ccnu. Kolo za dekodiranje unosi kasnjenje u kriticni deo putanje. To znaci da ono sto sc dogada posle instrukcije POP. Obratite paznju nato da izvrsavanje ove in-
ce bilo koji registar koji treba da postavi svoje podatke na rnagistalu B. komanJu za strukcije traje cetiri ciklusa: tri za specilicne mikroinstrukcije instrukcije POP i jedan
to dobiti s malim zakasnjenjcm i dace isporuka 1.ato zakasniti. To kasnjenje sc pro- za glavnu pctlju.
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- Oznaka Operacije Napomena
stemskog ciklusa, ne mo7.c sc postici maksimalan radni takt, pa racunar radi sporije. pop1 MAR~SP~SP-1; rd Ucitava pretposlednju rec sa steka
Na taj nacin se uspostavlja kompromis izmcL1u brz.ine i cene. Ukoliko se upravlpcka
pop2 Ceka da se nov sadrzaj registra TOS ucita
memmija srnanji ;a 5 bita po reci. usporava se radni takt. Kada razmatra resenja pro- iz memorije
jektant mora da unne u obzir namenu sistema. Za implcmentaciju koja treba da ost- goto Main1 Kopira novu rec u registar TOS
pop3 TOS~MDR;
vari visokc per!'ormanse, koriscenje dekodera vcrovatno nije dobro rdcnje. ali moze
Ma1n1 PC~PC+ 1; fetch; goto (MBR) Registar MBR sadrzi opkod; preuzima sledeci bajt;
da bude dobro za jertinu varijantu. salje na izvrsavanje
I Stika 4-23. lzvorni niz mikroprograrna za i1.vrsavanje instrukcijc POP.
I
4.4.2 Skraccnje putanje izvrsavanja
Procesor Mic-1 jc umereno jednostavan i umereno brz. mada priznajcmo da je ta Na slici 4-24 nizje svedcn na tri instrukcijc tako sto Sll preklopljene instrukcije za
dva zahteva tdko pomiriti. Ukratko, jeclnostavni racunari nisu brzi, a brzi racunari glavnu pctlju, i primenjenjc sistcmski ciklus u kome se ALLJ jedinica ne koristi u mi-
nisu jeJnostavni. Za procesor Mic-1 upotrebili smo minimalnu kolicinu bard vera: I 0 ;;..,_
kroinstrukciji pop2 za snimanjc ciklusa i ponovo u instrukciji Main1. Obratite paznju
registara za jedno~tavnc ALU Jedinice sa slike 3-19, pomcrac, dekodcr, upravljacku tF? nato da se s kraja ovog niza skace direktno na specilicni kCld sleclece instrukcije, pa
'iP
je za nju ukupno potrebno samo tri ciklusa. Ovim malim trikom, vreme iz.vrsavanja
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- r slcdece mikroinstrukcije skracuje se za jed an ciklus (tako se npr. naredna instrukcija
IADD izvrsava za tri, umesto za cetiri ciklusa). To je ekvivalentno ubrzavanju radnog

.1, .
~
koda i malo bard vera. vremc jc da pogledamo i druge, brze implementacijc. U nastavku -?';~
takta sa 250 MHz (4 nanosekunclne mikroinstrukcije) na 333 MHz (3 nanosekundne
~' mikroinstrukcije). bez razlikc u ccni.

.
Poglavlje 4: Nivo mikroat·hitekture -'.3 Primer implemcntacijc 265
264

ISTORE. Kada se naide na ovaj niz. menjaju se detinicije instrukcija ILOAD i ISTORE, Ulaneavanje i naknadno sabiranje moraju se obaviti u fazama, najprc kopiranjcm
pa iza njihovog opkoda vise ne sledi R·bitni. vee 16-bitni indeks, bona slici 4-19(b). prvog indcksnog bajta u registar H ciji je sadrzaj pomeren ulcvu za 8 bitova. Pusto je
Pretiks WIDE se dekodira na uobicajen nacin. tako da se skace na oznaku wide1, gde indeks neoznacen ceo broj, registar MBR sc prosirujc nulama pornocu MBRU. Sada se
se obraduje opkod WIDE. lako opkod za sirenje vee postoji u registru MBR, mikwin- dodaje drugi bajt indeksa (opcracija sabiranjaje idcnticna ulancavanju posto jc manjc
strukcija wide1 prcuzima prvi bajt posle opkoda zato sto logika mikroprograma to znacajan bajt rcgistra H sada nula, sto garantuje cia izmectu bajtova ncce biti prenosa),
uvek 1.ahteva. Zatim nastajc drugc visestruko grananje do OJ:nake wide2, pri cemu sc a rezultat se ponovo smdta u H. Od ove tacke nadalje, operacija moL.e da protice pot-
bajt koji slcdi iza prctiksa WIDE koristi za slanjc. Medutim. posto je za instrukciju puna isto kao u standardnoj instrukciji ILOAD. Da se mikrokod ne bi opterecivao po-
WIDE ILOAD potreban drugaciji mikrokod ncgo L.a inslrukciju ILOAD. a za instrukciju navljanjcm zavrsnih mikroinstmkcija (od iload3 do iload5), predvidcn je skok od
WIDE ISTORE drugaciji mikrokod nego za instrukciju ISTORE, u drugom visestrukom oznake widejload4 na oznaku iload3. lmajte na umu da se rcgistar PC mora dvaput
grananju opkml sc nc rnoze upotrebiti kao ciijna adresa (kao oznaka Main1 ). uvecati tnkom izvrsavanja instrukcije da bi na kraju ukazao na novi opkod. lnstruk-
cija ILOAD ga uvec'ava jcdnom, a 9iz WIDE_ ILOAD jo.S jednom.
Adresa UpraviJacka memorija lsta situacija se ponavlja i za niz WIDE_ISTORE: posto se izvrse cetiri prvc mikro-
Oxl FF instrukcijc (ocl wide_istore1 do wide_istore4J, ni;: postaje isti kao z.a instrukciju ISTORE
Redosled izvrsavanja
posle prvc dve mikroinstrukcije, pa od tacke wide _istore4 program skacc na owaku
mrkroinstrukcija istore3.
Sledeea instrukcija je LDC_W. Ovaj opkod se razlikujc od instrukcije ILOAD u dva
WIDE aspckta. Prvo. za njega vaL.i 16-bitno ncoznaceno rastojanjc (kao La prosirenu verziju
ILDAD ILDAD
instrukcije ILOAD). Drugo. ona se indcksira iz rcgistra CPP (ume-;to iz. registra LVJ jcr
Ox115 wide ,iload1
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
Main1
instrukcija z.ato sto njen duzi oblik obuhvata sv.c moguce vcrzijc kraceg: medutim, on
Ox100
zauzima-' bajta. umesto 2.
U sklopu lJVlVI instrukcija, v1·ednost lokalnc promenlJive mugu da mcnjaju in-
strukcije !STORE i liN C. Ova dmga to obavlja pomo(·u dva jedrwhajtna upcranda,
OxC4 wide1 l
bona slici 4-21.

Ox15 rload1

OxOO Slika .l·2!. !Ihtrukcija !INC inw cha polja La rcvliC-itc opcrandc.

Slika .t-20. l'occtni ni1 mikroinstrukcija za instrukcijc ILOAD i WIDE ILOAD. lnstrukcip IINC pornucu INDEKSA zadaJC rastoianjc od pocetJ...a ukvira lokalnih
Adresc su date kao primeri.
prornenljivih. Ona ucitava prll!llL'tlijivu, uvccavaJe t:a KONSTANTU (vrcclnost na\cdc-
nu u instrukc·iJi 1 i smdta jc ponuvo na istu lobciju. Obratite paznju na tn da irhtruk-
lJ stvari. mikroinstrukcija wide2 na opkod primcnjuje uperaciju OR s brojem Ox I 00
cija moze i eLl smanji vrcdnust l'rumen!jivc, tj. daJC KONSTANTA(>Wa(en 8-bitni broj
1 rezultat smcsta u registar MPC. Zbog toga intcrpretiranje instrukcije WIDE ILOAD
u rasponuud -128 do+ 127. Porpun skup .JVM insrrukcrja (Jbuhvata i prc,~irenu vcrziJU
pocinje na adresi Ox II 5 ( unh.:stona adresi Ox 15), interpretir:.mje instrukcije WIDE ISTO·
instrukcije IINC u kojoj JC o.vaki operand duzine 2 bctjta.
RE na adrcsi Ox 136 (umesto na adresi Ox36) itd. Na taj nacin. svaki opkod WIDE
Sada dula1.imn du pne UV:\1 instrnh'iJC za grananjc: GOTO. kdina n:unena O\'t.:
pol'1!1Jc na adresi kujaje u upravljackoj memuriji za 256 ( tj. za Ox I 00 J reci vee a od ml-
instrukcije jc da prumeni vrcdn,Jst rcgistra PC, tak.o da se ;:~1 njmn i;vrsi IJV:-.! in-
govarajuccg rcgularnog opknda. Pucetni niz mikroinstrukcija za instrukcijc ILOAD i
->trukcija sa adrcsc dobijcne dml:tl'anjcm (otnaccnog) !6-hitnog ra~tnpnja na adrcsu
WIDE ILOAD prikazan je na slici 4-20.
opknda instrukcije Dl grananjc. Ovdc' jc situ:1cija sh/t'niJa jer .JC rastil.J'li~Jc relativnn
Kada sc dode do tacke implementiranp instrukcijc WIDE ILOAD (Ox 115). mora se
u odnosu na vrcdnust K<lJU je regiswr .°C i;n.tu n:. P')l:ctku dekudiranja irbirukc'ijc, a nc
napraviti razlika od unhicajcne instrukciJc ILOAD tako sto se imlcks mora konstruisati
na adrcse na vn:dnost kujli ima poslc prcu;.irn:rnp dva b:tj\a rastupnj:L
ulancavanjem 2 indeksna bajta (umesto da se jcdnom bajtu samo prosiri z.nak).
Poglavlje 4: Nivo mikroarhitekture 4.4 Projcktovanje nivoa mikroarhitekture 275
274

u procesoru Mic-l, ALU jedinica se moze prilicno rasteretiti ukoliko se uvede ne- Slicno tome, registar MBR2 ima istu funkcionalnost, ali sadrzi sledeca elva bajta.
zavisna jeclinica koja ce preuzimati i obradivati instrukcije. Ta jedinica za preuzi- On takode ima dva interfejsa ka magistrali B: registre MBR2 i MBR2U, koji propustaju
manje podataka, nazvana IFU (engl. Instruction Fetch Unit), moze samostalno da 32-bitnu vrednost s prosirenim znakom, oclnosno vreclnost prosirenu nulama.
uvecava vrednost registra PC ida unapred preuzirna bajtove iz toka instrukcija. Za nju IFU jeclinica ima zaclatak da preuzima tok hajtova. Ona za to koristi uohicajen 4-baj-
je potreban samo jedan jeclinicni sabirac koji je znatno jednostavniji od potpunog sa- tni memorijski prikJjucak: unapred preuzima 4-bajtne reci i smesta uzastopne bajtove
biraca. Kako razradujemo ovu ideju, uocavamo da lFU jedinica moze i da sastavlja u pomeracki registar (engl. sh1jt register) koji ih isporucuje po jedan iii po elva, redosle-
osmobitne i sesnaestobitne operande, tako cla budu spremni cim zatrebaju. To se moze dom kojim su preuzeti. Funkcija pomerackog registraje da bajtove iz memorije zadrzi
u redu cekanja pre slanja u registre MBR1 i MBR2.
izvesti na najmanje elva nacina:
Registar MBR1 u svakom trenutku cuva najstcuriji b<~t iz registra, a pomeracki registm
\. JFU jedinica moze da interpretira svaki opkod, da oclredi koliko se dodatnih MBR2 cuva dva najstarija b<~ta (stariji bajt je lcvo), da bi obrazovao 16-bitni ceo broJ
polja mora preuzeti i da ih sastavi u registar spremne da ih koristi glavna pogleclajte sliku 4-19(b ). Dva bajl;a u registru MBR2 mogu da poticu iz razlicitih memo-
izvrsna jedinica. rijskih reci posto se IJVM instrukcijc ne poravnavaju u memmiji prema granici reci.
2. IFU jeclinica moze da iskoristi po;.nati format toka instrukcija i da za svaki Kad god se prncita sadrzaj registra MBR1, u pomerackom rcgistru vrednost se po-
opkod ima spremne osmobitne i sesnacstobitne clodatke, hez ohzira na to ko- mcri udesno za jedan bajt. Cim se procita sadrzaj registra MBR2, vreclnost se pomeri
liko to ima smisla za datu instrukciju. Glavna izvrsna jedinica tada mozc da udesno za dva hajta. Zatim se registri MBR1 i MBR2 ponovo pune najstarijim hajtorn
trazi sta god joj je potrehno. odnosno parom najstarijih bajtova. Ako sacla u pomerackom registru ima dovoljnc
Osnovni elcmenti drugc seme prikazani su na slici 4-27. Umcsto jednog 8-bitnog mcsta za celu rec, IFU jeclinica zapocinje memorijski ciklus daje ucita. Pretpostavlja-
registra, sada imamo dva registra MBR: 8-bitni MBR1 i 16-bitni MBR2. IFU jcdinica mo cla ce se bilo koji od elva registra MBR po ocitavanju ponovo napuniti na pocetku
vodi rae una o tome koje je poslednje hajtove iskoristila glavna izvrsna jedinica. Ona sledeccg ciklusa, tako da se operacija citanja moze obavljati u uzastopnim ciklusima.
snabdcva regis tar MBR1 slcdecim bajtom, kao kod proccsora Mic-1, automatski regi- Konstrukcija IFU jedinice mozc se predstaviti u skladu s modelom masine konac·
struje ocitavanje registra MBR1, preuzima slcdeci bajt i smesta ga odmah u MBR1. Kao nih stanja (engl. Finite Swte Machine, FSM), tj. konacnog automata slika 4-28. Svi
u procesoru Mic-1, i ovdc postoje dva interfejsa ka magistrali 8: to su registri MBR1 ovakvi autnamati sastoje se od dve grupc komponcnata: stanja (engl. states). prikaza-
i MBR1 U. Kocl prvog je znak prosiren na 32 bita; drugi je prosiren nulama. 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
MBR2 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

lz mcmorije c::=====:>

\
\
Ova najmanje znacajna bita MBR2 MBR2
---- Magistrala C - - Magistrala B

" Prelazi
MBR1: Dogada se pri citanju registra MBRl
MBR2: Dogada se pri citanju registra MBR2
Upis1van1e Preuzeta rec: Dog ada se kada se procita rec iz memori1e i njena 4 bajta smeste u registar za pomeranJe
u registar PC
Slika 4-2l!. Konacni all{omat za implementiranje lfU jccllnice.
Slika 4-27. Jcuinica za preuzimanje instrukcija pmcesora ivlic- i.
- 268 Pog;lavlje 4: Nivo mikroarhitckture
-- 4.-l Projektovanje nivoa mikroarhitckture 269

Sada ccmo razmotriti implemenliranje instrukcija INVOKEVIRTUAL i IRETURN za Prva dva nacina su ocigledni, ali postoji izncnadujuce velik broj mogucnosti da Se
upucivanje poziva proceduri i vracanje iz nje, kao sto je opisano ll odeljku 4 ..2.3. ln- pri projektovanju dramaticno srnanji broj sistemskih ciklusa po instrukciji. sk.rate
strukcip INVOKEVIRTUAL je niz od 2.2 mikroinstrukcije i predstavlja najslozeniju in- ciklusi ili, najccsce. uradi i jedno i drugo. U ovom odeljku na primeru cemo pokazati
~I kako kodiranje i dckodiranje operaeije moze da utice na sist.::mski ciklus.
strukciju u implemcntaciji IJYM skupa. Njen radjc prikazan na slici 4-12. Ona koristi 'I

svoj 16-bitni pomeraj za utvrdivanje adrese rnetmle koju treba da pozove. To je u Broj sistemskih ciklusa potreban za iLvrsavanje skupa operacija poznat je kao
nasoj irnplcmentaciji rastojanje od pocetk.a podrucja konstanti. Ova lokacija u pod- duzina putanje (engl. path Length). Ponekad se duzina pulanje moze skratiti doda-
rucju konstanti ukawjc na mctodu koju treha pozvati. Setite sc cla prva 4 bajta svake vanjcm specijalnog hardvera. Na primer, ako registru PC dodamo jcdinicni sabirac
mctodc nisu instrukcije. To su dva 16-bilna pokazivaca. Prvi saclr?.i hruj paramctar- (cij:t jc jcdna strana harclverski podesena da vrednost uvecava za 1J vise ne moramo
skih rcci (ukljucujuCi OBJREF- poglcdajte sliku 4-1.2). Drugi daje velicinu podrucja koristiti ALU jedinicu da hismo uvecavali vrednost u njcmu, cime steclimo cikluse.
lokalnih promenljivih (mcrenu u recima). Ova polja se preuzimaju kroz. R-bitni pri- Cenu placamo hardverom. Medutim, ovim ne po;,tizcmo poholjsanje kakvo smo
kljucak i kuriste kao da su dva 16-bitna rastojanja unutar instrukcije. moilla occkivali. U mnogim in;;trukcijama, ciklus u kome se povecava vrcdnost rc-
lnforrnacije za povcL.ivanje, koje su ncuphmine za usposta\ ljanje prvobitnog sta- gistra PC koristi se i za operaciju citanja. Sledeca instrukcija nc bi se mogla zapoceti
nja racunara (adresa p(Jcetka starog podrucja lokalnih promcnljivih i stara Hcdnost ranijc jcr njcn pocetak zavisi od toga da li su pristigli podaci iz memorije.
registra PC) smc:Staju se neposrcdno iznad nuvostvorenog pmlrucja lnkalnih promen- Za smanjcnjc bruja ciklusa ncophodnih za preuzirnanje inslrukcija potrcbno je
ljivih, a ispod novog stt:ka. Na kraju se preuzima opkoJ sleJecc instrukciJe i uvceava mnogo vise od dodatnog hardverskog kola za menjanje vrednosti rcgistra PC. Da bi
sadrzaj rcgistra PC pre nego slo se programski lok vrali na olnaku Main1. kako hi za- se prcuzimanje instrukcija znacajnijc ubr;.alo, mora se iskoristiti tree a lehnika- pre-
pocelo i1.vrsavanjc sledcee instrukcijc. klapanje izvrsavanja instrukcija. Odvajanje dcla clektronskog kula koje preuzima in-
IRETURN je jedn()stavna instrukcija bez opcranada. Dna kuristi adresu smc~tenu u strukcije (osmobitnog memorijskog prikljucka i regislara MBR i PC) daje najboljc
prvoj reci podrucja lnkalnih promenljivih da bi dubila informacijc za povczivanje. rezullate ako je LlVa jedinica funkcionalno nczavisna od pulanje podataka. U tom slu-
Posle tog.a. vraca rcgistrima SP. LV i PC njihove prethodnc vrcdnosti. a vracenu vred- caju. ona rnozc nezavisno da preuzima slcdeci opkod iii operand. rnozda i asinhrono
nost kopira s vrha lekuccg skka na vrh prvohitnog ~tcka. kao na ,;lici 4-13. 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
4.4 PROJEKTOVAN.JE NIVOA MIKROARHITEKTURE
re;enja (prosirivanjc memorijskog prikljucka na 16 bitova) znatno komplikuje opera-
Kao i skoro svc u racunarstvu. i pmjcktovanjc nivoa mikruarhitekturc pn:puno je ciju, zato slO JC rnernorija sirine 32 bita. Potrebnih 16 bitova mogu da sc nala,.:c u dve
kompromisa. Racunan imaju brojnc po/djnc karakteristikc, kao stu su br,.:ina. cena. reei. lako da prilikom cilanja 32-bitnih vrednosti nc rnozcmo biti sigurni cia smo uci-
pou;danusl. jcdtt('sLtvn<Jst kc,tiscenja. potrosnja -;trujc i tizicl--a \elicina. llleL1utim. oJ tali oba potrebna bajta.
svih mogucih k,JmbinJctja ,l\"ih karaktc:ri:>rika. za projckuntc proccsora mo/.da je n<~j­ Preklapanjc izvrsavanja instrukcija jesle najzanimljivijc resenjc. i nudi najvi;e
va/.niji kompmmi> i;mcdu brzinc i cenc r<tcunara. li mom odcljkuLktaiJno cctnll ana- mogucnosti za dramaticno povecanje hrzine. Jednostavno preklapanje preuzimanja i
li;.irari raj puka1.atclj da bismo utvrdili kal-.vi kompromis1 do!d;.c u ob1ir i Ltkva sc cen<~ izvrsavanja instrukcija iznenadujucc je efikasno. Slozenijim lehnikama sc postize i
thardverska i u pogkclu s\uzenostil mma phtriii da hi se po:.tigle \isukc pcrl\JmJanse. 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.
4.4.1 Odnos hrzinc i ccne
Brzinaje jedna pulovina slike. a cena druga. Cena se takoLte rnoze meriti na razlicite
Iak(' n,wc t.:hn<;lugtje podsticu stalnu ubr.cavanj.: raJa r<1cunara. lO nijc l.:ma ov,,g nacine. ali je njena tacna definicija pod znakom pitanja. Postojc neki jednoslavni po-
odcljka. Po\ccanjc bu.ine pustig.nulu b(JljPt~l mg~m:t.actium. iako rnanjc impr~~i-,nu kazatclji kao slo je npr. broj kompunenata sistema. Oni su mo7.c!a bili odgovarajuci u
ud uttog poslignutug brz;m kolim:!. nik:tk.c' ni_;e !.a •.Jdbacivanjc. Hrzina ''~ n;,l.lc m.::riti danirna kada su proccsori pravljeni od pojedinacnih komponcnata kojc su kupovane na
na r~u.liCite naCinL. ali uz .radatu tchnulugiju e1~k:rrm:'lkib kt'Ll i ~_adat IS.\ sluj, pusto- trl:istu i sklapanc. Demas se ceo procesor nalazi najednom cipu, ali su vcci. slozeniji ci-
.Jc tri usrmvrn n:;cina da sc izv rsavanjc instrukctja ubrz:t: povi mnog:o skuplji od manjib i jednoslavnijih. Pojedinacne komponente (npr. tranzi-
l. Smanjcnj.~ br•1ja sistcmskih ciklltsa putrdmih za il.\r~avanje JCdnc inslrukcijc. 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
2. I\Jjcdn•lsta\·ljc·nje prg:tmlaCi.Jc ko.Je vodi krac~m _,isrcmskum ctl-;lusll.
cip. A lroskovi proizvodnjc cipa rastu mnogo brz.e od njegove povrsinc. Zbog toga pro-
3. Prd;bpanjc il\ r;avanja instrukcija.
jektanti cipova. kada razgovaraju o ceni, govorc jezikom trgovaca nekrctninama, tj. o
povrsini koju zauzima elektronsko kolo.
"" 278 Poglavlje 4: Nivo mikroarhitekture 4.4 Projektovanje nivoa mikroarhitekture 279

Registri Oznaka Operacije Napomena


za upravljanje
memorijom nop1 goto (MBR) Skoci na sledecu instrukciju

glavnoJ
Ka
memonji
j< J:b ,
f
MOR
ff~ I
iadd1
iadd2
iadd3
MAR=SP=SP-1; rd
H=TOS
MDR= TOS=MDR+H; wr;
Ucitaj pretposlednju rec na steku
H=vrh steka
Saberi dve poslednje reci; rezultat upisi
1 ad n1e I :. PC :~ goto (MBR1) na nov vrh steka
--- -------- ------
Jedinica za isub1 MAR=SP=SP-1; rd Ucitaj pretposlednju rec na steku
preuzimanje~ isub2 H=TOS H=vrh steka
instrukcija isub3 MDR= TOS=MDR-H; wr; Oduzmi TOS od preuzetog TOS-a-1
IIFU)
goto (MBR1)
-- ------

iand1 MAR=SP=SP-1; rd Ucitaj pretposlednju rec na steku


iand2 H=TOS H=vrh steka
iand3 MDR= TOS=MDR AND H; wr; Na TOS-1 i TOS primeni operaciju AND
goto (MBR1)

Upravljacki signali ior1 MAR=SP=SP-1; rd Ucitaj pretposlednju rec na steku


ior2 H=TOS H=vrh steka
~ Posalji na magistralu B ior3 MDR= TOS=MDR OR H; wr; Na TOS-1 i TOS primeni operaciju OR
goto (MBR1)
---
t Upis1 vrednost s magistrale C u registar dup1
---

MAR=SP=SP+ 1
--

Uvecaj SP; kopiraj ga u MAR


dup2 MDR= TOS; wr; goto (MBR1) Upisi novu rec na stek
Magistrala C -- - - pop1 MAR=SP~SP-1; rd Ucitaj pretposlednju rec na steku
pop2 Cekaj na rec
- - - - Magistrala B
1 r pop3 TOS=MDR; goto (MBR1)
------
Kopiraj novu rec u TOS
---------- -----

swap1 MAR=SP-1; rd UC:itaj drugu rec na steku; podesi MAR


na SP
swap2 MAR=SP Pripremi se da upises novu drugu rec
swap3 H=MDR; wr Snimi novi TOS; upisi drugu rec na stek
swap4 MDR=TOS Kopiraj stari TOS i MDR
swapS MAR=SP-1; wr Upisi stari TOS na drugo mesto na steku
UpraviJanJe N
swap6 TOS=H; goto (MBR1) AZuriraj TOS
ALU J8dinicom z - ---

bipush1 SP=MAR=SP+ 1 Podesi MAR za upisivanje na nov vrh steka


bipush2 MDR= TOS=MBR1; wr; Azuriraj stek u TOS-u i memoriji
goto (MBR1)
iload1 MAR=LV+MBR1U; rd Premesti LV+ indeks u MAR; procitaj
operand
Slika 4-29. Putanja podataka za proc.:sor Mic-2. iload2 MAR=SP=SP+ 1 Uvecaj SP; prebaci nov SP u MAR
iload3 TOS=MDR; wr; goto (MBR1) AZuriraj stek u TOS-u i memoriji
Ubrzavanje rnozemo postici ukoliko u proccsor uvedcmo veci stcpen paralelne istore1 MAR=LV+MBR1 U Podesi MAR na LV + indeks
obradc. Procesor Mic-2 je potpuno sekvencijalan. On sadrzaj registara postavlja na istore2 MDR=TOS; wr Kop~raj TOS za smestanJe

magistrate, ceka na ALU jeclinicu i pomerac da ga obradc i zatim ponovo upisuje re- istore3 MAR=SP=SP-1; rd Umanji SP; ucitaj novi TOS
istore4 Cekaj ucitavanje
zultate u registre. Osim IFU jedinice, drugog paralelizma nema. Prema tome, uvo- istore5 TOS=MDR; goto (MBR1) AZuriraj TOS
Jenje paralelizma je obecavajuca mogucnost. wide1 goto (MBR1 OR Ox100) 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 Poglavljc 4: Nivo mikroarhitekture 4A Projcktovanje nivoa mikroarhitckture

Oznaka Operacije Napomena Jnstrukciji !LOAD smo dudali pctlju interpretera, ali to nc uticc na duzinu putanje
Ucitava pretposlednju rec sa steka izvrsavanja. !pak. Jodatna magistrala je skratila ukupno vrcme izvrsavanja instrukci-
pop1 MAR=SP=SP-1; rd
je !LOAD sa sest na pl't ciklusa. Sada imamo jos jednu tehniku za skracenje putanje
Main1.pop PC= PC+ 1; fetch Registar MBR sadrzi opkod; preuzima sledeCi bajt
izvrsavanja:
pop3 TOS=MDR; goto (MBR) Kopira novu rec u registar TOS; salje opkod
Upotreha tri mugis1rale wnesto dvc.
Slika 4-24. Poboljsani niz mikroprograrna za izvrsavanje instrukcije POP.

Jnstrukcija POP je poscbno zgodna za ovakvo poboljsavanjc jer ima prazan ciklus Oznaka Operacije Napomena
u sredini u kome sc nc koristi ALU jcdinica. Glavna petlja, mcdutim, koristi ALU je- iload1 MAR=MBRU+LV; rd MAR=adresa lokalne promenljive za stavljanje na
dinicu. Prcma tome, da bistc skratili putanju izvrsavanja neke instrukcije, potrcbno je stek
da unutar nje pronadetc ciklus u komc sene koristi ALU jcdinica. Takvi prazni ciklusi I iload2 MAR=SP=SP-ri Registar SP ukazuje na nov vrh steka; priprema za
upisivanje
nisu cesti. ali postojc. pa se isplati uklopiti Main1 na kraj svakog niza mikroin~trukcija. I
Za to je potrcbno samo malo upravljackc mcmorije. Na taj nacin imamo prvu tchniku tload3 PC=PC+1; fetch; wr Uvecava sadrzaj registra PC; uzima sledeci opkod;
upisuje na vrh steka
za skracenje putanjc izvrsavanja:
iload4 TOS=MDR Azurira sadrzaj registra TOS
Umetunjc pctljc intcrpretera na kraj swtkog niza mikrokodu. iload5 PC=PC+1; fetch: goto (MBR) Registar MBR vee sadrzi opkod; preuzima indeksni
L_ bajt
Arhitcktura s tri magistralc
Slika 4-26. K6d za i;.vrsavanje instrukcije !LOAD u projektu s tri tnagistrale.
Stajus mozcmo uraditi da bismo skratili putanjc izvr~avanja') Druga lako uocljiva
tchnika jc da se oba ulaDt u ALU jedinicu izvcdu preko odgovarajucih magistral a A Jedinica za prcuzimanje instrukcija
i B. sto s magistralom C ukupno dajc tri magistral<.:. Svi registri (iii vccina njih) treba
Obl' opisane tehnil--e su dobrl', ali cia bismo posligli primetno poboljsanje, moramo
da imaju pristup obcma ulaznim magistralama. Prednost dvc ulazne magistr~tle jeste
upPtrebiti jos bolje tehnikc. Sagledajmo zajednicke Jelove svih instrukcija: prcuzi-
to sto u tom slucaju sadr/.aj bilo kog rcgistra muzemo dmlati sadrzaju biiD kug Jrugog
manje inc,t:·ukcijc i Jekodiranje njenih polja. Uociccte da se tukom izvrsavanJa svake
n:gistra u Dkviru jl'dnog sistcmskog ciklw.a. Znacaj ovabc mugucnosti ilustrovan je
tnstrukL·ije moze dugoditi slcdeee:
kro; imp!t:mcntaciju instrukcijc ILOAD na prucesl>ru Mic-l (siika -+-25 ).
I. Sadrzaj rcgi;.tra PC propusta se krot. ALU jeclinicu i uvecava.
~---- -- ----~-----~----~--,

r
-z;·ak~-OperaciJe Napomena I .2. Rcgistar PC sc koristi za preuzimanje sledcccg bajta iL toka instrukcija.
--~----·-- -~- -------·-------~------------~ -·~-- ---"""j
ad1 H=LV Registar MBR sadrzi indeks: kopira sadrzaJ registar I J. Operandi SL' ucitavaju iz mcmurije.
LV u reg:star H I
4. Opcr•tndi sc upisuju u mcrnoriju.
I
iload2 MAR-MBRU.,.H rd tvlAR=adresa lokalne promenijive za stavlJa~Je na 5. 1\Ll' jCdinica obavlja izracunavanje i smesta rezultat.
stek
iload3 MAR=SP=SP+ 1 Reg1star SP uka:uje na nov vrh steka: ptiprema r\ku insuu~L·ija ima dodatna polja (La opcrande). svako se po\je mora preuzeti.
upisivanJe haj1 po hajt. i punovo saslaviti pre koriscenja. Preuzirnanje i sastavljanje polja an-
itoad4 PC=PC+ 1 ;fetch;wr Uvecava sadrzaj registra PC; uzima sledec':i opkod: gal.ujc AU; jcdinicu barernjcdan ciklus po bajtu. kako bi sc uvecala vrednost registra
upisuJe na vri1 steka PC, a zatim ida hi se sastavili rczultujuci indeh ili rastojanje. A!.T..I jcdinica se kori'>li
iload5 TOS=MDR; goto Main1 AZ.~rira sadrzaj registra TOS skom u svakom cik.lusu za razlicite operacije koje se ticu prcuzimanja instrukcija i sa-
Main1 PC= PC+ 1, fetch; goto (MBR) Rc,gtstar MBR sadrii opkod; uzima sledeCi bajt: -? st:tvljanja ji\llja unutar instrukL'ije. stu jc sve sporedniji posao od onoga stu joj zadajc
saiJe na inrser.Je sama instrllkL·ija.
-··----~--- ---~~

Da bi sc onwguci\o preklapanJe glavnc petlje, ncophodno je ALU jedinicu o:,lobo-


Slika 4-25. Kc>d pmcc:sora \iic-1 /.,\ izH'<l~eutj,: instrukcijc !L0."1D.
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-
Ovde vidimo da se sadrzaj rcgistra LV u ukviru mtLroinstrukci;~ iioad1 kopirctu rc-
jt:\ima ,\Ll; jcdinica sluzi samu za kopiranje vrcdnostijednog registra u drugi. Takvi
gistar H. Tu sc radi zbog sabiranp sa sadr/.ajcm rl':;i-Ma MBRU umikruinstrukciji iioad2.
cikiusi 'e i111';2U ustedcti ako Sl' uvedu alternativne putanjc podataka kuje nc prnlaze
u nasem prvnbitnom projektu' dve magistralc. Ill' pusl()ji nacin da sc direktno saheru
1-.nv '\LL jcdinic'u. ~cka korist se moze dobiti. na primer. pravljenjem putanjc ud re-
sadrzaji dva proiLvolJna rcgistra, vee jcdan od njih nwra prvo da .sc kopira u regis tar H.
gi:;tra TOS dt~ rcgistra MDR iii od registra MDR do registra TOS, posto se rei's vrha ste-
U novom pmjektu s tri magistrak, muzcmu da ustcdimo jedan ciklus (s\ik.a -+-26).
ka cestn kc>pit·a izmcdu ova dva rcgi~tra.
I!""

282 Poglavlje 4: Nivo mikroarhitekturc 4.4 Prujcktovanje nivoa mikroarhitckture 283

Oznaka Operacije Napomena


------- ---

swap1 MAR~SP-1; rd Procitaj drugu rec na steku; podesi MARna SP


swap2 MAR~SP Pripremi se za upisivanje nove druge reci
Ka ~ swap3 H~MDR; wr Snimi novi TOS; upisi drugu rec na stek
glavnot I
memoriji I swap4 MDR~TOS Kopiraj stari TOS u MDR
i od nje I

Jedinica za
I swap5 MAR~SP-1; wr Upisi stari TOS na drugo mesto na steku
preuzimanje~ IL_swap6 TOS~H; goto (MBR1) AZuriraj TOS I
instrukcija " __ _ ___ j
(IFU) Slika 4-32. KCHiprocesora Mic-2 za instrukciju SWAP.

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.
Upravljacki signali
lmplemcntiranje instrukcije SWAP na proccsoru Mic-3 prikazano je na slici 4-3:;.
f Posalji na magistralu B 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-
t Upisi vrednost s magistrate C nice od sadrhja registra 8 treba negirati signal ENA (pogledajte sliku 4-2). Zbog jed-
u reg1star
nostavnosti nc prikazujemo dodeljivanja koja sc nc koriste. U drugom ciklusu obavlja
Magistrala C - - - sc oduzimanje. U trccem ciklusu rczultat sc smesta u registar MAR, a prcd kraj ciklusa
-- - Mag1strala B 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.

l __ _sw~p1 -s;.;,, rs~, isw~p4 s...pS


Ciklus MAR=SP-1 ;rd MAR=SP i H=MDR; wr MDR= TOS MAR=SP-1;
jedm1com · wr
·-- ---- ------ --- -----

! 1 iB~SP ;
+ --- ---------1--- t
2 1 c~s-1 s~sP '
3 ; MAR~C; rd C~B -1
4-31. Putanja podataka s lri magistrak u raCunaru Mic-3"
+-- ----- f -
Slika 4 i MDR~Mem

Druga tacka se viKc odnosi na protok pm!ataka ncgo na brzinu izvrsavanja pojecli- !5 B~MDR
""-C~B -
i
-r- B=TOS
-" -~
I
nacnih instrukcij<L u proccsoru Mic-2. tokom prvog i trcccg clela svakog sistem~kog
;6 ------~--- --- ------ --

cik!usa, ALU jedinica je nczapos!ena. Kada podelimo putanju podataka u tri cclinc. I H=V;wr j C~B

ALU jedinicu cemo moci da koristimo u svakom ciklusu pa tako iz racunara clobija-
I Mem;MDR B~H

mo triput vise rczultata. c~B

Pogledajmo sada kako radi putanja podataka procesora Mic-3. Pre toga trcba da sc TOS=C
clogovorimo o oznacavanju leceva. Najlakse je da ih oznacimo sa A, B i C. ida ih trc- [11-- _j _ ! goto (MBR1)
tiramo kao obicnc registre, uzimajuci u obzir ogranicenja koja postoje za putanju
Slika 4-33. lmplementiranJC instrukcijc SWAP na procesoru Mic-:l.
poclatak<L Na slici 4-32 dat je primer koda kojim se instrukcija SWAP imp!cmcntira u
procesoru Mic-2.

:I
~~

280 Poglavlje 4: Nivo mikroarhitekture 4.4 Projektovanje nivoa mikroarhitekturc 281

Oznaka Operacije Napomena Oznaka Operacije Napomena


idc_w1 MAR~CPP+MBR2U; rd; lsto kao wide_iload1, ali uz indeksiranje ad ireturn1 MAR~SP~LV; rd Podesi SP, MAR da ucitaju vezni pokazivac
goto iload2 CPP ireturn2 Cekaj na vezni pokazivac
ireturn3 LV=MAR~MDR; rd Podesi LV, MARna vezni pokazivac; ucitaj
iinc1 MAR~LV+MBR1 U; rd Podesi MARna LV+ indeks za citanje
H=MBR1 Podesi H na konstantu staru vrednost reg1stra PC
iinc2 ireturn4 MAR~LV+1
MDR~MDR+H; wr; Uvecaj za konstantu i azuriraj Podesi MAR da pokazuje na staru vrednost
iinc3
goto (MBR1) registra LV; ucitaj staru vrednost LV
ireturn5 PC~MDR; rd Uspostavi staru vrednost u registru PC
goto1 H~PC-1 Kopiraj PC u H ireturn6 MAR~SP
goto2 PC~H+MBR2 Dodaj rastojanje i azuriraj PC ireturn7 LV~MDR Uspostavi staru vrednost u registru LV
goto3 Cekaj da IFU preuzme nov opkod ireturn8 MDR~ TOS; wr; goto Snirni vracenu vrednost na prvobitni vrh steka
goto4 goto (MBR1) Predi na sledecu instrukciju (MBR1)
iflt1 MAR~SP~SP 1:rd Ucitaj pretposlednju rec na steku '
Slika 4-30. Mikroprogram 1.a Mic-2 (trcci od tri dcla).
iflt2 OPC~TOS Snimi TOS privremeno u OPC
iflt3 TOS~MDR Stavi nov vrh steka u TOS
N=OPC; if (N) goto T; else Skoci aka je postavljen bit N Kao sto je ranijc pomenuto, trajanje sistemskog ciklusa ograniceno je vremcnom
lflt4
goto F potrebnim da signali prm1u putanjom podataka. Slika 4-3 prikazujc pojedinacna
1feq1 MAR~SP~SP-1; rd Ucitaj pretposlednju rec na steku kasnjenja signala pri prolasku kroz razlicite komponentc sistema u svakom ciklusu.
ifeq2 OPC~TOS Snimi TOS privremeno u OPC U aktuelnom ciklusu putanje podataka postoje tri glavne komponete:
ifeq3 TOS=MDR Stavi nov vrh steka u TOS
lfeq4 Z=OPC: 1f (Z) goto T: else Skoci aka je postavljen bit Z I. Vreme potrebno za prenos sadrzaja izabranih rcgistara na rnagistrale A i B.
goto F 2. Yremc obrade podataka u ALU jcdinici i porneracu.
if_1cmpeq1 MAR=SP=SP-1: rd UCitaJ pretposlednju rec na steku 3. Yreme potrchnu cia se rezultati vrate u registrc i sme~tc.
1f _icrnpeq2 MAR=SP~SP1 Podesi MAR da ucita nov vrh steka
ificmpeq3 H=lv1DR: rd Kopiraj drugu rec sa steka u H Na slici 4-31 prikazana je nova arhitektura s tri magistrale koja obuhvata IFU jedi-
if_icmpeq4 OPC~TOS Snimi TOS privremeno u OPC nicu, ali U/ tri dodatna leca (rcgistra), umetnuta u sredine odgovarajucih magistrala.
,f _1crnpeqS TOS~MDR Stavi nov vrh steka u TOS
z~H QPC: If (Z) goto T; Aka su dve gornje reci jednake, idi na T: aka
Podaci sc u leceve upisuju u svakom ciklusu. U stvari. ovi rcgistri dele putanju
if icmpeq6
else coto F nisu, idi na F podataka u zasebne ccline kojc mogtt da racle nezavisno jedna od druge. Ovu semu
HocPC-1. goto goto2 lsto kao goto1 cemonazvati Mic-3 iii model paralclnc ohrade (engl. pipe/in('(/ mode/).
T ---------
-~-----

Kako mugu da pomognu ovi dodatni rcgistri'7 Podaci sada pro laze putanjom ;:a tri
F H-=:~v1Bt.~2 Pristupl bajtovima u MBR2 koji su za
odbacivanje sistem~ka ciklusa: u prvom se pune lccevi A i B, u Jrugom ALU jcdinica i pomerac
f=2 goto :MBR1) rade svoj posao i podaci prelaze u lee C, au trccem se iz leca C vracaju u normalnc
1:1vokRvirtua: 1 t1i."'.R cCPP+MBR2U; rd Stavi adresu pokazivaca na metodu u MAR registre. Da li smu ludi'l Ne. Evo koja je svrha lcccva:
ln';ckevirtual2 OPC~PC Snimi stanje PC za instrukciju Return u OPC
PC=~,1DR Postavi PC na prvi bajt koda metode
I. Mul.e se uhrzati radni taktjerje maksimalno kasnjenje krace.
invokevir~uai3
,n\;oke..;!rtuai4 TOS~SP-MBR2U TOS~ adresa OBJREF-1 7 Tokom svakog ciklusa mugu sc kuristiti svi dclovi putan1c podataka.
!nvcke'Jirtuai5 TOS=M,~R=H= TOS+ 1 TOS~adresa OBJREF
'nvokevirtual6 MDR=SP +MBR2U+ 1, wr Preko OBJREF upisi vezni pokazivac Kada sc putanja podataka podeli u tri celine, smanjujc sc maksimalno kasnjcnje, pa
invor.:evirtual? MA."i=SP+MDR Postavi SP, MAR na lokaciju namenjenu sc ucestalost radnog takta mDL.e povccati. Pretpo~tavimo da smo ciklus putanjL' poda-
za cuvanje stare vrednosti registra PC taka podelili na tri dela, tako da svaki den ciklusa s,ada iznosi ok<l 1/.3 prvobitnug- to
~n~;okev 1 rtuJ.i8 MDR~OPC;wr Priprerni se za snimanje stare vrednosti PC
nam omogucuje da radni takt ubrzamu triput. (Ovakva podcla ne odgovara bas pravorn
tnvokevlr~ua!9 MAR=SP~SP+1 Uvecaj SP da pokaze na lokaciju za cuvanje
stare vrednosti registra LV stanjujer smo u putanju dodali jos dva registra, alice za grubu pwcenu biti dnvo!jna.l
invokevirtual i 0 ~v~DFkLV; wr Snirni staru vrednost LV Posto srno closad prctpostavljali da sc svako citanje podataka tz. mcnwrije i upi-
iCVCkcvir~u3i 11 L'!= TOS; goto (MBR1) Postavi LV da pokazuje na nulti parametar sivanje u nju obavlja izmt:t!u memmijc i kd memorijc prvog ni voa ida je kcs rnemo-
Slib 4-30. :'vtikmpmgram za Mic-2 (Lirugi tld tri ucla). 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 tc.~kuost\ar!jivn.

d'
....
'
286 Poglavlje 4: Nivo mikroarhitekture 4.4 Projcktovanje nivoa mikroarhitekture 287

jedinica i pomerac. Najzad, u cetvrtom ciklusu, njeni rezultati se ponovo smestaju u


Bit Final
registre. Treba primetiti daje hardver ovde podeljen u cetiri eel inc; u svakom ciklusu,
instrukcija koristi samo jednu. oslobadajuci ostale tri za druge instrukcije.
Duzina IJVM
instrukcije
lndeks za ROM IBit Goto
Jedinica za cekanje u redu G)
Korisna analogija nasoj semi paralclne obrade jeste fabricka proizvodna linija za CD
sklapanje automobila. Da bismo je sto vi;e priblizili nasem modelu, zamislimo da fa- lz ROM za mikrooperacije
mernorlije IADD
brickom halorn svakog minuta odjekne udarac gonga, i tada se svi automobili na traci IFU jedinica I SUB
pomerc unaprcd zajedno radno mesto. Na svakom takvom mestu nalaze se radnici koji ILOAD
obavljaju odredenu opcraciju na automobilu (npr. montiraju upravljac iii kocnice). Na IFLT

svaki udarac gonga (jcdan ciklus) na traku se postavlja nova automobilska sasija, as
M1krooperac1)e
njenog drugog kraja skida se potpuno zavrsen autornobil. lako za potpunu montazu au- u redu Cekan1a

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 U memon1u
i iz nje
obzira nato koliko traje sklapanje celog automobila. To jc prednost koju donosi paral- Podaci za fazu 4 MIRl
elna obrada i ona je jednako primt:nljiva na procesorc kao ina fabrike automobila. <:::==)
0 Reg1stri
MIR2

4.4.5 Sedmostepena paralelna obrada: procesor Mic-4


MIR3
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.
Slika .t-35. G Ia me komponente proce,ora Mic-4.
fFU jedinica prenosi bajtove u novu komponentu. jcdinicu za dekodiranje. Ona
ima internu ROM memoriju sa indeksirna IJVM opkoda. Svaka oclrcdnica (red) u njoj Mikrooperacijc su slicnc mikruinstrukcijama sa slike 4-5. osim sto ne postoje
ima dva dcla: duzinu IJVM instrukcije i indeks ka drugoj ROM memoriji za mikro- polja NEXT_ADDRESS i JAM, a postoji novo kodirano polje za biranje ulaza magistrale
operacije. Duzinu IJVM instrukcije koristi jedinica za dckodiranje da bi tok bajtova A. Pustojc i dva nova bita: Final i Goto. Bit Final sc postavlja u posleclnjoj mikroope-
pravilno izdelila na instrukcije. tako da se uvek zna sta je opkod. a sta su operandi. raciji svakog niza IJYi\lmikrooperacija kako bi se oznacilo daje rei" o poslcdnjoj in-
Ako je duzina tckuce instrukcije jedan bajt (npr. instrukcije POP), tada jedinica za dc- strukciji. Bit Goto oznacava mikroperacije za uslovno grananje. One su drugacijeg
kodiranje zna daje slcdcci bajt opkod. Ako je. mcdutim, duzina tekuce instrukcijc dva formata od uobicajenih mikrooperacija- sastavljene su od bitova JAM i indeksa z~:
bajta,jedinica za dekodiranje zna daje sledeci bajt operand iza koga neposrcdno sledi sadr/.aj ROM mcmorije za mikrooperacijc. l'vlikroinstrukcije koje su nekada radile'
nov opkod. Kada se naidc na prctiks WIDE, slecleci bajt se prctvara u specijalan prosi- putanjom podataka i takode izvrsavalc uslovno grananje (npr. mikroinstrukcija iflt4:
reni opkod (na primer, WIDE+ !LOAD postaje WIDE _I LOAD). sada se moraju pndeliti u dve mikrooperacije.
lndeks u ROM mcmoriji za mikrooperacije, koji JC pronasla u svojoj tabeli, jcdi- Jedinica za svrstavanje u red cekanja radi na sledeci nacin: ona ocl jedinice za de-
nica za dekodiranje ispurucujc slcdecoj komponcnti, jcdinici za svrstavanje u red kodiranjc dobija indcks u ROt\! mernoriji za mikrooperaciju. a zatim na osnovu in-
cekanja (engl. queueing unit). On a sadrzi malo logike i dve interne tabclc (jcdna je u dcksa pronala1:i mikmoperaciju i kopira jc u interni red cekanja. Poslc toga, u rec
ROM, a druga u RAM rnemoriji). ROM memorija saclrzi mikroprogram. u kome sva-
ka IJVM instrukcija ima niz uzastopnih odrednica. nazvanih mikroopcracije. Odred-
:i 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, <:
-·~
nice moraju biti uredene po redosledu izvrsavanja. pa trikovi, kao sto jc wide_iload2 zatim prcstaje da radi. Pretpostavljajuci da nijc naisla na mikrooperaciju s posta-
grananje na iload2 u procesoru Mic-2 nisu dopustcni. Svaki IJVM niz mora se potpuno i vljenim bitum Go to ida jos uvck ima prostora u redu cckanja, jedinica za svrstavanje
definisati, sto ponckad dovodi i do dupliranja nizova.

~l l
~

Poglavljc 4: Nivo mikroarhitckturc 4.-1 Projcktovanje nivoa mikroarhitcktur·c 285

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 ReqHMt}
vrednusti registra u koji podaci jos nisu upi!>ani. Jedino sto ovdc ima smisla raditi je- A B
stc odlaganjc mikroinstrukcije swap3 dok rcgistar MDR nc dobijc vrcdnost u pctom
ALU
ciklusu. Zaustavljanje i cckanjc na potrcbnu vrednost naziva sc zastoj (engl. stalling). u lPomE:razl
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 c

fli'il'e--.f~--:hi1.~
sadrzaj registra H nakon sto mikroinstrukcija swap3 upisuJe vrcdnost u njega. Kada bi
mikroinstrukcija swap5 pokusala da procita vrednnsl rcgistra H. mor~da hi da zastane
1
[i£Q}.FU Reian-
F-J< )
. pJ !-~,I. !I
rr=;;t_ _v i,
l"_':T"j Reg
_j

rnm
l9 T~
~ HA
tokomjcdnog ciklusa.
Jako program Dl proccsor Mic-3 trosi vi~e ciklusa ncgo pn1gram za procesor
JVIic-2. on ipak radi hr/.c. Ako period ciklusa u procesoru Mic-3 oznacimcl sa ..'>.T ns. I~ \~
·---'"----
I
.---
I f?OOi"""'' I [_, ---~~
onda proccsoru Mic-3 tre!Ja lli'l.T ns cia izvrsi instrukciJLI SWAP. Nasuprot tcll1lt\ pro-
C:k:"s I C:'d::s 2 Ciklus 3 Ciklus 4
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;.- Time

bcdi zavisnost.
Slika ..J-J-1. Gr:d'icki pnbz paralclnc obauc.
~Paralelna obradajc glavna tchnika koja sc koristi u sv·im savrcmcnim procc•;cJrima
i zato jc treba pravilno razumeti. Na slici 4-3-1. putanja podataka :.;a slikc 4-J l prika-
Da smo prikaza!i pcti ciklus i nar~dnc cikluse, slika hi bila isla kao u cetvrtom
zanaJC u ohliJ..u paralclnc ohradc. Prvi stubac prikazujc sta se dc\ava u pn·om ciklu-
ciklthi.J: s':a ccttri deb pulanj,~ ;oudataka koji nwgu da raclc nezavisno. tako bi i radili.
su, Jrugi prikazuje dcsavanja u drugom ciklusu itd. qm;tpo\lav lpjuci da ncma
Opisana scma predstavlja cctvui'tl-.;tepcnu paraklnu obradu, s fazama za preuzimanj~
mswjaJ. Sivn podrucjc u prvom ciklusu za prvu instrukciju o;.nacava da jc: lHj jcdi-
ino;trukcija. ;:a pristup upcrandima. 7a r~hi o;a ALU jcdinicnm i 1.a ponovno upisivanjc
nica Lauzeta preuzimanjem prvc instrukcije. Jedan otkth:<:j takta kasnijc. tokom dru-
u rcgistre. Om je slicna parakirwj obr;~di .\a slikc 2---1-(a), osim ;to ncma fazu za dc-
gog ciklusa. registri potrcbni 1.a prvu instrukciju svoj sadrzaj su prcncli u kccvc A i
kodiranje. Za i.-'\ rsavanjc pujedinacnc itJSl! ukcije i dalje su polrebna cetiri sistemska
B. Jok jc IFU jedinica istovremeno zauzeta prcuziman.Jem druge instrukc·i.jc:. ~to pri-
ciklusa. ali je \ ai.no r~ttumcti cl~tll sv~t!.:om c:iklusu nova instrukcija zapocinje izvrsa-
bzuju dva si\ a bloka u drugom ciklusu. .~
a i:--.to..-1'-irl'niL'no sc izvr~a\ "Jl~1re i;l:-,lrukcije LavrSava.
Tokom treeeg ciklusa. prva instrukcija koristi i'I.LU jedimcu i p11!11cra.::. kce, i .'\ i ;?;
i:J: Na ,]ici -+-3-l !1lll.i:c :·.~ i hot·i;tlnlai:1•l pratili iLvrsavanj~ svake instrukcije. Za prvu
B sc pune podacima za drugu instrukciju, a istovrcmeno 'c prcu:ima tree a instrukcija. i' u prvnr11 ciklusu za ilJU radi lH_: jedinica. U drugom ciklusu. sadrzaj
Najzad. ttlkom cetvrtog ciklusa, istovremcno se radi na i"<.:tiri in:.;trukcije. Eczultali .:;;_
njenih regi:,<a:-a prenusi se na m;;gi,iJ:tle :\ i B. U trecem ciklusu. na njoj racle ALU
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.


j
ll
~\

l
t'
290 Poglavlje 4: Nivo mikroarhitekture 4.5 Poboljsanje performansi 291

Neka poboljsanja se mogu osvariti samo kroz izmenu arhitekture. Ponekad su te udvostrucuje propusni opseg memorije. Zbog toga ima smisla uvesti dva zasebna me-
izmene postupne (npr. dodavanje novih instrukcija i registara), tako da stari programi morijska prikljucka, kao sto smo ucinili u mikroarhitekturi Mic-1: svaki prikljucak
nastavljaju da rade na no vim modelima. U ovom slucaju, da bi se izvukao maksimum, ima sopstveni kes. Imajte na umu da svaki od dva kesa ima nezavisan pristup glavnoj
mora se unaprediti i softver iii barcm slari prevesti pomocu novog prevodioca koji mcmoriji.
prepoznaje i koristi novouvedene mogucnosti procesora. Danas su memorije mnogo slozenije od nasih primera, pa se izmectu kesa za in-
Mectutim, otprilike jednom u nekoliko decenija projektanti shvate daje stara arhi- strukcije i za podatke i glavne memorije mozc smestiti dodatni kes, tzv. kcs drugog
tektura potpuno iskuriscena i da sc mozc naprcdovati samo ako se pocne od nule. nivoa. U stvari, mogu postojati i tri i vise nivoa kesa, sto zavisi od zahteva postavlje-
RISC revolucija iz osamdesetih godina bila je jcdan takav proboj; druga takva revo- nih konkretnoj memoriji. Na slici 4-37 vidimo memoriju s tri nivoa kesa. Sam proce-
lucija vee lcbdi u vazduhu. U poglavlju 5 poglcdacemo jedan primer u vezi s njom sorski cip sadrzi mali kd za instrukcije i mali kd za podatke (po pravilu od 16 do 64
(lntclov IA-64 ). KB ). Tu je i kes drugog nivoa koji se ne nalazi na proccsorskom cipu, ali moze biti i
U ostatku ovog odeljka razrnotriccmo cetiri razlicite tehnike za poboljsanjc per- u procesorskom pakovanju, ncpQsredno do procesorskog cipa is njim povezan brzom
formansi proccsora. Pocecemo s tri proverena poboljsanja implementacije, a zatim putanjom. Ovaj kd je u principu jedinstven: sadrzi mcsavinu instrukcija i podataka.
preei na jcdno koje dajc najboljc rezultate kadaje u izvesnoj meri podrzano izmcna- Tipicna velicina L2 kcsa iznosi od 512 KB do l MB. Kes treceg nivoa (L3) nalazi se
ma arhitckture. Ove tehnike su: kes mernorija, predvidanje programskog skoka, na procesorskoj ploci i sadrzi nekoliko megabajta SRAM memorijc koja jc rnnogo
izvrsavanjc prcko reda uz prcimenovanje registara i spckulativno izvrsavanje. 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
4.5.1 Kd memorija drugog nivoa nalazi u kdu treceg nivoa.

Jedan od najizamvnijih aspckata projektovanja racunara ll citavoj njihovoj istoriji


bio je da se napravi takav sistcm memorije koji isporucuje operande proccsoru onom Procesorsko
pakovanje-
brzinom kojom on mo/c da ih obradujc. Nedavni veliki rasl brzine procesora nije bio Procesorski Ctp

praccn odgovarajucim ubrzanjem memorije. U odnosu na proccsorc, mcmorije de- Jedinstven


cenijama svc vise zaostaju. Kad se ima u vidu neizmerna vaznost glavne memorije, [jJJ] IL1-DI L3 kes
Glavna
tak va situacija je umnogome ogranicila razvoj sistema visokih perform ansi i podsta- memorija
l (DRAM)
kla istra/j vanja u~mcrcna na zaobilazenje problema sa odnosom izmedu brzine me- Procesorska
ploca
morije i brzine procesoreJ, koji je svake godine postajao sve veci. Kontroler Graficki Kontroler
Savremeni procesori postavljaju mcmoriji prevelike zahteve, kako u pogledu !a stature kontroler diska
kasnjcnja (pri isporuci uperanada), takn i sa C~spekta 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
Podeljeni L1 kes za instrukcije i podatke Kes na nivou maticne place (SRAM)
kasnjcnja. Na primer, tehnike paralelne obrade iskoriscene u mikroarhitekturi Mic-3
mogu se primcniti u memoriji da bi se cfikasno obractivalo vise preklopljenih zahteva. Slika 4-37. Sistem s tri nivoa kcsa.
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- Rad kesa zasniva se na dve vrste lokalnosti adresa. Prostorna lokalnost (engl.
monju sposobnu da isporuci operandc u jednom ili dva sistcmska ciklusa. spatia//ucalitv) jeste zapazanje da cc se adresarna brojcano bliskim adresama kojima
Jcdan od nacina da se ovaj problem resi jeste i kd memorija. Kao ;to smo videli je nedavno pristupano vrlo verovatno pristupati u bliskoj buducnosti. Kcs koristi ovo
u mleljku 2.2.5. kes memnrija je mala i brza i cuva najskorije koriscene memorijskc svojstvo da pripremi vise podataka nego sto sc trenutno trazi, u nadi dace oni uskoro
reci. Kada bi dovuljno vcliki prucenat putrcbnih mcmorijskih reci bio u kd memoriji, biti iskorisceni. Vrcmcnska lokalnost (engl. temporal locality) odnosi se na ponovno
efekti vnu kasnjcnje memorije drastic no bi se smanjilo.
U jednoj ud najeiikasnijih tehnika za istovremcno povecanje propusnog opsega i l pristupanje neclavno posecenimmemorijskim lokacijama. To se moze, na primer, dc-
siti s memorijskim lokacijama bliw vrha steka iii sa instrukciprna koje se ponavljaju
smanjenje kasnjenja koristi se visestruka kd memorija. Njena osnovna verzija koja
radi veoma etika~no sadrzi zaseban kes za instrukcije i za podatke. Brojne su koristi
J.~ 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-
ud ovakve organizacije, cesto nazvane podcljcni kcs (engl. split cache). Prvo, opera- i~ zaja kda analiziraju vremensku lokalnost i izbacuju one odrcdnice kojima u bliskoj
"!"
cijc s memorijom nezavisno se mugu zapoceti u svakom od dva kesa, sto efektivno proslosti nije pristupano.
•!
~~

l
....-----

288 Poglavlje 4: Nivo mikroarhitekture 4.5 Poboljsanje pnfonnansi 289

u red cekanja salje potvnlni signal jedinici za dekodiranje. Kada jedinica za dekodi- iz memorije, clckodira ih u lJVM instrukcije. pretvara ih u niz rnikrooperacija pomncu
ranje primi potvrdu. onajedinici za svrstavanje u red cckanja saljc indcks za sledecu ROM memorijc i smc.~ta ih u red cckanja za izvrsavanje. Prve tri fa~:e paralclne obra-
IJVM instrukciju. de mogu se vezati za radni tak.t putanjc poclataka, ali nece uvck biti podataka za obra-
Na ovaj nacin se niz IJVM instrukcija u memoriji konacno pretvara u niz mikro- clu. Na primer. JFU jedinica izvcsno nc moze u ;,vakom si,tcmskom cikluSL
peracija u redu cekanja. Mikruoperacijama se pune rcgistri MIR koji salju signale za snahclevati jedinicu za dekodiranje novim llYN! opkodom, zato sto se !JVM instruk-
upravljanje putanjom podataka. Medutim, postoji jos ndito sto treba da razmotrimo: cije izvrsavaju tokom vise ciklusa i red cekanja bi se prepunio.
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 CD 0 G) 0 ® ® 0
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
IFU wdinrca
E} lzvrsavanJe
Uprsivante
rozultata I Rad s I
mernorijom

MIR2 kopira sc u rcgistar MIR3, :;,adrzaj rcgistra MIR1 kopira se u rcgistar MIR2, a regi- Slika -t-36. Paraklna obrada na pruce"11·u Mic--l.
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. Pri svakmn otkucaju t·adnug takta instrukcijc sc pomeraju kroz rcgistre MIR, a mi-
Polja A i Biz rcgistra MIR1 koriste se za biranje rcgistara ciji se sadr/.aj prcnosi u lece- krooperacija na pocetku rcda cckanja kopira sc u regiswr MIR1 d~t bi zapoccla izvrsa-
ve A i 8, ali sc poljc ALU u registru MIR1 ne koristi i nije povczano ni sajeclnom kom- vanjc. Tada sc upravlpcki signali iz cctiri rcgi.-,tra MIR sire putanjom pudatab
ponentorn na putanji podataka. inicir~tjuci ratlicite uperacijc. Svaki regis tar MIR upravlp drugim dclom putanje poda-
lJ slcdec'em sistcrnskom ciklusu mikroopcracija je pres Ia u regis tar MIR2, a rcgistri taka ( dakle, drugim mikrokmakom).
koje jc izahrala pn:ncli su svoj sadr?.aj u kccve A i B. Poljc ALU instrukcijc sada se ko- u ovuj semi jc pmccsor sa upscl:nom paraklnum obradom, sto dozvoljava vrlo krat-
ri~ti 1.a upravljanje ALU jedinicom. U sledccem ciklusu njcno polje C upisace rczultatc kc k()[";tkc i visoku rrekvcnciju radnog takta . .\lnogi pruccsuri su -;ustinski prnjektovar,i
u n:gistre. Poslc toga ona L'e prcc'i u registar MIR4 i eventualno zapoceti neophodnu na ovakav nacin, naml'ito ,mi koji trcba da impkmcntiraju .'-.tariji (CISC) skup instruk-
opcraciju s memorijom. koristeCi napunjcn registar MAR (i MDR. za upisivanjc). cija. Na primer, implemcntacija Pcntiuma li knnccpcijski jc na izvcstan nacin slicn1
Poslcdnji aspckt mikroarhitckture Mic-4 (mikroskokovi) zahteva dctaljniju anali- imp!t:mcntaci_ji pmcCSPra \Jic-4. kao <tn CCIC Sl' j ~ami li\Ctiti Ll nastaVkll poglavlja.
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- 4.5 POBOL.JSANJE PERFORVIA~SI
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 Svi prui1votLtci r~tcunara volcli bi da nj iht'v i sistemi radc st,l brze. U ovom odcljkJ
jcclinici za dekodiranjc. Zbog toga racunar privrcmcno prekida rad sve dok se mikm- opis;Lccmo niz n~prcdnih tchnika Koje sc danas i'iprobavaju za poboljsanjc perfor-
skok ne razrc.~i. mansi s istcma I prvcm.rveno proc-:snra i memorije ). Zahva l_jujuci velikoj konkurenci i
Razumljivo jc da su neJ..c !JVM instrukcije, kL)je sene mlnosc na tckucu program koja v Ltda u racunarsJ..uj indtP;rriji. vrcme izmcdu P''javc novih predloga za ubrzallJC:
sku granu, VCL' ucitanc ujedinicuza dekodiranjc. aline i u jedinicu za sv rstavanje u red rada 1·acun;1ra i njilwvng ugradi vanja u rroi7vodc 1.acudujuce jc kratko. Zbog toga se
cekanja postu ona nije poslala potvrdu jer jt' naisla na mikroinstrukciju s po<itavlJc~nim idcje ll kojima cc:Jnnu 11<1-.;lavku govoriti uglavnom vee navcliko koristc u postojcc'im
bitom Guill. Da bi se guzva rascistila i sve dovclu ll red. potn.:bni Sll specijalan hardver prui;,\'()d ii11lL
i specijalni mchanizmi. ali ta tcma ne spacla u ovu knjigu. KadaJc Edsgcr Dijkstra na- Tc idcjc sc rnogu grubu svrsLlti u dvc kategonjc: pob<.'ljsanja implcmentacijc i pc-
pisao svojc cuveno pismo ,GOTO Statement Considered Harmful (Narcdba GOTO hc,lj.,anja ~lrhitd.rure. Poholjsanp implcmcntaciJe obuln a1:tjn nacine konstruisanja
smatra sc stet nom)" ( Dijkstra, 19(,t)a), nijc ni znao koliko je bio u pra vu. novih pmcc'Sl'ra ili mcmllrija !.hog J,.,)jih (c sistcm raditi hr/.c i bcz izmena postojcce
l'rdli Sill() dugacak pul ml mikroarhitcklure rvlic-1. Procc'or :'vlic-1 bio jc 'as vim arhitcJ..ture. Unaprcdiv;mJe impkmcntacijc b,~~- izmc·na arhitckture znaci da cc stari
jcdnoslavan delic hardvera, skoru potpuno softverski kontmlisan. ~die-..\ jc proccsor prng:-ami raditi llll novim racunarima ..Slll jc Ut!Jlrni kumc~rcijalni cinilac. Jcdan oJ
'
·':.'

s visokim stcpenom paralclne obrade podataka. sa sedam faza i mnogo sltlZeniJim nacina da se pclholj\a implcm,·ntacijajcste k<1risccnjc br:~t'g radnug takta, ali to nij..: i
~}
hardvnom. P;mtlelna ubradajc prikazana na slici 4-:16. pri ccmu sc bn '.levi mino'c na jcclini nctcin PuhulJ~anje perfmlll~insi. poccv;i ud pmccsora R0386, preko procesora
komponcntc ,;a slike -\-\5. Proct'sor l\lic-4 auwmat,ki unaprcd preu1ima tok bajrova 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.
- 294 Poglavlje 4: Nivo mikroarhitekture 4.5 Poboljsanje performansi 295

Direktno preslikani kes je najcesca vrsta kesa koja radi prilicno elikasno jcr se se moze pristupiti sa odredene memorijske lokacije. Kad god se pristupi nekom oc
opisana situacija moze svesti na minimum, ako ne i potpuno izbeci. Na primer. neki postojeCih redova, on azurira listu, stavljajuci taj red na prvo mesto. Ukoliko odredni-
vcoma inteligentan prevodilac moze da uzrne u obzir potencijalne sukobc u kdu kada cu valja zameniti, izbacuje se reds kraja liste- onaj kome je najrede pristupano.
u memoriju srnesta instrukcije i podatke. Treba primetiti da se opisano sukobljavanje Ako se ode u krajnost, moguce je napraviti i 2048-ostruki ke§ sa samo jednim sku-
ne bi dogodilo u sistemu s kdom podeljenim na dco za instrukcije i dco za podatke pom od 2048 redova. U njemu se sve memorijske aclrese preslikavaju u jedinstvcr
jer bi sukobljene zahteve obradivali razliciti delovi kcsa. Tako uvidamo da podeljeni skup, tako da se pri pretrazivanju adresa mora uporediti svih 2048 redova u kesu
kcs ima jos jednu prednost nad jedinstvenim: vecu tleksibilnost pri obradi konlliktnih Ohratite paznju nato da sada svaka odrednica mora irnati logiku za poredenje. Postc
mcmorijskih zahteva. 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-
Set-asocijativni kd cijalne kandidate 1:a zamenu. Odrzavanje liste sa 2048 redova zahtevan je posao, P'
Kao sto smo vee opisali, brojni rcdovi glavne mcmorije mcdusobno konkurisu za se za zamenu ne moze koristiti algoritam LRU. (lmajte na umu da se lista mora azuri
istc redovc u kesu. Ako program koji radi s kesom sa sliJ,e 4-38(a) intcnzivno koristi rati pri svakoj memurijskoj operaciji, a ne samo prilikom promasivanja ke§a). Za-
nimljivo je da u veeini slucajeva visokoasocijativni kes nc radi mnogo bolje m
reci na adresarna 0 i 65.536, sukohi ce stalno nastajati, a svako obracanjc rncmoriji
niskoasocijativnog kda, au odredenim slucajevimaje i gori od njega. Zbog toga cete
brisace i ponovo u kt:S upisivati po jedan reel. Ova situacija sc razre§ava kadajedna
u praksi retko sresti set-asocijativni kes sa asocijativnoscu veeom od cetiri.
odrednica kesa sadrzi dva iii vise rcdova. Kcs san mogucih odrcdnica za svaku me-
Na kraju, operacija upisivanja predstavlja narocit problem za kd memoriju. Kad'
morijsku adresu zove sc n-tostruki set-asocijativni kes (eng!. n-way set associlltive
procesor upisujc rcc, a rec se nalazi u kesu, on ociglcdno mora iii da azurira rcc iii de
cac/;e). Cetvorostruki sct-asocijativni kcs prikazan je na slici 4-39.
odbaci odrednicu kda. U skoro svim re§enjima kes se u tom slucaju azurira. Ali, st;
je sa azuriranjem kopije u glavnoj rnemoriji? Ta opcracija sc moze ohaviti odmah il

r·- - J1 · r n. J
Brt Valid Bit Valid BitValrd Brt Valid
ostaviti za kasnijc, kada dmtc vrt'me da algoritam LRU zameni taj red kcsa. Nije lak0

2047 fi ~.~
J1 · rT 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)
tr r n r rr T n~ 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
--y--
vecini resenja u kojima se upisivanje u mcmLJriju odiaze, tezi se da se pri promasajL
Odrednica A Odrednica B Odrednica C Odrednica 0
prilikom upisivanja podaci prcncsu u kd, sto je tehnika poznata kao zauzimanje od-
Slika -t-.19. Cetvorostruki sct-asocijativni kes. 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
Set-asocijativni kes slozcniji je od direktno prt'slikanog kda: iako se ispravna od- nacin komplikuje inace jcdnostavna sema. Zauzimanje odrcdnice ima najvise smislz
rcdnica kda muzc iaacunati i,: trazt'ne memnrijske adrese, treha proveriti n odredni- ako sc ccsto ponavlja upisivanje jedne iste iii vise razlicitih rcci u isti red kda.
ca kda kaku bi ~e utvnlilo da li jc tral:ena rcc u njemu iii nije. Bez obzira na to, Pcrformanse kda se direktno odrabvaju na performanse citavog sistema jer
iskustvo pokazujc da dvostruki i CC!VOrostruki kes rade dovoljno dobru da hi St' ispla- postoji sirokjaz innedu brzine rada procesora i rncmorije. Zbog tugaje trazenjc boljc
tilo dodatno ubganje u hardvcr. strategije kcsiranjajos uvek vruca tcma (Aiamcldccn i Wood, 2004; Huh et al., 2004
Sct-asocijativni kcs namcL'c projektantu o,vojcvrstan problem. Kada se unosi nova Min et al., 2004; Nesbit i Smith, 2004. i Sub et al., 2004).
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

U.
.......----

292 Poglavljc -l: Nivu mikruarhitekture 4.5 Pnholjsanjc performansi 293

Sve vrste kda koriste sledeci model. Glavna memorija se deli u blokove fiksne ve- BitVal1d
licine, zvane redovi kda (engl. cache Lines). Red kesa po pravilu sadrzi od 4 do 64 Adrese podataka odrednice

uzastopna bajta. Redo vise uzastopno numerisu pocevsi od nuk. tako da- s redovima Odrednica 1Po!Je Tag Podaci

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-
2047 l, l I 1 65504-65535,131040-131071,

rnorije, kontroler kda proverava da li se trazena rec trenutno nalazi u kesu. Ako se
7
nahr.i, mo/.e se odatle koristiti, bez potrebc da se pristupa glavnoj memoriji. Ukoliko
6
se rec nc nalazi u kdu. jedan red se brise, a iz memorije iii iz kcsa ni/.cg nivoa prcu- 5
zima se trazeni red koji ga zamenjuje. Postoje brojne verzije opisanc scme, ali svima 4
3 96-127,65632-65663,131168-131199
im je zajedniC·ka te/.nja da se u kesu sacuva sto vise najCdce korisc~nih redova kako 2 -t·----+-·- - - - - - - - - 1 · 64-95,65600-65631,131136-131167,
t-·

bi se povecan broj obracanja memoriji koji se mole zadovoljiti i~ ke.\a. 1 H c - - - - - - + - - - - - - - - - 1 32-63,65568--65599,131104-131135,


II I 1
0 0-31,65536 65567, 131072-131103,.

Dircktno prcslikani kd Ia)

Najjl'dnostavnija kcs rnemmija poznata je pod imcnom di1·cktno prcslikani kcs


(engl. direct-mupf!Cd cacht'). Primer jcdnostcpcnog. direktno preslikanog kesa prika-
B1tovi 16 11 3 2
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- I OZNAKA I RED I REt I BAJT I
mcru). kes rno/c ukupno da l:uva 64 KB podataka. Svaka Pdn.:dnica kesa irna tri deJa:
(b)
1. Bit Valid koji onncava da li u odrcdnici illla va;icc'ih podataka. Pri pokretanju
si~tcma, SVL~ mlrcdnice pm.LaJU ncva/ece. Slika 4-38. (a) Dircktno prcslikani kd. (h) 32-bitna virtuclna adrc"t.
..., Poljc Tag sadrzi jedinstvenu 16-hitnu vrednost- identilikatm reda memorijc
iL k()ga -,u podaci prl'ncti. 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,
3. Polje Da:a sadr/i kPpiju pudataka iz glavnc menH'rijc. Ovn polje sadr/.i jedan
a ostatak odrednice se ne dira. Ako odrednica nije va.Lec'a iii se oznake nc slozc. tt>
red 1-.c\a du/ine J2 hajta.
znaci da trazena odrednica nije u kesu i kazcmo daje nastao promasaj (engl. each.~
Ll dircJ..tno prcslikanum kc·su. mcmmijska rec se mo.:'c cuvati samo na jednom, miss). U toj situaciji se iz mernorijc preuzima 32-bajtni red kesa i smdta se kao od-
ral:no Pdrcdcnom mc·:tu. Kadajc P<J!llat:ttljcna adrc,<~ urnemuriji, pustoji samojedno rcdnica. zamenjujuCi odrednicu u kojoj se javio promasaJ. Medutim. ako je postojec':t
IJh:St<J tt kc'iu gl!t.: j.c !n..:ba Lr:viti. Ako ~-e tamu nc prnnacic. znaci daje ncma u kcsu. Za odrednica kt:Sa bila menjana od trenutka kada jc smdtcna u kes. ona se pre izbaci-
:-;mc;tanJC i prctuim:lliJC pudatakc~ iz k,·~a. adrc,a se (kil na l:ctiri Kl)[nponentc, kao na vanja mora upisati u glavnu memoriju.
siici 4-31-i(b): Uprkos slozenosti odlucivanja, pristupanjc trazenoj reci rnoze da bude veoma
l. PulJt: TAG odgmara hituvim:t Tag odredntce i1 kc~a.
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
. ., PlllJC LiNE <'/JiaCava odrednic.:u ke<a u kujllj ,;c nalaf.C podaci (ukoliko postoje
utvrdivanja (poredenjem oznaka) da li je ispravna ili nc. Tako procesor dobija rec
u kc:\u).
istovrcmeno. iii mozda cak i pre nego sto sazna da li je clobijena zahtcv:ma ree.
3. Pnl_jc WORD llLil~Jcaq kujuj sc rcCi u rcdu pristupa.
Prcma opisanoj ~emi preslikavanja. uzastopni redovi memorije smestaju se u uLa·
~. Poljc BVTE >e ['I' prctvdu nc koristi. ali aJ..o se Lrazi samo jedan bajt. ovo polje stopne redove kesa. U kes se u stvari mo/.c smcstiti ncprckidan tok ud najvisc 64 KG
on1aca\ a K<Jji I<' ru bajt unutar n.:ci. :L1 k:.:s koji '•kzbcdujc samo 32-bitne reci, podataka. Medutim, dva reda cije se adrcse razlikuju za tacno 64 KB (65.536 bajtova)
t>VD polje c'c U\·Ck biti tl. iii J:a celobrojni umno:i'ak ovog broja; ne mugu se istovremeno preneti u kd (jer imaju
K~tda pmcc-.<H. gcnc·ri~c: adrcsu u mc:ntmiji, ilar,hcr nd njc dobip ll bitova polja istu vrednost u polju LINE). Na primer, ako program pristupa podacirna na lokaciji X.
ur;E i lt•ll\ti ih /a i;~dcLiran]C kesa Ja bi prona<au JCUllll od 204:-\ odn;dnica. Ako je a zatim izvrsava instrukciju za koju 'ill potrcbni podaci sa aclrcse X+ 65.536 (ili nek~
udre.lni.:a 'a/.:ca, p•Jrcde s.c poljc TAG aJrcse u mcmuriji i pllljc Tag u odrednici kesa. druge adrese unutar tog rcda), instrukcija cc izazvati ponovnn ucitavanjc odrednice,
L'kulij.;,., se ov::~ pulja c,Jnzc. udrednica kcsa sadr/i tra?.enu rec, a takva situacija se 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.
Poglavljc 4: Nivo mikroarhitckture 4.5 Poboljsanjc performansi 299
298

u stanje u kojcm jc bio kada je obavio pogrdan skok. Oba resenja su komplikovana Ako tabela proteklih dogadaja ima, recimo, 4096 odrednica, instrukcije za grananje
i neophodna jc profesionalna hardvcrska i softverska podrska da bi radii a ispravno. na adresama 0, 163R4, 32768, ... sukobljavace se. slicno kao i kocl ke:ia. Resenje jc she-
Ako se naidc na drugo uslovno grananje pre nego sto se sazna da li je prvi skok no kao u slucaju kcsa: moguce je primeniti dvostruke, eel vorostruke iii n-tostruke aso-
ispravno predviden, tada zaista postaje gusto. cijativne oclrednice. Slicno kdu, granicni slucaj je jeclinstvena n-tostruka asociptivna
odrcdnica za koju je potrebno pretraziti citavu tabelu (potpuna asocijativnost).
Dinamicko predvidanjc programskog skoka Uz dovoljno veliku tabelu i dovoljan stepcn asocijativnosti. ova sema uglavnom
radi dobro. Medutim, jeclan problem se si~tematski i dalje javlja. Kada programski tok
Tacno predvidanje jc, naravno, veoma vaL.no, posto omogucava da procesor radi
konacno izade iz petlje, skok na njenom kraju bice pogresno prcdviden i, sto je gore,
punom brzinom. Zhog toga sc brojna tekuca istrazivanja have poboljsanjcm algorit-
to ce promeniti bit u taheli proteklih clogadaja tako cia ukazuje da ,ncma grananja".
ama za prcdvidanjc programskih skokova (Chen eta!., 2003; Falcon eta!., 2004; Ji-
Kada program sledcci put ude u tu petlju. skok na njenom kraju hicc u prvom ciklusu
menez, 2003. i Parikh el a!., 200.f ). Jedan od pristupa je da procesor odrzava tahelu
petlje pogre:ino preclvic!en. Ako 'ie petlja nalazi unutar drugc petlje iii u okviru cesto
proteklih dogadaja (pomocu specijalnog hardvera) ida u nju belel:i obavljcnc uslovne
pozivane procedure. ova gre§ka se moze cesto clogadati.
skokove. tako da ih moze iskoristiti kacl do njih ponovo dmte. Najjcdnostavnija ver-
Da bismo sprccili ovakvo pogresno preclvidanjc, odrednicama tabele mozlemo cia
zija ovakve seme prikazana jc na slici 4-4l(a). Tabela protcklih dogadaja sadrzi po
pruzimo i drugu sansu. Prema ovoj metocli, hit za preclvidanjc menja vrednost samo
jednu odrcdnicu ~:a svaku instrukciju uslovnog grananja. Odrcdnica sadrL.i adrcsu in-
nakon dva uzastopna pogresna predvidanja. U takvoj situaciji moraju postojati dva
strukcije za grananje i bit koji saopstava jc li bilo programskog skoka posleclnji put
hita za prcdvidanje u tabeli protcklih dogactaja (jedan za ono sto se ,prctpostavlja" cia
kadajc instrukcija izvrscna. Pomocu ovakve scme prcdvida se da cc programski tok
ce se desiti i drugi za ono sto se stvarno clogodilo posleclnji put) kan na slici 4-4l(b).
ici istim putem kao i prethodni put. Ukoliko se pokazc cia jc prcdvidanje pogrdno,
Ndto clrugaciju sliku dobijamo ako algoritam posmatamo kao masinu s cetiri ko-
menja se hit u tabeli proteklih dogadaja.
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
BttOVI?a
grananja·'. Ako to predvidanje bucle pugresno. ona ce preci u stanje 01, ali c~e i slecleei
B1t V<Jiid
Adres<l
Grananp;(
nem<J \JriHldnJa
!
j
B1t Valid
BIIOVI7<l
B1tVal1d
AdresJ
predvidi:lrlJP-
j put dati predvictanje ,nema grananja". Samu ako i ovo predvidanjc bude pogrc5no.
Odredmcn t 1nstrukc1]P.
za \JrJrHlllJe/oznakil T Odredn1ca
predvidilllJI:!
za grani:lnJe/omaka ,
mstrukcl)e
zagranilnJe/ozni:lkil
Adrf!Sil
odred1Sta
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 jc~ 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-
Ia) lbl lei mali, po~to svaki red u tabeli iii kesu predstavlja specificno stanje u kt>me automat
Slika 4-41. (a) Jcdnohitna istorija g:rananja. (b) Dvobitna istorija g:rananja. (c) Prcsiikavanje moze da se nade, s clobro dctinisanim prelazima u konacan skup drugih stanja. Model
izmcclu adrcsc instrukcijc za grananjc i adrcsc odredista. konacnng automata navcliko sc koristi u svim aspcktima projcktnvanja hardvera.
Dosad smu prctpostavljali da Je odrecliste svakc instrukcijc za uslovno g:rananje
Tabela proteklih dogadaja mozc se organizovati na vise nacina. To su u stvari nacini po;:nato. najccsce kao eksplicitna adresa na koju treba skociti (postoji unutar same in-
za organizaciju kesa. Razmotrite racunar sa 32-bitnim instrukcijama kojc su poravnatc strukcije) iIi kao rclati vno rastojanje od tekucc instrukcije I tj. kao oznacen ceo broj
na granici reci tako cia -,u elva najrnanje znacajna bita svakc memorijske adrese 00. Uz koji treba dodati programskom brojacu). Tak va prctpostavka jc cesto opravdana, ali
direktno preslikanu tabclu proteklih dogadaja koja sadrzi 2" odrednica, iz instrukcijc nekc instrukcijc za uslovno grananje racunaju adresu odredista na osnovu vrednosti
za grananje mozc se izvuci n+2 najmanjc znacajnih bitova i pomeriti udesno za dva bi- registara. (:ak i ako konacni automat sa slikc -+-42 tacno prcdvicli granu kojnm treha
ta. Takav n-bitni broj moze se iskoristiti kao indeks za tabelu protcklih dogadaja, gde da ide programski tok. od toga ncma koristi ukoliko nije poznata adresa odredista.
se proverava da li takva adresa postoji. Kao ni kod kda. ni ovde nema potrehe da se cu- .f Takva situacija :-:c mozc prevazici aku se u tabcli proteklih dogactaja i'uva i adresa na
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- ~~!~ 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
vida pomocu bita La preclvidanje grananja. Ukoliko jc oznaka adresc pogre:ina iii je !i? skocio na adresu 4000, i ako hit za preclvictanje kaze ,grananje". radna prelpostavka
~
cela odrcdnica neispravna (bit Valid je 0), u pitanju je promasaj, kao i kod kesa. U tom cc hi ti da sc ponovo :-:koci na adresu 4000.
slucaju moze sc naknaclno iskoristiti pravilo skoka unapred (unazad). ~~
~
,i,
!.

i_
Poglavljc 4: Nivn mikroarhitekture 4.5 l'oboljsanjc performansi 297
296

4.5.2 Predvidanje programskog skoka 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-
Kod savrcmcnih racunara u velikoj meri sc koristi paralelna obrada podataka. Tak va posrcdno iza njc. Zbog toga veliki broj racunara koji koristc paralelnu ohradu (npr. Ul-
obrada na slici 4-35 ima sedam faza; u najsavrsenijim racunarima, obrada se ponckad traSPARC Ill) izvrsava instrukciju koja sledi instmkciju za obavezan skok, cak i kadz
obavlja u dcsct faza pa cak i vise od toga. Paralelna ohrada daje najbolje rczultatc kada to nema logickog smisla. Situacija posle programskug skoka naziva se vrcmenski pro·
je kod Jine~mm, tj. kada jcdinica za preuzimanje podataka mozc redom Ja cita reci iz cep (engl. delay slol). Pentium II-i racunar koriscen na slici 4-40(b)- nemaju ovo svo-
mcmnrije ida ih ;alje jedinici za dekocliranjc znajuci unapred sta joj jc potrchno. jstvo. ali sc opisani problem rdava cesto na mnogo slozeniji nacin. Prevodilac koji uz
Jedini problem od kojcg pati opisani moclcljcstc to ~to nije ni najmanje reali>tiean. prevodenje radi i optimizaciju koda pokusace Ja prona1.te ncku instrukciju kako bi je
Programi nisu sastavljeni od linearnih nizova koda. Oni su prepuni skokova. Raz- smcstio u vrcmcnski proccp, ali ccsto nema nista korisno na raspolaganju, pa jc
motritc jednostavnc naredhe sa slike 4-40(a). Promenljiva i se poredi s nulom (sto jc prinu(1cn cia u njcga ubaci praznu instrukciju NOP. Na taj nacin c'c progam raditi isprav-
verovatno najce~ca pro vera u praksi ). U zavisnosti od rewltata poredcnja, drug a pro- no, ali ce biti veCi i sporiji.
mcnljiva, k, dohija jednu od dve mogucc vrednosti. 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
if (i == 0) CMP i.O , uporedi i sa 0 mnogo kasnijc saznaje odaklc da cita slcdccu instrukciju. Prvi racunari koji su prime~
k = 1; BNE Else ; skoCi na Else ako nisu jednaki njivali paralclnu obradu poclataka zastajali su dok ne postane jasno da lice program
else Tllen: MOV k, 1 ; stavi 1 u k pwmcniti tok iii nccc. Zastajanjc tokom tri iii cetiri cik.lusa pri svakom uslovnom skoku
k = 2; BR Next , obavezno skoci na Next (naroC·itu aku su 20% instrukcija uslovni 'kokovi) potpuno unazaduje pcti'ormanse.
Else MOV k,2 ; stavi 2 u k Zhog toga racunari, kada naidu na uslovno grananjc, po pravilu pokusavaju cia
Next: prcdvidc cia li cc do njcga doci iii neee. Bilo hi lepo kada bismo u slobodnu PCl utic~
nicu mogli da utaknemo kristalnu kuglu i jednim potezom rdimo predvidanjc, ali taj
(a} (b)
ptistup dosad nije urodio plodom.
Slilm .t-41). (a) De lie progrcuJJCL ihJ 0i.J•-·gm prnud na upi.ti '"cmhkrskijaik. Posto ncma takve ,peri fcrijskc komponente", za predvidanje su smisljani razliciti
nacini. Jcdanjc sasvimjednostavan: prctpostavlja se cia ce svi uslovni skokovi unazad
Moguc prcvod r1V11g programa na ;N.:mhkrski jc1ik pribzan jc na slici 4-40(b).
hili i:l'l'dcni, ada <;Vi uslovni skokovi unapred nel'e hili izycdeni. Prvi dco pretpostav~
0 ;tsembicr--J.<Jlll jc:;.iku govorict'lll<' kasnijc· u <>V11j knJizi i njegovi detalji sada nisu ke pudlogu nalazi u tome stu se skok unazad ccsto nalazi na kraju programskih petlji.
bitni, ali cc sc. u ;_a, i~nusti Pd racunara i prLI.r'diuca, pri prcvodcnju programa sa
Petljc se po pravilu izvrsavaju vise puta, pa postuji velika vcrovatnoca cia c'e sc pm-
,]ike 4-40(al p<Jja'.Jti J.J,d ·,!Jean onom na siici 4-40(\1). Pna instrukc:ija poredi vrcd-
grarn s njenog kraja vratiti na njcn pocctak.
nost pmmcnlji vc i ' nulnm. Dru:;a na laie 'ik(Jk na oznaku F! \1: ( pol:c·t ak mired be else)
Drugi deo prctpostavke jc pomalo klimav. Neki skokovi unapred ddavaJU se kad:t
ukuliko vrc·dnu'il pmmc·tdjivc: i nijc 0. Trc·c'.l instruk<:ija dndcljuje vrcdnust I pro- nastane soft\'crska grcska (npr. kada ne mo:l.e da se otvori datotcka). Grdke se, medu~
menljivuj k. (ct vrl.t instrukc·ij·_t 'Ltla;l.c· :;k•Jk na slcdcc'u ncm::dbu. f'r.:vmlilac jc tu pa- tim, retko dogadaju, pa se vccina programskih skokova u vezi s njima ne obavlja.
metno ubacio c•lnaku Sen. t;Jku da po . . tu_,ii mcs!<' na koje trcba '-.kuciti. Petom Naravno, postoji mnogo skokova unapred koji nernaju vcze sa ohradorn grc:Saka, pa
instrukr:iJO!ll ~c prnmc:niii'.rlj k dud.'iJUJC vrednusl .2. uspdnost predvidanja u ovum slucaju nijc ni priblizna onuj kod sJ...r1kova una!,ad.
Ovde tr;:ba zapMili da ,u 1hc ud pet i1:stnt~cija sk,,kovi. StaviZc:. jcdna od njih.
lako bas n~ obara 'nogu, navedeno pravilo jc ipak holje ni nd ccga.
BNE, usluvni jc· s~.. ,,k 1. c;kPk k<lji sc '>havlja samu ako .Jt' ispunjen ;.adati uc;lov. uovom
Ako sc programski tok pri grananju ispravno preclvidi. vise ne trcba nista da se ra~
sluC:aj u. akn dva opcramb u prctl:urlnnj narcdbr C1\IP ni su jctlnaki). '\iaj< !u 7.i nit. linear-
eli. lzvrsavanje se nastavlja na ciljnuj adrcsi. Pmblem nastajc kada sc predvicli pogre~
llclg kuda u ov,lln primcru sadrzi J1 c: inw·ukcijc. Zatn jc 11 ovom c;]uC·aju vcuma tc;kn
sna programska grana. Otkriti ispravan put i otici u tom pravcu nije tt:Sko. Tdko je,
preu7ctl in:-trrJkc·ije \·c:!ikum bri.!nc•m d:.t hi ·,e (lh;t\ ijala p:traklna obr:1da. meuutim, ponistiti dejstvo instrukcija koje su vee izvrscnc.
U prvi llLJh hi 1nogln iz~lcd~~li L!a oh~~v::;ni :-·:1-._('ku\'i ··- k.Ju onaj u in\1ruk.ciji BR Next Postojc dva nacina da se ovo rt.:Si. Prvi je da ;,e dopusti izvrsavanjc im.trukcija prt:~
na slici +--\O(h) -ni.c,u pn>hkn•:rtJC·ni. f'h i--.raiu krajc:va. n..:ma dilcme o tnme kuda trc- uzctih poslc prcdvidcnog usluvnog grananja sve clok on~ nc pokusaju da izmcne sta~
ba Ja 1ck pr,•gr:un,ki tr<..:. /a\t,J jc:dinica /a pr·cu;:illl:lllje nc hi na'-.tavila da ul:itava in- njc racunara (tj. dok nc pokusaju da 'mestc podatkc u registar). Umesto da im sc
<;trukc·i.J'-' s ciijnc ;tdrcsc ( n1c:o-ta 11,1 kujc '>C skal-c' 1·) dozvoli da obrisu pustojcce stanjc rcgistra, njihova vrednost se smeiita u (tajni) pri~
Pwhkm kli u s::nH•_i prir11di p:u·;dc:!nl' uhradc pc,datak:t. Na slici -\-_'\5, na primer. vi-
Hemeni regis tar i kopira u zvanican regis tar t~k kada se sazna da li jc predvidanjc bilo
di:nrl da c;c instrukciJ<' ,Jckr•diraju u drusr·'.i Lui. T<~!..o Jl1dinica /.a prcuiimanJC trcba da ispravno. Drugi nacin je cla s~ vrednosl svakog registara za koji postoji sansa da bude
Ddiltci o~_b!-..k ..!a prctiLI11C ,iCLkcu inslruJ...c:ijll pre nego ;w s:11:na kab u jc instrukci.Ju ohri,an (npr. u tajnmn privrcmenom r~gistru) zabcldi, tako da sc racunar moze vratiti
II"""""
302 Poglavljc 4: Nivo mikroarhitckture 4.5 l'oboljsanje pcrfnrmansi 303

Niz izvrsavanja iz naseg primera prikazan je na slici 4-43. U prvoj koloni je redni 3. Ako je u tokuupisivanje u registar rezultala, ne izdavati instrukciju (zavisnost
broj ciklusa, a u drugoj broj instrukcUe. U trecoj koloni je dekodirana instrukcija. tipa WAW).
Cetvrta kolona saopstava koja se instrukcija zadaje (najvise dve instrukcije po
ciklusu). Peta kolona saopstava kojaje instrukcija zavrsena. Imajte na umu da u ovom Registri ciji je sadrzaj II Registri u koje su upisane
procitao vrednosti i
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 0 TT'l':•_c6[7!
R5~RD+R1 -~ -t_-_- ~I~!~
1 1l-r==l
-~ ~-t ~ ~ 1: -
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
I- , ·1 :1! · •
R6~R1+R4 I 3 I 2j1 I 11 1 1
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- ---J___ --}1H-~
1_ i-~ 1 1~ ~ 1 -.

ll ,
gis tar cija vrednost jos nije izracunata, tekuca instrukcija sene moze izdati i procesor
I
: 3 1 I11 I 11 I I
f ~ -h~-~ -~-~-1. ~-
2 I 1 I

n
I 1 I! I
mora da zastane.
Koriscenje registara praticemo pomocu urcdaja nazvanog scmafor s rczuitatima 1

.~
1 i
1-~-~-
, __ ,_ '., _L_
I -
--1
'.

~ 1--1 _
I . I -I

II
·-- _j.__
(engl. scoreboard), koji je prvi put ugradcn u prncesor CDC 6600. Ovaj semafor ima 1
mali brojac za svaki rcgistar, koji bele7.i koliko je puta taj registar koriscen kao izvor
6
- -- i 2 1_,_ : 1 _1_1_1 .

za instrukcije koje se trenutno izvrsavaju. Ako se, recimo, istovremeno moze izvrsa-
7
8 i 1- f-1_!-1- j - t1- I[_ - I
-~---
I ~- · I 1

·l :[, -l-1- r--fi - - : --~i.--


vati 15 instrukcija, bice dovoljan i 4-bitni brojac. Kada se it.da odredena instrukcija, --- ! . : - .. -i-
9 1 1 I 1 I i I
uveeavaju se vrednosti brojaca za njenc registre sa operandima. Kada se instrukcija 7
I R'·"''"' .
zavrsi, vrednosti brojaca sc umanjuju.
Semafor ima i brojace koji belcie korisccnje odredisnih registara. Posto je u jed- 1-
,
6- -r
--· -f · J_ ,
1 -l-1 - - .'.- I -~i
-~
t'
1 r

nom trenutku dozvuljeno samo jedno upisivanje. ovi brojaci mogu da budu jednobit-
7 I I1 i ' ! i 1 I
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
I
, f ~ i . I }- - ~1_h l
,_ -- -~ _L , -r-.
ne bi bila izdata instrukcija za koju nema raspulozive jedinice. Zbog jednostavnosti :1 i ! i 1

~- ~
cemo pretpostaviti da je funkcionalnajcdinica uvek raspoloziva, paje necemo prika- 7
zivati na semaforu. 8
Prvi red na slici 4-43 prikazuje instrukciju I I (instrukciju I) koja mno/.i sadrzaj re-
t 1 I' :
gistara RO i R1. i rezultal smdta u registar R3. Posto nijedan od ovih registarajos nije
17
18 8
f I -,__
j__ l_j_ --- :
koriscen, instrukcija se izdaje i semafor se azurira. odrahvajuci cinjenicu da su sadr-
Slika -1-43. Superskalarnt procesor koji instruh.cijc izdaje i zavrsava progamiranim rcdosledom.
~aji 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
Vee smo se susreli sa zavisnoscu tipa RAW (citanje posle upisivanjaJ. tj. kada in-
cita sadrzaj registra R3 sve dok se instrukcija 11 ne zavrsi. Poslo se radio mnozenju.
struk.cija treba da upotrebi rezultat prethodnc instrukcije koji jos nije raspoloL:iv. Dru-
instrukcija ce biti dovrsena prcd kraj cetvrtog ciklusa. Vrednosti semafora prikazane
gc dve zavisnosti su manje ozbiljne. To su u stvari sukobi oko izvora podataka. lJ
u svakom redu odrazavaju njegovo stanje nakon izdavanja instrukcije iz istog reda.
zavisnosti tipa WAR (upisivanjc posle citanja), instrukcija pokusava da obrisc:
Prazna mesta oznacavaju vrednost 0. sadrzaJ registra ciju vrednost pn:thodna instrukcija mu/.da nije jos potpuno iskoristila.
Posto je racunar iz naseg primera superskalaran i moze da izdaje dve instrukcije po
Slicnaje i zavisnost tipa WAW (upisivanje poslc upisivanja). Ove zavisnosti sc cesto
sistemskom ciklusu. tokom prvog ciklusa izdaje se druga instrukcija 11:2). Ona sabira
mogu izbeei ako druga instrukcija svoj rczultat smesti negde drugde (mozda privre-
sadr?aj registara RO i R2 i rezultat smdta u registar R4. Da biste saznali da lise ova in-
mcnoJ. Ukoliko ne postoji nijt:dna od tri navedenc zavisnosti i potrcbna funkcionalna
strukcija moze it,dati, primenjujete sledeca pravila: jedinica je na raspolaganju. instrukcija se izdaje. U ovom slucaju instrukcip !:2 koristi
1. Ako se ncki operand trenutno upisuje, ne izdavati instrukciju (zavisnost tipa registar (ROJ ciji sadr?.aj upravo koristi tekuca instrukcija. ali je O\O preklapanjc do-
RAWl. zvoljcno. pa se instrukcija 12 izdaje. Slicno tome, tokom drugog ciklusa iLdaje se in-
"' Ako se cita sadrzaj registra s rezultatom. ne izdavati instrukciju (zavisnost strukcija 13.

I,. tipa WAR).


1~
li;
l.
~
'· 300 Poglavljc 4: Nivo mikroarhitekture 4.5 Poboljsanje pcrformansi 301

Grananje GrananJe
Na kraju. poslednja tehnika z.a predvidanje zasniva se na snimanju prntila prograrna
Nema grananja
(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
Nema grananja
iz memorije pre ncgo sto su potrehne da hi ih iskoristila jeclinica za dck<Jdiranje. Je-
dinica za dekodiranjc prosledujc dekodirane instrukcijc oclgovarajucuj funkcionalnoj
Slika "-"2. Dvohitni kunacni automat 1.a predvidanjc grananja. 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-
Drugaciji pristup predvillanju grananja nalaze da se beldi da li je bilo program-
visno od toga sta runkcionalna jedinica mo/.c da uradi.
skog skuka u poslednjih k izvrsenih instrukcija za uslovno grananje. nezavisno od
Naravno, organi.cacija racunara ce biti najjednnstavnip ako se sve instrukcije
toga koje su instrukcije u pitanju. Ovaj k-bitni broj koji sc cuva u pomerackom re-
izvrsavaju redom kojim su prcLuete (pretpostavimo za trcnutal-- da alguritam 1.a pred-
gistru za istoriju grananja (engl. !mlllclz hi.1·tot)' shiji register) poredi se paralelno sa
viLlanjc grananja nikad nc grt:Si). Medutim. izvrsavanje instrukcip tim rcduslcdom ne
svim odrednicama tabele proteklih dogadaja pomocu k-bitnog kljuca i ako se nadc
daje uvck najbolje pcrfnrmanse zbog eventual nih zavisnosti izmcdu njih ..'\ko jc 1.a
slaganje. koristi se mlgovarajucc predvidanje. Pmnalo izncnadujttl'e, ali ova tehnika
neku instrukciju potrdma vrcdnost koju izracunava prcthodna instrukcija. druga in-
radi sasvi m dobro. 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
Staticko predvidanje programskog skoka druge vrstc zavisnosti. kao sto Cc'lllLl se uskuro uveriti.
Sve tehnikc za predvidanje grananja prugrama o kojima smo dosad govorili bile su Pokusavajuc'i da prcva;:idu m ai-- ve prublcmc i da o,;tvare h,;Jj,~ pcrfunnansc. ncki
dinamicke, tj. koriscene su tukom izvrsavanja programa. One sc prilagmlavaju trcnut- procesmi dopu.:;taju programu da preskoci zavisne instrukcije. kako bi do~~m do in-
nom ponasanju programa. stu jc do bro. Njihova losa strana jc to sto zahtevaju skup. strukcija koje ni,u /.avisnc. Ne trcba poscb11u nagbsa\ati da interni al_:':l'ritam ;a
spccijalitovan hardver i povecavaju slozenust cipa. raspPredi,·,mjc instrukcija mora dati isti r-ezultat bo da jc' pn 'gram il\T~en onim rc-
Drugaciji pristup sc svodi na traL:enje pumoci od prevodioca. Kada prevodilac dorn kPjim jc: i pi ,an. Sacla CC!lhl na jed nom j:rimeru dct~!:jnO prikazati bkP t'unkL·iu-
naide na ovak vu naredbu nise preurelknjc rcdusleda izvrsavanja instrukcija.
Da bismo ilu:-.trov~t!i primdu pmblcma. poci cemo nd racunar~! koji lt\Ck i;dajc' in-
for (i = 0: i < 1 000000; i++) {.. }
..;trukcijc' prugramiranim rcdoslcdom i /.ahlna cia sc: unc: tim red<hkdclill i izvr;av~Jju.
on vrlo dobro zna dace skok na kraju petlje skoro uvek biti obavljen. Kada bi posto-
Znacaj drugog 1.ahtcva uhr1c1 ce pnstati jasan.
jao nacin da sc to saopsti hardveru. izbegli hi se brojni problemi. Racunar iz nasc:c: primera imJ osam rcgistara koji su dostupni pmgrameru (registri
Jako to spada u izmene arhitekture (a ne samo u nacin implementacije), ncki racu-
od RO du R7J. Sve aritmetick.: 'n..;trukcije knristc tri reg1stra: dv;1 7a Pperandc i jcd~m
nari, kao ;to je UltraSPARC Ill. osim uobicajenog skupa instrukcija (potrebnog za
za rczult~lt. kau na r~1cunaru l'vlic--L Pretpthtavi·~'cnHJ da iL''r~:l\~uJjc im.trukL·ijc \.,.uj~iJC
kompatibilnost sa starijim racunarima) imaju jns jedan skup instrukcija za uslovno
dekudirana u cikiusu 'l!:tp<'Cinjc u ciklusun+ I. Zajedn<Jstavnc in ...;truh'i.Jc. kao 'tD ,u
grananJe. lnstrukcijc iz drugog skupa imaju i hit preko koga prevodilac muze da ukaze
sahiranjc iii oduzim:tn.Jc. upi.,innje n:zultata u ocln:disni rc:.c:israr obavl.Ja 'e pri kraju
da cc prema njegovum misljenju skok biti obavljen (ili da neL'e biti obavljen). Kada
ciklusa n+2. 7~t ..;loienije in:-.trukcijc:, btl ;;ro jc: mnn7.enjc. upisivanje ..;e ,,ha\ lj~1 pri
naide na jednu od ovakvih instrukcija. jedinica La preuzimanje radi tacno onaku kako
kraju ciklusa n+J. Da hi primer hiu reaiisticni.Ji. dopthticc:mo J~t jcdi:1ica !'a dc;..,.odi-
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 ranje (_)bracluje do d\c ilbtrukcijc' ptl si~:tenbkom ciklusu. Komercij:l!ni supcrskalarn1
proccscri cc.slc' ohavlj~:ju cctiri iii C·ak sesl instrukcija pu ciklusu.
:~~t~
.,._
,":'•~

I
l
Poglavlje 4: Nivo mikroarhitekture 4.5 Poboljsanje pcrformansi 307
306

u instrukciji [8 ponovo koristimo preimenovanje registara. Ovoga puta regis tar R1 zbirp ar = 0; zbirpar =0;
postaje S2 tako da sabiranje mozc poceti pre nego sto sc registar R1 oslohodi, pred
zbirnepar = 0;
kraj sestog ciklusa. Ako se ispostavi da rezultat ovoga pula stvarno mora da bude u re-
i = 0;
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- while (i < granica) {
gistra koji stvarno sadrzi tu vrednosl. U svakom slucaju, sabiranje iz instrukcije 18 tre- k;::; i * i * i;

ha da pocne ranije. if (((i/2) * 2) == i)


Na mnogim stvarnim racunarima, preimenovanje registara je cvrsto ugradeno u
zbirpar = zbirpar + k;
organizaciju. Postoje brojni tajni registri i tahela koja preslikava rcgistre vidljive pro-
else
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- zbirnepar = zbirnepar + k;
medu imena RO i jednog ml tajnih regis tara. Ta veza se ccsto mcnja tokom izvrsavanja i = i + 1;
cla hi se izhcgle zavisnosti.
Ohratitc paznju na cctvrtu i petu kolonuna slici 4-44; vicii se da instrukcijc nisu iz- (a) (b)
davane programskim redosledom, niti su tim redoslcdom zavrsavane. Zakljucak ovog
primcra jc jcdnostavan: zahvaljujuci prekorednom izvrsavanju instrukcija i preime- Stika 4-45. (a) Dco programa. (b) Odgovarajuci graf osnovnog bloka.
novanju registara, uspeli smo da progam uhrzamo dvaput.
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-
4.5.4 Spekulativno izvrsavanje hove instrukcije LOAD prerncste na vrh petlje, pre izracunavanja promcnljive k, da hi
U prethodnom odeljku predstavili smo konccpt poholjsavanja performansi kroz svoje izvrsavanje zapocele ranijc i tako ohezbedilc vrednosti promenljivih u trenutku
preurcctcnje redosleda izvrsavanja instrukcija. lakn to nismo i~:ricito napomcnuli, kada buciu potrehne. Naravno, u svakom pojcdinacnom ciklusu petlje hice potrcbna
vazno je hilo prcuredenje rcdosleda instrukcija unutar jedinstvenog osnovnog bloka. 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
Sada je prilika da to detaljnije ohjasnimo.
Racunarski programi sc mogu podeliti na osnovne blokove (engl. busic hlocA.s). rnozda isplati. lzvrsavnJe koda pre nego sto se zna da li je on uopste potreban zove se
pri cemu se svaki usnovni blok sastoji od linearnog niza koda, s jcdnomulanwm tac- spckulativno izvrsavanjc (engl. speculative execution). Za koriscenje ovc tehnike
kom na vrhu i jednom izlaznom na dnu bloka. Osnovni blok nc sadrzi upravljacke potrehni su podrska prevoclioca i harclvcra, kao i izvesna prosirenja arhitekture. Pre-
,trukture ( npr. naredbc if iii while). tako da njcgov prcvod na masinski jczik ne sadrli uredenje redosleda instrukcija izvan granica hlokova n<yccsce prevazilazi rnogucno-
grananje. Osnovni blokovi su medusohno povezani upravljackim narecihama. sti hard vera, pa zato prevodilac mora cia eksplicitno prernesti instrukcije.
Program ovakvug obiika mole se predstaviti usmcrenim grafom (slika -1--15). Uza spckulativno izvrsavanje javljaju se ncki zanimljivi prohlemi. Kao prvo,
U prngramu se izracunava zbir kubova parnih i neparnih celih brojeva do oclrec1cne sustinski je vazno da nijedna od spekulativnih instrukcija ne generise neopozive rczul-
granicc i zbirovi se sme,;;taju u promenljivc :hirpar i :hirnef'ar. lJnutar svakog osno- tate jer se kasnije moze ispostaviti da instrukcija nije ni trehalo cia sc izvrsi. Ako pogle-
vrlllg hloka, tchnike prcuredivanja rcduslcda rade sasvim clnbro. damo sliku 4-45, zakljucujemo da je u redu da se preuzmu promenljive zhirpar i
Problemjc to sto su osnovni blokovi uglavnom kratki i izmcdu njih nerna Jovoljno z.himepur. daje takode u redu da se izvrsi sabiranjc cim vreclnost promenljivc k bude
paralclizma da bi se efikasno iskmi,tila. Prema tome, sledeei korakjc da se omoguci na raspolaganju (cak i pre naredhe if), ali da nc hi hilo u redu upisati rezultate u merno-
prcuredivanje instrukcija izvan granica hlokova kako hi se iskoristile propustcnc pri- riju. U slucajevima slozenijeg koda, hrisanje registara koje obavlja spekulativni kfld
likc ;:a izdavanjc instrukcija. Najvise hi sc dohilo kada bi sc neka potencijalnu spura (pre nego sto se sazna da li je taj k6cl potrcban) obicno se sprccava tako sto se prei-
operacija u graru pomerila nagore tako da njeno izvrsavanje zapocne ranije. To bi i mcnuju svi ociredisni registri koje koristi spekulativni kflcl. Na taj nacin sc mcnja stanje
mogao biti slueaj sa instrukcijom LOAD. sa instrukcijama 1.a rad s brojcvima u forrnalu samo privrernenih regis tara, pa nema nikakve stete kada se kasnije ispostavi da je k6d
I
pokrctnog zarc!,a iii cak s pocetkom dugackog niza zavisno,ti. Premestanje koda u suvisan. Ako jc u pitanju ki'Jd koji je stvarno potreban, privrcmeni registri se kopiraju
grafu in1ad grananja zove se podizanje (cngL hoisting). 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.
,......
Poglavlje 4: Nivo mikroarhitckture 4.5 Poholjsanjc pcrformansi 305
304

Sada dolazimu do instrukcije 14 koja treha da pristupi registru R4. Nazalost, u tekucu konstrukciju sernafora tone bisrno primetili. Zbog toga moramo da prosirin.o
trecem redu vidimo da sc u registar R4 upravo upisuje vrednost. To maci da postoji semafor tako da bele.l,i i upisivanje koje obavljaju preskocene instrukcije. To se moie
zavisnost tipa RAW. pajedinica La dekodiranjc Lastaje dok registar R4 nc postane ras- uraditi pomocu dodatne mape bitova, s jednim bit om po registru koji ce registrovati upi-
poloziv. Tokom Lastoja ona ne uzima instrukcije iz jedinice w prcuzimanje. Kada 'e sivanje kojc police od zaustavljcnih instrukcija. (Ovi brojaci nisu p1ikazani na slic1.)
interni bakri jedinicc za preuzimanje napune. i ona prestaje da preuzima instrukcije. Sada pravilo za izdavanje instrukcija trcba prusiriti tako da se sprl"ci izdavanje instruk-
Treba istaci da se slcdeca in,trukcija programa (15) ne sukobljava ni s jednom tc- cije cije operande treba da obezbedi prethodna. prcskoi'ena instrukcija.
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 Registri ciji se sadrzaj cita Registri u koje se upisuju i
vrednosti
redosledom. 1I 2
; Ciktu~ I# Dekodirana lzdata -~ z;~~sena ;3 4 6 7 0
Pogledajmo sada sta se dogada tokom treceg ciklusa. lnstrukcija !2 (sabiranje --
1 I 1 R3~RO'R1 1 I 1 i
dva ciklusa) zavrsava se pri kraju treceg ciklusa. Nazalost, ona se ne moze zavrsiti 2 R4~RO+R2 2 1 ! 1
L -t
( i registar R4 tako osloboditi za instrukciju !4 ). Zasto? Zato stu smo se unapred dogo- 2 R5~RO+R1 3 2 1 1 1 1
vorili da 'e instrukcije moraju l.avrsavati prograrnskim redosledom. A zasto smo sc R6;R1+R4 2 1 1 1 1

tak.o dogovorili. k.ada nerna nik.ave stele ako sada smcstimo vrednost u registar R4 ion 3 R7~R1'R2 5 3 3 21 ··r 1 1

postanc raspDl< ll.i v"!


ShROO-R2 6 4 3 31 I' 1 1
1
'11'
3 3 2. i 1
Odgovur nije jednostavan. ali jc vazno da ga razurncte. Prctpostavimo da sc in- 4 4 .3 4 2 i
-~ 1-r 1 i
strukcije mogu J:avrsavati preko reda. Tada bi, ako nastane prekid, bilo vrlo tesko R3~R3'S1
I 11 1
S2=R4+R4 8
1[3
I 3
4' 2
4 · 2
I
I, 1 1 1
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
1 I2 3 2
! ; i
I! 1 1 1

~~~
3 i
1 1
2 2
to moglo, hila bi to situaciju zvana prccizan prckid (engl. precise interrupt), sto je 5
i--
6 i 2 1 3
!if!i
: 1 1
poleljna karakteristika procesora (Moudgill i Vassiliadis, 1906). Prckoredne instruk- 6 7 2 3 1 1
cije cine da pn:kid postanc m~preci;.an. zbog cega je za neke racunare potrebno da sc !
4
5
I , 2
2 :
il
It
1
1
I
i 1

instruk.cije 1.avrsavaju programskim redoslcdom. 8


i : --1
I 1
il '1
Ako ,e vratimo na nas primer. pred kraj cctvrtog ciklusa sve tri tekucc instrukcije 7 I'
I'
1 :I : 1
mogu sc zavr.~iti, tako da se u pctom cik.lusu konacno mole izdati instruk.cija 14, upo- II
redo s najsvc:l:ije dekodiranom instrukcijom 15. Kacl god sc neka instrukcija zavrsi.je-
8
9 7
,I I 1
t I ~ ! 1

dinica za dekodiranje treba da proveri postoji li ncka zaustavljcna instrukcija koja Jl I


Slika -l--1-t R~1d ->Ur"cr:-,kaLtrnog prm:..;sor:..t u;: pn..:kur..:-dno i1.cb\ anjc i /~1\ r.C.a\·an_j:.· inc.:rrukc:ijJ.
sada mole da bude i~:data.
U sestom ciklusu. instrukcija 16 je 1.austavljena jer trcba da upisuje vrcdnost u re-
Pogledajmu 'ada ponovo instrukcije 16, [7 i IS na slici 4-43. Vidimo da insrrukc:p
gis tar R1. a on je ~:auzet. Ona konacno zapocinje izvrsavanje u dcvetom ciklusu. Zbog
!6 i:tracunava vrednosl u registru R1 koju k<Jrisli instruh:ci_j:ll7. MeJutim. vidimo i J~1
postojanja brojnih 1.avisnosti. celom nizu od osam instrukcija potrebno je 18 ciklusa
se ta vrcdnost k.oristi samu jcdnom zato slo in.struk.cija lS hrise sadr/.aj registra F1.
da se zavr;i. iako hardver mozc da i;.daje dve instrukcije u svakorn ciklusu. Ohratite
Nema pravog razlnga zhog koga hi se raultal in<;trukcije 16 cuvan u rcgistru R1. Jy;
paznju na kolonu !~dura sa slikc 4-43; sve instrukcije su izdatc programsk.im redo-
gori jc i1.hor registra R1 kao medure_'!.istra. m~1da taJ i;hur delujc savr\cno razumr.t'
slcdum. Slicno tome. iz kolone Zu1T.<.cna vidi se da su sve i zavrsene programskim
prl"vodiocu ili prngrarncrima kuji su navikli na .sl"k vcncijalnc) i.cvr\avanJe (be; prekla-
redoskdum.
panja) ins I rukcija.
Rannotrinw sada alternativnu semu: prek.oredno izvrsavanjl" instrukcija. Prema
Na slici 4-44 uvodimo novu tc·hniku za rc:savanjc uvog prnhlenu: prdmenovanje
toj semi, instruk.cije se mogu izdavati i zavrsavati prcko reda. Isti niz ml osam instruk-

'!~··
registara (engl. regis/a rc11wningl. lntt'ligentna jc·dini-:a ;a dd;odiranJc upo!n:bi~e
cija prikat.an je na slici 4-4·-+. ali sada u;. dcvvoljeno prekoreclno izclavanje i zavrsa- . ;:.~ umcsto rcgistra F\1 u instrukcijama !6 (trcc'i cik.lu:;l i 17 l(ctvrti c·ikius) tajni rcg1star Sl .
vanjc. .;!,.
-~ ncdostupan pmgr,,mcru. Setd~l oc ir~strul-..~:ija lh mui.c ii.dati isto' rcmeno L:da i inolntk-
Prva razlik.a sc zapaza u treccm cil-..lu,u. lako jc instrukcija !4 J.austavljena. dozvo-
l,l: cija 15. Savrerneni proccsmi CL~'tu imaju na de~elint~ tapnh regJ:;tara k.oj1 ": muc:u prr>
ljenoje dek.odirati i izdati instrukciju 15 post<J se ona ne sukobljava ni sjednnrn tckucom t[ imemnati. Opisanumtclmi].;um ,e cest" lllllgU lllklonui Ycl'.isnosti tipa W:\R i WA\V.
instruk.cijum. !\:kdutim. prcskakanje instrukcija stvara nove probleme. Pretpostavimo ~
da jc instrukcija l5 upotrcbila operand koji izracunava prcskocena im.trukcija !4. Uz ~~

....
I
;~
I
I
~
~
; Poglavlje 4: Nivo mikroarhitekture ~.6 Primeri nivoa mikroarhitckture 311
i 310

Ka memorijskoj magistrali
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-
Memorija Jedinica za izvrsavanje 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.
Sistemski interfejs Keil. prvtig nivo11
·~,z~ podatke · ·· Paraldna obrada u mikroarhitckturi NetBurst
t Slika 4-47 detaljnijc prikazuje mikroarhitekturu NctBurst, to jest njen sistem pa-
1: -_ J<es \lrugog nivoa ':,, .,;., ralelne obrade. U vrhu je podsistcm za priprcmu, ciji je zadatak da preuzima instruk-
- ' · ~n$ttu~cij~ i,po~acil.;,:;; ::
''" '·Y/.-e.',t §''.._,_-'.. '~!,t•:,·.~·.-:,:

I
Jedinice za izvrSavanJe operacija
s celim brojevima 1 hrojevima
u formatu pokretnog zareza l 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-

I
Jed>n1ca Pratecj; Jed1_nica
za _preuzima_ nje za zavrsavanje vaju po redu, cak i ako Slt rnozda izvedene iz Pentiumovih !SA instrukcija koje Sll
i dekod1ran)e instrukcija mcdusobno udaljene hiljadama bajtova. U duzim nizovima mikrooperacija, redovi u
1nstrukcqa
kesu za pracenje mogu sc nadovczivati.
Ako je za izvrsavanje Pentiumove !SA instrukcijc potrebno vise od cetiri mikro-
I opcracijc, takva instrukcija se ne dekodira i ne salje u kd za praccnje, vee se na nju
[ Jedinica za predvidanje grananja I postavlja marker knji saopstava logici da mikrooperacije potrazi u ROM memoriji s
mikrokodom (mikro-ROM memoriji). Na ovaj nacin se mikrooperacije salju logici
Prip1ema Upravljanre prekorednim izvrsavanjem instrukcija koja upravlja redosledom izvrsavanja pomocu prcthodno dckodiranih (jednostav-
nijih) !SA im,trukcija iz kesa za pracenje iii trazenjcm (slozcnijih) !SA instrukcija u
Slika .t-.t6. Blo"-dijagram Pcntlllllla -L ROM memoriji s mikrokodorn.
Ako jedinica za dekodiranje naide na uslovno grananje, ona predvideno odrediste
odgovaraju. Za slozenije instrukcije, niz odgovarajucih mikrooperacija trazi se u mikro- trazi u bafcru odrcdista skokova prvog nivoa (Ll BTB, Branch Target Buffer) i na-
-ROM memoriji. U oba slucaja, svaka !SA instrukcija Pcntiuma 4 pretvara se u niz mi- stavlja rad s predvidcne adrese. L I BTB cuva 4K najskorijih programskih skokova.
krooperacija koje mof.e da izvrsi RISC jezgro cipa. Ovim mehanitmom se premoscava Ako sc inslrukcija za skok ne nalazi u tabeli, koristi se staticko predviclanje. Za sko-
jaz izmedu starog skupa CISC instrukcija i savremcne RISC putanjc pndataka. kove unazad pretpostavlja se da su deo petljc ida se obavezno izvrsavaju. Tacnost sta-
Dekodirane mikrooperacije prelaze u kes za praccnje (engl. trace cache), tj. kes tickih prcdvidanja je izuzetno visoka. Za skok unapred se pretpostavlja da jc deo
prvog nivoa za instrukcije. Posto sc ne kdiraju sirove instrukcije, vee mikmoperaci- naredbc if koji sene izvrsava. Tacnost ovih statickih predvidanja mnogo je manja od
jc, kada se instrukcija izvrsava iz kda za pracenje, nema potrebc da se dekodira. To predvidanja skokova unaL.ad. Analogan bafer za pracenjc odredista sknkova (Tra-
je glavna razlika izmedu mikroarhitckture NetBurst i mikroarhitekture P6 (koja je u ce BTBJ sadrzi predvidene inf'ormacije o odredistima pojedinacnih mikroopcracija.
kdu pnog nivoa drzala sirovc instrukcije ). Ovde se obavlja i prcdvidanje grananja. I Drugi deo paralelne obrade, logika za upravljanjc prckorcdnim izvrsavanjem in-
Instrukcije se iz ke;a za pracenje prosleduju jedinici za vremensko rasporeclivanje, strukcija, podatke dobija iz kda za pracenje koji sadrzi 12K mikrooperacija. Posto
'1':'
redosledom koji diktira program, ali se tim rcdoslcdom ne nwraju izvrsavati. Kada svaka mikroopcracija dolazi iz podsistcma za pripremu (tri u svakom ciklusu), jedi-
naick mikrooperacija koja -;e ne moze izvrsiti, vn:mcnski rasporedivac je -eadrzava, f
:t'
nica za dodeljivanje/preimcnovanje (engl. allocation/reruuning unit) belcii ih uta-
belu 'a 128 odrednica, nazvanu prckorcdni hafer (ROB, ReOrder Buffei-). Ovom
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- ,t; mlrednicom se prati status mikrooperacijc do njenog zavrsavanja . .ledinica za dodelji-
cije sa zavisnoslima tipa WAR iii WAW moglc da '"; izvrsavaju bez zastoja.
Jako se instrukcije mogu izdavati preko reda, ISA instrukcijc se moraju dovrs~\\'ati
·~ 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
programskim redom (njihuvi rezultati tim redom moraju postajati dustupni) zbog toga ;~
sto Pentiumova arhitektura zahteva preciznc prekide. 0 tome se brine jedinica za za- :t za one ko.Ji s njom ne radc. Ako se mikroopcracija ne moze izvrsiti, ona se odlaze. ali
~. ;,~
vrsavanje instru!<-cija.

1
~:

~
!il
._~,
.
Poglavlje 4: Nivo mikroarhitekture 4.6 Primcri nivoa mikroarhitekturc 309

Prilikom primene spekulativnog koda javlja se i drugi problem, koji se ne mozc 4.6.1 Mikroarhitektura procesora Pentium 4
resiti prcimenovanjem registara. Sta se desava kada spekubtivno izvrsena instrukcija Posmatran spolja. Pentium 4 lici na klasican CISC procesor. sa ogromnim i ncz-
dovede do iwzetka (vanredne situacije)'? Bolan. aline i fatalan primer jc instrukcija grapnim skupom instrukcija koji podriava osmohitne. 16-bitne i 32-bitne operacije 1
LOAD. koja sene nalazi u kdu u racunaru koji irna kd s dugackim redovima ( recirno. celim brojcvima, kau i 32-bitnc i 64-bitnc opcracijc s brojevima u formatu pokrctnog
256 bajtova) i memoriju kojaje rnnogo sporija od procesora i kda. Ako instrukcija zareza. On irna samo osam vidljivih registara. i svi su raz.liciti. Du1-ina instrukcija se
LOAD kojaje stvarno potrebna zaustavi racunar tokom vise ciklusa dok sene ucila red krecc izmcdu I i 17 bajtova. Ukratko, to je zastarela arhitektura koja sve radi na naiz-
kesa. to cemo pribvatiti jer jc rec potrcbna. Met1utim, zastajanje da hi se prcu1ela rec gled pugrc~an nacin.
z.a koJU se kasnije ispostavi da je suvisna. nijc nimalo prijatno. Previse ovakvih .. op- Medutirn. u unutr~t.snjosti Pentiuma 4 nalazi se savremeno RISC jezgro s paralcl-
timiz~cija" moze uciniti da procesor radi spnrije nego kada uopste ne bi bio optimi- nom ohradcHn instrukcija i vrlo brzim radnim taktom (koji cc se s vremcnomjos ubrza.
zovan. (Ako racunar ima virtuclnu memoriju. o ccmu c'emo govoriti u poglavlju 6. ti). Zapanjujucc je kako su Intelovi inzenjeri uspcli da naprave potpuno savremen
spekulativna instrukcija LOAD mo7.c da izazove gresku u stranicL~nju, zbog cega se procc>or imp!cmcntirajuci jedmt prastaru arhitckturu. U uvom ocleljku analiziracemo
potrebna memorijska strana mora ponovo ucitati s diska. Lazne grdke pri stranicenju mikruarhitckturu prucesora Pentium 4 da bismo videli kako una radi.
memonJC mogu se katastrofalno odraziti na performansc, pa je izuL.etno va7.no cia ih
izbegncnHJ.) Prcglcd mikroarhitekturc NctBurst
Jedno od rdenja koje postoji u savremenim racunarirnajestc specijalna instrukcija
Mikroarhitektura Pcntiuma 4, nazvana NctBurst, prcdstavlja pot pun raskid s pret-
SPECULATIVE-LOAD koja poku~~tva da prcuzmc rcc iz kda, ali odw,taje kad je tamo nc
hodnom mikroarhitckturom Ph kurisc'enom u proccsorima Pentium Pro. Pentium l! i
nade. Ako se vrcdnost nalazi tamo onda kada je stvarno plltrchna. una se rnoJc' isko-
Pentium Ill a istovremcno jc i osnova kuju ce Intel koristiti sledeeih nekuliko gmlin~.
ristiti, ali ako se nc nalazi. tadaje hardvcr mora preu;:eti sa izvora. Ukoliko sc ispostavi
Scmatski prikaz mikroarhitekture Pentiuma 4 dat je na slici 4-46. On uglavnom od-
da vrcdnost nije potehna. nema nikakvih poslcdica t.hog prorna~aja kcsa.
govara slici 1-12.
Mnogo goru situaciju mo7.cmo ilustmvati slcdccom narcdbom:
Pentium 4 sadrzi cctiri glavna pudsistema: memoriju, pudsistem za pripremu in-
if (x > 0) z ~ y/x; \trukcija. podsistem za upravljanje prckorcdnim izvrsavanjem instrukcija i podsistcn
~!:de su .r. \' i: numcricke promcnljive u formatu pokrctllllg ;:arcza. Prctpu'itavimo da za i1.vrsavanjc. Razmotrimo ih pojcdinacno, pola;.eci od gornjeg lcvug pod,istema i
~u sve prumcnljive unapred prcuzcte u registre ida JC (sp"rn) dcljcnje hrujcq u fm- krcL'uci sc oko cipa u smeru suprotnom ml smcra kretanja ka;aljke na satu.
matu pokretnog zarcz.a podignuto iznad w,lnva if. Nazalo:.t, x je 0 i pmc~dura za nbra- l'odsi-,tcm memorije sadrzi jcdinstvcn kes drugog nivoa. kao i logiku z.a pri-
du deljenja s nul om zavrsava program. Tako ]t: ispravan pro(lram 1hog spckulisanj~1 -.tupanje spoljnoj memoriji prcko memorijske magistra!c. U prvoj gcneraciji Pentiu-
prestao da radi. lako jc iln,gramcr napi.-;ao ktKlu /clji Ja takvu situaciju preduprcdi. m~\ 4. veliC:im kda jc i znosi Ia 256 K B, u drugoj 512 M B, au treeoj I MB. Ke:i drugo~

ona sc ipak dog!ldila. Ovako nc;to sigurnu nc(c u-.reciti prngramera. niv·ua je osmostruko asocijativan kes s reclovima od 128 bajtova. Kada se zahtev
Jcdno nd mogucih rc;cnja je da sc naprav·e -.pcciplllc vcr;ijc instrukc:ij~1 k<'Je clv um kcsu zavr\i promasajem. on zapocinjc par operacija za pre nos 64-bajtnih pod~I­
mogu da pn1u1rokuju vamt'dnc 'iituacije. Osim lllga. u svaki I"L'gi,t:tr trcba L!llLLtti i ,~,La del bi iz glavnc memorije prcuz.eo putrebne blokove. Kd drugng nivoa je kess
t;v. otrovni hit i engl. f)()l.lr'il hit I. Kada sc poi-.a/c da spccijalna spekulativ n:I imtru\..- ud[,Jh'nim upisivanjcm. Kada sc neki njcgov red promeni, to 1.naci da se nov sadr/~j
cija nije potrebna. nnda nna ne iLaJ.iva pre kid. veL' Jll':itav lp utrovni hit u regi-,!ru rc'- nc upisuje odmah u memoriju vee' kada dode vrcmc za to.
zultata. ;\kll taj registar kasn:.iL kori.-:ti regulctrna itbtrukcija. nastclJ~ prckid ik~w ~to i S kesom je pove~:ana i jcdinica za prctbodnu preuzimanje ( nijc na .-.lici) kop pc-
trcba da budc). i\ledutim. ako .-;e rczuitat ne uputrcbi. olruvni bit 'it: na kraju bri~c i ku.;ava da prcmme u ke:i podatke iz glavne mcmorije pre ncgo sto su potrcbni. lz kcs.t
dr~Jgug nivua podaci rnogu odlaziti u drugc ke~cve velikom brzinom. Novo prcuzi-
ncma mkak\ c stele.
m~mjc iz ke~a 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.
4.6 PRII\IERI l'HVO.\. ;\llKROARlHTEKTi.JRE
Jspod menmrijc na slici 4-46 nalazi sc pripremni deo, gde se in,trukcije preuzimajJ
LJ ovum uJcljkuui-.raiko C\:'ill<l priLt/ati tri -,avrcmcna pillc·..:c:nra i primcnu kt>ncc- 1z f,esa drugog nivoa i dekodiraju programskim redom. Svaka Pcntiumova JSA instru~­
pata opi-,amh L1 mom [WgLlv iju. Prim~ri c'c 7.:li,ta b[ti kratki jer su :-.tvarni racunari cija deli -.e na nil mikrnopcracija slicnih RISC opcracijama. Za jednostavnijc instru~­
i;uzt.:lllll .-,j,,jcni i :-.ctdr/.e 10~1 tnilionc· l~>gickih kola. PriLt!ctc'cnw pt'<ll:csor~ kujc' 'ile c:iJe. sama jedinica za prcuzimanjc i dckodiranje utvrduje knJC im mikroopcracij-::
vee up,,zn~di: 1\·ntium 4, UitraSPAi\C !ll i t\0.~ I.
r
Poglavljc 4: Nivo mikroarhitekture 4.6 Primeri nivoa mikroarhitckture 315
314

ne nade u kesu prvog nivoa, salje se zahtev kc5u drugog nivoa, koji ili odmah odgovara Za razliku od Pentiuma 4, UltraSPARC ima pravu RISC arhitekturu, sto znaci da
ili preuzima red kesa iz memoriJe i tada odgovara. U svakom trenutku istovremeno se mu ne treba slozen mehanizarn za pretvaranje starih C!SC instrukcija u izvrsne mi-
mogu obradivati cetiri zahteva kda prvog nivoa upucena kesu drugog nivoa. krooperacije. Kljucne instrukcije su vee u obliku mikrooperacija. Medutim, u posle-
Posto se mikrooperaeije izvrsavaju preko reda, njihovo smdtanje u kes prvog dnje vremc dodate su i gralicke i multimedijske instrukcije, za Cije je izvrsavanJC
nivoa nije dozvoljeno sve dok se ne zavrse sve instrukcije pre instrukcije koja se potreban poseban hardver.
smesta u kd. Jedinica za zavrsavanje instrukcija (engl. retirement unit) ima zada-
tak da instrukcije zavrsava programskim redosledom. Ako nastane sistemski prekid, Pregled mikroarhitekturc procesora UltraSPARC III Cu
nedovrsene instrukcije se povlace; na taj nacin Pentium 4 obezbeduje da su, u trenut- Blok-dijagram procesora UltraSPARC lli Cu prikazan nje a slici 4-4X. On je, gle-
ku prekicla, instrukcije do oclredene tacke potpuno zavrsene, a cia one iza te tacke ne- clano u celini, mnogo jednostavniji od mikroarhitekture NetBurst Pentiurna 4. zato sto
maJLl nikavog uticaja na sistem. UltraSPARC treba da implernentira jednostavniju ISA arhitekturu. Bez obzira na l·l,
Ako je instrukcija za smestanje zavrsena, ali su prethodne instrukeije jos u toku, neke od osnovnih komponenata slicne su onima u Pentiumu4. Argumenti za slicnmti
k.es prvog nivoa sene moze azurirati. pa se rezultati smestaju u specijalan bafer za ce- uglavnom su tehnicki i ekonomski razlozi. Na primer, u doba kada su ovi cipovi n:t-
kanje na smestanje. Ovaj bafcr ima 24 odrednice za 24 skladista koja se mogu koristiti stali imalo je smisla ugradivati kes prvog nivoa za podatke velicine od 8 do 16 KB, pa
istovremeno. Ako naknadna instrukcija pokusa da procita smestene podatke, oni se iz oba procesora imaju takav kes. Ako u buducnosti bucle tehnicki i ekonomski pogodro
bakra za cekanje na smestanje mogu proslediti instrukciji, iako se jos ne nalaze u da se koristi kes prvog nivoa od 64 KB, svi procesori ce ga imati. Razlike, s drtife
kdu prvog nivoa za podatke. Ovaj proces se naziva upucivanjc iz skladista na uci- strane, uglavnom postoje zato sto jedan procesor mora cia premosti jaz izmectu starcg
tavanjc (engl. sl!lre-to-load). Iz svcga ovoga trcbalo bi da bude jasno da Pentium 4 skupa C!SC instrukcija i modernog RISC jezgra, a clrugi to ne mora.
ima veoma slozenu mikroarhitekturu na ciju organizaciju jc uticala potreba cia se U gornjern levom delu slike 4-48 prikazan je cctvorostruki asocijativni kes za in-
izvrsava stari skup Pentiumovih instrukcija na savremenom R!SC je;.gru. koje koristi strukcije, velicine 32 KB, sastavljen od redova duzine 32 bajta. Posto su instrukcie
opseinu paralelnu obradu. To se pustize tako sto se Pentiumove instrukcije dele na procesora UltraSPARC uglavnom cetvorobajtne, u kcsu irna mesta za oko XK instruk-
mikroopcracije koje se kdiraju i uvodc u paralelnu obradu kada dude red na njihovo cija, nesto rnanje nego u kesu za pracenje mikroarhitekture NetBurst.
izvrsavanje na skupu ALU jedinica, koji u optimalnim uslovirna moze cia izvrsava do Jedinica za izdavanje instrukcija (engl. ins/ruction issue 1tnil) ujednom sistem-
sest mikrooperacija u svakom sistemskom ciklusu. Mikrooperacije se i1.vrsavaju prc- skom ciklusu priprema La izvr.~avanje do cetiri instrukcije. Ako dodc do promasaja II
ko rcda. ali se zavrsavaju programskim redosledmn a rczultati sc tim redosledom i kdu prvog nivoa, izdaje se manje instrukcija. Kacla se naicte na uslovno grananj~.
smdtajuu keseve prvog i drugog nivoa. Vise dctalja o mikroarhitckturi Net Burst naci konsultuje se tabela grananja (engl. branch table) sa 16K odrcdnica cia bi se LZ
ccte kod Hintona et al. (2004 ). 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
4.6.2 Mikroarhitcktura proccsora UltraSPARC-111 Cu instrukcije. Pripremljene instrukcije se salju u bafer kapaciteta 16 instrukcija, koji
ujednacava priliv instrukcija u sistern za paralclnu obradu.
Serija UltraSPARC je Sunova implcmcntacija clevcte verzije arhitekture SPARC.
lz bafera se instrukcije salju ujedinice za obradu celih brojeva i brojeva u formatu
Sa stanovista korisnika ili programera, svi mocleli sumec1usobno prilicno slicni- raz-
pokretnog zareza. kao i Ll jedinice za ucitavanje, oclnosno smestanje podataka. kako _e
likuju se uglavnom po performansama i ceni. Medutim. na nivou mikroarhitekture,
prikazano na slici 4-48. Jedinice za obradu celih hrojeva su clvc ALU jedinice do-
oni se znatno razlikuju. U ovum odcljku cemo opisati procesor UltraSPARC Ill Cu.
punjene kratkim sistcmom za paralelnu obradu instrukcija grananja. Ovde se nalaze i
Cu oznacava bakarne vezc na cipu. za razliku od aluminijumskih, kojc su koriscene
!SA rcgistri i nekoliko privremenih registara.
za njegovog prethodnika. Bakar ima manji elektricni otpor ocl alurninijuma, sto omo-
Jcclinica za izvrsavanje instrukcija s brojevima u formatu pokretnog t.areza sadr::i
gucava tanje veze i brzi rad. 32 rcgistra i tri zasebne ALU jcdinice: za sabiranje/oduzimanje. 1.a mnozenje i za
UltraSPARC Ill Cu je potpuno M-bitni procesor, sa 64-bitnim registrima i 64-bit-
dcljenje. Grafil:ke instrukcijc sc takocte izvrsavaju u ovoj jcedinici.
nom putanjom podataka, mada zbog kompatibilnosti sa SPARC proccsorima verzije
I Jedinica za citanje/smestanje podataka obraduje razlicite instrukcije za citanje i
g (32-bitnirn), mole da radii sa 32-bitnim operandima ida izvrsava neizmenjen soft-
smdtanje podataka. Njene tri putanje podataka vode u tri razlicita kesa. Kd za podat-
vcr Dl 32-bitne SPARC procesorc. lako je unutrasnja arhitektura 64-bitna, memorij-
ke (engl. data cache) standardan je cctvorostruki asocijativni kd prvog nivoa za
ska rnagistrala je sirine l2X bitova, kao sto Pentium II ima 32-bitnu arhitekturu i
podatke, velicine 64 KB, s reclovima duzine 32 bajta. Kes za prethodno preuzimanjc
64-bitnu mernorijsku magistralu; u oba slucaja, magistrala je za jednu generaciju
(engl. prcfic-!ch caclzc) velicine 2 KB postoji zato sto UltraSPARC-ov nivo ISA sadrii
ispred proccsora. instrukcije za prethodno preuzimanje koje omogucavaju prevodiocu da preuzrne reci s
Poglavlje 4: Nivo mikroarhitekturc 4.6 Primeri niYoa mikroarhitekturc 313
312

se mikrooperacije koje slede ipak obraduju, sto vodi do prekorednog izvrsavanja mi- prirodu problema u odrednicu ROB bafera. Kada kasnije svi potrebni resursi postanu
krooperacija. Ovakva strategija je izabrana da bi sve funkcionalne jedinice bile sto raspolozivi, mikrooperacija se stavlja u jedan od redova cckanja /,a i1vrsenjc.
vise zaposlene. u svakom trenutku moz.e biti ll toku cak 126 instrukcija, pri cemu 46 Jedinica za dodcljivanje/preimenovanje stavlja mikrooperaciju u jedan od dva
instrukcija mo;ie uCitavati podatke iz memorije, a njih 24 mu?e upisivati u memnriju. reda cekanja u trcnutku kada je ona spremna za i1.vrsavanje. S druge stranc redova
postoje cetiri jcdinicc za vremensko rasporcdivanje (engl. sr·hetlulers) 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
Priprerna
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
Ka
UpraviJdllJC rnemoriji jcdinice koje rade dvostrukom brzinom, Pentium 4 na 3 GHz moze da izvrsi 12 mili-
prekorednrrn i ad nje
izvrSavanjem 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 ~;vakom 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-
'trukc·ijc. Druga moze da obavlja aritmeticka izracunavanja s hrujevima u formatu
pd,rctnug r.arcza ida izvr~ava 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
rc·gi,lara, osam registaraje dostupno na nivou !SA (EAX, EBX, ECX. EDX itd.). ali se
Stika -1.-47. PoJcdno~tav!jcn pnk~v. puLanjc pnd~lt<t~;t u Pcntiu:11u -1.
n..: ma tacno kojih osam rcgistara sadrzi stvarne vrednosti, jer se preslikavanj.:: menja
11 toku iz-vrsavanja.
Ponekad mikrrmpcraciJa pri izvrsavanJU /.astanc jef treba da upi.:,,, pudatke u rcgi-
Kcs prvug nivoa La podatkc deo je kola velike brzine ( 2x). To jt' kd od H KB i
star i1 koga upra\O cita vredno:,t iii u ni,·ga vrcdnnst uptsUJC prcthodna mikmopcra-
-~ ~adr~:i cclc bmjeve. brojcve u formatu pokretnog zareza i druge vrstc pudataka. Za ra-
cija. Ovakvi sukubi se. kao .~to ,mo \e,_: pumenuli, tu;ivaJU \V.'\E. i \V,\W l<tVisno,.,li.
zliLu 11d kda za praccnjc, nj<::gov sadrzaj se nikako ne kodira. On sadrzi cistu kopiju
A.ku preimenujemo odrcdisiL nuvc mikroupct·acijc i tak<J juj umu~ucinH1 da woj rl'-
>va i; memclrije. Kt'S prvog nivoa za podatkc je cctvorostruki asocijativni kd sa 6.:J.
zultat upise u jedan ml I~() pri' rcmcnih rcgistara ( umesto u ()(L.:m :.:rajuci. ali ju\ uvek
r'o redu kc;a. To je k.e< s dircktnim upisi vanjem. ~to znaci da se pri menjanju red a
zauzel mlrcdi;ni rcgi,.,tan. mikroupn~rc'iJLI mo?:c:n:o odm,;h d<t uputimo na izvr~.l­
h...:~a taj red odmah kopira naL.ad u kes drugog nivoa. Kcs mo>.e da obavi jedno ucita-
van je. Ako ncma raspolu!i vog pri vremcm1g rcgi ,;ra iIi ~lhl mi krouperacip ima L:;t-
\anjc i jnlnn upisivanjt' podataka u jednom sistemskom ciklusu. Kada se tralcna rcc
visnost tipa R,\\V (kojct se nibdcl ne mnie zauhici). jedinica .ca doJcljivanje bclc/i
..................
~~ ---------
Poglavljc 4: Nivo mikroarhitckturc 4.6 Primcri nivoa mikroarhitekture

U fazi R traze se rcgistri potrebni cclobrojnim instrukcijama i proslcduju sc zahte-


Faza
Mult1plekser adresa vi registrima koji su potrebni instrukcijama za rad u formatu pokrctnog zare1.a. Na
A
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
M
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
w podatke zbog slozenog vremenskog uskladivanja operacija.
U fazi W (Write- upisivanje) rezultati iz specijalne jedinice upisuju sc ponovo u
X 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.
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
Sliha ..1-..19. Uprosccn prikaz paralelnc obradc instrukcija u procesoru UltraS I' ARC Ill C sisternskih prckida. Drugim recima. poslc pojave izu1etka iii nastanka sistcmskog
prekiJa, sacuvano stanje racunara mora biti takvo Ja svc im,trukcije pre tog dogadaja
U L.!Li.! (instruction stage grouping- grupisanje instrukcija po fazama) instrukcije buclu potpuno zavrsene i Ja nijedna instrukcija posle tog dogadaja nijc Dtpoceta.
se uzimaj u iz reJa cekanja i priprcmaju ;:a slanje izvrsnim jeJinicama tokom sleJcccg U fazi D. sadrzaj celobrojnih rcgistara i registri za rad s brojevima u pokretn()rn za-
ciklusa. U svakom ciklusu sc u fazu R mole poslati do cetiri instrukcije. lzbor instruk- ~~-
,.. rezu prepisuje se u oclgovarajuce racine registre (prema arhitekturi prncesora). Ako se
cip ;:a slanje ograniccn je raspolozivoscu funkcionalnihjedinica. Mogu se. na primer. ~ javi izuzetak iii sistcmski prckid. koristc se <lYe vrednosti, a ne one iz radnih registan1.
;¥:
istovrcmeno poslati dve celobrojne instrukcije. jedna instrukcija za raJ s brojevima u 31 Cin smestaja sadrz.aja rcgistara u stvarne rcgistre ekvivalentanje cinu zavrsavanja in-
-:J
formatu pokretnog zareza i jcclna instrukcip za citanje iii smdtanje poJataka. ali se ·~
strukcija u Pentiumu. Pored toga, u fazi [) bilo koja zaostala instrukcija za srne'itanj·~
·~!
tri ce!obrojne instrukciJc ne mogu poslati u istom ciklusu. podatak.a zavrsava upisivanje svojih rcmltata u kd 1.a upisivanje, a nc u ke~ prvog
I"
~
i
:i :.~-

; 1.
Poglavlje 4: Nivo mikm<1rhitckturc 4.6 Pdmcri nivoa mikroarhitekture 317
316

pngac1anja kesa drugog nivoa ncgo kod Pentiuma (jer kd moze biti veci), ali je prist-
Ka memoriji up kesu sporiji (jcr se nalazi izvan cipa).
Sistemsk1 interiejs Knntrolcr memorije preslikava 64-bitne virtuelne acirese u 43-bitnc tizicke adrcse.
Kontroler kesa UltraSPARC podrzava virtuelnu mcmoriju (o kojoj cemo govorili u sestom pogla-
drugog nivoa 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-
JcdJ~~
izdavan 1e ':~;:,~~~kciJ~ 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-
l 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
11v r ~d vdnJe nt s·~ ,~ kc ~ 1a
LJ1l'.t5.1vrlilj•.o Jedin1ca za c1tanje/ ukratko svaku od njih. Faza A (Address generation- gcnerisanje adrese) predstavlj1
;p~t·e~kr.lia smestanje podataka
'~elrmtJfOi!Nrma
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
Slika 4-4X. Blnk-uijagram proccsora UltraS!' ARC Ill Cu.
nckog izuzetka ili sistcmskog prckida). Po~to se predvidanje grananja ne mo7.e oba-
pudac·ima pre ncgu sto OllC budu potrebnc. Kada prevodilac pomisli da hi mu mozcia viti jednom ciklusu, instrukcija koja slecli iza tacke grananja uvck sc izvrsava. hcz ob-
dubro do;ia neka rcc, on mol:c da izda instrukciju za prethodno preuzimanjc da bi je zira nato da lice biti programskog skoka iii neec.
adrc-;irani red kda unaprcd ucitao u kd za prethlldno prcu;:imanje i tako uhrzao U fazi P (Pre! imi nary fetch - prclimi narno prcuzimanje) kuristi -,c adrcsa dobijem
pri.'illlpanjt' h:ada posit' n'ekoliko instrukcija ta rec stvarno zatn:ba. u izvesnim okolno- u fazi A cia bi sc Lapocelo preuzimanje do cetiri instrukcije po ciklusu Ll kc~ prvo;
.stiilla prcthcJno prcu;imanjc se ohavlja i hardver;,kim putcm da bi sc puboljsak pcr- nivoa za instrukcije ( 1-kd). Ovde sc kon-,ultuje i tabda grananja ka].;o hi se prmcri1J
knnanoc stanjih pwgrama koji ncmaJU opciju .~:a prcthodno prcuzimanje podataka. cia li ncka instrukcija predstavlja uslnvni skok i- ako se nade takva instrukcija- lLl
Ke.~ za upisivanjc (engl. It-rite mche) mali jc (2 KB) kd koji kombinuje rezultatc na- lije skok prcdviden iii ne. U fazi F(Fetch- preuzimanje) dovrsava se preuzimanjc in-
mcnjc·n,: up!sivanjuu kd drugog nivoa bko bi boljc iskoristio siroku (256-bitnu) rna- strukcija La 1-kes.
gi.,tr~du bja vodi do njega. Njcgov jcdini tadatak je cia poholj\a perfom1ansc. U fazi 13 (Branch target- odrediste grananja) dck<Jdiraju se upravo prcu/elc' in-
(ip sadrzi i IPgiku za upravljanjc pristupom memoriji. Ona se sastuji od tri deJa: strukcije. Ako je bilo koja od n_1ih prcdvidcn skok. ta informacija je u ,l\'(Jj Lm do-
si.stcm~kog intcrkjsa. kontrolcra kcsa drugog nivoa i kontmlcra mcmorijc. Sistcmski stupna i salje se nazad u fazu /\ da bi se usmerilo huduc'e preuzimanje instrukcijct.
intcrt"cJ, \..uinunicira s mcmorijom preko 12X-bitnc magiotrale. Svi zahtevi upuceni U fazi I (Instruction group formation- ohr~uovanje grupa im,trukcij:t) in:-trukcij:
:;p<'l_Jnum ;;vclu. usim h.esu drugog nivoa, prolaze kroz ovaj intcrfejs. Uz 43-bitne f1- se grupisu prema tome kojoj su od sest funkcionalnih jedinic:a narncnjenc:
1icf-c illcmorij,kc adresc. glavna mcmorija teorijski mozc biti velicine i do 8 TB, ali 1. ALU I za rad sa cclim brojc:vima.
jc vcli<."ina kanice sa stampanirn 1-;olom na kojoj je montiran procesor ogranicava na
2. ALU 2 za rad sa celim brojevima.
1(J Cj B. Pustuj i prujch.tuvan interfcjs koji omogucava da se vise proccsora U1tra-
3. ALU I za rad s brojevima u formatu pokrctnog zareza i gralibmL
SPt\RC p<lve/.c sa istom memorijom (tako nastaju multiproccsuri). Multipmccsure
4. ALU 2 za rad s brojcvima u formatu pokretnog 1.arcza i gralikom.
c.:mo Pbraditi u osmom poglavlju.
htnllrul..:r kda drugog nivoa komunicira s jedinstvenim kdom drugog nivoa koji 5. Paralelna ohrada grananja (nije na slici).
:,<:: n~daz1 i.~:van proccsorskog .:'ipa. Posto je kd drugug niv<Ja spo1jni. moz.: hiti ve1ici-
t.f 6. Citanje, smdtanje i specijalne operacijc.
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-
~·' Dve cclobrojne ALU jedinice nisu '>as vim iste, a dvc ALU Jedini..:c ,:a r<,d s hrLljc-
"
{ vima u pokrctnum .~:arau Lnatnu se razlikuju. Svaka .\ LU jedinica i:c,r:;<tva ,!rug.tciji
l:tlma4 nalazi s:e na cipu. ali muje velicina ogranicena na I MB zbog nedostatka pro-
sh:up instrukcija. u r~ui I instrukcije Sc sortiraju upravo prelllJ pomcnutinl r:vli.::iti:n
'~',r'" (p. de jc napravljen kompromi:,: kod UltraSP,\RC-a jc mnogo veci stcpen
sh:upovima.

i
Poglavljc 4: Nivo mikroarhitckturc 4.8 Sazctak 323
322

8051 je sinhroni procesor. sa instrukcijama koje uglavnom traju jedan sistemski podeli svoje CISC instrukcijc i preuredi ih u trorcgistarski format, koji zahteva izvr-
ciklus, rnada ima i onih kojimaje potrchno vise vrcmcna. Svaki sistemski ciklus moze sna jedinica. To upravo radi podsistem za pripremu na slici 4-47 (deli dugacke in-
se podcliti u sest delova, nazvanih stanja (engl. states). Tokom prvog stanja, sledeea strukcije u male i zgodne mikrooperacije). UltraSPARC Ill ne mora to da radi jer su
instrukcija se preuzima iz rnemorije, postavlja se na glavnu magistralu i upueuje u re- instrukcije koje dobija vee u najboljem redu, u obliku mikrooperacija. Zbog toga su
gistar IR. Instrukcija se tokom drugog stanja dekodira i registru PC sc uveeava vred- novoprojektovani ISA nivoi uglavnom tipa RISC- da bi se obezbedilo bolje slaganje
nost. Tokom treeeg stanja pripremaju se operandi. Tokorn cetvrtog stanja, jedan od izmedu skupa ISA instrukcija i interne izvrsne jedinice.
operanada se postavlja na glavnu magistralu, po pravilu da bi se isporucio registru Poucno je uporediti nas konacni projekat Mic-4 sa ova dva primera iz stvamog sve-
TMP1, gde ee biti obraden da bi posluzio kao operand ALU jedinice. Saddaj registra ta. Mic-4 je najslicniji Pentiumu 4. Oba procesora imaju zadatak da interpretiraju skup
ACC moze tokom ovog stanja da se kopira u registar TMP2 tako da obe vrednosti budu !SA instrukcija koji nije tip a RISC. Oba proccsora zbog toga dele ISA instrukcije u mi-
spremnc na ulazu u ALU jcdinicu. Tokom petog stanja ALU jedinica obavlja svoj po- krooperacije kojc sadde opkod, dva izvorisna registra i odredisni registar. lJ oba sluea-
sao. Na kraju, tokom sestog stanja rezultat izracunavanja ALU jedinicc izbacuje se na ja mikrooperacije se stavljaju ll ~ed cekanja L.a kasnije izvrsavanje. Mic-4 izdaje,
glavnu magistralu i upisuje u svoje odrediste. U meduvremenu, registar ROM ADDR iz.vrsava i zavrsava mikrooperacije striktnim programskirn redosledom, dok ih Penti-
sprema se da preuzme slcdeeu instrukciju. um 4 izdaje i zavrsava programskim redosledom, ali ih moze izvrsavati i preko recta.
lako rnozemo neograniceno siriti pricu o procesoru 8051, smatramo da prethodni Mic-4 i UltraSPARC III ne mogu se stvarno poreditijer UltraSPARC Ill ima RISC
opis i slika 4-50 daju dovoljne osnovne podatke o njemu. Procesor 8051 ima jedin- instrukcije (tj. troregistarske mikrooperacije) kao svoj skup ISA instrukcija. One se
stvenu glavnu magistralu (da bi cip bio stu manji) na koju je povezan heterogen skup ne moraju deliti na sitnije delove, vee se mogu izvrsavati takve kakve su, po jedna u
regislara, tri tajmera i cetiri prik.ljucka, uzjos nekoliko registara na lokalnoj magistra- svakom ciklusu putanje podataka.
li. U svakom ciklusu putanje podataka dva operanda se propustaju kroz ALU jedinicu Za razliku od Pentiuma 4 i procesora UltraSPARC Ill, procesor 805 l stvarno je
i rezultat se ponovo smdta u registar, kao ina mnogo savremenijim racunarima. 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-
4.7 POREDENJE PROCESORA PENTIUM, UL TRASPARC sava i zavrsava pmgramskim redosledom. Po svojoj jednostavnosti, mnogo lici na
proccsor Mic-1.
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- 4.8 SAZETAK
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- Srz svakog racunaraje njegova putanja podataka. Ona sadrzi registre, jednu, dve
van je 8-bitni procesor, za ugradivanje u ra;.licite aparate. lpak. srz svakog od njih iii tri magistrate i jednu ili vise funkcionalnih jedinica kao StO Sll aritmeticko-Jogicke
cine skup registara i jedna iii vise ALU jedinica koje obavljaju jednostavne aritmetic- jedinice (ALU) i pomeraCi. Glavna izvrsna petlja obuhvata preuzimanje operanada iz
regi~tara i njihovo slanje preko magistrala ALU jedinicama i drugim funkcionalnim
ke i logicke operacije s podacima preuzetim iz registara.
Uprkos njihovim ociglednim spoljnim razlikama, Pentium 4 i Ultra-SPARC lll jedinicama na izvrsavanje. Rezultati se tada ponovo smdtaju u registre.
imaju prilicno slicnc izvrsne jedinicc. Obc izvrsnc jedinice prihvatajumikrooperacije Putanjorn podataka moze da upravlja sekvencer koji preuzima mikroinstrukcije iz
koje sadrze opkod. dva izvorisna registra i mlredisni rcgistar. Obc mogu da iz.vrse mi- upravljackog skladista. Svaka mikroinstrukcija sadrzi bitove koji upravljaju puta-
krooperaciju u jednom ciklusu. obe intenzivno koriste paralclnu obradu, imaju mcha- njom podataka tokomjednog ciklusa. Ovi bitovi odreduju koje operande treba izabra-
nizam za preclvic1anje skokova i razdvojene kdeve za instrukcije i podatke. ti, koju opcraciju treba obaviti i me~to za smdtanjc rezultata. Pored toga, svaka
Ovakva slicnost nije slucajna, niti je rczultat cinjenice da inzenjcri iz Silicijumske mikroinstrukcija 01nacava svog sledbenika, najcesee direktno pomoeu njegove adre-
dolinc cesto menjaju radna mcsta u neprcstanoj potrazi za boljim poslom. Kao sto smo };}
se. Ncke mikroinstrukcije menjaju osnovnu adrcsu tako sto, pre koriseenja, na njene
•_;t
bitove primcnjuju opcraciju OR.
vidcli na primerima procesora Mic-3 i Mic--+, lako jc i prirodno napraviti putanju poda- t~:

_, :
l.IVM mas ina radi sa stekmn tako sto na osnovu jednobajtnog opkoda stavlja reci
~
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. na njega. uzima reci s njega iii ih na njemu kombinuje (npr. sabira ih). Prikazanaje i
ti;:! njena mikroprogramsk:.t realizacija za mikroarhitekturu procesora Mic-1. Dodava-
Uzevsi u obzir danasnju tebnologiju, izglcda daje ovo najetikasniji nacin rada. :~,
Glavna razlika izmcdu Pentiuma 4 i procesora UltraSPARC Ill jcste nacin na knji njem jedinice za prcthodno prcuzimanje instrukcija mogu se clirninisati brojna obra-
ml pocetne ISA instrukcije dolaze du konacnog izvrsavanja. Pentium 4 mora da canja prograrm,k.mn brojacu i tako znatno ubrzati rad procesora.

1 .
!
i ~·
, Poglavlje 4: Nivo mikroarhitekture Vc:lhanja 325
324

Nivo mikroarhitekture racunara mozc se organizovati na vise nacina. Tu postoje 7. U tekstu smo pornenuli da pri prevodcnju narcdbe
hrojni kompromisi, ukljucujuci i organizaciju s Jve i tri magistrale, kodirana i deko- it (Z) goto L 1 . else go to L2
t!irana polja mikroinstrukcija, postojanje ili nepostojanje prethodnog preuzimanja, u hinarni k6d, L'. mora da se nade unutar donjih 256 rcci upravljacke mcrnorije. o,
povrsna iii sustinska paralelna ohrada i jos mnogo toga. Mic-1 je jednostavan, soft- li bi hilo mogucc daje LI na adresi. rccimo. Ox-tO. a L7. na adrcsi Ox 140'-' Obrazlozitt
verski kontrolisan proccsor sa sekvencijalnim izvrsavanjem i bez paralclizma. Za ra- odgovor.
zliku od njega. procesor Mic-4 ima visokoparalelnu arhitekturu sa sedam faza obrade. 8. U mikroprogramu za proce,or Mic-1, u mikrooperaciji if __ icmpeq3. ,adrzaj registr~
Pcrfonmtn.-;c se mogu poboljsati na razlicitc nacine. Glavni nacin je uvodenje kes MDR kopira se u regi,ar H. Nckoliko rcclova kasnije. taj sadrzaj sc odu1.ima od sat!rzaj;,

memorije. Dircktno preslikani kcs i sct-asocijativni kcs obicno se koristc za ubrza- registra TOS zbog proverc jednakosti. Sigurnu je bolje za to imau Jednu mrct!bu:
vanjc obracanja memoriji. Staticko i dinamicko prcdvidanje programskog skoka ta- it_cmpeq3 Z ~ TOS- MDR; rd

kode su vazni. kao i prekorcdno. tc spekulativno izvrsavanje instrukcija. Zasto to nijc uradeno''
Sva tri nasa procesora iz primera ~Pentium 4. UltraSPARC lll i ~051 ~ imaju mi- 9. Za koje vrcme c'c procesor tylic-l koji rat!i na 2,5 GH1. izvrsiti Java narcdbu
kroarhitckturu koja nije Jostupna programerima u asembkru !SA nivoa. Pentium 4 i ~ j + k;
ima slozenc mchanizme za pretvaranje !SA instrukcija u mikrooperacije, za njihovo Naveditc odgovor u nanosckundama.
kcsiranjc i prenosenjc u supcrskalarno !USC jczgro na prekoredno izvrsavanje, za 10. Ponovo odgovorill: na prethudno pitanje. ali s~1da La proccsor Mic-2 koji radi na 2,5
preimcnovanje registara i za ostale trikuve kojima se iz hardvera izvlaci maksimalna GH1.. Na usnovu ovih proral'una odgovmitc: koliko dugo ce se program koji sc 111
brzina. UltraSPARC lll Cu ima intcnzivnu paralelnu obradu. ali jc relativnojednosta- proccsoru 1\lic-1 izvrsava I 00 sckundi. izvrsavati na proccsoJ"L1 Mic-2' 1
van procesor koji instrukcijc izdaje. i1.vrsava i Jnvrsava programskim rcdosledom. I I. N:tpi;itc rnikrokot! za procesm Mic-l koji imp!cmcntira JVM instrukciju POPTWC.
Proccsor :-105 I veoma je jednostavan, s jedinst venom glavnom rnagistalnm na koju je Ova instrukcija uz.im~t dvc rc>ci s vrha stcka.
vezano nckoliko rcgistara i jedna ALU jedinica. 12. Na potpunuj JVM masini. ume,to op~te instrukcijc ILOAD 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 naC·in'.'
VEZBAN.JA 13. [nstrukcip ISHR lcelobrojr.o aritmctido.o pomeranje udcsno) postoji u JYM skup't
itbtrukcija. ali nc i u IJY:\·1 -;kupu 11blrtlkL·ija. Ova instrukcip sa stcka uzima t!v"
I. Na slici -f-6. registar na magistrali B kodiranje u4-bitnorn polju. ali jc magi strata C prve ncdn<hti. ;:unenjujuc'i ih jt:din,ll'l'JHlm vrcdnosL'u ~ re;.ultatom. Prctposlednj1
prcdstavljena kau mapa bitova. Zasto' 1 rcc na 'tcku jc~ operand CIJC hitt>vc tn:ba pum;:riti. Oni sc pomeraju uclcsno za 0 d')
2. Na slici 4-6 postoji hluk .. Najznacajniji bit" Nacnajte njegovo ekktricrw kolo. :II rnesL1, u /avisnu-;ti od vrcdnmri 5 najrnanjc: znac.rjnih bitova pos!r:dnje reci m
3. Kalla se aktivira polje JMPC mikroinstrukcij.?. na sadrzaj rcgistra MBR i polje
stckulprc"'talih 27 IJitD\il poskdnJc reci sc zancman1ju). 13it;a o1.nacavanje (arit-
NEXT ADDRESS prirnenjuje se upcracip OR da bi se dobila adresa slcdec.: mikroin- mctiC·kll) umnu7.ava sc udcsno onolik.o pula kuliku .J<.: pumcran_)e. Opkod instrukcij~
ISi-iRJC 122ilh 7 .\i.
strukcijc. Postojc li okolnosti u kojima hi imalo smisla da NEXT _ADDRESS bulle
O:d FF i da se upotrcbi JMPC' 1 al Koja_1c ariunc:ticka opcracip ckl ivakmna pumeranJU ut!csno za 2 rne,ta'-'
..J. Prctpo-;tavitc dajc u prirncru sa -;like 4-141a) poslc naredhe 1f dudata naredba bJ Pros1rit~ mikr>~kuJ taku da obuho, ~111 uvu in.;trukci.Ju kao dco IJV!'vl skupa .
k ~ 5; l..J. instrukc·ip iSHL tcclobrujno aritmctickn pumcranJc ulcvo) postoji u JV;-..! skupu in-
Kaku hi izgledau novi ascmbkrski k1)d"! Prctpostavitc da prcvodil:.Jc istovrclll<cll<> 1 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 rc·drhl~cu ~ ruuit.iWill. Prt'tposlt:dnja rcc na stckujc
optimizujc kl1d.
npcrand cijc h!lo\ c trcha pnmcriti. 0111 ..;c ponwra_1u ulc\ o 1a ()do 31 mesta. zavisn)
5. Naveditc dva ra.dicita IJYM prcvoda skdccc Java naredbe:
ud vrnlno-;ll '; najmanjc zna(,qnill bit<1Va posblnJc rcl:i na steku iprcustalih 27 br-
~ k + n + 5:
1
t,)v'' poslc'tln.J..: rcci ..;c z:mcn;,rrujt11. ~a-;l:il:1 pralila mc~sta na desnoj strani popun_i::-
6. Navedite Java naredbu kop generisc skdcci IJYtv1 kCJt!: V.lJU :-;c nliLiln.L CJrh.od in~truk •.·ijc :SHLjc 120 lCh:/S l.
ILOAD j a; Kup_1e :tritn:cticka upcraup ck\ iYaknlna pnmeranju ukvo La 2 mesta'l
ILOAD n
ISUB bi Pn>:.:1ril~ 1~1i~n.'kod rak,) cb Pbull\ ati uvu instn:kciju kao t!co IJY!'vl ,kupa.
BIPUSH 7 15 . .IY,\1 INVOKEViRTUf\.L llli>ra da 1:1a k"li!..<l 1ma parametara. Za;to·)
ISUB
16. lmp!cmcntiur_, JV:\l in,trul,ciiu DLO,\D ~~t proc·csc\1- ,\llc-2. Ona 1majcdnohajtni i1--
DUP
IADD
dcJ.;s 1 lc,ka!nu prlHll•~nljin1 na lcl.J pc>nci.Ji ,n,,:;u net ,t-:k. Zatim na stck sme;ta i ,Ic-
iSTORE I del~U ~[h) redl)~!c·du adrc~ai reC.
!""
326 Poglavlje 4: Nivo mikroarhitekture Vdhanja 327

17. Skicirajte konacni automat za sabiranje rezultata teniskog rneca. Pravila tenisa su 27. Racunar s petostcpenom paralelnom obradom radi sa uslovnim programskim skoko-
slcJeca. Da bistc pobcJili, moratc osvojiti najmanje cetiri poena i morate imati ha- vima tako sto L.austavi rad tokom tri sistemska ciklusa kada naidc na grananjc. Koliko
rem Jva poena vise oJ svog protivnika. Pocnitc oJ stanja (0, 0) koje oznacava Ja ni- ovo zaustavljanjc stcti perfom1ansama ako 20% svih instrukcija predstavljaju uslov-
jedan protivnik nema poene. Zatim dodajte stanje ( l, 0) koje znaCi da je A dobio ne skokovc'J Zancmarite sve druge uzroke zaustavljanja, osim uslovih skokova.
poen. Li'lk oJ stanja (0, 0) do stanja ( l, 0) oznacite sa A. Sada doJajte stanje (0, l) 28. Prctpostavimo da racunar preuzirna unapred do 20 instrnkcija. Mcdutim, prosecno 4
koje oznacava Jajc B dohio pocn i li'lk od (0, 0) do (0, l) oznacitc sa B. Nastavite da od ovih 20 instrukcija su uslovni skokovi, svaki sa 90 procentnom verovatnocom
dodajetc stanja i lukove sve dok ne obuhvatitc sva moguca stanja. tacnog predvidanja. Kolika jc verovatnoca da prcthodno prcuzimanje instrukcija
18. Ponovo razmotrite prethodni problem. Postoje li ncka stanja koja se mogu izostaviti, radi na pravi nacin?
ada to nc promcni rezultat nijcdnog mcca? Ako mislite da postoje, koja su to stanja 29. Pretpostavite da !reba da izrnenimo projckat proccsora na slici 4-43 tako da umcsto
mcdusobno ckvivalentna") 8 ima 16 rcgistara. 1ada rncn.ramo instrukciju 16 da koristi registar RS kao svojc od-
19. Skicirajte konacni automat za predvidanjc skokova. inertniji oJ onog na slici 4-42. rcdiste. Sta ce sc ctogadati od sestog ciklusa nadalje"~
On trcba da promeni preclvidanjc tek nakon tri uzastopna promasaja. 30. Zavisnosti stvaraju ncvoljc procesorima koji imaju paralclnu obradu. Postoji li ikak-
20. Pomeracki registar sa slikc 4-27 ima maksimalan kapacitct od 6 bajtova. Da li bi se va optimizacija u zavisnosti tipa WAW koja bi mogla da popravi ovakvo stanjc?
mogla napraviti jeftinija jcdinica za prcuzimanjc instrukcija sa 5-bajtnirn pomcrac- Koja jc to optimizacija' 1
kirn registrom"J lli sa 4-bajtnirn' 1 31. Napisite ponovo interpreter proccsnra Mic-l, ali tako da LV pokazuje na prvu lokal-
21. Posto smo ispitali jeftinije jcdinicc za prcuzirnanjc instrukcija u prcthodnom vci- nu prorm:nljivu umesto na vczni pokazivac.
hanju. ispitajmo sada i one skuplje. Da li bi imalo smisla dajcdinica za preuzimanje 32. Napisite simulator za jednostruki dircktno preslikani kd. Ncka broj oJrednica u
ima mnogo veci porneracki rcgistar (recimo. sirinc 12 hajtova)' 1 Obrazlozite i pozi- kcsu i duzina reda budu paramctri simulacije. Eksperimentisitc sa simulatorom i iz-
tivan i ncgativan odgovor. vcstitc o onome sto saznate.
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 0l• 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 zau£imanje 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.
..,...,
1\ii· .

!;ji···::.,.

rr
.

~
,.
f

5
·'

NIVO ARHITEKTURE SKUPA


INSTRUKCIJA

U ovom poglavlju dctaljrh> .l!'Jvurirno ,, mvou ~trhitckture 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 !l~lliVa arhitcktura r~ll'Ltnara iJi ponckad (IlC-
laCiiO) asemr•:crski jc1.ik racunara.
Niv<• IS.·\ poschnt> JC 1.nac~:j~u1 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 ilvr.~ava 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
inrerpretiranjc~m. 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:ardh·rtr.::ha cla nauci ~am<> jc,cil- ni'.·oa !SA i tada ce moci da
direktn<l izvr~ava ,;vc programc . .'\ivo !SA dciin;:;c veLu u:mc:du programskih prevo-
dilaca 1 !larch era. ~JCgt>v JC.7ik rmxaju da r;l!.umcju ubc str~m~. Odnusi koji vladaju iz-
mcdu pn>granbkih prCit'dibc:a, ni\\l;tiSA i hanhcra prikazanr su na sJi,·i 5-1

329
- 330 Poglavlje 5: Nivo arhitekture skupa instrukcija 5.1 nivoa ISA 331

Zbog svega sto smo naveli, projekat nivoa ISA ne postaje manje vazan. Dobro
Program l smisljen nivo ISA ima znatne prednosti nad nekirn lose projektovanim, narocito u
I na FORTRAN-u 90 /
Program na jeziku C
pogledu odnosa sirove racunarske snage i ccne. Ako je sve drugo isto, razliCiti kvali-
Program na FORTRAN-u 90 Program na JDziku C teti nivoa !SA mogu da promene pcrformanse i z.a 25%. Zeleli smo da istaknemo
prevodi se u ISA program prevodi se u ISA program
Cinjenicu da trziste otezava (alii ne sprecava sasvim) odbacivanje zastarele !SA arhi-
Softver
tckture zarad novije. Bez obzira na to, povremeno se pojavi neki nov !SA projekat

l Nivo ISA

ISA program se izvrsava


I Hardver
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.
pomocu mikroprograma iii hardverski
Sta neku ISA arhitckturu cini dobrom? Postojc elva osnovna cinioca. Prvo, dobra

l~ Hardver I !SA arbitektura trcba cia definise ~kup 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
Slika 5-1. Nivo ISA je ve1.a izmcuu prograrnskih prcvodilaca i haruvcra. 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,
U ideal nom slucaju, kada projektuJC nov racunar, projektant ce se posavetovati sa pa organizacija mora biti mnogo slozenija da hi se postigle iste pcrformanse. Projekat
autorima programskih prevodilaca i inzcnjcrima hardvera i dogovorice se s njima o koji iskoriscava prednosti odrec1cne tehnologije mozc da izazove bunt ll ca.si vode, i
tome kakvc ce biti karaktcristike nivoa !SA. Ako autori prevodioea zele neke karak- obezbedijednoj generaciji isplativu implementaciju, da bi ga odmah potom prevazisli
tcristi"e koje inzcnjcri ne mogu da u-,tvarc na racionalan nacin (npr. instrukciju ,skoci !SA projekti koje su napravili dalekovicli projektanti.
i odmah me isplati''), one necc uci u nivo !SA. Slicno tome, ako strucnjaci za hardver Drugo. dobra !SA arhitektura treba da obczbedi jasno odrediste za prevedcni k6d.
imaju zgodnu komponenlll koju zcle da primene (npr. memoriju sa superbrzim pristu- Regularnost i potpunost palete izbora va:Lne su karakteristike kojirna se ISA arhitek-
pom recima cijc Sll adrese prusti brojcvi ), ali softverasi nisu ll stanju da naprave ki'Jd tura ne odlikuje uvek. Te karakteristike su vazne prevocliocu koji se moze namuciti da
koji hi tu osobinu iskoristio. i ona ce ostati na crtacem stolu. Posle mnogo pregovar- bi oclabrao najbolju od ogranicenog broja rnogucnosti, narocito ako neke naizgled
anja i hrojnih simulacija, iskristalisace sc !SA arhitektura savrseno prilagodena iz- ociglednc mogucnosti nisu dozvoljene u !SA arhitekturi. lJkratko, posto jc nivo ISA
abranim programskim jet.icima, koja ce moci da se realizuje. veza izmedu hard vera i softvera, on treba da usreci i inzenjere hardvera (lako se i eli-
Tako je u teoriji. i\ kako to izglcda u sivilu realnosti' 1 Kada se najavi nov racunar, kasno implementira), i autore soft vera (lako se pise k6d za njega).
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 5.1 PREGLED NIVOA ISA
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 Zapocnimo analiziranje nivoa !SA pitanjem sta on predstavlja. Pitanje mozda iz-
sve pocnu od pucetka. glcda jcdnostavno, ali odgovor mozc biti slo?.cniji nego stu zamisljate. U narcdnom
Ovakvim stavom kmionici vrse vcliki pritisak na projektante da zadrzc istu ISA ar- odeljku rasvetliccmo problematiku nivoa !SA. a zatim cemo anali;irati njegove mc-
hitekturu za sve modele ili da nove modele ucine barem kompatihilnim sa starijim morijske modele. rcgistre i instrukcijc.
\·erzijama (engl. buchmrd cn!nputi/Jlc). Time podrazumevamo da on mora izvrsavati
-1!
stare programc bcz ikak.vih izmcna. i'vlcdutim, sasvim je prihvatljivo da nov racunar . ;,; 5.1.1 Svojstva nivoa ISA
3
ima i nove instrukcije. kao i drugc mogucnosti koje moze da iskoristi samo nov softver. !; Nivo !SA se detinisc na osnovu utiska koji racunar ostavlja na onoga ko programi-
Prcma semi '>a slike 5-1. sve dok projcktanti uspevaju da nivo !SA bude kompatibilan
s prethudnim modelima, oni s hardvcrom mogu da rade .~ta god nadu za shodno, jer
!
'$ii
ra na masinskom jeziku. Posto nijedna (mental no zdrava) osoba vise nc programira

~
skoro niko ne brine o stvarnom hardveru racunara (cak i ne znaju sta on sve radi). Pro- ~I rutinski na masinskom jeziku, izmenicemo navedenu definiciju i reci cemo da je k6d
'I
. ' nivoa !SA ono sto kao rewltat i1.baci programski prevodilac (z.anemarivsi za trenutak
jcktanti rnogu da pretvnre projckat zasnuvan na mikroprogramiranju u projckat zasno-
pozive operativnom sistemu i simbolicni ascmblcrskijezik). Da bi programski prcvo-
van na dircktnnm izvrsavanju i da dodaju paralclne obrade. superskalarne dodatke i ; dilac mogao da gcneri~e k6d ni voa !SA, autor programskog prevodioca mora znati
svc drugo stu 7ele, pod uslovum da ostvare kompatibilnost s prcthodnim nivoom ISA. ~
...,_{
koj i jc mcrnorijski model konkretno primenjcn, kakvi su registri i tipovi pod a taka i in-
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. f "
strukcije dostupne itd. Skup svih ovih inforrnacija definise nivo !SA.

1
~
;:
332 Poglavlje 5: Nivo arhilekture skupa instrukcija 5.1 l'regled nivoa lSA 333

Shod no ovoj dd1niciji. pitanp kao sto su: da li je mikroarhitektura mikroprogrami- pravljenjc takvih C:ipova. lntel je ina sudu pokusao da zabrani drugirn proizvodacima
rana iii nije, da li postoji paralelna ohrada iii nc, da li jc procesor superskalaran iii nije kloniranje njegovih cipova, mada je izgubio proces.
itd., nisu dco nivoa !SA zato sto sene postavljaju (nisu vidljiva) autoru prograrnskog Drugo vazno svojstvo nivoa lSAjeste cia on veCini racunara obezbeduje barern dva
prevodioca. Medutim. nismo hili sasvim iskreni u prethodnoj izjavi, zato sto ncb. ud radna rdima. Rezim rada jczgra (engl. kernel mode) namenjen jc izvrsavanju open-
pomenutih pitanja uticu na performansc. a to jeste vidljivo autoru prcvodioca. Raz- tivnog sistema i u njcmu sc mogu izvrsavati sve instnrkcije. Korisnicki re:lim rada
motrite. na primer, supcrskalarnu semu u kojoj se uzastopne instrukcijc mugu izdavati (engl. user mode) namcnjen je izvrsavanju aplikacija i u njemu nije clozvoljeno izvrs~­
u istom ciklusu. pod uslovom dajedna mlnjih radi s cclim hrojcvima. a druga s hmje- vanje izvcsnih osetljivih instrukcija (kao sto je direktno manipulisanje ke§om). U ovom
vima u formatu pukrctnog zareza. Ako bi prevodilac pri prevoLknju rnogau da n<tizme- puglavlju uglavnom c<:mo se baviti instrukcijama i svojstvima korisnickog rdima rada.
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-
5.1.2 Mcmor\jski modeli
vojcnost susL·clnih 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 Na svim raC:unarima m<:morijaje podeljena u cclije sa uzastopnim adresama. Tr:-
dunosi ncki industrijski kon;orcijum. U drugim arhitekturama on nije taku zvaniC:no nutno je uobicajena ve!icina ceJijc 8 bitova, ali Sll U proslosti kori~Cl'llt' ce!ije velici~e
clelinisan. Na primer. V<J SPARC (SPARC verZije <)) ima L\aniC:nu deliniciju (\Vcaver od jednog, pa do 60 bitova (pogledajtc sliku 2-1 0). Osmobitna celija se znve b~tjt
i (lermoml. llJ<J4). !Jelinicioni dokument razlicitim realizatorima omogucuj" dana- (cngl./;yte). Bajt ima osam bitnva zato sto su ASCII znakovi du7jne 7 hitova. pajedm
prave racunarc na koji ma cc se izvrsavati potpuno isti sort\ cr i dohijati potpuno isti ASCH znak i bit parnosti mogu cia sc smeste u jedan bajt. Ako u buducnosti industri-
rezultati. jom zavlada UNICODE, tada cc raC:unari mozda raditi sa 16-bitnim uzastopno nume-
U slucaju pn1ecsora SPAR C. trebalo jc razlicitim proilvmlacima cipova omoguciti risanim jcdinicama memorije. Na kraju krajeva, 24 je izvcsno lepsi hroj od 23. pos:o
da napravc funl;ciunalno idemicm: Sl'ARC cipnve koji bi se r~ulikuvali samo po per- je 4 stepen broja 2, a 3 nije.
!mmansama i ceni. Zhog toga su proi;vodaci cipova morali da /naju ~ta se occkuje od Bajtovi se grupisu u cetvorobajtne (32-bitne) ili osmobajtne (64-hitne) reC:i p)-
SPARC C:ipa Ina nivuu lS''I.). Prcm~t lllme. u detiniciPrwm dnkumentu treha navesti mocu instrukcija koj<: manipulisu citavim reC:ima. U mnogim arhitekturama nenphoJ-
uputrchljeni mc·rnorijski model. registre i nJiiHlVa ~v,l.jstva. nacin rada in::.trukcija itd .. no je da reci budu poravnate na svojim prirodnim granicama. tako da. na primer.
ali nc i ddalJt' mikmarhitckwrc:. C:etvorobajtna rec moze da poC:nc na aclrcsama 0. 4, 8 itd .. aline ina adrcsi l ili 2. S!ic-
Takvi dctinici,Jni duktiillL'Ilti sadr/.c normatiYne odcljl-~c· u kojima '>e iznose zva- no tome. osmohajtna rec mozc: da poC:ne na aclresama 0. 8 iii 16. aline ina adrc'iama
niC:ni ;ahtcvi r infonnativne nJcljkc' ko.ti su pumoc C:it:tocim,t. a!i nisu cleo ;.vanicnc 4 ili 6. Poravnavanje osmobajtnih reci prikazano je na sl ici S-2.
dctinicijc. L: norrnativnimot!.cljcima staiJ;._, se kmic.tt' rcl'i: ,·c (~a ncsto :ito .Jl' ohme-
;nu.\. nc SJII,. tza ncsto <wjc ;abranjcnl•J i irehu (;a ne.\to 't<J hi bil,> po/cljnP). Na pri- Adresa Adresa
8 bajtova ----- --8 bajtova
m<:r. reC:cnicurn
24 •
. •
24
1::.\'r.\·u\·onje rc::_t'l"~ i,,unog O,ll~i'dll i:::Lt::\ U1 ·e gn'.~'k.u. 16

I 19

• 18 ) 11 • 16 16
J,;,,J.c sc cl:t sc ifvrs<~v~mjc' upk\1da ~o1i ni_jc ddinis:Jn nc 11\lllc iJJw.,to zanemariti. vee 15. 14!13 12; 11 10 • 9 8 15 ! 14 ' 13 • 12 I
mora da il<l!twe gr6ku koja sc: na ,,dg11var:quci naC:in ,.,hr:tduje. lhakva situacija se - ~


'
" -·
alte-rnativno 1nu/.~ osta·viii be/ c~. . :.pbcitnog odgovor~l. i u to:n :-)IuC:aju bi g:ornja reCe- OsmobaJtna rec Neporavnata osmobajtra
poravnata na adresi 8 rec na adresi 12
nica trebalc• da giasi. n:t prirm·r. Ll\a:...o:
(a) ibl
1~·/~'kut i::vr.~(l\'unjtl re:~(_ tTisunog Of'kodu dcflni:{(· i;nph'n!cnl<tctjd.
Slika 5-2. Osrnob:~jtnarcc u memoriji ..littlc-endian'". (a) l'or:~v nata. th 1 Nepuravrwta. Na neki"1
Tu /naci da :tul,,l. plt'\"d!<ica u toj situaciji ne ruo/c da ra"una nina kakvo cleti- racunarimaje neophodno da reci u mcmoriji hudu pnravnatc.
ni,an<J pun:Js~tli]<: i ud'<l d:1 •'"ilavi r:!liil:Jtirn impkmcnla-:ij<iilla ,id>clliU izhorajednc
od v!\..: ;nogttc'nvti. 1 '; -;peciiibciju :trhit~ktun: P" prav1iu :.,e prila/c i skup testova Poravnavanje je l'csto potrebno zato stu memorija tako radi elika~nije. Na primtr.
potth•nt ktJjih '.c mol:e 1111 rditi da !i je udrcdcna imp!em,_·nr,tcija J:tista uskladena sa Pentium 4, koji u J<::dnum trcnutku prcuzima 8 bajtuva iz mcrnorije. koristi 36-hitne 1-
spcci!ikaclJ''m. ziC:ke adrese. ali ima samo 33 adresna bita (s!ika 3-44). Na taj naC:in Pcntium4. i kada
Ja:.;n•• jc· za.~LL• V9 .'il'.\RC ima dclKlllllC:Jt kcJji dctini:<c nivu lSA: da bi svi bi hteu, nc bi se mogao ohratiti neporavnatoj memorijskoj reci zato .<tone moze da iL-
S!'.\R( · l'iptwi verZIJC ') i1vr.\av:.tlt isti soiher. Ne puquji l\'anil'ni delinicioni doku- ricito zada .~ najmanje znaC:ajna hita adrese. Oni su uvck nule. pa sui sve memorijske
mcnt Dl 111\'t> f.S;'\. Pcntiuma -L zato ;l" Intel nt: !"elida nlak~a .Jrugim proizvodaC:ima adrese umnosci R bajtova.
r]'
Poglavljc 5: Nivo arhitekture skupa instrukcija 5.1 Pregled nivoa lSA 335

Ovaj zahtev o poravnatosti ponekad izaziva probleme. Na Pentiumu 4, ISA pro- operacije. Ovakav pristup zadaje prevodiocima veliki posao jer moraju dctaljno da ra-
<>ramima dozvoljava se da se obracaju recima koje pocinju na bilo kojoj adresi zbog zumeju funkcionisanje rnikroarhitekture, ali, s druge strane, omogucava inzenjerima
kompatibilnosti sa starijim verzijama sve do procesora 8088. koji je imao jednobajtnu hardvera da maksimalno slobodno optimizuju koriscenje memorije.
magistralu podataka (i, naravno, nije imao ogranicenja u pogledu poravnavanja memo- Postoje i mcmorijski modeli izmedu ova dva granicna slucaja, u kojima hardver
rijskih adresa na granici od R bajtova). Kada program na Pentiumu4 cita cetvorobajtnu automatski blokira izvesna pristupanja memoriji (npr. ona sa zavisnostima tipa RAW
rec na adresi 7, hardver mora da pristupi memoriji da hi preuzeo bajtove od 0 do 7, a ili WAR), aline i druga. Iako sve ove osobenosti, izazvane vidljivoscu mikroarhitektu-
zatim ponovo da bi preuz.eo bajtove od R do 15. Posle toga procesor mora da uZine re na nivou !SA, mogu da stvore mnogo muke (harem autorirna programskih prevodi-
trazena 4 bajta iz 16 bajtova ucitanih iz memorije ida ih sklopi na pravi nacin kako bi laca i programerima na asemblerskomjeziku). one sui vrlo uobicajene. Takav trendje
dobio cetvorobajtnu rec. prouzrokovan implementacijama mikroarhitckture koje obuhvataju prekoredno izvrsa-
Za mogucnost citanja reci s bilo koje adrese potrebna jc dodatna logika na cipu, vanje mikroinstrukcija, opseznu paralelnu obradu, kes u vise nivoa itd. Kasnije cemo u
zbog cega on postaje veci i skuplji. Projektanti bi zeleli da sc toga oslobode pa zah- ovorn poglavlju imati prilike da vidimo jos primera ovih neprirodnih efekata.
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 5.1.3 Registri
80R8 koji pogresno pristupaju memoriji'~", oni iz marketinga imaju sprernan odgovor:
.. Nase kupce". Svi racunari imaju nekoliko registara koji su dostupni na nivou ISA. Oni upravlja-
Racunari po pravilu imaju jedinstven linearan adrcsni proslor na nivoulSA, koji se ju izvrsavanjern programa, cuvaju privremene rezultate i rade jos mnogo toga. Regi-
proteze od adrese 0 do nckog maksimuma. (cesto 2 12 bajtova iii 2°4 bajtova). Medu- stri koji su vidljivi na nivoumikroarhitekture (kao sto su TOS i MARna slici 4-1), nisu
tim. mali broj racunara ima ;.ascbne adresne prostore za instrukcije i podatke, pa se vidljivi na nivou !SA. Medutim, njih nekoliko. kao sto su programski brojac i pokazi-
preuzimanje instrukcije sa adrese 8 ohavlja u jednom adresnom prostoru, a preuzi- vac steka, dostupni su na oba nivoa. S druge strane. registri koji se vide na nivou ISA
manje pmlataka sa adrese 8 u drugom. Ova sema je slozenija od jedinstvenog adresnog uvek su vidljivi ina nivou rnikroarhitekture jer su tamo i irnplementirani.
pmstora, ali ona ima dve prednosti. Prvo, tako je moguce imati 232 bajtova programa Registri nivoa ISA grubo se mogu podeliti u dve kategorije: specijalni i opsti re-
i 232 hajtova podataka. a da adrese i dalje ostanu 32-bitnc. Drugo, posto svako upisi- gistri. U registre specijalne namene spadaju npr. programski brojac i pokazivac steka.
vanje autornatski ide u prostor za podatke, onemogucujc se slucajno brisanje delova kao i drugi registri specificnih funkcija. Nasuprot njima, registri opste namene su tu
program a. sto je jedan od izvora prugramskih gre:iaka. da cuvaju glavne lokalne promenljive i medurezullate izracunavanja. G!avna im je
]maJle na umu da elva adrcsna prostora -- jcdan za instrukcije i drugi za podatke- funkcija da obezbede brz prist up cesto koriscenim podacima (tako sto se nc mora pri-
nisu isto sto i pmlcljcni kd prvog nivoa. U prvom slucaju. ukupan broj adresa se slupati memoriji). RISC racunari, sa svojim brzim procesorima i (relativno) sporom
udvostrucava i citanjc s bilo kojc adrese dajc drugaciji rezultat. zavisno od toga da li memorijom. po pravilu imaJU najmanje 32 registra opste namene. a sadasnji trend jc
sc C:itaju podaci ili instrukcije. U podeljcnom kesu adresni proslor je i dalje jedin- da ih procesori imaju i vise.
stvcn, samo razliciti kdcvi smestaju podatkc u njegovc razlicite delove. Na nekim racunarima, registri opste namcnc su potpuno simetricni i medusobno
Drugi aspekt rncmorijskog modela na nivou !SA vise je semanticke prirode. Sa- zamenjivi. Ako su svi registri medusobno ekvivalentni, prevodilac moze da upotrebi
svim jc lugicno occkivati da cete instrukcijorn LOAD koja se nalazi iza instrukcije registrator R1 za cuvanjc privremenih rezultata. ali za tu svrhu isto tako moze cia upot-
STORE na istoj adresi, ucitati upravo smdtenu vrednost. Mec1utim. kao sto smo videli rebi i registar R25. Nije vazno koji se registar bira.
u poglavlju 4. u mnogim semama mikminslmkcije se izvrsavaju preko reda. Otuda Na drugim racunarima neki od registara opstc namene ipak mogu da budu u mlre-
pmlaJc ,;a,;vim rcalnu da sc memorija nece ponasali na occkivani naCin. Taj problem dcnoj meri specijalizovani. Na primer, Pentium 4 ima registar EDX koji moze da se
se jos vise zaostrava kod rnultiprocesora. gde svaki od vise prucesora saljc tok (moz- koristi kao regis tar opsle namenc, ali sluzi ida prihvali polovinu proizvoda u operaciji
da preuredenih) zabteva za citanje i upisivanjc islOJ deljenoj memoriji. mnozenja i polovinu cleljenika u operaciji deljenja.
Projektanti sistema mugu da prislupe ovum problcmu na vise nacina. U jednom Cak i kada su registri opstc namene medusobno potpuno zamenjivi. operativni si-
grunicnom slucaju. svi memorijski zahtevi mugu se staviti u niz, tako da :-.e svaki stem iii prcvodioci cesto prihvataju konvencije o njihovoj nameni. Na primer. neki re-
mora zavrsiti pre nego sto se izda sledcci zahrev. Takva strategija degradira perfor- gistri mogu cuvati parametre za pozvane procedure, a drugi se mogu koristiti kao
rnanse, ali je najcistija u scmantickum smislu (sve operacije o,e izvrsavaju striktnim privrcmeni registri. Ako prevodilac smesti u registar R1 neku vaznu lokalnu promen-
program,;kim redosledom). ljivu i zatim pozove proceduru iz biblioteke koja misli da je R1 privremeni rcgistar
U drugom slucaju nc nude se nikakve garancije. Da bi mcmoriju ,doveo u red", koji joj je na raspolaganju, onda po zavrsctku procedure registar R1 moze da sadrzi
program mora da i7.vrsi instrukciju SYNC koja nc dtnvoljava izdavanje nijedne nove nedefinisanu vrednost. Ukoliko u sistemu postoje konvencije o upotrebi registara.
instrukcijc za rad s memorijom dok se nc zavrse sve prethodno zapocete memorijske prevodiocima i programerima se savetuje da ih se pridrzavaju kako bi izhcgli ncvolje.
....
336 PoglaYijc 5: Nivo arhitckture skupa instrukdja 5.1 Pregled nivoa ISA 337

Osim registara na nivou ISA koji su dostupni korisnickim programima, uvek 5.1.5 Pregled nivoa ISA procesora Pentium 4
postoji i veliki broj registara opste namene koji se mogu koristiti samo u re:i:imu rada
jezgra. Ti registri upravljaju razlicitim ke.~evima, mernorijom. ulazno-izlaznim urcda- U ovom poglavlju govoricemo o tri veoma razlicita skupa lSA instrukcija: o ln-
jima i drugim hardverskim komponentama racunara. Njih iskljucivo koristi operativ- telovom skupu IA-32 koji je ugrauen u Pentium 4, o SPARC arhitekturi verzije 9 koja
ni sistem, tako da prevodioci i kori,nici ne moraju znati ni da postoje. je ugradena u procesorc UltraSPARC i o nivou lSA procesora 8051. Nije nam cilj Ja
Jedan upravljacki registar koji irna pomalo .. hibridnu" namenu jeste registar sa iscrpno objasnimo bilo koji od ova tri skupa instrukcija, vee vise da istaknemo vazne
indikatorima (engl.j/ags register) iii PSW (Program Status Word). On sadr:i:i r:v- aspekte nivoa ISA ida pokazemo kako se ovi aspekti mogu rnenjati od jedne Jo druge
ne bitove potrebne procesoru. Najvalniji bitovi u njemu su kodovi uslova (engl. con- arhitekture. Pocnimo s Pentiumom 4.
dition codes). Oni sc postavljaju u svakom ciklusu ALL.i jedinice i odra:i:avaju statw; Pentium 4 je evoluirao u ono sto jeste preko brojnih generacija, a njegovo poreklo
rezultata poslednje opcracije. Uobicajeni bitovi koda uslova su: 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
N- postavlja se kadaje rezultat negativan.
prugrama pisanih za procesore R086 i 8088 (koji su imali isti skup !SA instrukcija).
Z- postavlja se kadaje rezultat nula (Zero!. 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
V- postavlja se kada rezultat izazove prekoracenje (oVerflow).
procesorom 8om; koji je pak bio zasnovan na moclelu 4004, 4-bitnum cipu korisce-
C- postavlja se kada ru.ultat izazuve prt:rlllS (Carry) izvan krajnjeg lcvog bita. nom jos dok su dinosaurusi hodali zemljom.
A- pw.tavlja se kada postoji prenos iz hita 3 (Auxiliary carTy). 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-
P- postavlja \e kada rezultat ima parmr paritnost (Parity).
ni. Glavna prednost rnu je bila veci adresni prostor, iako je tu preclnost iskoriscavalo
Kudovi uslova su va:i:ni za in'->trukcijc koje obavljaju porcdenjc i instrukcijc za us- malo programa zato sto se adresni prostor sastojao od 16.38-1- del a od po 64 KB, ume-
lu\ no grananjc program a ( npr. za inc·mukcije u~lm nog skoka). Na primer. instrukcija sto kontinualne memorije od 2-' 0 bajtova.
CrviP n~rjcc:icc odu1.irna jedan operand od dnrgog i postavlja kfld u~lova prc>ma dobi- Cip 80386 je bio prvi 32-bitni procesor u Intelovoj porodici procesora. Svi sledec't
jcnoj razl ici. Aku su operandi jcdnaki. raziika jc· nul a i on a c.'c postavit i bit L u rcg:istru procesori (80486, Pentium, Pentium Pro, Pentium lf. Pentium IlL Pentium 4, Ccle-
PSW. i\;aknadna instrukcija BEO (Branch Equal- ,,koci ako s11 jcclnaki) provcrava bit ron, XeLlll. Pentium M. Centrino itd.) imaju sustinski istu 32-bitnu arhitekturu kao I
L i obavlja ,kok ak<> jc hit po,;tavljcn. procesor 80386. nazvanu IA-32. pa cerno o njoj uvdc govoriti. Jedina velika izmena
R.eg:istar PSW nc sadr:ii -.amo kuduve usl"va- njcg<l\' pun sadr7.aj ZCJ\ isi od vrste arhitekturc od procesora 803811 hila je uvouenje skupova instrukcija MMX. SSE i
ncunara. C nj,:mu 'L' "~IJ:'t~~L':: r:alazc 1 bitl1vi l-.oji odrcduju rcL.im rad:1 (kclrisnicki iii SSE2 u kasnijim verzijama Pentiuma. Te instrukcije su visokospecijalizovane i na-
JCL_gra). tzv. bit za praC:cnjc t koji se koristi pri otkrivanjtr i ntklanjanju pmgramskih mcnjene su poboljsanju performansi multimedijskih aplikacija.
g:·c~aLt) 1 hitL>Vi koji odrcduju nivo prioritela pr.lccsor~t. tu jest st:rtu' mug:ucnosti Pentium 4 radi u tri rezima. od kojih u dva raJi kao procesor 8088. U realnom
it:vr\av.mja sistcmskilr preki,Lt. SadrLtj rcgistr:t PSW c:·c-.Lu se mo,ic pruC·iuti u kuri- rdimu rada iskljucuju se sve rnoguc'nosti koje su dodavane posle proccsora 8088 i
qrid.um rt:iimu rada, ali sc u nt:Ltnd njeguvih pulja vrL·dnust muze upi:;ivati samu u Pentium -1- 'e ponasa kao taj procesor. Ako neki program uradi nesto nepredvidcno,
n: ,;'imu rada jo.g:ra ( npr. hit koj i udrcduje rc·Lm rada J. ceo racunar t'e se blnkirati. Daje Intel projcktovao ljudska bica. stavio bi un.Jih hit ko-
jirn bi ~e ona mogla prevesti u rc:i:im simpanze (veci deo mozga cleaktiviran. bez rno-
5.1.4 In~trukcije 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-
l\ivo IS..\, najvi;e: kar~tktc:·i;c njcgov skup masinsf.ih instrukcija. One upravljaju vanje programa za stari procesor 8088 u zasticenom rdimu. U ovom rezirnu racuna-
radcJill racunara. ~a l>VOlll ni,ou uvck posrojc in.strukcijc LOAD i STORE u nd:om ob- rom upravlp stvarni (postoJeL'i) operativni sistem. KaJa izvrsava neki stari 8088
liku za premdtanjc pc>lL!laka i;medu mcmorije i rc!!'isnu. i instruh'ija MOVE za ko- program, operativni sistem pravi spcciplno izolovano okru:i:enje koje odguvara proce-
piranje pudataka iL jcJrm;2 regi~tra u dnt;!i. lj\ck pclslojc i ctritmctickc i:;:ilrukcijc. soru 8088; ak.l program prestane da radi, to nece iza;.ivati blokiranjc cclog racunara,
,, >gic'ke instrukcije i instrukcije za purcdcnj~· rodat:tka i gr"nanjc pmgrama Ll zavi- vee se ;,arno o tome saijc poruka opcrativnom ~isternu. Ukoliko kurisnik Windowsa ot-
sno-;ti ud rc'luitata. Vee' sn'u c;c upuznali s nekuliku !S.\ irbtrukc'ip !pogkd~l)tc sliku vuri prowr MS-DOS. program koji sc u njcmu pokrene izvrsava se u virtuelnorn rezi-
+-II). au m·om puglavlju ccnm pro~iriti taj ,;pisak. mu procesora R0~6 cla bi sc Window' zastitio od ncpredvidenog ponasanja MS-DOS
program a.
r
!;
;~

i
r
~
i'' Poglavljc 5: Nivo arhitekture skupa instrukcija 5.1 Prcgled nivoa ISA
!'i'··
338
~;:

,.~ Trcci i poslcdnji rciim jc zasticeni rezim rada u kome se Pentium 4 ponasa kao Bitovi ---------- 16 - - ,---------~--~--
---------------------- 8 ------------
Ax
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
AH 1 AL EAX ------
---··--·- B X - - - - -
i u njemu je omogucen potpun pristup resursima. Njcga koristi opcrativni sistem. BH I BL EBX
Nivo 3 je namenjen korisnickim programima. U njemu je blokiran pristup izvesnim -· CH c? CL - ECX
osetljivim instrukcijama i upravljackim registrima da neki nelegalan progam ne bi
srusio racunar. Ni voi 1 i 2 se retko koriste.
f.-··.
DH
DX
I DL - EDX
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 ESI
verzijc Windowsa) po pravilu podrzavaju samo jcJan segment, pa mnoge aplikacije
ED/
cfektivno vide lincaran adresni pros tor oJ 2 3 ~ bajtova, pri cemu je ponekad jcdan nje-
gov dco vee zauzet opcrativnim sistemom. Svaki bajt ovog adresnog prostora ima EBP

sopstvenu aJresu, a reci su Jugacke 32 bita. Reci se smcstaju u formatu .,little endian" ESP
(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 rcgi~tri, manjc-vise opste namene, iako svaki ima odrcdcne poscbnosti. cs
EAX jc glavni aritmeticki registar; EBX je zgodan za cuvanje pokazivaca ( na adrese u ss
memoriji); ECX igra glavnu ulogu u programskim petljama; EDX jc neophoJan za
OS
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 ES

i 8-bitni registar u svojih 8 najmanje znacajnih bitova. Ti registri lako rade sa sesnac- FS
stohitnim i osmobitnim velicinama. Procesori 8088 i 80286 imali su samo osmobitnc
GS
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 EIP
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
EFLAGS
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-
Siika S-3. Osnovni rcgistri proccsora Pentium-+.
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
5.1.6 Pregled nivoa ISA procesora UltraSPARC III
okvira (engLfi·wne poillter). Na kraju, ESP je pokazivac vrha steka.
Sledecu grupu rcgistara. od CS do GS, cine segmcntni registri. Oni u izvesnom Arhitekturu SPARC jc 1987. godinc uvela korporacija S"un Microsystcms. To je
smislu preclstavljaju elektronske trilobite- fosile zaostale iz vremena kada je proce- hila prva komcrcijalna arhitektura kojajc nosila atribut RJSC Uglavnom se oslanjala
sur 8088 pokusavao da adrcsira 2 20 bajtova memorije koristeci 16-bitne adrese. Do- na istrazivanja obavljcna osarnclcsctih godina na Bcrkliju (Patterson. 19X5; Patterson
voljno je reci cia se oni mogu slohodno zanemariti oJ trenutka kada se Pentium 4 i Sequin. 1932). Prvohitni SPARC jc imao 32-hitnu arhitekturu. ali je liltraSPARC Ill
podesi da koristi jedinstveni linearan 32-bitni adresni prostor. Sledeei registar. EIP, jc- 64-hitni proccsor koji se zasniva na arhitekturi verzije ') i u ovom poglavlju posvcti-
ste programski brojac (engl. Ertendcd Instruction Pointer). Na kraju dolazimo do re- cemo se njemu. Da hismo sc drzali tcnninulogije koju koristimo u celoj knjizi. ovJe
gistra EFLAGS. slo je u stvari registar PSW 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 ~tdrcsirati u ohlikujc ncprckinutog niza duzine 2 64 bajtova. Onaje. na/c~­

~
' lost. toliko velika ( 18.446.744.073.709.551.616 bajtova). cia nijedan postojeci racumr

.
>

''
.
~
l

340 Poglavlje 5: Nivo arhitekturc skupa instrukcija 5.1 Prcglcd nivoa ISA 341

ne moze da je implementira. Dana;nje implementacije mogu da pristupc adresnom i da cc ih ispravno koristiti. Na primer, u registre opste namene lako se mogu smest1ti
prostoru ogranicene vdiCine (2 44 bajtova na UltraSPARC-u Ill), ali ce sc to buducim brojevi u formatu pokretnog zareza is njima zatim obaviti celobrojno sahiranje. an:-
racunarima pubolj.<ati. Podrazumevani rcdosled hajtovaje ,big endian", ali se rcdosled zultat ce, naravno, biti hudalastina, ali hudalastina koju ce proccsor generisati kao i
moze promcniti u ,little endian" ukoliko se postavi odgovarajuCi bit u registru PSW. sve drugo sto muse naredi.
To sto nivo !SA ima veci adresni prostor nego stu reaiizacije mogu da iskoriste Globalne promenljive sadrze konstante, kao i promcnljive i pokazivace potrebne
vazno je jer ce buduce implementacije iz.vcsno morati da uvecaju kolicinu memorije svim procedurama, mada sc, ako je potrebno, mogu i smdtati i ponovo ucitavati na
kojoj procesor mo,ic da pristupa. Jcdan ocl najozbiljnijih problema uspesnih arhitck- ulazu u proceduru. odnosno na izlasku iz nje. Registri lx i Ox koristc se za prosledi-
tura bio jc taj sto jc njihov nivo ISA ogranicavao kolicinu memorije koja se rnoze vanje paramctara procedurarna da bi se izbeglo pristupanje memoriji. Kasnije cemo
adresirati. Jed ina greska kojoj u racunarstvu ncrna leka jcste necluvoijno bitova ..kd- objasniti kako se to radi.
noga dana cc vas vasi unuci pitati kako su racunari uopstc ncsto mogli da rade sa Tri namenska registra koriste se za specijalne svrhe. Registri FP i SP omeduju te-
32-bitnim adresana i sa samo -1-GB realm: mcmorije. kada je samo za pokretanjc pro- kuci okvir (lokalnih prornenljivih). Prvi ukawje na pocetak tekuceg okvira i kmisti -;e
scene igricc potrcbno 8GB. za adresiranje lokalnih promenljivih, na isti nacin kao i regis tar LV sa slike 4-10. Drugi
SPARC-ov nivo !SA je jasan, premda je organizacija regis tara pumalo iskompli- pokazuje tekuci vrh steka i menja vrednost svaki put kada se rec stavi na stek iii skine
kovana da bi pm,ivi proccdurarna bili etikasniji. Iskustvo pokazujc da se nekakvo s njega. Za razliku ocl njega, registar FP menja vrednost sanm pri ulasku u proceduru
posebno organizovanje registara ne isplati, ali sc to nikako ne moze izhec'i zbog per- i povratku iz nje. Treci registar specijalne namene je R31. On pri puzivanju procedura
mancntnog 1.ahtcva da se cuva kompatibi lnost sa starijim verzijama. cuva njihovu povratnu adresu.
UltraSPARC Ill ima dve grupe rcgistara: 32 M-hitna registra opste namene i 32 re- UltraSPARC III u stvari ima vise od 32 registra opste namene, ali su u svakum tre-
gistra za rad s brojevima u forrnatu pokretnog Lareza. Registri opste namene se ozna- nutku pmgramu vidijiva samo 32 registra. Ova osobina. puznata kau rcgistarski
cavaju simlmlima od RO du R31. mada se u odrcL!cnim kontekstima koriste i druga prozor, ehkasnaje podrska pozivanju procedura. Jlustrovanaje na slici 5-S. Osnov1a
imena. Alkrnativna imena i funkeijc regi.'>tara prikaLani su na slici 5-4. 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 trL·nutku
Registar ; Alternativno ime ! Funkcija vide se tacno 32 regisrra opstc namcnc. Regislar CWP (Current Window l'uintcr- pD-
RO GO Hardverski povezan za 0. Njegov sadrzaj se zanemaruje. kazivac tekuceg pmzora) vodi racuna o tnrne koji sc 'ikup rcgistara trenutnn koristt.
Cuva globalne promenljive. Instrukcija za puzivanje prucedure :,kri va stari skup regtstma i obubeL1uje pro.:c-
, R1-R7 • G1-G7
duri nov skup regis tara tako sto smanjuje \ rednost u rcgistru CWP. !Ylec1utim. neki tc-
. RB-R 13 00-05
i Sadrzi
- parametre
•,,.. za., proceduru
. koja se poziva .
''-
gistri sc prenose i; procedure puLivaoca u pozvanu proceduru i tak<l sc oh,·lhedt.jc
: R14 SP Pokazivac vrha steka.
1

elikasnn proslcdivanje paramctara iLineclu proccdura. Ova tehnib l'unkcionise tako


R15 :m -
: Privremeni registar.
+ -- ---- ----- stu nekim rcgistrima menja imena: poslc ro;ivanja pnh;edure. regi'.tri s remltatin:<t,
R 16-R23 LO-L 7 Cuva lokalne promenljive za tekucu proceduru. ( od RS do R 4 51 jus u vek su vidlj i\·i. ali .su s~tda to ul:t..:ni registri (od R24 do R31 1. Osam
! w- --- ----- --- -----

R24-R29 10-15 Cuva parametre. globalnih registara '.l' ne rnenjaju- oni uve!.. predstaviiaju isti skup registara.
'R30 FP Pokazivac na osnovu tekuceg okvira lokalnih promenljivih Za ra1.liku "r! memorije. k1 >Ja jc n:titgkd hcskonal':1a !harem SL' takn cini '>tekll '·
! R31 17 1
Cuva povratnu adresu za proceduru koja je u toku. kada se pre\ ise pn,cedura ugne;.dc jcdna u Jrugu, racunaru mu;'c ,b punestane re~i­
' starskth proztlLl. l! takvnj situac:iji .;c nay.t~triji skup regtstara kopir·a u metnuriju Ja hi
Slika S-4. Rc:gistri op;lc namcnc rroc:c:sora lJilraSPARC IlL
se mogan kmistiti kau nedost:tjuci skup. Vali i ubrnut" -· posk punatk~t iL vt;e tlla-
stupnih pwccdura. t~1j i·,ti skup rcgistara mozda :.;e mora ucitati iz mcmorije. Sve u
Svi op:iti registri su sirine 64 bita i. osim registra RO knji sadrzi vreclnost 0. njihov
svcmu. kan stu smn vee rekli. Ll'ng uvc slo7enusti vcrovatno trcba nbaviti vt;e po,ia
sadrzaj sc muz.e citati iii se u njih muguupisivati vrednosti razlicitim in.-,trukcijama La
nego sto vredi. Onaje od pDntoc'i sant" :tku procedure ni.;u dulwko ugnd:cknc j.:d:w
citanje i sme~tanje podataka. Njihuva namena. prikazana na slici 5-4. dciimicno je
u drugu.
uslovljena konvencijom. ali i nacinom na koji hardver tretira uve registre. U principu.
UltLtSPARC lll ima i .'"::'. La r~1d s l,r,Jjevima u fonnatu ;•okrettwg t:m:'/a.
nije dobro od~tupati od namena regi~tara navedenih u gornjoj tabcli. osim aku ste vi
koji mogu da sadr/.e kako .l2-bitnc: v rcdm,st it nhicuc tal'nusti 1 tak.<l i (J4··hilne \ redn,l-
licnu pisali publikaciju .. Male tajnc procesora SPARC'· i stvarno znate sta radite. Pre-
sti (dVihlruk.: tac::osti). Takolic:. par m·~tkvih rcgi:·a:tra mule se iskorbllfi i /a cuvaiJ]e
vodilac ili programer moraju biti sigurni dace program pri,tupati pravim registrima
128-hitnih vrcdnust i ( cct vorosuuk::- tacno:;t i ).
;
1
_,z~:

-~
\\
~t
~ t
Poglavljc 5: Nivo arhitckture skupa instrukcija 5.1 Pregled nivoa ISA 343

ROI GO 0 procesora), procesor 805 l koristi se u ugrauenim sistemima kao sto su ulicno osve-
R1 G1 Globalni 1 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-
R71 G7 Globalni 7
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
CWP =6 bi i.'ip bio jcftiniji. Intel je na zahtev odgovorio tako sto jc napravio procesor 8048, iz

I'" '" '" '"


R 00
kogaje ubrzo nastao procesor 805 I. Uprkos svojim godinama, vrednim pustovanja (iii
R1 05 mozda upravo zbog njih) on se jos uvek masovno koristi u ugradenim sistcmima gdc je
R1 SP Pokazivac vrha steka niska cena najvazniji cinilac. U ovom odcljku ukratko cerno s tehnickog aspekta prcd-
R1 07 Privremeni
staviti procesor 805 I i njegove IJ!iskc roctakc.
R1 LO Lokalni 0
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-
cWP =7 snik. Njegov memorijski model izuzetno je jednostavan. Postoji adre~ni prostor ve-
I/ R2 L7 Lokalni 7 licine 64 KB za programe i drugi adresni prostor iste velicine za podatke. Adresni
RS 00 Odlazni parametar 0 R2 10 Dolazni parametar 0 prostori za programe i za podatkc raLdvojcni su da bi se programski deo smestio u
ROM mcmoriju, a cleo za podatkc u RAM.
R13 OS Odlazni parametar 5 Pr klapanje R29 15 Dolazni parametar 5 Mcmorija sc mo?"c implemcntirati na vise nai.'ina. U najjednostavnijem rdcnju
R14 SP Pokazivac vrha steka R3 ) FP Pokazivac okvira
R3 I 17 Povratna adresa postoji ROM memorija od 4 KB za program i RAM memorija od 128 bajtova za po-
R15 07 Privremeni
datkc. Obc memorije su na cipu. Za male aplikacije, ova kolicina mcmorije cesto jt:
R16 LO Lokalni 0
dovoljna, a imati svu mcmoriju na procesorskorn cipu, velika je prcdno~t. Proccscr
Deo prethodnog prozora 8052 ima na cipu dvaput vise mcrnorije: 8 KB u ROl\1 i 256 bajtova u RAM memorijt.
-~ SadrzaJ
egistra CWP Kada sc koristi ovakav memorijski model, program se fabricki ugrauuje u ROM me-
R23 L7 Lokalni 7 pri pollvanju moriju i korisnik ga nikada ne mcnja.
procedura
R24 10 Oolazrii parametar 0 smanJuje se Druga krajnost je sistem X05 l sa spoljnom programskom memorijom od 64 KB u
l ovom smeru ROM-u ili u EPROM memoriji i dodatnih 6-J. KB RAM memorije za podatke. Mo-
Deo prethodnog prozora
R29 15 Dolazni parametar 5 guce je imati i jedinstvenu spoljasnju RA:VI mcmoriju od 64 KB koja sadrzi i program
R30 FP Pokazivac okvira
R31 17 Povratna adresa i pmlatke.
Procesor X05 I podrzava i srcdnje rcscnje: donjih 4 KB programske memorije i 128
(a) (b)
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.
Stika 5-5. Rad rcgistarskih prozora procesora UltraSPARC Ill. 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-
Arhitcktura procesora UltraSPARC III je arhitcktura tipa ucitaj-smcsti (engL
smatranja procesorajer mnoge instrukcije imaju 3-bitnu poljc kojim se zadaju pntrcbni
load/store urclzitt'cture). Tb znaci da mcmoriji direktno pristupaju samo operacije
registri. Registri imaju imcna od RO do R7. Medutim, postoje cctiri skupa ovakvih r-e-
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
I 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
mora nositi sama instrukcija, a svi rezultati moraju ici u registre (nikako u rnemoriju).
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
5.1.7 Pregled nivoa ISA procesora 8051 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
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- ugradnju u sistcme koji rade u rcalnom vremenu.
stveno koristi u vclikim serverskim konfiguracijama, naroCito u serverima s vise

t
r~
Poglavljc 5: Nivo arhitckturc skupa instrukcija 5.1 Prcgled nivoa ISA 345

Drugo zanimljivo svojstvo proccsora 8051 jcste to sto


se njegovi registri nalaze u celih bajtova, njihovog pomeranja i uzimanja potrcbnih bitova iz njih. S obzirom na
rncmorijskom prostoru. B;ljt 0 prostora za podatke ekvivalentanje registru RO iz skupa svnju velicinu. ovaj procesor izuzetno dobro barata logickim promenljivama.
0. Kada neka instrukcija prmneni sadr7.aj rcgistra RO i poslc toga procita bajt 0, on a tamo Osi m pnmenuta cetiri skupa po osam regis tara. pruccsor 805 I ima i mali broj re-
nalazi novu vrcdnost registra RO. Slicno tome, hajt l memorije jc registar R1 itd. Me- gis tara spccijalne namene. od kojih su najvazniji prikazani na slici 5-f>(b). Registar
morijski bajtovi od 8 do 15 odgovaraju skupu rcgistara 1, i tako redom do bajta 31, koji PSW, slcva nadesno saddi bit prenosa, dodatni bit prcnosa. broj tekuceg registarskog
predstavlja registar R7 iz skupa 3. Opisana organizacija prikazana jc na slici 5-6( a). 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-
4095
,; 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-
't',• . >,"<';: vaju ili onemogucavaju tri tajmerska kanala. Uz tri tajmerska kanala istovrcmcno
mugu raditi tri brojaca, ud kojih svaki posle odrecknog vremcna izaziva prekicl. Rit
·Programska··
memorija .• 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.
I c I A[XI RS JD 1221 p I PSW 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
lEA 1825jE2 IEs /E1JX<fEo [Xo /IE
- 127 nizak.
Registar TCON upravlja glavnim tajmcrima 0 i 1. Bitovi 01 i 00 po.'lavlj:.0u se
Pros(or za privremeno , • .!
t&l$S1 E2 IEs IEl Ix1 JEDH[Xo liP hardvcrski kada tajmcru istckne zadatu vreme. Pomocu bitova R 1 i RO programu se
smestanje podataka · dozvoljava da ukljucuje i iskljucujc tajmcre. Ostalim bituvima sc rad tajmera vczujc
48
/o1 I R1 Ioo IRo I EQTl }Eo JTo ITCDN ili za ivicu signaLt radnog takta ili za visuk nivu signala.
Memorija koja se maze adresirati bit po bit Poslcdnjim registrom. TMOD. odreduje sc re/.im rada svakug od dva tajmcra (osmo-
----- ----- 32
: : : : : Banke sapo 4 registra::::: I Ta1mer 1 I Ta1mer 0 / TMOD 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 pt·iLvani! upr<tvlja-
- ·- - --- 8 brtova - - -- - -- -- 8 b1tova --- - - --- --- ju potrosnjorn strujc i serijsJ...im priUjul:knm.
(a) (b) Svi pomenuti .'ipeL·ijalni registri i jo~ 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.
Slika 5-6. (a 1 Organizacija mcrnorij<" ugradcnc na cip 805 I. ( h 1 G lavni rcgistri pron:s<wa ~051.
~ Oni .sc mogu adrcsirati kao i me:n!lriJa. slic·no registnma ml RO do R7. i'i<t primn. aku-
mulator. rcgistar knji koristi vec'ina arHmetiC·kih in:-;trukcija. naLt;i sc na adn:si 2-iO.
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 U procesoru ~052, cija sc rcalna mcmorija nalazi na adresama od l2o do 255. sreci-
i
:)I jalni rcgistri se nalaze u menwrijsl-..um prostoru. K:.tdct sc: primeni dm::ktn<l adre-;iranjc.
adrcsirati. Proccsor 8051 ima skup instrukcija za postavljanjc. brisanjc. primcnjivanje
opcracija AND ili OR i tcstiranje specificnih bitova adresiranih brPjem izmcdu 0 i 127. ~i pristupa sc specij;tlnim regi.strim;t. dok se indirektnim ;tdresiranjem mcnuH·ijc (prcko
{i
pukazivaca u rcgistru) adrcsira R.\1vl mcmorija.
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-
-~!
'j !
gnalnih lampica i drugih ulamo-izlaznih urcdaja. Ove specijalnc memorijske lokacije
~ i
omogucavaju proccsoru 8051 da pristupi takvim promcnljivama bez preuzimanja
'-?:
•: I

~~ i

l:
rr
'j
'I~.
346 Poglavljc 5: Nivo arhitckturc skupa instrukcija podataka 347

r~

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

£::
~
f,

348 Poglavljc 5: NiYo arhitckture skupa instrukcija pod a taka 349

Poslednji tip podataka je pokazivac, koji u stvari predstavlja adre~u u racunaru. Tip Jednobitni 8-bitni 16-bitni 32-bitni : 64-bitni 128-bitni
Vee smo sc vise puta susreli s pokazivacima. U procesorima Mic~.c registri SP, PC. LV
i CPP sadrze pokazivace. Pristupanje promcnljivoj koja sc nalazi na liksnom rasto~
Bit
Oznacen ceo broj
I
,X
!X
janju od pokazivaca (kao sto radi instrukcija ILOAD) uobieajcno jc skoro na svim
Neoznacen ceo broj X
racunarima. .i
Binarno kodiran
i decimalan broj.
5.2.3 Tipovi podataka Pentiuma 4 : Broj u formatu X X X

Pentium 4 podr7ava oznacene cele brojcve kao komplerncnte dvojke. ncoznacene pokretnog zareza _ _l
- ---

ccle brojevc, binarno kodirane decimalne brujcve i brojeve u fonnatu pokretnog zareza Slika 5-S. i'iumcricki tipovi podataka proccsora UltraSPARC III.
prema standardu IEEE 754, kao sto je prikazano na slici 5~ 7. Zahvaljujuci tome sttl l'c>drLtt)i tipovi oznaccni su simbolom X.
vodi poreklo od ~kromnih osmobitnih. odnosno sesnacstobitnih procesora. on sa celim
brojevima ove du:l.inc radi c!obro i ima brojne instrukcijc za aritmeticke i logicke ope~ 5.2.5 Tipovi podataka proccsora 8051
racije s njima. kao i za njihovo porectenje. Operandi ne moraju da budu poravnati u me~ Proccsor o05l poLnaje vrlo ograniccn broj tipova pudataka. Uz jed an izuzctak. svi
moriji. ali se postizu bolje pcrforman~c ukoliko su adrese reci urnnosci ml 4 bajta. 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-
Tip Jednobitni 8-bitni ' 16-bitni 32-bitni i 64-bitni 128-bitni drzane jcstc 8~bitni hajt. kao sto se vidi na slici 5~9.
Bit
Oznacen ceo broJ X iX ;X
rip~----~-~- -~~l"lobitnil8-bitni ~-bitn~J~ 28-bitni
16-bitni j32-bitnQ
Neoznacen ceo broJ :X ·x ,X , Bit
L.-~-~-~ --··--~~~
X
-~~ .. i I
: Binarno kodiran

*-1-
X : Oznacen ceo broj X
I
I decimalan broj
i-- ~-- ~~---~

LNeoZ!lacen ceo broJ


[ Broj u formatu 'x
pokretnog zareza
i Binarr:o t-zod1ran

-~. . 1•=1
j

: decimalan broj
i - ~-~-···--~·--·---·
Slika 5-7. Numencki tipovi podataka Pentiuma 4. Podrzan1 tipovi oznaceni su simbolom x. i Broj u formatu I
i pok;etno_g z~~-~~ __ ____i_ I
Pentium 4 radi dnhm i sa 1-\~bitnim ASCII znakovima: posll1.Je spccijainc instruk~
Slika 5-9. NU!ncricki tipovi podataka proccsora WSI.
cij~ La k(>piranje i prdra/.ivanje ;nako\ nih ni;.m a. One -;e mc>g:u i-;c>ristiti is nizm:ima Podr!ani tipovi oznaceni su simbolom .x.
cija j~ duzina unaprcd pn1nata i sa t)l]im:: ciji .ie kraj oznacen p<lsetnim 111<1!-:nm. Ce~
sto 'iC nalcve u hibliutckama instrukc:ija za rad s nizovima. Pr<>ce~Pr 805 I ima i drug:i hardverski podrzan tip pudataka koji se ne knristi u ant-
m..:tiC:·k im ''j'CraL·ijuma: bit. Blok od 16 bajtova koj i pucinje na adresi J:::> predstavlja me-~
5.2.4 Tipovi podataka proccsora UltraSPARC III llltJriju urijciHisanu na hitovc. Svaki bit iz tog bloka moze se pojedinacno adresirati
ktlri~c'.:njc~;l rastojanja u intervalu od 0 do 127. Bit 0 jc krajnji desni bit u bajtu32, bit I
UltraSPARC Ill pudrzava sirok spck.L1r fnrmata p<;d;ll:tka. ka,J ~tujc prika/JIW n:t jc dtJ nicg::• itd. Za pojedinacnc hitove postojc instrukcije za postavljanje. brisanjc. pri~
slici 5~8. Samo ;:a cek hrojC::\e on podrzava usmubitnc. ~csnaestt1hirnc. tridt:,etdvl)~ mcnjiv:mie t>peracija AND i OR. dopunjavanje do jedinice. prcme,~tanjc na odredenu
hitne i setdesdCCI\!lrohitne 0/Jlaccnc i llCOL!ncene opcT!lllck. O!!lcll'c?lli c·cli brojevi ;w,:i,:iju i tcstir:tnjc. U ugractenim sistemima pojedinacni bitovi se kori,tc za cuvanje
su predstavljeni kump!cmcnlt>m ,lvPjkc. L'kljuce11i sui Ppc:r:Jndi u k·rmatupc·kretm>g: st:tlch!l prckidaca. signalnih lampica itJ., tako daje mogucnost dircktnog manipuli,anja
1areza duzine 3:::', 64 i 1:::'8 bitm au skbdu sa sundard!!rn lEI:E 754 (::a 3.C~bitnc i nj i ma J, 1hro do\ Ia.
64~bitne brojcvc ). I3inarnu kodirani dCc'iiiJalni brujL'\ i ni~u rodrzani. Svi llpcrandi
moraju biti poravnati u ;ncnwriji.
Procec;or ( :ltraSf'.\RC Ill prcteznn ;;c (•,Janj:; n;, rc~istre i ,J.,.,;m ''--:: njcgdve instruk~
cije rade sa 64~bitnim rcgt,trima. Znakovr:~ i znakuvnc nizuvc ne P<'dr7av aJU spccija!J;e
hardv·erske instrukc1jc. S timtipovim:t pndat:tka rad: s,' i,kljuciv •.> solhersk.i.


~
l'~

350 Poglavljc 5: Nivo arhitckture skupa instrukcija 5.3 Formati instrukcija 351

5.3 FORMA TI INSTRUKCIJA Efikasnost konkretnog skupa !SA instrukcija veoma zavisi od tehnologije racuna-
ra na kome ce se implemcntirati. Tokorn duzeg perioda ta tehnologija trpi korcnite
lnstrukcija uglavnom sacirzi opkoci, obicno uz ncke ciodatne informacijc o tome promene, pa se ncki izbori na nivou ISA kasnije pokazu pogresnirn. Na primer, ako je
ociakle ciolaze operandi i gdc trcba smestiti rezultate. Opsta tematika zadavanja mesta potrebno brzo pristupanje memoriji. dobro je da sc projekat zasniva na steku (kao
operanada (tj. njihovih adresa) zovc se adrcsiranje i o tome cerno govoriti detaljnijc LJVM ), ali ako to nije od presudne vaznosti, onda projekat treba orijentisati tako cia
u ovom odeljku. pretezno radi s rcgistrima (kao UltraSPARC Ill). Citaoci koji misle daje lako izabrati,
Slika 5-10 prikazuje vise mogucih formata za instrukcije nivoa 2. Instrukcije uvek neka na listu hartije napisu svoja predvidanja u poglcdu (I) tipicnog radnog takta pro-
imaju opkod koji saopstava sta instrukcija radi. Osim njega, instrukcija moze sadrzati cesora i (2) tipicnog vrcmena pristupanja RAM rncmoriji za racunare koji ce se poja-
jednu, dve iii tri adresc, a ne mora sadrzati nijednu. viti ;:a 20 godina. Zatim neka taj list hartije presaviju i cuvaju 20 godina, a onda neka

I OPKOD l 1
OPKOD -r - ADRESA
1
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
(a) (b)
mogli. ipak moraju da razmisljaju kratkorocno. Ako taj elcgantni skup !SA instrukci-
ja bude imalo skuplji od postojeccg konkurentskog rogobatnog skupa, kompanija

[ OPKOD I ADRESA1 I ADRESA2 J I OPKOD I ADR; I ADR2 I ADR3 I mo:l.da nece docckati da zadivi svet svojim elegantnim ISA resenjern.
Kadaje svc drugo otprilikc isto. kratke instrukcije su boljc od dugackih. Program
(c) (d) 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
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.
s vrcmenom verovatno trebalo da izgubi vaznost. kad sc softvcr ne bi razvijao brie
nego sto opada cena memorije.
U nekim racunarima sve in.strukcije su iste du/.ine: u drugima mogu hiti razlicite O-,im toga, minimiwvanje velicine instrukcija moze otezati njihovo dekodiranje i
duzine. Instrukcije rnogu biti kracc od reci. duzine rcci i duze od reci. Kada Sll sve in- njihovo eventualno preklapanje. Prema tome, stepen skraCivanja instrukcija treba pa-
strukcije isle duzine, to je jednostavnije i lakse se dekmliraju. ali se time rasipa rne- flji vo uskladiti s vremenom za koje ~c dekodiraju i izvrsavaju.
morijski prostor jer sve instrukcije tada treha da budu dugacke kau najduza od njih. Drugi razlog koji ide u prilog skraCivanju instrukcija vee je dovoljno vazan i posta-
Slika 5-11 prikaluJe nekc rnoguce odnosc izmcdu cluzine instrukcije i duzine reci. 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
~-- - -· 1 rec 1 reC - - ---- 1 rec -- brzine procesora tokom poslednje dccenijc nije bio pracen jednako brzim povcca-
njem propusnog opsega mernorije . .lcdno od sve opstijih ograniccnja brz.ine proccsora
lnstrukciJa lnstrukcrja lnstrukci1a lnstrukci)a
nastajc zato stu mcmorijski sistem nc rnoze da dobavlja instrukcije i operande onom
lnstrukcija lnstrukci)a lnstrukcija lnstrukciJ~nstr. ltnstr
lnstrukciJa
brzinom kojom procesor mozc da ih obradi. Propusni opseg svake mcmorije odreden
lnstrukCIJa lnstrukciJa
lnstrukcrja je tehnologijom na kojoj se ona zasniva i inzenjcrskim resenjima. Propusni opseg nije
lnstrukcrJa lnstrukcrJa lnstrukciJa
usko grh1 samo glavne memorije. vee i svih kdeva.
(a) (b) (c) Aku je propusni opseg ke:ia za instrukcije t bls. a prosecna cluzina instrukcije r bi-
Slika 5-11. Neki nmguci uJnosi inuetlu du/.ine instrukciJc i du/inc: rcci.
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
5.3.1 Projcktni kriterijumi za format instrukcija ilvrsavanja instrukcija (tj. brzinu procesora) moze da ogranici duzina instrukcija.
Kada projektantski tim treba da izahere formate instrukci.Ja za nov racunar. mora Ja Kral'e im.trukcijc mace i brzi rad procesora. Posto danasnji proccsori mogu da izvrsc
uzme u ohzir vise cinilaca. Teiinu donosenja ove odluke nikako ne treba potcenjivati. vise instrukcija u svakom sistemskom eiklusu, prcuzimanje vise instrukcija u svakom
Ona sc mora duneti na samom pocetku prujcktuvanja ll<Jvog ncunara. Ako racunar ciklusu radnog takta je imperativ. Ovaj aspekt kcsa za instrukcijc cini duzinu instruk-
~
hude komcrcijalno w,pesan, skup instrukcija ce se mo/.da odriati i vise od 20 glldina. .4\ cija va2nim projektnim kritcrijumom koji ima veliki utieaj na pcrformanse .
Mogucnost dodavanja novih instrukcija i iskoriscavanje drugih prilika koje se stvaraju ~~
',-
';
tokum dugai'kog vremenskng perioda veoma jc vazno, ali samo ako arhitektura (i ~.i
·~
kompanija koja ju je stvorila) opstanu ciovoljno dugo cia arhitektura postane uspdna.
~
1
:I
i
Ill"""""
t~
352 Poglavlj~ 5: Nivo arhit~ktur~ skupa instrukcija 5.3 Formati instrukcija 353
~--------- ----·~--------·-----

Drugi projektni kriterijum jc pros tor u formatu instrukcije neophodan za prihvata- mo/.e se podcliti na (k-l )-bitni upkod i (n+ l )-bitnu adresu. stu znaci dvostruko manje
nje svih L,eljenih operacija. Racunar sa 2" operacija, cije su sve instrukcije krace od 11 instrukeija. ali i dvostwko vise memorije za adresiranjc ili istu koliCinu memorije uz
bit ova. nije rnoguce napraviti. Tuncma dovoljno mesta za opkod koji trcba da naznaci dvostruko vecu rezoluciju. Opkod ud (k+ l) hitova i (n-/)-hitna adresa omogucavaju
potrebnu instrukciju. lstorijaje vise puta pokazala daje lose ne ostaviti dovoljan broj vise operacija, ali je cena manji broj celija za adrcsiranje ili losija rezolucija uz istu
opkodova za dodavanje novih instrukcija postojecem skupu. kolicinu mcmorijc. Izmedu broja hitova opkoda i adrese rnoguci sui znatno slozen.ji
Treci kritcrijum se tice broja bitova u adresnom polju. Razmotrite projekat racu- kompromisi osim navcdcnihjednostavnih. Serna o kojoj govorimo u nastavku nazi;a
nara koji radi sa 8-hitnim znakovirna i irna glavnu memoriju koja mora da primi 2 12 se prosircnjc opkoda (c:ngl. exewi<iing upcode).
znakova. ProJektanti mogu da hiraju da lice uzastopne adrese dodeljivati jedinicama Koncept prosirivanja opkuJa mo/c se najlakse shvatiti najednostavnom prime!lt.
od 8. 16. 24 ili 32 bita. Zamislite racunar sa instruk.cijama duzine 16 bitova i adresama du/.inc 4 bita. kao 1a
Zarnislite sta bi se rnoglo desiti ako se projektantski tim podeli u dve zaracene slici 5-12. Takvu situaclju hismo occbvali kod racunara sa 16 rcgistara (otuda .f-bit1e
frakcije, od kojih ~e jedna zala7e za R-bitni hajt kao osnovnu jcdinicu mernorije, a adrcsc registara) u kojima -.c obavlja.Ju sve aritmeticke operacije. U jednom projektu
druga za to prcdla£e 32-bitnu rec. Prva bi mogla predloziti mcmoriju od 2J2 bajtova, takvog racunara postoja<l bi 4-bitni opkud i tri adrese ll svakoj instrukciji. stu ukup10
o~,nacenih 0. I. 2, 3, ... , 4.294.967.295. Druga hi predlozila mernoriju od 2 10 reci, daje 16 tt\)adresnih instrukciJa.
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- 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
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 in~trukcija. dakle, rasipanje pro- I I I I I I I I I I I I I I I I I
'------- -.--------- ---" --~--y--- ---''----- - '------- ---- --~

stora. Osmobitna organizacija, s druge strane. ohezbeduje adresu svakog 1.naka i tako Opkod Adresa 1 Adresa 2 Adresa 3
uproscava njihovo pon:dcnje.
Zagovornici 32-hitnih reci odgovorili bi da je prcma njihovom predl"gu put reb no Slika 5-12. lnstrukcija sa 4-biLnimopkoJom i tri 4-bitna polja za adresc.
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 /vlcdutim. ako pmjektantima treba !5 troadresnih instrukcija. 14 dvoadresnih in-
kracu instrukciju. stu nc samo da stccli prostor. vee sci hr/.c preu1.ima. Ako hi ipak ~:a­ st:·ukcija. 31 jcdnnadrcsna instrukcija i 16 instrukcija bcz adrese. oni mogu da uro-
drzali 32-bitne adresc. mogli hi da adrcsiraju 16GB memori1e umesto tricavih 4GB trdx~ opkodpv·c od () du 14 /.a troadresne instrukcije. ali da opkml l 5 tumace drugac je

prcma osmobitnom predlogu. lpuglcdajle ,Jiku 5-13).


Ovaj primer pukazujc da se linija rc1ulucija memorijc mora platiti du/im adrcsa- Opk,Jd l 'i u;_nacava da se upkud u stvari nalaLi u bitovima od 8 do 15. umesto ubi-
ma i prema tome, du:i:im iJbtrukL·ijama. Najvi~a rczolucip se posti/.c mcmorijskom 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-
organizacijum u kojoj se svaJ,;i bit mo/:c direktnu adrcs1rari (npr. Burmugh.s B 1700). Jlll. Svih !.+ cl\\•adresnih in.-,trukcija 'adrle 11 i i u svoja krajnja leva 4 bita. a brojeve
Na drugom krajuje memurija kuja se S<btuji cld veoma duga(·kih rcei (npr. CDC ~erij<t ud l!OUU do II Ul u bitovima od 8 do ll. [n,trukcijc sa ohrascem !Ill u krajnja leva
Cyher ima 60-bitne reci J. -+ hiu i ,,brasccm lllO iii llllu bitovima od 8 do 11 tumacice se drugacijc ~ kaoda
Savrcmeni racunarski si-,tcmi drze -:e kt'mpromisnug r~;enja kuje je, u iLv,~snum in' :;e opL>d n~::a1.1 u bitovima od 4 do 15. Re1.ultat su 32 nova opkoda. Postu namve-
smislu. pokupilu n:lJlu\ijc usuhinc dva granic'na slul';0a. Za adrc:;iranje pnjcdinacnih ha -;anw 3 l. opkod II llllllll1 i se tumaci kao da jc stvaran opkod u njegovim Ji-
bajtova koriste sc svi Ilt'ophodni bitnvi. ali 'ie pri pn,turanju memuriji istpvrcmc·nu l-i- l>ll ima od i) clo 15. sto dajc 16 instrukcija bez adrese.

taju ceJa fCC, dve reci, a [l011Chad, CaK i cetiri rcci. ?a citanjc l bajta i1. !llCJll()!'ijc' na Opkod .1e tokc1111 nascg obja~njavanja postajau sve duzi: troadresne instrukcijc su
UltraSPi\RC-u [][ se. na primer. preuzirna najmanjc I fJ hajrova (PL'gleda]lc -.lih.u.\-47 1. tmak -+·hitni opkud. dvoadresne 8-bitni. jednoadresne i 2-bitni. a in~trukcije bez ad:c-
a veruvatno i citav 64-bajtni red kesa. :-.c 16-bitni upkmi.
Pro~iriv<ulje 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-
5.3.2 Prosirivanjc opkodova
gt!larno kao u !l<t'.c·m primeru. U stvari. mngucnost koriscenja opkodova promenljivc
U prethodnom mlcljku vidcli '>lllll kak\1 sc kotnpw;ni:-.i mogu napra\iti izmcdu -(
dul'.ine iThJLC 'c iskuristiti na dva nacina. Prvo, moze se podesiti da sve instrukcljC
kratkih adrc.-.a i visokc rcJ.n]ucijc mcmuriie. U ov<Jlll lHieljku analinrctcemo nove :g hudu !SiC du/ir1c:. Ltko sto (e se naJkraci opkodovi dodeliti instrukcijama kojimajc
kompromi-,c iLrnectu opkodov~t i adrcsa. RaLmlltnte in+k\~hitnu instrukciju sa i:-bit- pcltrL'iwo napi:~e ritova za druge informacije. Drugo, mo2e se minimizovati duzina
nim <lpk<Jdom i jcdinstvenom n-hitnum <tdrc'som. Ovakva imtrukcija omo~u..'ava ko- pm.,dne ;nslruJ,;L·ije ~1ko se najkraci opkodovi dodelc najcdce koriscenim instruk:i-
;: ri~cenJC 2/, razlicitih operacija i 2" memorijskih ccl!j:t t.a adre~iranjc. lstih 11 + k bitPva jarna. a najdul1 cJnitua kuje se retko koriste.
~;

~
l,<

~

"''1( :.' Poglavlje 5: Nivo arhitekture skupa instrukcija 5.3 Formati instrukcija 355
·~

1
f:
it

16 b1tova
Ako zamisao o prosirivanju opkoda razvijemo do krajnjih granica, onda mozemo
!' da rninimizujemo prosecnu duzinu instrukcije tako sto c'emo kodirati svaku instrukctju
t:
r 4-bitni --t(OOOO) xxxx yyyy zzzz 15 troadresnih samo potrebnim brojem bitova. Nazalost. tada c'e instrukcije biti razlicite duzine i nec'e
yyyy zzzz

·•
1:
opkod 0001 xxxx
0010 xxxx YYYY zzzz I instrukcija 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-
"' 1100 xxxx YYYY zzzz
produktivan. Bez obzira na reccno, on se cesto primenjuje na nivou bajtova.
~~. 1101 xxxx zzzz
YYYY
1110 xxxx YYYY zzzz
-1.

5.3.3 Formati instrukcija Pentiuma 4


8-bitn>- -rml__oo_llil) vvvv zzzz 14 dvoadresnih
1111 0001 yyyy zzzz Fom1ati instrukcija za Pentium 4 veoma su slozcni i nepravilni- imaju do sest polja
opkod
1111 0010 yyyy zzzz I instrukciJa
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
1111 1011 yyyy zzzz kroz brojne generacijc i sto je zadrz.ala neka stara, losa rescnja koja sc zbog kompati-
1111 1100 yyyy zzzz
1111 1101 yyyy zzzz 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
r-T~~+ H~~ ~~~)
12-bitni zzzz 31 Jednoadresna
opkod zzzz I instrukcija 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


1111 1110 1110 zzzz
NEPOSREONI OPERAND
1111 1110 1111 zzzz
1111 1111 0000 zzzz
1111 1111 0001 zzzz
Bitovi B~
.-~IN~S~T-RU-K~C-IJ-A---,1-,1~1 IMNOZITELJ I
.-----~----~----~
INDEKS I OSNOVA I
t t
1111 1111 1101 zzzz Koji operand je izvor? I
1111 1111 1110 zzzz BaJt/rec
Bits 2 3 3
16-bitnl -I- CTIT11TT1- -111 1-----oDllOJ 16 instrukcija I MOO I REG I R/M
opkod 1T1T111T T1ff(j(j(jf
1111 1111 1111 0010 bez adrese
Slika 5-14. Fonnati instrukcija l'cntiuma 4.

1111 1111 1111 1101


1111 1111 1111 1110 U ranijim lntelovim arhitekturama svi opkodovi su bili duzinc l bajt, iako su nckc
1111 1111 1111 1111 instrukcije cesto menjane prcfiksnim bajtom. Prefiksni bajt jc dodatni opkod ispred
15 12 11 8 7 4 3 0 instrukcije koji menja njenu namcnu. Primer pretiksnog bajta jc instrukcija WIDE u
Pozicija bita 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-
Slika 5-13. Pru.,irivanjc opkoda koje ornoguL'ava koriscenje 15 troadrc,nih instrukcija, 14 clvu- de) cia bi instrukcija dobila i drugi bajt.
adrcsnih instrukcija, 31 jednoadrcsnu instrukciju i 16 ilbtrukcija bez adre."'· Po1jauxx, .\')'VV i ~~~~
jcsu 4-bitna po1ja za adrese.
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,
~~. 'i
"i
~~
~
~
lt.:.
--- 356 Poglavlje 5: Nivo arhitekture skupa instrukcija 5.3 Formati instrukeija
--~----~-----
357

opkod se mora putpuno dekodirati da bi se odrcdila klasa namcravanc operacije i na


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

.i
,I
358 Poglavlje 5: Nivo arhitekture skupa instrukcija 5.4 Adresiranjc 359

Format 5.4.2 Neposredno adresiranje


Operand ce se najlakse zadati ako se navede u polju instrukcije predvidenon~ za
I Opkod I 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
I Opkod I Registar I instrukcija za ucitavanje konstante 4 u registar R1 prikazanaje na slici 5-17.

[ Opkod I Operand I MOV R1 4 _j

c· Opkod I 11-bitna adresa I 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-
I Opkod ~----- --- 16-bitna adresa I 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

C
7

Opkod ~- Operand 1 I Operand 2 I mnogim arhitckturama za zadavanje malih celobrojnih konstanti.

Slika 5-16. hmnati instrukcija procesora ~05 I. 5.4.3 Direktno adresiranje


,,I
Metoda zaclavanja operanda u memoriji u stvari je zadavanje njegove potpune adre-
•f!:
Format 3 ima polje za jednobajtni operand. Operand moze da bude neposredna
se. Taj nacin se zove direktno adresiranje (engl. direct addressing). Slicno nepusred-
ir
..r;· .
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) .
nom aclresiranju, i direktno adresiranje ima ogranicenja: odredena instrukcija ce uvck
~~
pristupati istoj memorijskoj lokaciji. Dok ~e vrednost moze menjati, lokacija ne moze.
Formati 4 i 5 koriste sc za skokovc i pozivc polprogramirna. Verzija sa 11-bitnom
j Shodno tome, direktno adresiranje se moze koristiti samo za pristupanje globalnim
adresom moze se kmistiti kada nc postoji spoljasnja memorija, pa sve adrese progra-
promenljivama cija je adresa powata ll trenutku prevmknja programa, lpak, mrogi
ma moraju biti is pod 40% (8051) iii is pod 8192 (8052). Kada se koristi vise od 8 KB
ti, spoljasnje memorije, potrcban je 16-bitni format adrese.
programi imaju globalne prumenijive, pa je ovaj nacin adresiranjci uobicajcn. Kas.1ije
f~ " L'emo objasniti kako racunar zna koje su adrese neposredne. a koje direktne.
Format 6 sadrzi dva osmohitna operand~!. Koriste ga brojne instrukcije (na primer,
H
•·ii- instrukcija za premestanje osmobitne neposredne konstante u memorijsku adresu na
b· cipu). 5.4.4 Registarsko adresiranje
b
t·~· Registarsko adresiranjc konccpcijski je isto sto i direktno adresiranje, samo sto se
h
} . u ovom slucaju ne zadajc memorijska lokacija, vee rcgistar. Post,J su registri to:iko
~ ! SA ADRESIRANJE 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-
Vecina instrukcija koristi opcrande, paje potreban nacin da se zada mesto na kome
rnenljivama se najcesce pristupa i unda takve promenljive smestaju u registre.
se nni nalaze. Ta lema, o kojoj cemo sada govoriti, zove se adresiranje.
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
5.4.1 Nacini adresiranja skoro sve instrukcije koriste iskljucivo ovaj nacin adresiranja. On sene kmisti jecino
Do :-.ada smo ohracali malo paz.nje na tn kako se tumace bitovi adresnog polja da onda kada se operand preme!ita i1 memorije u registar (instrukcip LOAD) iii iz regiitra
;j'' bi se pronasao operand. Vreme je da dctaljno proucimo tu temu. nazvanu nacini adre- u memoriju ( instrukcija STORE). Cak i 7.a takve instrukcijc. jedan operand je regi,tar
siranja (engl. address modes). - mesto gde memorijska rec sti?.e iii odakle polazi.
:,c
:-;:?

-.~(
- 360 Poglavlje 5: Nivo ad1itckturc skupa instrukcija 5.4 Adresiranjc 361

5.4.5 lndirektno registarsko adresiranje 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·
U ovum nacinu rada, zadati operand dolazi iz memorije ili odlazi u nju, ali njegova gistra R1:
adn:sa nijc zauvek zabelelena unutar instrukcije, kao pri direktnom adrcsiranju, vee
ADD R1,A
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- Zatim se u svakom ciklusu petlje sarna instrukcija mogla uvecavati za 4, tako da b1
moc'u njcga mo!c pristupati mcmoriji. pri .:'emu instrukcija nc mora da sadrzi punu poslc prvog ciklusa izgledala ovako:
aclre;,u memorijske lokacije. Kada sc i.,ta instrukcija i;.vrsava vise pula, svaki put ADD R1,A+4
mo/.c da koristi drugu memorijsku rec. i lako daljc. do kraja niza.
Da histc rawmeli zasto jc to kori,;no. zam~-;lite pctlju koja prnlazi kroz jednodi- Program koji se sam poddava na prikazani nacin zove se samopode!iavajuCi (engl.
mcnzioni celubroJni niz Sd 10:2-1- clcnJL·nta da bi u rcgistar R1 upisa]a njcgov zhir. L~­ se!Fmodifying) program. Taj konccptje smislio niko drugo do John von Neumann, i 011
V<UI pctlje postopti i registar R2, koji pokazujc0 na prvi clement niza i jos jcdan rcgistar jc imao smisla na ranirn racunarima. koji nisu koristili indirektno registarsko adre.~i­
R3, koji pobvujc na prvu aclrcsu izvan ni;a. Ako se u nizu nalaze 10::?.-1- eel a broja, ranje. Danas se smatra da korisccnje samopocld.avajucih programa spada u grozne i
svaki od po 4 bajta i aku ni; pocinjc na adresi ,\, prva adresa izvan nit.a hice A+ 4090. tesko razumljivc stilovc programiranja. Oni nisu pogodni ni za istovremeni rad u visc-
Tipican ascmhlcrski k(Jd koji obavlja i-cracunavanjc ta dvoadrcsni racunar prikazanje procesorskim sistcmima. stavise, oni cak nece raditi i::.pravno na racunarirna s poclclje-
na slici 5-11\. nim kesom prvog nivoa ukoliko kes za instrukcije nema hardver za povratno upisivanj~
(jcr njihovi tvorci nisu pretpostavljali cla program mu?.e sam sebe da menja).
MOV R1.#0 ; zbir ce biti u registru R1, pocetna vrednost je 0
MOV R2.#A : R2 ~ adresa ntza A
5.4.6 lndeksno adresiranje
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 Cesto je korisno ako se rnozc refercncirati memnrijska rec na poz.natom ( adresnorr I
dobio operand rastojanju od registra. Vi deli smo neke primcrc sa skupom lJVM instrukcija, gde su lt'-
ADD R2.#4 , uvecavanje sadrzaja registra R2 za jednu rec (4 bajta) kalne promenljive rcfcrencirane tako sto jc zadavano njihovo rastojanje od registra L'/.
Adrcsiranje memorije tako sto se (eksplicitno iii automatski) navodc registar i kor.-
CMP R2,RJ . jeSillO li zavrsi!i?
stantno rastojanje zove se indcksno adrcsiranje (engl. illilned wldressingl.
BLT LOOP , aka 1e R2 < R3. nismo jos zavrsili, pa nastavljamo
Za pristupanje lokalnoj promcnljivoj u arhitekturi IJVM kmistio se pokazivac na
SJik.l 5-1:-i. Upqj a:-.L·mblcr-"1--i pn).~rJm la i~,raC:unJYalljL' ;_bir<l c\emcnata niza. 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-
1_: ,,,,,m nra1"fll J;ro,c::·::mu koristimu vise nacina adresiranja. U prve tri instrukcije cijc i malo rastojanje u registru. Da biste razumeli kako sc to radi, razmotritc slcdeee i~­
1,1 pn i •'pc·r:!nd ! (ldi·•.'lil :;k 1 lv1risti sc rcgistarsko <tdre~iranJC, a nepo~redno adrc~i­ racunavanje. Imamo dvajednodimcnzionalna niza sa pu 10:2-1- reci (;\ i In i L:elimo ca
r:lllJL' ta drtt~zi ''flc:rand ,kDno-:<tnta oznacena simbolom #). Druga instrukcija smd.ta izracunamo ;\iAN D Hi za sva.ki par rcci. a zatim dana I 024 logicka proizvoda pri mem-
'"!re'u niz:1.\ u r:gi,t:•r R2. a nc nJcgov sadr:t.aj. To asemblcru nalaze znak #. Slicno mo opcraciju OR kako bismo utvrdili da li u skupu postoji barjedan par razlicit ud nuk.
lnmt:. trc'L',lllhlr>l\.-cipu r:cgi.\t::r R3 smesta adresu prvc rcci izvan niza. Jed an ud nacina bio hi da adresu pocetka nizaA stavimo u jedan regis tar, adrcsu pocctkt
7::11:imlji1·u ic primcliti ,[a sCtmu tclo pctljc ne sadr7i nijednu memorijsku adresu. niza 13 u drugi ida uporedo prolazimo kroz nizove, analugno primcru sa slikc 5-18. 1o
U pcilji -,c u CL'tvrtnj 111 -:r:Ji-..ciji koristi registarsko i indircktno rcgistarsko adrcsiranjc. bi sigurno radilo. ali se moze obaviti na bolji, opstiji nacin, prikazan na slici 5-19.
U pet:~ 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 MOV R1.#0 ; smesti rezultate operacije OR u registar R1. Cija je pocetna
<Jdr:~u 1<1 gr:m.uljt' z:tdajc' p<>lmll'u thmohitnog rastojanp od same instrukcije BLT. vrednost 0
P"tpunu it.heg:•' :IJU,'i da kut·istJmo mcmorijske adrcsc. stvorili smo kratku i brzu MOV R2,#0 ; R2 ~ indeks (i) tekuceg proizvoda: A[i] AND B[i]
pt:rij'L :\apom,'tl:m•, ,,;!Cr.·d cla jc uvaj pr\lgram u stvari napisan za Pentium -1-, samu MOV R3,#4096 ; R3 ~ prva vrednost indeksa se ne koristi
\lllll rrc·:men.v.. lii ill\[lil:-..c i rc~;istrc, i innenili ozna(·avanjc da sc laksc citajcr jc
LOOP MOV R4.A(R2) . R4 ~ A[i]
-'iill:!i·sl st,:::t!;,r;li;< ';! ,t,t':nbk'i·,kug jczika Pcntiuma -1- (MAS !'vi) hlago rcccno, bizar-
AND R4.B(R2) , R4 ~ A[i] AND B[i]
na. nasl.:ckt:<l Ji 11jc':2'"'' >g ranijcg /.ivota kau proccsura ~O~S.
Stika 5-1'1. Op.~ti asen1hkrski program za i?racunavanj~ rezuliata upcracije OK nc,d rcwiLll!!ll.l
upcracijc A, :\NOn, za ni;.me od po lll24 elcmcnta.
r-f!
~'
362

OR R1 ,R4
Pogl"'lj' ;, Ni'o a<hil<kh"' ''"P" in't"'kc(j,o

; primeni operaciju OR na sve logicke proizvode u registru R1


5.4 Adrcsiranjc

5.4.7 Bazno-indeksno adresiranjc


363

ADD R2,#4 ; i = i + 4 (uvecavaj brojac petlje za 1 rec = 4 bajta) Na nckim racunarima postoji i adrcsiranje kod koga se memorijska adrcsa izracu-
CMP R2,R3 ; jesmo li zavrsili? nava iz zbira sadrzaja dva registra na koji sc (opciono) dodajc udredeni pomeraj. Po-
BLT LOOP ; ako je R2 < R3, nismo gotovi, pa nastavljamo nekad se ovakav nacin adresiranja naziva bazno-indcksno adresiranje (engl. hased-
Slika 5-19. Opsti asernhlcrski program za izracunavanje rczultata uperacije OR nad rczultatima -indexed addressing). Sadrzaj jednog od regis tara je baza ( osnova), a drugoga indeks.
operacijc A, AND B; za nizovc od pu 1024 elcrncnta. (nasravak) 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
Rad uvug programa prilicno je jasan. Potrebna su nam cetiri registra: zameniti instrukciju na oznaci LOOP i instrukciju iza njc sledcCim instrukcijama:
I. R1 - Sadrzi kumu!Jtivan rezultat operacije OR nad logickim proizvodima.
LOOP: MOV R4,(R2+R,5)
2. R2- Indcks (i) koji se koristi za prolazak kroz elemcntc nizova.
AND R4,(R2+R6)
3. R3- Konstanta 4096, koja pred.stavlja najnizu vrednost indeksa i koja se ne
koristi.
ldcalno hi hilo da postoji nacin /.a indirektno adrcsiranjc prcko zbira sadrzaja dva
4. R4- Privrcmcni registar za tckucu vrednost svakog od proizvoda.
rcgistra bez pomeraja. Posto njega ncma, cak i instrukcija sa osmobitnim pumerajem
Po inicijalizovanju registara ulazimo u petlju sa sest instrukcija. lnstrukcip na hila bi znacajno poboljsanje u poredenju s prvobitnim kodum. posto oba pomera;a
oznaci !"001' smdta A i u registar R4. Za odrcdivanje izvorista koristi se indcksno mozemo da i;jcdnacimo s nulom. Aku su, medutirn, oba pomcraja uvek velicine 32
adrcsiranjc. Regis tar R2 i konstanta (adresa A) sabiraju se, a zhir se koristi za refcren- bita, ovakvim adresiranjem ne bismo dobili nista. U praksi, s druge strane, racunari
ciranje mcmorijc. Zbirovadvapodatka ide umcmoriju, ali sc ne cuva ni ujcdnom rc- koji koriste ovakvo adresiranje obicno imaju instrukcije sa osmohitnim iii .sesnaesto-
gistru dostupnom korisniku. lnstukcija bitnim pomerajcm.

MOV R4,A(R2l
5.4.8 Adrcsiranje na steku
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- Vee' StllO naglasili kak.o je veuma po/eljno da masinske instrukcije budu sto kracc.
ost. rccimo, 124.100. stvarna masinska instrukcip koja odgovara ovurnc izgledala bi Krajnja granica smanjenja duz.ine adrcsc je kada adrcsa i ne postoji. Kao sto smo vi-
pribliznu kao na slici 5-20. 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.
I-
MOV I R4 R2 124300
Obrnuta poljska notacija
Slika 5-20. Moguca masinska instrukcija koja <•dgovara asemblerskoJ instrukci1i fi,JOY R4,/\(R2). 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-
U prvom prolasku kroz petlju. sadrzaj rcgistra R2 jc 0 (jer se on taku inicijalizujc ).
fiksna (engl. injixl notacija. Ohlik sa operatmom iza opcranada zovc sc postfiksna
pa je adresirana memorijska rec A0 . na adrcsi 12-BOO. Ta rcc sc sm.:sta u regis tar R4.
(engl. poslfix) iii obrnuta poljska notacija (engl. re\'erse Polish nolalion). prema
Pri sledccem prolasku kroz petlju. sadrzaj registra R2 jc 4. tako da se adresira mcmo-
poi.Jskum logicaru J. Lukasiewiczu (I 058), koji je proucavao svojstva ove notacije
rijska rcc A I, na adresi I 24.104 itd.
Kad treba priLu.ati algeharskc formulc, obrnuta poljska notacija ima brojnc prcd-
Kao sto smu ranije obeeali. ovde .Je rastojanjc knje sc nalazi unutar same instruk-
nosti nad intiksnom notacijom. Prvo. tako sc svaka formula moze napisati hcz zagra-
cijc u stvari pokazivac na memoriju. a vrcdnost u rcgistru je mali ceo broj koji se to-
da. Drugo. takva notacija je 1.godna za izracunavanje formula u racunarima sa
kum izracunavanja uvccava. Za ovaj nacin izracunav anja jc:, naravno, potrebno da u
stekom. Trcce, intiksni operaturi imaju prioritete koji su proizvoljno izabrani i ne-
instrukciji postoji polje za rastojanje kojejc dovoljno veliko Ja prihvati adrcsu. pajc
po7.cljni. Na primer. znamo da ax h + c L.naci (II x h)+ c, a ne ax (h +c), zato sto je
" on manje etikasan od onog drugog; ipak. to jc cesto najlmlji nacin izvodenja izracu-
~: proizvoljno cldini,ano da mnozcnjc ima prcdnost nad sahiranjem. Ali, da li logicko
navanja ovakvc vrste
r'i pomeranjc ulcvo ima preclnost nad npcracijom AND'' Ko bi to znao? Zahvaljuju.'i
fi
obrnutoj poljsk.oj notaciji, nc muraju se postavljati tak.va glupava pitanja.
"'
~!
~l

~
4'1

.'

·.
-~··

364 Poglavljc 5: Nivo arhitckture skupa instrukcija


5.4 Adrcsiranje 365

Postoji vise algoritama za pretvaranje infiksnih fonnula u obmutu poljsku notaciju. Vagon na skretnici

U nastavku prikazujemo adaptaciju idejc koju dugujemo E. W. Dijkstri. Prelpostavimo


da se formula sastoji od sledecih simbola: promcnljive. binamih (s dva operanda) ope- ,~ j_ 4 1 1 1 1 1 5

ratora +-*I. i lcve i dcsne zagrade. Pocetak i kraj fomwle oznacavamo znakom .l koji :~ ~ + 2 2 2 1 1 1 2
-§ 2
stavljamo iza njenog poslednjcg simbola i ispred njenog prvog simbola. ~D.
"'=> 2 2 2 1 1 1 2
Slika 5-21 prikazujc zeleznicku prugu izmedu Njujorka i Kalifomije. koja na sre- g_~
-~~ X 2 2 2 2 2 1 2
dini ima odvajanje za Teksas. Svaki simbol u fonnuli prcdstavljcn je jednim zeleznic- .=..,
Q)
0~

kim vagonom. Voz se prugom kreee na zapad (ulevo). Svaki vagon mora da stane -"'"'
c c 2 2 2 2 2 1 2
0
en
kada stigne do skrctnice i da pita trcba 1i da nastavi pravo za Kaliforniju iii prvo treba
>"' 5 1 1 1 1 1 3
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- Stika 5-22. Tabela odlucivanja ko(u knristi atgoritarn za prcvmknje infiksne notacijc u obmutu
nicu rnoraju da pitaju ;.a sadrzaj najblizih vagona na teksaskoj pru~:i. 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
NJUJork
se poskdnji nalazi na teksaskoj pruzi. Postupak se nastavlja sve dok sc ne dmte do ko-
Skretnica
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.
Rcdo~kd 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.

Teksas

1
~-
:--~n-fi-k~~-a-n-ota~j~---=-=-r:-ob'~~~ap-;Ilsk~ ·n-o-ta_c_iial
A~s-:-c___________ I_A_B_c_~ +---------~

[;]]
0 0
, Ax §__+~Q==~-~=--=_jI .AB/CD<+
/A><B+C~D
A8 0 ====-=--=--=------~I +

Stika 5-21. Svaki zc!onicki vagon predstavljajcdan sirnbulu inl"iksnoJ t"ormuli koju trcba r - - - ____, _____________ ----+------------- -------1
prcvcsti u uhmutu potjsku notaCIJU. I (A +__B_)_<(s:;_-_0_)________L__/\__§__:i:__C_D__
-_/_
I AxB/C
~-------~·---- --------~-~-- - -
i AB~Ci I
1
Tahcla na slici 5-22 pokazujc sta se dogacta. zavisno od sadrzaja najbli?cg vagona
ij_(~_:~:__E5) X c -+:_~L'__(.§__':___f'_-t:_(l_l-~~ ~.§..:+- c :< D +_~ F + G + I I
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: SJiha 5-23. N~ki prim~ri iJ.raz;t u intik~noj nut~1ciji i njihovi ek\-ivalenti u ohrnutoj
jllllj:-;knj nu1~1ciji.
I. Vagon isprcd skretnice ide La Teksas.
" Vagon kuji je poslcdnJi usao na tcksasku prugu menja pravac i od!azi za Izracunavanje fomwla u ol!rnutoj poljskoj notaciji
KaliforniJU.
Obmuta r\Jlj:;ka notacij~t idca]n;Ljc za izraCunavanje flT!llUla ll racunarima sa st-.:-
3. Vagon ispred skrctnice i vagon kojijc poslednji usao na teksasku prugu spru-
korn. FllrnmLL :;c ;;a:;t<Jji ud n ,.rn;bola. ocl J.,.,;Jihjc sval,i i!i opcr:lltd iii operator. AJg,_J-
vode se na sporedan kolosck i tu ostaju (tj. oba nestaju).
riLatn L.a iLrctC·unavanje fmmula u ubmulPJ Pl':jskoj nnt~Kiji jc:cinostavan jc. Prodite
-L Stuj. Simb"li koji sc ,;ada nal~vc u Kaliforniji predstavljajtl formulu u ohrnu- kro;, nbrnuti pnljski 1aph fur:mtl-: ,Jc-,, a udc.\lhl. K~td . l naidcte na operand. 'lavite :;a
toj pniJsknj notaciji kada sc citaju skva nadesno. na stck. Kada naldctc na upcratur. i/'1r:~itc Pd:;nvarajuCu instrukt·iju.
5. Stuj. Nastala Je grdka. Prvobitna fmmula nije ispravno uravnotdcna .

.::-·
f"'
), 366
------------------------------
Poglavlje 5: Nivo arhitekture skupa instrukcija 5.4 Adresit·anje 367
1!1
w.
f'~·
Slika 5-24 prikazuje izracunavanje izraza SlcdeCi prihvatlji v nacin jc indeksno adresiranje s pozna tim rastojanjcm od sadr:Za-
(8 + 2 X 5) I ( 1 + 3 X 2- 4) ja registra. Ov<y nacin ima iste osohine kao indirektno registarsko adresiranje.
u skupu IJVM instrukcija. Odgovarajuca formula u obrnutoj poljskoj notaciji je Jos jedna mogucnostje relativno adresiranje u oc!nosu na sadrzaj registra PC. Ovde
se (oznaceno) rastojanje detlnisano unutar same instrukcije dodaje sac!rzaju program-
825X+132X+4-I
skog brojaca da bi se dobila adresa odrcdista. To je u stvari indeksno aclresiranje, s re-
Na slici smo uveli instrukcijc IMUL i IDIV za mnozcnje, odnosno za deljenje. Broj na gistrorn PC.
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- 5.4.10 Ortogonalnost opkodova i nacina adresiranja
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- S gledista softvera, instrukcije i nal:ini adrcsiranja treha da imaju regularnu struk-
kocu kojom sc iz ohmute poljskc notacije generise IJYM kocl: samo treha proci kroz turu, s minimalnim hrojem formilta za instrukcije. Takva struktura olaksava prevodio-
fonnulu u ohrnutoj poljskoj notaciji i za svaki simbol izdati instrukciju. Ako je simhol cu gcnerisanje kvalitetnog koda. Svi opkodovi treba da clozvoljavaju svc nal:ine
konstanta iii promenljiva, instrukcija je njeno stavljanje na stck. Ukoliko je simbol aclresiranja, gdc god to ima smisla. Stavise, svi registri treba da su raspolozivi za rad
operator, instrukcija treba da izvrsi odgovarajucu opcraciju. u svirn registarskim rezimima -ukljucujuci i pokazivac okvira promcnljivih (FP), po-
ka.cival: vrha steka (SP) i programski brojal: (PC).
~'-----,-----------,

Korak Ostatak deo formule lnstrukcija Stek


'------~--

Kao primer projckta racunara s troadresnim instrukcijama razmotritc formate


1
32-hitnih instrukcija na slici 5-25. Pudrzano je do 256 opkodova. U fOITilatu I svakJ
825X+132X+4-I BIPUSH 8 8
instrukcija ima dva i.-:vorisna registra i jec!an odrec!isni registar. Sve aritmetil:ke i lo-
2 25X+132X+4-/ BIPUSH 2 8,2
gil:ke instrukcije u ovom su fonnatu.
3 5X+132X+4-I BIPUSH 5 8, 2, 5
r---- , ___
4 X+132X+4-I IMUL 8, 10 Bits 8 1 5 5 5
5 + 1 32X+4-I IADD 18
-
OPKOD I0 I ODREDISTE I IZVORISTE1 I IZVORISTE2 u J
6 1 32X+4-I BIPUSH 1 18, 1
7 32X+4-I
-
BIPUSH 3
181~ zl OPKOO l1 I ODREDISTE I rzvoRISTE1 I RASTOJANJE J
8 2X+4-I BIPUSH 2 18, 1, 3, 2
-
------- - --·-
9 X+ 4-1 IMUL 18, 1' 6
3 I OPKOD RASTOJANJE J
10 + 4 -I IADD

18~~
,---------- _,-
11 4- _,I BIPUSH 4 Slika 5-:!5. Jeunostcl\'an pwjckat f'onnala inslrukcija s lri adrcse,
12 -I ISUB 18.74 ..
18,3
_,
13
NeiskmisL'eno osmobitno polje na kraju formata moze se upotrebiti za c!alju difc-
I IDIV 6
rencijaciju instrukcija. Na primer, jcdan opkod se mo.:ie c!oc!eliti svim operacijama s
Slika 5-:!.t. Kori.,ccnjc srcka za izracunavanje fornwle u ohrnutoj poljskoj nolaciji. 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
5.4.9 Nacini adresiranja za instrukcije grananja nije vi~e drugi operand. vee 13-bitna oznal:ena ncposredna konstanta. Instrukcije
LOAD i STORE takodc mogu da kmiste ovaj format da bi indcksno adresirale memoriju.
Do sacla smo sc havili samo instrukcijama koje racks podacima. U instrukcijama
Potrebanje mali broj dodatnih instrukcija (npr. instrukcije za uslovne skokove) ali
za grananjc (i u pozivima proccdura) koristi sc i odrec!isna ac!resa kuju taknde trcba
one mogu lako da stanu u fnnnat 3. Na primer, jcdan se upkod mo/.c dodeliti svakom
zadati. Nal:ini adresiranja o kojima smo govorili ugl:.!vnom sc mogu koristiti i pri
(usluvnom) sk\lku iii pozivu procedure, ostavljajuci 2-t bita za pomeraj u odnosu na
grananju. Direktno adrcsiranje je jec!an od nacina na koji se to moze obaviti ako sc
programski hrojac. Ako se pumeraj meri rccima, njegov opseg bi bio ±32MB. Nc-
ac!resa oclredista umetne u instrukciju.
koliko opkodova treba rczervisati i za in~trukcije LOAD i STORE kojirnaje pntcban ve-
Mcdutirn, ima smisla primcniti i clruge nacine adresiranja. Indircktno registarsko
liki pornak furmata 3. One ne bi imalc potrebnu opstost (npr. mogle bi racliti samo s
adrcsiranje omogucava programu da izracuna aclresu odrcdista, da jc stavi u regis tar
rcgistrom RO ), ali bi sc ionako retko koristi Ie.
i daje zatirn iskoristi. Ovaj nacinje i najlleksibiJnijijer sc oc!redisna adrcsa izracuna-
va tokom izvr~avanja programa. On je takode i najbolp prilika za pravljenje program-
skih grdaka kojc jc skoro nemoguce otkriti.
...,.....,..._....
j '
368 Poglavlje 5: Nivo arhitckturc skupa instrukcija 5.4 Adrcsiranjc 369

Sada razmotrite projekat racunara s dvoadresnim instrukcijama u kome se za bilo 5.4.11 Nacini adresiranja Pentiuma 4
koji operand moze koristiti memorijska rec. Format instrukcije je prikazan na slici
Nacini adresiranja Pentiurna 4 potpunu su neregularni i ~:a vise od toga cia li je odre-
5-26. Takav racunar bi mogao da dodaje memorijsku rec sadrl.aju rcgi,tra, da dodaje
ctena instrukcija izdata u 16-hitnom iii u 32-hitnom rc7imu rada. U nastavku cemo za-
sadrzaj registra memorijskoj reci, da dodaje sadrzaj jednog registra drugom ili cia jed-
nemariti 16-bitni rdim; sasvim nam je dovoljan i 32-bitni. Nacini adresiranja
nu memorijsku rec dodaje drugoj. Trenutno je pristupanje mcmoriji relativno skupo,
obuhvataju neposredno, direktno, registarsko, inciirektno registarsko, indeksno adrcsi-
pa ovakav projekat nije previse popularan, ali ako u buciucnosti zbog napretka u teh-
ranje i specijalno acircsiranjc elemcnata nizova. Problemje to sto sene mogu svi nal'ini
nologiji kda ili rm:morije ono postane jeftinije, projekat obezbeduje lak i etlkasan
adresiranja prirneniti na sve instrukcije, niti se svaki regis tar muzc iskoristiti u svakum
nacin prevodenja programa. PDP-II i VAX Sll bile uspesne masine koje Sll cive de-
nacinu adrcsiranja. To uveliko ote7,ava pnsao autoru prevodioca i cini da gencrisani
cenije dominiralc svetom mikroracunara koristeci formate slicnc ovom.
k6d hudc losiji.
Bajt MODEna slici 5-14 ucireduje naCin adrcsiranja. lzvoriste jednog od opcranada
Bitova 8 3 5 4 3 5 4
1aciaje sc kombinacijom polja MOD i RiM. l~:voristc drugog operanda uvek je rcgistar.
[_______0_~ ~ ~ 9_______ [~~~~~ l __ ~~~~ ~T~~- __i_R_A_S_T_O_JA_N_J_~[~0~~N_ [ __ ~§~I~~ 0~ __ j ~!I_S!~}~~-J_Ej oznacen u polju REG. Tridest:tdve kumbinacije kujc se rnogu ;:adati ponmcu dvnbit-
: (Opciona 32·bltna direktna adresa ill rastojanje) :
.. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - _J nog polja MODi trohitnog poija RtM prikazane su na slici 5-27. Ako su. na primer. oba
: (Opciona 32-bltna dircktna adresa iii rastojanje) :
~--------------------------------------------------------------------------------_) polja nula, operand se cita s memmijskc adrcse J..oja se nalazi u registru EAX.
Slika 5-26 . .kdnostavan pmjekat !"on nata instrukcija s c!ve adrese. 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
U ovom projcktu ponovo imamo mdnobitni opkocL ali sada imamo po 12 bitova za pomcraj, njemu se pre dodavanja prusirujc' znak do 32 bita. Na primer, instrukcip
zadavarrjc izvorista i odrcdista. Za svaki operand, 3 hila oznacavaju nacin adrcsiranja. ADDs poljima RiM= Oil, MOD= Ol i pomerajcm fJ i1racunava zhir sadr7aja rcgistra
5 hitova o1.nacavaju rcgistar, a sa~ hita se zadajc rastojanjc. Uz 3 bita za nacin adresi- EBX i broja 6, i cita menwrijska rd s dohijcne acircsc za jedan od opnanada. Sadrlaj
ranja mozemo da podrzimo ncpmrcdno, dircktno, rcgistarsko, indirektno rcgistarsko, rcgistra EBX sc pri tome ne mcnja.
indcksno adrcsiranje i adresiranjc na steku, a i rezervisali smo dva mcsta za huduc'e Stuhac MOD = II on]l)gucava da se izabere jcdan od dva registra. Za instrukciw
nacinc adresiranja. Ovc0 pmjekat jc cist i pravilan, omogucava lako prcvodcnjc, a i ,a- koje radc s recima hira sc prvi regisur; t.a in.-:trukcijc koje raclc s hajtovima, hira sc
svimje llcksibilan, narocito ako se programski hrojac, pokazivac vrha steka i pokazi- drugi. Obratite pa/.nju nato da tahc!J nije sasvim kunsi,tcntna. :'-ia primer. ncma nal'i-
vac okvira lokalnih promenljivih nalaze mectu dostupnim registrima opste namene. na cia se indirektnu adrcsira prc:ku regi,tra EBP, niti da se adresira u1 pnmeraj knji se
Jedini problem jc to sto nam pri direktnom adresiranju trcba vise bitova za adresu. nala;.i u registru L:SP.
PDP-I I i VAX su za svaki direktno adresirani operand instrukciji doclavali jos jcdnu r~c U nekim nacinirna adn::siranja iza bajta i\!ODE slnli clmlatni hajt SIB (Seale, In-
za aciresu. Mi bismo takode nwgli upotrebiti jcdan od dva raspoloziva nacina adrc.-;i- dex, Basel, ka<> na slici 5-1~. Rajtom SIB zadaju se mnu!itclj i elva n::gi-:tt·a (indebni
ranja ;.a indcksno adrcsiranje sa J2-bitnirn pornemjem koji se nalazi iza instrukcijc. i ba?ni). Kada pustoji bajt SIB. adresa opcrancla sc iz.racunava tako sto ,;e indcksni re-
Tako bi u najnepovoljnijem slucaju (recimo, pri sahiranju dvc memorijske rcCi. gdc su gi-.;tar mrwzi .,a l, 2, ~iii K (Zcl\ isno ,,d pulp SCALE). re/ultat sc dodaJL: baznom rcgi-
oba opcranda direktno adrcsirana) iii pri koriscenju ciugackog oblika indeksiranog adrc- stru i tn kraju se mu/d:1 dtlda i S-hitni iii 32-bitni pomcraj tzav i:-,r1o <'d ptllja MOD).
siranp, inst111kcija hila dugacka 96 bitova i potrosila hi tri ciklusa magistralc ljedan 1a Skmo ;;vi rcgi.;tri mugu ,c koristtti 1.a indcks i usnu' u.
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 MOD
drugoj proizvoljnoj memorijskoj rec·i i potrosile hi bar cctiri ciklusa magistralc. RIM 00 01 i10 11
Moguce su mnogc zamene za resenje sa slikc 5-26. U ovom rcscnju, narcdbuje M[EAX] . M[EAX + POMERAJS] M[ESX + POtviERAJ32] .• EAX ili AL
000 -·-

001 M[ECX] M[ECX + POMERAJS] M[ECX. + POfv1ERi\J32] ECX iii CL


=.J; i
I

:010 M[EDX)
--- --

M[EDX + POMEFiAJ8j
--
-·· M[EDX
i + P0f;IE:RAJ32J EDX iii DL
moguce je izvrsiti pomocu jedne 32-bitne instrukcije, pod u:-.lov(Hl1 da se i i j nala1--:
011 M[EBX] ' M[EBX + POMERAJ8] M[EBX + POMEi'iAJ32] EBX iii BL
mcdu prvih 16 lokalnih promenljivih. S druge stranc, t.a prumenljivc rednog hroja
100 SiB 'SIB sa POMERAJS SIB sa POMER,;JJ2 ESP Iii AH
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 . 101 Direktno M[EBP + POMERAJS] tvi[EBP + POMERAJ32j EBP iii CH
koje kaze cla ga rnoze kori,titi iii izvm"i.~te iii odredistc (nc oba istovr~lllcllO). Postoji 110 rvt[ESI] 'M[ESI + P0tvtt:RAJ8] M[ESI + POMERAJ32] ESI iii DH
bcskor1:1cnn mnogo mogucnosti i kompromisa. i projcktanti moraju odmeriti nuwge 1ii i M[EOij M[EDI + POWC"RAJ8] 'M[EDI + POMERAJ32j EDI ill BH
ciniocc da bi pm,tigli dubre rcmltat~.
Slika 5-27. TriLk'-.ClJ\ubilm n~t(in: LldrL'Slranja l-'crHJU!Ila -t. \l[.rj jc ml'mPrij~k.t rcC n.L !okaciji .1.

~.~
,!,·
l'j
~
~F'
;
[''
370 Poglavljc 5: Nivo arhitckture skupa instmkcija 5.4 Adrcsiranje 371

r~ Adresiranje uz polje SIB je zgodno ta pristupanje ekmcntima nizova. Na primer, 5.4.12 Nacini adresiranja procesora UltraSPARC III
razmotritc Javnu naredbu Za sve instrukcijc ISA skLipa procesora UltraSPARC koristi se neposreclno iii regi-
for (i ~ 0; i < n; i++) a[i] ~ 0;

'!
!
starsko adresiranje, osim za one koje radc s memorijom. Pri registarskom adresiranjJ,
I gde je a niz 4-bajtnih celih brojeva, lokalan za tekucu proceduru. Za pokazivanje na 5 bitova odredLiju regis tar koji treba Llpotrcbiti. Pri neposrcdnom adresiranju (oznacem)
pocetak okvira lokalnih promenljivih i nizova na steku najcescc se koristi rcgistar 13-bitna konstanta ohezhcdujc poclatak. Ncma drugih nacina aclresiranja za aritmeticke,
~:
EBP, kao na slici 5-28. Prcvodilac mora da cuva promenljivu i u rcgistru EAX. Da hi logicke i sli<:ne instrukcije.
' Memoriji se obracaju tri vrste instrukcija: instrukcije LOAD i STORE i jedna instruk-
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- cija za sinhronizovanje racla vise procesora. Za instrukcije LOAD i STORE postoje dva
strukcija sama mo/.c da smesti vrednost u clement niza a liJ. nacina adresiranja memorije. Prvi racuna zbir sadrzaja dva rcgistra, a zatirn se preko
Da li je ovaj nacin adresiranja vrcclan muke? Na tojc tt.:Sko odgovnriti. Nesumnji- njcga indirektno pristupa mcmoriji. Drugi je stanclardno indeksno adresiranje, LIZ (ol-
vo jc da ova instrukcija. kacla se ispravno upotrebi, stcdi nekoliko ciklusa. Koliko cc nacen) 13-bitni pomeraj.
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 5.4.13 Nacini adresiranja procesora 8051
drugaciji nacin. Na primer, mogao bi se na njenom mcstu prosiriti kcs prvog nivoa iii
Proccsor 805 I ima prilicno sredenu strukturLI adresiranja, Ll kojoj postoji pet os-
bi sam cip mogao biti manji, sto hi vcrovatno omogucilo br/.i raclni takt.
novnih nacina. Najjednostavniji je podrazLimevani nacin LIZ L1potrehLI akLimlllatora.
S takvim kompromisima projektanti se stalno suocavaju. Ohicno se pre izracle cipa
Brojne instrLikcije komhinuju operand sa sadrzajem akLimulatora (dodajLici mLI ga.
obavljaju brojnc simulacijc. ali da hi one funkcionisalc, mora se dohro predviclcti re-
oduzimajLici ga od njega i primenjujLici logickc operacije AND iii OR). Instrukcijc
alno radno optercc'cnjc. l'vlozett~ s visokim stepenom sigurnosti tvrditi da konstruktori
kojc racle sa akumulatorom nemaju specijalnc hitove koji oznacavaju da raclc sa ovim
procesora 8088 u knmplet za njcgovo tcstiranje nisu ukljucili pretrazivac Weba. Bcz
registrom. Ta cinjenica se Ll njihovom opkodLI poclrazumeva.
obzira nato, danas sc prilil'an broj potomaka ovog procesora koristi prvenstveno za
Drugi nacin je registarsko adresiranje, pri cemu se operand na1azi u registru. Rc-
prctral:ivanje Wcha, taku da se odluke donetc pre 20 godina mogu pokazati potpuno
gistri sc mogLI koristiti i kao izvoriste i kao odrediste. Treci nacin je direktno adrc~i­
pogrcsnim za danasnje aplikacije. Mectutim. u ime kompatibilnosti sa starijim verzi-
ranje, pri cemu se operand nalazi u mcmoriji na adresi koja jc dco same instrukcije.
jama, 0110 stu jed nom uue ll sistcm, zauvck ostaje Ll njemu.
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
I adresiranje, pri cemu je operand dco same instrukcije.
~ --- EBP
Procesor R05 I ima i spccijalan nacin adresiranja koji se koristi kada jc broj in-
Druge i u registru EAX strLikcija za pristLipanje memoriji ogranicen. Sctite se cia proccsor R05 I moze da ima
lokalne do 64 KB spoljnc programske memorije i jos 64 KB spoljne memorije za podatke.
promenljive
Okvir Referenciranje uz SIB Ove memorijc sc moraju adrcsirati na ncki naCin. Spoljnoj programskoj memoriju
lokalnih a [01 EBP , 8 M[4 'EAX t EBP + 81 pristupaju dvc instrukcije, LJMP, koja na osnovu 16-hitnog rastojanja moze cia skoci
promenlpvrh
a [1] ~-EBP+l2 na hilo koju aclrcsu u memoriji. i LCALL, kop takode na osnovu 16-bitnog rastojanja
na steku I rnoze da pozovc potprogram koji se nalazi hilo gcle Ll memoriji.
I
a [21 EBP' 16
i 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.
Slika 5-:!li. Pri,tupanjc l'iL'IllclltU run" I i[.
5.4.14 Zavrsne napomene o nacinima adresiranja
Analizirali smo prilican broj naCina adrcsiranja_ Oni koje koriste procesori Pcnti-
4. U1traSPARC III i 805 I prikazani su na slici 5-29. Medutirn, kao sto smo vee
Lllll

istakli, nc mogu se svi nacini adresiranja koristiti Ll svim instrukcijama.


1:
kf.
1;·
~'
"'f.!,
J!lll""""-
lf''
f 372 Poglavlje 5: Nivo arhitekture skupa instrukcija 5.5 Tipnvi instrukcija
·------------ 373

----I
' Nacin adresiranja Pentium 4 8051 5.5.1 Instrukcije za preme5tanje podataka
i -
Uz akumulator :X
Kopiranjc podataka s jednog mesta na drugo najosnovnija je od svih operacija.
+-
, Neposredno X X Pod kopiranjem podrazumevarno stvaranje novog objekla koji irna idcntican rasporcd
Direktno 'X hitova kao i original. Ovakvo znaccnjc reci ,prcmestanje" razlikuje se od uobicajc-
Registarsko X nog znaccnja. Kada kazcmo cia sc Marvin Mongoose .. premestio" iz Njujorka u Ka-
i lndirektno registarsko ix liforniju. ne mislimo da se kopija g. Mongoosea stvorila u Kaliforniji, dok jc original
j
jos u Njujorku. Kad ka/.cmo da se 'adri,aj memurijskc lokacije 2000 prcmestio u
; lndeksno X
odrcc1eni regis tar, tad a uvck mislimo da jc u registru stvorcna kopija njegovog sadr:l.a-
lndeksno u odnosu na bazu
IX ja. a daje originalni sadrzaj ostao netaknul na lokaciji 2000. Instrukcije za premesta-
; Na steku
nje podalaka hilo bi bolje zvati instrukcije za ,.dupliranje podataka". ali se izraz
Slika 5-29. Uporedni pri~.1c nacina adresiranja u tri ['roccsora. ,prcmdtanje podataka'' vee previsc mlomacio.
Postojc dva razloga zbog kojih se podaci kopiraju s jednog mcsta na drugo. JcJan
Da bi skup !SA instru!:.cija hio clikasan u praksi. nc mora da kuristi mnogo nal'ina je vrlo vazan: dodeljivanjc vrcdnosti promenljivama. Dodcljivanje
adrl'siranJil. Po.~tn vecinu koda pisanog /a ovaj ni YO danas gencrisu prcvodioci (!lSi ill
A~B
mozda ;:a procesor 805 I). najvazniji aspc!:.t nal'ina adrc-;iranja kujc koristi odrcctcna
arhitl'ktura jcstc mali bruj jasnih altcrnativa. ciji sc tro~kovi (tj. vrcmc izvrbvanja i implementira se kupiranjcrn vrednosli s memmijs!:.c adrcsc Fi na lokaciju A zatn sto je
duz.ina !:.oda) mugu lako itracunati. To z.nal'i da pri projektc1Vanju pwccsora valja zau- programer lo narcdio. Drugi ra;:log za kopiranjc podalaka jeste cfikasnijc pristupcnjc
zcti granican stav: iii da sc ponudc svc moguL'nosti. iii samo jcdna. Svc sto jc i;:mcdu. i koriscenjc. Kao sto smo videli. hrojnc instrukcijc rnogu da prislupc prorncnljiva;na
suocava prcv-mliL'Gl s rc~cnjitlla mcdu kojima on iii nc moLe ili nc umc da sc c;na(tc. samo aku sc one nalaze u rcgistrima. Poslu postoje dva moguca i;:vorista podataka
Prcma t1llllC, najl'istip ar!tit<.:klllra cc pmlr,iavat i vrlo mali hroj nacina adresiranja. s (mcmorija iii registar) i dva njihova moguca mlrcdista (memorija iii registar), moguce
jasnim pravilima za njihmo kori;L'L·nic. U praksi jc za skuru sve primcnc dovoljno su cetiri vrstc kupiranja. Ncki racunari irnaju poscbnu inslrukciju za svaku vrstu. Dru-
imati ncp,1srcdnu. dird.tnu, rcgi.,tarsku i imlcksiran,l adrc;,iranjt:. lsllJ takll, svaki regi- gi pak imaju jcdnu instrukciju za sve cdiri vrste kopiranja. Trcci. opel, koriste in-
star (uklju.:'ujuc'r poka;.ivac lukctlnih promcnlJivih, pt'ka;ivac vrha :,rcka i pmgramski slrukciju LOAD z.a kopiranje iz memorije u rcgistar. instrukciJll STORE za kopiranj~ iz
hrop() trcha da hudc na raspolitganju l-ead jc· to potrl'lmo. SlP/eniji nacini adresiranja rcgistra u mcmoriju, imtrukciju MOVE ;:a kopiranje iz regislra u rl'gistar i nemajuni-
mugu cld :,manic' hruj in.:,lnti.cija, ali m racun ni;<n-a opcracija kuje St' nc mogu lako kakvu instrukciju za kopiranje iJ: memorijc u memoriju.
parakinu i;.vr~;tvati u1. drtJgc nil.l1VC Ppc·rac:ija. lnstrukcije za prernestanje podalaka moraju nckako da oznacc k:olicinu podataka
Do.~li smo du kraja na~.e anali;c ra:dicitih komprumisa i-cllJi su muguci izmedu op- kuje trcha prcmestiti. U nekirn JSA skupovima postojc inslrukcijc za prcme~ta:1je
k,,d,lva i adrc·sa. i razlicitih nacina ~ldrc ... iranja. K~tda pristupatc no\\ltn racunaru. tn:- promcnljivc kolicine podataka koja sc krcce odjcdnog bita do sadrzaja citavc rnemo-
ba da an;tli;iratc: instruh·ijc i na(·!n.: ctdrcsirar~ja nt: samo da biste o,ilJ:niilJ sta je sve rijc.u racunarima s liksnom duZinom reci. ceslO se jednmn instrukcijom premesta
duo!Uptw, H'c' i d:t bistc raLU\llcli ..::a\iu jc ud;tbr~uw <liW \lu jcstc: i koje hi bile poste- samo jcdna ree. Svc sto jc vist.: iii manjc. od toga mora se ohaviti softvcrski- polpnl-
d ice drugih rc;cnja. 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
5.5 TIPOVI l.'ISTRl!KCIJA 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
!mtn:!:.cije nin1a IS:\ lll''gu sc gruhu P''tk!iti u nck•1liko grupa K<)jc· su .slicne La imaju instn1kcijc koje poznaju samo izvorisnu i odredisnu adresu. ali ne i kolic:nu
~vt: ral:u:~an:. iaku '"C t)oj..:.'din~tl:nc._~ insrrukcije r11ogu ra.r:liko\·ati. Chi:n ll)ga. svak.i ra- podataka kuje trcba kopirati. Prcmdtanje trajc sve dok sc ne naide na oznaku pdja
cunar imil nc!-.11li!:.o nct:d'r•~\rjcmb irurukcijL< kojc :-;u dudarc zhug kllrnp~ltihilnosti sa .. kraj podataka'·.
-,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 a~L'tH:ij~t pialila pnli;\·odacu da ih ukljuci u skup. U!:.r;,t\.cu cemo upisati nvc
opSk~ kaLL·~cl\·ije in'->truk...:ljd. hcz L~iLt/~cn_ia u dctaljc.

!
fT Poglavljc 5: Nivo arhitckturc skupa instrukcija
f

instrukcija 375
f:;
~
~ 5.5.2 Binarne opcracije je potrebnije brw izracunavanje i duzu kada je potrcbniji visok stcpcn tacnosti). lako
u binarnim (engl. dvadic) operacijama rezultat se dobija kombinovanjem elva ope- su moguce bczbrojne varijacije formata brojeva s pokretnim zarczom, dan as je za njih
randa. Svi skupovi ISA instrukcija imaju instrukcije za sabiranje i ocluzirnanje celih skoro univerzalno prihvacen jcdinstven standard: IEEE 754. Brojevi u formatu po-
brojeva. Mnozenje i deljenje celih brojeva takode su skoro standardne operacije. Pret- kretnog zareza i standard IEEE 754 detaljnije su objasnjeni u dodatku B.
postavljamo da nije potrebno obrazlagati zasto racunari imaju aritmeticke instrukcije.
Druga grupa binarnih operacija obuhvata logicke instrukcije. Iako postoji 16 Bu- 5.5.3 Unarne opcracijc
lovih (logickih) iunkcija dve promenljive, malo racunara irna instrukcije za svih 16
Unarne (engl. monadic) operacije imaju jedan operandi daju jedan rezultat. Posto
(ako takav racunar uopste postoji). Obicno postoje instrukcije za operacije AND, OR i
se u ovom slucaju zadajc jedna adrcsa manje nego u binarnim operacijama, instruk-
NOT; ponekad postoje i instrukcije za operacije EXCLUSIVE OR, NOR i NAND.
cije su ponekad kracc, mada cesto treba zadati i druge informacije.
Operacija AND je vazna za dobijanje vrednosti bitova iz reci. Razmotrite, na pri-
Instrukcije za pomeranje ili rotiranje sadrzaja reci ili bajta vcoma su korisne i zato
mer, racunar zasnovan na 32-bitnim rccima, kod koga svaka rcc sadrzi cetiri osmo-
cesto postoje mnoge varijante. Pomeranje (logicko) jcste operacija tokom koje se biro-
bitna znaka. Pretpostavimo da je neophodno it.dvojiti drugi znak od ostala tri iz reci
vi pomeraju ulcvo ili udesno, pri cemu se gubc bitovi koji pret1u (levu ili desnu) granicu
da hismo ga odstampal i; to znaci, potrchno jt: napraviti udcsno poravnatu rec, koja
reci. Rotiranjc (logicko) jcste pomeranje pri komc se bitovi koji ispadnu s jednog kraja
znak sadrzi u krajnjih dcsnih 8 bitova, a null: u preostala 24 bita.
pojavljuju na clrugom. Razlika izmcdu pomeranja i rotiranja p1ikazana je u nasravku.
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 00000000 00000000 00000000 0 l ll 00 l t A
prctvaraju u nule (zaklanjaju se maskom): 00000000 00000000 00000000 000 Ill 00 A pomcreno 2 hita uclesno
ll 000000 00000000 00000000 000 Ill 00 A rotirano 2 bita udcsno
10 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) Pomeranje ulevo i udesno kao i rotiranje ulcvo i udesno, imaju svoju primenu. Ako
00000000 l 0 ll I I 00 00000000 00000000 A AND B se n-bitna rec rotira ulcvo za k bitova, dobija se isti rewltat kao da je rotirana udcsno
za n-k bitova.
Kao ~to sc vidi, rczultat treba pomeriti 16 hitova udcsno da bi sc znak koji trcba
Pomeranje udesno cesto sc izvodi liZ prosirivanje !.naka. To znaci da se upraznjena
izdvojiti p()ravnao s dt:snim krajem reci.
mcsta na levom kraju reci popunjavaju originalnim bitom za znak (nulom ili jedini-
Opl:racija OR jc vazna za pakovanjc bitova u rcc, pri ccmu jc ,pakovanjc" operacija
com). lzglcda kao cia sc bit za znak umnozio udesno. lzrnedu ostalog, to znaci da cc
invcrzna izdvajanju. Da histc promcnili krajnjih dcsnih X bitova 32-bitne rcci, ada pri
negativan broj ostati negativan. Ova situacija je u nastavku ilustrovana za dvobitno
torn nc poremditc njcna preostala 24 bita, najprc treba da zaklonitc maskom 8 nczc-
pomeranje udesno.
ljenih birova, a zatim dana njihovo n1csto postavite nov znak pomocu operacije OR:
l l l !Ill l l II l l 1 l I l Ill I l l I l I ll 0000 A
10 l l 0 I I l lO I I l l 00 110 I l 0 l l l 000 I0 I l A
00 llllll llllllll llllllll llllllOO A pomereno bcz prosirivanja znaka
l l I l I ll I l l ll I l I I I l I l l Ill 00000000 13 ( maska)
llllllll llllllll llllllll llllll 00 A pomereno uz prosirivanje znaka
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 Va.l.na primena pomeranja je rnnozenje i deljenjc stepenom broja 2. Ako se poziti-
!0110111 10111100 llOllOilOIOIOlll tAANDB)ORC 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,
Operacija AND tczi da uklanja jcdinicc, zato sto u rezultatu nikada ncma vi;e je-
rczultat je originalni broj podeljcn sa 2k
dinica ncgo u bilo kom opt:randu. Oper·acija OR tezi da umece jcdinicc, zato stu re-
Pomeranjc se moze iskoristiti za ubrzavanje izvesnih aritmetickih operacija. Raz-
zultat sadrzi baiTill unoliko jedinica kuliko i operand s najvisc jcdinica. Operacija
rnotrite, na primer, izracunavanje formule 18 x n za neki pozitivan ceo broj n. Posto
EXCLUSIVE OR jc sJmctricna i u pmscku nc tczi niti da umcce jedinice, niti da ih
je 18 x n = 16 x 11 + 2 x n , 16 x 11 se moze dobiti pomcranjcm kopijc n za 4 bita ulevo.
uklanp. Ova simetrip izmcttu nula i jc·dinica ponekad jc korisna ( na primer, kada tre-
2 x n se moze dobiti pomcranjem broja 11 za l bit ulevo. Zbir ova dva brojaje 18 x 11.
ba gencrisati slul'ajnc brujeve).
Mnozenjc je izvecleno pomocu prcmestanja (kopiranja), dva pomcranja i jednog sabi-
Vecina ral'unara dana~ podrz.ava i sknp instrukcija za rad s brojcvima u formatu
ranja. sto je cesto bde nego standarno mno:l,enje. Naravno, prevodilac moze da izve-
pukretnug zarCJa koji grubo odgovara arirmctickim operacijama s celim brojevima.
de ovaj trik samo ako je jedan cinilac konstanta.
Racunari pm!rzavaju bar dve duzine brojna u fonnatu pokretnog zareza (kracu kada

l4
t\
:;.,.
- 376 Poglavljc 5: Nivo arhitekture skupa instrukcija 5.5 Tipovi instrukcija 377

Pomeranje negativnih brojcva, cak i uz prosirivanje 1naka. daje sasvim drugacije Binarne i unarnc instrukcije cesto se grupisu prema upotrebi. a ne prema brojL
rezuitate. Razmotritc:, na primer, negativan hroj u kornpicmentu jcdinice, -I. Kada se opcranada s kojima ra<ie. Jcdna grupa obuhvata aritmcticke operacije, uk1jucujuci .
pomeri I hit uicvo, dobija se- 3. Drugim jcdnobitnim pomeranjcm uievo dohija sc -7: negiranje. Druga grupa obuhvata logickc operacijc i pomeranje, posto se ove dve ka,
Illlllll lillllll llllllll IllllllO- I kao komplemcnl jedinice tegorije najcesce zajedno koriste za dobijanje podataka.
llllllll llllllll IIII!lll III11100-I pomercnl bitulcvo=-3
11111111 IIIIIIII 1111IIll 11111000- I pomercn 2 hila u1evo = -7 5.5.4 Poredenje i uslovni skokovi
Pomeranjc ulcvo negativnih brojeva izra:l.cnih Lto kompiement jedinice nije isto U skoro svim programima ponckad se ukaze polrcba da se provere podaci i preck
sto i mnozenje sa 2. Pomeranje udesno, pak. ispravno simu1ira dcijcnje. na alternativni niz inslrukcija na osnovu te proverc. Jednostavan primer je funkcija Z<L
Sada razmutritc broj -1, prikazan kao komp1emenl dvojke. Kada se pomeri o hito- izracunavanje kvadratnog korcna, '1/x. Ako je x negativan bruj, proccdura daje poruku
va udesno u1. prosirivanje znaL1. dobija se -I. ;ro je nctacno jer je mudul celubrojnug o grdci; ako je x pozitivan broj.,ona izracunava kvadratni koren. Funkcija S<Jrl trcba
dc1jcnja -I I 64 jcdnak 0: da proveri urednost promcnljivc xi da tada obavi skok. prcma tome da li je vrednos:
11111Il1 IIIIIIII IIIIIIII lllllll1 - 1 kau komplerncnt dvujke x negalivna ili nije.
lllll II I I I I I II II II I Ill I I Ill II Ill - I pomcrerw 6 bitova udesno = -I 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
Pomcranjc udcsno po pravilu duvodi do grcskc jcr sc udsccanJCill hinarnih cifara ispunjen. Ponekacl se jednim bitom unutar instrukcijc ukazujc na to da Ii cc sc skok
rczultat pumcra ka ncg~ttivnijim hrojcvima ..~to sene slaze s pravilima aritmctikc s cc- obaviti ako je usluv ispunjen iii ce se on obaviti ako usiov nije ispunjcn. Odrcdisna
lim nc:gativnim brojcvima. Pomc:ranjc: ulevo. mcJutim. ispravnu simuiira rnnnzc:njc s adresa cesto nije apsolulna. vee se racuna u odnosu na tekucu instrukciju.
brujcm 2. lnnedu raziicitih uslova. najccsce se provcrava da 1i je odrcdcni hit u racunaru 0 iii
Opcracijc rotiranJa kurisne Sll Dl pakmanje nizova bitma u reci. Aku je potrchn() nijc. ;\ko instrukcija proveri bit za znak broja i usmcri prograrnski tok na oznaku LA-
tt.:stirati \VC hitoVC nckt' rc(i, U/aC>lOJ1Tlirnjcdnobitnim rotiranjt'lll svaki hit CC dolclliti BEL ukuliko nadc da je on I. naredbc koje pocinju kod oznakc LAJJF.L izvrsice se
na mcsto hila za znai-., gdc sc mo/.e lakn testir,tti. a po testiranJU svih bitova n:c o'tajc ukoliko je broj negativan, a naredbc kojc neposrcdno slcde instrukciju za uslovno
jcdnaka originalu. Operacije rotiranja cistije su ud operacija pomerania jer q; tokum grananje izvrsice sc ukoiiko je proveravani broj 0 iii je pozitivan.
njihovog i/vr~:tvanja ne gubc informaL·ije: proi;vuljna clperauj~t rotircu~j:tmo/c .\C po- Mnogi racunari imaju biluvc za kodove uslova koji sc koriste cia oznace postojanje
nistiti drugum npc·racijom rotiranja. odrcdenih uslova. Na primer, moze postojali bit za prekoraccnjc koji ce biti postavijen
!':dec binarnc <lJlcTacije nhavljaju sc toliko cc.,tu s:t udrcdcnim upcran,iima d~t u na I kacl god aritmeticka opcracija gcncrise neispravan rezu1rat. Testiranjem ovog bitt
skupu IS;\ in:-.tnt\.;cija [>nnckad pt>stojc' un:m1.: inslrukt'ijt' kojc ih ohav ijC~ju br..;c. l'rc- pnwerava se postoji li prckoracenje u aritrnetickuj operaciji. tako da pri njcgovom ot-
mcstanje nuk u mc'lllllrijsi--u rei' iii u rc·gi:-.Ltr iJll/.Ctnu je uubicajcllll pri inicipli;.u- krivanju programski tok mo/.c da se skrene na potprogram za obradu greske.
v:lil.Jl! proracun~L Prcmc,;tanjt' nuk .J.?. 11.1ravnu. spccijalan -;lucaj ops~ih instrukcij,t za Siicno tome. neki proccsori imaju bit za prenos koji sc postavija kada pri nekt'j
prc:mc.~Ltnjc podat:1k~L Zbng el!b:-.nusti c~st<1 pustoji operacija CLR. kuja sadrzi ,am!l aritmetickoj operaciji prenesena vrednost ..ispaclne·' s Ievog kraja registra (na primc:r.
jednu ,tdrc:su ~ Jt,~aciju koju trehct ubri:;ati (tj. pude,iti njcnu vrednust na 111tlu). kada se sabiraju elva negalivna broja). Prcnos iz kraj1~cg lcvog bila sasvimje uobil'a-
J)mbvanjc jcdinict: udrcdc'TlOj rcei lctkodc JC \C(l!l1a uobicaiern oper<.Jcija pri bru- jcna pojava i ne trcba je mt'Sati s ranijc pominjanim prekoracenjem. Testiranje hiLt
j:tll.Jll Unarni clhiik in:;truf-ciJC ADD JC uperacijct INC ciji jc jedan sahirctk uvck 1. Upe- prcnosa pulrebno je La aritmctiku visoke preciznosti (tj. kada se ceo hmj prt'dslavlj<t
racija NEG je jDs jl'cbn primer. ~cgiranj~ (ohrt:mje Lnaka) promen1Jive Xu \lvari jc s dve ili vise rcci ).
1/f'clCUila\·anjc' r'urrnuie ()-X (binarncl <ldu;im:llljC.i. ali opel. zb<lg cc·;te prilllt:i1C ()\ c Testiranje s nuiom va7.no je za programske pctije, a sluzi i u mnogc druge svrhe.
upt:r~tCiJC. ptmt'kad pustt>jl p"sdma instrukcij~l NEG. Va7IHl je uo(·ifi razld~u i1mc:du Kada hi sve instrukcijc za uslovne skokove testiralc samo jeclan bit. da bi se proveriio
aritmetil:ke ''lxr:H:i.Jt' ~1rcG i lugickc· ''P<='raCije NOT. Oper,tcip NEG dajc aditivnu in- da li jc odrectena rec nula. morali bi se teslirati svi bitovi pojedinacno (bko bi se pro-
vefliju ;aLL toil bmp I hruj k.1ji dc~jc: () kada se dmLt origin:lltt i. Opcracija NOT ">:tlllu vcriio da nijedan nije I). Ovakva situacija .,e rcsava tako slo mnogi racuncui imaju in-
i;Hc·,: svc r·ujcdinal:nc: bitm c u rel:i. Dvc pumem:k upc·ra•.'iJc ,u vrlu siil:nc i u ,i- strukciju koja proverava ceiu rce i usmcrava programski tok u drugom pravcu ukoliko
c,tt·nm koji llL'g:tli'> :te hn,j,·vc prccbt:tvlp u kumplcmcntu jedinicc. tt!lc set i<knticnc·. je njcna vrcdnost nula. Naravno, ovo resenje samo prchacujc ,.vruc krompir" na nivo
1U aritmctici s im~t prikat:ttti:n u L11npicmc:ntu dvoJke. irLtruk:_'iJa NCG ,,. uha- mikruarhitekture. U pr:tbi. hardver obicno sadr/.i registar na cije se sve bitove zaJedntl
\lp l<!ku ~!11 ot: pr'u illl.:rltlJU ,vi pujc·dinac:1i bitovi, pCt sc /ctllm dod:~ I,) primcnjujc operacija OR: una daje jedan hit koji ~;wpstava da Ii registar sadrzi barem
jednu jcdinicu. Bit Z na c,Iici ~-I normaino bi bio i1racunavan takn stn hi se svi rcml-
tujuci hitovi ALU jcdinice zajeclno podvrgii operaciji OR i invcnovao dobijeni reLU1tat.
Poglavljc 5: Nivo arhitekturc skupa instrukcija instrukcija 379

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

:t
.I
il
....,..
}·:'

Poglavlje 5: Nivo arhitekture skupa instrukcija 5.5 Tipovi instrukcija 381

petlja s testiranjem na kraju u jeziku C prikazana je na slici 5-30(a). (Ovde nismo 5.5.7 Ulaz/izlaz
mogli koristiti Javu posto u tom jeziku ne postoji naredba goto.)
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-
i = 1' i = 1;
licitc seme ulazno-izlaznih instrukcija. To su:
L1: if (i > n) goto L2;
L 1: prva naredba; prva naredba; 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.


poslednja naredba; poslednja naredba
Najjcdnostavnija ulazno-izlazna metoda jc p•·ogramirani ulaz/izlaz (engl. rru-
i = i + 1; i = i + 1;
granu!led 110). koja se po pravllu koristi u jeftinijimmikroprucesorima (na primer. u
if (i < n) goto L 1; go to L 1;
ugradenim sistemima iii u sistemima koji moraju brzo da rcaguju na spoljne prorncne
L2:
- sistemima koji rade u realnorn vremenu). Ovakvi proccsori obicno imaju jcdinstvc-
(a) (b)
nu instrukciju 1.a ucitavanjc podataka i jedinstvcnu instrukciju .ca njihov izlaz. Svaka
Stika 5-30. I a) Pctlja s tt:stiranjem na kraju. (h) Pctlja s lcstiranjc:m na poCctku. 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
Za petlju s testiranjcm na kraju karakteri:-.ticno je to da ce se uvek harem jednom urcdaja. Proccsur mora potpuno da izvrsi odredcni ni.c instrukcija za waki znak koji
izvrsiti. cak i ako je n manje iii jednako 0. Razmotritc. na primer, program koji odrza- se ucitava iii upisujc.
va kartone zaposlenih u nckoj firmi. U nekom trenutku program cita infnnnacije o Kao jednostavan primer ove mctode razrnotrite termin~tl s cctiri jednobajrna rq.;i-
mlrcdenom :-.lul:beniku. On ucitava promenljivu n (broj dcce cloticnog zaposlcnog) i stra (slika 5-31 ). Ova rcgistra se knri;;tc .ca ulaz. status i p<ldatkc. a ch a z.a izlaz i La-
izvrsava pctlju ll puta, po jcdanum za svako dcte. ucitavajuci imc deteta. njegov pol i kolle status i podatkc. Svaki imajcdinstvcnu adresu. Ukoliko sc kori.,ti ulalllo-izlazni
rodcndan da bi lllll lirma mogla poslati rmlendanski poklon, sto je jcdna od prcdnosti uredaj koji jc prcslikan u mcmuriju. sva cctiri rcgistra su deo adrc·snog pmst<'ra mc:-
rada u toj rinni. Ako sluzhcnik uopste ncma dcce, n L'c biti 0. alice se petlja ipakjcd- rnorijc racunara i mogu sc ucitavati ili se u njih ni•Jgu upisivati pudaci ponHK'u ucJ-
nom izvrsiti i sluzbenik ce grcskom dobiti poklon. bicajcnih instrukcija. Ako niy tak•J. za citanje rcgistara i upisivanje u njih i-;Dristc sc
Slika 5-30(h) prikazujc drugi nacin tcstiranja kuji racli ispravno cak i kada jc 11 spccijalne ulazno-izlamc instrukcijc. rccimo in,-;trukciJc IN i OUT. l.i oha slucaja uLlz
manjc iii jcdnaku 0. Obratitc paznju nato da se u dva navcdena slucaja tcsriranjc nc i izlaz sc dobijaju tako ;lo .se pm!aci i statw;ne irJfurmacije prcnosc izmcJu proccsora
obavlja na i:-.ti nacin, pa ako jcdna ISA instrukcija trcba ida uvcea brojac ida obavi i ovih rcgistara.
testiranjc. projcktanti moraju da sc oprcdele za jcdnu od dvc mctodc.
Razmotritc ktld kuji bi bio gcncrisan 1.a narcdbu , Btt ZcJAK JE STIGAO Btt SPREr,1/,N U, SLEDEC! ZNAK
for (i = 0; i < n; i++) { naredbe} Status tastature StutL:s dtsple]a

Ako prevodilac ncma nikakav podatak o broju n, on mora da upotrcbi pri~tup sa 1'1.1 . -] I'I J -l
slikc 5-3001) da hi dao ispravan rezultat za slucaj kada jc n ::; 0. Ako. medutim. on ' Btt OMOGUCCN PREKIO Bit OfVIOGUCtN PREKID
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 Safer tJ::itJture Bafer Jts;_;ie1a
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
I Preuzet znak ] I Znar: za pr1kazivanje J

ispravljen. kadajc cak i zajednica korisnika FORTRAN-a shvatila kako imati narcd-
Slika 5-Jl. Rcgistri uretbja /a.jcll!l\l~tavan tcn:1inal.
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. Rcgi~tar L.a ~talus taSLtlure !;ua ~ hiL.t h.ojt ~c k.utl."'ic t (J bi1ova k..,ji sc. nc h.l 1 t-i:·/t_:.
L' jaicima C i Java. osnovne situacije su mek tretirane na pravi nacin. KraJnJi levi bit 0) hardvcr,ki ,e pnst:tvlpn<l l s\ ak.t put kad ;xi,rigne n1ak. Akl•jc l'r~c­
hoJno. oolhcrski. poot.lvljen bit6. geilc:ri:-:c sc si,;tcmski prckid. inac~· \c' prekid ne gc-
nerisc (o prekidima ccmu uk.r~1tko gov\>riti malu bc,nijcl. Kada <;<.: kllristi pmgramii·;.ni

,;
"·~
r
~

"

382 Poglavlje 5: Nivo arhitckture skupa instrukcija instrukcija 383


'

,JY
~· uladizlaz, procesor se, ua hi preuzeo podatke, po pravilu vrti u kratkoj petlji, nepresta- Procesor c'e se osloboditi cekanja ukoliko pokrene ulaznn-izlazni uredaj i naloii
,;
no citajuci saurzaj registra statusa tastature, cekajuCi da se postavi bit 7" Kaua se to do- mu da generise prekicl kada zavrsi posao. Kako se to radi, vidimo na slici 5-31. Pc-
godi, softver ucitava registar bafer tastature da hi preuzeo znak" Citanje vrednosti stavljajuci bit OMOGUCEN PREKID u registru uredaja, softver nalaze hardveru da mu
registra u komc se nalaze podaci s tastature, prouzrokuje cia se bit ZNAK JE STIGAO po- signalizira kad ulazno-izlazni uredaj zavrsi posao. Sistcmske prekide cemo detaljno
stavlja na vreunost 0" obraditi kacla buuemo govorili o upravljanju tokom podataka.
Slanje podataka radi na slican nacin" Da biste znak poslali na ekran, sortver prvo Treba reci da se na veCini racunara signal prekida generise tako sto se na bitme
mora ua procita sadrzaj registra sa statusom ekrana ida utvrui da li bit SPREMAN ima OMOGUCEN PREKID i SPREMAN primeni operacija AND. Ako softver prvo omoguci
vrednost I" Ako to nijc slucaj, on ga ispituje u pctlji svc dok nc utvrdi claje on dobio prekide (pre nego sto pokrene ulazno-izlazni uredaj ), oclmah ce nastati prekid, zato
vreunost I, sto znaci da je uredaj spreman da prihvati znak" Cim terminal postane sto ce bit SPREMAN imati vrednost I. Zbog toga je ncophodno prvo pokrcnuti urcd;1j,
spreman da prihvati znak, softver ga upisuje u registar bafer ekrana, odakle se prika- a odmah poslc toga omoguc'iti prekide. Upisivanje bajta u statusni registar ne men a
zuje na ekranu, a istovremeno se brise bit SPREMAN u registru sa statusom ekran~L vrednost bita SPREMAN. jer se pn moze sarno procitati.
KadaJe znak prikazan i terminal pripremljen za preuzimanje sledeceg znaka, kontro- laku jc ulaz/izlaz podataka koji je zasnovan na prekidima veliki napredak u orl-
ler autumatski ponovo postavlja bit SPREMAN na vrednost I. nosu na programirani ulaz/izlaz, dalcko je od savrsenst va. Problem je u tome sto treba
Kao primer programiranog ulaza/izlaza razmotrite proceduru na Javi sa slike 5-32. generisati prckid za svaki preneti znak. Obrada sistcmskog prekida je skupa. Zato
Ova procedura se poziva s dva parametra: znakovni niz koji treba poslati i broj znako- nam treba nacin da se oslubodimo veeine prekida.
va niza (najvise I K). Telo procedure je petlja koja salje jedan po jedan znak. Pre nego Resenje je vracanje na programirani ulaz/izlaz, ali da u tome ne ucestvuje procescr.
.~to posalje bilo koji znak, procesor mora sacekati ua uredaj bude sprcman. Procedure (Rdcnje i mnogih drugih problema lezi u tome da ih rdava neko drugi.) Slika 5-:3
in i oul obicno su asemblcrski potprogrami za citanje sadrzaja regi,tara uredaja i upi- prikazujc kako se to radi. Ovuc postoji dodatni cip, DIVIA kontroler (Direct Memory
sivanje vrednosti u njih, pri ccmu se regis tar za citanje zadajc prvim parametrom, are- Accl'ss -- direktno pristupanje memoriji), koji ima direktan pristup magistrali.
gistar za upisivanje drugim. Deljenjem sa 128 oslobadamo se 7 najmanje znacajnih DMAcip ima (najmanjc) cetiri registra kuje mozc da puni softver koji izvrsava pr<)-
bitova, ostavljajuci bit SPREMAN na poziciji bita 0. 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
public static void output# buffer( char buf[ ], int count) { ulazno-izlazni adresni prostor (dakle, opel :l.cljeni ulazno-izlazni urelt~). u cetvrt0~11
II Posalji blok podataka uredaju
registru se naznacava da lise zeli citanje iii upisivanje u ulazno-izlazni ureltaj.
int status, i, ready: 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
for (i = 0: i <count; i++) { za operaciju WRITE (recimo, I), kao na slici 5-33. Kada se jednum inicijalizuje na
do { opisani nacin, DMA kontroler salje zahtev magistrali da procita bajt 100 iz rnemorije
status= in( display# status# reg); II preuzmi status
(na isti nacin na koji bi ga i procesor ocitao iz mcmorije). Kada dobijc ovaj baJt. DMA
ready= (status» 7) & Ox01; II izdvoj bit SPREMAN (ready)
} while (ready '= 1); kontroler salje ulazno-izlazni zahtcv uredaju 4 za upisivanjc bajta u njcga. Kada 'c
out( display# buffer# reg, buf[i]): 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.
Stika 5-32. Primer prograllliranog ulaza/izlaza.
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)-
Osnovna mana programiranog ulaza/izlaza jeste to sto se proccsor vec'inu vremena cesor mora samo ua inicijalizuje nekoliku rcgistara. Posk toga rnoze da radi sta ho,:e
vrti u petlji, cckajuc'i da uredaj bude spreman. Takav pristup se zovc cekanje na os- sve dok sene zavrsi prcnos podataka ion dobije signal za prekid ml DMA kontrulera.
lobadanje resursa (engl. lmsv waiting). Ako prucesor nema nista clrugo da radi (npr. Ncki DMA kontroleri imaju dva, tri iii vise skupuva registara. pa mogu da upravljaju
pruccsor Ll masini za pranje), onuajc cekanje Ll redu (mada cak i jednostavan kontro- s vise istovremenih prenosa podataka.
ler cesto mora da nadzire vise istovremcnih dogadaja). M~dutim, ako procesor ima i
drugog posla (npr. da izvrsava program~), c~kanje da se resurs osloboui je gublj~nje
vremena. pa j~ n~ophodna n~ka druga ulazno-izlazna metoda.

t
.,
~~
ff'
384 Poglavljc 5: Nivo arhitckture skupa instrukcija instrukcija 385

Terminal
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,
0
prema prirodi operanada.
Na slici 5-34 polja SRC su izvorista informacija i ne menjaju se. Nasuprot tome,
Procesor polja DST su odredista i menjaju se pod dejstvom instrukcije. Postoje pravila o tone
BroJac 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 im~uu 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-
Ureda1 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 cin~
Mag1strala
aritmetickc instrukcijc sa oznaccnim i nemnaccnim brojevima. Za mnozcnjc i dclje-
Stika 5-JJ. Sistem s DMA kuntrokmm. njc, 6-J.-bitni proizvod ili dcljcnik smeslaJU se LI rcgistar EAX (manjc znacajan dco) i
registar EDX (znacajniji deo).
lako DMA cip u vclikoj mcri oslubat1a procesor ulawo-izlaznih operacija. postupak TrCl'a grupa instrukcija obuhvata aritmctiku s binarnu kodiranim dccimalnim ( l3inc-
nije potpuno van kontrole. Ako Dl'v!A cip upravlja ulazno-izlaznim ureJajem velike ry Coded Decimal, BCD) brojevima, gdc sc svaki bajltrctira kao spoj dva cetvorubitna
brzine. kao sto je cvrsti disk. polro.'iice sc mnogo ciklusa magistrale na referenciranje nibla (engl. nihh/e). Svaki nib! sadrzi jl:.'dnu dccimalnu cifru (od 0 do Y). KomhinaciJC
memorije i uredap. Za to vremc ce procesor morati da ceka (pri pristupu magistrali. bitova od l 0 I() do Ill! nc koristc >e. Tak<l scsn:testohitni ccu broj (kao tip podatabJ
DMA kontroler uvek it.na visi prim·itet od procesorajer ulazno-izlazni uredaji cesto ne moze da sadr:l.i decimalan bmj izmcdu 0 i YY'!'!. lako jc ovakvo smestanje nedikasno.
mogu da tolerisu kasnjenje ). Proces u kmne DMA kontroler odu1.ima procesoru cikluse tako se otklanja polreba da se pretvaraju dccimalni uL1zni podaci u binarne i nbrnuto rri
magistralc zove sc krada ciklusa (engl. nde stcu/ing). Bcz obzira nato. dobitak ost- slanju. Ove instrukcije sc koriste 1.a aritmctid.e upcracije sa BCD bmjev ima k<Jjc intcn-
varcn tako sto za svaki prencti bajt (ili rec) ne mora da se gencrise sistemski prekid, zivno koriste programi pisani na COBOL-u.
mnogo premasujc gubitke iza;vane kradom ciklusa. Logicke t bulove) instrukcijc 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.
5.5.8 Instrukcije proccsora Pentium 4 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
U ovom i u sledeca dva udeljka upoznaccmo se sa skupovima inslrukcija tri pro-
sc u razlicitim bitovim registra EFLAGS. Jxx omaC·ava -;kup in>trukcija za uslovre
cesora iz nasih primcra: Pentiuma 4. UltraSPARC-a i procesura 8051. Svaki skup ima
skokove, zavisno od rezullata prctliudnog purcdenj<t ( bituva u rcgistru EFLAGS).
osnovnu jczgro instrukcija kuje prcvodioei unbicajeno generisu, ali i skup instrukcija
Pentium-+ ima vise instrukCip za uC'itavanjc. smc'Stanje, premcstanje. porcc!en;c i
koje se retko koriste iii ih koristi i,kljucivo operativni sistern. U nasoj analizi drzace-
pretra/.ivanjc znakovnih ni;Pv:J iii reci. Ove irF.trukcije mogu imati specijalan pre-
mo se samo uubicajcnih instrukcija. Pocnimo s Pentiumum 4.
hksni baJl. REP. i tada sc punavljaJU 'i\'C duk se ne ispuni odrcdeni w;luv (npr. tkk
Skup instrukeija Pentiuma 4 mdavina je instrukcija koje imaju smisla u 32-bit-
vredno:,t regislra ECX. kuja se um~tnjUJc· pn svakon; ponavljanju. ne pustane !i). i\~1
nom rezimu rada i unih koje .-;u ostatak iz doba u kome je Pentium 4 bio procesor
ovaj nacin sc mogu preme~tati i pored itt pn,i;:v oiJni blukovi pmlataka. Skdn'.: grura
SOK8. Na slici 5-J...J. prikazujemo mali izbor uobicajenih instrukcija za rad s celim hro- i im,trukcija bavi se kodovima Lhinva.
jevirna kojc danasnji prevmlioci i programeri vole da kori,te. Spisak instrukcija ni ~!
Poskdnp grupa sastoji ~e ud instrukcija koje c-ent' mugu wr,;t~<ti ni ujcdnu drugu
izbliza nije put pun jer nisu obuhvacene instrukcije za rad s brojcvima u formatu po- i
·ii: grupu. Tu su instrukcije za pret\ ~tranje Jcdnt'g ftmn:lla u drugi. 1.a rad >a ok vi run; prn-
kretnog l.are/.a, upravljacke instrukcijc. pa eak ni neke od cgzoticnijih instrukcija ta -~
menljivih na ;,teku, za zau:,tavljanJC proccs,1ra i ;:a ulaznu-i;laznc <!peracijc.
rad s celim hrojevima (kao sto jc koriscenje osmobitnog haJla u rcgistru AL za pre- i;ii·
trazivanjc tabelaJ. lrak, navedeni spisak instrukcija dace varn dobru preclstavu u tome
sta mo/.c cia uratli Pentium 4.
I

1
~.·.,
r "'
(
'

Poglavlje 5: Nivo arhitekture skupa instrukcija


5.5 Tipovi instrukcija 387

U skupu instrukcija Pentiuma 4 postoje hrojni prefiksi, od kojih smo jedan (REP)
Premestanje podataka Za usrneravanje programskog taka vee' pomenuli. Svaki od pref1ksaje specijalan hajt koji moze da prethodi vec'ini instruk-
JMP ADDR SkaCe na ADDR cija, slicno bajtu WIDE u skupu IJVM instrukcija. Pretiks REP nalaze instrukciji ispred
MOV DST,SRC PremeSta SAC u OST ·--.-----
Jxx ADDR Skok uslovljen 1nd1katomna
PUSH SRC Stav!Ja SAC na stek koje se nalazi da se ponovo izvrsava sve dok registar ECX ne dohije vrednost 0. Uz pre-
UZJma reG sa steka i smeSta Je u DST CALL ADDR Poz1v procedure na ADDR
POP DST
RET Povratak IZ procedure
tikse REPZ i REPNZ, instrukcija koja ih sledi ponavlja se sve dok se ne postavi (ili
XCHG DSt ,DS2 RazmenJuje OS 1 1 DS2
LEA DST.SRC UCitava etekt1vnu adresu SAC u DST IRET Povratak 1z potprograrna za obrise) kod uslova Z. Prefiksom LOCK rezervise se magistrala za celu instrukciju da bi
obradu prek1da
CMOVcc DST.SRC Uslovno prerneStan)e se omoguc'ilo sinhronizovanje raJa viseprocesora. Ostali pretiksi zahtevaju od instruk-
LOOPxx KruZenJe u petl]i do ispunJen]a uslova
~-
-- cija da rade u 16-bitnom ili u 32-bitnom rdimu, stone samo da menja duzinu opera-
Antrneticke lniciran]e softverskog prekida
f----...'----. - ·------
ADD DST,SRC Doda)e SAC na OST
~--
Prek1dan1e aka J€ postaviJen nada, vee' i potpuno drugacije detlnise nacine adresiranja. Na kraju, Pentium 4 ima i
bit prekoraCenJa
'sus osT.SRC - OduZima SAC ad DST
··~-

potpunu semu podele na segmente za ki'Jd, podatke i stek, kao i dodatni segment, stu je
MUL SRC MnoZ1 EAX sa SAC (neoznaCeno) Znakovni nizovi sve nasledio od procesora 8088. Zato postoje prefiksi koji instrukcije za pristupanje
IMUL SRC MnoZi EAX sa SAC (oznaCeno)
LOD-S- -
STOS
Uc:tava ntz
Srnesta n1z
~ ~
- ----
memoriji usmeravaju na njene odredcne segmente, ali nas to (srec'om) ovdc ne z.anima.
Di\I~SRC Dell EDX"EAX sa SAC {neoznaCeno)
IDIV SAC Deli EDX:EAX sa SAC {oznaCena) MOVS Prernesta n1z ----·-
-- ---+-=-~ ---- ---
Dodaje SAC na DST, zatim dod-;~
ADC DST,SRC
bit prenosa
CMPS Pored1 dva n1za
5.5.9 Instrukcije procesora UltraSPARC III
SCAS Pretrazu]e n1zove
SBB-DST,SRC Oduz1ma SAC i prenos adoS~
---~---- --
·- Sve cclobrojne instrukcije procesora UltraSPARC III u korisnickom rdimu rada
INCosT Doda1e 1 na DST Za uslove kodova
DEC DST OduZifnct 1 ad DST STC Postav11a b1t prenosa u reg1stru Ef:-L~~ koje prevodilac mozc da generisc navedene su na slici 5-35. lnstrukcijc za rad s hroje-
-NEGD~
L__ _ _ _ _ _ _ _ _ _
1-:':- - - - - · - - -
Neg1ra DST (aduZima ga ad 0)
i______ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
CLC Bnse brt pr;;ncsa u registru EFLAGS . I virna u formatu pokretnog zareza nisu prikazane, kao ni upravljacke instrukcije (npr.
CMC [)0punJava (d~-~~d~nice) b1t prenosa za odrzavanjc kda i ponovno pokretanjc sistema), instrukcijc koje sezu izvan kori-
B~narno kodirane decimalne ~u~re_g~s~~~E~F~LA~G'S -· ----~rl snickog adrcsnog prostora. niti zastarele instrukcije. Skup je zacudujuc'e mali: Ultra-
Decimalno pod€SaVa-n~---­ Postavl1a bit z<> smer prenoscl
podataka u reg1stru EFLAGS
SPARC Illje u pravom smislu rcci racunar sa smanjenim skupom instrukcija (RISC).
Dec1malno podeSavanJe za oduz1manw
~'"~"IA-----t~A'-·"sCII-p~3Vanw za sabiranje·-~
t-B-n-se-brt ~; ;-~~-,-p,-e-no_s_a Pod~taka J
u reg1stru .EFLAG_~ Instrukcijc LOAD i STORE standardnog su tipa, s verzijama za l, 2, 4 i 8 bajtova.
ASCII podeSav3n)e Z30du-Ziman]e I
---+-P-os.::ta'-v~lja 011 za pre..k~td~e~u~r~e~g,~st~ru Kada sc broj krac'i od 64 bita ucita u (64-bitni) registar, moze se prosiriti njegov znak
ASCII podeSavanJe za rnnoZenJe EFLAGS
,,~c;nc-----t~A"s"'c'cl'l.p:coc:d"e7
sa~van]e· za deiJenJe 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
Logicke
postavljaju bitove NZYC za uslove kodova. One druge tone cine. Na CISC racunari·
Loq1cko AND nod SAC 1DST j
r (rezultat 1de u DST) ma vec'ina instrukcija postavlja kodove uslova, ali je to na RISC racunarima nepozelj·
OR DST.SRC-·-rLogtcko OR nad SRC I DST - no jer ogranicava slobodu prevodioca da premesta instrukcije dok pokusava da popun1
(rezultat ide u OST) j
I v,......R DST.SRC Logu::ko XOR nad SAC 1 DST I SAHF
vremenske proccpe. Ako jc originalni redosled instrukcija A ... B ... C, pri cemu A po·
c-cc=---+-=''~e'~'u~•lt~at~'~de~u OST) ________ j stavlja kodove uslova, a B ih testira, prevodilac ne moze da umetne instrukciju C iz·
,...._~...-- ZarnenJUJB OST f;ornplernentom ]8d1nu~e1
Razne instruke~je medu instrukcija A i B ukoliko instrukcija C postavlja kodove uslova. Zbog toga

k
Za pomeranje/rot1ranje e--WccA:cP~D-=s~T--,~-MenJa torm.at OS. 1 (1z big-endi~Hll postoje dve verzije mnogih instrukcija, pri cemu prevodilac standardno koristi onu
-~----- '"1 ~----------:;;) . u litt1e-end1nn 1 obrnuto) ~
SA~~~ A DS.T,~Pornera DST ulevo~u_desno za ~~~ilj verziju u kojoj se ne postavljaju kodovi uslova, osim ako nijc planirano da se oni ka·
-t~~;;r~e E~~.-~ EOX-.E~l~~
I_
r SHL/SHR DST,# Log1Ck1 pornern DST ulevo/udesno CWo
CWDE SesndE:S!ODitnl oro] u reg1S1ru r'\X . snije proveravaju. Podrzani su mnozcnje, deljenje oznaccnih i neoznacenih hrojeva.
I ______ --·- z~_:~~--~ -------·- i , p~OSifUJ8 ~AX _j Oznaceni aritmeticki (engl. tagged arithmetic) format specijalan je samoidentifi·
ROL,ROR DST,#
---------
I Rot1ra DST ulevo/udesno za # b1tova
------------- r---ENTER -SiZE. LV I' -Pravi
U iE'QIS!ru
~n ste-Ku Jkw-p~~~ljiv1~1 I
RCURCR DST.# Rot1ra DST kroz prenos za # b1tova
I __ pamocu ~~~~:_SIZE _________ _J kujuc'i format tridcsetohitnih brojeva. On se moze koristiti s programskim jezicima,
1 LEAVE Pom3tav.a okv1r nil stehu naprav~IJen ~i kao sto Sll Smalltalk i Prolog, u kojima sene odreltuje tip promenljivih tokom prcvo·
Za testlranJe/poredenje_ _""_ __
clenja. vee' tokom izvrsavanja program~t. Sa ,aritmcticki o;:nacenim" brojevima pre-
iflStrukCi]Orn ENTER ;
------- --------
i
TESTSRC1~SRc2 ~9~~-:;:NO~-;-d operandif11a, -~

f 8- NOP
1 postavlp irldlkdtore ~L T Za.ustaVIJO rad ------- . vodilac moze da generise instrukciju ADD za koJU c'c tek u trenutku izvrsavanja
CMP SRC1,SRE2-~-Postavi);~;:;d~k,;iore ..n~a~os~.n~o~v~u- -
P'eUZI~--;b~t-;;p-;:;-K~ck,l PORT ____ ]
ORT- programa racunar utvrditi da li jc to celobrojna instrukcija ADD iii instrukcija ADD z,1
1 sr1c:. SRC2
------------L·---------~---~-__j
I

b
I OUT PORl AL-
~
t u <-<gistar AL
::;aile baJI ;:: regiSlr<1 AL
I na prikljucak PORT
---~, rad s brojevima u formatu pokretnog zareza.

L-~~T- -------=-t Ct=!k.a na s1stemsK1 prek1d - ---·

SRC = 1zvonSte # = broJ qomeran]a/rotlranJa


DST = odred1Ste I_V = # lok3m1h promeniJiVIIl

Slika 5-34. lzbor in,trukcija Pcnttutna .J za rad s celim brojcvitna.


r."'-
~/
388 Poglavljc 5: Nivo arhitckture skupa instrukcija 5.5 Tipovi instrukcija 389

Grupa za pomeranje sadr7i jcdnu instrukciju za pomeranje ulevo i dve za pomcranjc:


udc~no. svaku u 32-bitnoj i u 64-bitnoJ produzenuj vcrziji. U instrukciji SLL pomeraju
se sva 64 bil~t. posto jc takav pristup kompatibilan sa starim softverorn. Pomeranja se
najcesc'e koristc za manipulisanje bitovima. CTSC racunari po pravilu imaju brojne in~
strukcije za pomcmnje i rutiranje, gotovo svc potpuno bcskorisne. Malo je autora prc-

~:DSW ADDR,DST
voclilaca koji cc patiti zato sto ih nema.

I DUW ADDR,DST
OX ADDR,DST -+--=-~-- ~---
--~------- _L___ _ __

smeStanje
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 izvr~iLi UJCdnom ciklusu i skoro cia ne zahlevaju prosirenje hardvera,
S:TBsRC.ADDR ~
Smesta baJI (8 bitova)
tako da su zatlrzane. C'ak i tvorci RISC racunara ponekad podlegnu iskuscnjima.
~T~fi<:;.ADDR__ Smestapolure"_(_1_6 bitova). _ Skdeea gupa in,tt·ukcija namcnjena je upravljanju programskim tokom. BPcc

I STW SRC,ADDR i Smesta rec (32 b1ta)


sn<S'Rc7\oof17raslreno5rii8'Iianje
L________ _

_
(64 b1ta)- '
_ _ _ _ _ _j
z
a usmeravanJe programs k og to k a
fBF'cc:'ADDR--1- Skok s pred;;1danjem-- --~
.
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.
A ntmet1cke IRi- -~-----+------------- - · - - j
jDD R-t-s2 osrTsabira______ -- ----:.--.·1 ~BPr sRc_;,ADD_R_j_~k_ok na_e_d_resc_'_'':_"_'U_I_St_ra_ - _j Za pozivanjc procedura prcdvidena su dva nacina. lnstrukcija CALL korisli formal
-DOCC----c.- - --t-s-abir;i; post:1vlj:)TCC-- - - - - CALL A[)~_ __i f-'o_"'_varlJ8cProcedur<0 .. ____ . 4 sa slike 5-15 sa tride~ctohitnim pomcrajcm (racunatirn u rdinw) od registra PC.
---- - - . - -------1------~- ---------·---_- RETURN ADDR Pov1atak 12 p_roce_dure
~- -- -- ----Lee--.. ---------~ - -
r
DDC
~- - - - - -
DDCCC
.. - - -
Sab11a s prenosom
c c - - - - · - . - - - .. - rJMPL ADDR,DST
Sab~ra s prenosom 1postaviJa tee - - - ---·-
:Okok I poveZIV30J8
-r----- ----------
I ----!
1 Ova vrednust jc dovuljna da se dodc do svake procedure koja sc nalazi unutar ±2 gt-
-UB-RS2 DST~ · - - - - - - -.. ---- SAVE i'\1 ,S2,DST PomeranJe re~Jistarskih prozora i gahajta ml puzivaoca. lnstrukcija CALL odla2c svoju povratnu adrcsu u registar R15.
__ . -~~- _,_.__ -~~z~_a_____ ··- _ ___ __
f
1
1
__LJB_c;c;__·___
;

~ l1___
I url3pred
OdtlZima 1posta_~Ja icc~---- IRESTORE-.---Tvracan1e registarskih-prozora--i
SUBC ___.._____ ~Oduz1ma s prenosom __
l_l!_P!"__hod_no stanJe __ _ _
I

_J
koji pw;Je poziva postaje rcgistar R31.
Drugi nacin pozivanja proccdura je pomocu inslrukcije JMPL koja kuristi format
rUBCCC " Oduzimas prenosom~ -. ~-- -~[Tee CC: Tf1;\~ __ -~slovna e:ogran>Ska k!o~_I<CJ _ __j 1a i1i 1h, i omogucava srndtanjc povratnc adrese u hilo koji registar. OvaJ oh1ikje ko-
!--~---- ___ -~post1viJ<l_I_C£_______ -~ j PREFETCH rC~I ' Prethodno preuz1m•mte
fir _ ____[
1

~~IULX R I ,S:' _DS_T_;_MC()ZI_ __ ~--- ____ j _I'C_Olelnorije c -~ rislan kada sc adrcsa odrcdista izracunava tokom izvrsavanja .
.1 :'3D IVX R1.S2,~~- Del! oznaCf:ne broJeve _ l 1 _L.~~!.~B AD__?~_.R _l ______ uc~~nnw/s~~-s~,inJe 1 lnstrukctje SAVE i RESTORE rade s registarskim pruzorom is pokazivacem steka.
~ _LJDliJ'x_i'1f'~~DST i [);:-i:~~~:;;c'.'ne_hr~J8V~ -=jff.A,_EM~I\~- MI\Si<___t MernCJIIjsk_'l_bariLe!Cl__ ! Ohe up;tdaju u pmgrarnsku k1opku kada s1edcci (prcthodni) pruzor nijc raspuloL.iv.
[ TADc_c_R_tS2DSTU;~~ca'-'~-~o~~:;rr~;:;:,tmetlckl J ~~-' .~ -. •~c-~~Fia~n~ lnstrukcija 1 Kako se simulira
: MOIJ SRC,DST , Primenjuje se OR na SRC i GO, a rezultat se smesta u DST
Ctv1P SRX1.SRC2 Oduzima SRC2 od SRC1 instrukcijom SUBCC i rezultat se smesta
u GO
SRC i Primenjuje se ORCC na SRC i GO, a rezultat se smesta u GO
. TST
.,
NOT DST !Prime~~eseXNORnaDSTiGO
l

i'JECi DST i Oduzima se DST od GO instrukcijom SUB i rezultat se smesta u DST


INC OST lnstrukcijom ADD dodaje se 1 na DST (neposredni operand)
DEC DST i lnstrukcijom SUB oduzima se 1 od DST (neposredni operand)
- ---

CL.R DST Primenjuje se OR na GO i GO i rezultat se smesta u DST


-------- -- -- --
SRC "'- 1zvonSni rHQIStar TRAP;:;> - btoJ iJrD":Jr,'l.rnskf; !<.:Iapka CC -= postJ·;Ij(~r·: hod usiov:t NCP lnstrukcijom SETHI postavlja se GO na 0
DST = odred1Sn1 reg1star FCN = K~'ld lt.wkctJe R -= odrediSnl ;eg1stzu
Ri = 1Zvor1Snl rr::g1st..1r ~_,!,,_;Sf< =tip OpAUCij8 c:.. -= usiov RET JMPL %17+8,%GO
S2 ,_~ 1zvonSte. regis tar CO!'J -- konstJ.nta r = LZ,LEZ,Z,NZ.CZ,GEZ
Iii neposredna konstama .o-. oz::.ahJ rt=:g1str:1
'.J Slika 5-36. Nekc· 'imulirane instrukcijc prucesora UltraSPr\RC IlL
ADDR -o. rnernoriJSka n.dresd

Stika 5-J5. { )snn\· IlL' '~··-'ldh! f.ljrl~ in .... ~! u:-..LJ jt_' rrdL:>:-:>Ura L ltLtSP, \ RC tiL 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 I0 do 31, dok naredna instrukcija sadrzi ostalak ncposrecl-
nt)g t1pcranda.
I'!"'-·
Jii;
1;:
~
~i"
390 Poglavlje 5: Nivo arhitekture skupa instrukcija instrukcija 391

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-
r~~~~
lMO_V
;Pr~mesta
:
()pis -
s!c tJ_~~c_
- 1 ACCl Reg.-f_[)_i_r_
I _ x _ [x _
@A -~=J c
x jx j
_IBil I
l
__ G_l
1 I

P.r_e[lle~~a r~9_1star_ f x__J___~


cionalna laboratorija u Los Alamosu (veliki ,potrosac" takvih dogadaja) rado gleda
MOV_ r src;u lx
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-
1

' MOV LPremesta src u memonJU


r-MOV -! P~m~.sta ;;-~d~ktnuRA-M ---.
.;rc -1
. V+
I X
x x I --r.-.--~-.---.J'
x
.X.
-----l
. ·

1 memonju . , ' ,
+- -r_--J --1- · ·- _·
!
mocu rcgistra GO iii pomocu konstantnog opcranda (format I b). Nekoliko takvih in-
Mov i P~~m~~ta 1-s-bit~~ kon~t~nt~oPrR -~ ~
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.
MOVC , Premesta k6.d na adr·e· su u D.PTR
j uve6anu za pomeraj u ACC
I
I
, l
I
J
MOVC · Premesta k6d na adresu u PC uve6anu I

~::~~~~~~~jt~~~poiJ~~nj~-~RAM___ t
1
1

5.5.10 lnstrukcije procesora 8051 i MOVX }-- -+] j

Proccsor 8051 ima jcdnostavan skup instrukcija ciji jc prvi deo prikazan na slici 1 memorije u ACC ! I , I
5-36. Svaki red tahcle na slici sadrzi mnemonik instrukcije. njen k.ratak opis i pri- II MOVX Premesta bajt iz spoljasnje RAM -~ ___ , --
menljiv nacin adrcsiranja izvorista iii odredista, zavisno od toga da li sc u opisu po- , memorije u ACC @DPTR
javljuje rec src iii d.11. Kao .~to se moze occkivati, pnstoje hrojne instrukcijc MOV za Premesta bajt iz ACC u spoljasnje RAM x
prcmdtanje podataka izmcdu akumulatora ACC. registara i memorije. Postoje in-
Premesta baJt iz ACC @DPTR u

~
strukcijc za smdtanjc podataka na stek i uzirnanje s njega, pri cemu na stck u!..azuje
spoljasnje RAM memorije
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
Uzima bajt sa steka u dst
k-
1

---~~
preko 16-hitnog rcgistra DPTR. Jos nekc instrukcijc za zamenjivanje dclova registara
1
zakljucuju ovu grupu instrukcija za prcmcstanje podataka. xc~ . ,_RazlllenjtJj_e_sacjrzaj A~C i d_st
____ -
l
X
Proccsor 805 I ima jednostavnc aritmctickc instrukcije za sahiranjc. oduzimanje, XCHD
Razmenjuje najmanje znacajnu cifru ' ,X
rnnozenje i deljcnje, pri CC!llll St.: za poslednje dve instrukcijc koriste tiksni registri. _ _ 1 sadrz~jil AC~ i ds_t __ _ __
- I
Postojc i ccsto sc koristc i mogucnnsti nt postupno uvecavanjc, (ldnosno smanJivanjc I SWAP Zamenjuje mesta niblovima u dst ,x
sadrla.ja rcgistara. Tu su i logicke instrukcije, kao i instrukcije za rotiranje. ADD
--- ---- --

Dodaje sadrzaj src u ACC


---- --

t X X I X

Ostale instrukcijc proccsora 1-:051 prikazane suna slici 5-36. To su instrukcije za rad
1
ADDC Dodaje sadrzaj src u ACC uz prenos
L-
X 'X IX .__

s bitovima. Na primer, instrukcijom


:suss Oduzima sadrzaj src od ACC uz x Ix !x x
SETB 43 pozajmljivanje
f - -- - )-
; INC Uve6ava sadrzaj dst (za 1) X ~X
po.-,tavlja se samo hit 43. hcz rcmeccnja ostalih bitova u hajtu. Zatim slcde instrukcijc 0--

DEC . Umanjuje sadrzaj dst (za 1) X


za upravljanje programskim tukom. ukljucujuci instrukcije za skukove i pozivanje
proccdura, kao i dvc instrukcije za uslovnc skokovc koje porede izvoristc s nekom
. INC --! DPTR
vrednoscu i jcdnu instrukciju (LJJNZ), koja se koristi za rad u pctlji. 'MUL Mnozi 1-
DIV Deli --
-1
j _ _,

5.5.11 Porcdenje skupova instrukcija DA Decimalno podesava dst


----- -+

Tri skupa instru!..cija za procesorc iz nasilt primera veoma sc razlikuju. Pentium 4


MJL Pri.menjuj.e AND na src i ACC. i rezultat Ix X

1 srn~st~_ll. ACC

jc klasican dvoadresni 32-bitni CISC procesor. s dugom istorijom. s pomalo cudnim ; ANL · Primenjuje AND na ACC i dst, i rezultat ·
i veoma ncrcgularnim nacinima adresiranja, kao i s rnnogo instrukcija za obracanje smesta u dst :
I
I

memorij i. ANL Primenjuje AND na neposrednu ~-- T


I
konstantu i dst, i rezultat smesta u dst I
L -- J
Slika 5-37. Skup instrukcija proccsura 8051, prvi dco.
w--·
,.~f 193
392 Poglavlje 5: Nivo arhitekturc skupa instrukcija 5.5 Tipovi instrukcija
-~------------------------------------- ~~

i0st._ Opis , ACC _Reg. c In st. [_


Opis ACC Reg. c -rsit
( -~

IORL PrimenJUJe OR na src i ACC, i rezultat IX :x :X JNC Skace na relativnu adresu ako nije
smesta u ACC ! I postavljen bit prenosa _,
--+
1
·- ·"--- --e.-
!.is :Sk~t~ n~ rel;~v~u adresu ako ie

I
Primenjuje OR na ACC i dst, i rezultat jx X I
ORL
smesta u dst ! !,. -

H
P.~stavljen b~:lllera prenosa podat",ka

Skace na relativnu adresu ako nije


-~- j --
I t
J
ORL Primenjuje OR na neposrednu X I JNB 1
~P()!itavljen bit s~era prenosa podataka

l ~x
XRL
konstantu i dst, i rezultat smesta u dst
Primenjuje XOR na src i ACC, i rezultat x I X X
I

i JBC i Skate na relativnu adresu ako J8


-, I l
smesta u ACC I postavljen bit srnera prenosa oodataka i
I ako je bit prenosa prazan I
XRL Primenjuje XOR na ACC i dst. i rezultat X i
smesta u dst I ACALL Poziva potprogram (11-bttna adresa)
I
-t
ixRL Primenjuje XOR na neposrednu X LCALL Poziva potprograrn (16-brtna adresa)
! , konstantu i dst i rezultat smesta u dst I
I RET Vraca se tz porprograrna ,__-j
CLR
CPL
: Brise dst
Dopunjava dst (do 1)
:X i L
I
RETI Vrata se iz potprograma za obradu
prekida
'X
t- -t - - I
RL Rotira dst ulevo ]x : SJMP Kratak skok na relativnu adresu (8-bitna I
!
adresa) _,
i
RLC Rotira dst ulevo kroz prenos IX
·1· AJMP , Skate na apsolutnu adresu ( 11-bitna
RR 1 Rottra dst udesno x I
adresa) ,.
[RRC IRotira dst udes~o kroz pre nos x
I
I-
1 LJtvlP Sl\ace na apsolutnu adresu ( 16-brtna !

Slika 5-37. Skup itL,truk,·Jja proccsora Xll~ I, prvi Jeo. (nu.1till uk! adresa)
JMP lndirektatl skok na relativnu adresu u
I i
UltraSPARC Ill _jc :,avrcrnen tmadre:,ni (J..1.-bitni R!SC prucc:,ur, sa arhitclturom odr1osu na DPR.,.ACC I
--r-- I
I
---·--

tipa ucitaj-uskladi;ti. santo spar nacina adn.:siranja i' kompaktnim i dika'ittim sku- : JZ , Sk.ace ako je ACC nul a I
!
pnm instrukcija. i\rhitcktura procesora XO:'i I Pdgovara proccsot·u namcnjeJHJfll za JNZ : Skate ako ,1\,CC nije nula
ugradnju i takn jc puddcna da sva staje na cip. ; _ _,

: CJNE , Poredi src i ACC, skace ako nisu


: jed~aki
In st. , Opis ACC: Reg. Dir @R ,# ;c :Bit
CJNE ' Poredi src s neposrednom konstantom, X ,X

CLR i Brise bit X 'X ' skate aka nisu iednaki


SETB Postavlja b1t ,x X DJ~JZ UmanJ'Jje sadrzaj dstt skace ako nije X X
nul a
I CPL 1 Dopun1ava btl (do 1) :X ; X
I - -.. .
NOP Ne r.J.di n1Sta
ANL i Primenjuje AND na src i prenos. •X
' i rezultat smesta u prenos Slika 5-JS. Sf-up instrukcija proccsora SO'i I. drugi cleo. (nllsU/vilk)
ANL : Primenjuje AND na komplernent src IX
i prenos, 1 rezultat smesta u prenos S; aki cJd rri proccscra , razlogom je napravljen onakav kakav je. Arhitckturu Pcn-
1
0RL Primenjuje OR na src i prenos. i rezultat tiuma-+ ndrcduju tri giavna i:·inioca:
I
• srnesta uprenos I. K,,n,patibilno;,t :,a ,,Llrijim ver1.ipma.
ORL ' Primenjuje OR na komplement src X
1prenos. i rezultat smesta u prenos
2. Kumratihilnnst 'a c;tarijim vcrzijama.
MOV Prernesta src u prenos X
J. K,lmparib:lnost :-:a ;tarijim verzijama.
MOV ! P;ernesta prenos u src- X N~, 'ad.r.:.nj~·m ni\\JU/!tanja niko lLmas ne bi napravio taL1v ncskladan pruccsor. s
--- -+--
JV 1 Skate na relativnu adresu ako je t<JlikD m~1lo P<'ljllllh' rc,;J;,:·itih rcgistara. To utciava pisanje pn:vodilaca za proccsor
postavljen bit prenosa l'cntiutn -i . .'lcJ:J-:LrUk n.~grstara takodc tcra prcvodioce da promenljivc stalno upisuju
Slika 5-3S. Sl-.up in ... trukLija pn•cesor._l XO:'l, dr11gi dC\l.
!!'·~

394 Poglavlje 5: Nivo arhitektme skupa instrukcija 5.6 Tok izvrsavanja 395

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, /:
I
I
I
I
I I
cak i uz ogranicenja njegovog nivoa !SA. Mcdutim, kao sto smo vidcli u poglavlju 4, "'
>U "'
>U I I
I I
implementacija ovog nivoaje izuctno slozena. "'
·a "'0 S~kokov1:
· I I
:
..0 ..0
UltraSPARC III predstavlja poslednju rec ISA arhitckture. On ima potpunu 64-bit- en I I

"'
~
0 I I

nu !SA arhitekturu (sa I 28-bitnom magistralom). Uz to ima brojne registrc i skup in- ""'E
~
strukcija koji favorizuje troregistarske operacijc, kao i malu grupu instrukcija LOAD i "'en
: ! :; /
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.
"'
2
0.

~~
"D
"'
(/)
2
0.

~~
~
(/)
V
I
I
I
I
I
I
I
I

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 Vreme Vreme
registrima u memorijskom prostoru i iznenadujuce mocnom podskupu instrukcija za
Ia) I b)
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. 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
5.6 TOK IZVRSAVANJA izvrbva instrukcije. onda lako naprave gresku. Ovo zapal.anje je navelo Dijkstru
( 196Ra) da napise tacla kontraverzno pismo pod naslovom .,GO TO Statement Conside-
Tok izvrsavanja (engl. jlmv of" control) odnosi se na niz kojim se instrukcije dina- red Harmful" (Da li je naredha GO TO .~tetna'l), u kome predlaze programerima da iz-
micki izvrsavaju. U opstem slucaju. ako nema grananja i pozivanja procedura, in- begavaju naredbu goto. To pismo je zacelo revoluciju strukturiranug programiranja ciji
strukcije koje sleclc jedna drugu preuzimaju se sa uzastopnih memorijskih lokacija. je jed an od proklamovanih ciljeva bio da se naredba go to zameni potpunije strukturira-
Pozi vanje procedure izaziva izmenu toka izvr~avanja tako .~to zaustavlp proceduru nim oblicima toka izvrsavanja kao sto je, npr. petlja while. Naravno. ovakvi programi se
koja je u toku i zapocinje izvrsavanje pozvane procedure. Korutine su slicne proce- prevodc u programe drugog nivoa koji mogu imati brojna grananja, zato sto to zahteva
durama i izazivaju slicne izmene toka izvr~avanja. One su zgudne za simuliranje pa- implementiranje naredaba if, while i drugih upravljackih struktura visokog nivoa.
ralclnih procesa. Programske klopkc i sisternski prekidi takode izazivaju promenu
toka izvrsavanja kada se stcknu odrec1eni specijalni uslovi. Sve ovo cemo obraditi u 5.6.2 Procedure
narednirn odeljcima.
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-
5.6.1 Sekvencijalni tok izvrsavanja i grananje
nja, kada zavrsi posao zbog kojeg je pozvana, procedura vraca tok iLvrsavanja na na-
Yecina instrukcija ne uticc na tok Izvr~avan.Ja. Posto se jedna instrukcija izvrsi, redbu iii instrukciju koja slecli neposredno iza poz.iva procecluri.
preuzima se instrukcija koja je slcdi u memoriji i zatim sc izvrsava. Poslc svakc in- Medutim. s druge strane. telo procedure se moze posmatrati kau dcfinicija nove in-
strukcije. sadr:7.aj programskug hrojaca uvecava sc za duzinu instrukcije. Kada se po- strukcije na viscm nivou. S tog ~tanuvista procedura se mole smatrati jedinstvenom
smatra tokom duzcg perioda. sadrzaj prngramskog brojaca je skoro linearna funkcija instrukcijom, iako ponekacl prilicno slozenom. Da biste rawmeli deo koda koji sadrzi
vremena. kuja raste za prosecnu duzinu instrukcije unutar prosecnog vremena izvrsa- poziv proceduri, dovoljno je da znatc .~ra ona racli, a ne i kako to radi.
vanja instrukcije. Ukol iko to iskazemo na drugi nacin, undaje dinamicki redo sled ko- Posebno zanimljiva vrsta procedure je rekurzivna proecdura. tj. procedura koja
jim procesm stvarno izvrsava instrukcijejcdnak redosledu kojim se one pojavljuju u poziva samu sebe, clirektno iii imlirektno preko lanca drugih procedura. Proucava-
listingu prograrna- slika 5- 39(a). Ako program sadrzi grananja, tada vise ne vazi uvaj njem rekurzivnih procedura moze se steCi dobar uvid unacin implemcntiranja poziva
jcdnostavan minos izmedu redosleda kojim su instrukcije poredane u memoriji ire- procedura i znacenje lokalnih promenljivih. Sada cemo dati jedan primer rekurzivne
dosleda kojim se izvrsavaju. Kacla postoje grananja, sadrzaj programskog brojaca procedure.
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.
,..,.~·

396 Poglavljc 5: Nivo arhitekturc skupa instrukcija 5.6 Tok izvrsavanja 397

.. 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-
Pocetno stante
nizana 64 zlatna Jiska, svaki sa otvorom u ccntru kroz koji prulazi stubic'. Svaki naniza-
I -
ni disk nesto je manjeg prccnika od onog neposrcdno is pod njcga. Drugi i trcci stubic su
na pocetku prazni. Tamo~nji kaludcri provode vremc tako sto prebacuju jcdan po jedan

~ ~ l
disks prvog na trcci stuhic. ali tako da nikada vec'i disk ne bude i~:nad manjeg. Kada se
zavrsi ovaj posao, vcruje c;e da ce doci kraj sveta. Ako zclite iskust vo iz prvc ruke, I .

mozete da se posluzite plasticnim diskovima (ito manjim brojem), ali se nece nista do-
goditi kada re~ite prnhi,:m. D~t bistc prizvali ,kraj sveta", moratc da upotrebite 64 diska

~
_L
ck
ito od pravog 1.lata. Slib 'i-40 prikazujc pocctnu kuntiguraciju zan= S diskova.
Prvo premesti 2 diska J
~-
sa stubica 1 na stub1c 2
Stub1c 1 Stubic 2 Stubic 3

I I

~ ~
_L
L±3
[ GkJ ~
Zatim premest1 1 d1sk
sa stubica 1 na stubic 3

Re~c'llJC
Stika 5--10. Pc•Cctna ~unl1guracip za prohkn1 ltanojskih kula,; pet diskm·a.

;a prchacivanje n diskova sa prvog stubica na treci glasi ovako: prvo se


. I~.
& cb cl ---- - __ I,__________ .
I"

~~ ~e:/
~
11- l di,kDv~' prcmcsti s pnog stubiea na drugi. 1.atim sc jedan disk premesti s prvog
Na kraju, premesti 2
stubiL'a 11a urci, 1.atim sc premestc n- I diskova s drugog stubica na treci. Ovo rt.'Senje
~
diska sa stubica 2
j·: i!usln,vanu na slici 5-41. na stubiC 3
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. j)
[ ~
1_2=J
_ I ~:
--1~ ---~

I' .
C
i,
·-~
-- - ·---j----- - -- .
rL'~c·njc lr.:ha da ::.e udstampa. Proceclura prvo proverava da li je 11 = l. Ako jcste,
rc·~cnje i·~ trivijalno. sarno treba premestiti jedan disk sa i naj. Ako jc n tc I. rescnje
Stika 5--11. Ncuphl)(tni ~oraci za re,;avanje p!"lJbkma tlanoj,kih kui,t s tri di,ka.
se :;ctslllJi ud t1: koraka koja srno maloprc opisali. od kojih svaki prcdstavlja pozivanje
rt·kurt.iVIh:." pn1cedurc. Prvi i treci po1.iv- ponnvo ce gcnerisati pu tri poziva, ;w ukupno daje scdam pu,civa.
PotDun') rc,cnjc prikazano je na slici S-42. Da bi se rdio problem sa slikc 5-41.
public void towers( in! n, inti. int j) {
pu/i v pmcedun:
int k;
tcwers\3, 1, 3)
if (n ~~ 1)
j<:•'. tn poziva. On. k.nnkretno, generise slcdece po1.ive
System.out.println("Premesti disk sa"+ i +" na" + j):
towers'-2, 1, 2) else {
tO\NBi"S\ i. 1, 3) k ~ 6- I- j;
tower:;(2, 2, 3J
r- 398 Poglavlje 5: Nivo arhitekture skupa instrukcija 5.6 Tok izvrsavanja 399

towers(n- 1, i, k); Kad se procedura pozove, prvo treba da snimi prethodno stanjc registra FP (cia bi
towers(1, i, j); se stanje moglo restaurirati po izlasku iz procedure), da kopira sadrzaj registra SP u
towers(n- 1, k, j); 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-
Slika 5-42. Procedura za rdiavanjc probkma llanojskih kula. 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
Da bismo nwgli da kuristimo rckurzivne procedure, potreban nam je stek za cu- i videti dva nacina na koje se tretira vezni pokazivac. Moguc'i sui drugi nacini. U svirn
vanje paramctara i lukalnih promcnljivih za svako pozivanje (isto to smo imali u ar- slucajevima kljucna je mogucnost da se kasnije programski tok vrati iz procedure ida
hitekturi UVM). Kad god se pozove procedura, na vrhu steka sc oformi nov okvir za se uspostavi stanje steka kakvo je bilo neposredno pre tekuceg pozivanja procedure.
proccduru. Najsvc£ije formiran okvir je tekuci okvir. U nasim primerima stek raste K6d koji snima staru vrcdnost pokazivaca okvira, postavlja njegovu novu vrednost
navise. ml memorijskih adrcsa ka visim, kao u arhitckturi IJVM. Tako najsvdiji okvir i uvecava pokazivac steka da bi raervisao prostor za lokalnc promenljive zove se
ima adrcsu visu od svih drugih okvira. prolog procedure. Kada se proccdura zavrsi, stek se ponovo mora obrisati, a to se
Osirn pokazivaca steka koji ukazuje na vrh steka, cesto je zgodno imati i pokazi- zove epilog procedure. Jednu od najvaznijih karakteristika racunara predstavljaju
vac okvira, f<P. koji ukazuje na liksnu lukaciju unutar okvira. On moze da ukazuje na duzina i brzina izvrsavanja koda koJim se obavljaju prolug i epilog. Ako je taj ki'ld
vezni pokazivac. kao u arhitekturi IJVM, iii na prvulokalnu promenljivu. Slika 5-43 dugacak i spmo radi, pozivanje procedura cc biti skupo. Programcri koji efikasnost
prikazuje okvir stcka za procesor sa 32-bitnim recima. Pucctni poziv procedure stavljaju na prvo mesto naucice da izbegavaju upotrebu brojnih, kratkih procedura i
toH·ers stavlja promenljivc n, i i j na 'tck i izvrsav::~ insrukciju CALL koja na stek (na da umesto njih pisu velike, monolitne, nestrukturirane programc. lnstrukcije ENTER i
adrcsu 10 12) stavlja povratnu adresu. Pozvana procedura prvo upisuje staru vrednost LEAVE Pcntiuma 4 namcnjene su ohavljanju veceg dela prologa i epiloga procedura
registra FP na stek ( na adrcsu l 0 16) a /.a tim pomera poLu:i vac steka da bi rezervisala na efikasan nacin. Naravno, one koriste posebnu semu rada s pokazivacem okvira, pa
prostor z.a lukalne promcnljive. U1. samo jednu 32-bitnu lokalnu prumenljivu (kl, SP se, ako prevodilac koristi drugaciju ;emu, ne mogu upotrebiti.
se uvecava z.a 4 do adrcse 1020. Situacija nastala posle svih ovih aktivnosti prikazana Vratimo se sada problemu Hanojskih kula. Pri svakom pozivanju procedure, na stek
je na slici 5-43(a). 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
Adresa
towers(3, 1, 3)
sp -1----"---1 SP - k 1068
S!aravrednostFP-10/4 1064
StmvrednostFP=\024 Slika 5-43(a) prikazuje stek neposredno posle ovog poziva. Procedura prvo prove-
Povratna adresa Povratna adresa 1060
rava da lije n = I, pa kada utvrdi claje n = 3, dodeljuje vrcdnost promenljivoj k i poziva
jd 1=2 1056
i= 1 I= 1 1052 towers(2. 1, 2)
FP n= 1 .---:----'F.:..P i-1 11 = 1
k=3 1044
1048
Posle ovog puziva stek izglecla kao na slici 5-43(bl i pruccdura pocinje rad iz pocet-
SP - r-----j k=3
StJravrednostFP 1000 St,HJvrednustFP 1000 StHf'lVfP.!lliOStFP 10f\Q 1040
Star a vrednastFP ·1000 ka (pozvana procedura uvek pocinje rad od pocetkal. Ponuvno pruveravanje da !i je
Povratna ad res a Povratna adresa Povratna adresa Povratna adresa 1036
11 = I clajc negativan rezultat, pa se promenljivoj k opet dmleljuje vrcdnost i poziva se
I- 2 i= 2 i=2 1032
I= 1 i= 1 i=1 1028 towers(1, 1, 3)
FP 11=2 n=2 11=2 1024
1020 Stek tada izgleda kao na slici 5-43(c) i programski brojac ukazuje na pocetak pro-
sp -f--c--_:.:_-----::-::-1 k=2 k=2 k=2
FP
1 StarCJ '.JredrJOst Starn vrednost FP Stara vrednost FP Stara vrednost FP 1016 cedure. Ovoga pula proveravanje dajc puzitivan rezultat i stampa 'e jedan red. Zatim
PovrJtna <1rlresa Povratna adresa Povratna adrr.sa Povratna adresa 1012 se programski tok vraca iz procedure. Pri tom se uklanja jedan okvir sa steka i re,tau-
i~3 I= 3 j=3 i=3
i=1
riraju stare vrednosti registara FP i SP, kao na slici 5-43(dl. Program zatim nastavlja
I= 1 i =1 I= 1
FP - I n~ 3 11=3 n=3 11=3 1000 da se izvrsava s povratne adrese knja predstavlja drugi po1.iv:
(a( lbl lei ldl lei towers( 1, 1, 2)

Stika 5--B. Stck u nckuliko situ:tcija tokom izvrsavanja procdure sa slikc 5-42 .

._l
400 Poglavljc 5: Nivo arhitckture skupa instrukcija 5.6 Tok inrsavanja 401
-~--·--- ~-

Ovime se na stek dodaje nov okvir promenljivih. kao na slici S-43(e). Stampa se Proccdura B obavlja odreL!cno izracunavanje i vraea se u proceduru A. Za tu sitLa-
drugi red: posle povratka iz procedure okvir se uklanja sa steka. Pozivanje proccdura ciju u prvi mah mo7.cte pomisliti da je simetricna, posto ni A ni B nc prcdstavlj;;ju
nastavlja se na opisani nacin sve dPk prvobitno pozvana procedura ne zavrsi izvrsa- glavni program. vee procedure. (Procedura A jc mogla biti pozvana iz glavnog pro-
vanje i sa stcka sene ukoni okvir prikazan na slici 5-43(a). Da histe sasvim razumcli grarna, ali to ne menja sustinu.) Stavise, prvi put je programski tok presao iz A u B
kako radi rekurzija, preporucujemo da izvrsavanje procedure (pozivanje) a kasnije se vratiu iz B u A (povratak).
Asirnetrija nastaje zato sto pri prelaw prograrnskog toka iz procedure Au B, proce-
towers(3, 1, 3)
dura B pocinje da se izvrsava od pocetka; s druge strane, kada se programski tok iz pro-
simulirate koristeei olovku i hartiju. 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
5.6.3 Korutine 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
Pri uohicajenom redoslcdu pozivanja postoji jasna razlika izmedu procedure koja
A pl)f.iva proceduru B mnogo pula, procedura B svaki put pocinje da se izvrsava od
poziva i pozvane procedure. Rawwtritc pruccduru ;\, koja poziva proccduru B na
poi:·ctka, dok procedura A svoje izvr;avanje nikad vi~e ne poCinje od pocetka.
slici 5-44.
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-
(a) (b)
vanje procedure koja povratnu adresu (tj. adresu narcdbe koja slcdi iza puziva) smdta
Procedura Pozvana
na rmgmlno mcsto tna primer, na vrh steka). Ona tada stavlja adresu procedure B u
ko1a poLiva procedura
programski brujac i time zavrsava njenu pozivanjc. Kada procedura 8 nbavi posao.
.A JC pozvana ~~+------,
ona La povratak nc koristi instrukciju za pozivanje (CALL), vee instrukciju za vraeanjc
il qlcwnog (RETURN), koja samo uzirna povratnu adrcsu sa steka i smdtajc u prugramski broj,tc.
program a 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
I na naredbu knja sledi poslednji ,pnvratak··, tj. na poslcdnji puziv pruccdurc A. Dvc
i procedure k<1jc rack na ovaj nacin zovu sc km·utine (engl. comulinc.ll.
Korutine sc uobicajeno koriste za simuliranje paralelne obradc podal~tka najc'dnorn
I prucesoru. Svaka korutina radi poeudoparalelno sa svim ostalim korutinama. kao da
procesor ima samu za sebc. Takav nacin rada olak~ava programiranjc nekih aplikacip.
I On je koristan i za te,tiranjc -;oftvera koji ee se kasnije iL.vrsavati na vise procesor~1.
I Korutinc sc ne mogu pm.ivali uobicajenim instrukcijama CALLi RETURN, zato ~to
I
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
I -:?.
;.: 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-
I nog rcgistra u prograrnski brojac. Posto se sa steka skida jedna rec i ponovo jedna rcc
I 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.

A .se vr~1C3 ~
I
u qiJVi11 ;)rJgrarn j
I ~
L_____ __j
~k
Siika .3~-t-t. K~_.t~Li -.;c LH)/.1)\C l'!-,)~..-·,·Jur::, i;:vrSavanjc uvck poL·inje nj~nmn prvom nan.xlhnm.

~:.
!:i-
il
Poglavljc 5: Nivo arhitekturc skupa instrukcija 5.6 Tok izvrsavanja 403
402

Klopka se moze realizuvati u vic!u cksplicitnog testa koji obavlja mikroprogram (ilt
(a) (b)
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
Ajepozvana----+--+-------.
iz glavnog programa
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,
A se vraca potprogram za obradu prckida vraca kontrolu prekinutorn programu. On mora ponc-
u glavni program
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.
Slika 5-45. Kada se nastavi izvr~avanjc korutinc. izvrsavanje poC·inje od narcdbc na kojoj je koru- Sustinska razlik.a iJ:Incdu prugramskih klopki i sistemskih prckidajc sledeca: klop-
tina privremcno prckinuta, a nc ml pocctka. 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
5.6.4 Programskc klopke istom mestu u njcmu, dok c'e se pre kid javljati u razlicito vreme koje zavisi, na primer,
Programska klopka (engl. tmJI) vrsta jc automatskog pm:ivanja procedure iza- od toga kada je operatcr na kunzoli pritisnuo taster. Klopkc se mogu reprodukovaj
zvanog vaznim dogadajem tokom i;:vrsavanja programa, koji hi trehalo da se retko 1.ato sto ih direktno izaziva program, a prekidi ne mogujer ih. u najboljem slucaju, pro-
ddava. Dobar primer takvog dogad<lJaje neki oblik pn:koracenja. U tmwgim racuna- gram i;aziva samo indircktno.
rima, ako rezultat aritmeticke operacijc prcmasi najveci broj koji se moze preLbtaviti, Da biste detaljno sagledali kako rade prekidi, razmotrimo jednu uobicajcnu situa-
program upada ll klopku. sto znaci da :,e tok izvrsavanja. urnesto d:.~ se sckvcncijalno ciju: racunar zcli da posaljc red tcksta tcrminalu. Sistemski softver najpre smdta J
nastavi, skrece na tiksnu memorijsku lokaciju. Na toj liksnoj lnkaciji nalazi se adresa bafer svc znakcwc namenjene za ispisivanje na tcrminalu, inicijalizuje globalnu pru-
za grananje u proceduru za obradu grcskc (engl. trap lwndicr) koja preduzima od- menljivu prr koja ukazujc na pocctak bafera i postavlja vrednost druge globalne pro-
govarajucu akciju (npr. stampa poruku o grdci). Ako se rezultat nekc <lperacije nalazi mcnljivc cow1tna broj znak.ova za slanje. Zatim proverava da li jc terminal spreman,
u prihvatljivim granicama. program nc upada u klopku. i ako utvrdi da jeste. saljc prvi znak (npr. pomocu rcgistara kao na slici 5-31). Postu
Sustinska stvar je to stu klopku aktivira ncki izuzetak koji je izazvao _,am pwgram, zapucnc ulazno-izlaLnu operaciju. procesor mo7.c da izvrsava c!ruge programe.
a koji otkriva hardver ili mikroprogram. Druga mogucnost za obradu prckoracenjajc- Poslc odredcnog vrcmcna. znak sc pojavljujc na ekranu te1minala. Sada mozc da
ste da postoji jcdnobitni rcgistar cija sc vrednost postavlja na I kad god nastane pre- se aktivira pre kid. Dogada.Ji koji •delle prikazani su u pojcdnostavljenom obliku.
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.

J
404 Poglavljc 5: Nivo arhitckturc skupa instrukcija 5.6 Tok izvrsavanja 405

HARDVERSKE AKTIVNOSTI Kljucna odluka sistemskih prckida jeste njihova nevidljivost iii transparentnost
(engl. transparC/lcv). Kada nastanc prekid. obavc sc nekak.vc akti\nosti i izvrsi ncka-
I. Knntrnler uredaja aktivira vocl za sistemski prekid na sistemskoj magistrali
kav ki)d. ali kada to prude. racunar treba da bude u is tom stanju kao i pre prekida. Uko-
cia bi zapoceo sekvencu prekida.
liko putprogram za obradu sistcmskog prekida ima tak vu osohinu. kazemo da j;:
2. Cim procesor bmle spreman za obradu sisternskog prekicla, on na magistralu nevidljiv (transparentan). Kada su svi prckidi neviclljivJ. laksc ih razumemo.
salje signal za potvrdu prekida. Ako racunar irna samo Jedan ulazm,-izlazni uredaj. onda prd.idi uvck rade na nai'iil
3. Kada kontroler uredaja vidi daje njegm signal za sistemski pre kid pot vrden, koji smo upravo opisali i o njima vise nerna sta da se ka?.e. :vkdutim. vcliki racunar
on na vud za podatke stavlja mali ceo broJ kao svoju identihkaciju. Ovaj broj moze da ima brojne ulazno-izlazne urcdajc, od kojih nckoliko muLe da radi Jstovrem~­
se zove vcktor prckida (engl. interrupt vector). no, mozda za racun razlicitih korisnika. Prema tome. postoji t·a;Ul~ma vcrovatnoca da
4. Procesor skida s magistrate vcktor prekida i privrerneno ga cuva. ce tokom obradc jcdnog prckida drugi urcdaj pozeleti da gencri(c: .\OfJ.ll\·eni prekid.
5. Procesor prehacujc sadrzaj programskog hrojaca i registra PSW na stek. Ovom prubkmu se mo;ic p1jstupiti na dva nacina. Prvi prislllp jc da se naprav~
6. Procesur 1.atim pronalazi novu vrednost programskog brojaca koristeci vek- potpmgrami za obradu prckida ciji cc
prvi zadatak. cak i pre snimanja rcgistara, bi:i
tm prckida kao imleks u taheli koja se nalat.i na dnu mcmorije. Ako je vred- da onemoguce druge prck.idc. Ovako 'c ne komplikuju stvari. posl<l sc prckidi tada
nost programskug broj~Jca. recimo. 4 bajta, onda vektor prekida n odgovara preuzimaju sekvcnci_jalnn. ali mol.c da stvori problcmc sa urcdajima koji ne tolerisu
adrcsi 4n. Nova vrednost programskog brojaca ukazuje na pocetak potpro- 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
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). nijc ubradc·n u trcnutku kad pristignc skdcci mak. pmlaci sc mogu i;.gubiti.
Kada racunar irna ulanw-izlaznc urcc1ajc kojima je vrcmc kritican cinilac. bolje je
SOFTVERSKE AKTIVNOSTI 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
7. Potprogram za obradu prckida prvo cc snimiti sadr;l.aje svih registara koje ima prioritctc koji su mlrcdcni poljcm u registru PSW. Kada pre kid i;.awvc uredaj prio-
koristi kako bi kasnijc mogao da ih rcstaurira. Oni se mugu snimiti na :-.tck ili ri tela 11. putprogram za njcgovu obradu takc)(lc trcba da irna priori tel/!.
u sistemsku tabelu.
Dok se i;vrsava rotpn'gretm .ra obr~tdu J'rckida prioritcta 11, 1.anemarujc se svak.i
R. Svaki vektor prckida dele svi urctlaji odrcdcnl'!! tipa, takD da se jos uvck ne poku~aj urcLbja niLcg priori leta cia izaL<l\'e nov prekid -;ve dok polprogralll nc obavi
zna koji je terminal iza1.vao prekid. Broj lcrminala se nm/.c sa;:nati kad se svuj pusao i pFlCe\or \e ne \Tali n,t izv r\avanJC koda ni/,cg priori leta. S drugc slrane,
procita odrcdeni regi:-.tar urcdaja. pr,·kidi k<>jc: poku\aju da it.azovu urcda:i viseg prioriteta beL odlaganja se dopustaju.
tJ. Sada se mogu ucitati i druge informacijc o prekidu (npr. koduvi statusaJ. Kada i sam putprPgr:nn ;a obradu prckida mo!:e bit I prckunut. najbolji nacin da ~e
10. Ako je doslo do grcskc pri ulazno-i.rlaznim operacijama. on a ;;e mole obra- \a admiui,trati1·nng SlaiitlVi~la \VC dri.i P''d Kclllln>lutn jestc da sc obezbedi nevi-
diti sada. di_Jivnst svih prckid:L kaL!llOlrinw jcdno'-of,)\;[11 rrinler \iscstrukih prekida. Racunar
II. Al:uriraju se glohalne promenljive Jilr i wunt. Prva sc uvceava cia hi ukazab ima tri ula;no-i/b;:na urc:ctaja: s:ampa.:·. disk i RS2J2 (serijskiJ vml, s prioritetima 2.,
na slcdeci hajt. a druga se umanjuje oznacava_)uci da se kolicina ;a sbnJe -+ i 5. Na pocctku (I =0) izvr;a\aSe korisnicki rr()gram. kadal;djednom (t= 10) stam-
smanjila za jedan bajt. Ako je promenljiva count jus uvek vee a od 0. tD zn~tci pac izanva prekiJ. P<Jkrccc sc: putpn');ram za ,,bradu prekida (POP) iza;vanog slam-
cia imajos znakova .ra slanjc, pa sc znak na koji sada uka;:uje fJ!r kopira u re- pacem. kao na slici 5-4(>.
gis tar koji sluzi kao barer za izlazne podatkc. Pri 1 = l5, vud RS::'32 gcncri.'c prckid. p,,:;to H'd RS2J2 ima visi pril,ritct (5) co
swnlp~tca (::'i. preki\1 \C d,,;vcllpv:t. St~llljc: racun<~r~t. kuji u ovom trcnutku izvr;ava
12. Ako jc potrcbno. saljc se specijalan ki\d da bi se saup.~til<' urcdaju iii kontw-
_;~;'
['Otpn,gram ,:a ohradu prckida i;azv anog ;t~!mpaccm. '>tal lja sc na >..tck i pokrece pot-
leru prekida da jc pre kid obraden.
prPgram ;a ul,radu pr<_·kida i;_.J/\Jiitl:,! 1 ,Jdom R S232.
13. Re.stauriraju sc svi snimljeni registri.
~\cSto Lt,nije. pri 1 = 20. di,!-_ .ravrsava r"cl i traii nhadu. !Vlectutim. njegov prio-
14. lznsava se instrukcija RETURN FROM INTERRUPT k.oja pmc<:st 'r ponuvo po- ritctje ni/.i (41 od prioritcra p<'t;-'lt:gr~un~l kPji ,c trc:nut;w i;vr~ava (5). tako da hardvcr
stavlja u radni rc/im i u stanjc kojc jc imao pre prckid~t. R~tcunar nastavlja;; proccsora nc dozvol_java pr~kid i '->11 Jt~ -,;tavlj~i r~a l:..:~~tnje. Pri! = 25, '/_avr;av'a se pot-
radom od tackc u kujoj je nastao pre kid. program za obradu prckida il~l7v:uwg voc!<lm RS2Y2. t<'K izvr~avanja se vraca u
,t:tnjc u KllJClll je bio pre n•.:go ~ro J'~ Vc>d R:-::.2_<::' izaLV~t<l prck1d (tacnije. nastavlja >e
,-- 406 Poglavljc 5: Nivo arhitekture skupa instrukcija 5.7 Uctaljan primer: hanojske kulc 407

Prekid izazavan diskom, 5.7 DETALJAN PRIMER: HANOJSKE KULE


prioriteta 4, na cekanju
Posto smu proucili nivu !SA tri racunara. sklopimo sacla sve kockice i detaljnijc
POP voda RS232 se zavrsava,
analizirajmo isti primer na dva veca racunara. Nas primer je program za rdavanjc
disk izaziva prekid
Pre kid izazvan R$232 vodom, problema Hanojskih kula. Verziju ovog programa na Javi prikazali srno na slici 5-42.
prioriteta 5 POP diska se zavrsava U narednim ocleljcima prikazacemo asemblcrski k6d ovog programa.
Medutim, malo cemo varati. Umcsto da vam damn prevod programa na Javi, za pro-
Prekid izazvan stampacem, POP stampaca se zavrsava
prioriteta 2 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

0
~
10 15 20 25 35 40
1 zamcna poziva Javinom potprogramu za stampanjc f1rintln standardnom C naredbom

I printf("Premesti disk sa %dna %d\n", i, j)


'----y----'•'"--v-----'1' --v---~-'1'--v-- __.)1'----...,--'•'--v------'vreme---
Korisnickl : POP : POP : POP : POP : Korisnicki Za nas je sintaksa znakuvnog niza za formatiranje u naredhi printj'nevazna (niz s-:
program fStampaGa: voda RS232 f diska fstampaCa: program u osnovi stampa doslovce, osim sto 'Yad waci: ceo broj koji slcdi stampaj u decimal-
I I 1 I I

' ' nom formatu). Ovde nas zanima to da se pmcedura poziva s tri paramdra: Lnakovnim
--'IKonsn•kl
1
Korismk
- - - ---- Stek
nizom z.a formatiranje i dva cela broja.
t 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-
Slika 5-46. Sled dogadaja u primcru vi,,c,trui-.ih prckida. tcke potprograma. Razlika koju smo time uveli jc minimalna (tice se samo jedne na-
rcdbc z.a stampanje).
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 5.7.1 Problem Hanojskih kula na asemblerskom jeziku Pentiuma 4
sc potprogram Lavrsi, nastavlja se potprogram La obradu prckida stampaca. Najzad, Na slici 5-4 7 prikazan jc jedan od mogucih prevoda programa za rdavanje probk-
pri t = 40, zavrsavaju se svi potprogrami La obradu prekida i korisnicki program na- ma Hanojskiil kula za racunar Pcntium4. pisanog najeziku C. veci dco sc lako shvata.
stavlja da radi od tackc na kojoj je prekinut. Kao pokativac okvira promenljivih koristi se rcgistar EBP. Prve dvc reci se koristc za
Jos od procesora RORR. lntelovi procesorski cipovi dele prckiclc u dva nivoa (prio- puvczivanjc, tako da se prvi stvarni parametar, n (ili ovde N. _jcr ascmblcr MASM ne
ritcta): prekidc koji se mogu maskirati i prckide koji se nc mogu maskirati. Prekidi razlikuje vclika i mala slova). nalaLi na adresi EBP+:-\. a zatim skde paramctri i i j na
koji sene mogu maskirali u principu se kmiste samo za signaliziranje gresaka (npr. aclresama EBP+ 12 i EBP+ 16. Lokalna promcnljiva jc.: na adresi EBP + 20.
kad sc javi grdka parnosti u memoriji). Svi ulazno-izlawi uredaji kmistc jeclan pre- Procedura pocinjc uspostavljanjem novog okvira na kraju starog. To se radi kopt-
kid koji sc mozc maskirati. ranjc.:m ;,adrl.aja rcgistra ESP u pokazivac okvira EBP. Zatim se promenljiva n porecli ;a
Kada ulazno-izlaLni uredaj posaljc signal za pre kid, proccsor pomocu vektora pre- I i prela;i se na deo else al-co _je 11 > I. Kod u clelu then na stek stavlja tri vrednosti: ad-
kida pronalaLi u tabeli sa 256 odrcdnica aclresu potprograma La njegovu ohradu. Ocl- rcsu 1.11akovnog niza za formatiranje i promenljivc i ij, a zatim poLiva funkciju printf.
rcdnice tahcle su R-bajtni deskriptori scgmenata, a tahcla moze da pocne bilo gdc u Paran1ctri sc na stek stavljaju ohrnutim redllslcdom, jcr tako zahtcvaju programi
memoriji. Jedan globalni registar ukazuje na njen pocctak. pisani na jeLiku C. To _jc neophmlno da bi pokazivac stcka ukazivao na niz za fomJa-
Uz samo jedan nivo prckida koji moze da iskoristi, proccsor nc.:ma nacina dado- tiranJe na njegovom vrhu. Pus to fun kcija f'rintf' i ma promenlj i v broj paramctara. kada
zvoli ulazno-izlaznom uredaju visokog prioritcta da prekine potprogram za obradu bi oni hili stavljani na stck redoskdom iz prog:rama. funkcija nc bi znala gde na steku
prekida src.:dnjcg prioriteta, ada to islo ne dozvoli i nekom drugum urcdaju nizeg prio- pllCillJL: nit. za formatiranjc.
ri tela. U lntclovim procesorima. ovaj problem se resava pomocu spuljasnjeg kontro- Posk poLiva. rcgistru ESP dodaje se 12 da bi sc.: sa steka uklonili parametri. Oni sc.
lera prckida (npr. cipa R259A). Kada stigne prvi prckid, prioritcta II, procesor prekida naravno. time nc bri;u iz mc.:morije. vee samo posta_ju ncdostupni pri norrnalnom raclu
izvrsavanjc glavnog programa. Ukoliko sledeci prckid koji stigne bude viseg priori- sa stekom.
tela, kontroler izaziva nov prckid. Ako je c!rugi prekid niz.eg prioriteta. on sc drzi na Deo eise, koji pocinjc na oznaci L!, _jasan jc sam po schi. On prvo izracuna\a
cekanju dok se prvi prekid nc obradi. Da bi ova sema radila. kontmler prekida mora vn:dnost i;rraza 6- i -j i smesta ga u promc.:nljivu k. Bez obzira na vrednosti promenlji-
znati kada se zavrsava potprogram za ohradu prckida, tako da mu procesor mora va i i j, trcci stubic uvek ima vrednost 6- i -j. Kada tu vrednost smestimo u promenlJi-
poslati komandu kacl potpuno obradi tekuci prekid. vu k, ne moramn jc vise izracunavati.
F~·­

f'
I 408 Poglavlje 5: Nivo arhitekture instrukcija 5.7 Detaljan primer: hanojske kulc 409

Posle toga, funkcija triput poziva :-,amu sehc, svaki puts drugacijim parametrima. PUSH EAX ; smesti n - 1 na stek
Stek se cisti poslc svakog poziva. [to bi hilo sve. CALL_towers ; pozovi funkciju towers(n - 1, i. 6 - i - J)
Rekurzivne funkcija u prvi mah zbunc !jude, ali kada se posmatraju na ovom ADD ESP, 12 ; ukloni parametre sa steka
nivou, postaju prilicno jasne. Samo se parametri smei:itaju na stek, a zatim runkcija MOV EAX, [EBP+ 16] ; pokreni proceduru towers(1, i, j)
pozi va samu sebe. PUSH EAX ; stavi j na stek
MOV EAX, [EBP+ 12] ; EAX= i
5.7.2 Problem Hanojskih kula na ascmhlcrskom jcziku PUSH E.A.X ; stavi i na stek
proccsora UltraSPARC III PUSH1 ; stavi 1 na stek
CALL towers ; pozovi funkciju towers(1, i, j)
Prodirno kroz problem punovo, ovoga put ana proccsoru UltraSP/\RC II!. Kild je ; ukloni parametre sa steka
ADD ESP, 12
prikazan na slici 5-4X. Posto jL' ktKi za UltraSPARC lil izuzetno necitljiv, cak i za ; pokreni funkciju towers(n - 1, 6 - i - j, i)
MOV EAX, [EBP+ 12]
ascmhkrski ki'Jd i pusle mnogo iskustva, na pucctku :-.mo detinisali nekoiiko simbula ; stavi i na stek
PUSH EAX
cia hismo ga rnalu procistili. Da bisnw to mogli da uradimo, program smo pre asem- ; EAX k
MOV EAX, [EBP+20] =
bliranja provukli kroz C pretproccsor, program cpp. Osim toga, ovde smo kuristili ; stavi k na stek
PUSH EAX
samo mala slova jcr tako zahtcva asembler ?a UltraSPARC llf (La slucaj da neki ci- ; EAX = n
MOV EAX, [EBPt-8]
talac pol:eli da uncsc program).
DEC EAX ; EAX = n- 1
PUSH E.A.X , stavi n - 1 na stek
.586 ; preved1 za Pentium (za razliku ad 8088 i drug1t1)
CALL _towers ; pozovi funkciju towers(n - 1, 6 - 1- j, i)
.MODEL FLAT
ADD ESP, 12 ; podesi pokazivac steka
PUBLIC _towers , izvezi funkcitu 'towers'
Done: LEAVE ; pripremi se za izlazak
l'XTER~ _pnntf:NEAR ; uvezi funkciju print!
RETO ; vrati se pozivaocu
.CODE
.DATA
_towers: PUSH EBP , sacuvaj EBP (pokaZivac okvira) i umanji ESP
format DB "Premesti disk sa %d na ; znakovni niz za format1ranje
MOV EBP, ESP ; nov pokazivac okvira postavi iznad ESP %din"
CMP [EBP+8], 1 ; aka je (n == 1) E~m
JNE L1 ; skoci aka n nije 1
MOV EAX, [EBP+ 16] ; print!(" ... ", i, j) Slika 5--H. P!<Jbkm I !.tnoJ'kih J..u!.t La Pentium-+. 1"''·'·tu,·uk!
PUSH EAX ; smesten1 su parametri i. j i niz za fonnatiranje
MOV EAX, [EBP+ 12] ; gurnuti na stek AigDritam t.a UltraSl'ARC III isti je Lto ?a Pentium-+. U uba algoritma najpn: sere-
PUSH EAX ; obrnutim redosledom. To je konvencija za :-.t ira proll1L'I1 !Ji va 11 i :-.kaC·e ;,c na cleo .else ako j<~ n > I. Vcr~ija z:t LltraSPA RC je slozc-
poz1van1e u jeziku C na zhug odrc:Lknth svojsrav a nivoa IS.-\.
PUSH OFFSET FLAT:format : "offset flat" oznacava adresu forrnata Pocninw ud toga da UitraSPt\RC lllmura eLl prosbi! adre'l! niza ;a furmatiranjc
CALL_ print! : pozovi pnntf funk.ciji Jninit: ali nc nH>Le samo da stavi adrc'u u registar kuji cuva parametrc za
ADD ESP, 12 ; ukloni parametre sa steka slanjc, ;at,J ~to nema nacina da JCdnom in:>truk.cijom smec,ti 32-hitnu Kllllstantu u ce-
JMP Done ; zavrsili smo gistar. Za ttl tmt trchaju rhe instrukcijt:': SETHI i OR.
L1. MOV EAX,6 ;k =6 I- j Dai!e. trcha zapazitt da sc stek nc nwra P<'de:iavati poslc pcuiva. Dtto sto se regi-
SUB EAX, [EBP+ 12] ; EAX = 6- i starsl-.i pro;.ur poddava instrukciy1111 RESTORE na kraJu i'unkcije. :\!ogucnu:-.l da 'epa-
SUB EAX, [EBP+ 16] ; EAX = 6- i- 1 r~unetri 1,1 slan1,. nc u.-:imaju i1. mcmut·ije. \cC ,b :;e sme:itaju u regi.,lrc. bitno poboljs<'Va
MOV [EBP+20J, EAX ; k = EAX pert'urnwthc. pud LL\Iovum da ncm:t previ.~e UDISI<'Pllih pt>ziva. ali. ~c:neralnu glcdano.
PUSH EAX . pokreni funkciju towers(n 1. i, k) citav taj si.-;tem n.:gi»tarsk.ih pmluLl vcruvatno nijc Hcdan svujL' slul:c·nu,ri.
MOV EAX, [EBP+ 12] ; EAX = i Obt·atitc p<:/.njG na itt,trukciJU NOP i1a si..oka na LWl:LKLI Dune. T• >)C \ rcmen:;ki pnl-
PUSH EAX , smesti 1na stek ccp. Ta instrukcija cc oc uvek irvr~iti. (ak i ako ,;e nalazi iza instrukciJc za ohave;:an
MOV EAX, [EBP+8] ; EAX = n ,i-,.ul-.. Problem :.tvara tu sto LltraSP.-\RC lil irnaet1ka~nuliniju p.tralcir:.c nhr~tdc i u tre-
DEC EAX ; EAX = n- 1 nut\,:u Ltda h:trdv-:r utkrije da ima P'''!:l , progr:tm~kim skukom. i;J-.tr;tkc·ij.t k.oja ga
sledi pr;tkticno jt.: Dl\rscna. Dubro do~li u .,C:udesni .svet RJSC progr~:mir:tnja"'.
r,,
~· 410 Poglavljc 5: Nivo arhitckture skupa instrukcija 5.8 Arhitcktura IA-64 I Itanium 2 411

Ova duhovita osobina odnosi se i na pozivanje funkcija. Pogledajte prvi poziv Else: mov 6,K lpocetno k ~ 6 ~ i - j
funkcije towers u dclu else. Tu se vrednost n- 1 smcsta u %o0. a vrednost i u %ol, ali sub K, J,K lk ~ 6- j
se funkcija towers poziva pre nego sto se postavi poslednji paramctar. Na Pentiumu 4 sub K, I,K !k ~ 6- i- j
prvo se proslcduju parametri, pa se salje poziv. Ovde se prvo prosleduju neki od para- add N, - 1, Scratch I pokreni towers(n - 1, i, k)
mctara, zatim sc salje poziv, pa se saljc poslednji parametar. Dok procesor shvati da mov Scratch, ParamO I Scratch ~ n - 1
ima posla sa instrukcijom CALL, instrukcija koja je s!cdi vee jc toliko duhoko usia u mov I, Param1 ! parametar 1 = i
liniju obradc da mora hiti izvrscna. Ako jc tako. zasto nc iskoristiti vremenski procep call towers ! pozovi towers PRE zadavanja parametra 2 (k)
cia bi se prosledio poslcdnji paramctar? Tada cc paramctar biti na vreme na svom mov K, Param2 ! pomocu vremenskog procepa posle poziva zadaj
mcstu, cak i ako ga prva instrukcija pozvane procedure koristi. I parametar 2
Konacno, kod oznakc Done vidimo da instrukcija RET takmtc sadrzi vrcmcnski mov 1, ParamO ! pokreni towers(1, i, j)
procep. On sc koristi za instrukciju RESTORE koja uveeava vrednost registra CWP da mov I, Param1 ! pararnetar 1 ~ i
bi se registarski prozor vratio u stanjc kojc korisnik ucekuje. call towers ! pozovi towers PRE zadavanja parametra 2 (j)
mov J, Param2 I parametar 2 ~ j

5.8 ARHITEKTURA IA-64 I ITANIUM 2 mov Scratch, ParamO I pokreni towers(n - 1, k, j)


mov K, Param1 ! parametar 1 ~ k
Intel sc ubrzano priblizava tacki kada cc isccditi i poslednju kap pcrformansi iz
call towers ! pozovi towers PRE zadavanja parametara 2 (j)
!SA arhitckturc lA-.12 i scrije pmccsora Pentium 4. Novi modeli jos uvck mugu da
mov J, Param2 ! parametar 2 ~ j
koristc plodovc naprctka savrcmene telmologije, stu znaci rnanjc tranzistore (daklc,
Done: ret I vrati se
hrl:i radni takt). l'vlcltutim. pronalazenjc sve novijih i novijih trikova da hi sc uhrzala
restore I pomocu vremenskog procepa posle ret restauriraj
implcmcntacija. postaje svc tde jer su ograniccnja !SA arhitckturc IA-.12 svc veea. I prozore

format: .asciz "Premesti disk sa %d na %d\n"


#define N %i0 I' N je ulazni pararnetar 0 'I
#define I %i1 I' I je ulazni pararnetar 1 'I Slika 5-48. Prohlem Hanojskih kula na proccsoru UltraSPARC Ill. (nuslavak)
#define J %i2 r je ulazni parametar 2 ·;
j
#define K %10 I' K je lokalna promenljiva 0 'I Jedino pravo rescnje je da sc arhitektura IA-.12 napusti kao glavna razvojna linija i tiJ
#define ParamO %o0 r ParamO je izlazni parametar 0 'I se ide na potpuno novu IS/\ arhitekturu. To je, u stvari, ono sto Intel i zeli da ucini. U
#define Param1 %o1 r Param1 je izlazni parametar 1 '/ stvari. on ima planove za dve nove linije. EMT-64 je sira verzija Pentiuma 4, sa 64-bil-
#define Param2 %o2 /' Param2 je izlazni parametar 2 '/ nim registrima i 64-bitnim adrcsnirn prostorom. Ovaj procesur rdava problem adre-
#define Scratch %11 " uzgred, cpp za komentare koristi konvenciju jezika C •; snog prostnra, ali jos uvck stvara komplikacijc pri rcalizaciji kao i Pentium 4. Najholj~
proc 04 je ako ga smatrate sirokim Pcntiumom.
global towers 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-
towers: save %sp. - 112. %sp jeccg 32-bitnog proccsora. Stavise, ovaj procesor sc u vise oblasti drastic no razlikuje oJ
cmp N,1 1 if (n ~~ 1) Pentiuma 4. Namcraje da sc u pocetku ponudi trzistu najkvalitetnijih servcra, alice ver-
bne Else 1if (nl~ 1) goto Else 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
sethi %hi(format). I printf("Premesti disk sa %dna %d\n", i, j) implcmentacija arhitekture IA-64 jeste serija procesora ltanium. U ostatku ovog odel~­
ParamO
ka havicemo se arhitekturom IA-64 i proccsorom ltanium 2 koji je implementira.
or ParamO I ParamO ~ adresa znakovnog niza za formatiranje
%1o(format). ParamO
mov I, Param1 IPararn1 ~ i 5.8.1 Problem s Pentiumom 4
call pr1ntf I pozovi printf PRE pre zadavanja parametra 2 (j)
Pre nego stu predcmo na dctalje arhitckture IA-64 i procesora Itanium 2. korisn•)
mov J, Param2 I pomocu vremenskog procepa posle poziva zadaj
je podsetiti se losih strana Pentiuma 4 da biste sagledali kakve probleme Intel zeli d1
I parametar 2
rdi uvm:lenjem nove arhitekture. Glavna cinjenica koja izaziva svc problcmejeste t•)
b Done I zavrsili smo
nop I ispuni vremenski procep
It

412 Poglavlje 5: Nivo arhitekturc skupa instrukcija 5.8 Arhitektura lA-64 I Itanium 2 413

sto jc !A-32 prastara !SA arhitL~ktura. ni s jednim svojstvorn koje bi pogodovalo sa- Sve u svemu, situacija sa arhitekturom IA-32 zgodno se moze uporediti sa stanjem
vremenoj tehnologiji. To je ISA arhitektura tipa C!SC. sa instrukcijama prornenljivc nebeske mehanike pre Kopemika. Prcma tadasnjoj teoriji. Zemlja je smatrana telom
duzinc i mnostvom razlicitih furmata koji sc samo uz tdkoee dekodiraju u hodu. fiksiranirn u prostoru oko kojeg druge planete kru/.e prateei epicikloidu. Meciutirn, kako
Danasnja tchnologija najbo!Je radi sa !SA arhitekturom tipa RISC knja ima jednu su posmalranja postajala sve bolja i hrojnija, otkrivano jc sve vise oclstupanja. pa su, da
du:linu instrukcija i opkmlove isle du~jne koji se lako dekodiraju. lnstrukcijc arhitck- hi se ona uzda u obzir, na cpicikloicle dodavane nove epicikloide, sve dok se citav si-
ture !A-T:: mogu sc u toku izvrsavanja razlozili u mikrooperacijc tipa RfSC. ali je ;a stern nije urusio pod tcretom sopstvene slo:l,enosti.
to potrehan hardver (prostor na cipu). guhi se vremc i usloznjava sc organi;.acija. Ovo Intel se sada nalazi u istoj zamei. Ogroman den svih tranzistora Pentiuma 4 na-
je prvi problem. menjcn je razlaganju CISC instrukcija, otkrivanju moguenosti paralelne ohrade, raz-
I A-32 jc. uz to. dvoadresna. memorijski orijentisana !SA arhitektura. Vee ina in-,tnlk- resavanju sukoba, predviL1anju. pnpravljanju posledica netacnih predvidanja i osalim
cija sc obraea memoriji. a vecina programcra i prevodilaca ne razmisljaju o stalnom ,.knjigovmbtvcnim'' aktivnostima, pa ostaje zacudujuee mali broj tranzistora za oha-
pristupanju memoriji. Savremena tchnulogija favorizuje !SA arhitekturc tipa ucildJ- vljanje stvarnih poslova koji zanimaju korisnika. Zakljueak daje s Pentiumom 4lntel
-smcsli koje sc Llhraeaju mcmuriji samu da hi operande prebacik u registre. inace oha- duhoko zapao u skripac, jedini JC razuman. Prema lome. najholje je potpunu odhaciti
vljaju sve pm,lovc pornoeu tmadresnih rcgislarskih in:,trukcija. Posto radni takl proce- citavu arhitekturu (IA-32) i Lapoceti sve ocl pocetka s novorn .,plocieom·· (IA-64).
sora rastc mnogo hrzc od br;.inc memonJc. problem sc s vremcnorn samo DIOSlrava. Procesor EMT-64 dajc nt'Sto malo prostora za disanje, ali se problem njcgove slo/.c-
Ovoje drugi problem. nosti rdava sarno na papiru.
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 5.8.2 Model arhitekture IA-64: forsiranje paralclnog rada
sla ubraj~tlc 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- Pri razvijanju arhitckture fA-64 osnovni ciljjc bio da se glavnina posla t..oji sc oha-
trehno. To je treei problem. f\rhitdtura lt-\-.12 je na i;disaju. vlja tokmn izvrsavanja uracli ranije - lokorn prevodcnja. Pentium 4 u sarnom toku
lpak. nastavimo. Zhog malog hmja rcgi~tara nastaju bmjne zavisnosti. narocito i~:vrbvanja prugrama menja rcdoslcd instrukcija. prcimenuje registrc. rasporectuje rad

ncpotrchnc ;avism1sti lipa \Vt\R. ;.alo :::to rc1:ultati 111oraju nc.:gde da se ;,me~;te. a nema funkciLmalnih jedinica i radi jus stosta drugo da bi sve hardvcrske resurse ~to vise za-
raspolul:i \ih registara. Za preva;ilai.enjc man.Jka r·~gistar~1 potrchnll je da realizacija poslio. U modelu arhiteklure lA-64, sve to unaprcd radi programski prevodilae da hi
intcrno prc•imcnuJC rc,:istre 1 k<:~ku hakc:ri,~mje) u ujnL' n~gistre unutar hafcra La gcncrisao kdd koji se moze i;vrsavati kakav jeste, bez pntrehe da hardvcr tokom
mcnjanje rcdllskda. Da bi .se i;bcglu C·esl<l blokir.mje pt·i proma~iv.tnju kesa. instruk- izvrKavanja ulvrduje sta i kako treba cia sc uradi. Na primer, umcsto da sc prevodiucu
c·Ijl' o;c nwt·,IJU i;vr;;ava!i prd.<J reda. IVIcdutim. scm<!nlik:t skupa lr\-32 instrukcija saop~ti da racunar ima S registara. iako ih u stvari ima l2S. pa da se tnkorn izHsavanja

z~thtn<t pr,·c:i;nc pt·ckide. l~1ku da se instrukcijc KLljc su 1apoc<~te preko reda moraju u hodu rc~avaju nastale zavisnosti. prcma modelu arhitekturc IA-64 prevodiocu se
rnlom i l<t\rsiti. 7:~1 we <)\Pje pnlrehno lllll<l!}Ll VCOJila .,lo:ienog harLlvera. Toje cctvr- saopstava pravi broj n.:gistara racunara. tako da moze da generik kod u kome od sa-
ti prllhkm. mog pocetka ncma sukohljavanja registara. Slicno lome. prema ovom moddu prevo-
Za br1u uh~l\ Ije~11je S\ il1 nabmjani11 pusl•l' a p<l!rehn<tjc inten,:i\na paralclna obra- dilac vodi rae una o ~:auzetirn funkcionalnim jedinicama i ne izdajc instrukcije ;a tajne
d:J. On:1, "drugc' o;trane, ;nal'i Ja instrukcijc.· J..DJC 11 nju udu. iz njc' i,rittu tek posk mno- jedinice. iVIodelu korne prevodilac vidi parale!iJ:am koji postoji u hardveru. naziva se
gn :-:i..;temskih ·,·iklthCJ. 7hog luga .Jt' P"lrcbnu l<ll'llL' prcd\ ideti skL1kme kako bi:-dl1<1 EPIC (Explicitly Parallel Instruction Computing- rad s~uno s paralelnim instruk-
bili sigurni daje u uhr:1c!u u\!.1 pr<t\a ln .• trukt-;J~L f'"'>tt> -.;e pri pnJina.(ajtlll prt~dviuanju cijama). EPIC se u izvesnom smislu mol:e smatrati naslcdnikom modela ruse.
mur~: "ilris~tli cda linit~l nhradc. ~l<> mn<lg<l ko(ta. l'ak i mala uce'lalust promasaja Model IA-64 ima brojne osohine koje poboljsavaju performanse. U njih spadaju:
n-;o/c ;n~Ulh-~' da unal:..H_li ~)erforrnansc. To jc· pcti prnhkn1. prnreLtcno obracanje memoriji. rasporcdivanje izvrsavanja instrukcija, smanjenje
D<l hi /a<Jhi;;~,, pmhkm:; pmma~:tjin 1 a u ~Jred\'ltLmju. pre<c:esm mora da sc okrene broja uslovnih -,kokova i spckulativno izvrsavanje. Svaku od ovih osobina redom
spekuLittvnom i~:v r,;a\ aniu i s\·im l'rohkmirna h>Jt' "n•.l d"n•J.Si. tlar<.Jcilo kada ohra- eemo obraditi i objasniti kako je una implementirana u proccsoru ltanium 2.
c:~tnjl~ 1ncrnori_ji dnk '-'1: l;vr~~l\'.t p(~grc:~l1] prc~grctn1~kd f_rar;a i;a;uvc i!.uzetak. TP jc
;c·sti prllt.lcm. 5.8.3 Proredivanje obracanja memoriji
.'k ic·i i 11\0 0\ de ,LJ 'I\ :tr ra;vlacimu Ll .. ,!tna •,Tc'\ C:<l··. ;di bi vee oad trd1a!o da bude
ltanium 2 imajednostavan mcrnorijski model. On ima linearnu memoriju kapaci-
k:..d\.\l :-,U rr,'!hlc;11i :-.tv~;rni. {~lk. i11Sillu ~li r~Ui!l~lltdi ~-ilijCl1iC!l ~!a 32-birnc adrcse
tcla do 2~> 1 bajtcwa. lnstrukcije mogu pristupati mernoriji adresirajuei jedinice od I. 2.
:..lrhlt~..·hturL' i1-\-Y~ u.:::raniL'~i\ ajti pojcdinaL·nc prDgC.lillt' 1:,1-L (1!3 n1ctnorijc. Sto pnstajc
g()rLk:: pn;bk·r;! n~l ()ptcr.:,~:~nin1 :-.~rvcrinl~l. P:\•cc"or L0.lT-(.,4 n.:.:-.~l·,:t taj problcn1. ali
-1. S. 16 i I 0 bajtova (adresiranje od I() bajtova koristi sc za :'-10-bitne hrojeve u formatu
nc i ;.~:--ta:c.
414 Poglavljc 5: Nivo arhitckturc skupa instrukcija S.S Arhitektura IA-64 I Itanium 2 415

pokretnog zareza prema standardu IEEE 745). Mcmorijske reference ne moraju biti 64tednobitna
poravnatc na svojim prirodnim granicama, ali su pcrformanse losije ako nisu porav- reg1stra za

I..
predikaciJu
nate. Memorija moze biti tipa ,big endian" ili ,little endian .. , sto odrcctujc bit u regi- 128 registara za rad 128 registara
stru koji sc ucitava pod komandom operativnog sistema.
Pristupanje mcmoriji je ozbiljno usko grlo na svim danasnjim racunarima jer jc
128 registara
opste namene
s brojevima
u pokretnom zarezu
namenjenih
aplikacijama I

~
procesor visestruko brzi od memorije. Jedna od mogucnosti da se proredi obracanje 9
5 registara.
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,
"'"'"''"''"" 8 reg1stara
za skokove
obraeanje memoriji se mozc prorcditi nc samo kada postoji veliki kes, vee i prime- "''"k - /
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 32 stat1cna
I
memoriji uopste ne pristupa. Pri realizaciji arhitckture lA-64 na Itaniumu 2 predvidc- registra

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- Slika 5-49. Registri procesora ltanium 2.
traSPARC III. Medutim, za razliku od situacije s procesorom UltraSPARC Ill, broj
postojanjc grupa instrukcija ciji niz cini program. Unutar odredenih granica. nijedna
rcgistara kujc vidi program je promenljiv i moze se menjati od jedne do druge proce-
se instrukcija iz grupe ne sukobljava s drugim instrukcijama, ne zahteva vise funkcio-
dure. Na taj nacin svaka procedura ima prist up do 32 staticka rcgistra i do nekog (pro-
nalnihjcdinica i resursa nego sto ih racunar ima, nc sadrzi zavisnosti tipa RAW i WAW
menljivog) broja registara koji se dodcljuju dinamicki.
i ima samo ograniccnc zavisnosti tipa WAR. Uzastopne gmpe instrukcija ostavljaju
Kada se pozove procedura, pokazivac registarskog steka promcni vrednost tako da
utisak da se izvrsavaju strogo sekvencijalno, tj. da sledeca grupa instrukcija ne za-
se ulazni parametri vide u registrima, ali sc nijedan registar ne dodeljujc lokalnim
pocinje rad dok prethodna nije potpuno zavrsena.
promenljivama. Sarna prucedura odreduje koliko joj registara treba i menja vrednost
Procesor, medutim, moze da (delimicno) zapocne narcdnu grupu instrukcija cim
pokaz.ivaca registarskog steka da bi ih sebi dodelila. Ovi rcgistri sene moraju cuvati
proceni dace sve proc'i dobro.
na pocetku procedure, niti restaurirati na njenom kraju, kan sto semora raditi sa sta-
Drzeci se ovih pravila, procesor slobodno moze da rasporeduje instrukcije unutar
tickim registnma ukoliko procedura mcnja nJihov sadr/.aj. Postu jc broj raspolozivih
grupc kako god zeli (moL:da da se izvr;avaju paralelno ako tomogu) i ne mora da bri-
regi.stara prorncnljiv i prilagudcn flL'trebama procedura. dragoceni rcgistri sene trose,
ne zbog sukobljavanja. Ako grupa instrukcija narusava pravila, ponasanje programa
a procedura mo7.e ic'i dubljc pre nego sto se rcgistri potrose i nastane potreba da se nji-
sene moL:e predvidcti. Prcvodilac je duzan cia preuredi asemblerski kod generisan i;:
lmv .sadr7.aj smcsti u memoriju.
iLvornog programa tako da postujc sve zahteve. Pri hrzom prevodenju. dok se u pro-
ltanium 2 ima i 12:-) rcgistara za brojcve u formatu pokretnog LareLa prema stan-
gramu traze gre;ke, prevodilac mole svaku instrukciju da svrsta u zasebnu grupu, sto
dardu IEEE 745. Oni nisu nrganizovani u stek. Ovaj veoma vcliki broj registara znaci
je lako uraditi, ali daje bednc pcrformansc. Kada dode vreme za generisanje proiz-
da se pri racunanju s brojevirna u fonnatu pokrctnog zareLa svi mcdure;.ultati mogu
vodnog koda, prcvodilac moze da provede dugo vremena optimiLujuci ga.
cuvati u registrima, umcsto da sc smdtaju u mernoriju.
Instrukcije se organizuju u 128-bitne svdnjeve (engl. hwulles), kao sto je prika-
Postojc i 64 jednubitna rcgistra za predikaciju, ~ registara 1.a skokove i 12:-) speci-
zano u vrhu slike 5-50. Svaki svdanj sadrzi tri instrukcijc po 41 bit i petobitni sablon.
jalnih rcgistara namcnjenih aplikacipma koji se koristc za razlicite svrhc (npr. za pro-
Grupu instrukcija ne mora da cini ceo broj svdnjcva; ona mo.l.e da zapocne ili da se
sledivanjc parametara od aplikacije ka Pperativnom sistcmu). Na slici 5--1.9 prikazan
zavrsi usrcd sveL:nja.
jc pregled registara ltaniuma 2.
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
5.8A Rasporedivanjc instrukcija je na slici 5-50. Prvo polje GRUPA OPERACIJA oznacava opstu grupu kojoj pripada in-
Proccsnru Pc·ntium-J. jcdan ud velikih prublema stvarajutdkoce pri rasporedivanju strukcija ( npr. celobrojna ALU operacija). Sledec'e polje, TIP OPERACIJE. navocli kon-
razlicitih instrukcija u razlicitc funkcionalnc jedinicc Ll/. istovremeno iLbegavanjc za- kretnu zahtcvanu operaciju (npr. ADD ili SUB). Zatim slede tri rcgistarska polja. Na
vi.snosti. Te pnslove u toku i-evrsavanja programa obavlja vcoma slo/.en hardver, za kraju jc REGISTAR ZA PREDIKACIJU, koji cemo ubrzo objasniti.
koji je na cipu ostavljen vdiki cleo prostora. U arhitekturi [A-64 i kod proccsora Itani- U sablonu sveznja uglavnom se navode funkcionalne jedinice potrebne svc:lnju. kao
um 2 takvih problema nema Jer sav taj posan obavlja prevodilac. Osnovni koncept je 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 5.8 Arhitektura IA-64 I ltanium 2 417
---··--· - -----------------------------

if (R1 == 0) CMP R1 ,0 CMOVZ R2,R3,R1


B1tovi 41 41 41
R2 = R3; BNE L1
lnstrukciJa 2 lnstrukcija 1 lnstrukc<Ja 0 MOV R2,R3
/~ L1
(a) (b) (c)
Sablan
/
/ Stika 5-51. (a) Narcdba if. (bJ Asemhlt.?r,ki k6d za (a). (c) Uslovna instrukcija.
/

Bitovi /4 10 Na slici 5-51 (c) prikazano je kako se oslobauamo uslovnog skoka pomocu nove
TIP OPERACIJE REG ISTAR 3 REGISTAR 2 REGISTAR 1 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.
GRUPA OPERACIJA REG ISTAR ZA PREDIKACIJU /
Kada irnamo instrukciju koj~{ mo/.e da kopira podatke pod uslovom da jc sadrzaj
Stika 5-50. Sv,,/anj L\-ocf in,tru,cija ,adrl.i tri inotrukcijc:. 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
memorijom.jeJinica za rad s bruJcvima u t'ormalu pu"rctnog zareza.jcdinica za .s"o"o- ovakve instrukcijc, na dohrom smo putu da potpuno ostvarimo uslovno izvrsavanje.
ve itd. Naravno. LIZ sest jcJinica i tri inslrukcije. /a potpunu ortogunalnost potrebno je Zamislite naredbu if s vise dodela u dclu then i vise drugih dodela u delu else. Citava
216 kombinacija. i jos 21 o za O/Jlacavanjc markera grupc instrukcija posk in.,trukcijc narcdba se moze prevcsti u ki'ld koji sadrzaj odrcdenog registra postavlja na 0 ako us-
0 i trdih 21 (J 1.a omacavanjc markcra grupc im,trukcija po·;lc instrukcijc I i jos 21 h 1.a lov nije ispunjc:n ili na ncku drugu vrcdnost ako jc ispunjen. Posle podesavanja regi-
oznacavanjc mar"era grupc instru"cip po,lc instrukcije 2. Posto jc na raspolaganju stra, dodelc iz dela then mogu se prevesti u niz instrukcija CMOVN, a dodcle iz deJa
samo) bituva. dopustcnjc samo mali broj ovih kumbinacija. S drugc strane. tri instruk- else u niz inslrukcija CMOVZ.
cije ;a rad s bwjcvima u t'urmatu pllkrctnog ;;w~ntu ist()m :-.ve;nju ne hi nH1gk da ratlc, Sve ovc instrukcijc (poddavanje registra, instrukcijc CMOVN i instrukcijc CMOVZ)
cak i kada hi SC lllllglc Dtdati.jer pr< ll'CSOI' 11l' lllOll' istOVl'<~llh.'ll<l Ja ;:;;poC!lt.' 1ak \C: tri in- cine jeclinstvcn osnovni hltlk hez uslovnih skokova. Rcdosled instrukcija jc cak mo-
Slrukcijc. Dozvo!.Jt:nc kombinacijc su <lllL' kojc SL' prakticno mugu i,~vesti. 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
5.8.5 Smanjcnjc broja uslovnih skokova: prcdikacija poznatu trenutku zavrsetka uslovnih instrukcija (prcd kraj paralclne obradc). Jcdno-
stavan primers dclom then i dclom else prikazan je na slici 5-52.
Druga va/na '''obina arilitc:kturc l.-\-6~ jc:-.tc nal'in na "oji sc: on a nosi :-.a tt.slt>l nim
if (R1 == 0){ CMPR1,0 CMOVZ R2,R3.R1
skoknvima. K;tda bi pustnpn naCin LLi ,;c ICCJI1a LLdo1 nih sk,1kova i1baci i; pru~r~illl~l.
R2 = R3: BNE L1 CMOVZ R4.R5.R1
prucc:sm hi bio jcdnostavniji i r~tdi<l hi l;rl:e. L: prvi mailn•LJ/.da izi'kda dajc nal·c·tkni
R4 = R5: MOV R2.R3 CMOVN R6.R7,R1
zabtev ncrazuman jcr su pro~rami prc·puni il~trcLLtba If. :Vkdu1im. u arhitd,tmi l.\J,..l. MOV R4.R5 CMOVN R8,R9,R1
} else{
k11ri:-.li sc tdmika ;vana predikacija (engl. f!ru!inltionl. pumt'Cll koje sc broj t:.slnv- R6 = R7; BR L2
nih skokuva mo:·.c ;nattw sm;;njiti 1/\::~u.st eta! .. jl)l)X: llwu. !l)9X). S;1da ccnwj<.' RS = R9; L 1. MOV R6.R7
ukratko ubjasniti. MOV R8,R9
Na sada.~njim raCunarima svc instrukcijc 'll hems!clVIK u skdcccm smislu: kada L2:
proc·csur naidc n;! instrukclill. <'ll je jL'diHJ>l,lVll\1 ifvr;i. 7a ra;liku od toga. u pn:dika- (a) (b) (c)

ti vnuj arhitektmi i nslrukc·i.Je sadr it: mlm ,. 1prcdikak) koj i ndrt:Ltuju k.llla cc ilblru!..ci_p Stika 5-52. (a) Nareclba If. (b) Asemhlcrski kl)d za (a). (cl u,lovno izvr,avanjc.
hiti i;vr.~clla. a kadd 11CCe. 0\~lj prdtck \ bC/li',JO\flOg mode:\;! na !lludcl prcdik~lti>. nih
instn:kcija omuguca1 a da '><c oslt;bt 'dimo ( nmu~ih) uslovnih skokt1va. Umcslu da lako smo ovdc prikazali samo vcurnajednostavnc uslovne instrukcijc (;a Pentium-!,
moLtlllO hirati jcdan iii dnt;,:i niz bc:Lu..,lm nih inotw~cija. svc 111:-.truL;ijc: su smC::il'ne n u stvari), u arhite"turi lA-6-l sve instrukcije su prcdikativne. To znaci cia sc i;vrsenjt:
isti niz pn.'dikati\ nih instrukL'i.ia."' raL.1iCitin~ prcdikariin~: z~t r:l71il'itc in:-,truJ...ci;L:. svake instrukcije lllOY.e uciniti uslovnim. Pomocu clodatnog sc:stobitnog polja koje smo
JJa hi.',L..' vidcli k~tk.o radi prcdif.-..~tcija. p<'g!cdajJno j,:-dnoqavan prin1cr na sli ..:i )-) l. ranijc pomcnuli bira sc sadrzaj jednog od 11-l jcdnobitna rcgistra za preJikaciJU. Tako cc
l!v. uslm no izvrsavanje. (t•J .Jl' prc:lhodnic:a rredibcijc. ?'h siici 5-) I i a\ vidimPJcd- naredba if biti prevedcna u k6d koji sadrzaj jednog od registara za predikaciju postavlj"t
nu n;1redhu ;f :\;t slici 5-5lt 11 1 vidimu njcn ;m:vod u tri in:,trukcijc: porc:LLnjc. u:.lm t~i na 1 ukoliko je uslov ispunjcn. ana 0 ukoliko nije ispunjen. [stovremcno. on automatski
skok i rrc:me::.tanj,·. postavlja na inverznu vrcdnost i sadrz~0 drugog regi.stra za predikaciju. Uz predikaciju.
r- ~
'

418 Poglavlje 5: Nivo arhitekture skupa instrukcija 5.9 Sazctak 419

!:,.
i,
' masinske instrukcije sa odredbama then i else bice spojene u jedinstven tok instrukcija, upotrebi sadrzaj upravo ucitanog rcgistra, spekulativne instrukcijc umccu instrukciju
pri cemu ce prve koristiti predikat, a druge njegovu inverznu vrednost. CHECK. Ako na tom mestu postoji vrednost, CHECK se ponasa kao instrukcija NOP i
Iako jcdnostavan, primer na slici 5-53 ilustruje osnovnu ideju kako sc moze isko- izvrsavanje se odmah nastavlja. Ako na tom mestu jos nema vrcdnosti, sledeca in-
ristiti predikacija da bi se eliminisali skokovi. lnstrukcija CMPEQ poredi dva registra strukcija mora da saceka. Ukuliko su stvoreni uslovi za izuzetak i postavljen je otrov-
i sadrzaj registra za prcdikaciju P4 postavlja na l ako je sadrzaj dva poredena rcgistra ni bit, na tom mestu nastaje izuzetak koji ceka cia se aktivira.
isti iii na 0 ako je razlicit. Ona takode i sadrzaj uparcnog registra (npr. P5) postavlja Sve u svemu, racunar na kom je implementirana arhitektura IA-64 svoju brzinu do-
na inverzan uslov. Sada se instrukcije za de love if i then mogu pustiti jedna za drugom. bija iz vise izvora. Osnova arhitekturc IA-64 je savremcn troadresni RISC procesor
svaka uslovljcna jednim od dva rcgistra za predikaciju (prikazano u uglastim zagra- tipa ucitaj-smesti, s paralelnom obradom. Osim toga, lA-64 sledi model cksplicitnog
dama). Ovde se moze ubaciti proizvoljan kod, pod uslovom da svaka instrukcija ima paralelizma po kome se od prevodioca zahteva da utvrdi koje se instrukcije mogu isto-
ispravan predikat. vremeno izvrsavati bez sukobljavanja i trazi se dG ih grupise u svcznjevc. Na taj nacin
U arhitekturi IA-64 ova idejaje dovedena do krajnosti tako sto su uvedcnc instruk- proccsor moze naslepo da raspo_redi izvrsavanje svcznja instrukcija, bez velikog ra-
cijc za poredenje koje postavljaju sadrzaj registra. kao i aritmeticke i druge instrukcijc zmisljanja. Zatirn, predikacija omogucava da se naredbe iz obe grane naredhe if spoje
cije izvr.~avanje zavisi od nckog rcgistra za pn;dikaciju. Instrukcijc s predikatom u jedinstven tok, eliminisuci uslovna grananja i predvidanja cia Ii treha ici na jednu iii
mogu se sekvencijalno uvesti u paralelnu obradu, be;. zastajanja i ikakvih problema. na drugu stranu. Najzad, spekulativna instrukcija LOAD omogucava preu;:imanje opc-
Zhog toga je prcdikacija toliko korisna. 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
if (R1 == R2) CMP R1,R2 CMPEQ R1 ,R2,P4
R3 = R4 + R5;
i Soltisa. 2003. kao i kod Rusua eta!., 2004.
BNE L1 <P4> ADD R3,R4,R5
else MOV R3,R4 <P5> SUB R6,R4,R5
R6 = R4- R5 ADD R3,R5
BR L2 5.9 SAZETAK
L 1: MOV R6,R4
SUB R6,R5 Ni YO arhitekturc skupa instrul-..cija jc 0110 stu vecina smatra ,masinskim jezikom" ~
L2: Na ovom nivou racunar ima memoriju izdeljenu na bajtove iii reci koja se sastoji od
(a) (b) (c) nekoliko desetina megabajta, i instrukc:ije, kao sto su MOVE, ADD i BEO.
Slika 5-SJ. (a) Narcdba if. (b) Opsti asemblerski k(>d 1.a (a)~ (c) Prcdikativno izvrsavany.
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 sirin~
U arhitekturi lA-64 predikacija radi tako sto se svaka instrukcija stvarno izvrsava. jcdne reei. Na nekirn racunarirna (npr. na Pc:ntiumu4) referenciranJe rcci u memori)
Na samom kraJU paralelne ohradc, kada instrukciju treha zavrsiti, proveri se predikat ne nwra da sc odvija na njihuvim normalnim granicama. dok na drugirna mora ( npr.
da bi se saznalo da Ii je uslov ispunjen. Ukoliko je ispunjen. instrukcija se normal no na UltraSPARC -u III).
;:avrsava i njeni rezultati se upisuju u odrcdisni registar. Ako uslov nije ispunjen (pre- Instrukcije ohicno imaju jedan. dva iii tri operanda. kojima se nwze pristupiti ne-
dikatje 0), ncma upisivanja rezultata. pa instrukcija kao da i nije izvrsena. Detaljnije ro,rcdnim. direktnim. registaP;kim. indeksnitn ili nekim urugim nacinom adresi-
razmatranje predikacijc naci cete kod Dulonga (I 998). 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
5.8.6 Spekulativno uCitavanje
pctlji i ponek.ad za ulamo-izlazne operacije. Tipicne instrul-..cije premcstaju rec iz mc-
Jos jedna osobina arhitekture !A-64 koja ubr;:ava izvrsavanje jeste pnstojanje spe- muriJe u registar (iii obrnuto), sabiraju. oduzimaJU. mnoze ili dele sadrzaj dva regi'>tr~l
kulativnih instrukcija LOAD. Kadaje instrukcija LOAD spekulativna, pane hude pogot!c- iii sadrzaj regi-,tra i mcnwrijske reci. ili porede sadrzaj registara iii mcmorijc. Nijc rel-
na. onda una ne izaziva izuzetak. vee sc samo zaustavlja i postavlja se bit priclruzen ko da racunar Ll wom repertoaru ima i preko 200 instrukcija. crsc racunari ih CCStll
·$
registru u koji se ucitavaju podaci da bi se registar oznacio nevazec'im. To je onaj otrov- 1i llllaJu 1 mnogu vise.
ni bit koji smo pomenuli u poglavlju 4. Ako se takav registar kasnije koristi, tada se ja-
vlja izuzetak; inace iwzetak sene generise.
~~ UpravljanjL' izvrsavanjcm se na nivou 2 poslize razlicitim osnovnim programskim
~
L
elementima. ukljucujuci skokove. pozive procedura. pozivc korutina. klopke i si-
Spekulisanje se normalno koristi tako sto prevmlilac podigne instrukcije LOAD na .'iii steimke prekide. Skokovi se koriste da hi se prekinuo jedan niz instrukcija i zapoce.J
rnesto u programu pre mesta gcle su stvarno potrebne. Ako se zapocnu rano. mogu se ~ novi. Procc:dure se koriste kao clement apstrahovanja. da hi sc jcdan DliJkruleni de.J
zavrsiti pre nego sto njihovi rezultati zatrehaju. Na mestu gde prevodilac treba da :i
-~~~
.' ~

tit

l
F.
ft~,-
41 ~.' 420 Poglavlje 5: Nivo arhitekturc skupa instrukcija Vc'lbanja 421
H
~-J.i.

ti
~;, programa izolovao i mogao pozivati iz razlil'itih tacaka glavnog programa. Korutine a) LOAD IMMEDIATE 20
~:'
omogucavaju da istovrcmeno postojc dva toka izvrsavanja. Programske klopke se ko- b) LOAD DIRECT 20
ristc za signaliziranje izuzctnih situacija, kao sto je aritmcticko prekoracenje. Sistem- c) LOAD INDIRECT 20
ski prekidi omogucavaju da se ulazno-izlazne operacije mlvijaju uporedu s glavnirn d) LOAD IMMEDIATE 30
programom, pri cemu procesor dobija signal cim se takva opcracija zavrsi. e) LOAD DIRECT 30
Hanojske kule su zabavan mali problem koji smo rdili zahvaljujuci rckurzivnoj
f) LOAD INDIRECT 30
proccduri.
7. Za 0-adresni, l-adrcsni, 2-adrcsni i 3-adrcsni racunar napisitc program koji svaki od
Na kraju trcba rcei da sc arhitcktura IA-64 sluzi racunarskim modclorn EPIC koji
njih trcba da izracuna
programima olaksava iskoriscavanjc paralclizma. On predvicta grupisanjc inslrukcija,
X= (A+ B X C) I (0- EX F).
prcdikaciju i spekulativno ucitavanje kao sredstva za ubrzanje rada. Sve u svemu, to
i uporcdite ih.
mozc da budc veliki napredak u odnosu na Pentium 4, ali se time brerne ostvarivanja
Mozcte koristiti skdcee ir;strukcijc:
paralclinna prebacuje na prevodiocc.
0 Address 1 Address 2 Address 3 Address
PUSH M LOAD M MOV (X= Y) MOV (X= Y)
STORE M ADD (X= X+Y) ADD (X= Y+Z)
VEZBAN.JA POP M
ADD ADD M SUB (X= X- Y) SUB (X= Y- Z)
L Na racunaru koji podatkc bclezi u f'ormatu ,Jittlc-cndian" n.:c ima numericku vred- SUB SUB M MUL (X= X. Y) MUL (X= Y Z)
nm,t _'\. t\J...o ,-;c una, hajt po bajt. prcbaci u racunar koji radi s furmatom ,big-cndian'' MUL MULM DIV (X= X!Y) DIV (X= YtZ)
i tanm 'mcsti, tako da bajl 0 budc u bajtu 0 itd., kop cc biti njcna nurncricka vrcd- DIV DIV M
nost na tom racunaru' 1 Mjc 16-bitna !TlL'morijska adre:,a, a X. I' i ~ su iii 16-hilltc adrcsc iii 4-bitni rcgi,tri.
2. Na Pcntiumu4. instrukcije mugu da sadr/.c bilo koji hroj haJlova- paran iii ncparan. Racunar sa 0 adrc'a kuristi stck, jcclnnadrcsni racuthtr kPristi akunwlator. a m.tala
Na UltraSPARC-u Ill. sve instrukcije sadr7.e ceo broj rcci (tj. paran hruj bajtova). dva imaju 16 regi,tara i in,trukcije koje rade sa svim komhinac:ipma menl<Jrij,kih
NavcditL jcdnu prcdnost scmc koju kori,ti Pentium 4. lokacija i rqc:istrara. SUB X,Y odu,tirna V ml X. a SUB X.Y. Z oduLima Z nd Y i st~t·dp
rezultat u X. UL S-hitne opkmluvc i du/.inu in,trukcip K<l_I;[JC Llll11lll7.ak 4 bira. !-.uliko
J. Smislitc prosircni upkmL talu da '-C sve ono stu slcdi mole kodirati unutar 3(,-bitne
instrukcijc: bitova cc svaki racunar utro~iti da bi iuaC·unao X"
8. Sntislitc nacin adn:siranja koji cc omoguc'iti da sc u~,>tobitnutn poiju moi'c ?~d~tli
7 tnstrukcija s dvc 15-bittll' adrcsc i jcdnim 3-bitnim brojcm rcgistara
proizvolpn sl-;up ud h4 adrc,e. k"jc nc ntPraju oh,,vc,:.no hiti 'usc:dne. a naLt!.c >e u
500 im,trukcip s JCdnom I 5-hitnom adrcsom i jednim 3-hitnim brojcm registara
velikum aJrcsnom pnbtoru.
40 in,trukcija he;: adrcse iii registara
9. Naveditc losu ,tranu qmopudc,ctvajuL'eg koda knp niJe n.tv·cdcna u tckstu.
4. Ncki r;tcunar ima I h-bitnc instrukcijc i (l-bitnc adrese. Nckc instrukcijc imaju jcclnu
lO. Slcdccc i.crate napisanc intik.stH>Ill nuLtcijom napi\itc knri,tcci ohrnutu polj,J..u
adrcsu, dok drug:c imaju dve. r\ko ima 11 dvnadrcsnih inslrukcip. koji je maksimalan
notaciju.
broj Jednoadrcsnih instrukcija''
aiA+B+C+D-E
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 b)(,',-B)X(l'+Dl+E

4 instrukcijc s tri rcgistra c:) (A X B !+ ( c X u J+ E

255 in,trukcija s jednim registmm d 1 tA-Bl.xli<C-D/[)IrJ/Ci 1 xH


ll. Kuji su od skcl~c'ih parma J/r;\/a napisanih ohnuttJ!1\ ['"ij.,kom notacijorn meclu-
I (J instruJ...cija ba regis tara
Si>hnu makmatic'h.i cJ...v:\alcntni'1
6. Uz naveclcnc memorijskc vrcdnosti i jednoadrcsni racunar sa akumulatorom, kojc
cc vrcclnosti sledcce instrukcije ucitati u akumulator'' ''I
A B + C + i A l3 C + +
rei' 20 :,adr?i 40 biAB-C-i:\13C--
c) i\ B X c + i ;\ E c + :<
rcc 30 sadrz.i 50
·%; 12. SlL'deCc iJ.r~tl-l'. nc~pi')~tne dhrnL:tnin poljskon1 nutacijoin. napt~~tc inlik-.;noin
rcc 40 sadrzi 60 ;~
rce 50 sadrzi 70 a I A B - C + D ;'
~
h 1 , \ 13 !C D I +
:& B c [> l + < "I
C) '"
::r£
di ABC D L .< 11 ; + Ci- [!I x +
a
t~

I
r
~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.
Veibanja
--------

26. Kako mozcte da obrisete mcmonjsku rec na racunaru koji nc poznaje


CLR'I
27. Izracunajte logick.i izraz (A AND B ) OR C za
423

instrukci~u

A= 1101 00001010 0011


a) (AANDB)ORC B = 1111 1111 0000 1111
b) (A OR B) AND (A OR C) c = 0000 0000 001 0 0000
c) (AAND 13) OR (C AND D) 28. 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
15. lzraz, napisan infiksnom notacijom, napisitc obrnutom poljskom notacijom i gene-
risite IJYM k6d za njegovo izracunavanje. OR.
(5 X 2 + 7)- (4 I 2 + 1) 29. 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
16. lnstrukcija na ascmhlcrskomjcziku
sto jc potrebno za mnozenje. Pod kojim uslovima je ovaj niz instrukcija koristan {.a
MOV REG,ADDR
iaacunavanjc izraza: ,konstanta x promenljiva'"!
znaci na Pentiumu 4: ucitaj sadrzaj memorijskc adn.:se u registar. Medutirn. na
30. Razliciti racunari imaju raz.licitu gustinu instrukcija (broj bajtova potrcban za
UltraSPARC-u Ill, da histe u registar ucitali sadrzaj mcmorijske adrese, pisctc
odrcdeno izracunavanje). Svaki nd skdccih dclic'a Java k.oda prcvedite u ascmbkr-
LOAD ADDR,REG
ski jezik Pcntiuma 4, UltraSPARC-a Ill i IJYM. Zatim izraC:unajtc broj bajtova pot-
Zasto sc u ove dve instrukcijc razlikuje redosled operanada'7 rcbnih za izracunavanJe ovog izn11,a na svakom nd racunara. Pretpostavite da sui i
17. Koliko rcgistara ima racunar ciji Sll formati imtrukcija prikazani na slici 5-2.5'! j lokalne promenljive u memoriji, ali ostaln nptimizujtc kako najboljc znatc
IS. Na slici 5-25 bit 23 se koristi za hiranje formata I iii formata 2. Ne postoji bit kojim a. i = 3;
sc bira format 3. Kako hardver bira taj format'' b. i = j;
19. U programiranjuje cest slucaj da program trcba da zna gde se promcnljiva X nalazi u c. i = j- 1;
odnosu na interval od A do B. Ako postoji troadrcsna instrukcija sa opcrandima A., B
31. Instrukcijc za rad u pctlji o kojimajc bilo reci u tekstu mlnosilc su sc na petlju for.
i X, koliko bitova za kodovc uslova trcha ova instrukcija da postavi''
Smislite sada instrukciju koja ce raditi za uobicajcnu petlju while.
20. Pentium 4 ima bit za k6d uslova koji vodi racuna o prcnosu iz hita 3 poslc neke arit-
32. Pn.:tpostavite da kaludcri u Hanojumogu da prcmdtaju l disk uminutu (oni nc :lure
rneticke operacijc. c\mu on slu7,i'l
da zavrsc posao jcr su iLglcdi za zaposljavanjc osoba s njihovim kvalitikacijam:~ u
21. UltraSPARC III ncrna instrukciju kojom hi 32-hitni broj ucitao u rcgistar. Umcsto Hanoju minimalni). Za kujc vrcme c..: rditi probkm prcmdtanja 64 diska'' Inazite
takvc instrukcijc obicno sc koriste dvc instrukcijc. SETHI i ADD. Postoji li jos ncki rczultat u godinama.
nacin da se 32-bitni broj ucita u registar'' Obrazlozite odgovor.
33. Zastu ulazno-izlazni urcdaji pnstavljaju vektor prckida na magistralu'' Da li hi tuln-
22. Prijatclj jc banuo kod vas u 3 ujutru. i zadihano vam ohjasnjava idcju koja rnu jc formaciju mozcla mogli da smcste u tabclu u mcmmiji''
upravo blesnula: instrukcija s dva opkoda. Treba li prijatelja da uputitc u Zavod za
3~. Racunar za citanje podataka s diska koristi DMA. Disk u svakoj stazi irna 64 scktora
paknte iii da ga bez reci izbacite'l
od po 512 bajtova. Period rotacije diska je 16 ms. tvlagistrala je sirinc 16 bitov~~- a
23. Proccsor 805 I ncma instrukcije s pomcrajem vccim od 8 bitova. Znaci li to da on nc ;,vaki prenos magistralorn traje 500 ns. Svaku instrukciju procesor izvrsava proscc-
moLe da pristupi mcmorijskim adresama vecim od 255'' Ako pak mozc, kako to radi'? no za dva ciklusa magistrate. Koliko Div!A usporava rad proccsora· 1
24. Testovi sleclccib tipova
35. Zasto sc potprogramima ;:a obradu prckida dndeljuju prioritcti. dok normalne p:o-
if (k == 0) cedun.: takvc prioritctc nemaju'l
if (a> b).
if (k < 5). 36. 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
cesti Sll ll programiranju. Srnislite instrukciju koja cc ih t.:likasno obavljati. Koja
ima tnlik.o·>
polja ce sadrzati vasa instrukcija''
37. U tckstu sc ohjasnjava konccpt spekulativnih instrukcija LOAD. Medutim. nigdc sc nc
25. Za 16-bitni binarni broj 1001 0101 1100 0011, pokalite efekat:
pominju spckulativne instrukcije STORE. Zasto·> Jcsu li one u su;tini isle kao i speku-
a) Pomerania uclcsno za 4 bita uz popunjavanjc nulama. lativnc instrukcije LOAD iii pmtoji ncki drugi razlog zbug kojih nisu pomenutc''
b) Pomeranja udcsno za 4 bita uz prosirivanje znaka.
38. Kada treba mcdusobno povczati dve lokalne rmele, izmcdu njih se postavlja racu-
c) Pomeranja ulevo za 4 bita. nar, ;van most, koji jc povezan sa ohe mrcze. Svaki paket kuji dmk s bilo koJC od
d) Rotiranja ulevo za 4 bita. dve mre£t: izaziva sistemski prekid na mostu kako bi most mogao da utvrdi da li pa-
e) Rotiranp udesno za 4 bita. 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.
6
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- NIVO OPERATIVNOG SISTEMA v
niccnjc daJC ()I= I. Napi~ilL: proccdun1 na svorn orniljcnorn asemblerskomjc~iku ;:a
izracunavanjc faktorijela n I_ RACUNARA
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.

Kro;: citavu ovu knjigu provlaci sc nil da >C dan<L~nji racunar sasluji ud ni;a nivoa,
a svaki dudajc Tl<lVU funkcionalnu~t 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 ~islem.
Opcrativni sistcm (engl. opemting system) prc1gr~mr 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 (kad~t postoje). 0!ivo na komc se impkmcmir~t opcrativni si.,tem racunara kraL-
ko cerno zvati nivo OSM (Operating Sy-;tern :\lachine - ma~ina operarivrwg
sistema). Onje prikazan na slici 6-l.
lako sui nivo OSM i nivu !SA apstr~tktni nivoi (zatn sto ni~u 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' inslrukcijc~ niv,,a
IS A, kao i nov >kup instn1kcija kojc dndajc op,~rali 1·ni si~tem. 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 cbtote~c. Si:-,tcmske flilLive c'cmo Ll tlVOJ
knjizi stampati malim slovima, !'tllll()lll Helvet1ca.

425
r-
r' 426 Poglavljc 6: Nivo opcrativnog sistema racunara 6.1 Virtuelna mcmnrija 427
!:
!;.
I:
i' Ovaj problem se pu pravilu resavao pomocu sekundarne memorijc (npr. diska).
!
Nivo 3 Nivo operativnog SIStema racunara
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-
Operativni sistem
zoda i izvrsavala. Po njenom zavrsetku, ona je ucitavala drugu epizodu i pozivala je,
Nivo 2 Nivo arhitekture skupa instrukcija
i tako redom. Programer je bio odgovor:m za razbijanjc programa na epizode, za po-
~:iciju pojeclinih epizocla u sekundamoj memoriji, za prcnos epizoda izrnedu sekuncl-
Mikroprogram iii hardver arnc i glavnt: memorije i za upravljanje citavim postupkom racla s programskim
epizodama, bez ikakvc pomoCi racunara.
Nivo 1 N1vo mikroarhitekture lako jc koriscena mnogo god ina, ova tehnika je zahtevala mnogo clodatnog posla
oko upravljanja epizodama. Godinc 1961. grupa istrazivaca u Mancesteru. u Engle-
Slika 6-1. Polo?aj nivoa operativnog sistema racunara. 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-
Nivo OSM uvck se intcrpretira. Kada kori~nicki program izvrsi ncku instrukciju
znata kao virtuelna mcmorija (engl. virtual memory), imalaje ocite prednosti jer je
nivoa OSM (npr. procita neke podatke iz datoteke), opcrativni sistcm cc raditi korak
programera oslobadala obimnog i mucnog usklactivanja epiwda. Onajc najpre tokom
po korak. na isti nacin kao sto hi i mikroprograrn izvoclio instrukciju ADD korak pu ko-
Sc:zdcsetih godina isprobana na nizu racunara iz domcna istrazivackih projckata po-
rak. Medutim, kada program izvrsava neku instrukciju nivoa ISA, nju dircktno izvodi
svecenih racunarskim sistemima. Pocetkom seclamdesetih godina, virtuelna rnemori-
prethudni nivo mikroarhitekture, bcz ikakvc pomoci operativnog sistema.
ja se pojavila u veeini racunara. Sacla cak i racunari s jednim Cipom, ukljucujuc'i
LJ ovoj knjizi cemo vas u najosnovnijirn crtama upoznati sa operativnirn sistcmi-
Pentium 4 i LJ!traSPARC Ill, imaju vrlo slozcne sisteme virtuclne memorijc. 0 njinM
ma. Glavnu pal:njuubraticcmu na tri vazne teme. Prva se tice virtuelne memorije, teh-
cemo govoriti u clrugom delu poglavlja.
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 6.1.1 Stranicenje
proucavali u prethodnom poglavlju. Treca tcma je paralelna obrada- nacin na koji Zamisao istrazivacke grupe iz Mancestera hila je da sc razclvoje konccpti adresnog
vise procesa mogu da se izvrsavaju, da mcdusobno kornuniciraju ida se sinhronizuju. prostora i memorijskih lokacija. Zamislitc kao primer tipican racunar tog doba, koji je u
Vazanje i konccpt procesa pa cemo ga dctaljno Dhjasniti uuvurn pogiJVIJU. Zasad pod svojirn instrukcijama mogao imati adresno polje ocl 16 bitova i 4096 mcmorijskih rec1.
prucesom mo/.ete podra,:umevati program koji ~e izvrsava i sve informacije koje Program je u tom racunaru mogao adresirati 65536 memurijskih reci. Daklc, postoji
odrcduju njcgovo stanje ( memorija, registri, programski hrojac, status ulazno-izlaz- 65536 (2 16 ) 16-bitnih adresa. od kojih svaka odgovara drugoj memorijskoj reci. Broj
nih urcdaja itd). Po.~to ovc principc razmotrimo u nacclu. pokazacemo kaku se uni reci koje se mugu adresirati zavisi samo ocl broja bitova u adresi i nema nikakve veze
odrazavaju na opcrativnc sisteme dva nasa racunara kujc smo uzeli za primerc, Pcn- s brojem stvanm raspolozivih reei u memoriji. Adresni prostor (engl. uddress space)
tiuma 4 (Windows XP) i Ultra-SPARC-a Ill (UNIX). Postu se procesor 8051 obicno ovog racunara sastoji se ocl brojcva 0, l, 2, ... , 65535, jer je to skup rnogucih adresa.
koristi u ugradcnim sisrcmima. on nema operativni sistem. 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-
6.1 VIRTUELNA MEl\lORI.JA nosno beskorisnim adresnim prostorom (adrese iznad 4095 bile su hcskorisne jer nisu
mlgovarale stvarnim memorijskim adresama). Nije pravljena razlika izmeclu adrcsnog
Mcmmije ;,u u prvim danima racunara bile male i skupe. IBM 650. vodeei naucni
prostora i memorijskih adresa, zato sto je harclver izmedu njih ~tavljao znakjednakosti.
racunar iz tih dana (kasne pedcscte), imao je samo 2000 memorijskih reci. Jedan ud
Razdvajanje adresnog prostura i memorijskih adresa sastoji se u sledccem: u sva-
prvih programskih prcvndilaca za ALGOL tJO bio je napisan za racunar sa samo I 024
kom trenutku postoji 4096 memorijskih rcci kojima se moze direktno pristupiti, ali
memorijske reci. Jedan ocl prvih sistema koji je radios deljenjcm procc:sorskug vre-
one ne mmaju da odguvaraju memorijskim adresama od 0 do 4095. Mogli bismo, na
mena izvrsavao se sasvim cl()hro na racunaru PDP-I sa samo 409(-, osamnaestohitnih
primer. naloziti racunaru da od sada pa nadalje, kad god se referencira adresa 4096, on
reci predvidcnih i za opc:rarivni sistem i za kori;,nicke programe. Tih dana su pru-
upotrehi memorijsku rcc na aclrcsi 0. Kacl god se refcrencira adresa 4097, da upotrebi
grameri najveci deu vremena provodili pokusc~vajuc'i da smeste prngrame u uskudne
memorijsku rec na adrcsi I, kad god se refercncira adresa K191, da upotrehi memu-
memurije. (:esto je bilo ncophodno kc1ristiti algoritam koji se izvrsavao /.nat no spori_1e
riJsku rec na adrcsi 4095 itd. Drugim recima, definisali srno preslikavanje (engl. map-
ocl drugog. boljeg alguritma. sanm zato stu se program s tim boljim alguritmum nije
ping) adresnog prostora u stvarne mcmorijske aclresc (slika 6-2).
mogao smestitJ u raspolozivu memoriju racunara.
,~"
r~ 428 Poglavlje 6: Nivo operativnog sistema racunm·a 6.1 Virtuelna memorija 429
4

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

430 Poglavlje 6: Nivo operativnog sistema racunara 6.1 Virtuclna memorija 431
'
'

Da biste vi deli kako MMU jcdinica radi, razmotritc primer na slici 6-4. Kada MMU
,,~· Stranica Virtuelne adrese
jedinica dobije 32-bitnu virtuelnu adresu, ona ih deli na 20-bitni broj virtuelne stranice
1 l J
c 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
15 61 440 - 65535
odrednica trazenc stranicc. N a slici 6-4 broj virtuelne stranice je 3, pa se, kao sto je pri-
14 57344-61439 kazano, bira odrcdnica 3 iz tahele stranica.
13 53248 - 57343
12 49152-53247 - 15-bitna memorijska adresa

11 45056-49151 Virtuelna
stranica
I
l1l1lolo io[o o lolol o l1lol1l1lo I ~~~;i~~~r
10 40960 - 45055
Donjih 32K
9 36864 - 40959 Okvir glavne memorije
Bit II
8
7
32768 - 36863
28672 - 32767
stranice
7
Fizicke adrese
28672- 32767
, d
pnsust·Ja/o su,st~al [I 1
15
6
5
24576- 28671
20480- 24575
6
5
24576 - 28671
20480- 24575 14 "'
4 16384 - 204 79 4 16384-20479 13
3 12288 - 16383 3 12288 - 16383 12
2 8192-12287 2 8192-12287 11

1 4096- 8191 1 4096- 8191 10

0 0- 4095 0 0- 4095 9
8
(a) (b) 7
6
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. 5
4
Slika 6-3th) prikazuje tizicku memoriju koja se sastuji ou osam okvira za stranice
3 1 110 -
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 2
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 0
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. Ulazni


Taj ureJaj se 1.ove jedinica za upravljanje memorijom (engL A1enwn ,Hanuge- registar
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-
~- ------20-bitna virtuelna stranica- .,_i--12-bitno rastojanje _,._I
-bitne virtue Inc adrcse u 15-bitne fizicke adrcse, treba da ima 32-bitni ulazni i 15-bitni
i - --------- ---- 32-bitna virtuelna adresa ----- -----~I
izlazni registar.
Slika 6-4. Formiranjc adresc u glavnoj rncmoriji od virtuclnc adrcse.

l
iI !

,
432 Poglavlje 6: Nivo oper:Jtivnog sistem:J racunar:~ 6, I Virtu dna memorija 433

Kada dobije odrcdnicu tabelc stranica, MMU jedinica ee prvo provcriti da li se Tabela stranica
trazena stranica vee nalazi u glavnoj mcmoriji. Na kraju krajeva, uz 2 20 virtuelnih
Virtuelna Okvir
stranica i samo osam okvira za stranice, ne mogu sve virtuclne stranicc biti odjcdnom stranica za stranicu
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 de J J
u memoriji.
15 0 0
Slcdeci knrak je uzimanjc vrednosti okvira stranice iz izabrane odrednicc (6 u
14
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 13
operacijom, 12 najmanjc znacajnih bitova virtuelne adrcsc (po1je za rastojanjc unutar 12
stranicc) kopira sc u 12 najrnanjc znacajnih bitova izlaznog registra. Ovakva 15-bitna 11
adresa sada se sa1jc kcsu i1i memoriji za potrebe pretrazivanja.
10
Slika 6-5 prikazuje moguee prcs1ikavanjc izmedu virtuc1nih stranica i fizickih ok-
9 Okvir
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- 8 za stranicu

dna stranica 4 nijc u glavnoj memoriji. Virtuclna stranica 5 je u okviru (J, i tako dalje. 7 7
6 6
6.1.3 Stranicenjc na zahtev i model radnog skupa 5 5

U prethodnom i;laganju preeutno jc pretpostavljanu da sc rcfen:ncirana stranica 4 4

nala;:i u glavnoj mcnwriji. Mcuutim. ta pretpostavka llL'CC UVt'k odgmarati istini jer u 3 3
glavnuj memoriji ncma dovoljnu prostura za sve virtue1ne stranice. Kada se rcferen- 2 2
cira adrec;a na stranici kuja sene nalaJ:i u g1avnoj mcnwri.Ji, tal\ va gn:~ka sc zove pro-
masivanje stranice (engl. pilgejiudt). Kada -''C promasi c,tranica, opcrarivni si,.;tcm
0
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 JlW~'T<IIIl cak i k;lci<l ~ Pnsutan u glavnoJ memoriji
sc nikakav pwgram nc nalazi u glavnuj memuriji. Sanw tahdu str~rnica trcba pPdcsiti 0 ~ Odsutim iz glavne memorije
tako da za svaku virtuelnu straninr ukazujc 11~1 sckundarnu mcrnoriju. umcsto da J:a
Slil-.a 6-5, .klinu "d m"~u.'ih prc,li~,l\llllj,l prvill 16 virtuclnill stranica u glavnu menh>ri.Jll
nd.:c m1 nJih ukazuje i na glavnu menwriju. Kad:r pruct'-"Or poku~a da prcu1me prvu
huja ima dsam ok. vira J,a ~tranice.
instrukciju, udmah '>l' jav1ja proma:~iv ;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 Pitanje d:1 li trcba kmistiti straniccnje na zahtev, ima smisla samo na pocetku
da pocne. Ako prva instrukcija ima d\ e ,tdrcsc kojc c;c nal:tLe na ra;!icitim c,tranicama, i;H;a\:lllja [lfl>;,':Ll:na. !'Pc,lc toga CC potrehnc stranice vee biti ll g1avnoj lllCT!1oriji.
ud kojih nijedna nije ,.;tranica sa instrukcijc>Tll, srranic·;r .'>L' dvaJ'UI prom:t\ujc i u.:·i- AkD racunar racli u rci·imu deijenja vn:mena I izmedu vise korisnika) i procesi se sme-
tavaju sc jos Jve stranice pre ncgo siu instrukcija hulk 1no;dc~ da sc iz\T~I. Sicdcca in- njuju :;vaLill. npr. !()() ms, s\aki program ee sc tokom svug izvrsavanja mnogu puta
strukcija takm!c mo£c da proma;i :-tranicu itd. ponr,vopukremrti Po~tc!.JC: :ncmorijc,l\a mapajedinstvena za :;vaki pwgram i menja se
Ova metuda rada s vinuclnom memuriJtllll 1.mc c,c stnwiCenjc na zahtev (en!CI. kada jccLm pn>gr:li:I ,.;urcni dru;;:i, pitanje s pucctka ovog pasusa opet dobija smisao
dnnund puging), po analogiji 'dubrn pu;natim algorillll()ill za hr:mjcnje reba: kad:t kacla -,i,tcm rad; n re!im;: dc:ljcnog vremena.
bcha zaplace, vi je nahranite lumcstu da jc hrani!C prc:ma un~•prt'd udrv'tknom vrc- r\lte:11aii\ ni pri,IUJ' 'L' :a:-niva na z:tpa/anju da vccina prngrama ne refcrencira svoj
menskum rasporcdu). Pri strani.:·cnju na ;aille\, ,tranic·L' .;e Uil<l-"L' u i11Clill'riju '<lllill :;a adre,ni l'rlhliH. 1a' EDilH:rno, vee se uglavnum usredsreduje na manji broj >tranica.
izricit Lahtcv, niLrku un~rprcd. Ov;1j ~oncepl ,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. D~·Juting { l96X i je clvaj skup naLvao radni skup (engl. H"orking set).

fi'.
434 Poglavlje 6: Nivo operativnog sistema racunara 6.1 Virtuelna memorija
t
P,:,
~

!' Posto se raclni skup lagano menja s vremenom, moze se razumno proceniti koje ce
1
Virtuelna stranica 7 Virtuelna stran1ca 7 Virtuelna stranica 7
stranice biti potrehne kada se program ponovo pokrene, i to na osnovu radnog skupa
Virtuelna stranica 6 Virtuelna stranica 6 Virtuelna stran1ca 6
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). Virtuelna stranica 5. Virtuelna stranica 5 Virtuelna stranica 5

Virtuelna stranica 4 Virtuelna stranica 4 Virtuelna stranica 4

6.1.4 Pravila zamenjivanja stranica Virtuelna stranica 31 Virtuelna stranica 3 Virtuelna stranica 3

Virtuelna stranica 2 Virtuelna stramca 2 Virtuelna stranica 2!


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- Virtuelna stranica 1l Virtuelna stranica 1 Virtuelna stranica 0 I
nica. Medutirn, programeri retko znaju koje su slranice u radnom skupu, tako cia ope- Virtuelna stranica 01 Virtuelna stran1ca 8 Virtuelna stranica 81
rativni sistem to mora da otkriva u hodu. Kada program pristupa stranici koja nUe u
(a) (b) (c)
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 Slika 6-6, Potpun krah algoritma LRU.
algoritam 1a odlucivanje koju stranicu treba ukloniti.
Uklanjanje slucajno izabrane stranice verovatno nije dobra idcja. Ako sc desi da to Drugi algoritam za zamcnjivanje stranica je FIFO (First-In First-Out, prvi ulazi
budc stranica sa instrukcijom koja je izazvala grdku, nastaec nov promasaj cim se - prvi izlazi ). FIFO uklanja najdavnije uhtunu stranicu, bcz obzira na to kada JOj je
pokusa prcu;.imanjc sledeec instrukcijc. Opcrativni sislemi uglavnom pokusavaju da poslcdnji put pristupano. Svakom okviru za stranice pridruzen je brojac. Na pocetku
predvidc kojajc od stranica Ll rnemmiji najmanje kurisna, tj. cijc ee uklanjanjc imati se svi brojaci postavljaju na 0. Posle obrade svakog promasaja, hrojac uza svaku stra-
najmanje nepozeljne cfckte na program koji se izvrsava. Jcdannacin da se to uradi jc- nicu kojaje trenutno u mcmuriji povceava se zajedan, a brojac za upravn ucitanu stra-
ste da sc za svaku stranicu proceni kada ee joj se sledeei put pristupiti, te da se udbaci nicu vraea se na 0. Kada neku stranicu treha izbaciti, bira se stranica s najvccom
una kojoj sc zadugo neec pristupati. vrednoseu brojaca. Posto njen brojac ima najveeu vrcdnost, ta stranicajc svedok naj-
Jedan popularan algoritam izbacuje stranicu kojajc najdavnije koriseenajcr posto- veeeg broja promas<0a. To znaci daje ona ucitana pre svih drugih stranica u memoriji
ji velika verovatnoea da ona ne spada u tekuci radni skup. Ovaj algoritam se skraeeno ida zato (nadajmo se) postoji najveca verovatnoca da vise nije potrehna.
zove LRU (Least Recently Used- najdavniJe koriscen). fako LRU obicno daje du- Ako je radni skup veci od broja raspolozivih okvira J:a stranice, nijedan ljudsko:n
bre rczultatc, postoje situacije. kao sto je ona koju opisujemo u nastavku, kada ne radi rukom stvoren alguritam neec dati clobre rezultatc i prumasaji ee biti hrojni. Za pro-
do bro. gram koji stalno i ccsto promasujc stranice kaze sc da tresira (engl. thrashing). (1\Ii
Zamislite da program izvrsava veliku petlju koja se proteze preko dcvet virtuclnih bismo ga mogli nazvati i ,,udi cistac" jer skoro da nista drugo inc radi osim sto po-
stranica u racunaru koji u tl;.ickoj memoriji ima prostora samo za osam stranica. Kada gresno brise memoriju da bi ponovo ucitavao iste virtuclne stranice.) Ne treba post:b-
program stignc na stranu 7, glavna mcmorija ee izgledati kao na slici o-6(a). Pokusaj no naglasavati cia je trdiranje nepozeljna pojava u sistemu. Ako program kori;ti
da sc pn.:uzmc instrukcija s virtuelne stranice 8 zavrsava promasajcrn. Mora se doneti veliki deo prnstora virtue I nih adresa, ali ima mali radni skup koji se sporo menja i sta-
odluka o izbacivanju jedne stranice. Algoritam LRU ee izabrati virtuclnu stranicu 0 je u raspolozivu glavnu memoriju, on ncee praviti problemc. Ova tvnlnja vazi cak i
jer jc ona najdavnije korisecna. Virtuelna stranica () se uklanja i zamenjuje virtuelnom ako tokom svog rada program upotrebi stotinama puta vise reci iz virtuclnc mcmorijc
stranicom X, sto daje situaciju kao na slici 6-6(b). nego sto racunar ima reci ll glavnoj memoriji.
Po izvr;enju instrukcije s virtuelne stranicc X, program ponovo .-;kace na vrh petlje, Ako sc stranica koju !reba oclbaciti nije menjala od trenutka kacl je ucitana (slo je
na virtuelnu stranicu 0. To izaziva nov promasaj. Virtuelnu stranicu 0, kojaje upravo pri lie no verovatno ukoliko ne sadrzi podatke, vee program), nc trcba je upisi vati na
odbacena. treha ponovo preuzeti. Algoritam LRU oclbacuje stranicu I, sto izaziva si- disk, jer tamo vee postoji njena verna kopiJa. Ukoliko je bila menpna od trenutka kad
tuaciju na slici 6-6(c). Program se na slranici 0 zadrzavajos malo. Zatim pokusava da je ucitana, kopija na disku vise nije azurna, pa se :,tranica mora ponovo upisati na disk.
prcuzme instrukciju s virtuelnc stranice I, sto dovocli do promasaja. Stranicu I treba Kada hi postojao nacin cia se saopsti kako stranica nijc menjana od trenutka ucita-
ponovo preuzeti, zbog cega ec biti odhacena stranica 2. vanja (tj. claje cista), odnosno daje unju upisivano (tj. daje prljava), moglo hi sc izbeei
s,-"
ponovno upisivanje svih cistih stranica i tako bi sc ustedclo mnogo vremena. Mnogi
Vee vam jc postalo jasno da algoritam LR U konstantno pravi najgmi moguei izhor g racunari u MMU jedinici im<uu jcdan hit za svaku stranicu koji se postavlja na 0 kada
(i drugi algoritmi uovim okolnostima ne raLic nista bolje). Ako, medutim, raspoloziva 'if.
·.It
glavna memorija premasuje velicinu radnog skupa, LRU smanjuje hroj promasaja. !-~ se stranica ucita, a postavlja na I kada se u nju nesto upise (kada se stranica zaprljaJ. sto
;1
radi mikroprogram iii ndgovarajuei hardver. lspitujuei ovaj bit, operativni sistem mo.~e
itf da sazna da li je stranica cista iii prljava i da je shod no tome udbaci iii pusalje na disk.
!l

t
l
!r:
,.
436 Poglavljc 6: Nivo opcrativnog sistema racunara 6.1 Virtuelna mcmorija 437

6.1 .5 Vclicina stranice i fragmentiranje koristc elva ili vise oclvojenih adrcsnih prostma. Na primer. programski prevodilac to-
kom prevodenja moze da napravi brojne tahde. ukljucujuci i:
LTkoliko kmisnicki program i podaci kojim slucajem ispune tacno ceo broj strani-
l. Tabelu simbola La imena i atribute promcnljivih.
ca, nec'e hili neiskori.~ccnug proslura kada se nac1u u mcmoriji. Ako, s druge strane,
oni ne ispunc ceo broj stranica. na poslcdnjoj stranici ce ostati nesto neiskorisccnog 2. lzvorni tekst sacuvan za potrcbc stampanja listinga.
prostora. Na primer. ak.o je Ia program i podatke potrehno 26.000 bajtova u racunaru J. Tahelu sa svim korisccnim konstanlama, kako celobrojnim. tako i onim u
sa 4096 bajlova po stranici. prvih ~est stranica bice popunjcne sa ukupno 6 x 4096 = formatu pokretnog zareza.
24.576 bajtova. a poskJnja str:,nica ce sadrzati 26.000-24.576 = 1424 bajta. Posto na 4. Leksicko slablo koje sadrzi sinlaksnu analizu programa.
svakoj stranici ima mcsta 1-a -!006 hajtova, 2672 bajta ce biti prolracenu. KaJ god seJ- 5. Stck za po;.ive koje procedurama upucuje programski prevodilac.
ma slranica hude u m~muriji, i lice bajtuvi hili u njuj, ali ncec nicemu sluziti. Problem
nciskoriscenih ha.JtO\ a n~u.i·va :.;c intcn10 fragmcntiranje (engl. intenwlj/·ugmentu- Svaka oJ prve cetiri tabele stalno raste lokorn prevodcnja programa. Poslcdnja r,l-
tioll J I poslo jc neiskurisccn prm.tor u ok viru samo jcdne stranicc). stc i smanjuje se na ncprcdviLtljiv nacin. U jcdnodimenzionalnoj rnemoriji, za ovth
Ako je stranica \ dicine 11 bajtova, prosecan pros lorna poskclnjoj slranici programa pet tabela moral a bi sc odvojiti 'usedna pmlrucja adrcsnog prostora, kao na slici 6- ry.

knji nije i,k,niscen ;.hog internog fragmentiranp iznusi 11/2 hajlova- sama siluacija po-
Prostor virtuelnih adresa
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- Slobodno ) Adresni prostor
nica odriava harcherski, velik.a tahela znaci da ima vise regi,tara u kojima sc cuvaju Trenutno iskorisceno Stek za pozive t r dodeljen steku
J za pozivanje
njcne odrcdni,·c, stu puvccava ccnu racunara. Osim toga. vise vrcmena cc se utrositi za procedura
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 Leks1cko stablo t
uzntcmn da pre svakog prenosa poclataka treba cckati oko l 0 ms (tra7.cnje + rotacionu
ka.~njcn:el. veliki prcnosi su etikasniji od malill. Uz hrzinu prenosa podalaka ml Tabela konstanti t
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-
lzvorni tekst t
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-
Tabela simbola t
a't"pnim 0-hajtnim recima. Ovu skladiste, uredcnu po kolonama. znaci Ja ce elemcn-
Stika 6-7. Tahck knJL ra~tu u jcdnoJinlciJ/ionalnum adn.:-<.;J1(_)11l pnl.c...turu mo~u Ja :-.-2 'udarc.
ti 1cd~1 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-
Puglcdajtc sla :.;e dugada ak11 program ima iluzetno vclik bwj prcllllcnijivih. Deu
stio bi ](; IJ()() podrucja, od kojih je svako uclaljeno ocl najbli/.cg suseda 70.9LJ2 bajta.
adresnog prostora odvojen ;.a tabelu simbula mogac) bi sc pnpunili. cak i kacLI ima;11~
.A~n je ,rnniea vclicine R KB. za cuvanjc wih kPri.~ccnih stranica hilu bi putrcbno
mnogu slob!ldnog prustura u tJStalim tahelama. PrenldiLlc bi. naravno, mt>g:Hl jcclnl\-
:.;kladi;tc veli2II1Cxn MB.
slavno poslati poruku kako 1.bl\g pr"C\'clikog broja promenljivih ne mote da nast;tvi
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
prcvodenje. ali tone bi hilo fer kada u drugim tabclama ima JUS dosta ptchtora.
stranica .. \ko jc ra~puluziva ml'murija J2 MB. program hi uz straniL·u od X KB trdi-
Druga mogucnost je da prevodilac it.igrava Rubina !Imla ida ;;lobodan pw'\(lf iz
rao. ali u; 'tranicu od I KB nc bi. Uzmcmo li u obzir svc o cemu smu govorili. ipak
tahela koje ga imaju previse dncleljuJe tabelama kojima on neJoslajc. Ovaha
je bllljc J,;ol·i,tili vece slranice.
prcra,pmlcla se me>zc izvesti. ali hi tolicilu na prekraj~u1je sopslvc:nih pn,gr~tmskih
epiLoda- dosadan posao \ako Ielimu cl~iostanemP pristujnil iii- grutotajedn:l J,;,Jju
6.1.6 Segnwntiranje niko ne placa ( ako smo na kraJU ncrava).
'v inuelna lllCIIH>rija o kojoj smu do sada govorili jcdimJimcn;.iunalna je jer se
U ovakvom slul'a.JU. programer nc treba da ranm;Jja o labcbma ku_1c rasu i
adre:,, J.;r\·c'u , 'd () dt> neh.e maksimalne vredno,ti ( uzastopne adrcsc ). U mnogim slu- smanjuju se -na isti nacin gajc v irtuelna mcnwrija 1\sl,!Jndi!a hrigc' u nrganilllv~n.Jll
ea1c v im<t L'latn' > y bolJc da ,e umestu jednog .JCdin~l vcnog prostura v irtuclnih adresa programa u epizude.
rr·
438 Poglavlje 6: Nivo operativnog sistema racunara 6.1 Virtuclna mcmorija 439

Resenje je da se obezbedi vise potpuno nezavisnih adresnih prostora, zvanih seg- jedne procedure moze da utice na pocetne adrese drugih procedura koje s prvorn ne-
menti. Svaki segment se sastoji od lineamog niza adresa, pocevsi od 0, pa do nekog maju nikakve veze. To, sa svoje str<mc, zahteva menjanje svih procedura koje pozi-
maksimuma. Duzina svakog segmenta moze da bude izmedu 0 i maksimalno dozvo- vaju bilo koju od pomerenih procedura da bi u sebe ugradile njihove nove pocetne
ljene duzine. RazliCiti segmenti mogu da budu, a obicno i jesu, razlicite duzine. Sta- adrese. Ako program ima na stotine procedura, ovaj proccs moze da bude skup.
vise, duzina segmenata moze se menjati tokom izvrsavanja. Duzina segmenta za stek Segmentiranjem se takode olaksava dcljenje procedura ili podataka izmedu vise
moze se povecavati kad god 'e ndto stavi na njega i smanjivati kadgod se nesto programa. Ako se u racunaru paralclno izvrsava vise programa (stvamo ili simulirano)
s njega uzrne. koji koriste odredene procedure i1. isle biblioteke, glavna memorija sene bi domacin-
Posto svaki segment predstavlja zaseban adresni prostor, razliciti segmenti mogu da ski ponasala kada bi svakom programu obezbedivala njegovu kopiju procedura. Uko-
menjaju veliCinu nezavisno jedan od drugog. Ako je steku u odredenom segmentu po- liko je svaka procedura u zasebnom segmentu. one se lako dele pa ne mora postojati
trebno vise adresnog prostora, on ga moze dobiti jer u njegovom adresnom prostoru vise od jedne fizicke kopije bilo koje deljene procedure u glavnoj memoriji. Na taj
nema nicega s cim bi se sudario. Naravno, i segment se moz.e potpuno popuniti, ali su nacin se stedi memorija.
segmenti po pravilu veoma vcliki, pa se to retko dogaL1a. Da bi pristupio adresi u ovak- Posto je svaki segment logicka celina na koju programer racuna (procedura, niz ili
voj, segmentiranoj iii dvodimenziona!noj memoriji, program mora da zada adresu iz stek). razliciti segmenti mogu imati razlicite vrste zastite. Segment s proeedurom sc
dva del a: broj segmenta i adresuunutar segmenta. Slika 6-R prikazuje segmentiranume- moze ograniciti samo na izvr.~avanje i tako ce se spreciti da ga program cita ili da u
morijuupotrebljenu za tabele programskog prevodioca o kojirna smo malocas govorili. 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
20K ~---. 'egment hvataju i sprecavaju. lltkva lastitaje cesto korisna pri lovljenju programskih
grdaka.
16K
Pokusajte da shvatitc zasto t.astita ima srnisla u scgmentiranoj memoriji. ali ne i u
jednodi menzionalnoj ( linearnoj) stranicenoj memoriji. Kada je mernorija segmentira-
12K t- Tabela
na, korisnik je svestan sta sc nalazi u svakom segmcntu. Segment. na primer. po pra-
BK Lsimbola vilu nece sadrzati i proceduru i stek, vee jedno i/i drugo. Posto svaki segment sadrzi
Stek samo jedan tip objekta, moze da ima L.astitu koja odgovara tom tipu. Stranicenjc i seg-
I- lzvorni
4K
tekst ~ozive
za
mentiranje uporedeni su na slici 6-':1.
1\UII::ild/llll

·-~~: ~
0 '-----'
Segment
0
Segment
1
Segment
2
Segment
3
Segment
4
Aspekt

Programer treba da bude svestan proces_a_.


--=1
Stranicenje

N~------i~--=--==--=-
Segmentiranje

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


Broj linearnih adresnih prostora

Pco<lo<'<rtoeloih '''"""'';do P'""ide


~C:inu memorije ·----
Lako rukovanje tabelama promenlj1ve velicine
1

De

Ne
. J;'
. Vise

___ _________
Da
.I ' 1

Jcdinstven nacin. Sam segment moz.e sadrzati proceduru. niz. stek iii skup skalamih Motiv za stvaranje tehnike Simuli;~nje. velike I Obe~bediva~J;~
prumenljivih. ali obicno nc sadr?.i mdavinu razlicitih tipova podataka. memonje adresnih prostora J
Segmentirana memorija, usim sto olaksava rukovanje strukturama podataka koje Slika 6-9. Pllredenje stranicenja i 'egmcntiranja.
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 Sadrzaj stranice je u izvesnom smislu slucajan. Programer nije svcstan ni cinjcnicc
umnogume jc ulaksano. Postu se prevcdu sve procedure koje se koriste u programu i da straniccnje postoji. lako hi bilo mogucc da sc u svaku odrednicu tabcle stranica
povc7.u s njim. za pozivanje procedure u scgmentun koristicc sc dvodelna adresa (n. upise nekoliko bitova koji odreduju vrstu pristupa. da bi to iskoristio. programer hi
0) da bi se adresirala rec 0 (ulawa tacka). J~i morao da vodi racuna o granicama izmedu susednih stranica u adresnom prostoru.
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 veea
mi prerhndne. U jednodimcnzionalnoj memoriji procedure se gusto pakuju jedna do
i
'i
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
::t
druge, bez slobodnog adresnog prostora izmedu njih. Zbog toga menjanje velicine )~ hrinuci o tome kako cc se oni stvarno prcklapati.

'
l
r
t
Poglavlje 6: Nivo opcrativnog sistema rai'unara 6.1 Virtuelna mcmorija 441
440

6.1.7 Implcmcntacija segmcntiranja 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-
Segmentiranje sc moze implcmcntirati na jeJan od dva nacma: razmenjivanjcm stor u prazninama jc velicine I OK. sto je vise ncgo sto je potrehno za segment 3, zli
segmcnata izmel1u memnrijc i diska i stranicenjcm. U prvom slucaju, u svakom trenut- posto je taj pros tor rascepkan na nckorisnc komadic'e. segment 3 sene mozc uCitati na
kuumcmniiji postoji odrcdcn skup scgmc·nata. Ako se rcferencira segment koji trenut- jednostavan nacin. Pre toga treba ukloniti jedan segment iz mcmorijc.
no nijc u mcmonji, taj segment 'c ucitava s Ji-;ka. Ukoliko za njega nema mcsta u Evo jednog nacina za sprceavanje spoljasnjeg fragmentiranja: kad god se pojavi
men](lriji, prcthodno se na disk mora upi,:tti j,~dan ili vise segmenata iz memorije (osim praznina, segmente iza nje treha primaci memorijskoj lokaciji 0 tako da je popune: to
ako su cisti, kada se samo odbacuju). R.u.nlL'niiv:mjc segmcnataje u izvesnom smislu ce, medutim, na kraju rncmorijc stvoriti prazninu koja s vrcmenom raste. Altemativno
slicno stranicenjuna zahtev: segrncnti sc tt!lleilH,nju ucitavaju i iz njc brisu po potrebi. se moze cckati da fragmentiranje dostignc odrcdeni procenat pre nego sto se preduzme
l'vlcLtutim. pri implemcntaciji, izmedu segm~ntiranp i stanicenja postoji hitna razli- sazimanje memorijc ( istiski vanjc praznina iz nje ). Slika 6-1 0( e) prikazuje kako izgleda
ka: stranice su tlksne velicinc. dok segmc-n:i nisu. Na -;lici h-IO(a) datje primer ti;icke memorija sa slike 6-1 O(d) posk sa/imanja. Svrha sazirnanja je da se od hrojnih neko-
me1norijc kPja na pocetku sadr/i pet scgmcnata. Razmotrite ;ta se dogada ako sc risnih pral.llina razhacanih po mcmoriji stvori jcdna vclika praznina na njenom kraJU,
mlhaci segment I, ana lljegovo me,tu dmk segment 7, koji jc manji. Ta situacija jc u koju se tad a moze smestiti jcdan iii vise segmcnata. Ocigledna mana sazimanjajc to
prikazana na slici 6-1 0( b). lzmcdu 'cgmcnta 7 i -;cgmenta 2 nalazi sc nciskorisceno po- sto moze da potraje. Saz.imanje poslc svake nastale praznint: obicnn se nc isplati.
dml'Je - prat.nina. Tada sc segment -1 ;;unenjujl' :.;egmentom :'i. kao na slici 6-1 O(c), Ako sa:l:imanje memorije ncprihvatljivo dugu trajc, onda nam Ln.:ha algoritam koji
a segment J segmenturn A. kao na ,Iici (J-IO(d). Nakon stu si,tem buclc neko vreme ce L.a zahtevani segment pronaci odgovarajucu pra1.ninu. Rad s praminama se ·1e
radio, i/Jllc'du [1\'jc~dinih segmenata u menlUriji pupvice sc vi;e praznina (engl. hole). nHrl.t: zamisliti bcz liste njihovih adresa i vdicina. Jcdan popularan algoritam. zv,m
Ta rwj:tva sc /,me spoljasnje fl·agmenliranje (jcr 'e trusi prustnr i;van segmcnata najbolji pogodak (engl. hcstji!l, bira najmanju prazninu u knju moL:c da se smcsti
- u praznin:una izmcdu njih). 1\t:pravilna slruktura naizmenicno poredanih segmcnata tra/cni segment. On upurcduje vclicinu praznina i scgmenata, iz.bcgavajuc'i da malim
i ['1'~1/llina, slvurena .'>j)()Ijnim fraglllc'lltiranjemlici na sah-tablu (engl. chcckahourd). segmentomukrnji ncku vcliku prazninu koja cemu.Tda kasnije biti pogmlna za veliki
segment.
[---.J ;;:;;(31<)%
'//. • :%
Drugi pupularni algoritam, t.van prvi pogodak (engl. first IJil), prcgleda ukrug li-
Segment 4
(7C<)
Segmert
(71\)
41 Segment 5
stu praznina i hira prvu koja mo/.e da primi segment. To. ocito. trajc kr~tc'e od pregle-
II Seamen! 5
(4K) (4K) 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
ISc>JC":Ie:ll 3! //(4K)~· pogotkajer ovaj drugi tcl:i da u memonji stvori vcliki broj potpuno he,korisnih pr:;-
j

I (SKI I lIi s-'qr,ent


-,oK\
c., i
21
I
Segment 3
(8K)
2///LL'/
Segment 6
Segment 5 nina (Knuth. llJl)7).
(4K)
(4K) I prvi pogodak i najbolji pogodak te/e da smanje prosecnu velicinu prazninc. K~td
[-·--~
!r---------<i Segment 6 god 'e segment sme,ti u prazninu koja jc vee' a od IlJCga. stu se do gada ''kow svaki put
! Se~:Jr:-'~t:£it 2! Segment 2 Segment 2 (4K)
I
:
I
.
2i

I
I
I
l (SK)
. I
I (5K) (5K)
Segment 2
( 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

, I
> •
v; i
3K) •
t,"//, /~~~ ;/~(~~)~ (5K) proces koji c'e povratno od mal ill praznina generisati vel ike. onda oba navcden<~ algl>tlt-
i St?G;nent 1 I ma na kraju i,punjavaju memoriju hrujnim malim i potpuno heskorisnim pramin,um.
II -lor,:
".
j
I I
f Segment 71
1
'
Segment 7 Segment 7 Jedan takav kmnpenzatnrski proces je sledeci: kad god sc iz mcmurijc ukloni seg-
I ''iK· (5K) (5K)
I I I '- ) I ment koji sc s jedne iii -;a obe stranc granici s prazninama. stvorene suscdne praznine
}---~
I '"I i~'"tl'l
'-''-<·.;.t-~ . ' /I j Segment 0 Segment 0 Segment 01 mogu se objeJiniti u vecu praLninu. i\ko se ukloni segment :'i sa slike 6-IO(d). ,he 'u-
l____ j ~~ ~ ~K) (4K) seclne prazni ne i -1 KB kOJC je kuristio segment mugu sc objcdiniti u nu\ u veiiku pru-
;:'1) ;hi (c) (d) (e) ninu velicinc II KB.
Na pocetku ovog odeljka rekli smo da se segmcntiranje moze implementirati na ckl
Slih.a 6-1 h. 1~: \-1 d: Sp<)l_i·~"->njc L :\,:.:·n~.:nLr:t;q._· u ruku ( c l Lk lanj~1njt.: po"lcdica ·"P' JljaSnJLg fragnh.'!l- nacina: razmenjivanjem i straniccnjcm. Do sada smo govorili iskljucJvo n ralmenjiY:t-
!i;·,tn_:,t l)<)!llULll ;;;Jil!ll~lllJ;_l.
nju. Prcma tuj \emi. celi scgmenti se po potrebi selc s diska u mcmoriju i ohrnuto. Dru-
gi nacin za implementaciju segmenliranja jcste d~t sc svaki ;,cgment iLdcli na 'tr:m1cc~
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
Poglavlje 6: Nivo opcrativnog sbtema racunara Virtuclna mcmorija 443
442

segment vam treba zasebna tabela stranica. Posto segment prctlstavlja samo linearan programt u istom racunaru. U LOT tabeli navode se scgmenti koji su lukaini za
adresni pros tor, svc tehnike stranicenja o kojima smo govorili vaze i za stranicenje sva- odredeni program, ukljucujuci i segmente s kodom, podacima, stekom itd., dok su u
kog segmenta. Jed ina novost je to stu sad a svaki segment ima svoju tabelu stranica. GOT tabeli sistemski segmcnti, ukijucujuci i segmente sa operativnim sistemom.
Jedan otl prvih opcrativnih sistema u kome su kombinovani segmentiranje i stra- Kao sto smo opisali u poglavlju 5. program koji se izvrsava na Pentiumu 4 pre
nicenje bio jc MULTICS (MULTiplexed Information and Computing Service), nego sto pristupi scgmentu, mma da ucita selcktor za taj segment u jedan od regis tara
nastao zdruzcnim naporima strucnjaka s MIT-a, iz Bellovih laboratorija i General za segmente. Tokom izvrsavanja, CS cuva selektor za segments kodom, OS cuva se-
Electrica (Corbat6 and Vyssotsky, 1965; Organick, 1972). MULTICS-ovc adrese su lektor za segments podacima itd. Svaki sclektor jc I 6-bitni broj, kao sto je prikazano
imale dva dcla: broj segmenta i atlresu unutar segmenta. Za svaki proces postojao je na slici 6- I 2.
segment koji je satlrzao tleskriptorc za svaki segment. Kada bi hardvcr tlobio virtuclnu
Bitovi 13 1 2
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- I I~DEKS II I
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
0 = GDTl_J
1 =LOTI
L_ Nivo privilegija (0-3)

memory) sa 16 otlrcdniea koja se mogla brzo prctrazivati. lako MULTICS vee dugo ne Slika 6-12. Selektor na Pentiumu 4.
postoji, njcgov duh i dalje zivi jer jc virtuelna memorija svih Inteluvih procesora.
pocev od procesora Intel 3~6. pravljena pu uwru na njega. 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
13
iii GOT tabeli, tako da svaka od tih tabela moze da cuva najvise 8 KB (2 ) 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-
Deskriptor bedno ucitati u registar La segmente i tada oznacava cia registar za segmente nije tre-
Okvir za stranicu
nutno raspoloziv, ali ako sc upotrebi, program zavrsava u klopci.

i c __ _ _ _ _.....J

Segment
~ Brat
segmenta
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
Rec da je lak.u dostupan. Deskriptor se sastoji od 8 bajtova koji sadrze osnovnu adresu
!
s deskriptonma Tabela
stran1ca "- Stranica
tRaslojanJe
segmenta, njcgovu vclicinu i drugc informacijc, kao stu jc prikazano na siici 6-13.

Relat1vna
adresa
0
!'.
18-bitni broJ segmenta
BASE 16-23 4
i--
Dvodelna MULTICS-ova adresa
0 :LIMIT je u bajtovima ·~ _j
Slika 6-1 I. Pretvaranje dvmlelnc MLJLTICS-ove adrese u adrcsn glavnc menhlrije. :LIMIT je u stranicamaj Nivo privilegija (0-3)

6.1.8 Virtuclna mcmorija Pcntiuma 4


0 16-bitnl segment
1 : 32-bitni segment
l L ___ ____j 0 : Segment nije u memoriji
: Segment je u memoriji

Pentium 4 ima siozen sistem virtuelne memorije koji pudrtava str:micenje na ;.a- Slika 6-13. Deskriptor scgn1enta,; kodoll! na Pentiumu 4. Segmenti s podacima su ll!alo drugaciji.
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<', Format sekktora mudro je izabran da bi se olaksalo pronalazenje dcskriptora. Prvo
UYJ) i tabela giobalnih dcskriptora (engl. G!o/)(1/ Descriptor Tahle, GDT). Svaki se i1.ab~rc LOT iii GDT tabela na osnovu bita 2 seiektora. Zatim se seiektor koptra u
i' program ima sopstvenu LDT tabclu. ali postoji samo jedna GDT label a koju dele svi

l
r 44-t Poglavlje 6: Nivo operativnog sistema racunara 6.1 Virtuclna mcmorija 445

privremeni registar MMU jedinice i 3 najmanJe znacajna bita postave se na 0, sto daje S druge strane, ako jc stranicenjc omuguceno. lincarna adresa se turnaci kao virtu-
efekat mnozenja 13-bitnog broja selektora brojem osam. Na kraju se tome doda adre- e Ina adresa i preslikava u tizicku aclrcsu pomncu tabela stranica. vrlo slicno situaciji
sa LDT, odnosno GDT tabele (koja se cuva u intcrnim registrima MMU jedinice), da unasim primerima. Jedini probicmje to SID LIZ J2-bitnu virtuclnu aciresu i stranicu od
bi se dobio direktan pokazivac na deskriptor. Na primer, selektor 72 ukazujc na od- 4 KB. segment moze da sadrzi rnilion stranica. pa se u cilju smanjcnja tabele stranica
rednicu 9 u GOT tabeli, koja se nalazi na adrcsi GDT + 72. za male segmcntc koristi preslikavanje u dva nivoa.
Sledimo korake kojima se par selcktor-rastojanje pretvara u tizicku adresu. Cim Svaki aktivan program ima katalog stranica (engl. page directorv) ;a 102-+ odrecl-
harclver sazna koji se registar za segmente koristi, on u svojim internim registrima nicc od po 32 bita. On se smesta na adresu na koju ukazuje glubalni regislar. Svaka
moze da pronade potpun deskriptor koji odgovara torn selektoru. Ako segment ne oclrcdnica iz ovog clircktorijuma ukazuje na tabclu stranica kuja t;1kude sadr!:i 102-+
postoji ( selektm 0) iii se trcnutno ne nalazi umemoriji (P je 0), program upada u klop- odrednicc sa po 32 bita. Odrednice tabele stranica ukawju na nkvire t;r slranicc.
ku. Prvi slul:aj je programska grciika; u drugom slucaju operativni sistem trcba Ja Semaje prikazana na slici 6-l 5.
preuzme segment.
On tada proverava da li rastojanjc (pomcraj) seze van granica scgmcnta. i u tom Linearna adresa
slucaju program opet upacla u ldopku. Logicno jc da u deskriptoru trcba da postoji 32- Bits 10 10 12
-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
[ DIR I PAGE I OFF

predstavlja tacnu velicinu scgrncnta. sve do I MB. Akuje u njcmu vrednost I, polje LI- (a)
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. Direklorijum stranica Tabela strantca Okvir za stranice
Pod prelpustavkoJJl dajc ;,cgmcnt umemoriji i dajc raslopnje u dozvoljenim gra-

l~-J. ,~L1 -~~.-l__ ,'"b'"""'


nicama, Pentium-+ tada sabira .12-bitno polje BASE u dcskriptoru i rastDjanje da bi do- 1
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 i.

BASE velicine samo 2-+ bita. Uloga polja BASE jc da sc omoguci da svaki segment
PAGE , I

[L
pocnc na proiLvoljnom llll'stu unutar lincarnog pmstora .12-bitnih adrcsa. DlR
' OFF
l i I
L/ (b) L/
Deskriptor
Osnovna adresall • 9 Slika 6-J5. Prc:-.lik,t\dllJL' !inc:trnih adrc.'-a u fuiCk~ ~u!rcsc.

Na ,lic·i 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-
UM" )
Ostal3 polja guv araj uctl ubelu ;,lranic:a. Lrti Ill ~c 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 stranic·c da bi sc dublia fiz:cr.a adr.;o;;, adresiranug hajLl iii rcci.
32-bltna !!nearna adresa Odr.cdnice tabelc .tr~mica imaJU P" '2 bi:a. ud ct·ga 2il hit<lva sadrze bn>j nkvira za
stranicc. '\lcJu r•remtalim bitnl·ima \ll bit ,I;] pri,tup i ,.prljavi'" bit koje hardver pu-
Stika 6-l.t. Pretv.trelllJc para sekhinr-rastnjany u linearnu adrc:.su. sLt\ija da bi 1h ktlri•tiu r•pcr:ltJvni '>i.<>tcln. bit<lv·i La za.\tiLU i Jrugi slicni bitov·i.
Sv;tkttahcla str~mi,·a :ma l>drc:dnJcc za it 1.2.+ ''"vir~<. svaki 11d po-+ Kl3, tako daJedna
Ako .JC straniccnjc oncmoguL'enu (pomocu bita u globalnum upnvlpck,Hn rcgl- tabt-·:a radi ..,a-+ Incgab~J.jta rne:norij.:. Scgnlclll ~uji je kra:i ud -+1VI itnaCc h.atalog slra-
'tru). Jincarna ;rdresct SC !Uillaci kao lizicka adresa i ~aljc SC U lllCllllll·iju ll c·iJju ucila- nic:r sall11l o;a jednom c'drc'dni~'OllL p\lkazivaC·cm :1:1 :-,\Ujll J<.:dinu tabelu stranica. Na
vanja iii upisi\anja pmlataka. Tako, kad je stranicenjc onemogucenu. i1namu l'islu lldL'i:l .sc n;t kratke ·;c:o-:mcJltc SU\i.~nu rn;:c sanHJ cht: ;;tr;,nice. dclk bi milioni stra-
SL~mu segmcntiranja, sa rlsnrJvnom adrcsom svakug scgmenta u njcgovtllll dco;krip-
nica hili uiudu putru;cni k~1cb bi sc kunstila dx:la slr~u;ir:a.Jcdim,tvuJog niHJa.
tonJ. Segmenl i sc mugu pnvremenu preklopili. verovamo zato sw
bi se s~u11o u;. mno-
go mukc i vremena moglo usigurali suprotnrl.
- 446 Poglavlje 6: Nivo operativnog sistema racunara 6.1 Virtuelna mcmorija 447

Da bi se izbeglo ponovljcno pristupanje istoj lokaciji u memoriji, MMU jedinica Sve dok program koristi iskljucivo segmente na sopstvenom nivou, sve tece u rcdu,
Pentiuma 4 ima specijalnu hardversku podrsku za brzo pronala?,enje ncdavno ko- Pokusaji cia sc pristupi podacirna na visem nivou clozvoljavaju se, Pokusaji da se pri-
riscenih kombinacija polja DIR-PAGE i njihovo preslikavanje u tizicke adresc odgo- stupi podacima na nizem nivou nelegalni su i hvataju se u klopku. Pokusaji da se po-
varajuceg okvira za stranice, Koraci prikazani na slici 6-1 S preduzimaju se samo onda zovu procedure na drugacijem nivou (visem iii nizcm) dopusteni su, ali na brizljivo
kada trazena kombinacija nije skoro hila koriscena, kontrolisan nacin. Da biste ostvarili poziv izmedu razlicitih nivoa, instrukcija CALL
Uz malo razmisljanja, zakljucicete da polje BASE u deskriptoru ne mora biti raz- mora cla sadrzi selektor umesto adrese. Ovaj selektor ukazujc na de~kriptor zvan pro-
licito od nulc ako se koristi stranicenje, Polje BASE pri trazenju odrednice samo po- Jaz za pozive (engL call gate); on daje adresu procedure koja se poziva, Na taj nacin
mera pocetak procesa negde ka sredini kataloga stranica, pa pretrazivanje ne pocinje nije moguce skociti usred proizvoljnog segmenta koda koji sc nalazi na nekom dru-
od njegovog pocetka, Polje BASE postoji da bi se omogucilo cisto segmentiranje (bez gom nivou. Njemu se moze pristupiti samo preko zvanicnih ulaznih tacaka.
stranicenja) i povratna kompatibilnost s procesorom 80286 koji nije poznavao stra- Na slici 6-16 prikazanajc moguL'a primena ovog rnehanizma, Na nivou 0 nalazimo
nicenje, j.:zgro operativnog sistema koje rukuje ulazno-izlaznim operacijama. radi s memori-
Treba takode pomenuti cia za aplikacije kojima nije potrebno segmentiranje, vee se jom is drugim va7.nim procesima, Na nivou I nalazi se potprogram za obradu sistem-
zadovoljavajujedinstvenim, stranicenim prostorom 32-bitnih adresa, to mozc lako da skih poziva. Korisnicki programi mogu pozivanjem proccdura aktivirati sistemske
se ostvari. Sve registre za segmentc treba tada napuniti istim selektorom, u cijem de- pozive, ali se mozc pozivati samo odreden. zasticen broj procedura, Na nivou 2 nala-
skriptoru jc pulje BASE = 0, a polje LIMIT je poslavljeno na maksimalnu vrednost ze se biblioteke proceclura- njih mozda dele mnogi programi koji se uporedo izvrsa-
Rastopnje svake instrukcije tad ace biti linearna adresa unutar jcdinstvenog adresnog vajtL Korisnicki programi mogu da pozivaju ove procedure, ali ne smeju da ih
prostora- u stvari, klasicno stranicenje. mcnjaju, Na kraju, na nivou 3 izvrsavaju se korisnicki programi koji imaju najmanju
Stigli smo do kraja opisa virtuelne memorije Pentiuma 4. Medutim, trebajos ndto zaslittL Slicno semi upravljanja memorijom na Pentiumu 4, i sistem zastitc je stvorcn
reei o zastiti, posto je ta tema blisko povezana s virtuelnom memorijorn, Pentium 4 po uzoru na opcrativni sistem MULTLCS.
podrzava cetiri nivoa zastite, pri cemu je nivo () najvisc privilegovan, a nivo 3 naj- Programske klopke i sistemski prekidi koriste mehanizam slican prolazima za po-
manje. To je prikcu.ano na slici 6-16. Aktivni programje u svakom trcnutku na nekom zive, Ni oni ne referenciraju apsolutne adrese, vee deskriptore. a deskriptori ukazuju
nivou zastite koji odgovara dvobitnom polju unutar njegovog registra PS'\V (Pro- na spcciticne procedure koje treba izvrsiti. Polje TYPE na slici 6-13 sluzi za razliko-
gram Status Wot·d), hardverskog registra koji cuva kodove uslova i razne druge sta- vanje segmenata s koclonL segmenata s podacima i s razlicitim vrslama prolaza,
tusne bitove. Stavise, i svaki segment sistema ima sopstveni nivo zastite.
6.1.9 Virtuelna memorija na procesoru UltraSPARC III
Moguce primene
razlicitih nivoa zastite 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-
13
na su samo -1-1 hit a. tako da programi ne smcju biti veci od I ,8 X I o 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 ~mcju 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), ~to 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-
Nivo
SPARe Jl[ mora da kuristi sasvim drugai'iji pristup, Ona sadrzi hardversku tabelu
Stika 6-16. Zastita na Pentiumu-L 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 Inih stranica (maci vise od 2 milijarde). Jasno je
da se ne mugu sve preslikati.
r 6.1 Virtuclna mcmorija 4..J9
448 Poglavljc 6: Nivo opcrativnog sistema racunara
----

Ukoliko sc ne pronade poklapanje. nastaje TLll promasaj i program pada u klclp·


Bitovi
Virtuelna
ku koju obraduje opcrativni sistem. Skrecemo vam paznju nato cia jc TLB promasaj
adresa 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 d~
uradi sta god z.eli da bi ucitao novu TLB odrednicu La Lahtevanu virtuelnu stranicu.
Fiz16ka Mcdutim, da bi se ova vazna opcracija ubrzala. ubezbedena je izvesna hardvcrska po-
adresa -- -· drska ukoliko i softver saraduje.
Bitovi 28 13 25 16 22 19 19 22 OJ operativnog sistema se, konkretno, occkujc da u tabeli TSB (Translation Stora-
Stika 6-17. Prcslikavanp iz virtudne u fi£icku memoriju proce,ora UltraS!' ARC:.
ge Buffer- bafcr za smcstanjc prevoda J odrzava softverski kt:S sa ccsto koriscenim
TLB odrcdnicama. Ova tabelajc organizovana kao direktno preslikani kd vir1uclnih
Zhog toga TLB cuva samo nedavno korisccne brojevc virtuclnih stranica. 0 stra- stranica. Svaka 16-bajtna TSB odn:dnica odnosi se najcdnu virtuelnu stranieu i sadr/i
nicama sa instrukcijama i podacima vodi se poscbna evidcncija, pa TLB cuva 64 naj- bit validnosti, bmj konteksta, oznaku virtuelne adrese, broj lizickc stranicc i nckuliko
skorije koriscena broja virtuclnih stranica svake kategorije. Svaka TLB odrednica indikatorskih bitova. Ako kes moze da primi, na primer. 81 l.J2 odrcdniec. onda sve vit-
sadrzi broj virtuelne stranice i oclgovarajuci hroj tiLickog okvira za stranicc. tuclnc stranicc cijih sc 13 najmanjc znacajnih hitova prcslikavaju ll 00000000()()()()1)
Kada se hroj proccsa. ;.van kontckst, i virtue Ina adrcsa unutar kontcksta proslcde knnkurisu za <>drednicu 0 tabck TSB. Slicnu tome. sve virtuclnc stranicc cijih sc U
MMU jcdinici. una pomocu spccijalnog hardvcra odjcdnom poredi broj virtuclnc nctjmanje !Ilacajnih bitllva preslikavaju u IJUIJIJOIJOOOOOOI konkurisu za odrcdnicu I
<;tranc iz nje sa svim TLB odrednicama La dati kontekst. Ako sc pronade slaganje. broj tabele, kao \tt> jc priLv.ann na o-lici 6-1 :-lib). Vclicinu tabclc TSB mlrellujc soltver i
okvira ;a stranice iz te TLB odrednice kombinuje se s rastojanjcm uzetim iz virtuelne saopstava jc M!vH.: jedinici prcku specijalnih rcgio-t<tra dm,tupnih <oamo uperativnon
adrcse lLt hi se dobila 41-bitna ti?.icka adresa i generisalo nekoliko indikatora. kao sto si'.temu.
su hitovi /.a zastitu. Tabela TLB je prika1.ana na slici 6-18( a). Kada na-,tanc TLR proma::,aJ. operativni sistcm provcr~tva da li odgovarajuca TSB
odrednica sadrzi potrcbnu virluclnu :;tranic·tt. !\1:\lU jcdinica ovdc tgudtw pomaz~
TLB (hardver MMU J8dlnlceJ TSB (MMU J8dlnica t sottver) 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 kL·~ :-,adr/i t'drcdnic"u s trah·nom adresom. jedna TL B
Kontekst Kontekst mlrednict ''~ hri'.e i pronadcna TSB udn.:dnica se kupira u Tl.B. 1-Lmhcr p01na?.c i
Oznakal .
Virtuelna] lndikaton virtuelne' lndlkaton tako sto bira TLB odrnlnicu za brisanjc kmisteci JL'dnohitni LRlJ algclritam.
stranica 1 FizH:ka stran 1cej F1z1cka i\ko i pt·c:trazivanjc tabclc TSB prude he;, u:-,pcha, c1perativni >;istcm pre!a?i na dru~
Vdlidnost I I stran1ca Val:dnost i stran1ca Tabela za prevodenJ8

I
.L'
l , 1 l
l
i l I (Operativni sistem\ gu tabclu tb hi pron•tsau inft>rrnac·ijc 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

I II t4
prevodenje kng!. rr,lil.>iurion lcii>!cl. Pn;;tn 1a njcnu pretr;t?i,·;,njc ncma hardvcrsk~
(ai rudr.:.kc. upc~ativni ,;istcm ;a njunw?.c· da izabcre ft'nnat po ?clji. Na printer. onmo/:
Format d.t hc~ir;t hmj virtt;,.:lnc stranicc delcc'i :.'a nckitll pwsti111 brojem I' ida o ..sLttak upotreli
... potpuno Ltu in,kh 11 whclt :wk;Vt\a-:·a, t>d kujih svaki uLvuic na pov~zanu ]i,,tu odrednio
"
Odredn1cu 0 dele sve
odredu1e
,., pndacima o virtuclnim :-,tranicama kujc sc hc:sir~t)U do f!· lmaj!L' n:tttllll!lb Ll\C mlrcc~
virtuelne stran1ce koJe
se zavrsavaJu sa 0 ... 0000 Odredn1cu 1 dele sve I "''"''""'"'o<em I niL"c ni,.,u >:unc srranicc, vel' TS13 udrcdnice. Kada sc straniL·a tr:t/i u t:tbcli 1a prcvt·~
virtuelne stran1ce koje deny ta slr;mica .se nm~·.c prunac'i u i11L!I1loriji; u tlllll siul"aju e~/:urira ,e T:-;B ndrcdnic.t
se zavrSdV3JU sa 0 ... 0001 I
u sut"lh'rskunJ kesu. Prctr:t:;a nHY/.;; da ot!--rijc i da se str:lllie<l nc n:tl;vi u mcmorij:.
(b)
kadd Sc' JWhcLT 'landardna akci_ja 1.a pruma;i vanjc slr~mice.
;/an,mljivujc~ upcJt-.,dili si-.tcmc vinuclnc mc·nwri.JC Pentiuma -+ i procc:-.ura Ultr;~
(c)
SP/\RC Ill. Pt.·nriunl .+ poJrl_a·;;ll·istu SL'l:;!lH.?nti:·~t:lje. l·t.-;tu qr:Jni~.\:njc i :)egnl~IHt' SJ
Siika 6-IS. Strukturc fl"clatab kllJC se kuriste LJ prevmknjc virtue! nth adresa na prucesmu :-tr~lllic·a;na. l'llraSP.\RC Ill J'O£:;ajc :-<tmu slL!Iltl'cnjC. Pc'til;Liil!-+ takclc:e hardvcrsl,j
lJitr"SP.\RC. Ja) TLB. tbi TSB. (c) Taht:l,1 La prcvndenje. pml>tic'e taixlu <tr;:nica d;tJlilllti\"t' ucila TLB tahc·lu u ..;lucaju n.:~ pnlma:.aja. Ultr~~
S Po\ RL' ll! pri TL D prom:t~a.JU .<amo pred.ijc upra v lp:1_1e opc·rau v;;, 1111 'i:,t•:mu.
.r -
~
'
'
:

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

~i
~
~~
452 Poglavlje 6: Nivo operativnog sistema racunara 6.2 Virtuelne ulazno-izlazne instrukcije 453
¥ ·-~-~-·· -----~----·----· ---

KaJa sc clatutcka otvori. rlJCn sadrzaj moL:e cia se procita. Sistcmski poziv read
mora Ja ima harem sledccc parametrc: Jed an
logicki
]. l\iaznaku tl tome knju mi otvorcnih datotcka trcba procitali. zapis
Sleded logicki
2. Pokazivac na mcmorijski bafcr u koji cc podaci biti ucitani. zapis koji treba
3. Bruj bajtova kojc tn:ba procitati. / proCitati
I ''"'I Jl:
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).
Glavna memonja Glavna memonja
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
I
read citaju uzastopnc blnkov c podataka iz datotckc. Obicno rostoji nacin da sc ovaj
Logicki
zapis 18 ~Bater ,----- rBater
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.
(a) (b)
Za upcralivnc sisll:mc ccnlr~tliuh racunara. dat(llcka jc nc·\lu slo/.eniji pojam. Za
njih datolcka mn/.c d~1 budc ni/ logickih zapisa. m! kojih s\ aJ...i ima duhro dcfinisanu Slika 6-1'!. CitanJc datutckc koja sc "'stoji od f,lgickih zapisa. (a) Pre citanja zapisa 19.
strukluru. Na primer. logicki ;api:, bi mugL1 hili _,truklura pudatab s pet stavki: selva (h) Poslc citanja zapisa l9.
znakO\na ni;a l . .lmc." i .. Nad;ornik')'; elva L'L'la hmja ( .. Odcljcnjc" i .,Kancclarija")
i lu~ickim pudalkum .. )cnskiRml". Ncki upcrativni si\tcmi pravc razlil--u iLmt.:du da- Sektor 11 Sektor 0 Sektor 11 Sektor 0
lntcl--a u ko.Jillla .\vi 1apis1 imaju istu stmkluru i d~tl(llt.'i-.a kojc sum6.avina raznih lipo-
va 7~lJ"'a.
O·muv na Virlucln~t uLt;na instrukcii<t C·iu sicdcci ;:api.s i;. ;ad<dt.: datokkc i .smcsla Staza 0
y:a u gl<!v·nu mc·rnoriju p<'CC\ od ;.adalt' ad!,:sc. 1--au na slici (1-ILJ. Da bi ovu izv·cla.
111\lr~l juj .sc sac>p~lili d~ilil!cka KUJU trdJa cit ali i lllt.::-,i() ll llll'll1()l'iji na 1--ujc trcba SlllC· Glava za Glava za
stili ucitan zapis. Ccstu l''''t'1jc upcijc t.a oc:ita\ l"ii:mjc 1~1pisa. ~l<l sc 1.adajc bilo citanje - Citanje-
njc~m im poiu7~tll'Ill u datutc<:i. hiJ,, p<'lll<'L'u njc:~<'V'l~ l-.,ljuca. i upistvanJe 1 upisivanje

()~novna viilLh.:lna i/.Lt/na in-.;trukcij~\ tlpi~u.i~ lngi~·li !.t!pi:-. i1. n:~,."nlnrijc u datoleku.
U;.astuprw tn:,truJ....:ije write Slllt:~taju llZctstupnc ioc;Jl:k..: :apisc u cLtt·.'tci--u.

..........__... ..........__...
6.2.2 Imph.:nwntiranje -virtudnih ul:lzno-izlaznih instrukcija Smer rotrranJa diska Srner rotiranJa diska
D~t hstc r·an:mcli kakil ,,, implemt:nliraJli virtuclnc ubzno· izLrznc instrukcijt.:.
(a) (b)
n1ur~tt~ prvo naul:iti k~:ku . . ~ dLtt11k'hL~ otg:li1it~:_ju: 't1h'~Ltju. (}-.,nc'Vih) \l C~!11lli110raju
"udi t i ;·~:_(una s \'i -..i~ten11 ,JdLOlL' :"''"L jc:--.\c j~.:di ni.._· a pro\ti)J"~i. (JIEt nh •I.e cL.t Pdgovara jed- Slika 6-20. Stralegije dodclji\',llt)a prostora na dtsku. (a) Datolcka zauzima uzastopne scklorc.
num ,ckt<!rcillct di,ku. ali jc I•' po pr:ivilu h],lk u!:;:;t(•pnih ·,d;t,,ra. (hi Datotd.a zauzima ncsuscune scktorc.
{)ru~~t~ fl!ELL.uncnraln~) .')\ u ir11pkn1~1Ha--:ij:: si:~t...·n;a d;._ltfi~lJ_~ljcsle gde sc dato-
tcf...a .~J!h~'~l~~: u LC~lstnpniin i!i ne:. S1ik.~t fl-20 pr~:-:allljc jcdnP.-.,tavan jcdno- Po;,tuji va/.na r~tzlil--a izmcdu to~a kako programer glcda na dalotcl--u i kako jc po·
smalra operativni sistem. Programer daltlteku vidi kao lincaran niz bajtova ili log:ickih
~lranl di.-J. ·, ~·--·t -..rala 1hl ;1u 12 'l·kl\'1'~1. Slik~t h-.20\~1) ~l'll.~i dodclc pro~tora
zapisa. Operativni sistcmje posmalra k:Jo uredcnu. premda ne obavcnw uzastopno na·
~~ ku.i('! j,_' ·"L'ktdr .l:--.fln\-n;t JCliinica srn~.r....t.Jj~l; u ~L ~,_!atutc~.·i dulL:ljuju uzastopni
h[, •ku\ a d~ltcilt."''~i ~11 :)c 1-..~, 1ri~ti na kon1pakr nizanu 1.hirku jcdinica .-:a smesranjc na disku.
~ck~uri. L;~t:-liJjl;J;l du~.lclji\
di-J:_,,-..·inla. Sllk._t h-2\hbi ~CJ:lu dndclc u k~Ji~.)i jc sd,tur 0:)11~)\na skladiSna
_icdiJUL~L :_dl U dat\)teka n~-: n:l)Ll da ?~Iul.i:na Ul.a:-,U1pnc ~ckr~)re ()·v'akva ;crnaje
~t<~nd.tnJ !.~t (\ r-;Lc di,...:k.~)\C.
r Poglavlje 6: Nivo operativnog sistema racunara 6.2 Virtuclnc ulazno-izlaznc instrukcije 455

Da bi operati vni sistem na zahtev isporucio bajt n iii logicki zap is n iz odredene da- Da bi datoteci clodelio prostor na eli sku, operativni sistem mora da zna koji su blo-
toteke, on mora da ima mctodu za pronalazcnje takvih podataka. Ako su datoteci do- kovi slobodni, a koji vee sadrze datoteke. Za kornpakt disk, ova racuniea sc obavlja
deljene uzastopne jcdinice za smdtanje, opcrativni sistem samo treba da zna mesto gde unapred, jednom i za svagda, ali na cvrsti disk clatoteke stalno do laze iii s njega odla-
pocinje datoteka kako bi mogao da izracuna poziciju trazcnog bajta iii logickog zapisa. ze. Jedna metoda se sastoji u oclrzavanju liste svih praznina, pri cemu prazninu pred-
Ako datoteci nisu dodeljene uzastopnc jedinice za smcstanje, nije moguce izracu- stavlja bilo koji hroj uzastopnih, sloboclr,ih skladisnihjcdiniea. Ova lista se zove lista
nati proizvoljnu poziciju trazcnog bajta iii logickog zapi!>a samo na osnovu pozicije slobodnih mesta (engl. .fi-ee list). Slika 6-21(a) prikazuje listu slobodnih mesta za
pocctka datoteke. Da bi se pronasao proizvoljan bajt iii logicki zap is. potrebna je ta- disk sa slike 6-20(b).
bela zvana indeks datoteka (engl. jile indl'x). u kojoj se uporedo nahvc jcdinice za Alternativno se moze oclrzavati mapa bitova sa I bitom po jedinici za smestanje,
smestanje i njihove stvarne adresc na disku. Jndeks datoteka se rnozc organizovati kao na slici 6-21 (b). Tad ace I oznacavati daje jedinica zauzeta, a 0 daje raspoloziva.
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- Staza Sektor Broj sektora Sektor
ki zapis sadrzi i kljuc, pa programi mugu cia pristupaju zapi'u prcko kljuca. umcsto u praznini Staza 0 2 3 4 5 6 7 8 9 10 11
r-

~1
preko njcgovog broja. U tom slucaju neophodan je drugi sistcm organizacijc, pri 0 0 5 0 0 0 0 0 0 1 0 0 0 0 0
0 6 6 1 0 0 0 0 0 0 0 0 0 0 1
ccmu odrcdnica nc sadrzi samo lokaciju zapisa na disku, vee i njegov kljuc. Takva or-

~I
1 0 10 2 1 0 1 0 0 0 1 0 0 0 0
ganizacijaje uobicajena na centralnim racunarima. 1 11 1 3 0 0 0 1 1 1 1 1 1 0 0
Altcrnativna metoda pronala/.enjajedinica na disku u knjimajc smdtcna datoteka 2 1 1 4 1 1 1 0 0 0 0 0 0 0 0
2 3 3
jestc organizovanjc datotekc u obliku povezane liste. Svaka dodeljenajedinica sadrzi (b)
2 7 5
i adresu svog slcdbcnika. Ova sema se IllOZt.: efikasno implemcntirati tako sto ce se u 3 0 3
memoriji odrzavati tabda ,a adresama wih sledbenika. Za disk sa 64 KB jcdinica za 3 9 3
4 3 8
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 (a)
skladi.~ne jedinicc 4, 52 i 19, odrednica 4 u taheli bi sadrzala indeks 52. odrednica 52
Stika 6-21. Dva nacina rcgistrovanja raspolozivih scktora. (a I Lista slobmJnih mcsta. (b) Mapa
bi sadr7.ala indeks 19. a odrednica 19 sadr/.ala bi spccijalan kCKI (npr. 0 iii - I), kao bitova.
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 Prva metoda ima prednost JCr olaksava pronalazenje praznine odredcne duzine.
supstvcni sistcm koji radi slicno kao na UNIX-u. Njena mana je to sto je lista promenijive duzine. Kako sc datotekc srncstaju i brisu,
Dosad smo govmili u datotckama smc\tcnim u uzasU,pnc jedinice i onim drugim, duzina lisle se menja, sto je nepozeljno. Prednost tabele bitovaje konstantna velicina.
ali nismo navcli za\to <>e koriste obc vrstc. Za datotckc smestcne u uzastopne jeclinice. Osim toga. kada se status jedinicc za smdtanje promeni iz .. zauzet'' u ,raspoloziv'·,
admini<>triranje blokovima je jednostavnije, ali seta tchnika rctko moze koristiti ako potrebno je izmeniti samo jcdan bit. Medutim, tcsko jc pronaci blok zadate velicine.
niJt: unapred po/nata mabimalna duzina datotcka. Ako st.: smc'itanje datuteke zapoc- llista i tabela se moraju azurirati cim se neka datoteka snimi na disk iii s njega obrise.
ne u sekturu j. a ona -;c daljc' smc.:;ta u uzastopnim scktorima, ona se mo!.e sukobiti Pre ncgo sto zavrsirno pricu o implementiranju sistema clatoteka, trcba nesto vis~
s drugom datlltckom u scktoru k pa vise ncce moci da rastc. Da ovoj datoteci nisu do- reCi i o velicinijedinica za smestanje. Na nju utice vise cinilaca. Prvo, pristupom clisku
deljivani uzastopni scktori, problema ne bi hilojer bi se blnkovi koji iz memorije do- upravlpju vreme trazenja podataka na njemu i brzina rotacije. Kadaje potrebno 10 ms
Lue jedan za dru~im mogli razhacati svuda po disku. Akll disk sadr?.i vise datoteka da se pronade pocetak jcdinice ;:a smdtanje. mnogo je boljc cia se tacla procita 8 KB
kujc sc sire. a ne zna sc maksimalna vclicina nijedne, njihovo smdtanjc u uzastopnim (za oko I ms) ncgo I KB (za oko 0.125 ms). postu je za citanje 8 KB u obliku jedinicJ
jedinicama na disku hilo bi skoro nemogucc. Premdtanjc: P<lstojcl'e datoteke po disku od po I KB potrcbno osam tra7.enja. Etikasnost prcnosa govori u prilog vecihjedinica.
ponekadje mugucc, ali je uvek skupo. Vel ike jedinice za smestanJe zgodnc Sll i zbog cinjenicc da malih jeclinica treba clJ
S druge slrane. ako ~c maksimalna velicina svih datotcka zna unapred, kao sto je budc mnogo. Poslcdica koriscenja vel ikog broja jedinica jesu velike indcksne clatote-
slw:·aj kada sc snima kompakt disk, program za snimanje mozc unaprcd cludeliti wa- kc iii vel ike povczane listc u memoriji. U stvari. MS-DOS je morao da prcde najedi-
koj datotcci ncprekidan niz sektura koji Jo.i tacno mlgnvara po duzini. Tako. ako na nicc za smcstanje od vise sektora zato sto se adrese na disku cuvaju u obliku 16-bitnih
kompakt disk trcba -;mcstiti clatoteke duzina 120\l, 700. 2000 i 900 scktora, njihovo brojeva. Kacla sektori na disku prerastu vclicinu od 64 KB. mogu se prcdstaviti samo
snimanjc nwzc poceli ocl sektora 0. 1200, 1900. odnosno 3900. (zancmarujuc'i tabelu vecim JCdinicama da njihov broj ne bi pre sao 6-+K. Windows 95 je u svojoj prvoj ver-
sa sadrl:ajcm diska1. Kada sc: zna prvi sektor svake dat<lteke. lako je pronaci bilo kuji ziji imao isti problem, ali jc u sledecoj koristio 32-bitne brojeve. Windows 98 podrza-
njen deu. va ohe velicine.
~---~·

Po!!;lavlje 6: Nivo operativno!?: sistema rai'unara 6.3 Virtuelnc instrukcije za paralelnu obradu 457
456

Argument u prilog malih jedinica za smdtanje jeste cinjenica da nekoliko dalnte- direktorijuma narocito je zgodno za programere koji radc na vise projekata. Tako u isti
ka zauzima ceo broj jcdinica. Prema tome, ostacc nesto neiskori~cenug prostora u dircktorijum mogu da stave sve datoteke koje se odnose na isti projckt. Dok budu radili

·. ~.
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-
na tom projektu, nece ih ometati neval:ne datoteke. Direktorijumi su i zgodan nac:n
deljenja datoteka izmcdu vise korisnika iz iste grupe.

1
sccna datoteka mnogo manja od jcdinice za smdtanje, najveci deo prostora na disku lme datoteke: Gumeni patak
' ostacc neiskori;cen. Na primer, na particiji ud 2GB u MS-DOS-u iii u prvoj verziji Datoteka 0
. Duzina: 1840
Windowsa 95,jedinice za smestanje bile su veliCine 32 KB, paje pri smdtanju dato- Datoteka tl
Tip: Anatidae dataram
IL teke sa I 00 tekstualnih wakova uludo bacano 32.66~ bajtova pros lora na disku. Efi-
kasnost smcstanja govori u prilog rnalih jedinica. Sve u svcmu, izgleda da je dan as u
Datoteka 2
Datum nastanka: 16. mart 1066
J prvom planu pnbuljsanJe elikasnosti prcnosa podataka. tako;da se velicina blokova za
Datoteka 3
Poslednje I

I
Datowka 4 pnstupanJe datotec1: 1. septembar 1492
srndtanja s vremenum povccava. I
Posledn]a
Ddtoteka 5 4. jul1776

I
izmena datoteke:
Mt·
~· 6.2.3 Instrukcijc za rad s direktorijumima Datoteka 6 Broj pnstupan]a
144
datotec1
~

r U ranim danima racunarstva korisnici su s\oje programc i podatkc cuvali na bust·-


Datoteka 7

Datoteka 8
Blok 0: Staza 4 Sektor 6

~ nim karticama, lcpo slo/:cnim u L1ncclarijskim urmarima. Kako su hroj i vcliCina [lnl-
Datoteka 9
Blok 1· Staza 19 Sektor 9
~.
grama. kao i kulicina rudataka rasli, ovakvo sme~tanje jc postajalo sve manjc Blok 2: Staza 11 Sektor 2
i prihvall.Jivo. KPnacnu sc rudila idcja da sc umcsto bnccL:rij-:kih llrmara ta sme~tanjc Datoleka 10
'
~ -
I Blok 3: Staza 77 Sektor 0
~t prugrama i pmlataka upotn:hi sckundarna racunarsk,1 mcnH>rija (npr. diskuvi). Za in-
~:~
fonnaciju koja jc~ racunaru dostupna hc; pomoci Cl>Vc'ka kazt: sc da je dirl'ktno do-
,.~; Slika 6-22. Kurisnicki direktmijum s datukkama i njeguve slandardne udtwlnicc.
:.-· slupna (eng-l. on-line). ;a r~ul iku ud indirektno dostupnl' (cngL oj(lincl infunnacije.
~ kad:1 jc potrebna ljudsb intenencija (npr. umetanje kompakt diskal da bi raC·unaru
t
1;;,"
postal a dirL'ktno duslupna.
6.3 VIRTUELNE INSTRUKCI.JE ZA PARALELNU OHRADU
Uirektnu dostupnc inlmmaciJC snJe.\la.JU sc u dat<Jlc"c. ~Ill ih c'ini dlbtupnilll pn•-

gramima prckll uLu.!hl-iiLI/nili iilslrukc·ija o ko.Jiill:.t Sllltl prclhudil\l g"vori!i. \kdu- Ncka izracunavanJa se najpugodnijc mogu program irati u vidu dva iii vise upored-
tim. p<llrc·bne -:u dudamc ms:rukci.JC n pracl'njc intc•rnncija J..<,jc· su _,n,e~t·:nc· kao nih proc.:sa k.<Jji mcdusobno saraduju (daklc, odvijaju se istovremenu na razlil'itim
~-'
dirdiilll duslupi~c. za njihuv•l oiljcdinjav\Injc uruglld!lL' jcdinic·c, i DlnjilWI'LJ/a\titu proccsorima). Neka druga i1racunavanja mugu se podeliti u cclinc, kojc ce sc mlvi}tti
od neuvht~CL'Illlg korisc'cnp. paralelno da hi sc skratilo ukupno izracunavanje. Da bi se vi;c procesa istoviTlllt:I10
Dm:klno dustupnc datokkc l>pcTati'.ni sistcm l,hi-'IHJ Dr,'!'aniiujc' u grunc. ;sane di· odvijalu uz mcdusohnu saradnju. neophodne su virtuelne instrukcije. 0 !im instruk-
rektorijunti fen~!. direcTdFit'Si. Slika ()-22 rrikaJ.ujc prillll:T~)r~: 1 11i/al:ijc d!rek.torijuin~l. cijama govoriccmo u narcdnim odcljcima.
PusllJjt: sist>.:m.ski po!.ivi h:tr L.~l ·,!cdeL'c' --:~.)
Zakoni fizike dodatno opravdavaju danasnje zanimanje 1.a paralclnu obradu pot.la-
I. f'ravljenjc dat .. tcka i lljth:no s:nc,;ianjc u dird.ltlriJU11L 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 kr~z
J flrisanjc datntcka iz
bakamu zicu iii optil'ku vlakno. Ova granica ima vazne pusledice po organizaciju ra-
-'· Prt>mcna imc'Il.l daL<llL'ka.
cunara. Na primer, ako su proccsoru potrebni podaci iz glavne mcmorijc udaljcne Jd
-L i\!cnjanJe bc:zbedn<JS!lll;2 'ta:::,a dallHt:ka. njega oko 30 em, trcbace bar jedna ns da njegov zahtcv stigne do memorijc i jos I ns
Kuri:-.tc ~c ra.;liCitc ~L'l11C !~t~tiLL~ . .Jcdna !1h)gtk:!li1.-.t j~· d~1 \ L~:~ni-:i d~ttntcka ~~tdaju da sc dobiJe odgmnr. Shodno tome, racunari sporiji od nanosekunde mnraJU da budu
ln!.iLkc Kada p11ku;a da pri:--.Lupi ~_Ltt·.JL•'<.:i. prngi·:tlll rr,t·r:: tL.t U1h_'\C lP/ii1ku ntl ,y..;nuvu izuzctnn malih dimenzija. Racunari sc moguubrzati i ako se oprcme s vise procesora.
koj'"" 1nu opcrativni :-.isrc-111 duJ\oij~t\~t r;r!.-..tur~. Drui;i ~l:tl:in /~l~lik' j~...· d~1 \ L:;;nik d~ttl)- Ral:unar koji ima hiljadu proccsora s radnim taktom od I ns moze da ima istu racu-

!' tclc Dhla spi:-..ak. o:..;oha r'ro_:;r~lilii -,rneju LLl pristupaju Li~d('k·ci.
Svi dana~nji l)j'c'LHivni c._i:,tL~nli \JllluguCuju k.nri-.;;1iku ;._L napr:t\·i vi.::c
narsku snagu kao i jedan proccsllr s radnim taktum od 0,00 I ns. s tim stu ga jc mozda
lakse i jeftinije napraviti.

~ S\·ak: dirl'ktdrijlllll Je po pr:l'- ilu i ~.:t:11 d~ttntd\. a i kao Ltk:tv sc rnol:c prik:v.ati 11nut~1r
dru~~\~ dirckturijtJIU~L pa :-;t_' t~~\il d(lLl;i do stab!a din:k.t<)rij~!ina. Poqo_i.Jnjc vi~'-·
!
!
i
I.
b"""c~c'!f:~··-;"''!'""'$~.~;.;'il!:~<!;"'';:;;~.'!il:W~""1'-'2~~.>.~7~ ~- ~'~
~·;,_'~·~,;f;j!'.'""' ~cr-'l:t • ~~~~~,.•-.'""!!:'• ~., " - . -~ ""'.(,,, ;r. . ,4o'~ "'"-.... " '. -}~ 1
-..,. ~ .. " " ' - ~f~"'""'-~_,-J~·- jl' <
458 Poglavljc 6: Nivo opcrativnog sistema racunara 6.3 Virtuclnc instrukcije za paralelnu ohradu 459

Na racunaru s vise proccsora. svaki od vise procesa koji mcdusobno saraduju 6.3.2 Utrkivanje
moze sc dodcliti zasebnom procesoru i tako omoguciti njihov paralclan rad. Kacla bi
U mnogim slucajevima, procesi koji sc paralelno izvrsavaju moraju medusobno cia
na raspolaganju bio samo jcclan procesor, efekat paralelne obrade mogao bi 'e simu-
komuniciraju i da se sinhronizuju kako bi obavili zadatak zbog kog su pokrenuti. U
lirati tako sto bi procesor izvrsavao na smcnu svaki proccs tokom kratkog intcrvala.
ovum ocleljku analiziracemo sinhronizovanje procesa ina detaljnom primeru ukazati
Drugim rccima, procesor hi svojc vrcmc delio izrnedu vise proccsa.
na neke tdkoce koje se pri tome javljaju. Rescnje tih tdkoca prikazacemo u oared-
Slika 6-23 prikazuje razliku izmedu stvarne paralelne obrade na vise tizickih pro-
nom odeljku.
cesora i simuliranc paralelne obradc na samo jcdnom fizickom proccsoru. Cak i onda
Razmotritc situaciju u kojoj dva nezavisna proccsa (proces I i proces 2), medusob-
kada se paralelna obracla simulira, korisno je poclr:lavati iluziju da svaki proces ima
no komuniciraju prcko deljenog bafera u glavnoj memoriji. Da bi sve bilo jcdnostav-
svoj virtuclni procesor. lsti problemi u komuniciranju koji nastaju pri stvarnuj para-
nije (iii slikovitije), proces 1 cemo Lvati proizvodai', a proccs 2 potrosai'. Proizvodac
lelnoj ohradi javljaju se i prilikorn njenog simuliranja.
izracunava proste hrojeve i smcsta ih u bafer. Potrosac ih uzima iz bafera jedan po JC-
dan, i zatim ih stampa. '
Proces 3 ceka na procesor
Ova elva procesa se izvrsavaju uporedo, ali razlicitom brzinorn. Ako proizvodac
Proces 3 /~
,--A - , ,-A--~
utvrdi clajc hafer pun, on ide ,cia se odmara'", tj. privrcmcno prestaje cia radii ocekuje
l Proces 3 II 11.1! II !II signal ocl potrosaca. Kada potrosac uzme broj iz hafcra, on proizvodacu salje signal
' ' '
Proces 2 '
' ' ' da bi ga ponovo pokrenuo. Slicno tome, ako potrobc utvrdi claje bafer prazan, on ide
l Proces 2 III:II ' II:!I II:I na odrnor. Kada proizvodac stavi broj u prazan bafer, on budi zadremalog potrosaca.
U ovom prirneru, za komuniciranje izmedu procesa koristicemo kruzni bafer. Po-
Proces 1
kazivaci in (u) i out (iz) koriste se na sledeci nacin: in ukazuje na slcclecu slobodnu rec
Proces 1 II II II II II II (mesto gde proizvodac treba cia stavi sledeci prost broj), a nut ukazuje na slecleci broj
·~" _:,~j
•J
koji potrosac treha cia prcuzme. Kadaje in= out, bafer jc prazan, kao na slici 6-24(a).
Proces 1 se izvrsava
Nakon stu proizvodac generise nekoliko prostih brojeva. situacija je kao na slici
Vreme Vreme 6-24(h). Slika 6-24(c) ilustrUJC situaciju u baferu nakon sto potrosac iz njega uzme
(a) (b) 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-
Slika b-23. (a) Sivarna parctlelna obrada na v1se proc·e"'~''" (b) Paralelna obrada simulirana
ren krug. Kada proizvodac naglo posalje rafal podataka i in prelece skoro ceo krug,
JeljL~n_jem jcJnog pruccsura izmcdu tri pruccsa.
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
6.3.1 Zapocinjanjc proccsa in = out oznacava pun iii prazan bafer.
Kada program trcba da st; i~:vrsi. 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 dinamic·ko 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. In, L______j
U izvcsnim slucajcvima. roditcljski proct's zadrzava delimicnu. pa cak i potpunu Out
(a) (b) (cl (dl (e) (f)
kontrniunad proccsum pot<H1ll-._om. Postoje virtuclnc inslrukcije ;a l'austavljanjc, po-
novno pokrctanje. ispitivanjc i zavr;avanje ko.JC roditcljski proccs mo~e da primcni Slika 6-2-t Konscen.1e kru7.n<>g bafera.
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- iLVT~llV~lJU nezavisno jedan ud drugog.
F~
460 Poglavlje 6: Nivo operativnog sistema racunara 6.3 Virtuelne instrukcije za paralelnu obradu 461
~~
~
pt
~:
Slika 6-25 prikazuje jednostavan nacin realizacijc problema proizvodac-potrosac
najcziku Java. U ovom rescnju cktini;u sc tri klase: 111. producer (proizvudac) icon-
public class m {
final public static int BUF_SIZE= 100; II bater ima 100 mesta

..~-
~ :·.'
swner ( polrosac). G lavna ldasa 111 (engl. main) sadrzi deli nicije konstanti. pokazi vace
bafcra in i out i s~lm bafer (engl. buffi'r). koji u ovom primeru mole da primi I()() pro-
final public static long MAX_PRIME = 1OOOOOOOOOOOL;
II (od 0 do 99)
II ovde se zaustavi

l stili brojeva (od buffer [0] do buffer [l)9]).


U ovom rdcnju. Javine programske niti simuliraju paralelne proccsc. Postojc kla-
public static int in= 0, out= 0;
public static long buffer(] = new long(BUF __SIZE];
public static producer p;
II pokazivai':i na podatke
II prosti broJevi se smestaju ovda
II ime proizvodaca
~~ se producer i nmswner, Cijc se instance pojavljuju u promcnijivarna p i c. Svaka od public static consumer c; II ime potrosaca
~ ovih klasa izvcdena jc iz osnovne klasc l'hread (programska nit). koja ima mctodu public static void main(String args( ]){ II glavna klasa
~ run (izvrsi). Metoda run sadrzi k(Jd /.a programsku nit. Kada sc pozove metoda start p =new producer(); II napravi proizvodaca
~- c =new consumer(); II napravi potrosaca
•j: objekta koji je izveden iz klasc lhrew/, zapocinjc se nova pmgra1mka nit.
p.start( ); II pokreni proizvodaca
Programske niti su slicne procesima. osim sto se sve programske niti u jed nom Java
r programu izvrsavaju u is tom adresnom prostoru. Ovo je 1godno jer tako mogu da dele }
c.start( ); II pokreni potrosaca

~:: zajednicki hafer. Aku racunar ima dva iii vise procesora. svaka programska nit mo/.e se II Ovo je usluzna funkcija za kruzno uvecavanje sadrzaja promenljivih in i out
usmerili na drugi procesor i tako ustvariti pravi paralelizam. Ako postoji samo jcdan public static int next(int k) {if (k < BUF_SIZE- 1) return(k+ 1); else return(O);}
proccsor, programske niti ga kori.'ite clclcci ga u vremenu. Pruizvodaca i potru~aca
~ i nadalje nazi vamo pmccsi (pus to nas u stvari zanimaju paralelni prncesi ). iako Java
class producer extends Thread{ II klasa objekta producer
podrzava samo paralcint" progr,umke niti. a ne i st vame paralelnc pruccse.
public void run( ) { II k6d objekta producer
Pomocna funkcija next (sledeci) omoguC:'ava laku povecavanJe vrcdnosti pokazivaca II privremena promenljiva
long prime = 2;
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 vr~H.'a skdcci vi\i ceo hroj. Ako. mcdutim. while (prime< m.MAX_PRIME) {
panuttelar ima vredn()st 'J'). stigli snw do krap haft:ra i funkcip naL'a vrcdnust 0. prime= next_prime(prime); II naredba P1
Trcba spruvesti da bilo koji proccs scbe Lhpava tii-.olil-.o ne mufe da nastavi rad. Ja- if (m.next(m.in) == m.out) suspend(); II naredba P2
vini programeri su shvatili koliku jl' putrcbna ova mogucnost i u kla'lt 7'/un[(/uklju- m.buffer[m.in] =prime; II naredba P3
m.in = m.next(m.in): II naredba P4
cili Sll metode Sll.\f'Cll<l ( spavaJ) I /"('.\11111<' I prubudi se ). One Sll prikataflcl!la slici 6-25.
if (m.next(m.out) == m.in) m.c.resume( ); II naredba P5
Sada stil:cttlll do stv,trnog koda ;a pn>blem pmizvodaca i potm~aL·.t. l'roiz.vmlac
~~ l
prvu gcneri~c 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 private long next_prime(long prime){ .. } II funkcija koja racuna sledeci
111. I; ising ratlugct je uj pretiks putreban i t.a promcnljivc in. out. bu,'/(,. i ncrr. II pros! broj
;;t· 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
class consumer extends Thread( II klasa objekta consumer
n~t.·todu Yl!S/h'f!tf u narcdbi P..2. J(aJ<-t h.._tfcr nijc pun. u njc~a -.,c )l~l\:1i~l 11\.h' prost hr~oj
public void run( ) { II kod objekta consumer
.... ( ndrcdhJ P.~ l i in s~..· u v~...·Lava ( P-t .1. L b )j i kc jt: nuv a vredno~t L·n T.(t 1 vcL\i c)d \ r:._· 1 ti(i'-.t i // privremena promenljiva
long emirp = 2:
Oil! (P5) (ll_rJr. in= j 7. ~1 out= 16). in i our su !lh)r~di hiti j~,_:dnaki r;·c n.:go ~i· j2 irz

Ll\cC<IIl. PwizvoLLiC nkljttL"ujc L!ajc hafcr bu> praza11 i daJC putnJ_:,,,(' ?asp<hJ. ''dno:>tw while (emirp < m.MAX_PRIME) {
d::,iu~ U\Ck '!1''' Lt. l'rem,ttom.;. pr,>i/\"tlcb.' po/.i,·a n;cttJdu 1"/'S!IIIIC da bi pruhudi,) pu- if (m.in == m.out) suspend(); II naredba C1
tro\aCJ t p_-=) ). i'~~! ~r:t_ju '1C pr~)L~\\'•lLJl: nkrL'c:e traZcnju novog pru~tt)g hroja. emirp = m.buffer[m.out]: II naredba C2
1\,tr\ -~:..~tCe\ pr;. ;gr~un 'li'ukturnu jl: ...,Jit.\.tn o\ un1. ()n prvo pro\·era\:a ( na;·~dba C I) da m.out = m.next(m.out); II naredba C3
if (m.out == m.next(m.next(m.in))) m.p.resume( ); II naredba C4
li Jc b<tkr prct/<til. :\k,, JCsrc·. oncb tlll nc'lliJ <u ,Lt radi. pa ide na spavanj·~- .\i-.:u hat"·5
System.out.println(emirp); II naredba C5
n ljc pr~u~dl. t '11 j~, ut:inla ~kLkL~i ~~~ ~l~tnlp~lnj.._-- \C2) i uvec'ava ou/ ( C 3) . ..-\ko
SL' our 'ad~1 ilalazi d\·:.1 rnc:-;La i-..prL--d in (C~), to ?.llJL'i dajc hiP jcd!lo i11Cstn i:-..prL'd iu 11rc

ne~q .~hJ jt~ !!Jlra \ n u vc:C~trL PoStq in = nut - 1 znaCi .. b~1fcr jc pun··. !lHJr:J hit 1 Ja je pP)-
iL'-t:daC sp~t':ao: /:lttt ~d p(~tru\:.~L· bddi nJch,d~~In n_·sunlt'. :\a kr~tjL: .'-le 'tampa t_(')l
i cik:Lh .~.._· r'tlila\ !_j:t. Slika 6-25, Paralelna ohrada koja dovodi do fatalnog utrkivanp.
"'fl

462 Poglavlje 6: Nivo opcrativnog sistema racunara 6.3 Virtuclne instrukcije za paralclnu obradu 463

rtt Nazalost, ova sema saurzi fatalnu gresku, prikazanu na slici 6-26. Setite se ua dva
I Problem ovde nastaje zato sto izmectu trenutka kada je pntrosac preuzeo in i out i
proccsa nisu sinhronizovana ida se izvrsavaju razlicitim, mozda promenljivim brzi- trcnutka kadajc zapao u san uskace proizvodac, otkriva da je in= out+ 1, pretposta-
nama. Razmolrite situaciju kada je u baferu ostao samo jedan broj, na mcstu 21, pri vlja da potrosac spava (sto jos uvek nije tacno) i salje signal za budenjc koji se gubi
cemu je in= 22, a out= 21, kao na slici 6-26(a). Proizvodac je stao na naredbi PI jer je potrosac jus uvek budan. Ovaj problem je poznat kao stanje utrkivanja (engl.
trazeCi sledeci prost broj, a potrosac je (C5) zauz.et stampanjem broja name stu 20. Po- race condition), posto uspeh metode zavisi od toga ko ce pre proveriti in i out nakon
trosac zavrsava stampanje broja, dobavlja proveru (C l) i uzima poslednji broj iz bafc- sto je pokaJ:i vac out uvecan.
ra (C2). On zatim uvecava out. U torn lrenutku i in i out imaju vrcdnost 22. Potrosac Prohkm utrkivanjaje dobro poznat. Onje u slvari toliko ozbiljan da je vise godina
stampa broj i ide na narcdbu C l, gde iz rncmorijc prcuzima in i out da bi ih uporedio, po na>tanku Javc. korporacija Sun izmenila klasu Thread i potpuno potisnula pozive
kao na slici 6-26(b ). mctodama .\"USfletui i resume jer su prcterano cestn izazivale stanje utrkivanja.
Ponudcno jc rt:Scnjc zasnovano na prograrnskom jcziku Java, ali pnsto ovde prou-
Proizvodac cavamo opcrativnc sisteme, govoricemo 0 drugom resenju koje podrbvaju brojni
Proizvodac je na P1 Proizvodac je na P1 na P5 budi
potrosac je na C5 potrosac je na C1 potrosaca na C1 opcrativni sistemi, medu njima i UNIX i XP.
99 99 , . - - - - - , 99 r----~
J
~~
6.3.3 Sinhronizovanje procesa pomocu semafora

J
~
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-
Baler
je prazan
I In~ 23- gnal za budenje posalje procesu koji se jos uvek izvrsava. Kada proces obavi posao i
In~ 22 In ~ Out ~ 22 ----1 Out~ 22-1 Prost broj ode na spavanje, a bit za naknadno hmlenjc je postavljen, proces se odmah ponovo

I
Out~ 21 Prost broj pokrece, a bit za naknadno budenje se brise. Ovaj bit radi upravo ono sto mu ime kaze
!
! U b~feru - cuva suvisan signal J:a budenje za eventualnu kasniju upotrebu.
I
U baferu je je jedan broj [ako ova metoda re!iava problem utrkivanja kada postojc samo dva procesa. ona
jedan broj j
01 I I nije dobra za opsti slucaj za n procesa knji medusobno komuniciraju jer bi mozda
~
0 0 istnvremeno trebalo smestiti in- 1 signala za budenjc. Naravno, svaki proces se moze
(a) (b) (c)
~~... opremiti san- 1 bitova za naknadno budcnje kako bi mu se omoguCilo da u unanwrn
L Slika 6-2fo. Krah mchaniLnw komunikacijc inncdu proizvodab i potrosaca. sistcrnu broji don- l, ali je to resenje prilicno rogobatno.
r~ Dijkstra (l968b) predlozio je opstije re!ienjc problema sinhronizacije paralelnih
t U is tom lrenutku, nakon S(O je potrosac prcuzeo ill i Oltl, J!i ih jos nijc uporedio, pro- procesa. Negde u mcmoriji na!aze "e nenegativne celobrnjne promenljive zvane se-
i izvodac pronalazi slcdcCi pmst broj. On ga (P3) stavlja u bafer i uvecava in u naredbi mafori. Opcrativni sistem obezbedujc dva sistemska poziva, up i down. koji rade sa

t
~-
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-
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-

t 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
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

f
~
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-
'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
~ ju vrednost 22, potrusac pada u san. Sada proizvt>ctac pronalazi nov prost broj. On
;1t;: postoji i drugi. uspavan proces. vrednost semafora se povecava za l. Uspavani pro(es
fl proverava pokazivace i nalazi daje in= 24. a out= 22: zato zakljucuje da su u bal"eru tada rnnze da zavrsi opcraciju down koja ga je privremeno zaustavila. tako sto ce se
~­ elva broja (tacno) i dajc potro~ac budan qmgrcsno). Proizvodac nastavlja da kru/.i u vratiti semafor na 0 i omoguciti i .sebi i drugorn procesu da nastave rad. Kada se :n-
~-· pctlji. lJ jcdnom trenutku on puni bafer do vrha i odlazi na spavanje. Sada oba procesa strukcija up primeni na semafor cija vrcdnost nije nula, ona jc samo povcca za l. Se-
spavaju i ncma niceg stu bi ih muglo probuditi.
e mafor u stvari prcd.stavlja brojac signala za naknadno budenjc, wku da sc uni ne gube.

li Bitno svojstvo in,trukcija kojc rade sa scmaforomjeste slcdece: kada proces zapocne

~~j

~
!!_;;
.::..:.------
464 Poglavljc 6: Nivo operativnog sistema racunara 6.3 Virtuelnc instrukcijc za paralclnu ohradu 465

instrukciju na semaforu, nijedan drugi proces ne moze da pristupi semaforu dok prvi semafor ce biti postavljen na vrcdnost l i potrosac uopste ncce biti zaustavljen. Ni u
proces ne zavrsi instrukciju ili ne bude privremeno zaustavljen zbog pokusaja da jednum slucaju se ne gubi poziv za budenje. To je, naravno, i bio nas prvenstveni cilj
izvrsi operaciju down s vrcdnoscu 0. Slika 6-27 surnarno prikazuje bitna svojstva si- kada smo uvodili semafore.
stemskih poziva up i down. 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
lnstrukcija Semafor=O Semafor>O 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
Up Semafor=semafor+ 1; Semafor =semafor +1
aka je drugi proces zaustavljen u poku- t-25 nisu ncdeljivc. U vremenskom intervalu izmedu proveravanja uslova i izvrsa-
saju da dovrsi instrukciju down na ovom vanja izabranc naredhe neki drugi proces mozc da posalje signal za hudenje.
semaforu, on to maze da uradi ida Problem sinhroniLacije proccsa je otklonjcn tako sto je dcklarisana ncdeljivost si-
nastavi s radom
stcmskih poziva up i down pompcu metoda up i down. Da bi ove operacijc bile nedelji-
Down Proces se zaustavlja sve dok drug1 proces i Semafor=semafor-1 ve, operativni sistem mora zahraniti da dva iii vise procesa istovremeno koriste sti
ne primeni na semafor operaciju up.
semafor. U najmanju ruku treha obubcditi da sc posle poziva up iii down ne dozvoli
Slika 6-27. Efekat rada scmafura. izvrsavanjc bilo kog korisnickog koda sve dok sc poziv mctode nc zavrsi. U sistemi-
ma sjednim procesorom semafori se ponckacl implemcntirajutako sto se onemoguca-
Kao sto jc rccenu. Java ima rcsenje za prcvazilazcnjc problema utrkivanja, ami vaju sistemski prekidi tokom rada semafora. Na sistemima s vise procesora taj trik ne
sada govorimo o operativnim sistcmima. Prema tome. treha nam nacin da u Javi ko- nm/.e koristiti.
ristimo scm afore jcr njih ncma ni u jcziku ni u standardnirn klasama. Prctpmtaviccmo Sinhronizovanje pomocu semaforaje tehnika koja sc moze koristili za proizvoljan
da postojc napisanc dve osnovne mctodc. up i down. kojc prcuzim~uu sistcm~J.. e po- broj proccsa. Vise procesa istuvremeno mugu da budu uspavani tokom pokusaja da
~;
zivc isl<>g imena. Pnzivajuci ovc metnde s cdobrojnim parametrima, dohijamo nacin zavr~c sistemski potiv down na istom semafmu. Kada neki proccs najzad izvrsi up nad
"
"·t
~t
za koriscenje semafora u .Java programima. tim semafurom, jcdnom od uspavanih procesa dozvoljava se da zavrsi svoj poziv down
Iff: Slika h-2X prikazuje kako sc stanje utrkivanja mole izheci kurisL'cnjem semafora. i da nastavi rad. Vredno;,t scm a fora je ponovu 0 i drugi procesi nastavljaju cla cekaju.
l~l·
Klasi 111 su dmlata dva semafura. ll\'llifuble (raspoloziv), ko.Ji na puC:etku ima ncdnllst Jcdna analogija moze da razjasni prirodu rada semafura. Zamislite kako se, u i1e-
;<i
I 00 ( kapacitL't hafera) i j1Llcd ( ispunjen ). C:ija jc vrednosL na pocetku 0. Pr<li.cvndaC: deljno popodnc, 20 udbojkaskih ekipa nadrncc'e u 10 mcccva (pruccsi) na 10 tercna,
pocinjc izvrsavanjc naredhom PI (s!ika 6-2~). a potrnsaC: naredbom C I, kau i raniJe a tu je i velika korpa (semafor) za loptc. Nazalost, postoji samo sedam lopti. U sva-
..f":
)~ Po1.ivanje metode dmcn s paramciiOill/illed trenutnu 1austavlja potrosal:ev procesclr. kumtrcnutku u korpi postoji izmedunula i scdam Jopti (semafor ima vrednost izmedu
.:
Katla proitvoctaC: pronadc SvOJ prvi pm'l broJ. on po1.iva dml"!l.., paumctrom m·uiiu- 0 i 7). Stavljanje Jopte u korpujc analogno pozivu upjcr povecava vrednost -;emafora;
/>lc, po-.;tav ljajuc'i -.;cmat"nr lli"Uilu/Jic na vrcdtlllst <!lJ. L narcdbi P5 on putiva mL't<lllu uzimanjc lopte iz korpe odgovara pozivu down jcr smanjuje njcgovu vrednost.
ups parametrom.fil/ed i semaforuj;i/edmenja \Tc:dno~,l na 1. Na taj nacin '" ns]c,b<~lld Na pocetku tumira. sa svakog terena po jcdan igraC: ide do korpc da uzmc loptu.
:;"
potrosal', koji sada n~<lLC da duvrsi svoj privremc:nu taustav ljen pu;.iv mt.:todi du•t 11. Sednmro uspdno obavlja nalog (zavrsavaju poziv down); tri igraca su primorana da
=~ j:~
U uvum trcnutku sc:maforjii/ed JC 0 i oba pmce,;a .,u aktivna .
.,~,-.

·~·,;,

·:·,. cekaju na slohodnu loptu (tj. ne uspevaju da zavrse poziv down). Njihova utakmica inc
;,~,,I Objasnirno jus jcdnum bl..t' n<btajc sLtnie utrkivanja. U odrcdenom trcnutku .1e poC:inje. Najzad, neki od drugih mcC:eva se zavrsava i lopta sc pojavljuje u korpi
in= '22. our= 21, pnltzv ndac jc n.t ;ur,~dhi Pl. a potrosac na nai·edbi C5. Potro.\:::c ( izvrsava se up). To omogucuje jcdnom od igraca koji cekaju oko korpc da uzmc lnptu
L.avr\ava nno -'to jc zapo(·cu i prclazi na narcdbu C 1 :;Jc: p<'tiva n1cltldu d{l\111 ·;a sc- (da zavrsi nezavrscn poziv down). pa njegov rnec moz.e da poC:nc. Dve prcostale igre i
mafurutn;i/lcd. koji jc pre pu;;va illlau vL:dnust 1. a pdsic ntl'g~• ima vn·dtw:-.1 iJ. Pu- dalje ne poC:inju :-.ve dclk sc u korpu ne spuste jos clve loptc. Kacla i one stignu (izvrse
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 se jos dva poziva up), poskdnjc dve igrc mogu da pucnu.
i OU. h>trosac ;tampa hroJ i 1de na nc.redbu C!. Ncpw.rcuno pre nc!!O ~to putms<tC:· pn-
public class m {
7.PV<' met< H.lu d, •1;·n. pruizvodac prunahu.1 sledeci pru't hro.J i br.ccJ. jcunu za drugum.
final public static int BUF_SIZE= 100; II kapacitet baiera je 100 (0 to 99)
izvr\ava narcdbe P2, P.i i P..f. final public static long MAX_ PRIME= 1OOOOOOOOOOOL; II stani ovde
l: ovum trenutku semar<Jt)ii/n/ ima vrcdno~t 0. Pn1izvmlac >c: spretua d ..J pnz,wc public static int in= 0, out= 0; II pokazivaci na podatke
up da hi tu vreJnost povecao, a pntn1,;ac :-.e :;;pr'"ma da pt1;:ove nKtudu du~e1:. i\J...u pu- publtc static long butter[]= new long[BUF_SIZE]; II prosti brojevi se ovde cuvaju
trD~~~C: i1.vrsi svoju iJb!lllkciju, un cc biti privrcmell'' Laust~tvljcn -.,ve duk :ca pm-
i,:vndac ne lJS!uh<>di ip<>LJvajuc'i elf'!. Ako proizvndal' prvi izvr•;j :-.vuju instr<1L·ijil,
466 Poglavlje 6: Nivo operativnog sistema racunara 6.4 Primeri operativnih sistema 467

public static producer p; II ime proizvodaca (producer)


public static consumer c;
6.4 PRIMERI OPERA TIVNIH SISTEMA
II ime potrosaca (consumer)
public static int filled = 0, available = 100; II semafori 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
public static void main( String args[ ]){ II glavna klasa
p =new producer();
koji se za njih koriste. Za Pentium 4 smo izabrali Windows XP (u nastavku, skraceno:
II napravi proizvodac
c =new consumer(); II napravi potrosac
XPJ, a za UltraSPARC lii- UNIX. Posto je UNIXjednostavniji i po mnogo cemu ele-
p.start( ); II pokreni proizvodac gantniji operativni sistem, pocecemo od njega. UNIX je. takode, prvi napravljen i im-
c.start( ); II pokreni potrosac plementiran, i mnogo je uticao na XP. tako da je ovakav redoslcd izlaganja opravdan.

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);}
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
class producer extends Thread{ II klasa objekta proizvodac
native void up(int s); native void down(int s);
sistemske pozive.
II melode za rad sa semaforima
public void run( ) { II k6d proizvodaca
long prime = 2; II privremena promenljiva UNIX
UN!Xje razvijcn u Bclovimlaboratorijama pocetkom scdamdesctih godina. Prvu
while (prime< m.MAX_PRIME) {
verziju za mini racunar PDP-7 u asembleru je napisao Ken Thompson. Ubrzo je usle-
prime= next_prime(prime); II naredba P1
down(m.available);
dila verzija za PDP-ll, napisana na novom jeziku. zvanom C. koji je smislio i imple-
II naredba P2
m.buffer[m.in] =prime; II naredba P3 mentirao Dennis Ritchie. Godinc 1974, Ritchie jc s kolegom Kenom Thompsonom
m.in = m.next(m.in); II naredba P4 objavio clanak u komc su UNIX-u udareni temelji (Ritchie i Thompson. 1974). Za rad
up(m.filled): II naredba P5 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
private long next_prime(long prime){ ... }II funkcija koja izracunava sledeci pros! broj
bilo dozvoljeno da ulazi u poslove s racunarima. on a je bcz problema i po umerenoj
ccni licencirala UNIX univerzitetima.
class consumer extends Thread{ II klasa objekta petrosae Jedna od koincidencija koje cesto oblikuju istoriju bilaje to sto se racunar PDP-11
native void up(int s); native void down(int s): II metode za rad sa semaforima nalazio na katedrama za racunarstvo skoro svih univerziteta i sto su operativne sistc-
public void run( ) { II kod potrosaca me kuji ;,u isli uz njcga. i profesori i studenti jednako smatrali grozomornim. UNiX
long emirp = 2; II privremena promenljiva 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
while (emirp < m.MAX_PRIME) {
Sll oni sa uzivanjem i ciniJi.
down(m.filled); II naredba C1
emirp = m.buffer[m.out];
Jedan od mnogih univerziteta koji su odmah prihvatili UNIX bio jc i Univerzitet
II naredba C2
m.out = m.next(m.out); II naredba C3 Kalifornije u Berkliju. Pus to jc na raspolaganju bio potpun izvorni kCld. na Berkliju su
up(m.available): II naredba C4 mogli da sustinski innt:ne ,;istem. Neke od najvaznijih izmena su bile prikljucak za
~I
System.out.println(emirp); II naredba C5 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).

.i
E~
~~~
Slika 6-28. Paralelna ohrada sa semal'orima. 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

1
~;,;
~j
;j~' ~
potpuno nekompmibilne verzije UNIX-a: Berkeley UNIX i System V. Ovaj rascep u
~j:
j
~

~
~
468 Poglavljc 6: Nivo opcrativnog sistema racunara 6.4 Primcri opcrativnih sistema 469

svetu UNIX-a. zajedno s nepostojanjcm standarda za formate binarnih programa. u Kategorija Neki primeri
vclikoj rneri je urnanjio komcn:ijalni uspeh UNIX-a, posto proizvodaci nisu mogli da ' --

, Rad s datotekama Otvaranje, Citanje, upisivanje, zakljucavanje


pisu i pakuju programe za UNIX ocekujuci da rade na svakom UNIX sistemu (kao sto
· Rad s direktorijumima Pravljenje i brisanje; premestanje datoteka izmedu direktorijuma
sc rutinski radilo za MS-DOS). Posle mnogo trvenja, Odbor za standarde instituta
IEEE napravio jc standard POSIX (Portable Operating System-IX- prcnosivi opc-
Rad s procesima Stvaranje, zavrsavanje, pracenje, signaliziranje -I .

rativni sistem-IX), pozna! i po oznaci odguvarajuceg IEEE standarda- P 1003. On jc , Ra_d slllemorijorT1 • Delj~~~~~~~~ije izrTl_~du p~o~esa~a~ita stra~a- -- - ____ j
k:L,nije postao medunarodni standard. Preuzimanje/ Preuzimanje identifikatora korisnika, grupe i procesa; zadavanJe '
SJm standard ima mnogo dclova, a svaki deo pokriva drugo podrucje UNIX-a. zadavanje parametara prioriteta
------- ---------- ------------

Pni dcu, PlO<n.l, definist: sistemske pozivc; drugi deo, Pl003.2, dcfini~c osnovne Datum i vreme Zadavanje vremena pristupanja datotekama; koriscenje tajmera;
, izvrsavanje profila
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 Rad u mrezi f Usp-;-~;vlj~~je/prihvata~j~ ~ze; sla~je/primanJe poruka
_; __________L __ -------- ------- - --

za citanje i upisivanje datoteka. pravljenjc novih proccsa itd. Skoro svi UNIX sistcrni Razno : Omogucavanje obracunavanja; rad s kvotama na disku; ponovno
--' pokretanje sistema
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 Slika 6-29. Kratak prcglcd sistetmkih poziva u UNIX-u.
i/ili Berkeley UNIX-u. Tako skup po pravilu rastc do 200 sistemskih poziva.
Godine 19~7, au tor ove knjige nbjavio izvorni k6d za malu verziju UNIX-a, zvanu Takctv pristup je ccsto stvarao dupli posao, pusto rnnogi upravljacki programi monju
l\!IN!X. nam..:njcnu univerzitetima (Tanenbaum, 1987). Jcdan od studenata koji je i upravljati tnkom izvrsavanja, obratlivati grdke, voditi racuna o prioritetima, razdva-
proucavao MINIX na svom univezitetuu Hclsinkiju i koristio ga na svom kucnom PC jati podatkc i upravljanje itd. Ovo zapazanjc navelo je Dennisa Ritchicja da raz\ije
racunaru bio je Linus Torvalds. Posto jc dobro upoznao MINIX. Tmvalds je odlucio strukturu tokova (engl. streams) kako bi se upravljacki programi mugli pisati modu-
,, ~ da napise sop~tveni klon 1\llNIX-a i nazvao ga Linux. Linux je postao veoma popu- larno. Uz takvu strukturu, moguce je uspostaviti dvosmemu vew izmedu korisnidog
laran. l ivllNIX i Linux po~tuju standard, i skom sve stou ovum poglavlju kazcrno o procesa i hardverskog urcdaja, i u nju ubaciti jed an iii vise modula. Kurisnicki pruccs
UNJX-u odnosi se i na njih. osim ako naglasimo drugacije. Iako se sve ove verzijc usmt:rcl\a podatke u tok, gde ih svaki mudul na pu!u obraduje i transformisc, sve ciok
UNIX-a interno veoma razlikuju. u ovom poglavlju cemo uglavnom razmatrati okru- ne stignu do hard\er<L Ulazni podaci se obraduJU na obnnl! naCin.
~' /.cnje njihovih sistemskih poziva. koje u svim slucajevima predstavlja (skoro) isti
nadskup instrukcija. Korisnibi
Oper<ttivni sistem Dt UltraSPARC Ill zasniva se na Systemu Vi zovc se Solaris. j Komandno okruZenJe I r Konsr1Cki program -~ reZ1r.1
rada
On podr?.ava i mnoge siskmske pozivc Berkeley UNIX-a.
Pregkd sistemskih poziva u Solarisu, grubo svrstan po kategorijama. prikazan je
t t
lnterfejs za sisternsl<.e pozive
na slici 6-29. Sistemski pozivi za rad s datotckama i direktorijumima najvece sui naj-
Sistem datoteka Rad s procesirna
vazni_lc kategorije. Vee ina ovih poziva do laze iz standarda PI ()(l.1.l. Snmncrnn vcliki Rezim
deo ostalih poziva potiCu iz Systema V. I Kes blokova
I I IPC
I r Rasporedivanje I
'-·
jezgra
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 Upravljacki programi za uredaje I Signali
i [Rad s me'Tlonjoml

prikljucka na mrciu. Pojamje stvnren po uzoru na zidnu telefonsku uticnieu sa cctiri


Hardver
no/.icc. UNIX proces mo7.c cia napravi uticnicu. da se prikljuci na nju ida prcko nje
~---1
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- Slika 6-30. Struktura tipicnog u·.;tx <i.\lc:na.
nologija rada u mrel.i funkcionisc u UNIX-u vee dccenipma. gdc je sazrcla i stabili-
zovalc~ se. vcliki broj servera na Intcrnctu koristi UNIX. lznad uprav ljackih programa za ureuaie nalazi 'e si:-.tem dato!eka !engl. jiie
Postu postoji vise implementat:ija UNIX-a, tesko je nesto vise rcci o strukturi opc- srstc111). On rukuje imenima d<!ll)kka. Jirektt>l·ijumima. duJeijujc lJJ,Ji-:LJ\e diska. po-
j;,
rativnog si:-.tema jer je svaka implerncntacija pomalo drugacija od ostalih. Meclutim, desava za~titu i slicno. Deo sistema datuteka jc i kes blokova (eno:L hiud me he): un
siika 6-30 ugJavnom oclgovara vccini implementaCiJ<L U dnu je shlj upravljackih pro- l:uva blnkove pudataka koji su pnslednji uc1tani ~; di,J..a. ;:a 'lucaJ da ubrzo r,mo-,·o ;a-
grama (engl. drivers) ,ca urcclaje koji razdvaja sistem datoteka od hardvera. Prvuhitnn trebaju. Tukom godina su kori;ceni ra;liciti si,teini LLl:Pteka. ukljucuju..'i i b1·1:i
je svaki upravljacki program pisan kao Lasebna celin::t, potpuno nez.avisna od ostalih. Berkeley sistcm datutcka (McKu,ic:k et ~d .. !98-+:. ka<1 1 ,;stcme Ll<ttokLt!a,mJv~nc
na dnt:\ nicirna I Rt,scnblum i Ou:-.tcrhout, I 'Nl. teo Seltzer c:t ,ti.. 1993 ).
l:tlll"l'l"

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

~:: ', MS-DOS - operativni sistem koji je i dalje upravljao racunarom. Svi programi su se na taj nacin pretvorili u (mnogo skuplju) serversku iii Enterprise vcrziju. 0 razlikama
izvrsavali u istom adresnom prostoru i grcska u bilo kom od njih moglajc da zaglavi izmcdu ovih vcrzija vise necemo govoriti.
:· citav sistem. 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
~I 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
I~
1

~
.;.:
,~ I

t , _ ,- - - - - - - -
,_
...-i""'J Poglavlje 6: Nivo operativnog sistema racunara 6.4 Primeri uperativnih sistema 473

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

\'...
~

~
..____ -
474 Poglavlje 6: Nivo operativnog sistema racunara 6.4 Primeri operativnih sistema 475

XP se moze podesiti za rad s vise sistema datoteka i u tom slucaju sistem za kesi- Programi za Windows koriste Win32 funkcije i poziv<l:iu sistem preko podsisterna
ranje ih sve opsluzuje. Kada je potreban blok podataka, on se zahteva od sistema za Win32. Podsistem Win32 prihvata pozive Win32 funkcija (pogledajte dalje) i konsti
kesiranje. Ako blok ne postoji u kesu, sistem za kesiranje ga trazi od odgovarajuc'eg bibliotecki modul sistcmskog interfcjsa (u stvari, DLL datoteku- pogledajte pofla-
sistema datoteka. Posto se datoteke mogu kopirati u adresne prostore procesa, sistcm vlje 7) da bi generisao neophodne prave XP-ove sistemske pozive koji se zatim
za kesiranjc mora da saraduje sa sistemom virtuelne mcmorije kako bi postigao od- izvrsavaju. Na ovaj naCin se u XP-u izvode sistemski pozivi.
govarajucu saglasnost. Posto smo sc ukratko osvrnuli na strukturu operativnog sistema Windows XP,
Sistem za rad s virtuelnom memorijom (engl. virtual memory manager) imple- okrenimo se nasoj glavnoj temi- uslugama koje on ohezbeduje. Ovaj interfejs je pro-
mentira stranicnu (na zahtev) arhitekturu virtuelne memorije operativnog sistema XP. gramerova glavna veza sa sistemom. Nazalost, Microsoft nikada nije objavio potrun
On upravlja prcslikavanjem virtuclnih stranica u fizicke okvire. Prerna tome, on spro- spisak XP-ovih sisternskih poziva, a i menja ga od vcrzije do verzije. U takvim okoi:Jo-
vodi pravila zastite i obezbeduje da svaki proces dobije pristup samo onim stranicama stima, pisanje programa koji direktno pozivaju operativni sistem gotovo je nemoguc'e.
koje pripadaju njcgovom adresnom prostoru (osim u posebnim okolnostima). On Microsoft je, medutim, detinisao i objavio skup poziva zvan Win32 API (Appli-
obraduje i sistemskc pozive koji se ticu virtuclne mcmorije. cation Programming Interface - interfcjs za programiranje aplikadja). To su bi-
Sistem za rad s procesima i programskim nitima (engl. process and thread ma- bliotecke procedure koje iii pozivaju sistem da bi obavile zahtevani posao iii gt u
nager) izme(tu ostalog stvara i unistava objekte. On se vise havi mehanizmima po- izvesnim slucajevima direktno obavljaju unutar korisnickog prostora, odnosno u pod-
moc'u kojih se njima upravlja nego pravilima njihovog koriscenja. sistcmu Win32. Pozivi interfejsu Win32 API ne menjaju se od verzije do verzije k:.ko
Rcferentni hczbcdnosni nadzornik (engl. security reference monitor) jcsle si- hi sc programeri ohrabrili da ga koriste. Medutim, postoje i XP-ovi API pozivi koj. sc
stem koji primenjuje slozena hezhednosna pravila operativnog sistema XP, navedena rnogu menjati od jedne do druge verzije opcrativnog sistema. Iako nisu svi Wir.32
u poglavlju 2 Narandzaste knjige Americkog ministarstva odbrane. NaramLhtsla knji- API pozivi istovremeno i XP sistemski pozivi, bolje je drzati se Win32 API pozivajer
ga sadrzi mnoga pravila koja potencijalni sistem mora da ispuni, pocevsi od prove- su dobro dokumcntovani i ne menjaju se. Kada je Windows prenet na 64-hitne racu-
ravanja idcntiteta prilikom prijavljivanja, preko nacina upravljanja pristupom. pa do nare, Microsoft je promenio ime modula Win32 tako da obuhvati i 32-bitnu i 64-hi nu
ohavcze da sc virtuelne stranice moraju isprazniti pre nego sto se ponovo upotrebe. verziju, ali je za nase ciljeve dovoljno da posmatramo samo 32-bitnu verziju.
Interfcjs za gralicke urcdajc (engl. graphics device intetj£1ce) radi sa slikama PiloLolija interfc:jsa Win32 API polpuno se razlikuje od UNIX-ove filozotije (]
,...
l~ ~- koje se salju monitoru i stampacima. On obczbeduje sistcmske pozive pomm'u kojih ovom drugom slucaju. svi sistemski pozivi su javno poznati i obrazuju interfejs tni-
korisnicki programi mogu da ispisuju podatke na monitoru i stampacu na nacin kuji nimalne velicine: uklanjanje samo jednog poziva primetno bi umanjilo funkcional-
ne zavisi od urcdaja. On obuhvata i hardvcrskc upravljackc programe za graficki is- no~t operativnog sistema. Win32 filowtija ide na to da se stvori veoma iscrpan

;:.,_;
pis. U vcrzijarna XP-a pre verzije 4.0, ovaj intcrfcjs sc nalazio u korisnickorn pro- intcrfejs ll komc se isti posao lllOZC uraditi na tri iii cetiri nacina i ll koji Sll ukijuctne
storu. ali su perforrnanse bile rcuocaravajuc'e, pa gajc M icrusoft prcbacio u jezgro da funkcije koje nikako ne bi trebalo da budu (a i nisu) sistemski pozivi (npr. API por.iv
bi uhrzao njcgov rad. Modul Win32 takmk obradujc vec'inu sistcmskih poziva. On je z.a kopiranje citave datoteke).
najpre bio u korisnickom prostoru, ali je ka:.;nijc prebacen u jez.gru zhog poboljsanja J'l,lm,gi Win32 API puLivi prave objckte jc;:gra jedne iii druge vrste, medu koji:na
performansi. su cLttokkc: procesi. programske niti, kanali itd. Svaki poziv koji pravi ohjekatjezgra
Na vrhu izvrsnog dela nalazi se tanak sloj sistemskih usluga (engl. svstm; ser- vraca po;iv<1ncu rczultat u ohliku identifikatora objekta (engl. handle). Taj se iden-
~' '
vices). Njcgovct uloga jc da bude interfejs ka irvrsnom delu. On prihvata pravc XP- tifikatur zatim mo/.e koristiti za obavljanje operacija nad objektom. ldentitikatori su
;: -ove sisternske pm:ive i poziva druge dclovc izvrsnug dela t:a njihovo izvrsenjc. spccit!cni za proces koji je napravio objekat. Oni sene mogu direktno proslediti elm-
lzvan jezgra sc nalazc korisnicki programi i podsistem okruzcnja. Podsistcm gum procesu na korisc'enjc (kao sto se ni dcskriptori datoteka u UNIX-u ne mogu pro-
okruzcnja (engl. em·imn111enwl s~thsystclll) pustoji zato stcJ se korisnickim prugramirna slediti drug om procesu i tamo korstiti). Medutim, u izvcsnim okolnostima moguce je
ne dopusta da dircktno pozivaju sistcm (iako oni to tehnicki mogu Ja urade). vee llVclJ duplirati identitikator i kopiju proslediti drugim procesima na zastic'en nacin. 01110-
podsistcm generi~c skup funkcip prcko kojih oni to ucine. Prvohitno Sll postujala tri guc'uJUCi im tako knntrolisan pristup ohjektima kojc nisu sami napravili. Svakom ob-
podsistema okru/.enja. Win32 (La prugrame pisane za NT, Windows 2000. XP iii cak za jekiu mo2e -.e pridruziti hezbednosni deskriptor koji detaljno opisuje ko smc cia
Windows 95/<JX/1\IE). POSIX (za prencte prograrne pi sane za UNIX) i OS/2 (za prenete izvudi kakvc operacije nad objektom.
pmgrame pisane za OS/2). Od tri podsistcma podrzan je samo Win32. Mellutim. sada Za XP se ponekad kaz.e daje objektno orijentisanjer se u njemu objektimajczgra
postoji nov modul Services za UNIX koji obezheltujc neslll podrskc: i za UNIX. 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
'

476 Poglavlje 6: Nivo operativnog sistema racunara 6A Primeri operativnih sistema 477
."

'

I!'_·
lnterfejs Win32 APL uz ndto izuzetaka, postoji i za Windows 95/98/ME (kao i za Za Berkeley UNIX. prcthodni opis (na zahtev stranicena virtuelna memorija) skoro
' Windows CE, operativni sistem elektronskih uret!aja siroke potrosnje). Na primer, je svc sto bi sc o tome moglo reci. Medutim. System V (a i Solaris) korisnicima nude
l'' Windows 95/98 su sistcmi bez ikakvog ohezbedenja, pa na njima API pozivi koji se vise mog:ucnosti za slo?.cnijc upravljanje vinue!nom memorijom. Na1vaznije je to sto
~'·
'¥• ticu hezbednosti vracaju samo kodove grdaka. lsto tako, za imena datoteka u sistemu proccs moze da preslika (deo) datotcke u deo svog adresnog prostora. Na primer. ako se
~-~: XP koristi sc skup Unicode znakova koji ne postoje u sistemima Windows 95/08. datoteka od 12 KB preslika na virtuelnu adresu 1-IAK. ocitavanjcm reci na aclresi l.:t4
J Postoje i razlike u parametrima koji se prosleduju nekim pozivima API funkcija. U si- KB dobice se prva rec datuteke. Na ovaj nacin s.: ulazno-izlazne operacije s datotekama
i: stemu XP su. na primer, sve ekranske komdinate u grafickim funkcijama pravi 32-bit- mogu izvuditi bez pozivanja sistema. Postn neke datoteke mogu biti vece od prostora
~
~ ni hrojevi; u sistemima Windows 95/9:-\ koriste se samo 16 najmanje znacajnih bitova virtuelnih adresa, umesto cele clatoteke mo,/c: sc: prcslikati samo njen cleo. Za pre-

F.· (zbog kompatibilnosti s Windowsom 3.1 ). Postojanje interfcjsa Win32 API za vise slikavanje je potrebno najpre otvoriti datntcku da hi sc dubio njen deskriptor dd koji se
( operativnih sistema olaksava prcnosenje programa s jednog sistema na drugi, ali tada koristi za identirikovanje datutekc koja se preslikava. Zatim proces generise poziv
."~~
~-':
i istice cinjenicu daje on ponesto labavije vezan sa stvarnim sistemskim pozivirna. padr ~ mmap(virtuelna_adresa~ duzina, nstita, indikatori, dd, rastojanje)

,!,
kuji preslikava duzinu datoteke (hmj bajtova) pocc:vsi od rastojanja u datoteci u pro-
~1 . 6.4.2 Primeri virtuelne memorije stor virtuelnih adresa pucev.~i od virrul'inl'_wiresc. Alternativno, parametar indikatori
U ovom odeljku pozabavicemo se virtuelnom mernorijom UNIX-a i Windowsa muze se podesiti tako cla od _,istcrna zatra/.i virtuelnu adresu, koja se tada vraca kao
XP. Sa stanovista programcra, oni su prilicno slicni. padr. Preslikano podrucjc mura obuhvatati ceo broj straniea poravnatih na granici
stranicc. Paramctmm ~u.\-tira mozc se ;.adati bilo koja kombinacija dozvola za citanje,
Virtuelna memorija u operativnom sistemu UNIX upisivanje i izvrsavanje. Preslikavanjc se kasnije moze ponistiti sistemskim pozivom
unrnap.
Memorijski mudcl UNIX -a jc jednmtavan. Svaki proces ima tri segmenta: za kod,
Vise prncesa ,e istovrcmenu mu/.e preslikavati u istu clatoteku. Postoje dve opcijc
za podatke i za stek (slika fJ-]2). Na racunaru -,jcdinstvcnim. linearnim adresnim pro-
1a njeno deljcnJe. !\lugu da sc dele sve stranice. tako da ono sto jedan proces upisc u
storom, k<'Jd se u principu smdta pri dnu mcmorije, a za njim slcde pmlaci. Stek sc po-
datotcku vide -;vi ostali proce-;i. Ova opcija ohczbecluje visokopropusnu komunika-
stavlja u vrh mcmorijc. VL·Iil'inct koda jc tihna, ali i podaci i stck mugu da rastu- u
ciJU illncdu pwccsa. Druga mogucnost je da se stranice dele sve dok ih neki proces ne
suprotnim smerovima. Ovakav model se lako implementira na skoro svak,)!ll ral'u-
izmcni. Mc:ltutim. cim ncki proces pokusa cia ndto upise u stranicu. nastaje grdka
naru i taj model koristi Solaris.
tbog naru;avanp za~tite i ,,perativni sistem procesu daje svoju privatnu k,Jpiju stra-
j' nicc koju mole ,Juhodnu d;1 incnp. Ovakvo gcnerisanje kopije po upisivanju (engl.
;-"' Adresa
~:; <'Of'\ on HTite) k,,risti St' kadajc svakom od vise istovremenih procesa potrebno stvo-

MFFFFFI'f~'l riti ilu::iju da ,c sanw un pr·.:,Jikctva u datnteku.

Virtueina memorija operatinwg sistema 'Windows XP


<'·
!, I \' \\ in,h>w:,r! XI' :>\:lki kt•r·isnicki proces ima sopstvcni prostor virtuclnih adresa.
,, Vinucl!1c ad:"C\C 'li duJ,in-c 32 hila. tako da svakum procesu pripada 4GB prostc•ra.
D(lnla ~ C1B 'ill rercrvisan;t /a k,·,d i podatke. dok gornja 2 GR omogucuju (ogranicc-
K6d
0 '-----' nol pri.stupanj.: 'i~cawriir 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
Slika 6-32. AUre:-:ni pro,~tur jcdw)g prUl.-TSa u L::"ifX-u.
aLb:-;a 't1;11:il'i sc :1a nhk·•. s t~k,nom v.:lil'inom stranice (4 KB na Pentiumu 41.
S\·aLt vinucln:t stranic:.t !lli'Le hiti slnbudna, re;crvisana iii popunjena. Slobodna
Stavi~e. uJ...oliku racunar podrzava stranicenic. citav adrv;ni ;xostor muzc se pllde-
stranica 'iL' trenutnP nc J.;,Jri,ti 1 njeno referenciranje generi;e g:rdku promasaja stra-
liti na straniL·e. ada korisnicki programi za to i ne lne0u. Oni c'e jc·dinu primetiti de! im
ni·:l'. i\:adet ,,c pruc·l's pokr·nc. S\ c njcgmc otranice su slobudne svc dok se program i
sc nudi prustor kojije v.cci od fizickc: rnenwrije racunara. L:0lJX si,tcmi k(l1i nc pmlrb-
p,iccmi pod:tci nc prcslikaju crnj·.:guv adrt:sni prostor. Pusto se k6d ili podaci preslibju
vaju straniccnje uglavnom razmenjuju cit,l\e proc:c:sc izmcdu mcmPrijc i diska k<Jko hi
11 .trar!icu. \.::1/.e se daie Dn:t popunjena. Referenca na popunjenu stranicu preslikava
proizvnlpwm broju procesa omogucili da ,;e izvrsa\ aJU u po•k i ;enum vn~menu.
SC p<>llHX'll r,ll·d·,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.
478 Poglavlje 6: Nivo operativnog sistema racunara 6.-1 Pdmcri upcrativnih sistema 479
f,
I~

,,
i~'
stvara se greska promasivanja i operativni sistem pronalazi stranicu na disku odakle je API funkcija · Sta radi
.ir
•r ucitava. Virtuelna stranica moze da bude i rezervisana, sto znaci da nije na raspo-
:, VirtuaiAIIoc [ Rezerviselil~opunjii_v_af:J~(jrucje -j
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 LVirt~aiFree IOsloba~a ~ip~zni _PO_d_r_ll_cj~ __ _ _ .. __ _ _ _ __
1
I ~/irtuaiProtect_ ; Menja pristupne dozvole (Citanje/upisivanje/izvrsavanje) za podrucjEJ -~
i izvrsiva. Gornja 64 KB i donja 64 KB memorije uvek su slobodni da bi mogli da ulo-

~
11. V1rtuaiOuery i Vraca status podruCJa
ve grdke pokazivaca (neinicijalizovani pokazivaci cesto imaju vrednost 0 ili - I). 1

r ------------,--- ---------- i
1

' ·V -.-

Svaka popunjena stranica ima svoju skrivenu kopiju (engl. sluulow page) na disku ! Virtuallock 1 Sadrzaj podrucja i':ini rezidentnim (onemogucava njegovo stranlcenJe)

I
-- ---,- --------- .. ·-·-- -------- _,_ -------- _,____ -1
1

gde se cuva kada sene nalazi u glavnoJ memoriji. Slobodne i rezervisanc stranice ne- VirtuaiUnlock 1 Omoguc!vaponovo uo~icaj~no ~t~~rlic~njEJ_Podrucja _ __ _ ·-· j
m;~ju skrivene kopije, tako da njihovo refcrenciranje izaziva gresku promasivanja (si- CreateFileMapping i Pravi objekat za preslikavanje datoteke i (opciono) dodeljuje mu ime
stem ne muzc da unese stranicu s diska ako je tamo nema). Skrivene stranice na disku
•t rasporeLtene su u okviru jedne iii vise datoteka sa stranicama. Operativni sistem vodi
MapViewOfFile
UnmapViewOfFile
I Preslikava datoteku (iii njen deo) u adresni prostor
Uklanja prestikanu datoteku iz adresnog prostora
~· racuna o tome koja se virtuelna stranica preslikava u koji deo (koje) datoteke sa stra-
! OpenFileMapping Otvara prethodno napravljen objekat za preslikavanje datoteke
~ nicama. 11'.\T~Ila binarna datoteka prograrna sadrzi skrivcne stranice samo za njegov
~ izvrsni deo: za stranice s podaeima koriste se specijalne datoteke sa stranicarna. Slika 6-33. Glavnc API funkcijc La rad s virtuclnom mcmorijom u Windowsu XP

I~
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
Poslcdnje cctiri navcdene API funkcijc koriste se za rad s datotekama preslikanirn
~
u memoriju. Da bi se prcslikaia datoteka, prvo se funkcijom CreateFileMapping mora
t virtuelnih adresa. mo7e joj se pristupati kao svakom drugom podatku u memoriji.
r napraviti objekat za prcslikavanJe datotekc.
~ Datoteke preslikane u memoriju implementiraju se na isti nacin kao i druge po-
Ova funkcija vraca idcntil1kator objekta za preslikavanje datoteke i opciono unosi
~ punjcne stranicc, osim ;to skri vene stranice mogu da se nahue u datoteci na disku
~· njegovo ime u sistem datotcka kako bi ga mogao koristiti drugi proccs. Sledece dve
f' umesto u datotcci sa stranicama. Zhog toga, kada se datoteka preslika, njena verzija
funkcijc prcslikavaju datoteke. odnosno ponistavaju njihovo preslikavanje. Poslednju
b u memor-iji ne mora da ostanc identicna njenoj verziji na disku (jer je u prostoru vir-
' runkciju moze da iskoristi proces da bi se preslikao ll datotcku u koju se vee preslika-
,.
~:·1 tue! nih adresa nesto moglo biti i menjano). Medutim, kada se preslikavanje datoteke
H va neki drugi proccs. Na ovaj nacin, dva iii vise procesa mugu uzajamno cla dele svoja
ponisti iii se ona izricito ubrisc, ver.(ija na disku sc prethodno azurira.
podrucja adrcsnog prostora.
·,, XP dopusta da se dva iii vise pmcesa istovrcmcno prcslikavaju u istu datoteku.
Navcdene API funkcijc suosnovne -na njima se gradi citav sistem upravljanja vir-
~t
mo?da pristupajuci njenirn razlicitim virtuelnim adresama_ C'itajuci i upisujuL'i memo-
·~ tuclrwm memorijum. Na primer, postoje API funkcije pomocu kojih se mcmorija moze
?~. rijske reci, procesi mogu rneL1usobno da komuniciraju ida razmcnjuju poclatke vrlo vc-
po potrebi dinarnicki dodcljivati strukturama podataka. Takva privremena memorijska
likom hrzinom. posto pri takvoj razmeni nema kopiranja. Raziiciti procesi mogu da
z; skladista (engl. heat"·) koristc se z.a cuvanje struktura podataka koje se dinamicki stvar-
imaju r<ulicite pristupne doivnle. Posto svi procesi koji koriste prcslikanu datotcku
f; CJju i hrisu. Automarski mehanizam za ciscenjc memorije zaobiiazi privremcna skla-
M dele iste stranice, izmene kojc uncsc jeclan proces mimah su vidijive svirn ostalim pro-
; dista. pa korisnik c:ksplicitno treba da oslobodi te hlokove memorije 'kada sc vise ne
~-'
r.i cesirna, cak i pre nego sto se azurira odgovarajuca datotcka na disku.
~··
koristc. Koriscc:nje privremenih skladista (dinamicke memorije) u Windowsu XP slic-
~!; Win32 API sadrzi vise funkcija pomocu kojih proces mo/e da upravlja ..;vojom ,·ir-
no je 1--uriscenju funkcijc malloc u UNrX sistcmirna, osim sto tamo moze biti vise skla-
tuelnom memorijom. Najvaznije od ovih funkcija navedene su na slici 6-33. Sve radc
di;ta s kujirna se naza, isno racli.
nad jednom ili nad vise uzastopnih stranica u prostoru virtuelnih adresa_
Prve cetiri API funkcije ja.snc su same po scbi. Slcdee~ dve omogucuju proccsu da
.. zamrznc"' izvestan broj stranica u m~moriji tako da se ne mugu ponistiti. kao i Ja ih 6.4.3 Primeri vil·tuelnih ulazno-izlaznih operacija
naknadno ,.odmrzne". Ovu mogucnost mogu. na primer, isknristiti programi koji racie Osnovna uloga o.;vakog operati\ nog sistema je da pruza us luge korisnickim pro-
u reainom vremenu. Sarnu prugrami 1--oji se izvdavaju u ime admilllstratora mugu da gr~tmima: to su n~:jcdce ulazrlll-iL.lazne usluge kao Sill su citanje datotcka i upisivanje
zamrzavaju stranicc u menwriji, a postuji i granica kDju postavlja opcrativni sistem poLL<taka u niih. l_)N!X i XP nude sirok raspon ulazno-iLlaLnih usluga korisnickim
kada ovakvi proccsi postanu previse gramzivi. lakn to nijc naVL'ck:no na slici 11-33, XP prngr~trnima. Za \ccrnu si'itemskih funkcija u UNIX-u, XP ima ekvivalentne funkci-
ima i API funkcije kcJje proL·esu unwgu(avaju da pri,tupi virtuelnuj memoriji drugog jc, a! i Dhrnuln ne stoj i JCr XP ima mnogo vise funkcip i svaka od njih je mnogo slozc-
~-
procesa nad kojim mu je data kontrola (ndnosnu, ciji id~ntitH,ator ima).
nija nego odguvarajuca funkcija u UNIX-u.

ii
~;
'i·
~~
w
l~;
-d~1
Poglavljc 6: Nivo opcrativnog sistema rai'unara 6.4 Primcri opcrativnih sistema 481
480

Virtuelnc ulazno-izlazne operacije u UNIX-u Funkcija stat vraca informacije o datoteci, ukljucujuCi njenu velicinu, vreme pc•-
slednjcg pristupanja, vlasnika i dr. Fukcijom chmod mcnja sc nacin zastitc datotekc ua
Veliki Jeo popularnosti UNIX sistemi duguJu svojoj jednostavnosti koja je, opel,
bi se. na primer, omogucilo ili zahranilo korisnicima koji nisu vlasnici datoteke daje
dircktan rczultat organizacije sistema datoteka. Obicna datotekaje linearan niz bajtova
citaju. Na kraju. funkcijom fcntl s datotckom se mogu izvoditi razlicite opcracije (npr.
cija se Juzina moze kretati od 0 do maksimalno 2 32 - l. Operativni sistem Jatotekama
zakljucavanje i otkljucavanje).
nc pripisujc strukturu zapisa, mada mnogi korisnicki programi posmatraju tekstualne
Slika 6-35 prikazujc kako rack glavne funkcije ta Dianw-iLiaznc opcracije s dato-
Jatoteke kao ni1. rcdova, od kojih se svaki zavrsava znakom za prclazak u slcdeci red.
tekama. Prikazani k6d je krajnje svcden i ne obuhvata ncophodnu proveru gresab.
Svakoj otvorenoj datoteci pridruzcn jc pukazivac na sledeci bajt koji tn:ba proci-
~' Pre nego stc1 ude u petlju, program otvara postojecu llalntcku dora i pravi novu dato-
tati iii upisati. Sistemskc funkcije read i write citaju i upisuju podatke od tacke u dato-
,,~.
teku neHf Svaka funkcija vraca cleskriptor datoteL: inid. •)dnosno outfit. Drugi pan-
teci na koju uka1.uje poka;.ivac. Ohc funkcije posle obavljene operacije pomcraju
metar u ove clve funkcije je 1.astitni bit koji nalazc: da prvu datotcku lreba citati, au
!mY pokazivac unapred ~:a hroj prenctih hajtuva. Mcdutim, datotekama sc moze pristupati
drugu upisivati. Obe funkcijc vracaju Jeskriplor datPtcke. t\ko sc funkcije open ili
•' ina proi~:volj;m nacin tako sto se poLt~:ivacu datotcke zada odrcdena vrcdnost.
~;
creat ne zavrse uspdno, vraca se negativan dcskriptor datotckc.
Osim obicnih datoteka, operativni sistcm UNIX podrzava i spccijalne Jatotekc koje
se kuriste ~:a pristupanje ulazno-izlaznim uredajima. Svakom ulazno-izlaznom urcdaju t Otvori deskriptore datoteka. ·;
ohicno je pridru/.cna jcdna iii vise specijalnih datuteka. (:itajuci spccijalnu pridruzcnu infd = open("data", 0):
outfd = creat("newl", ZastitniBitovi);
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. r Petlja za koprranje. '/
Cilavnc sistcmske fukcijc za rad s datotekama u UN! X-u navedenc su na slici 6-J-1-. do (
Funkcija creat (bcz zavrsnog c) mozc da se iskoristi za pravljcnjc nove datotckc. Stro- broj = read(infd, baler, bajtovr);
go govorcci, ona vise nijc neophodna Jer sada i funkcija open mozc da napravi novu if (broj > 0) write(outfd, bafer, broJ):
datotcku. Funkcija unlink uklanja datotcku, pod uslovom cla se tllla nalazi samo li.JCd- } while (broj > 0);
nom dircktmijumu.
( Zarvori datoteke. '/
close(infd);
I Sist~mska funkcija Znacenje
I ..
1

close(outfd):
i creat(ime, zastita) ! Pravi datote"_u: zastita oznacava nacin zastite
Slika 6-35. Dl'D prugrallla 1.a k"l'iranjc dalutc'e punllJc'u UNIX-ovih sistemskih funkcija.
unlink(ime) Bnse datoteku (uz pretpostavku da ka njoj postoji samo jedna veza)
0\ :tj tko pi...:an jt~ najL·zl~u <' JCr .hva ~-J,ri\·a ,iqc·m:;kc funkcljc nish.ng nivoa, ami upravo
'open(rme, zastita) Otvara iii pravi datoteku i vraca nJen desknptor poknSavanJn d.t ih prih.a?cn11J.
-- - -

close(dd) Zatvara datoteku (dd deskriptor datoteke;


; read(dd, baler, broj) Funkcija .ca Citanjc (read' ima tri parametra: dcskriptor Jatolckc. bafcr i brnj hajlr)-
1 Ucitava broj bajtova u bater
v:<. Funkc·rp pr)kusava d~1ucita ;adati bn'J bajlova iL nan1acenc datotcke u bafer. Bnj
write(dd, baler. broj) Upisuje broj bajtova iz baiera
st\ :m111 u::it~tnih hajiova vr~.lL'a st: kao hroj. koji L'e biti manji od paramctra bajtovi alo
lseek(dd, rastojanje. w) Premesta pokazivac datoteke u skladu s rastojan_1em i vrednoscu w
JC datdreka prekratka. Funkcij:< write ,me':ta novoucitane bajtove u izlaznu datotek.t.
stat(ime. baler) Vraca rnlormaciju o datoteci Pctlj:r sc' n:t',lavlja :-:ve d"k se ulazna datorci-a polpuno nc uCita, a zalim se obe dalr)-
: chmod(ime, zastita) Menja nacin zastite datoteke tckc tell varaJU.
I
fcntl(dd, kmd, ... ) ! lzvrsava razne upravljacke operacrje s datotel<.o-11 nor. zaki~uC:ava Dcskript<'ri datotcka u L:NIX-u su m;di L'"ii bmje\ i (obicrwmanji od 2()). Dc:skriJ-
i (deo) datote~e _ . t•Jri IJ. 1 i 2 su specijalni i r'l!l~rCa\ aJU staudardni ulaz. standardni izlaz i standard11i
Slika 6~34. Glavne ~i:'\t~m:--1-..c funkcijc La rad.., t_i<ttot..:i,_amLt u l'N lX-u. izlaz la greske. Oni najce~c'c ndgovarajr1 ustaturi, ekranu i ekranu, ali ih korisn k
rno;i~ U.SJilcTiti n~r ra1.licitc datotc:ke. ]\:!nugi UNIX-ovi programi dDbijaju podatke ;a
Funkc1ja open se koristi za otvar~mje pu-.;toJccih dawtd.:t; i Dl r·rav !jenje nuvihl. uLu:l. d rentltate upisuju na standardni izlaz. Takvi programi sc ceso
lndikatur zastita nalaze kako je trcha otvoriti (Za Citan:c. Dl upl'iiv ~ll1.JC it d. 1. funkc·ija hJ\11 nltri.
vraL'a mali bn'.i zvan deskriptor datotekc koji identitikuic datl•tcku pt·i slcdecim po- I 'hicm dm:kturi.Juma jc bli.sko povenn -;a ~istcmom datoteka. Svaki kDrisn k
zivima. Kada clatotcka vise nc budL' putrchna, funkL·ij l ,:lose '"lobacla liJCil dc:-:kriplllr. m,L, d~t inu \ise .iird;tmijurn:<. "d 1-,ujih ;v·.tJ.,i nwzc: da sadrzi i datotckc i pndclire(-
Stvarnc ulazno-izla>'nc upcracije obavljaju '>t: funkc:J;.ma 'ead i wme. ud kt'.Jih s•::t- t<,rJjlmiL'. L~l.'\ ,;[,tc:mi standardno imaJU _c:lavni direktoriJLIIll. zvani nsnnvni iii k!>-
ka ima dcskriptor koji odrcuuJC Jatoll'ku. bafcr La pc,datkt: koji duld:.c ili <'dl:vc: i renski direktorijum 1en~!. roul ciirccrorv ). k< Jji sadrzi poddirektorijume hin (Ia ccs o

..
,, :
hajtova koji sc tmn prilikum prenoo>e. Funkcija !seek kuri:-:ti se ;a poLicioniranjc po-
kazivaca cLilotcke. sto omogucujc pristupanje datutcci na proizvnlpn mCin.

"''
;.u..-:r,. n=nernz __________ _
""if

482 Poglavlje 6: Nivo operativnog sistema racunara 6A Primeri opcrativnih sistema 483

izvrsavane programe), dev (za datoteke specijalnih ulazno-izlaznih uredaja), lib (za Datotekc se mogu imenovati zaclavanjem njihove putanjc (engl. path) od osnov-
bibliotekc) i usr (za korisnicke direktorijume), kao stu jc prikazano na slici 6-36. u nog direktorijuma. Putanja sadrii imena svih clirektorijuma, razdvojena kosim crta-
ovom primeru, clircktorijurnusr sadrzi podclircktorijume za korisnike ast ijim. Direk- ma, koje treba proci ocl osnovnog direktorijuma do datoteke. Na primer, ime datoteke
torijum ast saclrzi dve datotcke, data i foo. c, a poclclirektorijum bin cctiri igricc. igrica2, izrazeno u obliku apsolutne putanje, glasi /usr/ast/bin/igrica2. Putanja Ciji JC
pocetak u osnovnom clirektorijumu zove se apsolutna putanja.
Osnovni direktorijum Svaki aktivan program u svakom trenutku ima svoj radni direktorijum. Imena
bin datoteka u obliku putanja mogu se izrazavati i u odnosu na radni direktorijum i tada

F\
dev 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,
lib
do datoteke igricaJ moze se stici putanjom binligrica3. Korisnik moze cla napravi

{7.,
usr 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
/dev /bin imena datotcka.
ast Glavne sistemske funkcije za rad s direktorijumima u UNIX-u navedcne su na slici

( 1\ jim 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.

Ir-Sistemsk,;f~nkcij~
-- --- - --
/usr/ast /usr/jim ! mkdir(ime, zastita)
rmdir(ime) Brise prazan direktorijurn
bin jotto -------- -----

( \ opendir(ime) Otvara direktorijurn za citanje


data
readdir(pokazivac_direktorijuma) Cita sledecu odrednicu iz direktorijuma
foo.c - -1
closedir(pokazivac_direktorijuma)
chdir(ime_direktorijuma) Menja radni direktorijum u ime_direktorijuma
--- --

link(ime1, ime2) 1Pravi odrednicu direktorijuma ime2 koja ukazuje


'na ime1
[ __
I unlink(ime) Uklanja ime iz direktorijuma
/usriast/bin
igrica 1 Slika h-37. Glavnc funkciJC La rad s dircktorijumima u UNIX-u.
~
igrica 2
I igrica 3 ~
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
~
igrica 4
~ link("iusr/ast/bin/igrica3", "/usr/jimijotto")

DODD
iii ekvivalentnorn funkcijorn u kojoj se koriste irncna s rclativnim putanjama. sto za-
I visi od radnog clirektorijuma prograrna. Unlink uklanja ndreclnicu iz clirekturijuma.

~"";_,_. '~--~.------'

Datoteke s podacima
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

1s '·
Slika h-36. Dco standardnog sistema dircktorijurna u UN I X-u.

~ -~-: .

;U
484 Poglavljc 6: Nivo opcrativnog sistema racunara 6.4 Primeri opcrativnih sistema 485

4
I. Tip datoteke, 9 zastitnih RWX bitova i nekoliko drugih bitova_
~.t.~
original ili kopija kojaje naprav ljena kasnije. Kada se veza stvori, ona postaje ravno-
~··
' pravna i ne mozc se razlikovati od originala. Funkcija 2. Broj vcza ka datoteci (hroj oclrednica u direktorijumima koje se oclnuse na nju).

I.
.
i
'
1
unlink("lusr;asl!bin/igrica3")

cini igricu3 dostupnom samo preku putanje lu1-rljim/jotto. Funkcije link i unlink mogu
3_ Identitct vlasnika.
4_ Grupa kojoj pripada vlasnik_

1lr
.~
sc na ovaj nacin koristiti za .,preme'itanje .. datoteka i1. jednog direktorijuma u drugi . 5. Dui.ina datotcke u bajtovima_
' Svakoj clatoteci (a i direktorijumi su datot.ckc) pridrulena je mapa bitova koja 6. Trinaest adresa na disku_
saupstava kP mo?.e da priswpi datoteci. Mapa sadrzi tri polp RWX (Read- citanje, 7. Vrerne poslednjeg Citanja clatoteke_

*m
Write - upisivanje. Execute - izvrsavanjc l. od kujih pr\ll uznai':ava dozvole za vla- 8_ Vremc poslednjcg upisivanja u clatoteku_
snika. clrugo do..:volc za pripadnike vla.snikove grupe. a trcee za sve ostalc korisnikc.
9_ Vrcme kada je i-i':vor poslcdnji put menjan.
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 Tip obuhvata obicne datoteke, direktorijume i dve vrstc 'pecija1nih datoteka: L.a
~
~-
X hi<l iskljuccn l. duk clanovi njet:uve grupe rnogu da je citaju i izvrsavaju. a stranci ulazno-izlazne uredaje koji radc s hlokovima podataka i za one druge. 0 broju veza i
m
~:·
mugu samo daje i;.vr~avaju. LT1 ovakvc clozv<•ic. stranci mogu da koristc program. ali identitikovanju vlasnika vee smo govorili. Duzina datotekc je 32-bitni ceo broj koji

nc nwgu da ga ukradu (kopirajlll. Lato stu lll'lll~tju duLvolu za njeguvo citanje. Uklju- odgnvara najvisem bajtu u dalOteci s vrcclnoscu raLlii':itom od nuk_ Sasvimje isprav-
~
~ civanje korisnika L1 plljl'dine grupc fllbaU je aJministratora sistema. ohicno /,Vanog no napraviti datoteku, poLivom !seek. namestiti pokazivac na hroj I_()()()_()()() i upi,ati
i~
~,.

superkorisnik (engL supemser). Superkori:;nik ima i nacin da zaohide mehanizam I bajt. sto c'e dati datoteku duzine LOOO.OO I_ Datoteka, 111l'L1utim, ne('e zahtevati pro-
~~~ tastite. tako da mole da cita. menja iii izvrsava hilo k<1ju datoteku. s tor za sve one .,nedostajucc" bajtove.
r RaLmotrinw >ada ukratku kako sc LLitntckc i direktorijumi implemcntiraju u Prvih 10 adrcsa na disku ukaL.uju na hlokovc podataka. Uz hlokove velicinc 102-l
LjJ\:JX:-u. Potpuni.Ji opi, r'tltrazitc kud Vahaiiac (I 1JlJ6J_ Svakoj clatoteci (i dircktoriju- hajta, na ovaj nacin se rnoze rukovati s datotekama velicine do I (),2-lO hajtova_ Adresa
mu. jn jc i nn dalutcka 1 pridru£c11 je 6-1--ha.Jlni blok infurmacija, tzv_ i-cvor (engL II ukazuJC na hlok diska, zvan indirektni hlok. sa 256 adresa na disku_ Pomocu njega
i-nodcl. 1-cvt'r \allj'Stav~t ku je vlasnik datotckc. koje pristupne dozvole postoje, gde se rukuje datotekama vclicine do I ()_2-\0 + 256 x I 02-l = 27 2_38-l bajta_ Za jos vccc Ja-
trc:ha tra.l,iti pPdatkc i ,1_ Na svak<>111 di>;ku i-cvornvi za clatnteke smesteni su nume- totekc, aclrcsa 12 ukazuje na b1uk sa aclrcsama 256 indirektnih hlokova kuji hrinu o cla-
rickinl n:dc'lll na pucetku di,ka i!i, ako je chk podclJcn u grupe cilindara. na pocctku totckama vclicine do 272.384 + 256 x 2:16 x 102-l = 67.3;) 1.2-l;) hajtova. Ako je ova
.!'rllfH: ulindara. Stoga UNJ.\. Ltl:a d,,J•ijc hruj i-cvora. lllllte da pronade sam i':vor sema dvostruko indircktnih blokova jos uvek mala. adresa 13 se koristi za ukazi-
taku .~to inacun;t njc:go' u adrc:su tn di,ku_ vanjc na trostntko indircktni blok koji sadrzi adrcse 256 dvostruko indirektnih hln-
OdrcdlltC\ 11 dircktnriit::nu SCL'->toji 'cod dv;1 deJa: imena datoteke i hroja i-cvora_ kova. Koriscenjem direktnih, jcdnostruko, dvostruku i trostruko indirektnih aclresa
K~1.d~1 pr(\gran1 I'('/t)VC fun~ciju 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.
-.:·· open1"b:lost2.c". 0)
gornJa granicaje ll c;tvari -1-.294.967_295 hajtOia. Slobudni b1okovi na disk.u cuvaju '.C
c;;. d 'tstcm u radnom dircklni;untu lic~/.i dahllc'ku, imen<lm .,bi1ost;u:" da bi pronasao u povezanoj listi. Kad zatreha nov hlok. uzima se sarno sledeei blok s lisle. Zbog toga
iL:• Pcio<Pv ~:r~1. K:1cla dndc' c!t' bwia i -c1 ora. on moic cia ucita sam cvor i da su blokovi koji odgovaraJu istoj datotcci ra;.bacani pn clisku_
l/ Da hi se ulazno-i;.lazne operacije s diskom obavljale efikasnijc. kada se otvori da-
K:t~.:a -.;..: /~t~-.Lt (:u!~i ,~,ni
k<'rac:i se vise puta punavljaju svc duk se nc toteka. njen i-cvor sc kopira u tabelu u glavnoj mcrnoriji i tamo cuva za brzo rcfcrcn-
rredc c'it;\\ ,l N~, :;riiJ<c:r_ ,:~1
l'i pn,na~au hroj 1-c1ora ;.a datoteku /usr/usrl ciranje svc duk jc datotcka utvorena_ Osim tnga. u mcmoriji se C:uva i skup nedavno
,,>·,
t>or/r:(·i, . .d',ietn pr\\1 u (f'>nl;-,n~~J:: dir..._·ktnr:junlu tra/i odrednicu usr. PoSto nade i-Cvor rcfercnciranih hlukova na disku. Posto sc datotcke uglavnom i':itaju sekvencijalno. :e-
Dtll.l~".:'nmn,'-c da l""''citacL.i••td.u 1u t'>il".:-UJC i direkturijurndatotcka)_ U OV(lj da- :;to »e dogada clajc za uzastopno refrenciranje iste datoteke pntreban i:;ti blok. Tdi :;e
t<>Lci on tra!i <'drcdni.:u usr. tak" bmj i-CI"llra t.a clatokku /usrlust. Cita- cak da se ovaj efekat pojaca tako sto sistem pnkusava da uCita i slcdn'i hlok. pre nego
,l:ihltcLu ius;/u.,·t ,i,tcm m<'l.c ,L; pn'!~ade udrcdnicu za poduci. pa i broj i-cvora sto je refercnciran- da bi se uhrzala njcgova ohrada. Korisnik ne vidi svu ru nptimiza-
/a /;isrlo 11"1. K~1d ['r·:1~nrn i111a h;·,, j.,:-,ora datutcke. moie da sazna s1·e o njoj. ciju; kada pnzove funkciju read. program se privremenu zaustavlja dok trazeni pc,claci
i 1 ~L'T''>rc:d eleJth':!;l' a ·l:'. n1·a nwgu malo da se menjaju od sistema nc stignu u bafer_
dd "-i'<!~·n~.l (tLt:·~~L·iLl) ~tl\.n -...u.)l"k'l~1i u:~1r..:J'cni). ali se u svakorn i-Cvoru najCeSCc nala-
J
7_:.: -..Jedt:L::__, -..,Li \ ~'-'.
486 Pnglavlje 6: Nivo operativnog sistema racunara 6.4 Primcri opcrativnih sistema 487

,f Posle ovih dodatnih objasnjenja, mozcmo pec'i na opis ulazno-izlaznih operacija s I API funkcij; . -~ UNIX
~
! datotekama. Funkcija open tcra sistcm da u direktorijumima potrazi zadatu putanju. [9r~ateFil;. __]~pen Pravi datoteku iii otvara postojecu; vraca identitikat-;~
Ako se pretraga zavrsi uspesno, i-cvor se ucitava u internu tabelu. Za operacije read i
·~oe.~eteFile .- _ '_unlink Brise postojecu datoteku
write potrebno cia sistcm izracuna broj bloka iz tekuc'e pozicije u datotcci.
i CloseHandle l-;;~e Zatvara datoteku
Adresc prvih I 0 blokova na disku uvek se nalaze u glavnoj memoriji (u i-cvoru); za

lj
~cf
1-Re-;~ile-- .·-· _ -~- _ ~~pod~t~ iz datote~ _
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. : 0'~t~F~Ie ___ 1
V>frite r_LJp~suje po9atke_LJ~tot_~ku __
Operacijc link i unlink sada se mogu !ako shvatiti. Link analizira svoj prvi argument [_s~tfOiiePoiflt_er J~~k l P~s~av~a..£9kazivac na zadato_rne~9 u__cj_<1totec1
da bi dosla do broja i-cvora. Zatim pravi odrcdnicu u clirektorijumu za drugi argu- i GetFileAttributes ~ sta_t_ __ i Prikazuje a_tribute datoteke __ _,
ment, stavljajuc'i hroj i-cvora prvc datotckc u nju. Na kraju, ona uvec'ava broj veza u
j Loc:File . __ I ten~ ~~~~1rv~v~;~~r~~~:v~~~~;~~~~-~;e _:oces~~bezbedilo ~
i-cvoru za jcdan. Unlink uklanja oclrednicu iz dircktorijuma i smanjuje za jcdan hroj
li::,
~
~:
ve;:a u i-cvoru. Ako jc taj hroj nula, datotcka se brise i svi se blokovi vrac'aju na slo- liJnlockFile ifcntl i Otkljucava prethodno zakljucano po9rucje da(oteke __ j
~­ bodnulistu. Slika 6-33. Glavnc funkcije intcrf"ejsa Win32 API za ulazno-izlazne uperacije s datotckama.
M
~ ~. U drugom stupcu su UNIX-ovc funkcije koje im priblizno odgovaraju.
~ Vit·tuelne ulazno-izlazne operadje u "VVindowsu XP
1: XP podr7ava vise sistema datoteka, od kojih su najva?.niji NTFS (NT File System
Razmotrimo ukratko ove funkcijc. Funkcija CreateFile rnozc se iskoristiti za pr:t-
r - sistcm datotcka NTl i FAT (File Allocation Table- tabela za dodcljivanje datote-
vljenje nove datoteke i clohijanje njenog identilikatora. OvomAPI funkcijom mogu >e
~; ka). Prvi je nov i nacinjen je specijalnn za XP; drugi je stari sistem datoteka koji se ko-
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-
~: risti za MS-DOS, a i za Windows lJ5/9X (u;: podrsku ;:a dugacka imena datoteka). Posto
mer, CreateFile ima sedam parametara:
'
~.
j,,,
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 I. Pokazivac na ime datoteke koju treba napraviti iii otvoriti.
D koristi skup Unicode znakova, pa oni kujima je latinica strana (npr. Japanci, Inclijci i 2. lndikatori koji saopstavaju da li se clatotcka moze citati. rnenjati iii i jeclno
~· lzradci) mogu pisati imcna datoteka na svom marernjemjeziku. (U stvari, XP svuda i drugo.
interno primcnjujc skup Unicode znakuva; verzije pocevsi od Windowsa 2000 imaju 3. lndikatori koji saopstavaju cia li istovremeno vise proeesa rnogu da otvore
jcdinstvcnu binarnu datokku koja se mol:e upotrebljavati u bilo kojoj zemlji, a ipak se datoteku.
~t moze koristiti i lokalni jezik jcr se svi meniji, poruke o greskama i dr. cuvaju u konfi- 4. Pokazivac na bezbednosni deskriptor koji saopstava ko moze da pristupi
guracionim datotekama razlicitim za razlicite jezike.) NTFS u imenima datoteka pot-
datoteci.
puno podrzava razlikovanje vdikih i malih slova (tako da se bilo_sla razlikuje od
5. lndikatori koji saopstavaju sta treba raditi ako datoteka postoji iii ako ne
BILO _:n:-1 ). Nazalost, interkjs Win32 API ne podrzava potpuno nvu razliku u ime-
postoji.
;: nima datoteka, a ne podrzava je uop.~te u imcnirna direktorijurna, tako da ova prednost
'
~j .,
ne postoji u programima koji koristc modul Win32. 6. Jndikatori koji SChave atributima. kao sto SU arhiviranje. komprirnovanje itd.
Kau i u UN I X-u. i ovde je datoteka linearan niz bajtova, ali moze biti duzine do 7. Jdentitikator clatotcke cije atrihute treha klonirati za novu datoteku.
11
2 ' 1 - I. Posll•je i pokazivaci datoteka, kao u UNIX-u, ali nisu sirine 32 vee' 64 bita S!edec'ih sest API funkcija na slici 6-3X prilicno su slicne odgovarajucim sisterr.-
kako bi mogli da se i;~borc s duzim datotekama. Funkcijc interfcjsa Win32 API za rad skim funkcijama u UNIX-u. Po~lednje dve funkcije omoguc'avaju ;,akljucavanje pl-
s datotekama i direktorijumima slicne su odgovarajucim funkcijama u UNIX-u, osim drucja datoteke da bi sc procesu garantovalo iskljucivo pravo njegovog koriscenja.
sto uglavnum im<tju vise parametara i sto sc koristi Jrugaciji model zastite. Pri otvar- Pomoc'u ovih API funkcija moze se napisati procedura za kopiranje datoteke, an<:-
anju dalotcke dDbija se identilikator koji sluzi za njeno citanje iii menjanje. Medutim, logna verziji za UNlX sa slikc 6-35. Takva procedura (hez mchanizma za prover.r
za razliku od situacije u li;\I!X-u, identitikatori nisu mali celi hrojcvi, a standardni gresaka) prikazana je na slici 6-3lJ. Onaje i napisana po uzoru na strukturu procedure
ulaz. standardni iz!az i standardni izlaz za poruke o greskama moraju se eksplicitno sa slikc 6-35. U praksi se, meclutim, ovo ne bi moralo raditi jer postoji i\Pi funkL'ijJ
zadati JCr nisll unapred detinisani identitikatorima 0, I i 2 (iwzev u konzolnom reli- CopyFile (koja. kao bibliotecka procedura, radi slicno ovom programu).
mu rada, kacla ,;e unaprcd otvaraju). Glavne funkcue intcrfejsa Win32 API za rad s da-
totekama prika;~ane su na slici 6-3R.
4SS Poglavljc 6: Nivo opcrativnog sistema racunara 6A Prirncri opcrativnih sistema 489
--------- ----------·--

XP podr:l.ava bijerarhijski sistem Jatoteka, slican sistemu datoteka u UNIX-u. Se- XP ima mnogo slozcniji bezbednosni mchanizam od veCine UNIX sistema. Iako
parator komponenata u imenu je \ ( obrnuta kosa cna ), a nc I (knsa crt a)- relikt naslc- postojt: stotinc bezbcdnosnih API funkcija, opsti utisak sc moze stcCi na osnovu sledc:-
den iz MS-DOS-a_ Postoji koncepcija tckuceg (rallnog) dircktorijuma, a putanje ceg kratkog opisa_ Kada se korisnik prijavi, opcrativni sistem njegovom proccsu daje
mogu imati apsolutna i relativna imcna. Jellna znacajna razlika jc to sto UNIX do- pristupni zcton (engL access token). Pristupni zeton sadrzi korisnikov bczbednosr1i
pusta da se si:-.tcmi datotcka na razlicitim diskovima i racunarima puvdu ujedinstve- idcntifikator (engL Security ID, SID), listu bezbcdnosnih grupa u koje korisnik spada,
no stablo imena i tako sc sakrije struktura diskova od soft vera. duk XP --1-.0 nema ovo eventualne spccijalnc privilcgije korisnika i jos nekoliko drugih stavki_ Pristupni zcton
svojst vo, pa apsolutna imena datotcka moraju poceti slovom kujl~ omaeava logicki postoji da bi se sve informacijc u vezi s bezbednoscu sku pile na jcdnom lako dostm-
disk (npr. C:\H·indows\\·_vslcllzVJi!osta_dfl). Pocevsi od Windllwsc; 2000, i opcrativni nom mcslu. Svi pmcesi koje generise ovaj proces nasleduju isti pristupni zcton.
sistem XP ima mogucnost objedinjavanja vise sistema datotck,t, L\0 i l_:"ilX. Jed an od parametara koji se moze gcncrisati pri pravljcnju bilo kog objckta jeste i
/' Otvori datoteke za ulaz i izlaz podataka. •; njegov bczhcdnosni dcskriptor (engL security descriptor). Bczbednusni deskriptx
inllandle = CreateFile("data", GENERIC_READ, 0, NULL, OPEN_EXISTI~JG, 0, NULL); sadrzi listu za kontrolu pristupa (eng!_ Access Control List, ACL). Svaka odredni:a
outllandle = CreateFile("newf ", GENERICWRITE, 0, NULL. CREATE_ALWAYS, u toj listi odredenom korisniku iii grupi dozvoljava iii zabranjuje izvestan skup Dp~­
FILE_ ATTRIBUTE NORMAL, NULL); racija. Na primer, datoteka moze da ima bezbednosni dcskriptor koji nalazc da EloJ-
nura uop.~te nema pristup datotcci, da Ken rno/.e dajc cita. da Linda moze daje cit1 i
/' KoprraJ datoteku. '/ da upisuje podatke u nju. ada svi clanovi grupe XYZ mogu samo da saznaju kolito
do {
je dugacka.
s = ReadFile(inllandle, baler, BUF _SIZE, &broj, NULL\:
if (s > 0 && broj > 0) VVriteFile(outllandle, baler, broj, &ocnt. NULL):
Kada proces pokusa da obavi neku operaciju nad objektom slu/.eci se identitikat:J-
) wllile (s > 0 && broj > 0): 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
r Zatvori datoteke. 'I pozivaocev SID iii najcdnu od pozivaocevih grupa. pristupna dozvola kuju prona.1e
CloseHandle(inllandle): u toj odrednici dctinitivnaje_ Zbog togaje uobicajeno da se u ACL listi odrednice klje
CioseHandle( outha~1die): zabranju_ju pristup stavljaju pre odrednica koje ga dopustaju, tako da korisnik komeje
Slika 6-39. Lk'tl prog!·ama f;t \._\)piranjt: Jatl)tt.·k.~ kuji kon..,ti ,\PI !'unk.~_·ijc \Vinduw"'a XP. Ovaj deo zabranjen prist up ne mozc cla se provuce na mala vrala ako je clan neke grupe kop_j
jc naphan na_jc11ku C. JlP-~tl' J;t\:t..;h..riv~l :-,i~k'llL'>J.....:: funk.ci_jt: ni.',J...ug nivn,l k.ojc upravu :ldjmo Ja jc pristup dozvoljcn. Bezbnlnosni deskriptor sadrzi i podatak koji se koristi za pru-
pri ka2c:mo_ veru pristupanja objcktu.
Razmotrimo sada ukratko kako su u Windowsu XP implementirane datotcke i lli-
(}b'-llC API funk:.·ijc ;a rad 'Jirektmijumima pr·ikacane .-,una slici 6-c.)O, uporedo rcktorijumi. Svaki disk je staticki podeljcn u nezavisne logicke cliskove, koji su icto
' nJiiwvi:lJ ncqbli/:im ckvl\ ;:kntirna u Ul\L'\-u. FunkciJt: hi trcbalo da su jasne same sto i particije diska u UNlX-tL Svaki cvrsti disk sadrzi mape bitova, datoteke, dirck-
pl1 :.;cl1 i.
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
API :unkcija UNIX , Znacenje liksna ;_a svaki volumcn i krece sc izmedu 512 bajtova i h4 KB. zavisno od velici1c
c~eJ.tlj[J!rect!)r'y' rnkcrr Pravi n0 i direktonjum
1
samog logickog diska. Klasteri sc referenciraju prcko njihovog rastojanja od pocct.;a
~ SernO'ieD!rt-;Ct'Jrj r ~~cJ1r t3riSe prazan dtrektoriJUirl logickog diska i pri tom se koriste fl"t-bitni brojevi_
, F1ndFir2:tFi~e ODSndir Vrsi inicijalizovanJ8 Z2 c:ta~je odrednrca U direktorrjumu Najvaznija struktura rodataka na svakom logickom diskuje glavna tabela datote-
Find~·lSXtFi!e re2dd1r (';ita siedecu odrear1icu J direktorijumu ka (engL Moster File Tuhlc, MF7). koja sadrzi po jeclnu odrednicu za svaku datotc~u
Premesia datoteku iz j>?dnog direktorijuma u drugi
i svaki direktorijurn logickog diska. Ovc odrednicc su analogne i-cvorovima u UNI"<-
MO'/SF:is
tL Tabela MFT jc dawtcka. pa se moze smt:stiti bilo gcle unutar ltlgickog ,Jiska, cimese
SetCurr8ntDJrect:Jry chdir ~~1enja tekGCi radni direk~orijum
izbegava problem koji postoji u UN!X-u kada se los blok diska nade usred i-cvoro1a .
.Sliha h-~0. (J];l-d\C \Vin_-,2 .\P! f~lnk.,:i_i-.,· ict rad '~ ,Jir.:ktPri_jiln:ima. U drugnm stupcu su najhli7i Tabda MFT prikazana je na slici 6-41. Ona pocinje zaglavljem sa informacijana
1_11\.IX-~wi ekvivc~lcnu. uh.ul!J...o fl\"~tnjc.
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 datote~u

Z:

~:
~:~>.
r~
490 Poglavlje 6: Nivo operativnog sistema racunara 6.-t Primeri operativnih sistema 491

iii dircktorijum, vclicine I KB, osim kadajc velicina klastera 2 KB iii vi:k Svaka od- Sistem datotcka NTFS ima i mnogc druge zanimljive osobine, ukljucujuCi kompri-
rcdnica saddi sve metainformacije (administrativne informacijc) o datoteci iii dirck- movanje podataka i tolcrisanje gresaka pomocu elementarnih (atomicnih) transakcija.
torijumu. Postoji vise formata, od kojih je jcdan prikazan na slici 6-41. Dodatne informacije o njemu mozete potraziti kod Russinovicha i Solomona (2005).
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 6.4.4 Primeri upravljanja procesima
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 UNIX i XP ornogucavaju deljenje posla izmedu vise procesa koji se mogu izvrsa-
mogu imati i svoje MS-DOS-ovo ime koje se sastoji od osam alfanumerickih znako- vati (pseudo)paralclno. medusobno komunicirajuci u stilu proizvodac-potrosac. o
va, iza kojih opciono dolaze tacka i nastavak, duzine najvise tri alfanurnericka znaka. komc smo ranije govorili. ll ovom odeljku govoricemo o tome kako se procesima
Ako pravo ime datoteke odgovara pravilu 8+3 kojc vazi za imena u MS-DOS-u, ne upravlja u svakom od pomenuta dva sistema. Oba sistema podrZ.avaju i paralelizam
koristi se sekundarno MS-DOS-ovo imc. programskih niti unutar jednog, procesa, pa cerno govoriti i o tome.

I I Upravljanje proccsima u UN1X-u


c------;],
Proccs u UNIX-u u svakom trenutku sisternsklllll funkcijom fork mol:c da napravi
Standardne MS-DOS-ovo
potproces koji je njegova verna kopija. Prvi proces se zove roditelj, a drugi dcte ili
1nformacije Ime datoteke 1me Bezbednost Podaci
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.
MFT odrednica za jednu datoteku 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-
MFT
zaglavlje 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-
Glavna tomak izvrsava exec da bi pokrenuo program xy;.
label a
datoteka Dva proccsa sc izvrsavaju paralelno. o~im ako roditcljski proccs pozeli da saceka
zavrsctak proccsa-potomka da hi nastavio S\'O]C izvrsavanJC. Akn roditelj /elida ceka.
Stika 6-41. Glavna tabda datotcka u Windowsu XI'. 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-
Zatim do laze bczbcdnosne informacijc. Ovo polje je, zakljucno s verzijom XP 4.0. tumak 1avrsi. roditelj,ki proces nastavlja rad.
sadrzalo aktuclni bczbednosni deskriptor. Pocevsi od Windowsa 2000. svc bczbed- Procesi mugu da po;.ivaju procecluru fork koliko god pula hL'c'e. Cime nastaje stahlo
nosne informacije objedinjcnc su ujedinstvenu datoteku, pa poljc za bczbednost ';ada procesa. Na slici 6-42. na primer. proces .-\je dvaput pozvao proceduru fork, pa su na-
samo ukazuje na odgovantjuc'i Jeo te datuteke. stala dva potomka. B i C. Zatim je proccs JJ takode po~:vao proccduru fork dvaput. a
Kada je datoteka mala, svi njeni podaci sc smdtaju u MfT odrednicu. pa se ne c
proces jedanput, ;bog cega jc nastalu stablo ;,a sesl proce;,a.
moraju traziti na disku. Takva Jatotcka ;,e wve din~ktno dostupna datotcka (engl.
imnwdiale ji/e) (Mulknder and Tanenbaum, 1984). Kada je datoteka ncsto vee a, ovo
A ~---- Prvobitni proces
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- B Cl ~- Deca procesa A
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 26 -+ 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
D E ® - ----- Unuc1 procesa A

c; duzine. Takav niz je dugacak 2° 7 mm. lKlnosno 15 svetlosnih godina. pa bismu ga Stika 6-42. Stablo proces~ u UNtX-u.
~,,,

r~ i mogli iskoristiti kao laso da najblizu zvezdu Alfa Kentaura privucemo Zemlji.
,\;'; ~

~~'
~~i
.;,~
d,
ftW-.
.........-
492 Poglavlje 6: Nivo operativnog sistema racunara 6.4 Primeri operativnih sistema 493

~
,.t
Procesi u UNIX-u mogu medusobno da komuniciraju pomocu strukture zvane U suprotnom, ona sc prcuzima s diska. To. nazalost. prilicno traje (najcesL'c 20m,), i
meduprocesni kana! (engl. pipe). MeLtuprocesni kana! (cev za podatke) vrsta baf'era tadaje proces blokiran i ne moze da opsluzi nove zahteve. cak ni za Web strane L)jc
je u koji jedan proces upucuje tok podataka. a drugi ih iz njega uzima. Bajtovi se iz se nalaze u kt:Su.
meduprocesnog kanala uvek uzimaju onim redom kojim su u njega upisivani. Proiz- Resenje je da se serverski proces podeli u vi~e programskih niti koje dele isti l:d
voljan pristup podacima u kanalu nije nwguc. l\lleduprocesni kanali ne vode racuna o s Web stranama. Kada se jedna nit blokira, druge niti mogu cia obradujunove zahte;c.
granicama poruka. pa ako jedan proces u cetiri navrata upise po 12~ bajtova, a drugi Da hi se izbeg:lo blokiranje i bez pomoCi programskih niti, moglo bi se generisati v1se
proces odjednom ucita 5 12 bajtova, taj drugi proces nece primetiti da su podaci u serverskih procesa. alibi za to verovatno bilo potrebno napraviti vise kopija kesa, ito
bafer uncti kao cetiri porukc. je rasipanje dragocene memorije.
U S ystemu V i Solarisu procesi mogu mcdusobno da komuniciraju i na drugi nacin UNIX-ov standard za programske niti su programske p-niti (engl. pi/treads iii
- pomocu redova za poruke (engl. message queues). Proces mo?.e da napravi nov red POS!X threads - prograrnske niti prema standardu PO SIX, P l 003.1 C). One sadrze
za porukc iii da otvori postojeci red pozivom funkcije msgget. Poruke se u red mogu funkcije za rad s nitima i njihovo sinhronizovanje. Nije delinisano da li programsk1m
slati pozivom funkcije msgsnd, a iz njega preuzimati puzivom funkcije msgrecv. Poru- nitima upravlja jezgro iii se potpuno nalaze u korisnickum prostoru. Najcesc'e kil'i-
ke kojc sc salju na ovaj nacin razlikuju se po vise aspckata od podataka poslatih preko scenc funkcije za rad S programskim nitima prikazane Sll na s]ici 6-43.
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 I Funk~ij~ za r.;;d s I Znacenje
ispred onih manje va7.nih. Trec'e, poruke su tipi~:irane. a pozivom funkcijc msgrecv ! programskim nitima
mo?.e se zadati odredeni tip ukoliko se to z.eli. 1pthreadcreate _j Pravinovu programsku rllt u adresnon1 prostoru pozivaoca
Kao jos jedan mehaniwm medusobne komunikacije procesa moze se iskoristiti pthread __ exit ' Zavrsava pozvanu nit
mogucnost svakog proce'ia Ja deli odredeno podrucje svog adresnog prostora. UNIX pthread_join Ceka da se nit zavrsi
radi sa ovom deljenom memorijom tako sto prcslikava istc stranicc u prostor virtuel- pthread_mutex_,init Pravi nov muteks
nih adresa svih procesa koji je dele. Na taj nacin iz.mcna koju jedan proces unese u
· prhread_mutex._destroy Ukida muteks
deljeno podrui'jc odmah JC vidljiva drugim procesima. Ovim mchanizmom se mozc :
mut;k~
----- -

pthread_mutex lock _ i Zakljucava


obez.bediti vrlo veliki protok podataka izmedu procesa. Sistemskc funkcije koje sc 1

'pthread_mutex_unlock : Otkljucava muteks


odnose na deljcnje memorije no:-,e imena kao sto su. npr. shmat i shmop.
' Pravi promenijivu uslova
- --

Jos jedna karakteristika Systema V i Sularisa jesu njihovi semafori. Oni racle na pthread _cond _in it
nacin koji je vee opisan kroz primers proizvodacem i potrosacem. ~ptrJ_read_cond _destroy Ukida promenljivu uslova
Mugucnost koju imaju svi UNIX sistemi usklackni sa POSIX-om jesu procesi .., 'pthread_cond_wa1t , Ceka na prorneniiivu usiova
vise pi'Ogramskih niti (engl. threads). Pmgramske niti odgovaraju jcdnostavnim I pth~~ad~cond_signal - : ()slobada jednu nit koja ceka na promenljivu us leva
procesima koji dele ZCljt:dnicki adresni pros tori SVC StO je povczano S njim ( dakle, de-
Slika 1>--B. o,novnc funkcijc !J rad; f''"-'gramskim nitima ['rema slanJardu POSIX.
skriptorc datotcka, prumenljive okruzenja i stalne tajmere). Medutim. svaka nit ima
sopstveni prugramski brujac. sopstvene regisrre i sopstveni stek. Kada se programska
R:J;motrimu ukratku tunkc"ije za rad s programskim nitima prika;ane na ':lici h--13.
nit privremeno zaustavi (npr. dok sene ~:avr~i ulazno-izla~:na operacija iii se dogocli
Prva funkci_ja. pthread_create. pravi novu nit. PGsto se funkcija uspes11<' zavrsi. u
nesto drugu ), drugc niti istog procesa i daljc mugu da sc izvr~avaju. Dve niti is tog pro-
adreo;nom prnstoru po;ivaoca izvr<ava se JO~ jcdna Il<JVa prngramska nit. Pro:'ramS:~a
cesa koje rade kao par proizvodac-potrosac lice na dva jednonitna procesa koji dele
nit kuja je obavila posao zbog kug je napravljena i /.eli tLt sc zavrsi. up11cuj:: pm1 v
memorijski segments bal'en1m, ali nisu istu sto i oni. Razlike se ogledaju u tome sto
funkcije pthread_exit. Pro!.!ramska nil moLe ceLtti da se zavr\i drug:t nmgramska 1it
u drug:om slui'aju svaki proces ima sopstvcne deskriptore datoteka itd., dok se u
upul'tquci poziv pthread_Join. Ako .se nit na k,Jju sc cek:t vcr..' ;:avr\ila. pmccdUi'a fun;_-
prvom slucaju svc ovc stavke dek. U nasem ranijem primeru proi~:vodac-putro~ac
cija pthreadjoin odmah se za\T;ava. U ..,uprot;wrn Iiila ''-' bltlkira.
upoznali smo se s koriscenjcm Javinih prog:ramskih niti. Javin izvrsni 'istem cesto za
Progran1skc niti :-.:c rnt)gu <.;inhr•_)ni~~ovari pon;oCu brtt\'a 2·vanil: n1uL:ksi v-~ng-L nu-
svaku od svo_1ih programskih niti koristi po jt?dnu prograrmku nit operativnog siste-
re.r,·s). \lutd.s J'l' praviiu pazi na nek1 rc•.urs, kao \toje bai"c:r knji dele the program-;l.e
ma. a! i to nijc oba \ eznu. niri. Da hi".' usiguralo d:t ujedJhJ!ll trcnutku s.unujedna nit rristup<ickljenorn rc:.su;·st,
Kao primer situaciJC u kojoj programske niti mugu da budu kmisne r~v.motrimo
od pmgram,kih niti '" clcckuj:: da zakl.jucaju mutcks pr.? ncgo \to pridu re:-ur:,u ida ~a
Web server. 'vVeb -;erver mol:e da ima kd sa cesto tra/.enim Web stranama u giavnoj
pPIWvu Llikljul:aJU kada s t-e-;ursom nh~tve posau. Dok god s\·e niri p(v<tnju ovaj proto-
memmiji ..A.ko se 7ahteva Web strana koja je vee' u kdu. ona se odmah isporucuje.
ko!, ne pnstuje 11sluvi ;a stanjc utrbvanja. Mutcksi su slicni bin:1rnim sem~tfc:r:nu.
tj. semat()rima ku.Ji mogu imat: ,amo vr:ednosti () i l. !me .. mutcks" it.\ed·~nu je ,:J

"'
~:­
f:
-

r
'
Poglavlje 6: Nivo opcrativnog sistema racunara 6.4 Primcri operativnih sistema 495
494

.
. .
'
engleskog izraza ,mutual exclusion" ( uzajamno iskljucivanje) jer ova brava obczhcLtu- 7. Pokazivac na znakovne nizove okruzenja .

I
I~
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
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.

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

;!
~:
f:;;
,..._
'·1,
r
·il! ..
496
Poglavlje 6: Nivo operativnog sistema racunara 6.5 Sazetak 497

l
!I
~~
~:r
.
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
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
~~
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 prostoru, ovaj mehanizam radi mnogo brze od mutcksa.
~.!
Poslednji mehanizam za sinhronizovanje koristi objektc jezgra, zvane dogadaji
~~
kanali. Imenovane cevi se mogu koristiti i u mrdi; obicne ne mogu.
Postanski sanduciCi (engl. muilslots) deo su Windowsa XP koji ne postoji u (engl. events). Funkcija WaitForSingleObject omogucava da nit ceka na neki clogadaj.
~·.
!;·~ UNJX-u. Oni su u izvesnom smislu slicni komunikacionim kanalima. Kao prvo, oni Programska nit moze da oslobodi jednu nit koja ccka dogm1aj tako sto ce pozvati
:!f•\t
::r. ,ujednosmerni, dok su kanali dvosmemi. Mugu se koristiti i u mrezi, aline garantuju funkciju SetEvent ili da oslobodi sve niti koje cekaju dogadaje tako sto cc pozvati
i ~·
f}~
~····•C isporuku. Najzad, oni posiljaocu ornogucavaju da poruku posaljc difu;,nu, svima, 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-
~) umesto samo jednom primaocu.
teka, isto kao i imenovane cevi, Ova ili vise dogadaja mogu se sinhronizovati tako sto
t· Uticnice su slicne komunikacionim kanalima, osim sto povczuju procese na raz-
licitim racunarirn<L 1\ledutim. one sc mogu iskoristiti i za povezivanj~ proccsa na ce otvoriti isti dogadaj, muteks ili semafor-nije potrebno da iko od njih pravi nov ob-

;-.:
is tom racunaru. U pincipu, obicno jc ndto povoljnijc ako sc procesi unutar is tog racu- jekat ida kopijc njegovog idcntilikatora salje drugima. madajc i takav pristup moguc.
nara povczu uticnicom, umcsto pomocu komunikacionog kanala i li imcnovane cevi.
..l";~· Pozivanje udaljene pmcedure je naCin da proces A nalozi procesu H da pozove pro-
6.5 SAZETAK
F: ceduru u svom adresnom prostoru ida rczultat vrati proccsu A. Ovde postoje razlicita
~· ograniccnja u poglcdu parametara. Na primer. bcsmisleno jc drugnm procesu pro-
f: Operativni sisem se mole smatrati interpreterom nekih komponenata arhitckturc
slcdivati pokazivac. kujih nema na nivou !SA. Glavne od njih su virtuelna mcnwrija. vinuelnc ulazno-if-
(.: Na kraju. procesi mogu da dele mcmoriju prcslikavajuci sc i'itovremeno u istu da-
lazne instrukcije i srcdstva za paralclnu obradu podataka.
~'' totcku. Sve stu jedan procc;, tad a upisc, pojavljujc se u adresnom prostoru drugih pro-
Virtuelna memorija jc kumponenla arhitcl-turc kuia umogucava prograrnima cia
ccsa. PomoL'u ovog mehanizma deljcni bafcr koji smo iskoristili u primcru s
koristc adresni prostor veci od Jizicke memorijc racunara iii cia uhczbcc1uje stalni.
pruizvodaccm i potrosaccm nlO'zc sc lako implemcntirati.
fleksibilan mehanizarn zastite i dcljenja rnemorij.:. Virtuelna mcmorija sc mo7e im-
Kao sto ohct.bedujc brojnc mehaninne za medusobno komuniciranjc procesa, XP
plemcntirati cistim stranil'enjcm, cistim scgmcntiranjem i kumhinacijom jcdnug i
uhcthcdujc i hrojnc nacinc sinhronimvanja. knji nbuhvataju .'icmafore, mutckse, b..ri-
drugog. Pri cis tom stnniccnju, adrcsni prostor se deli na virtuelne stranice jednakc
ticna podrucja i dogadaJC. Svi ovi mehanizmi radc s nitima, a ne s procesima, pa kada
vclicinc. Ncke od str<mica 'e prc.-.likavaju u 1-izid.. c C>kvire za srr:mice. Drug:c se nc
sc jedna programska nit blukira scmaforom, ostale niti tog procesa (ukoliko postoje)
preslikavaju. Referencu na prcslikanu stranicu, :\1:\ILI jcdinica prnudi u i~pr;;vnu ti-
nisu pmcmccenc i mogu se izvrsavati. zicku adresu. Rckrcnca na stranicu kuja nije prcslikana i;a/iva grc:Sku pn>m<:sivanj<~
Semafm sc pravi API funkcijom CreateSemaphore koja ga mole inicijaliwvati na
stranic't~. 1 Pentium-+ 1 L:JtraSP1\RC If! imaJU :\!C\!L' jcdinicc' k<ljc poJr:favaJU \ irtucl-
L.adatu vrcdnust i detinisati mu maksimalnu vrednosL Semafori su objekti jezgra i
nu mcmortiu i straniccn_1e.
zato imaju be;,bcdnosne deskriptme i idcntilikatore. ldentitikator semafora mole se
Najva/nija ap.;tLJkcija koja .,;c til:c ul:tZll<'-illa;nih opcraL·ija nc~ OH'lll nivuu je,te
duplirati funkcijom DuplicateHandie a njegova kopija proslediti drugom procesu, tako
datoteka. Datut.:-kaje ntz haJlOva ili logil:b..ih opi-..:t sc mui'v i::itati i menjal! ada :,e
da se vise proccsa moze sinhmnizovati na istom scmaforu. Pm,toje funkcije za up i
n~ ;na kako radc disk<JVi, lrake i drugi ul:tzrw-izlalni utctLji. ]):Jl<>lckama sc muze pri-
down. mada imaju pomalo n~nbicna imena: ReleaseSemapl1ore (up) i WaitForSingleOb-
stupati sekvcrlL'ij:dtJU. nq>o-,rcdrHl prck,J hruja Zc'ijenug ;apl'<l i!i ncposrcdno Jlll!TlOl'u
ject (down). Funkcijom WaitForSingleObJect moguce je zatra/iti .Japnaut", tako da -.e nit
kljuca. Za grupis.tn.Je tLtltJtcka nmpt se upulr'~hiti dirc>.torijumi. Dat,)teK<: nwgu hiti
pozivalac odmah oslohada, cak i ako scmafor ostane na nuli (iaku ovakvi tajmcri po-
smc~tenc u uz<tstopnttn ,ekrorima na cbb..u ili u sd,t:;rima ra/hdcanim pu njernu. c:
novo dovode do utrkivanjaJ. drugunt ,]u(·aju, k11ji jc uohicajcn za o;mesl<ll:Je pmbtaka na c',·rsti disk, potrchnc :;u
Mutcksi su takode objekti jczgra koji s.luzc za sinhronizovanje, ali su jednostavniji
udrL'Ucne strukturc podataka da bi sc ll<t disku prmt<t~li svi hL'k'-wi Jatoteke. Velil'rna
od semafma jer ncmaju brojacc. To su u stvari brave, sa API funkcijama za zakljuca-
sll)hodnog pro~tur~t na di:.ku ll1t)/~ -..;e pratili pnnH_'-Cu J:~t.? i!i ~1iapc hlhJ'1a.
vanje (WaltForSingleObject) i ntkljucavanje ( ReleaseMutex J. Slicno scmaforima, i iden-
C\:stu je pmJr7atEI i paralclna o!'rad<t pP:.Lttal-;;~, impicrnct<tit:tna taku ;ruse rad ':i;.c
tiiikaturi muteksa mogu se duplirati a knpi1e prosledivati drugim prucesima, tako da
proccs<'i'<l -,imulira dcijc'nj..:m prPce-.,Jrskog vrcmcn:tjCtluug pt\iLC'iora. i\ck:HHmlisa-
programske niti iz razlicitill procesa mngu da pristupaJU istom rnuteksu.
na inlc'rakcij:t \ i~c pr<Jc..:sa mu;;e -:!a don:dc Ju -,tanja utd,.iv:t.Jj.t. D<t hi s2 rrohlcm
Treci mchanizam sinhronizovanja zasniva -,c na kriticnim podrucjima (engl. cri-
olkloniiJ, U\ udc ~c \"1'-;!lL)\ ni \Jhjc:hti za sinhr~_)nilu\':ln j..._: -- jcJn~ Jsla\ ~tn prink'!" jc -,enlcl-
tint! sl.'cti"ns ). On je slican mutcksima. osim sto jc lokalan za adrcsni prustor pro-
for. Pu1nnc·u se1naf~)ra, problcini rip.t pnli/\tK!JC- p<ltru;,.Jl: f11t.)~u . ....__~ rc~itijcdn~.).";tavno
gramske niti koja ga je napravila. Pnsto b..riticna pudrucja nisu ohjekti jezgra, ona i ckgantnu.
};;
498 Poglavlje 6: Nivo opcrativnog sistema rai'unara Vezbanja 499

Dva primera slozenih operativnih sistema su UNIX i Windows XP. Oba podrzava- 7. lJ stranicnim sistemima o kojima govorimo u tekstu, icientifikator promasaja strani-
ju straniccnje i clatotcke prcslikane u mcmoriju. Takocle, oba podriavaju i hijcrarhij- ce bio je deo ni voa ISA i zato ga nema u adresnom prostoru programa koji se izvrsa-
skc sisternc datotcka s clatotekama koje su nizovi bajtova. Na kraju, oba podrzavaju va na nivnu OSM. lcientifikator promasaja u stvarnosti takocle zauzima stranice p.: u
odredenim okolnostima (npr. kacia se za zamenu stanica koristi FIFO strategija)
proccse i programske niti, i obczbeduju nacine da ih sinhronizuju.
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-
VEZBANJA suju u stranicu. Bez obzira nato, trcba pratiti koje su stranicc menjane kako bi se iz-
R bcglo najgore moguce re§enje, a to jc da se sve stranicc posle korisccnja ponovo
r, l. Zaslo opcrativni sistem intcrprctira samo ncke od instrukcija treccg nivoa, dok mi- upisuju na disk. Ako pretpostavimo cia svaka stranica ima harciverske bitove koji ne-
~
~ kroprogram intt:rpretira sve instrukcijc nivoa lSA'1
zavisno jeJan od drugog omogucavaju pristup za citanje, upisivanje i izvrsavanje,
2. Racunar ima 32-bitni pros tor virtuelnih adrcsa u kome se moze adrcsirati svaki bajt.1 kako operativni sistcm vodl racuna o tome koje su stranice ciste, a koje zaprljane' 1
r
'
Velie ina stranice je 4 KB. Koliko stranica postoji za ceo prostor virtuclnih adresa'
9. Segmcntirana mcmorija ima segmentc poddjcne na stranice. Svaka virtuclna aciresa
3, Da li je ncoplmdno cia vclicina stranice budc stepen brop 2'' Da li bi sc tcorijski
~j"

I"' 1 ima dvobitni broj segmcnta, dvobitni broj stranice i 11-bitno rastojanje unutar stn-
I;. mogla implernentirati, na primer, stranica vclicine 4000 bajtova' Ako bi mogla. da nicc. Glavna memorija jc veiicine 32 KB. izdeljena na stranice ocl po 2 KB. Svaki

-------,
li bi to bilo prakticno' 1 segment se moze iii samo citati, citati i izvrsavati, citati i menjati iii citati, menjat: i
p. ~ Virtue ina memorija ima stranicu velicine 1024 n::ci. osam virtuclnih stranica i cdiri izvrsavati. Tabele stranica i zastita izglcJaju ovako:
!~ lizicka nkvira za stranice. Tabcla stranica izgleda ovako:
"
~ Segment 0 Segment I Segment 2 Segment 3

I1
~-~-·--

~
___ll_elna strani:_¥ir za st.ranicu 1 Samo citanje (:itanje/izvrsuvanje Citanjc/menjanjc/

--~--~----3
izvrsavanje Citanjcinlcnjanjc
0 3
~
Yirtudna Okvir za Virtue Ina Okvir za Virtuelna Okvirza
--~-- glav~;
f stranica stranicu stranica stranicu stranica stranicu
i~ nije u memori;·l () 9
~ --- ----------
() Na disku Tabela slranica nijc 0 lcf
~~ 3 nije u glavnoJ memoriji I 3 I () u glavnoj tnemoriji I I
!f ---------~
4 ----~--~------
2 2 Na disku 2 IS
- - - - -t - -
2 6

~ gl~p~9
" 3 12 3
~

~
,_,_
8 3 I Na disku
~~ : •. - e>je o
~
;~ Za svako od slcclecih pristupanja virtuelnoj memoriji navedite odgovarajucu fizicku
~
7 nije u glavnoj memoriJi adresu. Ako nastane proma;aj. naveditc vrstu promasaja.
:i L.---~--- .
18

a) Sastav itc Ji>,tu svih virtuclnih ad:c·sa kojc ce dovcsti do gre;kc promasivanja stra- Pristup Segment Strunica Rastojanje na strani
'~ nice. l. pn:uzimanje podataka 0
b) Kujc tizickc:: adresc ndgnvaraju v·irtuelnim adrcsama 0, 372S. 1023. ltl24, 1025. 2. prcuzimanje pudataka I I IO
7800 i ..j.()l)6' 1 3. preuzimanje podataka 3 3 20-+7
5. Racunar inn 16 stranica prostora virtuclnih adrc::sa. alt ,amo cctiri uk.v ira za slranicc. 4. sm<.'Stanjc pociataka 0 I -+
Menmrija je 1n pucetku prama. Program pristupa \ irtuclnim stranic·arua sleJccim
5. smdtanjc podataka J I 2
redum: 6. smdlanjc podataka ] {) 1-+
0, 7, 2, 7, 5, 8, 9, 2, 4 7. grananje na l 3 100
a) Kojc rekrcnc<: cc izazvati rn,ma;ivanje stranice po algoritmu LRU'1 8. pn:uzimanje podataka () 2 50
1
bi Kujc r;:krcn~c ce i1.azvati prnma~ivanjc ;tranice rll alg"ritmu FiF0' l)_ prcuzimanje pndataka 2 0 5
6. U odcljku 6.I.-+ prikaDm JC algoritam za impkmcntiranjc FIFO stratcgijc zarncnc I 0. grananjc na J () 60
;tranica. Smislik clikasnijc re:::enjc. !-'nnw<': Bropc nuv"ucitanc stranice mnzc se
a/urirati. ada sc nc azmiraju brujaci ostalih stranica. 10. Neki racunari dozvoljavaju da se ulazno-izlaznc opcracije obavljaju din:k.tno u ko-
ll
risnickum pn1stmu. Na primer. program moze da zapocne prenos podataka s diska
i'
!~
u bafcr unutar korisnickog proccsa. Da li to stvara problemc ako sc za impkmenti-
[;
ranje v·irtuelnc memorijc kmi,ri sabijanje? Obrazlozitc odgovor.
v!~
[t,

~-·
!!,:;
15.5
L_
Poglavlje 6: Nivo opcrativnog sistema racunara Vdhanja 501
500

U operativnim sisternima kojima je chozvoljeno pres!ikavanjc datoteka u mcmoriju 22. Proucavanjern razlicitih sistema datotcka utvrdilo se daje vise od polovine datoteka
11. manjc od nckoliko KB, a ubedljiva vccina datotcka je manja od oko 8 KB. S druge
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 stranc, samo 10 procenata svih datoteka z.auzima oko 95 procenata citavog kori~ce­
nog prostora na disku. Kakav zakljucak o vclicini bloka na disku mozete izvesi iz
nc i pocevsi od virtuelne adrese 5000. Zasto"'
ovih podataka"l
12. Kada se u registar segmenata Pentiuma 4 ucitavaju podaci, prcuzima se odgovara- 23. Razmotrite sledccu mctodu pornoc'u koje operativni sistem rnozc da implemc~tira
juci dcskriptor koji se smesta u nevidiljivi deo registra. Sta mislite, zasto su se ln-
instrukcije za semafore. Kad god proccsor zeli da izvrsi instrukcije up iii down e1acl
telovi inzenjeri odlucili za ovakvo rdenje'?
scmaforom (cclobrojna promenljiva u memoriji), on prvo tako podesi svoj prioritet
l3, Program na Pentiumu 4 refcrencira lokalni segment l () s rastojanjem 8000. Poljc i li mask ira bitove da onernoguci sve sistemskc prekide. Zatim prcuzima vrednost sc-
BASE tabclc LDT za segment 10 sadrzi vrednost 10000. Koju ce odrednicu katalog
1 mafora, mcnja je, i shod no tome, obavlja skok. On na kraju ponovo omogucujr si-
stranica upotrebiti Pentium 4" 1 Koji je hroj stranice'' Koliko jc nJeno rastojanjc"
stcmske prekide. Da li cc ova metoda raditi aku
14. Razrnotritc nckc od mogucih algoritama za uklanjanjc scgmenata u ncstranicnoj, a) Postoji samo jedan prdcesor koji svakih 100 ms prclazi s procesa na proces''
scgmcntiranoj menHJriji.
b) Dva proccsora dele zajednicku mcmoriju u kojoj je srndten i semafor''
:t: 15. Uporeditc interno i spoljasnje fragmcntiranjc. Sta se mo.le uciniti da hi se svako od 24. Mustcrijc tirmc Neohorivi Operativni Sistcm pocele su da se zalc na naJnoviju •rer-
.,:,'· njih iz.bcglo" 1
ziju, kojaohuhvata i rad sa scmaforima. Mustcrijc >matr~0u dajc nemoralno doz\oliti
16. Supermarkcti se stalno suocavaju s problemom slicnim zamcnjivanju stranica Ll si-
proccsima da sc blokiraju (kako kazu, ,cia spavajuna pm,lu"). Kako je politika Iinne
stcmima virtuclnc mcnmrije. U njima postuji flksna kolicina prostora na gondolama
da k!ijcntima pruzi SVC sto zcJc. predlozcno jc da se LIZ up i down doda i treca op~ra­
na kojima trcba izlo/.tli anikk ciji broj stalno rastc: . .-'\ko :;e pojavi m1v val<~n artikal
cip, peek. Opcracija peek ispitujc semafor ne mcnjajuci mu vrcdnost i nc blokira"uci
(rccimo, l 00% ctikasna hrana La P'CJ. ncki izlu/.eni artikli moraju sc povuci lb bi -;c
proces. Na taj nacin programi koji misle daje ncmoralno hlokirati proccs mogu pl·vo
izlo.lio ovaj nov. Prvo sto nam pada na pamctjcsu algoritmi LRli i ~lFO. Koji bistc
da ispitaju scmafor kako bi vidcli da li je bezbcdno izvrsiti down. Da li cc ovD racliti
od njih vi i.cahr•tli"' ako semafor koriste tri i vise procesa'' A ako sernafm kuriste dva proccsa"'
17. K~siranjc i strani.:'cnje su u i.cvesnnm srnislu veuma slicni. U oba slucaja !lOstojc dva
25. Napravirc tabelu i u njnJ prikazitc koji se od proccsa PI. P:2 i P3 izvrsava a koji je
nin1a mcmorije (kc~ i glavna mcrnorija u prvom slucaJU. a glavna mcmorija i disk u
blokiran, u funkciji vrcmena innedu 0 i 1000 ms. Sva tri procesa izvrsavajutnstLlk-
drugoml. U mom poglavlju smo rannatrali argument-: koii idu u prilog vclikim
cije up i down nad istim semaforum. Kada su blokirana dva procesa i izvrsi se up. Jo-
stranicama na Jisku i one koji idu u prilog malim stranicama na di.-;ku. D•t li sc tsti
krcee sc proccs s nizim brojcm, tj. P l inta prednust nad 1'2 i P3 it d. Na poccth se
ar;;urnenLi n1ugu prin1~niti i n~t vcliCinu rcdova kcSa'.)
sva tri procesa izvrsavaju i scmafor ima vreclnost l.
18. Zastu jc unmdgtill si:;kmima clatuccka ncuplh>dno da o.c datutcka otvoti pwivom :-;i-
Pri 1 = I 00 P l izvrsava down
stemskc t"unkctjc open kako hi rnogla da sc ciu"-'
Pri 1 = 200 PI izvrsava down
19. Upurc·c.litc m•qlll hit<>\ a i listu pr:!Znina kal) metodc nt praccnjc sh>bodnog pwstnra
Pri 1 = 300 P:2 izvr.sava up
na disktl ;.a ~(1(1 cilindara. t>d kojih S\ ;;ki ima 5 sta"l Sll r•l ~2 sc;,.rnra. Koliku Ct: pr.l-
Lnina biti poLI\:bnu da Ji';La pr~1;,nind post~tnc \CL~ . .t ,)d !nape hit<~va'? Pr~~trnsLcJVitc d~t Pri t = 400 P3 izvrsava down
je :\L'i-..hH. _jcdiniC:l :.!L·i._kJe j daje /a pr:uo[nU rlqtr~.-'hi1U da plhhJjj .~=:-b:\ll,i. ~·,i(<._'d!1!La Pri 1 =)()()PI izvr~ava down
u tahcii Pn 1 = 600 P2 izvrsava up
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 Pri 1"' 700 P:2 izvrsava down
llll )del d. H.}...·]c ~)rl \f!1C.~tanju. Pr.:qJ()StavlnlO Ja :.;c di:-;k !1h.iLC r(':-oln~drati k~IU li!1C~trall Pri 1 = 800 Pl izvrsava up
~1drcsni pro,tur "J ,Y >> I scktor,t. koji ''-' o;astnjc ud u?astopnih hlokovct P''d.t!ak~l.
Pri t = 900 PI izvrs!tV a up
/,~1ti111 pl~L~nine, p~t UL!~tc)pnih hl"\k()\·a pnLbt:Jka itd. Ako ernpirij""-~t In,~rcnj~1 pu-
k~~l.t! ~.,b jc raspt)tk!a ven1\·atn~.K:c ,:,~l dt1i:inu p~•tbl~tka i duLinu pra.:.nina 1_-.;LL
26. lJ sistemu rezervacijc avion-'kih karata neophmlno jc obezbecliri sledeee: kad JCcan
._\.'l11l! -;c .Jl;),in:t .. i ".~},illr~t·· (Jl'dnu~ di dru::;·.:c.l r~~.).iJ\ i_jUii..' :'l \CnJ\-~ttil(I\.2Unt 2 i, k~>lihi 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
jc l~C:L~i\';tni hn•j rr~li.Jlil1ll lla Lli~ku'?
sedisre za ncki let. Smislitc nacin sinhronizovanja pomocu o;emafora koji osigur,,v a
21. ;-...;~~ nck~.~n1 rctl:u:laru ~~d·ogr;_un Jnulc da n~IJ"I·a\·l kc:l~kl) g1Hl n;u tn:ha dJt(,t.__·k~·l i svc
da sam<> jedan proces ll jed nom trenutku moze da pristupi datoteci (prctpostavljajttci
()J1(; !!l~J~U da r._lS1l! \.:Jnatni.':ki ~·.}k_~,-J!n j:,~\l":·ia\ ~1nja r:-n~l"~tllla ~tlLJ '>C pri ll,'n;: ',lflCf~ltt\­
cia proccsi postuju praviillJ.
n' Hn 'i' lt..:rnu nL' ~al.J~l nikal-._ va upozor:.2n_i~1 c: nj itJ.U' oj vciiC i ni. 0,·1 i -.;: ~: ~· li ._Lt :--;;. :
O\·c lL~t 1 •tcKc l:u\'~L_iu l!.LIL~l~il!Jlrl~Iil sckt~lriilld'? C>bi·tv.!n.~il,_~ t'l!;;ov(IL
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:-
lini.~u 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

!..~~-.
Poglavljc 6: Nivo opcrativnog sistema racunara Vezbanja 503
502

27. Da bi omogucili implementiranje semafora na racunaru s vise procesora koji dele 33. U Windowsu XP mole se napraviti !isla za kontrolu pristupa na takav nacin da Rada
zajednicku memoriju, projektanti racunara cesto uvode instrukciju Test and Set uopste nema pristup datoteci, ali da svi drugi imaju potpun pristup. Sta mislite, kako
Lock. TSL X testira lokaciju X. Ako je njcn sadriaj nula, postavlja se na I u jedin- je to ostvareno'1
stvenom, nedeljivom memorijskom ciklusu, a sledeca instrukcija sc preskace. Ako 34. Opisite dva nacina za programiranje problema proizvodac-potrosac uz koriscenjc
njen sadrzaj nijc nula, TSL dejstvuje kao instrukcija NOP. Pomocu instrukcije TSL deljenih bafcra i semafora u Windowsu XP. Razmislite kako ccte implementirati
mogu sc napisati procedure lock i unlock sa sledccim svojstvima. Prucedura lock(x) deljcni bafcr u svakom od dva slucaja.
provcrava da li je x zakljucano. Ako x nije zakljucano, ona ga zakljucava i vraca 35. Uobicajeno jc da se algoritmi za zamenjivanje stranica proveravaju simuliranjem. U
kontrolu pozivaocu. Ako je x vee zakljucano, ona ceka da ga ncko otkljuca, zatirn ovom vdbanju treba da napiscte simulator za virtuelnu memoriju zasnovanu na
zakljucava x i vraca kontrolu. Procedura unlock otkljucava zakljucanu bravu. Ako stranicama na racunaru sa 64 stranice od I KB. Simulator treba da oddavajednu ta-
svi procesi zakljucaju tabelu semafora pre nego sto jc upotrebe, samo se jcdan pro- belu sa 64 odrcdnice. po jednorn odrednicom za svaku stranu, sa brojem fiz.ickc stra-
ces u jcdnom tcnutku moze poigravati s promenljivama i pokazivacima, i tako nice koji odgovara datoj virtuelnoj stranici. Simulator treba da ucitava datotcku koja
spreciti utrkivanjc. Napisite procedure lock i unlock na asembkrskom jeziku. (Ako sadrzi virtuelne adrese u llecimalnom obliku, jednu adresu po redu. Ako je odgo-
je potrebno. napravite i dodatne pretpostavke.) varajuca stranica u memoriji, simulator sarno bclezi pogodak. Ako stranica nije u
28. Prikazite vrcdnosti poLu:ivaca in i out za kruzni bafcr duzine 65 rcci posle svakc od rnemoriji. on pm.iva proceduru za zamenjivanjc stranice da izabere stranicu za od-
slcdecih opcracija. Oba pokazivaca pocinju od nuk. 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
a) 22 reci sc smestaju Ll bafer
izabranim adrcsama i provcrite performansc algoritama LRU i FIFO. Zatim gcnc-
b) 9 rcci sc uzimaju iz bafera
risite datoteku sa adrcsama u kojoj je x procenata adrcsa za 4 bajta vise od prethod-
c) 40 rcci se smc;taju u bafcr nih (da bi sc sirnulirala lokalnost). Sprovcdite tcstiranjc za razlicitc vrednosti x i
d) 17 reei se uzimaju iz bafcra napisitc izvdtaj o tome.
e) 12 n:ci sc smcstaju u bafcr 36. Program sa slike 6-25 dovodi do stanja fatalnog utrkivanja jer dvc programskc niti
f) 45 rcci sc uzimaju iz bafcra pristupaju deljcnirn promenljivama na nckontrolisannacin, bcz semafora iii upotrebe
g) 8 reci se smcstaju u bakr ncke druge tehnikc za uzajamno iskljucivanjc. Pokrcnite ovaj program i posmat··aJle

.
za koliko ce se zagl a viti. Ako sc ipak nc Laglavi. izmenite ga povccavajuci mu ranji-
h) II rei'i sc uzimaju iz bafera
vost tako sto cetc izmcdu podesavanja m.in i m.olll i njihovog tcstiranja staviti neka-
29 . Pn;tpostavimo da nd.a vcrzija UNIX-a koristi blokovc na disku od 2 Kl3 ida na (bk
.
'
1 kvo izracunavanje. Koliko takvog racunanjajc potrebno dodati pre nego sto program
smdta 51:2 adrcsa po (Jcdnostruko, dvostruko i trostruko) indircktnum bloku. Koli-
~ pocne da se svakog sata zaglavljujc' 1
' ka ce biti maksimalno moguca vclicina datutd.:e' 1 (Pn:tpostavitc da su pokazivaci
l 37. Napisite program za UNIX iii za XP koji kao ula;: uzima ime nekog dircktorijuma.
t
t• datotcka sirine 64 bita).
'il-· Program treba da odstampa spisak datotcka u direktorijumu, u svakom redu po jcd-
30. Prctpostavitc da je UNIX-ov puziv sistcmskc funkcije
nu datoteku ida posle irncna datoteke upise i njenu velicinu. Program trcba da stam-
'
unlink("/usr/astlbin/garne3") pa datoteke rednslcdom kojim sc nalaze u direktunjumu. Nekorisc'enc odrednice u
i/.Vr~en u kontckstu slikc 6-36. Opisitc dctaljno kakvc su sc promcne dcsilc u si- dirckturijumu trcba da o,tnaci sa (nckoriscen).
stemu direktorijuma.
•• 31. 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 par~tlcinom obmdom' 1 !{azmislite o problcmima i mogucim
rcscnjima.
32. Kt>rnitct za pr~tva 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
t- i daje pravicniji. Sta vi o tome mislite"'
l
~
!'.
~i

L
@'['·~

.• . · 508 Pog;lavlje 7: Nivo asemblerskog; jezika 7.1 Uvod u asemblerski jezik 5()9

1
~ ~.' ·"'

kategoriju. Drugo, nekim procedurama je potreban pot pun prist up hardveru, sto obic- Prim era racli, pretpostavirno da je I 0% programskog kocla odgovorno za utrosak
~~
i!>: n<l nije moguce ostvariti na jezicima visokog nivoa. Na primer. u ovu kategoriju 00'7£, vremena izvrsavanja. To znaci da se tokom posla koji traje 100 s. 90s provodi
spadaju potprogrami niskog nivoa za obradu sistemskih prekida i programskih klop- u ovih kriticnih I 0% program a, a !0 s u preostalih 00% programa. Kriticnih I 0% sada
ki. kao i kontrolcri uredaja za brojne ugradene sisteme koji rade u realnom vremenu. se mogu poboljsati ako se taj deo programa ponovo napise u asemblerskom jeziku.
f Prvi r:1zlog za programiranje na asemblerskom jeziku (za postizanje visokih per- Ovaj postupak, koji se naziva podesavanjc (engl. tuning), prikazan je na slici 7-1.
,.t forrnansi) obicno je i najvazniji, pa zato treha da ga razmotrimo detaljnije. U veeini Ovde je potrebno clodatnih pet programerskih godina da bi se kriticne procedure po-
r

progra!lla '>rannerno je mali procenat ukupnog koda odgovman za veliki procenal novo napisale, ali se time njihovo vreme izvrsavanja skrac'uje sa 90s na 30 s.
;,
vrcmcna i;\'fsavanja. Po uobicajenom odnosu, l% koda odgovoran je za 50% vrcmc- Poucno jc uporcditi mcsovito rdenje (jczik visokog nivoa + asemblerski jczik) sa
~
na raJa p1 ogr:1ma. a I 0'/rJ koda odgovorno je ta 90% vrcmena izvrsavanja. cis to ascmblerskim resenjem (slika 7 -I). Ovo clrugo je oko 20% brzc (33 s umesto +0
Prctpu-;tavimo. na primer, da je za pisanjc nekog programa na jeziku visokog s). ali je cena za njega triput vec'a (50 programerskih goclina umesto 15). Stavise.
nivoa putrcbno I 0 programerskih god ina i cla rezultujuci program prolazi refercntno prcdnost mesovitog rdcnja vil;e je nego naglascna jer je prepisivanje procedure iz
testi ranjc za I()() s. Referentni test, test hrzine (engl. benchmark) jestc program za kojc su na visokom nivou vee uklunjene greske u asemblerski k6clmnogo je laksc )d
testiranje kDji sc koristi za porcdenjc racunara, prcvodilaca itd. Za pisanjc celog pro- pisanja iste procedure od pocctka na asemhlerskom jeziku. Drugirn recima, procena
grama na asemhlcrskom jeziku mozcla hi trebalo 50 programerskih god ina zhog nizc kako je potrebno 5 programerskih godina da se ponovo napisu kriticne proccclLI:·c.
produktivnosti prugramera kada pisu na ovom jcziku. Dobijcni program bi referentni izuzetno jc konzervativna. Ako hi za to stvarno bila potrebna samo jedna programa-
test ohavio nw£da za :n s zato sto inteligentan programer moze od inteligentnog pre- ska godina, odnos izmcdu cene mdanog i cisto asemhlerskog resenja hio hi 4: I.
vodiuca biti triput pametniji (iako cetc za ovo cuti razlicite procene). Ova situ:~cija je Programer koji pisc na jeziku visokog nivoa nije optereccn premestanjcm bitova
prika;ana na -.;lici 7-1. 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
~-~--~--~-~--~~
1
1 I Programers~e godine Trajanje izvrsavanja
-l kako hi ustedeli nekoliko ciklusa.
potrebne za 1zradu programa Sve u svemu, i dalje ostaju bar cetiri dobra razloga ~:bog k.ojih !reba cla proucavHe

: Ase~blersk~~~k- --~~ Iprograma :~


50
I' u sekundama 33
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,
JeZik VISOkog n1v0a I 10 100
1
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.
Mesov1to resenJe bez podesavanJa
I Knt16111h 1 0% 1 90 Sve inteligentne kartice imaju proccsor, ali malo koja imajedan megabajt memori:c.
I Ostailh 9C 01o 9
10 a jos manje kartica ima cvrsti disk koji bi podrz.ao strani..:'enjc memorijc:. lpak, o;Jc
100 moraju da obavljaju slo/.ena kriptografska izracunavanja is takt) ogranicenim rest.r-
I Ukupno 10
sima. Procesori koji su ugradcni u kucnc aparate cesto zhog cene imaju vrlonnlo 111~­
! Mesovito resenje uz podesavanje morijc. Licni digitalni pomocnici i drugi batcrijski bezicni elcktr,,nski uredaji ccsto
1 Kriticnih 10% 6 30 imaju malo memurije da hi se pristedela baterija. tal-.o da je i za njih ncophodan rnJii
1 Ostalih 90% 9 10
i efikasan k6d.
15 40 Trecc, prevodilac mora da izbaci rczultat koji cc zatim iskuristiti a.c;emhler iii mu·a
Ukupno
sam da ohavi ascmbl iranje. Prema tome. razumcvanJC asem blerskllg Je;:i ka ncupllllcl-
Sliha 7-1. Purc·tknJe progranmanp na a'embkr,kum jeziku 1 programiranja naje;iku vi,okog
nu je za razumevanjc rada prevodioca. Najzad. neko mora i Ja napi~c: prcvodilac (kw
nivoa. s poJeSavanjcm i hez njcga.
i njegov asemhlcr).
Kada se unnc u obzir navedeno zapazanje da jc samo mali deo koda udgovoran Dl Na kraju, kada proucavate ascmblerski jc.cik, imate pred ncima citav racunar. Za
najveci dco vremcna izvrsavanja programa, onda je moguc i drugaciji pristup. Pro- one koji proucavaju arhitel-.turu racunara. pi,anje ascmbkrskog k.od,t Jedim je nacn
gram se prvo napi;e najcziku visokog nivoa. Zatim sc izvrsi niz merenja da hi se utvr- da ;,tcknu stvaran utisak u racunaru na nivou :.~rhitckture.
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.
Poglavlje 7: Nivo asemblcrskog jezika 7.1 Uvod u asemblerski 507
506

izvrsni binarni program (engl. executable binary program), koji se izvrsava tek sabiranje, oduzimanje, mnozenje i cleljenje, ali malo ko pamti ekvivalentne brojcmc
kada je prevodenje zavrseno. Pri prevodenju postoje dva jasno razgranicena koraka: vrednosti masinskog jezika. Programer na asemblerskom jeziku treha samo da pamti
simbolicka imena, a ascmbler ih automatski prevocli u masinske instrukcije.
1. Generisanje ekvivalentnog programa na ciljnom jeziku.
lsto vazi i za aclrese. Programer koji pise program na asemhlerskom jeL.iku m.Jze
2. lzvrsavanje novonastalog programa.
~
davati memorijskim lokacijama simbolicka imena i prepustiti asembleru da promL1e
Ova dva koraka se ne odvijaju istovremeno. Drugi korak ne pocinje pre nego sto njihove ispravne numericke vrednosti. S clruge strane, programer na masinskornjezi-
~··
r,1. se prvi potpuno nc zavrsi. U interprctiranju postoji samo jedan korak: izvrsavanje ori- ku uvek mora cia racli s nurnerickim vrednostima adresa. Zbog toga clanas vise nikc ne
t{:' ginalnog izvornog programa. Nije potrebno najpre generisati ekvivalentan program, programira na masinskomjeziku, maclaje pre par clecenija, clokjos nisu hili izmisljeni
~·~ mada se ponekad izvorni program pretvara u meduohlik (npr. Javin hajtkod) koji se asembleri, to bilo uobicajeno.
~· lakse intcrprctira. Osim svojstva preslikavanjajedan najedan u masinske instrukcije, asernblcrskije-
f? Kada se izvrs<iva objektni program, ucestvuju samo tri nivoa: nivo mikroarhitek- zici irnaju jos jedno svojstvo koje ih jasno razlikuje od programskih jezika visokog
~~ ture, nivo ISA i nivo operativnog sistema racunara. Prema tome, tokom izvrsavanja se ni voa. Prograrnerima na asemblerskom jeziku clostupne su sve mogucnosti i instr,Jk-

.,~~
u memoriji racunara mogu naci tri programa: korisnicki objcktni program, operativni cije ciljnog racunara, sto nije slucaj s programcrima na jezicima visokog nivoa. Na
\~
sistem i mikroprogram (ukoliko postoji). Od originalnog izvornog programa ne ostaje primer, ako ciljni racunar ima bit prckoraccnja, program napisan na asemblerskomje-
i'
t:O ni traga. Na taj nacin se broj nivoa koji postojc tokom izvrsavanja rnoze razlikovati od ziku moze ga proveravati, ali program napisan na Javi to ne moze da ucini clirektllO.
~ ,.
broja nivoa koji postoje pre prevodenja. Treba primctiti da mi nivoc clcfiniserno sku- Ascmblerski program mozc cia izvrsi svaku instrukciju iz skupa instrukcija ciljnog
if
,, porn instrukcija i jezickih konstrukcija koje su dostupne programeru (ne ulazeci u racunara, sto program napisan na jeziku visokog nivoa nc moze. Ukratko, sve stu se
i; nacin implcmentacijc), dok drugi au tori ponekad nivoe jasno dele prema tome da lise moze uraditi na masinskom jeziku mo:l.e se uracliti i na asemhlcrskom jeziku, wk
1:, implemcntiraju tehnikom interprctiranja u hoclu ili tehnikom prevodenja. mnoge instrukcije, rcgistri i slicne mogucnosti nisu dostupni programeru najezikuvi-
(i sokog nivoa. Jezici za programiranjc sistema, kao sto je C, cesto su na pola puta iz-
·~
!~c
'?.
medu ove dve krajnosti; sintaksa irn je kao u jezicima visokog nivoa, a pris:up

i 7.1 UVOD U ASEMBLERSKI JEZIK racunam slicniji asemhlcrskom JC/.iku.


Pomenimo na kraju jos jcdnu vaznu razliku. a to je cia program napisan na asem-
~~ Programskc prcvodioce mozemo grubo svrstati u dve grupc, prema medusobnom hleru moze cia se izvrsava samo na jcclnoj porodici racunara, dok program napisanna
odnosu izvornog i ciljnog jezika. Kada je izvorni jeL.ik u sustini simbolicka prcdstava jeL.iku visokog nivoa potcncijalno mozc da se izvr~ava na vi~c razlicitih racunara. Za
i~ numerickog masinskogjczika, prevodilac se mtL.iva ascmblcr (engl. assembler). a iz- mnoge primenc, mogucnost prenosenja softvera s jcdnog racunara na clrugi od ve!Jkc
:~
:~'
vorni jczik sc naziva ascmhlerski jczik (engl. assembly lwzgua;;e). Kada sc kao iz- je prakticnc vaznosti.
~~; 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
7.1.2 Za sta treba koristiti asemhlerski jezik'?
kompajler (engl. compiler).
!~­ Programiranj.: na ascmblerskom jcziku je tcsko. U tone trcha sumnjati. Ono nijc
..il 7.1.1 Sta je asemhlerski jczik'? za ncodlucnc i malodusne. Osim tuga. pisanjc programa na asembkrskomjeziku ow-
zima mnogo vise vrcmena ocl pisanja programa najeziku visokog nivoa. Takodc treha
u cis tom ascmblerskom jeL.iku, svaka naredba proizvodi tacno jednu masinsku in- mnogo vi~c vremcna da se u njemu pronadu i isprave greske, a takvi programi S·? i
strukciju. Drugirn recirna, izmeL1u rnasinskih instrukcija i narcclaha u ascmbkrskom mnogo tdc Lldrzavaju.
programu postoji preslikavanjejedan najedan. Ako svaki red u programu napisanom Kadaje vee we tako crno. zasto bi iko pozeleo da pise pmgrame na ascmhlcrshm
na asemblerskom jeziku sadrzi samo jednu naredhu. a svaka masinska rec sadrzi jeziku'! Za to postoje dva razlogu: poboljsanjc pcrfonnansi i ;iri pristup racunaru. Pre
samo jcdnu masinsku instrukciju, onda ce n-redni asemblerski program proizvesti svega, iskusan programer na asemblcrskom jcziku cesto moze da napravi mno;;o
i masinski program od ll reci. kraci i mnogu brzi kt)d od programcra najeziku visokog nivoa. Brzina i velicina sura
Programi se pisu na ascrnblerskom jeziku. a nc na rnasinskom (u obliku heksade- ncke primenc presudan cinilac. Mnogc ugradcne aplikacije, kao sto su kod na intdi-
cimalnih brujcva). t.ato sto je na asemblerskom jcziku mnogo laksc programirati. gentnoj kartici, kod u nmbilnom tckfimu, upravljacJ,;i programi za nrcJaje. potpro-
Vclikaje olaksica kada koristite simholicka imena i adrese umesto hinarnih iii oktal-
,,li nih. Vccina programera moze da zapamti da su ADD. SUB, MUL i DIV skracenice za
grami BIOS-a i unutra;nje petljc aplikacija visokih performansi. spadaju u o,u
I;

!t
[~
I
F
~;
t
'
512
Poglavlje 7: Nivo asemblerskogjezika 7.1 lJvod u asemblerski jezik 513

It
•.

jcr su virtuclne aurcse 32-bitne (SPARC verzije 8) iii 44-bitne (SPARC verzije 9) a in-
7.1.4 Pseudoinstrukcije
~trukcije mngu Ja sadrze najvisc 22 bita ncpnsrednih podataka. Zato su uvek potrehne Pored simbolickog zadavanja instrukcija koje racunar treha da izvrsi, program :1a
<.~

~· Jve instrukciJe da bi se zadali svi bitovi virtuclne aurese. Instrukcija asemhlc:rskom jeziku moze da saclrzi i komande samom asembleru (na primer, da d:J-
~· SETHI %HI(I).%R1 deli neki smdtajni prostor ili cla listing stampa na posebnim stranicama). KomanJe
~· asembleru zovu se pseudoinstrukcije ili ponekad direktive asembleru. Tipicnu
anulira 32 najznacajnija hila i 10 najmanje znacajnih bitova (64-bitnog) registra R1, a
pseudoinstrukciju vee smo videli na slici 7-2(a): ow. Jos ncke pseudoinstrukcijc na-
I
~:
zatim umccc gornja 22 bita 32-bitne aurcse argumenta I u pozicije bitova ou I 0 do 31
iz regi stra R 1 .
vedene su na slici 7-3. One su uzetc iz Minnsoftovog asemblera MASM za porodicu
Intclovih procesora.
ri'l; Sledc<3a instruh·ip
·~;
!';i LD (%R1T%L0(1)],%R1 Pseudoinstrukcija Znacenje.
:fr:
sabira sadr,laj registra R1 i I 0 najmanje znacajnih bitova adrese argumenta Ida bi SEGMENT Zapocinje nov segment (k6d, podaci sa zadatim atributima
e
;!, (>hraL,Pvala njcgovu punu auresu, preuzima rec s te aurese u mcmoriji i smestaje u re- ENDS Zavrsava tekuci segment
~~· gis tar R 1. Na konkursu :r.a izbor lepotice. ovakve instrukcije bi. na skali od 0 do I 0, L.a-
fl ALIGN Upravlja poravnanjem sledece instrukcije iii sledecih podataka
.;- radile -20 poena. ali SPARC ne postoji zbog lepute svug asemblerskog jczika. On je EQU Definise nov simbol jednak zadatom izrazu
tako napravljcn radi pnstizanja visnke brzine izvrsavanja i taj posao obavlja dnbru.
PorndiL"a proL"esma Pentium, 680x0 i SPARC dnzvoljavaju rnanipulisanje bajtovi-
DB
----=---=. Dodeljuje smestajni pros tor za jed an iii vise (inicijalizovanih) bajtova

~
ma, recima i dugackim opcranclima. Kako da ascmblcr zna staje sta'i I ovde. kan ira- ,. D~W Dodeljuje smestajni pros tor za j.ednu iii vise (inicijalizovanih) 16-bitnir I'
J (reci) podataka
·~ nijc. autmi asemblera biraju razliCita rcscnja. Na Pentiumu 4 registri razlicitc duzine
DO Dodeliuie smestajni prostor za 1ed1 1u iii vise (inicijalizovanih) 32-bitnir .
•r nu,c razlicita imcna, pa sc registar EAX koristi za manipulisanjc 32-bitnim stavkama, t 1' . '.,
(avosirUKin reCi) podataka ___ j
,. AX 1a 16-hitne, a rcgistri ALi AH za 8-bitne stavke. Autori Motorolinog ascmblera od-
0 , nn
~ _ 1 Dodeljuje smestajni prostor za jednu iii vise (inicijalizovanih) 64-bitnir I
lucili su se za suliksc.Tako. umesto da se podskupovima DO i slicnim daju drugacija ~ _____J (cetvorostrukih reCi) podataka -------1
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
PROC I Zapocinje proceduru ... _ . J
-·---~-j
ENDP Zavrsava proceduru
i LDSW Ja hi se ucitali o;.naceni hajtovi. polurcci iii reci u 64-bitni rcgistar). Sva tri
MACRO Pocinje deliniciju makroa
·.:'
~;'
pt•stupka su ispravna, ali opel ukazuju na proizvuljnost nacina organizovanja ascm-
hlcrskPg jezika.
ENDM Zavrsava definiciju makroa . J
Tri ascmblcra sc ratlikuju i po tome kako rczcrvisu prostor za podatke. Autori ln- PUBLIC lzvozi ime definisano u ovom modulu j
·,,
·' tei<J\ ug asemhlerskog jczika Dl to su izabrali DO (Detine Double- cletinisi dvostruku 1EXTERN 1 Uvozi ime iz drugog modula -1
~LUDE
~t

rcC '· posto je rcc na proccsoru 8088 bila 16-bitna. U Motorolinom asernblerskom je- I Preuzima i ukljucuje drugu datoteku l
z.iku t[ahr~di su komandu DC (Deline Constant- de!inisi konstantu). Autori SPARC- ~IF Zapocinje uslovno asembliranJe zasnovano na zadatorn izcaz~-~
-ovu~ asemblcra su od samng pocetka gravitirali komanui .WORD. Naravno, nvc raz- I ELSE_ Zapocinje uslovno asembli:anJe ak_o gornji ~~v IF nije ispunj~__j
like su takoJe proizvoljnc.
Polje La operande u narcdbi na asemblerskom.Jcziku sluzi za :r.adavanje adrese ire-
IENDIF Zavrsava uslovno asernbliranje_______ (
~MENT Definise nov znak za pocetak komentara
~;~:tar:t 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
IPAGE Generise prelom strane u listingu
'
mlrc:dujc gdc treha skociti. Operandi mugu cla budu registri, konstante. memorijske lEND Zavrsava asernbler _ _ _ _ _ _ _ _ _ _ _j
l
kbcije i dr. Slika 7-3. Nekc p,euJoinstrukcijc kojc pustuje u a.scmbkru <.'>J.\S\li £a l'enuum-l ascn;hkr
U poljc z.a komcntarc programcri upisuju objasnjcnja o radu programa, kmisna ilVIASi'viJ.
·kel~im pmgramerima. koji ce tnozda kasnije upnlrebJjavati i poddavali program (iii
mu!o'u koristiti i samum autoru nakon godinu dana). Program na ascmblcrskomjeziku Pseudoinstrukcijum SEGMENT 1.apocmje nov segment. a Lavrsava sc pc,t:udninslruk-
jc: be,' ta\.- vc dokumentacijc neratumljiv i iskusnim programcrima. ukljucujuci i autu- cijom ENDS. Dozvoljeno je zapuceti nov segmem s kodom, zatim zapoceti sc'gment;
ra programa. Polje La komcntarc je namcnjeno iskljucivo ljudima: onn nc uticc na podacima, pa se opet vraliti na segments kodom itd.
,. ptP:C'> prcvodenp. ni na generisani program.
~~

~i
;;~
510 Poglavljc 7: Nivo ascmblerskog jezika 7.1 Uvod u ascmblerskijczik
5ll

7.1.3 Format naredhe na asemblerskom jeziku Oznaka Opkod Operandi Komentari


lako struktura naredbe na asemblerskom jeziku jasno odrazava strukturu masinske FORMULA: MOV EAX,I
ADD ; registar EAX = I
instrukcije koju predstavlja, asemblerski jezici za razlicite racunare i razlicite nivoe EAX,J ; registar EAX = I + J
MOV N,EAX
medusobno su dovoljno slicni da se moze govoriti o asemblerskim jezicima uopste. ; N =I+ J
Slika 7-2 prikazuje fragmente programa na asemblerskomjeziku za Pentium 4, Mo- I DO 3
J DO ; rezervise 4 bajta inicijalizovana na 3
torolu 680x.O i (Ultra)SPARC, koji izracunavaju N =I+ 1. U sva tri primera, naredhe 4
N DO ; rezervise 4 bajta inicijalizovana na 4
0
koje se nalaze iznad praznog reda obavljaju izracunavanje. Naredbe koje se nalaze is- ; rezervise 4 bajta inicijalizovana na 0
pod praznog reda jesu komande asembleru da rezervise memoriju za promenljive I, J (a)
iN- to nisu simbolicke predstave masinskih instrukcija. Oznaka Opkod Operandi
-----· Komentari
Postoji vise asemhlera za porodicu Intelovih procesora, svaki sa svojom sintak- FORMULA MOVE.L I, DO ; registar DO = I
som. U primerima iz ovog poglavlja koristicemo Microsoftov asemblerski jezik ADD.L J, DO ' ; registar DO = I + J
MOVE.L DO,N ; N =I+ J
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 I DC.L 3
J DC.L ; rezervise 4 bajta inicijalizovana na 3
procesorom SPARC izabrali smo asembler firrne Sun. Sve sto kaz.emo vazi i za ranije 4
N , rezervise 4 bajta inicijalizovana na 4
(32-bitne) verzije procesora SPARC. Zbog konsistentnosti, u ovoj knjizi cemo opko- DC.L 0
; rezervise 4 bajta inicijalizovana na 0
clove i registre svuda pisati velikim slovima (konvencija koja vazi La Pentium 4), iako (b)
tu Sunov asembler ocekuje mala slova. Oznaka Opkod Operandi Komentari
Naredbe asemblerskog jezika imaju cetiri dela: polje za oznaku (engl. Label), FORMULA: SETHI %HI(I).%Rt -~~-

1Rt = najznacajniji bitovi adrese I


polje za operaciju (opkodl. polje za operande i polje za komentare. Oznake, pomocu LD (%R1+%LO(I)],%R1 ! Rt =I
kojih se memorijskim adresama daju simbolicka imena, neophodne su u izvrsnim na- SETHI %HI(J).%R2 ! R2 = najznacajniji bitovi adrese J
LD (%R2+%LO(J)],%R2 ! R2 = J
redbama da bi se na njih moglo skociti. One su potrebne i reCima podataka kako bi se NOP
pudacima moglo pristupiti preko njihovih simbolickih imena. Ako je nareclba oznace- 1cekaj da J stigne iz memorije
ADD %Rt,%R2,%R2 ! R2 = Rt + R2
na, oznaka ( obicno) pocinjc u koloni I. SETHI %HI(N),%Rt ! Rt = najznacajniji bitovi adrese N
f.~ Svaki od tri dela na slici 7-2 ima cetiri oznake: FORMULA., I, .I i N. Obratite ST %R2,(%Rt +%LO(N)]
;H. paznju nato da u asemhlerskim JCZicima za SPARC iza svake uznake obavezno sledi 1: .WORD3
~t~ dvotacka, sto nije slucaj kod Motorole. U asemblerskimjezicima za Intel, dvotackaje J: .WORD4
I rezervise 4 bajta inicijalizovana na 3
··ff N: .WORDO
I rezervise 4 bajta inic1jalizovana na 4
~~·. potrebna samo it.a oznake za k6d, aline i iza oznake za podatke. Nikakvi fundamen- 1 rezervise 4 bajta inicijalizovana na 0
talni razlnzi ne stojc iza ovih razlika. Jednostavno, autori razlicitih asemblera cesto (c)
imaju razlicit ukus. Ni zbog jednog detalja arhitekture uvih procesora nije potrehno
~t Stika 7-2. lnacunavanje izr:ua N =I+ J (a) Pcnliurn -l. lhJ Motorola 6~0xtJ.
~. cia dvotacka postoji iii dane postoji. Zapis s dvotackmn ima izvesnu prednost jer se (cJ SPARC.
~~.
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 Polje za opkod sadrzi iii simbolicku skraL'enicu opJ..oda (ako je naredba simbolick.l
ne bi moglo znati .~ta jL' oznaka, a sta opkod, kada stoje u jed nom redu. Dvotacka ot- predstava rnasinske instrukcije) iii komandu asembleru. lzbor odgovarajuceg imen.1
klanja ovu potencijalnu zabunu. je stvar ukw,a autora asemblera ito se i vidi na razlicitim asemblerima. Autori lntelo-
Nezgoclna osobina nekih asemblerajeste to sto oznaka moze da ima najvise sest iii vog asemblera ocllucili su da ime MOV oznacava citanje sadrzaja registra iz memorije,
osam znakova. Nasuprot tome, u vecini programskihjezika visokog nivoa dopustena alii upisivanje sadrzaja registra u memoriju. Autori Mutorolinog asemblera su za ob~
su proizvoljno dugacka imena. Dugacka. clobro izabrana imena cine programe citlji- operacije izabrali ime MOVE. Za razliku od njih. auturi asemhlera za SPARC odlucil:
vijim i drugi !judi ih lakse razumeju. su da citanje saclrzaja registra iz memorije uznace sa LD, a upisivanje sadrzaja registr"
Svaki racunar ima registre, ali svi oni imaju razlicita imena. Registri u Pentiumu 4 umemoriju sa ST. I ovde i~:bor imena nema nikakve veze s konstrukcijom konkretnng
wvu se, na primer, EAX, EBX, ECX itcl. Motorolini registri se zovu. izmedu ostalog, racunara.
DO, 01, 02, dok registri na prucesoru SPARC imaju po vise imena. Ovde smo za njih Nasuprot tome, potreba cia se za pristupanje memoriji upotrebe dve m<tsinske in·
koristili imena %Rt i %R2. strukcije. od knjih je prva SETHI. predstavlja speciticnn svojstvo arhitekture SPAR(
~
t~i_' Poglavlje 7: Nivo asemblcrskogjezika 7.2 Makroi 517
~.~ 516
e'r~--­
~j;' da bi sc kasnije tokom njegovog izvrsavanja pozivala proceclura. Na s!ici 7-5. pozivi
MOV EAX,P
f.
~- MOV EBX,O makroa uporedeni su s pozivima procedura.
·' MOV Q,EAX
~-:
f MOV P,EBX Aspekt Pozivanje makroa : Pozivanje procedure
~-
\'i' Programer je dctinisao makro SWAP kao skracenicu za cetiri gomjc naredbe. Kada s~_£J_oziv upucuje? --~m ase_IT'bliranJa I Tokom izvrsavanja programa
,,
~

~;,. Da li se telo ugraduje u objektni nn7;.,') I Da : Ne


~ MOV EAX,P SWAP MACRO program svaki put kada se uputi poziv? 1
I
~' MOV EBX,O MOV EAX,P oa li se instrukcija za pozivanje ~~----- --)[);-
•;).

O,EAX MOV EBX,Q procedure ugraduje u objektni I I


MOV program da bi kasnije bila izvrsena? •
MOVO,EAX
,~~-~
1

I
MOV P,EBX
Mora li se posle poziva umetnuti 'loa
MOV P,EBX instrukc!Ja za povratak u glavn1
ENDM ~mgffim? _
MOV EAX.P
I Koliko se kopija t~la pojavljuj~-- Jedna za sv~ki-poziv Je._d_n_a_ _ _ _ _ _ _ __
fl:l

MOV EBX,O
SWAP j u objektnom pro:::.g_ra_m_u_?_ _ _ _ _ __ J _ _ _ _ _ _

MOV O,EAX 1

Slika 7-5. Pozivanj~ mal-.rua i po1.ivanjc procedura.


MOV P,EBX
SWAP
Koncepcijski je naJholje da proL·es ascmbliranja po:-,matrate kao cla se odvija u dva
prnlaska. Pri prvom prolasku snimaju se dd1nicijc svih makroa i prosiruju odgovara-
(a) (b)
juci poL.ivi. U clrugom prola.sku rezultujuci tekst se obraduje bas kao claje postojaou
Stika 7-4. K<HJ na ascmbkrskom je;.iku ta dvostruko ra;.mcnjivanjc vrcdnusli pronll·nljivih Pi 0. prvubitnont programu. To znaci da je izvorni prugram ucitan i pretvoren u drugi pro-
(a) Bcz makroa. ib I S rnakrootn. 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
laku se ascmbkri pomalo razlikuju po nacinu dclinisanja makroa. svima imje za- se propu~ta kruz asemblcr.
jednicko slcdeee: Treba stalno im~tli na umu daje Frogram znakovni niz sastavljen ocl slova, ciLL-a,
l. Zaglav lje makrua koje predstavlja imc makroa. meduprt),tora. L.nakuv a interpunkcije i makuva za prclazak u no vi red. Prosiriva11je
rnakroa znal-i d:t se udrcdeni podnizm·i ovo;Jniza zamenJuju clrugim znakovnim ni-
2. Tekst koji predstavlja tclo rnakma.
.cminn !\!chani1am za r:rd s mal-..roiJ,Ja manipuli;e znakovnim nizovima, bez nbzira
3. Pseudoinstrukcija koja oznacava kraj ddinicije makroa (npr. ENDM).
na njilwvrl ;,n,tc~:nic:.
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 pt1j~t\ i tme 7.2.2 :\lakroi s parametrima
makrua (SH~\P 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- :\lehaniLam ~~~ raJ s nnkruuna h•,ji sttiu mahlpre opisali moze sc upotrebiti 1.a
menjivanjc imena telom makroa- prosirivanjc makroa (engl. l!l<l<Til e.>:JWnsion). skraci '- :mje prc>g;am:, u kojima sc i-,t t ni1 imtrukcij~J vise put a ponavlja. Ccsto, medu-
1\lakro se rn>siruie tokorn asembliranja. a nc tuknm izvr\avanja pro"r~rma. Ovo lllll. prugr:un s«drL:i v1\e nizuva instrukcija ko1e su skoro identicne, ali ne i potpuno.
poscbno naglasavamo. Programi sa slika 7-4(a) i 7-4tbl dace pntprr11<> i'ti ma;in>ki kau na ,!ici 7-6ta!. Pr'vi ni; instmkcij:r rannenjujc vrednosti promcnljivih Pi Q.
kt1d. ,\ku pusmatratc sanw masinski k6d. ne moi:etc zakljuciti da li Je u program bto a drug1- prllmenlji-, ;hI< iS.
ukljuc<Cn makro iii nijc. Kada asembkr tokom prev• >denja prosiri sve Jnakr•.Jc, t'll if. u- ,\bkn) :hemhlcri rcs~t\djll prublem ,;a -;k,ml j,]enticnim nizuvima instrukcija tako
bele bri;c sve njihmc definicije. tako da nista ocl njih ne prela:i u gencrisani kfJJ. stu se u dc!iniciji mahrna nH>gu UPr>irc:bija,;rti formalni paramctri, a pri pozivanju
Pozivanje makroa nc treba me:iati s poziv<mjem prdccdura. Osnu\ :1a ,-~tJ!i!,a JC to makr< >a- -;tvarni paramdri. K~:da se ma\r,J prusiri. ,;vaki rormalni parametar u nje-
sto pu1i vanje makroa prcdstavlja instrukciju asembkru Lb zamcn! irne JWlknJa tel om ~o-~'1)111 teiu ;;u1lCitJUjL :-....: c~dgPvar~lju;.:inJ -..l':~trnin1 pan.1n1ctrorn. Stvarni pararnctri .:;e
makroa. Poziv prt'ccdurc jc masinska instrukcija ];, >ja se ugradujc u ohjcktni prugram

~ :
1:
;j,
~H
"t·;
.~ .~

:·~
~·~
~-:;·.

·('<';;
Poglavlje 7: Nivo asemblcrskog jezika 7.2 Makroi 515
514

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

tt:'
t;:-.
520
Poglavljc 7: Nivo ascmblerskog jezika 7.3 Proces asemhliranja 'i2l

~;j
Pri dudeljivanju vrednosti simbolu u polju za oznaku instrukcijc, ascmbler mora da
r:! 7.3 PROCES ASEMBLIRANJA
zna koju ce adresu ta instrukcija imati tokom izvrsavanja programa. 0 adresama koje
U narednirn odeljcima ukratko cemo objasniti kako radi asembler. lako svaki racu- ce tokom izvrsavanja imati instrukcije kojc upravo asemblira, on vodi racuna pornocu
nar ima drugaciji asemblerski jaik, proces asembliranja je u svima njima dovoljno promenljive zvanc ILC (Instruction Location Counter- hrojac lokacija sa instruk-
slican da bismo ga mogli objasniti u opstim crtama. 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
7.3.1 Asembleri s dva prolaska 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
Posto se program na asemblerskom jetiku sastoji od nizajcdnorednih naredaba, na biti i jcdan primer. Osim toga, kada bi pustojao globalni knnkurs La najmanje citljiv
prvi pogled bi bilo logicno da asembler ucita jednu naredbu, prevede je na masinski asemblerski jezik, jezik procesora SPARC bio bi siguran favc,rit.
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- Oznaka Opkod Operandi Komentari Duzina ILC
----
tegija je pogrdna. MARIA: MOV EAX,I EAX =I 5 100
Razmotrite slucaj kada je prva naredba skok na naredbu L. Ascmbler ne moze da MOV EBX.J EBX = J 6 105
prcvede ovu naredbu sve dok ne sazna adrcsu narcdbc L. Naredba L se moze nalaziti ROBERTA: lviOV ECX,K ECX = K 6 111
pri kraju rrngrama, ra ascmbler nc mozc da sazna njcnu adresu dok ne procita skoro IMUL EAX,EAX EAX = 1'1 2 117
IMUL EBX,EBX EBX=J'J 3 119
citav program. Ova teskoca nosi imc problem zbog refcrcnciranja unapred (engl. IMUL ECX,ECX ECX = K 'K 3 122
jimmnl rcfi'ri'IICI' pmhlcm) jer je simbol L upotrcbljen pre nego sto je detinisan; dru- MARILYN ADD EAX,EBX EAX = I • I + J • J 2 125
gim recima. referenciran je simbul cija ddinicija tck sledi. ADD EAX.ECX EAX = I • I + J ' J + K ' K 2 127
Sa ovakvim. tzv. isturenim rcferencama muze se postupiti na dva nacina. Prvu. STEPHANY: JMP DONE skoci na DONE 5 129
ascmbler mole dvaput da procita izvorni program. Citanje izvurnug programa znve se Slika 7-7. Brnj:rC lobcija \01 inslrukcijama ,,ILCJ vodi racuna o rncnmrijskirn adrcsarna na kojece
proJazak (engl.[J(ISS); prevodiJac ko.Ji i~:vnrni program Cita dvaput ZOVC Se prevodilac sc instrukcije ucilati. U ovom pr-imcru. naredba pre onwke :VI ARIA zauzima 100 bajlova.
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 Vc'c'ina ~tscrnbkra u prvom prolasku kori-;ti bar tri interne tabele: tabelu simbola.
poznatc su vrednosti svih simbola, tako dane postllje isturcnc n:fcrcncc i svaka narcd- tabclu pscuduin.strukcija i tabelu opkmlova. Pu potrcbi sc dodajc i tabcla s literalima.
ba sc mo?.e procitati, asemblirati i uputiti u izvrsnu datotcku. lako jc u opisanom pri- Tabcia simbula ima pu jcclnu odrednicu La svaki simbol, kao slU je prikal'ano na slici
sturu neophodan dndatni prolatak ascmblera, on je knncepcijski jcdnostavan. 7-S. Simboli '" ch:lini~u ebplicitno tnpr. [N:uduinstrukcijom EOU) iii tako ~to se
Drugi pristup podrazumeva prvo citanje izvornog programa i pretvaranjc u medu- uputrebc kao t'Zll~lkc (en;!. labcisl. SvakJ odrcdnica tabcle simbola sadrzi sam sim-
ublik koji se smesta u tabclu u memoriji. Zatim se u drugom prolasku kroz a~::mbler bul 1iii p< 1Ltzi vac na n1c·ga 1. njcglrcu broJI:anu Hednost, a ponekad i drugc informa-
propusta tabela. a ne izvorni prugram. Ako p,;stoji dmoljno mernnri.Jc (iii virtuclnc cije. Dudatn:2 inf<,rmacij.: mugu da ubulnate
memorije). ovim pristurorn sc stcdi vremc potrebno za ulazno-izlaznc opcraciJC. l. Duiinu JWlja /~1 podalke. p<>vezanog sa simlwlom.
Ukoliko se zahteva i listing. onda trcba snimiti ceo iL.vorni program. Lajedno , ku- 1
Bituve ta relpJ..:aciju. (Da li stmbul mcnp \rcdnost ako se program ucita na
mentarima. U slucaju da listing nije potreban, onda sc meduoblik programa n11··ic adt·e'iu drugaciju ()done k.o.JU je ctsemhier prctpnsta,·io'?)
svesti samo na bitne clemente.
cl. Da li .JC simbol d<lSlUpan i/:\a[] prucedure.
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 pro~iri­
i-sir~bol 1Vrednost i Druge informa~
vanje mak.roa kornbinujc u jcdnom rrolasku. r-.;!A~s!A --t1 0,"----t ~:
! I> I . :, ..) I

r·P"os-Ei=i=rA ! 111
7.3.2 Prvi prolazak r---·--·-----;-------;---- - - - - - - - 1
! MARILYN ::25
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-
@~EPH.t~~~---L~-~~ -~~-- _____ j
Siika 7-S. T:Lbcia '\imbnla /~i ;)r~.,granl -.;a slike 7-/
je simboJicko j 111C pseud<.1instrukcijom kao StU jC:
BUFSIZE EOU 8192
522 Poglavlje 7: Nivo asemblerskog jczika 7.3 Proces asembliranja 523

Tabela opkodova sadrzi bar jednu odrednicu za svaki simbolicki opkod (mncmo- nova odrednica kad god se naide na nov literal. Posle prvog prolaska, ova tabela se
nik) koji postoji u asemblerskom jeziku. Slika 7-9 prikazuje deo tabele opkodova. urcduje i iz nje sc izbacuju duplirane odrednice.
Svaka odrednica sadrzi simbolican opkod, dva operanda, brojcanu vrednost opkoda, Slika 7-10 prikazuje proceduru koja moze da posluzi kao osnova za prvi prolazak
duzinu instrukcije i broj tipa koji razvrstava opkodove u grupe. u zavisnosti od broja asernblera. Stil programiranjaje posebno vrcdan paznje. [rnena procedura su tako iza-
i vrste njihovih operanada. brana da se odmah moze prepoznati sta procedura radi. Najvaznije je to sto slika 7-10
Razmotrimo, kao primer, opkod ADD. Ako instrukcija ADD ima registar EAX kao predstavlja marsrutu prvog pro1aska koja, mada nijc potpuna, preclstavlja dobru po-
prvi operandi 32-bitnu konstantu (irnmed32J kao drugi, onda se koristi opkod Ox05, a laznu tacku. Ona je dovoljno kratka da se lako shvati i da istakne sledeci korak
duzina instrukcije je S bajtova. (Za ri-hitne i 16-bitne konstante koriste sc razliCiti op- - pisanje procedura koje se u njoj pozivaju.
kmlovi, sto nije prikazano.) Ako sc instrukcija ADD koristi s dva registra kao opcran- public static void pass_one( ) {
dima, instrukcija je duzinc 2 hajta. a opkod jc OxOL (Proizvoljno izahrana) klasa II Ova procedura je marsruta prvog prolaska jednostavnog asemblera.
instrukcija 19 obuhvata sve kombinacije opkodova i operanada koji postuju ista pra- boolean more_input ~true; II indikator koji zaustavlja prvi prolazak
vila i obraduju sc na isti nacin kao i instrukcija ADD koja kao operandc ima elva regi- String line, symbol, literal, opcode; II polja instrukcije
stra. Klasa instrukcija u stvari oznacava proceduru unutar asemblera koja se poziva za int location_counter, length, value, type; // razne promenljive
final int END_STATEMENT = · 2; II signalizira kraj ulaznih podataka
obradu instrukcija te klasc.
location_counter = 0; II asemblira prvu instrukciju na adresi 0
Opkod f
Prvi operand+Drugi ;;perand Heksadeci- Duzina Klasa initialize_tables( ); II opsta inicijalizacija
I____ -·-~· __-=f:mfalni opkod instrukcije instrukcija
- - 37 1 6 while (more_ input){ II more __ input se postavlja na vrednost false
~---~h;:;;med32_ _ _ 05 . 5 4 ---1 II instrukcijom END
-------,---- . line~ read_next_line( ); II preuzmi red ulaznih podataka
reg ,01 2 19
length= 0; II# bajtova u instrukciji
irnmed3~---.E5
~~---~ .1~9 ---~
AND 1 EAX _ type= 0; II kog tipa (!armata) je instrukcija?
i AND Jreg reg 21
L,: _ _ ----- ----- .
if (line_is_not_cornment(line)) {
Stika 7-9. Dclovi tahek opkodova La '"emhkr Pentiurna 4.
symbol= check_for_syrnbol(line); II da li ovaj red predstavlja oznaku?
if (symbol I~ null) II ako predstavlja oznaku, zabelezi simbol
Pri upotrcbi nckih ascmblera. programcri mogu da koristc instrukcije s neposred- IIi vrednost
nim adrcsiranjem cak i kacla takva instrukcija ne postoji u ciljnom masinskom jeziku. enter_new_symbol(symbol, location_counter)•
S takvim .. pscudoncposrednim'' instrukcijarna radi se na slcdeei nacin. Asembler rc- literal~ check_for_literal(line): /Ida li red sadrzi literal?
zervise mcnwriju za nep<lsredni operand na kraju programa i generisc instrukciju koja if (literal ~~null) II aka sadrzi literal, unesi ga u tabelu
'~·!
je referencira. Na primer. ccntralni racunar IBM 3090 nema instrukcije s ncposrcd- enter_new_literal(literal):
~ nim opcrandima. Ipak. prngramcri mngu da napisu
~' II Sada se odreduje tip opkoda. · 1 znaci nelegalan opkod.
~~
L 14.~F'5' opcode ~ extract_opcode(line); // pronadi rnnemonik opkoda
f..
~-
type= search_opcode _table(opcode); // pronadi format (npr. OP REG1 ,REG2)
kaku bi u n:gistar 14 ucitali konstantu 5 kao celu ree. Na nvaj nacin programer nc
' if (type < 0) // ako nije opkod, da li je pseudoinstrukcija?
nwra da ck:.plicitno upi,;ujc ps.:udoinstrukciju za dodeljivanjc reci inicijalizovane na type~ search pseudo_table(opcode):
vrcdnl>st :5. da j<lj dajc nznaku ida zatim koristi oznaku u instrukciji L. Konstante za switch(type)( // odredi duzinu ave instrukcije
kPjc a.,cmblcr auttllnahki re;:crvise mcmoriju zovu se literati (engl. lireru/s). Osim case 1. length~ get_length_of_Jype1 (line); break;
sto programera pnstcduju malu pisanja. literali pobnljsavaju citljivost programa jcr case 2: length~ get_length_of_type2(1ine); break;
omoguca\aju da -,c vrednost konstante pojavi u izvornoj naredbi. Ascmblcr u prvom II druge slucajeve uneti ovde

,..
~.
pmLt~ku mora da napravi tabclu svih litcrala koji sc kuriste u programu. Sva tri racu-
nar~t 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
~-· uobicajc·ne. ali -;u nebda bile retkc. Verovatno su zbog masovnc upotrebc litcrala
write_temp_file(type. opcode, length, line); // korisne informac1je za drugi prolazak
location_counter= location_counter +length; // azuriraj location_counter
knnstruktori ra(·unar.t :-.inatili daJC ncposredno adresiranje dobra ideja. Akn '>LI literati if (type=~ END..STATEMENT){ // jesmo li zavrsili sa ulaznim podacima?
~ putrcbni, tabcb s literalima odrZa.va se tokom asembliranja, pri cemu se u njoj pravi more_input ~false; II aka jesrno, dovesti stvari u red

II
Poglavljc 7: Nivo asemhlcrskog jezika 7.3 Proces asembliranja 525
524

rewind_tempJor~pass_two( ): II npr. premotaj privremenu datoteku (temp) Drugi prolazak manje-visc lici na prvi: procedura ucitava i obraduje jedan po je-
sort_literal_Jable( ); II sortira1 tabelu literala dan red. Posto smo tip, opkod i duz.inu zapisali na pocetku svakog reda (privremene
remove redundanUiterals( ); II i ukloni duplikate iz nje 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
Slika 7-10. Prvi prolaz.ak jcdnostavnog ascmh!t'ra. 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
Ncke od ovih procedura bice relativno kratkc. kao ~lu JC procedura prorcduje pristupanje disku.
chl'ck_Jin ~sym/)()1. kop samo vraca simbol kao znakovni niz ako simbol postoji, a Originalna naredba izvomog programa i objektni kod koji je od nje generisan
vraca null ako simbol ne postoji. Drug:c procedure. puput gct_lcngth_of'_typel i ( u heksadecimalnom formatu) tad a sc rnogu odstampati iii smestiti u bafer t.a kasniJC
ger_ll'ngth_of"_t)pe2. mogu da hudu du?.e. a i one mogu da pozivaju druge procedure. stampanje. Posto se podcsi promenljiva !LC, preuzima se sledeca narcdba.
Broj tipova, u opstcrn slucaju, naravno ncce hiti dva, vee cc zavisiti od jezika koji se
public static void pass_two( ) {
ascmhlira i tipova instrukcij<t kuje on ima. II Ova procedura je marsruta drugog prolaska jednostavnog asemblera.
Strul-.turiranjc programa na nvaj naC:in. usim olaU.am)g: prug:ramiranja, ima i druge boolean more_input =true; II indikator koji zaustavlja drugi prolazak
prcdnosti. Al-u ascrnblcr pi;e grupa !Judi, razliC:itc pmccdure ce pisati razliciti pro- String line, opcode; II polja instrukcije
grarm:n. S vi ( nC/godn i) detalji prcu/i manp podataka skri vcni su irncnum int location_counter, length, type; II razne promenljive
rew!_tw>:r_/ine. ;"\1-.u hude potrehno da sc oni promcnc (na primer. zbog promene ope- final int END_STATEMENT =- 2; II signalizira kraj ulaznih podataka
rativnog sistc!lla). tO Ce pogoditi SJillO JCJilll sekundarnu pruccJuru. a gJavna proce- 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
dura fhlSS_!>IZC ostace kakva je i hila.
Dol-. cila progral11. procedura prvog pwbska Il1l'f"a da rasclani svaki red da hi u locat1oncounter = 0; II asemblira prvu instrukciju na adresi 0
njcmu prun<t~la upk"d i npr. ADD). utvnlila njcgov tip (u osnuvi, kombinaciju opera-
nada) i i/l"aCunala du/inu in,tru!-.cij~. OH~ infonnaci_1c su potrebne i za drugi prolazak, while (more _input){ II more _input se postavlja na vrednost false
pa hi sc m"gle c'kspiicitnu ;.api-;ati da se rl'd nc bi pnnmo morao analizirati od poc~t­ II instrukcijom END
LL r>kdulllli. uplsivanje prd.u ulalllc dalokkc iza:vacc vise ulazno-izlaLnih opera- type= read_type( ); II uzmi polje za tip sledeceg reda
cija. J)a lt _ic bdljc im~tli vi;e uLuno-i;Lv.nih <lpcracija uz manjc analiziranja iii manje opcode = read_opcode( ): II uzmi polje za opkod sledeceg reda
length= read_length( ); II uzmi polje za duzinu sledeceg reda
ub!tlo-i;b;niil Ol'c'l"Clc·ip uz vi~c arLtli!;ran;.t. ;avi:;i oJ relativnih br;:ina proccsora i
line= read_line( ): II uzmi red ulaznih podataka
diska. ud eiiLhiwsti sistema datutcka i drug1h C:inilaca. U nasem primeru ispisacemo
privrem.cnu d:ttutd~u k<'_)a c~ ;,adrzati tip. upkud. du/.inu reda i s:lm red ulaznih poda- if (type I= 0) { II tip 0 je za redove s komentarima
takcl. J'rocccliira c•: U drugr•lll pn,Jask\1 Ul1h.':;t•J sir·<lVUg rcda podataka UCitavati OVako sw1tch(type){ II generise izlazni k6d
innc:njcn r.:d. case 1: eval~type1 (opcode, length. line, code): break:
Kada se uC:iu i pseu<k•itblruL.:ija END. zavr:~L'll)t: prvi prolazak. Tada se. akojc to case 2: eval~type2(opcode, length. line. code); break;
pPti·chno. mugu -"'r:ii-~lll tdhclc :,imhula i liter:.da. U ,mriranoj tabeli litcrala mogu se II ovde dolaze drugi slucajevi (case)

potn/.iti durlik:tli i iz.nj,· i.'bilciti.


wnte_output(code); II upisivanje binarnog koda
7.3.3 Drugi prolazak write_listing(code, line): II stampanje jednog reda listinga
location_counter = location_counter +length; II azuriranje promenljive location_counter
t: iog~t drugn~ :lrPi~t:-.ka jc ~cncri~~lnjc 1.1l•jc"ktnog prog.r~una i, n1o?.Ja, Stampanje li- if (type== END _STATEMENT)( II jesmo li zavrsili sa ulazom podataka?
stinga a-;c:n>:>kr_,;.;,,g k('<L'- o,.im toga. n dn.Ig<11ll l'mbsku sc prugramu za povezi- more _input= false; II ako jesmo, napravimo red
\anjc ilinl-..c"ni) !lH'<"aju ,,hczhediti inft'rma,:lic !ll>lrehnc ta povcLivanje procedura finish _up( ): II otpaci
koJC sc: ascmhliLtju noa\i~no JeJna od Jrugc "jl·din:,tvcnu i1vrsnu datotel-..u. Slika
7-l l prikazu_iL· ;"JTlC.:'•_~uru Z~1 drugi proLuak..

Slika 7-11. Dwgi prolazak j<.Odnustavnog asembkra.


"~

526 Poglavljc 7: Nivo asemhlerskog jezika 7.3 Proccs asembliranja 527

t·!;
Do ovog trenutka, pretpostavljali smo da izvorni program ne sadrzi greske. Svako Kac!a algoritam primenimo rekurzivno, tabela san odrednica moze se pretraziti u pri-
'l
ko je ikada pi sao program na bilo kom programskom jeziku zna koliko je takva pret- blizno log 2 n pokusaja. Ocigledno da je ovo pretrazivanje mnogo brie od linearnog,
·, postavka realisticna. U uobicajene greske spadaju: ali tabcla uvek mora da buc!e sortirana.
I. Simbol je upotrebljen, ali nije c!etinisan. Potpuno drugaciji nacin simuliranja asocijativne memorije koristi se u tehnici hes-
-kodiranja (engl. hash coding) iii he5iranja (engl. hashing). Tu je potrebno imati
2. Sirnbol je detinisan vise puta.
,he5" funkciju koja preslikava simbole u eele brojeve iz intervala od 0 do k - 1. Jedan
3. !me u polju za opkoc! ne predstavlja va:leci opkod. oc! mogucih nacina jc cia se pomnoz.e ASCII kudo vi znakova u simbolirna (pri tom se
4. Uz opkod nisu definisani svi operandi. zanemaruje prekoracenje) i uzme ostatak deljenja sa k ili deljcnja nekim prostim bro-
5. Uz opkod je detinisano previse operanada. jem. U stvari, pogodna je svaka funkcija ulaznih podataka koja daje ravnomernu
6. Oktalni broj sadrzi cifru 8 ili cifru 9. raspodelu hesiranih vrec!nosti. Simboli se mogu cuvati u tabeli sa k kofica (engl.
~ 7. Nclcgalno koriscenje registra (npr. skuk na rcgistar). /;uckets) numerisanih od 0 do k,- 1. Svi parovi simbol~vrednost ciji se simboli hesi-
~· ranjem prctvaraju u vrednost i cuvaju se u povezanoj listi na koju ukazujc odrednica i
~ 8. Ncdustaje naredba END.
te hd tahcle. Uz n simbola i k odrednica u hes tahcli, prosecna lista ce biti duzine nA.
~ Samo programcri mogu da smislc ovakvc i drugc grcske. Greske u definisanju sim- Kada je k priblizno jec!nako n, svaki simbol se moze pnmaci prosccno samo jcdnim
•li
~~
til
bola cesto nastaJU zhog oma~ke pri unosenju, pa bi inteligentni asemblcr mogao da prctrazivanjcm tabele. Podesavajuci k mozemo da smanjimo velicinu tabclc naustrb

~
uporcdi neprepoznat sirnbol s definisanim simbolima i da umesto njcga upotrebi naj- sporijeg pretrazivanja. Hdiranjc je ilustrovano na slici 7-12.
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.
Andy
Anton
14025
31253
0
4
~
I!'
Cathy
Dick
65254
54185
5
0
~·~1 Enk 47357 6
7.3.4 Tabela simbola Frances 5644:> 3
~~
Frank 14332 3
~
Tokom prvug pro Iaska ascmblcr prikuplJa informacijc o simbolima i njihovim vrcd- Gernt 32334 4
Hans 44546 4
nostima koje sc moraj11 smcstiti u tahclu simbola kako bi mu bile na raspolaganju pri 2
Henri 75544
drugom prolasku. Tabela simhola sc moze organizovati na vise nacina. U nastavku Jan 17097 5
cemu nekt: od njih ul--ratJ..;o opisati. U svakorn od njih pokusava se imitirati asocijativna Jaco 64533 6
Maarten 23267 0
mcmorija (engl. us.wciutivc mcmotT). koja koncepcijski predstavlja skup parova sirn- Rernd 63453 1
hul~vrcdnnst. KadjPJ sc zada sirnbol. asncijativna mernorija mora da vrati vrednost. Roel 76764 7
Wrllem 34544 6
Tabcla simhola se zaista najlak;c implcmentira kao niz (jednodimenzionalna ma- Wiebren 34344 1
trica) parova, ciji prvi element ukazujc na simbol iii predstavlja simbol. a drugi uka-
Hes (a)
zuje na vrcdnost iii jc.ste vrcdnost itd. Kada se zada simbol, potprogram tabele tabela Povezana tabela
simbola treba '>amu da linearnu prctra,;i tahclu kako bi pronasao poklapanje. Ova mc- Andy 14025 I 3--1 Maarten I 23267 I +I Drck I 54185 I
hJda .-;e lako program ira. ali je spora jcr se pri svakorn trazenju u proseku pretrazuje Reind 63453 I 3--1 Wrebren I 34344 I I
polovina tabclc. Henrr 75544 I I
Drugi nacin jC da sc tabcla simhoLt sortira prenw simbolima i da se za njihovo Frances 56445 I 3--1 Frank I 14332 I I
trazcn_IC upotrehi algoritam binarnog prctrazivanja (engl. hinarv search). Ovaj al- Hans 44546 I 3--1 Gernt I 32334 I +I Anton I 31253 I I
goritam radi t~tko sto sa simholnm prvo pmcdi srednjuodrcdnicu tabcle. Ako se sirn- Jan 17097 I 3--1 Cathy I 65254 I I
bnl prema aheccdnurn rcdo:;ledu naLv.i ispred srcdnje mlrednice, on je u prvoj Jaco 64533 I 3--1 W>llem I 34544 I +I Enk I 47357 I I
po!ovini tabele. l'koliko sc simbc)l nalazi posle srednje odrednice, on je u drugoj po- I Roel I 76764 I I
iovini tabele ..L\ko je simbul jednak sreclnjoj odrcdnici, pretrazivanje se zavrsava.
(b)
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 Slika 7-12. Hdiranje. (al Simbnli. vrcdnosti i hd kljul:evi izvcdcni iz ;;imbola.
na .,sigurmr' polovinu, a rezultat ce biti ili pogodak ili ,sigurna" cetvrtina tabele. (hi He\ tabcla sa lJSant odrcdnica i povezanim list:mw simbula i vrednosti.

i
l-
1- I

l '

',.~
. :~
....
-~,.

528 Poglavljc 7: Nivo asemhlerskog jczika 7A Povezivanje i ucitavanje 529

'II
7.4 POVEZIVANJE I UCITAVANJE mada ipak sve treba pnnovo povezati zajcdno. Povezivanje je obicno mnogo hrze od
prevodenja. pa se primenom dvostepenog procesa prevodenja i povezivanja stedi
Programi uglavnom ne sadrzc samo jcdnu. vee vise procedura. Prevmlioci i asem- mnogo vrcmena tokom razvijanja progmma. To je narocito uocljivo u programima sa
b!cri po pravilu prcvode samn jednu proceduru ujednorn trenutku i rezullate smc:itaju stotinama i hiljadama modula.
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-
7.4.1 Poslovi koje obavlja program za povezivanjc
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;; Na pucctku prvog prolaska asemblera, brojac lokacija za inslrukcije postavlja se
Linkuge edilOr). Potpuno prevodcnje izvornog programa odvija se u dva kuraka. L.w na 0. To je ekvivalentno prctpostavci da cc objcktni modul tokom izvrsavanja biti
na slici 7-13: 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
I. Prevodenjc iii asembliranje izvornih proccdura.
instrukciju ta premestanje (MOVE),unutar rnodula.
2. Povezivanjc objektnih modula.
Prvi korak ohavljaju prcvodilac iii ascmbler. a drugi obavlja program za
Objektni modul A Objektni modul 8
povczivanje. 400 600

300 CALL 8 500 CALLC

200 MOVE PTO X 400


lzvrsni
brnarni tOO 300 MOVE 0 TO X I
program

BRANCH TO 200 200


0

Objektni modul C
100
500
Slika 7-IJ. Ct..·nt..·ri:..:mje i;,vr.~lh)g binarnng prugr,uua od ')h.upa nczavi-.;no prc\·cdcnih i....:vnrnih
BRANCH TO 300
pnJct..'dura ohav·lj~t prngram ;a p\l\ L'Li\ :u:jc. 0
400 CALL D
Objektni modul D
Prevt>cknje il'\<1rnc procedure u (lhjcktni nwdtd prcd.,ta"lp pnmlc~nu nivoajer iz-
300
\Orni i ~·iljnijc'Lik iilldju raz.li.:'itc instrukcijc i ~!;JtaL,u. Pt\>c-.:s poh:zivanja. medutim, 300
nc predstav lj:l pt·umc: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 .i·~ da sakupi proce- 200 MOVER TO X 200 I MOVE s TO X I
dure k<1Je su nuavisnu prC\l•dene i dJ th rnc:dust,bnu f'U\'C:f.c u jcdin~tvenu cclinu
100
zvanu izvrsni hinarni program (engl. ,'.rc, ltiu!Jil' JHri~'IWi! 1. U opcrativnim 100
si.-,temima 1\lS-DOS. Windows 05/lJK i \; r. ohjcktni muduli im:tiu nastavak .ohj. a
0 BRANCH TO 200
izvr~tri hin,\i"lll prugrami n:,: caval.: .c.rc. U l';"\l !X-u. uhjcktili moduli imaju nastavak 0 BRANCH TO 200
.o: i;vr~ni ht!.:rlll prugr:rmi nc:maju nasta,ak imen:t.
Prc:vudil>Cl i a~C:lllhkri iz dllbrih ra;:lu)2a rr-:Hnk svaku il\l)rillJ proceduru kao po- Stika 7-1-t S\aki modul ima sopslvcni adrcsni prostnr koji pocinjc adrcsom 0.
sehuu Lclinu. K~tlLt hi prc'.'odiliK ili ~hl'IYtblcr uCit~t\'a1) ni/ i/vurnih procedura i gene-
ri:<H) pr~)~~r;..un n:i nla:: in..;korn jcL.iku k_pjj s~ udn~;dt rnu/.c if\T~u \ ;.:li. ld pro1nenu jednc Da hi pokrenuo program. program w povezivanje prenosi objektne muduk u glav-
naredbc Li sanl\1 j~·dnoj izvornoj prou.~,luri biltl bi putrci>nu cb se '"" izvorne proce- nu menwriju Lako da obrazuje sliku izvrsnog hinamog programa. kao na slici 7-1 5( a).
dure il.llU\ a !Hcv~..·du. !deja je da se unutar prograrna za pnvezivanje stvori verna slika prostora virtuclnih
A.ko '.e knri-;r; tchnika nc;:rvisnih llbjcktnih fll<.>dula 'd sl;kl' ~- 1.0. tada hi hilo po- adn:sa iLvr;nog prngrama ida se svi objcktni moduli pustave na svcJja odgovarajuca
trt:bn<• pntwvu prt:vc.,ti sam(• izmcnj.:nLJ pru(t:dun!. d nc i <;t:e kujc: ,,c nisu menjale. mesla. Ako ncma dovoljno (virtuelne) m<:'murije da sc obralllje slika, muzc seta flJU

]
.
I
.
530 Poglavlje 7: Nivo asemblcrskog jezika 7.4 Povezivanje i ucitavanje 531

upotrebiti datoteka na disku. Najcesce se delic memorije, pocev od adrese nula, kori- Slika 7-15(b) prikazujc kako adresni prostor sa slike 7-15(a) izgleda nakon sto
sti za vektore prekida, komuniciranje sa operativnim sistemom, pronalazenje neinici- program za povezivanje obavi navedene korake.
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. 1900 1900
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- 1800 MOVES TOX
Objektni 1800 MOVES TO X Ob;ektni
pocelo instruk.cijom na pocetku modula /\. Programski tok ne bi skocio na instrukciju modul modul
D D
MOVE kao sto biste ocekivali jer se ta instrukcija sada nalazi na aclresi 300. U stvari, 1700 1700
iz istog razloga bi promasile sve instrukcije koje referenciraju mernoriju. Ocito jc cia
nesto treba precluzeti. 1600 BRANCH TO 200 1600 BRANCH TO 1800
Ovaj problem, poznat kao problem n~lociranja, nastaje zato sto svaki objektni
modul sa slike 7-14 predstavlja poseban adresni prostor. Na racunaru sa segmentira- 1500 1500
CALL D CALL 1600
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- 1400 1400
tim, OS/2 je jedini operativni sistem za Pentium 4 koji podrzava ovaj koncept. Sve Ob;ektni Objektnl
modul modul
verzije Window sa i UNIX-a podrzavaju samo jeclan linearni adresni prostor, pa se svi 1300 MOVER TO X c 1300 MOVER TO X c
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- I
j
1200 1200
si 400 programer je nameravao da pozove objektni modul B, ali posto se svaka pro-
I
cedura prevodi ponaosob, asembler nema nacina cia zna koju adresu da unese u BRANCH TO 200 I 1100 BRANCH TO 1300
1100
instrukciju CALL B. Adresa objektnog modula B ne zna se do trenutka povezivanja.
Ovaj problem je poznat kao problem spoljasnjeg rcfcrcnciranja. Oba pomenuta
~~ 1000 CALLC 1000 CALL 1100
tit problema, mcdutim, lako resava program za povezivanje.
11 Program za povezivanje ( kako mu ime kaze) povezuje zasebne adresne pros tore ob-
t': 900 900
jektnih modula ujedinstven linearan adrcsni prostor, preduzimajuci sledece korake:
~1 Ob;ektni Objektni
.,
~
{~
l. On konstruise tabelu sa svim objektnim moduli rna i njihovim duzinama. 800 MOVE QTO X modul 800 MOVE 0 TO X modul
B B
~ 2. Na osnovu ovc tabele, on svakom objektnom modulu dodcljuje pocetnu
I
~ adresu. 700 700
~ 3. On pronalazi sve instrukcijc koje rcfcrenciraju memoriju i svakoj clodaje I
j
~,\

11 konstantu relokacije (engl. relocalion conslwlt), JCdnaku pocetnoj adresi 600 600
:;~
j" odgovarajuceg rnodula. BRANCH TO 300 BRA~ICH TO 800
;'
'
500 500
if(
~:.~
tt
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
400 CALL B 400 CALL 500 I
~1 Ob]8ktni Objektni
:~:: module sa slike 7-15. U njoj su ime, duzina i pocctna adresa svakog modula. 300 modul modul
MOVE PTO X 300 MOVE PTO X
fi A A

Modul Duzina Pocetna adresa


2UO 200
1~ A 400 100
~'j
BRA~ICH TO 200 BRANCH TO 300
r~ 500
.~~
B 600 100 100 ""
~
c
D
500
300
1100
1600
0 0 I I
·/;

I~ 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.
~
~
I!..L-
Poglavlje 7: Nivo asemblerskng jczika 7.4 Povczivanjc i ucitavanje 533
532

7.4.2 Struktura objektnog modula Sesti deo sadrzi znak za kraj modula, mozda kontrolni zbir za otkrivanje gresaka
prilikom ucitavanja modula i adrcsu od koje pocinje izvrsavanje.
Objcktni moduli se cesto sastojc od scst dcluva, kao na slici 7-16. Prvi dco sadrzi Vecina programa za povezivanje radi u elva prolaska. U prvom prolasku progr<LITI
ime modula. izvesnc infonnacije potrebne prograrnu za povezivanje, kao sto su duzi- ucitava sve objektne module i pravi tabelu njihovih imena i duzina, kao i tabelu glo-
ne razlicitih dcluva modula i, ponekad, datum asembliranja. balnih simbola koja sadrzi sve ulazne tacke i spoljasnje reference. U drugom prolasku
ucitava se jedan po jedan modul, rclocira se i povezuje.
Kraj modula

,Recnik"
7.4.3 Vreme povezivanja i dinamicko relociranjc
za relociranje 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
Masinske instrukcije mnogo programa, tesko je obezbecliti da se isti program svaki put ucita na istc lokacije.
i konstante 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-
Tabela spoljasnjih referenci
formacije o relociranju su davno obrisane. Cak i da nisu obrisane. ecna relnciranja
Tabela ulaznih tacaka svih adresa kad gud se program uCita s diska, previsoka je.
ldentifikacija 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-
Slika 7-16. lntcrna 'truktura uhjcKtuog rnoJula hoji je generisao prnodilac. 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 .1je 1

Drugi dco objcktnug nwdula jc lista simbola definisana u modulu. koje mugu da stvarna li~:icka adresa koja udgovara L mve se \Tcmc vczivanja (engl. binding till!<').
rcfcrcnciraju drugi moduli, zajedno s njihovim vn:dnostima. Na primer. ako modul Za njL'ga postoji bar sest prilika:
:'~l
~ preLbtav lja procecluru cudoneviJjeno, tabela sa ula;.nim tackama sadrzace znakovni
."\< I. Kada se program pise .
f: 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-
2. Kada sc pm~;ram prevodi.
~ dninstrukcijc slicne pseudoinstrukciji PUBLIC sa slike 7-3. 3. Kada <,e program j1ll\'C!Uje. ali jo::: nije ucitan.
i1 4. Kalht se program ucitava.
l>" Treci dco Pbjcktnog modula je lista simbola kuji se koriste u modulu. ali su deti-
"r~ nisani u drugim modulima; uz nju je i lista u kojoj su za svaki simbol navedene i in- 5. KaJ~: 'e uC·ita vrcdr1ost u osnuvni registar kdji slu-'! ~:a adrc.,ir:mje.
'
:~J
strukcije koje ga koriste. Ova druga lista je potrebna programu za povezivanje da bi 6. K~td:J sc itvrsa\ a im;trukcija k()ja •;:ldrzi adrc,u.
~·i
u instrukcije koje koriste spoljne simbole uneo ispravne adrcse. Procedura mole cia
;:i LkolikL' ,c instrukcija kop sadr/j memunj:,ku ad;·e:,u premcsti po.,;le vcziva;:ja.
:.,;
:: poziva druge nezavisno prcvedcne procedure deklarisuc'i njihova imena kao spoljna.
ona cc: P"'t~lti nci.srmnJu (Ul pretpnstavku daje premesten i '-'bJcl-;at na kuji una uka-
Programer ce takve spoljne simbolc (engl. ntcnwl svmho/s) naznaciti posebnom
/Ujc'l. _.\}._u prcvndilac ka,, re1ul:at genc·tise izvr~nu biuarnu clatuteku. v•:Li'.anjc: se
pseudoinstrukeijom, slicnom pseudoinstrukeiji EXTERN na ';lici 7-3. Na nekim racu-
>~ ubavlja wkum ptc'voclen_id i prugratLl :--c mora izvT\avati ud adn:se kPjujc pretpu'il:.i'. io
1
~,\ narima. ulazne tackc i spoljne reference kombinm ane su u jedinstvenu tabelu.
progtam:..ki prc':udilac. :'vlet11da ;1ove!ivanj:.t npisana u pret!wcln,1m udeljku \e!uje
Cetv11i dco objektnog modula su asemblirani kl)d i konstante. Samo ovaj cleo ob-
sin1holilJ-..<-l i:ncna z~t :tp,.,olu:ne adrc-.;c tukun1 po\'tzivanja. 1.hog l:cga pre1ne~r~:,1je
jektnog modula ucit~K'e sc u memoriju za izvr~avanje. Ostalih pet dclova olaksavaju
pr,lgr~una pnsk puvuiv:mp ,!uvucii do njihovug ktaha t:-.lika 7-171.
pnsao programa za povezivanjc i odbacuju se pre ncgo sto pocne izvrsavanje.
Chdc su u tgri ch a mcdL:sLlhtw srodna mcha;1iLm:L Prvo je pitall.JC kada se :..imbn-
Peti deo objektnog modula je ..recnik" za relociranje. Kao sto je prikazano na slici
licka in1c::1a veL.Ujll r.a vinuclnt' aclrc":, ~\ clrugu. Ltda se virtuclnc adrc:se \'CZli.Jll n
~~
7-l'i. instrukcije koje sadrze memorijske adrese mor,lju imati dodatu konstantu za rc-
lizicke. VeLi\CW)C jc pu[illli1<> .s:uno Ltda ,t' ob,t prucc,a zavrs•:. Kacb pro>;ram 1a po-
r~ lociranje. Postu program za povezivanje ne zna sta su u cetvrtum delumodula masinskc
\.cJ:ivanjc objt'dini ;ascbn~ adresne prostor~ ehjt."ktnlh rnnduL..l u jcdan lincarnt pr·n-
instrukcije a \ta konstantc. u ovoj tabeli se nalaze infPnnacije o tome koje adrese treba
:-.tor aJr~·:-,;_;., on u "t\·ari pravi prn:-,tor vinuclnih adn_.:,i.L Rch,ciranjc i p\)Veitvanjc .-.,:ui~
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.

----·---------------
534 Poglavlje 7: Nivo asemblerskogjezika 7.4 Povezivanje i ucitavanje 535

da vezu simbolicka imena za odgovarajuce virtuelne adresc. Ova tvrdnja vazi bez Pretpostavimo za trenutak da je adresni pros tor slike 7 -15(b) stranicen. Jas no je da
obzira nato da li se koristi virtuelna memorija iii ne. 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-

1
2200 nica u trenutku kada se budu koristile. U izvrsnom binamom programu, simboliC(a
imcna su stvarno vezana za virtuclne adrese.
2100 MOVES TO X Objektni Bilo koji mehanizam pomocu koga se preslikavanje virtuelnih adresa u tlzicke me-
modul
D morijske adrese moze lako menjati, umnogornc bi olaksao premdtanje programa po

J
2000
glavnoj memoriji, cak i nakon sto se oni vezu za pros tor virtue! nih adresa. Straniccrje
1900 BRANCH TO 1800
je jedan takav mehanizam. Posle prcmestanja programa u glavnoj memoriji, treJa
promeniti samo njegovu tabelu stranica, a nc i sam program.

l
1800 Drugi mehanizamje korisc'enje registra za relociranje tokom izvrsavanja. Racunar
CALL 1600
CDC 6600 i njegovi naslednici imaju takav registar. U racunarima koji koriste o;u
1700 tehniku relociranja, registar uvek ukazuje na fizicku memorijsku adresu pocetka tc-
Objektni
modul kuceg programa. Na sve memorijske adrese se pre njihovog slanja u memoriju dod~je
1600 MOVER TO X c 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

J
1500
da azurira sadrzaj registra za relociranjc. Ovaj mehanizam je manjc univerzalan od
BRANCH TO 1300
stranicenja jer se citav program mora premestati kao jedinstvena celina (osim aw
1400
postoje zasebni rcgistri za relociranjc knda, odnosno podataka, kao kod Intcla sms.
1300
kada sc program premdta u dve celine).
CALL 1100
Treci mehanizam sc moze primeniti u racunarima koji mogu da rcferenciraju rrc-
1200 rnoriju u odnosuna programski brojac. Mnoge instrukcije za grananje zavise od sadr-
Objektni
zaja programskog hrojaea, sto podrzava ovaj mchanizam. Kada se program prcme,ti
1100 MOVE OTO X > modul
B
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-
1000
ference na apsolutnc adrese registara ulazno-izlaznih urcdaja) naziva sc pozicio!lo
nezavisan (engl. position independent). Poziciono nezavisna procedura moze se
900
smestiti bilo gde u prostor virtue! nih adresa i ne mora se relocirati.
800 BRANCH TO BOO

7AA Dinamicko povezivanje


700 CALL 500
Strategija povczivanja o kojoj smo gnvmili u poglavlju 7.4.1 cini da se progr;:m
Objektni
600 MOVE PTOX modul pre izvrsavanja powzujc sa svim proccdurama koje bi mogao po;vati. U racunaru
A
koji ima virtuclnu mcmuriju. pri ovakvom potpunom povczivanju pre poc.:tka izvr~a­
500 vanja ne koriste se potpuno moguc'nosti vinuclnc memorijc. ivlnogi programi irmju
.,
tt

.t BRANCH TO 300
procedure kuje se puzivaju samo u sasvim neuobicajcnim okolnostima. Na prim:r,
;l 400
prevmlioci imaju proccdur10 za prevocknje rctko korisc'cnih narc:daba. kao i proc:c:dtre
J
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
:·t kau dinamicko povezivanje.
!~ Slika 7-17. Rclociran binarni program sa slike 7-lS(b) saclaje premesten 300 adrcsa navise. Prvi put je uvcdcn u uperativnom sistcmu l\1 ULTfCS i ta implcmentacija je i cbn-
.,
~· :Vlnoge instrukcijc sada ukazuju na neispravnu memorijsku adrcsu .
·uanas u izvesnom smislu neprcvazidcna.
;j
;j
t4
~

~
~
"i r
'4"
~---------
536 Poglavlje 7: Nivo asemblerskogjezika 7.4 Puvezivanje i ucitavanje 537

Dinamicko povezivanje u IVIULTICS-u Segment procedure Vezni segment


U lv!ULTICS-ovoj izvedbi dinarnickog povezivanja. svakum programu je pridru-
zen tzv. vezni segment (engl. linkuge segment); on sadrzi blok informacija za svaku lndirektna rec
CALL EARTH
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 CALL FIRE ·- -r -· _ --·---
' ' " ' v '
IIJ zalnformaciJe .
poveZ1Va111e
prevode sc u instrukcije koje inclirektno adresiraju prvu rei' odgovarajuceg bloka za procedure AIR
povezivanje. kao na slici 7-1 ~(a). Prevodilac popunjava ovu rec nekom neispravnom CALL AIR
lme procedure
adrcsom iii specijalnim nizom bitova koji izaziva upadanje programa u klopku.
Kada se powve procedura u nckom drugom segmentu, pokusa.J da se inclirektno 1 ' 1 ' 1 '' 1 '- vuY<:.<f-- se cuva kao
CALL WATER znakovni niz
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-
CALL EARTH
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 CALL WATER
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-
(a)
ke na kojuj je hio pre nego sto je upao u klopku.
Svako sledde pristupanjc proccduri proci ce ba greske jer indirektna rec sada Segment procedure Vezni segment
sadrzi ispravnu virtuclnu adresu. Prema tmnc. program za uinamick.o povczivanje po-
krccc se .'iamo kada sc pmccdura prvi put pozovc.
CALL EARTH
" Ka proceduri earth
Dinamicko povczivanje u Windowsu
Sve ver;,ije opcrativnog sistema Windows. ukljucujuci i NT, podr/.avaJU dinamii'- CALL FIRE
ko puvezivanje ina njega se oslanjaju. Za dinamicko povczivanje koristc sc datoteke
spccijalnog furmata. tzv. DLL (Dynamic Link Library) iii dinamickc datotekc. DLL CALL AIR
datotcke mugu da sadrze procedure. podatke iii i jell no i drugo.
One ohicnu omogueavaju da dva iii vise prucesa uele hiblioteckc procedure iii CALL WATER
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).
CALL. EARTH
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. CALL WATER
Program I u ovum slucaju kori,ti procecluru A. a program 2 proceduru C. alibi ISto
tako mugli da istovrcmeno koristc jednu proceduru.
ibi
DLL datoteku sastavlja program 1.a povezivanje od vise ulaznih datoteka. Pra-
vljenjc DLL datoteke je u stvari veoma slicno pravljenju izvrsnog binarnog progra- Slika 7-1 S. Din,ilnil~·h.u pn\ eli v~1nj~...·. ( aJ Prl' nL·~,l ~to Jl' pt l'f\·ana pr• 1ccJura E.\ l?.Tf f. (h) ~L1h.on :;w
ma. osim stll sc programu za povezivanje posebnim indikatorom oznacava da trcba da jl· r~ruct:d11ra 1-./\l?TH P'·)l,\·~~na i povc;~uld.

napravi DLL datotcku. DLL datuteke se obicno prave od zhirke biblioteekih procc-
disku. Ka,L! bi 'iC n.:b bil>li<'tcka np~iili prucedura >Llticn'' vuala za 'ivaki pn,grau
dura kojr: primcnJuju uglavnom svi kurisnicki pmcesi. Procedure koje pristupaju
koji .JC kuri,ti. on a bi sc pojav i:a u nlll<)gim it\ r~nim hinamim dat,,rch.ama n~1 di>ku i
Windowsmoj hiblioteci sistemskih poziva 1 velike gralicke bibliote. uubicajcni su
u n1cn1oriji. tn)SLL~i njihoY drag11Ccni pr~)\lOr. L:z [)LL tLttot.:k.:. S\':tka bihiiotcka :;.:
primen DLL datmcka. Kori~cenJem DLL datoteka ~teui se memurija i prustor na
pojav lju.J~ 'amu jcdnum na dio,kLI i jed nom u mcnwri 1i.
538 Poglavlje 7: Nivo asemblerskog jczika 7.5 Sazetak 53?

Korisnicki proces 1 Korisnicki proces 2 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 poziv,~
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.
------------ ~
Zaglavlje
Vazno je razumeti da proceciura u DLL datotcci nema nikakav sopstveni identitet
A (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 staticn~
B podatke specificne za proces (kao i zajednicke, deljene podatke) i uopste se ponas1
)
kao staticki povczana prucedura. Jedinu sustinsku razliku cini nacin vezivanja pro-
c grama za nju.

D Dinamicko povezivanje u UNIX-u


Opcrativni sistem UNIX ima mehanizam koji je u sustini slican DLL datotekanu
Slika 7-19. Ova proccsa koristc istu DLL datolcku.
u Windowsu. On se zove deljena biblioteka (engl. shared library). Slicnu DLL cia-
Osim slo stedi prostor, ovaj pristup omogucava lako azuriranje biblioteckih proce- tote kama, i deljcna biblioteka je arhiva s mnugo pmcedura iii modula podataka koji
dura, cak i posto Sll programi k.oJi ih koristc prcvedeni i povezani. lJ komercijaJnim sofl- se tokom izvrsavanja nalaze u memoriji i mogu se istovremeno vezati za Yisc pruces<.
vcrskim paketima s kojima korisnici obicno ne dobij,~ju izvorni kod. proizvodac mozc Standardna bibliotekajczika C i veliki deo koda za rad u mrdi deljene su hibliotekt.
naknadno da ispravlja greske u bihliotckama i da ih ispravljcnc distribuira prcko lntcr- UNIX podrzava samo implicitnu puvezivanje, pa se dcljena biblioteka sastoji od
neta kao DLL datotekc. a pri tom ne mora da ispravlja binarni kod glavnog programa. dva del a: prirucnc biblioteke (engl. hosllibrary), kuja je staticki vezana za izvrsnJ
Glavna razlika izrnedu DLL datotekc i izvrsnc binarne datoteke jeste to sto se DLL datutcku i ciljne bihlioteke (engl. target library), koja se puziva tokom izvrsavanj'.
datoteka nc mozc samostalno pokrcnuti (jer ncma glavnog pmgrarna koji bi je po- laku se detalji razlikuju. konccpcija clcljene bibliotckc i DLL datuteke u sustini je ist<.
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 7.5 SAZETAK
DLL datoteku i druga koja se automatski poziva kad god se proces od nje odvcie. Ove
lako vecina programa mozc i trcba da se pise na jeziku visokog nivoa, postoje si-
procedure mogu dodcljivati proccsima memoriju i od njih jc oduzimati, i mogu cia
tuacije u kojimaje neophodan asemblerski jezik, bar cielimicno. Programi za prenosiv~
upravljaju drugim resursima potrehnim DLL datotcci.
racunarc sa skrornnim resursima. kau sto su inteligentne kanicc, procesori ugradeni u
Program se za DLL datuteku moze VCJ:ati najcdan od dva nacina. Na prvi, J:\'Llll im-
kucne aparate i bezicni prenosivi digitalni pornocnici, potcncijalni su kandidati. Pro-
plicitno (automatsko) povezivanjc (engl. implicillinking), korisnicki prugram .'e sta-
gram na asemblerskomjcziku simbolickajc predstava programa na nekom masinskom
ticki pnvezujc sa speciplnom datotckmn zvanom uvozna biblioteka (engl. illlport
jeziku. On se prevodi na masinski jezik ponwcu programa zvanog asembler.
lihmrv) kuju gcnni.;c usluzni program izvlaceci udrcdene informacije iz DLL datt~te­
Kaclaje za uspeh odrectene aplikacije neophodno brzo izvrsavanje, nc trcba pisali
ke. Uvozna bihliuteka predstavlja .. vrata'· kroz kop k:orisnicki program pristupa DLL
ceo program na asemblcrskum jeziku. vee ga prvo treba napisati na jeziku visokog
datotcci. Kmisnicki program muzc biti povezan s vise uvuznih biblioteka. Kada se
nivoa, zatim izmeriti gde program provodi vccinu vremena tokom izvrsavanja i samo
program koji kori.sti implicitnu povoivanje ucita u memoriju za izvrKavanjc. \Vinduws
te njcgove delove ponovo napisati na asemblerskomjeziku. Prema iskustvu iz prakse.
utvrcluje kujC DLL dat,,tekc on upotrebljava i provcrava da ii su svc unc vee u memo-
za najvcci deo vremena izvrsavanja programa udgovoran je samu mali deo pmgram-
riji. One koje se ne nala;c u mcmoriji odmah se ucitavaju (ali ne obavezno eel e. pus to
skog koda.
su straniccne). Tada se unekoliko mcnjaju strukture podataka iz uvoznih biblicteka da
Mnogi asemhleri mogu da koriste makroe - cesto koriscene delove koda kojinu
bi sc pozvane procedure moglc locirati (ndto slicnn prikazanom na slici 7-18). One sc
programeri daju simbolicka imcna i pomocu njih ih kasniJe ukljucuju u glavni pro-
takmtc preslikavaju u prnstur virtuelnih adresa programa. U ovom trcnutku korisnicki
gram. Makroi se obicno mogu snabdeti parametrima na jcdnostavan nacin. Makroi se
program mo:.l:c da pocne i;:vr~avanjc. odnosno puzivanje procedura iz DLL datotcka.
implcmentiraju pomncu jcdne vrste algoritma za obradu literal a.
bas kao da sus njim staticki vezane.

~.
d .. er ·----
540 Po~lavljc 7: :'1/ivo ascrnblcrskog jczika Vdhanja 541

Asembleri obraduju izvorni program najcesce u c.lva prolaska. Prvi prolazak je 7. Ako ima razlike izmedu brojaca lokacija za instrukcijc i programskog brojaca. ako
posvecen pravljenju tabele simbola za oznake. literale i eksplicitno c.leklarisane iden- uopste postoji'' Na kraju krajeva, oha vode racuna o sledecoj instrukciji u programu.
~- ., tifikatore. Simboli se mogu cuvati bez uredivanja i pretrazivati lineamo iii prvo sorti- 8. Prikazite tabelu simbola nakon prolaska slcdecih narcdaba za Pentium 4. Prvoj na-
rati. pa pretrazivati binarno. iii hesirati. Ako se sirnboli ne moraJU odbacivati tokom redbi JC doc.leljena adresa I 000.
prvog prolaska, hesiranje je obicno najbolja metoda. U drugom prolasku se generi~e EVEREST: POP BX (1 BYTE)
K2: PUSH BP (1 BYTE)
kod. Neke pseudoinstrukcijc izvrsavaju se tokom prvog, a neke tokum drugug prola-
WHITNEY: MOV BP,SP (2 BYTES)
ska asemblcra. MCKINLEY: PUSHX (3 BYTES)
Zasebno asemblirani programi mogu sc povezati u izvrsni binarni program Taj po- FUJI: PUSH Sl (1 BYTE)
sao ubavlja program za povezivanje. Njegovi osnovni zadaci su relnciranjc koda i vc- KIBO SUB Sl,300 (3 BYTES)
zivanjc imena. Dinamicko povezivanje je tehnika kojom se procedure ne povezuju IJ. Mozetc li da zamislite okolnosti u kojima ce u ascmbkrskom Jeziku biti dozvoljcno
sve dok ih glavni program stvarno ne pozovc. U Windnwsovim DLL datotekama da oznaka glasi istu kao i opkod (npr. da MOV bude uznaka)"' Obrazlozite odgovor.
i UNIX-ovirn deljenim hihliotekama koristi se dinamicko powzi vanje. 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-
VEZBANJA no iza srcc.lnjcg indeksa.
L U nekom programujc 2o/r koda odgovorno 7a 50"+· ncmena izvrsavanja. ljporcdite I I. !vloze li sc binarno prctrazivati tabela cija je vclicina prost broj''
slcdcec tri :-.trategijc po trajanju pmgramiranja i trajanju izvrsavanp k<llb. Prctpu- 12. lzracunajte hes k6d za svaki od sledecih simlmla sabirajuci sluva tA= I. B = 2 itd.)
stavite da jc potrcbno I 00 programers kill rnescci da -;c k{ld napise na jcziku C. ada i uzimajuci za rezultat ostatak celobrojnog dcljcnja zbira s velicinorn hd tabele. l-Id
se ascmblcrski ki\d pisc I 0 pula sponje. ali jc cctiri put a efika,niji. tahcla ima 19 redova. numcrisanih od 0 do 18.
a) Ceo program na jC?iku C. els. jan, jclle, maaik.c
b) Ceo program na a;-.cmbkr:,kcJm je;.iku. Da li sc od svak.og sirnbola generisc jcdinstvcna hd vrednost'.' Ako tu nijc slucaj.
c) Najprc ceo prugram na jcziktl C. t.atim ponuvo kljucnih Y'o na ascmhkrskum kaku sc probkm sukobljavanja moze resiti' 1
jcziku. 13. Metodom hesiranja opi:-.anom u tc:kstu. svc odrednice sa istim hes kodom srncstaju
2. Da li razmatranJa k<lja vaze za ascmhlcrc s dva pmlaska vaze i la prcvm!iPct: ..' sc u povezanu listu. Alternativaje jcdinstvena tabela san redova. pri ccmu u svakom
a) Prctpostavitc da prcvodioci gcncrL~ll ohjcktnc module. a nc asL,mhkr;ki kcKt. 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-
b) Prctpustavitc .ta nrcvodioci gcnc:nsu simb<llil'ki a.,~.nhkrski jc;i~.
kusaJ se kmisti drugi algoritarn za hesiranjc. Kad ni on ne uspe da gcnerise prazan
3. Yel'ina .hemhlcra z.a lntclmc procesore kao prvi opcr;u~d irna <>drcdi;nu adn:.su. a red, koristi sc sledeci algoritam itd., svc dok se jednom ne dohije prazan red. Uko-
kao drugi il\Ori;nu. Ko_1e btstc prubkmc mur:di n:1jpr•: rcsiti, pa da hudc ohrnuto'' liko jc udeo popunjcnih redova R. iz koliko cc uzastopnih pokusaja moci da se unese
~. l\1o/c li ;.;c -;kdL'L'i J'r"~'rarn asl·mhlit-al i u dva pwlthb.'' EQI; jC ;H.:udoit!strukcija nuv simbol (navedite proscean broj)?
koja izjL:dnaC:t\ '' nzn.tku sa izrazom u polju za uper:mdc. 1~. Kako tehnika napreduJc. jednug dana cc mozda hiti mogucc c.la se na cip smcstc
P EOU 0 hiljadc ic.lcnticnih proccsora, svaki s nckoliko rcei lokalm: memorije. Ako svi proce-
0 EOU R
snri dele tri registra za citanje i upisivanje. kttko 'c tu mozc implcmentirati asocija-
R EOU S
S EOU 4 tivna memorija?
5. Softverska krli<IJ':llljj.t .\Ltgla planira Ja n;tpravi a-;cmi,kr za ral:unar "' 4:~-hitnim 15. Pentium 4 ima scgmentiranu arhitekturu s vise nczavisnih scgrnenata. i\scmhlcr La
reCima. L\1 bi "'~'-' '-1\r_: i',j'dat:!~..). g:lavni pro_JcktanL dr ivl~!li\'(lda, odluCin jc Ja ograni~i maj racunar mugao bi imati i pseudoinstrukciju SEG N koja bi asemhlcru nalagala
duzinu simih:ia tak,, da ::vai--i 'itn>bol -;tanc u j<:dnu rcc. :Vluti,Pdaje oh- da k<)J i podatke koji slede smesti u segment N. Da li ovakva sema ima ikakvog uli-
javio d~t '~c "in1hnli n1n~u )a~hlj:lti san1o od ~lo\·~t, o.'illl :-.!ova Q. Ko_jc jc zabranj-:11o caja na brojac lokacija za instrukcije (!LC)")
(da hi Jlllk:uau klijc·nti;'ltt k.tko k<'l1l[1ttnija ;,rinc o ctik;~:,nostil. 16. Programi sc cesto vezuJU za vise DLL datotcka. Zar ne bi bilo cfikasnije staviti sve
Kuj<.t Ct: blli 111al-.::.ill1~tlr1a dtt/.ina sin:hoia'? ()pi\i!c :--.V(l_jll .;L!nu k_lidiran_ja. pmccdure u jcdnu veliku DLL dttt<Jtcku i omla sc vezati samo za nju"'
17. lvlo~c li se DLL datuteka preslikati u prostnre virtuelnih adrcsa dva proccsa na rar-
6. Kakva jL r;li!!J,.a il.nh_·.._itt in.-.,Lruk.~:ijL i pscuJoin~trukcije·:
licitc virtuelnc adrcse'' Ako mozc, kakvi problcrni nastaju"7 Mogu li ,c ti prublerni
rditi'.' Ako nc rnogu. kako se otklanjaju·)

iJ: 542 Poglavljc 7: Nivo asemhlcrskog jezika
11
~<

~.
~~- 18. (Staticko) povezivanje mozc se izvesti i ovako. Pre nego sto skcnira biblioteku, pro-
I•
gram za povezivanje pravi listu potrebnih procedura, tj. imena koja su deJinisana

8
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 radi'~ 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. ARHITEKT,URE PARALELNIH v
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
RACUNARA
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.

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 tran~:istori 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
544 Poglavlje 8: Arhitckture paralelnih rai'unara 8.1 l'aralclizam na procesorskom 545

procesori sporiji ncgo u prvom, njihova ukupna racunarska snaga teorijski je isla. Eto na isti cip. Ove tehnikc se medusobno potpuno razlikuju, ali svaka na svoj nacin do-
na koju stranu treba glcdati. prinosi krajnjcm cilju- umnozavanju aktivnosti koje sc odvijaju u svakom trenutku.
Paralclizam se moze uvesli na vise nivoa. On sc na najnizem nivoumoze realizovati
na samom procesorskom Cipu, uvodenjcm paralelnc obrade i superskalarne seme Privatna
s vise funkcionalnih jedinica. Moze se ostvariti i uvodenjcrn veoma dugackih reci za memorija Racunar
instrukcije s podrazumevanim paralelizrnom. Procesoru se mogu dodati specijalne \
mogucnosti za istovrcmeno upravljanje s vise programskih niti. Na kraju, na isti cip se Koprocesor
Programs k a ni''
mozc smestiti vise procesora. Kada se primene sve nabrojane mogucnosti, one nmzda
mogu da pobolj.~aju perforrnanse desel puta u odnosu na cisto linearnu .~emu rada.
Na sledceemnivou sistcm se moze dopunjavati dodatnirn procesorskim karticama
\
IT~J
;r_
za prosirivanjc njegovog kapaciteta obrade podataka. Ove kartice za prosirivanje iCP~J
8 l~
L_
obicno imaju spccijalizovane funkcije. kao Slo SU obrada mreznih paketa, obrada muJ- ,/ I
timedijskog sadrz.aja iii kriptogra!ija. Kod spccijalizovanih ,tplikacija, perf(\rmanse ~.e Procesor I
time mngu poboljsati rnozda pel iii dcsd put a. Glavni procesor FPDJ
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
Tesno spregnuti _~- Labavo spre~nuti
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 (a) (b) (c) (d) (e)
probleme koje takodc trcha resavati.
Slika ll-1. (a) l'araklilam na cipu. (bi Kopmcesor (cl Vii;c proccsora. (d) Vii;e rai'unara.
Ina kraju. danas sc citavc or12anizacijc (sa svojom upremum) mugu prcko lntcrnt'- (c) Rcsctb.
ta povezati u labave r~tcunarskc mrdc. Ovakvi sistcmi tek p•<inJu da se p<ljavljuju.
ali prcdstavljaJu potcncijalnu nadu za buducnost.
8.1.1 Paralclizam na nivou instrukcija
Kada se dva proccsora ili dva element a .ca obr~tdu podat~tka nalan~ tizi..:'ki .JCdan do
drugog. kada razmenjuju pndatke ve!ikom br1.inom i bcz zadrske i kada u racunskum :'-i ~~ sanHlm pocctku. paraleli1.am mozcmo da postignemo ako po jed nom sistem-
smislu hlisko saraduju. kazc:mo da su tesno spregnuti (engl. rightlY coUfJ/~,/). Stqmll- si--wn ciidusu izdajemn vi~c instrukciJa. Procesori koji po jednom sistcmskom ciklusu
no tome. ako su tizicki lllLt!jcni jcdan t>cl dmgog. aku pnLbtke rannenju;u sp<lfO i ,~: mt)gu d,t izdaju vi~c instrukcija spadaju u dve grupe: superskalarni i VUW procesori.
zadr~kom. i ako su u racut1skum smi-;lu udaijeni jed an <ld dnt.~O'!. undct Lt/cmo Ja su Na ohc vrste smo se Vt:L' osvrnuli u ovoj knji1.i. ali nije 1.goreg to sada ponoviti.
laban> sp•-egnuti (engl. /o01·dr ,·ottflled). U morn poghY!JU ra/tllL'tri<_:"ctn<J prinL·ipe Sa superskalarnim prucesorima srcli smo se ranije ( pogledajte npr. sliku 2-5 ).
prn.Jeklovanja razlicitih <lblika p.tr~tleli;.ma i pruu-:'iu vi;;c pnmcr~" PoccL'Clll<J od mj- U na_:cc::;c,)j konliguraciji. instrukcija kuja prob-ci kroz paralclnu obradu u jcdnom
tesnjc srrcgnutih si>tcma. <mih kud kojihjc paraieli;.a:n ugradcnna samum ci['ll. if'<'- tr.:-nmJ..u je sprcmna 1.a izvrsavanje. Superskalarni proccsori mogu da u jednom si-
stcpenP Ccn1o prcL.11iti na ")\L iab~tvi_iL' i Ltb:._tvijc ~pregnute :-;i;.,r~rnc, da bi~nH_ 1 !I.J. 'itcmsk:Jm ciklusu upute vise instrukcija i-cvr.snim jcdinicama. Broj instrukcija stvar-
pnsvetili nckoliko reei: l!V. lc,ctk~lma rac·un~tra. Ovaj 'PL'klar .ic' upru;,'cno prika!:tll IH' upucenrh na izvrsavanje zavisi nd kunstrukcije procesora i trenutnih okolnosti.
na _,!ici ::\-1. I bnh cr odrcduje maksimalan brnj instrukcija kujc se mugu izdati, a to je po pravilu
Citava prublemarika par~tldi~ma, ud jcdtwg do dntgog krai<t 'Pd:tra. pr:::d>tav od ch c do se;;,t instrukcija. 1\lcdutim, ako je za izvrsavanje instrukcije neophodna
vruc'e i.-;tr~tlivacku podrucjl?. Shndr111 l<)tnC. uvom p,_,glavl_;tr 'll d,,,bie illli<)',:C s~::.vin; funk,·,,qJaina jedinica koja trenutno nijc na raspolaganju iii joj jc neophodan rezu!tat
svcze rdc:rencc u vczi s tenwm. Jo~ s!icnih rderenci navedcno Jc' i u ll•klj~u '.l.!.~. nije it.r:.~cunat. 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
8.1 PARALELIZA:\1 N~\ PROCESOKSi..:.Ol\1 ('H'U ol,liLu. \Ll\V racunari sutai~ta imali dugacke reei sa instrukcijama kojc su knristile
'> isc l·unkcionalnih Jedinica. Razmotritc. na primer. paraklnu obradu na slici 8-2(a).
Jcdan <1d naCl!la da :sc flO\CCa jli'UhlK pod:tl~tk:t KWZ 2tp JC.S<C d:, !11U .>t' d:t :,:de U'~linar ima pet funkcionalnih jcdinica i mo/.c istovn:menu da izvrsava dve ce-
oba\·lja vi;~~ po··dova i'-'10\'r\~llJeno. L; ov()nl odl·ljku r;.Vl!1nlriL;~nln nck.t' na~inc ubr/a- lob:<'jnc opcracije ijcdnu s brojevima u pokrctnom zarezu. jedno ucitavanje i jedno
&< vanja obrac!c pwLlLti..:t !-..r•Ji p;·iilicnu para!eiillll~l IU 11icou pn,ct'St•I\kug cip:l. :;n;e<:t:<jt: pudataka;. VLl\\;' instrukcija La ovaj racunar sadrzala bi pet opkodova i pet
~ ul!juCujuL:i i paraiciiLi.llllna niv'uu itblruk ..:ija. vi~..:niLni r~uJ i ·)!UL~tanje vi\c pn,Lt\.,~,_,ra
~
"'ll
~
~


:1
~!~!!!""'
lm'!

!,
546 Poglavlje 8: Arhitektm·e paralclnih racunara

parova opcranada, po jedan opkod i operand za svaku funkcionalnu jedinicu. Sa 6


8.1 Paralelizam na procesorskom

VLIW proccsor TriMcdia


547

i);:'' bitova po opkodu, 5 bitova po registru i 32 bita po memorijskoj adresi, instrukcija bi Primer jednug VLIW procesora, Itaniuma-2, analizirali smo u poglavlju 5. Predimo

l~;r ir naras1a na 134 bita, sto je zaista popri1icno. 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
I
t rikorderi, interaktivni TV aparati, digita1ni fotoaparati, kamkorderi itd. Kada pogleda-

'r'
~ ...
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.
Prazna instrukcija Tipicna instrukcija prikazana je na slici R-3. Konkrctna instrukcija moze biti stan-

I --L I- L- 11-~--:] IIF_:_~J_I_~~ 1-FL-IIIF-S T--L- 1-~


dardna osmobitna. sesnaestobitna iii tridesctdvobitna instrukcija £a rad s celim broje-
(b) 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-
VLIW instrukcija savanje do pet opcracija istovremeno i postojanja paralelnih multimedijskih instruk-
cija, proccsor TriMediajc dovoljno brz da softvcrski u hodu dekodira digitalne video
(c) zapise s kamkordera i prikaze ih punom brzinom u punoj vclicini.

SvezanJ Polje 1 Polje 2 Polje 3 Polje 4 Operacija u polju 5

Slika 8-2. (a) Proccsurska paraldna obrada. (b) Niz VLIW instrukcija. (c) \ \ \ \ r-'~
Tuk instrukcija s markiranim svdnjcvima. I Sabiranj~ I Porneranje I Multimedija I Ucitavanje Smestanje ]

Ovakva sema sc pokazala previse krutajcr nije svaka instrukcija mogla da iskoristi lnstrukcija
svaku funkcionalnu jedinicu. zbog cega je dugacka instrukcija popunjavana rnnogim
praznim instrukcijama, kao na slici X-2(b). Zbog toga savremcni VLIW racunari itm~ju Slika 8-3. TipiCna instru~cija procesora TriMedia koja sadrzi pel rnoguc'ih opc:racija.
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 Proccsor TriMedia ima mcmoriju u kojoj se adrcsiraju bajtovi. sa ulazno-izlaznim
uputi na izvrsavanje. Na prevodiocu je da pripremi odgovarajuce sveznjeve medusob- registrima koji se preslikavaju u memorijski pros tor. Polurcci ( 16 bitova) i cele reci (32
no kompatibilnih instrukcija. bita) rnoraju biti poravnatc na svojtm prirodnim granicama. On moze da radi kao .. little
VLlW racunar u stv·ari prcbacujc tcret odredivanja instrukcija kojc se istovremeno endian" ili kao ,big end ian" procesor, zavisno od PSW bita koji postavi opcr~Hivni si-
mogu upucivati na izvrsavanje s procesora na prevodioca. Na taj nacin se omoguc'ava stem. Ovaj bit menja samo nacin prcnosa podataka izmedu memorije i registara tuknm
koriscenje jednostavnijeg i brzeg hard vera, ali ne samo to prevodi1ac moze da radi ko- operacija citanja iii smestanja podataka. Pn,cesor ima pt,ddjcni, osmostruki, sct-aso-
\iko god je potrebno da bi obezbedio mnogu bolje svdnjeve nego sto to moze da uracli cijati vni kes, koji i za instrukcijc i za podatke racli s reduvima od 64 bajta. Kes za in-
hardvcr tokorn samog izvrsavanja. Naravno, tako velika izmena arhitekture procesora strukcije ima 64 KB, a kes za podatke 16 KB.
tesko se prihvata u praksi, o cemu svcdoci sporo prihvalanje procesora ltanium. Pustoji 12t\ registara upste namcnc. sirine 32 bita. Registar RO je hardverski po-
Treba naglasiti da paralclizam na nivou instrukcija nije i jedini oblik paralelizma dden na 0. Registar R1 je hardvcr~,J.j podden na l. Pokusaj da se izmenijedno iii dru-
na niskom nivou. Drugi oblik je paralclizamna nivou memorije, kod koga sc istovre- go, dnvodi procesor u prcdintarktno stanje. Prcostalih 126 regislara rnectusnbno su
meno izvrsava vise operacija ~ memorijom (Chou et al., 2004). funkciona1no ekvivalcntni i mogu :.e koristiti za bi1o koju svrhu. Osim toga. postoje i


~
548 Poglavlje 8: Arhitekture paralelnih racunara 8.1 Paralclizam na procesorskom cipu 549

cetiri spc:c:ijalna 32-bitna registra. To su programski brojac (PC), statusna rei" programa Na kraju, poslednjih pet kolona pokazuju koja se polja instrukcije mogu koristi i
(PSW) i dva rcgistra koji rade sa sisternskim prckidima. Na kraju, jcdan 64-bitni rcgi- za koju funkcionalnujedinicu. Na primer, operacije poreLtenja brojeva u formatu p<-
star broji cikluse procesora od trenutka kadaje poslcdnji put pokrenut. Njemu, uz takt kretnog zareza mogu se pojaviti samo u trecem polju instrukcije.
od JOO MilL treba oko 2000 godina da popuni svoj kapacitct. Jcdinica Constant se koristi za operacije s neposrednim konstantama. kao sto j~
Trii'vkdia Tl\B260 ima I I razlicitih funkcionalnih jedinica za aritmeticke i logicke upisivanjc u registar broja smdtenog u samoj opcraciji. Integer ALU ohavlja ope-
opcracijc i opcracijc upravljanja programsk.im tokom (kao i jcdnu za upravljanje ke- racije sabiranja. oduzimanja, uohicajenc logicke operacijc i operacije pakovanj~.
som, o kojoj mde necemo govoriti). One su navedene na slici 8-4. U prve dve kolone odnosno raspakivanja. Shifter moze da pomcra sadrzaj registra udesno iii ulevo z:1
su (skracen'J 1 liTh? .1edinice i kratak opis njene funkcije. U trecoj koloni je broj hardver- zadati broj bitova.
skih r'~piik:t jedinice. Cetvrta kolona prikazujc kasnjenje, tj. broj ciklusa potreban za Jcdinica Load/store upisuje memurijskc reci u registre a iz njih ponovo u memorijt.
potpunu ubradu ulaznih podataka. Ovdc treba primetiti da sve funkcionalne jedinice. TriMedia je u osnovi pojacani RISC procesor, pa uohicajene operacije rade s registn-
usim jed111icc fP sqrt!div, koriste paralelnu obradu .. ,Kasnjenje" govori koliku ciklusa ma, a jedinica Load/store koristi ;;e za pristupanje memoriji. Istovremeno se mogu prt-
treba ccbti d<lk se ne pojavi rewltat operacijc, ali se nova operacija moze zapoccti u nositi 8, 16 iii 32 bita. Aritmeticke i logickc instrukcije ne pristupaju memoriji.
svakum ciklusu. Tako, na primer, svaka od tri uzastopne instrukcijc mnze da sadrz.i dve Jcdinica lnt/FP MUL mnozi cele brojeve i brojeve u formatu pokretnog zarez~.
opcracijc C·1tanja. pa se dohija sest istovrcmcnih citanja koja se nalaze u razlicitim fa- Sledece tri jcdinice racle s brojevima u formatu pokretnog zareza: sahiraju ih i oduz:-
;ama JzvrscnJcL maju, porcde ih i iL njih vade kvadratni koren, odnosno dele ih.
Programskc skokove obavljajedinica Branch. Posle skoka postoji lik~no kasnjen1~
[~e_cl_i~i;a ! Opis ---~ ! ___~K~·s.

l!+f:l
1 2 od 3 ciklusa. tako cla se posle skoka uvek izvrsavaju tri instrukcije (do 15 nperacija',
! Constant I Operacije s r · · 5 X X eak i kada skok nije uslovni.
11
I ·---~--------t-
i kons_tantama
----
Na kraju dolazimo du dvc multimcdijske.jedinice koje obavljaju specijalne mult-
!Integer 132-bltne arit meticke i logicke ~~ 1 X X X X X medijske operacijc. DSP u njihovom imenu skral'enicaje za Digital Signal PnKcs-.cr
, ALU operacije
L---------t-.'"---- ---
i Shifter I Visestruko p Jmeranje
1-- ~"____j___" _ _ _ _ ·--
1 Load/ I Operacije s ~-~·lOrijom
!2
!2
1
3
·---
,x_-f '
I
I•
IX
'-
X
i (procesor digitalnih signa!a), koji multimedijske opcracije efektivno zamcnjujr.
J\ilultimedijske opcracije ukratko cemo objasniti u nastavku. Njihova va£na osobina
je koriscenjc saturacione aritmetike (engl. saturated urithlllclic) umcsto aritmetik:
~~~0~--- I I komplemcnta dvojke. koja se koristi u rad11 s celim hrojcvima. Kada se rczultat opt-
--t---:--
+
r--
-···-
I
! trtcFP i Operacije sa 32-bitnim celim 12 i 3 I IX X raL·ijc ;bog prekoracenja ne mo/.e prikat.ati, umesto da se generi;e izuzetak ili prikaz~
: MUL

,-------
r

; FP ALU
I brojevima in
u formatu pokretnog
___ ,- _ -,- __
zareza
·---
Aritmetika brojeva u formatu 2 x
I . , I
-~---+-----
!
1

x
pogrc:Sna vrednost, prikazuje se najblizi ispravan broj. N:t primer. kada sc r~;di 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 dugaJ~, da ir-
I

compare
· pokretnog zareza
:~p----~~~d~nJe b~~~va ~formatu
I pokretnog zareza
i1
I
~
1

I
i--l
+-- i --I

I I
I
ix
r
:
I
1
strukcija nc sadrzi svih pet potencijalnih uperacija. Kada sc polje nc k,Jristi. ow> s~
sa/.ima da bi se ustedeo prostor. Operacijc knJe po,tojc zauzimaju 26. _:q iii -12 hit~.

·. ;::p~qrt diV Iva~;; kv~-dratr~~-:;--117- ~--- r~---r~-r ~1


Prema hroju stvarno prisutnih operacija. instrukcije za proccs"r Tri'\lcdia mngu hi.i
I Deljenle I
dugacke od 2 do 28 bajtova. ukljucujuci i mali tik;,ni cleo.
I korena brojeva u formatu I , i i I I
1

i pokretnog zareza I I I 1 1
1
TnMcdia tok\lm izvrsavanja ne proverava dati su operacije unularjednc instrukeij~
1
i-8~;:nch -tup~;fjanJe~g7amskim 13 I 1~
I
x Ix j lI 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

----r; i
1
: tokom I

'DSP ALU I Mult.imed. ij.·ska aritmetlk~ sa


j dvostruk1m 16-bitnim
j2
I
13 rx---·-1I 1
--jl
~X i da hi sc ustcdeli tranzistori. Pentium u tuku i;vr;avanj~t provcrava da li ,u we _,Li-
perskalarne uperacijc kompatihilne, ali za to plac~t visoku ccnu kad :,u u pitctnju slo/c-
operandima Iii cetvorostrukim I ' I I ! nost. vreme i hardver. TriMedia izbegava ovaj tro~ak prebacujuci br~'me rasporcdiva!ijJ
_____ 8-bitnirn operandima . -l--- __ --~ 1----: operacija na prevodioca kuji ima na ra,pulagar;ju svc' vremc mog~t S\ eta da pa;'ljivJ
, DSP MUL I Multmledijsko mnozenje '12 I' 3 , 1x x i optimi;ujc poloz~lJ pojc:dinacnih operacija u rcL·ima inqruL·ije. S clruge str::nc. ako_i:
I dvostruklh 16-bitnih ; I '
~ o~eranada iii cetvorostrukih
8-o1tn1h operanada
1 I
I I
i
I
1
I
j

I
1
_j'
'
za oper~tciju neophodna funkci,malna jedtnica kuja trcnul:l\1 nijc nc~ raspu:ag:mj'.
instrukcija cc se privremeno ?austaviti dok sc mlg:Jvar;Ijul'ajcdinica nc oslt'hmli.
----··-· '-. ..---"-.--------.--..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.
550 Poglavlje 8: Arhitekture paralelnih racunara 8.1 Paralelizam na prncesorskom 551

Kao i kod ltaniuma-2, operacije za procesor TriMedia koriste prcdikaciju. Svaka Sledec'e cetiri grupe sa slike 8-5 obavljaju oznacene operacije nad operandima raz-
operacija (uz dva manja izuzetka) navodi registar koji se ispitujc pre izvrsenja opera- licite velicinc, opsecajuci rczultat tako da stane u odrecleni intervaL Grupa Min, mJx
cije. Ako je najmanje znacajan bit registra postavljen, operacija se izvrsava; u suprot- ispituje dva registra i za svaki bajt pronalazi najmanju iii najvecu vrednost. Slicno to-
nom, ona se preskace. Na svaku od (do) pet operacija u instrukciji zasebno se me, gmpa Compare posmatra dva registra kao cetiri para bajtova i poredi svaki par.
primenjuje predikacija. Primer operacije u kojoj se koristi prcdikacija je Multimcdijske operacije se retko obavljaju nad 32-hitnim celim brojevima jer JC
IF R2 IADD R4, RS -> R8 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-
koja proverava sadr?.aj registra R2 i, ako je njegov najmanje znacajan bit I, sabira vlja pomoc'u tri komponentc, po jedne za svaku boju (RGB prostor) iii u logicki ek-
sadrzaje registara R4 i RS i rezultat smesta u registar R8. lz opcracijc se moze ukloniti vivalentnom obliku (YUV prostor, o kome cemo govoriti u nastavku poglavlja). U
uslov ako se upotrebi rcgistar R1 (koji jc uvck I) kao registar za predikaciju. Ako se svakom slucaju, glavnina obrade ohavlja se nad pravougaonim matricama koJC
upotrebi registar RO (koji je uvek 0), operacija ncc'e raditi nista (NOP). sadr?.c 8-bitne nem:naccne cele brojeve.
Multimedijske operacije za proccsor TriMcdia mogu se svrstati u 15 grupa prika- Za procesor TriMcdia postoji mnogo operacija spccificno namenjenih efikasnoj
zanih na slici 8-5. Mnogc operacije ukljucuju svojevrsno ,.opsecanjc''; u njima se obradi matrica 8-bitnih neoznacenih celih brojcva. Kao jednostavan primer. razmotr.-
zadajc operand i interval, a operacija prisilno smesta operand u interval, menjajuc'i te gornji levi ugJo matricc 8-bitnih vrcdnosti smestenih u (,big endian") memoriji,
mu vrcdnost u gornju iii donju granicu intervala ukoliko je prvobitno bio izvan njega. kao sto je prikazano na slici 8-6(a). Blok velicinc 4 x 4 prikazan u uglu sadrzi sesnae>t
Opsecanje sc moze izvoditi sa osmobitnim, sesnacstobitnim iii sa tridesetdvobitnim 8-bitnih vrcdnosti oznacenih simbolima od A do P. Pretpostavimo, na primer, da ma-
opcrandima. Na primer, kada se na brojeve 40 i 3ci-O primcni interval opsecanja od 0 trica treba da budc transponovana kako bi se dobila mat rica kao na slici 8-6(b ). Kako
do 255. rcwltat su brojevi 40 i 255. Grupa Clip izvodi opcracije opsecanja. se to moze i;:vesti'l

Grupa I Opis / 32-bitni registar


Clip (Opsecanje) I Opseca cetiri bajta iii dve polureci I'
,-- ·- r - --,--·
DSP absolute value (Apsolutna vrednost) Opsecena apsolutna vrednost oznacenog broja A B C D A E I M R2 [A[BJCIDJ R2 [AJE'JITMl
IE IF IG IH I [l:Ujj_J !Nl
~~-----~----

DSP add (Sabiranje) Opseceni zbir oznacenih brojeva E F G H B F J N R3 R3


~--·-·

DSP subtract (Oduzimanje) Opsecena razlika oznacenih brojeva I J K L rc G K 0


R4 II I IK I L I
j R4 @@IKJ~l
M N 0 P D H L p
DSP multiply (Mnozenje) Opseceni proizvod oznacenih brojeva
r- RS IM IN I0 IPl R5 ID I Hlil£='J
Min, max (Minimum, maksimum) Minimalna iii maksimalna vrednost cetiri para
(a) (b) (c) (d)
bajtova
Compare (Poredenje) Poredenje dva registra bajt po bajt Slika S-6. (a) l'vlatrica 8-bitnih dcmcnala. (bJ Transponovana matrica. (c) Originalna matrica
- -- ----1
Shift (Pomeranje) Pomeranje para 16-bitnih operanada smc~tcna u Cctiri rcgistra. (d) Trart-.;pono\ ana matnca "imcStena u Cctiri rcgistra.

Sum of products (Zbir proizvoda) I Oznacen zbir 8-bitnih iii 16-bitnih proizvoda
Transponm·anje se mo?.e obaviti tako sto ce se kro;: 12 opcracija ucitati bajtovi u re-
Merge, pack, swap (Spajanje, pakovanje, I Rad s bajtovima i polurecima
gistre, a zatim krozjos 12 operacija smestiti na prava mc:sta. (Napomcna: cetiri bajta na
razmena)
dijagonali matrice tokom transponuvanja se nc: pomcraju.) Problem sa ovakvim pristL-
IByte quad.averages (Srednja vrednost ~eoznacena srednja vrednost cetiri bajta, pomje to sto on zahteva 24 (dugacke i spore) operacije rekrenciranja memorijc.
jta) izracunata bajt po bajt
~- ~~~~~~~~~~~--~
Altcrnativaje da se puC:nc sa cetiri opcracijc koje ce ucitati po jednu rcc u cetiri r<--
Byte averages (Srednja vrednost bajta) Neoznacena srednja vrednost cetiri elementa,
izracunata bajt po bajt zlicita rcgistra (od R2 do RS) kao na slici 8-6(c). Zatim se te cetiri reci pretvaraju opt-
Byte multiplies (Mnozenje bajtova) Neoznaceno 8-bitno mnozenje 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-
1 Motion estimation (Procena pokreta) Neoznacen zbir apsolutnih vrednosti oznacenih
L 8-bitnih razlika . moriji smanjujerno sa 2-+ na 8, maskiranjc: i porneranjc su skupe operacijc zbog mnc·-
l~ Ostale aritmeticke operacije j gobrojnih operacija potrebnih za izvlacenje svakog hajta i ponovno umctanje na
njegovo pravo mesto.
Slika S-5. Glavne grupc namenskih operacija za procesor TriMedia.

~
552 Poglavlje 8: AI·hitckture paralelnih racunara 8.1 Paralelizam na proccsorskom 553

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

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

'
~
ft<··"
~~
:
;.J'.~- 556 Poglavlje 8: Arhitekture paralelnih racunara K 1 Paralclizam na procesorskom Cipu 557
D<ll
rt~t·.:
~4' '
Na kraju. rnoze se uvesti i rad s vise programskih niti. Njegova je vrcdnost to sto Suprutnost particionisanju dcljenih resursaje potpuno dcljcnje resursa (engl. jill/
f
~,:; .. drug:!'' programska nit moze da iskoristi hardver koji inacc ne bi nista radio. Nakon resource sharin!{ ). Kacla se koristi ova serna. svaka programska nit moze da pristupi
izvesnog ekspcrimentisanja postalo je jasno da se sa 5% povecanja povrsine cipa po- svakom potrebnorn resursu. MeLtutim, zamislite brzu programsku nit sastavljenu
~]:
trehnog za visenitni rad postizu 25% bolje performanse u mnogim aplikacijama, sto uglavnom od sabiranja i ucluzimanja i sporu programsku nit sastavljenu uglavnom oc!
~:(
~l opravdava uvmlcnje ovakvog nacina rada. Intelov prvi procesor s podrskom za vise- 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-
t<~ • nitni rad hio jc Xeon 2002. godine, ali je visenitni rad kasniJe dodat i u Pentium 4,
t pocevsi ud verzijc s taktom od 3.()6 (1Hz, nastavljajuci sc u svim brzim verzijarna kanja ispred linije obrade. Najzad, popunice red cekanja. pa cc: Sl' br/a prograrnska nit
:~; procesora Pentium. Svoju implementaciju visenitnog rada u Pentiumu 4 Intel je na- zaustaviti zhog ncdostatka mesta u redu za instrukcije. Putpuno deljenje resursa resa-
~ zvan rad s hipcrnitima (engL lzyperthrewiin!{). va problems neiskori.~ccnim resursom, kada gajec!na prc1gr:1m.sb nil nc koristi, a dru-
Osnovna idejaje bila da se omoguci istovremen rad dve programske niti (iii, rnoz- ga ga trazi, ali otvara nov problem kada jedna prograrmka nit tnl1ko uptereti resurse
da, procesa jer pmcesor ne pravi razliku innedu procesa i programske niti). Hipernit- da drugu znatno uspori iii cak potpuno zaustavi.
ni cip Pentium 4 operativnom sistemu izglec!a kao dvostruki proce~or u kome oba Srednje rdenje jc ograniccno deljenjc (engl. thrc.\ltold slwrin!{), prema kome
procesora dele zajednicki kcs i glavnu mcmoriju. Opcrarivni sistem rasporectuje pm- programska nitmo/.e dinamicki da pristupa rcsursima tkcJJi nisutiksno particionisJ-
gram~kc niti z.a nezavisno izvrsavanje. Ako su istovremcno otvorcnc dve aplikacije. ni), ali sarno do odrcdenog maksimuma. Za resurse koji su replicirani, ovakav nactn
operativni si~km ohe mo?e istovremeno izvr<avati. Na primer. ako sistemska usluga rada daje potrcbnu lkksibilnost- prog:rarnsLt nit sc nee~ zaustaviti 'ato stone moze
~alje iii prima clcktronsku pnstu u poz.adini, dok korisnik aktivno rac!i u nekom pro- da pristupi rcsursirna. t\ko, na primer. nijcdn:1 nit nc moze da zauzme vise od 3/4 reda
gramu, oba programa se mogu izvrsavati paralclno, kau da svaki koristi svoj sopstve- za instrukcije. brza nit ce se uvck i7.vrsavari, bez ohzira nato sta radi spora nit.
m pmccsor. Za rad s hipcrnilima Pentium-+ koristi raz!icile stratcgije dcljenja resursa da hi na
Aplikacioni softver projcktovan uz poclrsku za visenitni rad mu/,e da koristi uba raL.Iicitc nacinc resio pomcnuk porenc:ijalnc problcme. DuplirariJe se koristi za rcsurse
virtuclna procesora. Na primer, pmgrami za obradu video zapisa obicno korisniku koji .su S\e vrerne potrehni svakoj niti, kao stu su pwgramski brojac, mapa registar<: i
omogucavaju da primcnjuje odrcdene tiltrc na svaku -.liku iz mlrectenog intcrvala. Fil- kontroler si~lemskih prekid:t. Dupliranje ovih rcsursa uvcc'ava povrsinu cipa samo za
tri mugu da menjaju osvetljcnost, komrast. ravnotd.u boja i c!rugc' karakteristikc sva- 5r:{ .• ~to je mala cerw za rad s vi~c programskih niti R.csursi kojih irna toliko c!a nc po-

ke slike. Program tada moze da udredi jedan procesor za obradu parnih slika, a drugi stoji npa:;nost da i!t potpunu ang:a!uje bilo kuja prugramska nit, kao sto su redovi kesa,
za ohradu ncparnih i cia oha deJa programa tcku uporcdn. nczavisnu jcdan Dd drugog. potpuno sc dele dinamicki. S dn:gc strane. rc,ursi koji upravljaju radom liniJe za par.l-
Posto dvc programske niti dele svc hardvcrskc resursc, p<Jtrcbna jc stratcgija za !t:lnuuhradu. kao stu su raLliciti redo\ i cekanja unutar linije, particionisu se, uz dode-
upravljanje delJCiljem. Intel je udredio cctiri korisne strategijc La dcljcnjc re~ursa ll ljiv:mje poh)\ inc m-.:sta S\akoj pwgramskoj niti. Glavna linija obrade mikroarhiteklurc
okviru rada s hipcrnitima: dupliranje re.;;ursa. panicionisanjc r.:sursa. ograniccno Nethurst !.,,))<~ '" koristi u f\~1hiumu +rrik.azan~tje na slici t;-9. pri cemu hcle i sive po-
deljenje i potpuno dcljenjc. Svaku cemo ponaosoh ukratko ubjasniti. n\i:JC' ukazuju na tu Ld;o se rcsur:.i dudcljc.tjtt reluj. odnosno sivoj programskoj niti.
Prvo i,;tic·enw da sc Ddredeni resursi dupliraju sanw ;a viscnitni rad. Na primer.
[Tl~:;J~- r:'ro·:Jrc":;Jr1st: brc1-cC
posto svaka programska nit ima sVOJLI knntrolu toka. mora se d<ldati i cir·ugi progr:uJJ-
.. ..
±+~ r-~:~= I~! ~ !f-_,.,~..Jl
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 f-,!-f-J mnr1 ' i __j
-
1
i
;.111,1'1-'
-)-,
..::.~~
svaka nit moie biti nezavisno prckidana. ff,~ ,;~:;~t-1 ~--- _j '"""L:L ~~~~~-"C~
Sledccc je particionisanjc deljenih resursa (cngl.[>urtilionnl rcwtun: .\!turing\. c::::!j] :lUUWJ • 1 1 'll]n!'n i'!ljl'l c=::==. r-+)
1

~----l--H ...:----=-j L-~~~t~h---.;::i!:~iil_j E~~ l-~---


gJe sc .,vaki hardverski resurs stmgu deli izmedu aktivnih niti. ~a primer. aku prc>C'~­ ' I ! lJ ~-] !i.!l!r!il ,j;U ' :1
'~ ~u·
~=;
~~
! '~
~:::-__J
I
sor ima red ccLmja iLil1eL!U dve funkcionalne faze paralelne olxadc. pnllnina ;nc;ta
Kc>s z;;. r:;,::.u R~'-'t;•·;;~;; lzvrSavanw D-keS Red za
u njima moze se namcniti prvoj programskoj niti, a polov ina drut:ui prc;crarnskoj niti. ~rd,CtPj-: pio2:J2lfTUr1jt! zavrSavar,e
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· SJih.a 8w9. DcljCllj•: rt..''-'UL'->:t lt.mc(!l! pr;)gJ ~un ...,h.lil nili u 1111krourhitc-kturi \rctBurst Pentiuma -1-.

tivno dohijamu dva Lasebna prucesora. Lose jc to slo se mn/.e lksiti da ll jedm>lll
:--b JllC:iiJ,ldll<'j .-;Jici vidir;Jp LLi Sll S\i red11Vi cekanja pa11icinnisani. S poJovinom
trenutku Jedna prograrnska nit ne koristi sasvirn svuje rcsup;e, duk ih i.-:tm rcmcno
meq,t u svakolli rc'ciu rocrvi-'~'nih 1a .J<.:tln;r nir. 7'1,1 taj nacin nijcdna od dve niri nc
druga prugramska nit tral:i. ali im ncma prist up. Dakle. rc~ursi k<Jji ~usc mogli l.;mi-
llH'J,' cia iLhaci drugu i/ rc:da .. kd1nica /.a d,•,kljivanje i preimenovanJe registara ra-
sno upotrchiti. ostaj u neiskorisceni.
kmk: jc l'&itcJ•:ni:-.:liJ:t. R,tSJ•urnlivac sc deli dinamicki, ali u1. ogranicenJe. dane bi
jt'dll,l nit nu;ci~t .'V:l lllCS[J. 0'ol:tk ia; ~ linije obrade pntpllllll Se dele.
558 Poglavljc 8: Arhitckture paralclnih racunara 8.1 Paralelizam na procesorskom 559

RaJ s vise programskih niti nije, medutim, samo ,med i rnleko". !rna on i svojih ne-
Linija, I
Procesor Linija obrade Procesor
dostataka. Jako je particionisanjc jcftino. Jinamicko dcljenje resursa, narocito LIZ po- obrade · I
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,
c:::: ~
svaka radi odlicno LIZ mali broj (skupih) promasaja kcsa. Kada se pokrenu uporedo,
svaka promasLije kd mnogo pLita. pa rezultat moze biti znatno losiji. Kes memorija
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 ). (a) (b)

Slika 8-Hl. Vi,;e procesPra najednom cipu. (a) Cip s dve linije obradc. (b) Cip s dvajezgra.
8.1.3 Vise proccsora na jed nom cipu
Jako visenitni rad znatno poholjsava performanse po umerenoj ceni. za neke apli-
Hcterogcni viseprocesorski cipovi
kacije je potrebno poholjsanje pnformansi koje on ne mo;:;e da obezbedi. Za takve si- Jedno potpuno drugacije podrucje primene koje vapi za cipovima s vise procesora
tuacije su smisljeni cipovi s vise procesora, tzv. viscprocesorski cipovi. Dve oblasti JCSU ugradcni sistcmi. narocito Olli ugradeni U audio i video clcktroniku sirokc potrC•-
koje su interesamnc za primenu cipova s dva iii vise procesmajcsu najzahtevniji ser- snje. kao sto su TV prijemnici. DVD plejcri. kamkorderi, konzok za igru, mobilni
veri i clektronika sirokc potrosnje. U nastavku cemo sc na njih kratko osvrnuti. 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-
Homogcni viscprocesorski cipovi ju minijaturni racunari. s jednim ili v i;e prc1ccsora, mernorijom. kontrolerima ulaznc·-
Kako je VLSI tchnologija napredovala. danas se na jedan cip mozc smcstiti vi~c -izlaznih opcracija i odredenirn, namenskim ulazno-izlaznim uredajima. Mobilni
telcfon, na primer. nije nista drugo do PC racunar s proccsorom. memorijom. minija-
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. turnom tastaturom, rnikrofonom. zvucnikom i bezicnim prikljuckom za mrezu- sve
u malnm pakovanju.
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. Razmotrite. na primer. prenosivi DVD plejer. Racunar u njemu mora da obavlja
sbieee funkcije:
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- I. Upravljajeftinirn. nepouzdanim scrvomehanizmom za vodenjc glave uredaja.
vlja samo .JCclan deo ccnc sistema). 2. Prctvara analogni ,ignalu digitalni.
Za vise proccsura na jedinum cipu. pred kuje ,c postavljaju skromniji zahtevi,
3. lspravlja grl.'Ske.
preovladuju Jve kunstrukcije. U prvoj, pnkazanoj na slici ~-lO(a). zaista postoji samo
jedan cip. ali je na njernu i druga linija ohradc. cime se potencijalno udvostrucava
-+. Ddifru.Je i <)bradujc L.a~titu digitalnih autorskih prava.

be-'. ina izvrsavanja instrukcija. U drugoj konstrukciji. prikazanoj na sl ici ~-1 O(b ), 5. Dckomprimuje vicko zapis prema standarclu MPEG-2.
postoje 1.aschna jezgra na cipu, a svakc1 sadr/.i procesm. Jczgro (engl. core) veliko je h. Dekomprimuje zvuk.
elektronsko kolo. kao sto 'll proccsor, konlroler ulanw-izla/.nih operacija iii kd. kojc 7. Kodira izlaz za TV prijcnmike prcma standardima NTSC. PAL iii SECAJ\11.
se na cip mo/"e sme-,titi kaujedinst\en modul, po pravilu upmcdo s drugimjc/.g:rima.
Svi ovi po.-;10\ i moraju sc obavljati u realnom vremenu. uz ohczhedenje kvaliteLt
Prethodna konstrukcija omogucavalaje proccsurima da dele n:'sup;e (npr. funkciu-
usluga, 'miktnu stcdnju encr;iJe. odvoclcnje toplote i ogranicenja u pogledu vclicine.
nalne jedinicc) i tako dopustalajednom pruce,oru da koristi resur.sc koji drug om prn-
rczine i ccnc uredaja.
cesoru nisu polrebni. Takva sama rada, s drugc stranc, zahteva izmcnc u projektu cipa
DVD diskuvi C:uvaju infonnacijc u clugackoj spiralnoj putanji, kao sto je (za kom-
koje sene mogu lako primeniti na cip s visc od dva proccsora. ~asuprot tome. dv:1 iii
pakt disk) prik.azano na slici 2-2-1-. Kaku disk rutira. glava za citanje mora tacno d~1
vise jczgara se bez te:ikoca pustavljaju na isti cip.
prati 'ipiralu. Ccna uredajcl je niska zahvaljujuci tome sto se koristi srazmcrno jedno-
Q Cipovima S vise proccsora govoriccmo kasni.Jt~ U OVOill pog:JavJju. Jako SC tO rcll-
stavan mchanicki -;istcm pomocu loga se glava cvrsto ndrzava u pravoj poziciji soft-
i matranje prilicno oslanja na cipove s vise proccsora izgradcnc od jednoprocesorskih
\cT;kim putem. C!aYa gcncrise analng.an signal koji se pre ohradc mora pretvoriti 11
i cipova, veliki deo razmatranja primenljiv je i na viscproce,orske L'ipove.

L
l_.i
u~·
f!:w\'
Poglavljc 8: Arhitckturc paralclnih racunara 8.1 Paralclizam na proeesorskom 561
560

digitalan. Po digitalizovanju. iz signala se, softverskim putem. moraju ukloniti grdl-.e Sledeci urectaj kome je potrchan hetcrogeni cip s vise proct.'sorajeste modemiji mo-
kojih ima rnnogo u komprirnovanom DVD zapisu. Video L.apis je komprimovan pre- bilni telefon. Danasnji telefoni ponekad irnaju ugrauene fotoaparate, video kamer~,
ma standardu MPEG-2. pa su La dekomprimovanje potrebna slozena izracunavanja konzole za igranje. Web citace klijente. citac e-poste i digitalne satelitskc radioprijem-
(slicna Fourierovim transformacijama). Audio Lapis se komprimuje prema psihoaku- nike, a koriste i ugradenu tehulog:iju La mobilnc telcfone (COMA iii GSM) iii za bezic-
sticnum modelu i takode se dekomprimuje pomocu slozenih izracunavanja. Na kraju. ni Internet (IEEE f\02. I I. zvan i WiFi): u buducirn mobilnim telefunima mozda cc s1e
audio i video zapisi se moraju preraditi za reprodukovanje na TV uredajima prema ove funkcijc postojati istovremenu. Kako uredaji postaju sve funkcionalniji. uz rucr.e
standardima NTSC. PAL ili SECAM. u zavisnosti od zemlje u koju se DVD plejcr casovnike koji su u stvari GPS ured:0i za navudenje i naocare koje :.;adrzc radioprijem-
isporucuje. Nc bi trcbalo da budete izncnadeni kad kazemu da sav ovaj posao nc moze nike. potreba za heterogenim cipovima s vise procesora moze samo da rac;te.
softverski i ureal nom vremenu uraditi jeftin proccsor opstc namcne. Potreban jc hc- Prilicno hr;:o cc cipovi na sebi imati i 500 miliona tranzistora. T,tKVi cipPvi ;,u prc-
terogeni cip s vise jczgara. od kojih je svako specijalizovano za odreden posao. Pri- velik zalogaj za konstruktore koji bi da projektuju jedno po jcdnn logicku kolo iii
mer jednog DVD plejcra prikaLan je na slici 8-ll. 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-
Kader kompozitnih ristc jezgra (sustinski biblioteke) koja sadrze poprilican bwj podsklopova ida se una

I po potrebi smest:0u na cip i 111CL1Usohno povezuju. ProjekttJnli tada lreba da odluce


video zap1sa
Dekoder NTSC/PAUSECAM
kojt: ce procesorsko jezgro upolrebiti za upravljacki proeesur i koji to proce;,ori spe-
Dekoder MPEG zvuka Kontroler diska cljalne namenc trc·ba da mu pomugnu. Kada se veci deo 1.adataka prepusti softveru

Up""''"'"'
v 1deo zapisa ·

pmceooc[~ ~ br~
---~--
\

lf
/~ _fl 1

I

Keo -~-.-.---,.
koji -;e izvrsava ll upravljackmn procesunt. sis!Lm ,-;e usporava, ali cip postaje lllllllji
ti jcftiniJi ). Vise proccsora spc·cijalne 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 '~ner:;ije i manje uslubadanje tuplote.
Heterogeni cip
sa sest Jezgara u ~'!·""'_:_:""' _ __ Stoga se projcktanti cipnva sve cesce suocalaju sa m:tkvim kompromisima. a Sve
manje hrinu o tome gdc da smestc koji tranzistor.
<'/L___=====~==~~~~~~­
. 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
Slika S-1 J. Logil:ka .-.truktura jeJnustavnug DVD plc.Jcra sadrli hl'fl'rugc!11 C·ip:; v i\c jcl~ar~t
mlv,tja za memmiju. a taj procenat i da!je raste Ovde sc .iavljaju bmjni problemi. Ko-
za razlicitc funkcije.
liku nivc•a 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 ne~Lo memorije'l Da li
Funkcije svih jezgara na slici 8-ll su rclLlicite. a svako je;gro je hri/ljivo nptimi;n-
d'ttn huc!c SHA:.l iii SDRr\\1 memnrija' 1 OdgPv•.lr 1111 sv,:ku od ovih pitanja znacajno
vano cia svoju funkcijuubavlja najbolje ~to mole uz najnizu cenu. Na primer. DVll vi-
llli•:c !let pcrfufl1ldl1SC. [lllll't:~nju Cllt'l'gije j (),,]uh:tdanjc (pp]ute na cipu.
deu zapisi komprimuju se prema semi pol.llatoj kao i\IPE(;-2 (skraccnica od imcn~t
Osin1 flPljckt;~ p··•'<xsora i sisL'ma menwt·ije. ZllclC~t,ian l'inilac jc i komunikacioni
njenog tvorca. Motion Picture Experts ()roupL Sema funkciuni~e Lako ~tll "' svaka :;li-
si:;tcm- nacin na koji sva jcrgra :nectust•b·~o ~ann:nj'JJU infunnacije. U malim s:-
ka deli na blokove piksela koji sc zatimna sluzen nacin tran;fprmisu. Slika se nn>/c sa-
stojati iskljul'ivo od Lr~msfonnisanih blokova iii mole sadrfari i inf(>mlaCI)U lLi )C
'tc::ninltt p.) pr:11 i!u cc biti duV\'Ijn;~ i JCdna m;~gi:-.lnla. ali ona u vecim sistemima
ubr;u u:-.;:.::~) ~rl~). Problt~nl s~ l:esto n1nZc rc<iti pon1oCu viSe n1agistrala ili
odrcdcni blok isti kao i blok u prethmlnoj slici. samo stu je pnrneren <HIIlJC za (_\.\:, ~\;)
prslc'tH.'Ill kuji p(•l'l'lujc svajcelgra. L' drugm;J slucaju 'c arbitriranje ustvaruje tako sto
i sto ima nekoliko izmenjenih pibela. Kada sc uvCJko ndto radi snt'tvcr:;ki. tn trajc i,u-
:,e du7. l'l''itcna prn,;ktlujc mali pakct. 1.van zcton (engl. lilACI/). Jezgro koje !.eli da
7.etno dugo, ali se nwl:c naprCJviti hardverskajedinica ;ra :V!PEG-2 d.:kndiranJe kPj:t i,u
:::,!lj~ ]Wtl::Lke lll••r:: 11:1jpre J:t dohije zcto1l. Kada ~a dt1hije i po\alje pndatke, .Jezgr:J
posao obavlja veoma brzo. Slicnn tome, dekmliranje zvuka i ponuvnu kodiranjc- k<llll-
\T;:l'a lc'tDn u ;'f ;tc'tl. uh.,, d~t nn na,Lavlj~t da kruli Ch :tj protokol sprc:cava sukoblje~­
pozitnog audio i video signala prcma svetski prihvacenim TV standardnna mule sc·
vanj(_' u pr"\L__·n~L
ohaviti bulje pomocunamenskih thardvcrskih) pmcesora. Ova zapa/anj:! n,t~ hrh' du-
KetO prin>cr moduLI ita l'ipu rnO'!;;,Jajmu fH:Vl-mu re:;enje CorcCon-
vode do zakljucka da trcha osmisliti hderogeni cip s vi;;e jczgara speciriC:ncJ ntt~net~jc­
nect, prih:t/~tflt) n~t :--i ici
K- 12. Tu je arhilcktura /a :•nvc/ivanje: jczgara hl·terogenog viSt-
nih pojcdinim audio i video aplikacijamtl. ;vkdutim. posto ,ie up!·:tvlpcki prc<.:c'llr u
prnce~,c,r-..:~o::; r~arn~·;lo tJ si-.:~cn1irna kuji . . . c :'ITk':~t:tju na jcdan Cip. (_-,orcC'onnect
stvari procesor op.~te namene koji se lllcllC pmgramirati. vi~cprocesorski cip se mule
jc /~l Cipuvt_· s \ i~~ pruce:-,ur,t u il'~~ . . . llC'in ~~ni~lu nnu ~ro jc PCf Inagistrala za Pentium
iskoristiti i za druge. slicne namene (npr. za ugradnju u DVD nku1·Jer1.
- :cpct:, knji mc·c:tt~·•hlhl P''vc£uj<: s\C deime. ?vkdutinl. /~t razliku od PC! mag:islrak.
562 Poglavlje S: Arhitckture paralclnih rai'uuara 8.2 Koproccsori 563

pri projektovanju arhitekturc CorcConnect nisu pustojali zahtevi za kompatibilnoscu sa distributcri PC racunara i kupci kupuju. U CoreConnect zajednici, nezavisni timovt
st<uijom opremom iii protokolima, niti ograniccnja kuja se ticu magistral a ugradenih na projektuju jezgra, ali ih ne pravc, vee ih kao intelektualnu svojinu licenciraju kompa-
maticnu plocu, kao sto je bruj nuzica na ivicnom konekturu. nijama za proizvodnju elektronskih urcdaja siroke potrosnje i drugim kompanijama,
koje tada projektuju namenske heterogene viseproccsorske cipove zasnovane na nji·
\
Magistrala Uredaj
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-
za pristupanJe 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
Procesorska Magistral a za periferijske
ureda1e
na trzistu. Naveliko se koristi i arhitektura Al\IBA (Advanced Microcontroller Bus
magistrala
pe~o~ 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,
Slika S-12. Primer ll:ltvl-ovc arhitckture CorcConnect.
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).
CorcConncct ima tri magistrate. Proccsorska magistrala jc sinhrona magistrala
Buduci da proizvmtaci cipova imaju sve vecc mukc da povecaju radni takt proce-
vclikc hrL.ine, s paraklnom ohradom i 32,64 iii 128 vodova za podatke koji rade takt-
sora zhog problema sa odvoclenjem toplote, cipovi s vise procesora veoma su popu·
om od 66, 133 iii 18.3 MHz. :Vlaksimalan protuk podataka jc, shodno tome, 23,4 Gb/s
lama tcma. Vise informacija o tome naci cete kod Claascna (2003), Jcrrayae i Woll'a
(a kod PCI magistrale inwsi 4,2 Gb/s). Postojanje paralelne obradc omogucavajczgri-
(2005 ). Kumara ct aL (2004) Lavagnoa (2002), Linesa (2004) i Ravikumara (2004 ).
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 8.2 KOPROCESORI
r[ komponcnte.
r-:, Posto smo razmotrili nekoliko nacina postizanja paralelizma na cipu, krenimo
Ra;:vlaccnjc proccsorskc magistrale po celom cipu pokvarilo bi njene pcrforman- dalje i poglcdajmo kako se racunar moze ubrzati dodavanjem drugog, specijalizova·
Lj
~ " se. pa zahl postuji druga magistral a za spore ulazno-izlazne uredaje, kao sto su UART nog procesora. Ovih koprocesora (engl. coprocessors) ima mnogo vrsta, malih i ve-
Cipovi. tajmeri. USB kontrokri, scnjski ulazno-izlazni uredaji i dr. Ova magistrala likih. Na ccntralnim IBM racunarima serije 360 i svim njihovimnaslednicima, za sve
~ ' ..
za perifcrijske urcdajc uproscava pristupanje osmobitnim. sesnaestobitnim i tridc- ulamo-izlazne operacije postoje nezavisni ulazno-izlazni kanali. Slicno tome, CDC
sttdvohitnim pc·rifcrijskim urcdajima, ada se za to nc utrosi vise od nekoliko stutina racunari serije 6600 imaju I 0 nezavisnih procesora za ulazno-i;:lazne operacijc. Rad
:: ~

logickih kola. To jc takudc sinhmna rnagistrala maksimalnog protoka od 300 Mb/s. s grati.kom i aritmctika brojeva u formatu pokrctnog zareza druga su elva podrucja u
Dvc magistrak su mcducohno puvuanc mostom, slicnim mostu kojim su pre vise go- kojima su koprocesori nasli siroku primenu. Cak se i DMA cip mozc smatrati kopro-
dina p<Jvczi v;mc PC! i IS;\ magistrate u PC racunarirna pre nego sto je ISA magistraL! cesorom. U nckim slucajevima proccsor prcdaje koproccsoru instrukciju ili skup in-
i povuccnd it UJWlrebc. slrukcija i nalaze mu da ih izvr.si; u drugima je koprocesor nczavisniji i radi po
Treca je magistrala za pristupanje registrima urcdaja. vrlo spora, asinhrona sopst venom nahodenj u.
magistrala s primcnom usagla~avanja. koju koriste procesuri da bi pristupili registri- Koproccsori, ti;:icki. mogu imati sopstveno kuciste (ulazno-izlazni kanali !Bl\1
ma svih perifcn~skih urcdaj<t i tako upravljali njima. Onaje namenjena povremcnom racunara 360), rnogu biti smdteni na dodatnu karticu (mrdni procesori) ili zauzimal!
prcm··su -.amn po nekoliko bajtova. rnesto na glavnom cipu (rad s brojcvima u formatu pokretnog zareza). U svim sluca·

..~ 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-
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.
i;:voc1aci praviti pnK·e:.orr: i konrmkt·c koji se medusobno lako uklapaju. Bitna rcvlika multimediju i kriptografiju.
I
je. mcdutim, to ~tt) u PCI 1.ajcdnici pn,izvodaci zaista pravc i prodaju ph1ce kDJe
L
i ,~~

~\
"'·'.'

~=.Ml!l·..,·,..,·· - - - - .

~~ 564 Poglavlje 8: Arhitckturc paralelnih racunara


---·----------·----------
8.2 Koprocesori 565

8.2.1 Mrdni procesori Cim se ndgovarajuca prenosna linija oslobodi. Ova tehnika se zove komutiranje pa-
keta sa smestanjcm i proslcdivanjem (engl. store-wul~Jimvard packet swirching).
Danas su racunari ug:1avnom povezani u mrc/.e i1i sa Internetom. Zahvaljujuci raz-
Iako mnogi misle da je Internet velika jedinstvena regionalna mreza, on je u
voju tehnologije mrcl:nog hardvera, rnrde su sada toliko brze da postaje svc tcZ.e sort-
tchnickom smislu skup brojnih mcdusobno povczanih rcgionalnih mreza. Medutim,
vcrski obraditi podatkc koji se salju i primaju. Zbog toga su 1.:1 obradu mrdnog
ova raz1ika nije bitna za ono o cemu cemu govoriti. Slika 8-13 prikazuje Internet iz
sanbracaja srnislJeni spccijalni mrdni procesori i rnnogi vrhunski racunari sada imaju
pticje perspektive. onako kako ga vidi kucni korisnik. Korisnikov racunar se sa Web
jcdan takav proeesor. U ovom odcljku dacemo kratak prika.c rada u mreii. a zatim
serverom najct'Sce povezuje preko telefonskog sistema, pnmocu modcrna brzinc
cemo ubjasniti kaku rade mre/.ni prucesuri.
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
Osnovc rada u mrczi
i davalac Internet usluga je kablovska kornpanija.) Korisnikov racunar deli podatk.e
Racunarske mre/.c se mugu svrstati u jcdan od dva op;ta tipa: lokalne mrezc koje treba da posalje serveru u pakete i saljc je svom davaocu Internet usluga (engl.
(engl. Lonil-ur!'u ncfH·orks, LAN I. kojc povewju vise racunara unutclr zgradc i1i orga- !Ill erne/ Service Prm·idcr, lSI'). kompaniji koja kmisnicima obebeduje vczu sa lntcr-
nizacijc i mre:lc sirokog opsega iii regionalnc mrezc (engl. \\'idc-urC(I lll'lworks, netom. JSP ima visokobrzinski (najcesce opticki) prikljucak na jednu od regionalnih
_,,-, n:.-LVI. koje povczuju racunarc rasute sirum vclikug gcografskog pm1rucp. Najpopu- iii glavnih mre/.a koje sacinjavaju Internet. Korisnicki paketi sc proslcduju u skokv-
larnija LAN mreht je Ethernet. Pn ubitni Ethernet se sa:.tojao nd Lkhclog kahla u vima preko Intemcta dok ne stignu do odg:ovarajuceg Web scrvera.
koji su !:ice kojc do1azc iz ra;licitih racunara si1om umctane pomocu ckmenta. od Vecina kompanija koje ohczbcduju vezu sa Internetom imaju spccija1i.covan racu-
milj;1 naJ.vatwg ubodna (vampirskal racva (engl. t•wnpirc I<Zf!). U savrcmenom nar ;:van zastitna barijera (engl..firnvu/1), koji tiltrira sav dolazni saobracaj, uk1anjJ-
Et!JcnK·tu, raCun<tri -.;u povczani s ccntraltwnt sk.retnicom (engl. .\'\rirch ). kao sto jc pri- juL'i iz njega nepozeljne pakcte (npr. one od napadaca koji pokusavaju da upadnu u
kazano na dcsnom delu s1ike ~-1 :1. Prvubitni EthcrndJC miko brzinmn od 3 Mb/s, ali sistem). Zastitna harijcra jc povezana s lokalnom mrt'Zom. najcesce preko Ethernet
jc pna knmcrcijalna v-cuija veL' pusti;.ab 10 :\lb/s. On<t je kasnije zamcnjcna brzim skretnice koja pakete usmcrava ka zeljenom serveru. Naravno, rea1nost je slo~.cnija
Eth,:mctnm od iOO i\lb/:.. a potunt i gigahitnim Uhcrnctomml1 Gb/s. Ethernet brzine od onoga sto smo prikazali, ali osnovna ideja sa :-like 8-13 i dalje stoj i.
l 0 Ch/-; vee jc na trzistu, <1 onaj od HI Gb/s nalazi se u zavrsnoJ fazi. 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
Davalac aplikac'la 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
lnternst Ruter Server paket sa zahtcvom GET PAGE (preuzimanje strancl serveru koji zna da takav zahtcv
'] '' obradi. Kuriste se hroJni protokoli, samostalno i komhinovano. U vceini slucajeva

----·
Te,.do,-,::;k,_: ;~,.~·ju Zast1tna ban1era
uredcni su po slojevima. pri cemu visi slojevi isporucuju pakcte ni7.im slojevima u
.~lf~~
I / ~

~#""' ·' Pacdt

~-
;li"J,
,-- iS.,,olaCI
--~
,l ~ ~ ~ ,./
'¥. /
I

I '
- .- 1----
1
r--1
,-----(
/

•-_--, ;!j
/
'fi, cilju obrade, a najnizi sloj obavlja stvarno slanje paketa. Kod primaoca pakcti kroz
slojew putuju ohrnutim rcdom. odozdo nagore.
~~'-/!_ '-'::t·.Jg:~
ICl!"n'd , I , ·
i -. . . . . \ // // J L ___j L.....T------l'-. 1 Posto mreL.ni procesori .. zaraduju !a zivor' taku sto ohraduju protokole. trcbalo )i
l__ ----·/ ( " •. nesto vise da saznamo o sarnim pmtokulima pre nego sto prcdemu na proccsore. Vrct-
~
'"<'P \'// ____ __)I Skretrwca
~~~
·... tl1 timo se za trenutak na zahtev GET PAGE. Kako se on salje Weh serveru' 1 Web Citac
~ l
r<or:sn1Kov <acunJr najprc uspostavlja veJ.u sa servcrom pomocu protnk.ola TCP (Transmission Contn1l
Ve:.a o:JtJC~1rn '\3b!oin h·-----------------~
Protocol- protokol za upravljanje prcnosom). Softwr koji implcrncntira ovaj pro-
tokol vodi racuna o tome da svi paketi budu primljeni u ispravnom stanju i ispravni~n
Slika s.IJ. Nal·in na kuji "c knli-.nici povc;:uju \,i '..,(_.'f\enm;t na lntcrnLtU.
rcdo,Jedom. Kada se pakct izgubi. TCP softver trazi njegovu ponovno s1anjc svc clc•h:
R.cc1ut1alne mr:~'c sc organizuju drugaci_je. One !nLtju :-pecijali;nvane racunarc. ga na kraju ne dobije.
zv ._trK' nsmcri>a(i ili rull:ri (cugl. i'I'Lii,·rs). povcz~tnc L.ic<tllta iii uptickim kab1tJ\ ima. Tu u praksi ;:naCi da Web citac zahtcv GET !~,1Gl:' prctvara u ispravan fornut
k:h> ~.~~~ 1~~ ~Jrika/~l!Hl u sn·dnjcn1 d(lu :-:lik~: X-13. Sl-..up\'!\·i in!'onn~l·..:ija, .rvani pakcti HTTP poruk.e i predaje ga TCP so!tveru za s1anje preh:o vcz.e. TCP soltvcr dudajc i;-
I engl. 1. tipic·!:c' vcli.:inc i;:ncdu h-+ i tlku I~UO baj!uva. krcc'u .se ml it.vornog prcd poruke 'vojc zaglavljc u knmc se nalaze redni hroj pakcra i druge informacij~.
r~1L:un~1r~t ~-i"l!l. jcdtn1 iii \il~l' rurcra ~vc ~..k·k nc dPdu na ~vojc pdrcdiSle. Pakct :-~e pri Ovo zaglavije sc ( prirodno 1 zuve TCP zaglavljc.
.:1\ :tkc1n ~k,'~ku u.:c u n1Cil10riju rutcr:t i ?alinl pn)~)h:t1ujc ')]ed~r:~rn rutcru na purall.Jl 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

¥
566 Pog!avlje 8: Arhitl'kture paralelnih racunat·a 8.2 Kopmccsori 567

IP (Internet Protocol- protokol za Internet). Ovaj softver na pocetak paketa dodaje Jeclno od hardverskih resenja 1.a brzu obradu paketa jeste namensko integrisano
IP zaglavlje koje sadrzi adresu izvorista (racunara od koga paket potice). adresu ocl- kolo ASIC (Application-Specific Integrated Circuit). Takav cip je nalik na harclverski
redista (racunara kome se paket salje), broj skokova do kraja zivotnog veka paketa realizovan program koji izvrsava ono za sta je programiran. Brojni clanasnji ruteri
(da bi se sprecilo beskonacno lutanje izgubljenih paketa), kontrolni zbir (za otkri- sadrze Cipove ASIC. Oni, medutirn. donose i veliki broj problema. Prvo. za njihovo
vanje gresaka u prenosu) i druga polja. projektovanje i proizvodnju trcba mnogo vremcna. Oni sui potpuno netleksibilni, pa
Pakct (koji sada ima IP zaglavlje, TCP zaglavlje i zahtev GET PAGE) posle toga se ako je potrebna neka nova funkcionalnost. mora se projektovati i proizvesti nov cip.
prosleduje nanize sloju veze, gcle muse pre stvarnog slanja na pocetak dodaje zagla- Osim toga, ispravljanje gresaka u njima preclstavlja nocnu moru, posto se moze obaviti
vlje sloja veze. Sloj veze na kraj paketa dodaje jos jedan kontrolni zbir, zvan CRC jedino projektovanjcm, izradom, isporucivanjcm i instaliranjem novih cipova. Oni m
(Cyclic Redundancy Code- ciklicni redundantni kfld), koji se koristi za otkrivanje i sku pi, osim ako je potreba za njima clovoljno velika cia pokrije troskove razvoja.
grdaka u prenosu. Mozcla mislite cia je suvi~no immi dva kontrolna zbira (u sloju Drugo resenje je cip FPGA (Field Programmable Gate An·ay)- skup logickih kcla
veze i u IP sloju), ali se pokazalo da oni poveeavaju pouzdanost. Pri svakom skoku koja se na lieu mesta mogu orgqnizovati u potrebno kolo. Ovi cipovi mnogo brze sti~u
proverava se CRC zatim sc uklanja ?aglavljc sloja veze i CRC i ponovo sc generisu na trziste nego cipovi ASIC i rnogu se podesiti na terenu tako sto se izvade iz sistema
u formant koji odgovara odlamoj vezi. Slika 1>-l.f pribmje izgled paketa u Ethernet i umetnu u spccijalan uredaj za programiranje. S druge strane, oni su slozeni. spori i
mrel:i; takav je i na telefonskuj liniji. osim stu umesto zaglavlja Eternet mrcZ:e ima skupi. znaci neprivlacni. osim za speciticnc, ogranicenc primene.
,wglavlje telefunske linije". Rad sa zaglavljimaje va/.an i predstavljajcdnu od stvari Na kraju doiazirno do mrdnih proccsora. programabiinih uredaja koji cloiazne i
i·,. koje mogu da obavljaju mrdni procesmi. Ne !reba posebno naglasavati da smo ovom odiazne pakctc mogu da obraduju brzinorn kojom sc oni prenose kroz mrdu (tj. u re-
prilikorn samo z.agrcbali povrsinu racunarskih mreza. Njihov iscrpniji prikaz potrazi- al nom vremenu). Uobicajeno sc postavljaju na clodatnu karticu zajedno s mcmorijom
te kod Tanenbauma (2003 ), 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
Korisni podaci 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.
Slika 8-14. Pakct na Ethernetmrel.i.
Kartica mreznog procesora ,,
.,,
'' Osnovc mreznih proccsora '

l
~ :, :'
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 ~crveri. Medutim, po~tojc
;::::ct:t:t--1
i bro_1ni ureltaji koji u mrdama sluz.e bo posrednicki sistemi. a to su rutcri, skrctnice.
zastitnc barijcrc. zastupnicki Wch serveri (engl. proxv ~veh servers) i racunari w urav-
notciavanjc saobracap. Zanimljivo jc da su upravo oni i najzahtevniji jer kroz njih
proiazi naJvcc'i bruj paket•t u sckundi. Zahtevni sui saveri. ali korisnicki racunari nisu.
kdan doLuni pakct. u zavisnll~ti 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 ' PCI prikljucci
ltlkove). () he;:bcdnosnim poslupcima (npr. sifrovanje iii ddifrovanje). 0 komprimo-
Slika 8-15. Tipicna kartica i Cip mrcznog procesura.
vanju iii dekomprimovanju itd.
Uz brzinc u lokalnirn mrczama koje sc prihlizavaju cifri ocl 40 gigabita/s i paketi-
Na kartici sc koriste i SRAM i SDRAM memorijski cipovi (po praviluna raL.licite
ma vclicinc I KB, mrdni racunar mozc Joci u priliku da ohradujc skom 5 miliona pa-
nacine). SRAM cipovi su brzi. alii skuplji od SDRAM cipova, pa ih zato ima manje.
keta u sckundi. Za paketc velicinc 6-1. hajLl, broj paketa koje treba ohraditi u sekundi
SRAM memorija se koristi ;:a cuvanje tabela za rutiranje i drugih kljucnih struktura
raste na 'koru ?ifi miiiona. Obavljanjc r•u.licitih upcracija za 12-200 ns (zajedno s vi-
podataka. dok SDRAM mcmorija (privremeno) cuva pakete koJi se obraduju. Posto
;cstrukim kt,piranjem pakt:ta k•Jje uvek po~tnji) ne moze sc izvesti softverski. Neop-
k bodna JC hard verska podrska.
~J;~: '
"''
~- ----
568 Poglavljc S: :\xhitckturc paralclnih racunara 8.2 Koprocesori 569

su SRAl\1 i SDRAM cipovi smesteni izvan cipa s mrdnirn procesorom, projektanti Obrada paketa
imaju slobodu da odluce koliko koje memorije zele da upotrebe. Iz to1!a sledi dajed- Kada paket stignc. on prolazi kroz niz faza obrade, bez obzira na to da li mrezni
nostavnije kartice sa sanm jednim mrdnim prikljuckom (npr. za PC racunar iii ser- procesor ima paralelnu obraclu. Kod nekih mreznih procesora faze su podeljene u
ver) mogu irnati malu kolicinu memorije, za razliku od vrlo slozene kartice vclikog operacije koje se izvrsavaju nad paketima sto dolaze s mrdnog prikljucka iii sa si-
rut era koja je ima mnogo vise. stemske m'tgistralc i koje se zovu dolazna obrada (engl. ingress processing), i na
Cipovi s mrdnim procesoromoptimizovani su za brzu obradu velikog hroja dola- operacije nad odlaznim paketima, zvane odlazna obrada (engl. egress processing).
znih i odlaznih paketa (to .maci, miliona paketa u sekundi najednom mr6nom vodu, Svaki paket prvo prolazi kroz dolaznu, pa kroz odlaznu obradu. Granica izmedu ove
a ruler lako moze imati i 5-6 takvih vodova). Tako velike brzine ohrade llHl\::ll ·"' po- dve vrste obrada nije cvrstajer pojedine operacije mogu pripastijednoj iii drugoj vrstt
stici jedino ako se unutar mrdnog procco.ora ostvari visok stcpcn paralel i1.nu. Zatn obrade (npr. prikupljanje statistike o saobracaju).
svi mrczni procesori imaju vise PPE sklopova (Protocoi/Programmablc/Pad.ct Pru- U nastavku c'emo razmotriti moguci redosled razlicitih faza obrade, ali imajte na
cessing Engines), od kojih svaki ima (mozda izmenjcno) RISC jezgro i malu k,·.Ji(inu umu da sve faze nisu potrebne' za sve pakete i da se opcracije mugu obavljati 1
interne mcnwrijc za cuvanjc programa i nekoliko promenljivih. drugacijim redosledom.
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- I. Provcravanjc kontrolnog zbira. Ako paket Jnlazi sa Ethernet mreze, CRC
strale). stigne u mrezni procesor, on se pmslcduje nezaptblenom PPE sklopu na obra- zbir se ponovo izracunava da bi se uporedio sa CRC zbirom iz paketa i tako
du. Ako su sv i PPE sklupuvi zauzcti, pakt:t se stavlja u red ceLmja u lnkalrwj SDRAM se utvrdi lo cla je pre nos prosao bez grcske. Ako je CRC zbir Ethernet pakcta
memoriji sw ci<Jk se PPE sklDp nc oslobodi. lJ ovakvoj organi;,aciji ne postojc hnri- ispravan iii ne postoji, ponovo se izracunava kuntrolni zbir TP paketa i poredi
zonlalne veze innedu PI'E sJ..:lopuva. kau one na slici S-1 5, jer ,k]opuvi ncmaju potre- sa odgovarajucim zbirom u paketu kako bi se utvrdilo da IP paket nije mozda
be da medusobno komunicir:tju. ostecennekim pogresnim bitomum~moriji posiljaoca nakon sto je CRC zhir
Drugi nacin org,rni;,manja PPE sklupovajestc: smestanJ-: uliniju p:rralelne obrade. kod njega iJ:racunat. Ako su svi kontrolni zbirovi ispravni. paket se prihvata
U prikazanoj semi svaki I'Pf·: sklop jc 7aduzcn zajednu LtlUDhr,:de. posle kujc sledc- za dalju ohradu; u suprotnom on se odbacuje.
ccm PPE sklupu upuc't:jc puLui vac na paket kuji jc upravo obradiu. Ovako organi- ' Proveravanje polja. Analizira se odgovaraJUCc zaglavlje i na osnovu njega
;mana lintj'r PPE ,klopma n:rtaj nacin radi vrlo sltc!hl lini.Jt ohr:rde unutar proccsora, sc iL paketa uzimaju J..:ljucna polja. Ll Ethernet skrctnici i-;pituje se samo
o cc·mu Slllo guvorili u p"glavlju 2. U ubc pomenute orgratri;act]e. PPl: sJ..:lopuvi se zaglavljc Ethernet pak<:'la, dok se u IP rutcru ispituje IP taglavlje. Kljucna
polpuno mugu pr<>grallnrati. polja se cuvaju u registrima (organizacija paralelnih PPE sklopova) iii u
U naprcdnijim rc.~enjima PPE ,,klopmi rade' v·ise pmgram,.;kill niti, ~to zn,tl'i da SRAI\1 mcrnoriji (organizacija s paralelnom obradom).
rad.: s v i\c o-J..:up<'va r.:;ist,tra i imaju hardverski rc>gistar kuji pubzuje koji se skup 3. Klasifikovanjc paketa. Paket se klasi1ikujc prema pravilima koja se mogu
trcnutno uputrcbljav:1. Ova os"bina :'c koriqi la istuvremcrhl i1.1T\av 'mjc> vise prugra- programirati. U najjednostavnijem slucaju paketi se razvrstavaju na pakcte
ma; [l!W!ram (;.apra\'ll, pr•'gr:mbka nit) knji CC SC Sicl!eci j;yr\avati hir:t SC tako Slll SC s podacima ina upravljackc pakcte, ali obicno postoji i 1inija klasitikacija.
pru!n.Cili pronrcn!Jiu .. tckuc'i c-kup rcgi;;ara". Kada Pl-'1-: c-kll'P nst;,ne jer pri.stupa 4. Biranjc hrzc iii spore putanjc. Vccina mreznih procesora ima specijalnu
SDR.\~1 menmriji (.:'to tra.JL' \·i;c cik!u-;ai. flilj,'c>':cc sc udr:~.th preJ:v,i na sledecu pro- brzu putanju koja je optimimvana za raJ sa -;tarim. do brim i jednostavnim pa-
gr~un:y~l[ nit k~)ja ~c 11H"'ZL· i.1\T-::i1i. :\a naCin PPE c.;~.;.lnr" n:o/l· da budc iskoriSCcn u ketima, dok se sa svim drugim paketima radi Jrugacije. obicno pomocu upra-
vi,"kum stcpenu ,\rk i k;tcla c.~sk• pri-s\q·;t SDRA:\1 mnn<Jriji ilr nlnvlja Jrugc spore vljackog proccsora. Prcma tome, mora sc izabrati iii brza iii spora putanja.
tJpcr~t:..:ije "a ')p1)lj1Ji n; ur·~tLtjinl~t.
:'i. Utvrdivanjc odrcdisnc mrezc. lP paketi sadrze 32-bitnu odrcc!isnu aclresu.
Osim FIT skiup•h<t. ,vi mrc/ni prOL'eS<Jri saJrze i upc:tv!pC·ki pn,ce,or- ubicno Nijc moguce (iii nije pozeljnu) imati tabelu sa 232 odrednicc u kojoj bismo
standardni R ISC p;·uces, ,,. clp.~[e n'rmenc. koj i "ba\ !j :r c, \ c: po,.;]uv e nc'Vl'!:tne za ohradu trazili odn.:distc ~vakng IP paketa, tako cia levi deu IP adrese predstavlja
pakcta {ltpr. a)urir~l~1jc Llbt:Li Ll rutiLtnje). 0:jc~u\· progran1 :-.<..: /{~;,_·dnu ~ pntrchnin1 mreini broj, a ostatak identitikuje racunar u mreii. Mrt:Zni brojcvi mogu da
p·h.Ltcinla n:~L.tzi u !1lL~l1l\)rija na saJnoJn Cipu. Stavi~c. n1nng1 n1rc>n( procc ...;ori saclrLe budu bilo koje duLine. tako da njihovo odredivanje nije trivijalan zadatak. a
i } . :cL:n ili \i~e "'Pt:.'L·ij:._tl!J.u\~lni:l procc~orJ ;,a 11pr. up~)r\:dJ',anje 1Jhr~:l~tca podataka i oteiava ga i l'injcnica da pri puredcnju mo7e nastati visestruko poklapanje,
\L,:nc v a/.nc up.-:r~lci_ic. ()\' i su u q vari 111al!. \S lC Cipt )\ i. o~..il iL·n i ;_a po jedan pri cemu St' racuna samu ono s najdu/.im preklopljenim delom. Cesto sc za
sit~ln puo..;atl. k.l!} \to j'.? pron~tL~.:fenjL~ odrcdiSne adrcse u t~lht:li J:a nH;:·anjc. Sve kon1-
ovaj korak koristi namenski ASIC C·ip.
P('Jh..'n~c n1rc?nd.~ pi·oc>..>'l(Ji'a !l~·:du . . ~)bnn LJn1uniciraju prcK;,) jcdnc i:i \i\c paralclnih
n1~1~~i~-,1r~da. hr1inc Yi:~c g:g:thila u ~;ckunJi. kojc ~~.? nala;.c na :,anl\_)rn 2ipu. .. ,
~ .
'

_j
rI.
~

.
'
570 Poglavlje 8: Arhitekture paralelnih racunara 8.2 Koprocesori 571

.
' 6. Pronalazenje putanje. Kada se sazna broj odredisne n1reZ.e, tada se u tabcli Najocigledniji nacin poboljsanja perfonnansi mrdnog procesora jeste uhrzanje
putanja u SRAM mernoriji trazi putanja do nje. I ovde se za taj posao moze njegovog radnog takta. Performanse, naravno, nece rasti proporcionalno brzini rad-
l
~ upotrebiti namenski ASIC cip. nog taktajer na njih utice i vrcme memorijskog ciklusa, kao i cirugi cinioci. Osim to-

~! 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-
ga, brzi radni takt znaci i vise oslobodene toplote koja semora odvesti.
Uvodenje vise PPE sklopova i vise paralelizma cesto je dobitna kornhinacija, na-
~~! tokoli TCP, IP i protokol za Ethernet n1re:le imaju ogranicenje u pogledu ve- rocito ako su PPE sklopovi povezani paralclno. Linija obrade s vise faza takode moze
~.
~.
licine paketa koje mogu da obrade. Zbog toga korisne podatke. odnosno 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-
~~· pakete. mozda treba izdeliti prilikom slanja, a prilikom prirnanja ih ponovo
~
skiopiti. Ove poslove moze da obavi mrdni procesor. ne, vremenski zahtevne operacije koje se cesto ponavljaju i koje se mogu obaviti brze
~ hardverski nego softverski. Pretrazivanja, izracunavanja kontrolnih zbirova i sifm-
~ 8. Racunanjc. Ponekaci se s korisnim podacirna obavij;~ju opsdna izracuna-
~;
vanje/ddifrovanje tipicni su kapdidati za ove cipove.
t,"'<,
vanja (na primer, kompromovanje i dekmnprimovanje podataka. njihovo
;·I Uvodenjem dodatnih internih magistraia i prosirivanjem postojec'ih. moze se po-
sifrovanje iii ddifrovanJe). Te poslove moze cia obavi mrezni procesor.
~-;.· vecati protok paketa na cipu, pa i ceo sistern ;:bog toga rnoze raditi brze. Na kraju, za-
9. Rad sa zaglavljima. Zagiavija ponekad treha ciociati, ponekad ih ukloniti iii mena SDRAM memorije SR/\M memorijom po pravilu daje bolje performanse, ali
treha izmeniti neko njihovo polje. Na primer, jedno polje IP zaglavija sadr:i:i to, razumc se. kosta.
broj skokova koji preostaje paketu pre nego sto hude odbacen. Svaki put 0 mre?:nim procesoraima ima jos stosta da se kal:e. Koga ova tema ;:anima. neka
kada se paket primi i ponovo posaijc, vrednost u ovmn poiju mora se smanji- dodatne informacije potrazi kod Comera (2005), Cruwleyja et al. (2002). Lekka:;a
ti, a to moze cia uratii mreZ.ni procesor. (2003) i kod Papaefstathioua et al. (2004).
;·,;
10. Rad s rcdovima cckanja. Dolazni i odlazni paketi cesto se moraju stavljati
u redove cekanja na ohradu. U multimedijskim aplikacijama potrehno je da
8.2.2 Multimedijski procesori
sc paketi pravilno vrcrnenski raspureduju kako hi se izhegio .,scckanje".
;f, Zastitna harijera i li ruler mol:da treba da raspodelc dola-cni saobracaj na vise Drugo podrucje primcne koprocesora jeste u multimcdiji: za obradu slika u viso-
odlaznih vodova u skladu sa odredenirn pravilima. Sve su to poslovi koje koj rezoluciji i audio i video Lapisa. Obicni procesori nisu posebno dohri za opsezna
moz.e da obavi mrezni procesor. izracunavanja koja su polrchna pri obradi velike koiicinc podataka za ove apiikacije.
il. Gcnerisanje kontrulnog zbira. Odlami paketi moraju sadrLati kontrulni Zbog l<lga danas neki PC raC:·unari imaju posebne multimedijske koprocesore koji
zhir. IP kontrolni zbir moze da generise mrdni procesor, ali se CRC zbir u mog:u da obave vec'i cleo tog: pnsla, dok ce ih u buducnusti imati vecina racunara.
Ethernet mrezi obicno generise hardverski.
12. Obracunavanje. U nekim slucajcvirna neophodno je tacno registrovanje i\Iultimedijski procesor Ncxpcria
saohracaja paketa. narocito ako mrda proslecluje saobracaj drugirn mrc?:arna Ovo podrucje koje se sve brze razvija proucicemo na primcru Phiiip~ov e porociice
pod trLisnim uslovima. Mre/:ni procesor moze i u tom slucaju da obavi obra- pruce:-.ora Nexperia koji imaju razlicit radni takt. Nexpcria je heterogcni cip s vi~e
cunavanje. procesora kao na slici ~-li. On ima vise jezgara. ukljucujuci i upravljacki YLIW pro-
~· ;
13. Prikupljanje statistickih podataka. Na kraju, mnoge organizacije vole da ccsor TriMedia. ali i brojna je1.gra -ca obradu slike. zvuka. video zapi:-.a i mrel:nih
skupljaju statisticke podatke o svom saobracaju. a rnre[ni procesorje kao po- podataka. On se mol:e upotrebiti kao samostaian glavni procesor u CD, DVD iii MP3
rucen za taj posao. plejerima iii rikorclerima. u tclevizorima. u fotoopcratima iii video kamerama iii kao
knproce~m u PC racunarima za ohradu slika i multimcdijskih podataka. U oba slucaja
Poboljsanje pcrformansi on koristi sopstvcni mali operativni sistem koji radi u realnom vremcnu.
Nexperia obavija tri funkcije: prihvata ulazne poclatkc i strukturira ih u mcmoriji,
Mrezni procesori upravo postoje zhog performansi. Sta se mo.'.e uciniti da bi se one
obraLiujc strukture podataka i na kraju ih salje u ohlicima pogndnim za razlicite
poboij~ale'~lpak.pre nego stu to pokusarno. trebalo hi da cleJinisemo cilj. Performanse.
prih:lju(·enc i-clazne urccL0t:. Na primer. kada se PC racunar koristi kao DVD plejer.
premajcdnom nacinu merenja. mozemo izraziri kao broj pmsledenih paketa u sckundi.
Ncxperia se mo/.e pmgramirati da cita sifrovan. komprimovan tok podataka s DVD dis-
Prema drugom, to hi bio broj prosledenih bajtova u sekundi. Ovo 'ill dva razlicita naci-
ka. cia ga de.sifruje i dekomprimujc ida ga Lalim(u odgovarajucem obliku) po;aljc na
na merenja. a sema koja radi dobro s malim paketima mozda nc radi dobro s vclikim.
ekran na kome treha da :,e prikaze. Kada -;e program DVD plcjera ucita u proce,ur Nex-
Konkretno. ako kod rnalih paketa ubrtamo pronalazenje odredisne adrese. to mo::e
peria. on to sve moze da uradi u pD;:adini. hez angazuvanja glavnog: pron:sora raC·unara.
mnogo da poboljsa perfnrmanse. ali kod velikih pakcta tu resenje nije uputrehlji\o.
,.,!

~j

lt
~~
I
572 Poglavljc 8: Arhitekture paralelnih racunara 8.2 Koproccsori 573
--------

Svi ulazni podaci sc pre obrade smdtaju u mcmoriju; nema direktne veze izmedu I
<rcii:~~ ----m--~~---.
Upravljanje "'"'
ulaznih i izlaznih un:c1aja. Prcuzimanje ulaznih podataka obuhvata dekodiranje njiho- /[•
__ I /__.- Ubz

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. Ka SDRAM memoriji
''
'
lnterte1s ka
=
~ ~ '
''
Video ulaz ~~~:-32
'
Ulazni poc!aci mogu doci s PC! magistrale. sa Ethernet mrc:7.e iii s namcnskih ulaznih Ulaz opstih podataka CJ :I '
I

vodova (npr. od mikrofona iii mrcznog sistema. direktno prikljuccnog na cip). Cip 8 audio
Audio~ kanala
~~
Nexpcria ima 456 nozica, oc! kojih su neke predvidene za direktno primanje iii slanje
rnultirnedijskih (i drugih) podataka. *~C::P!il::l71, ... :1
~~
Obradom podataka upravlja pmcesor TriMedia. ciji se softver moze program irati
za razlicite potrcbc. Tipicni zadaci ovog procesora su .,rasplitanjc'' (engl. deinterla-
Kristal,
uCestalosti
27 MHz @LLstolo,
3 ~ -~
taJme~
-----------
cing) video slike radi postizanja ostrine. korigovanje osvetljaja. kontrasta i boje slika. &j
!w· - ulaz-lzlaz,

n~
menjanje velicine slike. pretvaranje slike jednog video format a u drugi i smanjenje lzlaz
Obrada -~
-~ DVDdekoder 'I
suma. Procesor je u ovom slucaju glavni izvmtac radova koji za odredene poslove an-
L___o;:>ooec ";'e'0'f ~ _ g,..oo'"" '"'""'~t""!~i-4-
__ "' : - ' 11: 32
gaz.uje brojnc podizvodace -- specijalizovana jczgra na cipu.
lzlazna obrad~1 obuhvata kodiranje struktura podataka u oblik koji odgovara izlaz-
nom uredaju (video. audio. slike, 20-gratika), objcdinjavanjc podataka iz vise izvora
Pod~;g:~'i~~::.J --J [ : lzlaz op~st<!'_pod~takilJ~.J ~
-- -. -r- -~--·- ~ ~
i uprav lpnjc izlaznim urcdajima. lzlazni pudaci sc mogu slati na PC! magistralu. na [U?ffiviJallJ8 graf~J , _
1 '
; ! 8 audio
kanala

~~;e gre-~~J [;;;rtal~rSPi=IJz_]


Ethernet mrczu ili na namcnske ill~une vodovc ( npr. ka zvucni ku iIi pojacalu).
131ok-~ema cipa Nexperia PNX I 500 prikazanaje na slici 8-16. Njeguve drugc ver- JTAG ~~-
""" I .... [7: -_- : I ...
;: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 L .. ~-· -- ';::2 ---··------
pmlrucja funkcionalnosti: upravljanje. ulaz, obradu i izlaz. Proccsor na cipuje 32-bit- Slika X-J(,, I ktrogt'ni viSc·pruce-.,orski l'ip Nc'\pLTia.
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 Radom jezgra upra•ilja spulp\ni kristalni oscilator uce:-.ta]o-;ti ?.7 1\1!1;:: nva ucc;.,ta-
funkcionalnust cipa Nexperia. lost se interno umnol:a\ a 6-t put ada hi 'iC dobiu signal ucestalosti 1.72'1> Gl-lz koji :,e
Nexperia Ll<lpstc ncma glavnu mcmorije na cipu. izuzev dva kesa unutar procesora dalje kori-;ti svuda 11a C:ipu. Na ovPm mc:;tu .>c uprav lp i potro:::njom energije. Proc:csPr
TriMedia. Zbog toga postoji intert"ejs ka spoljnoj DDR SDRAM memoriji. velicine po pravilu radi punom brzinum. a u\tale komponentc brzin<lm koja im je [l<'trchna da
8-256 1\IB. stojc sasvim duvuljno La tipicne multimedijskc aplikacijc. U;: takt od 200 bi obavile posau. i\lcdutirn. i proccsor mu/.c da snizi W<Jj radni ukt d:1 hi ustedco encr-
1\lH;. s memorijom st.' mozc komunicirati brzinomod 1.6 GB/s. giju. P(lstoji i relim .. spav:mja··. bda prucesnr nc:ma pravug P'''la· pa iskljucujL'
Na cipu se nalazi i interfejs ka PCI magistrali. namcnjen ;:a usmobitni, sesnaesto- vec'inu svujih funkcija d~t bi produziu trajanj~ batt:rije na prcnnsivim urda.Jima.
bitni i tridcsctdvobitni prcnos podataka uz radni takt od 33 i\11-lz.. Kada se cip koristi Ova jedinica ima i I t1 .. semat"ora"" -ca :-inhroni1.m anjc rad:1 vi~L' 1m:daja. Kada jez-
kao glavni proccsor u uredaju siroke potrosnje (npr. u DVD pleJeruJ. interkjs ka PCI gro pokusa da upi;e vrednost r:ulicitu od 1~uk u scmafor cija Jl' vrcdno-;t nuLl, nc:cc:
magistrali mo/.c da radii kao arbitar magistralc. Ovaj intcrfejs se rnol:e. na primer. ko- hiti problema: u ,.,jm drugim -;lucajcvima. u semaf,Jru se zadr/.~1\a pret!wdna vred-
ristiti 1.a komuniciranje s DVD uredajcm. nost. S druge ,tram:. upi,i vanjc' nuk U\ ck uspeva. Pustrl samo jcdnn JC!gro u jedntHll
Dircktnu \'CZU sa Ethernet mrdom obezbeduje namensko jczgro koje mofe da radi trenutku mn/.e da i..t)ri,ri sistcmsku m:tgi;.,tr~ilu. ove operaL·ije s11 clcmcntarnc (atom-
sa Ethcrnt:t vezama brzine 10 i !00 ivlb/s. Na taJ nacin. kamkorder Pprcmljen cipom skc) i prcdstavljaju dul'ru llc.ilO\'U za postuanJC llh.'du:-ohll<)g i,;kljuC·ivanja. Da bi do-
Ncxperia prcko Ethernet mrei'e mol:c da posaijc tok digitalnih podataka uredaju Let bilo pristup re>ursu. jc;gro pokusav~t da upise vrcdnost ra:licitu nd mde u ndreckn
prnuimanjc iii nJihovo prikazivanje. semafor. ;.\k<> upisivany: uspc, jo.gro c\llhij:t i.skljuciv pristup resursu sve dok ga nc
Sledec"e jc;.gro jc Laduzeno La pokretanje i ponovno puk.rl'tanje sistema. za gcne- u:;Jnhodi upi,;uj::-'i :wlu u ">Cm~:fm. Kadct ne dohijc pri-.tup rc:-,ur:;u. jc1.gro je du:~nn da
risanJC radnog takta i nekoliko drugih manjc vaznih opcracija. Ako sc na odn:dcnoj upi,tvanjc ncnuitc vrcdnmti 11 :;emaf<'r pcriodicno ponavlj,t sv•: dok u tome ne mpe·.
nozici Cipa Nexperia pojavi signal, sistem ce se punovo polrcnuti. Jezgro se mo/.c tako da ovdc nis<t u pit:rnju kbsicni sclll:I!"ori u kojima sinl gmurili u pog!aviJll h.
programirati i tako da radi kao programirani prckidac. Aku proce;.,or propusti da mu Pogiedajmu -;ad:t ul:uni dco (ipa. Ju.gn' za video ula;:;e prcuLima Jolcvni tuk di-
u odreckrwm vremcnskom intervalu po.(alje sign<d. jczgro L'e pretpostaviti da ;.,c :-.i- gitalnih podatala. \irlne 10 biiO\'a. ~uiava ga na ~ bilova punto(u od~uvarajuL;Lg al-
stem zaglavio i ponuvo cc ga pukrcnuti. U ~alllrl;.,talnim uredajima ponovno pokre- goritma i P•'da<kL' sme'.ta u spoljasnju SDRA:vl memurijtt Digitalfll ulazni poLLI<.:i u
tanje sistema moze se obaviti iz tles memurijc.

--------------------------------------~--~~~'~,~~~
....,.,,.,....
.,, ~

574 Pnglavljc !!: Arhitckture paralclnih racunara 8.2 Koprocesori 575

vec'ini slucajeva poticu od spoljasneg analogno-digitainog pretvaraca koji koristi ana- Jeclinica za podesavanje velicine video zapisa prihvata Iistu odgovarajucih zaclata-
Iogni, vazdusni iii kablovski TV signal. ka i zatim ih izvrsava (maksimalnom brzinom do 120 miliona piksela/s). LJ ove zadat-
Jezgro za opste ulazne podatke s taktorn od I 00 MHz rnoze da prihvati nestrukturi- ke spaua:
rane podatke sirine 32 bita koji poticu iz proizvoijnog izvora ida ih smesti u SDRAM
I. ,Rasplitanje".
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 2. Promena horizontaine i vertikalne climenzije slike.
za njihovo demultipleksiranje, a rnozda i za odredenu usputnu transformaciju video 3. Promena linearne i neiinearne srannere slikc.
zapisa. Demultipleksiranje je neophodno jer se isle nozice cipa koriste za ulaz video 4. Pretvaranje iz jcclnog formata u drugi.
zapisa i opstih podataka. 5. Prikupljanje podataka za histogram Iuminansi.
Jezgro za audio ulaz koje radi taktom do 96kHz moze da uzorkuje do osam kanala 6. Ub1azavanjc trepcrenja slike.
stereo mu.>:ike iii glasa uz osmobitnu, sesnacstobitnu iii tridesetdvobitnu preciznost i
da poclatke smesti u SDRAM mernoriju. Jezgro moze i da dekomprimujc formate, Difuzno emitovani TV sign~Ii su prepleteni (engl. intcrluced). sto znaci da se za
mesa kan<Lle, menja brzinu uzurkovanja, i primcnjuje liitre - sve pre nego sto audio svaku sliku na ekranu, sastavijcnu ou 525 horizontalnih Iinija (625 u sistemima PAL
pmiatke smesti u memoriju. i SECAM), prvo prenosc sve parne, a zatim sve neparne Iinije . .,Rasplitanjem'' se pu-
Jezgru za digitalni SP ulaz prihvata cligitalne audio signale prema standaruu Sony- stize bolje progresivno skeniranjc (engl. fJrogrcssive scan) slike. kocl koga se svc
-Philips (!EC I 937 ). Na taj nacin se Jigitalni auuio podaci mogu prcnositi iz jeunog njene linije ohraduju i prenose pravirn redosledom i osvdavaju brzinom dvustruko
uredaja u drugi be1. gubitka kvaliteta. vecom od broja prepietenih siika u sekundi (29.97 siika/s za NTSC i 25 slika/s za PAL
Kada se audio, video iii drugi podaci smeste u memoriju, trebaio bi Ja se obrade. i SECAM). Horizontalno i vcrtikalno poddavanje omugucavaju da se siike povecaju
·., 0 CC!llll brine slcdcca grupa komponenata na cipu. Filmovi koji se prodaju iii iznaj-
iii smanje. mo/.da uz opsecanje. Stanclardna teievizija ima odnos (duzina/sirina) slikc
mijuju na DVD cliskovima sifrovani su (skrembiovani) da hi se spreeiio kopiranje. 4:3, ali je on kod uredaja sa sirokim ekranom 16:9. sto mnogo pribliznije odgovara
DVD dckoder uklanja sifrovanjc i restaurira originalan lilm, komprimovan aigorit- odnosu 3:2 s fiimova od 35 mm. Jedinica za poddavanj~ veiicine pretvara ounosc jc-
mom MPEG-2. Ddifrovanje je operacija koja se obavlja izmedu dva dcla mcmorije, dan u drugi kmistcci linearan iii nclinearan aigoritam. Ona takmlc mo.l.e da pretvara
pri cemu se podaci uzimaju iz jcdnog bafera, a posle obrade salju Ll drugi. formate indcksiranih boja. RGB i YLJV jedan u drugi ida pravi histogram luminansi
Dckodcr du:l.inc ide korak clalje i uklanja rnoguL'nost kodiranja promcnljivc duzine pomocu koga se moze poboljsati kvalitet slike na izlazu. Na kraju. mogu sc obaviti i
karaktcristicnu za MPEG-2 (iii MPEG-1) komprimovanjc. gencrisuci poludckompri- neke tran,formacijc da hi sc smanjilo trcperenje slikc.
movane podatkc 7a jezgro MPEG ohradc koju sortvcrski obavlja procesor TriMedia. Deo ~:a upravljanje gratikom iscrtava dvDdimenzionalne slike na osnovu opisa
i

Ovo je uradeno 1ato sto se pri uklanjanju mogucnosti kodiranja promenijive duzinc objekata. On mo/e ida ispunjava zatvorcna podrucja sadrbjem ida obavlja tJ.v. gra-
(1-luffmanovog i kodiranja tokom izvrbvanja) nc koriste ctikasno mogucnn:,ti procc- lickc hitblt (BitBlnckTransfcr) opcraci.JC. koje se svodc na Iogtcko kombinovanjc
sora TriMedia. pa JC odluceno da se potrosi nekoliko kvauratnih milimctara sili- (AND. OR. XOR i dr.1 che pravougaone mape piksela.
cijumskog cipa i kodiranje implementira hardverski. Svc operacije koje se obavlpju Nc postojc spccijali7ovana jczgra ;ra obradu audio pndataka. Tabu obradu kuja
izmedu dva dcla memorije, gcncrisu obicnu mapu pikscla. nijc nba1 IJena sortverski. na ulazu obavlja procesor Tri[VIedia. Audio t.api,i sadr.'e
Mapa piksela moze da buclc u bilo korn od tri opsta formata, odnosno ujcdnoj od tri sraz.merno malo pmlataka. pa njihova softvcrska obralb uup~te ne predstavlja pru-
iii cetiri vcrzije svakog od njih koje postoje za razlicite velicinc i parametrc slika. Prvi blem. (}.;im toga. za nmuge aplikacijc obrada zvuka uopstc nijc potrebna (osim mol-
je format sa indeksiranim bojama (engl. indexed color). u kome svaka vrcdnost pred- da. J:a pret1 aranje jednog format a u drugi).
stavlja indeks u CLlJT taheli (Color Look Up Table) sa 24-bitnim vrcdnostima boja i Jczgro ;a ispravljanjc grcsaka pomaze projckLtnlima i programerima da pronadu
~-bitnim maskama alfa kanala, kojc se koriste za odreclivanje providnosti pri prekla- i isprav'" grc.~ke u hardveru i :;oftveru. Onu obczbcduje vezu do alatki kuje pudrbvaju
panju vise slojeva. Drugi fmmat, RGB, oponasa nacin na koji radi monitor ral'unara: IEEE standard 1149. I. poznatiji pud imcnom JT:\G (.luint Test Action Croup).
postoje zaschnc vrednw;ti ;ra intcnzitct crvcnc. ~:clcne i plave buje s\ akog pikscla. 1;lazna grupa prcuzi111a ohratknc podatl\c iz memorije i upucuje ih n~t i;laz. Jogru
Treci format jc YUV. napravljen prcma nacinu kodiranja TV :-.ignala. Umesto cia se 1.a kt!mpu;itne video zapisc preuzimajednu iii vise :-.truktura pmlataka kujc prcdsta-

zaschno kodiraju vrednosti crvcnc, zelene i plave boje. kamcra ih prctvara u jeclan vljaJU piksele. normalizujc ih. ~~ 1atim mesa na Ladati nacin 1 saljc. Pmlaci u indd>i-
kana! za luminansu (osvetljaj) i dva kanala za hrominansu (obojenost). Ovaj sistem ranom formalu u hodu se pretvaraju 11 stvarr.c vrcdnosti pikscla. a istuvremeno se. ah.o
obczbeduje vec'i propusni opseg za luminansu nego za hrominansu, sto daje vecu je pntrcbno. ohav lja i prctvaranje nekompatibilnih formata. Ovo je;gro. ukoiikn je
ntpornost na ;um tukom preno:-.a. Za apiikaciju kop obavlja TV ulaz i izlaz. format potrc·hnu. mo/.c da konguje i kontr~bl, owetljaj i boJU. Ono jc sposohno i za ciekat
Y UV pravo je resenje. Pnsto se pri smestanju razlicitih fonnata ogranicava hroj njiho- .. hroma ki" I t:ngJ. c!zmll!il keY). kod koga Se osoba koja Sl(lji isprcd cistu pJavc poZJ-
vih opcip, svako jezgro rnoze da cita izlazne podatke iz svakog drugog jezgra. Jine i/.()lujc sa sltke i postavlja ispred nckt: ma~tuvitije pozadinc iL drugog iz\ ora.

~i~~ '
~-
576 Poglavljc 8: Arhitckturc paralclnih racunara 8.3 Sistcmi s vise proccsora koji dele mcmoriju 577

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

sifrovanu vcL.u kako bi podatke kuje razmenjuju ;,a.;titili od uljCia kuji jc mogu pri- ti pmuJ...c u mcnwriJU. dclk ~'c ;h dru:;i i.t :1jc <5iiclti.
sluski vali.
578 Poglavljc 8: Arhitckture paralclnih racunara 8.3 Sistcmi s vise procesora koji dele mcmoriju 579

Mogucnost da dva (iii vise) proeesa medusobno komuniciraju preko upisivanja Multiracunari
poruka u mcmoriju i citanja poruka iz nje, i jeste glavni razlog popularnosti multipro-
Paralelna arhitektura moze se ostvariti i tako sto ce svaki proccsor imati svoju pri-
cesora. Model njihovog raJa programeri lako razumeju, a moze se primeniti na veliki
vatnu memoriju, kojoj moze da pri~tupa samo on i nijedan drugi procesor. Takvo
broj problema. Razmotrite, na primer, program koji analizira rastersku sliku (mapu
resenje se zove multiracunar ili, ponekad, sistem distribuirane memorije, i prika·
bitova) i prikazuje sve objcktc koje pronade na njoj. Jedna kopija slike cuva se u me-
zano je na slici 8-l8(a). Kljucni aspekt multiracunara po kome se on jasno razlikujt
moriji, kao sto je prikazano na slici 8-17(b). U svakom od 16 procesora izvrsava sc po
od multiprocesora jcste to sto svaki procesor multiracunara ima sopstvenu privatrm
jedan proces- analizira jedan od ! 6 dodcljenih de! ova slike. Bez obzira na to, svaki
lokalnu mcmoriju kojoj pristupa izvrsavanjem instrukcija LOAD i STORE, ali kojoj po·
proces ima pristup celoj slici. sto jc sustinski vazno, zato sto ncki objckti mogu da sc
mocu tih instrukcija ne mozc da pristupi nijedan drugi procesor. Na taj nacin multi·
prostiru na vise njcnih delova. Ako proces utvrdi da se jedan od njegovih objekata
procesori imaju jedinstven prostor rizickih adresa koji dele svi procesori, dok svak
pruz.a izvan granica dodeljenog mu podrucja slikc, once ubjekat ispratiti u susednom
proccsor multiracunara ima svoj prostor fizickih adresa.
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
~--·· Privatna mernorija
ukupno ima kuca, stabala i aviona.

Procesor

(a) (b) (a) (b)

Slika S-17. (a) i'vlultipruc-csor sa lh proccsora koji dele zaJcdnickumcnwriju. Stika S-IS, (.1) 1Vlultiracunar sa 16 proce,ora. svaki sa sopstvenom privatnorn mcmorijom.
tl') Slika podcljcna na Ill Jelova. od 1-.ojih svaki clflalit.irct Jrugi proccsur (bi Mapa bitova sa slikc 8-17 podeljcna na lo mcrnorija.

Pnsto svi pmcesmi multiproc.:sora vide istu memorijsku slil-u, pl>stoji .-;amo jedna Posto procesori u multiracunaru ne mogu medusobno da komuniciraju kroz. upi·
kopija operativtwg sistema. Shodno tome. postoji sanw jedna mapa stranica i samo sivanje podataka u zajednicku memoriju i citanje iz nje, za njih jc potreban drugacij1
jcdna label a proce~a. Kada se proccs blokira, 11_1egov proccsur omima svojc slanj<~ uta- mehanizam. Oni u stvari medusobno komuniciraju prcko mrt:Ze koja ih sve povezuje.
bek uperativnug sist.:ma i u nJima lra1i drugi pmces koji hi izvrsavao. Jcdinstvenusl U multiracunare mozemo ubrojati IBM-ov BlueGene/L, Red Storm i Googleov klastet.
sistema Je ono po ccmu sc multipmccsor r:ulikujc od multiracunara, u komc svaki Nepostojanje hardverski deljene memorije u multiracunaru ima vazne posledice
racunar tma sopsrvcnu hopijtt opcrativnog si,tema. po strukturu softvera. U multiracunaru je nemoguce da svi proccsi koriste isti pros to·
ivlultiproc·esor, kau i svi rctC:un,ui mura imati uLunu-i,-:\aznc urcJajc lnpr. Jj..;J.;ovc. virtuelnih adresa u kome bi mogli da Citaju podatkc iz memorije ida ih u nju upisuju
mrezne kart icc i Jrugu oprcmu ). lJ nekim multiprocesurskim sistemima samo neki jednostavnim instrukcijama LOAD i STORE. Na primer, ako procesor 0 (u gomjcm Je.
procesori im,tju pri.stup ulazno-iz\;u:nim urcdajitna i zato imaJU ,pcciplnc lunkcije za vom uglu) sa slike 8-17(b) otkrije da deo njegovog objekta zauzima i pndrucjc do-
obavlpnJL' ulazno-i,r\a/Jlih uperacija. U drugim sistcmima svaki procesur ima ravnu- deljeno procesoru 1, on moze samo nastaviti da cita podatke iz memorije kako bt
pravan prislup .svakom uLtnw-izbi.IHlll1 ur~t!aju. Kada waki proccsor ima ravnopra- dose gao rep aviona. S druge strane, ako procesor 0 na slici 8-18( b) d0l1c do is tog
van prislup svim mcnwrij.skim mudulima i svim ulazno-i,rlaznim uredajima i hada e otkrica, on ne moze da procita podatke iz memorije procesora I. Do potrebnih poda-
sa aspckta opcrativnog sistcma p<ltpuno zarnenjiv svakim drugim procesornm, ll) e taka on mora doci na drugi nacin.
onda simcrdcni multiprocesor 1engl. S\'11!/lll'lric Mulrif'mcessm; S!v!l').

1!
i~ .
~
580 Poglavlje 8: Arhitekture paralelnih racunara 8.3 Sistemi s viSe proeesora koji dele mcmoriju 581

On. konkretno, mora da utvnli koji procesor ima poJatke koji nJemu trebaju i Ja RaCunar I Racunar 2 Racunar 1 Racunar2 Racunar 1 RaCunar 2
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
Aplikac!Ja AplikaciJa Aplikacija AplikaciJa Aplikacija Aplikacija
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-
lzvrSno lzvrSno
verske metoJe send i receive. To softveru daje drugaciju. mnogu sluzeniju strukturu lzvrSno ,zvrsno lzvrSno
okruZenJe
Iok1u:':RnJe
okruZenJ8 okruZ:enje
okruZ:enJe 1 lzvrSno
okruZenw
nego stu je una kod multiprocesora. To takude znaci da pravilno raspodeljivanje po- programskog I pngrcw•skog
programskog
jezika
programskog
jez1ka programskog programskO•J
dataka i njihovo smestanjc na optirnalna mesta na multiracnuaru predstavlja prilican J8Zika j8ZIKa

problem. Taj problem nije toliko izrazen kod multiprocesora jer mesto podataka ne I 1ezika Jezika

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
Operativni
SIStem
Operativn1
sis~em
'
Operat1vni
sistem
lI
Operativni
sistem
Operativni
sistem
Operativr.
SIS!em

programiraju? Odgovor je jcdnostavan: vcliki multiracunari mugu sc mnogo lak~e 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 Ha.rdver Hardver Hardver Hardver Hardver Hardver
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 lak•1 !'I'U-
Oeljr=ma memorija DeiJena memoriJa DeiJena memorija
gramiraju. dok sc multiracunari la!-..o pravc. a te~ko sc prcJgramiraju. Posto nijeJna
krajnost nije optimalna. mnogo jc rruda ulo/.cno u traz~nje srcdn.Jeg re\enja- sistema (a) (b) (c)
koji hi sc srazmcrnu laku pravio i programirao. Zakljucak je da se deljena memDrija
mPze implemcntirati na razlicite nac·inc. od kt'.Ji svaki ima svojc prc'dnostJ i mane. U 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.
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 Jcdnu Pd memorija sa slike 8-1 Si a). Svaki racunar i ma sop,.,tvcnu virruelnu mcmori]u
njihove dubre slranL'. Ovde je glavni ciii da se pronadu skalahilna re~cnja. k•1ja cera- i ;.,op,tvenc tahele stranica. Kada procesor zcli cia obavi instrukciju LOAD iii STORE ~a
diti dobro i kacla sc bucle dodavalu svc vise i vi:;c pwcesura. ,rranicom koju nema, potprogram za obradu greske upueuje poziv uperativnom si-
Jcd,tll Od jll'iSllljla pravJjenjll hibridnih siq.cma /aSlliVa SC !la cin!~'ni•~i da '<tl'fL'illL:- skmu. Operativ ni sistem pronalazi trazenu stranicu i zahteva od procesora koji je tre-
Ili raCunarsl-.i si.,tern nije tnnth)liLI!L \'t.:'...: ~a"'ta\ljcn od ni/a ~lojc\~l (,~~C·J·--' ~L~111~t (1\C numu ima da je oslobodi i dajc pusalje prelo interne mrde koja povezuje proce'or~.
1-.njigcL r\a [aj naCin \t' ol\·aLl n-;p~:._k~!ldSt in1pletnentiranja dclj.:nc llh?Tl1\ n:t hiin Kada ,rranica stigne, preslikava sc u adresni prostor p();.i vaoca i ponovu se pokrece in-
kum ud 1i;;e oi"-JCia. kao ~tuje pribz:u:o llct s!ici X-ll)_ '~a -,iici ;-.;_]L(::i vidi:Ji,, de~ jc -;trnkcija koja je izazvala grcsku. Ovdc. LI ;,tvari. opcrativni sistem usluzuje procesor
dcljcna mcm.,rija impkmenrirana h:tnh-er:;ki. k:w kiJd pran'g mu!tipn'lT\l'ra. l' L•k- ;,tranicom koja nije na disku. vee u udaljenoj mcmmiji. Kurisniku to izglcJa kao ca
voj ~cmi pcstPj i jcdn:: kopija opcr:tti n:o;c ,j:-,:cma s jcdi:ht\ cnim ,(...upom rahL' i,1 i jed- racur1ar ima dcljenu memoriju. Sistem DSM dctaljnij:: eemo prouciti u drugom delu
nom tahclom ;a dmk:l.Jilanje memurijc. K::1la prnce,u zatreba v1..;c nk'lil<trijc. nn c,' n\·\)g poglavlja.
obraL'a ::pcr~:livnom si,r.:mu. k'.1ji tada u ''oi".l l:thcli rr:•/i :;l:•hudnt: ni<?nwrij,ku stra- T:·.:ca moguenost.JC da korisnicko izvrsno okruzenje implementira (mozda.jczicki
nicu i kDpira je u adrc;.,ni prostur p!L~i\ <<<1Cl. .':it<1 '"tic·~ upc-rati\ Ell;2 '>1\klii<l. pl>Stt>.Ji spcL·ific·an I oblik deljene mcnwrije. Ovdc programski jezik obezbedujc apstrakci.JU
:-..an1ojedna n1cn1~)rij~l i ~"'ll Sl)ftvLT',h.i \,,d[ Lll·ur~~~ o ton1t~ knji pnl\..'~:" in1,.1 ~l1ju slrani- dci!..:ne mcmorije koju tad a impkmentira prevodi lac i izvrsno okruzenje. Na primer.
cu. 1-Llrdver.\k~l Lkljcn:: lllcmorij~l se. kau stn ecmu ka.-,p:_je vidcti. 11HlfC implcmc'll:i- !n,;dcl Linda sc Lasniva na apstralciji deljcnog prustora n-torki. tj. zapisa kuji sadr2c
rati na vi~;e na~·in~L II polja /.a poclatke. Proces na bilo korn racunaru moze da ucita torku iz deijenog pru-
Drut!:t n~n:;uL'no:--;t_jc d~t --;c t!potrcbi hare_h·cr !lniltirJ(unar], a d:t Pp~.·r:.Hi\·ni ...;i·.;tl·nl :-.i- q,;ra l<lrki i da torku upisc u njcga. Po,lo se pristupanJcm prostoru torki upravlja i'-
nndira dcljcnu n;cnH•rij~l \lh.:;hcdu_~u·j 1~1 CiLtv :-;i~tcn1 j.:dinslven, n~:traril·~·-:;1. kljucivo softverski iprcko izvrsnog ohuzenja Linda), nepotrebna je bilo kaba
prostor vimdllltJ ctdrc,:t. L; :11"-J ~emi. ?.laJJ•>.J dis!ribuirana ddjcna menwrlja !Di-,- sofrvc~rska iii hardverska pm!rska.
trihutt:d Sh:u·,_·cl :'llcm<•ry. DSI\l) (Li :l!ld Huda~. 19~91, Sla:,:l strc;niL':lj.C smestc:Ja Ll
582 Poglavlje 8: Arhitekture paralclnih racunara 8.3 Sistemi s vise procesora koji dele memoriju 583

'"
,:""·
(podataka). Ovi racunari su projektovani za rad s mullimedijom i u buducnosti mogu
Drugi primer jczicki specificne deljene rnemorije koju implemantira izvrsno ukru-
zenje jeste Orca- model deljenih objekata s podacima. U modelu Orca procesi ne postati vazni (Kapasi et al., 2003).
dele torke, vee opste objekte nad kojima mogu da izvrsc specificnc mctodc. Kada me- MISD racunari su pomalo cudna kategorija, gde vise instrukcija radi sa istim sku-
toda promcni interno stanje objekta, izvrsno okruzenje brine o tome da sc sve kopije pom podataka. Nije jasno cia li takvi racunari uopste postoje, mada neki smatraju da
objekta na svim racunarima istovremeno az.uriraju. Opel, posto su objekti striktno tu spadaju racunari koji podatke obraduju paralelno.
softverski koncept, implementaciju muze da obavi samo izvrsno okruzenjc. bez po- Na kraju. postoje i MIMD racunari, gde vise nezavisnih procesora medusobno sa-
moCi opcrativnog sistema iii hardvera. 0 modelima Linda i Orca ponovo cemo govo- raduju kao delovi veceg sistema. VeCina paralclnih proccsora spada ll OVLI kategoriju.
riti u drugom delu poglavlja. l\lultiprucesori i multiracunari su MIMD racunari.
flynnova taksonomija se ovde zavrsava, ali mi smo je produzili na slici 8-21. Ka-
Taksonomija paralelnih racunara tcgorija SIMD podeljenaje u dve podgrupe. Prva obuhvata numcricke superracunare
j drugc racunare za rad s vektor)ma, koji obavljaju istu operaciju sa svakimnjihovim
Vratimo se sada nasoj glavnoj temi, arhitekturi paralelnih racunara. Tokom godina.
elementom. U drugu spadaju paralelni racunari. kao sto je ILLIAC IV, gde glavna
predlozcne su i napravljene brojne vrste paralelnih racunara. pa jc prirodno da se za-
upravljacka jcdinica izdaje instrukcije brojnim nezavisnim ALU jedinicama.
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).

Tokovi
instrukcija
1
r----
·----
Tokovi
podataka
~--~--

11
~--
Ime

SISD
Primeri

i Klasicna Von Neumannova masina


~---------

1 Visestruki SIMD Vektorski superracunar, matricni procesor


r-------- - - - ~-----

Visestruki 1 MISD Nema?


--· - - - - - - - - - - - - - - - - · -
I Visestruki Visestruki
1M~~~--- Multiprocesor, multiracunar
---~-----~- ----·---
Slika 8-20. Flynnova laksnnnlllija paralelnih racunara.

~~·
t~
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
DeiJ8rlJ8 mernonje ProsledrvanJe poruka
Von Neumannov racunar. On ima jedan tok instrukcija. jedan tok podataka i obavlja
jcdan zadatak u jcdnom trcnutku. SltvlD racunari imaju jcdnu upravljacku jcdinicu Slika 8-21. Tabonomija paralclnih ral'lmara.
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. Prema nasoj takslmomiji, kategorija Ml1v!D podeljcnaje na multiprocesore (siste-
Scrij:,ki pwi;,\ctkni Sl:VlD racunari we su redi, ali konvencionalni racunari pnn.c- mc s deljenommcmorijom) i multiracunare (sistcme koji razmenjuju poruke). Posto-
kad imaju mlredcnc Slrv!D instrukcije za obradu ~wdio-vizudnog matcrijala. Penti- je tri vrstc multiproccsora koJC sc medusobno razlikuju po nacinu implcmentiranja
unmv skup SSE instrukcija su Sll\-ID instrukcije. Hez ob;ira na hl, postuji llLlVll dcljene memorije. One sc sc zovu UlVIA (Uniform Memory Access- ravnomcran pri-
podruCJC primenc u kome nekc idcjc iz SL'vlD 'iVCta mugu biti kori:,nc:: proccsori tokova stup memorijil. NUMA (NonUniform Memory Access- neravnomcran pristup me-
moriji) i COMA (Cache Only Memory Access - samo prist up kcsu). Ovakva
;I kategorizacijaje napravljena zato ;ro je u velikim multiprocesorima memorija obicno
Karl I-inL· {CJru1u:--,! innilcus. 1707--177Xl, ~\'ed~h.i biolo~L smi . . . lill j'-· :-.i."\tc/Il kn_1i se JJ.n;h kori"-li /a kbsiJi-
;! kPV~HlJC ~\ih h!lj.:kJ. i 7ivntinJ~l u car':>t\a, h.ola, k!._bt_', redove. p~mnhcc, fll(JO\C 1 \.T',te. podeljcna na viSe rnodula. UMA racunari sc odlikuju time sto svaki procesor ima isto

:.j

11
li'~

·~
r~t
~~
~~:....
584 Poglavlje 8: Arhitekture paralelnih racunara 8.3 Sistemi s viSe procesora koji dele memoriju 585

vreme pristupa bilo kom memorijskom modulu. Drugim recima, brzina citanja me- redoslcclom clrugacijim ocl redosleda slanja. Ovim problemima clodajte po~tojanjc
morijskih reci uvek je ista. Ako sc ovo ne moze tehnicki postic'i. najbr7.c reference se vise kopija nekih memurijskih blokova (npr. u kesu) i reLUltat ce hiti totalni haos uko-
usporavaju do brzine najsporijih. tako da programer mcdu njima ne uocava razliku. liko se ne preduztnu stroge mere predostroznosti. U ovom odeljku detaljno cemo
To ovde znaci ,ravnomerno". Ravnomernost omogucava da se predvide perforrnanse, objasniti sta je dcljena memorija i kako ona u ovim okolnostima moze da reaguje Ill
sto jc vazan preduslov za pisanje efikasnog koda. raLuman naCin.
Nasuprot tome. NUMA multiprocesor nema ovo svojstvo. Cesto se memorijskim Po jcdnom tumacenju semantike memorije. onajc ugovor izmedu softvera i hard-
moclulima smestenim blize procesorima pristupa mnogo br/.e nego ostalim moclulima. vera memorije (Adv'e i Hill. I ')l)0). Ako sc snftver obave7.e cia ce postovati odreclem
Zbog toga jc sa aspekta pcrformansi kod njih vazno gclc sc u memoriji smdtaju k6d i pravila, memorij<t c'c~ se -.ll.lziii da isporucuje odrcclcnc rczultate. Dalja ra;.matranja se
;: podaci. COMA racunari su takmle neravnomerni u ovom ~mislu. ali na drugaciji nacin. koncentri~u oko p<.nnenutih pravila ponasanja. Pravila se izrazavaju kroz modele
"'-!
Svaki od ovih tipova. kao i njihove potkategorije, kasnije c'emo detaljnije analizirati. doslednosti i vel ii--i brPJ Lak vih mode !a precllo/.enje i realizovan.
Druga glavna kategorija MIMD racunara oduhvata multiracunare koji. za razliku Da histe stekli uti.>Cl!.: P tmne sta je problem, zamislite da procesor 0 upisuje vrcd-
od multiprocesora, ne dele primarnu memoriju na nivou arhitcl--ture. Drugim rccima. nost I uncku mcmnriJsku rec. ada malo kasnije procesor l u istumcmorusku rec upi·
operativni sistem jednog proeesora multiracunara ne moze da pristupi mcmoriji pri- SLIJC vredno-.t 2. Sada prncesor 2 cita tu rec i dohija vrednost I. Treba li ll tom slucaju
druzenoj clrugom rrocesoru tako sto ce samo i1.vrsiti instrukciju LOAD. On mut·a da vlasnik da odncse svoj racunar na servis'> Odgovor zavisi ud onoga s cim se memorija
po;a]je poruku i da saceka oclgovor. Sposobnost operativnog sistema da procita uda- .. slozila".
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 Striktna doslcdnost
i na multiracunaru mogu imati sposobnost da pristupaju udai.Jenoj memoriji pomul'tt
Na.Jjedtlllstavni.Ji je model stl'iktnc doslednosti (engl. strict consistency). Kod
instrukcija LOAD i STORE, ali tu iluziju llllrl:ava operativ ni sisLcm. a ne hardver. Cha
nJega se pri svakom citanJU it1kaeije x uvek dobija poslcdnja vrcdnost upisana u tu lo-
razlika mu2.da prnlstavlja linesu. ali je vcoma val.n<L Buduci da multiracunari nemaju
kaciju. l'rugr~ltlleri mnogo vole ovaj model. ali sc on u praksi ne moze implementirati
dtrckLan pristup udaljcnuj mcmori.Ji. oni se punckad ;ovtt NOI{\1.\ (NO Rcnll>te 1\lc-
na drugi nacin nsim krozjcdinstven memorijski modul koji na pozive odgovara strikt-
mmy Access -· bc,r pristupa udaljenoj metnuriji) racunara.
no na tbnovu njihovog redosleda, bcz kc:Sa iii bilo kakvc druge rcplikaeije podatak:1.
Multiracunari se mogu podeliti u dve katcgorijc·. Prva -;adrzi l\IPP (1\Ja-;sively P~t­
Tal-- va implc:mentacija bi prcdstavljalajedno ogromno usko grlo i zbog toga. nazalost.
ralkl Processors- cvrsto spregnuti paraldni proceso1·i) racunarc·. skupc· supcrracu-
nije o7bilpr1 kandidat za ra/.lnatranje.
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.
Doslednost rcdosleda
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 Prvi tprt'tna doskdnusti) losiji model jeste model doslednosti rcdosleda (engl.
tL'hnologiJOill. l! lugiC·kom smi.slu tunc prcd-;[<tV lja vclil--u r~vJiku, ali sc "L:rc'i1111i ,;u- .lcglll<'llliu/ ,·onsistenn·i (Lamport. I Y79). Ukoliko postoji vise zahteva za citanje i
perracunari J.;uji ko~taJumilion,: Jolara koristc drugacije od gnq'~ I'C r.tCll!1ara l.(>.ic je upisi\ anjc. h:mlver (na nedctem1tnisticki nacin) ispremesta sve zahteve. ali tako da
korisnik umrcl:iu 1.a tklic ccne \!PP nC·unar<L lhakv c 1111\:;:,· racunat·a .,i; d•)t,·,acc: r~t­ sv i prt:Cc's• 1ri vide isti redo~ led.
ditw,ti" tlll\C r:uli~·ita imena. kt•> (t\) :-,u '\0\\ t "id\',ork ui'\·Vmk::t;uinn.;- utnr<:/ene Da hi vc~m hilo ja.;nije ~ta to znaci. razmotrite jcclan primer. Pretpostavimo da pro·
radne 'itaniee ). CO\V (Cluster,,( \\-,:rkst:ttions -- klastct· 1·adnih stanica) iii j'tlll•:bJ cc.;ur I upi>UJ.? vredno,;t I()() u rei: x. a l ns kasnije procesor 2 upi~ujc vrednost 200 u

sanm klaste1·. r•:c x. S,1da rr-ctrostavinm da I ns nakon drugog zahteva za upisivanje (koji ne mor~
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
8.3.2 Semantika memorijc
i Lt'~iri cit:mjaJ pribzana Sll na slikama 8-22(b)-(d). Na sliei X-22(b). proccsor 3 do
lai--o svi muiiipmcL·smi s'.ujim proc<.:,llrima ube?hcduju.Jnliil'itv·c:n proslllt' ckl_ic- V'redn•''!i 1200.2001. i proccsor4 dobip vrcdnosti (:200. 20()). Na slici X-22(c) on:
nih aclrcsa. cesto pmtoji vi(e mcmnnj,l--iil mPdub. od !,.:ujtll ,vaki ,.,adr/.i dco li~:icl--c: dnbip;u \Tc:dnosti ( 100. 200) i t200. 200). Na slici 8-22(di dohijaju se vrednosti ( 100.
n1cinorijt:. Pr~Jce:~ort i nll'l1Hlr!_j~ L·---::-;1;·, su Jll.,\t'/:~u;i ~~(~lctH_Illl intcrnd!11 ntr.:ioi1~. i-..~hl ili!JJ i t20il. llJOl. Svt:: uv~ kombinacijc suu ovommodelulcgalnc. kao i nekc druge
S(O SlllO objasni]i U llllcljkll S.] .~. \'i(c• pr<lC:.:,ura 111\!lc ptlkU~ali da pml'ita !11Ct!lt'ljj- k•'.l" nisu p:·ti-.azane.
Skll rec ll trcnutku kacla visL: ;crCC-?Stlt';, lll istu re: ;x;Lu~~!V<l d:1 ll]li~,· U tl1ell1<'-
riju. a neke mlpmuka _,a ?a!JtcviJt~a ll1llflU da 'L mim,1idu na ]'Lilli 1 cLt :1L:du i,puruc'cnc•

J
.
l
586 Poglavlje 8: Arhitekture paralelnih racunara 8.3 Sistemi s viSe procesora koji dele mcmoriju 587

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

~:
~h
~~
i:y.,..,

588 Puglavlje 8: Arhitekture paralclnih racunara 8.3 Sistcrni s vise prncesora koji dele rncmoriju 589

UpisivanJ8 procesor na nju stavlja aclresu trazene reci. postavlja nekolik.o upravljackih signala i
ceka da memurija tu rec stavi na magistralu.

'"'
//I
)' I
Procesor A 1A 18 1C 10 1E 1F
Privatna memorija ~
Procesor 8 2A 28 2C I 20 Oeljena memorija
t
Procesor C 3A 38 3C

Tacka sinhron1zaci)e '" (a) (b) (c)


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

rr;::~· ·
590 Poglavlje 8: Arhitekture paralclnih racunara 8.3 Sistemi s viSe procesora koji dele memoriju 591
~~;
:~;'l

!!!;' Ovaj problem, koji je u literaturi poznat kao kohercntnost kesa iii doslcdnost Upisivanje je zanimljivijc. Ako procesor I nesto upise, kd I cc na magistralu pu-
~!. kcsa (engl. cuche coherence, cache consistency), izuzetno je ozbiljan. Ukoliko nije stiti zahtev za upisivanje i kadaje pogoden i kadaje prornasen. Keii 2 pri svakom upi-
i' resen, kesiranje se ne moze koristiti. a multiprocesori s jedinstvenom magistralom sivanju provcrava da li postoje reci koje se menjaju. Ako ih nema, s njegovog gledista
~-
f'
tl
ograniceni su samo na dva iii tri procesora. Zbog takve vaznosti, tokom godina su to je promasaj udaljenog zahteva za upisivanje ion ne preduzima nista. (Da bi sve bilo
predlozena brojna resenja ovog problema (npr. Goodman, 1983; Papamarcos i Patel, jasnije, obratite paznju nato dana slici 8-25 udaljeni zahtev znaci da rei' ne postoji u
f
H 19X-i 1. lako se svi algoritmi, poznati kao protokoli za oddavanje koherentnosti kcsu za prisluskivanje; da li ona postoji u pozivaocevom kesu, nije vazno. Prema to-
r:
kesa (engl. cache coherence J!rotocols) razlikuju u detaljima, svima im je zajcdnicko me, isti zahtev moze da bude lokalni pogodak i istovremeno promasaj u kesu za pri-
fl da sprecavaju naizgled istovrcmcno pojavljivanjc razlicitih verzija istog recta u dva iii sluskivanje, i obrnuto.)
vise kdeva. Pretpostavimo sada da kes I upisuje rei' koja postoji u kesu 2 (pogodak udaljenog
LJ svim rc~cnjima postoji kontroler kesa koji prisluskujc magistralu i prati sve zah- zahteva za upisivanjc). i\ko kcs 2 ne uradi nista, once imati zastarele podatke, pa on
tevc dmgih procesora i keseva. preduzimajuci u odredenim slucajevima i interventnc zato odrednicu kesa koja sadrzi izmenjenu rec oznacava kao nevazecu. To je isto kao
mere. Ovakav uret!aj se, shodno svojoj ulozi, naziva ke8 za prisluskivanje (engl. da je odrcdnicu uklonio iz kcsa. Posto svi kesevi osluskuju sve zahteve za pristupanjc
snooping cuche, snoopy cache). Skup pravila koja namecu kesevi, procesori i memo- magistrali. kad god se upisc rce, rezultat se svodi na azuriranjc inicijalnog kcsa. na
rija kako bi se sprecio nastanak razlicitih verzija podataka u razlicitim kesevima cini azuriranje rcci u memoriji i njeno izbacivanje iz svih drugih keseva. Na ovaj nacin sc
prutokol za odrzavanje koherentnosti kesa. Jedinicni podaci koje kes razmenjuje i spreeava postojanjc razlicitih verzija istog reda kesa.
smdta nazivaju se rcdovi kcsa i njihova velicinaje po pravilu 32 iii 64 bajta. Naravno, kc5 proccsora 2 ima pravo da procita istu rei' odmah u slcdcccm ciklusu. U
Najjednostavniji protokol za odrzavanje kohcrentnosti kcsa jeste protokol za di- takvoj situaciji kes 2 ce je ucitati iz rnemorije, kojaje sada azurna. Tada ce i kes I ike\
rcktno upisivanje (engl. write through). On sc najlakse mozc objasniti kroz razma- 2 i memorija imati njene identicne kopije. Ako hilo koji procesor sada obavi upisivanje,
tranje cctiri slucaja prikazana na slici X-25. Kada proeesor pokusa da ucita rec koja se kes drugog procesora bice ociscen na odgovarajuci nacin. a memorija ce se azurirati.
nc nalazi u kesu (tj. kad promasi 1--d), kontroler njcgovog kesa ucitava u kd red koji Moguce su hrojne verzijc ovog osnovnog protokola. Na primer, kada dot!e do po-
tu rei' sadrzi. Tu rec isporucujc memmija, za koju se u ovom protokolu smatra da je gotka pri upisivanju, kes za prisluskivanje cc uznaciti neva7.eeom svuju odrcdnicu
uvek a?.urna. Naknadna citanja reci sc obavljaju iz kesa (tj. postize se pogodak u kesu). 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
rAk~ij~
--------~

- - -.. -.
Lokalni zahtev Udaljeni zahtev njegovo ponovno ucitavanje iz memorije. lJ svim protokolima za odrzavanje kohe·
-
~Proma >ri citanju Preuzmi podatke iz memorije 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-
~~~ ri citanju Upotrebi podatke iz lokalnog kesa
ruke za aLuriranje nose korisne podatke i zato su veee od poruka kojima se ke\
1 Proma lri upisivanju Azuriraj podatke u memoriji
proglasava ncvazecim. ali zato mogu da u buducnosti prorede prumasajc kda.
fPo'godctt ri upisivanju AZuriraj kes i memoriju Ukini vaznost odrednice kesa
Druga verzija je da kcs za prisluskivanje ucitava red kada dode dtl proma~ivanj:t
Slika S-25. Dircktno upisivanje- protokol 1.a ndrzavanJe kollerentnosti kesa. Kada u polju nema pri upisivanju. Sama ispravnost algoritma time se ne menja. menjaJU se samo p.:r·
niSla. to 1.naCi Ja st_; niSta nc prcJuzima.
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
Kml pmmct.~aja kesa pri upisivanju, izmenjcna rei' se upisuje u glavnu memoriju.
kcsa prilikom promasaja pri upisivallJll. sto je poznato kao pravilo dodeljivanja pri
Red koji sadrzi rcfercnciranu rei' ne ucitava se u kd. Kada se kd pri upisi vanju po-
upisivanju (engl. write-ullocute policr). Akn je verovatnoca mala. bolje je da sc kd
godi, on se alurira i a/.uriran red se dircktno upisujc u glavnu memoriju. Sustina ovog
ne azurira prili kom promasaja pri upisi I anju. Ukoliko data rec budt: ubrw ponovo 6
protokolajc to da -;e pri svakoj operaeiji upisivanja innenjena ree direktno salje ll me-
{({/1{/, una cc prilikom promasaja pri citanju ionako biti ponovu ucitana; malo sc sta
morijll, tako da ona sve vreme ostaje azurna.
dobija time da se on a ucita prilikom promasaja pri upisi vanju.
Rannotrimo jos jednom sve ovc opcracije, ali ovoga puta sa aspekta kesa za prislu-
Slicno mnogim drugim jednustavnim res~njima, i ovo je ncetikasno. Za ''ak.u
skivanjc (krajnJa desna kolona na slici R-25). Neka kd koji obavlja operaciju bude kd
operaciju upisivanja. zahtev memoriji se salje pr.::ko magi,tr~lle. tako dace i sa ume·
I. a kcs za prisluskivanje neka bude kes 2. Kada kes I bulle promasen pri citanju, on
rcnim hrojem proccsora magistrala pustati usko grlu. Da bi sc '>aobracaj na magistral.
zahteva pristup magistrali da bi nedo,tajuci red preuzeo iz memmije. Kes 2 to vidi, ali
odriao u prihvatljivim granieama, smisljcni su drugi protokoli ...:a lldrzavanje kohe
nc rcaguje. Kada kes I bude pogoden pri citanju, na taj zahtcv sc odgovara lokalno i kes
rentnosti kda. Za sve njihje karakteristicno to da sc upisivanJC ne ubavlja dircktno t.
I ne zahteva pristup magis(rali, tako da kd 2 i ne zna za pogotke kesa I pri citanju.
mcmoriji. Umcsto toga, kada se izmeni red kesa. postavljanjcm JCdnog hita o...:nacav~.
"'-~___,.,.

592 Poglavljc 8: Arhitekture paralclnih racunara 8.3 Sistemi s vise procesora knji dele memnriju 593

se daje on ic,pravan. a daje njegov dvojnik u memoriji neispravan. Takav .,prljav" red

~
Procesor 1 Procesor 2
se na kraju mora prchaciti u memoriju, ali mozda tek posto budc jos nekoliko puta iz-
(a) '"""''' MemorrJa Procesor 1 cita blok A
mcnjcn. Ova vrsta protokola po/.nata jc kao protokol s naknadnim upisivanjem
(engl. writf'-hack pmwcol).
OJ CJ CJ
ilskljucivo I I ----
Kes fvlagistrala
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. Procesor 1 Procesor 2 Procesor 3
MemoriJa Procesor 2 cita blok A
E, S i I) koja koristi (Pap;un.;rc·,Js i PateL 19~4). On se zasniva na ranijem protokolu (b)
za jcdnokratno azuriranje pri upisivanju (engl. write-once protocol) (Goodman, CJ OJ CJ
1983). Pentium 4 i mnugi drugi proccsori koristc protokol MESL za osluskivanje ma- .IDeljeno ·1 Deljeno r I
gistrale. Svaka odrcdnic.:a kcsa muze se nalaziti u jednom od sledcca cetiri stanja: Magistrala

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. Procesor 1
'"'"""' """"" e MemonJa Procesor 2 upisuje blok A
3. Isldjucivo (Exclusive)- Samo ovaj kd sadr?.i red; memorijaje azurna. (c)

4. lnnenjeno (!\lodilied)- Odrcdnica je ispravna; memorija jc neispravna; ne CJ OJ CJ


pw;tuje kopije. ]_ lzmenjeno
---
_j
- ------- --
Magistrala
Kada ~e 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 Procesor 1 Procesor 2 Procesor 3
u lurll kc;u; na ,lici K-2hta) prikazano je to stanje za slucaj kada proccsor l cila red A. (d) Memorija Procesor 3 Cita blok A
Pri sll'lkcimcitanjima proce.';or koric,ti red iz 1-.csa inc salje zahtev na magistralu. Dar- CJ OJ OJ
gi pmcTsor lakL'Lk mo/.c da preuzmc i kesira isri red, ali prvobitni vlasnik koji oslu-
1 TDeljeno I Deljeno I
skujc (pruce.,Pr I 1 vidi da vise nije jedini vlasnik i objavljuje na magic,trali da ion ima Magistrala
koprjutog red~r. Ohc korije se tada oznacavaju da su u stanju S (deljcno), kao stoje pri-
h:llann na .'>lici ;..;_::~6, h). Drugim rccima . stanje S znaci da se red moze citati izjednog
il i iz vise ke<n·a. ada je memurija azurna. Kada procesor naknadno bucie Citao taj kt:'Si- Procesor 1 Procesor 2 Procesor 3
(e) Memorija Procesor 2 upisuje blok A
rani red 11 s<anju S. nccc i.daziti na magistralu, a nece se menjati ni stanje kesa.
Ra;~m1tritc <rda su sc do gada kad proeesor 2 upise rcc u red kesa koji je u stanju CJ OJ CJ
S. On tada na mac:istralu po.'>tavija signal .,nevazece·' kojim ostalim proccsorima I llzmenjeno I I
.,
i' •
sat ·psta v ~~ da ndb.tce sopstvene kl1pije tog reda. Kc:Sirana kopija sada prdazi u stanje Magistrala
i'vl (i;.r:1enjcnDI. Lro ~toje 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. Procesor 1 Procesor 2 Procesor 3
(f) Memorija Procesor 1 upisuje blok A
R~,/lllcltrini\1 ,\ta Sc' dogacla kada procesor 3 ucita red. Proccsor :2, koji je sada vlasnik
reda. zna Lla nj.~~nv:i knpija u mernoriji nije ispravna, pa signalizira na magistrali mo- OJ CJ CJ !

lec'i pr,,c·c''''r C:i'L .l da saceka dok rrazeni red ne upise u rncmoriju. Kada se to ohavi, jlzmenjeno I I I
pr"C.:c':,.lr _, pr<.''J:.i:1]ll kopiju ired sell oha kc:Sa oznacava kao dcljeni. kao sto je prika- Magistrala
/;ii]() na ,li,:i S-26rciJ. Poslc toga. procesur 2 ponovo upisuje u red. zh<Jg cega njegova
Slika S-26. Protokol MESI za odrzavan1e koherentnusti J.cesa.
kc•pii~lll i..c·~~; pr:>C·,·:-nra _l pustaje nevazcea, kao SlO je prikazano llll s)ici 8-26(e).
594 Poglavlje 8: Arhitekture paralelnih rai'unara 8.3 Sistcmi s vise procesora koji dele memoriju 595
----------

Na kraju procesor I upisujc ree u taj red. Procesor 2 uocava taj pokusaj upisivanja Memorije
i signalizira na magistrali moleCi procesor 1 da saccka dok on ne azurira memoriju.

r~o~~;~'"''
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 ----------
~
I
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.

~ (b)
Multiprocesori UMA sa unakrsnim prekidacima g[Q22]
~" Ell Ell Ell Ell Ell Ell Ell Tacka ukrstanja
.Jedinstvcna magistrala, cak i uza svc moguce optimizacije, ogranicava velicinumul- £ [iOO] • • • •

~
·e tvorena
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- J
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 Zatvorena


(c)
ukrstanja (engl. crosspoint). Tacka ukrstanja je mali prckidac koji se mo7.e otvoriti iii Otvorena
tacka
tack a
zatvoriti clcktricnim putem, sto zavisi od toga da li ulazna i izlazna linija treba da hudu ukrstanja
ukrstanja
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 (a)
(II 0, 0 I 0). Moguce su i hrojne druge komhinacije. U stvari, broj kombinacija jednak
Slika 8-27. (a) tJnakr,ni prekiJai' ~X X. (b) Otvorena tai'ka ukrstanja. (c) Zatvorcna tacka
je broju razlicitih nacina na koje se osam topova mogu bezbedno razmestiti po sahuv- ukrstanja.
skoj tabli (da nijcdan top ne pujcde drugog: topa).
Kod unakrsnog prekidaca najlepse jc to sto on predstavlja nehlokirajucu mrezu: Poljc Afodu/ukazujc na memorijski modul koji se koristi. Adresa je adresa unutar
to zna(i da 'e nijcd!lOill proCCSOI'll llC Pdbija prist up zato SIO jc neka tacka UKrSlanja iii moduLt. Opkod ukazuje na opcraciju (npr. READ iii WRITE). Na kraju, opciono polje
linija vee ;~auzeta (pod prcpostavkom da jc sam memorijski moclul raspolo/.iv). Sta- Vrednost mo!c da sadrzi Ppcrand t npr. 32-bitnu rec za upisivanje operacijom WRITE).
visc. nijc potrebno nikakvo planiranjc unapred. C'ak i kada je vee w.postavljeno se- Prekidac i,pituje polje !v/odul i punmcunjcga utvrLlujc da li poruku treba slati na izlaz
dam proizvoljnih veza. uvek je rnugucc da sc preostali proccsor povcic s prcostalom _y iii na iziaz Y
mcmnrijom. Kasnije ccmo vidcti i druge seme povezivanja koje ncmaju ova svojstva.

~=r---~~
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 I tvlodul I Adresa I Opkod I vi~~~-;~;
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 ukr~tanja.
(a) (b)
Tako vcliki unakrsni prekidac ne mo7.c se napraviti. Trcba nam ndto ,as vim drugacije.
Slika S-2S. (a! Prckidac 2 X:?.. (b) Fornwr porule.
Multiprocesori UMA s viSestepenim komutacionim mrczama
Prd.idaci tipa 2 x 2 rnq.:u sc ra,porcditi na brojne naCine u tzv. visestepene komnta-
To ,.nesto sasvim drugacije" moze se zasnivati na prekidacu 2 x 2, prikazanom na
cione mrdc (engl. lllllilisruge sH·it.-!Iing nerworks) . .!edna od moguL'nosti jc osnovna
slici S-2S(a). Ovaj prckidac ima dva ulaza i dva izlaza. Puruke kt1je stii.u na bilo kuji
omega mrda, ckonomske klasc. prikazana na slici 8-2lJ. U njoj se osam procesora
od dva ulaza rnogu sc prw-lediti na bilo koji od dva izlaza. Za nase sadasnjc potrcb~
povczuje sa osam rnem01ija pomocu 12 prek.idaca. Opstije, za povezivanje 11 procesora
mozcmo smatrati da se porukc sastoje od najvisc cetiri deJa. kao qo jc prikazano na
slici S-2S(bJ. i 11 mcmorija treha nam logoll nivoa. sa n/2 prckidaca po nivou (stepenu) - ukupno
(n/2)]og211 prckidaca, S[O j~ l~l1Ugo boJje ocln 2 lacaka UKrStanja, narocito za veliko II.
596 Pog;lavlje 8: Arhitekture paralelnih racunara 8.3 Sistemi s vise procesora koji dele nwmoriju 597

3 stepena (nivoa) Apsolutno je pozcljno da <;e menwrijske reference ravnomerno ra'podcle pu modu~
_ _ _A~

Procesori Memorije 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 me~
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 nehlo~i~
rajucu kmnutacionu mrt:Zu u kojoj. da bi se saobracaj ravnomernije ra:.porcdio. 1z~
medu svakog procesora i svakog mcmorijskog modula postoji vise putanja.

8.3.4 NUMA multiprocesori


Slika S-29. Komutaciona mncga rnrcZa. Pretpostav ljamo da jc sad a jasno kako UMA multiprocesori s jcdinsl\ en om map~
:.tralum u osnovi ne mogu imati vise ocl nekuliko dcsetina pruccsora, ada je za mul-
Ozicenje omega mre/.e cesto se ;:ove savrsena mesavina (engl.J>I'Ijf>ct shuffle L ;:a to tiprocesore sa unakrsnim prekidacirna i komutacionim mrt'Lama potrebno clmta
sto mcsanje signala ll svakom stepenu odgovara prcsceanju i detaljnom mesanju spila (skupog) hardvera l:ip ccna prevazila.ci dobitak. Da bi multiproccsor dubio vise od
karata. Da bismo razumeli kako radi omega mreza, pretpostavimo da proccsor 0 ll .?.eli 100 proceo;ora. nc\tn treba znvovati. Obicno :.e 7.rtvujc princip cla svi mcmorijski mD~
da procita rec iz. mernorijskug rnodula II 0. Procesor .~alje prouku READ prckidacu I D duli imajujeclnako vremc pri;;tupa. sto direktno vmli do koriscenja tzv. NUMA (Non-
koji u polju 1Hmlul sadrzi broj 110. Prekidac uzima prvi (tj. krajnji levi) bit broja ItO i Uniform !\lcmmy ,-\Lcess- neravnonJ<:ran pristup merunriji) multiprocesora. Slicno
k01isti ga z.a rutiranje. Ako je bit 0, porub se usmerava na gomji izla1., a ako jc I. na njihovim L'!\!A srodnicima. oni ohcz.bc,duju.Jcdin..;t\Til adresni proslor z.a sve pmce-
dPnji. Posto jc ovaj bit I. p\1ruka ce kroz donji i.da1: biti upuc'cna prekidacu 20. sore. ali za r~tLiiku od l'!\IA multiprucc'\Ura. Lod nJih se lokalnim memori.Jskim ll1ll-
Svi prekidaci drugog stepena. ukljucujuci i 2D, za rutiranje kuriste drugi bit. On je. duiima pristupa br/c· llc'gl> udaljenilll. ~a taj nacin cc :.vi ljj\[,\ prugrami bcz ikakvih
takodc. 1. pa sc poruka prckn donjcg izlaza upucujc ka prckidacu JD. Sada se ispitujc izmena radit1 na NU!\IA racun,trima. alice im pri i,tPm radn<"'lll taktu performan'e
treci bit i otkriva sc da je on 0. Shodno tome, poruka odlazi na gurnji iz.laz i stizc u biti lusi_je nc~'l na Ui\lA raCun:lrima.
memuriju II 0. kao stu i treba da bude. Putanja ove poruke na slici X-29utnacenaje slu- NU,\L-'1. mliltiprocc:,Pri imaju tri kljuc;-tc usnbinc po knjima ;;c razlikuju od svih
vom a. drugih multiproc.:snra:
Kako sc poruka krecc kroz komutacionu mrezu, bilOVi s le\ og kra_ja brnja kPji
I. Ptbtuii jedimt\en adrt'-;ni pmstor vidljiv S\ l!ll prul't'><Jr:ma.
o.cnacava memorijski modul postepeno postaju suvisni. Oni se mogu dohro uposliti
2. CLLlli~.:ll<'i ILCilii'riji ;;<: pri;;tupa pulthlCLI ilbtrukcija L0.4D i STORE.
da se pomocu njih na lieu mesta zabelezc ulazi u odgovarajuce prekidact: bko bi od~
go\'\Jr na puruku z.nao kuda da ide pri povratku. Za putanju u ula1.nc linijc su 0 (gurnji ::1. L~daljt:l)llj :nc!nuriji :)(' pr:\tL;pa :-.,pi)ri;c nr~·~u luka1ucj.
ulaz u I 0). 1 (donji ulaz u 20) i I (donji ulaz u 30). Shouno tome. odgovor sc usme- Kada ncmc' p:i,;tupnja ud,djenuJ nh:mmiji nije >krivenu jer nema kc:iiranja (engl.
rava brojt:m 0 II koji se ovog puta cita zdesna ukvo. N,, C '· sJ:.tcr;l '" m' e NC~Nl':\L\. Kacb pchtuje kuh-:rcntni kescvi (engl. Co~
lstovremcno dok se we nvo clcsava. proecsor 00 I .?.eli da upise rec u mernorij:;ki izcrclli ( ·c~chn ). si.,tem se zove CC-NUt\1.-\ ( har ~" ta~u LO\ Li hMdverasi). Softverasi
modul 00 l. Tu se odvija ana logan proces: poruka sc usmcrava kroz gornji. gornji i ga cest<l /l!Vll hanherski DSM _:cr jc to u usnu·,i i:.to stn i :.nftvcrski distribuirana
donji izhu (putanja b). Kada poruka 'itigne. unjcnom polju .Morlul nalazi _,e vreunPsl ddjcna mL·munja (t'n~! Disir:iJli!<'<i Shurnl i\!t'I!Wr\ 1. ali i;~1pkmentirana hardverski
00 l. broj koji predstavlja pn:denu putanju. Posto sc u ova dva zahteva ne koristc isti u;, nl;_llu ve~iL1nu strani(a.
prekidaci. vodovi i memorijski moduli. oni se mogu odvijati paralelrw. 1L'dan <Jc~ pn ih ;-,iC-~ L ;'viA multiprucc:'< ,n ( k"ji jl\; ni_je dul>iu ime) bio je Cm' sa
Rcv.motrite sada ~ta bi se desilo kad bi procesor 000 istovremeno po7.elco da pristupi uni1 c:r~::itcta Clrnc~ic-.'vkllun: upru~,'c:1~'' je pri!,atar; na :,]icJ ')~~1() (Swan et al., 197/).
memorijskom modulu CJOU. Njcguv zahtev bi dusao u sukob sa zahtcvom proccsora 00 I On :.c :.a:,tuj:t<' od skupa proce..;ora LSI-! I. ,,d Jc' ~val-_i imau n6to memorije
u pogledu prekidc!Ca 3A. Jedan od n.Jih bi morao da saceka. Za razliku <Jd unctkrsnog kojLI.JC adrcoiran prcku j,,blnc nragistr:dc. (LSl-!; jc u stvcJri DEC-uv PDP~ II. mi~

~~
prekidaca, omega mrcza je hlokirajuca mreza. Ona ne moze isu,vrcmenu da prencse niracunar popularJn ,cdam,ksctib goJrna. itll 1J!cmc:rnrra:r najcdnum cipu). Osim to-
svaki :.kup zahteva. tvlnze biti sukobljavanja zbog korisccnja voda ili prekidal'a. kau i gc~. siste.r;i L.Sl-11 su ll1eLIUo~>bno povcmni si,tcn;..;k:Hn magistuiLllll. Kada hi zahtcv
izmedu zahteva koji idu f..u memuriji i odguvora koji dnlaze od mcmmije.
II
Jj
IL__
598 Poglavlje 8: Arhitekture paralclnih racunara 8.3 Sistemi s vise procesora koji dele memoriju 599

upuccn mcmoriji stigao u (posebno podcsenu) MMU jedinicu, proveravano je da lise nerdivo kada broj procesora prcde odrcdenu granicu. Prema tome, da bi se naprav1o
trazena rec nalazi u lokalnoj memoriji. Ako je nalaz bio pozitivan, zahtev je upuCivan stvarno veliki multiprocesor, potreban je iz osnova drugaciji pristup.
lokalnom magistralom da bi se dobila rec. Ukoliko je utvrdeno da se rcc ne nalazi u Trenutno najpopularniji pristup ppravljenju velikih CC-NUMA multiprocesora
lokalnoj memoriji, zahtcv je usmeravan prcko sistcmske magistrale ka sistemu koji ju jeste koncept multiprocesora s katalugom (engl. directory-based multiprocessor).
jc sadrzao, a taj sistem jc odgovarao. Naravno, ovo drugo je trajalo mnogo duze ncgo Osnovna zamisao je da sc oclrzava baza podataka s lokacijama svih redova kesa i nji-
ono prvo. lako se program mogao izvrsavati iz uclaljene mcmorije, to je trajalo 10 hovim statusom. Kada se referencira red kesa, prelrazuje sc baza cla bi se utvrdilo gde
puta cluzc ncgo kada se izvrsavao iz lokalne memorije. 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-
Procesor Memorija Procesor Memorija Procesor Memorija Procesor Memorija 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-
jedin1ca 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
Sistemska magistrala 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
Slika S-30. NUMA multiprocesor s magistralama u Llva nivoa. Cm* jc bill prvi ovako
projeldovan multiprocesur. ukupno iznosi 2 24 bajta mcmorijc. Za trenutak cemo pretpostaviti da se red mote
nalaziti najvise u jed nom kdu.
NC-NUMA multiprocesor garantuje kohercntnost mcmorije JCr ne postoji kcs.
Svaka mcnwrijska rec postoji samo na jednoj lokaciji, pa ncma opasnosti da negdc Cvor 0 Cvor 1 Cvor255
zaostanu zastareli podaci: kopijc nc postoje. Naravno, sada postaje veoma vazno gdc Proc~:sor Memor1)a Procesor Memonja

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. LokC!Ina mag1strala
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- lnterna mreZa

mansc. Ako se pokaze da je neka stranica na pogresnom me>tu. skcner ponistava


(a)
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" (ce~to menjanje stranica), obic- BttOVI 8 18 6
8

2' ·1J 1 J
no je na snazi pravilo koje kaze dajednom postavljena stranica na tom mcstu mora da I Cvor I Blok IRastD]on[el
ostane harem tokom perioda DT Proucavani su hrojni algoritmi, a zakljucak je da ni- (b) 4 0
jcdan od njih nije optimalan u svirn okolnostima (LaRowe i Ellis, 199! ). 3 0
2 1 82
NUMA multiprocesori s kohcrentnim kcsom 0
0 0 i
Multiprocesori napravljeni prema semi sa slike 8-]0 nisu najpogodniji za uvcca- (c)
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 Stika 8-Jl. (a) ~lultipruce,ur' btalt>gum i 2.'\h cvorova. (b) Podcla 32-hitnc mcmurij,kc
kdiranjc, tada kesevi rnoraju biti kohercntni. Koherentnost se moze obCLbediti ako aJrcsc ll:l pulja. (C) Katalog ll cvoru J(r.

~~ kdcvi osluskuju sistemsku magistralu. To se tehnicki moze lako ostvariti. ali postaje
.~1

~ ~; ~~ 1
)'$.._._
600 Poglavljc 8: Arhitekture paralelnih racunara S.J Sistemi s vise procesora knji dele memm·iju 601

Da bismo videli kako radi katalog, pratimo instrukciju LOAD procesora 20 koja rc- dozvoljava samo kopija u jeclnom kdu, kao na slici 8-31. onda vudenje rae una o ci-
ferencira red kesa. Procesor koji izdaje instrukciju prvo je predaje svojoj MMU jedi- stoc'i reda gubi smisao jer se pri svakom novom zahtevu mora poslati poruka pmto-
nici. koja refcrencu prevodi u fizicku adresu (rccimo, Ox24000 I 08). MMU jcdinica jel'oj kopiji da bi sc on a oznaci Ia nevazccom.
deli adresu na tri del a. kao na slici 8-31 (b). U decimalnom brojcanom sistemu, tri del a Vodenje rae una 0 tome da li Sll redo vi kda cisti iii prljavi podrazumeva obavc~ta­
su cvor 36, red 4 i rastojanje 8. MMU jedinica vidi da sc rcfercncirana rec nalazi u vanjc maticnog cvora u slucajevima kada se odrcdeni red menja, cak i kada posroji
cvoru 36, a ne u cvoru 20. pa kroz intenlll mrdu salje poruku maticnom cvoru reda kopija samo u jcclnom kdu. Ako postoji vise kopija, kada se promeni jcdna. ostalc se
(cvoru 36), pitajuci gada li je njegov red 4 kdiran i, ako jeste. gdc se nalazi. moraju proglasiti nevazecim, pa trcba cia postoji protokol koji l'e spreciti c;tanjc utrki-
Kada cvoru 36 stigne zahtev preko interne mrde, on se upucuje hardveru katalo- vanja. Na primer, kada jedan od uccsnika zeli cia izmeni deljeni red kesa. mugac· hi
ga. Hardver pretrazuje indeks svoje tabele sa 2 1X odrednica (po jedne za svaki red traziti iskijuciv pristup tom reclu pre nego sto ga iz.mcni. Takav L.ahtcv hi pr\JUZf()~()­
kda). i uzima odrcdnicu 4. Na slici 8-31 (c) vidimo dared nije kdiran, tako cia hard- vao prcstanak va/enja svih drugih kopija pre izdavanja dm:vole za pristup. Ostale Iil<J-
ver prcuzima red 4 iz lokalne memorije RAM-a, saljc ga cvoru 20 i u katalogu azurira gul'nosti optimizacije CC-NU;\11:\ procesora nac'i cete kod Stcnstroma et al. ( 199~ J.
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 NlJMA multiproccsor Sun Fire E25K korpnracijc Sun
8-31 (c) vidimo da je taj red kdiran u cvoru 82. u ovom trenutku hanlver muzc da Kao primer NUMi\ rmrltiprocesora s dcljenom memorijum. poglcdajmo porodicu
azurira odrednicu 2 kataloga o.~:nacavajuCi da je taj red sada u cvoru 20 i da posalje nrultiprocesora Sun Fire koqJPracije Sun Microsystems. Iako postojc razliciti modeli,
poruku cvoru 82 nala/.uci mu da prosledi red cvoru 20 i da njegov kes oznaci ne- mi c'emo se ograniciti na model E25K sa 72 procesmska cipa UltraSPARC JV. Jedan
vazecim. Obratite paznju nato da se cak i kocl .. multiprocesora s deljenom memori- UltraSP;\RC JV u stv;tri jc par procec;ora UltraSP.'\RC Ill Cu sa ;ajcdnickirn kc;orn i
jom" iza scene razmenjuje dosta poruka. ;,ajedniC·kllm mcmm0()[n. El.'iK jc isti sistcm, s tim ;w ima cipuvc s pujedinacnim
lzracunajmo usput na brzinu koliko rnemorije 7au7imaju katalozi. Svaki cvor ima procesorirna, umesto s njilwvirn parovima. Poswje i clanovi uve pun.-dice s manjim
16MB memorije i 2 1X udreclnica ocl po 9 bitova koje registruju sta se dogada unjoj. brojem pn,ccsura, ali nam jc u ovom trcnutku cilj da objasnimu kako radi multirro-
Prema tome, katalog t.au/.ima oko Y x 2 1X bitova iii u poredenju sa 16 :\I B- oko I .76 cesor koji ih ima najvise.
proccnata. sto je u principu prihvatljivo (macla to mora da bmle brza, pa samim tim Sistem E25K irnad(' IX kntnj>lcta kartica. pri ccmu sc svaki kumpkt sastuji od pro-
skupa memorip). ('ak i uz 32-bajtnc reduve kcsa. katalog ne zauzirna vise ocl 4 pro- ctsursko-memorijsle karticc. ulanw-i1bzne karticc sa cctiri PCI prikljucb i sp\jne
,,.' centa memorije. Uz 128-bajtne redove kda, to bi palo ispml I prncenta. brtice koja sluzi da ohe pnl-.ljuC·i na cc:ntt·JJnu piPcu u k'l.JOj -;e naia;.i prekidacka ln-
Ocig:Jedno ogranicenje ovak ve seme jeste to ~to se red mule kdirati samo u Jed nom ;c:ika. Svab pruccsorskP-illC!llOI'ij'.b kartic·a sadr/.i cctiri proccsor;.ka cipa i cetiri me-
'_, .. cvoru. Radovi bi se mogli kesirati u vise cvorova kada bismo imali ncki nacin da ih ;,ve morijska mr-dula nJ PL' X GB. Prema tome. '>\aka proce-;orc;k<J-menwrij,ka kartiu. na
,";' ]ociramo. da bismo ih, na primer. progJasiJi l1t'Vazecim iJi azuriraJi pri upi;,ivanJU. sistcmu E25K ima o;,am proccsma i 32 CiB mcmmije (cetiri prL;Cc,ura i cetiri mm.ula
Posl(ljt' raJ:ni nacini za omuguc'avanJe istovremenug: kdiranja u vise cvorcwa. s~1 po 32GB mcmorijc 11~1 si;;tcrnu EI~K. Sistem E25K tak,, ';adr/i l-1-1 proccsora. 576
Jedna od mogucnosti je da se svaka odrednica kataloga dnpuni sa k pulja 1.a Ll/In- GB n:ell1L'rijc i 72 PC! prikljul:J.-.~; Onje priLJ;,mna s!ici X-'2. Lmin:ljivoje dajc broJ
cavanje drugih cvorova. tako da svaki red mo/.e da se kesira u najvisL· k l'vuruva. Dru- I:-\ itabran ;bug ograniCenja u pakl'\ ar:_!ll bnica: ;,io-tcm sa 16 kurnpleta kartica ll<lj-
ga mugucnost jt.: da se broj cvora u nasoj jednostavnoj semi zameni rnapum bituva. \Cci je :>i:,fCill k1Jji UjediJOill kunudu Il1<'-'.e da ['f\\JC knv kuc'na vr:tta. !)ok programeri
s Jednim bitom po cvoru. Ovde nije ogranicen hroj knpija, ali ;auzL·ce mernorije r:,;mi;Jj:0u samo <l nulama i jedinicam~t. in/c:njcri rnoraju d,t brit:u i o tome kako ce nji-
postaje 7.nacajno. Katalog s dodatnih 256 bitova /.a svaki 64-hajtni [5 I 2 bitov a) red hovi ~upci uneti racunar u Lgretdu.
kesa zauzcce dodatnih 50 procenata memorije. Tree' a mogul'nost je da se u s vaknJ Cc:ntraln:t piuCa c;adr/i tri .skl<;'a unakrsnih prdid~tl'a 1 ~ :( IS ;;t povczivanjc 18
odrcdnici kataluga jedno 8-bitno polje upolrcbi k:tP pocetak liste kuja povezujc• sve k,mlplcta kJrtica . .lccLlll unakr,ni prckida( JC za adrec.iranjc', dru~i t.a ndg:ovaranjc. a
kopiJC reda ke~a. Za ovu stratcgiju potrcbno je cia c;e u svakom cvmu obabedi dodat- lrel'i La prcll<J'i podataka. Osim I:.; ,;pojruh kartica. u ccnlralnu ploCujc utaknul i knm-
na memorija za pokazivace povc/.ane lisle, a i da o-c pnvc;ana lista prati kaku bi se plct Ltnica za upra1 ljatljc sto-ren;L'ill. O"aJ kompkt imaJcdan pn•cc")r, alii intcrkjse
:X' pronasle sve kopije kada je to potrcbno. Svaka od navedenih mngucnu:.;ti irna :,voje b CD urc:cbjnna i j~dinicama tr~tkc. o.nirkim i dru~im paikrij,J:im urcdajima po-
prednosti i mane i svaka je koriscena u n:alnim ;;istemima. tr~bnim ;.a P"krc:!an.:e i odr!a··anie sio-LC!ll,l. kan i ~~a upravljanjc .
.los jedno poboljsanje seme s katalogom posti?e se ako sc prati cia li jc red kc·s;r (iq Sr2 sv..tkog rnliltiproccsnra jl' njcgc)\, p<~dsistcln incrnori.i~~- Kaku ·~c 144 proccsora
(maticna mcmorijaje azurna) iii prljav ( maticna memorija nijc a/urirana \. Alo zahtcv f'O\ezuje s distribuiranurn menhnijnm' OprobancJ r.c~c:nja (velil.:ct ckljcna magistrala
za citanje Stignc /.a cist red kesa. lllaticni C\'()1' 1110/.e da t.adovo\ji /.ahtcv iz i:lCJTiurijc, za pnsluskivanje iii un,tl... Nli prckidac l +-1 x 72) ovdc nio-u duhra. :Vlagistrala puo-Laje
ne proslcdujuci ga ke;u. Zahtev za citanje prljavog: reda kcsa. medutim. mPra da budL' usku grlo. a prckiJa~·i pL!trL'ilfl<':OC lc~pa,:itL'l;J tc~ko se pra\·e i sl--upi <tt. Ltko vdiki mul-
upuc'cn cvoru koji cuva red ke.~a jer samo on ima njegovu ispravnu kopiju. Akn se l: procl'suri kao ;tn je E25 K moraj u da kuriste sluzc:n ij i puds1 '>fCtn lPc'lllLirijc.
602 Poglavlje 8: Arhitekture paralclnih racunara !!.3 Sistemi s vise procesora koji dele memoriju 603

if
(
_

,,
1
Komplet kartica
-~ za upravljanje sistemom

J~p~rocesorsko9memorijskih
I
I
II
I
I
~~
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.

}
ulazno~zlaznih CJ
0
3
Nivo 3
kartica (J)
~
.~~~~~~-

' PCI prikljucak

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 ~I Nivc 1
N
adrese su duzine -Ll bit~t. ali ograniccnp pri pakovanju svodc memoriju na 576GB.) ::J
'?
Ako sc tra/.cni bluk kcsa nalali u njcgovom sopst YC!Hllll kt:Su, procesor dobija rec. u N
w
suprotnPm. iogika za pris!uskivanje provcrava da li sc rec mozda nalazi negde drugde '::II
): u komplctu. A ku jc lU prunade. na zahtev <.:c odgovara. Kad se ne nade. zahtev se pro- ~I N!VC 0

~J
~.,

~i·'
sleduje prcko unakrsnog prckiuaca 18 x 18 za adresiranje, kao sto ccrno opisati u na-
~:·· stavku. Logika .w prisiu~kivanje 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
Slika S-33. Sun fire E2:'iK ima unutrasnjc vc1e na cetiri nivoa. lsprek1dano su oLnaccnc putanje
i50 milion~t pri:-;luskiv:mp u sekundi iii 2.7 milijardi u sekundi u celom sistemu.
adrcsa. Pune linijc su pulanje poJataka.
lako je iogi ka za pri~! usk.i vanjc iugid.i prikaz~ma magistraiom na slici 8-32, on a fi-
zicki pn:dstavl.p stabio UITLtaja s komandama koje se prenosc uza stahlo i niz njega. Posto smo saglcdali kako su razmt:Stcne komponcnte, obratimo pa;;.nju na ··ad
Kada pmcestlf ili PC! pioca zadaju adresu. ona preko ve"c od tacke do tacke ide do re- 29
deijcne memorije. U samoj osnovi, 576GB memorije podcljeno jc na 2 biokova od
petitora adresa. kau na :'iici X-33. D\ a repetitora adresa sul'eljavaju sc na spojnoj kar-
po 64 bajta. B iokovi su elementarnc ( atomskc) jedinice sistema memorije. S vaki bluk
tici. oJaklc se adresc ;aiju niza stablo da bi ih .svaki urectaj mogao provcriti. Ovakvorn
ima maticnu karticu na kojoj bora vi kada sene koristi na nckom drugom mestu. Vcci-
ScnHJI11 sc i;.hega\'a n1agi"rra!a koja bi angaiuvala tri karticc.
c
H
Za prcno~ poJataka kurist;: se vue na cctiri nivoa, kao sto jc prikazano na siici
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
;.; S-.\.i. Takva .~emajL· izabrana 1.hog pustizanp visukih perforrnansi. Na nivou 0 nalaze
;l udaljenih. on prvo trazi kopiju za sopstveni kd, pa onda pristupa kdiranoj kopiji.
tf, sc parmi prucesmskih cir'o>a i memc,rija pmezani malim unakrsnim prekidacem Iako svaki proccsmski cip na muitiprucesoru E25K sadrzi elva proccsora. oni dele isti
~
koJi ima 1 vczu ka ni vnu l. Dve grupe prucesursko-memorijskih clcmenata povczane
i'
~;
fizil'ki kes (dakle, i sve blokove kuji su u njemu).

t
~;l
I',
11-_

~ ~ ·-
~

I -
~<''
:;
604 Poglavlje S: Arhitcktu1·e paralelnih racunara 8.3 Sistemi s vise prot:csora koji dele memol"iju 605

~ '>·

i$· Svaki mernorijski blok i red kesa svakog proce,orskog cipa mugu biti u jednom od RaspodeljujuCi opterccenjc na vise urcdaja na razliCitim karticama, Sun Fire E25K
~::·!
tri 'tanja: moze da postigne vcoma visoke performansc. Osim 2.7 milijardi prisluskivanja use-

it
i . '.·,.·
~~~:
I. TskUuciv pristup (za upisivanje).
2. Deljeni pristup (za citanje).
3. Nevazece (tj. prazno).
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/;,
~T Kada proce'or treha da procita iii da upise mcmorijsku rec, on prvo proverava kada se iskljucivo pristupa udaljenim karticama. Ako softvcr moze da razmesti stran-
~.?
~.; '\1 sopstveni ke.~. Ako rcc ne naL1e u njemu, on upucuje lokalni zahtev svim urcdaiim~1 11 ce na takav nacin da pristupanja vccinom budu lokalna, propusni opseg sistema mo2e
.. ~.;

:5:f
i"..
okviru svog kumpleta kartica i lra/.i lizil-ku adresu. llkuliko kd na kompktu kartica porasti znatno iznad 40 GB/s.
!!'!! ~'
!!',··
ima trazcni red, logika 1.a prisluskivanje utvrdujc da je kd pngoden i odgov~ua na Vise tehniCkih informacija o Sunovim multiproccsorima Fire nac'i cete kod Char-
R~ zahtev. Kad je red u stanju iskl.Jul'ivog pristupa za upisivanjc, njegova kopija -.;c pre- lcswortha (2002) i Charleswortha (200 l)
~·· nosi, a original sc m:nacava kao nevazcci. Ako jc u Jcljenom n.~zimu za citanjc, ke~ nc
~.i odgovara jer memorija uvck odgovara kada jc red cist. 8.3.5 COMA multiprocesori
Ako logika z.a prislu~kivanjc 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 NUMA i CC-NUMA multiprocesori imaju manu sto sc udaljena mcmorija refe-
tral:eni blok. StanJc svakog mcm<'rijs!mg hloka cuva sc u FCC bituvima bltl\._a. pa ma- rencira mnogo sporije od lokalne. U sistemima s multiprocesorima CC-NUMA, ov1j
ticna \._artica mole odmah Ja utvrdi nJcgovo st~mjc. Aku blok nijc deljcn iii jt' dcljen nedostatakje u izvesnoj meri skriven kcsiranjcm. Bez ob;.ira nato, ako kolicina traze-
izmcdu jc·dnc il i vise udaljen i h \._artica. mat iC·na nll.:nwrija Ct' biti azurn~1 i na zahtcv 'e nih udaljenih pndataka umnogomc nadmasuje kapacitet kcsa, promasaji kcsa ce &c
muzc odgD\:oriti i1 lllc'llhJrije matiCne kartic:c.:. U ov<lm ;,luCaju kupija rcda salje se redati jedan za drugim i perfurmansc cc biti lose.
prcko unakrsnog prckidab ;.a pudatkc dva -;i.';tcmska cikluo,a i konacnu .,tize do pro- Taku imamo situaciju da UMA multiproccsori imaju udlicne perfurmanse, ali i11
cesora kuji jc uputiu ?ahtcv. je velicina ograniccna i priliCnu su skupi. NC-NUMA multiprocesuri mogu da sc vile
Ako jc ...:ahtcvano citanjc, u direkll,rijumu na nwticnoj kartici unusi sL· odrcdnica uvecavaju, ali sc kod njih stranice moraju razmt'Stati rucno iii puluautornatski, sto c~­
s u;.na\._um da l1<lV .. korisni\._"' lkli red kcsa i tran~akci.Ja sc zavr~ava. f\lcdtttim. akuje sto daje promenljive rezultate. Problem jc to sto je tesko prcdvidcti koja ce strana u
z;thtcvano upisi 1 anje. puruka '' prc:;tanku v a/cnja mor:1 se pu,Ltti sv im datgim karti- kmn trcnutku biti potrcbna, a stranica nikada nije mala kada1e treba premcstati. CC~
cama (ukultkD P"'I"-JC! kDic· imaju njcg<lvu koriJII. Nc~ ovaj na(in, kartica.., koje pu- -NUMA multiproccsori, kao sto jc Sun Fire E25K, mugu da ispolje lo~e performame
tice zahtcv ;:a upi-;ivanjc jcdina nc~ kraju imc~ \._upiju rcda. ako istovremeno mnogo proce:;ora tra7.i udaljene podatkc. Svc u svcmu, svaka od m-
Razmotrimu -,;tda sJu,:·~tj LtditJC tailtc·vani lJj,,k u rl:'/:n111 i,kijitCivog !~nstupanja za vedenih sema ima ozbiljna ugranicenja.
upisivanjc 'ill1l'~1Lil n<-~ dru.:;('.i kartici. KaJa rnat:Cna kaniL·a doh!j'-' zahtcv. ona u din~k­ PomtJL'u jedne altemativnc vrste multiprocesora pokusava se da se prcvaziLlu ovi
torijunlu tr;t/i iuka ..·:Ju ttdaljcne kartice i /.,thlel at~cu \;tije pcll'!tku sa''P~tavajuci mu probkmi tako sto se glavna mcmorip svakog proecsora upotrebljava kao kd. U ovCJj
gde se nala~~i red kc;a. ZahtcvaLtt· sada \aije ;r:thtev pra','lll1 kumpL:Ui kanica. Kad semi, zvanoj COMA (Cache Only l'vlcmory Access- samo prist up kdu). stranice n~­
t.ahtcv stignc. \._a;·tic;l ~aijc tra/eni red. !\kt' JC u pic~ll1JU :.ahkv ;a citanjc. rc:d se ozna- maju liksnc maticne procesore, kao kod NUMA i CC-NUMA multiproccsora. One, u
c~tva Ka() lki:cn I ll)•'t'OI d kupija .'C ~:djc• mati::Jiclj karcici. lJk,,jiku SC radi 0 zahtCVU stvari. potpuno gube /.nacaJ.
/CI upi,iv;tnjl'. ••ncq ku Pdgov;tra tl/na.:·:tva nc\a/ccom S<lp:-,lvenu kupiJU tako da za-
Ovde je ceo 11zicki prostor adn:sa podeljen u rcdove kda koji se po potrebi krecu
iltcvalac· j'tlilajc v :;t'>nik jcdtnc :..upijc. sistemom. Blokovi ncmaju svuje maticne prucesore vee im jc- kao nomadima- dum
P().~tu svakCJ ktrtt,:a lllta : 2 ' 1 11\t:liHJri.J:ikili L+>LU'ia. u tui:lq•l>\oljnijc·m -;lucaju ka- tamu gdc sc trcnutnu nala;:e. Memorija kuja ,privlaci" rcdovc samo onda kada su pcl-
tai<Jg koji u njiliu irdn da 'dJdi ra~·un;t ima,'c: 2.'•! •>cir,·dnlc~L p,,.\to .JC btalog mnngo trcbni zovc se atrakciona memorija (engl. attraction mel/lorY). Kada se glavna m~­
m~mJi ,,J t,,gct, ii1P/.c :;c: ch·:-,iti cb pcnckad u njc,nu nc· hude mc'>Ia (Dn :;c a:-.ociptivno morija kmisti kao veliki kes, umnogome se puvecava broj pugodaka ke:ia, sto znm."i
deli) Za nckc Odt·cdiil<.'C. [: l()!ll ;ju(;:ju lllclllCill Ka!alug trcha da pronadc blllk saljuci da su pcrformanse bolje.
:tahtev ka -..\ ih dr~l~~ih J7 kart1La. t:nakrsn: p;·ckid,lC za l_)d~U\<'rc tada i_:;ra ~voju ulogu Nazalost, nikada nije sve savrscno onako kao sto izgleda. COMA sistcmi donmc
u dJr'/avanju k,)h..._·rcnln~.)~ti k~t~al11ga i u prlllnku!u ;a ~17uriranje tako Stn c1braduje ve- dva nova problema:
~'

liki dco pm ratnug \Clohr·;lL'a:a k11 posilj:J\JCU 1-::tl!~t "" iil•'hra,·~q ;:r.:dvidcn protokolom I. Kako se pronaL11.e linije kda·J
raspo~..kli lL:I J., c nt.t:;i ·.trak t. La aJrc:-;irailjc i od~· l\'antnjc ). ~l pcH1a..:i .~alju treCorn. po- 2. Kada ,e red izbri;::c: iz memorije, sta sc desava ako je to bila njegova pusk-
\z.·Ca\i!l .')C uk~1pan t'~n.~t~)k p~~J.Jraka.
dnp koptja· 1
606 Poglavljc 8: Arhitckturc paralelnih racunara Multiracunari zasnovani na razmeni 607

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

Cvor
Procesor Memorija

Komunikacioni
procesor
* (a) (b)

lnterna mreza visokih periormansi

Stika S-J-1. Op.~ta ;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
(c)
0 (d)

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
EHJ (e)
• (f)

( Tuplugijajcdnc interne: mre!:c upisujc medus(lhni rasporcd vcza i prckidac~t. i mole ...... -----;:-:::::------
/ / ....... .......
biti. na primer. ublika jJt'\tt·na iii oblika rc(ctkc. Topolu~ke sctnc sc mugu ll1<Jdclirati
grafovima, pri ccmu o,c veL~ predstavl,iaju lukuviilla. a prckidaci Cvoru">il1t« tslika
~>~
?-;~3.5 ). Svaki C\ nr interne n1rc/,c ( i n.knog :;raCJ 1 i:--h,Jdi~tc jc iL ;e...;nug
1

t~maticari hi taj bwj nazvali ~tcpcn l:vma; inh~nJcri ga /llHl rasplet I enc:l.fuzout). t;
\'('Za. \'la-

lbllllvi V~L;;i: :;tujc vcci ra:-,plel.lo ima vi~e opci_~<l /a r11tiranjc i gTC~Kl' Sl' Jak;c tnkri;u,
tj. st'ilc'!ll cc funkcioni;-,ati i aku neka vua otk:t2c. ;'a .,c· pc~kct mm~t uputiti LaPbi!a1.nim
putc·m. Ako :-,vakt Cvor ima k lukov~l. a uiic'<:nJC .,c uvc'tk i.spravno. mc-guL'L' jc: pro-
@ llY---:~
(g) (h)
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). Slika S-35. RazliCite topologije. Tack~ prctht,tvljaju prd;idaCc. Procesori i mcmorije nisu
prik.t~.ani.
(a) Zvczda. (b) Potpuno povczana mre.b. (c) (13inarno) stablo. tel) Prsten. (c) Rdctka.
i'\.h:u ra,tojanjc iLmnlu dva CHJra m:::rimu hruFill iuk,lva k<)je trc:ba j'r~,_'i d:1 hi se iL If) Dvnstruki torus. I g) Kocb. (hi 40 hipcrkocka.
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- Jns jcdno vazno svojst vo intcrnih mre/a jcste njihov prcnosni kapacitct, tj. kol ici-
terne mre/c odrcclujC ka;njc·njc u naJrtt:p<lVoljnijcm :,lut'<~ju kac!a 'c' pcrL.:~i ~alju od na poclataka koja se kr01 njih moze preneti u sckundi. Jedan cest pokazatclj ovog ka-
jcdnn2:2- dt) drugot: ph._)CL'~ura i!i t'J proC~\t_lrJ \_lP 11lCilit)rije. ;.atn ~to JC /~l :;\ .tki .'1kok. pacitcta jc tzv. hisekdoni propusni opseg (engl. bisection bandwidth). Da bismo ga
du;~ v:.:L~e potrehno k;.)Jl~tCilo vrc'lllC. SL(J jc rnan_Ji prc-.:·i1ik nucl;.::, un~t CL· ',e po- izracunali. najpre mmamo mrelu (u mislimai podeliti na dvajednaka (u poglcdu bro-
na~~lli u n . tjncpo' 1.)\jnt]etn sL.JLJju. Vah.tn poLaL~tlt:lj jc i prose(nt) r~l?-ltuja:!jL l;n1edu ja cvoroval. ali ncpove;ana del a. IJko stu CClllll ukloniti skup lukova il njenog grafa.
Llv:t (:•.,ora. !at() \l\) ~_;!ltJ t)drc.Ju.ic ~rcdiljc \ 1~rne proi~tsk~l pakc-La ktoz n1relu.

'
·!"
'
~
!
1·I'
..
[j
8.4 Multiracunari zasnovani na razmcni 611
610 Poglavljc 8: Arhitekturc paralelnih racuuara

Zatim izracunavamo ukupan propusni opscg uklonjenih lukova. Mreza se na Jva jed- Jos jedna popularna toplogijaje trodimenzionalni torus. Topologija se ovde sastoji
naka del a mozc podeliti na mnogo nacina, a bisekcioni propusni opseg je minimum od 30 strukture sa cvorovima u tackama (i,j, k), pri cemu su sve koorclinate celi bro-
koji se dobija izracunavanjem svih tih moguc'nosti. Znacaj ovog pokazatelja moze se jevi u intervalu od ( l, l, I) do (I. m, n). Svaki cvor ima sest suseda, elva cluz svake os~.
vidcti iz sledeeeg. Ako jc bisekcioni propusni opseg. recimo, 800 bitova/s i postoji Cvorovi na ivicama imaju veze koje povezuju suprotnu ivicu, kao kod 20 torusa.
jaka komunikacija izmedu Jvc polovine mreie, onda ukupan protok podataka moze u Kocka na slici 8-35(g) pravaje trodimenzionalna topologija. Prikazanaje kocka2
najgorem slueaju da bulle ogranicen na samo 800 bitova/s. Mnogi projektanti smatra- x 2 x 2, ali u opstem slucaju to moze biti kocka k x k x k. Na slici 8-35(h) prikazana
ju hisckcioni propusni opseg najvaznijim pokazateljem internih rnrel.a, a mnoge je cctvorodimezionalna kocka konstruisana od dve trodimenzionalne kocke ciji su
mrezc su konstruisanc s Jirektnim ciljem da se on maksimira. odgovarajuc'i cvorovi povezani. Mogli smo napraviti i petodimenzionalnu kocku klll-
Interne mreie se mogu opisati i njihovom dimenzionalnoscu. Dirnenzionalnost sc nirajuc'i strukturu sa s!ike 8-35(h) i povezujuei odgovarajuee cvorovc cia bismo doblii
za nase svrhe detinise brojern izbora koji postoje za stizanje od izvora do odreclista. blok od cctiri kocke. Da bismo dostigli sest dimenzija. rnogli smo udvojiti hlok od c~­
Ako sc nikada ne rnozc birati (tj. kada od svakog izvora do svakog odrcdista postoji tiri kocke i povezati odgovaraj.uee cvorove. N-climenzionalna kocka obrazovana na
samo jedna putanja), mrez.aje nula-dimenzionalna. Ako postoji samo jedna Jirncnzija ovakav nacin naziva se hiperkocka. Mnogi paralelni racunari koriste ovakvu topolu-
u kojoj jc mogue izbor (na primer, cia sc ide na zapad iii na istok), mreia jc jcclnodi- giju jer precnik raste linearno s brojem dimem.ija. Drugim recima, precnik je loga-
menzionalna. Ukoliko postoje clve use, pa pakct moze Ja ide na istok iii na zapad, iii ritam broja cvorova za osnovu 2. tako da, na primer, I 0-dimenzionalna hiperkocka
alternativno. na sever iii najug, mrezaje dvodimcnzionalna itd. ima I 024 cvora, ali joj jc precnik samo I 0, zbog cega je kasnjenje u tak voj mrcii izu-
Na slici 8-35 prikazano je vise topologija. Prikazanc su samo veze (linije) i prcki- zetno malo. U poredite s njom rdctku 32 x 32, koja takodc ima I 024 cvora. ali joj je
daci (tackc). Ncprikazanc mcmorijc i prucesori obicno bi bili pripojeni prckidacima precnik 62, vise od scst pula vec'i ncgo precnik hiperkocke. Ccna koja sc plac'a za
pomoeu odgovarajueeg interfcjsa. Na slici 8-35(a) imamo nula-dimenzionalnu kon- manji precnik je veliki rasp let-· broj veza iz svakog cvora (as time i cena) mnogo -;u
figuraciju zvczdc, u kojoj bi proccsori i memorije bili pridruzeni spoljnirn cvorovima, veei kod hiperkockc. Bcz ohzira nato, hiperkocka je uobicajeni izbor za sisteme vi-
dok bi centralni cvor obavljao komutiranje. lako je ll pitanju jednostavna sema, ll ve- sokih performansi.
likom sistcmu bi ccntralni komutator vcrovatno post au usko grlo. Is to tako, sa aspekta Postoje brojni oblici i velicine multiracunara. pa ih je tdko prccizno klasitikovali.
tolerancijc gresaka. ovo je lo~a scmajer i najmanji otkaz ccntralnog prekidaca potpu- lpak, medu njima se izdvajaju elva opsta ,.stila": MPP multiracunari i klastt:ri.
no obara sistcm. Prouciccmo ih jeclan za drugim.
Na slici 8-35(b) prikazani je druga nula-dimenzionalna ;ema koja predstavlja clru-
gu krajnost. potpuno povezanu mr·c:lu. Ovde svaki cvor ima clirektnu vezu sa sva- 8A.2 MPP multiracunari - cvrsto spregnuti paralelni procesori
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.
I
f
i
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
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-
;
~
ogromnih kolicina podatab i odrzavanje velikih baza poclataka. MPP multiractuuri
i su na pocetku prvenstvcno korisccni kao naucni !>uperracunari, ali se clanas uglavnom
no hiti dosta saobraeap blizu vrha <,tabla, gornjih nekoliko cvorova postaee usko grlo. ~
,~,
koriste u komcrciplne svrhc. Ove masinc su u izvesnom smislu sledbcnici mocnih
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, i ccntralnih racunara iz sezdcsetih god ina (mada je ova veza nategnuw. otprilike kao
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.
'
·~
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
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
! 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
slikc X-35(e) Jvodimezionalnaje sema kojaje koriseena umnogim komercijalnim si-
! upotrcba vanserijsk.e interne mrde vrlo visokih per!"orman::,i. namcnsk.i konstruisJne
stemima. On a jc veoma pravilna. lako se uveeava u bilo kom stcpcnu i ima precnik '1:
.c_,. za razmcnjivanje poruka LV vcliku propusnu moe i nez.natno kasnjenje. To jc va£no JCf
koji se poveeava tek s kvadratnim korenom broja cvorova. Verzija resetkc je dvostru
1 su najbrojnije poruke kratke (znatno kraee od 256 bajtova), ali glavninu ;,aohracap1e
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
·tq guzve stvaraju velikc porukc (duze od 8 KB). 1\!PP multiracunati ~u opremljcni i obim-

i'
da komuniciraju u s~uno elva skoka.
il nim vlasnickim softvcrom i hibliotekama.


L
L IIIL
612 Poglavlje 8: Arhitekture paralelnih racunara 8.4 Multiracunari zasnovani na razmcni 613

Drugo stu karakterise MPP multiracunare jestc njihov ogroman ulazno-izlawi ka- umerenom brzinom i trosila malo energijc. kako bi napravio vrlo veliki racunar vel ike
pacitet. Problemi koji opravdavaju kmiscenje MPP rnultiracunara neizostavno su po- gustine pakovanja. Prvi Cip je napravljen juna 2003. godine. Prva cetvrtina sistema
vczani sa ogromnim kolicinama, cesto tcrabajtovirna podataka koje treba obraditi. B lueGene/L. sa 16.384 racunarskih cvorova, bila je potpuno u funkciji novembra 200+.
Toliki podaci se moraju distribuirati izmedu vise diskova i prcmdtati po racunaru vc- godine. kada jc proglasena za najbrzi superracunar na svetu sa 71 teragopsa/s. Trose..'i
likom brzinom. jedva 0,4 megavata, ovaj racunar je pobedio i u elikasnosti korisccnja energije u 'vojtlj
Na kraju, MPP masine izdvaja i tokrisanje grcsaka. Kada imate hiljacle procesora, klasi sa 177,5 megaftopsa po vatu. Ostatak sistema. namenjen da zbir cvorova dopu1i
neizbc:.l:no ce svake scdmice biti nekoliko urkaza. Prekinuti neko 18-casovno izracu- do 65.536. trebalo je da bude isporucen uleto 2005. godine.
navanjc zato sto je jedan proccsor otkazao potpuno je neprihvatljivo. naroCito aku se Sri. sistema BlueGene/Lje cvor- namenski cip prikazan na slici 8-36. On se sastcji
tako nesto moz.e ocekivati svake sedmice. Zbog toga, veliki MPP multiracunari uvek od dvajczgra PowerPC 440 koja rade na 700 MHz. PowerPC 440 je superskalarni pm-
:;' imaju specijalan harclvcr i sol'lver za nadziranje sistema, otkrivanje gresaka i glatko cesor sa paralelnom obradom i dve operacije koje se zapocinju istovremeno, popularan
oporavljanje od njih. u ugradenim sistemima. Svako jczgro ima par jediniea za racunanje s brojevima u fcr-
Iaku bi sada bilo bas zgodno prouciti osnovne principe rada MPP multiracunara. u matu pokretnog zareza koje istovremeno zapocinju po dve operacije. tako da ukupno
stvari i nema mnogo toga da sc prouci. Kada sc postavitc ispred njcga, MPP multi- u svakom sistemskom eiklusu mozc da se izdaju cctiri instrukcije s brojevima ll fc,r-
racunar jc samo skup manje vise standardnih racunara povezanih vrlo brzom inter- matu pokretnog zareza. Ove jedinice za racunanje s brojcvimJ u furmatu pokrctnog
nom mrdom, jcdnog od tipova koje smo vee proucili. Zbog toga cemo. umcsto na L.areza ojacane su brojnim istrukcijama tipa SIIVID kojc su ponekad v~oma korisne
principe, vasu paznju usmeriti na dva konkretna prirnera ovakvih rnultiracunara: u naucnim proracunima s matricama. lako po perfonnansama i nije taku los, uvaj cip
BlucGenc/L i Red Storm. izvesno nije vrhunski multiproeesor.

BlueGenc S~er Gre lnterlejs ka

Kao prvi primer i\IPl' sistema. ra£motricemo IBM-ov BlucGenc. IBM je I ')99. go- Radni procesor KeSevt nivoa 1 I Narnensk1 C:p I ~~ternoJ mre . . t
7

\ \ i ~// j'. 3D
topolug1je
dine zapocco projekat rnasivno paralclnog supcrracunara da bi pomocu njega rdavao
Jed>e"""
~~
t - \
\ \ • , -.-~
~~----~---r------------~-----+-

~- --, I
• j
torusa

~HI I~T
probleme koji zahtevaju op,;czna iaacunavanja. innedu ostalog ina polju bioloskih '""'""''
nauka. Riolozi. na primer. veruju cia trodimcnzionalna struktura proteina odredujc '·"""'·'
'""""" --1~·FPU
-----1
I Jezg~o Kes
: drugog j ;
I
1.

,
-·p-u. I PowerPC 4400 1 . ~'
1 ntvoa ~~
I, ·K es,
njihovu funkcionalnost. ali je iaacunavanjc 3D strukturc .JCdnog malog proteina na F 0
_l
1

--·-- 1
L_~ i:o.
l(j)
11 treceg
• I
1
w,novu zakona fit.ike trajalo goclinama. cak ina superracunarima tog cloba. Broj rro- Zapad ... --+.~--.--~---~-P:~sluskiv~nJet ~~~ i mv?a •r;·-~ lstok
---. ,:....Y-l L..J II coc,.~.

.I
tcina u ljudskom telu prela1.i pol a miliona i mnogi od njih su izuzctno veliki molekuli, i . J..
I ·Jellc:ne
4 fvlB
K- DDR tvl
l~J ! Kes W ~ · ~-~>- men'Or>!i
'<t '-'·rdl
I FPU
¥

a po1.nato je da su poremccaji njihove prostorne konfiguracije oclgovorni za odredena 1 Jezgro ll


~ PowerPC 440 ! n ~~: drugog 1-4 ~ . ! n1vou kart,cc
f
obuljenja ( npr. za cisticnu librozu) Naravno, da bi se odredila 3D struktura svih ljud- LPU 1 ~ Ln,voa ·· L___j i
skih protei na. hi lo bi potrebno da se svetska racunar<.;Ka snaga poveea za vise redo' a / • - IB
velicinc. a modelovanjc prostorne strukture proteina samo je jedan od problema koje
Komunikacion1 procesor /
/ t
~ t
Ty
jc BlueGenc trcbalo da rdi. lsto tako, slozcni problemi iz oblasti molckularne di-
Ju9 \'e:::a krt. Ethernet mrb.':::l Dole
namikc·. modelovanja klime. astronomije. pa cak i iz oblasti tinansija, zahtevaju po-
vccanje snage superracunara za vi\e redova velicine. Siika 8-.'11. t-;c~rncn,f..i prdccs<lrsJ..:~ (ip Bluc(]c:J•C/L.
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 Dva prucesorska;e.cg:ra na cipu identi('lla su prl Scrukturi. ali 'c programiraju r:.z-
200 I. godine. NaciPnalna lahoratorija Livermore, koja je u nadldnosti Americkog licilo. Jednu JC radno- za ia::cu:uv:tnp; drugo lldrzava komuni k:tctj u izmcdtt (>:'i.:'i.l(J
ministar-;rva energetike. stavila je svoj partnerski potpis da bi postala prvi korisnik C\orova.
prve vepije superracunara porodice BlucGene. zvane BlueGcne/L. Na Cipu postoje tri nivua kc·sa. Prvi nivu je d.:ljcni Ll kc~ sa .12 KB n in-;rw;,.cijc
Cilj projekta BlueGcne nije bio samo cia se proizvede najbrzi svetski MPP multi- i 32 KB z:t podatke. N~ma kuhcrentltnsti it.mcdu L I kl'~eva dva pwees<>ra jcr sl::n-
racunar. vee da on bude i najelikasniji po broju teratlopsa pu dolaru. teralh>psa po \atu dardna jagra Power PC 4-1\l lu nc' podrl:av:l_Ju. a odluceno je d:t sc kmisrc sl:lmLtrL!:Ja
i terafl,lpsa po m 3. Zbog togajc IBM odbacio tilomtiJu kopjc le/.ala u <lsnuvi pretl]()d- jezgra. Drugi nivo je ohjcdinjcni k.cs \Cl:l'ii1e 2 KB. L2 k.:Sevi su pre b;tkri Dl pr~l­
nih MPP multiracunara. tj. da kuristi najbrze komponente koje se mogu naci na trzistu. hndno preuLimanje podat;;ka. ncgu pr;tvi !-..c;evi. Oni prislu<kuju jc:dan drugu:? i zahl
vee -;e oprcdeli(l da napravi namensku komponentu- ceo sistem 113 cipu- koja bi radila su medusobno kuthistentni. T:Tc.'! nivo jc ubjeclmjen. kotbi,;en:ctn ke~ cJ 4 :V!S iz
614 Poglavlje S: Arhitekture paraldnih racunara 8.4 Multiracunari zasnovani na razmeni 615

koga podatkc dobijaju oba L2 kesa. Referenciranje memorije u kome se prornasuje Na kraju, na s1ici 8-37(e) prikazanje potpun sistcm sa 64 ormarica i 65.536 radr:ih
Ll kd, ali se pogada L2 kes, traje oko II sistemskih ciklusa. Prornasivanje L2 kesa procesora, kao i sa drugih 65.536 komunikacionih procesora. Uz 131.072 eelohrojrih
i pogadanje L3 kesa traje oko 28 ciklusa. Najzad, promasivanje L3 kesa i putovanjc proct:sora s dve instrukcijc po ciklusu i 262.144 slicnih procesora za rad s brojevima
do glavne SDRAM mcmorije i nazad traje oko 75 ciklusa. u formatu pokretnog zareza, trebalo bi da ovaj sistem moze da izdajt: do 786.432 in-
L2 kesevima je pridruzcna mala SRAM mcmorija. Ona jc povczana preko JTAG strukcijc u svakom sistemskom ciklusu. Medutim, jedna od ce1obrojnih jedinica daje
nozica za pokrctanje sistema, otklanjanje grdaka, komuniciranje s glavnim racuna- podatke za jedinice za rad s brojevima u forrnatu pokretnog zareza, smanjujuCi broj
14
rom, odrzavanje sisternskog steka i obezbedivanjc semafora, barijcra i drugih opera- ildatih instrukcija na 655.360 po sistcmskom cik1usu, ili 4,6 x 10 izdatih instrukci-
cija sinhronizovanja. ja/s, sto ovaj sistem Cini najvecim ikad naprav1jenim racunarom.
IBM je na sledccem visem ni vou projektovao namensku karticu koja nosi dva cipa Sistcm odgovara de!iniciji rnu1tiracunarajcr nijedan procesor ne moze direktnoda
sa slike 8-36 i l GB mcmorije. Buduce verzijc kartiee mozda ce imati i 4GB. Cip i pristupi bilo kojoj memoriji osim sopstvenoj na kartici (512MB). Ni elva procesora
kartica su prikazani na slikama 8-37(a)-(b ). 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
512MB
~
l~ri'"'l-~ ~
sistem odrzi jcdnostavnim nije hila s1ucajna, posto je najvaznije bilu postiCi visoku
•I :..1iii L"" I ~ pouzdanost i raspolo7jvost. Zbog toga je vcliki inzt:njerski trud u1ozcn u napajanje,

'~ ['l'' [~I ' 1"1


~
;:;:; ventilator<:, hladcnje i ozicenje, sve sa ciljem da se postigne bar I 0-dncvni prosdan
lc; ~II ~.·. f•J ~ interval izmct1u elva otkazivanja sistema.
1

[.., ,;~.1 ,J;J 1..11


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-
·~'
~~:
1."1 l'l·l~jl'l'l
,.io: I.I.J ..1 ,'!!ij ~ . . . . . . j.. padno od njt:ga. Ovib sest prikljueaka na slici 8-36 oznaceni su kao istok, zap.td,
;,1 sever. jug, gore i dole. Svaki mmaric sa I 024 cvora fizicki prcdstavlja torus 8 x 8 xI().
~~ ~· Cip: Kartica: Ploca: Ormaric: Sistem: Parovi suscdnih ormarica obrazuju torus Rx 8 x 32. C~ctiri para ormarica u istom rcdu
!"':- 2 cipa 16 kartica 32 place 64 orrnarica ubrazuju torus R x 32 x 32. Na kraju, svih o:-.am rt:dova obraz.uju torus 64 x 32 x 32.
~-:.
l:: ukupno 1 GB 32 cipa 512 kartice 2048 ploca Na taj nacin su svc vezc tipa od tackc do tackc i rade brzinom l ,4 Gb/s. Posto sv1ki
':,
ukupno 16 GB 1024 cipa 32.768 kartica od 65.536 cvorova ima tri vezc ka hijcrarhijski visim cvorovima, po jednu u svakuj
ukupno 512GB 65.536 cipova dimcnziji, ukupni prc•pusni opscg sistema je 275 tcrabita/s. Kolicina podataka u o.oj
32 TB knjizi iznosi oko 300 miliona bituva, ukljucujuci i svt: slike u kapsuliranom Pt,st-
(a) (b) (c)
Script formatu. tako da hi BlueGcnc/L mogao da s mcsta na mcstu prcbaeuje cak
(d) (e)
900.000 kopija ove knjige u sckundi. Kuda bi to! ike kopijc mngle ici i ko bi ih zel~o.
Slika S-37. BlucCcnc/L (a) cip. (b) kartica. (c) pl<lCa. fdi orrnaric. (c) 'istcnt. neka za domaci zadatak smisli citalac.
Komunikacija kroz 30 torus Ddvija sc kau jcdan od oblika virtuelnog prolaZIJOg
Karticc se montiraju na ugradnc ploce, 16 kartica po ploci sa ukupno 32 cipa (tj. sa rutiranja (engl. l'irtuol cur through routing). Ova tchnika pomalo lici na kumutir,njc
32 radna procesora) po ploci. Posto svaka kartica sadrzi I GB SDRAM rnemorijc, na pakcta tipa .,smcsti i prosledi", osim ;to sc pre proskdivanja nc sme~taju celi pakcti.
svakoj pluci jc !6GB. Plocajt: prikazana na sliei 8-37(c). C'im u JCdan .:·vor stigne prvi bajt, on st muzc proslcditi slcdec'cm cvoru na putanji. C·ak
Na slcdcct:m nivou, 16 ovakvih ploca se ugraduje s gornje strane centralne ploce, i pre neg<) ~to pristignt: citav pakel. Za to 'iC mozc knristiti kako dinamicko (adaptivr:ll).
a drugih 16 s njene donje stranc, ispunjavajuci tako ormaric dimcnzija 60 em x 90 ern tako i detcrministicko (liksno) rutiranje. Virtuelnu prolazno rutiranjc implcmcntirci st:
sa 1024 procesora, sto je izuzetno visoka gus tina pakovanja. Dvt: grupe od po 16 plo- tako sto St: lla cip Jodaju male hardvcrske komponenle specijaJnc namcnc.
ca razdvojcne SLI prckidacem koji jednu grupu 1110ZC da iskJjuci iz sistema U cilju Osim glavnug 3D torusa koji se koristi za prenos podataka, pn,LOjc jos l:ctiri drugc
odrzavanja, dok istovrcmcno u sistem uk1jucujc drugu grupu. Onnaric jt: prikazan na komunikacionc mre/.c. Dru;:a mrcla u ohliku stabla JC mrda za kombinu\'anjc. Za
slici 8-37(d).

~
~
616 Poglavljc 8: Arhitckturc paralclnih racunara 8.4 Multiracunari zasnovani na razmcni 617

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

:J;;
618 Poglavljc 8: Arhitckturc paralclnih racunara SA l\Iultiracunari zasnovani na razmeni 619

Ulazno-izlazni i servisni cvor Prekidac


Radni cvor
I§ I \

···:lJ
DD D D D D DD D§ D D D D D D D D D D D D D§ DDDDDDD§ DD
GB DO DDDDDDD DDDDDDDDDDDDD DDDDDDD DO
DO DDDDDDD DDDDDODDDDDDD DDDDDDD DO
Skup1 i~~ ~ ~ DO DDDDDDD DDDDDDDDDDDDD DDDDDDD DO
Ska~-
U p~rica
28
Skiad1ste (2688 Opterona)
~
52 ormarica promenljive ./ 28 javnih ormarica
namene (4992 Opterona) (2688 Opterona);
u
Skladiste
ad 120 TB ad 120 TB

Slika 8-39. Sistcm Red Storm posrnatran odozgo.

Na radnim cvorovima izvrsava se jednostavno (operativno) je~:gro 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
E
raspoloziv je i za koriscenje na Red Stormu, sto ukljucuje programe za rasporec1ivanje
b
proce~ora, programe 1.a vremensko rasporedivanje aktivnosti, MPl hibliuteke, mate-

Slika X-38. Pakuvanje kulllponenata Red Stortllcl. I maticke hiblioteke i pojedine aplikacije.

I
lJ tako vclikom sistemu od sustinske je vaznosti postici visoku pouzdanost rada.
Osim I 08 radnih mmarica, sistern 'adrzi i I (J ormarica za ulcu:no-izlazne i servisne Svaka kartiea ima RAS procesor za odrzavanje sistema, a za to postoje i specijalne
proceson.:. S1·aki od ovih ormarica sadrzi 32 Optemna. Od ukupno 512 proccsora, 256 hardverske komponente. Cilj je da se prosecno vreme izmedu dva otkaza (Mean Time

~··
•:t
~>
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 op~eg u komunikaciji s diskuvima iznosi 50 GB/s.
II
-t
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 ).
P~. i§·
"'t
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 ~ Poredenje multiracunara BlueGene!L i Red Storm
;. u poverijivom dclu, dok su drugih 268S uvek u javnom dclu. Prcostala ..fl)92 radna 'il: Red Storm i BlueGcnc/L su i slicni i razliciti, pa je zanimlji1o upon.:diti njihovc
J' ~

l
procesora nmgu se pridru/.i vati jed nom ili drugmn dclu, kao sto je prikazano na slici osnovne parametre (slika 8-40) .
.---"
r;.:,: 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-
it
lsia_v__ ~

~ueGene/L Red Storm


IP-r~~;sor
~~
-~

deljcni u pomenuLl dv:J dela sistema. -bitni PowerPC 64-bitni Opteron


Sve ovo je sntc~teno 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 n~tdogradiv<,ti du ~~ iTakt 1700 MHz 2 GHz

30.000 proce,ora. Radni cvmuvi trosc l ,6 mega1 ala struje: dioktll·i tro;e jos jedan ~~ I Radnti procesori ~5536 10.368
--
,, l ,------
4

~F
mega vat. Uz vcntilatllre i hladenJt' vazduh<t, ceo :,istcm trnsi 3.5 lVl W. Proc esora po kartici
Hardn:r i soltver racunara kustaju ')() miliuna doiara. Zgrada i ra,hladni sistcm
lj Proc ;ora po ormaricu . 24 96
----------

ko;taju dodatnih 9 milinna, tako da ukupni troskovi iznuse ne~to manje od I 00 rnilio-
~~ L___ ---
4 108
---
\ Radnil 1 ormarica
na do!ar,t, nntia deo tl•ga lltpad<l i na ncpovratnc inz.enjcrskc tmskove. Kada biste ~I I
iTer~ ,psals 1 41

!i
- ----------
L.deli da izgradite istovctan klun. pl<~tili histe oko 60 miliona dtllara. Cray namerava
L Mem rija po procesoru is12 MB
___j___
2-4GB ______ _ _ j
da manjc verzije sistema. pod imennm X3T ponudi drugim drzavnim i komercijal-
Slika 8-40, Poredcnjc multiracunara BiueGenc/L i Red Siollll.
nirn kupcima.
~I
~~
i'
I
li...-----
[\,~ ~
620 Poglavljc S: Arhitcktm·c paralelnih racunara SA l\lultiracunari zasnovani na razmeni 621

----1 I --- - -- ---- - --------

Ukupna memoriJa !32 TB 10 TB 8.-t3 Klasteri racunara


---------
Ruter PowerPC Seastar Jos jedan stil multiracunara jcstc klaster racunara (engl. cluster computer) (An-
---- ---
Broj rutera 65.536 10.368 derson et al., l9lJ5: :V!artin et al.. Jl)97). On se obicno sastoji od stotina ili hiljada lie-
----------
3D torus 64 x 32 x 32 3D torus 27 x 16 x 24 nih racunara iii radnih stanica medusobno povezanih komcrcijalno raspolozivom
--
gigabitni Ethernet brzi Ethernet mrcZ.nom plocom. Razlika izmcL1u MPP multiracunara i klaslera analogna je razl1ci
Ne Da izmedu centralnog racunara i PC' racunara. Oba imaju procesor, memoriju, diskovc,
--- -·
Namenski Namenski
opcrativni sistcm itd. Kod ccntralnog racunara ove komponcntc su samo br/,c (osim,
mozda. opcrativnog s1skm~r :. lpak. oni se kvalitativno razlikuju, a i razliCito pr·i-
Linux Linux
menjuju. Isla razlika pustuji izmcdu MPP multiracunara i klastera.
I

IBM --~ Cray Research I


lstorij-,ki kljucni clcmc·nt zhog koga su MPP racunari postali tako specijalni hilaje
njihuva visokobrzin~ka imcrna· mrda, ali taj argument slabi s dolaskom komercijal-
------·--
Da
------------
IDa ~ nih. gutuvih, visokohrzinsl--ih intcrnih nue?.a. Po svcmu izgleda da cc klastcri poti-
Slika S-40. PorcdcnJe mulliracunara BlucGcnc/L i Red Sto.-n1. (nustur·uk) snuti l\IPP multiraCunare u svc duhljc nisc, ha~ kao sto su PC racunari pretvorili
centr:tlnc racunarc u ezutcricne specijali~:ovane objekte. Glavno podrucje primene
Ovi racunari su izgracteni otprilike u isto vrcme. taku Ja njihnvc razlike ni:-,u plod MPP nmltiracunara .JCSII vistJkobudzctni superracunari, gdc vrsnc performanse znacc
ratlicite tehnologije, n~go razlicitog vitknja projektanata. au iLvesnnj rneri nastale su
sve. a ccna mje hitna, iako je ogromna.
i zbog ra;lika il'nJCt1u proi;.vmlaca. kompanija 18M i Cray. BlucGcne/Ljc od pocctka l\lada pustnjc tnnoge vrstc klastcra, dve dominiraju: ccntralizovani i decentraliw-
bio komercijalni racunar: IHM se nadao dace veliki broj prodati biotdmoloskim, far- vani klastcri. Ccmralimvani klastcrje skup radnih stanica iii PC racunara, montiranih
mac~utskim i drugim kompanijama. Red Storm j~ izr•tdcn p<l -;pccijalnom ugovuru
na vclikuj polici ujednoj prostoriji. Ponekad se oni pakuju kompaktnije da hise us:e-
s laburaturijom Sandia. nuda Cray planira da pravi i manjt..: vcrzijc L.a prodaju. dcu proswr i du;l.ina kahlov:.L Racunari u skupu najct:Scc su humogeni i od pcrifc:rij-
Vizija !BM-ajt..: ja:-,na: kombinuj postujec'ajc;:gr•t u namcnski cip koji sc muze jef- sj._ilt 1-.umponcnata ubicrw imaju samo mrcinu karticu, mozda i disk. Gordon Bell,
tino proizvuditi. pusti gada radi malom brzinnm i puve7.i tajcdnrl vrlo velik hroj tak- konstruktm ral'unara PDP-ll i VAX, nazvao je takvc racunare hezglavc radne sta-
vih je-egara komur1ikacionom rmdum c,krunmt..: hrzinc. Stav lahuratorijc Sandia je
nicc (jcr ncmaju vlasnikcl.
takodc jasan, ali drugaciji: upolrchi muean kumcrcijalni 64-bitni pmccsor, projektuj Dc:centr;tlimvani Uastcri :-,e sastoje od radnih stanica iii PC racunara rasutih po
vrlo brz, namensl--i ruterski cip i uhaci dov ol.Jno mcnwriJc da ustvari\ m1wgu mo·-'niji 1;2radi iii tcritoriji organizacije. Yecina njih nc radi ni~ta tokom vise casova svakug
cvor m:go kod Gluc(}cnca/L. tako d,t ih hudc r•otrchnu m:tnje i da kumunikacijc iz~
cl<t;Et. n:trncitP nocu. Svi su obicno povezani u lokalnu mrcl:u. Najcesce su heterogeni
mcdu nJih bude hr!.a. i int<tju ,q_. rxrir'cnjskc uredajc, iako sc klastcr sa 1024 mi~a nc ponasa nista holjc od
Ovakvc odlukc ~u 'iC odrazilt: ina pak.ovanjc. Pi>Std jc IB:Vlnapr'wiu namcmki Cip kl:tst..:r•t bo. ijc·dnog misa. Va7.nije jc to sto mnugi od njih imaju vlasnike koji su za
knmhinujuCi pmccsur i rukr. posiigao jc vccu gu-,tinu pak,,v,mja: 1024 procesora po
S' C'Jc' r~JCunarc .:mutivno vezani i sa neodobravanjcm gledaju astronome koji pokusa-
onnaricu. Po~tu se Sandia upredc!i!a za 1-."merujabn procc"Jr-;J..i cip i 2----t CH mc- da n;t ttjiJl,,\·im racunarima ;,imuliraju Veliki prasak. Koriscenjc bcsposlcnih r;,cl-
morijc~ pu cvuru. mogla J<.' 'ipal--ovati :;am<> 'Jh radnih pnlCcsora p•.l m;ll,,ric'u. Zhog ·-f
nih sLmica z:t nhrat.ovanje klastera neinlstavno znaci da mora postojati nacin da sc
toga Red Storm 1auz.ima vi.se prostura i tnrsi ';i~:: 'nagc negll BlueCJcnc.'/1.. rn;!uvi ukLtnJlJU s racunara kada ih vlasnici racunara povuku. Puslovi se mogu pre-
U cg?uticnorn wetu r;tcun•trstva u naciPnalr:im Lti'<>r·;l[,,riprna. odlucuittc'i puka-
mc·:;uti. :di time sulh·er poo;taje slozeniji.
z.atelJ su pcrftJrm;msc. U ov om po;-lt.:du pnhcdui·-· l31uc(~c:JICiL _,a 7! TF/s prema ~I KLL,!Cri \U ~cslcl najmanJi multiracunari i obuhvalaJU od desetak, pa do mo:ida 500
TFh,, ali trcha irnati u vidu da jc' Red SltJrm siotc·m. pa hi dudetvanjem jus l'C rJ(un:tra. J\kdutim. takodc jc moguce napraviti vrlo vdil--i klasta od obicnih PC
10.36:-\ Optcruna (na pri;ncr. prdd·J>Ill n•t -~ ·; d·-.a jL'!.c>:raJ. '>atH!ia vcrov:ttntl
ra{>Jnar:L lil><•~lc je to madi,) na jeclan zanimljiv nacin koji cemo sad a analizirati.
mogla da povcca njcgove pcrt'orm;tnse n;t l-\.2 TF. !B,\1 bi lll•Jg"" 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
tchnolugij~l. Ukratl--o. \JPP superracunari sc Ju.:: ni,u ni prilJL~ili svojitn iizil:l-.im
...
( ;(J(JO!C

ograniCcnjin1a i u slcdeCin1 godin~un~lL-(c n~t')ta\ iu d:L r~:·~tu. c;, 'ugk _ic pc•prrlarni 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!1·k-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

'"
··A
·;:;r

~L
622 Poglavlje 8: Arhitekture paralelnih racunara 8.4 Multiracunari zasnovani na razmeni 623

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-
~~-·. Jedinica za
le.com, na osnovu!P adrese pozivaoca obezbedujc adresu najhlizeg centra. Pretrazivac proveru pravoprsa
tada svoj zahtcv saljc na tu adresu.
f
,~
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- ~ rdvark 154.3016
eoco
~b,110nP
973.67231
73403,89021

trima kako bi se njihov rad mogao nesmetano odvijati i u incidentnim situacijama. IC~bam"Jon 14783. 6349~

Shodno tome, za vrcmc velikih prirodnih katastrofa performanse ce biti losije, ali cc "----------
cak i tada Googlc racliti. Serveri :
Da biste bulje shvatili za~to je Google izabrau arhitekturu kakvu je iL.abrao, dobro
indeksa •
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
Slika S-41. Obrada '"ahtcova prctrazivacu Googlc.
Webu. Svaka odrcdnica navodi sve dukumente (Web str<.~ne, PDF datoteke, Power-
Point prczentacijL~ itd.) koji sadrze zadatu rcc. rednsledom rangiranja stranica. Rang Kada se rczultati vrate jcdinici za obraclu zahteva ( 8). prunadene stranc se urcL1uju
stranice sc oJredujc slozcnnm (tajnom) formulom. u kujoj ipak broj veza ka stranici prema rangu. Ako se utkriju potcncijalnc pravopisnc grcske (<J). one se najavljuju i
i njihovi rangovi igraju veliku ulugu. i'tovremeno se dodaju odguvarajucc rcklame (I 0). Googlc ;araduje tako sto prikazu-
Radi postizanja boljih performansi. indeks je podeljen na delove (engl. shurds) jc propagandne porukc oglasivaca zaintcresovanih za kupovinu odrcdcnih izraza za
koji sc mogu pretra/.ivati paralelno. Koncepcijski. prvi deo sadr/,i sve reci i; indel-.sa, prctrazivanjc (npr. .,hotel" iii .. kamkordcr'"). Rczultati se na kraju formatiraju u
a iza svake sleek identilikatori 11 najvise rangiranih dokumenata koji sadrze tu rei::. HT\TL (HyperText Markup Language- jczik za oznacavanjc hipcrtcksta) i salju ko-
Drugi deo saclrzi s\c rcci i identitikatore 11 slcdec'ih dokumcnata najvi.~ih po ran!!u i ri;,niku u ohliku Web strane.
tako redom. Kako Web raste. svaki ocl ovih del ova kasnijc sc mo/.c ra1hiti tak.o da pn i Znajuci sve ovo, sada mozemo da analiziramo arhitekturu Googlea. Vecina kom-
skup dclll\a sadr!.i prvih k rcci, sledcci skup narednih k reei i tako redom, da hi ,e pri panip bi. pri suocavanju sa ogromnom bazom podataka. gigantskom brzinorn preno-
pretrazivanju m,tvario jos veei paraleli/am. sa i potrehnm za visokom pmtJ.danoscu. nabavila B<lJVccu, najbrzu i najpouzdaniju
Scneri indek'a kao ndgovor vraL'aju skup idemi!ikator:t dokumenau t6) koji s.? oprcmu koja se mo/.c naci na trzistu. Googlc jc uradio upravo suprotno. On je kupio
tada komhinu1u prema iogickim osohinama zahteva. Na primer. ako je ;a tra/.enjL' Jeitine l'C r:tcunare skromnih pcrformansi. Mnogo njih. Pomocu njihje izg:radio naj-
bil,l zadatn +digital +capyh:tra +dance. za skdcci k<'rak se uLimaju sarn'' ickntilika- ICci svetski klaster sa,tavlJen od serijskih komercijalnih kPmponenata. Iza ovc odlu-
tori cJ,Jkumcnata koji sc popvljuju u sva tri skupa. U 1\'lll kPr::ku (7) pristupa se ,a- ke Jc stajao jednostavan motiv: optimizovati minos cena/performanse.
mim dukumcnrim:t da hi se izvukli njihuvi llchluvi, URL adrese i ndtt1 teksta uku Logika koja ga je upravdavala lezi u ekonumiji: serijski proizvedcni PC: racunari
pmnadenih ;adatih rcci. Serveri dukumenata u ccntrima s pmLlcima sadr;~c: bmjn~~ ko- vc,l!na su jcrtini. Vrhunski serveri to sigurno nisu. a jos manje multiprocesori. Tako,
pije cclog \Vchct. ~t\l cini stotine tcrabaJ!a p,llbtctka. Dnkument i .'m podeljc·ni na dok vriturbki server ima dva iii tri pula bolje performanse od stonog PC racunara src-
ddovc da hi ~e uv~lo vi,~c paralcli.cma u pn;tr·azivanje. lako obrada /ahlcva ne znaci dn]C k]ase. Oil jc ocllljCg:a skupJji 5-10 pula, StO ga cini manjc isplativim.
da sv:rki put !rcha pr,>(itatl ceo \Veb (cak ni dcsellnc terahajta na scrvcrima indcksct). l\ara1·no. jdtini PC racunari Lakazuju mnog:o cesce ml vrhunskih scrvera, ali i
sasvim jc nurmalno da kro2: ohradu prode I 00 ;\!8 podataka. ·,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

~~,..._ ____
62-t Poglavlje S: Arhitekturc paralelnih rai'unara SA Multiracunari zasnovani na razmcni 625

suftver za obradu grcsaka. prcstaje da bude vazno cia li se grcske javljaju sa uccsta- Optick1 kabl OC-1 2 - ----1
__.. ____ - - Opticki kabl OC-48
1
luscu od O.S'Yo ili 2% po gmlini- one se u uha slucaja moraju ohraditi. Gongleovo I
~._--_
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 I I
ij'

,.
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- Skrelnica gigabttnog
Ettlerneta sa 128 prikljuC:aka
l
/)~/
;i
vo ponovno pokrctanjc, sto ccsto rdava problem (elektronski ckvivalent lckarskog
~ ;r-;r---,---,-----r-.----'
sa veta: ,Uzmi dva aspirina i idi u krevet").
Tipican savrerncni Googlcuv PC racunar ima Pentium s taktom od 2 GHz. S 12MB \
~- /...-;//'
~ -->-_/ / //// / Dvogigabitne
>5<_-x):c:<~<
:~
,;,t

i'
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
\ <_r--v)<._
~- Ethernet veze

"' nije bas vrhunac tehnikc, ali je zato jcftin. PC racunari su smc:Stcni u kucista dchljine
~/~ ._ / "

1 ~-
X ~
i . . ...___[!
__
~: i
oko S em i po 40 narcdani u police sirine oko pola metra, jedan slog spreda, drugi od / ~/
!]-~ ~ ~- 0
c

pozadi. sto ukupno iznosi 80 PC racunara po polici. PC racunari na polici mcdusohnu


[!J l
J---< r =.=
.. l~.=
. =~I I ~.~l
I~~-1
: I
~~
:
Polica sa
80 PC racunara
su povezani komutiranom Ethernet vemm, a sama skrctnica (komutator) nalazi se ~= ""?.='__i I ~:C.~· =·=_ =
unutar police. Police u centru s podacima takodc: medusobno povczuJC komutirana
i_j_
Ethernet veza, za koju u svakom ccntru postojc dvc rezcrvne skrctnicc.
Organi~:acija 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-
-~~-l
[_d
. ' iI==J
I
=;~

L=~

~~~
I :
L=·=
I
I ~M¥¥
bJ l:J l:J I== I
• •• • • • •
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 PtLtLiv~mje
bilo koje skrctnice. Po~to svaka polica ima ct:tiri Vc'LC sa skrctnicom (dYe.'> prcdn.Jih
~~~n/
!
I'==
: I
[:]
5~
:
=--~
~~
'e:::"'
L:J
=C"l CJ ~
~I
=
40 PC racunara i dvc sa 40 r<tl:·unara sa L.adnjc stranel. cia hi hila potpuno izbal:·ena it.
Slika X--12. TipiC·an Guogleov klasler.
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 pnlic·c. mogu sc podri<tti J,, tJ-lpulice. lJ; l-'rva ~l<tVka L.n<Jl:i da treba irnati softvcr otporan na greske. C'ak is najboljum oprc-
80 PC racunara po polici. centar t.a poJatke moic irnati do 51 2U PC racunara. Narav- nmm. Lhia imatc veliki bmj kmnpunenata, neke od njih ce otkazivati i softver mora
no. police ne moraju sadr.lati has SO racunara i skr,·tnicc mogu imati m.mjc· ili vi.~c: ocl hili u ,l<l!lju da to prevazidc. Bez oh;.ira na tu da li imate Jedan iii dva otkaza nedcljno,
128 prikl.Jucaka; vrednosri l;,,)Jc smu navcli s<llllll su tipicne ;a Clt>ugbJv kLhtcr. ,of;' .,:r mor.t biti u stanju da obradi greske u sistcmima ovc vclicine.
Jcdna ud kljucnih stvari jc i gus tina snagc: si'-.lc'llH TipiC'an PC r<>Cli:Jc~r rro~i ul"l IJru;a suvka Ln;,C:i cia i hanlver i oothcr treba da hudu visukoredunc!antni. Time se
120 W. a LO je oko to kW po pulici. Oko r•oiice Jll(ILl hili har J m2 pro~itlra da bi j•Jj ilt? ]1lli 1 PijS<t\a Sl[lll(l lltpurnust 11<.1 grcSkC, Vee SC pOVCCaVa j protok podataka Knl/ Sl-
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- ,t;:lli. L' :,lucajJt Gnogk,t. svi PC racunari, diskovi. kablovi i skretnicc repliciraju se
r<unetri daju gu,tinu snage od prc:ko Jt'OO W/m 2 . \,:,'ina ccntara /.a podarkc pru;d.to- vt;e ;1ula. Osim tug<~, indc:ksi i dokumcnti \C dele na dcluvc koji sc vi;e pula UlllllOZa-
vana Je /.a 600-l 200 \V/m 2 . pa se rnur:tjll preliu/ell poscbne mere za hLtcknje polic·.t. u svak,)m ct·nl ru za pndatkc. a i sami ccntri sc rcpliciraju.
CJo,lglc je naucio tri stvari koje su kljucnc "' drf'anj·-~ ma,ivni!J \'"·b '"rver<l: Trc:c;t -;ravkl.Jt' poolc'dica prve dve. Ako je -;istcm ispravno projektovan za borbu
I. Komponcnte cc sc: neizosldvnn kvariti. pa t<l unaprcd planirajte. s grc:~kama. kit~'ll' <•liJC skupih kumpunenata, kao sto su RAID iii SCSI diskuvi.
.:!. L:mJto/jte svaku kPmponemu da bi uvek biLl rao,poloziva. a rroto!-..r•u,L:L!Lt pugr'-<,no je. C:.tk i takvi diskov icc otk.tzivati. ali putmsiti ill puta vise novca da bi se
osta<l neizmenjen. ucc:sLii•lst utkazi,·;mjct samu prc:pulovila. !usa je ideja. Bulje je kupiti 10 puta vise
ktrdvcr<• 1 i''lriti :;c 'gr~·,;kanu kada 'e clogude. Akn nista drugo, vise hard vera cc daLi
3. Optimirujtc odnos c:en<u';xrfumtdnsc. .l
l•oijc: pc:rl.<'llll<llbc kadc~ ·" e buclc radilo.
~,! Vise int,,rnl.tcija D Go<lgku putrazitc kud Barrosua ct al. ( 2003) i Ghc:mawata ct al.
'~._·,
·y,
(200.~).

~:;;

~~
i__
Poglavlje 8: Arhitekture paralelnih racunara 8.4 Multiracunari zasnovani na razmeni 627
626

8.4.4 Komunikacioni softver za multiracunare MPI - Interfejs za prosledivanje poruka


Prilicno dugo najpopularniji komunikacioni paket za multiracunare bio je PVM
Za prograrniranje multiracunara, tj. za odrzavanje komunikacije izmedu procesa i
(Parallel Virtual Machine - paralelna virtuclna masina) (Geist et al.. 1994; Sun-
sinhronizovanjc, potreban je specijalan softver, obicno u obliku biblioteka. U ovom
derram, 1990). Medutim, poslednjih godina u velikoj meri ga zamenjuje MPI (Messa-
odcljku rcci cemo ponesto o torn softvcru. Isti softverski paketi uglavnom se izvrsa-
ge-Passing Interface - interfejs za prosledivanje poruka). MPI je mnogo bogatiji i
vaju ina MPP multiracunarima ina klastcrima, pa se korisnicki programi mogu lako
slozeniji od PVM-a, s mnogo vise poziva bibliotekama, mnogo vise mogucnosti i mno-
pr.:nositi izmedu ove dve platforme.
go vise paramctara po pozivu. Prvobitna verzija interfejsa MPI, sada zvana MPI-1, do-
Sistemi koji prosleduju poruke imaju dva iii vise proccsa koji se izvrsavaju neza-
punjena jc 1997. godine do verzije MPI-2. U nastavku cerno dati vrlo kratak uvocl u
visno jeclni ocl drugih. Na primer, jedan proces moze da generise podatke koje upo-
verziju MPl-1 (koji saddi sve osnove). a zatim istaCi staje clodato u vcrziji MPI-2. Vise
trebljava neki drugi proces iii vise njih. Ne postoji garancija da ce primaoci biti
informacija o interfejsu MPI potrazite kod Groppa et al. ( 1994) i Snira et al. ( 1996 ).
spremni da prime podatke onda kada ih posiljalac ima jos, zato sto svaki od njih
MPI-1 ne uccstvujc u pravljenju procesa i radu s njima. kao PVM. Korisnik trcba
izvrsava sopstvcni, nezavisan program.
cia pravi procese sluzeci se lokalnim sisternskim pozivima. Kada ih napravi, procesi
VeCina sistema za proslcdivanjc poruka irna dve osnovnc metode (obicno su to po-
se svrstavaju u staticke, nepromenljivc grupe, a MPl radi s tim grupama.
zivi bibliotcci), send i receive, ali je s njima moguca razlicita sernantika. Tri glavne
MPl se zasniva na cetiri glavna konccpta: kmnunikatorima, tipovima pnruka.
vertije su
komunikacionim opcracijama i virtuelnim topologijama. Komunikator je grupa pro-
I. Sinhrono prosledivanje poruka. cesa zajedno s kontckstom. Kontckst je oznaka koja nesto iclcntitikuje (npr. huu
2. Baferisano proslectivanje poruka. izvrsavanja). Kada se porukc salju i primaju, kontcksl pomaze da se ncsrodne poruke
3. Slobodno prosledivanjc porub. ne pomdaju.
Postoji vi;e tipova poruka. pri ccmu su za njih pod6.ani mnogi tipovi pndataka.
Pri sinhnmom prosledivanju poruka. ako posiljalac izvrsi operaciju send. a pri-
ukljucujuci znakove. kratke, obicne i dugacke ccle brojcvc. brojeve u furmatu pokret-
malac jos nijc izvrsio operaciju receive, posiljalac se zaustavlja (blokira) dok primalac
nog ;.arcza, obicne i dvostruke lacnosti itd. Od ovih tipova podataka mogu sc izvoditi
ne izvrsi operaciju receive, kada se kopira poruka. Kada posiljalac nakon poziva ponovo
i drugi tipovi.
dobijc kontrolu. on zna daje poruka poslata i ciaje ispravno primljena. Ova metoda ima
MPI podriava sirok skup komunikacionih opcracip. Najosnovnija od njih korioti
najjcdnostavniju scmantiku i za nju nije potrcbno baferovanje. Ozbiljna mana joj je to
se za slanje poruka, otprilike ovako:
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- MPI_Send(bafer, broj, tip_podataka, odrediste. oznaka, komunikator)
malac spreman, nna sc neg de baferujc (na primer. u postansko sanducc) dok je prima- Ovaj poziv salje sadrzaj ha[l'm koji cini odgovarajuCi bruj stavki odrcdenog
lac odatlc ne preuzme. Na taj nacin. knd bafcrisanog proslcdivanja poruka posiljalac tipa_podutaka ka odredi.\tu. Pomocu o;nake pri malac ce moci da -;aop~ti kako hlK'e
,. mo/.e da nastavi rad posle operacijc send, cak i ako jc prima lac trenutno zauzct. Po.~ to da prima samo poruke s tom oznakom. Poslcdnje polje saopstava u kojoj sc grupi pm-
t· je puruka sl varno poslata, pusiljalac slobodno odmah mo/.e da koristi bafer. ccsa nalazi odrediste (poljc odrcdUite je samo indcks u listi pruccsa L.aciate grupc ).
Ova sema srnanjuje vremc tokorn kojcg posiljalac treba cia ceka. U osnovi, posi- Odgovarajuci poziv za primanje porukc glasi:
ljalac moze da nastavi rad cim sistem posalje poruku. Mcdutim, posiljalac sada mora
MPI_Recv(&bfer. broj, tip_podataka, izvoriste, oznaka. komunikator, &status)
da garantujc da JC poruka ispravno primljcna. Cak i ako jc komunikacija stopustotno

IIt·
pouzdana, primalac moze da sc pokvari pre ncgo sto dobijc poruku. ion objavljujc da primalac ccka poruku odrel1enog tipa od odrcdcnog izvora i sa odrc-
l'ri slohodnom prosledivanju puruka, posiljalac moze da nastavi raci cim uputi denom oznakom.
poziv. Bihliotcka u ovom slucaju sanw l)bave~tava operativni sistem dajoj poziv upu- MPI pmlr/.ava cetiri osnovna kl>munikaciona rc:l.ima. Rdim I je sinhnm i u njemu
ti kasnije. kad bude imala vrcmena. Zbug toga posiljalac prakticno nije ni sa cim .ell posiljalac ne mozc poceti da saljc podatke sve dok primaiac nc uputi poziv MPI __ Recv.
ograniccn. Mana ove mctode jc slcdcea: kad posiljalac nastavi rad poslc opcracijc Rdim 2 je bakrisan i u IlJCillLI prethodno ogranicenJC ne vah RL·~im 3 jL~ standardni
send. on nc trcba da koristi bafcr za porukc. pu<to poruka l11l)7da jos nije posiata. i zavisi od implemcntacijc. stu znaci da mole da hude sinhron iii bafcrisan. Rc/im -1-
Posiljalac mora nckako da sazna bda ponuvo smc da koristi bafcr. Jcdna idejaje da 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-

~I
powve i pita sisten1. Druga je cia dobiJe sistemski pre kid kada se bafcr oslobodi. Ni-
jcdna ml njih ncec uprostiti ~oftver. rajucoJ i ncblokirajucoj verziji. sto ukupno cini osam osnovnih rcL:ima. Za primanje
U nastavku cemo ukratko razmotriti sisteme za proslcctivanjc poruka (MPI) popu- sI poruka postojc samo clvc varijantc: s blokiranjcm i be~: blukiranja.
larne na mm>gim multiracunarima.

~
S.4 Multiracunari zasnovani na razmeni 629
628 Poglavlje S: Arhitckture paralelnih racunara

Grupa procesora Grupa procesora Grupa procesora


MPI podrz,ava kolektivno komuniciranje, ukljucujuci neusmereno emitovanje
( engL broadcast), rascjavanjc/prikupljanjc, totalnu razmcnu i met ode agregacije i ba- Q,1t2'3i4i5t617 u l I;;,, .j i 'II J Oi I ~
2, 3!4151617
rijerc. U svim oblicima kolektivnog komuniciranja svi procesi u grupi moraju da upute -
isti po.~:iv s knmpatihilnirn argumentima. 1\ko se tone uradi. nastaje grcska. Tipican
- 1
I 4
7
- 1
I 4
7
oblik kolektivnog komuniciranja postoji za procese organizovanc u obliku stabla, kroz - 3 -
3
kojc vrcdnosti napreduju ml Ji,,tova navisc ka korenu stabla i u svakom koraku prolaze 6
5 91 '------1
"'
E 1 -
5
ncku obradu (npr, kumulativuo se ,abiraju iii se nalazi njihov tekuci maksimum).
>"' -- 2 l 8
I
Cctvrti osnovni konccpt intcrfcj,a \!PI jeste virtuelna topologija, prema kojoj sc 6 _:_ 91
l
2
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

-
8
I -

-
komuniciranje, - -
U vcrziji MPI-2 dodati ,u dinamicki proccsi. pristupanje udaljenoj mcmoriji, ne- - -
-
hlokir~uucc kolektivno komuniciranje. skalabilna podrska za ulazno-izlaznc opcraci-
(a) (b) (c)
JC, ohrada u realnom vrcmenu i mnogc drugc nove mogucnosti koje izla;:c iz okvira
godinama
(lVC knjigc. U krugovima ptl!.navalaca, se vodi zucna diskusija o MPI
Slika S-43. Ra,poredivanje po,Jova u kl:"tem (a) FIFO, (b) BeL HOL hlokiranp, (c) Cklapanje,
i l'V:-.,L 7agovornici PVM nacina kazu cia se PVM lakSe uci i laksc koristi, Oni drugi o~~nCcno podrul:jc oznaCava s!ubodne procc~ore.
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 8.4.6 MemorUa deljena na nivou aplikacijc
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 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
8A.5 Rasporedi\ anjc posla
deljene memorije, cak i kada ona rcalno ne postoji. Time hi se objcdinilc prednosti
l'rogr:uncri KtJ_ji kori,,tc intcrfcjs :V!Plmogu lako da prave poslove u kojirna se ko- dva rcsenja: veliki. ali jeftin hardver (naravno. po cvorul. uclruzen s lakoc•lrn pro--
ri,ti vi\c pr<iCC"'ra ftlkom duzcg perioda, Kada ra.~:liciti korisnici uputc vise nezavi- gramiranja, Ovo je cilj svakog paralclnog progratniranja,
sniJ, z:tlitcva. i -;vaki trazi drugaciji broj proccsora za drugaciji vremenski period, lako se rnemorija dcljena na nivou arhitekture ne pona;a bas najbolje pn uv e(,t-
Pud:l kL:stcr 111<>r:, imati ntehani;am za rasporedivanjl:' kada ce se koji posao obavljati, vanju, mnogi istrazivaci su zakljucili da mozda postojc drugi nal'ini da se pnst:gn<: isti
Prcm:t JJ:ljjcdrw.,;avnijem rnodclu, rasporedivac poslova zahteva da svaki posao cilj, Na slici X-19 vidirno da postoje i drugi nivoi na kojimll -;e mo;',c uvc-;ti deljcna
ncLt P"t:c'h,tn hcJj procc:,ora. Poslo\i ;,t: tada izvrsavaju strog:im f"'FO rcdoslcdom, kao memorijct, U sleclecirn odcljcima r~wnotriL'crno nckoliko nacina pomol'u kujih sc
~to jc~ ;'rik.:c/:mn n<~ ;,li.:i X--1-3(a). Posto se posao zapocne, proverava se cia lije ostalo do- deljcna memorip mo;:;e uve,ti u model programiranja na multiracunaru. ;ako nc
' uij no pr"cc,ord 1:1 'ikdeci pusao koJ i (·eka, Ako jest e. i on L,apocinjc rad, U suprotnom, po~toji na ni vou hard vera,
,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 Distrihuirana deljena memorija
!rJ ,,•,:nn ::rupa proccsura), ili hi mogao imati ncku clrugu kombinaciju, Jcdnu t>d l.lasa sistema deljenja memorijc na nivou apli~acijc prcd;,tavlja sist~m
1-l<llii ai;2nrium ;::~ ra:-.porcdivanje i;bcgava HOL blokiranje preskacuci po:-.love zasnov an na straniccnju, On je poznat pod imenom distrihuirana deljena mcmorija
k")i sc· rr.'liltliJ" r1c mugu obaviti i birajuci prvi posao koji moze. Kad god se pw,ao (Distributed Shared J'vlcmmy, DSl\-IJ, Zamisao jc jednostavn~t: ;,kup pn>CL''ora na
/:l'- ;<;i. r~·,; P<"i'J' a J..,,jt C·ekaju proverava se redosledom FIFO. Ovaj algoritam daje
multiracunaru deli zajednicki. ostranicen prust<X virtuelnih adreca, U najjcdrw;tavni-
rc·zr!ltat ptrkaLll1ll:l ;!ici 0-43(bJ, joj vcrziji. svaka stranica sc (uva u mcmoriji jednog JXOcesor~L l'<a ,Jici 8-4-1-:~.) \ idi-
J,,, i tnc!i:!lliLarn za rasporedivanje trazi od poslova cla opisu woj oblik. tj, mo dciJen prostur vinuclnih adresa koji sc sastuji ud 1<1 stranica, raspndcljcuil1
k<>!Jl,,,' cc !'r"c,_·;,ur:l !"'ri;;titi tokom ~og perimla vremena, Kada ima tc informacijc,
izrncdu cctiri procesora,
ra· ;·', f'':' '; · ,,;: il•-" ,, ,, ,, mo!c pokusat i da popuni pravougaonik proccsori-vrerne, Ukla- Kada pn,ccsor rcfcrcncira 'tranicu u svojoj lokalnuj memPriJi. opcracije cir:mj:l iii
i':;n_;•: jc' I'' ·<c·h,,;, cJJL:hiHl kada se tukorn dana Ladaju poslovi koji treba da se iLvrsa- upisivanj:t obavljaju se hez ikakvog J:J,toja. :V1edutim. kada prPcc·sur :·cfercncir.t ·tra-
' h .. :..,"" il< "';. ;:~J..u da rasporedivac unaprcd ima sve infonnacije o poslmima nicu u udaljcnoj mcmuriji. dolazi do grdkc ,tranil:enja, Tad:J sc ncJt>staJuca str:mica
i m,,;e d~t iil J/\T~:tl:l optimalnim recJu-;ledom, kao ~to je prikazano na slici 11-4_:\(c),
630 Poglavlje H: Arhitekture paralelnih racunam H.4 Multiracunari zasnovani na razmeni 631
--------------------------------

ne uzima s diska, vee izvrsni iii operativni sistem salju poruku cvoru koji cuva stra- Globalno deljena virtuelna memorija koja se sastoji od 16 stranica
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-
~ Memorija
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- CPU 0 CPU 1 CPU 2 CPU 3
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 Mreza
citanje (stranica 10) prikazanaje na slici 8-44(c). (a)
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 [9J[I][I] [2]00 00El @]@]
sarno jedna kopija stranice, stranica se stalno prcnosi. sto je situacija poznata kao laz-
no deljenje (engl. false sharing). 0Ci2J 0 @]~
CPU 0 CPU 1 CPU 2 CPU 3
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
I I I
Mreza
1
·' upisivanjc mogu istovremeno biti u vise cvorova. ali proccs pre upisivanja mora izvr- (b)

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. [9J[I][I] [2]00 00El @]@]
Druga optimizacija izvrsena u sistcmu Treadmarks jeste slcdcca: svaka stranica u
0Ci2J 0~ @]~
ku.1u se moze upisivati. na pocctku se preslika u rezimu samo za citanje. Kada se u
CPU 0 CPU 1 CPU 2 CPU 3
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
I I -I I
taku d,t naredna upisivanja mogu teci bcz zastajanja. Kada kasnijc nastane promasaj Mreza
(c)
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. Slika 8-.f-1. Prostor virtuelnih adrc:sa koji se sastPji od 1(, slranica raspllrcdc:nib izmc:rtu cetiri
Kad<I nastane promasaj stranice. ncdostajucu stranicu trcha pronaci. To se moze cvnra multiracunara. (aJ Pocctna situacija. ib) Pu.sto t•roccsor 0 rekrcncira stranicu 10.
(C) Posto proccsor I rcferc:ncira .stranicu 10. ;a koju "11" ovrk prctpostavili dajc salllO /a c·itanJC.
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 ~to jc DSM samo Linda
soft vcr.,ka implcmentacija mehanizma NUMA iii COMA. pri ccmu se svaka stranica DSM sistemi zasnovani na straniccnju. kao ~tu ~u IVY i Treadmarks. k<Jriste
lrL·tira k:to red kc!ia. Mi'viU hardver za obradu zahteva za nedm.tajuce stranice. lako slanje ra~liLt izmedu
DS1\I je vruca istrazivacka tcma. Mcdu zanimljivc takvc sisteme spadaju stranica umesto celih stranica dosta pomale. i dalje stoji cinjcnica da su stranice ne-
CAS!li'vlliR.E (Kontothanassis. et al., 1997: Stets et al.. Jl)l)7). CRL (Johnson et al.. primdna jedinica za dcljcnjc. tako da su poJ.;usani drugi pribzi.
Jl)'!5). Shast't (Scales et al., 19'!6) i Treaclmarks (Amza. 1996; Lu et al.. Jl)l)7). Jcdan takav prilazje sistem Linda koji za proccse na muitiracunarima ube;:bcduje
visukostruk.turiranu, distribuiranu deljcnu memoriju (Carriero and Celcrntcr. I 9})() ).

";~.Ji~E"
632 Poglavljc 1!: Arhitckturc paralclnih racunara S.4 Multiracunari zasnovani na razmcni 633

Toj memoriji sc pristupa pomocu malog skupa osnovnih operacija koje se mugu do- Formalni parametri, koji se prcpoznaju po znaku pitanja iza koga sledi irnc pro-
dati postojccim programskim jczicima. kao sto su C i FORTRAN, cia bi se dobili pa- menljive ili tip, nc uccstvuju u porcllenju (iwzev pri proveri tipa), mada se oni koji
raklni jezici, u ovom slucaju C-Linda i H)RTRAN-Linda. sadrie ime promenljive doclcljuju posle uspcsnog poredcnja.
Op~ti konceptna kome sc £asniva Linda jcste apstraktni prostor torki (engl. fllJ!le Ako odgovarajuca torka nc postoji, proces koji je uputio poziv privrerneno se za-
space). koji je global an za citav sistem i pri,tupacan svim proccsima u njemu. Prostor ustavlja dok neki clrugi proces ne unese t~edostajucu torku, a tada se automatski budi
torki slican je globalnoj cldjenoj memoriji, samo ima odrclknu ugradenu strukturu. da bi prihvatio novu torku. Cinjcnica da se proces automatski blokira i deblokira,
Prostor torki saclrzi oclreLtcn broj torki (engl. tuples). od kujih svaka sadrzi jedno ili znaci sledcce: kada jedan proccs treba cia isporuCi torku, a drugi da jc preuzme, nije
vise polja. U jcziku C-Linda tipuvi pulja nhuh~e;rt:tju cclc brojcvc, dugacke ccle bro- vazno koji cc od njih biti prvi pnkrenut.
jeve j brojcve ll ronnatu pokrctnog ZJICI.<l, Llll i ~JOlCllC tipove, kao sto su nizovi Osirn osnovnih operacija out i in, Linda ima i operaciju read, koja je is to sto i opc-
(ukljucujuci znakovne) i strukture (ali ne drugc torke). Na slici 8-45 kao primer su racija in, osim sto sc posle citanja torke ne uklanja iz prostora torki. Postoji i osnovna
prikazane tri tnrke. nperacija eval, koja omogucava p,aralclno odreLtivanje njcnih paramctara i smcstanje
("abc", 2, 5) rczultujuce torke u prostor torki. Ovaj mehanizam se mozc iskoristiti za bilo kakvo iz-
("rnatrica 1 ", 1, 6, 3.14) racunavanje. Na ovaj nacin se u sistemu Linda prave paralelni proccsi.
("porodica", "je sestra", Karolina. Elinor) 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.
Slika 8--t5. Tri Lind inc ltlrkc.
rusk bug) koje treba obaviti. Glavni proccs zapocinje racl tako sto izvrsava pctlju koja
sadr?.i naredbu
S torkama su moguce (-etiri upcracije. Prva. out, smcsta torku u pmstnr torki. Na
pn mer. out("task-bag". posao);
out("abc". 2, 5): i koja pri svakom ponavljanju izbacuje u prostor torki drugaciju cletiniciju posla. Sva-
postavija torku (,abc". 2. 5) u pmstor torki. Pulja operacijc out su konstante, pro- ki radnik pocinjc posao tako sto u;.ima torku sa opisnm posla pomocu narcdbc
mcniJiVe iii i/.ra7.i, kanunarcdbi in("task-bag", ?posao):
out("matnca-1". i, J. 3,14); 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-
kujum ,c gcncris,: tmLt :, cc·tiri polja, pri cemu :-,u vrednosti drugog i treceg polja
udrcdcnc tckuc'itn vrcdnt>,tima promcnljivih i ij. ki deli izmedu radnika i svaki radnikje sve vremc zaposlcn, a sve touz rclativno malo
beskori~nog rada.
Torkc ,;c iL pnbl<>r:t turki u:it:tvaju osnovnom opcracijom in. Njih nc identitikuje
Postoje razliCite impkmentacije sistema Linda na multiracunarima. L' 'vima jc
imc iii :~Llresa. \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 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-
1n("abc". 2, 7 i);
vanje torki takodc je vazna lema. Sve ovo je sire objasnjeno kod Bjornsnna ( lL)9_,).
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- Orca
-.;ta\·kum rL: je i ceo bn~ ). :\kn s~ pronade. tmka se uklanja iz prostora torki, a pro- Nesto drugaciji prist up memoriji deljcrwj na nivou aplikacije multiml'unara .JCstc
n:c·n iJ i "' >J l -.;c d,1ck Ij UJC \Jc,ilwst trc.:ccg polja. U pmcdivanjc i uk lanjanje su atomskc cla se umesto torki. kao jeclinica dcljenja koristc potpuni ohjekti. Objckti se s~1stujc uJ
tlJ'•_-racijc. per c'c: "d clv"ctl';·,lc.'Sa 1-.uji istovrcmcno izvrsav:lJll istu llpcraciju in, samo je- unutrasnjeg (skrivenog) stanja i metoda za rad s tim stanjem. Kada 'ic programcru nc
dan ud lljih uspcti. 1::.1,, s..: nc:cc: dc:siti ako po-;tuji vise torki koje odgovaraju pore- dopusti da direktno pristupa stanju. otvaraju se mogucnosti L.a deljcnje podataka iz-
dcnju). Prostor i<'rki ll1<l7L' cak s:rdr.'ati i vise kopija iste torke. meLlu racunara koji nemaju fizicku deljenu mcmoriju.
;\lgtlri::ml _;a pPrcrknjc.: ~-;,,ji kPt·i,;ti opcraci_ta in sa:,vimjc Jednostavan. Polja osnov- kdan od sistema zao,novan na objcktima koji stvara iluziju deljcnc memmijc n<
nc ;n_ ;v :tn;t ~abion. 1 !;Dncc·pcijski) se porede sa odgovarajucim polj ima sv ake multiracunaru jeste Orca (Bal. 1991: Sal ct al.. 1992: Bal i Tanenbaum. JLJ~:-l). Ore<
lorkc' u prtl'i~• ll·u tu1·k1. Po:,J:rp~::l_;•: sc dc.:;ava ako su istovremeno ispunjena tri uslm a: je standardni programski jezik (zasnovan na jcziku Modula 2l kome su dodatc dvc
I. S,rl'!"n i lurk:t irnaiu isti [W!ja. nove osobinc: objd.ti i spo;,obnost pravljenja novih prucesa. Ohjekat jc;:ika Orca jc
' Tipu\ i \HJgnv:tr~tjuCi~J pnlja ~u _j..__·dnaki. apstraktan tip pmlataka, analogan Javinim ohjcktima ili Adinim paketima. Onl-..afhll
S\·ah~t knn:-.t~tnt~l ili
lira interne strukture pmlataka i mctodc koje JC napisao korisnik, zvane operaci_je ''
u ~ablonu odgu\ ara svom parnjaku u torki.
,tl:..

jj:
~·I
~
634 Poglavlje 8: Arhitekture paralelnih racunara 8.4 Multiracunari zasnovani na razmeni 635

Objekti su pasivni, sto znaci dane sadrze prograrnskc niti kojima bi sc mogle slati po- Orca ima naredbu fork za pravljenje novog procesa na proce~oru koji zada kori-
ruke. Umesto toga, procesi pristupaju intemim pouacima objekata pozivajuci met ode. snik. Nov proces izvrsava proceduru navedenu u naredbi fork. Novom procesu se
Svaka metoda jezika Orca sadrzi listu parova (uslov, blok naredaba). Uslov jc lo- mogu prosledivati parametri, ukljucujuci i objekte, sto jc nacin distribuiranja objekata
gicki izraz koji ne sadrzi sporedne efekte a prazan uslov znaci is to sto i vrcdnost ta6w. izmedu racunara. Na primer, naredba
Kada se pozove operacija, izracunavaju se svi njeni uslovi proizvoljnim redosledorn.
fori in I .. n do fork ndto(s) on i; od;
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- gencrise nov proccs na svakom racunaru, od I don, koji na svakorn od njih izvrsava
redaba koji slcdi iza njega. Slika 8-46 prikazuje objekat stek koji ima dve operacijc, program ne§Io. Posto se ovih n novih procesa (i proce:, roditelj) izvrsavaju paralelno,
push ipop. svi mogu da preuzimaju vrednosti s deljenog steka s i da ib 'tavljaju na njega, kao da
Stek za implementaciju objekata; sc svi izvrsavaju na multiprocesoru s deljenom memorijom. lzvrsni sistem treba da
vrh:integer; # smestanje steka odrzi iluziju deljene memorijc; kada nje u stvari ncma.
stek: array [integer O.. N· 1] of integer; Operacije s dcljenim objektima su atomske i dosledno postuju redosled izvrsa-
vanja. Ako vise proccsa obavljaju operacije nad istim deljcnim objcktom skoro
operation push(stavka: integer); # funkcija koja ne vraca nista istovremeno, sistcrn garantujc da cc odahrati neki redoslcd ida ce tada svi proccsi vi-
begin deli raj redoslecl clogadaja.
guard vrh < N- 1 do
Orca intcgrise ddjenc podatke i sinhronizaciju na nacin koji ne postoji u DSM si-
stek[top] :~ stavka; # stavi stavku na stek
vrh :~ vrh + 1;
stemima zasnovanim na straniccnju. Kod paraklnih programa potrcbne su dvc vrstc
# uvecaj pokazivac steka
od; sinhrnnizovanja. Prva sc mlnmi na medw.,obnu iskljucivost, kako dva proccsa nc bi
end; istovrcmeno izvrsavali istu kriticnu sekciju. U jcziku Orca, svaka opcracija nad
ddjcnim objcktom ima osobine kriticnc sekcijc jer sistcm garantuje da cc rezultat hiti
operation pop(): integer: # funkcija vraca ceo broj isti kao da se sve kriticnc sckcijL i.cvrsa\aju p<'jcdinaC:no (tj. jcdna za drugom). Sa
begin ovog aspckra, Orca objckat lici na distribuirani oblik nmnitora (Hoare, Jl)75).
guard vrh > 0 do # zaustavi ako je stek prazan !)ruga vrsta sinhroni.covanja odnosi se na uslove. pri cemu sc proces blokira sve
vrh :~ vrh - 1: # smanji pokazivac steka
d<lk sc ne ispuni ncki uslov. U jcziku Orca obavlja :,<.: sinhnmizovanjc uslova. U pri-
return stek(vrh]; # vrati gornJU stavku
od; nwru sa slike ~-46 proce;, koji poku'.ava da uzrnc stavku s praznog steka bice zausta-
end; vljcn svc dok stck vise nc budc pra.can.
lzvrsni Orca sistcm radi sa umno/avanjcm ob_Jckata, tc njihovim prcnosenjcm na
begin drugc racunarc, vodi racuna n doslcdnosti izvrsavanja i poziva opcracije. Svaki objc-
vrh := 0; # inicijalizovanje kal :,e muzc rwci u _1cdnum ud ch a stanja: jcdinstv en a kopija ili unmo/.cn objckat. Ob-
end; jebt u stanJLI jcdin.stvcnc kopiy postuji sanhl na jednorn racunaru, pa svi zahtcvi koji
Slika ll--16. Poj.:Jnostavljen ORCA oh.Jch.at stck. .sa intcrnim puuacima i dvc <>pcraciJ<-'.
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
Kada je slekjcdnom dcfinisan, mogu sc dcklarisati promcnljive tug tipa npr. racun skupljl'g aluriranja. Kada sc' i;\ r~ava neka operacija kuja rncnja umnozeni ob-
jt:kat, ona najprc ill<Jra d:1 duhijc rnlni bruj ()d ccntralizuvanog procesa koji ih deli.
s, t: stek;
Zatim sc svakom racun:1ru koji sadrl.i kopiju ,1hjd.:ta saljc pnruka da izvrsi opcraciju.
cime sc stvaraju dva objekta tipa stck i promcnljiva n-!z ll oha tniciplizuje sc na Po;io :-,ve tc nperacijc a/uriranja rl{1SC rt·dnL brPjevc, svi raCunari s~uno izvrSavaju
vrcdnost 0. Celobrojna promenljiva k mo£c se staviti na stek pm1wc'u naredbc upcrac.:ijc: datim :"t:do',kdum, ~·imc -;c garanrujc d<lslcdnost redusleda izvrsavanja.
s$push(k);
Globe
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-- Vecina DS:\'1. Linda i Orca sistema itvrsavaju sc na lokalnim si:-,tcmima, tj. unutar
zgradc iii organi;:acicliH'~ podrucja. ivkdutim, si,L<clll mcmorije dcijcnc na nivou apli-
kacijL mo/.c se mpraviti ina multiracunaru knji radi globalno. U sistcmu Globe, objekat
636 Poglavlje 8: Arhitekture paralelnih racunara SA Multiracunari zasnovani na razmcni 637

se moze pronaci u adresnom prostoru vise istovremenih procesa, koji se mozda izvrsa- 1 mre!.e sa usmeravanjcm kroz tune] (engl. H'onnhole). U komutiranirn mrel.ama
vajuna razlicitim kontinentima ( Kermarrec et al., 1998: Popescu et al., 2002; Van Steen kasnjcnje je £bir vremena podc;avanja i vrcmena prenu:,a. Da bi sc kolo pmlcsilo,
et al., 1999). Da bi ptistupio podacima deljenog objekta, korisnicki proces mora da mora se puslati prohni paket koji rezervise rc:sursc i o tome izve~tava izvoristc. Kaua
prode kroz njcgove metode. koje razlicitirn objektima ornogucuju razlicite strategije se to obavi, moze se sklapati paket s podacima. Cim on buuc spreman, hitm·i mogu
implementacije. Na primer, jcdna od mogucnosti jc postojanje jedinstvenc kopije poda- potcci pun om brzinom. Ako je ukupno vreme podesavanja T,., veliCina pakcra p hito-
taka koji se dinamicki /.ahtevaju po potrebi (c!obro za pnc!atke koje jedan vlasnik cesto va, a propusni opseg b bitova/s, kasnjcnje u jcdnom smeru jeT,+ plb. Ako jc kulo poL-
az.urira). Druga rnngucnost jc Ja svi podaci postoje u svim kopijama objekta koje se puno dvosmcrno. onda nema vremena pmlcsavanja za odgovor, pa je minimalno
a:i:uriraju prcko poruka slatih pouzdanim protokolorn £a visesmerno slanje. kasnjenje za slanje pakcta od p bitova i dobijanje odgnvora ou p bitova 7~ + 2 f! /b s.
Globe se srnatra pomalo amhicioznirn sistemorn jcr mu je cilj Ja se prosiri na mi- Pri komutiranju paketa nije potrebno unapred slati probni paket do odredista. ali
lijardu korisnika i bilion (mo:i:da, mohilnih) objekata. Pronalazenjc objekata, rad jos uvek postoji interno vremc potrebno za sklapanje paketa, ~r Yrcme prc:nosa u jc:J-
s njirna i uvccavanje sistema najva/niji su poslovi. Globe ih obavlja tako sto odrbva nom smcruje 7;, + p/b, ali je to.samo vreme do Iaska paketa u prvu skrctnicu. U samoJ
opsti okvir u kome svaki objekat rnoze da ima sopstvenu stratcgiju umnozavanja. skrctnici post,lji dc.linisanu kasnjenjc. recimu 7~1 • a zatim sc pruces ponavlja na sk-
sopstvenu bezbednosnu stratcgiju i dr. Time se prevazila£i problem s nedovoljnom dccoj skretnici itd. Kasnjenje r11 uzrokuje vremc obrade i vrcme cckanja u rcdu da ;c
skalabilnoscu koji toliko upterecuje druge sisterne. a istovrcmcno .sc 1.adr:i.ava lakoca oslobndi izl:l!.ni prikljucak. ;\ku ima n skrctnica, onda jc ukupno kasnjenjc u jednum
programiran.1a koju omogucava dcljcna mcmorija. smeru 1;, + 11 (p/h + Td) + f!lb, gdc se poslcdnji clan odnosi na kupiranjc s pusledn1e
Neki drugi sistemi koji se mogu distribuirati na siroka podrucja jesu (Jiobus (Fo- skretnicc na odrccliste.
ster i Kesselman, 1998a: Foster i Kesselman. 199t\h) i Legion (Grimshaw and Wulf, Jcdnu-.merno ka~njcnJC Jt' kucl virtuelnih prolaznih i tunchkih mre/.a u najboljem
llJ96; Grimshaw i Wulf, 19<J7 ). ali oni ne podr?.avaju iluziju o postojanju deljene mc- slucaju bli~ko vrednosti 1;, + f'll> jcr ne pustoji probni paker 1.a u-;postavljanjc kola, a
morije, kao stu to C:ini Globe. ni kasnjcnje £bug sme~tanja i pruslec1ivanja. U osnuvi postnji -,amo vrcme sklapanp
pakcta i vrcrnc: za kojc sc bitovi izhacc na mrdu. U svim -,lucajcvima trcba dodati i
8.4.7 Pcrformanse vrcme prustir;l!lja sign,da. ali je onu obicno malu.
;..._· Drugi po"azatclj perfurmansi hard vera je pwpusni <'P'"~· f>lnugi progr;uni La pa-
Paralclni racunar sc pravi zatu sto je njeguva occkivana brzina veca od racunara ralclnc ra.:·unare. n:Jrucitu u ubia.sti primdnoih nauka, stalnu prcmc~laju vclikc kolici-
H
s jcdnim procesorom. Ako par<delni racunar ne ostvaruje taj cilj, onda ga je hcsmis- ne podatal-.a. taku da _ic bruj b<tjt,J\ a kclji '·<=' u \t:"undi ;nogu prcmt:.\tati kru1 sisrc·n
leno praviti. Stavi~e. pnsti;anje tng cilja mora ida se isplati. RaC:unar koji je dvap11t f;; izuL~!no va/~111 l.:l perfurn1Jnsc. Postoji vi.~c n~1Cina n1.:r\.~nja pnlpusnug op:-..cga. \/eC
--'~
brzi od jednoproccsorskog racunara, ali ko.\ta 50 pula vise, izvcsno sc ncc'c ba; mmJ- smo :-.c SIN·eL s jeclnim od njih. to je bisckc·iuni propu-,ni opsl.'g. Drugi je zhit·ni pro-
go prndavati. U ovom odeljku ra7nwtricemo neke aspekte performansi koji -.e odno.se )~! pusni opseg tc'llt'i. og<.:rc:;uic hund11 idi/i). koji se ci<JhipjecirHJ>tanlilll .,,;hiranjem kl-
na arhitckturu paralclnih racunara. paciteta svi!1 vt:.'a. Ovaj hrrl.J cbje najVt:ci broj bituva k".Ji i'tovr:.Tne:lu mugu biti u
pokrctu. J,); j-:J~~i: \d/.• ln poha1.~ttcij je prosc~an propusni upscg S':ih proccsora. ,\ko
Hardverski pokazatelji sv;lh pruc,:";;·n)(l/,· da gcneri\c i Hl3/c;. ()ndav hesmi.,J..:no Ja 1111Lrrnimc:i:a ima bi-
Kada se radi o hardveru. na pcrfmmanse naJvi;e uticu brzina procesora i ulazn"- sckci1111i prt)f'll\!li OJh~;! od lOIJ CiB/s. Kl)il\UII:Llcija c':: biti '':zraniccna brLinom ko-
-i;:la/nih operacija. kao i br;ina interne mrc/e. Brzina prucesora i ulanm-izla;.nih jonl prc--:~:-.(li-1 Sal_iu po.Jatk~.
operacija istc su kao i ujcdnoprocesorskom sistcmu. tako da su u paralelnim sistem- t' pr~(Li JC posti!anjc bi!u ceg~( stu se pribli/~iV<I lt.'miJ.,~urn propu;nom opsegu
ima kljucni parametri oni koji su povuani s intcrnommrdom. Kada g,Jvorimu o per- ve:1rna te~k''· f'n:.Ioji nHH'go u~~rnk<l koji smanjujUl!kupa;l kcxist,\il kapacilcl. Na pti-
formansama. dva parametra su najvaznija: ka.:::njenjc i prupusni opseg. pa c'emu ih mcr. skictp<Lnjt: pakcta. pravljcnjc n}c_l!llvUg zag!avlja i La slanjc. Slanjern

rcdom razmorriti. 102-+ -+-hajlna p;lkcta niLtda sc nc mo/.c pustici ta"av pwlnk pudal,ika ka<l slanjc11
Vreme obilaska JC ono 1.a kuje procesor pn.~alje paket i na njcga dobije mlgco\ r>r. jednug .+t)U(J-bctj llh 'g p:1kcla. ~ aLdost, kmi;cc~nje mali h pak.:LJ JC ;·.hug manj(g
Ukolik<) sc pakct saiJC menwriji, onda u kasnjenje ulazi vremc za knje se rec iii hlnk kasnjt'nJaje;· veliki pu,cti prcdt:go bhlkiLlJU voduvc i skrct:1i..:c. f'rc·m:.l rume. po-.u,ji
reci procita iii upisc:. Ako sc saije drug('ITl pruccsuru, vreme obilaska pokazuje vreme intcrni :-;uki)h iJ.Inc-ctu po'\til~lnja \t~) n'an.it:g pro'-lcCnt)g kaSnjt:>nja i Sl~) \ieCcg isko-
komuniciranja i;medu proccsora za pa"ct date velicine. Ohicno nas z<mima kasnjcnie rlSCcn.Ja nr'lpu:--not: or~~~a. Za nckc apli!-.~tcijc jc va/niJc llUll) a za ncke,
pakcta minimalne vclicine kuji nose, npr. samu jednu rcc iii krata" red kda. opet. i..:k,H-;~L'ci:;:: OJ"'Sl'~~L Trcha itnati na un1u d~t pn'pu.-..ni 11p~..::~ :r~_ c:K iltuictc duku-
Na ka:::njenje utice niz cinilaca i nno je razlicito za interne mrcZ.c ra.dicitog piti ( vi.\e l.k-~l i~l dcb(j-: /iceL ali ti.J nc va'i:i i za ha~njcn.jc. law jc h()!jc i.)drnah ~e po-
mre/.c: s komutiranim kolima. mreze t1pa ,smcsti i prnsledi", virtuclnc prolazne mre/e brinuti o .~t~.) nla:1jcn1 k.a~Ejc'n_;u. a o I:roptb!loln l1j=:-\cgu tni~~;ri l...~:...,nijc.

~
638 Poglavlje 8: Arhitekture paralelnih rai'unara 8.4 Multiracunari zasnovani na razmcni 639

Softvcrski pokazatclji 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
Hanlverski pokazatelji, kao sto su kasnjenje i propusni opseg, ukazuju na sposob-
sa (I -./) Tna ( l -./) Tin, kao sto je prikazano na slici 8-48(h ). Ukupno vrerne izvrsavanja
nosti hardvera. Medutim, korisniei gledaju na stvar drugim ocima. Oni zele da znaju
za oba del a koda (sekvcncijalnog i paralclnog) bilo bijT +(I -f) Tin. Ubrzanje je samo
koliko ce se puta brze programi izvrsavati na multiracunaru nego na jednoprocesor-
vreme izvrsavanja prvobitnog programa, T, podcljeno vremenom izvrsavanja:
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 n
se obicno prikazuju na dijagramima slicnim onom na slici 8-47. Na slici je nekoliko Ubr:anje = 1 + (n- I)./
razlicitih programa pisanih za paralelne racunare koji se izvrsavaju na multriracunaru
sa 64 procesora Pentium Pro. Svaka kriva prikazuje ubrzanje programa zavisno od Zaf= 0 dohijarno linearno ubrzavanje, ali zaf> 0, savrseno ubrzavanjc nije mo-
broja procesora k. Savrseno (linearno) ubrzanje oznaceno je tackastorn linijom: kori- guce zbog poswjanja sekvcncijalne komponentc koda. Ovaj rezultat je pozna! kao
scenje k procesora ubrzava program k puta, za svako k. Malo programa postize savrse- Amdahlov zakon.
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- Akt1vno JB n procesora

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). I _n___ ~ I

SuStinski Deo koj1 Aktivan


60 sekvencijn.lan se maZe J8 1
deo paralelno 1zvrSavati procesor

50'-
~-Problem N tela
~ ~ ~
Lmearno (savrseno) ubrzavanje I t I 1 -t J f 1 -f
----T- ~n -~- (1- f)T/n
40'- (a) (b\
(j)
·c-
m
N
.0 30 ___ .... -- ~Awari
Slika ~-4S, (a) Pmf:ram ima 'elvencijalni cko i cko koji ,;e mozc izvrsavali paralclno.
(h) Ekbt paralclnog iznsavanja dela programa.
:::J
_...----
_,.......-----/ Amdahlov 1.akon nije i jcclini razlug zbog kuga -;e nc mo/.e postici savrscno uhu.a-
20 /._.,/ 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
10
pukrceu moze da hudc: tnatna. Stavisc. ponckad Sc najbolji poznati algoritam ne muze
lnverzija ,skyline" matrice d,Jbr•,l pnde'iiti ~:a paralclan rad, pa sc u tom slucaju svcsno mora koristiti algoritam
koji nijc oplimalan. lmajuci svc ovo u vidu, z:1 mnoge aplikat·ije jc vcoma pozeljno
10 20 30 40 50 60 imati program koji \C izvrsaVd II pula br)c, cak i ako jc ?a tU potrehno uposJiti 211 fJfO-
Broj procesora
l'L'c:ur,l. Pmccsori. naj1.ad. nisu ni lllliko skupi, a llllll>f',C kompanijc /.ivc uz znatno
Slika X--17. Stvarni programi ne posti/.u savrScnu (iin~~lrlltl) uhrzanjL· pri~aDlno taCkastm11limjnm. manjc: ud l ()()';( clikasncdi u drugim dclclVima svog pos],Jvanja.

C.Jotovo jc tiCillOguce postici SaVfSCIIO u!Jr7.avanje !alo Sill vccina programa ima i Postizanje visokih pcrformansi
ncku sekvencijalnu komponenlu, kao sto je faza inicijaliiOvanja. ucitavanp pudatab Na.Jl>ciglcdniji nacin 1a povcc'anjc pcrfonnansi jc~lc da c,c u sistcm doda vise pro-
ili prikuplpnp rcJ.ultata. Ovdc bruj proccsora ne poma/.e mnugu. Prctpostavimo da se cc:'('fa. ivlcdutim, dPdavanje sc mora i1.vesti na takav nacin da sc izbt'gnu uska grla.
program i;vr;ava tokom 1; najcdnopmce,urskom racunaru, pri ccmu udcufpmvodi u Za >iC>lCill u komc sc dodavanjc:m proccsora dohija .'>ra;mernu vise racunarskc snagc
sek vcncij<dtmm kodu, a udco (I - .f) u kudu koji se potencijalnu muze izvr;avati b/cmo da je skalahilan (cEgl. sculu/Jic ).

~~:
~
i
~
640 Puglavlje 8: Arhitekturc paralelnih racunara 8.4 Multiracunari zasnovani na razmcni Ml

Da bistc uocili neke posledice skalabilnosti, razmotrite cetiri procesora povezana Zhog svega ovoga projektanti sistema cesto na svc nacine pokusavaju da smanJC
magistralom, kao na slici 8-49(a). Sada zamislite uvec'anje sistema do 16 procesora iii da bar prikriju kasnjenje sluzeci se tchnikama k.oje eemo u nastavku pomcnu!l.
(dodavanjem jos 12), kao na slici X-49(b). Ako je propusni opseg magistrale b MB/s, Prva tehnika prikrivanja ka~njenja je umnozavanje podataka. Ako se kopije bloka
onda smo i propusni opseg raspoloziv svakom procesoru njihovim ucetvorostruca- podataka mogu cuvati na vise lokacip, proscemJ vrcmc pristupanja podacima biri:
vanjcm smanjili sa h/4 MB/s na h/16 MB/s. Takav sistem nijc skalahilan. 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.
Procesor druga strategija je odrzavanjc vise ravnopravnih kupija (kopija s istim statusom) kao
suprotnust asirnetricnom odnosu primarno-sckundarno koji se koristi pri kesiranju.
t
1111
t
Magistrala

(a)
•o (b) (c) (d)
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 k~t~nJcnjaje prcthodno preuzimanjc (engl. prefetchin~).
Ako se podaci mugu preuzeti pre nego ;to su putn:bni. prt.:uzimanje se moze prcklo-
Slika S--19. (a) Sistcm z.asnuvan na -l procc't>ra i magistrali. ib) Sistcm z.asnovan na 16 proce">ra piti s uohicajcnim izvrsavanjcm. tako da podatak hudt.: pri nrci kada L.atrcha. PrcthoJ-
i magislrali. (C) Si~tcm s rc~dkom uJ -1- procc~ura. (dJ Si.-,tcnl s rc\ctl-._oJn od !() prucc.-.,ora. no pr~uzirnanje 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
Uradimo sada isto s re:ietkastim sistcnwm sa slikc 8-49(c)- 8-49(d). U ovoj topn- uskoro biti potrehne.
logiji dodavanjc pruccsora ide u; dodavanjc novih vcza. tako da sc uveeavanjcm si- Prcthm1nirn pr<.:uzimanjem mo?.e 'ic upr~1vlpti i cksplicitno. Kada prevodilac shvJ-
stenla nc smanjujc ;.birna propusna moe po proce;..oru. kao u slucaju magistrak. U ti da cc
nm biti potrchni udrcdcni pmlaci. on mu/.e da uhaci ekspiicitnu in;..trukciju ~a
stvari, oc1nos hroja veza prema proccsorima rastt: od 1.0 sa 4 proccsora ( 4 procesura. r~iihlV<l pn;uzimanjc i dajc u progran1u iskori'-li unaprcd kaku bi potrebni podaci stis-
4 vezc) do 1.5 sa 16 proccsora ( 16 prucc;..ora. :?.4 vcze ). tako da dodavanjem pmcesora li pr·avovrcmenn. Ova stratcgip zalneva da pn.:\Pdilac pntpunu puwajc· raC·unar i ll]c'-
rastc zhirna propusna moe po proccsnru. snv \ rcmcnski r:t''l'orcd. kao i da ima kontrnlu nad S\ im mestima gdc st.: Cuvaju
:.J
l'ropusna moe. naravnu, nije i jcdini problem. Dodavanjc procesora magistrali nc p<'tbci. Ttkve spckulativnc instrukLijc LOAD radc najhuljc kada sc _,isurnu ;.n:t da .'c
povceava pr·ccnik interne rnrclc iii ka;njcnj<.: kad n<.:ma saubraeaja. dok. ih kod n;;ct- odrcJcni ptlLL:ci hrti potrcbni. Pruma,ivanje str~tnc prr in,truk..:iji LOAD t.a puunju kcJ-
kastc mrc:Zc poveeava. Za rt.:Sctku n x n prccnik je 2(11- I), pa se ka~njenje u najnc- na ~raju ne pode. k<)Sta lllll<lg:u.
.J'llll '-.C
povoljnijem ( i u prosccnorn) slucaju poveeava pribli?.no s kvadratnim korcnom broja T rcca tchniLt koja nw2c da prikrijc ka~nJcnic jc. kao \to 'lllll 'idcli. rad s \ i~e pt\1-
proccsora. Rdetka sa 400 procesora ima precnik 38. dokjt.: on za rdctku sa I hOO pro- niti .. \ku se s jcdtl\1;2 proccsa na drugi nio/c prdtliti dovoljn<l hr;u (uhcz-
cesora jednak 7X. tako da ucctvorostrucavanje hroja procesora priblizno udvo;..trul:a- hcdi"-.<tnjcn1 d~1 \V~tki proLcs itna '-'Oj)\t\'~nu n1C'!l1PriJ~,ku n1apu i han:Jv._'J"sh.e registrL),
va precnik. a time i prosccno kasnjenje. tad:t. ~..:nk .i.:dn~t hl1)kirana prO,\;f'-l!nsk~t nit C-.-k:J. pod~11k~. hard·:cr n1o/.l~ hrzo uk.ljul:iti
Ideal no :,kalabilan sistem moran hi da zadrzi istu prosecnu propusnu mue po pro- drut_:u koj;t 1nn/.~..: da na~Ll\ i :-- r:ldurn. lJ _:!raniCt:~)Jll :..lul·aju procesor izvr.S~J\'~1 pn.'U in-
cesoru i konstantno prosceno kasnJenje. bez ohzira na broj dodatih prncesora. U pr~lk­ 'lruk,·iju i; prvc niti. ,Jrug:u instrukciju i/ drug:c niti itd. Na l)Va.J nacin proc·L·smjc \\C
si se. rncdutim, mole odrzati dovoljna propusna moe po pmccsonr. ali kasnjt.:nje u vrcJih~ UJ't~skn. uprh.us du~in1 'i~h.lr~k~11na pri dbraC,lnju 1112n1oriji pojcdinJCnih r"IU-
svirn projektirna rastc s velicinorn. Najvi;e \to sc moze uciniti jt.:ste da se ra;..t granl~i\.ih nitj.
kasntcnja ogranici na logaritarnsku krivu. kau kod hiperkocke. (',:~vrta tL'ili1iKa ,kfiqnj~t ka~njcnp jc' t1cblukrr:.tjll~':'g (.'i"bod:H'>!) upi-
To stt' k.asnjcnje prati vclicinu sistema, cesto je pogubno za purormanse aplikaci.Ja si\·~lnj~t. Pri iL\r~avanju in:--trul~LijL· STORZ-::. procc-.,()r ohil·no saC~ka LLl v· ona l.a\··~i
kojc rade s lino i srt.:dnjc granulisanorn memorijom. Ako su programu potrebni pmLlL·i pre nt~go ;tn na~tavi rad. Knd Jh~b!PkirajuCL~g upJSi'.<!nja L.a~~o(inje \C upcracija s !Tt.'-
koji sc nc nalazc u njt.:govoj lc)kalnoj memoriji, ccsto postuji primetna zadr\ka d,,k ill nwi·IJ"nL ali prPgr:untLhla\lj<l r:td. :"i:t>t:nak re~da pthk inotruLije LO ..~Ll veL' JC tc·li
ne duhije, a ;to je sistcrn veei, kao sto srno videli. veeajc i Ladrska. Ovaj prublem \~Iii ali _jc C~th i tu tnPgUL;~ d'/. pr~k.or . .,dnu i.!.Yr~:r,:a:ljc
i L.a multiproccsurc i za rnultiracunare. pusto je u oba slucaja ti;:il:ka memmip rasccp-
kana na medusobno udaljt.:ne module.
Poglavlje X: Arhitekturc paralclnih racunara 8,5 Resctkc rai'unara 643
642

8.5 RESETKE RACUNARA komponentc te programe i podatke kao softverske. Svi oni predstavljaju resurse koje
mrda stavlja na raspolaganje na kotrolisan nacin.
Mnogi od Janasnjih problema u nauci. inzenjerstvu, industriji. ckologiji i u drugirn
podrucjima velikih su razmera i interdisciplinarne prirode. Za njihovo rcsavanje po- Sloj Funkcija
trcbni su strucnost. iskustvo. wanje, oprema, softver i podaci iz vise organizacija, ce-
sto iz razlicitih zemalja. Evo nekoliko primera: Aplikacija
I Aplikacije koje dele raspolozive
resurse na predvidiv nacin
I. Naucnici koji priprcmaju misiju na Mars.
Otkrivanje, posredovanje, nadgledanje
2. Konzorcijum koji realizuje slozen projekat (npr. branu iii letclicu). Kolektivni
i upravljanje grupama resursa
3. Medunarodni tim koji koordinira slanje pornoci u podrucja pogodena prirod-
Bezbedan, podrzan pristup
nim katastrofama. Resursa
pojedinai':nim resursima
·---
Neke od ovih aktivnosti su dugorocne saradnje. a neke druge su pak jcdnokratne, Fizicki resursi: racunari, skladista, mreze,
ali im je svima zajednicko to da brojne pojcdinacnc organizacije i resursi moraju Strukturni
senzori, programi i podaci
udruziti rad kako hi ostvarili zajednicki cilj.
Doncdavno je bilo vrlo tcsko m.tvariti razmcnu podataka i dcljenje res ursa izmcctu Stika 8-50. Slojevi resetke.
razlicitih organizacija ciji racunari imaju razliCite operativne sistemc, haze podataka
i protokolc. Mcdutim, narasla put reba za saradnjom velikog ohima izmedu vise orga- Na sledcc'em nivou je sloj resursa koji upravlja pojedinacnim resursima. Rcsur-
nizacija podstaklajc razvoj sistema i tt:hnologija za povezivanje udaljcnih racunara u som koji uccstvuje u resctki u mnogirn slucajevima upravlja lokalni proces koji omo-
mrezu zvanu resetka (engl. grid). Rdctka u i/vesnom smislu predstavlja sledeci ko- gucava kontrolisano pristupanjc udaljcnih korisnika rcsursu. Ovaj sloj obczbeduje
rak du7. osc na slici 8-1. Ona se moze zamisliti kao veoma veliki, medunarodni, laba- jednoobrazan interfcjs ka visim slojevima, kroz koji sc sloju mogu slati upiti o karak-
vo povczan, hcterogeni klaster. teristikama i statusu pojedinacnih res ursa i kroz koji se oni mogu nadgledati i koristiti
Svrha rc;ctkc jc da obezbedi tehnicku infrastrukturu grupi organizacija koje zbog na bezbedan nacin.
zaJednickog cilja .l:cle da sc udruze u virtuclnu organizaciju. Virtudna organizacija SledcCi je kolcktivni sloj kuji rukuje grupama res ursa. Jedna od njcgovih funkcija
s hrojnim i promcnljivim clamtvummora biti tlcksibilna tako da omoguc'i clanovima je pronala/.enje rcsursa, pomocu koje kmisnik mo/.e da otkrijc raspolozive proccsorske
saradnju u podrucjima koja im sc cine odgovarajuc'im i da im istovrcrneno omoguci cikluse, prostor na disku ili speciticne podatkc. Kolektivni sloj za tu svrhu mo/:c da
kontrolu nad njihuvim supstvcnirn rcsursima koliku god .l:ele. Da hi takva virtuelna odrz.ava clircktorijume i drugc haze podataka. On mo?.c da nudi i posrcdovanje, povc-
organi1.acipmogla da funkcioni.~e. istralivaci mre;ia razvijaju mlgovarajuce uslugc. mjuc'i davaoce i korisnike odgovarajucih usluga, mozda cak i upravljajuci koriscenjem
~ alatkc i protnkole. skromnih resursa i~:mcdu vise konkurcntskih korisnika. Kolektivni sloj je mlgovoran i
;';. Resetka je multilatcralna tvurevina ciji su svi uccsnici ravnopravni. Ona potpuno za umnozavanje podataka, za primanje novih clanova i resursa u resetku. za ohral:una-
~= odskacc ud postujcc'ih racunarskih mrel.a. U modelu klijenthcrvcr, transakcija uklju- vanje i oclrzavanjc baza poclataka s pravilima 0 tome ko sta mozc da koristi.
~:'~
l:uje dve strane: .scTver. koji nudi odredene uslugc i klijcnta. koji te uslugc zeli da ko- Sasvim na vrhu je sloj aplikacija u komc sc nalaze programi korisnika. On kmisti
risti. Tipii:::.Jn primer modeL1 khjent/servcrje Vv'cb. gde korisnici upuc'uju zahtcvc Web nize slojeve da bi pribavio potrchne dozvole za upolrebljavanjc odredenih resursa.
servcrima da hi dobili infonnacijc. Rc:iclka se ra;.Jikuje i od aplikacija kojc raclc iz- podrlllsio zahtcve za korisccnjc, nadgledao kretanje ovih zahteva. obractivao grcske i
mt'du ravnopravnih ral:unara. gdc parovi usoha razmenjuju datoteke. Elcktronska (lbavdtavao korisnika o rezultatirna.
pu:;ta je uuhiC·ajen primer takvc aplibciJc. Pusto se rcsetka razlikuJC od navcdenih BcJ:bcdnost jc osnuva uspdne resetke. Vlasnici res ursa skoro uvek ocekuju da im
mut.kla. za nju su potn~hni nuvi prutokoli i tclmolugije. sc omoguci stroga kontrola njihovih rcsursa i zelc cia oni odreduju ko moze da ih ko-
R-:st.·tki JL' potrcban pr1:;tup :;imkom spl'ktru resursa. Svaki resurs ima spccilican risti, koliku dugo i u kum stepenu. Bl'Z dobrog obe;bedenja, nijcdna organizacija
si"L'Ill i vLtc;tucku urganizaciju koj<~ odlul.'uje o \lllllt.' kllliki c'e dt'o rcsursa staviti na nec'e staviti svojc rcsurse na raspolaganje. S druge strane. ako kurisnik !reba da ima
raspolaganje rc'\L'tkL tuk,llll kog pcriudci u tuku dana, k:w i to ko ce koristiti rcsurse. nalog i lozink.u J:a svaki racunar u re;etki koji huce cia knristi. upotrehljavanje resctkc
Na izvcslclll clpstLlktan nacin. cak. sc mo/.c smatrc:ti Jajc sustina rci;ctke pristup i rad c'e pm.tati ncpodno;Jjivo. Shodno tome, n:sctka treba da stvori bezbcdnosni model
s rcsur;;Jm~J. koji cc pomiriti ove dvc suprotstavljcne potrcbc.
'~'
Jcdan od nacina mULkluv~mja :.:;ctke jl' pomoL'u hi_ierarhi.Jc sl<>jeva, kao na slic:i .Jcdna od kljucnih karakteristika bezbcdnm.nug model a jeslc jedinstveno pripvlji-
K-50. Sti·ukturni slnj icngl.johric larer) u Jnu pn:,btavljcnjc skupom kompunenata vanjc rdctki. Prvi korak pri korisccnju resetkc je potvrt.tivanje idcntiteta korisnika i
kuje graJe reset ku. On ohuhvata prucesmc, diskov e, mrczc i senzorc kao hardvcrske dobijanje dozvola, digitalno potpisanog Jokumenta u kome stoji za koga se posao
~j~
H ...
,....,
\L
I;

""
;;;~.
.p
~
3{;
~::
~-
_L__
644 Poglavlje S: Arhitekture paraldnih racunara Ve:lhanja MS
·---·-- ·-------------~~~----

obavlja. Dozvolc se mogu prenositi (dclegirati). tako da se, kada pri nekorn izracuna- nivou instrukcija, gde jedna instrukcija iii niz instrukeija zapoCinju vise operaetja
vanju zatreba i dodatno izracunavanje, lako mozc identitikovati proces potomak. kuje mogu paralclno izvrsavati razlicite funkeionalne jeJinice. Drugi oblik paraleli-
Kada se dozvolc pokazu na udaljenom racunaru, one trcba da se prcslikaju u loblni zma na cipu je raJ s vise programsk.ih niti: procc'or mo2e stalno Ja skace s jedne riti
sistcm bczhcdnosti. 1\ia UNIX sistcmima. na primer. korisnici sc identilikuju lh-bit- na drugu izvrsavajuci jednu instrukciju ovde, a jcdnu tarno, stu ga cini virtucln.m
nim knrisnickim identitikatorima. ali drugi sistemi imaju i drugc semc. 1\ia kraju. u multiprocesorom. TrcCi oblik paraleliw1a na cipu je rnultiprocesor na jcdnorn cipu,
rdctkama su potrchni i mchanizmi za stvaranje pravila pristupa, ;.a njihovo o,lr/.t- gde se na cip smdtaju Jva ili vise procesorskih jezgara koja rade paralelno.
vanje i :.~zuriranje. Na sledcccm visem nivou su koprocesori. najcesc'e smesteni na dodatnc kartice.
Da hi se obe;:bedila interopcrabilnost (mogucnost sar:.~dnjc) izmedu razliciuh ur- Oni osnovnom sistemu ohczbeduju dodatne procesorske kapcitetc za raclu oJredenim
ganizacija i racunara. potrcbni su st:.~nJardi. kako u pogkdu ponudenih mluga, l~tk<> i specijalizovanim podrucjima, kao sto su mrc7.ni protokoli iii multirnedija. Dodalni
u pogkdu proto kola za pristupanje. Zajcdnica korisnika rc~etki st vorila je organit.a- procesori rasterecuju glavni procesor i umoguc'uju mu Ja raJi svoJ posau dok se oni
ciju Global Grid Porum koja trcba da vodi postupak donuscnja standard~!. Una sc bavc specijalizovanim aktivno,~tima.
oglasila svojim opstim raJnirn uslovima- ohorenom arhitekturom us\uga 11 re~et­ Na slcJccem nivou su multiproccsori s deljcnom memorijom. Sistemi sadrzc eva
kama (Open Grid Services Architecture. OGSAJ- pomocu kojih ra;vrstava razlicit·: ili vise proccsora koji dele zajcdnicku memoriju. UMA multiproccsori komuniciraju
stanJarde kuje razvija. Cide )!t>dje to moguc'e, standardi za re~ctkt· primenjuju posto- prcko dcljene magistralc (za prisluskivanjc) unakrsnih prckidaca ili viscstcptnc
jeee stamlardc. na primer. kmistcci WSDL (\Veb Services Dcliniton Language- jc1.ik komutacionc mre/.c. Njihovo :;vojstvo je da imaju isto vrcme pristupa svim m.::mo-
za opisivanjc Web uslugaJ za opisivanjc OCiSA usluga. Us luge kojc sc st:mJarJizuju, rijskim lukacijama. Nasuprot njima su NUMA multiprocesori koji svim procesima
trcnutno se ra;:v rstavaju u jcdnu "d sledccih osam ~irukih katcgllrija, ali nl'ma sumnjc ubczbeduju isti deljcni adresni prostor, ali koJ njih pristupanjc i;: daljine traje zn~mo
da cc sc pojaviti i nove. vise od lokalnog pristupanja. Na kraju, COMA multiproecsori predstavljaju jos jclinu
I. Jnfra~,u-ukturnc usluge (omoguc'avaju komuniciranjc izmedu resursa). verziju, gde se redovi kda prcnuse na zahtev i nemaju svoj maticni procesor karl u
pretht llln im verzij am a.
2. Us luge za r~1d s rcsursima (rczervisclll.JC i J...ori~ccnJC rcsur.;ai.
Multiracunari su sistcmi s velikim brojem proccsura koji ne Jclc zajcdnicku me-
.\. Usluge za rad s pl'cl:!cima lprenuscn.JC i J...upiranje pmbraka. gdc i kadajc to
moriju, vee svaki procesor ima sopstvenu privatnu mcmoriju. a komuniciranje mn.lu
pot rchno I.
njima sc obavlja proslcdivanjcm poruka. MPP racunari su veliki multiracunari sa s_x-
-+. l'slugL· k<>nteKsta i<'I'isivan1c zaht·:vanih resursa i pr·a·;ila kllrisc'enja). cijalizovanim komunikacionim mrdarna, kao sto je IBM-ov BlueGene/L. Klasrcr: Sll
5. lnft•rmac·iune U'iu;,:.c· (dohiJilflJc' inl'ormac·ip '' r;tspt>lo/:ivo:.;ti resursa). jctlnostavniji sistcmi. izgradeni od postojecih komercijalnih kumponenata (npt·. racu-
6. Interne uslug(: ljltldr~ka dckbrisanom J..:valitctuusluga\. nari koje koristi Coogle).
7. Bczhcdnusne u,lugc 1sr1w, odt:!ljC prd\ il<~ bubc·Llnosti 1. Multiracunari se ccsto prugramiraju pomocu interfcjsa za proslcdivanjc poruka
kao sto je MP!. Alternativan pristup je koriscenje deljene mcmorije na nivou aplika-
X. Cslugc 1a upr:l\lpnj<: iznsavanjettl lupt·a\ lj:u:.Je tckum radnih akti\nusti).
cije. bo ;to je sistem DSM zasno\~tn na straniccnju. prostor torki Linda. iii objckti
Jo~ ntnu::;o ~ta :-,C rno/.c rt~\.~i (l re~ctk~ttn~t, cdi IIJ~ pro~t\)r i.)gT~tf~i~_:~l\ ada SC 0\'0111 tC- Orca. oclnosno Globe. DSI\1 simulira deljenu mcmoriju na nivou stranica, sto ga cini
!l10ili <._llr/.e hdvin10. \'i;c inforn1acijantJ o rc;cth..J.I~l._l n~t-...:i cctc h.(1d Bennana et a!. slicnim racunaru NUI\1A, osim sto je mnogo nccfikasniji pri referenciranju udalj~ne
i 2illJ3 ), FP,tcr~t i Kc".dman:t i 2003' 1 kt1d h>,Lcra c:r al. 1 2l !I 12 i 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
X.6 SAZETAK -.nagu. podatke i drugc resurse.

Sve jc tc/.._- uhr/a'v~tti r:t(un~lrc ..:;~uno pnvt>-:a\'~tnjcn1 radn('~ taktajcr se h'•lllC suprot-
•.lavl:a l'n,hlcm sa ud'''c!enjcm osluhodcnc :oplute. a j:tvliaju ';C i dru~ci prohlcmi.
Zhot: tot:a .\e pi<ljck',mti. u ciiju ubrza\:Jtlja r:\C·un;trtt, ,-,.; vi;c' okrccu ka parttlelnom
VEZBAN.JA
r:1du. P:~r~dcli/JI11 :-;c n1\-,f'c U\c'sti n;l \/i:_c ni\'('~t. 1Jd sasvint n;, J,:, 'tile su procc- I. Instrukcijc 1.a Pentium mogu cia budu dug~tcke 17 bajtova. Da li je Pentium VLIW
:~or:-h.i ci._'lilCJlfi rncdu:--cbn~,_, vrkJ tcsth) i)U\'..":L~tni, do\ con1~1 ,.i."'Pkng. na kPI11l' su vcze pmccsor''
ilJih:~du n,;ih VC(l!na l:lba\-'e. 2. Kojc opsccene vredno.sti odgovaraJU brujcvima 96. -9, 30() i 256 ako je interval op-
Na n:qni/.c.__'ill ni\'PH ~~ parak·!i;anl najLdnutTl Cipu -l·per~h.'ije "-C l:. . tt)\ren1cno tpa- sccanja tl-255')
Ialelno) uha\ li;.titt n~t ."'h··nl ~iptl. Jcda:1 nhl1k ti.tkv\·~ paralclili11:l jL paralclizan1 na
~

:J·
L_
646 Poglavlje 8: Arhitckturc paralclnih racunara Vczbanja 647

3. Jesu li sledeee instrukcije za procesor TriMedia dozvoljene i ako nisu, zasto nisu? 16. Jasno jc da su vruc'c tacke (cesto referencirane memorijske lokacije) glavni problem
a) Integer add. integer subtract. load, floating add, load immediate u viscstepenim kornutacionim mrc:'iarna. Jesu li one problem i u sisternirna zasnova-
b) Integer subtract. integer multiply. load immediate. shift. shift nim na magistrali''

c) Load immediate. floating add, floating multiply, branch, load immediate


17. Komutaciona omega mre:la povezuje 4096 RISC procesora, svaki sa ciklusom od
60 ns. sa 40% bcskonacno brzih memorijskih modula. Svaki prekidacki clement
4. Slike 8-7(d) i (c) prikazuju 12 ciklusa instrukcija. Za svaku naveditc sta se ddava u
iLaziva kasnjenje od 5 ns. Koliko jc kasnjenje za instrukciju LOAD''
naredna tri ciklusa.
18. Zamislitc racunar koji koristi komutacionu omega mrdu, kao onu na slici 8-29.
5. lnstrukcija koja na odrcdcnom procesoru promasujc kcii prvog nivoa i pogada kes
Pretpostavitc da se program i stck za procesor i nalaze u memorijskom modulu i.
drugog nivoa, trajc ukupno k ciklusa. Ako se za maskiranje promasaja prvog nivoa
Prcdlozitc malu izmenu topologije koja c'e znatno uticati na pcrformansc (IBM-ov
kda koristi visenitni rad, koliko se programskih niti u tinoj rezoluciji istovremcno
RP3 i BBN-ov Butterfly koriste tu izmenjenu topologiju). Po cemu jc nova topolo-
mora izvrsavati da bi se izbcgli prazni ciklusi?
gip slabija od originalne' 1
6. Jednog jutra, pccla matica sakupi sve svoje peck radilice i saopsti im daje danasnji
19. U multiprocesoru NU!VII\ referenciranje lokalne memoriJe trajc 20 ns, a udaljcne
dncvni zadatak da sakupljaju polcn nevena. Radilicc odlec'u u razlicitim srnerovima
120 ns. Program tokom svog izvrsavanja referencira memoriju N pula, od cega su
da traze neven. Jc li ovo sistem SIJ'v!D ili MIMD?
l procenat reference na stranicu P. Ta stranica je na pocctku u udaljenoj rncmoriji i
7. Tokom objasnjavanja mode Ia doslednosti pri radu s memorijorn, rckli smo dajc mo- njeno kopiranje u lokalnu mcmoriju trajc C ns. Pod kojim uslovima cc stranica biti
del doslcdnosti ncka vrsta ugovora izmcdu soft vera i memorije. Zasto je takav ugo- kopirana lokalno ukoliko je drugi proccsori nc koristc cesto''
vor neophodan'l
20. Razmotritc multiprucesor CC-NUMA, kao onaj na slici ~-31, samo neka vas irna
8. Zamislitc multiprocesor koji koristi deljenu magistalu. Sta sc ddava ako dva proce- 512 cvorova sapo 8MB. Ako su rcdovi kesa duzine 64 bajtova. koji jc proccnat vi-
sora pokusaju da tacno u islom trenutku pristupe globalnoJ memuriji':' ska u odrednicama kataloga' 1 Da li se povecanjcm broja cvorova povcc'ava visak.
9. Pretpostavimo da je kdu za prislu;kivanje iz tehnickih razloga moguc'c da prislu- srnanjuje sc iii sc nc uticc na njcga'l
skuje samo adrcsne vodove, a nc i vodovt: za podatke. Da li bi to uticalo na protokol 21. Za svaku topologiju na slici ~-3S izracunajte precnik nm;/c.
direktnog upisivanja' 1
22. Za svaku topolog:iju na slici ~-35 odreditc stepen tolcrancijc grdaka, ddinisan kao
10. Zajednostavan model sistcm~t multiprocesora s magistralom i bez kesiranp prctpo- maksimalan broj veza kojc se mogu prekinuti. ada sc mreza ne rasccpi na dva dcl~1.
stavitc da jcdna od cc:tiri instrukcije refcrcncira mcmoriju i Ja refcrenciranje memo-
23. Raz.motritc topologiju dvostrukog torusa sa slikc ~-35(f). ali velicinc k x k. Knliki jc
rijc zauzima magistralu tokom citavog izvr;avanja instrukcije. Ako je magistrala
prccnik mrc7.c'' Pomoc': Razmatrajtc: poscbno parno i ncparno k.
zauzcta, zahtcv proccsura sc stavlja u FIFO red cckanja. Koliko pula c'e br/.c raditi
24. lnterna mrc7.a jc ohlika kocke ~ x ~ x ~- Svaka vo.a je dvosmcma i ima propusnu
sistem sa 6-+ pn >ccsora od jc'dnuprocesorskug sistema':'
moe od I GB/s. Koliki je bisekcinni propusni opseg mrc/c''
11. Protokol .ca kohcrcntnost kesa MES! ima cctiri stanja. Drugi protokoli za koherent-
25. Amdahlov zakon postavlja granicu ubrzavanja paralclnih racunara. lzracunajte u
no.st kcsa koji rade s naknadnim upisivanjcm irnaju -;~mw tri stanja. Koje sc od cetiri
funkciJifmaksimalrm mog:uce ubrzanjc kada hroj proccsora rastc u bcskonacnost.
stanja protol-.uia J\IESI mozc zrtvovati i Ltkvc c'c biti pos!t:dice u svakorn pojedi-
Kabc su pnslcdicc ovc gran icc z.a(= 0. 1' 1
nacnom slucaju' 1 ,\ko lreba cia iLah.:retc samo tri stanja. hoja c'c to stanja biti''
26. Slika ~--+<) prikazujc kako uvec'avanje nc dajc raultatc: s magistralom. ali dajc
12. Postnjc li situacijc k.od protukola za kohcrcntll<lSl kda J\IES! u kojima red kda
s rcsctJ..om. Pod prctpostavkom da svaka magistral a iii veza irnaju propusni opscg h,
pPstnJi u lob! nom k6u, ali jc· ipak potrebna transahcija s magiotalnm'' Ako mislitc
itracunajtc prosei'an propusni opseg po pmcest1ru za svaki ml C:ctiri slucaja. Zatim
da pPstojc, opi~itc ih.
svaki sistem pro;irik do 64 proce:-.ora i ponovitc izracuna\ anjc. Sta je granica kada
13. Pretposta\·imo da zay.:dnicka magistrala povezuje 11 pr,x.:sora. Verovatnoc'a da cc
broj procesora rastc u bcskonacnost' 1
ncki od pruccsora pokusati da koristi magistralu u datum cik!usu je p. Kolika jc
27. U tckstu srno govorili o tri verzije osnovnc mctodc send: :-.inhronoj. blokirajuc'oj i
vcrovatnoca da
ncblokirajuc'oj. Prcdlozitc i cctvrtu mctmlu. slicnu blokirajuc'oj metodi send. ali
a) Magi,trala hwk slobodn~t (0 zahtevaJ''
s nc;to drug:acijim svojstvima. Uporcditc svoju mctodu s blokirajucom m..:todom
b) Pr"toji '~trno _ic·cbJ zahlcv'' send i navcditc prcdnosti i nedustatkc svojc mctodc.
c') Pustoj i vi,;c ud Jednog zcthtcva'l 2S. Razmotrite multiracunar koji radi u mrdi s hardvc:rsl-.im ncusmcrcnim ernitu-
14. Kc>likPun~tkrsnih prckidac·a irna jl(llpun procesor Sun Fire E25K' 1 vanjem. kao sto jc Ethernet. Za~tu jc va/.an ndnos operacija citanp (kojc nc mcnpju
.;3.:':.;;
15. Pretp\l<ilavimo da sc zica innedu prckidaca 2.\ i prckidaca .18 omega rnrdc prckinc. interne prmnenljivc stanja) i upisivanja (kojc menjaju interne promenljivc stanja)''
Ko je tada od kuga odscccrl''
ii~
~;
:K-::.
;~~

i'
L "
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 o~,lubad<.njc
tuplotc. vcci otpur i kapacitet sve manjih i sve bli;ic pm.tavljenih .i.ica itd. On rnislt da

~·~·
I
6~9

~"' ' '


··j~
~
650 Poglavlje 9: Spisak koriScene i preporucene literature 9.1 Sta hi jos trehalo procitati 651

je buc!ucnost u visenitnom radu. u multiprocesorima najedinorn cipu i u boljoj struk- Stallings, Computer Organization and Architecture, 6th ed. ( Orgwzi:acija i arhitek-
turi memorije, a ne u sirovom povecanju rac!nog takta. tura rac'wzara, 6. i~danje)
Opsti tekst o arhitekturi racunara. Neke od tema kojima se bavimo u knjizi koja jc
Colwell, The Pentium Chronicles ( Hmnike Pentiwna)
pred varna obradene sui u Stallingsovoj knjizi.
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. Wilkes, ,Computers Then and Now'' (Rac'unari onda i sada)
Licno videnje istorije racunara od 1946. do 1968. godinc iz pera racunarskog pro-
Hamacher eta!., Computer Organi~ation, 5th ed. (Organi::.acl)a rahuwra, 5. iz.danje)
jektanta-pionira i pronalazaca mikroprogramiranja, Mauricea Wilkesa. On nam prica
Klasican uc!zbenik o organizaciji racunara: proce~oru, memoriji, ulazno-izlaznim
o ranim bitkama izmedu ,svemirskih kadeta", koji su verovali u automatsko pro-
uredajima, aritmetici i periferijskirn uredajima. Glavni primeri su procesori 68000 i
gramiranje (pre-FORTRAN-ski prevoclioci). i tradicionalista, koji su programirali u
PowerPC.
oktalnom brojcanom sistemu.
Heath. Embedded Systems Design ( Projektovanje ugradenih sistema)
Dan as prakticno sve sto radi na struju i skuplje je od 50 do lara ima u sebi ugraden
9.1.2 Organizacija racunarskih sistema
racunar. Takvi racunari su tema ove knjige. PocinjuCi od osnova ugradenih procesora,
mernorije i periferijskih uredaja. autor prelazi na interfcjse. operativne sistemc za rae! Buchanan i Wilson. Advanced PC Archirenure ( Napredna PC urlzirckwm)
u realnorn vrcmenu. softver i otklanjanje gresaka. lako pornalo nabacano. ova knjiga sadrzi dosta matcrijala o procesorima. magi-
stralama (PCL SCSI i USB). rrikljuccima (za igru. paralclnim i scrijskim) i drugim
Hennessy i Patterson, Computer Archilecture A Quanlitntil·c i\pproaclz, 3rd ed.
komponentama PC racunara.
( K1•antitutivni prist up arhitckturi racunam. 3. i::.danje)
Ng. ,Advances in Disk Technology: Performance Issues" (Naprcdak u tehnologiji
Ovaj fakultetski udzbenik zalazi u detalje projektovanja proccsora i memorije. Po-
diskova: problcmi performansi)
sebno sc istice vaznost visokih performansi. narocito kroz iskoriscavanje paralclizma
Ljudi vee najmanje 20 godina predviLlaju kraj magnctskih diskova. lpak. oni su i
i paralelne obradc. Ako lelite da saznatc sve o projcktovanju savrsenog procesora, za-
dalje okn nas. A. prema ovom clanku, njihova tchnologija brm napreduje. tako da
virite u ovu knjigu.
cenm ih verovatno i u buducnosti vidati.
Null i Lobur. The Esscnlial.\· of' Computer Organi::.ation and Architecture ( 0.\'!Wl'i or-
Messmer. The !tulispcnsu/Jic PC Hanhmre Book, -lth eel. ( Knji,~11 o PC lwnlH'rll koju
gani::.acije i arhitckture m(wwra)
nwrutc inwri. 4. i;:danje)
Jos JCdan udzbcnik o organizaciji racunara koji obraduje slicne teme kao prcthod-
Ova knjiga od 1296 stranica (kojc obuhvataju 37 poglavlja i 7 priluga) mozda Valli
na knjiga, ali s manjc detalja.
je potrcbna. mo/.da i nije, alije izvcsno dcbela. Gotovo sve sto treba znati o pruce,orima
Patterson i Hennessy. Computer Organi::.ation and Design, 3rd ed. (Otgani::.uciju i XOx86. mcmorijama. magistralama. cipovima za podrsku i perikrijskim urcLlajima, de-
projektovwzje raCwwra. 3. ialanje) taljnu je nbjasnjeno u ovoj knjizi. Akn stc procitali slcdccu knjigu s nascg spiska i 7:clite
Ovo vise nije kn.Jiga od I 000 strana kao 2. izdanje; u 3. izdanju veliki deo matcrijala da predcte IU narcdni nivo tchniCkih detaija. pocnitc odavde.
je prenet na pratcci kompakt disk. U tckstualnom clelu knjige autori sc have mnogim ~ Norton i Gcx>dman, !ll.li,fe rhe PC. 8!11 ed ( Unurur PC Ul("wwm, 8. i~donje)
aspcktima arhitekture racunara, ukljucujuci aritmetiku, pcii'onnansc, putanju podata-
Vecina knjiga o hanhL·ru PC racunara pisanaje za osuhc ko.Jc se razumcja u e!ck-
ka. paralelnu obradu. memorije. periferijske uredajc i klasterc. lako se o Pcntiumu 4
trotehniku: njih tcsko citajtl softvcrasi. Ova knjigajc drugaciFL lilljOj je hardvcr ob-
govori na vise mcsta, glavni primer koji se koristi ;:a objasnjavanje pojmovaje MIPS.
ja;njen tehnickim. ali svima ralllmijivim jc1.ikom. Obulnaccni su procesori,
procesor koji jc projektovao Hennessy i koji je bio prvi komercijalni RJSC procesor.
memorija. magi.,rrale, diskovi. monitori. ulazno-izlazni urcdaji, prenosivi PC racllln·
predstavljcn 19?\5. goc!ine.
ri, rad u mrc:Zi itd. Rctka i vrcdna !.,njiga.
Price ... A History ot' Calculating Machines" t lstorija racunskih mas ina)
Rubinson ...Tmvc:rd the Age of Smarter Storag~:" ( Ka pamctnijem sme.\tanju podataka)
lako sumoderni racunari nasrali u 19. veku ( Babbagc), !judi su racunali jos od po-
Smc~tanjc pmbtaka pre;Iu jc dugacak putud dana kacla .;u J:a njega korisccnc me-
cetka civili;:acije. Ovaj fascinantan. ilustruvan clanak prati istoriju brojanja. matcma-
moriJe s rnagnctskim je7.grima i busene kart ice. Ovaj kratak C:lanak ra;.matra pros lost
tikc. kalcndara i iaacunavanja ml 3000 p. n. e .. pa do pocctka 20. veka.
sadasnjl>St i buducnostlchnologije sme:itanja pmlataka.
Slater. f'ortmirs in Silicon (Si!icijwnski portreti)
Scheible, ,A Survey of Sturagc Opti<ms" (!vlogucnosti smc;tanja pudatakaJ
Zasto Dennis Ritchie nije uspeo da diplomira na Harvardu·> Zasto je Steve Jobs
Jos jedan prcgled telmolugije mcmorisanja podataka. !\utor ,;e bavi 'oada~njom sz-
postao vcgetarijanac'' Odgovor cete naci u ovoj fascinantnoj knjizi koja sadrzi kratke
Luacijom. Ovde se raLmatraju razlicitc varijantc RA1v1memorijc. tles memorija, trake.
biogralije 34 osobe kojc su uoblicile industriju racunara. od Charlcsa Babbagea do Do-
cvrsli diskuvi. diskete, kumpakt diskovi i DVD disk<ni.
nalda Knutha.
:t
il
652 Poglavljc 9: Spisak koriscene i prcporucenc literature 9.1 Sta hi jos trehalo prucitati 653
--~--~----------------

Stan i Skadron, ,.Power-Aware Computing .. ( Racunarstvo koje brine o potrosnji 9.1.4 Nivo mikroarhitekture
energije)
Burgeri Goodman, ,Billion-Transistor Architectures: There and Back Again'' (Arti-
Racunari su bukvalno postali previse mocni- trose previse elektricne energije. sto
tekture s milijardom tranzistora: tamo i natrag)
je rastuci problem u svetu. Ovaj clanak je uvodnik gostujuceg urednika za speeijalan
Zami,Jite da vam je 1997. godine neko ciao milijardu tranzistora i rekao: .. Napravi
broj casopisa ft'EE Compuler Maga::.ine posvecen racunarstvu koje brine o potrosnji
cip". Ka"-vu li biste vrstu arhitekture tad smislili'J Septernbra 1997. godine, takvopi-
energije.
tanje je postavljeno sedmorici vrhunskih istrazivaca arhitckture racunara i oni su svJ-
Triche!. The 8038o, 80-18o, and Pemium Processor ( Procesori 8038o, 80-18o i Penlium) jc odgovore objavili u casopisu IEEE Compzaer L'vlugaz.ine. Poslc sedam godina.
Tdko jc ovu knjigu svrstati u neku kategoriju jer se ona bavi hardverom, softve- njihova predvidanja su uporectcna sa stvarnim stanjcm.
rom i interfejsima. Posto autor radi u lntelu, neka ovo bude knjiga o hardveru. U njoj
Handy, The Cache Mcmorv Book, 2nd ed. ( Knjigu o kd memonji, 2. i:dwzje)
cetc naci sve 0 procesorima, mcmorijama, ulazno-izlaznim urectajima i interfcjsima
Projcktovanje kesa dovoljm1 je vazna tema da joj sc posvete citave knjige. U o>oj
cipova SOxS6. ali i o njihovom programiranju na ascmhlerskom jcziku. lako ima
se uporeduju logicki i tizicki kes, raspravlja sc o duzini redova, uporcctuju se stratc-
samo!) 15 stranica, ona sadrzi skoro is to toliko matcrijala kao i Messmcrova knjiga jer
su stranice vcce. gije direktnog i naknadnog upisivanja, sjcdinjeni i podcljeni kes. a razmatraju sc i
sollverski aspckti. Postoji i poglavljc o koherentnosti kda rnultiprocesora.
)
d 9.1.3 Nivo digitalnc logikc Juhnson, Sup!'rsculur L'vficropmccssor Design ( Projcktovanje Sllfh'r.\!-_ulun ih
procesora)
Floyd, Digilaf Fwulwnenluls, ?:!ih cd (Osnovi digiwlne Logikc. 8. i;danje) Za citaoce koje zanimaju Jcralji konstrukcija superskalarnih procesora. ova knjiga
Za citaoce hardverase koji /.ele dajos bolje proucc digitalnulogiku, ova ogromna, je dollar pocctak. To sc govori o preu;.imanju i dckodiranju instrukcija, prekorcdnl>Tl1
izuzetnu ilustrovana, cetvorobojna knjiga pravi je dragulj. u brojnim poglavUima izdavanju instrukcija. prcimcnovanju registara. rezervisanju resursa, prcdvictanju s}.D-
opisujll sc kombinaciona logika, programabilni logicki urectaji, tlip-tlopovi, pomerac- kova itd.
ki rcgistri, memorije, interfejsi i stosta drugo.
Shriver i Smith. ,The Anatomy of a High-Performance :'vlicroprocessor"' L-\natomija
Mano i Kimc, rogic Ulld Colllplller Design FundWIIC!l/(l/,\, 3rd ed (Osnovi logike i procesora visokih performansi)
pmjektovunja mc'wwm, 3. ialwzjc) Ova knjiga jc dobra studija mikroarhitckture savremcnog proccsorskog l'i['<L U
lako ova knjiga nijc clcgantna kau Fluydova, i onaje dobar matcrijal za prouca- njoj 'it: detaljno analizira klon Pentiuma- cip A1viD K6- s po.scbnim osvrtom na Jla-
:~ vanje ninJa digitalne logike. U njoj se opisuju kornhinaciona i sekvencijalna kola, re- ralelnu ubradu. r<ISporedivanJC instrukctja i optimiwvanjc perJ'urmansi.
gistri. memorije, konstrukcija proccsora i ulazno-izlazni urcctaji.
Sima ... Superscalar lnstructiun Issue .. t Pmhlemi sa superskalarnim instrukcijama:
!Vlayhcw i Krishnan . .,PC! Express an<J Advanced Switching" (PC! Express i naprcd- Supcrskalarne instrukcije su we va/nijc 1a :-.avr~mcne procesore. :'vli snw se tc
no komutiranje) temc clotakli u ovoj nasoj knjizi (prctmcnovanje. spekulativno izvr;avanjc iU.). a i
Magistrala PCI Express verovatnu cc zamcniti PC! magistralu u bliskoj buducno- ovaj (Janak SC bavi lime. kau i 11\tlllgim drugim lCil1a!lla.
sti. a uvaj clanak je prirucnik o njoj: govuri se o slujevirna. kontroli programskog to-
Wilson, .. Challenges and Treml:; in PnJces:,cH· Design .. (lzazovi i trcmluvi u projcKlO-
ka. virtuelnim kanalima, komutiranju i usmcravanju.
vanju procesora)
Mazidi i Mazidi. The 80t8(J !Bl'v! PC und Conzpuribfc Computers, -lrfz ed. ( !BM-01' PC Da li se proj.:ktuvanje pn_,ccsora !.aglibilo u 7.ivi pesak.'J Ni slucajno. Scst vr-
80x8(j i A.olli{Jatibilni rucunuri, 4. izdanje) hunskih strucnjaka za arhitc"-.wru pron:sura i; kompanija Sun. Cyrix. l\luwruLt. Mi-
Citaoci koji zdc da upoznaju sve cipove u PC racunaru. u ovoj knjiz.i cc pronaci ps, Intel i Digital raspredaju o tutnc kuda skJccih nekoLko gudina stremc pr"c:esiJri.
poglavlja posvecena glavnim cipovirna. kau i obiljc drugih infnnnacija o IB:\1 PC Ovo bi bilo zgndnu procitati 200S. godinc tali isto taku i :-.ada).
hardveru i programiranju na asemblerskorn jeziku.

Roth. Fundumcnluls of Logic Design ( 0.\!W\'i projcktomnju log ike) 9.1.5 Nivo arhitekturc skupa instrukcija
Ovaj ud.i:hcnik obraduje osnove prujc"-.tovanp Jigitalne logikc. od Bulovc algchre,
Antonakos. The !'t'ntium ivlicropmcessor ( ?mcesor !'enliwn)
prcko logickih kola. brojaca, .-,abiraca. tlip-tlupova i drugih tipova kombinaciunih i
U prvih dcvct pnglavlp UVL' knjige opisuje sc pmg:rallliranjc Penliuma na <bem-
sckvcncijalnih kola.
blersknm jeLiku. Poslcdnp dva sc bavc Pcnliummim hardverom. Sve je Jopunjcno
brojnim primerima k,Jda i "bpt.njc'llJima f3lUS-a.

,I
. -..1
654 Poglavlje 9: Spisak koriscene i preporui'ene literature 1), I Sta bi jos trebalo proCitati 655

Ayala, The 8051 Microcontroller, Jnl ed. (Mikrokontroler 8051, 3. izdwzje) Russinovich i Solomon. Inside Microsoft Windows, 4th ed. ( Unutar Microsoftovog
Ako vas zanima programiranje cipa 8051, ova knjiga prcdstavlja dobar pocetak. Windowsa, 4. i::.danje)
Ako zelite da saznate kako Windows radi iznutra, ovo je knjiga za vas. U njoj se iz-
Bryant i o· Hallaron, Computer Syslcms A Programmer's Perspeclive ( Racunarski si-
stemi i::. perspektive programera) medu ostaiog govori o arhitekturi sistema, sistemskim mehanizmima, procesima,
programskim nitima, upravljanju memorijom. bezbednosti, ulazno-izlaznim operaei-
lako nije sasvim jasno organizovana, ova knjiga obradujc brojnc teme koje se ticu
jama, kesu i sistemu datoteka. Knjiga je predvidena kao udzbenik za studentc racu-
nivoa ISA, ukljucujuci njegovu aritmetiku, razne vrste instrukcija, kontrolu toka i op-
timizaciju programa. narstva iii IT profesionalce.
Tanenbaum i Woodhull, Opcraling Systems: Design and Implementation, 2nd ed
Paul, SPARC Architecture, Assembly l~anguage, Programming, and C (Arhitektura
SP/1.RC, asemblerskije::ik, progrwnirunjc i C) (Operalivni sistcrni: projektomnjc i implcmcntacija, 2. iz.danje)
Za raziiku od mnogih knjiga o operativnim sistemima kojc se iskljucivo bave teo-
Cudo nevidcno! Evo knjige o programiranju na ascmblerskomjeziku. a ona nijc o
rijom. ova obraduje samo reie</antnu teoriju i ilustruje je razmatranjem koda jednug
!ntelovim procesorima 80x86. Ona govori o procesoru SPARC i nacinu njcgovog
programiranJa. 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.
Weaver i Germond, The S1~4RC Archilccturc Manual ( Primc"nik ::.a SPARC arhilckturu)
Kako racunarska industrija probija granice izmedu drzava, standardi postaju sve
9.1.7 Nivo ascmblerskog jezika
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- Levine. Linkers and Load!'rs ( Progmmi ~a flOVc~ivanje i uhluvanjc)
formacija o radu 64-hitnog procesora SPARC. /\ko je povezivanje problem kojim sc bavite. a uzivate u razlicitim furmatima ob-
jckata oko sehc. razlici izmectu statickog i dinamickog povczivanja, razlicitim forma-
9.1.6 Nivo operativnog sistema racunara t i ma bibliotcka, ova knjiga je namenjena vama.
Saluman. Asscmhlers und Louder.\· (Ascm!Jieri i pmgnuni ~a u(iluvwzje)
llart. .,Win32 System Programming"' (Pmgramiranje sistema Win32)
Svc sto 2elite da znate o radu ascmblera sjnlnim iii s dva prolaska, kao i o programi-
Za razliku ml gotovo svih knjiga o Windowsu, ova nc insistira na njcgovom gra-
ma za ucitavanJc. na!at.i sc ovdc. Objasnjeni sui makroi, kao i uslovljeno ascmbliranjc.
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- 9.1.8 Ad1ilckture paralelnih racunara
lazne operacijc itd.
Advc i Gharaclwrlon, ,Shared l'vkmory C\msistcncy Mndcls: A Tutorial" (Mudcli
Jacob i Mudge. ,Virtual Memory: ls~ues of Implementation"' (Virtuclna rnemorija: doslcdnosti del.Jcnc memmijc: prirucnikl
prohlcmi sa implernentacijom) l\lnogi savrcmeni racunari. narucito multipruccsori. podr?avaju model slabije do-
Savrcmen i dobar uvod u sisteme virtuelne memorijc. Objasnjavaju sc razlicitc slednosti od doslednosti rcdosleda. U ovum prirucniku razmutrcni su razli(·iti mudcli
strukture tahela stranica i TLI3 strukture, a objasnjcnja su ilustrovana konkrctnim pri- dmlcdnosti i uhja,:;njcno .JC bko radc. U knji/.i sc argument<lvano potvrduju i odha-
merima proccsora MIPS. PowerPC i Pcntiuma. cuju hrojni mitovi "~!abo duslednoj mcnwriji.
:~~! Me Kusick et a!., Design and Ime!cJncniUtion of" thr .f..4 !JS/J Opemling Sv.\lc/11 ( l'ro- CPmer. Nel\wrk Sr.lll'lll.l nc.1ign ( l'mJckfm·anje mrc;nih .lislemc~)
" jekto\'WJjc i imfJiemcntucija upcruti1·nog sislcllla 4.4 /JSJ))
Za razliku od vec'ine knjiga o UNIX-u. ova pocinje l"otogratijom cetvorice autora.
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
snimljenoJ na konfcrenciji USENIX, od kojih su trojica mnogn toga napisali o sistemu k.oji sc moraju pra1 iti pri prujcktovanju. U trecem dclu knjige. kao primer iz prakse
4.-1 HSD i potpuno su kvalifikovani da objasne kako on radi. Knjiga obrac1uje sistem- opisan .1e mrc/ni pmc:c·sur ,'\gcre.
ske po/.ivc, proccsc, ula/.-izlaz, a ima i izu/.etno dobar dco posvccen radu u rnrezi.
Dally i Tuwlc,, /'rinci;Jics um! Pmcti< es of fntcrcollnct"!ioll Selii"OI"ks ( Pri11ci{'i i
i.-:. Ritchie i Thompson, ,.The UNIX Timc~-Sharing System"' (Sistem deljenja vrcmena u prukti<'nu l'rimeno inlernih llli"L'.~!II
UNIX-u) Ako se 1.animak 1.a interne mrd:c. treha ovo da pogledate. PLlsk U\'Oda u topolD-
:if
Jedan od prvih radnva o UNIX-u. Jos uvck ga vredi citati. lz ove male ,.semenke"" giJU. dctaljnu se upisuju mrc/.c tipa kptira i tPrusa. kao i nehlukiraJliL'e mrcie. Zatim
inastan jc rnocan operativni sistem. skdi nekulik1l pogla\ ija o usmt'ravanju. kontroli toka. baferovanju, kruznom biuki-
ranju i srodnim temama.
656 Poglavljc 9: Spisak korisccnc i prcporuccne literature 9.1 Sta hi jos trehalo procitati 657
:~==~-------------------

Dongarra ct al., The Source hook of Purallel Computing (Biblija paralelnog Stenstrom et aL .,Trends in Shared Memory Multiprocessing" (Trcndovi u razvou
ral'unurstva) multiprucesora s deljenom memorijom)
Programiranje multiprocesora i klastera prilicno sc razlikujc od programiranjajed- lako sc na multiprocesorc,; dcljenom rnemorijmn cesto gleda kau na superracunl-
noprocesorskog sistema. U ovoj knjizi, scdam vodecih strucnjaka il oblasti paralcl- re namenjene obimnim naucnim izracunavanjima, naucne primene su samo mali deo
nog programiranja govorc o njcgovim razlicitim aspektima. izmcdu m.talog o njihovog trzista. U ovom Clanku autori razmatraju gdc !eli stvarno trziste ovih rai:J-
paralclnim arhitckturama, sortvcrskim tehnologijama, paralclnim algoritmima i izve- nara i kakve to ima posledice po njihovu arhitekturu.
snim aplikacijama. U ngcrer et a!.. ,A Survey of Processors with Explicit Multithreading" (Prcglcd pu-
Hill. ,Multiproce~sors Should Support Simple Memory-Consistency Models'" (Mul- cesora sa eksplicitnim visenitnim radum)
llprucesori treba da podi'Zc jednostavne modele doslednosti mcmorije) lJ clanku je objasnjeno kako radi svaki od glavnih tipova viscnitnog rada (u vis,J-
Opustena scmantika memorijc aktuelna je i kontmverzna lema u oblasti pro- koj rczoluciji, uniskoj rezoluciji i simultanog) i dati su brojni primeri eksperiment~l­
jektovanja memorijc multiprocesora. Modeli slahijc doslednosti dopustaju izvesno nih i kom~rcijalnih racunara kl'lji koristc ove tehnike.
hardversko optimizovanje (npr. preurcdcnje redosleda zahteva upucenih memoriji), Wolf, ,The Future of Multipruce~sor Systems-on-Chips:· ( I3uduL'nost multiprocesor-
ali to otezava programiranje. ll ovum clanku autor razmatra mnoge teme kojc se od- skih sistema na jednom cipu)
nosc na doslcdnostmcnwrije i zatim zakljucuje da opustena scmantika mcmorije do- Posto JC opisao projektc tri postojeea sistema na jcdnom cipu, au tor analizira hard-
nosi vise stele nego koristi. verske i softverskc izalove za huduce sisternc. U hardvcrske problemc spadaju raL u
Hwang i Xu. Sculahle l'umllel Colllflllting (Ska/uhi/no pllralebw ro{wzurslvo) rcalnom vremcnu i oslobadanjc loplote. lJ softverske spadaju prublematika opcrat:v-
Duticuci se i hardvcra i softvera, autori daju iscrpan, ali citljiv priLlz paralclnog nog sistema i eventualni bezbcdnosni prohlemi.
racunarstva. Nekc od lema se odnose na UMA i NUMA multiprocesorc, MPP multi-
raC·unarc i klastcre radnih stanica, na prosledivanje poruka i paralclno prograrniranje. 9.1.9 Binarni brojcvi i brojcvi u formatu pokretnog zareza
Lawton. ,Will Network Processor Units Live up tn Their Promise''" (Hl1ce li mre/ni Cody, ,Analysis of Proposals for the Floating-Point Standard" (Analiza prcdlcga
pruccsori ispuniti oceki vanja' 1 ) standarda za format pohetnug lare/a)
lako su mrezni procesori napravljeni da hi ubrzali obradu mre:1.nih pakcta, njihov Pre nekuliko godina. institutlEEE projckto,·aojc arhitekturu s kmi;cenjcm hrojc-
uspeh nije garantO\ an. U ovom clanku au tori kriticl-.i razmatraJU tchnulogiju i ncke ci- va u forrnatu pukretnog z.areza kojaJe postala de ;;lt'tu stancbnl t'a sve savrcmenc pr·o-
t:'
nioce koji mogu da uticu na uspch iii new.pch ovih procesora. cesorske cipove. Cody rannatra razlicitc pruhkmc. predluge i knntroverzt: kuji su "c
i\lcKnight ct a!., ,Wircles.'i Grids'· (Beticne re~ctkc) pojavili tokllm pnslupka qandardit.acije.
Rdctke Sll tek usle u praksu. a lljihova sledeca gcneracija- ht:Zicne mrde- vee Koren .,Computer Arithmetic Algorithms" (1\lgnntmi racunarskc· aritmcttke)
je na horizontu. Slicno ohicnirn rc~ctkama, i ove poveLuju vise organizacija u jedin- Potpuna knjiga o aritmetici. pw.ebnu usmercna na al~uritme 1a br;o sahirar;jc.
stvenu virtuelnu organizaciju da bi Lajednicki koristile resurse. s tim stn sc za poveli- mnozenje i deljenjc. Veoma prcporucijivo svaf-Dn:c: ku misli dajc sve stu trcha 1.:".<tli
vanje mobil nih kmisnika sa odgm arajucim resursirna koristi heiicna tehnologija. u aritmctici naucio u srednjuj ~koli.
f elva slcJcca (Janka Sll 0 bezicnim resetkama.
IEEE. f'mc. o{ tile n-rlz SmlfJI.'.Iillt't on Colllf!lll<'r Aritfz111etic ( /))()mi~ tw!tn·u 11<1'?
Pfister, In Seurc!t of C/us/ers, 2nd ed I U ()()fru:.:i :.:n k/us/erinw. 2. i:.:dunje) Simpo:.zju11w o ru{znwnkoj ariiiiii'Iici)
lako cete definiciju klastera naci tek na T2. stranici (skup racunara koji radc lajed- Nasuprot pnpularnum mis!jcnju. aritmctiLt jc' vcuma /.ivu istra£iYa"ko podrut.'.i~ u
nul. ova knjiga ohuhvata i svc uohicajcne multiprocesorske i rnultiracunarske sistcme. kome se rada mnogo clanab kdjC pisu matemati~·ari ali 1 cL!n~tka koje drll[!i pi>u lLl
Dctaljno se opisuju njihov hardver. soft\·er, perfmmanse i raspolozivust. Upuzorava- bi ih rnatt'matit.'ari citali. U <>V'Dj senji ralh>va sa Simpuzijuma sc. i!lllc'dtt ostaluC!. pri-
IIlo citaoca da autorov ncfonnalan stil koji Je u pocctku zabavan. potpuno i.~:anda do kazuju nova s:unanja na podmcju vriu brzog sabiranja i mnoienja. arirmcr,o.,,i'-
petc,lute strane. VLSI hardvera, koprocesnra. tukrancije gre~ai-;,:1 i z~t,:kn.tztvanp.
Snir et al., Mf'/: The Co111plcte Rcj~rcnce Monual (/v/1'1: l'otpun reji'tnztni prim('nik) Knuth. Sclllinwncri<·al :\lgoritluns. 3nl ed. I PoillfllUII~ri..'l·:i n!goritmi. 3. i;·dun!t' 1
ll nasluvu jc svc receno. Akn /elite da naucite programiranje u okruzcnju MPL Obiljc matcrijala o puz.ici,>ntm hrujl::milll ,;istL:nima, aritm,·tic:i :1r<'icva u f,mn.ttu
pngkdajte uvu knjigu. Ona pol-.riva komunikaciju od tacke do tacke i kokktivnu pokretnog zaro.a. aritmctici vi~cstrukc' t~tcnu~;ti i slu.:':lJnim hn•j-:~:ima. (h~tj n::ticripl
komunikaciju, komunikatore, rad sa okruzenjcm. pravljenjc protila itd. LahtevJ i LasluL:ujc da ga pa/.lji~: u procilate.
658 Poglavlje 9: Spisak koriscene i preporucene literature 9.2 Abecedni spisak literature 659

Wilson, ,Floating-Point Survival Kit" (Komplct za prdivljavanje medu brojcvima u ANDERSON, D.: Universal Serial Bus System Architecture, Reading, MA: Addison-
formatu pokretnog zareza) Wesley, ll)97.
Lep uvod u brojcvc u fonnatu pokretnog zareza i standardc, za one koji mislc da ANDERSON, D., BUDRUK, R., SHANLEY, T.: PC! Express System Architecture,
se svet zavrsava brojcm 65.535. Razmatraju se i neki popularni testovi performansi Reading. MA: Addison-Wesley, 2004.
pri radu s brojevima u formatu pokretnog zareza, kao sto je Unpack.
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
9.1.10 Programiranje na asemblcrskom jeziku 1995.

Blum, Professional Assembly Language ( Profesionalni asemblcrskije-:ik) ANTONAKOS, J.L.: The Pentium Microprocessor, Upper Saddle River, NJ: Prentice
Vodic za programiranje Pentiuma na asemblerskom jeziku za profesionalce. Posto Hall, !997.
je knjiga namenjena profesionalcima, autor pretpostavlja da na svom Pentiumu AUGUST, D.I., CONNORS, !,).A., MSHLKE, S.A., SIAS, j.W., CROZIER, K.M.,
izvrsavatc Linux i usrcdsreduje se na Linuxov asemblcr i GNU alatke, kao i na ob- CHENG, B.-C., EATON, P.R., OLANIRAN, Q.B., HWU, W.-M.: .,Integrated Pre-
jasnjavanje Linuxovih sistemskih poziva. dicated and Speculative Execution in the IMPACT EPIC Architecture," Proc. 25th
Ann. lm"! Symp. on Computer Arc/1.. ACM, pp. 227-237, 199~.
Irvine. Assembly LanguugcjiJr In tel-Bused Complllcrs, 4th ed. (Asemhlcrski je::ik z.a
rw'wzarc nu /){lz.i lntclm·ih procesora) AYALA, K: The 8051 Micmcontml!cJ; 3rd ed.. Clifton Park, NY: Thomson Delmar
Tema ovc knjige je prugramiranje Intclovih procesora na ascmblerskom jeziku. Learning. 2004.
Obraduju sc i programiranje ulazno-izlaznih operacija. makroi. datoteke. povezi- BAL, H.E.: PmgraJ!lllling Distribu!cd Srslcms, Heme! Hempstead, England: Prentice
vanjc. sistemski prekidi i mnoge druge srodne tcme. 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
9.2 ABECEDNI SPISAK LITERATURE System," ACM Tmns. on Computer Syslelll.\, vol. !6. pp. l-40. januar-fcbruar !99~.

ADAMS, JH., DULCHINOS, D.: ,.OpenCabJc:· !!o.fT Comnwn. Muguz.inc. vol. Jtl, pp. BAL, H.E., KAASHOEK, M.F., TANENBAUM, A.S.: ,.Orca: A Language for Parallel
9~-1 05, jun 200 l.
Prugramming of Distributed Systems:· !EfT Truns. on Sofilmrc Engineering, vol. I~­
pp. 190-205. mart !992.
ADIGA, N.R. et al.: .. An Overview of tile RlueGcnc/L Supercomputer." Fmc. Super-
conztmting 200:!, ACM. pp. J-22. 2002. BAL, H. E., TANENBAUM, A.S.: .. Distributed Programming with Shared Data,·· Proc.
IYI'iR lnr'! Conf on Compttler l.angzwges, IEEE, pp. ~2-9!, 1988.
ADVE, S.V., CHARACHORLOO, K.: ,Shared Memory Consistency !vlodcls: /\Tuto-
rial:' !EFT Cmnputo Mugaz.inc. "''!. 2LJ, pp. (;(;-76. dcccmbar l9LJ6. BARROSO, L.A., DEAN, .1., HOLZLE, U.: ,.Web Search for a Planet: The Googlc Clu-
ster Architecture," !EEl: Micm Maga:inc. vol. 23, pp. 22-2~. Ill~lli-april 2003.
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. BECHINI, A., CONTE, T.l\1., PRETE, C.A.: .. Opportunities and Challenges in Embed-
eke! Systems," JELL /'v!icm Mugu;int', vul. 24. pp. ~-9. jul-avgust 2004.
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. 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.
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. BERMAN, F., FOX,(;., HEY, A ..J.G.: ,.Grid Computing: Making the Global Infrasttruc-
ture a Reality," 1-lobukcn. NJ: .John Wiky. 2003.
ALMAS!, G.S. ct al.: .,Systclll lvLtnag:::mcnt in the BlueCc·nc/L Supcrcumput•:r:· l'rr>,·.
f7!1z In!' I l'uru/!,•1 Disl!: !'tw·. S\11/f' .. lEfT. 2<i0.1a. BJORNSON, R.D.: ,Linda 011 Di.stributcd Memory i\1ultiprocessors," Ph.D. Thesis. Yak
!Jniv .. lSlLJ3.
AL\IASI, C.S. et al.: ... \n Overviev, Of The lllucgt·nc/L Syskm S<llhvc,rc Or_c;ani;ati-
nn:· P111: Pmc·. Lell<'i"l', vol. U. 56!-)74. april 2()0.\b. BLUl\1, R.: fJwjt's.\ionu! As.\etll/J!r (wzguuge. New York: Wiley, 2005.

Ai\IZA, C., CO\:,,\., D\\'ARKADAS, S., KELEilER, P., LU, II., RA.J,\t\IO"''Y, H.. BLE\IRICH, M., CHEN, D., CHIU, C., COTEUS, P., GARA, A., GIAJ\IPAI'A,
YL:, \V., Z\Y\Ei\iEPOEL, \\.: .. T<"c~,d:vi.lrks: Shatnl i\kntur;- Cllmpuring on a Net- 1\I.E., HARING, R.A., HEIDELBERGER, P., HOENICKE, D., KOPCSAY, G.V.•
\,":: OHI\IACHT, M., STEINMACHER-BlJROW, B.D., TAKKEN, T., VRANSAS, P.,
work of \Vor~ statinJh, .. ffcL'E ComjJ!iler Magu~inc. vol. 29, pp. !8-:2~. ichruar l 'J')!J.
LIEBSCII, T.: ,.An Overview of the BlucCcne/L System,'·, IBM J. Research mulDe-
vei., vol. 40. mart-maj, 2005.
'
>l''

.,,
'it-·
' '·
•."":"'*

~~:.____
9.2 Abeccdni spisak literature
661
660 Poglavljc 'J: Spisak kol"isccnc i prcporuccnc literature

COHEN, D.: ,On Holy W:1rs and a Pka rur Peace." fEEt'. Computer Maga~ine. vol. I+.
HOHKAR, S.: .,Getting Gigaseale Chips,"' Queue. pp. 26-:l.l, Oct. 2003.
pp. 4~-:14. oktobar I')~ I.
BOSE, P.: ,Computer architeclllrc research: Shifting priorities and newer challenges."
COLWELL, R: Th" l'eruium Clzmnicles New York: Wiley, 2005.
JE£12' 1Hinn i\ilugu~ine. vol. 24. p. 5. novcmbar-decembar 2004.
COMER. D.E.: .. Network Sy:'tcms Design Using Network Processors: Agerc Vcrsior,"
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. 369-3~8. Upper Saddle River. N.l: Prentice !Iall. 2005.
april 1972. CORBAT<Y, F..).: .. PUI a' a Toul for System Programming," Duwmation, vol. 15. rP-

BRIGHTWELL, R., CAMP, W., COLE, B., D E BENEDICTIS, LELAND. R, 68-76. n1aJ 1%9.
TOMPKINS, ,J.: ,Architectural Specitication for Massively Parallel Computers- An CORBAT<Y, F ..J., VYSSOTSKY. V.A.: ,,ntroduction and Overview of the MULTlCS
Experience and Measurement-Based Approach.'' [Prihvaccno za stampanjcj. System." Proc. FJCC. I' I'· 1S5-l'J6, 1965.
BRYANT, R.E., O'HALLARON, D.: Computer Srstems ;\ Prugran1mer\· l'er.\'f!iTiil·e CROWLEY, P., FR.\~KLI~, ;\I.A., HADll\liOGLll, H., ONUFRYK, P.Z.: Net1wrk
Upper Saddle River, NJ: Prentice Hall, 2003. l'mcessor D<'sign : [.,suo and Frut"tices, Vol. I, San Francisco: Morgan Kaufmann.

BUCHANAN, \V., WILSON, A.: Admnced PC Arcliilcclw-e. Reading. MA: Addison- 2002.
Wc,Iey. 200 I. DALLY, W.J., TO\VLES, B.P.: Principles and !'mcticcs of Interconnection Networks,
San l·r~mci'ico: l\lurgan Kaufmann. 2004.
BlJR(;I~H. D., COODMAN • .J.R.: ,Billion-Transistor Architectun;,: There and Back
Again," ll:LF Computer ,',1/aga.~ine, vol. 37, pp. 22-20. mart 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( l~c-h.: Coding speculalive
BCRKHARDT, H., FRANK, S., KNOBE, B., ROTHNIE, .J.: ,Overview of thl' KSR-
ncc;ttion und Com;nuing, IEEE, pp. )~8-593, 2004.
1 Computer System," Technical Report KSR-TR-920200 I. Kendall Square Research
Corp. Cambridge. MA, 1992. DE.\=". A.<;.: .. Erti.:icnt Rc<tl-Timc Fine-Craincd Concurrency on Low-Cost :VIicroc~Hl­
tmlkr,,"· Jf:LE Micro Mugu:.ine, vol. 24. pp. I 0-22, Jlll-avgust 2004.
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 DE.'i."\ilNC, P..J.: .. The Working Set Model for Program Behavior,"' Commun. of the

CALCVTT, D .• COWAl\, F., Pi\RCHIZADEH, H.: 8051 IYiinwonlmlli-'r' ·.In .lf'f'li-


ACM. vol. II. pp. 32.1-.l.B. maj 196~.
cutions Bused lntmduclioll. ()\ford: i'icvv ncs. 2004. Dl.l KSTRA. E. W.: .. GOTO Statement Considered Harrnful." Conunun. of" the .-\CM. vnl.

CARIUEHO, N., GELER.'JTER, ll.: .. Linda in Conte.\t," Collllllw:. o/thl' ACM. vol. 32. II, ppl.\7-14~. mart 196ila.
pp. 444 4:1~. ~tpril I <)~9 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.
CU.\RLESVVORTH, A.: ,The Sun Fireplanc lntc-rc·onncct.'' fLTE Micro ,\/,!g<nne. vol.
22. pp. ~'6-45. pnuar-fc:hruar ...'li02. DO'<.\LDSO"'. C., JONES. D.: .. Cable Television Broadband Network Architectures:·
I t:Lt.' Colllll'llll ..·~Ju~ujne, vol. 39, pp. 122-126. jun 200 I.
CHARLESWORTH.:\.: .. The Sun Fircr,Jant' Interconnect." l'rc•c Con( 1111 High i'cr(
:Yetworki11g !lnd Colllf!llling. AC:\1. 2()1) 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-
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\. rnan. 2t)()_1.
DLIH)!S, :\L, SCHEURICH . C., BRIG<;S, F.A.: .,l\kmory Access ButTering in Multi-
CHEN. L., DROPSHO. S., .\I.BO"<E.'-;1, D.H.: ,Dyn:tmJc DaLt llqccndcnce Trad.. i11g
pn•ccs'< '~"'·" Pro•·- I 3th ;\nn. lnt'l Sv1np. on Computer Arc/1., ACM. pp. 434-442, I ~i\6.
and its Application to Branch Prc·diciir!ll ... Pro,·. ,\'ill[/i h:'l S\"!llf'. uil
lllutlc·e Conl[>!llerAn-li., IEEE. pp. IJ)-7X . ...'I10.i. J)l; l .0:\C. C.: ..The L\-64 .-\rchitecturc at Work." !ED-: Computer 1Hugu:.ine. vol 31,
CHOU, Y.. FAHS. B., ABR.\H.\.\1, S.: .. ~,Jicrc•:u··:hitccturc· Optiminttioth fur Ex- l'P· 2+-32. jUJ JL)'Ji).
ploiting i\!cmon-Lc·vell'araiL·:i>,tll,I''ICI) f':;,,. 3/sr. 11111. fnr'l Svlllf.'. 011 Co'"f'll'cr DL'TT.\-ROY. A.: ,An Overview or Cable Modem Technology and Market Perspecti-
,.\rei!.. ACvl, pp. 76- "!/, 2004. ves ... ! EFF C.mulllt/1. Alugldne. vol. :19, pp. ~ 1-80. jun 200 I.

CLAASE:'Ii, T.A.C.l\1.: .. Sy,Lcm <'11 :1 Chip: Changing IC De,ign l""cLty and in tk h.t- ESC!l\L\N:\. F., KL\t:ER. B .• MOORE, R.. W:\LDSCII\l!DT, K.: .. SDi\ARC: An
ture," !!':FE ,'v/icm Jlm;u:::ine. 10!. 23. pp . ...'li-26. rmj-Jllll 2\JO.i. I>..c.:iidL·d C:Jche-Only JVkmory Architecture,'' /t.TE Micro A!ilg<I:.inc, vol. :?.2. PI=· 62-

CODY. \V..J.: .. Analysis llt" Prc'P"'"\' l"ur the Huating-f'uint StamLtrd ... !LLL' Cu111pu:u 70. n1:tj-jun. 2002.
Mugu.:inl.', vol. 14, pp. 63-M-\, m:.rt I'1S I.
662 Poglavlje 9: Spisak koriScene i preporucene literature 9.2 Abecedni spisak literature 663

FAGGIN, F., HOFF, lVI.E., Jr., MAZOR, S., SHIMA, lVI.: ,The History of the 4004," GROPP, W., LUSK, E, SK.JELLUM, A: ,Using MPI: Portable Parallel Programming
IEEE Micro !vlaga:::ine, vol. 16, pp. 10-20, novembar 19Y6. with the Message Passing Interface." Cambridge, MA: M.I.T. Press, 1994.
FALCON,A., STARK, J., RAMIREZ, A., LAI, K., VALERO, M.: ,Prophet/Critic Hy- GURUMURTHl, S., SIVASUBRAMANIAI\1, KANDEMIR, M., FRANKE, H.: ,Re-
brid Branch Prediction," Proc. Jlth Ann. lnt'l Symp. on Computer Arch., ACM, pp. ducing Disk Power Consumption in Servers with DRPM," IEEE Computer Magazine,
250-261, 2004. vol. 36, pp. 5Y-66, decem bar 2003.
FISHER, J.A., FREUDENBERGER, S.M.: ,Predicting Conditional Branch Directions HAGERSTEN, E., LANDIN, A., HARIDI, S.: ,DDM -ACaehe-Only Memory Archi-
from Previous Runs of a Program," Proc. Fijih lnt'l Conf on Arch. Support./(Jr Frog. tecture," !Ff:F Computa Magazine, vol. 25, pp. 44-54, septembar 1992.
Lang. and Operating Syst., ACM, pp. 85-95, 1992.
HAMACHER, V.V., VRANESIC, Z.G., ZAKY, S.G.: Cumfmler Organization, 5th ed.,
FLOYD, T.L.: Digital Fundmnentuls, Rtlz ed., Upper Saddle River, NJ: Prentice Hall. 2002. New York: i\kGraw-Hi1l. 2001.
FLYNN, D.: ,AMBA: Enabling Reusable On-Chip Designs:' IEEE Micro Maga:::ine, HAMMING, R.W.: .. EITm l)etecting and EITor CmTecting Codes," Bell Syst. Tech . .T.,
vol.l7,pp.20-27,jull997. vol. 29, pp. 147-160, april1l)50
FLYNN, M.J .: ,.Some Computer Organizations and Their Effecti vencss," IElc'F Truns. mz HAMMOND, L., WONG, V., CHEN, M., HERTZBER<;, B, DAVIS, J., CARL-
Computers, vol. C-21, pp. 948-960, septembar 1972. STROi\1, B .• PRABHU, M., WIJAYA, II., KOZYRAKIS, C., OLUKOTUN, K.:
:FOSTER, I., KESSELMAN, C.: The Grid 2: Blueprint ji'r a New Computing !nfru· ,Transactional Memory Cuhercnce and Consistency.'' /'roc. 31th Ann. In£ 'I Symp. on
strucrure, San Francisco: Morgan Kaufman, 2003. Computer Arch., ACM, pp. 102-113, 2004.

FOSTER, I., KESSELMAN, C., NICK, .J.M., TUECKE, S.: ,Grid Services lor Distri- HANDY, J.: The Cache Memory Book. 2nd t'd., Orlando, FL: Academic Press. I 99~.
buted Systems Integration," !ELE Computer Maga:::ine, vol. 35, pp. 3 7-46, jun 2002. HART, .l.i\1.: Win32 Sy.1renr Pmgrwmning, Reading, MA: Addison-Wesley, 1997.
FOSTER, 1., KESSELMAN, C.: ,Globus: A Metaeomputing lnfrastructun; Toolkit.·· HEATH, S.: l:'m!Jnldcd S\'.\ICIIIS nc.1ign, Oxford: Newncs, 2003.
!nt'l J. ofSupacumputer A[!plicutions, vol. II. pp. 115-128, 19l)8a.
HENKEL, .J., Hll, X.S., BHATTACH,\RYYA, S.S.: ,Taking on the Embedded System
FOSTER, I., KESSELMAN, C.: ,.The Globus Project: A Status Report." !I'PS/SPDP Challenge," fEU:' Computer Magu;ine, vol. 36. pp. 35-37, april 2003.
'98 Hell:ro~;l'llenus Col!lfJUting V\()f"kslwp, IEEE, pp. 4-11\, 1998b.
HENNESSY, J.L.: .. VLSI Processor Architecture," IEEE Trans. on Complllers, vol. C-
FOTHERINGHAM, .J.: ,.Dynamic Storage .<\!location in the Atlas Computer Including .n. pp. 1221-1246. decem bar 19X4.
an Automatic Usc of a 8acking Store." Coi!ZIIIll!l. of' the ACM, vol. 4. pp. 4.<5-4.i(,, ok-
llEN.'IESSY, .J.L., PATTEJ{SON, D.A.: Computer Arclritecturc A Quwztitatin· ;\p-
tobar 1961.
pmw-h. 3rd cd. San Francisco: Morgan Kaufmann. 2003.
GEIST, A., BEGUELIN, A., DONGARR,\, .J., .JIANG, \V., MANCHECK, R., SUN-
HILL, i\1.: .,Multiprocessors Should Suppurt Simple tvkmory-Consistency Models,"
DERRA:\1, V.: PV!vl: Parallel Virtual MLI<'hine -A Usa\ Guidt! and iitioriulji1r N<'l·
!f.Ef:' Computer Mugu:.inf. vol. 31. pp. 28-34. avgust 199~.
worked Purallel Co!llpllling, Cambridge, MA: i'vi.I.T. Pr~ss. i l)l)4.
J!l:\T! >N, G., SAGER, D., UPTON, i\1., BOG<;S, D., CARMEAN, D., KYKER, A.,
GERBER, R., BINSTOCK, A.: Pmgrwmning H'ith J-I,per-Thr{'({ding Tcchnolo~v. SanLI
ROUSSEL, 1'.: ,.The Micruarchtcctun; of the Pentium 4," Inti!! 7(·cluwlogr Joumal.
Clara, CA: Intel Press. 2004.
vol. :i. pp. 1-12. januar-mart. 200 I.
GHEMAW\T, S., GOBIOFF, H., LEUNG, S.-T.: .,The Google Fiic System." Pmc.
JIOAI~E. C.A.R: ,.i\lonitors, An Operating System Structuring Concept." Cmnmwz. of'
19th Svll!l'· on Operating Ss·sre111.\' Princi1>lc.\. i\Cl\,l, pp . ..:''l-43. 200.1.
rile A CAl, vol. 17. pp. 54'!-557, oktobar ]l)74; I'ITatum in Coll/1111111. of'ihf i\Civl, vol.
GOODMAN, .).R.: .. Using Cache Memory to Reduce PrucessPr Mc'lll<'ry Trat'lic." Pmc. 1~. p. Y5. Feb. i<J75.
lOth Amr. lm 'I ,)'vlilp. on Colllf'llta Arch .. 1\Cl\l. pp. 124-! 3 i. llJ~3.
iiUJI, ,1., lHJRGER, D., CHANG, J., SO HI, G.S.:,. Speculative Incoherent Cache Pru-
GOODi\L\N, J.R.: .. Cache Consistc·nc·y and Sequential C"nsistency." T<?ci!. Rep. 61, ttlcois:· IU:L Micro ,'v/ugu:.inL', vol. 24, pp. I04-109, novcmbar-dccembar 2004.
IEEE Scalable Coherent Interface WorJ..ing Clruup, IEEE, Jl)~9.
1!\\'\:'-;(;, K., XU, Z.: Sculu/Jif Puml/el Computing, New Ymk: i'vlcCJraw-Hill, 199X.
GRIMSHAW, A.S., Wl'LF, \\.: .. Legion: A Vic\\ from 50.000 1-'cct." Pro,·. Fifth !nt'/
!1\Yti. \·V.-M.: .. lntroductitm lo Predicated ExcL·utiun," ILEF Computer /'v/(lgu::ine. vol.
Sv111p. on I-ligh-l'erfimnuncc Distn!Jured CJ/!lf!!tling. IEEE. pp. il'J-'llJ, avgust i l)~l(>.
31. pp. 49-50, pnuar Jl)l)~.
GIU:\ISH.\W, A.S., \\LLF, \\'.: .. The Legion Visit •n of a \Vorldwidc Virtual Computer,"
JRVlNE. K: A \.\1'/llbi\' Lunguuge .fin lntcl-l!osed Computers. 4tll ed.. Upper Saddle
Cmnm1111. o/!h(.} .-\CM. vol. 40, pp. 39-45. januar 1997.
River, NJ· Prentice Hall, 2002 .

;;~~
.
664 Poglavljc 9: koriscenc i pt·eporucene literature 9.2 Ahecedni spisak literature
------ - --- ----~-----
665

JACOB, B., MUDGE, T.: .. Virtual :\1emory: Issues of Implementation,"" IE/,·1,· Co!llfntta KONTOTHA:\'ASSIS, L, HUNT, G., STETS, R., HARDAVELLAS, N., CIERi\1-
Maga::inc. vol. J I, pp. J3-43, jun 1998a. AD, .\1., PARTHASARATHY, S., MEIRA, W., DWARKADAS, S., SCOTT, M.:
V1H-Based Shared Me!lwrv on Lo11 Lat.·ncv Remote 1Hemorv Access Nenmrks. Pmc.
JACOB, B., MUDGE, T.: .,Virtual Memory in Contemporary Microprocessors:· IEEE
2-Jih Ann. In! 'I S\mp. on Conrpuler ,\rclz., ACM, pp. 157-l6'J. 1997.
Micro Magu~ine, vol. 18, pp. 60-75. jul-avgust !998b.
KOREN, L: CompWI'r Arithmetic Algorirh111s, :--.l:ilick, MA:A.K. Peters, 2002.
JERRAYA, A.A., \VOL!•~ W.: MulliJ'rocessor S_vstems-mHr-Chip, San Francisco: Mor-
gan Kaufmann, 2005. KOllFATY, D .. :VL-\ RR, D. T.: ,Hypcrthrc~1ding Technology in the Ncthurst Microarchi-
tecturc," llo'E.t· ivlicm Muga:/ne. vul. 2.1. pp. 511-65, mart-april 2003.
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. KUMAR, R., JOUPPI. N.P., TULLSE!\, D.:\1.: .. Conjoined-Core Chip Multir·roccs-
sing:· Pmc. :17th ln!'l Srmf'· on Micn!i/rc!tuecnln'. IEEE .. pp. 195-206, 2004.
JOHNSON, K.L., KAASHOEK, M.F., WALLACH, D.A.: ,CR.L: High-Performance
All-Software Distributed Shared Memory," Pmc. 15ih Svmp. on Operating Svstnns LAMPORT, L.: .. flow to ~Ltkc a i\·lultirrr,ccssur Computer That Con-ectly Executes
Principles, r\CM, pp. 213-22~. 1995. Multipnxc" Prugrams." IEEE Tmns. on Com[>llters. vol. C-28. pfl. 690-691. sc:ptcm-
bar 197').
JOHNSON, M.: SuJ!cr.lmlur /vlicmprocessor Design, Upper Saddle River, NJ: Prentice
Hall. !9'JI. LA ROWE, R.P., ELLIS, C.S.: .. I:~pcrimcntal Cum pari sun of Memury Mana~ement
Policies for NUf'v!A tvlultipmcL'S."'rs:' ACM Trans. on Conrpwcr Systems. vol. 9, pp.
KALLA, R., SINIIA ROY, B., TENDLER, J.M.: ,.IBM PowerS Chip: ;\ Dual-Cure
J 19-363. nnvemhar 199 I.
Multithreaded Processor." /FIT tlticm Mugu~inc, vol. 24, pp. 40-47. mart-april 2004.
LAVAG.'\10, L.: .. Systems on a Chip: Thl' l'int Electronic Frontier,'" /Et.L' Alicro 'Vlaga-
KAPASI, lJ.J., RIXNER, S., DALLY, W.J., KHAILANY, B.,AHN, J.IL MATTSON,
:.:ine. Ill!. 22. pp. 14-1 S. scptemhar-ukluhar 20tl2.
P., 0\VENS, J.D.: .,Programmable Stream Processor.,;· IE/:'E Computer .\l<~ga::.ine.
vol. J6. pfl. 54-62, avgust 2il0c\. LA\\'TON, C.: .. Will Network l'mc~ssor Units Live up to Their Promise''," /LEE Com-
f!lllc'r J!u~<l~lll<'. Vlli. 37, pp. I J-15. arril 2004.
KAPIL, S., l\1 C GHAN, H., L:\WRENDRA, ,J.: ,A Chip Multithreaded Processor for
Network-Facing Workloads," ILF!c' AliCTO :H<i,~ll~inc, vul. 24. pp. 20-.10, mart-april 2004. LEKK.\S. P.C.: Net1mr/.: f'mcnsor.1: :\rchitec/ures. Pru!ocols, and f'latjimn.t. New
'{or!-.: :VlcCir~iw-Ht!I. 2\JtJi.
KATZ, R.H., BORRIELLO, (;.: Cmuunf'"ran f_ogic Design, Upper Saddle River, :\J:
Prentice Hall. 2004. LE\T\E, .l.R.: l.n:kcts ,,nd Lot:u'ers. San Fr:mcisco: Morgan Kaufmann. :2000.

KAUF;viAN, C., PERLMAN, R .. SI'ECINER, l\L: Net>wrk St'curity, 2nd cd., tipper Ll, K., llUD.\K, P.: .,\km.>l') Cohcrcnc·c in Shared Virtual 1\kmory SystL'lllS, .. ACM
Saddle River. NJ: Prentice Hall, 2002. "Ji-uns. "II Cn'''imler .'l\s!en;.,_ vol. 7. pp. 321-359. novembar 19S9.
KER!VL\RREC., A.-M., KUZ, 1., VAN STEEN. :VI., TA!\'Ei\B.\ L\1, r\,S.: .A h:ulle- Ll:VL\, F., C.-\ RltO, L., \'EL\ZCO, R., RELS, R.: ,,Injecting i\-lultiple Upsets in :1 SEU
work for ConsislL'nt Replicated \Vc·b Objects," Proc. 1 ~rililll 'I C{)l1t: uu Uisn: Crmrpu- Tolcr·:tnt :-)()51 \licT<•C.>nlrnllcr:' Pmc. Eiglllh lf.EL'Int'l On-Line 7i·sting \Vrwkshop
ting Sui., JEEF, pp. 271J-21\4, llJ')~ !FIT. p ll)J.Jul2Cil.'2.
KIM, N.S., AUSTI~. T., BLAAl'W, D., \IUDGE, T., FL\LTT:"iFR, K., II(,, J.S., IR- LI:\E..::. c\.: ... \') Jl,::1r<>tH>ti>i lnkrconncct for Synchronuus SoC Design:· IEEE Jficro
WIN, i\LJ., KANI>Ei\llR, \1., N.\RA'IA~AN, V.: ,.Leakage Current: 1\lu<li~\ Lt\' .\f,rc;•::·:u·. \PI 2-L i'!' i2--:i.pnuelr-fchmar 2004.
Meets Static Power." /ric/:' Conrpurer i\la~<~zine. vol. _1(). (1X-75. dcc.cmh:tr ~(1()3 LU, JL COX, \.1., IH'v.\RK.\DAS, S., RAJA\IONY, R., ZWAENEPOEL, W.:
KNUTH, D.E.: .. An Empirical Study or
FOR.TR.c\N Prugr:uns:· SIJji>t urc. !'r,;<"!i, e c\ ,.S, '~I\\ :u·c D1 -.t: i!•t:tl'c! Sh:u<:d 'vkmory Support for Irregular Arplications:· !'roc. Si.<lir
Erpcn,·nce. vol. I. pp. I ()j.J.B. I 'J71. C"n( on fJri11. unri /'uu ''' c o{l'umllel Pmgt:, pp. 4:\-56. jun 1997.

KNUTH, D.E.: The .\rr o{Conl['llli'r Pmgrrunming: Fwulunrc!l!ui ,\/goriilunt. _::,d ui., iXKASlE\'.lCZ, ,1.:. \ii_,;,>r 1.·\ Sdlogistic, 2nd cd., 0\ford: 0.\ford Univer.sity Press.
Reading. MA: Addison- \Vesky. l')lJ7. I'J5rs.
KNL:rl'll't l).E.: The Art of Colll,nttrer ProgrunJIJUn!_{: .Scnzinif!neri, ·u! ,\/giJriri;n: ~·. 3ul cd.. IXTZ, .l., 1-L\S.\ '1. ,-\.: ..H:gi• l'erfonnancc bi'(j,\ based Elliptic Curve Crypto~rapbic
Reading, ""I.\: Addison- Wl:'slcy, llJ'J~. Cu-Pr··''-'"·""r." !'rc•··· lnt 'I(',;:( on In/. Tech.: C'oding uml Cotnf!Uiing. IEEE, pJ. 4S6-
-J.-lJ2. 2\Jil-l-
KOGEL, T., :\·IYER, H.: .. Hctcr<>:,!cnct•u., \11'-SoC: the ,uiuri<ltlltJ cncr~;-cliicicnt si:,;nal
rrocessing,"' {'roc. -1/.\t Ann. Con( Oil lksrgn Ailtllli!lill{l/1, IFE·Y, I'Jl· hX6-(Jl) I . .20114. LY\'"IT'i:;:>:, K., loo, Y.: __i,,c:c:, and Ch.t!kngcs in Ubiquitous Computing.'" Cmzmun.
nfrlu.\CJ!. "':. 1:'_ pp. !>_~_,:,:'. ckcemhar ::'002.
666 Poglavlje 9: Spisak korisccne i prcporucene literature 9.2 Abecedni spisak literature 667

MACKENZIE, l.S., PHAN, R.: The 8051 Microcontrolln; 4th ed. Upper Saddle River, NICKOLLS, .1., MADAR, L.J. III, Johnson, S., RUSTAGI, V., UNGER, K.,
NJ: Prentice Hall, 2005. CHOUDHURY, M.: ,.Calisto: A Low-Power Single-Chip Multiprocessor Communi-
MAJ'I,"O,l\l.M .. KIME, C.R.: Logic and Computer Design Fundwnentals, 3nl ed, Upper cations Platform," IELE Micro Magaz.inc, vol. 23, pp. 29-43, mart 2003.
Sacldk River. NJ: Prentice Hall, 2003. NORTON, P., GOODMAN, .J.: Inside the PC, Sth ed., Indianapolis. IN: Sarm. 1999.
MARTIN, A.J., NYSTROM, M., I'APADANTONAKIS, K., PENZES, P.I., PRA- NULL, L., LOBUR, j.: The Essentials uj"Computer Organization and Architecture, Sud-
KASH, P.. WONG, C.G., CHANG, J., KO, K.S., LEE, B., OU, E., PUGH, J, TAL- bury, MA: Jones and Bartlett, 2003.
VALA, E- \'.,TONG, J.T., TURA,A.: ,The Lutonium: A Sub-NanojoulcAsynchronous
O'CONNOR, .J.M., TREMBLAY, M.: ,.PicuJava-1: The Java Virtual Machine in Harcl-
8051 f\iicrocontrollcr." Proc. Ninth lnt'L S_vmp. on Asvnchronous Circuits and Systems
ware.'' IEEE Micro Maga~inc, vol. !7, pp. 45-53, mart-april 1997.
IEEE. pp. 14-23, 2003.
ORGANICK, E.: The MUL71CS System, Cambridge, MA: M.l.T. Press, !972.
MARTIN, R.P., VAHDAT, A.M., CULLER, D.E., ANDERSON, T.E.: ,Effects of
Communication Latency, Overhead. and Banclwidth in a Cluster Architecture," Proc. OSKIN, M., CHONG, F.T., CHUANG, I.L.: ,A Practical Architecture for Reliahlc
24th, \nn. fill 'I Symp. 011 Computer Arch .. ACM. pp. 85-97, 1997. Quantum Computers," IF:"J~"I:" Computer iv!aga~ine. vol. 35, pp. 79-87, januar 2002.

MAYHEW, D., KRISHNAN, V.: , PC! Express and AJvanceJ Switching: Evolutionary OUAD.JAOUT, S., 1-lOUZET, D.: ,Easy SoC Design with VCI SystcmC Adapters."
Path to Builcling Next Generation Inlet-connects," Proc. 11th Symp. on High Per( ln- Proc. Digital Sv.1tem Design, IEEE, pp. 316-323. 2004.
tacmutc<"ls IEEE, pp. 21-29, avgust 2003. PAPAEFSTATHIOU, 1., NIKOLAOU, N,A, DOSHI, B., GROSSE, E.: ,.Network Pro-
l\IAZIDI, M.A., M C KIN LAY, MAZIDI, J.G.: 8051 iv!icrocontroll<'r and t"m!Jeddcd cessors for Future High-End Systems and Applications," lEI:"!:" /VIicro ,'-'faga::.ine, vol.
Svstems Upper Sacldle River, NJ: Prentice Hall, 2005. 24, pp. 7-9. scptembar-oktohar 2004.

MAZIDI. l\l.A., MAZIDI, .J.G.: The 80x86 IBM PC and Compatible Colltl>uters, 4th PAPAMARCOS, M., PATEL., j.: .. A Low Overhead Coherence Solution for Nlultipro-
ed.. Upper Saddle River. N.J: Prentice Hall, 2002. ccssurs with Private Cache Memories," Pmc. 11th !Inn. lnt 'I Sv111p. on Complllcr Arch ..
ACI'vl. pp. 348-354. l9t-:4.
l\1 C KNIGHT, L.W., HOWISON, J., BRADNER, S: ,Wireless Grids." IEEE Internet
Com1mting. vol. X, pp. 24-31. jul-avgust 2004. I'ARIKII, D., SKADRON, K., ZHANG, Y., STAN, l\1.: .. Power-Aware Branch Prcclic~
tion: Characterization and Dc:-.ign." IE FE halls. on ( 'omputcrs, vnl. 53. I 6X~ 186. fe-
l\1 C KUSICK, M.K., BOSTIC, K., KARELS, l\1., QUARTERMAN, J.S.: .,The De-
bruar 2004.
sign and Implementation of the 4.4 BSD Operating System," Reading. MA: Addison-
\Vcsky. I 996. PATTERSON, D.A.: ,.Reduced Instruction Set Conlputcrs:· Coii/11/Llll. of" the ACA1, vul.
28. pp. X-21, januar 19~5.
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 Xl-197. avgust 1984. 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,
l\1 C NAJRY, C .. SOLJ'IS, D.: ..ltanium 2 Processor Microarchitecture.'' IEEE Micro
pp. 109~[66, 19~8.
Magu:inc. \Ol. 23. pp. 44~55. mart-april 2003.
PATTERSON, D.A., HENNESSY, J.L.: Colltputer Org,uti~ution and Design. 3rd ed.,
1\IIN, R., .lone, W.-Ben., HU, Y.: .. Location Cache: A Low-Power L2 Cache System."
•:·· San Francisco: Morgan Kaufmann, 2005.
!'ron·. 201!-1/nt ·1 Snnp. on Low Pml"er t"/c<"lrullics and Design, IEEE. pp. 120-125. av-
gust 2004. PATTERSON, D.A., SEQUIN, C.H.: .. A VLS! RISC:· IFFF ContJ>Itta A!uga~in1', vol.
15. pp. X-22. scptcmbar Jl)X2.
r·, ;\IESSMER, H.-1'.: Tlu· lm/ispm.lihle PC Hunllt·urc Hook, -ltlz cd., Reacling. MA: Addi-
PAUL, R.P.: SPARC i\rcltite,·ture. ,l..;·selltbil" Language. Pmgrwwtting, and C. Upper
son- Wcslcj. 200 I.
Saddle River. N.l: Prenttcc Hall. 19')4.
1\IOlJD(;JLL, i\1., YASSILIADIS, S.: .. Prcci,e Interrupts ... IEEE" .lo,ficm lv!aga~inc, vol.
I h. pp . ."iX~67 . .Januar 1996. PFISTEH, G.F.: In Seurd1 o/Ciu.1tas, 2nd cd.. Upper Saddle River. 01.1. Prentice Hall.
I i)LJX.
i\ll.!LLENDER, S ..J .. TANENBAUM, A.S.: ..lnuncdiatc Files:· Sojimtrc -1-'rcl!"ti{"(' wul
Elj)('l"ience. vol. 14. pp. 365-36X. 1984. 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.
NESBIT. K ..J .. SMITH, .J.E.: .,Data Cache Prcfctching Using a Glohal History HutTer,"
Cont. ACM. pp. 161-171,2002.
I'm,·. /l){h lnt"i Swt;>. on High 1'1'1./ Con11>11tcr Arch .. '" !EEl:, pp. 96-106. 2004.
POlJNTAIN, D.: ,.Pentium: More RISC than C!Sc:· Bvte. vol. l S. pp 1'!5-204, seplcm-
NG, S.W.: .. Advance' in Disk Technology: Performance bsucs." IEEE Collljltllt'l" lv!uga-
bar 1'!93.
~inc. vul. 31. pp. 75-81. maj 199:--i.

~~ -it
:;;r, ~'~~~
n ;;~
66S l'oglavlje 9: Spisak koriscene i preporucene literature 9.2 Ahecedni spisak literature 669
--------

PRICE, D.: ,.A History c1f Calculating Machine-;,"· IEEE Micro Mugaz.ine, vol. 4, pp. 22- SI!\IA, D: ,.Supcrscalar lnstructiun Issue," 1!-:t.'/i ivlicro Maga;ine, voL 17, pp. 28-39, sep-
52, januar 19S4. tembar-oktohar I 9LJ7.
R,\DIN, G.: .,The 801 !'vlintct1n1puter... Cn111puter Arch. News, vol. 10. pp. 3lJ-47. mart SIMA. D .. FOUNTAIN. T .• KACSUK, 1'.: Admnced Complller Architectures: A Desig,z
lLJS2. Space ApJJrouch, Reading. M;\: Addison-Wesley. I LJ<J7.
HAi\L\N, S.K., PENTKOVSKI. V.. KESHAVA, .f.: .. Implementing Streaming Sfl'vlD SLATER, R.: PorLmits in Si!icull, Cambridge·, MA: M.LT. Press, 191\7.
Extension:, on the Pentium ill Processor.·" IEEE lvficm /v/aga;ine, vol. 20, pp. 47-57, SOHI, G.S., ROTH, A.: ,.Speculative Multithreaded Processors," !EHE Computer 1\llit-
jul-avgust 2000.
ga::ine. voL 34. pp. 66-73, april2001.
RAVIKlii\L\R, C.P.: .. !'vlultipr<'CC""r -\n.hitectures for Embedded System-on-a-Chip
SNIR, l'vl., OTTO, S.W., HUSS-LEDER\IAN, S., WALKER, D.W., DONGARRA,
Applications." /'me. 11111 Ill!'! ( 'n•:f oil 'vl.SI Design. IEEE, pp. 512-5ILJ, pnuar 2004.
.J.: ,I,./ PI: The Complete Reference Mwlllal. Cambridge. MA: M.l.T. Pn:ss, 1996.
RITCIIIE, D.l\1., THOMI'SO~. K.: .. The UNIX Time-Sharing System," Commun. of SOLARI, E., CONGDON, B.: PCJ t.'xpress Design & Svstem Architecture. Research
lite ,J,CM. vol. 17. pp. Jhj-.' 75, jul 197 -l.
Tech. INc., 2005.
ROBIJ\SON. <:.S.: ,.Tmvrtrd the .-'\gc of Smarter Storage," lFro·~o· Computer 1Hagu~ine, SOLARI. E., WILLSE, G.: PC! and PC!-X Hurdwwe wul Software, 6th ed., San Diego,
vol. .l5, pp. 35--+ I. dc:cell!har 2002. C A: Annabooks, 2004.
< .~ '
ROSENBLUi\1, \f., (HJSTERIJOliT, .J.K.: .. The Design and Implementation of a Log- STALLINGS, \V.: Compuler Orguni::urion and Arcilirecture, 6th ed., Upper Saddle
Structur~d File: Sy.stL'Ill," /'me. Thinecnth Sl'lllfJ. 011 Of)('raling Systl'lll Princ·iplcs,
River. NJ: Prentice Hall, 200.1.
:~ AC!'vl. pp. 1-1.~. ILJ91.
STENSTROM. 1'., HA<;T<:H.STE:\1, E., LIL.IA, D ..J., MARTONOSI, M., VENUGO-
ROTH, C.l I.: Fundwucnru/s of' l~ogi<· Design. 5Lh cd.. Florence. K Y:Thomson Enginee- PAL. M.: ..Trends in Sharc:cl Memory !'vlultiprocessing." JEFF Compwer Magu;inr,
ring, 2003.
vol. .10, pp. 44-50, dccembar 1997.
Rl :ss1 :\0\ ICH. :\I.E .. SOLO:\ION, D.A.: ivfi<To.loji Windows lntalla!s, 4Lil nl.. Red- STETS, H.. D\VARKADAS, S., HARDAVELL\S, N .. HUNT, G., KONTOTHANAS-
" nwn<l. \VA: !'vltcrosoll Press. 2005. SIS, L., PARTHASAIUTHY, S., SCOTT. :\1.: .,C ASHMERE-2L: Software Cohcn:at
Rl SU. S .. :\ll:L.JONO. H .• CllERKAliER. B.: ..ltanium 2 Processor 6M." !ElcF Micro Shared Memory m1 Clustered Rcmute-Write Netwurks." Proc. 16Lh Swnp. on Of>emrit:g
:t/u~,cinc. vul. 24. pp 11)-1 S. mart-april 2004. S~vstems !'rinci;J/es, ACM. pp. 170-1 X3, I <)LJ7.

S.\ll \. n .. \It::-;l!EIUEE,A.: .. Pervasive Computing: A Paradigm fur the 21st Cc:ntu- SUII, T., LEE, H.-H. S., HLOliGH, D.M.: ,.Integrating Cache Coherence Protocols for
r;.... I!Jt Cu·neur; r ,i/u:;u;inc. vul. :16, pp. 25-.l I, mart 200J. Hetcrugcncmrs Multiprocessor Systems, Part !." IEJ-.'t.' iv!icro JVIagu::illc, vol. 24, pp.
S.\K.\0-ll'R.A. I\.: .)vla~ing CompulcTs lnvisihlc," IEEE Micm /vlugu::ine, vol. 22, pp. 7- 33-4 I, jul 2004.
1!. 2!111:2. SUMMERS, C.K.: ADS'!.: Stuntlard1, ftlljllonclllulion. and Arcluleclure, Boca RatPJ,
S.\LO~I.\N, D.: ,\\.11'11/i>lt'r\ und Loaders. Upper Saddle River. NJ: Prentice Hall, 1993. FL: CRC Press. ILJ')'J

SC-\LFS. D..l., C!L\K'\CIIORLOO, K.. THEKKATH, C.A.: ,.Shasta: A Low-Ovcr- Sl'NDERRA!\1, V.H .. : ,PVM: A Framework for Parallel Distributed Computing." Cnn-
l'ca' I Si!rlwa<c:-( lnl> .\pproach for Supporting Fine-Grain Shared Memory." Prt}('_ Se- cw-renn·: Prunicc and Experience, vol. 2, pp .."l15-.B9, decem bar i 990.
,·enilt 1m 'I C'on( on. \;,·ft. SttJ>port.Ji'r Pmg. Lung. alld Opo: Svst., ACi'vl, pp. I 74-185. SWAN, R.J .• FULLER, S.H., SIEWIOREK, D.P.: .,Cin* -!\Modular Multiprmoc·,sor...
jqllh. Proc. NCC. pp. 645-655, 1977.
SCJ!E!BLE . .J.P.: .. .'\ Sur·:c; of Storage Options, .. llc.l:l:' Conzput!'r :Hugu;ine. vol. 35. TAN, W.l\1.: Dn·elof'ing USB PC Paiplwraf.,, San Diego, CA: Annah,,uk-;. 19LJ"7.
pp. -4 2--f.h. l:L'CCil1h~:r 200.2.
TANENBAU:\l,A.S.: .. Computcr Networks:· Upper Saddle River. NJ: Prentice Ib!l. 21)()1.
SLLTZER, 'd., BOSTIC, K., l\1 C KUSICK, t\LK .• STAELIN, C.: .. An Implcmenta- TANENLL\UM, A.S.: ,.Implication;, uf Structured Programming for Machine ,\rchite~-
tiun,,f" .1 L"g-Structutc·d 1-"ilc System fm l..JNIX," I' me. Winrer Ji)93 USENIX Teclzniml ture," Colllllll(ll. oft he ACM, vol. 21. pp. 237-246, marl 1978.
('ru~(. I'P- _107-326. 19{)3. ,r
T,\NENII.\l.:M •. \.S.: Opemlillg Sv.lll'III.\: Design and illlplctll,'llilllion. Uppc1· S,~c!d.c
S!l.\0<1 .EY. T., A'ilJERSON, D.: PCJ S1·srcm .\rchitei'lurc. 4Lh I'd., Reading. !'viA: Ad- .'f
Riwr. NJ: Prenticc Hall. !987.
dJ ,1)!1-\Vc~!t.'.v. j•)qq_
TANENBAU:\L A.S. \VOOOHULL. A.VV.: Opcmtin~ S,·,,tem.\: !\·sign und lmpf,·llu'.t-
Sl!ld\ ER, B.,-.:\! l"i.lL B.: Tlte. \t•ult!/11\' oj'a 1/ig/z-Pntimtwnu• Microprocessor: A Sr-
tuiion. 2nd cd. ll ppcr Saddk Ri vcr. NJ: Prentice ! JaiL I 'JlJ7.
·''"''1.'. /',·nJ'<'c'l!\'c', l.o_, .-\ larnitus, CA: IEEE Computer Society. ILJLJS.
~ .,
~
~
"' !
,:
·!.··· .;
~~
..:,..,__~-- - -~.
--~
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.

A
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. BINARNI BROJEVI
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," fEEt~· Concurrencr, vol. 7, pp. 70-78, ja-
nuar-rnart 1999.
VETTER. P., GODEIUS, D., VERPOOTEN, L., GRANGER, A.: .. Systems Aspects of Aritmeti!-.a koju koristi racunar u izvesnom poglcdu se razlikuje od aritmctike koju
APON/VDSL lkploymenl," IEEE Commun. Muga:::.ine, vol. 38. pp. 66-72, maj 2000. koriste !judi. Najvaznija razli!-.a jc to slo racunari rade s brojevima konacne i fiksnc
\VEAVER, D.L., GERMOND, T.: The SPARC Architecture ivlwuwl, Version 9. Upper tacnosti. Druga razlikaje to sto racunari ta pred:-.tavljan1e brojcva umesto dccimalnog
Saddle River. NJ: Prentice Hall, 1994. sistema po pravilu koriste binarni brojcani sistem. To su teme ovog dodatka.
WEISER, M.: .. The Computer for the 21st Century:· !tEE Per\'ilsi1·e Conzpuring. vol. I.
pp. I 'J-25. Jan.-M..Jrch 2002: probitno objavljcno u casopisu Sr·ientific American, sep-
ternbar I'J'Jl. A.l BRO.JEVI KONACNE TACNOSTI
' \\ ILKES, i\1. \'.: .. C:ompukrs Then and Now,"./. ACM. vul. 15, pp. 1-7, januar 1968. Dok obavljamo neku aritmcticku opcraciju. obicno malo mislimo nato koliko jc
WILKES, i\1. V.: .,The Best Way to Design an Automatic Calculating Machine,'' Pmc. decimalnih mesla potrebno da se broj prcdstavi. Fizicari mogu da izjave kako u
Mwzdzn'ler I 1ni1'. Cn!lll>uler lnuugural Con(. 195 I. svcrniru ima !07X elektrona, nc brinuci o tome sto se taj broj u razvijenom ohliku pisc
WILSOi\1, J.: .. Challenges and Trends in Processor Design," IEEE Compurcr Magu:::.ine. sa 79 decirnalnih mesla. Nc:ku ko ,.pdice" i.cracunava neku funkciju s tacno~cu od
vol. 31, pp. 3'J--+8, januar 1998. 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
WI I .SON. P.: .. Floating-Point Survival Kit,'' 8\'le. vol. 13, pp. 217-226. mart 19:--18.
dovoljno sirok za zapisivanje sedmocifrenih brojc1a.
\\ OLF. \V.: .. The h1ture of Multipr()cessur Systcms-on-Chip.s," /'mr·. -11.\r Ann. ('on/ on Kod racunara stvari stoje sasvim drugacije. U vecini racunara. koiicina memorije
Dni~n. \ur""'uliou, IEEE. pp. CJS l-6:-:5. 2004.
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
~~,c. 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).
-l~~
Ji~ f
671

:
-~·?~
.
-:;
~ ~
'
l

~
1
"
·~
.
'-:t
'I
672 Dodatak A: llinarni hrojcvi A.2 Brojcani sistcmi date osnove 673

'! Da bismo proucili svoj-,tva brojeva konacne tacnosti. ispitaJmo skup pozitivnih ce- Kao drugi primer. razmotrite pravilo distributivnosti:
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
il X (/J - c) = a X iJ - U X C
je ncmoguce izraziti oJrcdenc vrstc brojcva, na primer: 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.
I. BroJCVC vcce od 999.
Sudeci po ovim primerima, moglo bi se zakljuciti da racunari, kao urcdaji opste
2. Ncgativnc brojcve. namene, nisu bas pogodni za aritmcticke operacije. Ovakav zakljucakje, naravno, po-
3. Razlomkc. grdan, ali smo ga namcrno izveli da pokazerno koliko jc vazno razumeti kako racu-
4. lracionalne brojcve. nar radi i koja su mu ograniccnja.
5. Knmpleksne brojevc.
Vazno aritmcticko svojstvo skupa svih cclih bnJjcvajestc zatvorcnost u odnosu na
operacijc sabiranja. mlu;.imanja i mnuzcnja. Drugim rc·cima. ;.a svaki par cclih hroje-
A.2 HRO.JCANI SISTEMI DATE OSNOVE
va i i j, i.;. j. i- j i i xj takmlc su ccli bmjcvi. Skup celih brojcva niJC zatvoren u od- Obiean dccimalan broj koji svi poznajemu :,astoji sc od niza decimalnih cifara i
nosu na deljenje jcr postojc vrcdnosti i i j za kojc se ilj nc moze izraziti celim hrnjem (mozda) dccimalnog zarcza. Njeguv opsti oblik i uubicajcno tumaccnje prikazani su
(npr. 7/2 i 1/0). na slici A-1. Broj I() izabran je kao osnova (engl. radix) za stcpenovanjc t.ato sto mi
HmJcvi ktm<IClll' tacnosti nisu zatvurcni ni ta Jednu od cctiri osnuvne opcracijc. koristimo decimalnc brojeve sa osnovum 10. U racunarimaje ccsto pogodnijc kuristiti
kao Stu SC \ idj j; skdcL'cg primcra S trucifrcnim brojevima: drugaciju osnuvu. Najvaznijc tak vc osnovc su 2, 8 i 16. Bn,jeani sistemi na tim oSIHl-
600 + 600 = 1200 fprcvclik l varna su hinarni. oktalni i heksadccimalni.
003- 005 =- 2 (ncgativ,lll)
Deseti Stoti Hiliaditi
050 x: 050 = 25()() (prcvdikl delovi delovi
Stotine Desetice Jedinice delovi
()()7 I ()1)2 = 3.5 (nijc cct> hruj)

Ncodgm·arajuci 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 tgre~J,a prekoracenja gornje granice) iii
t t d_2 d.3 ... d.k
.Jc' m:t11ji od najlll:mjeg hn>ja i1. <;J,upa tgn:\l-.a prckoraccnja donjc granicc), iii rezultat
dn ... d" d, do d,

liijC ni .JCd!il> lli drugu. \l'l: Jc'd!:O\LI\llll!IC Spada l1 SKll[1. U CCliri gornja primera. prva
tri rc·lL: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 n
tac·JH•'iti. roultati odrcLknih i;ral'un:tvanj't bic'c pogrcsni. s tacke gledista klasicnog Broj ~ L d, x10'
nlaiC'llati~·:tra. l.Ircdaj za racunanjc h:uji daje pugrdan oJgovor. a tclmicki jc u savrsc-
i ~ -k
IH>m st:tllju. mozc na prv: pug led •tgktLtti k,;mislerw. ali je greska logicna posledica Slika A-L Op,li ohlik dccimalrhlg hroja.
~.';'•'
nkgn1c konacnc primdc. :\cki racur1a:·i imaju -;pc'CIJalan hardvcr koji otkriva grdkc
rn:kt)fi.t..:'C!1Ja. Brnjcani sistcrn usnovc k mora imati k razlicitih sirnbula za prcdstaviJcmjc cifara
;\lgc·!,,·,~ hn>jc1·a kunac'lll' ta.:'no-;ti r:vli"uje -;cod uobicajene algebre. Kao primer. od 0 do k- I. DcL·imalni hrojevi su sastavljcni od 10 clccimalnih cifara
r~ll!llolrit~ pra\ ild asnci_jativtH)sti:
012345671-19
u + (h- c)= (u + />)- ,.
Za raL.Iiku od toga. u binarnim bmjevirna sene pojavljuje ovih dcset cifara. Svi su
l;r:lt'-:t:>apno <>he .'lr:u~c _;,~drac·i::c 1:: u = /00. h = -1-00. c = .100. Da biste izracunali uni sastavljcni sarno od dve binarnc cifrc
kvu -;t:·:,nu jc·dn<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- 0 l
n:r_:tc ( ,, + h 1. ~to d:rjc prc:"cra.:'cnjc u kon<~cnuj aril!lletici trocifrenih cclih brojeva. Oktalni brojevi su sastavljeni od osarn ok.talnih cifara
RL·;ullat [11()f," Za\ isiti <ld Lnri~L't:nog r:cC:utLH:t. ali necc biti ll 00. Oduzirnanje 300 od
Ol2_'l.+So7
lmop Lt>Ji ni;c lliJIJ lll'L'~ d:r1i >:(J(). Prcm:: 1<11ne. pr<tvihl asocijarivnosti nc va7.i. vecje
\'a/.an n_·du<..;L..:J opL'rJcija.

·------~'~
674 Dodatak A: Rinarni A.3 Pretvaranje hrojeva iz hrojcanog sistema u drugi 675

T-·--·-
Za hcksadecimalne brojevc potrebno je sesnaest cifara. Znaci, treha nam sest do- l Oktalni
1-
datnih simbola. Obicno se za sest cifara koje dolaze posle cifre 9 koriste velika slova 1001 I
od A do F. Prcma tome, heksadccimalni brojcvi su sastavljcni od cifara
1010 1 -

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
~iill-
1111 1
16 t ~
17
E
F
sistema. Da bi se izbegla dvosmislcnnst kada brojcani sistcm nije jasan iz konteksta, 20 10 I
u indeks sc stavljaju osnove: 2. 8, 10 iii 16.
1oooo
-~~----· --- '1

14
10100 I 24
t
Binarni 11110 i 1E
0 1 0 0 0 1
10 9
1 X 2 + 1 X 2 + 1 X 2 + 1 X 2 7 + 1 X 26 + Q
8
X 25 + 1 X 24 + Q X 2:1 + Q X 22 + Q X 21 + 1 X 2° 10-1aoaT 28
1024 + 512 + 256 + 128 + 64 +0 + 16 + 0 +0 + 0 + 1
110010 I 32
··i-- --
Oktalni 2 60 ! 111100 3C
3 1
3 X 8 +J X 8? + 2 X8 + 1 X 8°
70 1000110 106 46
1536 + 448 + 16 + 1
80 1010000 120 50
Decimalnr 0 0
2 X 10 + Q3
X
2
10 + Q X 1Q l + 1 X 1 Q0 90 1011010 132 5A
2000 + 0 +0 + 1 100 11001000 144 64 :
Heksadecirnalni 7 0 1000 : 1111101000 1750 3E8 i

J 16 2 13 16 1 + 1 X 16°
i
X -t- X
2989 101110101101 5655 BAD
1792 + 208 + 1
Slika A-J. Dccilllalni bmjcvi i njihovi binarni. oldalni i hcksadccilllalni ekvivalcnti. (nasllll'<lki
Slika A-2. Broj 2001 11 binarnom. oktalnom. decimalnom i hcks;,ckcimalnom obliku.

Kao primer binarnog. oktalnug, c!ccimalnog i hcksadecimalnog unncavanja. A.3 PRETVAH.ANJE BROJEVA IZ JEDNOG BRO.JCANOG
poglcdajtc sliku A-3, gdc su mlabrani nencgativni hrojevi prikazani u svakom od cc- SISTEMA. U DRUGI
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- Ni1c tcsko prctvorili brujcvc i; oktalnog iii hcksadecimalnog sistema u binarni i
stili na prclam iz clrugog u trcc'i milenijum. ohmuto. Da histe binami bwj prcvc!i u ok.t:.llni. pPclclitc ga u grupe od po 3 hila~ prvu
grupu cine: 3 hila lc\o (iii dc,,tw) ,,d dc:cimainog zarcza (ccsto ;vanog binarni zarcz) .
..--.'0-~

i Decimalni : Binarni Oktalni : Heksadecimalni a drugu grupu 3 lcvo od njc. Svaka grupa od pn 3 hila rnozc :-,c dircktno prevcsti u jcd-
0 0 0 nu oktalnu cifru (od 0 c!o 7). prema rrimcrirna it prvih redDva sa slikc A-3. Pri pmleli
0
1 i
na grupc nhJI.da cc hiti potrcbncJ da sc nck.c od njih dopunc vodecirn iii dodatnim nu-
lama do 3 c·ifrc. Prctvaranjc uklalnog hnlja u hinarni isto jc tako jcdnostavno. Svaku
2 10 2 2
oktalnu cifrutrcha Lamcniti ckvivaknrnim trocifrenim binarnim brojem. Prctvaranjc
3 I 11 I 3 3 hd.saclccimalnih hn>jtva u hinarnc su;tim,kiJe isto kao i p1·etvaranjc oktainih 11 binar-
4 I 100 4 4 nc. s tim sto 'c svaka hcbadccimalna cifra zamcnjujc grupom od po 4 hila. Na slici
5 i
101 ; 5 5 A-4 su ncki primcri.
6 110 6 6 Pretvaranjc decimal nih hrojcva ll hinetrne lllUl.l' se obaviti na elva nacina. Prvi nacin
7 111 7 7 skdi din:ktno i;. lklinicije hinarnih hro.1c:va. Od broja se odu~:mc najvcci stepen dvojke
lp 8 I 1000 10 l-..o.Ji jc manji ud hroja. f'<Jstupak ,e Lati:n ponavlja nad razlikom. Kada sc broj ra~tavi na
~~f 8
stcpenc lhojk:::. binarni broj sc sklapa tak1l stu ,;c cifra I stavlja na pozicijc bitova koji

~!
Slih.a A-3. Dc:cimalni hrojevi ! njihovi hinarni, ok_t,tlni i hcl-.sad,__-ci:natni c:~, l'.'<tlcnti.
odgPvaraju ,;tcpcnima dvoJke iskorisccnim Dt razlaganjc a cifra 0 na ostala mcsta.
'i(
•.';:..

I~p·.:1- ,;.fl

1~
-:.,~,;

!~~·. ~,!=-!............................----------------------------~ ~.:;...:


677
676 Dodatak A: Binarni brojcvi i\.4 Negativni binarni hrojcvi

Binarni ceii brujevi mugu se pretvarati u decimalne na dva nacina. Jcdan nacinje
Primer 1
sabiranje stepena dvojke koji odgovaraju bitovima i u broju. Na primer,
Heksadecimalan 9 4 8 B 6
,------"-' ,---"-- ~ ,---_A
lO li () = 24 + 2 2 + 2 1 = 16 + 4 + 2 = 22
Binaran 0001100101001000.101101100
---,---' ' -r--' '----.,----' '-~..---'
·~· Prema drugom nacinu, binarni bruj se pise vertikaino, po jed an bit u wakom redu,
Oktalan 4 5 0 5 5 4 s krajnjim levim bitom u dnu stu pea. Najnizi redje prvi, onaj iznad njega dn1gi itd. D~­
cimalni broj sc gradi u paralelnom stupcu. Pocinje se up1sivanjem cifrc I u P~'' 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 dt'CJ!l1~ti.m
Primer 2
na ova.J nacin.
Heksadecimalan 7 B A 3 B c 4
A~

llll ~ :: : ;::9~~.1:::9
Binaran 0111101110100011.101111000100 0 0 0 1 1 1
'-------,-----' ..... _/ '-.___/ J '- --., J '-v---' '-,--'

Oktalan 7 5 64 3.5 70 4 ~- Rezultat

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 deljL~nje broja sa 2. Kolicnik se
1+2x374=749
0+2 X 187 ~
.. 3/4
upisuje dircktno i.spod originalnug broja, a ostatak (0 iii I) pored kolicnika. Pustupak "
1+2 X 93 = 187
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- I 1+2 X 46 =" 93
cima. citajuci udo;r.do. Slika i\-5 je primer prctvaranja dccimalnog broja u binarni. 0 T 2 X 23 ="·46

Kolicnici Ostaci
'-------·-----~ 1 + 2 X
.."
11 = 23

iI 1+2 X 5 = 1'1

14 92
i 1+2x2=5

0;2x1=2
""
"
746 0
"-------------------~ 1 +2 X 0 ·o'1 - Pocet1 odavde

373 0·
Sliha A-6. Pretv:tu!ljl~ hinarnt'~~ hn)_j:l ltl\ l l\ll :ulllu dL'Cirnalan uJa:-.ll•pniHl Lllhu:->truL·ava!lJCill.
18 6 p~,l:...:v~i uJ dr;.L S\:tl-.1 rcJ ')l' d(,l'j_~:t Ltho .::,!t1 -.c ~'r..~tj i'-'rnd nic:;<t uch·u:-.tlu.L:i ina t~.' Jnda odgo\,lfa-
jul~i bil. :\,\ rn:lllL'I", -;...;.q j(_~ '.h~! jJ\lt:l ~-;'J. pli:s hit i U j,-,tllil1 r::du ~df' jL j 1-49.
93 0-

46 Prdvar<mi<c iz ckcimallH':c' u uktaim lit iz Jcc::;n~tl!w:; u heksadccimalni sistrm


23 0- 1~1~-i/.~ "c i;.vc.-..ti takd Sto :.:.c brt1j prcrvnri pr\U u hinarni. a ;.~uin1 u broj l~ljcnng siqe:na

~
iii taK<> st" ,c pdu;imdJU sll:pcni bn,id S. mln<J>I1" I 6.
1 1

2 AA 1\ECATl\'j\:l Bl;";AR~l BROJEVI

:=ill jlj j 1
T(~k(•i11 i-..;tl)rije digiLt\niil raCJtn~tr~t. u njinl~t '-U k~ni~CeiL:t Lctiri r~vJiC·itJ. -;istcina za
0 prcdsta\l_j~tnj<:: !lc':c'ctlivlliil bi"cliL'\:l. i'l''dl St: l'i!j OZH:ICCili IJlt)(lH!i IL'oJ~l. \·igncd 1/W,~IIl­
tl{(/<'). Lc l)\'()Jll .'-.i<lclltll kr:tjnji k\ i hit hiu JC hil/11d!-.~t(il jL' znac·:iu +.a 1 jc znacilo -).
duk :-.u usialL bif<l\'i <;~Jdrl.:t!i ~li""iur:w Hcdn<hl llJh'dul i bruJ<<.
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.
678 Dodatak A: Binarni brojevi A.5 Binarna al'itmetika 679

Drugi sistem, zvan komplemcnt jedinice (engl. one:~ complement), takode je imao - --- l
N N -N -N ' -N -N
bit za znak, gde je 0 znacilo plus, a l minus. Kada od pozitivnog ?elite cia napravite nc- i decimalno binarno oznaceni komplement ' komplement visak 128
gativan broj, samo jedinice zamenite nulama, a nule jedinicama, sto vazi i za bit znaka. modut jedinice dvojke
Sistem s komplementom jedinice je zastareo. ----
r 1 00000001
--
10000001 11111110
---
1111111 1
------- ---- -·---
01111111
Trec'i sistcm, zvan komplement dvojke (engl. two j· complement), takode ima bit
--------~--

I 2 00000010 11111101 1111111 0


--------, 01111110
za znak, gde 0 stoji za plus, ajedan za minus. Pretvaranje pozitivnog u negativan broj 3 00000011 11111100 1111110 1 01111101
ovde je dvostcpen postupak. Prvo se svaka jcdinica zameni nulom, a svaka nula jedi- 00000100
nicorn, kao u sistcmu kornplementa jcdinice. Zatim se rczultatu doda I. Binarni bro-
00000101
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 01111001


7 00000111
-6 u komplementu dvojke obavlja sc u dva koraka: 01111000
8 00001000 ' 10001000 . - - ----

I
---------4--

00000 II 0 ( +6J 11110110 01110111


IIlii 00 I (- 6 u komplemcntu jedinice)
Ill II 0 10 (- 6 u komplcmentu dvojke)
00001010 l 11110101 01110110
00010100 11101011 01101100
30 ! 00011110 11100001 1110001 0 ! 01100010
Ako se opcracijom na krajnjem levom bitu stvmc uslovi za prcnos. on se zane-
maruje. 40 00101000 11010111 11011000 01011000
50 00110010 11001101 1100111 0 01001110
U cctvrtom sistemu, koji se za m-bitne brojeve zove visak zm-l (engl. excess 2"'- 1),
60 00111100 11000011 11000100 01000100 '
broj sc cuva kao zbir dobijcn njegovim uvecanjcrn za 2m-l Na primer, za X-hitne bro-
70 01000110 11000110 10111001 1011101 0 00111010
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 80 01010000 11010000 10101111 10110000 00110000

125 (01111101). Brojcvi izmcdu- 12X i +127 prcslikavaju se u interval od 0 do 255 i 90 01011010 11011010 10100101 10100110 00100110

svi sc mogu izraziti kao X-bitni pozitivni hrojevi. Zanimljivo je daje ovaj sistem idcn- 100 01100100 11100100 10011011 10011100 00011100

tican sistemu komplementa clvojkc kod koga jc bit znaka invertovan. Slika A-7 prika- 127 011111111 111111111 10000000 10000001 00000001

zujc primcre negativnih brojeva u sva cetiri sistema. 128 Ne postoji Ne postoji Ne postoJi 10000000 00000000

Sistem oznaccnog rnodula i sistem komplcrnenta jedinicc predotavljaju nulu na


Slika A-7. NL:gativni S-hitni hrujc\-i u Cc!iri ~i~tc!lla.
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
A.5 BINARNA ARIT!\IETIKA
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 Tahc!a ;a '~tbiranje binarnih hro_1cva prika1ana je na slici A-X.
nisu simctricni; pustoji ncgativan broj koji nema svog pozitivnog parnjaka.
Nijc tesko pronaci otkud ovakvi problemi: 7.climo da napravimu sistcm kodiranja Prvi sabirak 0 0
koji ima sledcca elva svojstva: Drugi sabirak +0 +1 +0 +1

I. Predstavljanje nuk na samo jcdan nacin. Zbir 0 1 1 0


Pre nos 0 0 0
2. Tacno isti broj pm.itivnih i ncgativnih hrojcva.
Slih.~ A-S. T;thcla hin~tillo~ :--ahiranja.
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
Dv~t binarna hruj~t -;c -;~d>ir~l)U tak,J \to SL'- pnl'cv~i <ld l-;rajnjc~ dcsnug hila- sabi-
raspl>reda bitova. Uvek ce_1edan specilican raspored bitova biti vi~ak iii cc nedostaja-
raju ,Jdg,,v~trajuc'i hituvi dva '<tbtrka. Eventualni vi~ak se prcnusi jednn mestu ulevo.
ti. be; ohLira na nacin prikazivanja. Taj jedan suvisan rasporcd hitova moze se upo-
kau u aritmcttci decimalnih hn,jeva. U aritrnt'lici kotnpkmc:ntajcdinicc. visak stvorcn
trebiti ;a predstavljanjc:- 0 ili vdikog negativnog hroja (iii neccga sasvim drugng) ali
!~.
cc uvck zadavati glavobolje. pri sabiranJLI krajnjth lcvih bitov'a prcnosi St' u kraJnji dcsni bit. Ovaj postupak se zovc
i~
!F;
~"';
II;!
',\f,
~ ~ ;<;:.

~
II 680 Dodatak A: Binarni brojcvi Ve:lhanja 681

I
'I
cirkularni prcnos. U aritmetici komplementa dvojke, zanemaruje sc visak stvoren sa- 9. Razmotrite sledeea sabiranja 3-bitnih binarnih brojcva u kumpkmcntu dvojke. Za
biranjem dva krajnja leva bita. Primcri biname aritmctikc prikazani su na slici A-9. svaki zhir navedite
a. Da li Je bit znaka u rezultatu jednak I.
b. Da li su najmanjc znacajna tri bita 0.
Oecimalni sistem K_D_fll[Jlement_le~~icE) ~()_mplef11ent dvojke
c. Da li je nastalo prckoracenjc.
10 00001010 00001010 ()()() 000 Ill 100 100
+ (-3) 11111100 11111101 +Ill + !00
+ 001 +!II +ll.Q
+7 00000110 00000111 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
preno~ 1 odbaceno svaka cifra odu;.mc od 9. Tako se od broja 0!4725 dobija njegov m:gativni parnjak
9S5274. Takvi brojcvi su .~komplemcnti dcvetke" i analogni su binarnim brojcvima
00000111 u kompkmcntu jedinicc. lzra;.ik sledcee brojcve kau trocifrenc kompkmcnte clc-
vetke: 6.- 2. 100.- !4.- I, 0.
Slika A-9. Sabiranjc u sistemu kompkmcntajcdiniL·e i u sistetnu komplemcnta dvojkc.
11. Formuli.\ite pravilo La sabiranJ<.: hrojeva u kornplemcntu deVL'tkc" 1.cttin1 obavitc 'k-
dcca sabiranja.
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- ()()()] ()()()] 9997 92-1-l
stcmu komplemcnta jcdinicc i u sistemu komplcmenta dvojkc. pre.koraccnjc sc javlja + 99'!9 + 99'!:-\ + 9996 + UK02
samo ako se prcnos u hit waLt razlikujc od prcnosa iz bita znaka. Vecina racunara cuva
12. Kornpkmcnt dcsctkc analogan je J..ornpkmentu dvojkc. l\egativan broj u klllnpk-
prenos gcncrisan iz hita za znak. ali sc prcnos u bit znaLt nc vidi iz rczultata. Stoga sc
lllt~ntu dcsctkc l'ormira se doda\ anJ<:IIl jcdinice na odgovarajuci hroj u kornplcmcntu
obicno koristi i specijalan bit prckoracenja. 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.
VEZBAN.JA l-1. Putnno/itt: bl!larrw 0 Ill i ()(J II.
I. Napisite hinarnc ekvivalcnte slcdceih decimalnih hrojcva: 19S4, 4000, X 192. 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
2. Koji jc dccimalni ckvivalcnt hinarnug broja l 00 II 0100 I, a koji su njcgovi oktalni 1
hcbaLkcimalni ckvivalcnti'' 16. ;s;api~itc prugram k<>Ji prcu;imct dva ASC!Inizct od Jl'' 32 zne~ka ~,,_ii sadr/c nulc i jc-
dinicc (svaki prnlst:rv·lja ·'2-hitni binarni hroj u kompkmc:Hu JvojJ..c >. Progr~lmln:­
3. Koji su ud O\ ih zapisa punova?:ni heksadecimalni hrojevi'' BED, CAB. DEAD, DE-
b~r da ,,d'.tctmpa nJii:m /f 1 ir kau makovni ASCll niz S~< 32 nule ii tiliJCdinicc:.
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 i/l'~ll.iti pomocu k cifara u brojcanom si-
stemu osnove r'~

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 !IIIII II ()()()()()()()() I I I I 0 I II


+ OI!Ollll + !l.ll..l.l.l.! ll.!..lll..1..l - lli!Olll

R. Ponovitc racunicu iz prcthodnog vc?.b,mja. ali sada u komplementu jcdinicc.


700 Dndatak C: Programiranjc na ascmblcrskom jcziku C.3 l\lcmorija i adresiranje 701
------------·-~------------

Slcdcci registar u ovoj grupi je BP, bazni pokazivac. On pu pravilu sadrl.i jednu C.3 i\IEMORI.JA I ADRESIRAN.JE
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 Procesor 80:-)8 ima purnalo ne;grapnu organizaciju mernorijc zbog kombinactje
procedure, da bi se olaksalo pronalazenje lokalnih promenljivih te procedure. Na taj mcmorije od 1 MB i 16-bitnih rcgi.-;tara. U rnemuriji od 1 MB potrcbnoje 20 bitova
nacin BP cesto ukazuje na dno tekuceg okvira steka, aSP ukazuje na vrh. Tekuci okvir za predstaljanje rnemorijskc adrcse. Prerna tome. pokazivac na memoriju nije mo-
steka je tako ,uokviren" vredno:,tima rcgistara BPi SP. guce smestiti u bi1o koji 16-bitni regi,tar. Da bi se ovaj problem preva;isao. mcmorija
U ovu grupu rcgistara spadaju i dva indeksna registra: Sl, indcks izvorista (engl. je organizovana u segmcnk od pu 6..+ KG. tako da sc adresa unutar segrnenta moze
source index) i 01, indcks odrcdista (engl. destination index). Ovi rcgistri se cesto ko- pred,taviti pomocu 16 bitova. Sada ct.:mu dctaljnije objasniti arhitekturu memorije
ric,te u kombinaciji s registrorn BP za adresiranje podataka na steku iii s n:gistrom BX proccsora 8088.
za izracunavanjc adn.:se podataka u rnernoriji. Opsirnijc cemo ih opisati u odeljku o
nacinima adrcsiranja.
C.3.l Organizacija memorije i segmcnti
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 f'vlcrnorija procesora 8088 je ni; 8-bitnih bajwva koji se mogu adresirati i sluzi za
adresiraju direktno. vee on sadrzi adn.:su u kodnom segmentu prograrna u memuriji. smdtanje instrukci.J~l. podataka i steka. Da bi se razdvojila pudrucja memorijc koja se
Ciklus izvrsavanja pmcesor zapocinje tako sto pn.:uzirna instrukciju na koju ukazujc k<)riste za razlicite svrhe, u proce:;oru 8088 knristc st.: scgmcnti- delovi mcmorijt.: re-
PC. Ovaj rcgistar tada povecava vreclnost, pre nego stu sc izvrsi ostatak instrukcijc. zcrvic.anc z.a posehne namcne. U slucaju procesora 8088 takvi segmenti se sastoje od
Na taj nal'in. prograrnski brojac uvck ukazujc na prvu instrukciju iza tckucc. 65.536 uzastopnih bajtova. Pu,c,toje cetiri scgmenta:
Registar sa indikatorima (engl. flag register) iii registar s kodovima uslova I. Kodni segment.
(engl. condition code register) prcLbtavlja skup jednobitnih registara. Nekc od ovih 2. Segment Dt pudatkc.
bituva postavl.pju aritmc:tiCkc instrukcijc i uni se mlnost' na re.wltat:
Segment ;.a stck.
Z - rezultat je nul a
..\. Dodatni :-,egrm.:nt.
S - rezultat je negattvan (bit znaka)
Kodni segment .sadr:::i Instrukcije programa. Sadr.Zaj registra PC uvek se tumaci
V - rezultat je izazvao prekoracenje kao memorijska ~tdrcsa u segmentu koda. Vrednost 0 u regi,;,tru PC mlnosi se na naj-
C - rezultat je izazvao prenos ntzu adrcsu kudnug Sc'gl1lcnLt. a ne n.t najnizu apsolutnu adresu memorije. Segment
A- pomocni prenos (iz bita 31 pmlataka ,,,drzi iniL·ij,tlizov<me i neiniL'tjalizovanc poclatke za program. Kada rcgistar
BX sad6i poLviv<~c. on uk:1zuje na segment podataka. Segment steka sadrli lokalne
P - parnost rezultata
pr<)mcnlJiVc i mcJurctuktc>: st~ll ljene na stck ..-'\drcse u registrima SP i BP uvek su u
Drugi bituvi O\'ug rt.:gislra upr:tv ljajll rad<'ill c-L:rcden!h aspckata proccsura. Bit I '.l'6!11l':Hu -;:cka. D•:d<ltni 'q:mentm regtstar namenjen je cuvanju adrcse dudatnog
ornogucava sistcmskc prc'kidc. Bit T akllvira rt'/im prac.:np koji sc kuristi pri <Jtkri- 'it.'~nL.·n t.l nlt. ~ IL P('~t( lj ati bilo gde u n1etnoriji.
~
vanju gr6;aka. Na kraju, bit/) upravlja smerom <lp-~racija '.a /.11:tkPv;Jim n:1m im~'- :\c Za S\<iki cd '"-~o:mc·n;:l<! pustLlji odgovarajuL'i scgrnentni registar: 16-bitni registri
!
koriste se svih 16 hitova o,·og rcgistra <t indikat<n:rn~J: nck,>ri:~ccni hit()\i su hard-:e:·- I' CS, L'S. SS i ES. p,lc"Ctna ctdr.:sa segnwntaje 20-bitni neoznacen ceo broj koji se pravi
ski postavljeni na nulu.
U grupi scgmcntnih rcgistara postoje cc:tiri rc;i.,tr::. '>c'lite sc da "-' i stck. i pml:tci
'
I
!
p< •llllT:nj.~; 11 -;egn~cnlih'i' re ;i,tD-+ bita ulevo i unosenjern nula na cctiri poslednja me-
:,u s ck,ne ~t;·,tnc. Cl\ ,; !IL•Cl da segmentni registri u 20-bitnom adresnom pmsturu
i k(\d sa instnrkcijatna nctlaze u glavnoj JllC!Ih>ri.ti. ci1i •Jhicn1• u llJt::niin razlicitim deiu- ! uvek ukalll;u na umtmskc' 16. Segmt.:ntni registar ukazuje na o'novu segrncnta.
vima. Segrnentni registri uprallpju ovim ra..:IIC·itim dcl,"·ima n;cpmnje kuji se iOHI ;\drc::,<: u:Hil,:r :.;cgmcnla 1111 Jgu :-,c pr~tviti pretvaranjem 16-hitne vrednosti segmentnog
scgrnenti. ()v'i rtgistri se zovu CS (r~gistttr 7:t h.nd:1i \._·gnk'nl), DS (f~.~ist~tr /~t -"'C~­ rcg1'tr:! u nJcguvu ;-·r~,, u 2U-bitnu adrcsu tako stu se dodaju cctiri nulta bita na kraj i
Ill<.:nt podataka). SS (registar La o;cgrncnt 'l•:ka) 1 ES \rc!:Ii-.,:ar za dud:,tni 'egmcnt ). dodaje ra,tui<ln}: lli1\1Llr 'egrn<.:nta. Apsolutna memurij,;ka adrcsa izracunava se tc1ko
Njihn\,C vrednosti sc tukorn n:tivcc:cg del a\ r. .'nh~lLl nc n1t:11jaju. lJ praksi. -.;c~niC!H 1~1 ~-!u ,,~ ·,l'grnc:lll:li I"l.':Chl<;:· pumnu:i.i "' I hi rezultatu se duda rastujanjc. Na primer, ako
pod~!lkc i scglltL'l1t za stek kuristc iqj cleo ll~Crt1nr1_j-:. r'ri L·.:n:u ~ll p~..KL•.L'i u dnu ~~~­ Jt' r·~~j ,rr,t c•:3 jedn:tk 7, a registra BX jc: 12. tad a je adrcsa na kuju ukazuje BX
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 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.;
,,'.[
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 o- ~ g)
2

i Sunca (2 X I o g), sto je raspon od I()(,() Ovc brojeve lllOZCJll() predstaviti ovako
33

()()( )()()( )( )( )( )()()( )()()()()( )()( )()()( )( )( )( )()()()()()()()()(), ()( )( )()()( )()()( )()()( )()()( )()( )( )()()( )( )( )()()()( )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 vr~tc 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 ~e 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

i;;
;L
705
Dudatak C: Programiranje na ascmblcrskom jeziku
C.3 \lemorija i adresiranjc
704

preuzima sadrzaj lokacijc u segmentu pudataka Cija se adresa dobija sahiranj~m


i! -Nai:in adresiranja [op~rand s:uJrbja rcgistara BX i Dl. Ova vrednost se tada smt:Sta na stck. Poslednja dva tipa :lllre-
- - -- - - -----
i Registarsko adresiranje siranja mugu sc kumbinovati u registarsko indcksno s pomerajem. kao u instruk:iji
' 8-bitni registar 8-b1tni registar
116-bitni registar 16-bitni registar NOT 20(BX)(DI)
'-- - ------- -

, Adresiranje segmenta za podatke koja dajc komplemcnt mcmorijs~c rcci na lukacijama BX + Dl + 20 i BX + Dl + 21.
! Direktno adresiranje Adresa sledi opkod Svi nacini inclircktnog adrcsiranja koji sc koristc u scgmentu poclataka postoje i u
llndirektno registarsko Adresa u registru scgmentu 1.a stck. samo sto sc u turn slucaju umesto baznog rcgistra BX koristi pokazi-
i Adresa je
vac osnDve BP. Na ovaj naCin je (BP) jcdini indir<Oktni registarski naCin adrcsir~nja
Registarsko s pomerajem
Registarsko indeksno · registar+pomeraj
Registarsko indeksno s pomerajem Adresa je BX+SI/DI steka. ali postoje i slozeniji nacini. sve do indirc~limg Bl' indcksnog adrcsiranja spu-
BX+SI Dl+pomeraj merajcm -1 (BP)(SI). Ovakvi nacini :,u dragoc"cni za adresiranje lokalnih promenljivih
: Adresiranje segmenta za stek i parametara funkcija koji sc' u potprogramima :;me;taju u adrese na steku. Tu d.tlje
BP indirektno Adresa u registru opisujemo u odeljku C.-+.5.
BP s pomerajem Adresa Je BP + pomeraj Sve adrc:se koje su u ,;agla:;nosti s nacinima adrcsiranja o kujima smo dosad gcvo-
BP indeksno Adresa je BP +SliD I rili mugu se uputrebtti kao iivurista iii odredista opcracija. One sc /.ajednu delinisu
BP indeksno s pomerajem BP+SI/DI+pomeraj
-- - - - ---- -!' kao efcktivne adrese. Nacini adrcsiranja u prc,JStala dva bloka ne omogucavaju de-
Neposredni podaci !
lini,anje odredista i ne -.matraiu se ckktivnirn adres:nna. Oni detinisu samo iLvoriste.
Neposredni bajt/rec :' Podac1 su deo #
Nacin adresiranja u kume je operand knnstantan bajt ili rec u samoj instrukciji
instrukcije -- _I
zove se ncposredno adrcsiranje. TakD, na primer. instrukcija
Podrazumevana adresa
lnstrukcija push/pop : lndirektno adresira (SP) PUSH, POP. PUSHF. POPF , Cl\tlP AX.50
lndikatori load/store Registar sa indikatorima LAHF, STC, CLC, CMC
statusa ! XLAT
pnredi sadriaj rcgistr,l AX s kunstantom 50 i postavlja bitovc u rcgistru sa indikatori-
Prevodenje XLAT
Ponovljene instrukcije za znakovne AL. BX : MOVS, CMPS. SCAS ma u l.avi:;n,)sli ml d1rhijenu~: ruu\Uta.
nizove (SI). (DI). (CX) , IN#, OUT# Na kraju, ncke ud in,trukuFt kuriste podrazumevano adresiranje (engl. imJ;/ied
lnstrukcije za ulaz/izlaz AX. AL • CB'vV. CWO uddrcs.1ing). Za ovc instn:kci~c'. operand i!i operandi se pudrazumevaju. Na primer.
Pretvaranje bajta, reci . AL, AX, OX - J instrukc:ip
Slika C-3. Nacini :1drcoiranja opcranada. SJJllhol I! o1naeava brojcanu ncd1rost iii <>/n,\l,u.
PUSH AX

Kod indirektnog rcgistm·skog adresiranja adrcsa opcrand:t se tul:11i ll nckom ml :;ta,!ja sadrzaJ rc:~istra AX nc~ stc·k tako sto smanjujc vrcdnost regisrra SP, a 1.atim ko-
regis tara BX. Sl iii Dl. l i sva tri slucaja ClpL·rand se nal:vi u .'l?_l'lllL':Hu 1.a pod<ttke. Kun- pira o,adriaj re'"i'tra .A.:\ !1a na ~'>.JU ,ada ukaLUje SP. Rcgistar SP sc, mcdutim.
stanta sc mozc postaviti i isprcd rcgislra: u tom slucaju adresa sc prr:iJ:tb?i doda-.:tnjcm u ;w:rukc:iji uup.~k iiL' !'''min;.:: u in,trukciji PUSH sc upotreba rcgistra SP podnzu-
sadrzaja registra konstanti. Ov;tj tip :tlh:sir:mj:t. Z\al1 regist:ll·sko adresinl!1jt' s po- mev:c. S\i,':ru i_llll1·:. u>,crnkl';j,: Ktljc" t!Jcr~jaJU indikatore pmlrazumcvano koristc rcgi-
merajem (engl. rcgisicr diYJ'''"'t'I!!Ci!li. l_l'l"lan jc 1.a adrcs!f:m:e nil.<)\' a. t\~n. na pri-
{ star ,<~ indiLtt,Jrin:.t b,:,~ njc:;o'<)g n:t\<•cknja. 13rojnc druge instrukcije taknde ir1aju
mer. regis tar Sl sadrzi vrednost 5. tad a s·~ peti mak niza 11:1 lJI.Ilaci FUf\1,/, \ T llto/c f p~ )dra;un1cv ~tlk' ;,:pt.·r;.\n~._lc.
Prucc:;or :){);~S in•:r in'~ in:;trukcije 1.:1 prcm.:stanjc (MOVS). poredenjc
ucitali u registar Al_ i nstrukcijum
(CMPS: i prcgkd:miL' 1SC."-Sl F•:lk,l\nillniDlVa. Kad se koristc instrukcijc ;a r:<d sa
MOVB AL,FORM/\T(SI). Zll<lkocnim nimvima. imlch,ni rc·gi,tri Si i Dl aulumatski menjaju vrednost puslt: 1pe-
Kroz ceo znaknvni niz moze '>e pruc'i uv<cc'avanjem ili sm:11~jcnjc:nr vrcdrwsti r,·gi- raL·ijc'. Ov::l-.' '• r'' Hl:l;:mic :;.:: iU/i v :t rc:'11n automatskog uvccanja. mlrwsno autn-
stra u svakom koraku. Kada se ka" DpcT:tndi koriste rt'ci. 'redtJ<•st reci:-.tra uS\ akom mabk"g -,man.knja. i):, li L'c ,,: ,;al!r.'':tj rcgistra Sl i Dluvecavati iii smanjivati, nvisi
koraku treba menjati za :2. cKI indikatora smera ·:•, n u n:gistnr sa indikaturima status:\. Al.o jc
Moguce je. ta~mtc. u rcgiswr BX st::\ iti 1>sno'u (tj. n.1p1i~a br:•_j<::mu adn2:,u i n!La. uvaj rndik::t<>r t1, :·;:-~ j,· ,, p•ovec'·'' .: ;1;,;,, jc I. o smanjivanju. Prirastaj JC I Zl in-
a registar Sl ili rcgistar Dl upulrt·hiti ;a brnj::nje. (htl s.: ;:uve regi,t:rr"ko im!t:ksno '>trukciie kujc racks h:qt•.>vima i 2 u irl:-.lrukciJC kuje radc s n.:cima. Pukazivac 'teLl
adn•siranje. Na primer. instrukcip: autnm:Jt-.\.: ,;,lml,nl> ,,nan;u:,· \ rcdno\l: una :.e smanjuje za 2 na pucctku
PUSH (BX)(DI) in~truk.._·ij:::: PU.3H i r'u\ ~L,\\':1 .:~~l ~ na L.:·~qu instrukcije POP.

k
~~
~~'
694 Dodatak C: Programiranje na asemhlerskom C.l Pregled 695
-----------------------------

naiCi na proccsor 8088, svaki Pentium mozc da izvrsava programc pi sane za njcga, tako korak po korak. Izrazi ,simulator", ,interpreter" i ,program za praccnjc·· koristicc se
da se ono sto cctc ovdc nauciti i dalje mozc primeniti na savrcmcnim racunarima. Sta- u ovom dodatku kao sinonimi. Obicno cemo, kada govorimo o izvrsavanju programa,
vise, vccina Pentiumovih osnovnih instrukcija iste su kao i za procesor 8088. samo sto govoriti o .,interprcteru", a kada ga koristimo za otkrivanje gresaka, pominjaccmo
umesto 16-bitnih koristc 32-bitnc rcgistrc. Zbog toga ovaj p1irucnik mozetc smatrati i ,program za pracenje", mada je to u oba slucaja isti program.
uvodom u programiranje Pentiuma na ascmblerskom jcziku.
Da bi bilo koji procesor mogao da sc programira na ascmblcrskom jeziku, progra- C.1.2 Kratak program na asemblerskom jeziku
mer mora da detaljno poznavati njegovu arhitckturu skupa instrukcija. Shodno tome,
odcljci od C. I do C.4 ovog dodatka posvcccni su arhitckturi procc~ora 8088, organi- Da bismo konkretizovali neke od ovih apstraktnih ideja, razmotrimu program i is-
zaciji njcgovc mcmorije, nacinima adrcsiranja i instrukcijama. U odcljku C.5 razma- pis sirnulatora kada mu se proslcdi program (slika C-1 ). Slika C-l (a) prikazuje jed-
tramo ascmblcr koji se koristi u ovorn dodatku i koji sc, kao sto kasnije objasnjavamo, nostavan asemblerski program za proeesor 8088. Iza uzvicnika su brojevi redova
mozc dobiti bcsplatno. Koristimo oznacavanje kojc se upotrebljava u pomcnutom izvornog koda koji olaksavaju snalazcnje s razlicitim delovima programa. Kopiju
asembleru. U drugim ascmblera sc koristi drugacijc oznacavanjc, pa citaoci koji vee ovog programa mozctc naci na'prateeem CD-u, u direktorijumu CXC/1/lf'les, ll datoteci
poznaju programiranJe proccsora 8088 na asemblcrskom jcziku trcba da obratc sa izvornim kodorn Hllo Wrld.s. Ovaj asemblerski program, kao i svi ascmblerski pro-
paznju na cvcntualnc razlike. U odcljku C.6 govorimo o alatki za interpretiranjc, pra- grarni o kojirna govorimo u ovum dodatku. ima sutiks .s, koji ukazujc nato da se r<ldi
cenjc i otkrivanje grc;aka koja sc mozc preuzeti sa Interncta; pomocu nje, pocetnik ce o izvornom kodu pisanom na asemblerskomjeziku. Ekran simulatora, prikazan na sli-
lakse otkloniti grcske u programu. U odcljku C.7 opisuje se instaliranjc alatki i poce- ci C-1 (b), ima sedam prozora, od kojih svaki sadi'Zi razlicite int'ormaeije o stanju bi-
tak rada s njima. Odeljak C.S sadrzi prograrnc, primere, veZ.banja i rescnja. narnog programa koji se izvrsava.

EXIT~ 1 I) cs 00 DS"SS"ES 002


r- MOV CX,de hw I 6
WRITE ~ 4 12 AH 00 Al ·oc AX 12 PUSH CX I 7
C.l PREGLED STDOUT ~ 1 I 3 BH:OO Bl.OO BX 0 PUSH HW I 8
I 9
.SECT .TEXT 14 CH:OO Cl Oc ex 12 PUSH -
STDOUT
start: I 5 . DH·oo DL.OO OX: 0 PUSH ..
WRITE I 10
Nase putovanjc kroz programiranjc na ascmblerskom jeziku zapocecemo s neko- MOV ex de·hw I 6 SP· 71d8 SF 0 D S Z C ">0004 SYS 111
PUSH ex ADD SP ,8 I 12
liko reci o samom jeziku i jednim kratk.im prirnerom. I 7 BP· 0000 CC > p 0001 =>
I 13
PUSH hw I 8 iS I 0000 IP OOOc PC 0000 SUB CX.AX
PUSH STDOUT 19 01 0000 s t 3rt ' 7 OOOc PUSH ex ' 14
PUSH WRITE !10
C.l.l Asemblcrski jczik SYS !11
ADD SP. 8 ! 12
Svaki asembler korisri mnemonike, tj. kratke reci kao stu su ADD. SUB i MUL za SUB CX.r\X ! 13 hw
PUSH ex ! 14 • > Hello World.r1
masinske in~trukci_je kao StO Sll sabiranjc, oduzimanjc i 111IlOZCiljC, da bi SC Jakse pam- PUSH EXIT I 15 nw -t- 0 = DODO· 48 65 6c 6c 61 20 57 01 Hello World 25928 '
tile. Osim toga, asemblcri dozvoljavaju koriscenje simbolickih imena za konstantc i SYS I16
SEC!' DATA '17
oznaka koje se odnose na instrukcije i memorijske adrese. Isto tako, vccina asemblera nw· 18
ASCII "Hello World\n" 19
podrzava izvestan broj pseudoinstrukcija koje se nc prevode u ISA instrukcije, vee
1 de· .BYTE 0 20 ,
predstavljaju komande ascmblcru pomocu kojih se upravlja procesom asembliranja.
(a) (b)
Kada se program napisan na asemblerskom jeziku prosledi programu zvanom
asembler, ascmbler ga pretvara u binarni program pogodan za dircktno izvrsavanjc. Slika C-1. 1a1 Pt\Jgriillllla IN:mbkrsk.nmjc!.iku.lh) OJgovaraJtH'i prikaz u simulahxu.
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 Objasnimo ukratko ;,edam pw1.ora na slici C-1 (b). Na vrhu su tri prozora. dva ve..'a
tada zaustavlja. bez ikakvog obavestenja o tome stajc bilo pogresno. Da bi se pocet- s manjim u src:dini. Gornji levi pruzor prikazuje sadrzaj pwccsora: tekucc vrcdno<ti
nicima olaksao hvot. ponckad je moguce da se binarni program nc izvrsi na pravom scgmentnih registara CS. DS, SS i ES, aritmcLickih rcgistara .'IH, AL, AX i drugih.
hardveru, vee na simulatoru, koji izvrsava instrukciju po instrukciju i daje obaveste- Srednji prozor u gornjem redu prikai.Lije stck, pmlrucje memnri.Je kojc -;c korisli L.a
nja o tome sta se dogalta. Na taj nacin se grdke mnogo lakse otkrivaju. Programi se privrcmenu smc~tanjc vrcdnosti.
na simulatoru izvrsavaju veoma sporo. naravno, ali ako jc eilj da se nauci programi- Desni promr u gomjcm rcdu sadr?.i dco prugrama na asemblcrskom jcziku. sa stie-
ranje na asemblcrskom jeziku. brzina nije vaz.na. Ovaj dodatak je zasnovan na kom- licorn koja pokazu:e instrukciJU koja se trenutno L~vrsava. Tokom racia programa
pletu programskih alatki koje obuhvataju simulator. zvan interpreter ili program za ll1cllja SC tckuca instrukcija i ,;trclica SC p<Hl1Cra. ivJoc simuJalura JC U tulllC Stll ptiti-
pracenje (engl. tmcer), postu on intcrpretira i prati izvrsavanje binarnog programa SkOill na ta>tcr Return \lla PC L~tstaturama je to Enter) izvrsavatc jednu instrukciJU i ,vi
SC prozori a;iuriraju, sto Olllogucava izvrsavanjc programa instrukciju po instrukcijll.
708 Dodatak C: Programiranje na asemblcrskom CA Skup instrukcija procesora SOSS 709

Mnemonik Opis Operandi lndikatori statusa -~


C.4.2 Logicke operacije, opcracije nad bitovima
0 s LJ_C_I i operacije pomeranja
MOV(Bi
XCHG(Bi
LEA
PremeSta reC, bajl
RazmenJUJe reC
UCitva elektivnu adr~;:su
r- e, e..-.
r .... ~ e
r- #e
II
I I
Sledeci blok sadrzi instrukcije za prosirivanje znaka. negiranjc. nala2enje logiCkog
PUSH SmeSta na stek e.# '
komplementa, postupno uvecavanje i postupno umanjivanje. Operacije prosirivanja
POP Uz1ma sa stek3
PUSHF Stavip md1katore na steK znaka nemaju izricito zadate operande. ali rade s kombinacijama registara OX :AX ili
POPF Uz1ma ind1katore sa stE-:ka
XLAT
AH : AL. Jcdan operand potrchan za druge operacijc iz ove grupe moze se uzeti s bilo
Prevodi AL
ADD( B) Dodaje reC e e ,.__ r, e ~- # koje ekktivne adrese. lndikatnri se u slucaju operacija NEG, INC i DEC mcnjaju na
ADC(B}
SUB(B!
Oodaje reC s prenosom e, c .... r. e --- # i occkivan nacin, osim sto Ll operacijama postupnog povccavanja i postupnog umanji-
Oduz1ma reC r~ e. e • r, e ~ # I
SBB(Bt Oduzrma reC s pozaJntiC~:n e, e r, e vanja nc reaguje indikator prenosa; to je sasvim neocekivano i neki smatraju daje to
IMUL!B) MnoZ1 oz.-lJCene cele brO!L''<!J
<;-- ~-

u u I greska u projektovanju.
MUL(El! MnoZ1 neoznaCene r:ele brott-Ne u u
IDIV[BI Dt:il ozna.Cene cele brctevt; u i u u u SledeCi bluk instrukcija ob'uhvata grupulogickih operacija s dva opcranda koje se
[)IV\BJ. Dell neoz~a-~ene cele br~;!e't<:: u ! u u u SVC ponasaju prema occkivanju. l_; grupi ;:a pomeranje i rotiranje, SW operacijc za lld-
CBIV ProS1ruje znak IZ oa.Jta oJ rec
CWO Pro::WUJe zr.dK 1z rt::Ci u jvostr:Jkll ret: rediste imaju efcktivnu adresu. ali jc izvoriste ili R-bitni registar CL iii broj I. Pri [)O-
I NEG(B) B1narna negac113
NOT(B!
mcranju reaguju sva cetiri indikatora; pri rutiranju reaguju samo indikatori pn:nosa i
Log1C.~i komplernent
INC·B! Uvecav3 oJrediSte prekoracenja. lndikalor prenosa uvek dobija bit koji je pomercn ili rotiran sa naj-
O~C,Bl_ SmanJuJe omeUISte
AND( B)
'---~ znacajnijeg, odnosno najmanje znacajnug mesta. sto zavisi od smera pomeranja iii ro-
Log1Cko ,J' e ,.__ r ...
ORt,Bi Log,Cko ,.ill" e -~ tiranja. U operacijarna rotiranja uz prcnos. RCR. RCL. RCRB i RCLB. prenos zajedno sa
XOR181 Log1Cko ,Jski[UC:ivo i11" e •·
s,R 1Bi
operandom na eft.:ktivnoj adresi formira 17-bitnu iii lJ-bitnu registarsku kombinaciju
Log1Cko por'lPr,'Wi>? t,desno e -- 1, e <;- CL
S,\'i.B) ArJtmetJCKo pom.~raqc: udesno e•~ 1,e-CL la cirkularno porncranje koja olaksavJ visekratno pomeranje i rotiranje rcci.
SAL d::3l ( ~SHLiBI) POrT'8f:1flJ8 lJI8VO
RCL181 Roman 1e uJe·.;u
e..- e -- CL Sledeci blok instrukcija sluzi zJ manipulisanje indikatorima. najce'ice kao priprc-
e • 1, e- CL
ROR1B1 PotlfC'lf1J8 ud8vll0 e- 1. e- CL ma za uslovni skok. Dvostruka strdica (H) oznacava dva operanda u operacijama pu-
RCL:Bi RotJranJe uievo s prcnosotn e. e •· CL redcnja i testiranja koji se tokom operacije nc menjaju. U uperaciji TEST izracunava
,!_ f=!~Fl(?l Rot!~::l.l~jP cc:'P"~00 ~ pmno'>Om e- e- CL
iEc;TIBi T~;st•ra oc(:_·:lride e ..--- r. e ~~ # se logicko AND operanada ina osnovu rezultata se postavljaju iii brisu indikatori nuk
cr,:JP(R.t 0 ored1 OD<H:lfld':o' e..- .. r, e- #
STCI Posravlja irk:llkCJ.tor srnH a 1 ~ 1
i znaka. Sama izracunata vrednm.t ne smdta se nigde. a operand ustaje neizmenjcn.
CI_D t3i:Sl> lnc~Jf:;itor :>'~ler3. ( •) U operaciji CMP izracunava se razlika upcranada i sva cctiri indikatura se menjaju na
STC PosLJVI[d ,r;dn<ator prenosa
CL:: Sr::;e 1'1G;I\dt>Jr ;:nen.Jsa osnovu rczultata. lndikator smcra koji odreclujc da lice sc registri Sl iii 01 povecavati
CMC D_opunJdV:lpr_,}flf~S iii umanjivati uoperacijama sa ;nakovnirn nizovima, mo2e se postaviti ili ()hri>ati kn-
i
i_(X)P t·
S,..,.Jce 1klZdd 1ko ;e uman1en CX20 oznaka
L::Cf'Z L(H)f'E ~1AL'd ~~ Z=l
I DEC.CX)c:'"O oznaka
mandom STD, odnosno CLD.
1_:J(_)?NE
~a.zad lkO JP z_
0 I DEC(CXLe:O oznaka Procesur 80XR ima i indikator parnosti i pomocni indikator p•·cnosa. lndibtor
s:Pz tlF::P~:z 0 1
:JrJv !.l 'nstr~Kc,;u Li1 rad 1ns1rukci:a koja radi
-:;-3 znak'J\•fl•1•> n,zom sa znakovrwn r.Jzov1rna, I parnusti saopstava parnost rezultata (neparan iii paran). Pomocnim indikaturr>m ;xe-
--~-
~-1C'v.:~ 1 :31 o,-:'r''0~1:; .liZ ':JCi i nnsa proverava se da li je do prenosa do;]o u ni2em niblu I4-hitnom) mln::di;ta. Postll-
i_OC.:)i8', L:C1tava n1:: reu
~~TC':::_-::.,0: ;11Z rt>C:
:.-)nle~~t:J
je i instrukcijc LAHF i SAHF koje kopiraju nizi hajt registra sa indikatorirna u AH i
::-;c.;.:-· :2, P-oi:J.L: ~rn::: ,l•Z reci, obrnuto. Jmlikatur prekoracenja se nalazi u gornjem bajtu rcgistra s kodovima uslnva
C~APS1B, ?oreJ1 n1znw: -eCI
.JC·~ S\aC.e u z:l'< ISf\LJStl ad uslova oznaka
i tokom ovih instrukcija se ne kopira. Ove instrukcije i indikatmi ugla\ nom pmlOJC
Jt~,1P Sr..COJCC: na czn.1ku e, oznaka zbog povratne kompatibilnosti s pmcesorima 8080 i ~085.
CALL Sr-;;,_(t' f:Cl. ;=:octorJqr ~HT1 e, oznaKa
?.~T vraca se pot;_;rogrnrna
•2 ·, #
.SY.S _ ;< ~e_~c:-~:1 S~~t',~r~·lS~l f?OZIV
C.4.3 Petlje i operacije ponavljanja sa znakovnim nizovima
Slil-.a C--1. N~~c ud rujvalnrjih in.,trukci)'l proccsura XIJXS.
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.

t
~
J
698 Dodatak C: l1 rogramiranje na ascmhlcrskom jeziku 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
Registri opste namene Segmentni registri
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
AX AH AL cs Kodni segment
i AL medusohno saraduju, razmotrite instnzkciju
----
BX BH BL OS Segment za podatke MOVAX.258
koja u regis tar AX ucitava dccimainu vrcdnost 258. Poslc ove instrukcije, 8-bitni (bajt)
ex CL ss Segment za stek registar AH sadrzi vrednost I, a S-bitni (bajt) registar AL sadrzi hroj 2. Ako zatim siedi
---- · - · - - - - - -
instrukcija za sabiranje bajtova
ox OL ES Oodatni segment
ADDBAH,AL
-----
15 8 7 0 15 0 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
Pokazivacki i indeksni registri 000000 I 0 iii u heksadecimainom obiiku Ox03 Ox02_ Osam regis tara sirinc ba_jta skoro
Kodovi uslova
su potpuno medusobno ekvivalcntni, samo sto AL uvck sadrzi jedan od operanada in-
~~j Ill_ 'TifTT~"I'fT rll

E
SP
l _ 0 0 I TIS Z A P cj cc
Pokazivac SF strukcijc MULB i zajcdno s registrom AH preclstavija poclrawmevano odrecliste ove
- -·------------ operacije_ Opcracija OIVB takode koristi registarski par AH: AL za smdtan_jc deljenika_
BP 15-~~ikatori statusa -0
Bazni pokazivac Nizi bajt brojackog registra CL mozc se iskoristiti za cuvanje broja ponavljanja in-
------------- strukcija La pomeranje i rotiranje.
s1 t i- _ lndeks 1zvorista J IP
Pokazivac instrukcija

~----;~;r~-~ski: brojac PC
U drugom primeru iz odeljka C.8 prikazuju se neka svojstva registara opstc name-
ne kroz razmatranje programa GenReg.s_
0 I - --lndeks~~redista___ /
-15--------------------,0
-- - --- -~--- ___ _ _ _ j
15 0 C.2.3 Pokazivacki registri
Drugu grupu registara cine pokazivacki i indeksni rcgistri. Najvazniji registar iz
__ j
uve grupc _je pokazivac steka (engl. stack pointer). koji sc oznacava sa SP. Stekovi su
Slika C-2. Rcgistri proccsora ::;oss_ 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
Cetvrti registar u opstuj grupi _je OX, registar za podatke lengL dutu register)_ On
pravilu rezervisc za cuvanje njenih Iokainih promenijivih. adrese za povratak po za-
sc zajcdno s rcgistrom AX koristi za instrukcije duline dve reci (lJ. 32 bita). lJ ovom
vrsctku procedure i druge upravljacke informaci_jc. Deo steka koji se odnosi na proce-
slucaju ox sadrzi znacajni_jih 16 bitova, a AX manje znacajnih 16 bitova_ Obicno se 32-
duru zove se okvir steka (engl. stackji'ume )- Kada pozvana proeedura pozove clrugu
-bitni celi bro1evi oznaca\·aju izramm dugacak (engl. long). la~tz dvostruk 1engl.
pmcecluru. rezcrvis.c se dodatni okvir na steku, obicno neposredno ispod postojeceg.
douhle) jc~ obicno rezervisan za !J.j.-bitnc nednosti u ronnatu pokrctnog zareza. iako
Duclatni pozivi rezcrvisu cloclatne okvire na steku ispod tckuceg. lako to nije ubavc-
n.cki ovaj iuaz knriste za oznacavanje 32-bitnih celih brojeva. U ovorn prirucniku _je
;.nu. stckuvi po praviiu rastu nanile, od visih ka nizim adresama_
zabuna tak ve vrste i->kljucena jcr uopste necemu gmllriti u broje\ ima u formatu po-
LJ;. Iokaine promenljive, stt:kovi rnogu da cuvaju i privremene rezultate. Procesor
kretnog zarcLcL
80S:·; ima instrukciju PUSH kojom smcsta 16-hitnu rec na vrh steka. Ova instrukcija
Sve registre opste namenc mozemo po.,matratz kao I6-L'ilne iii kao parow S-hitnih
prvv _-,manJujc SP za 2, zatim skladisti operand na adrcsi na koju SP trenutno pokazu-
rcgistara_ Takn proccsnr SOl'/\ imc~ tacno osam S-bitnih registara, koji :-,e mogu koristni
_jc Siicno tome, instrukcija POP poviaci 16-bitnu rec s vrha steka prcuzimajuci vrcJ-
za instrukcije koje ralk' hajlovima i znak.uvima_ NIJcJan od clrugih registara nc mozc
nost, vrha steka i uvecavajuci SP za :2_ Registar SP pokazuje na vrh steka i njegova
se poJeiiri na dvc :-1-hitne pPiovine_ Neke instrukci_jc koriste L'CL> _Jedan regi,tar I npr.
vrednost se moze menjati instrukcijama PUSH, POP i CALL: instrukcija PUSH je sma-
AX), ali drugc instrukcijc koristc samo jednu njegovu poiovinu (npr. AL ili AH I Low,
nju_jc. POP je uvecava, CALLje smanjuje_
engl. donja i fligh. engl. gomjo))_ Vazi princip da ariunetickc instrukci_jc koriste cek
C.4 Skup instrukcija proccsora 8088 713
712 Dodatak C: Programiranjc na asemblersknm jcziku

neposredne podatke. On treba da predstavlja broj bajtova argumenta koji su stavlje:1i


~nstruk_cija Opis Skate kada je
--~-------

na stek pre pozi va, i dodaje se na vrednost SP da bi se stel-; ocistio. Pri udaijenom po-
JNBE, JA lznad CF~O&ZF~O
I
' ---- -- --- ---
--------- zivu RETF, posle programskog brojaca uzima se registar za kodni segment, kao sto Ci-
' JNE, JNZ Nenula, nejednako ZF~O
L ----- ---- --- ste i ocekivali.
: JL, JNGE Manje od SF'i"OF Argumenli trcba da budu Jostupni ~mutar potprograma. Prema tome, potprogram
------

i JLE, JNG Manj8 iii jednako SF,OF iii ZF=1 cesto prvo na stek stavija bazni pokazivac i kopira trenutnu vreclnost registra SP u re-
I - - --
JNo NeprekoracenJe OF~O gistar BP. To znaCi da hazni pokazivac ukazuje na svoju prethoJnu vrednost. SaJa je
Nenegativno SF=O povratna adresa na BP + 2, a prvi i drugi argument rnogu se nac'i na efektivnim aJresa-
I J~S
ma BP + 4 i BP + 6. Ako su proceJuri potrebne lokalne promenijive, ncophodan broj ba-
Slika C-5. u,lovni skokovi. (IIU.\[U\'(i/.;)
jtova moze se oduzeti od poka.~:ivaca steka i te promenljive adresirati u odnosu na
bazni pokazivac s negativnim pomerajem. U primcru na slici C-6 postoje tri iokahe
C...t.S Pozivi potprograma promenijive duzine rcci, na adresnim BP- 2, BP- 4 i BP- 6. Na taj nacin ceo skup te-
Procewr XOXX ima instrukciju za pozivanje pron:dura. 1-;ojc se u asemblerskomje- kucih argumenata i iokalnib promcnljivih dostupan je preko registra BP.
ziku obicno n<tJivaju potprogrami (engl. sulmmtincs). Kao 1-;oJ instrul-;cija za sko- Stek se koristi na uobicajcni nacin za cuvanje medurezuitata iii w pripremanjc :tr-
kovc. i ovdc postuje in,trukcije za hlisko pozivanjc 1engl. ncar call) i instrukcije za gumcnata za sledeci poziv. Stek se moze vratiti u prvobitno stanje bez potrebe da sc
udaljeno pozivanje (engl. j£1r cull). U imerprctt:ru jc implementirano samo hlisko izracunava koiiko je njegovog prostora zauzco potprogram, tako sto sc bazni pokazi-
po;.ivanjc. Odrcdistcjc iii o1.nab iii se mole n;K'i na clektivnuj adresi. Parametre pot- vac kopira u pokazivac steka, sa stcka uzme stara vrednost rcgistra BPi na kraju se
rcbne potprugr;unirna trcha najpre '>taviti na stck obrnutim rcdosil'Jom, kao sto je pri- izvrsi instrukcija RET
1-.a;arm na siici C-(J. U a'cmbkrskom jcziku parametri se ohicno zovu argumcnti, Tokom pozivanja potprograrna ponekad se menjaju vreJnosti registara procesma.
kad oha izr;ua inMJU i,to ;nacenjc. Posk smc:.:tanja parametara na stek izvrsava se in- Dobru JC ako se uspostavi neka konvencija o tome da po1.ivajuc'i pot program ne zna
strukcij;t CAL.L. lnstrukciJa poCinje tako stl' sc: na stek sme.~ta tekuL'a vrednnst pm- nista o rcgistrima J-;oje koristi pozvani potprogram. Najjednostavniji nacin da se to
gramskclg hwjaC·a. Na taj nacin sc cuv;t pPVT<ttna adrcsa. Povratna adresa je ona na uradi jestc da se ista konvcncija primeni i za sistemskc pozive i za uobicajene potpro-
KOjll SC: pW~f;llll,ki tok \T<!Ca iz pPlJ'r<'!,!!al\1:!. gr~unc. 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
BP+8 clobro Ja potprogram koji poziva stavi tc informaciJe na stek pre nego sW na njega sta-
I vi argumente. Ukuliku potprogram kuristi i druge registre, njihov sadrzaj sc: moze
BP+6 Argument 2 i smestiti na stek na pocctku potprugrama is njega povuci pre in~trukcije RET Drugim
r

I
I
BP+4 Argum;,nt t
recima. dobra konvcncija bi bila da pozivalac sacuva vrednosti regis tara AX i OX uko-
BP+2 ' ?ovrat;:a aoresa iiko oni sadrzc vazne podatkc, ada po.~:vani potprogram sacuva vrednost svakog re-
ElP , St0ra vrednosc BP ' c-- BP
gistra u koji upisujc.
BP - 2 Lokair.a cromeilljiva 1

BP- 4 Lokalna pron:enijiva 2 C.4.6 Sistemski pozivi i potprogrami


BP- 6 Loh.air~a pron •tHlljiva .3 1

Kako hi se posiuvi otvaranja, zatvaranja. citanja datoteka i upisivanja u njih rard-


BP - 8 1Pnvc;meni r!~~u!tat '<-- SP VOJili od programiranja na asemblerskom jeziku, programi se izvrsav~0u iznaJ opera-
Slika C-6. f';imn 'teLL
tivnog sistema. Da bi interpreter mogao da radi na razlicitim platfurmarna, Llll poJriava
scdam sistemskih poziva i pet funkcija, navedenih na slici C-7.
Po.,k tr'~a ,,. crcit:tv.tnuv pro,"rarmki hroj;Jc ['reko oznakc: iii sa efektivne adrc,e. Ovih dvanaest potprograma moze S(; aktivirati standardnim postupkorn pozivanja:
~-\k,,jc l'u/iv ucLtltt'll. rcgi~tar CS se Slllc'~la 11:1 stek pre registra PC i tada sc nova najpre na stek treba staviti neophodnc argumente uhrnutim rcJoskdom. zatim broj
vrcdlitl»l i'~'••gr i'rcjai"a i rcgiotr;t La kodni segment ucitav aju iz ncpu,rednih poziva ina kraju po;vati sistemsku klopku SYS bez operanada. Sistemski potprogram
pc.~Lil~tk~t il1 s~l cf~!-.ti\ ni:1 adr~..~sa. Tin1l· :-:c iiL')trukcija CALL zavrSava.
pronaiazi sve ncophodnc informacije na steku, ukljucujuci i broj poziva J:ahtevane si-
in:olruL·tl.t RET '"'II" uzima ]JL'v:~atJ:u a,~,.,,,u -.:a stc·ka i smcstajc u program,ki bro- stemske usluge. Povratne vrednosti sc sme~taju iii u registar AX, iii u kumbinaciju re-
c·~p l''~,,gam nasl:tvija 'a iivr~avanj.:rn ud inslrukcijc koja se naiazi nepo- gistara OX :AX (kada je vraccna vrednost dugacka rec).
srnli:u i/a in,tru~c;jc CALL. Pond.;tda iiblntkcija RET saJrzi po.~:itivan bmj kao
706 Dodatak C: Programiranje na asemblerskom jeziku C.4 Skup instrukcija procesora 8088 707

C.4 SKUP INSTRUKCIJA PROCESORA 8088 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-
Srcc svakog racunara je skup instrukcija koje moze da izvrsava. Da bistc stvarno taka izmectu memorije i ulazno-izlaznih ureL1aja. Podrazumevana adresaje uvek regi·
razumeli racunar. neophodno je da prvo dobro razumcte njegov skup instrukcija. U star AX, a drugi operand u instrukciji je broj prikljucka zcljenog rcgistra uredaja.
narednim odeljcima razmotric'emo najvaznijc instrukcije proccsora i5088. Nekc od U drugom bloku na slici C-4 nalaze sc: instrukcijc za sabiranje i oduzimanje. Svab
njih su prikazane na slici C-4, gde su razvrstane u 10 grupa. 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.,
C.4.1 Premdtanje, kopiranje i aritmeticke instrukcijc 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
Prva grupa instrukcija udnosi se na premcstanjc i kopiranje podataka. Najcdcaje in- se zavisno od rezultata instrukcije. To, na primer, znaci da se indikator 0 postavlja m
strukcija MOV, koja ima svojc eksplicitno izv01iste i eksplicitno odrediste. Ako je izvo- I ukoliko se rczultat ne moze ispravno prikazati pomocu dozvoljenog broja bitova, a
riste registar, odrcclistc mu/.e da budc dektivna adresa. U ovoj tabcli je rcgistar kao na 0 ukoliko mo?.e. Kada sc najveci 16-bitni broj, Ox7ftt (32.767 decimalno), sabere sa
operand oznacen sa r. a efektivna aclresa sa e, tako dajc kombinacija operanada oznacc- samim sobom, rezultat sc nc mozc izr~tziti kao oznacen 16-bitni broj, pa sc indikator ()
na sa e<-r . To jc prva odrcunica u kuloni Opemndi za instrukciju MOV. Posto je u postavlja na I da ukaze na grdku. Slicno se desava is drugim statusnim indikatorima
sintaJ...si instrukcija odrcdistc prvi operand, a izvoristc drugi, strelica <c- se koristi za uka- u ovim opcracijama. Ako instrukcija utice na indikator statusa, u odgovarajucoj kolmi
zivanjc na opcrande. Tako, c<c-r znaci da sc registar kopira u efektivnu adresu. se pojavljujc zvczdica (*). U instrukcijama AOC i SBB indikator prenosa se na pocctkLJ
Izvoristc za instrukciju MOV mo7.c da budc takode efektivna adresa, a njeno Dlire- operacijc koristi kao dodatno I (iii 0), za prenos iii pozajmicu od prethodne opcracijc.
distc registar. SIL' sc m:nacava sa r<cc·e, kao druga odrednica u koloni Operandi. Treca Ova mogucnost je narocito korisna ;a prcdstavljanje 32-bitnih iii duzih cclih brojcva
mogucnost /.a izvmistc su ncposredni podaci. a efektivna adrcsa kao odrediste, sto se pomocu nekoliko rcci. Za sva sabiranja i odut.imanja postoje i odgovarajuc'c verzije La
oznacava sa c<c-#. Neposrcdnu dostupni podaci u tabeli su oznaceni ,tarabonl'' (#). bajtovc.
Pusto postuji instrukcija MOV za prcmdtanjc rcci, kao i instrukcija MOVB za pre- Sledcc'i blok sadrzi instrukcije za rnnozcnje i deljenjc. Za oznaccnc cclobrojne
mdtanjc bajrova. mncmonik instrukcije sc zavrsava sa B u zagradi. Na taj nacin, red opcrande koristc sc instrukcije IMUL i IOIV; za ncoznacene sc koriste MUL i OIV. Kom·
stvarno prcdstavlja scst razlicitih instrukcija. binacija registara AH : AL podrazumcvano je odredistc u verzijama ovih instrukcija
Nijcdan od indikarora u registru s kodovima uslova nije pod uticajcm instrukcije kojc rade s bajtovima. U vcrzijama koje rmle s rccima, podrammcvano odrcdtste JC
za prcmc~tanjc, tako da poslednjc cctiri kolone imaju odrednicu ,-". Imajte u vidu cia kombinacija rcgistaraAX: OX. Cak i kadaje rczultat mno:l.enja samo rec iii b~~t. toko1n
instrukciJC za premt:Stanje nc prcmestaju podatke. One samo pravc kopije, pa se iz- operacije sc obavlja upisivanjc u rcgistar ox iii AH. Mnozcnje je uvek mogucc jer oc-
voriste ne mcnja. sto hi bio slucaj kada bi doslo do pravog premdtanja. rcdiste sadrzi dovoljno bitova. Bitovi prekuraccnja i prenosa postavljaju se kad ;e
Druga instrukcija u ovoj tabcli Je XCHG, koja razmenjujc sadrhj rcgistra sa sadrza- proi7.VOd ne moze izraziti jed nom recju iii jednim bajtom. Poslc mnozenja Sll indib·
jcm cfcktiv·nc adrcsc. Za razmcnu sc u tabeli kllristi simbul H. U ovom slucaju posto- tori nule i znaka ncdcfinisani.
ji vcrzija .ca razmcnjivanje bajtnva. kao i verzija za razmcnjivanjc rcci. Na taj nacin, Pri dcijenju se takodc za odrediste koristi kombinacija registara OX: AX iii AH: AL.
instrukcija sc o.cnacava sa XCHG. a polje Operandi sadrzi rHe. Sledcea instrukcijaje Kolicnik ide u AX iii AL, a ostatak u ox iii AH. Posle operacijc deljenja, sva cetiri ind,.
LEA. (to jc skraL'cno lld Load Efkcti ve Address ( ucitaj efekti VIlLI adresu ). On a izracu- katora (prenosa, prekoracenja, nule i znaka) ncdcfinisani su. AJ.:o jc delitclj tl iii h·
na 1 a hrojca nu vrcdnost cfckti vne adrcse i smdla je u regis tar. I icnik ne moze cia staJJC u regis tar. operacija upada 11 klopku i program se zaw,Ja v IJI
S kdi instruJ.:cija PUSH koja svoj operand smesta na stek. Eksplicitno navedeni ukuliko nc postoji potprogram za obradu klopke. Stavisc. ima smisla da se negativaLJ
operand mu.l.e da bude konstanta (# u koloni Operundi) iii ckktivna aclresa (e u ko- znak ubradi softverski pre i poslc dcljcnja, jcr je po deliniciji pruccsora 8m\R ;nak
lonJ Oncrw,di). Postoji i podrazumevani operand SP koji sene pmninjc u sintaksi za ostatka jednak znaku dcljenika. dok je 11 matcmatici ostatak uvek nenegati van.
instruJ.:c-ijc. Jnstrukcija umanjuje sadrzaj rcgistra SP za :2, zatim smcsta operand na lo- lnstrukcije za binarno kodirane decimalnc brojeve, npr. Ascii Adjust for Additi,,n
ka:_'IJU na k' >ju sada uka.cuje SP. (AAA) i Decimal Adjust for Addition (OAA), nisu implcmentiranc pomoL'u intcrprcte1a
Sil'dcc'aje instrukcip POP, koja uklanja operand sa steka i smesta ga na .cfcktivnu i nisu prikazane na slici C-4.
:Jdn:su. ~arcunc 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-
-ii
r~ struLiju XLAT koja ucitava 8-bitni rcgistar AL sa adrcse AL+BX. Ova instrukcija
%'';-
·~r umoguL'a,·a brzu pretrazi vanje tabcla velicine 256 bajtova.
~,;
+;
:!iii•
;tt,
;{;f
~

i~
~;
~~·.~~------
716 Dodatak C: Programiranje na asemhlcrskom jeziku C.5 Asembler -~---------·-
717

datotcku od jcdnc iii vise objektnih datuteka. Operativni sistcm tada mo'i'.c da uCit:t
C.4. 7 Zavrsne napomene o skupu instrukcija
izvrsnu binamu datotcku u memoriju i daje izvr;i.
U zvanicnuj Jdiniciji procesora 8088 postoji preliks za zanemarivanje ddlnicije Prvi zaclatak ascmbleraje da napravi tahclu simhola koja se kuristi za preslikavan1c
segmcnta koji olaksava mogucnost koriscenja efektivne adrese iz nekog drugog seg- imena simbolickih konstantni i oznaka u binarne brojcve koJC prcdstavljaju. Konstant.:
menta; to znaci da se prva memorijska aJresa iza komanJe za zancmari vanje izracu- koje 'e dircktno dcflnisu u prog:ramumogu se staviti u tabclu simbola bez. ikakve obr;c-
nava kori~cenjem naznaccnog segmcntnog rcgistra. Na primer, instrukcija dc. 1\ledutim. oznakc prcdstavljaju adresc koje se nc mogu oclmah znati. Da bi izracL-
ESEG MOV DX,(BX) 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-
najpc izracunava adresu rcgistra BX pomocu doJatnog segmenla, a zatim sadrzaj pre-
lom ,." (itgovara se .,dot" prcma engl. dui). Za svaku instrukciju i n~tervaciju memori_ c
mcsta u DX. Met!utim. ne mogu sc zane-mariti Jetinicijc scgmenta za slek u slucaju
koja sc pronade u ovom prolasku. brojac lokacija sc povecava La vcli(·inu memort c
Ltd adrcsa koristi registar SP i clodatnog segmcnta u slucaju instrukcija za rad sa zna-
potrebnu da prilwati pronadenu.stavku. Na taj nacin, ako Sll prvc dve instrukcijc du/.it'~
kovnim nizovima kuje koriste rcgistar Dl. U instrukciji MOV mogu sc koristiti
2 i :1 bajta. oznaka 1a tn:cu instrukciju imala bi brojcanu vrednost 5. Na primer. ako :.c
scgmentni registri SS, DS i ES, ali niJC mogucc- u scgmcntni registar ucitati ncposred-
dco koda nalazi na pol:etku prugrama, vreclnost nznake L bila bi 5.
ne podatkc-. a segmentni registri sene mogu koristiti ni u operaciji XCHG. Programi-
ranje uz menjanje saddaja segmentnih registara i delinicija segmenata prilicno je MOV AX,6
ri;icno i treha ga izbegavati kad god je mogucc. Interpreter koristi tiksne segmcntnc MOV BX,500
L:
rcgistre. tako da se kod njcga ovi prohlemi nc javljaju.
(nstrukcije za rad S brojcvima ll furmatu pokrctnog Lare;a jlllStoje U \'CCini racu- Na pocetku drugog prolaska po;nataje hrojcana vrnlnost svakng simbula. Pos'u
nara, ponckacl direktno u procc,oru, ponekad u pm.chtHllll knproccsoru. a ponekad su hrojcanc vrednusti mnenwnika instrukcija konstante, moze sc poccti s generi-
samo kao softverski interpretiranc instrukcije kro; specijalnu vrstu klopke za pokret- san.il'fil koda. lnstrukcije sc- ponuvo citaju. jcdna pu jedna, i njihove binarne vrcdnJ-
ni zarcz. Ra11natranjc tih osobina rrc:va;ila;i okvirc ovog dudatka. sti 'e zapisUJLI u ohjcktnu datolL'ku. Kada je a'cmblirana i poskdnja instrukcia.
ohjc-ktna dawtcka je zavrscna.

C.S ASEMBLER C.5.2 ACK-ascmhlcr, as~\~

Zavr.sili smo ohjasnjavanjc arhitekture procesora ~OR~. Sledcca tema je suftver U ovom <llkljktt upisacenm dct~llje l'ro;;rJma za ascmblir:tnje i pPvclivanjc o.d8
koji sc kuristi za programir:mje proct'sora RO~R na asemblcrskom jc;iku. a namcito kUJije prilu!:cn na kumpat-.t disku :nalazi sci ll:J \\c.:b lukaciji). a radi UL 'imLtbtor. O'aj
alatkc kujc- :-.mo izabrali ;a poucavanjc programiranja na asemblerskum jaiku. Prvo asc:mhkr jt' uv. Ams~c·nLm;-;ki komplL'l za pL'\;J,lcnjc \Amstcrd:lll: C:umpilcr Kit,
ccmo govuriti o asembkru. ;atim o simulaturu (interpreter). a onda cemo preL'i na ACK) kuji jc" napra\ ljen pu ugkdu na U~JIX asc:n:hlcre let nl.' p'> l!':'kllu na asc:mblcrc za
prakticne savctc za njihovo J..ori~ccnjc. MS-DOS iii Wimi<'\\S). Sirnboi £<1 kumentar u ,J\;Jlll ct,ernhkru je u;v;(·nik \' ). s,·e )h1

"'f'; sl.:.di i;:a uz\'iC:1ik<1 Jo kraj:..t teLuC::g rcd~t j2'-.LL' k.Julc:Ha:· k1)_j! ni n~t koji n~lCln ne utCc
i:<
.; na nhjektni ht."\J. L'1 to, doz\·o1jcni su prazni rc:dc)\ i koji sc pr..::-,k~:.(u .
C.S.l Uvod -~· Ovaj asc:nblcr 1-..ori\ti tri i·~vliCiLa oJeljk.a za Cu\'~llt_jc pi\~\CLknob 1-dllLl i p~._,dataLL

Do sada snHJ sa instrukcijama radili pomocu njihovih mncmonika. tj. kratkih i lako f
()ni sc ()dnn..,t: na :~lL"fiHlrij~ki:_' ~..:~Jtlt.:'!H•.: raCun~tr:t. Pr\; i j.: odeljah za tch:~t (TEX.T). Dl
pamtljivih simholil'kih imena kao stu su ADD i CMP. Takodc smo koristili simbolicka ·1' in,;t mk.cije p;·u<: ,.,,;ret. S kc!cci j-? odeljak za pnd,ll ke ( D:\T \.1 ;,a inic·ipl i mv:u1_ie mc-
l.
imena registara, kao stu su AX i BP. Program u komc su koriscena simhu\icka imcna 1.a l nHH·ij~ Ll SC~ll1l'!1(U pudat:tk.a. ~tn jc r)!,)/natu k~hi l:'OCL·tak j)Ph..'t:S.l. P\J:-.lcdnji jc odcJj,lk
~-
instrukcije i rcgistre zovc sc program na ascmhlci·skom jeziku. Da bi sc takav pro- i BSS (Bio(~..:~ Started by S.n~•Lol L u k\ :111~ -.;L· rc/t:n/i\::e nl~..'l1Ji.)rij:l u sc:;1ncntu p,;data·-:2..,
gram mogau izvr'iiti. potrebno gaje prvo prevesti u binamc brojeve k(ljc procesor ra;u- l ali ~~ Ih~ ini..:ijali~~ujt:: Lj. inil~ijaLzHjc se n:.1 0;. S\':..lh:i ud ~)\ iL l)lk'!jak:..t i111a ~tlp)tV~ni
rruj~tL '"k~tcij,l. P<J.Si<Jji ·-i~L' mklpka bkn hi Se :l~c·mhkru dopuslil<l J,t gcncri;c: nJ,t!<J
)
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 •
' in:-;trl.!~:ij<l, pa n:;du pol.~at:..tk~:. /atilll dpc: n1.1lP !n:--trukLija, /.atin1 p.~G .. tL.tk ..t it d .. pa
prograrni pozivaju potprogramc koji stt pretlmdno hili a:-.cmblirani i sacuvani u hihli(l- t cLt . . e ~HllLt r~rrlgrtllllil ;a }' 11 \'C/iY~tn.i~ prcpu:'lli p:·t'UJ\.::di\ anjL ki.?d:t t~lklJ L\a S\'C ln:'ltrak~
l. cijc dodu 7.:..ljL'dllo u \L'~n1cnr za tl'!::-;t. a .<..:Yl iY·~J~lci u ~\~gFt~...·nt ;;1 P'Jd~tt~L'. Sv,1ki rc~-.1
tekema. Da bi ih mugli kuristiti, a:-.emblirana objd..tna datoteka i bibliotccki putpru- r
grarni kujc <lna koristi (t:tkode k::(l objcktne datoteke) nmraju se kombinovati u 1 ~t~CJllhkr-..} 1\g k:..;d~l g . .'nc;-i;c rc,/uLaL ~:.H1JO z.a jcJ~1n ()de!j;tk, :tii :-,c rt.:·Lh}'.'i ;-. kndu1n i
jedinsl \'Cttu izvrsnu hinarnu datoteku: tu radi program za povezivanje (engl. linker). ';
pnda(in1a n1o~u preplitati. U trenutk~I il\ r.~avanja. odc1jaK Tr::XT ~lllt.:'~ta se u ~c;;~n~nt
I
Prevm!cnje jc- potpuno zavrscno kada program za povczivanje napravi tzvrsnu hinarnu !i z:;J tL"kst. a 1 ndi..·ljal-.. f3SS {jt:·dno i;.a JrugL·g) u ..:cgn~t.~nt ;:a
i
.,

,,

~
..

15,
Dodatak C: Programiranje na asemblerskom jeziku C.4 Skup instrukcija prncesora 8088 711
710

Odretlistc za sve instrukcije LOOP mora biti unutar 128 bajtova od tckuce pozicije udaljenosti od in~trukeije. Ako se oclrediste ne nalazi u okviru ove udaljenosti, mora
programskog brojacJ, zJto .sto instrukcijJ sadrzi 8-bitni oznaceni porneraj. Broj in- se upotrcbiti konstrukcija tipa ,skok za skokom". U takvoj instrukciji se preko sle-
strukcija (a ne bajtova) preko kojih se mozc preskociti ne moze se tacno izracunati, dcce instrukeije preskace uz obrnut uslov. Aku je slecleca instrukcija naredba za oba-
zato sto fJLlicitc instrukcijc imaju razlicitu duzinu. Ohicno prvi bajt definise tip in- vezan (bezuslovan) skok, tada je efekat ove dve instrukcije duzi skok nameravanog
strukcije, pa neke instrukcije u koclnom segmentu zauzimaju samo jcdan hajt. Cesto tipa. Na primer, umesto
se drugim hajtom dcfinisu registri i njihov rdim rada sa instrukcijama, a ako instruk- JB FARLABEL
cijc sadrzc pomeraje iii nepo,n.:dne poJatkc, cluzina instrukcijc moze da naraste na
imamo
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. JNA 11
Postojc i specijalni mehaninni za rad u petlji sa znakovnim nizovima. To su in- JMP FARLABEL
1"
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- Drugim recima, ukoliko nije moguce i.cvrsiti instrukciji JUMP BELOW (JB), onda se
tomatsko uvecavanje ili autnmatsko umanjivanje vrednosti indeksnih registara. U izvrsava skok JUMP NOT ABOVE (JNA) na oh!iznju oznaku 1, a zatim obavezan skok
svim ovim instrukcijama n.:gistar Sl ukazuje na segment za podatke, a registar 01 (JMP) FARLABEL. Dobija se isti efekat po nesto visoj ceni u poglcdu vremena i pro-
ukazuje na dodatni segment. ciji se pocctak nalazi u registru ES. Kada sc upotrebi sa stora. Asembler automatski generise ove ,skokove iza skokova" kada se occkuje pre-
instrukcijom REP. instrukcija MOVSB moze sc iskoristiti za premestanje celih nizova vise udaljeno odrcdiste. lzracunati pravo rastojanje prilicna je vestina. Pretpostavimo
jednom instrukcijom. Duzina znakovnog niza nalazi se u registru CX. Posto instruk- da rastojanje samo malo prelazi granicu, ali suneke od meJuinstrukcija takode uslov-
cija MOVSB ne menja stanje indikalora, tokom opcracijc kopiranja nc moze se po- ni skokovi. Spoljasnji skok sene moze razresiti duk sene ma velicina unutrasnjcg. a
mocu instrukcije REPNZ provcravati postoji li nula (ASCII), ali se to moze srediti ako takvih ,skokova umrtar skokova" moze biti vise. Da bi bin sigurniji, asemblcr gresi na
se prvo upotrebi REPNZ SCASB da bi se u registru CX dobila razumna vrednost. a poslc ,.oprczniju·' stranu. Ponekad a~ernbler gencrise skok za skokom i kada to nije ncop-
toga REP MOVSB. Ovaj postupak ce biti ilustrovan primerom kopiranja znakovnog hodno. Dircktan uslovni skok generise samo kada jc potpuno siguran da se odrediste
niza koji it.nosimu u oddjku CX Za sve ove instrukcije posebnu paznju treba posve- nalazi u okviru potrebne udaljenosti.
titi scgmentnom registru ES, osirn ako ES i OS sadrze istu vrednost. Interpreter koristi Uslovni sknkuvi po pravilu zavise od indikatora statusa. pa irn prethodi instrukcija
mali memorijski model, paje ES =OS= SS. 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
C.4.4 lnstrukcije za skokove i pozive iii muje bit znaka postavljen (tj. rczultatje ncgativan). postavlja sc udgovarajuci in-
dikator. Ukoliko se rczultat ne moze izraziti dozvoljenim brojem bitova. postavlja se
Poslcdnji blok sadrzi uslovne i bczuslovne skokove, pozive potprograma i povratak indikator prekoraccnja. Kad postoji prenos iz najznacajnijeg bita. postavlja se indika-
iz njih. Najjednosta\ nija operacija je instrukcija JMP. Ona kao odredi.~te moze da ima tor prenosa. Uslovni skokovi mogu da testiraju sve ovc hitove.
oznaku iii sadriaj bilo koje efcktivne adrese. Ovde sc pravi razlika izmedu kratkih Ako se operandi smatraju oznacenim, trebalo hi koristiti instrukcije GREATER
skokova (engl. ncar jlllllf!) i dugackih skokova (cngl ..fiu·jwnp ). Kod kratkih skokova THAN i LESS THAN. Ako su neoznaceni. treha koristiti ABOVE i BELOW.
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- · ln~trukcija _1 ?_pis
kom. nova vrednost registra za kndni segment zadaje se u pozivu i.ca oznake. u verziji i Manje iii jednako
JNA, JBE --·1 . - --··-·
sa ekktivnom adrc.,um iz mcmorije se prcu.cirna dugacka rec, tako da nih rcc oclgo-
JNB, JAE, JNC J Nije llla_nje .
vara oznaci udredi.sta. a visa rec vrednosti registra za nov kodni segment.
JE, JZ I Nula. jednako
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- JNLE, JG 1 Vece od
vanjc vise ud 16 bitova. 1(.) se radi zadavanjem novih vrednosti registrima CS i PC. JGE, JNL
--i
1 Vece iii jednako
- -
JO LPrekoracenje
Uslmni skokovi JS ! Znak negativan
Proces••r SOilS ima !5 uslovnih skokova, ud kojih neki imaju po dva imena (npr. JCXZ i ex je nula
I
instrukc:ija JUNIP GREATER OR EQUAL isto je sto i JUMP NOT LESS THAN). Oni su na- , JB, JNAE. JC Lis pod
vedcni na ~iiL·i C-5. Sve instrukcijc omogucavaju samo skokove unutar 128 bajtova Slika C-5. Uslovni skokov i.

~~u
720 Dodatak C: Prog•·amiranje na asemhlerskom jcziku C.S Asemblcr 721

Pseudoinstrukcijom SPACE zahtcva sc da 'c pokazivac lokacijc povcc'a za broj baj- sistema vrlo blisko povczane. Mi\SM i TASi\l poclriavaju sve memorijskc modele
tova zadatih argumcntima. Ta pseudoinstrukcija jc posebno korisna u BBS scgmcntu proccsora XOXX kojc dopusta iv!S-DOS. Posloji. na p1imer. majusni (engl. tinv) mcmo-
kada sledi i;:a oznakc i rezcrvise memoriju za promenljivu. Pseudoinstrukcija ALIGN rijski model u komc sav kod i podaci moraju da stanu u 64 KB. mali model, u komc
koristi se za dovodcnjc pokazinea lokacija do prvc dvo, cetvoro iii osmobajtne gra- kodni segment i segment podataka mugu da budu velicine po 64 KB i vcliki modtli
nice u mernoriji kako hi se olaksalo slaganjc reci, dugackc reci itd. u odgovarajuc'u koji imaju vise kodnih segmenata i se~mcnata za podatke. Ovi odcli se razlikuju po
memorijsku lokaciju. Na kraju, pscudoinstrukcijom EXTERN najavljuje se da c'e po- nacinu kori~cenja segmentnih registara. U velikmn modclu dPzvoljeni su udaljeni
menuti pot program iii memorijska lokacija biti -,tavljeni na raspolaganje programu za pozivi i izmenc u rcgistru OS. Sam proccsor postavlja ncka ograniccnja segrnentnim
powzi vanjc kao spoljasnja refercnca. Sam a definicija nc mora da budc u toj datoteci; rcgislrima (npr. rcgistar CS nc rnoze biti odrcdislc u instrukciji MOV). Da bi simuliranjc
ona mozc da budc i na nckom drugom mestu sve dok program za povezivanje moze teklo jcdnostavnije. as88 koristi mali menwrijski model. iako ascmbkr bcz simulatora
dana pravi nacin koristi lu refercncu. moze cia obraduje segmcntne rcgistre hez ikakvih dodatnih og:raniccnja.
lako je sam ascmblcr prilicno opsleg tipa, ako se kmisti uz simulator, trcbalo bi Ovi drugi ascmhlcri ncrnaju,odcljak .BSS i inicijalizujumcmoriju sanw u odcljcina
neslo istac'i. Ascmblcr prihvala pseudoinslrukcije pisane i velikim i malim slovima, DATA. Ascmblcrska datukka obicno pocinJe zaglavljem, iza kuga sledi odeljak OAT\,
ali ih simulator uvck prikazujc velikim slovima. Slicno tome, asemblcr prihvata i ,\r" uznacen kljucnom rcei .data, pa tckst p1\1grama i;a kljucnc reei .code. Zaglav ljc ina
(CR) i .,\n" (LF) kao oznaku novog reda. ali simulator uvek koristi LF. Stavise, iako kljucnu rec title za imenovanjc pwgrama, k]jucnu rec .model /.a U/nacavanjc lllCillOrlj-
ascmblcr moz.c da obradujc programe smdtcne u vi~e datoteka, kada se kuristi uz si- skog mudela i kljucnu rcc .stacl< za rc1.crvisanjL~ mcrnorije namenjcne -;egmentu stela.
mulator. ceo program mora hili u jednoj datoteci s nastavkmn ... $". Unutar nje, uklju- Ako prcvedeni program trcba da hude .cn111 cbtoteka. bit·a sc majusanmcmorij,ki n:o-
ccne datotcke se mogu pozi vat i komandum deL svi scgmcntni rcgistri su mcdu:;obno ravnnpravni i na pocctku ovog komhitmva-
#include ime datoteke 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
U ovom slucaju po;.vana datoteka takmte se upisuje unutar kombinovane .,.$ .. da- detinisanjc reciJ i DB (za de1inisanje hajtal. Poslc dircktivc DB mo7c se definisati !l,a-
toteke na mcstu poziva. Asemhler provcrava da li jc umctnuta datolcka mo?.da vee kovni niz unular navudnika. !;:a o;naka za dctinisanjc pc,cbtaka m: stavlj't se dvot::c-
nbradcna i ucitava samo jednu kopiju. Ovu je narocito kori~no ako vise datoteka kori- ka. Vcliki delovi mem•lrijc lll<Jt'LI se inicijalii.\Wati kljuctwm rcci DUP. i~pred koje je
ste istu datoteku zaglavija. U ovom slucaju, u kombinovanu izvornu datoteku ukljucu- bmj bajtuva, a i1.a koj<: je inicijali;.acija: na pnmer, naredha
je sc samo jedna kopija. Kada zelitc da ukljucilc datoleku, #include mura biti prva
OZNAKA DB 1000 DUP iO)
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 inicijali;ujc )()()() hajtuva memorije na nznaci OlNAK,\ ASCII nuL!mJ.
imc projckta pr ida ce kombinuvana datoteka biti rn:$. Ako postoji vise od jedne iz- Stavisc. ni iza !)/!laka Z.l potprognmc nc ~tnji dvolaC·ka. vee ki_iucna re(· PROC. '\Ja
vorne datotekc. tada se za ime projekla uzima ime prve datotekc; ona se koristi i za kraju fHllPwgrama <ll.naka se pun:tvlja i i;.a nj.: se stavlp kijui:·1w rec ENDP. tako da
cldinisanje .$ datotekc koju asembler gcneris<: nadovczujuL'i izvornc datotcke. Takvo cl'Cillhkr nwzc da vidi ta<:an np.sc:g pntprogLuna. Lokalne <1Znakc nhu pudr;'ane.
podrazumcvano ponasanje rno/.e se izbec'i aku se na komandnoj liniji isprcd prve iz- Kljuctl<' re::·i La instrukci.!c i~te .<u 1.a sva tri a;;..:mbkra. lsto t:1ko. k"J s\ih -;e u tn-
vorne datutcke nalaL.i indikator ,.--o ime_projckta". kada cc imc kumhinovane datolc- strukcijan1a ~ JvJ ~Jpcranda il.\'OtT~l~ upi~u.ie plblt' odr~diSta. ~Iedu;.inL uuhiCa~t:f!t, .k
kc biti i111c _projektu. $. Ja ..;c ;a prp-..Jcdi\anj(' ~1rgun1cnat~1 fu~~"-ci.Jttina k!1rl~tc regi~tri, J l1t' ~td,. ;\kn .• .:. t~1~­
lmajte na umu da pw,toje i neke potdkocc ako sc koriste ukljuccne datotcke i vi.~e dutim. ascmHcrc,ki pc•lp•·:,g:umi k,ni~,te U!lUcar prDgrama pisant!l na jCI.icinl~\ C iii
izvurnih datotda. Tadaje nenplwdno da im<:na ot:naka. promcnijivih i konslanti budu C++. tacla jc b<>lj,· kon~;titi stck. stu JC ':t!,!lasno mehaninmJ p<!!ivanja l'<>lprllg:r,tlllo u
rculicita za svc izvornc datotcke. Stavi.;e. datotcka kop sc a.-;emblira u iLvrsnu d;!lOle- C programillla. Ovn ne prc'<btavlja 'll<tim:ku razliku. J"lSlo sc u a''clllbicr·u <is88 n
kuje illle_projck!u.$, tako da se brojevi reduva kuje navodi asembler u slucaju grdaka proslcdivanjc argunlL·nata takcd..: rnogu kori:')~iti r~gi~lri un1c~to \lck._t.
i upozorenja odnose na ovu datotcku. Za vrlo mak projekte ponckad je najjedn<lSlav- Naj\c~._~a ra1liha itn1cdu a:-,cnlbk·ra :\L\S~L Ti\Si\·i i us88 .ic~tc n:v:in l!!;u(i~.·._uyt
nije da ...,e ceo program stavi u jedinsl venu datoteku i tako izhegne oznaka #in..Jwle. sislt.'mskih pu1.iva. Si-,tem -,c u cl'tcmbkrima :V!.-\S\1 i T:\S\1 !WI!\:: Ln>/ ;islc'ill'ki
pr~kid i~<T :"Jaju<>hicajc>niJi uk::v prc:k:ci j•: i~IT 21 H. koji J·~ twmcnjc':J l'()Zi' ~1nju funk-
cij:l \IS-DOS-a. Bruj poriv:1 -;e <.,nw:;t,t u r<'i!hlar· AX. takn da r••rl""'l c;rcccn)(' p·.J-
C.5.3 Nckc razlike u odnosu na drugc ascmblere za prot:esor 8088
skdil·anjc argum.:nttta ~n1z regi:,Lr~. Zcl rcu!icite uredajc p<JS\<)i<' r:uliciti vckto'·i i
Ascmbler us88 radcnjc po uzoru na standardni UNIX-<l\' a'emhkr ina izH:stanna- brojevi prc-kida lnpr. 1r,1T i6H n iiiOS <WC funkc:i.JC LJofaiurc i iNT 10H /~l m<•niturl. Da
cin ;,L~ ra;:likuje od Microsoliovog makroasenthlera "vl:'\S.\1 i Bm!,mduvog asemblaa hi prugr:unir:to CIVC funk.Lijc. progr~ll11Cr 111ora Ja po;n:tjc !Jrojne pui._blkc spcciJi(n.._ 1'~~1
TASM za prucesor XORX. Ova dva asemhlera su projcklovana za opcrali\ ni -;istcm konkr...:tnc urt'(Lt.i(_'. N~t,upr~.)t ton1e. L->~lX-P"vi -.,i.-..t~~1nski pt)fi\'i kqji pnstojc q l1SUll-
MS-DOS i na mhnknim mestima su operacijc as..:mbkra i uperacije uperativnog bknt :1sS8 il\JJUgo ,e JCdnu,t,nni.Jc K!lri,\e.
714 Dodatak C: Programiranje na asemblerskom CA Skup instrukcija procesora 8088 715

iBrO] : Ime I Argumellti- rvracena vr~dnosi Opi~ ... . . Za funkeiju CLOSE potreban je samo cleskriptor clatoteke i on pnstavlja nulu u re-
rs·-- r·.::aPEN l'ime, 0/1/2 deskriptor datoteke Otvara datoteku gis tar AX ukoliko se Jatoteka mozc uspt:Sno zatvoriti. Funkcija EXIT zahteva cia se na
is 1
_GREAT 1
·rme, ·rezim deskriptor datoteke Pravi datoteku steku nalazi status za izlazak i ne vraca vrednost.
I3 ! READ dd, baler, br bajtova # bajtova UCitava br_bajtova u baler
I 1-
Funkcija LSEEK u otvorenoj datoteci mcnja poziciju pokazivaca za citanje/upi-
14 i __WRITE dd, baler, br_bajtova # bajtova Upisuje br_bajtova iz baiera
/6 _CLOSE dd 0
aka se uspesno Zatvara datoteku sa deskrptorom sivanje. Prvi argument je cleskriptor clatoteke. Posto je drugi argument dugacka rec,
1 1, zavrs1 dd prvo se na stek smcsta znacajnija, pa manje znacajna rei', cak i ako pomeraj staje J
i 19 II _LSEEK dd, pomak(du· poziciJa (duga_rec) [ Pomera pokazivac datoteke ree. Treci argument naznacava da 1i ce nova pozicija pokazivaea za citanje/upisivanjc
1 , ga_rec), 0/1/2 .
11 i_EXIT status · Zatvara datoteke. Zaustavlja
·
biti izracunata u odnosu na pocetak datotekc (slucaj 0), u odnosu na td.uL'i polozaj pu-
I f' . proces
1 kazivaca (slucaj I) iii u odnosu na kraj clatoteke (slucaj 2). Vracena vrcdnost jc novel
1117 _GEtCHAR cita znak I Citaznak sa standardnog ula-za pozieija pokazivaca ll odnosu na pocetak Jatotcke i moze sc naci kao dugacka rec J
[122 [_PUTCHAR znak upisuje bajt I Upisuje znak na standardni izlaz kombinaciji rcgistara DX :AX. ,
: 127 _PRINTF •tormat, arg Upisuje formatiran argument na
I I standardni izlaz Dolazinw do funkcija koje nisu sistemski pozivi. FunkL:ija GETCHAR cita jecla1
'121 · _SPRINTF baler, 'format. arg Upisuje formatiran argument u wak sa standardnog ulaza i smesta ga u registar AL, clok se u registar AH postavlj1
I 1 baler vrednost nula. Pri neuspesnom zavrsctku, rei' u registru AX postavlja se na -I. Funk-
1
_125 1__SS(;ANF baler, 'format, ar>l._ Clta argl!nl_E'flt_e izbafera _j cija PUTCHAR ispisuje bajt na standardnom izlazu. Vracena vrednost pri uspdm
Slika C-7. Ncki sislcrnski pozivi i polprogrami UNIX-a koje podrzava intcqlleler. zavrsenom pozivujc upisani hajt; pri ncuspcsnom zavrsctku on a jc -I.
Funkcija PRINTF generisc fromatirane informal'ijc. Prvi argument je aclresa znu-
Posle sistemske instrukcije SYS svi registri garantovano zadrz.avaju vrednost. Isto kovnog niza za fonnatiranje, koji je u stvari sablon formata za izlaznl' podatke. Zncl-
tako, posle poziva ce i svi argumenti biti na steku. Posto oni vise nisu potrebni, po- kovni niz ,'lr. d" znaci daje slnleci argument ceu bmj na steku, koji se pri ispisivanj'1
kazivac steka treha podesiti posle poziva (to radi p01:ivalac), osim ako su argumenti pretvara u ckl'imalan zapis. Na isti nacin, ,'7cx" ispisuje argument u heksadecimal-
potrebni za sledeCi poziv. nom. a .. '/r.o" u uktalnom obliku. Stavise, ,'k•s" znaci claje sled<:'ci argument znakovr.i
Postoji pogodna mogucnost da se imena sistemskih poziva Jetinisu kao konstante niz koji sc zavrsava nulnm i koji -;e pmsleduje funkciji preko mcmorijske adrese ru
na pocctku asemblerskog programa, tako da se mogu pozivati po imenu, a ne po bro- std.u. Bwj dmbtnih argumcnata na steku treba da sc poklapa s brojem oznaka ZJ
ju. U primerima cL:mo razmotriti vise sistemskih poziva, pa ovde iznosimo samo mi- pn:tvaranje u znakuvnom nizu za formaliranje.
nimum neophodnih detalja. Na primL:r, po1.iv funkeije
U ovim sistemskim pozivima datuteka se otvara iii pozivom OPEN iii pozivom printl("x ~ %d i y ~ %d\n", x. y);
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 dato~<:ku treba Ot\oriti za ci- i:ipisuje I.nakovni niz s brojcanim vrednostima xi v umesw 7.nakovnog ni;a ,'fcJJ" 11
tanje), I (ako datoteku treba otvoriti za upisivanje) iii 2 (La citanJC i upisJvanje). Ako ;rnakovnom nizu ;a furmatiranjc. 7hug komp:ttibilnosti s jezikom C, rl'dosled kojim
se za upisivanje otvara datoteka kuja ne postoji, una cc biti napravljena. Po;ivmn '"' argurnenti smt'SLtju na slek je .,y" ... x .. i adrL:sa znakovnog niza za fonnatiranje.
GREAT pravi se pra1na datotcka, uz doz\ole za rad u skladu s Jru~im argumentom. Ova knnvenl'ija postoji zh•g tnga sto funkcijaprinl(ima promenljiv broj paramctara:
OPEN i CREAT cc vratiti mali ceo hroj u registar AX, koji se zme dcskriptor datotekc pa kada 'e uni :,tavc na skk uDhrnuwm rcdusledu. znak.ovni niz za formatiranje uvek
i koji Sl' mozc iskori,titi za citanje datoteke, upisivanje ll nju i njeno zatvaranje. Nl'- ldanl' puskdnji i laku se rnoze pmnaci. Kada bi paramctri hili sme!itani na stek sleva
gativna vraccna vrcclnost 1.naci da poziv nijc uspcsno zavrsen. Na pocetku programa ude-;no, znakovni niz 1.a fc1rmatiranjc: hio bi duboko u -;teku i funkcija printj'ne bi L.na·
vee su otvorenl' tri datoteke s deskriptorima: 0 za stanclardni ulaz. I za standardni iz- ia gJc Ja ga traZi.
laz i 2 za standardni izlaz za grcske. Prvi argJJllll'nt funkcije PRI~HF je bafer za prihvatanje izlaznog znakovnog niz;t
Pozivi READ i WRITE imaju tri argumenta: dcskriptor datotcke, hakr za podatke i umestP ,;tandardnog i1laza. FunkciJ,l SSCAf\IF jl' suprotna funkciji PRINTF jer je prv:
broj bajtova koji se prenm,e. Posto se argumenti smdtaju na stek ohrmuim rcdc>slc- argument;nakc)Vni niL kuji mo;;e sadrzati ceiL brojevc u decimal nom, heksadecirnal·
clom, prvo se stavlja broj bajtova. zatim aclresa pocL:tka bafera i deskripwr datcJteke i nom i uktaJn,Jmohliku, a skdeci argumentje znak.ovni niz La formatiranjc u komc Sl
na kraju hroj po1.iva (READ iii WRITE). Ovaj redosled stavljanja na stek odgovara stan- nwgu nalaziti uznakc' ;a pretvaranjc u drugaciji clblik. Ostali argumenti su adrL:se me
darclnim pozivima u jeziku C. u kome se komanda 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
read(dd, baler. bajtovi);
ukvirc' ovng dudatka. U mkljku C.8 na vi;e primcra P<'LIZHCL'ITHJ k.ako sc oni mugu
impkmentira taku sto se paramLtri stavljaju na stek redc)sledom haj1ovi. hafl'r. dd. koristiti u razlicitim situacijama.

·WJ-
72-J Dodatak C: l'rogramiranjc na ascmhlcrskom jcziku C.7 Pocinjcmo ns

Adresa 1Komanda
~---·~-

Simulator vodi rae una i o nivou potprograma. To je prikazano u prozoru is pod pro-

-~--~-~-=_il
Primer Opis
ct:sorskog, a mozc se sagledati i kroz prika;:ane brojeve u prozoru stcka. Postoje tri
lzvrsava jednu instrukci u
f----- -- ---~----- komandc koje se bave ovim nivoima. Komandmn - simulator se izvrsava svc dok
# ,! ,X 24 lzvrsava # instrukcija
'
nivo potprograma nc bude za JCdan manji od tekuceg. Ovum komandom simulator
IT+# g, I, /start+5g lzvrsava se do red a # ' osle oznake T izvrsava instrukcijc dok sc ne zavrsi tekuci potprogram. Na suprotnoj je komanda +:
IT+# b /start+5b
-t---- ·--- - - - u u red # posle oznake T ~\
1 Postavlja prekidnu tack simulator se izvrsava dok nc naide na sledcCi nivo potprograma. Komandom = simu-
IT+# lc /start+5c 1Uklanja prekidnu tacku z reda # posle oznake T lator se izvrsava dok nc naide na isti nivo potprograma, sto sc moze isk01istit1 za
---
# g !108g 11zvrsava program do re da # izvrsavanje potprograma pozvanih instrukcijom CALL. Ako sc zada komanda =,de-

~ '"~"" pmg<Om dok 1- - - - - - - - - - - - - -


onovo ne na1de na tekucr red talji potpmgrama se ne vide u prozoru simulatora. Postoji srodna komanda n, u kcJjoj
g se simulator izvrsava dok se ne naide na sledeci red programa. Ova h:nmanda je po-
b -~ _PostaviJa prekidnu taCI u u tekucr red
sehno korisna kada sc: upotrc\Jljava sa instrukcijom LOOfJ; izvrsavanje se zaustavlja
~ U~lanja prekidnu tackL
-··-~---- ---~l

c c z te~ceg reda . ------1


------f------- _
r
~
r
-~':"!sava program do s deceg reda
~ lzvrsava program do p e~~-;; 1-;;-tk~'_d~~~~i-~~--=J
!
tacno kada se izvrsi poslcdnja isntrukcija u pt:tlji.

---- -+----------r-------.- - --------- -------


strzanta istog nivoil potprograma 1
C.7 POCIN.JEMO
_----'-------"- _ ;;;~ -~lPrOWa~l-;;:;;~- -l
r---
-; -- _ 1=--- -------+~
,
____ I

i_l~~s~,','a prog_r<m1 don~voaflCltprogra!na__!)lus 1____ ___j


I U ovom odeljku objasnjavamo kah:o se h:oriste alatke. Pre -;vega neophmlno je da

~d ~uf+6d segme~t oznaka~#


pronadcte sol'tver za svoju platfonnu. Priprernili smo prevcdene vcrzijc za Solari,,
[)_+-_!t __ _______ i lbuf+_.6_ _ [_F2i~~'iZUJe segme;;t oo~ata~C]na adresi _oznaka+!/___ j
UNIX. Linux i 'Windows. Alatkc se nalazc: na pratecem kompakt disku ina Webu (na
D+# .r I PrikilZUJe pod a taka ra adresi !

,-=
1
I
--=~~ cTRL _L i R
1
--= _-t~~v-~~~-,;~~~~~-=~==~====--=f
9_ ____l_q_____ .lZavrsava simL~rar~~ :~aca okr.LJzen~ se .LJ _koman_9no
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
Slika C-1 I. Kuma11Lk ..,imuLnura. Svaka k.IJ!Tl~tnd;l.'-~'-' !l1dLt Lavr~iti priti~kum na ta...;tL:r Enter (CRJ. potrcban materijal. Na kumpakt disku su glavni dirckturijumi !Jigendnx, Ulend.Yx i
Prdnl~l L:L'Iij.l /n,:Ci da ,'-,;\1110 lrcha rriti.-..nut! laj taSll'J". Knr;l~lJl(!L' he; J'H'~L:ttka li pn!jt.1 • \drt'\(l ill'J1l:tju MSWindos, i u svakom postoji poddircktorijum assemhler koji sadrzi materijal Tri
~llln::--~. Si rnhni # pn..'d:-,ta \ !_ ia L'l' J llbro j Il.<) ra:-.!1 )j~1nj.: \ p\ illh_'Ltj l. 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.
Kt.)JlJ~llH.lurn g n1o/.cte :-;tiL:i do Ladalug r.~da lzvo;·nc datuL.J.c. Puq~.)_ic tri VLT!.ljc (JVe Posle raspakivanja iii kopiranja, direktorijum asscnzbler trcba da sadrzi skdc:cc
h:omcmde. ,\kPjoj prcthodi bruj rcda, cHJda -,inwlator ra,L J.,h: ,,,, nc: d·ld~ do zada!<lg poddircktorijume i datoteke: RE-\IJ_ii,!E, bin. as_src. trce_src. exalltplcs i exercise.
hrPj~1 reda. L1z O/llll"-u /']~~a ili hL'/ +#. hroj rt·da ILl ~('~111~ ~e sii1:u!atcr /au:-.t.J.vlja il-
PrC\cdeni izvorni programi mugu sc naci ll direktorijumu hill, ali zbog pogudn lSti,
r:l::un~t\'lt '-)L' ll(l U\Jh)\U ULnahc iihtrukLijc r Kl)!11~tndtlill ~:he·/ i~Jkvill pcllk)a ~inni­
njihove kupije postoje i u dirch:torijumu exalltf>lcl.
latc•r i/vr(a\·a kornan..._k s\·c dok pun~lvu nc nai~\~ nJ !ckuL:l brP_j rcda. Da bistc steh:li utisak kah:o sistcm radi, uditc u direktorijum exantples i upisite
Konl~liH_;~l/o~~liUAd ile cL.lJC' isle reztdl~t:.~ 1.~: in>;ti·uLc·ij~:.· i ZLl pot...l:ii~l' .-\ku ]'---. u !)it:ii1ju
komandu
O/.na~a 1.:1 pt•:.Lttkc.'. rcJ u dc~n_i..._·Jn pro1.oru i:-.. punja\ a~~ ili ::,c l'r~..:K~ ·, nJcg~~ upi.'~uju puda-
ci kn.ii po0inju na tuj uinaci. Akt) :-,c radi u 0/!1~h:i t:l i!l--:tlu~. . . ~.:iju. r;.:;ulttHj:..~ i~ti kau da t88 HlloWrld
S!C iL:d~di kP11Llt1dll g. {;.a 07n:_lk_;: !1H)gll sJcditi Zll~lk )"du..; i hn'~_j (0":11~H:l_.ll Si111bnJur11 # Ova komanda odgovara prvom primcru u odeljku C.X.
na :-..li(:i C'-ll ). da hi :-.c /ada!n 11dr~dcno L~:--ll}_j;tni~..~ 1.•d od;,:k.. ..:. L-:vurni kC1d asemblerajc u direktorijumu us_src. Izvornc datotekc su pi sane 1u jc-
lll:)truk....:iji "C [1)1)./2 rr1JruZiti prekidna ta,:·l\:t (.._']'!\T]_ hrc;:;,",'i(;i;)[l. To "c rttdi k.-;- ziku C, a mugu sc prcvesti kmnandom make. la platformc po standardu l'OSJX.
!l~andU!ll !J. kojn_j tljlCilit10 :no/c r'tTthodi!i l.);:n:lk~: posroji komanda !'vfukefile u direh:torijumu sa i1vornim koclom h:oja obavlja isti pcsao.
ili bcz nj~:.~~l). Kada --;c tnklH11 it:\r;~t\Ltr:jLt ntlidc:? ila red:-, pr\._·kjdltOln ~dCkutn, ~inJ~dtttl.lr Z<t Windows sistc:me postoji komandna datoteh:a 11111kc./Jilt. Mold ace biti pmrehno da
Da t~i '-;C lZ\ r:·<t\~anj2 na.'t:1viio i~a taL: h.~_: pr('ki~Ja, f)\.llrc:}an jL !'ri!i-.;ak na t:L\tcr it.nsnc datotcke posle prcvmlenja prcrnestite u dircktorijum programa ili da izmcnite
I·:ntLT ili kl)l!!~tnd~. 'l~i r!\JkreLti·:j~ . .-\:\.,) )(: ilC .t.ad~tjll (1/.JL..lk~i i prckidna t~lc:\.a ~c promcnljivu PATH tako da ascmhlcr us88 i nJegov program La otkrivanjc: grdak<i r88
'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- budu vidljivi iz direktorijuma koji sadrzt: i;:vornc h:odovc na asernblcrskom jc;.iku.
ih()d:ri ~)/llakc i i, k~hJ k.ud ku111~111dc h. Pll:-,tcji l·.. un1anl!~1 !J }h;~rcunjc, 1, p~):~;c Altnnativno, umcsto da se upisuje 188, nlllze s,; upi,ati potpuna putanja.
kt).JC <...c :-.in:ulat~)r izvr.~.t\'a o..;vc Jpk ne :.,tignc do sicdc'(=: prck.id!lc ta~~kc. lk)k ne 11:.1ide
na poJ:i\· J .._t izlazak i/ pr\'~gran1a iii Jok 11L' "ti~nc Ju ~. . raja nij'~a kcnnandi.
722 Dodatak C: Programiranje na ascmblerskum C.6 Simulator 723

C.6 SIMULATOR 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
Simulator (program za postupno izvrsavanje programa i otkrivanje gresaka u nje- apsolutna pozicija u segmentu podataka. Potom dolazi dvotacka, pa osam bajtov:t u
mu) namenjcn je izvrsavanju na obicnom terminalu (VT I 00), rczolucijc 24 x XO zna- heksadecimalnomobliku. SledeCih 1 I mestaje rezervisano za znakove, a iza njih sic-
kova, koji poznajc standardne ANSI komandc za terminale. Na racunarirna koji rade eli decimalni prikaz cetiri reci. Bajtovi, znakovi i reci predstavljaju isti memorij;ki
pod UNIX-om iii Linuxom, emulator tcrminala u sistemu X-window obicno zado- sadrzaj, mada u prikazu znakova postoje tri dodatna bajta. To je zgodno, jcr ne zna1no
voljava ove zahtevc. Na Windows racunarima ohicno se u okviru datotcka ;:a inicija- unaprcd da li cc sc podaci koristiti kao oznaccni iii kao neoznaceni ccli brojevi, iii kao
lizovanje mora ucilati upravljacki program (drajver) ansi.sys. bo ;to jc opi:,ano u znakovni nizovi.
nastavku. U primcrima sa simulatorom vee smo videli kako izgit:da njcgov ckran. Dcsni prozor u sreclini ckrana koristi se za unos i prikaz rezultata. U prvom redu se
Kao sto se vidi na slici C-10 . .:kran simulatorajc podeljen na sedam prozora. prikazuju greske koje otkrije simulator, drugi red je za unos podataka. a potom sledi

----r------
1
Tekst programa
--~
II
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-

___ J_
Stek

lzvorna datoteka
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 ->.
Stek za pozive
Polje za pnkaz gresaka I Simulator obicno Cita i komancle koje su mu upucene i podatkc unete kroz st:m-
~programa dardni ulaz. Mcdutim, moz.e se pripremiti datoteka s komandama i datotcka s poda-
Polje za unos I
I Komande I cima za unos koja ce biti ucitana pre nego sto se kontrola prepusti standardnorn ula~u.
Polje s rezultatima
1- interpreter:" __ 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-
Vrednost1 globalnih promenljivih
instrukcije mogu koristiti i vclika i mala slova. Tokom asembliranja gcncrise se
I Segment podataka datoteka s nastavkom .$ u kojoj se kljucne reci pisane malim slovirna ispisuju velikim
L__
slovima i izhacuju se svi znakovi za zavrsetak reda (CR). Na taj nacin. za svaki pro-
Slika C- 10. Pr<>~.ori simulat"ra. jekat (recimo pr) mozemo imati do sest razlicitih datoteka:

Gmnji kvi prowr jc pron·sorski prot:or i on prikaZUJC sadr/.aj registara opste na- I. pt:s t:a asemblerski it:vorni kod.
mcnc u decimal nom ohliku. a drugih registara u hebadccimalnom. Postu apsolutna 2. pt:$ za kombinovanu izvornu datoteku.
vrcdnust prograrnskug hrojaca nije pn:vi.;;c informali\ na. u rcdu ispud prikazan jc te- 3. pt:88 za izvrsnu datoteku.
kuci pulo?.aj u pr~Jgramskom kodu u odnusu na prethodnu glohalnu oznaku. Iznad 4. pt:i za prethodno priprcmljen standardni unos podataka.
P•llja" pmgr~um,kim hrojaccm prikazano JC pel kodova usluva. Prekuraccnjc je pri- S. pr.t za prethoclno pripremljene komandc simulatoru.
kaz~:no -;a v. indikator smcra :<1 >(/.a povcc'anjc) i -,a< 1a :-o~nanjenje. fndikator znaka
6. J!r.# 1a povezivanje ascmblerskog koda u izvrsnu datoteku.
jc n za tJCgati\ nu. pta nultu i po,~illvnu 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. Simulator koristi poslcdnji navedcni progam za popunjavanje gornjcg desrog
Srednji pnu.ur u gornjem rcdu koristi sc za prikazi v~mjc ...;adr?.aja stcka u hcksade- prozora i polja programskog brojaca. Is to tako. simulator proverava da li je gencrisa-
cimalnum ohliku. PolobJ pukazi1aca steka uznaCenjt: simb,,klrn strclicc =>. Povrat- na izvrsna clatoteka nakon poslednje izmene izvornog koda: ukoliko to nije slucaj. si-
ne adrcsc P''tpr<Jgrama prcd.-,ra\ !Jcne su cifrom tsj)I'Cd hcksadc·cimalne vrednosti. mulator gencrise upozorenje.
(jornJi dcsni pruLUr prikat.~tje dcu i;:vornc datotd.c u ok,J!ini instrukcijc koja upravo
trcha da sc izvr~i. Pulo!'~aj pn1g1·amskog hruja(a takudc jc pt·ikazan simholum =>. C.6.1 Komande simulatora
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 Slika C-11 prikazujc komande simulatora. Najvaznijc su ,.prazna komanda" ( tj.
u gurnjcm dclu prika/Ltje upr;1vo i1datu komandu. au donjcm udzivnik za unos ko- samo pritisak na taster Enter) na pm'etku tabde. koja izvrsava samo jcdnu proceoor-
mande. lmctjtc na umu da svaku kumandu trcba zavrsiti knntrulnim znakom CR, tj.na sku instrukciju i komanda za napustanje simulatora, q, u dnu tahcle. Ako sc kao (0-
PC' tasLHuri pritiskun1 na taster Enter. manda zada broj. izvrsice se dati hroj instrukcija. Lfpisivanje broja k is to je kao dastc
t~.,;ter Enter pritisnuli k pula. Isti efekat se postizc i ako iza broja sledi uzvicnik 1 iii X.
t
I
i
:·:ulj,
•;
728 Dodatak C: Progt·arniranje na asemblerskorn C.S Primeri 729

Obratite paznju nato da je u instrukcijama MOV i SUB prvi argument odredistc. a redova S, 9 i ! 0. U ovom trenutku na steku ce biti cetiri stavke i programski brojac u
drugi izvoriste. To jc konvencija koju koristi nas asembler; kod drugih ascmblera to levom prozuru imace vreJnost OOOb.
mo>:e biti obrnuto. Nerna posebnog ra:t.loga zasto sc koristi jcdan redosled, a ne drugi. Kada sledeci put pritisnete Enter. hice izvrsena sistcmska funkcija i znakovni niz
Probajmo sad a da asembliramo i da pokrenemo program Hila Wrld.s. Dacemo .,Hello \VDrld\n" prikazace se u donjem dcsnom prozoru. Obratite paznju nato da SP
uputstva i za UNIX i za Windows platforme. Za Linux, Solaris, MacOS Xi drugc vcr- sacla ima vrednost Ox7fl0. Posle sledec~g pritiska na Enter, vrednost SP sc uveeava za
zije UNIX-a, postupai-- bi trcbalo da budc sustinski isti kao i za UNIX. Najpre otvorite S i pn:.;tajc Ox7lT8. Posle jos cetiri Entcra, sistemska funkcija exit sc zavrsava i simu-
prozor komandnog okruzenja. U Windowsu je redosled komancli obicno lator prc,;taje da radi.
Start > Programs >Accessories > Command prompt 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
Zatim preditc u direktorijum exwnple.1· koristcci komandu cd (Change directory).
tcksta. U CNJX sistcmima pogodni su ex, vi iii emacs. U Windows sistemima postoji
Argument za ovu komandu zavisice od toga gdc jc u sistcmu datotcka smdtcn kom-
jcdntbtavan editor tcksta noter~wl koji se po pravilu moze otvoriti komandom
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 Start > Programs >Accessories > Notepad
us88, m!nusno 188. U Windowsu one imaju nastavak .exe, ali njega nc treha upisivati Nc koristite Word jcr prikaz neee biti ispravan, a rezultat moze da bude pugrdno
u komandama. J\ko asemblcr i simulator nisu tamo, pronadite ih i tamo iskPpirajte. lormatiran.
Sada asemhlirajte program iz primcra: [zmenite znakovni niz u reJu ! l) tako da upucujc neku drugu poruku. a zatim sni-
as88 HlloWrld.s rnite datotcku. ascmblirajtc je i pokrenite u simulatoru. Upravo ste poceli da pro-
gr~rmirate na asemblerskom jeziku.
Ako sc aselllbler nal:ui u dircJ...tnrijumu 1'\WIIf!ln, a vi dobijctc poruku o gre~ci,
pokusajtc ovo:
C.8.2 Primer s registrima opste namene
./as88 HlloWrld.s
u UNIX-u iii 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-
.las88 HlloWrld.s
sn<J od njega su dva prozora simulatora s registrima, koji oclgovaraju razliCitim fazama
u Window'>tl. izvr<cnja programa. Slika C- J3(b) prikazujc stanje rcgistara posto je izvrscn red 7.
Ako se ctscrnhliranjc· i.-;prct\ nu lavrsi, prih:vac'c· sc '>b.lcc'c· poruJ..e: Instrukcija
Project HlloWrid listfilc! Hl!oWrkJ.$ MOV AX.258
Prowct HiloWrld num file HlioWrid.#
u rcdu -1 ucitava vrednost 258 u registar AX. sto znaci da se u AH ucitava vrednost I, a
Project HiiovVrid ioadfile HiloWrid.88
u AL vrednost :?.. Zatim se u rcdu 5 AL sabira sa AH. zbog l'ega sadrzaj AH postaje jednak
i biL:C gCIH~ri>lan~ \)d~~O\'Ltr~tjuCe tri J..tLUk'kL. Ah..u jt: ~\L proZlu be;: greSaka, izdajte ,...;1- ,,. 3. L rcdu h se sadr7.aj promenljive limes ( lO) kopira se u rcgistar CX. U redu 7 adrcsa
mulaturu komandu: promenljivc muldot, kojajc 2jerje to drugi bajt .'>egmenta DATi\, uCitava .'>e u registar
i,"
!88 Hl:oWrid BX. lJ tom trenutkujc snim!jen status prikazan na slici C-! 3( b). Skrccemo vam paznju
t
!,. nato da se u registru AH sada nalazi 3. u registru ALje 2, a vrednost u registru AXje
Pojavic:c ~f..._' c~r~ln sinl!llatora s:t :-.trcl!coLJ u gurnjc!Il ~._;\...'Sril)l11 pro;:oru k1~ja pokalu- 'i· 770. S!ll sc moglu i ucekivati, po~to je 3 X 256 + 2 = 770.
je na in'>tr:rl.;c:i_iu
MO'/ CX.de-i1w ! 3 I
start cs oo os~ss;Esooz c s oo os~ss~ Esooz
MOV AX,258 I 4
u rcdu h. I)titi:.nit..: l~h!cr Fnt'-·r tna PC Lt"t~uur.un:i). Vidc(ctc da :-.trelicJ. puk<.tLlljl~ na ADDB AH,AL 15
AH 03 AL 02 AX: 770 AH:38 AL.SO AX. 14464
instruJ...,:i_iu MOV CX.(t1mes) 16 BH 00 BL:02 BX. 2 BH:OO BL:02 BX. 2
MOV BX,muldat 17 CH OOCL Oa CX 10 CH OOCL 04 CX: 4 i
PUSH CX MOV AX.(BX; I 8 DH:OO DL 00 DX 0 DH:OO DL 01 OX
lip MUL 2(BX) I 9 S P 7fe0 SF 0 D S Z C SP. 7fe0 SF 0 D S ZC~
ida jc vr~·d!J()•.;t u rc>~!i')!J"U ex ll kvonJ r~ro/t'rU 12. Priti . . nitt~ pnl1U\i) !a~.l'.~i·L:ucr i v!- LOOP lip I 10 BP· 0000 CC ;.. p BP:OOOOCC V>P
ck'L;Ctc da :-,r.._·dn.,;i f1fU/.Pr ~~ gnrnjen1 1\'t~u \Llllr7i '.·TL',lno.\t (}t!Uc, .~ro jc beks~~dcL·Jn1alr11 t' .SECT .DATA ! 11
! S I 0000 IP 0009 PC S I 0000 I P 0 0 1 1. PC
times .WORD 10 112
lap! s hri '.i<~ I~- ( )1 :.1j pr''/or prikazujc >ld n:r J..omc jc· :<ida jL·dna r.:c b'.Ja sadrzi bttl.J r rncidat .. WORD 625.2 I 13 iDI·oooo start+4 01. 0000 start + 7

I~. Pritisnite l~tstt.~r Enter triput 1aredurn i vidcc:ctc I/\T;a<.~U1JL instrukcija PUSH iz "- (a) (bi (c)

~ Siika C-13. (al Dco programa. (hi Rcgi,lar,ki prOblr 'imulatora postoje izvrsen red 7 ki
tf
1(

~
~~·
726 Dodatak C: Programiranje na asemblerskom C.S Primeri 727

U sistcmima Windows 2000 i XP ncophodno jc instalirati upravljacki program za osim sto se u prvom slucaju ostavlja asernbleru cia izracuna duzinu znakovnog niz.a.
terminal ansi.sys dmlajuci u konliguracionu datotcku cunfig.nt red Ta vrednost prcdstavlja kolicinu prostora za poclatke rezcrvisanog za znakovni niz iz
device=%systemRoot%\System32\ansi.sys reda 19. MOV u reclu 6 predstavlja komanclu za kopiranje, koja zahtcva da sc de- hw
kopira Ll registar ex.
Putanja do ove datotcke je sledcca:
u Windowsu 2000: lwinntlsystem32\config.nt
u Windowsu XP: \windowslsystem32\config nt
EXIT" 1
WRITE ~ 4
' I
I 2
I cscio-
AH:OO AL:Oc AX
os~ss~ES oo2-J
12
---I MOV
PUSH
CX.de hw
CX
!
'
6
7
STDOUT ~ 1 '3 BH:OO BL:OO BX 0 I PUSH HW I 8
SECT TEXT '4 CH:OO CL:Oc CX· 12, PUSH STDOUT ! 9
U sistemima Windows 95, 98 i ME ovaj upravljacki program treba dodati u dato-
1
-

start '5 DH:OO DL:OO DX 0' PUSH -


WRITE I I0
teku conjig.svs. U UNIX i Linux sistemima ovaj upravljacki program je po pravilu MOV CX.de·hw > 6 S P 7fd8 SF 0 D S Z C o'>0004 SYS I 11
PUSH CX !7 BP 0000 CC > p 0001 ~> ADD SP .8 12
standardna komponenta. SUB CX.AX 13
PUSH hw 18 Sl: 0000 IP.OOOcPC I 0000
PUSH STDOUT !9 DI 0000 _s_I_..J[t_•_7_rj~_O~Qc; .. PUSH CX 14
PUSH _WRITE ! 10
SYS 111
C.8 PRIMER! ADD SP. 8
I
U odeljcima ml C.2 do CA analizirali smo procesor 8088, njegovu mcmoriju i in-
SUB
PUSH CX
CX.AX

PUSH _EXIT
I 12
:~!
'. 15~~--~-
:.;,--
0 = 0000.48
-1
85 Gc
>

6c
Hello
6T 20
World:n
57-6tH-€11o World 25928 i
i

J
I 16 !
strukcijc. Zatim smo u odeljku C.5 proucili jczik asemblera as88 koji koristimo u SYS
.SECT DATA I I 7
ovom prirucniku. U odeljku C.6upoznali smo simulator. Na kraju, u odcljku C.7 opi- hw: I18
ASCII ""Hello World\n"" I 19 I
sali smo kako sc im,taliraju alatke. Tcorijski, ove informacije bi bile dovoljnc onomc I

BYTE 0 ! 20 l
ko pisc ascmblerskc programc i pronalazi grdke u njima sluzcci se ponudenim alat-
(a) (b)
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 Stika C-12. (a) 1!1\oWrtd.s. (b) Odgovarajuci prozor simutatora.
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 Redovi ocl 7 do 11 prikazuju kako sc unutar simulatura obavljaju sistcmski pozivi.
citaocu da asemblira i propusti kroz simulator svaki program koji ovcle ohradirno. Ovih pet rcdova su prcvod na asembkrski jezik poziva funkcije
write(1, hw, 12);
C.8.1 Primer Hello World
pisanog najcziku C, gcle je prvi parametar deskriptor datotckc za standardni izlaz (I),
Pocnimo primerom "t slikc C-12., 11/lu\Vr/d.s. Programjc prikazan u lcv,Jm pro- drugi je adrcsa znakovnog niza koji treba stampati (/nv), a treCi je du/.ina znakovnog
zoru. Pus to jc a>cmhlcrov oimbul za komentar uzvicnik ( 1), on je u prozoru programa niza ( 12). U redovima 7 do 9 uva tri parametra sc stavljaju na stek obrnutim rcdoslc-
i:-,kori~cen za razdvajanjc instrukcijc ocl bmja reda kojt slcdi. Prva tri reda saclrzc cle- dom. sto prcdstavlja rcdoslcd pozivanp u jeziku c i istovremeno redoslecl koji koristi
iinicije konstanti kojc povczuju uobieajcna irnena elva sistemska puziva i izla;;.ne da- simulator. U redu I 0 se na stck stavlja broj sistcmskc funkcije wnte (4 ), a u redu II
totckc s njihovim odgovarajucim intcrnim olllaLnna. upucuje se poziv. lako prikazani reclosled pozivanja strogo prati nacin na koji hi
Pseudoinstrukcija .SECT u redu 4 objavljuje da rcdove kPji skclc treba smatrati asemblerski program radiu na UNIX (iii Linux) PC racunaru, za clruge opcrativne si-
sadrzajem odcijka TEXT: drugim rccima. proccsorskim instruLcijama. Slicno tome, u sterne on bi morao malo da se izmcni kako bi postovan konvencijc pn;ivanja kojc:
redu 17 sc saopslava da ono sto slccli treba -;matrati poclacirna. U redu 19 se inicijali- vaze za taj operativni sistem. Mcc!utim. asemblcr us88 i simulator t88 koriste konven-
Luje znakm:ni niz s pndacima koji sc ,;astoji od 12 bajtuva, zajcdnu s razmakom i cijc po;.ivanja koje vazc u UNIX-u cak i kada rade pod Wimlowsom.
oznaknrn ;a nov red (\nJ na kraju. Sistctm,ka funkcija u rcdu II ispisuje rezultatc. U redu 12. stck se cisti i pokazivac
Ked,Jvi 5, 18 i 20 s:1drze oznake s L!raktcristicnom dVlJtackPm (:) na kraju. Ozna- vraca na vrcdnost koju je imao pre nego S(O Sll na stek slavljcnc Cetiri 2.-bajtne reci. i\ko
kc predstavlpju hroJcane vrednosti. slicno konstantama. U ovom slttCaJU. medutim. se funkcija write zavrsi uspdno, u rcgistar AX se upisujc bwj ispisanih bajtova. U redu
asemblcr mora da odrcdi tc vrcdnosti. Po~to se oLnaka .llilrt nalazi na pucctku udc'ljka 13 rezultat sistemske funkcije posle recla II oduzima se od prvobitne duzinc niza u re-
TEXT, njcna vrcdnost L'e biti 0. ali c'c vredno;,t svakc narcdilt: owake u oddjku TEXT gistru ex kako bi sc utvrdilo da li je funkija uspdno dovrsila posao, tj. da li su ispisani
(nema ih u ovom primeru) zavisiti od toga koliko joj bajtnva kuda prcthoc!i. Kaz- svi predvil!cni bajtovi. Prema tome. izlazni status programa bice 0 ako se on uspdno
motrimo 'ada red 6. On -;e zavrsava razlikom dve oznake. st<J brojcano predstavlja zavrsi, a ndto drugo ako to nije slucaj. Redovi 14 i 15 su priprema za poziv sistcmske
kun,tanttt. Prema tome, red 6 je cfekti\,llO isto ;to i funkcije exit u rcdu 16: izlazni status i k(\d funkcijc za poziv EXIT stavljaju se na stek.
MOV CX,12 ''
I

>z
Ii
~
Dodatak C: Programiranje na asemhlerskom jeziku C.S Primeri 733
732

Prva instrukcija potprngrama je stavljanjc na stck (PUSH) haznog pokazivaca Da bistc to videli gral'icki, pokrcnite simulator komandom
osnove, BP, u redu 22. BP sc cuvajcr ce nam hiti potrchan za adrcsiranjc argumcnata t88 vecprod
i lokalnih promcnljivih potprograma. Zatim sc u rcdu 23 pokazivac steka kopira u re-
Kada sc pojavi prozor sirnulatora. upisite komandu
gistar BP, tako da nov bazni pokazivac uka;:uje na staru vrednost.
Sada jc sve spremno za ucitavanje argumenata u registre i za rezervisanje mesta za /vecmul+7b
lokalnc promcnljive. U sledec'a tri recta svaki od argumenata se preuzima sa stcka i i pritisnitc Enter da bistc postavili prckidnu tacku u red koji sadrzi instrukciju LODS.
stavlja u rcgistar. Sctitc se da stek radi s recima, pa adrcse na stcku trcba cia budu par- Nadaljc vise ncc'cmo pominjati da se svaka komanda mora ;:avrsiti pritiskom na taster
ne. Povratna adrcsa sc nalazi oc!mah do starog baznog pnkazivaca, pa se moze adre- Enter. Tzdajte zatim komandu
sirati sa 2 (BP). Argument bmi je sledeci i aclrcsira sc sa 4 (BP). On se u rcdu 24 ucitava g
u regis tar ex. U redovima 25 i 26 u Sl se ucitava vee I, au Dl vec2. Za ovaj potprogram
da hi simulator izvrsavao komande dok ne tJaide na prckidnu tack.u. On cc stati 1a
potrcbna je jedna lokalna promcnlj iva s pocetnom vrednoscu 0 cia bi sc unjoj sacuvao
redu koji sadrzi instrukciju Lobs.
mcdurczultat. U tom cilju se vrednost 0 u redu 27 stavlp na stek. U redu 29 vrednost rcgistra AX mnozi se opcranclom izvorista. Memorijska rec za
Stanje procesora ncposrcdno pre prvog ulaska u pctlju u redu 2~ prikazano jc na
instrukciju MUL preuzima se iz s~gmcnta podataka pn.:ko rcgistra Dl u re/imu indireh-
sliei C-15. Uzak proznr u sredini gornj~g reda (dcsno od registara) prikaLllje stt.:k. U
nog rcgistarskog aclresiranja. Poclrazumcvano odredistc instrukcije MUL je dugacka
dnu stekaje adrcsa vektura vec2 (Ox0022), iwad nje adrcsa vektora vee/ (0x0018), a
kombinacija rcgistara DX: AX koja se u instrukciji ne pominje. ali sc pmlrazumcv<J.
zatim treci argument, broj stavki u svakorn vcktoru (0x0005). lza njega sledi povratna U rcdu .10 rezultat sc dodaje lokalnoj pmmenljivoj cip je adrcsa na stcku -2(8=>).
adrcsa (OxOO II). Broj I kvo od ove adrcse ukaz.ujc da je to puvratna adresa udaljcna Postu instrukcija MUL ne uvccava svoj operand autmnatski. to sc mora u rcdu .ll u:·a-
jed an ni vo od glavnog program a. U prozoru ispnd rcgio,tara prika;:an je isti broj I, za-
diti rucno. Poslc toga. rcgistar Dl ukazuje na sledcci element vektora ve,·2.
jedno s njegovom simbolickom adresnm. Iznad povratne adrese na stekunala;:i sc sta-
Instrukcija LOOP zavrsava ovaj korak. Vn.:dnost registra ex se smanju.Je i, ukultku
ra vrcdnost registra BP (0x7k0), a zatim i nula stavljcna na stck u rcdu 27. Strclica jc jos uvek pozitivna, pwgram skace unazad na lokalnu o;naku /u rcdu 2S. I ,okalna
koja prika:cuje na ovu vrcdnost ukazujc na ono na sta SP pokazujc. Prozor dcsno od oznak.a 1h znaci .,najbliza oznaka /"'. gleclajuci s tckucc po:ticijc una/.ad. p,,;Jc pctljc
st~ka pok.azujc de lie tcksta programa, sa strclicom koja ukazujc na instrukciju koja c'e
potpmgram uzima sa steka vrcdnost vracenuu registar AX (red .13), ohnavlja sadr'.aj
sledeca biti izvrsena.
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
I 5 ~! CS 00 I 22
MOV BP,SP DSoSS-ES004 i PUSH
MOV
BP
BP ,SP IZJ
je prva iz ni;.a od pet instrukcija kojc tr~ba da ispi~u rczult<tt. Sistcmska funkcija prntf
PUSHvec2 I 6 : AH.OO AL 00 AX 0,
PUSHvec1 I 7 BH 00 BL:OO BX 0 MOV CX,41BP) 24 model ira se prema funkciji primf'standardnc prugr;mJ:;kc biblintekc jcziLt C. Tri ar~u­
MOV CX,vec2-vec1 I 8 C H ·oo C L 0 5 C X 5 '~>0000 MOV Sl 6(BPi 25
SHR CX,1 I 9:: DH:OO DL.OO OX: 01 71c0 MOV D1,8(BPJ 126 mcnta se smestajuna stek u rcduvima 1.1-1:5. Ti argumenti -,u cclobrojna vrcdnost koju
PUSHCX 110 I SP 7fb4 SF 0 D S Z C!1 0011 PUSHO 27
26
trcba ispisati. adresa znakovnog niza za fnrlllatiranJC (J'/illl) i kCJd funkcije 1.a prntf
CALL vecmul 111 iBP 71b6 CC · > p z 0005!~>1 LODS
,SI 0018 IP 00.31 PC 0018 MUL I D I) 29 ( 127). Obratite pa/nju nato da Lrl<tkcl\lli niz t.a furmatiranjc pji}([ oadr/i \1/naku r.id
vecmul ! 21 '0 I 0022 vecmul+7 0022 ADD - 2 ( B P) A X I 30
PUSH BP
1

! 22!; koja saopstava da se kao argument po;:iva lunkcijc pr:ntf mu/.c n~,c'i ncka celohrona
MOV BP,SP I 23 ~
MOV CX,4(BP) 12 4 ~ <= 1npstart • 7_ promeni1iva.
1
MOV S1,6(BP) !25' U redu 17 stck sc cisti. Postu jc prugramu rcdu 5 pocco rad snimanjcm vrcdtl<lsti po-
MOV DI,BiBP) I 26 I •
1

i PUSH 0 127: ;ec1+0 ~0018 3 0 4 0 7 0 b 0 3,


kazival'a stcka u bazni pokazival:, za ci:;ccnjc stcka mogli bismo upotrebiti i instrukc;ju
'I LODS 128:IV8C2+0 ~0022 2 0 6 0 3 01 0 2
MUL (DI) 123 !Pimi+D ~0000.54 68 65 20 69 6e 20 70 Tee :n prod 26708 MOV SP,BP
ADD -2(8P).AX 130 1 'plmt+18 ~0012 25 64 21 a 0 0 3 0 '~d' 25637 1
ADD 01.2 ! 31 I Prednost nvakvng rescnja je to ~to pro;,;ramcr ne treba da vmli racuna '' uravno-
LOOP lb _!_3_~! I
te/.cnosti stcka. Za glavni program"''' ni_ic vciib prcdnost. ali jc za potprogramc: to
lak nacin da se oslobodc balasta lnpr. z~t,tlrc.:lih l1>kalnih promenljivihl.
Stika C-15. l:vr;;l\':uJj~ programa J'CCf>md.s ~dcla sc prvi put doJc do rcJa 2S.
Potprogram \'Ccllwl muzc se ukiiu,:·iri u drugc pmgramc. Ako se izvum<l d:tlt>tck:l
Analizirajmo pctlju pocevsi ud reda 2~. lnstrukcija LODS ucitava mcmori.Jsku rec t'ccpmd.s stavi na komamlnu liniju iza drugc datotcke sa asembJe;·skim i,-,vm:ttrn k,,_
indirektno preko registra Si iz st~gmcnta podataka u registar AX. l'ost<J jc indikawr dom, potprogram mn7.e postati k.oristan .c:t mm•i :n1c.: dva vek.tor:r tibne duz.inc. Pre-
smera pnstavljen. LODS je u rdimu autumatsk.og uvecavanja, pace posle instrukcije poruC!jivo jc da pre toga uklnnile cklinicijc konsta:ni _EXIT i _PRI~JTF. da bistc' :zbcgli
rcgistar Slukazivati na sledeci element vek.tura vee/. da buclu dvaput delinisanc. _c\ko je ncgdc ukljul:L'!la dalutcka laglavlja nc '1a
potrcbe da se bilo gde drugde delini.~u kunotanle kujc predsta>-ljaju si-;tcmskc pu1i·;e_
Dodatak C: Programiranje na asemblerskom jeziku C.S Primeri 731
730

Sledeea instrukcija (red 8) kopira sadrzaj promenljivc muldut u registar AX. Kada POPBP ! 34 obnavlja BP
se pritisne taster Enter, vrcdnost u registru AX bice 625. RET ! 35 vraca se iz potprograma
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 .SECT .DATA ! 36 pocetak segmenta DATA
je dugacka kombinacija registara OX: AX. U prvom ciklusu petlje rezultat staje u jed- plmt: .ASCIZ "Inner product is: %din" I 37 delinise znakovni niz
nu rec, pa regis tar AX sadrzi rezultat ( 1250), a ox ostaje 0. Sadrzaji svih registara posle .ALIGN2 ! 38 lorsira parne adrese
7 mnozenja prikazani su na slici C-13. vec1 :.WORD 3,4,7, 11,3 ! 39 vektor 1
vec2:.WORD 2,6,3, 1,0 ! 40 vektor 2
1
EXIT~ ! 1 delinise vrednost _EXIT .SECT .BSS ! 41 pocetak segmenta BSS
PRINTF = 127 ! 2 delinise vrednost _PRINTF inprod: .SPACE2 ! 42 dodeljivanje prostora za inprod
.SECT .TEXT I 3 pocinje segment TEXT
Stika C-14. Program vecprod.s.
inpstart I 4 delinise oznaku inpstart
MOV BP,SP I 5 snima SP u BP Posto je registar AX imao vrednost 625, ret.ultat poslc sedam mnozenja sa 2 jedmk
PUSH vec2 ! 6 stavlja na stek adresu vec2 je 80.000. Ovaj rezultat ne moze da stane u registar u AX, ali se proizvocl cuva u 3~­
PUSH vec1 I 7 stavlja na stek adresu vec1 -bitnom registru obrazovanom nadovezivanjem regis tara OX i AX (OX sadrzi I, a P.X
MOV CX,vec2-vec1 ! 8 ex = broj bajtova u vektoru I 4.464 ). Kada ih slozimo zajedno, imamo I X 65.536 + I 4.464, sto zaista dajc 80.000.
SHR CX,1 1. 9 CX ~ broj reci U vektoru Obratitc paznju na to da jc vrednost registra CX ovde 4. zato sto jc instrukcija LOCP
PUSH CX I 1o stavlja na stek broj reci smanjuje u svakom ponavljanju. Posto je pocetna vrednost hila 10, posle sedarn
CALL vecmul I 11 poziva vecmul izvrscnih instrukcija MUL (ali samo sest ponavljanja instrukcije LOOP) u registru CX c
MOV (inprod),AX I 12 premesta AX
vrednost 4.
PUSH AX ! 13 stavlja na stek rezultat koji se ispisuje U slcdeccrn mnozenju clolazi do nevolje. Za mnozenje je potreban registar AX, ali
PUSH plmt ! 14 stavlja na stek adresu znakovnog niza za nc OX, pa instrukcija MUL mnozi AX ( 14464) sa 2 da bi dobila 28.Y28. Dobija se vrcd-
lormatiranje
nost 28.928 u rcgistru AX i vrednosti 0 u registru OX, sto jc brojcano neispravno.
PUSH _PRINTF ! 15 staviJa na stek k6d lunkcije PRINTF
SYS I 16 pozivanje lunkcije PRINTF

ADD SP,12 I 17 ciscenje steka


C.8.3 Instrukcija Call i pokazivacki registri
PUSH 0 I 18 stavljanje na stek statusnog koda Skdeci primc:r. J'ecprod.s, mali jc program koji izracunava unutrasnji pmizv(·d
PUSH _EXIT I 19 stavljanje na stek koda lunkcije EXIT
dva vektora, vee! i vec2. Onje prikuan na slici C-1-.f.
SYS I 20 poZ!vanje lunkcije EXIT U [)I'VOTll Jelu programa obavljaju SC priprcme za pozivanje funkcije l'CCIIllt/ ta~.U
sto se sadriaj regista SP kopira u registar BPi adrcsc vec2 i vee! stavljaju na stek ta~.o
vecmul: I 21 pocetak mnozenja vecmul(broj, vec1, vec2) da funkcija vecmul moze da pristupi vektorima. Zatim se u rcdu 8 duzina vektora u
PUSH BP I 22 stavlja BP na stek bajtovima smesta u rcgistar CX. Poslc pomcranja ovog rczultata udcsno ~:ajedan bit 1u
MOV BP,SP I 23 kopira SP u BP za pristup argumentima redu 91, regis tar ex sada sadrzi broj reci u vekwru, broj knji se u redu i 0 smcsta na
MOV CX,4(BP) ! 24 stavlja broj u ex za upravljanje petljom stek. Poziv funkcijc l·ecmulupucuje se u redu I I.
MOV SI,6(BP) I 25 Sl = vec1 Ponovo naglasavamo da se. prcma konvenciji, argumenti potprograma sme;laJU
MOV DI,8(BP) 1 26 01 = vec2 na stck obrnutim redoskdom kako bi bili kompatiblini s konvencijom po~:ivanja ujc-
PUSHO ! 27 stavlja 0 na stek ziku C. Na taj nacin se veonulmo£e pozvati i iz jezika C narcdbom
vecmul(broj, vec1, vec2)
1: LODS I 28 premesta (SI) u AX
MUL(DI) ! 29 mnozi AX sa (01) Tokom instrukcijc CALL na st2k sc stavlja povratna adrcsa. Ako sc program izvrs,l-
ADD -2(BP),AX I 30 dodaje AX akumuliranoj vrednosti u memoriji va u simulatoru, vidi se da je ova adresa OxOO 11.
ADD 01,2 I 31 uvecava 01 da pokaze na sledeci element
LOOP1b I 32 ako je ex > 0. vraca se na oznaku 1b
POP AX ! 33 podatke s vrha steka preuzima u AX
736 Dodatak C: Pmgramiranjc na ascmhlcrskom jcziku C,S Primeri 737

l'vlcdutim, c~ka nas jos jcdna greska. Kada se vecprint zavrsi i kontrola vrati glav-
.SECT .TEXT #include "../syscalnr.h" I 1
nom programu. simulator ima primedbu na pokaz.ivac stcka. Ovdc ocigledno treba stcstart: ! 1
pnweriti da li je vrednost koja je stavljcna na stek kacla je poz.van potprogram PUSH mesg1 I 2 start: MOV Dl,str I 2
vecprint. vrcdnost vrha steka poslc instrukcijc RET u redu 4!. lspostavlja se eta nije. PUSH mesg2 13 PUSH AX I 3
CALL strngcpy I 4 MOV BP,SP I 4
Rdenjc .ie da se red 40 zamcni selva recta: •'i
ADD SP,4 I 5 PUSH _PUTCHAR I 5
ADDSP,10 J~
PUSH 0 !6 MOVB AL,i\ni I 6
POPS? PUSH 1 17 MOV CX,-1 I 7
SYS 18 REPNZ SCASB ! 8
Prv~1 in,; uklanja 5 rcci stavljenih na stck tokom izvrsavanja potprograma 19 I 9
strngcpy: NEG CX
vnpri11t. olkrl\ ajuci tako vrednost BP sacuvanu u reclu 22. Sme~tajuci tu vrednost u PUSH CX ! 10 STD 11(
regi;,tar BP. 1 uc'~unu rcgistar BP na vrcdnost koju je imao pre poziva i otkrivamo. PUSH Sl 111 DEC CX ! 11
PUSH Dl ! 12 SUB 01,2 I 12
ispravnu ac!rc-;u .ca pmratak. Sada St: program zavrsava ispravno. Otkrivanjc i isprac,
PUSH BP 113 MOV Sl,Dl I 1J
vljanje gn:saktu ascmblerskom kodu sigurnu j..: vi~e vdtina negu nauka. ali je simu~:·
MOV BP,SP ! 14 1: LODSB ! 1<
latur znatnu olak~ava. MOV AX.O I 15 MOV (BP),AX I 15
MOV Dl, 1O(BP) I 16 SYS I 16
MOV CX.-1 117 LOOP 1b ! 1~
C.8.5 Rad sa znakovnim nizovima i odgovarajucc instrukcijc ; REPNZ SCASB 118 MOVB (BP).i\ni 113
NEG CX ! 19 SYS I 19
c;Lt, na \\rha ovog odcljka je objasnjavanje nacina rada sa instrukcijama za zna- 1 20
DEC CX ! 20 PUSH 0
km nc ni;m·c. f\ia slici C-17 prikaz.ana su elva jednostavna programa za rad sa zna- 21
MOV Sl, 1O(BP) I PUSH EXIT !2
kP\ ni Ill nizovima, stmgcpr.s i reJ'CI"SJn:s, koji se nahve u direktorijumu examples,l MOV DI,12(BP) I 22 SYS ! 22
l'mgran1 na -.Jiei C-l7(a) jcstc potprogram La kopiranje z.nakovrwg niza. On poziva' PUSH Dl I 23 .SECT .DATA I 23
rotpmgram .\lrillg[l/' kuji se takode moze naci u zasebnoj datuteci Slrill!Jfil:s. On nije REP MOVSB I 24 str: .ASCIZ "reverse\n" I 2l
CALL stringpr I 25
navcden u dndath.u. Kada zelite da asemhliratc prograrne ciji se potprogrami nalaze u·
MOV SP,BP ! 26
Z~lsc·bnim i;vornim datotekama. samo u komandi za pokretanjc ascmhkra navcdite 127
POP BP
'.\C iLvomc datutcke, pocinjuci od iz.vorne datotcke glavnog programa, koja odreduje POP Dl I 28
imene1 i.cvrsnih i ponwL'nih datoteka. Na primer. za program sa slikc C-17(a) upotre- POP Sl I 29
bi lc' k<llllandu POP CX 130
,, RET I 31
~~-: as88 strngcpy.s stringpr.s . ~)
.SECT .DATA 132
mesg1: .ASCIZ "Have a look\n" I 33
;;.' Program na slici C-17(h) prikazujc uLuni znakovni niz obrnutim rcdosleclom. 34
mesg2: .ASCIZ "qrst\n" I
Raz1notric..:mu sad ove programe jedan za drugim. .SECT .BSS
Da bi,nw poLtLali kako broj..:vi rcdova u stvari predstavljaju komentarc. na slici (a) (b)
C-l/1aJ numerisali smo rcdove tek od prve oznake, iJ.ostavljajuci ono sto se nalazi
Slika C-17. (a) Kupiranje znaku\nog m;,a C'i'tnl~l-f'Y.\J. {hl Stampanje ~~.nakn\Jh)_~ fii!a una/<d
ispreclnjc. Glavni pmgram. u reduvima ud 2 do 8. prvo poL.iva potprogram strm;cpy
(rn't'npr.)).
selva <~rgumellla. izvorisnim znakovnim niz.ommesg2 i odredisnim znakovnim nizom
lid'S"c; I. u na1ncri da kopira iz.voriste u mlredi~te. Sr?. potprograma je instrukcija REP MOVSB. u redu 24. Ins!rukc1ja MOVSB prc-
Po:c-ledajmn sada potprogram stmgcp.l', puc..:v od rcda 9. Pot program occkuje eta se mdta hajt na koji ukazujt' registar Sl na menJmijsku adrcsu na kuj11 u~a;ujc' r.:gi,tar
ad1·~.'<e mlredisnng bafera i il'vori.snog niza vee nalaze rn ;,teku. U redovima od 10 do 01. Sl i Dl sc tada uvecavaju;.a I. lnstrukcija REP rravi pctlju u kojnj se ,1va in:-.truhij::~
13 korisccni registri se cuvaju tako sto se stavljaju na stck eta hi se mogli obnoviti ponavlja. smanjujuci vrcdnost u registru CX 1a 1 pri svak,Jm prcmc;tcrll'fll ha ttl.
b'ni_ic. u r..-dovima 11d 27 do .lO. lJ redu 14 kopiramo sadrzaj registra SP u rcg:istar BP Pctlja se zavrsava kada nednost registra CX dm;tigne 0.
n~L uuhi~'ajcn nal"in. Selda se za ucitavanje argumenata mo/.c iskoristiti registar BP. U Pre: negu _,lu pokrenenm pctlju REP MOVSB. morarno cia p<>tle,in,u rt·~i:,trc. ;t.na-
r<~du .2(1, l'istinw '<tck tako stu :-.adrzaJ registra BP kopiramo u regi;,lar SP. dinm u rcdovima od 15 do 22. lndeks i.cvmis:a (SIJ kupira ;,c i; ~u·;o>umenta '1~, '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 CS Primeri 735

C.8.4 Otklanjanje gresaka iz programa za ispisivanje niza 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-
U prelhmlnim primerima razmatrali smo jcdnostavnc, ali ispravne programe. Sada mo vam paznju nato daje adresa niza stavljena na stek u redu27, dokje u redu3: na
cemo pokazati kako nam simulator moze pomoci da uklonimo greske iz neispravnog stek gurnuta celobrojna vrednost. U oba slucaja adresa znakovnog niza za formali-
programa. Slcdec'i program trcba da ispise niz cclih brojeva koji kao podaci postoje ranjc prcdstavlja prvi argument funkcije PRlNTF. Rcdovi oct 37 do 3l) pokazuju klko
iza oznake vee I. Mcdutim, prva verzija program a sadrzi tri greske. Za ispravljanje se rnoze ispisati jedan znak pomoc'u sistemske funkcije putchar.
grdaka koristic'emo asemblcr i simulator, ali c'erno najpre analizirati sam k6d. Probajmo sada da asembliramo i pokrenemo program. Kacla upisemo komanclu
Posto su u svakom programu potrebne sistemske funkcije, zbog cega se moraju de-
as88 arrayprt.s
tinisati konstantc prcko kojih sc idcntitikujunjihovi brojevi. definicije konstanti za te
brojcve srncstili smo u zascbnu datotcku zaglavlja .. !lyscalnt:h. koja sc ukljucuje u dobijamo upozorenje o pogrdnom operandu u redu 28 datoteke armyJJrt.$. Ovu da-
prvom redu koda. Ova datoteka dcfinise i konstante za deskriptore datoteka loteku gcnerise asembler kombinujuci ukljucene datoteke sa izvornom da bi dchio
STDIN = 0 jedinslveiJU datotcku koju zapravo obraduje. Da bismo ulvrdili gde se stvarno nalazi
STDOUT = 1 red 2X. treba da ispitamo red 2X datoteke arrayprt.$. Taj red ne mozemo pronaci gle-
STDERR = 2 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
koje sc otvaraju na pocetku, kao i zaglavlja scgmcnata za tekst i podatkc. Prepo-
redu 7 u datoteci arrLn'JHt.sjcr ukljucena datoteka zaglavlja. sysculw:h, sadrzi 21 red.
rucljivo je da se ona ukljuci na pocetku svih asemblerskih izvornih daloteka, poslo se
Na UNIX sisternima. red 2X datoteke urruvprt.$ lako se moze pronac'i komandom
ovc dc1inicije ceslo korisle. Ako postoji vise izvornih daloteka, asembler ukljucuje
samo prvu kopiju datllteke zaglavlja kako bi izbcgao visekratno dcfinisanje konstanti. head ·28 arrayprt.$
Program armvprt prikazan jc na slici C-16. Komcntari su ovde izostavljeni. jer bi koja prikawje prvih 28 redova kombinovanc datuteke. Red u dnu listinga je ontj u
vee trcbalo dobro da znate sta radc instrukcije. Na taj nacin smo listing mogli prikazati komc jc greska. Na ovaj nacin (iii korisccnjcm editora tcksta da bi sc pronasao red 2Xl
u dva stu pea. U redu 4 adrcsa praznog stcka se smesta u hazni registar da bi se omo- vidirno da se grdka nalazi u reclu 7, koji sadrzi instrukciju SHR. UplHntivanjem ovng
gucilo ciscenje steka Ll redu 10 tako slo cc se bazni pokazivac kopirati Ll pokazivac ste- koda s tabelom instrukcija na slici C--1- problem izlazi na videlo: is pus ten je broj mcsta
ka, kao u prcthodnllm primeru. U prcthodnom primcru smo videli i izracunavanje, to za koje treba izvrsi ti pomeranje. lspravan red 7 trcba da glasi
jest stavljanje na stek argumenata pre poziva potprograma (reclovi od 5 do lJ). U redo-
SHR CX,1
vima od 22 do 25 ucitavaju se registri unutar potprograma.
Naglasavamo kau veoma vazno da se greska mora ispraviti u originalnoj izvornoj
#include " ../syscalnr.h" I 1 .SECT .TEXT ! 20 datoteci armrprt.s. a nc u kombinovanoj it.vornoj datoteci arrmprt.$. posto se uva
vecprint: ! 21 druga automatski ponnvo gencrisc svaki put kada sc pnzove asembler.
.SECT .TEXT I 2 PUSH BP ! 22
vecpstrt: I 3 MOV BP,SP ! 23 Sledeci pokusaj asembliranja treba da uspe. Pn;,le toga pokreccmo simulator kn-
MOV BP.SP I 4 MOV CX.4(BP) ! 24 mandom:
PUSH vec1 15 MOV BX,6(BP) I 25
MOV CX.frmatstr·vec1 I 6 MOV SI,O I 26 t88 arrayprt
SHR CX I 7 PUSH frmatkop ! 27
PUSH CX 18 PUSH frmatstr I 28
Tokom sirnulacijc uucavamn da sc rczultati ne slaz.u s vektorom u scgmcntu pl·da-
CALL vecprint 19 PUSH PRINTF I 29 taka. Vd.tur sadrzi brojeve: 3. -1-, 7. II. 3. ali prikazane vrednosti pocinju sa: 3. 1112-1-,
MOV SP,BP 110 SYS I 30
. Jasno je da n6to nijc u redu.
PUSH 0 111 MOV -4(BP),frrnatmt I 31
PUSH EXIT I 12 1. MOV DI,(BX)(SI) 132 Greska 'ie moze naci ako se simulator pokrene ponovo. korak po korak. i is:Jila
SYS I 13 MOV 2(BP),DI I 33 stanje raCunara neposrednu pre ispi:-;ivanja neispravne vrcdnosti. Vrcdnost za i;pi-
SYS I 34
sivanjc cuva sc u memuriji u redovirna 32 i .l3. Pust'' se ispisuje pogrdna vredno:-.t,
.SECT .DATA ! 14 INC Sl ! 35
vec1· .WORD 3.4.7.11.3 I 15 LOOP 1b I 36 tu treba traziti uzruk problema. lJ drugom ciklusu petlje vidimo da registar Si sa,Jrzi
frrnatstr: .ASCIZ "%s" I 16 PUSH i\ni 137 neparan hroj, iako 7.namo da treba da bude paran jer se indeksiraju reci, a ne bajt,Jvi.
PUSH .PUTCHAR I 38
Problem se nalazi u rcdu 35. U njemu sc sadr/.aj rcgistra Sl uvccava za I. a treba ;a 2.
frrnatkop: 17 SYS I 39
.ASCIZ "The array contarns .. 18 MOV SP,BP I 40 Problem se rdava ako se ovaj red ispravi u
frmatint: .ASCIZ "%d" 19 RET 141
ADD Sl,2
Stika C-16. Program armyprt pre otk:lanJanp grcsaka. Kada se m o ispravi. brojevi se ispisuju ispravno.
741
740 Dodatak C: Programiranje na asemhlerskom jeziku C.S Primeri

Kako ovi potprogrami raclc, mo1.: se vidcti iz putprograma ermtt u redovima od c!J
#include ". ./syscalnr.h" ! 1 r outO: MOV AX,mesO I 25 do 4i\. Ovaj potprugram ohraduje >lueaj broja izvan zadatog intervala. Najpre se u
.SECT .TEXT I 2 JMP 9f 126
redu 43 adresa poruke (u rcgistru AX) stavlja na stek. Zatim se na stek stavlja broj >i-
jumpstrt I 3 r out1: MOV AX.mes1 ! 27
JMP 9f 12S stermke funkcije _PRINTF. Posle toga se upucuje poziv sistemske funkcije, stek se Ci-
PUSH strt ! 4
MOV BP,SP ! 5 rout2: MOV AX,mes2 129 sti i kontrola sc vraca glavnom pwgamu. Osta1ih devet potprograma, od routO do
PUSH PRINTF ! 6 JMP 9f 30 rout8, ucitavaju adres.: svojih odguv~:r~tjuL'ih poruka u regis tar AX, z.atim skacu na dru-
SYS ! 7 rout3: MOV AX,mes3 31 gi red potprograma ermlt da bi ispi:;ali poruku i Lavrsili se.
PUSH _GETCHAR ! S JMP 9f 32 Da biste se privikli na korisct:l1ll' LJbcla ?a Wdllcravanje, program treba vrteti u ;i-
1: SYS ! 9 rout4: MOV AX,mes4 33
34 mulatoru unoseci u njcga razlicitc 7n~1kc. :;-~~~ vcibu, program moz.ete izmeniti tako da
CMP AX,5 ! 10 JMP 9f
JL Sf ! 11 routS: MOV AX,mes5 35 svaki znak izaziva ncku srnislcnu ~tk..:iJu. na primer, da svi znaci usim uktalnih hrojcva
CMPB AL,iOi !12 JMP 9f 36 ispisuju poruku o gre;ci.
JL 1b ! 13 rout6: MOV AX,mes6 37
CMPB AL,i9i ! 14 JMP 9f 38
JLE 2f I 15 rout?: MOV AX,mes? 39 C.8.7 Bafcrisan i direktan pristup datotekama
MOVB AL,i9i+1 ! 16 JMP 9f 40 Program InFi!fJuj:.1. prikazan na :dici C-1 l). ilustrujc: dircktan pristup datntekarna
2: MOV BX,AX I 17 routS: MOV AX.mesS 41
42 ;,a citanjc i upisivanjc. Prctpostav Ija >C da datotcka sadrzi odreLkn broj r.:dova ra~lici­
AND BX.OXf I 1S JMP 9f
SAL BX,1 ! 19 erout: MOV AX.emes 43 te du.l.inc. PrPgram prvo ui:·itava datotcku i pravi tahelu u kojoj odrednica n predsr.a-
CALL tbi(BX) I 20 9: PUSH AX ! 44 vlja poziciJU u datutcci na kl'j•Jj pocinjc red n. Posle toga se mo/.e ;.ahtcvati odrecleni
JMP 1b ! 21 PUSH PRINTF I 45 reel. Njcgova p<uicija -.;e tacla pronala;,i u taheli i on sc ucitava pomocu sistemskih
S: PUSH 0 ! 22 SYS 146 funkcija lseek i r8ad. !me datutcke se prosledujc kao prvi red unosa na ~tandardnom
PUSH EXIT I 23 ADD SP,4 !47
ula;u. Ovaj program sadr:!i vise prilicno nezavisnih delova koda koji se mugu
SYS ! 24 RET 14S
pril~1gudavali za druge s\Thc.
U prvih pel rcdova dclini;u -.;e brojcvi sistemskih funkcija i velicina bafcra, a bawi
.SECT .DATA 49 IX<k~l;'.ivac '" usnh.:ra\ ana vrh steka. kao i obicno. U rcduvima ud 6 do 13 ucitava sc
tbl: .WORD routO,rout1 ,rout2.rout3,rout4,rout5,rout6.rout7,routS.rout8,erout 50 ime datutck~ s~l standardn<lg ula/a i smcsta kao znakovni niz kod oznake linein. Ako
mesO: .ASCIZ "'Th1s is a zero.\n" 51 im..: da\Utekc nijc prupisnn . .ratvorcno·' /nakom za prelazak u novi red, generisc sc
52
puruka o gr6ci i pn•gr~cm -c zavrsava sa statu'.OI11 razlicitim od nule. To se obavljc~ u
mes1: .ASCIZ "How about a one ... n"
mes2: .ASCIZ "You asked for a two.'.n" 53
mes3: .ASCIZ "The digit was a three.ln" 54 redtl\ i;11a ud _)~) ,\o -IS. :Sh.:..:..'c:mo vam pa.'-nju nato da sc adresa imena datoteke stavlja
mes4: .ASCIZ "You typed a four.\n" !55 na slc:k u rcdu ~''·ada s.: u rr:du -10 na stek stavlja adresa poruke o grcsci. Ako pogle-
mesS: .ASCIZ "You preferred a five.\n" !;:o da!ll<l ~;amu p<•ruL, u gr.c\c1 :u redu 11.'). vidimo u poruci poziva _PRINTF L.ahtcv z.a
mes6: .ASCIZ "A six was encountered.ln" I 57
zr;,;kovni n1z '· S.!d:"i";1j t.nakmnog niza linein umece se ovdc.
mes7: .ASCIZ "This is number seven.\n" ~58
.\k,l '.: imc cLttol.."kc nu::c bez problema kopirati. datoteka se otvara u rcdovi:na
mesS: .ASCIZ "This digit is not accepted as an octal. n" ! 59
! 60 od l-1 ,[o 21!. \'k<Jiikn pui!V funkcijc open ne uspe. povratna vrednllst jc ncgati\na i
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" ! 6~ sk:;c.' sc n:\ ''~'n:t 1 ,:i cJ u ,,·du 21' eLl hi se i;..pisala poruka o grcsci. Kad poziv sistcrnske
fud.. c·ijc u:-:.p•:. 1rac'..:n ..l \T~dnost jc dcskriptor datoteke koji sc sme."ita u promen1j vu
Slika C-18. Program koji ilu.\lrujc gran~mje u vi.\c ~m--:nJV;J pollll'l~U lah~..·k .ta l!'>lll~~r~1V~trlic. fi/ii<s. [Jeckrq'l<<i" cl~!toidc .JC: neuphodan za po;i\e funkcija read i !seek koji slcdc.
l\b:,~ tl\l:g:l. dat,dek:i '<:: u•:'itava u hltlkovima Del po 5 l2 hajtova. a svaki blok se
Da bismo shvatili sta sc dogada. m"r;\IJlll biti :-,\c'\ni da inst;·uk.:ij-: JtviP i CALL clci- smc::~;ta u baL:r . t:,~i·er: t jc dmJeljeno dva bajta vise od potrebnih 512 bajtnva samo
tavaju u PC n-:ku adrcsu i/ ... egmenta s rcbt,Jiil. "L1k\ a adrc'a j•: samo hinar~1n hroj. a da hi''' i\u;..tr"' ab mogu•'tl< .,, llleS~tnJa simholicke konstante i cclog hroja u izrazu (u
tokom a ... embliranja sve adrese sc zamctiJUJU njilwvim binamim vrcJrwstima. Ein~lr­ red~t 1.23). :...;~t [-..,ti n~r~·in ~,~._· u L~Llu 2! u r~gi~tar SluCitava adresa drugog clc1nenta niza
ne vn:dnu:,ti -.;c mogu iskoristiti za iniL·ijali/U\anjc niza u segmcntu P"lLttal-a. L\,J u ,adr/i I) osla.JC na kraju ovog niza. Rcgistar BX cc sadr!.ati
rcdu 50. Na taj nacin. niz kllji pocinjC k.rxlu/nake ri>l 'iadrzi pocctn,· i!drco;e mlli 0, adrcsu l <rv"g n~aka u datoteci into se iniciplimje na 0 pre ncgo stu se
rout l, m/11 2 itd. (dva hajta po adrcsil. Dvohajlllc ctdre.;e q1 razlog jcdn.,hitn.Jg i'<l-
baf.:r Jl~"'' i l'''t u r.:J~J 2'2.
mcranp ulcvn u redu 19. Tabela cJvog tipc; (esi,J se zme t;.;bcla za usmeravanje
(engl. di.lptilch !uhle ).
-·.--e:~

738 Dodatak C: Programiranje na asemblerskom jeziku C.8 Primeri 739

Instrukcija MOVSB ne utice na indikator nule, ali to Cini instrukcija seASB (prolazak Greska se. medutim, pojavljuje tek kacla taster Enter pritisnete mnogo puta. Po-
kroz niz bajtuva). Ona puredi vrednost na kuju ukazuje registar Dl s vrednoscu u regi- mucu komandi simulatora mozete je utkriti i brz.e. Pokrenite simulator i izdajte ko-
star ALi usputuvecava vednost u registru Dl. Stavise, ona se punavlja, kao instrukcija manclu I 3 da biste stigli u srediste petlje. Ako sada iz.damo komandu b, postavicemo
MOVSB. Taku se u reclu 15 cisti registar AX (clakle i AL), u redu 16 se sa steka uzima pu- prekidnu tacku u red 15. Ukoliko unesemo elva nova reda. vidimo da se u polju za re-
kazivac za Dl, au redu 17 se registar ex inicijalizuje vrcdnoscu -I. U redu I Rje instruk- zultatc ispisujc zavrsno e. Komanda r ce odrzavati simulator u radu sve dok se ne
cija REPNZ seASB, kuja obavlja porcdenje u petlji i pustavlja indikator nule kada naide na prckidnu tacku iii dok se ne dode do kraja programa. Na taj nacin moiemo
dostigne jednakust. Vrednost registra ex smanjuje sc u svakom koraku petljc; petlja se da prolazimo slova u nizu stalno ponavljajuci komandu r sve clok ne pridemo blize
zaustavlja kada se postavi indikator nulc, posto REPNZ proverava i indikator nule i re- prohkmu. Polom simulator muzemo izvrsavati instrukciju po instrukciju sve clok ne
gistar ex. Broj koraka za pctlju MOVSB izracunava sc u redovima 19 i 20 kao razlika te- utvrdirno sta se dogacta s kriticnim instrukcijama.
kucc vrednosti registra ex i njegove prethodm: vrcdnosti umanjene za I. 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
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 mesta. Slwdnu tome, prekidna tacka se u red 16 moze postaviti komandom 36b. To
moraju se uvccavati vrednosti indeksnih registara, a za to je potrebno cla indikator nije clegantno re,:knje, paje boljc koristiti globalnu oznaku start u redu 2 pre imtruk-
smera bude anuliran (rcsetovan). cije i izc!ati komandu htarl+ /4b, koja prekidnu tacku postavlja na is to mesto in~ bri-
U redovima 23 i 25, kopirani znakovni niz ispisuje sc pomocu potprograma string- ne o vclicini ukljucene datoteke.
fir koji se nalazi u direktorijumu examples. Taj potprogram je jasan sam po sebi i
necemo ga objasnja vati. C.8.6 Tabcle za usmeravanje
U programu za ubrnutu ispisi vanjc prikazanom na slici C-17(b ). prvi red uk ljucujc
U vise programskih jetika postoji nan:dba case ili switch kujom se bira jedan ocl
brojeve uobicajenih sistemskih funkcija. U redu 3 na stek se stavlja pseudovrcdnost,
vise programskih skokova. stu zavisi ud hrojcane vrednosti odredene promenljive. Po-
au redu 4 sc hazni pukazivac BP usmcrava na tekuci vrh steka. Pmgram treha da ispi-
nekad jc takvo grananje s vise mogucih pravaea potrebno i u programu na asemblcr-
suje ASCII znakove. jcdan po jcdan. pa se na stek stavlja brojcana vrcdnost
skom jeziku. Zamislite, na primer, skup poziva sistemskih funkcija komhinovanih u
_PUTeHAR. Skreccnw vam pa/.nju na to da registar BP ukazujc na z.nak koji lreba da
jedinstvenuj klopki SYS. Programjwnptbl.s, prikazan na slici C-1 R daje primer kako sc
se i'pise kada sc upuli poziv funkciji SYS.
takvo grananje u vise pravaca mo.!.e ostvariti u asembleru za procesor 808X.
U redovima 2, 6 i 7 registri 01, ALi CX pripn:maju sc z.~t inslrukciju SeASB. 13ro-
Program prvo ispisuje znakovni niz na oznaci strt; od korisnika se trazi da unese
jacki rcgistar i indeks odredista ucitavaju sc na nacin opisan u potprugramu za kopi-
oktalnu cifru (rcdovi ocl 4 do 7). Zatim se znak ucitava sa standardnog ula1a (redovi
ranje, ali ovdc vrednosl u r.:gistru AL nije 0, vee znak t.a prclazak u novi red. Na ovaj
i\ i 9). Ako je vrednost u rcgistru AX manja od 5, program je tumaci kao oznaku kraja
nacin instrukcija SeASB puredi vrcclnosti znakova niza str sa \n umesto sa 0 i posta-
datotcke i skacc na m.naku R u redu 22 da bi se zavrsiu statusnim kodom 0.
vlja indikator nule uvck kad pr(lnade slaganje.
Ako se nijc closlo do kraja datoteke, ocekuje se ulazni znak u registru AL. Svaki
REP SeASB uvecava vrednost registra Dl. tako da pu,k pronadcnog slaganja in-
mak ispod cifre 0 smatra se belinom i zanemaruje 'e pri skoku u redu 13, koji u~:ima
dcks odredista ukazujc na znak nule u no\om redu. U redu 12 vrcdnost rcgistra Dl
skcleci znak. Svaki z.nak iznad cifre 9 smatra se neispravnim unosom. On se u reJu 16
smanjuje se za dva da hi sc ukatalo na poskdnjc slovo rcci.
presltkava u ASCII znak dvotacke. koji sledi iza eifre 9 u skupu ASCII ~:nakova.
Ako se kmz znakovni ni1 pro Lui l>brnutim rcdn:-.ledum i ispisuje L.nak pu znak. po-
Tako u redu 17 imamo vrednost u registru AX koja se nalazi izmedu 0 i dvotacke.
stizcmo nas cilj. pa se u redu 10 indikator srncra postavljc~ t~tko da ohrnc pudesav,mjc
Ova vrednost se kupira u registar BX. U redu 18 instrukcija AND maskira sve hitove
indcksnih registara u instrukcijama s nimvima. Sada instmkc·ij~t LODSB u redu 1-1 l,:o-
usim najmanje znaeajna cctiri hita. slo broj smesta Ll interval izmedu 0 i 10 (zalwalju-
pira znak u rcgi.c.;tar AL. au redu 1:'i se ovaj z.nak stavlja na sl·~k ncposrednn do\ I"L'd-
juc'i C:injenici da je ASCII nul a heksadecimalno Ox."lO). Posto tabelu reci. a ne bajtma
nosti _PUTeHAR, tako da ga t"unkc'ija SYS ispisujc.
nameravamo da pretvorimo u indeks, vreclnost u rcgistru BX mnu/.i se s dva pomc-
ln:::trukcije u reduvima 1i\ i 19 ispisuju doclatni nov red i program se zavrsava po-
ranjem ulevo u rcdu 19.
zivom funkcije ~.EXIT na uuhicajcn nacin.
U rcdu 20 je instrukcija za pozivanje. Efektivna aclrcsa se pnmalazi tako sto se
Tckuca vcr;rip prograllla sadrzi grcsk.u. Ona sc mol.c otkriti aku se program iznsa-
vrednost registra BX dodaje brojcanoj vrednosti oznake thl i stu se sadr7.aj ove kom-
va u simulaloru korak pu korak.
binovane :.tdrcse ucitava u programski brojac PC.
Komanda htr qavlja makovni niz ,-,tr u poljc za pod~ilkt: na ckrc~nu simulatura.
Ovaj program hira jedan od deset potprograma, sto z.avisi od toga koji se znak
Postu 'c tu v icli i brojcana vrednust adresc podat~1ka. llJozenhl da prati rno kako in-
preuzrne sa stanclardnog ulaza. Svaki od potprograma stavlja adresu odrede:nc pLlruke
deksni rcgislri prola1.c kroz poclatke u ,1dnosu na pPlozaj niza.
11a -;tck i tada poziva sistemski potprogram _PRINTF.

~
745
Dodatak C: Pnlgramiranje na ascmblcrskom jcziku Vdbanja
744 ----

5. Poziva se polprogram s tri cclobrojna argumenta prcma pusrupku poLivanja opisl-


dugacak (tj. 32-bitni) ceo broj. tako da u rcdovima 5~ i 59 na stck prvo stavljamo rcc nom u tekstu, tj. pozivalac stavlja argumente na stck obrnutim rcdoslcdom. a Latim
0. pa onda vrednost u rcgistru AX da bismo ohrazovali 32-bitni ceo hroj. Zatim se na izvrsava instrukciju CALL. Pozvani pol program tada snima slaru vrednosl rcgistra EP
stek slavljaju dcskriptor datoteke i ki'ld za pm.iv funkcijc LSEEK; poziv sc upucuje u i poddava ga tako da pokazuje na tu staru vrcdnost. Tada se pokazivac stda
redu 62. Vracena vrednost funkcijc LSEEK je tekuc'a pozicija u datotcci i ona se moze smanjujc da hi sc rezervi,.,ao pro,,tor Dl lokalne promcnl.Jive. l!~imajuci u obzir lWe
naci u kombinaciji registara ox :AX. Ako se broj uklapa u masinsku rcc (;to jc sadrzaj konvcncije. oclgovorite kop cc instrukcija prebaciti prvi argurncntu regis tar AX.
za datotd.e kracc od 65536 bajtova), regis tar AX sadrzi adrcsu, pa oduzimanjc sadrzaja 6. Na slici C-1 kao operand se koristi izraz de- hw. Ova vrednostjc ra.dika dvc oznak.:.
ovog rcgistra ud sadrzaja registra ex (red 63) dajc broj hajtova koje treba ucitati da hi Postojc li oklonosti u kojima hi bilo korisno upotrebiti de+ lm kao ispravan op>
red bin prenct u bafcr. rand'' ObraJiozitc odgovor.
Ostalak program a je jednostavan. U rcciovima od 64 do 6K ucitava se red iz dato- 7. Napisilc ascmblerski k<id za izracunavanjc izr~va:
teke. a zatim u reclovima od 70 do 7 2 ispisuje na standardni izlaz uz deskriplor dato-
x~a+b+2
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- 8. Funkcijajo.ii-.a C po;:iva se izrazom
kazivac steka i spn:mni smo za sledeci korak. pa skacemo nazad na oznaku 3 i ponovo foobar(x. y):
sve pocinjcnw slcdecim poL.ivanjem potprograma gl'fnwn. 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
ZAHVALNICE vrednosti izr~ll.a. Upotrchite upcraton: +,-. x i /.

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'tu·s. vu.nl/u.-k. ZahvaljuJemo onima koji .'>LI bili ukljuccni u njegov prvobitni pro-
jckat: Johanu Stcvensunu. Hansu Schaminecu i Hansu de Vricsu. Posebnu ~:ahvalnusr
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 1.~1 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 ft~OUU. Mnoge od njihuvih zan11sli
iskori~L'cne 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 procc~S(ll' 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"'
742 Dodatak C: Programiranjc na asernblerskom jeziku C.S Primcri 743

mtbutst: ! 4 3: CALL getnum ! 46 !::iY::i Po povratku iz pulprograrnajill/mf u redu 24 se proverava da li su podaci stvamo
MOV BP,SP I 5 CMP AX,O ! 47 ADD SP,B ucitani. Ukoliko nista nije ucitano, u rcdu 25 i~kacemo iz petlje za baferisano ucita-
MOV Dl,linein I 6 JLE Sf !48 MOV CX,AX vanje u drugi deo programa.
PUSH _GETCHAR ! 7 MOV BX,(curlin) ! 49 ADD BX,CX
1: SYS ! 8 Sada smo spremni da pregkdamo bafer. Simbol \n se ucitava u registar AL u redu
CMP BX,O ! 50 MOV Dl,but
CMPB AL,i\ni ! 9 JLE 7f ! 51 RET 26, a u redu 27 ova vrcdnost se pregleda petljom REP seASB radi poredenja sa sim-
JL 9f ! 10 CMP BX,(count) ! 52 bolima u baferu. Iz petlje se mo/.e izaci na dva nacina: kada vrednost u registru c:< do-
JE 1f ! 11 JG 7t ! 53 getnum: stigne nulu ili kada se prilikom preg!cdanja naide na znak za prelazak u no vi red. Ako
STOSB ! 12 SHL BX,1 ! 54 MOV Dl,linein je indikator nulc postavljen. to znaci da je poslednji pregledani simbol bio \n ida se
JMP 1b ! 13 MOV AX,Iinh-2(BX) ! 55 PUSH GETCHAR pozicija u datoteci tekuccg simbola (nnog i;.a znaka za novi red) mora smestiti u niz
1: PUSH 0 I 14 MOV CX,Iinh(BX) ! 56 1: SYS
PUSH linein ! 15 PUSH 0 ! 57 CMPB AL,i\ni linh. Broj znakova se tada uvecava i izracunava se pozicija u datoteei iz registra BX,
PUSH OPEN I 16 PUSH 0 ! 58 JL 9b a hroj prcostalih raspolozivil;! znakovaje u registru ex (redo vi od 29 do 31 ). U redo-
SYS 117 PUSH AX ! 59 JE 1t vima od 32 do 34 obavlja se stvarno smdtanjc, ali posto instrukcija STOS pretp~lsta­
CMP AX,O ! 18 PUSH (tildes) I 60 STOSB vlja da se odrecliste nalat.i u registru Dl umesto u registru Sl, ovi registri medus.Jbno
JL 9f I 19 PUSH LSEEK !61 JMP 1b ra~:~nenjuju vrcdnosti pre i posle instrukcije STOS. U redovima od 35 do 37 provt:rava
MOV (fildes),AX I 20 SYS ! 62 1: MOVB (DI),i\Oi
MOV Sl,linh+2 21 se da li u baferu imajo.~ podataka i skace ~e u zavisnosti od vrcdnosti u registru ex.
SUB CX,AX I 63 PUSH curlin
MOV BX,O 22 PUSH CX ! 64 PUSH numfmt Kada se dode do kraja datoteke, imamo potpunu listu pozicija pocetaka redova.
1: CALL fillbuf 23 PUSH but ! 65 PUSH linein Posto smo niz linh zapoceli recju 0, znamu da prvi red pocinje na adresi 0, ada sledcci
CMP CX,O 24 PUSH (tildes) I 66 PUSH SSCANF red pocinje na poziciji /inh+2 itd. Duzina redan mo/.e sc izracunati kao pocetna .tdre-
JLE ~ 25 PUSH READ ! 67 SYS sa redan + 1 umanJena za pocetnu adresu redan.
2: MOVB AL,i\ni 26 SYS ! 68 ADD SP,10 U ostatku programa ucitava se broj rcda. red se ucitava u bafer i ispisujc sc pomocu
REPNE SCASB 27 ADD SP,4 I 69 RET
JNE1b 128 PUSH 1 I 70
poziva funkcijc write. Svc neophodm: int'ormacije nalaze se u nizu linh cija 11-l.i od-
INC (count) I 29 PUSH WRITE ! 71 .SECT .DATA rednica saclrzi poziciju poc.:tka redan u datoteci. Aku JC zahtevani broj 0 iii ispada iz
MOV AX.BX ! 30 SYS 172 errmess: upscga datoteke. program ~e zavrsava skokom na oznaku 7.
SUB AX,CX ! 31 ADD SP,14 I 73 .ASCIZ "Open %s failed\1 Ovaj cleo programa pocinje rad puzivum potprograma getnwn u rcdu 46. Potpro-
XCHG SI,DI I 32 JMP 3b ! 74 numtmt: .ASCIZ "%d" gram ucitava red sa standardnog ul<va i smdta ga u bafer linein (u redovima ud 95 do
STOS I 33 8: PUSH scanerr ! 75 scan err:
XCHG SI,DI ! 34 I 03). Zatim se oba\ ljaju pripreme za po1.iv funkcije SSCANF. lmajuc'i na umu Olrnut
PUSH PRINTF I 76 .ASCIZ "Type a number\
CMP CX,O 135 SYS 177 .ALIGN 2 rnloskd argumenata. na :;tek prvo stavljamo adresu promenljive cur/in koja rnof.e cia
JNE 2b I 36 ADD SPA I 78 .SECT .BSS cuva C-'i<lbmjnu vrednust. zatim adresu wakovnog niza za formaliranjc celog Jroja
JMP 1b ! 37 JMP 3b ! 79 linein: .SPACE 80 n:.;;n.fint 1 na kra_1u adresu bafcra linein koji sadrzi broj u decimalnom obliku. Si,tem-
9: MOV SP,BP ! 38 7: PUSH 0 I 80 tildes .SPACE 2 ska i'unkcija SSCANF smesta binarnu vrednost u cur/in. ukoliko moze. Ako ne Llspe.
PUSH linein ! 39 PUSH EXIT I 81 linh .SPACE 8192 \rae' a I) u regi ..;tar AX. Vrac'cna vrednost se proverava u redu -1-~; ukoliko dode de gre-
PUSH errmess I 40 SYS I 82 curlin: .SPACE 4
PUSH _PRINTF ! 41 fillbuf ! 83 \kc. prugrc~m generi~c poruku o gresci preko oznake ~.
buf: .SPACE bufsiZ+2
SYS ! 42 PUSH butsiz ! 84 count: .SPACE 2 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
Stika C-1 9. Prugram .'l haferi~<l!llm ul:itavanjcm i Jirektni rn pristupom datotckama. 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
Punjcnjcrn bafera upravlja potpmgram.fii/bufu redovima od 83 do 93. Poslc sta- uCitavanje, pa mnui:imo s~tdr/aj rcgistra BX sa 2 pomocu pomeranja ulcvo ISHL1. Po-
vljanja na -,tek argumenata za funkciju read, upucuje ;,c P''ziv si"fc1mkuj funkc·iji koji l.tcija 11 datotcci /:cljcnug n:da kllpira se u rcdu 55 u regis tar AX. Pozicija u datuteci sle-
stvarno procitan broj t.nakuva smc~ta u registar AX. Ovaj broj '>C kopira u ex i broj dc,..'c:g rcda ;,;nc;;u se u registar ex i iskoristice se za izracunavanje hroja bajtova
Lnakova koji su jos uvck u bafcru nadaljc se cuva u registru ex. Pozic:ija u tbtutcci L~kuc.::-cg
reda.
prvog nepmcitanog znaka cuva se u rcgistru BX, tako da se -;adrzaj registra ex mora Da bi:.mu ii ,latotek<' ul:iiali odreucni red. potrebna nam je funkcija lseek da P'Jdcsi
dodati sadrzaju registra BX u redu 9l. U rcdu l)2 dn!l bafcra se 'tavlja u registar Dl da P'lrncraj u datot~ci na hajl koji treba sledeci da budc ocitan. Operacija !seek izvrsava se
bi sc bakr brzo mugao preg'ledati radi trazenja 'ledcl"L'g znaka za novi red. ,: udno'u na pucet~!k 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 Spisak tcrmina koriscenih u knjizi 1-'9
Spisak termina koriscenih u

dnslcdnost katalog 'tranica page directory kompajler, prcvodi· com1Ji/er


segmential ' indeks odrcdista destination index
redoslcda consistcncv katodna ccv Cutlzode Ray llthe, lac, programski
indeksirana boja indexed color
drajvcr. upravljlH5ki device driver imkksno adresiranje CRT prevodilac
indexed addressing
!Jlock cache kompatihilnost sa bocf...ward
program za urcdaj ! indikator smcra di reel ion flag kcs blokova
dugacak skok f1u·jump kcs ~~a podatke data cuche starijim verzijama compatibility
infiksno infix
du;(ina putanje path length kes za pracenje trace cuche komplement dvojke two\ cmnpleme1!t
integri,-,ano kolo fnlegrated Circuit,
ekran s pasivnom passive matrix kcs za prethodno prefetch cache komplement jedinicc one\' complemel!f
IC
matricom
kumutiranje pakcta swrc-and-jiJn.va,-d
display intc:-fej., ;:r graticke graphics device preuzunanJe
ekran s tdnim kes za prisluskivanJC snooping cache, sa smdtanjem packet switchirzg
LicJuid C1ystul un:'c:ajc interjilCe
kristalima Display. LCD i nte:·no snoopv cache i prosleclivanjcm
internal
ekran sa aldi \'lllllll write curhe konacni automat. Finite Sratl'
active matrix fragmcntiranjc .fi'agmentation kes za upisivanJe
Pluin Old masina konacnih Machine, FSM
rnatricom di.1pluy , intl:'rprekr intnpreter klasicna usluga
eksplicitno I'Xplin't linking invcrtujuci hakr prcnosa glasa Ji'ieplwne stanja
im'crting /Juf/('r
Service. POTS konstanta rclokacijc relocation con.l·t,uzt
povez1 vanje irnePioni kruzic im•ersimz buh/Jic
farma M:rvcra cluster compzttt'r ' kontrola tuka jiow control
servcrji1nn i;vorni je/.ik source language klastcr racunara
Ol)('ode. opemtion kontroler diska disk umtro/ler
faza ohrade stuge izvrsilac executive k{\d operacijc.
lle:i mcmonja code kontrolni kCKl escape code
.flush lill'llli>r\' i1.vrsni hinarni excnauble /Jinurr opkod
' koproccsor coprocessor
ga1na, opseg hojll gnmut program progrwn kCKl z.a ispravljanjc r:rmr('orreczizzg
Code. ECC korcnski direkto- root directory
generator radnog clock jedinica ;a allocation/ gre;aka
takta, radni takt :z- koclna rcc codeword rijum, osnovni
dodeljivanje/ renaming unit
gcnaisanjc· kopijc COf'Y Oil wri!e prei mcnovanje kodna strana code l'agc dircktorijum
po LI!JIC'JV:t11jll cfwractcr emit korisni podaci fwyloud
jedinica za i;:davanje instruction issue kodna tabcla
)Ciavna tabcla korisnicki re/.im ttser mode
,Huster File J:thle. instrukcija llllit z:nakova
datotcka \JFT .Jt'dinica ;:a kodna tacka code point rada
queueing unit
condition codes korutina curollfilll'
gLtvni. n::dredcni 111ustcr svrstavanje u red kodovi uslova
coherenl cuche kracla ciklusa cvc/e stealing
grafil'~o korisni~·kl' Gmpizi,·ul Cser cckanja koherentni kd
()kru/L·n_jc kohercntnost kesa. cache coherencl'. kratak skok nt'urjlllllf'
/lzzertil<C. GUI j.:dinica 1.a !VI emory
cuche kriticno podrucje aiticul section
~Te~k~l prL·koraCcnja :ozdt'tJltJH' error upravljanjc Mltltugemelll doslednnst kesa
consistency labavo spregnut loo.1el\· coupler!
dunjc granice memurij( 1m Unit, 1HMU
laser'>ki stampac laser fJrinter
gre~ka prckPr~t ..:L~n_ja Ol'erf/o~v error jcdinica t.a scheduler kolo s niskim ,tepe- Smull Scale
g()rnjc ~rani,:e /ntegruted, SSI Iaino dcljenjc .fitl.,c shoring
vremensko nom intcgracijc
Very Large Snzle licni digitalni F'crsotwl lJigiliJ
~~!\tina r~tqcr:l. lu://iunt:> scre~~n ras pore eli vanje kolo s veoma
lntegmred. VLSJ pumocnik Assistant. P!H
riequencr Jedinica ;:a retircmnll unit visokim stcpenum
JLtn!rningo\·o linija s prd[kslH11 v \'pipeline
flri'llllling LiistLL/l('f' zavrsavanje integracije
Large ,'!call' linijatura, gustina lwlftonc ,., 'l'l!i'll
ra:-.t~!j:tr:jc instrukcija kolo s visokim
!lllegmted. LSI rastcra ji·Ciflli!llL)'
hu.-,hin~ jedinstvcn kes umjied cache stepenom
lista slubmlnih ji-ee list
11<::;. "' 1d i r:: nj t:' /i,tsli r·orling jcdnobitna sckcija hit slice integracije
-CvPr ~:,u,Je Je;gro kolo sa srcdnjim McdiumScule mcsta
! /...erne/
/ntegrult'd. ;\!!Sf lista La kontrolu ;1ccess Contml
idci11i!ikatf'/' \)hjch.ta /zu;::llr jezik visokug ni voa high ln·el stepenom
pristupa List, ACI.
11nr~i i~_·it!~\ • linking language integraciJc
\'anjL' .. :~~i~)tJ1at~,Lu shell literal lizeml
kana! za podatke pipeline komandnP
iogicki rasporcd pinout
r)()\ t:'ll\·:tni,: ka~njc:njc lurency okrul.cnjc
i nozica
indck' datotcka indr:J. ,,
kasnjcnjc logickog "Ute deluv . kombinaciono kolo '·om!J i mil ion u
logil:ko koltl gate
irld~'k'-\ iLVI)ri:~l<i so,; r, 'I' iiHiex kola citntir
~~

Spisak termina koriscenih u knjizi

adresiranje logickih Logical Block broj konacne finite-precision


blokova Addressing, LBA tacnosti number
adresni prostor address .IJHu·e brojacki registar counter register
analiticka masina analytical engine brzina u bodima baud rate
arbitar magistrate bus arbiter Bulova algebra Boolean algebra
arbitriranje 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 Prol·ider, /SP
povczivanje deljena biblioteka shared /ihrary
bazni registar base register difcrencna masina diffi~l-uzce 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 vanjc dogadaj tTCnl

bisekcioni propusni biseczion dolazna obrada ingress proccs.\·in,~·


O[l'Cg bullllwidth doslednost kcsa, cache cohercn(·e.
bit parnosti parity bit koherentnost ke.~a cuche
blisko pozi vanje near call L'l!flSistency

~;J _...
""'
753
Spisak termina korisccnih u knjizi
-,
7~- Spisak termina koriscenih u knjizi

register mode sistem za ulazno- 110 manager


jint hit registarsko
procedura tmr handler prvi pogodak -izlazne opcracije
data path adresiranje
za obradu grcskc putanja podataka sistemska magistrala svstem bus
registarsko adrcsi- register
procesor Central Processing racunar sa sma- Reduced sistcmski poziv system call
ranje s pomerajcm displacement
Unit, CPU njenim skupom lnl'tmction Set sistcmski prckid interrupt
rcsctka grid
program za linker instrukcija Computer daemon process
reZ.im rada jczgra kernel mode sistemski proces
povez1vanje rad s hipernitima ltvrJerlhreiu/ing scalable
rotaciono kasnjcnje rotationallutcncy skalabilan
program za praccnjc tracer raJ sa objcktima ohicd lllmwger skencr stranica page scanner
ruter, usmerivac router
programabilni Pmgrwnmuble radiofrek ventna Roclio FrC<fllCil(\' store, storage
sabirac adder skladiste
logicki niz Logic Array. PLA idcntillkacija IDellli/il'Oiion. switch
sabirac s biranjcm carrv select wider skretnica
programerski pozi v SllfJervisor call RF!!J shadow page
prenosa skrivena kopija
programirani pmgranuned 110 ' radni skup 1vorking S<'i
skup znakova charucti'r set
sahirac s postupnim ripple carry adder
ulaz/izlaz radni takt, generator clock sloj apstrakcijc hardware
prcnosom
programska klopka Imp radnog takta hard vera a/Jstraclion h~>·er
samopoddavajuci sc!Fmudifyi,,g
programska nit tlunul rafalna brzina !mr.>t rote sloj sistcmskih systenz services
saturaciona smuratcd
programski brojac Progru111 Counto: prenosa podataka usluga layer
aritmetika arithmelic
PC rasp let ji111mt1 sloj veze link laver
savrsena mesavma pC!jec t slwffle
progresivno prog ressi\·e scan ! rasplitanjc de i lllc rlucing spckulativno speculative
segmentiranje striping
skcniranje rasterizo\ anje lwl/toning execution
SeifllellCCr izvrsavanje
rastcrsko skeniranjc raster scan sckvenccr
rrolaz za pozive cull gute scorchcJilr!l spoljni simbol external sy111hol
splillcr semafor
prolazak {HISS ra;:dcinik ' sporedni, poclreckni slave
spli! cuche s rczultatima
prumasaj u kdu Clli'fil' /IllS.\' mzdn>jcn kd. SR Icc SR la!ch
SCSljil SCSSlii/1
pronwsi vanjc J>U,t:C )illlf/ pudcijcn kd stanjc cekanja wait s/iltc
set -asocijati vni kes set associurivf'
str~mice red kl?Sa cache line stanjc utrkivanja race condition
cuche
promcnl_ii\c ush>\a condili!!ll vuriuh!n· red za porukc !tlC.\"S({ge (jllCUC
status radne core dump
signal z.a sistemski intcrmJ>I signal
propusn1 upscg fJ!"(J('('SS(Jr rcdll!llbntan niz Redundant Armv memonjc racunara
jc!'~inih di;;kuva of !ncxfJCnsive pre kid
prdCt':-,l n~1 /)(I /1[/H i.JI fl Svmmetric Multi- staza track. lane
!Jisks sirnctricni
pwstPr fi;ickih J>linintf uddress stck slack
multi proce~or Processor, SMP
adrc:-,a .\fhil'(' rcfcrcilciranic jiJiwurd refi'renet' stepen pogaJanja hit ratio
simultan visenitni sintultanccJtlS
prdstnr t< >rki lllfJ/c sr>uc,· Ull<l/'rcd ' stcpcn promasivanja miss ratio
rad II!Ulrithreading
prosror \'irtue~nih \·irf!t(:l lldLiress rclerentni sccuritv reference ' straniccnje paging
sinhrona magistrala svnchronous bus
adrc~a \'j}tll'C bubedmhn i l!loniwr stranicenje na z.ahtev demand paging
sinhroni SR lee clocked SR lmch
pm,lorn~t !t,kaiJ;ost spu!iu/ /oculi!r ntlll/Drnik striktna closlednost striCI consistencv
sistcm datoteka _file system
J'!U~ irenjc npkPd~t eXJ>IIillling opcodc rdcrcntni test. kst henchmurk strukturni sloj fabric laver
sistcm paketne batch system
pro<irivanjc nl~tk.rca n1ucn) cxpunsion brz.inc superkorisnik supcruser
~~-ide-orca nefH·ork. obrad..: podataka
f!n)Siriv~ll1jc /.Il;.tka sign extension rc·gicnalna mre/.a. Sl/f!erCOIIlpUter
sistem s podcljenim limesharing svstem superracunar
pwtnk<··i m;tgislr~dc !Jus tn>tocol rnrcZ~t ;in,ktl~ W1tN superskalarna supcrscalar
vrcmenom
JXULc.k<>i s naknad- H'ril e-f>u,·~ l)p")t:g~l
arb itek tura architn·wre
sistcm za kdiranje _file cache munager
ninl upisivanjcn1 fJI"(J,'(l("tJ/ rcgist~tr in:--lnJkci_jaIns! me/ ion , sveprisutno uhi<Jllitous comru-
Regislcr, IR datoteka
pn>toku! 1~1 jcdnu- ~vrilc-<Jl!Ci! racunarstvo ting, pervasi\'1'
sistcm za rad s pro- process and threw! ,
kratnu ~II:c~tiranjc fiiDIOCtif rcgi\Ltr ·"' k~)(.L)vinla condition codt' cornputing
c;csi ma i prngram- rrlil/U(I{i'r
pri upisi van JU u"luva register svctlosna dioda Light ~!,'milling
skim nitima
f1!"l1\Pkcd L~t \)l~rL:a­ cnclze coht'rence regi~tar ~J .flag register Diodi'. LED
sistem za rad s virtu- virwalmonorv
vanje ktJI:crc>nl- 1'7 i"( )/{)( '(jl indi~atorima /mill IIc
elnom mcmorijom mwwgcr svdanJ
nn~ti kesa rcgistar za podatkc dutu register
-·~

750 Spisak termina koriscenih u knjizi Spisak tcrmina koriscenih u knjizi 751

lokalna mreza local-area nesi metricnost bus skew oznacen signed, tagged poziciono nezavisan position
network, LAN magistrak oznacen ceo broj signed integer independent
lokalna telefonska local loop neusmereno broadcast oznaka label pozivanje makroa macro call
linija cmitovanje oziceno OR (ILl) wired-OR prava zavisnost true dependence
magistrala, bus nib! nibbll' paket s dva reda Dual/nline pravilo doueljivanja write-allocate
sabirnica nivo arhitckture Instruction Set nozica Package, DIP pri upisivanju policy
mapa memorije memory map skupa instrukcija Architecture paket za potvrdu acknowledgment pravougaona Charge Coupled
masina konacnih Finitl' State level, /SA level 1spravnog prenosa packet matrica senzora Device, CCD
stanja, konacni Machine, FSM nivo microarchitecture paralclna obrada pipe lining praznina hole
automat mikroarhitekture level podataka precizan prekid precise intermpt
maticna ploca motherboard 1 nivo operativnog operating system particionisanjc partitiorwd precnik diameter
matricni procesor array processor sistema racunara machine level deljenih resursa resource sharing predajnik sign,da bus driver
matricni stampac matrix printer nivo urcdaja device level podcljen kes, split cuche za magistralu
mcmorijska stranica memory page noseci signal, carrier razdvojen kes prcdikacija predication
met!uprocesni kana! pif){' nosilac poddavanjc tuning, adjusting pretiksni bajt prefix byte
mcctuscktorski intersector gaJl objektni program object progrum podizanje hoisting preimenovanjc register renwninr
razmak obrnuta poljska reverse Polish pourazumevano imfllied addressing regis tara
mikrodisk microdrive notacija notation auresiranje prekidacka algebra .1witching algebra
mini interval minislo1 oulazna obrada egress processing podrcdeni, sporedni slave prekidna tacka breakpoint
mlazni stampac inkjet printer oulo/.cno upisivanjc write deferred, podsistem envimnmenwl prelaz transition
model paralclnc pipelined model write hack okruzenja subsystem prcpleten interlaced,
obradc odredivanje ranging pogodak u kdu cache hit interleaved
model umno:i:enog replicated \t·orker ras toj anj a pokazi va( Pkvira fi'ame pointer preslikavanje mapping
radnika model odsutan negated pokazivac steka stack pointer prevaziclen legacy
modulacija jt'Nflle/ICV slzij/ ograniceno deljenje threshold sharing pokrctni zarcz .floating point prevouilac . compiler
s frekventnim kning okvir fi·wne poluuuplcksni halfduplex programski
p< lmcra nje m okvir lokalnih fond variable pomcrac shijler prevouilac.
mrc7.a ;irokog widc-ureu ll<'lll'Ork, promenljivih frame pomeracki registar shifi register kompajlcr
op."\cga, rcgionalna WIN okvir steka stack ji-ame pomeracki registar branch historr prevodilac s dva two-pass
rnre7.a nk vir stranicc page frame za istoriju grananja sltifi register pro Iaska translator
mrczni interfejs Net11·ork lnterj(lCe operativni sistcm operuting system pomeraj, uualjenost o[j:>et prevodenjc translation
Device, Nff) ! opseg boja, gama gamut postfiksno postfix prijemnik signala s bus receiver
multipkbirana multiplexed bus osnova radix postansko sanduce mailslot magistrale
m:1gislrala osnovni blok basic block potprogram suhroutine prikljucak J!Ort
multi prun:,or IIlli f I ifii'UC't'SSOr m.novni direkto- mot dircctorv potprogram za interrupt hwuller prikljucak Accelerated
mull iprocesor s direcUJn•-bused rijum, korenski obrauu prekida za ubrzanu grafiku Graphics Port,
katalogom lllll!tiprr'ce.,·sor di rekturijum pPtpun duplcksni full dupln AGP bus
I< lui ti programiranje !ltul!iJmlgrununing osnovni ulazno- Basic Input Owput re/.i m primoprcdajnik bus transceiver
mu!tiracunar mu Iric'OIIlf'llic r -i,dazni sistcm Svstem, BIOS putpuni sabirac filii adder signala magislrale
rnutcks mute.t i osnuvno cvoriste root hub potpuno dcljcnje jit/1 resource princip lokalnosti locality princiJIIc
nacin adresiranja address mode ostrvo (na povrsini land res ursa sharing prirucni bafcr prefetch huJTer
nadreJcni, glavni fllUSli'r CD-a) putpuno jitll fwndslwkf' prisluskivanjc snooping
neinvcrtujuci bafer nunint•crtin,~ bufj'er otrovni bit poison hit usaglasavanje pristupni !:eton access token
ncpusrcdni operand immedime operand , otvoren kolektor open collector
.I•
~
povoljno kruzenje virtuous circle prisutan signal asserted signul

!
I
··u
''""1ft
\$11
757
lndcks lndcks
756

bit parnosti, 71 cildus radnog takta, 155


argument. 712 Asimetricna digita1na pretp1atnicka
bit prisu~tva/odsustva, 432 ciklus toka podataka. 52
arhitektura, 7, 54 linija, ADSL, 117
bithlt, graficke operacije, 575 cilindar. 81
arhitektura paralelnih racunara, 543-647 asinhrona magistra1a, 180-181
hlisko pozi vanje. 712 cilj, 204
koprocesori, 563-577 asocijati vna mernorija, 442, 526
blizanac, 630 ciljna biblioteka, 539
rnrdni procesori, 564-571 AT Attachment (AT dodatak), 84
hlok koji pocinje simbolom, BSS, 717 ci ljni jcLi k, 505
multimedijski procesor, 571-576 ATA~3, standard, 84
blokirajuca mrda, 596 CLUT tabela, 574
multiprocesor, 577-606 Atanasotl, John, 15, 17
BlueGene/L, 612-616, 619-620 CMYK stampac, 113
multiprocesor na jednom cipu, ATAPI-4, standard, 84 COBOL, program na jcziku, 35
Blu~Ray, 99
558-563 atrakciona memorija, 605
bod, 115 CO LOSS US, 16
multiracunar, 606-641 automatsko smanjivanje, 705 COMA. rnultipruccsori. 'i:-\3, 605-606
autornatsko uvccavanjc, 705 Boolc, George, l 36
paralelizam na nivou instrukcija, Control Data, koqJoracija, 20
Brattain, Walter, llJ
545-552 CorcConnect, 5h l
broj instrukcija, u odnosu na RJSC 57-5::1
paralclizam na procesorskom cipu, B C:P/:VI, 23
hrojac lokacija, 717
544-563 Cra;, Seymour. 20
Babbage,Charles, 14-15 broj:1C' lokaeija sa instrukcijama. !LC,
taksonomija. 582-584 Cray-l, 21,55
hafcr, kru,:ini, 459 521
visenitni rad, 552-558 CRC. ciklicna provcra rcdundansc, 212.
bafer za praccnjc odrcdista skokova, 311 brojac mikroprograma. MPC 23'J
arhitektura racunara. 7 21 h, 5()6
hafcr za skladistcnjc prcvoda, TSB. 449 brojacki rcgistar. ex. 6')7
kljucne tacke razvoja, 13-26 C:rvcna k.njiga. l) l
haferovano pro:,lcdi vanjc poruka, 626 bro.Jl:<ll1i sistcmi date osnovc. 6 73 ~6 7 4
arhitektura s tri magistrale, 272~-273
bajt, 69, 333, 703 hrojcvi konacne tacno'iti, 6 71-6 7 4
arhitektura skupa instrukcija, 6, 693
805 I, 342- 345
13ardecn, John, 19 brojevi u formatu pokrctnog 7.arel~l, c
Baycrov filtar, 124 6::13-691 ct:Lmjc na oslubJ<LIIJC resur-.a, 3C\2
Pentium 4, 337-338
baza, 134 BTB. odredi~ni bafer grananja. 31 I l-ip. l4_o
UltraSPARC 339-342
bazni rcgi:,tar. 697 Bulova algebra. I :i6-lJS cvr'lll >pn:gnuti P~lr:tlclni proecc>Ori,
arhitektura ucitaj-~uskladisti, 342
BCD. sema, 67, 703 BlliT<)llghs 8500\J, 21 :Vl:VIP. 5S-l, 611 h2U
aritmeticko kulo, 150-154
Bcchtnlshei m, Andy, 41 Byron, lord. 15
aritmcticko~logicka jedinica, 6, 50-'i2,
153-154
hc/bcdnosni deskriptor, 4:-19
bczbednu:,ni idcntifikator, SID, 4:-\9 c
c
aritmetika. hinarna, (J7'J <'clija mcnwri_ie. (J 7
bezg1ava radna stanica, 621
aritmetika brojcva u komplemcntu CCD 'cn/c)r, 123
,big cndian'' raC:unar. 69
dvojke, 67S CDC 66CU, 13, 20. (<2. 3()2, :'63
binarna aritmctiLt, 6 7'J D
ASCII krxL 125-126 CDC Cyber, 55
binarna imtrukcija. 374-.375 D kc, !58
ascmbler. 7, 506,520-527, 6<.J4 cn~R. 'J4
binarni hrojevi, 6 71-6::1 I J,\t,Jteka, -15 1--+~ 7
8088, 716~-721
negativni, 677-678
c [)~ ~~ 0 [\.!, 90-'>4
d;;t,Jtd:.a -;a dJ.jc!dni Ill kodum. 7 UJ
drugi prolazak, 524-526 prepi:,i vi, 97
prctvaranjc iJ: jednog hrojcanog dav~,lac [nternet uolug,t. JSP, 565
prvi prolazak, 520-524 ..;cktor, 93
sistema u drugi, 67J-677 ~ DDR SDRA'\L !69
tahcla simbola. 526-527 -.tan. 96
asemblerski jezik, 506-51 <.J. 693-696
sabiranjc. 6 79 ! .\ ,\, l))
Je!x·lo sta!Jl,l. 611)
binarni program, 694 Ui:C Alph;t. 25
8088.716-721 ( l~:eron. Jl)
binarno prctra2ivanje. 526 . ' . . 1· . 4'~ D\T PIW~I. l'J
naredhc. 510-512 .:.:!1JDrt.:Jna J 1 ~\ 1:nca,
BIOS, osnovni ulazno-izlami sisten1, R3 Dl::.C P!JP-;~, I'J
osohinc, 50(J-507 c,·,JL(,llni ret(nnar. 35
bipolarni tranzistori, 136 J1U_' VAX. 55-)h
pseudllin.-;trukcijc. 513-515 L''-~nrr::.lni LJZ\·cdnik. 1 i " 1
bisckcioni propusni opscg, 609-610 dccimai~mbroj. 7 I X
za~l<l ,C!a trcha kori:'.titi, 507-509 cik.Jus illclglstr~lk, 177
topologija, 6())'1 -61 1 dekmkr. l47
:\SIC, c1p, 56 7 cikluc, i)r,·uzmi-izvr;L 22:-;
bit, 66-67,674

_.,
754 Spisak tcrrnina koriscenih u knjizi

sirokopojasni broadbwul upucivanje iz store-to-load


tabcla globalnih Global Dn·criptur skladista na
deskri ptora 1l1ble, GDT ucitavanje
tabela grananja branch tahle urez (na povrsini pit
tabela istinitosti truth table CD- a)
tabela lokalnih Local Descriptor uticnica socket
deskri ptora 1c1ble, LDT uvijen nematicki 1kisted Nematic,
tabela rutiranja routing table kristal TN
tabela stranica page tahle uvm:na bibliotcka import library
tabela za prevodcnje tmnslution tuh!e vektor prekida interrupt vector
tabela za
usmeravanJc
dispatch table vektorski procesor
vcktorski registrar
vector processor
vector register
·INDEKS
tacka ukrstanja CriJSSJN!lflt vezni segment linkage segment
tankoslojni thin .film transistor virtuclna masina virtual machine
tran;:istor virtuelna memorija \'irwal memory
tesno spregnut tig/lllv COIIJ!Ictf , viscnitni rad na cipu on-chip
test brzine, hcnclwwrk mull itlzreadi11g
rcferentni test viscnitni rad niske coarse-grained
tok strewn rezolucijc nutltithrcading
tok i;:vr~avanja .flow o{control visenitni rad visokc finc-gruincd
A akti\'llo(koloJ, 158
torba s poslovima rasf.. hag rczolucijc multithreading
akumulator, 18, 320, 345, 697
torka tuple visestepena multistage aditivna invcrzija, 376 alguritam, ~
trajna brzina prcnosa sustained rate komutaciona swirclzing adrcsa, 6 7, o96 algoritam za hranjcnje beba, 432
transparentnost 1rr IIISJH 1rc 1u ·v mrcza rWtH'Ork mcmorijska, 67~69 algoritam za zamenjivanje stranica,
tn:siranjc thrushing vrcme vezivanja hi/1(/ing time adresiranjc, 350, 359 43--1--435
trostaticki uredaj tri-state device vremenska lukalnost
r /e!llf)()l'lll localitv K05L 371 ~~~0, 435
tuncl wormhole vrcmcnski prucep dc!ar slot XOS8. 702~705 LRU, 434
ubudna (vampirska) vumpire lup zaglavlje header direktno, 35'J Alpha, 25
racva zaokruzi vanjc rounding indeksirano, 361 ~3ll2 Ai\IBA. 5b3
udaljeno pozivanje ji1r cull zastareli podaci stale data indebiranu, hawo, 363 Amdahlov zakon, 639
udaljcnost, pomcraj ofY:w' 1 zastoj stalling indircktno, 360-36!, 70--1- amplitudna mpJulacija, 115
ulancavanjc uredaja duisr chaining zastupnicki Web f>roxv Wc!J server indircktnu, registarsko, 360~361 am~tcrdarnski komplet za prevodcnje, 717
ulazna tacka entrv poillf server logi.::kih blokova, LB;\, S4 analilicka masina, 14
unakrsni prekidac crosslwr switch I zastitlla hari_jera jire1mll na steku, J63-36<l A PIC programabilni kontrolcr prckida.
unarno monudic zauzi manje \\'rite allocalion ncposredno, 350 llJO
univerzalna scrijska Universal Serial ndrcdnice PeruiunJ4, 369-370 1\ppk [[, 23
magistala Bus, USB zavisnost citanja Rciiil Ajier Write, pnmcr~mje, 70--1-
Apple i\lacinrosh, 2--1-
upravljacka memo- ('{!f!/ml slorc od upisivanja RAHi rcgistarsklL 359 apsolutna pulanja, 483
rija, upravljacko dcpenden,·c U ltraSP ARC, 37 I arbitar magi-.trale. I 0 I
skladisrc zbirni propw,ni uggregnte adrcsni pmstuL 427 arbitriranje nwgistralom, 181 ~I ~4
upravljacki program device drinT upseg hwlLhl'idth ,\GP magistrala, 203-20--1- PC!, 205
,r,a uredaj, Jrajver zeton 10/..cn Aiken. Howard. ln

755

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
'~

760 Indcks lndeks 761

I implicitno povezivanje, 538 lntelov Cip 4004, 36-37 ivica impulsa, tlip-tlop reaguje na, 159
indcks datotcka, 454 Intclov cip 8008, 36 izbrisivi PROM, EPROM, 43, 169
IA-32, 337
indcks izvmista, Sl, 700 lntelov cip 8051, 197-199 izvoriste (operand), 702
IA-6.f.410--41Y
indeks odredista. DL 700 adresiranjc, 371 izvorni jczik, 505
model EPIC, 413
indcksiranjc hoja, 107. 574 formati instrukcija, 357-358 izvrsavanje instrukcija. 52-55
predikacija, 416--418
indcksno adresiranjc, 361-362 instrukcije, 390-392 izvrsilac, u Windowsu XP. 473
rasporcdivanjc instrukcija, 414--416
imkksno Gdrcsiranjc, bazrw, 363 istorija, 43--44 izvrsna binarna datotcka. 716
spekulativno ucitavanjc, 418--410
indikator pariteta, 709 mikroarhitcktura, 320-322 i;.vr~ni binarni program, 505, 528
svdanj instrukcija, 415
indikator smera. 705 prcgled nivoa lSA, 342-345
I-cvor, .+84
!HM, 18, 20--22, 200
imlirektni blok, 485 tipovi podataka, 34l) J
indircktno dostupna infonnacija. 456 lntelov cip 8080, 36-37
IBM 360. 21-23, 26, 563 Java. 7
indirektno rcgistarsko adresiranje, Intelov cip 8086, 36-37
IBM701, 10 .lavina virtuelna masina, :227
360-361,704 Intclov cip 80286, 37
IBM 70.+, llJ jcdinica za dckudiranjc. 286
Industry standard architecture, IS A, I 02, lntelov cip 80186, 37
IBM801,56 jcdinica za dodcljivanje/preimcn<JvanJe
201 Intelov cip 80486.37-38
IBM l.f01.20,21 Pcntiuma 4. 31 I
infiksna notacija. 363 lntelov cip Celcron, 39
IBM 70lJ4. 20. 26 jedinica La dovrsa v<tnjc, 314
infonnativni dclovi standarda, 332 Intelov cip Xeon, 39
IBI\1 PC, 23, 27 jcdinica za inlavanjc instrukcija, 315
inicijator. PC! magistralc, 204 mrczc za intcrnt> povezi vanje
magistrala. 200 jedinica za prcuziman1c im,trukcija,
instrukcija, 336, 372-39.+ komponcnata multiracunara,
pocctak, 23 273-277
8051' 390-3lJ2 607 61 I
IBM PS/2. 201 jcdinica za svrstavanJC u red cekanja, 2~6
binarna, 374-375 intcrfcjs jedi nica ta upra v ljanjc memorijom,
IDE. standard, 83
koja radi s bajtovima, 703 za graficke uredajc, u Windowsu XP.
identifikatur objckta, 475 \li\[Ll, 430
koja radi s reC·ima. 703 474 jedinica za vremensk<J raspnrcdivanje.
IEEE standard za format pokrctnog
rasporedivanjc. 414--41 (J ;a male racunarskc sistcnJC. 85-:->6
zaraa, 686-6l)() 313
t:a grananjc, 377-378, 3tJ4-3l)5 za programiranjc apiikaciia. 475
IJVi'vl, 227-228. 242-251 jedinstVt:n kt:~. 77
za poredenje, 377-378 za pruskdi\anje rhlruka, :\11'1. 627
Java k{\d, 250-251 jednohitna ,ckcija. I 5.f
;a prcmcstanje podataka, 373 interpreter, 2. 52-53, h')4
mcmmijski model, 24.+-246 ydnnsta v naCO!\ li'\. (J0(J
za upravljanjc pctljom. 379-3<-10 interprctiranjc. 2--4
Mic-1 realizacija, 256-26:-l jezgro . .f/J. SSS
instrukcije inverter, 135
Mic-2 rcalizacija, 268-277 jc!lk. 1
poredenjc skupova, 3lJ0-394 invertujuci hafcr. I h5
i\llc-3 rcalizacija, 277-286 _iczih visukog nivoa. 7
za puzivanje procedure, 378-379 inwrzioni kru/ic'_ I 35
l'vlic-4 realizacija, 286-28') i asemblerski juik, 507
za premcstanjc podataka, 373 IP protok,JI. 56(>
okvir lokalnih promcnljivih, 2.f5 Jobs. Stc~vc. 2.1
za ulazno-iz:la.me opcracije, 38 J- 384 IP zagiavl_ic, 566
pudrucje rnctmla. 245 JOH~L\C. 17
integrisano kolo, 2 I, 1-rl- I45 !SA m:Jgistral<l. 21lU -20 I
podrucJC promenljivih. 245 Juv. Bill. .fl
Intel 8088. 2.+. 37.337, 6')6-700 istorija
JPEG. iurm~tr slikc. 124
putanja pudataka, 229-231
adrcsiranjc. 702 -71l5 1t).f5-llJ55, I 6--J'I
rad mcmorijc. 233-235 JTAC. standard. 57.'
asembler. 7 I 6-72 J I'J55-l'J65, 1'!-21
skup inotrukcija, 246-250
organizacija mcnwrijc. 701--705 1965- I ')KIJ, 2 I -2_;
stek. 2.+2-2.+4
I ')80-d~uJas. :23-2'i
K
pri meri programa. 726-7 4.f
stck opnanada. 2.f5
simulatur. 722--725 korporacije !ntcl. 36-+1 Lthim-;ki lnkrn.:'l. li'J-123
vremensku raspuredivanje dogadaja.
skup instrukcija. 706-7 I 6 korporac·ijc Sun :Vlin>S\ slcll\s. 41-42 kasnjcnJc. 60
23 I--23J
InteL kurpur.tcija, 36 raCunarsk.i ~i~tc~n1. ~h k~t~njr:njc· logi~:kt)g kola. l-l-5
!ILIAC. I 7
In rei 8255r\. 2 I 8 ltanium 2 . .f!O-.fllJ kat:tlot: ,rranict, 4.+5
ILLL\C IV. 63-(J5, 5:->2
758 lndeks Indeks 759

dckodiranje adresa, 219~220 disketa, 82 Electronic Discrete Variable Automatic fragmentiranje


deljcna biblioteka, 539 distribuirana cleljena memorija, DSM, Computer, 17 spoljasnje, 440
deljena memorija, na nivou ap1ikacije, 580,629~630 Electronic Numerical Integrator And unutrasnje, 436
629~636 cliv1ja macka, 619 Computer, 16 frekventna modulacija, II 5
DcMorganovo pravilo. 140~141 clodatni segment. 710 emiter, 134 funkcionalna jcdinica, 62
dcmultiplckser, 147 dodc1jivanje upisivanja u kes, 295. 591 emiterski spregnuta logika, ECL, 136
denonnalizovan broj, 688 dogadaj. 497 emuliranje, 22 G
deskriptor datoteke, 480, 714 do1azna obrada, 569 end ian, 69~ 70
gama iii opscg boja, 113
dcte (potomak), 491 doslednost redos1ecla (pristupanja big, 69
generisanje koda, 7 17
dibit, modulacija, I I 5 mcmoriji), 585~586 little, 69
generisanje kopije po upisivanju, 477
difercncna masina, 14 doslcdnost uz os1obadanje, 587~588 Enhanced Host Controller Interface,
g1avna tabcla datoteka, MFT, 489
Digital Equipment, korporacija, 19, 21, dot (brojac 1okacija), 717 EHCL 217
glavni uredaj na magistrali, 174
55 dozvo1a za pristupanje magistrali, ENIGMA, 16
globalna oznaka, 718
digitalna pretplatnicka linija. DSL, 181~182 EPIC, 413-419
Globe. 635~636
117~119 clrugi prolazak, 717 epilog procedure. 399
Goldstine. Herman. 18
digitalni fotoaparat, 123~ 125 dugacak skok, 710 epimda, 427 Googlc, klastcr racunara. 621~625
digitalni video disk, 97 dugacka rec (long), 698, 703 Estridge, Philip. 23 graficko korisnicko okruzenjc, GUT, 2A.
digitalni viscnamenski disk, 97~99 du/.ina putanje, 269--277 Ethernet, )64
--170
dimcnzionalnost, 610 dvojina, 140 evolucija racunara, 8~ 12
grananje, 394~395
dinamicka datoteka. DLL datotcka, 536 dvostruk (double). 698 Extended !SA. EISA. 102. 20 I
greska prckoraccnja donje granicc. 685
dinamicka mcmorija, 168 dvostruka tacnost, 346
grupa in,trukcija. 415
clinamicko povezivanje, 536~539 clvostruki pokazivac, DPTR, 320 F
dinamicko rclociranjc, )33~535 dvostruki torus. 610
DIP, paket s dva recla nozica. 144 dvostruko indircktni blok. 485
farma scrvera, 35 H
fa/.a paraklnc obradc podataka. 5')
dircktan pristup mcmoriji, DtviA, 101, Hamming. Richard. 2X
fazna mudulacija, I 15
383 E Hammingov ki\d, 73~74
lilt~u·. 4S 1
dircktiva asemblcru, 5 13 Hammingovn rastnjanje. 71
Eckert, .1. Prespcr. 16 fizicki s1oj, 212
clirektno adresiranje, 359, 703 Hanoj,kc kulc. --107-410
EDO memorija. 169 iles memorija. 170
din:ktno dostupna datotcka. 490 Pentium. 407--408
EEPROM. 170 llip-tlop. 159~161
dircktno doslupna informacija, 456 UltraSPARC. 408.410
efektivna adresa, 705 Flynnova taksonomija. 582-5S3
dircktno kdiranje. 295. 590 hanlver. 8
ElDE. standard. 84 forrnalni paramctar, 5 17
direktno pres1ikan ke5, 292 ckvivalentnost sa softvcrorn. 8
ekran formati instrukcip, 350~3 72
direkturijum. 456--457 harverdska arhitektura, 77
s pasi vnom matricom. I 06 S051.357~35S
disk, 71<:~99 harcivcr<,ki DSi'vL 597
s tccnim krista1ima, I 05--106 JS:\ nivo, 350~353
CD-ROM, 90--94 hazardi. 284
sa akti vnom matricom, I 06 Pentium --1. 355--3)6
DVD, 97~99 hcksadccimalan. 673,718
sa uvijcnim nematickim kristalima, pmJd;,tni kritcrijumi. 350-Ti2
IDE, 83~85 hdiranjc
TN. 106 U!traSPARC, 3"i6~357
magnetni. 79-90 High Sinra. 94
eksplicitno povezivanje. 539 Forrester. Jay. IS
opticki, 97-99 hijerarhija mcmorijc, 78~ 79
eksponcnt, 684 FORTRAN. 9-11
RAID. 86~90 hiperkocka. 611
ekspresna PCI magistra1a. 209~213 FORT!.:AN monitor -;ystcm, FMS. lO--ll
SCSI. 85~86 hiperniti, 556
ek vi valcntnost clcktronskih kola. fowaparat. digitalni, 123~ 12)
Winchester, 81 Hoagland. AL 28
140~143 FPGA, cip, 567 !luff, Ted, 36
FP!\i mcmorija. 16S

.----*.
764 Indeks lndeks 765
--.
sekundarna, 78-99 mikruuperacija, 286 s magistralom, 589-594 nivo, 2-7
SRAM, 168 mikroprogram, 6, 697 sa unakrsnim prckidacima. 594 nivo arhitekturc skupa instrukcija, 6
virtuelna. 426-450 mikrnprogramiranjc, 8 multiprogramiranje, 22 nivo asemblerskog jezika, 505-542
memorija s direktnim pristupom. RAM, istorija, 11-12, 24 multiracunari, 66, 579-582. 606-641 nivo digitalne logikc, 5, 133-226
43, 168-169 MIMD racunar, 582-583 BlueCiene/L, 612-616, 620 kola. 143-156
dinamicka. 168 MIPS k laster Coogle racunara, 621 -625 logicka kola. 134-143
SDRAM, 169 cip, 56 MPP, 611-612 magistrale, 213-217
staticka, 1(J8 skracenica, 58 Red Storm, 616-620 memorija, 156-170
mcmorija samo za citanjc, ROM, 43, MlSD racunar, 582-5S3 zasnuvani na razmcnjivanju poruka. povezivanje ula;.a i izlaza, 217-220
169-170 mis. 107-IOY 60(J-64l pmcesorski cipovi, 171-173
rnemorijska adrcsa, 67-69 mlazni stampac. I !0 muteks. 493 nivo impulsa, 159
memorijski cip, 165-168 mnemonik, 694, 716 ;VIyhrvold, Nathan, 27 nivo ISA, 6, 329-424
mcmorijski modeL 333-335 mmlelumnozenog radnika. 633 adrcsiranje, 358--372
memorijski pakcti. 77-78 nwdcm, 115-117 N formati in~trukcija. 350-.158
rnernorijski pn:slikan ulazno-izlazni mmlulacija, 115 lA-64, 410--419
n~Jcin adrcsiranja. 35:-\--372
urcdaj, 21Y amp! itudna, I 15 pregled, 331 -345
MESL protokol za odr/avanje 805 l. 371 tipovi instrukcip, 372-394
fa;na. I 15
bazno imleksirano, 363
kohercntno~ti kesa, 59 2- SCJ4 frck vcntna. l 15 tipovi pmlataka, 346-349
direktno. 359
metoda. 37X nmnitor s ravnim ekranum. 105 -106 tok izvr~avanja, 394-410
mctricke jt·dinicc, 45 indeksirano, 361-362
J\luun:. Gordun. 2f> nivo mikroarhitckturc. 6, 227-327
iVlic- L 237, 256-268 na steku. 363-366
IvlourcclV ;akon_ 26-27, -l-0 IJYM. primer skupa instrukcija,
putanja podataka. 238 neposrcdno. 359
i\1()S tchnulogija, IJ(J 227-289
realizacija. 256-2(18 Pentium 4, 369-3 70
Ivlotil, 470 kes mcmorija, 28'J-2Y5
l\lic-2. 277-.2X(> rcgistarsko. 359
l\lclltlWia 6:-1()()()_ 55 prcdvidanje programskog skoka.
UltraSP,\RC Ill, 371
putanja p<Jdataka. 278 :\li'EC!-2, format, 5(,1) 2Y6-301
;a instrukcije grananja. 366
rc~di!.<k'ija. 277-278 nlrL/.a .~irukug Pp~cga. rcginn<-dna nlrL~L~. primcri. 308-322
lVlJc-J. 281 zavrsnc napomenc, 371-372
W.\N. 'irA projektovanje, 268-289
,najbolji pogodak'', algoritam, 441
putanja p()(L\taka. 2:-l2 1nrczr~i intcrkj.,, N ID, I I X nivo opcrativnog sistema racunara. 6.
realizacija. 281--286 NaN (nijc broj), 6YO
rnrc!ni jlroc::sori. 5h4-57l 425-503
Mic-4, 21\6-289 Narand/.asta knjiga. 95
C\ IS-DOS. 24 nivo uredaja, 5. 134
Nathanov prvi zaknn softvcra. 27
putanja pml:ttaka, 287 1\lULTICS, -l-42 NORMA racunar, 5))4
real izacija. 2i;C-2XlJ neblokirajuca mrda, 594
llJU!:itTJL'dij~i-_j prtJL'e~lll"i, 571-57(> normaliLovan broj, 6))6
'\1 icrosort, kllrpc >racija, 24. 4 70-471 ncgativna logika, 143 normativni dclovi standarda. 332
rnultipicLrrana lll~lgistr:t!a. ! 17
mihoarhitckt ura neinvertujuci bafer, 164
rrJ~dl!plek:-,cr, 1--l-5 noseci signal, 115
nekoherentni NUMA multiproccsori.
805 I. 320-322 mulliplc:La pri:-.tupa digiLilnnj n-tostruki set-asocijativni kd, 294
Pentium -1-. J(JlJ-.114 597-598 NU:YIA multiprocesori. 51\3, 597-605
pr:.'lpLttnickoj !iniji. DSLA:\1, I IS
l!ltr~t.Sl)\l:C 314-320
neposredni operand. 35Y
:\lulripk.\.:d lnl-.-mnatiun anJ Compt.ting s kohercntnim kesmn, 598--605
mikroa:<cmhicr. 252 nepo'iredno adresiranje. 35lJ, 705
Servi<->~ I"!ULTICSJ. 536
rnikrodisk. 124 nesimetricnost magi~trale. 176
multipruccc;ori. 65-6h. 316. 577-601>
Netburst mikroarhitcktura. 309-314
0
mikrc1instrukcip. 55. 235 2T7 kujr ckk memur·iru. 577-606
nevidljivi racunar. 25 objcktni modul, 532-5.13
OLnaC·avanjc, 252-25f> lLI.icdin..-,lvenoJn Cipt!. :'Sh-.:-163
neviJlj i vost ( transparentnost). 405 objektni program, 505
mikn,J.;ontmlcr. 31 J2 s katai~.)gorn. 5~J<J 605
Nexperia, 571-576 obrada sistemskog prekida, 101
mikrukurak, 2X3 .') kt~tnuLacilH10nl n1rL·L:nrn. S'J-i--5\)/
nib!, 3:-\5 obrnuta poljska notacija. 36_1-]66

_..,j
763
,.
·~
762 lndeks lndeks

katodna cev, I 04 kolektor, 134 leva vrednost, 702 majusni model, 721
kes blokova, 460 kolo licni digita1ni pomocnik. PDA, 25 makro, S IS-S ll)
kd memorija, 38, 74-77, 290-205, aritrneticko, 150-153 licni racunar, 33 definisanje, SIS
58()-504 kornbinaciono. 145-150 linda. 631-633 implementiranje, S I 0
direktno preslikana, 2lJ2-204 komandno okruzenje, 470 linearna adresa, 444 operativnog sistema, 11
direktno upisana, 295 komparator, 148-150 linija po incu, !pi, 1 12 pozi vanje, 5 16
dodeljivanje upisivanja, 205, 59! dckoder, 14 7, l4R linijatura (gustina rastera), I 12 prosiri vanje, S 16
jedinstvena, 77 rnultiplekser, 145 lista slobodnih mesta, 455 makroarhitektura, 242
koja osluskujc, 580-502 kompatibilnost sa starijirn verzijama. lista za kontrolu pristupa, 4WI MANIAC, 17
MESI, protokol, 5()2-504 330 literal, 522 mantisa, 6R4
nivoa2,201 komplerncnt jcdinice, 6 7X ,.little end ian" racunar, 69, 703, mapa bitova, 347
odlozeno upisana, 205 komunikator, 627 logicki raspored izvoda, 17 I mapa memorije, 428
povratno upisivanje. 295, 592 komutaciona rmda. 5()4-507 logicki zapis, 452 Mark I, 16
razdvojena, 77, 200 kornutiranje paketa, 565 logicko ko1o, 5, 134-136 maska, 374
skupno-asocijativna, 204-295 konacni automat 1okalna mre:la, LAN, 564 maska alfa kanala, 574
strategija azuriranja. 50 I jcdinica za prcu.cirnanjc instnrkcija, lokalna oznaka, 718 MASM, 510
stratcgija ukidanja vaznosti. 5LJ I 275-276 lokalna tclefonska linija, I 17 mastila na bazi hoje, 114
vise ni voa. 291 predvidanJe programskog skoka, Lovelace. Ada, IS mastila na hazi pigmenta, I 14
za podatke, 3 15 .209-300 LRU, algoritam, 2')4, 434 masina s vise nivoa, 4, 8-12
za prace njc, 3 10 konstanta rclokacije, 530 mas ina za stampanje, 112
za prethodno prcuzimanje. 315 kontekst, 44X M masinski jezik. I. 6'>3
Khosla, Vi nod, 41 kontrola toka, 212 matricni stampac, 100
Macintosh, Apple, .24 Mauchley, John, 15-17
Kilda!L Gary, 23 kontroler. I 00 magistrala, !0, 4(), 100-102, 101-1()2,
klasicna usluga prenosa glasa. POTS, I 17 kontrolcr diska, ~2 McNealy, Scott. 41
199-217 MCS-51. porodica cipova. 43
klastcr km11rolni kCKI, 355 AGP, 203-204 meduprocesni kana! (cev), 492
Ciooglc. 621 625 koprocesmi. 563-577 asinhrona, 180-1 XI medusektorsk i razmak, RO
NTFS, 400 korisnicki rcLim r~1da, 333 ElSA, 201 rnemorija. 156-!70
radnih stanica. COW, .H-35. 584. koristan terct, 211 IBM PC. 200 X088, 70 1--705
6.21 -6.25 korutine, 400-40 I IS A. 200-20 I asocijativna, 442, 526
klon, 24 kraua ciklusa, I 0 I. 3X4 rnultipleksirana. 177 atrakciona, 605
klJuc. 454 kratak skok. 7 I 0 nesirnetricnost, !76 DDR, 160
kljucnc tal'ke razvoja arhitckture kripwpmccsori, 576-577 .. ~

PCL 201-208 DRAM. l6X


racun~lra, 26 kriticno podrucjc, 496 PC! Express. 200-213 EDO, 169
kocka. (J II
Pentium 4, 101-1 ()2
J.-:i\d uslova, 33h EEPROM. 170
L prcnos blokova, !84-1 X6
k6d za ispravljanjc gresaka, 71-74 EPROM, 169
Ll BTB. 311 protokoL 173 tlcs, 170
k,xJiranje znakova, 1.25-128
!aha\'() spreg:nuti sistcmi. 544 sinhrona, 177-179 FPM, 168
kodna rec. 71
bserski :itampac, I II usag1asavanje, 181 kd. 3X, 74-77,290-295, 589-594
kudna strana. 1.27
Latin-], 127 USB, 2!3-217 osnovna, 66-78
kudna tacka. 127
la.i:rw dc·ljt'njc. 6.i0 za pcriferijske ureuaje, 562 PROM, 169
kofica. 5.27
lee. 156--ISS za pristupanje registrima ureuaja, 562 SDRAM. !6LJ
kohercntnust kcsa, 500
Lcihniz. Gottfried. 14 magnetni disk. 7()-90
knlekrivni .sloj. 643
-..,..
768 lnd~ks lndcks 769

predikacija, 416-418 proccsor matrica, 63-65 protokul za razmcnu hipet1eksta, HTTP, rasporcdivanjc posla na multiracunaru.
pred vidanje programskog skoka, procesorska doslednost. 586 565 628
2lJ6-30l procesorska magistrala, 562 protnkol za uprav ljanje prenosom. TCP. rasterizovanje. l 12
dinarnicko. 2lJ8-300 procesorski cip, 17 [ -1 73 565 rastersko skeniranjc, 104
staticko, 300-30 l program, l zaglavljc. 5h'i razdclnik. l 18
prefiksni hajt. 263, 355, 387 na ascrnblcrskom je;.iku, 716 prsten, 610 razdvojeni kd, 77, 290
preimcnovanje registra, 301-306 PSW, 320, 336. 4-+6 prvi prolazak. 7 l 7 raz1omak. 684
prckidacka algebra, l36 za povczivanjc, 528-539, 7!6 .. prvi pogudak --. al:>ritam, +-+ l realni rdim rada, 337
prekidna tacka, 724 programabilni logicki niz. l4X-150 .,prvi unutra- prvi il,lpuljc", algoritam, rcc. 6l), 703
prckorcdni bater, 311 prugramabilni ROM, PROM. 169 435 red kc:Sa. 76, 292, 590
prckoredno izvrsavanjc, 30 l-306 programerski poziv. II pscudoimtrukcijc~. 5 13-5 15, 694" 719 Red Storm, 616--620
prclaz, 7.75 programiranjc na ascmbkrskorn jeziku, putanja, 483 red za poru kc, 492
prenos blokova magistralom, 184-186 6')3-696 putanja pudataka. 6. 50. 229-242 rcdundantni niz jeftinih diskova, 86~-90
prepisivi CD diskovi, 97 prcgkd. 694-696 Mic-1, 238 Reed-Solonmnov ki\d, SO
prepletena rnemorija. 597 programit·an ula;./izlal. 381 Mic-2, 278 refcrentni test, 50S
preplctcni signal. 575 pmgramska klopka. 402. 707 Mic-.1, 282 rcgistar, 6, 161. 335-336. 696
pretvaranjc broJcva i; jednog hrojcanog programska nil. -+92 i\lic-4. 287 rcgistar H. 238
sistema u drugi. 675~677 pmgramske p-niti. 493 vn.:mensko rasporcuivanje dogadaja. rcgistar instrukcija. 50. 320
preunni-dekodiraj-izvrsi. ciklus. 57. programski bwjac. PC. 50. 2JS . .'20. 696 2Jl-233 registar mikroinstrukcija. MfR. 239
prcvazidcna magi strala. 188 prngramsko vlaknu. 495 putanja s paralclnom obradom podataka, rcgistar opste namcne, 697
prcvmli laL·, 505 pmgrc:-;ivnu skcniranje. 575 _., 2SI regis tar pomcrac za istoriju grananja. 30C
kompajlcr. 7. 506 prola1. za pm:ive. 447 n:gistar s kmlovima uslova. 700
s dva prolaska. 520 pro!:v:lk asemblcra. 52() R registar sa indikatorima ..136, 700
prevodcnjc, 2-4 pn,log proccdttre. _illl) rcgistar sirinc bajla. 703
prijcrnnik signala s magistrak, 175 r<tl'unai· I \S. 17
pn>nta;aj kc~a. 29.1 rcgistar sirinc rcci, 703
rctcunar prv e generacije. 16-19
prikrivanjc kasnjcnja. 641 pmmasiv<mjc stranicc, ~[32 registar za adresiranjc memurije. 233.
ra.:u:iar sa slo/.cnim skupom instrukcija.
primnpn:dajnik signala magi,trak. 175 prt'IIIC11ljiVa Lhll>v:\. .fl)4 238
princip lnkaln<hti. 76. 433 CIS(, 56
pr•1pu.sni op.'>C,Z proc2sora. (J(l registar za bafcrovanjc mcmorijskih
r::.:un<:r :-.a smanjcnim skupnm
principi projcktovanja. RlSC, 57-58 pro"lcd!va:ljt' p()ru:":~. h2(1 podataka. MBR. 235, 238
in.,tru]-:c:ija, RfSC. 'i6
prirucna bihliotcka. 53'! prustor ti;ickih adrc:,a. -r2X rcgistar za memorijske podatke. 233. 23~
prirucni hafcr. 59 i ClSC, 56-57
prostur l<lrki. 6.)2 rcgistar za opkod, OPC, 238. 257
prisluskivanje kL'.~a. I K7 i'rinc.:ipi prdJCktovanja, 57-58
registar za podatke, DX. 6l)8
pristupni /eton. 489
[iiPsLur virtuclnih aJrcsa. -+2:-\
pro,r,)rna lokalnost. 29 l i raCi11u:·i ..:'ctvrtc gcncracije. 23-25
raCuturi druge gcneracije, 19-21
rcgistarski prozori, 341
prisulan signaL l 66
problem 2000. gudine . .\5
pn\~iriva a;·hitektura proccstlra, SP.-\RC'.
-+1-42
f
f
r,t(·un,tri trCL'e gencracije. 21-23
registarsko adrcsiranje, J5l)
rcgistarsko adrcsiranje uz indcks, 704
f' raCunari za igranjc . .\2
problem pruizvodac-rotm,<tc. 45l) pn)~iri·vanje upkuda. l5.2--J55 registarsko pomcranje. 704-705
problem referenciranja ut;~q;rcd. 52() pr<1sin\ anJC znaka. 2J.~ i ra,::u:urikt zverinpk. 26-~35
raCunski ccntar, 23
rckurzija, 379
problem relociranja. 5.ilJ
prucedura. :'95-4()0
protukol, ! IJ. 21 i. 565
~ radi<1]r,·k 1 cntna identi rikacija. 2lJ- 3()
rckurzivna procedura, 395
prdtl)k_ol n1agi.-drak. l7J relativna grdka, 685
za ohradu gr6kc. 4112 r<:dni d:r<:kturijum, 483
prntukul ;a lnlcrnct, !iJ. 5!1(, relativna putanja. 483
proces. 426 rad:ll skup. 432--+34
pn,k•kPl ;a udr/av<mjc kohcrcntnosti rclociranje, dinamicko. 533-539
pruces asemblirallJ'I. 52() -527 radni taU. l 55--156
k,·~a. 590 rc;ctka, (Jl 0, 642-64-+
procesor. II( 49-57. 171 173 ~lESl. 592 ~5lJ4
t
t
raspid. f.ll8
rczcrvisana stranica. 478
:

I
'r
J
766 Indeks lndeks 767
, -· :~

OCP-IP, 563 osvdavanje memorije, 15. 168 instrukcije, 384-387 poludupleksna linija, [ 17
odeljak za podatke (DATA), 717 otrovni bit, 308 istorija, 38--41 polusabirac. 15 1-152
odeljak za tekst (TEXT), 717 otvorena arhitektura usluga u resetkama, logicki raspored izvoda, 180-1 tJ I poljska notacija. 363-366
odlazna obrada, 569 OGSA, 644 magistrala. 19 1-192 pomerac, 151
odlozeno kesiranje, 295 otvoreni kolektor. 175 mikroarhitektura, 309-314 pomocni indikator prenosa. 700
odrediste (operand), 702 m:naceni moduli, 677 prcdstavljanje, 36--41 popunjena stranica, 4 77
odredivanje rastojanja, 121 oznaka, 694 preglcd nivoa ISA, 337-338 poredenje arhitekture, 322-323
ograniceno deljenje rcsursa, 557 pmblemi, 411--413 poredenje i uslovni skokovi, 377-378
oktalni brojevi, 673, 718 p tipovi podataka, 348 POSIX, standard, 468
okvir, lJ2 virtuelna memorija, 442--447 postfiksna notacija, 363
paket, 21 I, 564, 608
lokalnih promenljivih, 243, 245 performanse multiracunara, 636,641 postojana memorija, 169-170
paket selva reda nozica, DIP, 144
stcka, 699 Amdahlov zakon, 638-639 postrojavanje bajtova, 69-70
paket za potvrdu, 212
stranice, 429 hardverski pokazatelji, 636-637 pustansko sanduce, 496
palcta boja. I 07
omega nuda, 595 pobo!jsavanje, 636-641 potprogram, 37X, 712
paralelizam
Omnibus, PDP-8, 19 postizanjc, 639-641 za obradu prekida, 404--406
na nivou instrukcija. 59-63, 545-552
Open Host Controller Interface, OHCI, prikrivanje kasnjenja. 641 potpuna clupleksna linija, 116
na nivou procesora. 63-o6
217 sol'tvcrski pokazatelji, 638-639 potpuna povezanost, 610
na pmcesorskom cipu, 544-563
operacija, 547, 633 peta generacija racunara, japanski potpuni sabirac. 151

I
paralelna ohrada pudataka, 59-61
operacije na magistrali, 184-186 projckat, 25 potpuno deljenje rcsursa, 557
!\.1ic-3. 285
opcrativni k6d. 228 petlja, 379--380 potpunu usaglasavanjc. 181
Mic-4. 280
opcrati vni sistem, I 0, 425, 46 7--4')8 piksel. I 07 potrosac, 459
Pentium4, 311-314
CP/M, 23 PlayStation 2, konzola. 32 potrosna roha, 34
Pentium I. 61-62
istorija. 9-11 podesavanje programa, 509 povezivac, 528
sedmostepena, 286--280
OS/2. 24 podizanJe prograrm.kog koda. 306 povezi vanje
UltraSPARC. 317-320
UNIX, 467--470,476, 480--48(,, podrazumevano adresiranje, 705 dinamicko. 535-530
zaHnj, 297
491-494 podrucje konstanti. 245 MULTICS, 536
paralclna vinuclna ma~ina. PV~1. 627
Windows. 4 70--4 79, 486--49 I. podrucje metoda, 245 objektnih modula, 532-533
paralelni ul;u/izlaz, PIO, 218
4lJ4--4'J7 podsi-;tem okruzenja. u Windowsu XP. poslovi koji se pri njemu obavljaju.
pararnetar makroa. 517
opkod. 228 474 528-531
parcijalno dckodiranje adresa. 220
opseg boja. I 13 podsistem Win32, 475 u UNLX-u. 539
particioni>anje deljenih resursa. 556
opticki disk, 07-99 pogodak u kdu. 293 u Windowsu, 536-539
Pascal. Blaise. 14
Orca. 633-b35 pokazivac, 360 vreme vczivanja. 533-535
PCJ magistral a. 102, 20 l--208
organi;.acija men1orije. 161-165 pokazivac instrukcije. lP, 696. 700 povoljno kruzenje. 27
signali. 206-208
OS/2. 24 pokazivac na lokalne promenljive. LV. povratno kesiranje, 295. 592
transakcije. 208
Osborne-!, 24 238. 243. 256 poziciono nezavisan kod. 535
PDP-I, I')
osnova hmjcanog sistema. 673 pokazi vac na podrucje konstanti. CPP, pozitivna logika, 143
PDP-8. !9
pretvaranje iz jednog sistema u drugi, 238.245.256 poLivanje procedure. 378
PDP-I!, 23
675-677 pokazivac okvira. 338 PPE sklop. 568
Pc1Hium 4. 186-192. 384-387
osnovni ( korcnski) direktorijum. -1-81 pokazivac baze. BP, 700 prava zavisnost. 284
adrcsiranje, 369-J 70
osnovni hlok. 30() pokazivac steka, SP. 238, 243, 256. 699 preambula, 80
formati instrukcija. 355-356
osnuvni razvodnik. 214 pokazivac vrha steka, TOS, 238. 256 precnik mrde, 608
futografija. 3':!
osnovni ula.cno-i/.lazni sistem. BIOS. 83 pokazivac za citanje/upisi vanje. 715 precizan prekid, 304
Hanujske kule, 407---1-08
ostrva (na povrsini CD-a). 91 pokazivacki i indeksni rcgistri. 699 predajnik signala za magistralu. 175

J
~
772 lndeks Indeks 773

T TriMedia, proccsur. 547-552 UltraSPARC Data Buller IL UDB II, 195 velicina stranice, 436
tristabilni ureL1aj, 165 UMA procesuri, 583 vcoma dugacka rec za instrukcije,
tahcla
trostruko indirektni blok, 485 urnrdenc radne stanice, NOW. 584 VUW, 545
glubalnih dcskriptora, 442-444
TX-0. 19 unakrsni prekidac, 594 vertikalno iii perpendikularno
grananja, 315
TX-2, 19 unama instrukcija, 375-377 zapisivanje, 81
istinitosti, 136
UNICODE, 126-121\ veza,4R3
loLLinih deskriptora, LDT, 442-444
simhola, -'i20, -'i26-527, 717 u uni verzalna serijska magistrala, 213-217 vezni segment, 536
USB 2.0, 217 video RAM, l 07
qranica. 428 u pipeline. 61
UNIX virtuelna masina, 3
za d<Jdeljivanje datotcka, rAT, 486 UART, 217
poveL.ivanje, 539 virtuelna mcmorija, 426-450
;a prcvodenje, 44l) uhodna (varnpirska) racva, 564
ulamo-izlaznc operacije s da~otekama. i kcsiranje, 450
ta rutiranjc, 740 ucitavanje. 528--539
480-41\<1 Pentium 4. 442-447
tack a po incu, dpi, II 0 udaljL~no pozi vanje, 712
upravljanje procesorn, 491-494 UltraSPARC IlL 447-450
tacka ukrstanja, 5lJ4 udesno poravnata rcc, 374
uvod.4h7-470 UNIX, 476-477
takson01nija paralclnih racunara, 582-584 ugractcni racunar. 25
virtuelna mernorija, 4 76--+ 77 Windows XP, 477-479
tankoslojni tran;.istor, I 06 ugradcno OR, 175
unutrasnjc fragmenliranje, 436 virtuclna organizacija, 642
1astatura, I 03 ulancavanjc urcdaja. 182
UPA arhitcktura. 195 virtuelna topulugija. 62S
TAT-12/13, 28 ulaz/izlaz, 99-128, 31\1 -31\4
upisivi CD, 94 virtuclnc ulazno-izLune opcracije,
tclcfonska kompanija, 117 ulazna tacka, 532
uporedno projektovanje. 25 450-457
lelckomunikaciona oprerna, 115-123 u1aznu-i;lazni uredaj i
uprav1jacki program za ureLtaj (drajver). imp!cmentacija, 45:2-457
tdcvi;.ija visokc vcrnosti, HDTV. 576 CRT monitor, I 04
473 UNlX. 480-486
tcsno spregnuti, 544 digitalni fotoaparati, 123-125
uprav1jacko skladistc, 55, ns \Vindmvs XP. 486-491
TFT ekran. I 06 magnctni diskovi, 79-90
upravljanje proce,om vinuclni registar, :2-i2
tipovi instrukcija, 372-394 rnisevi. I 07-109
UNIX. 491-494 virtuc\ni rt:Zim rada procesora SOR6. 3c7
tipovi pudataka, 346-349 modcmi, I I 5-117
Windows XP, 494-497 virtuelno kolo. 212
brojcani, 346-34 7 monitors ravnim ckranom, l 05-106
upravljacki signal, 233 vinuclno prulanw rutir::nJc, 61 'i
ostali, 347-348 opticki diskovi. 98-99
upravljanje mikroinstrukcijama. 2:17-242 VIS instrukcijc. 42
TLB hater, 317,447-450 starnpaci. I 09 -I 14
upucivanje iz sk!adista na ucitavanJC. 31-+ visak. prcdstav·ljanje s~t, 678
proma;aj, 449 tastaturc. I 03
urezi (na povrsini CD-a). 91 visenitai rad. 'i52-55S
tl)k, 469 telekomunikaciona oprema. I 15--12_3
USART. 217 najcdnonl ~ipu, 552-558
tok i;:vrsavanja, na nivou \SA, 3lJ4-406 tcrminali. I 0:2-107
uslovno izvrsavanje. -+ 16 ni,ke rem1ucije. 553
grananje, 394-3l)5 UltraSPARC 31\7--390
uticniea. 468 vi-,oke rezoiuciJC- 552
korutinc. 400-40 l UltraSPARC l, -+2
utrki vanje. 459-463 vi;cstcpcna 1-..omut•tcHHla mrcLt, 594
procedure, 395-400 UltraSPARC Ill, 193-197
uvozna bib1iotd.a, 538 Vun Neumann, John, 17
programskc klopke, 402 adresiranje. 371
uzajamno i.'>k1jucivanje, 49J Vc\n0<cuman:mva ma;in::. 18
sistcmski prekidi. 403---1-06 hafer za podatkc. 195
vremc vczi vanrt. 533
torba s poslovima, 633 furmati instrukc:ija. 356-357
turka. 632 Hanojskc kulc, 408. 410 v vrcmensLa !tJkaltwsr, 29 I
vrcmen,ki D lc~. 151\
transparentan, 42l) im,trukcije, 387-390 v pipeline. fJ I
vrcmensk.i pruccp. 297
tran;:istor, pronalazak. 19 istorija, 42 VAX, 55
vrcmetd.. i SR kc. 157-1:'\S
tranzistursko-tranzisturska logtka. TTL mikro•trhitektura, 314-320 VCL 5h3
vremcnsku uskladivanje racLt m~•gistrae.
136 prcgled nivoa lSA, 339-342 vcktllr prekida, 186, 404
17'7-179
trazcnJe. R I tipovi podataka, 34:-\ vektnrski procesor, <14-(,5
vr!() visuk '>lcpen inkgr,tci;e. 23
trc;iranjc. 435 virtuelna mcmurija. 44 7 -450 vektor-,ki rcgistar, <14
774 Indcks

w z OAUTORU
Wattcl, Evert, 693 zaglavlje, 211 Andrew S, Tanenbaum je diplomirao na Masacusetskom tehnickom institutu
WEIZAC, 17 zancmarivanjc definicije segmenta, 716 (MIT) a doktorirao na Kalifornijskom univerzitetu u Berkliju. Trenutno je profcmr
Whirlwind l, 18 zaokruzivanje, 685 racunarskih nauka na Univer;itetu Vtije u Amstcrdamu (Holandija), gde vodi Grupuza
Wilkes, Maurice, 8, 54 zapocinjanje (pravljenje) proccsa, 458 racunarske sisteme. Dvanaest godina bio je dckan Vise skole za racunarstvo i digitalnu
Win32 API, 475 zastarcli podaci, 589 graliku- meduuniverzitetske institucije za istrazivanja naprednih paralelnih, distribui-
Winchester disk, 81 zastoj, 284 ranih digitalnih gralickih sistema. Januara 2005. godine, odustao je od te funkcije.
Window.-;, 25,470. Vidcti i Windows XP zastoj paralelne ohrade, 297 Ranije se havio istrazivanjem oblasti programskih prevodilaca, operativnih sistema,
istmija, 24 zastitna harijera, 565 mrda i lokalno distribuiranih sistema. Danas svoju paznju prvenstveno usmerava na
puvezivanje, 536-539 zatvorcnost, 6 72 hezhednost racunarskih sistema, narocito u dornenu operativnih sistema, mrda i vdi-
Windows 95. 471 zavisnost citanja od upisivanja, RAW, kih rl'gionalno distribuiranih si'stema. Sva ova istrazivanja su mu omogucila da objavi
Windows 98.471 284 prl.'ko I 00 recenziranih radova u casopisima i zbornicima s razlicitih skupova.
Windows NT, 471 zavisnost tipa WAR, 303 Prof. Tanenbaum je napisao i zamasnu kolicinu soft vera. Bio je glavni projektant
Windows XP zavisnost tipa WA W, 303 sort vera Amsterdam Compiler Kit, uveliko koriscene alatke za pisanje prenosivih pre-
ulazno-izlazne opcracije s datotekama, zbirni propusni opseg, 637 vodilaca, kao i MLNLX-a, malog klona operativnog sistema UNIX, namcnjenog studcn-
486-491 Zelena knjiga, lJ4 Lima, za vdhanje programiranja. Taj sistemje motivisao Torvalda Linuxa i posluzionw
upravljanjc procesom, 404-497 Zilog Z8000, 55 kao baza za njcgov Linux. Zajedno sa svojim doktorantima i prograrnerima, Tanen-
uvod,470-476 Zuse, Konrad, 15-16 baum je pornugao pri projckwvanju sistema Amoeba, lokalno distrihuiranog uperattv-
virtudna mernorija, 477-479 zvezda, 610 nog sistema visnkih performansi, zasnovanog na mikro.Jezgru. Posle togaje uct.:stvmao
Wozniak, Steve, 23 u projcktovanju siroko distrihuiranog sistema Globe, namcnjenog za opsluZivanje ui-
z lijarde korisnika. Ovaj softwr se sada mo/.e besplatno preuzcti sa Intcrneta.
X zcton, 561
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.
X Windows, 4 70 Zuta knjiga, 92
Prof. Tanenbaum je clan asocijacijc ACM, instituw IEEE, i cbn je H<>land>ke
Xeon, 3lJ
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-
r:". d ,•;:( ~~ ~t-;~~.. t~~
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.

------J.
.. ·~

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 PRAV~I
DOKUMENT JE SPORAZUM IZMlDU VAS IIZDAVACKE KUCE PRENTICE·HALL, 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 neogranu~ena 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 dru~a
prava kop vam fll)e 1znCito dao OVIfTl Sporazurnorn
2. VLASNISTVO NAD SOFTVEROM: Vi ~te vlasn1k samo rnagnetskog 111 liz1Ckog rnedi1urna (prliotenog medljuma) na kame ]e
Softver zabeleZen Iii u nJeQa ut1snut. J.li lzdav:=lC 1auton Softvera zadrl:avaju sva prava. taplje 1vlasm3tvo 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 1pnloZP-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 v<:~Sim 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 raCunar::~, odnosno tem11113la. MoZete I1Z1Ck1 prem-:11 Softver s Jednog na .Jrug1 raCunar. poo uslovom da se u Jed nom trcnutku ~o­

I
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!lo±en1 Softver ptavo konScen1a dob1jate samo VII to ~r'-l­
vo sene n10Z:e pr~~n8tl n1 na kogJ. drugog bez prctllodn~oJ p1srnene saglc~snostllzdavrtCa. Svako moodobreno prer1oSenw Sohvera 110 CIL

I
ga l1ca rezulluJA trcnutn1rn r,1sk1d<1nJen1 ovog Spomzuma
6_ TRAJANJE SPORAZUMA Ova ltwnca )e na snaZI sve dok tra1e Sporaz.um. L1nmca automatsk1 prestaj~ d<1 vaZ1 -· bez o:Jd-
voStav;tnJ<1 ad strane lzdciV(l(':a - 1poslJ]P n1Stavna ukol1ko odstup1te od uslova Iii o<::;rrtniCHflj3 nJenog korrScenj.c~. Po prekidu val:er1p li
cencc obave.u11 ,;te da unrSI1!c DoKurnentclciJU 1sve hop1JC Sottvera SVf: st.:wke SporOJ.LUrTld se odnose na garanCIJe ogran1Cenja
odgovornost1. nadoknade :li :;tP.te, kao 1o naS11n pro.v1ma vlnsnJstv,1. ostaju n~ s;1J.L1 1 SporaLuma
7 OSTALO. OvaJ Sporazum 1e S<1st.=~vlwn u skLJdu so zakonuna
davaCJ., ntegove liliplc 1opunomocen1ke.
t 8. OGRANICENA GARANCUA I POVLAC~CNJE GARANCIJE lz.ddvac garcul!Uji-J da Ct~ Soitver, e1ko se propt~PO Korrs!1 u <C:k.l;t(JU s
Dokumen\.::lCIJO!n, rad1t1 su~~llll~kl unaka kar..o te optsdno u DokUI11tH1trtCiJI lzdclv:-JC ne g;~rantujt:: d3 et; Soitver iSPUIIil: vaSe LOJfitf~·~t: il1 del
Ce flJl~f)ov raJ brt1 b~L prcK1d.1 .II oreSuka. lzdavaC qarcmiUJt.l ria ,:e rrlPdijtiiT1 na k.orT:8 Seaver 1sporuCu)8 b1tr bt-'!.: or~Saka u matuplu
11zrcJdl tokom Dt:r1odJ. kom~ct:rlJd iJrl trides.-;t 1:30'1dc1nn. ad d;mu kupov1nc V::1Sa jeC11r'a rnogucnost 11r:d1nd r;oa•,L·zrt l::c;,w1.ca

I nove<> ko11 ~:;te za nju


1este da, ~Hloma tzboru lzd~v.::JCd, iii vru!Jte stavku z:a Koju '/rtZI q.:.r;tnCIJa LIZ pnvrac<Jr bib Kog iZIOSrt
·il na tu stavku z2mHn1te novorn. Zamena Softver<J .II rnedqur11;1 u g,ir~u~tnom rokll ne prndi;Z,'iV,l. prvob~t:H')a·
rantnr rok NctvP.dtorld oqran1CC;na CJ3ranCIFl ne obuhv,-,I<J Soltver ?a ~DJI lzJavaC u
krmScen. ln::>tdltr<Jfi. popr~lVIJ.lrl, mef1Ji11l !II c;te gil v1 uoropdst:il GAR.A,NCIJA. iZI\J,\'-"-G NE SA. IE

!
i
NIKAKVE

OAVAC NE l1ARANT\JJE. N! 11
TA NJIHOVE ISPRAVNO.S II
GAflANCtJE. N!TIIZRICJTE. NtTI POORAZUMEVM~E. UKLJUClJJUCI HEZ QCf~M-J:CEi'UA, ?ODRAl~Jlv1L:VANE
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
iSTA U POGLEUU KOR!SCENJA Ill FH2Ulif\TA t<::JF:IS(:;HJJA SUFI v'E!1A J.'\/I,.SPb<-
I. POUZOANOSTI AUTENTit.NOSTI I
~J[ ~vlOG1J BrT: S:V1J\TRA-

I
IZDAVAl; Ill r-.jJEGOVI NAf\.1ES l ENICt, AC;ENTI. DOGAVLJACIILI Nl U KGM
NI ODGOVOHNiM Zt\ 81LG KAKVE: SLUCAJNE, POSREON[, SP!:::CIJAL~JE:: IL! POSLEGII~JE ETE ~,OJE iviOGU N;:...S-1\T:
Z80G. ll_l U \/EZI SA LICU~I,OM DATOM lJ OKVIRU OVOG SPORAZUMA. ILl ZA ~'RCS f:\NAi< KOF::;JsCi:N.,A., 'JlJB1 lA:< ~--,u~:A­
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 J~ iZL·<\VA,:: IL! NJCL10V OVL.'\~~CE
Ni PREDSTAVNIK 810 GPOZUF-1EN NA MOCllJCNOST NASTANKA Tt•KVE STE fE. Ni U ,JEDNO~A 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 ~1 R~C1 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/'.. ~)LLJ(;AJNE. PO:SHEDNE, SPECIJALNE Ill POSLECICNE S rETE. TAKO 'JA llC'rn_:: ~.U..\1 ECENA. ·:;<:ihJ\i'J!I'lr-.J ..'A NE Vl\.:::t:
UVEf<. GNlt\i\ CUE IJ OVOM SPOHAZUMU DAJLJ VAM SPECIJALNA Zi\KON~)h;\ PHf\'.'A. P>. VI ~,FJLE i E IMATI ,• 08UGr\ PR·\VA
1

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 08AI/~ZNi J,\ S[ .P~11CRZA
\/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 Pl~tl 1 :~r<LJIJCt\1 DO-
GOVOn IZMEOU \:A.S I iZDA1/ACA KOJt NADIL/\ZI SVE PREDLOGE ILl P8.FT~:ODr·JC ~r'OR,;ZI,~,-1[ <JSivi[01F: f--' 1S/1.Nl:. I --lVLi
DRUGU i"".1..Jiv1lJNIKACI.JLJ IZMEDU VAS IIZDAVACA !LI BILO KOG NJEGOVOG PREDS 1:'..\INir"~ G ?CC:J~~DU :""H.E:DME:A ~'lUG
SPORA2U1\1f'<
Ukol1ko •111~1:e :kdk11ih ~1L1np1 o ovorn Sporazumu ill ZelitG del stup1te u korltakt s~1 izd;!vc~r~,Jm :.: t.oir1 f..og raLioga. ,JOra::t•J -~"' •I p1
I011r11 nn c;iede(u 1dre.su
Snort
Pr<:tl!!( ~..: rlnt,' PTP.
On~) Lake Str8d
lJp~cr SdcJdle t-\1•/er. New JP.rsey 07458

_..
'•'~··.·.
··-,
'· T~ ~.

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 C·vrstom disku
• CD urecta1
• Web citac 1Internet Explorer 6.0. Firc!"ux. 1.0, fvlt,zilla 1.7.x iii Safari 1.2)
• Veza sa lnkrnetom - pou·chna samo ;a preuzimanje dndatnog softYera fnpr.
a..'urir~l!lili 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 ra.,p;_;k.ivanj~ .zip daloteka ( samo akn irnatc nameru da
menjate i ponovo pre1 oditc iLvornc datotck.~ 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 1striJ(~Ill
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
·~ -:~

You might also like