Arhitektura i Organizacija Racunara - Th

Embed Size (px)

Citation preview

  • 8/18/2019 Arhitektura i Organizacija Racunara - Th

    1/25

    1. Iskazivanje performansi procesoraRačunare možemo ocenjivati na osnovu različitih pokazatelja: po performansama, ceni, potrošnji energijetežini, pouzdanosti, dizajnu itd. Za većinu korisnika, performanse su, pored cene, najvažniji pokazatelj. toga jeuloženo puno truda da se do!e do načina za iskazivanje i merenje performansi računara."ada kažemo da jedan računar, recimo #, $rži od drugog računara, recimo %, imamo u vidu da računar #izvršava programe za kraće vreme od računara %. &ri tome kao meru koristimo vreme odziva 'response time(odre!eno kao vremenski interval od početka do završetka izvršenja programa. )mesto ovog o$ično koristimotermin vreme izvršenja 'e*ecution time(. ) računarskim centrima, koji dnevno izvršavaju veliki $roj programaza meru će se radije koristiti propusnost 'throughput(, odre!en kao o$im posla o$avljen u jedinici vremena.

    "ažemo da je računar #, n puta $rži od računara % ako je vreme izvršenja za računar #, n puta kraće odvremena izvršenja računara %:

    izvršenjaVreme

    izvršenjaVreme

     x

     yn

     + 

     + 

    =

    &ošto su performanse recipročne vremenu izvršenja:

    e Performans

    e Performans

     y

     xn  =

    "ako je i propusnost srazmerna recipročnoj vrednosti vremena izvršenja:

    opusnost 

    opusnost 

     y

     xn&r 

    &r =

    "ada kažemo da su performanse poboljšane to znači da su one povećane, a ako kažemo da je vreme izvršenja po$oljšano to znači da je smanjeno.vo vreme izvršenja je relativna veličina jer ono zavisi ne samo od vremena rada procesora, već i od vremena pristupa memoriji, ulazno-izlaznih aktivnosti i intervencija operativnog sistema. vo znači da se vremeizvršenja mora preciznije definisati.Vreme izvršenja centralnog procesora '&) time( je vreme koje procesor utroši na izvršenje programa,

    isključujući čekanje na )-/ aktivnosti i izvršenje drugih programa. 0asno je da je vreme odziva programa dužeod vremena rada centralnog procesora '&(, pa će se i performanse izračunate na osnovu ovih vremenarazlikovati. 1reme rada &-a može se dalje rasčlaniti na vreme koje & provede u samom programu, korisničkovreme rada CP-a, i vreme koje & provede u operativnom sistemu, izvršavajući sistemske zadatke zahtevane od programa, sistemsko vreme rada CP-a )ticaj drugih programa na mereno vreme odziva programa isključuje sena neopterećenom sistemu, koji izvršava samo taj program. &erformanse do$ijene u ovim uslovima na osnovuvremena odziva programa su performanse sistema, a performanse do$ijene na osnovu vremena rada &-a su performanse &-a.&erformanse računara ili procesora možemo do$iti merenjem vremena odziva programa ili vremena rada &-a pri izvršenju programa. Za pore!enje performansi različitih proizvo!ača, tre$alo $i koristiti iste programe saistim ulaznim podacima. 2i programi $i tre$alo da o$uhvataju ista programska rešenja kao i tipične aplikacije za

    namenu računara čije performanse odre!ujemo. &rogram koji se koristi u te svrhe sa pridruženim ulaznim podacima poznat je kao benčmark   '$enchmark(. 3enčmark programi su o$ično specijalno napravljeni zamerenje performansi računara, procesora ili )-/ sistema računara i oni se nazivaju sintetički benčmark program's4nthetic $enchmarks(. ni se ne mogu koristiti u druge svrhe, kao aplikacioni programi. intetički $enčmark programi sadrže smešu instrukcija koja tre$a da odgovara učestanosti pojavljivanja operacije i operanada uvelikom skupu realnih programa. sim realnih i sintetičkih programa, za merenje performansi koriste se i jezgra  'kernels(. 0ezgra su mali delovi programa, koja se koriste samo za ocenu performansi. /zveštaji o performansama na osnovu &5 skupova $enčmark programa tre$a da sadrže kompletan opis računara ikorišćenog softvera i $roj korisnika računara. vakav potpuni skup uslova u kojima je testiranje o$avljeno tre$ada o$ez$edi ponovljivost  do$ijanja istih rezultata.

    6

  • 8/18/2019 Arhitektura i Organizacija Racunara - Th

    2/25

    Za projektante računara i upućene korisnike neophodno je da znaju koji činioci utiču na vreme rada procesora pri izvršenju programa. Rad najvećeg $roja savremenih računara diktiran je taktnim signalima! taktovima'clock( fiksne učestanosti. 2akt je periodični signal, sa odre!enom  periodom takta  ili ciklusom takta  '   C "   (avremeni procesori rade na više stotina 78z do nekoliko 98z, stoga su i odgovarajuće periode takta odnekoliko ns do ispod jedne ns. 1reme rada procesora pri izvršenju programa može se izraziti kao:

    takta Perioda program zaciklusataktni# $rojCP radaVreme   + + + + + + +   ×=   ili

    taktaost %ces

     program zaciklusataktni# $rojCP radaVreme

     +tan

     + + + + + +   = .

    sim merenja $roja taktnih ciklusa pri izvršenju programa '32(, možemo meriti i $roj izvršenih instrukcija u

     programu '3/(. Znajući $roj taktnih ciklusa pri izvršenju programa i $roj izvršenih instrukcija u programumožemo izračunati prosečan $roj taktni# ciklusa po instrukciji, &/ 'c4cles per instruction(:

     $& 

     $"C CP&   =

    1eličina &/ pruža informacije o stilu skupa instrukcija računara i njegovoj implementaciji.C CP    " CP&  $& "    ××= , gde je CP "    vreme rada procesora. davde se vidi da performanse procesora zavise od

     $roja instrukcija u programu, taktnih ciklusa po instrukciji i periode takta ili učestanosti takta.1rednosti ovih parametara uslovljeni su $rojem instrukcija, &/-em i periodom takta. "ada u izvršavanom programu imamo grupe instrukcija sa istom vrednosti &/, $roj taktnih ciklusa procesora možemo izračunatikao:

    i

    n

    i

    i   $& CP&  $"C    ∑= ⋅= 6, gde i $&   predstavlja $roj pojavljivanja instrukcija sa vrednošću iCP&   u programu.

    2. MIPS i MFLOPS'Million Instructions Per Second( je $roj miliona izvršenih instrukcija u sekundi. Za dati program 7/& sedo$ija kao:

    ;;& zavisi od računara i programa i zasnovan je na operacijama, a ne na instrukcijama. $jektivnost7=>&-ova može $iti ugrožena manipulisanjem kratkim i dugim operacijama sa pokretnom zapetom.

    ?. Amdahl-ov zakon0edna od osnovnih preporuka pri projektovanju hardvera računara koji o$avljaju odre!ene aktivnosti je:•  @aći rešenje koje najefikasnije deluje u opštem slučaju,

  • 8/18/2019 Arhitektura i Organizacija Racunara - Th

    3/25

    • Rešenja za specijalne slučajeve mogu $iti manje efikasna, ali moraju $iti korektna.va preporuka ide za tim da se što $rže o$avljaju aktivnosti koje se najčešće o$avljaju, a da se aktivnosti kojese retko o$avljaju mogu o$avljati sporije. 7ada intuitivno osećamo da nas ova preporuka vodi u do$rom smeru,ona nam ne omogućuje da ocenimo njene kvantitativne efekte na naša rešenja. 7ogućnost kvantitativne oceneuticaja pojedinih rešenja na efikasnost o$avljanja posla pruža nam Amdahl-ov zakon. @eka je ( "    vreme izvršenja nekog zadatka, a jedan deo tog zadatka traje  P,"    i želimo da to smanjimo  , P$

     puta tako da novo vreme traje ,

     P,

     P$" 

    . vim po$oljšanjem, $rzina kojom se posmatrani zadatak izvršava je

     povećana, i povećanje $rzine iznosi:

    em poboljšanj sa zadatkaceizvršenjaVremea poboljšanjbez zadatkaceizvršenjaVremebrzine Povecanje

     +  + log+  +  +  +  + log+  +  +  +    =

    kraćenjem vremena izvršenja, performanse se po$oljšavaju i povećanje $rzine iznosi:

    a poboljšanjbez zadatak ceo zae Performans

    ima poboljšanj sa zadatak ceo zae Performansbrzine Povecanje

     + + + + +

     + + + + + +   =

    Ako je novo vreme izvršenja zadatka  -  "    '   (  -    " "    < (, i ako  P," "  (  P,   ×= , gde je  P,  učešće dela zadatkakoji po$oljšavamo u ukupnom vremenu izvršenja zadatka, onda do$ijamo:

    B(

  • 8/18/2019 Arhitektura i Organizacija Racunara - Th

    4/25

    implementacija steka, često za dve lokacije sa vrha steka umesto memorijskih lokacija koristi registre procesora1eliki nedostatak stek arhitekture procesora su ograničenje u pristupima podacima u steku. .r#itekture sa registrima opšte namene sadrže grupu registara procesora koji se mogu koristiti u različite svrheza privremeno čuvanje operanada, za učešće u izvršavanju operacija, za adresiranje operanada u memoriji, za prenos parametara pri pozivu procedura itd. 3roj registara opšte namene ide, u zavisnosti od procesora, od osamdo preko stotinu. Današnji procesori sadrže najčešće po ?E registra opšte namene.

    5. e!istri procesoraRegistri su memorijski elementi realizovani flip-flopovima ili drugim $rzim memorijskim ćelijama. dlikuju sekratkim vremenima pristupa reda nanosekunde ili delova nanosekunde. Z$og ove oso$ine, registri su prisutni u procesorima kao sastavni deo memorije računara. vo je razlog za dugo prisutnu tendenciju povećanja $rojaregistara u procesorima. Ali svojstvena im je i relativno visoka cena realizacije, koja diktira relativno mali $rojregistara u procesorima. 7ali $roj registara ima i do$ru stranu: za adresiranje podataka u registrima potre$an jemali $roj adresnih $itova.&rograme korisnika računar izvršava u takozvanom korisničkom načinu rada 'user mode(, a sistemske programe u kernel načinu rada 'kernel mode( ili supervizorskom načinu rada 'supervisor mode(.vi procesori, nezavisno od arhtekture skupa instrukcija i adresnosti procesora imaju sledeće registre:•  Programski brojač  '&(, koji sadrži memorijsku adresu instrukcije koju tre$a pri$aviti,•  4egistar instrukcija '/R /nstruction Register( u koji se prenosi pri$avljena instrukcija iu njemu drži do završetka izvršenja instrikcije,•  .dresni registar memorije '7AR 7emor4 Address Register( sadrži adresu memorijske

    lokacije kojoj se o$raća procesor pri čitanju podataka iz memorije i upisu podataka u memoriju,•  Pri#vatni registar memorije  '7DR 7emor4 Data Register( pri o$raćanju procesoramemoriji sadrži podatak pročitan iz memorije ili podatak koji tre$a upisati u memoriju.

    "orisni#ki vidljivi re!istri

    kup registara dostupnih aplikacionom programeru čine registri na čiji on sadržaj može direktno uticatiinstrukcijama koje mu stoje na raspolaganju. vi registri se nazivaju i korisnički vidljivi registri 4egistri opšte nemene 'general purpose register( čine naj$rojniju grupu registara. "oriste se za privremenočuvanje celo$rojnih operanada u procesoru, učešće u operacijama, adresiranje operanada u memoriji, prenos parametara pri pozivu procedura i rezultata pri vraćanju iz procedure itd. @jihov $roj u procesorima se kreće odF do ;G. avremeni R/ procesori imaju ?E registra opšte namene. vi registri grupisani su u  polje registara

    'register file(, sa zajedničkim ulaznim i izlaznim priključcima i pridruženom logikom takozvanim  portovima'port(. vakvo polje sa ?E registara može imati m  ulaznih portova i n  izlaznih portova. 2o znači da seistovremeno može upisivati u m registara i čitati iz n registara, uz ograničenje da se jedan registar ne može čitatii istovremeno upisivati. )P registri '=loating &oint registers( čine grupu registara za rad sa realnim podacima u formatu sa pokretnomzapetom. Dužine su ?E ili ;G $ita, jer to odre!uje standard sa realnim podacima, koji danas prihvataju svi proizvo!ači računara. / ovi registri grupišu se u polje =& registra, sa više ulaznih i izlaznih portova. 3roj ovihregistara se kreće od G do ?E. @eke arhitekture predvi!aju pose$ne adresne registre, koji prema svojoj nameni pri adresiranju mogu $iti $azniregistri, indeksni registri, segmentni registri i drugi.(egmentni registri adresiraju segmente memorije dodeljene programima, podacima, steku itd.

    &ose$ni registri namenjeni upravljanju tokom programa su tako!e prisutni u nekim arhitekturama. @ajčešćesretani registar ovog tipa je registar koda uslova  ili registar uslova 'ondition ode Register ili R(. no$jedinjuje veći $roj indikatora 'flags(, jedno$itnih registara koji se postavlaju ili $rišu zavisno od toga da li jeodre!eni doga!aj nastao ili nije. ) sastavu R-a najčešće su prisutni sledeći indikatori:• = 'ign =lag( indikator znaka, postavlja se ako je razultat negativan,• Z= 'Zero =lag( indikator nule, postavlja se ako je rezultat nula,• = 'arr4 =lag( indikator prenosa, postavlja se ako se javi prenos,• = 'verfloH =lag( indikator prekoračenja, postavlja se ako rezultat prekorači kapacitet formata,• &= '&arit4 =lag( indikator parnosti, postavlja se ako je rezultat paran,• A= 'Au*ilar4 arr4 =lag( indikator pomoćnog prenosa, postavlja se ako se javi prenos iz četvoro$itne

    grupe pri sa$iranju 3D $rojeva, idr. ?

  • 8/18/2019 Arhitektura i Organizacija Racunara - Th

    5/25

    ) nekim arhitekturama navedeni indikatori iz registra uslova uključeni su u registar poznat kao registar statusa programa '&rogram tatus Iord ili &I(.

    Sistemski re!istri

    istemski registri učestvuju u upravljanju prekidima i izuzecima, prevo!enje sistema iz supervizorskog ukorisnički način rada i o$rnuto, prevo!enju virtuelnih u fizičke, upravljanju keš memorijama, sakupljanju podataka o korišćenju resursa sistema itd. vim registrima se može pristupati samo pri kernel ilisupervizorskom načinu rada sistema.Registri koji učestvuju u upravljanju prekidima i izuzecima sadrže podatke o načinu rada procesora'korisničkiJsupervizorski(, o dozvoliJza$rani prekida, maskiranju prekida, nerazrešenim zahtevima za prekid

    uzorku izuzetka itd.  .dresni registar rukovaoca prekida  sadrži adresu programa koji se aktivira prekidomistemski registri specifični su za svaku arhitekturu.

    6. e!istarsko $ indirektno re!istarsko

    I neposredno adresiranje'Register Addressing( imamo kada je operand prisutan u nekom registru procesora, R  j. / primarna i efektivnaadresa operanda je adresa registra R  j:

      jef   prim   4aa   ==

    $zirom da se $roj registara opšte namene u procesoru kreće u granicama od F do ;G, za adresiranje operanadau registrima potre$no je od ? do ; adresnih $itova. "ako su registri procesora naj$rži deo memorijskog saistemaračunara, vreme pristupa operandima u registrima je najkraće moguće.

    =ormiranje efektivne adrese

    Indirektno re!istarsko adresiranje'Register /ndirect Addressing( imamo kada je operand u memoriji adresiran sadržajem nekog registra opštenamene R  j. ) adresnom polju operanda u instrukciji navodimo registar R  j. Dakle primarna adresa operanda jeadresa registra R  j, a efektivna adresa operanda je sadržaj registra R  j.

      j prim   4a   = ,   jef     4a   =

    =ormiranje efektivne Adrese

    %eposredno adresiranje'/mmediate Addressing( pri pri$avljanju instrukcije pri$avlja se i operand i on je raspoloživ za o$radu $ezdodatnih aktivnosti. @aziva se još i literalno adresiranje. &rimarna i efektivna adresa operanda odre!ene susadržajem programskog $rojača, &:

    G

    Registarskoadresiranje

    /ndirektno Registarskoadresiranje

  • 8/18/2019 Arhitektura i Organizacija Racunara - Th

    6/25

     PC aa ef   prim   ==

     @eposredno adresirani operandi koriste se u aritmetičkim operacijama, pri pore!enjima 'prvenstveno ugrananjima(, i u prenosima kojima se registri pune konstantama. "onstante koje se koriste u izrazima o$ičnoimaju male vrednosti, dok adresne konstante o$ično imaju velike vrednosti. Za označavanje neposrednogadresiranja koristićemo znak K napisan ispred operanda: K"onst ili KL.

    7. &azno i indeksno adresiranje

    '3ase Addressing( imamo kada je operand u memoriji adresiran z$irom sadržaja $aznog registra, 3R, i pomeraja 'displacement( navedenog u odgovarajućem adresnom polju instrukcije za taj operand. 3azni registar3R može $iti pose$an adresni registar namenjen ovom načinu adresiranja ili neki od registara opšte namene, što je danas češće zastupljeno. &omeraj predstavlja adresu lokacije relativnu u odnosu na sadržaj $aznog registra3R svojim sadržajem odre!uje veličinu područja memorije, čijim se lokacijama može pristupiti na osnovu pomeraja. Referentna adresa može $iti adresa početka memorije, kada je pomeraj neoznačena veličina, iliadresa sredine područja memorije, kada je pomeraj označena veličina. Dužina pomeraja, r! odre!uje veličinu područja adresa >MEr , unutar kojeg se lokacijama može pristupati sa nepromenjenim sadržajem 3R-a. &rimarnaadresa sadrži dve komponente: adresu 3R-a i pomeraj. 5fektivna adresa operanda je z$ir sadržaja 3R-a i pomeraja.

     pomeraj $4a prim   ,= , ( )   pomeraj $4aef     +=

    =ormiranje efektivne adrese

    3azno adresiranje omogućuje da se memorijske lokacije adresiraju sa manjim $rojem adresnih $itova i

    omogućuje jednostavnu implementaciju relokativnosti podataka u memoriji.  4elokativnost  je mogućnost da se podacima dodeli $ilo koje područje memorije koje se može menjati i u toku samog izvršenja programa.vo adresiranje se naziva još i pomerajno adresiranje 'displacement addressing(.značavamo ga stavljanjem pomeraja ispred oznake 3R-a izme!u para malih zagrada: EL'RG(.

    Indeksno adresiranje'/nde* Addressing( imamo kada je operand u memoriji adresiran z$irom sadržaja registara R  j i R k . R  j sadrž početnu adresu područja u memoriji dodeljenog nekoj strukturi podataka, a R k   je indeksni registar koji sadržindeks nekog elementa u toj strukturi. &rimarnu adresu operanda čine adrese R  j  i R k , a efektivna adresaoperanda je z$ir sadržaja ova dva registra:

    k   j prim   4 4a   ,= , ( )k   jef     4 4a   +=

    =ormiranje efektivne adrese

    L

    3azno adresiranje

    /ndeksnoadresiranje

  • 8/18/2019 Arhitektura i Organizacija Racunara - Th

    7/25

  • 8/18/2019 Arhitektura i Organizacija Racunara - Th

    8/25

    znakama

  • 8/18/2019 Arhitektura i Organizacija Racunara - Th

    9/25

  • 8/18/2019 Arhitektura i Organizacija Racunara - Th

    10/25

    ortogonalnost operacija i načina adresiranja zahteva da se u svakoj operaciji na svaki operand može primeniti $ilo koji od mogućih načina adresiranja operanada.kup operacija često mora $iti kompatibilan sa nekim ranije definisanim skupom instrukcija. Arhitektura skupainstrukcija tre$a da ima dug životni vek. 0edan od načina da $i se životni vek arhitekture produžio je i proširenjestare arhitekture, zadržavajući sve njene elemente i dodajući elemente usloveljene savremenim zahtevima.

    2ip operatora &rimeri

    Aritmetički i logički elo$rojne aritmetičke i logičke operacija

    &renos podataka &unjenja, pamćenja, instrukcije prenosa

    )pravljanje 9rananja, skokovi, pozivi i vraćanja iz procedura, trapovi

    istemski&ozivi operativnog sistema, instrukcije za upravljanje virtuelnom i keš

    memorijom

    &okretna zapetaperacije sa pokretnom zapetom: sa$rati, pomnožiti, konverzija celo$rojnog

     podatka u pokretnu zapetu i o$rnuto

    DekadneDekadno sa$iranje i množenje, konverzija iz dekadnog o$lika u nisku znakova i

    o$rnuto @iske znakova &renos niske, poredjenje niski, traženje niski

    9rafički peracije sa pikselima, operacije kompresije i dekompresije

    7ultimedijalni peracije na grupama pakovanih celo$rojnih i =& podatakakup instrukcija mora $iti prilago!en zahtevima savremenih implementacionih tehnologija. 0edna od njih je protočnost u radu procesora, sa zahtevima što veće ujednačenosti o$ima aktivnosti u instrukcijamamogućnošću preklapanja izvršenja operacija, mogućnošću preure!enja instrukcija u programima i drugimzahtevima.kup instrukcija mora o$uhvatati instrukcije za o$avljanje aritmetičkih i logičkih operacija, instrukcije za prenos podataka i upravljačke insrukcije. 2ipovi instrukcija u sastavu skupa instrukcija, klasifikovani prematipu operatora koji se u njima pojavljuje, dat je u prethodnoj ta$eli.9rupa aritmetički# operacija  sadrži instrukcije sa$iranja, oduzimanja, množenja, deljenja, pore!enjainkrementiranjaJdekrementiranja, komplementiranja itd. celo$rojnih označenih i neoznačenih podataka.9rupa logički# operacija  sadrži instrukcije za o$avljanje logičkih operacija /, />/, @5, /sključivo+/>/ itdneoznačenih celih $rojeva.9rupa instrukcija pomeranja sadrži instrukcije za logičko pomeranje ulevo i udesno $ez i sa kružnim prenosom

    i aritmetičko pomeranje udesno.9rupa instrukcija za prenos podataka sadrži instrukcije 7ove, >oad, tore, &ush, &op, /n, ut idr. /nstrukcijom7ove podatak se može preneti izme!u para registara, ili izme!u registara i memorije. /nstrukcijom >oad podatak se prenosi iz memorije u registar, a instrukcijom tore iz registara u memoriju. ) novije vreme ovagrupa instrukcija o$ogaćena je instrukcijama uslovnog prenosa 'conditional move(. ne sadrže uslov koji mora $iti ispunjen da $i se prenos podataka o$avio.9rupa sistemski# instrukcija o$uhvata instrukcije za poziv usluga operativnog sistema, zaustavljanje programau prekidnoj tački, upravljanje keš memorijom i virtuenom memorijom, povratak iz rukovaoca izuzetaka itd.9rupa instrukcija za rad sa dekadnim podacima o$uhvata instrukcije za korekciju operanada pri dekadnomsa$iranju, množenju i deljenju.

    12.Instrukcije za upravljanje tokom pro!rama9rupa instrukcija za upravljanje tokom programa sadrži instrukcije $ezuslovnog i uslovnog grananja, skokova,

     poziva procedura 'potprograma( i povratka iz procedura 'potprograma(. ledeća ta$ela sadrži prikaz ovihinstrukcija za tipičan R/ procesor. ) ovim instrukcijama 'osim 0R i 0A>R( za odredište grananja odnosnoskoka koristi se adresiranje relativno u odnosu na programski $rojač. tklon je označeni ceo $roj. &olje otklona je u instrukcijama skoka širine p $itova, a u instrukcijama grananja : $itova. ve instrukcije su dužine G $ajtatako da je &NG adresa instrukcije koja u programu sledi upravljačku instrukciju. tklon, sa vrednostima izopsega C  

  • 8/18/2019 Arhitektura i Organizacija Racunara - Th

    11/25

  • 8/18/2019 Arhitektura i Organizacija Racunara - Th

    12/25

     program rukovaoca prekida  'inetrrupt handler procedure(. &o završrtku opsluživanja prekida ili izuzetkanastavlja se izvršenje prekinutog programa. @eki proizvo!ači računara raščlanjuju izuzetke prema dodatnim kriterijumima, tako i intel u svojoj /A-?Earhitekturi ima specificira tri klase izuzetaka: greške, trapove i po$ačaje. "lasifikacija izuzetaka na greške,trapove i po$ačaje vrši se na osnovu načina na koji se izvršava o njihovom nastanku, kao i da li se instrukcijakoja je izazvala izuzetak može restartovati $ez gu$itaka kontinuiteta programa.

    14. Spolja(nji prekidi )od *-I ure+aja, i unutra(nji prekidi )trapovi,2ermin izuzetak najčešće se koristi za sinhrone doga!aje unutar &-a, kada on ustanovi ispunjenje jednog iliviše unapred definisanih uslova za vreme izvršenja neke instrukcije. "lasifikacija izuzetaka na greške, trapove i po$ačaje vrši se na osnovu načina na koji se izveštava o njihovom nastanku, kao i da li se instrukcija koja jeizazvala izuzetak može restartovati $ez gu$itaka kontinuiteta programa.2rap je izuzetak koji se dojavljuje neposredno posle izvršenja instrukcije u kojoj se javio trap. 2rap dopušta dase izvršenje programa nastavi $ez gu$itka kontinuiteta programa. Adresa povratka iz rukovaoca trapa je adresainstrukcije koju tre$a izvršiti posle instrukcije u kojoj se javio trap. Ako se javio u instrukciji koja upravljatokom programa, adresa povratka iz rukovaoca trapa $iće adresa na koju se prelazi tom upravljačkominstrukcijom, a ne njena sukcesivna instrukcija u programu.

    15. Arhitektura i formati instrukcija MIPS procesora7/& arhitektura je R/ arhitektura proistekla iz istraživanja, na tanford univerziteta, o$avljena od , u koje se smeštaju rezultati operacija množenja,deljenja, i množenja i akumuliranja,• &rogramski $rojač &, koji nije arhitekturno vidljivi registar, na koji se samo indirektno utičenekim instrukcijama• ?E =& registra opšte namene '=&R(, koji o$razuju polje =& registaraU svi =& registrraspoloživi su za korišćenje u operacijama sa =& podacima jednostruke preciznostiU =& podaci dvostruke preciznosti čuvaju se u paru susednih =& registara, od kojih je prvi sa parnim a drugi sa neparnim indeksom• L =& upravljačkih registara, čija je uloga da identifikuju =& jedinicu i upravljaju njome.Registri koje definiše 7/&?E prikazani su na slici.Dva od ?E 9&R registra imaju pose$ne namene:• R6 je ožičen na sadržaj 6 'on zapravo i nije pravi registar(U on se može koristiti kada je potre$na vrednost 6 ili kao odredišni registar kada rezultat tre$a od$aciti,• R?< je odredišni registar u instrukcijama 0A>, 3>2ZA>, 3>A2ZA>>, 395ZA> i

    395ZA>> $ez njegovog eksplicitnog navo!enja u ovim instrkcijamaU van njih on se koristi kao i drugi 9&Rregistri.

  • 8/18/2019 Arhitektura i Organizacija Racunara - Th

    13/25

    7/&?E arhitektura definiše sledeće formate celo$rojnih podataka:

    • 3it• 3ajt• &olureč 'E3(• Reč 'G3(• Dvostruku reč 'F3(Arhitektura tako!e definiše =& podatke sledećih tipova:• ?E-$itne =& podatke jednostruke preciznosti• ;G-$itne =& podatke dvostruke preciznosti7/& arhitektura podržava sedeće načine adresiranja:•  @eposredno

    • Registarsko• 3azno 'pomerajno(• & relativno 'samo u instrukcijama grananja( @eposredno adresiranje koristi se za adresiranje jednog izvorišnog operanda u aritmetičkim i logočkimoperacijama. 3azno adresiranje je jedini način adresiranja operanada u memoriji. 7e!utim, iz$orom pose$nihvrednosti pomeraja i adrese $aznog registra mogu se do$iti još dva izvedenanačina adresiranja: direktno'apsolutno( i indirektno registarsko adresiranje.

    =ormati instrukcija 7/& procesorave instrukcije su dužine ?E $ita, i moraju $iti poravnato smeštene u memoriji računara. &ostoje tri formatainstrukcija za rad sa celo$rojnim podacima prikazana na slici. ) sva tri formata instrukcija kod operacije 'op( i

    indeksi 'adrese( registara, dužine po L $ita, imaju fiksna mesta, što olakšava i u$rzava dekodiranje instrukcija.Aritmetičko logičke instrukcije su troadresne, sa dve varijante:• va tri operanda u registrima procesora 'R format(• 0edan izvorišni operand neposredno adresiran '/ format(.

  • 8/18/2019 Arhitektura i Organizacija Racunara - Th

    14/25

    R format namenjen je aritmetičko logičkim instrukcijama i instrukcijama pomeranja. / format namenjen jearitmetičko logičkim instrukcijama, instrukcijama uslovnog grananja i instrukcijama o$raćanja memoriji'>oad i tore(. 0 format nemenjen je instrukcijama skoka i $ezuslovnog poziva procedura.znake polja u ovim formatima i njihova značenja su sledeća:• op kod operacije instrukcije,•

    rs indeks 'identifikator( prvog izvorišnog registra instrukcija,• rt indeks drugog izvorišnog registra ili odredišnog registra instrukcije,• rd indeks odredišnog registra instrukcije,• shamt $roj $inarnih pozicija za koje tre$a pomeriti izvorišni operand,• funct dodatno polje koda operacija instrukcija,• immediate neposedni operand u aritmetičko logičkim instrukcijama, otklon uinstrukcijama uslovnog grananja ili pomeraj u instrukcijama >oad i tore,• target address primarna adresa odredišta skoka u instrukcijama skoka i $ezuslovnog poziva procedura.

    16. i(etaktna implementacija procesora

     @edostaci kod jednotaktnog procesora mogu se otkloniti višetaktnom implementacijom procesora. Zavisno odaktivnosti u okviru instrukcije, ciklus instrukcije uključuje neophodan $roj taktnih ciklusa. Za svaku instrukcijuaktivnosti na pri$avljanju i izvršavanju raščlanjuju se na izvestan $roj faza. vaka faza se o$avlja se u okviru jednog ciklusa takta. Aktivnosti u okviru svake faze o$avlja odgovarajći stepen procesora. vaki par susednihstepena procesora razdvojen je registrima. Registri koji prethode nekom stepenu su ulazni registri za taj stepen.Registri koji slede nekom stepenu su izlazni registri za taj stepen. ) taktnom ciklusu u kome je stepen procesoraaktivan, on podatke iz svojih ulaznih registara transformiše i upisuje ih u svoje izlazne registre. )pisi u registre imemoriju taktovani su taktnim signalima.vaka instrukcija se može raščlaniti na najviše pet faza:• &ri$avljanje instrukcija '/=(,• Dekodiranje instrukcija i pri$avljanje operanada iz registara '/D(,• /zvršenje instrukcija '5#(,• $raćanje memoriji podataka '75( i• )pis podataka u odredišni registar 'I3(. @a slici je prikazana $lok šema implementacije višetaktnog procesora

  • 8/18/2019 Arhitektura i Organizacija Racunara - Th

    15/25

    vde su A i 3 prihvatni registri izvorišnih operanda pri$avljenih iz polja registara, a A>)/zl prihvatni registarrazultata iz A>).

    Aktivnosti pri pri$avljanju i izvršenju razmatranih instrukcija na višetaktnom procesoru po fazama su sledeće:1 pribavljanje instrukcija ?&)@

    /RS7emC&B&S&NG/z lokacije programske memorije, na koju pokazuje programski $rojač, pri$avlja se instrukcija i prenosi uregistar instrukcija. &araleleno sa tim formira se adresa sledeće sekvencijalne instrukcije, i upisuje u programski $rojač &.7 ,ekodiranje instrukcija i pribavljanje operanada iz registara ?&,@

    ASRegC   E)/zl. ve ove aktivnosti o$avljaju se paralelno. vo je omogućeno fiksnim položajem oznakaregistara i immediate polja u R i / formatu instrukcija.; &zvršavanje instrukcije i izračunavanje efektivne adrese ?AB@

    Zavisno od instrukcije, o$avlja se jedna od sledećih pet aktivnosti:• Aritmetičko logičke instrukcije R formataA>)/zlSA'op,func(3/zvršava se operacija, odre!ena sadržajima polja op i function, nad sadržajima registara A i 3. Rezultat se

    smešta u A>)/zl.• Aritmetičko logičke instrukcije / formataA>)/zlSA op proš.+nul.'imm(/zršava se operacija, odre!ena kodom operacije op, nad sadržajem registra A i nulama proširenim neposrednimoperandom. Rezultat se smešta u A>)/zl.• $raćanje memorijiA>)/zlSANznak.+proš.'imm(/zračunava se efektivna adresa o$raćanja memoriji sa$iranjem sadržaja registra A '$azna adresa( i znakovno proširenog pomeraja. Reultat se smešta u A>)/zl.• 9rananjeIf 'AM3( then &SA>)/zl

    Ako je uslov grananja ispunjen, & se puni odredištem grananja instrukcije.• kok 

    EYY 6..ELEF..?<   oad i tore($raćanje memoriji:>oad: 7DRS7emCA>)/zlB, ili

  • 8/18/2019 Arhitektura i Organizacija Racunara - Th

    16/25

    tore: 7emCA>)/zlBS3 %pis rezultata u odredište ?D$@

    • Aritmetičko logičke instrukcijeR formata .*%&zl  &4 g    ←BCRe )/zlSANzp'imm( /f'AM3( then&SA>)/zl&S   EF..?oad:7DRS7CA>)/zlB

    tore:7CA>)/zlBS3

    L>oad:

    RCrtBS7DR =aza

  • 8/18/2019 Arhitektura i Organizacija Racunara - Th

    17/25

    definisan vremenski interval ili do ispunjenja nekog uslova. 1remenske intervale odre!uje taktni signal, čijaučestanost može $iti jednaka ili veća od učestanosti taktnog signala procesora. )slov za izlazak može $iti pristigla potvrda da je neka aktivnost, naložena u tom stanju, dovršena. @izovi stanja kroz koje prolaziupravljačka jedinica odre!eni su instrukcijama koje se pri$avljaju i interpretiraju, kao i uslovima koji pri tomenastaju u procesoru i van njega. Zahtevano ponašanje upravljčke jedinice može se opisati i u formi nekog od programskih jezika.)pravljačka jedinica procesora, čije je ponašanje odre!eno na neki od navedenih načina, može seimplementirati na osnovu jedne od ove dve sledeće koncepcije:• "ao klasična sekvencijalna prekidačka mreža, što vodi direktnom 'hardverskom(upravljanju, i• "ao mašina sa zapamćenim programom, što vodi mikroprogramskom upravljanju.

    18. *pravlja#ka jedinica sa )hardverskim, direktnim upravljanjem @a primeru višetaktnog procesora videli smo da je za definisanje ponašanja upravljačke jedinice procesoraneophodno koristiti koncepciju stanja, koja se široko koristi u teoriji konačnih automata 'finite state machine(.)pravljačku jedinicu procesora možemo posmatrati kao konačni automat, zadat sledećim elementima:

    -kupom stanja upravljačke jedinice \,...,,]

  • 8/18/2019 Arhitektura i Organizacija Racunara - Th

    18/25

    >ogika direktnog upravljanja[ je predstavljena šemom sa prethodne slike. ) $loku 2ekuće stanje )0[skoncentrisani su memorijski elementi upravljačke jedinice. )lazni signali u upravljačku jedinicu uključujuodre!ena polja registara instrukcija, stanja indikatora iz registra koda uslova 'ili ekvivalente ovog rešenja( ineke od upravljačkih signala sistemske magistrale. /zlazni signali vode se na upravljačke linije 'tačke( puteva podataka procesora i neke upravljačke linije sistemske magistrale. Z$og ranijih implementacija logičkih kola seupravljačka jedinica sa direktnim upravljanjem naziva i oFičena upravljačka jedinica.Za projektovanje upravljačke jedinice sa direktnim upravljanjem može se koristiti metoda ta$lice stanja, metoda

    elemenata za kašnjenje idr.19. Projektovanje *. metodom ta'lice stanja

    )pravljačka jedinica može $iti data na jedan od već navedenih načina ili ta$licom stanjaJizlaza prikazanomta$elom. ik  je stanje u koje upravljačka jedinica prelazi iz stanja i pod dejstvom ulaznih signala *k . a %označeni su izlazni signali koje upravljačka jedinica formira u stanju i. &rojektovanje uključuje minimizacijustanja automata, kodiranje stanja i projektovanje sekvencijalne prekidačke mreže koja implementira automat. Zasve navedene faze projektovanja mogu se koristiti za to namenjeni programski sistemi.

    tanjeJ/zlazni signal

    )lazni upravljački signali#< #E ... #m

    6J%6 6< 6E ... 6m

  • 8/18/2019 Arhitektura i Organizacija Racunara - Th

    19/25

    impulsnog signala mora $iti takvo, da on za svako stanje , duž puta u dijagramu toka upravljanja, o$ez$e!ujevremenski interval ti koji odgovara tom stanju. 3rzina prostiranja impulsnog signala kroz prekidačku mrežu,odnosno dužina ovih vremenskih intervala, može se definisati elementima za kašnjenje.7reža koja implementira dati algoritam upravljanja do$ija se na osnovu sledeća četiri pravila:• &ar sukcesivnih stanja i i j zahteva uvo!enje elemenata za kašnjenje. )pravljački signali ]4 ir \ i ]4ip\koje )0 izdaje stanjima i i j uzimaju se sa ulaza i izlaza ovog elementa za kašnjenje, respektivno 'slika poda(, ili se formiraju na osnovu njih.• )slovno grananje sa uslovom na primer if'f'*(MM/ logičkog elementa, čiji $roj ulaza odgovara $roju stanja u kojima se taj upravljački signalaktivira."ao element za kašnjenje može se upotre$iti taktovani D flip-flop.

    &rojektovanje )0 metodom elemenata za kašnjenje daje sekvencijalnu prekidačku mrežu u kojoj je lakouspostaviti vezu izme!u elemenata ove mreže i kao odgovarajućih delova dijagrama toka upravljanja )0. voolakšava testiranje kao i izmene u implemntaciji. @edostatak je to što ta implenetaciju )0 sa n s stanja zahtevans-< 'ili ns( flip-flopova, što je znatno više od  snElog  koliko zahteva metoda ta$lice stanja.Druga varijanta ove metode zasniva se na projektovanju sekvencijalne prekidačke mreže čija stanja nisukodirana, već su dekodirana. 2a metoda se naziva i metoda jednog vrućeg elementa. 1rući memorijski element je onaj koji se trenutno nalazi u stanju

  • 8/18/2019 Arhitektura i Organizacija Racunara - Th

    20/25

     početak mikroprograma pri$avljene mašinske instrukcije zahteava odre!ivanje novog sadržaja $rojačamikroinstrukcija na osnovu koda operacije te instrukcije, prisutne u registru instrukcija /R.truktura mikroprogramski organizovane )0 prikazana je na donjoj slici. 7ikroprogrami mašinskih instrukcijasmešteni su u mikroprogramskoj memoriji, čije lokacije adresira $rojač mikroinstrukcija. 7ikroinstrukcija pri$avljena iz mikroprogramske memorije smešta se u registar mikroinstrukcija R7/ 'nije prikazan na slici(odalkle se delovi mikroinstrukcije šalju na upravljačke linije puteva podataka ')( i na ulaze logike za iz$oradrese '7pN)slovNA7(. adržajem $rojača mikroinstrukcija upravlja logika za iz$or adrese.

    22. Formati mikroinstrukcija @ajopštiji format mikroinstrukcija 'slika pod a( sadrži kod mikrooperacije '7p(, polje upravljačkih signala')( i polje adrese sledeće mikroinstrukcije 'A7(. 7p ukazuje na tip mikroinstrukcije. ) polju uslova moguse navesti vrednosti signala uslova pri kojima dolazi do granja. "ako ne postoji potre$a da se svakom

    mikroinstrukcijom menja linearni tok mikroprograma, format mikroinstrukcija može se skratiti sledećimrešenjem. )mesto jednog, uvedimo dva formata mikroinstrukcija: jednim ćemo samo izdavati naloge zaaktiviranje upravljačkih signala, a drugim ćemo samo menjati linearni tok programa 'slika pod $(. vakvoskraćenje mikroinstrukcija povećava dužinu mikroprograma, a time i vreme njegovog izvršenja.

    23. Proto#na or!anizacija procesora&rotočna organizacija procesora je o$lik implementacije procesora kojim se preklapa izvršenje više instrukcijaDeo hardvera protočnog procesora, koji učestvuje u o$avljanju jedne od faza instrukcije, zovemo stepen protočnog procesora. 3roj stepena protočnog procesora odre!en je $rojem različitih faza u pri$avljanju i

  • 8/18/2019 Arhitektura i Organizacija Racunara - Th

    21/25

    izvršenju instrukcija iz skupa instrukcija procesora. &rotočni procesor proistekao iz višetaktnog procesora imao $i L stepena: /=, /D, 5#, 75 i I3.

    24. Putevi podataka proto#no or!anizovano! procesora

    25. *pravljanje proto#nim procesorom"od protočnih procesora javljaju se upravljački signali koji su raspore!eni po stepenima na sledeći način:• ) okviru /= stepena) svakom taktnom ciklusu generiše se signal dozvole upisa u &, nezavisno od pri$avljane instrukcije.7e!utim, novi sadržaj &-a $ira se izme!u inkrementiranog prethodnog sadržaja &-a i odredišta grananja

    eventualne instrukcije grananja koja je dospela u 75 stepen. 2o $iranje se vrši multiplekserom.• ) okviru /D stepenaAktivnosti u /D stepenu o$avljaju se nazvisno od instrukcije prisutne u ovom stepenu. 0edini izuzetak je proširenje polja /=J/D./R )rc, A>)ctr i RegDst. ignalom A>)rc $ira se drugioperand A>)-a, koji može $iti /DJ5#.3 ili /DJ5#./mm. ignalima A>)ctr definiše se operacija koja se nalažeA>) jedinici.• ) okviru 75 stepenaAktivnostima u ovom stepenu upravlja se signalima 3ranch, 7emRd i 7emIr. )pravljački signal 3ranchukazuje da se radi o instrukciji grananja. ignalima 7emRd i 7emIr nalaže se čitanje iz, odnosno upis u

    memoriju podataka.• ) okviru I3 stepena)pravljačkim signalima 7emtoReg se za upis u odredišni registar $ira podatak 75JI3.>7D ili75JI3.A>/rez. ignalom RegIr nalaže se upis ovako odre!enog podatka u odredišni registar.)pravljačke signale generiše upravljačka jedinica, locirana u okviru /D stepena protočnog procesora. viupravljački signali prenose se do stepena, u kojima se oni koriste. &ored ovih upravljačkih signala, od jednog dodrugog protočnog registra prenose se i druge vrednosti vezane za odgovarajuću instrukciju. 2o se odnosi naindekse registara koji mogu $iti odredišni registri instrukcija, rt   i rd . ) 5# stepenu se preko multipleksera zainstrukciju u ovom stepenu $ira indeks rG odredišnog registra.

    26. "lasifikacija hazarda podataka

    E6

  • 8/18/2019 Arhitektura i Organizacija Racunara - Th

    22/25

    &osmatramo dve instrukcije / j  i /k   izme!u kojih postoje zavisnosti po podacima preko registra R i, pri čemu /ksledi / j. Ako se ove dve instrukcije istovremeno na!u u protočnom procesoru, mogu se javiti sledeći hazardi podataka:I R

  • 8/18/2019 Arhitektura i Organizacija Racunara - Th

    23/25

    29. Iz'e!avanje hazarda podataka planiranjem instrukcija8azardi podataka se mogu iz$eći ako $i smo rastojanje izme!u instrukcija / j i /k  mogli povećati iznad kritičnevrednosti. 2o se može postići premeštanjem nekih nezavisnih instrukcija sa svojih polaznih pozicija u pozicijeizme!u ovog para instrukcija. &ri tome se mora voditi računa da se time ne promeni algoritam koji programimplementira. vakav naćin iz$egavanja hazarda podataka naziva se planiranje instrukcija."ako smo ranije zaključili pri premošćavanju opasnost od hazarda postoji samo posle instrukcija *oad ,  i tosamo ako zavisna instrukcija neposredno sledi za njom. 2ada planiranjem instrukcija tre$a iza instrukcije  *oadumetnuti jednu nezavisnu instrukciju, čime se opasnost od hazarda otklanja.tklanjanje hazarda planiranjem instrukcija ima svoju cenu:• Analizu zavisnosti po podacima izme!u instrukcija u programu i razdvajanje zavisnih instrukcija na

     $ez$edno rastojanje umetanjem nezavisnih instrukcija izme!u njih, i•  povećani $roj angažovanih registara.

    30. 0azardi upravljanja )!rananja,0avljaju se pri izvršavanju instrukcija za upravljanje tokom programa. ) tu grupu spadaju instrukcije grananja,skokova, poziva procedura i povratka iz procedura. /nstrukcije grananja naj$olje reprezentuju pro$leme koji se pri tome javljaju.8azardi grananja nastaju kao posledica ne$lagovremenog odre!ivanja adrese instrukcije koja će $iti izvršena posle instrukcije grananja. pasnost od nekorektnog izvršenja programa posle instrukcije grananja naziva sehazard grananja. /z$egavanje hazarda grananja zahteva zastoje u pri$avljanju instrukcije-dinamičkog sled$enikagrananja, pri čemu se ignoriše već pri$avljena instrukcija-sekvencijalni sled$enik grananja. 3roj taktnih ciklusa

    od prve faze instrukcije grananja do pri$avljanja instrukcije sled$enika grananja, isključujući o$a ova taktnaciklusa, naziva se kašnjenje grananja.

    31. Smanjenje cene !rananja&ostoji više načina, a neki od njih su:

  • 8/18/2019 Arhitektura i Organizacija Racunara - Th

    24/25

    - ispred instrukcije grananja,- sa puta o$avljenog grananja i- sa puta neo$avljenog grananja.

    ?. &redvi!anje ishoda grananja može doprineti smanjenju izgu$ljenih taktnih ciklusa z$og grananja. Ako je predvi!en ishod neo$avljanje grananja, posle instrukcije grananja možemo nastaviti sa pri$avljanjem iizvršavanjem instrukcija-sekvencijalnih sled$enika instrukcije grananja $ez zastoja. Ako je predvi!enishod o$avljanje grananja tre$a što pre doći do adrese odredišta grananja. /dealno $i $ilo da već pri pri$avljanju instrukcije znamo da se radi o instrukciji grananja, kao i da adresu odredišta grananjaimamo već u tom taktnom ciklusu. 2ada $ismo već u sledećem taktnom ciklusu mogli da pri$avimoinstrukciju-sled$enika o$avljenog grananja. 2o se može postići korišćenjem $afera odredišta grananja.

    G. &ovremeno gu$ljenje taktnih ciklusa u slučajevima pogrešnog predvi!anja grananja može se iz$eći takošto se posle instrukcije granja pri$avljaju instrukcije i sa puta o$avljenog i sa puta neo$avljenoggrananja. / u tom slučaju tre$a koristiti $afer odredišta grananja. tepeni do kojih mogu dopretiinstrukcije pri$avljene posle instrukcije grananja do razrešenja grananja moraju $itiudvojeni, tako damogu prihvatati instrukcije sa o$a ova puta. 2ek po razrešenju grananja od$acuju se instrukcije sa pogrešnog puta i nastavlja samo sa instrukcijama sa ispravnog puta.

    41. Pro(irenje proto#no! sistema za rukovanje operacijama sa vi(e ciklusa izvr(enjaloženije operacije sa celo$rojnim operandima, kao što su množenje i deljenje, zahtevaju duža vremenaizvršenja i o$avljaju se na pose$nim hardverskim jedinicama, takozvanim množačima i deliteljima.&retpostavimo da u protočno organizovanom sistemu imamo G funkcionalne jedinice:

  • 8/18/2019 Arhitektura i Organizacija Racunara - Th

    25/25

     pojavljuju izme!u ciklusa u kome neka instrukcija proizvodi rezultat i ciklusa u kome druga instrukcija možekoristiti taj rezultat. Za aritmetičko logičke operacije latencija je 6, a za >AD