Você está na página 1de 21

ARHITEKTURA RACUNARA

1. UVOD
Kompjuterski sistem je skup medjusobno povezanih elemenata koji djeluju ka
ostvarenju nekog cilja.
Karakterisu ga:
Struktura:nacin na koje su komponente medjusobno povezane
Funkcija:djelovanje pojedninih komponenti
Organizacija racunara je hijerarhijska. Svaka glavna komponenta ima svoje
podkomponente, a podkomponente imaju vlastitu strukturu i funkciju. Znaci
hijerarskija organizacija racunara se opisuje odozgo prema dole.
Osnovne komponente racunarskog sistema su: procesor, memorija,
ulazno izlazne jedinice.
Osnovne komponente procesora su kontrolna jedinica, registri, aritmetickologicka i izvrsna jedinica.Kontrolna jedinica sluzi za koordinaciju
procesorskih elemenata i obezbjedjuje kontrolne signale za rad.
Racunarska arhitektura se odnosi sa sistemske osobine koje su vidljive
programeru, odnosno osobine koje imaju direktan uticaj na logicko izvrsavanje
programa.To su : instrukcijski set, broj bitova za predstavljanje tipova
podataka, U/I mehanizmi i tehnike adresiranja memorije.
Racunarska organizacija se odnosi na operativne jedinici i njihovo
povezivanje kojima se ostvaruju arhitekturne specifikacije. To su
kontrolni signali, razliciti interfejsi, memorijske tehnologije.
Razlika izmedju arhitekture i organizacije je veoma vazna, npr. Arhitektura
moze trajati vise godina, ali njihova organizacija se mijenja promjenom
tehnologije. Zbog toga se razliciti modeli unutar jedne familije racunarskih
modela razlikuju u cijeni i karakteristikama. Nije potrebno mijenjati softver
koji je razvijan za citavu familiju racunara, bez obzira na cijenu, jacinu i
brzinu.

Racunar je slozen sistem. Sastoji se od miliona osnovnih komponenti. Zato


trebamo poznavati hijerarskiju prirodu sistema. Hijerarhijski sistem je skup
medjusobno povezanih podsistema.To je osnova za projektovanje i opis
sistema. Na svakom nivou projektant se brine od strukturi i funkciji.

Osnovne funkcije racunara:


OBRADA PODATAKA, POHRANJIVANJE PODATAKA, KRETANJA PODATAKA I
KONTROLA.
Racunar mora obradjivati podatke, podaci imaju razlicitu formu, a i zahtjevi
za obradu su razliciti. Osnovna funkcija racunara je i pohrana podataka.
Obrada u letu je obradjivanje podataka i prosljedjivanje van racunara,
racunar mora i pohraniti podatke, kratkotrajno ili na duzi period. Pohranjuju se i
naknadno uredjuju. Isto tako racunar mora obezbjediti kretanje podataka
izmedju sebe i vanjskog svijeta.
Radna okolina --> uredjaji koji sluze kao izvor ili odrediste podataka. Ulaznoizlazni proces--> prima i prosljedjuje podatke na uredjaje koji je direktno
povezan na njega. Taj uredjaj je periferal. Podatkovna komunikacija-->
prenosenje podataka sa vece udaljenosti ili na udaljeni uredjaj.
Osnovne komponente strukture racunara:
CENTRALNA PROCESNA JEDINICA (kontrolise rad racunara i obradjuje
podatke)
GLAVNA MEMORIJA (pohranjuje podatke)
U/I (prebacivanje podataka izmedju racunara i okoline)
SISTEMSKO
racunara )

POVEZIVANJE

(mehanizam

povezivanja

elemenata

RAZVOJ RACUNARA I NJIHOVIH PERFORMANSI


Historija racunara
Prva generacija: vakumske cijevi
Prvi digitalni racunar je bio ENIAC, izradjen na univerzitetu Penslivanija, za
americku vojsku. John Mauchly je predlozio izradu racinara opce namjene
pomocu vakumskih cijevi i tako je otpoceo rad na EINACU-u. Tezio je 30 tona i
povrsinu od 140 kvadratnih kilometara i 18000 vakumskih cijevi.Trebalo je
140kW snage. Mogao je izvrsiti 5000 sabiranja u sekundi.To je bila decimalna, a
ne binarna masina.Koristen je do 1955 godine.
1945. godine Von Neumann je predlozio izradu novog racunara EDVAC.
Sljedece godine su poceli projektovanje racunara, zavrsen je 1952 godine, i
sluzio kao prototip kasnijih racunara opce namjene.

Opca struktura IASa se sastoji od:


Glavne memorije u koju su pohranjeni podaci i instrukcije
Aritmeticke i logicke jedinice koja radi sa binarnim podacima
Kontrolna jedinica koja prevodi instrukcije iz memorija i izvrsava ih
Ulazlna izlazna oprema kojom upravlja kontrolna jedinica

Glavne znacajke von Neumanovog prijedloga su:


Prvo. Uredjaj ce morati izvrsavati najcesce aritmeticke operacija sabiranje,
oduzimanje, mnozenje i dijeljenje. Logicno je da ima organe samo za ove
operacije. To znaci da mora postojati centralni aritmeticki dio i to je prvi
specificni dio CA.
Drugo. Logicka kontrola je predstavljena pravilnim redosljedom
operacija. To znaci da se mora napraviti razlika u operacijama kojima de definise
odredjen problem.Pod centralnom kontrolom se podrazumijeva funkcija
ovih dijelova i oni se nazivaju drugi specificni dio.
Trece. Da bi izvrsavao duze operacije mora imati znacajnu kolicinu memorije. To
znaci da ukupna memorija cini treci specificni dio uredjaja.
Skracenice su CA, CC i M.
Trebaju imati ulazni i izlazni organi, a to su vanjski mediji za snimanje
ili R.
Cetvrto. Uredjaj mora imati organe za prenos informacija od R ka Ca, CC i M.
Ovi organi cine ulaz kao cetvrti specificni dio.
Peto. Uredjaj mora imati organe za prenos CA,CC i M ka R. Ovi organi cine
njegov izlaz , kao peti specificni dio ili O.
IAS- ova kontrolna jedinica radi tako sto dobavlja jednu po jednu
instrukcija iz memorije. Sadrzi lokacije za pohranjivanje koje se nazivaju
registri i to:
-Memorijski buffer registar: sadrzi rijec koja se pohranjuje u memoriji i salje
prema I/O jedinici ili se koristi za primanje rijeci iz memorije ili I/O jedinice.
-Memorijski adreski registar: odredjuje adresu rijecu u memoriji koja se
upisuje iz ili ucitava u MBR.
-Instrukcijski registar: sadrzi 8-bitni kod instrukcije koja se izvrsava.
-Instrukcijski buffer registar: privremeno drzi desnu instrukciju rijeci u
memoriji

-Programski brojac: sadrzi adresu sljedeceg instrukcijskog para koji se


dobavlja iz memorije.
-Akumulator i multipler quotient: privremeno drze operande i rezultate ALU
operacija.
IAS radi tako sto ponavlja instrukcijski ciklus. Svaki ciklus se sastoji od dva
podciklusa. IAS racunar je imao ukupno 21 instrukciju . Mogu se grupisati su:
- Prenos podataka: izmedju memorije i 2 ALU registra
-Bezuslovno grananje: potpomaze operacije koje se ponavljaju
-Uslovno grananje: grananje moze zavisiti od uslova, te se na taj nacin
dopusta izbor
-Aritemtika: operacije koje izvodi ALU
-Modifikacija adrese: dozvoljava se
dozvoljava se adresna fleksibilnost.

izracunavanje

adresa

ALU,

Komercijalni racunari. Pedesetih godina proslog vijeka rodila se comp.


industrija, a dominirali su Sperry i IBM. Prva uspjesna masina je bio UNIVAC 1,
namijenjen za naucnu i za komercijalnu upotrebu.
UNIVAC 2 pojavio se kasnih pedesetih godina. Imao je vecu memoriju i bolje
performanse.
IBM, najveci proizvodjac opreme za busene kartice, predstavio je 1953.
godne svoj prvi elektronski kompjuter koji je bio namjenjen za naucne svrhe.
Onda izlazi IBM 702 kojom je IBM postao najveci proizvodjac racunara.
Druga generacija: tranzistori
Dolazi kad su se vakumske cijevi zamijenili tranzistorom, koji je manji, jeftiniji i
rasipa manje toplote. Tranzistor je sacinjen od silikona. Izumljen je u Bell
Labsu i izazvao elektronicku revoluciju. Koristenje tranzistora definise drugu
generaciju racunara. U drugoj generaciji pojavljuju se jezici visokog nivoa i
racunari sa sistemskim softverom. Narasla je velicina memorije i brzina
zvrsavanja CPU-a. Sljedeca novina je multipleksor tacka u kojoj zavrsavaju svi
podatkovni kanali, CPU i memorija.
Treca generacija: integrisana kola
Zasebni tranzistor se naziva diskretna komponenta, a one su bile prodavane
zasebno i zasebno ugradjivane u racunar. To je proizvodilo dosta problema. Onda
je izmisljeno integralno kolo.Vrata je uredjaj kojim se ostvarije Bulova ili
logicka funkcija. Memorijska celija moze pohraniti jedan bit podatka.
Cetiri osnovne racunarske funckije se mogu objasniti pomocu ovih
komponenti na sljedeci nacin:

-Pohrana podataka: obezbjeduje memorijske celije


-Obrada podataka: obezjbjedjuje kola
-Premjestanje podataka: putanje izmedju komponenti koje se koriste za
premjestanje podataka od memorije do memorije
-Kontrola: putanje izmedju komponenti nose kontrolne signale.Od
signala zavisi koja ce se npr.vrata aktivirati.
Zato se racunar sastoji od kola, memorijskih celija i veza medju njima.
Integrisana kola su zapravo zasebne komponente. U ranijoj fazi kola se
prave malog razmjera, vremenom sve vise i vise komponenti se postavlja na
jedan cip. Prvi koji su uveli integrisana kola su bili IBM i postigli su uspjeh
decenije sa odjelom od 70% ukupnog trzista. Modeli su bili kompatibilni .
Karakteristike porodice su
Slican ili identican instrukcijski set, slican ili isti operativni sistem,
povecanje brzine, povecanje I/O prikljucaka, povecanje memorije,
povecanje cijene.

Kasnije generacije
Uvodi se integracija velike razine, moglo se ugraditi 1000 elemenata na jedan
cip. Brzi tempo je omogucio visoku stopu uvodjena novih proizvoda, te
povecanjem softvera i komunikacija. Prva upotreba integrisanih kola bila je izrada
procesora od integrisanih cipova, medjutim posalo je jasno da se moze koristiti
za izradu memorije. POLUPROVODNICKA MEMORIJA.Ova memorija je bila
brza, medjutim bila je skupa i glomazna.
Mikroprocesori, kako je vrijeme prolazilo sve je vise i vise elemenata bilo
postavljano na jedan cip, tako da je sve manje i manje cipova bilo potrebno za
izradu procesora. Prvi mikroprocesor je bio Intelov 4004. to se smatra
rodjenjem mikroprocesora. Prvi je bio 4- bitni procesor.
Brzina mikroprocesora
Razvoj racunara jos prati Mooreov zakon. Kod mikroprocesora se brzina
povecava pet puta svake tri godine od Intelove x86 porodice. Tehnike ugradjene
u danasnje procesore su:
-Predvidjanje grananja: procesor gleda koje su instrukcije ucitanje iz memorije
i nastoji predvijeti koje ce biti sljedece obradjene. Ako pravilno predvidi, moze
pripremiti ispravne instukcije i pohraniti ih u buffer. Zato predvidjanje
grananja povecava kolicinu rada koja stoji u procesu izvrsenja.

-Analiza toka : Ovim se sprecava nepotrebno kasnjenje tako so procesor


analizira instrukcije koje su zavisne ili nezavisne od rezultata...
-Spekulativno izvrsavanje: koristeci prethodna dva , izvrsni dijelovi
procesora se drze zaposlenim sto je vise moguce, jer izvrsavaju
instrukcije koje ce vjerovatno biti potrebne.
Uravnotezenje performansi
Procesor se razvijao velikim tempom , dok ostale komponente i nisu. Rjesenje
se nalazi u uravnotezenju performansi tj. uskladjivanje organizacije i
arhitekture.Kes memorija me mala i brza memorija smjestena izmedju
vece i sporije memorije i elementa koji pristupa vecoj memoriji.
Poboljsanja prganizacije i arhitekture cipa
Bez obzira da uravnoteze performanse procesa sa glavnom memorijom i ostalim
komponentama, ostaje potreba povecanja procesorske brzine. Postoje tri
pristupa:
Povecati hardversku brzinu procesora smanjenjem velicine logickih kola
procesorskog cipa
Povecanje velicine i brzine keseva koji su smjesteni izmedju procesora i
glavne memorije.
Promjene u organizaciji i arhitekturi
efektivnu brzinu izvrsavanja instrukcija.

procesora

koje

povecavaju

Najcesce se koristi
prvi pristup. Medjutim kako se povecava brzina
procesora i gustina elemenata na njemu, javljaju se prepreke:
Energija: raste gustina toka energije, rasipanje toplite koje se javlja na
procesorima velike brzine i gustine.
Kasnjenje kola: brzina kojom se elektroni krecu po cipu izmedju tranzistora
ogranicena je otporom i kapacitetom zica. Sto vece kolo to vise kasni.
Memorijska latentnost: memorijske brzine zaostaju za procesorskim.
Razvoj Intel-ove x86 arhitekture
Dok su intelovi mikroprocesori postajali brzi i slozeniji, Intel je povecavao tempo
razvoja. Novi mikroprocesor bi izlazio svake 4 godine. Vazno je istaci znacajke
razvoja :
8080 - 8 bitni procesor
8086 - 16 bitni procesor

80286 - omogucio adresiranje 16MB memorije


80386 32 bitni mikroprocesor
80486- sofisticiranjija i jaca kes tehnologija
Pentium- tehnike superskalara sto omogucava paralelno izvrsavanje
instrukcija
Pentium Pro: prosiruje superskalarnu organizaciju
Pentium 2: ugradnja MMX tehnologije
Pentium 3: floating point za 3D graficke programe
Pentium 4: poboljsanja za muti medije
Core: x86 procesor sa duplom jezgrom
Core2: 64 bitna, nudi 4 procesora na jednom cipu.
Sistemski
takt
rukovodi
izvodjenjem
aritmetickih
operacija,
dohvatanjem instrukcija itd. Pocinju taktnim impulsom. 1GHz procesor
prima milijardu impulsa u sekundi. Ova mjera je poznata kao brzina takta.
Jedna promjena stanja ili jedan impuls se oznacava kao taktni ciklus ili
otkucaj. Vrijeme izmedju impulsa je vrijeme ciklusa.
Brzina izvrsavanja instrukcija. Procesorom upravlja njegov takt konstante
frekvencije. CPU vrsi razlicite cikluse u razlicito vrijeme. Onda imamo formulnu
da je ukupan CPI:

Procesorsko vrijeme datog programa je T=Ic x CPI x t. U slucaju prebacivanja


memorije gornja formula se moze napisati u obliku:

P je broj ciklusa procesora potrebnih za izvrsavanje instrukcije, m je


broj potrebnih memorijskih referenci i k odnos izmedju memorijskog i
procesorskog vremena. Pet faktora ucinka iz prethodne formule zavisi od 4
sistemske osobine: dizajn, kompajlerske tehnologije, implementacije
procesora i hijerarhije kesa i memorije. Opca mjera ucinka procesora je
brzina kojom se izvrsavaju instrukcije izrazena je milionima instrukcija u sekundi,

koja se oznacava kao MIPS brzina:

Koristi se jos jedna opca mjera za instrukcje za pokretnim zarezom a naziva


se MFLOPS

Mjerila kao sto su MIPS i MFLOPS su nedovoljne za ocjenu ucinka procesora. Zbog
razlika u instrukcijskim setovima, brzinu izvrsavanja nije opravdano koristiti za
uporedjivanje performansi razlicitih arhitektura. U vezi s tim izmisljeni su
referentni programi. Osobine referentnog programa su: napisan u jeziku
visokog nivoa, predstavnik odredjene vrste programiranja, lagan za
mjerenje, ima siroku distribuciju.
SPEC mjerila za potrebu industrijske, akademske i i istrazivacke zajednica za
opce prihvaceni mjerama racunarski performansi, dovela je do razvoja
standardiziranih skupova mjerila. Programiran su u jeziku visokog nivoa.
Prosjecni rezultati sluze da dobijanje pouzdane uporedbe performansi razlicitih
racunara. Mjerilo brzine mjeri sposobnost racunara da vrsi jedan zadatak.
Rezultati testnog sistema se prikazuju kao odnos referentnog i
sistemskog vremena trajanja.
Mjerilo omjera mjeri propusnost ili brzinu masine koja izvodi brojne
zadatke.

Tref- vrijeme izvrsavanja i tog referetnog programa


N- broj kopija koje se vrse paralelno
Tsut- proteklo vrijeme od pocetka izvrsavanja svih N programa

Amdahlov zakon

T- ukupno vrijeme izvrsavanja programa na jednom procesoru. Mogu se


izvuci dva vazna zakljucka kad je f malo, koristenje paralelnih procesora ima
malo uticaja, kakav N tezi u beskonacnost , ubrzanje je ograniceno sa 1/(1-f),
tako da dolazi do pada poboljsanja koristenjem vise procesora. Ovaj zakon
ilustruje probleme s kojima se suocava industrija u razvoju visejezgrenih masina
uz stalno povecanje jezgri. Bilo kakvo poboljsanje rezultira ubrzanjem koje
je:

RACUNARSKE FUNKCIJE I VEZE

Gledano odozgo elementi racunara su:


CPU
memorija
I/O elementi
Medjusobno povezane komponente postizu osnovnu funkciju, a to je
izvrsavanje programa. Zato se najvisem nivou racunarski sistem opisuje:
- opisivanjem vanjskog ponasanja svake komponentem a to je razmjena
podataka i kontrolnih signala sa ostalim komponentama
- opisivanjem strukture povezivanja i potrebnih kontrola za upravljanje
njohovog koristenja.
Pogled odozgo je vazan zbog razumijevanja prirode racunara i ocjenjivanja
performansi racunara.
Pogled na strukturu i funkciju nudi uvid u:
- sistemska uska grkla
- alternative putanje
-velicinu padova sistema u slucaju padova komponenti, te lakse
dodavanje poboljsanja preformansi
Pouzdaniji sistem dobijemo tako sto povecamo brzinu i pouzdanost komponenti i
promjene u dizajnu. Danasnji racunari su zasnovani na Von Neumannovoj
arhitekturi, a zasniva se na 3 koncepta:
- Podaci i instrukcije su pohranjeni u jednoj memoriji koja se moze
ucitavati i dopisivati
- Sadrzaji memorije su adresibilni, bez obzira na vrstu podataka
- Izvrsavanje se obavlja sekvencijalno od jedne do druge instrukcije.
Elementi racunara
Postoji mali skup osnovnih logickih komponenti koje mogu biti spojene
na razlicite nacine. Tako pohranjuju podatke i izvode aritmeticko-logicke
operacije. Ako treba specificno izracunavanje, onda se konstruise specijalna
konfiguracija samo za taj izracun. Proces spajanja komponenti je oblik
programiranja. Rezultujuci program je hardver i on se oznacuje kao
hardverski program. Operacije koje ce se izvrsiti u aritmeticko logickom
djelu zavisi od kontrolnih signala primljenih u hardveru. Prihvata
podatke i daje rezultate.
Hardver opce namjene je takav da prima podatke i kontrolne signale i
daje rezultate. Zato nema ponovnog spajanja elemenata za svaki program, vec

programer treba dobaviti novi skup kontrolni signala. Kontrolni signali


se dobavljaju pomocu niza koraka.
Korak je neka aritmeticko logicka operacija na podacima, svaki korak
treba novi skup kontrolnih signala . Svaki skup kontrolni signala ima svoj
jedinstveni kod. Postoji dodatni hardverski segment opce namjene on prihvata
kod i proizvodi signale.
Danas nema vise prespajanja hardvera za svaki novi program, samo treba
obezbjediti novi niz kodova. Kod je instrukcija, a hardver je pretvara u
kontrolne signale. Dakle novi metod programiranja je softver. Dva glavna
elementa sistema su instrukcijski prevodilac i modul za aritmeticke i logicke
funckije opce namjene. Oni cine CPU.
Podaci i instrukcije moraju se ubaciti racunar, znaci trebamo ulazni
modul. On sadrzava komponente za prihvatanje podataka i instrukcija i
za pretvaranje signala u razumljive sistemu. trebamo i izlazni modul. A
to dvoje cine I/O komponente.
Za funkcionalan racunar trebamo jos jedan element, ulazni uredjaj dostavlja
instrukcije sekvencijalno, medjutim cesto se program tako ne izvrsava , moze
skakati okolo, tako je isto sa operacijama nad podacima. Zato nam treba
mjesto njihovog privremenog pohranjivanja. Taj modul je glavna
memorija.
CPU razmjenjuje podatke sa memorijom, za to koristi CPU registra:
MAR- odredjuje adresu u memoriji za sljedece upisivanje i ucitavanje
MBR sadrzi podatke koji se upisiju u memoriju ili prihvata podatke koji
se iz nje ucitavaju
I/OAR -odredjuje specificni I/O uredjaj
I/OBR- za razmjenu podataka izmedju I/O modula i CPU
Memorijski modul je skup lokacija, svaka lokacija sadrzi binarni broj. Binarni
broj se prevodi u instrukciju ili podatak. I/O modul prenosi podatke od vanj.
uredjaja ka/od CPU i memorije. Sadrzi unutrasnje bafere za privremeno
prihvatanje podataka dok ne budu poslani.
Osnovna funkcija racunara je izvrsavanje programa. Program je skup
instrukcija koje su pohranjene u memoriji. Procesor izvrsava instrukcije
koje su definisane u programu. Najjednostavniji oblik instrukcije se
sastoji od dva koraka dobavljanje instrukcije iz memorije i izvrsavanje.
Izvrsavanje programa je podavljanje dobavljanja i izvrsavanja
instrukcija. Oznacavaju se kao ciklusi dobavljanja i izvrsavanja.
Izvrsavanje moze ukljuciti nekoliko instrukcija.

Obrada jedne instrukcije je instrukcijski ciklus. Izvrsavanje programa se


zaustavlja ako je racunar iskljucen, pojavi se nepopravljiva greska i
program sadrzi instrukciju koja zaustavlja racunar.
Instrukcijski ciklus pocinje kad procesor dobavi instrukciju iz memorije. PC
sadrzi adresu instrukcije koja ce biti sljedeca dobavljena, procesor uvecava PC
nakon svakog dobavljanja. Uvecava da bi mogao obaviti sljedecu instrukciju.
NPR. duzina intrukcije je 16 bitna rijec, PC postavljen na lokaciju 300, u sljedecim
ciklusima dobavice instrukcija sa lokacija 301, 302, 303. Niz moze biti
zaustavljen.
Dobivena instrukcija se ucitava iz instrukcijskog registra. Instrukcija sadrzi
bite koji definisu pporcesorsku aktivnost. procesor prevodi instrukciju i izvodi
zahtjevanu aktivnost. Aktivnosti pripadaju jednoj od cetiri kategorije:
Procesor/memorija: prebacivanje podataka sa jednog na drugo
Procesor I/O: prebacivanje podataka sa procesora na IO modul
Obrada podataka: aritmeticko logicke operacije nad podacima
Kontrola: moze se zahtijevati zaustavljanje niza.
Instrukcija moze definisati I/O operaciju, satanja mogu biti nula, a mogu
biti posjecena vise od jednog puta.
MASINSKE INSTRUKCIJE
Rad procesora je odredjen instrukcijama koje izvrsava. To su masinske ili
racunarske instrukcije. SKup razlicitih instrukcija koje izvrsava processor se
naziva procesorski instrukcijski set.
Elementi masinske instrukcije
Operacijski kod(opkod) je binarni kod koji definise operaciju koju izvodi
Referenca izvornog operanda: operacija moze ukljucivati jedan ili vise
operanda koji su ulazili u operaciju.
Referenca rezultujuceg operanda: operacija moze proizvesti rezultat.
Referenca sljedece instrukcije: govori procesoru gdje da dohvati sljedecu
instrukciju nakon izvrsavanje trenutne.
Izvorni I rezultujuci operandi mogu biti u :
Glavnoj ili virtualnoj memoriji
Procesorskom registru
Neposredni: operand je u polju izvrsavanja instrukcije
Izlazni ulazni uredjaji: instrukcija mora specificirati IO modul

U racunaru instrukcija se predstavlja nizom bitova, podijeljena u polja, to su


sastavni elementi instrukcije. Tokom izvrsavanja instrukcije ucitava se
instrukcijski registar.

Opkodovi su skracenice tj. Mnemonici:


ADD sabiranje
SUB oduzimanje
MUL mnozenje
DIV dijeljenje itd.
Npr. Instrukcija ADD r, Y znaci dodavanje vrijednosti Y sadrzaju registra R.
Operacija se izvodi nad sadrzajem lokacije, a ne nad adresom. Svaki simbolicki
opkod ima stalno binarno predstavljanje.
Najvise se bavi jezicima visokog nivoa, a u najgorem slucaju
asemblerom. Masinski je koristan alat za opisivanje masinskih instrukcija. Kod
seta masinskih instrukcija, mozemo izvrsiti neki zadatak pomocu 3 koraka:
1. U registar ucitati sadrzaj memorijske lokacije 513
2. Dodaj sadrzaj memorijske adrese 514 registru
3. Pohrani sadrzaj registra u memorijsku lokaciju 513

Masinski jezik izrazava operaciju u obliku koji ukljucuje premjestanje podataka


u ili iz registra. Program napisan u jeziku visokog nivoa se mora prevesti u
masinski. Instrukcije se kategoziraju u:
Obrada podataka: aritm. I lig. Instrukcije
Pograna podataka: premjestanja podataka iz registra ili memorijskih lokacija
Premjestanje podataka: IO instrukcije
Kontrola: instrukcije testiranja I grananja
Aritmeticke vrse obradu numerickih podataka, logicke upravljaju bitovima kao
bitovima, obezbjedjuju sposobnost obrade bilo kojeg tipa podatka kojeg zatrazi.
One se izvode nad podacima u registrima procesora.
Moraju postojati memorijske instrukcije za premjestanje podataka izmedju
memorije I registara.

IO instrukcije su potrebne za prenos programa I podataka u memoriju. Testne


instrukcije se koriste za provjeru vrijednosti podatkovne rijeci ili statusa
izracunavanja. Instrukcije grananja se koriste za prelazak na drugaciji set
instrukcija.
Aritmeticke I logicke su unarne ii binarne instrukcije. Zato je potrebno 2
adrese za referenciranje operanada.
Nakon zavrsetka jedne instrukcije mora biti dobavljena sljedeca, dakle moze
sadrzavati najvise cetiri adrese : dvije za operande, jednu za odredisni, I
adresu sljedece instrukcije.
Tro adresni instrukcijski formati nisu uobicajeni.
potreban prostor, ali unosi nespretnost.

Adresni format reducira

1 adresna instrukcija je karakteristika ranijih masina. Potrebno je bilo 8


instrukcija za izvrsenje zadatka. Sve je ovo moguce uraditi 0 adresnim
instrukcijama. Primjenjuju se specijalne memorijske organizacije koji se nazivaju
STEK. To je LIFO skup lokacija. Stek je na poznatoj lokaciji.
Masinske instrukcije se primjenjuju nad podacima. Najvaznije opce kategorije
podataka su:
Adrese, brojevi, karakteri, logicki podaci.
Adrese su oblik podataka. Radi odredjivanja adrese glavne memorije
mora se referencirati operanda. Zato se adrese mogu smatrati kao cijeli
brojevi bez predznaka.
Masinski jezici ukljucuju I numericke tipove podataka. Razlika u brojevima
na racunaru I obicnih jeste da su na racunaru ograniceni. Postoji ogranicenje
dimenzije u racunaru, I ogranicenje preciznosti tj. Brojevi sa zarezom.
Programer mora razumijeti posljedice: zaokruzivanja, overflow, suvise
malih rezultata .
U racunarima su najcesca 3 tipa numerickih podataka:
Binarni cijeli ili sa fiskinm zarezom, binarni sa pomicnim zarezom I
decimalni.
Pretvaranje decimalnih u binarne na ulazu I binarne u decimalne da
izlazu. Najcesca reprezentacija je pakirani decimalni. Svaka cifra se
predstavlja 4 bitnim kodom. Za kreiranje brojeva 4-bitni kodovi se
zajedno nizu. Negativni brojevi se predstavljaju ukljucivanjem 4 bitne
cifre predznaka na lijevomili desnom kraju BCD niza.
Opca forma podataka su tekstualni ili simbolicki nizovi. Tekstualni su
najpogodniji za ljude, ne mogu se jednostavno pohraniti, obraditi, prenijeti
komunikacijskim sistemima. Oni su projektovani za binarne podatke. Zato postoje

kodovi kojima se simboli predstavljaju nizovima bita. Danas je najcesci kod je


International Reference Alphabet IRA poznat isto kao ASCII kod.

Svaki simbol se predstavlja


predstavljaju kotrolne simbole:
Tice se kontrole
procedurama.

ispisa

7-bitnim

simbola

na

obrascem. Neki od obrazaca


stranici

komunikacijskim

IRA simboli se pohranjuju I prenose pomocu 8 bitova.


Drugi system kodiranja je EBCDIC, koristi se u IBM mainfrejmovima. To je
8 bitni kod. Kompatibilan je sa pakiranim decimalnim. Logicki podaci se
smatraju kao podatkovna jedinica. Dvije u prednosti ovog nacina:
1. Moze se zahtievati pohranjivanje Bulovih ili binarnih podatkovnih
elemenata (true ili false)
2. Postoje slucajevi manipuliranja bitovima podatkovnog elementa

Na svim masinama se mogu naci opci tipovi operacija: prenos podataka,


aritmeticke, logicke, operacije pretvaranja, IO, sistemske kontrole,
kontrole prenosa.

Tip jedinice podatka se odredjuje operacijom koja se izvodi. Ovo je redovno kod
masinskog jezika.
Prenos podataka je fundamentalni tip masinske instrukcije. Mora
specifirati nekoliko stvar
1. Lokacija izvora I odredista
2. Duzina podatka koji se prebacuje
3. Adresiranja svakog operanda
Ovo mora napraviti projektant. Opca lokacija moze se naznaciti specificiranjem
opkoda ili operanda.
Operacije prenosa su najjednostavniji tip. Ako su pocetak I odrediste
registry, procesor izaziva prenos iz jednog u drugi registar. Sto je unutrasnja
operacija procesora. Ako je jedan ili ob eoperanda u memoriji, onda
processor mora:
1.
2.
3.
4.

Izracunati memorijske adrese


Ako je virtualna memorije prevodjenje vurtualne u stvarnu
Odrediti da li je adresa u kesu
Ako nije, izdaje komandu memorijskom modulu

Masina izvrsava osnovne aritmeticke operacija, instrukcije koje se


izvode nad jednom operandom. To su:
a.
b.
c.
d.

Apsolutna vrijednost: uzima abs vrijednost operanda


Negacija: negativna vrijednost operanda
Uvecanje: dodaje 1 operandu
Smanjenje: od operanda se oduzima 1

Moze ukljucivati operacije radi pozicioniranja operanda na ALU izlaz ili


izdavanja izlaza iz ALU.
Masina koristi razlicit operacije manupuliranjem pojedinim bitovima ili drugim
jedinicama. Zasnivaju se na Bulovim operacijama. Najcese su: AND, OR I
XOR su najcesce logicke funkcije dva operanda.
EQUAL je koristan binarni test.
Logicke operacije se mogu primijeniti na 1 ili n bitova podatka.
Logickim premjestanjem bitovi se premjestaju lijevo ili desno. Na jednom kraju
premjesteni bit se gubi, na drugom kraju, ulazi 0 . Korisna su za premjestanja
polja unutar rijeci.
Za slanje dva simbola u rijeci treba
1. Ucitati tijec u registar
2. Pomjeriti udesno 8 puta
3. Izvodi se IO
Aritmeticko premestanje tretira podatke kao cijele brojeve sa predznakom I ne
premjesta bit predznaka. Ove operacija mogu ubrzati odredjene aritmeticke
operacije.
Rotiranje zadrzava sve bitove kojima se radilo.
Operacije konverzije mijenjaju format ili rade na format podatka. Npr.
Pretvaranje decimalne u binarne I obnuto.
Moze se koristiti za pretvaranje 8 bitnog koda u drugi, treba tri operanda,
operand sadrzi adresu tabele 8 bitnih kodova, neki se prevode, svaki bajt se
zamjenjuje sadrzajem reda tabele indeksiranog tim bajtom.
Ulazno izlazne operacije koriste razlicite pristupe koji ukljucuju: izolirane
programirane IO, memorijski preslikane IO, DMA I koristenje IO proesora.
Operacije sistemske kontrole se izvrsavaju samo dok je proesor u
odredjenom stanju ili izvrsava program u povlastenom podrucju memorije. Ove
instrukcije su rezervisane za operativni sistem.
Znacajan uticaj ima niz instrukcijskih izvrsavanja, za ove instrukcije mora
azurirati programski brojac koji sadrzi adresu neke instrukcije u memoriji. Za
prenos kontrole precosor mora azurirati brojac koji sadrzi adrsu neke instrukcije u
memoriji.

Najvazniji razlozi su prenosa kontrole su:


1. Bitno je izvrsavati svaku instrukciju vise od nednom cak I nekoliko
hiljada puta
2. Svi programi ukljucuju oducivanje
3. Pravilno kreiranje velikog ili srednjeg racunarskog programa je
veoma tezak zadatak
Adresiranje
Adresna polja u tipicnom format su relativno mala, a mi zelimo velik raspon
lokacija u memoriji. Kako bi se ovo postiglo upravljaju se raznovrsne tehnike
adresiranja. Ukljucuju neku tazmjenu izmedju adresnog raspona I broja reference
u instrukciji. Najcesce tehnike adresiranja su:
Neposredno, direktno, indirektno, registarsko, indirektno registarsko,
premjestanje, stek.
Koristice se sljedeca notacija:
A- Sadrzaj adresnog polja u instrukciji
R- sadrzaj adresnog polja u instrukciji koja upucuje na registar
EA- stvarna adresa lokacije koja sadrzi referencirani operand
X- sadrzi memorijsku lokaciju X ili registar X.
Vrijednost polja nacina odredjuje koji ce se nacin adresiranja koristiti. U
sistemu bez virtualne adrese EA je ili registar ili memorijska adresa.
Kod sistema sa virtualnom memorijom ona je virtualna adresa ili
registar.
Neposredno adresiranje je najjednostavniji oblik adresiranja u kojoj se
vrijednost operanda nalazi u instrukciji. Moze se koristiti da definisanje
konstanti ili postavljanje pocetne vrijednosti varijabla.
Direktno adresiranje je veoma jednostavna forma adresiranja u kojoj
adresno polje sadrzi stvarnu adresu operanda EA. Uobicajena je kod starijih
generacija racunara.
Indirektno adresiranje je imati adresno polje koje se odnosi na adresu
rijeci u memoriji koja sadrzi punu adresu operanda. Nedostatak ovog pristupa
je da izvrsavanje instrukcije zahtijeva dvije memorijske reference
za
dohvatanje operanda.
Adresiranje registra je slicno direktnom adresiranju. Jedina razlika je sto se
adresno polje odnosi na registar, a ne na adresu u glavnoj memoriji. EA= R.
Prednosti ovog pristupa su da unutar instrukcije potrebno je malo adresno
polje. Ne zahtijevaju se dugotrajne memorjske reference jer je vrijeme
pristupa percesorskim registrima mnogo manje nego glavnoj memoriji.
Adresni proctor je veoma ogranicen

Registarsko indirektno adresiranje je isto ao I registarsko adresiranje


analogno direktnom, tako je I registarsko indirektno analogno indirektnom
adresiranju. Jedina razlika je da li se adresno polje odnosi na memorijsku
lokaciju ili registar. EA= R.
Adresiranje sa pomakom je mocan nacin adresiranja koji kombinuje
mogucnosti direktnog I registarskog indirektnog adresiranja. Oznacava se kao
adresiranje sa pomakom EA= A +R. Zahtijeva dva adresna polja od kojih je
jedno eksplicitno.
Tri najcesca kotistenja adresiranja sa pomakom su:
A. Relativno adresiranje
B. Adresiranje bazirano na registru
C. Indeksiranje
Za relativno adresiranje implicitni registar je programski brojac.
Adresiranje je bazirano na registru I radi tako sto referencirani registar
sadrzi adresu u glavnoj memoriji , a adresno polje sadrzi pomak od te
adrese. Referenca moze biti eksplicitna ili implicitna.
Tumacenje indeksiranja je : adresno polje referencira adresu u glavnoj
memoriji a referencirani registar sadrzi pozitivan pomak od te adrese.
Indeksiranje se koristi kao efikasan mehanizam za izvodjenje iterativnih
operacija. Posto se koristi za iterativne zadatke tipicna potreba je za povecavanje
ili smanjivanje indeksnog registra nakon svakog referenciranja. Neki sistemi to
automatski rade I to se zove autoindeksiranje.
Kod nekih masina obezbjedjuju se indirektno adresiranje I indeksiranje, I
moguce ih je upotrijebiti u istoj instrukciji. Moze se izvoditi prije ili poslije
indirekcije. Ako se izvrsava posije onda se zove postindeksiranje.
Kod preindeksiranja indeksiranje de izvodi prije indirekcije.
Stek adresiranje
Stek je linerni red lokacija. Ponekad se oznacava kao lista na dole ili first in last
out sistem. To je rezervisan blok lokacija. Stek pokazivac se odrzava u registru.
Stek adresiranje je oblik implicitnog adresiranja.
Instukcijski format definise raspored instukcijskih bitova u smislu njenih
sastavnih polha. Svaki mora ukljuciti opkod impicitno ili eksplicitno, nula ili vise
operanada. Koristi se vise instrukcijskih formata.
Duzina instrukcije se odnosi na prijektovanje instrukcije. Na ovu odluku utice
meomrija, organizacija, struktura sabirnice, slozenost procesora I njegova brzina.
Konflikt se stvara izmedju zelje za jakim instrukcijskim setom I potrebe ustede na
prostoru. Sve ide se na to da bude veca duzina instrukcije medjutim to moze biti
stetno.
Dodjeljivanje bitova

Sljedeci medjusobno povezani factor sluzi za doredjivanje svrshe I


koristenja bitova adresiranja
1. Broj nacina adresiranja: moze se odrediti implicitno, odredjen
opkodovi mogu biti pozvani na indeksiranje.
2. Roj operanada: manje adrese cine program duzim, sto stvara
neugodnost. Tipicne su praljenje za dva operanda
3. Registar nasuprot memorije: msina mora imati register kako bi
podaci bili sprovedeni u processor na obradu. Vecina danasnjih
arhitektura ima najmanje dva registra. Potrebno je nekoliko
bitova za specificiranje registra.
4. Broj registarskih skupova: vecina racunara ima skup registara
opce namjene. Oni se mogu koristiti za pohranu podataka ili
adresiranje sa pomakom. Neke arhitekture iju dva ili vise
specijalizovanih kompjutera.
5. Adresno podrucje: za adrese koje referenciraju memoriju,
podrucje adresa koje mogu biti referencirane povezano je sa
brojem adresnih bitova.Adresiranje sa pomakom podrucje je
pogodno za adresni registar.
6. Adresna granulacij: za adrese koje referenciraju memoriju a ne
register, vazan je factor granulacije adresiranja. Adresa moze
referencirati na rijec ili bat. Bajt je za manipuliranje karakterima.
PDP 8 je jedan od najjednostavnijih projekata za racunar opce namjene. Imao je
jedan registar opce namjene, akumulator.
Za povecavanje grupe operacija, opkod definise registarsku reference ili
mikroinstrukciju. Opkod 6 je Io operacija ; koristilo se 6 bitov za izbor jednog od
64 uredjaja, a 3 bitta su specificirala IO komandu.
PDP 8 je instrukcijski format veoma efikasan. Podrzava indirektno adresiranje,
adresiranje sa pomakom I indeksiranje.

PDP10 je suprotnost intrukcijskog seta ODO 8. Principi koji su koristeni pri


projektovanju njegovog instrukcijskog seta su:
Ortogonalnost: princip po kojem su 2 varijable medjusobno nezavisne.
Adresa se uvijek izracunava isto nezavisno od opkoda. Ovo je
suprotnost monigim masinama gdje su sve ove operacije zavisne od
operande.
Djelovitost: svi tipovi aritmetickih podataka bi trebali iamti potpun I
identican set operacija.
Direktno adresiranje: baza plus adresiranje sa pomakom, koje
opterecue programera memorijskom organizacijom izbjegnuto je u
korsit direktnog adresiranja.

PDP 10 ispunjava sve ciljeve I olaksava zadatak programera I kompajlera, ali je


iskoristenje prostora neeifasno.
Promjenjiva duzina instrukcija
Projektanti mogu pruziti brojne instrucijske formate razlicitih duzina.
Adresiranje moze biti felksibilnije, sa razlicitim kombinacijama registarskih I
memorijskih reference. Posto processor ne zna duzinu instrukcije, strategija je
dobavljanje bajtova ili rijeci koji su jednak najduzoj mogucoj instrukciji.
PDP 11. Projektovan je da pruzi jak I felksibilan instrukcijski set unutar 16 bitnih
miniracunara. Isto koristi ortogonalnost gdje su operande nezavisne. Instrukcijski
set I mogucnosti adresiranja su slozeni.
VAX. Ourza relativno mali broj fisknih intstrukcijskih formata. Nije ortogonalan.
Moze se smjesiti samo orgranicen broj operanada. Da bi izbjegli ove problem sve
instrukcije moraju imati prirodan broj operanada I svi bi trebali imati istu
opcenitost u sprecifikaciji
Rezultat je bvarijabilan instrukcijski format. Specifikator operanda se obino
sastoji od samo jednog bajta. Opisuje sirok spektar operacija I nacina adresiranja.
Asemblerski jezik
Procesor razumije I izvrsava masinske instrukcije. To su binarni brojevi
pohranjeni u racunar. Ako unesemo 4 operande program ce se sastojati
od sljedece 4 instrukcije:
1. Uitavanje sadraja lokacije 201 u AC.
2. Dodavanje sadraja lokacije 202 AC-u.
3. Dodavanje sadraja lokacije 203 AC-u.
4. Pohranjivanje sadraja AC-a na lokaciju 204
Ovaj process je sklon greskama . Za poboljsanje se koristi simbolicko
ime ili mnemonic . Rezultat je simbolicki program. Za pohranjivanje
proizvoljnog podatka na instrukciju izumljena je pseudoinstrukcija sa sibolom
DAT. Koristenje simbolickog jezika olaksava posao, ali je jos nezagrapan.
Potrebno je dati adresu svake rijeci. Mnogo bolji sistem koji se obicno koristi je
koristenje simbolickih adresa. Svaka linija se sastoji od tri polja. Trece polje
sadrzi simbolicku adresu.
Sa ovim posljednjim dobijemo asemblerski jezik. Prevodi se u masinski
pomocu asemblera. To je glavna prekretnica u evoluciji racunarske
tehnologije. Bio je prvi korak jezicima visokog nivoa koji se danas
koriste. Koristi se za sistemske programme kao sto su kompajleri I IO
rutine.

Você também pode gostar