98
ORGANIZACIJA RAČUNARA SKRIPTA ZA USMENI DEO ISPITA

SKRIPTA - Organizacija racunara

Embed Size (px)

Citation preview

Page 1: SKRIPTA - Organizacija racunara

ORGANIZACIJA RAČUNARASKRIPTA ZA USMENI DEO ISPITA

Milan Vukosavljević 10410Ivan Damnjanović 10457

Ivica Pešić 10596

Page 2: SKRIPTA - Organizacija racunara

SADRŽAJ1. Iskazivanje performansi procesora..................................................................................................................42. MIPS i MFLOPS.............................................................................................................................................53. Amdahl-ov zakon.............................................................................................................................................54. Tipovi arhitektura procesora............................................................................................................................65. CPU sa registrima opšte namene.....................................................................................................................66. Adresnost procesora.........................................................................................................................................77. Registri procesora............................................................................................................................................88. Aktivnosti pri pribavljanju instrukcija.............................................................................................................99. Registarsko i indirektno registarsko adresiranje..............................................................................................910. Bazno adresiranje...........................................................................................................................................1011. Neposredno adresiranje.................................................................................................................................1112. Memorijsko indirektno adresiranje................................................................................................................1113. Autoinkrementno i autodekrementno adresiranje..........................................................................................1114. Indeksno adresiranje......................................................................................................................................1215. Adresiranje relativno u odnosu na programski brojač...................................................................................1216. Redosled bajtova u podacima i poravnati pristupi memoriji.........................................................................1317. Skup instrukcija procesora.............................................................................................................................1418. Instrukcije za upravljanje tokom programa...................................................................................................1519. RISC i CISC procesori...................................................................................................................................1620. Sistem prekida računara.................................................................................................................................1721. Spoljašnji prekidi (od U-I uređaja) i unutrašnji prekidi (trapovi)..................................................................1722. Arhitektura i formati instrukcija MIPS procesora.........................................................................................1723. Jednotaktna implementacija procesora..........................................................................................................1924. Višetaktna implementacija procesora............................................................................................................2025. Upravljačka jedinica (UJ) procesora (opšte).................................................................................................2226. Upravljačka jedinica sa (hardverskim) direktnim upravljanjem...................................................................2327. Projektovanje UJ metodom tablice stanja......................................................................................................2428. Projektovanje UJ metodom elemenata za kašnjenje......................................................................................2529. Mikroprogramski organizovana UJ...............................................................................................................2530. Formati mikroinstrukcija...............................................................................................................................2631. Protočna organizacija procesora....................................................................................................................2732. Putevi podataka protočno organizovanog procesora.....................................................................................2733. Upravljanje protočnim procesorom...............................................................................................................2734. Hazardi pri protočnoj organizaciji procesora................................................................................................2835. Klasifikacija hazarda podataka......................................................................................................................2836. Izbegavanje hazarda podataka premošćavanjem...........................................................................................2837. Hazardi podataka koji se ne mogu izbeći premošćavanjem..........................................................................2838. Izbegavanje hazarda podataka planiranjem instrukcija.................................................................................2939. Hazardi upravljanja (grananja)......................................................................................................................2940. Smanjenje cene grananja...............................................................................................................................3041. Performanse šema grananja...........................................................................................................................3042. Proširenje protočnog sistema za rukovanje operacijama sa više ciklusa izvršenja.......................................3043. Sabiranje i oduzimanje celih brojeva.............................................................................................................3144. Paralelni sabirači sa serijskim prenosom (RCA)...........................................................................................3145. Paralelni sabirači sa paralelnim prenosom (CLA).........................................................................................3246. Paralelni sabirači sa izborom prenosa (CSLA)..............................................................................................3247. Množenje prosto označenih celih brojeva.....................................................................................................3348. Množenje metodom preskoka jedinica (prekodiranjem množioca)...............................................................3449. Booth-ov algoritam za množenje...................................................................................................................3450. Množenje prekodiranjem parova bitova množioca........................................................................................3551. Deljenje celih brojeva sa obnavljanjem parcijalnog ostatka..........................................................................3552. Deljenje celih brojeva bez obnavljanja parcijalnog ostatka..........................................................................35

1

Page 3: SKRIPTA - Organizacija racunara

53. Predstavljanje realnih brojeva sa pokretnom zapetom..................................................................................3654. Standard IEE 754-85 za binarnu aritmetiku sa pokretnom zapetom.............................................................3655. Sabiranje brojeva sa pokretnom zapetom......................................................................................................3756. Množenje i deljenje brojeva sa pokretnom zapetom.....................................................................................3857. Dodatne cifre za očuvanje tačnosti rezultata i zaokruživanje........................................................................3858. Svođenje razlomka rezultata na potreban broj cifara i greške koje se pri tome prave..................................3859. Numerički procesori......................................................................................................................................3960. Parametri memorije.......................................................................................................................................3961. Metode pristupa memorijskim medijumima..................................................................................................4062. Dinamičke RAM (DRAM) memorije............................................................................................................4063. Sinhrone DRAM (SDR, DDR i DDR2 SDRAM) memorije.........................................................................4164. Upravljanje DRAM memorijama i ozvežavanje DRAM memorije..............................................................4265. EPROM i fleš memorije................................................................................................................................4366. Statičke RAM (SRAM) memorije.................................................................................................................4367. Asocijativna memorija...................................................................................................................................4468. Hijerarhijski memorijski sistem računara......................................................................................................4569. Keš memorije (opšte).....................................................................................................................................4670. Keš memorije sa direktnim, skupno-asocijativnim i potpuno-asocijativnim preslikavanjem.......................4771. Načini upisa u par keš memorija – glavna memorija....................................................................................4872. Klasifikacije promašaja u keš memorijama...................................................................................................4873. Zamena blokova podataka u keš memoriji....................................................................................................4974. Efektivno vreme ciklusa keš memorija..........................................................................................................4975. Sekundarne keš memorije..............................................................................................................................5076. Mere za skraćenje vremena pogotka i promašajne kazne i za smanjenje faktora promašaja keša................5177. Glavna (operativna) memorija računara........................................................................................................5278. Magnetni diskovi...........................................................................................................................................5379. Smeštanje podataka na magnetnom disku.....................................................................................................5380. Virtuelna memorija (opšte)............................................................................................................................5481. Stranično organizovana virtualna memorija..................................................................................................5582. Potpuna (linearna) stranična tablica...............................................................................................................5583. Keš za prevođenje virtuelnih adresa (TLB)...................................................................................................5684. Višenivooska stranična tablica......................................................................................................................5785. Jedinica za upravljanje memorijom...............................................................................................................5886. Ulazno – izlazni sistem računara...................................................................................................................5887. Kontroleri (adapteri) U-I uredjaja..................................................................................................................5888. Odvojeni U-I i U-I preslikan na memoriju....................................................................................................5889. Programom upravljani U-I.............................................................................................................................5990. U-I korišćenjem prekida................................................................................................................................5991. U-I direktnim pristupom memoriji (DMA)...................................................................................................6092. Magistrale (namena i podela)........................................................................................................................6193. Arbitraža na magistrali (centralizovana, distribuirana).................................................................................6294. Sinhronizacija pri prenosu podataka po magistrali........................................................................................6295. Transakcije na magistrali...............................................................................................................................63Stara pitanja koja su izbačena..........................................................................................................................64Osnovni funkcionalni blokovi procesora...............................................................................................................64Moguća rešenja instrukcija uslovnog grananja......................................................................................................65Obrada izuzetaka u MIPS arhitekturi....................................................................................................................66Upravljanje jednotaktnim procesorom..................................................................................................................67Adresiranje keš memorija fizičkim i virtuelnim adresama....................................................................................68

2

Page 4: SKRIPTA - Organizacija racunara

1. Iskazivanje performansi procesora Računare možemo ocenjivati na osnovu različitih pokazatelja: po performansama, ceni, potrošnji energije, težini, pouzdanosti, dizajnu itd. Za većinu korisnika, performanse su, pored cene, najvažniji pokazatelj. Stoga je uloženo puno truda da se dođe do načina za iskazivanje i merenje performansi računara.Kada kažemo da jedan računar, recimo X, brži od drugog računara, recimo Y, imamo u vidu da računar X izvršava programe za kraće vreme od računara Y. Pri tome kao meru koristimo vreme odziva (response time) određeno kao vremenski interval od početka do završetka izvršenja programa. Umesto ovog obično koristimo termin vreme izvršenja (execution time). U računarskim centrima, koji dnevno izvršavaju veliki broj programa, za meru će se radije koristiti propusnost (throughput), određen kao obim posla obavljen u jedinici vremena.

3

Page 5: SKRIPTA - Organizacija racunara

Kažemo da je računar X, n puta brži od računara Y ako je vreme izvršenja za računar X, n puta kraće od vremena izvršenja računara Y:

Pošto su performanse recipročne vremenu izvršenja:

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

Kada kažemo da su performanse poboljšane to znači da su one povećane, a ako kažemo da je vreme izvršenja poboljšano to znači da je smanjeno.Ovo 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. Ovo znači da se vreme izvršenja mora preciznije definisati.Vreme izvršenja centralnog procesora (CPU time) je vreme koje procesor utroši na izvršenje programa, isključujući čekanje na U-I aktivnosti i izvršenje drugih programa. Jasno je da je vreme odziva programa duže od vremena rada centralnog procesora (CP), pa će se i performanse izračunate na osnovu ovih vremena razlikovati. Vreme rada CP-a može se dalje rasčlaniti na vreme koje CP provede u samom programu, korisničko vreme rada CP-a, i vreme koje CP provede u operativnom sistemu, izvršavajući sistemske zadatke zahtevane od programa, sistemsko vreme rada CP-a. Uticaj drugih programa na mereno vreme odziva programa isključuje se na neopterećenom sistemu, koji izvršava samo taj program. Performanse dobijene u ovim uslovima na osnovu vremena odziva programa su performanse sistema, a performanse dobijene na osnovu vremena rada CP-a su performanse CP-a.Performanse računara ili procesora možemo dobiti merenjem vremena odziva programa ili vremena rada CP-a pri izvršenju programa. Za poređenje performansi različitih proizvođača, trebalo bi koristiti iste programe sa istim ulaznim podacima. Ti programi bi trebalo da obuhvataju ista programska rešenja kao i tipične aplikacije za namenu računara čije performanse određujemo. Program koji se koristi u te svrhe sa pridruženim ulaznim podacima poznat je kao benčmark (benchmark). Benčmark programi su obično specijalno napravljeni za merenje performansi računara, procesora ili U-I sistema računara i oni se nazivaju sintetički benčmark programi (synthetic benchmarks). Oni se ne mogu koristiti u druge svrhe, kao aplikacioni programi. Sintetički benčmark programi sadrže smešu instrukcija koja treba da odgovara učestanosti pojavljivanja operacije i operanada u velikom skupu realnih programa. Osim realnih i sintetičkih programa, za merenje performansi koriste se i jezgra (kernels). Jezgra su mali delovi programa, koja se koriste samo za ocenu performansi. Izveštaji o performansama na osnovu SPEC skupova benčmark programa treba da sadrže kompletan opis računara i korišćenog softvera i broj korisnika računara. Ovakav potpuni skup uslova u kojima je testiranje obavljeno treba da obezbedi ponovljivost dobijanja istih rezultata.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 broja savremenih računara diktiran je taktnim signalima, taktovima, (clock) fiksne učestanosti. Takt je periodični signal, sa određenom periodom takta ili ciklusom takta ( ). Savremeni procesori rade na više stotina MHz do nekoliko GHz, stoga su i odgovarajuće periode takta od nekoliko ns do ispod jedne ns. Vreme rada procesora pri izvršenju programa može se izraziti kao:

ili

.

4

Page 6: SKRIPTA - Organizacija racunara

Osim merenja broja taktnih ciklusa pri izvršenju programa (BTC), možemo meriti i broj izvršenih instrukcija u programu (BI). Znajući broj taktnih ciklusa pri izvršenju programa i broj izvršenih instrukcija u programu, možemo izračunati prosečan broj taktnih ciklusa po instrukciji, CPI (cycles per instruction):

Veličina CPI pruža informacije o stilu skupa instrukcija računara i njegovoj implementaciji., gde je vreme rada procesora. Odavde se vidi da performanse procesora zavise od

broja instrukcija u programu, taktnih ciklusa po instrukciji i periode takta ili učestanosti takta.Vrednosti ovih parametara uslovljeni su brojem instrukcija, CPI-em i periodom takta. Kada u izvršavanom programu imamo grupe instrukcija sa istom vrednosti CPI, broj taktnih ciklusa procesora možemo izračunati kao:

, gde predstavlja broj pojavljivanja instrukcija sa vrednošću u programu.

2. MIPS i MFLOPS (Million Instructions Per Second) – je broj miliona izvršenih instrukcija u sekundi. Za dati program MIPS se dobija kao:

Za dati MIPS vreme izvršenja programa je:

Pošto je MIPS brzina kojom procesor izvršava instrukcije, računar sa više MIPS-ova izvršavaće program za kraće vreme. Međutim MIPS nije pouzdana mera performansi procesora iz više razloga: MIPS zavisi od skupa instrukcija, što otežava poređenje MIPS-ova računara sa različitim skupovima instrukcija, MIPS varira od programa do programa za isti računar, što je najgore, MIPS može ocenjivati promene suprotno menjanju performansi, 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 MFLOPS - megaflops).

MFLOPS zavisi od računara i programa i zasnovan je na operacijama, a ne na instrukcijama. Objektivnost MFLOPS-ova može biti ugrožena manipulisanjem kratkim i dugim operacijama sa pokretnom zapetom.

3. Amdahl-ov zakon Jedna od osnovnih preporuka pri projektovanju hardvera računara koji obavljaju određene aktivnosti je: Naći rešenje koje najefikasnije deluje u opštem slučaju, Rešenja za specijalne slučajeve mogu biti manje efikasna, ali moraju biti korektna.Ova 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. Mada intuitivno osećamo da nas ova preporuka vodi u dobrom smeru, ona nam ne omogućuje da ocenimo njene kvantitativne efekte na naša rešenja. Mogućnost kvantitativne ocene uticaja pojedinih rešenja na efikasnost obavljanja posla pruža nam Amdahl-ov zakon.Neka je vreme izvršenja nekog zadatka, a jedan deo tog zadatka traje i želimo da to smanjimo

puta tako da novo vreme traje . Ovim poboljšanjem, brzina kojom se posmatrani zadatak izvršava je

povećana, i povećanje brzine iznosi:

Skraćenjem vremena izvršenja, performanse se poboljšavaju i povećanje brzine iznosi:

5

Page 7: SKRIPTA - Organizacija racunara

Ako je novo vreme izvršenja zadatka ( ), i ako , gde je učešće dela zadatka koji poboljšavamo u ukupnom vremenu izvršenja zadatka, onda dobijamo:

.

Ako sa označimo ukupno povećanje brzine sa kojom se izvršava ceo zadatak, odnosno , onda

dobijamo:

.

Ovaj poslednji izraz je takozvani Amdhl-ov zakon (iako ga je u svom radu nešto drugačije definisao). On nas upućuje da, u nastojanju da poboljšamo performanse sistema, treba da poboljšamo ona rešenja koja imaju veliko učešće u ukupnim aktivnostima sistema.

4. Tipovi arhitektura procesora Prema mestu privremenog čuvanja operanada, arhitekture procesora dele se na: Akumulatorske arhitekture, Stek arhitekture i Arhitekture sa registrima opšte namene.Akumulatorska arhitektura tipična je za procesore u početnoj fazi razvoja računarstva. Odlikuje se postojanjem jednog ragistra u procesoru, nazvanog akumulator, koji učestvuje u svim operacijama procesora. Neposredno pre izvršenja operacije akumulator sadrži prvi izvorišni operand, a po završetku operacije sadrži rezultat. Procesori sa akumulatorskom arhitekturom spadaju u jednoadresne procesore. U instrukcijama je neophodno navesti samo adresu operanda u memoriji, dok je adresa prvog operanda i rezultata unapred poznata – to je akumulator. Osnovni nedostatak je postojanje samo jednog registra – akumulatora, koji učestvuje u obavljanju svih operacija procesora. Ovo uslovljava povećanje obima podataka koji se prenose između procesora i memorije.Stek arhitektura procesora kreirana je sa ciljem da smanji jaz u obimu aktivnosti iskazanih instrukcijama procesora i naredbama viših programskih jezika. Centralna memorijska struktura ove arhitekture je stek (stack). Operandi koji učestvuju u aritmetičko – logičkim operacijama nalaze se na vrhu steka, tako da nije potrebno eksplicitno ih adresirati. Operacijom se gube oba izvorišna operanda sa vrha steka, a rezultat postaje novi vrh steka. Tipična aritmetičko – logička operacija (npr. ADD) ima sledeće dejstvo:ADD S[SP+1]←S[SP+1] + S[SP], SP←SP +1Ovde S označava stek organizovan u memoriji, koji raste u smeru opadanja memorijskih adresa. SP 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. Efikasna implementacija steka, često za dve lokacije sa vrha steka umesto memorijskih lokacija koristi registre procesora. Veliki nedostatak stek arhitekture procesora su ograničenje u pristupima podacima u steku.Arhitekture sa registrima 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 izvršavanju operacija, za adresiranje operanada u memoriji, za prenos parametara pri pozivu procedura itd. Broj registara opšte namene ide, u zavisnosti od procesora, od osam do preko stotinu. Današnji procesori sadrže najčešće po 32 registra opšte namene.

5. CPU sa registrima opšte namene Arhitekture sa registrima 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 izvršavanju operacija, za adresiranje operanada u memoriji, za prenos parametara pri pozivu procedura itd. Broj registara opšte namene ide, u zavisnosti od procesora, od osam do preko stotinu. Današnji procesori sadrže najčešće po 32 registra opšte namene. Prema mogućnostima kombinovanja korišćenja registara i memorije za čuvanje operanada instrukcija, arhitekture sa registrima opšte namene dele se na: Registarsko – registarsku arhitekturu,

6

Page 8: SKRIPTA - Organizacija racunara

Registarko – memorijsku arhitekturu i Registarsko + memorijsku arhitekturu.Registarsko – registarska arhitektura zahteva da svi operandi koji učestvuju u operacijama budu prisutni u registrima procesora. Instrukcije su troadresne. Procesor pristupa operandima u memoriji samo preko instrukcija LOAD i STORE kojima puni registre izvorišnim operandima i pamti rezultate u memoriji računara. Zato se ova arhitektura često naziva i napuni–zapamti (LOAD–STORE) arhitektura.Registarsko – memorijska arhitektura (R / M) dopušta da jedan od dva izvorišna operanda bude u memoriji. Instrukcije su dvoadresne, pri čemu rezultat zamenjuje jedan izvorišni operand u registru. Mogućnost uzimanja izvorišnog operanda direktno iz memorije povoljna je kod jednokratnog korišćenja operanda.Registarsko + memorijska arhitektura (R + M) dopušta da operandi, kako izvorišni tako i odredišni, budu ili u registrima ili u memoriji. Moguće su sve kombinacije, počev od svih operanada u registrima do svih operanada u memoriji, sa svim međukombinacijama. Ovo je najopštiji tip arhitekture sa registrima opšte namene.U tabeli ispod nevedene su prednosti i mane svih tipova arhitektura sa registrima opšte namene.Tip arhitekture Prednosti NedostaciRegistar – registar(L / S)(0,3)

Jednostavno kodiranje instrukcija fiksnih dužina. Jednostavan model generisanja mašinskog programa. Vremena izvršenja instrukcija slična.

Veći broj izvršenih instrukcija nego u sledeće dve arhitekture. Neke instrukcije su kratke, pa se neka polja u instrukcijama ne koriste.

Registar – memorija(R / M)(1,2)

Podacima se može pristupati bez prethodnog punjenja registara. Lakše je uklopiti formate instrukcija i postići veću gustinu koda.

Operandi nisu ekvivalentni, pošto se jedan izvorišni operand u instrukciji uništava. Unošenje u svaku instrukciju oznake registara i adrese memorije može ograničiti broj registara. Broj ciklusa takta po instrukciji varira sa lokacijom operanda.

Registar + memorija(R + M)(3,3)

Najkompaktnija. Ne troši registre za privremeno čuvanje operanada.

Velike varijacije u dužini instrukcija i u poslovima po instrukciji, naročito za troadresne instrukcije. Česti pristupi memoriji čine je uskim grlom.

U prvoj koloni u paru (m,n), m označava dopušteni broj operanada u memoriji, a n ukupan broj operanada.

6. Adresnost procesora Instrukcijama programa procesoru se nalažu aktivnosti koje on treba da obavi. U slučaju binarne operacije (operacije nad parom operanada) procesoru se moraju dostaviti: Informacija o operaciji koju treba da izvrši, u vidu koda operacije (KOp), Oba izvorišna operanda ili informacije o mestima odakle ih može uzeti, Informacija o mestu gde treba da pošalje rezultat (odredišni operand), i Adresa sledeće instrukcije programa.Instrukcije koje sadrže sve nabrojane elemente bile bi četvoroadresne instrukcije (osim koda operacije imale bi četiri adresna polja). Umesto da se u svakoj instrukciji navodi adresa sledeće instrukcije, koristi se rešenje da se adresa sledeće instrukcije drži u posebnom registru, programski brojač (program counter), koji je poznat i kao „Instruction Address Register“ ili „Instruction Pointer“. Programski brojač može menjati sadržaj

inkrementiranjem za dužinu već pribavljene instrukcije u linijskim segmentima koda, ili punjenjem bilo kojom novom vrednošću pri izvršenju upravljačkih instrukcija (grananja, skokovi, pozivi procedura itd.). Time se dobija troadresni format instrukcija.

7

KOp

KOp

KOp

KOp

F3

F2

F1

F0

Op 1

Op 1

Op

Op 2 Op 3

Op 2

Page 9: SKRIPTA - Organizacija racunara

Formati troadresnih, dvoadresnih, jednoadresnih i nulaadresnih instrukcija procesora.

Dejstvo troadresne instrukcije pri izvršenju operacije , sa Op2 i Op3 kao izvorišnim operandima i Op1 sa odredišnim operandom je:

.U dvoadresnom formatu instrukcija jedno adresno polje adresira i izvorišni i odredišni operand:

.U jednoadresnom formatu instrukcija adresa jednog izvorišnog operanda i rezultata se podrazumeva (implicitno je određena). Obično je implicitno imenovan akumulator (ACC):

.U nulaadresnom formatu instrukcija ne navodi se eksplicitno ni jedan operand. Format instrukcije sadrži samo kod operacije instrukcije. Instrukcije ovog formata tipične su za stek arhitekturu računara.Instrukcije sa najvišom adresnošću određuju i adresnost računara. Za računar koji ima i troadresne instrukcije kažemo da je troadresni računar.

7. Registri procesora Registri su memorijski elementi realizovani flip-flopovima ili drugim brzim memorijskim ćelijama. Odlikuju se kratkim vremenima pristupa reda nanosekunde ili delova nanosekunde. Zbog ove osobine, registri su prisutni u procesorima kao sastavni deo memorije računara. Ovo je razlog za dugo prisutnu tendenciju povećanja broja registara u procesorima. Ali 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 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).Svi procesori, nezavisno od arhtekture skupa instrukcija i adresnosti procesora imaju sledeće registre: Programski brojač (PC), koji sadrži memorijsku adresu instrukcije koju treba pribaviti, Registar instrukcija (IR – Instruction Register) u koji se prenosi pribavljena instrukcija i u njemu drži do završetka izvršenja instrikcije, Adresni registar memorije (MAR – Memory Address Register) sadrži adresu memorijske lokacije kojoj se obraća procesor pri čitanju podataka iz memorije i upisu podataka u memoriju, Prihvatni registar memorije (MDR – Memory Data Register) pri obraćanju procesora memoriji sadrži podatak pročitan iz memorije ili podatak koji treba upisati u memoriju.

Korisnički vidljivi registri

Skup registara dostupnih aplikacionom programeru čine registri na čiji on sadržaj može direktno uticati instrukcijama koje mu stoje na raspolaganju. Ovi registri se nazivaju i korisnički vidljivi registri.Registri opšte nemene (general purpose register) čine najbrojniju grupu registara. Koriste se za privremeno čuvanje celobrojnih 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. Njihov broj u procesorima se kreće od 8 do 64. Savremeni RISC procesori imaju 32 registra opšte namene. Ovi registri grupisani su u polje registara (register file), sa zajedničkim ulaznim i izlaznim priključcima i pridruženom logikom takozvanim portovima (port). Ovakvo polje sa 32 registara može imati m ulaznih portova i n izlaznih portova. To znači da se istovremeno može upisivati u m registara i čitati iz n registara, uz ograničenje da se jedan registar ne može čitati i istovremeno upisivati.FP registri (Floating Point registers) čine grupu registara za rad sa realnim podacima u formatu sa pokretnom zapetom. Dužine su 32 ili 64 bita, jer to određuje standard sa realnim podacima, koji danas prihvataju svi proizvođači računara. I ovi registri grupišu se u polje FP registra, sa više ulaznih i izlaznih portova. Broj ovih registara se kreće od 4 do 32.

8

Page 10: SKRIPTA - Organizacija racunara

Neke arhitekture predviđaju posebne adresne registre, koji prema svojoj nameni pri adresiranju mogu biti bazni registri, indeksni registri, segmentni registri i drugi.Segmentni registri adresiraju segmente memorije dodeljene programima, podacima, steku itd.Posebni registri namenjeni upravljanju tokom programa su takođe prisutni u nekim arhitekturama. Najčešće sretani registar ovog tipa je registar koda uslova ili registar uslova (Condition Code Register ili CCR). On objedinjuje veći broj indikatora (flags), jednobitnih registara koji se postavlaju ili brišu zavisno od toga da li je određeni događaj nastao ili nije. U sastavu CCR-a najčešće su prisutni sledeći indikatori: SF (Sign Flag) – indikator znaka, postavlja se ako je razultat negativan, ZF (Zero Flag) – indikator nule, postavlja se ako je rezultat nula, CF (Carry Flag) – indikator prenosa, postavlja se ako se javi prenos, OF (Overflow Flag) – indikator prekoračenja, postavlja se ako rezultat prekorači kapacitet formata, PF (Parity Flag) – indikator parnosti, postavlja se ako je rezultat paran, AF (Auxilary Carry Flag) – indikator pomoćnog prenosa, postavlja se ako se javi prenos iz četvorobitne grupe pri sabiranju BCD brojeva, idr.U nekim arhitekturama navedeni indikatori iz registra uslova uključeni su u registar poznat kao registar statusa programa (Program Status Word ili PSW).

Sistemski registri

Sistemski registri učestvuju u upravljanju prekidima i izuzecima, prevođenje sistema iz supervizorskog u korisnički način rada i obrnuto, prevođenju virtuelnih u fizičke, upravljanju keš memorijama, sakupljanju podataka o korišćenju resursa sistema itd. Ovim registrima se može pristupati samo pri kernel ili supervizorskom načinu rada sistema.Registri koji učestvuju u upravljanju prekidima i izuzecima sadrže podatke o načinu rada procesora (korisnički/supervizorski), o dozvoli/zabrani prekida, maskiranju prekida, nerazrešenim zahtevima za prekid, uzorku izuzetka itd. Adresni registar rukovaoca prekida sadrži adresu programa koji se aktivira prekidom. Sistemski registri specifični su za svaku arhitekturu.

8. Aktivnosti pri pribavljanju instrukcija IR←Mem[PC]PC←PC+4Iz lokacije programske memorije, na koju pokazuje programski brojač, pribavlja se instrukcija i prenosi u registar instrukcija. Paraleleno sa tim formira se adresa sledeće sekvencijalne instrukcije, i upisuje u programski brojač PC.

9. Registarsko i indirektno registarsko adresiranje

Registarsko adresiranje(Register Addressing) – imamo kada je operand prisutan u nekom registru procesora, R j. I primarna i efektivna adresa operanda je adresa registra Rj:

Obzirom da se broj registara opšte namene u procesoru kreće u granicama od 8 do 64, za adresiranje operanada u registrima potrebno je od 3 do 6 adresnih bitova. Kako su registri procesora najbrži deo memorijskog saistema računara, vreme pristupa operandima u registrima je najkraće moguće. Formiranje efektivne adrese

9

Registarsko adresiranje

Page 11: SKRIPTA - Organizacija racunara

Indirektno registarsko adresiranje

(Register Indirect Addressing) – imamo kada je operand u memoriji adresiran sadržajem nekog registra opšte namene Rj. U adresnom polju operanda u instrukciji navodimo registar R j. Dakle primarna adresa operanda je adresa registra Rj, a efektivna adresa operanda je sadržaj registra Rj.

,

Formiranje efektivne Adrese

10. Bazno adresiranje (Base Addressing) – imamo kada je operand u memoriji adresiran zbirom sadržaja baznog registra, BR, i pomeraja (displacement) navedenog u odgovarajućem adresnom polju instrukcije za taj operand. Bazni registar BR može biti poseban adresni registar namenjen ovom načinu adresiranja ili neki od registara opšte namene, što je danas češće zastupljeno. Pomeraj predstavlja adresu lokacije relativnu u odnosu na sadržaj baznog registra. BR svojim sadržajem određuje veličinu područja memorije, čijim se lokacijama može pristupiti na osnovu pomeraja. Referentna 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. Dužina pomeraja, r, određuje veličinu područja adresa L=2r, unutar kojeg se lokacijama može pristupati sa nepromenjenim sadržajem BR-a. Primarna adresa sadrži dve komponente: adresu BR-a i pomeraj. Efektivna adresa operanda je zbir sadržaja BR-a i pomeraja.

, Formiranje efektivne adrese

Bazno adresiranje omogućuje da se memorijske lokacije adresiraju sa manjim brojem adresnih bitova i omogućuje jednostavnu implementaciju relokativnosti podataka u memoriji. Relokativnost je mogućnost da se podacima dodeli bilo koje područje memorije koje se može menjati i u toku samog izvršenja programa. Ovo adresiranje se naziva još i pomerajno adresiranje (displacement addressing).Označavamo ga stavljanjem pomeraja ispred oznake BR-a između para malih zagrada: 25(R4).

11. Neposredno adresiranje (Immediate Addressing) – pri pribavljanju instrukcije pribavlja se i operand i on je raspoloživ za obradu bez dodatnih aktivnosti. Naziva se još i literalno adresiranje. Primarna i efektivna adresa operanda određene su sadržajem programskog brojača, PC:

Neposredno adresirani operandi koriste se u aritmetičkim operacijama, pri poređenjima (prvenstveno u grananjima), i u prenosima kojima se registri pune konstantama. Konstante koje se koriste u izrazima obično

10

Indirektno Registarsko adresiranje

Bazno adresiranje

Page 12: SKRIPTA - Organizacija racunara

imaju male vrednosti, dok adresne konstante obično imaju velike vrednosti. Za označavanje neposrednog adresiranja koristićemo znak # napisan ispred operanda: #Konst ili #5.

12. Memorijsko indirektno adresiranje (Memory Indirect Addressing) - imamo kada registar R j, naveden u odgovarajućem adresnom polju instrukcije za taj operand, adresira memorijsku lokaciju, koja svojim sadržajem adresira operand u memoriji. Primarna adresa je Rj, a efektivna adresa je iskazana sadržajem M[Rj]. Memorijska lokacija M[Rj] je pokazivač na operand u memoriji.

,Formiranje efektivne adrese

Ovaj način adresiranja neefikasan je prema kriterijumu vremena pristupa operandima, koje je jednako dvostrukom vremenu pristupa memoriji. Broj indirektnih pristupa memoriji do dobijanja efektivne adrese operanda može biti i veći od jedan.Ovo adresiranje označavamo znakom @ ispred para malih zagrada između kojih je navedena oznaka registra ili memorijska adresa: @(R8) ili @(1200).

13. Autoinkrementno i autodekrementno adresiranje

Autoinkrementno adresiranje

(Autoincrement Addressing) – izvedeno je iz direktnog registarskog adresiranja dodavanjem aktivnosti inkrementiranja korišćenog registra Rj posle (ili pre) obraćanja memoriji. Registar Rj se može inkrementirati vrednošću d, određenom dužinom elemenata kojima se pristupa. Primarna adresa operanda je adresa registra R j, a efektivna adresa je (Rj).

, , Formiranje efektivne adrese

Oznakama 1. i 2. prikazan je redosled kojim se vrši obraćanje memoriji na osnovu sadržaja registra R j i ažuriranje ovog registra.Ovo adresiranje označavamo navođenjem oznake korišćenog registra između malih zagrada, dodajuću sufiks +: (R3)+

Autodekrementno adresiranje

(Autodecrement Addressing) – slično je autoinkrementnom i od njega se razlikuje u dva detalja: korišćeni registar Rj se dekrementira i to pre (ili posle) obraćanja memoriji. Primarna adresa operanda je adresa registra Rj, a efektivna adresa je (Rj). Pre ili posle obraćanja memoriji po efektivnoj adresi dekrementira se Rj.

11

Memorijsko indirektno adresiranje

Autoinkrementno adresiranje

Page 13: SKRIPTA - Organizacija racunara

, , Formiranje efektivne adrese isto je kao kod autoinkrementnog sa zamenom mesta 1. i 2. i promenom d u –d.Ovo adresiranje označavamo navođenjem oznake korišćenog registra između malih zagrada, dodajuću prefiks -. Npr. -(R3)

14. Indeksno adresiranje (Index Addressing) – imamo kada je operand u memoriji adresiran zbirom sadržaja registara R j i Rk. Rj sadrži početnu adresu područja u memoriji dodeljenog nekoj strukturi podataka, a Rk je indeksni registar koji sadrži indeks nekog elementa u toj strukturi. Primarnu adresu operanda čine adrese R j i Rk, a efektivna adresa operanda je zbir sadržaja ova dva registra:

, Formiranje efektivne adrese

Ovo adresiranje označavamo parom malih zagrada između kojih navodimo registre R j i Rk povezane znakom +: (R7+R4)

15. Adresiranje relativno u odnosu na programski brojač Registar kome se implicitno obraćamo je programski brojač (PC). Ovo znači da se tekuća adresa instrukcije sabira sa otklonom i na taj način formira efektivna adresa (EA). Kod ove operacije otklon se tretira kao broj u dvoičnom komplementu. Kao rezultat EA predstavlja razmeštaj u odnosu na adresu instrukcije. Najveći broj obraćanja memoriji je relativno blizu instrukcije koja se trenutno izvršava, što znači da se korišćenjem ovog načina adresiranja štede bitovi u instrukciji. Efektivna adresa se izračunava: EA=(PC)+D , gde je D-otklon specificiran instrukciji. S obzirom da sadržaj PC-a deluje kao pokazivač na instrukciju koja se tekuće izvršava, vrednost otklona ukazuje na rastojanje između operanda i same instrukcije.

16. Redosled bajtova u podacima i poravnati pristupi memoriji U 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 (Little Endian byte order) adresa reči xx...xx002 je i adresa bajta najmanje težine u reči (rep reči). Ostali bajtovi sa rastućim težinama imaju rastuće adrese (xx...xx012, xx...xx102, xx...xx112).Pri adresiranju glave (Big Endian byte order) adresa reči xx...xx002 je i adresa bajta najveće težine u reči (glava reči). Ostali bajtovi sa opadajućim težinama imaju rastuće adrese (xx...xx012, xx...xx102, xx...xx112).

12

Indeksno adresiranje

Page 14: SKRIPTA - Organizacija racunara

Raspored bajtova u rečima a) adresiranje repa, b) adresiranje glave

Većina savremenih procesora, pored adresiranja repa ili glave kao osnovnog načina uređivanja bajtova, podržava i onaj drugi način uređivanja.

Kada se radi sa samo jednim računarom, redosled bajtova često je beznačajan. On je važan samo ako se programi obraćaju delovima podataka, npr. polurečima veće ili manje težine u reči, ili drugom po težini bajtu u reči. Npr. pri adresiranju repa, polureč sa adresom 2 je polureč veće težine u reči sa adresom 0. Pri adresiranju glave, polureč sa adresom 2 je polureč manje težine, dok je polureč veće težine na adresi 0. Redosled 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. Tada se mora primeniti rešenje koje će obezbediti da se podaci, koji se uzimaju iz memorije računara pošiljaoca 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:

1. bit najveće težine (MSb) nosi oznaku n-1, a bit najmanje težine (LSb) nosi oznaku 0,2. bit najveće težine (MSb) nosi oznaku 0, a bit najmanje težine (LSb) nosi oznaku n-1.

Oba rešenja imaju prednosti i nedostatke. Prvo rešenje, u kombinaciji sa adresiranjem repa, daje konzistentan redosled bajtova i bitova u podatku. Isto važi i za drugo rešenje u kombinaciji sa adresiranjem glave. Drugo rešenje, međutim, ima taj nedostatak da pri posmatranju n-to bitnog podatka kao binarnog broja, cifra u poziciji i ima težinu 2n-i-1, što usložava rad sa delovima podataka.

Arhitektura procesora takođe definiše 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=2k bajtova, je poravnati pristup memoriji (aligned data access) ako je adresa a deljiva sa l, odnosno a mod l=0. Ovaj uslov može se iskazati i na drugi način: pristup podatku dužine l bajtova sa adresom a u memoriji je poravnat, ako je k adresnih bitova najmanje težine jednako nuli. Uslovljavanje da pristupi memoriji budu poravnati nameće se implementacionim zahtevima. Naime, n-to bitnom procesoru pridružuje se memorija sa lokacijama dužine n bitova. Pri punjenju registra podatkom iz memorije kraćim od n bitova, potreban je odgovarajući hardver koji će učitani podatak korektno pozicionirati u registru. Isto tako, pri slanju podatka kraćeg od n bitova iz registra u memoriju, potreban je odgovarajući hardver koji će poslani podatak korektno pozicionirati unutar memorijske lokacije. Ovaj hardver jednostavniji je pri poravnatim pristupima memoriji. Kada podatak pri neporavnatom smeštanju zahvata delove dve susedne memorijske lokacije, pristup takvom podatku zahteva dva obraćanja memoriji.

17. Skup instrukcija procesora Skup instrukcija procesora uključuje sve instrukcije koje je procesor u stanju da prepozna i izvrši. Najvažniji zahtevi, koji usmeravaju izbor i dejstva instrukcija koje će biti uključene u skup instrukcija procesora, su da on bude: Kompletan Efikasan Regularan Kompatibilan i Prilagođen savremenoj implementacijiSkup instrukcija je kompletan ako se u njemu može napisati program na jeziku asemblera koji izračunava vrednost bilo koje izračunljive funkcije korišćenjem raspoloživog memorijskog prostora. Kompletan skup instrukcija mora uključivati instrukcije kojima se može obaviti svaka aktivnost koja se može iskazati nekim formalnim postupkom. Dakle on mora sadržati instrukcije kojima se : Izvršavaju aritmetičke i logičke operacije, čime se vrši transformacija podataka ako je ona postupkom obuhvaćena,

13

Page 15: SKRIPTA - Organizacija racunara

Prenose podaci, Upravlja aktivnostima obuhvaćenim postupkom.Skup instrukcija je efikasan ako se najčešće sretane funkcije mogu implementirati kratkim nizovima instrukcija (prostorna efikasnost), i ako se te fukcije obavljaju za kratko vreme (vremenska efikasnost).Skup instrukcija je regularan ako ima instrukcije određene vrste za rad sa svim tipovima podaka, ako sadrži standardni skup uslova u instrukcijama uslovnog grananja i sl. Poželjno je i da skup instrukcija bude ortogonalan, u smislu da se par elemenata u sastavu instrukcija može kombinovati bez ograničenja. Npr. ortogonalnost operacija i načina adresiranja zahteva da se u svakoj operaciji na svaki operand može primeniti bilo koji od mogućih načina adresiranja operanada.Skup operacija često mora biti kompatibilan sa nekim ranije definisanim skupom instrukcija. Arhitektura skupa instrukcija treba da ima dug životni vek. Jedan od načina da bi se životni vek arhitekture produžio je i proširenje stare arhitekture, zadržavajući sve njene elemente i dodajući elemente usloveljene savremenim zahtevima.

Tip operatora Primeri

Aritmetički i logički Celobrojne aritmetičke i logičke operacija

Prenos podataka Punjenja, pamćenja, instrukcije prenosa

Upravljanje Grananja, skokovi, pozivi i vraćanja iz procedura, trapovi

SistemskiPozivi operativnog sistema, instrukcije za upravljanje virtuelnom i keš

memorijom

Pokretna zapetaOperacije sa pokretnom zapetom: sabrati, pomnožiti, konverzija celobrojnog

podatka u pokretnu zapetu i obrnuto

DekadneDekadno sabiranje i množenje, konverzija iz dekadnog oblika u nisku znakova i

obrnutoNiske znakova Prenos niske, poredjenje niski, traženje niski

Grafički Operacije sa pikselima, operacije kompresije i dekompresije

Multimedijalni Operacije na grupama pakovanih celobrojnih i FP podatakaSkup instrukcija mora biti prilagođen zahtevima savremenih implementacionih tehnologija. Jedna od njih je protočnost u radu procesora, sa zahtevima što veće ujednačenosti obima aktivnosti u instrukcijama, mogućnošću preklapanja izvršenja operacija, mogućnošću preuređenja instrukcija u programima i drugim zahtevima.Skup instrukcija mora obuhvatati instrukcije za obavljanje aritmetičkih i logičkih operacija, instrukcije za prenos podataka i upravljačke insrukcije. Tipovi instrukcija u sastavu skupa instrukcija, klasifikovani prema tipu operatora koji se u njima pojavljuje, dat je u prethodnoj tabeli.Grupa aritmetičkih operacija sadrži instrukcije sabiranja, oduzimanja, množenja, deljenja, poređenja, inkrementiranja/dekrementiranja, komplementiranja itd. celobrojnih označenih i neoznačenih podataka.Grupa logičkih operacija sadrži instrukcije za obavljanje logičkih operacija I, ILI, NE, Isključivo_ILI itd. neoznačenih celih brojeva. Grupa instrukcija pomeranja sadrži instrukcije za logičko pomeranje ulevo i udesno bez i sa kružnim prenosom i aritmetičko pomeranje udesno.Grupa instrukcija za prenos podataka sadrži instrukcije Move, Load, Store, Push, Pop, In, Out idr. Instrukcijom Move podatak se može preneti između para registara, ili između registara i memorije. Instrukcijom Load podatak se prenosi iz memorije u registar, a instrukcijom Store iz registara u memoriju. U novije vreme ova grupa instrukcija obogaćena je instrukcijama uslovnog prenosa (conditional move). One sadrže uslov koji mora biti ispunjen da bi se prenos podataka obavio.Grupa sistemskih instrukcija obuhvata instrukcije za poziv usluga operativnog sistema, zaustavljanje programa u prekidnoj tački, upravljanje keš memorijom i virtuenom memorijom, povratak iz rukovaoca izuzetaka itd.Grupa instrukcija za rad sa dekadnim podacima obuhvata instrukcije za korekciju operanada pri dekadnom sabiranju, množenju i deljenju.

18. Instrukcije za upravljanje tokom programa Grupa instrukcija za upravljanje tokom programa sadrži instrukcije bezuslovnog i uslovnog grananja, skokova, poziva procedura (potprograma) i povratka iz procedura (potprograma). Sledeća tabela sadrži prikaz ovih instrukcija za tipičan RISC procesor. U ovim instrukcijama (osim JR i JALR) za odredište grananja odnosno skoka koristi se adresiranje relativno u odnosu na programski brojač. Otklon je označeni ceo broj. Polje otklona

14

Page 16: SKRIPTA - Organizacija racunara

je u instrukcijama skoka širine p bitova, a u instrukcijama grananja q bitova. Sve instrukcije su dužine 4 bajta, tako da je PC+4 adresa instrukcije koja u programu sledi upravljačku instrukciju. Otklon, sa vrednostima iz opsega [ ] odnosno [ ] sabira se sa PC+4, određujući odredište skoka odnosno grananje respektivno. Kada je odredište skoka van područja memorije koje se može dosegnuti otklonom, koristi se instrukcija JR. Sadržajem registra navedenog u instrukciji JR može se adresirati odredište skoka bilo gde u adresnom prostoru memorije. Za pozive procedura na raspolaganju su instrukcije skoka na proceduru, JAL i JALR, i uslovnog grananja na proceduru BEQZAL. U ovim instrukcijama adresa povratka iz procedure pamti se u registru određenom arhitekturom. U slučaju ugnježdavanja nove procedure, potrebno je najpre zapamtiti sadržaj registra R31 recimo u steku, pa tek onda pozvati ugnježdenu proceduru. Povratak iz izvršavane procedre u pozivajući program vrši se instrukcijom JR R31.

Naziv instrukcije Primer instrukcije Značenje

Jump(skok) J imePC←PC+4+ime

Jump registar (skok odeređen skokom)

JR R3 PC←R3

Branch if equal zero(grananje ako je nula)

BEQZ R4,imeIf(R4==0)PC←PC+4+ime

Else PC←PC+4;

Jump and link (skoči i poveži) JAL imeR31←PC+4,

PC←PC+4+ime;

Jump and link register (skoči i poveži preko registara)

JALR R2R31←PC+4,

PC←R2

Branch if equal zero and link (grananje i povezivanje ako je

nula)BEQZAL R4,ime

If(R4==0) R31←PC+4,PC←PC+4+imeElse PC←PC+4;

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. Često je pogodno ove aktivnosti razdvojiti na:g1. Proveru zadovoljenja određene relacije i upis ishoda te provere na predviđenom mestu,g2. Ispitivanje ishoda prethodno obavljene provere i grananje ako je on pozitivan.Zavisno od toga da li se aktivnosti g1. i g2. obavljaju jedinstvenom ili odvojenim instrukcijama i kako se obavlja aktivnost g1., sreću se tri rešenja: Rešenje sa implicitnim registrom koda uslova Rešenje sa registrom uslova Poređenje i grananje

19. RISC i CISC procesori Računari sa kompleksnim skupovima instrukcija (CISC) koncipovani su sa namerom da: Olakšaju zadatke piscima kompilatora, Poboljšaju efikasnost izvršenja naredbi, pošto se kompleksni nizovi operacija mogu implementirati mikroprogramima, Obezbede podršku za još kompleksnije i naprednije jezike visokog nivoa.Da bismo razumeli način razmišljanja zagovornika RISC (računari sa redukovanim setom instrukcija) arhitekture počnimo sa kratkim pregledom karakteristika izvršenja naredbi. Aspekti koji nas ineresuju su: Obavljane operacije: ovo određuje funkcije koje treba da obavlja CPU i njegove interakcije sa memorijom. Istraživanje operacija obuhvatilo je dinamičko učešće pojednih grupa naredbi i vremensko učešće tih naredbi u tipičnim programima na jezicima visokog nivoa. Rezulati su pokazali da su naredbe dodele dominantne, što upućuje da je vrlo važno da prenos podataka bude jednostavan i efikasan. Uslovna grananja su vrlo česta pa samim tim i vrlo važna. Pozivi i vraćanje iz procedura i naredbe petlji su naredbe koje odnose najviše vremena. Korišćeni operandi: tipvi operanada i učestanosti njihovog korišćenja određuje organizaciju memorije za njihovo čuvanje i načine adresiranja za pristupanje njima. Dinamičko učešće operanada po tipovima pokazuje

15

Page 17: SKRIPTA - Organizacija racunara

da naveći broj operanada čine proste skalarne veličine. Par studija su pokazale da broj obraćanja operandima u registrima prevazilazi broj obraćanja operandima u memoriji. Sve studije su pokazale da je vrlo važno brzo pristupanje operandima. Uređivanje izvršenja programa: ovo određuje organizaciju upravljanja i protočnog sistema. Pri pozivu procedura važna su dva aspekta:

Broj parametara i promenljivih koje procedure koristi, i Dubina ugnježdenja

U nekoliko studija nađeno je da u više od 90% dinamički pozivanih procedura preneto manje od 6 argumenata i korišćeno manje od 6 lokalnih skalarnih promenljivih. Nađeno je da se takođe retko javljaju dugi nizovi poziva procedura, praćeni isto tako dugim nizovima povratka iz procedura. Ovo upućuje da se adresa povratka iz procedure može pamtiti u registru opše namene, umesto u steku što je ranije bio slučaj.Na osnovu ovih rezultata došlo se do koncepcije RISC arhitekture, čije su odlike sledeće: Mali broj jednostavnih instrukcija Sve operacije obavljaju se nad operandima u registrima; obraćanje memoriji samo sa instrukcijama Load i Store, Mali broj formata instrukcija sa fiksnim položajem polja u formatu, Mali broj jednostavnih načina adresiranja Pogodnosti za protočnu organizaciju procesora, tako da se u idealnom slučaju instrukcije mogu obavljati tempom od jedne instrukcije po periodi takta, Upravljačka jedinica realizovana hardverski.Iz ovih osobina proističu i druge prednosti: Kratak rok projektovanja i testiranja projekta Mogućnost optimizacije projekta idr.Ova koncepcija ima i nedostatke: Manja gustina koda (duži programi), što zahteva veću memoriju Zahteva bržu memoriju za čuvanje programa Potreban veći broj registara u procesoruNajvažnije karakteristike CISC procesora su: Veliki broj instrukcija, od kojih su neke i vrlo složene, Memorijski operandi mogu direktno učestvovati u operacijama, Veliki broj formata instrukcija sa promenljivim elementima, Veliki broj načina adresiranja, Upravljačka jedinica realizovana mikroprogramski.

20. Sistem prekida računara Termin prekid (inerrupt) ili izuzetak (exception) koristi se u širokom smislu za bilo koji redak ili neočekivano događaj koji uzrokuje da CP sa izvršenja tekućeg programa pređe na drugi program koji opslužuje prekid. Prekidi mogu biti generisani od različitih izvora unutar ili van CP-a:1) Zahtevi od U-I uređaja,2) Pozivanje usluga operativnog sistema iz programa korisnika,3) Trasiranje izvršenja instrukcija,4) Prekidne tačke (prekidi zahtevani od programera),5) Prekoračenje i potkoračenje u celobrojnoj aritmetici,6) Anomalije u aritmetici sa pokretnom zapetom,7) Greška stranice (odsustvo stranice u glavnoj memoriji),8) Neporavnati pristup memoriji (ako takav nije dopustiv),9) Povreda zaštite memorije,10) Korišćenje nedefinisane instrukcije,11) Greške u radu hardvera,12) Nestanak napona napajanja.Termin prekid najčešće se koristi za asinhrone događaje koji nastaju van CP-a. Takvi događaji navedeni su pod brojevima 1 i 12 u prethodnom spisku. Termin izuzetak najčešće se koristi za sinhrone događaje koji nastaju unutar CP-a. Takvi događaji navedeni su pod brojevima 2÷10 u prethodnom spisku. Događaj pod rednim brojem 11 može spadati i u jednu i u drugu grupu. Procesor odgovara na prekide i izuzetke u suštini na isti način. Po signaliziranju prekida ili izuzetka procesor napušta izvršenje tekućeg programa ili zadatka i prelazi na

16

Page 18: SKRIPTA - Organizacija racunara

program rukovaoca prekida (inetrrupt handler procedure). Po završrtku opsluživanja prekida ili izuzetka nastavlja se izvršenje prekinutog programa.Neki proizvođači računara raščlanjuju izuzetke prema dodatnim kriterijumima, tako i intel u svojoj IA-32 arhitekturi ima specificira tri klase izuzetaka: greške, trapove i pobačaje. Klasifikacija izuzetaka na greške, trapove i pobačaje vrši se na osnovu načina na koji se izvršava o njihovom nastanku, kao i da li se instrukcija koja je izazvala izuzetak može restartovati bez gubitaka kontinuiteta programa.

21. Spoljašnji prekidi (od U-I uređaja) i unutrašnji prekidi (trapovi) Termin izuzetak najčešće se koristi za sinhrone događaje unutar CP-a, kada on ustanovi ispunjenje jednog ili više unapred definisanih uslova za vreme izvršenja neke instrukcije. Klasifikacija izuzetaka na greške, trapove i pobačaje vrši se na osnovu načina na koji se izveštava o njihovom nastanku, kao i da li se instrukcija koja je izazvala izuzetak može restartovati bez gubitaka kontinuiteta programa.Trap je izuzetak koji se dojavljuje neposredno posle izvršenja instrukcije u kojoj se javio trap. Trap dopušta da se izvršenje programa nastavi bez gubitka kontinuiteta programa. Adresa povratka iz rukovaoca trapa je adresa instrukcije koju treba izvršiti posle instrukcije u kojoj se javio trap. Ako 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.

22. Arhitektura i formati instrukcija MIPS procesora MIPS arhitektura je RISC arhitektura proistekla iz istraživanja, na Stanford univerziteta, obavljena od 1981-1983 godine. Kasnije je osnovana firma MIPS čiji su komercijalni proizvodi mikroprocesori iz R familije: R2000, R3000, R6000, R10000. Firma MIPS danas podržava dve arhitekture: MIPS64 i MIPS32, pri čemu je druga podskup prve. MIPS32 arhitektura definiše centralni procesor (CPU) i tri koprocesora: Koprocesor 0 (CP0) se zajedno sa CP implementira u istom čipu i podržava vitrueni memorijski sistem i rukovanje izuzecima. CP0 se takođe naziva i Koprocesor upravljanja sistemom (System Control Coprocessor). Koprocesor 1 (CP1) rezervisan je za FP koprocesor Koprocesor 2 (CP2) rezervisan je za specifične implementacijeMIPS32 definiše sledeće registre, dužine po 32 bita: 32 registra opšte namene (GPR), koji obrazuju polje celobrojnih registara Dva registara posebne namene HI i LO, u koje se smeštaju rezultati operacija množenja, deljenja, i množenja i akumuliranja, Programski brojač PC, koji nije arhitekturno vidljivi registar, na koji se samo indirektno utiče nekim instrukcijama 32 FP registra opšte namene (FPR), koji obrazuju polje FP registara; svi FP registri raspoloživi su za korišćenje u operacijama sa FP podacima jednostruke preciznosti; FP podaci dvostruke preciznosti čuvaju se u paru susednih FP registara, od kojih je prvi sa parnim a drugi sa neparnim indeksom 5 FP upravljačkih registara, čija je uloga da identifikuju FP jedinicu i upravljaju njome.Registri koje definiše MIPS32 prikazani su na slici.Dva od 32 GPR registra imaju posebne namene: R0 je ožičen na sadržaj 0 (on zapravo i nije pravi registar); on se može koristiti kada je potrebna vrednost 0 ili kao odredišni registar kada rezultat treba odbaciti, R31 je odredišni registar u instrukcijama JAL, BLTZAL, BLATZALL, BGEZAL i BGEZALL bez njegovog eksplicitnog navođenja u ovim instrkcijama; van njih on se koristi kao i drugi GPR registri.

17

Page 19: SKRIPTA - Organizacija racunara

MIPS32 arhitektura definiše sledeće formate celobrojnih podataka: Bit Bajt Polureč (2B) Reč (4B) Dvostruku reč (8B)Arhitektura takođe definiše FP podatke sledećih tipova: 32-bitne FP podatke jednostruke preciznosti 64-bitne FP podatke dvostruke preciznostiMIPS arhitektura podržava sedeće načine adresiranja: Neposredno Registarsko Bazno (pomerajno) PC – relativno (samo u instrukcijama grananja)Neposredno adresiranje koristi se za adresiranje jednog izvorišnog operanda u aritmetičkim i logočkim operacijama. Bazno adresiranje je jedini način adresiranja operanada u memoriji. Međutim, izborom posebnih vrednosti pomeraja i adrese baznog registra mogu se dobiti još dva izvedenanačina adresiranja: direktno (apsolutno) i indirektno registarsko adresiranje.

Formati instrukcija MIPS procesoraSve instrukcije su dužine 32 bita, i moraju biti poravnato smeštene u memoriji računara. Postoje tri formata instrukcija za rad sa celobrojnim podacima prikazana na slici. U sva tri formata instrukcija kod operacije (op) i indeksi (adrese) registara, dužine po 5 bita, imaju fiksna mesta, što olakšava i ubrzava dekodiranje instrukcija. Aritmetičko – logičke instrukcije su troadresne, sa dve varijante: Sva tri operanda u registrima procesora (R format) Jedan izvorišni operand neposredno adresiran (I format).

18

Korisnički vidljivi registri u MIPS32 arhitekturi

Page 20: SKRIPTA - Organizacija racunara

R format namenjen je aritmetičko – logičkim instrukcijama i instrukcijama pomeranja. I format namenjen je aritmetičko – logičkim instrukcijama, instrukcijama uslovnog grananja i instrukcijama obraćanja memoriji (Load i Store). J format nemenjen je instrukcijama skoka i bezuslovnog poziva procedura.Oznake 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 – broj binarnih pozicija za koje treba pomeriti izvorišni operand, funct – dodatno polje koda operacija instrukcija, immediate – neposedni operand u aritmetičko – logičkim instrukcijama, otklon u instrukcijama uslovnog grananja ili pomeraj u instrukcijama Load i Store, target address – primarna adresa odredišta skoka u instrukcijama skoka i bezuslovnog poziva procedura.

23. Jednotaktna implementacija procesora Jednotaktni procesor je procesor koji svaku instrukciju iz datog podskupa instrukcija MIPS32 arhitekture pribavlja i izvršava za jednu periodu takta. Neka pribavljanje instrukcija vrši jedinica za pribavljanje instrukcija u okviu puteva podataka prcesora. Za pribavljanje instrukcija potrebno je da se programska memorija adresira sadržajem programskog brojača PC, pročita sadržaj adresirane memorijske lokacije i on upiše u registar instrukcija IR. Sadržaj PC-a mora ostati nepromenjen do kraja periode takta. Ako obezbedimo da u okviru periode takta i pročitani sadržaj programske meorije ostane nepromenjen, nema potrebe za posebnim registrom instrukcija, pa ga u jednotaktnom procesoru nećemo ni predvideti. Na sledećoj slici predstavljena je jedinica za pribavljanje instrukcija u okviru puteva podataka jednotaktnoog procesora.

Pribavljena instrukcija je dekodirana upravljačkom jedinicom procesora, koja na osnovu toga određuje vrednosti svih upravljačkih signala koje dostavlja putevima podataka procesora. Izvršenje svih instrukcija, osim

19

Formati instrukcija u MIPS arhitekturi

Jedinica za pribavljanje instrukcija u okviru puteva podataka jednotaktnog procesora. Prikazana programska memorija nije sastavni deo ove jedinice.

Page 21: SKRIPTA - Organizacija racunara

JUMP, zahteva obraćanje registrima opšte namene. Implementacija svih instrukcija, osim JUMP, zahteva uvođenje aritmetičko – logičke jedinice. Ona u instrukcijama LW i SW izračunava efektivne adrese operanada u memoriji, i u instrukciji BEQ proverava ispunjenje uslova grananja. Na sledećoj slici prikazani su putevi podataka jednotaktnog procesora, gde je jedinica za pribavljanje instrukcija prikazana u vidu bloka jer je njena detaljna šema prikazana na prethodnoj slici. Zajedno sa ovim putevima prikazana je i memorija podataka iako ona ne pripada putevima podataka. Upravljački signali koji deluju u pojedinim upravljačkim tačkama puteva podataka istaknuti su podvlačenjem.

Ciklus takta jednotaktnog procesora mora biti dovoljno dug da se u njemu može pribaviti i izvršiti svaka instrukcija iz skupa instrukcija procesora. Košenje takta je vremenska nepodudarnost odgovarajućih ivica taktnih signala na taktnim ulazima različitih komponenata sistema.Ciklusi takta ovih dužina troše se i na ostale instrukcije, koje bi se mogle pribavljati i izvršavati što kraće vreme. Ovo je osnovni nedostatak jednotaktnog procesora. Drugi nedostatak je veliki obim hardvera, koji je diktiran uslovom da se svaka hardverska komponenta procesora u toku jednog ciklusa takta može aktivirati samo jednom. Izuzetak je polje registara, koje ima odvojene portove za čitanje i upis.

24. Višetaktna implementacija procesora Nedostaci kod jednotaktnog procesora mogu se otkloniti višetaktnom implementacijom procesora. Zavisno od aktivnosti u okviru instrukcije, ciklus instrukcije uključuje neophodan broj taktnih ciklusa. Za svaku instrukciju, aktivnosti na pribavljanju i izvršavanju raščlanjuju se na izvestan broj faza. Svaka faza se obavlja se u okviru jednog ciklusa takta. Aktivnosti u okviru svake faze obavlja odgovarajći stepen procesora. Svaki par susednih stepena 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. U taktnom ciklusu u kome je stepen procesora aktivan, on podatke iz svojih ulaznih registara transformiše i upisuje ih u svoje izlazne registre. Upisi u registre i memoriju taktovani su taktnim signalima.Svaka instrukcija se može raščlaniti na najviše pet faza: Pribavljanje instrukcija (IF), Dekodiranje instrukcija i pribavljanje operanada iz registara (ID), Izvršenje instrukcija (EX), Obraćanje memoriji podataka (ME) i Upis podataka u odredišni registar (WB).Na slici je prikazana blok šema implementacije višetaktnog procesora

Ovde su A i B prihvatni registri izvorišnih operanda pribavljenih iz polja registara, a ALUIzl prihvatni registar razultata iz ALU.Aktivnosti pri pribavljanju i izvršenju razmatranih instrukcija na višetaktnom procesoru po fazama su sledeće:

20

Putevi podataka jednotaktnog procesora. Detalji jedinice za pribavljanje instrukcija prikazani su na prethodnoj slici. Memorija podataka nije sastavni deo puteva podataka procesora.

Putevi podataka višetaktnog procesora sa pridodatom memorijom

Page 22: SKRIPTA - Organizacija racunara

1. pribavljanje instrukcija (IF)IR←Mem[PC]PC←PC+4Iz lokacije programske memorije, na koju pokazuje programski brojač, pribavlja se instrukcija i prenosi u registar instrukcija. Paraleleno sa tim formira se adresa sledeće sekvencijalne instrukcije, i upisuje u programski brojač PC.2. Dekodiranje instrukcija i pribavljanje operanada iz registara (ID)A←Reg[ ]B←Reg[ ]ALUIzl←PC+znak._proš.( )<<2.Instrukcija se dekodira. Izvorišni operandi se pribavljaju i prenose u pomoćne registre A i B. Sadržaj polja

(što je pomak ako se pokaže da je instrukcija koja se dekodira instrukcija grananja) se znakovno proširuje i pomera ulevo za dve binarne pozicije, a zatim dodaje sadržaju programskog brojača i upisuje u registar ALUIzl. Sve ove aktivnosti obavljaju se paralelno. Ovo je omogućeno fiksnim položajem oznaka registara i immediate polja u R i I formatu instrukcija.3. Izvršavanje instrukcije i izračunavanje efektivne adrese (EX)Zavisno od instrukcije, obavlja se jedna od sledećih pet aktivnosti: Aritmetičko – logičke instrukcije R formataALUIzl←A(op,func)BIzvršava se operacija, određena sadržajima polja op i function, nad sadržajima registara A i B. Rezultat se smešta u ALUIzl. Aritmetičko – logičke instrukcije I formataALUIzl←A op proš._nul.(imm)Izršava se operacija, određena kodom operacije op, nad sadržajem registra A i nulama proširenim neposrednim operandom. Rezultat se smešta u ALUIzl. Obraćanje memorijiALUIzl←A+znak._proš.(imm)Izračunava se efektivna adresa obraćanja memoriji sabiranjem sadržaja registra A (bazna adresa) i znakovno proširenog pomeraja. Reultat se smešta u ALUIzl. GrananjeIf (A=B) then PC←ALUIzlAko je uslov grananja ispunjen, PC se puni odredištem grananja instrukcije. Skok

Odredište skoka, pomeren za dve binarne pozicije ulevo, dopisuje se iza 4 bita najveće težine sadržaja programskog brojača.Lociranje ovih aktivnosti u okviru iste faze različitih instrukcija moguće je, jer su u napuni/zapamti arhitekturi, nabrojane instrukcije međusosbno isključive.4. Obraćanje memoriji (ME)U ovoj fazi aktivne su samo instrukcije obraćanja memoriji (Load i Store)Obraćanje memoriji:Load: MDR←Mem[ALUIzl], iliStore: Mem[ALUIzl]←B5. Upis rezultata u odredište (WB) Aritmetičko – logičke instrukcijeR formata

Aritmetičko – logičke instrukcije I formata

Load instrukcija

Zapazimo da instrukcije grananja i skokova sadrže samo po 3 faze, aritmetičko – logičke instrukcije i Store sadrže po 4 faze, a samo Load sadrži 5 faza. Ove aktivnosti po fazama prikazane su u sledećoj tabeli.

21

Page 23: SKRIPTA - Organizacija racunara

FazaInstrukcije R

formata

Logičke instrukcije I

formata

Instrukcije obraćanja memoriji

Grananja Skokovi

1IR←m[PC]PC←PC+4

2A←R[ ]B←R[ ]

ALUIzl←PC+zp( )<<2

3ALUIzl←A(op,func)B

ALUIzl←Aop pn(imm)

ALUIzl←A+zp(imm)If(A=B) then PC←ALUIzl

PC← ||

4 R[rd]←ALUIzlR[rt]←ALUIzl

Load:MDR←M[ALUIzl]

Store:M[ALUIzl]←B

5Load:

R[rt]←MDRFaza 1: pribavljanje instrukcija,Faza 2: dekodiranje instrukcija i pribavljanje operanada,Faza 3: izvršenje operacija, izračunavanje adresa, dovršavanje grananja i skoka,Faza 4:obraćanje memoriji, dovršavanje instrukcija R formata i logičih instrukcija I formata,Faza 5: dovršavanje čitanja memorije.Skraćenicama „pn“ i „zp“ označeno je proširenje nulama i znakovno proširenje respektivno.

25. Upravljačka jedinica (UJ) procesora (opšte) Na primerima jednotaktnog i višetaktnog procesora se vidi da se pribavljanje i izvršavanje svake instrukcije obavlja kroz niz elementarnih aktivnosti. Ovakve elementarne aktivnosti nazivamo mikrooperacijama. Mikrooperacije mogu biti jednostavni prenosi podataka iz jednog u drugi registar, čitanje podataka ili upis podataka u memoriju. Mikrooperacije se izvršavaju tako što se aktiviraju određene upravljačke tačke. Upravljačke tačke su upravljački ulazni priključci (linije) elemenata hardvera koji učestvuju u obavljanju određenih mikrooperacija. U upravljačkim tačkama deluju upravljački signali, koje generiše upravljačka jedinica procesora.Osnovni zadaci upravljačke jedinice procesora su: Interpretacija instrukcija CP-a, što se svodi na formiranje nizova mikrooperacija za svaku instrukciju, Generisanje upravljačkih signala, Upravljanje prenosom podataka između procesora i memorije i procesora i ulazno – izlaznog sistema računara.Definisanje rada upravljačke jedinice zahteva navođenje upravljačkih signala koje treba aktivirati i kada to učiniti. To se može raditi na razičite načine. Jedan od njih je prikaz promene stanja upravljačke jedinice. U svakom stanju navode se vrednosti podskupa upravljačkih signala, kojima se aktivira jedna ili više mikroopearcija koje se obavljaju paralelno. Upravljačka jedinica zadržava se u svakom stanju za unapred definisan vremenski interval ili do ispunjenja nekog uslova. Vremenske intervale određuje taktni signal, čija učestanost može biti jednaka ili veća od učestanosti taktnog signala procesora. Uslov za izlazak može biti pristigla potvrda da je neka aktivnost, naložena u tom stanju, dovršena. Nizovi 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. Zahtevano ponašanje upravljčke jedinice može se opisati i u formi nekog od programskih jezika.Upravljačka jedinica procesora, čije je ponašanje određeno na neki od navedenih načina, može se implementirati na osnovu jedne od ove dve sledeće koncepcije: Kao klasična sekvencijalna prekidačka mreža, što vodi direktnom (hardverskom) upravljanju, i Kao mašina sa zapamćenim programom, što vodi mikroprogramskom upravljanju.

22

Page 24: SKRIPTA - Organizacija racunara

26. Upravljačka jedinica sa (hardverskim) direktnim upravljanjemNa primeru višetaktnog procesora videli smo da je za definisanje ponašanja upravljačke jedinice procesora neophodno koristiti koncepciju stanja, koja se široko koristi u teoriji konačnih automata (finite state machine). Upravljačku jedinicu procesora možemo posmatrati kao konačni automat, zadat sledećim elementima: Skupom stanja upravljačke jedinice Skupom ulaznih upravljačkih signala Skupom izlaznih upravljačkih signala Funkcijom promene stanja , i Funkcijom izlaza .Postoje dva oblika konačnih automata: Mealy-ev i Moor-ov automat. Mi ćemo ovde koristiti Moor-ov automat, čija je fukcija izlaza ima oblik . To znači da su izlazni signali određeni samo stanjem u kome se automat nalazi.Konač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.

Memorijski elementi mogu biti flip-flopovi tipa D, RS, JK ili T ili lečevi. Oni se taktiraju taktnim signalima određene učestanosti. Memorijski elementi određuju stanje konačnog automata. U svakom od stanja konačni automat može boraviti u toku jednog ili više sukcesivnih taktnih ciklusa. Promene stanja vrše se pri smenjivanju taktnih ciklusa. Kombinaciona mreža implementira funkcije promene stanja i izlaza. Funkciju promene stanja implementira tako što u i-tom taktnom ciklusu formira ulazne signale za memorijske elemente, koji određuju stanje automata u i+1-om taktnom ciklusu. Funkcija izlaza implementira tako što na osnovu stanja i ulaznih signala u i-tom taktnom ciklusu formira izlazne signale.Upravljačka jedinica sa direktnim upravljanjem je implementacija upravljačke jedinice sekvencijalnom prekidačkom mrežom. Struktura ovakve upravljačke jedinice data je na sledećoj slici.

„Logika direktnog upravljanja“ je predstavljena šemom sa prethodne slike. U bloku „Tekuće stanje UJ“ skoncentrisani su memorijski elementi upravljačke jedinice. Ulazni signali u upravljačku jedinicu uključuju određena polja registara instrukcija, stanja indikatora iz registra koda uslova (ili ekvivalente ovog rešenja) i neke od upravljačkih signala sistemske magistrale. Izlazni signali vode se na upravljačke linije (tačke) puteva

23

Implentacija konačnog automata sekvencijalnom prekidačkom mrežom

Blok šema upravljačke jedinice sa direktnim (harderskim) upravljanjem

Page 25: SKRIPTA - Organizacija racunara

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žičena upravljačka jedinica.Za projektovanje upravljačke jedinice sa direktnim upravljanjem može se koristiti metoda tablice stanja, metoda elemenata za kašnjenje idr.

27. Projektovanje UJ metodom tablice stanja Upravljačka jedinica može biti data na jedan od već navedenih načina ili tablicom stanja/izlaza prikazanom tabelom. Sik je stanje u koje upravljačka jedinica prelazi iz stanja Si pod dejstvom ulaznih signala xk. Sa Yi

označeni su izlazni signali koje upravljačka jedinica formira u stanju S i. Projektovanje uključuje minimizaciju stanja automata, kodiranje stanja i projektovanje sekvencijalne prekidačke mreže koja implementira automat. Za sve navedene faze projektovanja mogu se koristiti za to namenjeni programski sistemi.

Stanje/Izlazni signal

Ulazni upravljački signaliX1 X2 ... Xm

S0/Y0 S01 S02 ... S0m

S1/Y1 S11 S12 ... S1m

... ... ... ... ...Sn-1/Yn-1 S(n-1)1 S(n-2)2 ... S(n-1)m

Projektovanje UJ metodom tablice stanja vodi implementaciji UJ sa minimalnim brojem flip-flopova. Nedostatak ove metode je nepostojanje lako uočljive veze između elemenata dobijene sekvencijalne mreže i dijagrama toka upravljanja UJ.

28. Projektovanje UJ metodom elemenata za kašnjenje Ponašanje UJ dato je dijagramom toka upravljanja. Ona se svodi na korišćenje prekidačke mreže čija konfiguracija odslikava dati dijagram toka upravljanja. Za svaki put u dijagramu toka upravljanja, u ovu mrežu treba uvesti po jedan put koji mu odgovara. Kretanju 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 S, duž puta u dijagramu toka upravljanja, obezbeđuje vremenski interval ti koji odgovara tom stanju. Brzina prostiranja impulsnog signala kroz prekidačku mrežu, odnosno dužina ovih vremenskih intervala, može se definisati elementima za kašnjenje.Mreža koja implementira dati algoritam upravljanja dobija se na osnovu sledeća četiri pravila: Par sukcesivnih stanja Si i Sj zahteva uvođenje elemenata za kašnjenje. Upravljački signali {y ir} i {yip} koje UJ izdaje stanjima Si i Sj uzimaju se sa ulaza i izlaza ovog elementa za kašnjenje, respektivno (slika pod a), ili se formiraju na osnovu njih. Uslovno grananje sa uslovom na primer if(f(x)==1) implementira se parom I logičkih elemenata, na čije ulaze se, pored impulsnog signala, vode uslovi f(x) i (slika pod b) Slivanje n dolaznih grana u jednu odlaznu granu implenetira se ILI logičkim lementom sa n ulaza (slika pod c) Upravljački signal koji se aktivira u više stanja upravljačke jedinice, usmerava se ka odgovarajućim tačkama preko ILI logičkog elementa, čiji broj ulaza odgovara broju stanja u kojima se taj upravljački signal aktivira.Kao element za kašnjenje može se upotrebiti taktovani D flip-flop.

24

Page 26: SKRIPTA - Organizacija racunara

Projektovanje UJ metodom elemenata za kašnjenje 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 UJ. Ovo olakšava testiranje kao i izmene u implemntaciji. Nedostatak je to što ta implenetaciju UJ sa n s stanja zahteva ns-1 (ili ns) flip-flopova, što je znatno više od koliko zahteva metoda tablice stanja.Druga varijanta ove metode zasniva se na projektovanju sekvencijalne prekidačke mreže čija stanja nisu kodirana, već su dekodirana. Ta metoda se naziva i metoda jednog vrućeg elementa. Vrući memorijski element je onaj koji se trenutno nalazi u stanju 1.Veliki broj stanja UJ i neregularna struktura mreže UJ sa direktnim upravljanjem otežavaju i njeno projektovanje i implentaciju. Zato su za projektovanje sekvencijalnih mreža uopšte razvijeni programski sistemi koji automatizuju ovo projektovanje.

29. Mikroprogramski organizovana UJ Mikroprogramiranje je sistematska tehnika za implemetiranje upravljačkih jedinica računara, zasnovana na koncepciji programa zapamćenog u memoriji.Elementi mikroprograma su mikroinstrukcije smeštene u upravljačkoj (mikroprogramskoj) memoriji računara. Osnovni zadatak mikroinstrukcija je izdavanje naloga za izvršenje određenih podskupova mikrooperacija. To se postiže postavljanjem upravljačkih signala na određene vrednosti. Međutim mikroprogram mora određivati i redosled izvršavanja (nizanje) mikroinstrukcija. Sekvercnijalno nizanje mikroinstrukcija najpogodnije je realizovati brojačem mikroinstrukcija (µPC). Promene adresa mikroinstrukcija grananjima i skokovima zahteva mogućnost punjenja brojača mikroinstrukcija adresama odredišta grananja odnosno skokova. Prelazak na početak mikroprograma pribavljene mašinske instrukcije zahteava određivanje novog sadržaja brojača mikroinstrukcija na osnovu koda operacije te instrukcije, prisutne u registru instrukcija IR.Struktura mikroprogramski organizovane UJ prikazana je na donjoj slici. Mikroprogrami mašinskih instrukcija smešteni su u mikroprogramskoj memoriji, čije lokacije adresira brojač mikroinstrukcija. Mikroinstrukcija pribavljena iz mikroprogramske memorije smešta se u registar mikroinstrukcija RMI (nije prikazan na slici), odalkle se delovi mikroinstrukcije šalju na upravljačke linije puteva podataka (US) i na ulaze logike za izbor adrese (MOp+Uslov+ASM). Sadržajem brojača mikroinstrukcija upravlja logika za izbor adrese.

25

Page 27: SKRIPTA - Organizacija racunara

30. Formati mikroinstrukcija Najopštiji format mikroinstrukcija (slika pod a) sadrži kod mikrooperacije (MOp), polje upravljačkih signala (US) i polje adrese sledeće mikroinstrukcije (ASM). MOp ukazuje na tip mikroinstrukcije. U polju uslova mogu se navesti vrednosti signala uslova pri kojima dolazi do granja. Kako ne postoji potreba da se svakom mikroinstrukcijom menja linearni tok mikroprograma, format mikroinstrukcija može se skratiti sledećim rešenjem. Umesto jednog, uvedimo dva formata mikroinstrukcija: jednim ćemo samo izdavati naloge za aktiviranje upravljačkih signala, a drugim ćemo samo menjati linearni tok programa (slika pod b). Ovakvo skraćenje mikroinstrukcija povećava dužinu mikroprograma, a time i vreme njegovog izvršenja.

31. Protočna organizacija procesora Protočna organizacija procesora je oblik implementacije procesora kojim se preklapa izvršenje više instrukcija. Deo hardvera protočnog procesora, koji učestvuje u obavljanju jedne od faza instrukcije, zovemo stepen protočnog procesora. Broj stepena protočnog procesora određen je brojem različitih faza u pribavljanju i izvršenju instrukcija iz skupa instrukcija procesora. Protočni procesor proistekao iz višetaktnog procesora imao bi 5 stepena: IF, ID, EX, ME i WB.

26

Page 28: SKRIPTA - Organizacija racunara

32. Putevi podataka protočno organizovanog procesora

33. Upravljanje protočnim procesorom Kod protočnih procesora javljaju se upravljački signali koji su raspoređeni po stepenima na sledeći način: U okviru IF stepenaU svakom taktnom ciklusu generiše se signal dozvole upisa u PC, nezavisno od pribavljane instrukcije. Međutim, novi sadržaj PC-a bira se između inkrementiranog prethodnog sadržaja PC-a i odredišta grananja eventualne instrukcije grananja koja je dospela u ME stepen. To biranje se vrši multiplekserom. U okviru ID stepenaAktivnosti u ID stepenu obavljaju se nazvisno od instrukcije prisutne u ovom stepenu. Jedini izuzetak je proširenje polja IF/ID.IR15.0, koje može biti znakovno ili nulama. U okviru EX stepenaAktivnostima u ovom stepenu upravlja se signalima ALUSrc, ALUctr i RegDst. Signalom ALUSrc bira se drugi operand ALU-a, koji može biti ID/EX.B ili ID/EX.Imm. Signalima ALUctr definiše se operacija koja se nalaže ALU jedinici. U okviru ME stepenaAktivnostima u ovom stepenu upravlja se signalima Branch, MemRd i MemWr. Upravljački signal Branch ukazuje da se radi o instrukciji grananja. Signalima MemRd i MemWr nalaže se čitanje iz, odnosno upis u memoriju podataka. U okviru WB stepenaUpravljačkim signalima MemtoReg se za upis u odredišni registar bira podatak ME/WB.LMD ili ME/WB.ALIrez. Signalom RegWr nalaže se upis ovako određenog podatka u odredišni registar.Upravljačke signale generiše upravljačka jedinica, locirana u okviru ID stepena protočnog procesora. Ovi 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. To se odnosi na indekse registara koji mogu biti odredišni registri instrukcija, rt i rd. U EX stepenu se preko multipleksera za instrukciju u ovom stepenu bira indeks rw odredišnog registra.

34. Hazardi pri protočnoj organizaciji procesora Pri izvršavanju nekih instrukcija javljaju se zastoji. Ovi zastoji dovode do toga da se u nekim taktnim ciklusima ne kompletira ni jedna instrukcija, što povećava broj taktnih ciklusa po instrukciji (CPI) na vrednost veću od 1. Situacije pri radu protočnog procesora, koje dovode do zastoja u njegovom radu, nazivamo hazardima. Prema uzroku hazarda razlikujemo:

27

Page 29: SKRIPTA - Organizacija racunara

strukturne, hazarde podataka i hazarde upravljanja.

35. Klasifikacija hazarda podataka Posmatramo dve instrukcije Ij i Ik između kojih postoje zavisnosti po podacima preko registra R i, pri čemu Ik

sledi Ij. Ako se ove dve instrukcije istovremeno nađu u protočnom procesoru, mogu se javiti sledeći hazardi podataka:1. Čitanje nakon upisa – instrukcija Ik pokušava da pročita izvorišni operand iz Ri pre no što Ij obavi upis, tako da Ik nekorektno uzima staru vrednost podatka. Ovo je najčešći tip hazarda podataka. Zavisnost po podacima, koja dovodi do njega naziva se prava zavisnost.2. Upis nakon upisa – Ik pokušava da upiše operand pre nego što ga je upisala Ij. Upisi su obavljeni obrnutim redosledom. Zavisnost po podacima, koja dovodi do njega naziva se izlazna zavisnost.3. Upis nakon čitanja - Ik pokušava upis u odredište pre nego što ga pročita Ij, tj. tako da Ij nekorektno dobija novu vrednost. Zavisnost po podacima, koja dovodi do njega naziva se anti-zavisnost.

36. Izbegavanje hazarda podataka premošćavanjem Vrlo efikasan način izbegavanja podataka koji se sastoji u dostavljanju izvorišnih operanada zavisnim instrukcijama pre nego što ih instrukcije proizvođači rezultata upišu u odredišne registre.ADD R1, R2, R3LW R4, 10(R1)SW 20(R1), R4U ovom nizu instrukcija postoje zavisnosti po podacima između sledećih parova: ADD i LW i ADD i SW preko registra R1, kao i LW i SW preko registra R4. Bez preduzimanja posebnih mera, one vode hazardima podataka tipa čitanje nakon upisa.

ADD proizvodi rezultat u TC3, a upisuje ga u R1 u TC5. LW koristi taj rezultat u svojoj EX fazi, dakle u TC4. Početak TC4 je poslednji trenutak kada se LW-u mora dostaviti rezultat instrukcije ADD da bi ona obavila EX fazu bez zastoja. Kako je u tom trenutku rezultat prisutan na izlazu protočnog registra EX/ME, treba uspostaviti put kojim se zahtevani podatak može preneti odatle na odgovarajuće ulaze ALU-a u EX stepenu. Ova tehnika je poznata kao premošćavanje.

37. Hazardi podataka koji se ne mogu izbeći premošćavanjem LW R1, 10(R3)ADD R6, R1, R2SUB R4, R5, R1ORI R7, R1, #32

28

Izvršenje prethodnog niza instrukcija bez zastoja. Strelicama je pokazano odakle uzeti podatak i gde ga dostaviti da bi se izbegli hazardi.

Izvršenje prthodnih instrukcija bez zastoja

Page 30: SKRIPTA - Organizacija racunara

Između instrukcije LW i ostalih instrukcija postoje zavisnosti po podacima koje, osim sa instrukcijom ORI, vode hazardu podataka. LW proizvodi rezultat na kraju TC4. Da bi se instrukcija ADD izvršavala bez zastoja, rezultat iz LW morao bi joj biti dostavljen na početku TC4. Pošto to nije moguće (ni premošćavanjem ne možemo vreme vraćati unazad) EX faza instrukcije ADD mora se odložiti za TC5, kada joj se premošćavanjem može dostaviti zahtevani podatak.

38. Izbegavanje hazarda podataka planiranjem instrukcija Hazardi podataka se mogu izbeći ako bi smo rastojanje između instrukcija Ij i Ik mogli povećati iznad kritične vrednosti. To se može postići premeštanjem 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. Ovakav naćin izbegavanja hazarda podataka naziva se planiranje instrukcija.Kako smo ranije zaključili pri premošćavanju opasnost od hazarda postoji samo posle instrukcija Load, i to samo ako zavisna instrukcija neposredno sledi za njom. Tada planiranjem instrukcija treba iza instrukcije Load umetnuti jednu nezavisnu instrukciju, čime se opasnost od hazarda otklanja.Otklanjanje hazarda planiranjem instrukcija ima svoju cenu: Analizu 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.

39. Hazardi upravljanja (grananja) Javljaju se pri izvršavanju instrukcija za upravljanje tokom programa. U tu grupu spadaju instrukcije grananja, skokova, poziva procedura i povratka iz procedura. Instrukcije grananja najbolje reprezentuju probleme koji se pri tome javljaju.Hazardi grananja nastaju kao posledica neblagovremenog određivanja adrese instrukcije koja će biti izvršena posle instrukcije grananja. Opasnost od nekorektnog izvršenja programa posle instrukcije grananja naziva se hazard grananja. Izbegavanje hazarda grananja zahteva zastoje u pribavljanju instrukcije-dinamičkog sledbenika grananja, pri čemu se ignoriše već pribavljena instrukcija-sekvencijalni sledbenik grananja. Broj taktnih ciklusa od prve faze instrukcije grananja do pribavljanja instrukcije sledbenika grananja, isključujući oba ova taktna ciklusa, naziva se kašnjenje grananja.

40. Smanjenje cene grananja Postoji više načina, a neki od njih su:1. određivanje ishoda grananja i odredišta grananja u stepenu što bližem stepenu pribavljanja instrukcija,2. pretpostavka da grananje neće biti obavljeno,3. zakašnjeno grananje,4. predviđanje grananja,5. pribavljanje instrukcija i sa puta obavljenog i sa puta neobavljenog grananja, itd.

1. Hardver za izračunavanje adrese odredišta grananja i proveru ispunjenja uslova grananja možemo premestiti iz EX stepena u ID stepen. Pošto ALU mora ostati u EX stepenu za proveru ispunjenja uslova grananja u ID stepenu uvedimo dodatni blok uslova. Napomenimo i ovde da se u IF fazi paralelno vrši

29

Page 31: SKRIPTA - Organizacija racunara

pribavljanje nove instrukcije i određivanje adrese sledeće instrukcije. Ovakvo rešenje može uvesti hazard podataka između instrukcije grananja i prethodne instrukcije, čiji se rezultat koristi u instrukciji grananj.

2. 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.Rešenje kada polazimo od toga da se grananje uvek obavlja zahteva zastoj u prelasku na sledeću instrukciju do izračunavanja adrese odredišta grananja. U razmatranom protočnom procesoru taj zastoj traje jedan taktni ciklus.Rešenje kada polazimo od toga da se grananje nikada ne obavlja dopušta da se posle instrukcije grananja uvek nastavi sa pribavljanjem instrukcija sa puta neobavljenog grananja, što ne zahteva zastoje. Po razrešenju ishoda grananja, ako do grananja zaista ne dolazi, nastavlja se sa izvršenjem pribavljenih instrukcija. Ako, međutim, do grananja dođe, moraju se odbaciti pribavljene instrukcije i započeti novo pribavljanje od instrukcije-odredišta grananja.

3. Zakašnjeno 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-odredište grananja. Ovih k instrukcija, sekvencijalnih sledbenika instrukcije grananja, nalaze se u takozvanim slotovima kašnjenja grananja. Odloženi prelazak na odredišnu instrukciju treba da eliminiše zastoje u izvršavanju instrukcija iza instrukcije grananja.U slotove kašnjenja grananja mogu se umetnuti (planirati) instrukcije uzete:

- ispred instrukcije grananja,- sa puta obavljenog grananja i - sa puta neobavljenog grananja.

3. Predviđanje ishoda grananja može doprineti smanjenju izgubljenih taktnih ciklusa zbog grananja. Ako je predviđen ishod neobavljanje grananja, posle instrukcije grananja možemo nastaviti sa pribavljanjem i izvršavanjem instrukcija-sekvencijalnih sledbenika instrukcije grananja bez zastoja. Ako je predviđen ishod obavljanje grananja treba što pre doći do adrese odredišta grananja. Idealno bi bilo da već pri pribavljanju instrukcije znamo da se radi o instrukciji grananja, kao i da adresu odredišta grananja imamo već u tom taktnom ciklusu. Tada bismo već u sledećem taktnom ciklusu mogli da pribavimo instrukciju-sledbenika obavljenog grananja. To se može postići korišćenjem bafera odredišta grananja.

4. Povremeno gubljenje taktnih ciklusa u slučajevima pogrešnog 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 bafer odredišta grananja. Stepeni do kojih mogu dopreti instrukcije pribavljene posle instrukcije grananja do razrešenja grananja moraju bitiudvojeni, tako da mogu prihvatati instrukcije sa oba ova puta. Tek po razrešenju grananja odbacuju se instrukcije sa pogrešnog puta i nastavlja samo sa instrukcijama sa ispravnog puta.

41. Performanse šema grananja

42. Proširenje protočnog sistema za rukovanje operacijama sa više ciklusa izvršenja Složenije operacije sa celobrojnim operandima, kao što su množenje i deljenje, zahtevaju duža vremena izvršenja i obavljaju se na posebnim hardverskim jedinicama, takozvanim množačima i deliteljima.Pretpostavimo da u protočno organizovanom sistemu imamo 4 funkcionalne jedinice:1. glavnu celobrojnu jedinicu koja obavlja aritmetičko-logičke operacije, Load, Store i grananja; aritmetičko-logičke operacije traju po jedan taktni ciklus, a Load i Store po dva,2. množač celih brojeva i brojeva sa pokretnom zapetom (FP), koji je protočno organizovan; množenje traje 5 taktnih ciklusa,3. FP sabirač koji obavlja FP sabiranje, oduzimanje i konverzije između celobrojnih i realnih zapisa, koji je protočno organizovan; ove operacije traju 3 taktna ciklusa, i4. delitelj celobrojnih i FP operanada, koji nije protočno organizovan; deljenje traje 10 taktnih ciklusa.Protočno organizovana funkcionalna jedinica može da, kao i protočni procesor, preklapa izvršenje više operacija.

30

Page 32: SKRIPTA - Organizacija racunara

Protočne funkcionalne jedinice raščlanjene su na stepene, kojih u množaču ima 5, a u FP sabiraču 3. Kao i do sada, susedni stepeni razdvojeni su protočnim registrima, odnosno lečevima. Obzirom da se protočni sistem iza ID stepena grana u četiri izvršne funkcionalne jedinice, smatraćemo da između ID stepena i ovih jedinica imamo četiri protočna registra: ID/EX, ID/M1, ID/A1 i ID/FPID (FPID označava FP integer delitelj). Takođe, između funkcionalnih jedinica i WB stepena imamo četiri protočna registra: ME/WB, M5/WB, A3/WB i FPID/WB.Prevođenje instrukcije iz faze dekodiranja u fazu izvršenja zvaćemo izdavanje instrukcije. Termin okončanje ili kompletiranje instrukcije koristićemo da ukažemo da su sve predviđene aktivnosti na instrukciji obavljene. Programirani redosled instrukcija je programom određen redosled izvršavanja instrukcija. Izdavanje (izvršavanje, okončanje) po redosledu instrukcije znači da se instrukcija izdaje (izvršava, okončava) redosledom koji odstupa od programiranog redosleda.Latencija operacije ili latencija funkcionalne jedinice je broj taktnih ciklusa u kojima program mora čekati na korišćenje rezultata ove operacije u sledećoj instrukciji. Ona 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 0, a za LOAD 1.Interval započinjanja ili interval ponavljanja je broj taktnih ciklusa koji mora proteći između izdvajanja dve operacije istog tipa (odnosno na istoj funkcionalnoj jedinici).

43. Sabiranje i oduzimanje celih brojeva Za rad sa celobrojnim odnosno realnim podacima procesori koriste odvojene podskupove instrukcija. Tako npr. ADD je instrukcija sabiranja celobrojnih podataka, a ADD.S i ADD.D su instrukcije sabiranja realnih podataka sa pokretnom zapetom u formatu jednostruke i dvostruke preciznosti respektivno. Tip određene instrukcije određuje da li se podatak tretira kao celobrojni ili realni podatak. Potreba da se jedinstveni hardver sabirača koristi za operacije sabiranja i oduzimanja dovela je do komplementnog iskazivanja znaka. Postoje dva tipa komplemenata označenih podataka i to komplement osnove i komplement najveće cifre. Korišćenjem komplemenata, oduzimanje obavljamo na sabiračima. Pri korišćenju komplemenata osnove pri sabiranju prenos iz pozicije znaka se ignoriše (gubi), dok se pri korišćenju komplemenata najveće cifre prenos iz pozicije znaka naknadno dodaje sumi komplemenata u poziciji najmanje cifre. Ovo su veoma česte operacije u računaru, osim pri izvođenju aritmetičkih operacija, koriste se i kod izračunavanja adresa. Sabiranje može biti serijsko (cifra po cifra), ili paralelno (češće se koristi, sve cifre se sabiraju odjednom).

44. Paralelni sabirači sa serijskim prenosom (RCA) Kod ovih sabirača najkritičniji je put za formiranje 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.

Ts=nT1=2nTegde je:Ts-vreme sabiranja, n-br. cifara, T1-vreme prostiranja prenosa kroz jednobitni potpuni sabirač, Te-vreme prostiranja signala kroz jedan logički element.Statistič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

31

Page 33: SKRIPTA - Organizacija racunara

od log2n. Pored prilično obimne mreže za obavljanje ovog zadatka, nedostatak ovih sabirača je i zavisnost vremena sabiranja od vrednosti operanada.

45. Paralelni sabirači sa paralelnim prenosom (CLA) Osnovni nedostatak sabirača sa serijskim prenosom je dugo vreme sabiranja za najgori mogući slučaj. CLA sabirači imaju kratko vreme sabiranja (nezavisno od širine sabirača, tj od n):Ts=5*TeTs-vreme sabiranja, n-br. cifara, Te-vreme prostiranja signala kroz jedan logički element.Nedostatak ovih sabirača je veliki obim hardvera, koji brzo raste sa povećanjem br. bitova. I veliki faktor izlaza (fan-out). Retko se koriste.

46. Paralelni sabirači sa izborom prenosa (CSLA) Vreme sabiranja na sabiraču sa serijskim prenosom može se skratiti ako se skrati put prostiranja prenosa kroz ovakav sabirač. To postižemo deobom n bitova sabiraka na kraće grupe bitova, recimo dužine k, tako da je n=m*k. Dakle umesto jednog n-bitnog koristimo m k-bitnih sabirača. Treba obezbediti da svih m k-bitnih sabirača rade paralelno na formiranju n-bitne sume. Tu se javlja problem. U svim k-bitnim grupama sabiraka, osim grupe najmanje težine, ulazni podatak je i prenos iz prethodne grupe manje težine. Vrednost ovog prenosa poznata je tek po okončanju sabiranja u prethodnoj grupi. A za paralelan rad svih m k-bitnih sabirača potrebno je ove vrednosti znati na samom početku sabiranja. Ta vremenska neusaglašenost može se prevazići korišćenjem u svakoj od m-1 grupa po dva k-bitna sabirača sa serijskim prenosom: jednog sa pretpostavljenim prenosom 0 iz prethodne grupe i drugog sa pretpostavljenim prenosom 1 iz prethodne grupe. Suma se uzima iz onog sabirača koji za pretpostavljeni prenos iz prethodne grupe ima vrednost koja je upravo određena sabiranjem u prethodnoj grupi. Ovaj izbor vrši se korišćenjem u svakoj grupi po k multipleksera. Otuda i naziv sabirač sa izborom prenosa.

Vreme sabiranja u okviru grupe u najgorem slučaju je Tg=2kTe (što je vreme sabiranja sabirača sa serijskim prenosom). Ako zanemarimo vreme prostiranja kroz multipleksere i I i ILI kola, ukupno vreme sabiranja možemo izračunati kao Ts=Tg=2kTe, ali ako ova vremena ne zanemarimo imamo: Ts=Tg+(m-2)*2*Te+Tmux=k2Te+2(m-2)Te+3TeTmux=3Te je vreme prostiranja kroz multiplekser.Cena za ovo povećanje brzine je skoro dvostruko veći obim hardvera sabirača sa izborom prenosa (CSLA) u odnosu na sabirač sa serijskim prenosom (RCA).

32

Page 34: SKRIPTA - Organizacija racunara

47. Množenje prosto označenih celih brojeva a= a a . . . a a - množenikb= b b . . . b b - množilaca , b - definišu znak brojaa a , b b - def. apsolutnu vrednost broja c=ab=c c . . .c c - proizvodc = a b - cifra znaka proizvodaMoguće su dve varijante množenja: Množenje počev od cifre najmanje težine množioca. Množenje počev od cifre najveće težine množioca.Kod množenja počev od cifre najmanje težine množioca (algoritam na sledećoj strani) B o je cifra kojom se trenutno formira parcijalni proizvod, zatim se vrši pomeranje. (P,B)»1 – sadržaji registara P i B se pomeraju udesno za jednu poziciju. Po završetku množenja viša polovina proizvoda je u P, a niža u B. Pozicija m registra P sadrži cifru znaka proizvoda.Ts – vreme sabiranja sadržaja registara P i A;k m – je broj jedinica u datom množiocu B;Tp – vreme pomeranja sadržaja registara P i B;TM –vreme potrebno za množenje;Ti – vreme pripreme množenja i određivanja znaka proizvoda;TM =Ti+kTs+mTpPošto su verovatnoće pojavljivanja cifara 0 i 1 u množiocu jednake, možemo uzeti da je k=m/2, pa je srednja vrednost vremena množenja:

.

Implementacija množenja počev od cifre najveće težine množioca zahteva

pomeranje ulevo sadržaja registra koji čuva sumu od tada formiranih parcijalnih

proizvoda (npr. registra P), kao i registra množioca (B). Registar B nije moguće

(ili je vrlo komplikovano) koristiti za smeštanje dela sume parcijalnih proizvoda,

pa registar P mora biti dužine 2m bitova. Ovo su razlozi koji favorizuju

implementaciju množenja počev od cifre najmanje težine u odnosu na množenje

počev od cifre najveće težine.

33

Page 35: SKRIPTA - Organizacija racunara

48. Množenje metodom preskoka jedinica (prekodiranjem množioca) Pravila za prekodiranje datog binarnog broja su:Datom broju X dodati 0 iza cifre najmanje težine. Ići kroz dati broj X s desna u levo, počev od dodate cifre 0. Analizirati par susednih cifara, i određivati cifru po cifru prekodiranog broja Y. Ako pri tome u X naiđemo na promenu cifara sa 0 na 1 (10), cifru 1 iz X menjamo cifrom u Y. Pri promeni cifara sa 1 na 0 (01), cifru 0 iz X zamenjujemo cifrom 1 u Y. Ako nema promene cifara (obe 0 ili obe 1), u Y unosimo cifru 0.

- označava -1

49. Booth-ov algoritam za množenje Prekodiranje omogućava da se direktno množe dva broja u dvoičnom komplementu (Booth-ov algoritam množenja). Množenje se vrši počev od cifre najmanje težine u množiocu. Sadržaj registra se preko komplementatora dostavlja na ulaz sabirača. =0 – pomoćna cifra za prekodiranje cifre najmanje težine datog množioca.

Dokaz da algoritam funkcioniše:

Imajući u vidu da je

gde je r=1,2,...,m i b-1

=0 dobijamo

34

X(i) X(i-1) Y(i)0 0 00 1 11 01 1 0

Page 36: SKRIPTA - Organizacija racunara

50. Množenje prekodiranjem parova bitova množioca bpi+1=bi+bi-1-2bi+1

Činjenica da se, pored množenja sa +1 i -1, a množi i sa +2 i -2 ne otežava množenje. U tim slučajevima dovoljno je vrednost +a odnosno –a pomeriti za jedno mesto u levo, čime se ona množi sa 2. Ovim se broj parcijalnih proizvoda prepolovljuje u odnosu na množenje originalnim množiocem ili množenjem prema Booth-ovom algoritmu. Sukcesivni parcijalni proizvodi, formirani prekodiranjem parova cifara množioca, međusobno su pomereni za po dve binarne pozicije. Ovaj način množenja poznat je i kao Booth-ovo množenje prekodiranjem sa osnovom 4.

51. Deljenje celih brojeva sa obnavljanjem parcijalnog ostatka Parcijalni ostatak je ostatak deljenika koji koristimo u tekućem koraku deljenja.

Deljenik s, koji može biti dužine 2m bitova, upisuje se u registre P i B, i to viša polovina avp u P, a niža polovina anp u B. Delilac b, koji može biti dužine do m bitova upisuje se u registar A. Pozicija m+1 u registru P i pozicije m+1 i m u registru A su pozicije znaka, pri čemu je Am+1,m=0. Registri P i B omogućavaju pomeranje ulevo. Pozicija znaka registra P nije uključena u ovo pomeranje. Pri pomeranju se cifra iz pozicije m-1 registra B prenosi u poziciju 0 registra P. Paralelni sabirač je širine m+2 bita. Pri sabiranju komplementa sabiraka eventualni prenos iz pozicije znaka se ignoriše. Po oduzimanju delioca od parcijalnog ostatka, cifra znaka registra P određuje sledeću cifru količnika, koju blok upravljanja upisuje u poziciju 0 registra B. U toku deljenja, viši deo registra B sadrži još neiskorišćeni deo deljenika, a njegov niži deo dobijene cifre količnika. Po završetku deljenja registar B sadrži količnik q, a registar P ostatak r. Registar M u bloku upravljanja deliteljem definiše broj koraka do završetka deljenja.

Naziv deljenje sa obnavljanjem parcijalnog ostatka potiče od potrebe da se, posle dobijanja negativnog parcijalnog ostatka, dodavanjem pomerenog delioca parcijalni ostatak obnovi, pošto on uvek mora biti nenegativan.

52. Deljenje celih brojeva bez obnavljanja parcijalnog ostatka

U odnosu na deljenje sa obnavljanjem parcijalnog ostatka ovde je napravljena izmena gde se dopušta da parcijalni ostatak može imati u nekim koracima deljenja negativnu vrednost (nakon pomeranja sadržaja registara P i B umesto oduzimanja treba dodati A) i time se ukida potreba za obnavljanjem parcijalnog ostatka. Deljenje bez obnavljanja parcijalnog ostatka sadrži manji broj operacija oduzimanja, odnosno sabiranja, ali zahteva nešto složenije upravljanje.

35

Cifre množiocabi+1 bi bi-1

Parcijalniproizvod

bpi+1,ixa0 0 0 0xa0 0 1 +1xa0 1 0 +1xa0 1 1 +2xa1 0 0 -2xa1 0 1 -1xa1 1 0 -1xa1 1 1 0xa

Page 37: SKRIPTA - Organizacija racunara

53. Predstavljanje realnih brojeva sa pokretnom zapetom Realni brojevi mogu se predstavljati na dva načina:

- Sa fiksnom zapetom, kada se izvestan broj pozicija rezerviše za predstavljanje razlomljenog dela broja.- Sa pokretnom zapetom, navođenjem dve veličine: mantise M, odnosno značajnika Z, i eksponenta E.

Takođe mora biti zadata i osnova eksponenta B.

a=12.56 predstavljamo u obliku 12,56*100 ili 1,256*101 itd i taj oblik nazivamo normalizovani oblik broja sa pokretnom zapetom. U upotrebi su dva oblika: stariji oblik a=M*BE u kome je M normalizovana mantisa, 1/B≤M<1, B osnova eksponenta, B={2, 8, 10, 16} i E eksponent, i noviji oblik, definisan standardom IEEE 754-85, a=Z*BE u kome je Z značajnik, 1 ≤Z<2, a osnova eksponenta B=2. Značajnik Z je oblika Z=z,f, u kome je z celi deo značajnika, a f je razlomak, 0≤f<1.

Za kodiranje znaka brojeva sa pokretnom zapetom koristi se prosto iskazivanje znaka (znak i apsolutna vrednost broja). Radi jednostavnijeg poređenja eksponenata dva broja, eksponent E se predstavlja u polarizovanom obliku e: e=E+P, gde je P polarizacija ili pomak, veličine P=2k-1 (stariji oblik) ili P=2k-1-1, a k je broj binarnih cifara eksponenta. Ovom transformacijom se vrednosti eksponenta E iz opsega [-(2k-1-1), 2k-1] pri polarizaciji P=2k-1-1 preslikavaju u opseg vrednosti [0, 2k-1] polarizovanog eksponenta e. U taj isti opseg vrednosti polarizovanog eksponenta e preslikavaju se vrednosti eksponenta E iz opsega [-2k-1, 2k-1-1] pri polarizaciji P=2k-

1. Broj 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 f. Dužine ovih polja su date na sledećoj slici.

Kriterijumi za ocenu predstavljanja brojeva sa pokretnom zapetom su:- preciznost (broj cifara razlomka ili mantise),- opseg (brojno područje),- broj tačaka predstavljenih na brojnoj osi,- relativno rastojanje između tačaka,- opseg relativnih grešaka zaokruženja itd.

54. Standard IEE 754-85 za binarnu aritmetiku sa pokretnom zapetom Standard predviđa predstavljanje brojeva u obliku a=Z*Be sa polarizacijom vrednosti P=2k-1-1. Pošto celi deo normalizovanog značajnika mora biti jednak jedinici, pri čuvanju podatka a van FP funkcionalnih jedinica (FP FU) moguće je izostaviti ovu jedinicu, i od značajnika čuvati samo razlomak. Zato se z=1 u normalizovanom značajniku Z=z,f naziva implicitna ili skrivena jedinica. Ovo rešenje 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. Standard predviđa četiri formata za predstavljanje brojeva sa pokretnom zapetom: sa jednostrukom preciznošću, sa dvostrukom preciznošću, sa jednostrukom proširenom preciznošću i sa dvostrukom proširenom preciznošću.Format sa jednostrukom preciznošću smešta podatak a u 32 binarne pozicije, sa dužinama polja prikazanim na donjoj slici. Pozicija 0 je MSB, a pozicija 31 je LSB. Platizacija je 127.

36

Page 38: SKRIPTA - Organizacija racunara

Format sa dvostrukom preciznošću smešta podatak a u 64 binarne pozicije, sa dužinama polja prikazanim na donjoj slici. Pozicija 0 je MSB, a pozicija 63 je LSB. Polarizacija je 1023.

Jednostruki prošireni format ima polje e dužine ≥ 11 bita, a polje f dužine ≥ 31 bit. Dvostruki prošireni format ima polje e dužine ≥ 14 bita, a polje f dužine ≥ 63 bita.

Emax i Emin su maksimalna i minimalna vrednost nepolarizovanih eksponenata normalizovanih brojeva respektivno. P je polarizacija eksponenta.Naredna tabela sadrži prikaz načina predstavljanja specijalnih vrednosti, tj. onih vrednosti čije se prikazivanje ne uklapa u normalizovani oblik 1,f×2E, Emin≤E≤ Emax.

Denormalizovane vrednosti brojeva su još jedna specifičnost standarda IEEE-754. Umesto da se vrednosti između 0 i 1,0×2Emin predstavljaju kao 0 (što daje potkoračenje formata), ove vrednosti predstavljaju se kao 0,f×2Emin. Ovo daje postepeno potkoračenje čime se dobija još 2m-1 predstavljenih vrednosti različitih od nule u oblasti malih vrednosti. Ovo može znatno da smanji greške koje se pojavljuju za bliske vrednosti operanada u operacijama oduzimanja.

55. Sabiranje brojeva sa pokretnom zapetom Sabiranje 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. Naravno to mora biti praćeno pomeranjem značajnika manjeg sabirka udesno, za broj binarnih pozicija određen razlikom eksponenata većeg i manjeg sabirka. Obavlja se u sledećih pet koraka:1) 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,2) za eksponent rezultata uzeti veći eksponent sabiraka,

37

Page 39: SKRIPTA - Organizacija racunara

3) sabrati značajnike i odrediti znak rezultata,4) ako je potrebno, normalizovati vrednost rezultata, svesti vrednost razlomka na 23 cifre iza binarne zapete, i ako je potrebno ponovo normalizovati vrednost rezultata,5) proveriti rezultat na prekoračenje-potkoračenje.

56. Množenje i deljenje brojeva sa pokretnom zapetom Množenje:1) sabrati eksponente i oduzeti polarizaciju: ec=ea+eb-P,2) pomnožiti značajnike i odrediti znak rezultata 3) ako je potrebno, normalizovati vrednost rezultata, svesti vrednost razlomka na 23 cifre iza binarne zapete, i ako je potrebno ponovo normalizovati vrednost rezultata,4) proveriti rezultat na prekoračenje-potkoračenje.Oduzimanje polarizacije u prvom koraku je posledica korišćenja eksponenata u obliku ”viška P” (oba eksponenta su bila polarizovana pa se oduzima jedno P, a jedno zadržava proizvod).

Deljenje:1) oduzeti eksponente i dodati polarizaciju: ec=ea-eb+P2) podeliti značajnike i odrediti znak rezultata 3) ako je potrebno, normalizovati vrednost rezultata, svesti vrednost razlomka na 23 cifre iza binarne zapete, i ako je potrebno ponovo normalizovati vrednost rezultata,4) proveriti rezultat na prekoračenje-potkoračenje.Dodavanje polarizacije u prvom koraku neophodno je da bi se eksponent rezultata zadržao u polarizovanom obliku.

57. Dodatne cifre za očuvanje tačnosti rezultata i zaokruživanje Pri obavljanju odgovarajućih operacija nad značajnicima operanada dobijaju se rezultati koji mogu imati više od 24 odnosno 53 binarne cifre za jednostruku odnosno dvostruku preciznost. Obavljene 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 cifre u odnosu na predviđenu dužinu razlomka (mantisa). Te cifre su cifra zaštite, cifra zaokruženja i lepljivi bit. Cifre zaštite i zaokruženja su cifre u brojnom sistemu određenom osnovom eksponenta (B) i prema standardu IEEE 754 to su takođe bitovi (binarne cifre). Ove cifre su prve dve sledeće cifre rezultata iza poslednje cifre razlomka (mantise), određene korišćenim formatom. Lepljivi bit ima vrednost 1 ako je ostatak rezultata posle izdvajanja razlomka i cifara zaštite i zaokruženja različit od 0, inače on ima vrednost 0. Lepljivi bit formira se kao rezultat “ili” logičke operacije svih preostalih bitova cifara rezultata iza cifara zaštite i zaokruženja.

58. Svođenje razlomka rezultata na potreban broj cifara i greške koje se pri tome prave Neka se posle normalizacije u nekom od koraka dobije vrednost značajnika Z=1,f -1,f-2...f-23rs, (r-cifra zaokruženja, s-lepljivi bit) kou treba svesti na 23 cifre razlomka. Ovo svođenje razlomka sa 25 na 23 cifre može se izvesti na dva načina:

- odsecanjem i - zaokruživanjem.

Odsecanje je postupak kojim se odbacuju dodatne cifre razlomka, tako da se dobija Z=1,f-1,f-2...f-23. Kako ova vrednost aproksimira vrednosti značajnika iz opsega Z=1,f-1,f-2...f-2300÷Z=1,f-1,f-2...f-2311 to se greška aproksimacije odsecanjem menja u granicama od 0,00...0|00...0÷0,00...0|11...1, gde vertikalna crta omeđuje prve 23 cifre razlomka. Maksimalna vrednost greške aproksimacije je približno jednaka vrednosti jedinice u poziciji cifre f-23=(2-23). Za ovu aproksimaciju kažemo da je polarizovana zato što je grška uvek istog (pozitivnog) znaka.Zaokruživanje je postupak kojim se značajnik oblika 1,f-1,f-2...f-23rs zamenjuje vrednošću dobijenom dodavanjem cifre r u poziciji cifre f-23. Pri r=0 zaokruživanje se svodi na odsecanje. U ovom slučaju, kada su moguće tačne vrednosti u opsegu 1,f-1,f-2...f-2300...0÷1,f-1,f-2...f-2301...1, zaokruživanjem se pravi greška aproksimacije u opsegu 0,00...0|00...0÷0,00...0|01...1. Pri r=1, kada su moguće tačne vrednosti u opsegu 1,f -1,f-2...f-2310...0÷1,f-1,f-2...f-

23111...1, zaokruživanjem se pravi grška aproksimacije u opsegu:

38

Page 40: SKRIPTA - Organizacija racunara

-0,00...0|00...0÷0,00...0|01...1. Greška koja se čini pri zaokruživanju je promenljivog znaka, pa nije polarizovana. Maksimalna vrednost greške aproksimacije jednaka je 2-24 (1 u poziciji -24), što je polovina vrednosti maksimalne greške pri odsecanju.Neka je posle normalizacije dobijena vrednost rezultata a, koja se nalazi između dve predstavljive vrednosti a1 i a2 za dati format, a1≤a≤a2. Standard IEEE 754 predviđa 4 moguća zaokruživanja:1. zaokruživanje na najbližu vrednost,2. zaokruživanje prema nuli (odsecanje),3. zaokruživanje naviše (ka +∞) i 4. zaokruživanje naniže (ka -∞)

59. Numerički procesori Da bi procesorali postizali visoke performanse i pri obavljanju složenijih operacija, pridodaju im se funkcionalne jedinice za obavljanje aritmetičkih operacija nad celobrojnim i FP operandima. Grupu takvih funkcionalnih jedinica često nazivamo FP procesor, numerički procesor ili numerički koprocesor. Savremena tehnologija je omogućila da se u jednom čipu proizvedu centralni procesor i numerički procesor.Numerički procesor u procesoru PA7100 sadrži sledeće funkcionalne jedinice: FP Aritmetičko-Logičku Jedinicu (FP ALU), FP množač i FP delitelj, koji takođe može izračunavati kvadratni koren. FP ALU i FP množač su protočno organizovani dok FP delitelj nije. FP ALU obavlja operacije sabiranja, oduzimanja, poređenja, komplementiranja i prevođenja operanada iz Integer u FP oblik i obrnuto. FP množač, pored množenja FP brojeva sa jednostrukom i dvostrukom preciznošću, množi i cele brojeve dužine 32 bita. Pri množenju, parcijalni proizvodi formiraju se prekodiranjem parova cifara množioca. Oni se sumiraju korišćenjem polja sabirača sa pamćenjem prenosa i, u poslednjem stepenu, sabirača sa prostiranjem prenosa. Za deljenje se koristi modifikovani SRT algoritam sa osnovom 4. To je algoritam deljenja bez obnavljanja parcijalnog ostatka.Numerički procesor u procesoru R10000 sadrži FP sabirač, FP množač, FP delitelj i FP jedinicu za izračunavanje kvadratnog korena. Sabirač i množač su protočno organizovani, sa po tri stepena. Preostale dve funkcionalne jedinice nisu protočno organizovane. Sabirač, pored sabiranja/oduzimanja, vrši operacije poređenja i konverzije. Množač, pored množenja, obavlja i operacije prenosa i uslovnog prenosa. Pri množenju, parcijalni proizvodi formiraju se prekodiranjem parova cifara množioca, koji se sumiraju korišćenjem polja sabirača sa pamćenjem prenosa. Za deljenje se koristi SRT algoritam sa osnovom 4.Numerički procesor u procesoru Alpha21264 istovremeno može izvršavati sledeće operacije: sabiranje/opduzimanje/konverziju, množenje, dve load/store operacije, deljenje i izračunavanje kvadratnog korena. Sabirač i množač su protočno organizovani, sa intervalima ponavljanja operacija od jednog taktnog ciklusa. Pri množenju, parcijalni proizvodi formiraju se prekodiranjem parova i trojki cifara množioca, koji se sumiraju korišćenjem polja sabirača sa pamćenjem prenosa. Za deljenje koristi se iterativni metod recipročnih vrednosti i aproksimacije količnika.Numerički procesor u procesoru Pentium 4 sadrži FP sabirač, FP množač, FP delitelj i FP jedinicu za izračunavanje kvadratnog korena. Sabirač i množač su protočno organizovani, dok preostale dve funkcionalne jedinice nisu. Pored rada sa SP i DP podacima, ovaj procesor može obrađivati i podatke sa preciznošću dužine 128 bitova.

60. Parametri memorije Memorije koje se koriste u računarima sačinjava: Memorijski medijum, sposoban da ograničeno ili neograničeno dugo čuva prethodno unete podatke, i Upravljački sistem memorije, koji omogućuje upisivanje i čitanje podataka iz memorije po nalozima procesora ili drugih elemenata računara.Memorija je fizič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 umnošcima. Takve blokove memorije, kojima se pristupa odjednom, zvaćemo memorijske lokacije. Obično je dužina memorijskih lokacija jednaka dužini registara podataka u procesoru. Svaka memorijska lokacija ima jedinstvenu adresu, koja označava njeno mesto (poziciju) u okviru memorijskog medijuma.Prema informacijama 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.

39

Page 41: SKRIPTA - Organizacija racunara

Zavisno od tipa memorije mogu postojati ograničenja u pogledu načina i redosleda pristupa lokacijama u memoriji.Očitavanje podataka prisutnih u memoriji može zahtevati stalno napajanje električnom energijom, inače se sadržaj memorije gubi. Takve 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. Ovde spadaju memorije sa magnetnim zapisom, kao i druge memorije kod kojih se zapisom menjaju fizičke ili geometrijske karakteristike memorijskog medijuma.Važni kvantitativni parametri memorije su kapacitet memorije, vremenski parametri memorije (vreme pristupa i vreme ciklusa), propusnost memorije, snaga disipacije, specifična cena, pouzdanost i drugi.Kapacitet memorije meri se količinom podataka koje memorija može da prihvati i čuva. Izražava se u KB, MB ili GB.Vreme pristupa memoriji (latencija memorije), tA, definiše se kao vremenski interval od prispeća zahteva za čitanje memorije do trenutka kada taj podatak postane raspoloživ na izlazima podataka memorije. Kod 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.Vreme ciklusa memorije, tc, definiše se kao najkraća perioda sa kojom memorija može uspešno da prihvatiti uzastopna obraćanja. Navodi se samo za memorije sa proizvoljnim pristupom.Brzina kojom se podaci prenose u ili iz memorije naziva se propusnost memorije, D, i ona predstavlja odnos količine prenetih podataka i vremenskog intervala u kome se prenos obavlja.Snaga disipacije predstavlja snagu koju zahteva memorija za svoj rad. Snaga disipacije navodi se za operativni režim mirovanja. Ona se u memoriji pretvara u toplotu koja može oštetiti memorijske komponente.Specifična cena memorije izražava se odnosom cene memorije i njenog kapaciteta. Iskazuje se u dolarima po MB ili dolarima po GB.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.

61. Metode pristupa memorijskim medijumima Prema informacijama na osnovu kojih pristupamo memoriji da bi iz nje uzeli ili u nju stavili podatak, memorije mogu biti sa pritsupom na osnovu: adrese i vrednosti dela podatka.Pristup na osnovu adrese, adresni pristup, podrazumeva da je poznata adresa podatka u memoriji. Pristup na osnovu vrednosti dela podatka (nekog polja unutar podatka) koristi poznavanje sadržaja tog polja za pristup širem podatku u memoriji. Lokacija podatka u memoriji nije poznata. To je takozvani asocijativni pristup podatku u memoriji.Zavisno od tipa memorije mogu postojati ograničenja u pogledu načina i redosleda pristupa lokacijama u memoriji. Kada nema nikakvih ograničenja tog tipa, i kada su vremena pristupa lokacijama nezavisna od položaja lokacija u memoriji, imamo memorije sa proizvoljnim pristupom ili slučajnim pristupom. Memorije čijim se podacima može pristupati samo unapred određenim redosledom su memorije sa serijskim pristupom. Kod njih vremena pristupa zavise od od položaja lokacije u nizu memorijskih lokacija kojima se pristupa. Takve su memorije sa magnetnim trakama. Način rada kojim se direktno dolazi do adresiranog bloka memorije, a zatim se serijskim pristupom dolazi do određenog podatka u bloku, naziva se direktan pristup memoriji i on je zastupljen u magnetnim i optičkim diskovima.

62. Dinamičke RAM (DRAM) memorije Dinamička RAM (DRAM) memorija je poluprovodnička memorija koja kao jednobitnu memorijsku ćeliju koristi par MOS tranzistor-kondenzator. Informacija se pamti u vidu naelektrisanja kondenzatora, kojim je on napunjen pri upisu podataka. Memorija je dinamička zato što se naelektrisanje kondenzatora periodično mora obnavljati, inače bi došlo do gubitka upisanog podatka. Ovakve jednobitne memorijske ćelije obrazuju dvodimenzionalno polje memorijskih ćelija. Pri pristupu memoriji, pristupa se svim memorijskim ćelijama u jednoj vrsti. Bit linija povezuje memorijske ćelije sa istim brojem kolone u svim vrstama. Neka polje memorijskih ćelija ima N vrsta i W kolona. Pri pristupu DRAM memoriji, vrsta se adresira posredstvom dekodera vrste, a kolona posredstvom dekodera kolone. Sadržaji svih memorijskih ćelija u adresiranoj vrsti prenose se do sens pojačavača, kojih ima po jedan za svaku kolonu. Sens pojačavač na osnovu napona na kondenzatoru memorijske ćelije određuje bit podatka u njoj. Pristup memoriji obavlja se u dva koraka: najpre se

40

Page 42: SKRIPTA - Organizacija racunara

pristupa vrsti i pročita sadržaj cele vrste (za vrstu se koristi i termin stranica), a zatim se pristupa koloni koja sadrži adresirani podatak. Ovi pristupi vremenski se razdvajaju sinhornizacionim signalima RAS (Row Address Strobe) i CAS (Column Address Strobe). Kada je na adresnim ulazima prisutna adresa vrste, aktivira se signal RAS, a kada je prisutna adresa kolone aktivira se signal CAS. Aktiviranjem upravljačkog signala CS bira se DRAM čip. Pri pristupu memoriji, aktiviranjem signala WE nalaže se upis inače sledi učitavanje. Aktiviranjem signala OE daje se dozvola izlaza pročitanog podatka.Svi pristupi DRAM memoriji imaju bar 3 zajedničke faze kroz koje prolazi polje memorijskih ćelija. Te faze su pretpunjenje (tRP), pristup vrsti i pristup koloni. U pretpunjenju deaktiviraju se sve linije reči, a bit linije dovodi se na srednji naponski nivo. U pristupu vrsti (poznato i kao aktiviranje) aktivira se samo jedna linija reči, kondenzatorima ove vrste dopušta se da se isprazne, dovodeći bit linije na niži ili viši naponski nivo od prethodnog. U fazi pristupa koloni, iz cele pročitane vrste, koja je prisutna u sens pojačavačima, dekoderom kolone bira se zahtevana grupa podataka. Pristup vrsti je destruktivan, pa se posle završetka pristupa koloni vraćanjem podataka iz sens pojačavača u vrstu obnavlja njen sadržaj.tRCD – RAS do CAS kašnjenjeCL – CAS latencija ili vreme pristupa koloni.DRAM memorije kod kojih se pri svakom pristupu mora aktivirati vrsta su konvencijalne DRAM memorije. Osnovni oblik savremenih DRAM memorija je FPM DRAM (Fast Page Mode DRAM). Kod njih sens pojačavači obrazuju bafer vrste, u kome je prisutan sadržaj cele vrste pročitan pri poslednjem pristupu vrsti.Konvencionalne DRAM memorije, FP DRAM memorije su asinhrone memorije, u smislu da odzivi memorije nisu sinhronizovani spoljašnjim taktnim signalima.

63. Sinhrone DRAM (SDR, DDR i DDR2 SDRAM) memorije To je tip DRAM memorije čiji je rad sinhronizovan ulaznim taktnim signalom. Asinhronom jezgru memorije dodati su i upravljački registri, koji omogućavaju da se radom SDRAM-a upravlja komandama. Komanda je kombinacija logičkih nivoa upravljačkih signala. Tipične komande su komanda aktiviranja vrste, komanda čitanja ili upisa, komanda pretpunjenja itd. Čip SDRAM memorije sadrži nekoliko nezavisnih memorijskih banaka (polja memorijskih ćelija) sa pripadajućim adresnim kolima i sens pojačavačima (baferima vrsta), čiji se rad može preklapati. Preko upravljačkih registara SDRAM-a može se izabrati jedna od ponuđenih dužina (1, 2, 4 ili 8 reči ili čak cela vrsta) grupe podataka koji se mogu pročitati ili upisati jednim pristupom u takozvanom režimu grupe.

SDRAM memorije rapoložive su u dve varijante: kao Single Data Rate (SDR SDRAM) i Double Data Rate (DDR SDRAM). One se razlikuju po tome što SDR SDRAM prenosi po jednu reč u svakom taktnom ciklusu, dok DDR SDRAM prenosi dve reči u svakom taktnom ciklusu, po jednu pri uzlaznoj i silaznoj ivici taktnog signala. To je postignuto pribavljanjem unapred po dva umesto jednog bita. Brzina DDR SDRAM čipova iskazuje se brzinom prenosa podataka po jednom priključku podataka u Mb/s i latencijom CL.

41

Page 43: SKRIPTA - Organizacija racunara

DDR SDRAM memorije evoluirale su u novi tip DRAM memorije, DDR2 SDRAM. On je dobijen pribavljanjem unapred po 4n umesto 2n bitova kod DDR tipa, i udvajanjem radne učestanosti spoljašnjeg interfejsa u odnosu na radnu učestanost jezgra DRAM-a.

64. Upravljanje DRAM memorijama i ozvežavanje DRAM memorije Fizika rada memorijskih ćelija DRAM memorija je takva da zahteva periodično obnavljanje sadržaja, takozvano osvežavanje DRAM memorija. Ono se vrši tako što se pristupom vrsti pročita ceo njen sadržaj, a zatim se povratnim upisom on obnovi. Kod DRAM čipova koji sadrže više nezavisnih banaka, istovremeno se osvežavaju vrste sa istom adresom u svim bankama. Ovakav način osvežavanja memorije nalaže se periodičnim izdavanjem komande AUTO REFRESH memoriji od strane kontrolera DRAM memorije. Pre izdavanja ove komande sve banke moraju proći kroz pretpunjenje. Adrese vrsta koje se osvežavaju generiše kontroler osvežavanja u samom DRAM čipu.Osvežavanje memorija moguće je i kada su drugi elementi sistema isključeni sa napajanja zbog uštede energije. Tada kontroler DRAM memorije komandom SELF REFRESH inicira osveženje memorije bez potrebe za spoljašnjim taktnim signalom. Ovakvo autonomno osvežavanje obavlja se sve dok se posebnim nizom komandi ne izađe iz režima samoosvežavanja.Sve ovo opravdava uvođenje posebnog kontrolera koji bi se bavio samo time. Kontroleri DRAM-a obično su uklopljeni u čipove koji obavljaju i druge f-je. kontroler DRAM memorije obavlja sledeće zadatke: Naloge procesora za pristupe memoriji radi čitanja ili upisa tansformiše u komande pretpunjenja određenih banaka, aktiviranja vrsta i pristupa kolonama radi čitanja ili upisa. Adresira memorijske module, grupe čipova na njima, banke unutar čipova, vrste i kolone u bankama. Upravlja osvežavanjem DRAM-a. Upravlja potrošnjom energije prevodeći memoriju u režim mirovanja i natrag u operativni režim po nalogu procesora.Pri razmatranju pristupa podacima u DRAM memoriji razlikovaćemo dva obrasca pristupa: lokalizovani pristup, kod koga su uzastopni pristupi memoriji usmereni u jednu vrstu DRAM-a, i nelokalizovani pristup, kod koga su uzastopni pristupi memorije rasejani po različitim bankama i vrstama DRAM-a.Rad kontrolera DRAM-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. Ovo daje dve strategije upravljanja DRAM memorijama: Strategija otvorene vrste, pri kojoj kontroler po završenom pristupu podataka u vrsti ostavlja tu vrstu otvorenom, očekujući da i sledeći pristup toj banci bude usmeren u istu vrstu. Strategiju zatvorene vrste, pri kojoj kontroler po završenom pristupu podataka u vrsti zatvara tu vrstu, očekujući da sledeći pristup toj banci bude usmeren u neku drugu vrstu.Kontroler 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 DRAM-a proverava da li je pristup u neku već otvorenu vrstu. Ako jeste, odgovarajućoj grupi čipova šalje komandu za čitanje ili upis podataka, kada šalje i same podatke. Ako je to pristup u zatvorenu vrstu, šalje komande za pretpunjenje, aktiviranje vrste i čitanje ili upis podataka.Kontroler DRAM-a koji implementira strategiju zatvorene vrste ima jednostavniji model ponašanja. Po prijemu naloga za čitanje ili upis procesora, kontroler šalje komande za aktiviranje vrste i čitanje (sa autopretpunjenjem) ili upis podataka (sa autopretpunjenjem). Čitanje i upis sa autopretpunjenjem obezbeđuju da se posle obavljenog čitanja ili upisa obavi i pretpunjenje te banke memorije. Time se vrsta kojoj je pristup obavljen zatvara, a banka se priprema za novi pristup.

65. EPROM i fleš memorije To su stalne memorije koje će čuvati zapisane podatke i po prestanku napajanja.ROM memorija je poluprovodnička memorija sa proizvoljnim pristupom čiji se prethodno upisani sadržaj može samo čitati. Upis podataka u ROM vrši se posebnim postupkom – programiranjem ROM-a. Zavisno od načina programiranja postoje četiri tipa ROM memorija: ROM memorija koja se programira maskiranjem u procesu proizvodnje. PROM memorija (programmable ROM) koja iz proizvodnje izlazi kao “prazna”, programira se samo jednom odgovarajućim električnim signalima.

42

Page 44: SKRIPTA - Organizacija racunara

EPROM memorija (Eraseable PROM) takođe se programira električnim signalima, ali se programirani sadržaj može obrisati i ona ponovo programirati. Briše se sadržaj cele memorije osvetljenjem memorije ultraljubičastom svetlošću. EEPROM memorija (Electricaly EPROM) takođe se programira električnim signalima i ponovo programira.Unutrašnja organizacija ROM memorije slična je organizaciji SRAM memorije. Glavna razlika je u implementaciji polja memorijskih ćelija. Spolja gledano ROM memorija je organizacije 2m reči × w bitova.Fleš 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 “on line”. Mogu se programirati pojedinačne reči ili stranice, a brisati veći delovi memorije, zvani blokovi ili sektori. Fleš memorije se koriste kao upravljačke memorije sa mogućnošću upisa i sve više kao prenosiva memorija za čuvanje većih količina podataka.

66. Statičke RAM (SRAM) memorije Poluprovodničke RAM memorije čije su memorijske ćelije implementirane sa 6 tranizstora imaju osobinu da upisani bit podatka pamte sve dok se napajaju električnom energijom. One ne zahtevaju dodatne aktivnosti na održavanju upisanih podataka, pa se nazivaju statičke RAM memorije, SRAM. Izrađuju se u istoj tehnologiji u kojoj se izrađuju i registri procesora, pa su potencijalno brže od DRAM memorija. Polje memorijskih ćelija SRAM memorije organizovano je kao 2m reči * w bitova. Ima m adresnih ulaza, w ulaza-izlaza podataka i upravljačke ulaze CS, WE i OE.

Aktiviranjem ulaza CS bira se SRAM čip. Signal WE ima aktivnu vrednost pri upisu i neaktivnu pri čitanju. Signal OE aktivnom vrednošću određuje linije podataka kao izlazne, a neaktivnom kao ulazne. SRAM memorija ne multipleksira adresne linije, odnosno puna adresa joj se dostavlja istovremeno. Vreme ciklusa SRAM memorije nije duže od vremena pristupa.SRAM memorija se takođe izrađuje u asinhronoj i sinhronoj varijanti. Sinhrone SRAM memorije podržavaju i rad u režimu grupe, koji je vrlo efikasan kada se ovakve memorije koriste za gradnju sekundarnih keš memorija.Poređenje DRAM i SRAM memorija pokazuje da su SRAM memorije daleko manjeg kapaciteta po čipu, brže, sa konstantnim vremenima pristupa i ciklusa, skuplje i jednostavnije za upravljanje. DRAM memorije su mnogo većeg kapaciteta po čipu, sporije, sa promenljivim vremenima pristupa i ciklusa, jeftinije i složenije za upravljanje.

67. Asocijativna memorija Asocijativne memorije su memorije u kojima je zastupljen asocijativni pristup podacima. Pristup podatku u asocijativnoj memoriji vrši 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 informaciju koji podaci zadovoljavaju uslov traženja, ili negativan, što znači da traženi podatak nije prisutan u memoriji.Organizacija asocijativne memorije na nivou blokova prikazana je na slici.

43

SRAM memorija organizacije 2m reči * w bitova

Page 45: SKRIPTA - Organizacija racunara

Polje memorijskih ćelija sadrži podatke zapamćene u memoriji. U 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. Traženju prethodi definisanje maske u kojoj polja sa binarnim jedinicama maskiraju (isključuju) polja podataka u memoriji koja se porede sa unetim ključem. Traženje podataka u memoriji vrši se istovremenim poređenjem unetog ključa sa nemaskiranim poljima svih podataka u memoriji. Lokacije memorije koje sadrže pronađene podatke se preko linija Slaganje označavaju u bloku selekcije. Po završenom traženju podataka, pronađeni podaci (može ih biti više od jednog), određeni signalima na linijama Selekcija, 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.

Osnovu memorijske ćelije čini D flip flop sa pridruženom logikom. Linija Ulazni podatak D vodi se iz ulaznog registra, linija Maskiranje MK iz registra maske, a linija Selekcija S iz bloka selekcije. Linija Slaganje SLA vodi se ka bloku selekcije, a linija Izlazni podatak Q ka izlaznom registru. Signali SLA i Q određeni su sa izrazimaSLA=Q=Pri upisu podataka u memoriju signali S=1, WE=1 uz MK=0 generišu taktni signal kojim se podatak D upiše u D flip flop i prosledi na izlaz Q.Pri traženju podataka u memoriji aktivan je samo signal MK=0;Pri čitanju podataka iz memorije sa S=1 označavaju se ćelije čiji se sadržaj čita. Pri tome je MK=x (nevažno), a izlazni signal .Asocijativna 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. Asocijativne memorije se nalaze u keš memorijama i virtuelnim memorijama.

68. Hijerarhijski memorijski sistem računara Raspoložive tehnologije za gradnju memorija ne omogućavaju jednostavno rešenje memorija koje bi ispunile oprečne zahteve u pogledu brzine, kapaciteta i cene.Pođimo od problema obezbeđenja memorije dovoljnog kapaciteta. Glavna memorija (GM) računara u prošlosti je građena u tehnologiji feritnih jezgara, zatim magnetnih filmova i najzad u tehnologiji poluprovodničkih integrisanih kola. U svakoj od ovih tehnologija ona je bila isuviše skupa da se samo sa njom računaru obezbedi memorija potrebnog kapaciteta. Memorijski medijumi koji je mogu dopuniti, kao što su magnetni diskovi u

44

Blok šema asocijativne memorije

Logička šema jednobitne memorjske ćelije asocijativne memorije i njen prikaz kao blok šeme(desno)

Page 46: SKRIPTA - Organizacija racunara

različitim izvođenjima, imaju mnogo nižu cenu, ali su i mnogo sporiji od nje. Problem je rešen tako što je glavnoj memoriji, kao primarnoj memoriji, pridodata jedinica diska kao sekundarna memorija. U manjoj i bržoj glavnoj memoriji drže se samo aktuelni podaci. Kada podaci koji nisu prisutni u glavnoj memoriji postanu aktuelni, oni se u nju prenose iz sekundarne memorije. Ovo je praćeno vraćanjem podataka za koje se veruje da su postali neaktuelni iz glavne u sekundarnu memoriju.Drugi problem sa memorijama je njihova sporost. Naime, kod računara je uvek bila prisutna razlika u brzini centralnog procesora CP i glavne memorija. Ova razlika se vremenom samo uvećavala.Bilo je mnogo pokušaja da se brzina memorije približi brzini CP-a. Registri opšte namene, uvedeni u procesore pedesetih godina, samo su delimično ublažili ovaj problem. Tek su keš memorije uspešno premostile jaz u brzinama procesora i glavnih memorija računara.

Hijerarhijska organizacija memorije ima dva oslonca. Prvi je princip lokalnosti programa. Lokalnost 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 90% vremena u izvršavanju samo 10% (statičkih) naredbi programa. Lokalnost programa ima dve dimenzije: Vremensku 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.Hijerarhijska organizacija memorije koristi lokalnost programa tako što najaktuelnije podatke čuva u brzom memorijskom nivou najbližem procesoru.Gledajući sa strane procesora, memorijski nivoi poređani su po redosledu opadanja brzine ( i cena) a po redosledu porasta kapaciteta.Drugi oslonac su fizički zakoni koji se primenjeni na hardver računara, mogu formulisati kao: manje je brže. Hardverske komponente manjih dimenzija su u principu brže od istih komponenti većih dimenzija. Za ovo postoje dva razloga:1. Prvi je da kod brzih računara prostiranje signala glavni uzrok kašnjenja. U 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 bafera koji se moraju umetnuti između procesora i memorije.2. Drugi razlog je da se u većini tehnologija mogu dobiti memorije manjeg kapaciteta koje su brže od memorija većeg kapaciteta.

69. Keš memorije (opšte) Keš memorije (KM) su brze memorije malog kapaciteta, umetnute između procesora i glavne memorije računara. Upravljane su tako da bi u svakom trenutku trebalo da sadrže aktuelne podatke pri radu procesora. Memorijski sistem funkcioniše na sledeći način: u nastojanju da pribavi potreban podatak, procesor se obraća keš memoriji. Ako je traženi podatak prisutan u keš memoriji, on se iz nje čita i dostavlja procesoru, koji nastavlja sa radom bez zastoja. Ako traženi podatak nije prisutan i keš memoriji, obraćanje procesora prosleđuje se glavnoj memoriji. Traženi podatak iz glavne memorije prenosi se u keš memoriju, a odatle u procesor.Efikasnost keš memorija u povećanju brzine memorijskog sistema zaslužna je da su one danas skoro obavezni deo memorije svih računara.Procesor se keš memoriji obraća na osnovu adresa podataka u glavnoj memoriji. Ovo zahteva mehanizam za preslikavanje datih adresa lokacija glavne memorije u adrese lokacija keš memorije. Zbog efikasnijeg

45

Nivoi u hijerahijskoj organizaciji memorije. Udaljavajući se od CP-a memorije postaju sve veće i sporije.

Page 47: SKRIPTA - Organizacija racunara

preslikavanja i skraćenja vremena prenosa, između glavne memorije i keš memorije ne preslikavaju se pojedinačne reči već blokovi (linije) podataka. Glavna memorija i keš memorija podeljene su na okvire blokova. Okvir bloka keša može sadržati jedan od većeg broja blokova podataka.Kako se u radu keš memorija koristi i asocijativni pristup, neophodno je u keš memoriji imati informacije o tome koji su blokovi podataka prisutni u njoj. Ovo upućuje na to da se keš memorija mora sastojati od memorije podatka i adresara. U memoriji podataka keša čuvaju se blokovi podataka prisutni u keš memoriji. Adresar keša ima po jednu stavku za svaki keš blok. Stavka adresara sadrži informacije o bloku podataka prisutnom u keš bloku kome je ona pridužena. Stavku adresara najčešće sačinjavaju: Etiketa – viši deo adrese bloka podataka prisutnog u keš bloku V – indikator važeći blok podataka prisutan u keš bloku M – indikator modifikovan blok podataka u keš blokuRadom keš memorije upravlja kontroler keš memorije. On prima naloge od centralnog procesora, proverava u adresaru da li je traženi podatak prisutan u keš memoriji, i ako jeste (pogodak) izvršava naloženu aktivnost na ovom podatku. Ako traženi podatak nije prisutan u keš memoriji (promašaj), kontroler izdaje nalog za pribavljanje traženog bloka iz glavne memorije.Blokovi podataka, kao i okviri blokova odnosno keš blokovi, su dužine B=2b [B]. Kod nekih keš memorija, dugi blokovi mogu biti podeljeni na podblokove. Podblok je deo bloka kome je pridružen indikator važeći. Podatak je dužine P[B], pri čemu je P < B. Pri promašaju podatka u kešu, između glavne memorije i keš memorije prenosi se blok pribavljanja dužine F[B].Keš memorija (KM) je kapaciteta C =2c [B]. Iskazan blokovima, njen kapacitet je Cb=C/B = 2c/2b=2c-b blokova.

70. Keš memorije sa direktnim, skupno-asocijativnim i potpuno-asocijativnim preslikavanjem

Prema broju keš blokova u koje se može preneti blok podatak i iz glavne memorije, , keš memorija može biti sa: potpunim asocijativnim preslikavanjem. skupno asocijativnim preslikavanjem, i direktnim preslikavanjemKod keš memorije sa potpunim asocijativnim preslikavanjem blok podataka i može biti prenet u bilo koji keš blok k, .Kod keš memorije sa direktnim preslikavanjem, blok podataka i može biti prenet samo u keš blok k određen izrazom k=i mod Cb.

Kod keš memorije sa skupno-asocijativnim preslikavanjem, po A sukcesivnih keš blokova obrazuje skup keš blokova Sj j=0,1,...,s-1. s=2r = Cb/A je broj skupova keš blokova u keš memoriji. Blok podataka može biti prenet u bilo koji od A keš blokova u skupu keš blokova Sk k=i (mod) s. Broj keš blokova A u skupu naziva se asocijativnost skupa.Adresa a podatka u glavnoj memoriji koristi za pristup podatku u keš memorji. Adresa a deli se na dva polja pri potpunom asocijativnom preslikavanju, a na tri polja pri skupno-asocijativnom i direktnom preslikavanju.

Polje “pom” definiše pomeraj podatka unutar bloka podataka. Polje “indeks” kod keš memorija sa skupno–asocijativnim preslikavanjem adresira skup koji može sadržati traženi podatak. Kod keš memorija sa direktnim preslikavanjem ovo polje adresira jedinstveni keš blok koji može sadržati traženi podatak. Polje “etiketa” sadrži viši deo adrese podatka u glavnoj memoriji, preostao posle izdvajanja sadržaja polja “pom” i “indeks”. Etiketa

46

Podela adresa u glavnoj memoriji, dužine g bitova, na adresna polja kod keš memorije: a)sa ptpuno asocijativnim preslikavanjem ib)skupno-asocijativnim i direktnim preslikavanjem

Page 48: SKRIPTA - Organizacija racunara

je u suštini binarna oznaka jednog od Gb/Cb blokova podataka koji se preslikavaju u keš blok, odnosno jednog od Gb/s blokova koji se preslikavaju u skup, određen sadržajem polja “indeks”.Skupno–asocijativno prelazi u direktno preslikavanje kada skup spadne na samo jedan keš blok (A=1, s=Cb). Skupno-asocijativno preslikavanje prelazi u potpuno asocijativno preslikavanje kada jedan skup obuhvati sve blokove keš memorije (A=Cb, s=1).Kada procesor izda nalog za čitanje podataka, adresom memorijske lokacije glavne memorije napuni se adresni registar memorije MAR. Registar MAR podeljen je na polja “etiketa”, “indeks” i “pom”. Sadržajem polja “indeks” preko selektora skupa, bira se jedan od S skupova u kešu. U ovom skupu istovremeno se čita svih A blokova podataka. Paralelno sa ovim komparator etiketa poredi sadržaj polja “etiketa” registra MAR sa etiketama svih važećih blokova podataka u ovom skupu. Ako je ishod poređenja pozitivan (potreban podatak je prisutan u kešu), određen je keš blok koji sadrži potreban podatak. Iz ovako određenog keš bloka selektor reči, na osnovu sadržaja polja “pom” iz registra MAR, izdvaja potrebnu reč koja se dostavlja procesoru. Ako je ishod poređenja etiketa negativan (potreban podatak nije u kešu), kontroler keš memorije blokira procesor do trenutka kada će biti u stanju da mu pošalje traženi podatak. U izabranom skupu S k odeđuje se keš blok koji će prihvatiti adresirani blok podatka. Ako 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. Ako je ona modifikovana za vreme prisustva u kešu, kontroler keša je vraća natrag u glavnu memoriju. Ako nije modifikovana ovo vraćanje izostaje. Zatim kontroler nalaže prenos adresiranog bloka podataka iz glavne memorije u keš blok. Ažurira se stavka adresara (etiketa, indikatori, informacije o korišćenju) pridružena ovom keš bloku. Po prenosu ovog bloka podatka u keš, kontroler keša deblokira procesor i šalje mu potreban podatak.

71. Načini upisa u par keš memorija – glavna memorija Situacija pri upisu u kešu nešto je komplikovanija nego pri čitanju. Razlog 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. Druga komplikacija je to što pri upisu procesor definiše dužinu podatka koji upisuje, i samo taj deo bloka podatka može biti izmenjen. To povlači pribavljanje sadržaja adresiranog keš bloka, modifikovanje odgovarajućeg dela bloka podatka, i vraćanje modifikovanog bloka u keš blok iz koga je uzet.Prema aktivnostima pri pogotku pri upisu, keš memorije mogu biti: Sa neposrednim upisom – podatak se upisuje u niži nivo memorije (operativna memorija), kao i u keš memoriju ako je u njoj prisutan. Sa posrednim upisom – podatak se upisuje samo u keš memoriju; modifikovani blok podataka upućuje se u niži nivo memorije tek pri njegovoj zameni u kešu.Da bi se pri posrednom upisu izbegla nepotrebna vraćanja nemodifikovanih blokova pri zameni, svakom keš bloku pridružuje se indikator modifikovan. Ovaj indikator svojim stanjem pokazuje da li je blok podataka modifikovan (izmenjen) za vreme prisustva u kešu. Ako nije modifikovan, nema potrebe vraćati ga pri zameni u niži nivo memorije, pošto se ne razlikuje od bloka podataka sa istom adresom u toj memoriji.Prednost posrednih upisa je to što se upisi vrše brzinom keša, 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 promašaji nikada ne zahtevaju vraćanje zamenjenih blokova podataka u niži nivo memorije. Neposredni upis je lakše implementirati. Pri neposrednom upisu, niži nivo memorije uvek ima ažurne podatke. Upis u keš memoriju može teći paralelno sa ispitivanjem etikete keš bloka.Navedene prednosti i nedostaci oba načina upisa najčešće vode primeni neposrednog upisa.Prema tome da li se pri promašaju pri upisu promašenom bloku podataka dodeljuje keš blok, keš memorije mogu biti: Sa dodelom pri upisu Bez dodele pri upisuKod keša sa dodelom pri upisu, promašenom bloku podataka dodeljuje se keš blok, a upis se vrši i u kešu. Kod keša bez dodele pri upisu, promašenom bloku podataka ne dodeljuje se keš blok, a upis se vrši samo u nižem nivou memorije.Prema tome da li se pri primašaju pri upisu promašeni blok pribavlja iz nižeg nivoa memorije, keš memorije mogu biti: Sa pribavljanjem pri upisu Bez pribavljanja pri upisu

47

Page 49: SKRIPTA - Organizacija racunara

Pri promašaju pri upisu, keš sa pribavljanjem pri upisu mora sačekati pribavljanje promašenog bloka pre no što obavi upis, dok keš bez pribavljanja pri upisu obavlja upis ne čekajući na pribavljanje promašenog bloka, jer ono izostaje.Pri neposrednom upisu, upis podatka u niži nivo memorije blokira procesor do završetka upisa. Ovo se može izbeći umetanjem bafera upisa između keš memorije i nižeg nivoa memorije. Upisom podataka u bafer upisa procesor se deblokira, iako upis još nije prosleđen do odredišta. Ako je pri pokušaju upisa u bafer upisa on već pun, procesor ostaje blokiran sve dok se u baferu upisa ne oslobodi mesto za prihvatanje novog podatka.

72. Klasifikacije promašaja u keš memorijama Promašaje svrstavamo u sledeće 3 kategorije: Neizbežni promašaji – pri prvom obraćanju nekom podatku taj podatak nije u kešu, tako da blok sa tim podatkom mora biti prenet u keš. Kapacitetni promašaji – ako keš ne može sadržati sve blokove podataka potrebne pri izvršenju programa, javljaju se promašaji zbog nedovoljnog kapaciteta, jer se blokovi koju su bili istisnuti iz keša drugim blokovima moraju vratiti u keš. Konfliktni promašaji – kod keš memorija sa direktnim ili skupno-asocijativnim preslikavanjem mogu se javiti promašaji zato što se isuviše blokova podataka preslikava u isti skup keš blokova, tako da neki od njih moraju biti istisnuti iz keša, a zatim kasnije vraćeni.Broj neizbežnih promašaja M1 jednak je broju promašaja u kešu sa potpuno asocijativnim preslikavanjem ali beskonačnog kapaciteta (praktično dovoljno velikog kapaciteta da ne dolazi do istiskivanja blokova podataka iz njega). Broj kapacitetnih promašaja M2 dobija se kada se od broja promasaja keša oduzmu promašaji u kešu . Broj konfliktnih promašaja M3 dobija se kada se od ukupnog broja promašaja M keša KM oduzme broj promašaja u kešu iste veličine kao KM ali sa potpunim asocijativnim preslikavanjem.

M1+M2+M3=MM1=M2=

M3=

73. Zamena blokova podataka u keš memoriji Pri promašaju podatka sa adresom a u keš memoriji, on se u nju mora preneti zajedno sa blokom podataka i kome pripada. Kod keš memorije sa direktnim preslikavanjem, blok podataka i može se preneti samo u okvir bloka k=i (mod) Cb.Kod keš memorija sa skupno–asocijativnim i potpuno asocijativnim preslikavanjem, blok podatak i može se preneti u jedan od više keš blokova. Pri tome su moguća dva slučaja: Jedan ili više keš blokova su prazni, pa je jedan od tih praznih keš blokova, recimo onaj sa najmanjim indeksom, izabran za odredište prenosa. Svi keš blokovi su puni, pa treba izabrati keš blok čiji će sadržaj biti zamenjen novim blokom podatka.U drugom slučaju, koji je češći, izbor bloka za zamenu može uticati na buduće promašaje. Zato se kao cilj postavlja izbor keš bloka u kome će zamena bloka podatka dati najmanji broj budućih promašaja.Postoje sledeće strategije zamene: Slučajan izbor (RAND) Izbor keš bloka koji je prvi napunjen (FIFO) Izbor keš bloka koji sadrži najmanje skoro korišćeni blok podatka(LRU).Termin najmanje skoro korišćeni označava blok podatka od čijeg je poslednjeg korišćenja do trenutka izbora bloka proteklo najduže vreme. Strategije zamene RAND i FIFO ne zasnivaju se na informacijama o korišćenju blokova podataka u keš blokovima.Strategija zamene LRU zasniva se na informacijama o korišćenju blokova podataka kandidata za zamenu. Zahvaljujući ovome, strategija zamene LRU daje bolje rezultate od strategije zamene RAND i FIFO.Strategija zamene blokova podataka u keš memoriji koja bi dala najbolje rezultate zahteva poznavanje ponašanje programa u budućnosti: za zamenu se bira blok podataka koji će od svih kandidata za zamenu biti korišćen u najdaljoj budućnosti.

48

Page 50: SKRIPTA - Organizacija racunara

Jedna od f-ja keš kontrolera u kešu sa skupno asocijativnim preslikavanjem i LRU algoritmom zamene je i da obezbedi informacije o korišćenju podataka prisutnih u kešu.

74. Efektivno vreme ciklusa keš memorija U najjednostavnijem slučaju čitanja podataka iz keš memorije, efektivno vreme pristupa keš memorije može se izraziti kao:Tef=Tpog + mTprom

Tpog je vreme potrebno za čitanje podatka iz keša pri pogotku.Tprom je vreme potrebno za pribavljanje promašenog podatka iz nižeg nivoa memorije (tzv. promašajna kazna), i m je faktor promašaja. Promašajna kazna zavisi od načina upisa u keš memoriju (neposredni ili posredni upis).Ako uzmemo u obzir i upise podataka u keš memoriju, situacija postaje komplikovanija. Razmotrimo aktivnosti pri ukupno n obraćanja memorijskom sistemu. Neka su nč i nu broj čitanja i upisa u memorijski sistem pri cemu je n= nč + nu. Neka su: Tc – perioda takta keša Tčb – vreme pribavljanja bloka podatka iz GM u KM Tub – vreme upisa žrtvovanog modifikovanog bloka podatka iz KM u GM TuGM – vreme upisa reči podatka iz KM u GM nprom – broj promašaja u n obavljanja pristupa kešu nčprom – broj promašaja pri čitanju u n obavljenih pristupa kešu nzmd - broj zamenjenih modifikovanih blokova podataka u n pristupa memoriji.Pošto se upisom blok podataka u kešu modifikuje, pre upisa moramo se uveriti da je blok podataka u koji upisujemo prisutan u kešu. Ta provera zahteva jedan taktni ciklus keša. Sam upis zahteva još jedan taktni ciklus, tako da su za upis potrebna dva taktna ciklusa keša.Za keš sa posrednim upisom imaćemo:n * Tef(PU)= nč*Tc + nu*2Tc + nprom *Tčb + nzmd*Tub

Tef(PU)=( nč/n)* Tc + (nu/n)*2Tc + (nprom / n)*Tčb + (nzmd/n)*Tub

Tef(PU)=( pč+2pu)* Tc+m*Tčb + m*pmod*Tub

Tef(PU)=( 1+pu)* Tc+m*(Tčb +pmod*Tub)Pri postojanju bafera upisa blokova Tub < Tčb i preklapa se sa njim, pa imamo:Tef(PU)=( 1+pu)* Tc+m*Tčb Za keš sa neposrednim upisom bez pribavljanja promašenog bloka pri upisu:n * Tef(NU)= nč*Tc + nu*max(2Tc , TuGM) + nčpro *Tčb

Tef(NU)= (nč/n)*Tc + (nu/n)*max(2Tc , TuGM) + (nčpro/n) *Tčb

Tef(NU)=pč*Tc + pu*max(2Tc , TuGM) + mč *Tčb

Ako nije poznata vrednost faktora promašaja samo za čitanja (mč), izraziti je kao mč=m*pč, gde je m opšti faktor promašaja.Uspešnost keša u smanjenju saobraćaja između para (CP, KM) i GM, meri se faktorom saobraćaja (FS). To je odnos obima prenetih podataka između para (CP, KM) i GM kada memorijski sitem sadrži keš, i obima prenetih podataka između CP i GM kada memorijski sistem ne sadrži keš.FSPU=(nprom+nzmd)B/(n*w)=( nprom+ nprompmod) B/(nw)=m(1+ pmod)B/wFSNU=(nčpro*B+nu*wu)/(n*w)=(mč*B+pu*wu)/ww je srednja dužina prenošenih podataka između CP i GM kada memorijski sistem ne sadrži keš, a wu je srednja dužina podataka upisivanih iz KM u GM kod keša sa neposrednim upisom.Uticaj promašaja keša na vreme rada CP-a može se iskazati na sledeći način:Vreme_rada_CP=(Vreme_rada_CP_bez_zastoja_u_taktnim_ciklusima+ Vreme_čekanja_CP_na_memoriju_u_

taktnim_ciklusima)*Perioda_takta

49

Page 51: SKRIPTA - Organizacija racunara

Broj_instrukcija_CP_na_memoriju_u_taktnim_ciklusima = Broj_instrukcija * (Promašaji / Instrukcije) *

Promašajna_kazna

Promašaji/Instrukcije = Broj_obraćanja_memoriji_po_instrukciji * Faktor_promašaja = mnaredbi + mpodataka *

Broj_obraćanja_u_memoriji_po_instrukciji

75. Sekundarne keš memorije Jedna od dilema pri izboru keša je: mala i brza keš memorija, usaglašena sa brzinom procesora, ali sa velikim faktorom promašaja znatno veća i složenija keš memorija, sa znatno manjim faktorom promašaja, ali znatno sporija od procesoraDobro rešenje može biti: obe keš memorije u istom računaru, što vodi keš memoriji u dva nivoa. Keš memorija prvog nivoa, ili primarna keš memorija, kod savremenih računara nalazi se u istom čipu sa procesorom. Keš memorija drugog nivoa, znatno veća, ili sekundarna keš memorija , nalazi se između primarne keš memorije i glavne memorije. Umesto da brzi keš trpi promašajnu kaznu dužine nekoliko desetina perioda takta (pri pribavljanju blokova iz GM), kod keš memorije u dva nivoa on trpi promašajnu kaznu od samo nekoliko perioda takta (pri pribavljanju blokova iz sekundarnog keša).Primarni keš propušta do sekundarnog keša samo ona obraćanja procesora koja su za njega promašaji.Kod sekundarne keš memorije povećanje dužine blokova pozitivno utiče na smanjenje faktora promašaja. Optimalna dužina bloka je znatno veća nego kod primarnog keša, obzirom na odnos njihovih veličina, jer negativni efekti 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 kešu prisutni i u sekundarnom kešu. Ako jesu, za sekundarni keš kaže se da ima osobinu višenivooske inkluzije. Inkluzija je poželjna pošto se usaglašavanje između U-I sistema i keš memorije i između keš memorija u višeprocesorskim sistemima može vršiti aktivnostima samo na sekundarnim keš memorijama. Međutim kada L2 keš nije mnogo veći od L1 keša, pogodno rešenje je da ova dva nivoa sadrže različite podatke. U takvom rešenju pri promašaju podatka u L1 kešu i pogotku u L2 kešu vrši se razmena blokova podatka između L1 i L2 keša, umesto da se samo promašeni blok podatka prenese iz L2 u L1 keš.I kod keš memorija sa dva nivoa poželjne su optimizacije prilikom upisa u niži nivo memorije. Zato se iza svakog nivoa keša umeće bafer upisa.

76. Mere za skraćenje vremena pogotka i promašajne kazne i za smanjenje faktora promašaja keša

Smanjenje faktora promašaja može se postići različitim merama:1. povećanje dužine blokova2. povećanje asocijativnosti3. upotreba posebnog keša za blokove podataka istisnute iz keša 4. pseudo-asocijativna organizacija keša

Povećanje dužine blokova

Povećanje dužine blokova do izvesne granice smanjuje faktor promašaja, jer se time smanjuje udeo neizbežnih promašaja u ukupnom broju promašaja. Povećanje dužine blokova iznad granice optimalne dužine povećava faktor promašaja, jer raste broj kapacitetnih i konfliktnih promašaja. Međutim dužina blokova utiče i na promašajnu kaznu, pa se i to mora uzeti u obzir pri izboru optimalne dužine blokova.

Povećanje asocijativnosti

Povećanje asocijativnosti pri nepromenjenom kapacitetu keša smanjuje faktor promašaja. Porast asocijativnosti, međutim ima svoju cenu. Prvo, to je složeniji i skuplji kontroler keša. Drugo, porast asocijativnosti praćen je produženjem vremena pogotka, jer složenost logike za utvrđivanje pogotka raste sa porastom asocijativnosti. Sa povećanjem asocijativnosti može se postići i neželjeni krajnji efekat, a to je produženje vremena T ef. Do toga može doći kada produženje vremena pogotka postane veće od smanjenja faktora promašaja pomnoženog promašajnom kaznom.

50

Page 52: SKRIPTA - Organizacija racunara

Mere za sniženje promašajne kazne

Ako se ima u vidu da se odnos promašajne kazne i vremena pogotka može kretati u granicama od 10 do 100 pa i više, jasno je da promašajna kazna mnogo utiče na efektivno vreme pristupa keš memoriji.Za sniženje promašajnih kazni sreću se sledeća rešenja:1. davanje prioriteta promašajima pri čitanju u odnosu na upise2. pribavljanje podbloka podataka pri promašaju3. rani restart procesora i pribavljanje počev od zahtevane reči4. neblokirajuće keš memorije 5. keš memorija u dva nivoa (sekundarni keš)Rešenja koja zahtevaju modifikaciju keš memorije (1)U keš memorijama sa posrednim upisom, promašaj zahteva da se: odredi blok podatka koji će biti zamenjen (žrtvovan), i ako je on modifikovan, upiše u niži nivo memorije, pribavi promašeni blok od nižeg nivoa memorije i smesti u oslobođeni keš blok.Kako je za smanjenje vremena blokiranja procesora vrlo važno procesoru što pre dostaviti promašeni podatak, modifikovani žrtvovani blok podataka ne vraća se u niži nivo memorije pre pribavljanja promašenog bloka podataka, već se upisuje u bafer upisa blokova u kešu. Time se omogućuje da pribavljanje bloka podataka počne odmah po ustanovljenju promašaja. Vraćanje žrtvovanog bloka podataka u niži nivo memorije obavlja se posle toga.Jednostavna implementacija keš memorije odlaže dostavljanje promašenog podatka procesoru sve do završetka pribavljanja bloka sa tim podatkom. Promašajna kazna se snižava ako se promašeni podatak dostavlja procesoru čim on prispe u keš, ne čekajući završetak pribavljanja bloka. Kod ovog rešenja skraćenje promašajne kazne zavisi od mesta promašenog pogotka u pribavljanom bloku. Bolje rešenje je da pribavljanje bloka počne baš od promašenog podatka. Tada je skraćenje kazne najveće moguće i ne zavisi od slučajnog položaja promašenog podatka u pribavljenom bloku.

Neblokirajuće keš memorije

Keš memorije u slučaju promašaja podatka u njima blokiraju rad procesora dok mu ne dostave promašeni podatak. Zastoji u radu procesora mogu se značajno smanjiti ako se omogući da procesor nastavi sa pribavljanjem i izvršenjem drugih instrukcija dok se u keš memoriji pribavlja promašeni blok podataka. Te instrukcije moraju biti nezavisne od instrukcije kod koje je došlo do promašaja.

77. Glavna (operativna) memorija računara Glavna memorija (operativna memorija) je osnovna memorija u računaru. U njoj moraju biti prisutni programi koji se izvršavaju i podaci koje ti programi koriste. Adrese instrukcija i operanada odnose se na lokacije glavne memorije u kojima su instrukcije i operandi prisutni.U hijerarhijskoj organizaciji memorijskog sistema glavna memorija nalazi se iza keš memorije, sekundarne keš memorije, kojoj dostavlja podatke po zahtevu. Za smanjenje promašajne kazne keša poželjno je da latencija glavne memorije bude što manja. DRAM memorije, koje se skoro isključivo koriste za gradnju glavnih memorija računara, imaju pri proizvoljnim pristupima veliku latenciju merenu periodama takta procesora. Sa drugim važnim pokazateljem performansi, propusnošću, DRAM memorije stoje mnogo bolje. Rešenje 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 keša 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.Nastojeći da povećanjem paralelizma skratimo ovo vreme, učetvorostručimo širine glavne memorije i sekundarnog keša, 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. To je bitna razlika u odnosu na rešenja kada svaki pristup memoriji angažuje samo mali deo ove memorije. Sve memorijske banke dele zajedničku memorijsku magistralu širine jednake širini primarnog keša. Takvo rešenje sa 4 banke je na slici 6.24c.

51

Page 53: SKRIPTA - Organizacija racunara

Slanjem 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.Ovako organizovana memorija naziva se memorija sa preklapanjem. Lokacije u ovakvoj memoriji sa k banaka, k=2c, adresiraju se odbacivanjem c adresnih bitova najmanje težine. Memorijska banka 0 sadrži sve reči čije su adrese po modulu k jednake 0, memorijska banka 1 sadrži sve reči čije su adrese po modulu k jednake 1, itd. Ovakva organizacija je idealna za razmenu podataka sa keš memorijama, jer blokovi podataka sadrže podatke sa sukcesivnim adresama.

78. Magnetni diskovi Magnetni diskovi funkcionišu na principu zapisivanja bitova podataka u malim ćelijama od feromagnetnih materijala sa dva stabilana magnetna stanja, koja predstavljaju logičke vrednosti 0 i 1. Ova stanja određena su veličinom ili smerom magnetnog fluksa ćelije. Električna struja menja i omogućuje prepoznavanje magnetnih stanja ćelija uz pomoć induktivne glave za upis i čitanje podataka. Ovakve 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 generišu električne signale koji pokazuju stanje ćelija pri čitanju podataka.Disk 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 površinama tih kružnih ploča. One rotiraju na zajedničkoj osovini konstantnom brzinom. Na malom rastojanju od svake površine nalazi se po jedna glava za čitanje-upis. Sve glave su fiksirane rukom diska za posebnu osovinu koja se naziva pokretač. Pokretanjem pokretača pomeraju se istovremeno i istovetno sve glave diska, radijalno po površini diskova, omogućavajući pristup aktivnom delu površina kružnih poloča.Kada se glava korektno pozicionira, podaci se mogu pročitati ili upisati, sa ili na površini 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. Cela kružnica (prsten) na površini diska sa smeštenim podacima se naziva pista, i svaka kružna ploča sadrži veliki broj pista, koncentričnih prstenova sa smeštenim podacima. Grupa pista na svim površinama na istom rastojanju od osovine diskova se naziva cilindar.Najmanja jedinica podataka kojoj se može pristupiti na disku je sektor. Fizička adresa podatka na disku sastoji se od brojeva površine, piste i sektora u kome se podatak nalazi. Vreme pristupa podatku na disku se može razložiti na tri primarne komponente: vreme traženja, rotaciono kašnjenje i vreme prenosa podataka. Vreme traženja Ts je vreme potrebno za pomeranje glave na tačnu radijalnu poziciju (pistu). Rotaciono kašnjenje Tr je vreme potrebno za rotiranje kružnih ploča do nailaska traženog sektora ispod glave diska. Vreme prenosa podataka dužine n sektora se jedne piste, Tt, zavisi od brzine kojom se podaci mogu preneti na ili sa površine diska i f-ja je brzine obrtanja diska i broja sektora na pistama.Dužina piste je promenljiva i raste idući od piste sa najmanjim poluprečnikom (unutrašnja pista) ka pisti sa najvećim poluprečnikom (spoljašnja pista). Tehnika nazvana višestruko zonsko zapisivanje, koristi ovu činjenicu smeštajući, pri istoj linearnoj gustini zapisa, rastući broj sektora idući od unutrašnjih ka spoljašnjim pistama. Većina današnjih diskova koristi ovu tehniku. Ovaj pristup grupiše 200 – 1000 sukcesivnih pista u zone. Svaka zona sadrži konstantan broj sektora po pisti, sa skokovitim promenama broja sektora u pistama u sukcesivnim zonama. Vreme traženja i rotaciono kašnjenje zajedno se ponekad naziva vreme pozicioniranja glave.

52

Tri rešenja sa različitm šiinama glavne memorije, magistrale, keš memorije koja daju različite performanse

Page 54: SKRIPTA - Organizacija racunara

79. Smeštanje podataka na magnetnom disku

Levi deo slike prikazuje kako se blok sekvencijalnih podataka smešta u sektor (skoro uvek veličine 512 bajta). Sektor sadrži najmanju jedinicu podataka koja može biti pročitana ili upisana na disk. Sektor se sastoji od tri dela: zaglavlja, dela u kome su smešteni korisnički podaci i dela sa kodom za korekciju grešaka. Deo zaglavlja na početku svakog sektora, sadrži identifikacione podatke sektora i sinhronizacione informacije. Zadnji deo sadrži kodove za korekciju grešaka, koji se izračunava na osnovu zaglavlja i dela sa podacima.Da 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 upiše u njega odgovarajući podatak.Ako smeštanje podataka na disku zahteva veći broj sektora, optimalno je njihovo smeštanje u sukcesivne sektore. Time se vreme traženja i rotaciono kašnjenje do nailaska prvog sektora javlja samo jedanput, dok se sledećim sektorima pristupa bez zastoja.Kod skoro svih diskova, čitanje ili upis u bilo kom trenutku može da izvršava samo jedna glava. Zbog ovoga, kao što je prikazano na slici, sekvencijalno smeštanje 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 završetka smeštanje podataka. Treba 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.Elektronika interfejsa u disk drajvu sadrži bafer 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 bafera diska i između bafera diska i diska obavlja sa njima svojstvenom brzinom.Druga uloga bafera diska je uloga keš memorije diska. Aplikacije 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 smešta u bafer. Ako je sledeći blok potrebnih podataka sekvencijalan u odnosu na prethodnim nalogom pročitani blok, disk može da opsluži zahtev direktno iz bafera, što je mnogo brže jer nema kašnjenja.

80. Virtuelna memorija (opšte) Programi koji se izvršavaju moraju biti prisutni u glavnoj memoriji računara. Do prelaska na izvršenje, programi se obično drže u sekundarnoj memoriji u svom izvršnom obliku.Upravljanje memorijom postaje komplikovano kada:

1. u glavnoj memoriji nema dovoljno prostora za držanje celih programa i njima pridruženih podataka u toku izvršenja programa,

2. u glavnoj memoriji smenjuje se više procesa (programa u izvršenju) pri multiprogramskom radu računara.U 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 efikasnijom i sa manje grešaka.Virtuelna memorija omogućuje izvršenje programa čiji su samo neki delovi prisutni u glavnoj memoriji računara, odnosno čije potrebe za memorijom prevazilaze raspoloživu fizičku memoriju. Velič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 fizičke memorije. Naprimer, procesor sa 32 – bitnim adresama i virtuelnom memorijom ima virtuelni adresni prostor veličine 232 odnosno 4GB, dok raspoloživa (fizička) memorija može biti veličine 256 MB. Virtulena memorija svakom procesu (programu) dopušta korišćenje celog virtuelnog adresnog prostora. Ovo zahteva da se svakom korisniku pridruži odgovarajući identifikator, koji se naziva identifikator procesa (PID) ili identifikator adresnog prostora (ASID).

53

Raspored podataka na disku

Page 55: SKRIPTA - Organizacija racunara

Ključ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. Virtuelne adrese sistem generiše pri prevođenju i/ili povezivanju programa. Ove 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 izvršenje programa. Pri izvršenju programa svako obraćanje memoriji zahteva prevođenje virtuelene adrese koju generiše procesor u fizičku adresu. Ovo prevođenje vrši jednica za upravljanje memorijom (MMU), koja je obično imlplementirana u čipu procesora. Mogućnost da se programi izvršavaju pri bilo kojoj dodeli memorije programu zahteva i poštovanje sledećih ograničenja: u programima se ne smeju koristiti načini adresiranja sa fiksnim adresama, kao što je to direktno odnosno apsolutno adresiranje. Najpogodniji način adresiranja je bazno adresiranje.Prenošenje 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. Ova pojava naziva se spoljašnja fragmentacija memorije. Dodela memorije programima može se pojednostaviti ako se svaki program “upakuje” u izvestan broj stranica fiksnih 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. Virtuelna memorija kod koje se virtuleni adresni prostor deli u ovakve stranice fiksnih dužina naziva se stranična virtuelna memorija. Kod 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. Ova pojava naziva se unutrašnja fragmentacija memorije.

81. Stranično organizovana virtualna memorija Kod stranične virtuelne memorije virtuelni adresni prostor podeljen je na virtuelne stranice, a fizički adresni prostor na fizičke stranice. Veličina stranica L određena je celobrojnim stepenom dvojke, i najčešće iznosi L=4KB. Virtuelni adresni prostor veličine 2v bajtova sadrži V virtuelnih stranica označenih brojevima 0,1,…,V-1. Fizički, adresni prostor veličine 2r bajtova sadrži R fizičkih stranica označenih brojevima 0,1,…,R-1. Data virtuelna adresa av deli se na pomeraj unutar stranice p i broj virtuelne stanice BVS. Fizička adresa af se takođe deli na pomeraj unutar stranice p i broj fizičke stranice BFS.Proces najčešće popunjava mnogo manje virtuelnih stranica nego što ih ima u virtuelnom adresnom prostoru. Takve nepopunjene stranice se nazivaju nepostojeće stranice. Od kreiranih virtuelnih stranica procesa, neke su prisutne u glavnoj memoriji, dok se ostale nalaze na disku.Prevođenje virtuelnih u fizičke adrese vrši se pri svakom obraćanju memoriji, ovo prevođenje vrši se korišćenjem stranične tablice (ST), koja za svaku virtuelnu stranicu ima po jednu stavku. Stavka stranične tablice (SST) adresira se brojem virtuelne stranice BVS, dobijene iz virtuelne adrese a v izdvajanjem pomeraja iz nje. Ova stavka stranične tablice sadrži broj fizičke stranice BFS u koju se preslikava virtuelna stranica BVS. Pomeraj u virtuelnoj adresi av se neizmenjen prenosi u polje pomeraja fizičke adrese.

82. Potpuna (linearna) stranična tablica Prevođenje virtuelnih u fizičke adrese vrši se pri svakom obraćanju memoriji, ovo prevođenje vrši se korišćenjem stranične tablice (ST), koja za svaku virtuelnu stranicu ima po jednu stavku. Stavka stranične tablice (SST) adresira se brojem virtuelne stranice BVS, dobijene iz virtuelne adrese a v izdvajanjem pomeraja iz nje. Ova stavka stranične tablice sadrži broj fizičke stranice BFS u koju se preslikava virtuelna stranica BVS. Pomeraj u virtuelnoj adresi av se neizmenjen prenosi u polje pomeraja fizičke adrese.

Pored veličine BFS stavka stranične tablice sadrži i sledeće indikatore koji se odnose na tu virtuelnu stranicu:P – prisutna u glavnoj memorijiK – korišćena u proteklom periodu

54

Korišćenje stranične tablice pri prevođenju virtuelne u fizičku adresu

Page 56: SKRIPTA - Organizacija racunara

M – modifikovana u glavnoj memorijiR – dozvoljen pristup radi čitanjaW – dozvoljen pristup radi upisaAko je virtuelna stranica prisutna u glavnoj memoriji, tj. P(SST)=1, imamo pogodak stranice. P(SST)=0 signalizira da stranica nije prisutna u glavnoj memoriji, i tada se javlja greška stranice.Prevođenje virtuelne adrese u slučaju pogotka upravlja MMU kroz sledeće korake:1. procesor formira virtuelnu adresu VA i šalje MMU2. MMU formira adresu stavke stranične tablice A(SST) i upućuje zahtev za pribavljanje SST iz keša/glavne memorije.3. Keš/glavna memorija vraćaju u MMU zahtevanu SST4. MMU formira fizičku adresu i dostavlja je kešu/glavnoj memoriji5. Keš/glavna memorija vraćaju procesoru zahtevanu reč podatka.

Za prevođenje virtuelne adrese u slučaju promašaja stranice, koraci 1-3 su isti:4. Bit P(SST)=0 pa MMU aktivira izuzetak, koji predaje upravljanje procesorom rukovaocu izuzecima greške stranice u kernelu operativnog sistema5. Rukovalac izuzecima greške stranice pronalazi žrtvovanu stranicu u glavnoj memoriji (ona koja će biti zamenjena), i ako je ona modifikovana, vraća je na disk.6. Rukovalac izuzecima greške stranice pribavlja novu stranicu u glavnoj memoriji i ažurira u njoj odgovarajući SST

7. Rukovalac izuzecima greške stranice vraća upravljanje procesu koji ga je aktivirao, dovodeći do restartovanja instrukcije na kojoj se javio izuzetak. Procesor ponovo šalje istu virtuelnu adresu u MMU. Međutim, sada je virtuelna stranica prisutna u glavnoj memoriji pa se javlja pogodak, pri kome se zahtevani podatak dostavlja procesoru na već opisani način.Ovakva stranična tablica, koja se naziva linearna stranična tablica ili potpuna stranična tablica, ima V stavki, gde je V broj virtuelnih stranica označenih brojevima 0,1,…,V-1. Stranične tablice ovih veličina ne mogu se držati u registrima procesora već u glavnoj memoriji računara. Onda se pored velikog zauzeća memorije straničnim tablicama procesa javlja još jedan problem. Svako obraćanje memoriji za pribavljanje instrukcije ili podatka zahteva po jedno dodatno obraćanje memoriji za prevođenje virtuelne u fizičku adresu.

83. Keš za prevođenje virtuelnih adresa (TLB) 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 fizičku adresu delimično se rešava korišćenjem posebne keš memorije u kojoj se drže najaktuelnije stavke stanične tablice i takva keš memorija naziva se Translation Lookaside Buffer (TLB). Pri svakom obraćanju memoriji najpre se pristupa TLB-u sa ciljem da se u njemu nađe broj fizičke stranice u kojoj je prisutna tekuća virtuelna stranica. U slučaju pogotka nije potrebno obraćanje

55

Učešće hardvera računara u prevođenju virtuelne adrese a)pri pogodku stranice i b)pri grešci stranice

Page 57: SKRIPTA - Organizacija racunara

straničnoj tablici u memoriji, pa se prevođenje adrese znatno ubrzava. Nastoji se da se obraćanje TLB-u svede na samo jedan taktni ciklus, što upućuje da se TLB implementira kao mala keš memorija sa poptunim asocijativnim preslikavanjem.

Stavka TLB-a sadrži kao etiketu broj virtuelne stranice na koju se odnosi, broj fizičke stranice u kojoj je prisutna ta virtuelna stranica, i indikatore V, R, W i M. Indikator V pokazuje da li je ta stavka TLB-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 TLB-u. Ako je BVS virtuelne adrese jednak etiketi neke stavke TLB-a, sadržaj polja BFS te stavke prenosi se u adresni registar memorije i sledi obraćanje memoriji. Ako se javi promašaj u TLB-u sledi pristup straničnoj tablici iz koje dobijamo informaciju da li je virtuelna stranica prisutna u memoriji i gde, ili da ona tamo nije prisutna. U drugom slučaju javlja se greška stranice koja dovodi do istoimenog izuzetka za čije opsluživanje se poziva operativni sistem. Opsluživanje greške stranice uključuje prenošenje promašene stranice u glavnu memoriju, ažuriranje stranične tablice i TLB-a. Kada se javi promašaj u TLB-u ali se u straničnoj tablici nađe fizička stanica u kojoj je prisutna virtuelna stranica, ažurira se TLB kreiranjem nove stavke sa odgovarajućim poljima. U pogođenoj stavci TLB-a ili stranične tablice proveravaju se bitovi zaštite memorije R i W, i ako je pokušan nedozvoljeni pristup memoriji javlja se izuzetak povrede zaštite memorije.Pošto TLB sadrži stavke stranične tablice tekućeg procesa, promena konteksta procesa zahteva izmenu celokupnog sadržaja TLB-a. Dakle, pri napuštanju tekućeg procesa moraju se sve stavke TLB-a proglasiti nevažećim, što se postiže jednostavnim brisanjem indikatora V u svim njegovim stavkama.TLB-i manjeg obima implementiraju se kao keš memorije sa potpunim asocijativnim preslikavanjem, a oni većeg obima sa skupno-asocijativnim preslikavanjem.

84. Višenivooska stranična tablica Veliki obim stranične tablice, uz veliki broj procesa, može angažovati znatan deo glavne memorije. Računar naravno ne sme koristiti svoje resurse samo za svoje potrebe, veći deo toga mora prepustiti korisniku. Dakle, rešenje je da se u glavnoj memoriji ne čuvaju cele stranične tablice svih procesa, već samo trenutno aktuelni delovi svake od ovih tablica.Hijerarhijski organizovana stranična tablica sa dva nivoa prikazana je na slici. Polje broja virtuelne stranice podeljeno je u dva polja dužina po 10 bitova, čiji su sadržaji označeni sa v1 i v2. Bazni registar procesora adresira koren stranične tablice – to je adresa početka stranične tablice nivoa 1 procesa. Svaka stavka ove stranične tablice sadrži podatke o jednom ST-bloku, koji su ovde stranične tablice nivoa 2 (STN2). U te podatke spada indikator prisutnosti STN2 u glavnoj memoriji, i ako je ona tamo prisutna, njena bazna adresa. Na osnovu bazne adrese STN2, dobijene iz STN1, i veličine v2 kao indeksa u STN2, adresira se stavka STN2 koja učestvuje u prevođenju date virtuelne adrese. Broj fizičke stranice dobijen iz te stavke sa dopisanim pomerajem iz virtuelne adrese daje fizičku adresu podatka u glavnoj memoriji. Ovakve pristupe stavkama STN1 i STN2 do pristupa podatku u glavnoj memoriji, koji se nazivaju šetnja kroz stranične tablice organizuje hardver u okviru MMU-a.

56

Page 58: SKRIPTA - Organizacija racunara

Hijerarhijska stranična tablica može smanjiti zauzeće glavne memorije delovima straničnih talbica procesa. Međutim, ako je lokalnost obraćanja procesa memoriji slabo izražena, aktivni ST-blokovi se često menjaju. Ovo povlači potrebu za čestom razmenom prethodno aktivnih ST-blokova i novih ST-blokova između glavne memorije i diska, što povećava premašenje operativnog sistema računara. Značajan nedostatak hijerarhijske organizacije stranične tablice je povećan broj obraćanja memoriji.

85. Jedinica za upravljanje memorijom

86. Ulazno – izlazni sistem računara U osnovne aktivnosti računara spada: unošenje programa i podataka radi obrade – ulazna aktivnost, izdavanje rezultata obrade – izlazna aktivnost.Ulazni i izlazni uređaji se često obuhvataju zajedničkim terminom periferni uređaji ili periferali.Često korišćeni ulazni uređaji su: tastatura, miš, skener, magnetni i optički disk, fleš memorija, mreža, senzori različitih tipova itd.A izlazni uređaji: monitori, grafički displeji, magnetni diskovi i trake, fleš memorije, štampači, mreža, itd.Za obavljanje U-I aktivnosti mora se obezbediti:1) adresiranje, odnosno izbor pojedinih U-I uređaja preko kojih će podaci bitiprenošeni,2) prenošenje podataka iz ili do izabranih uređaja,3) koordinacija sadejstva CP-a i U-I uređaja pri obavljanju U-I aktivnosti.U-I aktivnosti mogu biti naložene od strane CP-a ili zahtevane iz okruženja računara. Kada će CP naložiti U-I aktivnost i kom uređaju, određeno je programima koje CP izvršava, odnosno pojavljivanjem U-I instrukcija u ovim programima. Zahtevi iz okruženja nastaju pri pojavi nekog događaja kojeg ulazni uređaj registruje (npr. nastajanje nekog retkog događaja u okruženju, kao što je novo očitavanje vrednosti sa nekog senzora) ili promeni stanja nekog U-I uređaja.Radom perifernih uređaja upravljaju posebni sistemski programi u okviru operativnih sistema računara, poznati kao drajveri perifernih uređaja.U mnogim računarskim sistemima periferni uređaji su resursi deljivi između većeg broja programa.

57

Page 59: SKRIPTA - Organizacija racunara

87. Kontroleri (adapteri) U-I uredjaja Radom U-I uređaja upravljaju kontroleri ili adapteri U-I uređaja. Jedan kontroler U-I uređaja može upravljati radom jednog ili više U-I uređaja iste vrste.U okviru U-I aktivnosti mogu se prenositi pojedinačni podaci ili blokovi podataka (zapisi). Dužine blokova podataka određene su vrstom U-I uređaja, osobinama konkretnih U-I uređaja, ograničenjima koje nameće programski jezik itd.Celokupno komuniciranje CP-a sa kontrolerima U-I uređaja vrši se najčešće preko nekoliko registara u okviru kontrolera U-I uređaja, i to: registra statusa uređaja (kontrolera), koji svojim sadržajem kodira stanje u kome se uređaj (kontroler) nalazi (slobodan, zauzet, spreman, neispravan), prihvatnog registra uređaja (kontrolera), odnosno registra podatka u koji CP upućuje ili iz kojeg CP uzima prenošeni podatak, i upravljačkog registra kontrolera (kod programirljivih kontrolera).

88. Odvojeni U-I i U-I preslikan na memoriju Kod procesora se sreću dva nacina adresiranja U-I uređaja: odvojeni ulaz-izlaz iulaz-izlaz preslikan na memoriju.Odvojeni ulaz-izlaz zahteva poseban adresni prostor za U-I uređaje, odvojen od adresnog prostora memorije.U-I adresni prostor je mnogo manji od adresnog prostora memorije, pa zahteva znatno kraće adrese U-I uređaja.Procesori sa ovom koncepcijom adresiranja U-I u svom skupu instrukcija imaju posebne instrukcije za ulaz odnosno izlaz. Primeri takvih instrukcija su: IN Ri, AUP : prenos podatka iz ulaznog porta sa adresom AUP u registar Ri , OUT Ri, AIP - prenos podatka iz registra Ri u izlazni port sa adresom AIPKod procesora sa odvojenim U-I, adrese U-I portova i memorijske adrese običnokoriste iste adresne linije procesora.Da je na adresnim linijama procesora prisutna adresa U-I porta ili memorijske lokacije, procesor određuje stanjem posebnog upravljačkog signala, koji npr. vrednošću 1 ukazuje na memorijsku, a vrednošću 0 na U-I adresu.Kombinujući ovaj upravljački signal sa upravljačkim signalom koji određuje tip pristupa (čitanje ili upis), definiše se pristup memoriji ili portu u okviru tekuće instrukcije.Ulaz-izlaz preslikan na memoriju smešta U-I portove u memorijski adresni prostor.Ovo znači da se U-I portovima dodeljuje neko područje memorije, vrlo često na višem kraju adresnog prostora.Operacija ulaza vrši se instrukcijom Load, a operacija izlaza instrukcijom Store.Ograničenja u veličini adresnog prostora za U-I aktivnosti kod ovog rešenja praktično nema.Nedostaci ovog rešenja su: razlikovanje obraćanja memoriji i U-I uređajima samona osnovu adresa, i složenije dekodiranje U-I uređaja obzirom na duže adrese uodnosu na odvojeni ulaz-izlaz. Ovo rešenje primenjeno je u većini savremenih arhitektura procesora, pa i u MIPS32 arhitekturi. Kod procesora sa odvojenim U-I može se upotrebiti i U-I preslikan na memoriju.

89. Programom upravljani U-I Programom upravljani ulaz-izlaz koristi se za unošenje u računar ili izdavanje iz računara pojedinačnih podataka ili malih grupa podataka, uz dodatni uslov da hardver računara bude što jednostavniji.Pri programom upravljanom ulazu – izlazu procesor po izdavanju naloga za ulaz ili izlaz nastavlja da prati tok izvršenja svog naloga. To radi tako što učitava i proverava stanje uređaja zaposlenog njegovim nalogom.

58

Page 60: SKRIPTA - Organizacija racunara

Nedostaci:Kritičan deo aktivnosti procesora je neproduktivno čekanje da ulazni uređaj pripremi podatak ili da izlazni uređaj postane spreman da prihvati novi nalog od procesora. Sa stanovišta iskorišćenja procesora, ovaj način upravljanja ulazom-izlazom opravdan je samo u slučaju brzih uređaja, kada vreme čekanja procesora na odziv uređaja nije preterano veliko.

90. U-I korišćenjem prekida Čekanje procesora na završetak naložene ulazne ili izlazne operacije kod programom upravljanog ulaza – izlaza može se izbeći korišćenjem mehanizma prekida.Kao i kod programom upravljanog U-I, procesor izdaje nalog za obavljanje odgovarajuće operacije ulaza ili izlaza.Umesto da sada učitava i proverava status uređaja, procesor može da nastavi da obavlja instrukcije u okviru nekog drugog programa.1) Zahtev za prekid iz stanja spremanKada po prijemu naloga iz CPU-a ulazni uređaj pripremi podatak, pri prelasku u stanje spreman upućuje procesoru zahtev za prekid. Kada taj zahtev za prekid dođe na red za opsluživanje, procesor iz ulaznog uređaja preuzima pripremljeni podatak i nastavlja izvršenje programa u okviru koga se obavlja naložena ulazna operacija.2) Prekidi uz promenu konteksta:

U toku izvršenja procesa A, javilo se obraćanje disku. Ovde učestvuje kernel operativnog sistema koji organizuje prekid procesa A i prelazak na izvršenje procesa B. Paralelno sa izvršenjem procesa B ide i obraćanje disku. Kada se ono okonča, kontroler koji njime upravlja, generiše zahtev za prekid (angažuje se kernel). B se prekida, a A nastavlja sa izvršenjem.

59

Page 61: SKRIPTA - Organizacija racunara

91. U-I direktnim pristupom memoriji (DMA) Za prenošenje dužih blokova podataka između perifernih uređaja i memorije koristi se prenos direktnim pristupom memoriji (engl. Direct Memory Access, skr. DMA).Sam prenos podataka obavlja se bez učešća procesora, već direktno između memorije i perifernog uređaja sa pridruženim DMA kontrolerom.U toku prenosa podataka DMA kontroler preuzima ulogu procesora u pristupima memoriji – on dostavlja adrese lokacija kojima se pristupa i odgovarajuće upravljačke signale.Za obavljanje ove uloge DMA kontroler sadrži odgovarajuće hardverske elemente: adresni registar memorije, registar dužine bloka i upravljački registar.Osim njih sadrži i registar statusa i prihvatni registar, umesto koga može imati bafer za prihvatanje kraćih blokova podataka.

Koraci u DMA prenosu podataka:1) CPU puni adresni registar i registar dužine bloka DMA kontrolera početnim vrednostima. Adresni registar sadrži adresu početka područja u memoriji koje učestvuje u prenosu podataka sa perifernim uređajem. Registar dužine bloka sadrži broj reči / bajtova koje treba preneti u ili iz ovog područja memorije. 2) Kada je DMA kontroler spreman da prenosi podatke, on aktivira liniju DMA REQUEST u sistemskoj magistrali. CPU reaguje u sledećoj DMA prekidnoj tački tako što upravljanje adresnim linijama i linijama podataka u sistemskoj magistrali prepušta DMA kontroleru, obaveštavajući ga o tome signalom DMA ACKNOWLEDGE.3) DMA kontroler sada prenosi podatke direktno iz ili u glavnu memoriju. Posle prenosa svake reči / bajta adresni registar i registar dužine bloka se ažuriraju.4) Ako sadržaj registra dužine bloka još nije nula, a periferni uređaj nije spreman za prenos sledećeg dela bloka podataka, DMA kontroler vraća upravljanje sistemskom magistralom CPU deaktiviranjem linije DMA REQUEST. CP odgovara deaktiviranjem linije DMA ACKNOWLEDGE i preuzimanjem upravljanja sistemskom magistralom.5) Ako je sadržaj registra dužine bloka nula, DMA kontroler zahtevom za prekidobaveštava procesor da je naloženi prenos bloka podataka okončan. DMA kontroler vraća upravljanje sistemskom magistralom CP-u deaktiviranjem linije DMA REQUEST. CP odgovara deaktiviranjem linije DMA ACKNOWLEDGE i preuzimanjem upravljanja sistemskom magistralom.

Konflikti na magistrali

U toku prenosa podataka DMA pristupom javljaju se konflikti u pristupu memoriji između procesora i DMA kontrolera. Ti konflikti razrešavaju se tako da i procesor može, makar u smanjenom obimu, da se obraća memoriji.Korisnu ulogu u tome imaju keš memorije, koje smanjuju učestanost obraćanja i obim prenošenih podataka sa glavnom memorijom.

60

Page 62: SKRIPTA - Organizacija racunara

92. Magistrale (namena i podela) Magistrala je deljena komunikaciona veza koja se koristi za povezivanje dva ili više uređaja.Ključna karakteristika magistrale je da je ona deljivi prenosni medijum. Na magistralu je povezan veći broj uređaja, a podatak koji se predaje od strane jednog uređaja dostupan je za prijem svim ostalim uređajima koji su povezani na magistralu. U datom trenutku samo jedan uređaj može uspešno da vrši predaju.Prednosti magistrala: Prilagodljivost:

– lako dodavanje novih uređaja,– periferali su prenosivi između računara koji koriste iste standardne magistrale.

Niska cena:– jedinstveni skup žica deli se na različite načine.

Nedostaci magistrala: Kreira komunikaciono usko grlo

– propusnost magistrale može ograničiti propusnost U-I sistema. Maksimalna brzina magistrale ograničena je u velikoj meri:

– dužinom magistrale,– brojem uređaja na magistrali,– potrebom da se podrže različiti uređaji sa širokim rasponom latencija i brzina prenosa.

Globalno posmatrano, sistem magistrala predstavlja skup većeg broja magistrala koje se koriste za povezivanje različitih sistemskih elemenata u okviru računarskog sistema. Sistem magistrala čine magistrale koje su hijerarhijski organizovane po sledećim nivoima: Nivo ploča – na najnižem nivou je komponentno orijentisana magistrala definisana od strane CP-a i perifernih čipova. Obično se ova magistrala zove lokalna magistrala. Zadnja ploča obezbeđuje komunikaciju između elemenata sistema, na nivou ploča. Zadnja ploča je obično realizovana kao štampana ploča sa većim brojem identičnih konektora koji su paralelno povezani. Ova ploča je pasivna, jer ne sadrži komponente koje obavljaju druge aktivnosti.Varijanta aktivne zadnje ploče je matična ploča. Matična ploča, pored toga što obezbeđuje komunikaciju između nekih elemenata sistema na nivou ploča, nosi na sebi i mnoge komponente sistema, kao što su procesor, neki kontroleri u čipu, i drugi elementi računara. Nivo interfejsa – ovim tipovima magistrala ostvaruje se komunikacioni put između U/I uređaja (diskovi, štampači i dr.) i ostatka sistema. Ove magistrale obično povezuju nezavisne sisteme i predviđene su za rad na većim rastojanjima u odnosu na nivo zadnje ploče.Magistrala koja povezuje glavne komponenete (CPU, memorija, U/I) zove se sistemska magistrala. Sistemsku magistralu čini od 50 do 150 izdvojenih linija. Linije na magistrali se mogu svrstati u 3 funkcionalne grupe: adresne, linije za podatke i upravljačke linije. Magistrale se mogu podeliti na namenske i nenamenske. Namenske se koriste za obavljanje specifičnih funkcija. Tu spadaju magistrale za instrukcije, magistrale za podatke, U/I magistrale. Nenamenske magistrale se još zovu i deljive magistrale i koriste se da obave veći broj funkcija. Prema načinu sinhronizacije, magistrale delimo na sinhrone i asinhrone.

93. Arbitraža na magistrali (centralizovana, distribuirana) Uređaj koji se povezuje na magistralu može biti: gospodar (master) – može inicirati prenos podataka po magistrali i sluga (slave) – odaziva se gospodaru.S obzirom da je u jednom trenutku magistrala dodeljena samo jednom gospodaru, potrebno je ugraditi arbitražni mehanizam kojim se odlučuje koji će gospodar magistrale u narednom trenutku dobiti pravo upravljanja magistralom.Kada prenos podataka počne, uređaj koji predaje podatke zove se izvorište, a uređaj koji prima podatke odredište.Kada je funkcija arbitriranja skoncetrisana u jednom kontroleru magistrale, kažemo da je arbitraža centralizovana. Ako je funkcija arbitriranja raspodeljena između više potencijalnih gospodara magistrale, kažemo da je arbitraža decentralizovana (distribuirana).Centralizovana arbitraža: hardver je koncentrisan na jednom mestu. Može biti lociran u jednom od modula koji se povezuju na magistralu ili je izveden kao poseban hardver koji se zove CAL (centralized allocator).

61

Page 63: SKRIPTA - Organizacija racunara

Gospodar koji zahteva dodelu magistrale, predaje zahtev za dodelu CAL-u. CAL odlučuje, ako postoji veći broj zahteva, kojem će gospodaru dodeliti magistralu na osnovu politike dodele.Distribuirana arbitraža: hardver za dodelu magistrale je raspodeljen po potencijalnim gospodarima magistrale. Potencijalni gospodar magistrale koji zahteva upravljanje, izdaje zahtev aktiviranjem linija #AP prema distribuiranom bloku za dodelu (DAL –distributed allocator). DAL predaje #AP zahtev deljivim linijama REQUEST/GRANT. Svi ostali gospodari mogu isto da izdaju zahteve preko svojih #AP linija. Formira se zbirni #AP zahtev i svaki distribuirani arbitar poredi svoj zahtev sa zbirnim. Ako je njegov zahtev niži od zbirnih, znači da je njegov prioritet niži, tj. magistrala se dodeljuje drugom gospodaru (onom sa najvišim prioritetom).

94. Sinhronizacija pri prenosu podataka po magistrali Kada dva uređaja razmenjuju podatke, sistemsko rešenje treba da osigura da će u toku prenosa biti ostvarena sinhronizacija u radu obe jedinice. Prema načinu sinhronizacije uređaja kod prenosa podataka, magistrale možemo podeliti na: sinhrone, i asinhrone.Kod sinhronih magistrala prenos podataka je upravljan globalnim taktom koji se generiše od strane zajedničkog oscilatora. I pored toga što se prenos podataka kod ovih magistrala obavlja veoma brzo, osnovni nedostatak je što sve komponente, kod ispravnog prenosa, moraju da rade brzinom koja je diktirana od strane globalnog takta.Metod asinhronog prenosa podataka se češće primenjuje kod magistrala mikroračunarskih sistema. Suština prenosa sastoji se u tome što svaki uređaj, učesnik u prenosu, mora generisati "signale sporazumevanja" (handshaking) kojim se potvrđuje da je taj uređaj postavio važeće podatke na magistralu. Uređaj koji nije spreman da završi ciklus, unosi kašnjenje. Iako je ovaj način rada sporiji, on omogućuje povezivanje uređaja različitih brzina.

Handshaking protokol započinje odmah pošto izlazni uređaj aktivira signal ReadReq i dostavi adresu na linije magistrale podataka:1) Kada memorija uoči signal na ReadReq liniji, ona pročita adresu sa linija podataka i aktivira signal Ack da potvrdi da je primila zahtev.2) Izlazni uređaj uočava potvrdu sa Ack i deaktivira ReadReq i adresu sa linija podataka.3) Memorija uočava da je ReadReq neaktivan i deaktivira Ack da signalizira da je primetila povlačenje ReadReq signala.4) Ovaj korak počinje kada memorija ima spreman podatak. Ona dostavlja traženi podatak na linije podataka magistrale i aktivira signal DataRdy.5) Izlazni uređaj uočava signal DataRdy, preuzima podatak sa magistrale, i signalizira da je to uradio aktiviranjem Ack.6) Memorija uočava Ack signal, deaktivira DataRdy i skida podatak sa magistrale.7) Na kraju, pošto izlazni uređaj uoči deaktiviranje signala DataRdy, on deaktivira signal Ack, čime potvrđuje da je prenos podatka okončan.Od tog trenutka može započeti nova transakcija na magistrali.

95. Transakcije na magistrali

62

Page 64: SKRIPTA - Organizacija racunara

Kompletna sekvenca, od trenutka kada se magistrala zahteva do trenutka završetka prenosa podataka, zove se transakcija na magistrali.Da bi se izvršila transakcija, neophodno je da se obave sledeće operacije: zahtev arbitraža adresiranje i upravljanje prenos podataka detekcija i signalizacija greške.Kada se svi elementi transakcija obavljaju u neprekinutom nizu imamo nedeljene transakcije. Magistrale sa ovim tipom transakcija su posedovane magistrale. Kada se elementi transakcija obavljaju u dva odvojena podniza imamo razdeljene transakcije. Magistrale sa ovim tipom transakcija su magistrale sa razdeljenim transakcijama.

Stara pitanja koja su izbačena

63

Page 65: SKRIPTA - Organizacija racunara

Osnovni funkcionalni blokovi procesoraProcesor stalno ponavlja sledeće aktivnosti: pribavlja instrukciju iz memorije, dekodira je i pribavlja operande za njeno izvršenje, obavlja operaciju naloženu instrukcijom, proverava da li treba da opsluži eventualno pristigli zahtev za prekid, i ako treba priprema njegovo opsluživanje, inače se vraća na prvu aktivnost u ovom nizu aktivnosti. Blok pribavljanja instrukcija sadrži programski brojač PC, sabirač za inkrementiranje PC-a dužinom pribavljene instrukcije i logiku za punjenje PC-a odredištem grananja ili skoka po potrebi. Savremeni procesori sadrže i blok predviđanja grananja, koji radi u sadejstvu sa blokom pribavljanja instrukcija. Zadatak ovog bloka je da što ranije odredi novi sadržaj PC-a posle pribavljanja instrukcija uslovnog grananja, čime se poboljšavaju performanse procesora.Blok dekodiranja instrukcija uključuje registar instrukcija IR i logiku za dekodiranjae pribavljene instrukcije. On prepoznaje pribavljenu instrukciju, određuje načine adresiranja operanada navedenih u instrukciji i polja operanada ili njihovih primarnih adresa, i te adrese upućuje po potrebi polju celobrojnih ili FP registara ili bloku izračunavanja adresa.Pribavljena instrukcija, prisutna u registru instrukcija IR dostavlja se u upravljačkoj jedinici. Na osnovu nje, upravljčka jedinica generiše niz vremenski koordinisanih signala. Ovi signali dostavljaju se ostalim blokovima procesora radi upravljanja njihovim aktivnostima.Polje celobrojnih registara sadrži registre opšte namene i registre sa posebnom namenom. U ove druge spadaju neki adresni registri (pokazivač steka, bazni i indeksni registri itd.) i upravljački registri (registar koda uslova, registar statusa programa itd.). Zavisno od izvršavane instrukcije, sadržaji ovih registara dostavljaju se nekoj od celobrojnih ili FP operacionih jedinica, bloku izračunavanja adresa ili Load – Store jedinici.Polje FP registara sadrži registre za realne podatke u formatu sa pokretnom zapetom, i eventualno neke upravljačke registre vezane za obradu realnih podataka (npr. registar FP izuzetaka). Zavisno od izvršavane instrukcije, sadržaji ovih registara distavljaju se nekoj od FP operacionih jedinica ili Load – Store jedinici.Celobrojne operacione jedinice su aritmetičko – logička jedinica, množač i delitelj celobrojnih podataka. Ovde spada i jedinica za konverziju celobrojnih podataka u niska znakova i obrnuto. FP operacione jedinice su FP sabirač, FP množač, FP delitelj i eventualno i druge jedinice za izračunavanje kvadratnog korena i logaritamskih i trigonometrijskih funkcija. FP sabirač obično vrši i konverziju podataka iz celobrojnog u FP oblik i obrnto.Blok izračunavanja adresa sadrži sabirač potreban za izračunavanja adresa podataka u memoriji i instrukcija u slučajevima instrukcija skoka, grananja i poziva procedura. Izračunate adrese se dostvaljaju Load – Store jedinici ili bloku za prihvatanje instrukcija.Load – Store jedinica sadrži adresni registar memorije MAR, prihvatni registar memorije MDR i redove za privremeno čuvanje Load i Store operacija koj treba obaviti ili čije je obavljanje u toku ali još nije dovršeno. Naravno, u arhitekturama koje dopuštaju memorijske operande i u aritmetičko – logičkim instrukcijama, i ta obraćanja memoriji idu preko ovog bloka. Sprega sa sistemom sadrži memorijske elemente, logička kola i pojačavače koji omogućuju da se na procesor priključi veći broj komponenata u sastavu memorije, ulaznog i izlaznog sistema računara. Veza između procesora i ovih komponenata ostvaruje se preko spoljašnje i sistemske magistrale.

64

Page 66: SKRIPTA - Organizacija racunara

Na ovoj slici prikazana su tri bloka koja ne pripadaju centralnom procesoru računara, ali se u današnje vreme najčešće fabrikuju sa njim u istom čipu. To su blok upravljanja memorijom, keš memorija za instrukcije i keš memorija za podatke. Obe keš memorije su delovi memorijskog sistema računara, ali su pridružene procesoru da bi mu se omogućio brži rad. Blok upravljanja memorijom obavlja funkcije upravljanja hijerahijski organizovanom memorijom.Blokovi koji pripadaju procesoru mogu se podeliti u dve grupe: Jedna koja uključuje samo blok upravljačke jedinice i Druga koja sadrži sve ostale blokove, i ona obrazuje puteve podataka procsora (processor data path) ili aritmetički organ (kako je ranije nazivan). Dakle ova grupa sadrži sve registre opšte namene, adresne i upravljačke registre, aritmetičko – logičku jedinicu i sve prenosne puteve između ovih elemenata procesora.

Moguća rešenja instrukcija uslovnog grananja

Rešenje sa implicitnim registrom koda uslova

U ovom rešenju aktivnosti g1. i g2. obavljaju se odvojenim instrukcijama. Aktivnost g1. kao dodatnu aktivnost obavljaju aritmetičke, logičke i neke druge instrukcije, koristeći za to poseban hardver. Ishod provere upisuje se u određene indikatore jedinstvenog implicitno adresiranog Registra koda uslova.

Primer:ADD R1,R2,R3 /Izvršenje ove instrukcije utiče na stanje indikatora u Registru koda• uslova CCR (Z, S, C, O)/•BEQZ ime /if (Z==1) then PC←PC+4+ime else PC←PC+4/Ovo rešenje nameće sledeće ograničenje. Između instrukcija koja beleži ishod relacije, i instrukcije grananja koja koristi ovaj ishod, ne sme se naći druga instrukcija koja utiče na isti indikator Registra koda uslova.

Rešenje sa registrom uslova

I u ovom rešenju aktivnosti g1. i g2. obavljaju se odvojenim instrukcijama. Aktivnost g1. obavljaju za to namenjene posebne instrukcije. Ishod provere upisuju u neki od registara opšte namene, koji je eksplicitno adresiran.Primer:SLT Rk,Ri,Rj /opšti oblik ove instrukcije je Srel Rk,Ri,Rj sa dejstvom• if(Ri rel Rj) then Rk←1 else Rk←0;• /•BNEZ Rk,ime /if (Rk != 0) then PC←PC+4+ime else PC←PC+4/

65

Funkcionalne jedinice procesora sa pridodatim blokom upravljanja i keš memorijama za instrukcije i podatke

Page 67: SKRIPTA - Organizacija racunara

Pošto je krug registara za beleženje ishoda širi, registri se eksplicitno navode, nema ograničenja prisutnih kod prethodnog rešenja.

Naziv rešenja Kako se uslov testira Prednosti Nedostaci

Impicitni Registar koda uslova

(CCR)

Indikatori u CCR-u postavljaju se ALU

operacijama, uz moguće upravljanje programom

Ponekad postavljanje indikatora ne

zahteva dodatne troškove

Registar koda uslova povećava obim podatka o stanju programa. Kod uslova zahteva uređivanje

instrukcija, pošto on prenosi informaciju od neke ALU

instrukcije do instrukcije grananja

Registar uslovaTestiranje proizvoljnog

registra na rezultat poređenja.

Jednostavnost Koristi registar

Poređenje i grananje

Poređenje je deo grananja. Često su uslovi poređenja svedeni na par

relacija

Jedna umesto dve instrukcije za

grananje

Obim posla može biti preveliki za jednu instrukciju

Poređenje i grananje

U ovom rešenju aktivnosti g1. i g2. obavljaju se jednom instrukcijom, tako da i ovde nema ograničenja nevedenih za prvo rešenje. Primer:BEQ Ri,Rj,ime/if (Ri=Rj) then PC←PC+4+ime else PC←PC+4/

Obrada izuzetaka u MIPS arhitekturiZa podršku rukovanju izuzecima (to mogu biti izuzeci, prekidi i trapovi) MIPS arhitektura koristi grupu registara u okviru koprocesora CP0. Iz ove grupe registara, tri registra se koriste u svim izuzecima, dok se ostali registri koriste u specifičnim tipovima izuzetaka. Ti registri su: Exception Program Counter, Cause Register i Status Register. Njihove uloge u rukovanju registra su sledeće:Exception Program Counter (EPC), koji dozvoljava upis i čitanje, sadrži adresu instrukcije sa kojom će biti nastavljeno izvršenje prekinutog programa posle opsluživanja izuzetka. Za sinhrone izuzetke, EPC sadrži virtuenu adresu instrukcije koja je izazvala izuzetak. Ali, kada je izuzetak izazvala instrukcija iz slota kašnjenja grananja, EPC sadrži virtuelnu adresu grananja ili skoka čiji je to slot kašnjenja. U tom slučaju, u Cause registru postavlja se bit „Branch Delay“.Status Register (koji dozvoljava upis i čitanje) sadrži informacije o načinu rada, dozvolama i statusu elementa procesora. Za rukovanje izuzecima značajni su: Indikator dozvole prekida (Interrupt Enable), Maska prekida (Interrupt Mask), polje širine 8 bitova, i Kod načina rada procesora.Brisanjem indikatora IE generalno se zabranjuju prekidi, a postavljanjem ovog indikatora dozvoljavaju se prekidi koji nisu maskirani, pri čemu se dozvola/zabrana maskirljivih prekida vrši preko odgovarajućih bitova maske prekida. Vrednošću 0 ovog bita prekid se zabranjuje, a vrednošću 1 se dozvoljava. Kod načina rada procesora je polje širine 2 bita koje sadrži kod tekućeg načina rada: Kernel, Supervisor ili User.Cause Register, koji dozvoljava upis i čitanje, sadrži informacije o uzroku poslednjeg izuzetka. Na uzrok izuzetka ukazuje 5-bitni kod uzroka izuzetka. Polje nerazrešenih prekida IP (Interrupt Pending), dužine 8 bitova, sadrži prispele a još neopslužene zahteve za prekid i 8 mogućih izvora prekida. Indikator BR (Branch Delay) vrednošću 1 ukazuje da je izuzetak izazvala instrukcija u slotu kašnjenja grananja ili skoka.Procesor prima izuzetke iz više izvora, uključujući promašaje u baferu za prevođenje adresa (TLB), premašenja pri aritmetičkim operacijama, U-I prekide i sistemske pozive. Svim izuzecima su dodeljeni prioriteti. Izuzeci prikazani po redosledu opadajućih prioriteta su: Reset (najviši prioritet), Nemaskirljivi prekidi, Izuzeci pri obavljanju instrukcija, Premašenje pri celobrojnoj artmetici, trapovi, sistemski pozivi, prekidne tačke, rezervisane instrukcije i izuzeci pri radu sa pokertnom zapetom,

66

Page 68: SKRIPTA - Organizacija racunara

Izuzeci pri obraćanju operandu u memoriji, i Prekidi (najniži prioritet).Ako se u toku ciklusa instrukcija javi više izuzetaka, saopštava se samo izuzetak najvišeg prioriteta.

Upravljanje jednotaktnim procesoromPribavljene instrukcije se pri dekodoranju raščlanjuju na odgovarajuća polja, čiji sadržaji usmeravaju izvršenje pribavljene instrukcije. U R formatu instrukcija sadržaj polja func dopunjuje kod operacije instrukcije. Upravljačke signale, koji su na slikama puteva podataka i jedinica pribavljanja instrukcija, generiše upravljačka jedinica. Na slici je prikazana upravljačka jedinica u sadejstu puteva podataka.

Jedinica za pribavljanje instrukcija, iako je deo puteva podataka, ovde je prikazana da bi bilo jasnije na osnovu kojih elemenata upravljačka jedinica generiše upravljačke signale. Za razmatrani podskup instrukcija u MIPS arhitekturi, kodovi operacija i vrednosti upravljačkih signala dati su u tabeli. Upravlački signali RegWr i MemWr jediničnim vrednostima nalažu upise u polje registara i memoriju respekivno. Branch i Jump maju jedinične vrednosti samo pri izvršenju istoimenih funkcija. RegDst, ALUSrc i MemtoReg vrednostima 0 i 1 biraju ulaze 0 ili 1 odgovarajućih multipleksera. Upravljački signal ExpOp vrednostima 0 i 1 upravlja radom proširivača na sledeći način:ExtOp: (0 – proširenje nulom, 1 – znakovno proširenje).U poslednjoj vsti ove tabele navedene su operacije koje ALU treba da izvrši u svakoj instrukciji. U instrukcijama BEQ i SUBU javljaju se operacije oduzimanja, koje se međusobno razlikuju, jer se odnose na označene i neoznačene podatke respektivno.

funct 10 0000 10 0011 Nevažnoop 00 0000 00 0000 00 1100 10 0011 10 1011 00 0100 00 0010

instrukcija ADD SUBU ANDI LW SW BEQ JRegDst 1 1 0 0 X X XRegWr 1 1 1 1 0 0 0ExtOp X X 0 1 1 X X

ALUSrc 0 0 1 1 1 0 XMemWr 0 0 0 0 1 0 0

MemtoReg 0 0 0 1 X X XJump 0 0 0 0 0 0 1

Branch 0 0 0 0 0 1 0ALUctr[1:0] add sub2 and add add sub1 xx

Dok se instrukcije I i J formata dekodiraju samo na osnovu sadržaja op polja, za dekodiranje instrukcija R formata (koje se prepoznaju po kodu operacije „00 0000“) neophodno je uključiti i polje funct. To vodi koncepciji lokalnog (odloženog) dekodiranja instrukcija R formata. Naime, ove instrukcije se dekodiraju tek kada se ustanovi da se radi o instrukciji R formata.

Adresiranje keš memorija fizičkim i virtuelnim adresamaNa slici su prikazani procesor, MMU, keš i glavna memorija u dve konfiguracije koje se razlikuju po tome da li se keš adresira fizičkim adresama (gore) ili virtuelnim adresama (dole).

67

Upravljačka jedinica u sklopu jednotaktnog procesora

Page 69: SKRIPTA - Organizacija racunara

Keš adresiran fizičkim adresama (fizički keš) dolazi u tom lancu iza MMU-a. Veliki nedostatak ovog rešenja je da se obraćanje kešu može započeti tek po okončanju prevođenja virtuelne adrese. U ovom rešenju nema nikakvih ograničenja, a povoljno je i sa stanovišta eventualne direktne komunikacije keša i U/I sistema računara.Adresiranje keša može se započeti virtuelnom adresom, a dovršiti prevedenom fizičkom adresom (virtuelni keš). U tom slučaju se pomeraj u virtuelnoj adresi, koji se neizmenjen prenosi u fizičku adresu, koristi za adresiranje skupa keš blokova i čitanje njihovih etiketa. Po prevođenju virtuelne u fizičku adresu, ona se može uporediti sa pročitanim etiketama blokova u adresiranom skupu keš blokova. Ako se prevođenje adresa obavi sa pogotkom TLB-a, nema zastoja u pristupu kešu. U suprotnom, dolazi do zastoja u pristupu kešu i u radu procesora. Ovde postoji sledeće ograničenje. Ako je l dužina polja pomeraja u virtuelnoj adresi, a r i b su dužine polja indeksa i adrese reči u bloku kod keš memorije, onda za ovakvo adresiranje keša mora biti ispunjen uslov

iz ovoga sledi. je veličina stranice podataka, a . Onda je . Ako obe strane

nejednakosti pomnožimo sa A, dobićemo . (A, S i B su asocijativnost, broj skupova keš blokova i dužina blokova keš memorije respektivno. C je kapacitet keša u bajtovima.) Sledi ograničenje

.Postoje i druga, složenija rešenja za virtuelni keš koja ne podležu ovom ograničenju. Prednost virtuelnog keša je pristup bez čekanja na okončanje prevođenja virtuelne adrese. Nedostatak je nemogućnost direktne komunikacije keša i U/I sistema.

68