Professional Documents
Culture Documents
1955 godine.
Komercijalni raunari:
Eckert i Mauchly osnovali su 1947. godine Eckert-Mauchly Computer Corporation za
proizvodnju komercijalnih raunara. Njihova prva uspjena maina bio je UNIVAC I
(Universal Automatic Computer). To je bio prvi uspjean komercijalni raunar. Bio
je namijenjen za naunu i za komercijalnu upotrebu. Zadaci koje je mogao izvoditi su:
algebra matrica, statistiki problemi, izraunavanje premija ivotnog osiguranja za
osiguravajue kue i logiki problemi.
UNIVAC II je imao veu memoriju i bolje performanse od UNIVAC I.
IBM, najvei proizvoa opreme za buene kartice, predstavio je 1953. godine svoj
prvi elektronski kompjuter sa pohranjenim programom, IBM 701, ija je primarna
primjena bila u naune svrhe. 1955. godine IBM je proizveo 702 koji je imao
hardverske osobine koje ga svrstavaju u poslovne svrhe. Ovo su bili prvi raunari
700/7000 serije kojom je IBM postao najmoniji proizvoa raunara.
Vrata mogu imati jedan ili dva ulaza i ulazni kontrolni signal koji ih aktivira. Kad je
kontrolni signal ukljuen, vrata izvravaju svoju funkciju na podatkovnim ulazima to
rezultira podatkovnim izlazom. Slino, memorijska elija pohranjuje bit koji joj je na
ulazu kad je WRITE kontrolni signal ukljuen, a smjestit e bit na svoj izlaz kada je
READ kontrolni signal ukljuen.
Zato se raunar sastoji od kola, memorijskih elija i veza meu njima.
U treoj generaciji IBM objavljuje novu porodicu raunara System/360. Modeli ove
su bili kompatibilni tako da se program napisan za jedan model mogao izvravati na
drugom, a jedino se razlikovalo vrijeme izvravanja.
Karakteristike porodice:
Slian ili identian instrukcijski set: potpuno isti instrukcijski set je
podravala cijela porodica raunara. Zato se program koji se izvravao na
jednoj maini mogao izvravati i na drugoj. Programi su se mogli prebacivati
sa slabijih na jae maine, ali ne i obrnuto.
Slian ili isti operativni sistem: isti osnovni operativni sistem bio je na
raspolaganju za cijelu porodicu.
Poveanje brzine: brzina izvravanja instrukcija rasla je od slabijih prema
jaim raunarima iste porodice.
Poveanje broja I/O prikljuaka: broj I/O prikljuaka rastao je od slabijih ka
jaim.
Poveanje memorije: veliina glavne memorije je rasla u istom smjeru.
Poveanje cijene: u datom trenutku, cijena sistema je rasla u istom smjeru.
U isto vrijeme objavljuje se se i DOCov PDP-8 koji je koristio strukturu koja je
danas gotovo univerzalna za miniraunare: sabirnica (bus). PDP-8 sabirnica se zvala
omnibus, i sastojala se od 96 odvojenih signalnih putanja, koje su se koristile za
kontrolne, adresne i podatkovne signale.
Kasnije generacije:
Radi se o napretku tehnologije integrisanih kola. Uvoenjem integracije velikog nivoa
moglo se ugraditi preko 1000 elemenata na jedan ip.
Uvodi se i vrlo veliki nivo integracije i jedan ip sadrava vie od 10000 elemenata.
Pojavljuju se ipovi ultra velike razine integracije i jedan ip sadri vie od milion
elemenata.
Postoje dva najvanija rezultata brzog tehnolokog razvoja, a to su:
Poluprovodnika memorija - Prva upotreba tehnologije integrisanih kola u
raunarima bila je izrada procesora od integrisanih ipova. Ista ova tehnologija
se mogla koristiti i za izradu memorije. Veina raunarske memorije izraivala
se od tankih prstenova feromagnetnog materijala, a prstenovi su bili nanizani
na reetke ica koje su bile privrene na zaslon unutar raunara. Ako je
prsten bio magnetiziran u jednom smjeru, predstavljao je jedinicu, a njegova
magnetizacija u drugom smjeru predstavljala je nulu. Memorija sa magnetnom
jezgrom bila je prilino brza; bio je potreban milioniti dio sekunde za itanje
pohranjenog bita, ali je bila veoma skupa, a njeno itanje znailo je i njeno
brisanje. Zato je bilo potrebno uvoenje kola kako bi se podaci povratili im bi
bili izvaeni. Od 1970. godine, poluprovodnika memorija prola je kroz 13
generacija: 1K, 4K, 16K, 64K, 256K, 1M, 4M, 16M, 64M, 256M, 1G, 4G i 16G
bita po jednom ipu. Svaka sljedea generacija je imala 4 puta veu gustinu
od prethodne, to je bilo popraeno padom cijene po bitu i smanjenjem
vremena pristupa.
Mikroprocesori - Isto kako je rasla gustina elemenata memorijskog ipa,
rasla je i gustina elemenata procesorskog ipa. Kako je vrijeme prolazilo, sve
je vie i vie elemenata postavljano na jedan ip, tako da je sve manje i manje
ipova bilo potrebno za izradu procesora.
Prekretnica je napravljena 1971. godine kada je Intel razvio 4004 procesor. To
je bio prvi ip koji je sadravao sve komponente CPU-a na jednom ipu i to se
smatra roenjem mikroprocesora. 4004 je mogao sabrati dva 4-bitna broja i
mnoiti ponavljanjem sabiranja.
Sljedei vaan korak razvoja mikroprocesora bilo je uvoenje Intel 8008 1972.
godine. Ovo je prvi 8-bitni procesor i bio je skoro duplo sloeniji od 4004.
Intel je 1974. godine uveo 8080, koji je bio prvi mikroprocesor ope namjene.
I 8080 je 8-bitni mikroprocesor, ali dosta bri sa veim instrukcijskim setom i
veim adresnim mogunostima.
U isto vrijeme poelo se sa razvojem 16-bitnog mikroprocesora, ali on se
pojavio tek krajem 1970.-tih.
Sljedei korak nainili su Bell Labs i Hewlett-Packard razvojem 32-bitnog
mikroprocesora 1981. godine. Intelov 32-bitni procesor 80386 pojavio se
1985. godine.
Brzina mikroprocesora:
Razvoj raunara prati Moore-ov zakon. Dokle god je ovaj zakon na snazi, proizvoai
ipova e svake tri godine proizvoditi nove generacije koje e imati etiri puta vie
tranzistora od prethodne. Kod memorije, svake tri godine se kapacitet poveava etiri
puta. Kod mikroprocesora, dodatna kola i poveanje brzine koje je posljedica
smanjenja rastojanja izmeu njih, poveava performanse etiri-pet puta otprilike
svake tri godine od kada je Intel uveo x86 porodicu.
Ali mikroprocesor ne moe postii svoj potencijal, osim ako nije konstantno zaposlen
raunarskim instrukcijama.
Tehnike koje su ugraene u dananje procesore:
Predvianje grananja (branch prediction): procesor gleda koje su
instrukcije uitane iz memorije i nastoji predvidjeti koje e grane ili grupe
instrukcija biti sljedee obraene. Ako procesor u najveem broju sluajeva
pravilno predvidi, moe pripremiti ispravne instrukcije i pohraniti ih u buffer
tako da bude stalno zaposlen.
Analiza toka podataka (data flow analysis): procesor analizira koje su
instrukcije zavisne ili od rezultata drugih ili od podataka, te na taj nain pravi
optimizirani raspored instrukcija. U stvari, instrukcije se rasporeuju na
izvravanje kad su spremne nezavisno od osnovnog programskog poretka.
Tako se spreava nepotrebno kanjenje.
pekulativno izvravanje (speculative execution): koristei predvianje
grananja i analizu toka podataka, neki procesori pekulativno izvravaju
instrukcije prije njihovog stvarnog pojavljivanja u izvravanju programa, te se
njihovi rezultati uvaju na privremenim lokacijama. Na taj nain se izvrni
dijelovi procesora dre zaposlenim to je vie mogue, jer izvravaju
instrukcije koje e vjerovatno biti potrebne.
Uravnoteenje performansi:
Procesor se razvijao veoma velikim tempom, a ostale komonente nisu. Rjeenje
ovog problema se nalazi u uravnoteenju performansi (usklaivanje organizacije i
arhitekture kako bi se amortizirala neusklaenost izmeu razliitih komponenti).
RAUNARSKE FUNKCIJE
Gledano odozgo elementi raunara su: CPU, memorija, i I/O elementi i oni su
meusobno povezani tako da se postie osnovna funkcija raunara, tj. izvravanje
programa.
Zato se na najviem nivou raunarski sistem opisuje: opisivanjem vanjskog
ponaanja svakog elementa, a to je razmjena podataka i kontrolnih signala sa
ostalim elementima; i opisivanjem strukture povezivanja i potrebnih kontrola za
upravljanje njihovog koritenja.
Elementi raunara:
Vidjeli smo da su konstrukcija dananjih raunara zasnovane na Von Neumann-ovim
konceptima pa se ova konstrukcija oznaava kao von Neumann-ova arhitektura i
zasniva se na tri kljuna koncepta:
Podaci i instrukcije su pohranjeni u jednoj memoriji koja se moe uitavati i upisivati.
Sadraji memorije su adresibilni po lokaciji1, bez obzira na vrstu podataka koji je
tamo
pohranjen.
Izvravanje se obavlja sekvencijalno od jedne do druge instrukcije.
Dakle, postoji mali skup osnovnih logikih komponenti koje mogu biti spojene na
razliite naine kako bi pohranili binarne podatke i izveli aritmetike i logike
operacije nad njima. Ako treba specifino izraunavanje, onda se konstruie
specijalna konfiguracija samo za taj izraun. Proces spajanja razliitih komponenti je
oblik programiranja. Rezultujui program je hardver koji se oznaava kao
hardverski
Program.
Kod hardvera ope namjene, sistem prihvata podatke i kontrolne signale i daje
rezultate. Zato, umjesto ponovnog spajanja hardverskih elemenata za svaki program,
programer samo treba dobaviti novi skup kontrolni signala.
Nema vie prespajanja hardvera za svaki novi program, nego za svaki program
samo treba obezbijediti novi kod, a svaki kod je instrukcija koju hardver prevodi u
kontrolne signale. Niz kodova odnosno instrukcija naziva se softver.
Postoje dva glavna elementa sistema, a to su instrukcijski prevodilac i modul za
aritmetike i logike funckije ope namjene. Oni ine CPU.
Podaci i instrukcije moraju se ubaciti u raunar to znai da trebamo ulazni modul.
On sadrava komponente za prihvatanje podataka i instrukcija i komponente za
pretvaranje signala u signale koji su razumljivi sistemu. Potrebna su i sredstva za
prihvatanje rezultata u formi izlaznog modula. Zajedno se oznaavaju
kao I/O komponente.
Jo je potreban jedan element. Ulazni ureaj dostavlja instrukcije sekvencijalno, ali
se program uvijek tako ne izvrava ili operacije nad podacima mogu zahtijevati
pristup vie elemenata odjednom u unaprijed definisanom nizu. Zato mora postojati
mjesto privremenog pohranjivanja instrukcija i podataka. Taj modul se zove (glavna)
memorija.
RAUNARSKE VEZE
PREKIDI:
Prekidi se obezbjeuju primarno kao nain poboljanja efikasnosti obrade. Na
primjer, veina perifernih ureaja je znatno sporija od procesora. Neka procesor
prenosi podatke tampau prema emi osnovnog instrukcijskog ciklusa. Nakon
svake operacije upisa, procesor mora zastati i ostati u stanju mirovanja dok ga
tampa ne sustigne. Duina ove pauze moe biti nekoliko stotina ili ak hiljada
instrukcijskih ciklusa koji ne ukljuuju memoriju.
Sa stajalita korisnikog programa prekid je prekid normalnog niza izvravanja. Po
zavretku obrade prekida nastavlja se izvravanje. Zato korisniki program ne sadri
specijalan kod za usluivanje prekida, ve su procesor i operativni sistem odgovorni
za suspendovanje korisnikog programa te njegovo nastavljanje od take prekida.
Kako bi udovoljio prekidima, instrukcijskom ciklusu se dodaje prekidni ciklus.
U prekidnom ciklusu procesor provjerava pojavu prekida, ukazujui na prisutnost
prekidnog signala. Ako nema prekida na ekanju, procesor nastavlja sa ciklusom
dobavljanja i dobavlja sljedeu instrukciju trenutnog programa. Ako je prekid na
ekanju, procesor suspenduje izvravanje trenutnog programa i spaava njegov
kontekst. To podrazumijeva spaavanje adrese sljedee instrukcije koja e se izvriti i
postavlja programski broja na poetnu adresu procedure za upravljanje prekidima.
Sada procesor nastavlja sa ciklusom dobavljanja i uitava prvu instrukciju programa
koji upravlja prekidima, a on je sastavni dio operativnog sistema. Obino, ovaj
program odreuje prirodu prekida i obavlja potrebne aktivnosti. Program za
upravljanje prekidima odreuje koji je I/O modul proizveo prekid i moe se granati u
program koji e upisati jo podataka u taj I/O modul. Kada se zavri rutina upravljanja
prekidima, procesor moe nastaviti izvravanje programa od take prekida.
Moe se pojaviti i vie prekida. Na primjer, program moe dobijati podatke od
komunikacijske linije i tampati rezultate. tampa e proizvesti prekid svaki put kad
zavri operaciju tampanja. Kontrolor komunikacijske linije e generirati prekid svaki
put kada pristigne podatkovna jedinica. Mogua je pojava komunikacijskog prekida
dok se obrauje prekid kojeg je generisao tampa.
Rjeavanje viestrukih prekida mogue je pomou dva pristupa. Prvi je
onesposobljavanje prekida dok se jedan obrauje. Onesposobljeni prekid
jednostavno znai da procesor moe ignorisati taj prekidni signal. Ako se prekid javi
tokom ovog vremena, uglavnom ostaje na ekanju, a procesor e ga provjeriti nakon
omoguavanja prekida. Zato, kada se korisniki izvrava a pojavi se prekid, prekidi
se odmah iskljuuju. Nakon zavretka programa za upravljanje prekidima,
prekidi se omoguavaju prije nastavljanja korisnikog programa, te procesor
provjerava postojanje dodatnih prekida.
Mana ovog pristupa je to se ne uzima u obzir vremenska kritinost potreba.
Drugim se pristupom definiu prioriteti prekida ime se dozvoljava da prekid vieg
prioriteta izazove prekidanje prekida nieg prioriteta.
I/O funckije:
I/O modul moe direktno komunicirati sa procesorom. Procesor moe uitati/upisati u
I/O modul. Procesor identificira specifini ureaj kojeg kontrolie dati I/O modul i
prenosi ovlasti na I/O modul da upisuje/uitava memoriju.
I/O modul izdaje memoriji komande, a procesor nema odgovornosti. To je direktni
pristup memoriji (direct memory access DMA).
Struktura veze:
Raunar se sastoji od tri vrste osnovnih elemenata ili modula (procesor, memorija,
I/O) koji meusobno komuniciraju. Zato moraju postojati putevi koji ih povezuju. Skup
putanja koje povezuju razliite module zove se struktura veze.
Memorija - Rije podataka moe biti uitana iz ili upisana u memoriju. Priroda
operacije se odreuje kontrolnim signalima uitavanja i upisivanja. Lokacija
operacije se specificira adresom.
I/O - funkcionalno slian memoriji. I/O modul moe imati pod kontrolom vie
perifernih ureaja. Svako suelje prema perifernom ureaju se oznaava kao
port i svaki ima jedinstvenu adresu. Postoje i vanjske putanje podataka za
ulaz i izlaz podataka iz perifernog ureaja.
Procesor - uitava instrukcije i podatke, upisuje podatke nakod obrade i koristi
kontrolne signale za kontrolu svih sistemskih operacija. Takoer prima
prekidne signale.
Struktura veze mora podrati sljedee vrste prenosa:
Memorija procesor: procesor iz memorije uitava instrukciju ili podatkovnu
jedinicu.
Procesor memorija: procesor upisuje podatkovnu jedinicu u memoriju.
I/O procesor: procesor uitava podatke iz I/O ureaja preko I/O modula.
Procesor I/O: procesor alje podatke I/O ureaju.
Od I/O ka memoriji ili od memorije ka I/O: za oba sluaja I/O modulu je
dozvoljena direktna razmjena sa memorijom bez posredovanja procesora
koristei DMA.
Sabirnica:
Sabirnica je komunikacijska putanja koja povezuje dva ili vie ureaja. Njena kljuna
karakteristika je djeljivi medijum za prenos. Vie je ureaja povezano na sabirnicu, a
signal namijenjen jednom ureaju dostupan je svim drugim ureajima koji su na nju
prikljueni. Obino se sabirnica sastoji od viestrukih komunikacijskih putanja ili linija.
Svaka linija je u stanju prenijeti signale predstavljajui binarne 1 i 0. U datom
vremenskom intervalu, niz binarnih cifara se moe prenijeti jednom linijom. Nekoliko
linija sabirnice zajedno se moe koristiti za istovremeni (paralelni) prenos binarnih
cifara. Na primjer, 8-bitna podatkovna jedinica moe se prenijeti preko osam linija
sabirnice. Raunarski sistemi sadre brojne i razliite sabirnice koje omoguavaju
putanje izmeu komponenti razliitog nivoa hijerarhije raunarskog sistema.
Sabirnica koja povezuje glavne elemente (procesor, memorija, I/O) zove se
sistemska sabirnica. Najee strukture veza raunara se zasniva na koritenju
jedne ili vie sistemskih sabirnica.
Struktura sabirnice:
Sistemska se sabirnica obino sastoji od 50 do stotine odvojenih linija. Svakoj liniji je
dodijeljeno posebno znaenje ili funkcija. Iako postoje razliite izvedbe sabirnice,
linije svake od njih se mogu svrstati u tri funkcionalne grupe:podatkovne, adresne i
kontrolne linije.
Podatkovne linije obezbjeuju putanju za prenos podataka izmeu sistemskih
modula. Ove se linije nazivaju podatkovna sabirnica. Moe se sastojati od 32, 64,
128 ili vie odvojenih linija. Svaka linija odjednom nosi samo 1 bit pa broj linija
odreuje koliko bita odjednom se moe prenijeti. irina podatkovne sabirnice je
kljuni faktor u odreivanju performansi cijelog sistema. Na primjer, ako je irina 32
bita a instrukcije su 64-bitne, onda procesor mora dva puta pristupiti memorijskom
modulu tokom svakog instrukcijskog ciklusa.
Adresne linije se koriste za odreivanje izvora ili odredita podatka na sabirnici. Ako
procesor eli uitati rije podatka iz memorije, onda postavi adresu eljene rijei na
adresne linije. irina adresne sabirnice odreuje najvei mogui memorijski kapacitet
sistema.
Kontrolne linije se koriste za kontrolu pristupa i koritenja podatkovnih i adresnih
linija. Poto sve komponente dijele podatkovne i adresne linije, moraju postojati
sredstva za njihovu kontrolu. Kontrolni signali prenose i komandne i sinhronizacijske
informacije izmeu sistemskih modula. Sinhronizacijski signali ukazuju na valjanost
podataka i adresnih informacija. Komandni signali definiu operacije koje se
izvravaju. One obino ukljuuju: Memorijski upis (podaci se sa sabirnice upisuju na
naznaene lokacije); Memorijsko uitavanje (smjetanje podataka sa naznaenih
lokacija na sabirnicu); I/O upis (podaci se sa sabirnice upisuju na naznaeni I/O port);
I/O uitavanje (podaci se sa naznaenog I/O porta smjetaju na sabirnicu); Potvrda
prenosa (ukazuje da su podaci prihvaeni sa ili smjeteni na sabirnicu); Zahtjev za
sabirnicu (ukazuje da modul treba dobiti kontrolu nad sabirnicom); Odobravanje
sabirnice (ukazuje da je modulu odobrena kontrola nad sabirnicom); zahtjev za
prekid (ukazuje da je prekid na ekanju); Potvrda prekida (potvrivanje da je prekid
koji eka doputen); Takt (koristi se za sinhronizaciju operacija); Resetovanje
(pokretanje svih modula).
Rad sabirnice se odvija na sljedei nain: ako jedan modul eli poslati podatak
drugom, mora dobiti koritenje sabirnice i prebaciti podatke preko nje. Ako jedan
modul zahtijeva podatke od drugog mora dobiti koritenje sabirnice i prebaciti zahtjev
drugom modulu preko odgovarajuih kontrolnih i adresnih linija.
PCI (peripheral component interconenct) je vrlo brza iroka sabirnica, nezavisna od
procesora koja funkcionira kao periferna sabirnica. U poreenju sa drugim
sabirnicama, PCI donosi bolje performanse za vrlo brze I/O podsisteme. PCI je
posebno dizajniran da zadovolji ekonomske I/O zahtjeve modernih sistema, jer treba
vrlo malo ipova za implementiranje i podrku drugim sabirnicama prikljuenim na
PCI.
MAINSKE INSTRUKCIJE
Programeru u jeziku visokog nivoa malo toga je vidljivo od arhitekture osnovne
maine. S druge strane, zajednika taka projektanta raunara i njegovog
programera je instrukcijski set maine. Sa projektanske take gledita, ovaj set
obezbjeuje funkcionalne zahtjeve koji se postavljaju pred procesor: implementacija
procesora je zadatak koji velikim dijelom ukljuuje implementaciju instrukcijskog seta
maine.
Karakteristike mainskih instrukcija:
Rad procesora je odreen instrukcijama koje izvrava. One se oznaavaju kao
mainske instrukcije ili raunarske instrukcije. Skup razliitih instrukcija koje procesor
moe izvravati oznaava se kao procesorski instrukcijski set.
Elementi mainske instrukcije
Svaka instrukcija mora sadravati informacije koje zahtijeva procesor za izvravanje.
Elementi mainske instrukcije su:
Operacijski kod: specificira operaciju koju izvodi. Operacija se specificira
binarnim kodom koji je poznat kao operacijski kod ili opkod.
Referenca izvornog operanda: operacija moe ukljuivati jedan ili vie
operanada koji su ulazi za operaciju.
Referenca rezultujueg operanda: operacija moe proizvesti rezultat.
Referenca sljedee instrukcije: govori procesoru gdje da dohvati sljedeu
instrukciju nakon okonanja izvravanja trenutne.
Adresa sljedee instrukcije moe biti stvarna ili virtualna, zavisno od arhitekture. Da
bi se dobavila sljedea instrukcija prvo se mora dobaviti adresa glavne ili virtualne
memorije.
Izvorni i rezultujui operandi mogu biti u:
Glavnoj ili virtualnoj memoriji adresa glavne ili virtualne memorije mora
biti dostavljena.
Procesorskom registru - procesor sadri jedan ili vie registara koji mogu biti
pozvani mainskim instrukcijama. Ako postoji samo jedan registar, referenca
na njega moe biti implicitna.
Neposredni operandi - vrijednost operanda je sadrana u polju u kojem se
izvrava instrukcija.
I/O ureaju: instrukcija mora specificirati I/O modul i ureaj za operaciju. Ako
se koristi memorijsko preslikavanje I/O-a, to je samo druga glavna ili virtualna
adresa.
Predstavljanje instrukcija:
Unutar raunara, svaka se instrukcija predstavlja nizom bitova. Instrukcija je
podijeljena u polja, koja odgovaraju sastavnim elementima instrukcije.
Tokom izvravanja instrukcije, ona se uitava u instrukcijski registar (IR) u procesoru.
Procesor mora znati izvui podatke iz razliitih instrukcijskih polja kako bi izveo
traenu operaciju.
Opkodovi:
ADD sabiranje
SUB - oduzimanje
MUL - mnoenje
DIV - dijeljenje
LOAD - uitavanje podataka iz memorije
STOR - pohranjivanje podataka u memoriju
Instrukcije se kategoriziraju u:
obrada podataka: aritmetike i logike instrukcije
pohrana podataka: premjetanje podataka u ili iz registra i ili memorijskih lokacija
premjetanje podataka: I/O instrukcije
kontrola: instrukcije testiranja i grananja.
Aritmetike instrukcije obezbjeuju sposobnosti izraunavanja za obradu numerikih
podataka.
Logike ili Boole-ve instrukcije operiu bitovima rijei kao bitovima a ne kao
brojevima; zato obezbjeuju sposobnosti obrade bilo kojeg tipa podatka koji korisnik
zatrai. Ove se operacije izvode primarno nad podacima u registrima procesora. Zato
moraju postojati memorijske instrukcije za premjetanje podataka izmeu memorije i
registara.
I/O instrukcije su potrebne za prenos programa i podataka u memoriju i rezultata
izraunavanja nazad korisniku.
Testne instrukcije se koriste za provjeru vrijednosti podatkovne rijei ili statusa
izraunavanja.
Instrukcije grananja se koriste za prelazak na drugaiji set instrukcija u zavisnosti od
odluke.
Instrukcija moe sadravati najvie etiri adrese: dvije za izvorne operande, jednu
za odredini, i adresu sljedee instrukcije.
U raunarima su najea tri tipa numerikih podataka:
binarni cijeli ili binarni sa fiksnim zarezom
binarni sa pominim zarezom
decimalni.
Tipovi operacija
Broj razliitih opkodova varira od maine do maine. Meutim, na svim mainama se
mogu nai isti opi tipovi operacija. Kategoriziraju se u:
prenos podataka
aritmetike
logike
operacije pretvaranja
I/O
operacije sistemske kontrole
operacije kontrole prenosa.
Prenos podataka
Fundamentalni tip mainske instrukcije je instrukcija prenosa podataka. Ona mora
specificirati nekoliko stvari. Prvo, specificiranje lokacije izvornog i ishodinog
operanda. Svaka lokacija moe biti memorija, registar ili vrh steka. Drugo, mora se
naznaiti duina podataka koji se prebacuju. Tree, kao kod svih instrukcija sa
operandima, mora specificirati nain adresiranja svakog operanda.
Izbor instrukcija podatkovnog prenosa u instrukcijski set je kompromis koji mora
napraviti projektant. Na primjer, opa lokacija (memorija ili registar) operanda moe
se naznaiti ili specificiranjem opkoda ili operanda.
Sa stanovita rada procesora, operacije prenosa podataka su vjerovatno
najjednostavniji tip.
Ako su i poetak i odredite registri, procesor samo izaziva prenos iz jednog u drugi
registar, to je unutranja operacija procesora. Ako je jedan ili oba operanda u
memoriji, onda procesor mora izvesti neke ili sve donje aktivnosti:
1. izraunavanje memorijske adrese, na osnovu naina adresiranja
2. ako se adresa odnosi na virtualnu memoriju, prevoenje virtualne u stvarnu
memorijsku adresu
3. odreivanje da li je adresirani element u keu
4. ako nije, izdavanje komande memorijskom modulu.
Aritmetike operacije
Veina maina izvrava osnovne aritmetike operacije sabiranje, oduzimanje,
mnoenje i dijeljenje. Pored ovih, koriste se i razliite instrukcije koje se izvode nad
jednim operandom.
To su:
apsolutna vrijednost: uzima apsolutnu vrijednost operanda
nagacija: negativna vrijednost operanda
uveanje: dodaje 1 operandu
smanjenje: od operanda se oduzima 1
Izvravanje aritmetike instrukcije moe ukljuivati operacije prenosa podataka radi
pozicioniranja operanada na ALU ulaz i izdavanje izlaza iz ALU.
Logike operacije
Veina maina koristi razliite operacije za manipuliranje pojedinim bitovima rijei ili
drugim adresibilnim jedinica. Zasnivaju se na Bulovim operacijama.
Instrukcijski formati:
Instrukcijski format definie raspored instrukcijskih bitova u smislu njenih sastavnih
polja. Instrukcijski format mora ukljuiti opkod i, implicitno ili eksplicitno, nula ili vie
operanada. Svaki eksplicitni operand se referencira koritenjem jednog od naina
adresiranja. Format mora, implicitno ili eksplicitno, naznaiti nain adresiranja za
svaki operand. Za veinu instrukcijskih setova, koristi se vie instrukcijskih formata.
Duina instrukcije
Je osnovno pitanje projektovanja instrukcije. Na duinu instrukcije utie veliina
memorije, memorijska organizacija, struktura sabirnice, sloenost procesora i
njegova brzina. Ona definie bogatstvo i fleksibilnost maine onako kako je vidi
programer asemblera.
Programeri ele vie opkodova, operanada, naina adresiranja i vee adresno
podruje. Vie opkodova i operanada olakava njihov posao, jer se piu krai
programi za izvrenje postavljenih zadataka. Vie naina adresiranja daje
programeru veu fleksibilnost pri realizaciji odreenih funkcija, kao to su
manipulacije tabelama i viestruko grananje. Pored toga, poveanjem veliine glavne
memorije i koritenja virtualne memorije, programeri su u stanju da adresiraju vea
memorijska podruja. Sve ovo (opkodovi, operandi, naini adresiranja, adresno
podruje) zahtjeva bitove i ide u smjeru vee duine instrukcije. Meutim,
vea duina instrukcije moe biti tetna. 64-bitna instrukcija zauzima duplo vie
prostora od 32-bitne, ali je vjerovatno manje od duplo korisna.
Pored ovog, postoje i drugi razlozi. Da li bi duina instrukcije trebala biti jednaka
duini memorijskog prenosa (u sistemu sabirnice, irina podatkovne sabirnice) ili bi
trebala biti njena viestruka vrijednost. U suprotnom, tokom ciklusa dohvatanja nee
se dobiti cijeli broj instrukcija. S ovim u vezi je i brzina memorijskog prenosa. Ona ne
prati poveanje procesorske brzine. Na taj nain, memorija moe postati usko grlo
ako procesor izvrava instrukcije bre od njihovog dohvatanja. Jedno rjeenje je
koritenje kea, a drugo je koritenje kraih instrukcija.
Zato 16-bitne instrukcije mogu biti dohvaene duplo bre od 32-bitnih instrukcija, ali
se vjerovatno ne izvravaju dvostruko bre.
Vana karakteristika je da duina instrukcije treba biti djeljiva sa duinom karaktera,
koja je obino 8 bitova, i duinom brojeva sa nepominim zarezom. Duina
memorijske rijei je prirodna jedinica organizacije. Njena veliina obino odreuje
veliinu brojeva sa nepominim zarezom.
Dodjeljivanje bitova
Za datu duinu instrukcije evidentno je da postoji kompromis izmeu broja opkodova
i stepena mogunosti adresiranja. Vie opkodova znai vie bitova u polju opkoda.
Za instrukcijski format date duine, to znai smanjenje raspoloivog broja bitova za
adresiranje. Postoji interesantna stvar kod ovog kompromisa, a to je koritenje
opkodova promjenjive duine. Kod ovog pristupa, postoji najmanja duina opkoda, ali
za neke opkodove dodatne operacije se mogu specificirati koritenjem dodatnih
bitova u instrukciji. Za instrukciju stalne duine to znai da ostaje manje bitova za
adresiranje. Zato se ova osobina koristi za one instrukcije koje zahtijevaju manje
Adresni registri mogu biti ope namjene, ili mogu biti posveeni odreenom nainu
adresiranja.
Uslovni registri sadre uslovne kodove ili zastavice. Uslovni kodovi su bitovi koje
postavlja procesorski hardver kao rezultat operacije.
Kontrolni i statusni registri
Razliiti procesorski registri vre kontrolu operacija procesora. Veina njih nije vidljiva
korisniku. Neki od njih mogu biti vidljivi mainskim instrukcijama koje se izvravaju u
kontrolnom ili operativnom sistemskom modu.
etiri tipa registara su bitna za izvravanje instrukcija:
Programski broja (PC): sadri adresu instrukcije koja treba biti uitana
Instrukcijski registar (IR): sadri instrukciju koja je zadnja uitana
Memorijski adresni registar (MAR): sadri adresu lokacije u memoriji
Memorijski buffer registar (MBR): sadri rije podatka koji se upisuje u
memoriju ili rije koja je nedavno uitana.
Obino procesor aurira PC poslije svakog dohvatanja instrukcije tako da PC uvijek
pokazuje na sljedeu instrukciju koja se treba izvriti. Instrukcija grananja takoer
mijenja sadraj PC-a. Uitana instrukcija se smjeta u IR, gdje se analiziraju
specifikatori opkoda i
operanda. Podaci se razmjenjuju sa memorijom koritenjem MAR i MBR. U sistemu
sa bus-organizacijom, MAR direktno povezuje na adresnu sabirnicu, a MBR na
podatkovnu. S druge strane, korisniki vidljivi registri razmjenjuju podatke sa MBR.
Ova etiri registra se koriste za prenos podataka izmeu procesora i memorije.
Unutar procesora podaci moraju biti predani ALU na obradu. ALU moe imati
direktan pristup MBR-u i korisniki vidljivim registrima. Alternativa su dodatni baferski
registri na granici ALU-a. Ovi registri za ALU slue kao ulaz i izlaz iz registara i
razmjenjuju podatke sa MBR i korisniki vidljivim registrima.
Instrukcijski ciklus
Dobavljanje: uitavanje sljedee instrukcije iz memorije u procesor.
Izvravanje: prevoenje opkoda i izvoenje naznaene operacije.
Prekid: ako su dozvoljeni i ako se prekidi pojave, spaava se trenutno stanje
procesa i usluuje se prekid.
Indirektni ciklus
Izvravanje instrukcije moe ukljuiti jedan ili vie operanada iz memorije, to znai
da se zahtjeva pristup memoriji. Nadalje, ako se koristi indirektno adresiranje,
zahtjevaju se dodatni pristupi memoriji.
Uitavanje indirektne instrukcije je samo jedno ili vie stanja instrukcije. Nakon
njenog uitavanja, ona se pregledava kako bi se odredilo postojanje indirektnog
adresiranja.
Ako je to tako, uitavaju se zahtjevani operandi koritenjem indirektnog adresiranja.
Pratei izvravanje, moe se obraivati prekid prije uitavanja sljedee instrukcije.
Drugi nain: ilustrira prirodu ciklusa instrukcije. Kad se instrukcija uita, moraju se
identificirati njeni specifikatori operanada. Onda se uitava svaki ulazni operand, to
moe zahtjevati indirektno adresiranje. Operandi bazirani na registru se ne trebaju
uitavati. Nakon izvrenja opkoda, moda e biti potreban slian proces za pohranu
rezultata u glavnu memoriju.
Tok podataka
Taan slijed dogaaja tokom izvravanja instrukcijskog ciklusa zavisi od konstrukcije
procesora. Meutim, moe se pokazati ta se generalno mora dogoditi. Neka
procesor koristi MAR, MBR, PC i IR. Tokom ciklusa dobavljanja, instrukcija se uitava
iz memorije.
PC sadri adresu sljedee instrukcije koju treba uitati. Adresa se premjeta u MAR i
smjeta na adresnu sabirnicu. Kontrolna jedinica zahtjeva itanje memorije, a rezultat
se smjeta na podatkovnu sabirnicu, kopira u MBR, i premjeta u IR. U meuvremu,
PC se poveava za 1, pripremajui se za sljedee uitavanje.
Kad se zavri ciklus uitavanja, kontrolna jedinica pregledava sadraj IR-a kako bi se
utvrdilo postojanje specifikatora operanda koristei indirektno adresiranje. Ako da,
izvodi se indirektni ciklus. N krajnjih desnih bitova MBR-a, koji sadre adresnu
referencu, prebacuju se u MAR. Onda kontrolna jedinica zahtjeva itanje memorije,
kako bi se dobila traena adresa operanda u MBR-u.
Indirektni ciklus i ciklus uitavanja su jednostavni i predvidljivi. Ciklus izvravanja ima
mnoge forme, to zavisi koja je od brojnih mainskih instrukcija u IR-u. Ciklus moe
ukljuivati prenos podataka izmeu registara, uitavanje i upisivanje u memoriju ili
I/O, i /ili pozivanje ALU. Prekidni ciklus je takoer jednostavan i predvidljiv. Trenutni
sadraj PC-a mora biti spaen tako da proces moe povratiti normalnu aktivnost
nakon prekida. Zato se sadraj PC-a prenosi u MBR radi upisivanja u memoriju.
Posebna memorijska lokacija koja je rezervisana u tu svrhu, uitava se u MAR iz
kontrolne jedinice. To na primjer moe biti stek pokaziva. U PC se uitava adresa
prekidne rutine. Kao rezultat, sljedei instrukcijski ciklus e poeti uitavanjem
odgovarajue instrukcije.
Instrukcijski pipelining
Kako se razvijao raunarski sistem, tako su se poboljavale njegove performanse
koje se
postignute koritenjem tehnolokih poboljanja, kao to je bre kolo. Nadalje,
organizacijska poboljanja takoe mogu poboljati performanse procesora.
Organizacijski pristup koji je veoma est je instrukcijski pipelining.
Pipelining strategija
Instrukcijski pipelining je slian koritenju asemblerske linije u proizvodnji. Ova linija
koristi
prednosti injenice da proizvod prolazi kroz razliite faze proizvodnje. Postavljanjem
procesa proizvodnje u traku, istovremeno se moe raditi na proizvodima koji su u
razliitim fazama obrade.
Faze pipelininga
Uitavanje instrukcije (FI): uitavanje sljedee oekivane instrukcije u buffer.
Dekodiranje instrukcije (DI): odreivanje opkoda i specifikatora operanda.
Izraunavanje operanda (CO): izraunavanje stvarne adrese svakog
izvornog operanda. Ovo moe ukljuiti pomak, registarsku indirekciju ili druge
oblike izraunavanja adrese.
Uitavanje operanada (FO): uitavanje svakog operanda iz memorije.
Operandi u registrima se ne trebaju uitavati.
KONTROLNA JEDINICA
Ciklus indirekcije
Kad je dobavljena instukcija, dobavlja se izvorni operand.
t1:MAR (IR(adresa))
t2:MBR Memorija
t3:IR(adresa) (MBR(adresa))
Ciklus prekida
Na zavretku ciklusa izvravanja, radi se testiranje u svrhu odreivanja pojave
odobrenih prekida. Ako je tako pojavljuje se ciklus prekida:
t1:MBR (PC)
t2:MAR spaavanje_adrese
PC adresa_rutine
t3:memorija (MBR)
Ciklus izvravanja
Ciklusi uitavanja, indirekcije i prekida su jednostavni i predvidljivi. Svaki ukljuuje
mali i
ustaljen niz mikrooperacija i, u svakom sluaju, iste se mikooperacije ponavljaju svaki
put.
Meutim, to nije tako kod ciklusa izvravanja zbog razliitih opkodova, jer se mogu
pojaviti
brojni i razliiti nizovi mikooperacija.
Definisanje funkcije koje mora izvesti kontrolna jedinica je osnova projektovanja i
implementacije kontrolne jedinice.
1. Definisati osnovne elemente procesora.
2. Opisati mikooperacije koje izvodi procesor.
3. Odrediti funkcije koje mora izvesti kontrolna jedinica da bi prouzroila izvoenje
mikrooperacija.
Kontrolna jedinica uzrokuje da se dogode operacije u procesoru.
Svaka mikrooperacija pripada nekoj karegoriji:
Prenos podataka od jednog do drugog registra.
Prenos podataka od registra do eksternog suelja (npr., sistemska sabirnica).
Prenos podataka od eksternog suelja do registra.
Izvoenje aritmetike ili logike operacije koritenjem registara za ulaz i izlaz.
Kotrolna jedinica izvodi dva osnovna zadatka:
Sekvencioniranje: kontrolna jedinica uzrokuje da procesor prolazi kroz niz
mikrooperacija odgovarajuim redoslijedom, zasnovano na programu koji se
izvrava.
Izvravanje: kontrolna jedinica uzrokuje da se svaka mikrooperacija izvede.
Kako bi izvela svoju funkciju kontrolna jedinica mora imati ulaze kojima odreuje
stanje
sistema i izlaze kojima kontrolie ponaanje sistema.
Ulazi su:
Takt: Kontrolna jedinica uzrokuje izvoenje jedne ili vie mikooperacija u
svakom taktnom impulsu. Ovo se nekad oznaava kao brzina procesora.
Instrukcijski registar: opkod i nain adresiranja trenutne instrukcije se koristi
za odreivanje koje mikrooperacije izvesti tokom izvrnog ciklusa.
Zastavice: potrebne su kontrolnoj jedinici za odreivanje statusa procesora i
rezultata prethodnih ALU operacija.
Kontrolni signali sa kontrolne sabirnice: kontrolna sabirnica kao dio
sistemske, obezbjeuje signale ka kontrolnoj jedinici.
Izlazi su:
Kontrolni signali unutar procesora: dva su tipa: jedni uzrokuju prenoenje
podataka od jednog do drugog registra, a drugi aktiviraju specifine ALU
funkcije.
Kontrolni signali ka kontrolnoj sabirnici: dva tipa: kontrolni signali ka
memoriji i kontrolni signali ka I/O modulima.
Koriste se tri tipa kontrolnih signala: za aktiviranje ALU funkcije, podatkovne putanje i
signali na eksternu sistemsku sabirnicu ili drugo eksterno suelje. Svi se ovi signali
na kraju primjenjuju direktno kao binarni ulazi za pojedinana logika vrata.
MEMORIJA
Iako je memorija svojim konceptom najjednostavnije komponenta raunara ima najii
spektar tipova.
Karakteristike:
Lokacija (unutranja i vanjska)
Kapacitet (broj rijei/broj bajtova)
Jedinica prenosa (rije, blok)
Nain pristupa (sekvencijalni, direktni, sluajni, asocijativni)
Performanse (vrijeme pristupa, vrijeme ciklusa, brzina prenosa)
Fiziki tip (poluprovodnik, optiki, magnetno-optiki)
Fizike karakteristike (nepostojana/postojana, izbrisiva/neizbrisiva
Organizacija (memorijski moduli).
Unutranja memorija: glavna memorija, ke memorija;
Vanjska memorija: diskov i traki; procesor im pristupa pomou I/O kontrolera.
Kapacitet se kod unutranje memorije izraava u rijeima ili bajtima. Duina rijei
moe biti 8, 16 i 32 bita; Kapacitet vanjske memorije se obino izraava u bajtima.
Za unutranju memoriju, jedinica prenosa je jednaka broju elektrinih linija koje ulaze
i izlaze u memorijski modul, to moe biti jednako duini rijei, ali je esto vee (64,
128 ili 256 bita); Kod vanjske memorije podaci se prebacuju u blokovima.
Sekvencijalni pristup: memorija je organizovana u jedinice podataka koji se nazivaju
zapisi. Pristup se mora obaviti u posebnom linearnom nizu. Pohranjene informacije o
adresiranju se koriste za razdvajanje zapisa i kao pomo u povratnom procesu.
Sekvencijalni pristup podrazumijeva da se sa pretraivanjem krene od prvog zapisa.
Vrijeme pristupa je promjenjivo.
Neposredni pristup: direktno se pristupa do ope lokacije u blizini, a onda slijedi
sekvencijalno pretraivanje, brojanje, ili ekanje do konane lokacije. Vrijeme
pristupa je promjenjivo.
Sluajni pristup: svaka adresabilna lokacija u memoriji ima jedinstven fiziki
mehanizam adresiranja. Vrijeme pristupa datoj lokaciji je konstantno, i nezavisno od
niza prethodnih pristupa. Zato svaka lokacija moe biti izabrana sluajno, a adresira i
pristupa joj se direktno.
Asocijativan pristup: koristi ga vrsta memorije sa direktnim pristupom koja
omoguava da se uporede eljene lokacije bitova unutar rijei kako bi se postigla
podudarnost sa odreenim uzorkom i da se to uradi za sve rijei istovremeno. Dakle,
Broj keeva
Kad je ke uveden, tipian sistem je imao samo jedan. U posljednje vrijeme,
normalna je
upotreba viestrukih keeva. Dva aspekta dizajna tiu se: broja ke nivoa i ujedinjeni
naspram razdvojeni ke.
Ke u vie nivoa: poveanjem gustine logike, te je postalo mogue imati ke na
istom ipu gdje je i procesor. U poreenju sa keom kojem se pristupa preko
spoljanje sabirnice, ke na ipu smanjuje procesorsku vanjsku sabirnicu te se zato
ubrzava izvrenje i poveavaju performanse sistema uope. Kada se pronae
traena informacija ili podatak u keu na ipu, eliminie se pristup sabirnice, te je
tokom ovog perioda sabirnica je slobodna za podrku drugim prenosima.
Ujedinjeni naspram razdvojenog kea: kad se ke na ipu prvi put pojavio, mnogi
dizajni su se sastojali od jednog kea koji se koristio za pohranjivanje podatkovnih i
instrukcijskih referenci. U novije vrijeme, postalo je uobiajeno razdvajanje kea na
dva: jedan namijenjen za instrukcije, a drugi za podatke. Oba se nalaze na istom
nivou, obino kao dva L1 kea. Kada procesor pokuava da dobavi instrukciju iz
glavne memorije, prvo provjerava instrukcijski L1, a kada pokuava dobaviti podatke
iz glavne memorije, prvo provjerava podatkovni L1.
Dvije su prednosti ujedinjenog kea:
Za datu veliinu kea, ujedinjeni ima veu stopu pogotka od razdvojenog jer
automatski uravnoteuje optereenje izmeu instrukcijskih i podatkovnih
dobavljanja.
Treba samo projektovati i implementirati jedan ke.
Kljuna prednost dizajna razdvojenog kea je u tome to:
Eliminie trku za keom izmeu jedinice za dobavljanje/dekodiranje instrukcije
i izvrne jedinice.
Unutranja memorija
Poluprovodnika glavna memorija:
Organizacija:
Osnovni element poluprovodnike memorije je memorijska elija. Iako se koriste
raznolike elektronske tehnologije, sve poluprovodnike memorijske elije imaju
zajednika svojstva:
Imaju dva (polu)stabilna stanja, koja se koriste za predstavljanje binarnih 1 i 0.
Za postavljanje stanja u njih se, bar jednom, moe upisivati.
Iz njih se moe itati s obzirom na stanje (0 ili 1).