You are on page 1of 33

UVOD

STRUKTURA I FUNKCIJA RAČUNARA

Raĉunar je sloţen sistem; savremeni raĉunari sadrţe na milione elektronskih komponenti.


Sistem se sastoji od skupa komponenti i njihovih meĊusobnih odnosa.
Hijerarhijska priroda sloţenih sistema je od suštinskog znaĉaja, kako za njihovo
projektovanje, tako i za opis. Projektant treba da se bavi samo posebnim nivoom sistema
odjednom. Na svakom nivou, sistem se sastoji od skupa komponenata i njihovih meĊusobnih
odnosa. Na svakom nivou, projektant se brine o strukturi i funkciji:
 struktura: naĉin na koji su komponente u meĊusobnom odnosu,
 funkcija: rad svake pojedinaĉne komponente kao dio strukture.

I struktura i funkcionisanje raĉunara su u suštini jednostavni. Osnovne funkcije koje raĉunar


moţe da izvodi su: obrada podataka, skladištenje podataka, premještanje podataka,
upravljanje.

RAČUNARSKE KOMPONENTE

Raĉunar sadrţi CPU (centralnu procesorsku jedinicu), memoriju i U/I komponente, sa po


jednim modulom od svake vrste ili sa više njih. Te komponente su meĊusobno povezane na
neki naĉin, da bi se postigla osnovna funkcija raĉunara da izvršava programe.
Na slici1.2 ilustrovane su komponente gornjeg nivoa i nagovještena su njihova meĊusobna
dejstva.
CPU razmjenjuje podatke sa memorijom. Za tu svrhu on u opštem sluĉaju koristi dva
unutrašnja (za CPU) registra: memorijski adresni registar (MAR), koji odreĊuje adresu u
memoriji za sljedeće ĉitanje ili upisivanje i memorijski bafer registar (MBR), koji sadrţi
podatak koji treba da se upiše u memoriju, ili prima podatak koji se ĉita iz memorije. Sliĉno
tome, U/I adresni registar (U/IAR) specificira odreĊeni U/I ureĊaj. U/I bafer registar (U/IBR)
se koristi za razmjenu podataka izmeĊu U/I modula i CPU-a.
Memorijski modul se sastoji od skupa lokacija, definisanih sekvencijalno numerisanim
adresama. Svaka lokacija sadrţi binarni broj koji moţe da se interpretira, ili kao instrukcija ili
kao podatak. U/I modul prenosi podatke iz spoljašnjih ureĊaja ka centralnoj procesorskoj
jedinici i memoriji i obrnuto. On sadrţi unutrašnje bafere za privremeno drţanje tih podataka,
dok oni ne budu mogli da se pošalju.

CENTRALNA PROCESORSKA JEDINICA


STRUKTURA CPU-a

Glavne strukturne komponente CPU su:


 upravljačka jedinica: upravlja radom CPU, a time i raĉunara u cjelini.
 staza podatka koja obuhvata:
 aritmetičko-logička jedinica (ALU): izvodi funkcije obrade podataka raĉunara.
 registri: obezbjeĊuju unutrašnje skladištenje za CPU.
 interna CPU magistrala: obezbjeĊuje mehanizam preko kojeg se ostvaruje
komunikacija izmeĊu upravljaĉke jedinice, ALU i registara.

Osnovna funkcija koju izvodi raĉunar je izvršenje programa, koji se sastoji od skupa
instrukcija uskladištenih u memoriji. Procesor obavlja stvarni posao izvršavajući instrukcije
specificirane u programu. U svom najjednostavnijem obliku, obrada instrukcija sastoji se od
dva koraka: procesor ĉita (donosi) instrukcije iz memorije, po jednu istovremeno, i izvršava
svaku instrukciju. Izvršenje programa sastoji se od ponavljanja procesa donošenja i izvršenja
instrukcije. Izvršenje instrukcije moţe da obuhvati više operacija i zavisi od prirode
instrukcije. Obrada koja se zahtijeva za jednu instrukciju zove se instrukcijski ciklus.
Koristeći pojednostavljeni opis u dva koraka koji je prethodno dat, ciklus instrukcije je prika-
zan na slici. Ti koraci se zovu ciklus donošenja i ciklus izvršenja. Izvršenje programu
zaustavlja se samo ako se mašina iskljuĉi, ako se pojavi neka vrsta nepopravljive greške, ili
ako se naiĊe na instrukciju programa koja zaustavlja raĉunar.
Elementarne funkcije CPU-a

Najveći broj operacija koje izvršava CPU, moţe se obaviti jednom od sljedećih elementarnih
funkcija po unaprijed specificiranoj sekvenci:

 čitanje riječi iz memorije


 smješanje riječi u memoriju
 registarski prenos
 aritmetičke i logičke operacije

Tipovi prenosa CPU-a

Sa taĉke gledišta prenosa podataka, tj. mjesta odakle se pribavljaju izvorni operandi i mjesta
gdje se smeštaju odredišni operandi, instrukcije se mogu podijeliti u sljedeće tri kategorije:
a) registar-memorija - ostvaruje se prenos registar↔memorija.
b) registar-registar - ostvaruje se prenos registar↔registar.
c) memorija-memorija – prvo se ostvaruje prenos memorija→registar za privremeno
ĉuvanje podataka; opciono se obavlja ALU operacija i rezultat smješta u registar za
privremeno ĉuvanje podataka, a u trećem koraku se rezultat smješta u memoriju.

REGISTRI

Registri CPU-a se prema namjeni mogu podijeliti na:


1. Registre opšte namjene,
2. Specijalizovane registre.

U zavisnosti od dizajna procesora i odgovarajućeg mašinskog jezika, opšti registri se mogu


dodatno podijeliti prema namjeni, npr. na:
 akumulatore za aritmetiĉko–logiĉke operacije i ĉuvanje znakovnih podataka.
 indeks registre koji se koriste za indeksno adresiranje.
 pokazivače segmenata koji sadrţe poĉetnu adresu segmenta na raĉunarima sa
segmentnim adresiranjem.
 pokazivače steka koji pokazuju na poĉetak memorije koja je odreĊena za stek.

Većina specijalizovanih registara nije direktno dostupna korisniĉkim programima. Neke od


njih koriste samo programi operativnog sistema, dok su drugi dostupni samo na nivou
mikrokoda. Neki od specijalizovanih registara i njihove funkcije su:
 memorijski adresni registar (Memory Address Register, MAR): povezan sa
adresnim linijama sistemske magistrale; odreĊuje adresu u memoriji za operaciju
ĉitanja ili upisivanja;
 memorijski bafer registar (Memory Buffer Registar, MBR): povezan sa linijom
podataka sistemske magistrale; sadrţi vrijednosti koje treba upisati u memoriju ili
posljednju vrijednost uĉitanu iz memorije;
 programski brojač (Program Counter, PC): drţi adresu sljedeće instrukcije koju
treba donijeti;
 instrukcijski registar (Instruction Registar, IR): drţi posljednju donijetu instrukciju;
 registar koji sadrži status programa koji se trenutno izvršava (Program Status
Word PSW): informacije koje sadrţi ovaj registar, a odnose se na program koji se
trenutno izvršava ukljuĉuju:
 uslovne kodove (Condition codes, CC) pri izvršavaju aritmetiĉkih i logiĉkih operacija;
 postojanje prenosa pri aritmetiĉkim operacijama;
 prekoraĉenje pri aritmetiĉkim operacijama i vrstu podataka nad kojima je došlo do
prekoraĉenja (cijeli brojevi, BCD brojevi);
 indikatore da li je dozvoljen prekid kao i tip prekida koji je dozvoljen;
 indikator da li je tekući program u supervizorskom ili korisniĉkom reţimu rada;
 indikator da li je tekuća adresa realna ili je potrebno preraĉunavati adrese iz programa
da bi se dobile realne adrese;
 indikator da li je CPU u stanju ĉekanja kada ne izvršava ni jednu instrukciju.
Ovo stanje moţe da se promjeni jedino pojavom prekida.
 Kontrolne registre koji sadrţe specifiĉne informacije za svaku mašinu.

INSTRUKCIJSKI CIKLUS

Instrukcijski ciklus obuhvata sljedeće faze:


 donošenje: ĉitanje sljedeće instrukcije iz memorije od strane CPU;
 izvršavanje: interpretiranje operacionog koda i izvršavanje naznaĉene operacije;
 prekid: ukoliko su prekidi omogućeni i doĊe do prekida, stanje tekućeg procesa se
saĉuva i zatim se opsluţuje prekid.

Taĉna sekvenca dogaĊaja tokom instrukcijskog ciklusa zavisi od dizajna procesora.


Pretpostavimo da u procesoru postoje memorijski adresni registar (MAR), memorijski bafer
registar (MBR), programski brojaĉ (PC) i instrukcijski registar (IR).
Za vrijeme ciklusa donošenja instrukcija se uĉitava iz memorije. Na slici ilustrovan je tok
podataka za vrijeme tog ciklusa.

Tok podataka u ciklusu donošenja

Programski brojaĉ sadrţi adresu sljedeće instrukcije koja će biti donijeta. Ova adresa se
premješta u memorijski adresni registar i smješta na adresnu magistralu. Upravljaĉka jedinica
zahtijeva ĉitanje memorije i rezultat se smješta na magistralu podataka, kopira u memorijski
bafer registar i zatim premješta u instrukcijski registar. U meĊuvremenu vrijednost
programskog brojaĉa se povećava za 1 što predstavlja pripremu za sljedeće donošenje. Kada
se ciklus donošenja jednom završi, upravljaĉka jedinica ispituje sadrţaj IR da bi odredila da li
on sadţi specifikator operanda za korištenje indirektnog adresiranja. Ako je to sluĉaj, poĉinje
indirektni ciklus. Kao što je prikazano na slici, to je jednostavan ciklus.

Tok podataka u indirektnom ciklusu

N bitova na krajnjoj desnoj strani memorijskog bafer registra koji sadrţi referencu adrese
prebacuje se u memorijski adresni registar. Nakon toga, upravljaĉka jedinica zahtijeva
oĉitavanje memorije kako bi dobila ţeljenu adresu operanda MBR. Indirektni ciklus i ciklus
donošenja su jednostavni i predvidivi.
Ciklus izvršenja ima mnogo razliĉitih oblika koji zavise od toga koje se od najrazliĉitijih
mašinskih instrukcija nalaze u instrukcijskom registru. Ovaj ciklus moţe da obuhvata prenos
podataka izmeĊu registara, ĉitanje iz memorije ili U/ I ili upisivanje u njih, kao i pozivanje
ALU jedinice. Poput indirektnog ciklusa i ciklusa preuzimanja, ciklus sa prekidom je takoĊe
jednostavan i predvidiv.

Tok podataka u ciklusu sa prekidom

Trenutni sadrţaj brojaĉa instrukcija mora da se saĉuva kako bi procesor, nakon prekida,
mogao da se vrati normalnim aktivnostima. Zbog toga se sadrţaj programskog brojaĉa
prebacuje u memorijski bafer registar kako bi bio upisan u memoriju. Iz upravljaĉke jedinice
se u memorijski adresni registar uĉitava posebna memorijska lokacija rezervisana upravo za
ovu namjenu. To bi, na primjer, mogao da bude pokazivaĉ steka. U programski brojaĉ se
uĉitava adresa rutine prekida. Kao rezultat toga, sljedeći instrukcijski ciklus poĉinje
donošenjem odgovarajuće instrukcije.
MAŠINSKE INSTRUKCIJE

Skup razliĉitih mašinskih instrukcija koje mogu da se izvršavaju na nekom procesoru se


naziva skup instrukcija procesora. Elementi mašinske instrukcije su:

 operacioni kod: odreĊuje operaciju koja treba da se izvede (na primjer: ADD, U/I);
Operacija se odreĊuje binarnim kodom, koji je poznat kao operacioni kod.
 referenca izvodnog operanda: operacija moţe da obuhvati jedan ili više izvornih
operanada, odnosno, operandi su ulazi za operaciju;
 referenca rezultujućeg operanda: operacija moţe da proizvede rezultat;
 referenca na sljedeću instrukciju: ona kaţe procesoru da donese sljedeću instrukciju
poslije završetka izvršenja posmatrane instrukcije.

Operandi izvora i rezultata mogu da budu u jednoj od sljedeće tri oblasti:

 glavna ili virtuelna memorija: kao i kod reference na sljedeću instrukciju, mora da se
obezbijedi adresa u glavnoj ili u virtuelnoj memoriji;
 Registar procesora: sa rijetkim izuzecima, procesor sadrţi jedan ili više registara koji
mogu da se referenciraju mašinskim instrukcijama. Ako postoji samo jedan registar,
referenca na njega moţe da bude implicitna. Ako postoji više od jednog registra, onda
se svakom registru dodjeljuje jedinstven broj, a instrukcija mora da sadrţi broj
ţeljenog registra.
 Neposredna: vrijednost operanda nalazi se u polju instrukcije koja se izvršava;
 U/I ureĎaj: instrukcija mora da odredi U/I modul i ureĊaj za operaciju. Ako se koristi
memorijski preslikan U/I, to je samo druga adresa u glavnoj ili virtuelnoj memoriji.

Operandi

Mašinske instrukcije rade sa podacima. Najvaţnije opšte kategorije podataka su: adrese,
brojevi, znakovi, logiĉki podaci.
Adrese su, u stvari, oblik podataka.
Svi mašinski jezici ukljuĉuju numeriĉke tipove podataka. U raĉunarima su uobiĉajena tri tipa
numeriĉkih podataka:

 binarni cijeli brojevi ili binarni brojevi u fiksnom zarezu;


 binarni brojevi u pokretnom zarezu;
 decimalni brojevi.

Opšti oblik podataka je tekst ili niz znakova. Mada su tekstualni podaci najpogodniji da ih
ĉitaju ljudi, oni ne mogu u obliku znakova, lako da se skladište ili prenose u sistemima za
obradu podataka ili komunikacionim sistemima. Takvi sistemi su projektovani za binarne
podatke. Zato je smišljen jedan broj kodova, pomoću kojih se znakovi predstavljaju kao
nizovi bitova.
Ponekad je korisno da se razmatra n-bitna jedinica kao da se sastoji od n-1- bitnih podataka,
od kojih svaki ima vrijednost 0 ili 1. Kada se podaci posmatraju na taj naĉin, oni se smatraju
logičkim podacima. Ovakav pogled, orijentisan na bitove, ima dvije prednosti. Prvo, moţemo
ponekad poţeljeti da skladištimo niz Bulovih ili binarnih podataka, u kome svaki od njih
moţe uzeti samo vrijednosti 1 (istinit) i 0 (neistinit). Kod logiĉkih podataka, memorija se
najefikasnije koristi za to skladištenje. Drugo, postoje prilike kada ţelimo da manipulišemo
bitovima u podatku.

Operacije

Opšte vrste operacija koje se nalaze u svim mašinama su: operacije za prenos podataka,
aritmetiĉke operacije, logiĉke operacije, operacije za pretvaranje, U/I operacije, operacije za
upravljanje sistemom, operacije za prenos upravljanja.

Operacije za prenos podataka

Najosnovnija vrsta mašinske instrukcije je instrukcija za prenos podataka. Instrukcija za


prenos podataka mora da odredi nekoliko stvari. Prvo, moraju da se odrede izvorni i odredišni
operand. Svaka od tih lokacija bi mogla da bude memorija, registar ili vrh steka. Drugo, mora
da se ukaţe na duţinu podataka za prenos. Treće, kao i kod instrukcija sa operandima, mora
da se odredi naĉin adresiranja za svaki operand.

Aritmetičke operacije

Većina mašina obezbjeĊuje osnovne aritmetiĉke operacije sabiranja, oduzimanja, mnoţenja i


dijeljenja. One su nepromjenljivo date za oznaĉene cijele brojeve. One su ĉesto obezbjeĊene i
za brojeve u pokretnom zarezu i pakovane decimalne brojeve.
Izvršenje aritmetiĉke instrukcije moţe da obuhvati operacije prenosa podataka da bi se
postavili operandi za ulaz u aritmetiĉko-logiĉku jedinicu (ALU) i da bi se isporuĉio izlaz iz
ALU. Pored toga, dio procesora za ALU izvodi ţeljenu operaciju.

Logičke operacije

Većina mašina takoĊe obezbjeĊuje niz raznih operacija za manipulisanje pojedinaĉnim


bitovima rijeĉi ili neke druge jedinice koja se moţe adresirati, što se ĉesto zove „poigravanje
sa bitovima". One su zasnovane na Bulovim operacijama. Operacija NE invertuje bit. I, ILI i
ekskluzivno-ILI su najĉešće logiĉke funkcije sa dva operanda. JEDNAKO je koristan binarni
test. Ove logiĉke operacije mogu da se primjene po bitovima na n-bitne logiĉke jedinice
podataka.
Pored logiĉkih operacija sa bitovima, većina mašina obezbjeĊuje razne funkcije pomjeranja i
rotiranja.

Operacije za pretvaranje

Instrukcije za pretvaranje su one koje mijenjaju format ili rade na formatu podatka. Primjer je
pretvaranje iz decimalnog oblika u binarni.
U/I operacije

Postoje razni pristupi, ukljuĉujući programirani U/I, memorijski preslikan programirani U/I,
DMA i upotrebu U/I procesora. Mnoge implementacije obezbjeĊuju samo nekoliko U/I
instrukcija, gdje se specifiĉne aktivnosti odreĊuju parametrima, kodovima ili komandnim
rijeĉima.

Operacije za upravljanje sistemom

Instrukcije za upravljanje sistemom su one koje mogu da se izvršavaju samo kada je procesor
u nekom privilegovanom stanju, ili kada izvršava program u specijalnoj privilegovanoj oblasti
memorije. Te instrukcije su po pravilu rezervisane za upotrebu u operativnom sistemu.

Operacije za prenos upravljanja

Postoje brojni razlozi zašto se zahtijevaju operacije za prenos upravljanja. MeĊu najvaţnijima
od njih su sljedeći:

1) U praktiĉnoj upotrebi raĉunara, od suštinske je vaţnosti sposobnost da se prave po-


navljajuće petlje instrukcija. Da bi se implementirala aplikacija, mogu biti potrebne
hiljade ili moţda milioni instrukcija. Ako bi se svaka instrukcija pisala posebno, to bi
bilo nezamislivo. Ako treba da se obradi tabela ili spisak stavki, potrebna je
programska petlja. Niz instrukcija se stalno ponovo izvršava da bi se obradili svi
podaci.
2) Skoro svi programi obuhvataju neko donošenje odluka. Ţeljeli bismo da raĉunar radi
jednu stvar ako je ispunjen neki uslov, a drugu stvar ako je ispunjen neki drugi uslov.
3) Ispravno pisanje velikog, pa ĉak i srednjeg raĉunarskog programa, izuzetno je teţak
zadatak. Od pomoći je ako postoji mehanizam za razbijanje zadatka na manje dijelove
na kojima moţe da se radi po jednom istovremeno.

Operacije za prenos upravljanja se najĉešće nalaze u skupovima instrukcija: grananju,


preskoku i pozivu procedure.

STEKOVI

Stek je ureĊeni skup elemenata, od kojih se samo jednom moţe pristupiti istovremeno. Taĉka
pristupa se zove vrh steka. Broj elemenata u steku, ili dužina steka, promjenljiv je. Posljednji
element steka je njegova baza. Stavke mogu da se dodaju na vrh steka, ili da se sa njega
uklanjaju. Iz tog razloga, stek je takoĊe poznat i kao lista za umetanje naniţe (engl. pushdown
list) ili lista posljednji-unutra-prvi napolje (engl. last-in-first-out, LIFO).
Na slici prikazane su osnovne operacije steka.
Osnovna operacija steka (pun/opadajući)

Poĉinjemo od nekog vremenskog trenutka kada stek sadrţi izvjestan broj elemenata.
Operacija PUSH dodaje novu stavku na vrh steka. Operacija POP uklanja stavku sa vrha
steka. U oba sluĉaja, vrh steka se pomjera na odgovarajući naĉin. Binarni operatori, koji
zahtijevaju dva operanda (na primjer mnoţenje, dijeljenje, sabiranje ili oduzimanje), koriste
dvije gornje stavke steka kao operande, uklanjaju obje stavke i stavljaju rezultat natrag na
stek. Unarne operacije, koje zahtijevaju samo jedan operand (na primjer, logiĉko NE), koriste
stavku na vrhu steka.

Implementacija steka

Stek je korisna struktura koja moţe da se ostvari kao dio implementacije procesora.
Implementacija steka djelimiĉno zavisi od njegovih potencijalnih upotreba i zahtijeva da
postoji neki skup lokacija koje se koriste za skladištenje elemenata steka. Tipiĉan pristup
ilustrovan je na slici. Blok susjednih lokacija rezerviše se za stek u glavnoj memoriji (ili u
virtuelnoj memoriji). Blok je u najvećem dijelu vremena djelimiĉno popunjen elementima
steka, a njegov ostatak je na raspolaganju za porast steka.

Tipiĉna organizacija steka (pun/ opadajući)

Za ispravan rad potrebne su tri adrese i one se ĉesto skladište u registrima procesora:
 pokazivač steka (SP): Sadrţi adresu vrha steka. Ako se neka stavka dodaje na stek ili
uklanja sa njega, pokazivaĉ se povećava ili smanjuje da bi sadrţio adresu novog vrha
steka.
 baza steka: Sadrţi adresu lokacije na dnu rezervisanog bloka. Ako se pokuša
izvršenje instrukcije POP kada je stek prazan, izvještava se o grešci.
 granica steka: Sadrţi adresu suprotnog kraja rezervisanog bloka. Ako se pokuša
izvršenje instrukcije PUSH kada je blok potpuno upotrijebljen za stek, izvještava se o
grešci.

TIPOVI INSTRUKCIJA

Kod instukcije zadaje procesoru tip obrade koji treba primjeniti tokom izvršavanja tekuće
instrukcije. Na osnovu tipa obrade, sve instrukcije klasifikujemo u sljedeće osnovne grupe:

1. instrukcije prenosa
2. aritmetiĉke i logiĉke instrukcije
3. instrukcije pomjeranja
4. instrukcije skoka
5. statusne instrukcije

Instrukcije za rad sa stek memorijom

Stek memorija je dio memorijskog prostora rezervisanog za sekvencijalno skladištenje


podataka. Kod sekvencijalne strukture, podaci se organizuju u nizove, pri ĉemu je pristup
ograniĉen samo na prvi ili posljednji podatak u nizu. Stek je LIFO (Last In First Out)
sekvencijalna stuktura podataka, kod koje se pristupa posljednjem uskadištenom podatku u
nizu. Pod pristupanjem se podrazumijeva prenos podatka u spoljašnje resurse, pri ĉemu se
briše sa steka i tako oslobaĊa pristup sljedećem krajnjem podataku u nizu. Dakle, da bi
pristupili nekom podatku unutar stek strukture, potrebno je prvo pristupiti svim ostalim
podacima pristiglim u stek poslije njega.

PUSH – sadrţaj memorijske lokacije, registra podataka ili operand neposrednog naĉina
adresiranja se skladišti na prvu praznu lokaciju stek memorije, pri tome se sadrţaj SP registra
smanjuje za jedan, gdje pokazuje na sljedeću niţu adresu.

PUSH a;

POP – sadrţaj posljednjeg pristiglog podatka sa steka se skladišti u memorijsku lokaciju ili
registar podataka. Pri tome SP pomjera na adresu iz koje se uzeo podatak sa steka.

POP b;
PSW statusni registar

Sve aritmetiĉke instrukcije postavljaju indikatore PSW registra na osnovu vrijednosti rezultata
operacije. Indikator, flag ili semafor je jedan bit u PSW registru koji pokazuje da li je
odreĊeno stanje aktivno ili nije. PSW registar procesora je registar u kome se ĉuvaju
indikatori trenutnog stanja dešavanja, kao što je praćenje rezultata operacije trenutne
instrukcije. Praćenje rezultata operacije je vrlo korisno kada treba odrediti odreĊene uslove
granjanja na osnovu indikatora u PSW registru.
Jedno od njih su indikatori detekcije nule Z i negativnog broja N. Ako je rezultat aritmetiĉke
operacije nula u Z indikatoru PSW upisaće se 1, u protivnom upisaće se 0. Ako je rezultat
negativan broj u N indikatoru PSW upisaće se 1, u protivnom upisaće se 0.

ADRESIRANJE

Adresno polje, ili polja, u tipiĉnom formatu instrukcije relativno su mala. Voljeli bismo da
moţemo da referenciramo širok opseg lokacija u glavnoj memoriji ili u nekim sistemima, u
virtuelnoj memoriji. Da bi se postigao taj cilj, primjenjuju se razne tehnike adresiranja. Sve
one ukljuĉuju neki kompromis izmeĊu opsega adresa sa jedne strane i/ili fleksibilnosti
izraĉunavanja adrese, sa druge strane. Najzastupljenije tehnike adresiranja su: neposredno,
direktno, indirektno, registarsko, registarsko indirektno, sa pomjerajem, pomoću steka.

Način Algoritam Glavna prednost Glavni nedostatak


Neposredno Operand = A Nema reference memorije Ograniĉena veliĉina operanda
Direktno EA = A jednostavno Ograniĉen adresni prostor
Indirektno EA = (A) Veliki adresni prostor Višestruke reference memorije
Registarsko EA = R Nema reference memorije Ograniĉen adresni prostor
Registarsko indirektno EA = (R) Veliki adresni prostor Dodatna memorijska referenca
Sa pomjerajem EA = A+ (R) Fleksibilnost Sloţenost
Pomoću steka EA = vrh steka Nema reference memorije Ograniĉena primjenljivost
UPRAVLJAČKA JEDINICA

Na slici dat je opšti model upravljaĉke jedinice, na kome su prikazani svi ulazi i izlazi.

Blok dijagram upravljaĉke jedinice

Ulazi su sljedeći:

 Generator takta: pomoću njega upravljaĉka jedinica „vodi raĉuna o vremenu”;


upravljaĉka jedinica izaziva izvršavanje jedne mikrooperacije (ili skup istovremenih
mikrooperacija) za svaki impuls generatora takta; ovo se ponekad naziva vrijeme
ciklusa procesora ili vrijeme ciklusa generatora takta;
 instrukcijski registar: operacioni kod tekuće instrukcije koristi se za odreĊivanje koje
mikrooperacije se obavljaju tokom izvršnog ciklusa;
 markeri: neophodni su upravljaĉkoj jedinici da bi odredila status procesora i izlaz
prethodnih operacija aritmetiĉko-logiĉke jedinice; na primjer, za instrukciju povećanja
i preskoka ukoliko je vrijednost nula upravljaĉka jedinica će povećati PC registar ako
je postavljen nulti marker;
 upravljački signali sa upravljačke magistrale: upravljaĉki dio sistemske magistrale
obezbjeĊuje signale za upravljaĉku jedinicu, kao što su signali prekida ili potvrda.

Izlazi su:

 upravljački signali unutar procesora: postoje dva tipa: oni koji izazivaju
premještanje podataka iz jednog registra u drugi i oni koji aktiviraju odreĊene funkcije
aritmetiĉko-logiĉke jedinice;
 upravljački signali ka upravljačkoj magistrali: takoĊe postoje dva tipa: upravljaĉki
signali ka memoriji i upravljaĉki signali ka U/I modulima.
MIKROOPERACIJE

Aktivnosti koje se obavljaju u koracima svake od faza instrukcionog ciklusa se nazivaju


mikrooperacije. Mikrooperacije se po funkciji koju obavljaju mogu podijeliti u ĉetiri
kategorije:
1) prenos podataka izmeĊu registara;
2) prenos podataka iz registara ka spoljašnjem interfejsu odnosno sistemskim
magistralama;
3) Prenos podataka od spoljašnjeg interfejsa ka registrima;
4) Izvršavanje aritmetiĉko/logiĉkih operacija pri ĉemu se ulaz i izlaz nalaze u registrima
procesora.

Faza donošenja

U najjednostavijoj varijanti faza donošenja se sastoji od tri koraka i ukljuĉuje ĉetiri


mikrooperacije. U ovoj fazi se vrši prenošenje sljedeće instrukcije koja treba da se izvrši u
MBR procesora. Na poĉetku ove faze adresa naredne instrukcije je u brojaĉu instrukcija (PC).
U prvom koraku se adresa prenosi u MAR. U sljedećem koraku se traţena instrukcija prenosi
u MBR a zatim aţurira sadrţaj brojaĉa instrukcija tako da pokazuje na narednu instrukciju
koja bi trebalo da se izvrši. Posljednji korak u ovoj fazi je prenošenje sadrţaja iz MBR u
instrukcioni registar (IR).
Efekat izvršavanja svake od mikrooperacija je promjena sadrţaja nekog od registara.
Izvršavanje svake od mikrooperacija traje najviše jednu vremensku jedinicu.
Ako sa ti oznaĉimo i-tu vremensku jedinicu, tada se niz mikrooperacija koje realizuju
fazu donošenja moţe predstaviti na sljedeći naĉin:

t1: (PC) → MAR


t2: Memorija MAR → MBR
(PC) + 1 → PC
t3 : (MBR) → IR

Faza indirekcije

Ciklus indirekcije (ukoliko postoji) se izvršava na sljedeći naĉin:


Adresni dio instrukcije se prenosi u MAR. Na osnovu sadrţaja MAR odreĊuje se instrukcija
koja se iz memorije prenosi u MBR. Adresni dio IR se aţurira adresnim dijelom sadrţaja
MBR, tako da IR sada sadrţi instrukciju koja koristi direktno adresiranje.
Ova tri koraka se mogu predstaviti na sljedeći naĉin:

t1: (IRadresa) → MAR


t2: MemorijaMAR → MBR
t3: (MBRadresa) → IRadresa
Faza izvršenja

Ako u raĉunaru postoji n mašinskih instrukcija sa razliĉitim kodovima operacije, tada se u fazi
izvršenja mogu pojaviti n razliĉitih nizova mikroinstrukcija.
Za ilustraciju je prikazana faza izvršavanja instrukcije sabiranja ADD R1,L u kojoj
se sadrţaj memorijske lokacije L dodaje na prethodni sadrţaj opšteg registra R1. Jedan od
mogućih nizova mikroinstrukcija je:

t1: (IRadresa) → MAR


t2: MemorijaRMA → MBR
t3: (R1) + (MBR) → R1

U realnim izraĉunavanjima biće ukljuĉene i mikrooperacije koje izdvajaju oznaku registra iz


IR.

Faza obrade prekida

Osnovna akcija koju treba preduzeti je ĉuvanje trenutnog stanja programa koji se izvršava, i
upisivanje adrese rutine koja vrši obradu prekida u brojaĉ instrukcija.
Niz mikroinstrukcija koji realizuje ove korake se moţe predstaviti na sljedeći naĉin:

t1: (PC) → MBR


t2: AdresaĈuvanja →MAR
AdresaRutinePrekida → PC
t3: (MBR) → MemorijaMAR

Registar faze

Fazu instrukcije koja se trenutno izvršava, odnosno niz mikrooperacija koji se primjenjuje,
odreĊuje sadrţaj posebnog registra upravljaĉke jedinice koji se naziva registar faze. Veliĉinu
registra faze odreĊuje broj faza u mašinskoj instrukciji.

MIKROINSTRUKCIJE

Svaka od mikrooperacija upravljaĉke jedinice se kodira simboliĉkom oznakom. Nizovi


mikrooperacija se nazivaju mikroprogrami, a pisanje mikroprograma mikroprogramiranje.
Mikroprograme saĉinjavaju mikroinstrukcije koje sadrţe simboliĉke oznake mikrooperacija i
njihovih argumenata. Mikroprogrami se nazivaju i firmware ili mikrokod.
Implementacija upravljaĉke jedinice preko mikroprogramiranja se zasniva na ĉinjenici da se
kao rezultat izvršavanja bilo koje od mikrooperacija generišu kontrolni signali ĉije vrijednosti
ukljuĉeno/iskljuĉeno mogu da budu predstavljene jednim bitom. Bitove koji odgovaraju svim
kontrolnim linijama moţemo da grupišemo u kontrolnu riječ. Svaka od mikrooperacija moţe
da se predstavi nekom od kombinacija bitova u kontrolnoj rijeĉi. U opštem sluĉaju
mikroinstrukcije se prema duţini formata mogu podijeliti na:
a. horizontalne, koje sadrţe više od 40 bitova;
b. vertikalne, koje sadrţe izmedju 16 i 40 bitova.

ORGANIZACIJA UPRAVLJAČKE JEDINICE

Organizacija upravljaĉke jedinice prikazane na slici.


Sekvencijalni logiĉki modul sadrţi logiĉka kola za obavljanje funkcija. On generiše adresu
sljedeće mikroinstrukcije, kao ulaze koristeći instrukcijski registar, markere aritmetiĉko-
logiĉke jedinice, upravljaĉki adresni registar (za povećavanje) i upravljaĉki bafer registar.
Posljednji od njih moţe da obezbjedi aktuelnu adresu, upravljaĉke bitove ili oboje. Modulom
upravlja generator takta kojim se odreĊuje vremenska usklaĊenost ciklusa mikroinstrukcije.
Upravljaĉki logiĉki modul generiše upravljaĉke signale u funkciji nekih od bitova
u mikroinstrukciji. Sasvim je oĉigledno da format i sadrţaj mikroinstrukcije odreĊuje
sloţenost upravljaĉkog logiĉkog modula.

ARITMETIČKO-LOGIČKA JEDINICA

Aritmetiĉko- logiĉka jedinica (ALU) je dio raĉunara koji stvarno izvodi aritmetiĉke i logiĉke
operacije nad podacima. Svi ostali elementi raĉunarskog sistema - upravljaĉka jedinica,
registri, memorija, U/I - postoje uglavnom da bi donijeli podatke u ALU kako bi ih ona
obradila i iznijela rezultate opet napolje. Kada razmatramo ALU, mi smo, u tom smislu, stigli
do same suštine raĉunara.
ALU i sve elektronske komponente u raĉunaru, zasnovane su na upotrebi jednostavnih
digitalnih logiĉkih ureĊaja koji mogu da skladište binarne cifre i izvode jednostavne Bulove
logiĉke operacije.
Na slici uopšteno je prikazano kako se ALU meĊusobno povezuje sa ostatkom procesora.

ALU ulazi i izlazi

Operandi za aritmetiĉke i logiĉke operacije se predstavljaju ALU u registrima, a rezultati


operacije se skladište takoĊe u registrima. Ti registri su lokacije privremenog skladišta unutar
procesora koje su povezane putanjama signala sa ALU. ALU moţe takoĊe da postavlja
markere kao rezultat operacije.
Na primjer, marker prekoraĉenja se postavlja na 1 ako rezultat raĉunanja prelazi duţinu
registra u koji treba da se skladišti. Vrijednosti markera se takoĊe skladište u registrima unutar
procesora. Upravljaĉka jedinica obezbjeĊuje signale koji upravljaju operacijom ALU i
kretanjem podataka u ALU i iz nje.
GLAVNA MEMORIJA

ORGANIZACIJA GLAVNE MEMORIJE

Glavna memorija je dio raĉunarskog sistema u kome se ĉuvaju programi i podaci i


organizovana je u lokacije. Svaka lokacija se sastoji od istog broja ćelija. U memorijskoj ćeliji
moţe da se ĉuva samo jedna od dvije razliĉite vrijednosti. Ove vrijednosti su binarne cifre 0 i
1 koje su poznate kao bitovi, tj. osnovna jedinica memorije je binarna cifra nazvana bit.
Veliĉina koja je smještena u memoriji, nezavisno od toga da li ona predstavlja dio instrukcije
ili podataka, je u binarnoj formi. Isti zakljuĉak vaţi i za dio informacije koji se prenosi preko
magistrala ili se smješta u druge dijelove raĉunara.
Svaka lokacija ima svoj broj koji se zove adresa. Program pristupa specificiranoj lokaciji na
osnovu adrese. Ako memorija ima n lokacija, tada adrese primaju vrijednosti od 0 do n-1.
Na slici prikazana je interna organizacija memorije.

Interna organizacija memorije

Kao i CPU, memorija posjeduje adresni bafer i bafer za podatke. Upravljaĉko kolo prima
signale ĉitanje/upis (read/write) koji se predaju od strane CPU-a ili U/I podsistema preko
spoljne magistrale. Na osnovu ovih ulaza upravljaĉko kolo uz pomoć adresnog dekodera
generiše signal pomoću koga se obavlja interna selekcija memorijske lokacije. Upravljaĉko
kolo generiše i druge signale pomoću kojih se upravlja internim radom memorije.
1.1 KARAKTERISTIKE GLAVNE MEMORIJE

Baziĉna tehnologija za implementaciju glavne memorije koristi poluprovodniĉka integrisana


kola. U suštini, kao i kod CPU to su LSI ili VLSI ĉipovi velike gustine pakovanja i jako
izraţene kompleksnosti. Sljedeće osobine sa projektantske taĉke gledišta su kljuĉne za izbor
memorije:
 brzina - vrijeme koje protekne izmeĊu iniciranja operacije i završetka te operacije.
Brzina se izraţava u zavisnosti od sljedeća dva termina:
a. vrijeme pristupa (access time) - definiše se kao vrijeme koje protekne od
trenutka kada je adresa stabilna do trenutka kada se memorija odazove sa
stabilnim podacima.
b. vrijeme ciklusa (cycle time) - minimalno vremensko kašnjenje koje je potrebno
da proĊe izmeĊu dve sukcesivne memorijske operacije.
Vrijeme ciklusa odreĊuje koliko se brzo moţe pristupati memoriji (na
kontinualnoj osnovi). Vrijeme ciklusa je obiĉno duţe od vremena pristupa.

 gustina - koliko se bitova moţe ĉuvati (smjestiti) po memorijskom ĉipu. U opštem


sluĉaju ovo odreĊuje koliko je ĉipova potrebno za implementaciju glavne memorije
raĉunara.
 disipacija snage - kod memorijskih ĉipova disipacija snage specificira se u zavisnosti
od snage koja se troši kada se vrši obraćanje nekoj lokaciji koja pripada tom ĉipu
(operating power), i snage koja se troši kada se ne vrši obraćanje (standby power).
 cijena komponenata - obiĉno cijena ukupnog memorijskog podsistema (primarna i
sekundarna memorija) ima veliki uticaj na ukupnu cijenu raĉunarskog sistema.
 drugi faktori - u ovu grupu spadaju pouzdanost, kompatibilnost sa drugim
memorijskim ĉipovima, organizacija memorije u zavisnosti od broja bitova po lokaciji
i dr.

Jedna od razlika meĊu vrstama memorije je metoda pristupanja jedinicama podataka. Te


metode ukljuĉuju sljedeće:

 Sekvencijalni pristup: Memorija je organizovana po jedinicama podataka koje se


zovu zapisi. Pristup mora da se napravi u specifiĉnoj linearnoj sekvenci. Zapamćena
informacija za adresiranje upotrebljava se za razdvajanje zapisa i pomoć u njihovom
izdvajanju. Koristi se dijeljeni mehanizam za ĉitanje/upisivanje, a on mora da se
premješta sa svoje trenutne lokacije na ţeljenu, prolazeći i odbacujući svaki zapis koji
se nalazi izmeĊu. Prema tome, vrijeme za pristupanje nekom proizvoljnom zapisu
veoma je promjenljivo.
 Direktan pristup: Kao kod sekvcncijalnog, i kod direktnog pristupa koristi se
dijeljeni mehanizam za ĉitanje/upisivanje. MeĊutim, pojedinaĉni blokovi ili zapisi
imaju jedinstvenu adresu, zasnovanu na fiziĉkoj lokaciji. Pristup se ostvaruje
direktnim pristupom da bi se postigla opšta susjednost, plus sekvencijalno traţenje,
brojanje ili ĉekanje da bi se dostigla konaĉna lokacija. I ovde je vrijeme promjenljivo.
 Slučajan pristup: Svaka adresibilna jedinica u memoriji ima jedinstven, fiziĉki
oţiĉen mehanizam za adresiranje. Vrijeme za pristup datoj lokaciji konstantno je i
nezavisno od sekvence prethodnih pristupa. Glavna memorija i neki sistemi keš
memorija koriste sluĉajan pristup.
 Asocijativan pristup: Taj pristup koristi vrsta memorije sa sluĉajnim pristupom koja
omogućava da se porede ţeljene lokacije bitova unutar rijeĉi, da bi se postigla
podudarnost sa odreĊenim uzorkom, i da bi se to uradilo za sve rijeĉi istovremeno.
Dakle, rijeĉ se izvlaĉi zasnovano na dijelu njenog sadrţaja, a ne na osnovu njene
adrese. Kao i kod obiĉne memorije sa sluĉajnim pristupom, svaka lokacija ima
sopstveni mehanizam za adresiranje, a vrijeme izvlaĉenja je konstantno, nezavisno od
lokacije ili prethodnih uzoraka pristupanja. Keš memorije mogu da koriste asocijativan
pristup.

ROM (Read-Only Memory)

Kao što joj i ime nagovještava, memorija samo za ĉitanje (ROM, engl. read-only memory)
sadrţi stalni uzorak podataka koji ne moţe da se mijenja. ROM memorija je trajna; to znaĉi da
se ne zahtijeva izvor napajanja elektriĉnom energijom da bi se u memoriji odrţavale
vrijednosti bitova. Dok iz ROM memorije moţe da se ĉita, nije moguće da se u nju upisuju
novi podaci. Znaĉajna primjena ROM memorija je mikroprogramiranje. Druge moguće
primjene ukljuĉuju:

 biblioteku potprograma za ĉesto zahtjevane funkcije;


 sistemske programe;
 tabele funkcija.

Za umjerene zahtjeve, prednost ROM memorije je u tome što su program ili podaci stalno u
glavnoj memoriji i ne moraju nikad da se uĉitavaju iz ureĊaja sekundarne memorije.
ROM memorija se pravi kao i svaki drugi ĉip integrisanog kola, tako što se podaci stvarno
oţiĉavaju u ĉip u okviru procesa fabrikacije. Tu nastaju dva problema:

 faza unošenja podataka ukljuĉuje relativno veliku fiksiranu cijenu, bez obzira na to da
li se pravi jednu kopija posebne ROM memorije ili na hiljade njih;
 nema mjesta za greške. Ako je jedan bit pogrešan, cijela koliĉina ROM memorija
mora da se odbaci.

Kada je potreban samo mali broj ROM memorija sa


odreĊenim sadrţajem, jeftiniju, alternativu predstavlja
programabilna memorija samo za ĉitanje (PROM,
engl. programmable ROM). Kao i ROM, PROM
memorija je trajna i u nju moţe da se upiše samo
jednom. Kod PROM memorije, proces upisivanja se
izvodi elektriĉnim putem i mogu da ga izvrše prodavaĉ
ili kupac u nekom trenutku poslije prvobitne fabrikacije ĉipa. Za proces upisivanja ili
„programiranja" zahtijeva se specijalna oprema. PROM memorije obezbjeĊuju fleksibilnost i
pogodnost. PROM memorije su atraktivne za proizvodnju u velikim serijama.
Druga varijacija memorije samo za ĉitanje je memorija za ĉitanje, koja je korisna za primjene
u kojima su operacije ĉitanja mnogo ĉešće od operacija upisivanja, ali za koje se zahtijeva
trajna memorija. Postoje tri najĉešća oblika memorije najĉešće za ĉitanje: EPROM, EEPROM
i fleš memorija.
Iz optiĉki izbrisive memorije samo za ĉitanje (EPROM, engl. erasable programmable read
only memory) se ĉita i u nju se upisuje elektriĉnim putem, kao i kod PROM memorije.
MeĊutim, prije operacije upisivanja, sve ćelije za skladištenje moraju da se izbrišu i dovedu u
isto poĉetno stanje, izlaganjem pakovanog ĉipa ultraljubiĉastom zraĉenju. Brisanje se izvodi
osvjetljavanjem jakim ultraljubiĉastim svjetlom kroz otvor koji je konstruisan u memorijskom
ĉipu. Taj proces brisanja moţe da se izvodi više
puta; svako brisanje uzima oko 20 minuta. Prema
tome, sadrţaj EPROM memorije moţe da se mijenja
više puta i, kao i sadrţaj ROM i PROM memorije,
moţe da bude skoro beskonaĉno trajan. Za
uporedive koliĉine memorije, EPROM memorija je
skuplja od PROM memorije, ali ima prednost
višestruke sposobnosti aţuriranja sadrţaja.

Privlaĉniji oblik memorije za ĉitanje je elektriĉno izbrisiva memorija samo za ĉitanje


(EEPROM, engl. electrically erasable programmable read-only memory). To je memorija za
ĉitanje u koju moţe da se upisuje u bilo kom trenutku, bez brisanja prethodnog sadrţaja;
aţuriraju se samo adresirani bajt ili bajtovi. Operacija
upisivanja traje mnogo duţe od operacije ĉitanja, reda više
stotina mikrosekundi po bajtu. EEPROM memorija
kombinuje prednosti trajnosti sa fleksibilnošću sposobnosti
aţuriranja na licu mjesta, korištenjem obiĉnih linija
magistrale za upravljanje, adrese i podatke. EEPROM
memorija je skuplja od EPROM memorije, a takoĊe i manje
gusta, podrţavajući manje bitova po ĉipu.

Jedan drugi oblik poluprovodniĉke memorije je fleš memorija (tako nazvana zbog brzine
kojom ona moţe da se reprogramira). Prvi put uvedena sredinom osamdesetih godina, fleš
memorija je izmeĊu EPROM i EEPROM memorija, kako po cijeni, tako i po funkcionalnosti.
Sliĉno EEPROM memoriji, fleš memorija koristi tehnologiju elektriĉnog brisanja. Cijela fleš
memorija moţe da se izbriše za jednu ili nekoliko sekundi, što je mnogo brţe od EPROM
memorije. Pored toga, moguće je obrisati samo blokove memorije, a ne cio ĉip. Fleš memorija
dobija svoje ime zato što je ĉip organizovan tako da se odjeljci memorijskih ćelija brišu
jednostrukom akcijom ili „flešom”. MeĊutim, fleš memorija ne obezbjeĊuje brisanje na nivou
bajta.
RAM ( Random Access Memory)

U tabeli navedene su glavne vrste poluprovodniĉke memorije.

Vrste memorije Kategorija Brisanje Mehanizam postojanost


upisivanja
Memorija sa sluĉajnim pristupom Memorija za Elektriĉno, na Elektriĉni Nepostojana
(RAM) ĉitanje-upisivanje nivou bajta
Memorija samo za ĉitanje (ROM) Maske
Programabilna memorija samo za Memorija samo Nemoguće
ĉitanje (PROM) za ĉitanje
Izbrisiva programabilna memorija UV svjetlo, na
samo za ĉitanje (EPROM) nivou ĉipa
Elektriĉno izbrisiva programabilna Memorija Elektriĉno, na Elektriĉni
memorija samo za ĉitanje najĉešće za nivou bajta Trajna
(EEPROM) ĉitanje
Fleš memorija Elektriĉno, na
nivou bajta
Vrste poluprovodniĉkih memorija

Najzastupljenija od njih je RAM memorija (engl. random- access memory).


Jedna od karakteristika kojom se odlikuje RAM memorija je to što se podaci mogu ĉitati iz
memorije i novi podaci u nju upisivati, na lak i brz naĉin. I ĉitanje i upisivanje se postiţu
upotrebom elektriĉnih signala.
Druga posebna karakteristika RAM memorije je da je ona nepostojana. RAM memoriji mora
da se obezbjedi stalno napajanje elektriĉnom energijom. Ako se napajanje prekine, podaci se
gube. Prema tome, RAM memorija moţe da se upotrijebi samo kao privremeno skladište.
Dva oblika RAM memorije koji se koriste u raĉunarima su: SRAM i DRAM memorije.

Statička RAM memorija (SRAM)

Statiĉka RAM (SRAM) memorija je digitalni ureĊaj, koji koristi iste logiĉke elemente kao što
su oni koji se upotrebljavaju u procesoru. U SRAM memoriji, binarne vrijednosti se skladište
koristeći konfiguracije flip-flop logiĉkih kola. Statiĉka RAM memorija će drţali svoje
podatke sve dok joj se dovodi napajanje elektriĉnom energijom.
SRAM memorije se koriste za keš memoriju (kako na ĉipu, tako i van njega), a DRAM
memorija za glavnu memoriju.
Tip RAM-a novije proizvodnje je NOVRAM (Nonvolatile Random Access Memory).
NOVRAM predstavlja veoma brzi statiĉki RAM kod koga je, kao rezerva, na istom ĉipu
predviĊeno identiĉno EEPROM polje. Statiĉki RAM se koristi za normalne operacije ĉitanja i
upisa, a njegov sadrţaj se moţe proĉitati iz EEPROM-a kada sistem postane ponovo
operativan.

Dinamička RAM memorija (DRAM)

Kod dinamiĉkih RAM-ova se mehanizam pamćenja zasniva na jednom tranzistoru i


kondenzatoru za svaki bit. Informacija se upisuje kao nula ili praţnjenjem kondenzatora
izmeĊu gejta i sorsa tranzistora. Dinamiĉki RAM je jeftiniji od statiĉkog ali zbog praţnjenja
kondenzatora mora da se vrši osvježavanje sadrţaja (dopunjavanje kondenzatora). U tom cilju
je potrebno ugraditi dodatnu logiku koja se zove logika za osvježavanje memorije. Zadatak
ove logike je da u pravom trenutku vrši dopunjavanje kondenzatora. U suštini se ovaj
postupak izvodi automatski (obiĉno nezavisno od rada CPU-a), ali je za realizaciju ove logike
potrebno predvidjeti prostor na memorijskim ploĉama.
Dva glavna razloga popularnosti DRAM-ova su:

a) veliki kapacitet,
b) relativno mala potrošnja.

Broj DRAM-ova koje je potrebno ugraditi kod implementacije memorije raĉunara zavisi od:

a. obima spoljne magistrale podataka CPU-a,


b. ţeljenog kapaciteta memorije, i
c. kapaciteta DRAM-a i njegove organizacije.

Tipiĉna organizacija DRAM-a prikazana je na slici:

Tipiĉna organizacija DRAM-a

Glavni dio ĉipa je polje memorijskih ćelija u kojima se smještaju nule i jedinice. Svaku ćeliju
ĉine jedan ili više tranzistora i kondenzator male kapacitivnosti. Ćelije se adresiraju pomoću
adresa vrsta i adresa kolona. Ove dvije adrese se mogu zamisliti kao koordinate ćelija. Sa
ciljem da se smnaji broj spoljnih interfejs linija, ove dvije adresne komponente se
multipleksiraju na istim ulaznim linijama A0-AN. Prvo se na adresne linije postavlja adresa
vrste, a zatim aktivira signal za njihovo pamćenje RAS* (Row Address Strobe). DRAM se
odaziva pamćenjem prisutnih adresa vrste u interni leĉ vrste. Nakon toga se adresa vrste
deaktivira, a na linije A0-AN postavlja adresa kolone. Slijedi aktiviranje signala CAS*
(Column Address Strobe). DRAM se odaziva pamćenjem adresa kolone u interni leĉ kolone.
Shodno raspoloţivoj informaciji (ukupnoj adresi) locira se adresa memorijske ćelije na
osnovu dekodiranja zapamćenih adresa vrste i adresa kolone. Stanje na liniji WE* (Write
Enable) ukazuje na to da li se pristup odnosi na operaciju ĉitanja ili operaciju upisa. D IN i DO
su ulazna i izlazna linija podataka DRAM-a, respektivno.

Osvježavanje

Opterećenje koje je akumulirano na malom kondenzatoru DRAM ćelije se brţe smanjuje zbog
struje curenja. Kao rezultat toga napon na krajevima kondenzatora se smanjuje do vrijednosti
koja više ne odraţava realno stanje zapamćene informacije. Da bi se izbegao gubitak podataka
neophodno je da se:
a. proĉita vrijednost napona svake ćelije;
b. pojaĉa;
c. kondenzator ponovo napuni na poĉetnu vrijednost.

Ovaj proces mora periodiĉno da se ponavlja i zove se osvježavanje. DRAM-ovi u toku jedne
operacije obezbjeĊuju osvjeţavanje svih ćelija koje pripadaju jednoj vrsti. Obiĉno DRAM-ovi
zahtijevaju osvjeţavanje po 128 vrsta svake 2 ms, ili po 256 vrsta svake 4 ms.
Da bi se logika za osvjeţavanje mogla realizovati neophodno je ugraditi tajmer koji
periodiĉno generiše zahtjeve za osvjeţavanjem i brojaĉ na osnovu ĉijeg stanja se odreĊuje
redoslijed adresirane vrste koja se osvjeţava. Blok šema logike za osvjeţavanje DRAM-ova je
prikazana na slici.
Kada upravljaĉka logika primi zahtjev za osvjeţavanjem, ona preduzima sljedeće aktivnosti:

1) Postavlja upravljaĉki signal select u takvo stanje da MUX na svom izlazu usmjerava
ulaze B.
2) Generiše memorijske upravljaĉke signale koji se sekvenciraju u saglasnosti sa
zahtjevima ciklusa za osvjeţavanje.
3) Nakon završetka ciklusa za osvjeţavanje upravljaĉka logika inkrementira brojaĉ. Novi
sadrţaj brojaĉa ukazuje na adresu vrste koja se naredna osvjeţava.

Kada je CPU izdao zahtjev za memorijskim ciklusom, upravljaĉka logika preko MUX-a
usmjerava odgovarajuću adresu vrste prema memoriji.
Interesantna situacija se javlja kada upravljaĉka logika primi istovremeno dva zahtjeva. Jedan
zahtjev se odnosi na standardni pristup memoriji od strane CPU-a, a drugi na osvjeţavanje.
Jasno je pri ovome da jedan od zahtjeva mora da saĉeka na svoje izvršenje. Projektovanje
kola koje će obavljati arbitraţnu funkciju nije trivijalan zadatak. Ako ovo kolo nije korektno
projektovano mogu se manifestovati nepredvidljiva ponašanja koja se veoma teško mogu
logiĉki interpretirati. Drugi aspekt na koji treba obratiti paţnju kod projektovanja ovih kola se
ogleda u ĉinjenici da ona ne smiju tokom arbitraţe da unose znaĉajna kašnjenja.

KEŠ MEMORIJA

Keš memorija je namjenjena da pruţi memoriji brzinu koja se pribliţava onoj koj imaju
najbrţe raspoloţive memorije, a u isto vrijeme da obezbjedi veliki kapacitet memorije po
cijeni jeftinijih vrsta poluprovodniĉkih memorija. Koncept je ilustrovan na slici a. Postoji
relativno velika i spora glavna memorija, zajedno sa manjom i brţom keš memorijom. Keš
sadrţi kopiju dijelova glavne memorije. Kada procesor pokuša da ĉita rijeĉ iz memorije,
napravi se provjera da bi se utvrdilo da li je rijeĉ u kešu. Ako jeste, rijeĉ se isporuĉuje
procesoru. Ako nije, blok glavne memorije, koji se sastoji od nekog fiksnog broja rijeĉi,
uĉitava se u keš i zatim se rijeĉ isporuĉuje procesoru. Zbog fenomena lokalnosti reference,
kada se blok podataka donese u keš da bi se zadovoljila jedna referenca memorije, vjerovatno
će biti budućih referenci na tu istu memorijsku lokaciju, ili na druge rijeĉi u bloku.
Na slici b prikazana je upotreba više nivoa keš memorije. L2 keš je sporiji i u opštem sluĉaju
veći od L1 keša, a L3 keš je sporiji i obiĉno veći od L2 keša.
Keš i glavna memorija

Na sljedećoj slici prikazana je struktura sistema keš/glavna memorija.

Struktura keš/glavna memorija

Glavna memorija se sastoji od 2n adresibilnih rijeĉi, gdje svaka rijeĉ ima jedinstvenu n-bitnu
adresu. U svrhu preslikavanja, ta memorija je zamišljena da se sastoji od izvjesnog broja
blokova fiksne duţine, svaki po K rijeĉi. To znaĉi da postoji blokova. Keš
memorija se sastoji od m blokova koji se zovu redovi. Svaki red sadrţi K rijeĉi, plus tag od
nekoliko bitova. Svaki red takoĊe ukljuĉuje i upravljaĉke bitove (nisu prikazani), kao što je
bit koji pokazuje da li je red bio promjenjen od kada je uĉitan u keš. Duţina reda, ne
ukljuĉujući tag i upravljaĉke bitove, zove se veličina reda. Veliĉina reda moţe biti toliko
mala, da ima samo 32 bita, gdje je svaka „rijeĉ" samo jedan bajt; u tom sluĉaju je veliĉina
reda 4 bajta. Broj redova je znaĉajno manji od broja blokova u glavnoj memoriji (m<< M).
U bilo kom trenutku, neki podskup blokova memorije nalazi se u redovima u kešu. Ako se
ĉita rijeĉ u bloku memorije, taj blok se prenosi u jedan od redova keša. S obzirom na to da
ima više blokova nego redova, pojedinaĉni red ne moţe da se jedinstveno i trajno dodijeli
odreĊenom bloku. Prema tome, svaki red ukljuĉuje tag koji identifikuje koji odreĊeni blok je
trenutno uskladišten. Tag je obiĉno dio adrese glavne memorije.

VIRTUELNA MEMORIJA

Kao što keš omogućava brzi pristup dijelovima programa i podataka iz memorije koji se
najĉešće koriste, tako i memorija moţe “keširati” dijelove diska koji se ĉesto koriste. Ova
tehnika se naziva virtuelna memorija i ima zadatak da programeru (i njegovom programu) da
iluziju da mu je na raspolaganju proširena (praktiĉno neograniĉena) radna memorija, zaštićena
od pristupa drugih korisniĉkih programa.
Virtuelna memorija obezbjeĊuje svakom programu logiĉki odvojen i njegov vlastiti virtuelni
adresni prostor kome drugi programi ne mogu pristupiti. To se postiţe prevoĊenjem
programskog adresnog prostora u fizički adresni prostor. Ovim mehanizmom se moţe
programima dati iluzija da raspolaţu adresnim prostorom većim od raspoloţivog fiziĉkog
adresnog prostora pa programeri ne moraju eksplicitno rješavati problem izvršenja programa
većeg od raspoloţive memorije, njegovog particioniranja i upravljanja prebacivanjem iz
memorije na disk i obratno (eng. overlays). Kao i kod keševa, i virtuelni adresni prostor i
fiziĉki adresni prostor su podijeljeni na blokove. Blokovi se u ovom kontekstu nazivaju
stranicama, a promašaj u memoriji se zove greška stranice (eng. page fault). Procesor
emituje virtuelnu adresu, koja se hardverskosoftverski prevodi u fizičku adresu, koja se
koristi za pristup fiziĉkoj memoriji.
Slika prikazuje sistem sa virtuelnom memorijom.

Slika6.5. Sistem sa virtuelnom memorijom. Ovako rade


savremeni personalni računari, radne stanice i serveri.

Virtuelna memorija se najĉešće oslanja na diskove, kao sljedeći niţi nivo u memorijskoj
hijerarhiji, jer zadrţavaju svoj sadrţaj i nakon nestanka napajanja i, po pravilu, imaju mnogo
veći kapacitet od fiziĉke radne memorije (DRAM-a). Moţe se pretpostaviti da su, inicijalno,
sve stranice virtuelne memorije smještene na disku. Samo njihov aktivni podskup je preslikan
i u glavnu memoriju i dinamiĉki se mijenjaju (po potrebi). Da bi ovo bilo moguće, arhitektura
skupa instrukcija mora podrţavati veliki adresni prostor, a prevoĊenje adresa mora podrţati
specijalni hardver (tabele, komparatori itd.) kao i softver (operativni sistem).

ORGANIZACIJA ULAZA/IZLAZA

Pored CPU-a i memorije, U/I podsistem je treći kljuĉni element svakog raĉunarskog sistema.
U/I podsistem ĉini skup U/I interfejsa. Svaki U/I interfejs (modul) predstavlja stepen za
spregu izmeĊu sistemske magistrale sa jedne strane, i jednog ili većeg broja ureĊaja sa druge
strane. Drugim reĉima, U/I interfejs ne predstavlja samo skup veza i mehaniĉki konektor,
nego sadrţi i odreĊeni stepen inteligencije, tj. sadrţi neku logiku koja obavlja odreĊenu
komunikacionu funkciju izmeĊu ureĊaja i magistrale.
Detalji organizacije U/I-a razlikuju se kod raznih tipova raĉunara a zavise i od specifiĉnosti
procesa koga treba kontrolisati, ali se jedan opšti model moţe videti na slici.

Slika7.1: Opšti model povezivanja mikroraĉunara sa U/I interfejsom

Spoljni ureĊaji povezuju se na raĉunarski sistem preko veza (kanala) na U/I interfejs. Veze se
koriste za razmjenu podataka, statusa i upravljaĉkih signala izmeĊu U/I interfejsa i spoljnih
ureĊaja.
Spoljni ureĊaj povezan na U/I interfejs ĉesto se zove periferni uređaj ili periferal. Spoljne
ureĊaje moţemo svrstati u tri kategorije:

1) čitljivi od strane čovjeka - pogodni za komunikaciju sa korisnikom raĉunara (video


displej terminali, štampaĉi i dr.);
2) ĉitljivi od strane mašine - pogodni su za komunikaciju sa opremom (magnetne trake,
diskovi itd.)
3) komunikacioni - pogodni su za komunikaciju sa udaljenim ureĊajima.
Postoje dva problema kod projektovanja U/I sekcija:

a) prvi se odnosi na naĉin sprezanja periferala sa raĉunarom i ostvarivanja prenosa


podataka, statusa i upravljaĉkih signala;
b) drugi se odnosi na ostvarivanje naĉina adresiranja U/I ureĊaja sa ciljem da ih CPU
selektuje i ostvaruje prenos podataka.

U grubim crtama, u zavisnosti od brzine sa kojom se vrši prenos podatka, U/I ureĊaje
moţemo podjeliti na sljedeće tri grupe:

1) Spori ureĎaji - ne mijenjaju svoje stanje više od jedanput u sekundi. Promjena


njihovog stanja tipiĉno zahtijeva period od nekoliko milisekundi ili duţe. Ovakav tip
ureĊaja su svjetlosni elementi, prekidaĉi, releji i drugi mehaniĉki senzori i aktuatori.
2) UreĎaji srednjih brzina - karakteriše ih brzina prenosa od 1 do 10000 bitova/s.
Ovakvi tipovi ureĊaja su tastature, štampaĉi, ĉitaĉi kartica, ĉitaĉi papirnih traka,
standardne kasete, standardne komunikacione linije i dr.
3) UreĎaji većih brzina - karakterišu se brzinom prenosa podatka koja je veća od 10000
bitova/s. Ovakvi tipovi ureĊaja su ĉitaĉi magnetnih traka, magnetni diskovi, brzi
štampaĉi, brze komunikacione linije, CRT displeji i dr.

Dvije U/I organizacije se najĉešće koriste kod savremenih raĉunara. Princip rada velikih
raĉunara prikazan je na slici.

Princip U/I organizacije kod velikih raĉunara


Raĉunarski sistem ĉine jedan ili veći broj CPU-ova, memorija, i jedan ili veći broj
specijalizovanih U/I procesora koji se zovu kanali podataka. Svi U/I ureĊaji su povezani na
kanale. Kada CPU ţeli da obavi U/I aktivnost, on upisuje (puni) specijalni program u jedan od
kanala i ukazuje kanalu šta treba da obavi. Kanal obavlja aktivnosti tipa:

 prijem/predaja podataka prema periferalu,


 prenos podataka glavna memorija↔U/I procesor↔periferal.

Na ovaj naĉin CPU je "osloboĊen briga" koje se odnose na prenos podataka ka/iz U/I ureĊaja,
tako da on moţe da obavlja druge korisne aktivnosti koje su vezane za program. Kada kanal
obavi posao on predaje CPU-u specijalni signal koji se zove prekid (interrupt). Ovim
signalom se zaustavlja tekući rad CPU-a, i prelazi na opsluţivanje zahtjeva koji je izdao
kanal. Prednost ovakvog pristupa je ta što se U/I aktivnosti i CPU-ove aktivnosti mogu
odvijati istovremeno, tj. CPU prenosi sve U/I aktivnosti kanalu. Kao što se vidi sa slike 7.2,
kod velikih raĉunara postoji veći broj magistrala:

 memorijska magistrala - preko ove magistrale kanali ĉitaju podatke iz memorije ili ih
upisuju u memoriju.
 U/I magistrala - preko ove magistrale CPU izdaje komande U/I kanalima i prenosi se
signal zahtjeva za prekid.
 CPU-memorija - CPU direktno pristupa memoriji.

Pricip rada manjih raĉunarskih sistema (mikroraĉunara) prikazan je na slici.

Princip U/I organizacije kod mikroraĉunara

Ovakvi sistemi se standardno organizuju oko jedinstvene magistrale. Svaki U/I ureĊaj ĉine
dva dijela:
 Kontroler - sadrţi najveći dio elektronike. Obiĉno se prikljuĉuje na sistemsku
magistralu da bi se ostvarila veza sa CPU-om ili memorijom.
 Drajv - elektronika koja vrši upravljanje specifiĉnim ureĊajem. Prihvata komande od
strane kontrolera i obavlja zahtijevani tip aktivnosti. O uspješnosti izvršenja aktivnosti
obavještava kontroler preko statusnih signala. Stanje statusnih signala ukazuje da li je
drajv spreman za prenos ili ne i dr.

Sistemska magistrala, kao što je prikazano na slici, ne koristi se samo od strane U/I kontrolera
nego od strane CPU-a koji pribavlja iz memorije instrukcije i podatke. Šta se dešava kada
CPU i U/I kontroler ţele da koriste sistemsku magistralu u isto vrijeme? Posebna elektronika
koja se zove arbitar magistrale odluĉuje kome će dodijeliti pravo korišćenja magistrale, tj. ko
postaje gospodar magistrale (bus master). U principu, U/I ureĊaji imaju veći prioritet u
odnosu na CPU, jer se diskovi i drugi pokretni ureĊaji ne mogu zaustavljati. Kada je U/I
aktivnost u toku, neki od U/I kontrolera je postao gospodar magistrale, CPU se prebacuje u
stanje ĉekanja (wait state) i ostaje u tom stanju sve dok U/I kontroler ne oslobodi magistralu.

MAGISTRALE

Magistrala je komunikaciona putanja koja povezuje dva ili više ureĊaja. Kljuĉna
karakteristika magistrale je da je ona dijeljeni prenosni medijum. Više ureĊaja se prikljuĉuje
na magistralu, a signal koji prenosi bilo koji ureĊaj na raspolaganju je za prijem svim ostalim
ureĊajima prikljuĉenim na magistralu.
Magistrala se u opštem sluĉaju sastoji od više komunikacionih putanja, ili linija. Svaka linija
je sposobna da prenosi signale koji predstavljaju binarne cifre 1 i 0. U toku vremena,
sekvenca binarnih cifara moţe da se prenese preko jedne linije. Uzete zajedno, više linija
magistrale moţe da se upotrijebi da istovremeno (paralelno) predaju binarne cifre. Na primjer,
8-bitna jedinica podataka moţe da se preda preko osam linija magistrale.
Raĉunarski sistemi sadrţe izvjestan broj razliĉitih magistrala koje obezbjeĊuju putanje izmeĊu
komponenata na raznim nivoima hijerarhije raĉunarskog sistema. Magistrala koja povezuje
glavne raĉunarske komponente (procesor, memoriju, U/I) zove se sistemska magistrala.
Najĉešće raĉunarske strukture za meĊusobno povezivanje zasnivaju se na upotrebi jedne
sistemske magistrale ili više njih.

STRUKTURA MAGISTRALE

Sistemska magistrala se u opštem sluĉaju sastoji od oko pedeset do više stotina posebnih
linija. Svakoj liniji dodjeljuje se posebno znaĉenje ili funkcija. Mada postoji mnogo
razliĉitih konstrukcija magistrala, na svakoj od njih linije mogu da se klasifikuju u tri
funkcionalne grupe: linije za podatke, adresne i upravljaĉke linije.
Slika 8.1. Šema meĊusobnog povezivanja magistrale

Linije podataka obezbjeĊuju putanju za pomjeranje podataka izmeĊu modula sistema. Te


linije se zajedno zovu magistrala podataka. Magistrala podataka moţe da se sastoji od 32,
64, 128 ili ĉak više odvojenih linija, na šta se poziva kao na širinu magistrale podataka. S
obzirom na to da jedna linija moţe da prenosi samo 1 bit istovremeno, broj linija odreĊuje
koliko bitova moţe da se prenosi odjednom. Širina magistrale podataka je kljuĉni ĉinilac u
odreĊivanju ukupne performanse sistema. Na primjer, ako je magistrala podataka širine 32
bita, a svaka instrukcija duga 64 bita, onda procesor mora da pristupa memoriji dva puta za
vrijeme svakog instrukcijskog ciklusa.
Adresne linije se koriste da oznaĉe izvor ili odredište podataka na magistrali podataka. Na
primjer, ako procesor ţeli da ĉita rijeĉ (od 8, 16 ili 32 bita) podataka iz memorije, on stavlja
adresu ţeljene rijeĉi na adresne linije. Jasno, širina adresne magistrale odreĊuje maksimalno
moguć kapacitet memorije sistema. Pored toga, adresne linije se obiĉno koriste i za
adresiranje U/I portova. Bitovi višeg reda se uglavnom koriste da se izabere odreĊeni modul
na magistrali, a bitovi niţeg reda da se izabere memorijska lokacija ili U/I port unutar
modula. Na primjer, na 8-bitnoj adresnoj magistrali, adrese 01111111 i niţe bi mogle da se
odnose na memorijski modul (modul 0) sa 128 rijeĉi memorije, a adrese 10000000 i više bi
mogle da se odnose na ureĊaje prikljuĉene na U/I modul ( modul 1).
Upravljačke linije se koriste da bi se upravljalo pristupom i upotrebom linija za podatke i
adrese. S obzirom na to da linije za adrese i podatke dijele sve komponente, one moraju da
budu sredstvo za upravljanje njihovom upotrebom. Upravljaĉki signali predaju i komandne i
vremenske informacije izmeĊu modula sistema. Vremenski signali ukazuju na validnost
informacija o podacima i adresama. Komandni signali odreĊuju operacije koje treba da se
izvedu. Tipiĉne upravljaĉke linije ukljuĉuju:

 Upis u memoriju: prouzrokuje da se podatak na magistrali upiše u adresiranu


lokaciju.
 Čitanje iz memorije: prouzrokuje da se podatak iz adresirane lokacije postavi na
magistralu.
 U/I upis: prouzrokuje da podatak na magistrali izaĊe na adresirani U/I port.
 U/I čitanje: prouzrokuje da se podatak iz adresiranog U/I porta postavi na magistralu.
 Prenos ACK: pokazuje daje podatak prihvaćen sa magistrale, ili postavljen na nju.
 Zahtjev za magistralu: pokazuje da je modulu potrebno da dobije upravljanje nad
magistralom.
 Odobrenje magistrale: pokazuje da je modulu koji je to zahtijevao odobreno
upravljanje nad magistralom.
 Zahtjev za prekidom: pokazuje daje prekid neriješen.
 Prekid ACK: potvrĊuje daje neriješen prekid prepoznat.
 Clock: koristi se za sinhronizaciju operacija.
 Reset: inicijalizuje sve module.

Operacija magistrale odvija se na sljedeći naĉin. Ako jedan modul ţeli da pošalje podatak
drugom modulu, on mora da uradi dvije stvari:

a. da dobije upotrebu magistrale i


b. da prenese podatak preko magistrale.

Ako jedan modul ţeli da zatraţi podatak od drugog modula, on mora da dobije upotrebu
magistrale i da prenese zahtjev drugom modulu preko odgovarajućih upravljaĉkih i adresnih
linija. Zatim on mora da ĉeka da drugi modul pošalje podatak.

You might also like