View
235
Download
0
Category
Preview:
Citation preview
7/27/2019 Skripta(1 Dio) ar
1/76
1
1. Uvod
1.1 Kratka istorija razvoja ra~unara
Qudi su od davnina nastojali konstruisati ure|aje koji bi im olak{ali
izvo|ewe ra~unskih operacija. U procesu ra~unawa koristimo decimalni brojni
sistem koji ima 10 cifara: 0-9. Naziv decimalni poti~e od latinske rije~i decem
koja zna~i deset, dok su simboli cifara do{li od Arapa, a ovi su ih preuzeli od
Indusa. Sigurno je da je razlog kori{tewa ovog brojnog sistema u tome {to ~ovjek
ima 10 prstiju na obe ruke (da nas je majka priroda podarila sa 6 prstiju na rukama,
vrlo vjerovatno je da bi koristili brojni sistem sa bazom 12.
^ovjek je u po~etku, sasvim sigurno koristio prste za pomo} u brojawu. Prsti su
korespondirali ciframa i numeri~kim veli~inama. Za rad sa ve}im brojevima
koristili su se kamen~i}i. Na kostima koje datiraju iz perioda 30 000god. 20 000
god. PNE, na|ene su recke kojima su brojne veli~ine memorisane. Na jednoj kosti iz
Afrike, 8 500 god. PNE, zapisani su prosti brojevi 11, 13, 17 i 19, o~ito kao
posebno interesantni.
Izme|u 1900 i 1800 god. PNE pojavquju se prvi pozicioni brojni sistemi
(Babilon, sa bazom 60). Izme|u 1000 i 500 god. PNE izumqen je abacus, prvi
mehanizam kori{ten za prakti~no ra~unawe (Babilonci ili Kinezi). Abacus je u
osnovi ravna (kamena, drvena ili sli~na plo~a, na koju se postavqaju elementi:
kamen~i}i, {tapi}i i sl.).
Leonardo da Vin~i je oko 1500 god. napravio prvi mehani~ki kalkulator. 1623.
god. Wilhelm Schickhard napravio je mehani~ki ure|aj za osnovne matemati~ke
operacije. Mnogo poznatiji Blaise Pascal (1642) i Gottfried Leibnitz (1671) projektovali
su i gradili mehani~ke ma{ine koje su osnovne operacije radile 'automatski'.
Radovi Charlesa Babbage-a (1823) mogu se smatrati samim po~etkom ra~unarstva ~ija
je logika najsli~nija logici dana{wih ma{ina. Ada Lovelace Byron (1815-1851), k}i
lorda Byrona, radila je sa Charlesa Babbage-om na wegovom projektu diferencne i
analiti~ke ma{ine, i sugerisala je Babbage-u kako bi wegova ma{ina trebala biti
programirana, pa je na osnovu toga ponijela epitet prvog programera, a programski
7/27/2019 Skripta(1 Dio) ar
2/76
2
jezik ADA je dobio naziv po wenom imenu. Sva ta i druga nastojawa, sve do
~etrdesetih godina dvadesetog vijeka, mogu se smatrati mehani~kom erom u razvoju
ra~unara. Pojavom elektronskih ra~unara u{lo se u nevjerovatno buran period
ra~unarstva, a koji je prema svim reperkusijama na ostale segmente qudske
djelatnosti (informati~ka revolucija) ozna~io novu epohu u razvoju qudske
civilizacije.
Osnovni razlog tome svakako je u ~iwenici da je uspje{no rje{avawe ra~unskih i
drugih aplikativnih problema primjenom ra~unara davalo ideje za rje{avawe jo{
kompleksnijih problema, uz prirodne zahtjeve za ve}e procesne mogu}nosti i mawu
cijenu. Za ilustraciju mo`emo navesti da tr`i{te superra~unara raste po stopi od
30% godi{we. Ovaj trend je najmawe akademsko pitawe ili pitawe presti`a, ve} je
u su{tini strate{ko pitawe progresa nacija, dr`ava i civilizacije u cjelini.
1.1 Oblasti primjene ra~unara.Problemi koji se rje{avaju primjenom ra~unara zadiru u sve segmente nauke,
tehnike, industrije, medicine itd. Sa stanovi{ta sofistifikacije obrade, aplika-
cije se mogu grupisati u ~etiri nivoa;
procesirawe podataka, procesirawe informacija, procesirawe znawa, inteligentno procesirawe.
Kori{tewe ra~unara je po~elo procesirawem podataka, {to je i danas jedna od
najzna~ajnijih oblasti primjene (numeri~ke simulacije kompleksnih fenomena kao
{to su vrijeme, klima, proizvodni procesi, hemijske reakcije i sl.). Ipak, sve je
izra`enije pomjerawe ka procesirawu informacija. Informacione objekte ~ine
podaci povezani odre|enom sintaksnom strukturom ili relacijama. Akvizicija
ogromne koli~ine podataka na ra~unarskim sistemima {irom svijeta stvorila je
impresivnu bazu znawa (nau~ne, tehni~ke, komercijalne i druge informacije), {to
je povratno iniciralo zahtjeve za procesirawe znawa. Iako su postignuti zna~ajni
rezultati u ovoj oblasti, oni su jo{ uvijek daleko od spektakularnih prognoza.
Inteligentni ra~unari, sposobni da razmi{qaju i donose odluke, jo{ uvijek nisu
stvar bliske budu}nosti.
Kompleksnost obrade i zahtjevi za procesnim mogu}nostima ra~unara rastu sa
nivoom sofistifikovanosti problema. Uvjerewe je da isti trend pokazuje i mogu}-
7/27/2019 Skripta(1 Dio) ar
3/76
3
nost eksploatacije paralelizma ({to, s obzirom na tehnolo{ke limite mogu}nosti
jednoprocesorskih ra~unara, name}e primjenu paralelnih ma{ina kao imperativ).
Za ilustraciju kompleksnosti problema prva dva nivoa, nave{}emo nekoliko
primjera.
Simulacija klime na{e planete za period od 10 godina za aktuelne modele
zahtijeva broj operacija u pokretnom zarezu reda 1016, uz produkciju stotina
gigabajta podataka. Razli~ita poboq{awa simulacionog modela (pove}awe
rezolucije, me|uokeanska interakcija i sl.) mogu dodatno pove}ati procesne
zahtjeve. Sna`an pritisak za kori{tewe sve br`ih ra~unara imaju izra`eno
komercijalne aplikacije, kao {to su video konferencijski sistemi, razumijevawe i
procesirawe govora, internet i video servisi, trodimenzionalna grafika i
animacija u realnom vremenu, sistemi za pomo} kod dono{ewa odluka itd. Za
grafi~ke aplikacije visokih zahtjeva, procjena zahtjevane procesorske snage za
animaciju u stvarnom vremenu je reda teraflopsa (1012 operacija u teku}em zarezu u
sekundi ).
1. 3 Trendovi razvojaPerformanse najmo}nijih ra~unara, od prvog ENIAC-a do dana{wih
superra~unara, uve}avale su se u prosjeku za faktor 10 svakih 5 godina. Ovakav
trend je odr`an zahvaquju}i izvanrednom razvoju tehnologije proizvodweelektronskih komponenata, ali i razvoju arhitekture ra~unara i na~ina
procesirawa podataka (Sl.1.1).
U po~etnom periodu, rast procesne mo}i se bazirao gotovo iskqu~ivo na razvoju
tehnologije za proizvodwu elektronskih komponenata i akumuliranom znawu o
projektovawu ra~unara i wegovih modula. Arhitektura ra~unara i na~in procesi-
rawa su se, sve do po~etka 70-ih godina, zasnivali na jednostavnom konceptu i
organizaciji von Neumann-ove ma{ine: ra~unar se sastoji od centralne procesne
jedinice (CPJ) i memorije, koji su me|usobno povezani i izme|u kojih je mogu}aizmjena podataka. Centralna memorija izmjenqivog sadr`aja sadr`i kako podatke
tako i program-niz instrukcija, ~ijim se izvo|ewem realizuje `eqena funkcija ili
algoritam. Izvo|ewe instrukcija se sastoji iz dobavqawa operacionog koda, koji
odre|uje semantiku instrukcije, i operanada u CPJ, izvr{ewa odre|enog ra~unawa i
vra}awa rezultata u memoriju.
7/27/2019 Skripta(1 Dio) ar
4/76
4
Sl. 1.1 Vr{ne performanse ra~unara u periodu 1945-1998. Znakom su ozna~enijednoprocesorski, znakom + vektorski, a znakom x masovno paralelni ra~unari.
Napredak tehnologije od cijevne (I generacija ra~unara), preko tranzistorske
(druge generacije) i integrisanih kola malog i sredweg stepena integracije (tre}a
generacija ra~unara) do VLSI kola imao je vi{estruke efekte. Impresivno i
kontinualno pove}awe broja tranzistora u integrisanim kolima i pove}awe radne
frekvencije, direktno su uticali na pove}awe performansi ra~unara. Ovo je, s
druge strane, pred programere postavilo zahtjeve za boqe kori{tewe hardverskih
mogu}nosti ra~unara, {to je rezultovalo softverskim tehnikama i konceptima za
upravqawe konkurentnim doga|ajima: alokacija resursa, komunikacija i sinhroni-
zacija izme|u procesa (monitori, semafori, barijere, signali) i sl. Procesirawe
konkurentnih doga|aja je sistematski i intenzivno analizirano i prou~avano, {to
je bio jedan od temeqa za uspje{nu realizaciju paralelnih ma{ina (u naj{irem
smislu, paralelna ma{ina se sastoji iz skupa procesnih elemenata, povezanih
odre|enim komunikacionim podsistemom, koji imaju mogu}nost paralelnog rada-
procesirawa u ciqu izvr{ewa jedinstvenog posla).
Svi navedeni faktori su stvorili uslove i podlogu za paralelno procesirawe,
te za projektovawe i realizaciju prvih paralelnih ra~unara 60-tih godina (IBM
9020, Goodyears Associative Processor, ILLIAC IV, CDC 7600). Pove}awe stepena
7/27/2019 Skripta(1 Dio) ar
5/76
5
integracije omogu}ilo je implementaciju kompleksnih funkcija i koncepata na
hardverskom nivou: vektorsko i proto~no procesirawe, vi{estruke funkcionalne
jedinice i sl., {to je dalo novi podsticaj za razvoj u domenu superra~unara.
Po~etkom 80-tih godina po~iwe {ira komercijalna primjena paralelnih ra~unara
(DAP, MPP, Cosmic Cube, NCube, Alliant, Sequents Balans, Cray, CM). Napretkom
tehnologije i realizacijom kompleksnih modula na jednom kristalu, smawio se broj
osnovnih komponenata potrebnih za implementaciju jednoprocesorskog ra~unara.
Po{to je cijena ra~unara, aproksimativno, proporcionalna broju osnovnih
komponenata koje ga ~ine, do{lo je do pada cijene ra~unara po jedinici procesne
mo}i i potpune inverzije Grosch-evog zakona. Svako novo pove}awe stepena
integracije, omogu}avalo je i pove}awe broja procesora u ra~unaru, za istu cijenu.
Predvi|awe Sidney Fernbach-a je postalo realnost: aktuelni superra~unari nakon
10-20 godina postaju dio standardne ra~unarske opreme.
Danas, paralelni ra~unari preuzimaju dominaciju na tr`i{tu, iako se jo{
uvijek posti`u izvanredni rezultati na eksploataciji paralelizma u okviru jedne
centralne procesorske jedinice (superskalarni i superproto~ni procesori). Svi
glavni protagonisti u podru~ju ra~unarske tehnike sla`u se da je paralelizam
jedini na~in da se zadovoqe kontinualno rastu}i zahtjevi tr`i{ta za super brzim
i jeftinim ra~unawem. Argument za ovakvo uvjerewe je nesporan, i bazira se na
apsolutnom limitu u brzini prostirawa: brzini svjetlosti. Brzina ra~unawa
jednog procesnog elementa je limitirana frekvencijom osnovnog takta. Pove}awe
frekvencije osnovnog takta, zbog ka{wewa pri prostirawu signala (4-6 ns/m),
zahtijeva smawewe rastojawa izme|u elemenata, {to tako|e ima svoj tehnolo{ki i
fizi~ki limit. Aktuelno stawe u podru~ju ra~unara najvi{ih performansi (Sl.
1.2) potvr|uje navedene ocjene. U bliskoj budu}nosti, paralelizam }e dominirati ne
samo u superra~unarima nego i u personalnim ra~unarima, radnim stanicama i
ra~unarskim mre`ama.
7/27/2019 Skripta(1 Dio) ar
6/76
6
Iako su mogu}nost pove}awa performansi i povoqniji odnos
performansa/cijena osnovni razlozi za sve ve}u primjenu paralelnih ra~unara i
paralelne obrade, oni nisu i jedini. Paralelni ra~unarski sistemi, zbog
redundancije procesnih elemenata, imaju hardversku podlogu za mogu}nost preva-
zila`ewa otkaza, odnosno realizaciju aspekata neosjetqivosti na gre{ke. Tako|e,
ovakvi sistemi, po pravilu nude mogu}nost postepenog pove}awa performansi
sistema dodavawem novih procesorskih, memorijskih i drugih modula.
Sl. 1.2 Broj kori{tenih procesora u superra~unarima. Znakom + su ozna~eni vektorski, a
znakom x masovno paralelni ra~unari.
Jo{ jedan va`an trend }e imati sve vi{e uticaja na na~in procesirawa: ra~unarske
mre`e. Ra~unarska mre`a povezuje fizi~ki dislocirane i heterogene ra~unare sa
mogu}no{}u me|usobne komunikacije i kori{tewa distribuiranih resursa na isti
na~in na koji se koriste lokalni resursi. Pove}awe brzine komunikacije u
ra~unarskim mre`ama (ve} su aktuelne brzine od 1000 Mb/sec u standardnim
mre`ama) i pouzdanosti mre`a, pru`i}e mogu}nost izvr{ewa programa
istovremenim kori{tewem ne samo procesora lokalnog ra~unara nego i procesora
u drugim ra~unarima u mre`i. Zbog toga, o~ekuje se da }e podru~je distribuiranog
procesirawa sve vi{e konvergovati ka oblasti paralelnog procesirawa.
Mo`e se postaviti pitawe, za{to je, i pored ubjedqivih, prethodno navedenih
argumenata, navedeni koncepti prodirali relativno sporo, posebno u podru~je
komercijalne primjene. Dva su osnovna razloga: paralelne ma{ine nisu jednostavne
za realizaciju i, paralelno programirawe je znatno te`e od sekvencijalnog.
7/27/2019 Skripta(1 Dio) ar
7/76
7
Su{tinski ciq, da se ostvari ubrzawe izvo|ewa programa ili skupa programa,
mo`e se ostvariti paralelnim procesirawem na nivou programa, zadataka-
procedura, me|uinstrukcijskom nivou i (ili) u okviru izvo|ewa jedne ma{inske
instrukcije. Eksploatacija paralelizma na najni`em nivou se realizuje
hardverski, a udio hardvera u eksploataciji paralelizma opada prema vi{im
nivoima, uz uobi~ajenu tendenciju rasta hardverskog udjela u implementaciji
rje{ewa. U ovom domenu, razli~itim tehnikama, organizacijom i povezivawem
procesnih i drugih elemenata, implementirani su kompleksni algoritmi za
automatsko prepoznavawe i izvr{ewe paralelnih operacija na instrukcionom i
me|uinstrukcionom nivou, {to je rezultovalo razli~itim arhitekturama.
Sistemski softver je morao obezbijediti podr{ku za efikasno izvo|ewe
programa u vi{eprocesorskom okru`ewu. Operativni sistemi su, pored
standardnih zahtjeva za multiprogramski rad, morali obezbijediti efikasne
mehanizme za:
raspore|ivawe po procesnim elementima, ne samo procesa, nego i vi{estru-
kih paralelnih niti u okviru procesa,
balansirawe optere}ewa,
komunikaciju izme|u procesora, uzimaju}i u obzir strukturu i stawe
komunikacionog podsistema,
mogu}nost dinami~ke rekonfiguracije u slu~aju otkaza nekog od elemenata i
sl.
Slijede}e fundamentalno pitawe je kako kreirati programe koji se izvode na para-
lelnoj ma{ini. Jasno je da je u ciqu efikasne eksploatacije paralelizma, po{to
hardver prepoznaje paralelizam uglavnom na nivou instrukcija ili grupe
instrukcija, neophodna specifikacija paralelizma na nivou programa/zadataka.
Dvije su mogu}nosti koje programeri imaju na raspolagawu: da pi{u na standardan
na~in i u standardnim programskim jezicima, a da identifikaciju paralelizma i
specifikaciju paralelnog izvo|ewa u potpunosti prepuste paralelizira-ju}im/vektoriziraju}im prevodiocima, ili da koriste specifi~ne programske
naredbe i funkcije za eksplicitnu identifikaciju paralelizma i specifikaciju
na~ina eksploatacije. Iako je automatska identifikacija paralelizma (posebno
programskih petqi) ve} du`i period predmet intenzivnih nau~nih istra`ivawa, a
proizvo|a~i paralelnih ma{ina su ulo`ili ogromne napore i sredstva u razvoj
7/27/2019 Skripta(1 Dio) ar
8/76
8
navedenih prevodilaca, generisani kod ~esto ne daje o~ekivane performanse.
Programeri su, za vremenski kriti~ne i u pogledu ra~unawa visoko zahtjevne
aplikacije, morali pisati eksplicitno paralelne programe koriste}i pro{irewa
postoje}ih jezika naredbama za eksplicitnu specifikaciju paralelizma ili
koriste}i potpuno nove programske jezike. Za postizawe najvi{ih performansi,
ipak, neophodno je bilo programirawe na "ni`em" nivou. Iskustvo da je pisawe
paralelnih programa, i pored novih paralelnih konstrukcija u programskim
jezicima, i daqe kompleksan i te`ak zadatak, otvorilo je pitawe da li su te
te{ko}e inherentno svojstvene paralelnom programirawu, ili su refleksija
neadekvatnog okru`ewa za razvoj, analizu i pode{avawe paralelnih programa. Zbog
toga, veliki napori se ula`u, tako|e, u razvoj programskog okru`ewa za podr{ku
razvoju paralelnih programa.
Pored navedenog, zna~ajna su istra`ivawa i rje{ewa na planu standardizacije
komunikacije pri paralelnom izvo|ewu programa u heterogenom mre`nom okru-
`ewu, analizi performansi, metoda za razvoj algoritama pogodnih za izvo|ewe na
paralelnim arhitekturama itd. O~gledno je da je problematika paralelnog
procesirawa izuzetno kompleksna, i da zahtijeva iskustvo i poznavawe razli~itih
aspekata iz oblasti ra~unarskih arhitektura i hardvera, operativnih sistema,
programskih jezika, algoritama, analize performansi i dr.
7/27/2019 Skripta(1 Dio) ar
9/76
9
2
Klasifikacija ra~unarskiharhitektura
2.1 Definicija arhitektura ra~unaraAspekt arhitekture ra~unarskih sistema tretira problem organizacije i
strukture kontrolnih funkcija, procesnih elemenata, memorijskih modula, te
sistema povezivawa. Arhitektura u osnovi defini{e podlogu za procesirawe/obra-
du i time odre|uje mogu}nosti programske nadgradwe.
S obzirom na razli~ite mogu}nosti koncepcije pojedinih elemenata
ra~unarskih sistema i wihovih veza, spektar arhitektura je bio {irok jo{ od samog
po~etka razvoja ra~unarske tehnike. Razli~iti koncepti su se preplitali u
pojedinim rje{ewima, tako da se nijedna klasifikacija ne mo`e smatrati
apsolutno adekvatnom.
Prvu klasifikaciju ra~unarskih sistema dali su J.C.Murtha i R.L.Beadless (1964), a
zatim Flynn (1966) L.C.Hobbs i D.J.Theis (1970). Najpoznatija i naj~e{}e kori{tena
klasifikacija je Flynn-ova koja kategorizuje ra~unarske sisteme na osnovu odnosa
instrukcionog toka i toka podataka na:
SISD - ma{ine sa jednim tokom instrukcija i jednim tokom podataka,
SIMD - ma{ine sa jednim tokom instrukcija i vi{estrukim tokom podataka,
MISD - ma{ine sa vi{estrukim tokom instrukcija i jednim tokom podataka,
MIMD - ma{ine sa vi{estrukim tokom i instrukcija i podataka.
Feng (1972) predla`e klasifikaciju na bazi du`ine rije~i i broja rije~i koje se
procesiraju paralelno. Konzistentnu klasifikaciju daje W.Handlerna bazi razli-
7/27/2019 Skripta(1 Dio) ar
10/76
10
kovawa tri nivoa procesirawa: nivo programske kontrolne jedinice (PCU) koja
interpretira instrukcije, nivo aritmeti~ko-logi~ke jedinice (ALU) koja izvodi
aritmeti~ko-logi~ke operacije, i nivo elementarnih logi~kih sklopova (ELC) koji
izvode elementarne operacije.
2.2 Hijerarhijska struktura organizacijera~unarskog sistema
Standardna hijerarhijska predstava ra~unarskog sistema je u obliku koncentri~nih
krugova (Sl. 2.1.)
Aplik.Softver
Sistemskisoftver
Hardver
Sl. 2.1 Hijerarhijska organizacija ra~unara
Svaki od ovih nivoa mo`e se razlo`iti na podnivoe, npr hardverski nivo mo`e se
posmatrati na:
digitalnologi~kom nivou i
nivou elektronskih sklopova.
7/27/2019 Skripta(1 Dio) ar
11/76
11
2.3 Razli~iti koncepti ra~unarskih arhitekturaU ciqu poboq{awa performansi, kao {to je ve} re~eno, pored primjene
najnovijih tehnolo{kih rje{ewa nastojalo se {to vi{e operacija u tokuprocesirawa izvesti istovremeno. Razli~iti koncepti u arhitekturama
ra~unarskih sistema proizlazili su iz razli~itih koncepata identifikacije i
eksploatacije paralelizma i tehnolo{kih mogu}nosti realizacije tih koncepata.
Postojawe paralelizma zna~i mogu}nost da se odre|ena ra~unawa mogu procesirati
istovremeno. Paralelizam postoji i mo`e se detektovati i eksploatisati na vi{e
hijerarhijskih nivoa. Na najvi{em nivou mo`emo posmatrati paralelizam izme|u
programa-aplikacija (me|uprogramski paralelizam). Svaki program mo`emo
posmatrati i kao ure|en skup zadataka izme|u kojih postoje relacije pretho|ewa i
izme|u kojih mo`e postojati izmjena podataka (izlazne podatke iz jednog zadatka
drugi zadatak koristi kao ulaz). Kao ni`e nivoe mo`emo identifikovati
proceduralni nivo, nivo programskih petqi ili grupa instrukcija, instrukcioni
nivo i nivo elementarnih operacija.
Na najvi{em nivou, paralelizam se jednostavno mo`e eksploatisati pridjeqi-
vawem razli~itih programa razli~itim procesorima (ili ~ak ra~unarima poveza-
nim u odgovaraju}u mre`u). Ali, i svaki program inherentno sadr`i zna~ajan iznos
paralelizma na ni`im nivoima koji se mo`e eksploatisati, i time, s jedne strane,
smawiti vrijeme izvr{ewa programa, a s druge strane boqe iskoristiti postoje}e
procesne resurse ma{ine. Ako postoji paralelizam izme|u zadataka, onda se oni
mogu procesirati istovremeno na razli~itim procesorima (s tim da svaki
procesor izvodi niz instrukcija, kojim se implementira dati zadatak, asinhrono od
drugog). Ovaj trend je vodio razvoju MIMD vi{eprocesorskih arhitektura. Na
ni`em nivou, posebno interesantne za eksploataciju paralelizma su programske
petqe, koje veoma ~esto implementiraju operacije nad nizovima podataka
(poqima/vektorima). U programskim petqama se ponavqa ista grupa operacija nad
razli~itim skupom podataka. Mnogi nau~ni problemi zahtijevali su izvr{avawe
ogromnog broja petqi nad velikim nizovima podataka. Optimalno izvr{avawe
programskih petqi, odnosno operacija nad vektorima, bio je ciq arhitektura koje
su rezultovale SIMD procesorskim poqima i vektorskim procesorima.
7/27/2019 Skripta(1 Dio) ar
12/76
12
Na nivou izvo|ewa instrukcija i grupa instrukcija, tako|e je mogu}e identifi-
kovati (i eksploatisati) zna~ajan iznos paralelizma. Na ovom nivou (procesirawa
instrukcija), najzna~ajnije tehnike za eksploataciju paralelizma su proto~na obra-
da i grupna obrada operacija sa kori{tewem vi{e funkcionalnih jedinica.
Koncept proto~ne obrade se sastoji u tome da se neka operacija razdijeli u
sekvencijalni niz podoperacija, pri ~emu se svaka podoperacija realizuje u specija-
lizovanom hardverskom sklopu (proto~nom stepenu). Niz ovih hardverskih segme-
nata ~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 procesirawe podata-
ka (kompletirawe operacije) se zavr{ava po izlasku procesiranog podatka iz
proto~nog sistema (odre|ene varijacije postoje u smislu blokirawa odre|enih
segmenata pri prolazu podatka kroz proto~ni sistem, mogu}nosti premo{}avawa i
sl.). Sukcesivni podaci se obra|uju tako da se pojedine faze wihove obrade prekla-
paju u razli~itim proto~nim stepenima (Sl. 2.2). Proto~ni stepeni mogu implemen-
tirati jednu ili vi{e funkcija (multifunkcionalni proto~ni stepeni).
S1
S2
Sn
L LLL
IzlazUlaz
Sl. 2.2 Koncept proto~ne obrade.
Ako je ka{wewe signala kroz prihvatni registar Tl, a propagacija kroz kombina-
cionu logiku proto~nih stepeni Ti, onda je period radnog takta proto~nog sistema T
= {Ti
max i} +Tl= Tm+Tl. Frekvencija je limitirana najdu`im periodom ka{wewa
kroz kombinacionu logiku nekog stepena.
Koncept maksimalnog preklapawa operacija u proto~nim stepenima, vodio je
implementaciji proto~nih stepeni pribli`no istih kombinacionih ka{wewa,
{to se moglo realizovati za redukovani skup naj~e{}e kori{tenih optimizovanih
operacija (instrukcija), odnosno RISC procesorskim arhitekturama. Drugi koncept
istovremenog izvr{avawa vi{e operacija (instrukcija) izvorno poti~e od ideje na
kojoj se zasnivaju podacima pokretane ma{ine: sve operacije koje imaju sve podatke
7/27/2019 Skripta(1 Dio) ar
13/76
13
potrebne za izvr{ewe ~ine trenutno slobodan skup operacija koji je spreman za
izvo|ewe; skup procesora preuzima izvo|ewe operacija, nakon ~ega se generi{u
novi izlazni podaci i novi skup slobodnih operacija, spremnih za izvo|ewe u
narednom ciklusu.
Sli~no prethodno navedenom, kod ma{ina pokretanih kontrolnim tokom, niz
instrukcija se mo`e izvesti paralelno (slobodan skup), ako ne postoji zavisnost po
podacima (direktna, izlazna ili antizavisnost). U nizu sukcesivnih instrukcija
koje ne produkuju granawa (bazi~ni blok), prosje~an broj slobodnih operacija je ~ 3.
Pove}awe prosje~nog broja slobodnih operacija posti`e se eksploatacijom
paralelizma van bazi~nih blokova . Ovaj koncept vodio je razvoju ma{ina sa
velikom du`inom rije~i (VLIW-very large instruction word), pri ~emu se vi{e
nezavisnih operacija kodira u jednu VLIW instrukciju i sve se izvode istovremeno
(na vi{e izvr{nih jedinica). Prepoznavawe skupa slobodnih operacija u programu,
te planirawe wihovog izvr{ewa i kodirawe u VLIW instrukciju vr{i prevodilac
u fazi prevo|ewa.
Koncept istovremenog izvr{avawa vi{e instrukcija vodio je ekstenziji RISC
arhitektura ka superskalarnim ma{inama. Redoslijed izvo|ewa i mapirawe izvo-
|ewa instrukcija po procesnim resursima odre|uje se dinami~ki (sa mogu}no{}u
prekorednog izvo|ewa). Predikcija granawa vr{i se dinami~ki, na bazi stawa
automata za granawe pojedinih instrukcija, koja se vode u posebnoj, brzoj memoriji,
sa vjerovatno}om poga|awa do 95%. Aktuelni superskalarni procesori standardno
koriste proto~nu obradu u pojedinim funkcionalnim jedinicama. Postoji
rasprostraweno uvjerewe da }e ove arhitekture dominirati u narednom periodu
razvoja ra~unarske tehnike i da }e drugi aspekti imati malo uticaja na budu}i
razvoj istih. Ipak, budu}i da je paralelno procesirawe izrazito invazivno i da
prodire u sve aplikativne domene, od superprocesirawa do ugra|enih ra~unarskih
sistema, postoje tako|e sna`ni argumenti da postoje}e arhitekture moraju
evoluirati u pravcu podr`avawa generalnog modela za paralelno procesirawe. S
obzirom na ogromne investicije ulo`ene u razvoj postoje}ih sistema i na ~iwenicu
nastavka trenda rasta performansi postoje}ih tipova arhitektura, prirodno je
o~ekivati da }e u bliskoj budu}nosti proces te}i u pravcu kombinovawa postoje}ih
rje{ewa u ciqu {to ve}e eksploatacije paralelizma na svim hijerarhijskim
nivoima.
7/27/2019 Skripta(1 Dio) ar
14/76
14
U ciqu kratkog pregleda ra~unarskih arhitektura izvr{ena je klasifikacija
data slikom 2.3.
Paralelni ra~. sistemi
Upravqanikontrolnim tokom
Upravqani podacima Upravqanizahtjevima
SIMD MISDMIMD
Vektorski Paralelni Visoko paralelni Labavo spregnuti
Multiprocesori
Multira~unari
Lokalnera~un. mre`e
DistribuiranisistemiAsocijativni
Sistoli~ni
Jednoprocesorski.sistemi
Sl. 2.3 Klasifikacija ra~unarskih arhitektura.
7/27/2019 Skripta(1 Dio) ar
15/76
15
3. Klasina, Von-Noemanova arhitektura
raunara
3.1 Koncept Von-Noemanovog raunara
Von-Noemanova arhitektura raunara je izvanredno strukturirana: na najviem nivou apstrakcije
predstavlja se jednostavnim i razumljivim dijagramom (Sl. 3.1).
I/OMEMORIJA
CPU
Sl. 3.1
Memorija promjenljivog sadraja, sadri ne samo podatke/rezultate raunanja, nego i
program (skup instrukcija/akcija) koji se izvodi. Ovaj koncept je omoguio univerzalnost i
jednostavnost primjene raunara: novi aplikativni zadatak moe da se izvede na raunaru samo
punjenjem drugog programa u memoriju i pokretanjem njegovog izvrenja. Centralna procesna
jedinica (CPU) dobavlja instrukcije iz memorije i izvodi ih jednu za drugom. Instrukcije sadre
informacije kako o vrsti operacije/akcije, tako i o operandima nad kojima se akcija izvodi.
Distinkcija izmeu instrukcija i podataka u memoriji i odreivanje sekvence izvoenja je
ostvarena koritenjem programskog brojaa (PC). Nakon zavretka izvoenja neke instrukcije,
vrijednost programskog brojaa specifikuje memorijsku adresu slijedee instrukcije koja e se
izvesti. Na ovaj nain postoji sekvencijalni tok kontrole (odreen nizom sukcesivnih vrijednosti
programskog brojaa) koji upravlja izvrenjem programa. Dakle, u toku izvoenja, postoji jedan
7/27/2019 Skripta(1 Dio) ar
16/76
16
tok (niz) instrukcija koje se izvode nad odnosnim tokom (nizom) podataka. Iz navedenog razloga,
ovaj tip arhitektura po Flyn-ovoj klasifikaciji spada u grupu SISD (single instruction-single data)
raunara.
Ovaj jednostavan koncept omoguio je da se kompleksan sistem, kao to je raunar sa svojim
procesima, uspjeno analiziraju, te da se sistematski rjeavaju odnosni problemi.
3.2 Princip organizacije SISD raunarskih sistema
Globalni blok dijagram SISD raunara dat je na sl. 3.2. Osnovni funkcionalni elementi su, kako je
to naznaeno i u dijelu 3.1, Centralna procesna jedinica (CPU), memorija i ulazno/izlazni
(pod)sistem
Sl. 3.2
Izvrna jedinica
.
Program koji raunar izvodi, nalazi se u glavnoj memoriji raunara. Program u glavnoj memoriji
moe biti trajno upisan (u memoriju sa trajnim sadrajem ROM-EPROM), ili se puni u glavnu
memoriju (RAM) sa sekundarne memorije (koja je takoe memorija sa trajnim sadrajem),
sistemskim programom. Prva varijanta je karakteristina za specijalizovane raunare za
upravljanje procesima koji rade u oteanim eksploatacionim uslovima, dok je druga varijanta
karakteristina za raunare ope namjene.
7/27/2019 Skripta(1 Dio) ar
17/76
17
Kontrolna jedinica dobavlja instrukcije iz memorije, dekodira ih i generie niz upravljakih
signala u pravom trenutku i u korektnoj sekvenci kojima se obezbjeuje izvrenje operacije
specifikovane instrukcionim kodom u izvrnoj jedinici procesora (Sl. 3.3). Npr. za izvoenje
instrukcije za promjenu znaka (komplementiranje do 2) sadraja registra Rx:
(Rx) (Rx),
upravljaka jedinica generie signale kojima se:
sadraj registra Rx dovodi na ulaz aritmetiko logike jedinice (ALU),
izvodi promjena znaka (komplementiranje do 2) u ALU,
rezultat upisuje nazad u registar Rx.
3.3
S obzirom da se mnogi rezultati izvrenja instrukcija koriste u kasnijoj fazi kao operandi
(podaci) potrebno ih je memorisati. Registri CPU-a mogu uvati ove meurezultate, ali je broj
registara u procesoru mali a instrukcije za svoje izvrenje esto zahtijevaju operande u registrima.
Zbog navedenog, pored instrukcija, u glavnoj memoriji se nalaze i podaci sa kojima program
operie u toku svoga izvoenja. Za trajno uvanje podataka i programa koristi se jeftinija
sekundarna memorija (magnetni/optiki diskovi, magnetne trake). Magnetni diskovi se u
odreenim sluajevima mogu koristiti i za privremeno smjetanje dijelova programa/podataka u
toku izvoenja, kada kapacitet glavne memorije nije dovoljan. Procesor ne moe direktno
dobavljati instrukcije niti podatke iz sekundarne memorije nego se to realizuje preko glavne
memorije.
Preko U/I sistema raunar komunicira sa spoljnim svijetom. Osnovni zadatak ovog sistema
je transformacija informacija iz forme razumljive objektima spoljnjeg svijeta (ljudi, senzori,
izvrni organi itd.) u formu razumljivu raunaru i obrnuto.
7/27/2019 Skripta(1 Dio) ar
18/76
18
Navedeni osnovni moduli raunara meusobno komuniciraju preko skupa prenosnih puteva
(linija) - magistrale. Broj prenosnih linija kojima se istovremeno mogu prenositi informacije
odreuje irinu magistrale (u bitima).
3.2.1 Organizacija i struktura centralne procesne jedinice (CPU)
Osnovna funkcija CPJ je da izrava program smjeten u glavnoj memoriji. Osnovni
funkcionalni blokovi CPJ su upravljaka jedinica i izvrna jedinica (u literaturi poznata i kao
staza podataka data path). Upravljaka jedinica vri pribavljanje instrukcija iz memorije,
njihovo dekodiranje i generisanje upravljakih signala za izvrnu jedinicu (pribavljanje podataka i
instrukcija iz memorije se moe realizovati i posebnom funkcionalnom jedinicom). Izvrna
jedinica izvrava operacije predviene datom instrukcijom. Podaci u okviru CPU cirkuliu
jednom ili vie skupina linija internih magistrala.Detaljnija blok ema procesora data je na sl. 3.4.
Reset
+1
P
C
Sl. 3.4 Blok ema CPJ
7/27/2019 Skripta(1 Dio) ar
19/76
19
33..33 Izvrna jedinica
Izvrna jedinica sadri aritmetiko-logiku (ALU) i druge funkcionalne jedinice za
manipulaciju podacima, registre, pomjerae, generator adrese i komunikacione puteve
izmeu njih. Kada postoji vie puteva podataka na ulazu/izlazu neke komponente,neophodna su upravljaka kola za selekciju podataka na odgovarajuim putevima
(upravljake take). Upravljaka taka je prekida puta podataka koja, na bazi upravljakog
signala, dozvoljava ili blokira prenos podataka na odgovarajuem prenosnom putu. Na sl 3.5 dat
je principijelni primjer implementacije upravljakih taaka na ulazu/izlazu jedne funkcionalne
jedinice CPU-a.
3.5
3.5
Sl. 3.5 Upravljake take procesora
Upravljake take pripadaju upravljakoj jedinici, a sami putevi za prenos podataka izvrnoj
jedinici. MDR (memory data register) je interni registar preko kojeg se vri upis podataka u
glavnu memoriju, odnosno itanje podataka iz glavne memorije. On slui kao bafer izmeu CPJ i
memorije pri prenosu podataka izmeu ovih jedinica. MAR (memory address regeister) je takoe
interni registar, preko kojeg se postavlja adresa memorijske lokacije koja se referencira (za itanje
ili upis). Transfer podataka iz memorije u registar se odvija u slijedeim koracima:
(MDR)Mem[MAR],
7/27/2019 Skripta(1 Dio) ar
20/76
20
(Rx) (MDR).
Kao to je prethodno reeno, ALU i druge funkcionalne jedinice (pomjerai, mnoai,
floating-point jedinice, grafike jedinice itd.) vre aritmetiko-logike operacije nad podacima-
operandima predviene instrukcijom.
3.3.1 Registri
Registri se u procesoru koriste za prihvat i uvanje rezultata nakon izvrenja operacija u
funkcionalnim jedinicama procesora, za prihvat podataka iz memorije, te za transfer
podataka/meurezultata iz procesora u memoriju. Sastoje se iz elemenata koji mogu imati dva ili
vie stabilnih stanja. Mogu se realizovati na razliite naine: kao flip-flopovi, kola koja uvaju
informaciju kao elektrini tovar na gejtu ili kapacitetu odreenog tipa FET-a, kao skup prekidaa
(fiksnog ili izmjenljivog stanja) itd. Izmeu bitova registara moe postojati odreena logika, koja
moe vriti odreene operacije izmeu susjednih bitova registra (npr. kopiranje sadraja
prethodnog/narednog bita u tekui bit registra, ime se ostvaruje pomjeranje sadraja u registru,
odbrojavanje na vie, na nie itd.).
Skup registara CPJ, ije stanje nakon izvrenja neke instrukcije moe imati uticaja na
izvrenje slijedee instrukcije naziva se programski model procesora. Ovo iz razloga to je za
programiranje na 'najniem' nivou dovoljno poznavanje programskog modela procesora, odnosno
uloge i funkcije svakog registra iz programskog modela. MAR i MDR su interni registri, i ne
pripadaju programskom modelu procesora. S obzirom da stanje ovih registara moe imati uticaj
na izvrenje slijedee instrukcije, programski model se mora sauvati u sluaju suspenzije
izvrenja programa (zbog prekida npr.), i restaurirati nakon zavretka suspenzije i prije nastavka
izvoenja suspendovanog programa. Ostali registri CPJ se mogu svrstati u grupu internih
registara.
Registri programskog modela
Ovi registre se mogu svrstati u slijedee grupe:
Programski broja. Neposredno prije poetka pribavljanja i izvrenja instrukcije, ovaj
registar sadri memorijsku adresu instrukcije koja treba da se izvri.
Registri opte 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 obino postoje ogranienja na generalnost primjene ovih registara.
7/27/2019 Skripta(1 Dio) ar
21/76
21
Registri za podatke. Ovi registri mogu prihvatati podatke i njihov sadraj se moe
koristiti kao operandi u operacijama specifikovanim instrukcijama. Ovi registri se ne
mogu koristiti za specifikaciju adrese.
Adresni registri. Koriste se za specifikaciju adrese operanada/instrukcija. Svakainstrukcija (sa izuzetkom instrukcije NOP No Operation) ili vri odreene operacije nad
operandima, ili vri transfer kontrole izvoenja programa na instrukciju ija lokacija u
memoriji nije neposredno iza tekue instrukcije (instrukcije grananja). Lokacije
operanada i slijedee instrukcije dobijaju se u procesu sraunavanja efektivne adrese
(operanada, instrukcije), a ovaj proces zavisi od primijenjenog naina adresiranja u
odnosnoj instrukciji. Razumijevanje naina adresiranja i formiranja efektivne adrese je od
kljunog znaaja za proces programiranja na asemblerskom nivou. Neki registri se u
instrukcijama pri formiranju efektivne adrese koriste inherentno, a neki eksplicitno(mogue je koritenje vie registara za specifikaciju adrese istovremeno). Postoji vie
varijanti adresnih registara, prema njihovoj ulozi u formiranju efektivne adrese:
Segmentni registri (Intel 8086, ). Efektivna adresa se formira
kombinacijom sadraja odnosnog segmentnog registra koji pokazuje na
poetak segmenta (bazna adresa) i ofseta odstojanja od poetka segmenta
koji se formira zavisno od adresnog naina. Koritenje ovih registara je
podrazumijevajue, ali se moe navesti i eksplicitna upotreba registra kojom
se ponitava podrazumijevajua upotreba (segment override)
Indeksni registri. Mogu se koristiti kao indeks u neko polje iji je poetak
odreen baznom adresom. Obino ovi registri imaju mogunost auto-
inkrementiranja odnosno auto-dekrementiranja.
Bazni registri. Njihova uloga je sutinski ista kao segmentnih registara, izuzev
to se ovi registri eksplicitno navode pri specifikaciji instrukcije.
Pokaziva steka. Ovaj registar pokazuje na vrh LIFO steka na koji se
automatski smjetaju podaci pri pozivu potprograma ili pri ulasku u proces
posluianja prekida. Takoe se stek moe koristiti za privremeno smjetanje
podataka koritenjem odgovarajuih instrukcija (PUSH, PULL/POP). U ovim
primjenama uloga pokazivaa je podrazumijevajua. Ovaj registar se najee
7/27/2019 Skripta(1 Dio) ar
22/76
22
moe i eksplicitno specifikovati (u instrukcijama kojima se inicijalizira ili
uva sadraj pokazivaa).
Statusni registar. Ovaj registar sadri markere (flags, condition codes), koji se
postavlja se obino ju za indikaciju rezultata prethodne operacije. Npr. nakon
izvrenja neke aritmetike operacije rezultat moe biti pozitivan, negativan, nula,
moe se desiti prenos (carry) ili preljev/premaaj opsega. esto je nakon ovih
aritmetikih operacija potrebno testirati rezultat izvrenja i donijeti odluku o
daljem pravcu procesiranja na osnovu rezultata testiranja (npr. za sluaj preljeva,
potrebno je pozvati neku rutinu za procesiranje greaka). Za ovo se koriste
instrukcije grananja zavisno od uslova (BNE, BPO, JE, ). Ove instrukcije kao
ulazne parametre koriste stanje markera u statusnom registru. Standardni markeri
u statusnim rijeima procesora su:
Sign (Znak). Bit koji oznaava znak (pozitivan/negativan) rezultata prethodne
operacije.
Zero (Nula). Bit koji je postavljen ako je rezultat prethodne operacije 0.
Carry (Prenos). Ovaj bit se moe postaviti razliitim instrukcijama, npr.
prenosom kod sabiranja iz bita najvie teine (odnosno 'pozajmljivanjem' kod
oduzimanja), pomjerakim instrukcijama te eksplicitnim postavljanjem
statusnog registra.
Overflow (Preljev/premaaj). Ovaj bit se postavlja kada se rezultat operacije
(npr. sabiranja) ne moe predstaviti brojem raspoloivih bita registra.
Interrupt enable (Omoguenje prekida). Ovim bitom se dozvoljava/
onemoguuje prekid izvrenja programa eksternim zahtjevom. U sluaju da je
prekid dozvoljen i da postoji zahtjev za prekid, procesor nakon kompletiranja
tekue instrukcije uva tekui kontekst/stanje izvrenja (ili neophodni dio tog
konteksta) i zapoinje izvrenje rutine za servisiranje prekida (interrupt
service routine). Ukoliko postoji vie ulaznih linija u procesor razliitih
prioriteta kojima se moe zahtijevati prekid tekueg izvoenja i servisiranje
zahtjeva, u tom sluaju u statusnom registru postoji vie bita kojima se
odreuje minimalni prioritet zahtjeva koji e biti posluen.
7/27/2019 Skripta(1 Dio) ar
23/76
23
Biti privilegovanog reima. Ovim bitima se moe specifikovati reim
izvoenja instrukcija: tipino korisniki reim (koji je efektivan kada se izvodi
korisniki program) ne moe izvoditi sve instrukcije iz repertoara procesora.
U supervizorskom reimu procesor izvodi sve instrukcije iz svog repertoara.
Mogue je postojanje i reima rada sa privilegijama izmeu dva navedena
sluaja.
Interni registri
Interni regstri su registri koje procesor interno koristi za privremeno smjetanje i baferovanje
podataka u procesu pribavljanja i izvrenja instrukcije. Stanje ovih registara nakon izvrenja neke
instrukcije ne utie na izvrenje slijedee instrukcije. Npr. MAR (memory address register) se
koristi postavljanje memorijske adrese sa koje se vri oitavanje podatka/instrukcije, odnosno na
koju se vri upis podatka. Nakon to se adresa (generisana generatorom adresa) postavi u MAR,
transfer podatka izmeu procesora i memorije se vri aktiviranjem upravljakih signala za itanje/
upis memorije (Mem_Read, Mem_Write). Ukoliko se vri upis u memoriju, prethodno se podatak
mora postaviti u MDR (memory data register). Nakon itanja iz memorije, podatak se takoe
prvo smjeta u MDR, a zatim se prosljeuje u registar ili ulaz ALU.
Npr. ako se izvodi instrukcija
ADD Rx, displ[Bx],
koja vri sabiranje sadraja registra Rx i memorijske lokacije odreene baznom adresom
(sadrane u registru Bx) i odstojanjem displ od poetka te adrese, onda:
generator adresa prvo sraunava efektivnu adresu EfADR = (Bx) + displ,
(MAR) EfADR,
(DR)Mem[MAR],
(Rx) (Rx) + (MDR). (ALU u jednom ciklusu sraunava zbir operanada koji su
dovedeni na ulaz Rx i MDR, te vraa rezultat u odredini
registar (Rx).
3.3.2 Interne magistrale
Internim magistralama se prenose podaci, adrese i upravljaki signali u okviru centralne
procesne jedinice. U cilju postizanja veih brzina, broj internih (on chip) magistrala je po pravilu
vei od spoljnih. U slijedeem primjeru su date varijante organizacije centralne procesorske
jedinice sa razliitim brojem internih magistrala.
7/27/2019 Skripta(1 Dio) ar
24/76
24
7/27/2019 Skripta(1 Dio) ar
25/76
25
3.3 Princip organizacije
3.4 Struktura CPU
3.5 Bazi~na organizacija memorije
3.6 Izvo|enje programa
3.7 Povezivanje i komunikacija sa periferijskim podsistemom
3.8 Magistrale
Izvrna jedinica
+1
7/27/2019 Skripta(1 Dio) ar
26/76
25
33..33 Upravljaka jedinica
Upravljaka jedinica generie signale za upravljanje svim aktivnostima u okviru CPJ,
kontrolom upravljake jedinice se vri dobavljanje instrukcije iz memorije, njeno
dekodovanje i identifikacija operacije koju je potrebno izvriti, identifikacija i prenos
operanada od izvorita do funkcionalnih jedinica gdje se zahtijevana operacija izvodi, te
vraanje rezultata na odredite. Ovaj proces se pod kontrolom upravljake jedinice
ponavlja pri izvoenju svake slijedee instrukcije. Dakle, upravljaka jedinica djeluje kao
'komandni centar' iz kojeg se upravlja radom ostalih jedinica sistema, a u svrhu izvrenja
niza mainskih instrukcija programa ime se realizuje eljena funkcija - algoritam.
Da bi upravljaka jedinica ostvarila ove zadatke, ona mora da:
obezbijedi korektan redoslijed izvrenja instrukcija (sekvenciranje instrukcija),
generisanjem potrebnih signala obezbijedi izvrenje selektovane instrukcije.
Sekvenciranje instrukcija
Kao to smo prethodno naveli, procesor izvodi niz instrukcija (elementarnih akcija sa
stanovita asemblerskog programiranja) iz skupa mainskih instrukcija procesora. Skup
mainskih instrukcija moe biti razliit (minimalni skup kojim se moe realizovati svaki
algoritam je skup koji se sastoji iz (M. L. Minsky, 1967):
instrukcije ADD ONE (dodaj jedan) i,
instrukcije DECREMENT AND JUMP IF ZERO (umanji sadraj za jedan uz
grananje ako je rezultat 0).
Podrazumijeva se da se iza prve instrukcija (ADD ONE) u sekvencijalnom programu
moe izvesti samo jedna (slijedea sekvencijalna instrukcija), tj. da ona ima samo jednog
nasljednika, dok se nakon izvrenja druge instrukcije (DECREMENT AND JUMP IF
ZERO) izvodi jedna od dvije mogue 'slijedee' instrukcije, zavisno od rezultata
izvrenja. Druga instrukcija spada u grupu instrukcija grananja. U praksi je broj
instrukcija prvog tipa znatno vei od drugog (priblino je 20% instrukcija grananja).
Logika za odreivanje lokacije slijedee instrukcije, nakon izvoenja instrukcije I1
prvog tipa, je jednostavna: ako PC pokazuje na lokaciju instrukcije I1, onda:
7/27/2019 Skripta(1 Dio) ar
27/76
26
na osnovu operacionog koda i naina adresiranja instrukcije I1, moe se utvrditi
broj bajta w instrukcije I1,
ako je slijedea instrukcija koja treba da se izvede smjetena neposredno iza I1,
onda se njena adresa moe odrediti novom vrijednou PC-a:
PCPC+ w.
Kod instrukcije grananja, ukoliko je rezultat izvrenja takav da je potrebno izvriti
instrukciju koja se ne nalazi iza same instrukcije nego na mjestu MX, onda sama
instrukcija grananja sadri informacije (nain adresiranja, registri koji se koriste za
specifikaciju adrese, ofseti i slino) na osnovu kojih se sraunava vrijednost MX
(efektivna adresa) tako da je proces sraunavanja adrese slijedee instrukcije slijedei:
na osnovu operacionog koda i naina adresiranja instrukcije I1, utvruje se broj
bajta w instrukcije,
ukoliko je uslov testiranja istinit, onda se na osnovu adresnog naina sraunava
MX i PCMX; u suprotnom PCPC+ w.
Pored prenosa upravljanja sa sukcesivnog toka instrukcija na instrukciju koja nije u
nizu instrukcijama grananja (koje mogu biti instrukcije uslovnog ili bezuslovnog
transfera), ovaj prenos se standardno u raunarskim sistemima moe realizovati
instrukcijama za poziv potprograma (instrukcije tipa CALL, JSR ili slino), ili
dogaajem prekida. Tipino, u ovim sluajevima, prenos upravljanja je privremen, i
vraa se na taku gdje se prekid desio nakon zavretka potprograma ili obrade prekida.
Izvoenje instrukcija
Izvoenje instrukcija se realizuje tako to upravljaka jedinica generie niz upravljakih
signala u pravo vrijeme i u korektnoj sekvenci, koji upravljaju radom izvrne jedinice
procesora. Ovi signali su:
interni upravljaki signali (koji upravljaju radom sklopova u okviru CPU-a),
spoljni upravljaki signali (signali tipa MR, MW, IOR, IOW, statusni signali
procesora),
spoljni ulazni upravljaki signali (signali tipa Reset, Ready, BussError itd.),
7/27/2019 Skripta(1 Dio) ar
28/76
27
instrukcija signali na ovim linijama ukazuju na tip operacije koja treba da se
obavi (Sl. 3.6).
6
Tipovi upravljakih jedinica
Dve su varijante realizacije upravljake jedinice:
direktno upravljanje. Logikom mreom se generiu kontrolni signali u
predefinisanom redoslijedu za svaku mainsku instrukciju (hardwired/konvencionalni
pristup),
mikroprogramsko upravljanje (Wilkis 1953). Kontrolni signali se generiu izvrenjem
mikroinstrukcija zapisanih u internoj mikroprogramskoj memoriji procesora.
Izvoenje svake mainske instrukcije (koja ima svoj asemblerski ekvivalent) se
realizuje nizom elementarnih akcija koje se implementiraju mikroinstrukcijama.
Prednost direktnog upravljanja je brzina a mikroprogramskog jednostavnost
realizacije i izmjena/otklanjanja greaka u projektovanju. Mikroprogramsko upravljanje
takoe daje veu fleksibilnost u smislu mikroprogramske implementacije specijalnih
rutina (korisnikih, dijagnostikih i dr.), mogunost emulacije procesora starijih
generacija ili drugih procesora itd.
7/27/2019 Skripta(1 Dio) ar
29/76
28
Upravljaka jedinica sa direktnim upravljanjem.
Varijante ovog tipa upravljakih jedinica su upravljake jedinice zasnovane na:
tabeli stanja,
elementima za kanjenje
brojakoj sekvenci.
Prilikom izvoenja instrukcije procesor prolazi kroz niz internih stanja. Na osnovu
tekueg stanja i skupa ulaznih signala, generiu se izlazni signali i procesor prelazi u
novo stanje. Dio generisanih izlaza se koristi kao ulazni signali sljedeeg stanja. Logika
rada, moe se predstaviti tabelom stanja, kojom se opisuje prelazi procesora kroz interna
stanja. Na Sl. 3.7 vrste u tabeli odgovaraju internim stanjima iz skupa Sint. Kolone u tabeliodgovaraju podskupovima ulaznih signala bj A ul. Iz stanja Sipod dejstvom podskupa
ulaznih signala bj prelazi se u novo stanje Sij, pri emu se aktiviraju ulazni signali
definisani sa aij Aiz.
Sl. 3.7 Tabela stanja upravljake jedinice
Problem sa realizacijom upravljake jedinice upravljane na bazi tabele stanja je u veliini
tabele, zbog velikog broja moguih stanja i velikog broja stanja ulaznih signala.
Upravljaka jedinica zasnovana na elementima za kanjenje
Kod ovog koncepta upravljakih jedinica, polazi se od dijagrama toka rada upravljake
jedinice. Za reprezentaciju n stanja sistema koristi se n-bistabilnih elemenata; jedan
element po stanju.
7/27/2019 Skripta(1 Dio) ar
30/76
29
U datom trenutku aktivan je samo jedan bistabilni element i taj ukazuje na tekue stanje.
Prelaz u novo stanje se moe predstaviti podskupom osnovnih koncepata dijagrama toka,
pri emu se svaki od ovih koncepata implementira odgovarajuim upravljakim kolom
(Sl.3.8)
Nedostatak ove metode je u velikom broju flip-flopova koji se koriste za reprezentaciju
stanja sistema, odnosno elemenata za kanjenje. Slian koncept realizacije je koncept
zasnovan na brojakoj sekvenci.
Sl. 3.8 Realizacija koncepata dijagrama toka upravljakim kolima
Metoda brojake sekvence
Upravljaka jedinica ovog tipa pretpostavlja izvrenje mainske instrukcije u kkoraka. U
i-tom koraku aktivira se neki skup upravljakih linija koritenjem odnosnog faznog
impulsa i. Fazni impulsi i (i = 1, , k) generiu se kolom 'broja sekvenci'. Sukcesivni
impulsi na izlazu brojaa sekvenci su vremenski pomjereni za vrijeme trajanja impulsa
7/27/2019 Skripta(1 Dio) ar
31/76
30
(Sl. 3.9). Sprega brojaa sekvenci i logikog bloka kojim se implementira odnosna
funkcija predstavljena je na sl. 3.10 (3.36).
Sl.3.9 Broja sekvenci modula k
Sl. 3.10 Sprega brojaa sekvenci i logikog bloka
7/27/2019 Skripta(1 Dio) ar
32/76
31
Primjer generisanja upravljakih signala pri izvoenju ADD instrukcije hipotetikog
procesora metodom brojake sekvence, dat je u tekstu koji slijedi. Dio staza podataka
hipotetikog procesora prikazan je na sl. 3.11 (1.2MP). Kontrolne take su predstavljene
kruiima. Sadraj registra iz registarskog skupa, specifikovanog A-adresom ili B-
adresom se prosljeuje na odnosnu magistralu (A ili B) tako da se oni pojavljuju na ulazu
ALU kao operandi. Izlaz iz ALU-a ide na D-magistralu, i moe se kopirati u registar
specifikovan B-adresom. Za selekciju registra A i B koriste se kontrolni signali 1 i 2, za
kopiranje izlaza ALU signal 3, za oitavanje/upis sadraja registra kontrolni signal 4 i za
specifikaciju ALU operacije signali 5 8.
Sl. 3.11 Staze podataka hipotetikog procesora
Pretpostavimo da ADD instrukcija hipotetikog procesora ima format:
7/27/2019 Skripta(1 Dio) ar
33/76
32
OPCODE ADD A-adresa B-adresa
pri emu A i B adrese specifikuju odnosni registar u registarskom skupu. ADD
instrukcija se moe definisati kao to slijedi:
Dodaj sadraj registra specifikovanog A-adresom sadraju registra
specifikovanog Badresom, i smjesti rezultat u registar odreen B-
adresom.
Pretpostavimo da je instrukcija ve raspoloiva u registru (instrukcioni registar).
Vremenski dijagrami signala potrebnih za implementaciju gornje instrukcije, zajedno sa
osnovnim taktom i faznim signalima 1 -4, dati su na Sl. 3.12.
Sl. 3.12 Vremenski dijagrami upravljakih signala za implementaciju ADD instrukcije
7/27/2019 Skripta(1 Dio) ar
34/76
33
ADD operacija se implementira slijedeom sekvencom dogaaja:
1 a. Omogui A-adresu: Ovim se postavlja prvi operand na ulaz ALU
b. Omogui B-adresu: Ovim se postavlja drugi operand na ulaz ALU
c. Postavi ALU kontrolu: Ovim se specifikuje operacija za izvrenje u ALU
2 a. Omogui A-adresu: Zadri A - vrijednost na ulazu ALU-a
b. Omogui B-adresu: Zadri B - vrijednost na ulazu ALU-a
c. Omogui D-prihvatnik (le): Proslijeivanje rezultata na D-magistralu
d. Postavi ALU kontrolu: Zadri ALU OPCODE
3 a. Onemogui A-adresu: (posto vie nije potrebna)
b. Omogui B-adresu: Za upis sadraja D magistrale u B registar
c. Onemogui D-prihvatnik (le): (vie nije potrebna)
d. Omogui upis: Omoguava upis D magistrale u B registar
4 Onemoguenje svih signala: Kraj operacije
7/27/2019 Skripta(1 Dio) ar
35/76
34
Kontrolna logika potrebna za generisanje vremenskog dijagrama sa Sl. 3.12. data je na Sl.
3.13.
Sl. 3.13
Metoda zasnovana na elementima za kanjenje je konceptualno ista kao i metoda
zasnovana na brojakoj sekvenci. Konverzija rjeenja na bazi prve metode u rjeenje na
bazi brojake sekvence je predstavljena na Sl. 3.14.
7/27/2019 Skripta(1 Dio) ar
36/76
35
Sl. 3.14 Korespondencija izmeu metode zasnovane na kanjenju i metode zasnovane na
upravljakoj sekvenci
7/27/2019 Skripta(1 Dio) ar
37/76
38
Kao to je prethodno reeno, mikroinstrukcije sadre skup mikrokomandi koje
kontroliu izvrenje skupa mikrooperacija u toku mikroinstrukcionog ciklusa. Ukoliko se
svakom mikroinstrukcijom kotrolie izvrenje samo jedne mikrooperacije, onda se radi o
vertikalnim mikroinstrukcijama, a ako se jednom mikroinstrukcijom moe specifikovati
izvrenje vie mikrooperacija, onda se radi o horizontalnim mikroinstrukcijama.
Prednost vertikalnih mikroinstrukcija je u:
maksimalnom iskoritenju mikroinstrukcione rijei, jer se specifikuje samo
operacija koja se izvodi,
mikroprogramiranje je jednostavno zbog jednostavnosti formata mikroinstrukcija.
Nedostatci vertikalnog mikroprogramiranja su u relativno dugim sekvencama
mikroinstrukcija, to implicira due vrijeme izvrenja mikroprograma i to nema
mogunost paralelnog izvoenja mikrooperacija.
esto se pod horizontalnim mikroinstrukcijama podrazumijeva maksimalni
paralelizam operacija, to podrazumijeva koritenje veeg broja razliitih polja u okviru
mikroinstrukcije. Balansirani pristup koristi manji broj polja za specifikaciju mikro-
operacija nego kod horizontalnih mikroinstrukcija; ovaj format mikroinstrukcija se esto
referie terminom dijagonalni format (dijagonalne mikroinstrukcije). Dok je broj
razliitih polja kod vertikalnih mikroinstrukcija 1-3, horizontalnih vei od 6, kod
dijagonalnih instrukcija broj razliitih polja je od 4-6.
Ukoliko se u mikroprogramskoj memoriji nalazi veliki broj mikroinstrukcija koje se
ponavljaju (ako je ukupan broj mikroinstrukcija n, broj razliitih mikroinstrukcija je m pri
emu je esto m
7/27/2019 Skripta(1 Dio) ar
38/76
39
Sl. 3.15 Konvencionalni i nanoprogramski koncpet realizacije mikroprogramske
memorije
7/27/2019 Skripta(1 Dio) ar
39/76
40
33..44 Ulazno/Izlazni podsistem
3.4.1 Povezivanje procesora sa okolinom
Fiziko povezivanje mikroprocesora sa okolinom realizuje se preko elektriki
provodljivih noica pinova. Preko pinova se realizuje napajanje procesora, taktna
pobuda te prenos signala za komunikaciju sa memorijom i U/I podsistemom. Putevi koji
povezuju pinove procesora sa ostalim dijelovima sistema ine spoljanu magistralu
procesora. Razliiti procesori mogu imati odreene specifinosti u pogledu broja i
funkcija pojedinih linija. Za ilustraciju, primjer linija za povezivanje hipotetikog
procesora dat je na sl 3.16.
Sl. 3.16
3.4.2 Princip povezivanja sa U/I podsistemom
Raunar komunicira sa spoljnim svijetom (ljudi, industrijski procesi itd.) preko
ulazno/izlaznih jedinica (ureaja). S obzirom na primjenu raunara u svim oblastima
ljudske djelatnosti, razvijen je veliki broj periferijskih ureaja sa kojima raunar moe da
komunicira. Mnogi od ovih ureaja postali su standardni dio raunarskih sistema. I pored
7/27/2019 Skripta(1 Dio) ar
40/76
41
velikog broja, veoma razliitih perifernih jedinica, princip njihovog povezivanja sa
raunarima je u znatnoj mjeri standardizovan.
Prema komunikacionim karakteristikama, U/I ureaje moemo grupisati u:
razumljive ovjeku (terminali, tampai, zvune U/I jedinice itd.),
itljive od strane maine (magnetne trake, diskovi, skeneri itd),
komunikacione (pogodni za komunikaciju sa udaljenim ureajima),
razumljive specifinim ureajima/procesima (A/D konvertori, jedinice zasprezanje sa izvrnim organima itd.)
Prema brzini, razlikujemo brze (magnetni diskovi, A/D konvertori, komunikacioni
ureaji), jedinice srednjih brzina (jedinice magnetnih traka, standardni tastarure
tampai itd.) i spore ureaje ( prekidai, releji i slino).
Princip povezivanja periferijskih jedinica i raunara moe se predstavi sl. 3.17. Sa
slike se vidi da se povezivanje sa periferijom vri posredstvom U/I interfejsa. Kao i
memorijska sabirnica i U/I sabirnica sadri adresne linije, linije podataka, i kontrolne
linije. Adresne linije slue za selekciju registara (portova) preko kojih se odvija
komunikacija sa periferijskim jedinicama, a preko linija podataka se vri prenos
informacija izmeu periferija i raunara. Kontrolnim linijama se prenose kontrolne i
statusne informacije i vri sinhronizacija prenosa. Broj adresnih linija kao i broj linijapodataka ne moraju da korespondiraju broju odnosnih linija na memorijskoj sabirnici.
Sl. 3.17 Povezivanje raunara sa periferijama
7/27/2019 Skripta(1 Dio) ar
41/76
42
Principijelna blok ema U/I interfejsa prikazana je na sl. 3.18
Sl. 3.18 Blok ema U/I interfejsa
Iako memorijski i U/I podsistem mogu da dijele odreene linije i adresa i podataka,
oni su logiki razdvojeni: odreene kontrolne linije specifikuju da li se operacije odnose
na U/I ili memorijski podsistem. Npr. pri generisanju U/I adrese 5, na adresnim linijama
e se pojaviti vrijednost 5, ali e aktivan biti kontrolni signal za komunikaciju sa
periferijama (M/IO u logikoj 0 ), a pri generisanju memorijske adrese 5, pored iden-
tinog sadraja na adresnim linijama, na kontrolnim linijama signal M/IO bie u stanju
logiko 1.
I pored standardizacije tehnika povezivanja U/I ureaja sa raunarima problemi kod
povezivanja proistiu iz razlike u: brzini periferija; broju bita prenosa; specifinom
nainu zapisivanja/predstavljanja podataka; tipovima dozvoljenih operacija, nainu
detekcije i reakcije na pojave greaka itd. Zbog tih specifinosti, nije racionalna
implementacija logike povezivanja sa periferijama u sam CPU.
3.4.3 U/I interfejs
7/27/2019 Skripta(1 Dio) ar
42/76
43
U/I interfejs kontrolie rad periferijskih jedinica u skladu sa naredbama procesora
raunara, i po potrebi vri konverziju podataka iz jednog formata u drugi. Najee su
periferijske jedinice zasebne cjeline, dok se U/I interfejs pakuje u isti kabinet/kuite sa
procesorom i memorijom.
Ponekad nije jednostavno utvrditi liniju razgranienja izmeu periferije i interfejsa.
Npr. na sl. 3.19, enkoder konvertuje pritisak na tipku tastature u 7-bitni ASCII kod. Ovaj
kod se pamti u interfejsu ka magistrali, i na zahtjev prosljeuje na samu magistralu. Iako
je logiki enkoder u sastavu interfejsa, on se najee pakuje zajedno sa tastaturom, dok
se interfejs prema magistrali implementira u kuitu zajedno sa procesorom.
Sl. 3.19 Jednostavni interfejs tastature
U/I interfejs treba da prepozna kada mu se CPU obraa u cilju slanja/itanja podataka
/komandi/statusa i da izvri u predvienom vremenu zahtijevanu akciju/operaciju: prihvat
ili slanje odnosnih podataka. Za realizaciju toga cilja, U/I interfejs treba da generie i da
procesira odnosne signale za sinhronizaciju komunikacije sa CPJ. Zahtjevi analogni
navedenom se postavljaju i pri komunikaciji U/I interfejsa sa periferijom. Dodatno, U/I
interfejs treba da obezbjedi potrebnu konverziju podataka iz formata u kojem prima
(alje) podatke od CPJ (periferijske jedinice) u format prijema od strane periferijske
jedinice (CPJ), da obezbijedi procesiranje greaka itd. Principijelna blok ema U/Iinterfejsa, kojom se obezbjeuju navedene funkcije data je na sl. 3.20.
7/27/2019 Skripta(1 Dio) ar
43/76
44
Sl. 3.20 Blok ema U/I interfejsa
U/I portovi
Periferijski interfej sadri skup registara U/I portova kojima CPU moe da pristupa
i preko kojih CPU komunicira sa interfejsom. Funkcije portova mogu biti:
Baferovanje podataka ka/iz memorije, uvanje informacije o statusu ureaja sa kojim se komunicira, Registrovanje komandi CPU a upuenih U/I interfejsu.
7/27/2019 Skripta(1 Dio) ar
44/76
45
Skup portova predstavlja U/I programski model. Programski model interfejsa
tastature sa sl. 3.19 sastoji se od jednog 8-bitnog I/O porta (KBDATA) (sl. 3.20).
7 6 0
0 Kod tipke (ASCII) KBDATA
Sl. 3.20 Programski model interfejsa tastature
Da bi oitao podatak sa tastature, program mora da izvede instrukciju koja vri
transfer sadraja porta KBDATA u jedan od registara procesora. Iako je port KBDATA
sa stanovita procesora read-only (mogue samo itanje), encoder (interfejs) moe da
'upisuje' u njega podatke. Pokuaj upisa u port sa procesorske strane nema efekta na
sadraj registra. Zbog navedenog, port se naziva 'ulazni'.
Primjer interfejsa ka izlaznoj periferijskoj jedinici, sa jednim (izlaznim) portom
(DIGOUT) u interfejsu, prikazan je na sl. 3.21.
Sl. 3.21 a) 7-segmentni displej i pripadajui interfejs; b) programski model
Periferija interpretira 8-bitni podatak kao dvije BCD cifre, sa prikazom na 2 7-
segmentna displeja. Da bi se izvrio prikaz eljenih cifara, procesor mora poslati 2 BCD
cifre u 1-om bajtu na izlazni port DIGOUT odgovarajuim instrukcijama.
7/27/2019 Skripta(1 Dio) ar
45/76
46
Pored toga to je KBDATA ulazni a DIGOUT izlazni port, razlika je i u tome to
KBDATA ne pamti sadraj pritisnutog tastera, nego ga samo baferuje za prosljeivanje
na U/I magistralu (kada se tipka tastature otpusti, istovremeno dolazi i do promjene
KBDATA). S druge strane DIGOUT je registar sa memorijom: nakon upisa od strane
procesora, sadraj porta se ne mijenja dok se ne upie nova vrijednost od strane CPU-a.
Prema tipu podataka koji se izmjenjuju izmeu porta i procesora, razlikujemo:
port podataka (preko kojeg se izmjenjuju podaci),
statusni port (preko kojeg procesor moe dobiti informaciju o stanju prenosa, U/I
interfejsa odnosno ureaja),
upravljaki port, preko kojeg CPU postavlja komande i parametre za izvoenje
U/I operacija.
3.4.4 Naini selekcije U/I ureaja
Za selekciju U/I ureaja i transfer podataka ka perifernim ureajima (i obrnuto),
procesor moe koristiti dva naina. Jedan je koritenjem specijalnih U/I instrukcija
procesora (izolirani U/I), dok se drugi realizuje koritenjem instrukcija za izmjenu
podataka sa memorijom (memorijsko mapirani U/I).Primjer koritenja i formata U/I instrukcija IN / OUT je dat na sl. 3.22.
IN Rn, Pn ; uitava se u registar Rn sadraj porta Pn,
OUT Pn, Rn ; upisuje se u port Pn sadraj registra Rn.
15 4 3 0
Opcode Rn
Pn
Sl. 3.22 Koritenje i format U/I instrukcija
IN / OUT instrukcije izvravaju transfer podataka slino memorijskim instrukcijama
LD / ST, izuzev da ne adresiraju memoriju nego U/I port. Pri izvoenju memorijskih
instrukcija procesor aktivira signal M/IO za selekciju memorije (logiko 1). Signal M/IO
7/27/2019 Skripta(1 Dio) ar
46/76
47
se koriste kako za selekciju portova U/I interfejsa (pored adresnih informacija), tako i za
inicijalizaciju samog transfera. Pri transferu podataka iniciranom IN/OUT instrukcijama,
memorija nije 'prozvana', jer je kontrolni signal M/IO postavljen na 0. Na taj nain
adrese selektuju ili I/O portove, ili memorijske lokacije, zavisno od koritenih instrukcija
(odnosno kontrolnih signala koji se generiu). Kod memorijski mapiranog U/I, I/O
portovima se pristupa koritenjem memorijskih instrukcija. Jedan dio memorijskog
adresnog prostora je pridjeljen za adresiranje U/I portova (sl. 3.23).
Sl. 3.23 Izolovani i memorijski-mapirani I/O
Prednosti memorijski - mapirane U/I komunikacije su:
ne zahtijeva specijalizovane U/I instrukcije (kod nekih procesora oveinstrukcije nisu ni raspoloive),
za U/I transfer se mogu koristiti sve instrukcije za referenciranje memorije,
raspoloiv je veliki broj U/I portova,
pojednostavljuje se hardverska struktura.
Nedostaci memorijski - mapirane U/I komunikacije su: gubitak dijela adresnog prostora memorije (namijenjen za U/I), memorijske instrukcije nisu optimizovane za U/I operacije.
3.4.5 Tehnike U/I komunikacije i prenosa podataka
7/27/2019 Skripta(1 Dio) ar
47/76
48
Pri U/I komunikaciji CPU moe biti u veoj ili manjoj mjeri ukljuen u proces U/I
komunikacije. Ako su U/I operacije u potpunosti kontrolisane od strane CPU-a
(iniciranje, osmatranje statusa periferije, transfer podataka i okonanje transfera), onda se
ovakav tip transfera nazivaprogramirani U/I prenos.
Programirani U/I prenos
Tipian protokol komunikacije za oitavanje podataka sa ulaznog porta kod
programiranog U/I prenosa dat je na sl. 3.24.
Sl. 3.24 Protokol komunikacije za ulaznu jedinicu.
Sl. 3.25 Programski model tastature sa kontrolnim i statusnim portom
Npr. za programski model tastature koji se sastoji od jednog kontrolnog i statusnog
porta i jednog ulaznog porta za podatke (sl. 3.25), uitavanje podataka tehnikom
programiranog ulaza/izlaza dat je slijedeim kodom:
7/27/2019 Skripta(1 Dio) ar
48/76
49
INIT: LDA #1 ; Start (iniciranje) operacije
STA KBCS ;
CEKANJE: TST KBCS ; Testiranje spremnosti interfejsa (RDY=1)
BPL CEKANJE ; ekanje, ako interfejs nije spreman
LDA KBDATA ; Interfejs spreman, oitaj podatak
.
Pored ove varijante programiranog U/I (uslovni U/I prenos), u varijanti bezuslovnog
prenosa procesor ne ispituje status spremnosti periferije za komunikaciju; ovo se
primjenjuje kada se zna da je periferija uvijek spremna za U/I komunikaciju u trenutku
iniciranja transfera. Primijetimo da je mogue inicirati pripremu slijedeeg podatka (npr.
kod itanja jedinice magnetne trake), nakon oitavanja prethodnog, i nastaviti obradu
(preklapanje obrade i U/I overlapped U/I).
Tehnika prenosa podataka programiranim U/I ima veliki nedostatak u ogromnom
gubitku procesorskog vremena dok se eka na spremnost periferije (problem se dijelom
moe ublaiti preklapajuim U/I). U cilju minimizacije utroka procesorskog vremena pri
U/I komunikaciji, razvijene su prekidne tehnike prenosa podataka, kao i prenos podataka
direktnim pristupom memoriji.
7/27/2019 Skripta(1 Dio) ar
49/76
50
Prekidna tehnika U/I komunikacije
Prekidi
Prekidi su dogaaji koji uzrokuju prekid izvravanja normalnog toka programske
sekvence. Ovi dogaaji mogu biti razliiti, a dijele se na softverske (generisane
programom) i hardverske (generisane hardverskim sklopovima/ureajima) (sl. 3.26).
Prekid proizilazi iz vieg prioriteta servisiranja dogaaja koji uzrokuje prekid, u odnosu
na prioritet izvravanja osnovnog programa. Servisiranje se realizuje aktiviranjem
prekidne rutine (interrupt service routine) koja treba da izvede sve potrebne akcije koje
zahtijeva pojava tog dogaaja. Nakon servisiranja dogaaja prekida programska sekvenca
se vraa na taku prekida, nakon ega se nastavlja izvoenje osnovnog programa.
Prekidi
Softverski (sinhroni) Hardverski
Eksplicitnogenerisani
Poslj. greke uizvoenju programa
SWI
INT
SIM I/O INT
.
.
.
Eksterni Interni
Maskirani Nemaskirani
I/OALARM
TIMER
.
.
.
.
.
..
.
.
DIV BYZERO
POWER FAIL
MACHINEMULFUNCTION
PARITY ERROR
.
.
.
Sl. 3.26 Klasifikacija prekida
7/27/2019 Skripta(1 Dio) ar
50/76
51
Odreeni dogaaji najvieg prioriteta uvijek uzrokuju prekid (npr. POWER FAIL,
MACHINE MULFUNCTION, ALARM, DIV BY ZERO, ). Maskirani prekidi se
posluuju samo ako procesor prethodno postavi bitove dozvole prekida u statusnoj rijei
procesora za odnosne dogaaje.
Ideja prekida potie od problema komunikacije sa periferijama. Kod programiranog
I/O procesor kontinualno testira spremnost periferije za komunikaciju. Pri takvom nainu
komunikacije, u sistemu sa mnogo periferijskih jedinica procesor bi veinu vremena
troio u ekanju na spremnost periferija. Takav nain rada bi usporavao ak i periferijske
jedinice: periferija koja ima spreman podatak bi mogla da eka znaajan vremenski
period zbog komunikacije procesora sa drugim periferijama programiranim U/I, to bi
blokiralo pripremu novih podataka od strane periferija koje ekaju na komunikaciju.
Alternativni pristup je da procesor radi koristan posao izvodei osnovni program, a daperiferija kada postane spremna za komunikaciju, izvjesti o tome procesor postavi
zahtjev za komunikaciju. Na osnovu prioriteta zahtjeva, procesor moe prihvatiti zahtjev
i servisirati dogaaj aktiviranjem prekidne rutine, ili odloiti servisiranje zahtjeva za neki
kasniji trenutak vremena.
Procesor moe prekinuti tekuu sekvencu kontrolnog toka samo izmeu individualnih
mainskih instrukcija. Razlog tome je to to program ije se izvrenje prekida, treba da
nastavi rad od take prekida nakon servisiranja dogaaja koji ga je generisao. Za to je
potrebno uvanje stanja procesora (konteksta) u trenutku prekida, i restauracija tog stanja
nakon servisiranja prekida. Poto je za izvoenje instrukcije osnovnog programa iza take
prekida bitan samo kontekst programskog modela nakon izvoenja prethodne instrukcije,
onda se prekidi dozvoljavaju samo nakon kompletiranja izvrenja jedne instrukcije a prije
poetka izvrenja druge. Dakle, proces izvrenje jedne instrukcije bi se mogao opisati
sekvencom:
BEGINCheckForInterrupt;Fetch;Execute;
END
7/27/2019 Skripta(1 Dio) ar
51/76
52
CheckForInterrupt sekvenca utvruje postojanje zahtjeva za prekid, odnosno
dogaaja koji zahtijevaju posluivanje. Ukoliko se radi o dogaaju (tipu prekida) koji
zahtijeva neodlono servisiranje ili ako je prekid koji se moe kontrolisati (maskirati)
dozvoljen, onda se ulazi u proces posluivanja prekida u okviru kojeg se:
Pohranjuje u memoriju (na stek) dio stanja ili kompletno stanje programskogmodela procesora i postavlja u PC adresa poetka rutine za servisiranje prekida (usklopu CheckForInterruptsekvence),
Identifikuje izvor (uzrok prekida) i izvode se sve potrebne akcije za servisiranjeprekida (u sklopu ISR rutine za servisiranje prekida),
Sauvano stanje programskog modela se restaurira sa steka (insrukcijom RTI return from interrupt, koja se izvodi na kraju ISR) i nastavlja izvoenje od mjestagdje je prekid nastao.
Automatsko uvanje (dijela) programskog modela procesora, u procesu posluivanja
prekida, obuhvata obavezno programski broja i statusnu rije procesora. Ukoliko je broj
registara procesora mali, onda se najee 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 rijei) pri
ulasku u servisnu rutinu i restauracija sauvanog stanja pri povratku iz servisne rutine
naziva se promjena konteksta procesora (context switching). U cilju brzog uvanja/
restauracije konteksta, mnogi procesori imaju specijalizovane instrukcije kojim se
specifikuje opseg registara iji se sadraj pohranjuje/restaurira.
Servisiranje prekida zavisi od prirode dogaaja koji ga je uzrokovao. U daljnjem
tekstu bie opisano vie varijanti koritenja mehanizma prekida u procesu U/I
komunikacije.
Sistem sa veim brojem prekidnih linija
Najjednostavniji sluaj realizacije U/I komunikacije prekidnim mehanizmom je da
svaka periferija ima svoju prekidnu liniju (Sl. 3.27). Svaka linija kojom se zahtijeva
prekid ima obino fiksan prioritet. Omoguenje prekida odreenih prioriteta se kontrolie
internim bitovima dozvole (interrupt enable). Za svaku prekidnu liniju definisana je
specifina adresa na koju se preusmjerava programska sekvenca u sluaju dogaaja
7/27/2019 Skripta(1 Dio) ar
52/76
53
prekida (adresa ISR). U okviru interne CheckForInterrupt(mikroprogramske) sekvence
procesora se:
utvruje zahtjev za prekid najvieg prioriteta u IR,
ukoliko je prekid tog nivoa dozvoljen (odgovarajuim bitima dozvole prekida(obino u statusnoj rijei procesora) kojima se specifikuje dozvola prekida
odreenog prioriteta i vieg), onda se ulazi u sekvencu posluivanja prekida
(pohranjivanje stanja i ulazak u ISR). Adresa ISR je odreena zahtjevom INTRi
koji se posluuje.
3.27
Kod prekidnog sistema ovog tipa (multinivoijski prekidni sistem sa n-nivoa) tipino
ureenje prioriteta je slijedee:
Ako se posluuje prekid nivoa k < n, onda su dozvoljeni prekidi nivoa k+1, , n.
Koncept gdje se svakom U/I interfejsu pridjeljuje jedan prekidni nivo, nije pogodan,
jer broj periferija i U/I interfejsa moe biti veliki (nije ga lako unaprijed ni predvidjeti).
Zbog toga se koristi rjeenje gdje je na jednu liniju zahtjeva za prekid mogue vezati vei
broj U/I interfejsa (na ulazu u procesor moe postojati jedna ili vie prekidnih linija). Pri
tome se koriste razliite tehnike za utvrivanje izvora prekida na odreenoj liniji.
Identifikacija prozivanjem
Kada se desi prekid uzrokovan zahtjevom za prekid INTRi na odreenoj liniji, ulazi
se u proces posluivanja prekida aktiviranjem odgovarajue ISR-e. Pri ulasku u ISRi nije
7/27/2019 Skripta(1 Dio) ar
53/76
54
poznat izvor prekida, jer je vie 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 utvruje
ispitivanjem statusnih portova interfejsa) opsluuje se u ISRi. Primjer hardverske
realizacije ove tehnike (za procesor sa jednom linijom INT za specifikaciju zahtjeva za
prekid), dat je na sl. 3.28, dok je primjer dijagrama toka odgovarajue ISR dat na sl. 3.29.
Sl. 3.28 ema hardverske implementacije prekidne tehnike U/I komunikacijeprozivanjem
Primijetimo da redoslijed ispitivanja odreuje i prioritet posluivanja zahtjeva istog
prekidnog nivoa. Ovaj redoslijed moe biti fiksan, a moe se i mijenjati (npr. round-robin
tehnikom: ureaj koji je poslednji posluen, u narednom posluivanju ispituje se na
kraju). Takoe primijetimo da je mogua varijanta ISR-e u kojoj se vri povratak (RTI)
na kraju posluivanja svakog interfejsa (im se poslui prvi interfejs koji je traio
zahtjev). Ova varijanta je pogodna ako je mala vjerovatnoa da dva interfejsa
istovremeno trae zahtjev za prekid.
7/27/2019 Skripta(1 Dio) ar
54/76
55
Sl. 3.29 Dijagram toka ISR kod tehnike prozivanja
Lananje i vektorsko prekidanje
Kod ove tehnike i dalje je vie U/I interfejsa vezano na jednu INTRi liniju zahtjev
za prekid. Identifikacija U/I interfejsa koji je zahtijevao prekid i aktivacija rutine za
posluivanje 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 ureaj (od vie njih, koji su eventualno postavili istovremenozahtjeve za prekid) postavio prekidni vektor na linije podataka, koristi se lananje. Nain
realizacije lananja prikazan je na sl. 3.30.
7/27/2019 Skripta(1 Dio) ar
55/76
56
Sl. 3.30 Nain realizacije lananja
7/27/2019 Skripta(1 Dio) ar
56/76
57
INTA (interrupt acknowledge) se koristi kao signal da je CPU prepoznao zahtjev za
prekid i da je spreman da primi informaciju o vektoru prekida. Ovim se ostvaruje
sinhronizacija CPU-a i U/I interfejsa u procesu identifikacije zahtjeva za prekid.
Logika kontrole U/I komunikacije prekidnom tehnikom esto se implementiraposebnim programibilnim kolom (kontroler prekida interrupt controler). Kolo obino
sadri registar za pamenje zahtjeva za prekid (IRR interrupt request register), registar
za maskiranje (IMR interrupt mask register) (sl. 3.31), registar statusa servisiranja (ISR
interrupt service register), konrolne i statusne registre te logiku za lananje (chaining).
Sl. 3.31 Logika za maskiranje zahtjeva za prekide
Na slikama 3.32 i 3.33 prikazane su eme koritenja kontrolera prekida za sluaj
povezivanja jedan port/interfejs - jedna prekidna linija, odnosno grupa portova/interfejsa- jedna prekidna linija.
7/27/2019 Skripta(1 Dio) ar
57/76
58
Sl. 3.32 Povezivanje U/I portova sa CPU preko kontrolera prekida
Sl. 3.33 Prekidni sistem sa grupisanjem U/I interfejsa i kontrolerom prekida
Program moe zabraniti odreene prekide postavljanjem odnosnih bitova u IMR.
Preko kontrolnih portova se definie prioritetni mehanizam: fiksni prioriteti linija (sa
mogunou da se bilo kojoj liniji pridijeli najnii prioritet), round robin itd. Takoe se
definie vrijednost prekidnog vektora najnieg prioriteta, odnosno adresa rutine za
servisiranje prekida (RSP). Ako se u IRR pojavi vie zahtjeva istovremeno, onda
kontroler na bazi stanja registra maskiranja, registra servisiranja prekida (ISR), i
prioritetnog mehanizma zakljuuje da li treba generisati zahtjev za prekid procesoru
(linija INTREQ, sl. 3.32, 3.33). Ukoliko je u toku posluivanje prekida vieg nivoa, onda
zahtjevi ostaju da 'vise' (pending requests). Ukoliko je pristigao jedan ili vie zahtjeva
7/27/2019 Skripta(1 Dio) ar
58/76
59
vieg nivoa od tekueg posluivanja, onda se postavlja linija INTREQ u aktivno, nakon
prepoznavanja zahtjeva od strane CPU (aktivan INTA) interfejs (ili kontroler) postavlja
vektor prekida na magistralu podataka koji odgovara zahtjevu najvieg nivoa (u varijanti
na sl. 3.32, 3.33, postavljanje vektora prekida postavlja U/I port). Procesor na bazi
prekidnog vektora odreuje adresu RSP i ulazi u proces posluivanja prekida, a kontroler
postavlja bit u ISR. Na kraju obrade prekida, RSP je duna da signalizira kontroleru
prekida da je servisiranje zavreno (preko kontrolnog porta), a kontroler na osnovu toga
brie postavljeni bit u ISR. Na ovaj nain je implementacija U/I komunikacije prekidnom
tehnikom znatno pojednostavljena, jer je cijela logika ve imlementirana u integrisanom
kolu.
Metod vektorskog prekida zauzeem magistrale
Kod ovog metoda U/I interfejs treba prije postavljanja zahtjeva (linije INTR) da
stekne pravo kontrole nad magistralom (bus master). Na taj nain samo jedan U/I
interfejs moe da aktivira ovu liniju. Nakon aktiviranja zahtjeva i njegovog detektovanja
od strane procesora, procesor alje signal prepoznavanja zahtjeva (INTA), a interfejs
postavlja svoj vektor prekida na linijama za podatke.
U/I komunikacija direktnim pristupom memoriji
Komunikacija izmeu perifernih jedinica i procesora je relativno jednostavan i efikasan
mehanizam, ukoliko su periferijske jedinice spore. U tom sluaju, i za veliki broj
periferijskih jedinica, vrijeme koje procesor potroi za komunikaciju sa periferijama
iznosi svega nekoliko procenata ukupnog procesorskog vremena.
Meutim, transfer velikog broja podataka izmeu brzih periferija (diskova npr.) i
memorije preko procesora mehanizmom prekida za transfer svakog pojedinanog
podataka, zahtijevao bi znatan procenat procesorskog vremena (vrijeme pripreme i
transfera podataka od strane periferije moe biti i krae od samog trajanja RSP). Prema
tome, alternativni pristup se namee kao imperativ.
7/27/2019 Skripta(1 Dio) ar
59/76
60
Kanal za direktan pristup memoriji (DMA channel - direct memory access channel),
je specijalni interfejs koji omoguava periferiji da izvri brz transfer podataka ka/iz
memorije, bez uea CPU (odnosno, uee CPU-a se svodi na iniciranje transfera).
Tokovi podataka kod programiranog U/I, prekidnog U/I i DMA prenosa su prikazani na
sl. 3.34.
Sl. 3.34 Tokovi podataka kod razliitih tehnika prenosa, a) programirani U/I; b)
prekidni U/I; c) DMA U/I
7/27/2019 Skripta(1 Dio) ar
60/76
61
Da bi DMA interfejs izvrio 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 poetka
memorijskog bloka, broj bloka diska, kao i broj bajta koji se prenosi, te izdaje komandu
za prenos koja sadri i informaciju o smjeru prenosa (sl. 3.35).
Sl. 3.35 Programski model DMA
DMA interfejs treba da dobije pravo upravljanja magistralom u toku transfera
podataka ka/iz memorije (ako bi i procesor i DMA istovremeno slali podatke preko
magistrale, dolo bi do superpozicije i nekorektnog upisa/itanja). Zahtjev za upravljanje
magistralom DMA saoptava procesoru preko linije BR (bus request), a odobrenje od
procesora dobija kada procesor postavi signal BG (bus grant) (sl. 3.36)
Sl. 3.36 Kontrolni signali za dobijanje prava upravljanja magistralom
Prije predavanja magistrale DMA interfejsu, procesor treba da zavri tekue korite-
nje magistrale (tekui aktivni ciklus magistrale) i da postavi svoje izlaze na magistralu u
neaktivno stanje (stanje visoke impedanse). Ovo procesor moe da uradi u vie taaka
ciklusa mainske instrukcije (npr. iza faze pribavljanja, faze dekodiranja instrukcije,
pribavljanja operanda itd). Blok ema DMA interfejsa i naina povezivanja sa
procesorom i memorijom data je na sl. 3.37
7/27/2019 Skripta(1 Dio) ar
61/76
62
Sl. 3.37 Blok ema DMA prenosa
Postoji nekoliko varijanti DMA prenosa sa stanovita duine kontrole nad
magistralom:
1. Kraa ciklusa (Cycle stealing). Ukoliko pretpostavimo da disk jedinica moe da
realizuje transfer jednog bajta svakih 800ns, a da je ciklus memorije 100ns, slijedi
da ako od 8 memorijskih ciklusa 1 koristi DMA, procesoru ostaje 7/8 (87.5%
propusnog opsega mamorije). Procesor ne troi svo svoje vrijeme na komunika-
ciju sa memorijom; odreeni broj mainskih ciklusa procesor koristi za interne
kalkulacije i manipulaciju podacima u samom procesoru. DMA postaje kontroler
nad sabirnicom DMA kada je u procesu transfera podataka i kada procesor ne
koristi magistralu (DMA 'krade' cikluse kontrole nad magistralom od procesora).
Po ovom metodu se prenosi samo bajt ili rije po 'ukradenom' ciklusu. Sudari
procesora i DMA kontrolera su rijetki (kada istovremeno ele pristup memoriji)
ali u realnim situacijama moe doi i do produenja mainskih ciklusa za nekoliko
taktova u procesu zauzimanja i oslobaanja magistrale. Navedeni efekti
ograniavaju brzinu prenosa podataka, pa se ona koristi kod sporijih jedinica.
2. Standardni DMA prenos. Kod ove varijante DMA interfejs dri kontrolu nad
sabirnicom za vrijeme prenosa cijelog bloka podataka. Ovim se postiu velike
brzine prenosa, ali procesor mora da eka dok DMA ne zavri transfer bloka.
7/27/2019 Skripta(1 Dio) ar
62/76
63
Kompromisno rjeenje je da DMA kontroler oslobaa sabirnicu nakon prenosa
odreenog broja podblokova, kako bi procesoru omoguio da reaguje na izuzetne
dogaaje (burst paketni DMA).
3. Po treoj varijanti DMA kontroler koristi magistralu u mainskim ciklusima ukojima je ne koristi CPU. Na taj nain se maksimizira iskoritenje propusnog
opsega memorije, i to bez blokade rada CPU.
Napomenimo da se za potrebe specijalizovanih algoritama pri izvoenju U/I operacija
(npr. esto se javlja potreba da se prije smjetanja u memoriju podaci prethodno
transformiu) realizuju inteligentni U/I procesori sa svojim instrukcionim skupom i
memorijom, koji minimizuju vrijeme CPU u U/I transakcijama i svode ga na
supervizorsku ulogu.
7/27/2019 Skripta(1 Dio) ar
63/76
64
4. Napredne tehnike organizacije CPU
4.1 Projektni prostor
Razliite procesorske arhitekture se mogu predstaviti u projektnom prostoru sa taktnom
frekvencijom kao apscisnom koordinatom i CPI (brojem ciklusa po instrukciji), kako je to
predstavljeno na sl. 4.1.
Sl. 4.1 Projektni prostor procesora
Kako se implementacione tehnologije brzo usavravaju, frekvencija radnog takta procesora se
brzo pomjera od manjih ka veim bzinama, odnosno kompletan dijagram sa sl. 4.1 se pomjera ka
donjem desnom uglu. Drugi trend je da proizvoai procesora nastoje da smanje vrijednost CPI
koristei kako hardverske tako i softverske pristupe.
Konvencionalni procesori spadaju u familiju poznatu CISC (complex instruction set
computers) procesora. Brzina takta ovih CISC procesora do nekoliko desetina MHz. sa opsegom
7/27/2019 Skripta(1 Dio) ar
64/76
65
CPI od 1 20 za mikroprogramske upravljake jedinice. Zbog toga su CISC procesori gornjem
lijevom uglu projektnog prostora.
RISC (reduced instruction set computers) procesori imaju veu frekvenciju radnog takta od
CISC procesora. S obzirom da se najee koristi hardverski implementirana upravljaka
jedinica, CPI je kod ovih maina reduciran na 1-2.
Specijalna klasa RISC procesora su superskalarni procesori, kod koji se vie instrukcija
mogu izvoditi istovremeno za vrijeme svakog ciklusa, pa je kod ovih procesora CPI ispod
korespondentnih vrijednosti za RISC procesore.
Procesori sa velikom duinom rijei (VLWI very long instruction word) koriste vie
fun
Recommended