Uvod
Veinu modernih raunara moemo ematski predstaviti kao da se sastoje od nekoliko
meusobno povezanih nivo. Na najniem nivo nalazi se sloj digitalne logike sastavljen, kao
to samo ime implicira, od razliitih digitalnih kola. Naredni nivo predstavlja nivo
mikroarhitekture. Na ovom nivo nalazi se kolekcija od 8 do 32 registra koja ine lokalnu
memoriju i kolo koje se naziva aritmetika-logika jedinica (eng. Arithmetic Logic Unit,
ALU), namijenjeno za izvoenje jednostavnih aritmetikih operacija. Registri povezani sa
ALU ine putanju podataka (eng. data path), kojom prolaze podaci prilikom obrade u
procesoru. Osnovna operacija putanje podataka moe se opisati na sljedei nain: odabire se
jedan ili dva registra koji sadre odreene podatke, zatim se sadraj tih registara obrauje u
ALU, i na kraju se rezultat smijeta natrag u neki od registara ili u memoriju. Kod nekih
maina, rad putanje podataka je upravljan sa programom koji se naziva mikroprogram, dok se
kod drugih radom putanje podataka upravlja hardverom.
Naredni nivo je nivo arhitekture instrukcijskog skupa. Ovaj nivo obuhvata skup
instrukcija koje mogu biti izvedene od strane mikroprograma ili hardvera. Nakon nivoa skupa
instrukcija dolazi nivo operativnog sistema. On u osnovi predstavlja hibridni nivo koji
obuhvata instrukcije sa prethodnog nivoa kao i skup novih instrukcija.
Nivo asemblerskog jezika dolazi nakon operativnog sistema. Programi napisani u
asemblerskom jeziku se naprije prevode na jezike nivoa 1, 2 ili 3, pa se tek onda interpretiraju
od stvarne maine. Program koji izvodi prevoenje naziva se asembler.
Krajnji nivo predstavlja nivo aplikativnih programa napisanih u nekom od jezika
visokog nivoa. Programi napisani u ovim jezicima se prevode na nivo 3 ili 4 pomou
translatora pod imenom kompajleri.
Skup tipova podataka, operacija i osobina svakog nivoa naziva se arhitekturom.
Programi napisani u stvarnom mainskom jeziku mogu biti direktno izvravani od
strane raunarskih elektronikih kola bez intervencije interpretera ili translatora. Ova
elektronika kola, zajedno sa memorijom i ulano/izlaznim ureajima ine raunarski hardver.
Softver se sastoji od algoritama - niza instrukcija i njihove raunarske interpretacije programa. Programi mogu biti pohranjeni na hard disku, CD-ROM-u, ili nekom drugom
mediju.
Kod modernih raunara, jasna granica izmeu softvera i hardvera ne postoji, s obzirom
da bilo koja operacija koja se moe izvesti softverski, moe takoe biti izvedena i hardverski.
primjenom polinoma. Ono to je bilo interesantno kod ove maine jeste metod dobijanja
izlaza: rezultati su bueni na bakarnu plou pomou eline kocke.
Premda je ovakva maina radial prilino dobro, Babage se brzo umorio od maine koja
je mogla izvoditi samo jedan algoritam. Potroio je ogromne iznose novca na dizajn i
izgradnju nove maine koju je nazvao analitikom mainom (eng. analytical engine).
Analitika maina je imala etiri komponente: pohranu (memoriju), mlin (raunsku jedinicu),
ulaznu sekciju (ita buene kartice) i izlaznu sekciju (bueni i tampani izlaz). Memorija se
sastojala od 1000 rijei po 50 decimalnih cifara, i svake je mogla sadravati varijable i
rezultate. Raunska jedinica je mogla da prihvati operande iz memorije, zatim da ih sabere,
oduzme, pomnoi ili podijeli, te smjesti rezultat natrag u memoriju. Kao i diferentna maina,
analitika maina je u potpunosti bila mehanika.
Znaaj analitike maine ogledao se u njenoj opoj namjeni. Ova maina mogla je da
ita podatke i programe sa buenih kartica i da ih izvrava. Neke instrukcije su, na primjer
zahtijevale da maina uita dva broja iz pohrane (memorije) u raunarsku jedinicu, te da se
rezultat smjesti poovno u pohranu. Buenjem razliitih programa na ulaznim karticama bilo
je mogue programirati mainu tako da izvodi razliite proraune.
Analitika maina je koristila jednostavan asemblerski jezik. Da bi kreirao softver za
ovu mainu, Babbage je unajmio Adu Augusta Lovelace (kerku poznatog britanskog
pjesnika Lorda Byrona). Prema tome, Ada Lovelace bila je prvi programer na svijetu. U njenu
ast, programski jezik Ada je dobio ime.
Naredni znaajan trenutak u razvoju raunara desio se kasnih 1930.-tih godina, kada je
njemaki student inenjerstva Konrad Zuse izgradio niz automatskih raunarskih maina
pomou elektromagnetskih releja. Njegovi radovi uniteni su u saveznikom bombardiranju
Berlina 1944. godine.
Neto kasnije, u SAD, John Atanasoff sa Iowa State College i George Stibbitz iz Bell
Labs dizajnirali su svoje kalkulatore. Atanasoffova maina koristila je binarnu aritmetiku i
imala kondenzatore kao memeoriju, koji su periodino morali biti osvjeavani, zbog gubitka
naelekrisanja. ipovi dananje dinamike memorije (DRAM) funkcioniu na slian nain.
Naalost, ova maina nikad nije postala operacionalna. S druge strane, Stibbitzov raunar,
premda mnogo primitivniji u odnosu na Atanasoff, je zaista radio.
Godine 1944. , na Hardvardu, Howard Aiken razvija soju prvu mainu, Mark I. Ova
maina imala je 72 rijei od po 23 decimalne cifre i imala je vrijeme izvravanja instrukcije
od 6 sekundi. Kao ulazi i izlazi koritene su buene papirne trake.
2.2 Raunari prve generacije
Jedan od bitnih podstreka za pojavu elektronikih raunara bio je II svjetski rat. Na
poetku rata, njemake podmornice koje su napadale Britaniju i britansku flout meusobno su
slale ifrirane poruke pomou ureaja koji se zvao ENIGMA. Iako su britancu uspjeli doi u
posjed ove maine zahvaljujui poljskim obavjetajcima, nisu mogli brzo odgonetnuti kako da
se izvri dekodiranje tih poruka. Svako dekodiranje tih poruka zahtijevalo je ogroman
proraun i dok bi britanci odgonetnuli sadraj poruke, odreeni dogaaj bi se ve desio. Stoga
je britanska vlada formirala tim, na elu sa poznatim britanskim matematiarem Alanom
Turingom, s ciljem razvoja raunara koji bi mogao dekodirati ove poruke. Ovaj tim je razvio
1943. godine elektroniki raunar nazvan COLOSSUS, a koji je narednih 30 godina ostao
vojna tajna. Iako je do trenutka objavljivanja detalja oko izrade ovo raunara, on ve bio
potpuno zastario, bitno je napomenuti da je on bio prvi elektroniki digitalni raunar.
Otprilike u isto vrijeme sa pojavom ISA maine, istraivai na M.I.T.-u su gradili svoj
raunar, Whirlwind I, koji je bio maina sa 16-bitnom rijei namijenjena za upravljanje u
realnom vremenu. Ovaj projekat je doveo do razvoja memorije sa magnetskom jezgrom od
strane Jay Forestera i do razvoja prvog komercijalnog miniraunara.
Godine 1953. tada mala tvrtka IBM zapoinje s proizvodnjom raunara IBM 701.
2.3 Raunari druge generacije
Godine 1948. istraivai John Bardeen, Walter Bratain i William Shockley u Bell Labs
ravili su transistor, za to su 1956. godine dobili i Nobelovu nagradu za fiziku. U samo 10
godina, tranzistori su potpuno revolucionizirali razvoj raunara, tako da su ve kasnih 1950.tih raunari sa vakumskim cijevima bili potpuno zastarjeli. Prvi raunar sa tranzistorima bio je
izgraen na M.I.T.-ovoj Lincoln Laboratoriji, kao nasljednik Whirlwinda I. Ovaj raunar
nazvan je TX-o (Transistorized eXperimental computer o).
Digital Equipment Corporation (DEC) dizajnirala je 1961. godine raunar PDP-1 koji
je imao 4096 18-bitnih rijei i mogao je izvriti 200000 instrukcija u sekundi. Jedna od
inovacija PDP-1 bio je vizuelni displej I mogunost da crta take bilo gdje na ekranu veliine
512x512 taaka. Nekoliko godina nakon PDP-1, pojavio se PDP-8 raunar ija je glavna
inovacija bila uvoenje jedne sabirnice omnibus. Sabirnica predstavlja kolekciju paralelnih
ica namijenjenih za povezivanje komponenti raunara.
Otprilike u isto vrijeme, kompanija IBM je razvila svoj raunar 7090, a zatim i verziju
7094 i time postala vodea kompanija u podruju naunog raunarstva. Nakon toga razvijena
je verzija 1401 namijenjena za poslovne sisteme sa 4000 bajta memorije, premda kasnija
verzija je imala i do 16000 bajta. Potrebno je napomenuti da su raunari 7094 i 1401 bili
potpuno nekompatibilni: jedan je brza maina sa paralelnom binarnom aritmetikom i 36bitnim registrima, dok je drugi koristio serijsku decimalnu aritmetiku sa rijeima promjenljive
duine.
Godine 1964. skoro nepoznata kompanija, Control Data Corporation (CDC),
predstavila je svoj raunar 6600. Raunar 6600 bio je bri od svih raunara dostupnih u to
vrijeme. Unutar CPU nalazila se paralelna maina sa nekoliko funkcionalnih jedinica za
izvoenje operacija sabiranja, mnoenja, dijeljenja.
6
Pored navedenih raunara, u ovom periodu su se pojavili jo mnogi drugi raunari kao
to je na primjer Burroughs B5000.
2.4 Raunari tree generacije
Moglo bi se rei da su se raunari tree generacije pojavili zahvaljujui izumu
silicijumskih integrisanih kola Roberta Noycea 1958. Godine, a koja su omoguavala
smijetanje desetina tranzistora na jedan ip. Ovo je omoguilo da se izgrade manji, bri i
jeftiniji raunari.
U ovom periodu, IBM je uveo jednu liniju proizvoda nazvanu System/360, zasnovanu
na integrisanim kolima, a koja je bila dizajnirana za nauno i poslovno raunarstvo.
System/360 je sadravao veliki broj inovacija: to je bila porodica maina sa istim
asemblerskim jezikom i poveanom veliinom i snagom; softver napisan za jedan model se
mogao izvravati i na drugom modelu bez problema; uveden je princip multiprograminga kod
kojeg je vie programa istovremeno uitano u memoriju, te kad jedan eka da se zavre
operacije ulaza/izlaza, drugi program se moe izvravati.
DEC kompanija je primijenila integrisana kola u svojim raunarima te je zamijenila
PDP-8 sa PDP-11 serijom koja je bila izuzetno uspjena.
2.5 Raunari etvrte generacije
Do poetka 1980., bilo je mogue smjestiti desetine hiljada, a zatim i stotine hiljada i
konano milione tranzistora na jedan ip. Ova tehnologija nazvana Very Large Scale
Integration, VLSI, dovela je do razvoja manjih i brih raunara. Tako je zapoela era
personalnih raunara koji su mogli biti koriteni za obradu teskta, rad sa tabelama i slino.
2.6 Podjela raunara
U nastavku je data openita podjela danas dostupnih raunara.
Svi raunari se s obzirom na svoja svojstva mogu podijeliti na vie skupina.
Najrasprostranjeniju skupinu predstavljaju mikroraunari. To su raunari najmanje snage, i sa
njima se veina dananjih korisnika raunara najvie susree. Moemo ih podijeliti na kune
raunare i line ili personalne raunare (skraeno PC Personal Computer). Kuni raunari su
najjeftiniji i najjednostavniji, i koriste se preteno za igru i uenje, dok su PC raunari
pogodni i za poslovne primjene. Kako su danas cijene PC raunara drastino opale, oni se sve
vie susreu i u kunoj upotrebi, tako da se vie ne moe govoriti o strogoj podjeli na kune i
personalne raunare.
Mikroraunare moemo podijeliti i na stone (desktop) i prijenosne raunare. Stoni
raunari su predvieni za smjetaj na jednom mjestu, dok su prijenosni raunari predvieni za
esto prenoenje sa jednog na drugo mjesto. Stoga su prijenosni raunari malih dimenzija i
male teine, a opremljeni su i baterijskim napajanjem da omogue rad na mjestima gdje
gradska napojna mrea nije dostupna. Postoji mnogo vrsta prijenosnih raunara, a najpoznatiji
su laptop raunari, notebook raunari (veliine sveske), hand-held raunari (veliine
kalkulatora, namijenjeni za dranje u ruci), palmtop raunari (veliine dlana) i sasvim
minijaturni PDA raunari (Personal Digital Assistant).
Radne stanice predstavljaju monije raunare od mikroraunara, namijenjene
intenzivnijoj obradi podataka. Njihova brzina rada i kapacitet memorije znatno su vei nego
7
3.1 Procesori
Na slici je prikazana organizacija jednostavnog digitalnog raunara.
Funkcija centralne procesne jedinice (eng. Central Processing Unit, CPU) je da izvri
programe pohranjene u memoriji dobavljanjem instrukcija programa, ispitivanjem tih
instrukcija i zatim izvravanjem tih instrukcija jedne iza druge.
Komponente raunara su meusobno povezane sa sabrnicom (eng. bus) koja
predstavlja kolekciju paralelnih ica za prenoenje adresa, podataka i kontrolnih signala.
CPU se sastoji od nekoliko dijelova. Kontrolna jedinica je odgovorna za dobavljanje
instrukcija iz glavne memorije i odreivanje tipa tih instrukcija. Aritmetiko logika jedinica
(eng. Arithmetic Logic Unit, ALU) izvodi operacije kao to su na primjer: sabiranje i
Booleovo AND.
Takoe, CPU sadri i malu, vrlo brzu memoriju koja se koristi za smjetanje
privremenih rezultata i izvjesnih kontrolnih informacija. Ova memorija je sainjena od niza
registara, od kojih svaki ima odgovarajuu veliinu i funkciju. Obino, svi registri imaju istu
veliinu. Svaki registar moe smjestiti jedan broj, do veliine odreene veliinom registra.
Podaci se mogu itati iz ili upisivati u registre velikom brzinom, jer su oni smjeteni unutar
CPU. Jedan od najvanijih registara je programski broja (eng. Program Counter, PC) koji
pokazuje na sljedeu instrukciju koja treba biti dobavljena za izvravanje. Instrukcijski
registar (eng. Instruction Register, IR) namijenjen je za smijetanje instrukcije koja se
trenutno izvrava.
ALU moe izvesti operacije sabiranja, oduzimanja i neke druge jednostavne operacije
nad ulazima, pri emu se rezultat tih operacija smijeta u izalzni registar. Sadraj izlaznog
registra moe biti ponovo pohranjen u neki od registara i kasnije, sadraj registra moe biti
pohranjen u memoriju. Potrebno je napomenuti da svi dizajni nemaju registre A i B, te izlazni
registar.
Veina instrukcija moe biti podijeljena u jednu od dvije kategorije: registar-memorija
i registar-registar instrukcije. Registar-memorija instrukcije omoguavaju da rijei iz
memorije budu dobavljene u registre, gdje npr. mogu biti koritene kao ulazi u ALU u
narednim instrukcijama. Druge registar-memorija instrukcije omoguavaju registrima da
pohrane rijei natrag u memoriju. Rije podrazumijeva jedinicu podataka premjetenu iz
memorije u registre. Tipine registar-registar instrukcije dobavljaju dva operanda iz registara
u ulazne registre ALU, izvode neke operacije nad njima i smjetaju rezultat natrag u jedan od
registara. Proces provoenja dva operanda kroz ALU i pohrane rezultata naziva se ciklus puta
podataka i predstavlja jezgru veine CPU-a. On, u znaajnoj mjeri, definie ta maina moe
da uradi. to je ciklus puta podataka bri, to je bra maina.
10
Skup registara
Registri predstavljaju izuzetno brze memorijske lokacije unutar CPU namijenjen da
kreiraju i pohrane rezultate CPU operacija i drugih prorauna. Razliiti raunari imaju
razliite skupove registara. Oni se razlikuju u broju, tipovima registara, te u duini svakog
registra. Takoe se razlikuju u nainu primjene registara. Registri ope namjene mogu biti
koriteni u razliite svrhe i mogu im biti dodijeljene razliite funkcije od strane programera.
Registri specijalne namjene su ogranieni na specifinu funkciju. U nekim sluajevima, neki
registri su koriteni samo za pohranu podataka i ne mogu biti koriteni za proraun adrese
operanda. Duina registara podataka mora biti dovoljno velika da moe smjestiti vrijednosti
veine tipova podataka. Adresni registri mogu biti koriteni za samo odreeni mod adresiranja
ili mogu biti koriteni za ope naine adresiranja. Adresni registri moraju biti dovoljno dugi
tako da mogu smjestiti najduu adresu. Broj registara koritenih u nekoj arhitekturi utie na
dizajn skupa instrukcija. Vrlo mali broj registara moe rezultirati poveanjem broja
memorijskih referenci. Naredni tip registara su registri koji sadre bite statusa procesora ili
zastavice (eng. flag). Ovi biti su postavljeni od CPU-a kao rezultat izvravanja neke operacije.
Statusni biti mogu biti testirani kasnije kao dio neke druge operacije.
Pri operacijama itanja i pisanja, vrlo bitna su dva registra: registar podataka memorije
(eng. memory data register, MDR) i registar adrese memorije (eng. memory address register,
MAR). Ovi registri su koriteni samo od CPU i programeri im ne mogu direktno pristupiti. Da
bi se izvrila operacija zapisivanja na specifinu memorijsku lokaciju, MDR i MAR su
koriteni na sljedei nain:
1. Rije koja treba biti pohranjena na nekoj memorijskoj lokaciji je najprije uitana
pomou CPU u MDR.
2. Adresa lokacije u koju rije treba biti pohranjena je uitana od CPU u MAR.
3. Signal za pisanje je izdat od CPU.
Na slian nain izvodi se operacija itanja, a MDR i MAR su koriteni na sljedei nain:
11
u hardveru. Hardverska kontrola zahtijeva redizajn cijelog sistema u sluaju bilo kakve
izmjene.
13
Sistemski sat
Svaki raunar posjeduje unutranji sat koji regulie koliko brzo se mogu izvravati
instrukcije raunara. Ovaj sistemski ili glavni sat sinhronizira sve komponente sistema. CPU
zahtijeva tano odreen broj perioda sata za izvravanje svake instrukcije. Prema tome, esto
se preformansa izvravanja instrukcija mjeri u broju ciklusa sata vremenu trajanja jednog
perioda sata umjesto u sekundama. Razliite instrukcije mogu zahtijevati razliit broj
ciklusa sata za svoje izvravanje, pa se brzina izvravanja instrukcija procesora, izraena u
broju ciklusa po instrukciji, predstavlja kao prosjean broj ciklusa svih instrukcija izvrenih u
nekom programu. Frekvencija sata (ponekad se naziva i brzinom sata) mjeri se u MHz ili
GHz, pri emu je 1 MHz jednak 1 milionu ciklusa sata u sekundi (1 Hz je 1 ciklus u sekundi).
Vrijeme jednog ciklusa (ili period ciklusa) je jednostavno reciprona vrijednost frekvencije
sata.
Veina maina je sinhrona: postoji jedan glavni sat koji mijenja vrijednost u pravilnim
vremenskim intervalima. Meutim, izvjesne sabirnice i ureaji posjeduju i svoje vlastite
satove. Satovi sabirnice su obino sporiji nego CPU satovi, to izaziva razliite probleme i
zastoje.
14
MIPS-a (eng. Millions of Instructions Per Second), mada je stvarna brzina 500 MIPS-a, jer se
pri svakom ciklusu (2 ns) kompletira jedna nova instrukcija.
Pipelining omoguava balans izmeu vremena izvrenja instrukcije i broja MIPS-a
procesora. Sa trajanjem ciklusa od T ns i n stepeni pipelinea, vrijeme izvrenja instrukcije
iznosi nT ns, jer svaka instrukcija proe kroz n stepeni sa trajanjem T ns.
Slika 8
16
3.6 Multiprocesori
Multiprocesori predstavljaju sistem sa vie CPU-ova koji dijele zajedniku memoriju.
Mogue su razliite sheme. Primjer na slici ima jednu sabirnicu sa vie CPU-ova i jednu
memoriju na koju su oni spojeni. Na primjeru na slici, svaki procesor ima svoju lokalnu
memoriju, koja nije dostupna drugim procesorima, ime se smanjuje saobraaj na sabirnici. U
primjeru na slici, svi CPU-ovi koriste istu memoriju i mogu itati i pisati u bilo koji dio nje,
pa stoga oni moraju meusobno komunicirati da bi se izbjegla kolizija.
U odnosu na druge tipove paralelnih raunara, multiprocesori imaju prednost zbog
jednostavnosti programiranja sa samo jednom dijeljenom memorijom.
Slika 9
3.7 Multiraunari
Premda je multiprocesore sa manjim brojemprocesora (256) relativno jednostavno
izgraditi, vee sisteme je iznenaujue teko konstruisati. Potekoa u ovakvom sistemu jeste
povezivanje svih procesora na memoriju. Umjesto jedne zajednike memorije, izgraeni su
sistemi koji se sastoje od velikog broja meusobno povezanih raunara, od kojih svaki ima
svoju privatnu memoriju. Takvi sistemi nazivaju se multiraunari.
CPU-ovi u multiraunarima ponekad se nazivaju slabo povezanim CPU-ovima, dok se
u multiprocesorima nazivaju vrstopovezanim CPU-ovima. U multiraunarima, CPU-ovi
17
meusobno komuniciraju slanjem poruka, pri emu su oni povezani u topologije tipa 2D i 3D
mrea, stabala ili prestenova.
Do danas su izgraeni i u funkciji su raunari sa skoro 10000 CPU-ova.
18
4. Primarna memorija
Memorija predstavlja dio raunara namijenjen za pohranu programa i podataka.
Osnovna jedinica memorije je binarna cifra nazvana bit koja moe imati vrijednost 0 ili 1.
Jedan od razloga za primjenu binarne aritmetike lei u injenici da to je potrebno
razlikovati manji broj razliitih vrijednosti u signalu, to je sistem pouzdaniji. S obzirom da
binarni brojni sistem ima samo dvije vrijednosti, 0 i 1, koje treba razlikovati, on predstavlja
najpouzdaniji metod za kodiranje digitalnih informacija.
4.1
Predstavljanje podataka
Biti i bajti
Dananji raunari, na fundamentalnom nivo, prepoznaju samo dva stanja: da li
elektrina struja tee kroz kolo ili ne. kao posljedica toga, sve informacije koje se
predstavljaju unutar raunara moraju se predstaviti pomou ova dva stanja. Umjesto
terminologije da li struja tee kroz kolo ili ne, raunarska nauka koristi oznake 1 i 0 za ove
dvije mogunosti. Stoga, osnovna jedinica informacija je binarna cifra (koja se naziva bit
informacije). Jedan bit informacije moe sadravati samo 0 ili 1. Kolekcija od 8 bita naziva se
bajt (eng. byte), pa se veliina memorije generalno mjeri kao broj bajta informacija koje
raunar moe da pohrani.
Veliina memorije prvih raunara mjerila se u 210 bajta, s obzirom da je 210 1024 ,
ovo se zaokruivalo na 1000, pa se 1024 bajta oznaava kao jedan kilobajt (to i nije zapravo
potpuno tano). U skladu sa tim, maina sa kapacitetom od 16 kilobajta ima 16384 bajta.
Danas se za kapacitet memorije koriste i veliine reda:
Magabajta: 1 megabajt = 220 bajta = 1048576 bajta,
Gigabajt: 1 gigabajt = 230 bajta = 1073741824 bajta.
Predstavljanje teksta
Uobiajeni nain predstavljanja teksta jeste da se za svaki simbol (npr. za svako slovo,
znak interpunkcije ili broj) koji treba biti predstavljen definie jedinstveni kod. Svaki kod
sastoji se od sekvence bita fiksne duine. Rije moe biti zapisana primjenom koda za svako
slovo te rijei. Napoznatiji kod koji se koristi u raunarima je ASCII (American Standard
Code for Information Interchange) kod. On koristi 8 bita za predstavljanje slova engleskog
alfabeta. ASCII kod sadri definicije za 128 znakova sedmobitnih brojeva, tj. niza od sedam 0
i 1, dok se osmi bit koristi za detekciju greaka pomou bita parnosti. Tih 128 znakova sastoji
se od 33 netampajua i 94 tampajuih i SPACE znakova (znak bez grafike). Netampajui
znakovi se ne ampaju i koriste se za definisanje formata teksta, kontroliu rad ureaja kojima
se prosljeuju, specijalne informacije o nizu podataka. 94 tampajua znaka i SPACE znak
prikazani su na slici.
Slika 10
19
Ponekad se pored ASCII koda koristi Unicode standard koji koristi 16 bita za
predstavljanje znakova (umjesto 8), tako da je skup znakova Unicode standarda puno vei
nego ASCII skup. Unicode skup znakova ukljuuje i znakove iz drugih alfabeta pored
engleskog (npr. kineski ili grki)
4.2
Memorijske adrese
Memorija se sastoji od velikog broja elija ili lokacija, pri emu svaka elija moe
pohraniti dio informacije. Svaka elija ima svoj broj koji se naziva adresom, pomou koje
program moe da joj pristupi.
Ako memorija ima n elija, one e imati adrese od 0 do n-1. Sve elije u memoriji
sadre isti broj bita. Ako se elija sastoji od k bita, ona moe sadravati bilo koju od 2k
razliitih kombinacija bita. Susjedne elije imaju uzastopne adrese. Raunari koji koriste
binarni brojni sistem izraavaju memorijsku adresu kao binarne brojeve. Ako adresa ima m
bita, maksimalni broj elija koje je mogue adresirati je 2m .
Znaaj elije je da ona predstavlja najmanju jedinicu koja se moe adresirati. Zadnjih
godina, skoro svi proizvoai imaju standardizovane 8-bitne elije nazvane bajt (eng. byte).
Bajti se zatim grupiu u rijei. 32-bitni raunari imaju rijei od 4 bajta, a 64-bitni sistemi
imaju rijei od 8 bajta.
Slika 11
20
Slika 12
21
Slika 13
22
5 Sekundarna memorija
Na slici ispod prikazana je piramida (hijerarhija) memorije. Tipina piramida
memorije poinje sa malim, skupim i relativno brzim jedinicama, registrima, nakon ega
slijedi cache memorija, a zatim dolazi vea, manje skupa i relativno spora jedinica glavne
memorije. Ovo znai da pomijeranjem niz piramidu memorije poveavaju se tri kljuna
parametra:
Vrijeme pristupa postaje vee;
Kapacitet pohrane podataka postaje vei;
Raste omjer broja bita i cijene.
Cache i glavna memorija su izgraene od poluprovodnikih materijala, tipino od
CMOS tranzistora. Obino se ovaj nivo naziva primarna memorija. Nakon nivoa memorije od
poluprovodnikih materijala slijedi nivo vee, manje skupe i dosta sporije magnetske
memorije koja se tipino sastoji od harddiska. Ovaj nivo se obino naziva sekundarnom
memorijom. Tape se obino naziva tercijarnom memorijom.
Slika 15
Slika 16
24
5.4 RAID
Kao to je paralelno procesiranje esto koriteno da se ubrza performansa CPU-a,
zadnjih godina desio se slian razvoj I/O ureaja. Ideja o paralelnom I/O ureaju dovela je do
razvoja nove klase I/O ureaja nazvanih RAID (Redudant Array of Independent Disks).
Osnovna ideja RAID ureaja bila je postaviti nekoliko diskova pored raunara (npr. servera),
zamijeniti karticu disk kontrolera sa RAID kontrolerom, kopirati podatke u RAID i nastaviti
sa normalnim radom. Operativnom sistemu bi RAID izgledao kao jedan veliki disk ureaj.
Budui da SCSI diskovi imaju dobre performanse, nisku cijenu i mogunost da imaju i
do 7 ureaja na jednom kontroleru, veina RAID-ova se sastoji od RAID SCSI kontrolera i
kutije SCSI diskova, a koji se operativnom sistemu ini kao jedan veliki disk.
25
Slika 17
5.5 CD-ROM
Optiki diskovi originalno su razvijeni za snimanje TV programa i disk prve
generacije razvijen je za Philips za potrebe snimanja filmova. Prvobitni diskovi bili su
promjera 30 cm i zvali su se LaserVision.
CD (Compact Disk) je razvijen 1980. godine od strane Philips-a i Sony-a. Tehniki
detalji su opisani u meunarodnom standardu (IS 10149), nazvanom Red Book. CD je
prenika 120mm, debljine 1.2mm, sa rupom u sredini od 15mm.
CD se snima koristei infracrveni laser velike snage koji bui rupe veliine od 0.8
mikrona prenika u disku obloenim staklom.
Neto kasnije, 1984. Godine, Phlips i Sony su definisali i standard YellowBook za
CD-ROM (Compact Disk Read Only Memory) koji definie formatiranje raunarskih
podataka. Ovaj standard je poboljaomogunosti sistema za korekciju greke.
26
Slika 18
27
5.7 CD-Rewritable
Ovi CD-ovi omoguavaju da se na jednom te istom mediju moe vie puta itati i
upisivati podaci. CD-RW ureaji koriste lasere sa tri razliite nivoa snage:
najvii nivo se koristi za snimanje podataka,
srednji za brisanje podataka,
najnii nivo slui za itanje podataka.
5.8 DVD
DVD (Digital Versatile Disk) ima isti opi dizajn kao CD-ovi, ali imaju:
manje upljine (0.4miktona, u odnosu na 0.8 mikrona kod CD-a),
zbijenije spirale (0.74 mikrona naspram 1.6 mikrona za CD),
crveni laser (0.65 mikrona u odnosu na 0.78 kod CD).
5.9 Blue-Ray
Nasljednik DVD-a je Blue-Ray nazvan tako zbog plavog lasera koji koristi. Plavi laser
ima krau talasnu duinu u odnosu na crveni laser koriten kod DVD-a, tako da moe kreirati
manje upljine i time smjestiti do 25GB podataka.
28
6 Ulazno/izlazni ureaji
6.1 Sabirnica
Tipini raunarski sistem je sastavljen od nekoliko komponenti kao to je centralna procesna
jedinica (CPU), memorijski ipovi i ulazno/izlazni (U/I) ureaji. Takoe, on sadri sabirnicu (eng.
bus) koja predstavlja zajedniki put koji povezuje ove razliite komponente u raunarskom sistemu.
Ona se sastoji od medija kao to su ice i konektori i protokola sabirnice.
Raunar na slici 7.2 ima jednu sabirnicu povezanu sa CPU, memorijom, U/I ureajima.
Veina sistema ima dvije ili vie sabirnica. Svaki U/I ureaj sastoji se od dva dijela: kontrolera i
samog U/I ureaja. Kontroler U/I ureaja se obino nalazi na ploi koja se umee u slobodan slot
(izuzev kontrolera koji nisu opcioni, npr. tastatura koji su na matinoj ploi). Uloga kontrolera je da
kontrolie svoj U/I ureaj i upravlja njegovim pristupom sabirnici.
Potrebno je napomenuti da se sabirnica ne koristi samo od strane U/I ureaja, nego i od CPU
za dobavljanje instrukcija i podataka. Ako i CPU i U/I ureaj trebaju sabirnicu, tada U/I ureaj ima
prednost i to odreuje arbitar sabirnice.
Sabirnica predstavlja kanal kojim informacije teku od jedne do druge raunarske jedinice ili
ureaja. Obino sabirnica posjeduje pristupne take ili mjesta kojima se ureaj moe povezati sa
sabirnicom. Veina dananjih sabirnica su bidirekcione to znai da ureaji mogu slati i primati
informacije preko iste sabirnice. Sabirnica je dijeljeni komunikacioni link izmeu razliitih ureaja.
Ona omoguava lako dodavanje novih ureaja i olakava portabilnost perifernih ureaja izmeu
razliitih raunarskih sistema. Meutim, ako je veliki broj ureaja povezan sa istom sabirnicom, tada
ona moe postati usko grlo sistema.
Sabirnice ukljuuju ice koje se koriste za prenos adresa, podataka, kontrolnih signala,
statusnih signala, sata i slino (slika 7.2). Adresne linije indiciraju izvor ili odredite podataka koji su
postavljeni na linijama podataka. Kontrolne linije se koriste za implementaciju protokola sabirnice.
esto ove linije se koriste za prenos signala koji kontroliu sabirnicu, upravljaju interuptima i slino.
Statusne linije indiciraju progres trenutne transakcije. Signali statusa su koriteni kod sistema
sinhronih sabirnica kako bi se sinhronizovale operacije sabirnice.
29
propusnosti, latentnosti i slino. Tipino, postoje dvije vrste sabirnica, CPU-memorija sabirnice i U/I
sabirnice.
CPU-memorija sabirnice su brze i kratke, dok su U/I sabirnice obino duge i spore. U/I
sabirnice povezuju vei broj razliitih ureaja. Neki autori ovo nazivaju hijerarhijom sabirnica sa
brzim sabirnicama blie procesoru i sporim sabirnicama daleko od procesora.
U/I sabirnice u personalnom raunaru su obino izraene na tampanoj ploi, koja ima
kontektore-slotove za umetanje kartice perifernih ureaja (slika 7.3.).
Protokoli sabirnice
Sabirnica predstavlja komunikacioni kanal dijeljen izmeu mnogo razliitih ureaja i prema
tome potrebno je definisati odreena pravila kako bi se komunikacija odvijala bez smetnji. Ova pravila
nazivaju se protokolima sabirnice. Dizajn sabirnice obuhvata nekoliko zahtjeva koji se moraju uzeti u
obzir kao to je irina sabirnice podataka, brzina transfera podataka, protokoli sabirnice, sat i slino.
Ovisno od toga da li su transakcije na sabirnici upravljane satom ili ne, sabirnice se dijele na sinhrone i
asinhrone sabirnice. Ovisno od toga da li se biti podataka alju preko paralelnih ica ili su
multipleksirani na jednu icu, postoje paralelne i serijske sabirnice. Kontrola komunikacije preko
sabirnice u prisustvu veeg broja ureaja zahtijeva procedure koje se nazivaju eme arbitriranja.
Sinhrone i asinhrone sabirnice
Kod sinhronih sabirnica, operacije sabirnice su sinhronizovane sa referentnim signalom sata.
Sat sabirnice je obino izveden na osnovu sata raunarskog sistema, mada je on obino sporiji od
glavnog sata. Na primjer, sabirnice od 66MHz su koritene u sistemima sa satom procesora od
500MHz. Sabirnice su tradicionalno sporije od procesora, jer je vrijeme pristupanja memoriji obino
due od ciklusa sata procesora. Prenos preko sabirnice zahtijeva nekoliko ciklusa sata.
Na slici 7.4 prikazana je operacija itanja iz memorije preko sinhrone sabirnice. U toku prvog
ciklusa sata CPU smijeta adresu lokacije sa koje eli itati na adresnu liniju sabirnice. Kasnije, u toku
istog ciklusa sata, jednom kada su adresne linije stabilizirane, READ zahtjev je uspostavljen od CPU.
Potrebno je nekoliko ciklusa sata da memorija izvri pristupanje eljenoj lokaciji. U jednostavnoj
sabirnici, ovo odgovara stanju ekanja i podaci se postavljaju na sabirnicu od strane memorije nakon
dva ili tri ciklusa ekanja. CPU zatim oslobaa sabirnicu uklanjanjem READ kontrolnog signala.
30
Operacija pisanja je slina, s tim da je procesor sada izvor podataka, te postavlja WRITE signal na
sabirnicu. Razliite arhitekture sinhroniziraju operacije sabirnice u odnosu na rastuu ili opadajuu
ivicu signala sata.
Asinhrone sabirnice nemaju sistemskog sata. Ovdje se koristi princip "handshaking" kako bi
se podaci prikladno prenijeli izmeu poiljaoca i primaoca. Proces je prikazan na slici 7.5.
Na primjer, kod asinhrone operacije itanja, master sabirnice stavlja adresu i kontrolni signal
na sabirnicu i postavlja signal za sinhronizaciju. Signal za sinhronizaciju od mastera govori slave-u da
bude sinhronizovan i jednom kada pristupi podacima, on postavlja svoj sinhronizacioni signal.
Sinhronizacioni signal slave-a indicira procesoru da se na sabirnici nalaze validni podaci i da se mogu
itati podaci. Master zatim uklanja svoj sinhronizacioni signal, to indicira slave-u da je master
proitao podatke. Zatim slave uklanja svoj sinhronizacioni signal. Ovaj nain sinhronizacije naziva se
full handshake.
31
Ovdje ne postoji sat, tako da je poetak i kraj prenosa podataka indiciran sa specijalnim
signalima za sinhronizaciju. Asinhroni komunikacioni protocol se moe smatrati kao par maina
konanog stanja (eng. Finite State Machine, FSM) koje rade tako da jedna FSM ne nastavlja sa radom
sve dok druga FSM ne doe u odreeno stanje.
Sinhrone sabirnice su obino bre od asinhronih, jer ne postoji potreba za usklaivanjem
sinhronizacije za svaki prenos. Procesor-memorija sabirnice su sinhrone sabirnice, jer su ureaji
povezani tim sabirnicama brzi, ima ih manji broj i meusobno su blizu. U/I sabirnice su asinhrone, jer
mnogi periferali trebaju manje brzine prenosa podataka i fiziki se ne nalaze u blizini jedni drugih.
Serijske i paralelne sabirnice
Sabirnice koje prenose nekoliko bita podataka istovremeno nazivaju se paralelne sabirnice. Za
veinu sistema, potrebno je imati iroke sabirnice sa viestrukim linijama koje mogu brzo prenijeti
velike koliine podataka. Paralelne sabirnice obino imaju 8, 16, 32 ili 64 linije podataka. Primjeri
paralelnih sabirnica su ISA, PCI, VESA i EISA sabirnice. Serijske sabirnice koriste istu liniju za
prenos bita podataka istog bajta/rijei. Obino, ove sabirnice imaju samo jednu liniju podataka i biti se
preko nje alju jedan iza drugog, kao paket. Universal Standard Bus (USB) i IEEE 1394 arhitektura
sabirnica su primjer serijskih sabirnica. Serijske sabirnice su jefitnije od paralelnih sabirnica, ali
paralelne sabirnice imaju veu propusnost.
ISA (eng. Industry Standard Architecture) sabirnica predstavlja stariju verziju raunarskih
sabirnica. Nakon ove sabirnice, razvile su se EISA sabirnice, da bi nakon toga Intel razvio PCI (eng.
Peripheral Component Interconnect) sabirnice koje mogu biti koritene u mnogim konfiguracijama.
Na slici 7.6 dat je primjer jednog raunarskog sistema. CPU komunicira sa memorijskim
kontrolerom preko konekcije velike brzine, dok kontroler komunicira direktno sa memorijom i PCI
sabirnicom, tako da saobraaj izmeu CPU i memorije ne ide preko PCI sabirnice. Visokopropusni
periferali (periferali sa velikom brzinom prenosa podataka) mogu se spojiti na PCI sabirnicu direktno.
PCI sabirnica ima most ka ISA sabirnici, tako da ISA i njeni ureaji mogu biti koriteni.
1
2
3
6.2.
Terminali
Raunarski terminali obuhvataju tastaturu i monitor.
Tastature
Danas postoji vie tipova tastatura. Kod dananjih tastatura, npr. onih jefitinijih, kada
se pritisne tipka ostvaruje se mehaniki kontakt izmeu tipki i tampane ploe, dok se kod
32
tastura neto bolje kvalitete, izmeu tipki i tampane ploe nalazi sloj elastinog materijala
(vrsta gume). Pojedine tastature su dizajnirane tako da se ispod svake tipke nalazi kao mala
kupola, koja, ako se tipka dovoljno pritisne, zatvara strujni krug. Neke druge ispod tipki imaju
magnet, umjesto kupole, koji prolaazi kroz namotaj i na taj nain inducira struju.
Kod personalnih raunara, kada se pritisne tipka na tastaturi, generie se interrupt i
pokree se keyboard interrupt handler (softver koji predstavlja dio operativnog sistema). Ovaj
interrupt handler ita registar unutar kontrolera tastature da bi dobio podatak o broju pritisnute
tipke (od 1 do 102). Kada se tipka otpusti, pokree se drugi interrupt. Tako, ako je pritisnuta
SHIFT tipka, a zatim pritisnuta tipka S, operativni sistem moe da odredi da korisnik eli
veliko slovo S.
Monitori
CRT (Cathode Ray Tube) monitor ima top (monitor u boji ima 3 topa, RGB) koji
izbacuje snop elektrona na fluoroscentni ekran u blizini prednje strane cijevi. Tokom
horizontalnog skena, snop prelazi preko ekrana za oko 50 sec ispisujui skoro pa
horizonatlnu liniju, zatim se vraa natrag ka lijevoj ivici da bi zapoeo novi prolazak. Ureaji
koji proizvode sliku liniju po liniju nazivaju se raster scan ureaji. Slika na cijelom ekranu se
stalno ispisuje oko 30 do 60 puta u sekundi.
Slika 26
Najee koriteni flat panel displeji su tzv. LCD (Liquid Crystal Display) monitori.
LCD monitor sastoji se od dvije paralelne staklene ploe izmeu kojih se nalazi zatvoreni dio
koji sadri tene kristale. Obje ploe su spojene na transparentne elektrode, a svjetlost iza
stranje ploe osvjetljava ekran. Transparentne elektrode se koriste za kreiranje elektrinog
polja u kristalima.
Druga vrsta flat panela su tzv. TFT displeji koji koriste elemente koji se nazivaju thin
film transistors. Veina notebook raunara, kao i flat displeja za desktio raunare koristi TFT
tehnologiju.
33
Slika 27
6.3.
Mi
6.4.
tampai
Jednobojni tampai
Najjeftiniji tip tampaa je tzv. Matrini tampa kod kojeg glava za tampanje ima
izmeu 7 i 24 elektromagnetski aktivirane igle du svake linije tampanja. Ako ima 7 igala za
tampanje 80 znakova u matrici 5x7 du linije, tada se linija tampanja sastoji od 7
horizontalnih linija od po 5x80 taaka.
Kvalitet tampanja matrinog tampaa moe se poveati na dva naina: koritenjem
vie igala i njihovim preklapanjem. Preklapanje zahtijeva vie prelazaka preko iste linije da bi
34
Slika 28
Inkjet tampai imaju pomjerljivu glavu koja sadri spremnik sa tintom koja prelazi
horizontalno preko papira pomou trake dok tinta pre iz glave kroz male mlaznice. Kapljica
tinte ima zapreminu od oko 1 pikolitra. Postoje dvije vrste inkjet tampaa: piezlektrini
(koriteni kod Epsona) i termalni (koriteni kod Canon, HP i Lexmarka). Kod piezlektrinih
tampaa koristi se posebna vrsta kristala smjetena pored komore za tintu. Kada se na kristal
primijeni napon, on se malo deformie, tjerajui kapljicu tinte kroz mlaznicu. to je napon
vei, to je vea i kapljica. Termalni inkjet tampai sadre mali otpornik unutar svake
mlaznice. Kada se na otpornik primijeni napon, on se vrlo brzo zagrije, skoro trenutno
podiui temperaturu tinte do kljuanja, sve dok se ne kreira baloni. On vri pritisak na
mlaznicu tjerajui tintu kroz mlaznicu na papir. Mlaznica se nakon toga hladi i rezultujui
vakuum uvlai novu tintu iz spremnika. Rezolucija inkjet tampaa je najmanje 1200 dpi
(dots per inch, taaka po inu) i najvie 4800 dpi.
Laserski tampai koriste skoro istu tehnologiju kao maine za fotokopiranje. Srce
tampaa je rotirajui valjak (ili pojas). Na poetku svakog ciklusa stranice, on se napuni na
1000 V i obloen je sa fotosenzitivnim materijalom. Zatim se svjetlost sa lasera skenira du
valjka. Snop svjetlosti je moduliran tako da proizvede uzorak svijetlih i tamnih taaka. Take
koje pogodi snop gube svoj elektrini naboj. Nakon za djeli ugla kako bi se ispisala naredna
linija. Kada prva linija dotakne toner (rezervoar elektrostatiki osjetljivog praha), on biva
privuen onim takama koje su jo uvijek naelektrisane i tako se formira vizuelna slika linije.
Nakon toga, valjak obloen tonerom biva pritisnut uz papir i prah se prenosi na papir. Papir se
nakon toga proputa kroz zagrijane valjkove koji trajno spajaju toner i papir. Zatim se valjak
razelektrie, oisti od preostalog tonera i priprema za narednu stranicu.
Slika 29
35
tampai u boji
Skoro svi sistemi za tampanje koriste 4 vrste tinte: cijan, uta, magenta i crna, zbog
ega se ovi sistemi nazivaju CYMK tampai. Kompletan skup boja koje displej ili tampa
moe proizvesti naziva se gamut.
Postoje dvije vrste tinte za inkjet tampae:
Tinte zasnovane na boji koja se sastoji od boje rastopljene u nekoj tenosti. One
daju svijetle boje i brzo protiu. Nedostatak ove tinte je da blijedi kada je izloena
UV svjetlosti, npr. sunevoj svjetlosti.
Tinte zasnovane na pigmentu koja sadri vrste estice pigmenta unutar tenosti
koja ispari sa papira ostavljajui samo pigment.
Princip rada laserskih tampaa u boji je isti kao kod jednobojnih laserskih tampaa,
izuzev toga da su zasebne C, Y, M i K slike prenesene na valjak pomou 4 razliita tonera.
Osim inkjet i laserskih tampaa u boji, postoje jo tampai sa vrstom tintom,
votani tampai i tampai sa sublimirajuom bojom.
Telekomunikaciona oprema
Veina raunara se povezuje na raunarsku mreu, a esto i na Internet. Da bi se
ostvario pristup na Internet potrebna je odgovarajua oprema.
Ponekad se telefonska linija koristi za ostvarivanje fizike komunikacije sa
raunarskom mreom ili Internetom. Obina telefonska linija nije prikladna za prijenos
raunarskih signala, koji obino predstavljaju 0 kao 0 V i 1 kao napon od 3 do 5 V. Signal sa
dva nivoa trpi znaajnu distorziju kada se prenosi preko telefonske linije, to vodi do greaka
transmisije.
isti sinusni talas sa frekvencijom od 1000 do 2000 Hz, koji se naziva nosilac moe
biti prenesen sa vrlo malom distorzijom. Variranjem amplitude, frekvencije i faze sinusnog
talasa moe biti prenesena sekvenca 0 i 1. Ovaj proces se naziva modulacija. Kod amplitudne
modulacije, koritena su dva razliita nivoa napona za 0 i 1. Osoba koja slua digitalne
podatke pri vrlo maloj brzini e uti glasan um za 1 i nikakv um za 0. Kod frekventne
modulacije, nivo napona je konstantan, ali se mijenja frekvencija nosioca za 0 i 1. Osoba koja
slua frekventno modulisane digitalne podatke e uti dva tona koji odgovaraju 0 i 1. Kod
fazne modulacije, mijenja se faza nosioca za 180 kada se podaci mijenjaju sa 0 na 1 ili sa 1
na 0.
Biti se preko telefonske linije alju serijski, jedan po jedan. Ureaj koji prihvata
znakove od raunara u obliku signala sa dva nivoa i alje ih jedan po jedan bit naziva se
modem. Ime ureaja je skraenica od rijei modulator demodulator. Da bi oznaio poetak i
kraj svakog znaka ispred i iza svakog znaka se alju tzv. start i stop biti. Modem poiljaoc
alje individualne bite znaka u pravilnim vremenskim intervalima. Prijemni modem
konvertuje modulisani nosioc u binarni broj. Moderni modemi rade na brzinama od 28800
bita/s do 57600 bita/s. Veina modema je full-duplex, to znai da mogu slati podatke u oba
smjera u isto vrijeme. Ako modemi mogu slati podatke u samo jednom smjeru u istom
trenutku naziva se half-duplex. Linije koje mogu slati podatke u samo jednom smjeru su
simplex linije.
ADSL (Asymmetric digital subscriber line) dijeli spektar frekvencija od 1.1 MHz u
256 neovisnih kanala od 4312.5 Hz. Kanal 0 je koriten za POTS (Plain Old Telephone
Service). Kanali 1 5 nisu koriteni kako bi se sprijeila interferencija izmeu signala glasa i
signala podataka. Od preostalih 250 kanala, jedan je koriten za upstream kontrolu i jedan za
downstream kontrolu. Preostali kanali su dostupni za korisnike podatke. Prilikom koritenja
ADSL-a, telefonska kompanija kod kupca postavlja NID (Network Interface Device) ureaj.
Pored (ili kombinovano sa) NID je postavljen tzv. spliter, analogni filter, koji odvaja opseg od
0-4000 Hz koriten za POTS od podataka. Signal sa podacima se alje na ADSL modem.
36
37
7. Nivo mikroarhitekture
Nivo koji se nalazi iznad nivoa digitalne logike naziva se nivo mikroarhitekture.
Najjednostavniji nain za razumijevanja ovog nivoa jeste da se dizajn mikroarhitekture
posmatra kao problem programiranja, gdje je svaka instrukcija koja se poziva na narednom
nivou (ISA nivou) u osnovi funkcija koja se poziva od jednog glavnog programa. S druge
strane, glavni program se moe predstaviti kao beskonana petlja koja u svakom koraku
odreuje koja funkcija e biti pozvana, poziva datu funkciju i zatim poinje iz poetka.
Svaki mikroprogram posjeduje jedan skup varijabli koji se naziva stanjem raunara i
kojem se moe pristupiti pomou ovih funkcija. Na primjer, programski broja (eng. Program
Counter, PC) je dio tog stanja. On odreuje na kojoj memorijskoj lokaciji se nalazi sljedea
instrukcija koju treba izvriti.
Svaka instrukcija ima nekoliko polja, obino jedno ili dva. Prvo polje svake instrukcije
predstavlja opcode (skraeno od engleskih rijei operation code), koje identificira instrukciju,
govorei o kakvoj instrukciji je rije, na primjer ADD ili LOAD. Mnoge instrukcije imaju i
dodatno polje koje definie operande.
7.2.
Putanja podataka
CPU moe biti podijeljen na podatkovni dio i kontrolni dio. Podatkovni dio, koji se
ee naziva putanja podataka (eng. datapath), predstavlja dio CPU i obuhvata ALU, njene
ulaze i izlaze. Kontrolni dio predstavlja kontrolnu jedinicu koja izdaje kontrolne signale
namijenjene za putanju podataka. Putanja podataka je slina na veini raunarskih maina.
Ona sadri odreen broj 32-bitnih registara kojima su dodjeljena simbolika imena, kao npr.
PC, SP i slino, pri emu se ovim registrima moe pristupiti samo na nivou mikroarhitekture.
Unutar CPU-a, podaci se pomijeraju od jednog registra do drugog i izmeu ALU i registara.
Unutarnji pomjeraji podataka izvedeni su preko lokalnih sabirnica, koje mogu prenositi
podatke, instrukcije i adrese. Unutarnje pomjeranje podataka izmeu registara i izmeu ALU i
registara moe biti izvedeno primjenom razliitih oraganizacija ukljuujui organizacije sa
jednom, dvije ili tri sabirnice. Za komponente CPU-a koje proslijeuju podatke meusobno
vrlo esto mogu biti koritene posebne putanje podataka.
Primjer dat na slici je uobiajen za veliki broj maina i predstavljen je za 32-bitne
sisteme. Sadri 32-bitne registre, oznaene kao npr. PC, MAR i slino. Putanja podataka
prikazana na slici ima dvije sabirnice podataka, B i C, mada pored njih tu postoji jo i
sabirnica A. Veina registara moe postaviti svoj sadraj na sabirnicu B. Izlaz iz ALU i
pomjeraa se prenosi sabirnicom C do jednog ili vie registara istovremeno.
ALU prikazana na slici je identina ALU predstavljenoj u prethodnom poglavlju. Rad
ALU je odreen sa 6 kontrolnih linija: F0 i F1 odreuju operaciju koju izvodi ALU, ENA i
ENB omoguavaju proslijeivanje individualnih ulaza A i B ALU, INVA invertuje lijevi ulaz,
a INC poveava bit najmanje pozicione vrijenosti izlaza za vrijednost 1. Na primjer, ako
kontrolni signali imaju sljedee vrijednosti: F0=1, F1=1, ENA=1, ENB=1, INVA=0 i INC=0,
tada to podrazumijeva izvravanje operacije A+B.
ALU ima dva podatkovna ulaza: lijevi ulaz (A) i desni ulaz (B). Sa ulazom A spojen je
registar H, dok je ulaz B u osnovi sabirnica B, preko koje se mogu proslijeivati podaci iz
bilo kojeg od registara povezanih sa tom sabirnicom.
Pored kontrolnih linija ALU, za kontrolu izlaza iz ALU koriste se jo dvije kontrolne
linije. Prva pomijera sadraj ulijevo za 1 bajt, punei bite najmanje pozicione vrijednosti sa 0,
a druga linija pomijera sadraj udesno za 1 bit, ostavljajui bit navee pozicione vrijednosti
nepromijenjen.
38
7.3.
radomna validnim podacima. Nakon y vremena, izlazi ALU i pomjeraa su stabilni. Nakon
dodatnih z , rezultati su propagirani du sabirnice C ka registrima, gdje e biti uitani pri
rastuoj ivici sljedeeg impulsa.
7.4.
Mikroinstrukcije
40
8. Instrukcijski skup
Nivo arhitekture instrukcijskog skupa (eng. Instruction Set Architecture, ISA) nalazi
se izmeu nivoa mikroarhitekture i nivoa operativnog sistema. ISA nivo predstavlja interfejs
izmeu softvera i hardvera i to je jezik koji oba ova elementa moraju razumjeti. ISA nivo
mora biti backward komaptibilan, tj. nova maina mora biti u stanju izvravati i stare
programe bez izmjene. Meutim, poptuno je prihvatljivo da nova maina ima i neke nove
instrukcije i osobine koje mogu biti iskoritene samo sa novim softverom.
Kvalitet ISA nivo okarakterisan je sa dva faktora. Prvi faktor je da ISA treba definie
skup instrukcija koje mogu biti efikasno implementirane sa trenutnim i buduim
tehnologijama, ato rezultuje u dizajnima efikasnim u toku nekoliko generacija raunara.
Drugo, ISA treba da obezbijedi i jasan kompajlirani kod.
Prilikom kreiranja koda za ISA nivo, pisac kompajlera mora znati kakav je model
memorije, kakvi registri postoje, koji tipovi podataka i instrukcija su raspoloivi, itd.
Kolekcija svih ovih informacija je ono to definie ISA nivo.
Bitna osobina ISA nivoa je da kod veine maina postoji barem dva moda:
Kernel mod namijenjen za izvravanje operativnog sistema i on omoguava svim
instrukcijama da budu izvrene;
Korisniki mod namijenjen za izvravanje aplikacionih programa i ne dozvoljava
nekim osjetljivim instrukcija (kao to je direktna manipulacija cache memorijom)
da se izvre.
Svi raunari imaju odreene registre pri ISA nivou koji kontroliu izvravanje
programa, uvaju privremene rezultate, itd. Registri na ISA nivou vidljivi korisnikim
programima mogu biti podijeljeni u dvije kategorije:
registri opte namjene uvaju kljune lokalne varijable i meurezultate
prorauna;
registri specijalne namjene obuhvataju program counter i stack pointer registre,
kao i registre sa specijalnom funkcijom.
Pored navedenih registara, postoji i jedan tzv. hibridni kernel/korisnik registar koji se
naziva flag registar ili PSW (Program Status Word). Ovaj registar sadri bite potrebne CPU-u,
meu kojima su najbitniji uslovni kodovi (condition codes) koji se podeavaju na svakom
ciklusu ALU i odreuju status rezultata zadnje operacije. Ovi uslovni kodovi koriste se od
strane instrukcija poreenja ili uslovnog granjanja. Na primjer: N- postavlja se kada je
rezultat bio negativan; Z - postavlja se kada je rezultat bio nula.
Na ISA nivou postoji i odreeni broj registara specijalne namjene koji su vidljivi samo
u kernel modu i oni kontroliu cache, memorije, ulazno-izlazne ureaje i druge hardverske
osobine maine. Ovi registri se koriste samo od operativnog sistema.
Slika 33
8.2 Instrukcije
Glavna osobina ISA nivoa je njegov skup instrukcija koje odreuju ta maina moe
uraditi. Ove instrukcije uvijek obuhvataju instrukcije kao to su LOAD i STORE za
pomjeranje podataka izmeu memorije i registara i MOVE instrukciju za kopiranje podataka
izmeu registara. Pored njih tu su aritmetike instrukcije, Booleove instrukcije i instrukcije za
poreenje podataka i granjanje.
Instrukcija se sastoji od opcode sa dodatnim informacijama kao to je gdje se nalaze
podaci i gdje e biti smjeten rezultat. Instrukcije uvijek imaju opcode koji govori ta data
instrukcija radi, a pored njega mogu biti dodate jo 0, 1, 2 ili 3 adrese.
Ovisno od raunara, sve instrukcije mogu biti iste ili promjenljive duine. Instrukcije
mogu biti krae od, due od ili iste duine kao i duine rijei.
Slika 35
42
8.2.
Tipovi podataka
Svi raunari koriste odreene tipove podataka za svoj rad. Ti podaci moraju biti
predstavljeni u nekom specifinom obliku unutar raunara. Na ISA nivou koriteni su razliiti
tipovi podatak. Tipovi podataka mogu biti podijeljeni u dvije kategorije: numerike i
nenumerike tipove podataka. Numeriki tipovi podataka su:
cjelobrojni tip
brojevi sa pominim zarezom.
Cjelobrojni tipovi mogu biti tipa unsigned i signed, to znai da ne posjeduju ili
posjeduju bit predznaka, respektivno. Unsigned cijeli brojevi imaju prednost jednog dodatnog
bita. Na primjer, 32-bitna rije moe pohraniti cijele brojeve bez predznaka u intervalu od 0
do 232 1 , dok signed cijeli brojevi mogu manipulisati samo sa brojevima u intervalu do
231 1 , kao i negativnim brojevima. Brojevi sa pominim zarezom mogu imati duinu 32, 64
ili ponekad i 128 bita. Veina raunara ima instrukcije za izvoenje aritmetike sa realnim
brojevima.
Nenumeriki tipovi podataka:
karakteri
stringovi
Booleove vrijednosti.
8.3.
Adresiranje
43
adresiranja. Umjesto toga, adresa je sadrana u registru i kada se adresa koristi na ovaj nain,
to se naziva pointer (pokaziva). Prednost ovog moda je da on moe referencirati memoriju
bez smjetanja pune memorijske adrese u instrukciju.
Indeksirano adresiranje
Kod ovog moda adresiranja, adresa operanda je dobijena dodavanjem konstante
sadraju registra koji se naziva indeksni registar. Indeksirano adresiranje je indicirano u
instrukciji ukljuivanjem imena indeksnog registra u zagradama i koritenjem simbola X da se
indicira konstanta koja treba biti dodata.
Bazno-indeksirano adresiranje
Neki raunari koriste mod adresiranja kod kojeg je memorijska adresa izraunata
sabiranjem dva registra plus (opciono) offset i takav mod se naziva bazno-indeksirano
adresiranje. Jedan od registara predstavlja bazu, a drugi je indeks.
Stack adresiranje
Obrnuta poljska notacija (reverse Polish notation, ime je dobila prema poljskom
logiaru J. Lukasiewicz) ili postfix notacija podrazumijeva da se u matematikom izrazu
operator pie nakon operanda, npr xy+, umjesto kao kod infix notacije x+y
Ova notacija ima niz prednosti u odnosu na infix:
Bilo koja formula moe biti izraena bez zagrada
Prikladna je za izraunavanje formula pomou raunara primjenom stacka
Postfix operatori nemaju prioriteta
Postoji nekoliko algoritama za konverziju infix formula u postfix notaciju.
Infix notacija
(8+2x5)/(1+3x2-4)
Postfix notacija
825x+132x+4-/
8.4.
Tipovi instrukcija
Tipovi instrukcija koji ine instrukcijski skup maine su indikator snage arhitekture
same maine. Instrukcije ISA nivoa mogu biti podijeljene na razliite naine. Najea
podjela je na:
Instrukcije pomjeranja podataka,
Diadske operacije,
Monadske operacije,
Poreenje i uslovno granjanje,
Instrukcije proceduralnih poziva,
Kontrola petlji,
Ulaz/izlaz.
Instrukcije pomijeranja podataka
Instrukcije pomijeranja podataka koritene se za pomijeranje podataka izmeu
razliitih jedinica raunarske maine. Kopiranje podataka sa jedne lokacije na drugu
predstavlja fundamentalnu operaciju u raunaru. Najee se za pomjeranje podataka koriste
sljedee instrukcije:
LOAD za pomjeranje iz memorije u registar,
STORE za pomjeranje iz registra u memoriju,
MOVE za pomjeranje iz jednog registra u drugi.,
Primjeri instrukcija pomijeranja iz (u) registre u (iz) memoriju su:
44
45
procesor nije namijenjen za izvorni jezik. Ako je translacija izvedena korektno, izvravanje
prevedenog programa e dati potpuno iste rezultate kao i izvravanje izvornog programa na
odgovarajuem procesoru.
Potrebno je razlikovati pojmove translacije i interpretacije. Kod translacije, originalni
program u izvornom jeziku se ne izvrava direktno. Umjesto toga, on je konvertovan u
ekvivalenti program nazvan objektni program ili izvrni binarni program, ije se izvravanje
izvodi tek nakon to je translacija zavrena. Pri translaciji postoje dva razliita koraka:
Generisanje ekvivalentnog programa;
Izvravanje novog generisanog programa.
Ova dva koraka se ne izvode simultano, tj. drugi korak ne poinje sve dok se ne zavri prvi
korak. Kod interpretacije, postoji samo jedan korak i to je izvravanje originalnog izvornog
programa.
Dok se izvrava objektni program, aktivna su samo tri nivoa: nivo mikroarhitekture,
ISA i OS nivo. Prema tome, u raunarskoj memoriji u toku izvravanja programa mogu biti
naena tri programa: korisniki objektni program, operativni sistem i mikroprogram (ako
postoji), dok svi tragovi originalnog izvornog programa nestaju.
Translatori mogu biti podijeljeni u dvije grupe ovisno od odnosa izmeu izvornog i
ciljnog jezika. Kada je izvorni jezik u osnovi simbolika predstava numerikog mainskog
jezika, translator se naziva asemblerom, a izvorni jezik naziva se asemblerski jezik. Kada je
izvorni jezik jezik visokog nivoa, kao to su Java i C, a ciljni jezik je ili numeriki mainski
jezik ili simbolika predstava tog jezika, translator se naziva kompajlerom.
isti asemblerski jezik je jezik kod kojeg svaki izraz daje tano jednu mainsku
instrukciju. Drugim rijeima, izmeu mainskih instrukcija i izraza (naredbi) u asemblerskom
programu postoji jedan-na-jedan preslikavanje. Asemblerski program (asembler) vri
prevoenje korisnikog programa ili izvornog programa, napisanog pomou mnemonika, u
program na mainskom jeziku, ili objektni program, koga e mikroraunar izvravati.
Razlog za koritenje asemblerskog jezika umjesto mainskog jeste da je puno
jednostavnije programirati u asemblerskom jeziku. Upotreba simbolikih imena i adresa
umjesto binarih ili oktalnih vrijenosti je znatno jednostavnije. Programer u asemblerskom
jeziku mora znati samo simbolika imena, jer ih asembler prevodi u mainske instrukcije.
Ono to razlikuje asemblerski jezik jeste da programer moe pristupiti svim
osobinama i instrukcijama dostupnim na maini, a to programeri u jezicima visokog nivoa
ne mogu. Ovo znai da sve to se moe uraditi u mainskom jeziku, moe se uraditi i u
asemblerskom jeziku, dok mnoge instrukcije, registri i sline osobine nisu dostupne za jezike
visokog nivoa.
Jezici za sistemsko programiranje, kao to je C, nalaze se izmeu ova dva tipa, jer
posjeduju sintaksu jezika visokog nivoa, ali i sa pristupom maini kao to to ima asemblerski
jezik. Nedostatak asemblerskog jezika je da se program u asemblerskom jeziku moe
izvravati samo na jednoj porodici maina.
Programiranje u asemblerskom jeziku u poreenju sa programiranjem u jezicima
visokog nivoa je teko. No, razlozi za programiranje u asemblerskom jeziku su performansa i
pristup maini. Prvo, programer u asemblerskom jeziku kreira kod koji je mnogo manji i
puno bri od koda u programskom jeziku vieg nivoa. Za neke aplikacije brzina i veliina
koda su kritini. Mnoge ugraene aplikacije, kao to su smart card, kodovi za mobilne
telefone, BIOS rutine, itd. spadaju u ovu kategoriju. Drugo, neke procedure zahtijevaju
potpun pristup hardveru to je gotovo nemogue kod jezika visokog nivoa. Primjer ovoga su
interrupti niskog nivoa kod operativnog sistema ili kontrolera ureaja u mnogim sistemima u
realnom vremenu.
Veina velikih projekata zavisi od poboljanja perfomanse za faktor 2 ili 3, i vie u
pogledu nekih kritinih procedura, te je obino neophodno napisati dio koda u asemblerskom
47
jeziku. Meutim, ponekad je usljed nedostatka memorije, pisanje koda u asemblerskom jeziku
jedina alternativa.
Programer koristi usluge tekst editora za kreiranje tekst datoteke (text file) koja
sadri program napisan na asemblerskom jeziku. Imena izvorna datoteka (source file) i
izvorni program (source program) se esto koriste u asemblerskom jeziku i jezicima vieg
nivoa da oznae tekst datoteke.
Slika 36
Asembler prihvata izvorni program kao ulaz, vri provjeru formata zbog greaka u
pisanju i proizvodi objektni modul koji sadri program napisan na mainskom jeziku. Punilac
(loader) smijeta objektni modul u memoriju na kojoj e se program izvravati (ciljna maina
- target machine). Na ciljnoj maini program se testira pomou programa za odstranjivanje
greaka (debugger)
Kada programer vri programiranje na asemblerskom jeziku, on mora strogo da zna
da:
koji e mikroraunar koristiti,
koje registre i instrukcije dotini mikroraunar posjeduje,
koje adresne naine rada koristi, i puno drugih detalja,
asembler nije prenosiv,
Svaki mikroraunar ima svoj sopstveni asemblerski jezik koji odraava njegovu
sopstvenu arhitekturu. Asemblerski jezik je jezik kod koga svaka instrukcija generie tano
jednu mainsku instrukciju, to znai da postoji korespondencija jedan-prema-jedan izmeu
mainskih instrukcija i instrukcija na asemblerskom programu. Postoji onoliko asemberskih
jezika koliko postoji i razliitih mikroprocesora.
Za odreivanje vrijednosti algebarskog izraza X=Y+Z kod jednih procesora se koristi
instrukcija
Add X,Y,Z,
a kod drugih (mikroprocesora) instrukcija
Add Y,Z,X
Sagledavajui ogroman broj nedostataka programiranja na asemblerskom jeziku udruenje
IEEE oformila je radnu grupu IEEE P 694 koja je imala zadatak da standardizuje mnemonike
asemblerskog jezika. Na alost preporuke ove grupe nisu iroko prihvaene od strane
industrije. Nezavisno od toga to su pokuaji standardizacije propali ostali su tragovi tog rada
za koje se ini da su preutno ire prihvaeni od strane proizvodjaa RISC procesora a koji
se odnose na:
specifikaciju imena mnemonika,
48
operacija
Add
sabiranje
Sub
oduzimanje
Mul
mnoenje
Div
deljenje
Inc
inkrementiranje
Dec
dekrementiranje
Cmp
kompariranje
Move
kopiranje
Clr
Ld
St
Lda
Ldm
Stm
Shl
pomeranje u levo
Shr
pomeranje u desno
Br
bezuslovno grananje
Bc
uslovno grananje
Bal
grananje i povezivanje
Bal R
tip podatka
bajt (8-bitova)
UB
UH
UW
Uslovi granjanja:
CC
uslovi
istinit
pogrean
premaaj
PE
parna parnost
PO
neparna parnost
LE
LT
manji od
EQ
jednak
NE
nije jednak
GE
GT
vei od
Operacioni kod
(zahtijevan)
Operand
Komentar
Oznaka ili labela je za najvei broj instrukcija i direktiva opciono polje koje
predstavlja simboliko ime za memorijsku adresu. Ona predstavlja identifikator koji moe biti
koriten u liniji programa kako bi se moglo izvriti grananje na tu liniju. Takoe, moe biti
koriten za pristup podacima primjenom simbolikih imena.
50
Asembler
Linker
Loader
51
Asemblerski program
Objektni program
Izvrni program
Asembler
Asembleri su programi koji generiu mainski kod instrukcija iz izvornog programa
napisanog u asemblerskom jeziku. On zamjernjuje simbolike adrese sa numerikim
adresama, zamjenjuje simbolike kodove operacija sa kodovima mainskih operacija,
rezervie pohranu za instrukcije i podatke i prevodi konstante u mainsku predstavu. Funkcija
asemblera moe biti izvedena skeniranjem asemblerskog programa i mapiranjem njegovih
instrukcija u ekvivalentni mainski kod. Budui da simboli mogu biti koriteni u intrukcijama
prije nego su definisani neto kasnije, jedno skeniranje programa ne mora biti dovoljno da bi
se izveslo mapiranje. Jednostavan asembler skenira cijeli asemblerski program dvaput, pri
emu se svako skeniranje naziva prolaz. Tokom prvog prolaza, on generie tabelu koja
ukljuuje sve simbole i njihove binarne vrijednosti. Ova tabela se naziva tabela simbola.
Tokom drugog prolaza, asembler e koristiti ovu tabelu simbola da bi generisao objektni
program i izlazne informacije potrebne za linker.
Linker i loader
Linker predstavlja entitet koji kombinuje objektne module koji mogu rezultirati iz
asembliranja viestrukih asemblerskih modula odvojeno. Loader je usluga operativnog
sistema koja ita izvrni kod u memoriju i poinje njegovo izvravanje.
Nakon to su asemblerski moduli prevedeni u objektne module, funkcije linkera i
loader pripremaju program za izvravanje. Ove funkcije ukljuuju kombinovanje objektnih
modula zajedno, odrivanje adresa nepoznatih tokom asembliranja, alociranje memorije, i
konano izvravanje programa.
Struktura podataka
Asembler koristi bar tri tabele za izvoenje svojih funkcija: tabelu simbola, tabelu
opcode i tabelu pseudoinstrukcija. Tabela simbola generisan u prvom prolazu, ima ulaz za
svaki simbol u programu. Sa savkim simbolom je asocirana i binarna vrijednost i druge
informacije. Tabela opcode prua informacije o operacionim kodovima. Sa svakim
simbolikim opcodeom u tabeli je asocirana i njegova numerika vrijednost i druge
informacije, kao to je njegov tip, duina instrukcije i njegovi operandi. Ulazi u tabelu
pseudoinstrukcija su simboli pseudoinrtukcija. Svaki ulaz ukazuje asembleru na proceduru
koja procesira pseudointrukciju kada se ona nae u programu.
52
54
56
Drajver ureaja moe biti prilino kompleksan. Mnogi parametri moraju biti podeeni
prije pokretanja kontrolera ureaja, a mnogi statusni biti moraju biti provjereni prije
kompletiranja svake operacije ureaja. Mnogi drajveri ureaja, kao to je na primjer drajver
tastature su dio pre-instaliranog sistemskog softvera (instaliraju se u toku same instalacije OSa).
Sve rutine u drajveru ureaja mogu biti grupisane na tri naine, na osnovu
funkcionalnosti:
rutine za inicijalizaciju;
rutine za I/O inicijalizaciju;
rutine za nastavak I/O;
rutine za inicijaciju I/O;
rutine za nastavak I/O (rutine za sevis interrupta);
Rutine za autokonfiguraciju se nazivaju vrijeme sistemskog reboot-a, za provjeru da li
je prisutan odgovarajui kontroler ureaja i za izvoenje eljene inicijalizacije. Rutine I/O
inicijacije pozivaju se od datotenog sistema OS-a ili sistema za upravljanje procesima kao
odgovor na zahtjeve za sistemskim pozivom od aplikativnih programa.ove rutine provjeravaju
status ureaja i iniciraju I/O zahtjeve slanjem komandi ka kontroleru ureaja. Ako je za ureaj
koriten programski upravljan I/O prenos, onda rutine I/O inicijacije takoe izvode I/O
prenos.
Virtuelna memorija
Na poetku razvoja raunarskih tehnologija, memorija je bila mala i skupa. Na
primjer, IBM 650, vodei nauni raunar 1950.-tih, imao je samo 2000 rijei memorije. U to
vrijeme, programeri su troili puno vremena pokuavajui da smjeste programe u tako malu
57
memoriju, tavie esto su koriteni sporiji algoritmi umjesto brih i boljih algoritama, samo
zato to su ovi drugi zauzimali vie memorije. Stoga je predloena primjena softverske
strukture koja ima velike prednosti pri realizaciji novih operativnih sistema i koja se virtuelna
memorija.
58
59
Windows NT bio je prva verzija koja je bila stvarni 32-bitni OS. Nakon njega pojavio
se Windows 2000, pa Windows XP. Zadnjih godina pojavile su se verzije Windows Vista, te
Windows 7 i 8. Windows XP i noviji OS-ovi mogu biti server ili klijent verzije.
Novije Windows verzije (XP i noviji OS) podravaju multiprogramming, to su
viekorisniki sistemi (npr. server verzije).
60
11.
7.11.1.1.
Dijelovi mikroprocesora Intel 8086
Mikroprocesor Intel 8086 je po svojoj unutranjoj strukturi podijeljen u dvije osnovne
jedinice (slika 7.29):
EU (eng. Execution Unit) izvrna jedinica koja izvrava instrukcije.
BIU (eng. Bus Interface Unit) jedinica za spregu sa sabirnicom koja dohvata
instrukcije iz memorije, ita operande i alje rezultate u memoriju ili ka periferijama.
Ove dvije jedinice su meusobno neovisne i najee svoje aktivnosti obavljaju
istovremeno.
61
62
AH
BH
CH
DH
AL
BL
CL
DL
(accumulator)
(base)
(counter)
(data)
63
Registar AX se najee koristi za formiranje rezultata i meurezultata aritmetikologikih operacija, za stavljanje podataka na stek i slino, ali moe da se koristi i u druge
namjene.
Registar BX (eng. Base register) se najee koristi za formiranje ofsetnog dijela
adrese nekog podatka, u aritmetiko-logikim operacijama i slino, ali moe da se koristi i u
druge namjene.
Registar CX (eng. Counter register) se najee koristi pri aritmetiko-logikim
operacijama, a tipina namjena je i da slui kao broja u "petljama" i slino, ali moe da se
koristi i u druge namjene.
Registar DX (eng. Data register) se najee koristi u aritmetiko-logikim
operacijama, a tipina namjena je i da slui za adresiranje portova (ofsetni dio adrese) ali
moe da se koristi i u druge namjene. Portovi su specijalno rezervisane memorijske lokacije u
adresnom prostoru koje slue kao ulazno-izlazni kanali u komunikaciji procesora sa
perifernim ureajima (modemi, tampai, mi, ).
Adresni registri prvenstveno slue za adresiranje memorijskih lokacija. Dijele se u
dvije grupe: segmentni registri i ofsetni registri.
Segmentni registri (eng. Segment registers) sadre segmenti dio neke adrese.
CS
DS
SS
ES
(code segment)
(data segment)
(stack segment)
(extra segment)
SP
BP
IP
SI
DI
(stack pointer)
(base pointer)
(instruction pointer)
(source index)
(destination index)
65
ZF
AF
PF
CF
11.3.
Segmenti i adresiranje
Fiziku adresu nekog bajta RAM memorije mikroprocesor sastavlja pomou sadraja
dva registra, po formuli SR*16+OR, gde je SR segmentni registar koji sadri segmentni dio
adrese memorijske lokacije (SR je po pravilu neki od registara CS, DS, SS, ES), a OR je
ofsetni (indeksni) registar koji sadri ofsetnu adresu memorijske lokacije (OR je najee neki
od registara IP, SP, BP, SI, DI, DX, BX). Fizika adresa SR*16+OR skraeno se oznaava sa
SR:OR odnosno SEGMENT:OFFSET. Na primjer, ako registri DS i BX sadre brojeve
DS = 13622 = (0011010100110110)2
BX = 20628 = (1010000100101000)2,
DS:DI, DS:BX itd. po pravilu tokom izvravanja programa sadre fizike adrese memorijskih
lokacija na kojima su upisani neki podaci koje program obrauje.
(c)
Segment podataka organizovanih u stek (stack segment): segment u kome se
nalaze podaci organizovani u stek, sa kojima program operie; stek se moe zamisliti kao niz
podataka promjenljive veliine gdje se neki novi podatak skladiti u stek tako to se kopira na
kraj tog niza "vrh steka", a oitava se tako to se premjesti sa "vrha steka" na neko drugo
mjesto, a novi vrh steka postaje ranije pretposljednji podatak u nizu; operacije stavljanja i
skidanja podatka sa vrha steka se obavljaju specijalizovanim instrukcijama one mogu na
stek stavljati ili skidati podatke samo u grupama od po 2 bajta; jedan program moe da ima
samo jedan stek-segment; kombinacija registara SS:SP u svakom momentu tokom izvravanja
programa sadri fiziku adresu memorijske lokacije na koju je upisan podatak koji se nalazi
na vrhu steka.
67