You are on page 1of 166

Univerzitet u Novom Sadu

Fakultet tehnikih nauka


Departman za energetiku, elektroniku i telekomunikacije
Katedra za elektroniku

UVOD U DIGITALNU I MIKRORAUNARSKU


ELEKTRONIKU

Beleke sa predavanja
#01

Pripremio: prof. dr Veljko Malbaa


Novi Sad, mart 2007. godine
Brojni sistemi

Pozicioni brojni sistem sa osnovom b ima skup od b cifara {0, 1, ... , b-1}. Celi broj u pozicionom
brojnom sistemu sa osnovom b predstavlja se nizom od n cifara:

cn-1 cn-2 ... c1 c0

pri emu ci {0, 1, ... , b-1}, i = 0, 1, ... , n-1.

Vrednost broja dobija se mnoenjem svake cifre sa teinom mesta (pozicije) na kome se cifra
nalazi i sabiranjem dobijenih proizvoda. Teina mesta i u brojnom sistemu sa osnovom b je bi pa je
vrednost broja:

cn-1 bn-1 + cn-2 bn-2 + ... + c1 b1 + c0 b0

U ovom predmetu koristiemo tri brojna sistema:

decimalni,
binarni i
heksadecimalni brojni sistem.

Decimalni brojni sistem

Decimalni brojni sistem ima brojnu osnovu 10 i deset cifara koje oznaavamo sa 0, 1, 2, ... , 9. Na
primer vrednost broja 23710 izraunava se kao:

23710 = 2 102 + 3 101 + 7 100

Binarni brojni sistem

Binarni brojni sistem ima brojnu osnovu 2 i dve cifre koje oznaavamo sa 0 i 1. Na primer,
vrednost broja 10010112 izraunava se ne sledei nain:

10010112 = 1 26 + 0 25 + 0 24 + 1 23 + 0 22 + 1 21 + 1 20

Broj koji je predstavljen u binarnom brojnom sistemu prevodi se u decimalni brojni sistem na
osnovu definicije vrednosti broja u pozicionom brojnom sistemu:

10010112 = 1 26 + 0 25 + 0 24 + 1 23 + 0 22 + 1 21 + 1 20 =
= 1 64 + 0 32 + 0 16 + 1 8 + 0 4 + 1 2 + 1 1 =
= 64 + 0 + 0 + 8 + 0 + 2 + 1 = 7510

Jedan nain da se broj iz decimalnog brojnog sistema prevede u binarni brojni sistem je da se
decimalni broj sukcesivno celobrojno deli sa 2 i na osnovu ostatka formira broj u binarnom
brojnom sistemu. U ovom postupku obino se koristi tablica sa dve kolone, u levu kolonu upisuje

2
se rezultat celobrojnog deljenja decimalnog broja sa dva, a u desnu kolonu ostatak (koji moe biti
0 ili 1). Po zavretku postupka, niz ostataka iz desne kolone, kada se ita odozdo nagore, daje broj
u binarnom brojnom sistemu.

Na primer, kod prevoenja broja 2910 u binarni brojni sistem dobija se sledea tabela.

29
29 : 2 1
14 : 2 0
7:2 1
3:2 1
1:2 1
0

Tabela je popunjena na sledei nain:

29 : 2 = 14 i ostatak je 1 (14 se pie u sledeu vrstu sa leve strane, a ostatak 1 u desnu kolonu),
14 : 2 = 7 i ostatak 0 (7 se pie u sledeu vrstu sa leve strane, a ostatak 0 u desnu kolonu),
7 : 2 = 3 i ostatak 1,
3: 2 = 1 i ostatak 1,
1 : 2 =0 i ostatak je 1. Poto je u levoj koloni dobijena vrednost 0, postupak se zavrava.

U desnoj koloni, odozdo nagore proita se broj predstavljen u binarnom brojnom sistemu. Prema
tome, 2910 = 111012.

Heksadecimalni brojni sistem

Heksadecimalni brojni sistem (sa brojnom osnovom 16) uveden je radi kraeg predstavljanja
binarnih brojeva. U heksadecimalnom brojnom sistemu koristi se skup od 16 cifara {0, 1, 2, 3, 4, 5,
6, 7, 8, 9, A, B, C, D, E, F}.

Pretvaranje binarnog broja u heksadecimalni je jednostavno, jer svaka heksadecimalna cifra


zamenjuje niz od etiri binarne cifre. U sledeoj tabeli navedeno je prvih 16 decimalnih brojeva,
zatim isti brojevi predstavljeni jednocifrenim brojem u heksadecimalnom brojnom sistemu i u
desnoj koloni isti brojevi predstavljeni etvorocifrenim binarnim brojem.

brojni sistem
decimalni heksadecimalni binarni
0 0 0000
1 1 0001
2 2 0010
3 3 0011
4 4 0100
5 5 0101
6 6 0110
7 7 0111
8 8 1000
9 9 1001

3
10 A 1010
11 B 1011
12 C 1100
13 D 1101
14 E 1110
15 F 1111

Prevoenje celog pozitivnog broja iz binarnog u heksadecimalni brojni sistem obavlja se u dva
koraka: prvo se binarni broj podeli u grupe od po etiri binarne cifre, a zatime svaka grupa od etiri
binarne cifre zameni jednom heksadecimalnom cifrom. Delenje u grupe obavlja se sa desne strane
ulevo, a ukoliko poslednjoj grupi nedostaje cifara (ukoliko poslednja grupa na levoj strani ima
manje od etiri cifre) onda se dodaju cifre 0 dok se ne dobije grupa od etiri binarne cifre.

Na primer, binarni broj 10110100011101010112 prevodi se u heksadecimalni broj na sledei nain.

Grupisanjem cifara binarnog broja u grupe od po etiri binarne cifre (kree se od desne strane)
dobija se 101 1010 0011 1010 10112. Poto poslednja grupa (ili prva grupa ako se gleda sa leve
strane) ima samo tri binarne cifre dodajemo jednu cifru 0 i dobijamo: 0101 1010 0011 1010
10112.
Na osnovu gornje tabele svaku grupu od po etiri binarne cifre zamenjujemo sa po jednom
heksadecimalnom cifrom i dobijamo: 5A3AB16.

Prevoenje broja iz heksadecimalnog brojnog sistema u binarni brojni sistem vri se tako to se
svaka heksadecimalna cifa zameni sa po etiri binarne cifre, pri emu se zamena cifara vri na
osnovu gornje tabele. Na primer, heksadecimalni broj 3F0216 moe se predstaviti brojem 0011
1111 0000 0010 u binarnom brojnom sistemu. Kada izostavimo vodee 0 dobija se broj
111111000000102.

Broj koji je predstavljen u heksadecimalnom brojnom sistemu prevodi se u decimalni brojni sistem
na osnovu definicije vrednosti broja u pozicionom brojnom sistemu. Na primer, broj 2B0A16.

2B0A16 = 2 163 + B 162 + 0 161 + A 160 =


= 2 4096 + 11 256 + 0 16 + 10 1 =
= 8192 + 2816 + 10 = 1101810

Jedan nain za prevoenje broja iz decimalnog u heksadecimalni sistem je da se decimalni broj


prvo prevede u binarni, a zatim se broj iz binarnog prevodi u heksadecimalni.

4
Bulova algebra

U ovom predmetu koristiemo Bulovu algebru nad skupom od dva elementa, u kojoj su definisane
tri operacije i u kojoj vae aksiome Bulove algebre. Elemente skupa obeleavamo sa 0 i 1, tako da
je Bulova algebra definisana nad skupom B = {0, 1}.

Logike operacije

U Bulovoj algebri definisane su operacije logiko I, logiko ILI i logika negacija. Binarna
operacija logiko I obeleava se znakom ( ), esto se naziva logiko mnoenje i obeleava
znakom ( ). Znak logikog mnoenja moe da se izostavi, pod uslovom da to ne dovodi do
dvosmislenih izraza.

Binarna operacija logiko I preslikava parove elemanata iz skupa B = {0, 1} u logiku 1 samo ako
su oba elementa jednaka logikoj 1, a sve ostale parove preslikava u logiku 0. Pogodno je logiku
operaciju definisati tablicom u kojoj su na levoj strani navedene sve kombinacije parova elemenata
iz skupa {0, 1} a na desnoj strani vrednost koja se dobija primenom operacije logiko I nad tim
parovima elemenata . Sledea tablica definie operaciju logiko I.

parovi elemenata logiko I


0 0 0
0 1 0
1 0 0
1 1 1

Binarna operacija logiko ILI obeleava se znakom ( V ), a esto se zove logiko sabiranje i
obeleava znakom ( + ). Sledea tablica definie operaciju logiko ILI.

parovi logiko ILI


0 0 0
0 1 1
1 0 1
1 1 1

Logika negacija je unarna operacija i obeleava se stavljanjem crte iznad promeljive ili konstante,
a nekada se radi jednostavnosti negacija predstavlja znakom ( ) koji se stavlja ispred promenljive
ili konstante. Sledea tablica definie operaciju logika negacija.

elemenat logika negacija


0 1
1 0

5
Pored navedene tri osnovne operacije u Bulovoj algebri esto se koristi operacija ekskluzivno ILI
koja je definisana sledeom tablicom.

parovi ekskluzivno
ILI
0 0 0
0 1 1
1 0 1
1 1 0

Aksiome

U definisanju aksioma Bulove algebre koriste se konstante (logika 0 i logika 1) i promenljive,


obino obeleene malim slovima (na primer a, b i c ili x2, x1 i x0). Bulove promenljive mogu imati
vrednosti 0 ili 1. U Bulovoj algebri vae sledee aksiome.

1. a + (b + c) = (a + b) + c (asocijativnost operacije logiko ILI)


2. a+0=a (0 je jedinini elemenat za operaciju logiko ILI)
3. a+b=b+a (komutativnost operacije logiko ILI)
4. a + (a) = 1 (a i a su inverzni elementi u odnosu na logiko ILI)
5. a (b + c) = (a b) + (a c) (distributivnost operacije I nad operacijom ILI)
6. a (b c) = (a b) c (asocijativnost operacije logiko I)
7. a 1=a (1 je jedinini elemenat za operaciju logiko I)
8. ab=ba (komutativnost operacije logiko I)
9. a (a) = 0 (a i a su inverzni elementi u odnosu na logiko I)
10. a + (b c) = (a+ b) (a + c) (distributivnost operacije ILI nad operacijom I)

Bulove funkcije

Bulova funkcija f(xn-1, xn-2, ... , x1, x0), xi B = {0, 1}, i = 0, 1, ... , n-1, je preslikavanje iz n-
dimenzionalnog prostora B B ... B B u skup B:

f(xn-1, xn-2, ... , x1, x0): (B B ... B B) B

Vrednosti promenljivih (xn-1, xn-2, ... , x1, x0) u nekoj taki n- dimenzionalnog prostora B B ...
B B predstavljaju se nizom od n binarnih cifara koji se naziva slog. Poto skup B ima samo
dva elementa, relativno je jednostavno izlistasti sve slogove. Na primer, u 3-dimenzionalnom
prostoru svi slogovi su napisani u sledeoj tabeli.

indeks sloga slogovi


0 000
1 001
2 010
3 011
4 100
5 101

6
6 110
7 111

Slogovi se oznaavaju indeksom, koji predstavlja decimalnu vrednost binarnog broja koji odgovara
slogu.

Mi emo koristiti tablini i analitiki oblik predstavljanja Bulovih funkcija. U tablinom obliku
predstavljanja, navode se svi slogovi i vrednosti Bulove funkcije na odgovarajuim slogovima. Na
primer, Bulova funkcija f(x2, x1, x0) koja slogove u kojima ima tano jedna 1 preslikava u 1, a sve
ostale slogove u 0, predstavljena je sledeom tablicom.

indeks slogovi (x2, x1, x0) f(x2, x1, x0)


0 000 0
1 001 1
2 010 1
3 011 0
4 100 1
5 101 0
6 110 0
7 111 0

U analitikom obliku Bulova funkcija predstavlja se u obliku izraza. Izraz je niz promenljivih i/ili
konstanti (logika 0 i logika 1) koje su meusobno povezane logikim operacijama, pri emu na
svaki elemenat u izrazu moe biti primenjena logika negacija. Izraz moe da se formira od drugih
izraza, promenljivih i konstanti meusobno povezanih logikim operacijama.

Jednostavni izrazi su logiki proizvodi i logike sume. Logiki proizvod je niz promenljivih i/ili
konstanti meusobno povezanih logikom I operacijom, pri emu na svaku promenljivu ili
konstantu u nizu moe biti primenjena logika negacija. Primer logikog proizvoda je x2 (x1)x0.
Potpuni logiki proizvod je proizvod u kome se nalaze sve promenljive date Bulove funkcije.

Logika suma je niz promenljivih i/ili konstanti meusobno povezanih logikom ILI operacijom,
pri emu na svaku promenljivu ili konstantu u nizu moe biti primenjena logika negacija. Primer
logike sume je x2 + (x1) + x0. Potpuna logika suma je suma u kojoj se nalaze sve promenljive
date Bulove funkcije.

Primeri Bulovih funkcija predstavljenih u analitikom obliku:

f(x3, x2, x1, x0) = x3x1(x0) + (x2)(x2)x0 + x3


g(a, b, c) = (a)bc + ab + (b)c

Minimizacija Bulovih funkcija

Bulova funkcija nema jedinstven analitiki oblik, ve moe da se predstavi na razliite naine. Od
interesa je predstaviti Bulovu funkciju u najjednostavnijem obliku, koji daje najednostavniju
realizaciju funkcije. Na primer Bulova funkcija:

g(a, b, c) = (a)b + ab + (b)c

7
moe se primenom aksioma transformisati na sledei nain. Primenom distributivnosti operacije
logiko I nad operacijom logiko ILI, iz prva dva izraza moe se izvui promenljiva b:

g(a, b, c) = b (a + a) + (b)c

Primenom aksiome 4, izraz u zagradi je jednak 1:

g(a, b, c) = b 1 + (b)c

Poto je 1 jedinini elemenat za operaciju logiko I (aksioma 7), dobija se:

g(a, b, c) = b + (b)c

Na ovaj nain, nizom transformacija dobijen je oblik Bulove funkcije koji je jednostavniji od
poetnog oblika. Postoje posebne metode minimizacije Bulovih funkcije, ali ih neemo raditi u
ovom predmetu.

Prevoenje Bulovih funkcija iz tablinog u analitiki oblik

Ponekad je od interesa prevesti Bulovu funkciju iz tablinog u analitiki oblik. Postupak koji e
ovde biti objanjen sastoji se u predstavljanju Bulove funkcije u analitikom obliku koji se naziva
'suma potpunih proizvoda'.

Prevoenje se sastoji u pronalaenju potpunih proizvoda koji odgovaraju slogovima na kojima


funkcija ima vrednost 1 i zatim formiranja logike sume tako dobijenih proizvoda.

Na primer, posmatrajmo funkciju zadatu sledeom tablicom.

indeks x2 x1 x0 f(x2, x1, x0)


0 0 0 0 0
1 0 0 1 1
2 0 1 0 1
3 0 1 1 0
4 1 0 0 1
5 1 0 1 0
6 1 1 0 0
7 1 1 1 0

Funkcija f ima vrednosti 1 na slogovima 1, 2 i 4. Na slogu 1, vrednosti promenljivih su x2 = 0, x1


= 0 i x0 = 1. Potpuni proizvod formira se od svih promenljivih (u naem sluaju tri promenljive) s
tim to se na promenljivu koja ima vrednost 0 primeni logika negacija. Prema tome, slogu 1
odgovara potpuni proizvod (x2)(x1) x0. Lako se pokazuje da dobijeni izraz ima vrednost 1 samo
na slogu 1, dok na svim ostalim slogovima ima vrednost 0.

Na slian nain formiraju se potpuni proizvodi koji odgovaraju slogovima 2 i 4, pa funkcija f ima
sledei analitiki oblik:

f = (x2)(x1) x0 + (x2)x1(x0) + x2(x1) ( x0)

8
Prevoenje Bulovih funkcija iz analitikog u tablini oblik

Prevoenje Bulovih funkcija iz tablinog u analitiki oblik sastoji se su sistematskom


izraunavanju vrednosti Bulove funkcije za svaki slog. Uzmimo na primer funkciju koja ima
sledei analitiki oblik:

f(a, b, c) = ab + (a)c

Postupak se sastoji u listanju svih slogova, zamenom promenljivih njihovim pojedinanim


vrednostima na slogovima i zatim izraunavanju vrednosti funkcije na osnovu definicije logikih
operacija i aksioma Bulove algebre.

Na primer, na slogu sa indeksom 0, promenljive imaju vrednosti a=0, b=0 i c=0. Zamenom ovih
vrednosti u izrazu za funkciju f(a,b,c) dobijamo:

f(0, 0, 0) = 00 + (0)0 = 0 + 10 = 0 + 0 = 0

Na slogu sa indeksom 1, promenljive imaju vrednosti a=0, b=0 i c=1. Zamenom ovih vrednosti u
izrazu za funkciju f(a,b,c) dobijamo:

f(0, 0, 1) = 00 + (0)1 = 0 + 11 = 0 + 1 = 1

Daljom primenom ovog postupka na sve indekse i stavljanjem slogova i vrednosti funkcije u
tablicu, dobijamo tablini oblik funkcije f(a,b,c) = ab + (a)c:

indeks a b c f(a,b,c):
0 0 0 0 0
1 0 0 1 1
2 0 1 0 0
3 0 1 1 1
4 1 0 0 0
5 1 0 1 0
6 1 1 0 1
7 1 1 1 1

9
Univerzitet u Novom Sadu
Fakultet tehnikih nauka
Departman za energetiku, elektroniku i telekomunikacije
Katedra za elektroniku

UVOD U DIGITALNU I MIKRORAUNARSKU


ELEKTRONIKU

Beleke sa predavanja
#02

Pripremio: prof. dr Veljko Malbaa


Novi Sad, april 2007. godine
2. Digitalna logika kola

Logika kola

Logika kola koriste se za implementaciju logikih operacija nad ulaznim digitalnim signalima. U
praksi se koristi logika kola koja implementiraju logike operacije ILI, I, NE, NILI, NI i
ekskluzivno ILI. Logika kola predstavljaju se grafikim simbolima koji su prikazani na sledeim
slikama.

vrsta logikog kola grafiki simbol

x1
I kolo: y = x1 x0
x0

x1
ILI kolo: y = x1 + x 0
x0

NE kolo: x y= x

x1
NI kolo: y= x1 x0
x0

x1
NILI kolo: y= x1 + x0
x0

x1
ekskluzivno y= x1 x0
ILI kolo: x0

Parametri logikih kola

Za implementaciju savremenih digitalnih sistema koriste se elektronska digitalna logika kola koja
su napravljena od poluprovodnikih materijala. Kod ovih logikih kola logika 0 i logika 1
predstavljeni su opsegom napona signala na ulazima odnosno izlazima.

2
Od interesa su sledei parametri digitalnih elektronskih logikih kola.

Napon napajanja
Logiko kolo mora da ima jednosmerni napon napajanja i prikljuak na masu da bi moglo
da obavlja svoju funkciju. Napon napajanja obino se obeleava sa VCC ili VDD.

Struja napajanja
U toku rada kroz logiko kolo tee struja ICC (ili IDD ) od prikljuka za napajanje do mase.
Ova struja se menja u toku rada kola i zato se obino navodi srednja vrednost struje pri
zadatom reimu rada kola, na primer kada kolo radi na nekoj uestanosti ulaznih signala.

Disipacija
U toku rada logiko kolo troi elektrinu energiju koja se pretvara u toplotnu energiju i
zagreva kolo. Elektrina energija koju kolo troi naziva se disipacija i jednaka je
proizvodu napona i struje napajanja ED = VCC ICC. Od interesa je da disipacija bude to je
mogue manja kako bi se logiko kolo to manje grejalo.

Napon ulaznog signala


Napon ulaznog signala treba da bude u dozvoljenom opsegu da bi ga logiko kolo
prepoznalo kao logiku 0 ili logiku 1. Obino se navodi najvea vrednost ulaznog napona
Vu0max koju logiko kolo prepoznaje kao logiku 0, odnosno najmanja vrednost ulaznog
napona Vu1min koju logiko kolo prepoznaje kao logiku 1. Sve ulazne napone iz opsega (0,
Vu0max) logiko kolo prepoznaje kao logiku 0, a sve ulazne napone iz opsega (0, Vu1min)
prepoznaje kao logiku 1.

Struja na ulazu
Kada se na ulazni prikljuak logikog kola dovede signal koji je na logikoj 1, onda na
ulaznom prikljuku tee struja koja ima smer prema logikom kolu. Ako je na ulaznom
prikljuku logika 0, struja tee u suprotnom smeru. Kao parametar logikog kola obino
se navodi maksimalna vrednost Iu0max struje kada je na ulazu logika i maksimalna vrednost
Iu1max kada je na ulazu logika 1. Poeljno je da ulazna struja bude to je mogue manja,
kako bi logiko kolo to manje opteretilo generator ulaznog signala.

Napon izlaznog signala


U normalnim uslovima rada logiko kolo na izlazu daje napon u opsegu koji predstavlja
logiku 0 odnosno logiku 1. Obino se navodi najvea vrednost izlaznog napona Vi0max
kada je na izlazu logika 0, odnosno najmanja vrednost izlaznog napona Vi1min kada je na
izlazu logika 1.

Smisao ovog parametra je da proizvoa garantuje da e u normalnim uslovima rada


logiko kola na izlazu u logikoj 0 imati napon koji je jednak ili manji od Vi0max a u
logikoj 1 napo koji je jednak ili vei od Vi1min .

Struja na izlazu
Logiko kolo na svom izlazu moe da obezbedi struju koja je u logikoj 0 nije vea od
Ii0max a u logikoj 1 nije vea od Ii1max . Prema tome, logiko kolo na izlazu moe da se
optereti potroaem (na primer ulazom nekog drugog logikog kola) pod uslovom da struja
potreba potroau nije vee od Ii0max i Ii1max ako je na izlazu logika 0 i logika 1,
respektivno.

Margina uma

3
Margina uma pokazuje osetljivost logikog kola na umove koji mogu da se pojave u toku
rada logikog kola. Margina uma VM0 u logikoj 0 i margina uma VM1 u logikoj 1 zavise
od napona na izlazu i ulazu logikog kola i raunaju se za najnepovoljniji mogui sluaj:

VM0 = Vu0max Vi0max


VM1 = Vi1min Vu0min

Faktor grananja
Faktor grananja pokazuje koliko se logiko kolo moe opteretiti (koliku struju moe dati
na izlazu) a da jo uvek pravilno radi. Poto se po pravilu izlaz jednog logikog kola vee
na jedan ili vie ulaza drugih logikih kola, faktori grananja F0 (u logikoj 0) i F1 (u
logikoj 1) jednaki su najveem broju ulaza koji mogu da se veu na izlaz logikog kola u
najnepovoljnijem moguem sluaju u logikoj 0 i logikoj 1, respektivno.

Faktori grananja jednaki su koliniku izlaznih i ulaznih struja logikog kola:

F0 = Ii0max / Iu0max
F1 = Ii1max / Iu1max

Za ukupni faktor grananja uzima se manja vrednost od F0 i F1 zaokruena na prvi manji


celi broj.

Vremensko kanjenje signala


Vremansko kanjenje signala pokazuje brzinu odziva logikog kola na promenu ulaznog
signala. Vremensko kanjenje meri se tako to promenimo napon signala za ulazu i
merimo vreme do promene napona signala na izlazu. Na primer, kod merenja kanjenja
logikog I kola sa dva ulaza, jedan ulaz drimo u stanju logike 0, a signal na drugom
ulazu menjamo sa niskog napona (logika 0) na visoki napon (logika 1) i zatim sa viskog
napona (logika 1) na niski napon (logika 0). Promena signala sa logike 0 na logiku 1
naziva se prednja ili uzlazna ivica, a promena sa logike 1 na logiku 0, zadnja ili silazna
ivica signala.

Vremensko kanjenje obino se meri od trenutka kada nastupi 50 % promene ulaznog


signla do trenutka kada nastupi 50% promene izlaznog signala, kao to pokazuje sledei
dijagram.

4
x1
y
x0 = 0

x1

50%
t

50%
t

tnv tvn

Vremena kanjenja uzlazne ivice tnv i silazne ivice tvn u optem sluaju su razliita i esto
se koristi srednje vreme kanjenja tk koje je jednako aritmetikoj sredini dva razlita
kanjenja:

tk = ( tnv + tvn ) / 2

Logike mree

Digitalna logika kola realizuju logike operacije nad ulaznim digitalnim signalima. Meusobnim
povezivanjem vie digitalnih logikih kola dobijaju se logike mree koje implementiraju Bulove
funkcije. U optem sluaju logika mrea moe da ima jedan ili vie ulaznih signala i jedan ili vie
izlaznih signala.

Logike mree dele se na kombinacione i sekvencijalne mree. Izlazi kombinacionih mrea zavise
od vrednosti ulaznih sinala u posmatranom trenutku. Izlazi sekvencijalnih mrea zavise od
vrednosti ulaznih signala u posmatranom trenutku i u svim prethodnih trenucima. U ovom odeljku
pokazaemo jednostavan postupak projektovanja kombinacionih logikih mrea na osnovu zadate
tablice istinitosti. Ukoliko je logika mrea zadata u obliku Bulove funkcije, onda se prvo izradi
tablica istinitosti i zatim nastavi postupak projektovanja.

U tablici istinitosti uoe se slogovi na kojima funkcija ima vrednost logike 1 i formiraju logiki
proizvodi koji implementiraju logike 1 na tim slogovima. Za svaki izlazni signal formiraju se
logike sume proizvoda koji implementiraju vrednosti logikih jedinica za taj izlazni signal.

Uzmimo kao primer Bulovu funkciju f(a,b,c) = ab + (a)c za koju smo ve pokazali da se prevodi
u sledeu tablicu istinitosti.

5
indeks a b c f(a,b,c)
0 0 0 0 0
1 0 0 1 1
2 0 1 0 0
3 0 1 1 1
4 1 0 0 0
5 1 0 1 0
6 1 1 0 1
7 1 1 1 1

Vidi se da funcija f(a,b,c) ima vrednost logike 1 na skupu slogova {1, 3, 5, 6}. Za svaki od ovih
slogova formiramo logiki proizvod tako to na ulaze logikog I kola dovedemo originalni
(neinvertovani) signal ako je vrednost tog signala u slogu jednaka logikoj 1, a invertovani signal
ako je vrednost signal u slogu jednaka logikoj 0. U sledeoj tabeli dati su svi slogovi i Bulov izraz
koji opisuje nain formiranja logikog proizvoda.

indeks a b c proizvod
1 0 0 1 abc
3 0 1 1 abc
6 1 1 0 abc
7 1 1 1 abc

Za implementaciju logikih proizvoda koristimo logika I kola za tri ulaza (jer imamo tri ulazna
signala, a, b i c). Invertovane vrednosti ulaznih signala dobijamo korienjem invertora. Na
sledeoj slici prikazane su implementacije zahtevanih logiih proizvoda.

6
a

b abc

b abc

b abc

b abc

Za logiku sumu etiri logika proizvoda koristi se logiko ILI kolo sa 4 ulaza. Naravno, umesto da
se formiraju invertovani ulazni signali posebno za ulaze svakog logikog I kola, bolje je invertovati
sve ulazne signale i zatim na ulazima logikih I kola po potrebi koristiti neinvertovane ili
invertovane signale. Kompletna logika mrea koja implementira funkciju f prikazana je na
sledeoj slici.

7
a b c

abc

abc

abc

abc

8
Univerzitet u Novom Sadu
Fakultet tehnikih nauka
Departman za energetiku, elektroniku i telekomunikacije
Katedra za elektroniku

UVOD U DIGITALNU I MIKRORAUNARSKU


ELEKTRONIKU

Beleke sa predavanja #03:

Diodna logika kola

Pripremio: prof. dr Veljko Malbaa


Novi Sad, mart 2008. godine
Poluprovodnike diode

isti poluprovodnik, kao to je silicijum, slabo provodi elektrinu struju. Ako se istom
poluprovodniku dodaju primese drugih elemenata, onda u zavisnosti od vrste primese u
poluprovodnik moe da se pojavi viak ili manjak slobodnih elektrona. Dodavanje primesa vri se
na razliite naine, na primer postupkom difuzije.

Ukoliko u delu provodnika sa primesom postoji viak elektrona, takav deo naziva n poluprovodnik
(ili poluprovodnik n tipa), a ukoliko ima manjak elektrona, takav deo se naziva p polupravodnik
(ili poluprovodnik p tipa).

Poluprovodnika elektronska kola prave se tako to se na povrini poluprovodnika prave


geometrijske kombinacije delova poluprovodnika p i n tipa. Povrina poluprovodnika na kojoj se
dodiruju delovi p i n tipa naziva se PN spoj. PN spojevi imaju zanimljivu osobinu da elektrinu
struju provode u samo jednom smeru, od poluprovodnika p tipa prema poluprovodniku n tipa.

Na povrinu poluprovodnika naparavaju se tanki metalni slojevi koji slue kao kontakti za delove
poluprovodnika na kome su napareni. Na ove kontake mogu se zalemiti tanki metalni provodnici
koji se koriste za spoljne prikljuke poluprovodnikog elektronskog kola.

Na Slika Error! No text of specified style in document..1 prikazan je poluprovodnik na kome su


naparene primese i formirani delovi polupravodnika p i n tipa koji se meusobno dodiruju i
formiraju PN spoj. Na delove poluprovodnika p i n tipa napareni su metalni slojevi na koje su
privreni spoljni kontakti.

spoljni kontakti
napareni sloj metala

p tip n tip
poluprovodnik na
kome su napareni
delovi p i n tipa
poluprovodnik
bez primesa PN spoj

Slika Error! No text of specified style in document..1: Primer poluprovodnika sa delovima p i n


tipa, PN spojem i metalnim kontaktima
Poluprovodnika struktura prikazana na Slika Error! No text of specified style in document..1
provodi struju samo sa leve strane (na kojoj je poluprovodnik p tipa) na desnu stranu (na kojoj je
poluprovodnik n tipa) i naziva se poluprovodnika dioda. esto se radi jednostavnosti ne crta deo
poluprovodnika na kome nema primesa, kao to je to prikazano na Slika Error! No text of
specified style in document..2, levo. Na desnoj strani Slika Error! No text of specified style in
document..2 prikazan je grafiki simbol diode.

2
anoda katoda

anoda katoda
p tip n tip

Grafiki simbol diode


smer provoenja struje

Slika Error! No text of specified style in document..2: Struktura poluprovodnike diode (levo) i
grafika oznaka (desno)

Poluprovodnika dioda je nelinearni elemenat ije osobine zavise od polariteta i veliine


prikljuenog napona. Ukoliko je na anodu (u odnosu na katodu) prikljuen pozitivan napon,
kaemo da je dioda direktno polarizovana, a ako je na anodi negativan napon, dioda je inverzno
polarisana.

Mi emo koristiti pojednostavljeni model ponaanja diode, odnosno smatraemo da inverzno


polarisana dioda ne provodi struju, a direktno polarisana dioda ima unutranju otpornost jednaku 0
i pad napona priblino 0.7 V. Za potrebe analize u ditigalnim logikim kolima esto smatramo da
je pad napona na direktno polarisanoj diodi jednak 0 V.

Na sledeoj slici levo, prikazano je jednostavno logiko kolo u kome je dioda direktno polarisana,
pa je napon na diodi jednak Vi = 0.7V. Lako je izraunati da je struja IR kroz otpornik jednaka:

Vcc 0.7V
IR =
R

Obino kaemo da kada je dioda direktno polarisana onda je na diodi niski napono ili logika 0.
+ Vcc + Vcc

R R

Vi = 0,7 V Vi = Vcc

D D

Direktno polarisana dioda Inverzno polarisana dioda

Na gornjoj slici desno prikazana je inverzno polarisana dioda. Poto inverzno polarisana dioda ne
provodi struju, struja kroz IR kroz otpornik R jednaka je 0, pa je pad napona na otporniku takoe
jednak 0, to znai da je izlazni napon Vi jedan naponu napajanja Vcc. Drugim reima u ovom
kolu dioda je inverzno polarisana, pa je na izlazu visoki napon ili logika 1.

3
Diodna logika kola

Logike operacije I i ILI mogu se na jednostavan nain realizovati primenom dioda i otpornika. U
ovom odeljku ukratko emo opisati princip rada diodnih logikih kola sa dva ulaza.

Sledea slika, pod (a), prikazuje elektrinu emu diodnog I kola sa dva ulaza, x1 i x0, i jednim
izlazom y. Jednostavnom analizom pokazuje se da ako je ulaz x1 ili x0 ili ako su oba ulaza na
logikoj 1 (visokom naponu) ona je ili jedna ili su obe diode direktno polarisane i na izlazu imamo
visoki napon odnosno logiku 1. Tek ako su oba ulaza na niskom naponu (logike 0) obe diode su
inverzno polarisane i preko otpornika na izlazu je niski napon odnosno logika 0.

Vcc

R x1 x0 y
0 0 0
ulaz x1 izlaz y 0 1 0 x1 y
1 0 0 x0
ulaz x0 1 1 1
a) b) c)

Diodno I kolo sa dva ulaza (a), tablica istinitosti (b) i grafiki simbol (c)

Ako je na ulazu x1 niski napon (logika 0), onda je dioda koja je vezana na taj ulaz direktno
polarisana preko otpornika R. Napon na anodi jednak je naponu direktno polarisane diode, koji je
dovoljno mali da se moe smatrati logikom 0. Poto se sa anode uzima izlazni napon, u ovom
sluaju je izlaz y na logikoj 0. Treba primetiti da izlaz y ne zavisi od naponskog nivoa na ulazu
x0.

Na slian nain, logika nula na ulazu x0 daje na izlazu y logiku 0 bez obzira na naponski nivo
ulaza x1. Prema tome, moe se zakljuiti da logika nula na ulazu x1 ili na ulazu x0 ili na oba ulaza
istovremeno daje logiku 0 na izlazu y. Tek kada su oba ulaza x1 i x0 na visokim naponima,
odnosno na logikim 1, obe diode e biti inverzno polarisane, nema struje pa prema tome nema ni
pada napona na otporniku R i izlaz y je na visokom naponskom nivou, odnosno na logikoj 1.

Tablica istinitosti I kola, prethodna slika, pod (b), sadri sve kombinacije logikih nivoa ulaza x1 i
x0 i logike nivoe izlaza y koji se dobijaju za svaku od kombinacija ulaznih promenljivih. Ista slika
pod (c) prikazuje grafiki simbol koji se koristi za predstavljanje I kola sa dva ulaza. Kolo sa, na
primer, tri izlaza imalo bi tri ulazna prikljuka sa leve strane simbola.

Na slian nain moe da se realizuje diodno logiko ILI kolo, slika dole pod (a), koje se od
prethodnog razlikuje po tome to su diode suprotno okrenute i to je izlaz preko otpornika R vezan
na masu. Visoki napon (logika 1) na bilo kom ulazu direktno polarie diodu vezanu na taju ulaz,
pa je na izlazu y visoki
(a) napon (logika 1), pod uslovom (b)da se zanemari pad napona na
(c) diodi. Na
izlazu se dobija niski napon (logika 0) samo ako su oba ulaza na niskom naponu (logikim 0). U
tom sluaju obe diode su inverzno polarisane, nema struje niti pada napona na otporniku R, te je
napon na izlaz na potencijalu mase (niski napon ili logika 0).

4
ulaz x1 izlaz y

x1 x0 y
ulaz x0 0 0 0
0 1 1 x1 y

R 1 0 1 x0
1 1 1

(a) (b) (c)

Diodno logiko ILI kolo (a), tablica istinitosti (b) i grafika oznaka (c)

Tablica istinitosti ILI kola prikazuje ista slika pod (b) u kojoj su navedene kombinacije logikih
nivoa ulaza x1 i x0 i logiki nivoi izlaza y. Na desnoj strani, pod (c), prikazan je grafiki simbol
koji se koristi za predstavljanje ILI kola sa dva ulaza.

Diodna logika kola ne poseduju elemente koji imaju negativno pojaanje i zato ne mogu da
realizuju logiku negaciju. Poto logika I i ILI kola ne ine bazis, pomou ovih kola ne moe da
se realizuje proizvolja Bulova funkcija.

5
Univerzitet u Novom Sadu
Fakultet tehnikih nauka
Departman za energetiku, elektroniku i telekomunikacije
Katedra za elektroniku

UVOD U DIGITALNU I MIKRORAUNARSKU


ELEKTRONIKU

Beleke sa predavanja #04:

Tranzistorsko- tranzistorska logika kola (TTL)

Pripremio: prof. dr Veljko Malbaa


Novi Sad, mart 2008. godine
Bipolarni tranzistori

Bipolarni tranzistori su poluprovodnike komponente sa dva PN spoja. Tranzistori mogu biti


formirani tako da poluprovodnik P tipa bude u sredini a poluprovodnici N tipa sa strane (slika dole
levo) ili obratno (slika dole desno). Prema redosledu tipova poluprovodnika bipolarni tranzistori se
nazivaju NPN (slika dole levo) ili PNP (slika dole desno). Na slici su prikazane grafike oznake
NPN i PNP tranzistora.

emiter (E)
kolektor (C)

p E
n C
tip tip
baza (B) B
baza (B) p B n
tip tip

n p
tip C
tip E

emiter (E) kolektor (C)

PNP tranzistor
NPN tranzistor

Tranzistor ima tri prikljuka koji se dobijaju nanoenjem tankog sloja metala na poluprovodnike.
Srednji prikljuak naziva se baza (B), a prikljuci sa strane su kolektor (C) i emiter (E).

Elektrine karakteristike bipolarnih tranzistora razmotriemo na primeru NPN tranzistora, a slina


analiza moe se primeniti na PNP tranzistor. NPN tranzistor polarie se vezivanjem kolektora preko
otpornika Rc na napon napajanja Vcc koji je pozitivan u odnosu na emiter, slika dole levo. Na bazu
se preko otpornika Rb dovodi ulazni napon Vb.

C
+ Vcc

n
Rc Ib
p

Rb B
Vb n

Ic

Struja koja tee od kolektora, kroz bazu do emitera, naziva se kolektorska struja i oznaava sa Ic.
Bazna struja Ib tee od baze prema emiteru, slika gore desno. Poto je spoj kolektor baza inverzno
polarisan struja od kolektora prema bazi jednaka je 0. Ukupna emiterska struja Ie tranzistora
jednaka sumi bazne i kolektorske struije (Ie = Ib + Ic).

2
Bipolarni tranzistor ima osobinu da kada se kroz direktno polarisan spoj baza emiter pusti da tee
struja Ib, onda i struja Ic poinje da tee. to je vea struja Ib to je vea i struja Ic, pa se ak
pokazuje da male promene struje Ib dovode do velikih promena struje Ic. Drugim reima, bipolarni
tranzistor ponaa se kao strujni pojaava i pojednostavljeno moemo uzeti da je priblino Ic = Ib,
gde je koeficijent strujnog pojaanja tranzistora.

Bipolarni tranzistor obino koristimo kao pojaava napona sa negativnim pojaanjem, slika dole,
pri emu uzimamo da je ulazn napon Vb a izlazn napon na kolektoru Vc. Ulazni napon Vb i izlazni
napon Vc raunaju se u odnosu na masu, a poto je emiter spojen na masu, ovakva veza tranzistora
naziva se 'stepen za zajednikim emiterom'.

Kada je je napon Vb manji od priblino 0.6V, bazna struja Ib jednaka je 0, pa je i kolektorska struja
Ic jednaka 0. Poto je u tom sluaju pad napona na otporniku Rc jednak 0, onda je izlazni napon Vc
jednak naponu napajanja Vcc.
+ Vcc

Rc Ic

Vc
Rb
Vb

Ib

Kada poveavamo ulazni napon Vb, struja Ib poinje da tee, pa poinje da tee i struja Ic. Poto je
struja Ic vea od 0, pad napona na Rc takoe je vei od 0, pa izlazni napon Vc poinje da se
smanjuje. Elektrino kolo sa tranzistorom, prikazano na gornjoj slici, ulazi u aktivni reim u kome se
pokazuje efekat negativnog pojaanja izlaznog napona u odnosu na ulazni napon. U aktivnom reimu
rada malo poveanje ulaznog napona Vb dovodi do poveanja struje Ib, to dovodi do velikog
poveanja struje Ic (za faktor strujnog pojaanja ), to ima za posledicu veliko poveanje pada
napona na otporniku Rc i time do velikog smanjenja izlaznog napona Vc.

Dakle, sa poveanjem napona Vb dolazi do smanjenja izlaznog napona Vc, i obratno, kada se napon
Vb smanjuje, po istom principu izlazni napon Vc se poveava. Naravno, poveanje odnosno
smanjenje izlaznog napona Vc ima svoje granice, jer ovaj napon ne moe da poraste iznad Vcc niti da
se smanji ispod 0V. Ve smo videli da je izlazni napon jednak Vcc kada je ulazni napon manji od
0.6V jer je tada bazna struja Ib jednaka 0, pa je i kolektorska struja Ic jednaka 0. Kaemo da je u
ovom sluaju tranzistor zakoen.

Ako poveavamo baznu struju, poveava se kolektorska struja i smanjuje napon na kolektoru Vc.
Napon Vc moe da se smanji do priblino 0.2 V kada tranzistor ulazi u zasienje, stanje u kome
dalje poveanje bazne struje ne poveava kolektorsku struju niti dovodi do daljeg smanjenja Vc.

U digitalnoj elektronici zainteresovani smo za reim rada u kome je tranzistor ili zakoen ili u
zasienju. Ovaj nain rada jo se naziva 'prekidaki reim' jer se tranzistor priblino ponaa kao
prekida: ako je ulazni napon Vb nizak, tranzistor je zakoen, ponaa se kao otvoreni prekida i ne
provodi kolektorsku struju, a kada je ulazni napon Vb visok, tranzistor je u zasienju, ponaa se kao
zatvoreni prekida i provodi maksimalnu kolektorsku struju, koja je jednaka Ic =(Vcc 0.2V)/Rc.

3
Logika negacija

Logika negacija moe se realizovati primenom NPN tranzistora u stepenu sa zajednikim emiterom,
koji radi u prekidakom reimu, Slika 4.3 (a). Niski napon (logika 0) na ulazu x dri tranzistor u
zakoenom stanju, te je struja kroz kolektorski otpornik jednaka nuli. U tom sluaju je i pad napona
na otporniku R nula, pa je izlaz y na naponu napajanja Vcc, odnosno na visokom naponu (logikoj
1). Obratno, visoki napon (logika 1) na ulazu x dri transistor u zasienju, pa je izlazni napon y
jednak naponu kolektor-emiter zasienog tranzistora. Kako je ovaj napon mali (oko 0.2V), izlaz y je
na niskom naponu, odnosno na logikoj 0.
+VCC

R
izlaz y
ulaz x x y x y
0 1
1 0

(a) (b) (c)


Slika 4.3: Tranzistorski stepen koji realizuje logiku negaciju, tablica istinitosti i grafika oznaka
Prema tome, ovaj tranzistorski stepen na izlazu y daje logiku 1 kada je na ulazu x logika 0, a na
izlazu y daje logiku 0 kada je na ulazu logika 1, te prema tome realizuje logiku negaciju ili
logiku NE operaciju. Slika 4.3 (b) prikazuje tablicu istinitosti, a slika 4.3 (c) grafiki simbol
logikog NE kola. Digitalno kolo koje realizuje logiku negaciju naziva se invertor.

Logiko NI kolo

Logika kola spreu se sekvencijalno radi realizacije sloenijih logikih funkcija, tako to se izlaz
jednog kola dovodi na jedan od ulaza nekog drugog kola. Na primer, izlaz diodno logikog I kola
moe se dovesti na ulaz logikog NE kola (invertora), slika 4.4 (a). Pogodnim izborom vrednosti
otpornika Rd i Rc postie se prekidaki rad tranzistora u invertoru. Logika 0 na bilo kom od ulaza
x1 ili x0, na izlazu diodnog kola (bazi tranzistora) daje logiku 0 i dri tranzistor u zakoenom
stanju, pa je na izlazu logika 1. Samo kada su oba ulaza na logikoj 1, izlaz diodnog kola (i time
baza tranzistora) bie na visokom naponu, tranzistor je u zasienju i izlaz y je na logikoj 0.
+VCC

Rc x1 x0 y x1
0 0 1 y
Rd x0
y 0 1 1
x1
1 0 1
1 1 0
x0

(a) (b) (c)

Slika 4.4: Sekvencijalna veza logikih I i NE kola (a), tablica istinitosti (b) i grafika oznaka
dobijenog za NI logiko kolo (c)

4
Sekvencijalna veza I i NE logikih kola esto se koristi kao osnovno logiko kolo ija operacija se
oznaava NE-I ili skraeno NI. Slika 4.5 (b) i (c) prikazuje tablicu istinitosti i grafiku oznaku NI
kola, respektivno.

Na slian nain, sekvencijalnom vezom ILI kola i invertora dobija se NILI kolo. Tablica istinitosti i
grafika oznaka NILI kola prikazuje slika 4.5 (a) i (b), respektivno.

x1 x0 y
0 0 1 x1
0 1 0 y
x0
1 0 0
1 1 0
(b)

Slika 4.5: Tablica istinitosti (a) i grafika oznaka (b) NILI kola

TTL logika kola

Logika kola koja su navedena u prethodnom odeljku, koja se sastoje od sekvencijalne veze diodnih
logikih kola i invertora, imaju slabe karakteristike i ne primenjuju se u praksi. Umesto njih koriste
se kola izraena u tranzistorsko-tranzistorskoj logici (TTL), koja imaju bolje osobine.

Slika 4.6 (a) prikazuje NI kolo sa dva ulaza realizovano u TTL tehnologiji. Prepoznaju se tri
stepena: ulazni (tranzistor TR1 i otpornik R1), pojaavaki (tranzistor TR2 i otpornici R2 i R3) i
izlazni (tranzistori TR3 i TR4, otpornik R4 i dioda).

+VCC

R2 R4 Vcc

R1
TR4 R1

y x1
x1
TR2
baza
TR1 TR3 tranzistora
x0 TR2
x0
R3

(a) (b)

Slika 4.6: NI kolo sa dva ulaza realizovano u TTL tehnologiji

5
Tranzistor TR1 sa dva emitera obavlja logiku I operaciju, po ugledu na diodno I kolo (koje je ranije
objanjeno). Funkcija ulaznog stepena lako se objanjava ako se PN spojevi predstave diodama,
slika 4.6 (b). Emiteri igraju ulogu ulaznih dioda koje zajedno sa otpornikom R1 obavljaju logiku I
operaciju. Uticaj diode koju predstavlja kolektorski spoj tranzistora TR1 moe se zanemariti. Prema
tome, rezultat logike I operacije nad ulazima x1 i x0 dovodi se na bazu tranzistora TR2.

Sa tranzistora TR2 vode se dva izlazna signala na baze izlaznih tranzistora: signal sa kolektora
upravlja bazom tranzistora TR4, a signal sa emitera upravlja bazom tranzistora TR3. Ova dva
signala su u protiv-fazi, tako da kada je jedan signal raste, drugi opada i obratno. Kada je na bazi
TR2 visoki napon, napon na emiteru ovog tranzistora je dovoljno visok da dri tranzistor TR3 u
zasienju. U isto vreme, napon na kolektoru TR2 je dovoljno nizak da tranzistor TR4 dri u
zakoenom stanju. Treba primetiti da dioda slui upravo da obezbedi da je u ovom stanju tranzistor
TR4 sigurno zakoen.

Sa druge strane, kada je na bazi TR2 niski napon, ovaj tranzistor je zakoen, njegov emiterski napon
je nizak i dri TR3 u zakoenju, a kolektorski napon je visok i dri TR4 u aktivnom reimu rada.
Tabela 4.1 ukratko opisuje radne napone i logiki nivo na izlaz NI kola za razliite kombinacije
logikih nivoa ulaza x1 i x0.

Tabela 4.1: Logiki nivoi i naponi NI kola u TTL tehnologiji


x1 x0 baza TR2 kolektor TR2 emiter TR2 TR3 TR4 y
0 0 niski napon visoki napon niski napon zakoen aktivan 1
0 1 niski napon visoki napon niski napon zakoen aktivan 1
1 0 niski napon visoki napon niski napon zakoen aktivan 1
1 1 visoki napon niski napon visoki napon zasien zakoen 0

2.1 TTL kola sa otvorenim kolektorom

Logika kola u TTL tehnologiji imaju veliki broj razliitih varijanti, koje u zavisnosti od tehnologije
izrade imaju razliite karakteristike u pogledu kanjenja, potronje elektrine energije, ulaznih i
izlazni parametara i tako dalje. Za nae izlaganje od posebnog interesa su konfiguracije izlaznih
stepeni TTL kola.

Izlazi dva ili vie TTL kola sa standardnim izlaznim stepenom, koji je opisan u prethodnom odeljku,
ne mogu se meusobno spajati. Ukoliko bi se na primer, izlazi dva TTL kola meusobno kratko
spojili, moglo bi se dogoditi da je jedan izlaz u stanju visokog, a drugi izlaz u stanju niskog napona.
U tom sluaju bi postojala veza od napona napajanja preko jednog izlaznog tranizistora koji je u
aktivnom reimu i jednog izlaznog tranzistora koji je u zasienju, na masu, to bi dovelo do velike
struje i jedan od izlaznih tranzistora bi bio oteen.

U praksi se koriste dve konfiguracije izlaznih stepeni TTL kola, koje imaju osobinu da se izlazi kola
mogu meusobno kratko spojiti:

TTL kola sa otvorenim kolektorom i


TTL kola sa trostatikim izlazima.

Izlazi dva ili vie logika kola u TTL tehnologiji sa otvorenim kolektorom mogu da se meusobno
kratko spoje i tako na zajednikom izlazu realizuje ekvivalentna logiki I operacija.

6
+VCC

R1 R2

x1 y oc
TR2
TR1 TR3
x0
R3
(b)
(a)

Slika 4.13: Logiko NI kolo sa otvorenim kolektorom (a) i grafika oznaka (b)

Slika 4.13 (a) prikazuje elektrinu emu logikog NI kola sa otvorenim kolektorom. Ova ema
razlikuje se od standardnog NI kola, slika 4.6 (a), samo po tome to je izostavljem tranzistor TR4 sa
emiterskom diodom i kolektorski otponik. Prema tome, izlazni stepen ovog logikog kola u stanju je
da dri logiku 0 preko tranzistora TR3, ali u sluaju da na izlazu treba da bude logika 1, tranzistor
TR3 je zakoen i napon na izlazu zavisi od ostalih logikih kola koja su vezana na zajedniki izlaz y.
U tipinoj konfiguraciji, na izlaz y vee se takozvani pull-up otpornik na napajanje i na taj nain
obezbeuje visoki napon kada je TR3 zakoen.

Slika 4.13 (b) prikazuje jednu od grafikih oznaka za logiko kolo sa otvorenim kolektorom na
izlazu. Oznaka se razlikuje od sline oznake za standardno kolo po slovima 'oc' za 'open collector'.
Umesto slova, esto se koristi zvezdica ili neka druga slina oznaka po dogovoru.

Osnovna prednost logikih kola sa otvorenim kolektorom je u tome to se izlazi vie takvih kola
mogu meusobno spojiti radi dobijanja ekvivalentnog logikog I kola na izlazu. Slika 4.14 (a)
prikazuje primer veze tri logika NI kola sa otvorenim kolektorom. Jednostavna analiza pokazuje da
ako je bilo koji od izlaza y0, y1 ili y2 na logikoj 0, zajedniki izlaz y je na logikoj 0. Samo u
sluaju da su sva tri izlaza y0, y1 ili y2 u logikoj 1 (odnosno u stanju kada je u svakom od izlaznih
stepeni logikih NI kola izlazni tranzistor zakoen), na zajednikom izlazu y preko otpornika R
imamo visoki napon, odnosno logiku 1.
Vcc

R
oc oc
x0 y0 x0 y0
y
x1 x1
oc oc y
x2 y1 x2 y1
x3 x3
oc oc
x4 y2 x4 y2
x5 x5

(a) (b)

Slika 4.14: Primer veze logikih kola sa otvorenim kolektorom (a) i ekvivalentno logiko kolo (b)

7
Prema tome, meusobnim spajanjem izlaza logikih kola sa otvornim kolektorom realizuje se
logika I operacija nad izlaznim signalima y0, y1 ili y2, odnosno kolo sa slike 4.14 (a) ponaa se kao
ekvivalentno kolo prikazano na slici 4.14 (b).

Kola sa otvorenim kolektorom mogu da se primene u sluaju da preko zajednike linije treba preneti
signal koji obavetava mikroprocesor da se desio neki dogaaj. Na primer, mikroprocesor obino
ima ulazni signal prekida INT kojim spoljne jedinice zahtevaju od mikroprocesora da prekine
izvravanje tekueg programa i pree na obradu nekog vanijeg dogaaja koji se desio u spoljnim
jedinicama.

Pretpostavimo da je ulazni signal INT mikroprocesora aktivan kada je na logikoj 0, i da imamo tri
spoljna podsistema, PS0, PS1 i PS2, koji logikom nulom na signalu INT obavetavaju
mikroprocesor o dogaajima koji zahteva trenutnu obradu. U ovom sluaju podistemi mogu da
koriste TTL kola sa otvorenim kolektorom, kao to to pokazuje sledea slika.

Vcc

R
INT micro-
oc oc oc processor

PS0 PS1 PS2

Slika 4.15: Primena kola sa otvorenim kolektorom za signalizaciju prekida preko zajednike ulazne
linije za prekid mikroprocesora

2.2 Logika kola sa trostatikim izlazima

Kod standardnih TTL logikih kola jedan od tranzistora u izlaznom stepenu je aktivan a drugi
zakoen ili obratno. Meutim, logika TTL kola izrauju se u varijanti koja omoguava istovremeno
prevoenje oba izlazna tranzistora u zakoeno stanje, pri emu se na izlaznom prikljuku dobija
veoma visoka impendansa. Prednost ovakvih kola je to se izlazi vie kola mogu meusobno spajati
a zatim pogodno upravljati kolima tako da samo jedno od logikih kola ima aktivan izlaz dok su
izlazi ostalih kola u stanju visoke impendanse. Na slian nain mogu da se realizuju i logika kola u
drugim tehnologijama, na primer CMOS logika kola.

Slika 4.16 (a) prikazuje principijelnu emu logikog NI kola sa dva ulaza u TTL tehnologiji i
odgovarajuu grafiku oznaku (b). Kolo se od stanadnog TTL kola razlikuje po dodatnom ulaznom
signalu d, koji se naziva 'dozvola izlaza'. Ukoliko je ulaz d na logikoj 1, kolo radi kao standardno
TTL logiko kolo i obavlja logiku NI operaciju. Meutim, kada je ulaz d na logikoj 0, onda stepen
za upravljanje izlaznim tranzistorima prevodi tranzistore TR3 i TR4 u zakoena stanja, pre emu se
na izlazu y dobija visoka impendansa.

8
+VCC dozvola izlaza +VCC
d
R4
R1 d
TR4
stepen za x0 y
x1 upravljanje x1
izlaznim y
TR1
tranzistorima
x0
TR3

(a) (b)

Slika 4.16: Principijelna ema logikog NI kola sa tri stanja (a) i grafika oznaka (b)
Tabela 4.1 prikazuje stanja ulaza x1 i x0, dozvole izlaza d, tranzistora TR3 i TR4 i izlaza y logikog
NI kola sa dva ulaza u TTL tehnologiji.
Tabela 4.1: Stanja ulaza, izlaznih tranzistora i izlaza NI kola sa tri izlazna stanja
x1 x0 Dozvola izlaza TR3 TR4 y
0 0 1 zakoen aktivan 1
0 1 1 zakoen aktivan 1
1 0 1 zakoen aktivan 1
1 1 1 aktivan zakoen 0
X X 0 zakoen zakoen visoka impendansa

U praksi se esto koriste logika kola sa tri stanja koja imaju po jedan ulaz i jedan izlaz. Ova kola se
prave u dve varijante, trostatiki konvertori, kod kojih je logiki nivo izlaza jednak logikom nivou
ulaznog signala i trostatiki invertori, kod kojih je izlaz jednak negaciji ulaznog signala.

Tabela 4.4: Tablica istinitosti konvertora


ulaz dozvola izlaza izlaz
1 1 1
0 1 0
x 0 visoka impendansa

Tabela 4.5: Tablica istinitosti invertora


ulaz dozvola izlaza izlaz
1 1 0
0 1 1
x 0 visoka impendansa

Konvertori i invertori koriste se za realizaciju bafera (drajvera) za zajednike linije za prenos signala
(magistrale). Babfer je niz konvertora ili invertora sa zasebnim izlaznim i izlaznim signalima i
zajednikim signalom dozvole. Sloeniji baferi mogu da rade u dva naina rada: jedan u kome se
skup signala prosleuje sa leve na desnu stranu i drugi u kome se, obratno, skup signala prosleuje
sa desne u levu stranu. Baferi (drajveri) pogodni su za realizaciju sloenih digitalnih sistema u
kojima su dva ili vie podsistema povezani zajednikim linijama za prenos signala (magistralama).

9
Univerzitet u Novom Sadu
Fakultet tehnikih nauka
Departman za energetiku, elektroniku i telekomunikacije
Katedra za elektroniku

UVOD U DIGITALNU I MIKRORAUNARSKU


ELEKTRONIKU

Beleke sa predavanja #05:

CMOS logika kola

Pripremio: prof. dr Veljko Malbaa


Novi Sad, mart 2008. godine
MOS FET

MOS (od engleskog Metal Oxide Semoconductor) FET (engleski Field Effect Transistor) ili jo
krae mosfet, sa indukovanim kanalom je polupravodniki element sa izuzetno dobrim osobinama
u prekidakom reimu rada.

Mosfet sa indukovanim kanalom sastoji se od dva dela poluprovodnika istog tipa izmeu kojih
moe da se indukuje veza (kanal) istog tipa. Na ovaj nain mogu da se naprave tranzistori sa
indukovanim p kanalom (p-mosfet) i tranzistori sa indukovanim n kanalom (n-mosfet). Na sledeoj
slici prikazana je struktura (levo) i grafika oznaka (desno) mosfeta sa indukovanim n kanalom.

G
S D
D

G
n tip n tip
p tip S

Struktura mosfeta sa indukovanim n kanalom


Mosfet sa indukovanim kanalom n-tipa formira se unoenjem primese koja stvara dva odvojena
dela poluprovodnika n tipa na poluprovodniku p tipa. Na povrine delova n tipa nanosi se tanki
slojevi metala koji predstavljaju prikljuke za sors S (engleski source) i drejn D (engleski drain).
Na povrini poluprovodnika izmeu sorsa i drejna nanosi se prvo tanak sloj oksida silicijuma, koji
predstavlja izolator, a zatim se na ovako formiran izolator nanosi sloj metala koji predstavlja gejt
G (engleski gate).

N-mosfet polarie se dovoenjem pozitivnog napona VGS izmeu drejna i sorsa i pozitivnog
napona VDS izmeu drejna i sorsa. Na sledeoj slici desno prikazana je elektrina ema n-mosfeta u
kolu sa zajednikim sorsom, gde je drejn polarisan preko otpornika RD i napona napajanja.

+ Vcc
G
S D
RD

n tip n tip
IDS
p tip
+
VGS

Sve dok je ulazni napon VGS mali, struja IDS priblino je jednaka 0 zato to je PN spoj izmeu
drejna i poluprovodnika p tipa inverzno polarisan. Meutim, kada se napon VGS dovoljno povea,
elektrino polje ispod gejta privue elektrone iz poluprovodnika p tipa koji indukuju kanal n tipa

2
izmeu drejna i sorsa, prethodna slika levo.Indukovani kanal omoguava protok struje IDS izmeu
drejna i sorsa. Ako je napon VGS dovoljno velik, kanal ima veoma malu otpornost, struja IDS dostie
maksimalnu vrednost i mosfet ulazi u oblast zasienja u kome je napon VDS veoma mali.

Ako se za ulaz uzme napon VGS a za izlaz napon na drejnu VDS onda se stepen sa n-mosfetom koji
je prikazan na prethodnoj slici, moe koristiti kao logiki invertor: niski ulazni napon (logika 0)
na izlazu daje visoki napon (logika 1) i obratno. Na slian nain moe da se napravi i logiki
invertor sa p-mosfetom.

P-mosfet ima istu konstrukciju kao i n-mosfet, samo to poluprovodnici n i p tipa zamenjuju svoja
mesta. Grafika oznaka p-mosfeta prikazana je na donjoj slici levo. P-mosfet polarie se naponima
VGS i VDS koji su negativni u odnosu na sors. Na sledeoj slici (desno) prikazana je elektrina ema
p-mosfeta u kolu sa zajednikim sorsom, koji je vezan na napon napajanja, a drejn polarisan preko
otpornika RD koji je vezan na masu.

+ Vcc

S
IDS
+

G
VG
RD

Umesto to napon gejta posmatramo u odnosu na sors, obino kao ulazni napon uzimamo VG,
napon gejta u odnosu na masu. Dok je ulazni napon VG visok (mali u odnosu na sors), struja IDS
jednaka je 0, pa je napon drejna VD jednak priblino 0. Niski ulazni napon VG (dovoljno negativan
u odnosu na sors), indukuje izmeu sorsa i drejna kanal p tipa, struja IDS poveava se do
maksimalne vrednosti i napon drejna VD priblino je jednak naponu napajanja VCC.

Prema tome, n-mosfet i p-mosfet u spoju sa zajednikim sorsom mogu da rade kao logiki
invertori: kada je napon na gejtu nizak, napon na drejnu je visok i obratno, kada je na gejtu visok
napon, na drejnu se dobija nizak napon.

CMOS invertor

U prethodnom odeljku pokazani su logiki invertori sa p-mosfetom i sa n-mosfetom. U ovom


odeljku prikazaemo CMOS (Complementary Metal Oxide Silicium) digitalna elektronskih kola,
kod kojih se isto kolo realizuje od n- i p-mosfetova i koja ne koriste otpornike.

Na sledeoj slici prikazan je CMOS invertora koji se sastoji od n-mosfeta (tranzistor MF1) i p-
mosfeta (tranzistor MF2). Analiza ovog kola je jednostavna: kada je ulaz x na logikoj 0 (niski
napon) MF1 je zakoen, a MF2 provodan, pa je na izlazu y preko MF2 visoki napon, odnosno
logika 1. Obratno, logika 1 (visoki napon) na ulazu x, dovodi MF1 u provodno, a MF2 u
zakoeno stanje, pa je na izlazu preko provodnog MF1 niski napon, odnosno logika 0.

3
MF2
x y

MF1

Analiza rada tranzistora u CMOS logikom invertoru sumirana je u sledeoj tabeli.

x MF1 MF2 y
0 zakoen provodan 1
1 provodan zakoen 0

Prednost CMOS konfiguracije logikog invertora je to je jedan od dva tranzistora zakoen za bilo
koju logiku vrednost ulaznog signala, to znai da je struja od napona napajanja, kroz MF2 i MF1
do mase praktino jednaka 0. Pored toga, ulazna struja gejta takoe je praktino jednaka 0, jer
izmeu ulaznih gejtova oba tranzistora i podloge postoji izolator koji ne dozvoljava struju gejtova.

CMOS NI i NILI kola

Struktura CMOS logikog NI kola sa dva ulaza prikazana je na sledeoj slici.

+ Vcc

MF3 MF4

x1 MF2

x0 MF1

CMOS NI kolo sastoji se od dva n-mosfeta (MF1 i MF2) koji su vezani na red i dva p-mosfeta
(MF3 i MF4) koji su vezani paralelno. Kao to je ve objanjeno, niski napon na gejtu dri n-
mosfete zakoene, a p-mosfete provodne. Visoki napon na gejtu ima suprotan efekat, n-mosfete
prevodi u provodno stanje, a p-mosfete dri zakoene. Prema tome, logika nula na ulazu x1 ili na
x0 ili na oba ulaza, dri bar jedan od tranzistora MF1 i MF2 zakoen, a bar jedan od tranzistora
MF3 i MF4 provodan. U tom sluaju na izlazu se dobija visoki napon, odnosno logika 1. Ako su
oba ulaza na visokom naponu, onda su MF3 i MF4 zakoeni, a MF1 i MF2 provodni, pa je na
izlazu niski napon ili logika 0. Sledea tabela ukratko opisuje stanja tranzistora i izlaza za
razliite kombinacije ulaza x1 i x0 .
Tabela: Stanja tranzistora u CMOS NI kolu za razliite kombinacije ulaza

4
x1 x0 MF1 MF2 MF3 MF4 y
0 0 zakoen zakoen provodan provodan 1
0 1 provodan zakoen provodan zakoen 1
1 0 zakoen provodan zakoen provodan 1
1 1 provodan provodan zakoen zakoen 0

Struktura CMOS logikog NILI kola sa dva ulaza prikazana je na sledeoj slici.

+ Vcc

x1 MF4

x0 MF3

MF1 MF2

CMOS NILI kolo sastoji se od dva paralelno vezana n-mosfeta (MF1 i MF2) i dva p-mosfeta (MF3
i MF4) koji su vezani na red. Logika 1 na ulazu x1 ili na x0 ili na oba ulaza, dri bar jedan ili oba
tranzistora MF1 i MF2 u provodnom stanju, a bar jedan od tranzistora MF3 i MF4 zakoen. Na
izlazu y dobija se niski napon, odnosno logika 0. Ako su oba ulaza na logikoj 0, onda su MF3 i
MF4 provodni, a MF1 i MF2 zakoeni, pa je na izlazu visoko napon ili logika 1. Sledea tabela
ukratko opisuje analizu rada NILI kola.

Tabela: Stanja tranzistora u CMOS NILI kolu za razliite kombinacije ulaza


x1 x0 MF1 MF2 MF3 MF4 y
0 0 zakoen zakoen provodan provodan 1
0 1 provodan zakoen zakoen provodan 0
1 0 zakoen provodan provodan zakoen 0
1 1 provodan provodan zakoen zakoen 0

CMOS kola sa trostatikim izlazima

Kao i kod TTL kola, CMOS kola mogu se implementirati sa trostatikim izlazima, odnosno tako
da na izlazu daje logiku 0, logiku 1 ili visoku impendansu. Na sledeoj slici levo prikazana je
struktura a desno grafika oznaka CMOS invertora sa trostatikim izlazom.

5
+ Vcc

MF4

MF3
d
x y x

MF2

d
MF1

U strukturi kola prepoznaje se osnovna elektrina ema standardnog CMOS invertora koji ine
mosfetovi MF2 i MF3. U kolu sorsa oba mosfeta stavljena su na red jedan mosfet (MF1) prema
masi i jedan mosfet (MF4) prema napajanju.

Kada je ulazni signal dozvole d na logikoj 1, mosfet MF1 je provodan i praktino predstavlja
kratak spoj. Preko invertora (koji se realizuje kao standardni CMOS invertor) signal dozvole d
invertuje se u logiku 0, koja dri MF4 takoe u prvodnom stanju, pa je praktino i ovaj mosfet
kratak spoj. Prema tome, u sluaju kada je d na logikoj 1 dobija se ekvivalentno kolo koje je
identino standardnom CMOS invertoru koji na izlazu y daje invertovani ulazni signal x.

U sluaju da je ulazni signal dozvole d na logikoj 0, oba mosfeta MF1 i MF4 su neprovodni, pa
bez obzira u kom su stanju mosfetovi MF2 i MF4, ne moe da tee struja od napona napanja prema
izlazu y, niti od izlaza y prema masi. U ovom sluaju kolo se ponaa kao da je izlaz y galvanski
odvojen od napona napajanja i mase i kaemo da predstavlja visoku imendansu.

Sledea tabela opisuje stanja mosfetova i izlaz invertora sa trostatikim izlazima u zavisnosti od
logikog stanja signala dozvole d. Oznaka '' oznaava da logiko stanje ulaza x odnosno stanja
tranzistora MF2 i MF3 nisu bitna.

d x MF1 MF2 MF3 MF4 y


0 -- zakoen -- -- zakoen visoka impendansa
1 0 provodan zakoen provodan provodan 1
1 1 provodan provodan zakoen provodan 0

CMOS invertor sa trostatikom izlazima moe se posmatrati kao obini invertor kod koga je na
izlazu galvanski prekida, kao to pokazuje sledea slika. Ako je signal dozvole na logikoj 0,
izlazni prekida je otvoren i izlaz y ponaa se kao prikljuak sa visokom impendansom. U ovom
sluaju stanje signala y zavisi od drugih signala koji su prikljueni na liniju za prenos signala y.

Ako je signal dozvole d na logikoj 1, sledea slika desno, prekida je zatvoren i izlaz y daje
logiku negaciju ulaznog signala x.

6
d=0 d=1
y y= x
x x

Trostatiki izlazi mogu se implementirati na svim CMOS logikim kolima. Posebno je od interesa
logiki konvertor, CMOS kolo koje na izlazu y daje ulazni signal x ako je signal dozvole d na
logikoj 1, a visoku impendansu ako je signal dozvole d na logikoj 0.

Sledea slika prikazuje grafiku oznaku logikog konvertora sa signalom dozvole i trostatikim
izlazima (levo), ekvivalentno kolo za signal dozvole d koji je u stanju logike 0 (u sredini) i
logike 1 (desno).

d=0 d=0 d=1


x y
x y x y=x

Izlaz y je u stanju
visoke impendanse

Parametri CMOS kola

Napon napajanja: do 18V


Ulazni napon u logikoj 0: od 0 do najvie jedne treine napona napajanja
Ulazni napon u logikoj 1: od dve treine napona napajanja do vrednosti napona napajanja
Izlazni napon u logikoj 0: najvie do priblino 10mV
Izlazni napon u logikoj 1: najmanje 10 mV ispod napona napajanja
Margina uma: oko jedne treine napona napajanja
Faktor grananja: oko 50
Ulazna struja: oko 10 nA
Izlazna struja: Iznad 1 mA

7
Univerzitet u Novom Sadu
Fakultet tehnikih nauka
Departman za energetiku, elektroniku i telekomunikacije
Katedra za elektroniku

UVOD U DIGITALNU I MIKRORAUNARSKU


ELEKTRONIKU

Beleke sa predavanja #06:

Standardne kombinacione logike mree

Pripremio: prof. dr Veljko Malbaa


Novi Sad, april 2008. godine
Kombinacione logike mree

Vezivanjem izlaza logikih kola na ulaze drugih logikih kola dobijaju se logike mree. Iako se
termin 'logiko kolo' odnosi na osnovna logika kola, koja realizuju osnovne logike operacije, u
argonu se termin 'logiko kolo' esto odnosi i na logiku mreu.

Logike mree dele se na kombinacione i sekvencijalne mree. Izlaz kombinacionih mrea zavisi
sam od vrednosti ulaza u posmatranom trenutku. Izlaz sekvencijalne logike mree zavisi od ulaza
u posmatranom trenutku i vrednosti ulaza u svim prethodnim trenucima, odnosno od predistorije
logike mree.

Iako se moe napraviti beskonano mnogo razliitih kombinacionih logikih mrea, u praksi su se
izdvojile neke standardne mree koje se pogodno koriste u realizaciji sloenih digitalnih sistema.
U ovom poglavlju emo izloiti neke standardne kombinacione mree koje se esto koriste u
praksi.

Dekoder

Dekoder je kombinaciona logika mrea sa n ulaznih signala i 2n izlaznih signala, koja ima osobinu
da je za svaku kombinaciju vrednosti ulaznih signala samo jedan od izlaznih signala na logikoj 1,
a svi ostali izlazi su na logikoj 0. Naravno da dekoder moe da se napravi tako da je izabrani izlaz
na logikoj 0, a svi ostali izlazi na logikoj 1.

Dekoder sa n ulaznih i 2n izlaznih signala naziva se ' n na 2n dekoder' ili krae ' n/2n dekoder'. Na
sledeoj slici prikazana je grafika oznaka 2/4 dekodera.

y0
x1 2/4 y1
dekoder
x0 y2

y3

Vrednosti izlaznih signala u zavisnosti od vrednosti ulaznih signala odreuje sledea tablica
istinitosti.

indeks x1 x0 y0 y1 y2 y3
0 0 0 1 0 0 0
1 0 1 0 1 0 0
2 1 0 0 0 1 0
3 1 1 0 0 0 1

Logika ema dekodera dobija se jednostavno: za svaku kombinaciju ulaznih signala treba
formirati po jedan logiki proizvod za svaki izlaz. Logika ema 2/4 dekodera prikazana je na
sledeoj slici.

2
x1 x0

x1 x0
y0

x1 x0
y1

x1 x0
y2

x1 x0
y3

Dekoder sa signalom dozvole

Dekoder koji je opisan u prethodnom odeljku uvek ima bar jedan izlaz koji je u stanju logike 1. U
nekim primenama trai se da svi izlazi budu u stanju logike 0, to se postie dodavanjem ulaznog
signala dozvole d. Kada je signal dozvole d u stanju logike 1, dekoder se ponaa na nain opisan
u prethodnom odeljku, a kada je signal dozvole d u stanju logike 0, onda su svi izlazi dekodera na
logikoj 0.

Na sledeoj slici prikazana je grafika oznaka 2/4 dekodera sa signalom dozvole d.

x1 y0
2/4 y1
x0
dekoder
y2
d
y3

Tablica istinitosti 2/4 dekodera sa signalom dozvole ima sledei izgled.

indeks d x1 x0 y0 y1 y2 y3
-- 0 -- -- 0 0 0 0
0 1 0 0 1 0 0 0
1 1 0 1 0 1 0 0
2 1 1 0 0 0 1 0
3 1 1 1 0 0 0 1

3
Logika ema 2/4 dekodera sa signalom dozvole dobija se od logike eme prikazane u
prethodnom odeljku, tako to se umesto logikih I kola sa dva ulaza koristi logika I kola sa tri
ulaza i na trei ulaz dovede signal dozvole d. Logika 0 na ulazu d prevodi izlaze svih logikih
kola na logiku 0. Kada se na ulaz d dovede logika 1, logika mrea se ponaa kao dekoder
opisan u prethodnom odeljku.

Logika ema 2/4 dekodera sa signalom dozvole prikazana je na sledeoj slici.

x1 x0

x1 x0
y0

x1 x0
y1

x1 x0
y2

x1 x0
y3
d

Multipekser

Multipekser je kombinaciona logika mrea sa n ulaznih signala (za podatke), m selekcionih


signala i jednim izlaznim signalom (za podatke), koja ima osobinu da za svaku kombinaciju
vrednosti selekcionih signala jedan od ulaznih signala za podatke prosleuje se na prikljuak za
izlazni signal. Za multiplekser vai da je 2m = n.

Multiplekser sa n ulaznih signala za podatke naziva se ' n na 1 multiplesker' ili krae ' n/1
multiplekser. Na sledeoj slici prikazana je grafika oznaka 4/1 multipleksera.

s1 s0

x0

x1 4/1
multiplekser y
x2

x3

Tablica istinitosti 4/1 multipleksera ima sledei izgled.

4
indeks s1 s0 y
0 0 0 x0
1 0 1 x1
2 1 0 x2
3 1 1 x3

Logika ema multipleksera dobija se na sledei nain. Za svaku kombinaciju selekcionih signala
formira se po jedan logiki proizvod (od logikih I kola) koji proputa samo po jedan od ulaznih
signala za podatke. Na izlazu se formira logika suma svih logikih proizvoda.

Logika ema 4/1 multipleksera prikazana je na sledeoj slici.

s1 s0

s1 s 0 x 0
x0

s1 s 0 x1
x1 y

s1 s 0 x 2
x2

s1 s 0 x3
x3

Realizacija bulovih funkcija primenom multipeksera

Multipekser moe da se primeni za realizaciju bulovih funkacija. Za realizaciju bulove funkcije y


od n promenljivih, ulazne promenljive treba dovesti na selekcione ulaze multipleksera, na ulaze za
podatke treba dovesti logike 0 ili logike jedinice prema tablici istinitosti bulove funkcije.

Na premer, neka treba realizovati bulovu funkciju y(s2, s1, s0) od tri promeljive koja je zadata
sledeom tablicom istinitosti.

indeks s2 s1 s0 y
0 0 0 0 1
1 0 0 1 1
2 0 1 0 0
3 0 1 1 1
4 1 0 0 0
5 1 0 1 0

5
6 1 1 0 0
7 1 1 1 1

Za realizaciju ove funkcije potreban je 8/1 multiplekser. Na selekcione ulaze multipleksera


dovodimo promenljive s2, s1, s0, a na ulaze za podatke dovodimo 0 i 1 prema vrednostima izlaza y
na pojedinim slogovima prema tablici istinitosti. Na sledeoj slici pokazano je kako se funkcija y
realizuje primenom 8/1 multipleksera.

+ Vcc s1 s0

x0

x1

x2
8/1
x3
y
multiplekser
x4

x5

x6

x7

Demultipekser

Demultipekser je kombinaciona logika mrea sa jednim ulaznim signalom (za podatke), m


selekcionih signala i n izlaznih signala, koja ima osobinu da za svaku kombinaciju vrednosti
selekcionih signala ulazni signal za podatke prosleuje se na jedan od prikljuaka za izlazne
signale. Za demultiplekser vai da je 2m = n.

Demultiplekser sa jednim ulaznim signalom za podatke i n izlaznih signala naziva se '1 na n


demultiplekser' ili krae '1/n demultiplekser'. Na sledeoj slici prikazana je grafika oznaka 1/4
demultipleksera.

6
s1 s0

y0

1/4 y1
x demultiplekser
y2

y3

Tablica istinitosti 1/4 demultipleksera ima sledei izgled.

indeks s1 s0 y0 y1 y2 y3
0 0 0 x 0 0 0
1 0 1 0 x 0 0
2 1 0 0 0 x 0
3 1 1 0 0 0 x

Dekoder sa signalom dozvole moe da se koristi kao demultiplekser. Na slici dole levo prikazan je
2/4 dekoder sa signalom dozvole, a na slici desno prikazan je isti dekoder koji je vezan tako da
realizuje 1/4 demultiplekser.

s1 s0

x1 y0 y0 x1 x0 y0 y0
x1
2/4 y1 y1 2/4 y1 y1
x0 x0 dekoder x d dekoder
y2 y2 y2 y2
d d
y3 y3 y3 y3
Dekoder sa Dekoder sa signalom
signalom dozvole dozvole u ulozi
demultipreksera

Polusabira

Polusabira je kombinaciona logika mrea koja sabira dva jednocifrena binarna broja a i b, a na
izlazu daje jednocifeni bit rezultata s i prenos C. Tablica istinitosti polusabiraa data je u sledeoj
tabeli.
indeks a b s C
0 0 0 0 0
1 0 1 1 0
2 1 0 1 0
3 1 1 0 1

7
Iz tablice istinitosti jasno je da polusabira moe da se realizuje primenom jednog eksluzivnog ILI
kola (za izlaz s) i jednog I kola (za izlaz C), kao to pokazuje logika ema na sledeoj slici.

a
s
b

Puni sabira

Polusabira ne moe da se koristi za realizaciju paralelnog sabiraa, koji sabira viecifrene binarne
brojeve, zato to nema ulaz za prenos sa prethodnog stepena.

Puni sabira je kombinaciona logika mrea koja sabira dva jednocifrena binarna broja a i b i
jendocifreni ulazni prenos C_ul, a na izlazu daje sumu s i izlazni prenos C_iz. Tablica istinitosti
punog sabiraa data je u sledeoj tabeli.

indeks a b C_ul s C
0 0 0 0 0 0
1 0 0 1 1 0
2 0 1 0 1 0
3 0 1 1 0 1
4 1 0 0 1 0
5 1 0 1 0 1
6 1 1 0 0 1
7 1 1 1 1 1

Loigka ema na sledeoj slici pokazuje pogodnu realizaciju punog sabiraa sa dva polubaraa.

a
s
b

s2

C_iz

s3
C_ul

Grafika oznaka punog sabiraa prikazana je na sledeoj slici.

8
a b

C_iz puni sabira C_ul

Paralelni sabira

Sekvencijalnom vezom n punih sabiraa dobija se paralelni sabira sa n stepeni koji moe da
sabira dva n-bitna binarna broja. Na sledeoj slici prikazan je 4-bitni paralelni sabira koji sabira
dva 4-bitna binarna broja predstavljena u obliku A = a3 a2 a1 a0 i B = b3 b2 b1 b0 sa ulaznim
prenosom C_ul i na izlazu daje 4-bitnu sumu S = s3 s2 s1 s0 i izlazni prenos C_iz.

a3 b3 a2 b2 a1 b1 a0 b0

a b a b a b a b
Izlazni Ulazni
Ulazni
prenos C_ul C_iz C_ul C_iz C_ul C_iz C_ul C_iz prenos
prenos
s s s s

s3 s2 s1 s0

9
Univerzitet u Novom Sadu
Fakultet tehnikih nauka
Departman za energetiku, elektroniku i telekomunikacije
Katedra za elektroniku

UVOD U DIGITALNU I MIKRORAUNARSKU


ELEKTRONIKU

Beleke sa predavanja #07:

SR flip-flopovi

Pripremio: prof. dr Veljko Malbaa


Novi Sad, april 2008. godine
Izlaz sekvencijalne logike mree zavisi od ulaza u posmatranom trenutku i vrednosti ulaza u svim
prethodnim trenucima, odnosno od predistorije logike mree. Umesto da se pamti predistorija,
uvodi se pojam stanja sekvencijalne mree, tako da izlaz zavisi od vrednosti ulaza i stanja
sekvencijalne mree u datom trenutku.

U ovom poglavlju opisani su SR flip-flopovi kao elementarni memorijski elementi koji se koriste u
sekvencijalnim logikim mreama. Posle toga su izloene neke standardne sekvencijalne mree koje
se koriste za realizaciju sloenih digitalnih sistema.

SR flip-flop sa NILI kolima

Flip-flop je elementarna sekvencijalna mrea koja moe biti u jednom od dva stabilna stanja
logika 0 i logika 1. Po pravilu, flip-flop ima dva izlaza, izlaz Q koji predstavlja stanje flip-flopa i
izlaz Q koji predstavlja invertovano stanje flip-flopa. Flip-flopovi se obino nazivaju po svojim
ulaznim signalima. U ovom odeljku objanjena je realizacija i ponaanje SR flip-flopa sa ulazima S
(engleski set) i R (engleski reset).

Flip-flop moe da se napravi od dva NI ili dva NILI kola. Sledea slika prikazuje implementaciju
flip-flopa sa dva NILI kola sa dva ulaza.

0 0
S 1 Q S 0 Q

0 0 Q
R 0 Q R 1

Podsetimo se da ako je bilo koji ulaz NILI kola na logikoj 1, na izlazu je logika 0. Samo kada su
oba ulaza na logikoj 0, izlaz je na logikoj 1. U takozvanom mirnom stanju oba ulaza flip-flopa,
oznaena sa S i R, nalaze se na logikoj 0. Lako je pokazati da ako su ulazi S i R u mirnom stanju,
flip-flop ima dva stabilna stanja, odnosno izlaz Q moe biti u stanju logike 0 ili logike 1. Ako je
izlaz Q na logikoj 1, kaemo da je flip-flop setovan, a ako je Q na logikoj 0, flip-flop je resetovan.

Stabilno stanje flip-flopa dokazuje se na sledei nain. Pretpostavimo da je izlaz Q u jednom stanju,
zatim pokaemo da to stanje dri izlaz Q u suprotnom stanju, koje opet dri izlaz Q u stanju koje
smo pretpostavili. Na primer, pretpostavimo da je izlaz Q u stanju logike 0, pokaemo da ta
vrednost Q uslovljava da je Q u stanju logike 1, koja opet dri izlaz Q u stanju logike 0, to je i
bila poetna pretpostavka. Isti dokaz sprovodi se za izlaz Q koji je u stanju logike 1.

Pretpostavimo da su ulazi flip-flopa S i R u mirnom stanju (logika 0) i da je izlaz Q u stanju logike


0, slika gore levo. Logika 0 sa izlaza Q vraa se na ulaz gornjeg NILI kola i zajedno sa mirnim
ulazom S (logika 0), ove dve logike 0 na ulazu gornjeg NILI kola na izlazu Q daju logiku 1.
Izlaz Q vraa se na ulaz donjeg NILI kola i na izlazu daje logiku 0, to je i bila poetna
pretpostavka.

2
Na slian nain moe se pokazati da je Q=1 takoe stabilno stanje. Ako je izlaz Q na logikoj 1,
ova logika 1 vraa se na ulaz gornjeg logikog kola i dri izlaz kola Q u stanju logike 0. Ova
logika 0 vraa se na ulaz donjeg NILI kola i zajedno sa mirnim ulazom R koji je u stanju logike 0,
na izlazu kola Q daje logiku 1.

Treba primetiti da flip-flop ima povratnu spregu, odnosno za razliku od kombinacionih logikih
mrea, signal sa izlaza vraa se na ulaz. Ova povratna sprega obezbeuje dranje flip-flopa u
jednom od dva stabilna stanja.

Prethodno razmatranje pokazalo je da ako su ulazi S i R u mirnom stanju (logika 0), flip-flop moe
da bude u jednom od dva stabilna stanja, setovan ili resetovan. Flip-flop ostaje u stabilnom stanju
sve dok se ulazi ne menjaju i dok se dri napon napajanja logikih kola.

Prebacivanje flip-flopa iz jednog u drugo stanje vri se dovoenjem pozitivnog impulsa na ulaz S ili
ulaz R. Pretpostavimo da je flip-flop resetovan, Q=0. Primetimo prvo da dovoenje logike 1 na ulaz
R, na izlazu donjeg NILI kola daje logiku 0, to znai da flip-flop ne menja stanje i ostaje resetovan.

Ako ulaz R drimo u stanju logike 0, a na ulaz S dovedemo logiku 1, izlaz Q e prei u logiku 0,
koja se vraa na ulaz donjeg logikog kola i zajedno sa R=0 na izlazu Q daje logiku 1, slika dole
levo. Kada se ulaz S vrati sa logike 1 na logiku 0, znai kada su oba ulaza u mirnom stanju, izlaz
Q ostaje u logikoj 1, a izlaz Q u logikoj 0, slika dole desno. Ovim smo pokazali da pozitivni
impuls (pozitivni impuls znai da signal prevodimo prvo sa logike 0 na logiku 1 i zatim vraamo
na logiku 0) na ulazu S setuje odnosno prevodi flip-flop u stanje Q=1.

0
S 1 0 S 0 Q
Q

Q 0 Q
R=0 0 1 R 1

Na potpuno simetrian nain pokazuje se da ako je flip-flop setovan, pozitivni impuls na ulazu R
resetuje flip-flop. Ako na ulaz R setovanog flip-flopa dovedemo pozitivan impuls, izlaz Q prelazi u
stanje 0, ova logika 0 vraa se na ulaz gornjeg NILI kola i zajedno sa ulazom S=0 prevodi izlaz Q
u logiku 1, odnosno resetuje flip-flop, slika dole levo. Kada se ulaz R vrati u stanje logike 0, flip
flop ostaje u resetovanom stanju, slika dole desno.

0
S=0 0 1 S 1 Q
Q

Q 0 Q
R 1 0 R 0

Ulaz S setuje flip-flop i naziva se set ulaz, a ulaz R resetuje flip-flop i naziva se reset ulaz. Ovaj flip-
flop naziva se SR ili set-reset flip flop i oznaava grafikom oznakom prikazanom na sledeoj slici.

3
Flip-flop se setuje pozitivnim impulsom na S ulazu, a resetuje pozitivnim impulsom na R ulazu. Ako
su oba ulaza u mirnom stanju (logika 0), flip-flop ne menja stanje.

S Q

R Q

Ostalo je jo da se proveri ta se dogaa ako na oba ulaza istovremeno dovedemo logiku 1. Jasno je
da e logika 1 na ulazu S prevesti izlaz Q u logiku 0 i logika 1 na ulazu R prevesti izlaz Q u
logiku 0. Ako se oba ulaza istovremenu vrate u mirno stanje (logiku 0), nije mogue utvrditi stanje
flip-flopa. Naime, stanje flip-flopa zavisie od toga koji od ulaza, S ili R, je poslednji vraen na
logiku 0. Ako je S ulaz poslednji vraen u logiku 0, flip-flop e ostati setovan, a ako je ulaz R
poslednji vraen u logiku 0, flip-flop e ostati resetovan. Ako se istovremeno S i R vrate u logiku
0, onda ne moe da se utvrdi u kom stanju e ostati flip-flop pa je za ulaze S=R=1 stanje flip-flopa
nedefinisano.

Kao to smo ve objasnili, izlaz kombinacionih logikih mrea zavisi samo od ulaza u datom
trenutku, pa ponaanje kombinacione logike mree nije zanimljivo u vremenu. Za razliku od
komibinacionih mrea, flip-flop i logike mree koje se prave sa flip-flopovima, u toku vremena
prolaze kroz niz stanja u zavisnosti od poetnog stanja i redosleda kojim se zadaju vrednosti ulaza.
Niz stanja kroz koje prolaze logike mree sa flip-flopovima naziva se sekvenca pa se takve mree
nazivaju sekvencijalne mree ili automati.

Prema tome, ponaanje sekvencijalnih mrea mora da se posmatra u toku vremena. Ponaanje flip-
flopa i sekvencijalnih mrea obino se opisuje na sledei nain: ako je sekvencijalna mrea u stanju
Si i na ulaz se dovede ulaz Uk onda sekvencijalna mrea prelazi u stanje Sj pri emu je izaz mree Il.
Kao to se vidi, ovde postoje dva perioda vremena, prvi period koji emo oznaiti sa Tn koji
predstavlja period pre nego to na ulaz sekvencijalne mree dovedemo ulaze koje menjaju stanje
mree i naredni period koji emo oznaiti sa Tn+1 u kome mrea pod uticajem ulaza prelazi u naredno
stanje. Stanje sekvencijalne mree u periodu Tn oznaiemo sa Qn a stanje mree u periodu Tn+1 sa
Qn+1.

Navedeno ponaanje mree pogodno se predstavlja vremenskim dijagramima koji prikazuju promene
signala na ulazima i izlazima sekvencijalne mree u toku vremena. Na sledeoj slici levo prikazan je
vremenski dijagram SR flip-flopa koji je u periodi Tn u stanju Qn = 0. Kada se na ulaz S dovede
pozitivan impuls, flip-flop prelazi u stanje Qn+1 = 1. Na slici desno, prikazan je vremenski dijagram
SR flip-flopa koji je u stanju Qn = 1, a kada se na ulaz R dovede pozitivan impuls, flip-flop prelazi u
stanje Qn+1 = 0.

4
S S

R R

Q Qn Qn+1 Q Qn Qn+1

Tn Tn+1 Tn Tn+1

Na sledeem vremenskom dijagramu prikazan je proizvoljan oblik ulaznih signala i odgovarajui


oblik izlaza SR flip-flopa. Oblici ulaznih signala formirani su tako da je uvek bar jedan od ulaza S i
R na logikoj 0.

Opis ponaanja sekvencijalne mree obino se predstavlja funkcionalnom tablicom. Ako je


sekvencijalna mrea u periodi Tn u stanju Qn, onda funkcionalna tablica definie stanje Qn+1 u koje
sekvencijalna mrea prelazi u periodu Tn+1 ako je ulazu Un.. Ponaanje SR flip-flopa opisujemo
sledeom funkcionalnom tablicom.

S R Qn+1
0 0 Qn
0 1 0
1 0 1
1 1 x

Navedena tablica opisuje stanje Qn+1 u koje SR flip-flop prelazi ako je flip-flop u stanju Qn i na
ulazu imamo sve kombinacije ulaza S i R. Tako prva vrsta tablice kae da ako je flip-flop u stanju
Qn i na ulazu je S=0 i R=0 onda flip-flop ne menja stanje i ostaje u stanju Qn u kome je bio u periodi
Tn. Ako je na ulazu S=0 i R=1 onda bez obzira na stanje Qn flip-flop prelazi u stanje 0. Slino
ovome, ako je na ulazu S=1 i R=0 onda bez obzira na stanje Qn flip-flop prelazi u stanje 1.
Konano, poslednja vrsta kae da ako su oba ulaza na logikoj 1, onda naredno stanje flip-flopa nije
nedefinisano i u tablici je oznaeno sa x.

U projektovanju nam esto treba tablica pobude flip-flopa, koja definie stanje ulaza flip-flop
prevode iz jednog stanja u drugo. Sledea tablica daje tablicu pobude SR flip-flopa. Prva vrsta kae
da ako je flip-flop u stanju 0 i hoemo da pree u stanje 0 (odnosno da flip-flop ostane u stanju 0),
onda ulaz S treba da je u stanju 0, a ulaz R moe biti u stanju 0 ili 1, to oznaavamo sa x. Lako
moemo videti zato je svejedno u kom stanju je ulaz R: ako je na logikoj 0 onda flip-flop ne menja

5
stanje i ostaje Q=0 (jer je S na 0), a logika 1 na ulazu R resetuje flip-flop na 0, to je opet
prihvatljivo naredno stanje.

Qn Qn+1 S R
0 0 0 x
0 1 1 0
1 0 0 1
1 1 x 0

Da bi se flip-flop setovao iz stanja 0 u stanje 1, ulaz S treba da bude na logikoj 1, a ulaz R u


mirnom stanju (druga vrsta). Na slian nain, kombinacija S=0 i R=1 resetuje flip-flop iz stanja 1 u
stanje 0 (trea vrsta). Ako elimo da flip-flop ostane setovan, etvrta vrsta, onda ulaz R ne sme biti
aktivan (mora biti na logikoj 1) a ulaz S moe biti na logikoj 0 ili logikoj 1. Ako je S=0, onda
flip-flop ne menja stanje, odnosno ostaje u logikoj 1, a S=1 setuje flip-flop sa 1 na 1, to opet
odgovara zahtevanom prelazu.

RS flip-flop sa NILI kolima

Logika ema SR flip-flopa koji je realizovan sa NI logikim kolima prikazana je na slici dole. Treba
primetiti da su izlazi Q i Q zamenili svoja mesta u odnosu na flip-flop sa NILI kolima.

1 1
S 0 Q S 1 Q

1 1 Q
R 1 Q R 0

Podsetimo se da ako je bilo koji ulaz NI kola na logikoj 0, na izlazu je logika 1, a ako su oba ulaza
na logikoj 1, izlaz je na logikoj 0. U mirnom stanju ulaza S i R flip-flopa sa NI kolima nalaze se na
logikoj 1.

Stabilna stanja flip-flopa dokazuje se slino kao i za flip-flop sa NILI kolima. Pretpostavimo da su
ulazi S i R u mirnom stanju (logika 1) i da je izlaz Q u stanju logike 0, slika gore levo. Logika 0
sa izlaza Q vraa se na ulaz donjeg NI kola i na izlazu Q daje logiku 1. Ova logika 1 vraa se na
ulaz gornjeg NI kola i zajedno sa S=1 na izlazu Q daje logiku 0, to je bila poetna pretpostavka.

Ako je izlaz Q na logikoj 1, slika gore desno, ova logika 1 vraa se na ulaz donjeg NI logikog
kola i zajedno sa R=1 dri izlaz kola Q u stanju logike 0. Ova logika 0 vraa se na ulaz gornjeg
NI kola i na izlazu kola Q daje logiku 1. Prema tome, ako su ulazi S i R u mirnom stanju (logika
1), flip-flop moe da bude u jednom od dva stabilna stanja, setovan ili resetovan.

Prebacivanje flip-flopa iz jednog u drugo stanje vri se dovoenjem negativnog impulsa na ulaz S ili
ulaz R. Pretpostavimo da je flip-flop resetovan, Q=0. Ako ulaz R drimo u stanju logike 1, a na
ulaz S dovedemo logiku 0, izlaz Q prelazi u logiku 1, koja se vraa na ulaz donjeg logikog kola i

6
zajedno sa R=1 na izlazu Q daje logiku 0, slika dole levo. Kada se ulaz S vrati sa logike 0 na
logiku 1, izlaz Q ostaje u logikoj 1, a izlaz Q u logikoj 0, slika dole desno. Prema tome,
negativni impuls na ulazu S setuje flip-flop (prevodi flip-flop u stanje Q=1).

1
S 0 1 S 0 Q
Q

Q 1 Q
R=1 1 0 R 1

Ako je flip-flop setovan, negativan impuls na ulazu R resetuje flip-flop. Ako na ulaz R setovanog
flip-flopa dovedemo negativan impuls, izlaz Q prelazi u stanje 1, ova logika 1 vraa se na ulaz
gornjeg NI kola i zajedno sa ulazom S=1 prevodi izlaz Q u logiku 0 i tako resetuje flip-flop, slika
dole levo. Kada se ulaz R vrati u stanje logike 1, flip flop ostaje u resetovanom stanju, slika dole
desno.

1
S=1 1 0
S 1 Q
Q

Q 1 Q
R 0 1 R 0

Grafika oznaka SR flip-flopa sa NI kolima ista je kao i za flip-flop sa NILI kolima i prikazana je na
sledeoj slici. Flip-flop se setuje negativnim impulsom na S ulazu, a resetuje negativnim impulsom
na R ulazu. Ako su oba ulaza u mirnom stanju (logika 1), flip-flop ne menja stanje.

S Q

R Q

Slino kao u flip-flopu sa NILI kolima, ako su oba ulaza u logikoj 0, onda je naredno stanje flip-
flopa nedefinisano. Logika 0 na ulazu S prevodi izlaz Q u logiku 1 a logika 0 na ulazu R prevodi
izlaz Q u logiku 1. Ako se oba ulaza istovremenu vrate u mirno stanje (logiku 1), stanje flip-flopa
zavisie od toga koji od ulaza, S ili R, je poslednji vraen na logiku 1.

Na sledeoj slici levo prikazan je vremenski dijagram SR flip-flopa sa NI kolima koji je u periodi Tn
u stanju Qn = 0. Kada se na ulaz S dovede negativan impuls, flip-flop prelazi u stanje Qn+1 = 1. Na
slici desno, prikazan je vremenski dijagram SR flip-flopa koji je u stanju Qn = 1, a kada se na ulaz R
dovede negativan impuls, flip-flop prelazi u stanje Qn+1 = 0.

7
S S

R R

Q Qn Qn+1 Q Qn Qn+1

Tn Tn+1 Tn Tn+1

Na sledeem vremenskom dijagramu prikazan je proizvoljan oblik ulaznih signala i odgovarajui


oblik izlaza SR flip-flopa. Oblici ulaznih signala formirani su tako da je uvek bar jedan od ulaza S i
R na logikoj 0.

Ponaanje SR flip-flopa a NI kolima opisuje sledea funkcionalna tablica. Prva vrsta kae da ako su
oba ulaza na logikoj 0, onda naredno stanje nije definisano. Ako je na ulazu S=0 i R=1 onda bez
obzira na stanje Qn flip-flop prelazi u stanje 1. Ulazi S=1 i R=0 bez obzira na stanje Qn flip-flop
prevode u stanje 0. Ako su oba ulaza u mirnom stanju, S=R=1, flip-flop ne menja stanje i u stanju
Qn u kome je bio u periodi Tn.

S R Qn+1
0 0 x
0 1 1
1 0 0
1 1 Qn

Sledea tablica daje tablicu pobude SR flip-flopa. Prva vrsta kae da ako je flip-flop u stanju 0 i
hoemo da pree u stanje 0 (odnosno da flip-flop ostane u stanju 0), onda ulaz S treba da je u stanju
0, a ulaz R moe biti u stanju 0 ili 1, to oznaavamo sa x. Ulaz R na logikoj 0 resetuje flip-flop, a
logika 1 na ulazu R ostavlja flip-flop u stanju 0, pa su obe vrednosti ulaza R prihvatljive. .

Qn Qn+1 S R
0 0 1 x
0 1 0 1
1 0 1 0
1 1 x 1

8
Da bi se flip-flop setovao iz stanja 0, ulaz S treba da bude na logikoj 0, a ulaz R u mirnom stanju
R=1. Kombinacija S=1 i R=0 resetuje flip-flop iz stanja 1 u stanje 0 (trea vrsta). Da bi flip-flop
ostao setovan, etvrta vrsta, onda ulaz R ne sme biti aktivan (mora biti na logikoj 1) a ulaz S moe
biti na logikoj 0 ili logikoj 1. Ako je S=0, onda flip-flop ne menja stanje, odnosno ostaje u logikoj
1, a S=1 setuje flip-flop sa 1 na 1, to opet odgovara zahtevanom prelazu.

9
Univerzitet u Novom Sadu
Fakultet tehnikih nauka
Departman za energetiku, elektroniku i telekomunikacije
Katedra za elektroniku

UVOD U DIGITALNU I MIKRORAUNARSKU


ELEKTRONIKU

Beleke sa predavanja #08:

Flip-flopovi i prenos podataka izmeu flip-flopova

Pripremio: prof. dr Veljko Malbaa


Novi Sad, oktobar 2008. godine
D flip-flop

D flip-flop ima jednostavnu osobinu: pamti binarnu informaciju koja je na ulazu D i prosleuje je na
izlaz Q. Grafika oznaka D flip-flopa prikazana je na sledeoj slici.

D Q

Promena stanja D flip-flopa sinhronizovana je sa ulaznim signalom takta (oznaen sa clock na


prethodnoj slici). U zavisnosti od konstrukcije D flip-flopa, promena stanja moe da se desi u
razliitim trenucima u odnosu na signal takta:

u tenutku koji je odreen rastuom ivicom impulsa signala takta,


u trenutku koji je odreen opadajuom ivicom impulsa signala takta ili
u periodu kada je signal takta na nivou logikom 1.

Na primer, sledea funkcionalna tablica opisuje ponaanje D flip-flopa ija promena stanja je
sinhronizovana sa opadajuom ivicom pozitivnog impulsa signala takta. Za ovakve flip-flopove
kaemo da okidaju na opadajuoj ivici signala takta.

D clock Qn+1
X Qn
0 0
1 1

Poto izlaz Q naposredno odgovara unutranjem stanju D flip-flopa, obino sa Q oznaavamo


unutranje stanje i izlaz. Neka je prethodno stanje D flip-flopa oznaeno sa Qn., a naredno stanje sa
Qn+1. Prethodna tablica kae da ako je ulazni signal takta na logikoj 0, na logikoj 1 ili ako je na
rastuoj ivici, onda bez obzira na ulazni signal D, flip-flop ne menja svoje stanje i ostaje u stanju Qn.
Ako je signal clock na opadajuoj ivici, flip-flop prelazi u stanje Qn+1 (koje je jednako logikom
nivou ulaznog signala D) i to stanje prenosi se na izlaz flip-flopa.

Na sledeem vremenskom dijagramu prikazan je proizvoljan oblik ulaznog signala D i signala takta
(oznaen sa clock) i izlaz Q koji predstavlja odziv D flip-flopa sa okidanjem na opdajuoj ivici. U
ovom primeru signal takta je povorka pozitivnih impulsa stabilne frekvencije.

2
Iz prethodnog dijagrama vidi se da D flip-flop u trenutku koji odreuje opadajua ivica signala clock
uzima i pamti vrednost ulaznog signala D koja se prosleuje na izlaz Q. U svim ostalim trenucima
flip-flop ne menja svoje stanje.

U praksi je teko odrediti taan trenutak kada flip-flop reaguje u odnosu na opadajuu ivicu signala
clock iz nekoliko razloga: ako je frekvencija signala clock nestabilna, ako opadajua ivica
'podrhtava' u smislu da se pomera u vremenu u odnosu na oekivani trenutak promene ili ako
parametri (koji utiu na vremenski odziv) flip-flopa odstupaju od oekivanih. Da bi se obezbedilo
pouzdano okidanje flip-flopa proizvoa preporuuje da se ulazni signal D postavi na traenu
vrednost izvesno vreme pre opadajue ivice signala clock i da se dri na traenoj vrednosti odreeno
vreme posle opadajue ivice signal clock.

Pretpostavimo da je flip-flop u stanju 0 i da ga treba prevesti u stanje 1. Na sledeem dijagramu


ilustrovan je vremenski oblik signala D koji obezbeuje pouzdano okidanje flip-flopa. Da bi flip-flop
pouzdano okinuo, signal D treba da bude postavljen je na logiku 1 dovoljno ranije u odnosu na
opadajuu ivicu signala clock. Vreme postavljanja signala na logiku 1 u odnosu na opadajuu ivicu
obeleeno je sa tsetup i naziva se vreme postavljanja (engleski Set Up Time). Isto tako, signal D
treba da ostane na logikoj 1 jo za vreme thold posle opadajue ivice signala clock. Vreme thold
naziva se vreme dranja (engleski Hold Time).

clock

tsetup thold

U principu, vreme postavljanja i vreme dranja nisu jednaka u sluaju da flip-flop treba da okine sa
logike 0 na logiku 1 i obratno. U sluaju da se ova vremena razlikuju koristiemo oznake tsetup i
thold za vremena koja predstavljaju nepovoljniji sluaj (uzimamo due vreme).

Jezik za opis prenosa podataka izmeu D flip-flopova

Elementarnu informaciju koju pamti flip-flop (koja moe biti logika 0 ili logika 1) esto nazivamo
podatak ili sadraj flip-flopa. Jedna od najeih elementarnih operacija u digitalnim sistemima je
prenos podataka izmeu flip-flopova. Posmatrajmo sledei jednostavan digitalni sistem u kome treba
sadraj flip-flopa koji je obeleen sa A preneti u flip-flop obeleen sa B. Radi jednostavnosti
komplementirani izlazi flip-flopova nisu prikazani.

3
D Q D Q
A B

upis

Da bi se sadraj flip-flopa A preneo u flip-flop B neophodno je vezati izlaz Q flip-flopa A na ulaz D


flip-flopa B i zatim generisati pozitivni impuls na signalu takta flip-flopa B, ija opadajua ivica e
okinuti flip-flop B. Na ovaj nain e flip-flop B prei u stanje koje je jednako stanju flip-flopa A.
Ovakvu elementarnu operaciju nazivamo prenos sadraja iz flip-flopa A u flip-flop B.

Treba primetiti da se kod prenosa sadraja iz flip-flopa A u flip-flop B, prethodni sadraj flip-flopa
B nepovratno gubi, a da sadraj flip-flopa A ostaje nepromenjen.

Elementarnu operaciju prenosa podatka iz flip-flopa A u flip-flop B nazivamo mikrooperacija i


tekstualno opisujemo sledeim iskazom:

B A

Meutim, vidi se da u digitalnom sistemu postoji i upravljaki signal upis koji dovodi do realizacije
mikrooperacije. Iskaz se proiruje dvotakom ispred koje se navodi upravljaki deo digitalnog
sistema, odnosno uslov koji treba ispuniti da bi se mikrooperacija izvrila.

U navedenom primeru uslov je da signal upis bude na opadajuoj ivici. Kompletan iskaz ima sledei
oblik:

upis : B A

Iskaz koji smo naveli predstavlja jednostavan primer iskaza napisanog u jeziku za opis prenosa
podataka izmeu registara, koji se na engleskom naziva Register Transfer Language ili Register
Transfer Logic ili skraeno RTL, i koja se koristi za tekstualni opis digitalnih sistema. Prethodni
iskaz tumaimo na sledei nain: kada je uslov sa leve strane dvotake ispunjen, onda se izvrava
(jedna ili vie) mikrooperacija sa desne strane dvotake.

RTL jezik esto se koristi neformalno i obino za opis ponaanja digitalnog sistema na visokom
niovou apstrakcije. Neformalnost nam dozvoljava da iz iskaza uklonimo detalje koji se
podrazumevaju i nisu neophodni za razumevanje ponaanja digitalnog sistema koji opisuju. Na
primer, uslov upis oznaava da je uslov opadajua ivica signala upis, ali esto ne piemo strelicu
nadole, ako je iz konteksta jasno da flip-flop okida na opadajuoj ivici ili ako u opisu digitalnog
sistema nije od interesa na kojoj ivici ili na kom logikom nivou signala takta okida flip-flop.

Niz RTL iskaza koji opisuju neki digitalni sistem naziva se program. Izmeu digitalnog sistema i
RTL programa postoji korespondecija koja nije uvek jednoznana. Intuitivno je jasno da odreeni
digitalni sistem moemo opisati na razliite naine u RTL jeziku, kao i da jedan RTL program
moemo realizovati razliitim digitalnim sistemima. Pa ipak, u veini sluajeva koje koristimo u
praksi, korespondencija je skoro jednoznana, tako da iskusni projektanti na osnovu RTL programa
mogu da odrede digitalni sistem koji ga realizuje. Isto tako vai i obratno, odnosno tipini digitalni
sistemi opisuju se tipinim RTL programima.

Posmatrajmo sledei RTL program:

4
x : B A
y : C A

Navedeni program opisuje digitalni sistem sa tri flip-flopa, obeleena sa A, B i C. Dalje, jasno je da
postoji veza izmeu izlaza Q flip-flopa A i ulaza D flip-flopova B i C. Postoje takoe dva
upravljaka signala, obeleena sa x i y. Opadajua ivica upravljakog signala x okida flip-flop B i
tako sadraj flip-flopa A prenosi (upisuje) u flip-flop B. Isto tako, Opadajua ivica upravljakog
signala y okida flip-flop C i sadraj flip-flopa A prenosi (upisuje) u flip-flop C.

Na osnovu prethodnog razmatranja moemo nacrtati blok emu digitalnog sistema koji je opisan
navedenim RTL programom.

D Q D Q
A B

D Q
C

Naravno, na slian nain umesto dva flip-flopa (u naem primeru B i C) moemo na izlaz Q flip-
flopa A vezati ulaze D tri ili vie flip-flopova. Maksimalan broj flip-flopova ije ulaze moemo
vezati na izlaz Q jednog flip-flopa odreen odnosom struje koju flip-flop moe dati na svom izlazu i
maksimalne struje ulaza Q flip-flopova. Ovaj broj naziva se faktor grananja i u najveoj meri zavisi
od tehnologije izrade i strukture logikih kola od kojih su napravljeni flip-flopovi.

Primena multipleksera u prenosu podataka preko zajednikih linija

Posmatrajmo sledei RTL program:

x0 : A B
x1 : A C

Pretpostaviemo da signali x i y nemaju istovremeno opadajuu ivicu, to znai da ne pokuavamo


da istovremo u A upiemo sadraj B i sadraj C.

Iako je na prvi pogled navedeni program veoma slian RTL programu iz prethodnog primera,
realizacija ovog progama nije tako jednostavna. Da bi na ulaz flip-flopa A preneli signal sa izlaza
flip-flopova B i C moemo koristiti jednu zajedniku liniju za prenos signala i primenom vremenskog
multipleksa, ako je potrebno izvriti mikrooperaciju A B preko zajednike linije preneti signal sa
izlaza flip-flopa B, a kod izvrenja mikrooperacije A C preko zajednike linije preneti signal sa
izlaza flip-flopa C.

U ovakvoj realizaciji sreemo se sa problemom prenosa signala sa izlaza iz dva ili vie flip-flopova
(ili drugih logikih kola) preko jednog zajednikog provodnika (linije za prenos signala) do ulaza u
flip-flop u koji treba preneti podatak. Tehnologija izrade logikih kola je takva da izlaze dva ili vie
logikih kola ne smeju da se kratko spoje zato to ako su izlazi u razliitim logikim stanjima, velika

5
struja sa izlaza koji je u logikoj 1 u logiko kolo iji izlaz je u logikoj 0 dovodi do pogrenog rada i
esto do oteenja logikih kola.

Problem prenosa signala preko zajednikih linija reava se na nekoliko naina:

primena multipleksera,
primena logikih kola sa trostatikim izlazima,
primena logikih kola sa otvorenim kolektorom ili otvorenim drejnom na izlazu i
primena dioda na izlazima logikih kola.

U ovom tekstu detaljnije emo objasniti prva dva pristupa, primena multipleksera i primena logikih
kola sa trostatiim izlazima.

Multiplekseri se jednostavno koriste za vremensko multipleksiranje ulaznih signala tako to se jedan


od signala sa ulaza prenosi se na izlaz multipleksera. Grafiki simbol multipleksera 2/1 prikazan je
na sledeoj slici levo, a logika tablica na slici desno. Multiplekser ima dva ulaza za podatke,
obeleeni sa u1 i u0 i jedan selekcioni ulaz s. Kada je selekcioni ulaz s na logikoj 0, na izlaz i
prosleuje se ulazni signal u0 , a kada je ulaz s na logikoj 1, na izlaz i prosleuje se ulazni signal u1.

u1 2/1 s i
i 0 u0
u0
s 1 u1

Digitalni sistem opisan prethodnim RTL programom moe da se realizuje sledeim digitalnim
sistemom u kome se primenom multipleksera reava problem vremenskog multipleksa signala na
zajednikim linijama.

D Q
B u1

2/1 i D Q
u0 A
s
D Q
C
x0
x1

Lako je pokazati da prikazani digitalni sistem realizuje zadati RTL program. Ako je x0=0 i x1=1
onda se na izlaz i multipleksera prosleuje izlaz Q flip-flopa C. Na opadajuoj ivici signala x1 izlaz
multipleksera i (sadraj flip-flopa C) upisuje se u flip-flop A. Sa druge strane, ako je x0=1 i x1=0 na
izlaz i multipleksera prosleuje se izlaz Q flip-flopa B. Na opadajuoj ivici signala x0 izlaz
multipleksera i (sadraj flip-flopa B) upisuje se u flip-flop A. Logiko ILI kolo prosleuje pozitivni
impuls upravljakih signala x i y na ulaz za upis flip-flopa A.

Naravno, ukoliko je x0=x1=0 onda nema upisa u flip-flop A.

6
Primena trostatikih izlaza u prenosu podataka preko zajednikih linija

U ovom odeljku videemo kako se mogu koristiti flip-flopovi sa trostatikim izlazima za prenos
podataka preko zajednikih linija. Primena trostatikih izlaza je jednostavna i esto se koristi kod
sloenih sistema kada nije unapred poznat broj izlaza koji treba prikljuiti na zajednike linije.

Podsetimo se da logiki konvertor sa trostatikim izlazom ima jedan ulazni logiki signal u za ulazni
podatak, jedan izlazni logiki signal i za izlazni podatak i jedan upravljaki signal e koji se naziva
signal dozvole.

e
e i
u i 0 HiZ
1 u

Ako je signal dozvole e na logikoj 0, izlaz i konvertora nalazi se u stanju visoke impendanse,
oznaeno sa HiZ, u tabeli na gornjoj slici desno. Ako je signal dozvole e na logikoj 1, izlaz i
konvertora jednak je ulaznom signalu u i kaemo da je izlaz konvertora aktivan.

Na sledeoj slici prikazana je logika ema D flip-flopa na iji izaz je dodat trostatiki konvertor.
Ukoliko je signal dozvole e na logikoj 1 stanje flip-flopa Q prosleuje se na izlaz i, a ako je signal e
na logikoj 0, izlaz i je u stanju visoke impendanse.

i e i
D Q
0 HiZ
1 D
Q

Izlazi trostatikih konvertora mogu da se veu na zajedniku liniju za prenos podataka pod uslovom
da je u svakom trenutku najvie jedan izlaz konvertora aktivan, a svi ostali u stanju visoke
impendanse. Za konvertor koji je aktivan kaemo da postavlja (engleski drive) signal na zajedniku
liniju.

Poto na zajedniku liniju za prenos podataka u jednom trenutku moe postavlja signal samo jedan
od konvertora, pogodno je koristiti dekoder za aktiviranje signala dozvole trostatikih konvertora. Na
sledeoj slici prikazan je digitalni sistem za prenos podataka sa jednog od etiri flip-flopa (oznaeni
sa A0 do A3) u flip-flop B. Za selekciju flip-flopa iz koga se ita podatak koristi se 2/4 dekoder sa
selekcionim signalima s0 i s1.

Na ulazne signale s0 i s1 dekodera dovode se spoljni signali a0 i a1 kojima se bira flip-flop iji izlaz se
prosleuje na zajedniku liniju za prenos signala, oznaenu sa z. Signalom upis signal sa zajednike
linije z upisuje se u flip-flop B.

7
+

a1 2/4
s1
dekoder
a0 s0
d3 d2 d1 d0

D Q3 i
A3

D Q2
A2

D Q1
A1
zajednika
linija (z)
D Q0 D Q
A0 B

upis

U zavisnosti od ulaznih signala a0 i a1 i signala upis sistem sa prethodne slike moe da obavi
mikrooperacije prikazane u sledeoj tabeli.

a1 a0 upis d0 d1 d2 d3 z mikrooperacija
X X X X X X X nema operacije
0 0 1 0 0 0 A0 B A0
0 1 0 1 0 0 A1 B A1
1 0 0 0 1 0 A2 B A2
1 1 0 0 0 1 A3 B A3

Naravno, da bi sistem ispravno obavljao mikrooperacije navedene u table, moraju biti ispunjeni
uslovi u pogledu vremena postavljanja i vremena zadravanja signala na zajednikoj liniji oznaenoj
sa z.

Na sledeem vremenskom dijagramu prikazani su neki od signala sa prethodnog dijagrama u toku


mikrooperacije prenosa sadraja izabranog flip-flopa u flip-flop B. Mikrooperacija upisa poinje
tako to se u zavisnosti od vrednosti ulaznih signala a0 i a1 aktivira jedan od izlaznih signala
dekodera, oznaen sa di, i= 0, 1, 2, 3. U zavisnosti od signala di aktivira se konvertor odgovarajueg
flip-flopa, oznaen sa Ai. Poto su konvertori ostalih flip-flopova u stanju visoke impendanse, na
zajedniku liniju z prosledie se sadraj flip-flopa Ai.

U zavisnosti od stanja flip-flopa Ai na zajednikoj liniji z moe da bude logika 0 ili logika 1. Poto
nije vano da li je na liniji z logika 0 ili 1 na dijagramu je signal na liniji z prikazan sa dve linije,
gornju koja predstavlja logiku 1 i donju koja predstavlja logiku 0. U periodu kada je signal di na
logikoj 1, signal na liniji z jednak je sadraju flip-flopa Ai to je predstavljeno oznakom Ai izmeu
dve linije koje predstavljaju signal z.

8
vreme

di

z Ai

upis

B B =Ai

tsetup thold

Pre nego to je signal di postavljen na logiku 1, signal z jednak je sadraju nekog drugog flip-flopa,
ija oznaka nije predstavljena na dijagramu. U trenutku promene signala di sa logike 0 na logiku 1
vri se promena signala za liniji z. Ova promena predstavljena je ukrtenim linijama u trenutku kada
se na z prenosi sadraj flip-flopa Ai. Treba primetiti da je potrebno neko vreme od trenutka promene
signala di do promene signala z, zbog vremena propagacije signala kroz aktivirani konvertor.

Upis sadraja sa zajednike linije z u flip-flop B obavlja se na opadajuoj ivici signala upis. Pre ovog
trenutka flip-flop B imao je neku vrednost koja je mogla da bude logika 0 ili 1, to je predstavljeno
dvema paralelnim linijama. Na opadajuoj ivici signala upis flip-flop B menja sadraj jer se u njega
upisuje podatak sa zajednike linije z koja je jednaka Ai. Radi jednostavnosti uzeli smo da je ova
promena trenutka i deava se tano u trenutku opadajue ivice signala upis.

Da bi se mikrooperacija upisa u flip-flop B obavila pouzdano i uspeno, signal Ai na liniji z mora biti
postavljen bareme za vreme tsetpup pre trenutka upisa, odnosno pre opadajue ivice signala upis. Isto
tako, signal Ai na liniji z mora da se dri jo barem za vreme thold posle opadajue ivice signala upis.

Projektant sisteme je obavezan da obezbedi ispunjenje navedenih uslova. To znai da projektant


mora da proveri vremena propagacije kroz logika kola, dekoder i konvertore i vrednosti parametara
tsetpup i thold za odabrani flip-flop i zatim da projektuje generisanje selekcionih signala a0 i a1 i upis u
vremenu tako da zadovoljavaju navedene uslove u najgorem moguem sluaju. U naem primeru,
najgori mogui sluaj dobija se kada se izabere najdue vreme propagacije signala kroz logika kola,
dekoder i konvertore.

9
Univerzitet u Novom Sadu
Fakultet tehnikih nauka
Departman za energetiku, elektroniku i telekomunikacije
Katedra za elektroniku

Uvod u digitalnu i mikroraunarsku elektroniku

Beleke sa predavanja:

Registri i prenos podataka izmeu registara

Pripremio: prof. dr Veljko Malbaa


Novi Sad, 2011. godine
Stacionarni registar

Stacionarni registar sastoji se iz niza D flip-flopova koji imaju posebne ulazne i izlazne signale i
zajednike upravljake signale (kao to je signal za upis). Registar sa n flip-flopova (ili n-bitni
registar) moe da upamti informaciju od n bita koju nazivamo sadraj registra ili podatak koji je
smeten u registar. Na sledeoj slici prikazana je struktura registra R sa etiri D flip-flopa i
zajednikim signalom upisa. Flip-flopovi su oznaeni sa r0 do r3 i okidaju na opadajuoj ivici. Radi
jednostavnosti, stanje flip-flopa ri takoe emo oznaiti sa ri.

u3 D Q i3
r3

u2 D Q i2
r2

u1 D Q i1
r1

u0 D Q i0
r0
upis

Flip-flop ri, i=1,2,3,4, ima zaseban ulazni signal ui i izlaz ii. Signali za upis svih flip-flopova vezani
su na zajedniki signal upis. Prema tome, u RTL jeziku, 4-bitni registar sa slike obavlja sledee
mikrooperacije:

upis : r3 u3, r2 u2, r1 u1, r0 u0


1 : i3 r3, i2 r2, i1 r1, i0 r0

U drugom iskazu oznaka 1 sa leve strane dvotake oznaava da se mikrooperacije sa desne strane
dvotake uvek izvravaju. Drugim reima, stanje ri flip-flopa i uvek se prosleuje na izlaz ii.
Videemo da postoje registari kod kojih se sadraj ne prosleuje uvek na izlaz, nego postoji bafer
koji moe izlazne prikljuke prevesti u stanje visoke impendanse. Za sada emo ovaj iskaz
izostaviti, odnosno smatraemo da vai ii = ri , i=0,1, 2, 3.

Oznaimo sa R stacionarni registar koji se sastoji od 4 flip-flopa, tako da je u R smetena binarna


informacija r3 r2 r1 r0. Oznaimo sa U ulaznu informaciju od 4 bita, tako da je U = u3 u2 u1 u0, i
analogno sa I izlaznu informaciju I = i3 i2 i1 i0. Registar R predstaviemo grafikom oznakom
prikazanom na sledeoj slici.

4 4
U D Q I
R
upis

2
Kosa crtica na ulaznoj liniji za podatke oznaava viestruke provodnike za prenos ulaznih signala,
a broj pored crtice oznaava broj ulaznih pojedinanih provodnika. U primeru sa gornje slike
postoje 4 ulazna provodnika, po jedan za svaki bit ulaznog 4-bitnog podatka. Slino, kosa crtica na
izlaznom provodniku oznaava viestruke provodnike, u naem sluaju 4 izlazna provodnika, po
jedan za izlazni signal svakog od 4 flip-flopa.

Sledea funkcionalna tablica opisuje ponaanje registra R kod koga su promene stanja pojedinih
flip-flopa sinhronizovane sa opadajuom ivicom pozitivnog impulsa zajednikog signala upis. Za
ovakve registre kaemo da okidaju na opadajuoj ivici signala upisa.

U clock Rn+1
X Rn
u3 u2 u1 u0 u3 u2 u1 u0

Umesto prethodne tabele, uobiajeno je da koristimo RTL opis:

upis : R U
1 : I R

Prethodni iskaz kae da se na opadajuoj ivici signala upis informacija sa ulaza ui upisuje u flip-
flop ri i istovremeno se novo stanje ri flip-flopa prosleuje na izlaz ii flip-flopa, i = 0, 1, 2, 3. U
prethodnoj notaciji kaemo da se ulaz U upisuje u registar R tako da se novo stanje registra R
pojavljuje na izlazu I registra R. Radi jednostavnosti, sa R je oznaen i registar i stanje registra, to
ne dovodi do zabune jer je iz konteksta jasno koji od ova dva pojma predstavlja oznaka R.

Ponaanje registra u toku vremena opisujemo vremenskim dijagramom. Na primer, sadraji flip-
flopova r3 r2 r1 r0 4-bitnog registra R mogu da se menjaju u toku vremena kao to je prikazano na
sledeoj slici, gornji vremenski dijagram.

r3 0 1 0

r2 1 0 1
0

r1 0 0 0
1

r0 0 1 1

R
4 A 7

t
0 t1 t 2 t3 t4 t5

Sa dijagrama se vidi da je u vremenskom intervalu od t1 do t2 sadraj flip-flopa r3 jednak 0, i da je


r2 = 1, r1 = 0 i r0 = 0. U intervalu od t2 do t3 flip-flopovi prelaze u novo stanje tako da je posle t3
stanje registra R jednako r3 r2 r1 r0 = 1001 to predstavlja broj A u heksadecimalnom brojnom

3
sistemu. Posle t4 flip-flopovi prelaze u stanje visoke impendanse, to je predstavljeno isprekidanim
linijama, a posle t5 stanje stanje registra je r3 r2 r1 r0 = 0111 ili 7 heksadecimalno.

Meutim, predstavljenje stanja pojedinanih signala, na primer stanja niza od n flip-flopova ri,
i=0, 1, ... , n-1, za veliko n vremenski dijagram previe je veliki i sloen. Poto u najveem broju
sluajeva nije vano koji od signala je na logikoj 0 a koji na logikoj 1, radi jednostavnosti svi
signali iz grupe slinih signala predstavljaju se dvema horizontalnim paralelnim linijama, od kojih
jedna predstavlja logiku 0 a druga logiku 1.

Na primer, ako sa R oznaimo niz od 4 flip-flopa tako da je R = r3 r2 r1 r0 , onda od trenutka t1 do


trenutka t2 signali r3 r2 r1 r0 predstavljeni su dvama horizontalnim paralelnim linijama, koje samo
govore da su u tom vremenskom intervalu stanja flip-flopova r3 r2 r1 r0 stabilna i da neki od njih
imaju vrednosti 0 a neki 1 ali iz vremenskog dijagrama za R ne moemo zakljuiti vrednosti
pojedinanih flip-flopova.

Ukoliko je potrebno da znamo sadraje pojedinih flip-flopova onda moemo izmeu paralelnih
linije upisti heksadecimalni broj koji odgovara stanjima flip-flopova. Na primer u intevalu od t1 do
t2 imamo r3 r2 r1 r0 = 0100 to odgovara heksadecimalnom broju 4 pa taj broj upiemo izmeu
paralelnih linija. Na slian nain, od od t3 do t4 imamo r3 r2 r1 r0 = 1001 pa je za R upisan
heksadecimalni broj A. Od t4 do t5 flip-flopovi su u stanju visoke impendanse, pa je R predstavljen
isprekidanom linijom, a od t5 je r3 r2 r1 r0 = 0111 pa je za R upisan heksadecimalni broj 7.

Neka U predstavlja grupu od 8 signala, tako da je U = u7 u6 u5 u4 u3 u2 u1 u0 i neka je U = 0100


0111 u intervalu od t1 do t2. Poto niz 0100 0111 odgovara heksadecimalnom broju 47 onda izmeu
dvostrukih linija koje predstavljaju grupu signala U u intervalu od t1 do t2 upiemo 47, kao to je to
prikazano na sledeoj slici. Na slian nain, oznaka 3A (heksadecimalno) za grupu signala U na
gornjoj slici, u intervalu od t3 do t4 oznaava da je u7=0, u6=0, u5=1, u4=1, u3=1, u2=0, u1=1 i
u0=0. Od t2 do t3 grupa signala U je u stanju visoke impendanse, to je predstavljeno
jednostrukom isprekidanom linijom.

U
47 3A

t
0 t1 t2 t3 t4

Na sledeem vremenskom dijagramu prikazan je proizvoljan oblik grupe ulaznih signala U


stacionarnog registra, signala upis i grupe signala R koji predstavljaju stanja 4 D flip-flopa sa
okidanjem na opadajuoj ivici. U ovom primeru signal upis je povorka pozitivnih impulsa stabilne
frekvencije.

4
upis

U B 3 6 F 0

R B 3 F 0

Neka grupa signala U u trenutku prve opadajue ivice signala upis ima vrednost U=B16, to znai
da je u3=1, u2=0, u1=1 i u0=1. U trenutku opadajue ivice signala upis vrednosti ulaznih signala
upisuju se u odgovarajue flip-flopove registra R, tako da je r3=1, r2=0, r1=1 i r0=1, odnosno
R=B16. Posle drugog opadajueg signala upis vrednost R jednaka je vrednosti grupe ulaznih signala
U, odnosno R=316, posle tree opadajue ivice R=F16 i tako dalje.

Ve je objanjeno da za ispravan rad D flip-flopova ulazni signali treba da budu postavljeni na


svoje naponske nivoe koji odgovaraju logikim vrednostima i stabilni najmanje u intervalu
vremena tsetup (vreme postavljanja, engleski: set-up time) pre trenutka opadajue ivici signala upis i
da se ne menjaju jo najmanje u intervalu vremena thold (vreme dranja, engleski: hold time) posle
opadajue ivice signala upis. Na slian nain svi signali iz grupe ulaznih signala U treba da
zadovolje vreme postavljanja i vreme dranja.

Pretpostavimo da 4-bitni registar R sadri podatak 11002 (ili u heksadecimalnom brojnom sistemu
C16 ) i da u R treba upisati 00112 (u heksadecimalnom brojnom sistemu 316 ). U ovom sluaju jo
kaemo da registar R treba prevesti iz stanja C16 u stanje 316. Na sledeem dijagramu ilustrovan je
vremenski oblik signala U koji obezbeuje pouzdan upis novog sadraja u registar R.

upis

U 3

R
C 3

tsetup thold

Prenos podataka izmeu registara

Jedna od najeih elementarnih operacija ili mikrooperacija u digitalnim sistemima je prenos


podataka izmeu registara. Ove mikrooperacije obavljaju se po ugledu na sline mikrooperacije
koje se obavljaju kod prenosa podataka izmeu flip-flopova. Jezik za opis prenosa podataka
izmeu registara je generalizacija jezika za opis prenosa podataka izmeu flip-flopova.

5
Sledei jednostavan digitalni sistem moe da obavi mikrooperaciju prenosa sadraja 4-bitnog
registra A u 4-bitni registar B. Ovu mikrooperaciju jo opisujemo kao prenos podatka iz registra A u
registar B.

registar A registar B
au3 ai3 bu3 bi3
D Q D Q
a3 b3

au2 ai2 bu2 bi2


D Q D Q
a2 b2

au1 ai1 bu1 bi1


D Q D Q
a1 b1

au0 ai0 bu0 bi0


D Q D Q
a0 b0

upisa upisb

Iz dijagrama se vidi da je izlaz aii flip-flopa ai iz registra A neposredno (dakle, posebnim


provodnikom) vezan na ulaz bui flip-flopa bi registra B, i = 0, 1, 2, 3. Kod ovakvog prenosa,
registar A nazivamo izlazni, a registar B ulazni registar.

Kod prenosa sadraja izmeu registara, ukoliko se drugaije ne kae, onda je uvek izlaz i izlaznog
registra vezan na ulaz i ulaznog registra. U ovom sluaju kaemo da su izlazni signali izlaznog
registra i ulazni signali ulaznog registra meusobno poravnati. U ovom poglavlju smatraemo da
su svi izlazni i ulazni signali meusobno poravnati.

U digitalnom sistemu sa prethodnog dijagrama, kod opadajue ivice signala upisb sadraj flip-flopa
ai iz registra A prenose se preko posebnog provodnika do ulaza u flip-flopa bi registra B i upisuje u
flip-flop bi , tako da je posle opadajue ivice signala upisb sadraj flip-flopa bi jednak sadraju flip-
flopa ai, odnosno bi = ai, i = 0, 1, 2, 3.

U notaciji za opis prenosa podataka izmeu flip-flopova, navedene mikrooperaciju opisujemo


sledeim iskazima:

1 : ai3 a3, ai2 a2, ai1 a1, ai0 a0


1 : bu3 ai3, bu2 ai2, bu1 ai1, bu0 ai0
upisb : b3 bu3, b2 bu2, b1 bu1, b0 bu0
1 : bi3 b3, bi2 b2, bi1 b1, bi0 b0

Prvi iskaz opisuju prenos sadraja flip flopa ai na izlaz aii , a drugi iskaz opisuje da se signal sa
izlaza aii preko posebnog provodnika prenosi na ulaz bui flip flopa bi , i = 0, 1, 2, 3. Opis prenosa
signala preko provodnika obino izostavljamo, pre svega jer je to oigledna mikrooperacije. Ako,
radi jednostavnosti izostavimo i iskaz koji opisuje prenos sadraja flip flopa na njegov izlaz, onda
gornje iskaze jednostavnije moemo napisati u obliku:
upisb : b3 a3, b2 a2, b1 a1, b0 a0

6
1 : bi3 b3, bi2 b2, bi1 b1, bi0 b0

Oznaimo sa A (B) stacionarni registar koji se sastoji od 4 flip-flopa, tako da je u A (B) smetena
binarna informacija a3 a2 a1 a0 (b3 b2 b1 b0). Neka je BI informaciju od 4 bita na izlazu registra B,
tako da je BI = bi3 bi2 bi1 bi0. Digitalni sistem sa prethodne slike za prenos sadraja iz registra A u
registar B meemo sada predstaviti blok emom prikazanom na sledeoj slici.

registar A registar B

4 AI 4 BU 4
AU D Q D Q BI

A B
upisa upisa

Mikrooperaciju prenosa podataka iz registra A u registar B moemo sada da opiemo sledeim


iskazom u RTL notaciji koji je jednostavniji u odnosu na prethodni, detaljni, opis:

upisb : B A
1 : BI B

Upis u vie registara

U praksi postoji interes da se podatak iz jednog upie u jedan ili vie registara. Na primer, sledea
slika pokazuje kako moemo da sadraj 4-bitnog registra A prenesemo i upiemo u jedan ili u oba
4-bitna registra B i C, pri emu su registri poravnati. Ideja je jednostavna, izlaz aii registra A
dovodimo na ulaz bui registra B i ulaz cui registra C, i = 0, 1, 2, 3, kao to pokazuje sledea slika.

7
registar A registar B
au3 ai3 bu3 bi3
D Q D Q
a3 b3
au2 ai2 bu2 bi2
D Q D Q
a2 b2
au1 ai1 bu1 bi1
D Q D Q
a1 b1
au0 ai0 bu0 bi0
D Q D Q
a0 b0
upisa

upisb

registar C
cu3 ci3
D Q
c3
cu2 ci2
D Q
c2
cu1 ci1
D Q
c1
cu0 ci0
D Q
c0

upisc

Digitalni sistem sa prethodne slike moe da obavi dve mikrooperacije, prenos sadraja registra A u
registar B i premos sadraja registra A u registar C. Uvoenjem oznaka koje smo ve prethodno
koristili, mikrooperacije mogu da se opiu sledeim iskazima u RTL notaciji:

upisb : B A
1 : BI B
upisc : C A
1 : CI C

Korienjem grafikih oznaka za registre, prethodni digitalni sistem moemo predstaviti blok
dijagramom sa sledee slike.

4 AI 4 BU 4
AU D Q D Q BI
A B
upisb
upisa
4 CU 4
D Q CI
C
upisc

8
Treba primetiti da u prethodnom digitalnom sistemu signali upisb i upisc mogu da se generiu
nezavisno, to znai da sadraj registra A moe da se prenese u registar B ili u registar C ili
istovremeno u oba registra B i C. Uvoenje ogranienja da upis moe biti samo u jedan registar
zadovoljava veinu primena a sa druge strane, u sluaju veeg broja registara, moe znaajno
smanjiti broj upravljakih signala za upis. Formalno, za sistem sa n registara, uvoenjem
navedenog ogranienja, broj upravljakih signala za upis smanjuje se sa n signala se na log2n.

Po pravilu, spoljni signali za upis dovode se na ulaze dekodera, iji izlazni signali koriste se kao
signali upisa u pojedinane registre. Ova ideja pokazana je na primeru upisa u jedan od etiri
registra, oznaena sa R0 do R3. Umesto etiri spoljna signala za upis, koristimo dva signala, koja se
dovode na ulaze 2/4 dekodera iji izlazni signali predstavljaju signale w0, w1, w2 i w3 za upis u
registre R0, R1, R2 i R3, respektivno.

4 AI 4 4 4
AU D Q D Q RI3
A w3 R3

4 4
D Q RI2
d3 w2 R2

a1 4 4
d2 D Q RI1
dekoder
2/4 w1 R1
a0
d1
4 4
D Q RI0
d0 w0 R0

itanje iz vie registara

Prenos sadraja iz registra na provodnike za prenos podataka naziva se itanje. Slino kao to u
praksi imamo interes za upis u vie registara, postoji interes za itanje iz vie registara. itanje iz
vie registara sastoji se u prenos sadraja izabranog registra na zajednike provodnike za prenost
podataka.

Postupak itanja iz vie registara sloeniji je u odnosu na itanje, pre svega zato to ne moemo
kratko spojiti izlaze dva ili vie standardnih logikih kola. Neka imamo m registara sa n bita i
hoemo da sadraj jednog od tih registara prenesemo na n provodnika preko kojih prenosimo taj
sadraj do nekog drugog digitalnog podsistema. U praksi se koristi nekoliko naina za obavljanje
ove mikrooperacije, a mi emo pokazati sledee:

Primena n multipleksera sa m ulaza,


Primena trostatikih bafera na izlazima registara.

Primena multipleksera za itanje iz vie registara


Da se prisetimo primera iz dela o prenosu podatka izmeu flip-flopova, digitalni sistem sa sledee
slike omoguava prenos sadraja jednog od flip-flopova, A ili B na zajedniki izlazni provodnik z.

9
s
D Q
A u1 s
z
i
u0

D Q 2/1
B multiplekser

U navedenom slucaju, z = A, ako je s=1 i z = B, ako je s=0 . Na slian nain moemo primeniti 4
multipleksera za prenos sadraja dva 4-bitna registra, R0 i R1 na 4 zajednika izlazna provodnika,
koja emo oznaiti sa Z i zatim sadraj odabranog registra sa Z upisati u 4-bitni registar C.

registar R1
s

D Q 4 x (2/1)
r13 multiplekser
D Q registar C
r12
u1 s z3 cu3 ci3
D Q i D Q
u0
r11 c3

D Q u1 s z2 cu2 ci2
r10 i D Q
u0
c2

u1 s z1 cu1 ci1
registar R0 i D Q
u0
c1
D Q
r03
u1 s zz cu0 ci0
i D Q
D Q u0
c0
r02

D Q
upisc
r01

D Q
r00

U ovom primeru, za s=1 imamo da je zi = r1i,, a ako je s=0 onda je zi = r0i . Takoe, na opadajuoj
ivici signala upisc signal zi upisuje se u bit i registra C. Navedene mikrooperacije opisujemo
sledeim RTL mikroprogramom:

(s=0) : z3 r03 , z2 r02 , z1 r01 , z0 r00


(s=1) : z3 r13 , z2 r12 , z1 r11 , z0 r10
upisc : c3 z3 , c2 z2 , c1 z1 , c0 z0

Slino kao ranije, oznaiemo R0 = r03 r02 r01 r00 , R1 = r13 r12 r11 r10 , C = c3 c2 c1 c0 , U0 = u03 u02
u01 u00 , U1 = u13 u12 u11 u010 i Z = z3 z2 z1 z0 ,Sa ovim oznakama prethodni mikroprogram moemo
skraeno predstaviti u sledeem obliku:

10
(s=0) : Z R0
(s=1) : Z R1
upisc : C Z

Niz od 4 multipreksera sa prethodnog dijagrama predstavljaemo sledeom grafikom oznakom.

s
4
R1 U1 4
4 x (2/1) I Z
R0 U0 MUX
4

Sa ovim oznakama, digitalni sistem za prenos sadraja iz 4-bitnih registara R0 i R1 u registar C


moe da se predstavi blok dijagramom prikazanim na sledeoj slici.

4 4 s
D Q
R1 U1
Z 4
I D Q 4
U0 C
4 4
D Q 4 x (2/1)
R0 MUX
upisc

Naravno, prethodni postupak moemo generalizovati, tako na primer, digitalni sistem za itanje iz
jednog od etiri registra R0, R1, R2 i R3, predstavljen je sledeim blok dijagramom.

4 4
D Q
R3 s1 s0

4 4 U3
D Q
R2
U2 4
Z
I D Q 4
4 4 U1 C
D Q
R1 U0
upisc
4 4 4 x (4/1)
D Q MUX
R0

Treba primetiti da se u ovom primeru koriste etiri multipleksera sa etiri ulaza i jednim izlazom
koji imaju dva zajednika signala za selekciju, s1 i s0. Ovaj sistem obavlja mikrooperacije
predstavljene sledeim RTL mikroprogramom (oznaka predstavlja negaciju simbola koji sledi iza
te oznake):

s1 s0 : Z R3
s1 s0 : Z R2
s1 s0 : Z R1

11
s1 s0 : Z R0
upisc : C Z

Primena trostatikih bafera za itanje iz vie registara

Trostatiki baferi stavljaju se na izlaz flip-flopova tako da je njihov izlaz ili jednak stanju flip-flopa
ili je u stanju visoke impendanse. Tako je na primer, za vrednost upravljakog signala s=0, izlaz i u
stanju visoke impendanse (skraeno HiZ), a za s=1, izlaz i jedak je stanju f flip-flop, vidi sliku
dole.

u D Q i
f
upis

Flip-flop sa trostatikim baferom obavlja sledee mikrooperacije:

upis : f u
s : i f
s : i HiZ

Na sledeem dijagramu na izlazima flip-flopova dva registra R0 i R1 (na slici levo) vezani su
trostatiki baferi koji imaju zajedniki upravljaki signal s0 i s1, respektivno. Usvojimo da je uvek
zadovoljen uslov s0 s1=0, to znai da su izlazi samo jednog od registara R0 i R1 aktivni, a da su
izlazi drugog registra u stanju visoke impendanse. Ovaj uslov lako se generalizuje za sluaj n
registara, u tom sluaju izlazi jednog registra treba da budu aktivni, a izlazi svih preostalih n-1
registara treba da budu u stanju visoke impendanse.

Ukoliko je prethodni uslov zadovoljen, onda moemo izlaz i1i registra R1 i izlaz i0i registra R0
kratko spojiti na provodnik zi , i =0,1,2,3. Ukoliko provodnik zi dovedemo na ulaz uci , i =0,1,2,3,
registra C, onda moemo da sadraj registra R1 ili registra R0 preko provodnika Z da prenesemo i
upiemo u registar C.

12
registar R1 s1
registar C
i13 z3 uc3
D Q D Q
r13 c3
i12
D Q z2 uc2 D Q
r12 c2
i11 z1 uc1
D Q D Q
r11 c1
i10 z0 uc0
D Q D Q
r10 c0

registar R0 s0 upisc
i03
D Q
r03
i02
D Q
r02
i01
D Q
r01
i00
D Q
r00

U ovom primeru, za s0 = 1 imamo da je zi = r0i,, a ako je s1=1 onda je zi = r1i , i =0,1,2,3 , pri emu
mora biti zadovoljen uslov s0 s1=0. Na opadajuoj ivici signala upisc signal zi upisuje se u bit i
registra C. Navedene mikrooperacije opisujemo sledeim RTL mikroprogramom:

(s0=1) : z3 r03 , z2 r02 , z1 r01 , z0 r00


(s1=1) : z3 r13 , z2 r12 , z1 r11 , z0 r10
upisc : c3 z3 , c2 z2 , c1 z1 , c0 z0

Slino kao ranije, oznaiemo R0 = r03 r02 r01 r00 , R1 = r13 r12 r11 r10 , C = c3 c2 c1 c0 i Z = z3 z2 z1
z0.,Sa ovim oznakama prethodni mikroprogram moemo skraeno predstaviti u sledeem obliku:

(s0=1) : Z R0
(s1=1) : Z R1
upisc : C Z
Naravno, uslov s0 s1=0 mora biti sve vreme zadovoljen.

Za registar sa izlaznim trostatikim baferima, prikazan na slici dole levo, moemo uvesti grafiku
oznaku datu na slici dole desno. Da bi oznaka bila jasnija, dobro je oznaiti da izlazi registra mogu
biti u stanju visoke impendanse. Na primer, na slici dole izlazi registra koji mogu biti u stanju
visoke impendanse oznaeni su zvezdicom (*).

13
registar R s

u3 i3
D Q
r3
s
u2 i2 4 4
D Q U I
D Q *
r2 R
u1 i1 upis
D Q
r1
u0 i0
D Q
r0

upis

Registar sa slike gore obavlja sledee mikrooperacije:

upis : R U
s : I R
s : I (visoka impendansa)

Sa ovom oznakom, digitalni sistem koji sadraj jednog od registara R0 i R1 moe da prenese i upie
u registar C, moe da se prikazati blok emom datom na slici dole.

s1
4 4
D Q *
R1

Z 4
D Q 4
s0 C
4 4
D Q *
R0 upisc

Poto izlazi samo jednog od registara R0 i R1 mogu biti aktivni u nekom trenutku, onda je pogodno
koristiti dekoder za aktiviranje izlaza registara iz kojih se vri itanje.

Naravno, prethodni postupak moemo generalizovati, tako na primer, digitalni sistem za itanje iz
jednog od etiri registra R0, R1, R2 i R3, predstavljen je sledeim blok dijagramom u kome se za
aktiviranje izlaza registara koristi 2/4 dekoder sa dva ulazna signala a1 i a0 za selekciju registra.

14
s3

4 s 4
D Q *
R3
s2

4 s 4
D Q *
a1 R2
2/4 4
Z
a0 s1 D Q 4
dekoder C
4 s 4
D Q *
R1
upisc
s0

4 s 4
D Q *
R0

Signali a1 i a0 za selekciju registra obino se nazivaju adressni signali ili skraeno adresa. Ako
oznaku A = a1 a0 i ako A interpretiramo kao binarni broj, onda digitalni sistem sa gornje slike
obavlja sledee mikrooperacije, za i = 0,1:

(A = i): Z Ri
upisc : C Z

Vremenski dijagram prenosa sadraja

Digitalni sistem sa prethodne slike opisali smo listom od dve mikrooperacije, pri emu je
zanemareno ponaanje sistema u vremenskom domenu. Kao to je ranije napomenuto, za upis u
registar potrebno je da ulazni signali podataka budu na raspolaganju i stabilni vreme tsetup pre
trenutka itanja, i da zadre svoje nivoe i budu stabilni jo vreme thold posle trenutka itanja.

Logika kola i trostatiki baferi od kojih su napravljeni moduli kao to je dekoder i flip flop sa
trostatikim izlazima, unose kanjenje izlaznog signala u odnosu na ulazni. Na primer, ako se u
trenutku t0 dovedu adresni signali A na ulaz dekodera, izlazi signali si dekodera aktivirae se i prei
u eljeno stanje u nekom kasnijem trenutku t1. Period td = t1 t0 unosi dekoder i naziva se kanjenje
dekodera.

Neka se signal si za selekciju registra, aktivira u trenutku t1 i dovede na trostatike bafere registra
Ri, i = 0, 1, 2, 3. Trostatiki baferi imaju svoje vreme kanjenja ttb , tako da e se signali na izlazu
trostatikog bafera i time na zajednikim provodnicima Z pojaviti u trenutku t2 = t1 + ttb . Poto se
kanjenja dekodera td i trostatikog bafera ttb sabiraju, ukupno vreme kanjenja tk itanja signala iz
jednog od registara jednako je tk = td + ttb. Ukoliko digitalni sistem radi na visokim uestanostima,
onda u ukupno vreme kanjenja kod itanja treba dodati i transportna kanjenja prostiranja signala
preko provodnika i druga kanjenja koja unose dodatna logika kola koja upravljaju radom sistema.

Na sledeem vremenskom dijagramu prikazan je redosled dogaaja od trenutka t0 kada se aktiviraju


adresni signali A.

15
A

si

upisc

td ttb tsetup thold


t
t0 t1 t2 t 3 t4 t5 t6

Kao to se vidi sa dijagrama, ako se adresni signali A aktiviraju u trenutku t0 izlazi dekodera si
aktivirae se posle vremena td u trenutku t1 a sadraj adresiranog registra pojavie se na
zajednikim provodnicima Z posle vremena ttb u trenutku t2. Meutim, za ispravan u registar C
potrebno je da signali za zajednikim provodnicima Z budu aktivni i stabilni za vreme tsetup pre
trenutka upisa u registar C.

Pretpostavimo da se upis u registar C deava u trenutku t3 na opadajuoj ivici signala upisc. To


znai da postupak itanja iz registara Ri treba zapoeti dovoljno rano, tanije za vreme td + ttb +
tsetup pre trenutka t3 upisa u registar C.

Isto tako, signali na zajednikim provodnicima Z treba da ostanu aktivni i stabilni jo vreme thold
posle trenutka upisa t3. Na projektantu ovog digitalnog sistema je da projektuje upravljaku
jedinicu koja e generisati signale A i upisc tako da navedeni uslovi budu zadovoljeni.

Vet projektant moe da iskoristi kanjenja dekodera i trostatikih bafera i izrauna kada najranije
signali adresa A mogu da dobiju neke druge vrednosti (adresiraju neki drugi registar). U
prethodnom primeru neka je t6 trenutak do kada signali Z treba da budu stabilni, odnosno t6 = t3 +
thold . U tom sluaju signale adresa A moemo prevesti u neke druge vrednosti ve u trenutku t4 = t6
ttb td .

Period tc = t6 t0 obino se naziva ciklus (ili mainski ciklus) itanja iz registara R i upisa u
registar C. Videemo kod memorije da razlikujemo posebno ciklus upisa (mainski ciklus upisa) od
ciklusa itanja (mainski ciklus itanja).

16
Univerzitet u Novom Sadu
Fakultet tehnikih nauka
Departman za energetiku, elektroniku i telekomunikacije
Katedra za elektroniku

UVOD U DIGITALNU I MIKRORAUNARSKU


ELEKTRONIKU

Beleke sa predavanja #10:

Memorija

Pripremio: prof. dr Veljko Malbaa


Novi Sad, mart 2013. godine
2
Opti model memorije

U optem sluaju, memorija je niz registara, koje nazivamo memorijski registri ili memorijske
lokacije, sa definisanim operacijama upisa i itanja. Svaki registar ima jedinstven identifikacioni
broj koji se naziva adresa memorijskog registra ili jednostavnije adresa. Adresa memorijskog
registra prenosi se memoriji preko m ulaznih digitalnih adresnih signala. Registar ija je adresa
dovedena na ulazne adresne signale nazivamo adresirani memorijski registar. Skup spoljnih
provodnika preko kojih se prenosi adresa naziva se adresna magistrala ili adresna sabirnica
(Engleski address bus).

Memorija iji registri imaju n bita obino ima n spoljnih signala koji se koriste za prenos sadraja
izmeu adresiranog registra i neke spoljne jedinice. Informacija koja se pojavljuje na spoljnim
signalima za prenos sadraja registara naziva se podatak. Skup spoljnih provodnika preko kojih se
prenose podaci nazivamo magistrala podataka ili sabirnica podataka (Engleski data bus).

Operacija itanja je postupak kojim se sadraj adresiranog memorijskog registra prenosi na


magistralu podataka. Operacija upisa je postupak kojim se podatak sa magistrale podataka upisuje
u adresirani memorijski registar.

Memorija sa m adresnih bita obino ima 2m memorijskih registara, koje logiki predstavljamo kao
linearan niz registara kao to je prikazano na sledeoj slici. Svaki registar ima po n bita i ima
pridruenu jedinstvenu adresu a. Sadraj memorijskog registra sa adresom a oznaiemo sa M[a].

m-1 m-1
2 registar 2

...

i registar i
m
adresa 2 registara
...

2 registar 2
1 registar 1
0 registar 0

registri imaju po n bita


U pravougaonike koji predstavljaju memorijske registre obino upisujemo sadraje registara. Na
primer, memorija sa osam 8-bitnih memorijskih registara sa proizvoljnim sadrajima predstavljena
je na sledeoj slici. Sadraji registara predstavljeni su u heksadecimalnom brojnom sistemu.

7 E1
6 22
5 C7
4 4B
3 00
2 A4
1 30
0 2F

3
Poluprovodnika memorija koja ima operaciju upisa i itanja moe da se napravi od niza
stacionarnih registara koje smo videli u prethodnom poglavlju. U zavisnosti od raspoloivog broja
ulaznih i izlaznih signala kao i od ogranienja u pogledu istovremenog izvoenja operacija itanja
i upisa, moemo napraviti razliite modele memorije. U narednim odeljcima videemo prvo model
male memorije, koja se esto koristi za registre opte namene mikroprocesora, a zatim opti model
poluprovodnike memorije sa operacijama upisa i itanja.

U optem sluaju, memorija moe da ima potpuno nezavisne operacije itanja i upisa, to znai da
se istovremeno mogu obavljati operacije itanja iz proizvoljnog memorijskog registra i upisa u
proizvoljni memorijski registar. Za operaciju upisa postoji adresna magistrala za upis, magistrala
podataka za upis i upravljaki signal za upis. Za operaciju itanja postoji posebna adresna
magistrala za itanje, magistrala podataka za itanje i upravljaki signali za itanje. Model ovakve
memorije predstavljen je na sledeoj slici. Naravno, poluprovodnika memorija ima prikljuke za
napajanje i masu, ali njih emo podrazumevati i neemo predstavljati na modelima memorije.

adresa za upis m m adresa za itanje

upravljaki signal za upis upravljaki signal za itanje


memorija
n n
podatak za upis proitani podatak

Strelice koje prikazuju spoljne prikljuke pokazuju smer prenosa signala. Za signale koji se
prenose od neke spoljne jedinice prema memoriji kaemo da su ulazni, a za signale koji se prenose
od memorije prema nekoj spoljnoj jedinici kaemo da su izlazni signali. U navedenom modelu
memorije svi adresni i upravljaki (upis i itanje) signali i signali podataka za upis su ulazni, a
samo signali podataka za itanje su izlazni signali.

Ovaj model memorije ima sledee spoljne signale:


m ulaznih adresnih signala za upis, adresu koju predstavljaju ovi signali oznaiemo sa A W ,
m ulaznih adresnih signale za itanje, adresu koju predstavljaju ovi signali oznaiemo sa A R,
n ulaznih signala podataka za upis, podatak koji predstavljaju ovi signali oznaiemo sa D W ,
n izlaznih signala podataka za itanje, podatak koji predstavljaju ovi signali oznaiemo sa D R ,
dva upravljaka signala, itanje i upis, koje emo oznaiti sa R i W, respektivno.
Prema tome, ovaj model memorije ima ukupno 2(m+n+1) spoljnih prikljuaka za prenos isto
toliko signala i jo dva prikljuka za napajanje i masu. Sadraj memorijke lokacije ija je adresa A
oznaavamo sa M[A].

Memorija obavlja operaciju itanja (upisa) ako je aktivan upravljaki signal itanje (upis). Slino
kao kod flip-flopova i registara, u zavisnosti od implementacije memorije, aktivan upravljaki
signal (itanje ili upis) moe podrazumevati:
upravljaki signal je na logikoj 0,
upravljaki signal je na logikoj 1,
upravljaki signal je na uzlaznoj (prednjoj) ivici ili
upravljaki signal je na silaznoj (zadnjoj) ivici.

Ako drugaije nije navedeno, smatraemo da su upravljaki signali za upis aktivan na opadajuoj
ivici, a signal za itanje aktivan na logikoj 1.

4
Za obavljanje operacije 'itanje' (umesto 'obavljanje operacije itanje' obino kaemo 'itanje') iz
memorijskog registra i, neophodno je prvo memoriji spolja dovesti adresu i na ulazne prikljuke
adresnih signala za itanje, tako da je A R = i. Kada se aktivira signal R za itanje, memorija e
sadraj memorijskog registra i preneti na magistralu podataka za itanje, tako da je D R = M[A R ].
Formalno, ovu operaciju predstavljamo sledeim RTL iskazom:

R: P R M[A R ]

Kod operacije itanja iz memorijskog registra i, prethodni sadraj registra i ostaje nepromenjen.
Dogaaji u toku operacije itanja predstavljeni su sledeim vremenskim dijagramom.

AR
ulazni
signali R
memorije
W 0

izlazni
signali DR
memorije
tr tvalid
t
t0 t1 t2 t3

Postupak itanja iz memorije poinje tako to se u trenutku t 0 na ulazne adrese za itanje dovedu
adresni signali A R i aktivira upravljaki signal R za itanje (signal R se postavi na logiku 1). U
toku postupka itanja, upravljaki signal za upis W mora bi neaktivan, u naem sluaju na logikoj
0. Pre trenutka t 0 signal R je na logikoj 0, a adresni signali mogu imati proizvoljne vrednosti.
Memorija dri svoje izlazne signale za podatke D R u stanju visoke impendanse, to je
predstavljeno isprekidanom linijom na dijagramu.

U trenutku t 0 upravljaka jedinica memorije prepoznaje da je upravljaki signal R postao aktivan


(u naem sluaju na logikoj 1) i upravlja internim mikrooperacijama koje treba da sadraj
memorijskog registra sa adresom A R prenesu na izlazne signale za podatke D R . Za obavljanje ovih
mikrooperacija potrebno je neko vreme, tako da se sadraj adresiranog memorijskog registra
(podatak) pojavljuje na izlaznim signalima D R u trenutku t 1 .

Proitani podatak obino treba da se upie u registar neke spoljne jedinice, koja obavlja operaciju
itanja iz memorije, pa je potrebno da se podatak zadri na signalima D R neko vreme. U naem
primeru podaci se zadravaju do trenutka t 2 kada se upravljaki signal za itanje R prevodi u
neaktivno stanje (u naem primeru vraa se na logiku 0). U intervalu (t 2 - t 1 ) signali D R su stabilni
i spoljna jedinica u tom periodu moe da podatak prenese u svoj interni registar. Obino se
proitani podatak u trenutku t 2 upisuje u interni registar spoljne jedinice i t 2 se naziva trenutak
itanja.

Treba imati u vidu da e zbog kanjenja u svojim logikim kolima, memorija drati signale D R jo
neko vreme posle prevoenja signala R u neaktivno stanje. U naem primeru memorija e izlazne
signale D R drati stabilne jo do trenutka t 3 , tako da paljivi projektant moe da koristi period (t 3 -

5
t 2 ) za obezbeenje vremena dranja t hold za spoljnu jedinicu. Vreme t rR = (t 3 - t 0 ) naziva se vreme
odziva memorije kod operacije itanja.

Za obavljanje operacije upisa (umesto 'obavljanje operacije upisa' obino kaemo 'upis') podatka
p u registar j, neophodno je prvo memoriji spolja dovesti adresu j na ulazne prikljuke adresnih
signala za upis, tako da je A W = j, i podatak p dovesti na ulazne signale podataka za upis, tako da je
D W = p. Kao to smo na poetku rekli, upis se obavlja na opadajuoj ivici signala W, meutim,
signal W treba staviti na logiku 1 dovoljno pre opadajue ivice, kako bi memorija imala dovoljno
vremena za operaciju upisa.

Kada se aktivira signal W za upis, memorija e u memorijski registar j upisati podatak p sa


magistrale podataka za upis. Formalno, ovu operaciju predstavljamo sledeim RTL iskazom:

W: M[A W ] D W

Kod operacije upisa u registar j, prethodni sadraj registra j nepovratno je izgubljen. Dogaaji u
toku operacije upisa predstavljeni su sledeim vremenskim dijagramom.

AW

R 0

DR
t
t0 t1 t2

Postupak upisa u memoriju poinje tako to se u trenutku t 0 na ulazne adrese za upis A W dovede
adresa j, na priljuke za ulazni podatak D R dovede se podatak p i upravljaki signal W za upis
postavi na logiku 1. U toku postupka upisa, upravljaki signal za itanje R mora bi neaktivan, u
naem sluaju na logikoj 0. Pre trenutka t 0 signal W je na logikoj 0, a adresni signali mogu imati
proizvoljne vrednosti.

U trenutku t 0 upravljaka jedinica memorije prepoznaje da je upravljaki signal W aktivan (u


naem sluaju na logikoj 1) i zapoinje interne mikrooperacije koje podatak p sa ulaznih signala
D R upisuju u memorijski registar sa adresom A W . Za obavljanje ovih mikrooperacija potrebno je
neko vreme, pa se svi ulazni signali memorije dre u istom stanju sve do nekog trenutka t 1 , koji
predstavlja opadajuu ivicu signala za upis W, pri emu se pretpostavlja da je memoriji dovoljan
interval (t 1 - t 0 ) da obavi sve interne operacije upisa.

esto se zahteva da ulazni signali memorije budu stabilni jo neko vreme, koje se naziva vreme
dranja i oznaava sa t hold , posle prevoenja signala za upis W u neaktivno stanje. U naem
primeru, ulazni signali za adrese A W i za podatke D R dre se u aktivnom i stabilnom stanju do
trenutka t 2 , tako da je t hold = t 2 - t 1 . Smatraemo da je trenutak t 1 kada se signal W prevodi u
neaktvno stanje, trenutak upisa ulaznog podatka p u adresiranu memorijsku lokaciju. Vreme t rW =
(t 2 - t 0 ) naziva se vreme odziva memorije kod operacije upisa.

Prema tome, operacije ovog modela memorije predstavljamo sledeim RTL programom:

6
R: D R M[A R ]
W: M[A W ] D W

Implementacija opteg modela memorije

Implementaciju opteg modela memorije pokazaemo na primeru male memorije sa 4 stacionarna


n-bitna registra, oznaena sa G0 do G3, sa n-bitnim paralelnim ulazom i n-bitnim paralelnim
trostatikim izlazima. Registar G sa n bita predstaviemo grafikom oznakom prikazanom na
sledeoj slici. Na slici nisu strelicama oznaeni smerovi prenosa signala, ali se podrazumeva da su
upravljaki signali za itanje (R) i upis (W) ulazni i da su U ulazni signali za podatke, a I izlazni
signali za podatke.

U n
W R
G
n
I

Da se podsetimo, registar sa gornje slike obavlja sledee elementarne operacije:

W: GU
R: IG
R; I HiZ

Radi jednostavnosti, poslednji iskaz neemo pisati, nego emo podrazumevati da kada je R = 0,
onda su izlazi I za podatke u stanju visoke impendanse. Navedeni iskazi predstavljaju funkcionalni
opis registra, a za opis ponaanja u vremenskom domenu obino koristimo vremenski dijagram.

Memorija sa nezavisnim operacijama itanja i upisa dobija se tako to se spoljni signali za ulazni
podatak (D W ) dovedu na ulaze za podatke svakog od etiri registra, a izlazni signali za podatke
registara dovedu na izlaznu magistralu za podatke (D R ). Jedan dekoder koristi se za selekciju
registra za upis a drugi za selekciju registra za itanje, kao to pokazuje sledea slika.

7
aw1 aw0 ulazni ar1 ar0
podaci (DW)
dekoder 2/4 dekoder 2/4
n
d0 d1 d2 d3 d3 d2 d1 d0

W
W3 G3 R3 R

W2 G2 R2

W1 G1 R1

W0 G0 R0

n
izlazni podaci (DR)

Adresni signali za upis A W = (aw 1 , aw 0 ) , dekodiraju se i izlazni signali dekodera d 0 , d 1 , d 2 , d 3


koriste za selekciju registra u koji treba upisati podatak koji je na magistrali za ulazne podatke
(D W ). Pored registra Gi nalazi se I kolo koje generie upravljaki signal Wi za upis u registar Gi.
Signal Wi aktivirae se na opadajuoj ivici signala za upis W ako je aktivan pridrueni signal za
selekciju d i .

Da bi se pravilno generisao signal za upis Wi potrebno je adresne signale aw 0 i aw 1 aktivirati


odreeno vreme pre opadajue ivice signala W i drati ih u aktivnom stanju jo neko vreme posle
opadajue ivice W. Sledei dijagram pokazuje generisanje signala W2 u primeru upisa u registar
G2.

aw1
aw0

W2

Na slian nain, adresni signali ar 0 i ar 1 dekodiraju se i izlazni signali d 0 , d 1 , d 2 , d 3 koriste za


selekciju registra iji sadraj se prenosi na magistrali za izlazne podatke. Na slici je na desnoj
strani registra Gi logiko I kolo koje generie upravljaki signal Ri za itanje iz registra Gi. Signal
Ri aktivira se ako je aktivan signal za upis R i ako je aktivan pridrueni signal za selekciju d i .

Ako ulazni podatak oznaimo sa D W , a izlazni podatak sa D R , onda sledei RTL iskazi opisuju
mikrooperacije opisane memorije:

(aw 1 aw 0 = i) W: Gi D W
(ar 1 ar 0 = j) R: D R Gj

8
Registri opte namene

Savremeni mikroprocesori obino imaju skup registara opte namene Gi, i = 0, 1, ... , n-1, koji se
koriste za privremeno uvanje esto korienih informacija. Pored upisa ulaznog podatka u
proizvoljni registar i itanja sadraja proizvoljnog registra, registri opte namene treba da omogue
prenos sadraja iz jednog registra u drugi, odnosno mikrooperaciju Gi Gj. Na sledeoj slici
prikazana je jednostavna modifikacija opteg modela memorije, koja omoguava navedene
mikrooperacije.

ulazni
podaci (DW)
s n n
U1 U0
aw1 aw0 s n (2x1) ar1 ar0
I MUX
dekoder 2/4 dekoder 2/4
n
d0 d1 d2 d3 d3 d2 d1 d0

W
W3 G3 R3 R

W2 G2 R2

W1 G1 R1

W0 G0 R0

n
izlazni podaci (DR)

U ovoj implementaciji koristi se blok od n multipleksera tipa 2/1, tako da se na ulaze U1 dovode
spoljni ulazni podaci D W , a na ulaze U0 dovode se izlazni podaci registara D R . Ako je selekcioni
signal s na logikoj 1, izlaz I multipleksera jednak je ulaznim podacima D W , a za s na logikoj 0,
izlaz I je jednak D R , odnosno:

s : I DW
s : I D R

U zavisnosti od stanja selekcionog signala, na ulaze registar moemo dovesti i upisati ili ulazni
podatak D W ili sadraj nekog drugog registra. Prema tome, ova implementacija registara opte
namene moe da obavi sledee elementarne operacije:

s: I DW
s : I DR
(aw 1 aw 0 = i) W: Gi I
(ar 1 ar 0 = j) R: D R Gj

9
Na primer, ako elimo ulazni podatak D W upisati u registar G1, onda treba staviti s = 1, aw 1 = 0,
aw 0 = 1 i aktivirati signal za upis W. Naravno, ovi signali treba da se pravilno generiu u vremenu
tako da zadovolje vreme postavljanja i vreme dranja za registre.

Prethodni RTL iskazi obuhvataju detalje koji nam nisu uvek potrebni. Na primer, kada
posmatramo funkcionalnost ove implementacije, onda je umesto iskaza koji pokazuju da ulazni
podatak prvo prolazi kroz multipleksere, pa se upisuje u registar, dovoljno je napisati da se
selektovani ulaz multipleksera upisuje u registar. Na taj nain koristimo jednostavnije RTL iskaze,
koji funkcionalno opisuju operacije registara opte namene.

Na primer, sledei iskazi govore da ova implementacija registara opte namene obavlja upis
spoljnjeg podatka (D W ) u registar i, prenos iz jednog registra (i) u drugi registar (j) i moe da obavi
itanje iz registra i:

Gi D W
Gi G j
D R Gi

U gornjim izrazima je i, j = 0, 1, 2, 3. Svaki od navedenih RTL iskaza moe da se predstavi RTL


iskazima koji detaljnije opisuju elementarne operacije koje dovode do realizacije navedenih
operacija. Ovo je opis registara opte namena na viem nivou apstrakcije i ne obuhvata detalje koji
nisu neophodni.

Navedena implementacija registara opte namene omoguava istovremeno itanje iz proizvoljnog


registra i upis u proizvoljan registar. Da bi se ove operacije mogle istovremeno obaviti, postoje dve
interne magistrale, jedna za prenos podataka na ulaze registara, i druga za prenos podataka sa
izlaza registara. Ukoliko uvedemo ogranienje da moe da se u datom trenutku obavi ili operacija
upisa ili operacija itanja, onda prethodni model moe da se pojednostavi i da se koristi samo
jedna interna magistrala (IM).

U ovoj realizaciji registara opte namene koristimo trostatike bafere. Primer 4-bitnog trostatikog
bafera prikazan je na sledeoj slici levo. Ulazni signali dovode se na trostatike konvertore iji
izlazi su jednaki ulaznim signalima (ako je signal dozvole d = 1) ili su u stanju visoke impendanse
(ako je d = 0).

u3 u2 u1 u0
d U
4
d
bufer

I 4
i3 i2 i1 i0

Ako sa U oznaimo U = u 3 u 2 u 1 u 0 a sa I = i 3 i 2 i 1 i 0 onda mikrooperacije trostatikog bafera


opisujemo sledeim RTL iskazima:

d: I U
d; I HiZ

Kao i ranije, drugi iskaz emo podrazumevati i neemo ga pisati. Generalizacija trostatikog bafera
sa 4 bita na trostatiki bafer sa n bita jednostavna je i ve smo je ranije opisali.

10
Ovaj model registara opte namene moe da se realizuje modifikacijom opteg modela memorije,
tako to se kratko spoji ulazna i izlazna magistrala za podatke i dodaju trostatiki baferi za
odvajanje spoljnih magistrala i unutranje interne magistrale (IM). Spajanje magistrala izvodi se
kratkim spajanjem provodnika i ulazne i izlazne magistrale, i = 0, 1, 2, ... , n-1. Idejno reenje sa 4
registra opte namene prikazano je na sledeoj slici.

aw1 aw0 ulazni podaci (DW) ar1 ar0

dekoder 2/4 ulazni bafer du dekoder 2/4


d0 d1 d2 d3 interna magistrala(IM) d3 d2 d1 d0

W
W3 G3 R3 R

W2 G2 R2

W1 G1 R1

W0 G0 R0

di izlazni bafer
izlazni podaci (DR)

Podaci sa ulazne magistrale za podatke (D W ) dovode se preko ulaznih bafera na internu magistralu
(IM). Podaci sa interne magistrale IM preko izlaznih bafera prenose se na izlaznu magistralu D R .
Podaci sa interne magistrale IM dovode se na ulaze svih registara, isto tako, izlazi svih registara
spojeni su na internu magistralu IM. Prema tome, ova implementacija regisatra opte namene
obavlja elementarne operacije opisane sledeim RTL naredbama:

du : IM D W
di : D R IM
(ar 1 ar 0 = j) R : IM Gj
(aw 1 aw 0 = i) W : Gi IM

U ovoj implementaciji kombinacija upravljakih signala R = du = 1 nije dozvoljena, zato to ne


smemo na internu magistralu istovremeno dovesti ulazni podatak D W i sadraj nekog registra Gi.
Sledea tablica pokazuje koje upravljake signale je potrebno aktivirati za obavljanje
mikrooperacija nad registrima opte namene.

du di R W ar 1 ar 0 aw 1 aw 0 RTL opis operacija


1 0 0 -- i Gi D W upis u registar
0 1 1 j -- D R Gj itanje iz registra
0 0 1 j i Gi Gj prenos sadraja iz jednog
registra u drugi

11
Memorija sa jednom magistralom za adrese i jednom za podatke

Prednost opteg modela memorije je to su operacije operacije upisa i itanja potpuno nezavisne i
mogu da se izvode istovremeno. Meutim, broj spoljnih prikljuaka ovog modela memorije je
suvie veliki to poveava cenu memorije. Smanjenje broja prikljuaka moe se postii ako se
uvede ogranienje, na primer da memorija u datom trenutku moe da obavlja jednu operaciju,
itanje ili upis. U ovom sluaju moemo koristiti jednu adresnu magistralu, pa memoriju
predstavljamo sledeim modelom.

adrese
m
n n
podaci za upis podaci za itanje

memorija
upis

itanje

Ova memorija ima ukupno m+2n +2 spoljnih prikljuaka za prenos signala i naravno dva
prikljuka za napajanje i masu. Ako adresu na adresnoj magistrali oznaimo sa a, onda operacije
ovog modela memorije predstavljamo sledeim RTL programom:

R: p R M[a]
W: M[a] p W

Ovaj model memorije ima ogranienje da u bilo kom trenutku ili je aktivan signal R ili signal W ili
ni jedan nije aktivan, ovaj uslov oznaavamo sa R W = 0.

Dalje smanjenje broja spoljnih prikljuaka moe se postii meusobnim spajanjem spoljnih
prikljuaka magistrale podataka za upis i magistrale podataka za itanje, odnosno uvoenjem
zajednikih prikljuaka za dvosmerni prenos signala podataka, videti sliku dole. Kod operacije
itanja smer signala na magistrali podataka je od memorije prema spoljnoj jedinici, a kod operacije
upisa smer signala na magistrali podataka je od spoljne jedinice prema memoriji.

m
adrese

memorija n
upis podaci

itanje

Ako adresu na adresnoj magistrali oznaimo sa a i podatak na magistrali podataka sa p, onda


operacije ovog modela memorije predstavljamo sledeim RTL programom:

R: p M[a]
W: M[a] p
(uz uslov R W = 0)

12
Neke memorije umesto upravljakih signala R i W, koriste signal CS (engleski Chip Select) za
aktiviranje memorije i signal R/W koji odreuje operaciju koju memorija treba da obavi. Ako je CS
= 0, memorija ne obavlja ni jednu operaciju (kaemo da memorija nije aktivna). Za CS = 1,
memorija obavlja itanje ako je R/W = 1, a operaciju upisa ako je R/W = 0. Naravno, memorija
moe da ima tri upravljaka signala, CS, R i W, iako je jedan od njih funkcionalno suvian.
Navedena dva modela prikazana su na sledeoj slici.

adrese adrese
m m

CS CS
n n
R/W R memorija
memorija
podaci podaci
W

Sva tri navedena modela sa upravljakim signalima, (R, W), (CS, R/W) i (CS, R, W), imaju iste
izraajne mogunosti za odreivanje operacije memorije, kao to pokazuje sledea tabela.
Crticama oznaeno je da je svejedno koju vrednost ima signal.

Signali R i W Signali CS i R/W Signali CS, R i W


Operacija
R W CS R/W CS R W
0 0 0 -- 0 -- -- nema operacije
1 0 1 1 1 1 0 itanje
0 1 1 0 1 0 1 Upis
1 1 -- -- 1 1 1 nije definisano

Implementacija memorije sa jednom magistralom za podatke i jednom za adrese

Jedna implementacije memorije sa 4 memroijska registra, jednom magistralom za podatke i


jednom magistralom za adrese prikazana je na sledeoj slici. Spoljna dvosmerna magistrala
podataka razdvaja se preko trotastikih bafera na internu magistralu za upis (IMW) i internu
magistralu za itanje (IMR). Adresni signali se dekodiraju i zajedno sa ulaznim signalima za upis
(W) i itanje (R) preko dvoulaznih I kola generiu signale za itanje i upis za pojedinane registre.

13
podatak (p)
n
R W
izlazni bafer
ulazni bafer

n n

R
d3 G3 IMW IMR
W

a1 R
d2 G2
W
a0
Adresa (a)
R
d1 G1
W

CS
R
d0 G0
W
dekoder 2/4

Kod ove implementacije, signal za aktiviranje memorije (engleski Chip Select ili CS) lako se uvodi
kao signal dozvole za dekoder. Kada je CS = 0, svi izlazi dekodera su na logikoj 0, memorija ne
obavlja operaciju upisa ni itanja i kaemo da nije aktivna. Za CS = 1, memorija obavlja operaciju
itanja (ako je R = 1) ili upisa (za opadajuu ivicu signala W). Kao to je ve reeno, ako postoji
signal CS onda je jedan od signala R i W suvian i moe se interno generisati. Na primer, kod
memorije sa upravljakim signalima (CS, R), upravljaki signal W moe se interno generisati
invertovanjem signala R.

Kao to smo ve videli, operacije memorije moemo opisati sledeim RTL iskazima, pri emu je
sa a oznaena adresa na adresnoj magistrali a sa p podatak na magistrali podataka:

CS R: p M[a]
CS W: M[a] p
(uz uslov R W = 0)

Sprega mikroprocesora i memorije

Mikroprocesor i poluprovodnika memorija su meusobno kompatibilni u smislu da se mogu


neposrednu meusobno povezati. Neposredno veza znai da se adresni signali mikroprocesora
veu sa adresnim signalima memorije, signali podataka mikroprocesora sa signalima podataka
memorije i upravljaki signali mikroprocesora sa odgovarajuim signalima memorije.

Sledea slika prikazuje neposrednu vezu mikroprocesora i memorije u sluaju da imaju isti broj
adresnih signala (m) i signala za podatke (n) i da su upravljaki signali mikroproceosra i memorije
R i W.

14
m
adrese adrese

podaci n
podaci

R R
W W

mikroprocesor memorija

Neposredna veza mikroprocesora i memorije koji imaju isti broj adresnih signala (m) i signala za
podatke (n)

Sprega mikroprocesora i memorije moe biti sinhrona i asinhrona. Kod sinhrone sprege
podrazumeva se da je memorija dovoljno brza da operacije itanja i upisa obavi u predvienom
vremenskom intervalu. Sledea slika prikazuje vremenski dijagram ciklusa itanja kod sinhrone
sprege. Ciklus traje ukupno tri periode sinhronizacionog signala (signala takta). Na poetku
periode T1 mikroprocesor stavi na adresne linije signale adrese memorijske lokacije iz koje treba
proitati podatak, a zatim, kad su adresni signali dovoljno stabilni aktivira signal itanja R. Za sve
vreme ciklusa itanja signal W je na logikoj 0, odnosno u neaktivnom stanju.

T1 T2 T3

takt

adrese

R
1
W 0
trenutak itanja

podaci

Mainski ciklus itanja

Vremenski dijagram itanja kod sinhrone sprege

U trenutku kada primi aktivan signal itanja R, memorija dekoduje adresne signale, pristupi
adresiranoj memorijskog lokaciji i sadraj te lokacije prosledi na magistralu podataka. Svakako da
memorijskim kolima treba izvesno vreme da obavi sve ove operacije, tako da se sadraj adresirane
memorijske lokacije pojavljuje na linijama za podatke sa kanjenjem. Mikroprocesor ostavlja
memoriji tano odreeno vreme, u navedenom primeru to je do opadajue ivice impulsa T3, kada
mikroprocesor signale sa magistrale podataka uitava u interni registar. Posle toga adresni i
upravljaki signali (u ovom sluaju signal R) prevode se u neaktivno stanje, ime se zavrava
ciklus itanja. Ciklus itanja naziva se jo mainski ciklus.

Ciklus upisa poinje tako to mikroprocesor stavlja na adresne linije adresne signale, a na linije za
podatke signale podatka koji treba upisati u adresiranu memorijsku lokaciju. Posle toga aktivira se
signal W za upis, dok signal R za itanje ostaje na logikoj 0. Po isteku dovoljno dugog

15
vremenskog intervala, u ovom primeru do opadajue ivice impulsa T3 memorija treba da podatak
sa magistrale upie u adresiranu memorijsku lokaciju. Posle tog trenutka, svi signali se vraaju u
poetno stanje i sve je spremno za sledei ciklus.

T1 T2 T3

takt

adrese
trenutak upisa
podaci

1
R 0

Mainski ciklus upisa

Mainski ciklus upisa kod sinhrone sprege

Ciklusi upisa i itanja nazivaju se mainski ciklusi. Izvrenje instrukcije sastoji se iz nekoliko
mainskih ciklusa: na primer jedan ciklus za itanje koda operacije, drugi ciklus za itanje
operanda, trei ciklus za interne operacije i etvrti ciklus za upis rezultata u memoriju.

Sinhrona sprega mikroprocesora i memorije, na primer sprega koju prikazuje Slika 7.3, ima
sledee karakteristike:

Mikroprocesor nema povratnu informaciju da je memorija zavrila zahtevanu operaciju. Prema


tome, mikroprocesor mora da memoriji ostavi dovoljno vremena da obavi operaciju itanja ili
upisa i to u najnepovoljnijem sluaju.
Mikroprocesor moe da radi onoliko brzo koliko dozvoljava najsporija memorijska jedinica u
sistemu.
Sinhrona sprega je jednostavna.
Ako memorijski modul nije dovoljno brz, onda treba smanjiti frekvenciju takta mikroprocesora
ili prei na korienje bre memorije.

Kod asinhrone sprege memorija posebnim signalom (koritiemo engleski termin Ready) saoptava
mikroprocesoru da je zavrila operaciju itanja odnosno upisa, Slika 7.6. Mikroprocesor nadgleda
signal Ready i produava mainski ciklus sve do trenutka kada memorija zavri zahtevanu
operaciju.
m
adrese adrese

podaci n
podaci

R R
W W

Ready Ready

mikroprocesor memorija

16
Asinhrona sprega mikroprocesora i memorije

Sledea slika prikazuje mainski ciklus sa asinhronom spregom u poreenju sa istim ciklusom kod
sinhrone sprege. Radi jednostavnosti, ovde su pravougaonicima sa upisanim oznakom perioda
signala takta predstavljeni svi signali koji su navedeni u prethodnim vremenskim dijagramima.
Tako na primer mainski ciklus kod sihnrone sprege, Slika 7.7 (gornji dijagram), traje tri perioda
takta oznaena sa T2, T2 i T3.

Mainski ciklus sa
sinhronom spregom T1 T2 T3

Mainski ciklus sa
T1 T2 Tw Tw T3
asinhronom spregom

Ready

Primer asinhronog mainskog ciklusa sa umetanjem perioda ekanja Tw

Kod asinhrone sprege, na poetku mainskog ciklusa, na primer na kraju periode takta T1,
memorija prevede signal Ready na logiku jedinicu i time obavetava mikroprocesor da je
zapoela zahtevanu operaciju, ali da je jo nije zavrila. Na kraju periode T2 mikroprocesor
proverava signal Ready i ako je na logikoj nuli, produava mainski ciklus umetanjem periode
ekanja Tw. Na kraju periode Tw, mikroprocesor ponovo proverava Ready, ako je i dalje na
logikoj 0 onda umetne jo jednu period ekanja Tw. Ovaj postupak se ponavlja dok memorija ne
zavri zahtevanu operaciju i obavesti mikroprocesor tako to vrati signal Ready na logiku 1. Kada
detektuje visoki nivo signala Ready, mikroprocesor zavri mainski ciklus tako to obavi
mikrooperacije predviene periodom T3.

Krakteristike asinhrone sprege:

Mikroprocesor dobija obavetenje da je memorija zavrila predviene operacije, pa je sprega


mikroprocesora i memorije pouzdanija.
Mikroprocesor moe da radi sa memorijama razliite brzine i prilagoava trajanje mainskog
ciklusa brzni svake memorijske jedinice.
Asinhrona sprega je sloenija u odnosu na sinhronu spregu.

17
Univerzitet u Novom Sadu
Fakultet tehnikih nauka
Departman za energetiku, elektroniku i telekomunikacije
Katedra za elektroniku

UVOD U DIGITALNU I MIKRORAUNARSKU


ELEKTRONIKU

Beleke sa predavanja #11

Model jednostavnog procesora

Pripremio: prof. dr Veljko Malbaa


Novi Sad, 2007. godine
1. Model jednostavnog mikroprocesora

Cilj ovog poglavlja je da studente upozna sa osnovnim elementima i principima organizacije


mikroprocesora i mikroraunara i pripremi studente za laboratorijske vebe sa mikroprocesorom
Edulent.

1.1 Osnovni elementi

Registar je osnovni elemenat sloenog digitalnog sistema i moe se zamisliti kao niz D flip-flopova
sa zajednikim signalom takta i odvojenim signalima za ulaze i izlaze pojedinih flip-flopova. Na
prednjoj ivici signala takta binarni podaci koji su na ulazima prevode flip-flopove u odgovarajua
stanja, tako da se podaci sa ulaza prenose na izlaze flip-flopova. Po zavretku prednje ivice takta,
flip-flopovi vie ne menjaju svoje stanje do sledee prednje ivice signala takta. Stanje registra
definisano je kao stanje niza flip-flopova koji sainjavaju dati registar. Kaemo da registar sa m
flip-flopova ima m bita.

Drugi osnovni elemenat sloenog digitalnog sistema su linije za prenos signala. Skup linija za
prenos signala koje imaju istu ili slinu namenu naziva se magistrala, engleski bus. Na primer,
magistrala se koristi za prenos podataka sa izlaza jednog na ulaz drugog registra. Magistrale crtamo
kao linije na kojima se stavlja mala kosa crta pored koje se napie broj signala koji se prenose
preko magistrale.

Slika 1.1 prikazuje registar R iji ulazi su vezani na ulaznu, a izlazi na izlaznu magistralu, od kojih
svaka ima po m linija. Indirektno moemo zakljuiti da registar R ima m flip-flopova. Pored
signala za binarne podatke, koji se prenose preko magistrala, registar ima i dva upravljaka signala.
Upravljaki signal 'upis', koji je u stvari signal takta, binarne podatke sa ulazne magistrale upisuje u
registar. Treba primetiti da se ovom mikrooperacijom prethodno stanje registra nepovratno gubi.

upis

m m izlazna
ulazna R magistrala
magistrala

citanje

Slika 1.1: Primer povezivanja registra sa magistralama


Signal 'itanje' trenutno stanje registra R prenosi na izlaznu magistralu. Signal 'itanje' i
mikrooperacija itanja sadraja registra neophodni su kod sloenih digitalnih sistema kod kojih su
izlazi dva ili vie registara spojeni na zajedniku izlaznu magistralu. Smisao signala itanja
ilustruje Slika 1.2, na kojoj su prikazana dva registra, R0 i R1, iji ulazi i izlazi su vezani na
zajedniku ulazni i izlaznu magistralu, respektivno.

2
upis 0

R0

citanje 0
ulazna izlazna
magistrala m m magistrala

upis 1

R1

citanje 1

Slika 1.2: Primer sistema sa dva registra i zajednikim magistralama

Mikrooperacije upisa u registre obavljaju se dovoenjem binarnog podatka na ulaznu magistralu i


aktiviranjem signala za upis. Aktiviranjem signala 'upis 0' podatak sa ulazne magistrale upisuje se u
registar R0, a aktiviranjem signala 'upis 1' podatak sa magistrale upisuje se u registar R1. U ovom
primeru dozvoljeno je istovremeno aktiviranje oba signala, to dovodi do upisa ulaznog podatka u
oba registra istovremeno.

Operacijom itanja trebalo bi da se stanje odabranog registra prenese na izlaznu magistralu.


Meutim, u ovom sluaju nastaje problem konflikta na izlaznoj magistrali. Treba se prisetiti da
izlazi dva logika kola ili izlazi dva flip-flopa ne smeju da se kratko spoje zato to ako je jedan
izlaz na logikoj 0, a drugi na logikoj 1, onda dolazi do kratkog spoja izlaznih tranzistora. Ne
samo da time dolazi do nedefinisanog stanja na izlazu nego moe doi do oteenja tranzistora.

Konflikt na izlaznoj magistrali moe da se, na primer, rei posebnom konstrukcijom izlaznih
stepeni flip-flopova, tako da izlazi flip-flopova mogu biti u jednom od tri stanja: 1, 0 ili stanje
izlazne impendanse. Aktivni signal itanja omoguava flip-flopovima da izlazi budu u stanju 0 ili
1, a ako signal itanja nije aktivan onda su izlazi u stanju visoke impendanse.

Sloeni digitalni sistemi obino se opisuju na visokom nivou apstrakcije, na primer navoenjem
mikrooperacija prenosa podataka izmeu registara i magistrala. Razvijeni su i posebni formalni
opisi, koji se zasnivaju na primeni formalnih jezika u opisu digitalnih sistema. Jedan takav jezik je
RTL, jezik za opis prenosa podataka izmeu registara (skraenica od engleskog Register Transfer
Language). Opis sistema koji prikazuje Slika 1.1 izgleda ovako:

upis : R ulazna magistrala


itanje : izlazna magistrala R

Iz navedenih iskaza u RTL notaciji moemo zakljuiti da u sistemu postoji jedan registar, R. Broj
bita u registru R nije naveden i u datom primeru nije od interesa. Registar ima dva upravljaka
signala. Signal 'upis' aktivira mikrooperaciju kojom se podatak sa ulazne magistrale upisuje u
registar R. Signal 'itanje' prenosi sadraj registra R na izlaznu magistralu.

Memoriju moemo zamisliti kao niz registara sa zajednikom ulaznom i zajednikom izlaznom
magistralom. Umesto naziva memorijski registar esto se koristi naziv memorijska lokacija.
Memorija se obino organizuje tako to se jedan skup upravljakih signala, koji se nazivaju adresa,
koristi za selekciju registra ili memorijske lokacije. Posebna dva upravljaka signala odreuju da li
se nad selektovanim registrom obavlja mikrooperacija itanja ili upisa.

3
Operacije itanja i upisa mogu se obaviti nad samo jednom memorijskom lokacijom u datom
trenutku. Ovo ogranienje koristi se za smanjenje broja spoljnih prikljuaka za adresne signale tako
to se adresni signali se interno dekoduju i tako dobijeni signali koriste za selekciju memorijske
lokacije. Na ovaj nain m adresnih signala koristi se za adresiranje sa 2m memorijskih lokacija.
Dalje smanjenje broja prikljuaka postie se spajanjem ulazne i izlazne magistrale, te se tako
umesto 2n prikljuaka za podatke koristi svega n prikljuaka. Spajanjem ulazne i izlazne magistrale
dobija se magistrala podataka.

adresna m
magistrala n
memorija magistrala
M podataka
R
W

Slika 1.3: Memorija sa m adresnih i n signala za podatke

Slika 1.3 prikazuje memoriju sa m adresnih signala, n signala na magistrali podataka i signalima R
za itanje (engleski Read) i W za upis (engleski Write). Ova memorija ima 2m memorijskih
lokacija, svaka lokacija sa n bita. U RTL notaciji operacije memorije opisanje su sledeim
iskazima:

R : magistrala M[adresa]
W: M[adresa] magistrala

Sa M[adresa] oznaena je memorijska lokacija ija adresa je na adresnoj magistrali. Ukoliko je


aktivan signal R memorija iz adresirane memorijske lokacije uzima sadraj i prenosi ga na
magistralu podataka. Aktivan signal W upisuje podatak sa magistrale podataka u adresiranu
lokaciju.

Memorija se esto vizuelno prikazuje na kao niz pravougaonika koji predstavljaju memorijske
lokacije. Pored pravougaonika stavlja se adresa lokacije, a sadraj lokacije upisuje u pravougaonik.
Slika 1.4 prikazuje memoriju sa 4 lokacije. Sadraji lokacija obio se piu u heksadecimalnom
brojnom sistemu. Tako u primeru na slici, lokacija sa adresom 0 ima sadraj 05, sledea lokacija
F2, pa 3C i konano lokacija sa adresom 3 ima sadraj 11, sve u heksadecimalnom brojnom
sistemu.

3 11 0 05
2 3C 1 F2
1 F2 2 3C
0 05 3 11

Slika 1.4: Grafiki prikaz memorijskih lokacija


U grafikom prikazu, memorijske lokacije mogu da se poredaju tako da adrese rastu nagore (Slika
1.4, levo) ili nadole (Slika 1.4, desno). Naravno, oba prikaza imaju potpuno isto znaenje.

Poslednji elemenat koji emo pomenuti u uvodu je aritmetiko-logika (AL) jedinica,


kombinaciona mrea koja obavlja odabrane aritmetike i logike mikrooperacije. Slika 1.5
prikazuje AL jedinicu sa dva ulaza, A i B, i jedan izlaz C, svaki sa po m bita. Treba primetiti da
postoji f upravljakih signala oznaenih sa F. Ova AL jedinica moe da obavi ukupno 2f razliitih
mikrooperacija nad ulaznim podacima.

4
ulaz A ulaz B

m m

f
aritmeticko-logicka F
jedinica

m
izlaz C

Slika 1.5: Artimetiko-logika jedinica


U RTL notaciji, primeri nekih mikrooperacija AL jedinice bi izgledali ovako:

F=0 : C A
F=1 : C A+B
F=2 : C AB

Prema tome, ako su upravljaki signali F svi jednaki 0, onda AL jedinica na izlaz C prosleuje ulaz
A. Ako upravljaki signali imaju vrednosti 00...01, odnosno decimalno 1, onda AL jedinica na
izlazu C daje sumu ulaza A i B, i tako dalje.

1.2 Procesor

Pogodnim vezivanjem registara i aritmetiko logike jedinice dobija se procesor, jedinica koja je
moe da obavlja operacije nad podacima kao to su kopiranje podataka iz jednog registra u drugi ili
sabiranje sadraja dva registra. Centralna procesorska jedinica ili centralni procesor, pored
registara i AL jedinice ima i upravljaku jedinicu koja upravlja ostalim delovima procesora i
raunarskog sistema. Slika 1.6 prikazuje blok emu jednostavnog centralnog procesora.

adresna magistrala
registri
upravljacka magistrala podataka
jedinica
AL jedinica
upravljacki signali

centralni procesor

Slika 1.6: Blok ema jednostavnog centralnog procesora


Spoljni prikljuci centralnog procesora grupiu se u tri magistrale: adresnu magistralu, magistralu
podataka i magistralu preko koje se prenose upravljaki signali. Preko adresne magistrale prenose
se adresni signali koji mogu da se koriste, na primer, za adresiranje memorijske jedinice.
Magistrala podataka slui za prenos podataka, na primer za prenos sadraja neke memorijske
lokacije u centralni procesor.

Treba primetiti da je adresna magistrala jednosmerna, to znai da se adresni signali uvek prenose
od centralnog procesora prema nekoj drugoj jedinici raunarskog sistema. Sa druge strane,
magistrala podataka je dvosmerna, tako da se podaci mogu prenositi iz centralnog procesora prema
nekoj drugoj jedinici ili u suprotnom smeru. Takoe, treba primetiti da na slici nisu navedeni
brojevi linija u magistralama, jer je to podatak koji za uvodno izlaganje nije od interesa.

5
Preko upravljakih signala centralni procesor upravlja svim ostalim jedinicama raunarskog
sistema. Primeri upravljakih signala su R (itanje) i W (upis) koji odreuju mikrooperaciju koju
memorija treba da izvri. Sve upravljake signale, ukljuujui signale za upravljanje registrima i
AL jedinicom kao i signale koji upravljaju spoljnim jedinicama, generie upravljaka jedinica.
Upravljaka jedinica je sekvencijalna mrea koja generisanjem upravljakih signala organizuje rad
celog raunarskog sistema.

Naravno, pored navedenih spoljnih prikljuaka za magistrale, centralni procesor ima prikljuke za
napajanje i masu, prikljuak za sinhronizacioni signal (clock) i jo neke signale emo kasnije
pomenuti.

1.3 Osnovni princip rada

U najjednostavnijem sluaju raunarski sistem sastoji se od centralne procesorske jedinice koja je


preko magistrala vezana sa memorijskom jedinicom. Signali ove dve jedinice su obino meusobno
kompatibilni u pogledu naponskih nivoa, znaenja, broja, ponaanja u toku vremena i tako dalje, i
mogu se neposredno povezati linijama za prenos signala. Slika 1.7 prikazuje nain povezivanja
centralnog proceorsa i memorije: adresna magistrala procesora vee se na adresnu magistralu
memorije, magistrala podataka procesora vee se sa magistralom podataka memorije, a upravljaki
signali itanja (R) i upisa (W) sa procesora veu se na odgovarajue signale memorije.

adrese

centralni podaci
memorija
procesor
R

Slika 1.7: Veza centralnog procesora i memorije


Osnovna operacija koja se obavlja u ovakvom sistemu je prenos podataka izmeu centralnog
procesora i memorije. Prenos podataka obino zahteva nekoliko koraka koji se moraju izvriti
jedan za drugim u toku vremena. Na primer, prenos nekog podatka iz memorije u registar
centralnog procesora mogao bi da se izvri na sledei nain:

Centralni procesor odredi adresu memorijske lokacije iz koje treba proitati sadraj.
Centralni procesor stavi adresu na adresnu magistralu i aktivira signal itanja R.
Memorija obavi operaciju itanja tako to uzme sadraj iz adresirane memorijske
lokacije i stavi ga na magistralu podataka.
Podatak sa magistrale podataka centralni procesor stavi u jedan od svojih registara.

U RTL notaciji prenos podatka iz memorije u registar R centralnog procesora opisuje se iskazom:

R M[adresa]

Na slian nain centralni procesor moe da organizuje prenos sadraja registra R u neku
memorijsku lokaciju, u RTL notaciji oznaeno sa:
M[adresa] R

Umesto RTL opisa, operacije koje procesor obavlja predstavljaju se instrukcijama koje se sastoje
od nizova pisanih simbola kao to su slova i brojevi. U instrukcijama se koriste kljune rei za opis
operacija. Na primer, za prenos podatka sa jednog mesta na drugo, recimo za prenos iz memorije u

6
registar procesora ili obratno, koristi se engleska re MOVE (pomeri ili prenesi). Instrukcija za
prenos sadraja memorijske lokacije u registar R procesora mogla bi da ima sledei oblik:
MOVE R,adresa

Ovde se podrazumeva da prvi niz simbola (MOVE) oznaava operaciju, drugi niz (R) oznaava
odredite u koje se upisuje podatak, a trei niz (adresa) oznaava adresu memorijske lokacije iz
koje se uzima podatak. Na slian nain bi instrukcija kojom se sadraj registra R prenosi u
adresiranu memorijsku lokaciju imala sledei oblik:
MOVE adresa,R

Slika 1.8 prikazuje osnovnu konfiguraciju raunara Edulent, koji emo koristiti za ilustraciju
principa rada raunara. Memorijska jedinica Edulenta sastoji se iz jednog memorijskog modula koji
ima 128 memorijskih lokacija. Svaka memorijska lokacija ima 8 bita. Za adresiranje memorijskih
lokacija koristi se adresna magistrala sa 7 adresnih signala. Upravljaka jedinica centralnog
procesora generie signale R za itanje iz memorije i W za upis u memoriju. Centralni procesor ima
jedan registar za smetanje podataka koji se naziva akumulator i koji je oznaen sa A.
7 adrese

8 podaci
A 128 x 8
R

W
centralni procesor memorija

Slika 1.8: Osnovna konfiguracija raunara Edulent

Za ilustraciju instrukcija za prenos podataka posmatrajmo poetni sadraj memorije, Slika 1.9. U
ovom primeru adrese rastu nadole i oznaene su decimalnim brojevima od 0 do 127. U
pravougaonike koji predstavljaju memorijske lokacije upisani su sadraji memorijskih lokacija,
koji su odabrani proizvoljno i predstavljeni u heksadecimalnom brojnom sistemu.

0 00
1 11
2 22
3 33
4 44
5 55
6 66
7 77
...
...
127

Slika 1.9: Poetni sadraj memorije


Pretpostavimo da sadraj lokacija sa adresama 1, 2 i 3 treba preneti (prekopirati) u lokacije sa
adresama 5, 6 i 7. Jedini nain da Edulent obavi ovaj zadatak je da sadraj memorijske lokacije
prvo prenese u registar A i da onda iz registra A sadraj prenese u traenu memorijsku lokaciju.
Kada zavri sa prvim prenosom, procesor treba da uradi drugi, a zatim trei prenos. Niz instrukcija,
ili program, koji obavlja ovaj prenos izgleda ovako:

MOV A,adresa1 ; prenesi sadraj lokacije 1 u akumulator


MOV adresa5,A ; prenesi sadraj akumulatora u lokaciju 5

7
MOV A,adresa2 ; ponovi za lokacije 2 i 6
MOV adresa6,A
MOV A,adresa3 ; ponovi za lokacije 3 i 7
MOV adresa7,A

Naravno, ovde smo pretpostavili da Edulent niz instrukcija izvrava po redosledu kojim su
napisane. Dakle, Edulent izvri prvu instrukciju, pa kad nju zavri, onda izvi sledeu i tako dalje.
Komentar instrukcija napisan je iza znaka ;. Izvrenje ovog programa pratiemo kroz stanja
Edulenta, odnosno sadraja akumulatora i sadraja memorijskih lokacija. Slika 1.10 prikazuje
stanje Edulenta posle izvrenja instrukcije MOV A,adresa1. Naravno, strelica opisuje prenos
podataka na visokom nivou apstrakcije; jasno je da se adresa memorijske lokacije (1) prenosi preko
adresne magistrale, a sadraj memorijske lokacije (11) preko magistrale podataka.

0 00
1 11
2 22
3 33
11 4 44
5 55
6 66
centralni procesor
7 77
...
...
127

Slika 1.10: Stanje Edulenta posle instrukcije MOV A,1


Sledea instrukcija, MOV adresa5,A prenosi sadraj akumulatora (11) u lokaciju sa adresom 5,
Slika 1.11 levo. U ovom trenutku, na isti nain moe da pone prenonje sadraja lokacije sa
adresom 2 u lokaciju sa adresom 6. Ovaj prenos obavljaju sledee dve instrukcije.

0 00 0 00
1 11 1 11
2 22 2 22
3 33 3 33
11 4 44 4 44
33
5 11 5 11
6 66 6 22
centralni procesor 7 77 7 33
centralni procesor
... ...
... ...
127 127
memorija memorija

Slika 1.11: Stanje Edulenta posle druge instrukcije (levo) i posle poslednje instrukcije (desno)

Na kraju, poslednje dve instrukcije zavravaju prenos sadraja iz lokacije 3 u lokaciju 7. Stanje
Edulenta posle izvrenja poslednje instrukcije pokazuje Slika 1.11 desno.

Vano je primetiti da raunar izvava instrukcije sekvencijalno, jednu po jednu po redosledu kojim
su napisane. Drugo, treba primetiti da su instrukcije veoma jednostavne i za obavljanje zadataka
koji nisu trivijalni neophodno je da raunar izvi veliki broj instrukcija. Program je niz instrukcija
koje se koriste za reavanje nekog problema.

8
Edulent ima instrukciju za sabiranje kojom se sadraj akumulatora A sabira sa adresiroanom
memorijskom lokacijom, a rezultat se smeta u akumulator. Instrukcija i RTL opis izgledaju ovako:

ADD A,adresa ; A A + M[adresa]

U sledeem primeru treba sabrati tri broja koji se nalaze u lokacijama sa adresama 8, 9 i 10, a
rezultat staviti u lokaciju sa adresom 11. Program izgleda ovako:

MOV A,adresa8 ; stavi prvi broj u akumulator


ADD A,adresa9 ; saberi drugi broj
ADD A,adresa10 ; saberi trei broj
MOV adresa11,A ; stavi rezultat u lokaciju sa adresom 0

U programu prepoznajemo tri celine. Prvo se formira poetni sadraj akumulatora A tako to se
prvi broj iz niza brojeva koji se sabiraju stavi u akumulator. Naravno, poetni sadraj moe se
formirati i tako to se se u akumulatora stavi 0.

Druga celina sastoji se iz ponavljanja instrukcije kojom se sledei broj u nizu sabira sa sadrajem
akumulatora i rezultat se stavlja natrag u akumulator. Na ovaj nain se sabiraju jedan po jedan broj
i suma akumulira registru A odakle potie naziv 'akumulator'. Na kraju se traena suma stavlja u u
lokaciju sa adresom 11.

Na ovaj nain mogu se sabrati sadraji proizvoljnog broja memorijskih lokacija u nizu. Meutim,
oigledno je da ovakav nain pisanja programa nije efikasan zato to se za operacije koje se
ponavljaju koriste uvek nove instrukcije. Oigledno da nije dobro na ovaj nain napisati program
koji sabira 100 ili na primer milion brojeva. Druga primedba odnosi se na tanost programa. Poto
se sabiraju 8-bitni brojevi a za rezultat koristi 8-bitni akumulator, moe se dogoditi da rezultat ima
vie od 8 bita i da ne moe da stane u akumulator. U tom sluaju nastaje greka koju ovaj program
nije u stanju da otkrije.

1.4 Mainski jezik i format instrukcije

Savremeni digitalni raunari projektovani su po principima koje je formulisao matematiar von


Neumann sredinom prolog veka. Kljuna osobina von Neumann-ovih raunara je da se memorija
koristi za smetanje programa koje raunar izvrava i podataka koje raunar obrauje u toku
izvrenja programa. Preme tome, raunari su programabilni i mogu da izvravaju razliite
programe.

Treba imati u vidu da memorijske lokacije mogu da sadre samo binarne brojeve. Zbog toga je
neophodno sve instrukcije koje raunar moe da izvri predstaviti u obliku binarnih brojeva. Na
primer, instrukcija Edulenta:

MOV A,adresa8

predstavlja se binarnim brojem 0001 0001 0000 1000, ili heksadecimalno 1108. Dakle, operaciju
sabiranja sadraja akumulatora A sa sadrajem memorijske lokacije sa adresom 8 i smetanje
dobijene sume u akumulator, koju u RTL-u opisujemo sa:

A A + M[8]

moemo predstaviti na dva naina. Ako koristimo nizove simbola koji ukljuuju slova i brojeve,
onda operaciju predstavljamo u obliku:

9
ADD A,adresa8

Ovaj oblik naziva se simbolika mainska instrukcija. Simbolike mainske instrukcije piu se po
pravilima koja su sastavni deo simbolikog mainskog jezika. Na primer, jedno pravilo je da
instrukcija poinje nizom slova koji predstavlja operaciju kao to je u ovom sluaju sabiranje.

Kao to smo ve videli, ista instrukcija moe da se predstavi binarnim brojem 0001 0001 0000
1000. Treba obratiti panju da se instrukcija moe zapisati u memoriju samo u obliku binarnog
broja i to je jedini oblik koji centralni procesor razume i moe da interpretira. Ovaj oblik
predstavljanja instrukcije naziva se mainska instrukcija, a pravila pisanja mainski jezik. Sa druge
strane, simboliki mainski jezik koristi se zato to je razumljiviji programeru. Programer koji pie
programe u simbolikim mainskom jeziku mnogo je efikasniji i pravi manje greaka nego
programer koji pie programe u mainskom jeziku. Izvorni program je program napisan na
simbolikom mainskom jeziku, a mainski program je program koji se sastoji iz mainskih
instrukcija.

Izvorni pogrami moraju se prevesti na mainski jezik pre izvrenja programa na raunaru. Iako
prevoenje moe da se uradi runo, u praksi se koriste asembleri, programi koji automatski
prevode izvorni program u mainski program. Ulaz asemblera je izvorni program, a izlaz program
prestavljen u mainskom jeziku, spreman za izvrenje na raunaru, Slika 1.12.

izvorni masinski
asembler program
program

Slika 1.12: Asembler prevodi izvorni program u mainski program


Ne treba da zbunjuje injenica da se jedan program, kao to je asembler, koristi za prevoenje
drugih programa iz jednog oblika u drugi. Raunar koji izvrava asembler koristi se za automatsko
prevoenje izvornog programa u mainski program. U nekim sluajevima neophodno je obaviti
dodatne operacije nad mainskim programom da bi se on pripremio za izvrenje. Mi emo za sada
smatrati da je mainski program u obliku koji moe da se neposredno izvri i nazivaemo ga izvrni
oblik mainskog programa ili prostije izvni program. Raunar koji je obavio prevoenje izvornog
programa na mainski jezik ili neki drugi raunar mogu da se koriste za izvravanje dobijenog
izvrnog programa.

Posmatrajmo ponovo primer izvornog programa za sabiranje tri broja i pogledajmo kako izgleda
njegov oblik u mainskom jeziku.

MOV A,adresa8 ; 0001 0001 0000 1000 (hex: 11 08)


ADD A,adresa9 ; 0011 0001 0000 1001 (hex: 31 09)
ADD A,adresa10 ; 0011 0001 0000 1010 (hex: 31 0A)
MOV adresa11,A ; 0010 0001 0000 1011 (hex: 21 0B)

U prvoj koloni su instrukcije simbolikog mainskog jezika, a u drugoj koloni su instrukcije u


mainskom jeziku predstavljene u binarnom brojnom sistemu. Umesto binarnih obino koristimo
heksadecimalne brojeve koji su u primeru napisani u zagradama.

Zanimljivo je pogledati kako program izgleda u memoriji, Slika 1.13, levo. Vidi se da je svaka
instrukcija predstavljena sa dva bajta i smetena u dve susedne memorijske lokacije. U optem
sluaju, instrukcije mogu da budu predstavljene razliitim brojem bajtova, pre prema tome mogu da
zauzimaju razliit broj memorijskih lokacije. Format instrukcije je nain predstavljanja instrukcije
u binarnom brojnom sistemu i pokazuje znaenje pojedinih grupa bitova.

10
0
1
11
08 MOV A,adresa8 kod operacije


adresa operanda
2 31
ADD A,adresa9 primer formata instrukcije
3 09
4
5
31
0A ADD A,adresa10


6 21 kod operacije
MOV adresa11,A 11
7 0B 08 adresa operanda
...
... format instrukcije MOV A,adresa8
127

Slika 1.13: Izgled programa u memoriji (levo) i format jedne instrukcije (desno)
Slika 1.13 desno gore prikazuje primer formata, u kome prvi bajt predstavlja operaciju koju treba
izvriti, a drugi bajt predstavlja adresu podatka koji se obrauje u toku izvrenja instrukcije.
Binarni broj koji predstavlja operaciju koja se izvrava naziva se kod operacije. Operand je
podatak koji se obrauje ili prenosi sa jednog mesta na drugo. Instrukcija MOV za prenos podataka,
Slika 1.13 desno dole, saglasna je navedenom formatu, u kome prvi baj 11 (heksadecimalno)
predstavlja kod operacije, a drugi bajt 09 je adresa operanda koji treba preneti iz lokacije sa
adresom 08 u akumulator.

Ve na prvi pogled moe se videti da sve instrukcije programa za sabiranje, Slika 1.13 levo, imaju
isti format. Na primer, kod operacije instrukcije ADD za sabiranje je 31 (heksadecimalno) a drugi
bajt je adresa operanda koji treba sabrati sa sadrajem akumulatora. Tako instrukcije

ADD A,adresa9 ; 0011 0001 0000 1001 (hex: 31 09)


ADD A,adresa10 ; 0011 0001 0000 1010 (hex: 31 0A)

imaju isti kod operacije, dok je adresa operanda u prvoj instrukciji 09 a u drugoj 0A
(heksadecimalno).

1.5 Izvravanje instrukcija

Kao to je ve reeno, raunar izvrava instrukije jednu za drugom, sekvencijalno, po redosledu


kojim su upisane u memorijske lokacije. Sekvencijalno izvravanje instrukcija je pogodno zato to
se inkrementiranjem adrese instrukcije koja se izvrava dobija adresa instrukcije koju treba sledeu
izvriti. Mehanizam odreivanja adrese instrukcije koju treba izvriti oslanja se na programski
broja, specijalizovani registar sa paralelnim ulazom i paralelnim izlazom, koji ima upravljaki
signal za poveanje sadraja za jedan. Programski broja obino se oznaava sa PC od engleskog
program counter.

Ideja korienja programskog brojaa je jednostavna i zasniva se na sledeem algoritmu:

1. Stavi u programski broja adresu prve instrukcije programa.


2. Izvri instrukciju ija adresa je u programskom brojau.
3. Poveaj sadraj programskog brojaa za 1.
4. Prei na korak 2.

Prema tome, programski broja uvek sadri adresu instrukcije koju treba izviti, a
inkrementiranjem programskog brojaa centralni procesor rauna adrese i izvrava jednu po jednu

11
instrukciju programa. Naravno, ovo je samo osnovna ideja koja ne daje odgovore na pitanja kao to
su kako se poetna adresa stavlja u programski broja i kako se menja redosled izvravanja
instrukcija u programu.

Centralni procesor sadri jo tri specijalna registra koji se koriste kod izvrenja instrukcije:

Instrukcijski registar (IR), koji prihvata kod operacije instrukcije koju treba izvriti.
Memorijski adresni registar (MA), koji sadri adresu koja se pojavljuje na adresnoj
magistrali.
Registar podataka (MD, od engleskog Memory Data), dvosmerni registar koji prihvata
podatak sa magistrale podataka kod mikrooperacije itanja, odnosno koji sadri podataka
koji se stavlja na magistralu podataka kod mikrooperacije upisa.

Slika 1.14 prikazuje raunar Edulent sa specijalizovanim registrima centralnog procesora: PC,
MA, MD i IR. Vertikalna dvosmerna strelica unutar centralnog procesora predstavlja internu
magistralu koja se koristi za prenos podataka izmeu registara centralnog procesora. Neke
funkcionalne jedinice centralnog procesora, kao to su aritmetiko-logika i upravljaka jedinica,
radi jednostavnosti nisu prikazane na slici.

7 adrese
MA
0
A 1
8 2
podaci
MD 3
...
PC R ...
127
IR W

centralni procesor memorija 128 x 8

Slika 1.14: Edulent sa registrima MA, MD i IR centralnog procesora


Registri MA i MD koriste se za komunikaciju centralnog procesora sa spoljnim magistralama.
Osnovne mikrooperacije koje se koriste u komunikaciji sa spoljnim magitralama su:

adresna magistrala MA
magistrala podataka MD
MD magitrala podataka

Prema tome, sadraj registra MA moe se preneti na adresnu magistralu, ali ne i obratno, sadraj
magistrale podataka ne moe da se prenese u registar MA. Prema tome, adresna magistrala je
jednosmera, u smeru od centralnog procesora. Magistrala podataka je dvosmerna i sadraj registra
MD i magistrale podataka moe da se razmenjuje u oba smera.

Interna magistrala koristi se za izvravanje sledeih mikrooperacija prenosa sadraja izmeu


registara centralnog procesora:

A MD, PC MD, MA MD, IR MD


MD A

Kombinacijom navedenih mikrooperacija moe se organizovati izvrenje instrukcija. Na primer,


instrukcija MOV A,adresa izvrava se sekvencijalnim izvrenjem sledeih mikrooperacija:

12
MA PC ; prenos adrese instrukcije u MA
MD M[MA] ; prenos koda operacije iz memorije u MD
PC PC+1 ; poveanje sadraja PC za 1
IR MD ; prenos koda operacije u IR

MA PC ; prenos adrese narednog bajta u MA


MD M[MA] ; prenos adrese operanda iz memorije u MD
PC PC+1 ; poveanje sadraja PC za 1
MA MD ; prenos adrese operanda iz MD u MA
MD M[MA] ; prenos operanda iz memorije u MD
A MD ; prenos operanda iz MD u A

Dakle, izvrenje ove instrukcije sastoji se iz sekvencijalnog izvrenja 10 mikrooperacija. Neke od


ovih mikrooperacija mogu da se izvravaju paraleleno, odnosno u istoj period sekvencijalnog
signala, ali to za sada nije od interesa. Izvrenje mikrooperacija moe se pratiti preko sadraja
registara centralnog procesora. Neka je sadraj memorije kao to prikazuje Slika 1.13 i neka je
poetni sadraj registara (heksadecimalno):

PC = 00, A = ??, MA = ??, MD = ??, IR = ??

Sa ?? oznaen je sadraj koji moe biti sluajan i nije bitan. Poto je sadraj registra PC jednak 00,
centralni procesor e izvriti instrukciju koja je u memorijskog lokaciji sa adresom 0. Sadraj
memorijske lokacije sa adresom 0 je 11 (sve u heksadecimalnom brojnom sistemu), a to je kod
operacije za instrukciju MOV A, adresa, pri emu je adresa operanda u sledeoj lokaciji, sa
adresom 1, i jednaka je 08. Izvrenje instrukcije poinje mikrooperacijom MA PC, koja sadraj
registra PC prebacuje na internu magistralu, a sa interne magistrale u registar MA. Saraji registara
posle ove mikrooperacije su:

PC = 00, A = ??, MA = 00, MD = ??, IR = ??

U ovom trenutku sadraj registra MA prosleuje se na adresnu magistralu i upravljaka jedinica


generie upravljaki signal R (itanje). Memorija, sa svoje strane, nadgleda upravljake signale R i
W i kada otkrije da je jedan od njih aktivan uradi odgovarajuu mikrooperaciju. U ovom sluaju, to
je mikrooperacija itanja, pa e memorija da sadraj memorijske lokacije ija adresa je na adresnoj
magistrali (00), a to je 11, da prebaci na magistralu podataka. Centralni procesor sadraj magistrale
podataka upisuje u registar MD, to je simboliki predstaljeno sledeom mikrooperacijom MD
M[MA]. Sadraji registara su sada:

PC = 00, A = ??, MA = 00, MD = 11, IR = ??

Sledea mikrooperacija, PC PC+1, poveava sadraj programskog brojaa za 1, tako da PC


sada pokazuje na sledeu memorijsku lokaciju sa adresom 1. Mikrooperacija IR MD sadraj
registra MD, a to je kod operacije, prenosi u instrukcijski registar IR:

PC = 01, A = ??, MA = 00, MD = 11, IR = 11

Upravljaka jedinica dekodira sadraj instrukcijskog registra IR, zakljuuje da se radi o instrukciji
MOV A, adresa i generie sve neophodne signale koji dovode do izvrenja preostalih
mikrooperacija ove instrukcije. U ovom trenutku potrebno je prvo uzeti adresu operanda (08) koja
se nalazi u memorijskoj lokaciji na koju pokazuje registar PC (01), to obavljaju mikroinstrukcije
MA PC i MD M[MA]. Naravno, kada uzme adresu operanda koja je sada u registru MD,
centralni procesor poveava sadraj programskog brojaa (PC PC+1) i prenosi adresu operanda
u registar MA (mikrooperacija MA MD). U ovom trenutku sadraji registara su:

PC = 02, A = ??, MA = 08, MD = 08, IR = 11

13
Sada je sve spremno za uzimanje operanda koji je u lokaciji sa adresom 08 i njegovo prebacivanje
u akumulator. Poslednje dve mikrooperacije iz memorijske lokacije ija adresa je u MA (08)
uzimaju sadraj (na primer, neka je to 88) i prenose ga prvo u registar MD, a zatim iz registra MD u
akumulator, to dovodi do kompletiranja ove instrukcije i sadraja registara:

PC = 02, A = 88, MA = 08, MD = 88, IR = 11

Na ovom mestu, u akumulatoru je traeni operand koji je prenesen iz memorijske lokacije ija
adresa je u adresnom polju instrukcije MOV, a u programskom brojau je adresa sledee instrukcije
koju treba izvriti. Na slian nain centralni procesor izvrava sledeu instrukciju i tako redom
ostale instrukcije programa.

Za izvrenje instrukcije ADD A,adresa neophodna je aritmetiko-logika jedinica, koja je


povezana na nain koji prikazuje Slika 1.15. Jedan ulaz AL jedinice dolazi iz akumulatora, a drugi
sa interne magistrale. Kao posledica ovakvog vezivanja ulaza AL jedinice, jedan od operanada u
operacijama koje zahtevaju dva operanda, uvek mora da bude u akumulatoru. Drugi operand moe
da se dovede iz nekog drugog registra, na primer MD, preko interne magistrale.

7 adrese
A MA

8 podaci
AL jedinica MD

IR
R R

PC W

Slika 1.15: Centralni procesor Edulenta sa AL jedinicom


Izlaz iz AL jedinice ne moe da se dovede neposredno na internu magistralu, zato to bi dolo do
konflikta jer je operand koji se dovodi na drugi ulaz AL jedinice ve na internoj magistrali. Zato
postoji prihvatni registar R koji slui za privremeno prihvatanje rezultata AL jedinice.

Korienje AL jedinice ilustrovaemo na primeru izvrenja instrukcije ADD A,adresa koja


sabira sadraja akumulatora sa operandom u memorijskoj lokaciji sa adresom adresa i rezultat
stavlja u akumulator:

MA PC ; prenos adrese instrukcije u MA


MD M[MA] ; prenos koda operacije iz memorije u MD
PC PC+1 ; poveanje sadraja PC za 1
IR MD ; prenos koda operacije u IR

MA PC ; prenos adrese narednog bajta u MA


MD M[MA] ; prenos adrese operanda iz memorije u MD
PC PC+1 ; poveanje sadraja PC za 1
MA MD ; prenos adrese operanda iz MD u MA
MD M[MA] ; prenos operanda iz memorije u MD
R A+MD ; sabiranje operanda sa A i smetanje sume u R
A R ; prenos sume iz R u A

14
Zanimljivo je da je niz mikrooperacija u obe instrukcije veoma slian. Zapravo prve 4
mikrooperacije identine su za sve instrukcije i nazivaju se pripremna faza. Ostale mikrooperacije
razlikuju se kod svih instrukcija i nazivaju se izvrna faza. Dakle, izvrenje instrukcije sastoji se iz
dve faze: u toku pripremne faze centralni procesor uzima kod operacije iz memorije i smeta ga u
registar IR, a u izvrnoj fazi izvrava se instrukcija iji je kod operacije u IR. Po zavretku jedne,
adresa naredne instrukcije koju treba izvriti automatski se nalazi u registru IR. Na taj nain
pripremna faza naredne instrukcije moe da krene odmah po zavretku izvrne faze prethodne
instrukcije.

Lista mikrooperacija koje dovode do izvrenja instrukcije sadri detalje koji se podrazumevaju. Na
primer, prenos koda operacije iz memorije u registar IR sastoji se iz tri mikrooperacije:

MA PC ; prenos adrese instrukcije u MA


MD M[MA] ; prenos koda operacije iz memorije u MD
IR MD ; prenos koda operacije u IR

Da bi smo pojednostavili opis mikrooperacija, esto izostavljamo mikrooperacije koje se


podrazumevaju. Na primer, navedene tri mikrooperacije za prenos koda operacije iz memorije u
registar IR, pojednostavljeno mogu da se predstave jednom mikrooperacijom:

IR M[PC] ; prenos koda operacije u iz memorije u IR

Naravno, treba uvek imati u vidu da je ovaj nain predstavaljanje pojednostavljen i da je na


hardverskom nivou neophodno izvriti sve tri mikrooperacije. Izostavljanjem mikrooperacije koje
se podrazumevaju dobijamo opis instrukcija na viem nivou apstrakcije koji je laki za
razumevanje. Na primer, izvrenje instrukcije MOV A,adresa predstavlja se sledeim
apstraktnim opisom:

PF: IR M[PC] ; prenos koda operacije u iz memorije u IR


PC PC+1 ; poveanje sadraja PC za 1

IF: MA M[PC] ; prenos adrese operanda iz memorije u registar MA


PC PC+1 ; poveanje sadraja PC za 1
A M[MA] ; prenos operanda iz memorije u akumulator

Sa PF obeleena je pripremna, a sa IF izvrna faza instrukcije. Poto su pripremne faze svih


instrukcija iste, moemo ih izostaviti, pa se tako apstraktni opis instrukcije svodi na apstraktni opis
njene izvrne faze. Na najviem nivou apstrakcije moemo jo vie pojednostaviti opis instrukcija
tako to izostavljamo sve nepotrebne mikrooperacije a ostavljamo samo mikrooperacije koje
dovode do izmene sadraja registara koji su vidljivi programeru. Tako bi izvrna faza instrukcije
MOV A,adresa izgledala ovako:

A M[adresa] ; prenos operanda iz memorije u akumulator

Na ovom nivou apstrakcije ne vide se detalji kao to su inkrementiranje programskog brojaa PC i


korienje memorijskog adresnog registra MA. Sa druge strane, apstraktni opis ima prednost jer
nije vezan za konkretnu realizaciju centralnog procesora. Mi emo u daljem tekstu koristiti sva tri
nivoa apstrakcije, ve prema potrebi, a nastojaemo da uvek bude jasno koji nivo apstrakcije je u
pitanju.

Apstraktni opis instrukcije ADD A,adresa izgleda ovako:

A A + M[adresa] ; sabiranje sadraja A sa operandom koji je u


; memoriji i stavljanje rezultata u A

15
1.6 Naini adresiranja

Jedan broj instrukcija manipulie podatke, koje nazivamo operandi, a koji se nalaze u memoriji ili
registrima centralnog procesora. Na primer, instrukcija moe da prenese operand sa jednog mesta
na drugo, da sabira dva operanda ili da pomeri bite operanda za jedno mesto ulevo. Postoje razliiti
naini izraunavanja adrese operanda, a u ovom odeljku emo videti etiri naina adresiranja koje
podrava Edulent.

Do sada smo videli jedan nain adresiranja, direktno adresiranje, kod koga je adresa operanda
sastavni deo instrukcije. Slika 1.16 ilustruje direktno adresiranje na primeru instrukcije MOV
A,adresa. Format instrukcije prikazan je na slici levo, a grafika ilustracija na slici desno.
Centralni procesor uzima adresu operanda, koja je sastavni deo instrukcije, pristupa memorijskoj
lokaciji sa tom adresom i operand iz memorijske lokacije prenosi u akumulator.

...
kod operacije
kod operacije
adresa
MOV A,adresa
adresa operanda
A ...
Format instrukcije
operand

...

memorija

Slika 1.16: Ilustracija direktnog adresiranja

...
kod operacije
operand A
kod operacije
operand
MOV A,operand

Format instrukcije ...


memorija

Slika 1.17: Ilustracija neposrednog adresiranja


Kod neposrednog adresiranja operand je sastavni deo instrukcije. Kao to pokazuje Slika 1.17 na
primeru instrukcije MOV A,operand, operand koji se nalazi posle koda operacije, prenosi se iz
memorije u akumlator.

Za registarsko indirektno adresiranje neophodan je registar u kome je smetena adresa operanda.


Na primer, Edulent ima registar AP (Address Pointer), u kome se pre izvrenja instrukcije mora
smestiti adresa operanda. Slika 1.18 ilustruje kako se, u toku izvrenja instrukcije MOV A,[AP]
sadraj registra AP koristi kao adresa memorijske lokacije iz koje se operand prenosi u akumulator
A.

16
...
A
14 MOV A,[AP]

kod operacije ...


Format instrukcije AP operand

...
memorija

Slika 1.18 : Ilustracija registarskog indirektnog adresiranja

Poto je neophodno adresni registar inicijalizovati i podeavati njegov sadraj, skup instrukcija
mora da podrava rad sa adresnim registrom. Na prime, Edulent ima sledee instrukcije za rad sa
registrom AP:

MOV AP,const ; punjenje AP, neposredn adresiranje


MOV AP,adresa ; punjenje AP, direktno adresiranje
MOV adresa,AP ; prenos AP u memoriju, direktno adresiranje

Registarsko indirektno adresiranje modifikuje se tako to adresni registar moe da se automatski


inkrementira ili dekrementira u toku izvrenja instrukcije. Edulent za ovaj nain adresiranja koristi
specijalizovani registar SP (Stack Pointer). Registarsko indirektno adresiranje sa predekrementom
ilustruje Slika 1.19 na primeru instrukcije MOV [-SP],. Sadraj registra SP prvo se smanjuje
za 1, a zatim se u memorijsku lokaciju ija adresa je u SP stavlja sadraj akumulatora.

...
kod operacije A operand
2C MOV [-SP],A

...
Format instrukcije
SP

-1
...
memorija

Slika 1.19: Ilustracija registarskog indirektnog adresiranja sa predekrementom

Apstraktni opis izvrne faze instrukcije MOV [-SP],. izgleda ovako:


SP SP - 1 ; smanjenje sadraja SP za 1
M[SP] A ; prenos sadraja A u lokaciju sa adresom SP

17
Registarsko indirektno adresiranje sa postinkrementom ilustruje Slika 1.20. Kod ovog naina
adresiranja prvo se sadraj memorijske lokacije, ija adresa je u registru SP, prenese u akumulator,
a zatim sadraj SP povea za 1.

...
A
1E MOV A,[SP+]
kod operacije ...
Format instrukcije SP operand

+1
...
memorija

Slika 1.20: Ilustracija registarskog indirektnog adresiranja sa postinkrementom

Apstraktni opis izvrne faze instrukcije MOV A,[SP+] obuhvata sledee dve mikrooperacije:
A M[SP] ; prenos sadraja lokaciju sa adresom SP u akumulator A
SP SP+1 ; poveanje sadraja SP za 1

Instrukcija MOV [-SP], koja sadraj akumulatora prenosi u memoriju adresiranu registrom SP
na engleskom se naziva 'push' i kod nekih asemblera (na primer kod simbolikog mainskog jezika
za mikroprocesor Intel 80x86) oznaava sa PUSH . Slino se instrukcija MOV A,[SP+] koja
prenosi sadraja memorijske lokacije iz memorije adresirane registrom SP u akumulator naziva
'pop' i oznaava sa POP . Ove dve instrukcije obino se koriste u paru, tako da za svaku 'push'
instrukciju postoji odgovarajua 'pop' instrukcija.

Treba obratiti panju da su izvrne faze ovih dveju instrukcija sline i da se odnose jedna naprama
drugoj kao u ogledalu: instrukcija 'push' prvo smanjuje sadraj SP i zatim prenosi sadraj
akumulatora u memorijsku lokacij ija adresa je u SP, dok 'pop' prvo prenese sadraj lokacije ija
je adresu u SP iz memorije u akumulatora i onda povea sadraj SP za 1. Deo operativne memorije
koji adresira SP naziva se stek memorija. Prema tome, 'push' instrukcija stavlja podatak u stek
memoriju, a 'pop' uzima podatak iz stek memorije.

1.7 Indikatorski registar

U toku izvrenja nekih instrukcija, kao to su na primer aritmetike instrukcije, mogu da se dobiju
dve vrste informacija od interesa. Prvo, dobija se rezultat izvrenja instrukcije, na primer suma dva
operanda. Drugo, moe se dobiti informacija o statusu izvrenja instrukcije, na primer da li je
rezultat jednak nuli, da li se dogodio prenos u toku izvrenja instrukcije, ili da li je rezultat
pozitivan ili negativan.

Indikatorski ili statusni registar koristi se za prihvatanje statusa izvrenja instrukcije. Edulent ima
indikatorski registar od svega dva bita, za nulu (Z) prenos (C). Slika 1.21 prikazuje princip
generisanja ovih bita u sluaju 4-bitne AL jedinice. Svi izlazni biti rezultata dovode se na ulaze
NILI kola koje na svom izlazu daje 1 ako su svi biti rezltata jednaki nuli, a 0 ako rezultat nije
jednak nuli. Izlaz NILI kola dovodi se na ulaz Z bita indikatorskog registra.

AL jedinica realizuje se na osnovu paralelenog sabiraa koji ima ulazni i izlazni prenos. Izlazni
prenos paralelnog sabiraa dovodi se na ulaz C bita indikatorskog registra.

18
ulaz A ulaz B

indikatorski registar
Z C
prenos
AL jedinica

rezultat

Slika 1.21: Generisanje bita za prenos (C) i nulu (Z) indikatorskog registra
Indikatorski registar moe imati vie bita, na primer za indikaciju da li je rezultat pozitivan, da li se
dogodilo prekoraenje i tako dalje. Sadraj indikatorskog registra koristi se pre svega u
instrukcijama uslovnog programskog skoka. Primeri instrukcija uslovnog programskog skoka dati
su u narednom odeljku.

1.8 Skup instrukcija Edulenta

Instrukcije prenosa podataka obuhvataju prenos podataka izmeu memorije i registara A i AP, pri
emu se koriste sva etiri naina adresiranja. Slede instrukcija prenosa zajedno sa apstraktnim
opisom njihovih izvrnih faza.

MOV A,adresa ; A M[adresa]


MOV AP,adresa ; AP M[adresa]
MOV A,const ; A const
MOV AP,const ; AP const
MOV adresa,A ; M[adresa] A
MOV adresa,AP ; M[adresa] AP
MOV A,[AP] ; A M[AP]
MOV A,[SP+] ; A M[SP], SP SP+1
MOV AP,[SP+] ; AP M[SP], SP SP+1
MOV [-SP],A ; SP SP-1, M[SP] A
MOV [-SP],AP ; SP SP-1, M[SP] AP

Edulent ima samo instrukcije sabiranja i oduzimanja:

ADD A,adresa ; A A + M[adresa]


ADD A,const ; A A + const
ADD AP,const ; AP AP + const
ADD A,[AP] ; A A + M[AP]
SUB A,adresa ; A A - M[adresa]
SUB A,const ; A A - const
SUB AP,const ; AP AP - const
SUB A,[AP] ; A A - M[AP]

19
Logike i pomerake instrukcije:

NOT ; A A (zamena 0 sa 1 i 1 sa 0)
OR adresa ; A A M[adresa]
OR const ; A A const
OR [AP] ; A A M[AP]
AND adresa ; A A M[adresa]
AND [AP] ; A A M[AP]
AND const ; A A const
XOR adresa ; A A M[adresa]
XOR const ; A A const
XOR [AP] ; A A M[AP]
SHR ; A prethodni sadraj A pomeren za 1 mesto udesno

Edulent ima tri instrukcije grananja ili programskog skoka. Instrukcija bezuslovnog programskog
skoka je:

JMP adresa ; PC adresa

Lista mikroinstrukcija ove instrukcije izgleda ovako:

MA PC ; prenos adrese instrukcije u MA


MD M[MA] ; prenos koda operacije iz memorije u MD
PC PC+1 ; poveanje sadraja PC za 1
IR MD ; prenos koda operacije u IR

MA PC ; prenos adrese narednog bajta u MA


MD M[MA] ; prenos adrese programskog skoka iz memorije u MD
PC PC+1 ; poveanje sadraja PC za 1
PC MD ; prenos adrese programskog skoka iz MD u PC

U toku izvrne faze adresa programskog skoka prenosi se iz registra MD u programski broja PC.
Mikroprocesor e po zavretku ove instrukcije izviti instrukciju ija adresa je u PC, a to je
instrukcija sa adresom koja je navedena u JMP instrukciji. Naravno, mikroinstrukcija PC PC+1
zapravo nije neophodna, ona je stavljena samo da bi ilustrovala ideju da se adresa naredne
instrukcije koja je u PC zamenjuje adresom instrukcije programskog skoka.

Apstraktni opis izvrne faze instrukcije programskog skoka je jednostavan:

PC adresa ; stavi u PC adresu programskog skoka

Instrukcije uslovnog grananja ispituju odgovarajue uslove u indikatorskom registru i u zavisnosti


od ispunjenja tih uslova u programski broja stavljaju adresu programskog skoka:

JZ adresa ; ako je Z=1 u PC stavi adresu programskog skoka


JC adresa ; ako je C=1 u PC stavi adresu programskog skoka

20
U sledeem programu, koji sabira prvih n celih brojeva, ilustrovana je primena instrukcija
bezuslovnog i uslovnog programskog skoka.

PROGRAM Sabiranje pvih n celih brojeva


DATA
n DB 0x3 ; poslednji broj koji treba sabrati
rez DB 0x0 ; mesto za rezultat
ENDDATA

CODE
MOV A,0x0 ; pocetni sadraj akumulatora
MOV AP,n ; AP kontrolise petlju
Lab1: ADD A,n ; sabiranje
SUB AP,0x1 ; sledeci broj koji treba sabrati
JZ Lkraj ; kraj ako je AP=0, uslovni skok na Lkraj
MOV n,AP ; smanjenje n za 1
JMP Lab1 ; bezuslovan programski skok
Lkraj: MOV rez,A ; smestanje rezultata u lokaciju rez
END
ENDPROGRAM

Edulent ima dve instrukcije za rad sa procedurama (potrpogramima). Osnovni problem kod
instrukcija CALL za poziv potprograma je adresa povratka, zato to negde treba zapamtiti adresu
na koju programska kontrola treba da se vrati kada se zavri potprogram. Jednostavno reenje koje
se koristi u gotovo svim digitalnim raunarima sastoji se u korienju steka za uvanje adrese
povratka.

Po zavretku potprograma programska kontrola treba da se vrati na prvu instrukciju koja sledi posle
instrukcije CALL kojom se poziva potprogram. Poto se adresa naredne instrukcije nalazi u
programskom brojau PC, sadraj PC stavlja se na stek, a u PC se stavlja adresa potprograma.
Prema tome, apstraktni opis (izvrne faze) instrukcije CALL adresaproc izgleda ovako:

temp M[PC] ; prenos adrese potprograma u prihvatni registar


PC PC + 1 ; PC sada sadrzi adresu povratka
SP SP - 1 ; smanjenje sadrzaja SP za 1
M[SP] PC ; stavljanje adrese povratka iz PC na stek
PC temp ; prenos adrese potprograma u PC

Naravno, realizacija ove instrukcije zavisi od konkretnog mikroprocesora. U sutini, kada se zavri
pripremna faza, programski broja pokazuje na memorijsku lokaciju u kojoj se nalazi adresa
potprograma. Mikroprocesor uzima ovu adresu, privremeno je smeta u neki prihvatni registar (na
primer u Edulentu to moe biti registar R ili MD, pa ak i AP) i poveava sadraj programskog
brojaa PC za 1. U ovom trenutku PC pokazuje na instrukciju koja sledi neposredno posle
instrukcije CALL, to znai da je u programskom brojau PC adresa povratka. Ova adresa se stavlja
na stek (sa predekrementom) i u PC se prenosi adresa potprograma iz prihvatnog registra. Jasno je
da e sledea instrukcija koju mikroprocesor izvri biti prva instrukcija potprograma zato to je
njena adresa u programskom brojau PC.

Instrukcija RET povratka u glavni program je slina instrukciji 'pop' koja adresu povratka sa steka
vraa u programski broja PC. Apstraktni opis izvrne faze instrukcije RET izgleda ovako:

PC M[SP] ; prenos adrese povratka sa steka u PC


SP SP + 1 ; poveanje SP za 1

21
Sledei program ilustruje korienje instrukcija poziva potprograma i povratka u glavni program na
primeru potprograma za sabiranje prvih n celih brojeva.

PROGRAM Kosiscenje potprograma za sabiranje pvih n celih brojeva

DATA
n DB 0x3 ; poslednji broj koji treba sabrati
rez DB 0x0 ; mesto za rezultat
tmp DB 0x0 ; promenljiva koju koristi potprogram
ENDDATA

CODE
MOV A,n ; ulazni parametar potprograma je u A
CALL Saberi
MOV rez, A ; stavljanje rezultata u rez
END

PROCEDURE Saberi ; potprogram


MOV tmp,A ; stavljanje ulaznog parametra u tmp
MOV A,0x0 ; pocetni sadraj akumulatora
MOV AP,tmp ; AP kontrolise petlju

Lab1: ADD A,tmp ; sabiranje


SUB AP,0x1 ; sledeci broj koji treba sabrati
JZ Lkraj ; kraj ako je AP=0, uslovni skok na Lkraj
MOV tmp,AP ; smanjenje tmp za 1
JMP Lab1 ; bezuslovan programski skok
Lkraj: RET ; povratak u glavni program, rezultat je u A

ENDPROCEDURE
ENDPROGRAM

22
3. Prekidi

Osnovni ciljevi uvoenja mehanizma prekida su poveanje produktivnosti mikroprocesora i


sinhronizacija rada mikroprocesora sa dogaajima u njegovoj okolini. Podsistem prekida
omoguava mikroprocesoru da, pod dejstvom nekog spoljnjeg dogaaja, prekine izvravanje
tekueg programa i pree ne izvravanje programa koji je pripremljen za obradu tog dogaaja. Na
primer, u mikroraunarskom sistemu mogu da postoje dva programa: jedan, koji koji obavlja
statistiku obradu podataka smetenih na disku, i drugi, koji prihvata podatke preko komunikacione
linije. Ukoliko komunikaciona linija nije aktivna, mikroprocesor obrauje podatke sa diska.
Meutim, u sluaju da treba da su pristigli podaci, mikroprocesor mora da prekine statistiku
obradu i izvri program za prijem podataka sa komunikacione linije. Jasno, ukoliko mikroprocesor
na vreme ne obavi prijem podataka, oni mogu biti nepovratno izgubljeni.

U ovom poglavlju izloene su osnovne ideje i nain realizacije podsistema prekida.

3.1 Osnovna ideja i problemi vezani sa prekidom

U optem sluaju prekid se koristi u primenama u kojima mikroprocesor obavlja dva zadatka, jedan
nieg prioriteta, koji se obino izvrava kontinualno u vremenu i drugi, vieg prioriteta, koji se
izvrava povremeno, na pobudu nekim spoljnim dogaajem. Ovakav scenario moe se uporediti sa
osobom koja ita knjigu i treba da odgovara na telefonske pozive. itanja knjige je zadatak nieg
prioriteta, koji dugo traje i moe da se obavlja ako osoba nema neto drugo da radi. Podrazumeva
se da obavljanje ovog zadatka nee biti ugroeno ako osoba odloi itanje za neki krai vremenski
interval. Pretpostavlja se da je odgovor na telefonski poziv zadatak vieg prioriteta i zahteva da taj
zadatak mora da se obavi kada se pojavi potreba za njim. Drugim reima, zahtev je da osoba mora
odgovoriti na poziv pre nego to telefon prestane da zvoni.

U sluaju da telefon zazvoni, osoba koja ita knjigu moe da primeni razliite taktike. Na primer,
moe pokuati da proita celu knjigu, pa tek onda da odgovori na poziv, taktika koja skoro sigurno
ne daje dobre rezultate. Ili, na primer, osoba moe da prekine itanje knjige, zanemari do tada
proitanji deo knjige, odgovori na telefonski poziv i onda krene da ita knjigu od poetka. U
krajnjoj linije, moe se zamisliti i taktika u kojoj osoba prvo eka telefonski poziv, odgovori na
njega, i onda krene sa itanjem knjige.

Intuitivno, najbolje rezultate daje taktika po kojoj osoba ita knjigu, a kada telefon zazvoni,
zapamti mesto do koga je dola u itanju, odgovori na telefonski poziv, a zatim nastavi sa itanjem
od zapamenog mesta u knjizi. Ova taktika daje dobru produktivnost i sinrhonizaciju sa pozivima
koji se dogaaju u trenucima koje osoba ne moe da predvidi.

Da bi dobio informaciju o spoljnjem dogaaju, mikroproceor ima poseban ulazni signal koji se
obino naziva INT, od engleskog 'interrupt' (prekid), Slika 3.1. Radi jednostavnosti, ostali signali
mikroprocesora, kao to su magistrale i upravljaki signali, nisu predstavljeni na slici.

INT
mikroprocesor

Slika 3.1: Ulazni signal INT za prekid


Naravno, u okviru mikroprocesorskog sistema mora da postoji elektronsko kolo koje, kada
detektuje spoljnji dogaaj, generie signal prekida. Kao primer uzmimo da mikroprocesor treba da

44
obradi signal prekida koji je nastao kao posledica aktiviranja nekog mehanikog prekidaa.
Mehniki prekida moe biti vezan na tipku tastature, tako da pritisak prsta na tipku aktivira
prekida i time signal prekida. Prekida moe aktivirati neki mehanikih dogaaj, na primer
zatvaranje vrata na liftu ili nailazak dela maine na prepreku.

Vcc

P
INT
mikroprocesor

Slika 3.2: Jednostavan nain generisanja signala prekida mehanikim prekidaem


Slika 3.2 prikazuje jednostavno elektrino kolo koje generie signal prekida INT u sluaju da je
signal prekida aktivan na logikoj jedinici . Kada je prekida otvoren, signal INT je preko
otpornika R vezan na masu, pa je na niskom naponskom nivou, odnosno na nivou logike 0. Kada
se prekida zatvori, signal INT je vezan na napon napajanja Vcc i ima vrednost logike 1. Prema
tome, zatvaranjem prekidaa aktivira se logika 1 na ulazu INT i time signalizira mikroprocesoru
signal prekida.

prekid
Program za obradu
prekida

tekui program
kraj obrade prekida

Slika 3.3: Tekui program i progam za obradu prekida


Pre nego to se koristi mehanizam prekida, u operativnoj memoriji mikroraunara mora da postoji
program za obradu prekida, Slika 3.3. Program koji mikroprocesor obrauje kada nema prekida
obino se naziva 'tekui program'. Kada se aktivira signal prekida, mikroprocesor saeka
izvravanje instrukcije koja je u toku i pree na izvravanje programa za obradu prekida.
Instrukcija u kojoj je tekui program prekinut naziva se taka prekida.

Po zavretku programa za obradu prekida mikroprocesor mora da se vrati u tekui (prekinuti)


program i nastavi izvravanje od instrukcije u kojoj je prekinuto izvravanje tekueg programa.
Preciznije, tekui program nastavlja izvrenje od instrukcije koja sledi posle take prekida (zato to
je instrukcija na taki prekida ve izvrena).

Naravno, mehanizam prekida mora da rei pitanje povratne adrese, odnosno mora da na neki nain
omogui mikroprocesoru da nastavi izvravanje tekueg programa na mestu u kojem je bio
prekinut.
Slika 3.4 ilustruje problem povratne adrese kod prekida.

45
A
tekui program Program za obradu
prekida
B

Slika 3.4: Ilustracija problema povratne adrese


Ako je tekui program prekinut u taki A, onda po zavretku programa za obradu prekida, tekui
program mora da se nastavi u taki A. Meutim, ako je tekui program prekinut u taki B, onda
mora da se nastavi u istoj taki. Drugim reima, mehanizam prekida mora da omogui tanu
povratnu adresu, koja e posle zavretka programa za obradu prekida, obezbediti nastavak tekueg
programa u taki prekida. Slino kao kod poziva potprograma, problem povratne adrese efikasno se
reava korienjem steka, odnosno stavljanjem povratne adrese na stek. Kod povratka u tekui
program mikroprocesor uzme sa steka povratnu adresu na kojoj se nalazi instrukcija od koje se
nastavlja izvravanje tekueg programa.

U praksi obino postoje viestruki izvori prekida. Na primer, u mikroraunarskom sistemu mogu da
postoje prekidi koje generie tastatura, signal realnog vremena, masovna memorija, komunikaciona
linija i tako dalje. U sluaju viestrukih izvora prekida, podsistem za prekid mora da obezbedi:

x programe za obradu razliitih signala prekida,


x prepoznavanja izvora prekida,
x reavanje prioriteta prekida kada se istovremeno aktivira vie od jednog prekidnog signala,
x prelazak na program za obradu prekida koji odgovara izvoru prekida i
x postupak u sluaju da se, u toku obrade jednog prekida, aktivira neki drugi signal prekida.

U daljem tekstu se detaljnije obrauje odziv mikroprocesora na signal prekida, reavanje problema
vezanih za viestruke prekide i druga pitanja vezana za podsistem prekida.

3.2 Odziv mikroprocesora na signal prekida

Upravljaka jedinica mikroprocesora nadgleda ulazni signal prekida, neka je taj signal oznaen sa
INT, i proverava stanje ovog signala na kraju izvrenja svake instrukcije. Ako signal INT nije
aktivan, mikroprocesor izvrava sledeu instrukciju, a ako je signal INT aktivan mikroprocesor
prelazi na obradu prekida.

vreme Prelazak na
program za
obradu prekida

Instrukcije tekueg
programa Instrukcija i Instrukcija (i+1) Instrukcija (i+2)

signal INT

Slika 3.5: Upravljaka jedinica proverava stanje signala INT na kraju svake instrukcije

46
Slika 3.5 ilustruje postupak provere stanja signala INT, koji je predstavljen linijom sa dva nivoa.
Nii nivo predstavlja logiku 0, a vii nivo logiku 1. Izvraavanje instrukcije u vremenu
predstavljeno je pravougaonikom u koji je upisan broj instrukcije koja se izvrava. U primeru na
slici poinjemo da posmatramo izvravanje tekueg programa od instrukcije sa rednim brojem i,
posle koje sledi instrukcija (i+1), zatim (i+2) i tako dalje.

Na zavretku svake instrukcije, upravljaka jedinica proverava da li je signal INT aktivan, a trenuci
provere (koji se podudaraju sa zavretkom instrukcije) na slici su predstavljeni vertikalnim
strelicama. Na primer, posle instrukcije sa rednim brojem i signal INT nije aktivan i nastavlja se
izvrenje instrukcije (i+1). Po zavretku instrukcije sa rednim brojem (i+1) signal INT takoe nije
aktivan i nastavlja se izvrenje instrukcije (i+2). Meutim, po zavretku instrukcije (i+2) signal
prekida je aktivan i mikroprocesor prelazi na program za obradu prekida.

Treba primetiti da trenutak aktiviranja signala INT nije od znaaja, odnosno signal INT moe da se
aktivira u bilo kojem trenutku u toku izvrenja instrukcije (i+2). Upravljaka jedinica ignorie
stanje signala INT u toku izvrenja instrukcije, prema tome vano je samo da je u trenutku provere
taj signal stabilan i aktivan.

Kasnije emo videti da postoje razlozi da mikroprocesor obavesti periferijsku jedinicu, koja je
zahtevala prekid, da je prekid prihvaen i da mikroprocesor prelazi na obradu signala prekida.
Obino mikroprocesor ima poseban spoljni izlazni signal koji se aktivira kada mikroprocesor
prihvati prekid. Slika 3.6 prikazuje mikroprocesor sa signalom prekida INT i signalom da je prekid
prihvaen, koji se esto oznaava sa INTA (engleski: Interrupt Acknowledge).

INT

mikroprocesor
INTA

Slika 3.6: Mikroprocesor sa signalom za prekid (INT) i signalom da je prekid prihvaen (INTA)
Razliiti mikroprocesori na razliit nain reaguju na signal prekida. U principu, odziv
mikroprocesora na aktivan signal prekida obuhvata sledee korake:
x aktivirati signala INTA,
x odrediti poetnu adresu programa za obradu prekida,
x staviti na stek povratnu adresu koja se nalazi u programskom brojau,
x staviti u programski broja poetnu adresu programa za obradu prekida,
x signal INTA prevesti u neaktivno stanje i
x nastaviti izvrenje instrukcija.

Uz pretpostavku da povratna adresa staje u jednu memorijsku re, mikroprogram koji odreuje
odziv mikroprocesora na signal prekida izgleda ovako:
SP 8 SP-1 ; mesto na steku za povratnu adresu
M[SP] 8 PC ; povratna adresa iz PC na stek
INTA 8 1 ; prekid prihvaen, aktivirati signal INTA
PC 8 adresa programa za obradu prekida
INTA 8 0 ; signal INTA prevesti u neaktivno stanje

Naravno, kljuni problem u ovom mikroprogramu je odreivanje adrese programa za obradu


prekida. Ovaj problem obraen je u narednom odeljku.

47
Mikroprogram za odziv mikroprocesora na signal prekida slian je mikroprogramu instrukcije
CALL poziva potprograma. Ipak, postoje znaajne razlike, na primer zato to mikroprogram
instrukcije CALL ne utie na signal INTA.

Povratak iz programa za obradu prekida u prekinuti program obavlja instrukcija RETI (Return from
Interrupt). Izvna faza mikroprograma instrukcije RETI ima sledei izgled:
PC 8 M[SP] ; povratna adresa sa steka u PC
SP 8 SP+1 ; podeavanje pokazivaa steka

3.3 Vektorski prekid

Kao to je ve napomenuto, u mikroraunarskom sistemu obino postoji vie izvora prekida. U tom
sluaju, projektant mikroraunarskog sistema mora da pripremi vie programa za obradu prekida, u
optem sluaju po jedan program za svaki signal prekida, Slika 3.7.

Program za obradu
prekida broj (p-1)

...
tekui program
Program za obradu
prekida broj 1

Program za obradu
prekida broj 0

Slika 3.7: Svaki signal prekida ima svoj program za obradu prekida
Mehanizam prekida koristi posebnu strukturu podataka koja se naziva tabela vektora prekida.
Elementi ove tabele su vektori prekida, jedna ili vie memorijskih lokacija u koje se smetaju
adrese programa za obradu prekida. Slika 3.8 prikazuje tabelu vektora prekida, na levoj strani
nepopunjenu, a na desnoj strani popunjenu poetnim adresama programa za obradu prekida.
Broj vektora prekida
Broj vektora prekida
adresa programa
m-1
m-1 za obradu prekida
m-1

... ...
...1 adresa programa
za obradu prekida
1
1
adresa programa
0 za obradu prekida
0
0

Slika 3.8: Tabela vektora prekida: prazna (levo) i popunjena (desno)


Sa leve strane tabele navedeni su brojevi vektora prekida, celi brojevi koji poinju od 0. U vektore
prekida stavljaju se poetne adrese programa za obradu prekida, Slika 3.8. Naravno, nije
neophodno da brojevi vektora prekida odgovaraju rednom broju prekida, kao to je to uraeno na
prethodnoj slici. Kao to je ve reeno, u optem sluaju vektor prekida ima vie memorijskih
lokacija, tako da broj vektora prekida ne mora da istovremeno predstavlja i adresu vektora prekida.

48
Slika 3.9 prikazuje primer tabele vektora prekida mikroprocesora x86. Tabela ima ukupno 256
vektora prekida, a svaki vektor prekida zauzima etiri bajta. Format vektora prekida, prikazan na
slici levo, sastoji se od dva bajta za odstojanje i dva bajta za segment. Prema tome, vektor prekida
sadri segment i odstojanje poetne adrese programa za obradu prekida, to znai da program za
obradu prekida moe biti smeten u bilo kom segmentu operativne memorije.

Broj vektora prekida Adresa

3FF Adresa programa


255 za obradu prekida
3 segment (gornji bajt)
3FC 255
2 segment (donji bajt)
... ...
1 odstojanje (gornji bajt) 7 Adresa programa
1 za obradu prekida
0 odstojanje (donji bajt)
5 1
4 Adresa programa
Format vektora prekida 0 za obradu prekida
0 0

Tabela vektora prekida

Slika 3.9: Tabela vektora prekida mikroprocesora x86


Kod mikroprocesora x86 tabela vektora prekida uvek je smetena na dnu memorijskog prostora i
zauzima 256 x 4 = 1 kB. Poto vektor prekida ima etiri bajta, adresa vektora prekida dobija se
mnoenjem broja vektora prekida sa 4. Tako je adresa vektora prekida broj 0 jednaka 0, vektora
prekida broj 1 je 4, vektora prekida broj 2 je 8 i tako dalje. Adresa poslednjeg vektora prekida broj
255 je 3FC heksadecimalno.

Na osnovu broja vektora prekida mikroprocesor odreuje adresu vektora prekida i iz njega uzima
poetnu adresu programa za obradu prekida. Prema tome, da bi odredio poetnu adresu prekidnog
programa mikroprocesoru treba saoptiti broj vektora prekida. Ovaj zadatak obino obavlja jedinica
koja generie prekid: u toku prihvatanja prekida jedinica koja je generisala prekid stavlja na
magistralu podataka broja vektora prekida koji mikroprocesor proita i dalje obavlja opisanje
operacije.
magistrala podataka

mikroprocesor periferijska
INT INT jedinica

INTA INTA

Slika 3.10: Veza mikroprocesora i jedinice koja generie signal prekida


Slika 3.10 prikazuje vezu izmeu mikroprocesora i periferijske jedinic koja generie signal
prekida. U okviru odziva na signal prekida, mikroprocesor aktivira signal da je prekid prihvaen
INTA. Sa svoje strane, na signal INTA periferijska jedinica se identifikuje tako to na magistralu
podataka stavi svoj broj vektora prekida. Mikroprocesor uzima broj vektora prekida sa magistrale
podataka i na osnovu ovog broja odreuje lokaciju vektora prekida i konano iz vektora prekida
uzima poentu adresu programa za obradu prekida. Poetna adresa se prenosi u programski broja i
mikroprocesor kree da obrauje instrukcije programa za obradu prekida. U sledeem
mikroprogramu, koji opisuje odziv mikroprocesora na signal prekida, pretpostavljeno je da broj

49
vektora prekida istovremeno predstavlja adresu odgovarajueg vektora prekida. Naravno, u sluaju
mikroprocesora x86, broj vektora prekida treba pomnoiti sa 4.
SP 8 SP-1 ; mesto na steku za povratnu adresu
M[SP] 8 PC ; povratna adresa iz PC na stek
INTA 8 1 ; na signal INTA per. jedinica stavlja na
; magistralu podataka broj vektora prekida
temp 8 magistrala podataka ; temp = broj vektora prekida
PC 8 M[temp] ; PC = pocetna adresa prekidnog programa
INTA 8 0 ; signal INTA prevesti u neaktivno stanje

Naravno, ostaje pitanje kako periferijska jedinica zna 'svoj' broj vektora prekida? Periferijska
jedinica obino ima programabilni registar u koji mikroprocesor, u toku inicijalizacije
mikroraunarskog sistema, upisuje broj vektora prekida. Time je zaokruen problem odreivanja
poetne adrese programa za obradu prekida. Naravno, u sluaju da postoje viestruke jedinice koje
mogu da generiu prekid, svaka od njih mora da na prihvaen 'svoj' signal prekida odgovori
stavljanjem 'svog' broja vektora prekida na magistralu podataka.

3.4 Kontroler prekida

Kao to je reeno, u sloenom mikroraunarskom sistemu postoji vie jedinica koje generiu signal
prekida. Svaka od ovih jedinica mora da ima programabilni registar u koji mikroprocesor upisuje
broj vektora prekida. Slika 3.11 prikazuje primer mikroraunarskog sistema sa tri jedinice
(oznaene sa 0, 1 i 2), koje mogu da generiu signal prekida.
magistrala podataka

mikro- periferijska
procesor INT INT jedinica 0

INTA INTA

periferijska
INT jedinica 1

INTA

periferijska
INT jedinica 2

INTA

Slika 3.11: Primer mikroraunarskog sistema sa tri jedinice koje generiu signal prekida
Svaka periferijska jedinica, koja moe da zahteva prekid, mora da ima programabilni registar u koji
mikroprocesor upisuje broj vektora prekida. Meutim, ovakva konfiguracija podsistema prekida u
nekim sluajevima nije pogodna. Neke jedinice koje zahtevaju prekid, mogu da budu veoma
jednostavne, kao na primer generator signala realnog vremena. Iako se u sutini sastaoji samo od
oscilatora stabilne frekvencije, generatoru signala realnog vremena mora se dodati logika sa
programabilnim registrom i upravljakom jedinicom koja omoguava upis u registra i prenos
sadraja registra na magistralu podataka.

50
Postoje i drugi problemi vezani za konfiguraciju koju prikazuje
Slika 3.11. Na primer, poto postoji samo jedan signal prekida INT na koji su vezane sve tri
jedinice, nije jasno kako se reava problem identifikacije jedinice koja je zahtevala prekid. Nije
jasno ni kako se reava prioritet prekida u sluaju da dve ili tri jedinice istovremeno zahtevaju
prekid. Na kraju, nije jasno ni koja od jedinica na signal INTA stavlja broj vektora prekida na
magistralu podataka.

Neka od ovih pitanja mogu se reiti uvoenjem dodatnog hardvera. Na primer, mikroprocesor moe
da ima vie od jednog ulaznog signala za prekid. U tom sluaju, unutar mikroprocesora moe da se
ugradi mehanizam vezan za prioritet prekida i identifikaciju jedinice koja je generisala prekid.

Jedno efikasno reenje problema vezanih za viestruke prekid sastoji se u korienju posebnog
integrisanog kola koje se naziva kontroler prekida. Slika 3.12 prikazuje jedan takav kontroler,
oznaen brojem 8259, koji se koristi sa mikroprocesorima 8259. Radi jednostavnosti, izostavljeni
su neki signali kontrolera, na primer napajanje, masa i neki manje vani upravljaki signali.

8
magistrala
podataka Kontroler prekida
8259

A0 IR0
CS IR1
Signali kojim
IR2 periferijske jedinice
Signali za spregu sa
mikroprocesorom RD IR3 zahtevaju prekid
WR IR4
IR5
INT IR6
INTA IR7

Slika 3.12: Kontroler prekida 8259


Kontroler prekida ima dva podskupa signala: jedan koji se koristi za spregu sa jedinicama koje
generiu prekid i drugi, koji slui za spregu sa mikroprocesorom. Kontroler prekida obavlja
nekoliko zadataka:

x nadgleda signale kojim periferijske jedince zahtevaju prekid i odreuje prioritet signala
prekida,
x generie signal prekida koji prosleuje mikroprocesoru i
x obezbeuje mikroprocesoru broj vektora prekida.

Poto kontroler prekida prihvata vie (na primer u sluaju 8259 ukupno 8) ulaznih signala kojima
periferijske jedinice zahtevaju prekid, a sa druge strane generie jedinstven signal prekida
mikroprocesoru, efektivno kontroler prekida multiplicira broj signala prekida. Tako 8259 osam
puta poveava broj signala prekida koji se mogu dovesti na mikroprocesor. Kontroleri prekida
mogu se kaskadno vezivati pa tako, sa dva nivoa kaskadne veze, devet kontrolera prekida 8259
opsluuju ukupno 64 signala zahteva za prekid.

51
Mikroprocesor A0 Kontroler prekida
8259
Adresni
adrese dekoder CS
IR0
8
podaci IR1
podaci
IR2
RD RD IR3
WR WR IR4
IR5
INT INT IR6
INTA INTA IR7

Slika 3.13: Primer sprege mikroprocesora i kontrolera prekida 8259


Slika 3.13 prikazuje primer sprege izmeu mikroprocesora i kontrolera prekida, uz pretpostavku
da mikroprocesor ima 8-bitnu magistralu podataka i da su signali RD, WR, INT i INTA
meusobno kompatibilni. Kao to se vidi, linije magistrale podataka su neposredno meusobno
povezane. Linije za signali itanja i upisa (RD i WR) kao i signale zahteva za prekid (INT) i prekid
prihvaen (INTA) takoe su neposredno povezane. Meutim, linije za adresni signale, osim signala
najmanje teine (A0) vode se na ulaz adresnog dekodera, koji za odreenu kombinaciju adresnih
signala generie signal selekcije (CS, engleski Chip Select) kontrolera prekida.

Kada je signal CS aktivan, mikroprocesor moe da pristupi internim programabilnim registrima


kontrolera prekida. Pristup programabilnim registrima neophodan je da bi mikroprocesor
programirao kontroler, odnosno upisao binarne informacije koje odreuju nain rada kontrolera.
Mikroprocesor na isti nain moe da proita sadraje registara u kojima se nalazi informacije o
stanju kontrolera prekida.

U toku inicijalizacije mikroraunarskog sistema, mikroprocesor programira kontroler prekida tako


to u njegove programabilne registre upie sledee podatke koji odreuju:

x konfiguraciju, na primer da li kontroler radi u kaskadnoj vezi i i kakav je prioritet ulaznih


signala zahteva za prekid (IR),
x nain rada, na primer da li su signali zahteva za prekid od periferijskih jedinica aktivni na
prednjoj ivici ili na logikoj 1, da li je dozvoljen prekid sa nekog od ulaznih zahteva i slino,
x broj vektora prekida za svaki signal zahteva za prekid.

Jednom kada je programiran, kontroler prekida je spreman za rad. Postupak rada kontrolera prekida
obuhvata sledee korake:

x Kontroler nadzire ulazne signale (IR) zahteva za prekid i signal selekcije (CS). Ukoliko ni
jedan od ovih signala nije aktivan, kontroler je u stanju ekanja i ne preduzima nikakve akcije.
x Mikroprocesor moe, aktiviranjem signala CS da pristupi internim programabilnim registrima
kontrolera bilo da promeni nain rada bilo da proita stanje kontrolera.
x Ako se aktivira jedan od ulazanih signala IR i ako je dozvoljen prekid sa tog ulaza, kontroler
aktivira signal prekida INT. Ukoliko mikroprocesor prihvati prekid i aktivira signal INTA,
kontroler na magistralu podataka stavlja broj vektora prekida koji odgovara aktivnom ulaznom
signalu zahteva za prekid.
x Ukoliko su dva ili vie ulaznih signala zahteva za prekid aktivni, kontroler odabira signal sa
najviim prioritetom i obavlja prethnodni korak.

52
adrese
CS1
Adresni
dekoder
CS0

podaci 8
Pratei kontroler

A0 A0 IR0
CS IRQ8
Vodei kontroler IR2 IRQ9
RD IRQ10
A0 IR0 IRQ0 WR IR4 IRQ11
CS IR1 IRQ1 IR5 IRQ12
IR2 INT IR6 IRQ13
RD RD IR3 IRQ3 INTA IRQ14
WR WR IR4 IRQ4 IRQ15
IR5 IRQ5
INT IR6 IRQ6
INTA INTA IR7 IRQ7

Signali
mikroprocesora

Slika 3.14: Principijelna ema kontrolera prekida u klasi raunara IBM PC

Klasa raunara IBM PC ima dva kontrolera prekida, vodei i pratei, koji su kaskadno povezani,
Slika 3.14. Na levoj strani prikazani su signali mikroprocesora. Znaajni signali adresne magistrale
dovode se na adresni dekoder koji generie dva signala za selekciju, CS0 i CS1. Signal CS0 koristi
se za aktiviranje vodeeg, a CS1 za aktiviranje prateeg kontrolera. Najmanje znaajan signal
adrese A0, kao i upravljaki signali RD, WR i INTA dovode se na odgovarajue ulazne prikljuke
oba kontrolera. Vodei kontroler generie signal prekida INT.

Signal prekida INT prateeg kontroler doveden je na ulaz IR2 vodeeg kontrolera, tako da kada
pratei kontroler aktivira svoj signal prekida INT, vodei kontroler ga prepoznaje kao aktivan
ulazni signal zahteva za prekid IR2. Poto ulazna linija IR2 vodeeg kontrolera prihvata signal
prekida INT prateeg kontrolera, ukupno je na raspolaganju 15 signala zahteva za prekid od
periferijskih jedinica.

53
Tabela 3.1: Signali zahteva za prekid u klasi raunara IBM PC
IRQ Broj vektora prekida Periferijska jedinica
IRQ0 08 Signal realnog vremena
IRQ1 09 Tastatura
IRQ2 0A Prekid sa prateeg kontrolera
IRQ3 0B Linija COM2 za serijsku komunikaciju
IRQ4 0C Linija COM1 za serijsku komunikaciju
IRQ5 0D Prikljuak LPT2 za paralelni prenos podataka
IRQ6 0E Flopi disk
IRQ7 0F Prikljuak LPT1 za paralelni prenos podataka
IRQ8 70 Signal realnog vremena (CMOS)
IRQ9 71 (ne koristi se)
IRQ10 72 (ne koristi se)
IRQ11 73 (ne koristi se)
IRQ12 74 Mi (kod klase raunara PS2)
IRQ13 75 Matematiki koprocesor
IRQ14 76 Hard disk
IRQ15 77 (ne koristi se)

Tabela 3.1 prikazuje signale IRQ zahteva za prekid od periferijskih jedinica u klasi raunara IBM
PC, njihove vektore prekida i periferijske jedinice koje generiu zahteve za prekid. Prvih 8 zahteva
dolazi od vodeeg, a drugih 8 od prateeg kontrolera prekida. Kao to se vidi, brojevi vektora
prekida su sekvencijalni i kod vodeeg kontrolera idu od broja 08 do 0F (heksadecimalno), a kod
prateeg od 70 do 77 (heksadecimalno).

3.5 Zabrana prekida

U nekim sluajevima neophodno je da mikroproceosr ignorie signal prekida, odnosno spreiti


prihvatanje prekida. Na primer, u toku inicijalizacije mikroprocesor u programabilne registre
periferijskih jedinica, odnosno u kontroler prekida, upisuje brojeve vektora prekida. Oigledno je
da u toku inicijalizacije podsistem prekida jo nije pripremljen i prihvatanje prekida bi dovelo do
nepredidivog odziva mikroprocesora. Jednostavan nain da se to sprei je da se zabrani prihvatanje
prekida. Zabrana prekida jo se naziva maskiranje prekida.

mikroprocesor
signal prekida INT
Interni signal
prekida (ISP)

DI R Q
EI S
I

Slika 3.15: Logika ema zabrane prekida

Zabrana prekida obino se zasniva na korienju jednog flip-flopa i logikog I kola, Slika 3.15.
Spoljni signal prekida INT dovodi se na ulaz logikog I kola, koje se nalazi unutar

54
mikroproceosora. Drugi ulaz logikog I kola dovodi se sa Q izlaza RS flip-flopa I. Izlaz logikog I
kola predstavlja interni signal prekida (ISP) koji se vodi na upravljaku jedinicu mikroproceosora.
Prema tome, upravljaka jedinica nadzire interni signal prekida ISP umesto spoljnjeg signala
prekida INT.

Kada je flip-flop I u stanju logike 0, na izlazu logikog I kola je logika 0 bez obzira na stanje
signala INT. Stanje logike 0 flip-flopa I odgovara stanju u kome je prekid zabranjen (maskiran).
Ako je flip-flop I u stanju logike 1, onda izlaz logikog kola zavisi od stanja signala prekida INT:
ako je INT na logikoj 0 izlaz logikog kola je isto na 0, a ako je INT na logikoj 1, izlaz logikog
kola takoe je na jedinici. Dakle stanje logike 1 flip-flopa I odgovara stanju u kome je prekid
dozvoljen.

Stanje flip-flopa I kontrolie se softverski sa dve instrukcije. Instrukcija DI (Disable Interrupt)


prevodi flip-flop I u stanje logike 0 tako to na ulazu R generie pozitivni implus koji resetuje flip-
flop. Instrukcija EI (Enable Interrupt) generie pozitivni impuls na S ulazu i tako setuje flip-flop I.
Izvrne faze ovih instrukcija su jednostavne:
DI: R 8 1 ; ulaz R flip-flopa na logiku 1
R 8 0 ; ulaz R na logiku 0
EI: S 8 1 ; ulaz S flip-flopa na logiku 1
S 8 0 ; ulaz S na logiku 0

Flip-flop I za zabranu prekida obino je u sastavu indikatorskog registra mikroprocesora, Slika


3.16. Kada je bit I indikatorskog registra na logikoj 1 prekid je dozvoljen, a kada je na logikoj 0
prekid je zabranjen.

V C S Z ... I ...

Slika 3.16: Primer indikatorskog registra sa bitom I za zabranu (dozvolu) prekida


Uzastopni prekid mogu da ugroze korektno izvravanje programa za obradu prekida. Zato se u toku
obrade prekida ili bar u kritinom delu programa za obradu prekida esto se zabranjuje prekid da bi
se prekidni program (ili njegov kritini deo) zatitio od daljih uzasponih prekida. Oblik programa
za obradu prekida sa zabranom daljih prekida izgleda ovako:
DI ; zabrana prekida
PUSH R1 ; uvanje sadraja registara na steku
...
PUSH Rn
...
(telo programa za obradu prekida)
...
POP Rn ; restauracija sadraja registara
...
POP R1
EI ; dozvola prekida
RETI ; povratak u prekinuti program

U programu za obradu prekida prvo se instrukcijom DI spreava prihvatanje novih prekida i zatim
sadraji registara mikroproceosora uvaju na steku. Ovaj korak je neophodan da bi sadraji
registara prekinutog programa bili isti u trenutku prekida i u trenutku povratka iz programa za
obradu prekida. Zatim sledi telo programa za obradu prekida u kome se obavlja zadatak koji se
odnosi na dogaaj koji je vezan za prekidni signal.

55
Po zavretku tela programa za obradu prekida, u registre opte namene vraaju se prvobitni sadraji
i, pre povratka u prekinuti program, dozvoljava prekid. Naravno, instrukcije DI i EI mogu da se
koriste za zatitu samo dela prekidnog programa. U sluaju da podsistem prekida dozvoljava
viestruke prekide, odnosno prekidanje prekidnog programa, onda se instrukcije DI i EI
izostavljaju iz prekidnog programa.

3.6 Spoljni (hardverski) prekidi

Mehanizam prekida u savremenim mikroprocesorima uopten je tako to je proiren skup dogaaja


koji izazivaju prekide. Na osnovu dogaaja koji ih izazivaju, prekidi mogu da se grupiu u:

x spoljne,
x unutranje i
x softverske.

Spoljne prekide, objanjene u prethodnim odeljcima, izazivaju dogaaji u okolini mikroprocesora


koji aktiviraju ulazni signal prekida. Na primer, mikroprocesor x86 ima dva ulazna signala prekida,
INT i NMI, Slika 3.17. Signal INT je standardni signal prekida, koji perferijske jedinice aktiviraju
kada nastupi dogaaj koji se obrauje programom za obradu prekida.

Mikroprocesor INT
x86 NMI

Slika 3.17: Mikroprocesor x86 ima dva ulazna signala prekida


Osnovna razlika izmeu signala prekida INT i signala NMI (Non Maskable Interrupt) je u tome to
mikroproceosor ne moe da zabrani prekid NMI. Pored toga, poto je vieg prioriteta, signal NMI
koristi se za dogaaje koji su od vitalnog interesa za pravilan rad mikroraunarskog sistema.
Tipina primena signala NMI je za javljanje dogaaja kao to je nestanak napona napajanja ili za
greku u radu sa memorijom ili periferijskim jedinicama.

Kao ilustraciju korienja hardverskog signala prekida NMI posmatraemo jednostavno kolo za
detekciju prestanka napona napajanja mikroraunara, Slika 3.18.

Vcc

NMI
LS122

220 V C LS14

Slika 3.18: Kolo za detekciju prestanka napona napajanja


Ulazni deo kola sastoji se iz opto sprega, odnosno od svetlee diode i foto tranzistora koji se koriste
za galvansko odvajanje naizmeninog mrenog napona od ostatka mikroraunarskog kola. Svaka
poluperioda napona napajanja aktivira svetleu diodu koja emituje svetlost i pobuuje foto
tranzistor. Impuls sa kolektora uobliava se mitovim invertorom 74LS14 i koristi za okidanje
monostabilnog multivibratora 74LS122.

56
Vremenska konstanta monostabilnog multivibratora podesi se tako da negativni impuls traje 40 ms,
to predstavlja dve periode mrenog napona, Slika 3.19. Izlaz multivibratora vodi se neposredno
na ulaz za nemaskirajui prekid NMI mikroprocesora x86. Treba imati u vidu da je signal NMI
aktivan na prednjoj ivici (prelaz sa logike 0 na logiku 1). Prema tome, u primeru koji prikazuje
Slika 3.19, izlaz multivibratora bi posle 40 ms doveo do pojave prednje ivice signala NMI i
mikroprocesor bi detektovao aktivan signal prekida NMI.

Okidni impuls na ulazu


astabilnog
multivibratora

Izlaz multivibratora
(signal NMI)

40 ms

Slika 3.19: Negativni impuls multivibratora traje 40 ms

Poto svaka poluperiode mrenog napona generie okidni impuls, astabilni multivibrator se okida u
svakoj periodi mrenog napona. Jednom kada multivibrator pone da generie na izlazu negativni
impuls trajanja 40 ms, posle 20 ms (jedna perioda mrenog napona) stie novi okidni impuls koji
ponovo okida multivibrator. Prema tome, sve dok postoji mreni napon okidni impulsi se generiu,
okidaju monostabilni multivibrator i njegov izlaz je stalno na logikoj 0.

Ukoliko se dogodi da nestane mreni napon napajanja, okidni impulsi prestaju da se generiu i izlaz
multivibrator e posle jedne periode mrenog napona prei sa logike 0 na logiku 1, Slika 3.19.
Poto je izlaz multivibratora doveden na ulaz NMI, mikroprocesor e ovu prednju ivicu protumaiti
kao aktivan signal prekida i prei na program za obradu prekida NMI. Naravno, program za obradu
prekida treba da preduzme korake predviene za nestanak napona napajanja, na primer da to je
mogue bre prekopira podatke iz operativne memorije na disk ili u memoriju koja ima baterijsko
napajanje.

Okidni impulsi

Izlaz multivibratora
(signal NMI) Aktivna ivica signala
NMI

Slika 3.20: Kod prestanka napona napajanja multivibrator generie prednju ivicu signala NMI

Kod detekcije spoljnjeg prekida NMI mikroprocesor x86 automatski koristi broj vektora prekida
koji je jednak 2. Prema tome, poetna adresa programa za obradu prekida NMI mora da bude
stavljena u vektor prekida koji odgovara broju 2.

57
3.7 Unutranji prekidi

Kod savremenih mikroprocesora neki unutranji dogaaji mogu da dovedu do unutranjeg signala
prekida koji se obrauje na identian nain kao i spoljni signal prekida. Na primer, sledei dogaaji
esto se koriste kao izvori unutranjih prekida:

x pokuaj delenja nulom,


x pokuaj izvravanja nedefinisanog koda operacije i
x pojava prekoraenja kod izvravanja aritmetikih operacija.

Smisao unutranjih prekida je u poboljanju stabilnosti ili robusnosti rada mikroprocesora. Ukoliko
mikroprocesor iz nekog razloga pokua da izvri nepostojei kod operacije, posledice su
nepredvidive, a najee e mikro mikroraunarski sistem da pree u nedefinisano stanje i prestaje
da radi na predvieni nain. Jedini izlaz iz takvog stanje je resetovanje, odnosno prevoenje
sistema u poetno stanje, pri emu se svi podaci u operativnoj memoriji nepovratno gube.

U ovakvom primeru, mnogo celishodniji nain reagovanja mikroprocesora je da se pokuaj


izvrenja nepostojeeg koda operacije interpretira kao dogaaj koji izaziva prekid i da se zatim
prekid obradi tako da mikroraunarski sistem nastavi sa radom. Mikroraunarski sistem moe da
programsku kontrolu vrati operativnom sistemu i na taj nain omogui ostalim programima da
nastave normalno izvravanje.

Posebna vrsta unutranjeg prekida je izvrenje instrukcija korak-po-korak, engleski termin trace
ili single-step. U reimu rada korak-po-korak mikroprocesor generie unutranji prekid po
zavretku svake instrukcije tekueg programa. Ideja unutranjeg prekida korak-po-korak je da se
omogui korisniku da po zavretku svake instrukcije aktivira poseban prekidni program u kome
moe da se proverava nain izvravanja tekueg programa.

Unutranji prekid korak-po-korak zasniva se na posebnom bitu T u sastavu indikatorskog registra:


ukoliko je bit T na logikoj 0 unutranji prekid korak-po-korak nije dozvoljen, a ukoliko je T na
logikoj 1 unutranji prekid korak-po-korak aktivira se po zavretku svake instrukcije tekueg
programa, Slika 3.21.

V C S Z ... I T ...

Slika 3.21: Ako je bit T indikatorskog registra na logikoj 1, prekid korak-po-korak je dozvoljen
Program za obradu prekida korak-po-korak (jedan primer takvog programa je DEBUG) obino je
napravljen tako da korisniku omoguava sledee operacije:

x prikazivanje i izmenu sadraja registara mikroprocesora,


x prikazivanje i izmenu sadraja zahtevanog dela memorije,
x nastavak izvravanja tekueg programa.

Naravno, prekid korak-po-korak mora da se zabrani kod prelaska na program za obradu prekida. U
suprotnom, ve posle prve instrukcije programa za obradu prekida aktivirao bi se prekid korak-po-
korak to bi dovelo do beskrajnog aktiviranja i prekidanje ovog programa. Po pravilu, ovaj problem
jednostavno se reava tako to mikroprocesor kod prekida korak-po-korak u bit T upisuje 0. Poto
se na ovaj nain menja sadraj indikatorskog registra, odziv mikroprocesora na signal prekida
obino obuhvata i uvanje sadraja indikatorskog registra na steku.

58
Uz pretpostavku da broj vektora prekida istovremeno predstavlja adresu odgovarajueg vektora
prekida, mikroprogram prelaska na program za obradu prekida sa ovom modifikacijom izgleda
ovako:

SP 8 SP-1 ; mesto na steku za indikatorski registar


M[SP] 8 ind.reg. ; indikatorski registar na stek
I 8 0 ; zabrana svih prekida
T 8 0 ; zabrana prekida korak-po-korak
SP 8 SP-1 ; mesto na steku za povratnu adresu
M[SP] 8 PC ; povratna adresa iz PC na stek
INTA 8 1 ; aktiviranje signal INTA
temp 8 mag.pod. ; temp = broj vektora prekida (sa magistrale pod)
PC 8 M[temp] ; PC = pocetna adresa prekidnog programa
INTA 8 0 ; signal INTA prevesti u neaktivno stanje

Naravno, instrukcija RETI povratka iz prekidnog programa mora da vrati sadraj indikatorskog
registra sa steka:
PC 8 M[SP] ; povratna adresa u PC
SP 8 SP+1 ; SP pokazuje na sacuvani sadraj ind. registra
ind.reg. 8 M[SP] ; restauracija sadraja indikatorskog registra
SP 8 SP+1 ; SP pokazuje na vrh steka

Kod mikroprocesora x86 prekid korak-po-korak uvek je vezan sa brojem vektora prekida 1.

3.8 Softverski prekidi

Softverski prekid uvodi se radi pvienja stepena zatite u mikroraunarskom sistemu.


Mikroraunarski sistem treba da nastavi da ispravno radi ak i u sluaju da korisnik napravi
namernu ili nenamernu greku. Iz iskustva se zna da su programi koji obavljaju ulazno-izlazne
operacije i rade sa periferijskim jedinicama sloeni u odnosu na standardne korisnike programe.
Pored toga, programi koji neposredno pristupaju periferijskim jedinicama mogu da dovedu do
fatalnih greak: da izbriu fajlove sa diska ili izbriu podatke koji su vani za normalan rad sistema.

Jedan nain da se ovi problemi ree je uvoenje dva generalizovana stanja mikroprocesora:
korisninko i privilegovano. U datom trenutku mikroprocesor moe da se nalazi u samo jednom od
ova dva stanja.

U korisnikom stanju izvravaju se svi korisniki (aplikativni) programi. U ovom stanju


mikroprocesor moe da izvri podskup instrukcija i moe da pristupi samo nekim resursima
mikroraunarskog sistema. Izmeu ostalog, pristup nije dozvoljen periferijskim jedinicama,
sistemskim programima, sistemskim podacima i sino. U korisnikom stanju, na primer,
mikroprocesor ne moe da izvrava ulazno-izlazne operacije. Na ovaj nain, mikroraunarski
sistem je zatien od greaka koje mogu da se nalaze u korisnikim programima. Takoe,
mikroraunarski sistem zatien je od korisnika koji namerno pokuaju da narue ispravnost
sistemskih informacija, programa i drugih resursa sistema.

Uvoenjem korisnikog stanja i ogranienjem operacija koje korisniki programi mogu da izvre,
mikroraunarski sistem je zatien od korisnika. Ostale aktivnosti neophodne za rad mikroraunara
obavlja operativni sistem skup programskih modula koji upravljaju resursima sistema.
Podrazumeva se da je operativni sistem kvalitetno projektovan i realizovan, da je temeljno testiran i
obezbeuje pouzdan i stabilan rad mikroraunarskog sistema. Operativni sistem izvrava se u
privilegovanom stanju, u kome je mikroprocesoru dozvoljeno da izvrava sve instrukcije i pristupa
svim resursima mikroraunarskog sistema.

59
Jedan problem u ovakvom pristupu je to korisniki programi moraju da koriste kritine resurse
sistema, kao to su ulazno-izlazne jedinice. Na primer, korisniki program mora da koristi
memorijski prostor na disku za uvanje podataka i itanje prethodno zapisanih podataka ili mora da
koristi tampa za tampanje izvetaja. Reenje problema je jednostavno i sastoji se u tome da
operativni sistem obavlja operacije koje su zabranjene korisnikim programima. U jednostavnom
sluaju, korisniki program poalje zahtev operativnom sistemu sa informacijama o zadatku koji
treba da se obavi, zatim operativni sistem obavi traeni zadatak i vrati korisnikom programu
informacije o rezultatima dobijenim obavljanjem zadatka, Slika 3.22.

Korisniki program

Korisniko stanje
zahtev rezultati

Privilegovano stanje
Operativni sistem

Slika 3.22: Operativni sistem obavlja zadatke koje zehteva korisniki program

Na primer, korisniki program moe da zahteva od operativnog sistema da odtampa neki tekst. U
tom sluaju, korisniki program poalje operativnom sistemu zahtev za tampanje zajedno sa
informacijama o fajlu u kome se nalazi tekst. Operativni sistem uzme tekst iz fajla i zatim, preko
ulazno-izlaznog podsistema generie sve signale koji su neophnodni da se zahtevani tekst
odtampa. Po zavretku tampanja korisnikom programu prosleuje se informacija o uspenosti
tampanja.

Iz navedenog primera jasno je da operativni sistem mora da ima neposrednu interakciju sa


elektronskim komponentama mikroraunarskog sistema. Ova interakcija obavalja se na fizikom
nivou, tako to operativni sistem, preko elektronskih komponenata, generie upravljake signale za
periferijske jedinice i preko istog podsistema prima signale od periferijskih jedinica.

Korisniko stanje Korisniki program

Privilegovano stanje Operativni sistem

Elektronske komponente

Periferijske jedinice

Slika 3.23: Slojevi u mikroraunarskom sistemu

Na ovaj nain dolazi se do slojeva softverskih i elektromehanikih komponenata mikroraunarskog


sistema, Slika 3.23. Osnovna odlika ovakve strukture je da samo susedni slojevi mogu da
meusobno komuniciraju. Tako, na primer, korisniki program moe da komunicira samo sa
operativnim sistemom i ne moe da neposredno pristupi elektronskim komponentama. Radi
jednostavnosti, u ovom delu teksta smatraemo da periferijske jedinice, kao to je disk ili tampa,
obuhvataju i pridruene elektronske komponente (kontrolere).

60
Operativni sistem, koji upravlja periferijskim jedinicama, mora da obrauje spoljne prekide od
periferijskih jedinica. U pojednostavljenom obliku, operativni sistem sastoji se od skupa programa
za obradu spoljnih prekida. Sasvim je jasno da aktiviranje spoljnjeg prekida dovodi do prenosa
programske kontrole na operativni sistem.

Da bi se standardizovao pristup operativnom sistemu, uvodi se softverski prekid, specijalna


instrukcija koja ima isti efekat kao i aktiviranje spoljnjeg ili unutranjeg prekida. Izvravanjem
instrukcije za softverski prekid, korisniki program aktivira program za obradu prekida koji se
nalazi u okviru operativnog sistema. Program za obradu prekida dobija od korisnikog programa
sve parametre neophodne za izvrenje zahtevane operacije i zatim izvrava tu operaciju.

Korisniko stanje Korisniki program

softverski prekid podaci

Privilegovano stanje Operativni sistem

spoljni prekid podaci

Periferijske jedinice

Slika 3.24: Operativni sistem aktivira se prekidom


Prema tome, operativni sistem moe se aktivirati samo preko mehanizma prekida, Slika 3.24.
Korisniki program prenosi programsku kontrolu operativnom sistemu izvravanjem instrukcije
softverskog prekida, a periferijske jedinice aktiviraju operativni sistem generisanjem spoljnjeg
signala prekida. Naravno, izmeu operativnog sistema sa jedne strane i korisnikog programa i
periferijskih jedinica, sa druge strane, prenose se i podaci, ali neemo ulaziti u te detalje.

Ako korisniko i privilegovano stanje mikroprocesora predstavimo ovalnim linijama, a prelaze iz


jednog u drugo stanje predstavimo strlicama, dobijamo graf generalizovanih stanja mikroprocesora,
Slika 3.25-. Kod ukljuenja ili reseta, mikroprocesor se prvo nalazi u privilegovanom stanju i
izvri deo operativnog sistema koji obavlja inicijalizaciju mikroraunarskog sistema. Po zavretku
inicijalizacije ili programa za obradu prekida, mikroprocesor prelazi u korisniko stanje. Ako se u
bilo kom trenutku dogodi prekid, mikroprocesor prelazi u privilegovano stanje i vri obradu
prekida.
reset prekid

Privilegovano Korisniko
stanje stanje

Kraj obrade prekida

Slika 3.25: Graf stanja mikroproceosora


Poto omoguava poziv uslunih rutina operativnog sistema, softverski prekid jo se naziva
sistemski poziv.

61
Stanje mikroprocesora obino je odreeno jednim bitom (na primer sa oznakom P) indikatorskog
registra, Slika 3.26. Kada je bit P na logikoj 1, mikroprocesor je u privilegovanom stanju, a kada
je bit P na logikoj 0, bit P je u korisnikom stanju. Da bi se spreila izmena stanja bita P, pristup
indikatorskom registru obino je instrukcija koja moe da se izvri samo u privilegovanom stanju.

V C S Z ... I T P ...

Slika 3.26: Indikatorski registar sa bitom P koji oznaava stanje mikroprocesora

Slika 3.27 prikazuje format instrukcije za softverski prekid. Pored koda operacije, u sastavu
instrukcije nalazi se i broj vektora prekida. Mikroprogram izvrne faze instrukcije za softverski
prekid veoma je slian mikroprogramu koji odreuje odziv mikroprocesora na spoljni prekid.
Jedina razlika je to mikroprocesor, umesto da uzima broj vektora prekida od periferijske jedinice,
koristi broj vektora prekida koji predstavlja operand instrukcije za softverski prekid. Moe se rei
da izvrna faza instrukcije za softverski prekid simulira odziv mikroprocesora na signal prekida.

Kod operacije

Broj vektora prekida

Slika 3.27: Format instrukcije za softverski prekid


Uz istu pretpostavku da broj vektora prekida istovremeno predstavlja adresu odgovarajueg vektora
prekida, mikroprogram za izvrnu fazu instrukcije za softverski prekid ima sledei izgled.

SP 8 SP-1 ; mesto na steku za indikatorski registar


M[SP] 8 ind.reg. ; indikatorski registar na stek
I 8 0 ; zabrana svih prekida
T 8 0 ; zabrana prekida korak-po-korak
P 8 1 ; prelazak u privilegovano stanje
temp 8 M[PC] ; temp = broj vektora prekida
PC 8 PC+1 ; u PC je povratna adresa
SP 8 SP-1 ; mesto na steku za povratnu adresu
M[SP] 8 PC ; povratna adresa iz PC na stek
PC 8 M[temp] ; PC = pocetna adresa prekidnog programa

Mikroprogram izvrne faze instrukcije povratka iz prekidnog programa moe da prevede


mikroprocesor u korisniko stanje:
PC 8 M[SP] ; povratna adresa u PC
SP 8 SP+1 ; SP pokazuje na sacuvani sadraj ind. registra
ind.reg. 8 M[SP] ; restauracija sadraja indikatorskog registra
P 8 0 ; prelazak u korisniko stanje
SP 8 SP+1 ; SP pokazuje na vrh steka

Naravno, ukoliko instrukcija povratka iz prekidnog programa ne prevodi automatski mikroprocesor


u korisniko stanje, onda operativni sistem mora softverskim putem da upravlja sadrajem bita P.

Mikroprocesor x86 ima instrukciju INT n, koja generie softverski prekid sa brojem vektora
prekida koji je jednak n. Kod IBM PC raunara instrukcija INT sa operandom 21H (broj vektora
prekida 21 heksadecimalno) predstavlja poziv operativnom sistemu DOS. Po usvojenoj konvenciji,

62
registar AH sadri kodirani broj operacije (funkcije) koju DOS treba da izvri. Pre izvrenja
instrukcije INT 21H treba staviti traeni broj operacije (funkciju) u registar AH.

Na primer, broj 08H predstavlja operaciju ulaza sa tastature. Kada se pozove operativni sistem
DOS sa registrom AH u koji je smeten broj 08H, DOS e u registru AL vratiti ASCII znak koji je
unesen preko tastature. Sledee dve instrukcije smetaju broj operacije u AL i pozivaju DOS:
MOV AH,08H ; operacija ulaza sa tastature
INT 21H ; sistemski poziv DOS-u

Operacija kodirana brojem 02H prikazuje na ekranu znak iji ASCII kod je u registru Dl.
Kombinaciojm operacija za itanje sa tastature i prikazivanja na ekranu, dobija se sledei niz
instrukcija koje uitani znak sa tastature prikazuju na ekranu.
MOV AH,08H ; operacija ulaza sa tastature
INT 21H ; sistemski poziv, znak sa tastarure je u AL
MOV DL,AL ; ASCII znak sa tastarure u DL
MOV AH,02H ; broj operacije prikaza znaka na ekranu
INT 21H ; znak se prikazuje na ekranu

Softverski prekid moe veoma korisno da poslui kod testiranja i ispravljanja greaka u programu.
Ve smo rekli da izvravanje programa korak-po-korak omoguava praenje izvrenja programa
posle svake instrukcije. Problem nastaje kada program ue u petklju koju izvrava veliki broj puta.
Ve posle nekoliko prolaza korisniku je jasno da li petlja radi ispravno. Meutim, da bi se proverio
ostali deo programa, korisnik mora da saeka da se petlja kompletno zavri korak-po-korak, da bi
mogao da nastavni sa testiranjem programa.

U ovakvim sluajevima, instrukcija za softverski prekid umetne se na mesto u programu na kome


korisnik hoe da proveri stanje izvrenja programa. Mesto na kome se nalazi instrukcija za
softverski prekid naziva se taka prekida (breakpoint). Kada mikroprocesor doe do take prekida i
izvri instrukciju za softverski prekid, aktivira se program za obradu prekida (na primer DEBUG)
koji korisniku omoguava sledee akcije:

x uvid u sadraje registara i memorije,


x izmenu sadraja registara i memorije,
x postavljanje novih taaka prekida i
x brisanje taaka prekida.

Naravno, u programu mogu da budu ni jedna, jedna ili vie taaka prekida. Taka prekida realizuje
se tako to se originalna instrukcija programa na kome se postavlja taka prekida zameni sa
posebnom instrukcijom za softverski prekid koja ima samo kod operacije, Slika 3.28. Poto ova
instrukcija zauzima samo jedan bajt, onda moe da zameni bilo koju drugu instrukciju u programu.

Aktiviranjem programa za testiranje i otklanjanje greaka (DEBUG) korisnik prvo postavlja


prekidne take na mestima na kojima eli da proverava stanje programa. Program za testiranje i
otklanjanje greaka originalne instrukcije uva u privremenim baferima, na njihovo mesto stavlja
instrukcije za softverski prekid i aktivira korisniki program. Kada mikroprocesor doe do
prekidne take, ponovo se aktivira program za testiranje i otklanjanje greaka i korisnik sada moe
da proverava stanje programa.

63
instrukcija 0

Na mesto originalne instrukcija 1 instrukcija i


instrukcije ubacuje se
instrukcija za softverski
prekid
... Originalna instrukcija
privremeno se uva u baferu
instrukcija i

...
instrukcija n-1

Slika 3.28: Ubacivanje prekidne take na mesto instrukcije sa rednim brojem i

Kada korisnik zavri proveru stanja programa, originalna instrukcija se vraa na svoje mesto i
korisniki program nastavlja sa izvrenjem dok ne doe do sledee prekidne take u kojoj se celi
ciklus ponavlja.

Kod mikroprocesora x86 instrukcija INT 3 za softverski prekid sa brojem vektora prekida 3 koristi
se za realizaciju prekidne take. Zanimljivo je da ova instrukcija ima samo jedan bajt i kod
operacije koji se razlikuje od instrukcija sa softverskim prekidom koji je razliit od 3.

64
5. Ulazno-izlazni podsistem

Osnovne funkcionalne jedinice mikroraunarskog sistema su centralni procesor, memorija i ulazno-


izlazne jedinice. U ovom poglavlju ukratko su izloeni osnovi principi sprezanja ulazno-izlaznih
jedinica sa centralnim procesorom i organizacije ulazno/izlaznog podsistema

5.1 Organizacija ulazno-izlaznog podsistema

Slika 5.1 predstavlja jednostavnu organizaciju mikroraunarskog sistema sa centralnim


procesorom, memorijom i ulazno-izlaznim podsistemom. Ulazno-izlazni podsistem sastoji se od
periferijskih jedinica i kontrolera. Periferijske jedinice su obino elektromehaniki ureaji koji
omoguavaju ulaz i izlaz podataka. Primeri izlaznih periferijskih jedinica su monitor sa ekranom za
prikazivanje teksturalnih i grafikih informacija i tampa. Ulazne jedinice, na primer tastatura i
mi, slue za unoenje podataka u raunarski sistem.

mikroprocesor

operativna
memorija

periferijska
kontroler jedinica

... ...

kontroler periferijska
jedinica

Slika 5.1: Jednostavna ogranizacija mikroraunarskog sistema


Kontroleri (ili adapteri) su elektronske komponente koje slue za prilagoenje ili interfejs izmeu
periferijskih jedinica i mikroprocesora. Treba imati u vidu da su periferijske jedinice specifine i
nisu prilagoene nainu i brzini rada mikroprocesora. Kontroleri obino sadre sve neophodne
elemente i logiku koja je neophodna za efikasno upravljanje periferijskim jedinicama i prilagoenje
izmeu periferijskih jedinica i mikroprocesora u pogledu brzine rada, naponskih nivoa i
sinhronizacije. Prema tome, mikroprocesor nema neposredan pristup periferijskim jedinicama, ve
vidi samo kontrolere i komunicira sa kontrolerima.

Kontroleri su programabilne jedinice koje poseduju svoje upravljake jedinice sposobne da


obavljaju zadatke vezane za upravljanje i komunikaciju sa perferijskim jedinicama. Kontroleri
poseduju programabilne registre preko kojih se razmenjuju upravljake informacije i podaci sa
mikroprocesorom. Naravno, programabilni registri imaju svoje adrese i mikroprocesor mora da
generie tanu adresu programabilnog registra kome pristupa. U jednostavnim primerima ulazno-
izlaznih podsistema, programabilni registri mogu da se neposredno koriste za ulaz i izlaz podataka.
Stoga emo sve registre koji se nalaze u ulazno-izlaznom podsistemu nazivati ulazno-izlazni
registri.

78
Ulazno-izlazni registri mogu da se nalaze u jedinstvenom adresnom prostoru zajedno sa
memorijom ili da budu odvojenom, ulazno-izlaznom adresnom prostoru, Slika 5.2. Prednost
jedinstvenog adresnog prostora je u tome to sve instrukcije koje se koriste za pristup memoriji
mogu da se koriste i za pristup ulazno-izlaznim registrima i to se memorijski i ulazno-izlazni
registri tretiraju na isti nain. Prednost odvojenog adresnog prostora je to omoguava
jednostavniju organizaciju sistema u kome se jedan adresni prostor koristi iskljuivo za
memorijske, a drugi za ulazno-izlazne komponente.

Deo (ili delovi)


namenjeni ulazno-
izlaznim registrima
Memorijski adresni
prostor

Memorijski adresni
ulazno-izlazni
prostor
adresni prostor

Jedinstveni adresni prostor Odvojeni adresni prostor

Slika 5.2: Zajedniki (levo) i odvojeni (desno) adresni prostor


Mikroprocesor koristi iste linije za prenos adresa i podataka kod memorijskog i ulazno-izlaznog
adresnog prostora i zato mora da ima posebne signale kojima oznaava vrstu pristupa. U sluaju da
signal M oznaava pristup memorijskom adresnom prostoru a signal IO pristup ulazno-izlaznom
adresnom prostoru, sledea tabela opisuje operacije mikroprocesora u zavisnosti od logikih nivoa
ovih signala. Signal R oznaava ciklus itanja, a W ciklus upisa.

M IO R W Operacija
1 0 1 0 itanje iz memorije
1 0 0 1 Upis u memoriju
0 1 1 0 itanje iz ulazno-izlaznog registra
0 1 0 1 Upis u ulazno-izlazni registar
1 1 x x Nije dozvoljeno
x x 1 1 Nije dozvoljeno

5.2 Primer jednostavnog izlaza

Primer sa izlaznim registrom na ije izlaze su vezane svetlee diode (LED).

5.3 Primer jednostavnog ulaza

Primer sa ulaznim registrom preko koga se itaju stanja osam prekidaa.

79
5.4 Kontroler za paralelni ulaz-izlaz

Jednostavni primer ulazno-izlaznog kontrolera je kontroler za paralelni ulaz i izlaz podataka. Ovaj
kontroler sadri registre za podatke koji se mogu konfigurisati tako da slue za paralelni ulaz ili
izlaz podataka. Pored toga, ovi kontroleri poseduju programabilne registre koji se koriste za
konfigurisanje i izbor naina rada kontrolera.

Kontroler poseduje sa jedne strane signale za spregu sa mikroprocesorom, a sa druge strane signale
za spregu sa ulazno-izlaznim jedinicama, Slika 5.3.

Izlazna jedinica
Kontroler za
mikroprocesor paralelni ulaz-izlaz

Ulazna jedinica

Sprega sa Sprega sa periferijskim


mikroprocesorom jedinicama
Slika 5.3: Sprega kontrolera za paraleleni ulaz-izlaz sa mikroprocesorom i ulazno-izlaznim
jedinicama

Slika 5.4 prikazuje strukturu jednostavnog kontrolera za paralelni ulaz-izlaz, gde su sa leve strane
nacrtani signali za spregu sa mikroprocesorom, a sa desne signali za spregu sa ulazno-izlaznim
jedinicama. U mikroprocesorskom sistemu mora da postoji dekoder ulazno-izlaznih adresa koji
generie signal CS za aktiviranje kontrolera. U sluaju da poseduje vie ulazno-izlaznih registara
kontroler mora da ima dodatne adresne signale. U primeru sa slike postoji samo jedan adresni
signal A0. Signali R i W odreuju operacije itanja i upisa koje se obavljaju nad registrima
kontrolera.

CS
A0
R Upravljaka Ready
W jedinica
Strobe
INT
INTA

Ulazno- Linije za
podaci izlazni prenos
registar podataka

Slika 5.4: Struktura jednostavnog kontrolera za paralelni ulaz-izlaz

80
Kontroler ima linije za pristup magistrali podataka mikroprocesorskog sistema preko kojih
mikroprocesor komunicira sa kontrolerom. Konano, kontroler obino ima signal INT kojim
zahteva prekid od mikroprocesora i signal INTA kojim mikroprocesor obavetava kontroler da je
prekid prihvaen.

Na strani periferijske jedinice kontroler ima linije za prenos podataka i dve linije za prenos signala
za sinhronizaciju, koji se obino nazivaju Ready i Strobe. Uloge ova dva signala razliite su kod
ulaznih i izlaznih operacija. Na primer, kod izlaza paralelenih podataka prema periferijskoj jedinici
znaenja mogu biti:

Ready = 0, na izlaznim linijama prema periferijskoj jedinici je stari podatak,


= 1, na izlaznim linijama je novi podatak.

Strobe = 0, periferijska jedinica nije spremna da prihvati novi podatak,


= 1, periferijska jedinica je spremna da prihvati novi podatak.

Slika 5.5 prikazuje konfiguracija sistema sa mikroprocesorom, kontrolerom za paralelni ulaz-izlaz


(konfigurisan za izlaz podataka) i periferijskom izlaznom jedinicom. Radi jednostavnosti nisu
prikazane linije za prenos signala A0 i signala za prekide INT i INTA.

adresni Ready
adrese CS Ready
dekoder
Strobe Strobe
podaci podaci
R R ulazni
Izlazni
W W podaci podaci

mikroprocesor kontroler Izlazna jedinica

Slika 5.5: Sistem sa mikroprocesorom, kontrolerom za paralelni ulaz-izlaz i periferijskom


jedinicom.
Postupak izlaza podataka prema periferijskoj jedinici zapoinje tako to mikroprocesor upie u
kontroler podatak koji treba preneti periferijskoj jedinici. Posle toga mikroprocesor moe da radi
neke druge operacije i preputa kontroleru da prenese podatak do periferijske jedinice. Osnovni
problem u prenosu podataka je to periferijska jedinica moe da bude spora, odnosno da zahteva
neko vreme da bi obradila primljeni podatak. Na primer, ako je izlazna jedinica DA konvertor,
onda je potrebno neko vreme za konverziju iz digitalnog u analogni oblik. Ako je izlazna jedinica
tampa, onda je potrebno neko vreme za tampanje primljenog znaka. Prema tome, oigledno je
da kontroler mora da prilagodi brzinu prenosa izlaznih podataka mogunostima izlazne jedinice.

Ready

Strobe

MP upisao novi podatak Izlazna jedinica obrauje Izlazna jedinica spremna


u kontroler, izlazna novi podatak i nije za sledei podatak
jedinica je spremna spremna za sledei

Slika 5.6: Postupak sinhronizacije (rukovanje) izmeu kontrolera i izlazne jedinice

Postupak sinhronizacije izmeu kontroler i izlazne jedinice ilustruje vremenski dijagram, Slika
5.6. U poetku je izlazna jedinica spremna da prihvati novi podataka i stavlja signal Strobe na

81
logiku 1. Kada mikroprocesor upie novi izlazni podatak, kontroler prenosi taj podatak na linije za
prenos podataka do izlazne jedinice i stavlja signal Ready na logiku 1, ime obavetava izlaznu
jedinicu da je je novi podatak spreman. Izlazna jedinica prevodi signal Strobe na logiku 0 i
ostavlja ga na toj vrednost sve dok obrauje novi podatak.

U trenutku kad je zavrila obradu novog signala (na primer kad je tampa odtampao primljeni
znak) izlazna jedinica prevodi signal Strobe na logiku 1 i tako obavetava kontroler da je spremna
za naredni podatak. Kontroler prevodi signal Ready na logiku 0 i tako stavlja do znanja izlaznoj
jedinici da je na izlaznim linijama podatak koji je ve obraen.

Dalji postupak zavisi od naina prenosa izlaznih podataka. Na primer, tipino bi bilo da kontroler
generie signal prekida i tako obavesti mikroprocesor da je izlaz prethnodnog podatka zavren. U
programu za obradu prekida mikroprocesor moe da odredi sledei podatak i da ga upie u
kontroler ime se postupak izlaza podataka ponavlja. Ovakav nain sinhronizacije izmeu kontroler
i izlazne jedinice naziva se rukovanje (engleski: handshaking).

5.5 Primer: Kontroler 8255

Primer kontrolera 8255 za paralelni ulaz-izlaz. Tipina primena kontrolera 8255 i programska
podrka.

5.6 Tajmeri

Primer tajmera 8254 i primena u raunaru klase PC.

5.7 Primer: evidencija realnog vremena

Primena mikrokontrolera 8051 u evidenciji realnog vremena.

82
5.8 Direktan pristup memoriji

Posmatrajmo jednostavan mikroraunarski sistem sa mikroprocesorom, operativnom memorijom i


jednom periferijskom jedinicom, Slika 5.7. Radi jednostavnijeg objanjenja direktnog pristupa
memoriji, posmatraemo kontroler i periferijsku jedinicu zajedno, kao jedan blok.

mikroprocesor periferijska
kontroler jedinica

operativna
memorija

Slika 5.7: Blok dijagram jednostavnog mikroraunarskog sistema


Kod prenosa podataka sa periferijske jedinice u operativnu memoriju, svaki pojedinani podatak
mora prvo da se prenese u registar mikroprocesora , a zatim iz registra mikroprocesora u operativnu
memoriju, Slika 5.8 (levo). Naravno, kod prenosa u suprotnom smeru, podatak mora prvo iz
memorije da se prenese u registar mikroprocesora, a zatim iz registra mikroprocesora u periferijsku
jedinicu, Slika 5.8 (desno).

mikroprocesor periferijska mikroprocesor periferijska


jedinica jedinica

operativna operativna
memorija memorija

Slika 5.8: Prenos podataka sa periferijske jedinice u operativnu memoriju (levo) i u suprotnom
smeru (desno)
Oigledno je ovakav nain prenosa spor i neefikasan. Spor je zato to mikroprocesor mora da izvri
niz instrukcija koje pritupaju periferijskoj jedinici, izraunavaju adresu memorije, pristupaju
memoriji i tako dalje. Prenos nije efikasan zato to mikroprocesor u toku prenosa ne moe da
obavlja bilo kakve druge operacije.

Ideja direktnog pristupa memoriji (Direct Memory Access, DMA) sastoji se u tome da se podaci
neposredno prenose izmeu periferijske jedinice i operativne memorije, bez ikakvog uea
mikroprocesora, Slika 5.9. Naravno, mikroprocesorski sistem mora da ima poseban DMA
kontroler koji organizuje i upravlja ovakvim nainom prenosa podataka.

83
mikroprocesor periferijska mikroprocesor periferijska
jedinica jedinica

operativna operativna
memorija memorija

Slika 5.9: Ideja direktnog pristupa memoriji kod prenosa podataka iz periferijske jedinice u
operativnu memoriju (levo) i u suprotnom smeru (desno)
Slika 5.10 prikazuje spoljne signale DMA kontrolera. Signal CS koristi se za aktiviranje DMA
kontrolera kod pristupa mikroprocesora programabilnim registrima kontrolera. Signali adresne
magistrale, magistrale podataka i upravljaki signali R i W su dvosmerni i mogu se prevesti u
stanje visoke impendanse. Signali INT i INTA koriste se za mehanizam prekida.

CS

adrese

podaci DMARQ
R DMA
DMAA
kontroler
W

BUSRQ
BUSA

INT
INTA

Sprega sa Sprega sa periferijskim


mikroprocesorom jedinicama

Slika 5.10: Osnovni spoljni signali DMA kontrolera


Da bi organizovao direktan pristup memoriji DMA kontroler mora prvo da preuzme upravljanje
magistralama i generie adresne signale i signale R i W. Poto u svakom trenutku samo jedna
jedinica moe upravljati magistralama, jedinica koja hoe da preuzme upravljanje magistralama
mora od mikroprocesora da trai dozvolu. Signali BUSRQ (Bus Request) i BUSA (Bus
Acknowledge) slue za sinhronizaciju pristupa magistralama izmeu DMA kontrolera i
mikroprocesora. Logikom 1 na liniji BUSRQ DMA kontroler trai od mikroprocesora upravljanje
magistralama, a logikom 1 na liniji BUSA mikroproceosor obavetava DMA kontroler da
dozvoljava upravljanje magistralama.

Dok mikroprocesor upravlja magistralama, DMA kontroler dri svoje linije za adresnu magistralu i
linije R i W u stanju visoke impendanse. Sa druge strane, kada prepusti DMA kontroleru
upravljanje magistralama, mikroprocesor adresnu magistralu i signale R i W prevodi u stanje
visoke impendanse.

84
Signalom DMARQ (DMA Request) periferijska jedinica obavetava DMA kontroler da je spremna
za DMA prenos, a signalom DMAA (DMA Acknowledge) DMA kontroler obavetava periferijsku
jedinicu da je zapoeo ciklus DMA prenosa.

U postupku primene DMA razlikuju se tri perioda vremena: (i) pre DMA prenosa, (ii) u toku DMA
prenosa i (iii) posle DMA prenosa. Pre DMA prenosa mikroprocesor programira periferijsku
jedinicu i DMA kontroler. Na primer, u sluaju diska, mikroprocesor u kontroler diska upisuje
sektore kojima treba pristupiti, smer prenosa podataka i koliinu podataka koje treba preneti. U
DMA kontroler mikroprocesor upisuje smer prenosa podataka, koliinu podataka koje treba preneti
i poetnu memorijsku adresu zone u koju treba upisati podatke sa periferijske jedinice ili iz koje
treba itati podatke koji se prenose periferijskoj jedinici.

Jednom kada zavri programiranje periferijske jedinice i DMA kontrolera, mikroprocesor ne


uestvuje u DMA prenosu i moe da obavlja druge operacije. DMA kontroler organizuje DMA
prenos tako to za svaki podatak koji treba preneti izmeu periferijske jedinice i memorije, trai od
mikroprocesora pristup magistralama i kada dobije dozvolu pristupa, generie sve signale koji su
neophodni za pristup memoriji.

Postupak prenosa jednog podatka, na primer iz periferijske jedinice u memoriju, poinje tako to
periferijska jedinica signalom DMARQ javlja DMA kontroleru da je spremna za prenos, Slika
5.11. DMA kontroler zatim aktivira signal BUSRQ kojim od mikroprocesora trai upravljanje
magistralama. Kada mikroprocesor zavri tekui mainski ciklus, prevodi svoje magistrale u stanje
visoke impendanse i signalom BUSA obavetava DMA kontroler da ima dozvolu pristupa
magistralama. Sada DMA kontroler signalom DMAA obavetava periferijsku jedinicu da
zapoinje ciklus DMA prenosa i periferijska jedinica prenosi podatak na magistralu podataka.
Istovremeno, DMA kontroler generie adresne signale i signal W. Podatak sa magistrale podataka
memorija smeta u adresiranu memorijsku lokaciju i time se zavrava DMA prenos jednog podatka.

BUSRQ DMARQ

mikroprocesor periferijska
DMA kontroler jedinica
BUSA DMAA

operativna
memorija

Slika 5.11: Konfiguracija mikroprocesorskog sistema za DMA prenos


Slika 5.12 prikazuje vremenske dijagrame signala koji uestvuju u sinronizaciji kod DMA
prenosa. Po zavretku ciklusa DMA prenosa, DMA kontroler svoje spoljne signale prevodi u stanje
visoke impendanse a signale BUSRQ i DMAA u neaktivno stanje (logika 9). Periferijska jedinica
svoj signal DMARQ prevodi u logiku 0. Mikroprocesor signal BUSA prevodi u neaktivno stanje
(logika 9) i nastavlja da izvrava svoje naredne mainske cikluse. U ovom trenutku sve jedinice su
spremne da ponove ciklus DMA prenosa.

85
DMARQ

BUSRQ

BUSA

DMAA

Mainski ciklusi DMA prenos Mainski ciklusi


mikroprocesora mikroprocesora

Slika 5.12: Vremenski dijagrami sinhronizacije kod DMA prenosa


Kod svakog DMA prenosa, DMA kontroler smanjuje za jedan sadraj registra u kome se nalazi
broj podataka koje treba preneti i inkrementira (ili dekrementira) adresu memorijske lokacije kojoj
se pristupa u toku DMA prenosa. Kada se prenesu svi podaci DMA kontroler obino generie
prekid kojim obavetava mikroprocesor da je DMA prenos je zavren. Mikroprocesor moe da
preduzme dalje akcije, na primer da obradi prenesene podatke ili da pripremi novi DMA prenos.

Efekat DMA prenosa moe se posmatrati preko traga mikroprocesorskog sistema, Slika 5.13.
Pravougaonici predstavljaju mainske cikluse, a radi jednostavnosti uzeto je da svi ciklusi imaju
isto trajanja. Mainski ciklusi mikroprocesora su na primer, itanje iz memorije, upis u memoriju,
interne operacije i pristup ulazno-izlaznim registrima. Gornji trag predstavlja izvrenje dve
instrukcije, A i B, sa po tri mainska ciklusa, oznaena sa A1, A2 i A3, odnosno B1, B2 i B3.

vreme

Trag bez DMA prenosa: A1 A2 A3 B1 B2 B3

Trag sa DMA prenosom: A1 A2 DMA A3 B1 DMA B2 B3

Slika 5.13: Trag mikroprocesorskog sistema bez DMA prenosa (gore) i sa DMA prenosom (dole)

Donji trag predstavlja izvrenje instrukcija A i B u sluaju da su se dogodila dva mainska ciklusa
sa DMA prenosom, jedan izmeu ciklusa A2 i A3 i drugi izmeu B1 i B2. U toku mainskog
ciklusa A2 mikroprocesor je primio zahteva za DMA prenos, saekao da zavri tekui ciklus i
predao DMA kontroleru upravljanje magistralama. DMA kontroler je obavio DMA prenos u toku
jednog mainskog ciklusa i vratio mikroprocesoru upravljanje magistralama. Mikroprocesor
nastavlja izvrenje instrukcije A tako to izvri naredni mainski ciklus, A3, i time zavrava
instrukciju A. Na slian nain obavlja se i drugi DMA prenos.

Iz traga se vidi da je kod DMA prenosa trag isti kao i bez DMA prenosa, samo to s vremena na
vreme DMA kontroler obavlja DMA prenos. Ovakav nain korienja mainskih ciklusa naziva se
kraa ciklusa (cycle stealing).

86
5.9 Organizacija ulaza-izlaza

U odnosu na sinhronizaciju sa periferijskom jedinicom, u praksi se obino koriste tri naina


organizovanja ulaza-izlaza:

x Programski ulaz-izlaz,
x Primena prekida i
x DMA prenos.

Kod programskog ulaza-izlaza mikroprocesor u petlji proverava da li je periferijska jedinica


spremna za prenos podataka. Tek kada je periferijska jedinica spremna, petlja se zavrava i
mikroproceosor obavlja uzlazno-izlazne operacije. Oigledno je da ovakav nain sinhronizacije
nije pogodan jer nepotrebno zauzima vreme mikroprocesora. Sve dok je u petlji, mikroprocesor ne
moe da obavlja nikakve druge operacije.

Primena prekida otklanja ove nedostatke tako to mikroprocesor nemora da eka na periferijsku
jedinicu ve moe da izvrava neke druge programe. U trenutku kada je spremna za prenos,
periferijska jedinica generie prekid. Mikroprocesor prekida izvavanje tekueg programa i izvri
program za obradu prekida u kome se obavljaju ulazno-izlazne operacije. Mikroprocesor zatim
nastavlja sa izvrenjem prekinutog programa, a periferijska jedinica e ponovo generisati prekid
kada bude spremna za naredni prenos.

Prekidna organizacija ulazno-izlaznih operacija nije pogodna za prenos velikog broja podataka, na
primer kod rada sa diskom ili komunikacionom karticom. U ovim primerima, prelaz na program za
obradu prekida i izvravanje programa za obradu prekida traju suvie dugo pa se ne moe postii
visoka brzina prenosa.

Najbri prenos podataka postie se DMA prenosom koji je pogodan za ulaz ili izlaz velike koliine
podataka. Naravno, ovaj nain prenosa zahteva dodatnu hardversku jedinicu (DMA kontroler).

87
Univerzitet u Novom Sadu
Fakultet tehnikih nauka
Departman za energetiku, elektroniku i telekomunikacije
Katedra za elektroniku

UVOD U DIGITALNU I MIKRORAUNARSKU


ELEKTRONIKU

Beleke sa predavanja

Skrivena memorija

Pripremio: prof. dr Veljko Malbaa


Novi Sad, 2011. godine
1. Memorijske komponente

Memorijske komponente meusobno se razlikuju u odnosu na tehnologiju izrade, kapacitet,


brzina, cena, disipacija i slino. Sa stanovita korisnika, poeljno je da memorijski podsistem
mikroraunara ima veliki kapacitet, veliku brzinu rada, nisku cenu, nisku disipaciju, da podrava
operacije itanja i upisa, ne gubi sadraj kada se iskljui napajane i tako dalje.

Pojedinane postojee tehnologije izrade memorijkih komponenata ne obezbeuju sve navedene


poeljne karakteristike. Umesto toga, pogodnim korienjem razliitih komponenata projektujemo
memorijski podsistem koji, uz zadata ogranienja (na primer cena, disipacija i slino), ima osobine
koje su pribline idealnoj memoriji. Projektant obino koristi razliite memorijske komponente da
bi obezbedio pojedine poeljne osobine memorijskog podsistema. U sledeoj tabeli navedene su
osobine nekih memorijskih komponenata zbog kojih ih koristimo u memorijskom podsistemu.

Komponenta Osobine zbog kojih se komponenta koristi u memorijskom


podsistemu
1 hard disk veliki kapacitet, niska cena, ne gubi sadraj kada se iskljui
napajanje
2 poluprovodnika memorija mikroprocesor moe da direktno pristupi, ima operaciju
tipa RAM itanja i upisa, velika brzina pristupa
3 poluprovodnika memorija mikroprocesor moe da direktno pristupi, ne gubi sadraj
tipa ROM kada se iskljui napajanje,
4 Fle veliki kapacitet, ne gubi sadraj kada se iskljui napajanje,
nema pokretnih delova, pogodni za izradu prenosnih
memorija
5 optiki diskovi veliki kapacitet, ne gube sadraj kada se iskljui napajanje,
pogodni za izradu prenosnih memorija

Poseban zahtev kod implementacije memorijskog podsistema je da primena pojedinih memorijskih


komponeanta sa stanovita korisnika bude transparentna, to znai da korisnik vidi memorijski
podsistem kao jednu celinu sa poeljnim osobinama, ali da ne uestvuje aktivno u izboru
memorijskih komponenata koje mikroraunar koristi u toku rada. Memorijski podsistem treba da
implementira algoritme koji automatski aktiviraju pojedine komponente tako da se postigne
poeljna performansa podsistema.

2. Memorijska hijerarhija

Memorijski podsistem mikroraunara zasnovan je na memorijskoj hijerarhiji, koja je idejno


prikazana na sledeem dijagramu. Dijagram prikazuje tri memorijska nivoa, na svakom nivou po
jedna vrsta memorijskih komponenata. Strelice sa strane pokazuju smer porasta tri parametra:
brzina, cena i kapacitet, tako da je na primer najsporija memorija na nivou 3, bra je na nivou 2, a
najbra na nivou 1. Kapacitet memorije kvalitativno pokazuje veliina pravougaonika koji
predstavlja memoriju, tako da je na najvei kapacitet memorije na nivou 3, a najmanji na nivou 1.

2
brzina cena
nivo 1 memorija 1

nivo 2 memorija 2

nivo 3
memorija 3

kapacitet

Prenos delova memorijskog prostora odvija se izmeu sustednih memorijskih nivoa, u navedenom
sluaju izmeu nivoa 3 i nivoa 2 (u ovom sluaju je memorija 2 na viem, a memorija 3 na niem
hijerarhijskom nivou) i izmeu nivoa 2 i nivoa 1 (kaemo da je memorija 1 na viem, a memorija 2
na niem hijerarhijskom nivou).

Korienje memorijske hijerarhije zasniva se na injenici da je mikroprocesor najbra komponenta


u sistemu, iz ega sledi da je memorija usko grlo sistema i ukoliko je memorija spora, ona usporava
rad sistema u celini. Prema tome, od interesa za poveanje brzine rada sistema je da mikroprocesor
to vie vremena radi sa najbrim memorijskim komponentama, jer u tom sluaju memorijski
podsistem najmanje usporava rad sistema.

Poto je pristup memoriji na viem hijerarhijskom nivou bri od pristupa memoriji na niem nivou,
sistem u celini radi bre ukoliko je broj pristupa mikroprocesora memoriji na viem hijerarhijskom
nivou vei u odnosu na broj pristupa memoriji na niem hijerarhijskom nivou. Poto je memorija
usko grlo, odnos izmeu broja pristupa broj i sporijoj memoriji odreuje brzinu rada sistema.

U praksi se koriste sledee memorijske komponente na razliitim nivoima:

Nivo 1: brze polupravodnike memorije sa operacijama itanja i upisa, na primer statike


RAM komponente.
Nivo 2: poluprovodnike memorije sa operacijama itanja i upisa, koje imaju veliki
kapacitet i nisu cenu, na primer dinamike RAM komponente.
Nivo 3: masovne memorije koje imaju najvei kapacitet i nisku cenu, na primer hard
diskovi.

Memorija na nivou 1 naziva se skrivena memorija, memorija na nivou 2 naziva se operativna , a na


nivou 3 masovna memorija. U ovakvom memorijskom podsistemu, masovna memorija koristi se za
trajno uvanje programa i podataka, operativna memorija koristi se za smetanje programa koje
mikroprocesor treba da izvri i podataka koje treba da obradi, a u skrivenu memoriju prenose se
delovi programa koje mikroprocesor upravo treba da izvri i podataka koje upravo treba da obradi.

Navedena memorijska hijerahija podrazumeva da se koristi memorijska upravljka jedinica


(engleski: Memory Management Unit ili MMU). Zadatak MMU je da vodi evidenciju o tome gde
su smeteni koji programi i podaci i da organizuje efikasni prenos podataka izmeu susednih nivoa
u meorijskoj hijerarhiji.

3
Mi emo se u ovom izlaganju baviti nainom realizacije i performansom memorijskog sistema sa
skrivenom i operativnom memorijom. Pretpostaviemo da se u operativnoj memoriji nalaze svi
programi i podaci koje mikroprocesor treba da obradi.

Poto je skrivena memorija obino za red veliine bra od operativne memorije, cilj projektanta je
da napravi sistem u kome mikroprocesor pristupa skrivenoj memoriji. Sa druge strane, poto je
kapacitet skrivene memorije mnogo manji od kapaciteta operativne memorije, onda se samo deo
memorijskog prostora iz operativne moe kopirati i drati u skrivenoj memoriji. Prema tome,
projektantu ostaje da delove memorijskog prostora iz operativne kopira u skrivenu memoriju, ali
tako da mikroprocesor to je mogue ee u skrivenoj memoriji pronae adresirane instrukcije i
podatke.

Na sledeem dijagramu ilustrovana je ideja prenosa delova memorijskog prostora iz operativne u


skrivenu memoriju. Vidi se da se neki delovi memorijskog prostora kopiraju u raspoloive delove
skrivene memorije, ovi delovi su oznaeni istom teksturom polja. Takoe se vidi da u operativnoj
memoriji ostaju delovi memorijskog prostora koji ne mogu da se prenesu u skrivenu memoriju, jer
jednostavno nema dovoljno mesta. Zbog toga moe da se desi da mikroprocesor adresira neku
memorijsku lokaciju koja nije prekopirana u skrivenu memoriju. Ukoliko mikroprocesor adresira
memorijsku lokaciju koja je u skrivenoj memoriji, kaemo da se desio pogodak, a ako nije u
skrivenoj memoriji, onda se desio promaaj. Promaaji dovode do smanjenja performanse
mikroraunarskog sistema, jer u tom sluaju je neophodno zaustaviti mikroprocesor i deo
memorijskog prostora sa adresiranom lokacijom prekopirati iz operativne u skrivenu memoriju.

Skrivena
memorija

Operativna
memorija

3. Performansa memorijskog podsistema sa skrivenom


memorijom

Ve smo napomenuli da je mikroprocesor najbra komponenta u mikroraunarskom sistemu, to


znai da performansa mikroraunara direktno zavisi od brzine memorije. Ukoliko je skrivena
memorija n puta bra od operativne memorije, onda bi mogli oekivati da primenom skrivene
memorije dobijamo mikroraunarski sistem koji je n puta bri u odnosu na sistem koji koristi samo
operativnu memoriju. Meutim, u praksi ne moe da se postigne takvo ubrzanje zato to mora da se
obavi prenos delova memorijskog prostora izmeu operativne i skrivene memorije.

Poto je kapacitet skrivene memorije mnogo manji od kapaciteta operativne memorije, onda samo
delovi memorijskog prostora (koji sadre delove programa koji se izvrava i podataka koji se
obrauju), mogu biti smeteni u skrivenoj memoriji, dok preostali deo programa i podataka ostaju u
operativnoj memoriji. To znai da e se povremeno deavati da instrukcija koju mikroprocesor
treba da izvri ili operand kome treba da pristupi nisu u skrivenoj memoriji, pa MMU treba da deo
programa koji sadri traenu instrukciju i deo podataka koji sadri traeni operand prenese iz
operativne u skrivenu memoriju.

4
Ukoliko se adresirana instrukcija ili podatak nalaze u skrivenoj memoriji kaemo da se desio
pogodak, a ako se ne nalaze u skrivenoj memoriji onda kaemo da se desio promaaj. Najvei
uticaj na performansu sistema sa skrivenom memorijom imaju promaaji, jer se tada mora
zaustaviti mikroprocesor i deo memorijskog prostora koji sadri adresiranu instrukciju ili podatak
preneti iz operativne u skrivenu memoriju. Ovo vreme je praktino izgubljeno i sniava
performansu mikroraunarskog sistema.

Sada emo razviti jednostavan matematiki model na osnovu koga moemo oceniti performansu
sistema sa skrivenom memorijom u kome mikroprocesor izvrava neki program. Uvedimo sledee
oznake:

tp, vreme izvrenja programa,


i, ukupan broj instrukcija koje mikroprocesor obradi u toku izvrenja programa,
bT, broj perioda takta po instrukciji (ako instrukcije imaju razliit broj perioda takta, onda
je bT prosean broj perioda takta po instrukciji),
np, ukupan broj perioda takta u kojima mikroprocesor eka na prenos dela memorijskog
prostora iz operativne memorije u skrivenu memoriju, koji mora da se obavi kod
promaaja,
T, perioda takta,

Sa ovim oznakama, vreme izvrenja programa je:

tp = ( i b T + n p ) T

Uzmimo da su i i bT konstantni; onda vreme izvrenja programa zavisi od np. Sa svoje strane, broj
perioda takta np u kojima mikroprocesor eka na prenos delova memorijskog prostora iz operativne
u skrivenu memoriju zavisi od broja promaaja bp u toku izvrenja programa i cene promaaja cp,
koja je izraena brojem perioda takta koji su neophodni za prenos dela memorijskog prostora iz
operativne u skrivenu memoriju kada se desi promaaj:

np = bp cp

Broj promaaja (bp) moemo izraziti preko ukupnog broja instrukcija (i) i prosenog broja
promaaja po instrukciji (pi), odnosno preko ukupnog broja instrukcija (i), broja pristupa memoriji
po instrukciji (mi) i procenta promaaja (p):

np = i pi cp = i mi p cp

Ukupno vreme izvrenja programa je sada:

tp = (i bT + i mi p cp ) T

Procenat promaaja rauna se kao broj promaaja podeljen sa ukupnim brojem pristupa memoriji i
moe se dobiti merenjem na mikroraunarskom sistemu ili simulacijom izvrenja programa na
mikroraunarskom sistemu sa odreenim parametrima memorijskog podsistema. Ostali parametri u
prethodnoj relaciji mogu se neposredno izraunati za svaki pojedini program i mikroprocesor. U
navedenoj formuli uzeto je da je cena promaaja ista za opraciju itanja i upisa u memoriju.

Uzmimo kao primer mikroraunarski sistem sa RISC mikroprocesorom koji instrukcije izvrava u
dve periode takta, tako da u prvoj periodi uzima instrukciju, a u drugoj ili izvrava aritmetiko
logiku operaciju ili pristupa operandu u memoriji. Neka je mikroprocesora load-store tipa, to
znai da samo instrukcije prenosa operanda iz memorije u registar mikroprocesora (instrukcija

5
load) i prenosa operanda iz registra mikroprocesora u memoriju (instrukcija store) pristupaju
memoriji, dok sve ostale instrukcije rade sa operandima koji su u registrima mikroprocesora.

Pretpostavimo da mikroprocesor izvrava program u kome 50% instrukcija pristupa operandu u


memoriji i neka je memorijski podsistem realizovan tako da je kod promaaja potrebno 10 perioda
takta da se deo memorije sa adresiranom instrukcijom ili podatkom prenese iz operativne u
skrivenu memoriju.

Izraunati koliko sporije mikroraunarski sistem izvrava dati program sa 5% promaaja u odnosu
na izvranje programa bez promaaja.

Na osnovu zadatih ulaznih podataka, parametri u jednaini za ukupno vreme izvrenja programa
imaju vrednosti:

i = const, za oba sluaja,


bT = 2
mi = 1.5 (jedan pristup memoriji za uzimanje instrukcije i proseno 0.5 pristupa po
instrukciji za pristup operandu, proseno 1.5 pristupa memorijji po instrukciji),
cp = 10
p = 5%

Vreme izvrenja programa sa 2% promaaja je:

tp = (i bT + i mi p cp ) T
= (i 2+ i 1.5 0.05 10 ) T = 2.75iT

Poto vreme izvrenje programa bez promaaja (p = 0) iznosi tp = 2iT, sledi da odnos vremena
izvrenja programa sa 5% promaaja i vremena izvrenja programa bez promaaja iznosi 1.375,
odnosno da 5% promaaja produava izvrenje programa za 37.5%.

4. Principi na kojima se zasniva implementacija skrivene


memorije

Kao to smo videli, performansa sistema sa skrivenom memorijom u velikoj meri zavisi od
procenta promaaja, pa se moe ak desiti da mikroraunarski sistem sa skrivenom memorijom ima
slabiju performansu u odnosu na sistem bez skrivene memorije. Prema tome, od sutinske vanosti
za performansu sistema sa skrivenom memorijom je da procenat promaaja bude to je mogue
manji.

Implementacija skrivene memorije i algoritma upravljanja skrivenom memorijom zasniva se na dva


principa koji se mogu eksperimentalno dokazati, bilo merenjem na stvarnom mikroraunarskom
sistemu ili simulacijom izvrenja programa.

Princip bliskosti generisanih adresa

Ako je mikroprocesor generisao adresu a u trenutku t onda je velika verovatnoa da e


mikroprocesor generisati adresu iz opsega (a a, a + a) u intervalu vremena (t + t),
za malo t i a.

Ovaj princip kae da mikroprocesor grupie generisane adrese u nekom periodu vremena u
relativno malom opsegu memorijskih adresa. Na primer, ako mikroprocesor izvrava petlju,

6
instrukcije u telu petlje smetene su u memorijskim lokacijama sa bliskim adresama. Ovaj princip
je tim izraeniji to mikroprocesor sekvencijalno izvrava instrukcije, pa ako je u periodi i
pristupio adresi a, onda je najvea verovatnoa da e u periodi i+1 mikroprocesor pristupiti adresi
a+1.

Ovaj princip govori o tome da mikroprocesora ne generie adrese potpuno sluajno i da su


generisane adrese lokalizovane. Lokalnost generisanih adresa potie od injenice da mikroprocesor
izvrava instrukcije koje su sekvencijalno smetene u memoriji, da esto izvrava petlje, obrauje
podatke koji su u tabelama i slino, Generisane adrese su lokalizovane u nekom vremenskom
intervalu u jednom opsegu adresa, posle toga, mikroprocesor moe da izvri programski skok, pa
e u narednom vremenskom intervalu adrese biti lokalizovane u nekom drugom opsegu adresa.

Princip lokalnosti generisanih adresa u memorijskoj hijerarhiji koristi se tako to kada


mikroprocesora generie neku adresu, onda se iz memorije na niem hijerarhijskom nivou prenese
u memoriju na viem hijerarhijskom nivou blok memorijskih lokacija koje su u okolini navedene
memorijske adrese. Oekuje se da e mikroprocesor generisati adresu koja je iz datog bloka, koji je
sada u viem hijerarhijskom nivou, pa e tako pristup biti mnogo bri, nego da je mikroprocesor
pristupa istoj memorijskoj lokaciji koja je na niem hijerarhijskom nivou.

Princip ponovnog korienja podataka

Ukoliko je mikroprocesor koristio podatak p u trenutku t onda je velika verovatnoa da e


mikroprocesor ponovo koristiti podatak p u intervalu vremena (t + t), za malo t.

Drugim reima, mikroprocesor veoma esto ponovo koristi neke podatke ili promenljiv. Na primer,
ako mikroprocesor izvrava petlju, onda u svakom prolazu petlje koristi broja koji kontrolie broj
izvravanja petlje.

Princip ponovnog korienja podataka u realizaciji memorijske hijerarhije koristi se tako to kada
mikroprocesora koristi neki podataka, onda se taj podatak privremeno jo neko vreme uva u
memoriji na viem hijerarhijskom nivou. Ako mikroprocesor bude koristio isti podatak koji je u
broj memoriji, onda e mikroprocesor bre pristupiti tom podatku pa e tako sistem bre da radi.

U daljem tekstu baviemo se algoritmima i hardverskom podrkom u upravljanju skrivenom


memorijom.

5. Skrivena memorija

Podsistem skrivene memorije mora da bude tako napravljen da ubrzava rad mikroraunarskog
sistem. Upravljanje skrivenom memorijom obavlja se u toku mainskog ciklusa pristupa memoriji,
tako to se odreuje da li se desio pogodak ili promaaj, u sluaju pogotka mikroprocesora
nastavlja zapoeti mainski ciklus, ali u sluaju promaaja, potrebno je preduzeti mere koje e reiti
nastali promaaj. Iz ovoga zakljuujemo da upravljanje skrivenom memorijom mora da bude
veoma brzo i efikasno, a to pre svega moe da se postigne ukoliko se primenju jednostavni i
efikasni upravljaki algoritmi. Naravno, ukoliko se ne postignu ovi ciljevi, moe se desiti da
mikroraunar sa skrivenom memorijom radi sporije od sistema bez skrivene memorije.

Dananji podsistemi skrivene memorije zasnivaju se na particiji operativne memorije u blokove od


r rei (na primer bajtova) i particiji skrivene memorije u pregratke kapaciteta takoe r rei, gde je r
relativno malo, u praksi obino 4, 8, 16 ili 32. U sluaju promaaja kopije blokova prenose se iz

7
operativne meorije u pregratke skrivene memorije. Ako to ne moe da dovede do zabune, umesto
da kaemo da se u pregratku i nalazi kopija bloka j iz operativne memorije, esto kaemo da se u
pregratku i nalazi blok j.

Pretpostavimo da je kapacitet operativne memorije ko rei (na primer bajtova), kapacitet skrivene
memorije ks rei i veliina (kapacitet) bloka (a time i pregratka) r rei . U tom sluaju su ukupan
broj blokova b i broj pregradaka p:

b = ko / r
p = ks / r

Blokovima i pregracima dodeljeni su redni brojevi, tako da su brojevi blokova (0, 1, 2, ... , b) i
redni brojevi pregradaka (0, 1, 2, ... , p).. Razlika izmeu vrednosti rednih brojeva dva bloka naziva
se udaljenost blokova. Kada se u svim pregracima nalaze kopije blokova iz operativne memorije,
kaemo da je skrivena memorija popunjena.

Na sledeoj slici prikazan je pojednostavljen sluaj sa operativnom memorijom sa 16 blokova i


skrivenom memorijom sa 4 pregratka. Vidi se da je blok 2 smeten u pregradak 1, blok 7 u
pregradak 3, blok 9 u pregradak 0 i blok 13 u pregradak 2.

15
14
13
12
11
10
3
9
Operativna 2 Skrivena
8 memorija
memorija 1
7
0
6
5
4
3
2
blokovi 1
0

U optem sluaju, mainski ciklus itanja mikroprocesora u sistemu sa skrivenom memorijom


odvija se prema algoritmu prikazanom na sledeem dijagramu. Mainski ciklus upisa je sloeniji,
jer moe dovesti do razliitih kopija istog bloka koje se nalaze u skrivenoj i operativnoj memoriji i
postupak kod upisa obraen je kasnije.

8
mikroprocesor
generie adresu

da
pogodak

ne
zaustaviti
mikroprocesor

preneti kopiju bloka u


skrivenu memoriju

mikroprocesor obavi
mainski ciklus

U gornjem dijagramu nisu navedeni koraci koji takoe moraju da se obave, na primer neophodne je
odrediti pregradak u koji treba preneti kopiju adresiranog bloka kod promaaja. Takoe, ako je u
tom pregratku ve kopija nekog drugog bloka, onda treba doneti odluku da li kopiju treba vratiti iz
skrivene u operativnu memoriju. O ovim detaljima bie rei kasnije.

Sistem za upravljanje skrivenom memorijom treba da obavlja sledee operacije:


1. Odrediti u koji pregradak treba smestiti blok kod prenosa bloka iz operativne u skrivenu
memoriju (u sluaju promaaja). Algoritam koji odreuje u koji pregradak se prenosi blok iz
operativne memorije naziva se funkcija preslikavanja.
2. Pretraiti skrivenu memoriju radi provere da li je u skrivenoj memoriji blok koji sadri adresu
koju je generisao mikroprocesor (provera da li je pogodak ili promaaj).
3. Odrediti koji blok u skrivenoj memoriji treba zameniti novim blokom (kada se desi promaaj i
skrivena memorija je popunjena).
4. Obezbediti da su sadraji istih blokova u operativnoj i skrivenoj memoriji jednaki. Ovaj uslov,
koji se naziva koherentnost operativne i skrivene memorije, moe biti naruen kod operacije
upisa u skrivenu memoriju.

Sloenost, performansa i cena podistema za upravljanje skrivenom memorijom u najveoj zavise


od funkcije preslikavanja, pa emo zato organizaciju i operacije skrvene memorije pokazati na
trima osnovnim funkcijama preslikavanja: direktno, asocijativno i kombinovano preslikavanje.

6. Direktno preslikavanje

Direktno preslikavanje je najjednostavnije i najbre, jer se svaki blok preslikava u jedan isti,
unapred odreen pregradak.

Poto je broj pregradaka p manji od broja blokova b, blokovi se dele u p disjunktnih podskupova,
pri emu u svakom podskupu ima b/p blokova. Blokovi iz istog podskupa treba da budu to je
mogue vie meusobno udaljeni u adresnom prostoru operativne memorije, jer e tada najvei
broj susednih blokova istom trenutku biti u skrivenoj memoriji, a to znai da e se najbolje ispuniti
princip lokalnosti generisanih adresa.

9
Najvea udaljenost postie se ako se brojevi blokova iz istog podskupa razlikuju za p, odnosno ako
se blok i preslikava u blok i mod p, i = 0, 1, 2, ... , b. U naem primeru, blok 0 treba preslikati u
pregradak 0, blok 1 u pregradak 1, blok 2 u pregradak 2 i blok 3 u pregradak 3. Poto smo iscrpli
sve pregratke, ovaj postupak se ponavlja, tako to se blok 4 preslikava u pregradak 0, blok 5 u
pregradak 1 i tako dalje.

U ovom primeru, preslikavanje blokova u pregratke obavlja se na sledei nain:


podskup blokova {0, 4, 8, 12} preslikava se u pregradak 0
podskup blokova {1, 5, 9, 13} preslikava se u pregradak 1
podskup blokova {2, 6, 10, 14} preslikava se u pregradak 2
podskup blokova {3, 7, 11, 15} preslikava se u pregradak 3

Ako je i broj bloka, i =0, 1, ... , b, a Pj, j=0, 1, ... , p, disjunktni podskupovi blokova koji se
preslikavaju u pregradak j, j= 0, 1, ... , p, onda je:

Pj = {i | j = i mod p}

Princip direktnog preslikavanja prikazan je na sledeoj slici, na kojoj strelice oznaavaju koji se
blok iz operativne memorije preslikava u koji pregradak skrivene memorije.

15
14
13
12
11
10
3
9
Operativna 2 Skrivena
8 memorija
memorija 7 1
6 0
5
4
3
2
1
0

Direktorijum

Kada mikroprocesor generie adresu u operativnoj memoriji, kontroler skrivene memorije treba da
proveri da li se kopija bloka koji sadri adresiranu memorijsku lokaciju nalazi u skrivenoj
memoriji, odnosno treba da proveri da li se desio pogodak ili promaaj. Zato je u okviru podsistema
sa skrivenom memorijom neophodno voditi evidenciju o blokovima koji se nalaze u skrivenoj
memoriji i pregracima u kojima se nalaze ti blokovi.

Blokovi koji se nalaze u skrivenoj memoriji meusobno se razlikuju po kljuevima. Kljuevi


blokova moraju biti jedinstveni za sve blokove koji se preslikavaju u iste pregratke, a duina kljua
zavisi od funkcije preslikavanja:

Blokovi koji se nalaze u istom podskupu kod direktnog i kombinovanog preslikavanja imaju
razliite kljueve koji se sastoje od k = log2(b / p) bita.

10
Svi blokovi kod asocijativnog preslikavanja imaju razliite kljueve koji se sastoje od k =
log2(b) bita.

Kljuevi blokova ije su kopije u skrivenoj memoriji evidentiraju se u posebnoj memoriji koja se
naziva direktorijum. Organizacija direktorijuma zavisi od funkcije preslikavanja i prikazana je u
sledeoj tabeli.

Preslikavanje broj bita u kljuu organizacija direktorijuma


Direktno k = log2(b / p) p k
Asocijativno k = log2(b) p k
kombinovano k = log2(b / p) (p /s ) (s k)

Ako je operativna memorija bajtovski organizovana, to znai da su memorijske lokacije duine 8


bita, onda je organizacija direktorijuma i skrivene memorije kod direktnog preslikavanja prikazana
na sledeoj slici.

klju (p-1) pregradak (p-1)

klju (p-2) pregradak (p-2)

p lokacija, ... ... p pregradaka,


svaka lokacija svaki pregradak
ima po k bita ima b lokacija,
svaka lokacija
klju 1 pregradak 1 po 8 bita

klju 0 pregradak 0

k bita 8 bita

Za svaki pregradak i u skrivenoj memoriji (koji ima b lokacija) postoji u direktorijumu


odgovarajui elemenat (lokacija) i sa k bita, koji sadri klju pregratka koji je smeten u pregradak
i. Treba primetiti da, iako su elementi direktorijuma i pregraci prikazani u jednakim veliinama,
organizacija direktorijuma je p k dok je organizacija skrivene memorije (p b) 8.

Ako procesor adresira memorijsku lokaciju koja je u bloku j i desi se promaaj, onda se prvo odredi
podskup Pt kome pripada blok j (j je u Pt), zatim u pregradak t stavi kopija bloka j i u elemenat t
direktorijuma upie klju bloka j. Kod pretraivanja skrivene memorije, ako je adresirana
memorijska lokacija u bloku j, prvo se odredi podskup Pt kome pripada blok j (j je u Pt) i zatim se
proveri da li je u elementu t direktorijuma klju bloka j. Ako jeste, onda je pogodak, a ako nije
onda se dogodio promaaj.

Implementacija:

Podsetimo se jo jednom da smo kapacitet operativne memorije oznaili sa kp, kapacitet skrivene
memorije sa ks, i broj rei u bloku sa r. U postupku projektovanja podsistema skrivene memorije
kod direktnog preslikavanja potrebno je odrediti:
1. broj adresnih bita ao operativne memorije i broj adresnih bita as skrivene memorije, kao ao =
log2 (kp) i as = log2 (ko),

11
2. broj blokova b = kp / r i broj pregradaka p = ks / r,
3. broj bita za adresiranje blokova ab = log2(b), broj bita za adresiranje pregradaka ap = log 2 (p) i
broj bita za adresiranje rei u bloku ar = log2(r),
4. broj bita u kljuu kao ak = log2(b/p).
Kao provera, mora biti ao = ak + ap + ar. Format adrese kod direktnog preslikavanja prikazan je na
sledeoj slici.

ao bita adrese u operativnoj memoriji

klju pregradak re

ar = log2(r) bita

ap = log2 (p) bita

ak = log2 (b/p) bita

Koncept sistema sa skrivenom memorijom i direktorijumom kod direktnog preslikavanja prikazan


je na sledeoj slici.

klju pregradak re
ar
ak ap

klju p-1 pregradak p-1


klju p-2 pregradak p-2
... ...
klju 1 pregradak 1
klju 0 pregradak 0
ak

komparator
=, pogodak
, promaaj

Kao primer, uzmimo da je operativna memorija od 1GB, skrivena memorija 1MB i da je veliina
bloka 8 bajtova. U ovom primeru dobija se:
broj adresnih bita operativne memorije ao = 30 bita,
broj adresnih bita skrivene memorije as = 20 bita,
broj blokova b = 230/8 = 227= 128 M
broj pregradaka p = 128 K,
broj bita za adresiranje blokova ab = log2(b) = 27,
broj bita za adresiranje pregradaka ap = log 2 (p)= 17,
broj bita za adresiranje rei u bloku ar = log2(r)= 3,
broj bita u kljuu ak = log2(227/217) = 10.

12
30

klju pregradak re
3
10 17

klju 217-1 pregradak 217-1


klju 217-2 pregradak 217-2
... ...
klju 1 pregradak 1
klju 0 pregradak 0
10

komparator
=, pogodak
, promaaj

7. Asocijativno preslikavanje

Nedostatak direktnog preslikavanja je u tome to se svi blokovi iz jednog podskupa preslikavaju u


samo jedan, unapred odreeni pregradak. Ukoliko se dogodi da mikroprocesor naizmenino
pristupa blokovima iz istog podskupa, svaki put kada mikroprocesor pristupi drugom bloku,
dogodie se promaaj i prethodni blok iz istog pregratka mora da se zameni novim blokom.

U prethodnom primeru vidimo da se blokovi 1 i 5 preslikavaju u isti pregradak (pregradak broj 1).
Ako mikroprocesor naizmenino pristupa blokovima 1 i 5, svaki put e se desiti promaaj, ak i
ako se pregraci 0, 2 i 3 uopte ne koriste.

Kod asocijativnog preslikavanja, kopija bloka iz operativne memorije moe da se prenese u bilo
koji pregradak skrivene memorije. Prednost asocijativnog preslivanja je da kopije bilo kojih p
blokova iz operativne memorije mogu u istom trenutku da budu u skrivenoj memoriji. To znai da
ako mikroprocesor pristupa bilo kojim od p blokova, po bilo kom redosledu, svi blokovi mogu u
istom trenutku biti u skrivenoj memoriji, pa je procenat pogodaka najvei.

Ozbiljan nedostatak asocijativnog preslikavanja je sloenost pretraivanja skrivene memorije, jer je


kod provere da li je pogodak ili promaaj neophodno proveriti sve pregratke u skrivenoj memoriji
radi provere da li je kopija bloka u skrivenoj memoriji.

Asocijativno:
Organizacija direktorijuma i skrivene memorije kod asocijativnog preslikavanja ista je kao i kod
direktnog preslikavanja (videti prethodnu sliku).

Ako procesor adresira memorijsku lokaciju koja je u bloku j i desi se promaaj, prvo se, po nekom
algoritmu, odredi pregradak t u koji se prenese kopija bloka j i u elemenat t direktorijuma upie
klju bloka j. Kod pretraivanja skrivene memorije, neophodno je proveriti da li se u nekom
elementu direktorijuma nalazi klju adresiranog bloka i, pa ako se nalazi na primer u elementu t,
onda je pogodak i traeni blok je u pregratku t. Promaaj je ukoliko ni u jednom elementu
direktorijuma nema kljua adresiranog bloka.

13
8. Kombinovano preslikavanje

Direktno i asocijativno preslikavanje su dva ekstrema u pogledu performanse i sloenosti


implementacije, kao to pokazuje sledea tabela.

Preslikavanje Performansa Sloenost


Direktno najslabija najmanja
Asocijativno najbolja najvea

Performansa preslikavanja izraena je procentom pogodaka, tako da bolju performansu ima


preslikavanja koje ima vei procenat pogodaka.

Kombinovano preslikavanje (engleski Set Associative) predstavlja kompromis izmeu direktnog i


asocijativnog preslikavanja i postie bolju performansu od direktnog preslikavanja uz manju
sloenost od asocijativnog preslikavanja. Kombinovano preslikavanje sastoji se u tome da se
disjunktni podskupovi blokova koji su odreeni prema direktnom preslikavanju, mogu smestiti u
bilo koji od s pregradaka, 1 < s << p.

Poboljanje performanse postie se time to ak i ako mikroprocesor naizmenino pristupa s


blokova iz istog podskupa, ovi blokovi mogu biti istovremeno u skrivenoj memoriji, to dovodi do
veeg procenta pogodaka. Sa druge strane, sloenost implementacije je manja nego kod
asocijativnog preslikavanja, jer kod provere da li je blok u skrivenoj memoriji, umesto p
pregradaka, potrebno je pretraiti s pregradaka, pri emu je r << p.

Treba primetiti da se za s = 1 kombinovano preslikavanja svodi na direktno preslikavanje, a za r =


p svodi se na asocijativno preslikavanje. Izborom s izmeu vrednosti 1 i p moe se podeavati
performansa i sloenost implementacije skrivene memorije. Ako je s malo, dobija se slabija
performansa i jednostavnija sloenost, a veliko s daje bolju performansu ali veu sloenost
implementacije. Najvee poveanje performanse dobija se ako se umesto s = 1 uzme s = 2. Neto
manje poveanje performanse dobija se kada se s povea sa 2 na 4, meutim, dalje poveanje s daje
sve manje poboljanje performanse.

Zbog dobrog odnosa izmeu performanse i sloenosti implementacije, kombinovano preslikavanje


danas se koristi kod veine komercijalnih mikroprocesora sa relativno malim vrednostima za s,
obino se uzima da je s = 2, 4, 8 ili 16.

Kombinovano:
Radi jednostavnosti, uzmemo da je s = 2 kod kombinovanog preslikavanja. Pregraci skrivene
memorije organizuju se u s = 2 kolone, oznaene sa A i B, u svakoj koloni po p/2 pregradaka. Na
isti nain, lokacije direktorijuma organizovane su u s = 2 kolone, oznaene sa A i B. U svakoj
koloni direktorijuma ima p/2 lokacija u koje se smetaju odgovarajui kljuevi blokova koji su
smeteni u skrivenu memoriju: u lokaciju 0A smeten je klju bloka koji se nalazi u pregratku 0A,
u lokaciju 1A smeten je klju bloka koji se nalazi u pregratku 1A, i tako dalje.

14
kljuevi A kljuevi B pregraci A pregraci B

klju (p/2-1) A klju (p/2-1) B pregradak (p/2-1) A pregradak (p/2-1) B

klju (p/2-2) A klju (p/2-2) B pregradak (p/2-2) A pregradak (p/2-2) B

2 kolone
(s = 2)
... ... ... ... 2 kolone
(s = 2)
po p/2 po p/2
lokacija pregradaka
klju 1 A klju 1 B pregradak 1 A pregradak 1 B

klju 0 A klju 0 B pregradak 0 A pregradak 0 B

k bita k bita 8 bita 8 bita

Kod promaaja, kopija bloka koji je u podskupu Pi, moe da se smesti u pregradak broj iA ili iB.
Prednost kombinovanog preslikavanje u tome to s = 2 bloka iz istog podskupa istovremeno mogu
biti u skrivenoj memoriji.

Pretraivanje se obavlja tako to se prvo utvrdi kom podskupu Pi pripada adresirani blok, pa se
zatim uporede kljuevi koji su smeteni u lokacijima iA i iB direktorijuma. Ukoliko je klju
adresiranog bloka u lokaciji iA onda je pogodak i blok je u pregratku iA. Ako je klju adresiranog
bloka u loaciji u lokaciji iB onda je pogodak i blok je u pregratku iB. Ako klju nije ni u lokaciji iA
niti u lokaciji iB, onda je promaaj.

15

You might also like