Professional Documents
Culture Documents
Beleke sa predavanja
#01
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:
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:
decimalni,
binarni i
heksadecimalni 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:
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
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 (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}.
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.
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.
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.
Binarna operacija logiko ILI obeleava se znakom ( V ), a esto se zove logiko sabiranje i
obeleava znakom ( + ). Sledea tablica definie operaciju logiko ILI.
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.
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
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:
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.
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.
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.
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:
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
g(a, b, c) = b 1 + (b)c
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.
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'.
Na slian nain formiraju se potpuni proizvodi koji odgovaraju slogovima 2 i 4, pa funkcija f ima
sledei analitiki oblik:
8
Prevoenje Bulovih funkcija iz analitikog u tablini oblik
f(a, b, c) = ab + (a)c
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
Beleke sa predavanja
#02
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.
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
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.
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.
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:
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.
F0 = Ii0max / Iu0max
F1 = Ii1max / Iu1max
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
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).
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.
spoljni kontakti
napareni sloj metala
p tip n tip
poluprovodnik na
kome su napareni
delovi p i n tipa
poluprovodnik
bez primesa PN spoj
2
anoda katoda
anoda katoda
p tip n tip
Slika Error! No text of specified style in document..2: Struktura poluprovodnike diode (levo) i
grafika oznaka (desno)
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
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
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
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
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).
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
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
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
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)
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.
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:
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
Slika 4.15: Primena kola sa otvorenim kolektorom za signalizaciju prekida preko zajednike ulazne
linije za prekid mikroprocesora
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.
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
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
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
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
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.
+ 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.
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.
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).
Izlaz y je u stanju
visoke impendanse
7
Univerzitet u Novom Sadu
Fakultet tehnikih nauka
Departman za energetiku, elektroniku i telekomunikacije
Katedra za elektroniku
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 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.
x1 y0
2/4 y1
x0
dekoder
y2
d
y3
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.
x1 x0
x1 x0
y0
x1 x0
y1
x1 x0
y2
x1 x0
y3
d
Multipekser
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
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.
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
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
+ Vcc s1 s0
x0
x1
x2
8/1
x3
y
multiplekser
x4
x5
x6
x7
Demultipekser
6
s1 s0
y0
1/4 y1
x demultiplekser
y2
y3
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
8
a b
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
SR flip-flopovi
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.
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.
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
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
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
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
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
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
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.
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).
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
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.
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.
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.
x0 : A B
x1 : A 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.
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.
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.
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.
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.
9
Univerzitet u Novom Sadu
Fakultet tehnikih nauka
Departman za energetiku, elektroniku i telekomunikacije
Katedra za elektroniku
Beleke sa predavanja:
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:
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.
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
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
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.
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.
U
47 3A
t
0 t1 t2 t3 t4
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.
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
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
upisa upisb
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.
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
upisb : B A
1 : BI B
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
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:
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:
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
s
4
R1 U1 4
4 x (2/1) I Z
R0 U0 MUX
4
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
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
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:
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
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
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.
15
A
si
upisc
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.
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
Memorija
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).
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
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.
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.
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.
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.
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.
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
U n
W R
G
n
I
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)
aw1
aw0
W2
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 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
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.
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
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
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.
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)
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
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
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:
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
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.
17
Univerzitet u Novom Sadu
Fakultet tehnikih nauka
Departman za energetiku, elektroniku i telekomunikacije
Katedra za elektroniku
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
2
upis 0
R0
citanje 0
ulazna izlazna
magistrala m m magistrala
upis 1
R1
citanje 1
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:
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 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
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
4
ulaz A ulaz B
m m
f
aritmeticko-logicka F
jedinica
m
izlaz C
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
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.
adrese
centralni podaci
memorija
procesor
R
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
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
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
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:
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:
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.
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
Posmatrajmo ponovo primer izvornog programa za sabiranje tri broja i pogledajmo kako izgleda
njegov oblik u mainskom jeziku.
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
imaju isti kod operacije, dok je adresa operanda u prvoj instrukciji 09 a u drugoj 0A
(heksadecimalno).
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
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.
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
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:
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:
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:
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.
7 adrese
A MA
8 podaci
AL jedinica MD
IR
R R
PC W
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:
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
...
kod operacije
operand A
kod operacije
operand
MOV A,operand
16
...
A
14 MOV A,[AP]
...
memorija
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:
...
kod operacije A operand
2C MOV [-SP],A
...
Format instrukcije
SP
-1
...
memorija
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
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.
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.
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.
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:
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.
20
U sledeem programu, koji sabira prvih n celih brojeva, ilustrovana je primena instrukcija
bezuslovnog i uslovnog programskog skoka.
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:
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:
21
Sledei program ilustruje korienje instrukcija poziva potprograma i povratka u glavni program na
primeru potprograma za sabiranje prvih 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
ENDPROCEDURE
ENDPROGRAM
22
3. Prekidi
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
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
prekid
Program za obradu
prekida
tekui program
kraj obrade prekida
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
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:
U daljem tekstu se detaljnije obrauje odziv mikroprocesora na signal prekida, reavanje problema
vezanih za viestruke prekide i druga pitanja vezana za podsistem 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
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
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
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.
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
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.
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
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
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
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).
mikroprocesor
signal prekida INT
Interni signal
prekida (ISP)
DI R Q
EI S
I
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.
V C S Z ... I ...
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.
x spoljne,
x unutranje i
x softverske.
Mikroprocesor INT
x86 NMI
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
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.
Izlaz multivibratora
(signal NMI)
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:
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.
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.
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:
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:
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.
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.
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.
Elektronske komponente
Periferijske jedinice
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.
Periferijske jedinice
Privilegovano Korisniko
stanje stanje
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.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
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.
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.
63
instrukcija 0
...
instrukcija n-1
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
mikroprocesor
operativna
memorija
periferijska
kontroler jedinica
... ...
kontroler periferijska
jedinica
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.
Memorijski adresni
ulazno-izlazni
prostor
adresni prostor
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
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
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
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:
adresni Ready
adrese CS Ready
dekoder
Strobe Strobe
podaci podaci
R R ulazni
Izlazni
W W podaci podaci
Ready
Strobe
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).
Primer kontrolera 8255 za paralelni ulaz-izlaz. Tipina primena kontrolera 8255 i programska
podrka.
5.6 Tajmeri
82
5.8 Direktan pristup memoriji
mikroprocesor periferijska
kontroler jedinica
operativna
memorija
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
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.
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
85
DMARQ
BUSRQ
BUSA
DMAA
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
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
x Programski ulaz-izlaz,
x Primena prekida i
x DMA prenos.
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
Beleke sa predavanja
Skrivena memorija
2. Memorijska hijerarhija
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).
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.
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.
Skrivena
memorija
Operativna
memorija
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 = ( 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
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.
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:
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%.
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.
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.
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.
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.
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.
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
8
mikroprocesor
generie adresu
da
pogodak
ne
zaustaviti
mikroprocesor
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.
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.
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 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.
klju 0 pregradak 0
k bita 8 bita
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.
klju pregradak re
ar = log2(r) bita
klju pregradak re
ar
ak ap
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
komparator
=, pogodak
, promaaj
7. Asocijativno preslikavanje
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.
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
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
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
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