Você está na página 1de 41

1. MIPS i MFLOPS (Million Instructions Per Second) je broj miliona izvrenih instrukcija u sekundi.

. Za dati program MIP se dobija kao!

MIPS =

br.instrukcija uces tan ost _ takta = 6 vreme _ izvrsenja 10 CPI 10 6


br.instrukcija MIPS 10 6

Za dati MIP vreme izvrenja programa je!

vreme _ izvrsenja =

Poto je MIP brzina kojom procesor izvrava instrukcije" ra#unar sa vie MIP $ova izvrava%e program za kra%e vreme. Me&utim MIP nije pouzdana mera per'ormansi procesora iz vie razloga! MIP zavisi od skupa instrukcija" to ote(ava pore&enje MIP $ova ra#unara sa razli#itim skupovima instrukcija" MIP varira od programa do programa za isti ra#unar" to je najgore" MIP mo(e ocenjivati promene suprotno menjanju per'ormansi" mereno objektivnim merilima. Za ocenu sposobnosti procesora pri ra#unanju sa realnim podacima" tj. podacima sa pokretnom zapetom" koristi se mera u obliku broja miliona operacija sa pokretnom zapetom u sekundi (Million Floating Point Operations Per Second ili ti M)*+P $ mega'lops).

br.operacija _ sa _ pokretnom _ zapetom _ u _ programu MFLOPS = vreme _ izvrsenja _ u _ sekundama 106


M)*+P zavisi od ra#unara i programa i zasnovan je na operacijama" a ne na instrukcijama. +bjektivnost M)*+P $ova mo(e biti ugro(ena manipulisanjem kratkim i dugim operacijama sa pokretnom zapetom. 2. Amdahl-ov zakon +va preporuka ide za tim da se to br(e obavljaju aktivnosti koje se naj#e%e obavljaju" a da se aktivnosti koje se retko obavljaju mogu obavljati sporije. Mogu%nost kvantitativne ocene uticaja pojedinih reenja na e'ikasnost obavljanja posla pru(a nam ,mdahl$ov zakon. -eka je TS vreme izvrenja nekog zadatka" a jedan deo tog zadatka traje TPD i (elimo da to smanjimo PB D puta tako da novo vreme traje

TPD

PB D . +vim poboljanjem" brzina kojom se posmatrani zadatak izvrava je

pove%ana" i pove%anje brzine iznosi!

Povecanje _ brzine =

!reme _ izvr enja _ ce log_ zadatka _ bez _ pobolj anja !reme _ izvr enja _ ce log_ zadatka _ sa _ pobolj anjem

kra%enjem vremena izvrenja" per'ormanse se poboljavaju i pove%anje brzine iznosi!

Povecanje _ brzine =

Per"ormanse _ za _ ceo _ zadatak _ sa _ pobolj anjima Per"ormanse _ za _ ceo _ zadatak _ bez _ pobolj anja

,ko je novo vreme izvrenja zadatka T# ( T# < TS )" i ako TPD = TS PD " gde je PD u#e%e dela zadatka koji poboljavamo u ukupnom vremenu izvrenja zadatka" onda dobijamo! PD T# = TS [(1 PD) + ]. PBD ,ko sa PB$ ozna#imo ukupno pove%anje brzine sa kojom se izvrava ceo zadatak" odnosno dobijamo!

PB$ =

TS

T# " onda

PD . PB D +vaj poslednji izraz je takozvani ,mdhl$ov zakon (iako ga je u svom radu neto druga#ije de'inisao). +n nas 1 PD +

PB$ =

upu%uje da" u nastojanju da poboljamo per'ormanse sistema" treba da poboljamo ona reenja koja imaju veliko u#e%e u ukupnim aktivnostima sistema. 3. Tipovi arhitektura pro e!ora Prema mestu privremenog #uvanja operanada" arhitekture procesora dele se na! ,kumulatorske arhitekture" tek arhitekture i ,rhitekture sa registrima opte namene. Akumulatorska arhitektura tipi#na je za procesore u po#etnoj 'azi razvoja ra#unarstva. +dlikuje se postojanjem jednog ragistra u procesoru" nazvanog akumulator" koji u#estvuje u svim operacijama procesora. -eposredno pre izvrenja operacije akumulator sadr(i prvi izvorini operand" a po zavretku operacije sadr(i rezultat. Procesori sa akumulatorskom arhitekturom spadaju u jednoadresne procesore. . instrukcijama je neophodno navesti samo adresu operanda u memoriji" dok je adresa prvog operanda i rezultata unapred poznata to je akumulator. +snovni nedostatak je postojanje samo jednog registra akumulatora" koji u#estvuje u obavljanju svih operacija procesora. +vo uslovljava pove%anje obima podataka koji se prenose izme&u procesora i memorije. Stek arhitektura procesora. /entralna memorijska struktura ove arhitekture je stek (stack). +perandi koji u#estvuju u aritmeti#ko logi#kim operacijama nalaze se na vrhu steka" tako da nije potrebno eksplicitno ih adresirati. +peracijom se gube oba izvorina operanda sa vrha steka" a rezultat postaje novi vrh steka. 0ipi#na aritmeti#ko logi#ka operacija (npr. ,11) ima slede%e dejstvo! ADD S[SP+1]S[SP+1] + S[SP], SPSP +1 +vde ozna#ava stek organizovan u memoriji" koji raste u smeru opadanja memorijskih adresa. P je registar pokaziva steka (stack pointer)" koji pokazuje na vrh steka. Zapazimo da se u instrukciji ADD eksplicitno ne navodi nijedan operand. Zato se za procesor sa stek arhitekturom ka(e da je nula adresni procesor 2'ikasna implementacija steka" #esto za dve lokacije sa vrha steka umesto memorijskih lokacija koristi registre procesora. 3eliki nedostatak stek arhitekture procesora su ograni#enje u pristupima podacima u steku. Arhitekture sa re!istrima op"te namene sadr(e grupu registara procesora koji se mogu koristiti u razli#ite svrhe! za privremeno #uvanje operanada" za u#e%e u izvravanju operacija" za adresiranje operanada u memoriji" za prenos parametara pri pozivu procedura itd. 4roj registara opte namene ide" u zavisnosti od procesora" od osam do preko stotinu. 1ananji procesori sadr(e naj#e%e po 56 registra opte namene.

". #e$i!tri pro e!ora 7egistri su memorijski elementi realizovani 'lip$'lopovima ili drugim brzim memorijskim %elijama. +dlikuju se kratkim vremenima pristupa reda nanosekunde ili delova nanosekunde.+vo je razlog za dugo prisutnu tendenciju pove%anja broja registara u procesorima. ,li svojstvena im je i relativno visoka cena realizacije" koja diktira relativno mali broj registara u procesorima. Mali broj registara ima i dobru stranu! za adresiranje podataka u registrima potreban je mali broj adresnih bitova. Programe korisnika ra#unar izvrava u takozvanom korisnikom nainu rada (user mode)" a sistemske programe u kernel nainu rada (kernel mode) ili supervizorskom nainu rada (supervisor mode). vi procesori" nezavisno od arhtekture skupa instrukcija i adresnosti procesora imaju slede%e registre! Pro!ramski #roja (P/)" koji sadr(i memorijsku adresu instrukcije koju treba pribaviti" $e!istar instrukcija (I7 Instruction 7egister) u koji se prenosi pribavljena instrukcija i u njemu dr(i do zavretka izvrenja instrikcije" Adresni re!istar memorije (M,7 Memor8 ,ddress 7egister) sadr(i adresu memorijske lokacije kojoj se obra%a procesor pri #itanju podataka iz memorije i upisu podataka u memoriju" Prihvatni re!istar memorije (M17 Memor8 1ata 7egister) pri obra%anju procesora memoriji sadr(i podatak pro#itan iz memorije ili podatak koji treba upisati u memoriju.

%.

&epo!redno adre!iran'e(re$i!tar!ko(indirektno re$i!tar!ko

(Immediate ,ddressing) pri pribavljanju instrukcije pribavlja se i operand i on je raspolo(iv za obradu bez dodatnih aktivnosti. -aziva se jo i literalno adresiranje. Primarna i e'ektivna adresa operanda odre&ene su sadr(ajem programskog broja#a" P/!
a prim = ae" = PC

-eposredno adresirani operandi koriste se u aritmeti#kim operacijama" pri pore&enjima (prvenstveno u grananjima)" i u prenosima kojima se registri pune konstantama. 9onstante koje se koriste u izrazima obi#no imaju male vrednosti" dok adresne konstante obi#no imaju velike vrednosti. Za ozna#avanje neposrednog adresiranja koristi%emo znak : napisan ispred operanda! :9onst ili :;. #e$i!tar!ko adre!iran'e (7egister ,ddressing) imamo kada je operand prisutan u nekom registru procesora" 7 j. I primarna i e'ektivna adresa operanda je adresa registra 7j!
a prim = a e" = % j

+bzirom da se broj registara opte namene u procesoru kre%e u granicama od < do =>" za adresiranje operanada u registrima potrebno je od 5 do = adresnih bitova. 9ako su registri procesora najbr(i deo memorijskog saistema ra#unara" vreme pristupa operandima u registrima je najkra%e mogu%e. )ormiranje e'ektivne adrese

Registarsko adresiranje

Indirektno re$i!tar!ko adre!iran'e (7egister Indirect ,ddressing) imamo kada je operand u memoriji adresiran sadr(ajem nekog registra opte namene 7j. . adresnom polju operanda u instrukciji navodimo registar 7j. 1akle primarna adresa operanda je adresa registra 7j" a e'ektivna adresa operanda je sadr(aj registra 7j. a prim = % j " ae" = % j

( )

)ormiranje e'ektivne ,drese

Indirektno Registarsko adresiranje

). *azno adre!iran'e(Indek!no adre!iran'e (4ase ,ddressing) imamo kada je operand u memoriji adresiran zbirom sadr(aja baznog registra" 47" i pomeraja (displacement) navedenog u odgovaraju%em adresnom polju instrukcije za taj operand. Pomeraj predstavlja adresu lokacije relativnu u odnosu na sadr(aj baznog registra. 47 svojim sadr(ajem odre&uje veli#inu podru#ja memorije" #ijim se lokacijama mo(e pristupiti na osnovu pomeraja. 7e'erentna adresa mo(e biti adresa po#etka memorije" kada je pomeraj neozna#ena veli#ina" ili adresa sredine podru#ja memorije" kada je pomeraj ozna#ena veli#ina. Primarna adresa sadr(i dve komponente! adresu 47$a i pomeraj. 2'ektivna adresa operanda je zbir sadr(aja 47$a i pomeraja. a prim = B%, pomeraj " ae" = ( B% ) + pomeraj

)ormiranje e'ektivne adrese

Bazno adresiranje

4azno adresiranje omogu%uje da se memorijske lokacije adresiraju sa manjim brojem adresnih bitova i omogu%uje jednostavnu implementaciju relokativnosti podataka u memoriji. $elokativnost je mogu%nost da se podacima dodeli bilo koje podru#je memorije koje se mo(e menjati i u toku samog izvrenja programa. +zna#avamo ga stavljanjem pomeraja ispred oznake 47$a izme&u para malih zagrada! 6;(7>). Indek!no adre!iran'e (Inde? ,ddressing) imamo kada je operand u memoriji adresiran zbirom sadr(aja registara 7 j i 7k. 7j sadr(i po#etnu adresu podru#ja u memoriji dodeljenog nekoj strukturi podataka" a 7 k je indeksni registar koji sadr(i indeks nekog elementa u toj strukturi. Primarnu adresu operanda #ine adrese 7 j i 7k" a e'ektivna adresa operanda je zbir sadr(aja ova dva registra! a prim = % j , %k " ae" = ( % j ) + ( %k ) )ormiranje e'ektivne adrese

Indeksno adresiranje

+vo adresiranje ozna#avamo parom malih zagrada izme&u kojih navodimo registre 7 j i 7k povezane znakom @! (7A@7>)

Memori'!ko indirektno adre!iran'e( Adre!iran'e relativno u odno!u na pro$ram!ki ,ro'a+. (Memor8 Indirect ,ddressing) $ imamo kada registar 7j" naveden u odgovaraju%em adresnom polju instrukcije za taj operand" adresira memorijsku lokaciju" koja svojim sadr(ajem adresira operand u memoriji. Primarna adresa je 7 j" a e'ektivna adresa je iskazana sadr(ajem MB7jC. Memorijska lokacija MB7jC je pokaziva# na operand u memoriji. a prim = % j " ae" = M % j

[ ]

)ormiranje e'ektivne adrese

Memorijsko indirektno adresiranje

+vaj na#in adresiranja nee'ikasan je prema kriterijumu vremena pristupa operandima" koje je jednako dvostrukom vremenu pristupa memoriji. 4roj indirektnih pristupa memoriji do dobijanja e'ektivne adrese operanda mo(e biti i ve%i od jedan. +vo adresiranje ozna#avamo znakom D ispred para malih zagrada izme&u kojih je navedena oznaka registra ili memorijska adresa! D(7<) ili D(E6FF). Adre!iran'e relativno u odno!u na pro$ram!ki ,ro'a7egistar kome se implicitno obra%amo je programski broja# (P/). +vo zna#i da se teku%a adresa instrukcije sabira sa otklonom i na taj na#in 'ormira e'ektivna adresa (2,). 9od ove operacije otklon se tretira kao broj u dvoi#nom komplementu. 9ao rezultat 2, predstavlja razmetaj u odnosu na adresu instrukcije. 2'ektivna adresa se izra#unava! 2,G(P/)@1 " gde je 1$otklon speci'iciran instrukciji. obzirom da sadr(aj P/$a deluje kao pokaziva# na instrukciju koja se teku%e izvrava" vrednost otklona ukazuje na rastojanje izme&u operanda i same instrukcije.

..

Autoinkrementno i autodekrementno adre!iran'e

Autoinkrementno adre!iran'e (,utoincrement ,ddressing) izvedeno je iz direktnog registarskog adresiranja dodavanjem aktivnosti inkrementiranja kori%enog registra 7j posle (ili pre) obra%anja memoriji. 7egistar 7j se mo(e inkrementirati vredno%u d" odre&enom du(inom elemenata kojima se pristupa. Primarna adresa operanda je adresa registra 7 j" a e'ektivna adresa je (7j). a prim = % j " ae" = % j " % j % j + d )ormiranje e'ektivne adrese

( )

A toinkrementno adresiranje

+znakama E. i 6. prikazan je redosled kojim se vri obra%anje memoriji na osnovu sadr(aja registra 7 j i a(uriranje ovog registra. +vo adresiranje ozna#avamo navo&enjem oznake kori%enog registra izme&u malih zagrada" dodaju%u su'iks @! (75)@ Autodekrementno adre!iran'e (,utodecrement ,ddressing) sli#no je autoinkrementnom i od njega se razlikuje u dva detalja! kori%eni registar 7 j se dekrementira i to pre (ili posle) obra%anja memoriji. Primarna adresa operanda je adresa registra 7 j" a e'ektivna adresa je (7j). Pre ili posle obra%anja memoriji po e'ektivnoj adresi dekrementira se 7j. a prim = % j " ae" = % j " % j % j d

( )

)ormiranje e'ektivne adrese isto je kao kod autoinkrementnog sa zamenom mesta E. i 6. i promenom d u %d. +vo adresiranje ozna#avamo navo&enjem oznake kori%enog registra izme&u malih zagrada" dodaju%u pre'iks $. -pr. $(75) /. #edo!led ,a'tova u poda ima i poravnati pri!tupi memori'i . ra#unarima razli#itih proizvo&a#a sre%u se dva na#ina za ure&ivanje bajtova unutar podataka sa du(inama ve%im od bajta. Pri adresiranju repa (*ittle 2ndian b8te order) adresa re#i ??...??FF 6 je i adresa bajta najmanje te(ine u re#i (rep re#i). +stali bajtovi sa rastu%im te(inama imaju rastu%e adrese (??...??FE6" ??...??EF6" ??...??EE6). Pri adresiranju !lave (4ig 2ndian b8te order) adresa re#i ??...??FF 6 je i adresa bajta najve%e te(ine u re#i (glava re#i). +stali bajtovi sa opadaju%im te(inama imaju rastu%e adrese (??...??FE6" ??...??EF6" ??...??EE6).

7aspored bajtova u re#ima a) adresiranje repa" b) adresiranje glave 3e%ina savremenih procesora" pored adresiranja repa ili glave kao osnovnog na#ina ure&ivanja bajtova" podr(ava i onaj drugi na#in ure&ivanja. 9ada se radi sa samo jednim ra#unarom" redosled bajtova #esto je bezna#ajan. 7edosled bajtova u re#i zna#ajan je kada se razmenjuju podaci izme&u dva ra#unara" koji koriste razli#ite redoslede bajtova u re#ima. 0ada se mora primeniti reenje koje %e obezbediti da se podaci" koji se uzimaju iz memorije ra#unara poiljaoca podataka" korektno smeste u memoriji ra#unara primaoca podataka. Za redosled bitova u podatku du(ine n bitova" nezavisno od redosleda bajtova" tako&e postoje dve alternative! E. bit najve%e te(ine (M b) nosi oznaku n&1" a bit najmanje te(ine (* b) nosi oznaku F" 6. bit najve%e te(ine (M b) nosi oznaku F" a bit najmanje te(ine (* b) nosi oznaku n&1. +ba reenja imaju prednosti i nedostatke. Prvo reenje" u kombinaciji sa adresiranjem repa" daje konzistentan redosled bajtova i bitova u podatku. Isto va(i i za drugo reenje u kombinaciji sa adresiranjem glave. 1rugo reenje" me&utim" ima taj nedostatak da pri posmatranju n$to bitnog podatka kao binarnog broja" ci'ra u poziciji i ima te(inu 6n$i$E" to uslo(ava rad sa delovima podataka. ,rhitektura procesora tako&e de'inie da li pristupi podacima u memoriji moraju biti poravnati" ili oni mogu biti i neporavnati. Pristup podatku u memoriji sa adresom a" du(ine l'(k bajtova" je poravnati pristup memoriji (aligned data access) ako je adresa a deljiva sa l" odnosno a mod l'). .koliko se koristi poravnat pristup memoriji kod n$ tobitnog procesora potreban je poseban hardver koji ce korekto procitati ili smestiti podatke krace od n bitova uHiz memorije" i ovaj pristup zbog toga je vremenski e'ikacniji. 9ada podatak pri neporavnatom smetanju zahvata delove dve susedne memorijske lokacije" pristup takvom podatku zahteva dva obra%anja memoriji.

10. In!truk i'e za upravl'an'e tokom pro$rama Irupa instrukcija za upravljanje tokom pro!rama sadr(i instrukcije bezuslovnog i uslovnog grananja" skokova" poziva procedura (potprograma) i povratka iz procedura (potprograma). . ovim instrukcijama (osim J7 i J,*7) za odredite grananja odnosno skoka koristi se adresiranje relativno u odnosu na programski broja#. +tklon je ozna#eni ceo broj. Polje otklona je u instrukcijama skoka irine p bitova" a u instrukcijama grananja * bitova. ve instrukcije su du(ine > bajta" tako da je P/@> adresa instrukcije koja u programu sledi upravlja#ku instrukciju. +tklon" sa sabira se sa P/@>" odre&uju%i odredite skoka odnosno grananje respektivno. 9ada je odredite skoka van podru#ja memorije koje se mo(e dosegnuti otklonom" koristi se instrukcija J7. adr(ajem registra navedenog u instrukciji J7 mo(e se adresirati odredite skoka bilo gde u adresnom prostoru memorije. Za pozive procedura na raspolaganju su instrukcije skoka na proceduru" J,* i J,*7" i uslovnog grananja na proceduru 42KZ,*. . ovim instrukcijama adresa povratka iz procedure pamti se u registru odre&enom arhitekturom. . slu#aju ugnje(davanja nove procedure" potrebno je najpre zapamtiti sadr(aj registra 75E recimo u steku" pa tek onda pozvati ugnje(denu proceduru. Povratak iz izvravane procedre u pozivaju%i program vri se instrukcijom J7 $+1. Instrukcijama uslovnog grananja proverava se ispunjenje zadatih uslova na osnovu odre&enih relacija" i ako su uslovi ispunjeni grananje se obavlja" ina#e ono izostaje.

11. Si!tem prekida ra-unara 0ermin prekid (inerrupt) ili izuzetak (e?ception) koristi se u irokom smislu za bilo koji redak ili neo#ekivano doga&aj koji uzrokuje da /P sa izvrenja teku%eg programa pre&e na drugi program koji opslu(uje prekid. Prekidi mogu biti generisani od razli#itih izvora unutar ili van /P$a! 0ermin prekid naj#e%e se koristi za asinhrone doga&aje koji nastaju van /P$a. 0akvi doga&aji navedeni npr. zahtev uHi uredjaja ili nestanak napona napajanja. 0ermin izuzetak naj#e%e se koristi za sinhrone doga&aje koji nastaju unutar /P$a. 0akvi doga&aji su npr. zahtev usluga + $a iz korisn programa" prekidne tacke"greska stranice"povreda zastite stranice.Procesor odgovara na prekide i izuzetke u sutini na isti na#in. Po signaliziranju prekida ili izuzetka procesor naputa izvrenje teku%eg programa ili zadatka i prelazi na program rukovaoca prekida (inetrrupt handler procedure). Po zavrrtku opslu(ivanja prekida ili izuzetka nastavlja se izvrenje prekinutog programa. -eki proizvo&a#i ra#unara ra#lanjuju izuzetke prema dodatnim kriterijumima" tako i intel u svojoj I,$56 arhitekturi ima speci'icira tri klase izuzetaka! greke" trapove i poba#aje. 9lasi'ikacija izuzetaka na greke" trapove i poba#aje vri se na osnovu na#ina na koji se izvrava o njihovom nastanku" kao i da li se instrukcija koja je izazvala izuzetak mo(e restartovati bez gubitaka kontinuiteta programa. Ireska je izuzetak koji se dojavljuje u toku izvresnja instrukcije i koji posle ispravljanja dopusta da se program nastvi da se izvrsava bez gubitka kontinuioteta. 0rap je izuzetak koji se javlja nakon izvrsene instrukcije i on dopusta da se izvrsavanje nastavi bez gubitka kontinuiteta. 1ok pobacaj ne navodi uvek preciznu lokaciju intstrukcije u kojoj je nastao izuzetak i nedopusta uvek nastavljanje programa u kome se javio izuzetak. Prekidi se dele na maskirive i nemaskirive. 9od maskirljivih mogu se privremeno zabraniti i kod nemaskirljivih koji se nemogu zabraniti maskiranjem. 12. Spol'a1n'i prekidi 2od 3-I ure4a'a5 i unutra1n'i prekidi 2trapovi5 0ermin izuzetak naj#e%e se koristi za sinhrone doga&aje unutar /P$a" kada on ustanovi ispunjenje jednog ili vie unapred de'inisanih uslova za vreme izvrenja neke instrukcije. 9lasi'ikacija izuzetaka na greke" trapove i poba#aje vri se na osnovu na#ina na koji se izvetava o njihovom nastanku" kao i da li se instrukcija koja je izazvala izuzetak mo(e restartovati bez gubitaka kontinuiteta programa. 0rap je izuzetak koji se dojavljuje neposredno posle izvrenja instrukcije u kojoj se javio trap. 0rap doputa da se izvrenje programa nastavi bez gubitka kontinuiteta programa. ,dresa povratka iz rukovaoca trapa je adresa instrukcije koju treba izvriti posle instrukcije u kojoj se javio trap. ,ko se javio u instrukciji koja upravlja tokom programa" adresa povratka iz rukovaoca trapa bi%e adresa na koju se prelazi tom upravlja#kom instrukcijom" a ne njena sukcesivna instrukcija u programu. 13. Arhitektura i 6ormati in!truk i'a MIPS pro e!ora MIP 56 arhitektura de'inie centralni procesor (/P.) i tri koprocesora! 9oprocesor F (/PF) se zajedno sa /P implementira u istom #ipu i podr(ava vitrueni memorijski sistem i rukovanje izuzecima. /PF se tako&e naziva i ,oprocesor upravljanja sistemom ( 8stem /ontrol /oprocessor). 9oprocesor E (/PE) rezervisan je za )P koprocesor

9oprocesor 6 (/P6) rezervisan je za speci'i#ne implementacije MIP 56 de'inie slede%e registre" du(ine po 56 bita! 56 registra opte namene (IP7)" koji obrazuju polje celobrojnih registara 1va registara posebne namene LI i *+" u koje se smetaju rezultati operacija mno(enja" deljenja" i mno(enja i akumuliranja" Programski broja# P/" koji nije arhitekturno vidljivi registar" na koji se samo indirektno uti#e nekim instrukcijama 56 )P registra opte namene ()P7)" koji obrazuju polje )P registaraM svi )P registri raspolo(ivi su za kori%enje u operacijama sa )P podacima jednostruke preciznostiM )P podaci dvostruke preciznosti #uvaju se u paru susednih )P registara" od kojih je prvi sa parnim a drugi sa neparnim indeksom ; )P upravlja#kih registara" #ija je uloga da identi'ikuju )P jedinicu i upravljaju njome. 7egistri koje de'inie MIP 56 prikazani su na slici. 1va od 56 IP7 registra imaju posebne namene! 7F je o(i#en na sadr(aj F (on zapravo i nije pravi registar)M on se mo(e koristiti kada je potrebna vrednost F ili kao odredini registar kada rezultat treba odbaciti" 75E je odredini registar u instrukcijama J,*" 4*0Z,*" 4*,0Z,**" 4I2Z,* i 4I2Z,** bez njegovog eksplicitnog navo&enja u ovim instrkcijamaM van njih on se koristi kao i drugi IP7 registri.

!orisni"ki #idlji#i registri

MI$%&' ar(itekt ri

MIP 56 arhitektura de'inie slede%e 'ormate celobrojnih podataka! 4it 4ajt Polure# (64) 7e# (>4) 1vostruku re# (<4) ,rhitektura tako&e de'inie )P podatke slede%ih tipova! 56$bitne )P podatke jednostruke preciznosti =>$bitne )P podatke dvostruke preciznosti MIP arhitektura podr(ava sede%e na#ine adresiranja! -eposredno 7egistarsko 4azno (pomerajno) P/ relativno (samo u instrukcijama grananja)

)ormati instrukcija MIP procesora ve instrukcije su du(ine 56 bita" i moraju biti poravnato smetene u memoriji ra#unara. Postoje tri 'ormata instrukcija za rad sa celobrojnim podacima prikazana na slici. . sva tri 'ormata instrukcija kod operacije (op) i indeksi (adrese) registara" du(ine po ; bita" imaju 'iksna mesta" to olakava i ubrzava dekodiranje instrukcija. ,ritmeti#ko logi#ke instrukcije su troadresne" sa dve varijante! va tri operanda u registrima procesora (7 'ormat) Jedan izvorini operand neposredno adresiran (I 'ormat).

7 'ormat namenjen je aritmeti#ko logi#kim instrukcijama i instrukcijama pomeranja. I 'ormat namenjen je aritmeti#ko logi#kim instrukcijama" instrukcijama uslovnog grananja i instrukcijama obra%anja memoriji (*oad i tore). J 'ormat nemenjen je instrukcijama skoka i bezuslovnog poziva procedura. +znake polja u ovim 'ormatima i njihova zna#enja su slede%a! op kod operacije instrukcije" rs indeks (identi'ikator) prvog izvorinog registra instrukcija" rt indeks drugog izvorinog registra ili odredinog registra instrukcije" rd indeks odredinog registra instrukcije" shamt broj binarnih pozicija za koje treba pomeriti izvorini operand" 'unct dodatno polje koda operacija instrukcija" immediate neposedni operand u aritmeti#ko logi#kim instrukcijama" otklon u instrukcijama uslovnog grananja ili pomeraj u instrukcijama *oad i tore" target address primarna adresa odredita skoka u instrukcijama skoka i bezuslovnog poziva procedura.

1". 7i1etaktna implementa i'a pro e!ora -edostaci kod jednotaktnog procesora mogu se otkloniti vietaktnom implementacijom procesora. Zavisno od aktivnosti u okviru instrukcije" ciklus instrukcije uklju#uje neophodan broj taktnih ciklusa. Za svaku instrukciju" aktivnosti na pribavljanju i izvravanju ra#lanjuju se na izvestan broj 'aza. vaka 'aza se obavlja se u okviru jednog ciklusa takta. ,ktivnosti u okviru svake 'aze obavlja odgovaraj%i stepen procesora. vaki par susednih stepena procesora razdvojen je registrima. 7egistri koji prethode nekom stepenu su ulazni registri za taj stepen. 7egistri koji slede nekom stepenu su izlazni registri za taj stepen. . taktnom ciklusu u kome je stepen procesora aktivan" on podatke iz svojih ulaznih registara trans'ormie i upisuje ih u svoje izlazne registre. .pisi u registre i memoriju taktovani su taktnim signalima. vaka instrukcija se mo(e ra#laniti na najvie pet 'aza! Pribavljanje instrukcija (I))" 1ekodiranje instrukcija i pribavljanje operanada iz registara (I1)" Izvrenje instrukcija (2N)" +bra%anje memoriji podataka (M2) i .pis podataka u odredini registar (O4). -a slici je prikazana blok ema implementacije vietaktnog procesora

$ te#i ,odataka #i-etaktnog ,ro.esora sa ,ridodatom memorijom


+vde su , i 4 prihvatni registri izvorinih operanda pribavljenih iz polja registara" a ,*.Izl prihvatni registar razultata iz ,*.. ,ktivnosti pri pribavljanju i izvrenju razmatranih instrukcija na vietaktnom procesoru po 'azama su slede%e! 1 pri#avljanje instrukcija -./0 I7PMemBP/C P/PP/@> Iz lokacije programske memorije" na koju pokazuje programski broja#" pribavlja se instrukcija i prenosi u registar instrukcija. Paraleleno sa tim 'ormira se adresa slede%e sekvencijalne instrukcije" i upisuje u programski broja# P/. ( Dekodiranje instrukcija i pri#avljanje operanada iz re!istara -.D0 ,P7egB I%')..'1 C 4P7egB I%'0..16 C ,*.IzlPP/@znak.Qpro.( I%1)..0 )RR6. Instrukcija se dekodira. Izvorini operandi se pribavljaju i prenose u pomo%ne registre , i 4. adr(aj polja I%1)..0 (to je pomak ako se poka(e da je instrukcija koja se dekodira instrukcija grananja) se znakovno proiruje i pomera ulevo za dve binarne pozicije" a zatim dodaje sadr(aju programskog broja#a i upisuje u registar ,*.Izl. ve ove aktivnosti obavljaju se paralelno. +vo je omogu%eno 'iksnim polo(ajem oznaka registara i immediate polja u 7 i I 'ormatu instrukcija. + .zvr"avanje instrukcije i izraunavanje e1ektivne adrese -230 Zavisno od instrukcije" obavlja se jedna od slede%ih pet aktivnosti! ,ritmeti#ko logi#ke instrukcije 7 'ormata ,*.IzlP,(op"'unc)4 Izvrava se operacija" odre&ena sadr(ajima polja op i 'unction" nad sadr(ajima registara , i 4. 7ezultat se smeta u ,*.Izl. ,ritmeti#ko logi#ke instrukcije I 'ormata ,*.IzlP, op pro.Qnul.(imm) Izrava se operacija" odre&ena kodom operacije op" nad sadr(ajem registra , i nulama proirenim neposrednim operandom. 7ezultat se smeta u ,*.Izl. +bra%anje memoriji ,*.IzlP,@znak.Qpro.(imm) Izra#unava se e'ektivna adresa obra%anja memoriji sabiranjem sadr(aja registra , (bazna adresa) i znakovno proirenog pomeraja. 7eultat se smeta u ,*.Izl. Irananje I6 (,G4) then P/P,*.Izl ,ko je uslov grananja ispunjen" P/ se puni odreditem grananja instrukcije. kok PC PC&1..'+ ** I%')..0 << ' +dredite skoka" pomeren za dve binarne pozicije ulevo" dopisuje se iza > bita najve%e te(ine sadr(aja programskog broja#a. *ociranje ovih aktivnosti u okviru iste 'aze razli#itih instrukcija mogu%e je" jer su u napuniHzapamti arhitekturi" nabrojane instrukcije me&usosbno isklju#ive. 4 5#ra6anje memoriji -720 . ovoj 'azi aktivne su samo instrukcije obra%anja memoriji (*oad i tore) +bra%anje memoriji! *oad! M17PMemB,*.IzlC" ili tore! MemB,*.IzlCP4 8 9pis rezultata u odredi"te -:;0 ,ritmeti#ko logi#ke instrukcije7 'ormata

Re g[ I%1)..11 ] &L$Izl

,ritmeti#ko logi#ke instrukcije I 'ormata Re g[ I%'0..16 ] &L$Izl *oad instrukcija Re g[ I%'0..16 ] MD% Zapazimo da instrukcije grananja i skokova sadr(e samo po 5 'aze" aritmeti#ko logi#ke instrukcije i tore sadr(e po > 'aze" a samo *oad sadr(i ; 'aza. +ve aktivnosti po 'azama prikazane su u slede%oj tabeli. Faza E 6 ,*.IzlP, (op"'unc)4 ,*.IzlP, op pn(imm) 7BrtCP ,*.Izl In!truk i'e # 6ormata Lo$i-ke in!truk i'e I 6ormata In!truk i'e o,ra8an'a memori'i I7PmBP/C P/PP/@> ,P7B I%')..'1 C 4P7B I%'0..16 C ,*.IzlPP/@zp( I%1)..0 )RR6 ,*.IzlP,@zp(imm) *oad! M17PMB,*.IzlC tore! MB,*.IzlCP4 *oad! 7BrtCPM17 I'(,G4) then P/P,*.Izl P/P PC &1..'+ SS I%')..0 < <' 9ranan'a Skokovi

>

7BrdCP,*.Izl

)aza E! pribavljanje instrukcija" )aza 6! dekodiranje instrukcija i pribavljanje operanada" )aza 5! izvrenje operacija" izra#unavanje adresa" dovravanje grananja i skoka" )aza >!obra%anje memoriji" dovravanje instrukcija 7 'ormata i logi#ih instrukcija I 'ormata" )aza ;! dovravanje #itanja memorije. kra%enicama TpnU i TzpU ozna#eno je proirenje nulama i znakovno proirenje respektivno.

1%. 3pravl'a-ka 'edini a 23:5 pro e!ora 2op1te5 -a primerima jednotaktnog i vietaktnog procesora se vidi da se pribavljanje i izvravanje svake instrukcije obavlja kroz niz elementarnih aktivnosti. +vakve elementarne aktivnosti nazivamo mikrooperacijama. Mikrooperacije se izvravaju tako to se aktiviraju odre&ene upravlja#ke ta#ke. .pravlja#ke ta#ke su upravlja#ki ulazni priklju#ci (linije) elemenata hardvera koji u#estvuju u obavljanju odre&enih mikrooperacija. . upravlja#kim ta#kama deluju upravlja#ki signali" koje generie upravlja#ka jedinica procesora. +snovni zadaci upravlja#ke jedinice procesora su! Interpretacija instrukcija /P$a" to se svodi na 'ormiranje nizova mikrooperacija za svaku instrukciju" Ienerisanje upravlja#kih signala" .pravljanje prenosom podataka izme&u procesora i memorije i procesora i ulazno izlaznog sistema ra#unara. 1e'inisanje rada upravlja#ke jedinice zahteva navo&enje upravlja#kih signala koje treba aktivirati i kada to u#initi. 0o se mo(e raditi na razi#ite na#ine. Jedan od njih je prikaz promene stanja upravlja#ke jedinice. . svakom stanju navode se vrednosti podskupa upravlja#kih signala" kojima se aktivira jedna ili vie mikroopearcija koje se obavljaju paralelno. .pravlja#ka jedinica zadr(ava se u svakom stanju za unapred de'inisan vremenski interval ili do ispunjenja nekog uslova. 3remenske intervale odre&uje taktni signal" #ija u#estanost mo(e biti jednaka ili ve%a od u#estanosti taktnog signala procesora. .slov za izlazak mo(e biti pristigla potvrda da je neka aktivnost" nalo(ena u tom stanju" dovrena. -izovi stanja kroz koje prolazi upravlja#ka jedinica odre&eni su instrukcijama koje se pribavljaju i interpretiraju" kao i uslovima koji pri tome nastaju u procesoru i van njega. .pravlja#ka jedinica

procesora" #ije je ponaanje odre&eno na neki od navedenih na#ina" mo(e se implementirati na osnovu jedne od ove dve slede%e koncepcije! 9ao klasi#na sekvencijalna prekida#ka mre(a" to vodi direktnom (hardverskom) upravljanju" i 9ao maina sa zapam%enim programom" to vodi mikroprogramskom upravljanju. 1). 3pravl'a-ka 'edini a !a 2hardver!kim5 direktnim upravl'an'em -a primeru vietaktnog procesora videli smo da je za de'inisanje ponaanja upravlja#ke jedinice procesora neophodno koristiti koncepciju stanja" koja se iroko koristi u teoriji kona#nih automata ('inite state machine). .pravlja#ku jedinicu procesora mo(emo posmatrati kao kona#ni automat" zadat slede%im elementima! kupom stanja upravlja#ke jedinice S =0S 0 , S1 ,..., S n 1 / kupom ulaznih upravlja#kih signala ( =0'1 , ' ' ,..., ' m / kupom izlaznih upravlja#kih signala * =0 )1 , ) ' ,..., ) k / )unkcijom promene stanja FS 1 ( ( , S ) S " i )unkcijom izlaza F* 1 ( ( , S ) S . Postoje dva oblika kona#nih automata! Meal8$ev i Moor$ov automat. Mi %emo ovde koristiti Moor$ov automat" #ija je 'ukcija izlaza ima oblik F* 1 S * . 0o zna#i da su izlazni signali odre&eni samo stanjem u kome se automat nalazi. 9ona#ni automat mo(e se implementirati sekvencijalnom prekida#kom mre(om" koja se sastoji od kombinacione prekida#ke mre(e i memorijskih elemenata" kao na slici.

Im,lenta.ija kona"nog a tomata sek#en.ijalnom ,rekida"kom mre2om

Memorijski elementi mogu biti 'lip$'lopovi tipa 1" 7 " J9 ili 0 ili le#evi. +ni se taktiraju taktnim signalima odre&ene u#estanosti. Memorijski elementi odre&uju stanje kona#nog automata. . svakom od stanja kona#ni automat mo(e boraviti u toku jednog ili vie sukcesivnih taktnih ciklusa. Promene stanja vre se pri smenjivanju taktnih ciklusa. 9ombinaciona mre(a implementira 'unkcije promene stanja i izlaza. )unkciju promene stanja implementira tako to u i&tom taktnom ciklusu 'ormira ulazne signale za memorijske elemente" koji odre&uju stanje automata u i+1$om taktnom ciklusu. )unkcija izlaza implementira tako to na osnovu stanja i ulaznih signala u i$tom taktnom ciklusu 'ormira izlazne signale. .pravlja#ka jedinica sa direktnim upravljanjem je implementacija upravlja#ke jedinice sekvencijalnom prekida#kom mre(om. truktura ovakve upravlja#ke jedinice data je na slede%oj slici.

Blok -ema ,ra#lja"ke jedini.e sa direktnim ((arderskim) ,ra#ljanjem

T*ogika direktnog upravljanjaU je predstavljena emom sa prethodne slike. . bloku T0eku%e stanje .JU skoncentrisani su memorijski elementi upravlja#ke jedinice. .lazni signali u upravlja#ku jedinicu uklju#uju odre&ena polja registara instrukcija" stanja indikatora iz registra koda uslova (ili ekvivalente ovog reenja) i neke od upravlja#kih signala sistemske magistrale. Izlazni signali vode se na upravlja#ke linije (ta#ke) puteva podataka procesora i neke upravlja#ke linije sistemske magistrale. Zbog ranijih implementacija logi#kih kola se upravlja#ka jedinica sa direktnim upravljanjem naziva i o<iena upravljaka jedinica. Za projektovanje upravlja#ke jedinice sa direktnim upravljanjem mo(e se koristiti metoda tablice stanja" metoda elemenata za kanjenje idr. 1+. Pro'ektovan'e 3: metodom ta,li e !tan'a .pravlja#ka jedinica mo(e biti data na jedan od ve% navedenih na#ina ili tablicom stanjaHizlaza prikazanom tabelom. ik je stanje u koje upravlja#ka jedinica prelazi iz stanja i pod dejstvom ulaznih signala ?k. a Vi ozna#eni su izlazni signali koje upravlja#ka jedinica 'ormira u stanju i. Projektovanje uklju#uje minimizaciju stanja automata" kodiranje stanja i projektovanje sekvencijalne prekida#ke mre(e koja implementira automat. Za sve navedene 'aze projektovanja mogu se koristiti za to namenjeni programski sistemi.

tanjeH .lazni upravlja#ki signali Izlazni signal NE N6 ... Nm ... FHVF FE F6 Fm ... EHVE EE E6 Em ... ... ... ... ... ... n$EHVn$E (n$E)E (n$6)6 (n$E)m Projektovanje .J metodom tablice stanja vodi implementaciji .J sa minimalnim brojem 'lip$'lopova. -edostatak ove metode je nepostojanje lako uo#ljive veze izme&u elemenata dobijene sekvencijalne mre(e i dijagrama toka upravljanja .J. 1.. Pro'ektovan'e 3: metodom elemenata za ka1n'en'e Ponaanje .J dato je dijagramom toka upravljanja. +na se svodi na kori%enje prekida#ke mre(e #ija kon'iguracija odslikava dati dijagram toka upravljanja. Za svaki put u dijagramu toka upravljanja" u ovu mre(u treba uvesti po jedan put koji mu odgovara. 9retanju du( puta u dijagramu toka upravljanja za odre&enu instrukciju odgovara prostiranje jednog impulsnog signala du( odgovaraju%eg puta u toj mre(i. Prostiranje impulsnog signala mora biti takvo" da on za svako stanje " du( puta u dijagramu toka upravljanja" obezbe&uje vremenski interval ti koji odgovara tom stanju. 4rzina prostiranja impulsnog signala kroz prekida#ku mre(u" odnosno du(ina ovih vremenskih intervala" mo(e se de'inisati elementima za kanjenje. Mre(a koja implementira dati algoritam upravljanja dobija se na osnovu slede%a #etiri pravila! Par sukcesivnih stanja i i j zahteva uvo&enje elemenata za kanjenje. .pravlja#ki signali W8 irX i W8ipX koje .J izdaje stanjima i i j uzimaju se sa ulaza i izlaza ovog elementa za kanjenje" respektivno (slika pod a)" ili se 'ormiraju na osnovu njih. .slovno grananje sa uslovom na primer i'('(?)GGE) implementira se parom I logi#kih elemenata" na #ije ulaze se" pored impulsnog signala" vode uslovi '(?) i " ( ' ) (slika pod b) livanje n dolaznih grana u jednu odlaznu granu implenetira se I*I logi#kim lementom sa n ulaza (slika pod c) .pravlja#ki signal koji se aktivira u vie stanja upravlja#ke jedinice" usmerava se ka odgovaraju%im ta#kama preko I*I logi#kog elementa" #iji broj ulaza odgovara broju stanja u kojima se taj upravlja#ki signal aktivira. 9ao element za kanjenje mo(e se upotrebiti taktovani 1 'lip$'lop.

Projektovanje .J metodom elemenata za kanjenje daje sekvencijalnu prekida#ku mre(u u kojoj je lako uspostaviti vezu izme&u elemenata ove mre(e i kao odgovaraju%ih delova dijagrama toka upravljanja .J. +vo olakava testiranje kao i izmene u implemntaciji. -edostatak je to to ta implenetaciju .J sa n s stanja zahteva ns$E (ili ns) 'lip$ 'lopova" to je znatno vie od log ' ns koliko zahteva metoda tablice stanja. 1ruga varijanta ove metode zasniva se na projektovanju sekvencijalne prekida#ke mre(e #ija stanja nisu kodirana" ve% su dekodirana. 0a metoda se naziva i metoda jednog vru%eg elementa. 3ru%i memorijski element je onaj koji se trenutno nalazi u stanju E. 3eliki broj stanja .J i neregularna struktura mre(e .J sa direktnim upravljanjem ote(avaju i njeno projektovanje i implentaciju. Zato su za projektovanje sekvencijalnih mre(a uopte razvijeni programski sistemi koji automatizuju ovo projektovanje.

1/. Mikropro$ram!ki or$anizovana 3: Mikroprogramiranje je sistematska tehnika za implemetiranje upravlja#kih jedinica ra#unara" zasnovana na koncepciji programa zapam%enog u memoriji. 2lementi mikroprograma su mikroinstrukcije smetene u upravlja#koj (mikroprogramskoj) memoriji ra#unara. +snovni zadatak mikroinstrukcija je izdavanje naloga za izvrenje odre&enih podskupova mikrooperacija. 0o se posti(e postavljanjem upravlja#kih signala na odre&ene vrednosti. Me&utim mikroprogram mora odre&ivati i redosled izvravanja (nizanje) mikroinstrukcija. ekvercnijalno nizanje mikroinstrukcija najpogodnije je realizovati broja#em mikroinstrukcija (YP/). Promene adresa mikroinstrukcija grananjima i skokovima zahteva mogu%nost punjenja broja#a mikroinstrukcija adresama odredita grananja odnosno skokova. Prelazak na po#etak mikroprograma pribavljene mainske instrukcije zahteava odre&ivanje novog sadr(aja broja#a mikroinstrukcija na osnovu koda operacije te instrukcije" prisutne u registru instrukcija I7. truktura mikroprogramski organizovane .J prikazana je na donjoj slici. Mikroprogrami mainskih instrukcija smeteni su u mikroprogramskoj memoriji" #ije lokacije adresira broja# mikroinstrukcija. Mikroinstrukcija pribavljena iz mikroprogramske memorije smeta se u registar mikroinstrukcija 7MI (nije prikazan na slici)" odalkle se delovi mikroinstrukcije alju na upravlja#ke linije puteva podataka (. ) i na ulaze logike za izbor adrese (M+p@.slov@, M). adr(ajem broja#a mikroinstrukcija upravlja logika za izbor adrese.

20. Formati mikroin!truk i'a -ajoptiji 'ormat mikroinstrukcija (slika pod a) sadr(i kod mikrooperacije (M+p)" polje upravlja#kih signala (. ) i polje adrese slede%e mikroinstrukcije (, M). M+p ukazuje na tip mikroinstrukcije. . polju uslova mogu se navesti vrednosti signala uslova pri kojima dolazi do granja. 9ako ne postoji potreba da se svakom mikroinstrukcijom menja linearni tok mikroprograma" 'ormat mikroinstrukcija mo(e se skratiti slede%im reenjem. .mesto jednog" uvedimo dva 'ormata mikroinstrukcija! jednim %emo samo izdavati naloge za aktiviranje upravlja#kih signala" a drugim %emo samo menjati linearni tok programa (slika pod b). +vakvo skra%enje mikroinstrukcija pove%ava du(inu mikroprograma" a time i vreme njegovog izvrenja.

21. Proto-na or$aniza i'a pro e!ora Proto#na organizacija procesora je oblik implementacije procesora kojim se preklapa izvrenje vie instrukcija. 1eo hardvera proto#nog procesora" koji u#estvuje u obavljanju jedne od 'aza instrukcije" zovemo stepen proto#nog procesora. 4roj stepena proto#nog procesora odre&en je brojem razli#itih 'aza u pribavljanju i izvrenju instrukcija iz skupa instrukcija procesora. Proto#ni procesor proistekao iz vietaktnog procesora imao bi ; stepena! I)" I1" 2N" M2 i O4.Protocna organizacija proces. ne smanjuje latenciju pojedinih instrukcija vec se poboljsanje per'ormansi ogleda u propusnosti proces. u tome sto se u svakom taktu okoncava po neka instrukcija.Povecanje per'ormansi protocnih u odnosu na sekvencionalne proc. moze se iskazati kao da se smanjuje broj taktova po instrukciji a drugi je da se smanjuje perioda takta odnosno povecava ucestanost uz odr8avanje cpi$a.

22.

Putevi podataka proto-no or$anizovano$ pro e!ora

23. 3pravl'an'e proto-nim pro e!orom 9od proto#nih procesora javljaju se upravlja#ki signali koji su raspore&eni po stepenima na slede%i na#in! . okviru I) stepena . svakom taktnom ciklusu generie se signal dozvole upisa u P/" nezavisno od pribavljane instrukcije. Me&utim" novi sadr(aj P/$a bira se izme&u inkrementiranog prethodnog sadr(aja P/$a i odredita grananja eventualne instrukcije grananja koja je dospela u M2 stepen. 0o biranje se vri multiplekserom. . okviru I1 stepena ,ktivnosti u I1 stepenu obavljaju se nazvisno od instrukcije prisutne u ovom stepenu. Jedini izuzetak je proirenje polja I)HI1.I7E;.F" koje mo(e biti znakovno ili nulama. . okviru 2N stepena ,ktivnostima u ovom stepenu upravlja se signalima ,*. rc" ,*.ctr i 7eg1st. ignalom ,*. rc bira se drugi operand ,*.$a" koji mo(e biti I1H2N.4 ili I1H2N.Imm. ignalima ,*.ctr de'inie se operacija koja se nala(e ,*. jedinici. Preko 7eg1st se bira odredisni registar instrukcije rt ili rd. . okviru M2 stepena ,ktivnostima u ovom stepenu upravlja se signalima 4ranch" Mem7d i MemOr. .pravlja#ki signal 4ranch ukazuje da se radi o instrukciji grananja. ignalima Mem7d i MemOr nala(e se #itanje iz" odnosno upis u memoriju podataka. . okviru O4 stepena .pravlja#kim signalima Memto7eg se za upis u odredini registar bira podatak M2HO4.*M1 ili M2HO4.,*..rez. ignalom 7egOr nala(e se upis ovako odre&enog podatka u odredini registar. .pravlja#ke signale generie upravlja#ka jedinica" locirana u okviru I1 stepena proto#nog procesora. +vi upravlja#ki signali prenose se do stepena" u kojima se oni koriste. Pored ovih upravlja#kih signala" od jednog do drugog proto#nog registra prenose se i druge vrednosti vezane za odgovaraju%u instrukciju. 0o se odnosi na indekse registara koji mogu biti odredini registri instrukcija" rt i rd. . 2N stepenu se preko multipleksera za instrukciju u ovom stepenu bira indeks r= odredinog registra.

2". Strukturni hazardi. Pri izvravanju nekih instrukcija javljaju se zastoji. +vi zastoji dovode do toga da se u nekim taktnim ciklusima ne kompletira ni jedna instrukcija" to pove%ava broj taktnih ciklusa po instrukciji (/PI) na vrednost ve%u od E. ituacije pri radu proto#nog procesora" koje dovode do zastoja u njegovom radu" nazivamo hazardima Prema uzroku hazarda razlikujemo! strukturne" hazarde podataka i hazarde upravljanja. 2%. ;la!i6ika i'a hazarda podataka Posmatramo dve instrukcije Ij i Ik izme&u kojih postoje zavisnosti po podacima preko registra 7 i" pri #emu Ik sledi Ij. ,ko se ove dve instrukcije istovremeno na&u u proto#nom procesoru" mogu se javiti slede%i hazardi podataka! E. Zitanje nakon upisa instrukcija Ik pokuava da pro#ita izvorini operand iz 7 i pre no to Ij obavi upis" tako da Ik nekorektno uzima staru vrednost podatka. +vo je naj#e%i tip hazarda podataka. Zavisnost po podacima" koja dovodi do njega naziva se prava zavisnost. 6. .pis nakon upisa Ik pokuava da upie operand pre nego to ga je upisala Ij. .pisi su obavljeni obrnutim redosledom. Zavisnost po podacima" koja dovodi do njega naziva se izlazna zavisnost. 5. .pis nakon #itanja $ Ik pokuava upis u odredite pre nego to ga pro#ita I j" tj. tako da Ij nekorektno dobija novu vrednost. Zavisnost po podacima" koja dovodi do njega naziva se anti$zavisnost. 2). Iz,e$avan'e hazarda podataka premo18avan'em 3rlo e'ikasan na#in izbegavanja podataka koji se sastoji u dostavljanju izvorinih operanada zavisnim instrukcijama pre nego to ih instrukcije proizvo&a#i rezultata upiu u odredine registre. ,11 7E" 76" 75 *O 7>" EF(7E) O 6F(7E)" 7> . ovom nizu instrukcija postoje zavisnosti po podacima izme&u slede%ih parova! ,11 i *O i ,11 i O preko registra 7E" kao i *O i O preko registra 7>. 4ez preduzimanja posebnih mera" one vode hazardima podataka tipa #itanje nakon upisa.

Iz#r-enje ,ret(odnog niza instr k.ija 3ez zastoja. %treli.ama je ,okazano odakle zeti ,odatak i gde ga dosta#iti da 3i se iz3egli (azardi.
,11 proizvodi rezultat u 0/5" a upisuje ga u 7E u 0/;. *O koristi taj rezultat u svojoj 2N 'azi" dakle u 0/>. Po#etak 0/> je poslednji trenutak kada se *O$u mora dostaviti rezultat instrukcije ,11 da bi ona obavila 2N 'azu bez zastoja. 9ako je u tom trenutku rezultat prisutan na izlazu proto#nog registra 2NHM2" treba uspostaviti put kojim se zahtevani podatak mo(e preneti odatle na odgovaraju%e ulaze ,*.$a u 2N stepenu. +va tehnika je poznata kao premo%avanje. 2+. *O ,11 .4 +7I <azardi podataka ko'i !e ne mo$u iz,e8i premo18avan'em 7E" EF(75) 7=" 7E" 76 7>" 7;" 7E 7A" 7E" :56

Iz#r-enje ,rt(odni( instr k.ija 3ez zastoja

Izme&u instrukcije *O i ostalih instrukcija postoje zavisnosti po podacima koje" osim sa instrukcijom +7I" vode hazardu podataka. *O proizvodi rezultat na kraju 0/>. 1a bi se instrukcija ,11 izvravala bez zastoja" rezultat iz *O morao bi joj biti dostavljen na po#etku 0/>. Poto to nije mogu%e (ni premo%avanjem ne mo(emo vreme vra%ati unazad) 2N 'aza instrukcije ,11 mora se odlo(iti za 0/;" kada joj se premo%avanjem mo(e dostaviti zahtevani podatak. 2.. Iz,e$avan'e hazarda podataka planiran'em in!truk i'a Lazardi podataka se mogu izbe%i ako bi smo rastojanje izme&u instrukcija I j i Ik mogli pove%ati iznad kriti#ne vrednosti. 0o se mo(e posti%i premetanjem nekih nezavisnih instrukcija sa svojih polaznih pozicija u pozicije izme&u ovog para instrukcija. Pri tome se mora voditi ra#una da se time ne promeni algoritam koji program implementira. +vakav na%in izbegavanja hazarda podataka naziva se planiranje instrukcija. 9ako smo ranije zaklju#ili pri premo%avanju opasnost od hazarda postoji samo posle instrukcija >oad" i to samo ako zavisna instrukcija neposredno sledi za njom. 0ada planiranjem instrukcija treba iza instrukcije >oad umetnuti jednu nezavisnu instrukciju" #ime se opasnost od hazarda otklanja. +tklanjanje hazarda planiranjem instrukcija ima svoju cenu! ,nalizu zavisnosti po podacima izme&u instrukcija u programu i razdvajanje zavisnih instrukcija na bezbedno rastojanje umetanjem nezavisnih instrukcija izme&u njih" i pove%ani broj anga(ovanih registara +vo obavljaju kompilatori. 2/. <azardi upravl'an'a 2$ranan'a5 Javljaju se pri izvravanju instrukcija za upravljanje tokom programa. . tu grupu spadaju instrukcije grananja" skokova" poziva procedura i povratka iz procedura. Instrukcije grananja najbolje reprezentuju probleme koji se pri tome javljaju. Lazardi grananja nastaju kao posledica neblagovremenog odre&ivanja adrese instrukcije koja %e biti izvrena posle instrukcije grananja. +pasnost od nekorektnog izvrenja programa posle instrukcije grananja naziva se hazard grananja. Izbegavanje hazarda grananja zahteva zastoje u pribavljanju instrukcije$dinami#kog sledbenika grananja" pri #emu se ignorie ve% pribavljena instrukcija$sekvencijalni sledbenik grananja. 4roj taktnih ciklusa od prve 'aze instrukcije grananja do pribavljanja instrukcije sledbenika grananja" isklju#uju%i oba ova taktna ciklusa" naziva se kanjenje grananja. 30. Sman'en'e ene $ranan'a Postoji vie na#ina" a neki od njih su! E. odre&ivanje ishoda grananja i odredita grananja u stepenu to bli(em stepenu pribavljanja instrukcija" 6. pretpostavka da grananje ne%e biti obavljeno" 5. zakanjeno grananje" >. predvi&anje grananja" ;. pribavljanje instrukcija i sa puta obavljenog i sa puta neobavljenog grananja" itd. 1. Lardver za izra#unavanje adrese odredita grananja i proveru ispunjenja uslova grananja mo(emo premestiti iz 2N stepena u I1 stepen. Poto ,*. mora ostati u 2N stepenu za proveru ispunjenja uslova grananja u I1 stepenu uvedimo dodatni blok uslova. -apomenimo i ovde da se u I) 'azi paralelno vri pribavljanje nove instrukcije i odre&ivanje adrese slede%e instrukcije. +vakvo reenje mo(e uvesti hazard podataka izme&u instrukcije grananja i prethodne instrukcije" #iji se rezultat koristi u instrukciji grananja.

6. Jednostavan pristup koji mo(e smanjiti zastoje zbog instrukcija grananja sastoji se u tome da smatramo da se grananje uvek obavlja" ili da se grananje nikada ne obavlja. Imaju%i u vidu navedene verovatno%e ishoda grananja" prvi pristup je realniji. 7eenje kada polazimo od toga da se grananje uvek obavlja zahteva zastoj u prelasku na slede%u instrukciju do izra#unavanja adrese odredita grananja. . razmatranom proto#nom procesoru taj zastoj traje jedan taktni ciklus. 7eenje kada polazimo od toga da se grananje nikada ne obavlja doputa da se posle instrukcije grananja uvek nastavi sa pribavljanjem instrukcija sa puta neobavljenog grananja" to ne zahteva zastoje. Po razreenju ishoda grananja" ako do grananja zaista ne dolazi" nastavlja se sa izvrenjem pribavljenih instrukcija. ,ko" me&utim" do grananja do&e" moraju se odbaciti pribavljene instrukcije i zapo#eti novo pribavljanje od instrukcije$odredita grananja. 5. Zakanjeno grananje je koncepcija koja obezbe&uje da se posle instrukcije grananja" nezavisno od ishoda grananja" pribavi k instrukcija sa puta neobavljenog grananja" pre nego to se eventualno pre&e na instrukciju$odredite grananja. +vih k instrukcija" sekvencijalnih sledbenika instrukcije grananja" nalaze se u takozvanim slotovima kanjenja grananja. +dlo(eni prelazak na odredinu instrukciju treba da eliminie zastoje u izvravanju instrukcija iza instrukcije grananja. . slotove kanjenja grananja mogu se umetnuti (planirati) instrukcije uzete! 4 ispred instrukcije grananja" 4 sa puta obavljenog grananja i 4 sa puta neobavljenog grananja. >. Predvi&anje ishoda grananja mo(e doprineti smanjenju izgubljenih taktnih ciklusa zbog grananja. ,ko je predvi&en ishod neobavljanje grananja" posle instrukcije grananja mo(emo nastaviti sa pribavljanjem i izvravanjem instrukcija$sekvencijalnih sledbenika instrukcije grananja bez zastoja. ,ko je predvi&en ishod obavljanje grananja treba to pre do%i do adrese odredita grananja. Idealno bi bilo da ve% pri pribavljanju instrukcije znamo da se radi o instrukciji grananja" kao i da adresu odredita grananja imamo ve% u tom taktnom ciklusu. 0ada bismo ve% u slede%em taktnom ciklusu mogli da pribavimo instrukciju$sledbenika obavljenog grananja. 0o se mo(e posti%i kori%enjem ba'era odredita grananja.

;. Povremeno gubljenje taktnih ciklusa u slu#ajevima pogrenog predvi&anja grananja mo(e se izbe%i tako to se posle instrukcije granja pribavljaju instrukcije i sa puta obavljenog i sa puta neobavljenog grananja. I u tom slu#aju treba koristiti ba'er odredita grananja. tepeni do kojih mogu dopreti instrukcije pribavljene posle instrukcije grananja do razreenja grananja moraju biti udvojeni" tako da mogu prihvatati instrukcije sa oba ova puta. 0ek po razreenju grananja odbacuju se instrukcije sa pogrenog puta i nastavlja samo sa instrukcijama sa ispravnog puta. 31.

Pro1iren'e proto-no$ !i!tema za rukovan'e opera i'ama !a vi1e iklu!a izvr1en'a

lo(enije operacije sa celobrojnim operandima" kao to su mno(enje i deljenje" zahtevaju du(a vremena izvrenja i obavljaju se na posebnim hardverskim jedinicama" takozvanim mno(a#ima i deliteljima. Pretpostavimo da u proto#no organizovanom sistemu imamo > 'unkcionalne jedinice! E. glavnu celobrojnu jedinicu koja obavlja aritmeti#ko$logi#ke operacije" >oad" Store i grananjaM aritmeti#ko$ logi#ke operacije traju po jedan taktni ciklus" a >oad i Store po dva" 6. mno(a# celih brojeva i brojeva sa pokretnom zapetom ()P)" koji je proto#no organizovanM mno(enje traje ; taktnih ciklusa" 5. )P sabira# koji obavlja )P sabiranje" oduzimanje i konverzije izme&u celobrojnih i realnih zapisa" koji je proto#no organizovanM ove operacije traju 5 taktna ciklusa" i >. delitelj celobrojnih i )P operanada" koji nije proto#no organizovanM deljenje traje EF taktnih ciklusa. Proto#no organizovana 'unkcionalna jedinica mo(e da" kao i proto#ni procesor" preklapa izvrenje vie operacija.

Proto#ne 'unkcionalne jedinice ra#lanjene su na stepene" kojih u mno(a#u ima ;" a u )P sabira#u 5. 9ao i do sada" susedni stepeni razdvojeni su proto#nim registrima" odnosno le#evima. +bzirom da se proto#ni sistem iza I1 stepena grana u #etiri izvrne 'unkcionalne jedinice" smatra%emo da izme&u I1 stepena i ovih jedinica imamo #etiri proto#na registra! I1H2N" I1HME" I1H,E i I1H)PI1 ()PI1 ozna#ava )P integer delitelj). 0ako&e" izme&u 'unkcionalnih jedinica i O4 stepena imamo #etiri proto#na registra! M2HO4" M;HO4" ,5HO4 i )PI1HO4. Prevo&enje instrukcije iz 'aze dekodiranja u 'azu izvrenja zva%emo izdavanje instrukcije. 0ermin okonanje ili kompletiranje instrukcije koristi%emo da uka(emo da su sve predvi&ene aktivnosti na instrukciji obavljene. Pro!ramirani redosled instrukcija je programom odre&en redosled izvravanja instrukcija. .zdavanje -izvr"avanje, okonanje0 po redosledu instrukcije zna#i da se instrukcija izdaje (izvrava" okon#ava) redosledom koji odstupa od programiranog redosleda. >atencija operacije ili latencija 1unkcionalne jedinice je broj taktnih ciklusa u kojima program mora #ekati na kori%enje rezultata ove operacije u slede%oj instrukciji. +na je odre&ena kao broj taktnih ciklusa koji se pojavljuju izme&u ciklusa u kome neka instrukcija proizvodi rezultat i ciklusa u kome druga instrukcija mo(e koristiti taj rezultat. Za aritmeti#ko logi#ke operacije latencija je F" a za *+,1 E. .nterval zapoinjanja ili interval ponavljanja je broj taktnih ciklusa koji mora prote%i izme&u izdvajanja dve operacije istog tipa (odnosno na istoj 'unkcionalnoj jedinici). 32. Paralelni !a,ira-i !a !eri'!kim preno!om 2#=A5 9od ovih sabira#a najkriti#niji je put za 'ormiranje prenosa iz bita najve%e te(ine i to je najdu(i put u sabira#u i on odre&uje du(inu operacije. Maksimalno vreme sabiranja na ovakvom sabira#u irine n bitova odre&eno je vremenom prostiranja prenosa kroz svih n pozicija sabira#a. T!>nT1>2nTe gde je! 0s$vreme sabiranja" n$br. ci'ara" 0E$vreme prostiranja prenosa kroz jednobitni potpuni sabira#" 0e$vreme prostiranja signala kroz jedan logi#ki element. tatisti#kom analizom utvr&eno je da pri sabiranju slu#ajno izabranih binarnih sabiraka du(ine n" najve%a du(ina lanca prenosa ima srednju vrednost koja nije ve%a od log 6n. Pored prili#no obimne mre(e za obavljanje ovog zadatka" nedostatak ovih sabira#a je i zavisnost vremena sabiranja od vrednosti operanada.

33.

Paralelni !a,ira-i !a paralelnim preno!om 2=LA5 +snovni nedostatak sabira#a sa serijskim prenosom je dugo vreme sabiranja za najgori mogu%i slu#aj. /*, sabira#i imaju kratko vreme sabiranja (nezavisno od irine sabira#a" tj od n)! T!>%?Te 0s$vreme sabiranja" n$br. ci'ara" 0e$ vreme prostiranja signala kroz jedan logi#ki element. -edostatak ovih sabira#a je veliki obim hardvera" koji brzo raste sa pove%anjem br. bitova. I veliki 'aktor izlaza ('an$out). 7etko se koriste.

3". Paralelni !a,ira-i !a iz,orom preno!a 2=SLA5 3reme sabiranja na sabira#u sa serijskim prenosom mo(e se skratiti ako se skrati put prostiranja prenosa kroz ovakav sabira#. 0o posti(emo deobom n bitova sabiraka na kra%e grupe bitova" recimo du(ine k" tako da je n'm?k. 1akle umesto jednog n$bitnog koristimo m k$bitnih sabira#a. 0reba obezbediti da svih m k$bitnih sabira#a rade paralelno na 'ormiranju n$bitne sume. 0u se javlja problem. . svim k$bitnim grupama sabiraka" osim grupe najmanje te(ine" ulazni podatak je i prenos iz prethodne grupe manje te(ine. 3rednost ovog prenosa poznata je tek po okon#anju sabiranja u prethodnoj grupi. , za paralelan rad svih m k$bitnih sabira#a potrebno je ove vrednosti znati na samom po#etku sabiranja. 0a vremenska neusaglaenost mo(e se prevazi%i kori%enjem u svakoj od m$E grupa po dva k$bitna sabira#a sa serijskim prenosom! jednog sa pretpostavljenim prenosom F iz prethodne grupe i drugog sa pretpostavljenim prenosom E iz prethodne grupe. uma se uzima iz onog sabira#a koji za pretpostavljeni prenos iz prethodne grupe ima vrednost koja je upravo odre&ena sabiranjem u prethodnoj grupi. +vaj izbor vri se kori%enjem u svakoj grupi po k multipleksera. +tuda i naziv sabira# sa izborom prenosa.

3reme sabiranja u okviru grupe u najgorem slu#aju je 0gG6k0e (to je vreme sabiranja sabira#a sa serijskim prenosom). ,ko zanemarimo vreme prostiranja kroz multipleksere i I i I*I kola" ukupno vreme sabiranja mo(emo izra#unati kao 0sG0gG6k0e" ali ako ova vremena ne zanemarimo imamo! 0sG0g@(m$6)[6[0e@0mu?Gk60e@6(m$6)0e@50e 0mu?G50e je vreme prostiranja kroz multiplekser. /ena za ovo pove%anje brzine je skoro dvostruko ve%i obim hardvera sabira#a sa izborom prenosa (/ *,) u odnosu na sabira# sa serijskim prenosom (7/,).

3%. Mno@en'e pro!to ozna-enih elih ,ro'eva aG a m a m 1 . . . a 1 a 0 $ mno(enik bG b m b m 1 . . . b 1 b 0 $ mno(ilac a m " b m $ de'iniu znak broja a 1 a 0 " b 1 b 0 $ de'. apsolutnu vrednost broja cGabGc ' m c ' m 1 . . .c 1 c 0 $ proizvod

c ' m G a m b m $ ci'ra znaka proizvoda Mogu%e su dve varijante mno(enja! Mno(enje po#ev od ci're najmanje te(ine mno(ioca. Mno(enje po#ev od ci're najve%e te(ine mno(ioca. 9od mno(enja po#ev od ci're najmanje te(ine mno(ioca (algoritam na slede%oj strani) 4 o je ci'ra kojom se trenutno 'ormira parcijalni proizvod" zatim se vri pomeranje. (P"4)\E sadr(aji registara P i 4 se pomeraju udesno za jednu poziciju. Po zavretku mno(enja via polovina proizvoda je u P" a ni(a u 4. Pozicija m registra P sadr(i ci'ru znaka proizvoda. 0s vreme sabiranja sadr(aja registara P i ,M k m je broj jedinica u datom mno(iocu 4M 0p vreme pomeranja sadr(aja registara P i 4M 0M vreme potrebno za mno(enjeM 0i vreme pripreme mno(enja i odre&ivanja znaka proizvodaM TM >TiAkT!AmTp Poto su verovatno%e pojavljivanja ci'ara F i E u mno(iocu jednake" mo(emo uzeti da je kGmH6" pa je srednja vrednost vremena mno(enja! m Ts T m = Ti + ( )Ts + mTp = Ti + m( + Tp ) . ' ' Implementacija mno(enja po#ev od ci're najve%e te(ine mno(ioca zahteva pomeranje ulevo sadr(aja registra koji #uva sumu od tada 'ormiranih parcijalnih proizvoda (npr. registra P)" kao i registra mno(ioca (4). 7egistar 4 nije mogu%e (ili je vrlo komplikovano) koristiti za smetanje dela sume parcijalnih proizvoda" pa registar P mora biti du(ine 6m bitova. +vo su razlozi koji 'avorizuju implementaciju mno(enja po#ev od ci're najmanje te(ine u odnosu na mno(enje po#ev od ci're najve%e te(ine.

3). Mno@en'e prekodiran'em mno@io a i *ooth-ov al$oritam za mno@en'e Pravila za prekodiranje datog binarnog broja su! N(i) F F E E N(i$E) F E F E V(i) F E 1 F

1atom broju N dodati F iza ci're najmanje te(ine. I%i kroz dati broj N s desna u levo" po#ev od dodate ci're F. ,nalizirati par susednih ci'ara" i odre&ivati ci'ru po ci'ru prekodiranog broja V. ,ko pri tome u N nai&emo na promenu ci'ara sa F na E (EF)" ci'ru E iz N menjamo ci'rom 1 u V. Pri promeni ci'ara sa E na F (FE)" ci'ru F iz N zamenjujemo ci'rom E u V. ,ko nema promene ci'ara (obe F ili obe E)" u V unosimo ci'ru F. 1 $ ozna#ava $E *ooth-ov al$oritam za mno@en'e Prekodiranje omogu%ava da se direktno mno(e dva broja u dvoi#nom komplementu (4ooth$ov algoritam mno(enja). Mno(enje se vri po#ev od ci're najmanje te(ine u mno(iocu. adr(aj registra se preko komplementatora dostavlja na ulaz sabira#a. b1 GF pomo%na ci'ra za prekodiranje ci're najmanje te(ine datog mno(ioca.

1okaz da algoritam 'unkcionie!

C = a b = bi 'i a = (bi 1 bi )'i a =


i =0 m i =0

[(bm 1 bm ) ' + (bm ' bm 1 )' m 1 + (bm & bm ' )' m ' + ... = + (b' b& ) '& + (b1 b' ) ' ' + (b0 b1 ) '1 + (b1 b0 ) '0 ]a
Imaju%i u vidu da je
$E

bm r ' m r +1 = 'bm r ' m r

gde je rGE"6"..."m i b GF dobijamo C = [ bm ' m + ( 'bm 1 bm 1 ) ' m 1 + ( 'bm ' bm ' ) ' m ' +... =

+ ( 'b' b' ) ' ' + ( 'b1 b1 ) '1 + ( 'b0 b0 ) '0 ]a = [ bm ' m + (bm 1 ' m 1 + bm ' ' m ' +... + b' ' ' + b1 '1 + b0 ) '0 ]a

3+.

Mno@en'e prekodiran'em parova ,itova mno@io a bpi@EGbi@bi$E$6bi@E /i're mno(ioca Parcijalni bi@E bi bi$E proizvod bpi@E"i?a F F F F?a F F E @E?a F E F @E?a F E E @6?a E F F $6?a E F E $E?a E E F $E?a E E E F?a Zinjenica da se" pored mno(enja sa @E i $E" a mno(i i sa @6 i $6 ne ote(ava mno(enje. . tim slu#ajevima dovoljno je vrednost @a odnosno a pomeriti za jedno mesto u levo" #ime se ona mno(i sa 6. +vim se broj parcijalnih proizvoda prepolovljuje u odnosu na mno(enje originalnim mno(iocem ili mno(enjem prema 4ooth$ovom algoritmu. ukcesivni parcijalni proizvodi" 'ormirani prekodiranjem parova ci'ara mno(ioca" me&usobno su pomereni za po dve binarne pozicije. +vaj na#in mno(enja poznat je i kao 4ooth$ovo mno(enje prekodiranjem sa osnovom >.

3.. Bel'en'e elih ,ro'eva 2!a o,navl'an'em par i'alno$ o!tatka5 Parcijalni ostatak je ostatak deljenika koji koristimo u teku%em koraku deljenja. 1eljenik s" koji mo(e biti du(ine 6m bitova" upisuje se u registre P i 4" i to via polovina avp u P" a ni(a polovina anp u 4. 1elilac b" koji mo(e biti du(ine do m bitova upisuje se u registar ,. Pozicija m@E u registru P i pozicije m@E i m u registru , su pozicije znaka" pri #emu je , m@E"mGF. 7egistri P i 4 omogu%avaju pomeranje ulevo. Pozicija znaka registra P nije uklju#ena u ovo pomeranje. Pri pomeranju se ci'ra iz pozicije m$E registra 4 prenosi u poziciju F registra P. Paralelni sabira# je irine m@6 bita. Pri sabiranju komplementa sabiraka eventualni prenos iz pozicije znaka se ignorie. Po oduzimanju delioca od parcijalnog ostatka" ci'ra znaka registra P odre&uje slede%u ci'ru koli#nika" koju blok upravljanja upisuje u poziciju F registra 4. . toku deljenja" vii deo registra 4 sadr(i jo neiskori%eni deo deljenika" a njegov ni(i deo dobijene ci're koli#nika. Po zavretku deljenja registar 4 sadr(i koli#nik ]" a registar P ostatak r. 7egistar M u bloku upravljanja deliteljem de'inie broj koraka do zavretka deljenja. -aziv deljenje sa obnavljanjem parcijalnog ostatka poti#e od potrebe da se" posle dobijanja negativnog parcijalnog ostatka" dodavanjem pomerenog delioca parcijalni ostatak obnovi" poto on uvek mora biti nenegativan. Bel'en'e elih ,ro'eva ,ez o,navl'an'a par i'alno$ o!tatka . odnosu na deljenje sa obnavljanjem parcijalnog ostatka ovde je napravljena izmena gde se doputa da parcijalni ostatak mo(e imati u nekim koracima deljenja negativnu vrednost (nakon pomeranja sadr(aja registara P i 4 umesto oduzimanja treba dodati ,) i time se ukida potreba za obnavljanjem parcijalnog ostatka. 1eljenje bez obnavljanja parcijalnog ostatka sadr(i manji broj operacija oduzimanja" odnosno sabiranja" ali zahteva neto slo(enije upravljanje.

3/. Pred!tavl'an'e realnih ,ro'eva !a pokretnom zapetom 7ealni brojevi mogu se predstavljati na dva na#ina! 4 a 'iksnom zapetom" kada se izvestan broj pozicija rezervie za predstavljanje razlomljenog dela broja. 4 a pokretnom zapetom" navo&enjem dve veli#ine! mantise M" odnosno zna#ajnika Z" i eksponenta 2. 0ako&e mora biti zadata i osnova eksponenta 4. aGE6.;= predstavljamo u obliku E6";=[EFF ili E"6;=[EFE itd i taj oblik nazivamo normalizovani oblik broja sa pokretnom zapetom. . upotrebi su dva oblika! stariji oblik aGM[42 u kome je M normalizovana mantisa" EH4^MRE" 4 osnova eksponenta" 4GW6" <" EF" E=X i 2 eksponent" i noviji oblik" de'inisan standardom I222 A;>$<;" aGZ[4 2 u kome je Z zna#ajnik" E ^ZR6" a osnova eksponenta 4G6. Zna#ajnik Z je oblika ZGz"'" u kome je z celi deo zna#ajnika" a 1 je razlomak" F^'RE. Za kodiranje znaka brojeva sa pokretnom zapetom koristi se prosto iskazivanje znaka (znak i apsolutna vrednost broja). 7adi jednostavnijeg pore&enja eksponenata dva broja" eksponent 2 se predstavlja u polarizovanom obliku e! eG2@P" gde je P polarizacija ili pomak" veli#ine PG6 k$E (stariji oblik) ili PG6k$E$E" a k je broj binarnih ci'ara eksponenta. +vom trans'ormacijom se vrednosti eksponenta 2 iz opsega B$(6k$E$E)" 6k$EC pri polarizaciji PG6k$E$E preslikavaju u opseg vrednosti BF" 6k$EC polarizovanog eksponenta e. . taj isti opseg vrednosti polarizovanog eksponenta e preslikavaju se vrednosti eksponenta 2 iz opsega B$6k$E" 6k$E$EC pri polarizaciji PG6k$E. 4roj sa pokretnom zapetom predstavlja se u ra#unarau navo&enjem u posebnim poljima slede%ih njegovih elemenata! znaka s" polarizovanog eksponenta e i mantise M odnosno razlomka 1. 1u(ine ovih polja su date na slede%oj slici.

9riterijumi za ocenu predstavljanja brojeva sa pokretnom zapetom su! 4 preciznost (broj ci'ara razlomka ili mantise)" 4 opseg (brojno podru#je)" 4 broj ta#aka predstavljenih na brojnoj osi" 4 relativno rastojanje izme&u ta#aka" 4 opseg relativnih greaka zaokru(enja itd.

"0. Standard ICC +%"-.% za ,inarnu aritmetiku !a pokretnom zapetom tandard predvi&a predstavljanje brojeva u obliku aGZ[4e sa polarizacijom vrednosti PG6k$E$E. Poto celi deo normalizovanog zna#ajnika mora biti jednak jedinici" pri #uvanju podatka a van )P 'unkcionalnih jedinica ()P ).) mogu%e je izostaviti ovu jedinicu" i od zna#ajnika #uvati samo razlomak. Zato se zGE u normalizovanom zna#ajniku ZGz"' naziva implicitna ili skrivena jedinica. +vo reenje omogu%uje da se na ra#un skra%ivanja polja zna#ajnika produ(i polje eksponenta za jedan bit" i time pove%a opseg predstavljanja brojeva. tandard predvi&a #etiri 'ormata za predstavljanje brojeva sa pokretnom zapetom! sa jednostrukom precizno%u" sa dvostrukom precizno%u" sa jednostrukom proirenom precizno%u i sa dvostrukom proirenom precizno%u. )ormat sa jednostrukom precizno%u smeta podatak a u 56 binarne pozicije" sa du(inama polja prikazanim na donjoj slici. Pozicija F je M 4" a pozicija 5E je * 4. Platizacija je E6A.

)ormat sa dvostrukom precizno%u smeta podatak a u => binarne pozicije" sa du(inama polja prikazanim na donjoj slici. Pozicija F je M 4" a pozicija =5 je * 4. Polarizacija je EF65.

Jednostruki proireni 'ormat ima polje e du(ine _ EE bita" a polje 1 du(ine _ 5E bit. 1vostruki proireni 'ormat ima polje e du(ine _ E> bita" a polje 1 du(ine _ =5 bita.

2ma? i 2min su maksimalna i minimalna vrednost nepolarizovanih eksponenata normalizovanih brojeva respektivno. P je polarizacija eksponenta. -aredna tabela sadr(i prikaz na#ina predstavljanja specijalnih vrednosti" tj. onih vrednosti #ije se prikazivanje ne uklapa u normalizovani oblik E"'`62" 2min^2^ 2ma?.

1enormalizovane vrednosti brojeva su jo jedna speci'i#nost standarda I222$A;>. .mesto da se vrednosti izme&u F i E"F`62min predstavljaju kao F (to daje potkora#enje 'ormata)" ove vrednosti predstavljaju se kao F"'`6 2min. +vo daje postepeno potkora#enje #ime se dobija jo 6m$E predstavljenih vrednosti razli#itih od nule u oblasti malih vrednosti. +vo mo(e znatno da smanji greke koje se pojavljuju za bliske vrednosti operanada u operacijama oduzimanja.

"1.

Sa,iran'e ,ro'eva !a pokretnom zapetom

abiranje se obavlja svo&enjem oba sabirka na isti eksponent. Pri tome ve%i sabirak mora ostati normalizovan" pa se eksponent manjeg sabirka izjedna#ava sa eksponentom ve%eg sabirka. -aravno to mora biti pra%eno pomeranjem zna#ajnika manjeg sabirka udesno" za broj binarnih pozicija odre&en razlikom eksponenata ve%eg i manjeg sabirka. +bavlja se u slede%ih pet koraka! E) izabrati sabirak sa manjim eksponentom i njegov zna#ajnik pomeriti u desno za broj binarnih pozicija odre&en razlikom eksponenata ve%eg i manjeg sabirka" 6) za eksponent rezultata uzeti ve%i eksponent sabiraka" 5) sabrati zna#ajnike i odrediti znak rezultata" >) ako je potrebno" normalizovati vrednost rezultata" svesti vrednost razlomka na 65 ci're iza binarne zapete" i ako je potrebno ponovo normalizovati vrednost rezultata" ;) proveriti rezultat na prekora#enje$potkora#enje. "2. Mno@en'e i del'en'e ,ro'eva !a pokretnom zapetom Mno(enje! E) sabrati eksponente i oduzeti polarizaciju! ecGea@eb$P" 6) pomno(iti zna#ajnike i odrediti znak rezultata S c = S a S b 5) ako je potrebno" normalizovati vrednost rezultata" svesti vrednost razlomka na 65 ci're iza binarne zapete" i ako je potrebno ponovo normalizovati vrednost rezultata" >) proveriti rezultat na prekora#enje$potkora#enje. +duzimanje polarizacije u prvom koraku je posledica kori%enja eksponenata u obliku avika Pa (oba eksponenta su bila polarizovana pa se oduzima jedno P" a jedno zadr(ava proizvod). 1eljenje! E) oduzeti eksponente i dodati polarizaciju! ecGea$eb@P 6) podeliti zna#ajnike i odrediti znak rezultata S c = S a S b 5) ako je potrebno" normalizovati vrednost rezultata" svesti vrednost razlomka na 65 ci're iza binarne zapete" i ako je potrebno ponovo normalizovati vrednost rezultata" >) proveriti rezultat na prekora#enje$potkora#enje. 1odavanje polarizacije u prvom koraku neophodno je da bi se eksponent rezultata zadr(ao u polarizovanom obliku. "3. Bodatne i6re za o-uvan'e ta-no!ti rezultata i zaokru@ivan'e Pri obavljanju odgovaraju%ih operacija nad zna#ajnicima operanada dobijaju se rezultati koji mogu imati vie od 6> odnosno ;5 binarne ci're za jednostruku odnosno dvostruku preciznost. +bavljene analize pokazale su da je svo&enje zna#ajnika (ili mantise) rezultata na odre&enu du(inu dovoljno izra#unati razlomak (mantisu) rezultata sa dve odnosno tri dodatne ci're u odnosu na predvi&enu du(inu razlomka (mantisa). 0e ci're su ci'ra zatite" ci'ra zaokru(enja i lepljivi bit. /i're zatite i zaokru(enja su ci're u brojnom sistemu odre&enom osnovom eksponenta (4) i prema standardu I222 A;> to su tako&e bitovi (binarne ci're). +ve ci're su prve dve slede%e ci're rezultata iza poslednje ci're razlomka (mantise)" odre&ene kori%enim 'ormatom. *epljivi bit ima vrednost E ako je ostatak rezultata posle izdvajanja razlomka i ci'ara zatite i zaokru(enja razli#it od F" ina#e on ima vrednost F. *epljivi bit 'ormira se kao rezultat Uilia logi#ke operacije svih preostalih bitova ci'ara rezultata iza ci'ara zatite i zaokru(enja. "". Svo4en'e razlomka rezultata na potre,an ,ro' i6ara i $re1ke ko'e !e pri tome prave -eka se posle normalizacije u nekom od koraka dobije vrednost zna#ajnika ZGE"'$E"'$6...'$65rs" (r$ci'ra zaokru(enja" s$ lepljivi bit) kou treba svesti na 65 ci're razlomka. +vo svo&enje razlomka sa 6; na 65 ci're mo(e se izvesti na dva na#ina! 4 odsecanjem i 4 zaokru(ivanjem. 4 5dsecanje je postupak kojim se odbacuju dodatne ci're razlomka" tako da se dobija ZGE"' $E"'$6...'$65. 9ako ova vrednost aproksimira vrednosti zna#ajnika iz opsega ZGE"' $E"'$6...'$65FFbZGE"'$E"'$6...'$65EE to se greka aproksimacije odsecanjem menja u granicama od F"FF...FSFF...FbF"FF...FSEE...E" gde vertikalna crta ome&uje prve 65 ci're razlomka. Maksimalna vrednost greke aproksimacije je pribli(no jednaka vrednosti jedinice u poziciji ci're ' $65G(6$ 65 ). Za ovu aproksimaciju ka(emo da je polarizovana zato to je grka uvek istog (pozitivnog) znaka. @aokru<ivanje je postupak kojim se zna#ajnik oblika E"'$E"'$6...'$65rs zamenjuje vredno%u dobijenom dodavanjem ci're r u poziciji ci're '$65. Pri rGF zaokru(ivanje se svodi na odsecanje. . ovom slu#aju" kada su mogu%e ta#ne vrednosti u opsegu E"'$E"'$6...'$65FF...FbE"'$E"'$6...'$65FE...E" zaokru(ivanjem se pravi greka aproksimacije u opsegu

F"FF...FSFF...FbF"FF...FSFE...E. Pri rGE" kada su mogu%e ta#ne vrednosti u opsegu E"'$E"'$6...'$65EF...FbE"'$E"'$6...'$ 65EEE...E" zaokru(ivanjem se pravi grka aproksimacije u opsegu! $F"FF...FSFF...FbF"FF...FSFE...E. Ireka koja se #ini pri zaokru(ivanju je promenljivog znaka" pa nije polarizovana. Maksimalna vrednost greke aproksimacije jednaka je 6 $6> (E u poziciji $6>)" to je polovina vrednosti maksimalne greke pri odsecanju. -eka je posle normalizacije dobijena vrednost rezultata a" koja se nalazi izme&u dve predstavljive vrednosti aE i a6 za dati 'ormat" aE^a^a6. tandard I222 A;> predvi&a > mogu%a zaokru(ivanja! E. zaokru(ivanje na najbli(u vrednost" 6. zaokru(ivanje prema nuli (odsecanje)" 5. zaokru(ivanje navie (ka @c) i >. zaokru(ivanje nani(e (ka $c) "%. Parametri memori'e Memorije koje se koriste u ra#unarima sa#injava! Memorijski medijum" sposoban da ograni#eno ili neograni#eno dugo #uva prethodno unete podatke" i .pravlja#ki sistem memorije" koji omogu%uje upisivanje i #itanje podataka iz memorije po nalozima procesora ili drugih elemenata ra#unara. Memorija je 'izi#ki ili logi#ki izdeljena na blokove" #ije su veli#ine odre&ene du(inama osnovnih tipova podataka u arhitekturi ra#unara" ili njihovim celobrojnim umnocima. 0akve blokove memorije" kojima se pristupa odjednom" zva%emo memorijske lokacije. +bi#no je du(ina memorijskih lokacija jednaka du(ini registara podataka u procesoru. vaka memorijska lokacija ima jedinstvenu adresu" koja ozna#ava njeno mesto (poziciju) u okviru memorijskog medijuma. Prema in'ormacijama na osnovu kojih pristupamo memoriji da bi iz nje uzeli ili u nju stavili podatak" memorije mogu biti sa pristupom na osnovu! adrese i vrednosti dela podatka. Zavisno od tipa memorije mogu postojati ograni#enja u pogledu na#ina i redosleda pristupa lokacijama u memoriji. +#itavanje podataka prisutnih u memoriji mo(e zahtevati stalno napajanje elektri#nom energijom" ina#e se sadr(aj memorije gubi. 0akve memorije nazivaju se nestalne memorije. Poluprovodni#ke memorije spadaju u ovu kategoriju. Postoje i memorije koje posle upisivanja podataka u njih zadr(avaju te podatke i po ukidanju napajanja elektri#nom energijom i njih zovemo stalne memorije. +vde spadaju memorije sa magnetnim zapisom" kao i druge memorije kod kojih se zapisom menjaju 'izi#ke ili geometrijske karakteristike memorijskog medijuma. 3a(ni kvantitativni parametri memorije su kapacitet memorije" vremenski parametri memorije (vreme pristupa i vreme ciklusa)" propusnost memorije" snaga disipacije" speci'i#na cena" pouzdanost i drugi. 9apacitet memorije meri se koli#inom podataka koje memorija mo(e da prihvati i #uva. Izra(ava se u 94" M4 ili I4. 3reme pristupa memoriji (latencija memorije)" t ," de'inie se kao vremenski interval od prispe%a zahteva za #itanje memorije do trenutka kada taj podatak postane raspolo(iv na izlazima podataka memorije. 9od memorija sa proizvoljnim pristupom" vreme pristupa je konstantno" dok kod memorija sa serijskim i direktnim pristupom ono mo(e da varira u odre&enim granicama. 3reme ciklusa memorije" tc" de'inie se kao najkra%a perioda sa kojom memorija mo(e uspeno da prihvatiti uzastopna obra%anja. -avodi se samo za memorije sa proizvoljnim pristupom. 4rzina kojom se podaci prenose u ili iz memorije naziva se propusnost memorije" 1" i ona predstavlja odnos koli#ine prenetih podataka i vremenskog intervala u kome se prenos obavlja. naga disipacije predstavlja snagu koju zahteva memorija za svoj rad. naga disipacije navodi se za operativni re(im mirovanja. +na se u memoriji pretvara u toplotu koja mo(e otetiti memorijske komponente. peci'i#na cena memorije izra(ava se odnosom cene memorije i njenog kapaciteta. Iskazuje se u dolarima po M4 ili dolarima po I4. Pouzdanost memorije meri se srednjim vremenom izme&u otkaza. Pouzdanost memorijskih komponenata koje ne sadr(e pokretne delove je mnogo ve%a od pouzdanosti komponenata sa pokretnim delovima.

"). Sinhrone Binami-ke #AM 2B#AM5 2SB#( BB#( BB#2 i BB#3 SB#AM5 memori'e 0o je tip 17,M memorije #iji je rad sinhronizovan ulaznim taktnim signalom. ,sinhronom jezgru memorije dodati su i upravlja#ki registri" koji omogu%avaju da se radom 17,M$a upravlja komandama. 9omanda je kombinacija logi#kih nivoa upravlja#kih signala. 0ipi#ne komande su komanda aktiviranja vrste" komanda #itanja ili upisa" komanda pretpunjenja itd. Zip 17,M memorije sadr(i nekoliko nezavisnih memorijskih banaka (polja memorijskih %elija) sa pripadaju%im adresnim kolima i sens poja#ava#ima (ba'erima vrsta)" #iji se rad mo(e preklapati. Preko

upravlja#kih registara 17,M$a mo(e se izabrati jedna od ponu&enih du(ina (E" 6" > ili < re#i ili #ak cela vrsta) grupe podataka koji se mogu pro#itati ili upisati jednim pristupom u takozvanom re(imu grupe.

17,M memorije rapolo(ive su u dve varijante! kao ingle 1ata 7ate ( 17 17,M) i 1ouble 1ata 7ate (117 17,M). +ne se razlikuju po tome to 17 17,M prenosi po jednu re# u svakom taktnom ciklusu" dok 117 17,M prenosi dve re#i u svakom taktnom ciklusu" po jednu pri uzlaznoj i silaznoj ivici taktnog signala. 0o je postignuto pribavljanjem unapred po dva umesto jednog bita. 4rzina 117 17,M #ipova iskazuje se brzinom prenosa podataka po jednom priklju#ku podataka u MbHs i latencijom /*. 117 17,M memorije evoluirale su u novi tip 17,M memorije" 1176 17,M. +n je dobijen pribavljanjem unapred po >n umesto 6n bitova kod 117 tipa" i udvajanjem radne u#estanosti spoljanjeg inter'ejsa u odnosu na radnu u#estanost jezgra 17,M$a. "+. 3pravl'an'e B#AM memori'ama i ozve@avan'e B#AM memori'e )izika rada memorijskih %elija 17,M memorija je takva da zahteva periodi#no obnavljanje sadr(aja" takozvano osve<avanje D$A7 memorija. +no se vri tako to se pristupom vrsti pro#ita ceo njen sadr(aj" a zatim se povratnim upisom on obnovi. 9od 17,M #ipova koji sadr(e vie nezavisnih banaka" istovremeno se osve(avaju vrste sa istom adresom u svim bankama. +vakav na#in osve(avanja memorije nala(e se periodi#nim izdavanjem komande ,.0+ 72)72 L memoriji od strane kontrolera 17,M memorije. Pre izdavanja ove komande sve banke moraju pro%i kroz pretpunjenje. ,drese vrsta koje se osve(avaju generie kontroler osve(avanja u samom 17,M #ipu. +sve(avanje memorija mogu%e je i kada su drugi elementi sistema isklju#eni sa napajanja zbog utede energije. 0ada kontroler 17,M memorije komandom 2*) 72)72 L inicira osve(enje memorije bez potrebe za spoljanjim taktnim signalom. +vakvo autonomno osve(avanje obavlja se sve dok se posebnim nizom komandi ne iza&e iz re(ima samoosve(avanja. ve ovo opravdava uvo&enje posebnog kontrolera koji bi se bavio samo time. 9ontroleri 17,M$a obi#no su uklopljeni u #ipove koji obavljaju i druge '$je. kontroler 17,M memorije obavlja slede%e zadatke! -aloge procesora za pristupe memoriji radi #itanja ili upisa tans'ormie u komande pretpunjenja odre&enih banaka" aktiviranja vrsta i pristupa kolonama radi #itanja ili upisa. ,dresira memorijske module" grupe #ipova na njima" banke unutar #ipova" vrste i kolone u bankama. .pravlja osve(avanjem 17,M$a. .pravlja potronjom energije prevode%i memoriju u re(im mirovanja i natrag u operativni re(im po nalogu procesora. Pri razmatranju pristupa podacima u 17,M memoriji razlikova%emo dva obrasca pristupa! lokalizovani pristup" kod koga su uzastopni pristupi memoriji usmereni u jednu vrstu 17,M$a" i nelokalizovani pristup" kod koga su uzastopni pristupi memorije rasejani po razli#itim bankama i vrstama 17,M$a.

7ad kontrolera 17,M$a mo(e se organizovati tako da sve pristupe o#ekuje kao lokalizovane pristupe" za koje koristi kra%a vremena pristupa memoriji" ili da sve pristupe tretira kao nelokalizovane pristupe" sa punim vremenom pristupa memoriji. +vo daje dve strategije upravljanja 17,M memorijama! Strate!ija otvorene vrste, pri kojoj kontroler po zavrenom pristupu podataka u vrsti ostavlja tu vrstu otvorenom" o#ekuju%i da i slede%i pristup toj banci bude usmeren u istu vrstu. Strate!iju zatvorene vrste, pri kojoj kontroler po zavrenom pristupu podataka u vrsti zatvara tu vrstu" o#ekuju%i da slede%i pristup toj banci bude usmeren u neku drugu vrstu. 9ontroler koji implementira strategiju otvorene vrste mora imati po jedan registar u kome #uva adresu otvorene vrste u toj banci za svaku banku. Po prijemu naloga za #itanje ili upis iz procesora" kontroler 17,M$a proverava da li je pristup u neku ve% otvorenu vrstu. ,ko jeste" odgovaraju%oj grupi #ipova alje komandu za #itanje ili upis podataka" kada alje i same podatke. ,ko je to pristup u zatvorenu vrstu" alje komande za pretpunjenje" aktiviranje vrste i #itanje ili upis podataka. 9ontroler 17,M$a koji implementira strategiju zatvorene vrste ima jednostavniji model ponaanja. Po prijemu naloga za #itanje ili upis procesora" kontroler alje komande za aktiviranje vrste i #itanje (sa autopretpunjenjem) ili upis podataka (sa autopretpunjenjem). Zitanje i upis sa autopretpunjenjem obezbe&uju da se posle obavljenog #itanja ili upisa obavi i pretpunjenje te banke memorije. 0ime se vrsta kojoj je pristup obavljen zatvara" a banka se priprema za novi pristup. ".. CP#OM i 6le1 memori'e 0o su stalne memorije koje %e #uvati zapisane podatke i po prestanku napajanja. 7+M memorija je poluprovodni#ka memorija sa proizvoljnim pristupom #iji se prethodno upisani sadr(aj mo(e samo #itati. .pis podataka u 7+M vri se posebnim postupkom programiranjem 7+M$a. Zavisno od na#ina programiranja postoje #etiri tipa 7+M memorija! 7+M memorija koja se programira maskiranjem u procesu proizvodnje. P7+M memorija (programmable 7+M) koja iz proizvodnje izlazi kao Upraznaa" programira se samo jednom odgovaraju%im elektri#nim signalima. 2P7+M memorija (2raseable P7+M) tako&e se programira elektri#nim signalima" ali se programirani sadr(aj mo(e obrisati i ona ponovo programirati. 4rie se sadr(aj cele memorije osvetljenjem memorije ultraljubi#astom svetlo%u. 22P7+M memorija (2lectrical8 2P7+M) tako&e se programira elektri#nim signalima i ponovo programira. .nutranja organizacija 7+M memorije sli#na je organizaciji 7,M memorije. Ilavna razlika je u implementaciji polja memorijskih %elija. polja gledano 7+M memorija je organizacije 6m re#i ` = bitova. )le memorija je poluprovodni#ka memorija koja se mo(e programirati" brisati" i naravno #itati na mestu gde je trajno postavljena u ure&aju" ili kako se to ka(e Uon linea. Mogu se programirati pojedina#ne re#i ili stranice" a brisati ve%i delovi memorije" zvani blokovi ili sektori. )le memorije se koriste kao upravlja#ke memorije sa mogu%no%u upisa i sve vie kao prenosiva memorija za #uvanje ve%ih koli#ina podataka. "/. Stati-ke #AM 2S#AM5 memori'e Poluprovodni#ke 7,M memorije #ije su memorijske %elije implementirane sa = tranizstora imaju osobinu da upisani bit podatka pamte sve dok se napajaju elektri#nom energijom. +ne ne zahtevaju dodatne aktivnosti na odr(avanju upisanih podataka" pa se nazivaju statike $A7 memorije" 7,M. Izra&uju se u istoj tehnologiji u kojoj se izra&uju i registri procesora" pa su potencijalno br(e od 17,M memorija. Polje memorijskih %elija 7,M memorije organizovano je kao 6m re#i [ d bitova. Ima m adresnih ulaza" d ulaza$izlaza podataka i upravlja#ke ulaze / " O2 i +2.

%RAM memorija organiza.ije 'm re"i 5 + 3ito#a

,ktiviranjem ulaza / bira se 7,M #ip. ignal O2 ima aktivnu vrednost pri upisu i neaktivnu pri #itanju. ignal +2 aktivnom vredno%u odre&uje linije podataka kao izlazne" a neaktivnom kao ulazne. 7,M memorija ne multipleksira adresne linije" odnosno puna adresa joj se dostavlja istovremeno. 3reme ciklusa 7,M memorije nije du(e od vremena pristupa. 7,M memorija se tako&e izra&uje u asinhronoj i sinhronoj varijanti. inhrone 7,M memorije podr(avaju i rad u re(imu grupe" koji je vrlo e'ikasan kada se ovakve memorije koriste za gradnju sekundarnih ke memorija. Pore&enje 17,M i 7,M memorija pokazuje da su 7,M memorije daleko manjeg kapaciteta po #ipu" br(e" sa konstantnim vremenima pristupa i ciklusa" skuplje i jednostavnije za upravljanje. 17,M memorije su mnogo ve%eg kapaciteta po #ipu" sporije" sa promenljivim vremenima pristupa i ciklusa" je'tinije i slo(enije za upravljanje. %0. A!o i'ativna memori'a ,socijativne memorije su memorije u kojima je zastupljen asocijativni pristup podacima. Pristup podatku u asocijativnoj memoriji vri se na osnovu poznavanja vrednosti nekog dela podatka" takozvanog klju#a. Pore&enjem datog klju#a sa vrednostima istih delova svih podataka prisutnih u asocijativnoj memoriji zaklju#uje se da li je tra(eni podatak prisutan u memoriji. Ishod tra(enja mo(e biti pozitivan" kada imamo in'ormaciju koji podaci zadovoljavaju uslov tra(enja" ili negativan" to zna#i da tra(eni podatak nije prisutan u memoriji. +rganizacija asocijativne memorije na nivou blokova prikazana je na slici.

Blok -ema aso.ijati#ne memorije

Polje memorijskih %elija sadr(i podatke zapam%ene u memoriji. . ulazni registar unosi se podatak koji se upisuje u memoriju" ili podatak klju# na osnovu koga %e memorija biti pretra(ena i na&eni odgovaraju%i podaci pro#itani. 0ra(enju prethodi de'inisanje maske u kojoj polja sa binarnim jedinicama maskiraju (isklju#uju) polja podataka u memoriji koja se porede sa unetim klju#em. 0ra(enje podataka u memoriji vri se istovremenim pore&enjem unetog klju#a sa nemaskiranim poljima svih podataka u memoriji. *okacije memorije koje sadr(e prona&ene podatke se preko linija laganje ozna#avaju u bloku selekcije. Po zavrenom tra(enju podataka" prona&eni podaci (mo(e ih biti vie od jednog)" odre&eni signalima na linijama elekcija" se po nekom redosledu preko izlaznog registra izdaju iz memorije. Implementacija asocijativnog pristupa memoriji zahteva da svakoj lokaciji u polju memorijskih %elija bude pridru(ena logika za pore&enje sadr(aja memorijske lokacije sa nemaskiranim sadr(ajem ulaznog registra. Jednobitna memorijska %elija asocijativne memorije mo(e imati logi#ku emu kao na sl.

6ogi"ka -ema jedno3itne memorjske 7elije aso.ijati#ne memorije i njen ,rikaz kao 3lok -eme(desno)

+snovu memorijske %elije #ini 1 'lip 'lop sa pridru(enom logikom. *inija .lazni podatak 1 vodi se iz ulaznog registra" linija Maskiranje M9 iz registra maske" a linija elekcija iz bloka selekcije. *inija laganje *, vodi se ka bloku selekcije" a linija Izlazni podatak K ka izlaznom registru. ignali *, i K odre&eni su sa izrazima *,G KG

Pri upisu podataka u memoriju signali GE" O2GE uz M9GF generiu taktni signal kojim se podatak 1 upie u 1 'lip 'lop i prosledi na izlaz K. Pri tra(enju podataka u memoriji aktivan je samo signal M9GFM Pri #itanju podataka iz memorije sa GE ozna#avaju se %elije #iji se sadr(aj #ita. Pri tome je M9G? (neva(no)" a izlazni signal , =, " . ,socijativna memorija je slo(ena" iz #ega proisti#e njena visoka cena. Zato se u praksi sre%u implementacije asocijativnih memorija malog kapaciteta" reda nekoliko desetina do nekoliko stotina re#i. ,socijativne memorije se nalaze u ke memorijama i virtuelnim memorijama. %1. <i'erarhi'!ki memori'!ki !i!tem ra-unara 7aspolo(ive tehnologije za gradnju memorija ne omogu%avaju jednostavno reenje memorija koje bi ispunile opre#ne zahteve u pogledu brzine" kapaciteta i cene. Po&imo od problema obezbe&enja memorije dovoljnog kapaciteta. Ilavna memorija (IM) ra#unara u prolosti je gra&ena u tehnologiji 'eritnih jezgara" zatim magnetnih 'ilmova i najzad u tehnologiji poluprovodni#kih integrisanih kola. . svakoj od ovih tehnologija ona je bila isuvie skupa da se samo sa njom ra#unaru obezbedi memorija potrebnog kapaciteta. Memorijski medijumi koji je mogu dopuniti" kao to su magnetni diskovi u razli#itim izvo&enjima" imaju mnogo ni(u cenu" ali su i mnogo sporiji od nje. Problem je reen tako to je glavnoj memoriji" kao primarnoj memoriji" pridodata jedinica diska kao sekundarna memorija. . manjoj i br(oj glavnoj memoriji dr(e se samo aktuelni podaci. 9ada podaci koji nisu prisutni u glavnoj memoriji postanu aktuelni" oni se u nju prenose iz sekundarne memorije. +vo je pra%eno vra%anjem podataka za koje se veruje da su postali neaktuelni iz glavne u sekundarnu memoriju. 1rugi problem sa memorijama je njihova sporost. -aime" kod ra#unara je uvek bila prisutna razlika u brzini centralnog procesora /P i glavne memorija. +va razlika se vremenom samo uve%avala. 4ilo je mnogo pokuaja da se brzina memorije pribli(i brzini /P$a. 7egistri opte namene" uvedeni u procesore pedesetih godina" samo su delimi#no ubla(ili ovaj problem. 0ek su ke memorije uspeno premostile jaz u brzinama procesora i glavnih memorija ra#unara.

8i#oi (ijera(ijskoj organiza.iji memorije. 9dalja#aj 7i se od :$4a memorije ,ostaj s#e #e7e i s,orije.
Lijerarhijska organizacija memorije ima dva oslonca. Prvi je princip lokalnosti pro!rama. *okalnost programa ogleda se u tome da obra%anje programa memoriji u nekom vremenskom intervalu nije ravnomerno raspore&eno po oblasti memorije dodeljene tom programu. Program provodi eFf vremena u izvravanju samo EFf (stati#kih) naredbi programa. *okalnost programa ima dve dimenzije! Aremensku lokalnost % ako se program obratio nekoj lokaciji memorije" vrlo je verovatno da %e se uskoro ponovo obratiti. Prostornu lokalnost % ako se program obratio nekoj lokaciji memorije" vrlo je verovatno da %e se uskoro obratiti nekoj od susednih lokacija memorije. Lijerarhijska organizacija memorije koristi lokalnost programa tako to najaktuelnije podatke #uva u brzom memorijskom nivou najbli(em procesoru. Iledaju%i sa strane procesora" memorijski nivoi pore&ani su po redosledu opadanja brzine ( i cena) a po redosledu porasta kapaciteta. 1rugi oslonac su 'izi#ki zakoni koji se primenjeni na hardver ra#unara" mogu 'ormulisati kao! manje je #r<e. Lardverske komponente manjih dimenzija su u principu br(e od istih komponenti ve%ih dimenzija. Za ovo postoje dva razloga! E. Prvi je da kod brzih ra#unara prostiranje signala glavni uzrok kanjenja. . ve%im memorijama vreme prostiranje signala je du(e zvog ve%e du(ine vodova koji povezuju #ipove u memoriji" pove%anog broja nivoa logike za dekodiranje adresa" i ba'era koji se moraju umetnuti izme&u procesora i memorije.

6. 1rugi razlog je da se u ve%ini tehnologija mogu dobiti memorije manjeg kapaciteta koje su br(e od memorija ve%eg kapaciteta. %2. ;e1 memori'e !a direktnim( !kupno-a!o i'ativnim i potpuno-a!o i'ativnim pre!likavan'em Prema broju ke blokova u koje se mo(e preneti blok podatak i iz glavne memorije" i 00,1,..., - B 1/ , ke memorija mo(e biti sa! potpunim asocijativnim preslikavanjem. skupno asocijativnim preslikavanjem" i direktnim preslikavanjem 9od ke memorije sa potpunim asocijativnim preslikavanjem blok podataka i mo(e biti prenet u bilo koji ke blok k, k 00,1,..., C B 1/ . 9od ke memorije sa direktnim preslikavanjem" blok podataka i mo(e biti prenet samo u ke blok k odre&en izrazom kGi mod /b. 9od ke memorije sa skupno$asocijativnim preslikavanjem" po , sukcesivnih ke blokova obrazuje skup ke blokova j jGF"E"..."s$E. sG6r G /bBA je broj skupova ke blokova u ke memoriji. 4lok podataka mo(e biti prenet u bilo koji od , ke blokova u skupu ke blokova k kGi (mod) s. 4roj ke blokova , u skupu naziva se asocijativnost skupa. ,dresa a podatka u glavnoj memoriji koristi za pristup podatku u ke memorji. ,dresa a deli se na dva polja pri potpunom asocijativnom preslikavanju" a na tri polja pri skupno$asocijativnom i direktnom preslikavanju.

$odela adresa gla#noj memoriji, d 2ine g 3ito#a, na adresna ,olja kod ke- memorije1 a)sa ,t, no aso.ijati#nim ,reslika#anjem i 3)sk ,no4aso.ijati#nim i direktnim ,reslika#anjem
Polje Upoma de'inie pomeraj podatka unutar bloka podataka. Polje Uindeksa kod ke memorija sa skupno asocijativnim preslikavanjem adresira skup koji mo(e sadr(ati tra(eni podatak. 9od ke memorija sa direktnim preslikavanjem ovo polje adresira jedinstveni ke blok koji mo(e sadr(ati tra(eni podatak. Polje Uetiketaa sadr(i vii deo adrese podatka u glavnoj memoriji" preostao posle izdvajanja sadr(aja polja Upoma i Uindeksa. 2tiketa je u sutini binarna oznaka jednog od IbH/b blokova podataka koji se preslikavaju u ke blok" odnosno jednog od IbHs blokova koji se preslikavaju u skup" odre&en sadr(ajem polja Uindeksa. kupnoasocijativno prelazi u direktno preslikavanje kada skup spadne na samo jedan ke blok (,GE" sG/b). kupno$asocijativno preslikavanje prelazi u potpuno asocijativno preslikavanje kada jedan skup obuhvati sve blokove ke memorije (,G/b" sGE). 9ada procesor izda nalog za #itanje podataka" adresom memorijske lokacije glavne memorije napuni se adresni registar memorije M,7. 7egistar M,7 podeljen je na polja Uetiketaa" Uindeksa i Upoma. adr(ajem polja Uindeksa preko selektora skupa" bira se jedan od skupova u keu. . ovom skupu istovremeno se #ita svih , blokova podataka. Paralelno sa ovim komparator etiketa poredi sadr(aj polja Uetiketaa registra M,7 sa etiketama svih va(e%ih blokova podataka u ovom skupu. ,ko je ishod pore&enja pozitivan (potreban podatak je prisutan u keu)" odre&en je ke blok koji sadr(i potreban podatak. Iz ovako odre&enog ke bloka selektor re#i" na osnovu sadr(aja polja Upoma iz registra M,7" izdvaja potrebnu re# koja se dostavlja procesoru. ,ko je ishod pore&enja etiketa negativan (potreban podatak nije u keu)" kontroler ke memorije blokira procesor do trenutka kada %e biti u stanju da mu poalje tra(eni podatak. . izabranom skupu k ode&uje se ke blok koji %e prihvatiti adresirani blok podatka. ,ko je ke memorija takva da se njena kopija bloka podataka mo(e razlikovati od bloka podatka u glavnoj memoriji" ispituje se kopija bloka podatka u ovako odre&enom ke bloku. ,ko je ona modi'ikovana za vreme prisustva u keu" kontroler kea je vra%a natrag u glavnu memoriju. ,ko nije modi'ikovana ovo vra%anje izostaje. Zatim kontroler nala(e prenos adresiranog bloka podataka iz glavne memorije u ke blok. ,(urira se stavka adresara (etiketa" indikatori" in'ormacije o kori%enju) pridru(ena ovom ke bloku. Po prenosu ovog bloka podatka u ke" kontroler kea deblokira procesor i alje mu potreban podatak.

%3. &a-ini upi!a u par ke1 memori'a D $lavna memori'a ituacija pri upisu u keu neto je komplikovanija nego pri #itanju. 7azlog za to je to upis u ke blok ne mo(e po#eti pre no to se proverom etikete ustanovi pogodak. Zbog ovoga" upis u ke traje obi#no du(e od #itanja. 1ruga komplikacija je to to pri upisu procesor de'inie du(inu podatka koji upisuje" i samo taj deo bloka podatka mo(e biti izmenjen. 0o povla#i pribavljanje sadr(aja adresiranog ke bloka" modi'ikovanje odgovaraju%eg dela bloka podatka" i vra%anje modi'ikovanog bloka u ke blok iz koga je uzet. Prema aktivnostima pri po!otku pri upisu" ke memorije mogu biti! a neposrednim upisom podatak se upisuje u ni(i nivo memorije (operativna memorija)" kao i u ke memoriju ako je u njoj prisutan. a posrednim upisom podatak se upisuje samo u ke memorijuM modi'ikovani blok podataka upu%uje se u ni(i nivo memorije tek pri njegovoj zameni u keu. 1a bi se pri posrednom upisu izbegla nepotrebna vra%anja nemodi'ikovanih blokova pri zameni" svakom ke bloku pridru(uje se indikator modi1ikovan. +vaj indikator svojim stanjem pokazuje da li je blok podataka modi'ikovan (izmenjen) za vreme prisustva u keu. ,ko nije modi'ikovan" nema potrebe vra%ati ga pri zameni u ni(i nivo memorije" poto se ne razlikuje od bloka podataka sa istom adresom u toj memoriji. Prednost posrednih upisa je to to se upisi vre brzinom kea" i to se ve%i broj upisa u blok podataka do ni(eg nivoa memorije prenosi samo jednim upisom bloka. Prednost neposrednog upisa je to to promaaji nikada ne zahtevaju vra%anje zamenjenih blokova podataka u ni(i nivo memorije. -eposredni upis je lake implementirati. Pri neposrednom upisu" ni(i nivo memorije uvek ima a(urne podatke. .pis u ke memoriju mo(e te%i paralelno sa ispitivanjem etikete ke bloka. -avedene prednosti i nedostaci oba na#ina upisa naj#e%e vode primeni neposrednog upisa. Prema tome da li se pri proma"aju pri upisu promaenom bloku podataka dodeljuje ke" #lok" ke memorije mogu biti! Sa dodelom pri upisu ;ez dodele pri upisu 9od kea sa dodelom pri upisu" promaenom bloku podataka dodeljuje se ke blok" a upis se vri i u keu. 9od kea bez dodele pri upisu" promaenom bloku podataka ne dodeljuje se ke blok" a upis se vri samo u ni(em nivou memorije. Prema tome da li se pri prima"aju pri upisu promaeni blok pri#avlja iz ni(eg nivoa memorije" ke memorije mogu biti! Sa pri#avljanjem pri upisu ;ez pri#avljanja pri upisu Pri promaaju pri upisu" ke sa pribavljanjem pri upisu mora sa#ekati pribavljanje promaenog bloka pre no to obavi upis" dok ke bez pribavljanja pri upisu obavlja upis ne #ekaju%i na pribavljanje promaenog bloka" jer ono izostaje. Pri neposrednom upisu" upis podatka u ni(i nivo memorije blokira procesor do zavretka upisa. +vo se mo(e izbe%i umetanjem #a1era upisa izme&u ke memorije i ni(eg nivoa memorije. .pisom podataka u ba'er upisa procesor se deblokira" iako upis jo nije prosle&en do odredita. ,ko je pri pokuaju upisa u ba'er upisa on ve% pun" procesor ostaje blokiran sve dok se u ba'eru upisa ne oslobodi mesto za prihvatanje novog podatka. %". ;la!i6ika i'e proma1a'a u ke1 memori'ama Promaaje svrstavamo u slede%e 5 kategorije! Ceiz#e<ni proma"aji pri prvom obra%anju nekom podatku taj podatak nije u keu" tako da blok sa tim podatkom mora biti prenet u ke. ,apacitetni proma"aji ako ke ne mo(e sadr(ati sve blokove podataka potrebne pri izvrenju programa" javljaju se promaaji zbog nedovoljnog kapaciteta" jer se blokovi koju su bili istisnuti iz kea drugim blokovima moraju vratiti u ke. ,on1liktni proma"aji kod ke memorija sa direktnim ili skupno$asocijativnim preslikavanjem mogu se javiti promaaji zato to se isuvie blokova podataka preslikava u isti skup ke blokova" tako da neki od njih moraju biti istisnuti iz kea" a zatim kasnije vra%eni. 4roj neizbe(nih promaaja ME jednak je broju promaaja u keu .M P& sa potpuno asocijativnim preslikavanjem ali beskona#nog kapaciteta (prakti#no dovoljno velikog kapaciteta da ne dolazi do istiskivanja blokova podataka iz njega). 4roj kapacitetnih promaaja M6 dobija se kada se od broja promasaja kea oduzmu promaaji u keu .

4roj kon'liktnih promaaja M5 dobija se kada se od ukupnog broja promaaja M kea 9M oduzme broj promaaja u keu iste veli#ine kao 9M ali sa potpunim asocijativnim preslikavanjem. ME@M6@M5GM MEG M6G M5G M M P&

%%. Eamena ,lokova podataka u ke1 memori'i Pri promaaju podatka sa adresom a u ke memoriji" on se u nju mora preneti zajedno sa blokom podataka i kome pripada. 9od ke memorije sa direktnim preslikavanjem" blok podataka i mo(e se preneti samo u okvir bloka kGi (mod) /b. 9od ke memorija sa skupnoasocijativnim i potpuno asocijativnim preslikavanjem" blok podatak i mo(e se preneti u jedan od vie ke blokova. Pri tome su mogu%a dva slu#aja! Jedan ili vie ke blokova su prazni" pa je jedan od tih praznih ke blokova" recimo onaj sa najmanjim indeksom" izabran za odredite prenosa. vi ke blokovi su puni" pa treba izabrati ke blok #iji %e sadr(aj biti zamenjen novim blokom podatka. . drugom slu#aju" koji je #e%i" izbor bloka za zamenu mo(e uticati na budu%e promaaje. Zato se kao cilj postavlja izbor ke bloka u kome %e zamena bloka podatka dati najmanji broj budu%ih promaaja. Postoje slede%e strategije zamene! lu#ajan izbor (7,-1) Izbor ke bloka koji je prvi napunjen ()I)+) Izbor ke bloka koji sadr(i najmanje skoro kori"6eni blok podatka(*7.). 0ermin najmanje skoro kori"6eni ozna#ava blok podatka od #ijeg je poslednjeg kori%enja do trenutka izbora bloka proteklo najdu(e vreme. trategije zamene 7,-1 i )I)+ ne zasnivaju se na in'ormacijama o kori%enju blokova podataka u ke blokovima. trategija zamene *7. zasniva se na in'ormacijama o kori%enju blokova podataka kandidata za zamenu. Zahvaljuju%i ovome" strategija zamene *7. daje bolje rezultate od strategije zamene 7,-1 i )I)+. trategija zamene blokova podataka u ke memoriji koja bi dala najbolje rezultate zahteva poznavanje ponaanje programa u budu%nosti! za zamenu se bira blok podataka koji %e od svih kandidata za zamenu biti kori%en u najdaljoj budu%nosti. Jedna od '$ja ke kontrolera u keu sa skupno asocijativnim preslikavanjem i *7. algoritmom zamene je i da obezbedi in'ormacije o kori%enju podataka prisutnih u keu. %). C6ektivno vreme iklu!a ke1 memori'a . najjednostavnijem slu#aju #itanja podataka iz ke memorije" e'ektivno vreme pristupa ke memorije mo(e se izraziti kao! 0e'G0pog @ m0prom 0pog je vreme potrebno za #itanje podatka iz kea pri pogotku. 0prom je vreme potrebno za pribavljanje promaenog podatka iz ni(eg nivoa memorije (tzv. promaajna kazna)" i m je 'aktor promaaja. Promaajna kazna zavisi od na#ina upisa u ke memoriju (neposredni ili posredni upis). ,ko uzmemo u obzir i upise podataka u ke memoriju" situacija postaje komplikovanija. 7azmotrimo aktivnosti pri ukupno n obra%anja memorijskom sistemu. -eka su n i nu broj #itanja i upisa u memorijski sistem pri cemu je n' n + nu. -eka su! 0c perioda takta kea 0#b vreme pribavljanja bloka podatka iz IM u 9M 0ub vreme upisa (rtvovanog modi'ikovanog bloka podatka iz 9M u IM 0uIM vreme upisa re#i podatka iz 9M u IM nprom broj promaaja u n obavljanja pristupa keu n#prom broj promaaja pri #itanju u n obavljenih pristupa keu nzmd $ broj zamenjenih modi'ikovanih blokova podataka u n pristupa memoriji.

Poto se upisom blok podataka u keu modi'ikuje" pre upisa moramo se uveriti da je blok podataka u koji upisujemo prisutan u keu. 0a provera zahteva jedan taktni ciklus kea. am upis zahteva jo jedan taktni ciklus" tako da su za upis potrebna dva taktna ciklusa kea. Za ke sa posrednim upisom ima%emo! n [ 0e'(P.)G n#[0c @ nu[60c @ nprom [0#b @ nzmd[0ub 0e'(P.)G( n#Hn)[ 0c @ (nuHn)[60c @ (nprom H n)[0#b @ (nzmdHn)[0ub 0e'(P.)G( p#@6pu)[ 0c@m[0#b @ m[pmod[0ub 0e'(P.)G( E@pu)[ 0c@m[(0#b @pmod[0ub) Pri postojanju ba'era upisa blokova 0ub R 0#b i preklapa se sa njim" pa imamo! 0e'(P.)G( E@pu)[ 0c@m[0#b Za ke sa neposrednim upisom bez pribavljanja promaenog bloka pri upisu! n [ 0e'(-.)G n#[0c @ nu[ma?(60c " 0uIM) @ n#pro [0#b 0e'(-.)G (n#Hn)[0c @ (nuHn)[ma?(60c " 0uIM) @ (n#proHn) [0#b 0e'(-.)Gp#[0c @ pu[ma?(60c " 0uIM) @ m# [0#b ,ko nije poznata vrednost 'aktora promaaja samo za #itanja (m#)" izraziti je kao m#Gm[p#" gde je m opti 'aktor promaaja. .spenost kea u smanjenju saobra%aja izme&u para (/P" 9M) i IM" meri se 'aktorom saobra%aja () ). 0o je odnos obima prenetih podataka izme&u para (/P" 9M) i IM kada memorijski sitem sadr(i ke" i obima prenetih podataka izme&u /P i IM kada memorijski sistem ne sadr(i ke. ) P.G(nprom@nzmd)4H(n[d)G( nprom@ nprompmod) 4H(nd)Gm(E@ pmod)4Hd ) -.G(n#pro[4@nu[du)H(n[d)G(m#[4@pu[du)Hd d je srednja du(ina prenoenih podataka izme&u /P i IM kada memorijski sistem ne sadr(i ke" a d u je srednja du(ina podataka upisivanih iz 9M u IM kod kea sa neposrednim upisom. .ticaj promaaja kea na vreme rada /P$a mo(e se iskazati na slede%i na#in! 3remeQradaQ/PG(3remeQradaQ/PQbezQzastojaQuQtaktnimQciklusima@ 3remeQ#ekanjaQ/PQnaQmemorijuQuQ taktnimQciklusima)[PeriodaQtakta 4rojQinstrukcijaQ/PQnaQmemorijuQuQtaktnimQciklusima G 4rojQinstrukcija [ (Promaaji H Instrukcije) [ PromaajnaQkazna PromaajiHInstrukcije G 4rojQobra%anjaQmemorijiQpoQinstrukciji [ )aktorQpromaaja G mnaredbi @ mpodataka [ 4rojQobra%anjaQuQmemorijiQpoQinstrukciji

%+. Sekundarne ke1 memori'e Jedna od dilema pri izboru kea je! mala i brza ke memorija" usaglaena sa brzinom procesora" ali sa velikim 'aktorom promaaja znatno ve%a i slo(enija ke memorija" sa znatno manjim 'aktorom promaaja" ali znatno sporija od procesora 1obro reenje mo(e biti! obe ke memorije u istom ra#unaru" to vodi ke memoriji u dva nivoa. 9e memorija prvog nivoa" ili primarna ke" memorija, kod savremenih ra#unara nalazi se u istom #ipu sa procesorom. 9e memorija drugog nivoa" znatno ve%a" ili sekundarna ke" memorija " nalazi se izme&u primarne ke memorije i glavne memorije. .mesto da brzi ke trpi promaajnu kaznu du(ine nekoliko desetina perioda takta (pri pribavljanju blokova iz IM)" kod ke memorije u dva nivoa on trpi promaajnu kaznu od samo nekoliko perioda takta (pri pribavljanju blokova iz sekundarnog kea). Primarni ke proputa do sekundarnog kea samo ona obra%anja procesora koja su za njega promaaji. 9od sekundarne ke memorije pove%anje du(ine blokova pozitivno uti#e na smanjenje 'aktora promaaja. +ptimalna du(ina bloka je znatno ve%a nego kod primarnog kea" obzirom na odnos njihovih veli#ina" jer negativni e'ekti dugih blokova nastaju pri znatno ve%im du(inama blokova. Za ke memoriju u dva nivoa va(no je da li su svi podaci prisutni u primarnom keu prisutni i u sekundarnom keu. ,ko jesu" za sekundarni ke ka(e se da ima oso#inu vi"enivooske inkluzije Inkluzija je po(eljna poto se usaglaavanje izme&u .$I sistema i ke memorije i izme&u ke memorija u vieprocesorskim sistemima mo(e vriti aktivnostima samo na sekundarnim ke memorijama. Me&utim kada *6 ke nije mnogo ve%i od *E kea" pogodno reenje je da ova dva nivoa sadr(e razli#ite podatke. . takvom reenju pri promaaju podatka u *E keu i pogotku

u *6 keu vri se razmena blokova podatka izme&u *E i *6 kea" umesto da se samo promaeni blok podatka prenese iz *6 u *E ke. I kod ke memorija sa dva nivoa po(eljne su optimizacije prilikom upisa u ni(i nivo memorije. Zato se iza svakog nivoa kea ume%e ba'er upisa. %.. 9lavna 2operativna5 memori'a ra-unara Dlavna memorija -operativna memorija0 je osnovna memorija u ra#unaru. . njoj moraju biti prisutni programi koji se izvravaju i podaci koje ti programi koriste. ,drese instrukcija i operanada odnose se na lokacije glavne memorije u kojima su instrukcije i operandi prisutni. . hijerarhijskoj organizaciji memorijskog sistema glavna memorija nalazi se iza ke memorije" sekundarne ke memorije" kojoj dostavlja podatke po zahtevu. Za smanjenje promaajne kazne kea po(eljno je da latencija glavne memorije bude to manja. 17,M memorije" koje se skoro isklju#ivo koriste za gradnju glavnih memorija ra#unara" imaju pri proizvoljnim pristupima veliku latenciju merenu periodama takta procesora. a drugim va(nim pokazateljem per'ormansi" propusno%u" 17,M memorije stoje mnogo bolje. 7eenje koje umanjuje negativan uticaj velike latencije glavne memorije i koristi njenu veliku propusnost je velika du(ina blokova podataka koje glavna memorija dostavlja ke memoriji. Izme&u procesora i primarnog kea naj#e%e se prenose podaci du(ine re#i" pa je logi#no da ke memorije (primarna i sekundarna)" glavna memorija i magistrala koja ih povezuje budu iste irine. -astoje%i da pove%anjem paralelizma skratimo ovo vreme" u#etvorostru#imo irine glavne memorije i sekundarnog kea" kao i magistrale koja ih spaja. Paralelizam u radu memorije mo(e se posti%i i izvo&enjem memorije u vidu nekoliko nezavisnih memorijskih banaka" sa odvojenim adresnim i upravlja#kim strukturama. Ideja je da se pri svakom pristupu glavnoj memoriji zaposle sve banke. 0o je bitna razlika u odnosu na reenja kada svaki pristup memoriji anga(uje samo mali deo ove memorije. ve memorijske banke dele zajedni#ku memorijsku magistralu irine jednake irini primarnog kea. 0akvo reenje sa > banke je na slici =.6>c.

;ri re-enja sa razli"itm -iinama gla#ne memorije, magistrale, ke- memorije koja daj razli"ite ,er<ormanse

lanjem naloga" na primer za #itanje" sa jednom adresom" paralelno se pristupa adresiranim lokacijama u svim bankama. Po obavljenom pristupu" svaka memorijska banka ekskluzivno koristi magistralu za vra%anje pro#itanog podatka. +vako organizovana memorija naziva se memorija sa preklapanjem. *okacije u ovakvoj memoriji sa k banaka" kG6c" adresiraju se odbacivanjem c adresnih bitova najmanje te(ine. Memorijska banka F sadr(i sve re#i #ije su adrese po modulu k jednake F" memorijska banka E sadr(i sve re#i #ije su adrese po modulu k jednake E" itd. +vakva organizacija je idealna za razmenu podataka sa ke memorijama" jer blokovi podataka sadr(e podatke sa sukcesivnim adresama. %/. Ma$netni di!kovi i !me1tan'e podataka na n'ima Magnetni diskovi 'unkcioniu na principu zapisivanja bitova podataka u malim %elijama od 'eromagnetnih materijala sa dva stabilana magnetna stanja" koja predstavljaju logi#ke vrednosti F i E. +va stanja odre&ena su veli#inom ili smerom magnetnog 'luksa %elije. 2lektri#na struja menja i omogu%uje prepoznavanje magnetnih stanja %elija uz pomo% induktivne glave za upis i #itanje podataka. +vakve glave postavljene na vrlo malom rastojanju od magnetnih %elija" u uzajamnom dejstvu sa njima mogu da menjaju magnetna stanja %elija pri upisu podataka" ili da generiu elektri#ne signale koji pokazuju stanje %elija pri #itanju podataka. 1isk drajv se sastoji od ve%eg broja krutih kru(nih plo#a koje su sa obe strane prekrivene magnetnim materijalom" tako da se podaci #uvaju na celim povrinama tih kru(nih plo#a. +ne rotiraju na zajedni#koj osovini konstantnom

brzinom. -a malom rastojanju od svake povrine nalazi se po jedna !lava za itanje&upis. ve glave su 'iksirane rukom diska za posebnu osovinu koja se naziva pokreta. Pokretanjem pokreta#a pomeraju se istovremeno i istovetno sve glave diska" radijalno po povrini diskova" omogu%avaju%i pristup aktivnom delu povrina kru(nih polo#a. 9ada se glava korektno pozicionira" podaci se mogu pro#itati ili upisati" sa ili na povrini kru(nih polo#a dok one rotiraju ispod glava" u blokovima koji se nazivaju sektori. Iako se sve glave pomeraju zajedno" u skoro svim disk drajvovima" samo jedna glava mo(e #itati ili upisivati podatak u jednom trenutku. /ela kru(nica (prsten) na povrini diska sa smetenim podacima se naziva pista" i svaka kru(na plo#a sadr(i veliki broj pista" koncentri#nih prstenova sa smetenim podacima. Irupa pista na svim povrinama na istom rastojanju od osovine diskova se naziva cilindar. -ajmanja jedinica podataka kojoj se mo(e pristupiti na disku je sektor. )izi#ka adresa podatka na disku sastoji se od brojeva povrine" piste i sektora u kome se podatak nalazi. 3reme pristupa podatku na disku se mo(e razlo(iti na tri primarne komponente! vreme tra(enja" rotaciono kanjenje i vreme prenosa podataka. 3reme tra(enja 0 s je vreme potrebno za pomeranje glave na ta#nu radijalnu poziciju (pistu). 7otaciono kanjenje 0 r je vreme potrebno za rotiranje kru(nih plo#a do nailaska tra(enog sektora ispod glave diska. 3reme prenosa podataka du(ine n sektora se jedne piste" 0t" zavisi od brzine kojom se podaci mogu preneti na ili sa povrine diska i '$ja je brzine obrtanja diska i broja sektora na pistama. 1u(ina piste je promenljiva i raste idu%i od piste sa najmanjim polupre#nikom (unutranja pista) ka pisti sa najve%im polupre#nikom (spoljanja pista). 0ehnika nazvana vi"estruko zonsko zapisivanje" koristi ovu #injenicu smetaju%i" pri istoj linearnoj gustini zapisa" rastu%i broj sektora idu%i od unutranjih ka spoljanjim pistama. 3e%ina dananjih diskova koristi ovu tehniku. +vaj pristup grupie 6FF EFFF sukcesivnih pista u zone. vaka zona sadr(i konstantan broj sektora po pisti" sa skokovitim promenama broja sektora u pistama u sukcesivnim zonama. 3reme tra(enja i rotaciono kanjenje zajedno se ponekad naziva vreme pozicioniranja !lave Sme1tan'e podataka na ma$netnom di!ku

Ras,ored ,odataka na disk

*evi deo slike prikazuje kako se blok sekvencijalnih podataka smeta u sektor (skoro uvek veli#ine ;E6 bajta). ektor sadr(i najmanju jedinicu podataka koja mo(e biti pro#itana ili upisana na disk. ektor se sastoji od tri dela! zaglavlja" dela u kome su smeteni korisni#ki podaci i dela sa kodom za korekciju greaka. 1eo zaglavlja na po#etku svakog sektora" sadr(i identi'ikacione podatke sektora i sinhronizacione in'ormacije. Zadnji deo sadr(i kodove za korekciju greaka" koji se izra#unava na osnovu zaglavlja i dela sa podacima. 1a bi se pristupilo bloku podataka" upravlja#ka elektronika drajva pokre%e aktuator do pozicije kada glave diska budu iznad odgovaraju%eg cilindra" sa#eka da se rotiranjem tra(eni sektor na&e ispod glava" i zatim pro#ita ili upie u njega odgovaraju%i podatak. ,ko smetanje podataka na disku zahteva ve%i broj sektora" optimalno je njihovo smetanje u sukcesivne sektore. 0ime se vreme tra(enja i rotaciono kanjenje do nailaska prvog sektora javlja samo jedanput" dok se slede%im sektorima pristupa bez zastoja. 9od skoro svih diskova" #itanje ili upis u bilo kom trenutku mo(e da izvrava samo jedna glava. Zbog ovoga" kao to je prikazano na slici" sekvencijalno smetanje podataka po#inje od sektora nula" nastavlja se u krug sve do kraja piste" zatim se prelazi na slede%u pistu u istom cilindru" i tako nastavlja sve do kraja cilindra" a zatim prelazi na naredni cilindar i nastavlja do zavretka smetanje podataka. 0reba primetiti da je u ovom primeru vreme prelaska na novu pistu jednako vremenu rotiranja za jedan sektor na pisti" a prelazak na novi cilindar jednako vremenu rotiranja za dva sektora na pisti. 2lektronika inter'ejsa u disk drajvu sadr(i ba'er memoriju" koja ima dvostruku ulogu. Prva je da" privremeno #uvaju%i podatke koji se #itaju sa diska ili upisuju na disk" omogu%uje da se prenos podataka izme&u memorije i sistema i ba'era diska i izme&u ba'era diska i diska obavlja sa njima svojstvenom brzinom. 1ruga uloga ba'era diska je uloga ke" memorije diska. ,plikacije obi#no pristupaju podacima sekvencijalno" pa je korisno da diskovi na optimalan na#in podr(e takav na#in prisupa podacima. Posle svake nalo(ene operacije #itanja" disk kontroler %e autonomno nastaviti da #ita sekvencijalne podatke i da ih smeta u ba'er. ,ko je slede%i

blok potrebnih podataka sekvencijalan u odnosu na prethodnim nalogom pro#itani blok" disk mo(e da opslu(i zahtev direktno iz ba'era" to je mnogo br(e jer nema kanjenja.

)0. 7irtuelna memori'a 2op1te5 Programi koji se izvravaju moraju biti prisutni u glavnoj memoriji ra#unara. 1o prelaska na izvrenje" programi se obi#no dr(e u sekundarnoj memoriji u svom izvrnom obliku. .pravljanje memorijom postaje komplikovano kada!

1. '.

u glavnoj memoriji nema dovoljno prostora za dr(anje celih programa i njima pridru(enih podataka u toku izvrenja programa" u glavnoj memoriji smenjuje se vie procesa (programa u izvrenju) pri multiprogramskom radu ra#unara. . te(nji da se korisnici oslobode svih zadu(enja vezanih za upravljanje memorijom" kao apstrakcija glavne memorije nastala je virtuelna memorija" razvijena sa ciljem da upravljanje memorijom u#ini e'ikasnijom i sa manje greaka. 3irtuelna memorija omogu%uje izvrenje programa #iji su samo neki delovi prisutni u glavnoj memoriji ra#unara" odnosno #ije potrebe za memorijom prevazilaze raspolo(ivu 'izi#ku memoriju. 3eli#ina adresnog prostora u sistemu sa virtuelnom memorijom ograni#ena je samo brojem adresnih bitova koje procesor mo(e generisati" a ne veli#inom raspolo(ive 'izi#ke memorije. -aprimer" procesor sa 56 bitnim adresama i virtuelnom memorijom ima virtuelni adresni prostor veli#ine 656 odnosno >I4" dok raspolo(iva ('izi#ka) memorija mo(e biti veli#ine 6;= M4. 3irtulena memorija svakom procesu (programu) doputa kori%enje celog virtuelnog adresnog prostora. +vo zahteva da se svakom korisniku pridru(i odgovaraju%i identi'ikator" koji se naziva identi1ikator procesa (PI1) ili identi1ikator adresno! prostora (, I1). 9lju#na koncepcija na kojoj se zasniva virtuelna memorija je odvajanje virtuelnih" odnosno logi#kih adresa" koje se koriste u programu" od adresa lokacija glavne memorije u kojima se programi #uvaju. 3irtuelne adrese sistem generie pri prevo&enju iHili povezivanju programa. +ve adrese na jedinstven na#in odre&uju elemente koji pripadaju jednom logi#kom adresnom prostoru. Me&utim" sistem odla(e konkretnu dodelu memorije programu sve do trenutka kada po#inje izvrenje programa. Pri izvrenju programa svako obra%anje memoriji zahteva prevo&enje virtuelene adrese koju generie procesor u 'izi#ku adresu. +vo prevo&enje vri jednica za upravljanje memorijom (MM.)" koja je obi#no imlplementirana u #ipu procesora. Mogu%nost da se programi izvravaju pri bilo kojoj dodeli memorije programu zahteva i potovanje slede%ih ograni#enja! u programima se ne smeju koristiti na#ini adresiranja sa 'iksnim adresama" kao to je to direktno odnosno apsolutno adresiranje. -ajpogodniji na#in adresiranja je bazno adresiranje. Prenoenje u memoriju i iz memorije programa razli#itih du(ina vremenom dovodi do pojave velikog broja malih slobodnih blokova memorije" koji se pojedina#no ne mogu iskoristiti za nove dodele" a zbirno mogu #initi zna#ajan deo memorije. +va pojava naziva se spolja"nja 1ra!mentacija memorije. 1odela memorije programima mo(e se pojednostaviti ako se svaki program Uupakujea u izvestan broj stranica 'iksnih du(ina. Za datu veli#inu stranica i du(inu programa potreban broj stranica odre&uje se tako da njihova zbirna du(ina bude jednaka ili ve%a od du(ine programa. 3irtuelna memorija kod koje se virtuleni adresni prostor deli u ovakve stranice 'iksnih du(ina naziva se stranina virtuelna memorija. 9od nje se i memorija dodeljuje programu u stranicama. Pri tome se tako&e javljaju neiskori%eni delovi memorije" ovog puta u vidu neiskori%enih delova poslednjih sranica dodeljenih programima. +va pojava naziva se unutra"nja 1ra!mentacija memorije )1. Strani-no or$anizovana virtualna memori'a 9od strani#ne virtuelne memorije virtuelni adresni prostor podeljen je na virtuelne stranice" a 'izi#ki adresni prostor na 'izi#ke stranice. 3eli#ina stranica * odre&ena je celobrojnim stepenom dvojke" i naj#e%e iznosi *G>94. 3irtuelni adresni prostor veli#ine 6v bajtova sadr(i 3 virtuelnih stranica ozna#enih brojevima F"E"g"3$E. )izi#ki" adresni prostor veli#ine 6r bajtova sadr(i 7 'izi#kih stranica ozna#enih brojevima F"E"g"7$E. 1ata virtuelna adresa a v deli se na pomeraj unutar stranice p i broj virtuelne stanice 43 . )izi#ka adresa a ' se tako&e deli na pomeraj unutar stranice p i broj 'izi#ke stranice 4) . Proces naj#e%e popunjava mnogo manje virtuelnih stranica nego to ih ima u virtuelnom adresnom prostoru. 0akve nepopunjene stranice se nazivaju nepostoje%e stranice. +d kreiranih virtuelnih stranica procesa" neke su prisutne u glavnoj memoriji" dok se ostale nalaze na disku. Prevo&enje virtuelnih u 'izi#ke adrese vri se pri svakom obra%anju memoriji" ovo prevo&enje vri se kori%enjem stranine ta#lice ( 0)" koja za svaku virtuelnu stranicu ima po jednu stavku. tavka strani#ne tablice ( 0) adresira se brojem virtuelne stranice 43 " dobijene iz virtuelne adrese a v izdvajanjem pomeraja iz nje. +va stavka strani#ne

tablice sadr(i broj 'izi#ke stranice 4) u koju se preslikava virtuelna stranica 43 . Pomeraj u virtuelnoj adresi a v se neizmenjen prenosi u polje pomeraja 'izi#ke adrese. )2. ;e1 za prevo4en'e virtuelnih adre!a 2TL*5 Problem strani#nih tablica da svako obra%anje memoriji za pribavljanje instrukcije ili podatka zahteva po jedno dodatno obra%anje memoriji za prevo&enje virtuelne u 'izi#ku adresu delimi#no se reava kori%enjem posebne ke memorije u kojoj se dr(e najaktuelnije stavke stani#ne tablice i takva ke memorija naziva se 0ranslation *ookaside 4u''er (0*4). Pri svakom obra%anju memoriji najpre se pristupa 0*4$u sa ciljem da se u njemu na&e broj 'izi#ke stranice u kojoj je prisutna teku%a virtuelna stranica. . slu#aju pogotka nije potrebno obra%anje strani#noj tablici u memoriji" pa se prevo&enje adrese znatno ubrzava. -astoji se da se obra%anje 0*4$u svede na samo jedan taktni ciklus" to upu%uje da se 0*4 implementira kao mala ke memorija sa poptunim asocijativnim preslikavanjem.

tavka 0*4$a sadr(i kao etiketu broj virtuelne stranice na koju se odnosi" broj 'izi#ke stranice u kojoj je prisutna ta virtuelna stranica" i indikatore 3" 7" O i M. Indikator 3 pokazuje da li je ta stavka 0*4$a va(e%a" a ostali indikatori imaju zna#enja kao i kod strani#ne tablice. Pri prevo&enju date virtuelne adrese najpre sledi obra%anje 0*4$u. ,ko je 43 virtuelne adrese jednak etiketi neke stavke 0*4$a" sadr(aj polja 4) te stavke prenosi se u adresni registar memorije i sledi obra%anje memoriji. ,ko se javi promaaj u 0*4$u sledi pristup strani#noj tablici iz koje dobijamo in'ormaciju da li je virtuelna stranica prisutna u memoriji i gde" ili da ona tamo nije prisutna. . drugom slu#aju javlja se greka stranice koja dovodi do istoimenog izuzetka za #ije opslu(ivanje se poziva operativni sistem. +pslu(ivanje greke stranice uklju#uje prenoenje promaene stranice u glavnu memoriju" a(uriranje strani#ne tablice i 0*4$a. 9ada se javi promaaj u 0*4$u ali se u strani#noj tablici na&e 'izi#ka stanica u kojoj je prisutna virtuelna stranica" a(urira se 0*4 kreiranjem nove stavke sa odgovaraju%im poljima. . pogo&enoj stavci 0*4$a ili strani#ne tablice proveravaju se bitovi zatite memorije 7 i O" i ako je pokuan nedozvoljeni pristup memoriji javlja se izuzetak povrede zatite memorije. Poto 0*4 sadr(i stavke strani#ne tablice teku%eg procesa" promena konteksta procesa zahteva izmenu celokupnog sadr(aja 0*4$a. 1akle" pri naputanju teku%eg procesa moraju se sve stavke 0*4$a proglasiti neva(e%im" to se posti(e jednostavnim brisanjem indikatora 3 u svim njegovim stavkama. 0*4$i manjeg obima implementiraju se kao ke memorije sa potpunim asocijativnim preslikavanjem" a oni ve%eg obima sa skupno$asocijativnim preslikavanjem. )3. 7i1enivoo!ka !trani-na ta,li a

3eliki obim strani#ne tablice" uz veliki broj procesa" mo(e anga(ovati znatan deo glavne memorije. 7a#unar naravno ne sme koristiti svoje resurse samo za svoje potrebe" ve%i deo toga mora prepustiti korisniku. 1akle" reenje je da se u glavnoj memoriji ne #uvaju cele strani#ne tablice svih procesa" ve% samo trenutno aktuelni delovi svake od ovih tablica. Lijerarhijski organizovana strani#na tablica sa dva nivoa prikazana je na slici. Polje broja virtuelne stranice podeljeno je u dva polja du(ina po EF bitova" #iji su sadr(aji ozna#eni sa vE i v6. 4azni registar procesora adresira koren strani#ne tablice to je adresa po#etka strani#ne tablice nivoa E procesa.

vaka stavka ove strani#ne tablice sadr(i podatke o jednom 0$bloku" koji su ovde strani#ne tablice nivoa 6 ( 0-6). . te podatke spada indikator prisutnosti 0-6 u glavnoj memoriji" i ako je ona tamo prisutna" njena bazna adresa. -a osnovu bazne adrese 0-6" dobijene iz 0-E" i veli#ine v6 kao indeksa u 0-6" adresira se stavka 0-6 koja u#estvuje u prevo&enju date virtuelne adrese. 4roj 'izi#ke stranice dobijen iz te stavke sa dopisanim pomerajem iz virtuelne adrese daje 'izi#ku adresu podatka u glavnoj memoriji. +vakve pristupe stavkama 0-E i 0-6 do pristupa podatku u glavnoj memoriji" koji se nazivaju etnja kroz strani#ne tablice organizuje hardver u okviru MM.$a.

<i'erarhi'!ka !trani-na ta,li a mo@e !man'iti zauze8e $lavne memori'e delovima !trani-nih tal,i a pro e!a. Me4utim( ako 'e lokalno!t o,ra8an'a pro e!a memori'i !la,o izra@ena( aktivni ST-,lokovi !e -e!to men'a'u. Ovo povla-i potre,u za -e!tom razmenom prethodno aktivnih ST-,lokova i novih ST-,lokova izme4u $lavne memori'e i di!ka( 1to pove8ava prema1en'e operativno$ !i!tema ra-unara. Ena-a'an nedo!tatak hi'erarhi'!ke or$aniza i'e !trani-ne ta,li e 'e pove8an ,ro' o,ra8an'a memori'i.

Você também pode gostar