Professional Documents
Culture Documents
Flynn-ova klasifikacija kategorizuje računarske sisteme na osnovu odnosa instrukcionog toka i toka
podataka na : SISD (Single Instruction Single Data), SIMD (Single Intruction Multiple Data) MISD,
MIMD.
Konzistentnu klasifikaciju daje Handler na bazi razlikovanja 3 nivoa procesranja: nivo programske
kontrolne jedinice, nivo aritmetičko-logičke jediice i nivo elementarnih logičkih sklopova.
Koncept protočne obrade se sastoji u tome da se neka operacija razdijeli u sekvencijalni niz
podoperacija, pri čemu se svaka podoperacija realizuje u specijalizovanom hardverskom sklopu
(protočnom stepenu). Niz ovih hardverskih segmenata čini protočni sistem. Kroz protočni sistem se
propušta tok podataka. Svaki podatak se parcijalno obrađuje u svakom protočnom stepenu, a
procesiranje podataka (kompletiranje operacije) se završava po izlasku procesiranog podatka iz
protočnog sistema Sukcesivni podaci se obrađuju tako da se pojedine faze njihove obrade preklapaju u
različitim protočnim stepenima (Sl. 1). Protočni stepeni mogu implementirati jednu ili više funkcija.
ULAZ IZLAZ
Program koji računar izvodi, nalazi se u glavnoj memoriji računara. Program u glavnoj memoriji može
biti trajno upisan (u memoriju sa trajnim sadržajem ROM-EPROM), ili se puni u glavnu memoriju
(RAM) sa sekundarne memorije (koja je takođe memorija sa trajnim sadržajem), sistemskim
programom. Prva varijanta je karakteristična za specijalizovane računare za upravljanje procesima koji
rade u otežanim eksploatacionim uslovima, dok je druga varijanta karakteristična za računare opše
namjene.
Kontrolna jedinica dobavlja instrukcije iz memorije, dekodira ih i generiše niz upravljačkih signala u
pravom trenutku i u korektnoj sekvenci kojima se obezbjeđuje izvršenje operacije specifikovane
instrukcionim kodom u izvršnoj jedinici procesora (Sl. 3.3). Npr. za izvođenje instrukcije za promjenu
znaka (komplementiranje do 2) sadržaja registra Rx: (Rx) ←¬ (Rx),
upravljačka jedinica generiše signale kojima se:
* sadržaj registra Rx dovodi na ulaz aritmetičko – logičke jedinice (ALU),
* izvodi promjena znaka (komplementiranje do 2) u ALU,
* rezultat upisuje nazad u registar Rx.
S obzirom da se mnogi rezultati izvršenja instrukcija koriste u kasnijoj fazi kao operandi (podaci)
potrebno ih je memorisati. Registri CPU-a mogu čuvati ove međurezultate, ali je broj registara u
procesoru mali a instrukcije za svoje izvršenje često zahtijevaju operande u registrima. Zbog
navedenog, pored instrukcija, u glavnoj memoriji se nalaze i podaci sa kojima program operiše u toku
svoga izvođenja. Za trajno čuvanje podataka i programa koristi se jeftinija sekundarna memorija
(magnetni/optički diskovi, magnetne trake). Magnetni diskovi se u određenim slučajevima mogu
koristiti i za privremeno smještanje dijelova programa/podataka u toku izvođenja, kada kapacitet
glavne memorije nije dovoljan. Procesor ne može direktno dobavljati instrukcije niti podatke iz
sekundarne memorije nego se to realizuje preko glavne memorije.
Osnovna funkcija CPJ je da izršava program smješten u glavnoj memoriji. Osnovni funkcionalni
blokovi CPJ su upravljačka jedinica i izvršna jedinica . Upravljačka jedinica vrši pribavljanje
instrukcija iz memorije, njihovo dekodiranje i generisanje upravljačkih signala za izvršnu jedinicu
(pribavljanje podataka i instrukcija iz memorije se može realizovati i posebnom funkcionalnom
jedinicom). Izvršna jedinica izvršava operacije predviđene datom instrukcijom. Podaci u okviru CPU
cirkulišu jednom ili više skupina linija – internih magistrala.
REGISTRI
Registri se u procesoru koriste za prihvat i čuvanje rezultata nakon izvršenja operacija u funkcionalnim
jedinicama procesora, za prihvat podataka iz memorije, te za transfer podataka/međurezultata iz
procesora u memoriju.
Između bitova registara može postojati određena logika, koja može vršiti određene operacije između
susjednih bitova registra (npr. kopiranje sadržaja prethodnog/narednog bita u tekući bit registra, čime se
ostvaruje pomjeranje sadržaja u registru, odbrojavanje na više, na niže itd.).
Skup registara CPJ, čije stanje nakon izvršenja neke instrukcije može imati uticaja na izvršenje
slijedeće instrukcije naziva se programski model procesora.
MAR i MDR su interni registri, i ne pripadaju programskom modelu procesora. S obzirom da stanje
ovih registara može imati uticaj na izvršenje slijedeće instrukcije, programski model se mora sačuvati u
slučaju suspenzije izvršenja programa (zbog prekida npr.), i restaurirati nakon završetka suspenzije i
prije nastavka izvođenja suspendovanog programa.
Ostali registri CPJ se mogu svrstati u grupu internih registara.
* Programski brojač - Neposredno prije početka pribavljanja i izvršenja instrukcije, ovaj registar
sadrži memorijsku adresu instrukcije koja treba da se izvrši.
* Registri opšte namjene - Ovi registri se generalno mogu referencirati u svim instrukcijama koje
koriste registre: kako za speifikaciju operanada tako i za specifikaciju adresa. Ipak, u praksi obično
postoje ograničenja na generalnost primjene ovih registara.
* Registri za podatke - Ovi registri mogu prihvatati podatke i njihov sadržaj se može koristiti kao
operandi u operacijama specifikovanim instrukcijama. Ovi registri se ne mogu koristiti za specifikaciju
adrese.
* Segmentni registri
* Indeksni registri
* Bazni registri
* Pokazivač steka
* Statusni registar - Ovaj registar sadrži markere (flags, condition codes), koji se postavlja se obično
ju za indikaciju rezultata prethodne operacije. Npr. nakon izvršenja neke aritmetičke operacije rezultat
može biti pozitivan, negativan, nula, može se desiti prenos (carry) ili preljev/premašaj opsega.
Interni registri
Interni regstri su registri koje procesor interno koristi za privremeno smještanje i baferovanje podataka
u procesu pribavljanja i izvršenja instrukcije. Stanje ovih registara nakon izvršenja neke instrukcije ne
utiče na izvršenje slijedeće instrukcije. Npr. MAR (memory address register) se koristi postavljanje
memorijske adrese sa koje se vrši očitavanje podatka/instrukcije, odnosno na koju se vrši upis podatka.
Nakon što se adresa (generisana generatorom adresa) postavi u MAR, transfer podatka između
procesora i memorije se vrši aktiviranjem upravljačkih signala za čitanje/ upis memorije (Mem_Read,
Mem_Write). Ukoliko se vrši upis u memoriju, prethodno se podatak mora postaviti u MDR (memory
data register). Nakon čitanja iz memorije, podatak se takođe prvo smješta u MDR, a zatim se
prosljeđuje u registar ili ulaz ALU.
Interne magistrale
Internim magistralama se prenose podaci, adrese i upravljački signali u okviru centralne procesne
jedinice.
UPRAVLJAČKA JEDINICA
Upravljačka jedinica generiše signale za upravljanje svim aktivnostima u okviru CPJ, kontrolom
upravljačke jedinice se vrši dobavljanje instrukcije iz memorije, njeno dekodovanje i identifikacija
operacije koju je potrebno izvršiti, identifikacija i prenos operanada od izvorišta do funkcionalnih
jedinica gdje se zahtijevana operacija izvodi, te vraćanje rezultata na odredište. Ovaj proces se pod
kontrolom upravljačke jedinice ponavlja pri izvođenju svake slijedeće instrukcije. Dakle, upravljačka
jedinica djeluje kao 'komandni centar' iz kojeg se upravlja radom ostalih jedinica sistema, a u svrhu
izvršenja niza mašinskih instrukcija – programa čime se realizuje željena funkcija - algoritam.
Izvođenje instrukcija
Izvođenje instrukcija se realizuje tako što upravljačka jedinica generiše niz upravljačkih signala u
pravo vrijeme i u korektnoj sekvenci, koji upravljaju radom izvršne jedinice procesora.
Prilikom izvođenja instrukcije procesor prolazi kroz niz internih stanja. Na osnovu tekućeg stanja i
skupa ulaznih signala, generišu se izlazni signali i procesor prelazi u novo stanje. Dio generisanih
izlaza se koristi kao ulazni signali sljedećeg stanja. Logika rada, može se predstaviti tabelom stanja,
kojom se opisuje prelazi procesora kroz interna stanja.
Problem sa realizacijom upravljačke jedinice upravljane na bazi tabele stanja je u veličini tabele, zbog
velikog broja mogućih stanja i velikog broja stanja ulaznih signala.
Kod ovog koncepta upravljačkih jedinica, polazi se od dijagrama toka rada upravljačke jedinice. Za
reprezentaciju n stanja sistema koristi se n-bistabilnih elemenata jedan element po stanju. U datom
trenutku aktivan je samo jedan bistabilni element i taj ukazuje na tekuće stanje. Prelaz u novo stanje se
može predstaviti podskupom osnovnih koncepata dijagrama toka, pri čemu se svaki od ovih koncepata
implementira odgovarajućim upravljačkim kolom
Nedostatak ove metode je u velikom broju flip-flopova koji se koriste za reprezentaciju stanja sistema,
odnosno elemenata za kašnjenje. Sličan koncept realizacije je koncept zasnovan na brojačkoj sekvenci.
Metoda brojačke sekvence
Upravljačka jedinica ovog tipa pretpostavlja izvršenje mašinske instrukcije u k koraka. U i-tom koraku
aktivira se neki skup upravljačkih linija korištenjem odnosnog faznog impulsa Φi. Fazni impulsi Φ (i =
1, ..., k) generišu se kolom 'brojač sekvenci'. Sukcesivni impulsi na izlazu brojača sekvenci su
vremenski pomjereni za vrijeme trajanja impulsa
Mikroinstrukcije sadrže skup mikrokomandi koje kontrolišu izvršenje skupa mikrooperacija u toku
mikroinstrukcionog ciklusa. Ukoliko se svakom mikroinstrukcijom kotroliše izvršenje samo jedne
mikrooperacije, onda se radi o vertikalnim mikroinstrukcijama, a ako se jednom mikroinstrukcijom
može specifikovati izvršenje više mikrooperacija, onda se radi o horizontalnim mikroinstrukcijama.
Prednost vertikalnih mikroinstrukcija je u:
• maksimalnom iskorištenju mikroinstrukcione riječi, jer se specifikuje samo
operacija koja se izvodi,
• mikroprogramiranje je jednostavno zbog jednostavnosti formata mikroinstrukcija.
Ukoliko se u mikroprogramskoj memoriji nalazi veliki broj mikroinstrukcija koje se ponavljaju onda se
može primijeniti koncept nanoprogramiranja. Kod ovog koncepta, konvencionalna mikroprogramska
memorija se zamjenjuje mikroprogramskom memorijom od n riječi. Svaka riječ sadrži samo adresu
mikroinstrukcije u nanomemoriji. Na ovaj način se smanjuje zahtjev za ukupan kapacitet memorije
mikroprograma
ULAZNO/IZLAZNI PODSISTEM
Princip povezivanja periferijskih jedinica i računara se vrši posredstvom U/I interfejsa. Kao i
memorijska sabirnica i U/I sabirnica sadrži adresne linije, linije podataka, i kontrolne linije. Adresne
linije služe za selekciju registara (portova) preko kojih se odvija komunikacija sa periferijskim
jedinicama, a preko linija podataka se vrši prenos informacija između periferija i računara. Kontrolnim
linijama se prenose kontrolne i statusne informacije i vrši sinhronizacija prenosa. Broj adresnih linija
kao i broj linija podataka ne moraju da korespondiraju broju odnosnih linija na memorijskoj sabirnici.
U/I interfejs
U/I interfejs kontroliše rad periferijskih jedinica u skladu sa naredbama procesora računara, i po potrebi
vrši konverziju podataka iz jednog formata u drugi.
U/I portovi
Periferijski interfej sadrži skup registara – U/I portova kojima CPU može da pristupa i preko kojih CPU
komunicira sa interfejsom.
Funkcije portova mogu biti:
• Baferovanje podataka ka/iz memorije,
• Čuvanje informacije o statusu uređaja sa kojim se komunicira,
• Registrovanje komandi CPU –a upućenih U/I interfejsu.
Skup portova predstavlja U/I programski model
Za selekciju U/I uređaja i transfer podataka ka perifernim uređajima (i obrnuto), procesor može koristiti
dva načina. Jedan je korištenjem specijalnih U/I instrukcija procesora (izolirani U/I), dok se drugi
realizuje korištenjem instrukcija za izmjenu podataka sa memorijom (memorijsko – mapirani U/I).
IN / OUT instrukcije izvršavaju transfer podataka slično memorijskim instrukcijama LD / ST, izuzev da
ne adresiraju memoriju nego U/I port. Pri izvođenju memorijskih instrukcija procesor aktivira signal
M/IO za selekciju memorije (logičko 1).
Kod memorijski – mapiranog U/I, I/O portovima se pristupa korištenjem memorijskih instrukcija.
Jedan dio memorijskog adresnog prostora je pridjeljen za adresiranje U/I portova.
Ako su U/I operacije u potpunosti kontrolisane od strane CPU-a onda se ovakav tip transfera naziva
programirani U/I prenos.
Prekidi
Prekidi su događaji koji uzrokuju prekid izvršavanja normalnog toka programske sekvence. Ovi
događaji mogu biti različiti, a dijele se na softverske (generisane programom) i hardverske (generisane
hardverskim sklopovima/uređajima).
Prekid proizilazi iz višeg prioriteta servisiranja događaja koji uzrokuje prekid, u odnosu na prioritet
izvršavanja osnovnog programa. Servisiranje se realizuje aktiviranjem prekidne rutine (interrupt
service routine) koja treba da izvede sve potrebne akcije koje zahtijeva pojava tog događaja. Nakon
servisiranja događaja prekida programska sekvenca se vraća na tačku prekida, nakon čega se nastavlja
izvođenje osnovnog programa.
Određeni događaji najvišeg prioriteta uvijek uzrokuju prekid (npr. POWER FAIL, MACHINE
MULFUNCTION, ALARM, DIV BY ZERO, …). Maskirani prekidi se poslužuju samo ako procesor
prethodno postavi bitove dozvole prekida u statusnoj riječi procesora za odnosne događaje.
Procesor može prekinuti tekuću sekvencu kontrolnog toka samo između individualnih mašinskih
instrukcija. Razlog tome je to što program čije se izvršenje prekida, treba da nastavi rad od tačke
prekida nakon servisiranja događaja koji ga je generisao. Za to je potrebno čuvanje stanja procesora
(konteksta) u trenutku prekida, i restauracija tog stanja nakon servisiranja prekida. Pošto je za
izvođenje instrukcije osnovnog programa iza tačke prekida bitan samo kontekst programskog modela
nakon izvođenja prethodne instrukcije, onda se prekidi dozvoljavaju samo nakon kompletiranja
izvršenja jedne instrukcije a prije početka izvršenja druge.
Dakle, proces izvršenje jedne instrukcije bi se mogao opisati sekvencom:
CheckForInterrupt sekvenca utvrđuje postojanje zahtjeva za prekid, odnosno događaja koji zahtijevaju
posluživanje.
Automatsko čuvanje (dijela) programskog modela procesora, u procesu posluživanja prekida, obuhvata
obavezno programski brojač i statusnu riječ procesora. Ukoliko je broj registara procesora mali, onda
se najčešće pohranjuje kompletan programski model, a ukoliko je broj registara veliki, onda se zadatak
čuvanja/restauracije njihovog stanja realizuje u okviru ISR. Promjena stanja procesora (PC-a, registara
i statusne riječi) pri ulasku u servisnu rutinu i restauracija sačuvanog stanja pri povratku iz servisne
rutine naziva se promjena konteksta procesora.
Najjednostavniji slučaj realizacije U/I komunikacije prekidnim mehanizmom je da svaka periferija ima
svoju prekidnu liniju. Svaka linija kojom se zahtijeva prekid ima obično fiksan prioritet. Za svaku
prekidnu liniju definisana je specifična adresa na koju se preusmjerava programska sekvenca u slučaju
događaja prekida (adresa ISR).
U okviru interne CheckForInterrupt (mikroprogramske) sekvence procesora se:
• utvrđuje zahtjev za prekid najvišeg prioriteta u IR,
• ukoliko je prekid tog nivoa dozvoljen, onda se ulazi u sekvencu posluživanja prekida (pohranjivanje
stanja i ulazak u ISR). Adresa ISR je određena zahtjevom INTRi koji se poslužuje.
Identifikacija povezivanjem
Kada se desi prekid uzrokovan zahtjevom za prekid INTRi na određenoj liniji, ulazi se u proces
posluživanja prekida aktiviranjem odgovarajuće ISR-e. Pri ulasku u ISRi nije 54 poznat izvor prekida,
jer je više U/I interfejsa vezano na istu liniju INTRi. Da bi se utvrdio izvor zahtjeva, odnosna ISRi
treba da ispituje status svakog interfejsa vezanog na INTRi liniju. Prvi interfejs za koji se utvrdi da je
postavio zahtjev (što se utvrđuje ispitivanjem statusnih portova interfejsa) opslužuje se u ISRi.
Ova varijanta je pogodna ako je mala vjerovatnoća da dva interfejsa istovremeno traže zahtjev za
prekid.
Lančanje i vektorsko prekidanje
Kod ove tehnike i dalje je više U/I interfejsa vezano na jednu INTRi liniju – zahtjev za prekid.
Identifikacija U/I interfejsa koji je zahtijevao prekid i aktivacija rutine za posluživanje odnosnog
interfejsa se realizuje hardverski. Da bi se aktivirala odnosna ISR rutina interfejsa koji je postavio
zahtjev za prekid, odnosni interfejs postavlja na linije podataka prekidni vektor (odnosno identifikator
na osnovu kojeg procesor identifikuje ISR). Da bi samo jedan uređaj (od više njih, koji su eventualno
postavili istovremeno zahtjeve za prekid) postavio prekidni vektor na linije podataka, koristi se
lančanje.
Da bi DMA interfejs izvršio prenos podataka ka memoriji, on standardno postavlja procesoru zahtjev
za prekid INTR (kojim indicira spremnost za prijem/predaju podataka. Podaci se prenose u blokovima).
Procesor postavlja parametre prenosa: adresu početka memorijskog bloka, broj bloka diska, kao i broj
bajta koji se prenosi, te izdaje komandu za prenos koja sadrži i informaciju o smjeru prenosa.
DMA interfejs treba da dobije pravo upravljanja magistralom u toku transfera podataka ka/iz memorije
Zahtjev za upravljanje magistralom DMA saopštava procesoru preko linije BR (bus request), a
odobrenje od procesora dobija kada procesor postavi signal BG (bus grant).
Prije predavanja magistrale DMA interfejsu, procesor treba da završi tekuće korištenje magistrale
(tekući aktivni ciklus magistrale) i da postavi svoje izlaze na magistralu u neaktivno stanje (stanje
visoke impedanse). Ovo procesor može da uradi u više tačaka ciklusa mašinske instrukcije (npr. iza
faze pribavljanja, faze dekodiranja instrukcije, pribavljanja operanda itd).
Postoji nekoliko varijanti DMA prenosa sa stanovišta dužine kontrole nad magistralom:
Krađa ciklusa: DMA kontroliše sabirnicu prilikom prenoa podataka i kada CPU ne koristi magistralu
Standardni DMA prenos: Kod ove varijante DMA interfejs drži kontrolu nad sabirnicom za vrijeme
prenosa cijelog bloka podataka.
Po trećoj varijanti DMA kontroler koristi magistralu u mašinskim ciklusima u kojima je ne
koristi CPU.
HAZARDI KOD POTOČNE OBRADE
Hazard je okolnost koja sprečava da funkcionalna jedinica izvršava instrukciju maksimalnom brzinom.
Hazardi se mogu javiti zbog:
• zavisnosti po podacima između instrukcija
• konflikata u korištenju zajedničkih resursa pri istovremenom izvođenju različitih instrukcija
(strukturni hazardi)
• promjene instrukcionog toka (uzrokovan instrukcijama grananja i drugim instrukcijama koje
mijenjaju kontrolni tok - upravljački hazardi).
Hazardi uzrokuju da se rad cijelog protočnog sistema ili njegovog dijela privremeno zaustavi, što
uzrokuje degradaciju radnih performansi. Obično, kada se zaustavi izvršenje neke instrukcije u
protočnom stepenu, onda se zaustavlja izvršenje i svih drugih instrukcija u protočnom sistemu koje
slijede iza zaustavljene instrukcije dok se produžava izvršenje instrukcija koje su u protočnom sistemu
ispred zaustavljene instrukcije. Ovo znači da se u slučaju pojave zastoja (hazarda) u nekom protočnom
stepenu zaustavlja i dalje pribavljanje instrukcija.
U cilju smanjenja broja hazarda koriste se različiti postupci koji se mogu podijeliti na statičke i
dinamičke. Statičke (softverske) tehnike su postupci koji se primijenjuju prije samog izvođenja,
odnosno postupci u fazi prevođenja programa. Ove tehnike se zasnivaju na identifikaciji karakteristika
programa (prije svega zavisnosti po podacima između instrukcija) i potencijalnih hazarda koji se
nastoje eliminisati preuređenjem programskog kôda. Dinamičke tehnike se baziraju na preuređenju
redoslijeda izvođenja instrukcija u toku samog izvršenja, korišćenjem dodatnih hardverskih sklopova
na samoj CPU.
Ovaj tip hazarda se javlja kada dolazi do konflikta u korištenju hardverskih resursa procesora.
Upravljački hazardi
Izvršavanje instrukcija grananja posjeduje određene specifičnosti koje mogu uticati na pojavu zastoja u
protočnom sistemu a to su:
• Instrukcija koja se izvodi nakon instrukcije grananja zavisi od rezultata izvršenja same instrukcije
grananja,
• Operand na osnovu kojeg se procjenjuje uslov grananja može zavisiti od neke ranije instrukcije,
• Ako se grananje obavlja, pribavljanje i izvršenje naredne instrukcije ne može početi sve dok se ne
sračuna BTA (branch transfer addresss),
• Sračunavanje BTA može zavisiti od neke ranije instrukcije.
Zakašnjeno grananje
Umjesto da se u slučaju grananja prazne sve instrukcije u protočnom sistemu između instrukcije
grananja i mete , kod ove tehnike se nastavlja sa izvršenjem jednog broja ( b ) instrukcija iza instrukcije
grananja bez obzira na to da li je grananje izvršeno ili ne.
Instrukcije koje se umeću u slot kašnjenja mogu biti:
• Instrukcije ispred instrukcije grananja,
• Instrukcije sa puta gdje se grananje obavlja,
• Instrukcije sa puta gdje se grananje ne obavlja.
Prilikom umetanja instrukcija potrebno je sačuvati originalne relacije zavisnosti po podacima između
instrukcija i obezbijediti da modifikovani program produkuje isti rezultat kao originalni program.
Preuređenje programske sekvence u cilju popune slota kašnjenja je najčešće zadatak programskog
prevodioca.Suštinski, postoje tri mogućnosti:
1. Instrukcije u slotu kašnjenja se uvijek izvode,
2. Protočni sistem se prazni (poništavaju se instrukcije u slotu kašnjenja), ako se grananje ne obavlja,
3. Protočni sistem se prazni (poništavaju se instrukcije u slotu kašnjenja), ako se grananje obavlja.
Predviđanje grananja
Predikacija
Informacije smještene u hijerarhijski organizovanom memorisjkom sistemu (M1, M2, …, Mn) imaju tri
karakteristične osobine: inkluziju (uključenost), koherentnost i lokalnost. Skup svih adresibilnih riječi u
Mn čini virtuelni adresni prostor računara.
Inkluzija
Koherentnost
Svojstvo koherentnosti zahtijeva da informacija na nekom nivou, ima konzistentne (identične) kopije
na slijedećim - višim nivoima. Održavanje koherentnosti se može realizovati slijedećim strategijama:
− Upis odmah ( write through - WT),
− Odgođeni upis ( write back - WB).
WT strategija ažurira odgovarajuću kopiju u Mi+1, čim je došlo do ažuriranja neke riječi u Mi. WB
metod odgađa ažuriranje informacije u Mi+1, sve do momenta dok se odnosna informacija ne uklanja
iz Mi.
Lokalnost
Performanse memorijskog sistema zavise od efektivnog vremena pristupa (effective access time) Teff
bilo kom nivou u memorijskoj hijerarhiji, i od frekvencije pristupa tim nivoima.
Stopa pogađanja (hit ratio) hi je vjerovatnoća da je zahtijevana informacija raspoloživa u Mi. Stopa
promašaja (miss ratio) se definiše kao 1- hi.
Frekvencija pristupa (access frequency) nivou Mi se definiše kao: fi = (1- h1) (1- h2) … (1- hi-1) hi.
Efektivno vrijeme pristupa se definiše kao:
gdje su t1, t2, …, tn vremenski gubici (cijena u vremenskim jedinicama) koja se mora platiti za
pristupanje slijedećem višem nivou u memorijskoj hijerarhiji. Vrijeme pristupa kešu (za slučaj da
informacija nije raspoloživa u registrima) je t1, cijena (vrijeme pristupa) zbog nepostojanja informacija
u kešu prvog nivoa (promašaj bloka – block miss) je t2, cijena zbog nepostojanja informacija u glavnoj
memoriji (promašaj stranice – page fault) je t3 (ako je glavna memorija slijedeći nivo u memorijskoj
hijerarhiji) itd. t1 < t2 < …< tn. Stone (1990) je pokazao da je cijena promašaja keša 2-4 puta skuplja
od cijene pogađanja keša, dok je cijena promašaja stranice u glavnoj memoriji (page fault) 1000 – 10
000 puta veća od cijene pogađanja.
Glavna memorija se često naziva i fizička memorija. U ovoj memoriji se nalaze programi u toku
izvršenja kao i podaci i rezultati koje ovi programi koriste/produkuju.
Koncept virtuelne memorije omogućuje virtuelno proširenje glavne memorije sekundarnom
memorijom, čime se postiže da veći broj programa može istovremeno koristiti fizičku memoriju
Skup adresa, preko kojih se može pristupiti raspoloživim memorijskim lokacijama glavne memorije
čini fizički adresni prostor. Adrese koje generiše programski prevodilac prilikom prevođenja izvornog
programa, odnosno instrukcije prilikom izvođenja su virtuelne adrese.
U ovom modelu, svakom procesoru se pridjeljuje privatni virtuelni adresni prostor. Svaki privatni
virtuelni prostor je izdijeljen na stranice. Stranice različitih virtuelnih prostora se mapiraju u stranice
iste fizičke memorije, koja je zajednička za sve procesore.
U ovom modelu, virtuelni adresni prostori svih procesora se kombinuju u jedinstveni dijeljeni virtuelni
adresni model. Svakom procesoru se dodijeljuje dio jedinstvenog adresnog prostora. Virtuelni adresni
prostori različitih procesora mogu da se preklapaju.
Straničenje, TLB, Segmentacija
Kod tehnike straničenja, u cilju preslikavanja virtuelnog u fizički adresni prostor i virtuelni i fizički
adresni prostor se dijele na stranice iste dužine.
Koriste translacione mape koje se mogu implementirati na različite načine. Ove mape mogu biti
smještene u keš memoriju, specijalnu asocijativnu memoriju ili u glavnu memoriju. Svaka mapa sadrži
određeni broj ulaza, a svakim ulazom se specifikuje translacija. Pristup odgovarajućem ulazu u tabeli se
vrši na bazi funkcije mapiranja, koja se primjenjuje na virtuelnu adresu. Mapiranje se može
implementirati hash ili kongruentnom funkcijom.
Varijante translacionih mapa su keš straničenja (TLB – table lookaside buffer) i tabela straničenja (PT –
page table).
TLB je brza memorija koja sadrži najčešće referencirane ulaze tabele straničenja. Najpovoljnija
varijanta je ako se translacija virtuelne u fizičku adresu realizuje preko TLB ulaza. Ukoliko TLB ne
sadrži ulaz koji specifikuje translaciju, onda se traženje nastavlja u tabeli straničenja.
Tabele straničenja (PT) sadrže suštinski iste ulaze kao i TLB (koji specifikuju asocijaciju između
virtuelnih i fizičkih stranica – okvira). Ove tabele se kreiraju u glavnoj memoriji nakon kreiranja
korisničkih procesa (za svaki proces se kreira posebna PT). S obzirom da broj aplikativnih procesa
može biti veliki, broj PT u memoriji može takođe biti veliki. I TLB i PT se moraju dinamički ažurirati
kako bi odražavali aktuelno stanje.
Ukoliko se tražena stranica ne nalazi u memoriji (ne postoji par (virtuelna stranica, fizička stranica) u
PT), onda se generiše stranična greška (page fault). U tom slučaju se tekući proces suspenduje, aktivira
se novi proces (izvršava se context switch), a tražena stranica se dobavlja sa diska/jedinice magnetne
trake, u memoriju. Nakon tog transfera suspendovani proces se stavlja u listu spremnih procesa, i nakon
njegovog aktiviranja, nastavlja se izvršenje od one instrukcije koja je generisala straničnu grešku.
Direktno straničenje
U posebnom registru se čuva tabela straničenja procesa. Broj virtuelne stranice se koristi kao indeks u
tebeli straničenja, iz koje se čita odgovarajući broj fizičke stranice (broj okvira). Ovaj broj se
kombinuje sa pomjerajem virtuelne adrese čime se dobija željena realna (fizička) adresa.
Prethodno opisana tehnika (direktnog) straničenja je pogodna ako virtulni adresni prostor nije izuzetno
veliki (do 32 bita). U slučaju velikog virtuelnog adresnog prostora PT bi postale izuzetno velike. U
takvim slučajevima koriste se invertovane tabele straničenja (IPT).
Inverzno straničenje
Kod ove tehnike invertovana tabela straničenja (IPT) sadrži jedan ulaz za svaku fizičku stranicu
(frame). Prema tome, broj ulaza je određen brojem fizičkih umjesto virtuelnih stranica.
Polje veza formira lanac IPT ulaza koji imaju istu hash vrijednost.
Npr, hash funkcija može mapirati broj virtuelne stranice → indeks ulaza u IPT na slijedeći način:
Sadržaj vrijednosti virtuelne adrese stranica# (vrijednost ključa) se upoređuje sa vrijednošću str.# u
ulazu u tabeli straničenja koji odgovara vrijednosti hash funkcije za datu virtuelnu stranicu. Ako su
vrijednosti iste, onda se odgovarajući broj fizičke stranice dobija u polju ulaz#. Ako se vrijednosti
ključa ne poklapaju, onda se preko polja ‘veza’ ide na slijedeći ulaz sa istom hash vrijednošću i
postupak ponavlja dok se ne pronađe fizička stranica, ili utvrdi da tekućoj virtuelnoj adresi nije
pridružena nijedna (fizička) stranica u glavnoj memoriji (frame). U posljednjem slučaju generiše se
stranična greška.
Segmentiranje
Mnogi problemi koji zahtijevaju intenzivna računanja (procesne resurse) i koji sadrže visok stepen
paralelizma mogu se efikasno riješiti primjenom jednostavnih procesnih elemenata organizovanih u
neku regularnu strukturu (mreža, stablo, linearno polje i sl.).
Informacije u ovaj (sistolični) sistem se "upumpavaju" preko vanjskih ćelija, preko kojih se ostvaruje i
izlazna veza. Bazični element najčešće omogućava samo jednostavne operacije, kao npr. sabiranje i
množenje,
Procesni element može da procesira podatke i ostvaruje vezu sa drugim elementima paralelno (više bita
odjednom) ili serijski, može biti sa ili bez lokalne memorije. Podaci ulaze u sistolično polje, obrađuju
se u procesnim elementima po principu protočne obrade i prenose u slijedeće procesne elemente
ritmično i sinhrono. Komunikacija izme|u procesnih elemenata je jednostavna i lokalizovana na
najbliže susjede, što omogućava (zbog malog rastojanja) povećanje frekvecnije radnog takta.
3.3
Program koji računar izvodi, nalazi se u glavnoj memoriji računara. Program u glavnoj memoriji može
biti trajno upisan (u memoriju sa trajnim sadržajem ROM-EPROM), ili se puni u glavnu memoriju
(RAM) sa sekundarne memorije (koja je takođe memorija sa trajnim sadržajem), sistemskim
programom. Prva varijanta je karakteristična za specijalizovane računare za upravljanje procesima koji
rade u otežanim eksploatacionim uslovima, dok je druga varijanta karakteristična za računare opše
namjene.
Kontrolna jedinica dobavlja instrukcije iz memorije, dekodira ih i generiše niz upravljačkih signala u
pravom trenutku i u korektnoj sekvenci kojima se obezbjeđuje izvršenje operacije specifikovane
instrukcionim kodom u izvršnoj jedinici procesora
S obzirom da se mnogi rezultati izvršenja instrukcija koriste u kasnijoj fazi kao operandi (podaci)
potrebno ih je memorisati. Registri CPU-a mogu čuvati ove međurezultate, ali je broj registara u
procesoru mali a instrukcije za svoje izvršenje često zahtijevaju operande u registrima. Zbog
navedenog, pored instrukcija, u glavnoj memoriji se nalaze i podaci sa kojima program operiše u toku
svoga izvođenja. Za trajno čuvanje podataka i programa koristi se jeftinija sekundarna memorija
(magnetni/optički diskovi, magnetne trake). Magnetni diskovi se u određenim slučajevima mogu
koristiti i za privremeno smještanje dijelova programa/podataka u toku izvođenja, kada kapacitet
glavne memorije nije dovoljan. Procesor ne može direktno dobavljati instrukcije niti podatke iz
sekundarne memorije nego se to realizuje preko glavne memorije.
Preko U/I sistema računar komunicira sa spoljnim svijetom. Osnovni zadatak ovog sistema je
transformacija informacija iz forme razumljive objektima spoljnjeg svijeta (ljudi, senzori, izvršni
organi itd.) u formu razumljivu računaru i obrnuto.
Концепт микропрограмске управљачке јединице. Представите блок шему микропрограмске
управљачке јединице и опишите како микропрограмска управљачка јединица генерише
управљачке сигнале приликом извршења машинских инструкција.
Ukupno ima 2m funkcija povezivanja. U ovoj šemi povezivanja, procesor sa adresom P može poslati
podatke svim drugim procesorima čije su adrese ( j ± 2 i ) (mod N). Određivanje rute za komunikaciju
između procesora može se bazirati na razlici adresa odredišnog i izvorišnog procesora.
Za komunikaciju između procesora 1 i 12 (N = 16), razlika adresa je 11, pa podatak može stići na
odredište korištenjem funkcija PM2I_+0 , PM2I_+1 , PM2I_+3 , prolazeći kroz čvorove 2,4. Različit
skup funkcija rezultovaće istim odredištem, ako je vrijednost ∑ 2^i jednaka razlici adresa odredišta i
izvorišta, gđe je i indeks PM2I funkcija iz skupa. Data manipulator višestepene sprežne mreže su
bazirane na PM2I mrežama.
Asocijativni procesori
Za razliku od klasičnih računara, gdje se referenciranje nekog podatka u memoriji ostvaruje na osnovu
adrese, asocijativni procesori referenciraju podatke u memoriji na osnovu njihovog sadržaja. Na taj
način je moguće referenciranje više podataka istorvremeno. Memorija koja ima navedene
mogućnosti ,naziva se asocijativna memorija.Tipična organizacija asocijativne memorije data je na
slici:
Upravljačka logika specifekuje preko registra za komparaciju sadržaja svih nemaskiranih djelova CR sa
svim lokacijama asocijativne memorije. Komparaciju izvodi kontrolno logika pridružena memorijskoj
lokaciji. Komparacija se može izvoditi serijski,bit po bit ili paralelno. Asocijativni procesori se
povezuju na računar domaćin kao specijalni procesori za određene aplikacije. Modul za povezivanje sa
okolinom obezbeđuje širok spektar mogućnosti : direktan pristup memoriji, paralelni U/I ,spregu sa
drugim specijalizovanim procesorima, korištenje senzorskih ulaza. Sve ovo omogućava postizanje
visokih performansi u aplikacijama kao što su matične operacije,upravljački sistemi u stvarnom
vremenu i drugi.Zbog skupe realizacije komparatorske logike asocijativne memorije su malog
kapaciteta i skupe, što limitira njihovu upotrebu za specijalizovane namjene. Značajna primjenu imamo
u realizaciji keš memorija.
Uzroci vremenskih gubitaka u paralelnim sistemima i njihov uticaj na koncept razvoja
paralelnih programa.
Teoretski, maksimalno ubrzanje koje se može postići izvođenjem programa na paralelnom sistemu sa N
procesora jednako je broju procesora. U takvom scenariju, svih N procesora bi izvodilo samo korisne
instrukcije, i svi bi počeli i završi-li procesiranje u istim vremenskim trenucima. U praksi, ostvarivanje
ovakvih maksimalnih performansi se ne postiže zbog gubitaka vremena prouzrokovanih:
• komunikacionim kašnjenjima,
• sinhronizacijom između procesora,
• nezaposlenošću procesora (prazni hodovi procesora),
• neophodnim upravljačkim aktivnostima operativnog sistema.
Generalizovana kocka
Ova mreza se sastoji iz m = log2N stepeni, gdje je N broj ulaznih odnosno izlaznih elemenata koji se
povezuju. U svakom stepenu postoji N/2 prekidackih elemenata (ukupno m* N/2) i po N ulaznih i
izlaznih veza oznacenih od 0 do N – 1. Ako se veze oznace tako da gornji (donji) ulazi(izlazi)
prekidackih elemenata imaju istu oznaku, onda stepen i generalizovane kocke implementira
funkciju povezivanja Cubei, jer vrsi povezivanje linija cije se adrese razlikuju u i-toj bit poziciji. Ako
se ostvaruje veza svih ulaza na po 1 izlaz onda se koriste samo direktna i unakrsna stanja.
Hiperkocka
SIMD
Kod arhitektura ovog tipa postoji jedan sekvencijalni tok instrukcija i jedna kontrolna jedinica koja
upravlja istovremenim izvršenjem svake instrukcije na više procesnih elemenata. Svi omogućeni
procesni elementi izvode (istu) instrukciju nad različitim podacima, čime se realizuje paralelna obrada
na određenom skupu podataka. Jednim instrukcionim tokom se izbjegava ponavljanje procesa
dobavljanja instrukcije za svaku procesnu jedinicu. S obzirom na to da svi procesori rade
sinhronizovano, na osnovu upravqačkih signala iz kontrolne jedinice, ovakve arhitekture su pogodne za
eksploataciju sitnozrnastog paralelizma.
Procesori sa SIMD arhitekturom: Intel SSE and MMX (Pentium III, SSE4 - Core series), ARM NEON
(Cortex-A8,Cortex-A9), MIPSMDMX.
Signali koje produkuje upravljačka jedinica